From 282e463b6728dd7110410d9517a0e8cd32d21170 Mon Sep 17 00:00:00 2001 From: lorenzo-gomez-windhover Date: Fri, 29 Jan 2021 16:00:09 -0600 Subject: [PATCH 001/370] Squashed 'core/base/' changes from e115358..36f3db8 36f3db8 Started updating displays (#7) 4d601ec Add remaining components (#6) 037fdab Add remaining components (#5) 94421d2 Add remaining components (#4) 460e004 Fixed build functions. (#3) 704a83b Updated the Commander workspace template. 43bd888 Minor changes to the initial commander workspace template. d304906 Added basic look-and-feel of newly created displays in commander workspace git-subtree-dir: core/base git-subtree-split: 36f3db8e619b23dae338b5e777f329c09c0ade22 --- cfe/build-functions.cmake | 6 +- psp/make/build-functions.cmake | 50 +- psp/make/default-build-vars.cmake | 4 +- .../Displays/Apps/CF/Abandon.opi | 366 +- .../Displays/Apps/CF/Application.opi | 136 +- .../Displays/Apps/CF/Cancel.opi | 366 +- .../Displays/Apps/CF/DeleteQueueNode.opi | 366 +- .../Displays/Apps/CF/DisableDequeue.opi | 352 +- .../Apps/CF/DisablePollingDirectory.opi | 541 +- .../Displays/Apps/CF/Downlink.opi | 157 +- .../Displays/Apps/CF/EnableDequeue.opi | 352 +- .../Apps/CF/EnablePollingDirectory.opi | 541 +- .../Displays/Apps/CF/Engine.opi | 76 +- .../Displays/Apps/CF/Faults.opi | 54 +- .../Displays/Apps/CF/GetMIBParam.opi | 366 +- .../Displays/Apps/CF/GiveTake.opi | 458 +- .../Displays/Apps/CF/Kickstart.opi | 352 +- .../Displays/Apps/CF/Main.opi | 104 +- .../Displays/Apps/CF/PlaybackDirectory.opi | 1483 +- .../Displays/Apps/CF/PlaybackFile.opi | 1483 +- .../Displays/Apps/CF/PurgeQueue.opi | 908 +- .../Displays/Apps/CF/QuickStatus.opi | 366 +- .../Displays/Apps/CF/ResetCounters.opi | 350 +- .../Displays/Apps/CF/Resume.opi | 366 +- .../Displays/Apps/CF/SetMIBParam.opi | 560 +- .../Displays/Apps/CF/SetPollParam.opi | 1672 +- .../Displays/Apps/CF/Suspend.opi | 366 +- .../Displays/Apps/CF/Uplink.opi | 12 +- .../Displays/Apps/CF/ViewConfig.opi | 4 +- .../Displays/Apps/CF/ViewTransDiag.opi | 4 +- .../Displays/Apps/CF/WriteActiveTrans.opi | 548 +- .../Displays/Apps/CF/WriteQueueInfo.opi | 908 +- .../Displays/Apps/CI/Main.opi | 8 +- .../Displays/Apps/CS/DisableApplication.opi | 482 +- .../Displays/Apps/CS/DisableEEPROM.opi | 467 +- .../Displays/Apps/CS/DisableMemory.opi | 467 +- .../Displays/Apps/CS/DisableTable.opi | 482 +- .../Displays/Apps/CS/EnableApplication.opi | 482 +- .../Displays/Apps/CS/EnableEEPROM.opi | 467 +- .../Displays/Apps/CS/EnableMemory.opi | 467 +- .../Displays/Apps/CS/EnableTable.opi | 482 +- .../Displays/Apps/CS/GetEntryIDEEPROM.opi | 366 +- .../Displays/Apps/CS/GetEntryIDMemory.opi | 366 +- .../Displays/Apps/CS/Main.opi | 112 +- .../Displays/Apps/CS/OneShot.opi | 555 +- .../Displays/Apps/CS/RecomputeBaselineApp.opi | 376 +- .../Apps/CS/RecomputeBaselineEEPROM.opi | 361 +- .../Displays/Apps/CS/ReportBaselineTable.opi | 376 +- .../Displays/Apps/DS/Main.opi | 211 +- .../Displays/Apps/FM/Main.opi | 8 +- .../Displays/Apps/HK/Main.opi | 8 +- .../Displays/Apps/HS/Main.opi | 48 +- .../Displays/Apps/LC/Main.opi | 8 +- .../Displays/Apps/MD/Main.opi | 8 +- .../Displays/Apps/MM/Main.opi | 8 +- .../workspace_template/Displays/Apps/Main.opi | 128 +- .../Displays/Apps/SC/Main.opi | 8 +- .../Displays/Apps/SCH/Main.opi | 8 +- .../Displays/Apps/TO/Main.opi | 5306 +-- .../Displays/CFE/Config.opi | 522 - .../CFE/ES/displays/ApplicationControl.opi | 2186 - .../Displays/CFE/ES/displays/Console.opi | 362 - .../Displays/CFE/ES/displays/DeleteCDS.opi | 234 - .../Displays/CFE/ES/displays/DumpCDSReg.opi | 234 - .../Displays/CFE/ES/displays/Main.opi | 4035 -- .../CFE/ES/displays/MemoryPoolViewer.opi | 4861 --- .../Displays/CFE/ES/displays/PerfUtility.opi | 9001 ---- .../Displays/CFE/ES/displays/QueryApp.opi | 197 - .../Displays/CFE/ES/displays/RestartApp.opi | 233 - .../CFE/ES/displays/SetMaxPRCount.opi | 230 - .../CFE/ES/displays/SetSysLogMode.opi | 227 - .../Displays/CFE/ES/displays/StartApp.opi | 717 - .../CFE/ES/displays/StartPerfCollection.opi | 248 - .../Displays/CFE/ES/displays/StopApp.opi | 232 - .../CFE/ES/displays/StopPerfCollection.opi | 191 - .../Displays/CFE/ES/displays/WriteErrLog.opi | 234 - .../Displays/CFE/ES/displays/WriteSysLog.opi | 234 - .../Displays/CFE/ES/scripts/NoOp.js | 4 - .../CFE/ES/scripts/PerfSetFilterMask1.js | 14 - .../Displays/CFE/ES/scripts/PowerReset.js | 4 - .../Displays/CFE/ES/scripts/ProcessorReset.js | 4 - .../Displays/CFE/ES/scripts/QueryOneApp.js | 4 - .../Displays/CFE/ES/scripts/ResetCounters.js | 4 - .../Displays/CFE/ES/scripts/ResetPRResets.js | 4 - .../Displays/CFE/ES/scripts/StopApp.js | 6 - .../CFE/ES/scripts/test_console_cmd.js | 4 - .../Displays/CFE/EVS/AddFilter.opi | 389 - .../Displays/CFE/EVS/DeleteFilter.opi | 291 - .../Displays/CFE/EVS/DumpAppData.opi | 234 - .../Displays/CFE/EVS/DumpEventLog.opi | 234 - .../Displays/CFE/EVS/EnaDisAppEventType.opi | 450 - .../Displays/CFE/EVS/EnaDisAppEvents.opi | 254 - .../Displays/CFE/EVS/EnaDisEventType.opi | 351 - .../Displays/CFE/EVS/EnaDisPorts.opi | 351 - .../Displays/CFE/EVS/Main.opi | 2043 - .../Displays/CFE/EVS/ResetAppCounter.opi | 193 - .../Displays/CFE/EVS/ResetFilter.opi | 352 - .../Displays/CFE/EVS/SetFilter.opi | 389 - .../Displays/CFE/EVS/SetLogMode.opi | 227 - .../Displays/CFE/EVS/SetMessageFormat.opi | 227 - .../Displays/CFE/EVS/scripts/ClearLog.js | 4 - .../Displays/CFE/EVS/scripts/NoOp.js | 4 - .../Displays/CFE/EVS/scripts/ResetCounters.js | 4 - .../workspace_template/Displays/CFE/Main.opi | 1650 - .../Displays/CFE/SB/DumpMapInfo.opi | 241 - .../Displays/CFE/SB/DumpPipeInfo.opi | 241 - .../Displays/CFE/SB/DumpRoutingInfo.opi | 241 - .../Displays/CFE/SB/EnaDisRoutes.opi | 290 - .../Displays/CFE/SB/Main.opi | 1733 - .../Displays/CFE/SB/ViewStatistics.opi | 17183 -------- .../Displays/CFE/SB/scripts/ClearLog.js | 4 - .../Displays/CFE/SB/scripts/NoOp.js | 4 - .../Displays/CFE/SB/scripts/ResetCounters.js | 4 - .../Displays/CFE/TBL/AbortTableLoad.opi | 195 - .../Displays/CFE/TBL/ActivateTable.opi | 195 - .../Displays/CFE/TBL/DeleteCDS.opi | 195 - .../Displays/CFE/TBL/DumpRegistry.opi | 241 - .../Displays/CFE/TBL/DumpTable.opi | 398 - .../Displays/CFE/TBL/LoadTable.opi | 241 - .../Displays/CFE/TBL/Main.opi | 2502 -- .../Displays/CFE/TBL/ValidateTable.opi | 294 - .../Displays/CFE/TBL/ViewRegistry.opi | 1746 - .../Displays/CFE/TBL/scripts/NoOp.js | 4 - .../Displays/CFE/TBL/scripts/ResetCounters.js | 4 - .../Displays/CFE/TIME/AbortTableLoad.opi | 195 - .../Displays/CFE/TIME/ActivateTable.opi | 195 - .../Displays/CFE/TIME/DeleteCDS.opi | 195 - .../Displays/CFE/TIME/DumpRegistry.opi | 241 - .../Displays/CFE/TIME/DumpTable.opi | 398 - .../Displays/CFE/TIME/Main.opi | 2499 -- .../Displays/CFE/TIME/SetAdjust.opi | 484 - .../Displays/CFE/TIME/SetDelay.opi | 350 - .../Displays/CFE/TIME/SetLeaps.opi | 195 - .../Displays/CFE/TIME/SetSignal.opi | 190 - .../Displays/CFE/TIME/SetSource.opi | 190 - .../Displays/CFE/TIME/SetState.opi | 192 - .../Displays/CFE/TIME/SetTime.opi | 353 - .../Displays/CFE/TIME/ViewDiagnostic.opi | 5633 --- .../Displays/CFE/TIME/scripts/NoOp.js | 4 - .../CFE/TIME/scripts/ResetCounters.js | 4 - .../Displays/Core/ES/ApplicationControl.opi | 4368 +- .../Displays/Core/ES/Console.opi | 678 +- .../Displays/Core/ES/DeleteCDS.opi | 448 +- .../Displays/Core/ES/DumpCDSReg.opi | 449 +- .../Displays/Core/ES/Main.opi | 727 +- .../Displays/Core/ES/MemoryPoolViewer.opi | 9704 ++--- .../Displays/Core/ES/PerfUtility.opi | 17864 ++++---- .../Displays/Core/ES/QueryApp.opi | 378 +- .../Displays/Core/ES/RestartApp.opi | 448 +- .../Displays/Core/ES/SetMaxPRCount.opi | 443 +- .../Displays/Core/ES/SetSysLogMode.opi | 14 +- .../Displays/Core/ES/StartApp.opi | 1396 +- .../Displays/Core/ES/StartPerfCollection.opi | 407 +- .../Displays/Core/ES/StopApp.opi | 448 +- .../Displays/Core/ES/StopPerfCollection.opi | 368 +- .../Displays/Core/ES/WriteErrLog.opi | 12 +- .../Displays/Core/ES/WriteSysLog.opi | 12 +- .../Displays/Core/ES/scripts/NoOp.js | 4 - .../Displays/Core/ES/scripts/PowerReset.js | 4 - .../Core/ES/scripts/ProcessorReset.js | 4 - .../Displays/Core/ES/scripts/ResetCounters.js | 4 - .../Displays/Core/EVS/AddFilter.opi | 754 +- .../Displays/Core/EVS/DeleteFilter.opi | 560 +- .../Displays/Core/EVS/DumpAppData.opi | 446 +- .../Displays/Core/EVS/DumpEventLog.opi | 446 +- .../Displays/Core/EVS/EnaDisAppEventType.opi | 848 +- .../Displays/Core/EVS/EnaDisAppEvents.opi | 472 +- .../Displays/Core/EVS/EnaDisEventType.opi | 654 +- .../Displays/Core/EVS/EnaDisPorts.opi | 654 +- .../Displays/Core/EVS/Main.opi | 100 +- .../Displays/Core/EVS/ResetAppCounter.opi | 366 +- .../Displays/Core/EVS/ResetFilter.opi | 666 +- .../Displays/Core/EVS/SetFilter.opi | 754 +- .../Displays/Core/EVS/SetLogMode.opi | 424 +- .../Displays/Core/EVS/SetMessageFormat.opi | 424 +- .../Displays/Core/SB/DumpMapInfo.opi | 446 +- .../Displays/Core/SB/DumpPipeInfo.opi | 446 +- .../Displays/Core/SB/DumpRoutingInfo.opi | 446 +- .../Displays/Core/SB/EnaDisRoutes.opi | 560 +- .../Displays/Core/SB/Main.opi | 82 +- .../Displays/Core/SB/ViewStatistics.opi | 34356 ++++++++-------- .../Displays/Core/TBL/AbortTableLoad.opi | 366 +- .../Displays/Core/TBL/ActivateTable.opi | 366 +- .../Displays/Core/TBL/DeleteCDS.opi | 366 +- .../Displays/Core/TBL/DumpRegistry.opi | 446 +- .../Displays/Core/TBL/DumpTable.opi | 740 +- .../Displays/Core/TBL/LoadTable.opi | 446 +- .../Displays/Core/TBL/Main.opi | 128 +- .../Displays/Core/TBL/ValidateTable.opi | 546 +- .../Displays/Core/TBL/ViewRegistry.opi | 3468 +- .../Displays/Core/TIME/AbortTableLoad.opi | 366 +- .../Displays/Core/TIME/ActivateTable.opi | 366 +- .../Displays/Core/TIME/DeleteCDS.opi | 366 +- .../Displays/Core/TIME/DumpRegistry.opi | 446 +- .../Displays/Core/TIME/DumpTable.opi | 740 +- .../Displays/Core/TIME/Main.opi | 86 +- .../Displays/Core/TIME/SetAdjust.opi | 920 +- .../Displays/Core/TIME/SetDelay.opi | 660 +- .../Displays/Core/TIME/SetLeaps.opi | 366 +- .../Displays/Core/TIME/SetSignal.opi | 344 +- .../Displays/Core/TIME/SetSource.opi | 344 +- .../Displays/Core/TIME/SetState.opi | 346 +- .../Displays/Core/TIME/SetTime.opi | 662 +- .../Displays/Core/TIME/ViewDiagnostic.opi | 11250 ++--- .../workspace_template/Displays/Main.opi | 572 +- .../Displays/Resources/send.png | Bin 0 -> 384 bytes .../workspace_template/cfdp_download/.gitkeep | 0 .../workspace_template/cfdp_upload/.gitkeep | 0 .../workspace_template/etc/extra_streams.sql | 3 + .../etc/yamcs.yamcs-cfs.yaml | 25 +- .../workspace_template/etc/yamcs.yaml | 7 + tools/config/.gitignore | 1 + 212 files changed, 66520 insertions(+), 135195 deletions(-) delete mode 100644 tools/commander/workspace_template/Displays/CFE/Config.opi delete mode 100644 tools/commander/workspace_template/Displays/CFE/ES/displays/ApplicationControl.opi delete mode 100644 tools/commander/workspace_template/Displays/CFE/ES/displays/Console.opi delete mode 100644 tools/commander/workspace_template/Displays/CFE/ES/displays/DeleteCDS.opi delete mode 100644 tools/commander/workspace_template/Displays/CFE/ES/displays/DumpCDSReg.opi delete mode 100644 tools/commander/workspace_template/Displays/CFE/ES/displays/Main.opi delete mode 100644 tools/commander/workspace_template/Displays/CFE/ES/displays/MemoryPoolViewer.opi delete mode 100644 tools/commander/workspace_template/Displays/CFE/ES/displays/PerfUtility.opi delete mode 100644 tools/commander/workspace_template/Displays/CFE/ES/displays/QueryApp.opi delete mode 100644 tools/commander/workspace_template/Displays/CFE/ES/displays/RestartApp.opi delete mode 100644 tools/commander/workspace_template/Displays/CFE/ES/displays/SetMaxPRCount.opi delete mode 100644 tools/commander/workspace_template/Displays/CFE/ES/displays/SetSysLogMode.opi delete mode 100644 tools/commander/workspace_template/Displays/CFE/ES/displays/StartApp.opi delete mode 100644 tools/commander/workspace_template/Displays/CFE/ES/displays/StartPerfCollection.opi delete mode 100644 tools/commander/workspace_template/Displays/CFE/ES/displays/StopApp.opi delete mode 100644 tools/commander/workspace_template/Displays/CFE/ES/displays/StopPerfCollection.opi delete mode 100644 tools/commander/workspace_template/Displays/CFE/ES/displays/WriteErrLog.opi delete mode 100644 tools/commander/workspace_template/Displays/CFE/ES/displays/WriteSysLog.opi delete mode 100644 tools/commander/workspace_template/Displays/CFE/ES/scripts/NoOp.js delete mode 100644 tools/commander/workspace_template/Displays/CFE/ES/scripts/PerfSetFilterMask1.js delete mode 100644 tools/commander/workspace_template/Displays/CFE/ES/scripts/PowerReset.js delete mode 100644 tools/commander/workspace_template/Displays/CFE/ES/scripts/ProcessorReset.js delete mode 100644 tools/commander/workspace_template/Displays/CFE/ES/scripts/QueryOneApp.js delete mode 100644 tools/commander/workspace_template/Displays/CFE/ES/scripts/ResetCounters.js delete mode 100644 tools/commander/workspace_template/Displays/CFE/ES/scripts/ResetPRResets.js delete mode 100644 tools/commander/workspace_template/Displays/CFE/ES/scripts/StopApp.js delete mode 100644 tools/commander/workspace_template/Displays/CFE/ES/scripts/test_console_cmd.js delete mode 100644 tools/commander/workspace_template/Displays/CFE/EVS/AddFilter.opi delete mode 100644 tools/commander/workspace_template/Displays/CFE/EVS/DeleteFilter.opi delete mode 100644 tools/commander/workspace_template/Displays/CFE/EVS/DumpAppData.opi delete mode 100644 tools/commander/workspace_template/Displays/CFE/EVS/DumpEventLog.opi delete mode 100644 tools/commander/workspace_template/Displays/CFE/EVS/EnaDisAppEventType.opi delete mode 100644 tools/commander/workspace_template/Displays/CFE/EVS/EnaDisAppEvents.opi delete mode 100644 tools/commander/workspace_template/Displays/CFE/EVS/EnaDisEventType.opi delete mode 100644 tools/commander/workspace_template/Displays/CFE/EVS/EnaDisPorts.opi delete mode 100644 tools/commander/workspace_template/Displays/CFE/EVS/Main.opi delete mode 100644 tools/commander/workspace_template/Displays/CFE/EVS/ResetAppCounter.opi delete mode 100644 tools/commander/workspace_template/Displays/CFE/EVS/ResetFilter.opi delete mode 100644 tools/commander/workspace_template/Displays/CFE/EVS/SetFilter.opi delete mode 100644 tools/commander/workspace_template/Displays/CFE/EVS/SetLogMode.opi delete mode 100644 tools/commander/workspace_template/Displays/CFE/EVS/SetMessageFormat.opi delete mode 100644 tools/commander/workspace_template/Displays/CFE/EVS/scripts/ClearLog.js delete mode 100644 tools/commander/workspace_template/Displays/CFE/EVS/scripts/NoOp.js delete mode 100644 tools/commander/workspace_template/Displays/CFE/EVS/scripts/ResetCounters.js delete mode 100644 tools/commander/workspace_template/Displays/CFE/Main.opi delete mode 100644 tools/commander/workspace_template/Displays/CFE/SB/DumpMapInfo.opi delete mode 100644 tools/commander/workspace_template/Displays/CFE/SB/DumpPipeInfo.opi delete mode 100644 tools/commander/workspace_template/Displays/CFE/SB/DumpRoutingInfo.opi delete mode 100644 tools/commander/workspace_template/Displays/CFE/SB/EnaDisRoutes.opi delete mode 100644 tools/commander/workspace_template/Displays/CFE/SB/Main.opi delete mode 100644 tools/commander/workspace_template/Displays/CFE/SB/ViewStatistics.opi delete mode 100644 tools/commander/workspace_template/Displays/CFE/SB/scripts/ClearLog.js delete mode 100644 tools/commander/workspace_template/Displays/CFE/SB/scripts/NoOp.js delete mode 100644 tools/commander/workspace_template/Displays/CFE/SB/scripts/ResetCounters.js delete mode 100644 tools/commander/workspace_template/Displays/CFE/TBL/AbortTableLoad.opi delete mode 100644 tools/commander/workspace_template/Displays/CFE/TBL/ActivateTable.opi delete mode 100644 tools/commander/workspace_template/Displays/CFE/TBL/DeleteCDS.opi delete mode 100644 tools/commander/workspace_template/Displays/CFE/TBL/DumpRegistry.opi delete mode 100644 tools/commander/workspace_template/Displays/CFE/TBL/DumpTable.opi delete mode 100644 tools/commander/workspace_template/Displays/CFE/TBL/LoadTable.opi delete mode 100644 tools/commander/workspace_template/Displays/CFE/TBL/Main.opi delete mode 100644 tools/commander/workspace_template/Displays/CFE/TBL/ValidateTable.opi delete mode 100644 tools/commander/workspace_template/Displays/CFE/TBL/ViewRegistry.opi delete mode 100644 tools/commander/workspace_template/Displays/CFE/TBL/scripts/NoOp.js delete mode 100644 tools/commander/workspace_template/Displays/CFE/TBL/scripts/ResetCounters.js delete mode 100644 tools/commander/workspace_template/Displays/CFE/TIME/AbortTableLoad.opi delete mode 100644 tools/commander/workspace_template/Displays/CFE/TIME/ActivateTable.opi delete mode 100644 tools/commander/workspace_template/Displays/CFE/TIME/DeleteCDS.opi delete mode 100644 tools/commander/workspace_template/Displays/CFE/TIME/DumpRegistry.opi delete mode 100644 tools/commander/workspace_template/Displays/CFE/TIME/DumpTable.opi delete mode 100644 tools/commander/workspace_template/Displays/CFE/TIME/Main.opi delete mode 100644 tools/commander/workspace_template/Displays/CFE/TIME/SetAdjust.opi delete mode 100644 tools/commander/workspace_template/Displays/CFE/TIME/SetDelay.opi delete mode 100644 tools/commander/workspace_template/Displays/CFE/TIME/SetLeaps.opi delete mode 100644 tools/commander/workspace_template/Displays/CFE/TIME/SetSignal.opi delete mode 100644 tools/commander/workspace_template/Displays/CFE/TIME/SetSource.opi delete mode 100644 tools/commander/workspace_template/Displays/CFE/TIME/SetState.opi delete mode 100644 tools/commander/workspace_template/Displays/CFE/TIME/SetTime.opi delete mode 100644 tools/commander/workspace_template/Displays/CFE/TIME/ViewDiagnostic.opi delete mode 100644 tools/commander/workspace_template/Displays/CFE/TIME/scripts/NoOp.js delete mode 100644 tools/commander/workspace_template/Displays/CFE/TIME/scripts/ResetCounters.js delete mode 100644 tools/commander/workspace_template/Displays/Core/ES/scripts/NoOp.js delete mode 100644 tools/commander/workspace_template/Displays/Core/ES/scripts/PowerReset.js delete mode 100644 tools/commander/workspace_template/Displays/Core/ES/scripts/ProcessorReset.js delete mode 100644 tools/commander/workspace_template/Displays/Core/ES/scripts/ResetCounters.js create mode 100644 tools/commander/workspace_template/Displays/Resources/send.png create mode 100644 tools/commander/workspace_template/cfdp_download/.gitkeep create mode 100644 tools/commander/workspace_template/cfdp_upload/.gitkeep create mode 100644 tools/commander/workspace_template/etc/extra_streams.sql create mode 100644 tools/config/.gitignore diff --git a/cfe/build-functions.cmake b/cfe/build-functions.cmake index f997f0e06..3589427ac 100644 --- a/cfe/build-functions.cmake +++ b/cfe/build-functions.cmake @@ -193,9 +193,9 @@ endfunction(buildliner_add_app_src) -function(buildliner_add_app_def_src) - buildliner_add_app_def_src(${ARGN}) -endfunction(buildliner_add_app_def_src) +function(buildliner_add_app_unit_test_src) + psp_buildliner_add_app_unit_test_src(${ARGN}) +endfunction(buildliner_add_app_unit_test_src) diff --git a/psp/make/build-functions.cmake b/psp/make/build-functions.cmake index 0d001a49e..21b4c718a 100644 --- a/psp/make/build-functions.cmake +++ b/psp/make/build-functions.cmake @@ -509,6 +509,12 @@ function(psp_buildliner_add_app_def) target_include_directories(core-binary_no_symtab PUBLIC ${PARSED_ARGS_INCLUDES}) target_include_directories(core-binary PUBLIC ${PUBLIC_APP_INCLUDES}) target_include_directories(core-binary_no_symtab PUBLIC ${PUBLIC_APP_INCLUDES}) + + add_custom_target(${PARSED_ARGS_TARGET}) + add_dependencies(core-binary ${PARSED_ARGS_TARGET}) + if(${PARSED_ARGS_TARGET}_yaml) + add_dependencies(${PARSED_ARGS_TARGET}_yaml ${PARSED_ARGS_TARGET}) + endif() else() add_library(${PARSED_ARGS_TARGET} MODULE ${PARSED_ARGS_SOURCES}) add_dependencies(build-file-system ${PARSED_ARGS_TARGET}) @@ -549,15 +555,45 @@ function(psp_buildliner_add_app_def) endif() endif() - # Add the binary file to the combined design+configuration yaml file - commander_add_module(${PARSED_ARGS_TARGET} - TARGET_WORKSPACE commander_workspace - TARGET_NAME ${PARSED_ARGS_TARGET} - ) + if(IS_EMBEDDED) + # Add the core binary file to the combined design+configuration yaml file + commander_add_module(${PARSED_ARGS_TARGET} + TARGET_WORKSPACE commander_workspace + TARGET_NAME core-binary + ) + else() + # Add the binary file to the combined design+configuration yaml file + commander_add_module(${PARSED_ARGS_TARGET} + TARGET_WORKSPACE commander_workspace + TARGET_NAME ${PARSED_ARGS_TARGET} + ) + endif() endfunction(psp_buildliner_add_app_def) +function(buildliner_add_app_dependencies) + set(PARSED_ARGS_TARGET ${ARGV0}) + cmake_parse_arguments(PARSED_ARGS "" "" "TARGETS" ${ARGN}) + + # See if this is an embedded build + get_property(IS_EMBEDDED GLOBAL PROPERTY ${PARSED_ARGS_TARGET}_EMBEDDED) + + if(IS_EMBEDDED) + # Add the dependency to the core binary + add_dependencies(core-binary_no_symtab + ${PARSED_ARGS_TARGETS} + ) + else() + # Add the dependency to the application binary + add_dependencies(${PARSED_ARGS_TARGET} + ${PARSED_ARGS_TARGETS} + ) + endif() + +endfunction(buildliner_add_app_dependencies) + + function(psp_buildliner_add_app_unit_test) set(PARSED_ARGS_TARGET ${ARGV0}) cmake_parse_arguments(PARSED_ARGS "UTASSERT;NO_MEMCHECK;NO_HELGRIND;NO_MASSIF" "COMPILE_OPTIONS;FILE;VALGRIND_SUPPRESSION_FILE" "SOURCES;LIBS;INCLUDES;WRAPPERS;REFERENCE_CUSTOM_SOURCE" ${ARGN}) @@ -871,7 +907,7 @@ endfunction(psp_buildliner_add_table) -function(buildliner_add_app_def_src) +function(psp_buildliner_add_app_unit_test_src) set(PARSED_ARGS_TARGET ${ARGV0}) cmake_parse_arguments(PARSED_ARGS "" "" "SOURCES" ${ARGN}) @@ -899,4 +935,4 @@ function(buildliner_add_app_def_src) target_sources(${PARSED_ARGS_TARGET}-ut-massif PRIVATE ${PARSED_ARGS_SOURCES}) target_sources(${PARSED_ARGS_TARGET}-ut-massif_no_symtab PRIVATE ${PARSED_ARGS_SOURCES}) endif(TARGET ${PARSED_ARGS_TARGET}-ut-massif) -endfunction(buildliner_add_app_def_src) +endfunction(psp_buildliner_add_app_unit_test_src) diff --git a/psp/make/default-build-vars.cmake b/psp/make/default-build-vars.cmake index 3dfc8fe84..6088cbbcc 100644 --- a/psp/make/default-build-vars.cmake +++ b/psp/make/default-build-vars.cmake @@ -47,9 +47,9 @@ set(CMAKE_SYSTEM_NAME Linux) # which compilers to use for C and C++ set(TOOLCHAIN_PREFIX "") set(CMAKE_C_COMPILER ${TOOLCHAIN_PREFIX}gcc) -set(CMAKE_C_FLAGS ${CMAKE_C_FLAGS} "-m32 -g -O3 -Wno-pointer-to-int-cast") +set(CMAKE_C_FLAGS "-m32 -g -O3 -Wno-pointer-to-int-cast") set(CMAKE_CXX_COMPILER ${TOOLCHAIN_PREFIX}g++) -set(CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS} "-m32 -g -fstack-protector-all -O3 -std=c++11") +set(CMAKE_CXX_FLAGS "-m32 -g -fstack-protector-all -O3 -std=c++11") set(INSTALL_DIR ${CMAKE_CURRENT_BINARY_DIR}/exe/cf/apps) set(CFE_INSTALL_DIR ${CMAKE_CURRENT_BINARY_DIR}/exe) diff --git a/tools/commander/workspace_template/Displays/Apps/CF/Abandon.opi b/tools/commander/workspace_template/Displays/Apps/CF/Abandon.opi index e99e213f4..9bafcb74a 100644 --- a/tools/commander/workspace_template/Displays/Apps/CF/Abandon.opi +++ b/tools/commander/workspace_template/Displays/Apps/CF/Abandon.opi @@ -1,178 +1,138 @@ - - true - - 31ffe3bf:150a7259bb9:-6563 - true - false - - 100 - - true - - 4.0.104.201510200439 - true - Display - - false - -1 - -1 - - - - - 230 - -1 - - 6 - true - -1 - true - - - - - - 0 - - 2 - - true - 31ffe3bf:150a7259bb9:-6541 - true - false - Transfer - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 53 - 8 - Label_5 - 17 - - - - - - Default - - - - false - 0 - $(pv_name) -$(pv_value) - 0 - - - false - - 0.0 - true - 29 - false - 1 - true - loc://Transfer<VString> - 0 - - - - true - Text Input - - Transfer - - - 1 - false - true - 31ffe3bf:150a7259bb9:-6540 - false - - true - - true - true - false - - false - 0 - false - - - - 135 - 74 - 12 - 1.7976931348623157E308 - - - - -1.7976931348623157E308 - - Default - - - - false - 0 - false - false - $(pv_name) -$(pv_value) - 0 - - true - 31ffe3bf:150a7259bb9:-652c - - Abandon Transfer - - false - 25 - 1 - - true - true - false - - - true - - - - - Action Button - false - - - - 163 - 30 - Action Button - 60 - - - - - - - ../scripts/RestartApp.js + + + + false + -1 + -1 + + false + + + + 1.5.3 + + + + 6 + 100 + + true + + + + + true + true + true + true + true + Display + 230 + 31ffe3bf:150a7259bb9:-6563 + -1 + -1 + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_5 + + + true + true + false + + + Transfer + + true + 1 + true + Label + 53 + false + 31ffe3bf:150a7259bb9:-6541 + 8 + 17 + + + + false + false + false + + + + false + + + + 1 + 1 + + true + + Default + + false + + + + 0 + 29 + 0 + false + 1.7976931348623157E308 + -1.7976931348623157E308 + false + Transfer + 0 + true + loc://Transfer<VString> + + 0.0 + + + true + true + false + + + 0 + true + + + $(pv_name) +$(pv_value) + false + true + Text Input + 135 + 31ffe3bf:150a7259bb9:-6540 + 74 + 12 + + + + + ../scripts/RestartApp.js - true - - - - - Default - - +]]> + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 25 + + Action Button + 0 + + + + + true + true + false + + + + Abandon Transfer + false + $(pv_name) +$(pv_value) + true + Action Button + 163 + 31ffe3bf:150a7259bb9:-652c + 30 + 60 + \ No newline at end of file diff --git a/tools/commander/workspace_template/Displays/Apps/CF/Application.opi b/tools/commander/workspace_template/Displays/Apps/CF/Application.opi index 41f4d48a6..f1b2aa987 100644 --- a/tools/commander/workspace_template/Displays/Apps/CF/Application.opi +++ b/tools/commander/workspace_template/Displays/Apps/CF/Application.opi @@ -8,7 +8,7 @@ false - + 1.5.3 @@ -42,9 +42,9 @@ true - + - 0 + 1 1 true @@ -214,9 +214,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -269,7 +269,7 @@ $(pv_value) false false - + false @@ -283,7 +283,7 @@ $(pv_value) false - + 13 @@ -358,11 +358,11 @@ $(pv_value) - true + false - + - 0 + 1 1 true @@ -410,11 +410,11 @@ $(pv_value) - true + false - + - 0 + 1 1 true @@ -462,11 +462,11 @@ $(pv_value) - true + false - + - 0 + 1 1 true @@ -514,11 +514,11 @@ $(pv_value) - true + false - + - 0 + 1 1 true @@ -566,11 +566,11 @@ $(pv_value) - true + false - + - 0 + 1 1 true @@ -618,11 +618,11 @@ $(pv_value) - true + false - + - 0 + 1 1 true @@ -670,11 +670,11 @@ $(pv_value) - true + false - + - 0 + 1 1 true @@ -722,11 +722,11 @@ $(pv_value) - true + false - + - 0 + 1 1 true @@ -774,11 +774,11 @@ $(pv_value) - true + false - + - 0 + 1 1 true @@ -826,11 +826,11 @@ $(pv_value) - true + false - + - 0 + 1 1 true @@ -878,11 +878,11 @@ $(pv_value) - true + false - + - 0 + 1 1 true @@ -930,11 +930,11 @@ $(pv_value) - true + false - + - 0 + 1 1 true @@ -982,11 +982,11 @@ $(pv_value) - true + false - + - 0 + 1 1 true @@ -1034,11 +1034,11 @@ $(pv_value) - true + false - + - 0 + 1 1 true @@ -1086,11 +1086,11 @@ $(pv_value) - true + false - + - 0 + 1 1 true @@ -1138,11 +1138,11 @@ $(pv_value) - true + false - + - 0 + 1 1 true @@ -1190,11 +1190,11 @@ $(pv_value) - true + false - + - 0 + 1 1 true @@ -1291,7 +1291,7 @@ $(pv_value) false - + 0 1 @@ -2190,7 +2190,7 @@ Yamcs.issueCommand('/CFS/CF/Reset(Value: 0)'); false false - + false @@ -2204,7 +2204,7 @@ Yamcs.issueCommand('/CFS/CF/Reset(Value: 0)'); false - + 13 @@ -2246,7 +2246,7 @@ Yamcs.issueCommand('/CFS/CF/EnaDisAutoSuspend(EnableDisable: 1)');]]>false false - + false @@ -2260,7 +2260,7 @@ Yamcs.issueCommand('/CFS/CF/EnaDisAutoSuspend(EnableDisable: 1)');]]> false - + 17 @@ -2302,7 +2302,7 @@ Yamcs.issueCommand('/CFS/CF/EnaDisAutoSuspend(EnableDisable: 0)');]]>false false - + false @@ -2316,7 +2316,7 @@ Yamcs.issueCommand('/CFS/CF/EnaDisAutoSuspend(EnableDisable: 0)');]]> false - + 17 @@ -2351,11 +2351,11 @@ $(pv_value) - true + false - + - 0 + 1 1 true diff --git a/tools/commander/workspace_template/Displays/Apps/CF/Cancel.opi b/tools/commander/workspace_template/Displays/Apps/CF/Cancel.opi index 962a5ecf3..272e4d242 100644 --- a/tools/commander/workspace_template/Displays/Apps/CF/Cancel.opi +++ b/tools/commander/workspace_template/Displays/Apps/CF/Cancel.opi @@ -1,178 +1,138 @@ - - true - - 31ffe3bf:150a7259bb9:-6563 - true - false - - 100 - - true - - 4.0.104.201510200439 - true - Display - - false - -1 - -1 - - - - - 230 - -1 - - 6 - true - -1 - true - - - - - - 0 - - 2 - - true - 31ffe3bf:150a7259bb9:-6541 - true - false - Transfer - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 53 - 8 - Label_5 - 17 - - - - - - Default - - - - false - 0 - $(pv_name) -$(pv_value) - 0 - - - false - - 0.0 - true - 29 - false - 1 - true - loc://Transfer<VString> - 0 - - - - true - Text Input - - Transfer - - - 1 - false - true - 31ffe3bf:150a7259bb9:-6540 - false - - true - - true - true - false - - false - 0 - false - - - - 135 - 74 - 12 - 1.7976931348623157E308 - - - - -1.7976931348623157E308 - - Default - - - - false - 0 - false - false - $(pv_name) -$(pv_value) - 0 - - true - 31ffe3bf:150a7259bb9:-652c - - Cancel Transfer - - false - 25 - 1 - - true - true - false - - - true - - - - - Action Button - false - - - - 163 - 30 - Action Button - 60 - - - - - - - ../scripts/RestartApp.js + + + + false + -1 + -1 + + false + + + + 1.5.3 + + + + 6 + 100 + + true + + + + + true + true + true + true + true + Display + 230 + 31ffe3bf:150a7259bb9:-6563 + -1 + -1 + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_5 + + + true + true + false + + + Transfer + + true + 1 + true + Label + 53 + false + 31ffe3bf:150a7259bb9:-6541 + 8 + 17 + + + + false + false + false + + + + false + + + + 1 + 1 + + true + + Default + + false + + + + 0 + 29 + 0 + false + 1.7976931348623157E308 + -1.7976931348623157E308 + false + Transfer + 0 + true + loc://Transfer<VString> + + 0.0 + + + true + true + false + + + 0 + true + + + $(pv_name) +$(pv_value) + false + true + Text Input + 135 + 31ffe3bf:150a7259bb9:-6540 + 74 + 12 + + + + + ../scripts/RestartApp.js - true - - - - - Default - - +]]> + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 25 + + Action Button + 0 + + + + + true + true + false + + + + Cancel Transfer + false + $(pv_name) +$(pv_value) + true + Action Button + 163 + 31ffe3bf:150a7259bb9:-652c + 30 + 60 + \ No newline at end of file diff --git a/tools/commander/workspace_template/Displays/Apps/CF/DeleteQueueNode.opi b/tools/commander/workspace_template/Displays/Apps/CF/DeleteQueueNode.opi index af21908d6..4c3cc2175 100644 --- a/tools/commander/workspace_template/Displays/Apps/CF/DeleteQueueNode.opi +++ b/tools/commander/workspace_template/Displays/Apps/CF/DeleteQueueNode.opi @@ -1,178 +1,138 @@ - - true - - 31ffe3bf:150a7259bb9:-6563 - true - false - - 100 - - true - - 4.0.104.201510200439 - true - Display - - false - -1 - -1 - - - - - 230 - -1 - - 6 - true - -1 - true - - - - - - 0 - - 2 - - true - 31ffe3bf:150a7259bb9:-6541 - true - false - Transfer - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 53 - 8 - Label_5 - 17 - - - - - - Default - - - - false - 0 - $(pv_name) -$(pv_value) - 0 - - - false - - 0.0 - true - 29 - false - 1 - true - loc://Transfer<VString> - 0 - - - - true - Text Input - - Transfer - - - 1 - false - true - 31ffe3bf:150a7259bb9:-6540 - false - - true - - true - true - false - - false - 0 - false - - - - 135 - 74 - 12 - 1.7976931348623157E308 - - - - -1.7976931348623157E308 - - Default - - - - false - 0 - false - false - $(pv_name) -$(pv_value) - 0 - - true - 31ffe3bf:150a7259bb9:-652c - - Delete Queue Node - - false - 25 - 1 - - true - true - false - - - true - - - - - Action Button - false - - - - 163 - 30 - Action Button - 60 - - - - - - - ../scripts/RestartApp.js + + + + false + -1 + -1 + + false + + + + 1.5.3 + + + + 6 + 100 + + true + + + + + true + true + true + true + true + Display + 230 + 31ffe3bf:150a7259bb9:-6563 + -1 + -1 + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_5 + + + true + true + false + + + Transfer + + true + 1 + true + Label + 53 + false + 31ffe3bf:150a7259bb9:-6541 + 8 + 17 + + + + false + false + false + + + + true + + + + 1 + 1 + + true + + Default + + false + + + + 0 + 29 + 0 + false + 1.7976931348623157E308 + -1.7976931348623157E308 + false + Transfer + 0 + true + loc://Transfer<VString> + + 0.0 + + + true + true + false + + + 0 + true + + + $(pv_name) +$(pv_value) + false + true + Text Input + 135 + 31ffe3bf:150a7259bb9:-6540 + 74 + 12 + + + + + ../scripts/RestartApp.js - true - - - - - Default - - +]]> + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 25 + + Action Button + 0 + + + + + true + true + false + + + + Delete Queue Node + false + $(pv_name) +$(pv_value) + true + Action Button + 163 + 31ffe3bf:150a7259bb9:-652c + 30 + 60 + \ No newline at end of file diff --git a/tools/commander/workspace_template/Displays/Apps/CF/DisableDequeue.opi b/tools/commander/workspace_template/Displays/Apps/CF/DisableDequeue.opi index ed7b61ebc..2bcb25edc 100644 --- a/tools/commander/workspace_template/Displays/Apps/CF/DisableDequeue.opi +++ b/tools/commander/workspace_template/Displays/Apps/CF/DisableDequeue.opi @@ -1,81 +1,41 @@ - - true - - 31ffe3bf:150a7259bb9:-673d - true - false - - 80 - - true - - 4.0.104.201510200439 - true - Display - - false - -1 - -1 - - - - - 290 - -1 - - 6 - true - -1 - true - - - - - - false - 0 - false - false - $(pv_name) -$(pv_value) - 0 - - true - 31ffe3bf:150a7259bb9:-670a - - Disable Dequeue - - false - 25 - 1 - - true - true - false - - - true - - - - - Action Button - false - - - - 163 - 60 - Action Button - 42 - - - - - - - ../scripts/RestartApp.js + + + + false + -1 + -1 + + false + + + + 1.5.3 + + + + 6 + 80 + + true + + + + + true + true + true + true + true + Display + 290 + 31ffe3bf:150a7259bb9:-673d + -1 + -1 + + + + ../scripts/RestartApp.js - true - - - - - Default - - - - 0 - - 2 - - true - 31ffe3bf:150a7259bb9:-66f9 - true - false - Channel - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 59 - 2 - Label_1 - 13 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - true - 31ffe3bf:150a7259bb9:-6615 - - - - true - - - true - 22 - 1 - - true - true - false - - false - true - loc://Channel - - - - Radio Box - false - - - - 229 - 78 - Channel - 12 - - - - - - Channel 1 - Channel 2 - - - Default - - +]]> + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 25 + + Action Button + 0 + + + + + true + true + false + + + + Disable Dequeue + false + $(pv_name) +$(pv_value) + true + Action Button + 163 + 31ffe3bf:150a7259bb9:-670a + 60 + 42 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_1 + + + true + true + false + + + Channel + + true + 1 + true + Label + 59 + false + 31ffe3bf:150a7259bb9:-66f9 + 2 + 13 + + + + false + false + + + + true + + + + 0 + 1 + true + + Default + + false + + + + 22 + true + + Channel 1 + Channel 2 + + false + Channel + loc://Channel + + + + true + true + false + + + + + + $(pv_name) +$(pv_value) + true + Radio Box + 229 + 31ffe3bf:150a7259bb9:-6615 + 78 + 12 + \ No newline at end of file diff --git a/tools/commander/workspace_template/Displays/Apps/CF/DisablePollingDirectory.opi b/tools/commander/workspace_template/Displays/Apps/CF/DisablePollingDirectory.opi index 212820464..c5089c921 100644 --- a/tools/commander/workspace_template/Displays/Apps/CF/DisablePollingDirectory.opi +++ b/tools/commander/workspace_template/Displays/Apps/CF/DisablePollingDirectory.opi @@ -1,81 +1,41 @@ - - true - - 31ffe3bf:150a7259bb9:-673d - true - false - - 130 - - true - - 4.0.104.201510200439 - true - Display - - false - -1 - -1 - - - - - 330 - -1 - - 6 - true - -1 - true - - - - - - false - 0 - false - false - $(pv_name) -$(pv_value) - 0 - - true - 31ffe3bf:150a7259bb9:-670a - - Disable Polling Directory - - false - 25 - 1 - - true - true - false - - - true - - - - - Action Button - false - - - - 163 - 84 - Action Button - 90 - - - - - - - ../scripts/RestartApp.js + + + + false + -1 + -1 + + false + + + + 1.5.3 + + + + 6 + 130 + + true + + + + + true + true + true + true + true + Display + 330 + 31ffe3bf:150a7259bb9:-673d + -1 + -1 + + + + ../scripts/RestartApp.js - true - - - - - Default - - - - 0 - - 2 - - true - 31ffe3bf:150a7259bb9:-66f9 - true - false - Channel - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 59 - 12 - Label_1 - 13 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - true - 31ffe3bf:150a7259bb9:-6615 - - - - true - - - true - 22 - 1 - - true - true - false - - false - true - loc://Channel - - - - Radio Box - false - - - - 307 - 84 - Channel - 12 - - - - - - Channel 1 - Channel 2 - - - Default - - - - 0 - - 2 - - true - -33cb7c72:150aa4c347f:-78ea - true - false - Directory Index - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 95 - 12 - Label_7 - 47 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - -33cb7c72:150aa4c347f:-78e9 - false - - - false - true - 29 - 1 - - true - true - false - - true - loc://Dir<VDouble> - 1 - 0 - false - - - - true - Spinner - 1.0 - false - false - - - - 10.0 - 135 - 114 - Dir - 42 - 1.7976931348623157E308 - - - - - -1.7976931348623157E308 - - Default - - +]]> + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 25 + + Action Button + 0 + + + + + true + true + false + + + + Disable Polling Directory + false + $(pv_name) +$(pv_value) + true + Action Button + 163 + 31ffe3bf:150a7259bb9:-670a + 84 + 90 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_1 + + + true + true + false + + + Channel + + true + 1 + true + Label + 59 + false + 31ffe3bf:150a7259bb9:-66f9 + 12 + 13 + + + + false + false + + + + true + + + + 0 + 1 + true + + Default + + false + + + + 22 + true + + Channel 1 + Channel 2 + + false + Channel + loc://Channel + + + + true + true + false + + + + + + $(pv_name) +$(pv_value) + true + Radio Box + 307 + 31ffe3bf:150a7259bb9:-6615 + 84 + 12 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_7 + + + true + true + false + + + Directory Index + + true + 1 + true + Label + 95 + false + -33cb7c72:150aa4c347f:-78ea + 12 + 47 + + + + false + false + + + + true + + + + 1 + 1 + false + true + + Default + + false + + + + 0 + 29 + 0 + false + false + 1.7976931348623157E308 + -1.7976931348623157E308 + Dir + 10.0 + 0 + true + loc://Dir<VDouble> + + + + true + true + false + + + true + 1.0 + $(pv_name) +$(pv_value) + false + 1 + true + Spinner + 135 + -33cb7c72:150aa4c347f:-78e9 + 114 + 42 + \ No newline at end of file diff --git a/tools/commander/workspace_template/Displays/Apps/CF/Downlink.opi b/tools/commander/workspace_template/Displays/Apps/CF/Downlink.opi index 4160669bd..7c2242d1f 100644 --- a/tools/commander/workspace_template/Displays/Apps/CF/Downlink.opi +++ b/tools/commander/workspace_template/Displays/Apps/CF/Downlink.opi @@ -8,7 +8,7 @@ false - + 1.5.3 @@ -42,9 +42,9 @@ true - + - 0 + 1 1 true @@ -214,9 +214,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -269,7 +269,7 @@ $(pv_value) false false - + false @@ -283,7 +283,7 @@ $(pv_value) false - + 13 @@ -400,9 +400,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -452,9 +452,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -504,9 +504,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -556,9 +556,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -608,9 +608,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -660,9 +660,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -712,9 +712,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -858,9 +858,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -910,9 +910,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -962,9 +962,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -1014,9 +1014,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -1066,9 +1066,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -1678,9 +1678,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -1730,9 +1730,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -1782,9 +1782,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -1834,9 +1834,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -1886,9 +1886,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -1938,9 +1938,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -1990,9 +1990,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -2136,9 +2136,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -2188,9 +2188,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -2240,9 +2240,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -2292,9 +2292,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -2344,9 +2344,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -2481,7 +2481,7 @@ Yamcs.issueCommand('/CFS/CF/Reset(Value: 0)');]]> false false - + false @@ -2495,7 +2495,7 @@ Yamcs.issueCommand('/CFS/CF/Reset(Value: 0)');]]> false - + 13 @@ -2536,7 +2536,7 @@ $(pv_value) false false - + false @@ -2590,7 +2590,7 @@ $(pv_value) false false - + false @@ -2633,18 +2633,19 @@ $(pv_value) - - scripts/NoOp.js - - false + + SetPollParam.opi + + true + + 0 false false - + false @@ -2699,7 +2700,7 @@ $(pv_value) false false - + false @@ -2754,7 +2755,7 @@ $(pv_value) false false - + false @@ -2809,7 +2810,7 @@ $(pv_value) false false - + false @@ -2864,7 +2865,7 @@ $(pv_value) false false - + false @@ -2919,7 +2920,7 @@ $(pv_value) false false - + false @@ -2974,7 +2975,7 @@ $(pv_value) false false - + false @@ -3029,7 +3030,7 @@ $(pv_value) false false - + false @@ -3084,7 +3085,7 @@ $(pv_value) false false - + false @@ -3139,7 +3140,7 @@ $(pv_value) false false - + false @@ -3194,7 +3195,7 @@ $(pv_value) false false - + false @@ -3250,7 +3251,7 @@ Yamcs.issueCommand('/CFS/CF/Reset(Value: 4)');]]> false false - + false @@ -3264,7 +3265,7 @@ Yamcs.issueCommand('/CFS/CF/Reset(Value: 4)');]]> false - + 23 @@ -3305,7 +3306,7 @@ $(pv_value) false false - + false diff --git a/tools/commander/workspace_template/Displays/Apps/CF/EnableDequeue.opi b/tools/commander/workspace_template/Displays/Apps/CF/EnableDequeue.opi index 573f79313..a0e062aff 100644 --- a/tools/commander/workspace_template/Displays/Apps/CF/EnableDequeue.opi +++ b/tools/commander/workspace_template/Displays/Apps/CF/EnableDequeue.opi @@ -1,81 +1,41 @@ - - true - - 31ffe3bf:150a7259bb9:-673d - true - false - - 80 - - true - - 4.0.104.201510200439 - true - Display - - false - -1 - -1 - - - - - 290 - -1 - - 6 - true - -1 - true - - - - - - false - 0 - false - false - $(pv_name) -$(pv_value) - 0 - - true - 31ffe3bf:150a7259bb9:-670a - - Enable Dequeue - - false - 25 - 1 - - true - true - false - - - true - - - - - Action Button - false - - - - 163 - 60 - Action Button - 42 - - - - - - - ../scripts/RestartApp.js + + + + false + -1 + -1 + + false + + + + 1.5.3 + + + + 6 + 80 + + true + + + + + true + true + true + true + true + Display + 290 + 31ffe3bf:150a7259bb9:-673d + -1 + -1 + + + + ../scripts/RestartApp.js - true - - - - - Default - - - - 0 - - 2 - - true - 31ffe3bf:150a7259bb9:-66f9 - true - false - Channel - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 59 - 12 - Label_1 - 13 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - true - 31ffe3bf:150a7259bb9:-6615 - - - - true - - - true - 22 - 1 - - true - true - false - - false - true - loc://Channel - - - - Radio Box - false - - - - 229 - 78 - Channel - 12 - - - - - - Channel 1 - Channel 2 - - - Default - - +]]> + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 25 + + Action Button + 0 + + + + + true + true + false + + + + Enable Dequeue + false + $(pv_name) +$(pv_value) + true + Action Button + 163 + 31ffe3bf:150a7259bb9:-670a + 60 + 42 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_1 + + + true + true + false + + + Channel + + true + 1 + true + Label + 59 + false + 31ffe3bf:150a7259bb9:-66f9 + 12 + 13 + + + + false + false + + + + true + + + + 0 + 1 + true + + Default + + false + + + + 22 + true + + Channel 1 + Channel 2 + + false + Channel + loc://Channel + + + + true + true + false + + + + + + $(pv_name) +$(pv_value) + true + Radio Box + 229 + 31ffe3bf:150a7259bb9:-6615 + 78 + 12 + \ No newline at end of file diff --git a/tools/commander/workspace_template/Displays/Apps/CF/EnablePollingDirectory.opi b/tools/commander/workspace_template/Displays/Apps/CF/EnablePollingDirectory.opi index eede74d93..83b26f70b 100644 --- a/tools/commander/workspace_template/Displays/Apps/CF/EnablePollingDirectory.opi +++ b/tools/commander/workspace_template/Displays/Apps/CF/EnablePollingDirectory.opi @@ -1,81 +1,41 @@ - - true - - 31ffe3bf:150a7259bb9:-673d - true - false - - 130 - - true - - 4.0.104.201510200439 - true - Display - - false - -1 - -1 - - - - - 330 - -1 - - 6 - true - -1 - true - - - - - - false - 0 - false - false - $(pv_name) -$(pv_value) - 0 - - true - 31ffe3bf:150a7259bb9:-670a - - Enable Polling Directory - - false - 25 - 1 - - true - true - false - - - true - - - - - Action Button - false - - - - 163 - 84 - Action Button - 90 - - - - - - - ../scripts/RestartApp.js + + + + false + -1 + -1 + + false + + + + 1.5.3 + + + + 6 + 130 + + true + + + + + true + true + true + true + true + Display + 330 + 31ffe3bf:150a7259bb9:-673d + -1 + -1 + + + + ../scripts/RestartApp.js - true - - - - - Default - - - - 0 - - 2 - - true - 31ffe3bf:150a7259bb9:-66f9 - true - false - Channel - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 59 - 12 - Label_1 - 13 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - true - 31ffe3bf:150a7259bb9:-6615 - - - - true - - - true - 22 - 1 - - true - true - false - - false - true - loc://Channel - - - - Radio Box - false - - - - 307 - 84 - Channel - 12 - - - - - - Channel 1 - Channel 2 - - - Default - - - - 0 - - 2 - - true - -33cb7c72:150aa4c347f:-78ea - true - false - Directory Index - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 95 - 12 - Label_7 - 47 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - -33cb7c72:150aa4c347f:-78e9 - false - - - false - true - 29 - 1 - - true - true - false - - true - loc://Dir<VDouble> - 1 - 0 - false - - - - true - Spinner - 1.0 - false - false - - - - 10.0 - 135 - 114 - Dir - 42 - 1.7976931348623157E308 - - - - - -1.7976931348623157E308 - - Default - - +]]> + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 25 + + Action Button + 0 + + + + + true + true + false + + + + Enable Polling Directory + false + $(pv_name) +$(pv_value) + true + Action Button + 163 + 31ffe3bf:150a7259bb9:-670a + 84 + 90 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_1 + + + true + true + false + + + Channel + + true + 1 + true + Label + 59 + false + 31ffe3bf:150a7259bb9:-66f9 + 12 + 13 + + + + false + false + + + + true + + + + 0 + 1 + true + + Default + + false + + + + 22 + true + + Channel 1 + Channel 2 + + false + Channel + loc://Channel + + + + true + true + false + + + + + + $(pv_name) +$(pv_value) + true + Radio Box + 307 + 31ffe3bf:150a7259bb9:-6615 + 84 + 12 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_7 + + + true + true + false + + + Directory Index + + true + 1 + true + Label + 95 + false + -33cb7c72:150aa4c347f:-78ea + 12 + 47 + + + + false + false + + + + true + + + + 1 + 1 + false + true + + Default + + false + + + + 0 + 29 + 0 + false + false + 1.7976931348623157E308 + -1.7976931348623157E308 + Dir + 10.0 + 0 + true + loc://Dir<VDouble> + + + + true + true + false + + + true + 1.0 + $(pv_name) +$(pv_value) + false + 1 + true + Spinner + 135 + -33cb7c72:150aa4c347f:-78e9 + 114 + 42 + \ No newline at end of file diff --git a/tools/commander/workspace_template/Displays/Apps/CF/Engine.opi b/tools/commander/workspace_template/Displays/Apps/CF/Engine.opi index 2411c88a0..fd69c71e4 100644 --- a/tools/commander/workspace_template/Displays/Apps/CF/Engine.opi +++ b/tools/commander/workspace_template/Displays/Apps/CF/Engine.opi @@ -8,11 +8,11 @@ false - + 1.5.3 - + 6 670 @@ -42,9 +42,9 @@ true - + - 0 + 1 1 true @@ -214,9 +214,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -269,7 +269,7 @@ $(pv_value) false false - + false @@ -283,7 +283,7 @@ $(pv_value) false - + 13 @@ -360,9 +360,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -1275,9 +1275,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -1327,9 +1327,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -1379,9 +1379,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -1431,9 +1431,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -1483,9 +1483,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -1535,9 +1535,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -1587,9 +1587,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -1639,9 +1639,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -1691,9 +1691,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -1743,9 +1743,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -1795,9 +1795,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -2292,7 +2292,7 @@ Yamcs.issueCommand('/CFS/CF/Reset(Value: 0)');]]> false false - + false @@ -2306,7 +2306,7 @@ Yamcs.issueCommand('/CFS/CF/Reset(Value: 0)');]]> false - + 13 @@ -2346,7 +2346,7 @@ $(pv_value) false false - + false @@ -2360,7 +2360,7 @@ $(pv_value) false - + 20 @@ -2400,7 +2400,7 @@ $(pv_value) false false - + false @@ -2414,7 +2414,7 @@ $(pv_value) false - + 20 diff --git a/tools/commander/workspace_template/Displays/Apps/CF/Faults.opi b/tools/commander/workspace_template/Displays/Apps/CF/Faults.opi index 9f1f173d5..844595014 100644 --- a/tools/commander/workspace_template/Displays/Apps/CF/Faults.opi +++ b/tools/commander/workspace_template/Displays/Apps/CF/Faults.opi @@ -8,7 +8,7 @@ false - + 1.5.3 @@ -42,9 +42,9 @@ true - + - 0 + 1 1 true @@ -214,9 +214,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -269,7 +269,7 @@ $(pv_value) false false - + false @@ -283,7 +283,7 @@ $(pv_value) false - + 13 @@ -400,9 +400,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -452,9 +452,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -504,9 +504,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -556,9 +556,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -608,9 +608,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -660,9 +660,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -712,9 +712,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -764,9 +764,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -1146,7 +1146,7 @@ Yamcs.issueCommand('/CFS/CF/Reset(Value: 1)'); false false - + false @@ -1160,7 +1160,7 @@ Yamcs.issueCommand('/CFS/CF/Reset(Value: 1)'); false - + 13 @@ -1204,7 +1204,7 @@ Yamcs.issueCommand('/CFS/CF/Reset(Value: 2)'); false false - + false @@ -1218,7 +1218,7 @@ Yamcs.issueCommand('/CFS/CF/Reset(Value: 2)'); false - + 20 diff --git a/tools/commander/workspace_template/Displays/Apps/CF/GetMIBParam.opi b/tools/commander/workspace_template/Displays/Apps/CF/GetMIBParam.opi index ee6852076..b4bf9518b 100644 --- a/tools/commander/workspace_template/Displays/Apps/CF/GetMIBParam.opi +++ b/tools/commander/workspace_template/Displays/Apps/CF/GetMIBParam.opi @@ -1,81 +1,41 @@ - - true - - 31ffe3bf:150a7259bb9:-673d - true - false - - 100 - - true - - 4.0.104.201510200439 - true - Display - - false - -1 - -1 - - - - - 250 - -1 - - 6 - true - -1 - true - - - - - - false - 0 - false - false - $(pv_name) -$(pv_value) - 0 - - true - 31ffe3bf:150a7259bb9:-670a - - Get Parameter - - false - 25 - 1 - - true - true - false - - - true - - - - - Action Button - false - - - - 163 - 54 - Action Button - 60 - - - - - - - ../scripts/RestartApp.js + + + + false + -1 + -1 + + false + + + + 1.5.3 + + + + 6 + 100 + + true + + + + + true + true + true + true + true + Display + 250 + 31ffe3bf:150a7259bb9:-673d + -1 + -1 + + + + ../scripts/RestartApp.js - true - - - - - Default - - - - 0 - - 2 - - true - 31ffe3bf:150a7259bb9:-66d5 - true - false - Parameter - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 83 - 12 - Label_4 - 17 - - - - - - Default - - - - false - 0 - $(pv_name) -$(pv_value) - 0 - - - false - - 0.0 - true - 29 - false - 1 - true - loc://Parameter<VString> - 0 - - - - true - Text Input - - Parameter - - - 1 - false - true - 31ffe3bf:150a7259bb9:-66d4 - false - - true - - true - true - false - - false - 0 - false - - - - 135 - 102 - 12 - 1.7976931348623157E308 - - - - -1.7976931348623157E308 - - Default - - +]]> + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 25 + + Action Button + 0 + + + + + true + true + false + + + + Get Parameter + false + $(pv_name) +$(pv_value) + true + Action Button + 163 + 31ffe3bf:150a7259bb9:-670a + 54 + 60 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_4 + + + true + true + false + + + Parameter + + true + 1 + true + Label + 83 + false + 31ffe3bf:150a7259bb9:-66d5 + 12 + 17 + + + + false + false + false + + + + true + + + + 1 + 1 + + true + + Default + + false + + + + 0 + 29 + 0 + false + 1.7976931348623157E308 + -1.7976931348623157E308 + false + Parameter + 0 + true + loc://Parameter<VString> + + 0.0 + + + true + true + false + + + 0 + true + + + $(pv_name) +$(pv_value) + false + true + Text Input + 135 + 31ffe3bf:150a7259bb9:-66d4 + 102 + 12 + \ No newline at end of file diff --git a/tools/commander/workspace_template/Displays/Apps/CF/GiveTake.opi b/tools/commander/workspace_template/Displays/Apps/CF/GiveTake.opi index c410b289c..f0ec532fd 100644 --- a/tools/commander/workspace_template/Displays/Apps/CF/GiveTake.opi +++ b/tools/commander/workspace_template/Displays/Apps/CF/GiveTake.opi @@ -1,81 +1,41 @@ - - true - - 31ffe3bf:150a7259bb9:-673d - true - false - - 100 - - true - - 4.0.104.201510200439 - true - Display - - false - -1 - -1 - - - - - 300 - -1 - - 6 - true - -1 - true - - - - - - false - 0 - false - false - $(pv_name) -$(pv_value) - 0 - - true - 31ffe3bf:150a7259bb9:-670a - - Give - - false - 25 - 1 - - true - true - false - - - true - - - - - Action Button - false - - - - 73 - 60 - Action Button - 54 - - - - - - - ../scripts/RestartApp.js + + + + false + -1 + -1 + + false + + + + 1.5.3 + + + + 6 + 100 + + true + + + + + true + true + true + true + true + Display + 300 + 31ffe3bf:150a7259bb9:-673d + -1 + -1 + + + + ../scripts/RestartApp.js - true - - - - - Default - - - - 0 - - 2 - - true - 31ffe3bf:150a7259bb9:-6709 - true - false - Channel - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 61 - 18 - Label - 19 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - true - -33cb7c72:150aa4c347f:-788f - - - - true - - - true - 22 - 1 - - true - true - false - - false - true - loc://Channel - - - - Radio Box - false - - - - 205 - 90 - Channel - 18 - - - - - - Channel 1 - Channel 2 - - - Default - - - - false - 0 - false - false - $(pv_name) -$(pv_value) - 0 - - true - -33cb7c72:150aa4c347f:-77c7 - - Take - - false - 25 - 1 - - true - true - false - - - true - - - - - Action Button - false - - - - 73 - 144 - Action Button_1 - 54 - - - - - - - ../scripts/RestartApp.js +]]> + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 25 + + Action Button + 0 + + + + + true + true + false + + + + Give + false + $(pv_name) +$(pv_value) + true + Action Button + 73 + 31ffe3bf:150a7259bb9:-670a + 60 + 54 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label + + + true + true + false + + + Channel + + true + 1 + true + Label + 61 + false + 31ffe3bf:150a7259bb9:-6709 + 18 + 19 + + + + false + false + + + + true + + + + 0 + 1 + true + + Default + + false + + + + 22 + true + + Channel 1 + Channel 2 + + false + Channel + loc://Channel + + + + true + true + false + + + + + + $(pv_name) +$(pv_value) + true + Radio Box + 205 + -33cb7c72:150aa4c347f:-788f + 90 + 18 + + + + + ../scripts/RestartApp.js - true - - - - - Default - - +]]> + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 25 + + Action Button_1 + 0 + + + + + true + true + false + + + + Take + false + $(pv_name) +$(pv_value) + true + Action Button + 73 + -33cb7c72:150aa4c347f:-77c7 + 144 + 54 + \ No newline at end of file diff --git a/tools/commander/workspace_template/Displays/Apps/CF/Kickstart.opi b/tools/commander/workspace_template/Displays/Apps/CF/Kickstart.opi index 99dda9fef..e1b9817c7 100644 --- a/tools/commander/workspace_template/Displays/Apps/CF/Kickstart.opi +++ b/tools/commander/workspace_template/Displays/Apps/CF/Kickstart.opi @@ -1,81 +1,41 @@ - - true - - 31ffe3bf:150a7259bb9:-673d - true - false - - 100 - - true - - 4.0.104.201510200439 - true - Display - - false - -1 - -1 - - - - - 300 - -1 - - 6 - true - -1 - true - - - - - - false - 0 - false - false - $(pv_name) -$(pv_value) - 0 - - true - 31ffe3bf:150a7259bb9:-670a - - Kickstart - - false - 25 - 1 - - true - true - false - - - true - - - - - Action Button - false - - - - 163 - 58 - Action Button - 54 - - - - - - - ../scripts/RestartApp.js + + + + false + -1 + -1 + + false + + + + 1.5.3 + + + + 6 + 100 + + true + + + + + true + true + true + true + true + Display + 300 + 31ffe3bf:150a7259bb9:-673d + -1 + -1 + + + + ../scripts/RestartApp.js - true - - - - - Default - - - - 0 - - 2 - - true - 31ffe3bf:150a7259bb9:-6709 - true - false - Channel - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 61 - 12 - Label - 19 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - true - -33cb7c72:150aa4c347f:-788f - - - - true - - - true - 22 - 1 - - true - true - false - - false - true - loc://Channel - - - - Radio Box - false - - - - 211 - 84 - Channel - 18 - - - - - - Channel 1 - Channel 2 - - - Default - - +]]> + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 25 + + Action Button + 0 + + + + + true + true + false + + + + Kickstart + false + $(pv_name) +$(pv_value) + true + Action Button + 163 + 31ffe3bf:150a7259bb9:-670a + 58 + 54 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label + + + true + true + false + + + Channel + + true + 1 + true + Label + 61 + false + 31ffe3bf:150a7259bb9:-6709 + 12 + 19 + + + + false + false + + + + true + + + + 0 + 1 + true + + Default + + false + + + + 22 + true + + Channel 1 + Channel 2 + + false + Channel + loc://Channel + + + + true + true + false + + + + + + $(pv_name) +$(pv_value) + true + Radio Box + 211 + -33cb7c72:150aa4c347f:-788f + 84 + 18 + \ No newline at end of file diff --git a/tools/commander/workspace_template/Displays/Apps/CF/Main.opi b/tools/commander/workspace_template/Displays/Apps/CF/Main.opi index e417d1132..9481b2c2b 100644 --- a/tools/commander/workspace_template/Displays/Apps/CF/Main.opi +++ b/tools/commander/workspace_template/Displays/Apps/CF/Main.opi @@ -8,7 +8,7 @@ false - + 1.5.3 @@ -86,7 +86,7 @@ false false - + false @@ -141,7 +141,7 @@ $(pv_value) false false - + false @@ -196,7 +196,7 @@ $(pv_value) false false - + false @@ -251,7 +251,7 @@ $(pv_value) false false - + false @@ -306,7 +306,7 @@ $(pv_value) false false - + false @@ -347,96 +347,4 @@ $(pv_value) 70 135 - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 37 - 1 - Label - - - true - true - false - - - Stuff - - true - 1 - true - Label - 169 - false - -400e50e1:1518d4ecb8d:-7dfd - 108 - 372 - - - - false - false - false - - - - true - - - - 0 - 1 - true - - Default - - false - - - - 1 - 31 - 0 - Text Update - 0 - false - /cfs/cfe_es/CFE_ES_HkPacket_t.Payload.CmdCounter - - 0.0 - - - true - true - false - - - true - ###### - $(pv_name) -$(pv_value) - false - 1 - true - Text Update - 193 - false - -400e50e1:1518d4ecb8d:-7ca2 - 276 - 378 - \ No newline at end of file diff --git a/tools/commander/workspace_template/Displays/Apps/CF/PlaybackDirectory.opi b/tools/commander/workspace_template/Displays/Apps/CF/PlaybackDirectory.opi index 4b8e3c6cb..8396de2e5 100644 --- a/tools/commander/workspace_template/Displays/Apps/CF/PlaybackDirectory.opi +++ b/tools/commander/workspace_template/Displays/Apps/CF/PlaybackDirectory.opi @@ -1,81 +1,41 @@ - - true - - 31ffe3bf:150a7259bb9:-673d - true - false - - 270 - - true - - 4.0.104.201510200439 - true - Display - - false - -1 - -1 - - - - - 400 - -1 - - 6 - true - -1 - true - - - - - - false - 0 - false - false - $(pv_name) -$(pv_value) - 0 - - true - 31ffe3bf:150a7259bb9:-670a - - Playback Directory - - false - 25 - 1 - - true - true - false - - - true - - - - - Action Button - false - - - - 163 - 102 - Action Button - 228 - - - - - - - ../scripts/RestartApp.js + + + + false + -1 + -1 + + false + + + + 1.5.3 + + + + 6 + 270 + + true + + + + + true + true + true + true + true + Display + 400 + 31ffe3bf:150a7259bb9:-673d + -1 + -1 + + + + ../scripts/RestartApp.js - true - - - - - Default - - - - 0 - - 2 - - true - 31ffe3bf:150a7259bb9:-6709 - true - false - Class - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 83 - 12 - Label - 17 - - - - - - Default - - - - 0 - - 2 - - true - 31ffe3bf:150a7259bb9:-66f9 - true - false - Channel - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 83 - 12 - Label_1 - 45 - - - - - - Default - - - - 0 - - 2 - - true - 31ffe3bf:150a7259bb9:-66ee - true - false - Priority - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 83 - 12 - Label_2 - 73 - - - - - - Default - - - - 0 - - 2 - - true - 31ffe3bf:150a7259bb9:-66e0 - true - false - Preserve - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 83 - 12 - Label_3 - 101 - - - - - - Default - - - - 0 - - 2 - - true - 31ffe3bf:150a7259bb9:-66d5 - true - false - Peer Entity ID - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 83 - 12 - Label_4 - 129 - - - - - - Default - - - - false - 0 - $(pv_name) -$(pv_value) - 0 - - - false - - 0.0 - true - 29 - false - 1 - true - loc://PeerEntityID<VString> - 0 - - - - true - Text Input - - PeerEntityID - - - 1 - false - true - 31ffe3bf:150a7259bb9:-66d4 - false - - true - - true - true - false - - false - 0 - false - - - - 135 - 102 - 124 - 1.7976931348623157E308 - - - - -1.7976931348623157E308 - - Default - - - - 0 - - 2 - - true - 31ffe3bf:150a7259bb9:-66ca - true - false - Source - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 83 - 12 - Label_5 - 157 - - - - - - Default - - - - false - 0 - $(pv_name) -$(pv_value) - 0 - - - false - - 0.0 - true - 29 - false - 1 - true - loc://Source<VString> - 0 - - - - true - Text Input - - Counters_5 - - - 1 - false - true - 31ffe3bf:150a7259bb9:-66c9 - false - - true - - true - true - false - - false - 0 - false - - - - 135 - 102 - 152 - 1.7976931348623157E308 - - - - -1.7976931348623157E308 - - Default - - - - 0 - - 2 - - true - 31ffe3bf:150a7259bb9:-66bf - true - false - Destination - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 83 - 12 - Label_6 - 185 - - - - - - Default - - - - false - 0 - $(pv_name) -$(pv_value) - 0 - - - false - - 0.0 - true - 29 - false - 1 - true - loc://Destination<VString> - 0 - - - - true - Text Input - - Counters_6 - - - 1 - false - true - 31ffe3bf:150a7259bb9:-66be - false - - true - - true - true - false - - false - 0 - false - - - - 135 - 102 - 180 - 1.7976931348623157E308 - - - - -1.7976931348623157E308 - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 31ffe3bf:150a7259bb9:-669e - false - - - false - true - 29 - 1 - - true - true - false - - true - loc://Priority<VDouble> - 1 - 0 - false - - - - true - Spinner - 1.0 - false - false - - - - 10.0 - 135 - 102 - Priority - 68 - 1.7976931348623157E308 - - - - - -1.7976931348623157E308 - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - true - 31ffe3bf:150a7259bb9:-6626 - - - - true - - - true - 22 - 1 - - true - true - false - - false - true - loc://TransferClass - - - - Radio Box - false - - - - 307 - 102 - TransferClass - 16 - - - - - - Class 1 (Unreliable) - Class 2 (Reliable) - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - true - 31ffe3bf:150a7259bb9:-6615 - - - - true - - - true - 22 - 1 - - true - true - false - - false - true - loc://Channel - - - - Radio Box - false - - - - 307 - 102 - Channel - 44 - - - - - - Channel 1 - Channel 2 - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - true - 31ffe3bf:150a7259bb9:-6604 - - - - true - - - true - 22 - 1 - - true - true - false - - false - true - loc://Preserve - - - - Radio Box - false - - - - 307 - 102 - Preserve - 100 - - - - - - Delete - Keep - - - Default - - +]]> + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 25 + + Action Button + 0 + + + + + true + true + false + + + + Playback Directory + false + $(pv_name) +$(pv_value) + true + Action Button + 163 + 31ffe3bf:150a7259bb9:-670a + 102 + 228 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label + + + true + true + false + + + Class + + true + 1 + true + Label + 83 + false + 31ffe3bf:150a7259bb9:-6709 + 12 + 17 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_1 + + + true + true + false + + + Channel + + true + 1 + true + Label + 83 + false + 31ffe3bf:150a7259bb9:-66f9 + 12 + 45 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_2 + + + true + true + false + + + Priority + + true + 1 + true + Label + 83 + false + 31ffe3bf:150a7259bb9:-66ee + 12 + 73 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_3 + + + true + true + false + + + Preserve + + true + 1 + true + Label + 83 + false + 31ffe3bf:150a7259bb9:-66e0 + 12 + 101 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_4 + + + true + true + false + + + Peer Entity ID + + true + 1 + true + Label + 83 + false + 31ffe3bf:150a7259bb9:-66d5 + 12 + 129 + + + + false + false + false + + + + true + + + + 1 + 1 + + true + + Default + + false + + + + 0 + 29 + 0 + false + 1.7976931348623157E308 + -1.7976931348623157E308 + false + PeerEntityID + 0 + true + loc://PeerEntityID<VString> + + 0.0 + + + true + true + false + + + 0 + true + + + $(pv_name) +$(pv_value) + false + true + Text Input + 135 + 31ffe3bf:150a7259bb9:-66d4 + 102 + 124 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_5 + + + true + true + false + + + Source + + true + 1 + true + Label + 83 + false + 31ffe3bf:150a7259bb9:-66ca + 12 + 157 + + + + false + false + false + + + + true + + + + 1 + 1 + + true + + Default + + false + + + + 0 + 29 + 0 + false + 1.7976931348623157E308 + -1.7976931348623157E308 + false + Counters_5 + 0 + true + loc://Source<VString> + + 0.0 + + + true + true + false + + + 0 + true + + + $(pv_name) +$(pv_value) + false + true + Text Input + 135 + 31ffe3bf:150a7259bb9:-66c9 + 102 + 152 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_6 + + + true + true + false + + + Destination + + true + 1 + true + Label + 83 + false + 31ffe3bf:150a7259bb9:-66bf + 12 + 185 + + + + false + false + false + + + + true + + + + 1 + 1 + + true + + Default + + false + + + + 0 + 29 + 0 + false + 1.7976931348623157E308 + -1.7976931348623157E308 + false + Counters_6 + 0 + true + loc://Destination<VString> + + 0.0 + + + true + true + false + + + 0 + true + + + $(pv_name) +$(pv_value) + false + true + Text Input + 135 + 31ffe3bf:150a7259bb9:-66be + 102 + 180 + + + + false + false + + + + true + + + + 0 + 1 + false + true + + Default + + false + + + + 0 + 29 + 0 + false + false + 1.7976931348623157E308 + -1.7976931348623157E308 + Priority + 10.0 + 0 + true + loc://Priority<VDouble> + + + + true + true + false + + + true + 1.0 + $(pv_name) +$(pv_value) + false + 1 + true + Spinner + 135 + 31ffe3bf:150a7259bb9:-669e + 102 + 68 + + + + false + false + + + + true + + + + 0 + 1 + true + + Default + + false + + + + 22 + true + + Class 1 (Unreliable) + Class 2 (Reliable) + + false + TransferClass + loc://TransferClass + + + + true + true + false + + + + + + $(pv_name) +$(pv_value) + true + Radio Box + 307 + 31ffe3bf:150a7259bb9:-6626 + 102 + 16 + + + + false + false + + + + true + + + + 0 + 1 + true + + Default + + false + + + + 22 + true + + Channel 1 + Channel 2 + + false + Channel + loc://Channel + + + + true + true + false + + + + + + $(pv_name) +$(pv_value) + true + Radio Box + 307 + 31ffe3bf:150a7259bb9:-6615 + 102 + 44 + + + + false + false + + + + true + + + + 0 + 1 + true + + Default + + false + + + + 22 + true + + Delete + Keep + + false + Preserve + loc://Preserve + + + + true + true + false + + + + + + $(pv_name) +$(pv_value) + true + Radio Box + 307 + 31ffe3bf:150a7259bb9:-6604 + 102 + 100 + \ No newline at end of file diff --git a/tools/commander/workspace_template/Displays/Apps/CF/PlaybackFile.opi b/tools/commander/workspace_template/Displays/Apps/CF/PlaybackFile.opi index e984f46e4..929c7dc86 100644 --- a/tools/commander/workspace_template/Displays/Apps/CF/PlaybackFile.opi +++ b/tools/commander/workspace_template/Displays/Apps/CF/PlaybackFile.opi @@ -1,81 +1,41 @@ - - true - - 31ffe3bf:150a7259bb9:-673d - true - false - - 270 - - true - - 4.0.104.201510200439 - true - Display - - false - -1 - -1 - - - - - 400 - -1 - - 6 - true - -1 - true - - - - - - false - 0 - false - false - $(pv_name) -$(pv_value) - 0 - - true - 31ffe3bf:150a7259bb9:-670a - - Playback File - - false - 25 - 1 - - true - true - false - - - true - - - - - Action Button - false - - - - 163 - 102 - Action Button - 228 - - - - - - - ../scripts/RestartApp.js + + + + false + -1 + -1 + + false + + + + 1.5.3 + + + + 6 + 270 + + true + + + + + true + true + true + true + true + Display + 400 + 31ffe3bf:150a7259bb9:-673d + -1 + -1 + + + + ../scripts/RestartApp.js - true - - - - - Default - - - - 0 - - 2 - - true - 31ffe3bf:150a7259bb9:-6709 - true - false - Class - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 83 - 12 - Label - 17 - - - - - - Default - - - - 0 - - 2 - - true - 31ffe3bf:150a7259bb9:-66f9 - true - false - Channel - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 83 - 12 - Label_1 - 45 - - - - - - Default - - - - 0 - - 2 - - true - 31ffe3bf:150a7259bb9:-66ee - true - false - Priority - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 83 - 12 - Label_2 - 73 - - - - - - Default - - - - 0 - - 2 - - true - 31ffe3bf:150a7259bb9:-66e0 - true - false - Preserve - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 83 - 12 - Label_3 - 101 - - - - - - Default - - - - 0 - - 2 - - true - 31ffe3bf:150a7259bb9:-66d5 - true - false - Peer Entity ID - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 83 - 12 - Label_4 - 129 - - - - - - Default - - - - false - 0 - $(pv_name) -$(pv_value) - 0 - - - false - - 0.0 - true - 29 - false - 1 - true - loc://PeerEntityID<VString> - 0 - - - - true - Text Input - - PeerEntityID - - - 1 - false - true - 31ffe3bf:150a7259bb9:-66d4 - false - - true - - true - true - false - - false - 0 - false - - - - 135 - 102 - 124 - Infinity - - - - -Infinity - - Default - - - - 0 - - 2 - - true - 31ffe3bf:150a7259bb9:-66ca - true - false - Source - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 83 - 12 - Label_5 - 157 - - - - - - Default - - - - false - 0 - $(pv_name) -$(pv_value) - 0 - - - false - - 0.0 - true - 29 - false - 1 - true - loc://Source<VString> - 0 - - - - true - Text Input - - Counters_5 - - - 1 - false - true - 31ffe3bf:150a7259bb9:-66c9 - false - - true - - true - true - false - - false - 0 - false - - - - 135 - 102 - 152 - Infinity - - - - -Infinity - - Default - - - - 0 - - 2 - - true - 31ffe3bf:150a7259bb9:-66bf - true - false - Destination - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 83 - 12 - Label_6 - 185 - - - - - - Default - - - - false - 0 - $(pv_name) -$(pv_value) - 0 - - - false - - 0.0 - true - 29 - false - 1 - true - loc://Destination<VString> - 0 - - - - true - Text Input - - Counters_6 - - - 1 - false - true - 31ffe3bf:150a7259bb9:-66be - false - - true - - true - true - false - - false - 0 - false - - - - 135 - 102 - 180 - Infinity - - - - -Infinity - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 31ffe3bf:150a7259bb9:-669e - false - - - false - true - 29 - 1 - - true - true - false - - true - loc://Priority<VDouble> - 1 - 0 - false - - - - true - Spinner - 1.0 - false - false - - - - 10.0 - 135 - 102 - Priority - 68 - 1.7976931348623157E308 - - - - - -1.7976931348623157E308 - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - true - 31ffe3bf:150a7259bb9:-6626 - - - - true - - - true - 22 - 1 - - true - true - false - - false - true - loc://TransferClass - - - - Radio Box - false - - - - 307 - 102 - TransferClass - 16 - - - - - - Class 1 (Unreliable) - Class 2 (Reliable) - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - true - 31ffe3bf:150a7259bb9:-6615 - - - - true - - - true - 22 - 1 - - true - true - false - - false - true - loc://Channel - - - - Radio Box - false - - - - 307 - 102 - Channel - 44 - - - - - - Channel 1 - Channel 2 - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - true - 31ffe3bf:150a7259bb9:-6604 - - - - true - - - true - 22 - 1 - - true - true - false - - false - true - loc://Preserve - - - - Radio Box - false - - - - 307 - 102 - Preserve - 100 - - - - - - Delete - Keep - - - Default - - +]]> + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 25 + + Action Button + 0 + + + + + true + true + false + + + + Playback File + false + $(pv_name) +$(pv_value) + true + Action Button + 163 + 31ffe3bf:150a7259bb9:-670a + 102 + 228 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label + + + true + true + false + + + Class + + true + 1 + true + Label + 83 + false + 31ffe3bf:150a7259bb9:-6709 + 12 + 17 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_1 + + + true + true + false + + + Channel + + true + 1 + true + Label + 83 + false + 31ffe3bf:150a7259bb9:-66f9 + 12 + 45 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_2 + + + true + true + false + + + Priority + + true + 1 + true + Label + 83 + false + 31ffe3bf:150a7259bb9:-66ee + 12 + 73 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_3 + + + true + true + false + + + Preserve + + true + 1 + true + Label + 83 + false + 31ffe3bf:150a7259bb9:-66e0 + 12 + 101 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_4 + + + true + true + false + + + Peer Entity ID + + true + 1 + true + Label + 83 + false + 31ffe3bf:150a7259bb9:-66d5 + 12 + 129 + + + + false + false + false + + + + true + + + + 1 + 1 + + true + + Default + + false + + + + 0 + 29 + 0 + false + 1.7976931348623157E308 + -1.7976931348623157E308 + false + PeerEntityID + 0 + true + loc://PeerEntityID<VString> + + 0.0 + + + true + true + false + + + 0 + true + + + $(pv_name) +$(pv_value) + false + true + Text Input + 135 + 31ffe3bf:150a7259bb9:-66d4 + 102 + 124 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_5 + + + true + true + false + + + Source + + true + 1 + true + Label + 83 + false + 31ffe3bf:150a7259bb9:-66ca + 12 + 157 + + + + false + false + false + + + + true + + + + 1 + 1 + + true + + Default + + false + + + + 0 + 29 + 0 + false + 1.7976931348623157E308 + -1.7976931348623157E308 + false + Counters_5 + 0 + true + loc://Source<VString> + + 0.0 + + + true + true + false + + + 0 + true + + + $(pv_name) +$(pv_value) + false + true + Text Input + 135 + 31ffe3bf:150a7259bb9:-66c9 + 102 + 152 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_6 + + + true + true + false + + + Destination + + true + 1 + true + Label + 83 + false + 31ffe3bf:150a7259bb9:-66bf + 12 + 185 + + + + false + false + false + + + + true + + + + 1 + 1 + + true + + Default + + false + + + + 0 + 29 + 0 + false + 1.7976931348623157E308 + -1.7976931348623157E308 + false + Counters_6 + 0 + true + loc://Destination<VString> + + 0.0 + + + true + true + false + + + 0 + true + + + $(pv_name) +$(pv_value) + false + true + Text Input + 135 + 31ffe3bf:150a7259bb9:-66be + 102 + 180 + + + + false + false + + + + true + + + + 1 + 1 + false + true + + Default + + false + + + + 0 + 29 + 0 + false + false + 1.7976931348623157E308 + -1.7976931348623157E308 + Priority + 10.0 + 0 + true + loc://Priority<VDouble> + + + + true + true + false + + + true + 1.0 + $(pv_name) +$(pv_value) + false + 1 + true + Spinner + 135 + 31ffe3bf:150a7259bb9:-669e + 102 + 68 + + + + false + false + + + + true + + + + 0 + 1 + true + + Default + + false + + + + 22 + true + + Class 1 (Unreliable) + Class 2 (Reliable) + + false + TransferClass + loc://TransferClass + + + + true + true + false + + + + + + $(pv_name) +$(pv_value) + true + Radio Box + 307 + 31ffe3bf:150a7259bb9:-6626 + 102 + 16 + + + + false + false + + + + true + + + + 0 + 1 + true + + Default + + false + + + + 22 + true + + Channel 1 + Channel 2 + + false + Channel + loc://Channel + + + + true + true + false + + + + + + $(pv_name) +$(pv_value) + true + Radio Box + 307 + 31ffe3bf:150a7259bb9:-6615 + 102 + 44 + + + + false + false + + + + true + + + + 0 + 1 + true + + Default + + false + + + + 22 + true + + Delete + Keep + + false + Preserve + loc://Preserve + + + + true + true + false + + + + + + $(pv_name) +$(pv_value) + true + Radio Box + 307 + 31ffe3bf:150a7259bb9:-6604 + 102 + 100 + \ No newline at end of file diff --git a/tools/commander/workspace_template/Displays/Apps/CF/PurgeQueue.opi b/tools/commander/workspace_template/Displays/Apps/CF/PurgeQueue.opi index 22ee2b67a..3640e727e 100644 --- a/tools/commander/workspace_template/Displays/Apps/CF/PurgeQueue.opi +++ b/tools/commander/workspace_template/Displays/Apps/CF/PurgeQueue.opi @@ -1,81 +1,41 @@ - - true - - 31ffe3bf:150a7259bb9:-673d - true - false - - 170 - - true - - 4.0.104.201510200439 - true - Display - - false - -1 - -1 - - - - - 310 - -1 - - 6 - true - -1 - true - - - - - - false - 0 - false - false - $(pv_name) -$(pv_value) - 0 - - true - 31ffe3bf:150a7259bb9:-670a - - Purge Queue - - false - 25 - 1 - - true - true - false - - - true - - - - - Action Button - false - - - - 163 - 90 - Action Button - 134 - - - - - - - ../scripts/RestartApp.js + + + + false + -1 + -1 + + false + + + + 1.5.3 + + + + 6 + 170 + + true + + + + + true + true + true + true + true + Display + 310 + 31ffe3bf:150a7259bb9:-673d + -1 + -1 + + + + ../scripts/RestartApp.js - true - - - - - Default - - - - 0 - - 2 - - true - 31ffe3bf:150a7259bb9:-6709 - true - false - Type - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 83 - -12 - Label - 19 - - - - - - Default - - - - 0 - - 2 - - true - 31ffe3bf:150a7259bb9:-66f9 - true - false - Channel - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 83 - -12 - Label_1 - 47 - - - - - - Default - - - - 0 - - 2 - - true - 31ffe3bf:150a7259bb9:-66e0 - true - false - Queue - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 83 - -12 - Label_3 - 75 - - - - - - Default - - - - 0 - - 2 - - true - 31ffe3bf:150a7259bb9:-66d5 - true - false - Filename - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 83 - -12 - Label_4 - 103 - - - - - - Default - - - - false - 0 - $(pv_name) -$(pv_value) - 0 - - - false - - 0.0 - true - 29 - false - 1 - true - loc://Filename<VString> - 0 - - - - true - Text Input - - Filename - - - 1 - false - true - 31ffe3bf:150a7259bb9:-66d4 - false - - true - - true - true - false - - false - 0 - false - - - - 211 - 78 - 98 - 1.7976931348623157E308 - - - - -1.7976931348623157E308 - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - true - 31ffe3bf:150a7259bb9:-6626 - - - - true - - - true - 22 - 1 - - true - true - false - - false - true - loc://TransferType - - - - Radio Box - false - - - - 229 - 78 - TransferType - 18 - - - - - - Uplink - Downlink - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - true - 31ffe3bf:150a7259bb9:-6615 - - - - true - - - true - 22 - 1 - - true - true - false - - false - true - loc://Channel - - - - Radio Box - false - - - - 229 - 78 - Channel - 46 - - - - - - Channel 1 - Channel 2 - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - true - 31ffe3bf:150a7259bb9:-6604 - - - - true - - - true - 22 - 1 - - true - true - false - - false - true - loc://Queue - - - - Radio Box - false - - - - 229 - 78 - Preserve - 74 - - - - - - Pending - Active - History - - - Default - - +]]> + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 25 + + Action Button + 0 + + + + + true + true + false + + + + Purge Queue + false + $(pv_name) +$(pv_value) + true + Action Button + 163 + 31ffe3bf:150a7259bb9:-670a + 90 + 134 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label + + + true + true + false + + + Type + + true + 1 + true + Label + 83 + false + 31ffe3bf:150a7259bb9:-6709 + -12 + 19 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_1 + + + true + true + false + + + Channel + + true + 1 + true + Label + 83 + false + 31ffe3bf:150a7259bb9:-66f9 + -12 + 47 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_3 + + + true + true + false + + + Queue + + true + 1 + true + Label + 83 + false + 31ffe3bf:150a7259bb9:-66e0 + -12 + 75 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_4 + + + true + true + false + + + Filename + + true + 1 + true + Label + 83 + false + 31ffe3bf:150a7259bb9:-66d5 + -12 + 103 + + + + false + false + false + + + + true + + + + 1 + 1 + + true + + Default + + false + + + + 0 + 29 + 0 + false + 1.7976931348623157E308 + -1.7976931348623157E308 + false + Filename + 0 + true + loc://Filename<VString> + + 0.0 + + + true + true + false + + + 0 + true + + + $(pv_name) +$(pv_value) + false + true + Text Input + 211 + 31ffe3bf:150a7259bb9:-66d4 + 78 + 98 + + + + false + false + + + + true + + + + 0 + 1 + true + + Default + + false + + + + 22 + true + + Uplink + Downlink + + false + TransferType + loc://TransferType + + + + true + true + false + + + + + + $(pv_name) +$(pv_value) + true + Radio Box + 229 + 31ffe3bf:150a7259bb9:-6626 + 78 + 18 + + + + false + false + + + + true + + + + 0 + 1 + true + + Default + + false + + + + 22 + true + + Channel 1 + Channel 2 + + false + Channel + loc://Channel + + + + true + true + false + + + + + + $(pv_name) +$(pv_value) + true + Radio Box + 229 + 31ffe3bf:150a7259bb9:-6615 + 78 + 46 + + + + false + false + + + + true + + + + 0 + 1 + true + + Default + + false + + + + 22 + true + + Pending + Active + History + + false + Preserve + loc://Queue + + + + true + true + false + + + + + + $(pv_name) +$(pv_value) + true + Radio Box + 229 + 31ffe3bf:150a7259bb9:-6604 + 78 + 74 + \ No newline at end of file diff --git a/tools/commander/workspace_template/Displays/Apps/CF/QuickStatus.opi b/tools/commander/workspace_template/Displays/Apps/CF/QuickStatus.opi index f41b3cfd1..38824483f 100644 --- a/tools/commander/workspace_template/Displays/Apps/CF/QuickStatus.opi +++ b/tools/commander/workspace_template/Displays/Apps/CF/QuickStatus.opi @@ -1,178 +1,138 @@ - - true - - 31ffe3bf:150a7259bb9:-6563 - true - false - - 100 - - true - - 4.0.104.201510200439 - true - Display - - false - -1 - -1 - - - - - 230 - -1 - - 6 - true - -1 - true - - - - - - 0 - - 2 - - true - 31ffe3bf:150a7259bb9:-6541 - true - false - Transfer - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 53 - 8 - Label_5 - 17 - - - - - - Default - - - - false - 0 - $(pv_name) -$(pv_value) - 0 - - - false - - 0.0 - true - 29 - false - 1 - true - loc://Transfer<VString> - 0 - - - - true - Text Input - - Transfer - - - 1 - false - true - 31ffe3bf:150a7259bb9:-6540 - false - - true - - true - true - false - - false - 0 - false - - - - 135 - 74 - 12 - 1.7976931348623157E308 - - - - -1.7976931348623157E308 - - Default - - - - false - 0 - false - false - $(pv_name) -$(pv_value) - 0 - - true - 31ffe3bf:150a7259bb9:-652c - - Quick Status - - false - 25 - 1 - - true - true - false - - - true - - - - - Action Button - false - - - - 163 - 30 - Action Button - 60 - - - - - - - ../scripts/RestartApp.js + + + + false + -1 + -1 + + false + + + + 1.5.3 + + + + 6 + 100 + + true + + + + + true + true + true + true + true + Display + 230 + 31ffe3bf:150a7259bb9:-6563 + -1 + -1 + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_5 + + + true + true + false + + + Transfer + + true + 1 + true + Label + 53 + false + 31ffe3bf:150a7259bb9:-6541 + 8 + 17 + + + + false + false + false + + + + true + + + + 1 + 1 + + true + + Default + + false + + + + 0 + 29 + 0 + false + 1.7976931348623157E308 + -1.7976931348623157E308 + false + Transfer + 0 + true + loc://Transfer<VString> + + 0.0 + + + true + true + false + + + 0 + true + + + $(pv_name) +$(pv_value) + false + true + Text Input + 135 + 31ffe3bf:150a7259bb9:-6540 + 74 + 12 + + + + + ../scripts/RestartApp.js - true - - - - - Default - - +]]> + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 25 + + Action Button + 0 + + + + + true + true + false + + + + Quick Status + false + $(pv_name) +$(pv_value) + true + Action Button + 163 + 31ffe3bf:150a7259bb9:-652c + 30 + 60 + \ No newline at end of file diff --git a/tools/commander/workspace_template/Displays/Apps/CF/ResetCounters.opi b/tools/commander/workspace_template/Displays/Apps/CF/ResetCounters.opi index 5b14a1fee..1230c1c62 100644 --- a/tools/commander/workspace_template/Displays/Apps/CF/ResetCounters.opi +++ b/tools/commander/workspace_template/Displays/Apps/CF/ResetCounters.opi @@ -1,81 +1,41 @@ - - true - - 35ebaa52:1509cf6a868:-791f - true - false - - 100 - - true - - 4.0.104.201510200439 - true - Display - - false - -1 - -1 - - - - - 275 - -1 - - 6 - true - -1 - true - - - - - - false - 0 - false - false - $(pv_name) -$(pv_value) - 0 - - true - 35ebaa52:1509cf6a868:-78ea - - Reset Counters - - false - 25 - 1 - - true - true - false - - - true - - - - - Action Button - false - - - - 163 - 54 - Action Button - 60 - - - - - - - ../scripts/RestartApp.js + + + + false + -1 + -1 + + false + + + + 1.5.3 + + + + 6 + 100 + + true + + + + + true + true + true + true + true + Display + 275 + 35ebaa52:1509cf6a868:-791f + -1 + -1 + + + + ../scripts/RestartApp.js - true - - - - - Default - - - - 0 - - 2 - - true - 35ebaa52:1509cf6a868:-78e9 - true - false - Counters - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 83 - 18 - Label - 23 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - true - 35ebaa52:1509cf6a868:-78e7 - - - true - 29 - 1 - - true - true - false - - false - true - loc://Counters<VString> - - - - Combo - false - - - - 135 - 108 - Counters - 18 - - - - - - All - Command - Fault - Uplink - Downlink - - - Default - - +]]> + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 25 + + Action Button + 0 + + + + + true + true + false + + + + Reset Counters + false + $(pv_name) +$(pv_value) + true + Action Button + 163 + 35ebaa52:1509cf6a868:-78ea + 54 + 60 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label + + + true + true + false + + + Counters + + true + 1 + true + Label + 83 + false + 35ebaa52:1509cf6a868:-78e9 + 18 + 23 + + + + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 32 + + All + Command + Fault + Uplink + Downlink + + false + Counters + loc://Counters<VString> + + + + true + true + false + + + $(pv_name) +$(pv_value) + true + Combo + 135 + 35ebaa52:1509cf6a868:-78e7 + 108 + 18 + \ No newline at end of file diff --git a/tools/commander/workspace_template/Displays/Apps/CF/Resume.opi b/tools/commander/workspace_template/Displays/Apps/CF/Resume.opi index 893167163..5369d03ce 100644 --- a/tools/commander/workspace_template/Displays/Apps/CF/Resume.opi +++ b/tools/commander/workspace_template/Displays/Apps/CF/Resume.opi @@ -1,178 +1,138 @@ - - true - - 31ffe3bf:150a7259bb9:-6563 - true - false - - 100 - - true - - 4.0.104.201510200439 - true - Display - - false - -1 - -1 - - - - - 230 - -1 - - 6 - true - -1 - true - - - - - - 0 - - 2 - - true - 31ffe3bf:150a7259bb9:-6541 - true - false - Transfer - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 53 - 8 - Label_5 - 17 - - - - - - Default - - - - false - 0 - $(pv_name) -$(pv_value) - 0 - - - false - - 0.0 - true - 29 - false - 1 - true - loc://Transfer<VString> - 0 - - - - true - Text Input - - Transfer - - - 1 - false - true - 31ffe3bf:150a7259bb9:-6540 - false - - true - - true - true - false - - false - 0 - false - - - - 135 - 74 - 12 - 1.7976931348623157E308 - - - - -1.7976931348623157E308 - - Default - - - - false - 0 - false - false - $(pv_name) -$(pv_value) - 0 - - true - 31ffe3bf:150a7259bb9:-652c - - Resume Transfer - - false - 25 - 1 - - true - true - false - - - true - - - - - Action Button - false - - - - 163 - 30 - Action Button - 60 - - - - - - - ../scripts/RestartApp.js + + + + false + -1 + -1 + + false + + + + 1.5.3 + + + + 6 + 100 + + true + + + + + true + true + true + true + true + Display + 230 + 31ffe3bf:150a7259bb9:-6563 + -1 + -1 + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_5 + + + true + true + false + + + Transfer + + true + 1 + true + Label + 53 + false + 31ffe3bf:150a7259bb9:-6541 + 8 + 17 + + + + false + false + false + + + + true + + + + 1 + 1 + + true + + Default + + false + + + + 0 + 29 + 0 + false + 1.7976931348623157E308 + -1.7976931348623157E308 + false + Transfer + 0 + true + loc://Transfer<VString> + + 0.0 + + + true + true + false + + + 0 + true + + + $(pv_name) +$(pv_value) + false + true + Text Input + 135 + 31ffe3bf:150a7259bb9:-6540 + 74 + 12 + + + + + ../scripts/RestartApp.js - true - - - - - Default - - +]]> + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 25 + + Action Button + 0 + + + + + true + true + false + + + + Resume Transfer + false + $(pv_name) +$(pv_value) + true + Action Button + 163 + 31ffe3bf:150a7259bb9:-652c + 30 + 60 + \ No newline at end of file diff --git a/tools/commander/workspace_template/Displays/Apps/CF/SetMIBParam.opi b/tools/commander/workspace_template/Displays/Apps/CF/SetMIBParam.opi index 3a3d4ec1f..2e8f1345e 100644 --- a/tools/commander/workspace_template/Displays/Apps/CF/SetMIBParam.opi +++ b/tools/commander/workspace_template/Displays/Apps/CF/SetMIBParam.opi @@ -1,81 +1,41 @@ - - true - - 31ffe3bf:150a7259bb9:-673d - true - false - - 130 - - true - - 4.0.104.201510200439 - true - Display - - false - -1 - -1 - - - - - 250 - -1 - - 6 - true - -1 - true - - - - - - false - 0 - false - false - $(pv_name) -$(pv_value) - 0 - - true - 31ffe3bf:150a7259bb9:-670a - - Set Parameter - - false - 25 - 1 - - true - true - false - - - true - - - - - Action Button - false - - - - 163 - 54 - Action Button - 90 - - - - - - - ../scripts/RestartApp.js + + + + false + -1 + -1 + + false + + + + 1.5.3 + + + + 6 + 130 + + true + + + + + true + true + true + true + true + Display + 250 + 31ffe3bf:150a7259bb9:-673d + -1 + -1 + + + + ../scripts/RestartApp.js - true - - - - - Default - - - - 0 - - 2 - - true - 31ffe3bf:150a7259bb9:-66d5 - true - false - Parameter - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 83 - 12 - Label_4 - 17 - - - - - - Default - - - - false - 0 - $(pv_name) -$(pv_value) - 0 - - - false - - 0.0 - true - 29 - false - 1 - true - loc://Parameter<VString> - 0 - - - - true - Text Input - - Parameter - - - 1 - false - true - 31ffe3bf:150a7259bb9:-66d4 - false - - true - - true - true - false - - false - 0 - false - - - - 135 - 102 - 12 - 1.7976931348623157E308 - - - - -1.7976931348623157E308 - - Default - - - - 0 - - 2 - - true - 31ffe3bf:150a7259bb9:-64c5 - true - false - Value - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 83 - 12 - Label_1 - 45 - - - - - - Default - - - - false - 0 - $(pv_name) -$(pv_value) - 0 - - - false - - 0.0 - true - 29 - false - 1 - true - loc://Parameter<VString> - 0 - - - - true - Text Input - - Parameter_1 - - - 1 - false - true - 31ffe3bf:150a7259bb9:-64c4 - false - - true - - true - true - false - - false - 0 - false - - - - 135 - 102 - 40 - 1.7976931348623157E308 - - - - -1.7976931348623157E308 - - Default - - +]]> + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 25 + + Action Button + 0 + + + + + true + true + false + + + + Set Parameter + false + $(pv_name) +$(pv_value) + true + Action Button + 163 + 31ffe3bf:150a7259bb9:-670a + 54 + 90 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_4 + + + true + true + false + + + Parameter + + true + 1 + true + Label + 83 + false + 31ffe3bf:150a7259bb9:-66d5 + 12 + 17 + + + + false + false + false + + + + true + + + + 1 + 1 + + true + + Default + + false + + + + 0 + 29 + 0 + false + 1.7976931348623157E308 + -1.7976931348623157E308 + false + Parameter + 0 + true + loc://Parameter<VString> + + 0.0 + + + true + true + false + + + 0 + true + + + $(pv_name) +$(pv_value) + false + true + Text Input + 135 + 31ffe3bf:150a7259bb9:-66d4 + 102 + 12 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_1 + + + true + true + false + + + Value + + true + 1 + true + Label + 83 + false + 31ffe3bf:150a7259bb9:-64c5 + 12 + 45 + + + + false + false + false + + + + true + + + + 1 + 1 + + true + + Default + + false + + + + 0 + 29 + 0 + false + 1.7976931348623157E308 + -1.7976931348623157E308 + false + Parameter_1 + 0 + true + loc://Parameter<VString> + + 0.0 + + + true + true + false + + + 0 + true + + + $(pv_name) +$(pv_value) + false + true + Text Input + 135 + 31ffe3bf:150a7259bb9:-64c4 + 102 + 40 + \ No newline at end of file diff --git a/tools/commander/workspace_template/Displays/Apps/CF/SetPollParam.opi b/tools/commander/workspace_template/Displays/Apps/CF/SetPollParam.opi index d1a0965a8..ef31b9aca 100644 --- a/tools/commander/workspace_template/Displays/Apps/CF/SetPollParam.opi +++ b/tools/commander/workspace_template/Displays/Apps/CF/SetPollParam.opi @@ -1,81 +1,41 @@ - - true - - 31ffe3bf:150a7259bb9:-673d - true - false - - 290 - - true - - 4.0.104.201510200439 - true - Display - - false - -1 - -1 - - - - - 400 - -1 - - 6 - true - -1 - true - - - - - - false - 0 - false - false - $(pv_name) -$(pv_value) - 0 - - true - 31ffe3bf:150a7259bb9:-670a - - Set Polling Directory - - false - 25 - 1 - - true - true - false - - - true - - - - - Action Button - false - - - - 163 - 114 - Action Button - 254 - - - - - - - ../scripts/RestartApp.js + + + + false + -1 + -1 + + false + + + + 1.5.3 + + + + 6 + 290 + + true + + + + + true + true + true + true + true + Display + 400 + 31ffe3bf:150a7259bb9:-673d + -1 + -1 + + + + ../scripts/RestartApp.js - true - - - - - Default - - - - 0 - - 2 - - true - 31ffe3bf:150a7259bb9:-6709 - true - false - Class - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 83 - 24 - Label - 19 - - - - - - Default - - - - 0 - - 2 - - true - 31ffe3bf:150a7259bb9:-66f9 - true - false - Channel - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 83 - 24 - Label_1 - 47 - - - - - - Default - - - - 0 - - 2 - - true - 31ffe3bf:150a7259bb9:-66ee - true - false - Priority - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 65 - 42 - Label_2 - 75 - - - - - - Default - - - - 0 - - 2 - - true - 31ffe3bf:150a7259bb9:-66e0 - true - false - Preserve - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 83 - 24 - Label_3 - 127 - - - - - - Default - - - - 0 - - 2 - - true - 31ffe3bf:150a7259bb9:-66d5 - true - false - Peer Entity ID - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 83 - 24 - Label_4 - 155 - - - - - - Default - - - - false - 0 - $(pv_name) -$(pv_value) - 0 - - - false - - 0.0 - true - 29 - false - 1 - true - loc://PeerEntityID<VString> - 0 - - - - true - Text Input - - PeerEntityID - - - 1 - false - true - 31ffe3bf:150a7259bb9:-66d4 - false - - true - - true - true - false - - false - 0 - false - - - - 135 - 114 - 150 - 1.7976931348623157E308 - - - - -1.7976931348623157E308 - - Default - - - - 0 - - 2 - - true - 31ffe3bf:150a7259bb9:-66ca - true - false - Source - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 83 - 24 - Label_5 - 183 - - - - - - Default - - - - false - 0 - $(pv_name) -$(pv_value) - 0 - - - false - - 0.0 - true - 29 - false - 1 - true - loc://Source<VString> - 0 - - - - true - Text Input - - Counters_5 - - - 1 - false - true - 31ffe3bf:150a7259bb9:-66c9 - false - - true - - true - true - false - - false - 0 - false - - - - 135 - 114 - 178 - 1.7976931348623157E308 - - - - -1.7976931348623157E308 - - Default - - - - 0 - - 2 - - true - 31ffe3bf:150a7259bb9:-66bf - true - false - Destination - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 83 - 24 - Label_6 - 211 - - - - - - Default - - - - false - 0 - $(pv_name) -$(pv_value) - 0 - - - false - - 0.0 - true - 29 - false - 1 - true - loc://Destination<VString> - 0 - - - - true - Text Input - - Counters_6 - - - 1 - false - true - 31ffe3bf:150a7259bb9:-66be - false - - true - - true - true - false - - false - 0 - false - - - - 135 - 114 - 206 - 1.7976931348623157E308 - - - - -1.7976931348623157E308 - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 31ffe3bf:150a7259bb9:-669e - false - - - false - true - 29 - 1 - - true - true - false - - true - loc://Priority<VDouble> - 1 - 0 - false - - - - true - Spinner - 1.0 - false - false - - - - 10.0 - 135 - 114 - Priority - 70 - 1.7976931348623157E308 - - - - - -1.7976931348623157E308 - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - true - 31ffe3bf:150a7259bb9:-6626 - - - - true - - - true - 22 - 1 - - true - true - false - - false - true - loc://TransferClass - - - - Radio Box - false - - - - 307 - 114 - TransferClass - 18 - - - - - - Class 1 (Unreliable) - Class 2 (Reliable) - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - true - 31ffe3bf:150a7259bb9:-6615 - - - - true - - - true - 22 - 1 - - true - true - false - - false - true - loc://Channel - - - - Radio Box - false - - - - 307 - 114 - Channel - 46 - - - - - - Channel 1 - Channel 2 - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - true - 31ffe3bf:150a7259bb9:-6604 - - - - true - - - true - 22 - 1 - - true - true - false - - false - true - loc://Preserve - - - - Radio Box - false - - - - 307 - 114 - Preserve - 126 - - - - - - Delete - Keep - - - Default - - - - 0 - - 2 - - true - -33cb7c72:150aa4c347f:-78ea - true - false - Directory Index - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 95 - 12 - Label_7 - 103 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - -33cb7c72:150aa4c347f:-78e9 - false - - - false - true - 29 - 1 - - true - true - false - - true - loc://Dir<VDouble> - 1 - 0 - false - - - - true - Spinner - 1.0 - false - false - - - - 10.0 - 135 - 114 - Dir - 98 - 1.7976931348623157E308 - - - - - -1.7976931348623157E308 - - Default - - +]]> + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 25 + + Action Button + 0 + + + + + true + true + false + + + + Set Polling Directory + false + $(pv_name) +$(pv_value) + true + Action Button + 163 + 31ffe3bf:150a7259bb9:-670a + 114 + 254 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label + + + true + true + false + + + Class + + true + 1 + true + Label + 83 + false + 31ffe3bf:150a7259bb9:-6709 + 24 + 19 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_1 + + + true + true + false + + + Channel + + true + 1 + true + Label + 83 + false + 31ffe3bf:150a7259bb9:-66f9 + 24 + 47 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_2 + + + true + true + false + + + Priority + + true + 1 + true + Label + 65 + false + 31ffe3bf:150a7259bb9:-66ee + 42 + 75 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_3 + + + true + true + false + + + Preserve + + true + 1 + true + Label + 83 + false + 31ffe3bf:150a7259bb9:-66e0 + 24 + 127 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_4 + + + true + true + false + + + Peer Entity ID + + true + 1 + true + Label + 83 + false + 31ffe3bf:150a7259bb9:-66d5 + 24 + 155 + + + + false + false + false + + + + true + + + + 1 + 1 + + true + + Default + + false + + + + 0 + 29 + 0 + false + 1.7976931348623157E308 + -1.7976931348623157E308 + false + PeerEntityID + 0 + true + loc://PeerEntityID<VString> + + 0.0 + + + true + true + false + + + 0 + true + + + $(pv_name) +$(pv_value) + false + true + Text Input + 135 + 31ffe3bf:150a7259bb9:-66d4 + 114 + 150 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_5 + + + true + true + false + + + Source + + true + 1 + true + Label + 83 + false + 31ffe3bf:150a7259bb9:-66ca + 24 + 183 + + + + false + false + false + + + + true + + + + 1 + 1 + + true + + Default + + false + + + + 0 + 29 + 0 + false + 1.7976931348623157E308 + -1.7976931348623157E308 + false + Counters_5 + 0 + true + loc://Source<VString> + + 0.0 + + + true + true + false + + + 0 + true + + + $(pv_name) +$(pv_value) + false + true + Text Input + 135 + 31ffe3bf:150a7259bb9:-66c9 + 114 + 178 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_6 + + + true + true + false + + + Destination + + true + 1 + true + Label + 83 + false + 31ffe3bf:150a7259bb9:-66bf + 24 + 211 + + + + false + false + false + + + + true + + + + 1 + 1 + + true + + Default + + false + + + + 0 + 29 + 0 + false + 1.7976931348623157E308 + -1.7976931348623157E308 + false + Counters_6 + 0 + true + loc://Destination<VString> + + 0.0 + + + true + true + false + + + 0 + true + + + $(pv_name) +$(pv_value) + false + true + Text Input + 135 + 31ffe3bf:150a7259bb9:-66be + 114 + 206 + + + + false + false + + + + true + + + + 1 + 1 + false + true + + Default + + false + + + + 0 + 29 + 0 + false + false + 1.7976931348623157E308 + -1.7976931348623157E308 + Priority + 10.0 + 0 + true + loc://Priority<VDouble> + + + + true + true + false + + + true + 1.0 + $(pv_name) +$(pv_value) + false + 1 + true + Spinner + 135 + 31ffe3bf:150a7259bb9:-669e + 114 + 70 + + + + false + false + + + + true + + + + 0 + 1 + true + + Default + + false + + + + 22 + true + + Class 1 (Unreliable) + Class 2 (Reliable) + + false + TransferClass + loc://TransferClass + + + + true + true + false + + + + + + $(pv_name) +$(pv_value) + true + Radio Box + 307 + 31ffe3bf:150a7259bb9:-6626 + 114 + 18 + + + + false + false + + + + true + + + + 0 + 1 + true + + Default + + false + + + + 22 + true + + Channel 1 + Channel 2 + + false + Channel + loc://Channel + + + + true + true + false + + + + + + $(pv_name) +$(pv_value) + true + Radio Box + 307 + 31ffe3bf:150a7259bb9:-6615 + 114 + 46 + + + + false + false + + + + true + + + + 0 + 1 + true + + Default + + false + + + + 22 + true + + Delete + Keep + + false + Preserve + loc://Preserve + + + + true + true + false + + + + + + $(pv_name) +$(pv_value) + true + Radio Box + 307 + 31ffe3bf:150a7259bb9:-6604 + 114 + 126 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_7 + + + true + true + false + + + Directory Index + + true + 1 + true + Label + 95 + false + -33cb7c72:150aa4c347f:-78ea + 12 + 103 + + + + false + false + + + + true + + + + 1 + 1 + false + true + + Default + + false + + + + 0 + 29 + 0 + false + false + 1.7976931348623157E308 + -1.7976931348623157E308 + Dir + 10.0 + 0 + true + loc://Dir<VDouble> + + + + true + true + false + + + true + 1.0 + $(pv_name) +$(pv_value) + false + 1 + true + Spinner + 135 + -33cb7c72:150aa4c347f:-78e9 + 114 + 98 + \ No newline at end of file diff --git a/tools/commander/workspace_template/Displays/Apps/CF/Suspend.opi b/tools/commander/workspace_template/Displays/Apps/CF/Suspend.opi index b9ae5570f..2eb0e15dc 100644 --- a/tools/commander/workspace_template/Displays/Apps/CF/Suspend.opi +++ b/tools/commander/workspace_template/Displays/Apps/CF/Suspend.opi @@ -1,178 +1,138 @@ - - true - - 31ffe3bf:150a7259bb9:-6563 - true - false - - 100 - - true - - 4.0.104.201510200439 - true - Display - - false - -1 - -1 - - - - - 230 - -1 - - 6 - true - -1 - true - - - - - - 0 - - 2 - - true - 31ffe3bf:150a7259bb9:-6541 - true - false - Transfer - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 53 - 8 - Label_5 - 17 - - - - - - Default - - - - false - 0 - $(pv_name) -$(pv_value) - 0 - - - false - - 0.0 - true - 29 - false - 1 - true - loc://Transfer<VString> - 0 - - - - true - Text Input - - Transfer - - - 1 - false - true - 31ffe3bf:150a7259bb9:-6540 - false - - true - - true - true - false - - false - 0 - false - - - - 135 - 74 - 12 - 1.7976931348623157E308 - - - - -1.7976931348623157E308 - - Default - - - - false - 0 - false - false - $(pv_name) -$(pv_value) - 0 - - true - 31ffe3bf:150a7259bb9:-652c - - Suspend Transfer - - false - 25 - 1 - - true - true - false - - - true - - - - - Action Button - false - - - - 163 - 30 - Action Button - 60 - - - - - - - ../scripts/RestartApp.js + + + + false + -1 + -1 + + false + + + + 1.5.3 + + + + 6 + 100 + + true + + + + + true + true + true + true + true + Display + 230 + 31ffe3bf:150a7259bb9:-6563 + -1 + -1 + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_5 + + + true + true + false + + + Transfer + + true + 1 + true + Label + 53 + false + 31ffe3bf:150a7259bb9:-6541 + 8 + 17 + + + + false + false + false + + + + true + + + + 1 + 1 + + true + + Default + + false + + + + 0 + 29 + 0 + false + 1.7976931348623157E308 + -1.7976931348623157E308 + false + Transfer + 0 + true + loc://Transfer<VString> + + 0.0 + + + true + true + false + + + 0 + true + + + $(pv_name) +$(pv_value) + false + true + Text Input + 135 + 31ffe3bf:150a7259bb9:-6540 + 74 + 12 + + + + + ../scripts/RestartApp.js - true - - - - - Default - - +]]> + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 25 + + Action Button + 0 + + + + + true + true + false + + + + Suspend Transfer + false + $(pv_name) +$(pv_value) + true + Action Button + 163 + 31ffe3bf:150a7259bb9:-652c + 30 + 60 + \ No newline at end of file diff --git a/tools/commander/workspace_template/Displays/Apps/CF/Uplink.opi b/tools/commander/workspace_template/Displays/Apps/CF/Uplink.opi index c31458307..f9a13f0a1 100644 --- a/tools/commander/workspace_template/Displays/Apps/CF/Uplink.opi +++ b/tools/commander/workspace_template/Displays/Apps/CF/Uplink.opi @@ -269,7 +269,7 @@ $(pv_value) false false - + false @@ -283,7 +283,7 @@ $(pv_value) false - + 13 @@ -325,7 +325,7 @@ Yamcs.issueCommand('/CFS/CF/Reset(Value: 3)');]]> false false - + false @@ -339,7 +339,7 @@ Yamcs.issueCommand('/CFS/CF/Reset(Value: 3)');]]> false - + 21 @@ -921,7 +921,7 @@ Yamcs.issueCommand('/CFS/CF/Reset(Value: 0)');]]> false false - + false @@ -935,7 +935,7 @@ Yamcs.issueCommand('/CFS/CF/Reset(Value: 0)');]]> false - + 13 diff --git a/tools/commander/workspace_template/Displays/Apps/CF/ViewConfig.opi b/tools/commander/workspace_template/Displays/Apps/CF/ViewConfig.opi index a10d3f52a..3e78c96ff 100644 --- a/tools/commander/workspace_template/Displays/Apps/CF/ViewConfig.opi +++ b/tools/commander/workspace_template/Displays/Apps/CF/ViewConfig.opi @@ -49,7 +49,7 @@ Yamcs.issueCommand('/CFS/CF/SendCfgParam(args: none)'); false false - + false @@ -63,7 +63,7 @@ Yamcs.issueCommand('/CFS/CF/SendCfgParam(args: none)'); false - + 25 diff --git a/tools/commander/workspace_template/Displays/Apps/CF/ViewTransDiag.opi b/tools/commander/workspace_template/Displays/Apps/CF/ViewTransDiag.opi index 032fe0247..0f75c28f9 100644 --- a/tools/commander/workspace_template/Displays/Apps/CF/ViewTransDiag.opi +++ b/tools/commander/workspace_template/Displays/Apps/CF/ViewTransDiag.opi @@ -52,7 +52,7 @@ Yamcs.issueCommand('/CFS/CF/SendTransDiagData(Trans: ' + Transfer + ')'); false false - + false @@ -66,7 +66,7 @@ Yamcs.issueCommand('/CFS/CF/SendTransDiagData(Trans: ' + Transfer + ')'); false - + 25 diff --git a/tools/commander/workspace_template/Displays/Apps/CF/WriteActiveTrans.opi b/tools/commander/workspace_template/Displays/Apps/CF/WriteActiveTrans.opi index 70fa9a56c..9c704fe58 100644 --- a/tools/commander/workspace_template/Displays/Apps/CF/WriteActiveTrans.opi +++ b/tools/commander/workspace_template/Displays/Apps/CF/WriteActiveTrans.opi @@ -1,81 +1,41 @@ - - true - - 31ffe3bf:150a7259bb9:-673d - true - false - - 150 - - true - - 4.0.104.201510200439 - true - Display - - false - -1 - -1 - - - - - 300 - -1 - - 6 - true - -1 - true - - - - - - false - 0 - false - false - $(pv_name) -$(pv_value) - 0 - - true - 31ffe3bf:150a7259bb9:-670a - - Write Active Transfer - - false - 25 - 1 - - true - true - false - - - true - - - - - Action Button - false - - - - 163 - 66 - Action Button - 102 - - - - - - - ../scripts/RestartApp.js + + + + false + -1 + -1 + + false + + + + 1.5.3 + + + + 6 + 150 + + true + + + + + true + true + true + true + true + Display + 300 + 31ffe3bf:150a7259bb9:-673d + -1 + -1 + + + + ../scripts/RestartApp.js - true - - - - - Default - - - - 0 - - 2 - - true - 31ffe3bf:150a7259bb9:-6709 - true - false - Type - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 41 - 18 - Label - 19 - - - - - - Default - - - - 0 - - 2 - - true - 31ffe3bf:150a7259bb9:-66bf - true - false - Destination - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 83 - 24 - Label_6 - 59 - - - - - - Default - - - - false - 0 - $(pv_name) -$(pv_value) - 0 - - - false - - 0.0 - true - 29 - false - 1 - true - loc://Destination<VString> - 0 - - - - true - Text Input - - Destination - - - 1 - false - true - 31ffe3bf:150a7259bb9:-66be - false - - true - - true - true - false - - false - 0 - false - - - - 135 - 114 - 54 - 1.7976931348623157E308 - - - - -1.7976931348623157E308 - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - true - 31ffe3bf:150a7259bb9:-6626 - - - - true - - - true - 22 - 1 - - true - true - false - - false - true - loc://TransType - - - - Radio Box - false - - - - 211 - 66 - TransType - 18 - - - - - - All - Uplink - Downlink - - - Default - - +]]> + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 25 + + Action Button + 0 + + + + + true + true + false + + + + Write Active Transfer + false + $(pv_name) +$(pv_value) + true + Action Button + 163 + 31ffe3bf:150a7259bb9:-670a + 66 + 102 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label + + + true + true + false + + + Type + + true + 1 + true + Label + 41 + false + 31ffe3bf:150a7259bb9:-6709 + 18 + 19 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_6 + + + true + true + false + + + Destination + + true + 1 + true + Label + 83 + false + 31ffe3bf:150a7259bb9:-66bf + 24 + 59 + + + + false + false + false + + + + true + + + + 1 + 1 + + true + + Default + + false + + + + 0 + 29 + 0 + false + 1.7976931348623157E308 + -1.7976931348623157E308 + false + Destination + 0 + true + loc://Destination<VString> + + 0.0 + + + true + true + false + + + 0 + true + + + $(pv_name) +$(pv_value) + false + true + Text Input + 135 + 31ffe3bf:150a7259bb9:-66be + 114 + 54 + + + + false + false + + + + true + + + + 0 + 1 + true + + Default + + false + + + + 22 + true + + All + Uplink + Downlink + + false + TransType + loc://TransType + + + + true + true + false + + + + + + $(pv_name) +$(pv_value) + true + Radio Box + 211 + 31ffe3bf:150a7259bb9:-6626 + 66 + 18 + \ No newline at end of file diff --git a/tools/commander/workspace_template/Displays/Apps/CF/WriteQueueInfo.opi b/tools/commander/workspace_template/Displays/Apps/CF/WriteQueueInfo.opi index 723b7e3a2..e77b0056a 100644 --- a/tools/commander/workspace_template/Displays/Apps/CF/WriteQueueInfo.opi +++ b/tools/commander/workspace_template/Displays/Apps/CF/WriteQueueInfo.opi @@ -1,81 +1,41 @@ - - true - - 31ffe3bf:150a7259bb9:-673d - true - false - - 170 - - true - - 4.0.104.201510200439 - true - Display - - false - -1 - -1 - - - - - 310 - -1 - - 6 - true - -1 - true - - - - - - false - 0 - false - false - $(pv_name) -$(pv_value) - 0 - - true - 31ffe3bf:150a7259bb9:-670a - - Write Queue Info - - false - 25 - 1 - - true - true - false - - - true - - - - - Action Button - false - - - - 163 - 90 - Action Button - 134 - - - - - - - ../scripts/RestartApp.js + + + + false + -1 + -1 + + false + + + + 1.5.3 + + + + 6 + 170 + + true + + + + + true + true + true + true + true + Display + 310 + 31ffe3bf:150a7259bb9:-673d + -1 + -1 + + + + ../scripts/RestartApp.js - true - - - - - Default - - - - 0 - - 2 - - true - 31ffe3bf:150a7259bb9:-6709 - true - false - Type - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 83 - -12 - Label - 19 - - - - - - Default - - - - 0 - - 2 - - true - 31ffe3bf:150a7259bb9:-66f9 - true - false - Channel - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 83 - -12 - Label_1 - 47 - - - - - - Default - - - - 0 - - 2 - - true - 31ffe3bf:150a7259bb9:-66e0 - true - false - Queue - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 83 - -12 - Label_3 - 75 - - - - - - Default - - - - 0 - - 2 - - true - 31ffe3bf:150a7259bb9:-66d5 - true - false - Filename - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 83 - -12 - Label_4 - 103 - - - - - - Default - - - - false - 0 - $(pv_name) -$(pv_value) - 0 - - - false - - 0.0 - true - 29 - false - 1 - true - loc://Filename<VString> - 0 - - - - true - Text Input - - Filename - - - 1 - false - true - 31ffe3bf:150a7259bb9:-66d4 - false - - true - - true - true - false - - false - 0 - false - - - - 211 - 78 - 98 - 1.7976931348623157E308 - - - - -1.7976931348623157E308 - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - true - 31ffe3bf:150a7259bb9:-6626 - - - - true - - - true - 22 - 1 - - true - true - false - - false - true - loc://TransferType - - - - Radio Box - false - - - - 229 - 78 - TransferType - 18 - - - - - - Uplink - Downlink - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - true - 31ffe3bf:150a7259bb9:-6615 - - - - true - - - true - 22 - 1 - - true - true - false - - false - true - loc://Channel - - - - Radio Box - false - - - - 229 - 78 - Channel - 46 - - - - - - Channel 1 - Channel 2 - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - true - 31ffe3bf:150a7259bb9:-6604 - - - - true - - - true - 22 - 1 - - true - true - false - - false - true - loc://Queue - - - - Radio Box - false - - - - 229 - 78 - Preserve - 74 - - - - - - Pending - Active - History - - - Default - - +]]> + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 25 + + Action Button + 0 + + + + + true + true + false + + + + Write Queue Info + false + $(pv_name) +$(pv_value) + true + Action Button + 163 + 31ffe3bf:150a7259bb9:-670a + 90 + 134 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label + + + true + true + false + + + Type + + true + 1 + true + Label + 83 + false + 31ffe3bf:150a7259bb9:-6709 + -12 + 19 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_1 + + + true + true + false + + + Channel + + true + 1 + true + Label + 83 + false + 31ffe3bf:150a7259bb9:-66f9 + -12 + 47 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_3 + + + true + true + false + + + Queue + + true + 1 + true + Label + 83 + false + 31ffe3bf:150a7259bb9:-66e0 + -12 + 75 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_4 + + + true + true + false + + + Filename + + true + 1 + true + Label + 83 + false + 31ffe3bf:150a7259bb9:-66d5 + -12 + 103 + + + + false + false + false + + + + true + + + + 1 + 1 + + true + + Default + + false + + + + 0 + 29 + 0 + false + 1.7976931348623157E308 + -1.7976931348623157E308 + false + Filename + 0 + true + loc://Filename<VString> + + 0.0 + + + true + true + false + + + 0 + true + + + $(pv_name) +$(pv_value) + false + true + Text Input + 211 + 31ffe3bf:150a7259bb9:-66d4 + 78 + 98 + + + + false + false + + + + true + + + + 0 + 1 + true + + Default + + false + + + + 22 + true + + Uplink + Downlink + + false + TransferType + loc://TransferType + + + + true + true + false + + + + + + $(pv_name) +$(pv_value) + true + Radio Box + 229 + 31ffe3bf:150a7259bb9:-6626 + 78 + 18 + + + + false + false + + + + true + + + + 0 + 1 + true + + Default + + false + + + + 22 + true + + Channel 1 + Channel 2 + + false + Channel + loc://Channel + + + + true + true + false + + + + + + $(pv_name) +$(pv_value) + true + Radio Box + 229 + 31ffe3bf:150a7259bb9:-6615 + 78 + 46 + + + + false + false + + + + true + + + + 0 + 1 + true + + Default + + false + + + + 22 + true + + Pending + Active + History + + false + Preserve + loc://Queue + + + + true + true + false + + + + + + $(pv_name) +$(pv_value) + true + Radio Box + 229 + 31ffe3bf:150a7259bb9:-6604 + 78 + 74 + \ No newline at end of file diff --git a/tools/commander/workspace_template/Displays/Apps/CI/Main.opi b/tools/commander/workspace_template/Displays/Apps/CI/Main.opi index acc160e0b..54b0408c4 100644 --- a/tools/commander/workspace_template/Displays/Apps/CI/Main.opi +++ b/tools/commander/workspace_template/Displays/Apps/CI/Main.opi @@ -269,7 +269,7 @@ $(pv_value) false true - + false @@ -283,7 +283,7 @@ $(pv_value) false - + 18 @@ -323,7 +323,7 @@ $(pv_value) false false - + false @@ -337,7 +337,7 @@ $(pv_value) false - + 17 diff --git a/tools/commander/workspace_template/Displays/Apps/CS/DisableApplication.opi b/tools/commander/workspace_template/Displays/Apps/CS/DisableApplication.opi index 6b4b11dd6..72c1b6240 100644 --- a/tools/commander/workspace_template/Displays/Apps/CS/DisableApplication.opi +++ b/tools/commander/workspace_template/Displays/Apps/CS/DisableApplication.opi @@ -1,253 +1,253 @@ - - true - - -736e4684:150ac3c95a1:-7e23 - true - false - - 150 - - true - - 4.0.104.201510200439 - true - Display - - false - -1 - -1 - - - - - 200 - -1 - - 6 - true - -1 - true - - - - - - false - 0 - false - false - $(pv_name) -$(pv_value) - 0 - - true - -736e4684:150ac3c95a1:-7e12 - - Disable All - - false - 24 - 1 - - true - true - false - - - true - - - - - Action Button - false - - - - 109 - 48 - Action Button - 18 - - - - - - - ../scripts/QueryOneApp.js + + + + false + -1 + -1 + + false + + + + 1.5.3 + + + + 6 + 150 + + true + + + + + true + true + true + true + true + Display + 200 + -736e4684:150ac3c95a1:-7e23 + -1 + -1 + + + + ../scripts/QueryOneApp.js - true - - - - - Default - - - - false - 0 - false - false - $(pv_name) -$(pv_value) - 0 - - true - -736e4684:150ac3c95a1:-7e06 - - Disable App - - false - 24 - 1 - - true - true - false - - - true - - - - - Action Button - false - - - - 109 - 48 - Action Button_1 - 114 - - - - - - - ../scripts/QueryOneApp.js +Yamcs.issueCommand(cmd);]]> + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 24 + + Action Button + 0 + + + + + true + true + false + + + + Disable All + false + $(pv_name) +$(pv_value) + true + Action Button + 109 + -736e4684:150ac3c95a1:-7e12 + 48 + 18 + + + + + ../scripts/QueryOneApp.js - true - - - - - Default - - - - 0 - - 2 - - true - -736e4684:150ac3c95a1:-76ae - true - false - Name - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 50 - 12 - Label_3 - 83 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - true - -736e4684:150ac3c95a1:-76ad - - - true - 29 - 1 - - true - false - false - - false - true - loc://Name - - - - Combo - false - - - - 115 - 72 - Name - 78 - - - - - - CF - CI - CS - DS - EIM - HS - FM - HK - LC - MM - SCH - TO - SBN - CFE_ES - CFE_EVS - CFE_SB - CFE_TBL - CFE_TIME - - - Default - - +var cmd = '/CFS/CS/DisableNameApp(Name: ' + Name + ')';]]> + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 24 + + Action Button_1 + 0 + + + + + true + true + false + + + + Disable App + false + $(pv_name) +$(pv_value) + true + Action Button + 109 + -736e4684:150ac3c95a1:-7e06 + 48 + 114 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_3 + + + true + true + false + + + Name + + true + 1 + true + Label + 50 + false + -736e4684:150ac3c95a1:-76ae + 12 + 83 + + + + false + false + + + + true + + + + 0 + 1 + true + + Default + + false + + + + 34 + + CF + CI + CS + DS + EIM + HS + FM + HK + LC + MM + SCH + TO + SBN + CFE_ES + CFE_EVS + CFE_SB + CFE_TBL + CFE_TIME + + false + Name + loc://Name + + + + true + false + false + + + $(pv_name) +$(pv_value) + true + Combo + 115 + -736e4684:150ac3c95a1:-76ad + 72 + 78 + \ No newline at end of file diff --git a/tools/commander/workspace_template/Displays/Apps/CS/DisableEEPROM.opi b/tools/commander/workspace_template/Displays/Apps/CS/DisableEEPROM.opi index ad030edbd..9073e6f92 100644 --- a/tools/commander/workspace_template/Displays/Apps/CS/DisableEEPROM.opi +++ b/tools/commander/workspace_template/Displays/Apps/CS/DisableEEPROM.opi @@ -1,245 +1,246 @@ - - true - - -736e4684:150ac3c95a1:-7e23 - true - false - - 150 - - true - - 4.0.104.201510200439 - true - Display - - false - -1 - -1 - - - - - 180 - -1 - - 6 - true - -1 - true - - - - - - false - 0 - false - false - $(pv_name) -$(pv_value) - 0 - - true - -736e4684:150ac3c95a1:-7e12 - - Disable All - - false - 24 - 1 - - true - true - false - - - true - - - - - Action Button - false - - - - 109 - 36 - Action Button - 18 - - - - - - - ../scripts/QueryOneApp.js + + + + false + -1 + -1 + + false + + + + 1.5.3 + + + + 6 + 150 + + true + + + + + true + true + true + true + true + Display + 180 + -736e4684:150ac3c95a1:-7e23 + -1 + -1 + + + + ../scripts/QueryOneApp.js - true - - - - - Default - - - - false - 0 - false - false - $(pv_name) -$(pv_value) - 0 - - true - -736e4684:150ac3c95a1:-7e06 - - Disable Entry - - false - 24 - 1 - - true - true - false - - - true - - - - - Action Button - false - - - - 109 - 36 - Action Button_1 - 114 - - - - - - - ../scripts/QueryOneApp.js +Yamcs.issueCommand(cmd);]]> + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 24 + + Action Button + 0 + + + + + true + true + false + + + + Disable All + false + $(pv_name) +$(pv_value) + true + Action Button + 109 + -736e4684:150ac3c95a1:-7e12 + 36 + 18 + + + + + ../scripts/QueryOneApp.js - true - - - - - Default - - - - 0 - - 2 - - true - -736e4684:150ac3c95a1:-7de8 - true - false - Entry ID - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 50 - 12 - Label_3 - 78 - - - - - - Default - - - - 3 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - -736e4684:150ac3c95a1:-7de7 - false - - - false - false - 19 - 1 - - true - true - false - - true - loc://EntryID<VDouble> - 1 - 0 - false - - - - false - Spinner - 1.0 - false - false - - - - 10.0 - 100 - 72 - EntryID - 78 - 1.7976931348623157E308 - - - - - -1.7976931348623157E308 - - Default - - +var cmd = '/CFS/CS/DisableEntryEEPROM(EntryID: ' + EntryID + ')';]]> + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 24 + + Action Button_1 + 0 + + + + + true + true + false + + + + Disable Entry + false + $(pv_name) +$(pv_value) + true + Action Button + 109 + -736e4684:150ac3c95a1:-7e06 + 36 + 114 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_3 + + + true + true + false + + + Entry ID + + true + 1 + true + Label + 55 + false + -736e4684:150ac3c95a1:-7de8 + 12 + 78 + + + + false + false + + + + false + + + + 3 + 1 + false + true + + Default + + false + + + + 0 + 19 + 0 + false + false + 1.7976931348623157E308 + -1.7976931348623157E308 + EntryID + 10.0 + 0 + false + loc://EntryID<VDouble> + + + + true + true + false + + + true + 1.0 + $(pv_name) +$(pv_value) + false + 1 + true + Spinner + 100 + -736e4684:150ac3c95a1:-7de7 + 72 + 78 + \ No newline at end of file diff --git a/tools/commander/workspace_template/Displays/Apps/CS/DisableMemory.opi b/tools/commander/workspace_template/Displays/Apps/CS/DisableMemory.opi index 5fecdc4f3..9a89de65d 100644 --- a/tools/commander/workspace_template/Displays/Apps/CS/DisableMemory.opi +++ b/tools/commander/workspace_template/Displays/Apps/CS/DisableMemory.opi @@ -1,245 +1,246 @@ - - true - - -736e4684:150ac3c95a1:-7e23 - true - false - - 150 - - true - - 4.0.104.201510200439 - true - Display - - false - -1 - -1 - - - - - 180 - -1 - - 6 - true - -1 - true - - - - - - false - 0 - false - false - $(pv_name) -$(pv_value) - 0 - - true - -736e4684:150ac3c95a1:-7e12 - - Enable All - - false - 24 - 1 - - true - true - false - - - true - - - - - Action Button - false - - - - 109 - 36 - Action Button - 18 - - - - - - - ../scripts/QueryOneApp.js + + + + false + -1 + -1 + + false + + + + 1.5.3 + + + + 6 + 150 + + true + + + + + true + true + true + true + true + Display + 180 + -736e4684:150ac3c95a1:-7e23 + -1 + -1 + + + + ../scripts/QueryOneApp.js - true - - - - - Default - - - - false - 0 - false - false - $(pv_name) -$(pv_value) - 0 - - true - -736e4684:150ac3c95a1:-7e06 - - Enable Entry - - false - 24 - 1 - - true - true - false - - - true - - - - - Action Button - false - - - - 109 - 36 - Action Button_1 - 114 - - - - - - - ../scripts/QueryOneApp.js +Yamcs.issueCommand(cmd);]]> + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 24 + + Action Button + 0 + + + + + true + true + false + + + + Enable All + false + $(pv_name) +$(pv_value) + true + Action Button + 109 + -736e4684:150ac3c95a1:-7e12 + 36 + 18 + + + + + ../scripts/QueryOneApp.js - true - - - - - Default - - - - 0 - - 2 - - true - -736e4684:150ac3c95a1:-7de8 - true - false - Entry ID - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 50 - 12 - Label_3 - 78 - - - - - - Default - - - - 3 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - -736e4684:150ac3c95a1:-7de7 - false - - - false - false - 19 - 1 - - true - true - false - - true - loc://EntryID<VDouble> - 1 - 0 - false - - - - false - Spinner - 1.0 - false - false - - - - 10.0 - 100 - 72 - EntryID - 78 - 1.7976931348623157E308 - - - - - -1.7976931348623157E308 - - Default - - +var cmd = '/CFS/CS/DisableEntryMemory(EntryID: ' + EntryID + ')';]]> + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 24 + + Action Button_1 + 0 + + + + + true + true + false + + + + Enable Entry + false + $(pv_name) +$(pv_value) + true + Action Button + 109 + -736e4684:150ac3c95a1:-7e06 + 36 + 114 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_3 + + + true + true + false + + + Entry ID + + true + 1 + true + Label + 55 + false + -736e4684:150ac3c95a1:-7de8 + 12 + 78 + + + + false + false + + + + false + + + + 3 + 1 + false + true + + Default + + false + + + + 0 + 19 + 0 + false + false + 1.7976931348623157E308 + -1.7976931348623157E308 + EntryID + 10.0 + 0 + false + loc://EntryID<VDouble> + + + + true + true + false + + + true + 1.0 + $(pv_name) +$(pv_value) + false + 1 + true + Spinner + 100 + -736e4684:150ac3c95a1:-7de7 + 72 + 78 + \ No newline at end of file diff --git a/tools/commander/workspace_template/Displays/Apps/CS/DisableTable.opi b/tools/commander/workspace_template/Displays/Apps/CS/DisableTable.opi index a9a59470d..e98b97814 100644 --- a/tools/commander/workspace_template/Displays/Apps/CS/DisableTable.opi +++ b/tools/commander/workspace_template/Displays/Apps/CS/DisableTable.opi @@ -1,253 +1,253 @@ - - true - - -736e4684:150ac3c95a1:-7e23 - true - false - - 150 - - true - - 4.0.104.201510200439 - true - Display - - false - -1 - -1 - - - - - 200 - -1 - - 6 - true - -1 - true - - - - - - false - 0 - false - false - $(pv_name) -$(pv_value) - 0 - - true - -736e4684:150ac3c95a1:-7e12 - - Disable All - - false - 24 - 1 - - true - true - false - - - true - - - - - Action Button - false - - - - 109 - 48 - Action Button - 18 - - - - - - - ../scripts/QueryOneApp.js + + + + false + -1 + -1 + + false + + + + 1.5.3 + + + + 6 + 150 + + true + + + + + true + true + true + true + true + Display + 200 + -736e4684:150ac3c95a1:-7e23 + -1 + -1 + + + + ../scripts/QueryOneApp.js - true - - - - - Default - - - - false - 0 - false - false - $(pv_name) -$(pv_value) - 0 - - true - -736e4684:150ac3c95a1:-7e06 - - Disable Table - - false - 24 - 1 - - true - true - false - - - true - - - - - Action Button - false - - - - 109 - 48 - Action Button_1 - 114 - - - - - - - ../scripts/QueryOneApp.js +Yamcs.issueCommand(cmd);]]> + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 24 + + Action Button + 0 + + + + + true + true + false + + + + Disable All + false + $(pv_name) +$(pv_value) + true + Action Button + 109 + -736e4684:150ac3c95a1:-7e12 + 48 + 18 + + + + + ../scripts/QueryOneApp.js - true - - - - - Default - - - - 0 - - 2 - - true - -736e4684:150ac3c95a1:-76ae - true - false - Name - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 50 - 12 - Label_3 - 83 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - true - -736e4684:150ac3c95a1:-76ad - - - true - 29 - 1 - - true - false - false - - false - true - loc://Name - - - - Combo - false - - - - 115 - 72 - Name - 78 - - - - - - CF - CI - CS - DS - EIM - HS - FM - HK - LC - MM - SCH - TO - SBN - CFE_ES - CFE_EVS - CFE_SB - CFE_TBL - CFE_TIME - - - Default - - +var cmd = '/CFS/CS/DisableNameTable(Name: ' + Name + ')';]]> + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 24 + + Action Button_1 + 0 + + + + + true + true + false + + + + Disable Table + false + $(pv_name) +$(pv_value) + true + Action Button + 109 + -736e4684:150ac3c95a1:-7e06 + 48 + 114 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_3 + + + true + true + false + + + Name + + true + 1 + true + Label + 50 + false + -736e4684:150ac3c95a1:-76ae + 12 + 83 + + + + false + false + + + + true + + + + 0 + 1 + true + + Default + + false + + + + 34 + + CF + CI + CS + DS + EIM + HS + FM + HK + LC + MM + SCH + TO + SBN + CFE_ES + CFE_EVS + CFE_SB + CFE_TBL + CFE_TIME + + false + Name + loc://Name + + + + true + false + false + + + $(pv_name) +$(pv_value) + true + Combo + 115 + -736e4684:150ac3c95a1:-76ad + 72 + 78 + \ No newline at end of file diff --git a/tools/commander/workspace_template/Displays/Apps/CS/EnableApplication.opi b/tools/commander/workspace_template/Displays/Apps/CS/EnableApplication.opi index fefcfc248..59ebbf42f 100644 --- a/tools/commander/workspace_template/Displays/Apps/CS/EnableApplication.opi +++ b/tools/commander/workspace_template/Displays/Apps/CS/EnableApplication.opi @@ -1,253 +1,253 @@ - - true - - -736e4684:150ac3c95a1:-7e23 - true - false - - 150 - - true - - 4.0.104.201510200439 - true - Display - - false - -1 - -1 - - - - - 200 - -1 - - 6 - true - -1 - true - - - - - - false - 0 - false - false - $(pv_name) -$(pv_value) - 0 - - true - -736e4684:150ac3c95a1:-7e12 - - Enable All - - false - 24 - 1 - - true - true - false - - - true - - - - - Action Button - false - - - - 109 - 48 - Action Button - 18 - - - - - - - ../scripts/QueryOneApp.js + + + + false + -1 + -1 + + false + + + + 1.5.3 + + + + 6 + 150 + + true + + + + + true + true + true + true + true + Display + 200 + -736e4684:150ac3c95a1:-7e23 + -1 + -1 + + + + ../scripts/QueryOneApp.js - true - - - - - Default - - - - false - 0 - false - false - $(pv_name) -$(pv_value) - 0 - - true - -736e4684:150ac3c95a1:-7e06 - - Enable App - - false - 24 - 1 - - true - true - false - - - true - - - - - Action Button - false - - - - 109 - 48 - Action Button_1 - 114 - - - - - - - ../scripts/QueryOneApp.js +Yamcs.issueCommand(cmd);]]> + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 24 + + Action Button + 0 + + + + + true + true + false + + + + Enable All + false + $(pv_name) +$(pv_value) + true + Action Button + 109 + -736e4684:150ac3c95a1:-7e12 + 48 + 18 + + + + + ../scripts/QueryOneApp.js - true - - - - - Default - - - - 0 - - 2 - - true - -736e4684:150ac3c95a1:-76ae - true - false - Name - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 50 - 12 - Label_3 - 83 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - true - -736e4684:150ac3c95a1:-76ad - - - true - 29 - 1 - - true - false - false - - false - true - loc://Name - - - - Combo - false - - - - 115 - 72 - Name - 78 - - - - - - CF - CI - CS - DS - EIM - HS - FM - HK - LC - MM - SCH - TO - SBN - CFE_ES - CFE_EVS - CFE_SB - CFE_TBL - CFE_TIME - - - Default - - +var cmd = '/CFS/CS/EnableNameApp(Name: ' + Name + ')';]]> + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 24 + + Action Button_1 + 0 + + + + + true + true + false + + + + Enable App + false + $(pv_name) +$(pv_value) + true + Action Button + 109 + -736e4684:150ac3c95a1:-7e06 + 48 + 114 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_3 + + + true + true + false + + + Name + + true + 1 + true + Label + 50 + false + -736e4684:150ac3c95a1:-76ae + 12 + 83 + + + + false + false + + + + true + + + + 0 + 1 + true + + Default + + false + + + + 34 + + CF + CI + CS + DS + EIM + HS + FM + HK + LC + MM + SCH + TO + SBN + CFE_ES + CFE_EVS + CFE_SB + CFE_TBL + CFE_TIME + + false + Name + loc://Name + + + + true + false + false + + + $(pv_name) +$(pv_value) + true + Combo + 115 + -736e4684:150ac3c95a1:-76ad + 72 + 78 + \ No newline at end of file diff --git a/tools/commander/workspace_template/Displays/Apps/CS/EnableEEPROM.opi b/tools/commander/workspace_template/Displays/Apps/CS/EnableEEPROM.opi index a96669491..8a4b70b30 100644 --- a/tools/commander/workspace_template/Displays/Apps/CS/EnableEEPROM.opi +++ b/tools/commander/workspace_template/Displays/Apps/CS/EnableEEPROM.opi @@ -1,245 +1,246 @@ - - true - - -736e4684:150ac3c95a1:-7e23 - true - false - - 150 - - true - - 4.0.104.201510200439 - true - Display - - false - -1 - -1 - - - - - 180 - -1 - - 6 - true - -1 - true - - - - - - false - 0 - false - false - $(pv_name) -$(pv_value) - 0 - - true - -736e4684:150ac3c95a1:-7e12 - - Enable All - - false - 24 - 1 - - true - true - false - - - true - - - - - Action Button - false - - - - 109 - 36 - Action Button - 18 - - - - - - - ../scripts/QueryOneApp.js + + + + false + -1 + -1 + + false + + + + 1.5.3 + + + + 6 + 150 + + true + + + + + true + true + true + true + true + Display + 180 + -736e4684:150ac3c95a1:-7e23 + -1 + -1 + + + + ../scripts/QueryOneApp.js - true - - - - - Default - - - - false - 0 - false - false - $(pv_name) -$(pv_value) - 0 - - true - -736e4684:150ac3c95a1:-7e06 - - Enable Entry - - false - 24 - 1 - - true - true - false - - - true - - - - - Action Button - false - - - - 109 - 36 - Action Button_1 - 114 - - - - - - - ../scripts/QueryOneApp.js +Yamcs.issueCommand(cmd);]]> + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 24 + + Action Button + 0 + + + + + true + true + false + + + + Enable All + false + $(pv_name) +$(pv_value) + true + Action Button + 109 + -736e4684:150ac3c95a1:-7e12 + 36 + 18 + + + + + ../scripts/QueryOneApp.js - true - - - - - Default - - - - 0 - - 2 - - true - -736e4684:150ac3c95a1:-7de8 - true - false - Entry ID - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 50 - 12 - Label_3 - 78 - - - - - - Default - - - - 3 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - -736e4684:150ac3c95a1:-7de7 - false - - - false - false - 19 - 1 - - true - true - false - - true - loc://EntryID<VDouble> - 1 - 0 - false - - - - false - Spinner - 1.0 - false - false - - - - 10.0 - 100 - 72 - EntryID - 78 - 1.7976931348623157E308 - - - - - -1.7976931348623157E308 - - Default - - +var cmd = '/CFS/CS/EnableEntryEEPROM(EntryID: ' + EntryID + ')';]]> + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 24 + + Action Button_1 + 0 + + + + + true + true + false + + + + Enable Entry + false + $(pv_name) +$(pv_value) + true + Action Button + 109 + -736e4684:150ac3c95a1:-7e06 + 36 + 114 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_3 + + + true + true + false + + + Entry ID + + true + 1 + true + Label + 55 + false + -736e4684:150ac3c95a1:-7de8 + 12 + 78 + + + + false + false + + + + false + + + + 3 + 1 + false + true + + Default + + false + + + + 0 + 19 + 0 + false + false + 1.7976931348623157E308 + -1.7976931348623157E308 + EntryID + 10.0 + 0 + false + loc://EntryID<VDouble> + + + + true + true + false + + + true + 1.0 + $(pv_name) +$(pv_value) + false + 1 + true + Spinner + 100 + -736e4684:150ac3c95a1:-7de7 + 72 + 78 + \ No newline at end of file diff --git a/tools/commander/workspace_template/Displays/Apps/CS/EnableMemory.opi b/tools/commander/workspace_template/Displays/Apps/CS/EnableMemory.opi index 6581b950d..db93b5ec4 100644 --- a/tools/commander/workspace_template/Displays/Apps/CS/EnableMemory.opi +++ b/tools/commander/workspace_template/Displays/Apps/CS/EnableMemory.opi @@ -1,245 +1,246 @@ - - true - - -736e4684:150ac3c95a1:-7e23 - true - false - - 150 - - true - - 4.0.104.201510200439 - true - Display - - false - -1 - -1 - - - - - 180 - -1 - - 6 - true - -1 - true - - - - - - false - 0 - false - false - $(pv_name) -$(pv_value) - 0 - - true - -736e4684:150ac3c95a1:-7e12 - - Enable All - - false - 24 - 1 - - true - true - false - - - true - - - - - Action Button - false - - - - 109 - 36 - Action Button - 18 - - - - - - - ../scripts/QueryOneApp.js + + + + false + -1 + -1 + + false + + + + 1.5.3 + + + + 6 + 150 + + true + + + + + true + true + true + true + true + Display + 180 + -736e4684:150ac3c95a1:-7e23 + -1 + -1 + + + + ../scripts/QueryOneApp.js - true - - - - - Default - - - - false - 0 - false - false - $(pv_name) -$(pv_value) - 0 - - true - -736e4684:150ac3c95a1:-7e06 - - Enable Entry - - false - 24 - 1 - - true - true - false - - - true - - - - - Action Button - false - - - - 109 - 36 - Action Button_1 - 114 - - - - - - - ../scripts/QueryOneApp.js +Yamcs.issueCommand(cmd);]]> + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 24 + + Action Button + 0 + + + + + true + true + false + + + + Enable All + false + $(pv_name) +$(pv_value) + true + Action Button + 109 + -736e4684:150ac3c95a1:-7e12 + 36 + 18 + + + + + ../scripts/QueryOneApp.js - true - - - - - Default - - - - 0 - - 2 - - true - -736e4684:150ac3c95a1:-7de8 - true - false - Entry ID - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 50 - 12 - Label_3 - 78 - - - - - - Default - - - - 3 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - -736e4684:150ac3c95a1:-7de7 - false - - - false - false - 19 - 1 - - true - true - false - - true - loc://EntryID<VDouble> - 1 - 0 - false - - - - false - Spinner - 1.0 - false - false - - - - 10.0 - 100 - 72 - EntryID - 78 - 1.7976931348623157E308 - - - - - -1.7976931348623157E308 - - Default - - +var cmd = '/CFS/CS/EnableEntryMemory(EntryID: ' + EntryID + ')';]]> + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 24 + + Action Button_1 + 0 + + + + + true + true + false + + + + Enable Entry + false + $(pv_name) +$(pv_value) + true + Action Button + 109 + -736e4684:150ac3c95a1:-7e06 + 36 + 114 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_3 + + + true + true + false + + + Entry ID + + true + 1 + true + Label + 55 + false + -736e4684:150ac3c95a1:-7de8 + 12 + 78 + + + + false + false + + + + false + + + + 3 + 1 + false + true + + Default + + false + + + + 0 + 19 + 0 + false + false + 1.7976931348623157E308 + -1.7976931348623157E308 + EntryID + 10.0 + 0 + false + loc://EntryID<VDouble> + + + + true + true + false + + + true + 1.0 + $(pv_name) +$(pv_value) + false + 1 + true + Spinner + 100 + -736e4684:150ac3c95a1:-7de7 + 72 + 78 + \ No newline at end of file diff --git a/tools/commander/workspace_template/Displays/Apps/CS/EnableTable.opi b/tools/commander/workspace_template/Displays/Apps/CS/EnableTable.opi index ada7a5236..99e62e098 100644 --- a/tools/commander/workspace_template/Displays/Apps/CS/EnableTable.opi +++ b/tools/commander/workspace_template/Displays/Apps/CS/EnableTable.opi @@ -1,253 +1,253 @@ - - true - - -736e4684:150ac3c95a1:-7e23 - true - false - - 150 - - true - - 4.0.104.201510200439 - true - Display - - false - -1 - -1 - - - - - 200 - -1 - - 6 - true - -1 - true - - - - - - false - 0 - false - false - $(pv_name) -$(pv_value) - 0 - - true - -736e4684:150ac3c95a1:-7e12 - - Enable All - - false - 24 - 1 - - true - true - false - - - true - - - - - Action Button - false - - - - 109 - 48 - Action Button - 18 - - - - - - - ../scripts/QueryOneApp.js + + + + false + -1 + -1 + + false + + + + 1.5.3 + + + + 6 + 150 + + true + + + + + true + true + true + true + true + Display + 200 + -736e4684:150ac3c95a1:-7e23 + -1 + -1 + + + + ../scripts/QueryOneApp.js - true - - - - - Default - - - - false - 0 - false - false - $(pv_name) -$(pv_value) - 0 - - true - -736e4684:150ac3c95a1:-7e06 - - Enable Table - - false - 24 - 1 - - true - true - false - - - true - - - - - Action Button - false - - - - 109 - 48 - Action Button_1 - 114 - - - - - - - ../scripts/QueryOneApp.js +Yamcs.issueCommand(cmd);]]> + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 24 + + Action Button + 0 + + + + + true + true + false + + + + Enable All + false + $(pv_name) +$(pv_value) + true + Action Button + 109 + -736e4684:150ac3c95a1:-7e12 + 48 + 18 + + + + + ../scripts/QueryOneApp.js - true - - - - - Default - - - - 0 - - 2 - - true - -736e4684:150ac3c95a1:-76ae - true - false - Name - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 50 - 12 - Label_3 - 83 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - true - -736e4684:150ac3c95a1:-76ad - - - true - 29 - 1 - - true - false - false - - false - true - loc://Name - - - - Combo - false - - - - 115 - 72 - Name - 78 - - - - - - CF - CI - CS - DS - EIM - HS - FM - HK - LC - MM - SCH - TO - SBN - CFE_ES - CFE_EVS - CFE_SB - CFE_TBL - CFE_TIME - - - Default - - +var cmd = '/CFS/CS/EnableNameTable(Name: ' + Name + ')';]]> + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 24 + + Action Button_1 + 0 + + + + + true + true + false + + + + Enable Table + false + $(pv_name) +$(pv_value) + true + Action Button + 109 + -736e4684:150ac3c95a1:-7e06 + 48 + 114 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_3 + + + true + true + false + + + Name + + true + 1 + true + Label + 50 + false + -736e4684:150ac3c95a1:-76ae + 12 + 83 + + + + false + false + + + + true + + + + 0 + 1 + true + + Default + + false + + + + 34 + + CF + CI + CS + DS + EIM + HS + FM + HK + LC + MM + SCH + TO + SBN + CFE_ES + CFE_EVS + CFE_SB + CFE_TBL + CFE_TIME + + false + Name + loc://Name + + + + true + false + false + + + $(pv_name) +$(pv_value) + true + Combo + 115 + -736e4684:150ac3c95a1:-76ad + 72 + 78 + \ No newline at end of file diff --git a/tools/commander/workspace_template/Displays/Apps/CS/GetEntryIDEEPROM.opi b/tools/commander/workspace_template/Displays/Apps/CS/GetEntryIDEEPROM.opi index 7608df3ab..594d8824d 100644 --- a/tools/commander/workspace_template/Displays/Apps/CS/GetEntryIDEEPROM.opi +++ b/tools/commander/workspace_template/Displays/Apps/CS/GetEntryIDEEPROM.opi @@ -1,81 +1,41 @@ - - true - - -33cb7c72:150aa4c347f:-6fed - true - false - - 90 - - true - - 4.0.104.201510200439 - true - Display - - false - -1 - -1 - - - - - 200 - -1 - - 6 - true - -1 - true - - - - - - false - 0 - false - false - $(pv_name) -$(pv_value) - 0 - - true - -736e4684:150ac3c95a1:-7e80 - - Get Entry ID - - false - 24 - 1 - - true - true - false - - - true - - - - - Action Button - false - - - - 109 - 48 - Action Button - 48 - - - - - - - ../scripts/QueryOneApp.js + + + + false + -1 + -1 + + false + + + + 1.5.3 + + + + 6 + 90 + + true + + + + + true + true + true + true + true + Display + 200 + -33cb7c72:150aa4c347f:-6fed + -1 + -1 + + + + ../scripts/QueryOneApp.js - true - - - - - Default - - - - 0 - - 2 - - true - -736e4684:150ac3c95a1:-7e7f - true - false - Address - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 50 - 18 - Label_3 - 12 - - - - - - Default - - - - false - 0 - $(pv_name) -$(pv_value) - 0 - - - false - - 0.0 - true - 19 - false - 1 - true - loc://Address<VDouble> - 0 - - - - false - Text Input - - Address - - - 3 - false - true - -736e4684:150ac3c95a1:-7e7e - false - - false - - true - true - false - - false - 3 - false - - - - 100 - 78 - 12 - 1.7976931348623157E308 - - - - -1.7976931348623157E308 - - Default - - +Yamcs.issueCommand(cmd);]]> + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 24 + + Action Button + 0 + + + + + true + true + false + + + + Get Entry ID + false + $(pv_name) +$(pv_value) + true + Action Button + 109 + -736e4684:150ac3c95a1:-7e80 + 48 + 48 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_3 + + + true + true + false + + + Address + + true + 1 + true + Label + 55 + false + -736e4684:150ac3c95a1:-7e7f + 18 + 12 + + + + false + false + false + + + + false + + + + 3 + 1 + + true + + Default + + false + + + + 3 + 19 + 0 + false + 1.7976931348623157E308 + -1.7976931348623157E308 + false + Address + 0 + false + loc://Address<VDouble> + + 0.0 + + + true + true + false + + + 0 + true + + + $(pv_name) +$(pv_value) + false + true + Text Input + 100 + -736e4684:150ac3c95a1:-7e7e + 78 + 12 + \ No newline at end of file diff --git a/tools/commander/workspace_template/Displays/Apps/CS/GetEntryIDMemory.opi b/tools/commander/workspace_template/Displays/Apps/CS/GetEntryIDMemory.opi index 0b82a25ed..8aa58b3b0 100644 --- a/tools/commander/workspace_template/Displays/Apps/CS/GetEntryIDMemory.opi +++ b/tools/commander/workspace_template/Displays/Apps/CS/GetEntryIDMemory.opi @@ -1,81 +1,41 @@ - - true - - -33cb7c72:150aa4c347f:-6fed - true - false - - 90 - - true - - 4.0.104.201510200439 - true - Display - - false - -1 - -1 - - - - - 200 - -1 - - 6 - true - -1 - true - - - - - - false - 0 - false - false - $(pv_name) -$(pv_value) - 0 - - true - -736e4684:150ac3c95a1:-7e80 - - Get Entry ID - - false - 24 - 1 - - true - true - false - - - true - - - - - Action Button - false - - - - 109 - 48 - Action Button - 48 - - - - - - - ../scripts/QueryOneApp.js + + + + false + -1 + -1 + + false + + + + 1.5.3 + + + + 6 + 90 + + true + + + + + true + true + true + true + true + Display + 200 + -33cb7c72:150aa4c347f:-6fed + -1 + -1 + + + + ../scripts/QueryOneApp.js - true - - - - - Default - - - - 0 - - 2 - - true - -736e4684:150ac3c95a1:-7e7f - true - false - Address - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 50 - 18 - Label_3 - 12 - - - - - - Default - - - - false - 0 - $(pv_name) -$(pv_value) - 0 - - - false - - 0.0 - true - 19 - false - 1 - true - loc://Address<VDouble> - 0 - - - - false - Text Input - - Address - - - 3 - false - true - -736e4684:150ac3c95a1:-7e7e - false - - false - - true - true - false - - false - 3 - false - - - - 100 - 78 - 12 - 1.7976931348623157E308 - - - - -1.7976931348623157E308 - - Default - - +Yamcs.issueCommand(cmd);]]> + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 24 + + Action Button + 0 + + + + + true + true + false + + + + Get Entry ID + false + $(pv_name) +$(pv_value) + true + Action Button + 109 + -736e4684:150ac3c95a1:-7e80 + 48 + 48 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_3 + + + true + true + false + + + Address + + true + 1 + true + Label + 55 + false + -736e4684:150ac3c95a1:-7e7f + 18 + 12 + + + + false + false + false + + + + false + + + + 3 + 1 + + true + + Default + + false + + + + 3 + 19 + 0 + false + 1.7976931348623157E308 + -1.7976931348623157E308 + false + Address + 0 + false + loc://Address<VDouble> + + 0.0 + + + true + true + false + + + 0 + true + + + $(pv_name) +$(pv_value) + false + true + Text Input + 100 + -736e4684:150ac3c95a1:-7e7e + 78 + 12 + \ No newline at end of file diff --git a/tools/commander/workspace_template/Displays/Apps/CS/Main.opi b/tools/commander/workspace_template/Displays/Apps/CS/Main.opi index 0d8ebdbe1..2b847452a 100644 --- a/tools/commander/workspace_template/Displays/Apps/CS/Main.opi +++ b/tools/commander/workspace_template/Displays/Apps/CS/Main.opi @@ -269,7 +269,7 @@ $(pv_value) false false - + false @@ -283,7 +283,7 @@ $(pv_value) false - + 13 @@ -323,7 +323,7 @@ $(pv_value) false false - + false @@ -337,7 +337,7 @@ $(pv_value) false - + 13 @@ -2548,7 +2548,7 @@ $(pv_value) false false - + false @@ -2602,7 +2602,7 @@ $(pv_value) false false - + false @@ -2616,7 +2616,7 @@ $(pv_value) false - + 22 @@ -2657,7 +2657,7 @@ $(pv_value) false false - + false @@ -2712,7 +2712,7 @@ $(pv_value) false false - + false @@ -2766,7 +2766,7 @@ $(pv_value) false false - + false @@ -2780,7 +2780,7 @@ $(pv_value) false - + 20 @@ -2820,7 +2820,7 @@ $(pv_value) false false - + false @@ -2834,7 +2834,7 @@ $(pv_value) false - + 20 @@ -2875,7 +2875,7 @@ $(pv_value) false false - + false @@ -2930,7 +2930,7 @@ $(pv_value) false false - + false @@ -2973,18 +2973,19 @@ $(pv_value) - - scripts/EnableMemory.js - - false + + EnableMemory.opi + + true + + 0 false false - + false @@ -3027,18 +3028,19 @@ $(pv_value) - - scripts/DisableMemory.js - - false + + DisableMemory.opi + + true + + 0 false false - + false @@ -3093,7 +3095,7 @@ $(pv_value) false false - + false @@ -3148,7 +3150,7 @@ $(pv_value) false false - + false @@ -3203,7 +3205,7 @@ $(pv_value) false false - + false @@ -3258,7 +3260,7 @@ $(pv_value) false false - + false @@ -3312,7 +3314,7 @@ $(pv_value) false false - + false @@ -3326,7 +3328,7 @@ $(pv_value) false - + 20 @@ -3366,7 +3368,7 @@ $(pv_value) false false - + false @@ -3380,7 +3382,7 @@ $(pv_value) false - + 20 @@ -3420,7 +3422,7 @@ $(pv_value) false false - + false @@ -3434,7 +3436,7 @@ $(pv_value) false - + 20 @@ -3474,7 +3476,7 @@ $(pv_value) false false - + false @@ -3488,7 +3490,7 @@ $(pv_value) false - + 20 @@ -3529,7 +3531,7 @@ $(pv_value) false false - + false @@ -3584,7 +3586,7 @@ $(pv_value) false false - + false @@ -3639,7 +3641,7 @@ $(pv_value) false false - + false @@ -3694,7 +3696,7 @@ $(pv_value) false false - + false @@ -3749,7 +3751,7 @@ $(pv_value) false false - + false @@ -3804,7 +3806,7 @@ $(pv_value) false false - + false @@ -3858,7 +3860,7 @@ $(pv_value) false false - + false @@ -3872,7 +3874,7 @@ $(pv_value) false - + 20 @@ -3912,7 +3914,7 @@ $(pv_value) false false - + false @@ -3926,7 +3928,7 @@ $(pv_value) false - + 20 @@ -3966,7 +3968,7 @@ $(pv_value) false false - + false @@ -3980,7 +3982,7 @@ $(pv_value) false - + 20 @@ -4020,7 +4022,7 @@ $(pv_value) false false - + false @@ -4034,7 +4036,7 @@ $(pv_value) false - + 20 @@ -4075,7 +4077,7 @@ $(pv_value) false false - + false @@ -4130,7 +4132,7 @@ $(pv_value) false false - + false diff --git a/tools/commander/workspace_template/Displays/Apps/CS/OneShot.opi b/tools/commander/workspace_template/Displays/Apps/CS/OneShot.opi index 960043462..cabbfb5a8 100644 --- a/tools/commander/workspace_template/Displays/Apps/CS/OneShot.opi +++ b/tools/commander/workspace_template/Displays/Apps/CS/OneShot.opi @@ -1,81 +1,41 @@ - - true - - 72a2bf2b:1508717c835:-7d33 - true - false - - 110 - - true - - 4.0.104.201510200439 - true - Display - - false - -1 - -1 - - - - - 200 - -1 - - 6 - true - -1 - true - - - - - - false - 0 - false - false - $(pv_name) -$(pv_value) - 0 - - true - 72a2bf2b:1508717c835:-7cf7 - - Get Checksum - - false - 24 - 1 - - true - true - false - - - true - - - - - Action Button - false - - - - 109 - 42 - Action Button - 72 - - - - - - - ../scripts/QueryOneApp.js + + + + false + -1 + -1 + + false + + + + 1.5.3 + + + + 6 + 110 + + true + + + + + true + true + true + true + true + Display + 200 + 72a2bf2b:1508717c835:-7d33 + -1 + -1 + + + + ../scripts/QueryOneApp.js - true - - - - - Default - - - - 0 - - 2 - - true - 72a2bf2b:1508717c835:-7c63 - true - false - Address - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 50 - 12 - Label_3 - 19 - - - - - - Default - - - - false - 0 - $(pv_name) -$(pv_value) - 0 - - - false - - 0.0 - true - 19 - false - 1 - true - loc://Address<VDouble> - 0 - - - - false - Text Input - - Address - - - 3 - false - true - -33cb7c72:150aa4c347f:-72cb - false - - false - - true - true - false - - false - 3 - false - - - - 100 - 72 - 19 - 1.7976931348623157E308 - - - - -1.7976931348623157E308 - - Default - - - - 0 - - 2 - - true - -33cb7c72:150aa4c347f:-72bb - true - false - Size - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 50 - 12 - Label_1 - 38 - - - - - - Default - - - - 3 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - -33cb7c72:150aa4c347f:-72b3 - false - - - false - false - 19 - 1 - - true - true - false - - true - loc://Size<VDouble> - 1 - 0 - false - - - - true - Spinner - 1.0 - false - false - - - - 10.0 - 100 - 72 - Size - 38 - 1.7976931348623157E308 - - - - - -1.7976931348623157E308 - - Default - - +Yamcs.issueCommand(cmd);]]> + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 24 + + Action Button + 0 + + + + + true + true + false + + + + Get Checksum + false + $(pv_name) +$(pv_value) + true + Action Button + 109 + 72a2bf2b:1508717c835:-7cf7 + 42 + 72 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_3 + + + true + true + false + + + Address + + true + 1 + true + Label + 50 + false + 72a2bf2b:1508717c835:-7c63 + 12 + 19 + + + + false + false + false + + + + false + + + + 3 + 1 + + true + + Default + + false + + + + 3 + 19 + 0 + false + 1.7976931348623157E308 + -1.7976931348623157E308 + false + Address + 0 + false + loc://Address<VDouble> + + 0.0 + + + true + true + false + + + 0 + true + + + $(pv_name) +$(pv_value) + false + true + Text Input + 100 + -33cb7c72:150aa4c347f:-72cb + 72 + 19 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_1 + + + true + true + false + + + Size + + true + 1 + true + Label + 50 + false + -33cb7c72:150aa4c347f:-72bb + 12 + 38 + + + + false + false + + + + false + + + + 3 + 1 + false + true + + Default + + false + + + + 0 + 19 + 0 + false + false + 1.7976931348623157E308 + -1.7976931348623157E308 + Size + 10.0 + 0 + true + loc://Size<VDouble> + + + + true + true + false + + + true + 1.0 + $(pv_name) +$(pv_value) + false + 1 + true + Spinner + 100 + -33cb7c72:150aa4c347f:-72b3 + 72 + 38 + \ No newline at end of file diff --git a/tools/commander/workspace_template/Displays/Apps/CS/RecomputeBaselineApp.opi b/tools/commander/workspace_template/Displays/Apps/CS/RecomputeBaselineApp.opi index a60a81630..10390403b 100644 --- a/tools/commander/workspace_template/Displays/Apps/CS/RecomputeBaselineApp.opi +++ b/tools/commander/workspace_template/Displays/Apps/CS/RecomputeBaselineApp.opi @@ -1,195 +1,195 @@ - - true - - -736e4684:150ac3c95a1:-7e23 - true - false - - 80 - - true - - 4.0.104.201510200439 - true - Display - - false - -1 - -1 - - - - - 200 - -1 - - 6 - true - -1 - true - - - - - - false - 0 - false - false - $(pv_name) -$(pv_value) - 0 - - true - -736e4684:150ac3c95a1:-7e06 - - Recompute Baseline - - false - 24 - 1 - - true - true - false - - - true - - - - - Action Button - false - - - - 145 - 30 - Action Button_1 - 48 - - - - - - - ../scripts/QueryOneApp.js + + + + false + -1 + -1 + + false + + + + 1.5.3 + + + + 6 + 80 + + true + + + + + true + true + true + true + true + Display + 200 + -736e4684:150ac3c95a1:-7e23 + -1 + -1 + + + + ../scripts/QueryOneApp.js - true - - - - - Default - - - - 0 - - 2 - - true - -736e4684:150ac3c95a1:-76ae - true - false - Name - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 50 - 12 - Label_3 - 17 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - true - -736e4684:150ac3c95a1:-76ad - - - true - 29 - 1 - - true - false - false - - false - true - loc://Name - - - - Combo - false - - - - 115 - 72 - Name - 12 - - - - - - CF - CI - CS - DS - EIM - HS - FM - HK - LC - MM - SCH - TO - SBN - CFE_ES - CFE_EVS - CFE_SB - CFE_TBL - CFE_TIME - - - Default - - +var cmd = '/CFS/CS/RecomputeBaselineApp(Name: ' + Name + ')';]]> + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 24 + + Action Button_1 + 0 + + + + + true + true + false + + + + Recompute Baseline + false + $(pv_name) +$(pv_value) + true + Action Button + 145 + -736e4684:150ac3c95a1:-7e06 + 30 + 48 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_3 + + + true + true + false + + + Name + + true + 1 + true + Label + 50 + false + -736e4684:150ac3c95a1:-76ae + 12 + 17 + + + + false + false + + + + true + + + + 0 + 1 + true + + Default + + false + + + + 34 + + CF + CI + CS + DS + EIM + HS + FM + HK + LC + MM + SCH + TO + SBN + CFE_ES + CFE_EVS + CFE_SB + CFE_TBL + CFE_TIME + + false + Name + loc://Name + + + + true + false + false + + + $(pv_name) +$(pv_value) + true + Combo + 115 + -736e4684:150ac3c95a1:-76ad + 72 + 12 + \ No newline at end of file diff --git a/tools/commander/workspace_template/Displays/Apps/CS/RecomputeBaselineEEPROM.opi b/tools/commander/workspace_template/Displays/Apps/CS/RecomputeBaselineEEPROM.opi index 296da3500..c13584bb4 100644 --- a/tools/commander/workspace_template/Displays/Apps/CS/RecomputeBaselineEEPROM.opi +++ b/tools/commander/workspace_template/Displays/Apps/CS/RecomputeBaselineEEPROM.opi @@ -1,187 +1,188 @@ - - true - - -736e4684:150ac3c95a1:-7e23 - true - false - - 90 - - true - - 4.0.104.201510200439 - true - Display - - false - -1 - -1 - - - - - 180 - -1 - - 6 - true - -1 - true - - - - - - false - 0 - false - false - $(pv_name) -$(pv_value) - 0 - - true - -736e4684:150ac3c95a1:-7e06 - - Recompute Baseline - - false - 24 - 1 - - true - true - false - - - true - - - - - Action Button - false - - - - 136 - 24 - Action Button_1 - 54 - - - - - - - ../scripts/QueryOneApp.js + + + + false + -1 + -1 + + false + + + + 1.5.3 + + + + 6 + 90 + + true + + + + + true + true + true + true + true + Display + 180 + -736e4684:150ac3c95a1:-7e23 + -1 + -1 + + + + ../scripts/QueryOneApp.js - true - - - - - Default - - - - 0 - - 2 - - true - -736e4684:150ac3c95a1:-7de8 - true - false - Entry ID - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 50 - 12 - Label_3 - 18 - - - - - - Default - - - - 3 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - -736e4684:150ac3c95a1:-7de7 - false - - - false - false - 19 - 1 - - true - true - false - - true - loc://EntryID<VDouble> - 1 - 0 - false - - - - false - Spinner - 1.0 - false - false - - - - 10.0 - 100 - 72 - EntryID - 18 - 1.7976931348623157E308 - - - - - -1.7976931348623157E308 - - Default - - +var cmd = '/CFS/CS/RecomputeBaselineEEPROM(EntryID: ' + EntryID + ')';]]> + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 24 + + Action Button_1 + 0 + + + + + true + true + false + + + + Recompute Baseline + false + $(pv_name) +$(pv_value) + true + Action Button + 136 + -736e4684:150ac3c95a1:-7e06 + 24 + 54 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_3 + + + true + true + false + + + Entry ID + + true + 1 + true + Label + 55 + false + -736e4684:150ac3c95a1:-7de8 + 12 + 18 + + + + false + false + + + + false + + + + 3 + 1 + false + true + + Default + + false + + + + 0 + 19 + 0 + false + false + 1.7976931348623157E308 + -1.7976931348623157E308 + EntryID + 10.0 + 0 + false + loc://EntryID<VDouble> + + + + true + true + false + + + true + 1.0 + $(pv_name) +$(pv_value) + false + 1 + true + Spinner + 100 + -736e4684:150ac3c95a1:-7de7 + 72 + 18 + \ No newline at end of file diff --git a/tools/commander/workspace_template/Displays/Apps/CS/ReportBaselineTable.opi b/tools/commander/workspace_template/Displays/Apps/CS/ReportBaselineTable.opi index 5f0e79ad7..67539a823 100644 --- a/tools/commander/workspace_template/Displays/Apps/CS/ReportBaselineTable.opi +++ b/tools/commander/workspace_template/Displays/Apps/CS/ReportBaselineTable.opi @@ -1,195 +1,195 @@ - - true - - -736e4684:150ac3c95a1:-7e23 - true - false - - 80 - - true - - 4.0.104.201510200439 - true - Display - - false - -1 - -1 - - - - - 200 - -1 - - 6 - true - -1 - true - - - - - - false - 0 - false - false - $(pv_name) -$(pv_value) - 0 - - true - -736e4684:150ac3c95a1:-7e06 - - Report Baseline - - false - 24 - 1 - - true - true - false - - - true - - - - - Action Button - false - - - - 121 - 42 - Action Button_1 - 48 - - - - - - - ../scripts/QueryOneApp.js + + + + false + -1 + -1 + + false + + + + 1.5.3 + + + + 6 + 80 + + true + + + + + true + true + true + true + true + Display + 200 + -736e4684:150ac3c95a1:-7e23 + -1 + -1 + + + + ../scripts/QueryOneApp.js - true - - - - - Default - - - - 0 - - 2 - - true - -736e4684:150ac3c95a1:-76ae - true - false - Name - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 50 - 12 - Label_3 - 17 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - true - -736e4684:150ac3c95a1:-76ad - - - true - 29 - 1 - - true - false - false - - false - true - loc://Name - - - - Combo - false - - - - 115 - 72 - Name - 12 - - - - - - CF - CI - CS - DS - EIM - HS - FM - HK - LC - MM - SCH - TO - SBN - CFE_ES - CFE_EVS - CFE_SB - CFE_TBL - CFE_TIME - - - Default - - +var cmd = '/CFS/CS/ReportBaselineTable(Name: ' + Name + ')';]]> + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 24 + + Action Button_1 + 0 + + + + + true + true + false + + + + Report Baseline + false + $(pv_name) +$(pv_value) + true + Action Button + 121 + -736e4684:150ac3c95a1:-7e06 + 42 + 48 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_3 + + + true + true + false + + + Name + + true + 1 + true + Label + 50 + false + -736e4684:150ac3c95a1:-76ae + 12 + 17 + + + + false + false + + + + true + + + + 0 + 1 + true + + Default + + false + + + + 34 + + CF + CI + CS + DS + EIM + HS + FM + HK + LC + MM + SCH + TO + SBN + CFE_ES + CFE_EVS + CFE_SB + CFE_TBL + CFE_TIME + + false + Name + loc://Name + + + + true + false + false + + + $(pv_name) +$(pv_value) + true + Combo + 115 + -736e4684:150ac3c95a1:-76ad + 72 + 12 + \ No newline at end of file diff --git a/tools/commander/workspace_template/Displays/Apps/DS/Main.opi b/tools/commander/workspace_template/Displays/Apps/DS/Main.opi index 124a43519..557f0650a 100644 --- a/tools/commander/workspace_template/Displays/Apps/DS/Main.opi +++ b/tools/commander/workspace_template/Displays/Apps/DS/Main.opi @@ -269,7 +269,7 @@ $(pv_value) false false - + false @@ -283,7 +283,7 @@ $(pv_value) false - + 13 @@ -323,7 +323,7 @@ $(pv_value) false false - + false @@ -337,7 +337,7 @@ $(pv_value) false - + 13 @@ -1650,7 +1650,7 @@ Yamcs.issueCommand('/CFS/DS/SetAppState(State: 1)');]]> false false - + false @@ -1664,7 +1664,7 @@ Yamcs.issueCommand('/CFS/DS/SetAppState(State: 1)');]]> false - + 19 @@ -1693,18 +1693,19 @@ $(pv_value) - - scripts/NoOp.js - - false + + SetFilterFile.opi + + true + + 0 false false - + false @@ -1747,18 +1748,19 @@ $(pv_value) - - scripts/NoOp.js - - false + + SetFilterType.opi + + true + + 0 false false - + false @@ -1801,18 +1803,19 @@ $(pv_value) - - scripts/NoOp.js - - false + + SetFilterParms.opi + + true + + 0 false false - + false @@ -1855,18 +1858,19 @@ $(pv_value) - - scripts/NoOp.js - - false + + SetDestType.opi + + true + + 0 false false - + false @@ -1909,18 +1913,19 @@ $(pv_value) - - scripts/NoOp.js - - false + + SetDestState.opi + + true + + 0 false false - + false @@ -1963,18 +1968,19 @@ $(pv_value) - - scripts/NoOp.js - - false + + SetDestPath.opi + + true + + 0 false false - + false @@ -2017,18 +2023,19 @@ $(pv_value) - - scripts/NoOp.js - - false + + SetDestBase.opi + + true + + 0 false false - + false @@ -2071,18 +2078,19 @@ $(pv_value) - - scripts/NoOp.js - - false + + SetDestExt.opi + + true + + 0 false false - + false @@ -2125,18 +2133,19 @@ $(pv_value) - - scripts/NoOp.js - - false + + SetDestSize.opi + + true + + 0 false false - + false @@ -2179,18 +2188,19 @@ $(pv_value) - - scripts/NoOp.js - - false + + SetDestAge.opi + + true + + 0 false false - + false @@ -2233,18 +2243,19 @@ $(pv_value) - - scripts/NoOp.js - - false + + SetDestCount.opi + + true + + 0 false false - + false @@ -2287,18 +2298,19 @@ $(pv_value) - - scripts/NoOp.js - - false + + CloseFile.opi + + true + + 0 false false - + false @@ -2341,18 +2353,19 @@ $(pv_value) - - scripts/NoOp.js - - false + + GetFileInfo.opi + + true + + 0 false false - + false @@ -2395,18 +2408,19 @@ $(pv_value) - - scripts/NoOp.js - - false + + AddMid.opi + + true + + 0 false false - + false @@ -2449,18 +2463,19 @@ $(pv_value) - - scripts/NoOp.js - - false + + CloseAll.opi + + true + + 0 false false - + false @@ -2516,7 +2531,7 @@ Yamcs.issueCommand('/CFS/DS/SetAppState(State: 0)');]]> false false - + false @@ -2530,7 +2545,7 @@ Yamcs.issueCommand('/CFS/DS/SetAppState(State: 0)');]]> false - + 19 diff --git a/tools/commander/workspace_template/Displays/Apps/FM/Main.opi b/tools/commander/workspace_template/Displays/Apps/FM/Main.opi index 1742bdcdc..e325e0a5d 100644 --- a/tools/commander/workspace_template/Displays/Apps/FM/Main.opi +++ b/tools/commander/workspace_template/Displays/Apps/FM/Main.opi @@ -269,7 +269,7 @@ $(pv_value) false false - + false @@ -283,7 +283,7 @@ $(pv_value) false - + 18 @@ -323,7 +323,7 @@ $(pv_value) false false - + false @@ -337,7 +337,7 @@ $(pv_value) false - + 17 diff --git a/tools/commander/workspace_template/Displays/Apps/HK/Main.opi b/tools/commander/workspace_template/Displays/Apps/HK/Main.opi index 34ee9030a..409722c41 100644 --- a/tools/commander/workspace_template/Displays/Apps/HK/Main.opi +++ b/tools/commander/workspace_template/Displays/Apps/HK/Main.opi @@ -269,7 +269,7 @@ $(pv_value) false false - + false @@ -283,7 +283,7 @@ $(pv_value) false - + 18 @@ -323,7 +323,7 @@ $(pv_value) false false - + false @@ -337,7 +337,7 @@ $(pv_value) false - + 17 diff --git a/tools/commander/workspace_template/Displays/Apps/HS/Main.opi b/tools/commander/workspace_template/Displays/Apps/HS/Main.opi index a91970538..5590cab46 100644 --- a/tools/commander/workspace_template/Displays/Apps/HS/Main.opi +++ b/tools/commander/workspace_template/Displays/Apps/HS/Main.opi @@ -269,7 +269,7 @@ $(pv_value) false false - + false @@ -283,7 +283,7 @@ $(pv_value) false - + 18 @@ -323,7 +323,7 @@ $(pv_value) false false - + false @@ -337,7 +337,7 @@ $(pv_value) false - + 17 @@ -6497,7 +6497,7 @@ $(pv_value) false false - + false @@ -6511,7 +6511,7 @@ $(pv_value) false - + 18 @@ -6551,7 +6551,7 @@ $(pv_value) false false - + false @@ -6565,7 +6565,7 @@ $(pv_value) false - + 18 @@ -6605,7 +6605,7 @@ $(pv_value) false false - + false @@ -6619,7 +6619,7 @@ $(pv_value) false - + 18 @@ -6659,7 +6659,7 @@ $(pv_value) false false - + false @@ -6673,7 +6673,7 @@ $(pv_value) false - + 18 @@ -6713,7 +6713,7 @@ $(pv_value) false false - + false @@ -6727,7 +6727,7 @@ $(pv_value) false - + 18 @@ -6767,7 +6767,7 @@ $(pv_value) false false - + false @@ -6781,7 +6781,7 @@ $(pv_value) false - + 18 @@ -6821,7 +6821,7 @@ $(pv_value) false false - + false @@ -6835,7 +6835,7 @@ $(pv_value) false - + 18 @@ -6875,7 +6875,7 @@ $(pv_value) false false - + false @@ -6889,7 +6889,7 @@ $(pv_value) false - + 18 @@ -6929,7 +6929,7 @@ $(pv_value) false false - + false @@ -6943,7 +6943,7 @@ $(pv_value) false - + 18 @@ -6983,7 +6983,7 @@ $(pv_value) false false - + false @@ -6997,7 +6997,7 @@ $(pv_value) false - + 18 diff --git a/tools/commander/workspace_template/Displays/Apps/LC/Main.opi b/tools/commander/workspace_template/Displays/Apps/LC/Main.opi index b2e138dc4..3575f24b0 100644 --- a/tools/commander/workspace_template/Displays/Apps/LC/Main.opi +++ b/tools/commander/workspace_template/Displays/Apps/LC/Main.opi @@ -269,7 +269,7 @@ $(pv_value) false false - + false @@ -283,7 +283,7 @@ $(pv_value) false - + 18 @@ -323,7 +323,7 @@ $(pv_value) false false - + false @@ -337,7 +337,7 @@ $(pv_value) false - + 17 diff --git a/tools/commander/workspace_template/Displays/Apps/MD/Main.opi b/tools/commander/workspace_template/Displays/Apps/MD/Main.opi index 2ef814064..85685410b 100644 --- a/tools/commander/workspace_template/Displays/Apps/MD/Main.opi +++ b/tools/commander/workspace_template/Displays/Apps/MD/Main.opi @@ -269,7 +269,7 @@ $(pv_value) false false - + false @@ -283,7 +283,7 @@ $(pv_value) false - + 18 @@ -323,7 +323,7 @@ $(pv_value) false false - + false @@ -337,7 +337,7 @@ $(pv_value) false - + 17 diff --git a/tools/commander/workspace_template/Displays/Apps/MM/Main.opi b/tools/commander/workspace_template/Displays/Apps/MM/Main.opi index 844fd1c8d..9d64a19f0 100644 --- a/tools/commander/workspace_template/Displays/Apps/MM/Main.opi +++ b/tools/commander/workspace_template/Displays/Apps/MM/Main.opi @@ -269,7 +269,7 @@ $(pv_value) false false - + false @@ -283,7 +283,7 @@ $(pv_value) false - + 18 @@ -323,7 +323,7 @@ $(pv_value) false false - + false @@ -337,7 +337,7 @@ $(pv_value) false - + 17 diff --git a/tools/commander/workspace_template/Displays/Apps/Main.opi b/tools/commander/workspace_template/Displays/Apps/Main.opi index af64882d6..554a7d5ee 100644 --- a/tools/commander/workspace_template/Displays/Apps/Main.opi +++ b/tools/commander/workspace_template/Displays/Apps/Main.opi @@ -189,7 +189,7 @@ $(pv_value) false false - + false @@ -203,7 +203,7 @@ $(pv_value) false - + 23 @@ -243,7 +243,7 @@ $(pv_value) false false - + false @@ -257,7 +257,7 @@ $(pv_value) false - + 23 @@ -338,7 +338,7 @@ $(pv_value) false false - + false @@ -536,7 +536,7 @@ $(pv_value) false false - + false @@ -550,7 +550,7 @@ $(pv_value) false - + 23 @@ -591,7 +591,7 @@ $(pv_value) false false - + false @@ -686,7 +686,7 @@ $(pv_value) false false - + false @@ -844,7 +844,7 @@ $(pv_value) false false - + false @@ -858,7 +858,7 @@ $(pv_value) false - + 23 @@ -898,7 +898,7 @@ $(pv_value) false false - + false @@ -912,7 +912,7 @@ $(pv_value) false - + 23 @@ -993,7 +993,7 @@ $(pv_value) false false - + false @@ -1151,7 +1151,7 @@ $(pv_value) false false - + false @@ -1165,7 +1165,7 @@ $(pv_value) false - + 23 @@ -1205,7 +1205,7 @@ $(pv_value) false false - + false @@ -1219,7 +1219,7 @@ $(pv_value) false - + 23 @@ -1300,7 +1300,7 @@ $(pv_value) false false - + false @@ -1458,7 +1458,7 @@ $(pv_value) false false - + false @@ -1472,7 +1472,7 @@ $(pv_value) false - + 23 @@ -1512,7 +1512,7 @@ $(pv_value) false false - + false @@ -1526,7 +1526,7 @@ $(pv_value) false - + 23 @@ -1607,7 +1607,7 @@ $(pv_value) false false - + false @@ -1765,7 +1765,7 @@ $(pv_value) false false - + false @@ -1779,7 +1779,7 @@ $(pv_value) false - + 23 @@ -1819,7 +1819,7 @@ $(pv_value) false false - + false @@ -1833,7 +1833,7 @@ $(pv_value) false - + 23 @@ -1914,7 +1914,7 @@ $(pv_value) false false - + false @@ -2072,7 +2072,7 @@ $(pv_value) false false - + false @@ -2086,7 +2086,7 @@ $(pv_value) false - + 23 @@ -2126,7 +2126,7 @@ $(pv_value) false false - + false @@ -2140,7 +2140,7 @@ $(pv_value) false - + 23 @@ -2221,7 +2221,7 @@ $(pv_value) false false - + false @@ -2379,7 +2379,7 @@ $(pv_value) false false - + false @@ -2393,7 +2393,7 @@ $(pv_value) false - + 23 @@ -2433,7 +2433,7 @@ $(pv_value) false false - + false @@ -2447,7 +2447,7 @@ $(pv_value) false - + 23 @@ -2528,7 +2528,7 @@ $(pv_value) false false - + false @@ -2686,7 +2686,7 @@ $(pv_value) false false - + false @@ -2700,7 +2700,7 @@ $(pv_value) false - + 23 @@ -2740,7 +2740,7 @@ $(pv_value) false false - + false @@ -2754,7 +2754,7 @@ $(pv_value) false - + 23 @@ -2835,7 +2835,7 @@ $(pv_value) false false - + false @@ -2993,7 +2993,7 @@ $(pv_value) false false - + false @@ -3007,7 +3007,7 @@ $(pv_value) false - + 23 @@ -3047,7 +3047,7 @@ $(pv_value) false false - + false @@ -3061,7 +3061,7 @@ $(pv_value) false - + 23 @@ -3142,7 +3142,7 @@ $(pv_value) false false - + false @@ -3300,7 +3300,7 @@ $(pv_value) false false - + false @@ -3314,7 +3314,7 @@ $(pv_value) false - + 23 @@ -3354,7 +3354,7 @@ $(pv_value) false false - + false @@ -3368,7 +3368,7 @@ $(pv_value) false - + 23 @@ -3449,7 +3449,7 @@ $(pv_value) false false - + false @@ -3607,7 +3607,7 @@ $(pv_value) false false - + false @@ -3621,7 +3621,7 @@ $(pv_value) false - + 23 @@ -3661,7 +3661,7 @@ $(pv_value) false false - + false @@ -3675,7 +3675,7 @@ $(pv_value) false - + 23 @@ -3756,7 +3756,7 @@ $(pv_value) false false - + false @@ -3914,7 +3914,7 @@ $(pv_value) false false - + false @@ -3928,7 +3928,7 @@ $(pv_value) false - + 23 @@ -3968,7 +3968,7 @@ $(pv_value) false false - + false @@ -3982,7 +3982,7 @@ $(pv_value) false - + 23 @@ -4063,7 +4063,7 @@ $(pv_value) false false - + false diff --git a/tools/commander/workspace_template/Displays/Apps/SC/Main.opi b/tools/commander/workspace_template/Displays/Apps/SC/Main.opi index 50ce068af..b06ac17ad 100644 --- a/tools/commander/workspace_template/Displays/Apps/SC/Main.opi +++ b/tools/commander/workspace_template/Displays/Apps/SC/Main.opi @@ -269,7 +269,7 @@ $(pv_value) false false - + false @@ -283,7 +283,7 @@ $(pv_value) false - + 18 @@ -323,7 +323,7 @@ $(pv_value) false false - + false @@ -337,7 +337,7 @@ $(pv_value) false - + 17 diff --git a/tools/commander/workspace_template/Displays/Apps/SCH/Main.opi b/tools/commander/workspace_template/Displays/Apps/SCH/Main.opi index fb6febd83..679fa56f4 100644 --- a/tools/commander/workspace_template/Displays/Apps/SCH/Main.opi +++ b/tools/commander/workspace_template/Displays/Apps/SCH/Main.opi @@ -269,7 +269,7 @@ $(pv_value) false false - + false @@ -283,7 +283,7 @@ $(pv_value) false - + 18 @@ -323,7 +323,7 @@ $(pv_value) false false - + false @@ -337,7 +337,7 @@ $(pv_value) false - + 17 diff --git a/tools/commander/workspace_template/Displays/Apps/TO/Main.opi b/tools/commander/workspace_template/Displays/Apps/TO/Main.opi index c47261183..58994c766 100644 --- a/tools/commander/workspace_template/Displays/Apps/TO/Main.opi +++ b/tools/commander/workspace_template/Displays/Apps/TO/Main.opi @@ -1,2657 +1,2657 @@ - - true - - -33cb7c72:150aa4c347f:-76c2 - true - false - - 410 - - true - - 4.0.104.201510200439 - true - Display - - false - -1 - -1 - - - - - 300 - -1 - - 6 - true - -1 - true - - - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - -33cb7c72:150aa4c347f:-75ff - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /CFS/SC/CmdCtr - 1 - - - - false - Text Update - false - false - 1 - - - - 100 - 95 - Text Update - 57 - - - - - - Default - - - - 0 - - 2 - - true - -33cb7c72:150aa4c347f:-75fe - true - false - Commands - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 72 - 12 - Label - 57 - - - - - - Default - - - - 0 - - 2 - - true - -33cb7c72:150aa4c347f:-75fd - true - false - Errors - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 60 - 24 - Label_1 - 76 - - - - - - Default - - - - 0 - - 1 - - true - -33cb7c72:150aa4c347f:-75fc - true - false - Commanding - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 164 - 66 - Label_46 - 30 - - - - - - Default Bold - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - -33cb7c72:150aa4c347f:-75fb - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /CFS/SC/CmdErrCtr - 1 - - - - false - Text Update - false - false - 1 - - - - 100 - 95 - Text Update_1 - 76 - - - - - - Default - - - - false - 0 - false - false - $(pv_name) -$(pv_value) - 0 - - true - -33cb7c72:150aa4c347f:-75fa - - NoOp - - false - 18 - 1 - - true - true - false - - - true - - - - - Action Button - false - - - - 67 - 210 - NoOp - 58 - - - - - - - scripts/NoOp.js + + + + false + -1 + -1 + + false + + + + 1.5.3 + + + + 6 + 410 + + true + + + + + true + true + true + true + true + Display + 300 + -33cb7c72:150aa4c347f:-76c2 + -1 + -1 + + + false + false + false + + + + true + + + + 0 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update + 0 + false + /CFS/SC/CmdCtr + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + -33cb7c72:150aa4c347f:-75ff + 95 + 57 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label + + + true + true + false + + + Commands + + true + 1 + true + Label + 72 + false + -33cb7c72:150aa4c347f:-75fe + 12 + 57 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_1 + + + true + true + false + + + Errors + + true + 1 + true + Label + 60 + false + -33cb7c72:150aa4c347f:-75fd + 24 + 76 + + + + false + + + + + + + 0 + 1 + true + + Default Bold + + + + + 20 + 1 + Label_46 + + + true + true + false + + + Commanding + + true + 1 + true + Label + 164 + false + -33cb7c72:150aa4c347f:-75fc + 66 + 30 + + + + false + false + false + + + + true + + + + 0 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_1 + 0 + false + /CFS/SC/CmdErrCtr + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + -33cb7c72:150aa4c347f:-75fb + 95 + 76 + + + + + scripts/NoOp.js - false - - - - - Default - - - - false - 0 - false - false - $(pv_name) -$(pv_value) - 0 - - true - -33cb7c72:150aa4c347f:-75f9 - - Reset - - false - 17 - 1 - - true - true - false - - - true - - - - - Action Button - false - - - - 67 - 210 - NoOp_1 - 79 - - - - - - - scripts/ResetCounters.js +]]> + false + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 18 + + NoOp + 0 + + + + + true + true + false + + + + NoOp + false + $(pv_name) +$(pv_value) + true + Action Button + 67 + -33cb7c72:150aa4c347f:-75fa + 210 + 58 + + + + + scripts/ResetCounters.js - false - - - - - Default - - - - 0 - - 1 - - true - -33cb7c72:150aa4c347f:-75c9 - true - false - Stored Command - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 272 - 12 - Label_49 - 6 - - - - - - Default Bold - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 7b256c5c:150b979c7e3:-766f - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /CFS/SC/AtsNumber - 1 - - - - false - Text Update - false - false - 1 - - - - 100 - 162 - Text Update_2 - 113 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 7b256c5c:150b979c7e3:-766e - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /CFS/SC/AtsState - 1 - - - - false - Text Update - false - false - 1 - - - - 100 - 162 - Text Update_3 - 132 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - 7b256c5c:150b979c7e3:-766d - - - - - false - - true - 20 - 1 - - true - true - false - - true - /CFS/SC/ContinueAtsOnFailureFlag - - - - - Check Box - false - - - - 100 - 162 - Text Update_4 - 151 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - 7b256c5c:150b979c7e3:-766c - - - - - false - - true - 20 - 1 - - true - true - false - - true - /CFS/SC/SwitchPendFlag - - - - - Check Box - false - - - - 100 - 162 - Text Update_5 - 170 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 7b256c5c:150b979c7e3:-766b - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /CFS/SC/NumRtsActive - 1 - - - - false - Text Update - false - false - 1 - - - - 100 - 162 - Text Update_6 - 189 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 7b256c5c:150b979c7e3:-766a - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /CFS/SC/RtsNumber - 1 - - - - false - Text Update - false - false - 1 - - - - 100 - 162 - Text Update_7 - 208 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 7b256c5c:150b979c7e3:-7669 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /CFS/SC/RtsActiveCtr - 1 - - - - false - Text Update - false - false - 1 - - - - 100 - 162 - Text Update_8 - 227 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 7b256c5c:150b979c7e3:-7668 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /CFS/SC/RtsActiveErrCtr - 1 - - - - false - Text Update - false - false - 1 - - - - 100 - 162 - Text Update_9 - 246 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 7b256c5c:150b979c7e3:-7667 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /CFS/SC/AtsCmdCtr - 1 - - - - false - Text Update - false - false - 1 - - - - 100 - 162 - Text Update_10 - 265 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 7b256c5c:150b979c7e3:-7666 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /CFS/SC/AtsCmdErrCtr - 1 - - - - false - Text Update - false - false - 1 - - - - 100 - 162 - Text Update_11 - 284 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 7b256c5c:150b979c7e3:-7665 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /CFS/SC/RtsCmdCtr - 1 - - - - false - Text Update - false - false - 1 - - - - 100 - 162 - Text Update_12 - 303 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 7b256c5c:150b979c7e3:-7664 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /CFS/SC/RtsCmdErrCtr - 1 - - - - false - Text Update - false - false - 1 - - - - 100 - 162 - Text Update_13 - 322 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 7b256c5c:150b979c7e3:-7663 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /CFS/SC/LastAtsErrSeq - 1 - - - - false - Text Update - false - false - 1 - - - - 100 - 162 - Text Update_14 - 341 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 7b256c5c:150b979c7e3:-7662 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /CFS/SC/LastAtsErrCmd - 1 - - - - false - Text Update - false - false - 1 - - - - 100 - 162 - Text Update_15 - 360 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 7b256c5c:150b979c7e3:-7661 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /CFS/SC/LastRtsErrSeq - 1 - - - - false - Text Update - false - false - 1 - - - - 100 - 162 - Text Update_16 - 379 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 7b256c5c:150b979c7e3:-7660 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /CFS/SC/LastErrCmd - 1 - - - - false - Text Update - false - false - 1 - - - - 100 - 162 - Text Update_17 - 398 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 7b256c5c:150b979c7e3:-765f - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /CFS/SC/AppendCmdArg - 1 - - - - false - Text Update - false - false - 1 - - - - 100 - 162 - Text Update_18 - 417 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 7b256c5c:150b979c7e3:-765e - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /CFS/SC/AppendEntryCount - 1 - - - - false - Text Update - false - false - 1 - - - - 100 - 162 - Text Update_19 - 436 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 7b256c5c:150b979c7e3:-765d - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /CFS/SC/AppendByteCount - 1 - - - - false - Text Update - false - false - 1 - - - - 100 - 162 - Text Update_20 - 455 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 7b256c5c:150b979c7e3:-765c - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /CFS/SC/AppendLoadCount - 1 - - - - false - Text Update - false - false - 1 - - - - 100 - 162 - Text Update_21 - 474 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 7b256c5c:150b979c7e3:-765b - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /CFS/SC/AtpCmdNumber - 1 - - - - false - Text Update - false - false - 1 - - - - 100 - 162 - Text Update_22 - 493 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 7b256c5c:150b979c7e3:-765a - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /CFS/SC/AtpFreeBytes_0 - 1 - - - - false - Text Update - false - false - 1 - - - - 100 - 162 - Text Update_23 - 512 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 7b256c5c:150b979c7e3:-7659 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /CFS/SC/AtpFreeBytes_1 - 1 - - - - false - Text Update - false - false - 1 - - - - 100 - 261 - Text Update_24 - 512 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 7b256c5c:150b979c7e3:-7658 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /CFS/SC/NextRtsTime - 1 - - - - false - Text Update - false - false - 1 - - - - 100 - 162 - Text Update_25 - 531 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 7b256c5c:150b979c7e3:-7657 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /CFS/SC/NextAtsTime - 1 - - - - false - Text Update - false - false - 1 - - - - 100 - 162 - Text Update_26 - 550 - - - - - - Default - - - - 0 - - 2 - - true - 7b256c5c:150b979c7e3:-764f - true - false - ATS Number - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 102 - 48 - Label_50 - 113 - - - - - - Default - - - - 0 - - 2 - - true - 7b256c5c:150b979c7e3:-764a - true - false - ATS State - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 102 - 48 - Label_51 - 132 - - - - - - Default - - - - 0 - - 2 - - true - 7b256c5c:150b979c7e3:-7645 - true - false - Continue ATS on Failure - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 141 - 9 - Label_52 - 151 - - - - - - Default - - - - 0 - - 2 - - true - 7b256c5c:150b979c7e3:-7640 - true - false - Switch Pend - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 102 - 48 - Label_53 - 170 - - - - - - Default - - - - 0 - - 2 - - true - 7b256c5c:150b979c7e3:-763b - true - false - Num RTS Active - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 102 - 48 - Label_54 - 189 - - - - - - Default - - - - 0 - - 2 - - true - 7b256c5c:150b979c7e3:-7636 - true - false - RTS Active Ctr - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 102 - 48 - Label_55 - 227 - - - - - - Default - - - - 0 - - 2 - - true - 7b256c5c:150b979c7e3:-7631 - true - false - RTS Number - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 102 - 48 - Label_56 - 208 - - - - - - Default - - - - 0 - - 2 - - true - 7b256c5c:150b979c7e3:-762c - true - false - RTS Active Err Ctr - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 117 - 33 - Label_57 - 246 - - - - - - Default - - - - 0 - - 2 - - true - 7b256c5c:150b979c7e3:-7627 - true - false - ATS Cmd Err Ctr - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 102 - 48 - Label_58 - 284 - - - - - - Default - - - - 0 - - 2 - - true - 7b256c5c:150b979c7e3:-7622 - true - false - ATS Cmd Ctr - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 102 - 48 - Label_59 - 265 - - - - - - Default - - - - 0 - - 2 - - true - 7b256c5c:150b979c7e3:-761d - true - false - RTS Cmd Ctr - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 102 - 48 - Label_60 - 303 - - - - - - Default - - - - 0 - - 2 - - true - 7b256c5c:150b979c7e3:-75d7 - true - false - Next ATS Time - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 102 - 48 - Label_74 - 550 - - - - - - Default - - - - 0 - - 2 - - true - 7b256c5c:150b979c7e3:-75d2 - true - false - Next RTS Time - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 102 - 48 - Label_75 - 531 - - - - - - Default - - - - 0 - - 2 - - true - 7b256c5c:150b979c7e3:-75c8 - true - false - ATP Free Bytes - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 102 - 48 - Label_77 - 512 - - - - - - Default - - - - 0 - - 2 - - true - 7b256c5c:150b979c7e3:-75c3 - true - false - ATP Cmd Number - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 129 - 21 - Label_78 - 493 - - - - - - Default - - - - 0 - - 2 - - true - 7b256c5c:150b979c7e3:-75be - true - false - Append Load Count - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 129 - 21 - Label_79 - 474 - - - - - - Default - - - - 0 - - 2 - - true - 7b256c5c:150b979c7e3:-75b9 - true - false - Append Byte Count - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 129 - 21 - Label_80 - 455 - - - - - - Default - - - - 0 - - 2 - - true - 7b256c5c:150b979c7e3:-75b4 - true - false - Append Entry Count - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 129 - 21 - Label_81 - 436 - - - - - - Default - - - - 0 - - 2 - - true - 7b256c5c:150b979c7e3:-75af - true - false - Last ATS Err Cmd - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 129 - 21 - Label_82 - 360 - - - - - - Default - - - - 0 - - 2 - - true - 7b256c5c:150b979c7e3:-75aa - true - false - Last ATS Err Seq - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 102 - 48 - Label_83 - 341 - - - - - - Default - - - - 0 - - 2 - - true - 7b256c5c:150b979c7e3:-75a5 - true - false - Last RTS Err Seq - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 102 - 48 - Label_84 - 379 - - - - - - Default - - - - 0 - - 2 - - true - 7b256c5c:150b979c7e3:-75a0 - true - false - RTS Cmd Err Ctr - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 102 - 48 - Label_85 - 322 - - - - - - Default - - - - 0 - - 2 - - true - 7b256c5c:150b979c7e3:-759b - true - false - Append Cmd Arg - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 123 - 27 - Label_86 - 417 - - - - - - Default - - - - 0 - - 2 - - true - 7b256c5c:150b979c7e3:-7596 - true - false - Last Err Cmd - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 102 - 48 - Label_87 - 398 - - - - - - Default - - +]]> + false + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 17 + + NoOp_1 + 0 + + + + + true + true + false + + + + Reset + false + $(pv_name) +$(pv_value) + true + Action Button + 67 + -33cb7c72:150aa4c347f:-75f9 + 210 + 79 + + + + false + + + + + + + 0 + 1 + true + + Default Bold + + + + + 20 + 1 + Label_49 + + + true + true + false + + + Stored Command + + true + 1 + true + Label + 272 + false + -33cb7c72:150aa4c347f:-75c9 + 12 + 6 + + + + false + false + false + + + + true + + + + 0 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_2 + 0 + false + /CFS/SC/AtsNumber + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + 7b256c5c:150b979c7e3:-766f + 162 + 113 + + + + false + false + false + + + + true + + + + 0 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_3 + 0 + false + /CFS/SC/AtsState + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + 7b256c5c:150b979c7e3:-766e + 162 + 132 + + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + Text Update_4 + /CFS/SC/ContinueAtsOnFailureFlag + + + + true + true + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 100 + 7b256c5c:150b979c7e3:-766d + 162 + 151 + + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + Text Update_5 + /CFS/SC/SwitchPendFlag + + + + true + true + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 100 + 7b256c5c:150b979c7e3:-766c + 162 + 170 + + + + false + false + false + + + + true + + + + 0 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_6 + 0 + false + /CFS/SC/NumRtsActive + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + 7b256c5c:150b979c7e3:-766b + 162 + 189 + + + + false + false + false + + + + true + + + + 0 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_7 + 0 + false + /CFS/SC/RtsNumber + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + 7b256c5c:150b979c7e3:-766a + 162 + 208 + + + + false + false + false + + + + true + + + + 0 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_8 + 0 + false + /CFS/SC/RtsActiveCtr + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + 7b256c5c:150b979c7e3:-7669 + 162 + 227 + + + + false + false + false + + + + true + + + + 0 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_9 + 0 + false + /CFS/SC/RtsActiveErrCtr + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + 7b256c5c:150b979c7e3:-7668 + 162 + 246 + + + + false + false + false + + + + true + + + + 0 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_10 + 0 + false + /CFS/SC/AtsCmdCtr + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + 7b256c5c:150b979c7e3:-7667 + 162 + 265 + + + + false + false + false + + + + true + + + + 0 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_11 + 0 + false + /CFS/SC/AtsCmdErrCtr + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + 7b256c5c:150b979c7e3:-7666 + 162 + 284 + + + + false + false + false + + + + true + + + + 0 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_12 + 0 + false + /CFS/SC/RtsCmdCtr + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + 7b256c5c:150b979c7e3:-7665 + 162 + 303 + + + + false + false + false + + + + true + + + + 0 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_13 + 0 + false + /CFS/SC/RtsCmdErrCtr + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + 7b256c5c:150b979c7e3:-7664 + 162 + 322 + + + + false + false + false + + + + true + + + + 0 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_14 + 0 + false + /CFS/SC/LastAtsErrSeq + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + 7b256c5c:150b979c7e3:-7663 + 162 + 341 + + + + false + false + false + + + + true + + + + 0 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_15 + 0 + false + /CFS/SC/LastAtsErrCmd + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + 7b256c5c:150b979c7e3:-7662 + 162 + 360 + + + + false + false + false + + + + true + + + + 0 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_16 + 0 + false + /CFS/SC/LastRtsErrSeq + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + 7b256c5c:150b979c7e3:-7661 + 162 + 379 + + + + false + false + false + + + + true + + + + 0 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_17 + 0 + false + /CFS/SC/LastErrCmd + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + 7b256c5c:150b979c7e3:-7660 + 162 + 398 + + + + false + false + false + + + + true + + + + 0 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_18 + 0 + false + /CFS/SC/AppendCmdArg + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + 7b256c5c:150b979c7e3:-765f + 162 + 417 + + + + false + false + false + + + + true + + + + 0 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_19 + 0 + false + /CFS/SC/AppendEntryCount + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + 7b256c5c:150b979c7e3:-765e + 162 + 436 + + + + false + false + false + + + + true + + + + 0 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_20 + 0 + false + /CFS/SC/AppendByteCount + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + 7b256c5c:150b979c7e3:-765d + 162 + 455 + + + + false + false + false + + + + true + + + + 0 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_21 + 0 + false + /CFS/SC/AppendLoadCount + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + 7b256c5c:150b979c7e3:-765c + 162 + 474 + + + + false + false + false + + + + true + + + + 0 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_22 + 0 + false + /CFS/SC/AtpCmdNumber + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + 7b256c5c:150b979c7e3:-765b + 162 + 493 + + + + false + false + false + + + + true + + + + 0 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_23 + 0 + false + /CFS/SC/AtpFreeBytes_0 + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + 7b256c5c:150b979c7e3:-765a + 162 + 512 + + + + false + false + false + + + + true + + + + 0 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_24 + 0 + false + /CFS/SC/AtpFreeBytes_1 + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + 7b256c5c:150b979c7e3:-7659 + 261 + 512 + + + + false + false + false + + + + true + + + + 0 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_25 + 0 + false + /CFS/SC/NextRtsTime + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + 7b256c5c:150b979c7e3:-7658 + 162 + 531 + + + + false + false + false + + + + true + + + + 0 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_26 + 0 + false + /CFS/SC/NextAtsTime + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + 7b256c5c:150b979c7e3:-7657 + 162 + 550 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_50 + + + true + true + false + + + ATS Number + + true + 1 + true + Label + 102 + false + 7b256c5c:150b979c7e3:-764f + 48 + 113 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_51 + + + true + true + false + + + ATS State + + true + 1 + true + Label + 102 + false + 7b256c5c:150b979c7e3:-764a + 48 + 132 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_52 + + + true + true + false + + + Continue ATS on Failure + + true + 1 + true + Label + 141 + false + 7b256c5c:150b979c7e3:-7645 + 9 + 151 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_53 + + + true + true + false + + + Switch Pend + + true + 1 + true + Label + 102 + false + 7b256c5c:150b979c7e3:-7640 + 48 + 170 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_54 + + + true + true + false + + + Num RTS Active + + true + 1 + true + Label + 102 + false + 7b256c5c:150b979c7e3:-763b + 48 + 189 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_55 + + + true + true + false + + + RTS Active Ctr + + true + 1 + true + Label + 102 + false + 7b256c5c:150b979c7e3:-7636 + 48 + 227 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_56 + + + true + true + false + + + RTS Number + + true + 1 + true + Label + 102 + false + 7b256c5c:150b979c7e3:-7631 + 48 + 208 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_57 + + + true + true + false + + + RTS Active Err Ctr + + true + 1 + true + Label + 117 + false + 7b256c5c:150b979c7e3:-762c + 33 + 246 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_58 + + + true + true + false + + + ATS Cmd Err Ctr + + true + 1 + true + Label + 102 + false + 7b256c5c:150b979c7e3:-7627 + 48 + 284 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_59 + + + true + true + false + + + ATS Cmd Ctr + + true + 1 + true + Label + 102 + false + 7b256c5c:150b979c7e3:-7622 + 48 + 265 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_60 + + + true + true + false + + + RTS Cmd Ctr + + true + 1 + true + Label + 102 + false + 7b256c5c:150b979c7e3:-761d + 48 + 303 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_74 + + + true + true + false + + + Next ATS Time + + true + 1 + true + Label + 102 + false + 7b256c5c:150b979c7e3:-75d7 + 48 + 550 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_75 + + + true + true + false + + + Next RTS Time + + true + 1 + true + Label + 102 + false + 7b256c5c:150b979c7e3:-75d2 + 48 + 531 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_77 + + + true + true + false + + + ATP Free Bytes + + true + 1 + true + Label + 102 + false + 7b256c5c:150b979c7e3:-75c8 + 48 + 512 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_78 + + + true + true + false + + + ATP Cmd Number + + true + 1 + true + Label + 129 + false + 7b256c5c:150b979c7e3:-75c3 + 21 + 493 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_79 + + + true + true + false + + + Append Load Count + + true + 1 + true + Label + 129 + false + 7b256c5c:150b979c7e3:-75be + 21 + 474 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_80 + + + true + true + false + + + Append Byte Count + + true + 1 + true + Label + 129 + false + 7b256c5c:150b979c7e3:-75b9 + 21 + 455 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_81 + + + true + true + false + + + Append Entry Count + + true + 1 + true + Label + 129 + false + 7b256c5c:150b979c7e3:-75b4 + 21 + 436 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_82 + + + true + true + false + + + Last ATS Err Cmd + + true + 1 + true + Label + 129 + false + 7b256c5c:150b979c7e3:-75af + 21 + 360 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_83 + + + true + true + false + + + Last ATS Err Seq + + true + 1 + true + Label + 102 + false + 7b256c5c:150b979c7e3:-75aa + 48 + 341 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_84 + + + true + true + false + + + Last RTS Err Seq + + true + 1 + true + Label + 102 + false + 7b256c5c:150b979c7e3:-75a5 + 48 + 379 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_85 + + + true + true + false + + + RTS Cmd Err Ctr + + true + 1 + true + Label + 102 + false + 7b256c5c:150b979c7e3:-75a0 + 48 + 322 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_86 + + + true + true + false + + + Append Cmd Arg + + true + 1 + true + Label + 123 + false + 7b256c5c:150b979c7e3:-759b + 27 + 417 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_87 + + + true + true + false + + + Last Err Cmd + + true + 1 + true + Label + 102 + false + 7b256c5c:150b979c7e3:-7596 + 48 + 398 + \ No newline at end of file diff --git a/tools/commander/workspace_template/Displays/CFE/Config.opi b/tools/commander/workspace_template/Displays/CFE/Config.opi deleted file mode 100644 index 436f91143..000000000 --- a/tools/commander/workspace_template/Displays/CFE/Config.opi +++ /dev/null @@ -1,522 +0,0 @@ - - - true - - 3e72613d:151514dc231:-7f68 - true - false - - - EmbeddedScript - - loc://CFE_MISSION_REV - /CONFIG/CFE_MISSION_REV - - - 600 - - true - - 4.0.104.201511041855 - true - Display - - false - -1 - -1 - - - - - 800 - -1 - - 6 - true - -1 - true - - - - - - 0 - - 0 - - true - 3e72613d:151514dc231:-7ecc - true - false - CFE Mission Rev - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 128 - 12 - Label - 36 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 3e72613d:151514dc231:-7e90 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /CONFIG/CFE_MISSION_REV - 1 - - - - true - Text Update - false - false - 0 - - - - 100 - 139 - Text Update - 36 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 3e72613d:151514dc231:-7dc8 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /CONFIG/CFE_MISSION_REV_B - 1 - - - - true - Text Update - false - false - 0 - - - - 100 - 354 - Text Update_1 - 36 - - - - - - Default - - - - false - 0 - $(pv_name) -$(pv_value) - 0 - - - false - - 0.0 - true - 25 - false - 1 - true - /CONFIG/CFE_MISSION_REV_B - 0 - - - - true - Text Input - - Text Input_1 - - - 3 - false - true - 3e72613d:151514dc231:-7d8b - false - - false - - true - true - false - - false - 0 - false - - - - 100 - 462 - 33 - Infinity - - - - -Infinity - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 3e72613d:151514dc231:-7d4b - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - loc://CFE_MISSION_REV - 1 - - - - true - Text Update - false - false - 0 - - - - 100 - 139 - Text Update_2 - 72 - - - - - - Default - - - - false - 0 - $(pv_name) -$(pv_value) - 0 - - - false - - 0.0 - true - 25 - false - 1 - true - loc://CFE_MISSION_REV - 0 - - - - true - Text Input - - Text Input_2 - - - 3 - false - true - 3e72613d:151514dc231:-7d33 - false - - false - - true - true - false - - false - 0 - false - - - - 100 - 246 - 69 - Infinity - - - - -Infinity - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 3e72613d:151514dc231:-7cc9 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - loc://CFE_MISSION_REV - 1 - - - - true - Text Update - false - false - 0 - - - - 100 - 139 - Text Update_3 - 96 - - - - - - Default - - - - false - 0 - $(pv_name) -$(pv_value) - 0 - - - false - - 0.0 - true - 25 - false - 1 - true - loc://CFE_MISSION_REV - 0 - - - - true - Text Input - - Text Input_3 - - - 3 - false - true - 3e72613d:151514dc231:-7cc1 - false - - false - - true - true - false - - false - 0 - false - - - - 100 - 246 - 93 - 1.7976931348623157E308 - - - - -1.7976931348623157E308 - - Default - - - - false - 0 - $(pv_name) -$(pv_value) - 0 - - - false - - 0.0 - false - 25 - false - 1 - true - /CONFIG/CFE_MISSION_REV - 0 - - - - false - Text Input - - Text Input - - - 3 - false - true - 3e72613d:151514dc231:-7e14 - false - - false - - true - true - false - - false - 0 - false - - - - 100 - 246 - 33 - Infinity - - - - -Infinity - - Default - - - \ No newline at end of file diff --git a/tools/commander/workspace_template/Displays/CFE/ES/displays/ApplicationControl.opi b/tools/commander/workspace_template/Displays/CFE/ES/displays/ApplicationControl.opi deleted file mode 100644 index 541407b75..000000000 --- a/tools/commander/workspace_template/Displays/CFE/ES/displays/ApplicationControl.opi +++ /dev/null @@ -1,2186 +0,0 @@ - - - true - - 72a2bf2b:1508717c835:-7d33 - true - false - - 600 - - true - - 4.0.104.201510200439 - true - Display - - false - -1 - -1 - - - - - 800 - -1 - - 6 - true - -1 - true - - - - - - false - 0 - false - false - $(pv_name) -$(pv_value) - 0 - - true - 72a2bf2b:1508717c835:-7cf7 - - Query - - false - 28 - 1 - - true - true - false - - - true - - - - - Action Button - false - - - - 81 - 348 - Action Button - 19 - - - - - - - QueryApp.opi - - true - - 8 - - - - - Default - - - - 0 - - 2 - - true - 72a2bf2b:1508717c835:-7c77 - true - false - ID - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 80 - 66 - Label_1 - 19 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 72a2bf2b:1508717c835:-7c76 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_es/CFE_ES_OneAppTlm_t_param.AppInfo.AppID - 1 - - - - false - Text Update - false - false - 0 - - - - 100 - 162 - Text Update_1 - 19 - - - - - - Default - - - - 0 - - 2 - - true - 72a2bf2b:1508717c835:-7c6f - true - false - Type - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 80 - 66 - Label_2 - 43 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 72a2bf2b:1508717c835:-7c6e - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_es/AppInfo_Type - 1 - - - - false - Text Update - false - false - 0 - - - - 169 - 162 - Text Update_2 - 43 - - - - - - Default - - - - 0 - - 2 - - true - 72a2bf2b:1508717c835:-7c63 - true - false - Name - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 80 - 66 - Label_3 - 67 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 72a2bf2b:1508717c835:-7c62 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_es/AppInfo_Name - 1 - - - - false - Text Update - false - false - 0 - - - - 100 - 162 - txtAppName - 67 - - - - - - Default - - - - 0 - - 2 - - true - 72a2bf2b:1508717c835:-7c5b - true - false - Entry Point - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 80 - 66 - Label_4 - 91 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 72a2bf2b:1508717c835:-7c5a - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_es/AppInfo_EntryPoint - 1 - - - - false - Text Update - false - false - 0 - - - - 169 - 162 - Text Update_4 - 91 - - - - - - Default - - - - 0 - - 2 - - true - 72a2bf2b:1508717c835:-7c53 - true - false - File Name - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 80 - 66 - Label_5 - 115 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 72a2bf2b:1508717c835:-7c52 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_es/AppInfo_FileName - 1 - - - - false - Text Update - false - false - 1 - - - - 169 - 162 - Text Update_5 - 115 - - - - - - Default - - - - 0 - - 2 - - true - 72a2bf2b:1508717c835:-7c1d - true - false - Stack Size - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 80 - 66 - Label_6 - 139 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 72a2bf2b:1508717c835:-7c1c - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_es/AppInfo_StackSize - 1 - - - - false - Text Update - false - false - 1 - - - - 100 - 162 - Text Update_6 - 139 - - - - - - Default - - - - 0 - - 2 - - true - 72a2bf2b:1508717c835:-7c15 - true - false - Module ID - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 92 - 54 - Label_7 - 163 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 72a2bf2b:1508717c835:-7c14 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_es/AppInfo_ModuleID - 1 - - - - false - Text Update - false - false - 1 - - - - 100 - 162 - Text Update_7 - 163 - - - - - - Default - - - - 0 - - 2 - - true - 72a2bf2b:1508717c835:-7c0d - true - false - Valid Addresses - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 120 - 26 - Label_8 - 187 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 72a2bf2b:1508717c835:-7c0c - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_es/AppInfo_AddressesAreValid - 1 - - - - false - Text Update - false - false - 1 - - - - 100 - 162 - Text Update_8 - 187 - - - - - - Default - - - - 0 - - 2 - - true - 72a2bf2b:1508717c835:-7c05 - true - false - Code Address - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 104 - 42 - Label_9 - 211 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 72a2bf2b:1508717c835:-7c04 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_es/AppInfo_CodeAddress - 1 - - - - false - Text Update - false - false - 3 - - - - 100 - 162 - Text Update_9 - 211 - - - - - - Default - - - - 0 - - 2 - - true - 72a2bf2b:1508717c835:-7bea - true - false - Code Size - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 104 - 42 - Label_10 - 235 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 72a2bf2b:1508717c835:-7be9 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_es/AppInfo_CodeSize - 1 - - - - false - Text Update - false - false - 1 - - - - 100 - 162 - Text Update_10 - 235 - - - - - - Default - - - - 0 - - 2 - - true - 72a2bf2b:1508717c835:-7bda - true - false - Data Address - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 104 - 42 - Label_11 - 259 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 72a2bf2b:1508717c835:-7bd9 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_es/AppInfo_DataAddress - 1 - - - - false - Text Update - false - false - 3 - - - - 100 - 162 - Text Update_11 - 259 - - - - - - Default - - - - 0 - - 2 - - true - 72a2bf2b:1508717c835:-7bd2 - true - false - Data Size - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 104 - 42 - Label_12 - 283 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 72a2bf2b:1508717c835:-7bd1 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_es/AppInfo_DataSize - 1 - - - - false - Text Update - false - false - 1 - - - - 100 - 162 - Text Update_12 - 283 - - - - - - Default - - - - 0 - - 2 - - true - 72a2bf2b:1508717c835:-7bca - true - false - BSS Address - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 104 - 42 - Label_13 - 307 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 72a2bf2b:1508717c835:-7bc9 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_es/AppInfo_BSSAddress - 1 - - - - false - Text Update - false - false - 3 - - - - 100 - 162 - Text Update_13 - 307 - - - - - - Default - - - - 0 - - 2 - - true - 72a2bf2b:1508717c835:-7bc2 - true - false - BSS Size - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 104 - 42 - Label_14 - 331 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 72a2bf2b:1508717c835:-7bc1 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_es/AppInfo_BSSSize - 1 - - - - false - Text Update - false - false - 1 - - - - 100 - 162 - Text Update_14 - 331 - - - - - - Default - - - - 0 - - 2 - - true - 72a2bf2b:1508717c835:-7bba - true - false - Start Address - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 104 - 42 - Label_15 - 355 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 72a2bf2b:1508717c835:-7bb9 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_es/AppInfo_StartAddress - 1 - - - - false - Text Update - false - false - 3 - - - - 100 - 162 - Text Update_15 - 355 - - - - - - Default - - - - 0 - - 2 - - true - 72a2bf2b:1508717c835:-7b8a - true - false - Exception Action - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 104 - 42 - Label_16 - 379 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 72a2bf2b:1508717c835:-7b89 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_es/AppInfo_ExceptionAction - 1 - - - - false - Text Update - false - false - 0 - - - - 100 - 162 - Text Update_16 - 379 - - - - - - Default - - - - 0 - - 2 - - true - 72a2bf2b:1508717c835:-7b82 - true - false - Priority - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 104 - 42 - Label_17 - 403 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 72a2bf2b:1508717c835:-7b81 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_es/AppInfo_Priority - 1 - - - - false - Text Update - false - false - 1 - - - - 100 - 162 - Text Update_17 - 403 - - - - - - Default - - - - 0 - - 2 - - true - 72a2bf2b:1508717c835:-7b7a - true - false - Main Task ID - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 104 - 42 - Label_18 - 427 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 72a2bf2b:1508717c835:-7b79 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_es/AppInfo_MainTaskId - 1 - - - - false - Text Update - false - false - 1 - - - - 100 - 162 - Text Update_18 - 427 - - - - - - Default - - - - 0 - - 2 - - true - 72a2bf2b:1508717c835:-7b72 - true - false - Execution Counter - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 140 - 6 - Label_19 - 451 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 72a2bf2b:1508717c835:-7b71 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_es/AppInfo_ExecutionCounter - 1 - - - - false - Text Update - false - false - 1 - - - - 100 - 162 - Text Update_19 - 451 - - - - - - Default - - - - 0 - - 2 - - true - 72a2bf2b:1508717c835:-7b5a - true - false - Main Task Name - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 140 - 6 - Label_20 - 474 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 72a2bf2b:1508717c835:-7b59 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_es/AppInfo_MainTaskName - 1 - - - - false - Text Update - false - false - 0 - - - - 100 - 162 - Text Update_20 - 474 - - - - - - Default - - - - 0 - - 2 - - true - 72a2bf2b:1508717c835:-7b4f - true - false - Child Tasks - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 140 - 6 - Label_21 - 498 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 72a2bf2b:1508717c835:-7b4e - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_es/AppInfo_NumOfChildTasks - 1 - - - - false - Text Update - false - false - 1 - - - - 100 - 162 - Text Update_21 - 498 - - - - - - Default - - - - false - 0 - false - false - $(pv_name) -$(pv_value) - 0 - - true - 72a2bf2b:1508717c835:-78ca - - Restart - - false - 28 - 1 - - true - true - false - - - true - - - - - Action Button - false - - - - 81 - 348 - Action Button_1 - 54 - - - - - - - RestartApp.opi - - true - - 8 - - - - - Default - - - - false - 0 - false - false - $(pv_name) -$(pv_value) - 0 - - true - 72a2bf2b:1508717c835:-78bc - - Stop - - false - 28 - 1 - - true - true - false - - - true - - - - - Action Button - false - - - - 81 - 348 - Action Button_2 - 120 - - - - - - - StopApp.opi - - true - - 8 - - - - - Default - - - - false - 0 - false - false - $(pv_name) -$(pv_value) - 0 - - true - 72a2bf2b:1508717c835:-78b2 - - Start - - false - 28 - 1 - - true - true - false - - - true - - - - - Action Button - false - - - - 81 - 348 - Action Button_3 - 87 - - - - - - - ../scripts/StartApp.js - - false - - - - - Default - - - \ No newline at end of file diff --git a/tools/commander/workspace_template/Displays/CFE/ES/displays/Console.opi b/tools/commander/workspace_template/Displays/CFE/ES/displays/Console.opi deleted file mode 100644 index dd7733d10..000000000 --- a/tools/commander/workspace_template/Displays/CFE/ES/displays/Console.opi +++ /dev/null @@ -1,362 +0,0 @@ - - - true - - -e1e6812:1508d3700d4:-75fc - true - false - - - EmbeddedScript - - /cfs/cfe_es/ShellOutput - - - 600 - - true - - 4.0.104.201510200439 - true - Display - - false - -1 - -1 - - - - - 800 - -1 - - 6 - true - -1 - true - - - - - - false - 0 - false - false - $(pv_name) -$(pv_value) - 0 - - true - -e1e6812:1508d3700d4:-75c7 - - Send Cmd - - false - 25 - 1 - - true - true - false - - - true - - - - - Action Button - false - - - - 73 - 6 - Action Button - 528 - - - - - - - ../scripts/RestartApp.js - - true - - - - - Default - - - - 0 - - 1 - - true - -e1e6812:1508d3700d4:-75c4 - true - false - Console - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 231 - 276 - Label_1 - 0 - - - - - - Header 1 - - - - false - 0 - $(pv_name) -$(pv_value) - 0 - - - false - - 0.0 - true - 25 - false - 1 - true - loc://ConsoleInput - 0 - - - - true - Text Input - - inConsoleInput - - - 3 - false - true - -e1e6812:1508d3700d4:-74bc - false - - false - - true - true - false - - false - 4 - false - - - - 709 - 84 - 528 - 1.7976931348623157E308 - - - - -1.7976931348623157E308 - - Default - - - - false - 0 - $(pv_name) -$(pv_value) - 0 - - - false - - 0.0 - true - 25 - false - 1 - true - loc://FileName - 0 - - - - true - Text Input - - inFileName - - - 3 - false - true - -e1e6812:1508d3700d4:-7494 - false - - false - - true - true - false - - false - 4 - false - - - - 283 - 84 - 558 - 1.7976931348623157E308 - - - - -1.7976931348623157E308 - - Default - - - - 0 - - 2 - - true - -e1e6812:1508d3700d4:-747d - true - false - File Name - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 64 - 11 - Label - 561 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - -e1e6812:1508d3700d4:-7435 - false - - false - ###### - 0.0 - - true - false - 480 - 1 - - false - false - false - - true - loc://ConsoleOutput - 0 - - - - false - Text Update - false - false - 4 - - - - 775 - 18 - ConsoleDisplay - 30 - - - - - - Default - - - \ No newline at end of file diff --git a/tools/commander/workspace_template/Displays/CFE/ES/displays/DeleteCDS.opi b/tools/commander/workspace_template/Displays/CFE/ES/displays/DeleteCDS.opi deleted file mode 100644 index ff27887a7..000000000 --- a/tools/commander/workspace_template/Displays/CFE/ES/displays/DeleteCDS.opi +++ /dev/null @@ -1,234 +0,0 @@ - - - true - - 72a2bf2b:1508717c835:-7839 - true - false - - 130 - - true - - 4.0.104.201510200439 - true - Display - - false - -1 - -1 - - - - - 400 - -1 - - 6 - true - -1 - true - - - - - - false - 0 - false - false - $(pv_name) -$(pv_value) - 0 - - true - 72a2bf2b:1508717c835:-77e3 - - Delete - - false - 25 - 1 - - true - true - false - - - true - - - - - Action Button - false - - - - 85 - 153 - Action Button - 90 - - - - - - - ../scripts/RestartApp.js - - true - - - - - Default - - - - 0 - - 2 - - true - 72a2bf2b:1508717c835:-772d - true - false - Name - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 80 - 24 - Label - 48 - - - - - - Default - - - - 0 - - 1 - - true - 72a2bf2b:1508717c835:-76c0 - true - false - Delete Critical Data Store - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 231 - 80 - Label_1 - 12 - - - - - - Default - - - - false - 0 - $(pv_name) -$(pv_value) - 0 - - - false - ###### - 0.0 - true - 20 - false - 1 - true - loc://Name<VString> - 0 - - - - true - Text Input - - inName - - - 0 - false - true - -e1e6812:1508d3700d4:-79c8 - false - - true - - true - true - false - - false - 4 - false - - - - 259 - 114 - 48 - 1.7976931348623157E308 - - - - -1.7976931348623157E308 - - Default - - - \ No newline at end of file diff --git a/tools/commander/workspace_template/Displays/CFE/ES/displays/DumpCDSReg.opi b/tools/commander/workspace_template/Displays/CFE/ES/displays/DumpCDSReg.opi deleted file mode 100644 index ddd2b33d4..000000000 --- a/tools/commander/workspace_template/Displays/CFE/ES/displays/DumpCDSReg.opi +++ /dev/null @@ -1,234 +0,0 @@ - - - true - - 72a2bf2b:1508717c835:-7839 - true - false - - 130 - - true - - 4.0.104.201510200439 - true - Display - - false - -1 - -1 - - - - - 400 - -1 - - 6 - true - -1 - true - - - - - - false - 0 - false - false - $(pv_name) -$(pv_value) - 0 - - true - 72a2bf2b:1508717c835:-77e3 - - Dump to File System - - false - 25 - 1 - - true - true - false - - - true - - - - - Action Button - false - - - - 163 - 114 - Action Button - 90 - - - - - - - ../scripts/RestartApp.js - - true - - - - - Default - - - - 0 - - 2 - - true - 72a2bf2b:1508717c835:-772d - true - false - File Name - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 80 - 24 - Label - 48 - - - - - - Default - - - - 0 - - 1 - - true - 72a2bf2b:1508717c835:-76c0 - true - false - Dump Critical Data Store Registry to File System - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 337 - 36 - Label_1 - 12 - - - - - - Default - - - - false - 0 - $(pv_name) -$(pv_value) - 0 - - - false - ###### - 0.0 - true - 20 - false - 1 - true - loc://FileName - 0 - - - - true - Text Input - - inFileName - - - 0 - false - true - -e1e6812:1508d3700d4:-79c8 - false - - true - - true - true - false - - false - 4 - false - - - - 259 - 114 - 48 - 1.7976931348623157E308 - - - - -1.7976931348623157E308 - - Default - - - \ No newline at end of file diff --git a/tools/commander/workspace_template/Displays/CFE/ES/displays/Main.opi b/tools/commander/workspace_template/Displays/CFE/ES/displays/Main.opi deleted file mode 100644 index 3892bb67d..000000000 --- a/tools/commander/workspace_template/Displays/CFE/ES/displays/Main.opi +++ /dev/null @@ -1,4035 +0,0 @@ - - - - - false - -1 - -1 - - false - - - - 1.5.3 - - - - 6 - 620 - - true - - - - - true - true - true - true - true - Display - 700 - 45ea5983:1502a6e6386:-7f06 - -1 - -1 - - - false - false - false - - - - true - - - - 0 - 1 - true - - Default - - false - - - - 0 - 20 - 0 - Text Update - 0 - false - /cfs/cfe_es/CFE_ES_HkPacket_t.CmdCounter - - 0.0 - - - true - true - false - - - true - ###### - $(pv_name) -$(pv_value) - false - 1 - true - Text Update - 100 - false - 45ea5983:1502a6e6386:-7f01 - 169 - 55 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 2 - Label - - - true - true - false - - - Cmd Count - - true - 1 - true - Label - 100 - false - 2b4f25d5:1502b5812fe:-7ff9 - 52 - 55 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 2 - Label_1 - - - true - true - false - - - Err Count - - true - 1 - true - Label - 100 - false - 2b4f25d5:1502b5812fe:-7fef - 52 - 74 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 2 - Label_2 - - - true - true - false - - - Core Checksum - - true - 1 - true - Label - 146 - false - 2b4f25d5:1502b5812fe:-7fea - 6 - 121 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 2 - Label_3 - - - true - true - false - - - CFE Major Version - - true - 1 - true - Label - 146 - false - 2b4f25d5:1502b5812fe:-7fe5 - 6 - 140 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 2 - Label_4 - - - true - true - false - - - CFE Minor Version - - true - 1 - true - Label - 146 - false - 2b4f25d5:1502b5812fe:-7fe0 - 6 - 159 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 2 - Label_5 - - - true - true - false - - - CFE Revision - - true - 1 - true - Label - 146 - false - 2b4f25d5:1502b5812fe:-7fdb - 6 - 178 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 2 - Label_6 - - - true - true - false - - - CFE Mission Revision - - true - 1 - true - Label - 146 - false - 2b4f25d5:1502b5812fe:-7fd6 - 6 - 197 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 2 - Label_7 - - - true - true - false - - - OSAL Major Version - - true - 1 - true - Label - 146 - false - 2b4f25d5:1502b5812fe:-7fd1 - 6 - 247 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 2 - Label_8 - - - true - true - false - - - OSAL Minor Version - - true - 1 - true - Label - 146 - false - 2b4f25d5:1502b5812fe:-7fa3 - 6 - 266 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 2 - Label_9 - - - true - true - false - - - OSAL Revision - - true - 1 - true - Label - 146 - false - 2b4f25d5:1502b5812fe:-7f9e - 6 - 285 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 2 - Label_10 - - - true - true - false - - - OSAL Mission Revision - - true - 1 - true - Label - 146 - false - 2b4f25d5:1502b5812fe:-7f99 - 6 - 304 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 2 - Label_11 - - - true - true - false - - - Size - - true - 1 - true - Label - 146 - false - 2b4f25d5:1502b5812fe:-7f94 - 6 - 355 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 2 - Label_12 - - - true - true - false - - - Entries - - true - 1 - true - Label - 146 - false - 2b4f25d5:1502b5812fe:-7f8f - 6 - 374 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 2 - Label_13 - - - true - true - false - - - Mode - - true - 1 - true - Label - 146 - false - 2b4f25d5:1502b5812fe:-7f8a - 6 - 393 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 2 - Label_14 - - - true - true - false - - - Error Log Index - - true - 1 - true - Label - 146 - false - 2b4f25d5:1502b5812fe:-7f83 - 6 - 469 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 2 - Label_15 - - - true - true - false - - - Error Log Entries - - true - 1 - true - Label - 146 - false - 2b4f25d5:1502b5812fe:-7f7e - 6 - 488 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 2 - Label_16 - - - true - true - false - - - Core Apps - - true - 1 - true - Label - 127 - false - 2b4f25d5:1502b5812fe:-7f79 - 26 - 592 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 2 - Label_17 - - - true - true - false - - - Applications - - true - 1 - true - Label - 125 - false - 2b4f25d5:1502b5812fe:-7f50 - 27 - 535 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 2 - Label_18 - - - true - true - false - - - Tasks - - true - 1 - true - Label - 117 - false - 2b4f25d5:1502b5812fe:-7f4b - 35 - 554 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 2 - Label_19 - - - true - true - false - - - Libs - - true - 1 - true - Label - 125 - false - 2b4f25d5:1502b5812fe:-7f46 - 27 - 573 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 2 - Label_20 - - - true - true - false - - - Reset Type - - true - 1 - true - Label - 164 - false - 2b4f25d5:1502b5812fe:-7f41 - 326 - 228 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 2 - Label_21 - - - true - true - false - - - Reset Subtype - - true - 1 - true - Label - 164 - false - 2b4f25d5:1502b5812fe:-7f31 - 326 - 247 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 2 - Label_22 - - - true - true - false - - - Processor Resets - - true - 1 - true - Label - 164 - false - 2b4f25d5:1502b5812fe:-7f2c - 326 - 266 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 2 - Label_23 - - - true - true - false - - - Max Processor Resets - - true - 1 - true - Label - 164 - false - 2b4f25d5:1502b5812fe:-7f27 - 326 - 285 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 2 - Label_24 - - - true - true - false - - - Boot Source - - true - 1 - true - Label - 164 - false - 2b4f25d5:1502b5812fe:-7f22 - 326 - 304 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 2 - Label_35 - - - true - true - false - - - Bytes Free - - true - 1 - true - Label - 98 - false - 2b4f25d5:1502b5812fe:-7eb4 - 411 - 66 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 2 - Label_36 - - - true - true - false - - - Blocks Free - - true - 1 - true - Label - 98 - false - 2b4f25d5:1502b5812fe:-7eab - 411 - 85 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 2 - Label_37 - - - true - true - false - - - Max Block Size - - true - 1 - true - Label - 98 - false - 2b4f25d5:1502b5812fe:-7ea4 - 411 - 104 - - - - false - - - - - - - 0 - 1 - true - - Default Bold - - - - - 20 - 1 - Label_39 - - - true - true - false - - - Heap - - true - 1 - true - Label - 164 - false - 2b4f25d5:1502b5812fe:-7d5c - 404 - 41 - - - - false - - - - - - - 0 - 1 - true - - Default Bold - - - - - 20 - 1 - Label_40 - - - true - true - false - - - CFE Version - - true - 1 - true - Label - 133 - false - 2b4f25d5:1502b5812fe:-7d52 - 81 - 102 - - - - false - - - - - - - 0 - 1 - true - - Default Bold - - - - - 20 - 1 - Label_41 - - - true - true - false - - - OSAL Version - - true - 1 - true - Label - 164 - false - 2b4f25d5:1502b5812fe:-7d48 - 80 - 228 - - - - false - - - - - - - 0 - 1 - true - - Default Bold - - - - - 20 - 1 - Label_42 - - - true - true - false - - - System Log - - true - 1 - true - Label - 164 - false - 2b4f25d5:1502b5812fe:-7d3e - 66 - 336 - - - - false - - - - - - - 0 - 1 - true - - Default Bold - - - - - 20 - 1 - Label_43 - - - true - true - false - - - Error Log - - true - 1 - true - Label - 164 - false - 2b4f25d5:1502b5812fe:-7d37 - 66 - 450 - - - - false - - - - - - - 0 - 1 - true - - Default Bold - - - - - 20 - 1 - Label_44 - - - true - true - false - - - Resources - - true - 1 - true - Label - 164 - false - 2b4f25d5:1502b5812fe:-7d30 - 66 - 516 - - - - false - - - - - - - 0 - 1 - true - - Default Bold - - - - - 20 - 1 - Label_45 - - - true - true - false - - - Initialization - - true - 1 - true - Label - 164 - false - 2b4f25d5:1502b5812fe:-7d23 - 385 - 209 - - - - false - - - - - - - 0 - 1 - true - - Default Bold - - - - - 20 - 1 - Label_46 - - - true - true - false - - - Commanding - - true - 1 - true - Label - 164 - false - 2b4f25d5:1502b5812fe:-7d1c - 66 - 36 - - - - false - false - false - - - - true - - - - 0 - 1 - true - - Default - - false - - - - 0 - 20 - 0 - Text Update_1 - 0 - false - /cfs/cfe_es/CFE_ES_HkPacket_t.Payload.ErrCounter - - 0.0 - - - true - true - false - - - true - ###### - $(pv_name) -$(pv_value) - false - 1 - true - Text Update - 100 - false - 2b4f25d5:1502b5812fe:-7d06 - 169 - 74 - - - - false - false - false - - - - true - - - - 0 - 1 - true - - Default - - false - - - - 3 - 20 - 0 - Text Update_2 - 0 - false - /cfs/cfe_es/CFE_ES_HkPacket_t.Payload.CFECoreChecksum - - 0.0 - - - true - true - false - - - true - ###### - $(pv_name) -$(pv_value) - false - 1 - true - Text Update - 100 - false - 2b4f25d5:1502b5812fe:-7d01 - 169 - 121 - - - - false - false - false - - - - true - - - - 0 - 1 - true - - Default - - false - - - - 0 - 20 - 0 - Text Update_3 - 0 - false - /cfs/cfe_es/CFE_ES_HkPacket_t.Payload.CFEMajorVersion - - 0.0 - - - true - true - false - - - true - ###### - $(pv_name) -$(pv_value) - false - 1 - true - Text Update - 100 - false - 2b4f25d5:1502b5812fe:-7cfc - 169 - 140 - - - - false - false - false - - - - true - - - - 0 - 1 - true - - Default - - false - - - - 0 - 20 - 0 - Text Update_4 - 0 - false - /cfs/cfe_es/CFE_ES_HkPacket_t.Payload.CFEMinorVersion - - 0.0 - - - true - true - false - - - true - ###### - $(pv_name) -$(pv_value) - false - 1 - true - Text Update - 100 - false - 2b4f25d5:1502b5812fe:-7cf7 - 169 - 159 - - - - false - false - false - - - - true - - - - 0 - 1 - true - - Default - - false - - - - 0 - 20 - 0 - Text Update_5 - 0 - false - /cfs/cfe_es/CFE_ES_HkPacket_t.Payload.CFERevision - - 0.0 - - - true - true - false - - - true - ###### - $(pv_name) -$(pv_value) - false - 1 - true - Text Update - 100 - false - 2b4f25d5:1502b5812fe:-7cf2 - 169 - 178 - - - - false - false - false - - - - true - - - - 0 - 1 - true - - Default - - false - - - - 0 - 20 - 0 - Text Update_6 - 0 - false - /cfs/cfe_es/CFE_ES_HkPacket_t.Payload.CFEMissionRevision - - 0.0 - - - true - true - false - - - true - ###### - $(pv_name) -$(pv_value) - false - 1 - true - Text Update - 100 - false - 2b4f25d5:1502b5812fe:-7ced - 169 - 197 - - - - false - false - false - - - - true - - - - 0 - 1 - true - - Default - - false - - - - 0 - 20 - 0 - Text Update_7 - 0 - false - /cfs/cfe_es/CFE_ES_HkPacket_t.Payload.OSALMajorVersion - - 0.0 - - - true - true - false - - - true - ###### - $(pv_name) -$(pv_value) - false - 1 - true - Text Update - 100 - false - 2b4f25d5:1502b5812fe:-7ce8 - 169 - 247 - - - - false - false - false - - - - true - - - - 0 - 1 - true - - Default - - false - - - - 0 - 20 - 0 - Text Update_8 - 0 - false - /cfs/cfe_es/CFE_ES_HkPacket_t.Payload.OSALMinorVersion - - 0.0 - - - true - true - false - - - true - ###### - $(pv_name) -$(pv_value) - false - 1 - true - Text Update - 100 - false - 2b4f25d5:1502b5812fe:-7ce3 - 169 - 266 - - - - false - false - false - - - - true - - - - 0 - 1 - true - - Default - - false - - - - 0 - 20 - 0 - Text Update_9 - 0 - false - /cfs/cfe_es/CFE_ES_HkPacket_t.Payload.OSALRevision - - 0.0 - - - true - true - false - - - true - ###### - $(pv_name) -$(pv_value) - false - 1 - true - Text Update - 100 - false - 2b4f25d5:1502b5812fe:-7cde - 169 - 285 - - - - false - false - false - - - - true - - - - 0 - 1 - true - - Default - - false - - - - 0 - 20 - 0 - Text Update_10 - 0 - false - /cfs/cfe_es/CFE_ES_HkPacket_t.Payload.OSALMissionRevision - - 0.0 - - - true - true - false - - - true - ###### - $(pv_name) -$(pv_value) - false - 1 - true - Text Update - 100 - false - 2b4f25d5:1502b5812fe:-7cd9 - 169 - 304 - - - - false - false - false - - - - true - - - - 0 - 1 - true - - Default - - false - - - - 0 - 20 - 0 - Text Update_11 - 0 - false - /cfs/cfe_es/CFE_ES_HkPacket_t.Payload.SysLogSize - - 0.0 - - - true - true - false - - - true - ###### - $(pv_name) -$(pv_value) - false - 1 - true - Text Update - 100 - false - 2b4f25d5:1502b5812fe:-7cd4 - 169 - 355 - - - - false - false - false - - - - true - - - - 0 - 1 - true - - Default - - false - - - - 0 - 20 - 0 - Text Update_12 - 0 - false - /cfs/cfe_es/CFE_ES_HkPacket_t.Payload.SysLogEntries - - 0.0 - - - true - true - false - - - true - ###### - $(pv_name) -$(pv_value) - false - 1 - true - Text Update - 100 - false - 2b4f25d5:1502b5812fe:-7ccf - 169 - 374 - - - - false - false - false - - - - true - - - - 0 - 1 - true - - Default - - false - - - - 0 - 20 - 0 - Text Update_13 - 0 - false - /cfs/cfe_es/CFE_ES_HkPacket_t.Payload.SysLogMode - - 0.0 - - - true - true - false - - - true - ###### - $(pv_name) -$(pv_value) - false - 1 - true - Text Update - 100 - false - 2b4f25d5:1502b5812fe:-7cca - 169 - 393 - - - - false - false - false - - - - true - - - - 0 - 1 - true - - Default - - false - - - - 0 - 20 - 0 - Text Update_14 - 0 - false - /cfs/cfe_es/CFE_ES_HkPacket_t.Payload.ERLogIndex - - 0.0 - - - true - true - false - - - true - ###### - $(pv_name) -$(pv_value) - false - 1 - true - Text Update - 100 - false - 2b4f25d5:1502b5812fe:-7cc5 - 169 - 469 - - - - false - false - false - - - - true - - - - 0 - 1 - true - - Default - - false - - - - 0 - 20 - 0 - Text Update_15 - 0 - false - /cfs/cfe_es/CFE_ES_HkPacket_t.Payload.ERLogEntries - - 0.0 - - - true - true - false - - - true - ###### - $(pv_name) -$(pv_value) - false - 1 - true - Text Update - 100 - false - 2b4f25d5:1502b5812fe:-7cc0 - 169 - 488 - - - - false - false - false - - - - true - - - - 0 - 1 - true - - Default - - false - - - - 0 - 20 - 0 - Text Update_16 - 0 - false - /cfs/cfe_es/CFE_ES_HkPacket_t.Payload.RegisteredExternalApps - - 0.0 - - - true - true - false - - - true - ###### - $(pv_name) -$(pv_value) - false - 1 - true - Text Update - 100 - false - 2b4f25d5:1502b5812fe:-7cbb - 169 - 535 - - - - false - false - false - - - - true - - - - 0 - 1 - true - - Default - - false - - - - 0 - 20 - 0 - Text Update_17 - 0 - false - /cfs/cfe_es/CFE_ES_HkPacket_t.Payload.RegisteredTasks - - 0.0 - - - true - true - false - - - true - ###### - $(pv_name) -$(pv_value) - false - 1 - true - Text Update - 100 - false - 2b4f25d5:1502b5812fe:-7cb6 - 169 - 554 - - - - false - false - false - - - - true - - - - 0 - 1 - true - - Default - - false - - - - 0 - 20 - 0 - Text Update_18 - 0 - false - /cfs/cfe_es/CFE_ES_HkPacket_t.Payload.RegisteredLibs - - 0.0 - - - true - true - false - - - true - ###### - $(pv_name) -$(pv_value) - false - 1 - true - Text Update - 100 - false - 2b4f25d5:1502b5812fe:-7cb1 - 169 - 573 - - - - false - false - false - - - - true - - - - 0 - 1 - true - - Default - - false - - - - 0 - 20 - 0 - Text Update_19 - 0 - false - /cfs/cfe_es/CFE_ES_HkPacket_t.Payload.RegisteredCoreApps - - 0.0 - - - true - true - false - - - true - ###### - $(pv_name) -$(pv_value) - false - 1 - true - Text Update - 100 - false - 2b4f25d5:1502b5812fe:-7cac - 169 - 592 - - - - false - false - false - - - - true - - - - 0 - 1 - true - - Default - - false - - - - 0 - 20 - 0 - Text Update_29 - 0 - false - /cfs/cfe_es/CFE_ES_HkPacket_t.Payload.HeapBytesFree - - 0.0 - - - true - true - false - - - true - ###### - $(pv_name) -$(pv_value) - false - 1 - true - Text Update - 100 - false - 2b4f25d5:1502b5812fe:-7c7a - 525 - 66 - - - - false - false - false - - - - true - - - - 0 - 1 - true - - Default - - false - - - - 0 - 20 - 0 - Text Update_30 - 0 - false - /cfs/cfe_es/CFE_ES_HkPacket_t.Payload.HeapBlocksFree - - 0.0 - - - true - true - false - - - true - ###### - $(pv_name) -$(pv_value) - false - 1 - true - Text Update - 100 - false - 2b4f25d5:1502b5812fe:-7c75 - 525 - 85 - - - - false - false - false - - - - true - - - - 0 - 1 - true - - Default - - false - - - - 0 - 20 - 0 - Text Update_31 - 0 - false - /cfs/cfe_es/CFE_ES_HkPacket_t.Payload.HeapMaxBlockSize - - 0.0 - - - true - true - false - - - true - ###### - $(pv_name) -$(pv_value) - false - 1 - true - Text Update - 100 - false - 2b4f25d5:1502b5812fe:-7c70 - 525 - 104 - - - - false - false - false - - - - true - - - - 0 - 1 - true - - Default - - false - - - - 0 - 20 - 0 - Text Update_32 - 0 - false - /cfs/cfe_es/CFE_ES_HkPacket_t.Payload.ResetType - - 0.0 - - - true - true - false - - - true - ###### - $(pv_name) -$(pv_value) - false - 1 - true - Text Update - 100 - false - 2b4f25d5:1502b5812fe:-7c6b - 506 - 228 - - - - false - false - false - - - - true - - - - 0 - 1 - true - - Default - - false - - - - 0 - 20 - 0 - Text Update_33 - 0 - false - /cfs/cfe_es/CFE_ES_HkPacket_t.Payload.ResetSubtype - - 0.0 - - - true - true - false - - - true - ###### - $(pv_name) -$(pv_value) - false - 1 - true - Text Update - 100 - false - 2b4f25d5:1502b5812fe:-7c66 - 506 - 247 - - - - false - false - false - - - - true - - - - 0 - 1 - true - - Default - - false - - - - 0 - 20 - 0 - Text Update_34 - 0 - false - /cfs/cfe_es/CFE_ES_HkPacket_t.Payload.ProcessorResets - - 0.0 - - - true - true - false - - - true - ###### - $(pv_name) -$(pv_value) - false - 1 - true - Text Update - 100 - false - 2b4f25d5:1502b5812fe:-7c61 - 506 - 266 - - - - false - false - false - - - - true - - - - 0 - 1 - true - - Default - - false - - - - 0 - 20 - 0 - Text Update_35 - 0 - false - /cfs/cfe_es/CFE_ES_HkPacket_t.Payload.MaxProcessorResets - - 0.0 - - - true - true - false - - - true - ###### - $(pv_name) -$(pv_value) - false - 1 - true - Text Update - 100 - false - 2b4f25d5:1502b5812fe:-7c5c - 506 - 285 - - - - false - false - false - - - - true - - - - 0 - 1 - true - - Default - - false - - - - 0 - 20 - 0 - Text Update_36 - 0 - false - /cfs/cfe_es/CFE_ES_HkPacket_t.Payload.BootSource - - 0.0 - - - true - true - false - - - true - ###### - $(pv_name) -$(pv_value) - false - 1 - true - Text Update - 100 - false - 2b4f25d5:1502b5812fe:-7c57 - 506 - 304 - - - - - ../scripts/NoOp.js - - false - - - - false - false - - - - false - - - - 0 - 1 - true - - Default - - false - - - - 20 - - NoOp - 0 - - - - - true - true - false - - - - NoOp - false - $(pv_name) -$(pv_value) - true - Action Button - 67 - 39deb42:1504a4eb8cc:-7de2 - 291 - 55 - - - - - ../scripts/ResetCounters.js - - false - - - - false - false - - - - false - - - - 0 - 1 - true - - Default - - false - - - - 20 - - NoOp_1 - 0 - - - - - true - true - false - - - - Reset - false - $(pv_name) -$(pv_value) - true - Action Button - 67 - -9ddfcbe:1507831914f:-7cfc - 291 - 74 - - - - - ../scripts/processor_restart.js - - false - - - - false - false - - - - false - - - - 0 - 1 - true - - Default - - false - - - - 23 - - NoOp_2 - 0 - - - - - true - true - false - - - - Processor Restart - false - $(pv_name) -$(pv_value) - true - Action Button - 139 - -9ddfcbe:1507831914f:-73b7 - 486 - 546 - - - - - ../scripts/power_restart.js - - false - - - - false - false - - - - false - - - - 0 - 1 - true - - Default - - false - - - - 23 - - NoOp_5 - 0 - - - - - true - true - false - - - - Power Restart - false - $(pv_name) -$(pv_value) - true - Action Button - 139 - -9ddfcbe:1507831914f:-6e95 - 486 - 575 - - - - - ../scripts/reset_pr_resets.js - - true - - - - false - false - - - - false - - - - 0 - 1 - true - - Default - - false - - - - 20 - - NoOp_6 - 0 - - - - - true - true - false - - - - Reset - false - $(pv_name) -$(pv_value) - true - Action Button - 76 - -9ddfcbe:1507831914f:-6e89 - 614 - 266 - - - - - SetMaxPRCount.opi - - true - - 8 - - - - false - false - - - - false - - - - 0 - 1 - true - - Default - - false - - - - 20 - - NoOp_7 - 0 - - - - - true - true - false - - - - Set Max - false - $(pv_name) -$(pv_value) - true - Action Button - 76 - -9ddfcbe:1507831914f:-6e7f - 614 - 285 - - - - - WriteSysLog.opi - - true - - 8 - - - - false - false - - - - false - - - - 0 - 1 - true - - Default - - false - - - - 21 - - NoOp_8 - 0 - - - - - true - true - false - - - - Dump - false - $(pv_name) -$(pv_value) - true - Action Button - 66 - -9ddfcbe:1507831914f:-5985 - 286 - 355 - - - - - ../scripts/syslog_clear.js - - true - - - - false - false - - - - false - - - - 0 - 1 - true - - Default - - false - - - - 21 - - NoOp_9 - 0 - - - - - true - true - false - - - - Clear - false - $(pv_name) -$(pv_value) - true - Action Button - 67 - -9ddfcbe:1507831914f:-5979 - 357 - 355 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 2 - Label_47 - - - true - true - false - - - Bytes Used - - true - 1 - true - Label - 146 - false - -9ddfcbe:1507831914f:-5722 - 6 - 412 - - - - false - false - false - - - - true - - - - 0 - 1 - true - - Default - - false - - - - 0 - 20 - 0 - Text Update_38 - 0 - false - /cfs/cfe_es/CFE_ES_HkPacket_t.Payload.SysLogBytesUsed - - 0.0 - - - true - true - false - - - true - ###### - $(pv_name) -$(pv_value) - false - 1 - true - Text Update - 100 - false - -9ddfcbe:1507831914f:-5721 - 169 - 412 - - - - - ApplicationControl.opi - - true - - 0 - - - - false - false - - - - false - - - - 0 - 1 - true - - Default - - false - - - - 27 - - Action Button - 0 - - - - - true - true - false - - - - Application Control - false - $(pv_name) -$(pv_value) - true - Action Button - 172 - -9ddfcbe:1507831914f:-478a - 453 - 342 - - - - - SetSysLogMode.opi - - true - - 8 - - - - false - false - - - - false - - - - 0 - 1 - true - - Default - - false - - - - 20 - - NoOp_11 - 0 - - - - - true - true - false - - - - Change - false - $(pv_name) -$(pv_value) - true - Action Button - 84 - -e1e6812:1508d3700d4:-786c - 286 - 393 - - - - - Console.opi - - true - - 0 - - - - false - false - - - - false - - - - 0 - 1 - true - - Default - - false - - - - 26 - - Action Button_1 - 0 - - - - - true - true - false - - - - Console - false - $(pv_name) -$(pv_value) - true - Action Button - 172 - -e1e6812:1508d3700d4:-75ff - 453 - 375 - - - - - PerfUtility.opi - - true - - 0 - - - - false - false - - - - false - - - - 0 - 1 - true - - Default - - false - - - - 27 - - Action Button_2 - 0 - - - - - true - true - false - - - - Performance Utility - false - $(pv_name) -$(pv_value) - true - Action Button - 172 - -35c7bfc1:1509236a393:-7dda - 453 - 408 - - - - - PerfUtility.opi - - true - - 0 - - - - false - false - - - - false - - - - 0 - 1 - true - - Default - - false - - - - 27 - - Action Button_3 - 0 - - - - - true - true - false - - - - Memory Pool Viewer - false - $(pv_name) -$(pv_value) - true - Action Button - 172 - -3fca34e1:15096a78c93:-77fd - 453 - 443 - - - - - WriteErrLog.opi - - true - - 8 - - - - false - false - - - - false - - - - 0 - 1 - true - - Default - - false - - - - 20 - - NoOp_12 - 0 - - - - - true - true - false - - - - Dump - false - $(pv_name) -$(pv_value) - true - Action Button - 66 - 763e00b7:150973f1dd8:-7dda - 286 - 469 - - - - - ../scripts/syslog_clear.js - - true - - - - false - false - - - - false - - - - 0 - 1 - true - - Default - - false - - - - 20 - - NoOp_13 - 0 - - - - - true - true - false - - - - Clear - false - $(pv_name) -$(pv_value) - true - Action Button - 67 - 763e00b7:150973f1dd8:-7dd9 - 357 - 469 - - - - - ../scripts/NoOp.js - - false - - - - false - false - - - - false - - - - 0 - 1 - true - - Default - - false - - - - 25 - - NoOp_14 - 0 - - - - - true - true - false - - - - Clear - false - $(pv_name) -$(pv_value) - true - Action Button - 85 - 763e00b7:150973f1dd8:-7dcc - 532 - 168 - - - - - ../scripts/NoOp.js - - false - - - - false - false - - - - false - - - - 0 - 1 - true - - Default - - false - - - - 25 - - NoOp_15 - 0 - - - - - true - true - false - - - - Dump - false - $(pv_name) -$(pv_value) - true - Action Button - 80 - 763e00b7:150973f1dd8:-7dbe - 446 - 168 - - - - false - - - - - - - 0 - 1 - true - - Default Bold - - - - - 20 - 1 - Label_48 - - - true - true - false - - - CDS - - true - 1 - true - Label - 164 - false - 763e00b7:150973f1dd8:-7da7 - 404 - 142 - - - - false - - - - - - - 0 - 1 - true - - Default Bold - - - - - 20 - 1 - Label_49 - - - true - true - false - - - Core Flight Executive - Essential Services - - true - 1 - true - Label - 295 - false - 763e00b7:150973f1dd8:-7cf4 - 192 - 6 - - \ No newline at end of file diff --git a/tools/commander/workspace_template/Displays/CFE/ES/displays/MemoryPoolViewer.opi b/tools/commander/workspace_template/Displays/CFE/ES/displays/MemoryPoolViewer.opi deleted file mode 100644 index 41dd56cdc..000000000 --- a/tools/commander/workspace_template/Displays/CFE/ES/displays/MemoryPoolViewer.opi +++ /dev/null @@ -1,4861 +0,0 @@ - - - true - - 72a2bf2b:1508717c835:-7d33 - true - false - - 600 - - true - - 4.0.104.201510200439 - true - Display - - false - -1 - -1 - - - - - 800 - -1 - - 6 - true - -1 - true - - - - - - false - 0 - false - false - $(pv_name) -$(pv_value) - 0 - - true - 72a2bf2b:1508717c835:-7cf7 - - Query - - false - 28 - 1 - - true - true - false - - - true - - - - - Action Button - false - - - - 81 - 234 - Action Button - 24 - - - - - - - - - true - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - -3fca34e1:15096a78c93:-7767 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - PoolStats_Handle - 1 - - - - true - Text Update - false - false - 3 - - - - 100 - 150 - Handle - 85 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - -3fca34e1:15096a78c93:-7766 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - PoolStats_Size - 1 - - - - true - Text Update - false - false - 0 - - - - 100 - 150 - Text Update_23 - 108 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - -3fca34e1:15096a78c93:-7765 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - PoolStats_NumBlocksRequested - 1 - - - - true - Text Update - false - false - 0 - - - - 100 - 150 - Text Update_24 - 132 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - -3fca34e1:15096a78c93:-7764 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - PoolStats_CheckErrCtr - 1 - - - - true - Text Update - false - false - 0 - - - - 100 - 150 - Text Update_25 - 156 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - -3fca34e1:15096a78c93:-7763 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - PoolStats_NumFreeBytes - 1 - - - - true - Text Update - false - false - 0 - - - - 100 - 150 - Text Update_26 - 180 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - -3fca34e1:15096a78c93:-7762 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - PoolStats_Block0_Size - 1 - - - - true - Text Update - false - false - 0 - - - - 100 - 78 - Text Update_27 - 243 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - -3fca34e1:15096a78c93:-7761 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - PoolStats_Block0_NumCreated - 1 - - - - true - Text Update - false - false - 0 - - - - 100 - 186 - Text Update_28 - 243 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - -3fca34e1:15096a78c93:-7760 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - PoolStats_Block0_NumFree - 1 - - - - true - Text Update - false - false - 0 - - - - 100 - 294 - Text Update_29 - 243 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - -3fca34e1:15096a78c93:-775e - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - PoolStats_Block1_NumCreated - 1 - - - - true - Text Update - false - false - 0 - - - - 100 - 839 - Text Update_31 - 243 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - -3fca34e1:15096a78c93:-7759 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - PoolStats_Block3_Size - 1 - - - - true - Text Update - false - false - 0 - - - - 100 - 839 - Text Update_36 - 263 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - -3fca34e1:15096a78c93:-7754 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - PoolStats_Block4_NumFree - 1 - - - - true - Text Update - false - false - 0 - - - - 100 - 839 - Text Update_41 - 283 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - -3fca34e1:15096a78c93:-774f - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - PoolStats_Block6_NumCreated - 1 - - - - true - Text Update - false - false - 0 - - - - 100 - 839 - Text Update_46 - 303 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - -3fca34e1:15096a78c93:-774a - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - PoolStats_Block8_Size - 1 - - - - true - Text Update - false - false - 0 - - - - 100 - 839 - Text Update_51 - 323 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - -3fca34e1:15096a78c93:-7745 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - PoolStats_Block9_NumFree - 1 - - - - true - Text Update - false - false - 0 - - - - 100 - 839 - Text Update_56 - 343 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - -3fca34e1:15096a78c93:-7740 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - PoolStats_Block11_NumCreated - 1 - - - - true - Text Update - false - false - 0 - - - - 100 - 839 - Text Update_61 - 363 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - -3fca34e1:15096a78c93:-773b - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - PoolStats_Block13_Size - 1 - - - - true - Text Update - false - false - 0 - - - - 100 - 839 - Text Update_66 - 383 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - -3fca34e1:15096a78c93:-7736 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - PoolStats_Block14_NumFree - 1 - - - - true - Text Update - false - false - 0 - - - - 100 - 839 - Text Update_71 - 403 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - -3fca34e1:15096a78c93:-7731 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - PoolStats_Block16_NumCreated - 1 - - - - true - Text Update - false - false - 0 - - - - 100 - 839 - Text Update_76 - 423 - - - - - - Default - - - - 0 - - 2 - - true - -3fca34e1:15096a78c93:-7722 - true - false - Pool Handle - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 80 - 62 - Label - 85 - - - - - - Default - - - - 0 - - 1 - - true - -3fca34e1:15096a78c93:-76db - true - false - Pool Handle - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 80 - 29 - Label_1 - 28 - - - - - - Default - - - - false - 0 - $(pv_name) -$(pv_value) - 0 - - - false - - 0.0 - true - 25 - false - 1 - true - loc://inPoolHandle - 0 - - - - true - Text Input - - inPoolHandle - - - 3 - false - true - -3fca34e1:15096a78c93:-7697 - false - - false - - true - true - false - - false - 3 - false - - - - 100 - 114 - 25 - Infinity - - - - -Infinity - - Default - - - - 0 - - 2 - - true - -3fca34e1:15096a78c93:-768f - true - false - Size - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 80 - 62 - Label_2 - 108 - - - - - - Default - - - - 0 - - 2 - - true - -3fca34e1:15096a78c93:-7681 - true - false - Blocks Requested - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 118 - 24 - Label_3 - 132 - - - - - - Default - - - - 0 - - 2 - - true - -3fca34e1:15096a78c93:-7677 - true - false - Check Error Count - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 118 - 24 - Label_4 - 156 - - - - - - Default - - - - 0 - - 2 - - true - -3fca34e1:15096a78c93:-766d - true - false - Free Bytes - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 118 - 24 - Label_5 - 180 - - - - - - Default - - - - 0 - - 1 - - true - -3fca34e1:15096a78c93:-7663 - true - false - 0 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 37 - 29 - Label_6 - 243 - - - - - - Default - - - - 0 - - 1 - - true - -3fca34e1:15096a78c93:-7656 - true - false - Size - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 37 - 109 - Label_7 - 224 - - - - - - Default - - - - 0 - - 1 - - true - -3fca34e1:15096a78c93:-764a - true - false - Created - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 56 - 208 - Label_8 - 224 - - - - - - Default - - - - 0 - - 1 - - true - -3fca34e1:15096a78c93:-7640 - true - false - Free - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 56 - 316 - Label_9 - 224 - - - - - - Default - - - - 0 - - 1 - - true - -3fca34e1:15096a78c93:-7636 - true - false - Block - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 42 - 24 - Label_10 - 224 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - -3fca34e1:15096a78c93:-761f - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - PoolStats_Block1_Size - 1 - - - - true - Text Update - false - false - 0 - - - - 100 - 78 - Text Update_78 - 262 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - -3fca34e1:15096a78c93:-761e - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - PoolStats_Block1_NumCreated - 1 - - - - true - Text Update - false - false - 0 - - - - 100 - 186 - Text Update_79 - 262 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - -3fca34e1:15096a78c93:-761d - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - PoolStats_Block1_NumFree - 1 - - - - true - Text Update - false - false - 0 - - - - 100 - 294 - Text Update_80 - 262 - - - - - - Default - - - - 0 - - 1 - - true - -3fca34e1:15096a78c93:-761c - true - false - 1 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 37 - 29 - Label_11 - 262 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - -3fca34e1:15096a78c93:-7611 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - PoolStats_Block2_Size - 1 - - - - true - Text Update - false - false - 0 - - - - 100 - 78 - Text Update_81 - 281 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - -3fca34e1:15096a78c93:-7610 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - PoolStats_Block2_NumCreated - 1 - - - - true - Text Update - false - false - 0 - - - - 100 - 186 - Text Update_82 - 281 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - -3fca34e1:15096a78c93:-760f - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - PoolStats_Block2_NumFree - 1 - - - - true - Text Update - false - false - 0 - - - - 100 - 294 - Text Update_83 - 281 - - - - - - Default - - - - 0 - - 1 - - true - -3fca34e1:15096a78c93:-760e - true - false - 2 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 37 - 29 - Label_12 - 281 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - -3fca34e1:15096a78c93:-7603 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - PoolStats_Block3_Size - 1 - - - - true - Text Update - false - false - 0 - - - - 100 - 78 - Text Update_84 - 300 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - -3fca34e1:15096a78c93:-7602 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - PoolStats_Block3_NumCreated - 1 - - - - true - Text Update - false - false - 0 - - - - 100 - 186 - Text Update_85 - 300 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - -3fca34e1:15096a78c93:-7601 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - PoolStats_Block3_NumFree - 1 - - - - true - Text Update - false - false - 0 - - - - 100 - 294 - Text Update_86 - 300 - - - - - - Default - - - - 0 - - 1 - - true - -3fca34e1:15096a78c93:-7600 - true - false - 3 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 37 - 29 - Label_13 - 300 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - -3fca34e1:15096a78c93:-75f5 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - PoolStats_Block4_Size - 1 - - - - true - Text Update - false - false - 0 - - - - 100 - 78 - Text Update_87 - 319 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - -3fca34e1:15096a78c93:-75f4 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - PoolStats_Block4_NumCreated - 1 - - - - true - Text Update - false - false - 0 - - - - 100 - 186 - Text Update_88 - 319 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - -3fca34e1:15096a78c93:-75f3 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - PoolStats_Block4_NumFree - 1 - - - - true - Text Update - false - false - 0 - - - - 100 - 294 - Text Update_89 - 319 - - - - - - Default - - - - 0 - - 1 - - true - -3fca34e1:15096a78c93:-75f2 - true - false - 4 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 37 - 29 - Label_14 - 319 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - -3fca34e1:15096a78c93:-75e7 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - PoolStats_Block5_Size - 1 - - - - true - Text Update - false - false - 0 - - - - 100 - 78 - Text Update_90 - 338 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - -3fca34e1:15096a78c93:-75e6 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - PoolStats_Block5_NumCreated - 1 - - - - true - Text Update - false - false - 0 - - - - 100 - 186 - Text Update_91 - 338 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - -3fca34e1:15096a78c93:-75e5 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - PoolStats_Block5_NumFree - 1 - - - - true - Text Update - false - false - 0 - - - - 100 - 294 - Text Update_92 - 338 - - - - - - Default - - - - 0 - - 1 - - true - -3fca34e1:15096a78c93:-75e4 - true - false - 5 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 37 - 29 - Label_15 - 338 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - -3fca34e1:15096a78c93:-75d9 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - PoolStats_Block6_Size - 1 - - - - true - Text Update - false - false - 0 - - - - 100 - 78 - Text Update_93 - 357 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - -3fca34e1:15096a78c93:-75d8 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - PoolStats_Block6_NumCreated - 1 - - - - true - Text Update - false - false - 0 - - - - 100 - 186 - Text Update_94 - 357 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - -3fca34e1:15096a78c93:-75d7 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - PoolStats_Block6_NumFree - 1 - - - - true - Text Update - false - false - 0 - - - - 100 - 294 - Text Update_95 - 357 - - - - - - Default - - - - 0 - - 1 - - true - -3fca34e1:15096a78c93:-75d6 - true - false - 6 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 37 - 29 - Label_16 - 357 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - -3fca34e1:15096a78c93:-75cb - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - PoolStats_Block7_Size - 1 - - - - true - Text Update - false - false - 0 - - - - 100 - 78 - Text Update_96 - 376 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - -3fca34e1:15096a78c93:-75ca - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - PoolStats_Block7_NumCreated - 1 - - - - true - Text Update - false - false - 0 - - - - 100 - 186 - Text Update_97 - 376 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - -3fca34e1:15096a78c93:-75c9 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - PoolStats_Block7_NumFree - 1 - - - - true - Text Update - false - false - 0 - - - - 100 - 294 - Text Update_98 - 376 - - - - - - Default - - - - 0 - - 1 - - true - -3fca34e1:15096a78c93:-75c8 - true - false - 7 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 37 - 29 - Label_17 - 376 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - -3fca34e1:15096a78c93:-75bd - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - PoolStats_Block8_Size - 1 - - - - true - Text Update - false - false - 0 - - - - 100 - 78 - Text Update_99 - 395 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - -3fca34e1:15096a78c93:-75bc - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - PoolStats_Block8_NumCreated - 1 - - - - true - Text Update - false - false - 0 - - - - 100 - 186 - Text Update_100 - 395 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - -3fca34e1:15096a78c93:-75bb - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - PoolStats_Block8_NumFree - 1 - - - - true - Text Update - false - false - 0 - - - - 100 - 294 - Text Update_101 - 395 - - - - - - Default - - - - 0 - - 1 - - true - -3fca34e1:15096a78c93:-75ba - true - false - 8 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 37 - 29 - Label_18 - 395 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - -3fca34e1:15096a78c93:-75af - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - PoolStats_Block9_Size - 1 - - - - true - Text Update - false - false - 0 - - - - 100 - 78 - Text Update_102 - 415 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - -3fca34e1:15096a78c93:-75ae - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - PoolStats_Block9_NumCreated - 1 - - - - true - Text Update - false - false - 0 - - - - 100 - 186 - Text Update_103 - 415 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - -3fca34e1:15096a78c93:-75ad - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - PoolStats_Block9_NumFree - 1 - - - - true - Text Update - false - false - 0 - - - - 100 - 294 - Text Update_104 - 415 - - - - - - Default - - - - 0 - - 1 - - true - -3fca34e1:15096a78c93:-75ac - true - false - 9 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 37 - 29 - Label_19 - 415 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - -3fca34e1:15096a78c93:-75a1 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - PoolStats_Block10_Size - 1 - - - - true - Text Update - false - false - 0 - - - - 100 - 78 - Text Update_105 - 434 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - -3fca34e1:15096a78c93:-75a0 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - PoolStats_Block10_NumCreated - 1 - - - - true - Text Update - false - false - 0 - - - - 100 - 186 - Text Update_106 - 434 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - -3fca34e1:15096a78c93:-759f - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - PoolStats_Block10_NumFree - 1 - - - - true - Text Update - false - false - 0 - - - - 100 - 294 - Text Update_107 - 434 - - - - - - Default - - - - 0 - - 1 - - true - -3fca34e1:15096a78c93:-759e - true - false - 10 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 37 - 29 - Label_20 - 434 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - -3fca34e1:15096a78c93:-7593 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - PoolStats_Block11_Size - 1 - - - - true - Text Update - false - false - 0 - - - - 100 - 78 - Text Update_108 - 453 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - -3fca34e1:15096a78c93:-7592 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - PoolStats_Block11_NumCreated - 1 - - - - true - Text Update - false - false - 0 - - - - 100 - 186 - Text Update_109 - 453 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - -3fca34e1:15096a78c93:-7591 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - PoolStats_Block11_NumFree - 1 - - - - true - Text Update - false - false - 0 - - - - 100 - 294 - Text Update_110 - 453 - - - - - - Default - - - - 0 - - 1 - - true - -3fca34e1:15096a78c93:-7590 - true - false - 11 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 37 - 29 - Label_21 - 453 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - -3fca34e1:15096a78c93:-7585 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - PoolStats_Block12_Size - 1 - - - - true - Text Update - false - false - 0 - - - - 100 - 78 - Text Update_111 - 472 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - -3fca34e1:15096a78c93:-7584 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - PoolStats_Block12_NumCreated - 1 - - - - true - Text Update - false - false - 0 - - - - 100 - 186 - Text Update_112 - 472 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - -3fca34e1:15096a78c93:-7583 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - PoolStats_Block12_NumFree - 1 - - - - true - Text Update - false - false - 0 - - - - 100 - 294 - Text Update_113 - 472 - - - - - - Default - - - - 0 - - 1 - - true - -3fca34e1:15096a78c93:-7582 - true - false - 12 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 37 - 29 - Label_22 - 472 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - -3fca34e1:15096a78c93:-7577 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - PoolStats_Block13_Size - 1 - - - - true - Text Update - false - false - 0 - - - - 100 - 78 - Text Update_114 - 491 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - -3fca34e1:15096a78c93:-7576 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - PoolStats_Block13_NumCreated - 1 - - - - true - Text Update - false - false - 0 - - - - 100 - 186 - Text Update_115 - 491 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - -3fca34e1:15096a78c93:-7575 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - PoolStats_Block13_NumFree - 1 - - - - true - Text Update - false - false - 0 - - - - 100 - 294 - Text Update_116 - 491 - - - - - - Default - - - - 0 - - 1 - - true - -3fca34e1:15096a78c93:-7574 - true - false - 13 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 37 - 29 - Label_23 - 491 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - -3fca34e1:15096a78c93:-7569 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - PoolStats_Block14_Size - 1 - - - - true - Text Update - false - false - 0 - - - - 100 - 78 - Text Update_117 - 510 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - -3fca34e1:15096a78c93:-7568 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - PoolStats_Block14_NumCreated - 1 - - - - true - Text Update - false - false - 0 - - - - 100 - 186 - Text Update_118 - 510 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - -3fca34e1:15096a78c93:-7567 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - PoolStats_Block14_NumFree - 1 - - - - true - Text Update - false - false - 0 - - - - 100 - 294 - Text Update_119 - 510 - - - - - - Default - - - - 0 - - 1 - - true - -3fca34e1:15096a78c93:-7566 - true - false - 14 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 37 - 29 - Label_24 - 510 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - -3fca34e1:15096a78c93:-755b - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - PoolStats_Block15_Size - 1 - - - - true - Text Update - false - false - 0 - - - - 100 - 78 - Text Update_120 - 529 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - -3fca34e1:15096a78c93:-755a - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - PoolStats_Block15_NumCreated - 1 - - - - true - Text Update - false - false - 0 - - - - 100 - 186 - Text Update_121 - 529 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - -3fca34e1:15096a78c93:-7559 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - PoolStats_Block15_NumFree - 1 - - - - true - Text Update - false - false - 0 - - - - 100 - 294 - Text Update_122 - 529 - - - - - - Default - - - - 0 - - 1 - - true - -3fca34e1:15096a78c93:-7558 - true - false - 15 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 37 - 29 - Label_25 - 529 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - -3fca34e1:15096a78c93:-754d - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - PoolStats_Block16_Size - 1 - - - - true - Text Update - false - false - 0 - - - - 100 - 78 - Text Update_123 - 548 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - -3fca34e1:15096a78c93:-754c - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - PoolStats_Block16_NumCreated - 1 - - - - true - Text Update - false - false - 0 - - - - 100 - 186 - Text Update_124 - 548 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - -3fca34e1:15096a78c93:-754b - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - PoolStats_Block16_NumFree - 1 - - - - true - Text Update - false - false - 0 - - - - 100 - 294 - Text Update_125 - 548 - - - - - - Default - - - - 0 - - 1 - - true - -3fca34e1:15096a78c93:-754a - true - false - 16 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 37 - 29 - Label_26 - 548 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - -3fca34e1:15096a78c93:-753f - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - PoolStats_Block17_Size - 1 - - - - true - Text Update - false - false - 0 - - - - 100 - 78 - Text Update_126 - 567 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - -3fca34e1:15096a78c93:-753e - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - PoolStats_Block17_NumCreated - 1 - - - - true - Text Update - false - false - 0 - - - - 100 - 186 - Text Update_127 - 567 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - -3fca34e1:15096a78c93:-753d - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - PoolStats_Block17_NumFree - 1 - - - - true - Text Update - false - false - 0 - - - - 100 - 294 - Text Update_128 - 567 - - - - - - Default - - - - 0 - - 1 - - true - -3fca34e1:15096a78c93:-753c - true - false - 17 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 37 - 29 - Label_27 - 567 - - - - - - Default - - - \ No newline at end of file diff --git a/tools/commander/workspace_template/Displays/CFE/ES/displays/PerfUtility.opi b/tools/commander/workspace_template/Displays/CFE/ES/displays/PerfUtility.opi deleted file mode 100644 index 0ad3db2fb..000000000 --- a/tools/commander/workspace_template/Displays/CFE/ES/displays/PerfUtility.opi +++ /dev/null @@ -1,9001 +0,0 @@ - - - true - - 45ea5983:1502a6e6386:-7f06 - true - false - - 920 - - true - - 4.0.104.201510200439 - true - Display - - false - -1 - -1 - - - - - 800 - -1 - - 6 - true - -1 - true - - - - - - 0 - - 2 - - true - 2b4f25d5:1502b5812fe:-7f04 - true - false - State - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 98 - 19 - Label_25 - 36 - - - - - - Default - - - - 0 - - 2 - - true - 2b4f25d5:1502b5812fe:-7eef - true - false - Mode - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 98 - 19 - Label_27 - 55 - - - - - - Default - - - - 0 - - 2 - - true - 2b4f25d5:1502b5812fe:-7ee8 - true - false - Trigger Count - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 98 - 19 - Label_28 - 74 - - - - - - Default - - - - 0 - - 2 - - true - 2b4f25d5:1502b5812fe:-7ed0 - true - false - Data Start - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 98 - 258 - Label_31 - 36 - - - - - - Default - - - - 0 - - 2 - - true - 2b4f25d5:1502b5812fe:-7ec9 - true - false - Data End - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 98 - 258 - Label_32 - 55 - - - - - - Default - - - - 0 - - 2 - - true - 2b4f25d5:1502b5812fe:-7ec2 - true - false - Data Count - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 98 - 258 - Label_33 - 74 - - - - - - Default - - - - 0 - - 2 - - true - 2b4f25d5:1502b5812fe:-7ebb - true - false - Data to Write - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 98 - 258 - Label_34 - 93 - - - - - - Default - - - - 0 - - 1 - - true - 2b4f25d5:1502b5812fe:-7d80 - true - false - Performance Utility - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 164 - 12 - Label_38 - 12 - - - - - - Default Bold - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 2b4f25d5:1502b5812fe:-7ca7 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_es/PerfState - 1 - - - - false - Text Update - false - false - 0 - - - - 100 - 133 - Text Update_20 - 36 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 2b4f25d5:1502b5812fe:-7ca2 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_es/PerfMode - 1 - - - - false - Text Update - false - false - 0 - - - - 100 - 133 - Text Update_21 - 55 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 2b4f25d5:1502b5812fe:-7c9d - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_es/PerfTriggerCount - 1 - - - - false - Text Update - false - false - 0 - - - - 100 - 133 - Text Update_22 - 74 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 2b4f25d5:1502b5812fe:-7c8e - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_es/PerfDataStart - 1 - - - - false - Text Update - false - false - 0 - - - - 100 - 372 - Text Update_25 - 36 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 2b4f25d5:1502b5812fe:-7c89 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_es/PerfDataEnd - 1 - - - - false - Text Update - false - false - 0 - - - - 100 - 372 - Text Update_26 - 55 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 2b4f25d5:1502b5812fe:-7c84 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_es/PerfDataCount - 1 - - - - false - Text Update - false - false - 0 - - - - 100 - 372 - Text Update_27 - 74 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 2b4f25d5:1502b5812fe:-7c7f - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_es/PerfDataToWrite - 1 - - - - false - Text Update - false - false - 0 - - - - 100 - 372 - Text Update_28 - 93 - - - - - - Default - - - - false - 0 - false - false - $(pv_name) -$(pv_value) - 0 - - true - -35c7bfc1:1509236a393:-770b - - Start - - false - 25 - 1 - - true - true - false - - - true - - - - - Action Button - false - - - - 69 - 333 - Action Button - 126 - - - - - - - StartPerfCollection.opi - - true - - 8 - - - - - Default - - - - false - 0 - false - false - $(pv_name) -$(pv_value) - 0 - - true - -35c7bfc1:1509236a393:-76fd - - Stop - - false - 25 - 1 - - true - true - false - - - true - - - - - Action Button - false - - - - 69 - 408 - Action Button_1 - 126 - - - - - - - StopPerfCollection.opi - - true - - 8 - - - - - Default - - - - 0 - - - 739 - - 1 - - - - - - - - true - 0 - true - -35c7bfc1:1509236a393:-7209 - - - - - - - - - Default - - 4 - true - - - - 450 - 24 - true - 174 - - - Default - - - true - - true - - - - - - - Tabbed Container - - Default - - - - - true - Tabbed Container - 10 - 3 - - Default - - - - - 1 - - - - 2 - - 4 - - true - true - false - - - true - - - - - 0 - - - true - -35c7bfc1:1509236a393:-7208 - true - false - - 710 - 1 - - true - true - false - - - true - - true - - - - Grouping Container - - - - 448 - 1 - 1 - 1 - - - - - false - true - - Default - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-7493 - - - - - false - - true - 20 - 1 - - true - false - false - - true - loc://FilterRequest29 - - - - - Check Box - false - - - - 22 - 80 - FilterRequest29 - 626 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-76d0 - - - - - false - - true - 20 - 1 - - true - false - false - - true - loc://TriggerRequest2 - - - - - Check Box - false - - - - 22 - 222 - TriggerRequest2 - 109 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-75cb - - - - - false - - true - 20 - 1 - - true - false - false - - true - loc://TriggerRequest15 - - - - - Check Box - false - - - - 22 - 222 - TriggerRequest15 - 358 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-76ae - - - - - false - - true - 20 - 1 - - true - false - false - - true - loc://TriggerRequest4 - - - - - Check Box - false - - - - 22 - 222 - TriggerRequest4 - 147 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-74be - - - - - false - - true - 20 - 1 - - true - false - false - - true - loc://TriggerRequest20 - - - - - Check Box - false - - - - 22 - 222 - TriggerRequest20 - 453 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-749c - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_es/PerfFilter27 - - - - - Check Box - false - - - - 22 - 18 - FilterActual27 - 588 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-766a - - - - - false - - true - 20 - 1 - - true - false - false - - true - loc://TriggerRequest8 - - - - - Check Box - false - - - - 22 - 222 - TriggerRequest8 - 223 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-74a1 - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_es/PerfFilter26 - - - - - Check Box - false - - - - 22 - 18 - FilterActual26 - 569 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-74bf - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_es/PerfFilter20 - - - - - Check Box - false - - - - 22 - 18 - FilterActual20 - 453 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-75cf - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_es/PerfTrigger14 - - - - - Check Box - false - - - - 22 - 160 - TriggerActual14 - 339 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-74aa - - - - - false - - true - 20 - 1 - - true - false - false - - true - loc://TriggerRequest24 - - - - - Check Box - false - - - - 22 - 222 - TriggerRequest24 - 529 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-75cc - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_es/PerfFilter15 - - - - - Check Box - false - - - - 22 - 18 - FilterActual15 - 358 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-74b9 - - - - - false - - true - 20 - 1 - - true - false - false - - true - loc://TriggerRequest21 - - - - - Check Box - false - - - - 22 - 222 - TriggerRequest21 - 472 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-74c8 - - - - - false - - true - 20 - 1 - - true - false - false - - true - loc://TriggerRequest18 - - - - - Check Box - false - - - - 22 - 222 - TriggerRequest18 - 415 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-75d1 - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_es/PerfFilter14 - - - - - Check Box - false - - - - 22 - 18 - FilterActual14 - 339 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-74b8 - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_es/PerfTrigger21 - - - - - Check Box - false - - - - 22 - 160 - TriggerActual21 - 472 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-74ca - - - - - false - - true - 20 - 1 - - true - false - false - - true - loc://FilterRequest18 - - - - - Check Box - false - - - - 22 - 80 - FilterRequest18 - 415 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-748b - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_es/PerfTrigger30 - - - - - Check Box - false - - - - 22 - 160 - TriggerActual30 - 645 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-748e - - - - - false - - true - 20 - 1 - - true - false - false - - true - loc://FilterRequest30 - - - - - Check Box - false - - - - 22 - 80 - FilterRequest30 - 645 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-74a2 - - - - - false - - true - 20 - 1 - - true - false - false - - true - loc://FilterRequest26 - - - - - Check Box - false - - - - 22 - 80 - FilterRequest26 - 569 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-76be - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_es/PerfTrigger3 - - - - - Check Box - false - - - - 22 - 160 - TriggerActual3 - 128 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-7482 - - - - - false - - true - 20 - 1 - - true - false - false - - true - loc://TriggerRequest32 - - - - - Check Box - false - - - - 22 - 222 - TriggerRequest32 - 683 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-74cd - - - - - false - - true - 20 - 1 - - true - false - false - - true - loc://TriggerRequest17 - - - - - Check Box - false - - - - 22 - 222 - TriggerRequest17 - 396 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-7492 - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_es/PerfFilter29 - - - - - Check Box - false - - - - 22 - 18 - FilterActual29 - 626 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-75ca - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_es/PerfTrigger15 - - - - - Check Box - false - - - - 22 - 160 - TriggerActual15 - 358 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-7c12 - - - - - false - - true - 20 - 1 - - true - false - false - - true - loc://FilterRequest1 - - - - - Check Box - false - - - - 22 - 80 - FilterRequest1 - 90 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-7c0d - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_es/PerfFilter1 - - - - - Check Box - false - - - - 22 - 18 - FilterActual1 - 90 - - - - - - Default - - - - 0 - - 0 - - true - -35c7bfc1:1509236a393:-7769 - true - false - Performance ID 1 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 163 - 282 - Label_46 - 90 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-74b6 - - - - - false - - true - 20 - 1 - - true - false - false - - true - loc://FilterRequest22 - - - - - Check Box - false - - - - 22 - 80 - FilterRequest22 - 491 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-75d2 - - - - - false - - true - 20 - 1 - - true - false - false - - true - loc://FilterRequest14 - - - - - Check Box - false - - - - 22 - 80 - FilterRequest14 - 339 - - - - - - Default - - - - 0 - - 0 - - true - -35c7bfc1:1509236a393:-749e - true - false - Performance ID 26 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 163 - 282 - Label_71 - 569 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-7483 - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_es/PerfFilter32 - - - - - Check Box - false - - - - 22 - 18 - FilterActual32 - 683 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-74c2 - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_es/PerfTrigger19 - - - - - Check Box - false - - - - 22 - 160 - TriggerActual19 - 434 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-74ba - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_es/PerfFilter22 - - - - - Check Box - false - - - - 22 - 18 - FilterActual21 - 472 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-74ac - - - - - false - - true - 20 - 1 - - true - false - false - - true - loc://FilterRequest24 - - - - - Check Box - false - - - - 22 - 80 - FilterRequest24 - 529 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-77c2 - - - - - false - - true - 20 - 1 - - true - false - false - - true - loc://TriggerRequest1 - - - - - Check Box - false - - - - 22 - 222 - TriggerRequest1 - 90 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-75ea - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_es/PerfFilter9 - - - - - Check Box - false - - - - 22 - 18 - FilterActual9 - 244 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-74ce - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_es/PerfFilter17 - - - - - Check Box - false - - - - 22 - 18 - FilterActual17 - 396 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-74bd - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_es/PerfTrigger20 - - - - - Check Box - false - - - - 22 - 160 - TriggerActual20 - 453 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-767b - - - - - false - - true - 20 - 1 - - true - false - false - - true - loc://TriggerRequest7 - - - - - Check Box - false - - - - 22 - 222 - TriggerRequest7 - 204 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-76d2 - - - - - false - - true - 20 - 1 - - true - false - false - - true - loc://FilterRequest2 - - - - - Check Box - false - - - - 22 - 80 - FilterRequest2 - 109 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-768c - - - - - false - - true - 20 - 1 - - true - false - false - - true - loc://TriggerRequest6 - - - - - Check Box - false - - - - 22 - 222 - TriggerRequest6 - 185 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-75db - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_es/PerfFilter12 - - - - - Check Box - false - - - - 22 - 18 - FilterActual12 - 301 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-74c4 - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_es/PerfFilter19 - - - - - Check Box - false - - - - 22 - 18 - FilterActual19 - 434 - - - - - - Default - - - - 0 - - 0 - - true - -35c7bfc1:1509236a393:-76ac - true - false - Performance ID 4 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 163 - 282 - Label_49 - 147 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-75e3 - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_es/PerfTrigger10 - - - - - Check Box - false - - - - 22 - 160 - TriggerActual10 - 263 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-75e1 - - - - - false - - true - 20 - 1 - - true - false - false - - true - loc://FilterRequest11 - - - - - Check Box - false - - - - 22 - 80 - FilterRequest11 - 282 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-767a - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_es/PerfTrigger7 - - - - - Check Box - false - - - - 22 - 160 - TriggerActual7 - 204 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-749a - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_es/PerfTrigger27 - - - - - Check Box - false - - - - 22 - 160 - TriggerActual27 - 588 - - - - - - Default - - - - 0 - - 0 - - true - -35c7bfc1:1509236a393:-7485 - true - false - Performance ID 31 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 163 - 282 - Label_76 - 664 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-769d - - - - - false - - true - 20 - 1 - - true - false - false - - true - loc://TriggerRequest5 - - - - - Check Box - false - - - - 22 - 222 - TriggerRequest5 - 166 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-75e0 - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_es/PerfFilter11 - - - - - Check Box - false - - - - 22 - 18 - FilterActual11 - 282 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-748d - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_es/PerfFilter30 - - - - - Check Box - false - - - - 22 - 18 - FilterActual30 - 645 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-768e - - - - - false - - true - 20 - 1 - - true - false - false - - true - loc://FilterRequest6 - - - - - Check Box - false - - - - 22 - 80 - FilterRequest6 - 185 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-75dc - - - - - false - - true - 20 - 1 - - true - false - false - - true - loc://FilterRequest12 - - - - - Check Box - false - - - - 22 - 80 - FilterRequest12 - 301 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-75cd - - - - - false - - true - 20 - 1 - - true - false - false - - true - loc://FilterRequest15 - - - - - Check Box - false - - - - 22 - 80 - FilterRequest15 - 358 - - - - - - Default - - - - 0 - - 0 - - true - -35c7bfc1:1509236a393:-7679 - true - false - Performance ID 7 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 163 - 282 - Label_52 - 204 - - - - - - Default - - - - 0 - - 0 - - true - -35c7bfc1:1509236a393:-75dd - true - false - Performance ID 11 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 163 - 282 - Label_56 - 282 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-748c - - - - - false - - true - 20 - 1 - - true - false - false - - true - loc://TriggerRequest30 - - - - - Check Box - false - - - - 22 - 222 - TriggerRequest30 - 645 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-75e4 - - - - - false - - true - 20 - 1 - - true - false - false - - true - loc://TriggerRequest10 - - - - - Check Box - false - - - - 22 - 222 - TriggerRequest10 - 263 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-74af - - - - - false - - true - 20 - 1 - - true - false - false - - true - loc://TriggerRequest23 - - - - - Check Box - false - - - - 22 - 222 - TriggerRequest23 - 510 - - - - - - Default - - - - 0 - - 0 - - true - -35c7bfc1:1509236a393:-76bd - true - false - Performance ID 3 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 163 - 282 - Label_48 - 128 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-75d0 - - - - - false - - true - 20 - 1 - - true - false - false - - true - loc://TriggerRequest14 - - - - - Check Box - false - - - - 22 - 222 - TriggerRequest14 - 339 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-7495 - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_es/PerfTrigger28 - - - - - Check Box - false - - - - 22 - 160 - TriggerActual28 - 607 - - - - - - Default - - - - 0 - - 0 - - true - -35c7bfc1:1509236a393:-74cb - true - false - Performance ID 17 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 163 - 282 - Label_62 - 396 - - - - - - Default - - - - 0 - - 0 - - true - -35c7bfc1:1509236a393:-76ce - true - false - Performance ID 2 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 163 - 282 - Label_47 - 109 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-75d5 - - - - - false - - true - 20 - 1 - - true - false - false - - true - loc://TriggerRequest13 - - - - - Check Box - false - - - - 22 - 222 - TriggerRequest13 - 320 - - - - - - Default - - - - 0 - - 0 - - true - -35c7bfc1:1509236a393:-74a8 - true - false - Performance ID 24 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 163 - 282 - Label_69 - 529 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-7491 - - - - - false - - true - 20 - 1 - - true - false - false - - true - loc://TriggerRequest29 - - - - - Check Box - false - - - - 22 - 222 - TriggerRequest29 - 626 - - - - - - Default - - - - 0 - - 0 - - true - -35c7bfc1:1509236a393:-74c1 - true - false - Performance ID 19 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 163 - 282 - Label_64 - 434 - - - - - - Default - - - - 0 - - 0 - - true - -35c7bfc1:1509236a393:-748a - true - false - Performance ID 30 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 163 - 282 - Label_75 - 645 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-76b0 - - - - - false - - true - 20 - 1 - - true - false - false - - true - loc://FilterRequest4 - - - - - Check Box - false - - - - 22 - 80 - FilterRequest4 - 147 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-769e - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_es/PerfFilter5 - - - - - Check Box - false - - - - 22 - 18 - FilterActual5 - 166 - - - - - - Default - - - - 0 - - 0 - - true - -35c7bfc1:1509236a393:-769b - true - false - Performance ID 5 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 163 - 282 - Label_50 - 166 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-768d - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_es/PerfFilter6 - - - - - Check Box - false - - - - 22 - 18 - FilterActual6 - 185 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-75c8 - - - - - false - - true - 20 - 1 - - true - false - false - - true - loc://FilterRequest16 - - - - - Check Box - false - - - - 22 - 80 - FilterRequest16 - 377 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-7497 - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_es/PerfFilter28 - - - - - Check Box - false - - - - 22 - 18 - FilterActual28 - 607 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-767d - - - - - false - - true - 20 - 1 - - true - false - false - - true - loc://FilterRequest7 - - - - - Check Box - false - - - - 22 - 80 - FilterRequest7 - 204 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-75c6 - - - - - false - - true - 20 - 1 - - true - false - false - - true - loc://TriggerRequest16 - - - - - Check Box - false - - - - 22 - 222 - TriggerRequest16 - 377 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-75e5 - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_es/PerfFilter10 - - - - - Check Box - false - - - - 22 - 18 - FilterActual10 - 263 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-7487 - - - - - false - - true - 20 - 1 - - true - false - false - - true - loc://TriggerRequest31 - - - - - Check Box - false - - - - 22 - 222 - TriggerRequest31 - 664 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-74a6 - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_es/PerfFilter25 - - - - - Check Box - false - - - - 22 - 18 - FilterActual25 - 550 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-74bb - - - - - false - - true - 20 - 1 - - true - false - false - - true - loc://FilterRequest21 - - - - - Check Box - false - - - - 22 - 80 - FilterRequest21 - 472 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-74b4 - - - - - false - - true - 20 - 1 - - true - false - false - - true - loc://TriggerRequest22 - - - - - Check Box - false - - - - 22 - 222 - TriggerRequest22 - 491 - - - - - - Default - - - - 0 - - 0 - - true - -35c7bfc1:1509236a393:-75c9 - true - false - Performance ID 15 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 163 - 282 - Label_60 - 358 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-75de - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_es/PerfTrigger11 - - - - - Check Box - false - - - - 22 - 160 - TriggerActual11 - 282 - - - - - - Default - - - - 0 - - 0 - - true - -35c7bfc1:1509236a393:-75ce - true - false - Performance ID 14 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 163 - 282 - Label_59 - 339 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-7488 - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_es/PerfFilter31 - - - - - Check Box - false - - - - 22 - 18 - FilterActual31 - 664 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-74b0 - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_es/PerfFilter23 - - - - - Check Box - false - - - - 22 - 18 - FilterActual23 - 510 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-76c1 - - - - - false - - true - 20 - 1 - - true - false - false - - true - loc://FilterRequest3 - - - - - Check Box - false - - - - 22 - 80 - FilterRequest3 - 128 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-76af - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_es/PerfFilter4 - - - - - Check Box - false - - - - 22 - 18 - FilterActual4 - 147 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-749d - - - - - false - - true - 20 - 1 - - true - false - false - - true - loc://FilterRequest27 - - - - - Check Box - false - - - - 22 - 80 - FilterRequest27 - 588 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-74cf - - - - - false - - true - 20 - 1 - - true - false - false - - true - loc://FilterRequest17 - - - - - Check Box - false - - - - 22 - 80 - FilterRequest17 - 396 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-74a0 - - - - - false - - true - 20 - 1 - - true - false - false - - true - loc://TriggerRequest26 - - - - - Check Box - false - - - - 22 - 222 - TriggerRequest26 - 569 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-76bf - - - - - false - - true - 20 - 1 - - true - false - false - - true - loc://TriggerRequest3 - - - - - Check Box - false - - - - 22 - 222 - TriggerRequest3 - 128 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-74a7 - - - - - false - - true - 20 - 1 - - true - false - false - - true - loc://FilterRequest25 - - - - - Check Box - false - - - - 22 - 80 - FilterRequest25 - 550 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-74a5 - - - - - false - - true - 20 - 1 - - true - false - false - - true - loc://TriggerRequest25 - - - - - Check Box - false - - - - 22 - 222 - TriggerRequest25 - 550 - - - - - - Default - - - - 0 - - 0 - - true - -35c7bfc1:1509236a393:-74c6 - true - false - Performance ID 18 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 163 - 282 - Label_63 - 415 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-74c3 - - - - - false - - true - 20 - 1 - - true - false - false - - true - loc://TriggerRequest19 - - - - - Check Box - false - - - - 22 - 222 - TriggerRequest19 - 434 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-75df - - - - - false - - true - 20 - 1 - - true - false - false - - true - loc://TriggerRequest11 - - - - - Check Box - false - - - - 22 - 222 - TriggerRequest11 - 282 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-74a4 - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_es/PerfTrigger25 - - - - - Check Box - false - - - - 22 - 160 - TriggerActual25 - 550 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-74cc - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_es/PerfTrigger17 - - - - - Check Box - false - - - - 22 - 160 - TriggerActual17 - 396 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-74ae - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_es/PerfTrigger23 - - - - - Check Box - false - - - - 22 - 160 - TriggerActual23 - 510 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-75eb - - - - - false - - true - 20 - 1 - - true - false - false - - true - loc://FilterRequest9 - - - - - Check Box - false - - - - 22 - 80 - FilterRequest9 - 244 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-7489 - - - - - false - - true - 20 - 1 - - true - false - false - - true - loc://FilterRequest31 - - - - - Check Box - false - - - - 22 - 80 - FilterRequest31 - 664 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-74ab - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_es/PerfFilter24 - - - - - Check Box - false - - - - 22 - 18 - FilterActual24 - 529 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-769c - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_es/PerfTrigger5 - - - - - Check Box - false - - - - 22 - 160 - TriggerActual5 - 166 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-769f - - - - - false - - true - 20 - 1 - - true - false - false - - true - loc://FilterRequest5 - - - - - Check Box - false - - - - 22 - 80 - FilterRequest5 - 166 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-76c0 - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_es/PerfFilter3 - - - - - Check Box - false - - - - 22 - 18 - FilterActual3 - 128 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-74c7 - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_es/PerfTrigger18 - - - - - Check Box - false - - - - 22 - 160 - TriggerActual18 - 415 - - - - - - Default - - - - 0 - - 0 - - true - -35c7bfc1:1509236a393:-7668 - true - false - Performance ID 8 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 163 - 282 - Label_53 - 223 - - - - - - Default - - - - 0 - - 0 - - true - -35c7bfc1:1509236a393:-75c4 - true - false - Performance ID 16 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 163 - 282 - Label_61 - 377 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-749b - - - - - false - - true - 20 - 1 - - true - false - false - - true - loc://TriggerRequest27 - - - - - Check Box - false - - - - 22 - 222 - TriggerRequest27 - 588 - - - - - - Default - - - - 0 - - 0 - - true - -35c7bfc1:1509236a393:-75e7 - true - false - Performance ID 9 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 163 - 282 - Label_54 - 244 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-75e8 - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_es/PerfTrigger9 - - - - - Check Box - false - - - - 22 - 160 - TriggerActual9 - 244 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-75d4 - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_es/PerfTrigger13 - - - - - Check Box - false - - - - 22 - 160 - TriggerActual13 - 320 - - - - - - Default - - - - 0 - - 0 - - true - -35c7bfc1:1509236a393:-74b7 - true - false - Performance ID 21 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 163 - 282 - Label_66 - 472 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-7484 - - - - - false - - true - 20 - 1 - - true - false - false - - true - loc://FilterRequest32 - - - - - Check Box - false - - - - 22 - 80 - FilterRequest32 - 683 - - - - - - Default - - - - 0 - - 0 - - true - -35c7bfc1:1509236a393:-75d3 - true - false - Performance ID 13 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 163 - 282 - Label_58 - 320 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-75c7 - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_es/PerfFilter16 - - - - - Check Box - false - - - - 22 - 18 - FilterActual16 - 377 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-74b5 - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_es/PerfFilter22 - - - - - Check Box - false - - - - 22 - 18 - FilterActual22 - 491 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-749f - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_es/PerfTrigger26 - - - - - Check Box - false - - - - 22 - 160 - TriggerActual26 - 569 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-76ad - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_es/PerfTrigger4 - - - - - Check Box - false - - - - 22 - 160 - TriggerActual4 - 147 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-74a9 - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_es/PerfTrigger24 - - - - - Check Box - false - - - - 22 - 160 - TriggerActual24 - 529 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-74b1 - - - - - false - - true - 20 - 1 - - true - false - false - - true - loc://FilterRequest23 - - - - - Check Box - false - - - - 22 - 80 - FilterRequest23 - 510 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-75d6 - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_es/PerfFilter13 - - - - - Check Box - false - - - - 22 - 18 - FilterActual13 - 320 - - - - - - Default - - - - 0 - - 0 - - true - -35c7bfc1:1509236a393:-74b2 - true - false - Performance ID 22 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 163 - 282 - Label_67 - 491 - - - - - - Default - - - - 0 - - 0 - - true - -35c7bfc1:1509236a393:-74ad - true - false - Performance ID 23 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 163 - 282 - Label_68 - 510 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-766c - - - - - false - - true - 20 - 1 - - true - false - false - - true - loc://FilterRequest8 - - - - - Check Box - false - - - - 22 - 80 - FilterRequest8 - 223 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-75c5 - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_es/PerfTrigger16 - - - - - Check Box - false - - - - 22 - 160 - TriggerActual16 - 377 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-74b3 - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_es/PerfTrigger22 - - - - - Check Box - false - - - - 22 - 160 - TriggerActual22 - 491 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-7498 - - - - - false - - true - 20 - 1 - - true - false - false - - true - loc://FilterRequest28 - - - - - Check Box - false - - - - 22 - 80 - FilterRequest28 - 607 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-77c1 - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_es/PerfTrigger1 - - - - - Check Box - false - - - - 22 - 160 - TriggerActual1 - 90 - - - - - - Default - - - - 0 - - 0 - - true - -35c7bfc1:1509236a393:-74a3 - true - false - Performance ID 25 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 163 - 282 - Label_70 - 550 - - - - - - Default - - - - 0 - - 0 - - true - -35c7bfc1:1509236a393:-7499 - true - false - Performance ID 27 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 163 - 282 - Label_72 - 588 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-767c - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_es/PerfFilter7 - - - - - Check Box - false - - - - 22 - 18 - FilterActual7 - 204 - - - - - - Default - - - - 0 - - 0 - - true - -35c7bfc1:1509236a393:-768a - true - false - Performance ID 6 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 163 - 282 - Label_51 - 185 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-7481 - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_es/PerfTrigger32 - - - - - Check Box - false - - - - 22 - 160 - TriggerActual32 - 683 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-74c0 - - - - - false - - true - 20 - 1 - - true - false - false - - true - loc://FilterRequest20 - - - - - Check Box - false - - - - 22 - 80 - FilterRequest20 - 453 - - - - - - Default - - - - 0 - - 0 - - true - -35c7bfc1:1509236a393:-7494 - true - false - Performance ID 28 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 163 - 282 - Label_73 - 607 - - - - - - Default - - - - 0 - - 0 - - true - -35c7bfc1:1509236a393:-75e2 - true - false - Performance ID 10 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 163 - 282 - Label_55 - 263 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-75d9 - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_es/PerfTrigger12 - - - - - Check Box - false - - - - 22 - 160 - TriggerActual12 - 301 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-76d1 - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_es/PerfFilter2 - - - - - Check Box - false - - - - 22 - 18 - FilterActual2 - 109 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-7669 - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_es/PerfTrigger8 - - - - - Check Box - false - - - - 22 - 160 - TriggerActual8 - 223 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-7496 - - - - - false - - true - 20 - 1 - - true - false - false - - true - loc://TriggerRequest28 - - - - - Check Box - false - - - - 22 - 222 - TriggerRequest28 - 607 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-7490 - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_es/PerfTrigger29 - - - - - Check Box - false - - - - 22 - 160 - TriggerActual29 - 626 - - - - - - Default - - - - 0 - - 0 - - true - -35c7bfc1:1509236a393:-748f - true - false - Performance ID 29 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 163 - 282 - Label_74 - 626 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-74c5 - - - - - false - - true - 20 - 1 - - true - false - false - - true - loc://FilterRequest19 - - - - - Check Box - false - - - - 22 - 80 - FilterRequest19 - 434 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-7486 - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_es/PerfTrigger31 - - - - - Check Box - false - - - - 22 - 160 - TriggerActual31 - 664 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-76cf - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_es/PerfTrigger2 - - - - - Check Box - false - - - - 22 - 160 - TriggerActual2 - 109 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-766b - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_es/PerfFilter8 - - - - - Check Box - false - - - - 22 - 18 - FilterActual8 - 223 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-75da - - - - - false - - true - 20 - 1 - - true - false - false - - true - loc://TriggerRequest12 - - - - - Check Box - false - - - - 22 - 222 - TriggerRequest12 - 301 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-75d7 - - - - - false - - true - 20 - 1 - - true - false - false - - true - loc://FilterRequest13 - - - - - Check Box - false - - - - 22 - 80 - FilterRequest13 - 320 - - - - - - Default - - - - 0 - - 0 - - true - -35c7bfc1:1509236a393:-75d8 - true - false - Performance ID 12 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 163 - 282 - Label_57 - 301 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-768b - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_es/PerfTrigger6 - - - - - Check Box - false - - - - 22 - 160 - TriggerActual6 - 185 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-75e6 - - - - - false - - true - 20 - 1 - - true - false - false - - true - loc://FilterRequest10 - - - - - Check Box - false - - - - 22 - 80 - FilterRequest10 - 263 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-74c9 - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_es/PerfFilter18 - - - - - Check Box - false - - - - 22 - 18 - FilterActual18 - 415 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-75e9 - - - - - false - - true - 20 - 1 - - true - false - false - - true - loc://TriggerRequest9 - - - - - Check Box - false - - - - 22 - 222 - TriggerRequest9 - 244 - - - - - - Default - - - - 0 - - 0 - - true - -35c7bfc1:1509236a393:-74bc - true - false - Performance ID 20 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 163 - 282 - Label_65 - 453 - - - - - - Default - - - - 0 - - 0 - - true - -35c7bfc1:1509236a393:-7480 - true - false - Performance ID 32 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 163 - 282 - Label_77 - 683 - - - - - - Default - - - - 0 - - 1 - - true - -35c7bfc1:1509236a393:-77bf - true - false - Actual - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 50 - 143 - Label_44 - 49 - - - - - - Default - - - - 0 - - 1 - - true - -35c7bfc1:1509236a393:-77dc - true - false - Request - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 50 - 67 - Label_42 - 49 - - - - - - Default - - - - 0 - - 1 - - true - -35c7bfc1:1509236a393:-77be - true - false - Request - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 50 - 209 - Label_45 - 49 - - - - - - Default - - - - 0 - - 1 - - true - -35c7bfc1:1509236a393:-77e6 - true - false - Actual - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 50 - 1 - Label_41 - 49 - - - - - - Default - - - - 0 - - 1 - - true - -35c7bfc1:1509236a393:-77c0 - true - false - Trigger - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 50 - 174 - Label_43 - 30 - - - - - - Default - - - - 0 - - 1 - - true - -35c7bfc1:1509236a393:-7836 - true - false - Filter - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 50 - 32 - Label - 30 - - - - - - Default - - - - false - 0 - false - false - $(pv_name) -$(pv_value) - 0 - - true - -35c7bfc1:1509236a393:-76f0 - - Set - - false - 25 - 1 - - true - true - false - - - true - - - - - Action Button - false - - - - 51 - 4 - Action Button_2 - 6 - - - - - - - - - true - - - - - Default - - - - false - 0 - false - false - $(pv_name) -$(pv_value) - 0 - - true - -35c7bfc1:1509236a393:-76e6 - - Set - - false - 25 - 1 - - true - true - false - - - true - - - - - Action Button - false - - - - 51 - 146 - Action Button_3 - 6 - - - - - - - - - true - - - - - Default - - - - false - 0 - false - false - $(pv_name) -$(pv_value) - 0 - - true - -35c7bfc1:1509236a393:-6e6e - - Reflect - - false - 25 - 1 - - true - true - false - - - true - - - - - Action Button - false - - - - 51 - 66 - Action Button_2 - 6 - - - - - - - - - true - - - - - Default - - - - false - 0 - false - false - $(pv_name) -$(pv_value) - 0 - - true - -35c7bfc1:1509236a393:-6e60 - - Reflect - - false - 25 - 1 - - true - true - false - - - true - - - - - Action Button - false - - - - 51 - 208 - Action Button_2 - 6 - - - - - - - - - true - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-4be4 - - - - - false - - - EmbeddedScript - - loc://FilterRequestAll1 - - - true - 20 - 1 - - true - false - false - - true - loc://FilterRequestAll1 - - - - - Check Box - false - - - - 22 - 80 - FilterRequestAll1 - 68 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-4bdf - - - - - false - - - EmbeddedScript - - loc://TriggerRequestAll1 - - - true - 20 - 1 - - true - false - false - - true - loc://TriggerRequestAll1 - - - - - Check Box - false - - - - 22 - 222 - TriggerRequestAll1 - 68 - - - - - - Default - - - - - 0 - - - true - -35c7bfc1:1509236a393:-7207 - true - false - - 710 - 1 - - true - true - false - - - true - - false - - - - Grouping Container - - - - 448 - 1 - 2 - 1 - - - - - false - true - - Default - - - - 0 - - - true - -35c7bfc1:1509236a393:-7206 - true - false - - 710 - 1 - - true - true - false - - - true - - false - - - - Grouping Container - - - - 448 - 1 - 3 - 1 - - - - - false - true - - Default - - - - 0 - - - true - -35c7bfc1:1509236a393:-7205 - true - false - - 710 - 1 - - true - true - false - - - true - - false - - - - Grouping Container - - - - 448 - 1 - 4 - 1 - - - - - false - true - - Default - - - - \ No newline at end of file diff --git a/tools/commander/workspace_template/Displays/CFE/ES/displays/QueryApp.opi b/tools/commander/workspace_template/Displays/CFE/ES/displays/QueryApp.opi deleted file mode 100644 index 4248cf247..000000000 --- a/tools/commander/workspace_template/Displays/CFE/ES/displays/QueryApp.opi +++ /dev/null @@ -1,197 +0,0 @@ - - - true - - 72a2bf2b:1508717c835:-7d33 - true - false - - 60 - - true - - 4.0.104.201510200439 - true - Display - - false - -1 - -1 - - - - - 300 - -1 - - 6 - true - -1 - true - - - - - - false - 0 - false - false - $(pv_name) -$(pv_value) - 0 - - true - 72a2bf2b:1508717c835:-7cf7 - - Query - - false - 24 - 1 - - true - true - false - - - true - - - - - Action Button - false - - - - 61 - 198 - Action Button - 17 - - - - - - - ../scripts/QueryOneApp.js - - true - - - - - Default - - - - 0 - - 2 - - true - 72a2bf2b:1508717c835:-7c63 - true - false - Name - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 50 - 12 - Label_3 - 19 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - true - -3fca34e1:15096a78c93:-79bc - - - true - 29 - 1 - - true - false - false - - false - true - loc://AppName - - - - Combo - false - - - - 115 - 72 - inAppName - 14 - - - - - - CF - CI - CS - DS - EIM - HS - FM - HK - LC - MM - SCH - TO - SBN - CFE_ES - CFE_EVS - CFE_SB - CFE_TBL - CFE_TIME - - - Default - - - \ No newline at end of file diff --git a/tools/commander/workspace_template/Displays/CFE/ES/displays/RestartApp.opi b/tools/commander/workspace_template/Displays/CFE/ES/displays/RestartApp.opi deleted file mode 100644 index 2eab592d1..000000000 --- a/tools/commander/workspace_template/Displays/CFE/ES/displays/RestartApp.opi +++ /dev/null @@ -1,233 +0,0 @@ - - - true - - 72a2bf2b:1508717c835:-7839 - true - false - - 130 - - true - - 4.0.104.201510200439 - true - Display - - false - -1 - -1 - - - - - 300 - -1 - - 6 - true - -1 - true - - - - - - false - 0 - false - false - $(pv_name) -$(pv_value) - 0 - - true - 72a2bf2b:1508717c835:-77e3 - - Restart - - false - 25 - 1 - - true - true - false - - - true - - - - - Action Button - false - - - - 73 - 114 - Action Button - 90 - - - - - - - ../scripts/RestartApp.js - - true - - - - - Default - - - - 0 - - 2 - - true - 72a2bf2b:1508717c835:-772d - true - false - App Name - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 80 - 24 - Label - 48 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - true - 72a2bf2b:1508717c835:-76fa - - - true - 29 - 1 - - true - false - false - - false - true - loc://AppName - - - - Combo - false - - - - 157 - 114 - inAppName - 43 - - - - - - CF - CI - CS - DS - EIM - HS - FM - HK - LC - MM - SCH - TO - SBN - - - Default - - - - 0 - - 1 - - true - 72a2bf2b:1508717c835:-76c0 - true - false - Restart Application - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 231 - 40 - Label_1 - 15 - - - - - - Default - - - \ No newline at end of file diff --git a/tools/commander/workspace_template/Displays/CFE/ES/displays/SetMaxPRCount.opi b/tools/commander/workspace_template/Displays/CFE/ES/displays/SetMaxPRCount.opi deleted file mode 100644 index 267279381..000000000 --- a/tools/commander/workspace_template/Displays/CFE/ES/displays/SetMaxPRCount.opi +++ /dev/null @@ -1,230 +0,0 @@ - - - true - - 72a2bf2b:1508717c835:-7839 - true - false - - 130 - - true - - 4.0.104.201510200439 - true - Display - - false - -1 - -1 - - - - - 300 - -1 - - 6 - true - -1 - true - - - - - - false - 0 - false - false - $(pv_name) -$(pv_value) - 0 - - true - 72a2bf2b:1508717c835:-77e3 - - Set - - false - 25 - 1 - - true - true - false - - - true - - - - - Action Button - false - - - - 73 - 114 - Action Button - 90 - - - - - - - ../scripts/RestartApp.js - - true - - - - - Default - - - - 0 - - 2 - - true - 72a2bf2b:1508717c835:-772d - true - false - Max Resets - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 80 - 24 - Label - 48 - - - - - - Default - - - - 0 - false - false - 3 - $(pv_name) -$(pv_value) - 1 - - true - 72a2bf2b:1508717c835:-76fa - false - - - false - true - 29 - 1 - - true - false - false - - true - loc://MaxResets - 1 - 0 - false - - - - false - Spinner - 1.0 - false - true - - - - 10.0 - 157 - 114 - inMaxResets - 43 - 1.7976931348623157E308 - - - - - -1.7976931348623157E308 - - Default - - - - 0 - - 1 - - true - 72a2bf2b:1508717c835:-76c0 - true - false - Set Maximum Processor Resets - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 231 - 40 - Label_1 - 15 - - - - - - Default - - - \ No newline at end of file diff --git a/tools/commander/workspace_template/Displays/CFE/ES/displays/SetSysLogMode.opi b/tools/commander/workspace_template/Displays/CFE/ES/displays/SetSysLogMode.opi deleted file mode 100644 index 0347d734e..000000000 --- a/tools/commander/workspace_template/Displays/CFE/ES/displays/SetSysLogMode.opi +++ /dev/null @@ -1,227 +0,0 @@ - - - true - - 72a2bf2b:1508717c835:-7839 - true - false - - 130 - - true - - 4.0.104.201510200439 - true - Display - - false - -1 - -1 - - - - - 300 - -1 - - 6 - true - -1 - true - - - - - - false - 0 - false - false - $(pv_name) -$(pv_value) - 0 - - true - 72a2bf2b:1508717c835:-77e3 - - Set - - false - 25 - 1 - - true - true - false - - - true - - - - - Action Button - false - - - - 73 - 114 - Action Button - 90 - - - - - - - ../scripts/RestartApp.js - - true - - - - - Default - - - - 0 - - 2 - - true - 72a2bf2b:1508717c835:-772d - true - false - App Name - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 80 - 24 - Label - 48 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - true - 72a2bf2b:1508717c835:-76fa - - - true - 29 - 1 - - true - false - false - - false - true - loc://Mode - - - - Combo - false - - - - 157 - 114 - inMode - 43 - - - - - - OVERWRITE - DISCARD - - - Default - - - - 0 - - 1 - - true - 72a2bf2b:1508717c835:-76c0 - true - false - Set SysLog Mode - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 231 - 40 - Label_1 - 15 - - - - - - Default - - - \ No newline at end of file diff --git a/tools/commander/workspace_template/Displays/CFE/ES/displays/StartApp.opi b/tools/commander/workspace_template/Displays/CFE/ES/displays/StartApp.opi deleted file mode 100644 index c604bfdff..000000000 --- a/tools/commander/workspace_template/Displays/CFE/ES/displays/StartApp.opi +++ /dev/null @@ -1,717 +0,0 @@ - - - true - - 72a2bf2b:1508717c835:-7839 - true - false - - 280 - - true - - 4.0.104.201510200439 - true - Display - - false - -1 - -1 - - - - - 300 - -1 - - 6 - true - -1 - true - - - - - - false - 0 - false - false - $(pv_name) -$(pv_value) - 0 - - true - 72a2bf2b:1508717c835:-77e3 - - Start - - false - 25 - 1 - - true - true - false - - - true - - - - - Action Button - false - - - - 73 - 161 - Action Button - 240 - - - - - - - ../scripts/RestartApp.js - - true - - - - - Default - - - - 0 - - 2 - - true - 72a2bf2b:1508717c835:-772d - true - false - App Name - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 80 - 29 - Label - 53 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - true - 72a2bf2b:1508717c835:-76fa - - - true - 29 - 1 - - true - false - false - - false - true - loc://AppName - - - - Combo - false - - - - 157 - 119 - inAppName - 48 - - - - - - CF - CI - CS - DS - EIM - HS - FM - HK - LC - MM - SCH - TO - SBN - - - Default - - - - 0 - - 1 - - true - 72a2bf2b:1508717c835:-76c0 - true - false - Start Application - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 231 - 82 - Label_1 - 12 - - - - - - Default - - - - 0 - - 2 - - true - 72a2bf2b:1508717c835:-734b - true - false - Entry Point - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 80 - 29 - Label_2 - 79 - - - - - - Default - - - - false - 0 - $(pv_name) -$(pv_value) - 0 - - - false - - 0.0 - true - 25 - false - 1 - true - - 0 - - - - true - Text Input - - inEntryPoint - - - 3 - false - true - 72a2bf2b:1508717c835:-7345 - false - - false - - true - true - false - - false - 0 - false - - - - 152 - 122 - 76 - 1.7976931348623157E308 - - - - -1.7976931348623157E308 - - Default - - - - 0 - - 2 - - true - 72a2bf2b:1508717c835:-7338 - true - false - File Name - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 80 - 27 - Label_3 - 110 - - - - - - Default - - - - false - 0 - $(pv_name) -$(pv_value) - 0 - - - false - - 0.0 - true - 25 - false - 1 - true - - 0 - - - - true - Text Input - - inFileName - - - 3 - false - true - 72a2bf2b:1508717c835:-7337 - false - - false - - true - true - false - - false - 0 - false - - - - 152 - 122 - 107 - 1.7976931348623157E308 - - - - -1.7976931348623157E308 - - Default - - - - 0 - - 2 - - true - 72a2bf2b:1508717c835:-7326 - true - false - Stack Size - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 80 - 27 - Label_4 - 140 - - - - - - Default - - - - false - 0 - $(pv_name) -$(pv_value) - 0 - - - false - - 0.0 - true - 25 - false - 1 - true - - 0 - - - - true - Text Input - - inStackSize - - - 3 - false - true - 72a2bf2b:1508717c835:-7325 - false - - false - - true - true - false - - false - 0 - false - - - - 152 - 122 - 137 - 1.7976931348623157E308 - - - - -1.7976931348623157E308 - - Default - - - - 0 - - 2 - - true - 72a2bf2b:1508717c835:-731e - true - false - Priority - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 80 - 27 - Label_5 - 170 - - - - - - Default - - - - false - 0 - $(pv_name) -$(pv_value) - 0 - - - false - - 0.0 - true - 25 - false - 1 - true - - 0 - - - - true - Text Input - - inPriority - - - 3 - false - true - 72a2bf2b:1508717c835:-731d - false - - false - - true - true - false - - false - 0 - false - - - - 152 - 122 - 167 - 1.7976931348623157E308 - - - - -1.7976931348623157E308 - - Default - - - - 0 - - 2 - - true - 72a2bf2b:1508717c835:-730f - true - false - Exception Action - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 122 - -13 - Label_6 - 202 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - true - 72a2bf2b:1508717c835:-730e - - - true - 29 - 1 - - true - false - false - - false - true - loc://ExceptionAction - - - - Combo - false - - - - 157 - 119 - inExceptionAction - 197 - - - - - - APP RESTART - PROC RESTART - - - Default - - - \ No newline at end of file diff --git a/tools/commander/workspace_template/Displays/CFE/ES/displays/StartPerfCollection.opi b/tools/commander/workspace_template/Displays/CFE/ES/displays/StartPerfCollection.opi deleted file mode 100644 index 0890f3dfa..000000000 --- a/tools/commander/workspace_template/Displays/CFE/ES/displays/StartPerfCollection.opi +++ /dev/null @@ -1,248 +0,0 @@ - - - true - - -35c7bfc1:1509236a393:-54f2 - true - false - - 100 - - true - - 4.0.104.201510200439 - true - Display - - false - -1 - -1 - - - - - 400 - -1 - - 6 - true - -1 - true - - - - - - 0 - false - false - $(pv_name) -$(pv_value) - - true - -35c7bfc1:1509236a393:-52ca - - - true - 29 - 1 - - true - false - false - - false - true - loc://TriggerOn - - - - Combo - false - - - - 141 - 108 - TriggerOn - 30 - - - - - - Start - Middle - End - - - Default - - - - 0 - - 1 - - true - -35c7bfc1:1509236a393:-52b1 - true - false - Trigger on - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 80 - 24 - Label - 35 - - - - - - Default - - - - false - 0 - false - false - $(pv_name) -$(pv_value) - 0 - - true - -35c7bfc1:1509236a393:-5274 - - Start - - false - 29 - 1 - - true - true - false - - - true - - - - - Action Button - false - - - - 80 - 276 - Action Button - 30 - - - - - - - - - true - - - - - Default - - - - false - 0 - false - false - $(pv_name) -$(pv_value) - 0 - - true - -35c7bfc1:1509236a393:-4f6b - - $(actions) - - false - 40 - 1 - - true - true - false - - - true - - - - - Action Button - false - - - - 80 - 276 - Action Button_1 - 96 - - - - - - - ../scripts/NoOp.js - - true - - - - - Default - - - \ No newline at end of file diff --git a/tools/commander/workspace_template/Displays/CFE/ES/displays/StopApp.opi b/tools/commander/workspace_template/Displays/CFE/ES/displays/StopApp.opi deleted file mode 100644 index eebed0635..000000000 --- a/tools/commander/workspace_template/Displays/CFE/ES/displays/StopApp.opi +++ /dev/null @@ -1,232 +0,0 @@ - - - true - - 72a2bf2b:1508717c835:-7839 - true - false - - 130 - - true - - 4.0.104.201510200439 - true - Display - - false - -1 - -1 - - - - - 300 - -1 - - 6 - true - -1 - true - - - - - - false - 0 - false - false - $(pv_name) -$(pv_value) - 0 - - true - 72a2bf2b:1508717c835:-77e3 - - Stop - - false - 25 - 1 - - true - true - false - - - true - - - - - Action Button - false - - - - 73 - 114 - Action Button - 90 - - - - - - - ../scripts/RestartApp.js - - true - - - - - Default - - - - 0 - - 2 - - true - 72a2bf2b:1508717c835:-772d - true - false - App Name - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 80 - 24 - Label - 48 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - true - 72a2bf2b:1508717c835:-76fa - - - true - 29 - 1 - - true - false - false - - false - true - loc://AppName - - - - Combo - false - - - - 157 - 114 - inAppName - 43 - - - - - - CF - CI - CS - DS - EIM - HS - FM - HK - LC - MM - SCH - TO - SBN - - - Default - - - - 0 - - 1 - - true - 72a2bf2b:1508717c835:-76c0 - true - false - Stop Application - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 231 - 40 - Label_1 - 15 - - - - - - Default - - - \ No newline at end of file diff --git a/tools/commander/workspace_template/Displays/CFE/ES/displays/StopPerfCollection.opi b/tools/commander/workspace_template/Displays/CFE/ES/displays/StopPerfCollection.opi deleted file mode 100644 index efc1af980..000000000 --- a/tools/commander/workspace_template/Displays/CFE/ES/displays/StopPerfCollection.opi +++ /dev/null @@ -1,191 +0,0 @@ - - - true - - -35c7bfc1:1509236a393:-54f2 - true - false - - 130 - - true - - 4.0.104.201510200439 - true - Display - - false - -1 - -1 - - - - - 400 - -1 - - 6 - true - -1 - true - - - - - - 0 - - 1 - - true - -35c7bfc1:1509236a393:-52b1 - true - false - File Name - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 80 - 12 - Label - 35 - - - - - - Default - - - - false - 0 - false - false - $(pv_name) -$(pv_value) - 0 - - true - -35c7bfc1:1509236a393:-5274 - - Stop - - false - 29 - 1 - - true - true - false - - - true - - - - - Action Button - false - - - - 80 - 168 - Action Button - 72 - - - - - - - - - true - - - - - Default - - - - false - 0 - $(pv_name) -$(pv_value) - 0 - - - false - - 0.0 - true - 25 - false - 1 - true - loc://FileName<VString>("") - 0 - - - - true - Text Input - - FileName - - - 3 - false - true - -35c7bfc1:1509236a393:-51dc - false - - false - - true - true - false - - false - 4 - false - - - - 289 - 96 - 32 - 1.7976931348623157E308 - - - - -1.7976931348623157E308 - - Default - - - \ No newline at end of file diff --git a/tools/commander/workspace_template/Displays/CFE/ES/displays/WriteErrLog.opi b/tools/commander/workspace_template/Displays/CFE/ES/displays/WriteErrLog.opi deleted file mode 100644 index a1679f3e1..000000000 --- a/tools/commander/workspace_template/Displays/CFE/ES/displays/WriteErrLog.opi +++ /dev/null @@ -1,234 +0,0 @@ - - - true - - 72a2bf2b:1508717c835:-7839 - true - false - - 130 - - true - - 4.0.104.201510200439 - true - Display - - false - -1 - -1 - - - - - 400 - -1 - - 6 - true - -1 - true - - - - - - false - 0 - false - false - $(pv_name) -$(pv_value) - 0 - - true - 72a2bf2b:1508717c835:-77e3 - - Write to File System - - false - 25 - 1 - - true - true - false - - - true - - - - - Action Button - false - - - - 163 - 114 - Action Button - 90 - - - - - - - ../scripts/RestartApp.js - - true - - - - - Default - - - - 0 - - 2 - - true - 72a2bf2b:1508717c835:-772d - true - false - File Name - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 80 - 24 - Label - 48 - - - - - - Default - - - - 0 - - 1 - - true - 72a2bf2b:1508717c835:-76c0 - true - false - Write System Log to File System - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 231 - 80 - Label_1 - 12 - - - - - - Default - - - - false - 0 - $(pv_name) -$(pv_value) - 0 - - - false - ###### - 0.0 - true - 20 - false - 1 - true - loc://FileName - 0 - - - - true - Text Input - - inFileName - - - 0 - false - true - -e1e6812:1508d3700d4:-79c8 - false - - true - - true - true - false - - false - 4 - false - - - - 259 - 114 - 48 - 1.7976931348623157E308 - - - - -1.7976931348623157E308 - - Default - - - \ No newline at end of file diff --git a/tools/commander/workspace_template/Displays/CFE/ES/displays/WriteSysLog.opi b/tools/commander/workspace_template/Displays/CFE/ES/displays/WriteSysLog.opi deleted file mode 100644 index 68e53718e..000000000 --- a/tools/commander/workspace_template/Displays/CFE/ES/displays/WriteSysLog.opi +++ /dev/null @@ -1,234 +0,0 @@ - - - true - - 72a2bf2b:1508717c835:-7839 - true - false - - 130 - - true - - 4.0.104.201510200439 - true - Display - - false - -1 - -1 - - - - - 400 - -1 - - 6 - true - -1 - true - - - - - - false - 0 - false - false - $(pv_name) -$(pv_value) - 0 - - true - 72a2bf2b:1508717c835:-77e3 - - Write to File System - - false - 25 - 1 - - true - true - false - - - true - - - - - Action Button - false - - - - 163 - 114 - Action Button - 90 - - - - - - - ../scripts/RestartApp.js - - true - - - - - Default - - - - 0 - - 2 - - true - 72a2bf2b:1508717c835:-772d - true - false - File Name - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 80 - 24 - Label - 48 - - - - - - Default - - - - 0 - - 1 - - true - 72a2bf2b:1508717c835:-76c0 - true - false - Write System Log to File System - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 231 - 80 - Label_1 - 12 - - - - - - Default - - - - false - 0 - $(pv_name) -$(pv_value) - 0 - - - false - ###### - 0.0 - true - 20 - false - 1 - true - loc://FileName - 0 - - - - true - Text Input - - inFileName - - - 0 - false - true - -e1e6812:1508d3700d4:-79c8 - false - - true - - true - true - false - - false - 4 - false - - - - 259 - 114 - 48 - Infinity - - - - -Infinity - - Default - - - \ No newline at end of file diff --git a/tools/commander/workspace_template/Displays/CFE/ES/scripts/NoOp.js b/tools/commander/workspace_template/Displays/CFE/ES/scripts/NoOp.js deleted file mode 100644 index c405e4127..000000000 --- a/tools/commander/workspace_template/Displays/CFE/ES/scripts/NoOp.js +++ /dev/null @@ -1,4 +0,0 @@ -importPackage(Packages.org.csstudio.opibuilder.scriptUtil); -importPackage(Packages.org.yamcs.studio.script); - -Yamcs.issueCommand('/cfs/cfe_es/Noop(arg: none)'); \ No newline at end of file diff --git a/tools/commander/workspace_template/Displays/CFE/ES/scripts/PerfSetFilterMask1.js b/tools/commander/workspace_template/Displays/CFE/ES/scripts/PerfSetFilterMask1.js deleted file mode 100644 index 4e016d9e9..000000000 --- a/tools/commander/workspace_template/Displays/CFE/ES/scripts/PerfSetFilterMask1.js +++ /dev/null @@ -1,14 +0,0 @@ -importPackage(Packages.org.csstudio.opibuilder.scriptUtil); -importPackage(Packages.org.yamcs.studio.script); -importPackage(Packages.org.csstudio.simplepv); - -var cmdString = '/cfs/cfe_es/PerfSetFilterMask('; - -for(var i = 1; i <= 32; ++i) { - var PerfID = 'PerfFilter' + i; - var RequestFilterName = 'FilterRequest' + i; - cmdString += PerfID + ': ' + VTypeHelper.getDouble(display.getWidget(RequestFilterName).getPropertyValue('pv_value')); -} -cmdString =+ ')'; - -Yamcs.issueCommand(cmdString); \ No newline at end of file diff --git a/tools/commander/workspace_template/Displays/CFE/ES/scripts/PowerReset.js b/tools/commander/workspace_template/Displays/CFE/ES/scripts/PowerReset.js deleted file mode 100644 index 656a39c84..000000000 --- a/tools/commander/workspace_template/Displays/CFE/ES/scripts/PowerReset.js +++ /dev/null @@ -1,4 +0,0 @@ -importPackage(Packages.org.csstudio.opibuilder.scriptUtil); -importPackage(Packages.org.yamcs.studio.script); - -Yamcs.issueCommand('/cfs/cfe_es/Restart(Type: 2)'); \ No newline at end of file diff --git a/tools/commander/workspace_template/Displays/CFE/ES/scripts/ProcessorReset.js b/tools/commander/workspace_template/Displays/CFE/ES/scripts/ProcessorReset.js deleted file mode 100644 index 4d33643bb..000000000 --- a/tools/commander/workspace_template/Displays/CFE/ES/scripts/ProcessorReset.js +++ /dev/null @@ -1,4 +0,0 @@ -importPackage(Packages.org.csstudio.opibuilder.scriptUtil); -importPackage(Packages.org.yamcs.studio.script); - -Yamcs.issueCommand('/cfs/cfe_es/Restart(Type: 1)'); \ No newline at end of file diff --git a/tools/commander/workspace_template/Displays/CFE/ES/scripts/QueryOneApp.js b/tools/commander/workspace_template/Displays/CFE/ES/scripts/QueryOneApp.js deleted file mode 100644 index 9f9c633e4..000000000 --- a/tools/commander/workspace_template/Displays/CFE/ES/scripts/QueryOneApp.js +++ /dev/null @@ -1,4 +0,0 @@ -importPackage(Packages.org.csstudio.opibuilder.scriptUtil); -importPackage(Packages.org.yamcs.studio.script); - -Yamcs.issueCommand('/cfs/cfe_es/QueryOne(Name: SCH)'); \ No newline at end of file diff --git a/tools/commander/workspace_template/Displays/CFE/ES/scripts/ResetCounters.js b/tools/commander/workspace_template/Displays/CFE/ES/scripts/ResetCounters.js deleted file mode 100644 index 971dfda49..000000000 --- a/tools/commander/workspace_template/Displays/CFE/ES/scripts/ResetCounters.js +++ /dev/null @@ -1,4 +0,0 @@ -importPackage(Packages.org.csstudio.opibuilder.scriptUtil); -importPackage(Packages.org.yamcs.studio.script); - -Yamcs.issueCommand('/cfs/cfe_es/Reset(arg: none)'); \ No newline at end of file diff --git a/tools/commander/workspace_template/Displays/CFE/ES/scripts/ResetPRResets.js b/tools/commander/workspace_template/Displays/CFE/ES/scripts/ResetPRResets.js deleted file mode 100644 index 1cbd11623..000000000 --- a/tools/commander/workspace_template/Displays/CFE/ES/scripts/ResetPRResets.js +++ /dev/null @@ -1,4 +0,0 @@ -importPackage(Packages.org.csstudio.opibuilder.scriptUtil); -importPackage(Packages.org.yamcs.studio.script); - -Yamcs.issueCommand('/cfs/cfe_es/ResetPRCount(Count: 10)'); \ No newline at end of file diff --git a/tools/commander/workspace_template/Displays/CFE/ES/scripts/StopApp.js b/tools/commander/workspace_template/Displays/CFE/ES/scripts/StopApp.js deleted file mode 100644 index d661b822e..000000000 --- a/tools/commander/workspace_template/Displays/CFE/ES/scripts/StopApp.js +++ /dev/null @@ -1,6 +0,0 @@ -importPackage(Packages.org.csstudio.opibuilder.scriptUtil); -importPackage(Packages.org.yamcs.studio.script); - -var appName = display.getWidget("inAppName").getPropertyValue("text"); - -Yamcs.issueCommand('/cfs/cfe_es/StopApp(Name: ' + appName + ')'); diff --git a/tools/commander/workspace_template/Displays/CFE/ES/scripts/test_console_cmd.js b/tools/commander/workspace_template/Displays/CFE/ES/scripts/test_console_cmd.js deleted file mode 100644 index dd4c560a4..000000000 --- a/tools/commander/workspace_template/Displays/CFE/ES/scripts/test_console_cmd.js +++ /dev/null @@ -1,4 +0,0 @@ -importPackage(Packages.org.csstudio.opibuilder.scriptUtil); -importPackage(Packages.org.yamcs.studio.script); - -Yamcs.issueCommand('/cfs/cfe_es/ShellCmd(Command: ls -la, OutputFile: /cf/apps/console.log)'); \ No newline at end of file diff --git a/tools/commander/workspace_template/Displays/CFE/EVS/AddFilter.opi b/tools/commander/workspace_template/Displays/CFE/EVS/AddFilter.opi deleted file mode 100644 index d31e40eff..000000000 --- a/tools/commander/workspace_template/Displays/CFE/EVS/AddFilter.opi +++ /dev/null @@ -1,389 +0,0 @@ - - - true - - 763e00b7:150973f1dd8:-7ba3 - true - false - - 160 - - true - - 4.0.104.201510200439 - true - Display - - false - -1 - -1 - - - - - 250 - -1 - - 6 - true - -1 - true - - - - - - false - 0 - false - false - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-7b0d - - Add - - false - 28 - 1 - - true - true - false - - - true - - - - - Action Button - false - - - - 80 - 78 - Action Button - 120 - - - - - - - - - true - - - - - Default - - - - 0 - - 2 - - true - 763e00b7:150973f1dd8:-76cf - true - false - App Name - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 80 - 12 - Label - 29 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - true - 763e00b7:150973f1dd8:-76ce - - - true - 29 - 1 - - true - false - false - - false - true - loc://AppName<VString> - - - - Combo - false - - - - 134 - 102 - AppName - 24 - - - - - - CF - CI - CS - DS - EIM - HS - FM - HK - LC - MM - SCH - TO - SBN - - - Default - - - - 0 - - 2 - - true - 763e00b7:150973f1dd8:-754e - true - false - Event ID - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 80 - 7 - Label_4 - 55 - - - - - - Default - - - - false - 0 - $(pv_name) -$(pv_value) - 0 - - - false - - 0.0 - true - 25 - false - 1 - true - loc://EventID<VDouble> - 0 - - - - false - Text Input - - EventID - - - 3 - false - true - 763e00b7:150973f1dd8:-754d - false - - false - - true - true - false - - false - 0 - false - - - - 134 - 102 - 52 - 1.7976931348623157E308 - - - - -1.7976931348623157E308 - - Default - - - - 0 - - 2 - - true - 763e00b7:150973f1dd8:-7536 - true - false - Mask - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 80 - 7 - Label_5 - 79 - - - - - - Default - - - - false - 0 - $(pv_name) -$(pv_value) - 0 - - - false - - 0.0 - true - 25 - false - 1 - true - loc://Mask<VDouble> - 0 - - - - true - Text Input - - Mask - - - 3 - false - true - 763e00b7:150973f1dd8:-7535 - false - - false - - true - true - false - - false - 3 - false - - - - 134 - 102 - 76 - 1.7976931348623157E308 - - - - -1.7976931348623157E308 - - Default - - - \ No newline at end of file diff --git a/tools/commander/workspace_template/Displays/CFE/EVS/DeleteFilter.opi b/tools/commander/workspace_template/Displays/CFE/EVS/DeleteFilter.opi deleted file mode 100644 index 2345fb679..000000000 --- a/tools/commander/workspace_template/Displays/CFE/EVS/DeleteFilter.opi +++ /dev/null @@ -1,291 +0,0 @@ - - - true - - 763e00b7:150973f1dd8:-7ba3 - true - false - - 140 - - true - - 4.0.104.201510200439 - true - Display - - false - -1 - -1 - - - - - 250 - -1 - - 6 - true - -1 - true - - - - - - false - 0 - false - false - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-7b0d - - Delete - - false - 28 - 1 - - true - true - false - - - true - - - - - Action Button - false - - - - 80 - 78 - Action Button - 96 - - - - - - - - - true - - - - - Default - - - - 0 - - 2 - - true - 763e00b7:150973f1dd8:-76cf - true - false - App Name - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 80 - 12 - Label - 29 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - true - 763e00b7:150973f1dd8:-76ce - - - true - 29 - 1 - - true - false - false - - false - true - loc://AppName<VString> - - - - Combo - false - - - - 134 - 102 - AppName - 24 - - - - - - CF - CI - CS - DS - EIM - HS - FM - HK - LC - MM - SCH - TO - SBN - - - Default - - - - 0 - - 2 - - true - 763e00b7:150973f1dd8:-754e - true - false - Event ID - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 80 - 7 - Label_4 - 55 - - - - - - Default - - - - false - 0 - $(pv_name) -$(pv_value) - 0 - - - false - - 0.0 - true - 25 - false - 1 - true - loc://EventID<VDouble> - 0 - - - - false - Text Input - - EventID - - - 3 - false - true - 763e00b7:150973f1dd8:-754d - false - - false - - true - true - false - - false - 0 - false - - - - 134 - 102 - 52 - 1.7976931348623157E308 - - - - -1.7976931348623157E308 - - Default - - - \ No newline at end of file diff --git a/tools/commander/workspace_template/Displays/CFE/EVS/DumpAppData.opi b/tools/commander/workspace_template/Displays/CFE/EVS/DumpAppData.opi deleted file mode 100644 index b20193c37..000000000 --- a/tools/commander/workspace_template/Displays/CFE/EVS/DumpAppData.opi +++ /dev/null @@ -1,234 +0,0 @@ - - - true - - 72a2bf2b:1508717c835:-7839 - true - false - - 130 - - true - - 4.0.104.201510200439 - true - Display - - false - -1 - -1 - - - - - 400 - -1 - - 6 - true - -1 - true - - - - - - false - 0 - false - false - $(pv_name) -$(pv_value) - 0 - - true - 72a2bf2b:1508717c835:-77e3 - - Write to File System - - false - 25 - 1 - - true - true - false - - - true - - - - - Action Button - false - - - - 163 - 114 - Action Button - 90 - - - - - - - ../scripts/RestartApp.js - - true - - - - - Default - - - - 0 - - 2 - - true - 72a2bf2b:1508717c835:-772d - true - false - File Name - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 80 - 24 - Label - 48 - - - - - - Default - - - - 0 - - 1 - - true - 72a2bf2b:1508717c835:-76c0 - true - false - Write App Data to File System - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 231 - 80 - Label_1 - 12 - - - - - - Default - - - - false - 0 - $(pv_name) -$(pv_value) - 0 - - - false - ###### - 0.0 - true - 20 - false - 1 - true - loc://FileName - 0 - - - - true - Text Input - - inFileName - - - 0 - false - true - -e1e6812:1508d3700d4:-79c8 - false - - true - - true - true - false - - false - 4 - false - - - - 259 - 114 - 48 - 1.7976931348623157E308 - - - - -1.7976931348623157E308 - - Default - - - \ No newline at end of file diff --git a/tools/commander/workspace_template/Displays/CFE/EVS/DumpEventLog.opi b/tools/commander/workspace_template/Displays/CFE/EVS/DumpEventLog.opi deleted file mode 100644 index 7ced1ece5..000000000 --- a/tools/commander/workspace_template/Displays/CFE/EVS/DumpEventLog.opi +++ /dev/null @@ -1,234 +0,0 @@ - - - true - - 72a2bf2b:1508717c835:-7839 - true - false - - 130 - - true - - 4.0.104.201510200439 - true - Display - - false - -1 - -1 - - - - - 400 - -1 - - 6 - true - -1 - true - - - - - - false - 0 - false - false - $(pv_name) -$(pv_value) - 0 - - true - 72a2bf2b:1508717c835:-77e3 - - Write to File System - - false - 25 - 1 - - true - true - false - - - true - - - - - Action Button - false - - - - 163 - 114 - Action Button - 90 - - - - - - - ../scripts/RestartApp.js - - true - - - - - Default - - - - 0 - - 2 - - true - 72a2bf2b:1508717c835:-772d - true - false - File Name - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 80 - 24 - Label - 48 - - - - - - Default - - - - 0 - - 1 - - true - 72a2bf2b:1508717c835:-76c0 - true - false - Write Event Log to File System - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 231 - 80 - Label_1 - 12 - - - - - - Default - - - - false - 0 - $(pv_name) -$(pv_value) - 0 - - - false - ###### - 0.0 - true - 20 - false - 1 - true - loc://FileName - 0 - - - - true - Text Input - - inFileName - - - 0 - false - true - -e1e6812:1508d3700d4:-79c8 - false - - true - - true - true - false - - false - 4 - false - - - - 259 - 114 - 48 - 1.7976931348623157E308 - - - - -1.7976931348623157E308 - - Default - - - \ No newline at end of file diff --git a/tools/commander/workspace_template/Displays/CFE/EVS/EnaDisAppEventType.opi b/tools/commander/workspace_template/Displays/CFE/EVS/EnaDisAppEventType.opi deleted file mode 100644 index 5bbd889ea..000000000 --- a/tools/commander/workspace_template/Displays/CFE/EVS/EnaDisAppEventType.opi +++ /dev/null @@ -1,450 +0,0 @@ - - - true - - 763e00b7:150973f1dd8:-7ba3 - true - false - - 150 - - true - - 4.0.104.201510200439 - true - Display - - false - -1 - -1 - - - - - 250 - -1 - - 6 - true - -1 - true - - - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - 763e00b7:150973f1dd8:-7b43 - - - - - false - - true - 20 - 1 - - true - false - false - - true - loc://Critical - - - - - Check Box - false - - - - 100 - 18 - Critical - 60 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - 763e00b7:150973f1dd8:-7b37 - - - - - false - - true - 20 - 1 - - true - false - false - - true - loc://Error - - - - - Check Box - false - - - - 100 - 18 - Error - 79 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - 763e00b7:150973f1dd8:-7b32 - - - - - false - - true - 20 - 1 - - true - false - false - - true - loc://Information - - - - - Check Box - false - - - - 100 - 18 - Information - 98 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - 763e00b7:150973f1dd8:-7b2d - - - - - false - - true - 20 - 1 - - true - false - false - - true - loc://Debug - - - - - Check Box - false - - - - 100 - 18 - Debug - 117 - - - - - - Default - - - - false - 0 - false - false - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-7b0d - - Enable - - false - 28 - 1 - - true - true - false - - - true - - - - - Action Button - false - - - - 80 - 156 - Action Button - 60 - - - - - - - - - true - - - - - Default - - - - false - 0 - false - false - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-789f - - Disable - - false - 28 - 1 - - true - true - false - - - true - - - - - Action Button - false - - - - 80 - 156 - Action Button_1 - 98 - - - - - - - - - true - - - - - Default - - - - 0 - - 2 - - true - 763e00b7:150973f1dd8:-76cf - true - false - App Name - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 80 - 12 - Label - 29 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - true - 763e00b7:150973f1dd8:-76ce - - - true - 29 - 1 - - true - false - false - - false - true - loc://AppName<VString> - - - - Combo - false - - - - 134 - 102 - AppName - 24 - - - - - - CF - CI - CS - DS - EIM - HS - FM - HK - LC - MM - SCH - TO - SBN - - - Default - - - \ No newline at end of file diff --git a/tools/commander/workspace_template/Displays/CFE/EVS/EnaDisAppEvents.opi b/tools/commander/workspace_template/Displays/CFE/EVS/EnaDisAppEvents.opi deleted file mode 100644 index a8d9d2e65..000000000 --- a/tools/commander/workspace_template/Displays/CFE/EVS/EnaDisAppEvents.opi +++ /dev/null @@ -1,254 +0,0 @@ - - - true - - 763e00b7:150973f1dd8:-7ba3 - true - false - - 100 - - true - - 4.0.104.201510200439 - true - Display - - false - -1 - -1 - - - - - 250 - -1 - - 6 - true - -1 - true - - - - - - false - 0 - false - false - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-7b0d - - Enable - - false - 28 - 1 - - true - true - false - - - true - - - - - Action Button - false - - - - 80 - 42 - Action Button - 60 - - - - - - - - - true - - - - - Default - - - - false - 0 - false - false - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-789f - - Disable - - false - 28 - 1 - - true - true - false - - - true - - - - - Action Button - false - - - - 80 - 137 - Action Button_1 - 60 - - - - - - - - - true - - - - - Default - - - - 0 - - 2 - - true - 763e00b7:150973f1dd8:-76cf - true - false - App Name - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 80 - 12 - Label - 29 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - true - 763e00b7:150973f1dd8:-76ce - - - true - 29 - 1 - - true - false - false - - false - true - loc://AppName<VString> - - - - Combo - false - - - - 134 - 102 - AppName - 24 - - - - - - CF - CI - CS - DS - EIM - HS - FM - HK - LC - MM - SCH - TO - SBN - - - Default - - - \ No newline at end of file diff --git a/tools/commander/workspace_template/Displays/CFE/EVS/EnaDisEventType.opi b/tools/commander/workspace_template/Displays/CFE/EVS/EnaDisEventType.opi deleted file mode 100644 index b6dd84b02..000000000 --- a/tools/commander/workspace_template/Displays/CFE/EVS/EnaDisEventType.opi +++ /dev/null @@ -1,351 +0,0 @@ - - - true - - 763e00b7:150973f1dd8:-7ba3 - true - false - - 125 - - true - - 4.0.104.201510200439 - true - Display - - false - -1 - -1 - - - - - 250 - -1 - - 6 - true - -1 - true - - - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - 763e00b7:150973f1dd8:-7b43 - - - - - false - - true - 20 - 1 - - true - false - false - - true - loc://Critical - - - - - Check Box - false - - - - 100 - 18 - Critical - 24 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - 763e00b7:150973f1dd8:-7b37 - - - - - false - - true - 20 - 1 - - true - false - false - - true - loc://Error - - - - - Check Box - false - - - - 100 - 18 - Error - 43 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - 763e00b7:150973f1dd8:-7b32 - - - - - false - - true - 20 - 1 - - true - false - false - - true - loc://Information - - - - - Check Box - false - - - - 100 - 18 - Information - 62 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - 763e00b7:150973f1dd8:-7b2d - - - - - false - - true - 20 - 1 - - true - false - false - - true - loc://Debug - - - - - Check Box - false - - - - 100 - 18 - Debug - 81 - - - - - - Default - - - - false - 0 - false - false - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-7b0d - - Enable - - false - 28 - 1 - - true - true - false - - - true - - - - - Action Button - false - - - - 80 - 156 - Action Button - 24 - - - - - - - - - true - - - - - Default - - - - false - 0 - false - false - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-789f - - Disable - - false - 28 - 1 - - true - true - false - - - true - - - - - Action Button - false - - - - 80 - 156 - Action Button_1 - 62 - - - - - - - - - true - - - - - Default - - - \ No newline at end of file diff --git a/tools/commander/workspace_template/Displays/CFE/EVS/EnaDisPorts.opi b/tools/commander/workspace_template/Displays/CFE/EVS/EnaDisPorts.opi deleted file mode 100644 index bee868e42..000000000 --- a/tools/commander/workspace_template/Displays/CFE/EVS/EnaDisPorts.opi +++ /dev/null @@ -1,351 +0,0 @@ - - - true - - 763e00b7:150973f1dd8:-7ba3 - true - false - - 125 - - true - - 4.0.104.201510200439 - true - Display - - false - -1 - -1 - - - - - 250 - -1 - - 6 - true - -1 - true - - - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - 763e00b7:150973f1dd8:-7b43 - - - - - false - - true - 20 - 1 - - true - false - false - - true - loc://Critical - - - - - Check Box - false - - - - 100 - 18 - Critical - 24 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - 763e00b7:150973f1dd8:-7b37 - - - - - false - - true - 20 - 1 - - true - false - false - - true - loc://Error - - - - - Check Box - false - - - - 100 - 18 - Error - 43 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - 763e00b7:150973f1dd8:-7b32 - - - - - false - - true - 20 - 1 - - true - false - false - - true - loc://Information - - - - - Check Box - false - - - - 100 - 18 - Information - 62 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - 763e00b7:150973f1dd8:-7b2d - - - - - false - - true - 20 - 1 - - true - false - false - - true - loc://Debug - - - - - Check Box - false - - - - 100 - 18 - Debug - 81 - - - - - - Default - - - - false - 0 - false - false - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-7b0d - - Enable - - false - 28 - 1 - - true - true - false - - - true - - - - - Action Button - false - - - - 80 - 156 - Action Button - 24 - - - - - - - - - true - - - - - Default - - - - false - 0 - false - false - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-789f - - Disable - - false - 28 - 1 - - true - true - false - - - true - - - - - Action Button - false - - - - 80 - 156 - Action Button_1 - 62 - - - - - - - - - true - - - - - Default - - - \ No newline at end of file diff --git a/tools/commander/workspace_template/Displays/CFE/EVS/Main.opi b/tools/commander/workspace_template/Displays/CFE/EVS/Main.opi deleted file mode 100644 index 3be7263ec..000000000 --- a/tools/commander/workspace_template/Displays/CFE/EVS/Main.opi +++ /dev/null @@ -1,2043 +0,0 @@ - - - - - false - -1 - -1 - - false - - - - 1.5.3 - - - - 6 - 620 - - true - - - - - true - true - true - true - true - Display - 700 - 45ea5983:1502a6e6386:-7f06 - -1 - -1 - - - false - false - false - - - - true - - - - 0 - 1 - true - - Default - - false - - - - 0 - 20 - 0 - Text Update - 0 - false - /cfs/cfe_evs/CFE_EVS_TlmPkt_t_param.Payload.CommandCounter - - 0.0 - - - true - true - false - - - true - ###### - $(pv_name) -$(pv_value) - false - 1 - true - Text Update - 100 - false - 45ea5983:1502a6e6386:-7f01 - 169 - 55 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 2 - Label - - - true - true - false - - - Cmd Count - - true - 1 - true - Label - 100 - false - 2b4f25d5:1502b5812fe:-7ff9 - 52 - 55 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 2 - Label_1 - - - true - true - false - - - Err Count - - true - 1 - true - Label - 100 - false - 2b4f25d5:1502b5812fe:-7fef - 52 - 74 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 2 - Label_2 - - - true - true - false - - - Message Format - - true - 1 - true - Label - 146 - false - 2b4f25d5:1502b5812fe:-7fea - 6 - 121 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 2 - Label_3 - - - true - true - false - - - Truncated Messages - - true - 1 - true - Label - 146 - false - 2b4f25d5:1502b5812fe:-7fe5 - 6 - 140 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 2 - Label_4 - - - true - true - false - - - Unregistered Apps - - true - 1 - true - Label - 146 - false - 2b4f25d5:1502b5812fe:-7fe0 - 6 - 159 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 2 - Label_5 - - - true - true - false - - - Output Ports - - true - 1 - true - Label - 146 - false - 2b4f25d5:1502b5812fe:-7fdb - 6 - 178 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 2 - Label_6 - - - true - true - false - - - Log Full - - true - 1 - true - Label - 146 - false - 2b4f25d5:1502b5812fe:-7fd6 - 6 - 197 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 2 - Label_7 - - - true - true - false - - - Log Mode - - true - 1 - true - Label - 146 - false - 2b4f25d5:1502b5812fe:-7fd1 - 6 - 216 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 2 - Label_8 - - - true - true - false - - - Messages Sent - - true - 1 - true - Label - 146 - false - 2b4f25d5:1502b5812fe:-7fa3 - 6 - 235 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 2 - Label_9 - - - true - true - false - - - Log Overflows - - true - 1 - true - Label - 146 - false - 2b4f25d5:1502b5812fe:-7f9e - 6 - 254 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 2 - Label_10 - - - true - true - false - - - Log Enabled - - true - 1 - true - Label - 146 - false - 2b4f25d5:1502b5812fe:-7f99 - 6 - 273 - - - - false - - - - - - - 0 - 1 - true - - Default Bold - - - - - 20 - 1 - Label_40 - - - true - true - false - - - Misc - - true - 1 - true - Label - 133 - false - 2b4f25d5:1502b5812fe:-7d52 - 81 - 102 - - - - false - - - - - - - 0 - 1 - true - - Default Bold - - - - - 20 - 1 - Label_46 - - - true - true - false - - - Commanding - - true - 1 - true - Label - 164 - false - 2b4f25d5:1502b5812fe:-7d1c - 66 - 36 - - - - false - false - false - - - - true - - - - 0 - 1 - true - - Default - - false - - - - 0 - 20 - 0 - Text Update_1 - 0 - false - /cfs/cfe_evs/CFE_EVS_TlmPkt_t_param.Payload.CommandErrCounter - - 0.0 - - - true - true - false - - - true - ###### - $(pv_name) -$(pv_value) - false - 1 - true - Text Update - 100 - false - 2b4f25d5:1502b5812fe:-7d06 - 169 - 74 - - - - false - false - false - - - - true - - - - 0 - 1 - true - - Default - - false - - - - 3 - 20 - 0 - Text Update_2 - 0 - false - /cfs/cfe_evs/CFE_EVS_TlmPkt_t_param.Payload.MessageFormatMode - - 0.0 - - - true - true - false - - - true - ###### - $(pv_name) -$(pv_value) - false - 1 - true - Text Update - 100 - false - 2b4f25d5:1502b5812fe:-7d01 - 169 - 121 - - - - false - false - false - - - - true - - - - 0 - 1 - true - - Default - - false - - - - 0 - 20 - 0 - Text Update_3 - 0 - false - /cfs/cfe_evs/CFE_EVS_TlmPkt_t_param.Payload.MessageTruncCounter - - 0.0 - - - true - true - false - - - true - ###### - $(pv_name) -$(pv_value) - false - 1 - true - Text Update - 100 - false - 2b4f25d5:1502b5812fe:-7cfc - 169 - 140 - - - - false - false - false - - - - true - - - - 0 - 1 - true - - Default - - false - - - - 0 - 20 - 0 - Text Update_4 - 0 - false - /cfs/cfe_evs/CFE_EVS_TlmPkt_t_param.Payload.UnregisteredAppCounter - - 0.0 - - - true - true - false - - - true - ###### - $(pv_name) -$(pv_value) - false - 1 - true - Text Update - 100 - false - 2b4f25d5:1502b5812fe:-7cf7 - 169 - 159 - - - - false - false - false - - - - true - - - - 0 - 1 - true - - Default - - false - - - - 0 - 20 - 0 - Text Update_5 - 0 - false - /cfs/cfe_evs/CFE_EVS_TlmPkt_t_param.Payload.OutputPort - - 0.0 - - - true - true - false - - - true - ###### - $(pv_name) -$(pv_value) - false - 1 - true - Text Update - 100 - false - 2b4f25d5:1502b5812fe:-7cf2 - 169 - 178 - - - - false - false - false - - - - true - - - - 0 - 1 - true - - Default - - false - - - - 0 - 20 - 0 - Text Update_6 - 0 - false - /cfs/cfe_evs/CFE_EVS_TlmPkt_t_param.Payload.LogFullFlag - - 0.0 - - - true - true - false - - - true - ###### - $(pv_name) -$(pv_value) - false - 1 - true - Text Update - 100 - false - 2b4f25d5:1502b5812fe:-7ced - 169 - 197 - - - - false - false - false - - - - true - - - - 0 - 1 - true - - Default - - false - - - - 0 - 20 - 0 - Text Update_7 - 0 - false - /cfs/cfe_evs/CFE_EVS_TlmPkt_t_param.Payload.LogMode - - 0.0 - - - true - true - false - - - true - ###### - $(pv_name) -$(pv_value) - false - 1 - true - Text Update - 100 - false - 2b4f25d5:1502b5812fe:-7ce8 - 169 - 216 - - - - false - false - false - - - - true - - - - 0 - 1 - true - - Default - - false - - - - 0 - 20 - 0 - Text Update_8 - 0 - false - /cfs/cfe_evs/CFE_EVS_TlmPkt_t_param.Payload.MessageSendCounter - - 0.0 - - - true - true - false - - - true - ###### - $(pv_name) -$(pv_value) - false - 1 - true - Text Update - 100 - false - 2b4f25d5:1502b5812fe:-7ce3 - 169 - 235 - - - - false - false - false - - - - true - - - - 0 - 1 - true - - Default - - false - - - - 0 - 20 - 0 - Text Update_9 - 0 - false - /cfs/cfe_evs/CFE_EVS_TlmPkt_t_param.Payload.LogOverflowCounter - - 0.0 - - - true - true - false - - - true - ###### - $(pv_name) -$(pv_value) - false - 1 - true - Text Update - 100 - false - 2b4f25d5:1502b5812fe:-7cde - 169 - 254 - - - - false - false - false - - - - true - - - - 0 - 1 - true - - Default - - false - - - - 0 - 20 - 0 - Text Update_10 - 0 - false - /cfs/cfe_evs/CFE_EVS_TlmPkt_t_param.Payload.LogEnabled - - 0.0 - - - true - true - false - - - true - ###### - $(pv_name) -$(pv_value) - false - 1 - true - Text Update - 100 - false - 2b4f25d5:1502b5812fe:-7cd9 - 169 - 273 - - - - - scripts/NoOp.js - - false - - - - false - false - - - - false - - - - 0 - 1 - true - - Default - - false - - - - 20 - - NoOp - 0 - - - - - true - true - false - - - - NoOp - false - This command performs no other function than to increment the command execution counter. The command may be used to verify general aliveness of the Event Services task. - true - Action Button - 67 - 39deb42:1504a4eb8cc:-7de2 - 276 - 55 - - - - - scripts/ResetCounters.js - - false - - - - false - false - - - - false - - - - 0 - 1 - true - - Default - - false - - - - 20 - - NoOp_1 - 0 - - - - - true - true - false - - - - Reset - false - $(pv_name) -$(pv_value) - true - Action Button - 67 - -9ddfcbe:1507831914f:-7cfc - 276 - 74 - - - - false - - - - - - - 0 - 1 - true - - Default Bold - - - - - 20 - 1 - Label_49 - - - true - true - false - - - Core Flight Executive - Event Services - - true - 1 - true - Label - 295 - false - 763e00b7:150973f1dd8:-7cf4 - 192 - 6 - - - - - EnaDisEventType.opi - - true - - 8 - - - - false - false - - - - false - - - - 0 - 1 - true - - Default - - false - - - - 26 - - Action Button - 0 - - - - - true - true - false - - - - Ena/Dis Event Type - false - $(pv_name) -$(pv_value) - true - Action Button - 187 - 763e00b7:150973f1dd8:-7bb2 - 66 - 318 - - - - - EnaDisAppEventType.opi - - true - - 8 - - - - false - false - - - - false - - - - 0 - 1 - true - - Default - - false - - - - 26 - - Action Button_1 - 0 - - - - - true - true - false - - - - Ena/Dis App Event Type - false - $(pv_name) -$(pv_value) - true - Action Button - 187 - 763e00b7:150973f1dd8:-7ba6 - 66 - 343 - - - - - SetLogMode.opi - - true - - 8 - - - - false - false - - - - false - - - - 0 - 1 - true - - Default - - false - - - - 19 - - NoOp_2 - 0 - - - - - true - true - false - - - - Set Mode - false - $(pv_name) -$(pv_value) - true - Action Button - 85 - 763e00b7:150973f1dd8:-7875 - 276 - 216 - - - - - scripts/ClearLog.js - - false - - - - false - false - - - - false - - - - 0 - 1 - true - - Default - - false - - - - 21 - - NoOp_3 - 0 - - - - - true - true - false - - - - Clear Log - false - $(pv_name) -$(pv_value) - true - Action Button - 79 - 763e00b7:150973f1dd8:-77fe - 360 - 196 - - - - - DumpEventLog.opi - - true - - 8 - - - - false - false - - - - false - - - - 0 - 1 - true - - Default - - false - - - - 21 - - NoOp_4 - 0 - - - - - true - true - false - - - - Dump Log - false - $(pv_name) -$(pv_value) - true - Action Button - 85 - 763e00b7:150973f1dd8:-77f0 - 276 - 196 - - - - - SetMessageFormat.opi - - true - - 8 - - - - false - false - - - - false - - - - 0 - 1 - true - - Default - - false - - - - 20 - - NoOp_5 - 0 - - - - - true - true - false - - - - Set Format - false - $(pv_name) -$(pv_value) - true - Action Button - 79 - 763e00b7:150973f1dd8:-779c - 276 - 121 - - - - - EnaDisAppEvents.opi - - true - - 8 - - - - false - false - - - - false - - - - 0 - 1 - true - - Default - - false - - - - 26 - - Action Button_2 - 0 - - - - - true - true - false - - - - Ena/Dis App Events - false - $(pv_name) -$(pv_value) - true - Action Button - 187 - 763e00b7:150973f1dd8:-769d - 66 - 368 - - - - - ResetAppCounter.opi - - true - - 8 - - - - false - false - - - - false - - - - 0 - 1 - true - - Default - - false - - - - 26 - - Action Button_3 - 0 - - - - - true - true - false - - - - Reset App Counter - false - $(pv_name) -$(pv_value) - true - Action Button - 187 - 763e00b7:150973f1dd8:-75e2 - 66 - 393 - - - - - AddFilter.opi - - true - - 8 - - - - false - false - - - - false - - - - 0 - 1 - true - - Default - - false - - - - 26 - - Action Button_4 - 0 - - - - - true - true - false - - - - Add Filter - false - $(pv_name) -$(pv_value) - true - Action Button - 187 - 763e00b7:150973f1dd8:-75cd - 66 - 417 - - - - - SetFilter.opi - - true - - 8 - - - - false - false - - - - false - - - - 0 - 1 - true - - Default - - false - - - - 26 - - Action Button_5 - 0 - - - - - true - true - false - - - - Set Filter - false - $(pv_name) -$(pv_value) - true - Action Button - 187 - 763e00b7:150973f1dd8:-75c3 - 66 - 442 - - - - - ResetFilter.opi - - true - - 8 - - - - false - false - - - - false - - - - 0 - 1 - true - - Default - - false - - - - 26 - - Action Button_6 - 0 - - - - - true - true - false - - - - Reset Filter - false - $(pv_name) -$(pv_value) - true - Action Button - 187 - 763e00b7:150973f1dd8:-75b9 - 66 - 467 - - - - - DeleteFilter.opi - - true - - 8 - - - - false - false - - - - false - - - - 0 - 1 - true - - Default - - false - - - - 26 - - Action Button_7 - 0 - - - - - true - true - false - - - - Delete Filter - false - $(pv_name) -$(pv_value) - true - Action Button - 187 - 763e00b7:150973f1dd8:-75a4 - 66 - 492 - - - - - EnaDisPorts.opi - - true - - 8 - - - - false - false - - - - false - - - - 0 - 1 - true - - Default - - false - - - - 26 - - Action Button_8 - 0 - - - - - true - true - false - - - - Ena/Dis Ports - false - $(pv_name) -$(pv_value) - true - Action Button - 187 - 763e00b7:150973f1dd8:-7590 - 66 - 517 - - - - - DumpAppData.opi - - true - - 8 - - - - false - false - - - - false - - - - 0 - 1 - true - - Default - - false - - - - 26 - - Action Button_9 - 0 - - - - - true - true - false - - - - Dump App Data - false - $(pv_name) -$(pv_value) - true - Action Button - 187 - 763e00b7:150973f1dd8:-7586 - 66 - 542 - - \ No newline at end of file diff --git a/tools/commander/workspace_template/Displays/CFE/EVS/ResetAppCounter.opi b/tools/commander/workspace_template/Displays/CFE/EVS/ResetAppCounter.opi deleted file mode 100644 index 835955805..000000000 --- a/tools/commander/workspace_template/Displays/CFE/EVS/ResetAppCounter.opi +++ /dev/null @@ -1,193 +0,0 @@ - - - true - - 763e00b7:150973f1dd8:-7ba3 - true - false - - 100 - - true - - 4.0.104.201510200439 - true - Display - - false - -1 - -1 - - - - - 250 - -1 - - 6 - true - -1 - true - - - - - - false - 0 - false - false - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-7b0d - - Reset App Counter - - false - 28 - 1 - - true - true - false - - - true - - - - - Action Button - false - - - - 139 - 60 - Action Button - 60 - - - - - - - - - true - - - - - Default - - - - 0 - - 2 - - true - 763e00b7:150973f1dd8:-76cf - true - false - App Name - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 80 - 12 - Label - 29 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - true - 763e00b7:150973f1dd8:-76ce - - - true - 29 - 1 - - true - false - false - - false - true - loc://AppName<VString> - - - - Combo - false - - - - 134 - 102 - AppName - 24 - - - - - - CF - CI - CS - DS - EIM - HS - FM - HK - LC - MM - SCH - TO - SBN - - - Default - - - \ No newline at end of file diff --git a/tools/commander/workspace_template/Displays/CFE/EVS/ResetFilter.opi b/tools/commander/workspace_template/Displays/CFE/EVS/ResetFilter.opi deleted file mode 100644 index 6cfe6eff5..000000000 --- a/tools/commander/workspace_template/Displays/CFE/EVS/ResetFilter.opi +++ /dev/null @@ -1,352 +0,0 @@ - - - true - - 763e00b7:150973f1dd8:-7ba3 - true - false - - 140 - - true - - 4.0.104.201510200439 - true - Display - - false - -1 - -1 - - - - - 250 - -1 - - 6 - true - -1 - true - - - - - - false - 0 - false - false - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-7b0d - - Reset Event - - false - 28 - 1 - - true - true - false - - - true - - - - - Action Button - false - - - - 80 - 36 - Action Button - 96 - - - - - - - - - true - - - - - Default - - - - 0 - - 2 - - true - 763e00b7:150973f1dd8:-76cf - true - false - App Name - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 80 - 12 - Label - 29 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - true - 763e00b7:150973f1dd8:-76ce - - - true - 29 - 1 - - true - false - false - - false - true - loc://AppName<VString> - - - - Combo - false - - - - 134 - 102 - AppName - 24 - - - - - - CF - CI - CS - DS - EIM - HS - FM - HK - LC - MM - SCH - TO - SBN - - - Default - - - - 0 - - 2 - - true - 763e00b7:150973f1dd8:-754e - true - false - Event ID - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 80 - 7 - Label_4 - 55 - - - - - - Default - - - - false - 0 - $(pv_name) -$(pv_value) - 0 - - - false - - 0.0 - true - 25 - false - 1 - true - loc://EventID<VDouble> - 0 - - - - false - Text Input - - EventID - - - 3 - false - true - 763e00b7:150973f1dd8:-754d - false - - false - - true - true - false - - false - 0 - false - - - - 134 - 102 - 52 - 1.7976931348623157E308 - - - - -1.7976931348623157E308 - - Default - - - - false - 0 - false - false - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-74e4 - - Reset All - - false - 28 - 1 - - true - true - false - - - true - - - - - Action Button - false - - - - 80 - 132 - Action Button_1 - 96 - - - - - - - - - true - - - - - Default - - - \ No newline at end of file diff --git a/tools/commander/workspace_template/Displays/CFE/EVS/SetFilter.opi b/tools/commander/workspace_template/Displays/CFE/EVS/SetFilter.opi deleted file mode 100644 index 8e88e1114..000000000 --- a/tools/commander/workspace_template/Displays/CFE/EVS/SetFilter.opi +++ /dev/null @@ -1,389 +0,0 @@ - - - true - - 763e00b7:150973f1dd8:-7ba3 - true - false - - 160 - - true - - 4.0.104.201510200439 - true - Display - - false - -1 - -1 - - - - - 250 - -1 - - 6 - true - -1 - true - - - - - - false - 0 - false - false - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-7b0d - - Set Filter - - false - 28 - 1 - - true - true - false - - - true - - - - - Action Button - false - - - - 80 - 78 - Action Button - 120 - - - - - - - - - true - - - - - Default - - - - 0 - - 2 - - true - 763e00b7:150973f1dd8:-76cf - true - false - App Name - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 80 - 12 - Label - 29 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - true - 763e00b7:150973f1dd8:-76ce - - - true - 29 - 1 - - true - false - false - - false - true - loc://AppName<VString> - - - - Combo - false - - - - 134 - 102 - AppName - 24 - - - - - - CF - CI - CS - DS - EIM - HS - FM - HK - LC - MM - SCH - TO - SBN - - - Default - - - - 0 - - 2 - - true - 763e00b7:150973f1dd8:-754e - true - false - Event ID - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 80 - 7 - Label_4 - 55 - - - - - - Default - - - - false - 0 - $(pv_name) -$(pv_value) - 0 - - - false - - 0.0 - true - 25 - false - 1 - true - loc://EventID<VDouble> - 0 - - - - false - Text Input - - EventID - - - 3 - false - true - 763e00b7:150973f1dd8:-754d - false - - false - - true - true - false - - false - 0 - false - - - - 134 - 102 - 52 - 1.7976931348623157E308 - - - - -1.7976931348623157E308 - - Default - - - - 0 - - 2 - - true - 763e00b7:150973f1dd8:-7536 - true - false - Mask - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 80 - 7 - Label_5 - 79 - - - - - - Default - - - - false - 0 - $(pv_name) -$(pv_value) - 0 - - - false - - 0.0 - true - 25 - false - 1 - true - loc://Mask<VDouble> - 0 - - - - true - Text Input - - Mask - - - 3 - false - true - 763e00b7:150973f1dd8:-7535 - false - - false - - true - true - false - - false - 3 - false - - - - 134 - 102 - 76 - 1.7976931348623157E308 - - - - -1.7976931348623157E308 - - Default - - - \ No newline at end of file diff --git a/tools/commander/workspace_template/Displays/CFE/EVS/SetLogMode.opi b/tools/commander/workspace_template/Displays/CFE/EVS/SetLogMode.opi deleted file mode 100644 index 4cba22522..000000000 --- a/tools/commander/workspace_template/Displays/CFE/EVS/SetLogMode.opi +++ /dev/null @@ -1,227 +0,0 @@ - - - true - - 72a2bf2b:1508717c835:-7839 - true - false - - 130 - - true - - 4.0.104.201510200439 - true - Display - - false - -1 - -1 - - - - - 300 - -1 - - 6 - true - -1 - true - - - - - - false - 0 - false - false - $(pv_name) -$(pv_value) - 0 - - true - 72a2bf2b:1508717c835:-77e3 - - Set - - false - 25 - 1 - - true - true - false - - - true - - - - - Action Button - false - - - - 73 - 114 - Action Button - 90 - - - - - - - ../scripts/RestartApp.js - - true - - - - - Default - - - - 0 - - 2 - - true - 72a2bf2b:1508717c835:-772d - true - false - Mode - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 80 - 24 - Label - 48 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - true - 72a2bf2b:1508717c835:-76fa - - - true - 29 - 1 - - true - false - false - - false - true - loc://Mode - - - - Combo - false - - - - 157 - 114 - inMode - 43 - - - - - - OVERWRITE - DISCARD - - - Default - - - - 0 - - 1 - - true - 72a2bf2b:1508717c835:-76c0 - true - false - Set Log Mode - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 231 - 40 - Label_1 - 15 - - - - - - Default - - - \ No newline at end of file diff --git a/tools/commander/workspace_template/Displays/CFE/EVS/SetMessageFormat.opi b/tools/commander/workspace_template/Displays/CFE/EVS/SetMessageFormat.opi deleted file mode 100644 index 9bace4eb7..000000000 --- a/tools/commander/workspace_template/Displays/CFE/EVS/SetMessageFormat.opi +++ /dev/null @@ -1,227 +0,0 @@ - - - true - - 72a2bf2b:1508717c835:-7839 - true - false - - 130 - - true - - 4.0.104.201510200439 - true - Display - - false - -1 - -1 - - - - - 260 - -1 - - 6 - true - -1 - true - - - - - - false - 0 - false - false - $(pv_name) -$(pv_value) - 0 - - true - 72a2bf2b:1508717c835:-77e3 - - Set - - false - 25 - 1 - - true - true - false - - - true - - - - - Action Button - false - - - - 73 - 90 - Action Button - 90 - - - - - - - ../scripts/RestartApp.js - - true - - - - - Default - - - - 0 - - 2 - - true - 72a2bf2b:1508717c835:-772d - true - false - Format - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 50 - 12 - Label - 47 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - true - 72a2bf2b:1508717c835:-76fa - - - true - 29 - 1 - - true - false - false - - false - true - loc://Format - - - - Combo - false - - - - 157 - 72 - inFormat - 42 - - - - - - SHORT - LONG - - - Default - - - - 0 - - 1 - - true - 72a2bf2b:1508717c835:-76c0 - true - false - Set Message Format - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 205 - 24 - Label_1 - 14 - - - - - - Default - - - \ No newline at end of file diff --git a/tools/commander/workspace_template/Displays/CFE/EVS/scripts/ClearLog.js b/tools/commander/workspace_template/Displays/CFE/EVS/scripts/ClearLog.js deleted file mode 100644 index 5f88bb271..000000000 --- a/tools/commander/workspace_template/Displays/CFE/EVS/scripts/ClearLog.js +++ /dev/null @@ -1,4 +0,0 @@ -importPackage(Packages.org.csstudio.opibuilder.scriptUtil); -importPackage(Packages.org.yamcs.studio.script); - -Yamcs.issueCommand('/cfs/cfe_evs/ClearLog(arg: none)'); \ No newline at end of file diff --git a/tools/commander/workspace_template/Displays/CFE/EVS/scripts/NoOp.js b/tools/commander/workspace_template/Displays/CFE/EVS/scripts/NoOp.js deleted file mode 100644 index 1d69f13a1..000000000 --- a/tools/commander/workspace_template/Displays/CFE/EVS/scripts/NoOp.js +++ /dev/null @@ -1,4 +0,0 @@ -importPackage(Packages.org.csstudio.opibuilder.scriptUtil); -importPackage(Packages.org.yamcs.studio.script); - -Yamcs.issueCommand('/cfs/cfe_evs/NoOp(arg: none)'); \ No newline at end of file diff --git a/tools/commander/workspace_template/Displays/CFE/EVS/scripts/ResetCounters.js b/tools/commander/workspace_template/Displays/CFE/EVS/scripts/ResetCounters.js deleted file mode 100644 index c3a7ef761..000000000 --- a/tools/commander/workspace_template/Displays/CFE/EVS/scripts/ResetCounters.js +++ /dev/null @@ -1,4 +0,0 @@ -importPackage(Packages.org.csstudio.opibuilder.scriptUtil); -importPackage(Packages.org.yamcs.studio.script); - -Yamcs.issueCommand('/cfs/cfe_evs/Reset(arg: none)'); \ No newline at end of file diff --git a/tools/commander/workspace_template/Displays/CFE/Main.opi b/tools/commander/workspace_template/Displays/CFE/Main.opi deleted file mode 100644 index 2d5991137..000000000 --- a/tools/commander/workspace_template/Displays/CFE/Main.opi +++ /dev/null @@ -1,1650 +0,0 @@ - - - true - - 45ea5983:1502a6e6386:-7f06 - true - false - - 600 - - true - - 4.0.104.201510200439 - true - Display - - false - -1 - -1 - - - - - 800 - -1 - - 6 - true - -1 - true - - - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 45ea5983:1502a6e6386:-7f01 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_es/CFE_ES_HkPacket_t_param.Payload.CmdCounter - 1 - - - - false - Text Update - false - false - 0 - - - - 100 - 272 - Text Update - 44 - - - - - - Default - - - - 0 - - 1 - - true - 2b4f25d5:1502b5812fe:-7d1c - true - false - Cmd Count - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 104 - 270 - Label_46 - 22 - - - - - - Default Bold - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 2b4f25d5:1502b5812fe:-7d06 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_es/CFE_ES_HkPacket_t_param.Payload.ErrCounter - 1 - - - - false - Text Update - false - false - 0 - - - - 100 - 384 - Text Update_1 - 44 - - - - - - Default - - - - false - 0 - false - false - $(pv_name) -$(pv_value) - 0 - - true - 39deb42:1504a4eb8cc:-7de2 - - NoOp - - false - 23 - 1 - - true - true - false - - - true - - - - - Action Button - false - - - - 79 - 498 - NoOp - 42 - - - - - - - ES/scripts/NoOp.js - - false - - - - - Default - - - - false - 0 - false - false - $(pv_name) -$(pv_value) - 0 - - true - -9ddfcbe:1507831914f:-7cfc - - Reset - - false - 23 - 1 - - true - true - false - - - true - - - - - Action Button - false - - - - 79 - 588 - NoOp_1 - 42 - - - - - - - ES/scripts/ResetCounters.js - - false - - - - - Default - - - - 0 - - 1 - - true - -9ddfcbe:1507831914f:-7a88 - true - false - Err Count - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 104 - 382 - Label_47 - 22 - - - - - - Default Bold - - - - false - 0 - false - false - $(pv_name) -$(pv_value) - 0 - - true - -9ddfcbe:1507831914f:-7a77 - - Display - - false - 23 - 1 - - true - true - false - - - true - - - - - Action Button - false - - - - 73 - 174 - NoOp_2 - 42 - - - - - - - ES/displays/Main.opi - - true - - 0 - - - - - Default - - - - 0 - - 0 - - true - -9ddfcbe:1507831914f:-7a6f - true - false - Essential Services - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 137 - 24 - Label_48 - 44 - - - - - - Default Bold - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - -9ddfcbe:1507831914f:-7a2b - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_evs/CFE_EVS_TlmPkt_t_param.Payload.CommandCounter - 1 - - - - false - Text Update - false - false - 0 - - - - 100 - 272 - Text Update_2 - 72 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - -9ddfcbe:1507831914f:-7a29 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_evs/CFE_EVS_TlmPkt_t_param.Payload.CommandErrCounter - 1 - - - - false - Text Update - false - false - 0 - - - - 100 - 384 - Text Update_3 - 72 - - - - - - Default - - - - false - 0 - false - false - $(pv_name) -$(pv_value) - 0 - - true - -9ddfcbe:1507831914f:-7a28 - - NoOp - - false - 23 - 1 - - true - true - false - - - true - - - - - Action Button - false - - - - 79 - 498 - NoOp_3 - 70 - - - - - - - EVS/scripts/NoOp.js - - false - - - - - Default - - - - false - 0 - false - false - $(pv_name) -$(pv_value) - 0 - - true - -9ddfcbe:1507831914f:-7a27 - - Reset - - false - 23 - 1 - - true - true - false - - - true - - - - - Action Button - false - - - - 79 - 588 - NoOp_4 - 70 - - - - - - - EVS/scripts/ResetCounters.js - - false - - - - - Default - - - - 0 - - 0 - - true - -9ddfcbe:1507831914f:-7a24 - true - false - Event Services - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 137 - 24 - Label_51 - 72 - - - - - - Default Bold - - - - false - 0 - false - false - $(pv_name) -$(pv_value) - 0 - - true - -9ddfcbe:1507831914f:-7a0c - - Display - - false - 23 - 1 - - true - true - false - - - true - - - - - Action Button - false - - - - 73 - 174 - NoOp_5 - 72 - - - - - - - EVS/Main.opi - - true - - 0 - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - -9ddfcbe:1507831914f:-79ec - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/CFE_SB_HKMsg_t_param.Payload.CommandCnt - 1 - - - - false - Text Update - false - false - 0 - - - - 100 - 272 - Text Update_4 - 102 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - -9ddfcbe:1507831914f:-79eb - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/CFE_SB_HKMsg_t_param.Payload.CmdErrCnt - 1 - - - - false - Text Update - false - false - 0 - - - - 100 - 384 - Text Update_5 - 102 - - - - - - Default - - - - false - 0 - false - false - $(pv_name) -$(pv_value) - 0 - - true - -9ddfcbe:1507831914f:-79ea - - NoOp - - false - 23 - 1 - - true - true - false - - - true - - - - - Action Button - false - - - - 79 - 498 - NoOp_6 - 100 - - - - - - - SB/scripts/NoOp.js - - false - - - - - Default - - - - false - 0 - false - false - $(pv_name) -$(pv_value) - 0 - - true - -9ddfcbe:1507831914f:-79e9 - - Reset - - false - 23 - 1 - - true - true - false - - - true - - - - - Action Button - false - - - - 79 - 588 - NoOp_7 - 100 - - - - - - - SB/scripts/ResetCounters.js - - false - - - - - Default - - - - 0 - - 0 - - true - -9ddfcbe:1507831914f:-79e8 - true - false - Software Bus - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 137 - 24 - Label_52 - 102 - - - - - - Default Bold - - - - false - 0 - false - false - $(pv_name) -$(pv_value) - 0 - - true - -9ddfcbe:1507831914f:-79e7 - - Display - - false - 23 - 1 - - true - true - false - - - true - - - - - Action Button - false - - - - 73 - 174 - NoOp_8 - 102 - - - - - - - SB/Main.opi - - true - - 0 - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - -9ddfcbe:1507831914f:-79d1 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_tbl/CFE_TBL_HkPacket_t_param.Payload.CmdCounter - 1 - - - - false - Text Update - false - false - 0 - - - - 100 - 272 - Text Update_6 - 132 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - -9ddfcbe:1507831914f:-79d0 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_tbl/CFE_TBL_HkPacket_t_param.Payload.ErrCounter - 1 - - - - false - Text Update - false - false - 0 - - - - 100 - 384 - Text Update_7 - 132 - - - - - - Default - - - - false - 0 - false - false - $(pv_name) -$(pv_value) - 0 - - true - -9ddfcbe:1507831914f:-79cf - - NoOp - - false - 23 - 1 - - true - true - false - - - true - - - - - Action Button - false - - - - 79 - 498 - NoOp_9 - 130 - - - - - - - TBL/scripts/NoOp.js - - false - - - - - Default - - - - false - 0 - false - false - $(pv_name) -$(pv_value) - 0 - - true - -9ddfcbe:1507831914f:-79ce - - Reset - - false - 23 - 1 - - true - true - false - - - true - - - - - Action Button - false - - - - 79 - 588 - NoOp_10 - 130 - - - - - - - TBL/scripts/ResetCounters.js - - false - - - - - Default - - - - 0 - - 0 - - true - -9ddfcbe:1507831914f:-79cd - true - false - Table Services - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 137 - 24 - Label_53 - 132 - - - - - - Default Bold - - - - false - 0 - false - false - $(pv_name) -$(pv_value) - 0 - - true - -9ddfcbe:1507831914f:-79cc - - Display - - false - 23 - 1 - - true - true - false - - - true - - - - - Action Button - false - - - - 73 - 174 - NoOp_11 - 132 - - - - - - - TBL/Main.opi - - true - - 0 - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - -9ddfcbe:1507831914f:-79b6 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_time/CFE_TIME_HkPacket_t_param.Payload.CmdCounter - 1 - - - - false - Text Update - false - false - 0 - - - - 100 - 272 - Text Update_8 - 162 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - -9ddfcbe:1507831914f:-79b5 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_time/CFE_TIME_HkPacket_t_param.Payload.ErrCounter - 1 - - - - false - Text Update - false - false - 0 - - - - 100 - 384 - Text Update_9 - 162 - - - - - - Default - - - - false - 0 - false - false - $(pv_name) -$(pv_value) - 0 - - true - -9ddfcbe:1507831914f:-79b4 - - NoOp - - false - 23 - 1 - - true - true - false - - - true - - - - - Action Button - false - - - - 79 - 498 - NoOp_12 - 160 - - - - - - - TIME/scripts/NoOp.js - - false - - - - - Default - - - - false - 0 - false - false - $(pv_name) -$(pv_value) - 0 - - true - -9ddfcbe:1507831914f:-79b3 - - Reset - - false - 23 - 1 - - true - true - false - - - true - - - - - Action Button - false - - - - 79 - 588 - NoOp_13 - 160 - - - - - - - TIME/scripts/ResetCounters.js - - false - - - - - Default - - - - 0 - - 0 - - true - -9ddfcbe:1507831914f:-79b2 - true - false - Time Services - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 137 - 24 - Label_54 - 162 - - - - - - Default Bold - - - - false - 0 - false - false - $(pv_name) -$(pv_value) - 0 - - true - -9ddfcbe:1507831914f:-79b1 - - Display - - false - 23 - 1 - - true - true - false - - - true - - - - - Action Button - false - - - - 73 - 174 - NoOp_14 - 162 - - - - - - - TIME/Main.opi - - true - - 0 - - - - - Default - - - \ No newline at end of file diff --git a/tools/commander/workspace_template/Displays/CFE/SB/DumpMapInfo.opi b/tools/commander/workspace_template/Displays/CFE/SB/DumpMapInfo.opi deleted file mode 100644 index d37786f5d..000000000 --- a/tools/commander/workspace_template/Displays/CFE/SB/DumpMapInfo.opi +++ /dev/null @@ -1,241 +0,0 @@ - - - true - - 72a2bf2b:1508717c835:-7839 - true - false - - 130 - - true - - 4.0.104.201510200439 - true - Display - - false - -1 - -1 - - - - - 400 - -1 - - 6 - true - -1 - true - - - - - - false - 0 - false - false - $(pv_name) -$(pv_value) - 0 - - true - 72a2bf2b:1508717c835:-77e3 - - Write to File System - - false - 25 - 1 - - true - true - false - - - true - - - - - Action Button - false - - - - 163 - 114 - Action Button - 90 - - - - - - - ../scripts/RestartApp.js - - true - - - - - Default - - - - 0 - - 2 - - true - 72a2bf2b:1508717c835:-772d - true - false - File Name - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 80 - 24 - Label - 48 - - - - - - Default - - - - 0 - - 1 - - true - 72a2bf2b:1508717c835:-76c0 - true - false - Write Map Info to File System - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 231 - 80 - Label_1 - 12 - - - - - - Default - - - - false - 0 - $(pv_name) -$(pv_value) - 0 - - - false - ###### - 0.0 - true - 20 - false - 1 - true - loc://FileName<VString> - 0 - - - - true - Text Input - - inFileName - - - 0 - false - true - -e1e6812:1508d3700d4:-79c8 - false - - true - - true - true - false - - false - 4 - false - - - - 259 - 114 - 48 - 1.7976931348623157E308 - - - - -1.7976931348623157E308 - - Default - - - \ No newline at end of file diff --git a/tools/commander/workspace_template/Displays/CFE/SB/DumpPipeInfo.opi b/tools/commander/workspace_template/Displays/CFE/SB/DumpPipeInfo.opi deleted file mode 100644 index 433b9f6ff..000000000 --- a/tools/commander/workspace_template/Displays/CFE/SB/DumpPipeInfo.opi +++ /dev/null @@ -1,241 +0,0 @@ - - - true - - 72a2bf2b:1508717c835:-7839 - true - false - - 130 - - true - - 4.0.104.201510200439 - true - Display - - false - -1 - -1 - - - - - 400 - -1 - - 6 - true - -1 - true - - - - - - false - 0 - false - false - $(pv_name) -$(pv_value) - 0 - - true - 72a2bf2b:1508717c835:-77e3 - - Write to File System - - false - 25 - 1 - - true - true - false - - - true - - - - - Action Button - false - - - - 163 - 114 - Action Button - 90 - - - - - - - ../scripts/RestartApp.js - - true - - - - - Default - - - - 0 - - 2 - - true - 72a2bf2b:1508717c835:-772d - true - false - File Name - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 80 - 24 - Label - 48 - - - - - - Default - - - - 0 - - 1 - - true - 72a2bf2b:1508717c835:-76c0 - true - false - Write Pipe Info to File System - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 231 - 80 - Label_1 - 12 - - - - - - Default - - - - false - 0 - $(pv_name) -$(pv_value) - 0 - - - false - ###### - 0.0 - true - 20 - false - 1 - true - loc://FileName<VString> - 0 - - - - true - Text Input - - inFileName - - - 0 - false - true - -e1e6812:1508d3700d4:-79c8 - false - - true - - true - true - false - - false - 4 - false - - - - 259 - 114 - 48 - 1.7976931348623157E308 - - - - -1.7976931348623157E308 - - Default - - - \ No newline at end of file diff --git a/tools/commander/workspace_template/Displays/CFE/SB/DumpRoutingInfo.opi b/tools/commander/workspace_template/Displays/CFE/SB/DumpRoutingInfo.opi deleted file mode 100644 index 81fcb6061..000000000 --- a/tools/commander/workspace_template/Displays/CFE/SB/DumpRoutingInfo.opi +++ /dev/null @@ -1,241 +0,0 @@ - - - true - - 763e00b7:150973f1dd8:-7ba3 - true - false - - 130 - - true - - 4.0.104.201510200439 - true - Display - - false - -1 - -1 - - - - - 400 - -1 - - 6 - true - -1 - true - - - - - - false - 0 - false - false - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-468f - - Write to File System - - false - 25 - 1 - - true - true - false - - - true - - - - - Action Button - false - - - - 163 - 106 - Action Button - 90 - - - - - - - ../scripts/RestartApp.js - - true - - - - - Default - - - - 0 - - 2 - - true - 763e00b7:150973f1dd8:-468e - true - false - File Name - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 80 - 16 - Label - 48 - - - - - - Default - - - - 0 - - 1 - - true - 763e00b7:150973f1dd8:-468d - true - false - Write Routing Data to File System - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 231 - 72 - Label_1 - 12 - - - - - - Default - - - - false - 0 - $(pv_name) -$(pv_value) - 0 - - - false - ###### - 0.0 - true - 20 - false - 1 - true - loc://FileName<VString> - 0 - - - - true - Text Input - - inFileName - - - 0 - false - true - 763e00b7:150973f1dd8:-468c - false - - true - - true - true - false - - false - 4 - false - - - - 259 - 106 - 48 - 1.7976931348623157E308 - - - - -1.7976931348623157E308 - - Default - - - \ No newline at end of file diff --git a/tools/commander/workspace_template/Displays/CFE/SB/EnaDisRoutes.opi b/tools/commander/workspace_template/Displays/CFE/SB/EnaDisRoutes.opi deleted file mode 100644 index 350565056..000000000 --- a/tools/commander/workspace_template/Displays/CFE/SB/EnaDisRoutes.opi +++ /dev/null @@ -1,290 +0,0 @@ - - - true - - 72a2bf2b:1508717c835:-7d33 - true - false - - 140 - - true - - 4.0.104.201510200439 - true - Display - - false - -1 - -1 - - - - - 200 - -1 - - 6 - true - -1 - true - - - - - - false - 0 - false - false - $(pv_name) -$(pv_value) - 0 - - true - 72a2bf2b:1508717c835:-7cf7 - - Enable - - false - 24 - 1 - - true - true - false - - - true - - - - - Action Button - false - - - - 61 - 30 - Action Button - 96 - - - - - - - ../scripts/QueryOneApp.js - - true - - - - - Default - - - - 0 - - 2 - - true - 72a2bf2b:1508717c835:-7c63 - true - false - Msg ID - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 50 - 12 - Label_3 - 19 - - - - - - Default - - - - false - 0 - $(pv_name) -$(pv_value) - 0 - - - false - - 0.0 - true - 25 - false - 1 - true - loc://MsgID<VDouble> - 0 - - - - false - Text Input - - MsgID - - - 3 - false - true - 35ebaa52:1509cf6a868:-7c52 - false - - false - - true - true - false - - false - 1 - false - - - - 100 - 72 - 16 - 65535.0 - - - - 0.0 - - Default - - - - 0 - - 2 - - true - 35ebaa52:1509cf6a868:-7c4a - true - false - Pipe ID - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 50 - 12 - Label_1 - 51 - - - - - - Default - - - - false - 0 - $(pv_name) -$(pv_value) - 0 - - - false - - 0.0 - true - 25 - false - 1 - true - loc://PipeID<VDouble> - 0 - - - - false - Text Input - - PipeID - - - 3 - false - true - 35ebaa52:1509cf6a868:-7c40 - false - - false - - true - true - false - - false - 1 - false - - - - 100 - 72 - 48 - 255.0 - - - - 0.0 - - Default - - - \ No newline at end of file diff --git a/tools/commander/workspace_template/Displays/CFE/SB/Main.opi b/tools/commander/workspace_template/Displays/CFE/SB/Main.opi deleted file mode 100644 index 2d9cc4c25..000000000 --- a/tools/commander/workspace_template/Displays/CFE/SB/Main.opi +++ /dev/null @@ -1,1733 +0,0 @@ - - - - - false - -1 - -1 - - false - - - - 1.5.3 - - - - 6 - 350 - - true - - - - - true - true - true - true - true - Display - 450 - 45ea5983:1502a6e6386:-7f06 - -1 - -1 - - - false - false - false - - - - true - - - - 0 - 1 - true - - Default - - false - - - - 0 - 20 - 0 - Text Update - 0 - false - /cfs/cfe_sb/CFE_SB_HKMsg_t_param.Payload.CommandCnt - - 0.0 - - - true - true - false - - - true - ###### - $(pv_name) -$(pv_value) - false - 1 - true - Text Update - 100 - false - 45ea5983:1502a6e6386:-7f01 - 169 - 55 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 2 - Label - - - true - true - false - - - Cmd Count - - true - 1 - true - Label - 100 - false - 2b4f25d5:1502b5812fe:-7ff9 - 52 - 55 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 2 - Label_1 - - - true - true - false - - - Err Count - - true - 1 - true - Label - 100 - false - 2b4f25d5:1502b5812fe:-7fef - 52 - 74 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 2 - Label_2 - - - true - true - false - - - No Subscribers - - true - 1 - true - Label - 146 - false - 2b4f25d5:1502b5812fe:-7fea - 6 - 121 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 2 - Label_3 - - - true - true - false - - - Msg Send Errors - - true - 1 - true - Label - 146 - false - 2b4f25d5:1502b5812fe:-7fe5 - 6 - 140 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 2 - Label_4 - - - true - true - false - - - Msg Receive Errors - - true - 1 - true - Label - 146 - false - 2b4f25d5:1502b5812fe:-7fe0 - 6 - 159 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 2 - Label_5 - - - true - true - false - - - Internal Errors - - true - 1 - true - Label - 146 - false - 2b4f25d5:1502b5812fe:-7fdb - 6 - 178 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 2 - Label_6 - - - true - true - false - - - Create Pipe Errors - - true - 1 - true - Label - 146 - false - 2b4f25d5:1502b5812fe:-7fd6 - 6 - 197 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 2 - Label_7 - - - true - true - false - - - Subscribe Errors - - true - 1 - true - Label - 146 - false - 2b4f25d5:1502b5812fe:-7fd1 - 6 - 216 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 2 - Label_8 - - - true - true - false - - - Dup Subscriptions - - true - 1 - true - Label - 146 - false - 2b4f25d5:1502b5812fe:-7fa3 - 6 - 235 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 2 - Label_9 - - - true - true - false - - - Pipe Overflow Errors - - true - 1 - true - Label - 146 - false - 2b4f25d5:1502b5812fe:-7f9e - 6 - 254 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 2 - Label_10 - - - true - true - false - - - Msg Limit Errors - - true - 1 - true - Label - 146 - false - 2b4f25d5:1502b5812fe:-7f99 - 6 - 273 - - - - false - - - - - - - 0 - 1 - true - - Default Bold - - - - - 20 - 1 - Label_40 - - - true - true - false - - - Misc - - true - 1 - true - Label - 133 - false - 2b4f25d5:1502b5812fe:-7d52 - 81 - 102 - - - - false - - - - - - - 0 - 1 - true - - Default Bold - - - - - 20 - 1 - Label_46 - - - true - true - false - - - Commanding - - true - 1 - true - Label - 164 - false - 2b4f25d5:1502b5812fe:-7d1c - 66 - 36 - - - - false - false - false - - - - true - - - - 0 - 1 - true - - Default - - false - - - - 0 - 20 - 0 - Text Update_1 - 0 - false - /cfs/cfe_sb/CFE_SB_HKMsg_t_param.Payload.CmdErrCnt - - 0.0 - - - true - true - false - - - true - ###### - $(pv_name) -$(pv_value) - false - 1 - true - Text Update - 100 - false - 2b4f25d5:1502b5812fe:-7d06 - 169 - 74 - - - - false - false - false - - - - true - - - - 0 - 1 - true - - Default - - false - - - - 1 - 20 - 0 - Text Update_2 - 0 - false - /cfs/cfe_sb/CFE_SB_HKMsg_t_param.Payload.NoSubscribersCnt - - 0.0 - - - true - true - false - - - true - ###### - $(pv_name) -$(pv_value) - false - 1 - true - Text Update - 100 - false - 2b4f25d5:1502b5812fe:-7d01 - 169 - 121 - - - - false - false - false - - - - true - - - - 0 - 1 - true - - Default - - false - - - - 0 - 20 - 0 - Text Update_3 - 0 - false - /cfs/cfe_sb/CFE_SB_HKMsg_t_param.Payload.MsgSendErrCnt - - 0.0 - - - true - true - false - - - true - ###### - $(pv_name) -$(pv_value) - false - 1 - true - Text Update - 100 - false - 2b4f25d5:1502b5812fe:-7cfc - 169 - 140 - - - - false - false - false - - - - true - - - - 0 - 1 - true - - Default - - false - - - - 0 - 20 - 0 - Text Update_4 - 0 - false - /cfs/cfe_sb/CFE_SB_HKMsg_t_param.Payload.MsgReceiveErrCnt - - 0.0 - - - true - true - false - - - true - ###### - $(pv_name) -$(pv_value) - false - 1 - true - Text Update - 100 - false - 2b4f25d5:1502b5812fe:-7cf7 - 169 - 159 - - - - false - false - false - - - - true - - - - 0 - 1 - true - - Default - - false - - - - 0 - 20 - 0 - Text Update_5 - 0 - false - /cfs/cfe_sb/CFE_SB_HKMsg_t_param.Payload.InternalErrCnt - - 0.0 - - - true - true - false - - - true - ###### - $(pv_name) -$(pv_value) - false - 1 - true - Text Update - 100 - false - 2b4f25d5:1502b5812fe:-7cf2 - 169 - 178 - - - - false - false - false - - - - true - - - - 0 - 1 - true - - Default - - false - - - - 0 - 20 - 0 - Text Update_6 - 0 - false - /cfs/cfe_sb/CFE_SB_HKMsg_t_param.Payload.CreatePipeErrCnt - - 0.0 - - - true - true - false - - - true - ###### - $(pv_name) -$(pv_value) - false - 1 - true - Text Update - 100 - false - 2b4f25d5:1502b5812fe:-7ced - 169 - 197 - - - - false - false - false - - - - true - - - - 0 - 1 - true - - Default - - false - - - - 0 - 20 - 0 - Text Update_7 - 0 - false - /cfs/cfe_sb/CFE_SB_HKMsg_t_param.Payload.SubscribeErrCnt - - 0.0 - - - true - true - false - - - true - ###### - $(pv_name) -$(pv_value) - false - 1 - true - Text Update - 100 - false - 2b4f25d5:1502b5812fe:-7ce8 - 169 - 216 - - - - false - false - false - - - - true - - - - 0 - 1 - true - - Default - - false - - - - 0 - 20 - 0 - Text Update_8 - 0 - false - /cfs/cfe_sb/CFE_SB_HKMsg_t_param.Payload.DupSubscriptionsCnt - - 0.0 - - - true - true - false - - - true - ###### - $(pv_name) -$(pv_value) - false - 1 - true - Text Update - 100 - false - 2b4f25d5:1502b5812fe:-7ce3 - 169 - 235 - - - - false - false - false - - - - true - - - - 0 - 1 - true - - Default - - false - - - - 0 - 20 - 0 - Text Update_9 - 0 - false - /cfs/cfe_sb/CFE_SB_HKMsg_t_param.Payload.PipeOverflowErrCnt - - 0.0 - - - true - true - false - - - true - ###### - $(pv_name) -$(pv_value) - false - 1 - true - Text Update - 100 - false - 2b4f25d5:1502b5812fe:-7cde - 169 - 254 - - - - false - false - false - - - - true - - - - 0 - 1 - true - - Default - - false - - - - 0 - 20 - 0 - Text Update_10 - 0 - false - /cfs/cfe_sb/CFE_SB_HKMsg_t_param.Payload.MsgLimErrCnt - - 0.0 - - - true - true - false - - - true - ###### - $(pv_name) -$(pv_value) - false - 1 - true - Text Update - 100 - false - 2b4f25d5:1502b5812fe:-7cd9 - 169 - 273 - - - - - scripts/NoOp.js - - false - - - - false - false - - - - false - - - - 0 - 1 - true - - Default - - false - - - - 20 - - NoOp - 0 - - - - - true - true - false - - - - NoOp - false - This command performs no other function than to increment the command execution counter. The command may be used to verify general aliveness of the Event Services task. - true - Action Button - 67 - 39deb42:1504a4eb8cc:-7de2 - 276 - 55 - - - - - scripts/ResetCounters.js - - false - - - - false - false - - - - false - - - - 0 - 1 - true - - Default - - false - - - - 20 - - NoOp_1 - 0 - - - - - true - true - false - - - - Reset - false - $(pv_name) -$(pv_value) - true - Action Button - 67 - -9ddfcbe:1507831914f:-7cfc - 276 - 74 - - - - false - - - - - - - 0 - 1 - true - - Default Bold - - - - - 20 - 1 - Label_49 - - - true - true - false - - - Core Flight Executive - Software Bus - - true - 1 - true - Label - 295 - false - 763e00b7:150973f1dd8:-7cf4 - 66 - 6 - - - - - ViewStatistics.opi - - true - - 0 - - - - false - false - - - - false - - - - 0 - 1 - true - - Default - - false - - - - 26 - - Action Button - 0 - - - - - true - true - false - - - - View Statistics - false - $(pv_name) -$(pv_value) - true - Action Button - 142 - 763e00b7:150973f1dd8:-7bb2 - 294 - 168 - - - - - DumpRoutingInfo.opi - - true - - 8 - - - - false - false - - - - false - - - - 0 - 1 - true - - Default - - false - - - - 26 - - Action Button_1 - 0 - - - - - true - true - false - - - - Dump Routing Info - false - $(pv_name) -$(pv_value) - true - Action Button - 142 - 763e00b7:150973f1dd8:-7ba6 - 294 - 193 - - - - - DumpPipeInfo.opi - - true - - 8 - - - - false - false - - - - false - - - - 0 - 1 - true - - Default - - false - - - - 26 - - Action Button_2 - 0 - - - - - true - true - false - - - - Dump Pipe Info - false - $(pv_name) -$(pv_value) - true - Action Button - 142 - 763e00b7:150973f1dd8:-769d - 294 - 218 - - - - - DumpMapInfo.opi - - true - - 8 - - - - false - false - - - - false - - - - 0 - 1 - true - - Default - - false - - - - 26 - - Action Button_3 - 0 - - - - - true - true - false - - - - Dump Map Info - false - $(pv_name) -$(pv_value) - true - Action Button - 142 - 763e00b7:150973f1dd8:-75e2 - 294 - 243 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 2 - Label_50 - - - true - true - false - - - Memory In Use - - true - 1 - true - Label - 146 - false - 763e00b7:150973f1dd8:-7381 - 6 - 292 - - - - false - false - false - - - - true - - - - 0 - 1 - true - - Default - - false - - - - 0 - 20 - 0 - Text Update_11 - 0 - false - /cfs/cfe_sb/CFE_SB_HKMsg_t_param.Payload.MemInUse - - 0.0 - - - true - true - false - - - true - ###### - $(pv_name) -$(pv_value) - false - 1 - true - Text Update - 100 - false - 763e00b7:150973f1dd8:-7380 - 169 - 292 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 2 - Label_51 - - - true - true - false - - - Unmarked Memory - - true - 1 - true - Label - 146 - false - 763e00b7:150973f1dd8:-7379 - 6 - 311 - - - - false - false - false - - - - true - - - - 0 - 1 - true - - Default - - false - - - - 0 - 20 - 0 - Text Update_12 - 0 - false - /cfs/cfe_sb/CFE_SB_HKMsg_t_param.Payload.UnmarkedMem - - 0.0 - - - true - true - false - - - true - ###### - $(pv_name) -$(pv_value) - false - 1 - true - Text Update - 100 - false - 763e00b7:150973f1dd8:-7378 - 169 - 311 - - - - - EnaDisRoutes.opi - - true - - 8 - - - - false - false - - - - false - - - - 0 - 1 - true - - Default - - false - - - - 26 - - Action Button_4 - 0 - - - - - true - true - false - - - - Ena/Dis Routes - false - $(pv_name) -$(pv_value) - true - Action Button - 142 - 35ebaa52:1509cf6a868:-7ca7 - 294 - 118 - - \ No newline at end of file diff --git a/tools/commander/workspace_template/Displays/CFE/SB/ViewStatistics.opi b/tools/commander/workspace_template/Displays/CFE/SB/ViewStatistics.opi deleted file mode 100644 index fc7a9433a..000000000 --- a/tools/commander/workspace_template/Displays/CFE/SB/ViewStatistics.opi +++ /dev/null @@ -1,17183 +0,0 @@ - - - true - - 763e00b7:150973f1dd8:-7ba3 - true - false - - 1930 - - true - - 4.0.104.201510200439 - true - Display - - false - -1 - -1 - - - - - 300 - -1 - - 6 - true - -1 - true - - - - - - false - 0 - false - false - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-7b0d - - Telemeter Info - - false - 28 - 1 - - true - true - false - - - true - - - - - Action Button - false - - - - 133 - 78 - Action Button - 18 - - - - - - - - - true - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-7257 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/MsgIdsInUse - 1 - - - - false - Text Update - false - false - 1 - - - - 100 - 180 - Text Update - 66 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-7256 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PeakMsgIdsInUse - 1 - - - - false - Text Update - false - false - 1 - - - - 100 - 180 - Text Update_1 - 85 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-7255 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/MaxMsgIdsAllowed - 1 - - - - false - Text Update - false - false - 1 - - - - 100 - 180 - Text Update_2 - 104 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-7254 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipesInUse - 1 - - - - false - Text Update - false - false - 1 - - - - 100 - 180 - Text Update_3 - 123 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-7253 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PeakPipesInUse - 1 - - - - false - Text Update - false - false - 1 - - - - 100 - 180 - Text Update_4 - 142 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-7252 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/MaxPipesAllowed - 1 - - - - false - Text Update - false - false - 1 - - - - 100 - 180 - Text Update_5 - 161 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-7251 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/StatsMemInUse - 1 - - - - false - Text Update - false - false - 1 - - - - 100 - 180 - Text Update_6 - 180 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-7250 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PeakMemInUse - 1 - - - - false - Text Update - false - false - 1 - - - - 100 - 180 - Text Update_7 - 199 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-724f - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/MaxMemAllowed - 1 - - - - false - Text Update - false - false - 1 - - - - 100 - 180 - Text Update_8 - 218 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-724e - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/SubscriptionsInUse - 1 - - - - false - Text Update - false - false - 1 - - - - 100 - 180 - Text Update_9 - 237 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-724d - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PeakSubscriptionsInUse - 1 - - - - false - Text Update - false - false - 1 - - - - 100 - 180 - Text Update_10 - 256 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-724c - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/MaxSubscriptionsAllowed - 1 - - - - false - Text Update - false - false - 1 - - - - 100 - 180 - Text Update_11 - 275 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-724b - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/SBBuffersInUse - 1 - - - - false - Text Update - false - false - 1 - - - - 100 - 180 - Text Update_12 - 294 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-724a - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PeakSBBuffersInUse - 1 - - - - false - Text Update - false - false - 1 - - - - 100 - 180 - Text Update_13 - 313 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-7249 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/MaxPipeDepthAllowed - 1 - - - - false - Text Update - false - false - 1 - - - - 100 - 180 - Text Update_14 - 332 - - - - - - Default - - - - 0 - - 2 - - true - 763e00b7:150973f1dd8:-71e4 - true - false - Msg IDs in Use - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 116 - 54 - Label - 66 - - - - - - Default - - - - 0 - - 2 - - true - 763e00b7:150973f1dd8:-71d9 - true - false - Peak Msg IDs in Use - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 161 - 10 - Label_1 - 85 - - - - - - Default - - - - 0 - - 2 - - true - 763e00b7:150973f1dd8:-71d1 - true - false - Max Msg IDs Allowed - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 161 - 10 - Label_2 - 104 - - - - - - Default - - - - 0 - - 2 - - true - 763e00b7:150973f1dd8:-71c5 - true - false - Pipes in Use - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 161 - 10 - Label_3 - 123 - - - - - - Default - - - - 0 - - 2 - - true - 763e00b7:150973f1dd8:-71be - true - false - Peak Pipes in Use - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 161 - 10 - Label_4 - 142 - - - - - - Default - - - - 0 - - 2 - - true - 763e00b7:150973f1dd8:-71b3 - true - false - Max Pipes Allowed - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 161 - 10 - Label_5 - 161 - - - - - - Default - - - - 0 - - 2 - - true - 763e00b7:150973f1dd8:-71ac - true - false - Mem in Use - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 161 - 10 - Label_6 - 180 - - - - - - Default - - - - 0 - - 2 - - true - 763e00b7:150973f1dd8:-71a5 - true - false - Peak Mem in Use - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 161 - 10 - Label_7 - 199 - - - - - - Default - - - - 0 - - 2 - - true - 763e00b7:150973f1dd8:-719e - true - false - Max Mem Allowed - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 161 - 10 - Label_8 - 218 - - - - - - Default - - - - 0 - - 2 - - true - 763e00b7:150973f1dd8:-7197 - true - false - Subscriptions in Use - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 161 - 10 - Label_9 - 237 - - - - - - Default - - - - 0 - - 2 - - true - 763e00b7:150973f1dd8:-7190 - true - false - Peak Subscriptions in Use - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 161 - 10 - Label_10 - 256 - - - - - - Default - - - - 0 - - 2 - - true - 763e00b7:150973f1dd8:-7189 - true - false - Max Subscriptions Allowed - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 161 - 10 - Label_11 - 275 - - - - - - Default - - - - 0 - - 2 - - true - 763e00b7:150973f1dd8:-7182 - true - false - SB Buffers in Use - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 161 - 10 - Label_12 - 294 - - - - - - Default - - - - 0 - - 2 - - true - 763e00b7:150973f1dd8:-717b - true - false - Peak SB Buffers in Use - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 161 - 10 - Label_13 - 313 - - - - - - Default - - - - 0 - - 2 - - true - 763e00b7:150973f1dd8:-7174 - true - false - Max Pipe Depth Allowed - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 161 - 10 - Label_14 - 332 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-6f45 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_0_PipeID - 1 - - - - false - Text Update - false - false - 1 - - - - 47 - 97 - Text Update_15 - 390 - - - - - - Default - - - - 0 - - 2 - - true - 763e00b7:150973f1dd8:-6f3b - true - false - 0 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 28 - 12 - Label_15 - 390 - - - - - - Default - - - - 0 - - 2 - - true - 763e00b7:150973f1dd8:-6f2d - true - false - Pipe ID - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 47 - 97 - Label_16 - 371 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-6f1f - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_0_Depth - 1 - - - - false - Text Update - false - false - 1 - - - - 53 - 143 - Text Update_16 - 390 - - - - - - Default - - - - 0 - - 2 - - true - 763e00b7:150973f1dd8:-6f17 - true - false - Depth - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 47 - 143 - Label_17 - 371 - - - - - - Default - - - - 0 - - 2 - - true - 763e00b7:150973f1dd8:-6efe - true - false - In Use - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 47 - 39 - Label_18 - 371 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - 763e00b7:150973f1dd8:-6ec7 - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_sb/PipeDepthStats_0_InUse - - - - - Check Box - false - - - - 21 - 58 - Check Box - 390 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-6eb9 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_0_PeakInUse - 1 - - - - false - Text Update - false - false - 1 - - - - 85 - 195 - Text Update_17 - 390 - - - - - - Default - - - - 0 - - 2 - - true - 763e00b7:150973f1dd8:-6eb8 - true - false - Peak in Use - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 79 - 190 - Label_19 - 371 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-6dea - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_1_PipeID - 1 - - - - false - Text Update - false - false - 1 - - - - 47 - 97 - Text Update_19 - 409 - - - - - - Default - - - - 0 - - 2 - - true - 763e00b7:150973f1dd8:-6de9 - true - false - 1 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 28 - 12 - Label_20 - 409 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-6de8 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_1_Depth - 1 - - - - false - Text Update - false - false - 1 - - - - 53 - 143 - Text Update_20 - 409 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - 763e00b7:150973f1dd8:-6de7 - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_sb/PipeDepthStats_1_InUse - - - - - Check Box - false - - - - 21 - 58 - Check Box_1 - 409 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-6de6 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_1_PeakInUse - 1 - - - - false - Text Update - false - false - 1 - - - - 85 - 195 - Text Update_21 - 409 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-6dd6 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_2_PipeID - 1 - - - - false - Text Update - false - false - 1 - - - - 47 - 97 - Text Update_23 - 428 - - - - - - Default - - - - 0 - - 2 - - true - 763e00b7:150973f1dd8:-6dd5 - true - false - 2 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 28 - 12 - Label_21 - 428 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-6dd4 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_2_Depth - 1 - - - - false - Text Update - false - false - 1 - - - - 53 - 143 - Text Update_24 - 428 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - 763e00b7:150973f1dd8:-6dd3 - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_sb/PipeDepthStats_2_InUse - - - - - Check Box - false - - - - 21 - 58 - Check Box_2 - 428 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-6dd2 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_2_PeakInUse - 1 - - - - false - Text Update - false - false - 1 - - - - 85 - 195 - Text Update_25 - 428 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-6dc2 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_3_PipeID - 1 - - - - false - Text Update - false - false - 1 - - - - 47 - 97 - Text Update_27 - 447 - - - - - - Default - - - - 0 - - 2 - - true - 763e00b7:150973f1dd8:-6dc1 - true - false - 3 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 28 - 12 - Label_22 - 447 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-6dc0 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_3_Depth - 1 - - - - false - Text Update - false - false - 1 - - - - 53 - 143 - Text Update_28 - 447 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - 763e00b7:150973f1dd8:-6dbf - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_sb/PipeDepthStats_3_InUse - - - - - Check Box - false - - - - 21 - 58 - Check Box_3 - 447 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-6dbe - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_3_PeakInUse - 1 - - - - false - Text Update - false - false - 1 - - - - 85 - 195 - Text Update_29 - 447 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-6dae - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_4_PipeID - 1 - - - - false - Text Update - false - false - 1 - - - - 47 - 97 - Text Update_31 - 466 - - - - - - Default - - - - 0 - - 2 - - true - 763e00b7:150973f1dd8:-6dad - true - false - 4 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 28 - 12 - Label_23 - 466 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-6dac - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_4_Depth - 1 - - - - false - Text Update - false - false - 1 - - - - 53 - 143 - Text Update_32 - 466 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - 763e00b7:150973f1dd8:-6dab - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_sb/PipeDepthStats_4_InUse - - - - - Check Box - false - - - - 21 - 58 - Check Box_4 - 466 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-6daa - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_4_PeakInUse - 1 - - - - false - Text Update - false - false - 1 - - - - 85 - 195 - Text Update_33 - 466 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-6d9a - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_5_PipeID - 1 - - - - false - Text Update - false - false - 1 - - - - 47 - 97 - Text Update_35 - 485 - - - - - - Default - - - - 0 - - 2 - - true - 763e00b7:150973f1dd8:-6d99 - true - false - 5 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 28 - 12 - Label_24 - 485 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-6d98 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_5_Depth - 1 - - - - false - Text Update - false - false - 1 - - - - 53 - 143 - Text Update_36 - 485 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - 763e00b7:150973f1dd8:-6d97 - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_sb/PipeDepthStats_5_InUse - - - - - Check Box - false - - - - 21 - 58 - Check Box_5 - 485 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-6d96 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_5_PeakInUse - 1 - - - - false - Text Update - false - false - 1 - - - - 85 - 195 - Text Update_37 - 485 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-6d86 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_6_PipeID - 1 - - - - false - Text Update - false - false - 1 - - - - 47 - 97 - Text Update_39 - 504 - - - - - - Default - - - - 0 - - 2 - - true - 763e00b7:150973f1dd8:-6d85 - true - false - 6 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 28 - 12 - Label_25 - 504 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-6d84 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_6_Depth - 1 - - - - false - Text Update - false - false - 1 - - - - 53 - 143 - Text Update_40 - 504 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - 763e00b7:150973f1dd8:-6d83 - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_sb/PipeDepthStats_6_InUse - - - - - Check Box - false - - - - 21 - 58 - Check Box_6 - 504 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-6d82 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_6_PeakInUse - 1 - - - - false - Text Update - false - false - 1 - - - - 85 - 195 - Text Update_41 - 504 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-6d72 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_7_PipeID - 1 - - - - false - Text Update - false - false - 1 - - - - 47 - 97 - Text Update_43 - 523 - - - - - - Default - - - - 0 - - 2 - - true - 763e00b7:150973f1dd8:-6d71 - true - false - 7 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 28 - 12 - Label_26 - 523 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-6d70 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_7_Depth - 1 - - - - false - Text Update - false - false - 1 - - - - 53 - 143 - Text Update_44 - 523 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - 763e00b7:150973f1dd8:-6d6f - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_sb/PipeDepthStats_7_InUse - - - - - Check Box - false - - - - 21 - 58 - Check Box_7 - 523 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-6d6e - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_7_PeakInUse - 1 - - - - false - Text Update - false - false - 1 - - - - 85 - 195 - Text Update_45 - 523 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-6d5e - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_8_PipeID - 1 - - - - false - Text Update - false - false - 1 - - - - 47 - 97 - Text Update_47 - 542 - - - - - - Default - - - - 0 - - 2 - - true - 763e00b7:150973f1dd8:-6d5d - true - false - 8 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 28 - 12 - Label_27 - 542 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-6d5c - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_8_Depth - 1 - - - - false - Text Update - false - false - 1 - - - - 53 - 143 - Text Update_48 - 542 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - 763e00b7:150973f1dd8:-6d5b - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_sb/PipeDepthStats_8_InUse - - - - - Check Box - false - - - - 21 - 58 - Check Box_8 - 542 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-6d5a - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_8_PeakInUse - 1 - - - - false - Text Update - false - false - 1 - - - - 85 - 195 - Text Update_49 - 542 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-6d4a - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_9_PipeID - 1 - - - - false - Text Update - false - false - 1 - - - - 47 - 97 - Text Update_51 - 561 - - - - - - Default - - - - 0 - - 2 - - true - 763e00b7:150973f1dd8:-6d49 - true - false - 9 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 28 - 12 - Label_28 - 561 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-6d48 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_9_Depth - 1 - - - - false - Text Update - false - false - 1 - - - - 53 - 143 - Text Update_52 - 561 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - 763e00b7:150973f1dd8:-6d47 - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_sb/PipeDepthStats_9_InUse - - - - - Check Box - false - - - - 21 - 58 - Check Box_9 - 561 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-6d46 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_9_PeakInUse - 1 - - - - false - Text Update - false - false - 1 - - - - 85 - 195 - Text Update_53 - 561 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-6a36 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_10_PipeID - 1 - - - - false - Text Update - false - false - 1 - - - - 47 - 97 - Text Update_54 - 580 - - - - - - Default - - - - 0 - - 2 - - true - 763e00b7:150973f1dd8:-6a35 - true - false - 10 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 28 - 12 - Label_29 - 580 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-6a34 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_10_Depth - 1 - - - - false - Text Update - false - false - 1 - - - - 53 - 143 - Text Update_55 - 580 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - 763e00b7:150973f1dd8:-6a33 - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_sb/PipeDepthStats_10_InUse - - - - - Check Box - false - - - - 21 - 58 - Check Box_10 - 580 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-6a32 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_10_PeakInUse - 1 - - - - false - Text Update - false - false - 1 - - - - 85 - 195 - Text Update_56 - 580 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-6a31 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_11_PipeID - 1 - - - - false - Text Update - false - false - 1 - - - - 47 - 97 - Text Update_57 - 599 - - - - - - Default - - - - 0 - - 2 - - true - 763e00b7:150973f1dd8:-6a30 - true - false - 11 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 28 - 12 - Label_30 - 599 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-6a2f - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_11_Depth - 1 - - - - false - Text Update - false - false - 1 - - - - 53 - 143 - Text Update_58 - 599 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - 763e00b7:150973f1dd8:-6a2e - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_sb/PipeDepthStats_11_InUse - - - - - Check Box - false - - - - 21 - 58 - Check Box_11 - 599 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-6a2d - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_11_PeakInUse - 1 - - - - false - Text Update - false - false - 1 - - - - 85 - 195 - Text Update_59 - 599 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-6a2c - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_12_PipeID - 1 - - - - false - Text Update - false - false - 1 - - - - 47 - 97 - Text Update_60 - 618 - - - - - - Default - - - - 0 - - 2 - - true - 763e00b7:150973f1dd8:-6a2b - true - false - 12 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 28 - 12 - Label_31 - 618 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-6a2a - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_12_Depth - 1 - - - - false - Text Update - false - false - 1 - - - - 53 - 143 - Text Update_61 - 618 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - 763e00b7:150973f1dd8:-6a29 - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_sb/PipeDepthStats_12_InUse - - - - - Check Box - false - - - - 21 - 58 - Check Box_12 - 618 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-6a28 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_12_PeakInUse - 1 - - - - false - Text Update - false - false - 1 - - - - 85 - 195 - Text Update_62 - 618 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-6a27 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_13_PipeID - 1 - - - - false - Text Update - false - false - 1 - - - - 47 - 97 - Text Update_63 - 637 - - - - - - Default - - - - 0 - - 2 - - true - 763e00b7:150973f1dd8:-6a26 - true - false - 13 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 28 - 12 - Label_32 - 637 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-6a25 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_13_Depth - 1 - - - - false - Text Update - false - false - 1 - - - - 53 - 143 - Text Update_64 - 637 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - 763e00b7:150973f1dd8:-6a24 - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_sb/PipeDepthStats_13_InUse - - - - - Check Box - false - - - - 21 - 58 - Check Box_13 - 637 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-6a23 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_13_PeakInUse - 1 - - - - false - Text Update - false - false - 1 - - - - 85 - 195 - Text Update_65 - 637 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-6a22 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_14_PipeID - 1 - - - - false - Text Update - false - false - 1 - - - - 47 - 97 - Text Update_66 - 656 - - - - - - Default - - - - 0 - - 2 - - true - 763e00b7:150973f1dd8:-6a21 - true - false - 14 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 28 - 12 - Label_33 - 656 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-6a20 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_14_Depth - 1 - - - - false - Text Update - false - false - 1 - - - - 53 - 143 - Text Update_67 - 656 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - 763e00b7:150973f1dd8:-6a1f - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_sb/PipeDepthStats_14_InUse - - - - - Check Box - false - - - - 21 - 58 - Check Box_14 - 656 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-6a1e - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_14_PeakInUse - 1 - - - - false - Text Update - false - false - 1 - - - - 85 - 195 - Text Update_68 - 656 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-6a1d - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_15_PipeID - 1 - - - - false - Text Update - false - false - 1 - - - - 47 - 97 - Text Update_69 - 675 - - - - - - Default - - - - 0 - - 2 - - true - 763e00b7:150973f1dd8:-6a1c - true - false - 15 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 28 - 12 - Label_34 - 675 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-6a1b - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_15_Depth - 1 - - - - false - Text Update - false - false - 1 - - - - 53 - 143 - Text Update_70 - 675 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - 763e00b7:150973f1dd8:-6a1a - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_sb/PipeDepthStats_15_InUse - - - - - Check Box - false - - - - 21 - 58 - Check Box_15 - 675 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-6a19 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_15_PeakInUse - 1 - - - - false - Text Update - false - false - 1 - - - - 85 - 195 - Text Update_71 - 675 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-6a18 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_16_PipeID - 1 - - - - false - Text Update - false - false - 1 - - - - 47 - 97 - Text Update_72 - 694 - - - - - - Default - - - - 0 - - 2 - - true - 763e00b7:150973f1dd8:-6a17 - true - false - 16 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 28 - 12 - Label_35 - 694 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-6a16 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_16_Depth - 1 - - - - false - Text Update - false - false - 1 - - - - 53 - 143 - Text Update_73 - 694 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - 763e00b7:150973f1dd8:-6a15 - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_sb/PipeDepthStats_16_InUse - - - - - Check Box - false - - - - 21 - 58 - Check Box_16 - 694 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-6a14 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_16_PeakInUse - 1 - - - - false - Text Update - false - false - 1 - - - - 85 - 195 - Text Update_74 - 694 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-6a13 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_17_PipeID - 1 - - - - false - Text Update - false - false - 1 - - - - 47 - 97 - Text Update_75 - 713 - - - - - - Default - - - - 0 - - 2 - - true - 763e00b7:150973f1dd8:-6a12 - true - false - 17 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 28 - 12 - Label_36 - 713 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-6a11 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_17_Depth - 1 - - - - false - Text Update - false - false - 1 - - - - 53 - 143 - Text Update_76 - 713 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - 763e00b7:150973f1dd8:-6a10 - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_sb/PipeDepthStats_17_InUse - - - - - Check Box - false - - - - 21 - 58 - Check Box_17 - 713 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-6a0f - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_17_PeakInUse - 1 - - - - false - Text Update - false - false - 1 - - - - 85 - 195 - Text Update_77 - 713 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-6a0e - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_18_PipeID - 1 - - - - false - Text Update - false - false - 1 - - - - 47 - 97 - Text Update_78 - 732 - - - - - - Default - - - - 0 - - 2 - - true - 763e00b7:150973f1dd8:-6a0d - true - false - 18 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 28 - 12 - Label_37 - 732 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-6a0c - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_18_Depth - 1 - - - - false - Text Update - false - false - 1 - - - - 53 - 143 - Text Update_79 - 732 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - 763e00b7:150973f1dd8:-6a0b - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_sb/PipeDepthStats_18_InUse - - - - - Check Box - false - - - - 21 - 58 - Check Box_18 - 732 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-6a0a - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_18_PeakInUse - 1 - - - - false - Text Update - false - false - 1 - - - - 85 - 195 - Text Update_80 - 732 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-6a09 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_19_PipeID - 1 - - - - false - Text Update - false - false - 1 - - - - 47 - 97 - Text Update_81 - 751 - - - - - - Default - - - - 0 - - 2 - - true - 763e00b7:150973f1dd8:-6a08 - true - false - 19 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 28 - 12 - Label_38 - 751 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-6a07 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_19_Depth - 1 - - - - false - Text Update - false - false - 1 - - - - 53 - 143 - Text Update_82 - 751 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - 763e00b7:150973f1dd8:-6a06 - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_sb/PipeDepthStats_19_InUse - - - - - Check Box - false - - - - 21 - 58 - Check Box_19 - 751 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-6a05 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_19_PeakInUse - 1 - - - - false - Text Update - false - false - 1 - - - - 85 - 195 - Text Update_83 - 751 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-696b - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_20_PipeID - 1 - - - - false - Text Update - false - false - 1 - - - - 47 - 97 - Text Update_84 - 770 - - - - - - Default - - - - 0 - - 2 - - true - 763e00b7:150973f1dd8:-696a - true - false - 20 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 28 - 12 - Label_39 - 770 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-6969 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_20_Depth - 1 - - - - false - Text Update - false - false - 1 - - - - 53 - 143 - Text Update_85 - 770 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - 763e00b7:150973f1dd8:-6968 - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_sb/PipeDepthStats_20_InUse - - - - - Check Box - false - - - - 21 - 58 - Check Box_20 - 770 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-6967 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_20_PeakInUse - 1 - - - - false - Text Update - false - false - 1 - - - - 85 - 195 - Text Update_86 - 770 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-6966 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_21_PipeID - 1 - - - - false - Text Update - false - false - 1 - - - - 47 - 97 - Text Update_87 - 789 - - - - - - Default - - - - 0 - - 2 - - true - 763e00b7:150973f1dd8:-6965 - true - false - 21 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 28 - 12 - Label_40 - 789 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-6964 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_21_Depth - 1 - - - - false - Text Update - false - false - 1 - - - - 53 - 143 - Text Update_88 - 789 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - 763e00b7:150973f1dd8:-6963 - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_sb/PipeDepthStats_21_InUse - - - - - Check Box - false - - - - 21 - 58 - Check Box_21 - 789 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-6962 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_21_PeakInUse - 1 - - - - false - Text Update - false - false - 1 - - - - 85 - 195 - Text Update_89 - 789 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-6961 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_22_PipeID - 1 - - - - false - Text Update - false - false - 1 - - - - 47 - 97 - Text Update_90 - 808 - - - - - - Default - - - - 0 - - 2 - - true - 763e00b7:150973f1dd8:-6960 - true - false - 22 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 28 - 12 - Label_41 - 808 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-695f - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_22_Depth - 1 - - - - false - Text Update - false - false - 1 - - - - 53 - 143 - Text Update_91 - 808 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - 763e00b7:150973f1dd8:-695e - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_sb/PipeDepthStats_22_InUse - - - - - Check Box - false - - - - 21 - 58 - Check Box_22 - 808 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-695d - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_22_PeakInUse - 1 - - - - false - Text Update - false - false - 1 - - - - 85 - 195 - Text Update_92 - 808 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-695c - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_23_PipeID - 1 - - - - false - Text Update - false - false - 1 - - - - 47 - 97 - Text Update_93 - 827 - - - - - - Default - - - - 0 - - 2 - - true - 763e00b7:150973f1dd8:-695b - true - false - 23 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 28 - 12 - Label_42 - 827 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-695a - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_23_Depth - 1 - - - - false - Text Update - false - false - 1 - - - - 53 - 143 - Text Update_94 - 827 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - 763e00b7:150973f1dd8:-6959 - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_sb/PipeDepthStats_23_InUse - - - - - Check Box - false - - - - 21 - 58 - Check Box_23 - 827 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-6958 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_23_PeakInUse - 1 - - - - false - Text Update - false - false - 1 - - - - 85 - 195 - Text Update_95 - 827 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-6957 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_24_PipeID - 1 - - - - false - Text Update - false - false - 1 - - - - 47 - 97 - Text Update_96 - 846 - - - - - - Default - - - - 0 - - 2 - - true - 763e00b7:150973f1dd8:-6956 - true - false - 24 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 28 - 12 - Label_43 - 846 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-6955 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_24_Depth - 1 - - - - false - Text Update - false - false - 1 - - - - 53 - 143 - Text Update_97 - 846 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - 763e00b7:150973f1dd8:-6954 - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_sb/PipeDepthStats_24_InUse - - - - - Check Box - false - - - - 21 - 58 - Check Box_24 - 846 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-6953 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_24_PeakInUse - 1 - - - - false - Text Update - false - false - 1 - - - - 85 - 195 - Text Update_98 - 846 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-6952 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_25_PipeID - 1 - - - - false - Text Update - false - false - 1 - - - - 47 - 97 - Text Update_99 - 865 - - - - - - Default - - - - 0 - - 2 - - true - 763e00b7:150973f1dd8:-6951 - true - false - 25 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 28 - 12 - Label_44 - 865 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-6950 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_25_Depth - 1 - - - - false - Text Update - false - false - 1 - - - - 53 - 143 - Text Update_100 - 865 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - 763e00b7:150973f1dd8:-694f - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_sb/PipeDepthStats_25_InUse - - - - - Check Box - false - - - - 21 - 58 - Check Box_25 - 865 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-694e - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_25_PeakInUse - 1 - - - - false - Text Update - false - false - 1 - - - - 85 - 195 - Text Update_101 - 865 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-694d - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_26_PipeID - 1 - - - - false - Text Update - false - false - 1 - - - - 47 - 97 - Text Update_102 - 884 - - - - - - Default - - - - 0 - - 2 - - true - 763e00b7:150973f1dd8:-694c - true - false - 26 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 28 - 12 - Label_45 - 884 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-694b - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_26_Depth - 1 - - - - false - Text Update - false - false - 1 - - - - 53 - 143 - Text Update_103 - 884 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - 763e00b7:150973f1dd8:-694a - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_sb/PipeDepthStats_26_InUse - - - - - Check Box - false - - - - 21 - 58 - Check Box_26 - 884 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-6949 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_26_PeakInUse - 1 - - - - false - Text Update - false - false - 1 - - - - 85 - 195 - Text Update_104 - 884 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-6948 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_27_PipeID - 1 - - - - false - Text Update - false - false - 1 - - - - 47 - 97 - Text Update_105 - 903 - - - - - - Default - - - - 0 - - 2 - - true - 763e00b7:150973f1dd8:-6947 - true - false - 27 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 28 - 12 - Label_46 - 903 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-6946 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_27_Depth - 1 - - - - false - Text Update - false - false - 1 - - - - 53 - 143 - Text Update_106 - 903 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - 763e00b7:150973f1dd8:-6945 - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_sb/PipeDepthStats_27_InUse - - - - - Check Box - false - - - - 21 - 58 - Check Box_27 - 903 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-6944 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_27_PeakInUse - 1 - - - - false - Text Update - false - false - 1 - - - - 85 - 195 - Text Update_107 - 903 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-6943 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_28_PipeID - 1 - - - - false - Text Update - false - false - 1 - - - - 47 - 97 - Text Update_108 - 922 - - - - - - Default - - - - 0 - - 2 - - true - 763e00b7:150973f1dd8:-6942 - true - false - 28 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 28 - 12 - Label_47 - 922 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-6941 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_28_Depth - 1 - - - - false - Text Update - false - false - 1 - - - - 53 - 143 - Text Update_109 - 922 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - 763e00b7:150973f1dd8:-6940 - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_sb/PipeDepthStats_28_InUse - - - - - Check Box - false - - - - 21 - 58 - Check Box_28 - 922 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-693f - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_28_PeakInUse - 1 - - - - false - Text Update - false - false - 1 - - - - 85 - 195 - Text Update_110 - 922 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-693e - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_29_PipeID - 1 - - - - false - Text Update - false - false - 1 - - - - 47 - 97 - Text Update_111 - 941 - - - - - - Default - - - - 0 - - 2 - - true - 763e00b7:150973f1dd8:-693d - true - false - 29 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 28 - 12 - Label_48 - 941 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-693c - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_29_Depth - 1 - - - - false - Text Update - false - false - 1 - - - - 53 - 143 - Text Update_112 - 941 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - 763e00b7:150973f1dd8:-693b - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_sb/PipeDepthStats_29_InUse - - - - - Check Box - false - - - - 21 - 58 - Check Box_29 - 941 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-693a - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_29_PeakInUse - 1 - - - - false - Text Update - false - false - 1 - - - - 85 - 195 - Text Update_113 - 941 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-68a0 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_30_PipeID - 1 - - - - false - Text Update - false - false - 1 - - - - 47 - 97 - Text Update_114 - 960 - - - - - - Default - - - - 0 - - 2 - - true - 763e00b7:150973f1dd8:-689f - true - false - 30 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 28 - 12 - Label_49 - 960 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-689e - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_30_Depth - 1 - - - - false - Text Update - false - false - 1 - - - - 53 - 143 - Text Update_115 - 960 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - 763e00b7:150973f1dd8:-689d - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_sb/PipeDepthStats_30_InUse - - - - - Check Box - false - - - - 21 - 58 - Check Box_30 - 960 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-689c - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_30_PeakInUse - 1 - - - - false - Text Update - false - false - 1 - - - - 85 - 195 - Text Update_116 - 960 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-689b - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_31_PipeID - 1 - - - - false - Text Update - false - false - 1 - - - - 47 - 97 - Text Update_117 - 979 - - - - - - Default - - - - 0 - - 2 - - true - 763e00b7:150973f1dd8:-689a - true - false - 31 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 28 - 12 - Label_50 - 979 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-6899 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_31_Depth - 1 - - - - false - Text Update - false - false - 1 - - - - 53 - 143 - Text Update_118 - 979 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - 763e00b7:150973f1dd8:-6898 - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_sb/PipeDepthStats_31_InUse - - - - - Check Box - false - - - - 21 - 58 - Check Box_31 - 979 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-6897 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_31_PeakInUse - 1 - - - - false - Text Update - false - false - 1 - - - - 85 - 195 - Text Update_119 - 979 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-6896 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_32_PipeID - 1 - - - - false - Text Update - false - false - 1 - - - - 47 - 97 - Text Update_120 - 998 - - - - - - Default - - - - 0 - - 2 - - true - 763e00b7:150973f1dd8:-6895 - true - false - 32 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 28 - 12 - Label_51 - 998 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-6894 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_32_Depth - 1 - - - - false - Text Update - false - false - 1 - - - - 53 - 143 - Text Update_121 - 998 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - 763e00b7:150973f1dd8:-6893 - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_sb/PipeDepthStats_32_InUse - - - - - Check Box - false - - - - 21 - 58 - Check Box_32 - 998 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-6892 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_32_PeakInUse - 1 - - - - false - Text Update - false - false - 1 - - - - 85 - 195 - Text Update_122 - 998 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-6891 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_33_PipeID - 1 - - - - false - Text Update - false - false - 1 - - - - 47 - 97 - Text Update_123 - 1017 - - - - - - Default - - - - 0 - - 2 - - true - 763e00b7:150973f1dd8:-6890 - true - false - 33 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 28 - 12 - Label_52 - 1017 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-688f - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_33_Depth - 1 - - - - false - Text Update - false - false - 1 - - - - 53 - 143 - Text Update_124 - 1017 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - 763e00b7:150973f1dd8:-688e - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_sb/PipeDepthStats_33_InUse - - - - - Check Box - false - - - - 21 - 58 - Check Box_33 - 1017 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-688d - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_33_PeakInUse - 1 - - - - false - Text Update - false - false - 1 - - - - 85 - 195 - Text Update_125 - 1017 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-688c - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_34_PipeID - 1 - - - - false - Text Update - false - false - 1 - - - - 47 - 97 - Text Update_126 - 1036 - - - - - - Default - - - - 0 - - 2 - - true - 763e00b7:150973f1dd8:-688b - true - false - 34 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 28 - 12 - Label_53 - 1036 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-688a - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_34_Depth - 1 - - - - false - Text Update - false - false - 1 - - - - 53 - 143 - Text Update_127 - 1036 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - 763e00b7:150973f1dd8:-6889 - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_sb/PipeDepthStats_34_InUse - - - - - Check Box - false - - - - 21 - 58 - Check Box_34 - 1036 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-6888 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_34_PeakInUse - 1 - - - - false - Text Update - false - false - 1 - - - - 85 - 195 - Text Update_128 - 1036 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-6887 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_35_PipeID - 1 - - - - false - Text Update - false - false - 1 - - - - 47 - 97 - Text Update_129 - 1055 - - - - - - Default - - - - 0 - - 2 - - true - 763e00b7:150973f1dd8:-6886 - true - false - 35 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 28 - 12 - Label_54 - 1055 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-6885 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_35_Depth - 1 - - - - false - Text Update - false - false - 1 - - - - 53 - 143 - Text Update_130 - 1055 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - 763e00b7:150973f1dd8:-6884 - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_sb/PipeDepthStats_35_InUse - - - - - Check Box - false - - - - 21 - 58 - Check Box_35 - 1055 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-6883 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_35_PeakInUse - 1 - - - - false - Text Update - false - false - 1 - - - - 85 - 195 - Text Update_131 - 1055 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-6882 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_36_PipeID - 1 - - - - false - Text Update - false - false - 1 - - - - 47 - 97 - Text Update_132 - 1074 - - - - - - Default - - - - 0 - - 2 - - true - 763e00b7:150973f1dd8:-6881 - true - false - 36 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 28 - 12 - Label_55 - 1074 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-6880 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_36_Depth - 1 - - - - false - Text Update - false - false - 1 - - - - 53 - 143 - Text Update_133 - 1074 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - 763e00b7:150973f1dd8:-687f - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_sb/PipeDepthStats_36_InUse - - - - - Check Box - false - - - - 21 - 58 - Check Box_36 - 1074 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-687e - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_36_PeakInUse - 1 - - - - false - Text Update - false - false - 1 - - - - 85 - 195 - Text Update_134 - 1074 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-687d - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_37_PipeID - 1 - - - - false - Text Update - false - false - 1 - - - - 47 - 97 - Text Update_135 - 1093 - - - - - - Default - - - - 0 - - 2 - - true - 763e00b7:150973f1dd8:-687c - true - false - 37 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 28 - 12 - Label_56 - 1093 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-687b - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_37_Depth - 1 - - - - false - Text Update - false - false - 1 - - - - 53 - 143 - Text Update_136 - 1093 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - 763e00b7:150973f1dd8:-687a - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_sb/PipeDepthStats_37_InUse - - - - - Check Box - false - - - - 21 - 58 - Check Box_37 - 1093 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-6879 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_37_PeakInUse - 1 - - - - false - Text Update - false - false - 1 - - - - 85 - 195 - Text Update_137 - 1093 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-6878 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_38_PipeID - 1 - - - - false - Text Update - false - false - 1 - - - - 47 - 97 - Text Update_138 - 1112 - - - - - - Default - - - - 0 - - 2 - - true - 763e00b7:150973f1dd8:-6877 - true - false - 38 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 28 - 12 - Label_57 - 1112 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-6876 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_38_Depth - 1 - - - - false - Text Update - false - false - 1 - - - - 53 - 143 - Text Update_139 - 1112 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - 763e00b7:150973f1dd8:-6875 - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_sb/PipeDepthStats_38_InUse - - - - - Check Box - false - - - - 21 - 58 - Check Box_38 - 1112 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-6874 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_38_PeakInUse - 1 - - - - false - Text Update - false - false - 1 - - - - 85 - 195 - Text Update_140 - 1112 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-6873 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_39_PipeID - 1 - - - - false - Text Update - false - false - 1 - - - - 47 - 97 - Text Update_141 - 1131 - - - - - - Default - - - - 0 - - 2 - - true - 763e00b7:150973f1dd8:-6872 - true - false - 39 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 28 - 12 - Label_58 - 1131 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-6871 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_39_Depth - 1 - - - - false - Text Update - false - false - 1 - - - - 53 - 143 - Text Update_142 - 1131 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - 763e00b7:150973f1dd8:-6870 - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_sb/PipeDepthStats_39_InUse - - - - - Check Box - false - - - - 21 - 58 - Check Box_39 - 1131 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-686f - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_39_PeakInUse - 1 - - - - false - Text Update - false - false - 1 - - - - 85 - 195 - Text Update_143 - 1131 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-67d5 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_40_PipeID - 1 - - - - false - Text Update - false - false - 1 - - - - 47 - 97 - Text Update_144 - 1150 - - - - - - Default - - - - 0 - - 2 - - true - 763e00b7:150973f1dd8:-67d4 - true - false - 40 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 28 - 12 - Label_59 - 1150 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-67d3 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_40_Depth - 1 - - - - false - Text Update - false - false - 1 - - - - 53 - 143 - Text Update_145 - 1150 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - 763e00b7:150973f1dd8:-67d2 - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_sb/PipeDepthStats_40_InUse - - - - - Check Box - false - - - - 21 - 58 - Check Box_40 - 1150 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-67d1 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_40_PeakInUse - 1 - - - - false - Text Update - false - false - 1 - - - - 85 - 195 - Text Update_146 - 1150 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-67d0 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_41_PipeID - 1 - - - - false - Text Update - false - false - 1 - - - - 47 - 97 - Text Update_147 - 1169 - - - - - - Default - - - - 0 - - 2 - - true - 763e00b7:150973f1dd8:-67cf - true - false - 41 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 28 - 12 - Label_60 - 1169 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-67ce - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_41_Depth - 1 - - - - false - Text Update - false - false - 1 - - - - 53 - 143 - Text Update_148 - 1169 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - 763e00b7:150973f1dd8:-67cd - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_sb/PipeDepthStats_41_InUse - - - - - Check Box - false - - - - 21 - 58 - Check Box_41 - 1169 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-67cc - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_41_PeakInUse - 1 - - - - false - Text Update - false - false - 1 - - - - 85 - 195 - Text Update_149 - 1169 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-67cb - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_42_PipeID - 1 - - - - false - Text Update - false - false - 1 - - - - 47 - 97 - Text Update_150 - 1188 - - - - - - Default - - - - 0 - - 2 - - true - 763e00b7:150973f1dd8:-67ca - true - false - 42 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 28 - 12 - Label_61 - 1188 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-67c9 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_42_Depth - 1 - - - - false - Text Update - false - false - 1 - - - - 53 - 143 - Text Update_151 - 1188 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - 763e00b7:150973f1dd8:-67c8 - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_sb/PipeDepthStats_42_InUse - - - - - Check Box - false - - - - 21 - 58 - Check Box_42 - 1188 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-67c7 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_42_PeakInUse - 1 - - - - false - Text Update - false - false - 1 - - - - 85 - 195 - Text Update_152 - 1188 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-67c6 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_43_PipeID - 1 - - - - false - Text Update - false - false - 1 - - - - 47 - 97 - Text Update_153 - 1207 - - - - - - Default - - - - 0 - - 2 - - true - 763e00b7:150973f1dd8:-67c5 - true - false - 43 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 28 - 12 - Label_62 - 1207 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-67c4 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_43_Depth - 1 - - - - false - Text Update - false - false - 1 - - - - 53 - 143 - Text Update_154 - 1207 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - 763e00b7:150973f1dd8:-67c3 - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_sb/PipeDepthStats_43_InUse - - - - - Check Box - false - - - - 21 - 58 - Check Box_43 - 1207 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-67c2 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_43_PeakInUse - 1 - - - - false - Text Update - false - false - 1 - - - - 85 - 195 - Text Update_155 - 1207 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-67c1 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_44_PipeID - 1 - - - - false - Text Update - false - false - 1 - - - - 47 - 97 - Text Update_156 - 1226 - - - - - - Default - - - - 0 - - 2 - - true - 763e00b7:150973f1dd8:-67c0 - true - false - 44 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 28 - 12 - Label_63 - 1226 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-67bf - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_44_Depth - 1 - - - - false - Text Update - false - false - 1 - - - - 53 - 143 - Text Update_157 - 1226 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - 763e00b7:150973f1dd8:-67be - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_sb/PipeDepthStats_44_InUse - - - - - Check Box - false - - - - 21 - 58 - Check Box_44 - 1226 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-67bd - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_44_PeakInUse - 1 - - - - false - Text Update - false - false - 1 - - - - 85 - 195 - Text Update_158 - 1226 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-67bc - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_45_PipeID - 1 - - - - false - Text Update - false - false - 1 - - - - 47 - 97 - Text Update_159 - 1245 - - - - - - Default - - - - 0 - - 2 - - true - 763e00b7:150973f1dd8:-67bb - true - false - 45 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 28 - 12 - Label_64 - 1245 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-67ba - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_45_Depth - 1 - - - - false - Text Update - false - false - 1 - - - - 53 - 143 - Text Update_160 - 1245 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - 763e00b7:150973f1dd8:-67b9 - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_sb/PipeDepthStats_45_InUse - - - - - Check Box - false - - - - 21 - 58 - Check Box_45 - 1245 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-67b8 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_45_PeakInUse - 1 - - - - false - Text Update - false - false - 1 - - - - 85 - 195 - Text Update_161 - 1245 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-67b7 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_46_PipeID - 1 - - - - false - Text Update - false - false - 1 - - - - 47 - 97 - Text Update_162 - 1264 - - - - - - Default - - - - 0 - - 2 - - true - 763e00b7:150973f1dd8:-67b6 - true - false - 46 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 28 - 12 - Label_65 - 1264 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-67b5 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_46_Depth - 1 - - - - false - Text Update - false - false - 1 - - - - 53 - 143 - Text Update_163 - 1264 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - 763e00b7:150973f1dd8:-67b4 - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_sb/PipeDepthStats_46_InUse - - - - - Check Box - false - - - - 21 - 58 - Check Box_46 - 1264 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-67b3 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_46_PeakInUse - 1 - - - - false - Text Update - false - false - 1 - - - - 85 - 195 - Text Update_164 - 1264 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-67b2 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_47_PipeID - 1 - - - - false - Text Update - false - false - 1 - - - - 47 - 97 - Text Update_165 - 1283 - - - - - - Default - - - - 0 - - 2 - - true - 763e00b7:150973f1dd8:-67b1 - true - false - 47 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 28 - 12 - Label_66 - 1283 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-67b0 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_47_Depth - 1 - - - - false - Text Update - false - false - 1 - - - - 53 - 143 - Text Update_166 - 1283 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - 763e00b7:150973f1dd8:-67af - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_sb/PipeDepthStats_47_InUse - - - - - Check Box - false - - - - 21 - 58 - Check Box_47 - 1283 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-67ae - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_47_PeakInUse - 1 - - - - false - Text Update - false - false - 1 - - - - 85 - 195 - Text Update_167 - 1283 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-67ad - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_48_PipeID - 1 - - - - false - Text Update - false - false - 1 - - - - 47 - 97 - Text Update_168 - 1302 - - - - - - Default - - - - 0 - - 2 - - true - 763e00b7:150973f1dd8:-67ac - true - false - 48 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 28 - 12 - Label_67 - 1302 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-67ab - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_48_Depth - 1 - - - - false - Text Update - false - false - 1 - - - - 53 - 143 - Text Update_169 - 1302 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - 763e00b7:150973f1dd8:-67aa - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_sb/PipeDepthStats_48_InUse - - - - - Check Box - false - - - - 21 - 58 - Check Box_48 - 1302 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-67a9 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_48_PeakInUse - 1 - - - - false - Text Update - false - false - 1 - - - - 85 - 195 - Text Update_170 - 1302 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-67a8 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_49_PipeID - 1 - - - - false - Text Update - false - false - 1 - - - - 47 - 97 - Text Update_171 - 1321 - - - - - - Default - - - - 0 - - 2 - - true - 763e00b7:150973f1dd8:-67a7 - true - false - 49 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 28 - 12 - Label_68 - 1321 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-67a6 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_49_Depth - 1 - - - - false - Text Update - false - false - 1 - - - - 53 - 143 - Text Update_172 - 1321 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - 763e00b7:150973f1dd8:-67a5 - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_sb/PipeDepthStats_49_InUse - - - - - Check Box - false - - - - 21 - 58 - Check Box_49 - 1321 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-67a4 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_49_PeakInUse - 1 - - - - false - Text Update - false - false - 1 - - - - 85 - 195 - Text Update_173 - 1321 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-670a - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_50_PipeID - 1 - - - - false - Text Update - false - false - 1 - - - - 47 - 97 - Text Update_174 - 1340 - - - - - - Default - - - - 0 - - 2 - - true - 763e00b7:150973f1dd8:-6709 - true - false - 50 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 28 - 12 - Label_69 - 1340 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-6708 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_50_Depth - 1 - - - - false - Text Update - false - false - 1 - - - - 53 - 143 - Text Update_175 - 1340 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - 763e00b7:150973f1dd8:-6707 - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_sb/PipeDepthStats_50_InUse - - - - - Check Box - false - - - - 21 - 58 - Check Box_50 - 1340 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-6706 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_50_PeakInUse - 1 - - - - false - Text Update - false - false - 1 - - - - 85 - 195 - Text Update_176 - 1340 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-6705 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_51_PipeID - 1 - - - - false - Text Update - false - false - 1 - - - - 47 - 97 - Text Update_177 - 1359 - - - - - - Default - - - - 0 - - 2 - - true - 763e00b7:150973f1dd8:-6704 - true - false - 51 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 28 - 12 - Label_70 - 1359 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-6703 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_51_Depth - 1 - - - - false - Text Update - false - false - 1 - - - - 53 - 143 - Text Update_178 - 1359 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - 763e00b7:150973f1dd8:-6702 - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_sb/PipeDepthStats_51_InUse - - - - - Check Box - false - - - - 21 - 58 - Check Box_51 - 1359 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-6701 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_51_PeakInUse - 1 - - - - false - Text Update - false - false - 1 - - - - 85 - 195 - Text Update_179 - 1359 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-6700 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_52_PipeID - 1 - - - - false - Text Update - false - false - 1 - - - - 47 - 97 - Text Update_180 - 1378 - - - - - - Default - - - - 0 - - 2 - - true - 763e00b7:150973f1dd8:-66ff - true - false - 52 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 28 - 12 - Label_71 - 1378 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-66fe - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_52_Depth - 1 - - - - false - Text Update - false - false - 1 - - - - 53 - 143 - Text Update_181 - 1378 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - 763e00b7:150973f1dd8:-66fd - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_sb/PipeDepthStats_52_InUse - - - - - Check Box - false - - - - 21 - 58 - Check Box_52 - 1378 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-66fc - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_52_PeakInUse - 1 - - - - false - Text Update - false - false - 1 - - - - 85 - 195 - Text Update_182 - 1378 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-66fb - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_53_PipeID - 1 - - - - false - Text Update - false - false - 1 - - - - 47 - 97 - Text Update_183 - 1397 - - - - - - Default - - - - 0 - - 2 - - true - 763e00b7:150973f1dd8:-66fa - true - false - 53 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 28 - 12 - Label_72 - 1397 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-66f9 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_53_Depth - 1 - - - - false - Text Update - false - false - 1 - - - - 53 - 143 - Text Update_184 - 1397 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - 763e00b7:150973f1dd8:-66f8 - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_sb/PipeDepthStats_53_InUse - - - - - Check Box - false - - - - 21 - 58 - Check Box_53 - 1397 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-66f7 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_53_PeakInUse - 1 - - - - false - Text Update - false - false - 1 - - - - 85 - 195 - Text Update_185 - 1397 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-66f6 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_54_PipeID - 1 - - - - false - Text Update - false - false - 1 - - - - 47 - 97 - Text Update_186 - 1416 - - - - - - Default - - - - 0 - - 2 - - true - 763e00b7:150973f1dd8:-66f5 - true - false - 54 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 28 - 12 - Label_73 - 1416 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-66f4 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_54_Depth - 1 - - - - false - Text Update - false - false - 1 - - - - 53 - 143 - Text Update_187 - 1416 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - 763e00b7:150973f1dd8:-66f3 - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_sb/PipeDepthStats_54_InUse - - - - - Check Box - false - - - - 21 - 58 - Check Box_54 - 1416 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-66f2 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_54_PeakInUse - 1 - - - - false - Text Update - false - false - 1 - - - - 85 - 195 - Text Update_188 - 1416 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-66f1 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_55_PipeID - 1 - - - - false - Text Update - false - false - 1 - - - - 47 - 97 - Text Update_189 - 1435 - - - - - - Default - - - - 0 - - 2 - - true - 763e00b7:150973f1dd8:-66f0 - true - false - 55 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 28 - 12 - Label_74 - 1435 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-66ef - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_55_Depth - 1 - - - - false - Text Update - false - false - 1 - - - - 53 - 143 - Text Update_190 - 1435 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - 763e00b7:150973f1dd8:-66ee - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_sb/PipeDepthStats_55_InUse - - - - - Check Box - false - - - - 21 - 58 - Check Box_55 - 1435 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-66ed - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_55_PeakInUse - 1 - - - - false - Text Update - false - false - 1 - - - - 85 - 195 - Text Update_191 - 1435 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-66ec - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_56_PipeID - 1 - - - - false - Text Update - false - false - 1 - - - - 47 - 97 - Text Update_192 - 1454 - - - - - - Default - - - - 0 - - 2 - - true - 763e00b7:150973f1dd8:-66eb - true - false - 56 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 28 - 12 - Label_75 - 1454 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-66ea - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_56_Depth - 1 - - - - false - Text Update - false - false - 1 - - - - 53 - 143 - Text Update_193 - 1454 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - 763e00b7:150973f1dd8:-66e9 - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_sb/PipeDepthStats_56_InUse - - - - - Check Box - false - - - - 21 - 58 - Check Box_56 - 1454 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-66e8 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_56_PeakInUse - 1 - - - - false - Text Update - false - false - 1 - - - - 85 - 195 - Text Update_194 - 1454 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-66e7 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_57_PipeID - 1 - - - - false - Text Update - false - false - 1 - - - - 47 - 97 - Text Update_195 - 1473 - - - - - - Default - - - - 0 - - 2 - - true - 763e00b7:150973f1dd8:-66e6 - true - false - 57 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 28 - 12 - Label_76 - 1473 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-66e5 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_57_Depth - 1 - - - - false - Text Update - false - false - 1 - - - - 53 - 143 - Text Update_196 - 1473 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - 763e00b7:150973f1dd8:-66e4 - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_sb/PipeDepthStats_57_InUse - - - - - Check Box - false - - - - 21 - 58 - Check Box_57 - 1473 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-66e3 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_57_PeakInUse - 1 - - - - false - Text Update - false - false - 1 - - - - 85 - 195 - Text Update_197 - 1473 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-66e2 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_58_PipeID - 1 - - - - false - Text Update - false - false - 1 - - - - 47 - 97 - Text Update_198 - 1492 - - - - - - Default - - - - 0 - - 2 - - true - 763e00b7:150973f1dd8:-66e1 - true - false - 58 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 28 - 12 - Label_77 - 1492 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-66e0 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_58_Depth - 1 - - - - false - Text Update - false - false - 1 - - - - 53 - 143 - Text Update_199 - 1492 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - 763e00b7:150973f1dd8:-66df - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_sb/PipeDepthStats_58_InUse - - - - - Check Box - false - - - - 21 - 58 - Check Box_58 - 1492 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-66de - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_58_PeakInUse - 1 - - - - false - Text Update - false - false - 1 - - - - 85 - 195 - Text Update_200 - 1492 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-66dd - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_59_PipeID - 1 - - - - false - Text Update - false - false - 1 - - - - 47 - 97 - Text Update_201 - 1511 - - - - - - Default - - - - 0 - - 2 - - true - 763e00b7:150973f1dd8:-66dc - true - false - 59 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 28 - 12 - Label_78 - 1511 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-66db - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_59_Depth - 1 - - - - false - Text Update - false - false - 1 - - - - 53 - 143 - Text Update_202 - 1511 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - 763e00b7:150973f1dd8:-66da - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_sb/PipeDepthStats_59_InUse - - - - - Check Box - false - - - - 21 - 58 - Check Box_59 - 1511 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-66d9 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_59_PeakInUse - 1 - - - - false - Text Update - false - false - 1 - - - - 85 - 195 - Text Update_203 - 1511 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-663f - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_60_PipeID - 1 - - - - false - Text Update - false - false - 1 - - - - 47 - 97 - Text Update_204 - 1530 - - - - - - Default - - - - 0 - - 2 - - true - 763e00b7:150973f1dd8:-663e - true - false - 60 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 28 - 12 - Label_79 - 1530 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-663d - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_60_Depth - 1 - - - - false - Text Update - false - false - 1 - - - - 53 - 143 - Text Update_205 - 1530 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - 763e00b7:150973f1dd8:-663c - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_sb/PipeDepthStats_60_InUse - - - - - Check Box - false - - - - 21 - 58 - Check Box_60 - 1530 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-663b - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_60_PeakInUse - 1 - - - - false - Text Update - false - false - 1 - - - - 85 - 195 - Text Update_206 - 1530 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-663a - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_61_PipeID - 1 - - - - false - Text Update - false - false - 1 - - - - 47 - 97 - Text Update_207 - 1549 - - - - - - Default - - - - 0 - - 2 - - true - 763e00b7:150973f1dd8:-6639 - true - false - 61 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 28 - 12 - Label_80 - 1549 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-6638 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_61_Depth - 1 - - - - false - Text Update - false - false - 1 - - - - 53 - 143 - Text Update_208 - 1549 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - 763e00b7:150973f1dd8:-6637 - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_sb/PipeDepthStats_61_InUse - - - - - Check Box - false - - - - 21 - 58 - Check Box_61 - 1549 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-6636 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_61_PeakInUse - 1 - - - - false - Text Update - false - false - 1 - - - - 85 - 195 - Text Update_209 - 1549 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-6635 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_62_PipeID - 1 - - - - false - Text Update - false - false - 1 - - - - 47 - 97 - Text Update_210 - 1568 - - - - - - Default - - - - 0 - - 2 - - true - 763e00b7:150973f1dd8:-6634 - true - false - 62 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 28 - 12 - Label_81 - 1568 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-6633 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_62_Depth - 1 - - - - false - Text Update - false - false - 1 - - - - 53 - 143 - Text Update_211 - 1568 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - 763e00b7:150973f1dd8:-6632 - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_sb/PipeDepthStats_62_InUse - - - - - Check Box - false - - - - 21 - 58 - Check Box_62 - 1568 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-6631 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_62_PeakInUse - 1 - - - - false - Text Update - false - false - 1 - - - - 85 - 195 - Text Update_212 - 1568 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-6630 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_63_PipeID - 1 - - - - false - Text Update - false - false - 1 - - - - 47 - 97 - Text Update_213 - 1587 - - - - - - Default - - - - 0 - - 2 - - true - 763e00b7:150973f1dd8:-662f - true - false - 63 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 28 - 12 - Label_82 - 1587 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-662e - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_63_Depth - 1 - - - - false - Text Update - false - false - 1 - - - - 53 - 143 - Text Update_214 - 1587 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - 763e00b7:150973f1dd8:-662d - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_sb/PipeDepthStats_63_InUse - - - - - Check Box - false - - - - 21 - 58 - Check Box_63 - 1587 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-662c - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_63_PeakInUse - 1 - - - - false - Text Update - false - false - 1 - - - - 85 - 195 - Text Update_215 - 1587 - - - - - - Default - - - \ No newline at end of file diff --git a/tools/commander/workspace_template/Displays/CFE/SB/scripts/ClearLog.js b/tools/commander/workspace_template/Displays/CFE/SB/scripts/ClearLog.js deleted file mode 100644 index 22535571e..000000000 --- a/tools/commander/workspace_template/Displays/CFE/SB/scripts/ClearLog.js +++ /dev/null @@ -1,4 +0,0 @@ -importPackage(Packages.org.csstudio.opibuilder.scriptUtil); -importPackage(Packages.org.yamcs.studio.script); - -Yamcs.issueCommand('/cfs/cfe_sb/ClearLog(arg: none)'); \ No newline at end of file diff --git a/tools/commander/workspace_template/Displays/CFE/SB/scripts/NoOp.js b/tools/commander/workspace_template/Displays/CFE/SB/scripts/NoOp.js deleted file mode 100644 index 355a234b2..000000000 --- a/tools/commander/workspace_template/Displays/CFE/SB/scripts/NoOp.js +++ /dev/null @@ -1,4 +0,0 @@ -importPackage(Packages.org.csstudio.opibuilder.scriptUtil); -importPackage(Packages.org.yamcs.studio.script); - -Yamcs.issueCommand('/cfs/cfe_sb/NoOp(arg: none)'); \ No newline at end of file diff --git a/tools/commander/workspace_template/Displays/CFE/SB/scripts/ResetCounters.js b/tools/commander/workspace_template/Displays/CFE/SB/scripts/ResetCounters.js deleted file mode 100644 index 093a00776..000000000 --- a/tools/commander/workspace_template/Displays/CFE/SB/scripts/ResetCounters.js +++ /dev/null @@ -1,4 +0,0 @@ -importPackage(Packages.org.csstudio.opibuilder.scriptUtil); -importPackage(Packages.org.yamcs.studio.script); - -Yamcs.issueCommand('/cfs/cfe_sb/Reset(arg: none)'); \ No newline at end of file diff --git a/tools/commander/workspace_template/Displays/CFE/TBL/AbortTableLoad.opi b/tools/commander/workspace_template/Displays/CFE/TBL/AbortTableLoad.opi deleted file mode 100644 index f9b478bd4..000000000 --- a/tools/commander/workspace_template/Displays/CFE/TBL/AbortTableLoad.opi +++ /dev/null @@ -1,195 +0,0 @@ - - - true - - 35ebaa52:1509cf6a868:-791f - true - false - - 90 - - true - - 4.0.104.201510200439 - true - Display - - false - -1 - -1 - - - - - 275 - -1 - - 6 - true - -1 - true - - - - - - false - 0 - false - false - $(pv_name) -$(pv_value) - 0 - - true - 35ebaa52:1509cf6a868:-78ea - - Abort Table Load - - false - 25 - 1 - - true - true - false - - - true - - - - - Action Button - false - - - - 163 - 60 - Action Button - 54 - - - - - - - ../scripts/RestartApp.js - - true - - - - - Default - - - - 0 - - 2 - - true - 35ebaa52:1509cf6a868:-78e9 - true - false - Table Name - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 71 - 26 - Label - 18 - - - - - - Default - - - - false - 0 - $(pv_name) -$(pv_value) - 0 - - - false - ###### - 0.0 - true - 20 - false - 1 - true - loc://TableName<VString> - 0 - - - - true - Text Input - - TableName - - - 0 - false - true - 35ebaa52:1509cf6a868:-78e7 - false - - true - - true - true - false - - false - 4 - false - - - - 153 - 108 - 18 - 1.7976931348623157E308 - - - - -1.7976931348623157E308 - - Default - - - \ No newline at end of file diff --git a/tools/commander/workspace_template/Displays/CFE/TBL/ActivateTable.opi b/tools/commander/workspace_template/Displays/CFE/TBL/ActivateTable.opi deleted file mode 100644 index 8947af7b8..000000000 --- a/tools/commander/workspace_template/Displays/CFE/TBL/ActivateTable.opi +++ /dev/null @@ -1,195 +0,0 @@ - - - true - - 35ebaa52:1509cf6a868:-791f - true - false - - 90 - - true - - 4.0.104.201510200439 - true - Display - - false - -1 - -1 - - - - - 275 - -1 - - 6 - true - -1 - true - - - - - - false - 0 - false - false - $(pv_name) -$(pv_value) - 0 - - true - 35ebaa52:1509cf6a868:-78ea - - Activate Table - - false - 25 - 1 - - true - true - false - - - true - - - - - Action Button - false - - - - 163 - 60 - Action Button - 54 - - - - - - - ../scripts/RestartApp.js - - true - - - - - Default - - - - 0 - - 2 - - true - 35ebaa52:1509cf6a868:-78e9 - true - false - Table Name - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 71 - 26 - Label - 18 - - - - - - Default - - - - false - 0 - $(pv_name) -$(pv_value) - 0 - - - false - ###### - 0.0 - true - 20 - false - 1 - true - loc://TableName<VString> - 0 - - - - true - Text Input - - TableName - - - 0 - false - true - 35ebaa52:1509cf6a868:-78e7 - false - - true - - true - true - false - - false - 4 - false - - - - 153 - 108 - 18 - 1.7976931348623157E308 - - - - -1.7976931348623157E308 - - Default - - - \ No newline at end of file diff --git a/tools/commander/workspace_template/Displays/CFE/TBL/DeleteCDS.opi b/tools/commander/workspace_template/Displays/CFE/TBL/DeleteCDS.opi deleted file mode 100644 index d937fde64..000000000 --- a/tools/commander/workspace_template/Displays/CFE/TBL/DeleteCDS.opi +++ /dev/null @@ -1,195 +0,0 @@ - - - true - - 35ebaa52:1509cf6a868:-791f - true - false - - 90 - - true - - 4.0.104.201510200439 - true - Display - - false - -1 - -1 - - - - - 275 - -1 - - 6 - true - -1 - true - - - - - - false - 0 - false - false - $(pv_name) -$(pv_value) - 0 - - true - 35ebaa52:1509cf6a868:-78ea - - Delete CDS - - false - 25 - 1 - - true - true - false - - - true - - - - - Action Button - false - - - - 163 - 60 - Action Button - 54 - - - - - - - ../scripts/RestartApp.js - - true - - - - - Default - - - - 0 - - 2 - - true - 35ebaa52:1509cf6a868:-78e9 - true - false - Table Name - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 71 - 26 - Label - 18 - - - - - - Default - - - - false - 0 - $(pv_name) -$(pv_value) - 0 - - - false - ###### - 0.0 - true - 20 - false - 1 - true - loc://TableName<VString> - 0 - - - - true - Text Input - - TableName - - - 0 - false - true - 35ebaa52:1509cf6a868:-78e7 - false - - true - - true - true - false - - false - 4 - false - - - - 153 - 108 - 18 - 1.7976931348623157E308 - - - - -1.7976931348623157E308 - - Default - - - \ No newline at end of file diff --git a/tools/commander/workspace_template/Displays/CFE/TBL/DumpRegistry.opi b/tools/commander/workspace_template/Displays/CFE/TBL/DumpRegistry.opi deleted file mode 100644 index e28b08711..000000000 --- a/tools/commander/workspace_template/Displays/CFE/TBL/DumpRegistry.opi +++ /dev/null @@ -1,241 +0,0 @@ - - - true - - 35ebaa52:1509cf6a868:-791f - true - false - - 135 - - true - - 4.0.104.201510200439 - true - Display - - false - -1 - -1 - - - - - 275 - -1 - - 6 - true - -1 - true - - - - - - false - 0 - false - false - $(pv_name) -$(pv_value) - 0 - - true - 35ebaa52:1509cf6a868:-78ea - - Dump Registry - - false - 25 - 1 - - true - true - false - - - true - - - - - Action Button - false - - - - 163 - 54 - Action Button - 90 - - - - - - - ../scripts/RestartApp.js - - true - - - - - Default - - - - 0 - - 2 - - true - 35ebaa52:1509cf6a868:-78e9 - true - false - File - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 24 - 20 - Label - 48 - - - - - - Default - - - - 0 - - 1 - - true - 35ebaa52:1509cf6a868:-78e8 - true - false - Write Registry to file system. - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 231 - 24 - Label_1 - 12 - - - - - - Default - - - - false - 0 - $(pv_name) -$(pv_value) - 0 - - - false - ###### - 0.0 - true - 20 - false - 1 - true - loc://FileName<VString> - 0 - - - - true - Text Input - - FileName - - - 0 - false - true - 35ebaa52:1509cf6a868:-78e7 - false - - true - - true - true - false - - false - 4 - false - - - - 189 - 54 - 48 - 1.7976931348623157E308 - - - - -1.7976931348623157E308 - - Default - - - \ No newline at end of file diff --git a/tools/commander/workspace_template/Displays/CFE/TBL/DumpTable.opi b/tools/commander/workspace_template/Displays/CFE/TBL/DumpTable.opi deleted file mode 100644 index d68644ef3..000000000 --- a/tools/commander/workspace_template/Displays/CFE/TBL/DumpTable.opi +++ /dev/null @@ -1,398 +0,0 @@ - - - true - - 35ebaa52:1509cf6a868:-791f - true - false - - 175 - - true - - 4.0.104.201510200439 - true - Display - - false - -1 - -1 - - - - - 275 - -1 - - 6 - true - -1 - true - - - - - - false - 0 - false - false - $(pv_name) -$(pv_value) - 0 - - true - 35ebaa52:1509cf6a868:-78ea - - Load Table - - false - 25 - 1 - - true - true - false - - - true - - - - - Action Button - false - - - - 163 - 54 - Action Button - 132 - - - - - - - ../scripts/RestartApp.js - - true - - - - - Default - - - - 0 - - 2 - - true - 35ebaa52:1509cf6a868:-78e9 - true - false - Table Name - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 71 - 20 - Label - 72 - - - - - - Default - - - - 0 - - 1 - - true - 35ebaa52:1509cf6a868:-78e8 - true - false - Load table from file system. - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 231 - 24 - Label_1 - 12 - - - - - - Default - - - - false - 0 - $(pv_name) -$(pv_value) - 0 - - - false - ###### - 0.0 - true - 20 - false - 1 - true - loc://TableName<VString> - 0 - - - - true - Text Input - - TableName - - - 0 - false - true - 35ebaa52:1509cf6a868:-78e7 - false - - true - - true - true - false - - false - 4 - false - - - - 153 - 102 - 72 - 1.7976931348623157E308 - - - - -1.7976931348623157E308 - - Default - - - - 0 - - 2 - - true - 35ebaa52:1509cf6a868:-7891 - true - false - File - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 24 - 67 - Label_2 - 96 - - - - - - Default - - - - false - 0 - $(pv_name) -$(pv_value) - 0 - - - false - ###### - 0.0 - true - 20 - false - 1 - true - loc://FileName<VString> - 0 - - - - true - Text Input - - FileName_1 - - - 0 - false - true - 35ebaa52:1509cf6a868:-7890 - false - - true - - true - true - false - - false - 4 - false - - - - 153 - 102 - 96 - 1.7976931348623157E308 - - - - -1.7976931348623157E308 - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - true - 35ebaa52:1509cf6a868:-7878 - - - - true - - - true - 33 - 1 - - true - true - false - - false - true - loc://TableBuffer<VString> - - - - Radio Box - false - - - - 216 - 28 - TableBuffer - 31 - - - - - - Inactive - Active - - - Default - - - \ No newline at end of file diff --git a/tools/commander/workspace_template/Displays/CFE/TBL/LoadTable.opi b/tools/commander/workspace_template/Displays/CFE/TBL/LoadTable.opi deleted file mode 100644 index a0da7bb9b..000000000 --- a/tools/commander/workspace_template/Displays/CFE/TBL/LoadTable.opi +++ /dev/null @@ -1,241 +0,0 @@ - - - true - - 35ebaa52:1509cf6a868:-791f - true - false - - 135 - - true - - 4.0.104.201510200439 - true - Display - - false - -1 - -1 - - - - - 275 - -1 - - 6 - true - -1 - true - - - - - - false - 0 - false - false - $(pv_name) -$(pv_value) - 0 - - true - 35ebaa52:1509cf6a868:-78ea - - Load Table - - false - 25 - 1 - - true - true - false - - - true - - - - - Action Button - false - - - - 163 - 54 - Action Button - 90 - - - - - - - ../scripts/RestartApp.js - - true - - - - - Default - - - - 0 - - 2 - - true - 35ebaa52:1509cf6a868:-78e9 - true - false - File - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 24 - 20 - Label - 48 - - - - - - Default - - - - 0 - - 1 - - true - 35ebaa52:1509cf6a868:-78e8 - true - false - Load table from file system. - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 231 - 24 - Label_1 - 12 - - - - - - Default - - - - false - 0 - $(pv_name) -$(pv_value) - 0 - - - false - ###### - 0.0 - true - 20 - false - 1 - true - loc://FileName<VString> - 0 - - - - true - Text Input - - FileName - - - 0 - false - true - 35ebaa52:1509cf6a868:-78e7 - false - - true - - true - true - false - - false - 4 - false - - - - 189 - 54 - 48 - 1.7976931348623157E308 - - - - -1.7976931348623157E308 - - Default - - - \ No newline at end of file diff --git a/tools/commander/workspace_template/Displays/CFE/TBL/Main.opi b/tools/commander/workspace_template/Displays/CFE/TBL/Main.opi deleted file mode 100644 index 202cc9eba..000000000 --- a/tools/commander/workspace_template/Displays/CFE/TBL/Main.opi +++ /dev/null @@ -1,2502 +0,0 @@ - - - - - false - -1 - -1 - - false - - - - 1.5.3 - - - - 6 - 475 - - true - - - - - true - true - true - true - true - Display - 450 - 45ea5983:1502a6e6386:-7f06 - -1 - -1 - - - false - false - false - - - - true - - - - 0 - 1 - true - - Default - - false - - - - 0 - 20 - 0 - Text Update - 0 - false - /cfs/cfe_tbl/CFE_TBL_HkPacket_t_param.Payload.CmdCounter - - 0.0 - - - true - true - false - - - true - ###### - $(pv_name) -$(pv_value) - false - 1 - true - Text Update - 100 - false - 45ea5983:1502a6e6386:-7f01 - 169 - 55 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 2 - Label - - - true - true - false - - - Cmd Count - - true - 1 - true - Label - 100 - false - 2b4f25d5:1502b5812fe:-7ff9 - 52 - 55 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 2 - Label_1 - - - true - true - false - - - Err Count - - true - 1 - true - Label - 100 - false - 2b4f25d5:1502b5812fe:-7fef - 52 - 74 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 2 - Label_4 - - - true - true - false - - - Num Tables - - true - 1 - true - Label - 146 - false - 2b4f25d5:1502b5812fe:-7fe0 - 6 - 121 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 2 - Label_5 - - - true - true - false - - - Num Load Pending - - true - 1 - true - Label - 146 - false - 2b4f25d5:1502b5812fe:-7fdb - 6 - 140 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 2 - Label_6 - - - true - true - false - - - Validation Counter - - true - 1 - true - Label - 146 - false - 2b4f25d5:1502b5812fe:-7fd6 - 6 - 159 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 2 - Label_7 - - - true - true - false - - - Last Val CRC - - true - 1 - true - Label - 146 - false - 2b4f25d5:1502b5812fe:-7fd1 - 6 - 178 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 2 - Label_8 - - - true - true - false - - - Last Val Status - - true - 1 - true - Label - 146 - false - 2b4f25d5:1502b5812fe:-7fa3 - 6 - 197 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 2 - Label_9 - - - true - true - false - - - Active Buffer - - true - 1 - true - Label - 146 - false - 2b4f25d5:1502b5812fe:-7f9e - 6 - 216 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 2 - Label_10 - - - true - true - false - - - Last Val Table Name - - true - 1 - true - Label - 146 - false - 2b4f25d5:1502b5812fe:-7f99 - 6 - 235 - - - - false - - - - - - - 0 - 1 - true - - Default Bold - - - - - 20 - 1 - Label_40 - - - true - true - false - - - Misc - - true - 1 - true - Label - 133 - false - 2b4f25d5:1502b5812fe:-7d52 - 81 - 102 - - - - false - - - - - - - 0 - 1 - true - - Default Bold - - - - - 20 - 1 - Label_46 - - - true - true - false - - - Commanding - - true - 1 - true - Label - 164 - false - 2b4f25d5:1502b5812fe:-7d1c - 66 - 36 - - - - false - false - false - - - - true - - - - 0 - 1 - true - - Default - - false - - - - 0 - 20 - 0 - Text Update_1 - 0 - false - /cfs/cfe_tbl/CFE_TBL_HkPacket_t_param.Payload.ErrCounter - - 0.0 - - - true - true - false - - - true - ###### - $(pv_name) -$(pv_value) - false - 1 - true - Text Update - 100 - false - 2b4f25d5:1502b5812fe:-7d06 - 169 - 74 - - - - false - false - false - - - - true - - - - 0 - 1 - true - - Default - - false - - - - 0 - 20 - 0 - Text Update_4 - 0 - false - /cfs/cfe_tbl/CFE_TBL_HkPacket_t_param.Payload.NumTables - - 0.0 - - - true - true - false - - - true - ###### - $(pv_name) -$(pv_value) - false - 1 - true - Text Update - 100 - false - 2b4f25d5:1502b5812fe:-7cf7 - 169 - 121 - - - - false - false - false - - - - true - - - - 0 - 1 - true - - Default - - false - - - - 0 - 20 - 0 - Text Update_5 - 0 - false - /cfs/cfe_tbl/CFE_TBL_HkPacket_t_param.Payload.NumLoadPending - - 0.0 - - - true - true - false - - - true - ###### - $(pv_name) -$(pv_value) - false - 1 - true - Text Update - 100 - false - 2b4f25d5:1502b5812fe:-7cf2 - 169 - 140 - - - - false - false - false - - - - true - - - - 0 - 1 - true - - Default - - false - - - - 0 - 20 - 0 - Text Update_6 - 0 - false - /cfs/cfe_tbl/CFE_TBL_HkPacket_t_param.Payload.ValidationCtr - - 0.0 - - - true - true - false - - - true - ###### - $(pv_name) -$(pv_value) - false - 1 - true - Text Update - 100 - false - 2b4f25d5:1502b5812fe:-7ced - 169 - 159 - - - - false - false - false - - - - true - - - - 0 - 1 - true - - Default - - false - - - - 0 - 20 - 0 - Text Update_7 - 0 - false - /cfs/cfe_tbl/CFE_TBL_HkPacket_t_param.Payload.LastValCrc - - 0.0 - - - true - true - false - - - true - ###### - $(pv_name) -$(pv_value) - false - 1 - true - Text Update - 100 - false - 2b4f25d5:1502b5812fe:-7ce8 - 169 - 178 - - - - false - false - false - - - - true - - - - 0 - 1 - true - - Default - - false - - - - 0 - 20 - 0 - Text Update_8 - 0 - false - /cfs/cfe_tbl/CFE_TBL_HkPacket_t_param.Payload.LastValStatus - - 0.0 - - - true - true - false - - - true - ###### - $(pv_name) -$(pv_value) - false - 1 - true - Text Update - 100 - false - 2b4f25d5:1502b5812fe:-7ce3 - 169 - 197 - - - - false - false - false - - - - true - - - - 0 - 1 - true - - Default - - false - - - - 0 - 20 - 0 - Text Update_9 - 0 - false - /cfs/cfe_tbl/CFE_TBL_HkPacket_t_param.Payload.ActiveBuffer - - 0.0 - - - true - true - false - - - true - ###### - $(pv_name) -$(pv_value) - false - 1 - true - Text Update - 100 - false - 2b4f25d5:1502b5812fe:-7cde - 169 - 216 - - - - false - false - false - - - - true - - - - 0 - 1 - true - - Default - - false - - - - 0 - 20 - 0 - Text Update_10 - 0 - false - /cfs/cfe_tbl/CFE_TBL_HkPacket_t_param.Payload.LastValTableName - - 0.0 - - - true - true - false - - - true - ###### - $(pv_name) -$(pv_value) - false - 1 - true - Text Update - 100 - false - 2b4f25d5:1502b5812fe:-7cd9 - 169 - 235 - - - - - scripts/NoOp.js - - false - - - - false - false - - - - false - - - - 0 - 1 - true - - Default - - false - - - - 20 - - NoOp - 0 - - - - - true - true - false - - - - NoOp - false - This command performs no other function than to increment the command execution counter. The command may be used to verify general aliveness of the Event Services task. - true - Action Button - 67 - 39deb42:1504a4eb8cc:-7de2 - 276 - 55 - - - - - scripts/ResetCounters.js - - false - - - - false - false - - - - false - - - - 0 - 1 - true - - Default - - false - - - - 20 - - NoOp_1 - 0 - - - - - true - true - false - - - - Reset - false - $(pv_name) -$(pv_value) - true - Action Button - 67 - -9ddfcbe:1507831914f:-7cfc - 276 - 74 - - - - false - - - - - - - 0 - 1 - true - - Default Bold - - - - - 20 - 1 - Label_49 - - - true - true - false - - - Core Flight Executive - Table Services - - true - 1 - true - Label - 295 - false - 763e00b7:150973f1dd8:-7cf4 - 66 - 6 - - - - - LoadTable.opi - - true - - 8 - - - - false - false - - - - false - - - - 0 - 1 - true - - Default - - false - - - - 26 - - Action Button_1 - 0 - - - - - true - true - false - - - - Load Table - false - $(pv_name) -$(pv_value) - true - Action Button - 130 - 763e00b7:150973f1dd8:-7ba6 - 294 - 144 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 2 - Label_50 - - - true - true - false - - - Successful Validations - - true - 1 - true - Label - 146 - false - 763e00b7:150973f1dd8:-7381 - 6 - 254 - - - - false - false - false - - - - true - - - - 0 - 1 - true - - Default - - false - - - - 0 - 20 - 0 - Text Update_11 - 0 - false - /cfs/cfe_tbl/CFE_TBL_HkPacket_t_param.Payload.SuccessValCtr - - 0.0 - - - true - true - false - - - true - ###### - $(pv_name) -$(pv_value) - false - 1 - true - Text Update - 100 - false - 763e00b7:150973f1dd8:-7380 - 169 - 254 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 2 - Label_51 - - - true - true - false - - - Failed Validations - - true - 1 - true - Label - 146 - false - 763e00b7:150973f1dd8:-7379 - 6 - 273 - - - - false - false - false - - - - true - - - - 0 - 1 - true - - Default - - false - - - - 0 - 20 - 0 - Text Update_12 - 0 - false - /cfs/cfe_tbl/CFE_TBL_HkPacket_t_param.Payload.FailedValCtr - - 0.0 - - - true - true - false - - - true - ###### - $(pv_name) -$(pv_value) - false - 1 - true - Text Update - 100 - false - 763e00b7:150973f1dd8:-7378 - 169 - 273 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 2 - Label_52 - - - true - true - false - - - Valid Requests - - true - 1 - true - Label - 146 - false - 35ebaa52:1509cf6a868:-7ae6 - 6 - 292 - - - - false - false - false - - - - true - - - - 0 - 1 - true - - Default - - false - - - - 0 - 20 - 0 - Text Update_13 - 0 - false - /cfs/cfe_tbl/CFE_TBL_HkPacket_t_param.Payload.NumValRequests - - 0.0 - - - true - true - false - - - true - ###### - $(pv_name) -$(pv_value) - false - 1 - true - Text Update - 100 - false - 35ebaa52:1509cf6a868:-7ae5 - 169 - 292 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 2 - Label_53 - - - true - true - false - - - Free Shared Buffers - - true - 1 - true - Label - 146 - false - 35ebaa52:1509cf6a868:-7adb - 6 - 311 - - - - false - false - false - - - - true - - - - 0 - 1 - true - - Default - - false - - - - 0 - 20 - 0 - Text Update_14 - 0 - false - /cfs/cfe_tbl/CFE_TBL_HkPacket_t_param.Payload.NumFreeSharedBufs - - 0.0 - - - true - true - false - - - true - ###### - $(pv_name) -$(pv_value) - false - 1 - true - Text Update - 100 - false - 35ebaa52:1509cf6a868:-7ada - 169 - 311 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 2 - Label_54 - - - true - true - false - - - Memory Pool Handle - - true - 1 - true - Label - 146 - false - 35ebaa52:1509cf6a868:-7abe - 6 - 330 - - - - false - false - false - - - - true - - - - 0 - 1 - true - - Default - - false - - - - 3 - 20 - 0 - Text Update_15 - 0 - false - /cfs/cfe_tbl/CFE_TBL_HkPacket_t_param.Payload.MemPoolHandle - - 0.0 - - - true - true - false - - - true - ###### - $(pv_name) -$(pv_value) - false - 1 - true - Text Update - 100 - false - 35ebaa52:1509cf6a868:-7abd - 169 - 330 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 2 - Label_55 - - - true - true - false - - - Last Update Time - - true - 1 - true - Label - 146 - false - 35ebaa52:1509cf6a868:-7ab3 - 6 - 349 - - - - false - false - false - - - - true - - - - 0 - 1 - true - - Default - - false - - - - 0 - 20 - 0 - Text Update_16 - 0 - false - /cfs/cfe_tbl/CFE_TBL_HkPacket_t_param.Payload.LastUpdateTime.Seconds - - 0.0 - - - true - true - false - - - true - ###### - $(pv_name) -$(pv_value) - false - 1 - true - Text Update - 100 - false - 35ebaa52:1509cf6a868:-7ab2 - 169 - 349 - - - - false - false - false - - - - true - - - - 0 - 1 - true - - Default - - false - - - - 0 - 20 - 0 - Text Update_17 - 0 - false - /cfs/cfe_tbl/CFE_TBL_HkPacket_t_param.Payload.LastUpdateTime.Subseconds - - 0.0 - - - true - true - false - - - true - ###### - $(pv_name) -$(pv_value) - false - 1 - true - Text Update - 100 - false - 35ebaa52:1509cf6a868:-7aa4 - 169 - 368 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 2 - Label_57 - - - true - true - false - - - Last Updated Table - - true - 1 - true - Label - 146 - false - 35ebaa52:1509cf6a868:-7a9a - 6 - 387 - - - - false - false - false - - - - true - - - - 0 - 1 - true - - Default - - false - - - - 0 - 20 - 0 - Text Update_18 - 0 - false - /cfs/cfe_tbl/CFE_TBL_HkPacket_t_param.Payload.LastUpdatedTbl - - 0.0 - - - true - true - false - - - true - ###### - $(pv_name) -$(pv_value) - false - 1 - true - Text Update - 100 - false - 35ebaa52:1509cf6a868:-7a99 - 169 - 387 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 2 - Label_58 - - - true - true - false - - - Last File Loaded - - true - 1 - true - Label - 146 - false - 35ebaa52:1509cf6a868:-7a8f - 6 - 406 - - - - false - false - false - - - - true - - - - 0 - 1 - true - - Default - - false - - - - 0 - 20 - 0 - Text Update_19 - 0 - false - /cfs/cfe_tbl/CFE_TBL_HkPacket_t_param.Payload.LastFileLoaded - - 0.0 - - - true - true - false - - - true - ###### - $(pv_name) -$(pv_value) - false - 1 - true - Text Update - 100 - false - 35ebaa52:1509cf6a868:-7a8e - 169 - 406 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 2 - Label_59 - - - true - true - false - - - Last File Dumped - - true - 1 - true - Label - 146 - false - 35ebaa52:1509cf6a868:-7a84 - 6 - 425 - - - - false - false - false - - - - true - - - - 0 - 1 - true - - Default - - false - - - - 0 - 20 - 0 - Text Update_20 - 0 - false - /cfs/cfe_tbl/CFE_TBL_HkPacket_t_param.Payload.LastFileDumped - - 0.0 - - - true - true - false - - - true - ###### - $(pv_name) -$(pv_value) - false - 1 - true - Text Update - 100 - false - 35ebaa52:1509cf6a868:-7a83 - 169 - 425 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 2 - Label_60 - - - true - true - false - - - Last Table Loaded - - true - 1 - true - Label - 146 - false - 35ebaa52:1509cf6a868:-7a60 - 6 - 444 - - - - false - false - false - - - - true - - - - 0 - 1 - true - - Default - - false - - - - 0 - 20 - 0 - Text Update_21 - 0 - false - /cfs/cfe_tbl/CFE_TBL_HkPacket_t_param.Payload.LastTableLoaded - - 0.0 - - - true - true - false - - - true - ###### - $(pv_name) -$(pv_value) - false - 1 - true - Text Update - 100 - false - 35ebaa52:1509cf6a868:-7a5f - 169 - 444 - - - - - AbortTableLoad.opi - - true - - 8 - - - - false - false - - - - false - - - - 0 - 1 - true - - Default - - false - - - - 26 - - Action Button_1 - 0 - - - - - true - true - false - - - - Abort Table Load - false - $(pv_name) -$(pv_value) - true - Action Button - 130 - 35ebaa52:1509cf6a868:-7980 - 294 - 169 - - - - - DumpTable.opi - - true - - 8 - - - - false - false - - - - false - - - - 0 - 1 - true - - Default - - false - - - - 26 - - Action Button_2 - 0 - - - - - true - true - false - - - - Dump Table - false - $(pv_name) -$(pv_value) - true - Action Button - 130 - 35ebaa52:1509cf6a868:-7976 - 294 - 194 - - - - - ValidateTable.opi - - true - - 8 - - - - false - false - - - - false - - - - 0 - 1 - true - - Default - - false - - - - 26 - - Action Button_3 - 0 - - - - - true - true - false - - - - Validate Table - false - $(pv_name) -$(pv_value) - true - Action Button - 130 - 35ebaa52:1509cf6a868:-796c - 294 - 219 - - - - - ActivateTable.opi - - true - - 8 - - - - false - false - - - - false - - - - 0 - 1 - true - - Default - - false - - - - 26 - - Action Button_4 - 0 - - - - - true - true - false - - - - Activate Table - false - $(pv_name) -$(pv_value) - true - Action Button - 130 - 35ebaa52:1509cf6a868:-7965 - 294 - 244 - - - - - DumpRegistry.opi - - true - - 8 - - - - false - false - - - - false - - - - 0 - 1 - true - - Default - - false - - - - 26 - - Action Button_5 - 0 - - - - - true - true - false - - - - Dump Registry - false - $(pv_name) -$(pv_value) - true - Action Button - 130 - 35ebaa52:1509cf6a868:-794e - 294 - 267 - - - - - ViewRegistry.opi - - true - - 8 - - - - false - false - - - - false - - - - 0 - 1 - true - - Default - - false - - - - 26 - - Action Button_6 - 0 - - - - - true - true - false - - - - View Registry - false - $(pv_name) -$(pv_value) - true - Action Button - 130 - 35ebaa52:1509cf6a868:-7940 - 294 - 292 - - - - - DeleteCDS.opi - - true - - 8 - - - - false - false - - - - false - - - - 0 - 1 - true - - Default - - false - - - - 26 - - Action Button_7 - 0 - - - - - true - true - false - - - - Delete CDS - false - $(pv_name) -$(pv_value) - true - Action Button - 130 - 35ebaa52:1509cf6a868:-7936 - 294 - 317 - - \ No newline at end of file diff --git a/tools/commander/workspace_template/Displays/CFE/TBL/ValidateTable.opi b/tools/commander/workspace_template/Displays/CFE/TBL/ValidateTable.opi deleted file mode 100644 index d6a2c4d2a..000000000 --- a/tools/commander/workspace_template/Displays/CFE/TBL/ValidateTable.opi +++ /dev/null @@ -1,294 +0,0 @@ - - - true - - 35ebaa52:1509cf6a868:-791f - true - false - - 150 - - true - - 4.0.104.201510200439 - true - Display - - false - -1 - -1 - - - - - 275 - -1 - - 6 - true - -1 - true - - - - - - false - 0 - false - false - $(pv_name) -$(pv_value) - 0 - - true - 35ebaa52:1509cf6a868:-78ea - - Validate Table - - false - 25 - 1 - - true - true - false - - - true - - - - - Action Button - false - - - - 163 - 54 - Action Button - 108 - - - - - - - ../scripts/RestartApp.js - - true - - - - - Default - - - - 0 - - 2 - - true - 35ebaa52:1509cf6a868:-78e9 - true - false - Table Name - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 71 - 20 - Label - 72 - - - - - - Default - - - - 0 - - 1 - - true - 35ebaa52:1509cf6a868:-78e8 - true - false - Validate table - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 231 - 24 - Label_1 - 12 - - - - - - Default - - - - false - 0 - $(pv_name) -$(pv_value) - 0 - - - false - ###### - 0.0 - true - 20 - false - 1 - true - loc://TableName<VString> - 0 - - - - true - Text Input - - TableName - - - 0 - false - true - 35ebaa52:1509cf6a868:-78e7 - false - - true - - true - true - false - - false - 4 - false - - - - 153 - 102 - 72 - 1.7976931348623157E308 - - - - -1.7976931348623157E308 - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - true - 35ebaa52:1509cf6a868:-7878 - - - - true - - - true - 33 - 1 - - true - true - false - - false - true - loc://TableBuffer<VString> - - - - Radio Box - false - - - - 216 - 28 - TableBuffer - 31 - - - - - - Inactive - Active - - - Default - - - \ No newline at end of file diff --git a/tools/commander/workspace_template/Displays/CFE/TBL/ViewRegistry.opi b/tools/commander/workspace_template/Displays/CFE/TBL/ViewRegistry.opi deleted file mode 100644 index d57d2121a..000000000 --- a/tools/commander/workspace_template/Displays/CFE/TBL/ViewRegistry.opi +++ /dev/null @@ -1,1746 +0,0 @@ - - - true - - 35ebaa52:1509cf6a868:-791f - true - false - - 460 - - true - - 4.0.104.201510200439 - true - Display - - false - -1 - -1 - - - - - 290 - -1 - - 6 - true - -1 - true - - - - - - false - 0 - false - false - $(pv_name) -$(pv_value) - 0 - - true - 35ebaa52:1509cf6a868:-78ea - - Telemeter Registry - - false - 25 - 1 - - true - true - false - - - true - - - - - Action Button - false - - - - 163 - 60 - Action Button - 54 - - - - - - - ../scripts/RestartApp.js - - true - - - - - Default - - - - 0 - - 2 - - true - 35ebaa52:1509cf6a868:-78e9 - true - false - Table Name - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 71 - 26 - Label - 18 - - - - - - Default - - - - false - 0 - $(pv_name) -$(pv_value) - 0 - - - false - ###### - 0.0 - true - 20 - false - 1 - true - loc://TableName<VString> - 0 - - - - true - Text Input - - TableName - - - 0 - false - true - 35ebaa52:1509cf6a868:-78e7 - false - - true - - true - true - false - - false - 4 - false - - - - 153 - 108 - 18 - 1.7976931348623157E308 - - - - -1.7976931348623157E308 - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 35ebaa52:1509cf6a868:-777b - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_tbl/Registry_Size - 1 - - - - true - Text Update - false - false - 0 - - - - 100 - 174 - Text Update - 121 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 35ebaa52:1509cf6a868:-777a - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_tbl/Registry_CRC - 1 - - - - true - Text Update - false - false - 0 - - - - 100 - 174 - Text Update_1 - 140 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 35ebaa52:1509cf6a868:-7778 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_tbl/Registry_InactiveBufferAddr - 1 - - - - true - Text Update - false - false - 0 - - - - 100 - 174 - Text Update_3 - 178 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 35ebaa52:1509cf6a868:-7777 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_tbl/Registry_ValidationFuncPtr - 1 - - - - true - Text Update - false - false - 0 - - - - 100 - 174 - Text Update_4 - 197 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 35ebaa52:1509cf6a868:-7775 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_tbl/Registry_TimeOfLastUpdate_Seconds - 1 - - - - true - Text Update - false - false - 0 - - - - 100 - 174 - Text Update_6 - 216 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 35ebaa52:1509cf6a868:-7774 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_tbl/Registry_TimeOfLastUpdate_Subseconds - 1 - - - - true - Text Update - false - false - 0 - - - - 100 - 174 - Text Update_7 - 235 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 35ebaa52:1509cf6a868:-7773 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_tbl/Registry_FileCreateTime_Seconds - 1 - - - - true - Text Update - false - false - 0 - - - - 100 - 174 - Text Update_8 - 254 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 35ebaa52:1509cf6a868:-7772 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_tbl/Registry_FileCreateTime_Subseconds - 1 - - - - true - Text Update - false - false - 0 - - - - 100 - 174 - Text Update_9 - 273 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 35ebaa52:1509cf6a868:-776d - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_tbl/Registry_Name - 1 - - - - true - Text Update - false - false - 0 - - - - 100 - 174 - Text Update_14 - 102 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 35ebaa52:1509cf6a868:-776c - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_tbl/Registry_LastFileLoaded - 1 - - - - true - Text Update - false - false - 0 - - - - 100 - 174 - Text Update_15 - 368 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 35ebaa52:1509cf6a868:-776b - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_tbl/Registry_OwnerAppName - 1 - - - - true - Text Update - false - false - 0 - - - - 100 - 174 - Text Update_16 - 387 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 35ebaa52:1509cf6a868:-776a - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_tbl/Registry_Critical - 1 - - - - true - Text Update - false - false - 0 - - - - 100 - 174 - Text Update_17 - 406 - - - - - - Default - - - - 0 - - 2 - - true - 35ebaa52:1509cf6a868:-7749 - true - false - Size - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 80 - 86 - Label_1 - 121 - - - - - - Default - - - - 0 - - 2 - - true - 35ebaa52:1509cf6a868:-7741 - true - false - CRC - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 80 - 86 - Label_2 - 140 - - - - - - Default - - - - 0 - - 2 - - true - 35ebaa52:1509cf6a868:-773c - true - false - Inactive Buffer Addr - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 135 - 31 - Label_3 - 178 - - - - - - Default - - - - 0 - - 2 - - true - 35ebaa52:1509cf6a868:-7730 - true - false - Active Buffer Addr - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 135 - 31 - Label_5 - 159 - - - - - - Default - - - - 0 - - 2 - - true - 35ebaa52:1509cf6a868:-7721 - true - false - Last File Loaded - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 113 - 53 - Label_8 - 368 - - - - - - Default - - - - 0 - - 2 - - true - 35ebaa52:1509cf6a868:-771c - true - false - Time of Last Update - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 150 - 16 - Label_9 - 216 - - - - - - Default - - - - 0 - - 2 - - true - 35ebaa52:1509cf6a868:-7717 - true - false - Validation Function Addr - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 164 - 2 - Label_10 - 197 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 35ebaa52:1509cf6a868:-76ca - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_tbl/Registry_ActiveBufferAddr - 1 - - - - true - Text Update - false - false - 0 - - - - 100 - 174 - Text Update_18 - 159 - - - - - - Default - - - - 0 - - 2 - - true - 35ebaa52:1509cf6a868:-76b4 - true - false - File Create Time - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 150 - 16 - Label_17 - 254 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - 35ebaa52:1509cf6a868:-767f - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_tbl/Registry_TableLoadedOnce - - - - - Check Box - false - - - - 24 - 176 - Check Box - 292 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - 35ebaa52:1509cf6a868:-767e - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_tbl/Registry_LoadPending - - - - - Check Box - false - - - - 24 - 176 - Check Box_1 - 311 - - - - - - Default - - - - 0 - - 2 - - true - 35ebaa52:1509cf6a868:-7674 - true - false - Table Loaded Once - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 150 - 16 - Label_18 - 292 - - - - - - Default - - - - 0 - - 2 - - true - 35ebaa52:1509cf6a868:-766a - true - false - Load Pending - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 150 - 16 - Label_19 - 311 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - 35ebaa52:1509cf6a868:-7659 - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_tbl/Registry_DumpOnly - - - - - Check Box - false - - - - 24 - 176 - Check Box_4 - 330 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - 35ebaa52:1509cf6a868:-7651 - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_tbl/Registry_DblBuffered - - - - - Check Box - false - - - - 24 - 176 - Check Box_5 - 349 - - - - - - Default - - - - 0 - - 2 - - true - 35ebaa52:1509cf6a868:-7649 - true - false - Dump Only - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 150 - 16 - Label_20 - 330 - - - - - - Default - - - - 0 - - 2 - - true - 35ebaa52:1509cf6a868:-763f - true - false - Double Buffered - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 150 - 16 - Label_21 - 349 - - - - - - Default - - - - 0 - - 2 - - true - 35ebaa52:1509cf6a868:-7635 - true - false - Name - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 80 - 86 - Label_22 - 102 - - - - - - Default - - - - 0 - - 2 - - true - 35ebaa52:1509cf6a868:-7629 - true - false - Owner App Name - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 113 - 53 - Label_23 - 387 - - - - - - Default - - - - 0 - - 2 - - true - 35ebaa52:1509cf6a868:-761f - true - false - Last File Loaded - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 113 - 53 - Label_24 - 406 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - 35ebaa52:1509cf6a868:-7613 - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_tbl/Registry_DblBuffered - - - - - Check Box - false - - - - 24 - 176 - Check Box_6 - 425 - - - - - - Default - - - - 0 - - 2 - - true - 35ebaa52:1509cf6a868:-760b - true - false - Critical - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 113 - 53 - Label_25 - 425 - - - - - - Default - - - \ No newline at end of file diff --git a/tools/commander/workspace_template/Displays/CFE/TBL/scripts/NoOp.js b/tools/commander/workspace_template/Displays/CFE/TBL/scripts/NoOp.js deleted file mode 100644 index c6be976e9..000000000 --- a/tools/commander/workspace_template/Displays/CFE/TBL/scripts/NoOp.js +++ /dev/null @@ -1,4 +0,0 @@ -importPackage(Packages.org.csstudio.opibuilder.scriptUtil); -importPackage(Packages.org.yamcs.studio.script); - -Yamcs.issueCommand('/cfs/cfe_tbl/NoOp(arg: none)'); \ No newline at end of file diff --git a/tools/commander/workspace_template/Displays/CFE/TBL/scripts/ResetCounters.js b/tools/commander/workspace_template/Displays/CFE/TBL/scripts/ResetCounters.js deleted file mode 100644 index 651c61131..000000000 --- a/tools/commander/workspace_template/Displays/CFE/TBL/scripts/ResetCounters.js +++ /dev/null @@ -1,4 +0,0 @@ -importPackage(Packages.org.csstudio.opibuilder.scriptUtil); -importPackage(Packages.org.yamcs.studio.script); - -Yamcs.issueCommand('/cfs/cfe_tbl/Reset(arg: none)'); \ No newline at end of file diff --git a/tools/commander/workspace_template/Displays/CFE/TIME/AbortTableLoad.opi b/tools/commander/workspace_template/Displays/CFE/TIME/AbortTableLoad.opi deleted file mode 100644 index f9b478bd4..000000000 --- a/tools/commander/workspace_template/Displays/CFE/TIME/AbortTableLoad.opi +++ /dev/null @@ -1,195 +0,0 @@ - - - true - - 35ebaa52:1509cf6a868:-791f - true - false - - 90 - - true - - 4.0.104.201510200439 - true - Display - - false - -1 - -1 - - - - - 275 - -1 - - 6 - true - -1 - true - - - - - - false - 0 - false - false - $(pv_name) -$(pv_value) - 0 - - true - 35ebaa52:1509cf6a868:-78ea - - Abort Table Load - - false - 25 - 1 - - true - true - false - - - true - - - - - Action Button - false - - - - 163 - 60 - Action Button - 54 - - - - - - - ../scripts/RestartApp.js - - true - - - - - Default - - - - 0 - - 2 - - true - 35ebaa52:1509cf6a868:-78e9 - true - false - Table Name - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 71 - 26 - Label - 18 - - - - - - Default - - - - false - 0 - $(pv_name) -$(pv_value) - 0 - - - false - ###### - 0.0 - true - 20 - false - 1 - true - loc://TableName<VString> - 0 - - - - true - Text Input - - TableName - - - 0 - false - true - 35ebaa52:1509cf6a868:-78e7 - false - - true - - true - true - false - - false - 4 - false - - - - 153 - 108 - 18 - 1.7976931348623157E308 - - - - -1.7976931348623157E308 - - Default - - - \ No newline at end of file diff --git a/tools/commander/workspace_template/Displays/CFE/TIME/ActivateTable.opi b/tools/commander/workspace_template/Displays/CFE/TIME/ActivateTable.opi deleted file mode 100644 index 8947af7b8..000000000 --- a/tools/commander/workspace_template/Displays/CFE/TIME/ActivateTable.opi +++ /dev/null @@ -1,195 +0,0 @@ - - - true - - 35ebaa52:1509cf6a868:-791f - true - false - - 90 - - true - - 4.0.104.201510200439 - true - Display - - false - -1 - -1 - - - - - 275 - -1 - - 6 - true - -1 - true - - - - - - false - 0 - false - false - $(pv_name) -$(pv_value) - 0 - - true - 35ebaa52:1509cf6a868:-78ea - - Activate Table - - false - 25 - 1 - - true - true - false - - - true - - - - - Action Button - false - - - - 163 - 60 - Action Button - 54 - - - - - - - ../scripts/RestartApp.js - - true - - - - - Default - - - - 0 - - 2 - - true - 35ebaa52:1509cf6a868:-78e9 - true - false - Table Name - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 71 - 26 - Label - 18 - - - - - - Default - - - - false - 0 - $(pv_name) -$(pv_value) - 0 - - - false - ###### - 0.0 - true - 20 - false - 1 - true - loc://TableName<VString> - 0 - - - - true - Text Input - - TableName - - - 0 - false - true - 35ebaa52:1509cf6a868:-78e7 - false - - true - - true - true - false - - false - 4 - false - - - - 153 - 108 - 18 - 1.7976931348623157E308 - - - - -1.7976931348623157E308 - - Default - - - \ No newline at end of file diff --git a/tools/commander/workspace_template/Displays/CFE/TIME/DeleteCDS.opi b/tools/commander/workspace_template/Displays/CFE/TIME/DeleteCDS.opi deleted file mode 100644 index d937fde64..000000000 --- a/tools/commander/workspace_template/Displays/CFE/TIME/DeleteCDS.opi +++ /dev/null @@ -1,195 +0,0 @@ - - - true - - 35ebaa52:1509cf6a868:-791f - true - false - - 90 - - true - - 4.0.104.201510200439 - true - Display - - false - -1 - -1 - - - - - 275 - -1 - - 6 - true - -1 - true - - - - - - false - 0 - false - false - $(pv_name) -$(pv_value) - 0 - - true - 35ebaa52:1509cf6a868:-78ea - - Delete CDS - - false - 25 - 1 - - true - true - false - - - true - - - - - Action Button - false - - - - 163 - 60 - Action Button - 54 - - - - - - - ../scripts/RestartApp.js - - true - - - - - Default - - - - 0 - - 2 - - true - 35ebaa52:1509cf6a868:-78e9 - true - false - Table Name - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 71 - 26 - Label - 18 - - - - - - Default - - - - false - 0 - $(pv_name) -$(pv_value) - 0 - - - false - ###### - 0.0 - true - 20 - false - 1 - true - loc://TableName<VString> - 0 - - - - true - Text Input - - TableName - - - 0 - false - true - 35ebaa52:1509cf6a868:-78e7 - false - - true - - true - true - false - - false - 4 - false - - - - 153 - 108 - 18 - 1.7976931348623157E308 - - - - -1.7976931348623157E308 - - Default - - - \ No newline at end of file diff --git a/tools/commander/workspace_template/Displays/CFE/TIME/DumpRegistry.opi b/tools/commander/workspace_template/Displays/CFE/TIME/DumpRegistry.opi deleted file mode 100644 index e28b08711..000000000 --- a/tools/commander/workspace_template/Displays/CFE/TIME/DumpRegistry.opi +++ /dev/null @@ -1,241 +0,0 @@ - - - true - - 35ebaa52:1509cf6a868:-791f - true - false - - 135 - - true - - 4.0.104.201510200439 - true - Display - - false - -1 - -1 - - - - - 275 - -1 - - 6 - true - -1 - true - - - - - - false - 0 - false - false - $(pv_name) -$(pv_value) - 0 - - true - 35ebaa52:1509cf6a868:-78ea - - Dump Registry - - false - 25 - 1 - - true - true - false - - - true - - - - - Action Button - false - - - - 163 - 54 - Action Button - 90 - - - - - - - ../scripts/RestartApp.js - - true - - - - - Default - - - - 0 - - 2 - - true - 35ebaa52:1509cf6a868:-78e9 - true - false - File - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 24 - 20 - Label - 48 - - - - - - Default - - - - 0 - - 1 - - true - 35ebaa52:1509cf6a868:-78e8 - true - false - Write Registry to file system. - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 231 - 24 - Label_1 - 12 - - - - - - Default - - - - false - 0 - $(pv_name) -$(pv_value) - 0 - - - false - ###### - 0.0 - true - 20 - false - 1 - true - loc://FileName<VString> - 0 - - - - true - Text Input - - FileName - - - 0 - false - true - 35ebaa52:1509cf6a868:-78e7 - false - - true - - true - true - false - - false - 4 - false - - - - 189 - 54 - 48 - 1.7976931348623157E308 - - - - -1.7976931348623157E308 - - Default - - - \ No newline at end of file diff --git a/tools/commander/workspace_template/Displays/CFE/TIME/DumpTable.opi b/tools/commander/workspace_template/Displays/CFE/TIME/DumpTable.opi deleted file mode 100644 index d68644ef3..000000000 --- a/tools/commander/workspace_template/Displays/CFE/TIME/DumpTable.opi +++ /dev/null @@ -1,398 +0,0 @@ - - - true - - 35ebaa52:1509cf6a868:-791f - true - false - - 175 - - true - - 4.0.104.201510200439 - true - Display - - false - -1 - -1 - - - - - 275 - -1 - - 6 - true - -1 - true - - - - - - false - 0 - false - false - $(pv_name) -$(pv_value) - 0 - - true - 35ebaa52:1509cf6a868:-78ea - - Load Table - - false - 25 - 1 - - true - true - false - - - true - - - - - Action Button - false - - - - 163 - 54 - Action Button - 132 - - - - - - - ../scripts/RestartApp.js - - true - - - - - Default - - - - 0 - - 2 - - true - 35ebaa52:1509cf6a868:-78e9 - true - false - Table Name - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 71 - 20 - Label - 72 - - - - - - Default - - - - 0 - - 1 - - true - 35ebaa52:1509cf6a868:-78e8 - true - false - Load table from file system. - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 231 - 24 - Label_1 - 12 - - - - - - Default - - - - false - 0 - $(pv_name) -$(pv_value) - 0 - - - false - ###### - 0.0 - true - 20 - false - 1 - true - loc://TableName<VString> - 0 - - - - true - Text Input - - TableName - - - 0 - false - true - 35ebaa52:1509cf6a868:-78e7 - false - - true - - true - true - false - - false - 4 - false - - - - 153 - 102 - 72 - 1.7976931348623157E308 - - - - -1.7976931348623157E308 - - Default - - - - 0 - - 2 - - true - 35ebaa52:1509cf6a868:-7891 - true - false - File - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 24 - 67 - Label_2 - 96 - - - - - - Default - - - - false - 0 - $(pv_name) -$(pv_value) - 0 - - - false - ###### - 0.0 - true - 20 - false - 1 - true - loc://FileName<VString> - 0 - - - - true - Text Input - - FileName_1 - - - 0 - false - true - 35ebaa52:1509cf6a868:-7890 - false - - true - - true - true - false - - false - 4 - false - - - - 153 - 102 - 96 - 1.7976931348623157E308 - - - - -1.7976931348623157E308 - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - true - 35ebaa52:1509cf6a868:-7878 - - - - true - - - true - 33 - 1 - - true - true - false - - false - true - loc://TableBuffer<VString> - - - - Radio Box - false - - - - 216 - 28 - TableBuffer - 31 - - - - - - Inactive - Active - - - Default - - - \ No newline at end of file diff --git a/tools/commander/workspace_template/Displays/CFE/TIME/Main.opi b/tools/commander/workspace_template/Displays/CFE/TIME/Main.opi deleted file mode 100644 index 0192b0c1e..000000000 --- a/tools/commander/workspace_template/Displays/CFE/TIME/Main.opi +++ /dev/null @@ -1,2499 +0,0 @@ - - - - - false - -1 - -1 - - false - - - - 1.5.3 - - - - 6 - 535 - - true - - - - - true - true - true - true - true - Display - 440 - 45ea5983:1502a6e6386:-7f06 - -1 - -1 - - - false - false - false - - - - true - - - - 0 - 1 - true - - Default - - false - - - - 0 - 20 - 0 - Text Update - 0 - false - /cfs/cfe_time/CFE_TIME_HkPacket_t_param.Payload.CmdCounter - - 0.0 - - - true - true - false - - - true - ###### - $(pv_name) -$(pv_value) - false - 1 - true - Text Update - 100 - false - 45ea5983:1502a6e6386:-7f01 - 169 - 55 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 2 - Label - - - true - true - false - - - Cmd Count - - true - 1 - true - Label - 100 - false - 2b4f25d5:1502b5812fe:-7ff9 - 52 - 55 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 2 - Label_1 - - - true - true - false - - - Err Count - - true - 1 - true - Label - 100 - false - 2b4f25d5:1502b5812fe:-7fef - 52 - 74 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 2 - Label_4 - - - true - true - false - - - Clock Set - - true - 1 - true - Label - 146 - false - 2b4f25d5:1502b5812fe:-7fe0 - 6 - 121 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 2 - Label_5 - - - true - true - false - - - Flywheeling - - true - 1 - true - Label - 146 - false - 2b4f25d5:1502b5812fe:-7fdb - 6 - 140 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 2 - Label_6 - - - true - true - false - - - Source Internal - - true - 1 - true - Label - 146 - false - 2b4f25d5:1502b5812fe:-7fd6 - 6 - 159 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 2 - Label_7 - - - true - true - false - - - Signal Primary - - true - 1 - true - Label - 146 - false - 2b4f25d5:1502b5812fe:-7fd1 - 6 - 178 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 2 - Label_8 - - - true - true - false - - - Server Flywheeling - - true - 1 - true - Label - 146 - false - 2b4f25d5:1502b5812fe:-7fa3 - 6 - 197 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 2 - Label_9 - - - true - true - false - - - Commanded Flywheel - - true - 1 - true - Label - 146 - false - 2b4f25d5:1502b5812fe:-7f9e - 6 - 216 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 2 - Label_10 - - - true - true - false - - - Add Adjust - - true - 1 - true - Label - 146 - false - 2b4f25d5:1502b5812fe:-7f99 - 6 - 235 - - - - false - - - - - - - 0 - 1 - true - - Default Bold - - - - - 20 - 1 - Label_40 - - - true - true - false - - - Flags - - true - 1 - true - Label - 133 - false - 2b4f25d5:1502b5812fe:-7d52 - 81 - 102 - - - - false - - - - - - - 0 - 1 - true - - Default Bold - - - - - 20 - 1 - Label_46 - - - true - true - false - - - Commanding - - true - 1 - true - Label - 164 - false - 2b4f25d5:1502b5812fe:-7d1c - 66 - 36 - - - - false - false - false - - - - true - - - - 0 - 1 - true - - Default - - false - - - - 0 - 20 - 0 - Text Update_1 - 0 - false - /cfs/cfe_time/CFE_TIME_HkPacket_t_param.Payload.ErrCounter - - 0.0 - - - true - true - false - - - true - ###### - $(pv_name) -$(pv_value) - false - 1 - true - Text Update - 100 - false - 2b4f25d5:1502b5812fe:-7d06 - 169 - 74 - - - - - scripts/NoOp.js - - false - - - - false - false - - - - false - - - - 0 - 1 - true - - Default - - false - - - - 20 - - NoOp - 0 - - - - - true - true - false - - - - NoOp - false - This command performs no other function than to increment the command execution counter. The command may be used to verify general aliveness of the Event Services task. - true - Action Button - 67 - 39deb42:1504a4eb8cc:-7de2 - 276 - 55 - - - - - scripts/ResetCounters.js - - false - - - - false - false - - - - false - - - - 0 - 1 - true - - Default - - false - - - - 20 - - NoOp_1 - 0 - - - - - true - true - false - - - - Reset - false - $(pv_name) -$(pv_value) - true - Action Button - 67 - -9ddfcbe:1507831914f:-7cfc - 276 - 74 - - - - false - - - - - - - 0 - 1 - true - - Default Bold - - - - - 20 - 1 - Label_49 - - - true - true - false - - - Core Flight Executive - Time Services - - true - 1 - true - Label - 295 - false - 763e00b7:150973f1dd8:-7cf4 - 66 - 6 - - - - - ViewDiagnostic.opi - - true - - 0 - - - - false - false - - - - false - - - - 0 - 1 - true - - Default - - false - - - - 26 - - Action Button_1 - 0 - - - - - true - true - false - - - - View Diagnostic - false - $(pv_name) -$(pv_value) - true - Action Button - 130 - 763e00b7:150973f1dd8:-7ba6 - 294 - 144 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 2 - Label_50 - - - true - true - false - - - Add 1Hz - - true - 1 - true - Label - 146 - false - 763e00b7:150973f1dd8:-7381 - 6 - 254 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 2 - Label_51 - - - true - true - false - - - Server - - true - 1 - true - Label - 146 - false - 763e00b7:150973f1dd8:-7379 - 6 - 292 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 2 - Label_52 - - - true - true - false - - - Good Tone - - true - 1 - true - Label - 146 - false - 35ebaa52:1509cf6a868:-7ae6 - 6 - 311 - - - - - SetState.opi - - true - - 8 - - - - false - false - - - - false - - - - 0 - 1 - true - - Default - - false - - - - 26 - - Action Button_1 - 0 - - - - - true - true - false - - - - Set State - false - $(pv_name) -$(pv_value) - true - Action Button - 130 - 35ebaa52:1509cf6a868:-7980 - 294 - 169 - - - - - SetSource.opi - - true - - 8 - - - - false - false - - - - false - - - - 0 - 1 - true - - Default - - false - - - - 26 - - Action Button_2 - 0 - - - - - true - true - false - - - - Set Source - false - $(pv_name) -$(pv_value) - true - Action Button - 130 - 35ebaa52:1509cf6a868:-7976 - 294 - 194 - - - - - SetSignal.opi - - true - - 8 - - - - false - false - - - - false - - - - 0 - 1 - true - - Default - - false - - - - 26 - - Action Button_3 - 0 - - - - - true - true - false - - - - Set Tone Source - false - $(pv_name) -$(pv_value) - true - Action Button - 130 - 35ebaa52:1509cf6a868:-796c - 294 - 219 - - - - - SetDelay.opi - - true - - 8 - - - - false - false - - - - false - - - - 0 - 1 - true - - Default - - false - - - - 26 - - Action Button_4 - 0 - - - - - true - true - false - - - - Set Delay - false - $(pv_name) -$(pv_value) - true - Action Button - 130 - 35ebaa52:1509cf6a868:-7965 - 294 - 244 - - - - - SetTime.opi - - true - - 8 - - - - false - false - - - - false - - - - 0 - 1 - true - - Default - - false - - - - 26 - - Action Button_5 - 0 - - - - - true - true - false - - - - Set Time - false - $(pv_name) -$(pv_value) - true - Action Button - 130 - 35ebaa52:1509cf6a868:-794e - 294 - 267 - - - - - SetLeaps.opi - - true - - 8 - - - - false - false - - - - false - - - - 0 - 1 - true - - Default - - false - - - - 26 - - Action Button_6 - 0 - - - - - true - true - false - - - - Set Leaps - false - $(pv_name) -$(pv_value) - true - Action Button - 130 - 35ebaa52:1509cf6a868:-7940 - 294 - 292 - - - - - SetAdjust.opi - - true - - 8 - - - - false - false - - - - false - - - - 0 - 1 - true - - Default - - false - - - - 26 - - Action Button_7 - 0 - - - - - true - true - false - - - - Set Adjust - false - $(pv_name) -$(pv_value) - true - Action Button - 130 - 35ebaa52:1509cf6a868:-7936 - 294 - 317 - - - - false - false - false - - - - 0 - true - - - - 0 - 1 - true - - Default - - false - - - - 20 - - Check Box - /cfs/cfe_time/CFE_TIME_HkPacket_t_param.Payload.ClockSet - - - - true - false - false - - - - - - $(pv_name) -$(pv_value) - true - Check Box - 100 - 35ebaa52:1509cf6a868:-74e4 - 164 - 121 - - - - false - false - false - - - - 0 - true - - - - 0 - 1 - true - - Default - - false - - - - 20 - - Check Box_1 - /cfs/cfe_time/CFE_TIME_HkPacket_t_param.Payload.Flying - - - - true - false - false - - - - - - $(pv_name) -$(pv_value) - true - Check Box - 100 - 35ebaa52:1509cf6a868:-74e3 - 164 - 140 - - - - false - false - false - - - - 0 - true - - - - 0 - 1 - true - - Default - - false - - - - 20 - - Check Box_2 - /cfs/cfe_time/CFE_TIME_HkPacket_t_param.Payload.SrcInt - - - - true - false - false - - - - - - $(pv_name) -$(pv_value) - true - Check Box - 100 - 35ebaa52:1509cf6a868:-74e2 - 164 - 159 - - - - false - false - false - - - - 0 - true - - - - 0 - 1 - true - - Default - - false - - - - 20 - - Check Box_3 - /cfs/cfe_time/CFE_TIME_HkPacket_t_param.Payload.SigPri - - - - true - false - false - - - - - - $(pv_name) -$(pv_value) - true - Check Box - 100 - 35ebaa52:1509cf6a868:-74e1 - 164 - 178 - - - - false - false - false - - - - 0 - true - - - - 0 - 1 - true - - Default - - false - - - - 20 - - Check Box_4 - /cfs/cfe_time/CFE_TIME_HkPacket_t_param.Payload.SrvFly - - - - true - false - false - - - - - - $(pv_name) -$(pv_value) - true - Check Box - 100 - 35ebaa52:1509cf6a868:-74e0 - 164 - 197 - - - - false - false - false - - - - 0 - true - - - - 0 - 1 - true - - Default - - false - - - - 20 - - Check Box_5 - /cfs/cfe_time/CFE_TIME_HkPacket_t_param.Payload.CmdFly - - - - true - false - false - - - - - - $(pv_name) -$(pv_value) - true - Check Box - 100 - 35ebaa52:1509cf6a868:-74df - 164 - 216 - - - - false - false - false - - - - 0 - true - - - - 0 - 1 - true - - Default - - false - - - - 20 - - Check Box_6 - /cfs/cfe_time/CFE_TIME_HkPacket_t_param.Payload.AddAdj - - - - true - false - false - - - - - - $(pv_name) -$(pv_value) - true - Check Box - 100 - 35ebaa52:1509cf6a868:-74de - 164 - 235 - - - - false - false - false - - - - 0 - true - - - - 0 - 1 - true - - Default - - false - - - - 20 - - Check Box_7 - /cfs/cfe_time/CFE_TIME_HkPacket_t_param.Payload.Add1Hz - - - - true - false - false - - - - - - $(pv_name) -$(pv_value) - true - Check Box - 100 - 35ebaa52:1509cf6a868:-74dd - 164 - 254 - - - - false - false - false - - - - 0 - true - - - - 0 - 1 - true - - Default - - false - - - - 20 - - Check Box_8 - /cfs/cfe_time/CFE_TIME_HkPacket_t_param.Payload.AddTcl - - - - true - false - false - - - - - - $(pv_name) -$(pv_value) - true - Check Box - 100 - 35ebaa52:1509cf6a868:-74dc - 164 - 273 - - - - false - false - false - - - - 0 - true - - - - 0 - 1 - true - - Default - - false - - - - 20 - - Check Box_9 - /cfs/cfe_time/CFE_TIME_HkPacket_t_param.Payload.Server - - - - true - false - false - - - - - - $(pv_name) -$(pv_value) - true - Check Box - 100 - 35ebaa52:1509cf6a868:-74db - 164 - 292 - - - - false - false - false - - - - 0 - true - - - - 0 - 1 - true - - Default - - false - - - - 20 - - Check Box_10 - /cfs/cfe_time/CFE_TIME_HkPacket_t_param.Payload.GoodTone - - - - true - false - false - - - - - - $(pv_name) -$(pv_value) - true - Check Box - 100 - 35ebaa52:1509cf6a868:-74da - 164 - 311 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 2 - Label_61 - - - true - true - false - - - Add TCL - - true - 1 - true - Label - 146 - false - 35ebaa52:1509cf6a868:-74d2 - 6 - 273 - - - - false - - - - - - - 0 - 1 - true - - Default Bold - - - - - 20 - 1 - Label_62 - - - true - true - false - - - Misc - - true - 1 - true - Label - 133 - false - 35ebaa52:1509cf6a868:-74c4 - 81 - 342 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 2 - Label_63 - - - true - true - false - - - Clock State API - - true - 1 - true - Label - 146 - false - 35ebaa52:1509cf6a868:-74ba - 6 - 366 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 2 - Label_64 - - - true - true - false - - - MET - - true - 1 - true - Label - 146 - false - 35ebaa52:1509cf6a868:-74ae - 6 - 404 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 2 - Label_65 - - - true - true - false - - - Leap Seconds - - true - 1 - true - Label - 146 - false - 35ebaa52:1509cf6a868:-74a9 - 6 - 385 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 2 - Label_66 - - - true - true - false - - - STCF - - true - 1 - true - Label - 146 - false - 35ebaa52:1509cf6a868:-74a4 - 6 - 442 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 2 - Label_68 - - - true - true - false - - - 1 Hz Adj - - true - 1 - true - Label - 146 - false - 35ebaa52:1509cf6a868:-749a - 6 - 480 - - - - false - false - false - - - - true - - - - 0 - 1 - true - - Default - - false - - - - 0 - 20 - 0 - Text Update_2 - 0 - false - /cfs/cfe_time/CFE_TIME_HkPacket_t_param.Payload.ClockStateAPI - - 0.0 - - - true - true - false - - - true - ###### - $(pv_name) -$(pv_value) - false - 1 - true - Text Update - 100 - false - 35ebaa52:1509cf6a868:-7447 - 169 - 366 - - - - false - false - false - - - - true - - - - 0 - 1 - true - - Default - - false - - - - 0 - 20 - 0 - Text Update_3 - 0 - false - /cfs/cfe_time/CFE_TIME_HkPacket_t_param.Payload.LeapSeconds - - 0.0 - - - true - true - false - - - true - ###### - $(pv_name) -$(pv_value) - false - 1 - true - Text Update - 100 - false - 35ebaa52:1509cf6a868:-7446 - 169 - 385 - - - - false - false - false - - - - true - - - - 0 - 1 - true - - Default - - false - - - - 0 - 20 - 0 - Text Update_4 - 0 - false - /cfs/cfe_time/CFE_TIME_HkPacket_t_param.Payload.SecondsMET - - 0.0 - - - true - true - false - - - true - ###### - $(pv_name) -$(pv_value) - false - 1 - true - Text Update - 100 - false - 35ebaa52:1509cf6a868:-7445 - 169 - 404 - - - - false - false - false - - - - true - - - - 0 - 1 - true - - Default - - false - - - - 0 - 20 - 0 - Text Update_5 - 0 - false - /cfs/cfe_time/CFE_TIME_HkPacket_t_param.Payload.SubsecsMET - - 0.0 - - - true - true - false - - - true - ###### - $(pv_name) -$(pv_value) - false - 1 - true - Text Update - 100 - false - 35ebaa52:1509cf6a868:-7444 - 169 - 423 - - - - false - false - false - - - - true - - - - 0 - 1 - true - - Default - - false - - - - 0 - 20 - 0 - Text Update_6 - 0 - false - /cfs/cfe_time/CFE_TIME_HkPacket_t_param.Payload.SecondsSCTF - - 0.0 - - - true - true - false - - - true - ###### - $(pv_name) -$(pv_value) - false - 1 - true - Text Update - 100 - false - 35ebaa52:1509cf6a868:-7443 - 169 - 442 - - - - false - false - false - - - - true - - - - 0 - 1 - true - - Default - - false - - - - 0 - 20 - 0 - Text Update_7 - 0 - false - /cfs/cfe_time/CFE_TIME_HkPacket_t_param.Payload.SubsecsSCTF - - 0.0 - - - true - true - false - - - true - ###### - $(pv_name) -$(pv_value) - false - 1 - true - Text Update - 100 - false - 35ebaa52:1509cf6a868:-7442 - 169 - 461 - - - - false - false - false - - - - true - - - - 0 - 1 - true - - Default - - false - - - - 0 - 20 - 0 - Text Update_8 - 0 - false - /cfs/cfe_time/CFE_TIME_HkPacket_t_param.Payload.Seconds1HzAdj - - 0.0 - - - true - true - false - - - true - ###### - $(pv_name) -$(pv_value) - false - 1 - true - Text Update - 100 - false - 35ebaa52:1509cf6a868:-7441 - 169 - 480 - - - - false - false - false - - - - true - - - - 0 - 1 - true - - Default - - false - - - - 0 - 20 - 0 - Text Update_9 - 0 - false - /cfs/cfe_time/CFE_TIME_HkPacket_t_param.Payload.Subsecs1HzAdj - - 0.0 - - - true - true - false - - - true - ###### - $(pv_name) -$(pv_value) - false - 1 - true - Text Update - 100 - false - 35ebaa52:1509cf6a868:-7440 - 169 - 499 - - \ No newline at end of file diff --git a/tools/commander/workspace_template/Displays/CFE/TIME/SetAdjust.opi b/tools/commander/workspace_template/Displays/CFE/TIME/SetAdjust.opi deleted file mode 100644 index c6ded872f..000000000 --- a/tools/commander/workspace_template/Displays/CFE/TIME/SetAdjust.opi +++ /dev/null @@ -1,484 +0,0 @@ - - - true - - 35ebaa52:1509cf6a868:-791f - true - false - - 190 - - true - - 4.0.104.201510200439 - true - Display - - false - -1 - -1 - - - - - 275 - -1 - - 6 - true - -1 - true - - - - - - false - 0 - false - false - $(pv_name) -$(pv_value) - 0 - - true - 35ebaa52:1509cf6a868:-78ea - - Set Adjustment - - false - 25 - 1 - - true - true - false - - - true - - - - - Action Button - false - - - - 163 - 54 - Action Button - 150 - - - - - - - ../scripts/RestartApp.js - - true - - - - - Default - - - - 0 - - 2 - - true - 35ebaa52:1509cf6a868:-78e9 - true - false - Seconds - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 87 - 16 - Label - 90 - - - - - - Default - - - - false - 0 - $(pv_name) -$(pv_value) - 0 - - - false - ###### - 0.0 - true - 20 - false - 1 - true - loc://Seconds<VDouble> - 0 - - - - false - Text Input - - Seconds - - - 0 - false - true - 35ebaa52:1509cf6a868:-78e7 - false - - true - - true - true - false - - false - 1 - false - - - - 137 - 114 - 90 - 1.7976931348623157E308 - - - - -1.7976931348623157E308 - - Default - - - - 0 - - 2 - - true - 35ebaa52:1509cf6a868:-657f - true - false - Microseconds - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 87 - 16 - Label_1 - 115 - - - - - - Default - - - - false - 0 - $(pv_name) -$(pv_value) - 0 - - - false - ###### - 0.0 - true - 20 - false - 1 - true - loc://Microseconds<VDouble> - 0 - - - - false - Text Input - - Microseconds - - - 0 - false - true - 35ebaa52:1509cf6a868:-657e - false - - true - - true - true - false - - false - 1 - false - - - - 137 - 114 - 115 - 1.7976931348623157E308 - - - - -1.7976931348623157E308 - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - true - 35ebaa52:1509cf6a868:-62cf - - - - true - - - true - 33 - 1 - - true - true - false - - false - true - loc://Direction<VString> - - - - Radio Box - false - - - - 160 - 84 - Direction - 12 - - - - - - Add - Subtract - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - true - 35ebaa52:1509cf6a868:-6277 - - - - true - - - true - 33 - 1 - - true - true - false - - false - true - loc://Frequency<VString> - - - - Radio Box - false - - - - 160 - 84 - Frequency - 44 - - - - - - One Shot - 1 Hz - - - Default - - - - 0 - - 2 - - true - 35ebaa52:1509cf6a868:-626b - true - false - Direction - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 61 - 16 - Label_2 - 19 - - - - - - Default - - - - 0 - - 2 - - true - 35ebaa52:1509cf6a868:-6261 - true - false - Frequency - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 77 - 0 - Label_3 - 51 - - - - - - Default - - - \ No newline at end of file diff --git a/tools/commander/workspace_template/Displays/CFE/TIME/SetDelay.opi b/tools/commander/workspace_template/Displays/CFE/TIME/SetDelay.opi deleted file mode 100644 index 51cf81150..000000000 --- a/tools/commander/workspace_template/Displays/CFE/TIME/SetDelay.opi +++ /dev/null @@ -1,350 +0,0 @@ - - - true - - 35ebaa52:1509cf6a868:-791f - true - false - - 150 - - true - - 4.0.104.201510200439 - true - Display - - false - -1 - -1 - - - - - 275 - -1 - - 6 - true - -1 - true - - - - - - false - 0 - false - false - $(pv_name) -$(pv_value) - 0 - - true - 35ebaa52:1509cf6a868:-78ea - - Set Delay - - false - 25 - 1 - - true - true - false - - - true - - - - - Action Button - false - - - - 163 - 50 - Action Button - 114 - - - - - - - ../scripts/RestartApp.js - - true - - - - - Default - - - - 0 - - 2 - - true - 35ebaa52:1509cf6a868:-78e9 - true - false - Seconds - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 87 - 16 - Label - 53 - - - - - - Default - - - - false - 0 - $(pv_name) -$(pv_value) - 0 - - - false - ###### - 0.0 - true - 20 - false - 1 - true - loc://Seconds<VDouble> - 0 - - - - false - Text Input - - Seconds - - - 0 - false - true - 35ebaa52:1509cf6a868:-78e7 - false - - true - - true - true - false - - false - 1 - false - - - - 137 - 114 - 53 - 1.7976931348623157E308 - - - - -1.7976931348623157E308 - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - true - 35ebaa52:1509cf6a868:-7878 - - - - true - - - true - 33 - 1 - - true - true - false - - false - true - loc://Direction<VString> - - - - Radio Box - false - - - - 216 - 24 - Direction - 12 - - - - - - Add - Subtract - - - Default - - - - 0 - - 2 - - true - 35ebaa52:1509cf6a868:-657f - true - false - Microseconds - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 87 - 16 - Label_1 - 78 - - - - - - Default - - - - false - 0 - $(pv_name) -$(pv_value) - 0 - - - false - ###### - 0.0 - true - 20 - false - 1 - true - loc://Microseconds<VDouble> - 0 - - - - false - Text Input - - Microseconds - - - 0 - false - true - 35ebaa52:1509cf6a868:-657e - false - - true - - true - true - false - - false - 1 - false - - - - 137 - 114 - 78 - 1.7976931348623157E308 - - - - -1.7976931348623157E308 - - Default - - - \ No newline at end of file diff --git a/tools/commander/workspace_template/Displays/CFE/TIME/SetLeaps.opi b/tools/commander/workspace_template/Displays/CFE/TIME/SetLeaps.opi deleted file mode 100644 index 4c34feaa2..000000000 --- a/tools/commander/workspace_template/Displays/CFE/TIME/SetLeaps.opi +++ /dev/null @@ -1,195 +0,0 @@ - - - true - - 35ebaa52:1509cf6a868:-791f - true - false - - 100 - - true - - 4.0.104.201510200439 - true - Display - - false - -1 - -1 - - - - - 275 - -1 - - 6 - true - -1 - true - - - - - - false - 0 - false - false - $(pv_name) -$(pv_value) - 0 - - true - 35ebaa52:1509cf6a868:-78ea - - Set Leap Seconds - - false - 25 - 1 - - true - true - false - - - true - - - - - Action Button - false - - - - 163 - 54 - Action Button - 60 - - - - - - - ../scripts/RestartApp.js - - true - - - - - Default - - - - 0 - - 2 - - true - 35ebaa52:1509cf6a868:-78e9 - true - false - Seconds - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 87 - 16 - Label - 24 - - - - - - Default - - - - false - 0 - $(pv_name) -$(pv_value) - 0 - - - false - ###### - 0.0 - true - 20 - false - 1 - true - loc://Seconds<VDouble> - 0 - - - - false - Text Input - - Seconds - - - 0 - false - true - 35ebaa52:1509cf6a868:-78e7 - false - - true - - true - true - false - - false - 1 - false - - - - 137 - 114 - 24 - 1.7976931348623157E308 - - - - -1.7976931348623157E308 - - Default - - - \ No newline at end of file diff --git a/tools/commander/workspace_template/Displays/CFE/TIME/SetSignal.opi b/tools/commander/workspace_template/Displays/CFE/TIME/SetSignal.opi deleted file mode 100644 index cc28d2984..000000000 --- a/tools/commander/workspace_template/Displays/CFE/TIME/SetSignal.opi +++ /dev/null @@ -1,190 +0,0 @@ - - - true - - 35ebaa52:1509cf6a868:-791f - true - false - - 100 - - true - - 4.0.104.201510200439 - true - Display - - false - -1 - -1 - - - - - 275 - -1 - - 6 - true - -1 - true - - - - - - false - 0 - false - false - $(pv_name) -$(pv_value) - 0 - - true - 35ebaa52:1509cf6a868:-78ea - - Set Tone Source - - false - 25 - 1 - - true - true - false - - - true - - - - - Action Button - false - - - - 163 - 54 - Action Button - 60 - - - - - - - ../scripts/RestartApp.js - - true - - - - - Default - - - - 0 - - 2 - - true - 35ebaa52:1509cf6a868:-78e9 - true - false - Tone Source - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 83 - 18 - Label - 23 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - true - 35ebaa52:1509cf6a868:-78e7 - - - true - 29 - 1 - - true - true - false - - false - true - loc://ToneSource<VString> - - - - Combo - false - - - - 135 - 108 - ToneSource - 18 - - - - - - Primary - Redundant - - - Default - - - \ No newline at end of file diff --git a/tools/commander/workspace_template/Displays/CFE/TIME/SetSource.opi b/tools/commander/workspace_template/Displays/CFE/TIME/SetSource.opi deleted file mode 100644 index 5fd57e85f..000000000 --- a/tools/commander/workspace_template/Displays/CFE/TIME/SetSource.opi +++ /dev/null @@ -1,190 +0,0 @@ - - - true - - 35ebaa52:1509cf6a868:-791f - true - false - - 100 - - true - - 4.0.104.201510200439 - true - Display - - false - -1 - -1 - - - - - 275 - -1 - - 6 - true - -1 - true - - - - - - false - 0 - false - false - $(pv_name) -$(pv_value) - 0 - - true - 35ebaa52:1509cf6a868:-78ea - - Set Source - - false - 25 - 1 - - true - true - false - - - true - - - - - Action Button - false - - - - 163 - 54 - Action Button - 60 - - - - - - - ../scripts/RestartApp.js - - true - - - - - Default - - - - 0 - - 2 - - true - 35ebaa52:1509cf6a868:-78e9 - true - false - Clock Source - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 83 - 18 - Label - 23 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - true - 35ebaa52:1509cf6a868:-78e7 - - - true - 29 - 1 - - true - true - false - - false - true - loc://ClockSource<VString> - - - - Combo - false - - - - 135 - 108 - ClockSource - 18 - - - - - - Internal - External - - - Default - - - \ No newline at end of file diff --git a/tools/commander/workspace_template/Displays/CFE/TIME/SetState.opi b/tools/commander/workspace_template/Displays/CFE/TIME/SetState.opi deleted file mode 100644 index ecfdff412..000000000 --- a/tools/commander/workspace_template/Displays/CFE/TIME/SetState.opi +++ /dev/null @@ -1,192 +0,0 @@ - - - true - - 35ebaa52:1509cf6a868:-791f - true - false - - 100 - - true - - 4.0.104.201510200439 - true - Display - - false - -1 - -1 - - - - - 275 - -1 - - 6 - true - -1 - true - - - - - - false - 0 - false - false - $(pv_name) -$(pv_value) - 0 - - true - 35ebaa52:1509cf6a868:-78ea - - Set State - - false - 25 - 1 - - true - true - false - - - true - - - - - Action Button - false - - - - 163 - 54 - Action Button - 60 - - - - - - - ../scripts/RestartApp.js - - true - - - - - Default - - - - 0 - - 2 - - true - 35ebaa52:1509cf6a868:-78e9 - true - false - Clock state - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 83 - 18 - Label - 23 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - true - 35ebaa52:1509cf6a868:-78e7 - - - true - 29 - 1 - - true - true - false - - false - true - loc://ClockState<VString> - - - - Combo - false - - - - 135 - 108 - ClockState - 18 - - - - - - Invalid - Valid - Flywheel - - - Default - - - \ No newline at end of file diff --git a/tools/commander/workspace_template/Displays/CFE/TIME/SetTime.opi b/tools/commander/workspace_template/Displays/CFE/TIME/SetTime.opi deleted file mode 100644 index 5d07693ba..000000000 --- a/tools/commander/workspace_template/Displays/CFE/TIME/SetTime.opi +++ /dev/null @@ -1,353 +0,0 @@ - - - true - - 35ebaa52:1509cf6a868:-791f - true - false - - 150 - - true - - 4.0.104.201510200439 - true - Display - - false - -1 - -1 - - - - - 275 - -1 - - 6 - true - -1 - true - - - - - - false - 0 - false - false - $(pv_name) -$(pv_value) - 0 - - true - 35ebaa52:1509cf6a868:-78ea - - Set Time - - false - 25 - 1 - - true - true - false - - - true - - - - - Action Button - false - - - - 163 - 54 - Action Button - 114 - - - - - - - ../scripts/RestartApp.js - - true - - - - - Default - - - - 0 - - 2 - - true - 35ebaa52:1509cf6a868:-78e9 - true - false - Seconds - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 87 - 16 - Label - 54 - - - - - - Default - - - - false - 0 - $(pv_name) -$(pv_value) - 0 - - - false - ###### - 0.0 - true - 20 - false - 1 - true - loc://Seconds<VDouble> - 0 - - - - false - Text Input - - Seconds - - - 0 - false - true - 35ebaa52:1509cf6a868:-78e7 - false - - true - - true - true - false - - false - 1 - false - - - - 137 - 114 - 54 - 1.7976931348623157E308 - - - - -1.7976931348623157E308 - - Default - - - - 0 - - 2 - - true - 35ebaa52:1509cf6a868:-657f - true - false - Microseconds - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 87 - 16 - Label_1 - 79 - - - - - - Default - - - - false - 0 - $(pv_name) -$(pv_value) - 0 - - - false - ###### - 0.0 - true - 20 - false - 1 - true - loc://Microseconds<VDouble> - 0 - - - - false - Text Input - - Microseconds - - - 0 - false - true - 35ebaa52:1509cf6a868:-657e - false - - true - - true - true - false - - false - 1 - false - - - - 137 - 114 - 79 - 1.7976931348623157E308 - - - - -1.7976931348623157E308 - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - true - 35ebaa52:1509cf6a868:-62cf - - - - true - - - true - 33 - 1 - - true - true - false - - false - true - loc://Type<VString> - - - - Radio Box - false - - - - 216 - 28 - Type - 12 - - - - - - Time - MET - STCF - - - Default - - - \ No newline at end of file diff --git a/tools/commander/workspace_template/Displays/CFE/TIME/ViewDiagnostic.opi b/tools/commander/workspace_template/Displays/CFE/TIME/ViewDiagnostic.opi deleted file mode 100644 index 47afd45a8..000000000 --- a/tools/commander/workspace_template/Displays/CFE/TIME/ViewDiagnostic.opi +++ /dev/null @@ -1,5633 +0,0 @@ - - - true - - 35ebaa52:1509cf6a868:-791f - true - false - - 1350 - - true - - 4.0.104.201510200439 - true - Display - - false - -1 - -1 - - - - - 300 - -1 - - 6 - true - -1 - true - - - - - - false - 0 - false - false - $(pv_name) -$(pv_value) - 0 - - true - 35ebaa52:1509cf6a868:-78ea - - Telemeter Data - - false - 25 - 1 - - true - true - false - - - true - - - - - Action Button - false - - - - 163 - 53 - Action Button - 12 - - - - - - - ../scripts/RestartApp.js - - true - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 35ebaa52:1509cf6a868:-72d5 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_time/Diag_AtToneMET_Seconds - 1 - - - - false - Text Update - false - false - 0 - - - - 151 - 138 - Text Update - 54 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 35ebaa52:1509cf6a868:-72d4 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_time/Diag_AtToneMET_Subseconds - 1 - - - - false - Text Update - false - false - 1 - - - - 151 - 138 - Text Update_1 - 73 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 35ebaa52:1509cf6a868:-72d3 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_time/Diag_AtToneSTCF_Seconds - 1 - - - - false - Text Update - false - false - 1 - - - - 151 - 138 - Text Update_2 - 92 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 35ebaa52:1509cf6a868:-72d2 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_time/Diag_AtToneSTCF_Subseconds - 1 - - - - false - Text Update - false - false - 1 - - - - 151 - 138 - Text Update_3 - 111 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 35ebaa52:1509cf6a868:-72d1 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_time/Diag_AtToneDelay_Seconds - 1 - - - - false - Text Update - false - false - 1 - - - - 151 - 138 - Text Update_4 - 130 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 35ebaa52:1509cf6a868:-72d0 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_time/Diag_AtToneDelay_Subseconds - 1 - - - - false - Text Update - false - false - 1 - - - - 151 - 138 - Text Update_5 - 149 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 35ebaa52:1509cf6a868:-72cf - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_time/Diag_AtToneLatch_Seconds - 1 - - - - false - Text Update - false - false - 1 - - - - 151 - 138 - Text Update_6 - 168 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 35ebaa52:1509cf6a868:-72ce - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_time/Diag_AtToneLatch_Subseconds - 1 - - - - false - Text Update - false - false - 1 - - - - 151 - 138 - Text Update_7 - 187 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 35ebaa52:1509cf6a868:-72cd - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_time/Diag_AtToneLeaps - 1 - - - - false - Text Update - false - false - 1 - - - - 151 - 138 - Text Update_8 - 206 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 35ebaa52:1509cf6a868:-72cc - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_time/Diag_ClockStateAPI - 1 - - - - false - Text Update - false - false - 1 - - - - 151 - 138 - Text Update_9 - 225 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 35ebaa52:1509cf6a868:-72cb - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_time/Diag_TimeSinceTone_Seconds - 1 - - - - false - Text Update - false - false - 1 - - - - 151 - 138 - Text Update_10 - 244 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 35ebaa52:1509cf6a868:-72ca - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_time/Diag_TimeSinceTone_Subseconds - 1 - - - - false - Text Update - false - false - 1 - - - - 151 - 138 - Text Update_11 - 263 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 35ebaa52:1509cf6a868:-72c9 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_time/Diag_CurrentLatch_Seconds - 1 - - - - false - Text Update - false - false - 1 - - - - 151 - 138 - Text Update_12 - 282 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 35ebaa52:1509cf6a868:-72c8 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_time/Diag_CurrentLatch_Subseconds - 1 - - - - false - Text Update - false - false - 1 - - - - 151 - 138 - Text Update_13 - 301 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 35ebaa52:1509cf6a868:-72c7 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_time/Diag_CurrentMET_Seconds - 1 - - - - false - Text Update - false - false - 1 - - - - 151 - 138 - Text Update_14 - 320 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 35ebaa52:1509cf6a868:-72c6 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_time/Diag_CurrentMET_Subseconds - 1 - - - - false - Text Update - false - false - 1 - - - - 151 - 138 - Text Update_15 - 339 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 35ebaa52:1509cf6a868:-72c5 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_time/Diag_CurrentTAI_Seconds - 1 - - - - false - Text Update - false - false - 1 - - - - 151 - 138 - Text Update_16 - 358 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 35ebaa52:1509cf6a868:-72c4 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_time/Diag_CurrentTAI_Subseconds - 1 - - - - false - Text Update - false - false - 1 - - - - 151 - 138 - Text Update_17 - 377 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 35ebaa52:1509cf6a868:-72c3 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_time/Diag_CurrentUTC_Seconds - 1 - - - - false - Text Update - false - false - 1 - - - - 151 - 138 - Text Update_18 - 396 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 35ebaa52:1509cf6a868:-72c2 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_time/Diag_CurrentUTC_Subseconds - 1 - - - - false - Text Update - false - false - 1 - - - - 151 - 138 - Text Update_19 - 415 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 35ebaa52:1509cf6a868:-72c1 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_time/Diag_ClockSetState - 1 - - - - false - Text Update - false - false - 1 - - - - 151 - 138 - Text Update_20 - 434 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 35ebaa52:1509cf6a868:-72c0 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_time/Diag_ClockFlyingState - 1 - - - - false - Text Update - false - false - 1 - - - - 151 - 138 - Text Update_21 - 453 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 35ebaa52:1509cf6a868:-72bf - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_time/Diag_ClockSource - 1 - - - - false - Text Update - false - false - 1 - - - - 151 - 138 - Text Update_22 - 472 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 35ebaa52:1509cf6a868:-72be - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_time/Diag_ClockSignal - 1 - - - - false - Text Update - false - false - 1 - - - - 151 - 138 - Text Update_23 - 491 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 35ebaa52:1509cf6a868:-72bd - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_time/Diag_ServerFlyState - 1 - - - - false - Text Update - false - false - 1 - - - - 151 - 138 - Text Update_24 - 510 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - 35ebaa52:1509cf6a868:-72bc - - - - - false - - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_time/Diag_Forced2Fly - - - - - Check Box - false - - - - 151 - 138 - Text Update_25 - 529 - - - - - - Default - - - - 0 - - 2 - - true - 35ebaa52:1509cf6a868:-721b - true - false - MET at Tone - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 80 - 48 - Label - 54 - - - - - - Default - - - - 0 - - 2 - - true - 35ebaa52:1509cf6a868:-7213 - true - false - Latch at Tone - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 80 - 48 - Label_1 - 168 - - - - - - Default - - - - 0 - - 2 - - true - 35ebaa52:1509cf6a868:-720c - true - false - STCF at Tone - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 80 - 48 - Label_2 - 92 - - - - - - Default - - - - 0 - - 2 - - true - 35ebaa52:1509cf6a868:-71f6 - true - false - Delay at Tone - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 92 - 36 - Label_3 - 130 - - - - - - Default - - - - 0 - - 2 - - true - 35ebaa52:1509cf6a868:-71f1 - true - false - Clock State API - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 98 - 30 - Label_4 - 225 - - - - - - Default - - - - 0 - - 2 - - true - 35ebaa52:1509cf6a868:-71db - true - false - Leaps at Tone - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 92 - 36 - Label_5 - 206 - - - - - - Default - - - - 0 - - 2 - - true - 35ebaa52:1509cf6a868:-71cd - true - false - Time Since Tone - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 98 - 30 - Label_6 - 244 - - - - - - Default - - - - 0 - - 2 - - true - 35ebaa52:1509cf6a868:-71bd - true - false - Current UTC - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 80 - 48 - Label_7 - 396 - - - - - - Default - - - - 0 - - 2 - - true - 35ebaa52:1509cf6a868:-71b6 - true - false - Current Latch - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 104 - 24 - Label_8 - 282 - - - - - - Default - - - - 0 - - 2 - - true - 35ebaa52:1509cf6a868:-71af - true - false - Clock Source - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 80 - 48 - Label_9 - 472 - - - - - - Default - - - - 0 - - 2 - - true - 35ebaa52:1509cf6a868:-71a8 - true - false - Current MET - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 80 - 48 - Label_10 - 320 - - - - - - Default - - - - 0 - - 2 - - true - 35ebaa52:1509cf6a868:-71a1 - true - false - Clock Set State - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 104 - 24 - Label_11 - 434 - - - - - - Default - - - - 0 - - 2 - - true - 35ebaa52:1509cf6a868:-719a - true - false - Current TAI - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 80 - 48 - Label_12 - 358 - - - - - - Default - - - - 0 - - 2 - - true - 35ebaa52:1509cf6a868:-7193 - true - false - Clock Flying State - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 110 - 18 - Label_13 - 453 - - - - - - Default - - - - 0 - - 2 - - true - 35ebaa52:1509cf6a868:-7175 - true - false - Clock Signal - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 80 - 48 - Label_14 - 491 - - - - - - Default - - - - 0 - - 2 - - true - 35ebaa52:1509cf6a868:-716e - true - false - Server Fly State - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 110 - 18 - Label_15 - 510 - - - - - - Default - - - - 0 - - 2 - - true - 35ebaa52:1509cf6a868:-7167 - true - false - Forced to Fly - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 80 - 48 - Label_16 - 529 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - 35ebaa52:1509cf6a868:-712d - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_time/Diag_ClkSet - - - - - Check Box - false - - - - 100 - 138 - Check Box - 552 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - 35ebaa52:1509cf6a868:-712c - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_time/Diag_Flying - - - - - Check Box - false - - - - 100 - 138 - Check Box_1 - 571 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - 35ebaa52:1509cf6a868:-712b - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_time/Diag_SrcInt - - - - - Check Box - false - - - - 100 - 138 - Check Box_2 - 590 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - 35ebaa52:1509cf6a868:-712a - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_time/Diag_SigPri - - - - - Check Box - false - - - - 100 - 138 - Check Box_3 - 609 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - 35ebaa52:1509cf6a868:-7129 - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_time/Diag_SrvFly - - - - - Check Box - false - - - - 100 - 138 - Check Box_4 - 628 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - 35ebaa52:1509cf6a868:-7128 - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_time/Diag_CmdFly - - - - - Check Box - false - - - - 100 - 138 - Check Box_5 - 647 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - 35ebaa52:1509cf6a868:-7127 - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_time/Diag_AddAdj - - - - - Check Box - false - - - - 100 - 138 - Check Box_6 - 685 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - 35ebaa52:1509cf6a868:-7126 - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_time/Diag_Add1Hz - - - - - Check Box - false - - - - 100 - 138 - Check Box_7 - 704 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - 35ebaa52:1509cf6a868:-7125 - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_time/Diag_AddTcl - - - - - Check Box - false - - - - 100 - 138 - Check Box_8 - 723 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - 35ebaa52:1509cf6a868:-7124 - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_time/Diag_Server - - - - - Check Box - false - - - - 100 - 138 - Check Box_9 - 742 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - 35ebaa52:1509cf6a868:-7123 - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_time/Diag_GoodTone - - - - - Check Box - false - - - - 100 - 138 - Check Box_10 - 666 - - - - - - Default - - - - 0 - - 2 - - true - 35ebaa52:1509cf6a868:-711b - true - false - Clock Set - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 80 - 48 - Label_17 - 552 - - - - - - Default - - - - 0 - - 2 - - true - 35ebaa52:1509cf6a868:-710f - true - false - Flying - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 80 - 48 - Label_18 - 571 - - - - - - Default - - - - 0 - - 2 - - true - 35ebaa52:1509cf6a868:-710a - true - false - Clock Set - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 80 - 48 - Label_19 - 590 - - - - - - Default - - - - 0 - - 2 - - true - 35ebaa52:1509cf6a868:-7105 - true - false - Signal Primary - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 110 - 18 - Label_20 - 628 - - - - - - Default - - - - 0 - - 2 - - true - 35ebaa52:1509cf6a868:-7100 - true - false - Source Internal - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 104 - 24 - Label_21 - 609 - - - - - - Default - - - - 0 - - 2 - - true - 35ebaa52:1509cf6a868:-70fb - true - false - Add TCL - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 80 - 48 - Label_22 - 723 - - - - - - Default - - - - 0 - - 2 - - true - 35ebaa52:1509cf6a868:-70f6 - true - false - Add 1Hz - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 80 - 48 - Label_23 - 704 - - - - - - Default - - - - 0 - - 2 - - true - 35ebaa52:1509cf6a868:-70f1 - true - false - Server Flying - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 80 - 48 - Label_24 - 647 - - - - - - Default - - - - 0 - - 2 - - true - 35ebaa52:1509cf6a868:-70ec - true - false - Commanded Flying - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 122 - 6 - Label_25 - 664 - - - - - - Default - - - - 0 - - 2 - - true - 35ebaa52:1509cf6a868:-70e7 - true - false - Add Adj - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 80 - 48 - Label_26 - 683 - - - - - - Default - - - - 0 - - 2 - - true - 35ebaa52:1509cf6a868:-70cd - true - false - Server - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 80 - 48 - Label_27 - 742 - - - - - - Default - - - - 0 - - 2 - - true - 35ebaa52:1509cf6a868:-70c8 - true - false - Add TCL - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 80 - 48 - Label_28 - 761 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - 35ebaa52:1509cf6a868:-70ba - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_time/Diag_GoodTone - - - - - Check Box - false - - - - 100 - 138 - Check Box_11 - 761 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 35ebaa52:1509cf6a868:-706e - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_time/Diag_OneTimeDirection - 1 - - - - false - Text Update - false - false - 1 - - - - 151 - 138 - Text Update_26 - 786 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 35ebaa52:1509cf6a868:-706d - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_time/Diag_OneHzDirection - 1 - - - - false - Text Update - false - false - 1 - - - - 151 - 138 - Text Update_27 - 805 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 35ebaa52:1509cf6a868:-706c - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_time/Diag_DelayDirection - 1 - - - - false - Text Update - false - false - 1 - - - - 151 - 138 - Text Update_28 - 824 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 35ebaa52:1509cf6a868:-706b - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_time/Diag_OneTimeAdjust_Seconds - 1 - - - - false - Text Update - false - false - 1 - - - - 151 - 138 - Text Update_29 - 843 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 35ebaa52:1509cf6a868:-706a - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_time/Diag_OneTimeAdjust_Subseconds - 1 - - - - false - Text Update - false - false - 1 - - - - 151 - 138 - Text Update_30 - 862 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 35ebaa52:1509cf6a868:-7069 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_time/Diag_OneHzAdjust_Seconds - 1 - - - - false - Text Update - false - false - 1 - - - - 151 - 138 - Text Update_31 - 881 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 35ebaa52:1509cf6a868:-7068 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_time/Diag_OneHzAdjust_Subseconds - 1 - - - - false - Text Update - false - false - 1 - - - - 151 - 138 - Text Update_32 - 900 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 35ebaa52:1509cf6a868:-7067 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_time/Diag_ToneSignalLatch_Seconds - 1 - - - - false - Text Update - false - false - 1 - - - - 151 - 138 - Text Update_33 - 919 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 35ebaa52:1509cf6a868:-7066 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_time/Diag_ToneSignalLatch_Subseconds - 1 - - - - false - Text Update - false - false - 1 - - - - 151 - 138 - Text Update_34 - 938 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 35ebaa52:1509cf6a868:-7065 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_time/Diag_ToneDataLatch_Seconds - 1 - - - - false - Text Update - false - false - 1 - - - - 151 - 138 - Text Update_35 - 957 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 35ebaa52:1509cf6a868:-7064 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_time/Diag_ToneDataLatch_Subseconds - 1 - - - - false - Text Update - false - false - 1 - - - - 151 - 138 - Text Update_36 - 976 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 35ebaa52:1509cf6a868:-7063 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_time/Diag_ToneMatchCount - 1 - - - - false - Text Update - false - false - 1 - - - - 151 - 138 - Text Update_37 - 995 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 35ebaa52:1509cf6a868:-7062 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_time/Diag_ToneMatchErrors - 1 - - - - false - Text Update - false - false - 1 - - - - 151 - 138 - Text Update_38 - 1014 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 35ebaa52:1509cf6a868:-7061 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_time/Diag_ToneSignalCount - 1 - - - - false - Text Update - false - false - 1 - - - - 151 - 138 - Text Update_39 - 1033 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 35ebaa52:1509cf6a868:-7060 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_time/Diag_ToneDataCount - 1 - - - - false - Text Update - false - false - 1 - - - - 151 - 138 - Text Update_40 - 1052 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 35ebaa52:1509cf6a868:-705f - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_time/Diag_ToneIntCount - 1 - - - - false - Text Update - false - false - 1 - - - - 151 - 138 - Text Update_41 - 1071 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 35ebaa52:1509cf6a868:-705e - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_time/Diag_ToneIntErrors - 1 - - - - false - Text Update - false - false - 1 - - - - 151 - 138 - Text Update_42 - 1090 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 35ebaa52:1509cf6a868:-705d - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_time/Diag_ToneTaskCount - 1 - - - - false - Text Update - false - false - 1 - - - - 151 - 138 - Text Update_43 - 1109 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 35ebaa52:1509cf6a868:-705c - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_time/Diag_VersionCount - 1 - - - - false - Text Update - false - false - 1 - - - - 151 - 138 - Text Update_44 - 1128 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 35ebaa52:1509cf6a868:-705b - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_time/Diag_LocalIntCount - 1 - - - - false - Text Update - false - false - 1 - - - - 151 - 138 - Text Update_45 - 1147 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 35ebaa52:1509cf6a868:-705a - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_time/Diag_LocalTaskCount - 1 - - - - false - Text Update - false - false - 1 - - - - 151 - 138 - Text Update_46 - 1166 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 35ebaa52:1509cf6a868:-7059 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_time/Diag_VirtualMET - 1 - - - - false - Text Update - false - false - 1 - - - - 151 - 138 - Text Update_47 - 1185 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 35ebaa52:1509cf6a868:-7058 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_time/Diag_MinElapsed - 1 - - - - false - Text Update - false - false - 1 - - - - 151 - 138 - Text Update_48 - 1204 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 35ebaa52:1509cf6a868:-7057 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_time/Diag_MaxElapsed - 1 - - - - false - Text Update - false - false - 1 - - - - 151 - 138 - Text Update_49 - 1223 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 35ebaa52:1509cf6a868:-7056 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_time/Diag_MaxLocalClock_Seconds - 1 - - - - false - Text Update - false - false - 0 - - - - 151 - 138 - Text Update_50 - 1242 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 35ebaa52:1509cf6a868:-7055 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_time/Diag_MaxLocalClock_Subseconds - 1 - - - - false - Text Update - false - false - 0 - - - - 151 - 138 - Text Update_51 - 1261 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 35ebaa52:1509cf6a868:-7054 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_time/Diag_ToneOverLimit - 1 - - - - false - Text Update - false - false - 0 - - - - 151 - 138 - Text Update_52 - 1280 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 35ebaa52:1509cf6a868:-7053 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_time/Diag_ToneUnderLimit - 1 - - - - false - Text Update - false - false - 0 - - - - 151 - 138 - Text Update_53 - 1299 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 35ebaa52:1509cf6a868:-7052 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_time/Diag_DataStoreStatus - 1 - - - - false - Text Update - false - false - 0 - - - - 151 - 138 - Text Update_54 - 1318 - - - - - - Default - - - - 0 - - 2 - - true - 35ebaa52:1509cf6a868:-7048 - true - false - One Time Direction - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 122 - 6 - Label_29 - 786 - - - - - - Default - - - - 0 - - 2 - - true - 35ebaa52:1509cf6a868:-7043 - true - false - 1 Hz Direction - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 110 - 18 - Label_30 - 805 - - - - - - Default - - - - 0 - - 2 - - true - 35ebaa52:1509cf6a868:-703e - true - false - Delay Direction - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 117 - 11 - Label_31 - 824 - - - - - - Default - - - - 0 - - 2 - - true - 35ebaa52:1509cf6a868:-7034 - true - false - One Time Adjust - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 110 - 18 - Label_33 - 843 - - - - - - Default - - - - 0 - - 2 - - true - 35ebaa52:1509cf6a868:-702f - true - false - Tone Signal Latch - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 119 - 7 - Label_34 - 919 - - - - - - Default - - - - 0 - - 2 - - true - 35ebaa52:1509cf6a868:-702a - true - false - 1 Hz Adjust - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 80 - 48 - Label_35 - 881 - - - - - - Default - - - - 0 - - 2 - - true - 35ebaa52:1509cf6a868:-7020 - true - false - Tone Data Latch - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 116 - 12 - Label_37 - 957 - - - - - - Default - - - - 0 - - 2 - - true - 35ebaa52:1509cf6a868:-7011 - true - false - Tone Match Errors - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 117 - 11 - Label_40 - 1014 - - - - - - Default - - - - 0 - - 2 - - true - 35ebaa52:1509cf6a868:-700c - true - false - Tone Match Count - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 116 - 12 - Label_41 - 995 - - - - - - Default - - - - 0 - - 2 - - true - 35ebaa52:1509cf6a868:-7007 - true - false - Tone Signal Count - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 117 - 11 - Label_42 - 1033 - - - - - - Default - - - - 0 - - 2 - - true - 35ebaa52:1509cf6a868:-7002 - true - false - Tone Data Count - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 110 - 18 - Label_43 - 1052 - - - - - - Default - - - - 0 - - 2 - - true - 35ebaa52:1509cf6a868:-6ffd - true - false - Tone Int Count - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 104 - 24 - Label_44 - 1071 - - - - - - Default - - - - 0 - - 2 - - true - 35ebaa52:1509cf6a868:-6ff8 - true - false - Tone Int Errors - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 110 - 18 - Label_45 - 1090 - - - - - - Default - - - - 0 - - 2 - - true - 35ebaa52:1509cf6a868:-6ff3 - true - false - Version Count - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 104 - 24 - Label_46 - 1128 - - - - - - Default - - - - 0 - - 2 - - true - 35ebaa52:1509cf6a868:-6fee - true - false - Tone Task Count - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 110 - 18 - Label_47 - 1109 - - - - - - Default - - - - 0 - - 2 - - true - 35ebaa52:1509cf6a868:-6fe9 - true - false - Local Int Count - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 104 - 24 - Label_48 - 1147 - - - - - - Default - - - - 0 - - 2 - - true - 35ebaa52:1509cf6a868:-6fa7 - true - false - Max Local Clock - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 104 - 24 - Label_60 - 1242 - - - - - - Default - - - - 0 - - 2 - - true - 35ebaa52:1509cf6a868:-6fa2 - true - false - Local Task Count - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 112 - 16 - Label_61 - 1165 - - - - - - Default - - - - 0 - - 2 - - true - 35ebaa52:1509cf6a868:-6f9d - true - false - Tone Over Limit - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 110 - 18 - Label_62 - 1280 - - - - - - Default - - - - 0 - - 2 - - true - 35ebaa52:1509cf6a868:-6f93 - true - false - Data Store Status - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 110 - 18 - Label_64 - 1318 - - - - - - Default - - - - 0 - - 2 - - true - 35ebaa52:1509cf6a868:-6f8e - true - false - Tone Under Limit - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 116 - 12 - Label_65 - 1299 - - - - - - Default - - - - 0 - - 2 - - true - 35ebaa52:1509cf6a868:-6f89 - true - false - Max Elapsed - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 80 - 48 - Label_66 - 1223 - - - - - - Default - - - - 0 - - 2 - - true - 35ebaa52:1509cf6a868:-6f84 - true - false - Min Elapsed - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 80 - 48 - Label_67 - 1205 - - - - - - Default - - - - 0 - - 2 - - true - 35ebaa52:1509cf6a868:-6f7f - true - false - Virtual MET - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 80 - 48 - Label_68 - 1185 - - - - - - Default - - - \ No newline at end of file diff --git a/tools/commander/workspace_template/Displays/CFE/TIME/scripts/NoOp.js b/tools/commander/workspace_template/Displays/CFE/TIME/scripts/NoOp.js deleted file mode 100644 index 152a38c5e..000000000 --- a/tools/commander/workspace_template/Displays/CFE/TIME/scripts/NoOp.js +++ /dev/null @@ -1,4 +0,0 @@ -importPackage(Packages.org.csstudio.opibuilder.scriptUtil); -importPackage(Packages.org.yamcs.studio.script); - -Yamcs.issueCommand('/cfs/cfe_time/NoOp(arg: none)'); \ No newline at end of file diff --git a/tools/commander/workspace_template/Displays/CFE/TIME/scripts/ResetCounters.js b/tools/commander/workspace_template/Displays/CFE/TIME/scripts/ResetCounters.js deleted file mode 100644 index 199f98568..000000000 --- a/tools/commander/workspace_template/Displays/CFE/TIME/scripts/ResetCounters.js +++ /dev/null @@ -1,4 +0,0 @@ -importPackage(Packages.org.csstudio.opibuilder.scriptUtil); -importPackage(Packages.org.yamcs.studio.script); - -Yamcs.issueCommand('/cfs/cfe_time/Reset(arg: none)'); \ No newline at end of file diff --git a/tools/commander/workspace_template/Displays/Core/ES/ApplicationControl.opi b/tools/commander/workspace_template/Displays/Core/ES/ApplicationControl.opi index 99b2ac5e9..974148876 100644 --- a/tools/commander/workspace_template/Displays/Core/ES/ApplicationControl.opi +++ b/tools/commander/workspace_template/Displays/Core/ES/ApplicationControl.opi @@ -1,2186 +1,2186 @@ - - true - - 72a2bf2b:1508717c835:-7d33 - true - false - - 600 - - true - - 4.0.104.201510200439 - true - Display - - false - -1 - -1 - - - - - 800 - -1 - - 6 - true - -1 - true - - - - - - false - 0 - false - false - $(pv_name) -$(pv_value) - 0 - - true - 72a2bf2b:1508717c835:-7cf7 - - Query - - false - 28 - 1 - - true - true - false - - - true - - - - - Action Button - false - - - - 81 - 348 - Action Button - 19 - - - - - - - QueryApp.opi - - true - - 8 - - - - - Default - - - - 0 - - 2 - - true - 72a2bf2b:1508717c835:-7c77 - true - false - ID - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 80 - 66 - Label_1 - 19 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 72a2bf2b:1508717c835:-7c76 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_es/CFE_ES_OneAppTlm_t_param.AppInfo.AppID - 1 - - - - false - Text Update - false - false - 0 - - - - 100 - 162 - Text Update_1 - 19 - - - - - - Default - - - - 0 - - 2 - - true - 72a2bf2b:1508717c835:-7c6f - true - false - Type - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 80 - 66 - Label_2 - 43 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 72a2bf2b:1508717c835:-7c6e - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_es/AppInfo_Type - 1 - - - - false - Text Update - false - false - 0 - - - - 169 - 162 - Text Update_2 - 43 - - - - - - Default - - - - 0 - - 2 - - true - 72a2bf2b:1508717c835:-7c63 - true - false - Name - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 80 - 66 - Label_3 - 67 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 72a2bf2b:1508717c835:-7c62 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_es/AppInfo_Name - 1 - - - - false - Text Update - false - false - 0 - - - - 100 - 162 - txtAppName - 67 - - - - - - Default - - - - 0 - - 2 - - true - 72a2bf2b:1508717c835:-7c5b - true - false - Entry Point - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 80 - 66 - Label_4 - 91 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 72a2bf2b:1508717c835:-7c5a - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_es/AppInfo_EntryPoint - 1 - - - - false - Text Update - false - false - 0 - - - - 169 - 162 - Text Update_4 - 91 - - - - - - Default - - - - 0 - - 2 - - true - 72a2bf2b:1508717c835:-7c53 - true - false - File Name - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 80 - 66 - Label_5 - 115 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 72a2bf2b:1508717c835:-7c52 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_es/AppInfo_FileName - 1 - - - - false - Text Update - false - false - 1 - - - - 169 - 162 - Text Update_5 - 115 - - - - - - Default - - - - 0 - - 2 - - true - 72a2bf2b:1508717c835:-7c1d - true - false - Stack Size - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 80 - 66 - Label_6 - 139 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 72a2bf2b:1508717c835:-7c1c - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_es/AppInfo_StackSize - 1 - - - - false - Text Update - false - false - 1 - - - - 100 - 162 - Text Update_6 - 139 - - - - - - Default - - - - 0 - - 2 - - true - 72a2bf2b:1508717c835:-7c15 - true - false - Module ID - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 92 - 54 - Label_7 - 163 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 72a2bf2b:1508717c835:-7c14 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_es/AppInfo_ModuleID - 1 - - - - false - Text Update - false - false - 1 - - - - 100 - 162 - Text Update_7 - 163 - - - - - - Default - - - - 0 - - 2 - - true - 72a2bf2b:1508717c835:-7c0d - true - false - Valid Addresses - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 120 - 26 - Label_8 - 187 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 72a2bf2b:1508717c835:-7c0c - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_es/AppInfo_AddressesAreValid - 1 - - - - false - Text Update - false - false - 1 - - - - 100 - 162 - Text Update_8 - 187 - - - - - - Default - - - - 0 - - 2 - - true - 72a2bf2b:1508717c835:-7c05 - true - false - Code Address - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 104 - 42 - Label_9 - 211 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 72a2bf2b:1508717c835:-7c04 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_es/AppInfo_CodeAddress - 1 - - - - false - Text Update - false - false - 3 - - - - 100 - 162 - Text Update_9 - 211 - - - - - - Default - - - - 0 - - 2 - - true - 72a2bf2b:1508717c835:-7bea - true - false - Code Size - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 104 - 42 - Label_10 - 235 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 72a2bf2b:1508717c835:-7be9 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_es/AppInfo_CodeSize - 1 - - - - false - Text Update - false - false - 1 - - - - 100 - 162 - Text Update_10 - 235 - - - - - - Default - - - - 0 - - 2 - - true - 72a2bf2b:1508717c835:-7bda - true - false - Data Address - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 104 - 42 - Label_11 - 259 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 72a2bf2b:1508717c835:-7bd9 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_es/AppInfo_DataAddress - 1 - - - - false - Text Update - false - false - 3 - - - - 100 - 162 - Text Update_11 - 259 - - - - - - Default - - - - 0 - - 2 - - true - 72a2bf2b:1508717c835:-7bd2 - true - false - Data Size - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 104 - 42 - Label_12 - 283 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 72a2bf2b:1508717c835:-7bd1 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_es/AppInfo_DataSize - 1 - - - - false - Text Update - false - false - 1 - - - - 100 - 162 - Text Update_12 - 283 - - - - - - Default - - - - 0 - - 2 - - true - 72a2bf2b:1508717c835:-7bca - true - false - BSS Address - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 104 - 42 - Label_13 - 307 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 72a2bf2b:1508717c835:-7bc9 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_es/AppInfo_BSSAddress - 1 - - - - false - Text Update - false - false - 3 - - - - 100 - 162 - Text Update_13 - 307 - - - - - - Default - - - - 0 - - 2 - - true - 72a2bf2b:1508717c835:-7bc2 - true - false - BSS Size - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 104 - 42 - Label_14 - 331 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 72a2bf2b:1508717c835:-7bc1 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_es/AppInfo_BSSSize - 1 - - - - false - Text Update - false - false - 1 - - - - 100 - 162 - Text Update_14 - 331 - - - - - - Default - - - - 0 - - 2 - - true - 72a2bf2b:1508717c835:-7bba - true - false - Start Address - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 104 - 42 - Label_15 - 355 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 72a2bf2b:1508717c835:-7bb9 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_es/AppInfo_StartAddress - 1 - - - - false - Text Update - false - false - 3 - - - - 100 - 162 - Text Update_15 - 355 - - - - - - Default - - - - 0 - - 2 - - true - 72a2bf2b:1508717c835:-7b8a - true - false - Exception Action - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 104 - 42 - Label_16 - 379 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 72a2bf2b:1508717c835:-7b89 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_es/AppInfo_ExceptionAction - 1 - - - - false - Text Update - false - false - 0 - - - - 100 - 162 - Text Update_16 - 379 - - - - - - Default - - - - 0 - - 2 - - true - 72a2bf2b:1508717c835:-7b82 - true - false - Priority - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 104 - 42 - Label_17 - 403 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 72a2bf2b:1508717c835:-7b81 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_es/AppInfo_Priority - 1 - - - - false - Text Update - false - false - 1 - - - - 100 - 162 - Text Update_17 - 403 - - - - - - Default - - - - 0 - - 2 - - true - 72a2bf2b:1508717c835:-7b7a - true - false - Main Task ID - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 104 - 42 - Label_18 - 427 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 72a2bf2b:1508717c835:-7b79 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_es/AppInfo_MainTaskId - 1 - - - - false - Text Update - false - false - 1 - - - - 100 - 162 - Text Update_18 - 427 - - - - - - Default - - - - 0 - - 2 - - true - 72a2bf2b:1508717c835:-7b72 - true - false - Execution Counter - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 140 - 6 - Label_19 - 451 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 72a2bf2b:1508717c835:-7b71 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_es/AppInfo_ExecutionCounter - 1 - - - - false - Text Update - false - false - 1 - - - - 100 - 162 - Text Update_19 - 451 - - - - - - Default - - - - 0 - - 2 - - true - 72a2bf2b:1508717c835:-7b5a - true - false - Main Task Name - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 140 - 6 - Label_20 - 474 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 72a2bf2b:1508717c835:-7b59 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_es/AppInfo_MainTaskName - 1 - - - - false - Text Update - false - false - 0 - - - - 100 - 162 - Text Update_20 - 474 - - - - - - Default - - - - 0 - - 2 - - true - 72a2bf2b:1508717c835:-7b4f - true - false - Child Tasks - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 140 - 6 - Label_21 - 498 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 72a2bf2b:1508717c835:-7b4e - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_es/AppInfo_NumOfChildTasks - 1 - - - - false - Text Update - false - false - 1 - - - - 100 - 162 - Text Update_21 - 498 - - - - - - Default - - - - false - 0 - false - false - $(pv_name) -$(pv_value) - 0 - - true - 72a2bf2b:1508717c835:-78ca - - Restart - - false - 28 - 1 - - true - true - false - - - true - - - - - Action Button - false - - - - 81 - 348 - Action Button_1 - 54 - - - - - - - RestartApp.opi - - true - - 8 - - - - - Default - - - - false - 0 - false - false - $(pv_name) -$(pv_value) - 0 - - true - 72a2bf2b:1508717c835:-78bc - - Stop - - false - 28 - 1 - - true - true - false - - - true - - - - - Action Button - false - - - - 81 - 348 - Action Button_2 - 120 - - - - - - - StopApp.opi - - true - - 8 - - - - - Default - - - - false - 0 - false - false - $(pv_name) -$(pv_value) - 0 - - true - 72a2bf2b:1508717c835:-78b2 - - Start - - false - 28 - 1 - - true - true - false - - - true - - - - - Action Button - false - - - - 81 - 348 - Action Button_3 - 87 - - - - - - - scripts/StartApp.js + + + + false + -1 + -1 + + false + + + + 1.5.3 + + + + 6 + 600 + + true + + + + + true + true + true + true + true + Display + 800 + 72a2bf2b:1508717c835:-7d33 + -1 + -1 + + + + QueryApp.opi + + true + + 0 + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 28 + + Action Button + 0 + + + + + true + true + false + + + + Query + false + $(pv_name) +$(pv_value) + true + Action Button + 81 + 72a2bf2b:1508717c835:-7cf7 + 348 + 19 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_1 + + + true + true + false + + + ID + + true + 1 + true + Label + 80 + false + 72a2bf2b:1508717c835:-7c77 + 66 + 19 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_1 + 0 + false + /cfs/cfe_es/CFE_ES_OneAppTlm_t_param.AppInfo.AppID + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + 72a2bf2b:1508717c835:-7c76 + 162 + 19 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_2 + + + true + true + false + + + Type + + true + 1 + true + Label + 80 + false + 72a2bf2b:1508717c835:-7c6f + 66 + 43 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_2 + 0 + false + /cfs/cfe_es/AppInfo_Type + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 169 + false + 72a2bf2b:1508717c835:-7c6e + 162 + 43 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_3 + + + true + true + false + + + Name + + true + 1 + true + Label + 80 + false + 72a2bf2b:1508717c835:-7c63 + 66 + 67 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + txtAppName + 0 + false + /cfs/cfe_es/AppInfo_Name + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + 72a2bf2b:1508717c835:-7c62 + 162 + 67 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_4 + + + true + true + false + + + Entry Point + + true + 1 + true + Label + 80 + false + 72a2bf2b:1508717c835:-7c5b + 66 + 91 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_4 + 0 + false + /cfs/cfe_es/AppInfo_EntryPoint + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 169 + false + 72a2bf2b:1508717c835:-7c5a + 162 + 91 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_5 + + + true + true + false + + + File Name + + true + 1 + true + Label + 80 + false + 72a2bf2b:1508717c835:-7c53 + 66 + 115 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_5 + 0 + false + /cfs/cfe_es/AppInfo_FileName + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 169 + false + 72a2bf2b:1508717c835:-7c52 + 162 + 115 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_6 + + + true + true + false + + + Stack Size + + true + 1 + true + Label + 80 + false + 72a2bf2b:1508717c835:-7c1d + 66 + 139 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_6 + 0 + false + /cfs/cfe_es/AppInfo_StackSize + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + 72a2bf2b:1508717c835:-7c1c + 162 + 139 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_7 + + + true + true + false + + + Module ID + + true + 1 + true + Label + 92 + false + 72a2bf2b:1508717c835:-7c15 + 54 + 163 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_7 + 0 + false + /cfs/cfe_es/AppInfo_ModuleID + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + 72a2bf2b:1508717c835:-7c14 + 162 + 163 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_8 + + + true + true + false + + + Valid Addresses + + true + 1 + true + Label + 120 + false + 72a2bf2b:1508717c835:-7c0d + 26 + 187 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_8 + 0 + false + /cfs/cfe_es/AppInfo_AddressesAreValid + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + 72a2bf2b:1508717c835:-7c0c + 162 + 187 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_9 + + + true + true + false + + + Code Address + + true + 1 + true + Label + 104 + false + 72a2bf2b:1508717c835:-7c05 + 42 + 211 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 3 + 20 + 0 + Text Update_9 + 0 + false + /cfs/cfe_es/AppInfo_CodeAddress + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + 72a2bf2b:1508717c835:-7c04 + 162 + 211 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_10 + + + true + true + false + + + Code Size + + true + 1 + true + Label + 104 + false + 72a2bf2b:1508717c835:-7bea + 42 + 235 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_10 + 0 + false + /cfs/cfe_es/AppInfo_CodeSize + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + 72a2bf2b:1508717c835:-7be9 + 162 + 235 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_11 + + + true + true + false + + + Data Address + + true + 1 + true + Label + 104 + false + 72a2bf2b:1508717c835:-7bda + 42 + 259 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 3 + 20 + 0 + Text Update_11 + 0 + false + /cfs/cfe_es/AppInfo_DataAddress + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + 72a2bf2b:1508717c835:-7bd9 + 162 + 259 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_12 + + + true + true + false + + + Data Size + + true + 1 + true + Label + 104 + false + 72a2bf2b:1508717c835:-7bd2 + 42 + 283 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_12 + 0 + false + /cfs/cfe_es/AppInfo_DataSize + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + 72a2bf2b:1508717c835:-7bd1 + 162 + 283 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_13 + + + true + true + false + + + BSS Address + + true + 1 + true + Label + 104 + false + 72a2bf2b:1508717c835:-7bca + 42 + 307 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 3 + 20 + 0 + Text Update_13 + 0 + false + /cfs/cfe_es/AppInfo_BSSAddress + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + 72a2bf2b:1508717c835:-7bc9 + 162 + 307 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_14 + + + true + true + false + + + BSS Size + + true + 1 + true + Label + 104 + false + 72a2bf2b:1508717c835:-7bc2 + 42 + 331 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_14 + 0 + false + /cfs/cfe_es/AppInfo_BSSSize + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + 72a2bf2b:1508717c835:-7bc1 + 162 + 331 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_15 + + + true + true + false + + + Start Address + + true + 1 + true + Label + 104 + false + 72a2bf2b:1508717c835:-7bba + 42 + 355 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 3 + 20 + 0 + Text Update_15 + 0 + false + /cfs/cfe_es/AppInfo_StartAddress + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + 72a2bf2b:1508717c835:-7bb9 + 162 + 355 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_16 + + + true + true + false + + + Exception Action + + true + 1 + true + Label + 104 + false + 72a2bf2b:1508717c835:-7b8a + 42 + 379 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_16 + 0 + false + /cfs/cfe_es/AppInfo_ExceptionAction + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + 72a2bf2b:1508717c835:-7b89 + 162 + 379 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_17 + + + true + true + false + + + Priority + + true + 1 + true + Label + 104 + false + 72a2bf2b:1508717c835:-7b82 + 42 + 403 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_17 + 0 + false + /cfs/cfe_es/AppInfo_Priority + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + 72a2bf2b:1508717c835:-7b81 + 162 + 403 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_18 + + + true + true + false + + + Main Task ID + + true + 1 + true + Label + 104 + false + 72a2bf2b:1508717c835:-7b7a + 42 + 427 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_18 + 0 + false + /cfs/cfe_es/AppInfo_MainTaskId + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + 72a2bf2b:1508717c835:-7b79 + 162 + 427 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_19 + + + true + true + false + + + Execution Counter + + true + 1 + true + Label + 140 + false + 72a2bf2b:1508717c835:-7b72 + 6 + 451 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_19 + 0 + false + /cfs/cfe_es/AppInfo_ExecutionCounter + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + 72a2bf2b:1508717c835:-7b71 + 162 + 451 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_20 + + + true + true + false + + + Main Task Name + + true + 1 + true + Label + 140 + false + 72a2bf2b:1508717c835:-7b5a + 6 + 474 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_20 + 0 + false + /cfs/cfe_es/AppInfo_MainTaskName + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + 72a2bf2b:1508717c835:-7b59 + 162 + 474 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_21 + + + true + true + false + + + Child Tasks + + true + 1 + true + Label + 140 + false + 72a2bf2b:1508717c835:-7b4f + 6 + 498 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_21 + 0 + false + /cfs/cfe_es/AppInfo_NumOfChildTasks + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + 72a2bf2b:1508717c835:-7b4e + 162 + 498 + + + + + RestartApp.opi + + true + + 0 + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 28 + + Action Button_1 + 0 + + + + + true + true + false + + + + Restart + false + $(pv_name) +$(pv_value) + true + Action Button + 81 + 72a2bf2b:1508717c835:-78ca + 348 + 54 + + + + + StopApp.opi + + true + + 8 + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 28 + + Action Button_2 + 0 + + + + + true + true + false + + + + Stop + false + $(pv_name) +$(pv_value) + true + Action Button + 81 + 72a2bf2b:1508717c835:-78bc + 348 + 120 + + + + + scripts/StartApp.js - false - - - - - Default - - - \ No newline at end of file +]]> + false + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 28 + + Action Button_3 + 0 + + + + + true + true + false + + + + Start + false + $(pv_name) +$(pv_value) + true + Action Button + 81 + 72a2bf2b:1508717c835:-78b2 + 348 + 87 + + diff --git a/tools/commander/workspace_template/Displays/Core/ES/Console.opi b/tools/commander/workspace_template/Displays/Core/ES/Console.opi index ae03ded23..381acd9f1 100644 --- a/tools/commander/workspace_template/Displays/Core/ES/Console.opi +++ b/tools/commander/workspace_template/Displays/Core/ES/Console.opi @@ -1,13 +1,29 @@ - - true - - -e1e6812:1508d3700d4:-75fc - true - false - - - EmbeddedScript + + + + false + -1 + -1 + + false + + + + 1.5.3 + + + + 6 + 600 + + true + + + + + + EmbeddedScript - /cfs/cfe_es/ShellOutput - - - 600 - - true - - 4.0.104.201510200439 - true - Display - - false - -1 - -1 - - - - - 800 - -1 - - 6 - true - -1 - true - - - - - - false - 0 - false - false - $(pv_name) -$(pv_value) - 0 - - true - -e1e6812:1508d3700d4:-75c7 - - Send Cmd - - false - 25 - 1 - - true - true - false - - - true - - - - - Action Button - false - - - - 73 - 6 - Action Button - 528 - - - - - - - scripts/RestartApp.js +]]> + /cfs/cfe_es/ShellOutput + + + true + true + true + true + true + Display + 800 + -e1e6812:1508d3700d4:-75fc + -1 + -1 + + + + scripts/RestartApp.js - true - - - - - Default - - - - 0 - - 1 - - true - -e1e6812:1508d3700d4:-75c4 - true - false - Console - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 231 - 276 - Label_1 - 0 - - - - - - Header 1 - - - - false - 0 - $(pv_name) -$(pv_value) - 0 - - - false - - 0.0 - true - 25 - false - 1 - true - loc://ConsoleInput - 0 - - - - true - Text Input - - inConsoleInput - - - 3 - false - true - -e1e6812:1508d3700d4:-74bc - false - - false - - true - true - false - - false - 4 - false - - - - 709 - 84 - 528 - 1.7976931348623157E308 - - - - -1.7976931348623157E308 - - Default - - - - false - 0 - $(pv_name) -$(pv_value) - 0 - - - false - - 0.0 - true - 25 - false - 1 - true - loc://FileName - 0 - - - - true - Text Input - - inFileName - - - 3 - false - true - -e1e6812:1508d3700d4:-7494 - false - - false - - true - true - false - - false - 4 - false - - - - 283 - 84 - 558 - 1.7976931348623157E308 - - - - -1.7976931348623157E308 - - Default - - - - 0 - - 2 - - true - -e1e6812:1508d3700d4:-747d - true - false - File Name - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 64 - 11 - Label - 561 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - -e1e6812:1508d3700d4:-7435 - false - - false - ###### - 0.0 - - true - false - 480 - 1 - - false - false - false - - true - loc://ConsoleOutput - 0 - - - - false - Text Update - false - false - 4 - - - - 775 - 18 - ConsoleDisplay - 30 - - - - - - Default - - - \ No newline at end of file +]]> + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 25 + + Action Button + 0 + + + + + true + true + false + + + + Send Cmd + false + $(pv_name) +$(pv_value) + true + Action Button + 73 + -e1e6812:1508d3700d4:-75c7 + 6 + 528 + + + + false + + + + + + + 0 + 1 + true + + Header 1 + + + + + 20 + 1 + Label_1 + + + true + true + false + + + Console + + true + 1 + true + Label + 231 + false + -e1e6812:1508d3700d4:-75c4 + 276 + 0 + + + + false + false + false + + + + false + + + + 3 + 1 + + true + + Default + + false + + + + 4 + 25 + 0 + false + 1.7976931348623157E308 + -1.7976931348623157E308 + false + inConsoleInput + 0 + true + loc://ConsoleInput + + 0.0 + + + true + true + false + + + 0 + true + + + $(pv_name) +$(pv_value) + false + true + Text Input + 709 + -e1e6812:1508d3700d4:-74bc + 84 + 528 + + + + false + false + false + + + + false + + + + 3 + 1 + + true + + Default + + false + + + + 4 + 25 + 0 + false + 1.7976931348623157E308 + -1.7976931348623157E308 + false + inFileName + 0 + true + loc://FileName + + 0.0 + + + true + true + false + + + 0 + true + + + $(pv_name) +$(pv_value) + false + true + Text Input + 283 + -e1e6812:1508d3700d4:-7494 + 84 + 558 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label + + + true + true + false + + + File Name + + true + 1 + true + Label + 64 + false + -e1e6812:1508d3700d4:-747d + 11 + 561 + + + + false + false + false + + + + true + + + + 0 + 1 + true + + Default + + false + + + + 4 + 480 + 0 + ConsoleDisplay + 0 + false + loc://ConsoleOutput + + 0.0 + + + false + false + false + + + false + ###### + $(pv_name) +$(pv_value) + false + 0 + true + Text Update + 775 + false + -e1e6812:1508d3700d4:-7435 + 18 + 30 + + diff --git a/tools/commander/workspace_template/Displays/Core/ES/DeleteCDS.opi b/tools/commander/workspace_template/Displays/Core/ES/DeleteCDS.opi index 350ab06a8..fecdeb1a7 100644 --- a/tools/commander/workspace_template/Displays/Core/ES/DeleteCDS.opi +++ b/tools/commander/workspace_template/Displays/Core/ES/DeleteCDS.opi @@ -1,81 +1,41 @@ - - true - - 72a2bf2b:1508717c835:-7839 - true - false - - 130 - - true - - 4.0.104.201510200439 - true - Display - - false - -1 - -1 - - - - - 400 - -1 - - 6 - true - -1 - true - - - - - - false - 0 - false - false - $(pv_name) -$(pv_value) - 0 - - true - 72a2bf2b:1508717c835:-77e3 - - Delete - - false - 25 - 1 - - true - true - false - - - true - - - - - Action Button - false - - - - 85 - 153 - Action Button - 90 - - - - - - - scripts/RestartApp.js + + + + false + -1 + -1 + + false + + + + 1.5.3 + + + + 6 + 130 + + true + + + + + true + true + true + true + true + Display + 400 + 72a2bf2b:1508717c835:-7839 + -1 + -1 + + + + scripts/RestartApp.js - true - - - - - Default - - - - 0 - - 2 - - true - 72a2bf2b:1508717c835:-772d - true - false - Name - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 80 - 24 - Label - 48 - - - - - - Default - - - - 0 - - 1 - - true - 72a2bf2b:1508717c835:-76c0 - true - false - Delete Critical Data Store - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 231 - 80 - Label_1 - 12 - - - - - - Default - - - - false - 0 - $(pv_name) -$(pv_value) - 0 - - - false - ###### - 0.0 - true - 20 - false - 1 - true - loc://Name<VString> - 0 - - - - true - Text Input - - inName - - - 0 - false - true - -e1e6812:1508d3700d4:-79c8 - false - - true - - true - true - false - - false - 4 - false - - - - 259 - 114 - 48 - 1.7976931348623157E308 - - - - -1.7976931348623157E308 - - Default - - - \ No newline at end of file +]]> + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 25 + + Action Button + 0 + + + + + true + true + false + + + + Delete + false + $(pv_name) +$(pv_value) + true + Action Button + 85 + 72a2bf2b:1508717c835:-77e3 + 153 + 90 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label + + + true + true + false + + + Name + + true + 1 + true + Label + 80 + false + 72a2bf2b:1508717c835:-772d + 24 + 48 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 1 + Label_1 + + + true + true + false + + + Delete Critical Data Store + + true + 1 + true + Label + 231 + false + 72a2bf2b:1508717c835:-76c0 + 80 + 12 + + + + false + false + false + + + + true + + + + 0 + 1 + + true + + Default + + false + + + + 4 + 20 + 0 + false + 1.7976931348623157E308 + -1.7976931348623157E308 + false + inName + 0 + true + loc://Name<VString> + + 0.0 + + + true + true + false + + + 0 + true + + ###### + $(pv_name) +$(pv_value) + false + true + Text Input + 259 + -e1e6812:1508d3700d4:-79c8 + 114 + 48 + + diff --git a/tools/commander/workspace_template/Displays/Core/ES/DumpCDSReg.opi b/tools/commander/workspace_template/Displays/Core/ES/DumpCDSReg.opi index 727c8922f..6cf79f226 100644 --- a/tools/commander/workspace_template/Displays/Core/ES/DumpCDSReg.opi +++ b/tools/commander/workspace_template/Displays/Core/ES/DumpCDSReg.opi @@ -1,81 +1,41 @@ - - true - - 72a2bf2b:1508717c835:-7839 - true - false - - 130 - - true - - 4.0.104.201510200439 - true - Display - - false - -1 - -1 - - - - - 400 - -1 - - 6 - true - -1 - true - - - - - - false - 0 - false - false - $(pv_name) -$(pv_value) - 0 - - true - 72a2bf2b:1508717c835:-77e3 - - Dump to File System - - false - 25 - 1 - - true - true - false - - - true - - - - - Action Button - false - - - - 163 - 114 - Action Button - 90 - - - - - - - scripts/RestartApp.js + + + + false + -1 + -1 + + false + + + + 1.5.3 + + + + 6 + 130 + + true + + + + + true + true + true + true + true + Display + 400 + 72a2bf2b:1508717c835:-7839 + -1 + -1 + + + + scripts/RestartApp.js - true - - - - - Default - - - - 0 - - 2 - - true - 72a2bf2b:1508717c835:-772d - true - false - File Name - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 80 - 24 - Label - 48 - - - - - - Default - - - - 0 - - 1 - - true - 72a2bf2b:1508717c835:-76c0 - true - false - Dump Critical Data Store Registry to File System - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 337 - 36 - Label_1 - 12 - - - - - - Default - - - - false - 0 - $(pv_name) -$(pv_value) - 0 - - - false - ###### - 0.0 - true - 20 - false - 1 - true - loc://FileName - 0 - - - - true - Text Input - - inFileName - - - 0 - false - true - -e1e6812:1508d3700d4:-79c8 - false - - true - - true - true - false - - false - 4 - false - - - - 259 - 114 - 48 - 1.7976931348623157E308 - - - - -1.7976931348623157E308 - - Default - - - \ No newline at end of file + +]]> + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 25 + + Action Button + 0 + + + + + true + true + false + + + + Dump to File System + false + $(pv_name) +$(pv_value) + true + Action Button + 163 + 72a2bf2b:1508717c835:-77e3 + 114 + 90 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label + + + true + true + false + + + File Name + + true + 1 + true + Label + 80 + false + 72a2bf2b:1508717c835:-772d + 24 + 48 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 1 + Label_1 + + + true + true + false + + + Dump Critical Data Store Registry to File System + + true + 1 + true + Label + 337 + false + 72a2bf2b:1508717c835:-76c0 + 36 + 12 + + + + false + false + false + + + + true + + + + 1 + 1 + + true + + Default + + false + + + + 4 + 20 + 0 + false + 1.7976931348623157E308 + -1.7976931348623157E308 + false + inFileName + 0 + true + loc://FileName + + 0.0 + + + true + true + false + + + 0 + true + + ###### + $(pv_name) +$(pv_value) + false + true + Text Input + 259 + -e1e6812:1508d3700d4:-79c8 + 114 + 48 + + diff --git a/tools/commander/workspace_template/Displays/Core/ES/Main.opi b/tools/commander/workspace_template/Displays/Core/ES/Main.opi index c13e2130a..e39e973df 100644 --- a/tools/commander/workspace_template/Displays/Core/ES/Main.opi +++ b/tools/commander/workspace_template/Displays/Core/ES/Main.opi @@ -8,7 +8,7 @@ false - + 1.5.3 @@ -42,9 +42,9 @@ true - + - 0 + 1 1 true @@ -1534,9 +1534,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -1586,9 +1586,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -1638,9 +1638,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -1690,9 +1690,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -1742,9 +1742,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -1794,9 +1794,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -1846,9 +1846,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -1898,9 +1898,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -1950,9 +1950,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -2002,9 +2002,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -2054,9 +2054,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -2106,9 +2106,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -2158,9 +2158,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -2210,9 +2210,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -2262,9 +2262,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -2314,9 +2314,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -2366,9 +2366,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -2418,9 +2418,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -2470,9 +2470,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -2522,9 +2522,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -2574,9 +2574,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -2626,9 +2626,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -2678,9 +2678,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -2730,9 +2730,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -2782,9 +2782,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -2834,9 +2834,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -2886,9 +2886,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -2933,15 +2933,17 @@ $(pv_value) scripts/NoOp.js - false +importPackage(Packages.org.yamcs.studio.script); + +Yamcs.issueCommand('/cfs/cfe_es/Noop');]]> + true false false - + false @@ -2955,7 +2957,7 @@ $(pv_value) false - + 20 @@ -2977,7 +2979,7 @@ $(pv_value) $(pv_value) true Action Button - 67 + 79 39deb42:1504a4eb8cc:-7de2 312 54 @@ -2987,15 +2989,17 @@ $(pv_value) scripts/ResetCounters.js - false +importPackage(Packages.org.yamcs.studio.script); + +Yamcs.issueCommand('/cfs/cfe_es/Reset');]]> + true false false - + false @@ -3009,7 +3013,7 @@ $(pv_value) false - + 20 @@ -3031,7 +3035,7 @@ $(pv_value) $(pv_value) true Action Button - 67 + 79 -9ddfcbe:1507831914f:-7cfc 312 73 @@ -3041,15 +3045,17 @@ $(pv_value) scripts/processor_restart.js - false +importPackage(Packages.org.yamcs.studio.script); + +Yamcs.issueCommand('/cfs/cfe_es/Restart', {'Payload.RestartType': PROCESSOR_RESET});]]> + true - false - false + true + true - + false @@ -3059,11 +3065,11 @@ $(pv_value) 1 true - Default + Default Bold false - + 23 @@ -3095,15 +3101,17 @@ $(pv_value) scripts/power_restart.js - false +importPackage(Packages.org.yamcs.studio.script); + +Yamcs.issueCommand('/cfs/cfe_es/Restart', {'Payload.RestartType': POWERON_RESET});]]> + true - false + true false - + false @@ -3113,11 +3121,11 @@ $(pv_value) 1 true - Default + Default Bold false - + 23 @@ -3144,24 +3152,12 @@ $(pv_value) 507 574 - - - - scripts/reset_pr_resets.js - - true - - - - false - false + + + false - + - false @@ -3171,16 +3167,12 @@ Yamcs.issueCommand('/cfs/cfe_es/ResetPRCount(Count: 10)');]]> Default - false 20 - - NoOp_6 - 0 - - + 2 + Label_47 true @@ -3188,39 +3180,31 @@ Yamcs.issueCommand('/cfs/cfe_es/ResetPRCount(Count: 10)');]]> false - - Reset - false - $(pv_name) -$(pv_value) + Bytes Used + + true + 1 true - Action Button - 76 - -9ddfcbe:1507831914f:-6e89 - 645 - 265 + Label + 146 + false + -9ddfcbe:1507831914f:-5722 + 27 + 411 - - - - SetMaxPRCount.opi - - true - - 8 - - - + + false + false false - + - false + true - + - 0 + 1 1 true @@ -3230,12 +3214,15 @@ $(pv_value) + 0 20 - - NoOp_7 - 0 - + 0 + Text Update_38 + 0 + false + /cfs/cfe_es/CFE_ES_HkPacket_t.Payload.SysLogBytesUsed + 0.0 true @@ -3243,22 +3230,24 @@ $(pv_value) false - - Set Max - false + true + ###### $(pv_name) $(pv_value) + false + 1 true - Action Button - 76 - -9ddfcbe:1507831914f:-6e7f - 645 - 284 + Text Update + 100 + false + -9ddfcbe:1507831914f:-5721 + 190 + 411 - WriteSysLog.opi + DumpCDSReg.opi true @@ -3269,7 +3258,7 @@ $(pv_value) false false - + false @@ -3285,9 +3274,9 @@ $(pv_value) - 21 + 25 - NoOp_8 + NoOp_15 0 @@ -3305,29 +3294,17 @@ $(pv_value) $(pv_value) true Action Button - 66 - -9ddfcbe:1507831914f:-5985 - 307 - 354 + 80 + 763e00b7:150973f1dd8:-7dbe + 467 + 167 - - - - scripts/syslog_clear.js - - true - - - - false - false + + + false - + - false @@ -3335,18 +3312,14 @@ Yamcs.issueCommand('/cfs/cfe_es/ClearSysLog(noarg: 0)');]]> 1 true - Default + Default Bold - false - 21 - - NoOp_9 - 0 - - + 20 + 1 + Label_48 true @@ -3354,17 +3327,17 @@ Yamcs.issueCommand('/cfs/cfe_es/ClearSysLog(noarg: 0)');]]> false - - Clear - false - $(pv_name) -$(pv_value) + CDS + + true + 1 true - Action Button - 67 - -9ddfcbe:1507831914f:-5979 - 378 - 354 + Label + 164 + false + 763e00b7:150973f1dd8:-7da7 + 425 + 141 @@ -3379,14 +3352,14 @@ $(pv_value) 1 true - Default + Default Bold 20 - 2 - Label_47 + 1 + Label_49 true @@ -3394,27 +3367,36 @@ $(pv_value) false - Bytes Used + Core Flight Executive - Essential Services true 1 true Label - 146 + 295 false - -9ddfcbe:1507831914f:-5722 - 27 - 411 + 763e00b7:150973f1dd8:-7cf4 + 213 + 5 - - + + + + scripts/ResetCounters.js + + true + + + false - false false - + - true + false @@ -3426,17 +3408,14 @@ $(pv_value) false - + - 0 - 20 - 0 - Text Update_38 - 0 - false - /cfs/cfe_es/CFE_ES_HkPacket_t.Payload.SysLogBytesUsed + 25 + + NoOp_16 + 0 + - 0.0 true @@ -3444,35 +3423,34 @@ $(pv_value) false - true - ###### + + Clear + false $(pv_name) $(pv_value) - false - 1 true - Text Update - 100 - false - -9ddfcbe:1507831914f:-5721 - 190 - 411 + Action Button + 79 + -5b3cf925:1773c9998f6:-7e84 + 559 + 167 - - ApplicationControl.opi - - true - - 0 + + scripts/ResetCounters.js + + true false false - + false @@ -3486,11 +3464,11 @@ $(pv_value) false - + - 27 + 20 - Action Button + NoOp_17 0 @@ -3502,21 +3480,21 @@ $(pv_value) - Application Control + Reset false $(pv_name) $(pv_value) true Action Button - 172 - -9ddfcbe:1507831914f:-478a - 474 - 341 + 79 + -5b3cf925:1773c9998f6:-7e5f + 645 + 265 - + - SetSysLogMode.opi + SetMaxPRCount.opi true @@ -3527,7 +3505,7 @@ $(pv_value) false false - + false @@ -3545,7 +3523,7 @@ $(pv_value) 20 - NoOp_11 + NoOp_18 0 @@ -3557,32 +3535,33 @@ $(pv_value) - Change + Set Max false $(pv_name) $(pv_value) true Action Button - 66 - -e1e6812:1508d3700d4:-786c - 307 - 392 + 80 + -5b3cf925:1773c9998f6:-7e55 + 645 + 284 - - Console.opi - - true - - 0 + + scripts/ResetCounters.js + + true false false - + false @@ -3596,11 +3575,11 @@ $(pv_value) false - + - 26 + 21 - Action Button_1 + NoOp_19 0 @@ -3612,21 +3591,21 @@ $(pv_value) - Console + Clear false $(pv_name) $(pv_value) true Action Button - 172 - -e1e6812:1508d3700d4:-75ff - 474 - 374 + 67 + -5b3cf925:1773c9998f6:-7e4b + 378 + 354 - PerfUtility.opi + WriteSysLog.opi true @@ -3637,7 +3616,7 @@ $(pv_value) false false - + false @@ -3653,9 +3632,9 @@ $(pv_value) - 27 + 21 - Action Button_2 + NoOp_20 0 @@ -3667,21 +3646,21 @@ $(pv_value) - Performance Utility + Dump false $(pv_name) $(pv_value) true Action Button - 172 - -35c7bfc1:1509236a393:-7dda - 474 - 407 + 66 + -5b3cf925:1773c9998f6:-7e43 + 307 + 354 - PerfUtility.opi + SetSysLogMode.opi true @@ -3692,7 +3671,7 @@ $(pv_value) false false - + false @@ -3708,9 +3687,9 @@ $(pv_value) - 27 + 21 - Action Button_3 + NoOp_21 0 @@ -3722,32 +3701,32 @@ $(pv_value) - Memory Pool Viewer + Change false $(pv_name) $(pv_value) true Action Button - 172 - -3fca34e1:15096a78c93:-77fd - 474 - 442 + 66 + -5b3cf925:1773c9998f6:-7e39 + 307 + 391 - WriteErrLog.opi + ApplicationControl.opi true - 8 + 0 false false - + false @@ -3763,9 +3742,9 @@ $(pv_value) - 20 + 27 - NoOp_12 + NoOp_22 0 @@ -3777,33 +3756,32 @@ $(pv_value) - Dump + Application Control false $(pv_name) $(pv_value) true Action Button - 66 - 763e00b7:150973f1dd8:-7dda - 307 - 468 + 172 + -5b3cf925:1773c9998f6:-7e2f + 472 + 342 - - scripts/syslog_clear.js - - true + + Console.opi + + true + + 0 false false - + false @@ -3819,9 +3797,9 @@ Yamcs.issueCommand('/cfs/cfe_es/ClearERLog(noarg: 0)');]]> - 20 + 27 - NoOp_13 + NoOp_23 0 @@ -3833,31 +3811,32 @@ Yamcs.issueCommand('/cfs/cfe_es/ClearERLog(noarg: 0)');]]> - Clear + Console false $(pv_name) $(pv_value) true Action Button - 67 - 763e00b7:150973f1dd8:-7dd9 - 378 - 468 + 172 + -5b3cf925:1773c9998f6:-7e25 + 472 + 374 - - scripts/NoOp.js - - false + + PerfUtility.opi + + true + + 0 false false - + false @@ -3873,9 +3852,9 @@ $(pv_value) - 25 + 27 - NoOp_14 + NoOp_24 0 @@ -3887,31 +3866,32 @@ $(pv_value) - Clear + Performance Utility false $(pv_name) $(pv_value) true Action Button - 85 - 763e00b7:150973f1dd8:-7dcc - 553 - 167 + 172 + -5b3cf925:1773c9998f6:-7e1d + 472 + 408 - - scripts/NoOp.js - - false + + MemoryPoolViewer.opi + + true + + 0 false false - + false @@ -3927,9 +3907,9 @@ $(pv_value) - 25 + 27 - NoOp_15 + NoOp_25 0 @@ -3941,23 +3921,34 @@ $(pv_value) - Dump + Memory Pool Viewer false $(pv_name) $(pv_value) true Action Button - 80 - 763e00b7:150973f1dd8:-7dbe - 467 - 167 + 172 + -5b3cf925:1773c9998f6:-7e13 + 472 + 443 - - - false + + + + WriteErrLog.opi + + true + + 0 + + + + false + false - + + false @@ -3965,14 +3956,18 @@ $(pv_value) 1 true - Default Bold + Default + false - 20 - 1 - Label_48 + 21 + + NoOp_26 + 0 + + true @@ -3980,24 +3975,36 @@ $(pv_value) false - CDS - - true - 1 + + Dump + false + $(pv_name) +$(pv_value) true - Label - 164 - false - 763e00b7:150973f1dd8:-7da7 - 425 - 141 + Action Button + 66 + -5b3cf925:1773c9998f6:-7dfb + 307 + 467 - - - false + + + + scripts/ResetCounters.js + + true + + + + false + false - + + false @@ -4005,14 +4012,18 @@ $(pv_value) 1 true - Default Bold + Default + false - + - 20 - 1 - Label_49 + 21 + + NoOp_27 + 0 + + true @@ -4020,16 +4031,16 @@ $(pv_value) false - Core Flight Executive - Essential Services - - true - 1 + + Clear + false + $(pv_name) +$(pv_value) true - Label - 295 - false - 763e00b7:150973f1dd8:-7cf4 - 213 - 5 + Action Button + 67 + -5b3cf925:1773c9998f6:-7df3 + 378 + 467 \ No newline at end of file diff --git a/tools/commander/workspace_template/Displays/Core/ES/MemoryPoolViewer.opi b/tools/commander/workspace_template/Displays/Core/ES/MemoryPoolViewer.opi index 80989fe21..996c1a11a 100644 --- a/tools/commander/workspace_template/Displays/Core/ES/MemoryPoolViewer.opi +++ b/tools/commander/workspace_template/Displays/Core/ES/MemoryPoolViewer.opi @@ -1,81 +1,41 @@ - - true - - 72a2bf2b:1508717c835:-7d33 - true - false - - 600 - - true - - 4.0.104.201510200439 - true - Display - - false - -1 - -1 - - - - - 800 - -1 - - 6 - true - -1 - true - - - - - - false - 0 - false - false - $(pv_name) -$(pv_value) - 0 - - true - 72a2bf2b:1508717c835:-7cf7 - - Query - - false - 28 - 1 - - true - true - false - - - true - - - - - Action Button - false - - - - 81 - 234 - Action Button - 24 - - - - - - - + + + + false + -1 + -1 + + false + + + + 1.5.3 + + + + 6 + 600 + + true + + + + + true + true + true + true + true + Display + 800 + 72a2bf2b:1508717c835:-7d33 + -1 + -1 + + + + - true - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - -3fca34e1:15096a78c93:-7767 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - PoolStats_Handle - 1 - - - - true - Text Update - false - false - 3 - - - - 100 - 150 - Handle - 85 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - -3fca34e1:15096a78c93:-7766 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - PoolStats_Size - 1 - - - - true - Text Update - false - false - 0 - - - - 100 - 150 - Text Update_23 - 108 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - -3fca34e1:15096a78c93:-7765 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - PoolStats_NumBlocksRequested - 1 - - - - true - Text Update - false - false - 0 - - - - 100 - 150 - Text Update_24 - 132 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - -3fca34e1:15096a78c93:-7764 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - PoolStats_CheckErrCtr - 1 - - - - true - Text Update - false - false - 0 - - - - 100 - 150 - Text Update_25 - 156 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - -3fca34e1:15096a78c93:-7763 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - PoolStats_NumFreeBytes - 1 - - - - true - Text Update - false - false - 0 - - - - 100 - 150 - Text Update_26 - 180 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - -3fca34e1:15096a78c93:-7762 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - PoolStats_Block0_Size - 1 - - - - true - Text Update - false - false - 0 - - - - 100 - 78 - Text Update_27 - 243 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - -3fca34e1:15096a78c93:-7761 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - PoolStats_Block0_NumCreated - 1 - - - - true - Text Update - false - false - 0 - - - - 100 - 186 - Text Update_28 - 243 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - -3fca34e1:15096a78c93:-7760 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - PoolStats_Block0_NumFree - 1 - - - - true - Text Update - false - false - 0 - - - - 100 - 294 - Text Update_29 - 243 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - -3fca34e1:15096a78c93:-775e - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - PoolStats_Block1_NumCreated - 1 - - - - true - Text Update - false - false - 0 - - - - 100 - 839 - Text Update_31 - 243 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - -3fca34e1:15096a78c93:-7759 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - PoolStats_Block3_Size - 1 - - - - true - Text Update - false - false - 0 - - - - 100 - 839 - Text Update_36 - 263 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - -3fca34e1:15096a78c93:-7754 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - PoolStats_Block4_NumFree - 1 - - - - true - Text Update - false - false - 0 - - - - 100 - 839 - Text Update_41 - 283 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - -3fca34e1:15096a78c93:-774f - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - PoolStats_Block6_NumCreated - 1 - - - - true - Text Update - false - false - 0 - - - - 100 - 839 - Text Update_46 - 303 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - -3fca34e1:15096a78c93:-774a - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - PoolStats_Block8_Size - 1 - - - - true - Text Update - false - false - 0 - - - - 100 - 839 - Text Update_51 - 323 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - -3fca34e1:15096a78c93:-7745 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - PoolStats_Block9_NumFree - 1 - - - - true - Text Update - false - false - 0 - - - - 100 - 839 - Text Update_56 - 343 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - -3fca34e1:15096a78c93:-7740 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - PoolStats_Block11_NumCreated - 1 - - - - true - Text Update - false - false - 0 - - - - 100 - 839 - Text Update_61 - 363 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - -3fca34e1:15096a78c93:-773b - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - PoolStats_Block13_Size - 1 - - - - true - Text Update - false - false - 0 - - - - 100 - 839 - Text Update_66 - 383 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - -3fca34e1:15096a78c93:-7736 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - PoolStats_Block14_NumFree - 1 - - - - true - Text Update - false - false - 0 - - - - 100 - 839 - Text Update_71 - 403 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - -3fca34e1:15096a78c93:-7731 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - PoolStats_Block16_NumCreated - 1 - - - - true - Text Update - false - false - 0 - - - - 100 - 839 - Text Update_76 - 423 - - - - - - Default - - - - 0 - - 2 - - true - -3fca34e1:15096a78c93:-7722 - true - false - Pool Handle - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 80 - 62 - Label - 85 - - - - - - Default - - - - 0 - - 1 - - true - -3fca34e1:15096a78c93:-76db - true - false - Pool Handle - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 80 - 29 - Label_1 - 28 - - - - - - Default - - - - false - 0 - $(pv_name) -$(pv_value) - 0 - - - false - - 0.0 - true - 25 - false - 1 - true - loc://inPoolHandle - 0 - - - - true - Text Input - - inPoolHandle - - - 3 - false - true - -3fca34e1:15096a78c93:-7697 - false - - false - - true - true - false - - false - 3 - false - - - - 100 - 114 - 25 - Infinity - - - - -Infinity - - Default - - - - 0 - - 2 - - true - -3fca34e1:15096a78c93:-768f - true - false - Size - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 80 - 62 - Label_2 - 108 - - - - - - Default - - - - 0 - - 2 - - true - -3fca34e1:15096a78c93:-7681 - true - false - Blocks Requested - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 118 - 24 - Label_3 - 132 - - - - - - Default - - - - 0 - - 2 - - true - -3fca34e1:15096a78c93:-7677 - true - false - Check Error Count - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 118 - 24 - Label_4 - 156 - - - - - - Default - - - - 0 - - 2 - - true - -3fca34e1:15096a78c93:-766d - true - false - Free Bytes - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 118 - 24 - Label_5 - 180 - - - - - - Default - - - - 0 - - 1 - - true - -3fca34e1:15096a78c93:-7663 - true - false - 0 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 37 - 29 - Label_6 - 243 - - - - - - Default - - - - 0 - - 1 - - true - -3fca34e1:15096a78c93:-7656 - true - false - Size - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 37 - 109 - Label_7 - 224 - - - - - - Default - - - - 0 - - 1 - - true - -3fca34e1:15096a78c93:-764a - true - false - Created - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 56 - 208 - Label_8 - 224 - - - - - - Default - - - - 0 - - 1 - - true - -3fca34e1:15096a78c93:-7640 - true - false - Free - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 56 - 316 - Label_9 - 224 - - - - - - Default - - - - 0 - - 1 - - true - -3fca34e1:15096a78c93:-7636 - true - false - Block - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 42 - 24 - Label_10 - 224 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - -3fca34e1:15096a78c93:-761f - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - PoolStats_Block1_Size - 1 - - - - true - Text Update - false - false - 0 - - - - 100 - 78 - Text Update_78 - 262 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - -3fca34e1:15096a78c93:-761e - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - PoolStats_Block1_NumCreated - 1 - - - - true - Text Update - false - false - 0 - - - - 100 - 186 - Text Update_79 - 262 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - -3fca34e1:15096a78c93:-761d - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - PoolStats_Block1_NumFree - 1 - - - - true - Text Update - false - false - 0 - - - - 100 - 294 - Text Update_80 - 262 - - - - - - Default - - - - 0 - - 1 - - true - -3fca34e1:15096a78c93:-761c - true - false - 1 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 37 - 29 - Label_11 - 262 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - -3fca34e1:15096a78c93:-7611 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - PoolStats_Block2_Size - 1 - - - - true - Text Update - false - false - 0 - - - - 100 - 78 - Text Update_81 - 281 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - -3fca34e1:15096a78c93:-7610 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - PoolStats_Block2_NumCreated - 1 - - - - true - Text Update - false - false - 0 - - - - 100 - 186 - Text Update_82 - 281 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - -3fca34e1:15096a78c93:-760f - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - PoolStats_Block2_NumFree - 1 - - - - true - Text Update - false - false - 0 - - - - 100 - 294 - Text Update_83 - 281 - - - - - - Default - - - - 0 - - 1 - - true - -3fca34e1:15096a78c93:-760e - true - false - 2 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 37 - 29 - Label_12 - 281 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - -3fca34e1:15096a78c93:-7603 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - PoolStats_Block3_Size - 1 - - - - true - Text Update - false - false - 0 - - - - 100 - 78 - Text Update_84 - 300 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - -3fca34e1:15096a78c93:-7602 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - PoolStats_Block3_NumCreated - 1 - - - - true - Text Update - false - false - 0 - - - - 100 - 186 - Text Update_85 - 300 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - -3fca34e1:15096a78c93:-7601 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - PoolStats_Block3_NumFree - 1 - - - - true - Text Update - false - false - 0 - - - - 100 - 294 - Text Update_86 - 300 - - - - - - Default - - - - 0 - - 1 - - true - -3fca34e1:15096a78c93:-7600 - true - false - 3 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 37 - 29 - Label_13 - 300 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - -3fca34e1:15096a78c93:-75f5 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - PoolStats_Block4_Size - 1 - - - - true - Text Update - false - false - 0 - - - - 100 - 78 - Text Update_87 - 319 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - -3fca34e1:15096a78c93:-75f4 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - PoolStats_Block4_NumCreated - 1 - - - - true - Text Update - false - false - 0 - - - - 100 - 186 - Text Update_88 - 319 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - -3fca34e1:15096a78c93:-75f3 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - PoolStats_Block4_NumFree - 1 - - - - true - Text Update - false - false - 0 - - - - 100 - 294 - Text Update_89 - 319 - - - - - - Default - - - - 0 - - 1 - - true - -3fca34e1:15096a78c93:-75f2 - true - false - 4 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 37 - 29 - Label_14 - 319 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - -3fca34e1:15096a78c93:-75e7 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - PoolStats_Block5_Size - 1 - - - - true - Text Update - false - false - 0 - - - - 100 - 78 - Text Update_90 - 338 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - -3fca34e1:15096a78c93:-75e6 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - PoolStats_Block5_NumCreated - 1 - - - - true - Text Update - false - false - 0 - - - - 100 - 186 - Text Update_91 - 338 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - -3fca34e1:15096a78c93:-75e5 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - PoolStats_Block5_NumFree - 1 - - - - true - Text Update - false - false - 0 - - - - 100 - 294 - Text Update_92 - 338 - - - - - - Default - - - - 0 - - 1 - - true - -3fca34e1:15096a78c93:-75e4 - true - false - 5 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 37 - 29 - Label_15 - 338 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - -3fca34e1:15096a78c93:-75d9 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - PoolStats_Block6_Size - 1 - - - - true - Text Update - false - false - 0 - - - - 100 - 78 - Text Update_93 - 357 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - -3fca34e1:15096a78c93:-75d8 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - PoolStats_Block6_NumCreated - 1 - - - - true - Text Update - false - false - 0 - - - - 100 - 186 - Text Update_94 - 357 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - -3fca34e1:15096a78c93:-75d7 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - PoolStats_Block6_NumFree - 1 - - - - true - Text Update - false - false - 0 - - - - 100 - 294 - Text Update_95 - 357 - - - - - - Default - - - - 0 - - 1 - - true - -3fca34e1:15096a78c93:-75d6 - true - false - 6 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 37 - 29 - Label_16 - 357 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - -3fca34e1:15096a78c93:-75cb - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - PoolStats_Block7_Size - 1 - - - - true - Text Update - false - false - 0 - - - - 100 - 78 - Text Update_96 - 376 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - -3fca34e1:15096a78c93:-75ca - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - PoolStats_Block7_NumCreated - 1 - - - - true - Text Update - false - false - 0 - - - - 100 - 186 - Text Update_97 - 376 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - -3fca34e1:15096a78c93:-75c9 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - PoolStats_Block7_NumFree - 1 - - - - true - Text Update - false - false - 0 - - - - 100 - 294 - Text Update_98 - 376 - - - - - - Default - - - - 0 - - 1 - - true - -3fca34e1:15096a78c93:-75c8 - true - false - 7 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 37 - 29 - Label_17 - 376 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - -3fca34e1:15096a78c93:-75bd - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - PoolStats_Block8_Size - 1 - - - - true - Text Update - false - false - 0 - - - - 100 - 78 - Text Update_99 - 395 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - -3fca34e1:15096a78c93:-75bc - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - PoolStats_Block8_NumCreated - 1 - - - - true - Text Update - false - false - 0 - - - - 100 - 186 - Text Update_100 - 395 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - -3fca34e1:15096a78c93:-75bb - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - PoolStats_Block8_NumFree - 1 - - - - true - Text Update - false - false - 0 - - - - 100 - 294 - Text Update_101 - 395 - - - - - - Default - - - - 0 - - 1 - - true - -3fca34e1:15096a78c93:-75ba - true - false - 8 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 37 - 29 - Label_18 - 395 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - -3fca34e1:15096a78c93:-75af - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - PoolStats_Block9_Size - 1 - - - - true - Text Update - false - false - 0 - - - - 100 - 78 - Text Update_102 - 415 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - -3fca34e1:15096a78c93:-75ae - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - PoolStats_Block9_NumCreated - 1 - - - - true - Text Update - false - false - 0 - - - - 100 - 186 - Text Update_103 - 415 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - -3fca34e1:15096a78c93:-75ad - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - PoolStats_Block9_NumFree - 1 - - - - true - Text Update - false - false - 0 - - - - 100 - 294 - Text Update_104 - 415 - - - - - - Default - - - - 0 - - 1 - - true - -3fca34e1:15096a78c93:-75ac - true - false - 9 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 37 - 29 - Label_19 - 415 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - -3fca34e1:15096a78c93:-75a1 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - PoolStats_Block10_Size - 1 - - - - true - Text Update - false - false - 0 - - - - 100 - 78 - Text Update_105 - 434 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - -3fca34e1:15096a78c93:-75a0 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - PoolStats_Block10_NumCreated - 1 - - - - true - Text Update - false - false - 0 - - - - 100 - 186 - Text Update_106 - 434 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - -3fca34e1:15096a78c93:-759f - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - PoolStats_Block10_NumFree - 1 - - - - true - Text Update - false - false - 0 - - - - 100 - 294 - Text Update_107 - 434 - - - - - - Default - - - - 0 - - 1 - - true - -3fca34e1:15096a78c93:-759e - true - false - 10 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 37 - 29 - Label_20 - 434 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - -3fca34e1:15096a78c93:-7593 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - PoolStats_Block11_Size - 1 - - - - true - Text Update - false - false - 0 - - - - 100 - 78 - Text Update_108 - 453 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - -3fca34e1:15096a78c93:-7592 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - PoolStats_Block11_NumCreated - 1 - - - - true - Text Update - false - false - 0 - - - - 100 - 186 - Text Update_109 - 453 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - -3fca34e1:15096a78c93:-7591 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - PoolStats_Block11_NumFree - 1 - - - - true - Text Update - false - false - 0 - - - - 100 - 294 - Text Update_110 - 453 - - - - - - Default - - - - 0 - - 1 - - true - -3fca34e1:15096a78c93:-7590 - true - false - 11 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 37 - 29 - Label_21 - 453 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - -3fca34e1:15096a78c93:-7585 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - PoolStats_Block12_Size - 1 - - - - true - Text Update - false - false - 0 - - - - 100 - 78 - Text Update_111 - 472 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - -3fca34e1:15096a78c93:-7584 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - PoolStats_Block12_NumCreated - 1 - - - - true - Text Update - false - false - 0 - - - - 100 - 186 - Text Update_112 - 472 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - -3fca34e1:15096a78c93:-7583 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - PoolStats_Block12_NumFree - 1 - - - - true - Text Update - false - false - 0 - - - - 100 - 294 - Text Update_113 - 472 - - - - - - Default - - - - 0 - - 1 - - true - -3fca34e1:15096a78c93:-7582 - true - false - 12 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 37 - 29 - Label_22 - 472 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - -3fca34e1:15096a78c93:-7577 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - PoolStats_Block13_Size - 1 - - - - true - Text Update - false - false - 0 - - - - 100 - 78 - Text Update_114 - 491 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - -3fca34e1:15096a78c93:-7576 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - PoolStats_Block13_NumCreated - 1 - - - - true - Text Update - false - false - 0 - - - - 100 - 186 - Text Update_115 - 491 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - -3fca34e1:15096a78c93:-7575 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - PoolStats_Block13_NumFree - 1 - - - - true - Text Update - false - false - 0 - - - - 100 - 294 - Text Update_116 - 491 - - - - - - Default - - - - 0 - - 1 - - true - -3fca34e1:15096a78c93:-7574 - true - false - 13 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 37 - 29 - Label_23 - 491 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - -3fca34e1:15096a78c93:-7569 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - PoolStats_Block14_Size - 1 - - - - true - Text Update - false - false - 0 - - - - 100 - 78 - Text Update_117 - 510 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - -3fca34e1:15096a78c93:-7568 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - PoolStats_Block14_NumCreated - 1 - - - - true - Text Update - false - false - 0 - - - - 100 - 186 - Text Update_118 - 510 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - -3fca34e1:15096a78c93:-7567 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - PoolStats_Block14_NumFree - 1 - - - - true - Text Update - false - false - 0 - - - - 100 - 294 - Text Update_119 - 510 - - - - - - Default - - - - 0 - - 1 - - true - -3fca34e1:15096a78c93:-7566 - true - false - 14 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 37 - 29 - Label_24 - 510 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - -3fca34e1:15096a78c93:-755b - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - PoolStats_Block15_Size - 1 - - - - true - Text Update - false - false - 0 - - - - 100 - 78 - Text Update_120 - 529 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - -3fca34e1:15096a78c93:-755a - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - PoolStats_Block15_NumCreated - 1 - - - - true - Text Update - false - false - 0 - - - - 100 - 186 - Text Update_121 - 529 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - -3fca34e1:15096a78c93:-7559 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - PoolStats_Block15_NumFree - 1 - - - - true - Text Update - false - false - 0 - - - - 100 - 294 - Text Update_122 - 529 - - - - - - Default - - - - 0 - - 1 - - true - -3fca34e1:15096a78c93:-7558 - true - false - 15 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 37 - 29 - Label_25 - 529 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - -3fca34e1:15096a78c93:-754d - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - PoolStats_Block16_Size - 1 - - - - true - Text Update - false - false - 0 - - - - 100 - 78 - Text Update_123 - 548 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - -3fca34e1:15096a78c93:-754c - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - PoolStats_Block16_NumCreated - 1 - - - - true - Text Update - false - false - 0 - - - - 100 - 186 - Text Update_124 - 548 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - -3fca34e1:15096a78c93:-754b - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - PoolStats_Block16_NumFree - 1 - - - - true - Text Update - false - false - 0 - - - - 100 - 294 - Text Update_125 - 548 - - - - - - Default - - - - 0 - - 1 - - true - -3fca34e1:15096a78c93:-754a - true - false - 16 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 37 - 29 - Label_26 - 548 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - -3fca34e1:15096a78c93:-753f - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - PoolStats_Block17_Size - 1 - - - - true - Text Update - false - false - 0 - - - - 100 - 78 - Text Update_126 - 567 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - -3fca34e1:15096a78c93:-753e - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - PoolStats_Block17_NumCreated - 1 - - - - true - Text Update - false - false - 0 - - - - 100 - 186 - Text Update_127 - 567 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - -3fca34e1:15096a78c93:-753d - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - PoolStats_Block17_NumFree - 1 - - - - true - Text Update - false - false - 0 - - - - 100 - 294 - Text Update_128 - 567 - - - - - - Default - - - - 0 - - 1 - - true - -3fca34e1:15096a78c93:-753c - true - false - 17 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 37 - 29 - Label_27 - 567 - - - - - - Default - - - \ No newline at end of file +Yamcs.issueCommand(cmd);]]> + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 28 + + Action Button + 0 + + + + + true + true + false + + + + Query + false + $(pv_name) +$(pv_value) + true + Action Button + 81 + 72a2bf2b:1508717c835:-7cf7 + 234 + 24 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 3 + 20 + 0 + Handle + 0 + true + PoolStats_Handle + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + -3fca34e1:15096a78c93:-7767 + 150 + 85 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_23 + 0 + true + PoolStats_Size + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + -3fca34e1:15096a78c93:-7766 + 150 + 108 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_24 + 0 + true + PoolStats_NumBlocksRequested + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + -3fca34e1:15096a78c93:-7765 + 150 + 132 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_25 + 0 + true + PoolStats_CheckErrCtr + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + -3fca34e1:15096a78c93:-7764 + 150 + 156 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_26 + 0 + true + PoolStats_NumFreeBytes + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + -3fca34e1:15096a78c93:-7763 + 150 + 180 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_27 + 0 + true + PoolStats_Block0_Size + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + -3fca34e1:15096a78c93:-7762 + 78 + 243 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_28 + 0 + true + PoolStats_Block0_NumCreated + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + -3fca34e1:15096a78c93:-7761 + 186 + 243 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_29 + 0 + true + PoolStats_Block0_NumFree + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + -3fca34e1:15096a78c93:-7760 + 294 + 243 + + + + false + false + false + + + + true + + + + 0 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_31 + 0 + true + PoolStats_Block1_NumCreated + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + -3fca34e1:15096a78c93:-775e + 839 + 243 + + + + false + false + false + + + + true + + + + 0 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_36 + 0 + true + PoolStats_Block3_Size + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + -3fca34e1:15096a78c93:-7759 + 839 + 263 + + + + false + false + false + + + + true + + + + 0 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_41 + 0 + true + PoolStats_Block4_NumFree + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + -3fca34e1:15096a78c93:-7754 + 839 + 283 + + + + false + false + false + + + + true + + + + 0 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_46 + 0 + true + PoolStats_Block6_NumCreated + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + -3fca34e1:15096a78c93:-774f + 839 + 303 + + + + false + false + false + + + + true + + + + 0 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_51 + 0 + true + PoolStats_Block8_Size + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + -3fca34e1:15096a78c93:-774a + 839 + 323 + + + + false + false + false + + + + true + + + + 0 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_56 + 0 + true + PoolStats_Block9_NumFree + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + -3fca34e1:15096a78c93:-7745 + 839 + 343 + + + + false + false + false + + + + true + + + + 0 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_61 + 0 + true + PoolStats_Block11_NumCreated + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + -3fca34e1:15096a78c93:-7740 + 839 + 363 + + + + false + false + false + + + + true + + + + 0 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_66 + 0 + true + PoolStats_Block13_Size + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + -3fca34e1:15096a78c93:-773b + 839 + 383 + + + + false + false + false + + + + true + + + + 0 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_71 + 0 + true + PoolStats_Block14_NumFree + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + -3fca34e1:15096a78c93:-7736 + 839 + 403 + + + + false + false + false + + + + true + + + + 0 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_76 + 0 + true + PoolStats_Block16_NumCreated + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + -3fca34e1:15096a78c93:-7731 + 839 + 423 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label + + + true + true + false + + + Pool Handle + + true + 1 + true + Label + 80 + false + -3fca34e1:15096a78c93:-7722 + 62 + 85 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 1 + Label_1 + + + true + true + false + + + Pool Handle + + true + 1 + true + Label + 80 + false + -3fca34e1:15096a78c93:-76db + 29 + 28 + + + + false + false + false + + + + false + + + + 1 + 1 + + true + + Default + + false + + + + 3 + 25 + 0 + false + 1.7976931348623157E308 + -1.7976931348623157E308 + false + inPoolHandle + 0 + true + loc://inPoolHandle + + 0.0 + + + true + true + false + + + 0 + true + + + $(pv_name) +$(pv_value) + false + true + Text Input + 100 + -3fca34e1:15096a78c93:-7697 + 114 + 25 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_2 + + + true + true + false + + + Size + + true + 1 + true + Label + 80 + false + -3fca34e1:15096a78c93:-768f + 62 + 108 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_3 + + + true + true + false + + + Blocks Requested + + true + 1 + true + Label + 118 + false + -3fca34e1:15096a78c93:-7681 + 24 + 132 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_4 + + + true + true + false + + + Check Error Count + + true + 1 + true + Label + 118 + false + -3fca34e1:15096a78c93:-7677 + 24 + 156 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_5 + + + true + true + false + + + Free Bytes + + true + 1 + true + Label + 118 + false + -3fca34e1:15096a78c93:-766d + 24 + 180 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 1 + Label_6 + + + true + true + false + + + 0 + + true + 1 + true + Label + 37 + false + -3fca34e1:15096a78c93:-7663 + 29 + 243 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 1 + Label_7 + + + true + true + false + + + Size + + true + 1 + true + Label + 37 + false + -3fca34e1:15096a78c93:-7656 + 109 + 224 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 1 + Label_8 + + + true + true + false + + + Created + + true + 1 + true + Label + 56 + false + -3fca34e1:15096a78c93:-764a + 208 + 224 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 1 + Label_9 + + + true + true + false + + + Free + + true + 1 + true + Label + 56 + false + -3fca34e1:15096a78c93:-7640 + 316 + 224 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 1 + Label_10 + + + true + true + false + + + Block + + true + 1 + true + Label + 42 + false + -3fca34e1:15096a78c93:-7636 + 24 + 224 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_78 + 0 + true + PoolStats_Block1_Size + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + -3fca34e1:15096a78c93:-761f + 78 + 262 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_79 + 0 + true + PoolStats_Block1_NumCreated + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + -3fca34e1:15096a78c93:-761e + 186 + 262 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_80 + 0 + true + PoolStats_Block1_NumFree + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + -3fca34e1:15096a78c93:-761d + 294 + 262 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 1 + Label_11 + + + true + true + false + + + 1 + + true + 1 + true + Label + 37 + false + -3fca34e1:15096a78c93:-761c + 29 + 262 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_81 + 0 + true + PoolStats_Block2_Size + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + -3fca34e1:15096a78c93:-7611 + 78 + 281 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_82 + 0 + true + PoolStats_Block2_NumCreated + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + -3fca34e1:15096a78c93:-7610 + 186 + 281 + + + + false + false + false + + + + true + + + + 0 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_83 + 0 + true + PoolStats_Block2_NumFree + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + -3fca34e1:15096a78c93:-760f + 294 + 281 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 1 + Label_12 + + + true + true + false + + + 2 + + true + 1 + true + Label + 37 + false + -3fca34e1:15096a78c93:-760e + 29 + 281 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_84 + 0 + true + PoolStats_Block3_Size + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + -3fca34e1:15096a78c93:-7603 + 78 + 300 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_85 + 0 + true + PoolStats_Block3_NumCreated + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + -3fca34e1:15096a78c93:-7602 + 186 + 300 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_86 + 0 + true + PoolStats_Block3_NumFree + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + -3fca34e1:15096a78c93:-7601 + 294 + 300 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 1 + Label_13 + + + true + true + false + + + 3 + + true + 1 + true + Label + 37 + false + -3fca34e1:15096a78c93:-7600 + 29 + 300 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_87 + 0 + true + PoolStats_Block4_Size + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + -3fca34e1:15096a78c93:-75f5 + 78 + 319 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_88 + 0 + true + PoolStats_Block4_NumCreated + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + -3fca34e1:15096a78c93:-75f4 + 186 + 319 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_89 + 0 + true + PoolStats_Block4_NumFree + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + -3fca34e1:15096a78c93:-75f3 + 294 + 319 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 1 + Label_14 + + + true + true + false + + + 4 + + true + 1 + true + Label + 37 + false + -3fca34e1:15096a78c93:-75f2 + 29 + 319 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_90 + 0 + true + PoolStats_Block5_Size + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + -3fca34e1:15096a78c93:-75e7 + 78 + 338 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_91 + 0 + true + PoolStats_Block5_NumCreated + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + -3fca34e1:15096a78c93:-75e6 + 186 + 338 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_92 + 0 + true + PoolStats_Block5_NumFree + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + -3fca34e1:15096a78c93:-75e5 + 294 + 338 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 1 + Label_15 + + + true + true + false + + + 5 + + true + 1 + true + Label + 37 + false + -3fca34e1:15096a78c93:-75e4 + 29 + 338 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_93 + 0 + true + PoolStats_Block6_Size + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + -3fca34e1:15096a78c93:-75d9 + 78 + 357 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_94 + 0 + true + PoolStats_Block6_NumCreated + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + -3fca34e1:15096a78c93:-75d8 + 186 + 357 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_95 + 0 + true + PoolStats_Block6_NumFree + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + -3fca34e1:15096a78c93:-75d7 + 294 + 357 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 1 + Label_16 + + + true + true + false + + + 6 + + true + 1 + true + Label + 37 + false + -3fca34e1:15096a78c93:-75d6 + 29 + 357 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_96 + 0 + true + PoolStats_Block7_Size + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + -3fca34e1:15096a78c93:-75cb + 78 + 376 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_97 + 0 + true + PoolStats_Block7_NumCreated + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + -3fca34e1:15096a78c93:-75ca + 186 + 376 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_98 + 0 + true + PoolStats_Block7_NumFree + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + -3fca34e1:15096a78c93:-75c9 + 294 + 376 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 1 + Label_17 + + + true + true + false + + + 7 + + true + 1 + true + Label + 37 + false + -3fca34e1:15096a78c93:-75c8 + 29 + 376 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_99 + 0 + true + PoolStats_Block8_Size + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + -3fca34e1:15096a78c93:-75bd + 78 + 395 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_100 + 0 + true + PoolStats_Block8_NumCreated + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + -3fca34e1:15096a78c93:-75bc + 186 + 395 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_101 + 0 + true + PoolStats_Block8_NumFree + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + -3fca34e1:15096a78c93:-75bb + 294 + 395 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 1 + Label_18 + + + true + true + false + + + 8 + + true + 1 + true + Label + 37 + false + -3fca34e1:15096a78c93:-75ba + 29 + 395 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_102 + 0 + true + PoolStats_Block9_Size + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + -3fca34e1:15096a78c93:-75af + 78 + 415 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_103 + 0 + true + PoolStats_Block9_NumCreated + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + -3fca34e1:15096a78c93:-75ae + 186 + 415 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_104 + 0 + true + PoolStats_Block9_NumFree + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + -3fca34e1:15096a78c93:-75ad + 294 + 415 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 1 + Label_19 + + + true + true + false + + + 9 + + true + 1 + true + Label + 37 + false + -3fca34e1:15096a78c93:-75ac + 29 + 415 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_105 + 0 + true + PoolStats_Block10_Size + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + -3fca34e1:15096a78c93:-75a1 + 78 + 434 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_106 + 0 + true + PoolStats_Block10_NumCreated + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + -3fca34e1:15096a78c93:-75a0 + 186 + 434 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_107 + 0 + true + PoolStats_Block10_NumFree + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + -3fca34e1:15096a78c93:-759f + 294 + 434 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 1 + Label_20 + + + true + true + false + + + 10 + + true + 1 + true + Label + 37 + false + -3fca34e1:15096a78c93:-759e + 29 + 434 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_108 + 0 + true + PoolStats_Block11_Size + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + -3fca34e1:15096a78c93:-7593 + 78 + 453 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_109 + 0 + true + PoolStats_Block11_NumCreated + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + -3fca34e1:15096a78c93:-7592 + 186 + 453 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_110 + 0 + true + PoolStats_Block11_NumFree + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + -3fca34e1:15096a78c93:-7591 + 294 + 453 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 1 + Label_21 + + + true + true + false + + + 11 + + true + 1 + true + Label + 37 + false + -3fca34e1:15096a78c93:-7590 + 29 + 453 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_111 + 0 + true + PoolStats_Block12_Size + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + -3fca34e1:15096a78c93:-7585 + 78 + 472 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_112 + 0 + true + PoolStats_Block12_NumCreated + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + -3fca34e1:15096a78c93:-7584 + 186 + 472 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_113 + 0 + true + PoolStats_Block12_NumFree + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + -3fca34e1:15096a78c93:-7583 + 294 + 472 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 1 + Label_22 + + + true + true + false + + + 12 + + true + 1 + true + Label + 37 + false + -3fca34e1:15096a78c93:-7582 + 29 + 472 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_114 + 0 + true + PoolStats_Block13_Size + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + -3fca34e1:15096a78c93:-7577 + 78 + 491 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_115 + 0 + true + PoolStats_Block13_NumCreated + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + -3fca34e1:15096a78c93:-7576 + 186 + 491 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_116 + 0 + true + PoolStats_Block13_NumFree + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + -3fca34e1:15096a78c93:-7575 + 294 + 491 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 1 + Label_23 + + + true + true + false + + + 13 + + true + 1 + true + Label + 37 + false + -3fca34e1:15096a78c93:-7574 + 29 + 491 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_117 + 0 + true + PoolStats_Block14_Size + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + -3fca34e1:15096a78c93:-7569 + 78 + 510 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_118 + 0 + true + PoolStats_Block14_NumCreated + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + -3fca34e1:15096a78c93:-7568 + 186 + 510 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_119 + 0 + true + PoolStats_Block14_NumFree + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + -3fca34e1:15096a78c93:-7567 + 294 + 510 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 1 + Label_24 + + + true + true + false + + + 14 + + true + 1 + true + Label + 37 + false + -3fca34e1:15096a78c93:-7566 + 29 + 510 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_120 + 0 + true + PoolStats_Block15_Size + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + -3fca34e1:15096a78c93:-755b + 78 + 529 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_121 + 0 + true + PoolStats_Block15_NumCreated + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + -3fca34e1:15096a78c93:-755a + 186 + 529 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_122 + 0 + true + PoolStats_Block15_NumFree + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + -3fca34e1:15096a78c93:-7559 + 294 + 529 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 1 + Label_25 + + + true + true + false + + + 15 + + true + 1 + true + Label + 37 + false + -3fca34e1:15096a78c93:-7558 + 29 + 529 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_123 + 0 + true + PoolStats_Block16_Size + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + -3fca34e1:15096a78c93:-754d + 78 + 548 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_124 + 0 + true + PoolStats_Block16_NumCreated + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + -3fca34e1:15096a78c93:-754c + 186 + 548 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_125 + 0 + true + PoolStats_Block16_NumFree + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + -3fca34e1:15096a78c93:-754b + 294 + 548 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 1 + Label_26 + + + true + true + false + + + 16 + + true + 1 + true + Label + 37 + false + -3fca34e1:15096a78c93:-754a + 29 + 548 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_126 + 0 + true + PoolStats_Block17_Size + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + -3fca34e1:15096a78c93:-753f + 78 + 567 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_127 + 0 + true + PoolStats_Block17_NumCreated + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + -3fca34e1:15096a78c93:-753e + 186 + 567 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_128 + 0 + true + PoolStats_Block17_NumFree + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + -3fca34e1:15096a78c93:-753d + 294 + 567 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 1 + Label_27 + + + true + true + false + + + 17 + + true + 1 + true + Label + 37 + false + -3fca34e1:15096a78c93:-753c + 29 + 567 + + diff --git a/tools/commander/workspace_template/Displays/Core/ES/PerfUtility.opi b/tools/commander/workspace_template/Displays/Core/ES/PerfUtility.opi index 8a0fb78ed..3e1213032 100644 --- a/tools/commander/workspace_template/Displays/Core/ES/PerfUtility.opi +++ b/tools/commander/workspace_template/Displays/Core/ES/PerfUtility.opi @@ -1,8536 +1,8496 @@ - - true - - 45ea5983:1502a6e6386:-7f06 - true - false - - 920 - - true - - 4.0.104.201510200439 - true - Display - - false - -1 - -1 - - - - - 800 - -1 - - 6 - true - -1 - true - - - - - - 0 - - 2 - - true - 2b4f25d5:1502b5812fe:-7f04 - true - false - State - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 98 - 19 - Label_25 - 36 - - - - - - Default - - - - 0 - - 2 - - true - 2b4f25d5:1502b5812fe:-7eef - true - false - Mode - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 98 - 19 - Label_27 - 55 - - - - - - Default - - - - 0 - - 2 - - true - 2b4f25d5:1502b5812fe:-7ee8 - true - false - Trigger Count - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 98 - 19 - Label_28 - 74 - - - - - - Default - - - - 0 - - 2 - - true - 2b4f25d5:1502b5812fe:-7ed0 - true - false - Data Start - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 98 - 258 - Label_31 - 36 - - - - - - Default - - - - 0 - - 2 - - true - 2b4f25d5:1502b5812fe:-7ec9 - true - false - Data End - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 98 - 258 - Label_32 - 55 - - - - - - Default - - - - 0 - - 2 - - true - 2b4f25d5:1502b5812fe:-7ec2 - true - false - Data Count - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 98 - 258 - Label_33 - 74 - - - - - - Default - - - - 0 - - 2 - - true - 2b4f25d5:1502b5812fe:-7ebb - true - false - Data to Write - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 98 - 258 - Label_34 - 93 - - - - - - Default - - - - 0 - - 1 - - true - 2b4f25d5:1502b5812fe:-7d80 - true - false - Performance Utility - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 164 - 12 - Label_38 - 12 - - - - - - Default Bold - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 2b4f25d5:1502b5812fe:-7ca7 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_es/PerfState - 1 - - - - false - Text Update - false - false - 0 - - - - 100 - 133 - Text Update_20 - 36 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 2b4f25d5:1502b5812fe:-7ca2 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_es/PerfMode - 1 - - - - false - Text Update - false - false - 0 - - - - 100 - 133 - Text Update_21 - 55 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 2b4f25d5:1502b5812fe:-7c9d - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_es/PerfTriggerCount - 1 - - - - false - Text Update - false - false - 0 - - - - 100 - 133 - Text Update_22 - 74 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 2b4f25d5:1502b5812fe:-7c8e - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_es/PerfDataStart - 1 - - - - false - Text Update - false - false - 0 - - - - 100 - 372 - Text Update_25 - 36 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 2b4f25d5:1502b5812fe:-7c89 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_es/PerfDataEnd - 1 - - - - false - Text Update - false - false - 0 - - - - 100 - 372 - Text Update_26 - 55 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 2b4f25d5:1502b5812fe:-7c84 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_es/PerfDataCount - 1 - - - - false - Text Update - false - false - 0 - - - - 100 - 372 - Text Update_27 - 74 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 2b4f25d5:1502b5812fe:-7c7f - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_es/PerfDataToWrite - 1 - - - - false - Text Update - false - false - 0 - - - - 100 - 372 - Text Update_28 - 93 - - - - - - Default - - - - false - 0 - false - false - $(pv_name) -$(pv_value) - 0 - - true - -35c7bfc1:1509236a393:-770b - - Start - - false - 25 - 1 - - true - true - false - - - true - - - - - Action Button - false - - - - 69 - 333 - Action Button - 126 - - - - - - - StartPerfCollection.opi - - true - - 8 - - - - - Default - - - - false - 0 - false - false - $(pv_name) -$(pv_value) - 0 - - true - -35c7bfc1:1509236a393:-76fd - - Stop - - false - 25 - 1 - - true - true - false - - - true - - - - - Action Button - false - - - - 69 - 408 - Action Button_1 - 126 - - - - - - - StopPerfCollection.opi - - true - - 8 - - - - - Default - - - - 0 - - - 739 - - 1 - - - - - - - - true - 0 - true - -35c7bfc1:1509236a393:-7209 - - - - - - - - - Default - - 4 - true - - - - 450 - 24 - true - 174 - - - Default - - - true - - true - - - - - - - Tabbed Container - - Default - - - - - true - Tabbed Container - 10 - 3 - - Default - - - - - 1 - - - - 2 - - 4 - - true - true - false - - - true - - - - - 0 - - - true - -35c7bfc1:1509236a393:-7208 - true - false - - 710 - 1 - - true - true - false - - - true - - true - - - - Grouping Container - - - - 448 - 1 - 1 - 1 - - - - - false - true - - Default - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-7493 - - - - - false - - true - 20 - 1 - - true - false - false - - true - loc://FilterRequest29 - - - - - Check Box - false - - - - 22 - 80 - FilterRequest29 - 626 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-76d0 - - - - - false - - true - 20 - 1 - - true - false - false - - true - loc://TriggerRequest2 - - - - - Check Box - false - - - - 22 - 222 - TriggerRequest2 - 109 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-75cb - - - - - false - - true - 20 - 1 - - true - false - false - - true - loc://TriggerRequest15 - - - - - Check Box - false - - - - 22 - 222 - TriggerRequest15 - 358 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-76ae - - - - - false - - true - 20 - 1 - - true - false - false - - true - loc://TriggerRequest4 - - - - - Check Box - false - - - - 22 - 222 - TriggerRequest4 - 147 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-74be - - - - - false - - true - 20 - 1 - - true - false - false - - true - loc://TriggerRequest20 - - - - - Check Box - false - - - - 22 - 222 - TriggerRequest20 - 453 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-749c - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_es/PerfFilter27 - - - - - Check Box - false - - - - 22 - 18 - FilterActual27 - 588 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-766a - - - - - false - - true - 20 - 1 - - true - false - false - - true - loc://TriggerRequest8 - - - - - Check Box - false - - - - 22 - 222 - TriggerRequest8 - 223 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-74a1 - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_es/PerfFilter26 - - - - - Check Box - false - - - - 22 - 18 - FilterActual26 - 569 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-74bf - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_es/PerfFilter20 - - - - - Check Box - false - - - - 22 - 18 - FilterActual20 - 453 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-75cf - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_es/PerfTrigger14 - - - - - Check Box - false - - - - 22 - 160 - TriggerActual14 - 339 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-74aa - - - - - false - - true - 20 - 1 - - true - false - false - - true - loc://TriggerRequest24 - - - - - Check Box - false - - - - 22 - 222 - TriggerRequest24 - 529 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-75cc - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_es/PerfFilter15 - - - - - Check Box - false - - - - 22 - 18 - FilterActual15 - 358 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-74b9 - - - - - false - - true - 20 - 1 - - true - false - false - - true - loc://TriggerRequest21 - - - - - Check Box - false - - - - 22 - 222 - TriggerRequest21 - 472 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-74c8 - - - - - false - - true - 20 - 1 - - true - false - false - - true - loc://TriggerRequest18 - - - - - Check Box - false - - - - 22 - 222 - TriggerRequest18 - 415 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-75d1 - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_es/PerfFilter14 - - - - - Check Box - false - - - - 22 - 18 - FilterActual14 - 339 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-74b8 - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_es/PerfTrigger21 - - - - - Check Box - false - - - - 22 - 160 - TriggerActual21 - 472 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-74ca - - - - - false - - true - 20 - 1 - - true - false - false - - true - loc://FilterRequest18 - - - - - Check Box - false - - - - 22 - 80 - FilterRequest18 - 415 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-748b - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_es/PerfTrigger30 - - - - - Check Box - false - - - - 22 - 160 - TriggerActual30 - 645 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-748e - - - - - false - - true - 20 - 1 - - true - false - false - - true - loc://FilterRequest30 - - - - - Check Box - false - - - - 22 - 80 - FilterRequest30 - 645 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-74a2 - - - - - false - - true - 20 - 1 - - true - false - false - - true - loc://FilterRequest26 - - - - - Check Box - false - - - - 22 - 80 - FilterRequest26 - 569 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-76be - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_es/PerfTrigger3 - - - - - Check Box - false - - - - 22 - 160 - TriggerActual3 - 128 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-7482 - - - - - false - - true - 20 - 1 - - true - false - false - - true - loc://TriggerRequest32 - - - - - Check Box - false - - - - 22 - 222 - TriggerRequest32 - 683 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-74cd - - - - - false - - true - 20 - 1 - - true - false - false - - true - loc://TriggerRequest17 - - - - - Check Box - false - - - - 22 - 222 - TriggerRequest17 - 396 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-7492 - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_es/PerfFilter29 - - - - - Check Box - false - - - - 22 - 18 - FilterActual29 - 626 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-75ca - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_es/PerfTrigger15 - - - - - Check Box - false - - - - 22 - 160 - TriggerActual15 - 358 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-7c12 - - - - - false - - true - 20 - 1 - - true - false - false - - true - loc://FilterRequest1 - - - - - Check Box - false - - - - 22 - 80 - FilterRequest1 - 90 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-7c0d - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_es/PerfFilter1 - - - - - Check Box - false - - - - 22 - 18 - FilterActual1 - 90 - - - - - - Default - - - - 0 - - 0 - - true - -35c7bfc1:1509236a393:-7769 - true - false - Performance ID 1 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 163 - 282 - Label_46 - 90 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-74b6 - - - - - false - - true - 20 - 1 - - true - false - false - - true - loc://FilterRequest22 - - - - - Check Box - false - - - - 22 - 80 - FilterRequest22 - 491 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-75d2 - - - - - false - - true - 20 - 1 - - true - false - false - - true - loc://FilterRequest14 - - - - - Check Box - false - - - - 22 - 80 - FilterRequest14 - 339 - - - - - - Default - - - - 0 - - 0 - - true - -35c7bfc1:1509236a393:-749e - true - false - Performance ID 26 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 163 - 282 - Label_71 - 569 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-7483 - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_es/PerfFilter32 - - - - - Check Box - false - - - - 22 - 18 - FilterActual32 - 683 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-74c2 - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_es/PerfTrigger19 - - - - - Check Box - false - - - - 22 - 160 - TriggerActual19 - 434 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-74ba - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_es/PerfFilter22 - - - - - Check Box - false - - - - 22 - 18 - FilterActual21 - 472 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-74ac - - - - - false - - true - 20 - 1 - - true - false - false - - true - loc://FilterRequest24 - - - - - Check Box - false - - - - 22 - 80 - FilterRequest24 - 529 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-77c2 - - - - - false - - true - 20 - 1 - - true - false - false - - true - loc://TriggerRequest1 - - - - - Check Box - false - - - - 22 - 222 - TriggerRequest1 - 90 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-75ea - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_es/PerfFilter9 - - - - - Check Box - false - - - - 22 - 18 - FilterActual9 - 244 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-74ce - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_es/PerfFilter17 - - - - - Check Box - false - - - - 22 - 18 - FilterActual17 - 396 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-74bd - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_es/PerfTrigger20 - - - - - Check Box - false - - - - 22 - 160 - TriggerActual20 - 453 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-767b - - - - - false - - true - 20 - 1 - - true - false - false - - true - loc://TriggerRequest7 - - - - - Check Box - false - - - - 22 - 222 - TriggerRequest7 - 204 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-76d2 - - - - - false - - true - 20 - 1 - - true - false - false - - true - loc://FilterRequest2 - - - - - Check Box - false - - - - 22 - 80 - FilterRequest2 - 109 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-768c - - - - - false - - true - 20 - 1 - - true - false - false - - true - loc://TriggerRequest6 - - - - - Check Box - false - - - - 22 - 222 - TriggerRequest6 - 185 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-75db - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_es/PerfFilter12 - - - - - Check Box - false - - - - 22 - 18 - FilterActual12 - 301 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-74c4 - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_es/PerfFilter19 - - - - - Check Box - false - - - - 22 - 18 - FilterActual19 - 434 - - - - - - Default - - - - 0 - - 0 - - true - -35c7bfc1:1509236a393:-76ac - true - false - Performance ID 4 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 163 - 282 - Label_49 - 147 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-75e3 - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_es/PerfTrigger10 - - - - - Check Box - false - - - - 22 - 160 - TriggerActual10 - 263 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-75e1 - - - - - false - - true - 20 - 1 - - true - false - false - - true - loc://FilterRequest11 - - - - - Check Box - false - - - - 22 - 80 - FilterRequest11 - 282 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-767a - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_es/PerfTrigger7 - - - - - Check Box - false - - - - 22 - 160 - TriggerActual7 - 204 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-749a - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_es/PerfTrigger27 - - - - - Check Box - false - - - - 22 - 160 - TriggerActual27 - 588 - - - - - - Default - - - - 0 - - 0 - - true - -35c7bfc1:1509236a393:-7485 - true - false - Performance ID 31 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 163 - 282 - Label_76 - 664 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-769d - - - - - false - - true - 20 - 1 - - true - false - false - - true - loc://TriggerRequest5 - - - - - Check Box - false - - - - 22 - 222 - TriggerRequest5 - 166 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-75e0 - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_es/PerfFilter11 - - - - - Check Box - false - - - - 22 - 18 - FilterActual11 - 282 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-748d - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_es/PerfFilter30 - - - - - Check Box - false - - - - 22 - 18 - FilterActual30 - 645 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-768e - - - - - false - - true - 20 - 1 - - true - false - false - - true - loc://FilterRequest6 - - - - - Check Box - false - - - - 22 - 80 - FilterRequest6 - 185 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-75dc - - - - - false - - true - 20 - 1 - - true - false - false - - true - loc://FilterRequest12 - - - - - Check Box - false - - - - 22 - 80 - FilterRequest12 - 301 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-75cd - - - - - false - - true - 20 - 1 - - true - false - false - - true - loc://FilterRequest15 - - - - - Check Box - false - - - - 22 - 80 - FilterRequest15 - 358 - - - - - - Default - - - - 0 - - 0 - - true - -35c7bfc1:1509236a393:-7679 - true - false - Performance ID 7 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 163 - 282 - Label_52 - 204 - - - - - - Default - - - - 0 - - 0 - - true - -35c7bfc1:1509236a393:-75dd - true - false - Performance ID 11 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 163 - 282 - Label_56 - 282 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-748c - - - - - false - - true - 20 - 1 - - true - false - false - - true - loc://TriggerRequest30 - - - - - Check Box - false - - - - 22 - 222 - TriggerRequest30 - 645 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-75e4 - - - - - false - - true - 20 - 1 - - true - false - false - - true - loc://TriggerRequest10 - - - - - Check Box - false - - - - 22 - 222 - TriggerRequest10 - 263 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-74af - - - - - false - - true - 20 - 1 - - true - false - false - - true - loc://TriggerRequest23 - - - - - Check Box - false - - - - 22 - 222 - TriggerRequest23 - 510 - - - - - - Default - - - - 0 - - 0 - - true - -35c7bfc1:1509236a393:-76bd - true - false - Performance ID 3 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 163 - 282 - Label_48 - 128 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-75d0 - - - - - false - - true - 20 - 1 - - true - false - false - - true - loc://TriggerRequest14 - - - - - Check Box - false - - - - 22 - 222 - TriggerRequest14 - 339 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-7495 - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_es/PerfTrigger28 - - - - - Check Box - false - - - - 22 - 160 - TriggerActual28 - 607 - - - - - - Default - - - - 0 - - 0 - - true - -35c7bfc1:1509236a393:-74cb - true - false - Performance ID 17 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 163 - 282 - Label_62 - 396 - - - - - - Default - - - - 0 - - 0 - - true - -35c7bfc1:1509236a393:-76ce - true - false - Performance ID 2 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 163 - 282 - Label_47 - 109 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-75d5 - - - - - false - - true - 20 - 1 - - true - false - false - - true - loc://TriggerRequest13 - - - - - Check Box - false - - - - 22 - 222 - TriggerRequest13 - 320 - - - - - - Default - - - - 0 - - 0 - - true - -35c7bfc1:1509236a393:-74a8 - true - false - Performance ID 24 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 163 - 282 - Label_69 - 529 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-7491 - - - - - false - - true - 20 - 1 - - true - false - false - - true - loc://TriggerRequest29 - - - - - Check Box - false - - - - 22 - 222 - TriggerRequest29 - 626 - - - - - - Default - - - - 0 - - 0 - - true - -35c7bfc1:1509236a393:-74c1 - true - false - Performance ID 19 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 163 - 282 - Label_64 - 434 - - - - - - Default - - - - 0 - - 0 - - true - -35c7bfc1:1509236a393:-748a - true - false - Performance ID 30 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 163 - 282 - Label_75 - 645 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-76b0 - - - - - false - - true - 20 - 1 - - true - false - false - - true - loc://FilterRequest4 - - - - - Check Box - false - - - - 22 - 80 - FilterRequest4 - 147 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-769e - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_es/PerfFilter5 - - - - - Check Box - false - - - - 22 - 18 - FilterActual5 - 166 - - - - - - Default - - - - 0 - - 0 - - true - -35c7bfc1:1509236a393:-769b - true - false - Performance ID 5 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 163 - 282 - Label_50 - 166 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-768d - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_es/PerfFilter6 - - - - - Check Box - false - - - - 22 - 18 - FilterActual6 - 185 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-75c8 - - - - - false - - true - 20 - 1 - - true - false - false - - true - loc://FilterRequest16 - - - - - Check Box - false - - - - 22 - 80 - FilterRequest16 - 377 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-7497 - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_es/PerfFilter28 - - - - - Check Box - false - - - - 22 - 18 - FilterActual28 - 607 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-767d - - - - - false - - true - 20 - 1 - - true - false - false - - true - loc://FilterRequest7 - - - - - Check Box - false - - - - 22 - 80 - FilterRequest7 - 204 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-75c6 - - - - - false - - true - 20 - 1 - - true - false - false - - true - loc://TriggerRequest16 - - - - - Check Box - false - - - - 22 - 222 - TriggerRequest16 - 377 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-75e5 - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_es/PerfFilter10 - - - - - Check Box - false - - - - 22 - 18 - FilterActual10 - 263 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-7487 - - - - - false - - true - 20 - 1 - - true - false - false - - true - loc://TriggerRequest31 - - - - - Check Box - false - - - - 22 - 222 - TriggerRequest31 - 664 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-74a6 - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_es/PerfFilter25 - - - - - Check Box - false - - - - 22 - 18 - FilterActual25 - 550 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-74bb - - - - - false - - true - 20 - 1 - - true - false - false - - true - loc://FilterRequest21 - - - - - Check Box - false - - - - 22 - 80 - FilterRequest21 - 472 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-74b4 - - - - - false - - true - 20 - 1 - - true - false - false - - true - loc://TriggerRequest22 - - - - - Check Box - false - - - - 22 - 222 - TriggerRequest22 - 491 - - - - - - Default - - - - 0 - - 0 - - true - -35c7bfc1:1509236a393:-75c9 - true - false - Performance ID 15 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 163 - 282 - Label_60 - 358 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-75de - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_es/PerfTrigger11 - - - - - Check Box - false - - - - 22 - 160 - TriggerActual11 - 282 - - - - - - Default - - - - 0 - - 0 - - true - -35c7bfc1:1509236a393:-75ce - true - false - Performance ID 14 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 163 - 282 - Label_59 - 339 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-7488 - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_es/PerfFilter31 - - - - - Check Box - false - - - - 22 - 18 - FilterActual31 - 664 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-74b0 - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_es/PerfFilter23 - - - - - Check Box - false - - - - 22 - 18 - FilterActual23 - 510 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-76c1 - - - - - false - - true - 20 - 1 - - true - false - false - - true - loc://FilterRequest3 - - - - - Check Box - false - - - - 22 - 80 - FilterRequest3 - 128 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-76af - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_es/PerfFilter4 - - - - - Check Box - false - - - - 22 - 18 - FilterActual4 - 147 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-749d - - - - - false - - true - 20 - 1 - - true - false - false - - true - loc://FilterRequest27 - - - - - Check Box - false - - - - 22 - 80 - FilterRequest27 - 588 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-74cf - - - - - false - - true - 20 - 1 - - true - false - false - - true - loc://FilterRequest17 - - - - - Check Box - false - - - - 22 - 80 - FilterRequest17 - 396 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-74a0 - - - - - false - - true - 20 - 1 - - true - false - false - - true - loc://TriggerRequest26 - - - - - Check Box - false - - - - 22 - 222 - TriggerRequest26 - 569 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-76bf - - - - - false - - true - 20 - 1 - - true - false - false - - true - loc://TriggerRequest3 - - - - - Check Box - false - - - - 22 - 222 - TriggerRequest3 - 128 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-74a7 - - - - - false - - true - 20 - 1 - - true - false - false - - true - loc://FilterRequest25 - - - - - Check Box - false - - - - 22 - 80 - FilterRequest25 - 550 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-74a5 - - - - - false - - true - 20 - 1 - - true - false - false - - true - loc://TriggerRequest25 - - - - - Check Box - false - - - - 22 - 222 - TriggerRequest25 - 550 - - - - - - Default - - - - 0 - - 0 - - true - -35c7bfc1:1509236a393:-74c6 - true - false - Performance ID 18 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 163 - 282 - Label_63 - 415 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-74c3 - - - - - false - - true - 20 - 1 - - true - false - false - - true - loc://TriggerRequest19 - - - - - Check Box - false - - - - 22 - 222 - TriggerRequest19 - 434 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-75df - - - - - false - - true - 20 - 1 - - true - false - false - - true - loc://TriggerRequest11 - - - - - Check Box - false - - - - 22 - 222 - TriggerRequest11 - 282 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-74a4 - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_es/PerfTrigger25 - - - - - Check Box - false - - - - 22 - 160 - TriggerActual25 - 550 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-74cc - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_es/PerfTrigger17 - - - - - Check Box - false - - - - 22 - 160 - TriggerActual17 - 396 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-74ae - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_es/PerfTrigger23 - - - - - Check Box - false - - - - 22 - 160 - TriggerActual23 - 510 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-75eb - - - - - false - - true - 20 - 1 - - true - false - false - - true - loc://FilterRequest9 - - - - - Check Box - false - - - - 22 - 80 - FilterRequest9 - 244 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-7489 - - - - - false - - true - 20 - 1 - - true - false - false - - true - loc://FilterRequest31 - - - - - Check Box - false - - - - 22 - 80 - FilterRequest31 - 664 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-74ab - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_es/PerfFilter24 - - - - - Check Box - false - - - - 22 - 18 - FilterActual24 - 529 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-769c - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_es/PerfTrigger5 - - - - - Check Box - false - - - - 22 - 160 - TriggerActual5 - 166 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-769f - - - - - false - - true - 20 - 1 - - true - false - false - - true - loc://FilterRequest5 - - - - - Check Box - false - - - - 22 - 80 - FilterRequest5 - 166 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-76c0 - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_es/PerfFilter3 - - - - - Check Box - false - - - - 22 - 18 - FilterActual3 - 128 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-74c7 - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_es/PerfTrigger18 - - - - - Check Box - false - - - - 22 - 160 - TriggerActual18 - 415 - - - - - - Default - - - - 0 - - 0 - - true - -35c7bfc1:1509236a393:-7668 - true - false - Performance ID 8 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 163 - 282 - Label_53 - 223 - - - - - - Default - - - - 0 - - 0 - - true - -35c7bfc1:1509236a393:-75c4 - true - false - Performance ID 16 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 163 - 282 - Label_61 - 377 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-749b - - - - - false - - true - 20 - 1 - - true - false - false - - true - loc://TriggerRequest27 - - - - - Check Box - false - - - - 22 - 222 - TriggerRequest27 - 588 - - - - - - Default - - - - 0 - - 0 - - true - -35c7bfc1:1509236a393:-75e7 - true - false - Performance ID 9 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 163 - 282 - Label_54 - 244 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-75e8 - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_es/PerfTrigger9 - - - - - Check Box - false - - - - 22 - 160 - TriggerActual9 - 244 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-75d4 - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_es/PerfTrigger13 - - - - - Check Box - false - - - - 22 - 160 - TriggerActual13 - 320 - - - - - - Default - - - - 0 - - 0 - - true - -35c7bfc1:1509236a393:-74b7 - true - false - Performance ID 21 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 163 - 282 - Label_66 - 472 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-7484 - - - - - false - - true - 20 - 1 - - true - false - false - - true - loc://FilterRequest32 - - - - - Check Box - false - - - - 22 - 80 - FilterRequest32 - 683 - - - - - - Default - - - - 0 - - 0 - - true - -35c7bfc1:1509236a393:-75d3 - true - false - Performance ID 13 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 163 - 282 - Label_58 - 320 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-75c7 - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_es/PerfFilter16 - - - - - Check Box - false - - - - 22 - 18 - FilterActual16 - 377 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-74b5 - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_es/PerfFilter22 - - - - - Check Box - false - - - - 22 - 18 - FilterActual22 - 491 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-749f - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_es/PerfTrigger26 - - - - - Check Box - false - - - - 22 - 160 - TriggerActual26 - 569 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-76ad - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_es/PerfTrigger4 - - - - - Check Box - false - - - - 22 - 160 - TriggerActual4 - 147 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-74a9 - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_es/PerfTrigger24 - - - - - Check Box - false - - - - 22 - 160 - TriggerActual24 - 529 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-74b1 - - - - - false - - true - 20 - 1 - - true - false - false - - true - loc://FilterRequest23 - - - - - Check Box - false - - - - 22 - 80 - FilterRequest23 - 510 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-75d6 - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_es/PerfFilter13 - - - - - Check Box - false - - - - 22 - 18 - FilterActual13 - 320 - - - - - - Default - - - - 0 - - 0 - - true - -35c7bfc1:1509236a393:-74b2 - true - false - Performance ID 22 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 163 - 282 - Label_67 - 491 - - - - - - Default - - - - 0 - - 0 - - true - -35c7bfc1:1509236a393:-74ad - true - false - Performance ID 23 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 163 - 282 - Label_68 - 510 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-766c - - - - - false - - true - 20 - 1 - - true - false - false - - true - loc://FilterRequest8 - - - - - Check Box - false - - - - 22 - 80 - FilterRequest8 - 223 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-75c5 - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_es/PerfTrigger16 - - - - - Check Box - false - - - - 22 - 160 - TriggerActual16 - 377 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-74b3 - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_es/PerfTrigger22 - - - - - Check Box - false - - - - 22 - 160 - TriggerActual22 - 491 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-7498 - - - - - false - - true - 20 - 1 - - true - false - false - - true - loc://FilterRequest28 - - - - - Check Box - false - - - - 22 - 80 - FilterRequest28 - 607 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-77c1 - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_es/PerfTrigger1 - - - - - Check Box - false - - - - 22 - 160 - TriggerActual1 - 90 - - - - - - Default - - - - 0 - - 0 - - true - -35c7bfc1:1509236a393:-74a3 - true - false - Performance ID 25 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 163 - 282 - Label_70 - 550 - - - - - - Default - - - - 0 - - 0 - - true - -35c7bfc1:1509236a393:-7499 - true - false - Performance ID 27 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 163 - 282 - Label_72 - 588 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-767c - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_es/PerfFilter7 - - - - - Check Box - false - - - - 22 - 18 - FilterActual7 - 204 - - - - - - Default - - - - 0 - - 0 - - true - -35c7bfc1:1509236a393:-768a - true - false - Performance ID 6 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 163 - 282 - Label_51 - 185 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-7481 - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_es/PerfTrigger32 - - - - - Check Box - false - - - - 22 - 160 - TriggerActual32 - 683 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-74c0 - - - - - false - - true - 20 - 1 - - true - false - false - - true - loc://FilterRequest20 - - - - - Check Box - false - - - - 22 - 80 - FilterRequest20 - 453 - - - - - - Default - - - - 0 - - 0 - - true - -35c7bfc1:1509236a393:-7494 - true - false - Performance ID 28 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 163 - 282 - Label_73 - 607 - - - - - - Default - - - - 0 - - 0 - - true - -35c7bfc1:1509236a393:-75e2 - true - false - Performance ID 10 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 163 - 282 - Label_55 - 263 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-75d9 - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_es/PerfTrigger12 - - - - - Check Box - false - - - - 22 - 160 - TriggerActual12 - 301 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-76d1 - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_es/PerfFilter2 - - - - - Check Box - false - - - - 22 - 18 - FilterActual2 - 109 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-7669 - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_es/PerfTrigger8 - - - - - Check Box - false - - - - 22 - 160 - TriggerActual8 - 223 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-7496 - - - - - false - - true - 20 - 1 - - true - false - false - - true - loc://TriggerRequest28 - - - - - Check Box - false - - - - 22 - 222 - TriggerRequest28 - 607 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-7490 - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_es/PerfTrigger29 - - - - - Check Box - false - - - - 22 - 160 - TriggerActual29 - 626 - - - - - - Default - - - - 0 - - 0 - - true - -35c7bfc1:1509236a393:-748f - true - false - Performance ID 29 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 163 - 282 - Label_74 - 626 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-74c5 - - - - - false - - true - 20 - 1 - - true - false - false - - true - loc://FilterRequest19 - - - - - Check Box - false - - - - 22 - 80 - FilterRequest19 - 434 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-7486 - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_es/PerfTrigger31 - - - - - Check Box - false - - - - 22 - 160 - TriggerActual31 - 664 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-76cf - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_es/PerfTrigger2 - - - - - Check Box - false - - - - 22 - 160 - TriggerActual2 - 109 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-766b - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_es/PerfFilter8 - - - - - Check Box - false - - - - 22 - 18 - FilterActual8 - 223 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-75da - - - - - false - - true - 20 - 1 - - true - false - false - - true - loc://TriggerRequest12 - - - - - Check Box - false - - - - 22 - 222 - TriggerRequest12 - 301 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-75d7 - - - - - false - - true - 20 - 1 - - true - false - false - - true - loc://FilterRequest13 - - - - - Check Box - false - - - - 22 - 80 - FilterRequest13 - 320 - - - - - - Default - - - - 0 - - 0 - - true - -35c7bfc1:1509236a393:-75d8 - true - false - Performance ID 12 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 163 - 282 - Label_57 - 301 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-768b - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_es/PerfTrigger6 - - - - - Check Box - false - - - - 22 - 160 - TriggerActual6 - 185 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-75e6 - - - - - false - - true - 20 - 1 - - true - false - false - - true - loc://FilterRequest10 - - - - - Check Box - false - - - - 22 - 80 - FilterRequest10 - 263 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-74c9 - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_es/PerfFilter18 - - - - - Check Box - false - - - - 22 - 18 - FilterActual18 - 415 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-75e9 - - - - - false - - true - 20 - 1 - - true - false - false - - true - loc://TriggerRequest9 - - - - - Check Box - false - - - - 22 - 222 - TriggerRequest9 - 244 - - - - - - Default - - - - 0 - - 0 - - true - -35c7bfc1:1509236a393:-74bc - true - false - Performance ID 20 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 163 - 282 - Label_65 - 453 - - - - - - Default - - - - 0 - - 0 - - true - -35c7bfc1:1509236a393:-7480 - true - false - Performance ID 32 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 163 - 282 - Label_77 - 683 - - - - - - Default - - - - 0 - - 1 - - true - -35c7bfc1:1509236a393:-77bf - true - false - Actual - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 50 - 143 - Label_44 - 49 - - - - - - Default - - - - 0 - - 1 - - true - -35c7bfc1:1509236a393:-77dc - true - false - Request - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 50 - 67 - Label_42 - 49 - - - - - - Default - - - - 0 - - 1 - - true - -35c7bfc1:1509236a393:-77be - true - false - Request - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 50 - 209 - Label_45 - 49 - - - - - - Default - - - - 0 - - 1 - - true - -35c7bfc1:1509236a393:-77e6 - true - false - Actual - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 50 - 1 - Label_41 - 49 - - - - - - Default - - - - 0 - - 1 - - true - -35c7bfc1:1509236a393:-77c0 - true - false - Trigger - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 50 - 174 - Label_43 - 30 - - - - - - Default - - - - 0 - - 1 - - true - -35c7bfc1:1509236a393:-7836 - true - false - Filter - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 50 - 32 - Label - 30 - - - - - - Default - - - - false - 0 - false - false - $(pv_name) -$(pv_value) - 0 - - true - -35c7bfc1:1509236a393:-76f0 - - Set - - false - 25 - 1 - - true - true - false - - - true - - - - - Action Button - false - - - - 51 - 4 - Action Button_2 - 6 - - - - - - - + + + + false + -1 + -1 + + false + + + + 1.5.3 + + + + 6 + 920 + + true + + + + + true + true + true + true + true + Display + 800 + 45ea5983:1502a6e6386:-7f06 + -1 + -1 + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_25 + + + true + true + false + + + State + + true + 1 + true + Label + 98 + false + 2b4f25d5:1502b5812fe:-7f04 + 19 + 36 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_27 + + + true + true + false + + + Mode + + true + 1 + true + Label + 98 + false + 2b4f25d5:1502b5812fe:-7eef + 19 + 55 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_28 + + + true + true + false + + + Trigger Count + + true + 1 + true + Label + 98 + false + 2b4f25d5:1502b5812fe:-7ee8 + 19 + 74 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_31 + + + true + true + false + + + Data Start + + true + 1 + true + Label + 98 + false + 2b4f25d5:1502b5812fe:-7ed0 + 258 + 36 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_32 + + + true + true + false + + + Data End + + true + 1 + true + Label + 98 + false + 2b4f25d5:1502b5812fe:-7ec9 + 258 + 55 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_33 + + + true + true + false + + + Data Count + + true + 1 + true + Label + 98 + false + 2b4f25d5:1502b5812fe:-7ec2 + 258 + 74 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_34 + + + true + true + false + + + Data to Write + + true + 1 + true + Label + 98 + false + 2b4f25d5:1502b5812fe:-7ebb + 258 + 93 + + + + false + + + + + + + 0 + 1 + true + + Default Bold + + + + + 20 + 1 + Label_38 + + + true + true + false + + + Performance Utility + + true + 1 + true + Label + 164 + false + 2b4f25d5:1502b5812fe:-7d80 + 12 + 12 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_20 + 0 + false + /cfs/cfe_es/PerfState + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + 2b4f25d5:1502b5812fe:-7ca7 + 133 + 36 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_21 + 0 + false + /cfs/cfe_es/PerfMode + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + 2b4f25d5:1502b5812fe:-7ca2 + 133 + 55 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_22 + 0 + false + /cfs/cfe_es/PerfTriggerCount + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + 2b4f25d5:1502b5812fe:-7c9d + 133 + 74 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_25 + 0 + false + /cfs/cfe_es/PerfDataStart + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + 2b4f25d5:1502b5812fe:-7c8e + 372 + 36 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_26 + 0 + false + /cfs/cfe_es/PerfDataEnd + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + 2b4f25d5:1502b5812fe:-7c89 + 372 + 55 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_27 + 0 + false + /cfs/cfe_es/PerfDataCount + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + 2b4f25d5:1502b5812fe:-7c84 + 372 + 74 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_28 + 0 + false + /cfs/cfe_es/PerfDataToWrite + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + 2b4f25d5:1502b5812fe:-7c7f + 372 + 93 + + + + + StartPerfCollection.opi + + true + + 0 + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 25 + + Action Button + 0 + + + + + true + true + false + + + + Start + false + $(pv_name) +$(pv_value) + true + Action Button + 69 + -35c7bfc1:1509236a393:-770b + 333 + 126 + + + + + StopPerfCollection.opi + + true + + 0 + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 25 + + Action Button_1 + 0 + + + + + true + true + false + + + + Stop + false + $(pv_name) +$(pv_value) + true + Action Button + 69 + -35c7bfc1:1509236a393:-76fd + 408 + 126 + + + + 0 + + + + + + + 0 + 1 + true + + + + 739 + true + + true + + 10 + Tabbed Container + + + true + true + false + + + + + + true + + Default + + + + + + 1 + + + + true + + Default + + + + + + 2 + + + + true + + Default + + + + + + 3 + + + + true + + Default + + + + + + 4 + 4 + + true + Tabbed Container + 450 + -35c7bfc1:1509236a393:-7209 + 24 + 174 + + + + + + + + + 0 + 1 + true + false + + Default + + + + + 707 + false + + true + + 1 + + + true + true + false + + + true + + true + true + Grouping Container + 448 + -35c7bfc1:1509236a393:-7208 + 1 + 1 + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + FilterRequest29 + loc://FilterRequest29 + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 22 + -35c7bfc1:1509236a393:-7493 + 80 + 626 + + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + TriggerRequest2 + loc://TriggerRequest2 + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 22 + -35c7bfc1:1509236a393:-76d0 + 222 + 109 + + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + TriggerRequest15 + loc://TriggerRequest15 + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 22 + -35c7bfc1:1509236a393:-75cb + 222 + 358 + + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + TriggerRequest4 + loc://TriggerRequest4 + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 22 + -35c7bfc1:1509236a393:-76ae + 222 + 147 + + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + TriggerRequest20 + loc://TriggerRequest20 + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 22 + -35c7bfc1:1509236a393:-74be + 222 + 453 + + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + FilterActual27 + /cfs/cfe_es/PerfFilter27 + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 22 + -35c7bfc1:1509236a393:-749c + 18 + 588 + + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + TriggerRequest8 + loc://TriggerRequest8 + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 22 + -35c7bfc1:1509236a393:-766a + 222 + 223 + + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + FilterActual26 + /cfs/cfe_es/PerfFilter26 + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 22 + -35c7bfc1:1509236a393:-74a1 + 18 + 569 + + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + FilterActual20 + /cfs/cfe_es/PerfFilter20 + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 22 + -35c7bfc1:1509236a393:-74bf + 18 + 453 + + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + TriggerActual14 + /cfs/cfe_es/PerfTrigger14 + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 22 + -35c7bfc1:1509236a393:-75cf + 160 + 339 + + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + TriggerRequest24 + loc://TriggerRequest24 + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 22 + -35c7bfc1:1509236a393:-74aa + 222 + 529 + + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + FilterActual15 + /cfs/cfe_es/PerfFilter15 + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 22 + -35c7bfc1:1509236a393:-75cc + 18 + 358 + + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + TriggerRequest21 + loc://TriggerRequest21 + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 22 + -35c7bfc1:1509236a393:-74b9 + 222 + 472 + + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + TriggerRequest18 + loc://TriggerRequest18 + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 22 + -35c7bfc1:1509236a393:-74c8 + 222 + 415 + + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + FilterActual14 + /cfs/cfe_es/PerfFilter14 + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 22 + -35c7bfc1:1509236a393:-75d1 + 18 + 339 + + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + TriggerActual21 + /cfs/cfe_es/PerfTrigger21 + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 22 + -35c7bfc1:1509236a393:-74b8 + 160 + 472 + + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + FilterRequest18 + loc://FilterRequest18 + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 22 + -35c7bfc1:1509236a393:-74ca + 80 + 415 + + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + TriggerActual30 + /cfs/cfe_es/PerfTrigger30 + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 22 + -35c7bfc1:1509236a393:-748b + 160 + 645 + + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + FilterRequest30 + loc://FilterRequest30 + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 22 + -35c7bfc1:1509236a393:-748e + 80 + 645 + + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + FilterRequest26 + loc://FilterRequest26 + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 22 + -35c7bfc1:1509236a393:-74a2 + 80 + 569 + + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + TriggerActual3 + /cfs/cfe_es/PerfTrigger3 + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 22 + -35c7bfc1:1509236a393:-76be + 160 + 128 + + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + TriggerRequest32 + loc://TriggerRequest32 + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 22 + -35c7bfc1:1509236a393:-7482 + 222 + 683 + + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + TriggerRequest17 + loc://TriggerRequest17 + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 22 + -35c7bfc1:1509236a393:-74cd + 222 + 396 + + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + FilterActual29 + /cfs/cfe_es/PerfFilter29 + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 22 + -35c7bfc1:1509236a393:-7492 + 18 + 626 + + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + TriggerActual15 + /cfs/cfe_es/PerfTrigger15 + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 22 + -35c7bfc1:1509236a393:-75ca + 160 + 358 + + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + FilterRequest1 + loc://FilterRequest1 + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 22 + -35c7bfc1:1509236a393:-7c12 + 80 + 90 + + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + FilterActual1 + /cfs/cfe_es/PerfFilter1 + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 22 + -35c7bfc1:1509236a393:-7c0d + 18 + 90 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 0 + Label_46 + + + true + true + false + + + Performance ID 1 + + true + 1 + true + Label + 163 + false + -35c7bfc1:1509236a393:-7769 + 282 + 90 + + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + FilterRequest22 + loc://FilterRequest22 + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 22 + -35c7bfc1:1509236a393:-74b6 + 80 + 491 + + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + FilterRequest14 + loc://FilterRequest14 + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 22 + -35c7bfc1:1509236a393:-75d2 + 80 + 339 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 0 + Label_71 + + + true + true + false + + + Performance ID 26 + + true + 1 + true + Label + 163 + false + -35c7bfc1:1509236a393:-749e + 282 + 569 + + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + FilterActual32 + /cfs/cfe_es/PerfFilter32 + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 22 + -35c7bfc1:1509236a393:-7483 + 18 + 683 + + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + TriggerActual19 + /cfs/cfe_es/PerfTrigger19 + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 22 + -35c7bfc1:1509236a393:-74c2 + 160 + 434 + + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + FilterActual21 + /cfs/cfe_es/PerfFilter22 + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 22 + -35c7bfc1:1509236a393:-74ba + 18 + 472 + + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + FilterRequest24 + loc://FilterRequest24 + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 22 + -35c7bfc1:1509236a393:-74ac + 80 + 529 + + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + TriggerRequest1 + loc://TriggerRequest1 + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 22 + -35c7bfc1:1509236a393:-77c2 + 222 + 90 + + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + FilterActual9 + /cfs/cfe_es/PerfFilter9 + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 22 + -35c7bfc1:1509236a393:-75ea + 18 + 244 + + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + FilterActual17 + /cfs/cfe_es/PerfFilter17 + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 22 + -35c7bfc1:1509236a393:-74ce + 18 + 396 + + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + TriggerActual20 + /cfs/cfe_es/PerfTrigger20 + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 22 + -35c7bfc1:1509236a393:-74bd + 160 + 453 + + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + TriggerRequest7 + loc://TriggerRequest7 + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 22 + -35c7bfc1:1509236a393:-767b + 222 + 204 + + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + FilterRequest2 + loc://FilterRequest2 + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 22 + -35c7bfc1:1509236a393:-76d2 + 80 + 109 + + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + TriggerRequest6 + loc://TriggerRequest6 + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 22 + -35c7bfc1:1509236a393:-768c + 222 + 185 + + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + FilterActual12 + /cfs/cfe_es/PerfFilter12 + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 22 + -35c7bfc1:1509236a393:-75db + 18 + 301 + + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + FilterActual19 + /cfs/cfe_es/PerfFilter19 + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 22 + -35c7bfc1:1509236a393:-74c4 + 18 + 434 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 0 + Label_49 + + + true + true + false + + + Performance ID 4 + + true + 1 + true + Label + 163 + false + -35c7bfc1:1509236a393:-76ac + 282 + 147 + + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + TriggerActual10 + /cfs/cfe_es/PerfTrigger10 + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 22 + -35c7bfc1:1509236a393:-75e3 + 160 + 263 + + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + FilterRequest11 + loc://FilterRequest11 + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 22 + -35c7bfc1:1509236a393:-75e1 + 80 + 282 + + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + TriggerActual7 + /cfs/cfe_es/PerfTrigger7 + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 22 + -35c7bfc1:1509236a393:-767a + 160 + 204 + + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + TriggerActual27 + /cfs/cfe_es/PerfTrigger27 + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 22 + -35c7bfc1:1509236a393:-749a + 160 + 588 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 0 + Label_76 + + + true + true + false + + + Performance ID 31 + + true + 1 + true + Label + 163 + false + -35c7bfc1:1509236a393:-7485 + 282 + 664 + + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + TriggerRequest5 + loc://TriggerRequest5 + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 22 + -35c7bfc1:1509236a393:-769d + 222 + 166 + + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + FilterActual11 + /cfs/cfe_es/PerfFilter11 + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 22 + -35c7bfc1:1509236a393:-75e0 + 18 + 282 + + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + FilterActual30 + /cfs/cfe_es/PerfFilter30 + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 22 + -35c7bfc1:1509236a393:-748d + 18 + 645 + + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + FilterRequest6 + loc://FilterRequest6 + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 22 + -35c7bfc1:1509236a393:-768e + 80 + 185 + + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + FilterRequest12 + loc://FilterRequest12 + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 22 + -35c7bfc1:1509236a393:-75dc + 80 + 301 + + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + FilterRequest15 + loc://FilterRequest15 + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 22 + -35c7bfc1:1509236a393:-75cd + 80 + 358 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 0 + Label_52 + + + true + true + false + + + Performance ID 7 + + true + 1 + true + Label + 163 + false + -35c7bfc1:1509236a393:-7679 + 282 + 204 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 0 + Label_56 + + + true + true + false + + + Performance ID 11 + + true + 1 + true + Label + 163 + false + -35c7bfc1:1509236a393:-75dd + 282 + 282 + + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + TriggerRequest30 + loc://TriggerRequest30 + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 22 + -35c7bfc1:1509236a393:-748c + 222 + 645 + + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + TriggerRequest10 + loc://TriggerRequest10 + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 22 + -35c7bfc1:1509236a393:-75e4 + 222 + 263 + + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + TriggerRequest23 + loc://TriggerRequest23 + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 22 + -35c7bfc1:1509236a393:-74af + 222 + 510 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 0 + Label_48 + + + true + true + false + + + Performance ID 3 + + true + 1 + true + Label + 163 + false + -35c7bfc1:1509236a393:-76bd + 282 + 128 + + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + TriggerRequest14 + loc://TriggerRequest14 + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 22 + -35c7bfc1:1509236a393:-75d0 + 222 + 339 + + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + TriggerActual28 + /cfs/cfe_es/PerfTrigger28 + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 22 + -35c7bfc1:1509236a393:-7495 + 160 + 607 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 0 + Label_62 + + + true + true + false + + + Performance ID 17 + + true + 1 + true + Label + 163 + false + -35c7bfc1:1509236a393:-74cb + 282 + 396 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 0 + Label_47 + + + true + true + false + + + Performance ID 2 + + true + 1 + true + Label + 163 + false + -35c7bfc1:1509236a393:-76ce + 282 + 109 + + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + TriggerRequest13 + loc://TriggerRequest13 + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 22 + -35c7bfc1:1509236a393:-75d5 + 222 + 320 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 0 + Label_69 + + + true + true + false + + + Performance ID 24 + + true + 1 + true + Label + 163 + false + -35c7bfc1:1509236a393:-74a8 + 282 + 529 + + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + TriggerRequest29 + loc://TriggerRequest29 + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 22 + -35c7bfc1:1509236a393:-7491 + 222 + 626 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 0 + Label_64 + + + true + true + false + + + Performance ID 19 + + true + 1 + true + Label + 163 + false + -35c7bfc1:1509236a393:-74c1 + 282 + 434 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 0 + Label_75 + + + true + true + false + + + Performance ID 30 + + true + 1 + true + Label + 163 + false + -35c7bfc1:1509236a393:-748a + 282 + 645 + + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + FilterRequest4 + loc://FilterRequest4 + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 22 + -35c7bfc1:1509236a393:-76b0 + 80 + 147 + + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + FilterActual5 + /cfs/cfe_es/PerfFilter5 + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 22 + -35c7bfc1:1509236a393:-769e + 18 + 166 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 0 + Label_50 + + + true + true + false + + + Performance ID 5 + + true + 1 + true + Label + 163 + false + -35c7bfc1:1509236a393:-769b + 282 + 166 + + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + FilterActual6 + /cfs/cfe_es/PerfFilter6 + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 22 + -35c7bfc1:1509236a393:-768d + 18 + 185 + + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + FilterRequest16 + loc://FilterRequest16 + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 22 + -35c7bfc1:1509236a393:-75c8 + 80 + 377 + + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + FilterActual28 + /cfs/cfe_es/PerfFilter28 + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 22 + -35c7bfc1:1509236a393:-7497 + 18 + 607 + + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + FilterRequest7 + loc://FilterRequest7 + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 22 + -35c7bfc1:1509236a393:-767d + 80 + 204 + + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + TriggerRequest16 + loc://TriggerRequest16 + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 22 + -35c7bfc1:1509236a393:-75c6 + 222 + 377 + + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + FilterActual10 + /cfs/cfe_es/PerfFilter10 + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 22 + -35c7bfc1:1509236a393:-75e5 + 18 + 263 + + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + TriggerRequest31 + loc://TriggerRequest31 + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 22 + -35c7bfc1:1509236a393:-7487 + 222 + 664 + + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + FilterActual25 + /cfs/cfe_es/PerfFilter25 + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 22 + -35c7bfc1:1509236a393:-74a6 + 18 + 550 + + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + FilterRequest21 + loc://FilterRequest21 + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 22 + -35c7bfc1:1509236a393:-74bb + 80 + 472 + + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + TriggerRequest22 + loc://TriggerRequest22 + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 22 + -35c7bfc1:1509236a393:-74b4 + 222 + 491 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 0 + Label_60 + + + true + true + false + + + Performance ID 15 + + true + 1 + true + Label + 163 + false + -35c7bfc1:1509236a393:-75c9 + 282 + 358 + + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + TriggerActual11 + /cfs/cfe_es/PerfTrigger11 + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 22 + -35c7bfc1:1509236a393:-75de + 160 + 282 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 0 + Label_59 + + + true + true + false + + + Performance ID 14 + + true + 1 + true + Label + 163 + false + -35c7bfc1:1509236a393:-75ce + 282 + 339 + + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + FilterActual31 + /cfs/cfe_es/PerfFilter31 + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 22 + -35c7bfc1:1509236a393:-7488 + 18 + 664 + + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + FilterActual23 + /cfs/cfe_es/PerfFilter23 + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 22 + -35c7bfc1:1509236a393:-74b0 + 18 + 510 + + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + FilterRequest3 + loc://FilterRequest3 + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 22 + -35c7bfc1:1509236a393:-76c1 + 80 + 128 + + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + FilterActual4 + /cfs/cfe_es/PerfFilter4 + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 22 + -35c7bfc1:1509236a393:-76af + 18 + 147 + + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + FilterRequest27 + loc://FilterRequest27 + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 22 + -35c7bfc1:1509236a393:-749d + 80 + 588 + + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + FilterRequest17 + loc://FilterRequest17 + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 22 + -35c7bfc1:1509236a393:-74cf + 80 + 396 + + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + TriggerRequest26 + loc://TriggerRequest26 + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 22 + -35c7bfc1:1509236a393:-74a0 + 222 + 569 + + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + TriggerRequest3 + loc://TriggerRequest3 + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 22 + -35c7bfc1:1509236a393:-76bf + 222 + 128 + + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + FilterRequest25 + loc://FilterRequest25 + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 22 + -35c7bfc1:1509236a393:-74a7 + 80 + 550 + + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + TriggerRequest25 + loc://TriggerRequest25 + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 22 + -35c7bfc1:1509236a393:-74a5 + 222 + 550 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 0 + Label_63 + + + true + true + false + + + Performance ID 18 + + true + 1 + true + Label + 163 + false + -35c7bfc1:1509236a393:-74c6 + 282 + 415 + + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + TriggerRequest19 + loc://TriggerRequest19 + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 22 + -35c7bfc1:1509236a393:-74c3 + 222 + 434 + + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + TriggerRequest11 + loc://TriggerRequest11 + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 22 + -35c7bfc1:1509236a393:-75df + 222 + 282 + + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + TriggerActual25 + /cfs/cfe_es/PerfTrigger25 + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 22 + -35c7bfc1:1509236a393:-74a4 + 160 + 550 + + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + TriggerActual17 + /cfs/cfe_es/PerfTrigger17 + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 22 + -35c7bfc1:1509236a393:-74cc + 160 + 396 + + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + TriggerActual23 + /cfs/cfe_es/PerfTrigger23 + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 22 + -35c7bfc1:1509236a393:-74ae + 160 + 510 + + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + FilterRequest9 + loc://FilterRequest9 + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 22 + -35c7bfc1:1509236a393:-75eb + 80 + 244 + + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + FilterRequest31 + loc://FilterRequest31 + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 22 + -35c7bfc1:1509236a393:-7489 + 80 + 664 + + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + FilterActual24 + /cfs/cfe_es/PerfFilter24 + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 22 + -35c7bfc1:1509236a393:-74ab + 18 + 529 + + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + TriggerActual5 + /cfs/cfe_es/PerfTrigger5 + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 22 + -35c7bfc1:1509236a393:-769c + 160 + 166 + + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + FilterRequest5 + loc://FilterRequest5 + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 22 + -35c7bfc1:1509236a393:-769f + 80 + 166 + + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + FilterActual3 + /cfs/cfe_es/PerfFilter3 + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 22 + -35c7bfc1:1509236a393:-76c0 + 18 + 128 + + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + TriggerActual18 + /cfs/cfe_es/PerfTrigger18 + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 22 + -35c7bfc1:1509236a393:-74c7 + 160 + 415 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 0 + Label_53 + + + true + true + false + + + Performance ID 8 + + true + 1 + true + Label + 163 + false + -35c7bfc1:1509236a393:-7668 + 282 + 223 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 0 + Label_61 + + + true + true + false + + + Performance ID 16 + + true + 1 + true + Label + 163 + false + -35c7bfc1:1509236a393:-75c4 + 282 + 377 + + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + TriggerRequest27 + loc://TriggerRequest27 + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 22 + -35c7bfc1:1509236a393:-749b + 222 + 588 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 0 + Label_54 + + + true + true + false + + + Performance ID 9 + + true + 1 + true + Label + 163 + false + -35c7bfc1:1509236a393:-75e7 + 282 + 244 + + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + TriggerActual9 + /cfs/cfe_es/PerfTrigger9 + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 22 + -35c7bfc1:1509236a393:-75e8 + 160 + 244 + + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + TriggerActual13 + /cfs/cfe_es/PerfTrigger13 + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 22 + -35c7bfc1:1509236a393:-75d4 + 160 + 320 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 0 + Label_66 + + + true + true + false + + + Performance ID 21 + + true + 1 + true + Label + 163 + false + -35c7bfc1:1509236a393:-74b7 + 282 + 472 + + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + FilterRequest32 + loc://FilterRequest32 + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 22 + -35c7bfc1:1509236a393:-7484 + 80 + 683 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 0 + Label_58 + + + true + true + false + + + Performance ID 13 + + true + 1 + true + Label + 163 + false + -35c7bfc1:1509236a393:-75d3 + 282 + 320 + + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + FilterActual16 + /cfs/cfe_es/PerfFilter16 + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 22 + -35c7bfc1:1509236a393:-75c7 + 18 + 377 + + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + FilterActual22 + /cfs/cfe_es/PerfFilter22 + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 22 + -35c7bfc1:1509236a393:-74b5 + 18 + 491 + + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + TriggerActual26 + /cfs/cfe_es/PerfTrigger26 + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 22 + -35c7bfc1:1509236a393:-749f + 160 + 569 + + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + TriggerActual4 + /cfs/cfe_es/PerfTrigger4 + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 22 + -35c7bfc1:1509236a393:-76ad + 160 + 147 + + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + TriggerActual24 + /cfs/cfe_es/PerfTrigger24 + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 22 + -35c7bfc1:1509236a393:-74a9 + 160 + 529 + + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + FilterRequest23 + loc://FilterRequest23 + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 22 + -35c7bfc1:1509236a393:-74b1 + 80 + 510 + + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + FilterActual13 + /cfs/cfe_es/PerfFilter13 + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 22 + -35c7bfc1:1509236a393:-75d6 + 18 + 320 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 0 + Label_67 + + + true + true + false + + + Performance ID 22 + + true + 1 + true + Label + 163 + false + -35c7bfc1:1509236a393:-74b2 + 282 + 491 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 0 + Label_68 + + + true + true + false + + + Performance ID 23 + + true + 1 + true + Label + 163 + false + -35c7bfc1:1509236a393:-74ad + 282 + 510 + + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + FilterRequest8 + loc://FilterRequest8 + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 22 + -35c7bfc1:1509236a393:-766c + 80 + 223 + + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + TriggerActual16 + /cfs/cfe_es/PerfTrigger16 + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 22 + -35c7bfc1:1509236a393:-75c5 + 160 + 377 + + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + TriggerActual22 + /cfs/cfe_es/PerfTrigger22 + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 22 + -35c7bfc1:1509236a393:-74b3 + 160 + 491 + + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + FilterRequest28 + loc://FilterRequest28 + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 22 + -35c7bfc1:1509236a393:-7498 + 80 + 607 + + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + TriggerActual1 + /cfs/cfe_es/PerfTrigger1 + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 22 + -35c7bfc1:1509236a393:-77c1 + 160 + 90 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 0 + Label_70 + + + true + true + false + + + Performance ID 25 + + true + 1 + true + Label + 163 + false + -35c7bfc1:1509236a393:-74a3 + 282 + 550 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 0 + Label_72 + + + true + true + false + + + Performance ID 27 + + true + 1 + true + Label + 163 + false + -35c7bfc1:1509236a393:-7499 + 282 + 588 + + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + FilterActual7 + /cfs/cfe_es/PerfFilter7 + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 22 + -35c7bfc1:1509236a393:-767c + 18 + 204 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 0 + Label_51 + + + true + true + false + + + Performance ID 6 + + true + 1 + true + Label + 163 + false + -35c7bfc1:1509236a393:-768a + 282 + 185 + + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + TriggerActual32 + /cfs/cfe_es/PerfTrigger32 + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 22 + -35c7bfc1:1509236a393:-7481 + 160 + 683 + + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + FilterRequest20 + loc://FilterRequest20 + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 22 + -35c7bfc1:1509236a393:-74c0 + 80 + 453 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 0 + Label_73 + + + true + true + false + + + Performance ID 28 + + true + 1 + true + Label + 163 + false + -35c7bfc1:1509236a393:-7494 + 282 + 607 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 0 + Label_55 + + + true + true + false + + + Performance ID 10 + + true + 1 + true + Label + 163 + false + -35c7bfc1:1509236a393:-75e2 + 282 + 263 + + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + TriggerActual12 + /cfs/cfe_es/PerfTrigger12 + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 22 + -35c7bfc1:1509236a393:-75d9 + 160 + 301 + + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + FilterActual2 + /cfs/cfe_es/PerfFilter2 + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 22 + -35c7bfc1:1509236a393:-76d1 + 18 + 109 + + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + TriggerActual8 + /cfs/cfe_es/PerfTrigger8 + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 22 + -35c7bfc1:1509236a393:-7669 + 160 + 223 + + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + TriggerRequest28 + loc://TriggerRequest28 + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 22 + -35c7bfc1:1509236a393:-7496 + 222 + 607 + + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + TriggerActual29 + /cfs/cfe_es/PerfTrigger29 + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 22 + -35c7bfc1:1509236a393:-7490 + 160 + 626 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 0 + Label_74 + + + true + true + false + + + Performance ID 29 + + true + 1 + true + Label + 163 + false + -35c7bfc1:1509236a393:-748f + 282 + 626 + + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + FilterRequest19 + loc://FilterRequest19 + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 22 + -35c7bfc1:1509236a393:-74c5 + 80 + 434 + + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + TriggerActual31 + /cfs/cfe_es/PerfTrigger31 + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 22 + -35c7bfc1:1509236a393:-7486 + 160 + 664 + + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + TriggerActual2 + /cfs/cfe_es/PerfTrigger2 + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 22 + -35c7bfc1:1509236a393:-76cf + 160 + 109 + + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + FilterActual8 + /cfs/cfe_es/PerfFilter8 + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 22 + -35c7bfc1:1509236a393:-766b + 18 + 223 + + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + TriggerRequest12 + loc://TriggerRequest12 + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 22 + -35c7bfc1:1509236a393:-75da + 222 + 301 + + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + FilterRequest13 + loc://FilterRequest13 + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 22 + -35c7bfc1:1509236a393:-75d7 + 80 + 320 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 0 + Label_57 + + + true + true + false + + + Performance ID 12 + + true + 1 + true + Label + 163 + false + -35c7bfc1:1509236a393:-75d8 + 282 + 301 + + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + TriggerActual6 + /cfs/cfe_es/PerfTrigger6 + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 22 + -35c7bfc1:1509236a393:-768b + 160 + 185 + + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + FilterRequest10 + loc://FilterRequest10 + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 22 + -35c7bfc1:1509236a393:-75e6 + 80 + 263 + + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + FilterActual18 + /cfs/cfe_es/PerfFilter18 + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 22 + -35c7bfc1:1509236a393:-74c9 + 18 + 415 + + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + TriggerRequest9 + loc://TriggerRequest9 + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 22 + -35c7bfc1:1509236a393:-75e9 + 222 + 244 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 0 + Label_65 + + + true + true + false + + + Performance ID 20 + + true + 1 + true + Label + 163 + false + -35c7bfc1:1509236a393:-74bc + 282 + 453 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 0 + Label_77 + + + true + true + false + + + Performance ID 32 + + true + 1 + true + Label + 163 + false + -35c7bfc1:1509236a393:-7480 + 282 + 683 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 1 + Label_44 + + + true + true + false + + + Actual + + true + 1 + true + Label + 50 + false + -35c7bfc1:1509236a393:-77bf + 143 + 49 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 1 + Label_42 + + + true + true + false + + + Request + + true + 1 + true + Label + 50 + false + -35c7bfc1:1509236a393:-77dc + 67 + 49 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 1 + Label_45 + + + true + true + false + + + Request + + true + 1 + true + Label + 50 + false + -35c7bfc1:1509236a393:-77be + 209 + 49 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 1 + Label_41 + + + true + true + false + + + Actual + + true + 1 + true + Label + 50 + false + -35c7bfc1:1509236a393:-77e6 + 1 + 49 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 1 + Label_43 + + + true + true + false + + + Trigger + + true + 1 + true + Label + 50 + false + -35c7bfc1:1509236a393:-77c0 + 174 + 30 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 1 + Label + + + true + true + false + + + Filter + + true + 1 + true + Label + 50 + false + -35c7bfc1:1509236a393:-7836 + 32 + 30 + + + + + - true - - - - - Default - - - - false - 0 - false - false - $(pv_name) -$(pv_value) - 0 - - true - -35c7bfc1:1509236a393:-76e6 - - Set - - false - 25 - 1 - - true - true - false - - - true - - - - - Action Button - false - - - - 51 - 146 - Action Button_3 - 6 - - - - - - - +Yamcs.issueCommand(cmdString);]]> + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 25 + + Action Button_2 + 0 + + + + + true + true + false + + + + Set + false + $(pv_name) +$(pv_value) + true + Action Button + 51 + -35c7bfc1:1509236a393:-76f0 + 4 + 6 + + + + + - true - - - - - Default - - - - false - 0 - false - false - $(pv_name) -$(pv_value) - 0 - - true - -35c7bfc1:1509236a393:-6e6e - - Reflect - - false - 25 - 1 - - true - true - false - - - true - - - - - Action Button - false - - - - 51 - 66 - Action Button_2 - 6 - - - - - - - +Yamcs.issueCommand(cmdString);]]> + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 25 + + Action Button_3 + 0 + + + + + true + true + false + + + + Set + false + $(pv_name) +$(pv_value) + true + Action Button + 51 + -35c7bfc1:1509236a393:-76e6 + 146 + 6 + + + + + - true - - - - - Default - - - - false - 0 - false - false - $(pv_name) -$(pv_value) - 0 - - true - -35c7bfc1:1509236a393:-6e60 - - Reflect - - false - 25 - 1 - - true - true - false - - - true - - - - - Action Button - false - - - - 51 - 208 - Action Button_2 - 6 - - - - - - - +}]]> + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 25 + + Action Button_2 + 0 + + + + + true + true + false + + + + Reflect + false + $(pv_name) +$(pv_value) + true + Action Button + 51 + -35c7bfc1:1509236a393:-6e6e + 66 + 6 + + + + + - true - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-4be4 - - - - - false - - - EmbeddedScript +}]]> + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 25 + + Action Button_2 + 0 + + + + + true + true + false + + + + Reflect + false + $(pv_name) +$(pv_value) + true + Action Button + 51 + -35c7bfc1:1509236a393:-6e60 + 208 + 6 + + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + FilterRequestAll1 + loc://FilterRequestAll1 + + + + true + false + false + + + + EmbeddedScript - loc://FilterRequestAll1 - - - true - 20 - 1 - - true - false - false - - true - loc://FilterRequestAll1 - - - - - Check Box - false - - - - 22 - 80 - FilterRequestAll1 - 68 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - -35c7bfc1:1509236a393:-4bdf - - - - - false - - - EmbeddedScript +]]> + loc://FilterRequestAll1 + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 22 + -35c7bfc1:1509236a393:-4be4 + 80 + 68 + + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + TriggerRequestAll1 + loc://TriggerRequestAll1 + + + + true + false + false + + + + EmbeddedScript - loc://TriggerRequestAll1 - - - true - 20 - 1 - - true - false - false - - true - loc://TriggerRequestAll1 - - - - - Check Box - false - - - - 22 - 222 - TriggerRequestAll1 - 68 - - - - - - Default - - - - - 0 - - - true - -35c7bfc1:1509236a393:-7207 - true - false - - 710 - 1 - - true - true - false - - - true - - false - - - - Grouping Container - - - - 448 - 1 - 2 - 1 - - - - - false - true - - Default - - - - 0 - - - true - -35c7bfc1:1509236a393:-7206 - true - false - - 710 - 1 - - true - true - false - - - true - - false - - - - Grouping Container - - - - 448 - 1 - 3 - 1 - - - - - false - true - - Default - - - - 0 - - - true - -35c7bfc1:1509236a393:-7205 - true - false - - 710 - 1 - - true - true - false - - - true - - false - - - - Grouping Container - - - - 448 - 1 - 4 - 1 - - - - - false - true - - Default - - - - \ No newline at end of file +]]> + loc://TriggerRequestAll1 + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 22 + -35c7bfc1:1509236a393:-4bdf + 222 + 68 + + + + + + + + + + + 0 + 1 + true + false + + Default + + + + + 707 + false + + true + + 2 + + + true + true + false + + + true + + true + false + Grouping Container + 448 + -35c7bfc1:1509236a393:-7207 + 1 + 1 + + + + + + + + + + 0 + 1 + true + false + + Default + + + + + 707 + false + + true + + 3 + + + true + true + false + + + true + + true + false + Grouping Container + 448 + -35c7bfc1:1509236a393:-7206 + 1 + 1 + + + + + + + + + + 0 + 1 + true + false + + Default + + + + + 707 + false + + true + + 4 + + + true + true + false + + + true + + true + false + Grouping Container + 448 + -35c7bfc1:1509236a393:-7205 + 1 + 1 + + + diff --git a/tools/commander/workspace_template/Displays/Core/ES/QueryApp.opi b/tools/commander/workspace_template/Displays/Core/ES/QueryApp.opi index 2788447af..95d0b52c4 100644 --- a/tools/commander/workspace_template/Displays/Core/ES/QueryApp.opi +++ b/tools/commander/workspace_template/Displays/Core/ES/QueryApp.opi @@ -1,81 +1,41 @@ - - true - - 72a2bf2b:1508717c835:-7d33 - true - false - - 60 - - true - - 4.0.104.201510200439 - true - Display - - false - -1 - -1 - - - - - 300 - -1 - - 6 - true - -1 - true - - - - - - false - 0 - false - false - $(pv_name) -$(pv_value) - 0 - - true - 72a2bf2b:1508717c835:-7cf7 - - Query - - false - 24 - 1 - - true - true - false - - - true - - - - - Action Button - false - - - - 61 - 198 - Action Button - 17 - - - - - - - scripts/QueryOneApp.js + + + + false + -1 + -1 + + false + + + + 1.5.3 + + + + 6 + 60 + + true + + + + + true + true + true + true + true + Display + 300 + 72a2bf2b:1508717c835:-7d33 + -1 + -1 + + + + scripts/QueryOneApp.js - true - - - - - Default - - - - 0 - - 2 - - true - 72a2bf2b:1508717c835:-7c63 - true - false - Name - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 50 - 12 - Label_3 - 19 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - true - -3fca34e1:15096a78c93:-79bc - - - true - 29 - 1 - - true - false - false - - false - true - loc://AppName - - - - Combo - false - - - - 115 - 72 - inAppName - 14 - - - - - - CF - CI - CS - DS - EIM - HS - FM - HK - LC - MM - SCH - TO - SBN - CFE_ES - CFE_EVS - CFE_SB - CFE_TBL - CFE_TIME - - - Default - - - \ No newline at end of file +Yamcs.issueCommand(cmd);]]> + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 24 + + Action Button + 0 + + + + + true + true + false + + + + Query + false + $(pv_name) +$(pv_value) + true + Action Button + 61 + 72a2bf2b:1508717c835:-7cf7 + 198 + 17 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_3 + + + true + true + false + + + Name + + true + 1 + true + Label + 50 + false + 72a2bf2b:1508717c835:-7c63 + 12 + 19 + + + + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 32 + + CF + CI + CS + DS + EIM + HS + FM + HK + LC + MM + SCH + TO + SBN + CFE_ES + CFE_EVS + CFE_SB + CFE_TBL + CFE_TIME + + false + inAppName + loc://AppName + + + + true + false + false + + + $(pv_name) +$(pv_value) + true + Combo + 115 + -3fca34e1:15096a78c93:-79bc + 72 + 14 + + diff --git a/tools/commander/workspace_template/Displays/Core/ES/RestartApp.opi b/tools/commander/workspace_template/Displays/Core/ES/RestartApp.opi index 83b31a448..1537937d2 100644 --- a/tools/commander/workspace_template/Displays/Core/ES/RestartApp.opi +++ b/tools/commander/workspace_template/Displays/Core/ES/RestartApp.opi @@ -1,81 +1,41 @@ - - true - - 72a2bf2b:1508717c835:-7839 - true - false - - 130 - - true - - 4.0.104.201510200439 - true - Display - - false - -1 - -1 - - - - - 300 - -1 - - 6 - true - -1 - true - - - - - - false - 0 - false - false - $(pv_name) -$(pv_value) - 0 - - true - 72a2bf2b:1508717c835:-77e3 - - Restart - - false - 25 - 1 - - true - true - false - - - true - - - - - Action Button - false - - - - 73 - 114 - Action Button - 90 - - - - - - - scripts/RestartApp.js + + + + false + -1 + -1 + + false + + + + 1.5.3 + + + + 6 + 130 + + true + + + + + true + true + true + true + true + Display + 300 + 72a2bf2b:1508717c835:-7839 + -1 + -1 + + + + scripts/RestartApp.js - true - - - - - Default - - - - 0 - - 2 - - true - 72a2bf2b:1508717c835:-772d - true - false - App Name - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 80 - 24 - Label - 48 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - true - 72a2bf2b:1508717c835:-76fa - - - true - 29 - 1 - - true - false - false - - false - true - loc://AppName - - - - Combo - false - - - - 157 - 114 - inAppName - 43 - - - - - - CF - CI - CS - DS - EIM - HS - FM - HK - LC - MM - SCH - TO - SBN - - - Default - - - - 0 - - 1 - - true - 72a2bf2b:1508717c835:-76c0 - true - false - Restart Application - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 231 - 40 - Label_1 - 15 - - - - - - Default - - - \ No newline at end of file +Yamcs.issueCommand(cmd);]]> + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 25 + + Action Button + 0 + + + + + true + true + false + + + + Restart + false + $(pv_name) +$(pv_value) + true + Action Button + 73 + 72a2bf2b:1508717c835:-77e3 + 114 + 90 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label + + + true + true + false + + + App Name + + true + 1 + true + Label + 80 + false + 72a2bf2b:1508717c835:-772d + 24 + 48 + + + + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 32 + + CF + CI + CS + DS + EIM + HS + FM + HK + LC + MM + SCH + TO + SBN + + false + inAppName + loc://AppName + + + + true + false + false + + + $(pv_name) +$(pv_value) + true + Combo + 157 + 72a2bf2b:1508717c835:-76fa + 114 + 43 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 1 + Label_1 + + + true + true + false + + + Restart Application + + true + 1 + true + Label + 231 + false + 72a2bf2b:1508717c835:-76c0 + 40 + 15 + + diff --git a/tools/commander/workspace_template/Displays/Core/ES/SetMaxPRCount.opi b/tools/commander/workspace_template/Displays/Core/ES/SetMaxPRCount.opi index ad9f653c4..08df50d99 100644 --- a/tools/commander/workspace_template/Displays/Core/ES/SetMaxPRCount.opi +++ b/tools/commander/workspace_template/Displays/Core/ES/SetMaxPRCount.opi @@ -1,81 +1,41 @@ - - true - - 72a2bf2b:1508717c835:-7839 - true - false - - 130 - - true - - 4.0.104.201510200439 - true - Display - - false - -1 - -1 - - - - - 300 - -1 - - 6 - true - -1 - true - - - - - - false - 0 - false - false - $(pv_name) -$(pv_value) - 0 - - true - 72a2bf2b:1508717c835:-77e3 - - Set - - false - 25 - 1 - - true - true - false - - - true - - - - - Action Button - false - - - - 73 - 114 - Action Button - 90 - - - - - - - scripts/RestartApp.js + + + + false + -1 + -1 + + false + + + + 1.5.3 + + + + 6 + 130 + + true + + + + + true + true + true + true + true + Display + 300 + 72a2bf2b:1508717c835:-7839 + -1 + -1 + + + + scripts/RestartApp.js - true - - - - - Default - - - - 0 - - 2 - - true - 72a2bf2b:1508717c835:-772d - true - false - Max Resets - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 80 - 24 - Label - 48 - - - - - - Default - - - - 0 - false - false - 3 - $(pv_name) -$(pv_value) - 1 - - true - 72a2bf2b:1508717c835:-76fa - false - - - false - true - 29 - 1 - - true - false - false - - true - loc://MaxResets - 1 - 0 - false - - - - false - Spinner - 1.0 - false - true - - - - 10.0 - 157 - 114 - inMaxResets - 43 - 1.7976931348623157E308 - - - - - -1.7976931348623157E308 - - Default - - - - 0 - - 1 - - true - 72a2bf2b:1508717c835:-76c0 - true - false - Set Maximum Processor Resets - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 231 - 40 - Label_1 - 15 - - - - - - Default - - - \ No newline at end of file +Yamcs.issueCommand(cmd);]]> + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 25 + + Action Button + 0 + + + + + true + true + false + + + + Set + false + $(pv_name) +$(pv_value) + true + Action Button + 73 + 72a2bf2b:1508717c835:-77e3 + 114 + 90 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label + + + true + true + false + + + Max Resets + + true + 1 + true + Label + 80 + false + 72a2bf2b:1508717c835:-772d + 24 + 48 + + + + false + false + + + + true + + + + 1 + 1 + false + true + + Default + + false + + + + 0 + 29 + 1 + false + true + 1.7976931348623157E308 + -1.7976931348623157E308 + inMaxResets + 10.0 + 3 + false + loc://MaxResets + + + + true + false + false + + + true + 1.0 + $(pv_name) +$(pv_value) + false + 1 + true + Spinner + 157 + 72a2bf2b:1508717c835:-76fa + 114 + 43 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 1 + Label_1 + + + true + true + false + + + Set Maximum Processor Resets + + true + 1 + true + Label + 231 + false + 72a2bf2b:1508717c835:-76c0 + 40 + 15 + + diff --git a/tools/commander/workspace_template/Displays/Core/ES/SetSysLogMode.opi b/tools/commander/workspace_template/Displays/Core/ES/SetSysLogMode.opi index 03e09ef44..a04cd8ca8 100644 --- a/tools/commander/workspace_template/Displays/Core/ES/SetSysLogMode.opi +++ b/tools/commander/workspace_template/Displays/Core/ES/SetSysLogMode.opi @@ -8,7 +8,7 @@ false - + 1.5.3 @@ -44,7 +44,7 @@ false false - + false @@ -58,7 +58,7 @@ false - + 25 @@ -134,9 +134,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -146,7 +146,7 @@ $(pv_value) - 27 + 32 OVERWRITE DISCARD @@ -211,4 +211,4 @@ $(pv_value) 40 15 - \ No newline at end of file + diff --git a/tools/commander/workspace_template/Displays/Core/ES/StartApp.opi b/tools/commander/workspace_template/Displays/Core/ES/StartApp.opi index b53eccb9c..ea14a5d2f 100644 --- a/tools/commander/workspace_template/Displays/Core/ES/StartApp.opi +++ b/tools/commander/workspace_template/Displays/Core/ES/StartApp.opi @@ -1,81 +1,41 @@ - - true - - 72a2bf2b:1508717c835:-7839 - true - false - - 280 - - true - - 4.0.104.201510200439 - true - Display - - false - -1 - -1 - - - - - 300 - -1 - - 6 - true - -1 - true - - - - - - false - 0 - false - false - $(pv_name) -$(pv_value) - 0 - - true - 72a2bf2b:1508717c835:-77e3 - - Start - - false - 25 - 1 - - true - true - false - - - true - - - - - Action Button - false - - - - 73 - 161 - Action Button - 240 - - - - - - - scripts/RestartApp.js + + + + false + -1 + -1 + + false + + + + 1.5.3 + + + + 6 + 300 + + true + + + + + true + true + true + true + true + Display + 300 + 72a2bf2b:1508717c835:-7839 + -1 + -1 + + + + scripts/RestartApp.js - true - - - - - Default - - - - 0 - - 2 - - true - 72a2bf2b:1508717c835:-772d - true - false - App Name - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 80 - 29 - Label - 53 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - true - 72a2bf2b:1508717c835:-76fa - - - true - 29 - 1 - - true - false - false - - false - true - loc://AppName - - - - Combo - false - - - - 157 - 119 - inAppName - 48 - - - - - - CF - CI - CS - DS - EIM - HS - FM - HK - LC - MM - SCH - TO - SBN - - - Default - - - - 0 - - 1 - - true - 72a2bf2b:1508717c835:-76c0 - true - false - Start Application - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 231 - 82 - Label_1 - 12 - - - - - - Default - - - - 0 - - 2 - - true - 72a2bf2b:1508717c835:-734b - true - false - Entry Point - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 80 - 29 - Label_2 - 79 - - - - - - Default - - - - false - 0 - $(pv_name) -$(pv_value) - 0 - - - false - - 0.0 - true - 25 - false - 1 - true - - 0 - - - - true - Text Input - - inEntryPoint - - - 3 - false - true - 72a2bf2b:1508717c835:-7345 - false - - false - - true - true - false - - false - 0 - false - - - - 152 - 122 - 76 - 1.7976931348623157E308 - - - - -1.7976931348623157E308 - - Default - - - - 0 - - 2 - - true - 72a2bf2b:1508717c835:-7338 - true - false - File Name - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 80 - 27 - Label_3 - 110 - - - - - - Default - - - - false - 0 - $(pv_name) -$(pv_value) - 0 - - - false - - 0.0 - true - 25 - false - 1 - true - - 0 - - - - true - Text Input - - inFileName - - - 3 - false - true - 72a2bf2b:1508717c835:-7337 - false - - false - - true - true - false - - false - 0 - false - - - - 152 - 122 - 107 - 1.7976931348623157E308 - - - - -1.7976931348623157E308 - - Default - - - - 0 - - 2 - - true - 72a2bf2b:1508717c835:-7326 - true - false - Stack Size - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 80 - 27 - Label_4 - 140 - - - - - - Default - - - - false - 0 - $(pv_name) -$(pv_value) - 0 - - - false - - 0.0 - true - 25 - false - 1 - true - - 0 - - - - true - Text Input - - inStackSize - - - 3 - false - true - 72a2bf2b:1508717c835:-7325 - false - - false - - true - true - false - - false - 0 - false - - - - 152 - 122 - 137 - 1.7976931348623157E308 - - - - -1.7976931348623157E308 - - Default - - - - 0 - - 2 - - true - 72a2bf2b:1508717c835:-731e - true - false - Priority - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 80 - 27 - Label_5 - 170 - - - - - - Default - - - - false - 0 - $(pv_name) -$(pv_value) - 0 - - - false - - 0.0 - true - 25 - false - 1 - true - - 0 - - - - true - Text Input - - inPriority - - - 3 - false - true - 72a2bf2b:1508717c835:-731d - false - - false - - true - true - false - - false - 0 - false - - - - 152 - 122 - 167 - 1.7976931348623157E308 - - - - -1.7976931348623157E308 - - Default - - - - 0 - - 2 - - true - 72a2bf2b:1508717c835:-730f - true - false - Exception Action - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 122 - -13 - Label_6 - 202 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - true - 72a2bf2b:1508717c835:-730e - - - true - 29 - 1 - - true - false - false - - false - true - loc://ExceptionAction - - - - Combo - false - - - - 157 - 119 - inExceptionAction - 197 - - - - - - APP RESTART - PROC RESTART - - - Default - - - \ No newline at end of file +Yamcs.issueCommand(cmd);]]> + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 25 + + Action Button + 0 + + + + + true + true + false + + + + Start + false + $(pv_name) +$(pv_value) + true + Action Button + 73 + 72a2bf2b:1508717c835:-77e3 + 161 + 259 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label + + + true + true + false + + + App Name + + true + 1 + true + Label + 80 + false + 72a2bf2b:1508717c835:-772d + 29 + 53 + + + + false + false + + + + true + + + + 14 + 1 + true + + Default + + false + + + + 34 + + CF + CI + CS + DS + EIM + HS + FM + HK + LC + MM + SCH + TO + SBN + + false + inAppName + loc://AppName + + + + true + true + false + + + $(pv_name) +$(pv_value) + true + Combo + 157 + 72a2bf2b:1508717c835:-76fa + 119 + 48 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 1 + Label_1 + + + true + true + false + + + Start Application + + true + 1 + true + Label + 231 + false + 72a2bf2b:1508717c835:-76c0 + 82 + 12 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_2 + + + true + true + false + + + Entry Point + + true + 1 + true + Label + 80 + false + 72a2bf2b:1508717c835:-734b + 29 + 90 + + + + false + false + false + + + + false + + + + 1 + 1 + + true + + Default + + false + + + + 0 + 25 + 0 + false + 1.7976931348623157E308 + -1.7976931348623157E308 + false + inEntryPoint + 0 + true + + + 0.0 + + + true + true + false + + + 0 + true + + + $(pv_name) +$(pv_value) + false + true + Text Input + 152 + 72a2bf2b:1508717c835:-7345 + 122 + 90 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_3 + + + true + true + false + + + File Name + + true + 1 + true + Label + 80 + false + 72a2bf2b:1508717c835:-7338 + 27 + 129 + + + + false + false + false + + + + false + + + + 1 + 1 + + true + + Default + + false + + + + 0 + 25 + 0 + false + 1.7976931348623157E308 + -1.7976931348623157E308 + false + inFileName + 0 + true + + + 0.0 + + + true + true + false + + + 0 + true + + + $(pv_name) +$(pv_value) + false + true + Text Input + 152 + 72a2bf2b:1508717c835:-7337 + 122 + 126 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_4 + + + true + true + false + + + Stack Size + + true + 1 + true + Label + 80 + false + 72a2bf2b:1508717c835:-7326 + 27 + 159 + + + + false + false + false + + + + false + + + + 1 + 1 + + true + + Default + + false + + + + 0 + 25 + 0 + false + 1.7976931348623157E308 + -1.7976931348623157E308 + false + inStackSize + 0 + true + + + 0.0 + + + true + true + false + + + 0 + true + + + $(pv_name) +$(pv_value) + false + true + Text Input + 152 + 72a2bf2b:1508717c835:-7325 + 122 + 156 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_5 + + + true + true + false + + + Priority + + true + 1 + true + Label + 80 + false + 72a2bf2b:1508717c835:-731e + 27 + 189 + + + + false + false + false + + + + false + + + + 1 + 1 + + true + + Default + + false + + + + 0 + 25 + 0 + false + 1.7976931348623157E308 + -1.7976931348623157E308 + false + inPriority + 0 + true + + + 0.0 + + + true + true + false + + + 0 + true + + + $(pv_name) +$(pv_value) + false + true + Text Input + 152 + 72a2bf2b:1508717c835:-731d + 122 + 186 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_6 + + + true + true + false + + + Exception Action + + true + 1 + true + Label + 122 + false + 72a2bf2b:1508717c835:-730f + -13 + 216 + + + + false + false + + + + true + + + + 14 + 1 + true + + Default + + false + + + + 34 + + APP RESTART + PROC RESTART + + false + inExceptionAction + loc://ExceptionAction + + + + true + false + false + + + $(pv_name) +$(pv_value) + true + Combo + 157 + 72a2bf2b:1508717c835:-730e + 119 + 216 + + diff --git a/tools/commander/workspace_template/Displays/Core/ES/StartPerfCollection.opi b/tools/commander/workspace_template/Displays/Core/ES/StartPerfCollection.opi index 19ae4fc23..41b9454b1 100644 --- a/tools/commander/workspace_template/Displays/Core/ES/StartPerfCollection.opi +++ b/tools/commander/workspace_template/Displays/Core/ES/StartPerfCollection.opi @@ -1,168 +1,128 @@ - - true - - -35c7bfc1:1509236a393:-54f2 - true - false - - 100 - - true - - 4.0.104.201510200439 - true - Display - - false - -1 - -1 - - - - - 400 - -1 - - 6 - true - -1 - true - - - - - - 0 - false - false - $(pv_name) -$(pv_value) - - true - -35c7bfc1:1509236a393:-52ca - - - true - 29 - 1 - - true - false - false - - false - true - loc://TriggerOn - - - - Combo - false - - - - 141 - 108 - TriggerOn - 30 - - - - - - Start - Middle - End - - - Default - - - - 0 - - 1 - - true - -35c7bfc1:1509236a393:-52b1 - true - false - Trigger on - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 80 - 24 - Label - 35 - - - - - - Default - - - - false - 0 - false - false - $(pv_name) -$(pv_value) - 0 - - true - -35c7bfc1:1509236a393:-5274 - - Start - - false - 29 - 1 - - true - true - false - - - true - - - - - Action Button - false - - - - 80 - 276 - Action Button - 30 - - - - - - - + + + + false + -1 + -1 + + false + + + + 1.5.3 + + + + 6 + 100 + + true + + + + + true + true + true + true + true + Display + 400 + -35c7bfc1:1509236a393:-54f2 + -1 + -1 + + + false + false + + + + true + + + + 14 + 1 + true + + Default + + false + + + + 34 + + Start + Middle + End + + false + TriggerOn + loc://TriggerOn + + + + true + false + false + + + $(pv_name) +$(pv_value) + true + Combo + 141 + -35c7bfc1:1509236a393:-52ca + 108 + 30 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 1 + Label + + + true + true + false + + + Trigger on + + true + 1 + true + Label + 80 + false + -35c7bfc1:1509236a393:-52b1 + 24 + 35 + + + + + - true - - - - - Default - - - - false - 0 - false - false - $(pv_name) -$(pv_value) - 0 - - true - -35c7bfc1:1509236a393:-4f6b - - $(actions) - - false - 40 - 1 - - true - true - false - - - true - - - - - Action Button - false - - - - 80 - 276 - Action Button_1 - 96 - - - - - - - scripts/NoOp.js - - true - - - - - Default - - - \ No newline at end of file +}]]> + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 29 + + Action Button + 0 + + + + + true + true + false + + + + Start + false + $(pv_name) +$(pv_value) + true + Action Button + 80 + -35c7bfc1:1509236a393:-5274 + 276 + 30 + + diff --git a/tools/commander/workspace_template/Displays/Core/ES/StopApp.opi b/tools/commander/workspace_template/Displays/Core/ES/StopApp.opi index 9397d4673..7a01f02b6 100644 --- a/tools/commander/workspace_template/Displays/Core/ES/StopApp.opi +++ b/tools/commander/workspace_template/Displays/Core/ES/StopApp.opi @@ -1,81 +1,41 @@ - - true - - 72a2bf2b:1508717c835:-7839 - true - false - - 130 - - true - - 4.0.104.201510200439 - true - Display - - false - -1 - -1 - - - - - 300 - -1 - - 6 - true - -1 - true - - - - - - false - 0 - false - false - $(pv_name) -$(pv_value) - 0 - - true - 72a2bf2b:1508717c835:-77e3 - - Stop - - false - 25 - 1 - - true - true - false - - - true - - - - - Action Button - false - - - - 73 - 114 - Action Button - 90 - - - - - - - scripts/RestartApp.js + + + + false + -1 + -1 + + false + + + + 1.5.3 + + + + 6 + 130 + + true + + + + + true + true + true + true + true + Display + 300 + 72a2bf2b:1508717c835:-7839 + -1 + -1 + + + + scripts/RestartApp.js - true - - - - - Default - - - - 0 - - 2 - - true - 72a2bf2b:1508717c835:-772d - true - false - App Name - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 80 - 24 - Label - 48 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - true - 72a2bf2b:1508717c835:-76fa - - - true - 29 - 1 - - true - false - false - - false - true - loc://AppName - - - - Combo - false - - - - 157 - 114 - inAppName - 43 - - - - - - CF - CI - CS - DS - EIM - HS - FM - HK - LC - MM - SCH - TO - SBN - - - Default - - - - 0 - - 1 - - true - 72a2bf2b:1508717c835:-76c0 - true - false - Stop Application - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 231 - 40 - Label_1 - 15 - - - - - - Default - - - \ No newline at end of file +Yamcs.issueCommand(cmd);]]> + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 25 + + Action Button + 0 + + + + + true + true + false + + + + Stop + false + $(pv_name) +$(pv_value) + true + Action Button + 73 + 72a2bf2b:1508717c835:-77e3 + 114 + 90 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label + + + true + true + false + + + App Name + + true + 1 + true + Label + 80 + false + 72a2bf2b:1508717c835:-772d + 24 + 48 + + + + false + false + + + + true + + + + 14 + 1 + true + + Default + + false + + + + 34 + + CF + CI + CS + DS + EIM + HS + FM + HK + LC + MM + SCH + TO + SBN + + false + inAppName + loc://AppName + + + + true + false + false + + + $(pv_name) +$(pv_value) + true + Combo + 157 + 72a2bf2b:1508717c835:-76fa + 114 + 43 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 1 + Label_1 + + + true + true + false + + + Stop Application + + true + 1 + true + Label + 231 + false + 72a2bf2b:1508717c835:-76c0 + 40 + 15 + + diff --git a/tools/commander/workspace_template/Displays/Core/ES/StopPerfCollection.opi b/tools/commander/workspace_template/Displays/Core/ES/StopPerfCollection.opi index d0022c5c7..5a53f11b0 100644 --- a/tools/commander/workspace_template/Displays/Core/ES/StopPerfCollection.opi +++ b/tools/commander/workspace_template/Displays/Core/ES/StopPerfCollection.opi @@ -1,191 +1,191 @@ - - true - - -35c7bfc1:1509236a393:-54f2 - true - false - - 130 - - true - - 4.0.104.201510200439 - true - Display - - false - -1 - -1 - - - - - 400 - -1 - - 6 - true - -1 - true - - - - - - 0 - - 1 - - true - -35c7bfc1:1509236a393:-52b1 - true - false - File Name - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 80 - 12 - Label - 35 - - - - - - Default - - - - false - 0 - false - false - $(pv_name) -$(pv_value) - 0 - - true - -35c7bfc1:1509236a393:-5274 - - Stop - - false - 29 - 1 - - true - true - false - - - true - - - - - Action Button - false - - - - 80 - 168 - Action Button - 72 - - - - - - - + + + + false + -1 + -1 + + false + + + + 1.5.3 + + + + 6 + 130 + + true + + + + + true + true + true + true + true + Display + 400 + -35c7bfc1:1509236a393:-54f2 + -1 + -1 + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 1 + Label + + + true + true + false + + + File Name + + true + 1 + true + Label + 80 + false + -35c7bfc1:1509236a393:-52b1 + 12 + 35 + + + + + - true - - - - - Default - - - - false - 0 - $(pv_name) -$(pv_value) - 0 - - - false - - 0.0 - true - 25 - false - 1 - true - loc://FileName<VString>("") - 0 - - - - true - Text Input - - FileName - - - 3 - false - true - -35c7bfc1:1509236a393:-51dc - false - - false - - true - true - false - - false - 4 - false - - - - 289 - 96 - 32 - 1.7976931348623157E308 - - - - -1.7976931348623157E308 - - Default - - - \ No newline at end of file +Yamcs.issueCommand('/cfs/cfe_es/PerfStop(FileName: "' + fileName + '")');]]> + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 29 + + Action Button + 0 + + + + + true + true + false + + + + Stop + false + $(pv_name) +$(pv_value) + true + Action Button + 80 + -35c7bfc1:1509236a393:-5274 + 168 + 72 + + + + false + false + false + + + + false + + + + 1 + 1 + + true + + Default + + false + + + + 4 + 25 + 0 + false + 1.7976931348623157E308 + -1.7976931348623157E308 + false + FileName + 0 + true + loc://FileName<VString>("") + + 0.0 + + + true + true + false + + + 0 + true + + + $(pv_name) +$(pv_value) + false + true + Text Input + 289 + -35c7bfc1:1509236a393:-51dc + 96 + 32 + + diff --git a/tools/commander/workspace_template/Displays/Core/ES/WriteErrLog.opi b/tools/commander/workspace_template/Displays/Core/ES/WriteErrLog.opi index 6a6e4f2e0..551b8320b 100644 --- a/tools/commander/workspace_template/Displays/Core/ES/WriteErrLog.opi +++ b/tools/commander/workspace_template/Displays/Core/ES/WriteErrLog.opi @@ -8,7 +8,7 @@ false - + 1.5.3 @@ -53,7 +53,7 @@ Yamcs.issueCommand(cmd); false false - + false @@ -67,7 +67,7 @@ Yamcs.issueCommand(cmd); false - + 25 @@ -184,9 +184,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -231,4 +231,4 @@ $(pv_value) 114 48 - \ No newline at end of file + diff --git a/tools/commander/workspace_template/Displays/Core/ES/WriteSysLog.opi b/tools/commander/workspace_template/Displays/Core/ES/WriteSysLog.opi index e59a4cf6a..e04d5ce81 100644 --- a/tools/commander/workspace_template/Displays/Core/ES/WriteSysLog.opi +++ b/tools/commander/workspace_template/Displays/Core/ES/WriteSysLog.opi @@ -8,7 +8,7 @@ false - + 1.5.3 @@ -53,7 +53,7 @@ Yamcs.issueCommand(cmd); false false - + false @@ -67,7 +67,7 @@ Yamcs.issueCommand(cmd); false - + 25 @@ -184,9 +184,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -231,4 +231,4 @@ $(pv_value) 114 48 - \ No newline at end of file + diff --git a/tools/commander/workspace_template/Displays/Core/ES/scripts/NoOp.js b/tools/commander/workspace_template/Displays/Core/ES/scripts/NoOp.js deleted file mode 100644 index c405e4127..000000000 --- a/tools/commander/workspace_template/Displays/Core/ES/scripts/NoOp.js +++ /dev/null @@ -1,4 +0,0 @@ -importPackage(Packages.org.csstudio.opibuilder.scriptUtil); -importPackage(Packages.org.yamcs.studio.script); - -Yamcs.issueCommand('/cfs/cfe_es/Noop(arg: none)'); \ No newline at end of file diff --git a/tools/commander/workspace_template/Displays/Core/ES/scripts/PowerReset.js b/tools/commander/workspace_template/Displays/Core/ES/scripts/PowerReset.js deleted file mode 100644 index 656a39c84..000000000 --- a/tools/commander/workspace_template/Displays/Core/ES/scripts/PowerReset.js +++ /dev/null @@ -1,4 +0,0 @@ -importPackage(Packages.org.csstudio.opibuilder.scriptUtil); -importPackage(Packages.org.yamcs.studio.script); - -Yamcs.issueCommand('/cfs/cfe_es/Restart(Type: 2)'); \ No newline at end of file diff --git a/tools/commander/workspace_template/Displays/Core/ES/scripts/ProcessorReset.js b/tools/commander/workspace_template/Displays/Core/ES/scripts/ProcessorReset.js deleted file mode 100644 index 4d33643bb..000000000 --- a/tools/commander/workspace_template/Displays/Core/ES/scripts/ProcessorReset.js +++ /dev/null @@ -1,4 +0,0 @@ -importPackage(Packages.org.csstudio.opibuilder.scriptUtil); -importPackage(Packages.org.yamcs.studio.script); - -Yamcs.issueCommand('/cfs/cfe_es/Restart(Type: 1)'); \ No newline at end of file diff --git a/tools/commander/workspace_template/Displays/Core/ES/scripts/ResetCounters.js b/tools/commander/workspace_template/Displays/Core/ES/scripts/ResetCounters.js deleted file mode 100644 index 971dfda49..000000000 --- a/tools/commander/workspace_template/Displays/Core/ES/scripts/ResetCounters.js +++ /dev/null @@ -1,4 +0,0 @@ -importPackage(Packages.org.csstudio.opibuilder.scriptUtil); -importPackage(Packages.org.yamcs.studio.script); - -Yamcs.issueCommand('/cfs/cfe_es/Reset(arg: none)'); \ No newline at end of file diff --git a/tools/commander/workspace_template/Displays/Core/EVS/AddFilter.opi b/tools/commander/workspace_template/Displays/Core/EVS/AddFilter.opi index 9e815ed3f..8bea41bf4 100644 --- a/tools/commander/workspace_template/Displays/Core/EVS/AddFilter.opi +++ b/tools/commander/workspace_template/Displays/Core/EVS/AddFilter.opi @@ -1,81 +1,41 @@ - - true - - 763e00b7:150973f1dd8:-7ba3 - true - false - - 160 - - true - - 4.0.104.201510200439 - true - Display - - false - -1 - -1 - - - - - 250 - -1 - - 6 - true - -1 - true - - - - - - false - 0 - false - false - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-7b0d - - Add - - false - 28 - 1 - - true - true - false - - - true - - - - - Action Button - false - - - - 80 - 78 - Action Button - 120 - - - - - - - + + + + false + -1 + -1 + + false + + + + 1.5.3 + + + + 6 + 160 + + true + + + + + true + true + true + true + true + Display + 250 + 763e00b7:150973f1dd8:-7ba3 + -1 + -1 + + + + - true - - - - - Default - - - - 0 - - 2 - - true - 763e00b7:150973f1dd8:-76cf - true - false - App Name - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 80 - 12 - Label - 29 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - true - 763e00b7:150973f1dd8:-76ce - - - true - 29 - 1 - - true - false - false - - false - true - loc://AppName<VString> - - - - Combo - false - - - - 134 - 102 - AppName - 24 - - - - - - CF - CI - CS - DS - EIM - HS - FM - HK - LC - MM - SCH - TO - SBN - - - Default - - - - 0 - - 2 - - true - 763e00b7:150973f1dd8:-754e - true - false - Event ID - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 80 - 7 - Label_4 - 55 - - - - - - Default - - - - false - 0 - $(pv_name) -$(pv_value) - 0 - - - false - - 0.0 - true - 25 - false - 1 - true - loc://EventID<VDouble> - 0 - - - - false - Text Input - - EventID - - - 3 - false - true - 763e00b7:150973f1dd8:-754d - false - - false - - true - true - false - - false - 0 - false - - - - 134 - 102 - 52 - 1.7976931348623157E308 - - - - -1.7976931348623157E308 - - Default - - - - 0 - - 2 - - true - 763e00b7:150973f1dd8:-7536 - true - false - Mask - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 80 - 7 - Label_5 - 79 - - - - - - Default - - - - false - 0 - $(pv_name) -$(pv_value) - 0 - - - false - - 0.0 - true - 25 - false - 1 - true - loc://Mask<VDouble> - 0 - - - - true - Text Input - - Mask - - - 3 - false - true - 763e00b7:150973f1dd8:-7535 - false - - false - - true - true - false - - false - 3 - false - - - - 134 - 102 - 76 - 1.7976931348623157E308 - - - - -1.7976931348623157E308 - - Default - - +Yamcs.issueCommand(cmdString);]]> + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 28 + + Action Button + 0 + + + + + true + true + false + + + + Add + false + $(pv_name) +$(pv_value) + true + Action Button + 80 + 763e00b7:150973f1dd8:-7b0d + 78 + 130 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label + + + true + true + false + + + App Name + + true + 1 + true + Label + 80 + false + 763e00b7:150973f1dd8:-76cf + 12 + 29 + + + + false + false + + + + true + + + + 0 + 1 + true + + Default + + false + + + + 34 + + CF + CI + CS + DS + EIM + HS + FM + HK + LC + MM + SCH + TO + SBN + + false + AppName + loc://AppName<VString> + + + + true + false + false + + + $(pv_name) +$(pv_value) + true + Combo + 134 + 763e00b7:150973f1dd8:-76ce + 102 + 24 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_4 + + + true + true + false + + + Event ID + + true + 1 + true + Label + 80 + false + 763e00b7:150973f1dd8:-754e + 7 + 65 + + + + false + false + false + + + + false + + + + 1 + 1 + + true + + Default + + false + + + + 0 + 25 + 0 + false + 1.7976931348623157E308 + -1.7976931348623157E308 + false + EventID + 0 + false + loc://EventID<VDouble> + + 0.0 + + + true + true + false + + + 0 + true + + + $(pv_name) +$(pv_value) + false + true + Text Input + 134 + 763e00b7:150973f1dd8:-754d + 102 + 65 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_5 + + + true + true + false + + + Mask + + true + 1 + true + Label + 80 + false + 763e00b7:150973f1dd8:-7536 + 7 + 96 + + + + false + false + false + + + + false + + + + 1 + 1 + + true + + Default + + false + + + + 3 + 25 + 0 + false + 1.7976931348623157E308 + -1.7976931348623157E308 + false + Mask + 0 + true + loc://Mask<VDouble> + + 0.0 + + + true + true + false + + + 0 + true + + + $(pv_name) +$(pv_value) + false + true + Text Input + 134 + 763e00b7:150973f1dd8:-7535 + 102 + 96 + \ No newline at end of file diff --git a/tools/commander/workspace_template/Displays/Core/EVS/DeleteFilter.opi b/tools/commander/workspace_template/Displays/Core/EVS/DeleteFilter.opi index 911ae62b3..e7682f558 100644 --- a/tools/commander/workspace_template/Displays/Core/EVS/DeleteFilter.opi +++ b/tools/commander/workspace_template/Displays/Core/EVS/DeleteFilter.opi @@ -1,81 +1,41 @@ - - true - - 763e00b7:150973f1dd8:-7ba3 - true - false - - 140 - - true - - 4.0.104.201510200439 - true - Display - - false - -1 - -1 - - - - - 250 - -1 - - 6 - true - -1 - true - - - - - - false - 0 - false - false - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-7b0d - - Delete - - false - 28 - 1 - - true - true - false - - - true - - - - - Action Button - false - - - - 80 - 78 - Action Button - 96 - - - - - - - + + + + false + -1 + -1 + + false + + + + 1.5.3 + + + + 6 + 140 + + true + + + + + true + true + true + true + true + Display + 250 + 763e00b7:150973f1dd8:-7ba3 + -1 + -1 + + + + - true - - - - - Default - - - - 0 - - 2 - - true - 763e00b7:150973f1dd8:-76cf - true - false - App Name - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 80 - 12 - Label - 29 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - true - 763e00b7:150973f1dd8:-76ce - - - true - 29 - 1 - - true - false - false - - false - true - loc://AppName<VString> - - - - Combo - false - - - - 134 - 102 - AppName - 24 - - - - - - CF - CI - CS - DS - EIM - HS - FM - HK - LC - MM - SCH - TO - SBN - - - Default - - - - 0 - - 2 - - true - 763e00b7:150973f1dd8:-754e - true - false - Event ID - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 80 - 7 - Label_4 - 55 - - - - - - Default - - - - false - 0 - $(pv_name) -$(pv_value) - 0 - - - false - - 0.0 - true - 25 - false - 1 - true - loc://EventID<VDouble> - 0 - - - - false - Text Input - - EventID - - - 3 - false - true - 763e00b7:150973f1dd8:-754d - false - - false - - true - true - false - - false - 0 - false - - - - 134 - 102 - 52 - 1.7976931348623157E308 - - - - -1.7976931348623157E308 - - Default - - +Yamcs.issueCommand(cmdString);]]> + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 28 + + Action Button + 0 + + + + + true + true + false + + + + Delete + false + $(pv_name) +$(pv_value) + true + Action Button + 80 + 763e00b7:150973f1dd8:-7b0d + 78 + 96 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label + + + true + true + false + + + App Name + + true + 1 + true + Label + 80 + false + 763e00b7:150973f1dd8:-76cf + 12 + 29 + + + + false + false + + + + true + + + + 0 + 1 + true + + Default + + false + + + + 34 + + CF + CI + CS + DS + EIM + HS + FM + HK + LC + MM + SCH + TO + SBN + + false + AppName + loc://AppName<VString> + + + + true + false + false + + + $(pv_name) +$(pv_value) + true + Combo + 134 + 763e00b7:150973f1dd8:-76ce + 102 + 24 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_4 + + + true + true + false + + + Event ID + + true + 1 + true + Label + 80 + false + 763e00b7:150973f1dd8:-754e + 7 + 60 + + + + false + false + false + + + + false + + + + 1 + 1 + + true + + Default + + false + + + + 0 + 25 + 0 + false + 1.7976931348623157E308 + -1.7976931348623157E308 + false + EventID + 0 + false + loc://EventID<VDouble> + + 0.0 + + + true + true + false + + + 0 + true + + + $(pv_name) +$(pv_value) + false + true + Text Input + 134 + 763e00b7:150973f1dd8:-754d + 102 + 60 + \ No newline at end of file diff --git a/tools/commander/workspace_template/Displays/Core/EVS/DumpAppData.opi b/tools/commander/workspace_template/Displays/Core/EVS/DumpAppData.opi index 9fa26ef3b..61360d8fb 100644 --- a/tools/commander/workspace_template/Displays/Core/EVS/DumpAppData.opi +++ b/tools/commander/workspace_template/Displays/Core/EVS/DumpAppData.opi @@ -1,81 +1,41 @@ - - true - - 72a2bf2b:1508717c835:-7839 - true - false - - 130 - - true - - 4.0.104.201510200439 - true - Display - - false - -1 - -1 - - - - - 400 - -1 - - 6 - true - -1 - true - - - - - - false - 0 - false - false - $(pv_name) -$(pv_value) - 0 - - true - 72a2bf2b:1508717c835:-77e3 - - Write to File System - - false - 25 - 1 - - true - true - false - - - true - - - - - Action Button - false - - - - 163 - 114 - Action Button - 90 - - - - - - - ../scripts/RestartApp.js + + + + false + -1 + -1 + + false + + + + 1.5.3 + + + + 6 + 130 + + true + + + + + true + true + true + true + true + Display + 400 + 72a2bf2b:1508717c835:-7839 + -1 + -1 + + + + ../scripts/RestartApp.js - true - - - - - Default - - - - 0 - - 2 - - true - 72a2bf2b:1508717c835:-772d - true - false - File Name - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 80 - 24 - Label - 48 - - - - - - Default - - - - 0 - - 1 - - true - 72a2bf2b:1508717c835:-76c0 - true - false - Write App Data to File System - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 231 - 80 - Label_1 - 12 - - - - - - Default - - - - false - 0 - $(pv_name) -$(pv_value) - 0 - - - false - ###### - 0.0 - true - 20 - false - 1 - true - loc://FileName - 0 - - - - true - Text Input - - inFileName - - - 0 - false - true - -e1e6812:1508d3700d4:-79c8 - false - - true - - true - true - false - - false - 4 - false - - - - 259 - 114 - 48 - 1.7976931348623157E308 - - - - -1.7976931348623157E308 - - Default - - +]]> + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 25 + + Action Button + 0 + + + + + true + true + false + + + + Write to File System + false + $(pv_name) +$(pv_value) + true + Action Button + 163 + 72a2bf2b:1508717c835:-77e3 + 114 + 90 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label + + + true + true + false + + + File Name + + true + 1 + true + Label + 80 + false + 72a2bf2b:1508717c835:-772d + 24 + 48 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 1 + Label_1 + + + true + true + false + + + Write App Data to File System + + true + 1 + true + Label + 231 + false + 72a2bf2b:1508717c835:-76c0 + 80 + 12 + + + + false + false + false + + + + true + + + + 1 + 1 + + true + + Default + + false + + + + 4 + 20 + 0 + false + 1.7976931348623157E308 + -1.7976931348623157E308 + false + inFileName + 0 + true + loc://FileName + + 0.0 + + + true + true + false + + + 0 + true + + ###### + $(pv_name) +$(pv_value) + false + true + Text Input + 259 + -e1e6812:1508d3700d4:-79c8 + 114 + 48 + \ No newline at end of file diff --git a/tools/commander/workspace_template/Displays/Core/EVS/DumpEventLog.opi b/tools/commander/workspace_template/Displays/Core/EVS/DumpEventLog.opi index 9309c204f..988d96785 100644 --- a/tools/commander/workspace_template/Displays/Core/EVS/DumpEventLog.opi +++ b/tools/commander/workspace_template/Displays/Core/EVS/DumpEventLog.opi @@ -1,81 +1,41 @@ - - true - - 72a2bf2b:1508717c835:-7839 - true - false - - 130 - - true - - 4.0.104.201510200439 - true - Display - - false - -1 - -1 - - - - - 400 - -1 - - 6 - true - -1 - true - - - - - - false - 0 - false - false - $(pv_name) -$(pv_value) - 0 - - true - 72a2bf2b:1508717c835:-77e3 - - Write to File System - - false - 25 - 1 - - true - true - false - - - true - - - - - Action Button - false - - - - 163 - 114 - Action Button - 90 - - - - - - - ../scripts/RestartApp.js + + + + false + -1 + -1 + + false + + + + 1.5.3 + + + + 6 + 130 + + true + + + + + true + true + true + true + true + Display + 400 + 72a2bf2b:1508717c835:-7839 + -1 + -1 + + + + ../scripts/RestartApp.js - true - - - - - Default - - - - 0 - - 2 - - true - 72a2bf2b:1508717c835:-772d - true - false - File Name - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 80 - 24 - Label - 48 - - - - - - Default - - - - 0 - - 1 - - true - 72a2bf2b:1508717c835:-76c0 - true - false - Write Event Log to File System - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 231 - 80 - Label_1 - 12 - - - - - - Default - - - - false - 0 - $(pv_name) -$(pv_value) - 0 - - - false - ###### - 0.0 - true - 20 - false - 1 - true - loc://FileName - 0 - - - - true - Text Input - - inFileName - - - 0 - false - true - -e1e6812:1508d3700d4:-79c8 - false - - true - - true - true - false - - false - 4 - false - - - - 259 - 114 - 48 - 1.7976931348623157E308 - - - - -1.7976931348623157E308 - - Default - - +]]> + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 25 + + Action Button + 0 + + + + + true + true + false + + + + Write to File System + false + $(pv_name) +$(pv_value) + true + Action Button + 163 + 72a2bf2b:1508717c835:-77e3 + 114 + 90 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label + + + true + true + false + + + File Name + + true + 1 + true + Label + 80 + false + 72a2bf2b:1508717c835:-772d + 24 + 48 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 1 + Label_1 + + + true + true + false + + + Write Event Log to File System + + true + 1 + true + Label + 231 + false + 72a2bf2b:1508717c835:-76c0 + 80 + 12 + + + + false + false + false + + + + true + + + + 1 + 1 + + true + + Default + + false + + + + 4 + 20 + 0 + false + 1.7976931348623157E308 + -1.7976931348623157E308 + false + inFileName + 0 + true + loc://FileName + + 0.0 + + + true + true + false + + + 0 + true + + ###### + $(pv_name) +$(pv_value) + false + true + Text Input + 259 + -e1e6812:1508d3700d4:-79c8 + 114 + 48 + \ No newline at end of file diff --git a/tools/commander/workspace_template/Displays/Core/EVS/EnaDisAppEventType.opi b/tools/commander/workspace_template/Displays/Core/EVS/EnaDisAppEventType.opi index c62aba226..8972b4103 100644 --- a/tools/commander/workspace_template/Displays/Core/EVS/EnaDisAppEventType.opi +++ b/tools/commander/workspace_template/Displays/Core/EVS/EnaDisAppEventType.opi @@ -1,269 +1,229 @@ - - true - - 763e00b7:150973f1dd8:-7ba3 - true - false - - 150 - - true - - 4.0.104.201510200439 - true - Display - - false - -1 - -1 - - - - - 250 - -1 - - 6 - true - -1 - true - - - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - 763e00b7:150973f1dd8:-7b43 - - - - - false - - true - 20 - 1 - - true - false - false - - true - loc://Critical - - - - - Check Box - false - - - - 100 - 18 - Critical - 60 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - 763e00b7:150973f1dd8:-7b37 - - - - - false - - true - 20 - 1 - - true - false - false - - true - loc://Error - - - - - Check Box - false - - - - 100 - 18 - Error - 79 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - 763e00b7:150973f1dd8:-7b32 - - - - - false - - true - 20 - 1 - - true - false - false - - true - loc://Information - - - - - Check Box - false - - - - 100 - 18 - Information - 98 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - 763e00b7:150973f1dd8:-7b2d - - - - - false - - true - 20 - 1 - - true - false - false - - true - loc://Debug - - - - - Check Box - false - - - - 100 - 18 - Debug - 117 - - - - - - Default - - - - false - 0 - false - false - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-7b0d - - Enable - - false - 28 - 1 - - true - true - false - - - true - - - - - Action Button - false - - - - 80 - 156 - Action Button - 60 - - - - - - - + + + + false + -1 + -1 + + false + + + + 1.5.3 + + + + 6 + 150 + + true + + + + + true + true + true + true + true + Display + 250 + 763e00b7:150973f1dd8:-7ba3 + -1 + -1 + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + Critical + loc://Critical + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 100 + 763e00b7:150973f1dd8:-7b43 + 18 + 60 + + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + Error + loc://Error + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 100 + 763e00b7:150973f1dd8:-7b37 + 18 + 79 + + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + Information + loc://Information + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 100 + 763e00b7:150973f1dd8:-7b32 + 18 + 98 + + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + Debug + loc://Debug + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 100 + 763e00b7:150973f1dd8:-7b2d + 18 + 117 + + + + + - true - - - - - Default - - - - false - 0 - false - false - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-789f - - Disable - - false - 28 - 1 - - true - true - false - - - true - - - - - Action Button - false - - - - 80 - 156 - Action Button_1 - 98 - - - - - - - +Yamcs.issueCommand(cmdString);]]> + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 28 + + Action Button + 0 + + + + + true + true + false + + + + Enable + false + $(pv_name) +$(pv_value) + true + Action Button + 80 + 763e00b7:150973f1dd8:-7b0d + 156 + 60 + + + + + - true - - - - - Default - - - - 0 - - 2 - - true - 763e00b7:150973f1dd8:-76cf - true - false - App Name - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 80 - 12 - Label - 29 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - true - 763e00b7:150973f1dd8:-76ce - - - true - 29 - 1 - - true - false - false - - false - true - loc://AppName<VString> - - - - Combo - false - - - - 134 - 102 - AppName - 24 - - - - - - CF - CI - CS - DS - EIM - HS - FM - HK - LC - MM - SCH - TO - SBN - - - Default - - +Yamcs.issueCommand(cmdString);]]> + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 28 + + Action Button_1 + 0 + + + + + true + true + false + + + + Disable + false + $(pv_name) +$(pv_value) + true + Action Button + 80 + 763e00b7:150973f1dd8:-789f + 156 + 98 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label + + + true + true + false + + + App Name + + true + 1 + true + Label + 80 + false + 763e00b7:150973f1dd8:-76cf + 12 + 29 + + + + false + false + + + + true + + + + 14 + 1 + true + + Default + + false + + + + 34 + + CF + CI + CS + DS + EIM + HS + FM + HK + LC + MM + SCH + TO + SBN + + false + AppName + loc://AppName<VString> + + + + true + false + false + + + $(pv_name) +$(pv_value) + true + Combo + 134 + 763e00b7:150973f1dd8:-76ce + 102 + 24 + \ No newline at end of file diff --git a/tools/commander/workspace_template/Displays/Core/EVS/EnaDisAppEvents.opi b/tools/commander/workspace_template/Displays/Core/EVS/EnaDisAppEvents.opi index 99a85eb9e..ba1a95796 100644 --- a/tools/commander/workspace_template/Displays/Core/EVS/EnaDisAppEvents.opi +++ b/tools/commander/workspace_template/Displays/Core/EVS/EnaDisAppEvents.opi @@ -1,81 +1,41 @@ - - true - - 763e00b7:150973f1dd8:-7ba3 - true - false - - 100 - - true - - 4.0.104.201510200439 - true - Display - - false - -1 - -1 - - - - - 250 - -1 - - 6 - true - -1 - true - - - - - - false - 0 - false - false - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-7b0d - - Enable - - false - 28 - 1 - - true - true - false - - - true - - - - - Action Button - false - - - - 80 - 42 - Action Button - 60 - - - - - - - + + + + false + -1 + -1 + + false + + + + 1.5.3 + + + + 6 + 100 + + true + + + + + true + true + true + true + true + Display + 250 + 763e00b7:150973f1dd8:-7ba3 + -1 + -1 + + + + - true - - - - - Default - - - - false - 0 - false - false - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-789f - - Disable - - false - 28 - 1 - - true - true - false - - - true - - - - - Action Button - false - - - - 80 - 137 - Action Button_1 - 60 - - - - - - - +Yamcs.issueCommand(cmdString);]]> + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 28 + + Action Button + 0 + + + + + true + true + false + + + + Enable + false + $(pv_name) +$(pv_value) + true + Action Button + 80 + 763e00b7:150973f1dd8:-7b0d + 42 + 60 + + + + + - true - - - - - Default - - - - 0 - - 2 - - true - 763e00b7:150973f1dd8:-76cf - true - false - App Name - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 80 - 12 - Label - 29 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - true - 763e00b7:150973f1dd8:-76ce - - - true - 29 - 1 - - true - false - false - - false - true - loc://AppName<VString> - - - - Combo - false - - - - 134 - 102 - AppName - 24 - - - - - - CF - CI - CS - DS - EIM - HS - FM - HK - LC - MM - SCH - TO - SBN - - - Default - - +Yamcs.issueCommand(cmdString);]]> + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 28 + + Action Button_1 + 0 + + + + + true + true + false + + + + Disable + false + $(pv_name) +$(pv_value) + true + Action Button + 80 + 763e00b7:150973f1dd8:-789f + 137 + 60 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label + + + true + true + false + + + App Name + + true + 1 + true + Label + 80 + false + 763e00b7:150973f1dd8:-76cf + 12 + 29 + + + + false + false + + + + true + + + + 14 + 1 + true + + Default + + false + + + + 34 + + CF + CI + CS + DS + EIM + HS + FM + HK + LC + MM + SCH + TO + SBN + + false + AppName + loc://AppName<VString> + + + + true + false + false + + + $(pv_name) +$(pv_value) + true + Combo + 134 + 763e00b7:150973f1dd8:-76ce + 102 + 24 + \ No newline at end of file diff --git a/tools/commander/workspace_template/Displays/Core/EVS/EnaDisEventType.opi b/tools/commander/workspace_template/Displays/Core/EVS/EnaDisEventType.opi index 9efe318f8..ca5b23387 100644 --- a/tools/commander/workspace_template/Displays/Core/EVS/EnaDisEventType.opi +++ b/tools/commander/workspace_template/Displays/Core/EVS/EnaDisEventType.opi @@ -1,269 +1,229 @@ - - true - - 763e00b7:150973f1dd8:-7ba3 - true - false - - 125 - - true - - 4.0.104.201510200439 - true - Display - - false - -1 - -1 - - - - - 250 - -1 - - 6 - true - -1 - true - - - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - 763e00b7:150973f1dd8:-7b43 - - - - - false - - true - 20 - 1 - - true - false - false - - true - loc://Critical - - - - - Check Box - false - - - - 100 - 18 - Critical - 24 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - 763e00b7:150973f1dd8:-7b37 - - - - - false - - true - 20 - 1 - - true - false - false - - true - loc://Error - - - - - Check Box - false - - - - 100 - 18 - Error - 43 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - 763e00b7:150973f1dd8:-7b32 - - - - - false - - true - 20 - 1 - - true - false - false - - true - loc://Information - - - - - Check Box - false - - - - 100 - 18 - Information - 62 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - 763e00b7:150973f1dd8:-7b2d - - - - - false - - true - 20 - 1 - - true - false - false - - true - loc://Debug - - - - - Check Box - false - - - - 100 - 18 - Debug - 81 - - - - - - Default - - - - false - 0 - false - false - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-7b0d - - Enable - - false - 28 - 1 - - true - true - false - - - true - - - - - Action Button - false - - - - 80 - 156 - Action Button - 24 - - - - - - - + + + + false + -1 + -1 + + false + + + + 1.5.3 + + + + 6 + 125 + + true + + + + + true + true + true + true + true + Display + 250 + 763e00b7:150973f1dd8:-7ba3 + -1 + -1 + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + Critical + loc://Critical + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 100 + 763e00b7:150973f1dd8:-7b43 + 18 + 24 + + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + Error + loc://Error + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 100 + 763e00b7:150973f1dd8:-7b37 + 18 + 43 + + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + Information + loc://Information + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 100 + 763e00b7:150973f1dd8:-7b32 + 18 + 62 + + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + Debug + loc://Debug + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 100 + 763e00b7:150973f1dd8:-7b2d + 18 + 81 + + + + + - true - - - - - Default - - - - false - 0 - false - false - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-789f - - Disable - - false - 28 - 1 - - true - true - false - - - true - - - - - Action Button - false - - - - 80 - 156 - Action Button_1 - 62 - - - - - - - +Yamcs.issueCommand(cmdString);]]> + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 28 + + Action Button + 0 + + + + + true + true + false + + + + Enable + false + $(pv_name) +$(pv_value) + true + Action Button + 80 + 763e00b7:150973f1dd8:-7b0d + 156 + 24 + + + + + - true - - - - - Default - - +Yamcs.issueCommand(cmdString);]]> + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 28 + + Action Button_1 + 0 + + + + + true + true + false + + + + Disable + false + $(pv_name) +$(pv_value) + true + Action Button + 80 + 763e00b7:150973f1dd8:-789f + 156 + 62 + \ No newline at end of file diff --git a/tools/commander/workspace_template/Displays/Core/EVS/EnaDisPorts.opi b/tools/commander/workspace_template/Displays/Core/EVS/EnaDisPorts.opi index 347478072..6b96f594e 100644 --- a/tools/commander/workspace_template/Displays/Core/EVS/EnaDisPorts.opi +++ b/tools/commander/workspace_template/Displays/Core/EVS/EnaDisPorts.opi @@ -1,269 +1,229 @@ - - true - - 763e00b7:150973f1dd8:-7ba3 - true - false - - 125 - - true - - 4.0.104.201510200439 - true - Display - - false - -1 - -1 - - - - - 250 - -1 - - 6 - true - -1 - true - - - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - 763e00b7:150973f1dd8:-7b43 - - - - - false - - true - 20 - 1 - - true - false - false - - true - loc://Critical - - - - - Check Box - false - - - - 100 - 18 - Critical - 24 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - 763e00b7:150973f1dd8:-7b37 - - - - - false - - true - 20 - 1 - - true - false - false - - true - loc://Error - - - - - Check Box - false - - - - 100 - 18 - Error - 43 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - 763e00b7:150973f1dd8:-7b32 - - - - - false - - true - 20 - 1 - - true - false - false - - true - loc://Information - - - - - Check Box - false - - - - 100 - 18 - Information - 62 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - 763e00b7:150973f1dd8:-7b2d - - - - - false - - true - 20 - 1 - - true - false - false - - true - loc://Debug - - - - - Check Box - false - - - - 100 - 18 - Debug - 81 - - - - - - Default - - - - false - 0 - false - false - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-7b0d - - Enable - - false - 28 - 1 - - true - true - false - - - true - - - - - Action Button - false - - - - 80 - 156 - Action Button - 24 - - - - - - - + + + + false + -1 + -1 + + false + + + + 1.5.3 + + + + 6 + 125 + + true + + + + + true + true + true + true + true + Display + 250 + 763e00b7:150973f1dd8:-7ba3 + -1 + -1 + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + Critical + loc://Critical + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 100 + 763e00b7:150973f1dd8:-7b43 + 18 + 24 + + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + Error + loc://Error + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 100 + 763e00b7:150973f1dd8:-7b37 + 18 + 43 + + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + Information + loc://Information + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 100 + 763e00b7:150973f1dd8:-7b32 + 18 + 62 + + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + Debug + loc://Debug + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 100 + 763e00b7:150973f1dd8:-7b2d + 18 + 81 + + + + + - true - - - - - Default - - - - false - 0 - false - false - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-789f - - Disable - - false - 28 - 1 - - true - true - false - - - true - - - - - Action Button - false - - - - 80 - 156 - Action Button_1 - 62 - - - - - - - +Yamcs.issueCommand(cmdString);]]> + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 28 + + Action Button + 0 + + + + + true + true + false + + + + Enable + false + $(pv_name) +$(pv_value) + true + Action Button + 80 + 763e00b7:150973f1dd8:-7b0d + 156 + 24 + + + + + - true - - - - - Default - - +Yamcs.issueCommand(cmdString);]]> + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 28 + + Action Button_1 + 0 + + + + + true + true + false + + + + Disable + false + $(pv_name) +$(pv_value) + true + Action Button + 80 + 763e00b7:150973f1dd8:-789f + 156 + 62 + \ No newline at end of file diff --git a/tools/commander/workspace_template/Displays/Core/EVS/Main.opi b/tools/commander/workspace_template/Displays/Core/EVS/Main.opi index 15aba0556..450f937fb 100644 --- a/tools/commander/workspace_template/Displays/Core/EVS/Main.opi +++ b/tools/commander/workspace_template/Displays/Core/EVS/Main.opi @@ -8,7 +8,7 @@ false - + 1.5.3 @@ -42,9 +42,9 @@ true - + - 0 + 1 1 true @@ -614,9 +614,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -666,9 +666,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -718,9 +718,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -770,9 +770,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -822,9 +822,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -874,9 +874,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -926,9 +926,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -978,9 +978,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -1030,9 +1030,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -1082,9 +1082,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -1137,11 +1137,11 @@ $(pv_value) false false - + false - + 0 1 @@ -1151,7 +1151,7 @@ $(pv_value) false - + 20 @@ -1190,11 +1190,11 @@ $(pv_value) false false - + false - + 0 1 @@ -1204,7 +1204,7 @@ $(pv_value) false - + 20 @@ -1285,7 +1285,7 @@ $(pv_value) false false - + false @@ -1340,7 +1340,7 @@ $(pv_value) false false - + false @@ -1395,7 +1395,7 @@ $(pv_value) false false - + false @@ -1449,7 +1449,7 @@ $(pv_value) false false - + false @@ -1463,7 +1463,7 @@ $(pv_value) false - + 21 @@ -1504,7 +1504,7 @@ $(pv_value) false false - + false @@ -1559,7 +1559,7 @@ $(pv_value) false false - + false @@ -1614,7 +1614,7 @@ $(pv_value) false false - + false @@ -1669,7 +1669,7 @@ $(pv_value) false false - + false @@ -1724,7 +1724,7 @@ $(pv_value) false false - + false @@ -1763,7 +1763,7 @@ $(pv_value) 187 763e00b7:150973f1dd8:-75cd 66 - 417 + 418 @@ -1779,7 +1779,7 @@ $(pv_value) false false - + false @@ -1818,7 +1818,7 @@ $(pv_value) 187 763e00b7:150973f1dd8:-75c3 66 - 442 + 443 @@ -1834,7 +1834,7 @@ $(pv_value) false false - + false @@ -1873,7 +1873,7 @@ $(pv_value) 187 763e00b7:150973f1dd8:-75b9 66 - 467 + 468 @@ -1889,7 +1889,7 @@ $(pv_value) false false - + false @@ -1928,7 +1928,7 @@ $(pv_value) 187 763e00b7:150973f1dd8:-75a4 66 - 492 + 493 @@ -1944,7 +1944,7 @@ $(pv_value) false false - + false @@ -1983,7 +1983,7 @@ $(pv_value) 187 763e00b7:150973f1dd8:-7590 66 - 517 + 518 @@ -1999,7 +1999,7 @@ $(pv_value) false false - + false @@ -2038,6 +2038,6 @@ $(pv_value) 187 763e00b7:150973f1dd8:-7586 66 - 542 + 543 \ No newline at end of file diff --git a/tools/commander/workspace_template/Displays/Core/EVS/ResetAppCounter.opi b/tools/commander/workspace_template/Displays/Core/EVS/ResetAppCounter.opi index cead4074a..4ec6ec08b 100644 --- a/tools/commander/workspace_template/Displays/Core/EVS/ResetAppCounter.opi +++ b/tools/commander/workspace_template/Displays/Core/EVS/ResetAppCounter.opi @@ -1,81 +1,41 @@ - - true - - 763e00b7:150973f1dd8:-7ba3 - true - false - - 100 - - true - - 4.0.104.201510200439 - true - Display - - false - -1 - -1 - - - - - 250 - -1 - - 6 - true - -1 - true - - - - - - false - 0 - false - false - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-7b0d - - Reset App Counter - - false - 28 - 1 - - true - true - false - - - true - - - - - Action Button - false - - - - 139 - 60 - Action Button - 60 - - - - - - - + + + + false + -1 + -1 + + false + + + + 1.5.3 + + + + 6 + 100 + + true + + + + + true + true + true + true + true + Display + 250 + 763e00b7:150973f1dd8:-7ba3 + -1 + -1 + + + + - true - - - - - Default - - - - 0 - - 2 - - true - 763e00b7:150973f1dd8:-76cf - true - false - App Name - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 80 - 12 - Label - 29 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - true - 763e00b7:150973f1dd8:-76ce - - - true - 29 - 1 - - true - false - false - - false - true - loc://AppName<VString> - - - - Combo - false - - - - 134 - 102 - AppName - 24 - - - - - - CF - CI - CS - DS - EIM - HS - FM - HK - LC - MM - SCH - TO - SBN - - - Default - - +Yamcs.issueCommand(cmdString);]]> + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 28 + + Action Button + 0 + + + + + true + true + false + + + + Reset App Counter + false + $(pv_name) +$(pv_value) + true + Action Button + 139 + 763e00b7:150973f1dd8:-7b0d + 60 + 60 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label + + + true + true + false + + + App Name + + true + 1 + true + Label + 80 + false + 763e00b7:150973f1dd8:-76cf + 12 + 29 + + + + false + false + + + + true + + + + 0 + 1 + true + + Default + + false + + + + 34 + + CF + CI + CS + DS + EIM + HS + FM + HK + LC + MM + SCH + TO + SBN + + false + AppName + loc://AppName<VString> + + + + true + false + false + + + $(pv_name) +$(pv_value) + true + Combo + 134 + 763e00b7:150973f1dd8:-76ce + 102 + 24 + \ No newline at end of file diff --git a/tools/commander/workspace_template/Displays/Core/EVS/ResetFilter.opi b/tools/commander/workspace_template/Displays/Core/EVS/ResetFilter.opi index d7065cc21..9988046bf 100644 --- a/tools/commander/workspace_template/Displays/Core/EVS/ResetFilter.opi +++ b/tools/commander/workspace_template/Displays/Core/EVS/ResetFilter.opi @@ -1,81 +1,41 @@ - - true - - 763e00b7:150973f1dd8:-7ba3 - true - false - - 140 - - true - - 4.0.104.201510200439 - true - Display - - false - -1 - -1 - - - - - 250 - -1 - - 6 - true - -1 - true - - - - - - false - 0 - false - false - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-7b0d - - Reset Event - - false - 28 - 1 - - true - true - false - - - true - - - - - Action Button - false - - - - 80 - 36 - Action Button - 96 - - - - - - - + + + + false + -1 + -1 + + false + + + + 1.5.3 + + + + 6 + 140 + + true + + + + + true + true + true + true + true + Display + 250 + 763e00b7:150973f1dd8:-7ba3 + -1 + -1 + + + + - true - - - - - Default - - - - 0 - - 2 - - true - 763e00b7:150973f1dd8:-76cf - true - false - App Name - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 80 - 12 - Label - 29 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - true - 763e00b7:150973f1dd8:-76ce - - - true - 29 - 1 - - true - false - false - - false - true - loc://AppName<VString> - - - - Combo - false - - - - 134 - 102 - AppName - 24 - - - - - - CF - CI - CS - DS - EIM - HS - FM - HK - LC - MM - SCH - TO - SBN - - - Default - - - - 0 - - 2 - - true - 763e00b7:150973f1dd8:-754e - true - false - Event ID - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 80 - 7 - Label_4 - 55 - - - - - - Default - - - - false - 0 - $(pv_name) -$(pv_value) - 0 - - - false - - 0.0 - true - 25 - false - 1 - true - loc://EventID<VDouble> - 0 - - - - false - Text Input - - EventID - - - 3 - false - true - 763e00b7:150973f1dd8:-754d - false - - false - - true - true - false - - false - 0 - false - - - - 134 - 102 - 52 - 1.7976931348623157E308 - - - - -1.7976931348623157E308 - - Default - - - - false - 0 - false - false - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-74e4 - - Reset All - - false - 28 - 1 - - true - true - false - - - true - - - - - Action Button - false - - - - 80 - 132 - Action Button_1 - 96 - - - - - - - +Yamcs.issueCommand(cmdString);]]> + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 28 + + Action Button + 0 + + + + + true + true + false + + + + Reset Event + false + $(pv_name) +$(pv_value) + true + Action Button + 80 + 763e00b7:150973f1dd8:-7b0d + 36 + 96 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label + + + true + true + false + + + App Name + + true + 1 + true + Label + 80 + false + 763e00b7:150973f1dd8:-76cf + 12 + 29 + + + + false + false + + + + true + + + + 14 + 1 + true + + Default + + false + + + + 34 + + CF + CI + CS + DS + EIM + HS + FM + HK + LC + MM + SCH + TO + SBN + + false + AppName + loc://AppName<VString> + + + + true + false + false + + + $(pv_name) +$(pv_value) + true + Combo + 134 + 763e00b7:150973f1dd8:-76ce + 102 + 24 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_4 + + + true + true + false + + + Event ID + + true + 1 + true + Label + 80 + false + 763e00b7:150973f1dd8:-754e + 7 + 55 + + + + false + false + false + + + + false + + + + 1 + 1 + + true + + Default + + false + + + + 0 + 25 + 0 + false + 1.7976931348623157E308 + -1.7976931348623157E308 + false + EventID + 0 + false + loc://EventID<VDouble> + + 0.0 + + + true + true + false + + + 0 + true + + + $(pv_name) +$(pv_value) + false + true + Text Input + 134 + 763e00b7:150973f1dd8:-754d + 102 + 60 + + + + + - true - - - - - Default - - +Yamcs.issueCommand(cmdString);]]> + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 28 + + Action Button_1 + 0 + + + + + true + true + false + + + + Reset All + false + $(pv_name) +$(pv_value) + true + Action Button + 80 + 763e00b7:150973f1dd8:-74e4 + 132 + 96 + \ No newline at end of file diff --git a/tools/commander/workspace_template/Displays/Core/EVS/SetFilter.opi b/tools/commander/workspace_template/Displays/Core/EVS/SetFilter.opi index 926d1fd6f..43d26814f 100644 --- a/tools/commander/workspace_template/Displays/Core/EVS/SetFilter.opi +++ b/tools/commander/workspace_template/Displays/Core/EVS/SetFilter.opi @@ -1,81 +1,41 @@ - - true - - 763e00b7:150973f1dd8:-7ba3 - true - false - - 160 - - true - - 4.0.104.201510200439 - true - Display - - false - -1 - -1 - - - - - 250 - -1 - - 6 - true - -1 - true - - - - - - false - 0 - false - false - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-7b0d - - Set Filter - - false - 28 - 1 - - true - true - false - - - true - - - - - Action Button - false - - - - 80 - 78 - Action Button - 120 - - - - - - - + + + + false + -1 + -1 + + false + + + + 1.5.3 + + + + 6 + 160 + + true + + + + + true + true + true + true + true + Display + 250 + 763e00b7:150973f1dd8:-7ba3 + -1 + -1 + + + + - true - - - - - Default - - - - 0 - - 2 - - true - 763e00b7:150973f1dd8:-76cf - true - false - App Name - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 80 - 12 - Label - 29 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - true - 763e00b7:150973f1dd8:-76ce - - - true - 29 - 1 - - true - false - false - - false - true - loc://AppName<VString> - - - - Combo - false - - - - 134 - 102 - AppName - 24 - - - - - - CF - CI - CS - DS - EIM - HS - FM - HK - LC - MM - SCH - TO - SBN - - - Default - - - - 0 - - 2 - - true - 763e00b7:150973f1dd8:-754e - true - false - Event ID - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 80 - 7 - Label_4 - 55 - - - - - - Default - - - - false - 0 - $(pv_name) -$(pv_value) - 0 - - - false - - 0.0 - true - 25 - false - 1 - true - loc://EventID<VDouble> - 0 - - - - false - Text Input - - EventID - - - 3 - false - true - 763e00b7:150973f1dd8:-754d - false - - false - - true - true - false - - false - 0 - false - - - - 134 - 102 - 52 - 1.7976931348623157E308 - - - - -1.7976931348623157E308 - - Default - - - - 0 - - 2 - - true - 763e00b7:150973f1dd8:-7536 - true - false - Mask - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 80 - 7 - Label_5 - 79 - - - - - - Default - - - - false - 0 - $(pv_name) -$(pv_value) - 0 - - - false - - 0.0 - true - 25 - false - 1 - true - loc://Mask<VDouble> - 0 - - - - true - Text Input - - Mask - - - 3 - false - true - 763e00b7:150973f1dd8:-7535 - false - - false - - true - true - false - - false - 3 - false - - - - 134 - 102 - 76 - 1.7976931348623157E308 - - - - -1.7976931348623157E308 - - Default - - +Yamcs.issueCommand(cmdString);]]> + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 28 + + Action Button + 0 + + + + + true + true + false + + + + Set Filter + false + $(pv_name) +$(pv_value) + true + Action Button + 80 + 763e00b7:150973f1dd8:-7b0d + 78 + 120 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label + + + true + true + false + + + App Name + + true + 1 + true + Label + 80 + false + 763e00b7:150973f1dd8:-76cf + 12 + 29 + + + + false + false + + + + true + + + + 14 + 1 + true + + Default + + false + + + + 34 + + CF + CI + CS + DS + EIM + HS + FM + HK + LC + MM + SCH + TO + SBN + + false + AppName + loc://AppName<VString> + + + + true + false + false + + + $(pv_name) +$(pv_value) + true + Combo + 134 + 763e00b7:150973f1dd8:-76ce + 102 + 24 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_4 + + + true + true + false + + + Event ID + + true + 1 + true + Label + 80 + false + 763e00b7:150973f1dd8:-754e + 7 + 55 + + + + false + false + false + + + + false + + + + 1 + 1 + + true + + Default + + false + + + + 0 + 25 + 0 + false + 1.7976931348623157E308 + -1.7976931348623157E308 + false + EventID + 0 + false + loc://EventID<VDouble> + + 0.0 + + + true + true + false + + + 0 + true + + + $(pv_name) +$(pv_value) + false + true + Text Input + 134 + 763e00b7:150973f1dd8:-754d + 102 + 60 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_5 + + + true + true + false + + + Mask + + true + 1 + true + Label + 80 + false + 763e00b7:150973f1dd8:-7536 + 7 + 79 + + + + false + false + false + + + + false + + + + 1 + 1 + + true + + Default + + false + + + + 3 + 25 + 0 + false + 1.7976931348623157E308 + -1.7976931348623157E308 + false + Mask + 0 + true + loc://Mask<VDouble> + + 0.0 + + + true + true + false + + + 0 + true + + + $(pv_name) +$(pv_value) + false + true + Text Input + 134 + 763e00b7:150973f1dd8:-7535 + 102 + 90 + \ No newline at end of file diff --git a/tools/commander/workspace_template/Displays/Core/EVS/SetLogMode.opi b/tools/commander/workspace_template/Displays/Core/EVS/SetLogMode.opi index 2ae10fed9..772d9d27d 100644 --- a/tools/commander/workspace_template/Displays/Core/EVS/SetLogMode.opi +++ b/tools/commander/workspace_template/Displays/Core/EVS/SetLogMode.opi @@ -1,81 +1,41 @@ - - true - - 72a2bf2b:1508717c835:-7839 - true - false - - 130 - - true - - 4.0.104.201510200439 - true - Display - - false - -1 - -1 - - - - - 300 - -1 - - 6 - true - -1 - true - - - - - - false - 0 - false - false - $(pv_name) -$(pv_value) - 0 - - true - 72a2bf2b:1508717c835:-77e3 - - Set - - false - 25 - 1 - - true - true - false - - - true - - - - - Action Button - false - - - - 73 - 114 - Action Button - 90 - - - - - - - ../scripts/RestartApp.js + + + + false + -1 + -1 + + false + + + + 1.5.3 + + + + 6 + 130 + + true + + + + + true + true + true + true + true + Display + 300 + 72a2bf2b:1508717c835:-7839 + -1 + -1 + + + + ../scripts/RestartApp.js - true - - - - - Default - - - - 0 - - 2 - - true - 72a2bf2b:1508717c835:-772d - true - false - Mode - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 80 - 24 - Label - 48 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - true - 72a2bf2b:1508717c835:-76fa - - - true - 29 - 1 - - true - false - false - - false - true - loc://Mode - - - - Combo - false - - - - 157 - 114 - inMode - 43 - - - - - - OVERWRITE - DISCARD - - - Default - - - - 0 - - 1 - - true - 72a2bf2b:1508717c835:-76c0 - true - false - Set Log Mode - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 231 - 40 - Label_1 - 15 - - - - - - Default - - +Yamcs.issueCommand(cmd);]]> + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 25 + + Action Button + 0 + + + + + true + true + false + + + + Set + false + $(pv_name) +$(pv_value) + true + Action Button + 73 + 72a2bf2b:1508717c835:-77e3 + 114 + 90 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label + + + true + true + false + + + Mode + + true + 1 + true + Label + 80 + false + 72a2bf2b:1508717c835:-772d + 24 + 48 + + + + false + false + + + + true + + + + 14 + 1 + true + + Default + + false + + + + 34 + + OVERWRITE + DISCARD + + false + inMode + loc://Mode + + + + true + false + false + + + $(pv_name) +$(pv_value) + true + Combo + 157 + 72a2bf2b:1508717c835:-76fa + 114 + 43 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 1 + Label_1 + + + true + true + false + + + Set Log Mode + + true + 1 + true + Label + 231 + false + 72a2bf2b:1508717c835:-76c0 + 40 + 15 + \ No newline at end of file diff --git a/tools/commander/workspace_template/Displays/Core/EVS/SetMessageFormat.opi b/tools/commander/workspace_template/Displays/Core/EVS/SetMessageFormat.opi index dc1fd337c..557fac6a7 100644 --- a/tools/commander/workspace_template/Displays/Core/EVS/SetMessageFormat.opi +++ b/tools/commander/workspace_template/Displays/Core/EVS/SetMessageFormat.opi @@ -1,81 +1,41 @@ - - true - - 72a2bf2b:1508717c835:-7839 - true - false - - 130 - - true - - 4.0.104.201510200439 - true - Display - - false - -1 - -1 - - - - - 260 - -1 - - 6 - true - -1 - true - - - - - - false - 0 - false - false - $(pv_name) -$(pv_value) - 0 - - true - 72a2bf2b:1508717c835:-77e3 - - Set - - false - 25 - 1 - - true - true - false - - - true - - - - - Action Button - false - - - - 73 - 90 - Action Button - 90 - - - - - - - ../scripts/RestartApp.js + + + + false + -1 + -1 + + false + + + + 1.5.3 + + + + 6 + 130 + + true + + + + + true + true + true + true + true + Display + 260 + 72a2bf2b:1508717c835:-7839 + -1 + -1 + + + + ../scripts/RestartApp.js - true - - - - - Default - - - - 0 - - 2 - - true - 72a2bf2b:1508717c835:-772d - true - false - Format - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 50 - 12 - Label - 47 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - true - 72a2bf2b:1508717c835:-76fa - - - true - 29 - 1 - - true - false - false - - false - true - loc://Format - - - - Combo - false - - - - 157 - 72 - inFormat - 42 - - - - - - SHORT - LONG - - - Default - - - - 0 - - 1 - - true - 72a2bf2b:1508717c835:-76c0 - true - false - Set Message Format - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 205 - 24 - Label_1 - 14 - - - - - - Default - - +Yamcs.issueCommand(cmd);]]> + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 25 + + Action Button + 0 + + + + + true + true + false + + + + Set + false + $(pv_name) +$(pv_value) + true + Action Button + 73 + 72a2bf2b:1508717c835:-77e3 + 90 + 90 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label + + + true + true + false + + + Format + + true + 1 + true + Label + 50 + false + 72a2bf2b:1508717c835:-772d + 12 + 47 + + + + false + false + + + + true + + + + 14 + 1 + true + + Default + + false + + + + 34 + + SHORT + LONG + + false + inFormat + loc://Format + + + + true + false + false + + + $(pv_name) +$(pv_value) + true + Combo + 157 + 72a2bf2b:1508717c835:-76fa + 72 + 42 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 1 + Label_1 + + + true + true + false + + + Set Message Format + + true + 1 + true + Label + 205 + false + 72a2bf2b:1508717c835:-76c0 + 24 + 14 + \ No newline at end of file diff --git a/tools/commander/workspace_template/Displays/Core/SB/DumpMapInfo.opi b/tools/commander/workspace_template/Displays/Core/SB/DumpMapInfo.opi index d0bd68df2..a0dcc2db8 100644 --- a/tools/commander/workspace_template/Displays/Core/SB/DumpMapInfo.opi +++ b/tools/commander/workspace_template/Displays/Core/SB/DumpMapInfo.opi @@ -1,81 +1,41 @@ - - true - - 72a2bf2b:1508717c835:-7839 - true - false - - 130 - - true - - 4.0.104.201510200439 - true - Display - - false - -1 - -1 - - - - - 400 - -1 - - 6 - true - -1 - true - - - - - - false - 0 - false - false - $(pv_name) -$(pv_value) - 0 - - true - 72a2bf2b:1508717c835:-77e3 - - Write to File System - - false - 25 - 1 - - true - true - false - - - true - - - - - Action Button - false - - - - 163 - 114 - Action Button - 90 - - - - - - - ../scripts/RestartApp.js + + + + false + -1 + -1 + + false + + + + 1.5.3 + + + + 6 + 130 + + true + + + + + true + true + true + true + true + Display + 400 + 72a2bf2b:1508717c835:-7839 + -1 + -1 + + + + ../scripts/RestartApp.js - true - - - - - Default - - - - 0 - - 2 - - true - 72a2bf2b:1508717c835:-772d - true - false - File Name - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 80 - 24 - Label - 48 - - - - - - Default - - - - 0 - - 1 - - true - 72a2bf2b:1508717c835:-76c0 - true - false - Write Map Info to File System - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 231 - 80 - Label_1 - 12 - - - - - - Default - - - - false - 0 - $(pv_name) -$(pv_value) - 0 - - - false - ###### - 0.0 - true - 20 - false - 1 - true - loc://FileName<VString> - 0 - - - - true - Text Input - - inFileName - - - 0 - false - true - -e1e6812:1508d3700d4:-79c8 - false - - true - - true - true - false - - false - 4 - false - - - - 259 - 114 - 48 - 1.7976931348623157E308 - - - - -1.7976931348623157E308 - - Default - - +]]> + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 25 + + Action Button + 0 + + + + + true + true + false + + + + Write to File System + false + $(pv_name) +$(pv_value) + true + Action Button + 163 + 72a2bf2b:1508717c835:-77e3 + 114 + 90 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label + + + true + true + false + + + File Name + + true + 1 + true + Label + 80 + false + 72a2bf2b:1508717c835:-772d + 24 + 48 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 1 + Label_1 + + + true + true + false + + + Write Map Info to File System + + true + 1 + true + Label + 231 + false + 72a2bf2b:1508717c835:-76c0 + 80 + 12 + + + + false + false + false + + + + true + + + + 1 + 1 + + true + + Default + + false + + + + 4 + 20 + 0 + false + 1.7976931348623157E308 + -1.7976931348623157E308 + false + inFileName + 0 + true + loc://FileName<VString> + + 0.0 + + + true + true + false + + + 0 + true + + ###### + $(pv_name) +$(pv_value) + false + true + Text Input + 259 + -e1e6812:1508d3700d4:-79c8 + 114 + 48 + \ No newline at end of file diff --git a/tools/commander/workspace_template/Displays/Core/SB/DumpPipeInfo.opi b/tools/commander/workspace_template/Displays/Core/SB/DumpPipeInfo.opi index 671fd288d..8d9eb4951 100644 --- a/tools/commander/workspace_template/Displays/Core/SB/DumpPipeInfo.opi +++ b/tools/commander/workspace_template/Displays/Core/SB/DumpPipeInfo.opi @@ -1,81 +1,41 @@ - - true - - 72a2bf2b:1508717c835:-7839 - true - false - - 130 - - true - - 4.0.104.201510200439 - true - Display - - false - -1 - -1 - - - - - 400 - -1 - - 6 - true - -1 - true - - - - - - false - 0 - false - false - $(pv_name) -$(pv_value) - 0 - - true - 72a2bf2b:1508717c835:-77e3 - - Write to File System - - false - 25 - 1 - - true - true - false - - - true - - - - - Action Button - false - - - - 163 - 114 - Action Button - 90 - - - - - - - ../scripts/RestartApp.js + + + + false + -1 + -1 + + false + + + + 1.5.3 + + + + 6 + 130 + + true + + + + + true + true + true + true + true + Display + 400 + 72a2bf2b:1508717c835:-7839 + -1 + -1 + + + + ../scripts/RestartApp.js - true - - - - - Default - - - - 0 - - 2 - - true - 72a2bf2b:1508717c835:-772d - true - false - File Name - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 80 - 24 - Label - 48 - - - - - - Default - - - - 0 - - 1 - - true - 72a2bf2b:1508717c835:-76c0 - true - false - Write Pipe Info to File System - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 231 - 80 - Label_1 - 12 - - - - - - Default - - - - false - 0 - $(pv_name) -$(pv_value) - 0 - - - false - ###### - 0.0 - true - 20 - false - 1 - true - loc://FileName<VString> - 0 - - - - true - Text Input - - inFileName - - - 0 - false - true - -e1e6812:1508d3700d4:-79c8 - false - - true - - true - true - false - - false - 4 - false - - - - 259 - 114 - 48 - 1.7976931348623157E308 - - - - -1.7976931348623157E308 - - Default - - +]]> + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 25 + + Action Button + 0 + + + + + true + true + false + + + + Write to File System + false + $(pv_name) +$(pv_value) + true + Action Button + 163 + 72a2bf2b:1508717c835:-77e3 + 114 + 90 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label + + + true + true + false + + + File Name + + true + 1 + true + Label + 80 + false + 72a2bf2b:1508717c835:-772d + 24 + 48 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 1 + Label_1 + + + true + true + false + + + Write Pipe Info to File System + + true + 1 + true + Label + 231 + false + 72a2bf2b:1508717c835:-76c0 + 80 + 12 + + + + false + false + false + + + + true + + + + 0 + 1 + + true + + Default + + false + + + + 4 + 20 + 0 + false + 1.7976931348623157E308 + -1.7976931348623157E308 + false + inFileName + 0 + true + loc://FileName<VString> + + 0.0 + + + true + true + false + + + 0 + true + + ###### + $(pv_name) +$(pv_value) + false + true + Text Input + 259 + -e1e6812:1508d3700d4:-79c8 + 114 + 48 + \ No newline at end of file diff --git a/tools/commander/workspace_template/Displays/Core/SB/DumpRoutingInfo.opi b/tools/commander/workspace_template/Displays/Core/SB/DumpRoutingInfo.opi index 258a1aa91..0001cd6a0 100644 --- a/tools/commander/workspace_template/Displays/Core/SB/DumpRoutingInfo.opi +++ b/tools/commander/workspace_template/Displays/Core/SB/DumpRoutingInfo.opi @@ -1,81 +1,41 @@ - - true - - 763e00b7:150973f1dd8:-7ba3 - true - false - - 130 - - true - - 4.0.104.201510200439 - true - Display - - false - -1 - -1 - - - - - 400 - -1 - - 6 - true - -1 - true - - - - - - false - 0 - false - false - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-468f - - Write to File System - - false - 25 - 1 - - true - true - false - - - true - - - - - Action Button - false - - - - 163 - 106 - Action Button - 90 - - - - - - - ../scripts/RestartApp.js + + + + false + -1 + -1 + + false + + + + 1.5.3 + + + + 6 + 130 + + true + + + + + true + true + true + true + true + Display + 400 + 763e00b7:150973f1dd8:-7ba3 + -1 + -1 + + + + ../scripts/RestartApp.js - true - - - - - Default - - - - 0 - - 2 - - true - 763e00b7:150973f1dd8:-468e - true - false - File Name - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 80 - 16 - Label - 48 - - - - - - Default - - - - 0 - - 1 - - true - 763e00b7:150973f1dd8:-468d - true - false - Write Routing Data to File System - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 231 - 72 - Label_1 - 12 - - - - - - Default - - - - false - 0 - $(pv_name) -$(pv_value) - 0 - - - false - ###### - 0.0 - true - 20 - false - 1 - true - loc://FileName<VString> - 0 - - - - true - Text Input - - inFileName - - - 0 - false - true - 763e00b7:150973f1dd8:-468c - false - - true - - true - true - false - - false - 4 - false - - - - 259 - 106 - 48 - 1.7976931348623157E308 - - - - -1.7976931348623157E308 - - Default - - +]]> + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 25 + + Action Button + 0 + + + + + true + true + false + + + + Write to File System + false + $(pv_name) +$(pv_value) + true + Action Button + 163 + 763e00b7:150973f1dd8:-468f + 106 + 90 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label + + + true + true + false + + + File Name + + true + 1 + true + Label + 80 + false + 763e00b7:150973f1dd8:-468e + 16 + 48 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 1 + Label_1 + + + true + true + false + + + Write Routing Data to File System + + true + 1 + true + Label + 231 + false + 763e00b7:150973f1dd8:-468d + 72 + 12 + + + + false + false + false + + + + true + + + + 1 + 1 + + true + + Default + + false + + + + 4 + 20 + 0 + false + 1.7976931348623157E308 + -1.7976931348623157E308 + false + inFileName + 0 + true + loc://FileName<VString> + + 0.0 + + + true + true + false + + + 0 + true + + ###### + $(pv_name) +$(pv_value) + false + true + Text Input + 259 + 763e00b7:150973f1dd8:-468c + 106 + 48 + \ No newline at end of file diff --git a/tools/commander/workspace_template/Displays/Core/SB/EnaDisRoutes.opi b/tools/commander/workspace_template/Displays/Core/SB/EnaDisRoutes.opi index 60deca509..49dd70778 100644 --- a/tools/commander/workspace_template/Displays/Core/SB/EnaDisRoutes.opi +++ b/tools/commander/workspace_template/Displays/Core/SB/EnaDisRoutes.opi @@ -1,81 +1,41 @@ - - true - - 72a2bf2b:1508717c835:-7d33 - true - false - - 140 - - true - - 4.0.104.201510200439 - true - Display - - false - -1 - -1 - - - - - 200 - -1 - - 6 - true - -1 - true - - - - - - false - 0 - false - false - $(pv_name) -$(pv_value) - 0 - - true - 72a2bf2b:1508717c835:-7cf7 - - Enable - - false - 24 - 1 - - true - true - false - - - true - - - - - Action Button - false - - - - 61 - 30 - Action Button - 96 - - - - - - - ../scripts/QueryOneApp.js + + + + false + -1 + -1 + + false + + + + 1.5.3 + + + + 6 + 140 + + true + + + + + true + true + true + true + true + Display + 200 + 72a2bf2b:1508717c835:-7d33 + -1 + -1 + + + + ../scripts/QueryOneApp.js - true - - - - - Default - - - - 0 - - 2 - - true - 72a2bf2b:1508717c835:-7c63 - true - false - Msg ID - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 50 - 12 - Label_3 - 19 - - - - - - Default - - - - false - 0 - $(pv_name) -$(pv_value) - 0 - - - false - - 0.0 - true - 25 - false - 1 - true - loc://MsgID<VDouble> - 0 - - - - false - Text Input - - MsgID - - - 3 - false - true - 35ebaa52:1509cf6a868:-7c52 - false - - false - - true - true - false - - false - 1 - false - - - - 100 - 72 - 16 - 65535.0 - - - - 0.0 - - Default - - - - 0 - - 2 - - true - 35ebaa52:1509cf6a868:-7c4a - true - false - Pipe ID - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 50 - 12 - Label_1 - 51 - - - - - - Default - - - - false - 0 - $(pv_name) -$(pv_value) - 0 - - - false - - 0.0 - true - 25 - false - 1 - true - loc://PipeID<VDouble> - 0 - - - - false - Text Input - - PipeID - - - 3 - false - true - 35ebaa52:1509cf6a868:-7c40 - false - - false - - true - true - false - - false - 1 - false - - - - 100 - 72 - 48 - 255.0 - - - - 0.0 - - Default - - +Yamcs.issueCommand(cmd);]]> + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 24 + + Action Button + 0 + + + + + true + true + false + + + + Enable + false + $(pv_name) +$(pv_value) + true + Action Button + 61 + 72a2bf2b:1508717c835:-7cf7 + 30 + 96 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_3 + + + true + true + false + + + Msg ID + + true + 1 + true + Label + 50 + false + 72a2bf2b:1508717c835:-7c63 + 12 + 19 + + + + false + false + false + + + + false + + + + 1 + 1 + + true + + Default + + false + + + + 1 + 25 + 0 + false + 65535.0 + 0.0 + false + MsgID + 0 + false + loc://MsgID<VDouble> + + 0.0 + + + true + true + false + + + 0 + true + + + $(pv_name) +$(pv_value) + false + true + Text Input + 100 + 35ebaa52:1509cf6a868:-7c52 + 72 + 16 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_1 + + + true + true + false + + + Pipe ID + + true + 1 + true + Label + 50 + false + 35ebaa52:1509cf6a868:-7c4a + 12 + 51 + + + + false + false + false + + + + false + + + + 1 + 1 + + true + + Default + + false + + + + 1 + 25 + 0 + false + 255.0 + 0.0 + false + PipeID + 0 + false + loc://PipeID<VDouble> + + 0.0 + + + true + true + false + + + 0 + true + + + $(pv_name) +$(pv_value) + false + true + Text Input + 100 + 35ebaa52:1509cf6a868:-7c40 + 72 + 48 + \ No newline at end of file diff --git a/tools/commander/workspace_template/Displays/Core/SB/Main.opi b/tools/commander/workspace_template/Displays/Core/SB/Main.opi index 06f9c14f4..6091935e2 100644 --- a/tools/commander/workspace_template/Displays/Core/SB/Main.opi +++ b/tools/commander/workspace_template/Displays/Core/SB/Main.opi @@ -8,7 +8,7 @@ false - + 1.5.3 @@ -42,9 +42,9 @@ true - + - 0 + 1 1 true @@ -614,9 +614,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -666,9 +666,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -718,9 +718,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -770,9 +770,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -822,9 +822,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -874,9 +874,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -926,9 +926,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -978,9 +978,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -1030,9 +1030,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -1082,9 +1082,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -1137,7 +1137,7 @@ $(pv_value) false false - + false @@ -1151,7 +1151,7 @@ $(pv_value) false - + 20 @@ -1190,7 +1190,7 @@ $(pv_value) false false - + false @@ -1204,7 +1204,7 @@ $(pv_value) false - + 20 @@ -1285,7 +1285,7 @@ $(pv_value) false false - + false @@ -1333,14 +1333,14 @@ $(pv_value) true - 8 + 0 false false - + false @@ -1388,14 +1388,14 @@ $(pv_value) true - 8 + 0 false false - + false @@ -1439,18 +1439,18 @@ $(pv_value) - DumpMapInfo.opi + /Displays/Core/SB/DumpMapInfo.opi true - 8 + 0 false false - + false @@ -1541,9 +1541,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -1633,9 +1633,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -1682,14 +1682,14 @@ $(pv_value) true - 8 + 0 false false - + false diff --git a/tools/commander/workspace_template/Displays/Core/SB/ViewStatistics.opi b/tools/commander/workspace_template/Displays/Core/SB/ViewStatistics.opi index fc7a9433a..472a01e04 100644 --- a/tools/commander/workspace_template/Displays/Core/SB/ViewStatistics.opi +++ b/tools/commander/workspace_template/Displays/Core/SB/ViewStatistics.opi @@ -1,17183 +1,17183 @@ - - true - - 763e00b7:150973f1dd8:-7ba3 - true - false - - 1930 - - true - - 4.0.104.201510200439 - true - Display - - false - -1 - -1 - - - - - 300 - -1 - - 6 - true - -1 - true - - - - - - false - 0 - false - false - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-7b0d - - Telemeter Info - - false - 28 - 1 - - true - true - false - - - true - - - - - Action Button - false - - - - 133 - 78 - Action Button - 18 - - - - - - - + + + + false + -1 + -1 + + false + + + + 1.5.3 + + + + 6 + 1930 + + true + + + + + true + true + true + true + true + Display + 300 + 763e00b7:150973f1dd8:-7ba3 + -1 + -1 + + + + - true - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-7257 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/MsgIdsInUse - 1 - - - - false - Text Update - false - false - 1 - - - - 100 - 180 - Text Update - 66 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-7256 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PeakMsgIdsInUse - 1 - - - - false - Text Update - false - false - 1 - - - - 100 - 180 - Text Update_1 - 85 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-7255 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/MaxMsgIdsAllowed - 1 - - - - false - Text Update - false - false - 1 - - - - 100 - 180 - Text Update_2 - 104 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-7254 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipesInUse - 1 - - - - false - Text Update - false - false - 1 - - - - 100 - 180 - Text Update_3 - 123 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-7253 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PeakPipesInUse - 1 - - - - false - Text Update - false - false - 1 - - - - 100 - 180 - Text Update_4 - 142 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-7252 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/MaxPipesAllowed - 1 - - - - false - Text Update - false - false - 1 - - - - 100 - 180 - Text Update_5 - 161 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-7251 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/StatsMemInUse - 1 - - - - false - Text Update - false - false - 1 - - - - 100 - 180 - Text Update_6 - 180 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-7250 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PeakMemInUse - 1 - - - - false - Text Update - false - false - 1 - - - - 100 - 180 - Text Update_7 - 199 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-724f - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/MaxMemAllowed - 1 - - - - false - Text Update - false - false - 1 - - - - 100 - 180 - Text Update_8 - 218 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-724e - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/SubscriptionsInUse - 1 - - - - false - Text Update - false - false - 1 - - - - 100 - 180 - Text Update_9 - 237 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-724d - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PeakSubscriptionsInUse - 1 - - - - false - Text Update - false - false - 1 - - - - 100 - 180 - Text Update_10 - 256 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-724c - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/MaxSubscriptionsAllowed - 1 - - - - false - Text Update - false - false - 1 - - - - 100 - 180 - Text Update_11 - 275 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-724b - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/SBBuffersInUse - 1 - - - - false - Text Update - false - false - 1 - - - - 100 - 180 - Text Update_12 - 294 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-724a - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PeakSBBuffersInUse - 1 - - - - false - Text Update - false - false - 1 - - - - 100 - 180 - Text Update_13 - 313 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-7249 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/MaxPipeDepthAllowed - 1 - - - - false - Text Update - false - false - 1 - - - - 100 - 180 - Text Update_14 - 332 - - - - - - Default - - - - 0 - - 2 - - true - 763e00b7:150973f1dd8:-71e4 - true - false - Msg IDs in Use - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 116 - 54 - Label - 66 - - - - - - Default - - - - 0 - - 2 - - true - 763e00b7:150973f1dd8:-71d9 - true - false - Peak Msg IDs in Use - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 161 - 10 - Label_1 - 85 - - - - - - Default - - - - 0 - - 2 - - true - 763e00b7:150973f1dd8:-71d1 - true - false - Max Msg IDs Allowed - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 161 - 10 - Label_2 - 104 - - - - - - Default - - - - 0 - - 2 - - true - 763e00b7:150973f1dd8:-71c5 - true - false - Pipes in Use - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 161 - 10 - Label_3 - 123 - - - - - - Default - - - - 0 - - 2 - - true - 763e00b7:150973f1dd8:-71be - true - false - Peak Pipes in Use - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 161 - 10 - Label_4 - 142 - - - - - - Default - - - - 0 - - 2 - - true - 763e00b7:150973f1dd8:-71b3 - true - false - Max Pipes Allowed - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 161 - 10 - Label_5 - 161 - - - - - - Default - - - - 0 - - 2 - - true - 763e00b7:150973f1dd8:-71ac - true - false - Mem in Use - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 161 - 10 - Label_6 - 180 - - - - - - Default - - - - 0 - - 2 - - true - 763e00b7:150973f1dd8:-71a5 - true - false - Peak Mem in Use - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 161 - 10 - Label_7 - 199 - - - - - - Default - - - - 0 - - 2 - - true - 763e00b7:150973f1dd8:-719e - true - false - Max Mem Allowed - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 161 - 10 - Label_8 - 218 - - - - - - Default - - - - 0 - - 2 - - true - 763e00b7:150973f1dd8:-7197 - true - false - Subscriptions in Use - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 161 - 10 - Label_9 - 237 - - - - - - Default - - - - 0 - - 2 - - true - 763e00b7:150973f1dd8:-7190 - true - false - Peak Subscriptions in Use - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 161 - 10 - Label_10 - 256 - - - - - - Default - - - - 0 - - 2 - - true - 763e00b7:150973f1dd8:-7189 - true - false - Max Subscriptions Allowed - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 161 - 10 - Label_11 - 275 - - - - - - Default - - - - 0 - - 2 - - true - 763e00b7:150973f1dd8:-7182 - true - false - SB Buffers in Use - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 161 - 10 - Label_12 - 294 - - - - - - Default - - - - 0 - - 2 - - true - 763e00b7:150973f1dd8:-717b - true - false - Peak SB Buffers in Use - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 161 - 10 - Label_13 - 313 - - - - - - Default - - - - 0 - - 2 - - true - 763e00b7:150973f1dd8:-7174 - true - false - Max Pipe Depth Allowed - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 161 - 10 - Label_14 - 332 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-6f45 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_0_PipeID - 1 - - - - false - Text Update - false - false - 1 - - - - 47 - 97 - Text Update_15 - 390 - - - - - - Default - - - - 0 - - 2 - - true - 763e00b7:150973f1dd8:-6f3b - true - false - 0 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 28 - 12 - Label_15 - 390 - - - - - - Default - - - - 0 - - 2 - - true - 763e00b7:150973f1dd8:-6f2d - true - false - Pipe ID - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 47 - 97 - Label_16 - 371 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-6f1f - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_0_Depth - 1 - - - - false - Text Update - false - false - 1 - - - - 53 - 143 - Text Update_16 - 390 - - - - - - Default - - - - 0 - - 2 - - true - 763e00b7:150973f1dd8:-6f17 - true - false - Depth - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 47 - 143 - Label_17 - 371 - - - - - - Default - - - - 0 - - 2 - - true - 763e00b7:150973f1dd8:-6efe - true - false - In Use - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 47 - 39 - Label_18 - 371 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - 763e00b7:150973f1dd8:-6ec7 - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_sb/PipeDepthStats_0_InUse - - - - - Check Box - false - - - - 21 - 58 - Check Box - 390 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-6eb9 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_0_PeakInUse - 1 - - - - false - Text Update - false - false - 1 - - - - 85 - 195 - Text Update_17 - 390 - - - - - - Default - - - - 0 - - 2 - - true - 763e00b7:150973f1dd8:-6eb8 - true - false - Peak in Use - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 79 - 190 - Label_19 - 371 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-6dea - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_1_PipeID - 1 - - - - false - Text Update - false - false - 1 - - - - 47 - 97 - Text Update_19 - 409 - - - - - - Default - - - - 0 - - 2 - - true - 763e00b7:150973f1dd8:-6de9 - true - false - 1 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 28 - 12 - Label_20 - 409 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-6de8 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_1_Depth - 1 - - - - false - Text Update - false - false - 1 - - - - 53 - 143 - Text Update_20 - 409 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - 763e00b7:150973f1dd8:-6de7 - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_sb/PipeDepthStats_1_InUse - - - - - Check Box - false - - - - 21 - 58 - Check Box_1 - 409 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-6de6 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_1_PeakInUse - 1 - - - - false - Text Update - false - false - 1 - - - - 85 - 195 - Text Update_21 - 409 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-6dd6 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_2_PipeID - 1 - - - - false - Text Update - false - false - 1 - - - - 47 - 97 - Text Update_23 - 428 - - - - - - Default - - - - 0 - - 2 - - true - 763e00b7:150973f1dd8:-6dd5 - true - false - 2 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 28 - 12 - Label_21 - 428 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-6dd4 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_2_Depth - 1 - - - - false - Text Update - false - false - 1 - - - - 53 - 143 - Text Update_24 - 428 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - 763e00b7:150973f1dd8:-6dd3 - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_sb/PipeDepthStats_2_InUse - - - - - Check Box - false - - - - 21 - 58 - Check Box_2 - 428 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-6dd2 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_2_PeakInUse - 1 - - - - false - Text Update - false - false - 1 - - - - 85 - 195 - Text Update_25 - 428 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-6dc2 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_3_PipeID - 1 - - - - false - Text Update - false - false - 1 - - - - 47 - 97 - Text Update_27 - 447 - - - - - - Default - - - - 0 - - 2 - - true - 763e00b7:150973f1dd8:-6dc1 - true - false - 3 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 28 - 12 - Label_22 - 447 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-6dc0 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_3_Depth - 1 - - - - false - Text Update - false - false - 1 - - - - 53 - 143 - Text Update_28 - 447 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - 763e00b7:150973f1dd8:-6dbf - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_sb/PipeDepthStats_3_InUse - - - - - Check Box - false - - - - 21 - 58 - Check Box_3 - 447 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-6dbe - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_3_PeakInUse - 1 - - - - false - Text Update - false - false - 1 - - - - 85 - 195 - Text Update_29 - 447 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-6dae - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_4_PipeID - 1 - - - - false - Text Update - false - false - 1 - - - - 47 - 97 - Text Update_31 - 466 - - - - - - Default - - - - 0 - - 2 - - true - 763e00b7:150973f1dd8:-6dad - true - false - 4 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 28 - 12 - Label_23 - 466 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-6dac - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_4_Depth - 1 - - - - false - Text Update - false - false - 1 - - - - 53 - 143 - Text Update_32 - 466 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - 763e00b7:150973f1dd8:-6dab - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_sb/PipeDepthStats_4_InUse - - - - - Check Box - false - - - - 21 - 58 - Check Box_4 - 466 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-6daa - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_4_PeakInUse - 1 - - - - false - Text Update - false - false - 1 - - - - 85 - 195 - Text Update_33 - 466 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-6d9a - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_5_PipeID - 1 - - - - false - Text Update - false - false - 1 - - - - 47 - 97 - Text Update_35 - 485 - - - - - - Default - - - - 0 - - 2 - - true - 763e00b7:150973f1dd8:-6d99 - true - false - 5 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 28 - 12 - Label_24 - 485 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-6d98 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_5_Depth - 1 - - - - false - Text Update - false - false - 1 - - - - 53 - 143 - Text Update_36 - 485 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - 763e00b7:150973f1dd8:-6d97 - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_sb/PipeDepthStats_5_InUse - - - - - Check Box - false - - - - 21 - 58 - Check Box_5 - 485 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-6d96 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_5_PeakInUse - 1 - - - - false - Text Update - false - false - 1 - - - - 85 - 195 - Text Update_37 - 485 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-6d86 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_6_PipeID - 1 - - - - false - Text Update - false - false - 1 - - - - 47 - 97 - Text Update_39 - 504 - - - - - - Default - - - - 0 - - 2 - - true - 763e00b7:150973f1dd8:-6d85 - true - false - 6 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 28 - 12 - Label_25 - 504 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-6d84 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_6_Depth - 1 - - - - false - Text Update - false - false - 1 - - - - 53 - 143 - Text Update_40 - 504 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - 763e00b7:150973f1dd8:-6d83 - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_sb/PipeDepthStats_6_InUse - - - - - Check Box - false - - - - 21 - 58 - Check Box_6 - 504 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-6d82 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_6_PeakInUse - 1 - - - - false - Text Update - false - false - 1 - - - - 85 - 195 - Text Update_41 - 504 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-6d72 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_7_PipeID - 1 - - - - false - Text Update - false - false - 1 - - - - 47 - 97 - Text Update_43 - 523 - - - - - - Default - - - - 0 - - 2 - - true - 763e00b7:150973f1dd8:-6d71 - true - false - 7 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 28 - 12 - Label_26 - 523 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-6d70 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_7_Depth - 1 - - - - false - Text Update - false - false - 1 - - - - 53 - 143 - Text Update_44 - 523 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - 763e00b7:150973f1dd8:-6d6f - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_sb/PipeDepthStats_7_InUse - - - - - Check Box - false - - - - 21 - 58 - Check Box_7 - 523 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-6d6e - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_7_PeakInUse - 1 - - - - false - Text Update - false - false - 1 - - - - 85 - 195 - Text Update_45 - 523 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-6d5e - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_8_PipeID - 1 - - - - false - Text Update - false - false - 1 - - - - 47 - 97 - Text Update_47 - 542 - - - - - - Default - - - - 0 - - 2 - - true - 763e00b7:150973f1dd8:-6d5d - true - false - 8 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 28 - 12 - Label_27 - 542 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-6d5c - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_8_Depth - 1 - - - - false - Text Update - false - false - 1 - - - - 53 - 143 - Text Update_48 - 542 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - 763e00b7:150973f1dd8:-6d5b - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_sb/PipeDepthStats_8_InUse - - - - - Check Box - false - - - - 21 - 58 - Check Box_8 - 542 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-6d5a - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_8_PeakInUse - 1 - - - - false - Text Update - false - false - 1 - - - - 85 - 195 - Text Update_49 - 542 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-6d4a - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_9_PipeID - 1 - - - - false - Text Update - false - false - 1 - - - - 47 - 97 - Text Update_51 - 561 - - - - - - Default - - - - 0 - - 2 - - true - 763e00b7:150973f1dd8:-6d49 - true - false - 9 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 28 - 12 - Label_28 - 561 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-6d48 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_9_Depth - 1 - - - - false - Text Update - false - false - 1 - - - - 53 - 143 - Text Update_52 - 561 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - 763e00b7:150973f1dd8:-6d47 - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_sb/PipeDepthStats_9_InUse - - - - - Check Box - false - - - - 21 - 58 - Check Box_9 - 561 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-6d46 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_9_PeakInUse - 1 - - - - false - Text Update - false - false - 1 - - - - 85 - 195 - Text Update_53 - 561 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-6a36 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_10_PipeID - 1 - - - - false - Text Update - false - false - 1 - - - - 47 - 97 - Text Update_54 - 580 - - - - - - Default - - - - 0 - - 2 - - true - 763e00b7:150973f1dd8:-6a35 - true - false - 10 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 28 - 12 - Label_29 - 580 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-6a34 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_10_Depth - 1 - - - - false - Text Update - false - false - 1 - - - - 53 - 143 - Text Update_55 - 580 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - 763e00b7:150973f1dd8:-6a33 - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_sb/PipeDepthStats_10_InUse - - - - - Check Box - false - - - - 21 - 58 - Check Box_10 - 580 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-6a32 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_10_PeakInUse - 1 - - - - false - Text Update - false - false - 1 - - - - 85 - 195 - Text Update_56 - 580 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-6a31 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_11_PipeID - 1 - - - - false - Text Update - false - false - 1 - - - - 47 - 97 - Text Update_57 - 599 - - - - - - Default - - - - 0 - - 2 - - true - 763e00b7:150973f1dd8:-6a30 - true - false - 11 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 28 - 12 - Label_30 - 599 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-6a2f - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_11_Depth - 1 - - - - false - Text Update - false - false - 1 - - - - 53 - 143 - Text Update_58 - 599 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - 763e00b7:150973f1dd8:-6a2e - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_sb/PipeDepthStats_11_InUse - - - - - Check Box - false - - - - 21 - 58 - Check Box_11 - 599 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-6a2d - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_11_PeakInUse - 1 - - - - false - Text Update - false - false - 1 - - - - 85 - 195 - Text Update_59 - 599 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-6a2c - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_12_PipeID - 1 - - - - false - Text Update - false - false - 1 - - - - 47 - 97 - Text Update_60 - 618 - - - - - - Default - - - - 0 - - 2 - - true - 763e00b7:150973f1dd8:-6a2b - true - false - 12 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 28 - 12 - Label_31 - 618 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-6a2a - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_12_Depth - 1 - - - - false - Text Update - false - false - 1 - - - - 53 - 143 - Text Update_61 - 618 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - 763e00b7:150973f1dd8:-6a29 - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_sb/PipeDepthStats_12_InUse - - - - - Check Box - false - - - - 21 - 58 - Check Box_12 - 618 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-6a28 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_12_PeakInUse - 1 - - - - false - Text Update - false - false - 1 - - - - 85 - 195 - Text Update_62 - 618 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-6a27 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_13_PipeID - 1 - - - - false - Text Update - false - false - 1 - - - - 47 - 97 - Text Update_63 - 637 - - - - - - Default - - - - 0 - - 2 - - true - 763e00b7:150973f1dd8:-6a26 - true - false - 13 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 28 - 12 - Label_32 - 637 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-6a25 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_13_Depth - 1 - - - - false - Text Update - false - false - 1 - - - - 53 - 143 - Text Update_64 - 637 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - 763e00b7:150973f1dd8:-6a24 - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_sb/PipeDepthStats_13_InUse - - - - - Check Box - false - - - - 21 - 58 - Check Box_13 - 637 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-6a23 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_13_PeakInUse - 1 - - - - false - Text Update - false - false - 1 - - - - 85 - 195 - Text Update_65 - 637 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-6a22 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_14_PipeID - 1 - - - - false - Text Update - false - false - 1 - - - - 47 - 97 - Text Update_66 - 656 - - - - - - Default - - - - 0 - - 2 - - true - 763e00b7:150973f1dd8:-6a21 - true - false - 14 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 28 - 12 - Label_33 - 656 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-6a20 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_14_Depth - 1 - - - - false - Text Update - false - false - 1 - - - - 53 - 143 - Text Update_67 - 656 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - 763e00b7:150973f1dd8:-6a1f - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_sb/PipeDepthStats_14_InUse - - - - - Check Box - false - - - - 21 - 58 - Check Box_14 - 656 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-6a1e - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_14_PeakInUse - 1 - - - - false - Text Update - false - false - 1 - - - - 85 - 195 - Text Update_68 - 656 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-6a1d - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_15_PipeID - 1 - - - - false - Text Update - false - false - 1 - - - - 47 - 97 - Text Update_69 - 675 - - - - - - Default - - - - 0 - - 2 - - true - 763e00b7:150973f1dd8:-6a1c - true - false - 15 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 28 - 12 - Label_34 - 675 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-6a1b - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_15_Depth - 1 - - - - false - Text Update - false - false - 1 - - - - 53 - 143 - Text Update_70 - 675 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - 763e00b7:150973f1dd8:-6a1a - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_sb/PipeDepthStats_15_InUse - - - - - Check Box - false - - - - 21 - 58 - Check Box_15 - 675 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-6a19 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_15_PeakInUse - 1 - - - - false - Text Update - false - false - 1 - - - - 85 - 195 - Text Update_71 - 675 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-6a18 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_16_PipeID - 1 - - - - false - Text Update - false - false - 1 - - - - 47 - 97 - Text Update_72 - 694 - - - - - - Default - - - - 0 - - 2 - - true - 763e00b7:150973f1dd8:-6a17 - true - false - 16 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 28 - 12 - Label_35 - 694 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-6a16 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_16_Depth - 1 - - - - false - Text Update - false - false - 1 - - - - 53 - 143 - Text Update_73 - 694 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - 763e00b7:150973f1dd8:-6a15 - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_sb/PipeDepthStats_16_InUse - - - - - Check Box - false - - - - 21 - 58 - Check Box_16 - 694 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-6a14 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_16_PeakInUse - 1 - - - - false - Text Update - false - false - 1 - - - - 85 - 195 - Text Update_74 - 694 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-6a13 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_17_PipeID - 1 - - - - false - Text Update - false - false - 1 - - - - 47 - 97 - Text Update_75 - 713 - - - - - - Default - - - - 0 - - 2 - - true - 763e00b7:150973f1dd8:-6a12 - true - false - 17 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 28 - 12 - Label_36 - 713 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-6a11 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_17_Depth - 1 - - - - false - Text Update - false - false - 1 - - - - 53 - 143 - Text Update_76 - 713 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - 763e00b7:150973f1dd8:-6a10 - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_sb/PipeDepthStats_17_InUse - - - - - Check Box - false - - - - 21 - 58 - Check Box_17 - 713 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-6a0f - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_17_PeakInUse - 1 - - - - false - Text Update - false - false - 1 - - - - 85 - 195 - Text Update_77 - 713 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-6a0e - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_18_PipeID - 1 - - - - false - Text Update - false - false - 1 - - - - 47 - 97 - Text Update_78 - 732 - - - - - - Default - - - - 0 - - 2 - - true - 763e00b7:150973f1dd8:-6a0d - true - false - 18 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 28 - 12 - Label_37 - 732 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-6a0c - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_18_Depth - 1 - - - - false - Text Update - false - false - 1 - - - - 53 - 143 - Text Update_79 - 732 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - 763e00b7:150973f1dd8:-6a0b - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_sb/PipeDepthStats_18_InUse - - - - - Check Box - false - - - - 21 - 58 - Check Box_18 - 732 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-6a0a - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_18_PeakInUse - 1 - - - - false - Text Update - false - false - 1 - - - - 85 - 195 - Text Update_80 - 732 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-6a09 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_19_PipeID - 1 - - - - false - Text Update - false - false - 1 - - - - 47 - 97 - Text Update_81 - 751 - - - - - - Default - - - - 0 - - 2 - - true - 763e00b7:150973f1dd8:-6a08 - true - false - 19 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 28 - 12 - Label_38 - 751 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-6a07 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_19_Depth - 1 - - - - false - Text Update - false - false - 1 - - - - 53 - 143 - Text Update_82 - 751 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - 763e00b7:150973f1dd8:-6a06 - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_sb/PipeDepthStats_19_InUse - - - - - Check Box - false - - - - 21 - 58 - Check Box_19 - 751 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-6a05 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_19_PeakInUse - 1 - - - - false - Text Update - false - false - 1 - - - - 85 - 195 - Text Update_83 - 751 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-696b - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_20_PipeID - 1 - - - - false - Text Update - false - false - 1 - - - - 47 - 97 - Text Update_84 - 770 - - - - - - Default - - - - 0 - - 2 - - true - 763e00b7:150973f1dd8:-696a - true - false - 20 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 28 - 12 - Label_39 - 770 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-6969 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_20_Depth - 1 - - - - false - Text Update - false - false - 1 - - - - 53 - 143 - Text Update_85 - 770 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - 763e00b7:150973f1dd8:-6968 - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_sb/PipeDepthStats_20_InUse - - - - - Check Box - false - - - - 21 - 58 - Check Box_20 - 770 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-6967 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_20_PeakInUse - 1 - - - - false - Text Update - false - false - 1 - - - - 85 - 195 - Text Update_86 - 770 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-6966 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_21_PipeID - 1 - - - - false - Text Update - false - false - 1 - - - - 47 - 97 - Text Update_87 - 789 - - - - - - Default - - - - 0 - - 2 - - true - 763e00b7:150973f1dd8:-6965 - true - false - 21 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 28 - 12 - Label_40 - 789 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-6964 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_21_Depth - 1 - - - - false - Text Update - false - false - 1 - - - - 53 - 143 - Text Update_88 - 789 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - 763e00b7:150973f1dd8:-6963 - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_sb/PipeDepthStats_21_InUse - - - - - Check Box - false - - - - 21 - 58 - Check Box_21 - 789 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-6962 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_21_PeakInUse - 1 - - - - false - Text Update - false - false - 1 - - - - 85 - 195 - Text Update_89 - 789 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-6961 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_22_PipeID - 1 - - - - false - Text Update - false - false - 1 - - - - 47 - 97 - Text Update_90 - 808 - - - - - - Default - - - - 0 - - 2 - - true - 763e00b7:150973f1dd8:-6960 - true - false - 22 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 28 - 12 - Label_41 - 808 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-695f - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_22_Depth - 1 - - - - false - Text Update - false - false - 1 - - - - 53 - 143 - Text Update_91 - 808 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - 763e00b7:150973f1dd8:-695e - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_sb/PipeDepthStats_22_InUse - - - - - Check Box - false - - - - 21 - 58 - Check Box_22 - 808 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-695d - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_22_PeakInUse - 1 - - - - false - Text Update - false - false - 1 - - - - 85 - 195 - Text Update_92 - 808 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-695c - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_23_PipeID - 1 - - - - false - Text Update - false - false - 1 - - - - 47 - 97 - Text Update_93 - 827 - - - - - - Default - - - - 0 - - 2 - - true - 763e00b7:150973f1dd8:-695b - true - false - 23 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 28 - 12 - Label_42 - 827 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-695a - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_23_Depth - 1 - - - - false - Text Update - false - false - 1 - - - - 53 - 143 - Text Update_94 - 827 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - 763e00b7:150973f1dd8:-6959 - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_sb/PipeDepthStats_23_InUse - - - - - Check Box - false - - - - 21 - 58 - Check Box_23 - 827 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-6958 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_23_PeakInUse - 1 - - - - false - Text Update - false - false - 1 - - - - 85 - 195 - Text Update_95 - 827 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-6957 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_24_PipeID - 1 - - - - false - Text Update - false - false - 1 - - - - 47 - 97 - Text Update_96 - 846 - - - - - - Default - - - - 0 - - 2 - - true - 763e00b7:150973f1dd8:-6956 - true - false - 24 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 28 - 12 - Label_43 - 846 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-6955 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_24_Depth - 1 - - - - false - Text Update - false - false - 1 - - - - 53 - 143 - Text Update_97 - 846 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - 763e00b7:150973f1dd8:-6954 - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_sb/PipeDepthStats_24_InUse - - - - - Check Box - false - - - - 21 - 58 - Check Box_24 - 846 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-6953 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_24_PeakInUse - 1 - - - - false - Text Update - false - false - 1 - - - - 85 - 195 - Text Update_98 - 846 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-6952 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_25_PipeID - 1 - - - - false - Text Update - false - false - 1 - - - - 47 - 97 - Text Update_99 - 865 - - - - - - Default - - - - 0 - - 2 - - true - 763e00b7:150973f1dd8:-6951 - true - false - 25 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 28 - 12 - Label_44 - 865 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-6950 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_25_Depth - 1 - - - - false - Text Update - false - false - 1 - - - - 53 - 143 - Text Update_100 - 865 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - 763e00b7:150973f1dd8:-694f - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_sb/PipeDepthStats_25_InUse - - - - - Check Box - false - - - - 21 - 58 - Check Box_25 - 865 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-694e - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_25_PeakInUse - 1 - - - - false - Text Update - false - false - 1 - - - - 85 - 195 - Text Update_101 - 865 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-694d - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_26_PipeID - 1 - - - - false - Text Update - false - false - 1 - - - - 47 - 97 - Text Update_102 - 884 - - - - - - Default - - - - 0 - - 2 - - true - 763e00b7:150973f1dd8:-694c - true - false - 26 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 28 - 12 - Label_45 - 884 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-694b - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_26_Depth - 1 - - - - false - Text Update - false - false - 1 - - - - 53 - 143 - Text Update_103 - 884 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - 763e00b7:150973f1dd8:-694a - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_sb/PipeDepthStats_26_InUse - - - - - Check Box - false - - - - 21 - 58 - Check Box_26 - 884 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-6949 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_26_PeakInUse - 1 - - - - false - Text Update - false - false - 1 - - - - 85 - 195 - Text Update_104 - 884 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-6948 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_27_PipeID - 1 - - - - false - Text Update - false - false - 1 - - - - 47 - 97 - Text Update_105 - 903 - - - - - - Default - - - - 0 - - 2 - - true - 763e00b7:150973f1dd8:-6947 - true - false - 27 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 28 - 12 - Label_46 - 903 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-6946 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_27_Depth - 1 - - - - false - Text Update - false - false - 1 - - - - 53 - 143 - Text Update_106 - 903 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - 763e00b7:150973f1dd8:-6945 - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_sb/PipeDepthStats_27_InUse - - - - - Check Box - false - - - - 21 - 58 - Check Box_27 - 903 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-6944 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_27_PeakInUse - 1 - - - - false - Text Update - false - false - 1 - - - - 85 - 195 - Text Update_107 - 903 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-6943 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_28_PipeID - 1 - - - - false - Text Update - false - false - 1 - - - - 47 - 97 - Text Update_108 - 922 - - - - - - Default - - - - 0 - - 2 - - true - 763e00b7:150973f1dd8:-6942 - true - false - 28 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 28 - 12 - Label_47 - 922 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-6941 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_28_Depth - 1 - - - - false - Text Update - false - false - 1 - - - - 53 - 143 - Text Update_109 - 922 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - 763e00b7:150973f1dd8:-6940 - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_sb/PipeDepthStats_28_InUse - - - - - Check Box - false - - - - 21 - 58 - Check Box_28 - 922 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-693f - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_28_PeakInUse - 1 - - - - false - Text Update - false - false - 1 - - - - 85 - 195 - Text Update_110 - 922 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-693e - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_29_PipeID - 1 - - - - false - Text Update - false - false - 1 - - - - 47 - 97 - Text Update_111 - 941 - - - - - - Default - - - - 0 - - 2 - - true - 763e00b7:150973f1dd8:-693d - true - false - 29 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 28 - 12 - Label_48 - 941 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-693c - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_29_Depth - 1 - - - - false - Text Update - false - false - 1 - - - - 53 - 143 - Text Update_112 - 941 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - 763e00b7:150973f1dd8:-693b - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_sb/PipeDepthStats_29_InUse - - - - - Check Box - false - - - - 21 - 58 - Check Box_29 - 941 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-693a - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_29_PeakInUse - 1 - - - - false - Text Update - false - false - 1 - - - - 85 - 195 - Text Update_113 - 941 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-68a0 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_30_PipeID - 1 - - - - false - Text Update - false - false - 1 - - - - 47 - 97 - Text Update_114 - 960 - - - - - - Default - - - - 0 - - 2 - - true - 763e00b7:150973f1dd8:-689f - true - false - 30 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 28 - 12 - Label_49 - 960 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-689e - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_30_Depth - 1 - - - - false - Text Update - false - false - 1 - - - - 53 - 143 - Text Update_115 - 960 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - 763e00b7:150973f1dd8:-689d - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_sb/PipeDepthStats_30_InUse - - - - - Check Box - false - - - - 21 - 58 - Check Box_30 - 960 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-689c - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_30_PeakInUse - 1 - - - - false - Text Update - false - false - 1 - - - - 85 - 195 - Text Update_116 - 960 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-689b - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_31_PipeID - 1 - - - - false - Text Update - false - false - 1 - - - - 47 - 97 - Text Update_117 - 979 - - - - - - Default - - - - 0 - - 2 - - true - 763e00b7:150973f1dd8:-689a - true - false - 31 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 28 - 12 - Label_50 - 979 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-6899 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_31_Depth - 1 - - - - false - Text Update - false - false - 1 - - - - 53 - 143 - Text Update_118 - 979 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - 763e00b7:150973f1dd8:-6898 - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_sb/PipeDepthStats_31_InUse - - - - - Check Box - false - - - - 21 - 58 - Check Box_31 - 979 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-6897 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_31_PeakInUse - 1 - - - - false - Text Update - false - false - 1 - - - - 85 - 195 - Text Update_119 - 979 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-6896 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_32_PipeID - 1 - - - - false - Text Update - false - false - 1 - - - - 47 - 97 - Text Update_120 - 998 - - - - - - Default - - - - 0 - - 2 - - true - 763e00b7:150973f1dd8:-6895 - true - false - 32 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 28 - 12 - Label_51 - 998 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-6894 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_32_Depth - 1 - - - - false - Text Update - false - false - 1 - - - - 53 - 143 - Text Update_121 - 998 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - 763e00b7:150973f1dd8:-6893 - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_sb/PipeDepthStats_32_InUse - - - - - Check Box - false - - - - 21 - 58 - Check Box_32 - 998 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-6892 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_32_PeakInUse - 1 - - - - false - Text Update - false - false - 1 - - - - 85 - 195 - Text Update_122 - 998 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-6891 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_33_PipeID - 1 - - - - false - Text Update - false - false - 1 - - - - 47 - 97 - Text Update_123 - 1017 - - - - - - Default - - - - 0 - - 2 - - true - 763e00b7:150973f1dd8:-6890 - true - false - 33 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 28 - 12 - Label_52 - 1017 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-688f - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_33_Depth - 1 - - - - false - Text Update - false - false - 1 - - - - 53 - 143 - Text Update_124 - 1017 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - 763e00b7:150973f1dd8:-688e - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_sb/PipeDepthStats_33_InUse - - - - - Check Box - false - - - - 21 - 58 - Check Box_33 - 1017 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-688d - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_33_PeakInUse - 1 - - - - false - Text Update - false - false - 1 - - - - 85 - 195 - Text Update_125 - 1017 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-688c - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_34_PipeID - 1 - - - - false - Text Update - false - false - 1 - - - - 47 - 97 - Text Update_126 - 1036 - - - - - - Default - - - - 0 - - 2 - - true - 763e00b7:150973f1dd8:-688b - true - false - 34 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 28 - 12 - Label_53 - 1036 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-688a - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_34_Depth - 1 - - - - false - Text Update - false - false - 1 - - - - 53 - 143 - Text Update_127 - 1036 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - 763e00b7:150973f1dd8:-6889 - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_sb/PipeDepthStats_34_InUse - - - - - Check Box - false - - - - 21 - 58 - Check Box_34 - 1036 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-6888 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_34_PeakInUse - 1 - - - - false - Text Update - false - false - 1 - - - - 85 - 195 - Text Update_128 - 1036 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-6887 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_35_PipeID - 1 - - - - false - Text Update - false - false - 1 - - - - 47 - 97 - Text Update_129 - 1055 - - - - - - Default - - - - 0 - - 2 - - true - 763e00b7:150973f1dd8:-6886 - true - false - 35 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 28 - 12 - Label_54 - 1055 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-6885 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_35_Depth - 1 - - - - false - Text Update - false - false - 1 - - - - 53 - 143 - Text Update_130 - 1055 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - 763e00b7:150973f1dd8:-6884 - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_sb/PipeDepthStats_35_InUse - - - - - Check Box - false - - - - 21 - 58 - Check Box_35 - 1055 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-6883 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_35_PeakInUse - 1 - - - - false - Text Update - false - false - 1 - - - - 85 - 195 - Text Update_131 - 1055 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-6882 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_36_PipeID - 1 - - - - false - Text Update - false - false - 1 - - - - 47 - 97 - Text Update_132 - 1074 - - - - - - Default - - - - 0 - - 2 - - true - 763e00b7:150973f1dd8:-6881 - true - false - 36 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 28 - 12 - Label_55 - 1074 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-6880 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_36_Depth - 1 - - - - false - Text Update - false - false - 1 - - - - 53 - 143 - Text Update_133 - 1074 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - 763e00b7:150973f1dd8:-687f - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_sb/PipeDepthStats_36_InUse - - - - - Check Box - false - - - - 21 - 58 - Check Box_36 - 1074 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-687e - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_36_PeakInUse - 1 - - - - false - Text Update - false - false - 1 - - - - 85 - 195 - Text Update_134 - 1074 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-687d - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_37_PipeID - 1 - - - - false - Text Update - false - false - 1 - - - - 47 - 97 - Text Update_135 - 1093 - - - - - - Default - - - - 0 - - 2 - - true - 763e00b7:150973f1dd8:-687c - true - false - 37 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 28 - 12 - Label_56 - 1093 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-687b - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_37_Depth - 1 - - - - false - Text Update - false - false - 1 - - - - 53 - 143 - Text Update_136 - 1093 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - 763e00b7:150973f1dd8:-687a - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_sb/PipeDepthStats_37_InUse - - - - - Check Box - false - - - - 21 - 58 - Check Box_37 - 1093 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-6879 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_37_PeakInUse - 1 - - - - false - Text Update - false - false - 1 - - - - 85 - 195 - Text Update_137 - 1093 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-6878 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_38_PipeID - 1 - - - - false - Text Update - false - false - 1 - - - - 47 - 97 - Text Update_138 - 1112 - - - - - - Default - - - - 0 - - 2 - - true - 763e00b7:150973f1dd8:-6877 - true - false - 38 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 28 - 12 - Label_57 - 1112 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-6876 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_38_Depth - 1 - - - - false - Text Update - false - false - 1 - - - - 53 - 143 - Text Update_139 - 1112 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - 763e00b7:150973f1dd8:-6875 - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_sb/PipeDepthStats_38_InUse - - - - - Check Box - false - - - - 21 - 58 - Check Box_38 - 1112 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-6874 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_38_PeakInUse - 1 - - - - false - Text Update - false - false - 1 - - - - 85 - 195 - Text Update_140 - 1112 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-6873 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_39_PipeID - 1 - - - - false - Text Update - false - false - 1 - - - - 47 - 97 - Text Update_141 - 1131 - - - - - - Default - - - - 0 - - 2 - - true - 763e00b7:150973f1dd8:-6872 - true - false - 39 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 28 - 12 - Label_58 - 1131 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-6871 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_39_Depth - 1 - - - - false - Text Update - false - false - 1 - - - - 53 - 143 - Text Update_142 - 1131 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - 763e00b7:150973f1dd8:-6870 - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_sb/PipeDepthStats_39_InUse - - - - - Check Box - false - - - - 21 - 58 - Check Box_39 - 1131 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-686f - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_39_PeakInUse - 1 - - - - false - Text Update - false - false - 1 - - - - 85 - 195 - Text Update_143 - 1131 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-67d5 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_40_PipeID - 1 - - - - false - Text Update - false - false - 1 - - - - 47 - 97 - Text Update_144 - 1150 - - - - - - Default - - - - 0 - - 2 - - true - 763e00b7:150973f1dd8:-67d4 - true - false - 40 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 28 - 12 - Label_59 - 1150 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-67d3 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_40_Depth - 1 - - - - false - Text Update - false - false - 1 - - - - 53 - 143 - Text Update_145 - 1150 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - 763e00b7:150973f1dd8:-67d2 - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_sb/PipeDepthStats_40_InUse - - - - - Check Box - false - - - - 21 - 58 - Check Box_40 - 1150 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-67d1 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_40_PeakInUse - 1 - - - - false - Text Update - false - false - 1 - - - - 85 - 195 - Text Update_146 - 1150 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-67d0 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_41_PipeID - 1 - - - - false - Text Update - false - false - 1 - - - - 47 - 97 - Text Update_147 - 1169 - - - - - - Default - - - - 0 - - 2 - - true - 763e00b7:150973f1dd8:-67cf - true - false - 41 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 28 - 12 - Label_60 - 1169 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-67ce - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_41_Depth - 1 - - - - false - Text Update - false - false - 1 - - - - 53 - 143 - Text Update_148 - 1169 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - 763e00b7:150973f1dd8:-67cd - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_sb/PipeDepthStats_41_InUse - - - - - Check Box - false - - - - 21 - 58 - Check Box_41 - 1169 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-67cc - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_41_PeakInUse - 1 - - - - false - Text Update - false - false - 1 - - - - 85 - 195 - Text Update_149 - 1169 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-67cb - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_42_PipeID - 1 - - - - false - Text Update - false - false - 1 - - - - 47 - 97 - Text Update_150 - 1188 - - - - - - Default - - - - 0 - - 2 - - true - 763e00b7:150973f1dd8:-67ca - true - false - 42 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 28 - 12 - Label_61 - 1188 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-67c9 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_42_Depth - 1 - - - - false - Text Update - false - false - 1 - - - - 53 - 143 - Text Update_151 - 1188 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - 763e00b7:150973f1dd8:-67c8 - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_sb/PipeDepthStats_42_InUse - - - - - Check Box - false - - - - 21 - 58 - Check Box_42 - 1188 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-67c7 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_42_PeakInUse - 1 - - - - false - Text Update - false - false - 1 - - - - 85 - 195 - Text Update_152 - 1188 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-67c6 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_43_PipeID - 1 - - - - false - Text Update - false - false - 1 - - - - 47 - 97 - Text Update_153 - 1207 - - - - - - Default - - - - 0 - - 2 - - true - 763e00b7:150973f1dd8:-67c5 - true - false - 43 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 28 - 12 - Label_62 - 1207 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-67c4 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_43_Depth - 1 - - - - false - Text Update - false - false - 1 - - - - 53 - 143 - Text Update_154 - 1207 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - 763e00b7:150973f1dd8:-67c3 - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_sb/PipeDepthStats_43_InUse - - - - - Check Box - false - - - - 21 - 58 - Check Box_43 - 1207 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-67c2 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_43_PeakInUse - 1 - - - - false - Text Update - false - false - 1 - - - - 85 - 195 - Text Update_155 - 1207 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-67c1 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_44_PipeID - 1 - - - - false - Text Update - false - false - 1 - - - - 47 - 97 - Text Update_156 - 1226 - - - - - - Default - - - - 0 - - 2 - - true - 763e00b7:150973f1dd8:-67c0 - true - false - 44 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 28 - 12 - Label_63 - 1226 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-67bf - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_44_Depth - 1 - - - - false - Text Update - false - false - 1 - - - - 53 - 143 - Text Update_157 - 1226 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - 763e00b7:150973f1dd8:-67be - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_sb/PipeDepthStats_44_InUse - - - - - Check Box - false - - - - 21 - 58 - Check Box_44 - 1226 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-67bd - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_44_PeakInUse - 1 - - - - false - Text Update - false - false - 1 - - - - 85 - 195 - Text Update_158 - 1226 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-67bc - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_45_PipeID - 1 - - - - false - Text Update - false - false - 1 - - - - 47 - 97 - Text Update_159 - 1245 - - - - - - Default - - - - 0 - - 2 - - true - 763e00b7:150973f1dd8:-67bb - true - false - 45 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 28 - 12 - Label_64 - 1245 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-67ba - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_45_Depth - 1 - - - - false - Text Update - false - false - 1 - - - - 53 - 143 - Text Update_160 - 1245 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - 763e00b7:150973f1dd8:-67b9 - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_sb/PipeDepthStats_45_InUse - - - - - Check Box - false - - - - 21 - 58 - Check Box_45 - 1245 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-67b8 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_45_PeakInUse - 1 - - - - false - Text Update - false - false - 1 - - - - 85 - 195 - Text Update_161 - 1245 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-67b7 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_46_PipeID - 1 - - - - false - Text Update - false - false - 1 - - - - 47 - 97 - Text Update_162 - 1264 - - - - - - Default - - - - 0 - - 2 - - true - 763e00b7:150973f1dd8:-67b6 - true - false - 46 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 28 - 12 - Label_65 - 1264 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-67b5 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_46_Depth - 1 - - - - false - Text Update - false - false - 1 - - - - 53 - 143 - Text Update_163 - 1264 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - 763e00b7:150973f1dd8:-67b4 - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_sb/PipeDepthStats_46_InUse - - - - - Check Box - false - - - - 21 - 58 - Check Box_46 - 1264 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-67b3 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_46_PeakInUse - 1 - - - - false - Text Update - false - false - 1 - - - - 85 - 195 - Text Update_164 - 1264 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-67b2 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_47_PipeID - 1 - - - - false - Text Update - false - false - 1 - - - - 47 - 97 - Text Update_165 - 1283 - - - - - - Default - - - - 0 - - 2 - - true - 763e00b7:150973f1dd8:-67b1 - true - false - 47 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 28 - 12 - Label_66 - 1283 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-67b0 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_47_Depth - 1 - - - - false - Text Update - false - false - 1 - - - - 53 - 143 - Text Update_166 - 1283 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - 763e00b7:150973f1dd8:-67af - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_sb/PipeDepthStats_47_InUse - - - - - Check Box - false - - - - 21 - 58 - Check Box_47 - 1283 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-67ae - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_47_PeakInUse - 1 - - - - false - Text Update - false - false - 1 - - - - 85 - 195 - Text Update_167 - 1283 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-67ad - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_48_PipeID - 1 - - - - false - Text Update - false - false - 1 - - - - 47 - 97 - Text Update_168 - 1302 - - - - - - Default - - - - 0 - - 2 - - true - 763e00b7:150973f1dd8:-67ac - true - false - 48 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 28 - 12 - Label_67 - 1302 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-67ab - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_48_Depth - 1 - - - - false - Text Update - false - false - 1 - - - - 53 - 143 - Text Update_169 - 1302 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - 763e00b7:150973f1dd8:-67aa - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_sb/PipeDepthStats_48_InUse - - - - - Check Box - false - - - - 21 - 58 - Check Box_48 - 1302 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-67a9 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_48_PeakInUse - 1 - - - - false - Text Update - false - false - 1 - - - - 85 - 195 - Text Update_170 - 1302 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-67a8 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_49_PipeID - 1 - - - - false - Text Update - false - false - 1 - - - - 47 - 97 - Text Update_171 - 1321 - - - - - - Default - - - - 0 - - 2 - - true - 763e00b7:150973f1dd8:-67a7 - true - false - 49 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 28 - 12 - Label_68 - 1321 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-67a6 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_49_Depth - 1 - - - - false - Text Update - false - false - 1 - - - - 53 - 143 - Text Update_172 - 1321 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - 763e00b7:150973f1dd8:-67a5 - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_sb/PipeDepthStats_49_InUse - - - - - Check Box - false - - - - 21 - 58 - Check Box_49 - 1321 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-67a4 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_49_PeakInUse - 1 - - - - false - Text Update - false - false - 1 - - - - 85 - 195 - Text Update_173 - 1321 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-670a - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_50_PipeID - 1 - - - - false - Text Update - false - false - 1 - - - - 47 - 97 - Text Update_174 - 1340 - - - - - - Default - - - - 0 - - 2 - - true - 763e00b7:150973f1dd8:-6709 - true - false - 50 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 28 - 12 - Label_69 - 1340 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-6708 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_50_Depth - 1 - - - - false - Text Update - false - false - 1 - - - - 53 - 143 - Text Update_175 - 1340 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - 763e00b7:150973f1dd8:-6707 - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_sb/PipeDepthStats_50_InUse - - - - - Check Box - false - - - - 21 - 58 - Check Box_50 - 1340 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-6706 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_50_PeakInUse - 1 - - - - false - Text Update - false - false - 1 - - - - 85 - 195 - Text Update_176 - 1340 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-6705 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_51_PipeID - 1 - - - - false - Text Update - false - false - 1 - - - - 47 - 97 - Text Update_177 - 1359 - - - - - - Default - - - - 0 - - 2 - - true - 763e00b7:150973f1dd8:-6704 - true - false - 51 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 28 - 12 - Label_70 - 1359 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-6703 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_51_Depth - 1 - - - - false - Text Update - false - false - 1 - - - - 53 - 143 - Text Update_178 - 1359 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - 763e00b7:150973f1dd8:-6702 - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_sb/PipeDepthStats_51_InUse - - - - - Check Box - false - - - - 21 - 58 - Check Box_51 - 1359 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-6701 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_51_PeakInUse - 1 - - - - false - Text Update - false - false - 1 - - - - 85 - 195 - Text Update_179 - 1359 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-6700 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_52_PipeID - 1 - - - - false - Text Update - false - false - 1 - - - - 47 - 97 - Text Update_180 - 1378 - - - - - - Default - - - - 0 - - 2 - - true - 763e00b7:150973f1dd8:-66ff - true - false - 52 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 28 - 12 - Label_71 - 1378 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-66fe - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_52_Depth - 1 - - - - false - Text Update - false - false - 1 - - - - 53 - 143 - Text Update_181 - 1378 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - 763e00b7:150973f1dd8:-66fd - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_sb/PipeDepthStats_52_InUse - - - - - Check Box - false - - - - 21 - 58 - Check Box_52 - 1378 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-66fc - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_52_PeakInUse - 1 - - - - false - Text Update - false - false - 1 - - - - 85 - 195 - Text Update_182 - 1378 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-66fb - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_53_PipeID - 1 - - - - false - Text Update - false - false - 1 - - - - 47 - 97 - Text Update_183 - 1397 - - - - - - Default - - - - 0 - - 2 - - true - 763e00b7:150973f1dd8:-66fa - true - false - 53 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 28 - 12 - Label_72 - 1397 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-66f9 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_53_Depth - 1 - - - - false - Text Update - false - false - 1 - - - - 53 - 143 - Text Update_184 - 1397 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - 763e00b7:150973f1dd8:-66f8 - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_sb/PipeDepthStats_53_InUse - - - - - Check Box - false - - - - 21 - 58 - Check Box_53 - 1397 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-66f7 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_53_PeakInUse - 1 - - - - false - Text Update - false - false - 1 - - - - 85 - 195 - Text Update_185 - 1397 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-66f6 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_54_PipeID - 1 - - - - false - Text Update - false - false - 1 - - - - 47 - 97 - Text Update_186 - 1416 - - - - - - Default - - - - 0 - - 2 - - true - 763e00b7:150973f1dd8:-66f5 - true - false - 54 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 28 - 12 - Label_73 - 1416 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-66f4 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_54_Depth - 1 - - - - false - Text Update - false - false - 1 - - - - 53 - 143 - Text Update_187 - 1416 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - 763e00b7:150973f1dd8:-66f3 - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_sb/PipeDepthStats_54_InUse - - - - - Check Box - false - - - - 21 - 58 - Check Box_54 - 1416 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-66f2 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_54_PeakInUse - 1 - - - - false - Text Update - false - false - 1 - - - - 85 - 195 - Text Update_188 - 1416 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-66f1 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_55_PipeID - 1 - - - - false - Text Update - false - false - 1 - - - - 47 - 97 - Text Update_189 - 1435 - - - - - - Default - - - - 0 - - 2 - - true - 763e00b7:150973f1dd8:-66f0 - true - false - 55 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 28 - 12 - Label_74 - 1435 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-66ef - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_55_Depth - 1 - - - - false - Text Update - false - false - 1 - - - - 53 - 143 - Text Update_190 - 1435 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - 763e00b7:150973f1dd8:-66ee - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_sb/PipeDepthStats_55_InUse - - - - - Check Box - false - - - - 21 - 58 - Check Box_55 - 1435 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-66ed - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_55_PeakInUse - 1 - - - - false - Text Update - false - false - 1 - - - - 85 - 195 - Text Update_191 - 1435 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-66ec - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_56_PipeID - 1 - - - - false - Text Update - false - false - 1 - - - - 47 - 97 - Text Update_192 - 1454 - - - - - - Default - - - - 0 - - 2 - - true - 763e00b7:150973f1dd8:-66eb - true - false - 56 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 28 - 12 - Label_75 - 1454 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-66ea - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_56_Depth - 1 - - - - false - Text Update - false - false - 1 - - - - 53 - 143 - Text Update_193 - 1454 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - 763e00b7:150973f1dd8:-66e9 - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_sb/PipeDepthStats_56_InUse - - - - - Check Box - false - - - - 21 - 58 - Check Box_56 - 1454 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-66e8 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_56_PeakInUse - 1 - - - - false - Text Update - false - false - 1 - - - - 85 - 195 - Text Update_194 - 1454 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-66e7 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_57_PipeID - 1 - - - - false - Text Update - false - false - 1 - - - - 47 - 97 - Text Update_195 - 1473 - - - - - - Default - - - - 0 - - 2 - - true - 763e00b7:150973f1dd8:-66e6 - true - false - 57 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 28 - 12 - Label_76 - 1473 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-66e5 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_57_Depth - 1 - - - - false - Text Update - false - false - 1 - - - - 53 - 143 - Text Update_196 - 1473 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - 763e00b7:150973f1dd8:-66e4 - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_sb/PipeDepthStats_57_InUse - - - - - Check Box - false - - - - 21 - 58 - Check Box_57 - 1473 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-66e3 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_57_PeakInUse - 1 - - - - false - Text Update - false - false - 1 - - - - 85 - 195 - Text Update_197 - 1473 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-66e2 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_58_PipeID - 1 - - - - false - Text Update - false - false - 1 - - - - 47 - 97 - Text Update_198 - 1492 - - - - - - Default - - - - 0 - - 2 - - true - 763e00b7:150973f1dd8:-66e1 - true - false - 58 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 28 - 12 - Label_77 - 1492 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-66e0 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_58_Depth - 1 - - - - false - Text Update - false - false - 1 - - - - 53 - 143 - Text Update_199 - 1492 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - 763e00b7:150973f1dd8:-66df - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_sb/PipeDepthStats_58_InUse - - - - - Check Box - false - - - - 21 - 58 - Check Box_58 - 1492 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-66de - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_58_PeakInUse - 1 - - - - false - Text Update - false - false - 1 - - - - 85 - 195 - Text Update_200 - 1492 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-66dd - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_59_PipeID - 1 - - - - false - Text Update - false - false - 1 - - - - 47 - 97 - Text Update_201 - 1511 - - - - - - Default - - - - 0 - - 2 - - true - 763e00b7:150973f1dd8:-66dc - true - false - 59 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 28 - 12 - Label_78 - 1511 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-66db - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_59_Depth - 1 - - - - false - Text Update - false - false - 1 - - - - 53 - 143 - Text Update_202 - 1511 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - 763e00b7:150973f1dd8:-66da - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_sb/PipeDepthStats_59_InUse - - - - - Check Box - false - - - - 21 - 58 - Check Box_59 - 1511 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-66d9 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_59_PeakInUse - 1 - - - - false - Text Update - false - false - 1 - - - - 85 - 195 - Text Update_203 - 1511 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-663f - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_60_PipeID - 1 - - - - false - Text Update - false - false - 1 - - - - 47 - 97 - Text Update_204 - 1530 - - - - - - Default - - - - 0 - - 2 - - true - 763e00b7:150973f1dd8:-663e - true - false - 60 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 28 - 12 - Label_79 - 1530 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-663d - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_60_Depth - 1 - - - - false - Text Update - false - false - 1 - - - - 53 - 143 - Text Update_205 - 1530 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - 763e00b7:150973f1dd8:-663c - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_sb/PipeDepthStats_60_InUse - - - - - Check Box - false - - - - 21 - 58 - Check Box_60 - 1530 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-663b - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_60_PeakInUse - 1 - - - - false - Text Update - false - false - 1 - - - - 85 - 195 - Text Update_206 - 1530 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-663a - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_61_PipeID - 1 - - - - false - Text Update - false - false - 1 - - - - 47 - 97 - Text Update_207 - 1549 - - - - - - Default - - - - 0 - - 2 - - true - 763e00b7:150973f1dd8:-6639 - true - false - 61 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 28 - 12 - Label_80 - 1549 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-6638 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_61_Depth - 1 - - - - false - Text Update - false - false - 1 - - - - 53 - 143 - Text Update_208 - 1549 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - 763e00b7:150973f1dd8:-6637 - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_sb/PipeDepthStats_61_InUse - - - - - Check Box - false - - - - 21 - 58 - Check Box_61 - 1549 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-6636 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_61_PeakInUse - 1 - - - - false - Text Update - false - false - 1 - - - - 85 - 195 - Text Update_209 - 1549 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-6635 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_62_PipeID - 1 - - - - false - Text Update - false - false - 1 - - - - 47 - 97 - Text Update_210 - 1568 - - - - - - Default - - - - 0 - - 2 - - true - 763e00b7:150973f1dd8:-6634 - true - false - 62 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 28 - 12 - Label_81 - 1568 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-6633 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_62_Depth - 1 - - - - false - Text Update - false - false - 1 - - - - 53 - 143 - Text Update_211 - 1568 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - 763e00b7:150973f1dd8:-6632 - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_sb/PipeDepthStats_62_InUse - - - - - Check Box - false - - - - 21 - 58 - Check Box_62 - 1568 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-6631 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_62_PeakInUse - 1 - - - - false - Text Update - false - false - 1 - - - - 85 - 195 - Text Update_212 - 1568 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-6630 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_63_PipeID - 1 - - - - false - Text Update - false - false - 1 - - - - 47 - 97 - Text Update_213 - 1587 - - - - - - Default - - - - 0 - - 2 - - true - 763e00b7:150973f1dd8:-662f - true - false - 63 - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 28 - 12 - Label_82 - 1587 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-662e - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_63_Depth - 1 - - - - false - Text Update - false - false - 1 - - - - 53 - 143 - Text Update_214 - 1587 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - 763e00b7:150973f1dd8:-662d - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_sb/PipeDepthStats_63_InUse - - - - - Check Box - false - - - - 21 - 58 - Check Box_63 - 1587 - - - - - - Default - - - - 1 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 763e00b7:150973f1dd8:-662c - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_sb/PipeDepthStats_63_PeakInUse - 1 - - - - false - Text Update - false - false - 1 - - - - 85 - 195 - Text Update_215 - 1587 - - - - - - Default - - +Yamcs.issueCommand('/cfs/cfe_sb/SendStats(arg: none)');]]> + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 28 + + Action Button + 0 + + + + + true + true + false + + + + Telemeter Info + false + $(pv_name) +$(pv_value) + true + Action Button + 133 + 763e00b7:150973f1dd8:-7b0d + 78 + 18 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update + 0 + false + /cfs/cfe_sb/MsgIdsInUse + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + 763e00b7:150973f1dd8:-7257 + 180 + 66 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_1 + 0 + false + /cfs/cfe_sb/PeakMsgIdsInUse + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + 763e00b7:150973f1dd8:-7256 + 180 + 85 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_2 + 0 + false + /cfs/cfe_sb/MaxMsgIdsAllowed + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + 763e00b7:150973f1dd8:-7255 + 180 + 104 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_3 + 0 + false + /cfs/cfe_sb/PipesInUse + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + 763e00b7:150973f1dd8:-7254 + 180 + 123 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_4 + 0 + false + /cfs/cfe_sb/PeakPipesInUse + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + 763e00b7:150973f1dd8:-7253 + 180 + 142 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_5 + 0 + false + /cfs/cfe_sb/MaxPipesAllowed + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + 763e00b7:150973f1dd8:-7252 + 180 + 161 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_6 + 0 + false + /cfs/cfe_sb/StatsMemInUse + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + 763e00b7:150973f1dd8:-7251 + 180 + 180 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_7 + 0 + false + /cfs/cfe_sb/PeakMemInUse + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + 763e00b7:150973f1dd8:-7250 + 180 + 199 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_8 + 0 + false + /cfs/cfe_sb/MaxMemAllowed + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + 763e00b7:150973f1dd8:-724f + 180 + 218 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_9 + 0 + false + /cfs/cfe_sb/SubscriptionsInUse + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + 763e00b7:150973f1dd8:-724e + 180 + 237 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_10 + 0 + false + /cfs/cfe_sb/PeakSubscriptionsInUse + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + 763e00b7:150973f1dd8:-724d + 180 + 256 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_11 + 0 + false + /cfs/cfe_sb/MaxSubscriptionsAllowed + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + 763e00b7:150973f1dd8:-724c + 180 + 275 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_12 + 0 + false + /cfs/cfe_sb/SBBuffersInUse + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + 763e00b7:150973f1dd8:-724b + 180 + 294 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_13 + 0 + false + /cfs/cfe_sb/PeakSBBuffersInUse + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + 763e00b7:150973f1dd8:-724a + 180 + 313 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_14 + 0 + false + /cfs/cfe_sb/MaxPipeDepthAllowed + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + 763e00b7:150973f1dd8:-7249 + 180 + 332 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label + + + true + true + false + + + Msg IDs in Use + + true + 1 + true + Label + 116 + false + 763e00b7:150973f1dd8:-71e4 + 54 + 66 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_1 + + + true + true + false + + + Peak Msg IDs in Use + + true + 1 + true + Label + 161 + false + 763e00b7:150973f1dd8:-71d9 + 10 + 85 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_2 + + + true + true + false + + + Max Msg IDs Allowed + + true + 1 + true + Label + 161 + false + 763e00b7:150973f1dd8:-71d1 + 10 + 104 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_3 + + + true + true + false + + + Pipes in Use + + true + 1 + true + Label + 161 + false + 763e00b7:150973f1dd8:-71c5 + 10 + 123 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_4 + + + true + true + false + + + Peak Pipes in Use + + true + 1 + true + Label + 161 + false + 763e00b7:150973f1dd8:-71be + 10 + 142 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_5 + + + true + true + false + + + Max Pipes Allowed + + true + 1 + true + Label + 161 + false + 763e00b7:150973f1dd8:-71b3 + 10 + 161 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_6 + + + true + true + false + + + Mem in Use + + true + 1 + true + Label + 161 + false + 763e00b7:150973f1dd8:-71ac + 10 + 180 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_7 + + + true + true + false + + + Peak Mem in Use + + true + 1 + true + Label + 161 + false + 763e00b7:150973f1dd8:-71a5 + 10 + 199 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_8 + + + true + true + false + + + Max Mem Allowed + + true + 1 + true + Label + 161 + false + 763e00b7:150973f1dd8:-719e + 10 + 218 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_9 + + + true + true + false + + + Subscriptions in Use + + true + 1 + true + Label + 161 + false + 763e00b7:150973f1dd8:-7197 + 10 + 237 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_10 + + + true + true + false + + + Peak Subscriptions in Use + + true + 1 + true + Label + 161 + false + 763e00b7:150973f1dd8:-7190 + 10 + 256 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_11 + + + true + true + false + + + Max Subscriptions Allowed + + true + 1 + true + Label + 161 + false + 763e00b7:150973f1dd8:-7189 + 10 + 275 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_12 + + + true + true + false + + + SB Buffers in Use + + true + 1 + true + Label + 161 + false + 763e00b7:150973f1dd8:-7182 + 10 + 294 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_13 + + + true + true + false + + + Peak SB Buffers in Use + + true + 1 + true + Label + 161 + false + 763e00b7:150973f1dd8:-717b + 10 + 313 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_14 + + + true + true + false + + + Max Pipe Depth Allowed + + true + 1 + true + Label + 161 + false + 763e00b7:150973f1dd8:-7174 + 10 + 332 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_15 + 0 + false + /cfs/cfe_sb/PipeDepthStats_0_PipeID + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 47 + false + 763e00b7:150973f1dd8:-6f45 + 97 + 390 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_15 + + + true + true + false + + + 0 + + true + 1 + true + Label + 28 + false + 763e00b7:150973f1dd8:-6f3b + 12 + 390 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_16 + + + true + true + false + + + Pipe ID + + true + 1 + true + Label + 47 + false + 763e00b7:150973f1dd8:-6f2d + 97 + 371 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_16 + 0 + false + /cfs/cfe_sb/PipeDepthStats_0_Depth + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 53 + false + 763e00b7:150973f1dd8:-6f1f + 143 + 390 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_17 + + + true + true + false + + + Depth + + true + 1 + true + Label + 47 + false + 763e00b7:150973f1dd8:-6f17 + 143 + 371 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_18 + + + true + true + false + + + In Use + + true + 1 + true + Label + 47 + false + 763e00b7:150973f1dd8:-6efe + 39 + 371 + + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + Check Box + /cfs/cfe_sb/PipeDepthStats_0_InUse + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 21 + 763e00b7:150973f1dd8:-6ec7 + 58 + 390 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_17 + 0 + false + /cfs/cfe_sb/PipeDepthStats_0_PeakInUse + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 85 + false + 763e00b7:150973f1dd8:-6eb9 + 195 + 390 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_19 + + + true + true + false + + + Peak in Use + + true + 1 + true + Label + 79 + false + 763e00b7:150973f1dd8:-6eb8 + 190 + 371 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_19 + 0 + false + /cfs/cfe_sb/PipeDepthStats_1_PipeID + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 47 + false + 763e00b7:150973f1dd8:-6dea + 97 + 409 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_20 + + + true + true + false + + + 1 + + true + 1 + true + Label + 28 + false + 763e00b7:150973f1dd8:-6de9 + 12 + 409 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_20 + 0 + false + /cfs/cfe_sb/PipeDepthStats_1_Depth + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 53 + false + 763e00b7:150973f1dd8:-6de8 + 143 + 409 + + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + Check Box_1 + /cfs/cfe_sb/PipeDepthStats_1_InUse + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 21 + 763e00b7:150973f1dd8:-6de7 + 58 + 409 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_21 + 0 + false + /cfs/cfe_sb/PipeDepthStats_1_PeakInUse + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 85 + false + 763e00b7:150973f1dd8:-6de6 + 195 + 409 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_23 + 0 + false + /cfs/cfe_sb/PipeDepthStats_2_PipeID + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 47 + false + 763e00b7:150973f1dd8:-6dd6 + 97 + 428 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_21 + + + true + true + false + + + 2 + + true + 1 + true + Label + 28 + false + 763e00b7:150973f1dd8:-6dd5 + 12 + 428 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_24 + 0 + false + /cfs/cfe_sb/PipeDepthStats_2_Depth + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 53 + false + 763e00b7:150973f1dd8:-6dd4 + 143 + 428 + + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + Check Box_2 + /cfs/cfe_sb/PipeDepthStats_2_InUse + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 21 + 763e00b7:150973f1dd8:-6dd3 + 58 + 428 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_25 + 0 + false + /cfs/cfe_sb/PipeDepthStats_2_PeakInUse + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 85 + false + 763e00b7:150973f1dd8:-6dd2 + 195 + 428 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_27 + 0 + false + /cfs/cfe_sb/PipeDepthStats_3_PipeID + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 47 + false + 763e00b7:150973f1dd8:-6dc2 + 97 + 447 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_22 + + + true + true + false + + + 3 + + true + 1 + true + Label + 28 + false + 763e00b7:150973f1dd8:-6dc1 + 12 + 447 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_28 + 0 + false + /cfs/cfe_sb/PipeDepthStats_3_Depth + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 53 + false + 763e00b7:150973f1dd8:-6dc0 + 143 + 447 + + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + Check Box_3 + /cfs/cfe_sb/PipeDepthStats_3_InUse + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 21 + 763e00b7:150973f1dd8:-6dbf + 58 + 447 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_29 + 0 + false + /cfs/cfe_sb/PipeDepthStats_3_PeakInUse + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 85 + false + 763e00b7:150973f1dd8:-6dbe + 195 + 447 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_31 + 0 + false + /cfs/cfe_sb/PipeDepthStats_4_PipeID + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 47 + false + 763e00b7:150973f1dd8:-6dae + 97 + 466 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_23 + + + true + true + false + + + 4 + + true + 1 + true + Label + 28 + false + 763e00b7:150973f1dd8:-6dad + 12 + 466 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_32 + 0 + false + /cfs/cfe_sb/PipeDepthStats_4_Depth + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 53 + false + 763e00b7:150973f1dd8:-6dac + 143 + 466 + + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + Check Box_4 + /cfs/cfe_sb/PipeDepthStats_4_InUse + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 21 + 763e00b7:150973f1dd8:-6dab + 58 + 466 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_33 + 0 + false + /cfs/cfe_sb/PipeDepthStats_4_PeakInUse + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 85 + false + 763e00b7:150973f1dd8:-6daa + 195 + 466 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_35 + 0 + false + /cfs/cfe_sb/PipeDepthStats_5_PipeID + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 47 + false + 763e00b7:150973f1dd8:-6d9a + 97 + 485 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_24 + + + true + true + false + + + 5 + + true + 1 + true + Label + 28 + false + 763e00b7:150973f1dd8:-6d99 + 12 + 485 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_36 + 0 + false + /cfs/cfe_sb/PipeDepthStats_5_Depth + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 53 + false + 763e00b7:150973f1dd8:-6d98 + 143 + 485 + + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + Check Box_5 + /cfs/cfe_sb/PipeDepthStats_5_InUse + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 21 + 763e00b7:150973f1dd8:-6d97 + 58 + 485 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_37 + 0 + false + /cfs/cfe_sb/PipeDepthStats_5_PeakInUse + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 85 + false + 763e00b7:150973f1dd8:-6d96 + 195 + 485 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_39 + 0 + false + /cfs/cfe_sb/PipeDepthStats_6_PipeID + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 47 + false + 763e00b7:150973f1dd8:-6d86 + 97 + 504 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_25 + + + true + true + false + + + 6 + + true + 1 + true + Label + 28 + false + 763e00b7:150973f1dd8:-6d85 + 12 + 504 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_40 + 0 + false + /cfs/cfe_sb/PipeDepthStats_6_Depth + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 53 + false + 763e00b7:150973f1dd8:-6d84 + 143 + 504 + + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + Check Box_6 + /cfs/cfe_sb/PipeDepthStats_6_InUse + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 21 + 763e00b7:150973f1dd8:-6d83 + 58 + 504 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_41 + 0 + false + /cfs/cfe_sb/PipeDepthStats_6_PeakInUse + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 85 + false + 763e00b7:150973f1dd8:-6d82 + 195 + 504 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_43 + 0 + false + /cfs/cfe_sb/PipeDepthStats_7_PipeID + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 47 + false + 763e00b7:150973f1dd8:-6d72 + 97 + 523 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_26 + + + true + true + false + + + 7 + + true + 1 + true + Label + 28 + false + 763e00b7:150973f1dd8:-6d71 + 12 + 523 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_44 + 0 + false + /cfs/cfe_sb/PipeDepthStats_7_Depth + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 53 + false + 763e00b7:150973f1dd8:-6d70 + 143 + 523 + + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + Check Box_7 + /cfs/cfe_sb/PipeDepthStats_7_InUse + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 21 + 763e00b7:150973f1dd8:-6d6f + 58 + 523 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_45 + 0 + false + /cfs/cfe_sb/PipeDepthStats_7_PeakInUse + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 85 + false + 763e00b7:150973f1dd8:-6d6e + 195 + 523 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_47 + 0 + false + /cfs/cfe_sb/PipeDepthStats_8_PipeID + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 47 + false + 763e00b7:150973f1dd8:-6d5e + 97 + 542 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_27 + + + true + true + false + + + 8 + + true + 1 + true + Label + 28 + false + 763e00b7:150973f1dd8:-6d5d + 12 + 542 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_48 + 0 + false + /cfs/cfe_sb/PipeDepthStats_8_Depth + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 53 + false + 763e00b7:150973f1dd8:-6d5c + 143 + 542 + + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + Check Box_8 + /cfs/cfe_sb/PipeDepthStats_8_InUse + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 21 + 763e00b7:150973f1dd8:-6d5b + 58 + 542 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_49 + 0 + false + /cfs/cfe_sb/PipeDepthStats_8_PeakInUse + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 85 + false + 763e00b7:150973f1dd8:-6d5a + 195 + 542 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_51 + 0 + false + /cfs/cfe_sb/PipeDepthStats_9_PipeID + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 47 + false + 763e00b7:150973f1dd8:-6d4a + 97 + 561 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_28 + + + true + true + false + + + 9 + + true + 1 + true + Label + 28 + false + 763e00b7:150973f1dd8:-6d49 + 12 + 561 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_52 + 0 + false + /cfs/cfe_sb/PipeDepthStats_9_Depth + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 53 + false + 763e00b7:150973f1dd8:-6d48 + 143 + 561 + + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + Check Box_9 + /cfs/cfe_sb/PipeDepthStats_9_InUse + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 21 + 763e00b7:150973f1dd8:-6d47 + 58 + 561 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_53 + 0 + false + /cfs/cfe_sb/PipeDepthStats_9_PeakInUse + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 85 + false + 763e00b7:150973f1dd8:-6d46 + 195 + 561 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_54 + 0 + false + /cfs/cfe_sb/PipeDepthStats_10_PipeID + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 47 + false + 763e00b7:150973f1dd8:-6a36 + 97 + 580 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_29 + + + true + true + false + + + 10 + + true + 1 + true + Label + 28 + false + 763e00b7:150973f1dd8:-6a35 + 12 + 580 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_55 + 0 + false + /cfs/cfe_sb/PipeDepthStats_10_Depth + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 53 + false + 763e00b7:150973f1dd8:-6a34 + 143 + 580 + + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + Check Box_10 + /cfs/cfe_sb/PipeDepthStats_10_InUse + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 21 + 763e00b7:150973f1dd8:-6a33 + 58 + 580 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_56 + 0 + false + /cfs/cfe_sb/PipeDepthStats_10_PeakInUse + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 85 + false + 763e00b7:150973f1dd8:-6a32 + 195 + 580 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_57 + 0 + false + /cfs/cfe_sb/PipeDepthStats_11_PipeID + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 47 + false + 763e00b7:150973f1dd8:-6a31 + 97 + 599 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_30 + + + true + true + false + + + 11 + + true + 1 + true + Label + 28 + false + 763e00b7:150973f1dd8:-6a30 + 12 + 599 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_58 + 0 + false + /cfs/cfe_sb/PipeDepthStats_11_Depth + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 53 + false + 763e00b7:150973f1dd8:-6a2f + 143 + 599 + + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + Check Box_11 + /cfs/cfe_sb/PipeDepthStats_11_InUse + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 21 + 763e00b7:150973f1dd8:-6a2e + 58 + 599 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_59 + 0 + false + /cfs/cfe_sb/PipeDepthStats_11_PeakInUse + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 85 + false + 763e00b7:150973f1dd8:-6a2d + 195 + 599 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_60 + 0 + false + /cfs/cfe_sb/PipeDepthStats_12_PipeID + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 47 + false + 763e00b7:150973f1dd8:-6a2c + 97 + 618 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_31 + + + true + true + false + + + 12 + + true + 1 + true + Label + 28 + false + 763e00b7:150973f1dd8:-6a2b + 12 + 618 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_61 + 0 + false + /cfs/cfe_sb/PipeDepthStats_12_Depth + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 53 + false + 763e00b7:150973f1dd8:-6a2a + 143 + 618 + + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + Check Box_12 + /cfs/cfe_sb/PipeDepthStats_12_InUse + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 21 + 763e00b7:150973f1dd8:-6a29 + 58 + 618 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_62 + 0 + false + /cfs/cfe_sb/PipeDepthStats_12_PeakInUse + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 85 + false + 763e00b7:150973f1dd8:-6a28 + 195 + 618 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_63 + 0 + false + /cfs/cfe_sb/PipeDepthStats_13_PipeID + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 47 + false + 763e00b7:150973f1dd8:-6a27 + 97 + 637 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_32 + + + true + true + false + + + 13 + + true + 1 + true + Label + 28 + false + 763e00b7:150973f1dd8:-6a26 + 12 + 637 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_64 + 0 + false + /cfs/cfe_sb/PipeDepthStats_13_Depth + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 53 + false + 763e00b7:150973f1dd8:-6a25 + 143 + 637 + + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + Check Box_13 + /cfs/cfe_sb/PipeDepthStats_13_InUse + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 21 + 763e00b7:150973f1dd8:-6a24 + 58 + 637 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_65 + 0 + false + /cfs/cfe_sb/PipeDepthStats_13_PeakInUse + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 85 + false + 763e00b7:150973f1dd8:-6a23 + 195 + 637 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_66 + 0 + false + /cfs/cfe_sb/PipeDepthStats_14_PipeID + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 47 + false + 763e00b7:150973f1dd8:-6a22 + 97 + 656 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_33 + + + true + true + false + + + 14 + + true + 1 + true + Label + 28 + false + 763e00b7:150973f1dd8:-6a21 + 12 + 656 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_67 + 0 + false + /cfs/cfe_sb/PipeDepthStats_14_Depth + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 53 + false + 763e00b7:150973f1dd8:-6a20 + 143 + 656 + + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + Check Box_14 + /cfs/cfe_sb/PipeDepthStats_14_InUse + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 21 + 763e00b7:150973f1dd8:-6a1f + 58 + 656 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_68 + 0 + false + /cfs/cfe_sb/PipeDepthStats_14_PeakInUse + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 85 + false + 763e00b7:150973f1dd8:-6a1e + 195 + 656 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_69 + 0 + false + /cfs/cfe_sb/PipeDepthStats_15_PipeID + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 47 + false + 763e00b7:150973f1dd8:-6a1d + 97 + 675 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_34 + + + true + true + false + + + 15 + + true + 1 + true + Label + 28 + false + 763e00b7:150973f1dd8:-6a1c + 12 + 675 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_70 + 0 + false + /cfs/cfe_sb/PipeDepthStats_15_Depth + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 53 + false + 763e00b7:150973f1dd8:-6a1b + 143 + 675 + + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + Check Box_15 + /cfs/cfe_sb/PipeDepthStats_15_InUse + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 21 + 763e00b7:150973f1dd8:-6a1a + 58 + 675 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_71 + 0 + false + /cfs/cfe_sb/PipeDepthStats_15_PeakInUse + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 85 + false + 763e00b7:150973f1dd8:-6a19 + 195 + 675 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_72 + 0 + false + /cfs/cfe_sb/PipeDepthStats_16_PipeID + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 47 + false + 763e00b7:150973f1dd8:-6a18 + 97 + 694 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_35 + + + true + true + false + + + 16 + + true + 1 + true + Label + 28 + false + 763e00b7:150973f1dd8:-6a17 + 12 + 694 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_73 + 0 + false + /cfs/cfe_sb/PipeDepthStats_16_Depth + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 53 + false + 763e00b7:150973f1dd8:-6a16 + 143 + 694 + + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + Check Box_16 + /cfs/cfe_sb/PipeDepthStats_16_InUse + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 21 + 763e00b7:150973f1dd8:-6a15 + 58 + 694 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_74 + 0 + false + /cfs/cfe_sb/PipeDepthStats_16_PeakInUse + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 85 + false + 763e00b7:150973f1dd8:-6a14 + 195 + 694 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_75 + 0 + false + /cfs/cfe_sb/PipeDepthStats_17_PipeID + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 47 + false + 763e00b7:150973f1dd8:-6a13 + 97 + 713 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_36 + + + true + true + false + + + 17 + + true + 1 + true + Label + 28 + false + 763e00b7:150973f1dd8:-6a12 + 12 + 713 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_76 + 0 + false + /cfs/cfe_sb/PipeDepthStats_17_Depth + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 53 + false + 763e00b7:150973f1dd8:-6a11 + 143 + 713 + + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + Check Box_17 + /cfs/cfe_sb/PipeDepthStats_17_InUse + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 21 + 763e00b7:150973f1dd8:-6a10 + 58 + 713 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_77 + 0 + false + /cfs/cfe_sb/PipeDepthStats_17_PeakInUse + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 85 + false + 763e00b7:150973f1dd8:-6a0f + 195 + 713 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_78 + 0 + false + /cfs/cfe_sb/PipeDepthStats_18_PipeID + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 47 + false + 763e00b7:150973f1dd8:-6a0e + 97 + 732 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_37 + + + true + true + false + + + 18 + + true + 1 + true + Label + 28 + false + 763e00b7:150973f1dd8:-6a0d + 12 + 732 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_79 + 0 + false + /cfs/cfe_sb/PipeDepthStats_18_Depth + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 53 + false + 763e00b7:150973f1dd8:-6a0c + 143 + 732 + + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + Check Box_18 + /cfs/cfe_sb/PipeDepthStats_18_InUse + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 21 + 763e00b7:150973f1dd8:-6a0b + 58 + 732 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_80 + 0 + false + /cfs/cfe_sb/PipeDepthStats_18_PeakInUse + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 85 + false + 763e00b7:150973f1dd8:-6a0a + 195 + 732 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_81 + 0 + false + /cfs/cfe_sb/PipeDepthStats_19_PipeID + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 47 + false + 763e00b7:150973f1dd8:-6a09 + 97 + 751 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_38 + + + true + true + false + + + 19 + + true + 1 + true + Label + 28 + false + 763e00b7:150973f1dd8:-6a08 + 12 + 751 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_82 + 0 + false + /cfs/cfe_sb/PipeDepthStats_19_Depth + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 53 + false + 763e00b7:150973f1dd8:-6a07 + 143 + 751 + + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + Check Box_19 + /cfs/cfe_sb/PipeDepthStats_19_InUse + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 21 + 763e00b7:150973f1dd8:-6a06 + 58 + 751 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_83 + 0 + false + /cfs/cfe_sb/PipeDepthStats_19_PeakInUse + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 85 + false + 763e00b7:150973f1dd8:-6a05 + 195 + 751 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_84 + 0 + false + /cfs/cfe_sb/PipeDepthStats_20_PipeID + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 47 + false + 763e00b7:150973f1dd8:-696b + 97 + 770 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_39 + + + true + true + false + + + 20 + + true + 1 + true + Label + 28 + false + 763e00b7:150973f1dd8:-696a + 12 + 770 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_85 + 0 + false + /cfs/cfe_sb/PipeDepthStats_20_Depth + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 53 + false + 763e00b7:150973f1dd8:-6969 + 143 + 770 + + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + Check Box_20 + /cfs/cfe_sb/PipeDepthStats_20_InUse + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 21 + 763e00b7:150973f1dd8:-6968 + 58 + 770 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_86 + 0 + false + /cfs/cfe_sb/PipeDepthStats_20_PeakInUse + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 85 + false + 763e00b7:150973f1dd8:-6967 + 195 + 770 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_87 + 0 + false + /cfs/cfe_sb/PipeDepthStats_21_PipeID + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 47 + false + 763e00b7:150973f1dd8:-6966 + 97 + 789 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_40 + + + true + true + false + + + 21 + + true + 1 + true + Label + 28 + false + 763e00b7:150973f1dd8:-6965 + 12 + 789 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_88 + 0 + false + /cfs/cfe_sb/PipeDepthStats_21_Depth + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 53 + false + 763e00b7:150973f1dd8:-6964 + 143 + 789 + + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + Check Box_21 + /cfs/cfe_sb/PipeDepthStats_21_InUse + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 21 + 763e00b7:150973f1dd8:-6963 + 58 + 789 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_89 + 0 + false + /cfs/cfe_sb/PipeDepthStats_21_PeakInUse + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 85 + false + 763e00b7:150973f1dd8:-6962 + 195 + 789 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_90 + 0 + false + /cfs/cfe_sb/PipeDepthStats_22_PipeID + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 47 + false + 763e00b7:150973f1dd8:-6961 + 97 + 808 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_41 + + + true + true + false + + + 22 + + true + 1 + true + Label + 28 + false + 763e00b7:150973f1dd8:-6960 + 12 + 808 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_91 + 0 + false + /cfs/cfe_sb/PipeDepthStats_22_Depth + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 53 + false + 763e00b7:150973f1dd8:-695f + 143 + 808 + + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + Check Box_22 + /cfs/cfe_sb/PipeDepthStats_22_InUse + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 21 + 763e00b7:150973f1dd8:-695e + 58 + 808 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_92 + 0 + false + /cfs/cfe_sb/PipeDepthStats_22_PeakInUse + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 85 + false + 763e00b7:150973f1dd8:-695d + 195 + 808 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_93 + 0 + false + /cfs/cfe_sb/PipeDepthStats_23_PipeID + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 47 + false + 763e00b7:150973f1dd8:-695c + 97 + 827 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_42 + + + true + true + false + + + 23 + + true + 1 + true + Label + 28 + false + 763e00b7:150973f1dd8:-695b + 12 + 827 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_94 + 0 + false + /cfs/cfe_sb/PipeDepthStats_23_Depth + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 53 + false + 763e00b7:150973f1dd8:-695a + 143 + 827 + + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + Check Box_23 + /cfs/cfe_sb/PipeDepthStats_23_InUse + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 21 + 763e00b7:150973f1dd8:-6959 + 58 + 827 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_95 + 0 + false + /cfs/cfe_sb/PipeDepthStats_23_PeakInUse + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 85 + false + 763e00b7:150973f1dd8:-6958 + 195 + 827 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_96 + 0 + false + /cfs/cfe_sb/PipeDepthStats_24_PipeID + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 47 + false + 763e00b7:150973f1dd8:-6957 + 97 + 846 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_43 + + + true + true + false + + + 24 + + true + 1 + true + Label + 28 + false + 763e00b7:150973f1dd8:-6956 + 12 + 846 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_97 + 0 + false + /cfs/cfe_sb/PipeDepthStats_24_Depth + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 53 + false + 763e00b7:150973f1dd8:-6955 + 143 + 846 + + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + Check Box_24 + /cfs/cfe_sb/PipeDepthStats_24_InUse + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 21 + 763e00b7:150973f1dd8:-6954 + 58 + 846 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_98 + 0 + false + /cfs/cfe_sb/PipeDepthStats_24_PeakInUse + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 85 + false + 763e00b7:150973f1dd8:-6953 + 195 + 846 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_99 + 0 + false + /cfs/cfe_sb/PipeDepthStats_25_PipeID + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 47 + false + 763e00b7:150973f1dd8:-6952 + 97 + 865 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_44 + + + true + true + false + + + 25 + + true + 1 + true + Label + 28 + false + 763e00b7:150973f1dd8:-6951 + 12 + 865 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_100 + 0 + false + /cfs/cfe_sb/PipeDepthStats_25_Depth + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 53 + false + 763e00b7:150973f1dd8:-6950 + 143 + 865 + + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + Check Box_25 + /cfs/cfe_sb/PipeDepthStats_25_InUse + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 21 + 763e00b7:150973f1dd8:-694f + 58 + 865 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_101 + 0 + false + /cfs/cfe_sb/PipeDepthStats_25_PeakInUse + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 85 + false + 763e00b7:150973f1dd8:-694e + 195 + 865 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_102 + 0 + false + /cfs/cfe_sb/PipeDepthStats_26_PipeID + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 47 + false + 763e00b7:150973f1dd8:-694d + 97 + 884 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_45 + + + true + true + false + + + 26 + + true + 1 + true + Label + 28 + false + 763e00b7:150973f1dd8:-694c + 12 + 884 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_103 + 0 + false + /cfs/cfe_sb/PipeDepthStats_26_Depth + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 53 + false + 763e00b7:150973f1dd8:-694b + 143 + 884 + + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + Check Box_26 + /cfs/cfe_sb/PipeDepthStats_26_InUse + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 21 + 763e00b7:150973f1dd8:-694a + 58 + 884 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_104 + 0 + false + /cfs/cfe_sb/PipeDepthStats_26_PeakInUse + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 85 + false + 763e00b7:150973f1dd8:-6949 + 195 + 884 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_105 + 0 + false + /cfs/cfe_sb/PipeDepthStats_27_PipeID + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 47 + false + 763e00b7:150973f1dd8:-6948 + 97 + 903 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_46 + + + true + true + false + + + 27 + + true + 1 + true + Label + 28 + false + 763e00b7:150973f1dd8:-6947 + 12 + 903 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_106 + 0 + false + /cfs/cfe_sb/PipeDepthStats_27_Depth + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 53 + false + 763e00b7:150973f1dd8:-6946 + 143 + 903 + + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + Check Box_27 + /cfs/cfe_sb/PipeDepthStats_27_InUse + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 21 + 763e00b7:150973f1dd8:-6945 + 58 + 903 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_107 + 0 + false + /cfs/cfe_sb/PipeDepthStats_27_PeakInUse + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 85 + false + 763e00b7:150973f1dd8:-6944 + 195 + 903 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_108 + 0 + false + /cfs/cfe_sb/PipeDepthStats_28_PipeID + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 47 + false + 763e00b7:150973f1dd8:-6943 + 97 + 922 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_47 + + + true + true + false + + + 28 + + true + 1 + true + Label + 28 + false + 763e00b7:150973f1dd8:-6942 + 12 + 922 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_109 + 0 + false + /cfs/cfe_sb/PipeDepthStats_28_Depth + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 53 + false + 763e00b7:150973f1dd8:-6941 + 143 + 922 + + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + Check Box_28 + /cfs/cfe_sb/PipeDepthStats_28_InUse + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 21 + 763e00b7:150973f1dd8:-6940 + 58 + 922 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_110 + 0 + false + /cfs/cfe_sb/PipeDepthStats_28_PeakInUse + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 85 + false + 763e00b7:150973f1dd8:-693f + 195 + 922 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_111 + 0 + false + /cfs/cfe_sb/PipeDepthStats_29_PipeID + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 47 + false + 763e00b7:150973f1dd8:-693e + 97 + 941 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_48 + + + true + true + false + + + 29 + + true + 1 + true + Label + 28 + false + 763e00b7:150973f1dd8:-693d + 12 + 941 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_112 + 0 + false + /cfs/cfe_sb/PipeDepthStats_29_Depth + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 53 + false + 763e00b7:150973f1dd8:-693c + 143 + 941 + + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + Check Box_29 + /cfs/cfe_sb/PipeDepthStats_29_InUse + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 21 + 763e00b7:150973f1dd8:-693b + 58 + 941 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_113 + 0 + false + /cfs/cfe_sb/PipeDepthStats_29_PeakInUse + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 85 + false + 763e00b7:150973f1dd8:-693a + 195 + 941 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_114 + 0 + false + /cfs/cfe_sb/PipeDepthStats_30_PipeID + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 47 + false + 763e00b7:150973f1dd8:-68a0 + 97 + 960 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_49 + + + true + true + false + + + 30 + + true + 1 + true + Label + 28 + false + 763e00b7:150973f1dd8:-689f + 12 + 960 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_115 + 0 + false + /cfs/cfe_sb/PipeDepthStats_30_Depth + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 53 + false + 763e00b7:150973f1dd8:-689e + 143 + 960 + + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + Check Box_30 + /cfs/cfe_sb/PipeDepthStats_30_InUse + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 21 + 763e00b7:150973f1dd8:-689d + 58 + 960 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_116 + 0 + false + /cfs/cfe_sb/PipeDepthStats_30_PeakInUse + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 85 + false + 763e00b7:150973f1dd8:-689c + 195 + 960 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_117 + 0 + false + /cfs/cfe_sb/PipeDepthStats_31_PipeID + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 47 + false + 763e00b7:150973f1dd8:-689b + 97 + 979 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_50 + + + true + true + false + + + 31 + + true + 1 + true + Label + 28 + false + 763e00b7:150973f1dd8:-689a + 12 + 979 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_118 + 0 + false + /cfs/cfe_sb/PipeDepthStats_31_Depth + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 53 + false + 763e00b7:150973f1dd8:-6899 + 143 + 979 + + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + Check Box_31 + /cfs/cfe_sb/PipeDepthStats_31_InUse + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 21 + 763e00b7:150973f1dd8:-6898 + 58 + 979 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_119 + 0 + false + /cfs/cfe_sb/PipeDepthStats_31_PeakInUse + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 85 + false + 763e00b7:150973f1dd8:-6897 + 195 + 979 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_120 + 0 + false + /cfs/cfe_sb/PipeDepthStats_32_PipeID + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 47 + false + 763e00b7:150973f1dd8:-6896 + 97 + 998 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_51 + + + true + true + false + + + 32 + + true + 1 + true + Label + 28 + false + 763e00b7:150973f1dd8:-6895 + 12 + 998 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_121 + 0 + false + /cfs/cfe_sb/PipeDepthStats_32_Depth + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 53 + false + 763e00b7:150973f1dd8:-6894 + 143 + 998 + + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + Check Box_32 + /cfs/cfe_sb/PipeDepthStats_32_InUse + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 21 + 763e00b7:150973f1dd8:-6893 + 58 + 998 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_122 + 0 + false + /cfs/cfe_sb/PipeDepthStats_32_PeakInUse + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 85 + false + 763e00b7:150973f1dd8:-6892 + 195 + 998 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_123 + 0 + false + /cfs/cfe_sb/PipeDepthStats_33_PipeID + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 47 + false + 763e00b7:150973f1dd8:-6891 + 97 + 1017 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_52 + + + true + true + false + + + 33 + + true + 1 + true + Label + 28 + false + 763e00b7:150973f1dd8:-6890 + 12 + 1017 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_124 + 0 + false + /cfs/cfe_sb/PipeDepthStats_33_Depth + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 53 + false + 763e00b7:150973f1dd8:-688f + 143 + 1017 + + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + Check Box_33 + /cfs/cfe_sb/PipeDepthStats_33_InUse + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 21 + 763e00b7:150973f1dd8:-688e + 58 + 1017 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_125 + 0 + false + /cfs/cfe_sb/PipeDepthStats_33_PeakInUse + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 85 + false + 763e00b7:150973f1dd8:-688d + 195 + 1017 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_126 + 0 + false + /cfs/cfe_sb/PipeDepthStats_34_PipeID + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 47 + false + 763e00b7:150973f1dd8:-688c + 97 + 1036 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_53 + + + true + true + false + + + 34 + + true + 1 + true + Label + 28 + false + 763e00b7:150973f1dd8:-688b + 12 + 1036 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_127 + 0 + false + /cfs/cfe_sb/PipeDepthStats_34_Depth + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 53 + false + 763e00b7:150973f1dd8:-688a + 143 + 1036 + + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + Check Box_34 + /cfs/cfe_sb/PipeDepthStats_34_InUse + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 21 + 763e00b7:150973f1dd8:-6889 + 58 + 1036 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_128 + 0 + false + /cfs/cfe_sb/PipeDepthStats_34_PeakInUse + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 85 + false + 763e00b7:150973f1dd8:-6888 + 195 + 1036 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_129 + 0 + false + /cfs/cfe_sb/PipeDepthStats_35_PipeID + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 47 + false + 763e00b7:150973f1dd8:-6887 + 97 + 1055 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_54 + + + true + true + false + + + 35 + + true + 1 + true + Label + 28 + false + 763e00b7:150973f1dd8:-6886 + 12 + 1055 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_130 + 0 + false + /cfs/cfe_sb/PipeDepthStats_35_Depth + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 53 + false + 763e00b7:150973f1dd8:-6885 + 143 + 1055 + + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + Check Box_35 + /cfs/cfe_sb/PipeDepthStats_35_InUse + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 21 + 763e00b7:150973f1dd8:-6884 + 58 + 1055 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_131 + 0 + false + /cfs/cfe_sb/PipeDepthStats_35_PeakInUse + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 85 + false + 763e00b7:150973f1dd8:-6883 + 195 + 1055 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_132 + 0 + false + /cfs/cfe_sb/PipeDepthStats_36_PipeID + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 47 + false + 763e00b7:150973f1dd8:-6882 + 97 + 1074 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_55 + + + true + true + false + + + 36 + + true + 1 + true + Label + 28 + false + 763e00b7:150973f1dd8:-6881 + 12 + 1074 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_133 + 0 + false + /cfs/cfe_sb/PipeDepthStats_36_Depth + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 53 + false + 763e00b7:150973f1dd8:-6880 + 143 + 1074 + + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + Check Box_36 + /cfs/cfe_sb/PipeDepthStats_36_InUse + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 21 + 763e00b7:150973f1dd8:-687f + 58 + 1074 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_134 + 0 + false + /cfs/cfe_sb/PipeDepthStats_36_PeakInUse + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 85 + false + 763e00b7:150973f1dd8:-687e + 195 + 1074 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_135 + 0 + false + /cfs/cfe_sb/PipeDepthStats_37_PipeID + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 47 + false + 763e00b7:150973f1dd8:-687d + 97 + 1093 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_56 + + + true + true + false + + + 37 + + true + 1 + true + Label + 28 + false + 763e00b7:150973f1dd8:-687c + 12 + 1093 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_136 + 0 + false + /cfs/cfe_sb/PipeDepthStats_37_Depth + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 53 + false + 763e00b7:150973f1dd8:-687b + 143 + 1093 + + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + Check Box_37 + /cfs/cfe_sb/PipeDepthStats_37_InUse + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 21 + 763e00b7:150973f1dd8:-687a + 58 + 1093 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_137 + 0 + false + /cfs/cfe_sb/PipeDepthStats_37_PeakInUse + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 85 + false + 763e00b7:150973f1dd8:-6879 + 195 + 1093 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_138 + 0 + false + /cfs/cfe_sb/PipeDepthStats_38_PipeID + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 47 + false + 763e00b7:150973f1dd8:-6878 + 97 + 1112 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_57 + + + true + true + false + + + 38 + + true + 1 + true + Label + 28 + false + 763e00b7:150973f1dd8:-6877 + 12 + 1112 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_139 + 0 + false + /cfs/cfe_sb/PipeDepthStats_38_Depth + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 53 + false + 763e00b7:150973f1dd8:-6876 + 143 + 1112 + + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + Check Box_38 + /cfs/cfe_sb/PipeDepthStats_38_InUse + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 21 + 763e00b7:150973f1dd8:-6875 + 58 + 1112 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_140 + 0 + false + /cfs/cfe_sb/PipeDepthStats_38_PeakInUse + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 85 + false + 763e00b7:150973f1dd8:-6874 + 195 + 1112 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_141 + 0 + false + /cfs/cfe_sb/PipeDepthStats_39_PipeID + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 47 + false + 763e00b7:150973f1dd8:-6873 + 97 + 1131 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_58 + + + true + true + false + + + 39 + + true + 1 + true + Label + 28 + false + 763e00b7:150973f1dd8:-6872 + 12 + 1131 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_142 + 0 + false + /cfs/cfe_sb/PipeDepthStats_39_Depth + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 53 + false + 763e00b7:150973f1dd8:-6871 + 143 + 1131 + + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + Check Box_39 + /cfs/cfe_sb/PipeDepthStats_39_InUse + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 21 + 763e00b7:150973f1dd8:-6870 + 58 + 1131 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_143 + 0 + false + /cfs/cfe_sb/PipeDepthStats_39_PeakInUse + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 85 + false + 763e00b7:150973f1dd8:-686f + 195 + 1131 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_144 + 0 + false + /cfs/cfe_sb/PipeDepthStats_40_PipeID + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 47 + false + 763e00b7:150973f1dd8:-67d5 + 97 + 1150 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_59 + + + true + true + false + + + 40 + + true + 1 + true + Label + 28 + false + 763e00b7:150973f1dd8:-67d4 + 12 + 1150 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_145 + 0 + false + /cfs/cfe_sb/PipeDepthStats_40_Depth + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 53 + false + 763e00b7:150973f1dd8:-67d3 + 143 + 1150 + + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + Check Box_40 + /cfs/cfe_sb/PipeDepthStats_40_InUse + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 21 + 763e00b7:150973f1dd8:-67d2 + 58 + 1150 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_146 + 0 + false + /cfs/cfe_sb/PipeDepthStats_40_PeakInUse + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 85 + false + 763e00b7:150973f1dd8:-67d1 + 195 + 1150 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_147 + 0 + false + /cfs/cfe_sb/PipeDepthStats_41_PipeID + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 47 + false + 763e00b7:150973f1dd8:-67d0 + 97 + 1169 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_60 + + + true + true + false + + + 41 + + true + 1 + true + Label + 28 + false + 763e00b7:150973f1dd8:-67cf + 12 + 1169 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_148 + 0 + false + /cfs/cfe_sb/PipeDepthStats_41_Depth + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 53 + false + 763e00b7:150973f1dd8:-67ce + 143 + 1169 + + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + Check Box_41 + /cfs/cfe_sb/PipeDepthStats_41_InUse + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 21 + 763e00b7:150973f1dd8:-67cd + 58 + 1169 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_149 + 0 + false + /cfs/cfe_sb/PipeDepthStats_41_PeakInUse + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 85 + false + 763e00b7:150973f1dd8:-67cc + 195 + 1169 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_150 + 0 + false + /cfs/cfe_sb/PipeDepthStats_42_PipeID + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 47 + false + 763e00b7:150973f1dd8:-67cb + 97 + 1188 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_61 + + + true + true + false + + + 42 + + true + 1 + true + Label + 28 + false + 763e00b7:150973f1dd8:-67ca + 12 + 1188 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_151 + 0 + false + /cfs/cfe_sb/PipeDepthStats_42_Depth + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 53 + false + 763e00b7:150973f1dd8:-67c9 + 143 + 1188 + + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + Check Box_42 + /cfs/cfe_sb/PipeDepthStats_42_InUse + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 21 + 763e00b7:150973f1dd8:-67c8 + 58 + 1188 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_152 + 0 + false + /cfs/cfe_sb/PipeDepthStats_42_PeakInUse + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 85 + false + 763e00b7:150973f1dd8:-67c7 + 195 + 1188 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_153 + 0 + false + /cfs/cfe_sb/PipeDepthStats_43_PipeID + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 47 + false + 763e00b7:150973f1dd8:-67c6 + 97 + 1207 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_62 + + + true + true + false + + + 43 + + true + 1 + true + Label + 28 + false + 763e00b7:150973f1dd8:-67c5 + 12 + 1207 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_154 + 0 + false + /cfs/cfe_sb/PipeDepthStats_43_Depth + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 53 + false + 763e00b7:150973f1dd8:-67c4 + 143 + 1207 + + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + Check Box_43 + /cfs/cfe_sb/PipeDepthStats_43_InUse + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 21 + 763e00b7:150973f1dd8:-67c3 + 58 + 1207 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_155 + 0 + false + /cfs/cfe_sb/PipeDepthStats_43_PeakInUse + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 85 + false + 763e00b7:150973f1dd8:-67c2 + 195 + 1207 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_156 + 0 + false + /cfs/cfe_sb/PipeDepthStats_44_PipeID + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 47 + false + 763e00b7:150973f1dd8:-67c1 + 97 + 1226 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_63 + + + true + true + false + + + 44 + + true + 1 + true + Label + 28 + false + 763e00b7:150973f1dd8:-67c0 + 12 + 1226 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_157 + 0 + false + /cfs/cfe_sb/PipeDepthStats_44_Depth + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 53 + false + 763e00b7:150973f1dd8:-67bf + 143 + 1226 + + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + Check Box_44 + /cfs/cfe_sb/PipeDepthStats_44_InUse + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 21 + 763e00b7:150973f1dd8:-67be + 58 + 1226 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_158 + 0 + false + /cfs/cfe_sb/PipeDepthStats_44_PeakInUse + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 85 + false + 763e00b7:150973f1dd8:-67bd + 195 + 1226 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_159 + 0 + false + /cfs/cfe_sb/PipeDepthStats_45_PipeID + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 47 + false + 763e00b7:150973f1dd8:-67bc + 97 + 1245 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_64 + + + true + true + false + + + 45 + + true + 1 + true + Label + 28 + false + 763e00b7:150973f1dd8:-67bb + 12 + 1245 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_160 + 0 + false + /cfs/cfe_sb/PipeDepthStats_45_Depth + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 53 + false + 763e00b7:150973f1dd8:-67ba + 143 + 1245 + + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + Check Box_45 + /cfs/cfe_sb/PipeDepthStats_45_InUse + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 21 + 763e00b7:150973f1dd8:-67b9 + 58 + 1245 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_161 + 0 + false + /cfs/cfe_sb/PipeDepthStats_45_PeakInUse + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 85 + false + 763e00b7:150973f1dd8:-67b8 + 195 + 1245 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_162 + 0 + false + /cfs/cfe_sb/PipeDepthStats_46_PipeID + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 47 + false + 763e00b7:150973f1dd8:-67b7 + 97 + 1264 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_65 + + + true + true + false + + + 46 + + true + 1 + true + Label + 28 + false + 763e00b7:150973f1dd8:-67b6 + 12 + 1264 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_163 + 0 + false + /cfs/cfe_sb/PipeDepthStats_46_Depth + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 53 + false + 763e00b7:150973f1dd8:-67b5 + 143 + 1264 + + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + Check Box_46 + /cfs/cfe_sb/PipeDepthStats_46_InUse + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 21 + 763e00b7:150973f1dd8:-67b4 + 58 + 1264 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_164 + 0 + false + /cfs/cfe_sb/PipeDepthStats_46_PeakInUse + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 85 + false + 763e00b7:150973f1dd8:-67b3 + 195 + 1264 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_165 + 0 + false + /cfs/cfe_sb/PipeDepthStats_47_PipeID + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 47 + false + 763e00b7:150973f1dd8:-67b2 + 97 + 1283 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_66 + + + true + true + false + + + 47 + + true + 1 + true + Label + 28 + false + 763e00b7:150973f1dd8:-67b1 + 12 + 1283 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_166 + 0 + false + /cfs/cfe_sb/PipeDepthStats_47_Depth + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 53 + false + 763e00b7:150973f1dd8:-67b0 + 143 + 1283 + + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + Check Box_47 + /cfs/cfe_sb/PipeDepthStats_47_InUse + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 21 + 763e00b7:150973f1dd8:-67af + 58 + 1283 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_167 + 0 + false + /cfs/cfe_sb/PipeDepthStats_47_PeakInUse + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 85 + false + 763e00b7:150973f1dd8:-67ae + 195 + 1283 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_168 + 0 + false + /cfs/cfe_sb/PipeDepthStats_48_PipeID + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 47 + false + 763e00b7:150973f1dd8:-67ad + 97 + 1302 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_67 + + + true + true + false + + + 48 + + true + 1 + true + Label + 28 + false + 763e00b7:150973f1dd8:-67ac + 12 + 1302 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_169 + 0 + false + /cfs/cfe_sb/PipeDepthStats_48_Depth + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 53 + false + 763e00b7:150973f1dd8:-67ab + 143 + 1302 + + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + Check Box_48 + /cfs/cfe_sb/PipeDepthStats_48_InUse + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 21 + 763e00b7:150973f1dd8:-67aa + 58 + 1302 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_170 + 0 + false + /cfs/cfe_sb/PipeDepthStats_48_PeakInUse + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 85 + false + 763e00b7:150973f1dd8:-67a9 + 195 + 1302 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_171 + 0 + false + /cfs/cfe_sb/PipeDepthStats_49_PipeID + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 47 + false + 763e00b7:150973f1dd8:-67a8 + 97 + 1321 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_68 + + + true + true + false + + + 49 + + true + 1 + true + Label + 28 + false + 763e00b7:150973f1dd8:-67a7 + 12 + 1321 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_172 + 0 + false + /cfs/cfe_sb/PipeDepthStats_49_Depth + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 53 + false + 763e00b7:150973f1dd8:-67a6 + 143 + 1321 + + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + Check Box_49 + /cfs/cfe_sb/PipeDepthStats_49_InUse + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 21 + 763e00b7:150973f1dd8:-67a5 + 58 + 1321 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_173 + 0 + false + /cfs/cfe_sb/PipeDepthStats_49_PeakInUse + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 85 + false + 763e00b7:150973f1dd8:-67a4 + 195 + 1321 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_174 + 0 + false + /cfs/cfe_sb/PipeDepthStats_50_PipeID + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 47 + false + 763e00b7:150973f1dd8:-670a + 97 + 1340 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_69 + + + true + true + false + + + 50 + + true + 1 + true + Label + 28 + false + 763e00b7:150973f1dd8:-6709 + 12 + 1340 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_175 + 0 + false + /cfs/cfe_sb/PipeDepthStats_50_Depth + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 53 + false + 763e00b7:150973f1dd8:-6708 + 143 + 1340 + + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + Check Box_50 + /cfs/cfe_sb/PipeDepthStats_50_InUse + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 21 + 763e00b7:150973f1dd8:-6707 + 58 + 1340 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_176 + 0 + false + /cfs/cfe_sb/PipeDepthStats_50_PeakInUse + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 85 + false + 763e00b7:150973f1dd8:-6706 + 195 + 1340 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_177 + 0 + false + /cfs/cfe_sb/PipeDepthStats_51_PipeID + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 47 + false + 763e00b7:150973f1dd8:-6705 + 97 + 1359 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_70 + + + true + true + false + + + 51 + + true + 1 + true + Label + 28 + false + 763e00b7:150973f1dd8:-6704 + 12 + 1359 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_178 + 0 + false + /cfs/cfe_sb/PipeDepthStats_51_Depth + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 53 + false + 763e00b7:150973f1dd8:-6703 + 143 + 1359 + + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + Check Box_51 + /cfs/cfe_sb/PipeDepthStats_51_InUse + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 21 + 763e00b7:150973f1dd8:-6702 + 58 + 1359 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_179 + 0 + false + /cfs/cfe_sb/PipeDepthStats_51_PeakInUse + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 85 + false + 763e00b7:150973f1dd8:-6701 + 195 + 1359 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_180 + 0 + false + /cfs/cfe_sb/PipeDepthStats_52_PipeID + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 47 + false + 763e00b7:150973f1dd8:-6700 + 97 + 1378 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_71 + + + true + true + false + + + 52 + + true + 1 + true + Label + 28 + false + 763e00b7:150973f1dd8:-66ff + 12 + 1378 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_181 + 0 + false + /cfs/cfe_sb/PipeDepthStats_52_Depth + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 53 + false + 763e00b7:150973f1dd8:-66fe + 143 + 1378 + + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + Check Box_52 + /cfs/cfe_sb/PipeDepthStats_52_InUse + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 21 + 763e00b7:150973f1dd8:-66fd + 58 + 1378 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_182 + 0 + false + /cfs/cfe_sb/PipeDepthStats_52_PeakInUse + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 85 + false + 763e00b7:150973f1dd8:-66fc + 195 + 1378 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_183 + 0 + false + /cfs/cfe_sb/PipeDepthStats_53_PipeID + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 47 + false + 763e00b7:150973f1dd8:-66fb + 97 + 1397 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_72 + + + true + true + false + + + 53 + + true + 1 + true + Label + 28 + false + 763e00b7:150973f1dd8:-66fa + 12 + 1397 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_184 + 0 + false + /cfs/cfe_sb/PipeDepthStats_53_Depth + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 53 + false + 763e00b7:150973f1dd8:-66f9 + 143 + 1397 + + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + Check Box_53 + /cfs/cfe_sb/PipeDepthStats_53_InUse + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 21 + 763e00b7:150973f1dd8:-66f8 + 58 + 1397 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_185 + 0 + false + /cfs/cfe_sb/PipeDepthStats_53_PeakInUse + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 85 + false + 763e00b7:150973f1dd8:-66f7 + 195 + 1397 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_186 + 0 + false + /cfs/cfe_sb/PipeDepthStats_54_PipeID + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 47 + false + 763e00b7:150973f1dd8:-66f6 + 97 + 1416 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_73 + + + true + true + false + + + 54 + + true + 1 + true + Label + 28 + false + 763e00b7:150973f1dd8:-66f5 + 12 + 1416 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_187 + 0 + false + /cfs/cfe_sb/PipeDepthStats_54_Depth + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 53 + false + 763e00b7:150973f1dd8:-66f4 + 143 + 1416 + + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + Check Box_54 + /cfs/cfe_sb/PipeDepthStats_54_InUse + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 21 + 763e00b7:150973f1dd8:-66f3 + 58 + 1416 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_188 + 0 + false + /cfs/cfe_sb/PipeDepthStats_54_PeakInUse + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 85 + false + 763e00b7:150973f1dd8:-66f2 + 195 + 1416 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_189 + 0 + false + /cfs/cfe_sb/PipeDepthStats_55_PipeID + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 47 + false + 763e00b7:150973f1dd8:-66f1 + 97 + 1435 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_74 + + + true + true + false + + + 55 + + true + 1 + true + Label + 28 + false + 763e00b7:150973f1dd8:-66f0 + 12 + 1435 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_190 + 0 + false + /cfs/cfe_sb/PipeDepthStats_55_Depth + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 53 + false + 763e00b7:150973f1dd8:-66ef + 143 + 1435 + + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + Check Box_55 + /cfs/cfe_sb/PipeDepthStats_55_InUse + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 21 + 763e00b7:150973f1dd8:-66ee + 58 + 1435 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_191 + 0 + false + /cfs/cfe_sb/PipeDepthStats_55_PeakInUse + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 85 + false + 763e00b7:150973f1dd8:-66ed + 195 + 1435 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_192 + 0 + false + /cfs/cfe_sb/PipeDepthStats_56_PipeID + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 47 + false + 763e00b7:150973f1dd8:-66ec + 97 + 1454 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_75 + + + true + true + false + + + 56 + + true + 1 + true + Label + 28 + false + 763e00b7:150973f1dd8:-66eb + 12 + 1454 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_193 + 0 + false + /cfs/cfe_sb/PipeDepthStats_56_Depth + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 53 + false + 763e00b7:150973f1dd8:-66ea + 143 + 1454 + + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + Check Box_56 + /cfs/cfe_sb/PipeDepthStats_56_InUse + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 21 + 763e00b7:150973f1dd8:-66e9 + 58 + 1454 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_194 + 0 + false + /cfs/cfe_sb/PipeDepthStats_56_PeakInUse + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 85 + false + 763e00b7:150973f1dd8:-66e8 + 195 + 1454 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_195 + 0 + false + /cfs/cfe_sb/PipeDepthStats_57_PipeID + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 47 + false + 763e00b7:150973f1dd8:-66e7 + 97 + 1473 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_76 + + + true + true + false + + + 57 + + true + 1 + true + Label + 28 + false + 763e00b7:150973f1dd8:-66e6 + 12 + 1473 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_196 + 0 + false + /cfs/cfe_sb/PipeDepthStats_57_Depth + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 53 + false + 763e00b7:150973f1dd8:-66e5 + 143 + 1473 + + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + Check Box_57 + /cfs/cfe_sb/PipeDepthStats_57_InUse + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 21 + 763e00b7:150973f1dd8:-66e4 + 58 + 1473 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_197 + 0 + false + /cfs/cfe_sb/PipeDepthStats_57_PeakInUse + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 85 + false + 763e00b7:150973f1dd8:-66e3 + 195 + 1473 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_198 + 0 + false + /cfs/cfe_sb/PipeDepthStats_58_PipeID + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 47 + false + 763e00b7:150973f1dd8:-66e2 + 97 + 1492 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_77 + + + true + true + false + + + 58 + + true + 1 + true + Label + 28 + false + 763e00b7:150973f1dd8:-66e1 + 12 + 1492 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_199 + 0 + false + /cfs/cfe_sb/PipeDepthStats_58_Depth + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 53 + false + 763e00b7:150973f1dd8:-66e0 + 143 + 1492 + + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + Check Box_58 + /cfs/cfe_sb/PipeDepthStats_58_InUse + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 21 + 763e00b7:150973f1dd8:-66df + 58 + 1492 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_200 + 0 + false + /cfs/cfe_sb/PipeDepthStats_58_PeakInUse + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 85 + false + 763e00b7:150973f1dd8:-66de + 195 + 1492 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_201 + 0 + false + /cfs/cfe_sb/PipeDepthStats_59_PipeID + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 47 + false + 763e00b7:150973f1dd8:-66dd + 97 + 1511 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_78 + + + true + true + false + + + 59 + + true + 1 + true + Label + 28 + false + 763e00b7:150973f1dd8:-66dc + 12 + 1511 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_202 + 0 + false + /cfs/cfe_sb/PipeDepthStats_59_Depth + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 53 + false + 763e00b7:150973f1dd8:-66db + 143 + 1511 + + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + Check Box_59 + /cfs/cfe_sb/PipeDepthStats_59_InUse + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 21 + 763e00b7:150973f1dd8:-66da + 58 + 1511 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_203 + 0 + false + /cfs/cfe_sb/PipeDepthStats_59_PeakInUse + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 85 + false + 763e00b7:150973f1dd8:-66d9 + 195 + 1511 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_204 + 0 + false + /cfs/cfe_sb/PipeDepthStats_60_PipeID + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 47 + false + 763e00b7:150973f1dd8:-663f + 97 + 1530 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_79 + + + true + true + false + + + 60 + + true + 1 + true + Label + 28 + false + 763e00b7:150973f1dd8:-663e + 12 + 1530 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_205 + 0 + false + /cfs/cfe_sb/PipeDepthStats_60_Depth + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 53 + false + 763e00b7:150973f1dd8:-663d + 143 + 1530 + + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + Check Box_60 + /cfs/cfe_sb/PipeDepthStats_60_InUse + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 21 + 763e00b7:150973f1dd8:-663c + 58 + 1530 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_206 + 0 + false + /cfs/cfe_sb/PipeDepthStats_60_PeakInUse + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 85 + false + 763e00b7:150973f1dd8:-663b + 195 + 1530 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_207 + 0 + false + /cfs/cfe_sb/PipeDepthStats_61_PipeID + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 47 + false + 763e00b7:150973f1dd8:-663a + 97 + 1549 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_80 + + + true + true + false + + + 61 + + true + 1 + true + Label + 28 + false + 763e00b7:150973f1dd8:-6639 + 12 + 1549 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_208 + 0 + false + /cfs/cfe_sb/PipeDepthStats_61_Depth + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 53 + false + 763e00b7:150973f1dd8:-6638 + 143 + 1549 + + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + Check Box_61 + /cfs/cfe_sb/PipeDepthStats_61_InUse + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 21 + 763e00b7:150973f1dd8:-6637 + 58 + 1549 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_209 + 0 + false + /cfs/cfe_sb/PipeDepthStats_61_PeakInUse + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 85 + false + 763e00b7:150973f1dd8:-6636 + 195 + 1549 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_210 + 0 + false + /cfs/cfe_sb/PipeDepthStats_62_PipeID + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 47 + false + 763e00b7:150973f1dd8:-6635 + 97 + 1568 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_81 + + + true + true + false + + + 62 + + true + 1 + true + Label + 28 + false + 763e00b7:150973f1dd8:-6634 + 12 + 1568 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_211 + 0 + false + /cfs/cfe_sb/PipeDepthStats_62_Depth + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 53 + false + 763e00b7:150973f1dd8:-6633 + 143 + 1568 + + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + Check Box_62 + /cfs/cfe_sb/PipeDepthStats_62_InUse + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 21 + 763e00b7:150973f1dd8:-6632 + 58 + 1568 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_212 + 0 + false + /cfs/cfe_sb/PipeDepthStats_62_PeakInUse + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 85 + false + 763e00b7:150973f1dd8:-6631 + 195 + 1568 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_213 + 0 + false + /cfs/cfe_sb/PipeDepthStats_63_PipeID + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 47 + false + 763e00b7:150973f1dd8:-6630 + 97 + 1587 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_82 + + + true + true + false + + + 63 + + true + 1 + true + Label + 28 + false + 763e00b7:150973f1dd8:-662f + 12 + 1587 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_214 + 0 + false + /cfs/cfe_sb/PipeDepthStats_63_Depth + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 53 + false + 763e00b7:150973f1dd8:-662e + 143 + 1587 + + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + Check Box_63 + /cfs/cfe_sb/PipeDepthStats_63_InUse + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 21 + 763e00b7:150973f1dd8:-662d + 58 + 1587 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_215 + 0 + false + /cfs/cfe_sb/PipeDepthStats_63_PeakInUse + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 85 + false + 763e00b7:150973f1dd8:-662c + 195 + 1587 + \ No newline at end of file diff --git a/tools/commander/workspace_template/Displays/Core/TBL/AbortTableLoad.opi b/tools/commander/workspace_template/Displays/Core/TBL/AbortTableLoad.opi index b45ee123e..38af584bf 100644 --- a/tools/commander/workspace_template/Displays/Core/TBL/AbortTableLoad.opi +++ b/tools/commander/workspace_template/Displays/Core/TBL/AbortTableLoad.opi @@ -1,81 +1,41 @@ - - true - - 35ebaa52:1509cf6a868:-791f - true - false - - 90 - - true - - 4.0.104.201510200439 - true - Display - - false - -1 - -1 - - - - - 275 - -1 - - 6 - true - -1 - true - - - - - - false - 0 - false - false - $(pv_name) -$(pv_value) - 0 - - true - 35ebaa52:1509cf6a868:-78ea - - Abort Table Load - - false - 25 - 1 - - true - true - false - - - true - - - - - Action Button - false - - - - 163 - 60 - Action Button - 54 - - - - - - - ../scripts/RestartApp.js + + + + false + -1 + -1 + + false + + + + 1.5.3 + + + + 6 + 90 + + true + + + + + true + true + true + true + true + Display + 275 + 35ebaa52:1509cf6a868:-791f + -1 + -1 + + + + ../scripts/RestartApp.js - true - - - - - Default - - - - 0 - - 2 - - true - 35ebaa52:1509cf6a868:-78e9 - true - false - Table Name - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 71 - 26 - Label - 18 - - - - - - Default - - - - false - 0 - $(pv_name) -$(pv_value) - 0 - - - false - ###### - 0.0 - true - 20 - false - 1 - true - loc://TableName<VString> - 0 - - - - true - Text Input - - TableName - - - 0 - false - true - 35ebaa52:1509cf6a868:-78e7 - false - - true - - true - true - false - - false - 4 - false - - - - 153 - 108 - 18 - 1.7976931348623157E308 - - - - -1.7976931348623157E308 - - Default - - +]]> + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 25 + + Action Button + 0 + + + + + true + true + false + + + + Abort Table Load + false + $(pv_name) +$(pv_value) + true + Action Button + 163 + 35ebaa52:1509cf6a868:-78ea + 60 + 54 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label + + + true + true + false + + + Table Name + + true + 1 + true + Label + 71 + false + 35ebaa52:1509cf6a868:-78e9 + 26 + 18 + + + + false + false + false + + + + true + + + + 1 + 1 + + true + + Default + + false + + + + 4 + 20 + 0 + false + 1.7976931348623157E308 + -1.7976931348623157E308 + false + TableName + 0 + true + loc://TableName<VString> + + 0.0 + + + true + true + false + + + 0 + true + + ###### + $(pv_name) +$(pv_value) + false + true + Text Input + 153 + 35ebaa52:1509cf6a868:-78e7 + 108 + 18 + \ No newline at end of file diff --git a/tools/commander/workspace_template/Displays/Core/TBL/ActivateTable.opi b/tools/commander/workspace_template/Displays/Core/TBL/ActivateTable.opi index f870db122..00398f226 100644 --- a/tools/commander/workspace_template/Displays/Core/TBL/ActivateTable.opi +++ b/tools/commander/workspace_template/Displays/Core/TBL/ActivateTable.opi @@ -1,81 +1,41 @@ - - true - - 35ebaa52:1509cf6a868:-791f - true - false - - 90 - - true - - 4.0.104.201510200439 - true - Display - - false - -1 - -1 - - - - - 275 - -1 - - 6 - true - -1 - true - - - - - - false - 0 - false - false - $(pv_name) -$(pv_value) - 0 - - true - 35ebaa52:1509cf6a868:-78ea - - Activate Table - - false - 25 - 1 - - true - true - false - - - true - - - - - Action Button - false - - - - 163 - 60 - Action Button - 54 - - - - - - - ../scripts/RestartApp.js + + + + false + -1 + -1 + + false + + + + 1.5.3 + + + + 6 + 90 + + true + + + + + true + true + true + true + true + Display + 275 + 35ebaa52:1509cf6a868:-791f + -1 + -1 + + + + ../scripts/RestartApp.js - true - - - - - Default - - - - 0 - - 2 - - true - 35ebaa52:1509cf6a868:-78e9 - true - false - Table Name - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 71 - 26 - Label - 18 - - - - - - Default - - - - false - 0 - $(pv_name) -$(pv_value) - 0 - - - false - ###### - 0.0 - true - 20 - false - 1 - true - loc://TableName<VString> - 0 - - - - true - Text Input - - TableName - - - 0 - false - true - 35ebaa52:1509cf6a868:-78e7 - false - - true - - true - true - false - - false - 4 - false - - - - 153 - 108 - 18 - 1.7976931348623157E308 - - - - -1.7976931348623157E308 - - Default - - +]]> + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 25 + + Action Button + 0 + + + + + true + true + false + + + + Activate Table + false + $(pv_name) +$(pv_value) + true + Action Button + 163 + 35ebaa52:1509cf6a868:-78ea + 60 + 54 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label + + + true + true + false + + + Table Name + + true + 1 + true + Label + 71 + false + 35ebaa52:1509cf6a868:-78e9 + 26 + 18 + + + + false + false + false + + + + true + + + + 1 + 1 + + true + + Default + + false + + + + 4 + 20 + 0 + false + 1.7976931348623157E308 + -1.7976931348623157E308 + false + TableName + 0 + true + loc://TableName<VString> + + 0.0 + + + true + true + false + + + 0 + true + + ###### + $(pv_name) +$(pv_value) + false + true + Text Input + 153 + 35ebaa52:1509cf6a868:-78e7 + 108 + 18 + \ No newline at end of file diff --git a/tools/commander/workspace_template/Displays/Core/TBL/DeleteCDS.opi b/tools/commander/workspace_template/Displays/Core/TBL/DeleteCDS.opi index f2d55fafc..5523bc9f8 100644 --- a/tools/commander/workspace_template/Displays/Core/TBL/DeleteCDS.opi +++ b/tools/commander/workspace_template/Displays/Core/TBL/DeleteCDS.opi @@ -1,81 +1,41 @@ - - true - - 35ebaa52:1509cf6a868:-791f - true - false - - 90 - - true - - 4.0.104.201510200439 - true - Display - - false - -1 - -1 - - - - - 275 - -1 - - 6 - true - -1 - true - - - - - - false - 0 - false - false - $(pv_name) -$(pv_value) - 0 - - true - 35ebaa52:1509cf6a868:-78ea - - Delete CDS - - false - 25 - 1 - - true - true - false - - - true - - - - - Action Button - false - - - - 163 - 60 - Action Button - 54 - - - - - - - ../scripts/RestartApp.js + + + + false + -1 + -1 + + false + + + + 1.5.3 + + + + 6 + 90 + + true + + + + + true + true + true + true + true + Display + 275 + 35ebaa52:1509cf6a868:-791f + -1 + -1 + + + + ../scripts/RestartApp.js - true - - - - - Default - - - - 0 - - 2 - - true - 35ebaa52:1509cf6a868:-78e9 - true - false - Table Name - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 71 - 26 - Label - 18 - - - - - - Default - - - - false - 0 - $(pv_name) -$(pv_value) - 0 - - - false - ###### - 0.0 - true - 20 - false - 1 - true - loc://TableName<VString> - 0 - - - - true - Text Input - - TableName - - - 0 - false - true - 35ebaa52:1509cf6a868:-78e7 - false - - true - - true - true - false - - false - 4 - false - - - - 153 - 108 - 18 - 1.7976931348623157E308 - - - - -1.7976931348623157E308 - - Default - - +]]> + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 25 + + Action Button + 0 + + + + + true + true + false + + + + Delete CDS + false + $(pv_name) +$(pv_value) + true + Action Button + 163 + 35ebaa52:1509cf6a868:-78ea + 60 + 54 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label + + + true + true + false + + + Table Name + + true + 1 + true + Label + 71 + false + 35ebaa52:1509cf6a868:-78e9 + 26 + 18 + + + + false + false + false + + + + true + + + + 1 + 1 + + true + + Default + + false + + + + 4 + 20 + 0 + false + 1.7976931348623157E308 + -1.7976931348623157E308 + false + TableName + 0 + true + loc://TableName<VString> + + 0.0 + + + true + true + false + + + 0 + true + + ###### + $(pv_name) +$(pv_value) + false + true + Text Input + 153 + 35ebaa52:1509cf6a868:-78e7 + 108 + 18 + \ No newline at end of file diff --git a/tools/commander/workspace_template/Displays/Core/TBL/DumpRegistry.opi b/tools/commander/workspace_template/Displays/Core/TBL/DumpRegistry.opi index c0cbb59ce..b28242f7c 100644 --- a/tools/commander/workspace_template/Displays/Core/TBL/DumpRegistry.opi +++ b/tools/commander/workspace_template/Displays/Core/TBL/DumpRegistry.opi @@ -1,81 +1,41 @@ - - true - - 35ebaa52:1509cf6a868:-791f - true - false - - 135 - - true - - 4.0.104.201510200439 - true - Display - - false - -1 - -1 - - - - - 275 - -1 - - 6 - true - -1 - true - - - - - - false - 0 - false - false - $(pv_name) -$(pv_value) - 0 - - true - 35ebaa52:1509cf6a868:-78ea - - Dump Registry - - false - 25 - 1 - - true - true - false - - - true - - - - - Action Button - false - - - - 163 - 54 - Action Button - 90 - - - - - - - ../scripts/RestartApp.js + + + + false + -1 + -1 + + false + + + + 1.5.3 + + + + 6 + 135 + + true + + + + + true + true + true + true + true + Display + 275 + 35ebaa52:1509cf6a868:-791f + -1 + -1 + + + + ../scripts/RestartApp.js - true - - - - - Default - - - - 0 - - 2 - - true - 35ebaa52:1509cf6a868:-78e9 - true - false - File - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 24 - 20 - Label - 48 - - - - - - Default - - - - 0 - - 1 - - true - 35ebaa52:1509cf6a868:-78e8 - true - false - Write Registry to file system. - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 231 - 24 - Label_1 - 12 - - - - - - Default - - - - false - 0 - $(pv_name) -$(pv_value) - 0 - - - false - ###### - 0.0 - true - 20 - false - 1 - true - loc://FileName<VString> - 0 - - - - true - Text Input - - FileName - - - 0 - false - true - 35ebaa52:1509cf6a868:-78e7 - false - - true - - true - true - false - - false - 4 - false - - - - 189 - 54 - 48 - 1.7976931348623157E308 - - - - -1.7976931348623157E308 - - Default - - +]]> + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 25 + + Action Button + 0 + + + + + true + true + false + + + + Dump Registry + false + $(pv_name) +$(pv_value) + true + Action Button + 163 + 35ebaa52:1509cf6a868:-78ea + 54 + 90 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label + + + true + true + false + + + File + + true + 1 + true + Label + 24 + false + 35ebaa52:1509cf6a868:-78e9 + 20 + 48 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 1 + Label_1 + + + true + true + false + + + Write Registry to file system. + + true + 1 + true + Label + 231 + false + 35ebaa52:1509cf6a868:-78e8 + 24 + 12 + + + + false + false + false + + + + true + + + + 1 + 1 + + true + + Default + + false + + + + 4 + 20 + 0 + false + 1.7976931348623157E308 + -1.7976931348623157E308 + false + FileName + 0 + true + loc://FileName<VString> + + 0.0 + + + true + true + false + + + 0 + true + + ###### + $(pv_name) +$(pv_value) + false + true + Text Input + 189 + 35ebaa52:1509cf6a868:-78e7 + 54 + 48 + \ No newline at end of file diff --git a/tools/commander/workspace_template/Displays/Core/TBL/DumpTable.opi b/tools/commander/workspace_template/Displays/Core/TBL/DumpTable.opi index 3af4daeaf..04c928e31 100644 --- a/tools/commander/workspace_template/Displays/Core/TBL/DumpTable.opi +++ b/tools/commander/workspace_template/Displays/Core/TBL/DumpTable.opi @@ -1,81 +1,41 @@ - - true - - 35ebaa52:1509cf6a868:-791f - true - false - - 175 - - true - - 4.0.104.201510200439 - true - Display - - false - -1 - -1 - - - - - 275 - -1 - - 6 - true - -1 - true - - - - - - false - 0 - false - false - $(pv_name) -$(pv_value) - 0 - - true - 35ebaa52:1509cf6a868:-78ea - - Load Table - - false - 25 - 1 - - true - true - false - - - true - - - - - Action Button - false - - - - 163 - 54 - Action Button - 132 - - - - - - - ../scripts/RestartApp.js + + + + false + -1 + -1 + + false + + + + 1.5.3 + + + + 6 + 175 + + true + + + + + true + true + true + true + true + Display + 275 + 35ebaa52:1509cf6a868:-791f + -1 + -1 + + + + ../scripts/RestartApp.js - true - - - - - Default - - - - 0 - - 2 - - true - 35ebaa52:1509cf6a868:-78e9 - true - false - Table Name - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 71 - 20 - Label - 72 - - - - - - Default - - - - 0 - - 1 - - true - 35ebaa52:1509cf6a868:-78e8 - true - false - Load table from file system. - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 231 - 24 - Label_1 - 12 - - - - - - Default - - - - false - 0 - $(pv_name) -$(pv_value) - 0 - - - false - ###### - 0.0 - true - 20 - false - 1 - true - loc://TableName<VString> - 0 - - - - true - Text Input - - TableName - - - 0 - false - true - 35ebaa52:1509cf6a868:-78e7 - false - - true - - true - true - false - - false - 4 - false - - - - 153 - 102 - 72 - 1.7976931348623157E308 - - - - -1.7976931348623157E308 - - Default - - - - 0 - - 2 - - true - 35ebaa52:1509cf6a868:-7891 - true - false - File - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 24 - 67 - Label_2 - 96 - - - - - - Default - - - - false - 0 - $(pv_name) -$(pv_value) - 0 - - - false - ###### - 0.0 - true - 20 - false - 1 - true - loc://FileName<VString> - 0 - - - - true - Text Input - - FileName_1 - - - 0 - false - true - 35ebaa52:1509cf6a868:-7890 - false - - true - - true - true - false - - false - 4 - false - - - - 153 - 102 - 96 - 1.7976931348623157E308 - - - - -1.7976931348623157E308 - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - true - 35ebaa52:1509cf6a868:-7878 - - - - true - - - true - 33 - 1 - - true - true - false - - false - true - loc://TableBuffer<VString> - - - - Radio Box - false - - - - 216 - 28 - TableBuffer - 31 - - - - - - Inactive - Active - - - Default - - +]]> + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 25 + + Action Button + 0 + + + + + true + true + false + + + + Load Table + false + $(pv_name) +$(pv_value) + true + Action Button + 163 + 35ebaa52:1509cf6a868:-78ea + 54 + 132 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label + + + true + true + false + + + Table Name + + true + 1 + true + Label + 71 + false + 35ebaa52:1509cf6a868:-78e9 + 20 + 72 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 1 + Label_1 + + + true + true + false + + + Load table from file system. + + true + 1 + true + Label + 231 + false + 35ebaa52:1509cf6a868:-78e8 + 24 + 12 + + + + false + false + false + + + + true + + + + 0 + 1 + + true + + Default + + false + + + + 4 + 20 + 0 + false + 1.7976931348623157E308 + -1.7976931348623157E308 + false + TableName + 0 + true + loc://TableName<VString> + + 0.0 + + + true + true + false + + + 0 + true + + ###### + $(pv_name) +$(pv_value) + false + true + Text Input + 153 + 35ebaa52:1509cf6a868:-78e7 + 102 + 72 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_2 + + + true + true + false + + + File + + true + 1 + true + Label + 24 + false + 35ebaa52:1509cf6a868:-7891 + 67 + 96 + + + + false + false + false + + + + true + + + + 0 + 1 + + true + + Default + + false + + + + 4 + 20 + 0 + false + 1.7976931348623157E308 + -1.7976931348623157E308 + false + FileName_1 + 0 + true + loc://FileName<VString> + + 0.0 + + + true + true + false + + + 0 + true + + ###### + $(pv_name) +$(pv_value) + false + true + Text Input + 153 + 35ebaa52:1509cf6a868:-7890 + 102 + 96 + + + + false + false + + + + true + + + + 0 + 1 + true + + Default + + false + + + + 33 + true + + Inactive + Active + + false + TableBuffer + loc://TableBuffer<VString> + + + + true + true + false + + + + + + $(pv_name) +$(pv_value) + true + Radio Box + 216 + 35ebaa52:1509cf6a868:-7878 + 28 + 31 + \ No newline at end of file diff --git a/tools/commander/workspace_template/Displays/Core/TBL/LoadTable.opi b/tools/commander/workspace_template/Displays/Core/TBL/LoadTable.opi index 262f815a8..8b49225ce 100644 --- a/tools/commander/workspace_template/Displays/Core/TBL/LoadTable.opi +++ b/tools/commander/workspace_template/Displays/Core/TBL/LoadTable.opi @@ -1,81 +1,41 @@ - - true - - 35ebaa52:1509cf6a868:-791f - true - false - - 135 - - true - - 4.0.104.201510200439 - true - Display - - false - -1 - -1 - - - - - 275 - -1 - - 6 - true - -1 - true - - - - - - false - 0 - false - false - $(pv_name) -$(pv_value) - 0 - - true - 35ebaa52:1509cf6a868:-78ea - - Load Table - - false - 25 - 1 - - true - true - false - - - true - - - - - Action Button - false - - - - 163 - 54 - Action Button - 90 - - - - - - - ../scripts/RestartApp.js + + + + false + -1 + -1 + + false + + + + 1.5.3 + + + + 6 + 135 + + true + + + + + true + true + true + true + true + Display + 275 + 35ebaa52:1509cf6a868:-791f + -1 + -1 + + + + ../scripts/RestartApp.js - true - - - - - Default - - - - 0 - - 2 - - true - 35ebaa52:1509cf6a868:-78e9 - true - false - File - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 24 - 20 - Label - 48 - - - - - - Default - - - - 0 - - 1 - - true - 35ebaa52:1509cf6a868:-78e8 - true - false - Load table from file system. - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 231 - 24 - Label_1 - 12 - - - - - - Default - - - - false - 0 - $(pv_name) -$(pv_value) - 0 - - - false - ###### - 0.0 - true - 20 - false - 1 - true - loc://FileName<VString> - 0 - - - - true - Text Input - - FileName - - - 0 - false - true - 35ebaa52:1509cf6a868:-78e7 - false - - true - - true - true - false - - false - 4 - false - - - - 189 - 54 - 48 - 1.7976931348623157E308 - - - - -1.7976931348623157E308 - - Default - - +]]> + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 25 + + Action Button + 0 + + + + + true + true + false + + + + Load Table + false + $(pv_name) +$(pv_value) + true + Action Button + 163 + 35ebaa52:1509cf6a868:-78ea + 54 + 90 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label + + + true + true + false + + + File + + true + 1 + true + Label + 24 + false + 35ebaa52:1509cf6a868:-78e9 + 20 + 48 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 1 + Label_1 + + + true + true + false + + + Load table from file system. + + true + 1 + true + Label + 231 + false + 35ebaa52:1509cf6a868:-78e8 + 24 + 12 + + + + false + false + false + + + + true + + + + 1 + 1 + + true + + Default + + false + + + + 4 + 20 + 0 + false + 1.7976931348623157E308 + -1.7976931348623157E308 + false + FileName + 0 + true + loc://FileName<VString> + + 0.0 + + + true + true + false + + + 0 + true + + ###### + $(pv_name) +$(pv_value) + false + true + Text Input + 189 + 35ebaa52:1509cf6a868:-78e7 + 54 + 48 + \ No newline at end of file diff --git a/tools/commander/workspace_template/Displays/Core/TBL/Main.opi b/tools/commander/workspace_template/Displays/Core/TBL/Main.opi index e927d00d0..f217d5d83 100644 --- a/tools/commander/workspace_template/Displays/Core/TBL/Main.opi +++ b/tools/commander/workspace_template/Displays/Core/TBL/Main.opi @@ -8,7 +8,7 @@ false - + 1.5.3 @@ -42,9 +42,9 @@ true - + - 0 + 1 1 true @@ -534,9 +534,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -586,9 +586,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -638,9 +638,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -690,9 +690,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -742,9 +742,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -794,9 +794,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -846,9 +846,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -898,9 +898,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -953,7 +953,7 @@ $(pv_value) false false - + false @@ -967,7 +967,7 @@ $(pv_value) false - + 20 @@ -1006,7 +1006,7 @@ $(pv_value) false false - + false @@ -1020,7 +1020,7 @@ $(pv_value) false - + 20 @@ -1094,14 +1094,14 @@ $(pv_value) true - 8 + 0 false false - + false @@ -1192,9 +1192,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -1284,9 +1284,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -1376,9 +1376,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -1468,9 +1468,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -1560,9 +1560,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -1652,9 +1652,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -1704,9 +1704,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -1796,9 +1796,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -1888,9 +1888,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -1980,9 +1980,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -2072,9 +2072,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -2121,14 +2121,14 @@ $(pv_value) true - 8 + 0 false false - + false @@ -2176,14 +2176,14 @@ $(pv_value) true - 8 + 0 false false - + false @@ -2231,14 +2231,14 @@ $(pv_value) true - 8 + 0 false false - + false @@ -2286,14 +2286,14 @@ $(pv_value) true - 8 + 0 false false - + false @@ -2341,14 +2341,14 @@ $(pv_value) true - 8 + 0 false false - + false @@ -2387,7 +2387,7 @@ $(pv_value) 130 35ebaa52:1509cf6a868:-794e 294 - 267 + 269 @@ -2396,14 +2396,14 @@ $(pv_value) true - 8 + 0 false false - + false @@ -2442,7 +2442,7 @@ $(pv_value) 130 35ebaa52:1509cf6a868:-7940 294 - 292 + 294 @@ -2451,14 +2451,14 @@ $(pv_value) true - 8 + 0 false false - + false @@ -2497,6 +2497,6 @@ $(pv_value) 130 35ebaa52:1509cf6a868:-7936 294 - 317 + 319 \ No newline at end of file diff --git a/tools/commander/workspace_template/Displays/Core/TBL/ValidateTable.opi b/tools/commander/workspace_template/Displays/Core/TBL/ValidateTable.opi index bb60d2425..f173b1ff4 100644 --- a/tools/commander/workspace_template/Displays/Core/TBL/ValidateTable.opi +++ b/tools/commander/workspace_template/Displays/Core/TBL/ValidateTable.opi @@ -1,81 +1,41 @@ - - true - - 35ebaa52:1509cf6a868:-791f - true - false - - 150 - - true - - 4.0.104.201510200439 - true - Display - - false - -1 - -1 - - - - - 275 - -1 - - 6 - true - -1 - true - - - - - - false - 0 - false - false - $(pv_name) -$(pv_value) - 0 - - true - 35ebaa52:1509cf6a868:-78ea - - Validate Table - - false - 25 - 1 - - true - true - false - - - true - - - - - Action Button - false - - - - 163 - 54 - Action Button - 108 - - - - - - - ../scripts/RestartApp.js + + + + false + -1 + -1 + + false + + + + 1.5.3 + + + + 6 + 150 + + true + + + + + true + true + true + true + true + Display + 275 + 35ebaa52:1509cf6a868:-791f + -1 + -1 + + + + ../scripts/RestartApp.js - true - - - - - Default - - - - 0 - - 2 - - true - 35ebaa52:1509cf6a868:-78e9 - true - false - Table Name - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 71 - 20 - Label - 72 - - - - - - Default - - - - 0 - - 1 - - true - 35ebaa52:1509cf6a868:-78e8 - true - false - Validate table - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 231 - 24 - Label_1 - 12 - - - - - - Default - - - - false - 0 - $(pv_name) -$(pv_value) - 0 - - - false - ###### - 0.0 - true - 20 - false - 1 - true - loc://TableName<VString> - 0 - - - - true - Text Input - - TableName - - - 0 - false - true - 35ebaa52:1509cf6a868:-78e7 - false - - true - - true - true - false - - false - 4 - false - - - - 153 - 102 - 72 - 1.7976931348623157E308 - - - - -1.7976931348623157E308 - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - true - 35ebaa52:1509cf6a868:-7878 - - - - true - - - true - 33 - 1 - - true - true - false - - false - true - loc://TableBuffer<VString> - - - - Radio Box - false - - - - 216 - 28 - TableBuffer - 31 - - - - - - Inactive - Active - - - Default - - +]]> + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 25 + + Action Button + 0 + + + + + true + true + false + + + + Validate Table + false + $(pv_name) +$(pv_value) + true + Action Button + 163 + 35ebaa52:1509cf6a868:-78ea + 54 + 108 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label + + + true + true + false + + + Table Name + + true + 1 + true + Label + 71 + false + 35ebaa52:1509cf6a868:-78e9 + 20 + 72 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 1 + Label_1 + + + true + true + false + + + Validate table + + true + 1 + true + Label + 231 + false + 35ebaa52:1509cf6a868:-78e8 + 24 + 12 + + + + false + false + false + + + + true + + + + 1 + 1 + + true + + Default + + false + + + + 4 + 20 + 0 + false + 1.7976931348623157E308 + -1.7976931348623157E308 + false + TableName + 0 + true + loc://TableName<VString> + + 0.0 + + + true + true + false + + + 0 + true + + ###### + $(pv_name) +$(pv_value) + false + true + Text Input + 153 + 35ebaa52:1509cf6a868:-78e7 + 102 + 72 + + + + false + false + + + + true + + + + 0 + 1 + true + + Default + + false + + + + 33 + true + + Inactive + Active + + false + TableBuffer + loc://TableBuffer<VString> + + + + true + true + false + + + + + + $(pv_name) +$(pv_value) + true + Radio Box + 216 + 35ebaa52:1509cf6a868:-7878 + 28 + 31 + \ No newline at end of file diff --git a/tools/commander/workspace_template/Displays/Core/TBL/ViewRegistry.opi b/tools/commander/workspace_template/Displays/Core/TBL/ViewRegistry.opi index a9d6044a4..abd96cc60 100644 --- a/tools/commander/workspace_template/Displays/Core/TBL/ViewRegistry.opi +++ b/tools/commander/workspace_template/Displays/Core/TBL/ViewRegistry.opi @@ -1,81 +1,41 @@ - - true - - 35ebaa52:1509cf6a868:-791f - true - false - - 460 - - true - - 4.0.104.201510200439 - true - Display - - false - -1 - -1 - - - - - 290 - -1 - - 6 - true - -1 - true - - - - - - false - 0 - false - false - $(pv_name) -$(pv_value) - 0 - - true - 35ebaa52:1509cf6a868:-78ea - - Telemeter Registry - - false - 25 - 1 - - true - true - false - - - true - - - - - Action Button - false - - - - 163 - 60 - Action Button - 54 - - - - - - - ../scripts/RestartApp.js + + + + false + -1 + -1 + + false + + + + 1.5.3 + + + + 6 + 460 + + true + + + + + true + true + true + true + true + Display + 290 + 35ebaa52:1509cf6a868:-791f + -1 + -1 + + + + ../scripts/RestartApp.js - true - - - - - Default - - - - 0 - - 2 - - true - 35ebaa52:1509cf6a868:-78e9 - true - false - Table Name - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 71 - 26 - Label - 18 - - - - - - Default - - - - false - 0 - $(pv_name) -$(pv_value) - 0 - - - false - ###### - 0.0 - true - 20 - false - 1 - true - loc://TableName<VString> - 0 - - - - true - Text Input - - TableName - - - 0 - false - true - 35ebaa52:1509cf6a868:-78e7 - false - - true - - true - true - false - - false - 4 - false - - - - 153 - 108 - 18 - 1.7976931348623157E308 - - - - -1.7976931348623157E308 - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 35ebaa52:1509cf6a868:-777b - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_tbl/Registry_Size - 1 - - - - true - Text Update - false - false - 0 - - - - 100 - 174 - Text Update - 121 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 35ebaa52:1509cf6a868:-777a - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_tbl/Registry_CRC - 1 - - - - true - Text Update - false - false - 0 - - - - 100 - 174 - Text Update_1 - 140 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 35ebaa52:1509cf6a868:-7778 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_tbl/Registry_InactiveBufferAddr - 1 - - - - true - Text Update - false - false - 0 - - - - 100 - 174 - Text Update_3 - 178 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 35ebaa52:1509cf6a868:-7777 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_tbl/Registry_ValidationFuncPtr - 1 - - - - true - Text Update - false - false - 0 - - - - 100 - 174 - Text Update_4 - 197 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 35ebaa52:1509cf6a868:-7775 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_tbl/Registry_TimeOfLastUpdate_Seconds - 1 - - - - true - Text Update - false - false - 0 - - - - 100 - 174 - Text Update_6 - 216 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 35ebaa52:1509cf6a868:-7774 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_tbl/Registry_TimeOfLastUpdate_Subseconds - 1 - - - - true - Text Update - false - false - 0 - - - - 100 - 174 - Text Update_7 - 235 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 35ebaa52:1509cf6a868:-7773 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_tbl/Registry_FileCreateTime_Seconds - 1 - - - - true - Text Update - false - false - 0 - - - - 100 - 174 - Text Update_8 - 254 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 35ebaa52:1509cf6a868:-7772 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_tbl/Registry_FileCreateTime_Subseconds - 1 - - - - true - Text Update - false - false - 0 - - - - 100 - 174 - Text Update_9 - 273 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 35ebaa52:1509cf6a868:-776d - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_tbl/Registry_Name - 1 - - - - true - Text Update - false - false - 0 - - - - 100 - 174 - Text Update_14 - 102 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 35ebaa52:1509cf6a868:-776c - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_tbl/Registry_LastFileLoaded - 1 - - - - true - Text Update - false - false - 0 - - - - 100 - 174 - Text Update_15 - 368 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 35ebaa52:1509cf6a868:-776b - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_tbl/Registry_OwnerAppName - 1 - - - - true - Text Update - false - false - 0 - - - - 100 - 174 - Text Update_16 - 387 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 35ebaa52:1509cf6a868:-776a - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_tbl/Registry_Critical - 1 - - - - true - Text Update - false - false - 0 - - - - 100 - 174 - Text Update_17 - 406 - - - - - - Default - - - - 0 - - 2 - - true - 35ebaa52:1509cf6a868:-7749 - true - false - Size - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 80 - 86 - Label_1 - 121 - - - - - - Default - - - - 0 - - 2 - - true - 35ebaa52:1509cf6a868:-7741 - true - false - CRC - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 80 - 86 - Label_2 - 140 - - - - - - Default - - - - 0 - - 2 - - true - 35ebaa52:1509cf6a868:-773c - true - false - Inactive Buffer Addr - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 135 - 31 - Label_3 - 178 - - - - - - Default - - - - 0 - - 2 - - true - 35ebaa52:1509cf6a868:-7730 - true - false - Active Buffer Addr - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 135 - 31 - Label_5 - 159 - - - - - - Default - - - - 0 - - 2 - - true - 35ebaa52:1509cf6a868:-7721 - true - false - Last File Loaded - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 113 - 53 - Label_8 - 368 - - - - - - Default - - - - 0 - - 2 - - true - 35ebaa52:1509cf6a868:-771c - true - false - Time of Last Update - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 150 - 16 - Label_9 - 216 - - - - - - Default - - - - 0 - - 2 - - true - 35ebaa52:1509cf6a868:-7717 - true - false - Validation Function Addr - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 164 - 2 - Label_10 - 197 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 35ebaa52:1509cf6a868:-76ca - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_tbl/Registry_ActiveBufferAddr - 1 - - - - true - Text Update - false - false - 0 - - - - 100 - 174 - Text Update_18 - 159 - - - - - - Default - - - - 0 - - 2 - - true - 35ebaa52:1509cf6a868:-76b4 - true - false - File Create Time - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 150 - 16 - Label_17 - 254 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - 35ebaa52:1509cf6a868:-767f - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_tbl/Registry_TableLoadedOnce - - - - - Check Box - false - - - - 24 - 176 - Check Box - 292 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - 35ebaa52:1509cf6a868:-767e - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_tbl/Registry_LoadPending - - - - - Check Box - false - - - - 24 - 176 - Check Box_1 - 311 - - - - - - Default - - - - 0 - - 2 - - true - 35ebaa52:1509cf6a868:-7674 - true - false - Table Loaded Once - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 150 - 16 - Label_18 - 292 - - - - - - Default - - - - 0 - - 2 - - true - 35ebaa52:1509cf6a868:-766a - true - false - Load Pending - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 150 - 16 - Label_19 - 311 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - 35ebaa52:1509cf6a868:-7659 - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_tbl/Registry_DumpOnly - - - - - Check Box - false - - - - 24 - 176 - Check Box_4 - 330 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - 35ebaa52:1509cf6a868:-7651 - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_tbl/Registry_DblBuffered - - - - - Check Box - false - - - - 24 - 176 - Check Box_5 - 349 - - - - - - Default - - - - 0 - - 2 - - true - 35ebaa52:1509cf6a868:-7649 - true - false - Dump Only - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 150 - 16 - Label_20 - 330 - - - - - - Default - - - - 0 - - 2 - - true - 35ebaa52:1509cf6a868:-763f - true - false - Double Buffered - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 150 - 16 - Label_21 - 349 - - - - - - Default - - - - 0 - - 2 - - true - 35ebaa52:1509cf6a868:-7635 - true - false - Name - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 80 - 86 - Label_22 - 102 - - - - - - Default - - - - 0 - - 2 - - true - 35ebaa52:1509cf6a868:-7629 - true - false - Owner App Name - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 113 - 53 - Label_23 - 387 - - - - - - Default - - - - 0 - - 2 - - true - 35ebaa52:1509cf6a868:-761f - true - false - Last File Loaded - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 113 - 53 - Label_24 - 406 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - 35ebaa52:1509cf6a868:-7613 - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_tbl/Registry_DblBuffered - - - - - Check Box - false - - - - 24 - 176 - Check Box_6 - 425 - - - - - - Default - - - - 0 - - 2 - - true - 35ebaa52:1509cf6a868:-760b - true - false - Critical - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 113 - 53 - Label_25 - 425 - - - - - - Default - - +]]> + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 25 + + Action Button + 0 + + + + + true + true + false + + + + Telemeter Registry + false + $(pv_name) +$(pv_value) + true + Action Button + 163 + 35ebaa52:1509cf6a868:-78ea + 60 + 54 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label + + + true + true + false + + + Table Name + + true + 1 + true + Label + 71 + false + 35ebaa52:1509cf6a868:-78e9 + 26 + 18 + + + + false + false + false + + + + true + + + + 1 + 1 + + true + + Default + + false + + + + 4 + 20 + 0 + false + 1.7976931348623157E308 + -1.7976931348623157E308 + false + TableName + 0 + true + loc://TableName<VString> + + 0.0 + + + true + true + false + + + 0 + true + + ###### + $(pv_name) +$(pv_value) + false + true + Text Input + 153 + 35ebaa52:1509cf6a868:-78e7 + 108 + 18 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update + 0 + true + /cfs/cfe_tbl/Registry_Size + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + 35ebaa52:1509cf6a868:-777b + 174 + 121 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_1 + 0 + true + /cfs/cfe_tbl/Registry_CRC + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + 35ebaa52:1509cf6a868:-777a + 174 + 140 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_3 + 0 + true + /cfs/cfe_tbl/Registry_InactiveBufferAddr + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + 35ebaa52:1509cf6a868:-7778 + 174 + 178 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_4 + 0 + true + /cfs/cfe_tbl/Registry_ValidationFuncPtr + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + 35ebaa52:1509cf6a868:-7777 + 174 + 197 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_6 + 0 + true + /cfs/cfe_tbl/Registry_TimeOfLastUpdate_Seconds + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + 35ebaa52:1509cf6a868:-7775 + 174 + 216 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_7 + 0 + true + /cfs/cfe_tbl/Registry_TimeOfLastUpdate_Subseconds + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + 35ebaa52:1509cf6a868:-7774 + 174 + 235 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_8 + 0 + true + /cfs/cfe_tbl/Registry_FileCreateTime_Seconds + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + 35ebaa52:1509cf6a868:-7773 + 174 + 254 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_9 + 0 + true + /cfs/cfe_tbl/Registry_FileCreateTime_Subseconds + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + 35ebaa52:1509cf6a868:-7772 + 174 + 273 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_14 + 0 + true + /cfs/cfe_tbl/Registry_Name + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + 35ebaa52:1509cf6a868:-776d + 174 + 102 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_15 + 0 + true + /cfs/cfe_tbl/Registry_LastFileLoaded + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + 35ebaa52:1509cf6a868:-776c + 174 + 368 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_16 + 0 + true + /cfs/cfe_tbl/Registry_OwnerAppName + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + 35ebaa52:1509cf6a868:-776b + 174 + 387 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_17 + 0 + true + /cfs/cfe_tbl/Registry_Critical + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + 35ebaa52:1509cf6a868:-776a + 174 + 406 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_1 + + + true + true + false + + + Size + + true + 1 + true + Label + 80 + false + 35ebaa52:1509cf6a868:-7749 + 86 + 121 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_2 + + + true + true + false + + + CRC + + true + 1 + true + Label + 80 + false + 35ebaa52:1509cf6a868:-7741 + 86 + 140 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_3 + + + true + true + false + + + Inactive Buffer Addr + + true + 1 + true + Label + 135 + false + 35ebaa52:1509cf6a868:-773c + 31 + 178 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_5 + + + true + true + false + + + Active Buffer Addr + + true + 1 + true + Label + 135 + false + 35ebaa52:1509cf6a868:-7730 + 31 + 159 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_8 + + + true + true + false + + + Last File Loaded + + true + 1 + true + Label + 113 + false + 35ebaa52:1509cf6a868:-7721 + 53 + 368 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_9 + + + true + true + false + + + Time of Last Update + + true + 1 + true + Label + 150 + false + 35ebaa52:1509cf6a868:-771c + 16 + 216 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_10 + + + true + true + false + + + Validation Function Addr + + true + 1 + true + Label + 164 + false + 35ebaa52:1509cf6a868:-7717 + 2 + 197 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_18 + 0 + true + /cfs/cfe_tbl/Registry_ActiveBufferAddr + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + 35ebaa52:1509cf6a868:-76ca + 174 + 159 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_17 + + + true + true + false + + + File Create Time + + true + 1 + true + Label + 150 + false + 35ebaa52:1509cf6a868:-76b4 + 16 + 254 + + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + Check Box + /cfs/cfe_tbl/Registry_TableLoadedOnce + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 24 + 35ebaa52:1509cf6a868:-767f + 176 + 292 + + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + Check Box_1 + /cfs/cfe_tbl/Registry_LoadPending + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 24 + 35ebaa52:1509cf6a868:-767e + 176 + 311 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_18 + + + true + true + false + + + Table Loaded Once + + true + 1 + true + Label + 150 + false + 35ebaa52:1509cf6a868:-7674 + 16 + 292 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_19 + + + true + true + false + + + Load Pending + + true + 1 + true + Label + 150 + false + 35ebaa52:1509cf6a868:-766a + 16 + 311 + + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + Check Box_4 + /cfs/cfe_tbl/Registry_DumpOnly + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 24 + 35ebaa52:1509cf6a868:-7659 + 176 + 330 + + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + Check Box_5 + /cfs/cfe_tbl/Registry_DblBuffered + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 24 + 35ebaa52:1509cf6a868:-7651 + 176 + 349 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_20 + + + true + true + false + + + Dump Only + + true + 1 + true + Label + 150 + false + 35ebaa52:1509cf6a868:-7649 + 16 + 330 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_21 + + + true + true + false + + + Double Buffered + + true + 1 + true + Label + 150 + false + 35ebaa52:1509cf6a868:-763f + 16 + 349 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_22 + + + true + true + false + + + Name + + true + 1 + true + Label + 80 + false + 35ebaa52:1509cf6a868:-7635 + 86 + 102 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_23 + + + true + true + false + + + Owner App Name + + true + 1 + true + Label + 113 + false + 35ebaa52:1509cf6a868:-7629 + 53 + 387 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_24 + + + true + true + false + + + Last File Loaded + + true + 1 + true + Label + 113 + false + 35ebaa52:1509cf6a868:-761f + 53 + 406 + + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + Check Box_6 + /cfs/cfe_tbl/Registry_DblBuffered + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 24 + 35ebaa52:1509cf6a868:-7613 + 176 + 425 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_25 + + + true + true + false + + + Critical + + true + 1 + true + Label + 113 + false + 35ebaa52:1509cf6a868:-760b + 53 + 425 + \ No newline at end of file diff --git a/tools/commander/workspace_template/Displays/Core/TIME/AbortTableLoad.opi b/tools/commander/workspace_template/Displays/Core/TIME/AbortTableLoad.opi index b45ee123e..38af584bf 100644 --- a/tools/commander/workspace_template/Displays/Core/TIME/AbortTableLoad.opi +++ b/tools/commander/workspace_template/Displays/Core/TIME/AbortTableLoad.opi @@ -1,81 +1,41 @@ - - true - - 35ebaa52:1509cf6a868:-791f - true - false - - 90 - - true - - 4.0.104.201510200439 - true - Display - - false - -1 - -1 - - - - - 275 - -1 - - 6 - true - -1 - true - - - - - - false - 0 - false - false - $(pv_name) -$(pv_value) - 0 - - true - 35ebaa52:1509cf6a868:-78ea - - Abort Table Load - - false - 25 - 1 - - true - true - false - - - true - - - - - Action Button - false - - - - 163 - 60 - Action Button - 54 - - - - - - - ../scripts/RestartApp.js + + + + false + -1 + -1 + + false + + + + 1.5.3 + + + + 6 + 90 + + true + + + + + true + true + true + true + true + Display + 275 + 35ebaa52:1509cf6a868:-791f + -1 + -1 + + + + ../scripts/RestartApp.js - true - - - - - Default - - - - 0 - - 2 - - true - 35ebaa52:1509cf6a868:-78e9 - true - false - Table Name - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 71 - 26 - Label - 18 - - - - - - Default - - - - false - 0 - $(pv_name) -$(pv_value) - 0 - - - false - ###### - 0.0 - true - 20 - false - 1 - true - loc://TableName<VString> - 0 - - - - true - Text Input - - TableName - - - 0 - false - true - 35ebaa52:1509cf6a868:-78e7 - false - - true - - true - true - false - - false - 4 - false - - - - 153 - 108 - 18 - 1.7976931348623157E308 - - - - -1.7976931348623157E308 - - Default - - +]]> + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 25 + + Action Button + 0 + + + + + true + true + false + + + + Abort Table Load + false + $(pv_name) +$(pv_value) + true + Action Button + 163 + 35ebaa52:1509cf6a868:-78ea + 60 + 54 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label + + + true + true + false + + + Table Name + + true + 1 + true + Label + 71 + false + 35ebaa52:1509cf6a868:-78e9 + 26 + 18 + + + + false + false + false + + + + true + + + + 1 + 1 + + true + + Default + + false + + + + 4 + 20 + 0 + false + 1.7976931348623157E308 + -1.7976931348623157E308 + false + TableName + 0 + true + loc://TableName<VString> + + 0.0 + + + true + true + false + + + 0 + true + + ###### + $(pv_name) +$(pv_value) + false + true + Text Input + 153 + 35ebaa52:1509cf6a868:-78e7 + 108 + 18 + \ No newline at end of file diff --git a/tools/commander/workspace_template/Displays/Core/TIME/ActivateTable.opi b/tools/commander/workspace_template/Displays/Core/TIME/ActivateTable.opi index f870db122..00398f226 100644 --- a/tools/commander/workspace_template/Displays/Core/TIME/ActivateTable.opi +++ b/tools/commander/workspace_template/Displays/Core/TIME/ActivateTable.opi @@ -1,81 +1,41 @@ - - true - - 35ebaa52:1509cf6a868:-791f - true - false - - 90 - - true - - 4.0.104.201510200439 - true - Display - - false - -1 - -1 - - - - - 275 - -1 - - 6 - true - -1 - true - - - - - - false - 0 - false - false - $(pv_name) -$(pv_value) - 0 - - true - 35ebaa52:1509cf6a868:-78ea - - Activate Table - - false - 25 - 1 - - true - true - false - - - true - - - - - Action Button - false - - - - 163 - 60 - Action Button - 54 - - - - - - - ../scripts/RestartApp.js + + + + false + -1 + -1 + + false + + + + 1.5.3 + + + + 6 + 90 + + true + + + + + true + true + true + true + true + Display + 275 + 35ebaa52:1509cf6a868:-791f + -1 + -1 + + + + ../scripts/RestartApp.js - true - - - - - Default - - - - 0 - - 2 - - true - 35ebaa52:1509cf6a868:-78e9 - true - false - Table Name - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 71 - 26 - Label - 18 - - - - - - Default - - - - false - 0 - $(pv_name) -$(pv_value) - 0 - - - false - ###### - 0.0 - true - 20 - false - 1 - true - loc://TableName<VString> - 0 - - - - true - Text Input - - TableName - - - 0 - false - true - 35ebaa52:1509cf6a868:-78e7 - false - - true - - true - true - false - - false - 4 - false - - - - 153 - 108 - 18 - 1.7976931348623157E308 - - - - -1.7976931348623157E308 - - Default - - +]]> + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 25 + + Action Button + 0 + + + + + true + true + false + + + + Activate Table + false + $(pv_name) +$(pv_value) + true + Action Button + 163 + 35ebaa52:1509cf6a868:-78ea + 60 + 54 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label + + + true + true + false + + + Table Name + + true + 1 + true + Label + 71 + false + 35ebaa52:1509cf6a868:-78e9 + 26 + 18 + + + + false + false + false + + + + true + + + + 1 + 1 + + true + + Default + + false + + + + 4 + 20 + 0 + false + 1.7976931348623157E308 + -1.7976931348623157E308 + false + TableName + 0 + true + loc://TableName<VString> + + 0.0 + + + true + true + false + + + 0 + true + + ###### + $(pv_name) +$(pv_value) + false + true + Text Input + 153 + 35ebaa52:1509cf6a868:-78e7 + 108 + 18 + \ No newline at end of file diff --git a/tools/commander/workspace_template/Displays/Core/TIME/DeleteCDS.opi b/tools/commander/workspace_template/Displays/Core/TIME/DeleteCDS.opi index f2d55fafc..5523bc9f8 100644 --- a/tools/commander/workspace_template/Displays/Core/TIME/DeleteCDS.opi +++ b/tools/commander/workspace_template/Displays/Core/TIME/DeleteCDS.opi @@ -1,81 +1,41 @@ - - true - - 35ebaa52:1509cf6a868:-791f - true - false - - 90 - - true - - 4.0.104.201510200439 - true - Display - - false - -1 - -1 - - - - - 275 - -1 - - 6 - true - -1 - true - - - - - - false - 0 - false - false - $(pv_name) -$(pv_value) - 0 - - true - 35ebaa52:1509cf6a868:-78ea - - Delete CDS - - false - 25 - 1 - - true - true - false - - - true - - - - - Action Button - false - - - - 163 - 60 - Action Button - 54 - - - - - - - ../scripts/RestartApp.js + + + + false + -1 + -1 + + false + + + + 1.5.3 + + + + 6 + 90 + + true + + + + + true + true + true + true + true + Display + 275 + 35ebaa52:1509cf6a868:-791f + -1 + -1 + + + + ../scripts/RestartApp.js - true - - - - - Default - - - - 0 - - 2 - - true - 35ebaa52:1509cf6a868:-78e9 - true - false - Table Name - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 71 - 26 - Label - 18 - - - - - - Default - - - - false - 0 - $(pv_name) -$(pv_value) - 0 - - - false - ###### - 0.0 - true - 20 - false - 1 - true - loc://TableName<VString> - 0 - - - - true - Text Input - - TableName - - - 0 - false - true - 35ebaa52:1509cf6a868:-78e7 - false - - true - - true - true - false - - false - 4 - false - - - - 153 - 108 - 18 - 1.7976931348623157E308 - - - - -1.7976931348623157E308 - - Default - - +]]> + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 25 + + Action Button + 0 + + + + + true + true + false + + + + Delete CDS + false + $(pv_name) +$(pv_value) + true + Action Button + 163 + 35ebaa52:1509cf6a868:-78ea + 60 + 54 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label + + + true + true + false + + + Table Name + + true + 1 + true + Label + 71 + false + 35ebaa52:1509cf6a868:-78e9 + 26 + 18 + + + + false + false + false + + + + true + + + + 1 + 1 + + true + + Default + + false + + + + 4 + 20 + 0 + false + 1.7976931348623157E308 + -1.7976931348623157E308 + false + TableName + 0 + true + loc://TableName<VString> + + 0.0 + + + true + true + false + + + 0 + true + + ###### + $(pv_name) +$(pv_value) + false + true + Text Input + 153 + 35ebaa52:1509cf6a868:-78e7 + 108 + 18 + \ No newline at end of file diff --git a/tools/commander/workspace_template/Displays/Core/TIME/DumpRegistry.opi b/tools/commander/workspace_template/Displays/Core/TIME/DumpRegistry.opi index c0cbb59ce..b28242f7c 100644 --- a/tools/commander/workspace_template/Displays/Core/TIME/DumpRegistry.opi +++ b/tools/commander/workspace_template/Displays/Core/TIME/DumpRegistry.opi @@ -1,81 +1,41 @@ - - true - - 35ebaa52:1509cf6a868:-791f - true - false - - 135 - - true - - 4.0.104.201510200439 - true - Display - - false - -1 - -1 - - - - - 275 - -1 - - 6 - true - -1 - true - - - - - - false - 0 - false - false - $(pv_name) -$(pv_value) - 0 - - true - 35ebaa52:1509cf6a868:-78ea - - Dump Registry - - false - 25 - 1 - - true - true - false - - - true - - - - - Action Button - false - - - - 163 - 54 - Action Button - 90 - - - - - - - ../scripts/RestartApp.js + + + + false + -1 + -1 + + false + + + + 1.5.3 + + + + 6 + 135 + + true + + + + + true + true + true + true + true + Display + 275 + 35ebaa52:1509cf6a868:-791f + -1 + -1 + + + + ../scripts/RestartApp.js - true - - - - - Default - - - - 0 - - 2 - - true - 35ebaa52:1509cf6a868:-78e9 - true - false - File - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 24 - 20 - Label - 48 - - - - - - Default - - - - 0 - - 1 - - true - 35ebaa52:1509cf6a868:-78e8 - true - false - Write Registry to file system. - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 231 - 24 - Label_1 - 12 - - - - - - Default - - - - false - 0 - $(pv_name) -$(pv_value) - 0 - - - false - ###### - 0.0 - true - 20 - false - 1 - true - loc://FileName<VString> - 0 - - - - true - Text Input - - FileName - - - 0 - false - true - 35ebaa52:1509cf6a868:-78e7 - false - - true - - true - true - false - - false - 4 - false - - - - 189 - 54 - 48 - 1.7976931348623157E308 - - - - -1.7976931348623157E308 - - Default - - +]]> + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 25 + + Action Button + 0 + + + + + true + true + false + + + + Dump Registry + false + $(pv_name) +$(pv_value) + true + Action Button + 163 + 35ebaa52:1509cf6a868:-78ea + 54 + 90 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label + + + true + true + false + + + File + + true + 1 + true + Label + 24 + false + 35ebaa52:1509cf6a868:-78e9 + 20 + 48 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 1 + Label_1 + + + true + true + false + + + Write Registry to file system. + + true + 1 + true + Label + 231 + false + 35ebaa52:1509cf6a868:-78e8 + 24 + 12 + + + + false + false + false + + + + true + + + + 1 + 1 + + true + + Default + + false + + + + 4 + 20 + 0 + false + 1.7976931348623157E308 + -1.7976931348623157E308 + false + FileName + 0 + true + loc://FileName<VString> + + 0.0 + + + true + true + false + + + 0 + true + + ###### + $(pv_name) +$(pv_value) + false + true + Text Input + 189 + 35ebaa52:1509cf6a868:-78e7 + 54 + 48 + \ No newline at end of file diff --git a/tools/commander/workspace_template/Displays/Core/TIME/DumpTable.opi b/tools/commander/workspace_template/Displays/Core/TIME/DumpTable.opi index 3af4daeaf..b6121dd0e 100644 --- a/tools/commander/workspace_template/Displays/Core/TIME/DumpTable.opi +++ b/tools/commander/workspace_template/Displays/Core/TIME/DumpTable.opi @@ -1,81 +1,41 @@ - - true - - 35ebaa52:1509cf6a868:-791f - true - false - - 175 - - true - - 4.0.104.201510200439 - true - Display - - false - -1 - -1 - - - - - 275 - -1 - - 6 - true - -1 - true - - - - - - false - 0 - false - false - $(pv_name) -$(pv_value) - 0 - - true - 35ebaa52:1509cf6a868:-78ea - - Load Table - - false - 25 - 1 - - true - true - false - - - true - - - - - Action Button - false - - - - 163 - 54 - Action Button - 132 - - - - - - - ../scripts/RestartApp.js + + + + false + -1 + -1 + + false + + + + 1.5.3 + + + + 6 + 175 + + true + + + + + true + true + true + true + true + Display + 275 + 35ebaa52:1509cf6a868:-791f + -1 + -1 + + + + ../scripts/RestartApp.js - true - - - - - Default - - - - 0 - - 2 - - true - 35ebaa52:1509cf6a868:-78e9 - true - false - Table Name - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 71 - 20 - Label - 72 - - - - - - Default - - - - 0 - - 1 - - true - 35ebaa52:1509cf6a868:-78e8 - true - false - Load table from file system. - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 231 - 24 - Label_1 - 12 - - - - - - Default - - - - false - 0 - $(pv_name) -$(pv_value) - 0 - - - false - ###### - 0.0 - true - 20 - false - 1 - true - loc://TableName<VString> - 0 - - - - true - Text Input - - TableName - - - 0 - false - true - 35ebaa52:1509cf6a868:-78e7 - false - - true - - true - true - false - - false - 4 - false - - - - 153 - 102 - 72 - 1.7976931348623157E308 - - - - -1.7976931348623157E308 - - Default - - - - 0 - - 2 - - true - 35ebaa52:1509cf6a868:-7891 - true - false - File - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 24 - 67 - Label_2 - 96 - - - - - - Default - - - - false - 0 - $(pv_name) -$(pv_value) - 0 - - - false - ###### - 0.0 - true - 20 - false - 1 - true - loc://FileName<VString> - 0 - - - - true - Text Input - - FileName_1 - - - 0 - false - true - 35ebaa52:1509cf6a868:-7890 - false - - true - - true - true - false - - false - 4 - false - - - - 153 - 102 - 96 - 1.7976931348623157E308 - - - - -1.7976931348623157E308 - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - true - 35ebaa52:1509cf6a868:-7878 - - - - true - - - true - 33 - 1 - - true - true - false - - false - true - loc://TableBuffer<VString> - - - - Radio Box - false - - - - 216 - 28 - TableBuffer - 31 - - - - - - Inactive - Active - - - Default - - +]]> + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 25 + + Action Button + 0 + + + + + true + true + false + + + + Load Table + false + $(pv_name) +$(pv_value) + true + Action Button + 163 + 35ebaa52:1509cf6a868:-78ea + 54 + 132 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label + + + true + true + false + + + Table Name + + true + 1 + true + Label + 71 + false + 35ebaa52:1509cf6a868:-78e9 + 20 + 72 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 1 + Label_1 + + + true + true + false + + + Load table from file system. + + true + 1 + true + Label + 231 + false + 35ebaa52:1509cf6a868:-78e8 + 24 + 12 + + + + false + false + false + + + + true + + + + 1 + 1 + + true + + Default + + false + + + + 4 + 20 + 0 + false + 1.7976931348623157E308 + -1.7976931348623157E308 + false + TableName + 0 + true + loc://TableName<VString> + + 0.0 + + + true + true + false + + + 0 + true + + ###### + $(pv_name) +$(pv_value) + false + true + Text Input + 153 + 35ebaa52:1509cf6a868:-78e7 + 102 + 72 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_2 + + + true + true + false + + + File + + true + 1 + true + Label + 24 + false + 35ebaa52:1509cf6a868:-7891 + 67 + 96 + + + + false + false + false + + + + true + + + + 1 + 1 + + true + + Default + + false + + + + 4 + 20 + 0 + false + 1.7976931348623157E308 + -1.7976931348623157E308 + false + FileName_1 + 0 + true + loc://FileName<VString> + + 0.0 + + + true + true + false + + + 0 + true + + ###### + $(pv_name) +$(pv_value) + false + true + Text Input + 153 + 35ebaa52:1509cf6a868:-7890 + 102 + 96 + + + + false + false + + + + true + + + + 0 + 1 + true + + Default + + false + + + + 33 + true + + Inactive + Active + + false + TableBuffer + loc://TableBuffer<VString> + + + + true + true + false + + + + + + $(pv_name) +$(pv_value) + true + Radio Box + 216 + 35ebaa52:1509cf6a868:-7878 + 28 + 31 + \ No newline at end of file diff --git a/tools/commander/workspace_template/Displays/Core/TIME/Main.opi b/tools/commander/workspace_template/Displays/Core/TIME/Main.opi index 02052c71e..8a1536d9a 100644 --- a/tools/commander/workspace_template/Displays/Core/TIME/Main.opi +++ b/tools/commander/workspace_template/Displays/Core/TIME/Main.opi @@ -8,7 +8,7 @@ false - + 1.5.3 @@ -42,9 +42,9 @@ true - + - 0 + 1 1 true @@ -534,9 +534,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -589,7 +589,7 @@ $(pv_value) false false - + false @@ -603,7 +603,7 @@ $(pv_value) false - + 20 @@ -642,7 +642,7 @@ $(pv_value) false false - + false @@ -656,7 +656,7 @@ $(pv_value) false - + 20 @@ -737,7 +737,7 @@ $(pv_value) false false - + false @@ -905,14 +905,14 @@ $(pv_value) true - 8 + 0 false false - + false @@ -960,14 +960,14 @@ $(pv_value) true - 8 + 0 false false - + false @@ -1015,14 +1015,14 @@ $(pv_value) true - 8 + 0 false false - + false @@ -1070,14 +1070,14 @@ $(pv_value) true - 8 + 0 false false - + false @@ -1125,14 +1125,14 @@ $(pv_value) true - 8 + 0 false false - + false @@ -1171,7 +1171,7 @@ $(pv_value) 130 35ebaa52:1509cf6a868:-794e 294 - 267 + 269 @@ -1180,14 +1180,14 @@ $(pv_value) true - 8 + 0 false false - + false @@ -1226,7 +1226,7 @@ $(pv_value) 130 35ebaa52:1509cf6a868:-7940 294 - 292 + 294 @@ -1235,14 +1235,14 @@ $(pv_value) true - 8 + 0 false false - + false @@ -1281,7 +1281,7 @@ $(pv_value) 130 35ebaa52:1509cf6a868:-7936 294 - 317 + 319 @@ -2090,9 +2090,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -2142,9 +2142,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -2194,9 +2194,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -2246,9 +2246,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -2298,9 +2298,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -2350,9 +2350,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -2402,9 +2402,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -2454,9 +2454,9 @@ $(pv_value) true - + - 0 + 1 1 true diff --git a/tools/commander/workspace_template/Displays/Core/TIME/SetAdjust.opi b/tools/commander/workspace_template/Displays/Core/TIME/SetAdjust.opi index 020867b14..29779f757 100644 --- a/tools/commander/workspace_template/Displays/Core/TIME/SetAdjust.opi +++ b/tools/commander/workspace_template/Displays/Core/TIME/SetAdjust.opi @@ -1,81 +1,41 @@ - - true - - 35ebaa52:1509cf6a868:-791f - true - false - - 190 - - true - - 4.0.104.201510200439 - true - Display - - false - -1 - -1 - - - - - 275 - -1 - - 6 - true - -1 - true - - - - - - false - 0 - false - false - $(pv_name) -$(pv_value) - 0 - - true - 35ebaa52:1509cf6a868:-78ea - - Set Adjustment - - false - 25 - 1 - - true - true - false - - - true - - - - - Action Button - false - - - - 163 - 54 - Action Button - 150 - - - - - - - ../scripts/RestartApp.js + + + + false + -1 + -1 + + false + + + + 1.5.3 + + + + 6 + 190 + + true + + + + + true + true + true + true + true + Display + 275 + 35ebaa52:1509cf6a868:-791f + -1 + -1 + + + + ../scripts/RestartApp.js - true - - - - - Default - - - - 0 - - 2 - - true - 35ebaa52:1509cf6a868:-78e9 - true - false - Seconds - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 87 - 16 - Label - 90 - - - - - - Default - - - - false - 0 - $(pv_name) -$(pv_value) - 0 - - - false - ###### - 0.0 - true - 20 - false - 1 - true - loc://Seconds<VDouble> - 0 - - - - false - Text Input - - Seconds - - - 0 - false - true - 35ebaa52:1509cf6a868:-78e7 - false - - true - - true - true - false - - false - 1 - false - - - - 137 - 114 - 90 - 1.7976931348623157E308 - - - - -1.7976931348623157E308 - - Default - - - - 0 - - 2 - - true - 35ebaa52:1509cf6a868:-657f - true - false - Microseconds - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 87 - 16 - Label_1 - 115 - - - - - - Default - - - - false - 0 - $(pv_name) -$(pv_value) - 0 - - - false - ###### - 0.0 - true - 20 - false - 1 - true - loc://Microseconds<VDouble> - 0 - - - - false - Text Input - - Microseconds - - - 0 - false - true - 35ebaa52:1509cf6a868:-657e - false - - true - - true - true - false - - false - 1 - false - - - - 137 - 114 - 115 - 1.7976931348623157E308 - - - - -1.7976931348623157E308 - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - true - 35ebaa52:1509cf6a868:-62cf - - - - true - - - true - 33 - 1 - - true - true - false - - false - true - loc://Direction<VString> - - - - Radio Box - false - - - - 160 - 84 - Direction - 12 - - - - - - Add - Subtract - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - true - 35ebaa52:1509cf6a868:-6277 - - - - true - - - true - 33 - 1 - - true - true - false - - false - true - loc://Frequency<VString> - - - - Radio Box - false - - - - 160 - 84 - Frequency - 44 - - - - - - One Shot - 1 Hz - - - Default - - - - 0 - - 2 - - true - 35ebaa52:1509cf6a868:-626b - true - false - Direction - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 61 - 16 - Label_2 - 19 - - - - - - Default - - - - 0 - - 2 - - true - 35ebaa52:1509cf6a868:-6261 - true - false - Frequency - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 77 - 0 - Label_3 - 51 - - - - - - Default - - +]]> + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 25 + + Action Button + 0 + + + + + true + true + false + + + + Set Adjustment + false + $(pv_name) +$(pv_value) + true + Action Button + 163 + 35ebaa52:1509cf6a868:-78ea + 54 + 150 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label + + + true + true + false + + + Seconds + + true + 1 + true + Label + 87 + false + 35ebaa52:1509cf6a868:-78e9 + 16 + 90 + + + + false + false + false + + + + true + + + + 1 + 1 + + true + + Default + + false + + + + 1 + 20 + 0 + false + 1.7976931348623157E308 + -1.7976931348623157E308 + false + Seconds + 0 + false + loc://Seconds<VDouble> + + 0.0 + + + true + true + false + + + 0 + true + + ###### + $(pv_name) +$(pv_value) + false + true + Text Input + 137 + 35ebaa52:1509cf6a868:-78e7 + 114 + 90 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_1 + + + true + true + false + + + Microseconds + + true + 1 + true + Label + 87 + false + 35ebaa52:1509cf6a868:-657f + 16 + 115 + + + + false + false + false + + + + true + + + + 1 + 1 + + true + + Default + + false + + + + 1 + 20 + 0 + false + 1.7976931348623157E308 + -1.7976931348623157E308 + false + Microseconds + 0 + false + loc://Microseconds<VDouble> + + 0.0 + + + true + true + false + + + 0 + true + + ###### + $(pv_name) +$(pv_value) + false + true + Text Input + 137 + 35ebaa52:1509cf6a868:-657e + 114 + 115 + + + + false + false + + + + true + + + + 0 + 1 + true + + Default + + false + + + + 33 + true + + Add + Subtract + + false + Direction + loc://Direction<VString> + + + + true + true + false + + + + + + $(pv_name) +$(pv_value) + true + Radio Box + 160 + 35ebaa52:1509cf6a868:-62cf + 84 + 12 + + + + false + false + + + + true + + + + 0 + 1 + true + + Default + + false + + + + 33 + true + + One Shot + 1 Hz + + false + Frequency + loc://Frequency<VString> + + + + true + true + false + + + + + + $(pv_name) +$(pv_value) + true + Radio Box + 160 + 35ebaa52:1509cf6a868:-6277 + 84 + 44 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_2 + + + true + true + false + + + Direction + + true + 1 + true + Label + 61 + false + 35ebaa52:1509cf6a868:-626b + 16 + 19 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_3 + + + true + true + false + + + Frequency + + true + 1 + true + Label + 77 + false + 35ebaa52:1509cf6a868:-6261 + 0 + 51 + \ No newline at end of file diff --git a/tools/commander/workspace_template/Displays/Core/TIME/SetDelay.opi b/tools/commander/workspace_template/Displays/Core/TIME/SetDelay.opi index 8142c559b..3d1f66f41 100644 --- a/tools/commander/workspace_template/Displays/Core/TIME/SetDelay.opi +++ b/tools/commander/workspace_template/Displays/Core/TIME/SetDelay.opi @@ -1,81 +1,41 @@ - - true - - 35ebaa52:1509cf6a868:-791f - true - false - - 150 - - true - - 4.0.104.201510200439 - true - Display - - false - -1 - -1 - - - - - 275 - -1 - - 6 - true - -1 - true - - - - - - false - 0 - false - false - $(pv_name) -$(pv_value) - 0 - - true - 35ebaa52:1509cf6a868:-78ea - - Set Delay - - false - 25 - 1 - - true - true - false - - - true - - - - - Action Button - false - - - - 163 - 50 - Action Button - 114 - - - - - - - ../scripts/RestartApp.js + + + + false + -1 + -1 + + false + + + + 1.5.3 + + + + 6 + 150 + + true + + + + + true + true + true + true + true + Display + 275 + 35ebaa52:1509cf6a868:-791f + -1 + -1 + + + + ../scripts/RestartApp.js - true - - - - - Default - - - - 0 - - 2 - - true - 35ebaa52:1509cf6a868:-78e9 - true - false - Seconds - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 87 - 16 - Label - 53 - - - - - - Default - - - - false - 0 - $(pv_name) -$(pv_value) - 0 - - - false - ###### - 0.0 - true - 20 - false - 1 - true - loc://Seconds<VDouble> - 0 - - - - false - Text Input - - Seconds - - - 0 - false - true - 35ebaa52:1509cf6a868:-78e7 - false - - true - - true - true - false - - false - 1 - false - - - - 137 - 114 - 53 - 1.7976931348623157E308 - - - - -1.7976931348623157E308 - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - true - 35ebaa52:1509cf6a868:-7878 - - - - true - - - true - 33 - 1 - - true - true - false - - false - true - loc://Direction<VString> - - - - Radio Box - false - - - - 216 - 24 - Direction - 12 - - - - - - Add - Subtract - - - Default - - - - 0 - - 2 - - true - 35ebaa52:1509cf6a868:-657f - true - false - Microseconds - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 87 - 16 - Label_1 - 78 - - - - - - Default - - - - false - 0 - $(pv_name) -$(pv_value) - 0 - - - false - ###### - 0.0 - true - 20 - false - 1 - true - loc://Microseconds<VDouble> - 0 - - - - false - Text Input - - Microseconds - - - 0 - false - true - 35ebaa52:1509cf6a868:-657e - false - - true - - true - true - false - - false - 1 - false - - - - 137 - 114 - 78 - 1.7976931348623157E308 - - - - -1.7976931348623157E308 - - Default - - +]]> + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 25 + + Action Button + 0 + + + + + true + true + false + + + + Set Delay + false + $(pv_name) +$(pv_value) + true + Action Button + 163 + 35ebaa52:1509cf6a868:-78ea + 50 + 114 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label + + + true + true + false + + + Seconds + + true + 1 + true + Label + 87 + false + 35ebaa52:1509cf6a868:-78e9 + 16 + 53 + + + + false + false + false + + + + true + + + + 1 + 1 + + true + + Default + + false + + + + 1 + 20 + 0 + false + 1.7976931348623157E308 + -1.7976931348623157E308 + false + Seconds + 0 + false + loc://Seconds<VDouble> + + 0.0 + + + true + true + false + + + 0 + true + + ###### + $(pv_name) +$(pv_value) + false + true + Text Input + 137 + 35ebaa52:1509cf6a868:-78e7 + 114 + 53 + + + + false + false + + + + true + + + + 0 + 1 + true + + Default + + false + + + + 33 + true + + Add + Subtract + + false + Direction + loc://Direction<VString> + + + + true + true + false + + + + + + $(pv_name) +$(pv_value) + true + Radio Box + 216 + 35ebaa52:1509cf6a868:-7878 + 24 + 12 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_1 + + + true + true + false + + + Microseconds + + true + 1 + true + Label + 87 + false + 35ebaa52:1509cf6a868:-657f + 16 + 78 + + + + false + false + false + + + + true + + + + 1 + 1 + + true + + Default + + false + + + + 1 + 20 + 0 + false + 1.7976931348623157E308 + -1.7976931348623157E308 + false + Microseconds + 0 + false + loc://Microseconds<VDouble> + + 0.0 + + + true + true + false + + + 0 + true + + ###### + $(pv_name) +$(pv_value) + false + true + Text Input + 137 + 35ebaa52:1509cf6a868:-657e + 114 + 78 + \ No newline at end of file diff --git a/tools/commander/workspace_template/Displays/Core/TIME/SetLeaps.opi b/tools/commander/workspace_template/Displays/Core/TIME/SetLeaps.opi index b339fe9f0..758c3eaec 100644 --- a/tools/commander/workspace_template/Displays/Core/TIME/SetLeaps.opi +++ b/tools/commander/workspace_template/Displays/Core/TIME/SetLeaps.opi @@ -1,81 +1,41 @@ - - true - - 35ebaa52:1509cf6a868:-791f - true - false - - 100 - - true - - 4.0.104.201510200439 - true - Display - - false - -1 - -1 - - - - - 275 - -1 - - 6 - true - -1 - true - - - - - - false - 0 - false - false - $(pv_name) -$(pv_value) - 0 - - true - 35ebaa52:1509cf6a868:-78ea - - Set Leap Seconds - - false - 25 - 1 - - true - true - false - - - true - - - - - Action Button - false - - - - 163 - 54 - Action Button - 60 - - - - - - - ../scripts/RestartApp.js + + + + false + -1 + -1 + + false + + + + 1.5.3 + + + + 6 + 100 + + true + + + + + true + true + true + true + true + Display + 275 + 35ebaa52:1509cf6a868:-791f + -1 + -1 + + + + ../scripts/RestartApp.js - true - - - - - Default - - - - 0 - - 2 - - true - 35ebaa52:1509cf6a868:-78e9 - true - false - Seconds - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 87 - 16 - Label - 24 - - - - - - Default - - - - false - 0 - $(pv_name) -$(pv_value) - 0 - - - false - ###### - 0.0 - true - 20 - false - 1 - true - loc://Seconds<VDouble> - 0 - - - - false - Text Input - - Seconds - - - 0 - false - true - 35ebaa52:1509cf6a868:-78e7 - false - - true - - true - true - false - - false - 1 - false - - - - 137 - 114 - 24 - 1.7976931348623157E308 - - - - -1.7976931348623157E308 - - Default - - +]]> + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 25 + + Action Button + 0 + + + + + true + true + false + + + + Set Leap Seconds + false + $(pv_name) +$(pv_value) + true + Action Button + 163 + 35ebaa52:1509cf6a868:-78ea + 54 + 60 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label + + + true + true + false + + + Seconds + + true + 1 + true + Label + 87 + false + 35ebaa52:1509cf6a868:-78e9 + 16 + 24 + + + + false + false + false + + + + true + + + + 1 + 1 + + true + + Default + + false + + + + 1 + 20 + 0 + false + 1.7976931348623157E308 + -1.7976931348623157E308 + false + Seconds + 0 + false + loc://Seconds<VDouble> + + 0.0 + + + true + true + false + + + 0 + true + + ###### + $(pv_name) +$(pv_value) + false + true + Text Input + 137 + 35ebaa52:1509cf6a868:-78e7 + 114 + 24 + \ No newline at end of file diff --git a/tools/commander/workspace_template/Displays/Core/TIME/SetSignal.opi b/tools/commander/workspace_template/Displays/Core/TIME/SetSignal.opi index 75f186520..02a129dec 100644 --- a/tools/commander/workspace_template/Displays/Core/TIME/SetSignal.opi +++ b/tools/commander/workspace_template/Displays/Core/TIME/SetSignal.opi @@ -1,81 +1,41 @@ - - true - - 35ebaa52:1509cf6a868:-791f - true - false - - 100 - - true - - 4.0.104.201510200439 - true - Display - - false - -1 - -1 - - - - - 275 - -1 - - 6 - true - -1 - true - - - - - - false - 0 - false - false - $(pv_name) -$(pv_value) - 0 - - true - 35ebaa52:1509cf6a868:-78ea - - Set Tone Source - - false - 25 - 1 - - true - true - false - - - true - - - - - Action Button - false - - - - 163 - 54 - Action Button - 60 - - - - - - - ../scripts/RestartApp.js + + + + false + -1 + -1 + + false + + + + 1.5.3 + + + + 6 + 100 + + true + + + + + true + true + true + true + true + Display + 275 + 35ebaa52:1509cf6a868:-791f + -1 + -1 + + + + ../scripts/RestartApp.js - true - - - - - Default - - - - 0 - - 2 - - true - 35ebaa52:1509cf6a868:-78e9 - true - false - Tone Source - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 83 - 18 - Label - 23 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - true - 35ebaa52:1509cf6a868:-78e7 - - - true - 29 - 1 - - true - true - false - - false - true - loc://ToneSource<VString> - - - - Combo - false - - - - 135 - 108 - ToneSource - 18 - - - - - - Primary - Redundant - - - Default - - +]]> + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 25 + + Action Button + 0 + + + + + true + true + false + + + + Set Tone Source + false + $(pv_name) +$(pv_value) + true + Action Button + 163 + 35ebaa52:1509cf6a868:-78ea + 54 + 60 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label + + + true + true + false + + + Tone Source + + true + 1 + true + Label + 83 + false + 35ebaa52:1509cf6a868:-78e9 + 18 + 23 + + + + false + false + + + + true + + + + 14 + 1 + true + + Default + + false + + + + 34 + + Primary + Redundant + + false + ToneSource + loc://ToneSource<VString> + + + + true + true + false + + + $(pv_name) +$(pv_value) + true + Combo + 135 + 35ebaa52:1509cf6a868:-78e7 + 108 + 18 + \ No newline at end of file diff --git a/tools/commander/workspace_template/Displays/Core/TIME/SetSource.opi b/tools/commander/workspace_template/Displays/Core/TIME/SetSource.opi index 840ac1458..0c6cc1f3b 100644 --- a/tools/commander/workspace_template/Displays/Core/TIME/SetSource.opi +++ b/tools/commander/workspace_template/Displays/Core/TIME/SetSource.opi @@ -1,81 +1,41 @@ - - true - - 35ebaa52:1509cf6a868:-791f - true - false - - 100 - - true - - 4.0.104.201510200439 - true - Display - - false - -1 - -1 - - - - - 275 - -1 - - 6 - true - -1 - true - - - - - - false - 0 - false - false - $(pv_name) -$(pv_value) - 0 - - true - 35ebaa52:1509cf6a868:-78ea - - Set Source - - false - 25 - 1 - - true - true - false - - - true - - - - - Action Button - false - - - - 163 - 54 - Action Button - 60 - - - - - - - ../scripts/RestartApp.js + + + + false + -1 + -1 + + false + + + + 1.5.3 + + + + 6 + 100 + + true + + + + + true + true + true + true + true + Display + 275 + 35ebaa52:1509cf6a868:-791f + -1 + -1 + + + + ../scripts/RestartApp.js - true - - - - - Default - - - - 0 - - 2 - - true - 35ebaa52:1509cf6a868:-78e9 - true - false - Clock Source - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 83 - 18 - Label - 23 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - true - 35ebaa52:1509cf6a868:-78e7 - - - true - 29 - 1 - - true - true - false - - false - true - loc://ClockSource<VString> - - - - Combo - false - - - - 135 - 108 - ClockSource - 18 - - - - - - Internal - External - - - Default - - +]]> + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 25 + + Action Button + 0 + + + + + true + true + false + + + + Set Source + false + $(pv_name) +$(pv_value) + true + Action Button + 163 + 35ebaa52:1509cf6a868:-78ea + 54 + 60 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label + + + true + true + false + + + Clock Source + + true + 1 + true + Label + 83 + false + 35ebaa52:1509cf6a868:-78e9 + 18 + 23 + + + + false + false + + + + true + + + + 14 + 1 + true + + Default + + false + + + + 34 + + Internal + External + + false + ClockSource + loc://ClockSource<VString> + + + + true + true + false + + + $(pv_name) +$(pv_value) + true + Combo + 135 + 35ebaa52:1509cf6a868:-78e7 + 108 + 18 + \ No newline at end of file diff --git a/tools/commander/workspace_template/Displays/Core/TIME/SetState.opi b/tools/commander/workspace_template/Displays/Core/TIME/SetState.opi index 81844c600..cae8576a6 100644 --- a/tools/commander/workspace_template/Displays/Core/TIME/SetState.opi +++ b/tools/commander/workspace_template/Displays/Core/TIME/SetState.opi @@ -1,81 +1,41 @@ - - true - - 35ebaa52:1509cf6a868:-791f - true - false - - 100 - - true - - 4.0.104.201510200439 - true - Display - - false - -1 - -1 - - - - - 275 - -1 - - 6 - true - -1 - true - - - - - - false - 0 - false - false - $(pv_name) -$(pv_value) - 0 - - true - 35ebaa52:1509cf6a868:-78ea - - Set State - - false - 25 - 1 - - true - true - false - - - true - - - - - Action Button - false - - - - 163 - 54 - Action Button - 60 - - - - - - - ../scripts/RestartApp.js + + + + false + -1 + -1 + + false + + + + 1.5.3 + + + + 6 + 100 + + true + + + + + true + true + true + true + true + Display + 275 + 35ebaa52:1509cf6a868:-791f + -1 + -1 + + + + ../scripts/RestartApp.js - true - - - - - Default - - - - 0 - - 2 - - true - 35ebaa52:1509cf6a868:-78e9 - true - false - Clock state - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 83 - 18 - Label - 23 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - true - 35ebaa52:1509cf6a868:-78e7 - - - true - 29 - 1 - - true - true - false - - false - true - loc://ClockState<VString> - - - - Combo - false - - - - 135 - 108 - ClockState - 18 - - - - - - Invalid - Valid - Flywheel - - - Default - - +]]> + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 25 + + Action Button + 0 + + + + + true + true + false + + + + Set State + false + $(pv_name) +$(pv_value) + true + Action Button + 163 + 35ebaa52:1509cf6a868:-78ea + 54 + 60 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label + + + true + true + false + + + Clock state + + true + 1 + true + Label + 83 + false + 35ebaa52:1509cf6a868:-78e9 + 18 + 23 + + + + false + false + + + + true + + + + 14 + 1 + true + + Default + + false + + + + 34 + + Invalid + Valid + Flywheel + + false + ClockState + loc://ClockState<VString> + + + + true + true + false + + + $(pv_name) +$(pv_value) + true + Combo + 135 + 35ebaa52:1509cf6a868:-78e7 + 108 + 18 + \ No newline at end of file diff --git a/tools/commander/workspace_template/Displays/Core/TIME/SetTime.opi b/tools/commander/workspace_template/Displays/Core/TIME/SetTime.opi index 572009317..84ce4e8bd 100644 --- a/tools/commander/workspace_template/Displays/Core/TIME/SetTime.opi +++ b/tools/commander/workspace_template/Displays/Core/TIME/SetTime.opi @@ -1,81 +1,41 @@ - - true - - 35ebaa52:1509cf6a868:-791f - true - false - - 150 - - true - - 4.0.104.201510200439 - true - Display - - false - -1 - -1 - - - - - 275 - -1 - - 6 - true - -1 - true - - - - - - false - 0 - false - false - $(pv_name) -$(pv_value) - 0 - - true - 35ebaa52:1509cf6a868:-78ea - - Set Time - - false - 25 - 1 - - true - true - false - - - true - - - - - Action Button - false - - - - 163 - 54 - Action Button - 114 - - - - - - - ../scripts/RestartApp.js + + + + false + -1 + -1 + + false + + + + 1.5.3 + + + + 6 + 150 + + true + + + + + true + true + true + true + true + Display + 275 + 35ebaa52:1509cf6a868:-791f + -1 + -1 + + + + ../scripts/RestartApp.js - true - - - - - Default - - - - 0 - - 2 - - true - 35ebaa52:1509cf6a868:-78e9 - true - false - Seconds - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 87 - 16 - Label - 54 - - - - - - Default - - - - false - 0 - $(pv_name) -$(pv_value) - 0 - - - false - ###### - 0.0 - true - 20 - false - 1 - true - loc://Seconds<VDouble> - 0 - - - - false - Text Input - - Seconds - - - 0 - false - true - 35ebaa52:1509cf6a868:-78e7 - false - - true - - true - true - false - - false - 1 - false - - - - 137 - 114 - 54 - 1.7976931348623157E308 - - - - -1.7976931348623157E308 - - Default - - - - 0 - - 2 - - true - 35ebaa52:1509cf6a868:-657f - true - false - Microseconds - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 87 - 16 - Label_1 - 79 - - - - - - Default - - - - false - 0 - $(pv_name) -$(pv_value) - 0 - - - false - ###### - 0.0 - true - 20 - false - 1 - true - loc://Microseconds<VDouble> - 0 - - - - false - Text Input - - Microseconds - - - 0 - false - true - 35ebaa52:1509cf6a868:-657e - false - - true - - true - true - false - - false - 1 - false - - - - 137 - 114 - 79 - 1.7976931348623157E308 - - - - -1.7976931348623157E308 - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - true - 35ebaa52:1509cf6a868:-62cf - - - - true - - - true - 33 - 1 - - true - true - false - - false - true - loc://Type<VString> - - - - Radio Box - false - - - - 216 - 28 - Type - 12 - - - - - - Time - MET - STCF - - - Default - - +]]> + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 25 + + Action Button + 0 + + + + + true + true + false + + + + Set Time + false + $(pv_name) +$(pv_value) + true + Action Button + 163 + 35ebaa52:1509cf6a868:-78ea + 54 + 114 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label + + + true + true + false + + + Seconds + + true + 1 + true + Label + 87 + false + 35ebaa52:1509cf6a868:-78e9 + 16 + 54 + + + + false + false + false + + + + true + + + + 1 + 1 + + true + + Default + + false + + + + 1 + 20 + 0 + false + 1.7976931348623157E308 + -1.7976931348623157E308 + false + Seconds + 0 + false + loc://Seconds<VDouble> + + 0.0 + + + true + true + false + + + 0 + true + + ###### + $(pv_name) +$(pv_value) + false + true + Text Input + 137 + 35ebaa52:1509cf6a868:-78e7 + 114 + 54 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_1 + + + true + true + false + + + Microseconds + + true + 1 + true + Label + 87 + false + 35ebaa52:1509cf6a868:-657f + 16 + 79 + + + + false + false + false + + + + true + + + + 1 + 1 + + true + + Default + + false + + + + 1 + 20 + 0 + false + 1.7976931348623157E308 + -1.7976931348623157E308 + false + Microseconds + 0 + false + loc://Microseconds<VDouble> + + 0.0 + + + true + true + false + + + 0 + true + + ###### + $(pv_name) +$(pv_value) + false + true + Text Input + 137 + 35ebaa52:1509cf6a868:-657e + 114 + 79 + + + + false + false + + + + true + + + + 0 + 1 + true + + Default + + false + + + + 33 + true + + Time + MET + STCF + + false + Type + loc://Type<VString> + + + + true + true + false + + + + + + $(pv_name) +$(pv_value) + true + Radio Box + 216 + 35ebaa52:1509cf6a868:-62cf + 28 + 12 + \ No newline at end of file diff --git a/tools/commander/workspace_template/Displays/Core/TIME/ViewDiagnostic.opi b/tools/commander/workspace_template/Displays/Core/TIME/ViewDiagnostic.opi index 47afd45a8..66bb9cb0d 100644 --- a/tools/commander/workspace_template/Displays/Core/TIME/ViewDiagnostic.opi +++ b/tools/commander/workspace_template/Displays/Core/TIME/ViewDiagnostic.opi @@ -1,5633 +1,5633 @@ - - true - - 35ebaa52:1509cf6a868:-791f - true - false - - 1350 - - true - - 4.0.104.201510200439 - true - Display - - false - -1 - -1 - - - - - 300 - -1 - - 6 - true - -1 - true - - - - - - false - 0 - false - false - $(pv_name) -$(pv_value) - 0 - - true - 35ebaa52:1509cf6a868:-78ea - - Telemeter Data - - false - 25 - 1 - - true - true - false - - - true - - - - - Action Button - false - - - - 163 - 53 - Action Button - 12 - - - - - - - ../scripts/RestartApp.js + + + + false + -1 + -1 + + false + + + + 1.5.3 + + + + 6 + 1350 + + true + + + + + true + true + true + true + true + Display + 300 + 35ebaa52:1509cf6a868:-791f + -1 + -1 + + + + ../scripts/RestartApp.js - true - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 35ebaa52:1509cf6a868:-72d5 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_time/Diag_AtToneMET_Seconds - 1 - - - - false - Text Update - false - false - 0 - - - - 151 - 138 - Text Update - 54 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 35ebaa52:1509cf6a868:-72d4 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_time/Diag_AtToneMET_Subseconds - 1 - - - - false - Text Update - false - false - 1 - - - - 151 - 138 - Text Update_1 - 73 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 35ebaa52:1509cf6a868:-72d3 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_time/Diag_AtToneSTCF_Seconds - 1 - - - - false - Text Update - false - false - 1 - - - - 151 - 138 - Text Update_2 - 92 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 35ebaa52:1509cf6a868:-72d2 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_time/Diag_AtToneSTCF_Subseconds - 1 - - - - false - Text Update - false - false - 1 - - - - 151 - 138 - Text Update_3 - 111 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 35ebaa52:1509cf6a868:-72d1 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_time/Diag_AtToneDelay_Seconds - 1 - - - - false - Text Update - false - false - 1 - - - - 151 - 138 - Text Update_4 - 130 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 35ebaa52:1509cf6a868:-72d0 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_time/Diag_AtToneDelay_Subseconds - 1 - - - - false - Text Update - false - false - 1 - - - - 151 - 138 - Text Update_5 - 149 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 35ebaa52:1509cf6a868:-72cf - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_time/Diag_AtToneLatch_Seconds - 1 - - - - false - Text Update - false - false - 1 - - - - 151 - 138 - Text Update_6 - 168 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 35ebaa52:1509cf6a868:-72ce - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_time/Diag_AtToneLatch_Subseconds - 1 - - - - false - Text Update - false - false - 1 - - - - 151 - 138 - Text Update_7 - 187 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 35ebaa52:1509cf6a868:-72cd - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_time/Diag_AtToneLeaps - 1 - - - - false - Text Update - false - false - 1 - - - - 151 - 138 - Text Update_8 - 206 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 35ebaa52:1509cf6a868:-72cc - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_time/Diag_ClockStateAPI - 1 - - - - false - Text Update - false - false - 1 - - - - 151 - 138 - Text Update_9 - 225 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 35ebaa52:1509cf6a868:-72cb - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_time/Diag_TimeSinceTone_Seconds - 1 - - - - false - Text Update - false - false - 1 - - - - 151 - 138 - Text Update_10 - 244 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 35ebaa52:1509cf6a868:-72ca - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_time/Diag_TimeSinceTone_Subseconds - 1 - - - - false - Text Update - false - false - 1 - - - - 151 - 138 - Text Update_11 - 263 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 35ebaa52:1509cf6a868:-72c9 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_time/Diag_CurrentLatch_Seconds - 1 - - - - false - Text Update - false - false - 1 - - - - 151 - 138 - Text Update_12 - 282 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 35ebaa52:1509cf6a868:-72c8 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_time/Diag_CurrentLatch_Subseconds - 1 - - - - false - Text Update - false - false - 1 - - - - 151 - 138 - Text Update_13 - 301 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 35ebaa52:1509cf6a868:-72c7 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_time/Diag_CurrentMET_Seconds - 1 - - - - false - Text Update - false - false - 1 - - - - 151 - 138 - Text Update_14 - 320 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 35ebaa52:1509cf6a868:-72c6 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_time/Diag_CurrentMET_Subseconds - 1 - - - - false - Text Update - false - false - 1 - - - - 151 - 138 - Text Update_15 - 339 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 35ebaa52:1509cf6a868:-72c5 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_time/Diag_CurrentTAI_Seconds - 1 - - - - false - Text Update - false - false - 1 - - - - 151 - 138 - Text Update_16 - 358 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 35ebaa52:1509cf6a868:-72c4 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_time/Diag_CurrentTAI_Subseconds - 1 - - - - false - Text Update - false - false - 1 - - - - 151 - 138 - Text Update_17 - 377 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 35ebaa52:1509cf6a868:-72c3 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_time/Diag_CurrentUTC_Seconds - 1 - - - - false - Text Update - false - false - 1 - - - - 151 - 138 - Text Update_18 - 396 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 35ebaa52:1509cf6a868:-72c2 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_time/Diag_CurrentUTC_Subseconds - 1 - - - - false - Text Update - false - false - 1 - - - - 151 - 138 - Text Update_19 - 415 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 35ebaa52:1509cf6a868:-72c1 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_time/Diag_ClockSetState - 1 - - - - false - Text Update - false - false - 1 - - - - 151 - 138 - Text Update_20 - 434 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 35ebaa52:1509cf6a868:-72c0 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_time/Diag_ClockFlyingState - 1 - - - - false - Text Update - false - false - 1 - - - - 151 - 138 - Text Update_21 - 453 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 35ebaa52:1509cf6a868:-72bf - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_time/Diag_ClockSource - 1 - - - - false - Text Update - false - false - 1 - - - - 151 - 138 - Text Update_22 - 472 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 35ebaa52:1509cf6a868:-72be - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_time/Diag_ClockSignal - 1 - - - - false - Text Update - false - false - 1 - - - - 151 - 138 - Text Update_23 - 491 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 35ebaa52:1509cf6a868:-72bd - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_time/Diag_ServerFlyState - 1 - - - - false - Text Update - false - false - 1 - - - - 151 - 138 - Text Update_24 - 510 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - 35ebaa52:1509cf6a868:-72bc - - - - - false - - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_time/Diag_Forced2Fly - - - - - Check Box - false - - - - 151 - 138 - Text Update_25 - 529 - - - - - - Default - - - - 0 - - 2 - - true - 35ebaa52:1509cf6a868:-721b - true - false - MET at Tone - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 80 - 48 - Label - 54 - - - - - - Default - - - - 0 - - 2 - - true - 35ebaa52:1509cf6a868:-7213 - true - false - Latch at Tone - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 80 - 48 - Label_1 - 168 - - - - - - Default - - - - 0 - - 2 - - true - 35ebaa52:1509cf6a868:-720c - true - false - STCF at Tone - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 80 - 48 - Label_2 - 92 - - - - - - Default - - - - 0 - - 2 - - true - 35ebaa52:1509cf6a868:-71f6 - true - false - Delay at Tone - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 92 - 36 - Label_3 - 130 - - - - - - Default - - - - 0 - - 2 - - true - 35ebaa52:1509cf6a868:-71f1 - true - false - Clock State API - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 98 - 30 - Label_4 - 225 - - - - - - Default - - - - 0 - - 2 - - true - 35ebaa52:1509cf6a868:-71db - true - false - Leaps at Tone - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 92 - 36 - Label_5 - 206 - - - - - - Default - - - - 0 - - 2 - - true - 35ebaa52:1509cf6a868:-71cd - true - false - Time Since Tone - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 98 - 30 - Label_6 - 244 - - - - - - Default - - - - 0 - - 2 - - true - 35ebaa52:1509cf6a868:-71bd - true - false - Current UTC - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 80 - 48 - Label_7 - 396 - - - - - - Default - - - - 0 - - 2 - - true - 35ebaa52:1509cf6a868:-71b6 - true - false - Current Latch - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 104 - 24 - Label_8 - 282 - - - - - - Default - - - - 0 - - 2 - - true - 35ebaa52:1509cf6a868:-71af - true - false - Clock Source - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 80 - 48 - Label_9 - 472 - - - - - - Default - - - - 0 - - 2 - - true - 35ebaa52:1509cf6a868:-71a8 - true - false - Current MET - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 80 - 48 - Label_10 - 320 - - - - - - Default - - - - 0 - - 2 - - true - 35ebaa52:1509cf6a868:-71a1 - true - false - Clock Set State - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 104 - 24 - Label_11 - 434 - - - - - - Default - - - - 0 - - 2 - - true - 35ebaa52:1509cf6a868:-719a - true - false - Current TAI - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 80 - 48 - Label_12 - 358 - - - - - - Default - - - - 0 - - 2 - - true - 35ebaa52:1509cf6a868:-7193 - true - false - Clock Flying State - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 110 - 18 - Label_13 - 453 - - - - - - Default - - - - 0 - - 2 - - true - 35ebaa52:1509cf6a868:-7175 - true - false - Clock Signal - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 80 - 48 - Label_14 - 491 - - - - - - Default - - - - 0 - - 2 - - true - 35ebaa52:1509cf6a868:-716e - true - false - Server Fly State - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 110 - 18 - Label_15 - 510 - - - - - - Default - - - - 0 - - 2 - - true - 35ebaa52:1509cf6a868:-7167 - true - false - Forced to Fly - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 80 - 48 - Label_16 - 529 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - 35ebaa52:1509cf6a868:-712d - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_time/Diag_ClkSet - - - - - Check Box - false - - - - 100 - 138 - Check Box - 552 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - 35ebaa52:1509cf6a868:-712c - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_time/Diag_Flying - - - - - Check Box - false - - - - 100 - 138 - Check Box_1 - 571 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - 35ebaa52:1509cf6a868:-712b - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_time/Diag_SrcInt - - - - - Check Box - false - - - - 100 - 138 - Check Box_2 - 590 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - 35ebaa52:1509cf6a868:-712a - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_time/Diag_SigPri - - - - - Check Box - false - - - - 100 - 138 - Check Box_3 - 609 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - 35ebaa52:1509cf6a868:-7129 - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_time/Diag_SrvFly - - - - - Check Box - false - - - - 100 - 138 - Check Box_4 - 628 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - 35ebaa52:1509cf6a868:-7128 - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_time/Diag_CmdFly - - - - - Check Box - false - - - - 100 - 138 - Check Box_5 - 647 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - 35ebaa52:1509cf6a868:-7127 - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_time/Diag_AddAdj - - - - - Check Box - false - - - - 100 - 138 - Check Box_6 - 685 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - 35ebaa52:1509cf6a868:-7126 - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_time/Diag_Add1Hz - - - - - Check Box - false - - - - 100 - 138 - Check Box_7 - 704 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - 35ebaa52:1509cf6a868:-7125 - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_time/Diag_AddTcl - - - - - Check Box - false - - - - 100 - 138 - Check Box_8 - 723 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - 35ebaa52:1509cf6a868:-7124 - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_time/Diag_Server - - - - - Check Box - false - - - - 100 - 138 - Check Box_9 - 742 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - 35ebaa52:1509cf6a868:-7123 - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_time/Diag_GoodTone - - - - - Check Box - false - - - - 100 - 138 - Check Box_10 - 666 - - - - - - Default - - - - 0 - - 2 - - true - 35ebaa52:1509cf6a868:-711b - true - false - Clock Set - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 80 - 48 - Label_17 - 552 - - - - - - Default - - - - 0 - - 2 - - true - 35ebaa52:1509cf6a868:-710f - true - false - Flying - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 80 - 48 - Label_18 - 571 - - - - - - Default - - - - 0 - - 2 - - true - 35ebaa52:1509cf6a868:-710a - true - false - Clock Set - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 80 - 48 - Label_19 - 590 - - - - - - Default - - - - 0 - - 2 - - true - 35ebaa52:1509cf6a868:-7105 - true - false - Signal Primary - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 110 - 18 - Label_20 - 628 - - - - - - Default - - - - 0 - - 2 - - true - 35ebaa52:1509cf6a868:-7100 - true - false - Source Internal - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 104 - 24 - Label_21 - 609 - - - - - - Default - - - - 0 - - 2 - - true - 35ebaa52:1509cf6a868:-70fb - true - false - Add TCL - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 80 - 48 - Label_22 - 723 - - - - - - Default - - - - 0 - - 2 - - true - 35ebaa52:1509cf6a868:-70f6 - true - false - Add 1Hz - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 80 - 48 - Label_23 - 704 - - - - - - Default - - - - 0 - - 2 - - true - 35ebaa52:1509cf6a868:-70f1 - true - false - Server Flying - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 80 - 48 - Label_24 - 647 - - - - - - Default - - - - 0 - - 2 - - true - 35ebaa52:1509cf6a868:-70ec - true - false - Commanded Flying - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 122 - 6 - Label_25 - 664 - - - - - - Default - - - - 0 - - 2 - - true - 35ebaa52:1509cf6a868:-70e7 - true - false - Add Adj - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 80 - 48 - Label_26 - 683 - - - - - - Default - - - - 0 - - 2 - - true - 35ebaa52:1509cf6a868:-70cd - true - false - Server - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 80 - 48 - Label_27 - 742 - - - - - - Default - - - - 0 - - 2 - - true - 35ebaa52:1509cf6a868:-70c8 - true - false - Add TCL - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 80 - 48 - Label_28 - 761 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - 0 - true - 35ebaa52:1509cf6a868:-70ba - - - - - false - - true - 20 - 1 - - true - false - false - - true - /cfs/cfe_time/Diag_GoodTone - - - - - Check Box - false - - - - 100 - 138 - Check Box_11 - 761 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 35ebaa52:1509cf6a868:-706e - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_time/Diag_OneTimeDirection - 1 - - - - false - Text Update - false - false - 1 - - - - 151 - 138 - Text Update_26 - 786 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 35ebaa52:1509cf6a868:-706d - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_time/Diag_OneHzDirection - 1 - - - - false - Text Update - false - false - 1 - - - - 151 - 138 - Text Update_27 - 805 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 35ebaa52:1509cf6a868:-706c - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_time/Diag_DelayDirection - 1 - - - - false - Text Update - false - false - 1 - - - - 151 - 138 - Text Update_28 - 824 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 35ebaa52:1509cf6a868:-706b - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_time/Diag_OneTimeAdjust_Seconds - 1 - - - - false - Text Update - false - false - 1 - - - - 151 - 138 - Text Update_29 - 843 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 35ebaa52:1509cf6a868:-706a - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_time/Diag_OneTimeAdjust_Subseconds - 1 - - - - false - Text Update - false - false - 1 - - - - 151 - 138 - Text Update_30 - 862 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 35ebaa52:1509cf6a868:-7069 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_time/Diag_OneHzAdjust_Seconds - 1 - - - - false - Text Update - false - false - 1 - - - - 151 - 138 - Text Update_31 - 881 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 35ebaa52:1509cf6a868:-7068 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_time/Diag_OneHzAdjust_Subseconds - 1 - - - - false - Text Update - false - false - 1 - - - - 151 - 138 - Text Update_32 - 900 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 35ebaa52:1509cf6a868:-7067 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_time/Diag_ToneSignalLatch_Seconds - 1 - - - - false - Text Update - false - false - 1 - - - - 151 - 138 - Text Update_33 - 919 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 35ebaa52:1509cf6a868:-7066 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_time/Diag_ToneSignalLatch_Subseconds - 1 - - - - false - Text Update - false - false - 1 - - - - 151 - 138 - Text Update_34 - 938 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 35ebaa52:1509cf6a868:-7065 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_time/Diag_ToneDataLatch_Seconds - 1 - - - - false - Text Update - false - false - 1 - - - - 151 - 138 - Text Update_35 - 957 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 35ebaa52:1509cf6a868:-7064 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_time/Diag_ToneDataLatch_Subseconds - 1 - - - - false - Text Update - false - false - 1 - - - - 151 - 138 - Text Update_36 - 976 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 35ebaa52:1509cf6a868:-7063 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_time/Diag_ToneMatchCount - 1 - - - - false - Text Update - false - false - 1 - - - - 151 - 138 - Text Update_37 - 995 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 35ebaa52:1509cf6a868:-7062 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_time/Diag_ToneMatchErrors - 1 - - - - false - Text Update - false - false - 1 - - - - 151 - 138 - Text Update_38 - 1014 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 35ebaa52:1509cf6a868:-7061 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_time/Diag_ToneSignalCount - 1 - - - - false - Text Update - false - false - 1 - - - - 151 - 138 - Text Update_39 - 1033 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 35ebaa52:1509cf6a868:-7060 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_time/Diag_ToneDataCount - 1 - - - - false - Text Update - false - false - 1 - - - - 151 - 138 - Text Update_40 - 1052 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 35ebaa52:1509cf6a868:-705f - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_time/Diag_ToneIntCount - 1 - - - - false - Text Update - false - false - 1 - - - - 151 - 138 - Text Update_41 - 1071 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 35ebaa52:1509cf6a868:-705e - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_time/Diag_ToneIntErrors - 1 - - - - false - Text Update - false - false - 1 - - - - 151 - 138 - Text Update_42 - 1090 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 35ebaa52:1509cf6a868:-705d - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_time/Diag_ToneTaskCount - 1 - - - - false - Text Update - false - false - 1 - - - - 151 - 138 - Text Update_43 - 1109 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 35ebaa52:1509cf6a868:-705c - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_time/Diag_VersionCount - 1 - - - - false - Text Update - false - false - 1 - - - - 151 - 138 - Text Update_44 - 1128 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 35ebaa52:1509cf6a868:-705b - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_time/Diag_LocalIntCount - 1 - - - - false - Text Update - false - false - 1 - - - - 151 - 138 - Text Update_45 - 1147 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 35ebaa52:1509cf6a868:-705a - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_time/Diag_LocalTaskCount - 1 - - - - false - Text Update - false - false - 1 - - - - 151 - 138 - Text Update_46 - 1166 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 35ebaa52:1509cf6a868:-7059 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_time/Diag_VirtualMET - 1 - - - - false - Text Update - false - false - 1 - - - - 151 - 138 - Text Update_47 - 1185 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 35ebaa52:1509cf6a868:-7058 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_time/Diag_MinElapsed - 1 - - - - false - Text Update - false - false - 1 - - - - 151 - 138 - Text Update_48 - 1204 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 35ebaa52:1509cf6a868:-7057 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_time/Diag_MaxElapsed - 1 - - - - false - Text Update - false - false - 1 - - - - 151 - 138 - Text Update_49 - 1223 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 35ebaa52:1509cf6a868:-7056 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_time/Diag_MaxLocalClock_Seconds - 1 - - - - false - Text Update - false - false - 0 - - - - 151 - 138 - Text Update_50 - 1242 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 35ebaa52:1509cf6a868:-7055 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_time/Diag_MaxLocalClock_Subseconds - 1 - - - - false - Text Update - false - false - 0 - - - - 151 - 138 - Text Update_51 - 1261 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 35ebaa52:1509cf6a868:-7054 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_time/Diag_ToneOverLimit - 1 - - - - false - Text Update - false - false - 0 - - - - 151 - 138 - Text Update_52 - 1280 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 35ebaa52:1509cf6a868:-7053 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_time/Diag_ToneUnderLimit - 1 - - - - false - Text Update - false - false - 0 - - - - 151 - 138 - Text Update_53 - 1299 - - - - - - Default - - - - 0 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - 35ebaa52:1509cf6a868:-7052 - false - - false - ###### - 0.0 - - true - true - 20 - 1 - - true - true - false - - true - /cfs/cfe_time/Diag_DataStoreStatus - 1 - - - - false - Text Update - false - false - 0 - - - - 151 - 138 - Text Update_54 - 1318 - - - - - - Default - - - - 0 - - 2 - - true - 35ebaa52:1509cf6a868:-7048 - true - false - One Time Direction - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 122 - 6 - Label_29 - 786 - - - - - - Default - - - - 0 - - 2 - - true - 35ebaa52:1509cf6a868:-7043 - true - false - 1 Hz Direction - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 110 - 18 - Label_30 - 805 - - - - - - Default - - - - 0 - - 2 - - true - 35ebaa52:1509cf6a868:-703e - true - false - Delay Direction - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 117 - 11 - Label_31 - 824 - - - - - - Default - - - - 0 - - 2 - - true - 35ebaa52:1509cf6a868:-7034 - true - false - One Time Adjust - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 110 - 18 - Label_33 - 843 - - - - - - Default - - - - 0 - - 2 - - true - 35ebaa52:1509cf6a868:-702f - true - false - Tone Signal Latch - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 119 - 7 - Label_34 - 919 - - - - - - Default - - - - 0 - - 2 - - true - 35ebaa52:1509cf6a868:-702a - true - false - 1 Hz Adjust - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 80 - 48 - Label_35 - 881 - - - - - - Default - - - - 0 - - 2 - - true - 35ebaa52:1509cf6a868:-7020 - true - false - Tone Data Latch - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 116 - 12 - Label_37 - 957 - - - - - - Default - - - - 0 - - 2 - - true - 35ebaa52:1509cf6a868:-7011 - true - false - Tone Match Errors - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 117 - 11 - Label_40 - 1014 - - - - - - Default - - - - 0 - - 2 - - true - 35ebaa52:1509cf6a868:-700c - true - false - Tone Match Count - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 116 - 12 - Label_41 - 995 - - - - - - Default - - - - 0 - - 2 - - true - 35ebaa52:1509cf6a868:-7007 - true - false - Tone Signal Count - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 117 - 11 - Label_42 - 1033 - - - - - - Default - - - - 0 - - 2 - - true - 35ebaa52:1509cf6a868:-7002 - true - false - Tone Data Count - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 110 - 18 - Label_43 - 1052 - - - - - - Default - - - - 0 - - 2 - - true - 35ebaa52:1509cf6a868:-6ffd - true - false - Tone Int Count - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 104 - 24 - Label_44 - 1071 - - - - - - Default - - - - 0 - - 2 - - true - 35ebaa52:1509cf6a868:-6ff8 - true - false - Tone Int Errors - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 110 - 18 - Label_45 - 1090 - - - - - - Default - - - - 0 - - 2 - - true - 35ebaa52:1509cf6a868:-6ff3 - true - false - Version Count - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 104 - 24 - Label_46 - 1128 - - - - - - Default - - - - 0 - - 2 - - true - 35ebaa52:1509cf6a868:-6fee - true - false - Tone Task Count - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 110 - 18 - Label_47 - 1109 - - - - - - Default - - - - 0 - - 2 - - true - 35ebaa52:1509cf6a868:-6fe9 - true - false - Local Int Count - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 104 - 24 - Label_48 - 1147 - - - - - - Default - - - - 0 - - 2 - - true - 35ebaa52:1509cf6a868:-6fa7 - true - false - Max Local Clock - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 104 - 24 - Label_60 - 1242 - - - - - - Default - - - - 0 - - 2 - - true - 35ebaa52:1509cf6a868:-6fa2 - true - false - Local Task Count - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 112 - 16 - Label_61 - 1165 - - - - - - Default - - - - 0 - - 2 - - true - 35ebaa52:1509cf6a868:-6f9d - true - false - Tone Over Limit - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 110 - 18 - Label_62 - 1280 - - - - - - Default - - - - 0 - - 2 - - true - 35ebaa52:1509cf6a868:-6f93 - true - false - Data Store Status - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 110 - 18 - Label_64 - 1318 - - - - - - Default - - - - 0 - - 2 - - true - 35ebaa52:1509cf6a868:-6f8e - true - false - Tone Under Limit - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 116 - 12 - Label_65 - 1299 - - - - - - Default - - - - 0 - - 2 - - true - 35ebaa52:1509cf6a868:-6f89 - true - false - Max Elapsed - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 80 - 48 - Label_66 - 1223 - - - - - - Default - - - - 0 - - 2 - - true - 35ebaa52:1509cf6a868:-6f84 - true - false - Min Elapsed - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 80 - 48 - Label_67 - 1205 - - - - - - Default - - - - 0 - - 2 - - true - 35ebaa52:1509cf6a868:-6f7f - true - false - Virtual MET - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 80 - 48 - Label_68 - 1185 - - - - - - Default - - +]]> + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 25 + + Action Button + 0 + + + + + true + true + false + + + + Telemeter Data + false + $(pv_name) +$(pv_value) + true + Action Button + 163 + 35ebaa52:1509cf6a868:-78ea + 53 + 12 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update + 0 + false + /cfs/cfe_time/Diag_AtToneMET_Seconds + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 151 + false + 35ebaa52:1509cf6a868:-72d5 + 138 + 54 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_1 + 0 + false + /cfs/cfe_time/Diag_AtToneMET_Subseconds + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 151 + false + 35ebaa52:1509cf6a868:-72d4 + 138 + 73 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_2 + 0 + false + /cfs/cfe_time/Diag_AtToneSTCF_Seconds + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 151 + false + 35ebaa52:1509cf6a868:-72d3 + 138 + 92 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_3 + 0 + false + /cfs/cfe_time/Diag_AtToneSTCF_Subseconds + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 151 + false + 35ebaa52:1509cf6a868:-72d2 + 138 + 111 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_4 + 0 + false + /cfs/cfe_time/Diag_AtToneDelay_Seconds + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 151 + false + 35ebaa52:1509cf6a868:-72d1 + 138 + 130 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_5 + 0 + false + /cfs/cfe_time/Diag_AtToneDelay_Subseconds + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 151 + false + 35ebaa52:1509cf6a868:-72d0 + 138 + 149 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_6 + 0 + false + /cfs/cfe_time/Diag_AtToneLatch_Seconds + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 151 + false + 35ebaa52:1509cf6a868:-72cf + 138 + 168 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_7 + 0 + false + /cfs/cfe_time/Diag_AtToneLatch_Subseconds + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 151 + false + 35ebaa52:1509cf6a868:-72ce + 138 + 187 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_8 + 0 + false + /cfs/cfe_time/Diag_AtToneLeaps + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 151 + false + 35ebaa52:1509cf6a868:-72cd + 138 + 206 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_9 + 0 + false + /cfs/cfe_time/Diag_ClockStateAPI + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 151 + false + 35ebaa52:1509cf6a868:-72cc + 138 + 225 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_10 + 0 + false + /cfs/cfe_time/Diag_TimeSinceTone_Seconds + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 151 + false + 35ebaa52:1509cf6a868:-72cb + 138 + 244 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_11 + 0 + false + /cfs/cfe_time/Diag_TimeSinceTone_Subseconds + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 151 + false + 35ebaa52:1509cf6a868:-72ca + 138 + 263 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_12 + 0 + false + /cfs/cfe_time/Diag_CurrentLatch_Seconds + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 151 + false + 35ebaa52:1509cf6a868:-72c9 + 138 + 282 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_13 + 0 + false + /cfs/cfe_time/Diag_CurrentLatch_Subseconds + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 151 + false + 35ebaa52:1509cf6a868:-72c8 + 138 + 301 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_14 + 0 + false + /cfs/cfe_time/Diag_CurrentMET_Seconds + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 151 + false + 35ebaa52:1509cf6a868:-72c7 + 138 + 320 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_15 + 0 + false + /cfs/cfe_time/Diag_CurrentMET_Subseconds + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 151 + false + 35ebaa52:1509cf6a868:-72c6 + 138 + 339 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_16 + 0 + false + /cfs/cfe_time/Diag_CurrentTAI_Seconds + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 151 + false + 35ebaa52:1509cf6a868:-72c5 + 138 + 358 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_17 + 0 + false + /cfs/cfe_time/Diag_CurrentTAI_Subseconds + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 151 + false + 35ebaa52:1509cf6a868:-72c4 + 138 + 377 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_18 + 0 + false + /cfs/cfe_time/Diag_CurrentUTC_Seconds + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 151 + false + 35ebaa52:1509cf6a868:-72c3 + 138 + 396 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_19 + 0 + false + /cfs/cfe_time/Diag_CurrentUTC_Subseconds + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 151 + false + 35ebaa52:1509cf6a868:-72c2 + 138 + 415 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_20 + 0 + false + /cfs/cfe_time/Diag_ClockSetState + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 151 + false + 35ebaa52:1509cf6a868:-72c1 + 138 + 434 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_21 + 0 + false + /cfs/cfe_time/Diag_ClockFlyingState + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 151 + false + 35ebaa52:1509cf6a868:-72c0 + 138 + 453 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_22 + 0 + false + /cfs/cfe_time/Diag_ClockSource + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 151 + false + 35ebaa52:1509cf6a868:-72bf + 138 + 472 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_23 + 0 + false + /cfs/cfe_time/Diag_ClockSignal + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 151 + false + 35ebaa52:1509cf6a868:-72be + 138 + 491 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_24 + 0 + false + /cfs/cfe_time/Diag_ServerFlyState + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 151 + false + 35ebaa52:1509cf6a868:-72bd + 138 + 510 + + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + Text Update_25 + /cfs/cfe_time/Diag_Forced2Fly + + + + true + true + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 151 + 35ebaa52:1509cf6a868:-72bc + 138 + 529 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label + + + true + true + false + + + MET at Tone + + true + 1 + true + Label + 80 + false + 35ebaa52:1509cf6a868:-721b + 48 + 54 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_1 + + + true + true + false + + + Latch at Tone + + true + 1 + true + Label + 80 + false + 35ebaa52:1509cf6a868:-7213 + 48 + 168 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_2 + + + true + true + false + + + STCF at Tone + + true + 1 + true + Label + 80 + false + 35ebaa52:1509cf6a868:-720c + 48 + 92 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_3 + + + true + true + false + + + Delay at Tone + + true + 1 + true + Label + 92 + false + 35ebaa52:1509cf6a868:-71f6 + 36 + 130 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_4 + + + true + true + false + + + Clock State API + + true + 1 + true + Label + 98 + false + 35ebaa52:1509cf6a868:-71f1 + 30 + 225 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_5 + + + true + true + false + + + Leaps at Tone + + true + 1 + true + Label + 92 + false + 35ebaa52:1509cf6a868:-71db + 36 + 206 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_6 + + + true + true + false + + + Time Since Tone + + true + 1 + true + Label + 98 + false + 35ebaa52:1509cf6a868:-71cd + 30 + 244 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_7 + + + true + true + false + + + Current UTC + + true + 1 + true + Label + 80 + false + 35ebaa52:1509cf6a868:-71bd + 48 + 396 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_8 + + + true + true + false + + + Current Latch + + true + 1 + true + Label + 104 + false + 35ebaa52:1509cf6a868:-71b6 + 24 + 282 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_9 + + + true + true + false + + + Clock Source + + true + 1 + true + Label + 80 + false + 35ebaa52:1509cf6a868:-71af + 48 + 472 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_10 + + + true + true + false + + + Current MET + + true + 1 + true + Label + 80 + false + 35ebaa52:1509cf6a868:-71a8 + 48 + 320 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_11 + + + true + true + false + + + Clock Set State + + true + 1 + true + Label + 104 + false + 35ebaa52:1509cf6a868:-71a1 + 24 + 434 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_12 + + + true + true + false + + + Current TAI + + true + 1 + true + Label + 80 + false + 35ebaa52:1509cf6a868:-719a + 48 + 358 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_13 + + + true + true + false + + + Clock Flying State + + true + 1 + true + Label + 110 + false + 35ebaa52:1509cf6a868:-7193 + 18 + 453 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_14 + + + true + true + false + + + Clock Signal + + true + 1 + true + Label + 80 + false + 35ebaa52:1509cf6a868:-7175 + 48 + 491 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_15 + + + true + true + false + + + Server Fly State + + true + 1 + true + Label + 110 + false + 35ebaa52:1509cf6a868:-716e + 18 + 510 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_16 + + + true + true + false + + + Forced to Fly + + true + 1 + true + Label + 80 + false + 35ebaa52:1509cf6a868:-7167 + 48 + 529 + + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + Check Box + /cfs/cfe_time/Diag_ClkSet + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 100 + 35ebaa52:1509cf6a868:-712d + 138 + 552 + + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + Check Box_1 + /cfs/cfe_time/Diag_Flying + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 100 + 35ebaa52:1509cf6a868:-712c + 138 + 571 + + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + Check Box_2 + /cfs/cfe_time/Diag_SrcInt + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 100 + 35ebaa52:1509cf6a868:-712b + 138 + 590 + + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + Check Box_3 + /cfs/cfe_time/Diag_SigPri + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 100 + 35ebaa52:1509cf6a868:-712a + 138 + 609 + + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + Check Box_4 + /cfs/cfe_time/Diag_SrvFly + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 100 + 35ebaa52:1509cf6a868:-7129 + 138 + 628 + + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + Check Box_5 + /cfs/cfe_time/Diag_CmdFly + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 100 + 35ebaa52:1509cf6a868:-7128 + 138 + 647 + + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + Check Box_6 + /cfs/cfe_time/Diag_AddAdj + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 100 + 35ebaa52:1509cf6a868:-7127 + 138 + 685 + + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + Check Box_7 + /cfs/cfe_time/Diag_Add1Hz + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 100 + 35ebaa52:1509cf6a868:-7126 + 138 + 704 + + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + Check Box_8 + /cfs/cfe_time/Diag_AddTcl + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 100 + 35ebaa52:1509cf6a868:-7125 + 138 + 723 + + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + Check Box_9 + /cfs/cfe_time/Diag_Server + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 100 + 35ebaa52:1509cf6a868:-7124 + 138 + 742 + + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + Check Box_10 + /cfs/cfe_time/Diag_GoodTone + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 100 + 35ebaa52:1509cf6a868:-7123 + 138 + 666 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_17 + + + true + true + false + + + Clock Set + + true + 1 + true + Label + 80 + false + 35ebaa52:1509cf6a868:-711b + 48 + 552 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_18 + + + true + true + false + + + Flying + + true + 1 + true + Label + 80 + false + 35ebaa52:1509cf6a868:-710f + 48 + 571 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_19 + + + true + true + false + + + Clock Set + + true + 1 + true + Label + 80 + false + 35ebaa52:1509cf6a868:-710a + 48 + 590 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_20 + + + true + true + false + + + Signal Primary + + true + 1 + true + Label + 110 + false + 35ebaa52:1509cf6a868:-7105 + 18 + 628 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_21 + + + true + true + false + + + Source Internal + + true + 1 + true + Label + 104 + false + 35ebaa52:1509cf6a868:-7100 + 24 + 609 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_22 + + + true + true + false + + + Add TCL + + true + 1 + true + Label + 80 + false + 35ebaa52:1509cf6a868:-70fb + 48 + 723 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_23 + + + true + true + false + + + Add 1Hz + + true + 1 + true + Label + 80 + false + 35ebaa52:1509cf6a868:-70f6 + 48 + 704 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_24 + + + true + true + false + + + Server Flying + + true + 1 + true + Label + 80 + false + 35ebaa52:1509cf6a868:-70f1 + 48 + 647 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_25 + + + true + true + false + + + Commanded Flying + + true + 1 + true + Label + 122 + false + 35ebaa52:1509cf6a868:-70ec + 6 + 664 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_26 + + + true + true + false + + + Add Adj + + true + 1 + true + Label + 80 + false + 35ebaa52:1509cf6a868:-70e7 + 48 + 683 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_27 + + + true + true + false + + + Server + + true + 1 + true + Label + 80 + false + 35ebaa52:1509cf6a868:-70cd + 48 + 742 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_28 + + + true + true + false + + + Add TCL + + true + 1 + true + Label + 80 + false + 35ebaa52:1509cf6a868:-70c8 + 48 + 761 + + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + Check Box_11 + /cfs/cfe_time/Diag_GoodTone + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 100 + 35ebaa52:1509cf6a868:-70ba + 138 + 761 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_26 + 0 + false + /cfs/cfe_time/Diag_OneTimeDirection + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 151 + false + 35ebaa52:1509cf6a868:-706e + 138 + 786 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_27 + 0 + false + /cfs/cfe_time/Diag_OneHzDirection + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 151 + false + 35ebaa52:1509cf6a868:-706d + 138 + 805 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_28 + 0 + false + /cfs/cfe_time/Diag_DelayDirection + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 151 + false + 35ebaa52:1509cf6a868:-706c + 138 + 824 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_29 + 0 + false + /cfs/cfe_time/Diag_OneTimeAdjust_Seconds + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 151 + false + 35ebaa52:1509cf6a868:-706b + 138 + 843 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_30 + 0 + false + /cfs/cfe_time/Diag_OneTimeAdjust_Subseconds + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 151 + false + 35ebaa52:1509cf6a868:-706a + 138 + 862 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_31 + 0 + false + /cfs/cfe_time/Diag_OneHzAdjust_Seconds + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 151 + false + 35ebaa52:1509cf6a868:-7069 + 138 + 881 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_32 + 0 + false + /cfs/cfe_time/Diag_OneHzAdjust_Subseconds + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 151 + false + 35ebaa52:1509cf6a868:-7068 + 138 + 900 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_33 + 0 + false + /cfs/cfe_time/Diag_ToneSignalLatch_Seconds + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 151 + false + 35ebaa52:1509cf6a868:-7067 + 138 + 919 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_34 + 0 + false + /cfs/cfe_time/Diag_ToneSignalLatch_Subseconds + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 151 + false + 35ebaa52:1509cf6a868:-7066 + 138 + 938 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_35 + 0 + false + /cfs/cfe_time/Diag_ToneDataLatch_Seconds + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 151 + false + 35ebaa52:1509cf6a868:-7065 + 138 + 957 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_36 + 0 + false + /cfs/cfe_time/Diag_ToneDataLatch_Subseconds + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 151 + false + 35ebaa52:1509cf6a868:-7064 + 138 + 976 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_37 + 0 + false + /cfs/cfe_time/Diag_ToneMatchCount + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 151 + false + 35ebaa52:1509cf6a868:-7063 + 138 + 995 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_38 + 0 + false + /cfs/cfe_time/Diag_ToneMatchErrors + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 151 + false + 35ebaa52:1509cf6a868:-7062 + 138 + 1014 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_39 + 0 + false + /cfs/cfe_time/Diag_ToneSignalCount + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 151 + false + 35ebaa52:1509cf6a868:-7061 + 138 + 1033 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_40 + 0 + false + /cfs/cfe_time/Diag_ToneDataCount + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 151 + false + 35ebaa52:1509cf6a868:-7060 + 138 + 1052 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_41 + 0 + false + /cfs/cfe_time/Diag_ToneIntCount + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 151 + false + 35ebaa52:1509cf6a868:-705f + 138 + 1071 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_42 + 0 + false + /cfs/cfe_time/Diag_ToneIntErrors + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 151 + false + 35ebaa52:1509cf6a868:-705e + 138 + 1090 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_43 + 0 + false + /cfs/cfe_time/Diag_ToneTaskCount + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 151 + false + 35ebaa52:1509cf6a868:-705d + 138 + 1109 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_44 + 0 + false + /cfs/cfe_time/Diag_VersionCount + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 151 + false + 35ebaa52:1509cf6a868:-705c + 138 + 1128 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_45 + 0 + false + /cfs/cfe_time/Diag_LocalIntCount + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 151 + false + 35ebaa52:1509cf6a868:-705b + 138 + 1147 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_46 + 0 + false + /cfs/cfe_time/Diag_LocalTaskCount + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 151 + false + 35ebaa52:1509cf6a868:-705a + 138 + 1166 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_47 + 0 + false + /cfs/cfe_time/Diag_VirtualMET + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 151 + false + 35ebaa52:1509cf6a868:-7059 + 138 + 1185 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_48 + 0 + false + /cfs/cfe_time/Diag_MinElapsed + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 151 + false + 35ebaa52:1509cf6a868:-7058 + 138 + 1204 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_49 + 0 + false + /cfs/cfe_time/Diag_MaxElapsed + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 151 + false + 35ebaa52:1509cf6a868:-7057 + 138 + 1223 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_50 + 0 + false + /cfs/cfe_time/Diag_MaxLocalClock_Seconds + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 151 + false + 35ebaa52:1509cf6a868:-7056 + 138 + 1242 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_51 + 0 + false + /cfs/cfe_time/Diag_MaxLocalClock_Subseconds + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 151 + false + 35ebaa52:1509cf6a868:-7055 + 138 + 1261 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_52 + 0 + false + /cfs/cfe_time/Diag_ToneOverLimit + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 151 + false + 35ebaa52:1509cf6a868:-7054 + 138 + 1280 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_53 + 0 + false + /cfs/cfe_time/Diag_ToneUnderLimit + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 151 + false + 35ebaa52:1509cf6a868:-7053 + 138 + 1299 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_54 + 0 + false + /cfs/cfe_time/Diag_DataStoreStatus + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 151 + false + 35ebaa52:1509cf6a868:-7052 + 138 + 1318 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_29 + + + true + true + false + + + One Time Direction + + true + 1 + true + Label + 122 + false + 35ebaa52:1509cf6a868:-7048 + 6 + 786 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_30 + + + true + true + false + + + 1 Hz Direction + + true + 1 + true + Label + 110 + false + 35ebaa52:1509cf6a868:-7043 + 18 + 805 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_31 + + + true + true + false + + + Delay Direction + + true + 1 + true + Label + 117 + false + 35ebaa52:1509cf6a868:-703e + 11 + 824 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_33 + + + true + true + false + + + One Time Adjust + + true + 1 + true + Label + 110 + false + 35ebaa52:1509cf6a868:-7034 + 18 + 843 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_34 + + + true + true + false + + + Tone Signal Latch + + true + 1 + true + Label + 119 + false + 35ebaa52:1509cf6a868:-702f + 7 + 919 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_35 + + + true + true + false + + + 1 Hz Adjust + + true + 1 + true + Label + 80 + false + 35ebaa52:1509cf6a868:-702a + 48 + 881 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_37 + + + true + true + false + + + Tone Data Latch + + true + 1 + true + Label + 116 + false + 35ebaa52:1509cf6a868:-7020 + 12 + 957 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_40 + + + true + true + false + + + Tone Match Errors + + true + 1 + true + Label + 117 + false + 35ebaa52:1509cf6a868:-7011 + 11 + 1014 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_41 + + + true + true + false + + + Tone Match Count + + true + 1 + true + Label + 116 + false + 35ebaa52:1509cf6a868:-700c + 12 + 995 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_42 + + + true + true + false + + + Tone Signal Count + + true + 1 + true + Label + 117 + false + 35ebaa52:1509cf6a868:-7007 + 11 + 1033 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_43 + + + true + true + false + + + Tone Data Count + + true + 1 + true + Label + 110 + false + 35ebaa52:1509cf6a868:-7002 + 18 + 1052 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_44 + + + true + true + false + + + Tone Int Count + + true + 1 + true + Label + 104 + false + 35ebaa52:1509cf6a868:-6ffd + 24 + 1071 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_45 + + + true + true + false + + + Tone Int Errors + + true + 1 + true + Label + 110 + false + 35ebaa52:1509cf6a868:-6ff8 + 18 + 1090 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_46 + + + true + true + false + + + Version Count + + true + 1 + true + Label + 104 + false + 35ebaa52:1509cf6a868:-6ff3 + 24 + 1128 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_47 + + + true + true + false + + + Tone Task Count + + true + 1 + true + Label + 110 + false + 35ebaa52:1509cf6a868:-6fee + 18 + 1109 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_48 + + + true + true + false + + + Local Int Count + + true + 1 + true + Label + 104 + false + 35ebaa52:1509cf6a868:-6fe9 + 24 + 1147 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_60 + + + true + true + false + + + Max Local Clock + + true + 1 + true + Label + 104 + false + 35ebaa52:1509cf6a868:-6fa7 + 24 + 1242 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_61 + + + true + true + false + + + Local Task Count + + true + 1 + true + Label + 112 + false + 35ebaa52:1509cf6a868:-6fa2 + 16 + 1165 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_62 + + + true + true + false + + + Tone Over Limit + + true + 1 + true + Label + 110 + false + 35ebaa52:1509cf6a868:-6f9d + 18 + 1280 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_64 + + + true + true + false + + + Data Store Status + + true + 1 + true + Label + 110 + false + 35ebaa52:1509cf6a868:-6f93 + 18 + 1318 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_65 + + + true + true + false + + + Tone Under Limit + + true + 1 + true + Label + 116 + false + 35ebaa52:1509cf6a868:-6f8e + 12 + 1299 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_66 + + + true + true + false + + + Max Elapsed + + true + 1 + true + Label + 80 + false + 35ebaa52:1509cf6a868:-6f89 + 48 + 1223 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_67 + + + true + true + false + + + Min Elapsed + + true + 1 + true + Label + 80 + false + 35ebaa52:1509cf6a868:-6f84 + 48 + 1205 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_68 + + + true + true + false + + + Virtual MET + + true + 1 + true + Label + 80 + false + 35ebaa52:1509cf6a868:-6f7f + 48 + 1185 + \ No newline at end of file diff --git a/tools/commander/workspace_template/Displays/Main.opi b/tools/commander/workspace_template/Displays/Main.opi index 3737dc163..acf8b994d 100644 --- a/tools/commander/workspace_template/Displays/Main.opi +++ b/tools/commander/workspace_template/Displays/Main.opi @@ -8,7 +8,7 @@ false - + 1.5.3 @@ -28,7 +28,7 @@ true true Display - 280 + 600 45ea5983:1502a6e6386:-7f06 -1 -1 @@ -86,7 +86,7 @@ false false - + false @@ -221,7 +221,7 @@ $(pv_value) false false - + false @@ -316,7 +316,7 @@ $(pv_value) false false - + false @@ -411,7 +411,7 @@ $(pv_value) false false - + false @@ -506,7 +506,7 @@ $(pv_value) false false - + false @@ -601,7 +601,7 @@ $(pv_value) false false - + false @@ -736,7 +736,7 @@ $(pv_value) false false - + false @@ -831,7 +831,7 @@ $(pv_value) false false - + false @@ -926,7 +926,7 @@ $(pv_value) false false - + false @@ -1021,7 +1021,7 @@ $(pv_value) false false - + false @@ -1116,7 +1116,7 @@ $(pv_value) false false - + false @@ -1211,7 +1211,7 @@ $(pv_value) false false - + false @@ -1306,7 +1306,7 @@ $(pv_value) false false - + false @@ -1401,7 +1401,7 @@ $(pv_value) false false - + false @@ -1496,7 +1496,7 @@ $(pv_value) false false - + false @@ -1591,7 +1591,7 @@ $(pv_value) false false - + false @@ -1686,7 +1686,7 @@ $(pv_value) false false - + false @@ -1781,7 +1781,7 @@ $(pv_value) false false - + false @@ -1822,4 +1822,534 @@ $(pv_value) 186 592 - \ No newline at end of file + + + + + + + + + 1 + 1 + true + false + + Default + + + + + 200 + false + + true + + Legend Container + + + true + true + false + + + true + + false + true + Grouping Container + 193 + -3dde403f:17744c08f31:-7a00 + 402 + 12 + + + false + + + + + + + 0 + 2 + true + + + + + + + 43 + 1 + Label + + + true + true + false + + + Button Legend + + true + 1 + true + Label + 187 + false + 572e24cf:17746304069:-718b + 0 + 0 + + + + + + + + + + 0 + 1 + true + false + + Default + + + + + 40 + false + + true + + Grouping Container_2 + + + true + true + false + + + true + + false + true + Grouping Container + 175 + 572e24cf:17746304069:-7cb3 + 0 + 48 + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 30 + 1 + Label + + + true + true + false + + + Navigation + + true + 1 + true + Label + 121 + false + 572e24cf:17746304069:-7cb2 + 0 + 0 + + + + false + 255 + true + false + + + + + + + false + + + + 1 + 1 + true + + + + 0.0 + + Default + + false + + + + false + 20 + true + + + + 0 + 0 + Rectangle + + + + + true + true + false + + + $(pv_name) +$(pv_value) + false + true + Rectangle + 40 + 572e24cf:17746304069:-7cb1 + 132 + 0 + + + true + 1 + Grid Layout + 2 + Grid Layout + 572e24cf:17746304069:-7cb0 + + + + + + + + + + + 0 + 1 + true + false + + Default + + + + + 40 + false + + true + + Grouping Container_3 + + + true + true + false + + + true + + false + true + Grouping Container + 175 + 572e24cf:17746304069:-7382 + 0 + 87 + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 30 + 1 + Label + + + true + true + false + + + Send Command + + true + 1 + true + Label + 121 + false + 572e24cf:17746304069:-7381 + 0 + 0 + + + + false + 255 + true + false + + + + + + + false + + + + 1 + 1 + true + + + + 0.0 + + Default + + false + + + + false + 20 + true + + + + 0 + 0 + Rectangle + + + + + true + true + false + + + $(pv_name) +$(pv_value) + false + true + Rectangle + 40 + 572e24cf:17746304069:-7380 + 132 + 0 + + + true + 0 + Grid Layout + 2 + Grid Layout + 572e24cf:17746304069:-737f + + + + + + + + + + + 0 + 1 + true + false + + Default + + + + + 40 + false + + true + + Grouping Container_2 + + + true + true + false + + + true + + false + true + Grouping Container + 175 + 572e24cf:17746304069:-71ef + 0 + 126 + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 30 + 1 + Label + + + true + true + false + + + Danger + + true + 1 + true + Label + 121 + false + 572e24cf:17746304069:-71ee + 0 + 0 + + + + false + 255 + true + false + + + + + + + false + + + + 1 + 1 + true + + + + 0.0 + + Default + + false + + + + false + 20 + true + + + + 0 + 0 + Rectangle + + + + + true + true + false + + + $(pv_name) +$(pv_value) + false + true + Rectangle + 40 + 572e24cf:17746304069:-71ed + 132 + 0 + + + true + 0 + Grid Layout + 2 + Grid Layout + 572e24cf:17746304069:-71ec + + + + false + 2 + Grid Layout + 1 + Grid Layout + -3dde403f:17744c08f31:-78d9 + + + diff --git a/tools/commander/workspace_template/Displays/Resources/send.png b/tools/commander/workspace_template/Displays/Resources/send.png new file mode 100644 index 0000000000000000000000000000000000000000..652b83425a7d6b5fe6cdaba492bb83fc4711d750 GIT binary patch literal 384 zcmeAS@N?(olHy`uVBq!ia0vp^!ayv@!3HGlXG}j1q}Y|gW!U_%O?XxI14-? ziy0WWfl9fB85w5HkpK#^mw5WRvOi^%V&=6>DEW4bfq{|N)5S5w;&k$woEcx{H+nU6 zHg+{kYcn)1FqoV#!OhhlJy}uh_Kb(;uWsgX?~h5}@%N)XYn!2gfkDA1!xb|vj8@FN zVYFv|?c9eCPHyIT{;n?Vhx4>VkD#ViyLcFZ_}+VYqdC@9jSnBRy7S2Y6Ux3Ze?HHA z`~Qgv4_rmlM5m-1e4m(ZQ2zf&!E2>=3JFJMottq}f`x@el7;n$1dD5hq>5{c1j`Rr zAREZ9+#zWZ`9Fb|$;Oje&})BU&;BJXlDoB>E4Fbr+v)c$`17~(;kBcGE%tV<>TaFe zDBkV3zq6m=iNf#xN4_3A<}6gmtO42dN>WSZ*81y`)4s$d{`fdutMaq{O}4 Date: Fri, 29 Jan 2021 21:50:48 -0600 Subject: [PATCH 002/370] Moved around more configurations to shared locations --- config/bebop2/inc/ae_platform_cfg.h | 122 - config/bebop2/inc/ak8963_platform_cfg.h | 138 - config/bebop2/inc/amc_platform_cfg.h | 130 - config/bebop2/inc/bat_platform_cfg.h | 112 - config/bebop2/inc/cf_msgids.h | 10 - config/bebop2/inc/cf_platform_cfg.h | 373 -- config/bebop2/inc/cfe_msgids.h | 58 - config/bebop2/inc/cfe_platform_cfg.h | 1770 ------- config/bebop2/inc/ci_msgids.h | 10 - config/bebop2/inc/ci_platform_cfg.h | 154 - config/bebop2/inc/cs_msgids.h | 11 - config/bebop2/inc/cs_platform_cfg.h | 305 -- config/bebop2/inc/ds_msgids.h | 11 - config/bebop2/inc/ds_platform_cfg.h | 471 -- config/bebop2/inc/ea_platform_cfg.h | 143 - config/bebop2/inc/flow_msgids.h | 18 - config/bebop2/inc/flow_platform_cfg.h | 135 - config/bebop2/inc/fm_msgids.h | 11 - config/bebop2/inc/fm_platform_cfg.h | 424 -- config/bebop2/inc/gps_platform_cfg.h | 124 - config/bebop2/inc/hk_msgids.h | 11 - config/bebop2/inc/hk_platform_cfg.h | 123 - config/bebop2/inc/hs_msgids.h | 10 - config/bebop2/inc/hs_platform_cfg.h | 606 --- config/bebop2/inc/lc_msgids.h | 13 - config/bebop2/inc/lc_platform_cfg.h | 224 - config/bebop2/inc/ld_platform_cfg.h | 122 - config/bebop2/inc/lgc_platform_cfg.h | 130 - config/bebop2/inc/mac_platform_cfg.h | 113 - config/bebop2/inc/mavlink_platform_cfg.h | 150 - config/bebop2/inc/md_msgids.h | 10 - config/bebop2/inc/md_platform_cfg.h | 99 - config/bebop2/inc/mm_msgids.h | 10 - config/bebop2/inc/mm_platform_cfg.h | 399 -- config/bebop2/inc/mpc_platform_cfg.h | 111 - config/bebop2/inc/ms5607_platform_cfg.h | 138 - config/bebop2/inc/nav_platform_cfg.h | 122 - config/bebop2/inc/osconfig.h | 2 +- config/bebop2/inc/prm_platform_cfg.h | 125 - config/bebop2/inc/px4br_platform_cfg.h | 39 - config/bebop2/inc/qae_platform_cfg.h | 122 - config/bebop2/inc/rgbled_msgids.h | 18 - config/bebop2/inc/rgbled_platform_cfg.h | 126 - config/bebop2/inc/sbn_msgids.h | 11 - config/bebop2/inc/sc_msgids.h | 10 - config/bebop2/inc/sc_platform_cfg.h | 359 -- config/bebop2/inc/sc_rts.h | 323 -- config/bebop2/inc/sch_grpids.h | 48 - config/bebop2/inc/sch_msgids.h | 10 - config/bebop2/inc/sch_platform_cfg.h | 294 -- config/bebop2/inc/sens_platform_cfg.h | 154 - config/bebop2/inc/sonar_platform_cfg.h | 129 - config/bebop2/inc/to_msgids.h | 10 - config/bebop2/inc/to_platform_cfg.h | 281 - config/bebop2/inc/vc_platform_cfg.h | 305 -- config/bebop2/inc/vm_platform_cfg.h | 151 - config/bebop2/sitl/target/CMakeLists.txt | 96 +- .../bebop2/sitl/target/apps/ci/CMakeLists.txt | 36 - .../apps/sch/unit_test/sch_custom_test.c | 420 -- config/obc/cpd/inc/ae_platform_cfg.h | 122 - config/obc/cpd/inc/amc_platform_cfg.h | 130 - config/obc/cpd/inc/bat_platform_cfg.h | 112 - config/obc/cpd/inc/cf_msgids.h | 10 - config/obc/cpd/inc/cf_platform_cfg.h | 373 -- config/obc/cpd/inc/cfe_msgids.h | 58 - config/obc/cpd/inc/cfe_platform_cfg.h | 1770 ------- config/obc/cpd/inc/ci_msgids.h | 10 - config/obc/cpd/inc/ci_platform_cfg.h | 154 - config/obc/cpd/inc/cs_msgids.h | 11 - config/obc/cpd/inc/cs_platform_cfg.h | 305 -- config/obc/cpd/inc/ds_msgids.h | 11 - config/obc/cpd/inc/ds_platform_cfg.h | 471 -- config/obc/cpd/inc/ea_platform_cfg.h | 143 - config/obc/cpd/inc/flow_msgids.h | 18 - config/obc/cpd/inc/flow_platform_cfg.h | 135 - config/obc/cpd/inc/fm_msgids.h | 11 - config/obc/cpd/inc/fm_platform_cfg.h | 424 -- config/obc/cpd/inc/gps_platform_cfg.h | 124 - config/obc/cpd/inc/hk_msgids.h | 11 - config/obc/cpd/inc/hk_platform_cfg.h | 123 - config/obc/cpd/inc/hmc5883_platform_cfg.h | 134 - config/obc/cpd/inc/hs_msgids.h | 10 - config/obc/cpd/inc/hs_platform_cfg.h | 606 --- config/obc/cpd/inc/lc_msgids.h | 13 - config/obc/cpd/inc/lc_platform_cfg.h | 224 - config/obc/cpd/inc/ld_platform_cfg.h | 122 - config/obc/cpd/inc/lgc_platform_cfg.h | 130 - config/obc/cpd/inc/mac_platform_cfg.h | 113 - config/obc/cpd/inc/mavlink_platform_cfg.h | 150 - config/obc/cpd/inc/md_msgids.h | 10 - config/obc/cpd/inc/md_platform_cfg.h | 99 - config/obc/cpd/inc/mm_msgids.h | 10 - config/obc/cpd/inc/mm_platform_cfg.h | 399 -- config/obc/cpd/inc/mpc_platform_cfg.h | 111 - config/obc/cpd/inc/mpu9250_platform_cfg.h | 174 - config/obc/cpd/inc/ms5611_platform_cfg.h | 138 - config/obc/cpd/inc/nav_platform_cfg.h | 122 - config/obc/cpd/inc/pe_platform_cfg.h | 140 - config/obc/cpd/inc/prm_platform_cfg.h | 125 - config/obc/cpd/inc/px4br_platform_cfg.h | 39 - config/obc/cpd/inc/qae_platform_cfg.h | 122 - config/obc/cpd/inc/rcin_platform_cfg.h | 126 - config/obc/cpd/inc/rgbled_msgids.h | 18 - config/obc/cpd/inc/rgbled_platform_cfg.h | 126 - config/obc/cpd/inc/sbn_msgids.h | 11 - config/obc/cpd/inc/sc_msgids.h | 10 - config/obc/cpd/inc/sc_platform_cfg.h | 359 -- config/obc/cpd/inc/sc_rts.h | 323 -- config/obc/cpd/inc/sch_grpids.h | 48 - config/obc/cpd/inc/sch_msgids.h | 10 - config/obc/cpd/inc/sch_platform_cfg.h | 294 -- config/obc/cpd/inc/sens_platform_cfg.h | 154 - config/obc/cpd/inc/to_msgids.h | 10 - config/obc/cpd/inc/to_platform_cfg.h | 281 - config/obc/cpd/inc/ulr_platform_cfg.h | 126 - config/obc/cpd/inc/vc_platform_cfg.h | 305 -- config/obc/cpd/inc/vm_platform_cfg.h | 151 - config/obc/ppd/inc/ae_platform_cfg.h | 122 - config/obc/ppd/inc/amc_platform_cfg.h | 130 - config/obc/ppd/inc/bat_platform_cfg.h | 112 - config/obc/ppd/inc/cf_msgids.h | 10 - config/obc/ppd/inc/cf_platform_cfg.h | 373 -- config/obc/ppd/inc/cfe_msgids.h | 58 - config/obc/ppd/inc/cfe_platform_cfg.h | 1770 ------- config/obc/ppd/inc/ci_msgids.h | 10 - config/obc/ppd/inc/ci_platform_cfg.h | 154 - config/obc/ppd/inc/cs_msgids.h | 11 - config/obc/ppd/inc/cs_platform_cfg.h | 305 -- config/obc/ppd/inc/ds_msgids.h | 11 - config/obc/ppd/inc/ds_platform_cfg.h | 471 -- config/obc/ppd/inc/ea_platform_cfg.h | 143 - config/obc/ppd/inc/flow_msgids.h | 18 - config/obc/ppd/inc/flow_platform_cfg.h | 135 - config/obc/ppd/inc/fm_msgids.h | 11 - config/obc/ppd/inc/fm_platform_cfg.h | 424 -- config/obc/ppd/inc/gps_platform_cfg.h | 124 - config/obc/ppd/inc/hk_msgids.h | 11 - config/obc/ppd/inc/hk_platform_cfg.h | 123 - config/obc/ppd/inc/hmc5883_platform_cfg.h | 134 - config/obc/ppd/inc/hs_msgids.h | 10 - config/obc/ppd/inc/hs_platform_cfg.h | 606 --- config/obc/ppd/inc/lc_msgids.h | 13 - config/obc/ppd/inc/lc_platform_cfg.h | 224 - config/obc/ppd/inc/ld_platform_cfg.h | 122 - config/obc/ppd/inc/lgc_platform_cfg.h | 130 - config/obc/ppd/inc/mac_platform_cfg.h | 113 - config/obc/ppd/inc/mavlink_platform_cfg.h | 150 - config/obc/ppd/inc/md_msgids.h | 10 - config/obc/ppd/inc/md_platform_cfg.h | 99 - config/obc/ppd/inc/mm_msgids.h | 10 - config/obc/ppd/inc/mm_platform_cfg.h | 399 -- config/obc/ppd/inc/mpc_platform_cfg.h | 111 - config/obc/ppd/inc/mpu9250_platform_cfg.h | 174 - config/obc/ppd/inc/ms5611_platform_cfg.h | 138 - config/obc/ppd/inc/nav_platform_cfg.h | 122 - config/obc/ppd/inc/osconfig.h | 140 - config/obc/ppd/inc/pe_platform_cfg.h | 140 - config/obc/ppd/inc/prm_platform_cfg.h | 125 - config/obc/ppd/inc/px4br_platform_cfg.h | 39 - config/obc/ppd/inc/qae_platform_cfg.h | 122 - config/obc/ppd/inc/rcin_platform_cfg.h | 126 - config/obc/ppd/inc/rgbled_msgids.h | 18 - config/obc/ppd/inc/rgbled_platform_cfg.h | 126 - config/obc/ppd/inc/sbn_msgids.h | 11 - config/obc/ppd/inc/sc_msgids.h | 10 - config/obc/ppd/inc/sc_platform_cfg.h | 359 -- config/obc/ppd/inc/sc_rts.h | 323 -- config/obc/ppd/inc/sch_grpids.h | 48 - config/obc/ppd/inc/sch_msgids.h | 10 - config/obc/ppd/inc/sch_platform_cfg.h | 294 -- config/obc/ppd/inc/sens_platform_cfg.h | 154 - config/obc/ppd/inc/to_msgids.h | 10 - config/obc/ppd/inc/to_platform_cfg.h | 281 - config/obc/ppd/inc/ulr_platform_cfg.h | 126 - config/obc/ppd/inc/vc_platform_cfg.h | 305 -- config/obc/ppd/inc/vm_platform_cfg.h | 151 - config/ocpoc/quadx/inc/ae_platform_cfg.h | 122 - config/ocpoc/quadx/inc/amc_platform_cfg.h | 130 - config/ocpoc/quadx/inc/bat_platform_cfg.h | 112 - config/ocpoc/quadx/inc/cf_msgids.h | 10 - config/ocpoc/quadx/inc/cf_platform_cfg.h | 373 -- config/ocpoc/quadx/inc/cfe_msgids.h | 58 - config/ocpoc/quadx/inc/cfe_platform_cfg.h | 1770 ------- config/ocpoc/quadx/inc/ci_msgids.h | 10 - config/ocpoc/quadx/inc/ci_platform_cfg.h | 154 - config/ocpoc/quadx/inc/cs_msgids.h | 11 - config/ocpoc/quadx/inc/cs_platform_cfg.h | 305 -- config/ocpoc/quadx/inc/ds_msgids.h | 11 - config/ocpoc/quadx/inc/ds_platform_cfg.h | 471 -- config/ocpoc/quadx/inc/ea_platform_cfg.h | 143 - config/ocpoc/quadx/inc/flow_msgids.h | 18 - config/ocpoc/quadx/inc/flow_platform_cfg.h | 135 - config/ocpoc/quadx/inc/fm_msgids.h | 11 - config/ocpoc/quadx/inc/fm_platform_cfg.h | 424 -- config/ocpoc/quadx/inc/gps_platform_cfg.h | 124 - config/ocpoc/quadx/inc/hk_msgids.h | 11 - config/ocpoc/quadx/inc/hk_platform_cfg.h | 123 - config/ocpoc/quadx/inc/hmc5883_platform_cfg.h | 134 - config/ocpoc/quadx/inc/hs_msgids.h | 10 - config/ocpoc/quadx/inc/hs_platform_cfg.h | 606 --- config/ocpoc/quadx/inc/lc_msgids.h | 13 - config/ocpoc/quadx/inc/lc_platform_cfg.h | 224 - config/ocpoc/quadx/inc/ld_platform_cfg.h | 122 - config/ocpoc/quadx/inc/lgc_platform_cfg.h | 130 - config/ocpoc/quadx/inc/mac_platform_cfg.h | 113 - config/ocpoc/quadx/inc/mavlink_platform_cfg.h | 150 - config/ocpoc/quadx/inc/md_msgids.h | 10 - config/ocpoc/quadx/inc/md_platform_cfg.h | 99 - config/ocpoc/quadx/inc/mm_msgids.h | 10 - config/ocpoc/quadx/inc/mm_platform_cfg.h | 399 -- config/ocpoc/quadx/inc/mpc_platform_cfg.h | 111 - config/ocpoc/quadx/inc/mpu9250_platform_cfg.h | 174 - config/ocpoc/quadx/inc/ms5611_platform_cfg.h | 138 - config/ocpoc/quadx/inc/nav_platform_cfg.h | 122 - config/ocpoc/quadx/inc/osconfig.h | 140 - config/ocpoc/quadx/inc/pe_platform_cfg.h | 140 - config/ocpoc/quadx/inc/prm_platform_cfg.h | 125 - config/ocpoc/quadx/inc/px4br_platform_cfg.h | 39 - config/ocpoc/quadx/inc/qae_platform_cfg.h | 122 - config/ocpoc/quadx/inc/rcin_platform_cfg.h | 126 - config/ocpoc/quadx/inc/rgbled_msgids.h | 18 - config/ocpoc/quadx/inc/rgbled_platform_cfg.h | 126 - config/ocpoc/quadx/inc/sbn_msgids.h | 11 - config/ocpoc/quadx/inc/sc_msgids.h | 10 - config/ocpoc/quadx/inc/sc_platform_cfg.h | 359 -- config/ocpoc/quadx/inc/sc_rts.h | 323 -- config/ocpoc/quadx/inc/sch_grpids.h | 48 - config/ocpoc/quadx/inc/sch_msgids.h | 10 - config/ocpoc/quadx/inc/sch_platform_cfg.h | 294 -- config/ocpoc/quadx/inc/sens_platform_cfg.h | 154 - config/ocpoc/quadx/inc/to_msgids.h | 10 - config/ocpoc/quadx/inc/to_platform_cfg.h | 281 - config/ocpoc/quadx/inc/ulr_platform_cfg.h | 126 - config/ocpoc/quadx/inc/vc_platform_cfg.h | 305 -- config/ocpoc/quadx/inc/vm_platform_cfg.h | 151 - config/ocpoc/quadx/target/CMakeLists.txt | 96 +- config/ocpoc/quadx/target/airliner.service | 19 + .../quadx/target/apps/amc/amc_custom.cpp | 14 +- .../ocpoc/quadx/target/apps/cf/CMakeLists.txt | 10 - .../quadx/target/apps/cf/tables/cf_cfgtable.c | 323 -- .../ocpoc/quadx/target/apps/ci/CMakeLists.txt | 36 - config/ocpoc/quadx/target/apps/ci/ci_custom.c | 111 - .../quadx/target/apps/ci/tables/ci_config.c | 68 - .../target/apps/ci/unit_test/ci-custom.supp | 59 - .../target/apps/ci/unit_test/ci_custom_test.c | 124 - .../target/apps/ci/unit_test/ci_custom_test.h | 48 - .../apps/ci/unit_test/ci_mock_os_calls.c | 57 - .../apps/ci/unit_test/ci_mock_os_calls.h | 50 - .../target/apps/ci/unit_test/ci_test_utils.c | 83 - .../target/apps/ci/unit_test/ci_test_utils.h | 63 - .../target/apps/ci/unit_test/ci_testrunner.c | 45 - .../ocpoc/quadx/target/apps/ds/CMakeLists.txt | 16 - .../quadx/target/apps/ds/tables/ds_file_tbl.c | 292 -- .../target/apps/ds/tables/ds_filter_tbl.c | 3145 ------------ .../ocpoc/quadx/target/apps/ea/CMakeLists.txt | 55 - .../quadx/target/apps/ea/ea-custom-ut.supp | 27 - .../quadx/target/apps/ea/ea-perfmon-ut.supp | 0 .../quadx/target/apps/ea/src/ea_custom.c | 249 - .../apps/ea/unit_test/ea-custom-ut.supp | 32 - .../target/apps/ea/unit_test/ea_custom_test.c | 200 - .../target/apps/ea/unit_test/ea_custom_test.h | 49 - .../apps/ea/unit_test/ea_mock_os_calls.c | 62 - .../apps/ea/unit_test/ea_mock_os_calls.h | 57 - .../apps/ea/unit_test/ea_perfmon_test.c | 192 - .../apps/ea/unit_test/ea_perfmon_test.h | 49 - .../apps/ea/unit_test/ea_perfmon_testrunner.c | 46 - .../target/apps/ea/unit_test/ea_test_utils.c | 73 - .../target/apps/ea/unit_test/ea_test_utils.h | 62 - .../target/apps/ea/unit_test/ea_testrunner.c | 44 - .../quadx/target/apps/ea/unit_test/fib.py | 14 - .../quadx/target/apps/ea/unit_test/noop.py | 3 - .../quadx/target/apps/ea/unit_test/sleep.py | 6 - .../quadx/target/apps/flow/CMakeLists.txt | 8 - .../target/apps/flow/tables/flow_config.c | 80 - .../quadx/target/apps/ld/tables/ld_config.c | 151 - .../quadx/target/apps/lgc/CMakeLists.txt | 7 - .../quadx/target/apps/lgc/lgc_custom.cpp | 147 - .../quadx/target/apps/lgc/tables/lgc_config.c | 65 - .../apps/mpu9250/tables/mpu9250_config.c | 93 - .../mpu9250/tables/mpu9250_config_dev_ocpoc.c | 93 - .../quadx/target/apps/prm/CMakeLists.txt | 7 - .../quadx/target/apps/prm/tables/prm_config.c | 63 - .../quadx/target/apps/qae/CMakeLists.txt | 9 - .../quadx/target/apps/qae/tables/qae_config.c | 104 - .../target/apps/sch/tables/sch_def_schtbl.c | 4506 ----------------- .../apps/sch/unit_test/sch_test_utils.c | 58 - .../apps/sch/unit_test/sch_test_utils.h | 32 - .../ocpoc/quadx/target/apps/vc/CMakeLists.txt | 72 - .../quadx/target/apps/vc/src/CMakeLists.txt | 8 - .../quadx/target/apps/vc/src/vc_custom.c | 246 - .../target/apps/vc/src/vc_custom_shared.h | 160 - .../apps/vc/src/vc_dev_io_udp/vc_dev_io_udp.c | 424 -- .../apps/vc/src/vc_dev_io_udp/vc_dev_io_udp.h | 167 - .../apps/vc/src/vc_dev_io_v4l/vc_dev_io_v4l.c | 858 ---- .../apps/vc/src/vc_dev_io_v4l/vc_dev_io_v4l.h | 252 - .../vc/src/vc_transmit_udp/vc_transmit_udp.c | 431 -- .../vc/src/vc_transmit_udp/vc_transmit_udp.h | 145 - .../vc_app_custom_stubs/vc_app_custom_stubs.c | 50 - .../vc_app_custom_stubs/vc_app_custom_stubs.h | 48 - .../vc/unit_test/vc_app_stubs/vc_app_stubs.c | 62 - .../vc/unit_test/vc_app_stubs/vc_app_stubs.h | 50 - .../vc_app_custom_shared_test.c | 589 --- .../vc_app_custom_shared_test.h | 48 - .../vc_custom_shared_test_utils.c | 79 - .../vc_custom_shared_test_utils.h | 61 - .../apps/vc/unit_test/vc_custom_testrunner.c | 66 - .../vc_app_custom_device_test.c | 722 --- .../vc_app_custom_device_test.h | 48 - .../vc_custom_device_test_utils.c | 76 - .../vc_custom_device_test_utils.h | 61 - .../vc_app_custom_device_test.c | 1944 ------- .../vc_app_custom_device_test.h | 48 - .../vc_custom_device_test_utils.c | 76 - .../vc_custom_device_test_utils.h | 61 - .../vc_platform_stubs/vc_platform_stubs.c | 270 - .../vc_platform_stubs/vc_platform_stubs.h | 84 - .../vc_app_custom_transmit_test.c | 626 --- .../vc_app_custom_transmit_test.h | 48 - .../vc_custom_transmit_test_utils.c | 76 - .../vc_custom_transmit_test_utils.h | 61 - config/ocpoc/quadx/target/cfe_es_startup.scr | 1 + config/ocpoc/s1000/inc/ae_platform_cfg.h | 122 - config/ocpoc/s1000/inc/amc_platform_cfg.h | 130 - config/ocpoc/s1000/inc/bat_platform_cfg.h | 112 - config/ocpoc/s1000/inc/cf_msgids.h | 10 - config/ocpoc/s1000/inc/cf_platform_cfg.h | 373 -- config/ocpoc/s1000/inc/cfe_msgids.h | 58 - config/ocpoc/s1000/inc/cfe_platform_cfg.h | 1770 ------- config/ocpoc/s1000/inc/ci_msgids.h | 10 - config/ocpoc/s1000/inc/ci_platform_cfg.h | 154 - config/ocpoc/s1000/inc/cs_msgids.h | 11 - config/ocpoc/s1000/inc/cs_platform_cfg.h | 305 -- config/ocpoc/s1000/inc/ds_msgids.h | 11 - config/ocpoc/s1000/inc/ds_platform_cfg.h | 471 -- config/ocpoc/s1000/inc/ea_platform_cfg.h | 143 - config/ocpoc/s1000/inc/flow_msgids.h | 18 - config/ocpoc/s1000/inc/flow_platform_cfg.h | 135 - config/ocpoc/s1000/inc/fm_msgids.h | 11 - config/ocpoc/s1000/inc/fm_platform_cfg.h | 424 -- config/ocpoc/s1000/inc/gps_platform_cfg.h | 124 - config/ocpoc/s1000/inc/hk_msgids.h | 11 - config/ocpoc/s1000/inc/hk_platform_cfg.h | 123 - config/ocpoc/s1000/inc/hmc5883_platform_cfg.h | 134 - config/ocpoc/s1000/inc/hs_msgids.h | 10 - config/ocpoc/s1000/inc/hs_platform_cfg.h | 606 --- config/ocpoc/s1000/inc/lc_msgids.h | 13 - config/ocpoc/s1000/inc/lc_platform_cfg.h | 224 - config/ocpoc/s1000/inc/ld_platform_cfg.h | 122 - config/ocpoc/s1000/inc/lgc_platform_cfg.h | 130 - config/ocpoc/s1000/inc/mac_platform_cfg.h | 113 - config/ocpoc/s1000/inc/mavlink_platform_cfg.h | 150 - config/ocpoc/s1000/inc/md_msgids.h | 10 - config/ocpoc/s1000/inc/md_platform_cfg.h | 99 - config/ocpoc/s1000/inc/mm_msgids.h | 10 - config/ocpoc/s1000/inc/mm_platform_cfg.h | 399 -- config/ocpoc/s1000/inc/mpc_platform_cfg.h | 111 - config/ocpoc/s1000/inc/mpu9250_platform_cfg.h | 174 - config/ocpoc/s1000/inc/ms5611_platform_cfg.h | 138 - config/ocpoc/s1000/inc/nav_platform_cfg.h | 122 - config/ocpoc/s1000/inc/osconfig.h | 140 - config/ocpoc/s1000/inc/pe_platform_cfg.h | 140 - config/ocpoc/s1000/inc/prm_platform_cfg.h | 125 - config/ocpoc/s1000/inc/px4br_platform_cfg.h | 39 - config/ocpoc/s1000/inc/qae_platform_cfg.h | 122 - config/ocpoc/s1000/inc/rcin_platform_cfg.h | 126 - config/ocpoc/s1000/inc/rgbled_msgids.h | 18 - config/ocpoc/s1000/inc/rgbled_platform_cfg.h | 126 - config/ocpoc/s1000/inc/sbn_msgids.h | 11 - config/ocpoc/s1000/inc/sc_msgids.h | 10 - config/ocpoc/s1000/inc/sc_platform_cfg.h | 359 -- config/ocpoc/s1000/inc/sc_rts.h | 323 -- config/ocpoc/s1000/inc/sch_grpids.h | 48 - config/ocpoc/s1000/inc/sch_msgids.h | 10 - config/ocpoc/s1000/inc/sch_platform_cfg.h | 294 -- config/ocpoc/s1000/inc/sens_platform_cfg.h | 154 - config/ocpoc/s1000/inc/to_msgids.h | 10 - config/ocpoc/s1000/inc/to_platform_cfg.h | 281 - config/ocpoc/s1000/inc/ulr_platform_cfg.h | 126 - config/ocpoc/s1000/inc/vc_platform_cfg.h | 305 -- config/ocpoc/s1000/inc/vm_platform_cfg.h | 151 - config/ocpoc/s1000/target/CMakeLists.txt | 88 +- .../ocpoc/s1000/target/apps/cf/CMakeLists.txt | 10 - .../s1000/target/apps/cf/tables/cf_cfgtable.c | 323 -- config/ocpoc/s1000/target/apps/ci/ci_custom.c | 111 - .../s1000/target/apps/ci/tables/ci_config.c | 68 - .../target/apps/ci/unit_test/ci-custom.supp | 59 - .../target/apps/ci/unit_test/ci_custom_test.c | 124 - .../target/apps/ci/unit_test/ci_custom_test.h | 48 - .../apps/ci/unit_test/ci_mock_os_calls.c | 57 - .../apps/ci/unit_test/ci_mock_os_calls.h | 50 - .../target/apps/ci/unit_test/ci_test_utils.c | 83 - .../target/apps/ci/unit_test/ci_test_utils.h | 63 - .../target/apps/ci/unit_test/ci_testrunner.c | 45 - .../ocpoc/s1000/target/apps/ds/CMakeLists.txt | 16 - .../s1000/target/apps/ds/tables/ds_file_tbl.c | 292 -- .../target/apps/ds/tables/ds_filter_tbl.c | 3145 ------------ .../ocpoc/s1000/target/apps/ea/CMakeLists.txt | 55 - .../s1000/target/apps/ea/ea-custom-ut.supp | 27 - .../s1000/target/apps/ea/ea-perfmon-ut.supp | 0 .../s1000/target/apps/ea/src/ea_custom.c | 249 - .../apps/ea/unit_test/ea-custom-ut.supp | 32 - .../target/apps/ea/unit_test/ea_custom_test.c | 200 - .../target/apps/ea/unit_test/ea_custom_test.h | 49 - .../apps/ea/unit_test/ea_mock_os_calls.c | 62 - .../apps/ea/unit_test/ea_mock_os_calls.h | 57 - .../apps/ea/unit_test/ea_perfmon_test.c | 192 - .../apps/ea/unit_test/ea_perfmon_test.h | 49 - .../apps/ea/unit_test/ea_perfmon_testrunner.c | 46 - .../target/apps/ea/unit_test/ea_test_utils.c | 73 - .../target/apps/ea/unit_test/ea_test_utils.h | 62 - .../target/apps/ea/unit_test/ea_testrunner.c | 44 - .../s1000/target/apps/ea/unit_test/fib.py | 14 - .../s1000/target/apps/ea/unit_test/noop.py | 3 - .../s1000/target/apps/ea/unit_test/sleep.py | 6 - .../s1000/target/apps/flow/CMakeLists.txt | 8 - .../target/apps/flow/tables/flow_config.c | 80 - .../s1000/target/apps/gps/CMakeLists.txt | 7 - .../s1000/target/apps/gps/src/CMakeLists.txt | 5 - .../s1000/target/apps/gps/src/gps_custom.c | 217 - .../target/apps/gps/src/gps_custom_shared.h | 235 - .../src/gps_parser_ubx/gps_parser_ubx_ack.c | 200 - .../src/gps_parser_ubx/gps_parser_ubx_ack.h | 99 - .../src/gps_parser_ubx/gps_parser_ubx_cfg.c | 912 ---- .../src/gps_parser_ubx/gps_parser_ubx_cfg.h | 103 - .../gps_parser_ubx/gps_parser_ubx_common.c | 1608 ------ .../gps_parser_ubx/gps_parser_ubx_common.h | 307 -- .../src/gps_parser_ubx/gps_parser_ubx_mon.c | 477 -- .../src/gps_parser_ubx/gps_parser_ubx_mon.h | 108 - .../src/gps_parser_ubx/gps_parser_ubx_nav.c | 2494 --------- .../src/gps_parser_ubx/gps_parser_ubx_nav.h | 121 - .../apps/gps/src/gps_parser_ubx/gps_ubx_msg.h | 534 -- .../s1000/target/apps/gps/tables/gps_config.c | 63 - .../ocpoc/s1000/target/apps/ld/CMakeLists.txt | 9 - .../s1000/target/apps/mpu9250/CMakeLists.txt | 7 - .../target/apps/mpu9250/src/CMakeLists.txt | 5 - .../target/apps/mpu9250/src/mpu9250_custom.c | 1134 ----- .../target/apps/mpu9250/src/mpu9250_spi.h | 421 -- .../mpu9250/tables/mpu9250_config_default.c | 93 - .../s1000/target/apps/ms5611/CMakeLists.txt | 40 - .../target/apps/ms5611/src/CMakeLists.txt | 37 - .../target/apps/ms5611/src/ms5611_custom.c | 467 -- .../s1000/target/apps/ms5611/src/ms5611_spi.h | 201 - .../target/apps/ms5611/tables/ms5611_config.c | 64 - .../s1000/target/apps/nav/CMakeLists.txt | 9 - .../s1000/target/apps/nav/tables/nav_config.c | 138 - .../s1000/target/apps/prm/CMakeLists.txt | 7 - .../s1000/target/apps/prm/tables/prm_config.c | 63 - .../s1000/target/apps/qae/CMakeLists.txt | 9 - .../s1000/target/apps/qae/tables/qae_config.c | 104 - .../s1000/target/apps/rcin/CMakeLists.txt | 1 - .../s1000/target/apps/rcin/src/CMakeLists.txt | 5 - .../s1000/target/apps/rcin/src/rcin_custom.c | 868 ---- .../s1000/target/apps/rcin/src/rcin_sbus.h | 400 -- .../s1000/target/apps/rgbled/CMakeLists.txt | 2 - .../target/apps/rgbled/src/CMakeLists.txt | 5 - .../target/apps/rgbled/src/rgbled_custom.c | 561 -- .../target/apps/rgbled/src/rgbled_driver.h | 363 -- .../s1000/target/apps/sch/CMakeLists.txt | 48 - .../s1000/target/apps/sch/sch_custom_rt.c | 451 -- .../target/apps/sch/tables/sch_def_msgtbl.c | 326 -- .../apps/sch/unit_test/sch_custom_test.h | 31 - .../apps/sch/unit_test/sch_test_utils.c | 58 - .../apps/sch/unit_test/sch_test_utils.h | 32 - .../apps/sch/unit_test/sch_testrunner.c | 36 - .../s1000/target/apps/sens/CMakeLists.txt | 7 - .../target/apps/sens/tables/sens_config.c | 222 - .../ocpoc/s1000/target/apps/to/CMakeLists.txt | 38 - .../target/apps/to/tables/to_backup_cfg.c | 74 - .../s1000/target/apps/to/tables/to_udp_cfg.c | 224 - config/ocpoc/s1000/target/apps/to/to_custom.c | 526 -- .../s1000/target/apps/to/to_custom_udp.h | 141 - .../apps/to/unit_test/to_app_custom_test.c | 985 ---- .../apps/to/unit_test/to_app_custom_test.h | 55 - .../target/apps/to/unit_test/to_app_stubs.c | 75 - .../target/apps/to/unit_test/to_app_stubs.h | 82 - .../apps/to/unit_test/to_custom_test_utils.c | 77 - .../apps/to/unit_test/to_custom_test_utils.h | 63 - .../apps/to/unit_test/to_custom_testrunner.c | 52 - .../apps/to/unit_test/to_platform_stubs.c | 105 - .../apps/to/unit_test/to_platform_stubs.h | 61 - .../ocpoc/s1000/target/apps/to/user_doxy.in | 265 - .../s1000/target/apps/ulr/CMakeLists.txt | 7 - .../s1000/target/apps/ulr/tables/ulr_config.c | 63 - .../s1000/target/apps/ulr/ulr_custom.cpp | 139 - .../ocpoc/s1000/target/apps/vc/CMakeLists.txt | 72 - .../s1000/target/apps/vc/src/CMakeLists.txt | 8 - .../s1000/target/apps/vc/src/vc_custom.c | 246 - .../target/apps/vc/src/vc_custom_shared.h | 160 - .../apps/vc/src/vc_dev_io_udp/vc_dev_io_udp.c | 424 -- .../apps/vc/src/vc_dev_io_udp/vc_dev_io_udp.h | 167 - .../apps/vc/src/vc_dev_io_v4l/vc_dev_io_v4l.c | 858 ---- .../apps/vc/src/vc_dev_io_v4l/vc_dev_io_v4l.h | 252 - .../vc/src/vc_transmit_udp/vc_transmit_udp.c | 432 -- .../vc/src/vc_transmit_udp/vc_transmit_udp.h | 145 - .../vc_app_custom_stubs/vc_app_custom_stubs.c | 50 - .../vc_app_custom_stubs/vc_app_custom_stubs.h | 48 - .../vc/unit_test/vc_app_stubs/vc_app_stubs.c | 62 - .../vc/unit_test/vc_app_stubs/vc_app_stubs.h | 50 - .../vc_app_custom_shared_test.c | 589 --- .../vc_app_custom_shared_test.h | 48 - .../vc_custom_shared_test_utils.c | 79 - .../vc_custom_shared_test_utils.h | 61 - .../apps/vc/unit_test/vc_custom_testrunner.c | 66 - .../vc_app_custom_device_test.c | 722 --- .../vc_app_custom_device_test.h | 48 - .../vc_custom_device_test_utils.c | 76 - .../vc_custom_device_test_utils.h | 61 - .../vc_app_custom_device_test.c | 1944 ------- .../vc_app_custom_device_test.h | 48 - .../vc_custom_device_test_utils.c | 76 - .../vc_custom_device_test_utils.h | 61 - .../vc_platform_stubs/vc_platform_stubs.c | 270 - .../vc_platform_stubs/vc_platform_stubs.h | 84 - .../vc_app_custom_transmit_test.c | 626 --- .../vc_app_custom_transmit_test.h | 48 - .../vc_custom_transmit_test_utils.c | 76 - .../vc_custom_transmit_test_utils.h | 61 - .../ocpoc/s1000/target/apps/vm/CMakeLists.txt | 9 - .../s1000/target/apps/vm/tables/vm_config.c | 32 - config/ocpoc/s1000/target/cfe_es_startup.scr | 1 - .../shared}/apps/gps/CMakeLists.txt | 0 .../shared}/apps/gps/src/CMakeLists.txt | 0 .../apps/gps/src/gps_custom.c | 0 .../apps/gps/src/gps_custom_shared.h | 0 .../gps/src/gps_interface_uart/gps_serial.c | 1 + .../gps/src/gps_interface_uart/gps_serial.h | 0 .../src/gps_parser_ubx/gps_parser_ubx_ack.c | 0 .../src/gps_parser_ubx/gps_parser_ubx_ack.h | 0 .../src/gps_parser_ubx/gps_parser_ubx_cfg.c | 0 .../src/gps_parser_ubx/gps_parser_ubx_cfg.h | 0 .../gps_parser_ubx/gps_parser_ubx_common.c | 0 .../gps_parser_ubx/gps_parser_ubx_common.h | 0 .../src/gps_parser_ubx/gps_parser_ubx_mon.c | 0 .../src/gps_parser_ubx/gps_parser_ubx_mon.h | 0 .../src/gps_parser_ubx/gps_parser_ubx_nav.c | 0 .../src/gps_parser_ubx/gps_parser_ubx_nav.h | 0 .../apps/gps/src/gps_parser_ubx/gps_ubx_msg.h | 0 .../shared}/apps/gps/tables/gps_config.c | 0 .../apps/hmc5883/CMakeLists.txt | 0 .../apps/hmc5883/src/CMakeLists.txt | 0 .../apps/hmc5883/src/hmc5883_custom.c | 0 .../apps/hmc5883/src/hmc5883_i2c.h | 0 .../apps/hmc5883/tables/hmc5883_config.c | 0 .../hmc5883/tables/hmc5883_config_default.c | 0 .../hmc5883/tables/hmc5883_config_dev_ocpoc.c | 0 .../shared}/apps/ld/CMakeLists.txt | 0 .../apps/ld/tables/ld_config.c | 0 .../shared}/apps/nav/CMakeLists.txt | 0 .../apps/nav/tables/nav_config.c | 0 .../shared}/apps/rcin/CMakeLists.txt | 0 .../shared}/apps/rcin/src/CMakeLists.txt | 0 .../apps/rcin/src/rcin_custom.c | 0 .../apps/rcin/src/rcin_sbus.h | 0 .../shared}/apps/rgbled/CMakeLists.txt | 0 .../shared}/apps/rgbled/src/CMakeLists.txt | 0 .../apps/rgbled/src/rgbled_custom.c | 0 .../apps/rgbled/src/rgbled_driver.h | 0 .../target => shared}/apps/sch/CMakeLists.txt | 0 .../shared}/apps/sch/sch_custom_rt.c | 0 .../apps/sch/tables/sch_def_msgtbl.c | 0 .../apps/sch/tables/sch_def_schtbl.c | 2 +- .../apps/sch/unit_test/sch_custom_test.c | 5 + .../apps/sch/unit_test/sch_custom_test.h | 0 .../apps/sch/unit_test/sch_test_utils.c | 0 .../apps/sch/unit_test/sch_test_utils.h | 0 .../apps/sch/unit_test/sch_testrunner.c | 0 .../shared}/apps/sens/CMakeLists.txt | 0 .../apps/sens/tables/sens_config.c | 0 .../shared}/apps/to/CMakeLists.txt | 0 .../shared}/apps/to/tables/to_backup_cfg.c | 0 .../shared}/apps/to/tables/to_udp_cfg.c | 0 .../shared}/apps/to/to_custom.c | 0 .../shared}/apps/to/to_custom_udp.h | 0 .../apps/to/unit_test/to_app_custom_test.c | 0 .../apps/to/unit_test/to_app_custom_test.h | 0 .../shared}/apps/to/unit_test/to_app_stubs.c | 0 .../shared}/apps/to/unit_test/to_app_stubs.h | 0 .../apps/to/unit_test/to_custom_test_utils.c | 0 .../apps/to/unit_test/to_custom_test_utils.h | 0 .../apps/to/unit_test/to_custom_testrunner.c | 0 .../apps/to/unit_test/to_platform_stubs.c | 0 .../apps/to/unit_test/to_platform_stubs.h | 0 .../shared}/apps/to/user_doxy.in | 0 .../shared}/apps/ulr/CMakeLists.txt | 0 .../shared}/apps/ulr/tables/ulr_config.c | 0 .../target => shared}/apps/ulr/ulr_custom.cpp | 0 .../shared}/apps/vm/CMakeLists.txt | 0 .../shared}/apps/vm/tables/vm_config.c | 0 .../apps/ak8963/CMakeLists.txt | 0 .../apps/ak8963/src/CMakeLists.txt | 0 .../apps/ak8963/src/ak8963_custom.cpp | 0 .../apps/ak8963/src/ak8963_i2c.h | 0 .../apps/ak8963/tables/ak8963_config.c | 0 .../target => shared}/apps/amc/CMakeLists.txt | 0 .../target => shared}/apps/amc/amc_custom.cpp | 0 .../apps/amc/tables/amc_mixercfg.c | 0 .../apps/amc/tables/amc_pwmcfg.c | 0 .../target => shared}/apps/bat/CMakeLists.txt | 0 .../target => shared}/apps/bat/bat_custom.cpp | 0 .../apps/bat/tables/bat_config.c | 0 .../target => shared}/apps/cf/CMakeLists.txt | 0 .../apps/cf/tables/cf_cfgtable.c | 0 .../target => shared}/apps/ci/CMakeLists.txt | 0 .../target => shared}/apps/ci/ci_custom.c | 0 .../apps/ci/tables/ci_config.c | 0 .../apps/ci/unit_test/ci-custom.supp | 0 .../apps/ci/unit_test/ci_custom_test.c | 0 .../apps/ci/unit_test/ci_custom_test.h | 0 .../apps/ci/unit_test/ci_mock_os_calls.c | 0 .../apps/ci/unit_test/ci_mock_os_calls.h | 0 .../apps/ci/unit_test/ci_test_utils.c | 0 .../apps/ci/unit_test/ci_test_utils.h | 0 .../apps/ci/unit_test/ci_testrunner.c | 0 .../target => shared}/apps/ds/CMakeLists.txt | 0 .../apps/ds/tables/ds_file_tbl.c | 0 .../apps/ds/tables/ds_filter_tbl.c | 0 .../target => shared}/apps/ea/CMakeLists.txt | 0 .../apps/ea/ea-custom-ut.supp | 0 .../apps/ea/ea-perfmon-ut.supp | 0 .../target => shared}/apps/ea/src/ea_custom.c | 0 .../apps/ea/unit_test/ea-custom-ut.supp | 0 .../apps/ea/unit_test/ea_custom_test.c | 0 .../apps/ea/unit_test/ea_custom_test.h | 0 .../apps/ea/unit_test/ea_mock_os_calls.c | 0 .../apps/ea/unit_test/ea_mock_os_calls.h | 0 .../apps/ea/unit_test/ea_perfmon_test.c | 0 .../apps/ea/unit_test/ea_perfmon_test.h | 0 .../apps/ea/unit_test/ea_perfmon_testrunner.c | 0 .../apps/ea/unit_test/ea_test_utils.c | 0 .../apps/ea/unit_test/ea_test_utils.h | 0 .../apps/ea/unit_test/ea_testrunner.c | 0 .../apps/ea/unit_test/fib.py | 0 .../apps/ea/unit_test/noop.py | 0 .../apps/ea/unit_test/sleep.py | 0 .../apps/flow/CMakeLists.txt | 0 .../apps/flow/tables/flow_config.c | 0 .../target => shared}/apps/gps/CMakeLists.txt | 0 .../apps/gps/src/CMakeLists.txt | 0 .../apps/gps/src/gps_custom.c | 0 .../apps/gps/src/gps_custom_shared.h | 0 .../apps/gps/src/gps_custom_sim_simple.c | 0 .../gps/src/gps_interface_uart/gps_serial.c | 117 +- .../gps/src/gps_interface_uart/gps_serial.h | 56 +- .../src/gps_parser_ubx/gps_parser_ubx_ack.c | 0 .../src/gps_parser_ubx/gps_parser_ubx_ack.h | 0 .../src/gps_parser_ubx/gps_parser_ubx_cfg.c | 0 .../src/gps_parser_ubx/gps_parser_ubx_cfg.h | 0 .../gps_parser_ubx/gps_parser_ubx_common.c | 0 .../gps_parser_ubx/gps_parser_ubx_common.h | 0 .../src/gps_parser_ubx/gps_parser_ubx_mon.c | 0 .../src/gps_parser_ubx/gps_parser_ubx_mon.h | 0 .../src/gps_parser_ubx/gps_parser_ubx_nav.c | 0 .../src/gps_parser_ubx/gps_parser_ubx_nav.h | 0 .../apps/gps/src/gps_parser_ubx/gps_ubx_msg.h | 0 .../apps/gps/tables/gps_config.c | 0 .../apps/hmc5883/CMakeLists.txt | 0 .../apps/hmc5883/src/CMakeLists.txt | 0 .../apps/hmc5883/src/hmc5883_custom.c | 0 .../apps/hmc5883/src/hmc5883_i2c.h | 0 .../apps/hmc5883/tables/hmc5883_config.c | 0 .../hmc5883/tables/hmc5883_config_default.c | 0 .../tables/hmc5883_config_main_vehicle.c | 0 .../target => shared}/apps/ld/CMakeLists.txt | 0 .../apps/ld/tables/ld_config.c | 0 .../target => shared}/apps/lgc/CMakeLists.txt | 0 .../target => shared}/apps/lgc/lgc_custom.cpp | 0 .../apps/lgc/tables/lgc_config.c | 0 .../target => shared}/apps/mac/CMakeLists.txt | 0 .../apps/mac/tables/mac_param.c | 4 +- .../target => shared}/apps/mpc/CMakeLists.txt | 0 .../apps/mpc/tables/mpc_config.c | 0 .../apps/mpu6050/CMakeLists.txt | 0 .../apps/mpu6050/src/CMakeLists.txt | 0 .../apps/mpu6050/src/mpu6050_custom.cpp | 0 .../apps/mpu6050/src/mpu6050_spi.h | 0 .../apps/mpu6050/tables/mpu6050_config.c | 0 .../apps/mpu9250/CMakeLists.txt | 0 .../apps/mpu9250/src/CMakeLists.txt | 0 .../apps/mpu9250/src/mpu9250_custom.c | 0 .../apps/mpu9250/src/mpu9250_spi.h | 0 .../apps/mpu9250/tables/mpu9250_config.c | 0 .../mpu9250/tables/mpu9250_config_default.c | 0 .../tables/mpu9250_config_main_vehicle.c | 0 .../apps/ms5607/CMakeLists.txt | 0 .../apps/ms5607/src/CMakeLists.txt | 0 .../apps/ms5607/src/ms5607_custom.cpp | 0 .../apps/ms5607/tables/ms5607_config.c | 0 .../apps/ms5611/CMakeLists.txt | 0 .../apps/ms5611/src/CMakeLists.txt | 0 .../apps/ms5611/src/ms5611_custom.c | 0 .../apps/ms5611/src/ms5611_spi.h | 0 .../apps/ms5611/tables/ms5611_config.c | 0 .../target => shared}/apps/nav/CMakeLists.txt | 0 .../apps/nav/tables/nav_config.c | 0 .../target => shared}/apps/pe/CMakeLists.txt | 0 .../apps/pe/tables/pe_config.c | 0 .../target => shared}/apps/prm/CMakeLists.txt | 0 .../apps/prm/tables/prm_config.c | 0 .../target => shared}/apps/qae/CMakeLists.txt | 0 .../apps/qae/tables/qae_config.c | 0 .../apps/rcin/CMakeLists.txt | 0 .../apps/rcin/src/CMakeLists.txt | 0 .../apps/rcin/src/rcin_custom.c | 0 .../apps/rcin/src/rcin_sbus.h | 0 .../apps/rgbled/CMakeLists.txt | 0 .../apps/rgbled/src/CMakeLists.txt | 0 .../apps/rgbled/src/rgbled_custom.c | 0 .../apps/rgbled/src/rgbled_driver.h | 0 .../target => shared}/apps/sch/CMakeLists.txt | 0 .../apps/sch/sch_custom_ftrt.c | 0 .../apps/sch/sch_custom_rt.c | 0 .../apps/sch/tables/sch_def_msgtbl.c | 0 .../apps/sch/tables/sch_def_schtbl.c | 84 - .../apps/sch/unit_test/sch_custom_test.c | 5 + .../apps/sch/unit_test/sch_custom_test.h | 0 .../apps/sch/unit_test/sch_test_utils.c | 181 + .../apps/sch/unit_test/sch_test_utils.h | 87 + .../apps/sch/unit_test/sch_testrunner.c | 0 .../apps/sens/CMakeLists.txt | 0 .../apps/sens/tables/sens_config.c | 0 .../target => shared}/apps/sim/CMakeLists.txt | 0 .../apps/sim/src/CMakeLists.txt | 0 .../apps/sim/src/sim_custom.c | 0 .../apps/sim/tables/sim_config.c | 0 .../target => shared}/apps/to/CMakeLists.txt | 0 .../apps/to/tables/to_backup_cfg.c | 0 .../apps/to/tables/to_udp_cfg.c | 0 .../target => shared}/apps/to/to_custom.c | 0 .../target => shared}/apps/to/to_custom_udp.h | 0 .../apps/to/unit_test/to_app_custom_test.c | 0 .../apps/to/unit_test/to_app_custom_test.h | 0 .../apps/to/unit_test/to_app_stubs.c | 0 .../apps/to/unit_test/to_app_stubs.h | 0 .../apps/to/unit_test/to_custom_test_utils.c | 0 .../apps/to/unit_test/to_custom_test_utils.h | 0 .../apps/to/unit_test/to_custom_testrunner.c | 0 .../apps/to/unit_test/to_platform_stubs.c | 0 .../apps/to/unit_test/to_platform_stubs.h | 0 .../target => shared}/apps/to/user_doxy.in | 0 .../target => shared}/apps/ulr/CMakeLists.txt | 0 .../apps/ulr/tables/ulr_config.c | 0 .../target => shared}/apps/ulr/ulr_custom.cpp | 0 .../target => shared}/apps/vc/CMakeLists.txt | 0 .../apps/vc/src/CMakeLists.txt | 0 .../target => shared}/apps/vc/src/vc_custom.c | 0 .../apps/vc/src/vc_custom_shared.h | 0 .../apps/vc/src/vc_dev_io_udp/vc_dev_io_udp.c | 0 .../apps/vc/src/vc_dev_io_udp/vc_dev_io_udp.h | 0 .../apps/vc/src/vc_dev_io_v4l/vc_dev_io_v4l.c | 0 .../apps/vc/src/vc_dev_io_v4l/vc_dev_io_v4l.h | 0 .../vc/src/vc_transmit_udp/vc_transmit_udp.c | 0 .../vc/src/vc_transmit_udp/vc_transmit_udp.h | 0 .../vc/unit_test/vc_app_stubs/vc_app_stubs.c | 0 .../vc/unit_test/vc_app_stubs/vc_app_stubs.h | 0 .../vc_app_custom_shared_test.c | 0 .../vc_app_custom_shared_test.h | 0 .../vc_custom_shared_test_utils.c | 0 .../vc_custom_shared_test_utils.h | 0 .../apps/vc/unit_test/vc_custom_testrunner.c | 0 .../vc_app_custom_device_test.c | 0 .../vc_app_custom_device_test.h | 0 .../vc_custom_device_test_utils.c | 0 .../vc_custom_device_test_utils.h | 0 .../vc_app_custom_device_test.c | 0 .../vc_app_custom_device_test.h | 0 .../vc_custom_device_test_utils.c | 0 .../vc_custom_device_test_utils.h | 0 .../vc_platform_stubs/vc_platform_stubs.c | 0 .../vc_platform_stubs/vc_platform_stubs.h | 0 .../vc_app_custom_transmit_test.c | 0 .../vc_app_custom_transmit_test.h | 0 .../vc_custom_transmit_test_utils.c | 0 .../vc_custom_transmit_test_utils.h | 0 .../target => shared}/apps/vm/CMakeLists.txt | 0 .../apps/vm/tables/vm_config.c | 0 config/shared/inc/amc_platform_cfg.h | 2 +- config/shared/inc/ea_platform_cfg.h | 2 +- config/shared/inc/hmc5883_platform_cfg.h | 11 +- config/shared/inc/ms5611_platform_cfg.h | 10 +- config/shared/inc/osconfig.h | 2 +- config/shared/inc/rcin_platform_cfg.h | 2 + config/shared/inc/vc_platform_cfg.h | 4 +- 782 files changed, 590 insertions(+), 99887 deletions(-) delete mode 100644 config/bebop2/inc/ae_platform_cfg.h delete mode 100644 config/bebop2/inc/ak8963_platform_cfg.h delete mode 100644 config/bebop2/inc/amc_platform_cfg.h delete mode 100644 config/bebop2/inc/bat_platform_cfg.h delete mode 100644 config/bebop2/inc/cf_msgids.h delete mode 100644 config/bebop2/inc/cf_platform_cfg.h delete mode 100644 config/bebop2/inc/cfe_msgids.h delete mode 100644 config/bebop2/inc/cfe_platform_cfg.h delete mode 100644 config/bebop2/inc/ci_msgids.h delete mode 100644 config/bebop2/inc/ci_platform_cfg.h delete mode 100644 config/bebop2/inc/cs_msgids.h delete mode 100644 config/bebop2/inc/cs_platform_cfg.h delete mode 100644 config/bebop2/inc/ds_msgids.h delete mode 100644 config/bebop2/inc/ds_platform_cfg.h delete mode 100644 config/bebop2/inc/ea_platform_cfg.h delete mode 100644 config/bebop2/inc/flow_msgids.h delete mode 100644 config/bebop2/inc/flow_platform_cfg.h delete mode 100644 config/bebop2/inc/fm_msgids.h delete mode 100644 config/bebop2/inc/fm_platform_cfg.h delete mode 100644 config/bebop2/inc/gps_platform_cfg.h delete mode 100644 config/bebop2/inc/hk_msgids.h delete mode 100644 config/bebop2/inc/hk_platform_cfg.h delete mode 100644 config/bebop2/inc/hs_msgids.h delete mode 100644 config/bebop2/inc/hs_platform_cfg.h delete mode 100644 config/bebop2/inc/lc_msgids.h delete mode 100644 config/bebop2/inc/lc_platform_cfg.h delete mode 100644 config/bebop2/inc/ld_platform_cfg.h delete mode 100644 config/bebop2/inc/lgc_platform_cfg.h delete mode 100644 config/bebop2/inc/mac_platform_cfg.h delete mode 100644 config/bebop2/inc/mavlink_platform_cfg.h delete mode 100644 config/bebop2/inc/md_msgids.h delete mode 100644 config/bebop2/inc/md_platform_cfg.h delete mode 100644 config/bebop2/inc/mm_msgids.h delete mode 100644 config/bebop2/inc/mm_platform_cfg.h delete mode 100644 config/bebop2/inc/mpc_platform_cfg.h delete mode 100644 config/bebop2/inc/ms5607_platform_cfg.h delete mode 100644 config/bebop2/inc/nav_platform_cfg.h delete mode 100644 config/bebop2/inc/prm_platform_cfg.h delete mode 100644 config/bebop2/inc/px4br_platform_cfg.h delete mode 100644 config/bebop2/inc/qae_platform_cfg.h delete mode 100644 config/bebop2/inc/rgbled_msgids.h delete mode 100644 config/bebop2/inc/rgbled_platform_cfg.h delete mode 100644 config/bebop2/inc/sbn_msgids.h delete mode 100644 config/bebop2/inc/sc_msgids.h delete mode 100644 config/bebop2/inc/sc_platform_cfg.h delete mode 100644 config/bebop2/inc/sc_rts.h delete mode 100644 config/bebop2/inc/sch_grpids.h delete mode 100644 config/bebop2/inc/sch_msgids.h delete mode 100644 config/bebop2/inc/sch_platform_cfg.h delete mode 100644 config/bebop2/inc/sens_platform_cfg.h delete mode 100644 config/bebop2/inc/sonar_platform_cfg.h delete mode 100644 config/bebop2/inc/to_msgids.h delete mode 100644 config/bebop2/inc/to_platform_cfg.h delete mode 100644 config/bebop2/inc/vc_platform_cfg.h delete mode 100644 config/bebop2/inc/vm_platform_cfg.h delete mode 100644 config/bebop2/sitl/target/apps/ci/CMakeLists.txt delete mode 100644 config/bebop2/sitl/target/apps/sch/unit_test/sch_custom_test.c delete mode 100644 config/obc/cpd/inc/ae_platform_cfg.h delete mode 100644 config/obc/cpd/inc/amc_platform_cfg.h delete mode 100644 config/obc/cpd/inc/bat_platform_cfg.h delete mode 100644 config/obc/cpd/inc/cf_msgids.h delete mode 100644 config/obc/cpd/inc/cf_platform_cfg.h delete mode 100644 config/obc/cpd/inc/cfe_msgids.h delete mode 100644 config/obc/cpd/inc/cfe_platform_cfg.h delete mode 100644 config/obc/cpd/inc/ci_msgids.h delete mode 100644 config/obc/cpd/inc/ci_platform_cfg.h delete mode 100644 config/obc/cpd/inc/cs_msgids.h delete mode 100644 config/obc/cpd/inc/cs_platform_cfg.h delete mode 100644 config/obc/cpd/inc/ds_msgids.h delete mode 100644 config/obc/cpd/inc/ds_platform_cfg.h delete mode 100644 config/obc/cpd/inc/ea_platform_cfg.h delete mode 100644 config/obc/cpd/inc/flow_msgids.h delete mode 100644 config/obc/cpd/inc/flow_platform_cfg.h delete mode 100644 config/obc/cpd/inc/fm_msgids.h delete mode 100644 config/obc/cpd/inc/fm_platform_cfg.h delete mode 100644 config/obc/cpd/inc/gps_platform_cfg.h delete mode 100644 config/obc/cpd/inc/hk_msgids.h delete mode 100644 config/obc/cpd/inc/hk_platform_cfg.h delete mode 100644 config/obc/cpd/inc/hmc5883_platform_cfg.h delete mode 100644 config/obc/cpd/inc/hs_msgids.h delete mode 100644 config/obc/cpd/inc/hs_platform_cfg.h delete mode 100644 config/obc/cpd/inc/lc_msgids.h delete mode 100644 config/obc/cpd/inc/lc_platform_cfg.h delete mode 100644 config/obc/cpd/inc/ld_platform_cfg.h delete mode 100644 config/obc/cpd/inc/lgc_platform_cfg.h delete mode 100644 config/obc/cpd/inc/mac_platform_cfg.h delete mode 100644 config/obc/cpd/inc/mavlink_platform_cfg.h delete mode 100644 config/obc/cpd/inc/md_msgids.h delete mode 100644 config/obc/cpd/inc/md_platform_cfg.h delete mode 100644 config/obc/cpd/inc/mm_msgids.h delete mode 100644 config/obc/cpd/inc/mm_platform_cfg.h delete mode 100644 config/obc/cpd/inc/mpc_platform_cfg.h delete mode 100644 config/obc/cpd/inc/mpu9250_platform_cfg.h delete mode 100644 config/obc/cpd/inc/ms5611_platform_cfg.h delete mode 100644 config/obc/cpd/inc/nav_platform_cfg.h delete mode 100644 config/obc/cpd/inc/pe_platform_cfg.h delete mode 100644 config/obc/cpd/inc/prm_platform_cfg.h delete mode 100644 config/obc/cpd/inc/px4br_platform_cfg.h delete mode 100644 config/obc/cpd/inc/qae_platform_cfg.h delete mode 100644 config/obc/cpd/inc/rcin_platform_cfg.h delete mode 100644 config/obc/cpd/inc/rgbled_msgids.h delete mode 100644 config/obc/cpd/inc/rgbled_platform_cfg.h delete mode 100644 config/obc/cpd/inc/sbn_msgids.h delete mode 100644 config/obc/cpd/inc/sc_msgids.h delete mode 100644 config/obc/cpd/inc/sc_platform_cfg.h delete mode 100644 config/obc/cpd/inc/sc_rts.h delete mode 100644 config/obc/cpd/inc/sch_grpids.h delete mode 100644 config/obc/cpd/inc/sch_msgids.h delete mode 100644 config/obc/cpd/inc/sch_platform_cfg.h delete mode 100644 config/obc/cpd/inc/sens_platform_cfg.h delete mode 100644 config/obc/cpd/inc/to_msgids.h delete mode 100644 config/obc/cpd/inc/to_platform_cfg.h delete mode 100644 config/obc/cpd/inc/ulr_platform_cfg.h delete mode 100644 config/obc/cpd/inc/vc_platform_cfg.h delete mode 100644 config/obc/cpd/inc/vm_platform_cfg.h delete mode 100644 config/obc/ppd/inc/ae_platform_cfg.h delete mode 100644 config/obc/ppd/inc/amc_platform_cfg.h delete mode 100644 config/obc/ppd/inc/bat_platform_cfg.h delete mode 100644 config/obc/ppd/inc/cf_msgids.h delete mode 100644 config/obc/ppd/inc/cf_platform_cfg.h delete mode 100644 config/obc/ppd/inc/cfe_msgids.h delete mode 100644 config/obc/ppd/inc/cfe_platform_cfg.h delete mode 100644 config/obc/ppd/inc/ci_msgids.h delete mode 100644 config/obc/ppd/inc/ci_platform_cfg.h delete mode 100644 config/obc/ppd/inc/cs_msgids.h delete mode 100644 config/obc/ppd/inc/cs_platform_cfg.h delete mode 100644 config/obc/ppd/inc/ds_msgids.h delete mode 100644 config/obc/ppd/inc/ds_platform_cfg.h delete mode 100644 config/obc/ppd/inc/ea_platform_cfg.h delete mode 100644 config/obc/ppd/inc/flow_msgids.h delete mode 100644 config/obc/ppd/inc/flow_platform_cfg.h delete mode 100644 config/obc/ppd/inc/fm_msgids.h delete mode 100644 config/obc/ppd/inc/fm_platform_cfg.h delete mode 100644 config/obc/ppd/inc/gps_platform_cfg.h delete mode 100644 config/obc/ppd/inc/hk_msgids.h delete mode 100644 config/obc/ppd/inc/hk_platform_cfg.h delete mode 100644 config/obc/ppd/inc/hmc5883_platform_cfg.h delete mode 100644 config/obc/ppd/inc/hs_msgids.h delete mode 100644 config/obc/ppd/inc/hs_platform_cfg.h delete mode 100644 config/obc/ppd/inc/lc_msgids.h delete mode 100644 config/obc/ppd/inc/lc_platform_cfg.h delete mode 100644 config/obc/ppd/inc/ld_platform_cfg.h delete mode 100644 config/obc/ppd/inc/lgc_platform_cfg.h delete mode 100644 config/obc/ppd/inc/mac_platform_cfg.h delete mode 100644 config/obc/ppd/inc/mavlink_platform_cfg.h delete mode 100644 config/obc/ppd/inc/md_msgids.h delete mode 100644 config/obc/ppd/inc/md_platform_cfg.h delete mode 100644 config/obc/ppd/inc/mm_msgids.h delete mode 100644 config/obc/ppd/inc/mm_platform_cfg.h delete mode 100644 config/obc/ppd/inc/mpc_platform_cfg.h delete mode 100644 config/obc/ppd/inc/mpu9250_platform_cfg.h delete mode 100644 config/obc/ppd/inc/ms5611_platform_cfg.h delete mode 100644 config/obc/ppd/inc/nav_platform_cfg.h delete mode 100644 config/obc/ppd/inc/osconfig.h delete mode 100644 config/obc/ppd/inc/pe_platform_cfg.h delete mode 100644 config/obc/ppd/inc/prm_platform_cfg.h delete mode 100644 config/obc/ppd/inc/px4br_platform_cfg.h delete mode 100644 config/obc/ppd/inc/qae_platform_cfg.h delete mode 100644 config/obc/ppd/inc/rcin_platform_cfg.h delete mode 100644 config/obc/ppd/inc/rgbled_msgids.h delete mode 100644 config/obc/ppd/inc/rgbled_platform_cfg.h delete mode 100644 config/obc/ppd/inc/sbn_msgids.h delete mode 100644 config/obc/ppd/inc/sc_msgids.h delete mode 100644 config/obc/ppd/inc/sc_platform_cfg.h delete mode 100644 config/obc/ppd/inc/sc_rts.h delete mode 100644 config/obc/ppd/inc/sch_grpids.h delete mode 100644 config/obc/ppd/inc/sch_msgids.h delete mode 100644 config/obc/ppd/inc/sch_platform_cfg.h delete mode 100644 config/obc/ppd/inc/sens_platform_cfg.h delete mode 100644 config/obc/ppd/inc/to_msgids.h delete mode 100644 config/obc/ppd/inc/to_platform_cfg.h delete mode 100644 config/obc/ppd/inc/ulr_platform_cfg.h delete mode 100644 config/obc/ppd/inc/vc_platform_cfg.h delete mode 100644 config/obc/ppd/inc/vm_platform_cfg.h delete mode 100644 config/ocpoc/quadx/inc/ae_platform_cfg.h delete mode 100644 config/ocpoc/quadx/inc/amc_platform_cfg.h delete mode 100644 config/ocpoc/quadx/inc/bat_platform_cfg.h delete mode 100644 config/ocpoc/quadx/inc/cf_msgids.h delete mode 100644 config/ocpoc/quadx/inc/cf_platform_cfg.h delete mode 100644 config/ocpoc/quadx/inc/cfe_msgids.h delete mode 100644 config/ocpoc/quadx/inc/cfe_platform_cfg.h delete mode 100644 config/ocpoc/quadx/inc/ci_msgids.h delete mode 100644 config/ocpoc/quadx/inc/ci_platform_cfg.h delete mode 100644 config/ocpoc/quadx/inc/cs_msgids.h delete mode 100644 config/ocpoc/quadx/inc/cs_platform_cfg.h delete mode 100644 config/ocpoc/quadx/inc/ds_msgids.h delete mode 100644 config/ocpoc/quadx/inc/ds_platform_cfg.h delete mode 100644 config/ocpoc/quadx/inc/ea_platform_cfg.h delete mode 100644 config/ocpoc/quadx/inc/flow_msgids.h delete mode 100644 config/ocpoc/quadx/inc/flow_platform_cfg.h delete mode 100644 config/ocpoc/quadx/inc/fm_msgids.h delete mode 100644 config/ocpoc/quadx/inc/fm_platform_cfg.h delete mode 100644 config/ocpoc/quadx/inc/gps_platform_cfg.h delete mode 100644 config/ocpoc/quadx/inc/hk_msgids.h delete mode 100644 config/ocpoc/quadx/inc/hk_platform_cfg.h delete mode 100644 config/ocpoc/quadx/inc/hmc5883_platform_cfg.h delete mode 100644 config/ocpoc/quadx/inc/hs_msgids.h delete mode 100644 config/ocpoc/quadx/inc/hs_platform_cfg.h delete mode 100644 config/ocpoc/quadx/inc/lc_msgids.h delete mode 100644 config/ocpoc/quadx/inc/lc_platform_cfg.h delete mode 100644 config/ocpoc/quadx/inc/ld_platform_cfg.h delete mode 100644 config/ocpoc/quadx/inc/lgc_platform_cfg.h delete mode 100644 config/ocpoc/quadx/inc/mac_platform_cfg.h delete mode 100644 config/ocpoc/quadx/inc/mavlink_platform_cfg.h delete mode 100644 config/ocpoc/quadx/inc/md_msgids.h delete mode 100644 config/ocpoc/quadx/inc/md_platform_cfg.h delete mode 100644 config/ocpoc/quadx/inc/mm_msgids.h delete mode 100644 config/ocpoc/quadx/inc/mm_platform_cfg.h delete mode 100644 config/ocpoc/quadx/inc/mpc_platform_cfg.h delete mode 100644 config/ocpoc/quadx/inc/mpu9250_platform_cfg.h delete mode 100644 config/ocpoc/quadx/inc/ms5611_platform_cfg.h delete mode 100644 config/ocpoc/quadx/inc/nav_platform_cfg.h delete mode 100644 config/ocpoc/quadx/inc/osconfig.h delete mode 100644 config/ocpoc/quadx/inc/pe_platform_cfg.h delete mode 100644 config/ocpoc/quadx/inc/prm_platform_cfg.h delete mode 100644 config/ocpoc/quadx/inc/px4br_platform_cfg.h delete mode 100644 config/ocpoc/quadx/inc/qae_platform_cfg.h delete mode 100644 config/ocpoc/quadx/inc/rcin_platform_cfg.h delete mode 100644 config/ocpoc/quadx/inc/rgbled_msgids.h delete mode 100644 config/ocpoc/quadx/inc/rgbled_platform_cfg.h delete mode 100644 config/ocpoc/quadx/inc/sbn_msgids.h delete mode 100644 config/ocpoc/quadx/inc/sc_msgids.h delete mode 100644 config/ocpoc/quadx/inc/sc_platform_cfg.h delete mode 100644 config/ocpoc/quadx/inc/sc_rts.h delete mode 100644 config/ocpoc/quadx/inc/sch_grpids.h delete mode 100644 config/ocpoc/quadx/inc/sch_msgids.h delete mode 100644 config/ocpoc/quadx/inc/sch_platform_cfg.h delete mode 100644 config/ocpoc/quadx/inc/sens_platform_cfg.h delete mode 100644 config/ocpoc/quadx/inc/to_msgids.h delete mode 100644 config/ocpoc/quadx/inc/to_platform_cfg.h delete mode 100644 config/ocpoc/quadx/inc/ulr_platform_cfg.h delete mode 100644 config/ocpoc/quadx/inc/vc_platform_cfg.h delete mode 100644 config/ocpoc/quadx/inc/vm_platform_cfg.h create mode 100644 config/ocpoc/quadx/target/airliner.service delete mode 100644 config/ocpoc/quadx/target/apps/cf/CMakeLists.txt delete mode 100644 config/ocpoc/quadx/target/apps/cf/tables/cf_cfgtable.c delete mode 100644 config/ocpoc/quadx/target/apps/ci/CMakeLists.txt delete mode 100644 config/ocpoc/quadx/target/apps/ci/ci_custom.c delete mode 100644 config/ocpoc/quadx/target/apps/ci/tables/ci_config.c delete mode 100644 config/ocpoc/quadx/target/apps/ci/unit_test/ci-custom.supp delete mode 100644 config/ocpoc/quadx/target/apps/ci/unit_test/ci_custom_test.c delete mode 100644 config/ocpoc/quadx/target/apps/ci/unit_test/ci_custom_test.h delete mode 100644 config/ocpoc/quadx/target/apps/ci/unit_test/ci_mock_os_calls.c delete mode 100644 config/ocpoc/quadx/target/apps/ci/unit_test/ci_mock_os_calls.h delete mode 100644 config/ocpoc/quadx/target/apps/ci/unit_test/ci_test_utils.c delete mode 100644 config/ocpoc/quadx/target/apps/ci/unit_test/ci_test_utils.h delete mode 100644 config/ocpoc/quadx/target/apps/ci/unit_test/ci_testrunner.c delete mode 100644 config/ocpoc/quadx/target/apps/ds/CMakeLists.txt delete mode 100644 config/ocpoc/quadx/target/apps/ds/tables/ds_file_tbl.c delete mode 100644 config/ocpoc/quadx/target/apps/ds/tables/ds_filter_tbl.c delete mode 100644 config/ocpoc/quadx/target/apps/ea/CMakeLists.txt delete mode 100644 config/ocpoc/quadx/target/apps/ea/ea-custom-ut.supp delete mode 100644 config/ocpoc/quadx/target/apps/ea/ea-perfmon-ut.supp delete mode 100644 config/ocpoc/quadx/target/apps/ea/src/ea_custom.c delete mode 100644 config/ocpoc/quadx/target/apps/ea/unit_test/ea-custom-ut.supp delete mode 100644 config/ocpoc/quadx/target/apps/ea/unit_test/ea_custom_test.c delete mode 100644 config/ocpoc/quadx/target/apps/ea/unit_test/ea_custom_test.h delete mode 100644 config/ocpoc/quadx/target/apps/ea/unit_test/ea_mock_os_calls.c delete mode 100644 config/ocpoc/quadx/target/apps/ea/unit_test/ea_mock_os_calls.h delete mode 100644 config/ocpoc/quadx/target/apps/ea/unit_test/ea_perfmon_test.c delete mode 100644 config/ocpoc/quadx/target/apps/ea/unit_test/ea_perfmon_test.h delete mode 100644 config/ocpoc/quadx/target/apps/ea/unit_test/ea_perfmon_testrunner.c delete mode 100644 config/ocpoc/quadx/target/apps/ea/unit_test/ea_test_utils.c delete mode 100644 config/ocpoc/quadx/target/apps/ea/unit_test/ea_test_utils.h delete mode 100644 config/ocpoc/quadx/target/apps/ea/unit_test/ea_testrunner.c delete mode 100644 config/ocpoc/quadx/target/apps/ea/unit_test/fib.py delete mode 100644 config/ocpoc/quadx/target/apps/ea/unit_test/noop.py delete mode 100644 config/ocpoc/quadx/target/apps/ea/unit_test/sleep.py delete mode 100644 config/ocpoc/quadx/target/apps/flow/CMakeLists.txt delete mode 100644 config/ocpoc/quadx/target/apps/flow/tables/flow_config.c delete mode 100644 config/ocpoc/quadx/target/apps/ld/tables/ld_config.c delete mode 100644 config/ocpoc/quadx/target/apps/lgc/CMakeLists.txt delete mode 100644 config/ocpoc/quadx/target/apps/lgc/lgc_custom.cpp delete mode 100644 config/ocpoc/quadx/target/apps/lgc/tables/lgc_config.c delete mode 100644 config/ocpoc/quadx/target/apps/mpu9250/tables/mpu9250_config.c delete mode 100644 config/ocpoc/quadx/target/apps/mpu9250/tables/mpu9250_config_dev_ocpoc.c delete mode 100644 config/ocpoc/quadx/target/apps/prm/CMakeLists.txt delete mode 100644 config/ocpoc/quadx/target/apps/prm/tables/prm_config.c delete mode 100644 config/ocpoc/quadx/target/apps/qae/CMakeLists.txt delete mode 100644 config/ocpoc/quadx/target/apps/qae/tables/qae_config.c delete mode 100644 config/ocpoc/quadx/target/apps/sch/tables/sch_def_schtbl.c delete mode 100644 config/ocpoc/quadx/target/apps/sch/unit_test/sch_test_utils.c delete mode 100644 config/ocpoc/quadx/target/apps/sch/unit_test/sch_test_utils.h delete mode 100644 config/ocpoc/quadx/target/apps/vc/CMakeLists.txt delete mode 100644 config/ocpoc/quadx/target/apps/vc/src/CMakeLists.txt delete mode 100644 config/ocpoc/quadx/target/apps/vc/src/vc_custom.c delete mode 100644 config/ocpoc/quadx/target/apps/vc/src/vc_custom_shared.h delete mode 100644 config/ocpoc/quadx/target/apps/vc/src/vc_dev_io_udp/vc_dev_io_udp.c delete mode 100644 config/ocpoc/quadx/target/apps/vc/src/vc_dev_io_udp/vc_dev_io_udp.h delete mode 100644 config/ocpoc/quadx/target/apps/vc/src/vc_dev_io_v4l/vc_dev_io_v4l.c delete mode 100644 config/ocpoc/quadx/target/apps/vc/src/vc_dev_io_v4l/vc_dev_io_v4l.h delete mode 100644 config/ocpoc/quadx/target/apps/vc/src/vc_transmit_udp/vc_transmit_udp.c delete mode 100644 config/ocpoc/quadx/target/apps/vc/src/vc_transmit_udp/vc_transmit_udp.h delete mode 100644 config/ocpoc/quadx/target/apps/vc/unit_test/vc_app_custom_stubs/vc_app_custom_stubs.c delete mode 100644 config/ocpoc/quadx/target/apps/vc/unit_test/vc_app_custom_stubs/vc_app_custom_stubs.h delete mode 100644 config/ocpoc/quadx/target/apps/vc/unit_test/vc_app_stubs/vc_app_stubs.c delete mode 100644 config/ocpoc/quadx/target/apps/vc/unit_test/vc_app_stubs/vc_app_stubs.h delete mode 100644 config/ocpoc/quadx/target/apps/vc/unit_test/vc_custom_shared_test/vc_app_custom_shared_test.c delete mode 100644 config/ocpoc/quadx/target/apps/vc/unit_test/vc_custom_shared_test/vc_app_custom_shared_test.h delete mode 100644 config/ocpoc/quadx/target/apps/vc/unit_test/vc_custom_shared_test/vc_custom_shared_test_utils.c delete mode 100644 config/ocpoc/quadx/target/apps/vc/unit_test/vc_custom_shared_test/vc_custom_shared_test_utils.h delete mode 100644 config/ocpoc/quadx/target/apps/vc/unit_test/vc_custom_testrunner.c delete mode 100644 config/ocpoc/quadx/target/apps/vc/unit_test/vc_dev_io_udp_test/vc_app_custom_device_test.c delete mode 100644 config/ocpoc/quadx/target/apps/vc/unit_test/vc_dev_io_udp_test/vc_app_custom_device_test.h delete mode 100644 config/ocpoc/quadx/target/apps/vc/unit_test/vc_dev_io_udp_test/vc_custom_device_test_utils.c delete mode 100644 config/ocpoc/quadx/target/apps/vc/unit_test/vc_dev_io_udp_test/vc_custom_device_test_utils.h delete mode 100644 config/ocpoc/quadx/target/apps/vc/unit_test/vc_dev_io_v4l_test/vc_app_custom_device_test.c delete mode 100644 config/ocpoc/quadx/target/apps/vc/unit_test/vc_dev_io_v4l_test/vc_app_custom_device_test.h delete mode 100644 config/ocpoc/quadx/target/apps/vc/unit_test/vc_dev_io_v4l_test/vc_custom_device_test_utils.c delete mode 100644 config/ocpoc/quadx/target/apps/vc/unit_test/vc_dev_io_v4l_test/vc_custom_device_test_utils.h delete mode 100644 config/ocpoc/quadx/target/apps/vc/unit_test/vc_platform_stubs/vc_platform_stubs.c delete mode 100644 config/ocpoc/quadx/target/apps/vc/unit_test/vc_platform_stubs/vc_platform_stubs.h delete mode 100644 config/ocpoc/quadx/target/apps/vc/unit_test/vc_transmit_udp_test/vc_app_custom_transmit_test.c delete mode 100644 config/ocpoc/quadx/target/apps/vc/unit_test/vc_transmit_udp_test/vc_app_custom_transmit_test.h delete mode 100644 config/ocpoc/quadx/target/apps/vc/unit_test/vc_transmit_udp_test/vc_custom_transmit_test_utils.c delete mode 100644 config/ocpoc/quadx/target/apps/vc/unit_test/vc_transmit_udp_test/vc_custom_transmit_test_utils.h delete mode 100644 config/ocpoc/s1000/inc/ae_platform_cfg.h delete mode 100644 config/ocpoc/s1000/inc/amc_platform_cfg.h delete mode 100644 config/ocpoc/s1000/inc/bat_platform_cfg.h delete mode 100644 config/ocpoc/s1000/inc/cf_msgids.h delete mode 100644 config/ocpoc/s1000/inc/cf_platform_cfg.h delete mode 100644 config/ocpoc/s1000/inc/cfe_msgids.h delete mode 100644 config/ocpoc/s1000/inc/cfe_platform_cfg.h delete mode 100644 config/ocpoc/s1000/inc/ci_msgids.h delete mode 100644 config/ocpoc/s1000/inc/ci_platform_cfg.h delete mode 100644 config/ocpoc/s1000/inc/cs_msgids.h delete mode 100644 config/ocpoc/s1000/inc/cs_platform_cfg.h delete mode 100644 config/ocpoc/s1000/inc/ds_msgids.h delete mode 100644 config/ocpoc/s1000/inc/ds_platform_cfg.h delete mode 100644 config/ocpoc/s1000/inc/ea_platform_cfg.h delete mode 100644 config/ocpoc/s1000/inc/flow_msgids.h delete mode 100644 config/ocpoc/s1000/inc/flow_platform_cfg.h delete mode 100644 config/ocpoc/s1000/inc/fm_msgids.h delete mode 100644 config/ocpoc/s1000/inc/fm_platform_cfg.h delete mode 100644 config/ocpoc/s1000/inc/gps_platform_cfg.h delete mode 100644 config/ocpoc/s1000/inc/hk_msgids.h delete mode 100644 config/ocpoc/s1000/inc/hk_platform_cfg.h delete mode 100644 config/ocpoc/s1000/inc/hmc5883_platform_cfg.h delete mode 100644 config/ocpoc/s1000/inc/hs_msgids.h delete mode 100644 config/ocpoc/s1000/inc/hs_platform_cfg.h delete mode 100644 config/ocpoc/s1000/inc/lc_msgids.h delete mode 100644 config/ocpoc/s1000/inc/lc_platform_cfg.h delete mode 100644 config/ocpoc/s1000/inc/ld_platform_cfg.h delete mode 100644 config/ocpoc/s1000/inc/lgc_platform_cfg.h delete mode 100644 config/ocpoc/s1000/inc/mac_platform_cfg.h delete mode 100644 config/ocpoc/s1000/inc/mavlink_platform_cfg.h delete mode 100644 config/ocpoc/s1000/inc/md_msgids.h delete mode 100644 config/ocpoc/s1000/inc/md_platform_cfg.h delete mode 100644 config/ocpoc/s1000/inc/mm_msgids.h delete mode 100644 config/ocpoc/s1000/inc/mm_platform_cfg.h delete mode 100644 config/ocpoc/s1000/inc/mpc_platform_cfg.h delete mode 100644 config/ocpoc/s1000/inc/mpu9250_platform_cfg.h delete mode 100644 config/ocpoc/s1000/inc/ms5611_platform_cfg.h delete mode 100644 config/ocpoc/s1000/inc/nav_platform_cfg.h delete mode 100644 config/ocpoc/s1000/inc/osconfig.h delete mode 100644 config/ocpoc/s1000/inc/pe_platform_cfg.h delete mode 100644 config/ocpoc/s1000/inc/prm_platform_cfg.h delete mode 100644 config/ocpoc/s1000/inc/px4br_platform_cfg.h delete mode 100644 config/ocpoc/s1000/inc/qae_platform_cfg.h delete mode 100644 config/ocpoc/s1000/inc/rcin_platform_cfg.h delete mode 100644 config/ocpoc/s1000/inc/rgbled_msgids.h delete mode 100644 config/ocpoc/s1000/inc/rgbled_platform_cfg.h delete mode 100644 config/ocpoc/s1000/inc/sbn_msgids.h delete mode 100644 config/ocpoc/s1000/inc/sc_msgids.h delete mode 100644 config/ocpoc/s1000/inc/sc_platform_cfg.h delete mode 100644 config/ocpoc/s1000/inc/sc_rts.h delete mode 100644 config/ocpoc/s1000/inc/sch_grpids.h delete mode 100644 config/ocpoc/s1000/inc/sch_msgids.h delete mode 100644 config/ocpoc/s1000/inc/sch_platform_cfg.h delete mode 100644 config/ocpoc/s1000/inc/sens_platform_cfg.h delete mode 100644 config/ocpoc/s1000/inc/to_msgids.h delete mode 100644 config/ocpoc/s1000/inc/to_platform_cfg.h delete mode 100644 config/ocpoc/s1000/inc/ulr_platform_cfg.h delete mode 100644 config/ocpoc/s1000/inc/vc_platform_cfg.h delete mode 100644 config/ocpoc/s1000/inc/vm_platform_cfg.h delete mode 100644 config/ocpoc/s1000/target/apps/cf/CMakeLists.txt delete mode 100644 config/ocpoc/s1000/target/apps/cf/tables/cf_cfgtable.c delete mode 100644 config/ocpoc/s1000/target/apps/ci/ci_custom.c delete mode 100644 config/ocpoc/s1000/target/apps/ci/tables/ci_config.c delete mode 100644 config/ocpoc/s1000/target/apps/ci/unit_test/ci-custom.supp delete mode 100644 config/ocpoc/s1000/target/apps/ci/unit_test/ci_custom_test.c delete mode 100644 config/ocpoc/s1000/target/apps/ci/unit_test/ci_custom_test.h delete mode 100644 config/ocpoc/s1000/target/apps/ci/unit_test/ci_mock_os_calls.c delete mode 100644 config/ocpoc/s1000/target/apps/ci/unit_test/ci_mock_os_calls.h delete mode 100644 config/ocpoc/s1000/target/apps/ci/unit_test/ci_test_utils.c delete mode 100644 config/ocpoc/s1000/target/apps/ci/unit_test/ci_test_utils.h delete mode 100644 config/ocpoc/s1000/target/apps/ci/unit_test/ci_testrunner.c delete mode 100644 config/ocpoc/s1000/target/apps/ds/CMakeLists.txt delete mode 100644 config/ocpoc/s1000/target/apps/ds/tables/ds_file_tbl.c delete mode 100644 config/ocpoc/s1000/target/apps/ds/tables/ds_filter_tbl.c delete mode 100644 config/ocpoc/s1000/target/apps/ea/CMakeLists.txt delete mode 100644 config/ocpoc/s1000/target/apps/ea/ea-custom-ut.supp delete mode 100644 config/ocpoc/s1000/target/apps/ea/ea-perfmon-ut.supp delete mode 100644 config/ocpoc/s1000/target/apps/ea/src/ea_custom.c delete mode 100644 config/ocpoc/s1000/target/apps/ea/unit_test/ea-custom-ut.supp delete mode 100644 config/ocpoc/s1000/target/apps/ea/unit_test/ea_custom_test.c delete mode 100644 config/ocpoc/s1000/target/apps/ea/unit_test/ea_custom_test.h delete mode 100644 config/ocpoc/s1000/target/apps/ea/unit_test/ea_mock_os_calls.c delete mode 100644 config/ocpoc/s1000/target/apps/ea/unit_test/ea_mock_os_calls.h delete mode 100644 config/ocpoc/s1000/target/apps/ea/unit_test/ea_perfmon_test.c delete mode 100644 config/ocpoc/s1000/target/apps/ea/unit_test/ea_perfmon_test.h delete mode 100644 config/ocpoc/s1000/target/apps/ea/unit_test/ea_perfmon_testrunner.c delete mode 100644 config/ocpoc/s1000/target/apps/ea/unit_test/ea_test_utils.c delete mode 100644 config/ocpoc/s1000/target/apps/ea/unit_test/ea_test_utils.h delete mode 100644 config/ocpoc/s1000/target/apps/ea/unit_test/ea_testrunner.c delete mode 100644 config/ocpoc/s1000/target/apps/ea/unit_test/fib.py delete mode 100644 config/ocpoc/s1000/target/apps/ea/unit_test/noop.py delete mode 100644 config/ocpoc/s1000/target/apps/ea/unit_test/sleep.py delete mode 100644 config/ocpoc/s1000/target/apps/flow/CMakeLists.txt delete mode 100644 config/ocpoc/s1000/target/apps/flow/tables/flow_config.c delete mode 100644 config/ocpoc/s1000/target/apps/gps/CMakeLists.txt delete mode 100644 config/ocpoc/s1000/target/apps/gps/src/CMakeLists.txt delete mode 100644 config/ocpoc/s1000/target/apps/gps/src/gps_custom.c delete mode 100644 config/ocpoc/s1000/target/apps/gps/src/gps_custom_shared.h delete mode 100644 config/ocpoc/s1000/target/apps/gps/src/gps_parser_ubx/gps_parser_ubx_ack.c delete mode 100644 config/ocpoc/s1000/target/apps/gps/src/gps_parser_ubx/gps_parser_ubx_ack.h delete mode 100644 config/ocpoc/s1000/target/apps/gps/src/gps_parser_ubx/gps_parser_ubx_cfg.c delete mode 100644 config/ocpoc/s1000/target/apps/gps/src/gps_parser_ubx/gps_parser_ubx_cfg.h delete mode 100644 config/ocpoc/s1000/target/apps/gps/src/gps_parser_ubx/gps_parser_ubx_common.c delete mode 100644 config/ocpoc/s1000/target/apps/gps/src/gps_parser_ubx/gps_parser_ubx_common.h delete mode 100644 config/ocpoc/s1000/target/apps/gps/src/gps_parser_ubx/gps_parser_ubx_mon.c delete mode 100644 config/ocpoc/s1000/target/apps/gps/src/gps_parser_ubx/gps_parser_ubx_mon.h delete mode 100644 config/ocpoc/s1000/target/apps/gps/src/gps_parser_ubx/gps_parser_ubx_nav.c delete mode 100644 config/ocpoc/s1000/target/apps/gps/src/gps_parser_ubx/gps_parser_ubx_nav.h delete mode 100644 config/ocpoc/s1000/target/apps/gps/src/gps_parser_ubx/gps_ubx_msg.h delete mode 100644 config/ocpoc/s1000/target/apps/gps/tables/gps_config.c delete mode 100644 config/ocpoc/s1000/target/apps/ld/CMakeLists.txt delete mode 100644 config/ocpoc/s1000/target/apps/mpu9250/CMakeLists.txt delete mode 100644 config/ocpoc/s1000/target/apps/mpu9250/src/CMakeLists.txt delete mode 100644 config/ocpoc/s1000/target/apps/mpu9250/src/mpu9250_custom.c delete mode 100644 config/ocpoc/s1000/target/apps/mpu9250/src/mpu9250_spi.h delete mode 100644 config/ocpoc/s1000/target/apps/mpu9250/tables/mpu9250_config_default.c delete mode 100644 config/ocpoc/s1000/target/apps/ms5611/CMakeLists.txt delete mode 100644 config/ocpoc/s1000/target/apps/ms5611/src/CMakeLists.txt delete mode 100644 config/ocpoc/s1000/target/apps/ms5611/src/ms5611_custom.c delete mode 100644 config/ocpoc/s1000/target/apps/ms5611/src/ms5611_spi.h delete mode 100644 config/ocpoc/s1000/target/apps/ms5611/tables/ms5611_config.c delete mode 100644 config/ocpoc/s1000/target/apps/nav/CMakeLists.txt delete mode 100644 config/ocpoc/s1000/target/apps/nav/tables/nav_config.c delete mode 100644 config/ocpoc/s1000/target/apps/prm/CMakeLists.txt delete mode 100644 config/ocpoc/s1000/target/apps/prm/tables/prm_config.c delete mode 100644 config/ocpoc/s1000/target/apps/qae/CMakeLists.txt delete mode 100644 config/ocpoc/s1000/target/apps/qae/tables/qae_config.c delete mode 100644 config/ocpoc/s1000/target/apps/rcin/CMakeLists.txt delete mode 100644 config/ocpoc/s1000/target/apps/rcin/src/CMakeLists.txt delete mode 100644 config/ocpoc/s1000/target/apps/rcin/src/rcin_custom.c delete mode 100644 config/ocpoc/s1000/target/apps/rcin/src/rcin_sbus.h delete mode 100644 config/ocpoc/s1000/target/apps/rgbled/CMakeLists.txt delete mode 100644 config/ocpoc/s1000/target/apps/rgbled/src/CMakeLists.txt delete mode 100644 config/ocpoc/s1000/target/apps/rgbled/src/rgbled_custom.c delete mode 100644 config/ocpoc/s1000/target/apps/rgbled/src/rgbled_driver.h delete mode 100644 config/ocpoc/s1000/target/apps/sch/CMakeLists.txt delete mode 100644 config/ocpoc/s1000/target/apps/sch/sch_custom_rt.c delete mode 100644 config/ocpoc/s1000/target/apps/sch/tables/sch_def_msgtbl.c delete mode 100644 config/ocpoc/s1000/target/apps/sch/unit_test/sch_custom_test.h delete mode 100644 config/ocpoc/s1000/target/apps/sch/unit_test/sch_test_utils.c delete mode 100644 config/ocpoc/s1000/target/apps/sch/unit_test/sch_test_utils.h delete mode 100644 config/ocpoc/s1000/target/apps/sch/unit_test/sch_testrunner.c delete mode 100644 config/ocpoc/s1000/target/apps/sens/CMakeLists.txt delete mode 100644 config/ocpoc/s1000/target/apps/sens/tables/sens_config.c delete mode 100644 config/ocpoc/s1000/target/apps/to/CMakeLists.txt delete mode 100644 config/ocpoc/s1000/target/apps/to/tables/to_backup_cfg.c delete mode 100644 config/ocpoc/s1000/target/apps/to/tables/to_udp_cfg.c delete mode 100644 config/ocpoc/s1000/target/apps/to/to_custom.c delete mode 100644 config/ocpoc/s1000/target/apps/to/to_custom_udp.h delete mode 100644 config/ocpoc/s1000/target/apps/to/unit_test/to_app_custom_test.c delete mode 100644 config/ocpoc/s1000/target/apps/to/unit_test/to_app_custom_test.h delete mode 100644 config/ocpoc/s1000/target/apps/to/unit_test/to_app_stubs.c delete mode 100644 config/ocpoc/s1000/target/apps/to/unit_test/to_app_stubs.h delete mode 100644 config/ocpoc/s1000/target/apps/to/unit_test/to_custom_test_utils.c delete mode 100644 config/ocpoc/s1000/target/apps/to/unit_test/to_custom_test_utils.h delete mode 100644 config/ocpoc/s1000/target/apps/to/unit_test/to_custom_testrunner.c delete mode 100644 config/ocpoc/s1000/target/apps/to/unit_test/to_platform_stubs.c delete mode 100644 config/ocpoc/s1000/target/apps/to/unit_test/to_platform_stubs.h delete mode 100644 config/ocpoc/s1000/target/apps/to/user_doxy.in delete mode 100644 config/ocpoc/s1000/target/apps/ulr/CMakeLists.txt delete mode 100644 config/ocpoc/s1000/target/apps/ulr/tables/ulr_config.c delete mode 100644 config/ocpoc/s1000/target/apps/ulr/ulr_custom.cpp delete mode 100644 config/ocpoc/s1000/target/apps/vc/CMakeLists.txt delete mode 100644 config/ocpoc/s1000/target/apps/vc/src/CMakeLists.txt delete mode 100644 config/ocpoc/s1000/target/apps/vc/src/vc_custom.c delete mode 100644 config/ocpoc/s1000/target/apps/vc/src/vc_custom_shared.h delete mode 100644 config/ocpoc/s1000/target/apps/vc/src/vc_dev_io_udp/vc_dev_io_udp.c delete mode 100644 config/ocpoc/s1000/target/apps/vc/src/vc_dev_io_udp/vc_dev_io_udp.h delete mode 100644 config/ocpoc/s1000/target/apps/vc/src/vc_dev_io_v4l/vc_dev_io_v4l.c delete mode 100644 config/ocpoc/s1000/target/apps/vc/src/vc_dev_io_v4l/vc_dev_io_v4l.h delete mode 100644 config/ocpoc/s1000/target/apps/vc/src/vc_transmit_udp/vc_transmit_udp.c delete mode 100644 config/ocpoc/s1000/target/apps/vc/src/vc_transmit_udp/vc_transmit_udp.h delete mode 100644 config/ocpoc/s1000/target/apps/vc/unit_test/vc_app_custom_stubs/vc_app_custom_stubs.c delete mode 100644 config/ocpoc/s1000/target/apps/vc/unit_test/vc_app_custom_stubs/vc_app_custom_stubs.h delete mode 100644 config/ocpoc/s1000/target/apps/vc/unit_test/vc_app_stubs/vc_app_stubs.c delete mode 100644 config/ocpoc/s1000/target/apps/vc/unit_test/vc_app_stubs/vc_app_stubs.h delete mode 100644 config/ocpoc/s1000/target/apps/vc/unit_test/vc_custom_shared_test/vc_app_custom_shared_test.c delete mode 100644 config/ocpoc/s1000/target/apps/vc/unit_test/vc_custom_shared_test/vc_app_custom_shared_test.h delete mode 100644 config/ocpoc/s1000/target/apps/vc/unit_test/vc_custom_shared_test/vc_custom_shared_test_utils.c delete mode 100644 config/ocpoc/s1000/target/apps/vc/unit_test/vc_custom_shared_test/vc_custom_shared_test_utils.h delete mode 100644 config/ocpoc/s1000/target/apps/vc/unit_test/vc_custom_testrunner.c delete mode 100644 config/ocpoc/s1000/target/apps/vc/unit_test/vc_dev_io_udp_test/vc_app_custom_device_test.c delete mode 100644 config/ocpoc/s1000/target/apps/vc/unit_test/vc_dev_io_udp_test/vc_app_custom_device_test.h delete mode 100644 config/ocpoc/s1000/target/apps/vc/unit_test/vc_dev_io_udp_test/vc_custom_device_test_utils.c delete mode 100644 config/ocpoc/s1000/target/apps/vc/unit_test/vc_dev_io_udp_test/vc_custom_device_test_utils.h delete mode 100644 config/ocpoc/s1000/target/apps/vc/unit_test/vc_dev_io_v4l_test/vc_app_custom_device_test.c delete mode 100644 config/ocpoc/s1000/target/apps/vc/unit_test/vc_dev_io_v4l_test/vc_app_custom_device_test.h delete mode 100644 config/ocpoc/s1000/target/apps/vc/unit_test/vc_dev_io_v4l_test/vc_custom_device_test_utils.c delete mode 100644 config/ocpoc/s1000/target/apps/vc/unit_test/vc_dev_io_v4l_test/vc_custom_device_test_utils.h delete mode 100644 config/ocpoc/s1000/target/apps/vc/unit_test/vc_platform_stubs/vc_platform_stubs.c delete mode 100644 config/ocpoc/s1000/target/apps/vc/unit_test/vc_platform_stubs/vc_platform_stubs.h delete mode 100644 config/ocpoc/s1000/target/apps/vc/unit_test/vc_transmit_udp_test/vc_app_custom_transmit_test.c delete mode 100644 config/ocpoc/s1000/target/apps/vc/unit_test/vc_transmit_udp_test/vc_app_custom_transmit_test.h delete mode 100644 config/ocpoc/s1000/target/apps/vc/unit_test/vc_transmit_udp_test/vc_custom_transmit_test_utils.c delete mode 100644 config/ocpoc/s1000/target/apps/vc/unit_test/vc_transmit_udp_test/vc_custom_transmit_test_utils.h delete mode 100644 config/ocpoc/s1000/target/apps/vm/CMakeLists.txt delete mode 100644 config/ocpoc/s1000/target/apps/vm/tables/vm_config.c rename config/{bebop2/sitl/target => ocpoc/shared}/apps/gps/CMakeLists.txt (100%) rename config/{bebop2/sitl/target => ocpoc/shared}/apps/gps/src/CMakeLists.txt (100%) rename config/ocpoc/{quadx/target => shared}/apps/gps/src/gps_custom.c (100%) rename config/ocpoc/{quadx/target => shared}/apps/gps/src/gps_custom_shared.h (100%) rename config/ocpoc/{quadx/target => shared}/apps/gps/src/gps_interface_uart/gps_serial.c (99%) rename config/ocpoc/{quadx/target => shared}/apps/gps/src/gps_interface_uart/gps_serial.h (100%) rename config/{bebop2/sitl/target => ocpoc/shared}/apps/gps/src/gps_parser_ubx/gps_parser_ubx_ack.c (100%) rename config/{bebop2/sitl/target => ocpoc/shared}/apps/gps/src/gps_parser_ubx/gps_parser_ubx_ack.h (100%) rename config/{bebop2/sitl/target => ocpoc/shared}/apps/gps/src/gps_parser_ubx/gps_parser_ubx_cfg.c (100%) rename config/{bebop2/sitl/target => ocpoc/shared}/apps/gps/src/gps_parser_ubx/gps_parser_ubx_cfg.h (100%) rename config/ocpoc/{quadx/target => shared}/apps/gps/src/gps_parser_ubx/gps_parser_ubx_common.c (100%) rename config/ocpoc/{quadx/target => shared}/apps/gps/src/gps_parser_ubx/gps_parser_ubx_common.h (100%) rename config/{bebop2/sitl/target => ocpoc/shared}/apps/gps/src/gps_parser_ubx/gps_parser_ubx_mon.c (100%) rename config/{bebop2/sitl/target => ocpoc/shared}/apps/gps/src/gps_parser_ubx/gps_parser_ubx_mon.h (100%) rename config/{bebop2/sitl/target => ocpoc/shared}/apps/gps/src/gps_parser_ubx/gps_parser_ubx_nav.c (100%) rename config/{bebop2/sitl/target => ocpoc/shared}/apps/gps/src/gps_parser_ubx/gps_parser_ubx_nav.h (100%) rename config/{bebop2/sitl/target => ocpoc/shared}/apps/gps/src/gps_parser_ubx/gps_ubx_msg.h (100%) rename config/{bebop2/sitl/target => ocpoc/shared}/apps/gps/tables/gps_config.c (100%) rename config/ocpoc/{quadx/target => shared}/apps/hmc5883/CMakeLists.txt (100%) rename config/ocpoc/{quadx/target => shared}/apps/hmc5883/src/CMakeLists.txt (100%) rename config/ocpoc/{quadx/target => shared}/apps/hmc5883/src/hmc5883_custom.c (100%) rename config/ocpoc/{quadx/target => shared}/apps/hmc5883/src/hmc5883_i2c.h (100%) rename config/ocpoc/{quadx/target => shared}/apps/hmc5883/tables/hmc5883_config.c (100%) rename config/ocpoc/{quadx/target => shared}/apps/hmc5883/tables/hmc5883_config_default.c (100%) rename config/ocpoc/{quadx/target => shared}/apps/hmc5883/tables/hmc5883_config_dev_ocpoc.c (100%) rename config/{bebop2/sitl/target => ocpoc/shared}/apps/ld/CMakeLists.txt (100%) rename config/ocpoc/{s1000/target => shared}/apps/ld/tables/ld_config.c (100%) rename config/{bebop2/sitl/target => ocpoc/shared}/apps/nav/CMakeLists.txt (100%) rename config/ocpoc/{quadx/target => shared}/apps/nav/tables/nav_config.c (100%) rename config/{bebop2/sitl/target => ocpoc/shared}/apps/rcin/CMakeLists.txt (100%) rename config/{bebop2/sitl/target => ocpoc/shared}/apps/rcin/src/CMakeLists.txt (100%) rename config/ocpoc/{quadx/target => shared}/apps/rcin/src/rcin_custom.c (100%) rename config/ocpoc/{quadx/target => shared}/apps/rcin/src/rcin_sbus.h (100%) rename config/{bebop2/sitl/target => ocpoc/shared}/apps/rgbled/CMakeLists.txt (100%) rename config/{bebop2/sitl/target => ocpoc/shared}/apps/rgbled/src/CMakeLists.txt (100%) rename config/ocpoc/{quadx/target => shared}/apps/rgbled/src/rgbled_custom.c (100%) rename config/ocpoc/{quadx/target => shared}/apps/rgbled/src/rgbled_driver.h (100%) rename config/ocpoc/{quadx/target => shared}/apps/sch/CMakeLists.txt (100%) rename config/{bebop2/sitl/target => ocpoc/shared}/apps/sch/sch_custom_rt.c (100%) rename config/ocpoc/{quadx/target => shared}/apps/sch/tables/sch_def_msgtbl.c (100%) rename config/ocpoc/{s1000/target => shared}/apps/sch/tables/sch_def_schtbl.c (99%) rename config/ocpoc/{quadx/target => shared}/apps/sch/unit_test/sch_custom_test.c (99%) rename config/{bebop2/sitl/target => ocpoc/shared}/apps/sch/unit_test/sch_custom_test.h (100%) rename config/{bebop2/sitl/target => ocpoc/shared}/apps/sch/unit_test/sch_test_utils.c (100%) rename config/{bebop2/sitl/target => ocpoc/shared}/apps/sch/unit_test/sch_test_utils.h (100%) rename config/{bebop2/sitl/target => ocpoc/shared}/apps/sch/unit_test/sch_testrunner.c (100%) rename config/{bebop2/sitl/target => ocpoc/shared}/apps/sens/CMakeLists.txt (100%) rename config/ocpoc/{quadx/target => shared}/apps/sens/tables/sens_config.c (100%) rename config/{bebop2/sitl/target => ocpoc/shared}/apps/to/CMakeLists.txt (100%) rename config/{bebop2/sitl/target => ocpoc/shared}/apps/to/tables/to_backup_cfg.c (100%) rename config/{bebop2/sitl/target => ocpoc/shared}/apps/to/tables/to_udp_cfg.c (100%) rename config/{bebop2/sitl/target => ocpoc/shared}/apps/to/to_custom.c (100%) rename config/{bebop2/sitl/target => ocpoc/shared}/apps/to/to_custom_udp.h (100%) rename config/{bebop2/sitl/target => ocpoc/shared}/apps/to/unit_test/to_app_custom_test.c (100%) rename config/{bebop2/sitl/target => ocpoc/shared}/apps/to/unit_test/to_app_custom_test.h (100%) rename config/{bebop2/sitl/target => ocpoc/shared}/apps/to/unit_test/to_app_stubs.c (100%) rename config/{bebop2/sitl/target => ocpoc/shared}/apps/to/unit_test/to_app_stubs.h (100%) rename config/{bebop2/sitl/target => ocpoc/shared}/apps/to/unit_test/to_custom_test_utils.c (100%) rename config/{bebop2/sitl/target => ocpoc/shared}/apps/to/unit_test/to_custom_test_utils.h (100%) rename config/{bebop2/sitl/target => ocpoc/shared}/apps/to/unit_test/to_custom_testrunner.c (100%) rename config/{bebop2/sitl/target => ocpoc/shared}/apps/to/unit_test/to_platform_stubs.c (100%) rename config/{bebop2/sitl/target => ocpoc/shared}/apps/to/unit_test/to_platform_stubs.h (100%) rename config/{bebop2/sitl/target => ocpoc/shared}/apps/to/user_doxy.in (100%) rename config/{bebop2/sitl/target => ocpoc/shared}/apps/ulr/CMakeLists.txt (100%) rename config/{bebop2/sitl/target => ocpoc/shared}/apps/ulr/tables/ulr_config.c (100%) rename config/ocpoc/{quadx/target => shared}/apps/ulr/ulr_custom.cpp (100%) rename config/{bebop2/sitl/target => ocpoc/shared}/apps/vm/CMakeLists.txt (100%) rename config/{bebop2/sitl/target => ocpoc/shared}/apps/vm/tables/vm_config.c (100%) rename config/{bebop2/sitl/target => shared}/apps/ak8963/CMakeLists.txt (100%) rename config/{bebop2/sitl/target => shared}/apps/ak8963/src/CMakeLists.txt (100%) rename config/{bebop2/sitl/target => shared}/apps/ak8963/src/ak8963_custom.cpp (100%) rename config/{bebop2/sitl/target => shared}/apps/ak8963/src/ak8963_i2c.h (100%) rename config/{bebop2/sitl/target => shared}/apps/ak8963/tables/ak8963_config.c (100%) rename config/{bebop2/sitl/target => shared}/apps/amc/CMakeLists.txt (100%) rename config/{bebop2/sitl/target => shared}/apps/amc/amc_custom.cpp (100%) rename config/{bebop2/sitl/target => shared}/apps/amc/tables/amc_mixercfg.c (100%) rename config/{bebop2/sitl/target => shared}/apps/amc/tables/amc_pwmcfg.c (100%) rename config/{bebop2/sitl/target => shared}/apps/bat/CMakeLists.txt (100%) rename config/{bebop2/sitl/target => shared}/apps/bat/bat_custom.cpp (100%) rename config/{bebop2/sitl/target => shared}/apps/bat/tables/bat_config.c (100%) rename config/{bebop2/sitl/target => shared}/apps/cf/CMakeLists.txt (100%) rename config/{bebop2/sitl/target => shared}/apps/cf/tables/cf_cfgtable.c (100%) rename config/{ocpoc/s1000/target => shared}/apps/ci/CMakeLists.txt (100%) rename config/{bebop2/sitl/target => shared}/apps/ci/ci_custom.c (100%) rename config/{bebop2/sitl/target => shared}/apps/ci/tables/ci_config.c (100%) rename config/{bebop2/sitl/target => shared}/apps/ci/unit_test/ci-custom.supp (100%) rename config/{bebop2/sitl/target => shared}/apps/ci/unit_test/ci_custom_test.c (100%) rename config/{bebop2/sitl/target => shared}/apps/ci/unit_test/ci_custom_test.h (100%) rename config/{bebop2/sitl/target => shared}/apps/ci/unit_test/ci_mock_os_calls.c (100%) rename config/{bebop2/sitl/target => shared}/apps/ci/unit_test/ci_mock_os_calls.h (100%) rename config/{bebop2/sitl/target => shared}/apps/ci/unit_test/ci_test_utils.c (100%) rename config/{bebop2/sitl/target => shared}/apps/ci/unit_test/ci_test_utils.h (100%) rename config/{bebop2/sitl/target => shared}/apps/ci/unit_test/ci_testrunner.c (100%) rename config/{bebop2/sitl/target => shared}/apps/ds/CMakeLists.txt (100%) rename config/{bebop2/sitl/target => shared}/apps/ds/tables/ds_file_tbl.c (100%) rename config/{bebop2/sitl/target => shared}/apps/ds/tables/ds_filter_tbl.c (100%) rename config/{bebop2/sitl/target => shared}/apps/ea/CMakeLists.txt (100%) rename config/{bebop2/sitl/target => shared}/apps/ea/ea-custom-ut.supp (100%) rename config/{bebop2/sitl/target => shared}/apps/ea/ea-perfmon-ut.supp (100%) rename config/{bebop2/sitl/target => shared}/apps/ea/src/ea_custom.c (100%) rename config/{bebop2/sitl/target => shared}/apps/ea/unit_test/ea-custom-ut.supp (100%) rename config/{bebop2/sitl/target => shared}/apps/ea/unit_test/ea_custom_test.c (100%) rename config/{bebop2/sitl/target => shared}/apps/ea/unit_test/ea_custom_test.h (100%) rename config/{bebop2/sitl/target => shared}/apps/ea/unit_test/ea_mock_os_calls.c (100%) rename config/{bebop2/sitl/target => shared}/apps/ea/unit_test/ea_mock_os_calls.h (100%) rename config/{bebop2/sitl/target => shared}/apps/ea/unit_test/ea_perfmon_test.c (100%) rename config/{bebop2/sitl/target => shared}/apps/ea/unit_test/ea_perfmon_test.h (100%) rename config/{bebop2/sitl/target => shared}/apps/ea/unit_test/ea_perfmon_testrunner.c (100%) rename config/{bebop2/sitl/target => shared}/apps/ea/unit_test/ea_test_utils.c (100%) rename config/{bebop2/sitl/target => shared}/apps/ea/unit_test/ea_test_utils.h (100%) rename config/{bebop2/sitl/target => shared}/apps/ea/unit_test/ea_testrunner.c (100%) rename config/{bebop2/sitl/target => shared}/apps/ea/unit_test/fib.py (100%) rename config/{bebop2/sitl/target => shared}/apps/ea/unit_test/noop.py (100%) rename config/{bebop2/sitl/target => shared}/apps/ea/unit_test/sleep.py (100%) rename config/{bebop2/sitl/target => shared}/apps/flow/CMakeLists.txt (100%) rename config/{bebop2/sitl/target => shared}/apps/flow/tables/flow_config.c (100%) rename config/{ocpoc/quadx/target => shared}/apps/gps/CMakeLists.txt (100%) rename config/{ocpoc/quadx/target => shared}/apps/gps/src/CMakeLists.txt (100%) rename config/{bebop2/sitl/target => shared}/apps/gps/src/gps_custom.c (100%) rename config/{bebop2/sitl/target => shared}/apps/gps/src/gps_custom_shared.h (100%) rename config/{bebop2/sitl/target => shared}/apps/gps/src/gps_custom_sim_simple.c (100%) rename config/{ocpoc/s1000/target => shared}/apps/gps/src/gps_interface_uart/gps_serial.c (94%) rename config/{ocpoc/s1000/target => shared}/apps/gps/src/gps_interface_uart/gps_serial.h (92%) rename config/{ocpoc/quadx/target => shared}/apps/gps/src/gps_parser_ubx/gps_parser_ubx_ack.c (100%) rename config/{ocpoc/quadx/target => shared}/apps/gps/src/gps_parser_ubx/gps_parser_ubx_ack.h (100%) rename config/{ocpoc/quadx/target => shared}/apps/gps/src/gps_parser_ubx/gps_parser_ubx_cfg.c (100%) rename config/{ocpoc/quadx/target => shared}/apps/gps/src/gps_parser_ubx/gps_parser_ubx_cfg.h (100%) rename config/{bebop2/sitl/target => shared}/apps/gps/src/gps_parser_ubx/gps_parser_ubx_common.c (100%) rename config/{bebop2/sitl/target => shared}/apps/gps/src/gps_parser_ubx/gps_parser_ubx_common.h (100%) rename config/{ocpoc/quadx/target => shared}/apps/gps/src/gps_parser_ubx/gps_parser_ubx_mon.c (100%) rename config/{ocpoc/quadx/target => shared}/apps/gps/src/gps_parser_ubx/gps_parser_ubx_mon.h (100%) rename config/{ocpoc/quadx/target => shared}/apps/gps/src/gps_parser_ubx/gps_parser_ubx_nav.c (100%) rename config/{ocpoc/quadx/target => shared}/apps/gps/src/gps_parser_ubx/gps_parser_ubx_nav.h (100%) rename config/{ocpoc/quadx/target => shared}/apps/gps/src/gps_parser_ubx/gps_ubx_msg.h (100%) rename config/{ocpoc/quadx/target => shared}/apps/gps/tables/gps_config.c (100%) rename config/{ocpoc/s1000/target => shared}/apps/hmc5883/CMakeLists.txt (100%) rename config/{ocpoc/s1000/target => shared}/apps/hmc5883/src/CMakeLists.txt (100%) rename config/{ocpoc/s1000/target => shared}/apps/hmc5883/src/hmc5883_custom.c (100%) rename config/{ocpoc/s1000/target => shared}/apps/hmc5883/src/hmc5883_i2c.h (100%) rename config/{ocpoc/s1000/target => shared}/apps/hmc5883/tables/hmc5883_config.c (100%) rename config/{ocpoc/s1000/target => shared}/apps/hmc5883/tables/hmc5883_config_default.c (100%) rename config/{ocpoc/s1000/target => shared}/apps/hmc5883/tables/hmc5883_config_main_vehicle.c (100%) rename config/{ocpoc/quadx/target => shared}/apps/ld/CMakeLists.txt (100%) rename config/{bebop2/sitl/target => shared}/apps/ld/tables/ld_config.c (100%) rename config/{bebop2/sitl/target => shared}/apps/lgc/CMakeLists.txt (100%) rename config/{bebop2/sitl/target => shared}/apps/lgc/lgc_custom.cpp (100%) rename config/{bebop2/sitl/target => shared}/apps/lgc/tables/lgc_config.c (100%) rename config/{bebop2/sitl/target => shared}/apps/mac/CMakeLists.txt (100%) rename config/{bebop2/sitl/target => shared}/apps/mac/tables/mac_param.c (94%) rename config/{bebop2/sitl/target => shared}/apps/mpc/CMakeLists.txt (100%) rename config/{bebop2/sitl/target => shared}/apps/mpc/tables/mpc_config.c (100%) rename config/{bebop2/sitl/target => shared}/apps/mpu6050/CMakeLists.txt (100%) rename config/{bebop2/sitl/target => shared}/apps/mpu6050/src/CMakeLists.txt (100%) rename config/{bebop2/sitl/target => shared}/apps/mpu6050/src/mpu6050_custom.cpp (100%) rename config/{bebop2/sitl/target => shared}/apps/mpu6050/src/mpu6050_spi.h (100%) rename config/{bebop2/sitl/target => shared}/apps/mpu6050/tables/mpu6050_config.c (100%) rename config/{ocpoc/quadx/target => shared}/apps/mpu9250/CMakeLists.txt (100%) rename config/{ocpoc/quadx/target => shared}/apps/mpu9250/src/CMakeLists.txt (100%) rename config/{ocpoc/quadx/target => shared}/apps/mpu9250/src/mpu9250_custom.c (100%) rename config/{ocpoc/quadx/target => shared}/apps/mpu9250/src/mpu9250_spi.h (100%) rename config/{ocpoc/s1000/target => shared}/apps/mpu9250/tables/mpu9250_config.c (100%) rename config/{ocpoc/quadx/target => shared}/apps/mpu9250/tables/mpu9250_config_default.c (100%) rename config/{ocpoc/s1000/target => shared}/apps/mpu9250/tables/mpu9250_config_main_vehicle.c (100%) rename config/{bebop2/sitl/target => shared}/apps/ms5607/CMakeLists.txt (100%) rename config/{bebop2/sitl/target => shared}/apps/ms5607/src/CMakeLists.txt (100%) rename config/{bebop2/sitl/target => shared}/apps/ms5607/src/ms5607_custom.cpp (100%) rename config/{bebop2/sitl/target => shared}/apps/ms5607/tables/ms5607_config.c (100%) rename config/{ocpoc/quadx/target => shared}/apps/ms5611/CMakeLists.txt (100%) rename config/{ocpoc/quadx/target => shared}/apps/ms5611/src/CMakeLists.txt (100%) rename config/{ocpoc/quadx/target => shared}/apps/ms5611/src/ms5611_custom.c (100%) rename config/{ocpoc/quadx/target => shared}/apps/ms5611/src/ms5611_spi.h (100%) rename config/{ocpoc/quadx/target => shared}/apps/ms5611/tables/ms5611_config.c (100%) rename config/{ocpoc/quadx/target => shared}/apps/nav/CMakeLists.txt (100%) rename config/{bebop2/sitl/target => shared}/apps/nav/tables/nav_config.c (100%) rename config/{bebop2/sitl/target => shared}/apps/pe/CMakeLists.txt (100%) rename config/{bebop2/sitl/target => shared}/apps/pe/tables/pe_config.c (100%) rename config/{bebop2/sitl/target => shared}/apps/prm/CMakeLists.txt (100%) rename config/{bebop2/sitl/target => shared}/apps/prm/tables/prm_config.c (100%) rename config/{bebop2/sitl/target => shared}/apps/qae/CMakeLists.txt (100%) rename config/{bebop2/sitl/target => shared}/apps/qae/tables/qae_config.c (100%) rename config/{ocpoc/quadx/target => shared}/apps/rcin/CMakeLists.txt (100%) rename config/{ocpoc/quadx/target => shared}/apps/rcin/src/CMakeLists.txt (100%) rename config/{bebop2/sitl/target => shared}/apps/rcin/src/rcin_custom.c (100%) rename config/{bebop2/sitl/target => shared}/apps/rcin/src/rcin_sbus.h (100%) rename config/{ocpoc/quadx/target => shared}/apps/rgbled/CMakeLists.txt (100%) rename config/{ocpoc/quadx/target => shared}/apps/rgbled/src/CMakeLists.txt (100%) rename config/{bebop2/sitl/target => shared}/apps/rgbled/src/rgbled_custom.c (100%) rename config/{bebop2/sitl/target => shared}/apps/rgbled/src/rgbled_driver.h (100%) rename config/{bebop2/sitl/target => shared}/apps/sch/CMakeLists.txt (100%) rename config/{bebop2/sitl/target => shared}/apps/sch/sch_custom_ftrt.c (100%) rename config/{ocpoc/quadx/target => shared}/apps/sch/sch_custom_rt.c (100%) rename config/{bebop2/sitl/target => shared}/apps/sch/tables/sch_def_msgtbl.c (100%) rename config/{bebop2/sitl/target => shared}/apps/sch/tables/sch_def_schtbl.c (99%) rename config/{ocpoc/s1000/target => shared}/apps/sch/unit_test/sch_custom_test.c (99%) rename config/{ocpoc/quadx/target => shared}/apps/sch/unit_test/sch_custom_test.h (100%) create mode 100644 config/shared/apps/sch/unit_test/sch_test_utils.c create mode 100644 config/shared/apps/sch/unit_test/sch_test_utils.h rename config/{ocpoc/quadx/target => shared}/apps/sch/unit_test/sch_testrunner.c (100%) rename config/{ocpoc/quadx/target => shared}/apps/sens/CMakeLists.txt (100%) rename config/{bebop2/sitl/target => shared}/apps/sens/tables/sens_config.c (100%) rename config/{bebop2/sitl/target => shared}/apps/sim/CMakeLists.txt (100%) rename config/{bebop2/sitl/target => shared}/apps/sim/src/CMakeLists.txt (100%) rename config/{bebop2/sitl/target => shared}/apps/sim/src/sim_custom.c (100%) rename config/{bebop2/sitl/target => shared}/apps/sim/tables/sim_config.c (100%) rename config/{ocpoc/quadx/target => shared}/apps/to/CMakeLists.txt (100%) rename config/{ocpoc/quadx/target => shared}/apps/to/tables/to_backup_cfg.c (100%) rename config/{ocpoc/quadx/target => shared}/apps/to/tables/to_udp_cfg.c (100%) rename config/{ocpoc/quadx/target => shared}/apps/to/to_custom.c (100%) rename config/{ocpoc/quadx/target => shared}/apps/to/to_custom_udp.h (100%) rename config/{ocpoc/quadx/target => shared}/apps/to/unit_test/to_app_custom_test.c (100%) rename config/{ocpoc/quadx/target => shared}/apps/to/unit_test/to_app_custom_test.h (100%) rename config/{ocpoc/quadx/target => shared}/apps/to/unit_test/to_app_stubs.c (100%) rename config/{ocpoc/quadx/target => shared}/apps/to/unit_test/to_app_stubs.h (100%) rename config/{ocpoc/quadx/target => shared}/apps/to/unit_test/to_custom_test_utils.c (100%) rename config/{ocpoc/quadx/target => shared}/apps/to/unit_test/to_custom_test_utils.h (100%) rename config/{ocpoc/quadx/target => shared}/apps/to/unit_test/to_custom_testrunner.c (100%) rename config/{ocpoc/quadx/target => shared}/apps/to/unit_test/to_platform_stubs.c (100%) rename config/{ocpoc/quadx/target => shared}/apps/to/unit_test/to_platform_stubs.h (100%) rename config/{ocpoc/quadx/target => shared}/apps/to/user_doxy.in (100%) rename config/{ocpoc/quadx/target => shared}/apps/ulr/CMakeLists.txt (100%) rename config/{ocpoc/quadx/target => shared}/apps/ulr/tables/ulr_config.c (100%) rename config/{bebop2/sitl/target => shared}/apps/ulr/ulr_custom.cpp (100%) rename config/{bebop2/sitl/target => shared}/apps/vc/CMakeLists.txt (100%) rename config/{bebop2/sitl/target => shared}/apps/vc/src/CMakeLists.txt (100%) rename config/{bebop2/sitl/target => shared}/apps/vc/src/vc_custom.c (100%) rename config/{bebop2/sitl/target => shared}/apps/vc/src/vc_custom_shared.h (100%) rename config/{bebop2/sitl/target => shared}/apps/vc/src/vc_dev_io_udp/vc_dev_io_udp.c (100%) rename config/{bebop2/sitl/target => shared}/apps/vc/src/vc_dev_io_udp/vc_dev_io_udp.h (100%) rename config/{bebop2/sitl/target => shared}/apps/vc/src/vc_dev_io_v4l/vc_dev_io_v4l.c (100%) rename config/{bebop2/sitl/target => shared}/apps/vc/src/vc_dev_io_v4l/vc_dev_io_v4l.h (100%) rename config/{bebop2/sitl/target => shared}/apps/vc/src/vc_transmit_udp/vc_transmit_udp.c (100%) rename config/{bebop2/sitl/target => shared}/apps/vc/src/vc_transmit_udp/vc_transmit_udp.h (100%) rename config/{bebop2/sitl/target => shared}/apps/vc/unit_test/vc_app_stubs/vc_app_stubs.c (100%) rename config/{bebop2/sitl/target => shared}/apps/vc/unit_test/vc_app_stubs/vc_app_stubs.h (100%) rename config/{bebop2/sitl/target => shared}/apps/vc/unit_test/vc_custom_shared_test/vc_app_custom_shared_test.c (100%) rename config/{bebop2/sitl/target => shared}/apps/vc/unit_test/vc_custom_shared_test/vc_app_custom_shared_test.h (100%) rename config/{bebop2/sitl/target => shared}/apps/vc/unit_test/vc_custom_shared_test/vc_custom_shared_test_utils.c (100%) rename config/{bebop2/sitl/target => shared}/apps/vc/unit_test/vc_custom_shared_test/vc_custom_shared_test_utils.h (100%) rename config/{bebop2/sitl/target => shared}/apps/vc/unit_test/vc_custom_testrunner.c (100%) rename config/{bebop2/sitl/target => shared}/apps/vc/unit_test/vc_dev_io_udp_test/vc_app_custom_device_test.c (100%) rename config/{bebop2/sitl/target => shared}/apps/vc/unit_test/vc_dev_io_udp_test/vc_app_custom_device_test.h (100%) rename config/{bebop2/sitl/target => shared}/apps/vc/unit_test/vc_dev_io_udp_test/vc_custom_device_test_utils.c (100%) rename config/{bebop2/sitl/target => shared}/apps/vc/unit_test/vc_dev_io_udp_test/vc_custom_device_test_utils.h (100%) rename config/{bebop2/sitl/target => shared}/apps/vc/unit_test/vc_dev_io_v4l_test/vc_app_custom_device_test.c (100%) rename config/{bebop2/sitl/target => shared}/apps/vc/unit_test/vc_dev_io_v4l_test/vc_app_custom_device_test.h (100%) rename config/{bebop2/sitl/target => shared}/apps/vc/unit_test/vc_dev_io_v4l_test/vc_custom_device_test_utils.c (100%) rename config/{bebop2/sitl/target => shared}/apps/vc/unit_test/vc_dev_io_v4l_test/vc_custom_device_test_utils.h (100%) rename config/{bebop2/sitl/target => shared}/apps/vc/unit_test/vc_platform_stubs/vc_platform_stubs.c (100%) rename config/{bebop2/sitl/target => shared}/apps/vc/unit_test/vc_platform_stubs/vc_platform_stubs.h (100%) rename config/{bebop2/sitl/target => shared}/apps/vc/unit_test/vc_transmit_udp_test/vc_app_custom_transmit_test.c (100%) rename config/{bebop2/sitl/target => shared}/apps/vc/unit_test/vc_transmit_udp_test/vc_app_custom_transmit_test.h (100%) rename config/{bebop2/sitl/target => shared}/apps/vc/unit_test/vc_transmit_udp_test/vc_custom_transmit_test_utils.c (100%) rename config/{bebop2/sitl/target => shared}/apps/vc/unit_test/vc_transmit_udp_test/vc_custom_transmit_test_utils.h (100%) rename config/{ocpoc/quadx/target => shared}/apps/vm/CMakeLists.txt (100%) rename config/{ocpoc/quadx/target => shared}/apps/vm/tables/vm_config.c (100%) diff --git a/config/bebop2/inc/ae_platform_cfg.h b/config/bebop2/inc/ae_platform_cfg.h deleted file mode 100644 index 0cd966dd5..000000000 --- a/config/bebop2/inc/ae_platform_cfg.h +++ /dev/null @@ -1,122 +0,0 @@ -#ifndef AE_PLATFORM_CFG_H -#define AE_PLATFORM_CFG_H - -#ifdef __cplusplus -extern "C" { -#endif - -/* -** AE Platform Configuration Parameter Definitions -*/ - -/** \brief Mission specific version number for AE application -** -** \par Description: -** An application version number consists of four parts: -** major version number, minor version number, revision -** number and mission specific revision number. The mission -** specific revision number is defined here and the other -** parts are defined in "amc_version.h". -** -** \par Limits: -** Must be defined as a numeric value that is greater than -** or equal to zero. -*/ -#define AE_MISSION_REV (0) - -/** \brief Pipe depth for the Scheduler pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define AE_SCH_PIPE_DEPTH (2) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define AE_SCH_PIPE_NAME ("AE_SCH_PIPE") - -/** \brief The SB pend behavior type for the Scheduler pipe. -** -** \par Limits: -** One of: CFE_SB_POLL, CFE_SB_PEND_FOREVER, or the -** number of milliseconds to wait for a new message (recommended). -** Note, using CFE_SB_PEND_FOREVER may cause an unresponsive -** application if no messages arrive on this pipe. -*/ -#define AE_SCH_PIPE_PEND_TIME (2000) - -/** \brief The number of WAKEUP messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max limited to CFE_SB_MAX_PIPE_DEPTH-1. Note the -** AE_WAKEUP_MID_MAX_MSG_COUNT and AE_SEND_HK_MID_MAX_MSG_COUNT -** must be less than AE_SCH_PIPE_DEPTH. -*/ -#define AE_WAKEUP_MID_MAX_MSG_COUNT (1) - -/** \brief The number of SEND_HK messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. Note the -** AE_WAKEUP_MID_MAX_MSG_COUNT and AE_SEND_HK_MID_MAX_MSG_COUNT -** must be less than AE_SCH_PIPE_DEPTH. -*/ -#define AE_SEND_HK_MID_MAX_MSG_COUNT (1) - -/** \brief Pipe depth for the command pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define AE_CMD_PIPE_DEPTH (4) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define AE_CMD_PIPE_NAME ("AE_CMD_PIPE") - -/** \brief Pipe depth for the data pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define AE_DATA_PIPE_DEPTH (4) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define AE_DATA_PIPE_NAME ("AE_DATA_PIPE") - -/** \brief The config table default filename -** -** \par Limits: -** The length of each string, including the NULL terminator cannot exceed -** the #OS_MAX_PATH_LEN value. -*/ -#define AE_CONFIG_TABLE_FILENAME ("/cf/apps/ae_config.tbl") - -/** \brief The timeout value, in milliseconds, to wait for ES application startup sync. -** -** \par Limits: -** This parameter must be at least 1000 (ms). -*/ -#define AE_STARTUP_TIMEOUT_MSEC (1000) - - -#ifdef __cplusplus -} -#endif - -#endif /* AE_PLATFORM_CFG_H */ - -/************************/ -/* End of File Comment */ -/************************/ - diff --git a/config/bebop2/inc/ak8963_platform_cfg.h b/config/bebop2/inc/ak8963_platform_cfg.h deleted file mode 100644 index 67d50f0b9..000000000 --- a/config/bebop2/inc/ak8963_platform_cfg.h +++ /dev/null @@ -1,138 +0,0 @@ -#ifndef AK8963_PLATFORM_CFG_H -#define AK8963_PLATFORM_CFG_H - -#ifdef __cplusplus -extern "C" { -#endif - -#include "math.h" - -/* -** AK8963 Platform Configuration Parameter Definitions -*/ - -/** \brief Mission specific version number for AK8963 application -** -** \par Description: -** An application version number consists of four parts: -** major version number, minor version number, revision -** number and mission specific revision number. The mission -** specific revision number is defined here and the other -** parts are defined in "amc_version.h". -** -** \par Limits: -** Must be defined as a numeric value that is greater than -** or equal to zero. -*/ -#define AK8963_MISSION_REV (0) - -/** \brief Pipe depth for the Scheduler pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define AK8963_SCH_PIPE_DEPTH (2) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define AK8963_SCH_PIPE_NAME ("AK8963_SCH_PIPE") - -/** \brief The SB pend behavior type for the Scheduler pipe. -** -** \par Limits: -** One of: CFE_SB_POLL, CFE_SB_PEND_FOREVER, or the -** number of milliseconds to wait for a new message (recommended). -** Note, using CFE_SB_PEND_FOREVER may cause an unresponsive -** application if no messages arrive on this pipe. -*/ -#define AK8963_SCH_PIPE_PEND_TIME (2000) - -/** \brief Pipe depth for the params pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define AK8963_PARAM_PIPE_DEPTH (4) - -/** \brief Pipe name for the params pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define AK8963_PARAM_PIPE_NAME ("AK8963_PARAM_PIPE") - -/** \brief The number of WAKEUP messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max limited to CFE_SB_MAX_PIPE_DEPTH-1. Note the -** AK8963_WAKEUP_MID_MAX_MSG_COUNT and AK8963_SEND_HK_MID_MAX_MSG_COUNT -** must be less than AK8963_SCH_PIPE_DEPTH. -*/ -#define AK8963_WAKEUP_MID_MAX_MSG_COUNT (1) - -/** \brief The number of SEND_HK messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. Note the -** AK8963_WAKEUP_MID_MAX_MSG_COUNT and AK8963_SEND_HK_MID_MAX_MSG_COUNT -** must be less than AK8963_SCH_PIPE_DEPTH. -*/ -#define AK8963_SEND_HK_MID_MAX_MSG_COUNT (1) - -/** \brief Pipe depth for the command pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define AK8963_CMD_PIPE_DEPTH (4) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define AK8963_CMD_PIPE_NAME ("AK8963_CMD_PIPE") - -/** \brief Pipe depth for the data pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define AK8963_DATA_PIPE_DEPTH (4) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define AK8963_DATA_PIPE_NAME ("AK8963_DATA_PIPE") - -/** \brief The config table default filename -** -** \par Limits: -** The length of each string, including the NULL terminator cannot exceed -** the #OS_MAX_PATH_LEN value. -*/ -#define AK8963_CONFIG_TABLE_FILENAME ("/cf/apps/ak8963_config.tbl") - -/** \brief The timeout value, in milliseconds, to wait for ES application startup sync. -** -** \par Limits: -** This parameter must be at least 1000 (ms). -*/ -#define AK8963_STARTUP_TIMEOUT_MSEC (1000) - - -#ifdef __cplusplus -} -#endif - -#endif /* AK8963_PLATFORM_CFG_H */ - -/************************/ -/* End of File Comment */ -/************************/ - diff --git a/config/bebop2/inc/amc_platform_cfg.h b/config/bebop2/inc/amc_platform_cfg.h deleted file mode 100644 index b3099326d..000000000 --- a/config/bebop2/inc/amc_platform_cfg.h +++ /dev/null @@ -1,130 +0,0 @@ -#ifndef AMC_PLATFORM_CFG_H -#define AMC_PLATFORM_CFG_H - -#ifdef __cplusplus -extern "C" { -#endif - -/* -** amc Platform Configuration Parameter Definitions -*/ - -/** \brief Mission specific version number for AMC application -** -** \par Description: -** An application version number consists of four parts: -** major version number, minor version number, revision -** number and mission specific revision number. The mission -** specific revision number is defined here and the other -** parts are defined in "amc_version.h". -** -** \par Limits: -** Must be defined as a numeric value that is greater than -** or equal to zero. -*/ -#define AMC_MISSION_REV (0) - -/** \brief Pipe depth for the Scheduler pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define AMC_SCH_PIPE_DEPTH (15) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define AMC_SCH_PIPE_NAME ("AMC_SCH_PIPE") - -/** \brief The SB pend behavior type for the Scheduler pipe. -** -** \par Limits: -** One of: CFE_SB_POLL, CFE_SB_PEND_FOREVER, or the -** number of milliseconds to wait for a new message (recommended). -** Note, using CFE_SB_PEND_FOREVER may cause an unresponsive -** application if no messages arrive on this pipe. -*/ -#define AMC_SCH_PIPE_PEND_TIME (2000) - -/** \brief The number of WAKEUP messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max limited to CFE_SB_MAX_PIPE_DEPTH-1. Note the -** AMC_SCH_PIPE_WAKEUP_RESERVED and AMC_SCH_PIPE_SEND_HK_RESERVED -** must be less than AMC_SCH_PIPE_DEPTH. -*/ -#define AMC_SCH_PIPE_WAKEUP_RESERVED (1) - -/** \brief The number of SEND_HK messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. Note the -** AMC_SCH_PIPE_WAKEUP_RESERVED and AMC_SCH_PIPE_SEND_HK_RESERVED -** must be less than AMC_SCH_PIPE_DEPTH. -*/ -#define AMC_SCH_PIPE_SEND_HK_RESERVED (1) - -/** \brief Pipe depth for the command pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define AMC_CMD_PIPE_DEPTH (4) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define AMC_CMD_PIPE_NAME ("AMC_CMD_PIPE") - -/** \brief Pipe depth for the data pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define AMC_PARAM_PIPE_DEPTH (4) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define AMC_PARAM_PIPE_NAME ("AMC_PARAM_PIPE") - -/** \brief The config table default filename -** -** \par Limits: -** The length of each string, including the NULL terminator cannot exceed -** the #OS_MAX_PATH_LEN value. -*/ -#define AMC_PWM_CONFIG_TABLE_FILENAME ("/cf/apps/amc_pwmcfg.tbl") - -#define AMC_MIXER_CONFIG_TABLE_FILENAME ("/cf/apps/amc_mixercfg.tbl") - -/** \brief The timeout value, in milliseconds, to wait for ES application startup sync. -** -** \par Limits: -** This parameter must be at least 1000 (ms). -*/ -#define AMC_STARTUP_TIMEOUT_MSEC (1000) - -/* TODO: Add Doxygen markup. */ -#define AMC_MAX_MOTOR_OUTPUTS (4) - -#define AMC_MAX_PARAMS (3) - - - -#ifdef __cplusplus -} -#endif - -#endif /* AMC_PLATFORM_CFG_H */ - -/************************/ -/* End of File Comment */ -/************************/ - diff --git a/config/bebop2/inc/bat_platform_cfg.h b/config/bebop2/inc/bat_platform_cfg.h deleted file mode 100644 index 10a8ed217..000000000 --- a/config/bebop2/inc/bat_platform_cfg.h +++ /dev/null @@ -1,112 +0,0 @@ -#ifndef BAT_PLATFORM_CFG_H -#define BAT_PLATFORM_CFG_H - -#ifdef __cplusplus -extern "C" { -#endif - -#define BAT_LISTENER_TASK_FLAGS OS_ENABLE_CORE_0 - -/* -** BAT Platform Configuration Parameter Definitions -*/ - -/** \brief Mission specific version number for BAT application -** -** \par Description: -** An application version number consists of four parts: -** major version number, minor version number, revision -** number and mission specific revision number. The mission -** specific revision number is defined here and the other -** parts are defined in "amc_version.h". -** -** \par Limits: -** Must be defined as a numeric value that is greater than -** or equal to zero. -*/ -#define BAT_MISSION_REV (0) - -/** \brief Pipe depth for the Scheduler pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define BAT_SCH_PIPE_DEPTH (3) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define BAT_SCH_PIPE_NAME ("BAT_SCH_PIPE") - -/** \brief The SB pend behavior type for the Scheduler pipe. -** -** \par Limits: -** One of: CFE_SB_POLL, CFE_SB_PEND_FOREVER, or the -** number of milliseconds to wait for a new message (recommended). -** Note, using CFE_SB_PEND_FOREVER may cause an unresponsive -** application if no messages arrive on this pipe. -*/ -#define BAT_SCH_PIPE_PEND_TIME (2000) - -/** \brief The number of WAKEUP messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max limited to CFE_SB_MAX_PIPE_DEPTH-1. Note the -** BAT_WAKEUP_MID_MAX_MSG_COUNT and BAT_SEND_HK_MID_MAX_MSG_COUNT -** must be less than BAT_SCH_PIPE_DEPTH. -*/ -#define BAT_WAKEUP_MID_MAX_MSG_COUNT (1) - -/** \brief The number of SEND_HK messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. Note the -** BAT_WAKEUP_MID_MAX_MSG_COUNT and BAT_SEND_HK_MID_MAX_MSG_COUNT -** must be less than BAT_SCH_PIPE_DEPTH. -*/ -#define BAT_SEND_HK_MID_MAX_MSG_COUNT (1) - -/** \brief Pipe depth for the command pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define BAT_CMD_PIPE_DEPTH (4) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define BAT_CMD_PIPE_NAME ("BAT_CMD_PIPE") - -/** \brief The config table default filename -** -** \par Limits: -** The length of each string, including the NULL terminator cannot exceed -** the #OS_MAX_PATH_LEN value. -*/ -#define BAT_CONFIG_TABLE_FILENAME ("/cf/apps/bat_config.tbl") - -/** \brief The timeout value, in milliseconds, to wait for ES application startup sync. -** -** \par Limits: -** This parameter must be at least 1000 (ms). -*/ -#define BAT_STARTUP_TIMEOUT_MSEC (1000) - -/** \brief BAT Child task stack size */ -#define BAT_LISTENER_TASK_STACK_SIZE (16000) - -#ifdef __cplusplus -} -#endif - -#endif /* BAT_PLATFORM_CFG_H */ - -/************************/ -/* End of File Comment */ -/************************/ - diff --git a/config/bebop2/inc/cf_msgids.h b/config/bebop2/inc/cf_msgids.h deleted file mode 100644 index 820de96d4..000000000 --- a/config/bebop2/inc/cf_msgids.h +++ /dev/null @@ -1,10 +0,0 @@ -#ifndef CF_MSGIDS_H -#define CF_MSGIDS_H - -#include "msg_ids.h" - -#endif /* CF_MSGIDS_H */ - -/************************/ -/* End of File Comment */ -/************************/ diff --git a/config/bebop2/inc/cf_platform_cfg.h b/config/bebop2/inc/cf_platform_cfg.h deleted file mode 100644 index d99eaa728..000000000 --- a/config/bebop2/inc/cf_platform_cfg.h +++ /dev/null @@ -1,373 +0,0 @@ -#ifndef CF_PLATFORM_CFG_H -#define CF_PLATFORM_CFG_H - -/************************************************************************* -** Macro definitions -**************************************************************************/ - -/** -** \cfcfg Application Pipe Depth -** -** \par Description: -** Dictates the pipe depth of the cf command pipe. -** -** \par Limits: -** The minimum size of this paramater is 1 -** The maximum size dictated by cFE platform configuration -** parameter is CFE_SB_MAX_PIPE_DEPTH -*/ -#define CF_PIPE_DEPTH 40 - - -/** -** \cfcfg Application Pipe Name -** -** \par Description: -** Dictates the pipe name of the cf command pipe. -** -** \par Limits: -** -*/ -#define CF_PIPE_NAME "CF_CMD_PIPE" - - -/** -** \cfcfg Maximum Simulataneous Transactions -** -** \par Description: -** Dictates max number of transactions (uplink and downlink) -** that can be in progress at any given time. -** -** \par Limits: -** -*/ -#define CF_MAX_SIMULTANEOUS_TRANSACTIONS 100 - - - -/** -** \cfcfg Uplink PDU Data Buffer Size -** -** \par Description: -** This parameter sets the statically allocated size (in bytes) of the -** incoming PDU buffer. This buffer will be used to hold the pdu hdr and -** data portion of the incoming PDUs. Incoming PDUs are enclosed in a CCSDS -** packet. This parameter should not include the size of the CCSDS pkt hdr. -** -** \par Limits: -** Must be greater than or equal to the sum of the ground engine parameter -** outgoing-file-chunk-size, pdu hdr size and the 4 bytes of 'offset' in -** file-data pdus. Upper limit of 64K derived from 16 bit PDU header field -** named 'PDU Data Field Length'. -** This parameter must be less-than or equal-to the outgoing pdu buffer. -** -** -*/ -#define CF_INCOMING_PDU_BUF_SIZE 512 - - - -/** -** \cfcfg Outgoing PDU Data Buffer Size -** -** \par Description: -** This parameter sets the statically allocated size (in bytes) of the -** outgoing PDU buffer. This buffer will be used to hold the pdu hdr and -** data portion of the outgoing PDUs. Outgoing PDUs are enclosed in a CCSDS -** packet. This parameter should not include the size of the CCSDS pkt hdr. -** -** \par Limits: -** This parameter will put an upper limit on the table parameter -** 'outgoing_file_chunk_size'. The max 'outgoing_file_chunk_size' allowed -** will be CF_OUTGOING_PDU_BUF_SIZE - (12 + 4) The 12 and 4 are pdu hdr -** size and offset field in file-data pdu, respectively. -** This parameter has an upper limit of 64K derived from 16 bit PDU header -** field named 'PDU Data Field Length'. -** This parameter must be greater-than or equal-to the incoming pdu buffer. -** -** -*/ -#define CF_OUTGOING_PDU_BUF_SIZE 2048 - - -/** -** \cfcfg Path name and file prefix of the engine temp files -** -** \par Description: -** The receiving engine constructs all files in a temporary file. This -** parameter specifies the path and base filename of the temporary files. -** The engine appends a sequence number to this parameter to get a complete -** filename. -** -** \par Limits: -** - The length of this string, including the NULL terminator cannot exceed -** the #OS_MAX_PATH_LEN value. -** - The last character should not be a slash. -** -*/ -#define CF_ENGINE_TEMP_FILE_PREFIX "/ram/cftmp" - -/** -** \cfcfg Name of the CF Configuration Table -** -** \par Description: -** This parameter defines the name of the CF Configuration Table. -** -** \par Limits -** The length of this string, including the NULL terminator cannot exceed -** the #OS_MAX_PATH_LEN value. -*/ -#define CF_CONFIG_TABLE_NAME "ConfigTable" - - -/** -** \cfcfg CF Configuration Table Filename -** -** \par Description: -** The value of this constant defines the filename of the CF Config Table -** -** \par Limits -** The length of this string, including the NULL terminator cannot exceed -** the #OS_MAX_PATH_LEN value. -*/ -#define CF_CONFIG_TABLE_FILENAME "/cf/apps/cf_cfgtable.tbl" - - -/** -** \cfcfg Number of Input Channels -** -** \par Description: -** Defines the number of input channels -** defined in the configuration table. Input channels were added to the -** design to support class 2 file receives from multiple peers. It is -** necessary for the code to know what output channel should be used for -** responses (ACK-EOF,NAK, etc) of incoming, class 2 transactions. -** Each input channel has a dedicated MsgId for incoming PDUs and an output -** channel for responses of class 2, file-receive transactions. -** -** \par Limits -** Lower Limit of 1, Upper limit of 255. -** -*/ -#define CF_NUM_INPUT_CHANNELS 1 - - -/** -** \cfcfg Max Number of Playback Output Channels -** -** \par Description: -** Defines the max number of playback output channels that may ever be -** defined in the configuration table. Refer to the configuration table for -** more details about playback output channels. -** -** \par Limits -** Lower Limit of 1, Upper limit of 255. -** -** \par Notes: -** The CF configuration table must have an entry for this number of -** playback channels, but some may be marked as not-in-use. This saves -** having to recompile and reload a new CF Application when a playback -** channel is added. -*/ -#define CF_MAX_PLAYBACK_CHANNELS 2 - - -/** -** \cfcfg Max Number of Polling(Hot) Directories per Playback Output Channel -** -** \par Description: -** Defines the max number of polling directories that may ever be defined -** in the configuration table. A polling directory is a directory that -** is periodically checked for playback files. Files found in the polling -** directory are immediately placed on the playback pending queue for -** downlink. -** -** \par Limits: -** Lower limit of 1, Upper limit of 255. -** -** \par Notes: -** The CF configuration table must have an entry for this number of polling -** directories, but some may be marked as not-in-use. This saves having to -** recompile and reload a new CF Application when a polling directory is -** added. -** -*/ -#define CF_MAX_POLLING_DIRS_PER_CHAN 8 - - -/** -** \cfcfg Number of bytes in the CF Memory Pool -** -** \par Description: -** The CF memory pool contains the memory needed to hold information for -** each transaction. The info for each transaction is defined by a -** CF_QueueEntry_t. The number of CF_QueueEntry_t's needed is based on: -** -** UplinkHistoryQDepth + CF_MAX_SIMULTANEOUS_TRANSACTIONS + -** ((CF_MAX_PLAYBACK_CHANNELS * (PendingQDepth + HistoryQDepth)) -** -** Lower case variables are defined in config table, upper case params are -** defined in platform config file (cf_platform_cfg.h) -** -** See CF Housekeeping page for memory utilization details -** -** -** \par Limits -** Lower Limit of 256, Upper limit of 4 Gigabytes -*/ -#define CF_MEMORY_POOL_BYTES 32768 - - -/** -** \cfcfg Default Queue Information Filename -** -** \par Description: -** The value of this constant defines the filename used to store the CF -** queue information. This filename is used only when no filename is -** specified in the command. -** -** \par Limits -** The length of each string, including the NULL terminator cannot exceed -** the OS_MAX_PATH_LEN value. -*/ -#define CF_DEFAULT_QUEUE_INFO_FILENAME "/ram/cf_queue_info.dat" - - -/** -** \cfcfg CF Event Filtering -** -** \par Description: -** This group of configuration parameters dictates what CF events will be -** filtered through EVS. The filtering will begin after the CF app -** initializes and stay in effect until changed via EVS command. -** Mark all unused event Id values and mask values to zero -** eg. #define CF_FILTERED_EVENT1 0 -** #define CF_FILTER_MASK1 0 -** To filter the event, set the mask value to CFE_EVS_FIRST_ONE_STOP -** To disable filtering of the event, set mask value to CFE_EVS_NO_FILTER -** -** \par Limits -** These parameters have a lower limit of 0 and an upper limit of 65535. -*/ - -#define CF_FILTERED_EVENT1 CF_IN_TRANS_START_EID -#define CF_FILTER_MASK1 CFE_EVS_NO_FILTER - -#define CF_FILTERED_EVENT2 CF_IN_TRANS_OK_EID -#define CF_FILTER_MASK2 CFE_EVS_NO_FILTER - -#define CF_FILTERED_EVENT3 CF_OUT_TRANS_START_EID -#define CF_FILTER_MASK3 CFE_EVS_NO_FILTER - -#define CF_FILTERED_EVENT4 CF_OUT_TRANS_OK_EID -#define CF_FILTER_MASK4 CFE_EVS_NO_FILTER - -#define CF_FILTERED_EVENT5 0 -#define CF_FILTER_MASK5 CFE_EVS_NO_FILTER - -#define CF_FILTERED_EVENT6 0 -#define CF_FILTER_MASK6 CFE_EVS_NO_FILTER - -#define CF_FILTERED_EVENT7 0 -#define CF_FILTER_MASK7 CFE_EVS_NO_FILTER - -#define CF_FILTERED_EVENT8 0 -#define CF_FILTER_MASK8 CFE_EVS_NO_FILTER - - - -/** -** \cfcfg Time to wait for all apps to be started (in milliseconds) -** -** \par Description: -** Dictates the timeout for the #CFE_ES_WaitForStartupSync call that -** CF uses to ensure that TO or the downlink App has completed it's -** initialization which includes creating the semaphore needed by CF. -** -** \par Limits -** This parameter can't be larger than an unsigned 32 bit -** integer (4294967295). -** -** This should be greater than or equal to the Startup Sync timeout for -** any application in the Application Monitor Table. -*/ -#define CF_STARTUP_SYNC_TIMEOUT 65000 - - -/** -** \cfcfg Use fixed size packets (for outgoing PDUs) or not. -** -** \par Description: -** When sending PDUs, CF can be configured to place the PDUs in fixed-size -** pkts or let the PDU size determine the pkt size. The value defined -** must correspond to the CCSDS Total Message size which includes the PDU -** header, the CCSDS header and data. -** Set this value to 0 for variable pkt sizes. -** -** \par Limits -** This parameter can't be larger than CFE_SB_MAX_SB_MSG_SIZE (typically -** set to 32K or 64K bytes) -** -** If non-zero, this should be greater than or equal to the size needed to -** hold the largest PDU expected to be sent by the engine (typically a -** file data PDU which is derived from the CF table cfg param -** "OutgoingFileChunkSize"). -*/ -#define CF_SEND_FIXED_SIZE_PKTS 0 - - -/** -** \cfcfg Auto-Suspend, max transactions to suspend -** -** \par Description: -** When auto suspend is enabled, after EOF is sent the transaction number -** is logged in a buffer. The buffer size is defined in this parameter. -** After the following wakeup cmd is received, cF will check this buffer -** for transactions to suspend. They cannot be suspended at the time the -** EOF is sent because the engine is not designed to re-entrant. -** -** \par Limits -** This parameter must be greater than zero and can't be larger than an -** unsigned 32 bit integer (4294967295). -*/ -#define CF_AUTOSUSPEND_MAX_TRANS 1 - - - - -/** \cfcfg Mission specific version number for CF application -** -** \par Description: -** An application version number consists of four parts: -** major version number, minor version number, revision -** number and mission specific revision number. The mission -** specific revision number is defined here and the other -** parts are defined in "cf_version.h". -** -** \par Limits: -** Must be defined as a numeric value that is greater than -** or equal to zero. -*/ -#define CF_MISSION_REV 0 - - -/** \cfcfg Compile-time debug switch for CF application -** -** \par Description: -** CF_DEBUG should NOT be defined under normal conditions. It is to be used -** as a safety net during development, when a uart terminal is connected to -** the processor. When the code is compiled with CF_DEBUG defined, the code -** will issue OS_printfs in areas that would otherwise be quiet. -** -** \par Limits: -** Must be defined or commented out. -*/ -/* #define CF_DEBUG */ - - - -#endif /* CF_PLATFORM_CFG_H */ - -/************************/ -/* End of File Comment */ -/************************/ diff --git a/config/bebop2/inc/cfe_msgids.h b/config/bebop2/inc/cfe_msgids.h deleted file mode 100644 index 5a7b5231d..000000000 --- a/config/bebop2/inc/cfe_msgids.h +++ /dev/null @@ -1,58 +0,0 @@ -#ifndef CFE_MSGIDS_H -#define CFE_MSGIDS_H - -/* -** Includes -*/ - -#include "cfe_mission_cfg.h" - -/* -** cFE Command Message Id's -*/ -#define CFE_EVS_CMD_MID CFE_CMD_MID_BASE_CPU1 + CFE_EVS_CMD_MSG /* 0x1801 */ - /* Message ID 0x1802 is available */ -#define CFE_SB_CMD_MID CFE_CMD_MID_BASE_CPU1 + CFE_SB_CMD_MSG /* 0x1803 */ -#define CFE_TBL_CMD_MID CFE_CMD_MID_BASE_CPU1 + CFE_TBL_CMD_MSG /* 0x1804 */ -#define CFE_TIME_CMD_MID CFE_CMD_MID_BASE_CPU1 + CFE_TIME_CMD_MSG /* 0x1805 */ -#define CFE_ES_CMD_MID CFE_CMD_MID_BASE_CPU1 + CFE_ES_CMD_MSG /* 0x1806 */ - -#define CFE_ES_SEND_HK_MID CFE_CMD_MID_BASE_CPU1 + CFE_ES_SEND_HK_MSG /* 0x1808 */ -#define CFE_EVS_SEND_HK_MID CFE_CMD_MID_BASE_CPU1 + CFE_EVS_SEND_HK_MSG /* 0x1809 */ - /* Message ID 0x180A is available */ -#define CFE_SB_SEND_HK_MID CFE_CMD_MID_BASE_CPU1 + CFE_SB_SEND_HK_MSG /* 0x180B */ -#define CFE_TBL_SEND_HK_MID CFE_CMD_MID_BASE_CPU1 + CFE_TBL_SEND_HK_MSG /* 0x180C */ -#define CFE_TIME_SEND_HK_MID CFE_CMD_MID_BASE_CPU1 + CFE_TIME_SEND_HK_MSG /* 0x180D */ - -#define CFE_TIME_TONE_CMD_MID CFE_CMD_MID_BASE_CPU1 + CFE_TIME_TONE_CMD_MSG /* 0x1810 */ -#define CFE_TIME_1HZ_CMD_MID CFE_CMD_MID_BASE_CPU1 + CFE_TIME_1HZ_CMD_MSG /* 0x1811 */ - - -/* -** cFE Global Command Message Id's -*/ -#define CFE_TIME_DATA_CMD_MID CFE_CMD_MID_BASE_GLOB + CFE_TIME_DATA_CMD_MSG /* 0x1860 */ -#define CFE_TIME_FAKE_CMD_MID CFE_CMD_MID_BASE_GLOB + CFE_TIME_FAKE_CMD_MSG /* 0x1861 */ -#define CFE_TIME_SEND_CMD_MID CFE_CMD_MID_BASE_GLOB + CFE_TIME_SEND_CMD_MSG /* 0x1862 */ - - -/* -** CFE Telemetry Message Id's -*/ -#define CFE_ES_HK_TLM_MID CFE_TLM_MID_BASE_CPU1 + CFE_ES_HK_TLM_MSG /* 0x0800 */ -#define CFE_EVS_HK_TLM_MID CFE_TLM_MID_BASE_CPU1 + CFE_EVS_HK_TLM_MSG /* 0x0801 */ - /* Message ID 0x0802 is available */ -#define CFE_SB_HK_TLM_MID CFE_TLM_MID_BASE_CPU1 + CFE_SB_HK_TLM_MSG /* 0x0803 */ -#define CFE_TBL_HK_TLM_MID CFE_TLM_MID_BASE_CPU1 + CFE_TBL_HK_TLM_MSG /* 0x0804 */ -#define CFE_TIME_HK_TLM_MID CFE_TLM_MID_BASE_CPU1 + CFE_TIME_HK_TLM_MSG /* 0x0805 */ -#define CFE_TIME_DIAG_TLM_MID CFE_TLM_MID_BASE_CPU1 + CFE_TIME_DIAG_TLM_MSG /* 0x0806 */ -#define CFE_EVS_EVENT_MSG_MID CFE_TLM_MID_BASE_CPU1 + CFE_EVS_EVENT_MSG_MSG /* 0x0808 */ -#define CFE_SB_STATS_TLM_MID CFE_TLM_MID_BASE_CPU1 + CFE_SB_STATS_TLM_MSG /* 0x080A */ -#define CFE_ES_APP_TLM_MID CFE_TLM_MID_BASE_CPU1 + CFE_ES_APP_TLM_MSG /* 0x080B */ -#define CFE_TBL_REG_TLM_MID CFE_TLM_MID_BASE_CPU1 + CFE_TBL_REG_TLM_MSG /* 0x080C */ -#define CFE_SB_ALLSUBS_TLM_MID CFE_TLM_MID_BASE_CPU1 + CFE_SB_ALLSUBS_TLM_MSG /* 0x080D */ -#define CFE_SB_ONESUB_TLM_MID CFE_TLM_MID_BASE_CPU1 + CFE_SB_ONESUB_TLM_MSG /* 0x080E */ -#define CFE_ES_SHELL_TLM_MID CFE_TLM_MID_BASE_CPU1 + CFE_ES_SHELL_TLM_MSG /* 0x080F */ -#define CFE_ES_MEMSTATS_TLM_MID CFE_TLM_MID_BASE_CPU1 + CFE_ES_MEMSTATS_TLM_MSG /* 0x0810 */ - -#endif diff --git a/config/bebop2/inc/cfe_platform_cfg.h b/config/bebop2/inc/cfe_platform_cfg.h deleted file mode 100644 index aa22ccd6b..000000000 --- a/config/bebop2/inc/cfe_platform_cfg.h +++ /dev/null @@ -1,1770 +0,0 @@ -#ifndef CFE_PLATFORM_CFG_H -#define CFE_PLATFORM_CFG_H - -/* -** Allow reference to CFE_SPACECRAFT_ID (see CFE_TBL_VALID_ definitions below) -*/ -#include "cfe_mission_cfg.h" - -/* -** CPU Id for target Processor -*/ -#define CFE_CPU_ID 1 - -/* -** CPU Name for target Processor -*/ -#define CFE_CPU_NAME "CPU1" - -/** -** \cfesbcfg Maximum Number of Unique Message IDs SB Routing Table can hold -** -** \par Description: -** Dictates the maximum number of unique MsgIds the SB routing table will hold. -** This constant has a direct affect on the size of SB's tables and arrays. -** Keeping this count as low as possible will save memory. -** To see the run-time, high-water mark and the current utilization figures -** regarding this parameter, send an SB command to 'Send Statistics Pkt'. -** -** \par Limits -** This parameter has a lower limit of 1 and an upper limit of 1024. -** -*/ -#define CFE_SB_MAX_MSG_IDS 256 - - -/** -** \cfesbcfg Maximum Number of Unique Pipes SB Routing Table can hold -** -** \par Description: -** Dictates the maximum number of unique Pipes the SB routing table will hold. -** This constant has a direct affect on the size of SB's tables and arrays. -** Keeping this count as low as possible will save memory. -** To see the run-time, high-water mark and the current utilization figures -** regarding this parameter, send an SB command to 'Send Statistics Pkt'. -** -** \par Limits -** This parameter has a lower limit of 1 and an upper limit of 255. -** This parameter must also be less than or equal to OS_MAX_QUEUES -** -*/ -#define CFE_SB_MAX_PIPES 255 - - -/** -** \cfesbcfg Maximum Number of unique local destinations a single MsgId can have -** -** \par Description: -** Dictates the maximum number of unique local destinations a single MsgId can -** have. -** -** \par Limits -** This parameter has a lower limit of 1 and an upper limit of 64. -** -*/ -#define CFE_SB_MAX_DEST_PER_PKT 16 - - -/** -** \cfesbcfg Default Subscription Message Limit -** -** \par Description: -** Dictates the default Message Limit when using the #CFE_SB_Subscribe API. This will -** limit the number of messages with a specific message ID that can be received through -** a subscription. This only changes the default; other message limits can be set on a per -** subscription basis using #CFE_SB_SubscribeEx . -** -** \par Limits -** This parameter has a lower limit of 4 and an upper limit of 65535. -** -*/ -#define CFE_SB_DEFAULT_MSG_LIMIT 4 - - -/** -** \cfesbcfg Size of the SB buffer memory pool -** -** \par Description: -** Dictates the size of the SB memory pool. For each message the SB -** sends, the SB dynamically allocates from this memory pool, the memory needed -** to process the message. The memory needed to process each message is msg -** size + msg descriptor(#CFE_SB_BufferD_t). This memory pool is also used -** to allocate destination descriptors (#CFE_SB_DestinationD_t) during the -** subscription process. -** To see the run-time, high-water mark and the current utilization figures -** regarding this parameter, send an SB command to 'Send Statistics Pkt'. -** Some memory statistics have been added to the SB housekeeping packet. -** NOTE: It is important to monitor these statistics to ensure the desired -** memory margin is met. -** -** \par Limits -** This parameter has a lower limit of 512 and an upper limit 4.29G bytes. -** -*/ -#define CFE_SB_BUF_MEMORY_BYTES 524288 - - -/** -** \cfesbcfg Maximum depth allowed when creating an SB pipe -** -** \par Description: -** The value of this constant dictates the maximum pipe depth that an -** application may request. The pipe depth is given as a paramter in the -** #CFE_SB_CreatePipe API. -** -** \par Limits -** This parameter has a lower limit of 1 and an upper limit of 65535. -*/ -#define CFE_SB_MAX_PIPE_DEPTH 256 - - -/** -** \cfesbcfg Highest Valid Message Id -** -** \par Description: -** The value of this constant dictates the size of the SB message map. The SB -** messsage map is a lookup table that provides the routing table index for -** fast access into the routing table.The default setting of 0x1FFF was chosen -** to save memory for CCSDS implementations where the CCSDS Version number -** (3 MSB's of MsgId) would remain constant throughout the mission. This -** reduces the message map from 128Kbytes to 16Kbytes.See CFE_FSW_DCR 504 for -** more details. -** -** \par Limits -** This parameter has a lower limit of 1 and an upper limit of 0xFFFF. -*/ -#define CFE_SB_HIGHEST_VALID_MSGID 0x1FFF - - -/** -** \cfesbcfg Default Routing Information Filename -** -** \par Description: -** The value of this constant defines the filename used to store the software -** bus routing information. This filename is used only when no filename is -** specified in the command. -** -** \par Limits -** The length of each string, including the NULL terminator cannot exceed the -** #OS_MAX_PATH_LEN value. -*/ -#define CFE_SB_DEFAULT_ROUTING_FILENAME "/ram/cfe_sb_route.dat" - - -/** -** \cfesbcfg Default Pipe Information Filename -** -** \par Description: -** The value of this constant defines the filename used to store the software -** bus pipe information. This filename is used only when no filename is -** specified in the command. -** -** \par Limits -** The length of each string, including the NULL terminator cannot exceed the -** #OS_MAX_PATH_LEN value. -*/ -#define CFE_SB_DEFAULT_PIPE_FILENAME "/ram/cfe_sb_pipe.dat" - - -/** -** \cfesbcfg Default Message Map Filename -** -** \par Description: -** The value of this constant defines the filename used to store the software -** bus message map information. This filename is used only when no filename is -** specified in the command. The message map is a lookup table (array of 16bit -** words) that has an element for each possible MsgId value and holds the -** routing table index for that MsgId. The Msg Map provides fast access to the -** destinations of a message. -** -** \par Limits -** The length of each string, including the NULL terminator cannot exceed the -** #OS_MAX_PATH_LEN value. -*/ -#define CFE_SB_DEFAULT_MAP_FILENAME "/ram/cfe_sb_msgmap.dat" - - -/** -** \cfesbcfg SB Event Filtering -** -** \par Description: -** This group of configuration paramters dictates what SB events will be -** filtered through EVS. The filtering will begin after the SB task initializes -** and stay in effect until a cmd to EVS changes it. -** This allows the operator to set limits on the number of event messages that -** are sent during system initialization. -** NOTE: Set all unused event values and mask values to zero -** -** \par Limits -** This filtering applies only to SB events. -** These parameters have a lower limit of 0 and an upper limit of 65535. -*/ -#define CFE_SB_FILTERED_EVENT1 CFE_SB_SEND_NO_SUBS_EID -#define CFE_SB_FILTER_MASK1 CFE_EVS_FIRST_4_STOP - -#define CFE_SB_FILTERED_EVENT2 CFE_SB_DUP_SUBSCRIP_EID -#define CFE_SB_FILTER_MASK2 CFE_EVS_FIRST_4_STOP - -#define CFE_SB_FILTERED_EVENT3 CFE_SB_MSGID_LIM_ERR_EID -#define CFE_SB_FILTER_MASK3 CFE_EVS_FIRST_16_STOP - -#define CFE_SB_FILTERED_EVENT4 CFE_SB_Q_FULL_ERR_EID -#define CFE_SB_FILTER_MASK4 CFE_EVS_FIRST_16_STOP - -#define CFE_SB_FILTERED_EVENT5 0 -#define CFE_SB_FILTER_MASK5 CFE_EVS_NO_FILTER - -#define CFE_SB_FILTERED_EVENT6 0 -#define CFE_SB_FILTER_MASK6 CFE_EVS_NO_FILTER - -#define CFE_SB_FILTERED_EVENT7 0 -#define CFE_SB_FILTER_MASK7 CFE_EVS_NO_FILTER - -#define CFE_SB_FILTERED_EVENT8 0 -#define CFE_SB_FILTER_MASK8 CFE_EVS_NO_FILTER - - -/** -** \cfeescfg Define SB Memory Pool Block Sizes -** -** \par Description: -** Software Bus Memory Pool Block Sizes -** -** \par Limits -** These sizes MUST be increasing and MUST be an integral multiple of 4. -** The number of block sizes defined cannot exceed -** #CFE_ES_MAX_MEMPOOL_BLOCK_SIZES -*/ -#define CFE_SB_MEM_BLOCK_SIZE_01 8 -#define CFE_SB_MEM_BLOCK_SIZE_02 16 -#define CFE_SB_MEM_BLOCK_SIZE_03 20 -#define CFE_SB_MEM_BLOCK_SIZE_04 36 -#define CFE_SB_MEM_BLOCK_SIZE_05 64 -#define CFE_SB_MEM_BLOCK_SIZE_06 96 -#define CFE_SB_MEM_BLOCK_SIZE_07 128 -#define CFE_SB_MEM_BLOCK_SIZE_08 160 -#define CFE_SB_MEM_BLOCK_SIZE_09 256 -#define CFE_SB_MEM_BLOCK_SIZE_10 512 -#define CFE_SB_MEM_BLOCK_SIZE_11 1024 -#define CFE_SB_MEM_BLOCK_SIZE_12 2048 -#define CFE_SB_MEM_BLOCK_SIZE_13 4096 -#define CFE_SB_MEM_BLOCK_SIZE_14 8192 -#define CFE_SB_MEM_BLOCK_SIZE_15 16384 -#define CFE_SB_MEM_BLOCK_SIZE_16 32768 -#define CFE_SB_MAX_BLOCK_SIZE (CFE_SB_MAX_SB_MSG_SIZE + 40) - -/** -** \cfesbcfg Define Default Sender Information Storage Mode -** -** \par Description: -** Defines the default mode for the storing of sender information when sending -** a software bus message. If set to 1, the sender information will be stored. -** If set to 0, the sender information will not be stored. -** -** \par Limits -** There is a lower limit of 0 and an upper limit of 1 on this configuration -** paramater. -*/ -#define CFE_SB_DEFAULT_REPORT_SENDER 1 - - -/** -** \cfetimecfg Time Server or Time Client Selection -** -** \par Description: -** This configuration parameter selects whether the Time task functions as a -** time "server" or "client". A time server generates the "time at the tone" -** packet which is received by time clients. -** -** \par Limits -** Enable one, and only one by defining either CFE_TIME_CFG_SERVER or -** CFE_TIME_CFG_CLIENT AS TRUE. The other must be defined as FALSE. -*/ -#define CFE_TIME_CFG_SERVER TRUE -#define CFE_TIME_CFG_CLIENT FALSE - -/** -** \cfetimecfg Local MET or Virtual MET Selection for Time Servers -** -** \par Description: -** Depending on the specific hardware system configuration, it may be possible -** for Time Servers to read the "local" MET from a h/w register rather than -** having to track the MET as the count of tone signal interrupts (virtual MET) -** -** Time Clients must be defined as using a virtual MET. Also, a Time Server -** cannot be defined as having both a h/w MET and an external time source (they -** both cannot synchronize to the same tone). -** -** Note: "disable" this define (set to FALSE) only for Time Servers with local hardware -** that supports a h/w MET that is synchronized to the tone signal !!! -** -** \par Limits -** Only applies if #CFE_TIME_CFG_SERVER is set to TRUE. -*/ -#define CFE_TIME_CFG_VIRTUAL TRUE - - -/** -** \cfetimecfg Include or Exclude the Primary/Redundant Tone Selection Cmd -** -** \par Description: -** Depending on the specific hardware system configuration, it may be possible -** to switch between a primary and redundant tone signal. If supported by -** hardware, this definitions will enable command interfaces to select the -** active tone signal. Both Time Clients and Time Servers support this feature. -** Note: Set the CFE_TIME_CFG_SIGNAL define to TRUE to enable tone signal commands. -** -** \par Limits -** Not Applicable -*/ -#define CFE_TIME_CFG_SIGNAL FALSE - - -/** -** \cfetimecfg Include or Exclude the Internal/External Time Source Selection Cmd -** -** \par Description: -** By default, Time Servers maintain time using an internal MET which may be a -** h/w register or software counter, depending on available hardware. The -** following definition enables command interfaces to switch between an -** internal MET, or external time data received from one of several supported -** external time sources. Only a Time Server may be configured to use external -** time data. -** Note: Set the CFE_TIME_CFG_SOURCE define to TRUE to include the Time Source -** Selection Command (command allows selection between the internal -** or external time source). Then choose the external source with the -** CFE_TIME_CFG_SRC_??? define. -** -** \par Limits -** Only applies if #CFE_TIME_CFG_SERVER is set to TRUE. -*/ -#define CFE_TIME_CFG_SOURCE FALSE - - -/** -** \cfetimecfg Choose the External Time Source for Server only -** -** \par Description: -** If #CFE_TIME_CFG_SOURCE is set to TRUE, then one of the following external time -** source types must also be set to TRUE. Do not set any of the external time -** source types to TRUE unless #CFE_TIME_CFG_SOURCE is set to TRUE. -** -** \par Limits -** -# If #CFE_TIME_CFG_SOURCE is set to TRUE then one and only one of the following -** three external time sources can and must be set TRUE: -** #CFE_TIME_CFG_SRC_MET, #CFE_TIME_CFG_SRC_GPS, #CFE_TIME_CFG_SRC_TIME -** -# Only applies if #CFE_TIME_CFG_SERVER is set to TRUE. -*/ -#define CFE_TIME_CFG_SRC_MET FALSE -#define CFE_TIME_CFG_SRC_GPS FALSE -#define CFE_TIME_CFG_SRC_TIME FALSE - - -/** -** \cfetimecfg Define the Max Delta Limits for Time Servers using an Ext Time Source -** -** \par Description: -** If #CFE_TIME_CFG_SOURCE is set to TRUE and one of the external time sources is -** also set to TRUE, then the delta time limits for range checking is used. -** -** When a new time value is received from an external source, the value is -** compared against the "expected" time value. If the delta exceeds the -** following defined amount, then the new time data will be ignored. This range -** checking is only performed after the clock state has been commanded to -** "valid". Until then, external time data is accepted unconditionally. -** -** \par Limits -** Applies only if both #CFE_TIME_CFG_SERVER and #CFE_TIME_CFG_SOURCE are set -** to TRUE. -*/ -#define CFE_TIME_MAX_DELTA_SECS 0 -#define CFE_TIME_MAX_DELTA_SUBS 500000 - - -/** -** \cfetimecfg Define the Local Clock Rollover Value in seconds and subseconds -** -** \par Description: -** Specifies the capability of the local clock. Indicates the time at which -** the local clock rolls over. -** -** \par Limits -** Not Applicable -*/ -#define CFE_TIME_MAX_LOCAL_SECS 27 -#define CFE_TIME_MAX_LOCAL_SUBS 0 - - -/** -** \cfetimecfg Define Timing Limits From One Tone To The Next -** -** \par Description: -** Defines limits to the timing of the 1Hz tone signal. A tone signal is valid -** only if it arrives within one second (plus or minus the tone limit) from -** the previous tone signal.Units are microseconds as measured with the local -** clock. -** -** \par Limits -** Not Applicable -*/ -#define CFE_TIME_CFG_TONE_LIMIT 20000 - - - -/** -** \cfetimecfg Define Time to Start Flywheel Since Last Tone -** -** \par Description: -** Define time to enter flywheel mode (in seconds since last tone data update) -** Units are microseconds as measured with the local clock. -** -** \par Limits -** Not Applicable -*/ -#define CFE_TIME_CFG_START_FLY 2 - - -/** -** \cfetimecfg Define Periodic Time to Update Local Clock Tone Latch -** -** \par Description: -** Define Periodic Time to Update Local Clock Tone Latch. Applies only when -** in flywheel mode. This define dicates the period at which the simulated -** 'last tone' time is updated. Units are seconds. -** -** \par Limits -** Not Applicable -*/ -#define CFE_TIME_CFG_LATCH_FLY 8 - - -/** -** \cfetimecfg Define Maximum number of Time Synchronization Callbacks allowed -** -** \par Description: -** Define maximum number of Time Synchronization callback functions allowed. -** Each callback is called whenever cFE TIME receives a valid time synchronization -** signal (typically 1 Hz). -** -** \par Limits -** Not Applicable -*/ -#define CFE_TIME_MAX_NUM_SYNCH_FUNCS 4 - - -/** -** \cfetimecfg Enable (or disable) the 1HZ time command packet -** -** \par Description: -** Controls the generation of a packet that may be used as a 1HZ wakeup -** signal for applications that subscribe to CFE_TIME_1HZ_CMD_MID. -** Disable the packet to avoid 'no subscriber' errors that result from -** sending a packet when there are no subscribers to the packet. -** -** \par Limits -** Enable the 1HZ packet by setting #CFE_TIME_ENA_1HZ_CMD_PKT to TRUE. -** Disable the 1HZ packet by setting #CFE_TIME_ENA_1HZ_CMD_PKT to FALSE. -*/ -#define CFE_TIME_ENA_1HZ_CMD_PKT TRUE - - -/** -** \cfeescfg Define Max Number of Applications -** -** \par Description: -** Defines the maximum number of applications that can be loaded into the -** system. This number does not include child tasks. -** -** \par Limits -** There is a lower limit of 6 and an upper limit of 64 on this configuration -** paramater. The lower limit corresponds to the cFE internal applications. -*/ -#define CFE_ES_MAX_APPLICATIONS 64 - - -/** -** \cfeescfg Define Max Number of Shared libraries -** -** \par Description: -** Defines the maximum number of cFE Shared libraries that can be loaded into -** the system. -** -** \par Limits -** There is a lower limit of 1 and an upper limit of 64 on this configuration -** paramater. -*/ -#define CFE_ES_MAX_LIBRARIES 10 - -/** -** \cfeescfg Define Max Number of ER (Exception and Reset) log entries -** -** \par Description: -** Defines the maximum number of ER (Exception and Reset) log entries -** -** \par Limits -** There is a lower limit of 10 and an upper limit of 128 on this configuration -** paramater. -*/ -#define CFE_ES_ER_LOG_ENTRIES 20 - -/** \cfeescfg Maximum size of CPU Context in ES Error Log -** -** \par Description: -** This should be large enough to accommodate the CPU context -** information supplied by the PSP on the given platform. -** -** \par Limits: -** Must be greater than zero and a multiple of sizeof(uint32). -** Limited only by the available memory and the number of entries -** in the error log. Any context information beyond this size will -** be truncated. -*/ -#define CFE_ES_ER_LOG_MAX_CONTEXT_SIZE 128 - - -/** -** \cfeescfg Define Size of the cFE System Log. -** -** \par Description: -** Defines the size in bytes of the cFE system log. The system log holds -** variable length strings that are terminated by a linefeed and null -** character. -** -** \par Limits -** There is a lower limit of 512 and an upper limit of 16384 on this -** configuration paramater. -*/ -#define CFE_ES_SYSTEM_LOG_SIZE 3072 - - -/** -** \cfeescfg Define Number of entries in the ES Object table -** -** \par Description: -** Defines the number of entries in the ES Object table. This table controls -** the core cFE startup. -** -** \par Limits -** There is a lower limit of 15 and an upper limit of 50 on this configuration -** paramater. -*/ -#define CFE_ES_OBJECT_TABLE_SIZE 30 - - -/** -** \cfeescfg Define Max Number of Generic Counters -** -** \par Description: -** Defines the maximum number of Generic Counters that can be registered. -** -** \par Limits -** This parameter has a lower limit of 1 and an upper limit of 65535. -*/ -#define CFE_ES_MAX_GEN_COUNTERS 8 - - -/** -** \cfeescfg Define ES Application Control Scan Rate -** -** \par Description: -** ES Application Control Scan Rate. This parameter controls the speed that ES -** scans the Application Table looking for App Delete/Restart/Reload requests. -** All Applications are deleted, restarted, or reloaded by the ES Application. -** ES will periodically scan for control requests to process. The scan rate is -** controlled by this parameter, which is given in milliseconds. A value of -** 1000 means that ES will scan the Application Table once per second. Be -** careful not to set the value of this too low, because ES will use more CPU -** cycles scanning the table. -** -** \par Limits -** There is a lower limit of 100 and an upper limit of 20000 on this -** configuration paramater. millisecond units. -*/ -#define CFE_ES_APP_SCAN_RATE 1000 - - -/** -** \cfeescfg Define ES Application Kill Timeout -** -** \par Description: -** ES Application Kill Timeout. This parameter controls the number of -** "scan periods" that ES will wait for an application to Exit after getting -** the signal Delete, Reload or Restart. The sequence works as follows: -** -# ES will set the control request for an App to Delete/Restart/Reload and -** set this kill timer to the value in this parameter. -** -# If the App is reponding and Calls it's RunLoop function, it will drop out -** of it's main loop and call CFE_ES_ExitApp. Once it calls Exit App, then -** ES can delete, restart, or reload the app the next time it scans the app -** table. -** -# If the App is not responding, the ES App will decrement this Kill Timeout -** value each time it runs. If the timeout value reaches zero, ES will kill -** the app. -** -** The Kill timeout value depends on the #CFE_ES_APP_SCAN_RATE. If the Scan Rate -** is 1000, or 1 second, and this #CFE_ES_APP_KILL_TIMEOUT is set to 5, then it -** will take 5 seconds to kill a non-responding App. -** If the Scan Rate is 250, or 1/4 second, and the #CFE_ES_APP_KILL_TIMEOUT is -** set to 2, then it will take 1/2 second to time out. -** -** \par Limits -** There is a lower limit of 1 and an upper limit of 100 on this configuration -** paramater. Units are number of #CFE_ES_APP_SCAN_RATE cycles. -*/ -#define CFE_ES_APP_KILL_TIMEOUT 5 - - -/** -** \cfeescfg ES Ram Disk Sector Size -** -** \par Description: -** Defines the ram disk sector size. The ram disk is 1 of 4 memory areas that -** are preserved on a processor reset. -** NOTE: Changing this value changes memory allocation, and may -** require changes to platform specific values (in CFE_PSP) such as -** USER_RESERVED_MEM in VxWorks depending on the memory areas -** being used for preserved data and on OS specific behavior. -** -** \par Limits -** There is a lower limit of 128 and an upper limit of 4096 on this -** configuration paramater. -*/ -#define CFE_ES_RAM_DISK_SECTOR_SIZE 512 - - -/** -** \cfeescfg ES Ram Disk Number of Sectors -** -** \par Description: -** Defines the ram disk number of sectors. The ram disk is one of four memory -** areas that are preserved on a processor reset. -** NOTE: Changing this value changes memory allocation, and may -** require changes to platform specific values (in CFE_PSP) such as -** USER_RESERVED_MEM in VxWorks depending on the memory areas -** being used for preserved data and on OS specific behavior. -** -** \par Limits -** There is a lower limit of 128 and an upper limit of 8192 on this -** configuration paramater. -*/ -#define CFE_ES_RAM_DISK_NUM_SECTORS 4096 - -/** -** \cfeescfg Percentage of Ram Disk Reserved for Decompressing Apps -** -** \par Description: -** The #CFE_ES_RAM_DISK_PERCENT_RESERVED parameter is used to make sure that the -** Volatile ( RAM ) Disk has a defined amount of free space during a processor -** reset. The cFE uses the Volatile disk to decompress cFE applications during -** system startup. If this Volatile disk happens to get filled with logs and -** misc files, then a processor reset may not work, because there will be no -** room to decompress cFE apps. To solve that problem, this parameter sets the -** "Low Water Mark" for disk space on a Processor reset. It should be set to -** allow the largest cFE Application to be decompressed. -** During a Processor reset, if there is not sufficient space left on the disk, -** it will be re-formatted in order to clear up some space. -** -** This feature can be turned OFF by setting the parameter to 0. -** -** \par Limits -** There is a lower limit of 0 and an upper limit of 75 on this configuration -** paramater.Units are percentage. A setting of zero will turn this feature -** off. -*/ -#define CFE_ES_RAM_DISK_PERCENT_RESERVED 30 - - -/** -** \cfeescfg RAM Disk Mount string -** -** \par Description: -** The #CFE_ES_RAM_DISK_MOUNT_STRING parameter is used to set the cFE mount path -** for the CFE RAM disk. This is a parameter for missions that do not want to -** use the default value of "/ram", or for missions that need to have a different -** value for different CPUs or Spacecraft. -** Note that the vxWorks OSAL cannot currently handle names that have more than one -** path separator in it. The names "/ram", "/ramdisk", "/disk123" will all work, but -** "/disks/ram" will not. -** Multiple separators can be used with the posix or RTEMS ports. -** -*/ -#define CFE_ES_RAM_DISK_MOUNT_STRING "/ram" - - -/** -** \cfeescfg Define Critical Data Store Size -** -** \par Description: -** Defines the Critical Data Store (CDS) area size in bytes size. The CDS is -** one of four memory areas that are preserved during a processor reset. -** NOTE: Changing this value changes memory allocation, and may -** require changes to platform specific values (in CFE_PSP) such as -** USER_RESERVED_MEM in VxWorks depending on the memory areas -** being used for preserved data and on OS specific behavior. -** -** \par Limits -** There is a lower limit of 8192 and an upper limit of 2097152 (2MBytes) on -** this configuration paramater. -*/ -#define CFE_ES_CDS_SIZE ( 128 * 2048 ) - - -/** -** \cfeescfg Define User Reserved Memory Size -** -** \par Description: -** User Reserved Memory Size. This is the size in bytes of the cFE User -** reserved Memory area. This is a block of memory that is available for cFE -** application use. The address is obtained by calling -** #CFE_PSP_GetUserReservedArea. The User Reserved Memory is one of four memory -** areas that are preserved during a processor reset. -** NOTE: Changing this value changes memory allocation, and may -** require changes to platform specific values (in CFE_PSP) such as -** USER_RESERVED_MEM in VxWorks depending on the memory areas -** being used for preserved data and on OS specific behavior. -** -** \par Limits -** There is a lower limit of 1024 and an upper limit of 33554432 (32Mbytes) on -** this configuration paramater. -*/ -#define CFE_ES_USER_RESERVED_SIZE ( 1024 * 2048 ) - - -/** -** \cfeescfg Define ES Reset Area Size -** -** \par Description: -** The ES Reset Area Size. This is the size in bytes of the cFE Reset variable -** and log area. This is a block of memory used by the cFE to store the system -** log ER Log and critical reset variables. This is 4 of 4 of the memory areas -** that are preserved during a processor reset. -** Note: This area must be sized large enough to hold all of the data -** structures. It should be automatically sized based on the #CFE_ES_ResetData_t -** type, but circular dependancies in the headers prevent it from being defined -** this way. -** NOTE: Changing this value changes memory allocation, and may -** require changes to platform specific values (in CFE_PSP) such as -** USER_RESERVED_MEM in VxWorks depending on the memory areas -** being used for preserved data and on OS specific behavior. -** -** \par Limits -** There is a lower limit of 153600 (150KBytes) and an upper limit of 2097152 -** (2MBytes) on this configuration paramater. -*/ -#define CFE_ES_RESET_AREA_SIZE ( 170 * 2048 ) - -/** -** \cfeescfg Define Default Memory Pool Alignment Mode -** -** \par Description: -** Defines the default mode for the requirement to align ES Mempool buffer. -** If this define is set, the memory pool must be aligned or the call to -** create a new memory pool will be rejected with a CFE_ES_BAD_ARGUMENT -** return code. -** -** \par Limits -** If CFE_ES_MEMPOOL_ALIGNED is defined, the alignment check is enabled. -** If CFE_ES_MEMPOOL_ALIGNED is not defined, the alignment check is not -** compiled in. -*/ -#define CFE_ES_MEMPOOL_ALIGNED 1 - -/** -** \cfeescfg ES Nonvolatile Startup Filename -** -** \par Description: -** The value of this constant defines the path and name of the file that -** contains a list of modules that will be loaded and started by the cFE after -** the cFE finishes its startup sequence. -** -** \par Limits -** The length of each string, including the NULL terminator cannot exceed the -** #OS_MAX_PATH_LEN value. -*/ -#define CFE_ES_NONVOL_STARTUP_FILE "/cf/apps/cfe_es_startup.scr" - - -/** -** \cfeescfg ES Volatile Startup Filename -** -** \par Description: -** The value of this constant defines the path and name of the file that -** contains a list of modules that will be loaded and started by the cFE after -** the cFE finishes its startup sequence. -** -** \par Limits -** The length of each string, including the NULL terminator cannot exceed the -** #OS_MAX_PATH_LEN value. -*/ -#define CFE_ES_VOLATILE_STARTUP_FILE "/ram/apps/cfe_es_startup.scr" - -/** -** \cfeescfg Default Shell Filename -** -** \par Description: -** The value of this constant defines the filename used to store the shell -** output after a shell command is received by ES. This file contains the -** entire shell output. The fsw also sends the shell output in series of fixed -** size telemetry packets. This filename is used only when no filename -** is specified in the shell command. -** -** \par Limits -** The length of each string, including the NULL terminator cannot exceed the -** #OS_MAX_PATH_LEN value. -*/ -#define CFE_ES_DEFAULT_SHELL_FILENAME "/ram/ShellCmd.out" - - -/** -** \cfeescfg Define Max Shell Command Size -** -** \par Description: -** Defines the maximum size in characters of the shell command. -** -** \par Limits -** There is a lower limit of 64 and an upper limit of 128 on this configuration -** paramater. Units are characters. -*/ -#define CFE_ES_MAX_SHELL_CMD 64 - - -/** -** \cfeescfg Define Shell Command Telemetry Pkt Segment Size -** -** \par Description: -** Defines the size of the shell command tlm packet segments.The shell command -** output size is dependant on the shell command itself. If the shell output -** size is greater than the size of the packet defined here, the fsw will -** generate a series of tlm packets (of the size defined here) that can be -** reconstructed by the ground system. -** -** \par Limits -** There is a lower limit of 32 and an upper limit of 128 on this configuration -** paramater. -*/ -#define CFE_ES_MAX_SHELL_PKT 64 - - -/** -** \cfeescfg Default Application Information Filename -** -** \par Description: -** The value of this constant defines the filename used to store information -** pertaining to all of the Applications that are registered with Executive -** Services. This filename is used only when no filename is specified in the -** the command to query all system apps. -** -** \par Limits -** The length of each string, including the NULL terminator cannot exceed the -** #OS_MAX_PATH_LEN value. -*/ -#define CFE_ES_DEFAULT_APP_LOG_FILE "/ram/cfe_es_app_info.log" - -/** -** \cfeescfg Default Application Information Filename -** -** \par Description: -** The value of this constant defines the filename used to store information -** pertaining to all of the Applications that are registered with Executive -** Services. This filename is used only when no filename is specified in the -** the command to query all system tasks. -** -** \par Limits -** The length of each string, including the NULL terminator cannot exceed the -** #OS_MAX_PATH_LEN value. -*/ -#define CFE_ES_DEFAULT_TASK_LOG_FILE "/ram/cfe_es_task_info.log" - -/** -** \cfeescfg Default System Log Filename -** -** \par Description: -** The value of this constant defines the filename used to store important -** information (as ASCII text strings) that might not be able to be sent in an -** Event Message. This filename is used only when no filename is specified in -** the command to dump the system log. No file specified in the cmd means the -** first character in the cmd filename is a NULL terminator (zero). -** -** \par Limits -** The length of each string, including the NULL terminator cannot exceed the -** #OS_MAX_PATH_LEN value. -*/ -#define CFE_ES_DEFAULT_SYSLOG_FILE "/ram/cfe_es_syslog.log" - -/** -** \cfeescfg Default Exception and Reset (ER) Log Filename -** -** \par Description: -** The value of this constant defines the filename used to store the -** Exception and Reset (ER) Log. This filename is used only when no filename is -** specified in the command to dump the ER log. No file specified in the cmd -** means the first character in the cmd filename is a NULL terminator (zero). -** -** \par Limits -** The length of each string, including the NULL terminator cannot exceed the -** #OS_MAX_PATH_LEN value. -*/ -#define CFE_ES_DEFAULT_ER_LOG_FILE "/ram/cfe_erlog.log" - -/** -** \cfeescfg Default Performance Data Filename -** -** \par Description: -** The value of this constant defines the filename used to store the -** Performance Data. This filename is used only when no filename is specified -** in the command to stop performance data collecting. -** -** \par Limits -** The length of each string, including the NULL terminator cannot exceed the -** #OS_MAX_PATH_LEN value. -*/ -#define CFE_ES_DEFAULT_PERF_DUMP_FILENAME "/ram/cfe_es_perf.dat" - - -/** -** \cfeescfg Default Critical Data Store Registry Filename -** -** \par Description: -** The value of this constant defines the filename used to store the -** Critical Data Store Registry. This filename is used only when no filename is -** specified in the command to stop performance data collecting. -** -** \par Limits -** The length of each string, including the NULL terminator cannot exceed the -** #OS_MAX_PATH_LEN value. -*/ -#define CFE_ES_DEFAULT_CDS_REG_DUMP_FILE "/ram/cfe_cds_reg.log" - -/** -** \cfeescfg Define Default System Log Mode -** -** \par Description: -** Defines the default mode for the operation of the ES System log. The log may -** operate in either Overwrite mode = 0, where once the log becomes full the -** oldest message in the log will be overwritten, or Discard mode = 1, where -** once the log becomes full the contents of the log are preserved and the new -** event is discarded. This constant may hold a value of either 0 or 1 -** depending on the desired default log mode. Overwrite Mode = 0, Discard -** Mode = 1. -** -** \par Limits -** There is a lower limit of 0 and an upper limit of 1 on this configuration -** paramater. -*/ -#define CFE_ES_DEFAULT_SYSLOG_MODE 1 - -/** -** \cfeescfg Define Max Number of Performance IDs -** -** \par Description: -** Defines the maximum number of perf ids allowed. -** -** -** \par Limits -** This number must always be divisible by 32. There is a lower limit of 32 and -** an upper limit of 512 on this configuration paramater. -*/ -#define CFE_ES_PERF_MAX_IDS 128 - -/** -** \cfeescfg Define Max Size of Performance Data Buffer -** -** \par Description: -** Defines the maximum size of the performance data buffer. Units are number of -** performance data entries. An entry is defined by a 32 bit data word followed -** by a 64 bit time stamp. -** -** \par Limits -** There is a lower limit of 1025 and an upper limit of 1048576 (1 Meg) on this -** configuration paramater. The units are number of entries. An entry is -** defined by a 32 bit data word followed by a 64 bit time stamp. -*/ -#define CFE_ES_PERF_DATA_BUFFER_SIZE 10000 - - -/** -** \cfeescfg Define Filter Mask Setting for Disabling All Performance Entries -** -** \par Description: -** Defines the filter mask for disabling all performance entries. The value is a -** bit mask. For each bit, 0 means the corresponding entry is disabled and -** 1 means it is enabled. -*/ -#define CFE_ES_PERF_FILTMASK_NONE 0 - -/** -** \cfeescfg Define Filter Mask Setting for Enabling All Performance Entries -** -** \par Description: -** Defines the filter mask for enabling all performance entries. The value is a -** bit mask. For each bit, 0 means the corresponding entry is disabled and -** 1 means it is enabled. -*/ -#define CFE_ES_PERF_FILTMASK_ALL ~CFE_ES_PERF_FILTMASK_NONE - -/** -** \cfeescfg Define Default Filter Mask Setting for Performance Data Buffer -** -** \par Description: -** Defines the default filter mask for the performance data buffer. The value is a -** bit mask. For each bit, 0 means the corresponding entry is disabled and 1 -** means it is enabled. -** -*/ -#define CFE_ES_PERF_FILTMASK_INIT CFE_ES_PERF_FILTMASK_ALL - - -/** -** \cfeescfg Define Default Filter Trigger Setting for Disabling All Performance Entries -** -** \par Description: -** Defines the default trigger mask for disabling all performance data entries. The value -** is a bit mask. For each bit, 0 means the trigger for the corresponding entry is -** disabled and 1 means it is enabled. -** -*/ -#define CFE_ES_PERF_TRIGMASK_NONE 0 - -/** -** \cfeescfg Define Filter Trigger Setting for Enabling All Performance Entries -** -** \par Description: -** Defines the trigger mask for enabling all performance data entries. The value is -** a bit mask. For each bit, 0 means the trigger for the corresponding entry is -** disabled and 1 means it is enabled. -** -*/ -#define CFE_ES_PERF_TRIGMASK_ALL ~CFE_ES_PERF_TRIGMASK_NONE - -/** -** \cfeescfg Define Default Filter Trigger Setting for Performance Data Buffer -** -** \par Description: -** Defines the default trigger mask for the performance data buffer. The value is a -** 32-bit mask. For each bit, 0 means the trigger for the corresponding entry is -** disabled and 1 means it is enabled. -** -*/ -#define CFE_ES_PERF_TRIGMASK_INIT CFE_ES_PERF_TRIGMASK_NONE - -/** -** \cfeescfg Define Performance Analyzer Child Task Priority -** -** \par Description: -** This parameter defines the priority of the child task spawed by the -** Executive Services to write performance data to a file. Lower numbers -** are higher priority, with 1 being the highest priority in the case of a -** child task. -** -** \par Limits -** Valid range for a child task is 1 to 255 however, the priority cannot -** be higher (lower number) than the ES parent application priority. -*/ -#define CFE_ES_PERF_CHILD_PRIORITY 200 - -/** -** \cfeescfg Define Performance Analyzer Child Task Stack Size -** -** \par Description: -** This parameter defines the stack size of the child task spawed by the -** Executive Services to write performance data to a file. -** -** \par Limits -** It is recommended this parameter be greater than or equal to 4KB. This parameter -** is limited by the maximum value allowed by the data type. In this case, the data -** type is an unsigned 32-bit integer, so the valid range is 0 to 0xFFFFFFFF. -*/ -#define CFE_ES_PERF_CHILD_STACK_SIZE 16384 - -/** -** \cfeescfg Define Performance Analyzer Child Task Delay -** -** \par Description: -** This parameter defines the delay time (in milliseconds) between performance -** data file writes performed by the Executive Services Performace Analyzer -** Child Task. -** -** \par Limits -** It is recommended this parameter be greater than or equal to 20ms. This parameter -** is limited by the maximum value allowed by the data type. In this case, the data -** type is an unsigned 32-bit integer, so the valid range is 0 to 0xFFFFFFFF. -*/ -#define CFE_ES_PERF_CHILD_MS_DELAY 20 - -/** -** \cfeescfg Define Performance Analyzer Child Task Number of Entries Between Delay -** -** \par Description: -** This parameter defines the number of performace analyzer entries the Performace -** Analyzer Child Task will write to the file between delays. -** -*/ -#define CFE_ES_PERF_ENTRIES_BTWN_DLYS 50 - -/** -** \cfeescfg Define Default Stack Size for an Application -** -** \par Description: -** This parameter defines a default stack size. This parameter is used by the -** cFE Core Applications. -** -** \par Limits -** There is a lower limit of 2048 and an upper limit of 16384 on this -** configuration paramater. -*/ -#define CFE_ES_DEFAULT_STACK_SIZE 16384 - - -/** -** \cfeescfg Define EVS Task Priority -** -** \par Description: -** Defines the cFE_EVS Task priority. -** -** \par Limits -** Not Applicable -*/ -#define CFE_EVS_START_TASK_PRIORITY 61 - -/** -** \cfeescfg Define EVS Task Stack Size -** -** \par Description: -** Defines the cFE_EVS Task Stack Size -** -** \par Limits -** There is a lower limit of 2048 and an upper limit of 16384 on this -** configuration paramater. -*/ -#define CFE_EVS_START_TASK_STACK_SIZE CFE_ES_DEFAULT_STACK_SIZE - -#define CFE_EVS_START_TASK_FLAGS OS_ENABLE_CORE_0 - -/** -** \cfeescfg Define SB Task Priority -** -** \par Description: -** Defines the cFE_SB Task priority. -** -** \par Limits -** Not Applicable -*/ -#define CFE_SB_START_TASK_PRIORITY 64 - -/** -** \cfeescfg Define SB Task Stack Size -** -** \par Description: -** Defines the cFE_SB Task Stack Size -** -** \par Limits -** There is a lower limit of 2048 and an upper limit of 16384 on this -** configuration paramater. -*/ -#define CFE_SB_START_TASK_STACK_SIZE CFE_ES_DEFAULT_STACK_SIZE - -#define CFE_SB_START_TASK_FLAGS OS_ENABLE_CORE_0 - -/** -** \cfeescfg Define ES Task Priority -** -** \par Description: -** Defines the cFE_ES Task priority. -** -** \par Limits -** Not Applicable -*/ -#define CFE_ES_START_TASK_PRIORITY 68 - -/** -** \cfeescfg Define ES Task Stack Size -** -** \par Description: -** Defines the cFE_ES Task Stack Size -** -** \par Limits -** There is a lower limit of 2048 and an upper limit of 16384 on this -** configuration paramater. -*/ -#define CFE_ES_START_TASK_STACK_SIZE 16384 - -#define CFE_ES_START_TASK_FLAGS OS_ENABLE_CORE_0 - -/** -** \cfetimecfg Define TIME Task Priorities -** -** \par Description: -** Defines the cFE_TIME Task priority. -** Defines the cFE_TIME Tone Task priority. -** Defines the cFE_TIME 1HZ Task priority. -** -** \par Limits -** There is a lower limit of zero and an upper limit of 255 on these -** configuration paramaters. Remember that the meaning of each task -** priority is inverted -- a "lower" number has a "higher" priority. -*/ -#define CFE_TIME_START_TASK_PRIORITY 60 -#define CFE_TIME_TONE_TASK_PRIORITY 25 -#define CFE_TIME_1HZ_TASK_PRIORITY 25 - -/** -** \cfetimecfg Define TIME Task Stack Sizes -** -** \par Description: -** Defines the cFE_TIME Main Task Stack Size -** Defines the cFE_TIME Tone Task Stack Size -** Defines the cFE_TIME 1HZ Task Stack Size -** -** \par Limits -** There is a lower limit of 2048 and an upper limit of 16384 on these -** configuration paramaters. -*/ -#define CFE_TIME_START_TASK_STACK_SIZE CFE_ES_DEFAULT_STACK_SIZE -#define CFE_TIME_TONE_TASK_STACK_SIZE 16384 -#define CFE_TIME_1HZ_TASK_STACK_SIZE 16384 - -#define CFE_TIME_START_TASK_FLAGS OS_ENABLE_CORE_0 -#define CFE_TIME_TONE_TASK_FLAGS OS_ENABLE_CORE_0 -#define CFE_TIME_1HZ_TASK_FLAGS OS_ENABLE_CORE_0 - -/** -** \cfeescfg Define TBL Task Priority -** -** \par Description: -** Defines the cFE_TBL Task priority. -** -** \par Limits -** Not Applicable -*/ -#define CFE_TBL_START_TASK_PRIORITY 70 - -/** -** \cfeescfg Define TBL Task Stack Size -** -** \par Description: -** Defines the cFE_TBL Task Stack Size -** -** \par Limits -** There is a lower limit of 2048 and an upper limit of 16384 on this -** configuration paramater. -*/ -#define CFE_TBL_START_TASK_STACK_SIZE CFE_ES_DEFAULT_STACK_SIZE - -#define CFE_TBL_START_TASK_FLAGS OS_ENABLE_CORE_0 - -/** -** \cfeescfg Define Maximum Number of Registered CDS Blocks -** -** \par Description: -** Maximum number of registered CDS Blocks -** -** \par Limits -** There is a lower limit of 8 and an upper limit of 32767 on this configuration -** paramater. -*/ -#define CFE_ES_CDS_MAX_NUM_ENTRIES 512 - - -/** -** \cfeescfg Define Number of Processor Resets Before a Power On Reset -** -** \par Description: -** Number of Processor Resets before a Power On Reset is called. If set to 2, -** then 2 processor resets will occur, and the 3rd processor reset will be a -** power on reset instead. -** -** \par Limits -** There is a lower limit of 0 and an upper limit of 1024 on this configuration -** paramater. -*/ -#define CFE_ES_MAX_PROCESSOR_RESETS 2 - - -/** -** \cfeescfg Define Default ES Memory Pool Block Sizes -** -** \par Description: -** Default Intermediate ES Memory Pool Block Sizes. If an application -** is using the CFE_ES Memory Pool APIs (#CFE_ES_PoolCreate, #CFE_ES_PoolCreateNoSem, -** #CFE_ES_GetPoolBuf and #CFE_ES_PutPoolBuf) but finds these sizes -** inappropriate for their use, they may wish to use the #CFE_ES_PoolCreateEx -** API to specify their own intermediate block sizes -** -** \par Limits -** These sizes MUST be increasing and MUST be an integral multiple of 4. Also, -** CFE_ES_MAX_BLOCK_SIZE must be larger than CFE_SB_MAX_SB_MSG_SIZE and both -** CFE_TBL_MAX_SNGL_TABLE_SIZE and CFE_TBL_MAX_DBL_TABLE_SIZE. Note that if Table -** Services have been removed from the CFE, the table size limits are still -** enforced although the table size definitions may be reduced. Refer to the CFS -** Deployment Guide for information about removing CFE Table Services from the CFE. -*/ -#define CFE_ES_MEM_BLOCK_SIZE_01 8 -#define CFE_ES_MEM_BLOCK_SIZE_02 16 -#define CFE_ES_MEM_BLOCK_SIZE_03 32 -#define CFE_ES_MEM_BLOCK_SIZE_04 48 -#define CFE_ES_MEM_BLOCK_SIZE_05 64 -#define CFE_ES_MEM_BLOCK_SIZE_06 96 -#define CFE_ES_MEM_BLOCK_SIZE_07 128 -#define CFE_ES_MEM_BLOCK_SIZE_08 160 -#define CFE_ES_MEM_BLOCK_SIZE_09 256 -#define CFE_ES_MEM_BLOCK_SIZE_10 512 -#define CFE_ES_MEM_BLOCK_SIZE_11 1024 -#define CFE_ES_MEM_BLOCK_SIZE_12 2048 -#define CFE_ES_MEM_BLOCK_SIZE_13 4096 -#define CFE_ES_MEM_BLOCK_SIZE_14 8192 -#define CFE_ES_MEM_BLOCK_SIZE_15 16384 -#define CFE_ES_MEM_BLOCK_SIZE_16 80000 -#define CFE_ES_MAX_BLOCK_SIZE 200000 - - -/** -** \cfeescfg Define ES Critical Data Store Memory Pool Block Sizes -** -** \par Description: -** Intermediate ES Critical Data Store Memory Pool Block Sizes -** -** \par Limits -** These sizes MUST be increasing and MUST be an integral multiple of 4. -*/ -#define CFE_ES_CDS_MEM_BLOCK_SIZE_01 8 -#define CFE_ES_CDS_MEM_BLOCK_SIZE_02 16 -#define CFE_ES_CDS_MEM_BLOCK_SIZE_03 32 -#define CFE_ES_CDS_MEM_BLOCK_SIZE_04 48 -#define CFE_ES_CDS_MEM_BLOCK_SIZE_05 64 -#define CFE_ES_CDS_MEM_BLOCK_SIZE_06 96 -#define CFE_ES_CDS_MEM_BLOCK_SIZE_07 128 -#define CFE_ES_CDS_MEM_BLOCK_SIZE_08 160 -#define CFE_ES_CDS_MEM_BLOCK_SIZE_09 256 -#define CFE_ES_CDS_MEM_BLOCK_SIZE_10 512 -#define CFE_ES_CDS_MEM_BLOCK_SIZE_11 1024 -#define CFE_ES_CDS_MEM_BLOCK_SIZE_12 2048 -#define CFE_ES_CDS_MEM_BLOCK_SIZE_13 4096 -#define CFE_ES_CDS_MEM_BLOCK_SIZE_14 8192 -#define CFE_ES_CDS_MEM_BLOCK_SIZE_15 16384 -#define CFE_ES_CDS_MEM_BLOCK_SIZE_16 32768 -#define CFE_ES_CDS_MAX_BLOCK_SIZE 80000 - - - -/** -** \cfeevscfg Define Maximum Number of Event Filters per Application -** -** \par Description: -** Maximum number of events that may be filtered per application. -** -** \par Limits -** There is an upper limit of 32767 on this configuration paramater. -*/ -#define CFE_EVS_MAX_EVENT_FILTERS (256) - - -/** -** \cfeevscfg Enable or Disable EVS Local Event Log -** -** \par Description: -** The CFE_EVS_LOG_ON configuration parameter must be defined to enable EVS -** event logging. In order to disable the local event log this definition needs -** to be commented out. -** -** \par Limits -** Not Applicable -*/ -#define CFE_EVS_LOG_ON - - -/** -** \cfeevscfg Default Event Log Filename -** -** \par Description: -** The value of this constant defines the filename used to store the Event -** Services local event log. This filename is used only when no filename is -** specified in the command to dump the event log. -** -** \par Limits -** The length of each string, including the NULL terminator cannot exceed the -** #OS_MAX_PATH_LEN value. -*/ -#define CFE_EVS_DEFAULT_LOG_FILE "/ram/cfe_evs.log" - - -/** -** \cfeevscfg Maximum Number of Events in EVS Local Event Log -** -** \par Description: -** Dictates the EVS local event log capacity. Units are the number of events. -** -** \par Limits -** There is an upper limit of 65535 on this configuration paramater. -*/ -#define CFE_EVS_LOG_MAX 20 - - -/** -** \cfeevscfg Default EVS Application Data Filename -** -** \par Description: -** The value of this constant defines the filename used to store the EVS -** Application Data(event counts/filtering information). This filename is -** used only when no filename is specified in the command to dump the event -** log. -** -** \par Limits -** The length of each string, including the NULL terminator cannot exceed the -** #OS_MAX_PATH_LEN value. -*/ -#define CFE_EVS_DEFAULT_APP_DATA_FILE "/ram/cfe_evs_app.dat" - - -/** -** \cfeevscfg Default EVS Output Port State -** -** \par Description: -** Defines the default port state (enabled or deisabled) for the four output -** ports defined within the Event Service. Port 1 is usually the uart output -** terminal. To enable a port, set the proper bit to a 1. Bit 0 is port 1, -** bit 1 is port2 etc. -** -** \par Limits -** The valid settings are 0x0 to 0xF. -*/ -#define CFE_EVS_PORT_DEFAULT 0x0001 - - -/** -** \cfeevscfg Default EVS Event Type Filter Mask -** -** \par Description: -** Defines a state of on or off for all four event types. The term event -** 'type' refers to the criticality level and may be Debug, Informational, -** Error or Critical. Each event type has a bit position. (bit 0 = Debug, -** bit 1 = Info, bit 2 = Error, bit 3 = Critical). This is a global setting, -** meaning it applies to all applications. To filter an event type, set its -** bit to zero. For example, -** 0xE means Debug = OFF, Info = ON, Error = ON, Critical = ON -** -** \par Limits -** The valid settings are 0x0 to 0xF. -*/ -#define CFE_EVS_DEFAULT_TYPE_FLAG 0xE - - - -/** -** \cfeevscfg Default EVS Local Event Log Mode -** -** \par Description: -** Defines a state of overwrite(0) or discard(1) for the operation of the -** EVS local event log. The log may operate in either Overwrite mode = 0, -** where once the log becomes full the oldest event in the log will be -** overwritten, or Discard mode = 1, where once the log becomes full the -** contents of the log are preserved and the new event is discarded. -** Overwrite Mode = 0, Discard Mode = 1. -** -** \par Limits -** The valid settings are 0 or 1 -*/ -#define CFE_EVS_DEFAULT_LOG_MODE 1 - - -/** -** \cfeevscfg Default EVS Message Format Mode -** -** \par Description: -** Defines the default message format (long or short) for event messages being -** sent to the ground. Choose between #CFE_EVS_LONG_FORMAT or -** #CFE_EVS_SHORT_FORMAT. -** -** \par Limits -** The valid settings are #CFE_EVS_LONG_FORMAT or #CFE_EVS_SHORT_FORMAT -*/ -#define CFE_EVS_DEFAULT_MSG_FORMAT_MODE CFE_EVS_LONG_FORMAT - - - -/* Platform Configuration Parameters for Table Service (TBL) */ - -/** -** \cfetblcfg Size of Table Services Table Memory Pool -** -** \par Description: -** Defines the TOTAL size of the memory pool that cFE Table Services allocates -** from the system. The size must be large enough to provide memory for each -** registered table, the inactive buffers for double buffered tables and for -** the shared inactive buffers for single buffered tables. -** -** \par Limits -** The cFE does not place a limit on the size of this parameter. -*/ -#define CFE_TBL_BUF_MEMORY_BYTES 1048576 - -/** -** \cfetblcfg Maximum Size Allowed for a Double Buffered Table -** -** \par Description: -** Defines the maximum allowed size (in bytes) of a double buffered table. -** -** \par Limits -** The cFE does not place a limit on the size of this parameter but it must be -** less than half of #CFE_TBL_BUF_MEMORY_BYTES. -*/ -#define CFE_TBL_MAX_DBL_TABLE_SIZE 65535 - -/** -** \cfetblcfg Maximum Size Allowed for a Single Buffered Table -** -** \par Description: -** Defines the maximum allowed size (in bytes) of a single buffered table. -** \b NOTE: This size determines the size of all shared table buffers. -** Therefore, this size will be multiplied by #CFE_TBL_MAX_SIMULTANEOUS_LOADS -** below when allocating memory for shared tables. -** -** \par Limits -** The cFE does not place a limit on the size of this parameter but it must be -** small enough to allow for #CFE_TBL_MAX_SIMULTANEOUS_LOADS number of tables -** to fit into #CFE_TBL_BUF_MEMORY_BYTES. -*/ -#define CFE_TBL_MAX_SNGL_TABLE_SIZE 65535 - -/** -** \cfetblcfg Maximum Number of Tables Allowed to be Registered -** -** \par Description: -** Defines the maximum number of tables supported by this processor's Table Services. -** -** \par Limits -** This number must be less than 32767. It should be recognized that this parameter -** determines the size of the Table Registry. An excessively high number will waste -** memory. -*/ -#define CFE_TBL_MAX_NUM_TABLES 128 - -/** -** \cfetblcfg Maximum Number of Critical Tables that can be Registered -** -** \par Description: -** Defines the maximum number of critical tables supported by this processor's Table Services. -** -** \par Limits -** This number must be less than 32767. It should be recognized that this parameter -** determines the size of the Critical Table Registry which is maintained in the Critical -** Data Store. An excessively high number will waste Critical Data Store memory. Therefore, -** this number must not exceed the value defined in CFE_ES_CDS_MAX_CRITICAL_TABLES. -*/ -#define CFE_TBL_MAX_CRITICAL_TABLES 32 - -/** -** \cfetblcfg Maximum Number of Table Handles -** -** \par Description: -** Defines the maximum number of Table Handles. -** -** \par Limits -** This number must be less than 32767. This number must be at least as big as -** the number of tables (#CFE_TBL_MAX_NUM_TABLES) and should be set higher if tables -** are shared between applications. -*/ -#define CFE_TBL_MAX_NUM_HANDLES 256 - -/** -** \cfetblcfg Maximum Number of Simultaneous Loads to Support -** -** \par Description: -** Defines the maximum number of single buffered tables that can be -** loaded simultaneously. This number is used to determine the number -** of shared buffers to allocate. -** -** \par Limits -** This number must be less than 32767. An excessively high number will -** degrade system performance and waste memory. A number less than 5 is -** suggested but not required. -*/ -#define CFE_TBL_MAX_SIMULTANEOUS_LOADS 4 - -/** -** \cfetblcfg Maximum Number of Simultaneous Table Validations -** -** \par Description: -** Defines the maximum number of pending validations that -** the Table Services can handle at any one time. When a -** table has a validation function, a validation request is -** made of the application to perform that validation. This -** number determines how many of those requests can be -** outstanding at any one time. -** -** \par Limits -** This number must be less than 32767. An excessively high number will -** degrade system performance and waste memory. A number less than 20 is -** suggested but not required. -*/ -#define CFE_TBL_MAX_NUM_VALIDATIONS 10 - -/** -** \cfetblcfg Default Filename for a Table Registry Dump -** -** \par Description: -** Defines the file name used to store the table registry when -** no filename is specified in the dump registry command. -** -** \par Limits -** The length of each string, including the NULL terminator cannot exceed the -** #OS_MAX_PATH_LEN value. -*/ -#define CFE_TBL_DEFAULT_REG_DUMP_FILE "/ram/cfe_tbl_reg.log" - -/** -** \cfetblcfg Number of Spacecraft ID's specified for validation -** -** \par Description: -** Defines the number of specified spacecraft ID values that -** are verified during table loads. If the number is zero -** then no validation of the spacecraft ID field in the table -** file header is performed when tables are loaded. Non-zero -** values indicate how many values from the list of spacecraft -** ID's defined below are compared to the spacecraft ID field -** in the table file header. The ELF2CFETBL tool may be used -** to create table files with specified spacecraft ID values. -** -** \par Limits -** This number must be greater than or equal to zero and -** less than or equal to 2. -*/ -#define CFE_TBL_VALID_SCID_COUNT 0 - -/* macro to construct 32 bit value from 4 chars */ -#define CFE_TBL_U32FROM4CHARS( _C1, _C2, _C3, _C4 ) \ - ( (uint32)(_C1) << 24 | \ - (uint32)(_C2) << 16 | \ - (uint32)(_C3) << 8 | \ - (uint32)(_C4) ) - -/** -** \cfetblcfg Spacecraft ID values used for table load validation -** -** \par Description: -** Defines the spacecraft ID values used for validating the -** spacecraft ID field in the table file header. To be valid, -** the spacecraft ID specified in the table file header must -** match one of the values defined here. -** -** \par Limits -** This value can be any 32 bit unsigned integer. -*/ -#define CFE_TBL_VALID_SCID_1 (CFE_SPACECRAFT_ID) -#define CFE_TBL_VALID_SCID_2 (CFE_TBL_U32FROM4CHARS('a', 'b', 'c', 'd')) - -/** -** \cfetblcfg Number of Processor ID's specified for validation -** -** \par Description: -** Defines the number of specified processor ID values that -** are verified during table loads. If the number is zero -** then no validation of the processor ID field in the table -** file header is performed when tables are loaded. Non-zero -** values indicate how many values from the list of processor -** ID's defined below are compared to the processor ID field -** in the table file header. The ELF2CFETBL tool may be used -** to create table files with specified processor ID values. -** -** \par Limits -** This number must be greater than or equal to zero and -** less than or equal to 4. -*/ -#define CFE_TBL_VALID_PRID_COUNT 0 - -/** -** \cfetblcfg Processor ID values used for table load validation -** -** \par Description: -** Defines the processor ID values used for validating the -** processor ID field in the table file header. To be valid, -** the spacecraft ID specified in the table file header must -** match one of the values defined here. -** -** \par Limits -** This value can be any 32 bit unsigned integer. -*/ -#define CFE_TBL_VALID_PRID_1 (CFE_CPU_ID) -#define CFE_TBL_VALID_PRID_2 (CFE_TBL_U32FROM4CHARS('a', 'b', 'c', 'd')) -#define CFE_TBL_VALID_PRID_3 0 -#define CFE_TBL_VALID_PRID_4 0 - -/** \cfeescfg Mission specific version number for cFE -** -** \par Description: -** The cFE version number consists of four parts: -** major version number, minor version number, revision -** number and mission specific revision number. The mission -** specific revision number is defined here and the other -** parts are defined in "cfe_version.h". -** -** \par Limits: -** Must be defined as a numeric value that is greater than -** or equal to zero. -*/ -#define CFE_MISSION_REV 0 - -/** \cfeescfg Poll timer for startup sync delay -** -** \par Description: -** During startup, some tasks may need to synchronize their own initialization -** with the initialization of other applications in the system. -** -** CFE ES implements an API to accomplish this, that performs a task delay (sleep) -** while polling the overall system state until other tasks are ready. -** -** This value controls the amount of time that the CFE_ES_ApplicationSyncDelay -** will sleep between each check of the system state. This should be large enough -** to allow other tasks to run, but not so large as to noticeably delay the startup -** completion. -** -** Units are in milliseconds -** -** \par Limits: -** Must be defined as an integer value that is greater than -** or equal to zero. -*/ -#define CFE_ES_STARTUP_SYNC_POLL_MSEC 50 - -/** \cfeescfg CFE core application startup timeout -** -** \par Description: -** The upper limit for the amount of time that the cFE core applications -** (ES, SB, EVS, TIME, TBL) are each alloted to reach their respective -** "ready" states. -** -** The CFE "main" thread starts individual tasks for each of the core applications -** (except FS). Each of these must perform some initialization work before the -** next core application can be started, so the main thread waits to ensure that the -** application has reached the "ready" state before starting the next application. -** -** If any core application fails to start, then it indicates a major problem with -** the system and startup is aborted. -** -** Units are in milliseconds -** -** \par Limits: -** Must be defined as an integer value that is greater than -** or equal to zero. -** -*/ -#define CFE_CORE_MAX_STARTUP_MSEC 30000 - -/** \cfeescfg Startup script timeout -** -** \par Description: -** The upper limit for the total amount of time that all apps listed in the CFE ES startup -** script may take to all become ready. -** -** Unlike the "core" app timeout, this is a soft limit; if the alloted time is exceeded, -** it probably indicates an issue with one of the apps, but does not cause CFE ES to take -** any additional action other than logging the event to the syslog. -** -** Units are in milliseconds -** -** \par Limits: -** Must be defined as an integer value that is greater than -** or equal to zero. - */ -#define CFE_ES_STARTUP_SCRIPT_TIMEOUT_MSEC 30000 - - -#endif diff --git a/config/bebop2/inc/ci_msgids.h b/config/bebop2/inc/ci_msgids.h deleted file mode 100644 index 9424bf351..000000000 --- a/config/bebop2/inc/ci_msgids.h +++ /dev/null @@ -1,10 +0,0 @@ -#ifndef CI_MSGIDS_H -#define CI_MSGIDS_H - -#include "msg_ids.h" - -#endif - -/************************/ -/* End of File Comment */ -/************************/ diff --git a/config/bebop2/inc/ci_platform_cfg.h b/config/bebop2/inc/ci_platform_cfg.h deleted file mode 100644 index 63437675c..000000000 --- a/config/bebop2/inc/ci_platform_cfg.h +++ /dev/null @@ -1,154 +0,0 @@ -#ifndef CI_PLATFORM_CFG_H -#define CI_PLATFORM_CFG_H - -#ifdef __cplusplus -extern "C" { -#endif - - -/* -** ci Platform Configuration Parameter Definitions -*/ - -/** \brief Mission specific version number for CI application -** -** \par Description: -** An application version number consists of four parts: -** major version number, minor version number, revision -** number and mission specific revision number. The mission -** specific revision number is defined here and the other -** parts are defined in "ci_version.h". -** -** \par Limits: -** Must be defined as a numeric value that is greater than -** or equal to zero. -*/ -#define CI_MISSION_REV (1) - -/** \brief Pipe depth for the Scheduler pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define CI_SCH_PIPE_DEPTH (2) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define CI_SCH_PIPE_NAME ("CI_SCH_PIPE") - -/** \brief The SB pend behavior type for the Scheduler pipe. -** -** \par Limits: -** One of: CFE_SB_POLL, CFE_SB_PEND_FOREVER, or the -** number of milliseconds to wait for a new message (recommended). -** Note, using CFE_SB_PEND_FOREVER may cause an unresponsive -** application if no messages arrive on this pipe. -*/ -#define CI_SCH_PIPE_PEND_TIME (2000) - -/** \brief The number of WAKEUP messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max limited to CFE_SB_MAX_PIPE_DEPTH-1. Note the -** CI_SCH_PIPE_WAKEUP_RESERVED and CI_SCH_PIPE_SEND_HK_RESERVED -** must be less than CI_SCH_PIPE_DEPTH. -*/ -#define CI_SCH_PIPE_WAKEUP_RESERVED (1) - -/** \brief The number of SEND_HK messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. Note the -** CI_SCH_PIPE_WAKEUP_RESERVED and CI_SCH_PIPE_SEND_HK_RESERVED -** must be less than CI_SCH_PIPE_DEPTH. -*/ -#define CI_SCH_PIPE_SEND_HK_RESERVED (1) - -/** \brief The number of PROCESS_TIMEOUT messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define CI_SCH_PIPE_PROC_TIMEOUT_RESERVED (1) - -/** \brief Pipe depth for the command pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define CI_CMD_PIPE_DEPTH (4) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define CI_CMD_PIPE_NAME ("CI_CMD_PIPE") - -/** \brief The config table default filename -** -** \par Limits: -** The length of each string, including the NULL terminator cannot exceed -** the #OS_MAX_PATH_LEN value. -*/ -#define CI_CONFIG_TABLE_FILENAME ("/cf/apps/ci_config.tbl") - -/** \brief The timeout table default filename -** -** \par Limits: -** The length of each string, including the NULL terminator cannot exceed -** the #OS_MAX_PATH_LEN value. -*/ -#define CI_TIMEOUT_TABLE_FILENAME ("/cf/apps/ci_timeout.tbl") - -/** \brief The timeout value, in milliseconds, to wait for ES application startup sync. -** -** \par Limits: -** This parameter must be at least 1000 (ms). -*/ -#define CI_STARTUP_TIMEOUT_MSEC (5000) - -/** \brief CI Ingest Mode */ -#define CI_INGEST_MODE (CI_BHV_OPTIMISTIC) - -/** \brief CI Listener Task Delay -** -** \note The main ingest loop is a while loop and sleeps for this many -** milliseconds each iteration. - */ -#define CI_LISTENER_TASK_DELAY (100) - -/** \brief CI Lister Task Stack Size */ -#define CI_LISTENER_TASK_STACK_SIZE (160000) - -/** \brief CI Lister Task Flags for CFE_ES_CreateChildTask() */ -#define CI_LISTENER_TASK_FLAGS (OS_ENABLE_CORE_0) - -/** \brief CI Lister Task Priority */ -#define CI_LISTENER_TASK_PRIORITY (109) - -/** \brief The largest size message CI can ingest */ -#define CI_MAX_CMD_INGEST (CFE_SB_MAX_SB_MSG_SIZE) - -/** \brief Listener task name */ -#define CI_LISTENER_TASK_NAME ("CI_LISTENER") - -/** \brief CI config table mutex name */ -#define CI_CFG_TBL_MUTEX_NAME ("CI_CFG_TBL_MUTEX") - -/** \brief CI timeout table mutex name */ -#define CI_TIME_TBL_MUTEX_NAME ("CI_TIME_TBL_MUTEX") - -#ifdef __cplusplus -} -#endif - -#endif /* CI_PLATFORM_CFG_H */ - -/************************/ -/* End of File Comment */ -/************************/ - diff --git a/config/bebop2/inc/cs_msgids.h b/config/bebop2/inc/cs_msgids.h deleted file mode 100644 index 688d2c27d..000000000 --- a/config/bebop2/inc/cs_msgids.h +++ /dev/null @@ -1,11 +0,0 @@ -#ifndef CS_MSGIDS_H -#define CS_MSGIDS_H - -#include "msg_ids.h" - -#endif /*CS_MSGIDS_H*/ - -/************************/ -/* End of File Comment */ -/************************/ - diff --git a/config/bebop2/inc/cs_platform_cfg.h b/config/bebop2/inc/cs_platform_cfg.h deleted file mode 100644 index b744a641d..000000000 --- a/config/bebop2/inc/cs_platform_cfg.h +++ /dev/null @@ -1,305 +0,0 @@ -#ifndef CS_PLATFORM_CFG_H -#define CS_PLATFORM_CFG_H - -#include "osapi.h" - -/************************************************************************* - ** Macro Definitions - *************************************************************************/ - -#define CS_CHILD_TASK_FLAGS OS_ENABLE_CORE_0 - -/** -** \cscfg EEPROM File Table -- default table filename -** -** \par Description: -** This parameter defines the default filename for the -** EEPROM addresses File Table. -** -** \par Limits: -** The string length (including string terminator) cannot exceed -** #OS_MAX_PATH_LEN. (limit is not verified) -*/ -#define CS_DEF_EEPROM_TABLE_FILENAME "/cf/apps/cs_eepromtbl.tbl" - -/** -** \cscfg Memory Address File Table -- default table filename -** -** \par Description: -** This parameter defines the default filename for the -** Memory addresses File Table. -** -** \par Limits: -** The string length (including string terminator) cannot exceed -** #OS_MAX_PATH_LEN. (limit is not verified) -*/ -#define CS_DEF_MEMORY_TABLE_FILENAME "/cf/apps/cs_memorytbl.tbl" - -/** -** \cscfg Tables File Table -- default table filename -** -** \par Description: -** This parameter defines the default filename for the -** Tables List File Table. -** -** \par Limits: -** The string length (including string terminator) cannot exceed -** #OS_MAX_PATH_LEN. (limit is not verified) -*/ -#define CS_DEF_TABLES_TABLE_FILENAME "/cf/apps/cs_tablestbl.tbl" - -/** -** \cscfg Application File Table -- default table filename -** -** \par Description: -** This parameter defines the default filename for the -** Application List File Table. -** -** \par Limits: -** The string length (including string terminator) cannot exceed -** #OS_MAX_PATH_LEN. (limit is not verified) -*/ -#define CS_DEF_APP_TABLE_FILENAME "/cf/apps/cs_apptbl.tbl" - -/** -** \cscfg Application Pipe Depth -** -** \par Description: -** This parameter defines the depth of the CS input pipe. The -** depth should be deep enough to accommodate all of the DS -** command packets and all of the subscribed telemetry packets -** that might be generated by applications with a priority -** higher than the CS application. -** -** \par Limits: -** The value must be greater than zero and cannot exceed the -** definition of #CFE_SB_MAX_PIPE_DEPTH. -*/ -#define CS_PIPE_DEPTH 12 - -/** \cscfg Maximum number of entries in the Eeprom table to checksum - ** - ** \par Description: - ** Maximum number of entries that can be in the table of - ** Eeprom areas to checksum. - ** - ** \par Limits: - ** This parameter is limited by the uint16 datatype that defines it. - ** This parameter is limited to 65535. - ** - */ -#define CS_MAX_NUM_EEPROM_TABLE_ENTRIES 16 - -/** \cscfg Maximum number of entries in the Memory table to checksum - ** - ** \par Description: - ** Maximum number of entries that can be in the table of - ** Memory areas to checksum. - ** - ** \par Limits: - ** This parameter is limited by the uint16 datatype that defines it. - ** This parameter is limited to 65535. - ** - */ -#define CS_MAX_NUM_MEMORY_TABLE_ENTRIES 16 - -/** \cscfg Maximum number of tables to checksum - ** - ** \par Description: - ** Maximum number of entries in the table of tables to checksum - ** - ** \par Limits: - ** This parameter is limited by the maximum number of tables allowed - ** in the system. This parameter is limited to #CFE_TBL_MAX_NUM_TABLES - ** - */ -#define CS_MAX_NUM_TABLES_TABLE_ENTRIES 24 - -/** \cscfg Maximum number of applications to checksum - ** - ** \par Description: - ** Maximum number of entries in the table of applications to checksum - ** - ** \par Limits: - ** This parameter is limited by the maximum number of applications allowed - ** in the system. This parameter is limited to #CFE_ES_MAX_APPLICATIONS - ** - */ -#define CS_MAX_NUM_APP_TABLE_ENTRIES 24 - -/** \cscfg Default number of bytes to checksum per cycle - ** - ** \par Description: - ** The default number of bytes that are checksummed in a single CS cycle - ** - ** \par Limits: - ** This parameter is limited by the maximum value allowed by the data type. - ** In this case, the data type is an unsigned 32-bit integer, so the valid - ** range is 0 to 0xFFFFFFFF. Note that "0" is a valid value, and will - ** result in a checksum of 0. - ** - */ -#define CS_DEFAULT_BYTES_PER_CYCLE (1024 *16) - -/** \cscfg CS Child Task Priority - ** - ** \par Description: - ** Priority of child tasks created by CS. Lower numbers are higher priority, - ** with 1 being the highest priority in the case of a child task. - ** - ** \par Limits: - ** Valid range for a child task is 1 to 255, but the priority cannot be - ** higher (lower number) than the CS App priority. - ** - */ -#define CS_CHILD_TASK_PRIORITY 202 - - -/** \cscfg Delay between checksumming cycles for child task - ** - ** \par Description: - ** CS child tasks perform checksum cycles like the main App. - ** Since the child tasks aren't scheduled, there needs to be - ** some other mechanism to prevent it from hogging the CPU. - ** This parameter specifies the number of milliseconds to delay - ** in between cycles. - ** - ** \par Limits: - ** CS does not place limits on this parameter. It is intended to - ** be configurable to prevent the child task from hogging the CPU - ** - */ -#define CS_CHILD_TASK_DELAY 1000 - - -/** \cscfg Timeout for waiting for other apps to start - ** - ** \par Description: - ** CS waits for all of the other applications that are listed in - ** the startup script to start before entering its main loop. If - ** not all of those apps start, CS can pend indefinitely without - ** a timeout. Once CS waits this amount of time ( in milliseconds) - ** it will start regardless of the status of the rest of the apps - ** in the startup script. - ** - ** \par Limits: - ** CS does not place limits on this parameter. It is intended to - ** be configurable to allow enough time for all apps to start. - ** - */ -#define CS_STARTUP_TIMEOUT 60000 - - - -/** \cscfg Desired state of the checksumming of OS code segment at power on -** -** \par Description: -** This determines the default state the checksumming of -** OS code segment should be in at power on -** -** \par Limits: -** This can either be CS_STATE_ENABLED or CS_STATE_DISABLED -*/ -#define CS_OSCS_CHECKSUM_STATE CS_STATE_ENABLED - -/** \cscfg Desired state of the checksumming of CFE core checksum at power on -** -** \par Description: -** This determines the default state the checksumming of -** CFE core should be in at power on -** -** \par Limits: -** This can either be CS_STATE_ENABLED or CS_STATE_DISABLED -*/ -#define CS_CFECORE_CHECKSUM_STATE CS_STATE_ENABLED - -/** \cscfg Desired state of the EEPROM table at power on -** -** \par Description: -** This determines the default state the EEPROM table should -** be in at power on -** -** \par Limits: -** This can either be CS_STATE_ENABLED or CS_STATE_DISABLED -*/ -#define CS_EEPROM_TBL_POWERON_STATE CS_STATE_ENABLED - -/** \cscfg Desired state of the EEPROM table at power on -** -** \par Description: -** This determines the default state the Memory table should -** be in at power on -** -** \par Limits: -** This can either be CS_STATE_ENABLED or CS_STATE_DISABLED -*/ -#define CS_MEMORY_TBL_POWERON_STATE CS_STATE_ENABLED - -/** \cscfg Desired state of the Applications table at power on -** -** \par Description: -** This determines the default state the EEPROM table should -** be in at power on -** -** \par Limits: -** This can either be CS_STATE_ENABLED or CS_STATE_DISABLED -*/ -#define CS_APPS_TBL_POWERON_STATE CS_STATE_ENABLED - -/** \cscfg Desired state of the Tables table at power on -** -** \par Description: -** This determines the default state the EEPROM table should -** be in at power on -** -** \par Limits: -** This can either be CS_STATE_ENABLED or CS_STATE_DISABLED -*/ -#define CS_TABLES_TBL_POWERON_STATE CS_STATE_ENABLED - -/** \cscfg Whether to preserve checksum states on processor reset -** -** \par Description: -** This determines whether to preserve checksum -** enabled/disabled states on processor reset -** -** \par Limits: -** None -*/ -#define CS_PRESERVE_STATES_ON_PROCESSOR_RESET TRUE - - -/** \cscfg Name of the Critical Data Store Used for CS -** -** \par Description: -** Name of the Critical Data Store for CS -** This CDS is used to preserve the checksum -** enabled states for EERPOM, Memory, Apps, Tables tables -** as well as OS code segment and cFE core states -** -** \par Limits: -** Must be a unique string with regards to CDS -*/ -#define CS_CDS_NAME "CS_CDS" - -/** \cscfg Mission specific version number for CS application -** -** \par Description: -** An application version number consists of four parts: -** major version number, minor version number, revision -** number and mission specific revision number. The mission -** specific revision number is defined here and the other -** parts are defined in "cs_version.h". -** -** \par Limits: -** Must be defined as a numeric value that is greater than -** or equal to zero. -*/ -#define CS_MISSION_REV 0 - -#endif /*_cs_platform_cfg_*/ - -/************************/ -/* End of File Comment */ -/************************/ - diff --git a/config/bebop2/inc/ds_msgids.h b/config/bebop2/inc/ds_msgids.h deleted file mode 100644 index d288329a0..000000000 --- a/config/bebop2/inc/ds_msgids.h +++ /dev/null @@ -1,11 +0,0 @@ -#ifndef DS_MSGIDS_H -#define DS_MSGIDS_H - -#include "msg_ids.h" - - -#endif /* DS_MSGIDS_H */ - -/************************/ -/* End of File Comment */ -/************************/ diff --git a/config/bebop2/inc/ds_platform_cfg.h b/config/bebop2/inc/ds_platform_cfg.h deleted file mode 100644 index 0a2d305dd..000000000 --- a/config/bebop2/inc/ds_platform_cfg.h +++ /dev/null @@ -1,471 +0,0 @@ -#ifndef DS_PLATFORM_CFG_H -#define DS_PLATFORM_CFG_H - - -/** -** \dscfg Destination File Table -- logical table name -** -** \par Description: -** This parameter defines the name of the DS Destination File -** Table when referenced via cFE Table Services. Note that this -** parameter is not a filename, it is the table specific portion -** of the logical name. The entire logical name for this table -** is "DS.FILE_TBL". -** -** \par Limits: -** The string length (including string terminator) cannot exceed -** #CFE_TBL_MAX_NAME_LENGTH. (limit is not verified) -*/ -#define DS_DESTINATION_TBL_NAME "FILE_TBL" - - -/** -** \dscfg Destination File Table -- default table filename -** -** \par Description: -** This parameter defines the default filename for the -** Destination File Table. -** -** \par Limits: -** The string length (including string terminator) cannot exceed -** #OS_MAX_PATH_LEN. (limit is not verified) -*/ -#define DS_DEF_DEST_FILENAME "/cf/apps/ds_file_tbl.tbl" - - -/** -** \dscfg Destination File Table -- number of files -** -** \par Description: -** This parameter defines the size of the DS Destination File -** Table by setting the number of file entries in the table. The -** number should be large enough to provide an entry for all the -** destination files defined for the project. Maintenance will -** be simplified if file index 'n' always describes the same -** file - even if that file is not in use at the present time. -** -** \par Limits: -** The number must be greater than zero but there is no upper -** enforced limit for this parameter. -*/ -#define DS_DEST_FILE_CNT 16 - - -/** -** \dscfg Destination File Table -- pathname buffer size -** -** \par Description: -** This parameter further defines the size of the Destination -** File Table by setting the size of the pathname buffer for -** each file entry. Note that the buffer must contain both -** the string and the string terminator - so the max string -** length is one less than the buffer size. -** -** \par Limits: -** The buffer size must be greater than zero and a multiple -** of four bytes for alignment. The value cannot exceed the -** maximum filename size allowed by the OS (#OS_MAX_PATH_LEN). -*/ -#define DS_PATHNAME_BUFSIZE OS_MAX_PATH_LEN - - -/** -** \dscfg Destination File Table -- basename buffer size -** -** \par Description: -** This parameter further defines the size of the Destination -** File Table by setting the size of the basename buffer for -** each file entry. Note that the buffer must contain both -** the string and the string terminator - so the max string -** length is one less than the buffer size. -** -** \par Limits: -** The buffer size must be greater than zero and a multiple -** of four bytes for alignment. The value cannot exceed the -** maximum filename size allowed by the OS (#OS_MAX_PATH_LEN). -*/ -#define DS_BASENAME_BUFSIZE OS_MAX_PATH_LEN - - -/** -** \dscfg Destination File Table -- extension buffer size -** -** \par Description: -** This parameter further defines the size of the Destination -** File Table by setting the size of the extension buffer for -** each file entry. Note that the buffer must contain both -** the string and the string terminator - so the max string -** length is one less than the buffer size. -** -** \par Limits: -** The buffer size must be greater than zero and a multiple -** of four bytes for alignment. The value cannot exceed the -** maximum filename size allowed by the OS (#OS_MAX_PATH_LEN). -*/ -#define DS_EXTENSION_BUFSIZE 8 - - -/** -** \dscfg Packet Filter Table -- logical table name -** -** \par Description: -** This parameter defines the name of the DS Packet Filter Table -** when referenced via cFE Table Services. Note that this -** parameter is not a filename, it is the table specific portion -** of the logical name. The entire logical name for this table -** is "DS.FILTER_TBL". -** -** \par Limits: -** The string length (including string terminator) cannot exceed -** #CFE_TBL_MAX_NAME_LENGTH. (limit is not verified) -*/ -#define DS_FILTER_TBL_NAME "FILTER_TBL" - - -/** -** \dscfg Packet Filter Table -- default table filename -** -** \par Description: -** This parameter defines the default filename for the -** Packet Filter Table. -** -** \par Limits: -** The string length (including string terminator) cannot exceed -** #OS_MAX_PATH_LEN. (limit is not verified) -*/ -#define DS_DEF_FILTER_FILENAME "/cf/apps/ds_filter_tbl.tbl" - - -/** -** \dscfg Packet Filter Table -- number of packets -** -** \par Description: -** This parameter defines the size of the DS Packet Filter Table -** by setting the number of packet entries in the table. The -** number should be large enough to provide an entry for each -** command and telemetry packet subject to data storage. -** -** \par Limits: -** The number must be greater than zero but there is no upper -** enforced limit for this parameter. However, setting the -** size equal to the number of packets that might be subject -** to data storage, rather than the total number of packets -** defined for this project, will reduce the table file size, -** possibly significantly. -*/ -#define DS_PACKETS_IN_FILTER_TABLE 256 - - -/** -** \dscfg Packet Filter Table -- filters per packet -** -** \par Description: -** This parameter further defines the size of the DS Packet -** Filter Table by setting the number of filters per packet -** entry. This is the maximum number of destination files -** to which a single packet can be written (at one time). -** -** \par Limits: -** The number of filters per packet must be greater than zero -** and not greater than #DS_DEST_FILE_CNT. -*/ -#define DS_FILTERS_PER_PACKET 4 - - -/** -** \dscfg Common Table File -- descriptor text buffer size -** -** \par Description: -** This parameter defines the size of the Descriptor Text -** fields in both the Destination File Table and the Packet -** Filter Table. The buffer includes the string terminator. -** -** \par Limits: -** The buffer size must be greater than zero and a multiple -** of four bytes for alignment. There is no upper limit. -*/ -#define DS_DESCRIPTOR_BUFSIZE 32 - - -/** -** \dscfg Filename Sequence Count -- number of digits -** -** \par Description: -** This parameter defines the number of filename sequence -** count digits used when the filename type has been set to -** "count" rather than "time". Sequence counts are padded -** with leading zero's to create fixed length strings. -** -** \par Limits: -** The number of sequence count digits must be greater than -** zero - even if there is no intention of later setting -** the filename type to "count". This value should match -** the definition for #DS_MAX_SEQUENCE_COUNT, below. -*/ -#define DS_SEQUENCE_DIGITS 8 - - -/** -** \dscfg Filename Sequence Count -- max counter value -** -** \par Description: -** This parameter defines the maximum value a file sequence -** count will reach before rollover. -** -** \par Limits: -** The value must be greater than zero and should not have -** more digits than the number of sequence count digits -** defined for #DS_SEQUENCE_DIGITS, above. -*/ -#define DS_MAX_SEQUENCE_COUNT 99999999 - - -/** -** \dscfg Data Storage File -- total filename size -** -** \par Description: -** This parameter defines the maximum size of a filename after -** combining the pathname, basename, sequence and extension. -** -** \par Limits: -** The buffer size must be greater than zero and a multiple -** of four bytes for alignment. The buffer size (including -** string terminator) cannot exceed #OS_MAX_PATH_LEN. -*/ -#define DS_TOTAL_FNAME_BUFSIZE OS_MAX_PATH_LEN - - -/** -** \dscfg Data Storage File -- cFE file header sub-type -** -** \par Description: -** This parameter defines a mission-specific value that is used -** to identify a Data Storage file. -** -** \par Limits: -** The file header data type for the value is 32 bits unsigned, -** thus the value can be anything from zero to 4,294,967,295. -** (limit is not verified) -*/ -#define DS_FILE_HDR_SUBTYPE 12345 - - -/** -** \dscfg Data Storage File -- cFE file header description -** -** \par Description: -** This parameter defines a mission-specific text string that -** may be used to identify Data Storage files. -** -** \par Limits: -** The string length (including string terminator) cannot exceed -** #CFE_FS_HDR_DESC_MAX_LEN. (limit is not verified) -*/ -#define DS_FILE_HDR_DESCRIPTION "DS data storage file" - - -/** -** \dscfg Data Storage File -- minimum size limit -** -** \par Description: -** This parameter defines the lower limit for commands and -** table entries that define the size (in bytes) when a data -** storage file is automatically closed. -** -** \par Limits: -** None -- however, the user should be cautioned that a very -** small value will allow an size limit that closes files too -** frequently, while a very large value will effectively -** prevent files from ever being closed due to size. -*/ -#define DS_FILE_MIN_SIZE_LIMIT 1024 - - -/** -** \dscfg Data Storage File -- minimum age limit -** -** \par Description: -** This parameter defines the lower limit for commands and -** table entries that define the age (in seconds) when a data -** storage file is automatically closed. -** -** \par Limits: -** None -- however, the user should be cautioned that a very -** small value will allow an age limit that closes files too -** frequently, while a very large value will effectively -** prevent files from ever being closed due to age. -*/ -#define DS_FILE_MIN_AGE_LIMIT 60 - - -/** -** \dscfg Application Pipe Name -** -** \par Description: -** This parameter defines a portion of the logical name used -** during the creation of the DS input pipe. The logical name -** may also be used as an identifier when accessing status for -** the pipe via cFE Software Bus Services. The entire logical -** name is "DS.DS_CMD_PIPE". -** -** \par Limits: -** The string length (including string terminator) cannot -** exceed #OS_MAX_API_NAME. (limit is not verified) -*/ -#define DS_APP_PIPE_NAME "DS_CMD_PIPE" - - -/** -** \dscfg Application Pipe Depth -** -** \par Description: -** This parameter defines the depth of the DS input pipe. The -** depth should be deep enough to accommodate all of the DS -** command packets and all of the subscribed telemetry packets -** that might be generated by applications with a priority -** higher than the DS application. -** -** \par Limits: -** The value must be greater than zero and cannot exceed the -** definition of #CFE_SB_MAX_PIPE_DEPTH. -*/ -#define DS_APP_PIPE_DEPTH 256 - - -/** -** \dscfg Make DS Tables Critical -** -** \par Description: -** Set this parameter to a value of one to make the DS tables critical, -** otherwise set to zero. -** -** \par Limits -** This parameter must be set to zero or one. -*/ -#define DS_MAKE_TABLES_CRITICAL 0 - - -/** -** \dscfg Housekeeping Request Frequency -** -** \par Description: -** Set this parameter equal to the number of seconds between -** housekeeping request commands. This number is mission -** specific and must match the frequency used by the source -** of the command - often the scheduler task. The value is -** used by the DS application to measure file age and also -** as a factor in the calculation of file growth rates. -** -** \par Limits -** This parameter must be greater than zero. -*/ -#define DS_SECS_PER_HK_CYCLE 4 - - -/** -** \dscfg Default DS Packet Processor State -** -** \par Description: -** Set this parameter to a value of one and DS will begin to -** process packets immediately on startup. Set the value to -** zero and DS will ignore data storage packets until receipt -** of a valid #DS_ENABLE command. -** -** \par Limits -** This parameter must be set to zero or one. -*/ -#define DS_DEF_ENABLE_STATE 1 - - -/** -** \dscfg Save DS Packet Processor State in Critical Data Store -** -** \par Description: -** Set this parameter to a value of one and DS will restore -** the previous Packet Processor enable/disable state after -** a processor reset. This setting does not affect the -** Packet Processor enable/disable state set at power-on -** which is controlled by #DS_DEF_ENABLE_STATE. Set the -** value to zero and DS will set the enable/disable state -** as described for #DS_DEF_ENABLE_STATE following any reset. -** -** \par Limits -** This parameter must be set to zero or one. -*/ -#define DS_CDS_ENABLE_STATE 1 - - -/** \dscfg Mission specific version number for DS application -** -** \par Description: -** An application version number consists of four parts: -** major version number, minor version number, revision -** number and mission specific revision number. The mission -** specific revision number is defined here and the other -** parts are defined in "ds_version.h". -** -** \par Limits: -** Must be defined as a numeric value that is greater than -** or equal to zero. -*/ -#define DS_MISSION_REV 0 - - -/** -** \dscfg File Header Type Selection -** -** \par Description: -** Set this parameter to select the type of file header that -** will be the first record written to each Data Storage File. -** -** \par Limits -** This parameter must be set to one of the following: -** 0 = none -- set this value to have no file header -** 1 = CFE -- set this value to use CFE file headers -** 2 = GPM -- set this value to use GPM file headers -*/ -#define DS_FILE_HEADER_TYPE 1 - - -/** -** \dscfg Move Files to Downlink Directory After Close Selection -** -** \par Description: -** Set this parameter to enable the code and structures to -** automatically move DS files to another directory after -** closing the files. The intended use for this setting is -** to move files from a working directory into a directory -** from which the files can be downlinked. Note that even -** after enabling this feature, files will not be moved if -** the move pathname in the Destination File Table is null. -** -** \par Limits -** This parameter must be set to one of the following: -** TRUE = add move pathname field to Destination File Table -** FALSE = do not add move pathname to Destination File Table -*/ -#define DS_MOVE_FILES FALSE - - -/** -** \dscfg Application Per Packet Pipe Limit -** -** \par Description: -** This parameter defines the per packet pipe limit. This is -** the max number of packets with the same Message ID that may -** be in the DS input pipe at any one time. This value should -** be large enough to accommodate a burst of packets (usually -** event packets) plus a suitable margin. -** -** \par Limits: -** The value must be greater than zero and cannot exceed the -** definition of #DS_APP_PIPE_DEPTH. -*/ -#define DS_PER_PACKET_PIPE_LIMIT 1 - - -#endif /* DS_PLATFORM_CFG_H */ - -/************************/ -/* End of File Comment */ -/************************/ diff --git a/config/bebop2/inc/ea_platform_cfg.h b/config/bebop2/inc/ea_platform_cfg.h deleted file mode 100644 index 0a91376f9..000000000 --- a/config/bebop2/inc/ea_platform_cfg.h +++ /dev/null @@ -1,143 +0,0 @@ -#ifndef EA_PLATFORM_CFG_H -#define EA_PLATFORM_CFG_H - -#ifdef __cplusplus -extern "C" { -#endif - -#define EA_CHILD_TASK_FLAGS OS_ENABLE_CORE_0 - - -/* -** ea Platform Configuration Parameter Definitions -*/ - -/** \brief Mission specific version number for EA application -** -** \par Description: -** An application version number consists of four parts: -** major version number, minor version number, revision -** number and mission specific revision number. The mission -** specific revision number is defined here and the other -** parts are defined in "ea_version.h". -** -** \par Limits: -** Must be defined as a numeric value that is greater than -** or equal to zero. -*/ -#define EA_MISSION_REV (0) - -/** \brief Pipe depth for the Scheduler pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define EA_SCH_PIPE_DEPTH (2) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define EA_SCH_PIPE_NAME ("EA_SCH_PIPE") - -/** \brief The SB pend behavior type for the Scheduler pipe. -** -** \par Limits: -** One of: CFE_SB_POLL, CFE_SB_PEND_FOREVER, or the -** number of milliseconds to wait for a new message (recommended). -** Note, using CFE_SB_PEND_FOREVER may cause an unresponsive -** application if no messages arrive on this pipe. -*/ -#define EA_SCH_PIPE_PEND_TIME (2000) - -/** \brief The number of WAKEUP messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max limited to CFE_SB_MAX_PIPE_DEPTH-1. Note the -** EA_SCH_PIPE_WAKEUP_RESERVED and EA_SCH_PIPE_SEND_HK_RESERVED -** must be less than EA_SCH_PIPE_DEPTH. -*/ -#define EA_SCH_PIPE_WAKEUP_RESERVED (1) - -/** \brief The number of SEND_HK messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. Note the -** EA_SCH_PIPE_WAKEUP_RESERVED and EA_SCH_PIPE_SEND_HK_RESERVED -** must be less than EA_SCH_PIPE_DEPTH. -*/ -#define EA_SCH_PIPE_SEND_HK_RESERVED (1) - -/** \brief Pipe depth for the command pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define EA_CMD_PIPE_DEPTH (4) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define EA_CMD_PIPE_NAME ("EA_CMD_PIPE") - -/** \brief Pipe depth for the data pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define EA_DATA_PIPE_DEPTH (4) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define EA_DATA_PIPE_NAME ("EA_DATA_PIPE") - -/** \brief The config table default filename -** -** \par Limits: -** The length of each string, including the NULL terminator cannot exceed -** the #OS_MAX_PATH_LEN value. -*/ -#define EA_CONFIG_TABLE_FILENAME ("/cf/apps/ea_config.tbl") -/** \brief The timeout value, in milliseconds, to wait for ES application startup sync. -** -** \par Limits: -** This parameter must be at least 1000 (ms). -*/ -#define EA_STARTUP_TIMEOUT_MSEC (1000) - -/* TODO: Add Doxygen markup. */ -#define EA_CUSTOM_DEV_PATH "/tmp/ttyS0" - -/** \cscfg EA Child Task Priority - ** - ** \par Description: - ** Priority of child tasks created by EA. Lower numbers are higher priority, - ** with 1 being the highest priority in the case of a child task. - ** - ** \par Limits: - ** Valid range for a child task is 1 to 255, but the priority cannot be - ** higher (lower number) than the EA App priority. - ** - */ -#define EA_CHILD_TASK_PRIORITY (187) -#define EA_APP_UTIL_THRESHOLD (70) -#define EA_APP_NUM_THREADS (4) - -#define EA_MAX_PATH_LEN (96) - -#ifdef __cplusplus -} -#endif - -#endif /* EA_PLATFORM_CFG_H */ - -/************************/ -/* End of File Comment */ -/************************/ - diff --git a/config/bebop2/inc/flow_msgids.h b/config/bebop2/inc/flow_msgids.h deleted file mode 100644 index 494f62fc0..000000000 --- a/config/bebop2/inc/flow_msgids.h +++ /dev/null @@ -1,18 +0,0 @@ -#ifndef FLOW_MSGIDS_H -#define FLOW_MSGIDS_H - -#ifdef __cplusplus -extern "C" { -#endif - -#include "msg_ids.h" - -#ifdef __cplusplus -} -#endif - -#endif /* FLOW_MSGIDS_H */ - -/************************/ -/* End of File Comment */ -/************************/ diff --git a/config/bebop2/inc/flow_platform_cfg.h b/config/bebop2/inc/flow_platform_cfg.h deleted file mode 100644 index 4f24d6eea..000000000 --- a/config/bebop2/inc/flow_platform_cfg.h +++ /dev/null @@ -1,135 +0,0 @@ -#ifndef FLOW_PLATFORM_CFG_H -#define FLOW_PLATFORM_CFG_H - -#ifdef __cplusplus -extern "C" { -#endif - -/* -** FLOW Platform Configuration Parameter Definitions -*/ - -/** \brief Mission specific version number for FLOW application -** -** \par Description: -** An application version number consists of four parts: -** major version number, minor version number, revision -** number and mission specific revision number. The mission -** specific revision number is defined here and the other -** parts are defined in "amc_version.h". -** -** \par Limits: -** Must be defined as a numeric value that is greater than -** or equal to zero. -*/ -#define FLOW_MISSION_REV (0) - -/** \brief Pipe depth for the Scheduler pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define FLOW_SCH_PIPE_DEPTH (2) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define FLOW_SCH_PIPE_NAME ("FLOW_SCH_PIPE") - -/** \brief The number of WAKEUP messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max limited to CFE_SB_MAX_PIPE_DEPTH-1. Note the -** FLOW_WAKEUP_MID_MAX_MSG_COUNT and FLOW_SEND_HK_MID_MAX_MSG_COUNT -** must be less than FLOW_SCH_PIPE_DEPTH. -*/ -#define FLOW_WAKEUP_MID_MAX_MSG_COUNT (1) - -/** \brief The number of SEND_HK messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. Note the -** FLOW_WAKEUP_MID_MAX_MSG_COUNT and FLOW_SEND_HK_MID_MAX_MSG_COUNT -** must be less than FLOW_SCH_PIPE_DEPTH. -*/ -#define FLOW_SEND_HK_MID_MAX_MSG_COUNT (1) - -/** \brief Pipe depth for the command pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define FLOW_CMD_PIPE_DEPTH (4) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define FLOW_CMD_PIPE_NAME ("FLOW_CMD_PIPE") - -/** \brief Pipe depth for the data pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define FLOW_DATA_PIPE_DEPTH (4) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define FLOW_DATA_PIPE_NAME ("FLOW_DATA_PIPE") - -/** \brief The config table default filename -** -** \par Limits: -** The length of each string, including the NULL terminator cannot exceed -** the #OS_MAX_PATH_LEN value. -*/ -#define FLOW_CONFIG_TABLE_FILENAME ("/cf/apps/flow_config.tbl") - -/** \brief The timeout value, in milliseconds, to wait for ES application startup sync. -** -** \par Limits: -** This parameter must be at least 1000 (ms). -*/ -#define FLOW_STARTUP_TIMEOUT_MSEC (1000) - -/** \brief Pipe depth for the Gyroscope pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define FLOW_GYRO_PIPE_DEPTH (30) - -/** \brief Pipe name for the Gyroscope pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define FLOW_GYRO_PIPE_NAME ("FLOW_GYRO_PIPE") - -/** \brief The number of SENSOR_GYRO messages to reserve on the Gyroscope pipe. -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. Note the -** FLOW_SENSOR_GYRO_MID_MAX_MSG_COUNT -** must be less than FLOW_GYRO_PIPE_DEPTH. -*/ -#define FLOW_SENSOR_GYRO_MAX_MSG_COUNT (25) - - -#ifdef __cplusplus -} -#endif - -#endif /* FLOW_PLATFORM_CFG_H */ - -/************************/ -/* End of File Comment */ -/************************/ - diff --git a/config/bebop2/inc/fm_msgids.h b/config/bebop2/inc/fm_msgids.h deleted file mode 100644 index 1af16a366..000000000 --- a/config/bebop2/inc/fm_msgids.h +++ /dev/null @@ -1,11 +0,0 @@ -#ifndef FM_MSGIDS_H -#define FM_MSGIDS_H - - -#include "msg_ids.h" - -#endif /* FM_MSGIDS_H */ - -/************************/ -/* End of File Comment */ -/************************/ diff --git a/config/bebop2/inc/fm_platform_cfg.h b/config/bebop2/inc/fm_platform_cfg.h deleted file mode 100644 index 7b83a233d..000000000 --- a/config/bebop2/inc/fm_platform_cfg.h +++ /dev/null @@ -1,424 +0,0 @@ -#ifndef FM_PLATFORM_CFG_H -#define FM_PLATFORM_CFG_H - -#include "osapi.h" - - -/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ -/* */ -/* FM platform configuration parameters - application definitions */ -/* */ -/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ - -#define FM_CHILD_TASK_FLAGS OS_ENABLE_CORE_0 - -/** \fmcfg File Manager Application Name -** -** \par Description: -** This definition must match the name used at startup by the cFE -** Executive Services when creating the FM application. Note that -** application names are also an argument to certain cFE commands. -** For example, the application name is needed to access tables -** via cFE Table Services commands. -** -** \par Limits: -** FM requires that this name be defined, but otherwise places -** no limits on the definition. Refer to CFE Executive Services -** for specific information on limits related to application names. -*/ -#define FM_APP_NAME "FM" - - -/** \fmcfg File Manager Command Pipe Name -** -** \par Description: -** This definition is the name used at startup when creating a cFE -** Software Bus command pipe for the FM application. -** -** \par Limits: -** FM requires that this name be defined, but otherwise places -** no limits on the definition. Refer to CFE Software Bus Services -** for specific information on limits related to pipe names. -*/ -#define FM_APP_PIPE_NAME "FM_CMD_PIPE" - - -/** \fmcfg File Manager Command Pipe Depth -** -** \par Description: -** This definition sets the total number of packets that may queue -** in the FM command pipe. The limit for individual message types -** in the queue is the default cFE Software Bus subscription limit -** of four. -** -** \par Limits: -** The FM application limits this value to be no less than 4 and -** no greater than 20 packets at any one time in the command pipe. -*/ -#define FM_APP_PIPE_DEPTH 10 - - -/** \sccfg Mission specific version number for FM application -** -** \par Description: -** An application version number consists of four parts: -** major version number, minor version number, revision -** number and mission specific revision number. The mission -** specific revision number is defined here and the other -** parts are defined in "fm_version.h". -** -** \par Limits: -** Must be defined as a numeric value that is greater than -** or equal to zero. -*/ -#define FM_MISSION_REV 0 - - -/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ -/* */ -/* FM platform configuration parameters - output file definitions */ -/* */ -/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ - -/** \fmcfg Default Directory List Output Filename -** -** \par Description: -** This definition is the default output filename used by the Get -** Directory List to File command handler when the output filename -** is not provided. The default filename is used whenever the -** commanded output filename is the empty string. -** -** \par Limits: -** The FM application does not place a limit on this configuration -** parameter, however the symbol must be defined and the name will -** be subject to the same verification tests as a commanded output -** filename. Set this parameter to the empty string if no default -** filename is desired. -*/ -#define FM_DIR_LIST_FILE_DEFNAME "/ram/fm_dirlist.out" - - -/** \fmcfg Maximum Directory List Output File Entries -** -** \par Description: -** This definition sets the upper limit for the number of directory -** entries that may be written to a Directory List output file. -** Directory List files are variable length, based on the number of -** directory entries actually written to the file. There may zero -** entries written to the file if the directory is empty. For most -** environments, this definition will play no role at all, as it -** will be set to a number much larger than the count of files that -** will ever exist in any directory at one time. -** -** \par Limits: -** The FM application limits this value to be no less than 100 and -** no greater than 10000. -*/ -#define FM_DIR_LIST_FILE_ENTRIES 3000 - - -/** \fmcfg Directory List Output File Header Sub-Type -** -** \par Description: -** This definition sets the cFE File Header sub-type value for FM -** Directory List data files. The value may be used to differentiate -** FM Directory List files from other data files. -** -** \par Limits: -** The FM application places no limits on this unsigned 32 bit value. -*/ -#define FM_DIR_LIST_FILE_SUBTYPE 12345 - - -/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ -/* */ -/* FM platform configuration parameters - TLM packet definitions */ -/* */ -/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ - -/** \fmcfg Directory List Telemetry Packet Entry Count -** -** \par Description: -** This definition sets the number of directory entries contained -** in the Directory List telemetry packet. The command handler will -** read directory entries until reaching the index of the start entry -** (set via command argument) and then continue to read -** directory entries and populate the telemtry packet until there are -** either no more unread directory entries or until the telemetry -** packet is full. -** -** \par Limits: -** The FM application limits this value to be no less than 10 and -** and no greater than 100. The number of directory entries in the -** telemetry packet will in large part determine the packet size. -*/ -#define FM_DIR_LIST_PKT_ENTRIES 20 - - -/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ -/* */ -/* FM platform configuration parameters - child task definitions */ -/* */ -/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ - -/** \fmcfg Child Task File I/O Control Settings -** -** \par Description: -** These definitions control the amount of file data that the FM child task -** will process before giving up the CPU to allow other tasks time to run. -** -** FM_CHILD_FILE_BLOCK_SIZE defines the size of each block of file data that -** the FM child task will read or write. This value also defines the size -** of the FM child task I/O buffer that exists in global memory. -** -** FM_CHILD_FILE_LOOP_COUNT defines the number of file data blocks that may -** be processed before the FM child task sleeps (gives up the CPU). -** -** FM_CHILD_FILE_SLEEP_MS defines the length of time (in milli-secs) before -** the FM child task wakes (re-acquires the CPU). Note that many platforms -** will limit the precision of this value. -** -** Thus the combination of the 3 values control CPU use by the FM child task. -** Using a smaller block size minimizes the amount of RAM used by the file -** I/O buffer, but at the expense of file efficiency. Adjust each of the -** values such that the combination is appropriate for the target platform. -** -** For example, if the block size is 2048 and the loop count is 16 and the -** sleep time is 20, then while processing a 1 Mbyte file there will be -** 32 sleep cycles of 20ms each, for a total task delay of 0.64 seconds. -** -** \par Limits: -** FM_CHILD_FILE_BLOCK_SIZE: The FM application limits this value to be no -** less than 256 bytes and no greater than 32KB. -** -** FM_CHILD_FILE_LOOP_COUNT: The FM application limits this value to be -** non-zero. There is no upper limit - a very large number effectively -** means that the FM child task will not surrender the CPU to other lower -** priority tasks. -** -** FM_CHILD_FILE_SLEEP_MS: The FM application limits this value to be no -** no greater than 100 ms. The value zero generally means a very short -** task delay - refer to the target platform documentation for specifics. -*/ -#define FM_CHILD_FILE_BLOCK_SIZE 2048 -#define FM_CHILD_FILE_LOOP_COUNT 16 -#define FM_CHILD_FILE_SLEEP_MS 20 - -/** \fmcfg Child file stat sleep -** -** \par Description: -** OS_stat is a CPU intensive call. FM uses the OS_stat call to query a -** file’s size, date, and mode when setting up directory listings. -** Querying a large number of files and/or files large in size when -** processing directory listing commands can cause FM to hog the CPU. To -** mitigate this, options to sleep a configurable number of milliseconds -** between calls to OS_stat for a configurable number of files -** in a directory listing is provided. A large sleep cycle will not hang the CPU -** but it may take a long time for directory listing to complete. A shorter -** sleep cycle will speed up the directory listing commands but may cause -** FM to hog the CPU. -** -** FM_CHILD_STAT_SLEEP_MS: The number of milliseconds to sleep each -** cycle. One cycle is FM_CHILD_STAT_SLEEP_FILECOUNT. -** -** FM_CHILD_STAT_SLEEP_FILECOUNT: The number of files to process (OS_stat) before -** sleeping FM_CHILD_STAT_SLEEP_MS. -** Works in tandem with FM_CHILD_STAT_SLEEP_MS to reduce CPU hogging -** while allowing slightly more customization to balance time the operator is waiting to -** get data back from a directory listing versus FM hogging the CPU with calls to OS_stat -** -** In short: -** High SLEEP_MS means less CPU hogging by FM but a longer time to process a dir listing command -** Low SLEEP_MS means more potential CPU hogging by FM but shorter time to process a dir listing command -** High FILECOUNT means more potential CPU hogging by FM but a shorter time to process a dir listing command -** Low FILECOUNT means less CPU hogging by FM but longer time to process a dir listing command -** \par Limits: -** The default is zero unless the mission needs require them to be changed. -** -*/ -#define FM_CHILD_STAT_SLEEP_MS 0 -#define FM_CHILD_STAT_SLEEP_FILECOUNT 0 - -/** \fmcfg Child Task Command Queue Entry Count -** -** \par Description: -** This definition sets the array depth for the command arguments queue in -** the FM main task to FM child task handshake interface. The value sets -** the upper limit for the number of commands that can be waiting in the -** queue to be processed by the low priority FM child task. A multi-entry -** command queue prevents the occasional slow command from being rejected -** because the child task has not yet completed the previous slow command. -** -** \par Limits: -** The FM application limits this value to be no less than 1 and no greater -** than 10. There must be at least one because this is the method for -** passing command arguments from the parent to the child task. The upper -** limit is arbitrary. -*/ -#define FM_CHILD_QUEUE_DEPTH 3 - - -/** \fmcfg Child Task Name - cFE object name -** -** \par Description: -** This definition sets the FM child task object name. The task object -** name is required during child task creation by cFE Executive Services. -** -** \par Limits: -** FM requires that this name be defined, but otherwise places -** no limits on the definition. Refer to CFE Executive Services -** for specific information on limits related to object names. -*/ -#define FM_CHILD_TASK_NAME "FM_CHILD_TASK" - - -/** \fmcfg Child Task Stack Size -** -** \par Description: -** This definition sets the size in bytes of the FM child task -** stack. It is highly recommended that this assignment be made -** by someone familiar with the system requirements for tasks -** running on the target platform. -** -** \par Limits: -** The FM application limits this value to be no less than 2048 -** and no greater than 20480. These limits are purely arbitrary -** and may need to be modified for specific platforms. -*/ -#define FM_CHILD_TASK_STACK_SIZE 20480 - - -/** \fmcfg Child Task Execution Priority -** -** \par Description: -** This definition sets the execution priority for the FM child -** task. It is highly recommended that this assignment be made -** by someone familiar with the system requirements for tasks -** running on the target platform. -** -** \par Limits: -** Value to be no less than 1 and no greater than 255. -** -** \par Priority Values: -** Note that a small value has higher priority than a large value. -** Thus, 100 is higher priority than 150. It is also necessary to -** ensure that a child task has lower priority than its parent. -** It should be clear that a child task that runs ahead of its -** parent defeats the purpose of having a child task to run in -** the background. -*/ -#define FM_CHILD_TASK_PRIORITY 208 - - -/** \fmcfg Child Task Semaphore Name - cFE object name -** -** \par Description: -** This definition sets the FM child task semaphore object name. -** The semaphore object name is required during semaphore creation -** by cFE Executive Services. -** -** \par Limits: -** FM requires that this name be defined, but otherwise places -** no limits on the definition. Refer to CFE Executive Services -** for specific information on limits related to object names. -*/ -#define FM_CHILD_SEM_NAME "FM_CHILD_SEM" - - -/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ -/* */ -/* FM platform configuration parameters - table definitions */ -/* */ -/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ - -/** \fmcfg Free Space Table Name - cFE object name -** -** \par Description: -** Table object name is required during table creation. -** -** \par Limits: -** FM requires that this name be defined, but otherwise places -** no limits on the definition. Refer to CFE Table Services -** for specific information on limits related to table names. -*/ -#define FM_TABLE_CFE_NAME "FreeSpace" - - -/** \fmcfg Free Space Table Name - filename with path -** -** \par Description: -** Table name with path is required to load table at startup. -** -** \par Limits: -** FM requires that this name be defined, but otherwise places -** no limits on the definition. If the named table does not -** exist or fails validation, the table load will fail. -*/ -#define FM_TABLE_DEF_NAME "/cf/apps/fm_freespace.tbl" - - -/** \fmcfg Free Space Table Name - filename without path -** -** \par Description: -** Table name without path defines the output name for the table -** file created during the table make process. -** -** \par Limits: -** FM requires that this name be defined, but otherwise places -** no limits on the definition. If the table name is not -** valid then the make process may fail, or the table file may -** be unloadable to the target hardware. -*/ -#define FM_TABLE_FILENAME "fm_freespace.tbl" - - -/** \fmcfg Free Space Table Description -** -** \par Description: -** Table files contain headers that include descriptive text. -** This text will be put into the file header during the table -** make process. -** -** \par Limits: -** FM requires that this name be defined, but otherwise places -** no limits on the definition. Refer to cFE Table Services -** for limits related to table descriptive text. -*/ -#define FM_TABLE_DEF_DESC "FM File System Free Space Table" - - -/** \fmcfg Number of Free Space Table Entries -** -** \par Description: -** This value defines the number of entries in both the FM file system -** free space table and the FM file system free space telemetry packet. -** Note: this value does not define the number of file systems present -** or supported by the CFE-OSAL, the value only defines the number of -** file systems for which FM may be enabled to report free space data. -** -** \par Limits: -** FM limits this value to be not less than 1 and not greater than 16. -*/ -#define FM_TABLE_ENTRY_COUNT 8 - - -/** \fmcfg Table Data Validation Error Code -** -** \par Description: -** Table data is verified during the table load process. Should -** the validation process fail, this value will be returned by -** FM to cFE Table Services and displayed in an event message. -** -** \par Limits: -** FM requires that this value be defined, but otherwise places -** no limits on the definition. Refer to cFE Table Services -** for limits related to error return values. -*/ -#define FM_TABLE_VALIDATION_ERR (0xCF000080L) - - -#endif /* FM_PLATFORM_CFG_H */ - -/************************/ -/* End of File Comment */ -/************************/ diff --git a/config/bebop2/inc/gps_platform_cfg.h b/config/bebop2/inc/gps_platform_cfg.h deleted file mode 100644 index 57e4df39d..000000000 --- a/config/bebop2/inc/gps_platform_cfg.h +++ /dev/null @@ -1,124 +0,0 @@ -#ifndef GPS_PLATFORM_CFG_H -#define GPS_PLATFORM_CFG_H - -#ifdef __cplusplus -extern "C" { -#endif - -#define GPS_CUSTOM_CHILD_TASK_FLAGS OS_ENABLE_CORE_0 - -/* -** GPS Platform Configuration Parameter Definitions -*/ - -/** \brief Mission specific version number for GPS application -** -** \par Description: -** An application version number consists of four parts: -** major version number, minor version number, revision -** number and mission specific revision number. The mission -** specific revision number is defined here and the other -** parts are defined in "amc_version.h". -** -** \par Limits: -** Must be defined as a numeric value that is greater than -** or equal to zero. -*/ -#define GPS_MISSION_REV (0) - -/** \brief Pipe depth for the Scheduler pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define GPS_SCH_PIPE_DEPTH (2) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define GPS_SCH_PIPE_NAME ("GPS_SCH_PIPE") - -/** \brief The SB pend behavior type for the Scheduler pipe. -** -** \par Limits: -** One of: CFE_SB_POLL, CFE_SB_PEND_FOREVER, or the -** number of milliseconds to wait for a new message (recommended). -** Note, using CFE_SB_PEND_FOREVER may cause an unresponsive -** application if no messages arrive on this pipe. -*/ -#define GPS_SCH_PIPE_PEND_TIME (2000) - -/** \brief The number of WAKEUP messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max limited to CFE_SB_MAX_PIPE_DEPTH-1. Note the -** GPS_READ_SENSOR_MID_MAX_MSG_COUNT and GPS_SEND_HK_MID_MAX_MSG_COUNT -** must be less than GPS_SCH_PIPE_DEPTH. -*/ -#define GPS_READ_SENSOR_MID_MAX_MSG_COUNT (1) - -/** \brief The number of SEND_HK messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. Note the -** GPS_READ_SENSOR_MID_MAX_MSG_COUNT and GPS_SEND_HK_MID_MAX_MSG_COUNT -** must be less than GPS_SCH_PIPE_DEPTH. -*/ -#define GPS_SEND_HK_MID_MAX_MSG_COUNT (1) - -/** \brief Pipe depth for the command pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define GPS_CMD_PIPE_DEPTH (4) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define GPS_CMD_PIPE_NAME ("GPS_CMD_PIPE") - -/** \brief Pipe depth for the data pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define GPS_DATA_PIPE_DEPTH (4) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define GPS_DATA_PIPE_NAME ("GPS_DATA_PIPE") - -/** \brief The config table default filename -** -** \par Limits: -** The length of each string, including the NULL terminator cannot exceed -** the #OS_MAX_PATH_LEN value. -*/ -#define GPS_CONFIG_TABLE_FILENAME ("/cf/apps/gps_config.tbl") - -/** \brief The timeout value, in milliseconds, to wait for ES application startup sync. -** -** \par Limits: -** This parameter must be at least 1000 (ms). -*/ -#define GPS_STARTUP_TIMEOUT_MSEC (1000) - - -#ifdef __cplusplus -} -#endif - -#endif /* GPS_PLATFORM_CFG_H */ - -/************************/ -/* End of File Comment */ -/************************/ - diff --git a/config/bebop2/inc/hk_msgids.h b/config/bebop2/inc/hk_msgids.h deleted file mode 100644 index ab602d518..000000000 --- a/config/bebop2/inc/hk_msgids.h +++ /dev/null @@ -1,11 +0,0 @@ -#ifndef HK_MSGIDS_H -#define HK_MSGIDS_H - - -#include "msg_ids.h" - -#endif /* HK_MSGIDS_H */ - -/************************/ -/* End of File Comment */ -/************************/ diff --git a/config/bebop2/inc/hk_platform_cfg.h b/config/bebop2/inc/hk_platform_cfg.h deleted file mode 100644 index bd46c7291..000000000 --- a/config/bebop2/inc/hk_platform_cfg.h +++ /dev/null @@ -1,123 +0,0 @@ -#ifndef HK_PLATFORM_CFG_H -#define HK_PLATFORM_CFG_H - - - -/************************************************************************* -** Macro definitions -**************************************************************************/ - -/** -** \hkcfg Application Pipe Depth -** -** \par Description: -** Dictates the pipe depth of the hk command pipe. -** -** \par Limits -** The minimum size of this paramater is 1 -** The maximum size dictated by cFE platform configuration -** parameter CFE_SB_MAX_PIPE_DEPTH -*/ -#define HK_PIPE_DEPTH 40 - - -/** -** \hkcfg Discard Incomplete Combo Packets -** -** \par Description: -** Dictates whether combo packets that have not had all data contents -** updated since last requested will be discarded (YES = 1) or sent -** anyway (NO = 0). -** -** \par Limits -** This parameter can be set to 0 or 1 only. -*/ -#define HK_DISCARD_INCOMPLETE_COMBO 0 - - -/** -** \hkcfg Maximum Number of HK Copy Table Entries -** -** \par Description: -** Dictates the number of elements in the hk copy table. -** -** \par Limits -** The maximum size of this paramater is 8192 -*/ -#define HK_COPY_TABLE_ENTRIES 128 - - -/** -** \hkcfg Number of bytes in the HK Memory Pool -** -** \par Description: -** The HK memory pool contains the memory needed for the output packets. -** The output packets are dynamically allocated from this pool when the -** HK copy table is initially processed or loaded with new data. -** -** \par Limits -** The Housekeeping app does not place a limit on this parameter, but there is -** an overhead cost in the memory pool. The value must be larger than what is -** needed. -*/ -#define HK_NUM_BYTES_IN_MEM_POOL (6 * 1024) - - -/** -** \hkcfg Name of the HK Copy Table -** -** \par Description: -** This parameter defines the name of the HK Copy Table. -** -** \par Limits -** The Housekeeping app does not place a limit on this parameter -*/ -#define HK_COPY_TABLE_NAME "CopyTable" - - -/** -** \hkcfg Name of the HK Run-time Table -** -** \par Description: -** This parameter defines the name of the HK Run-time Table. -** -** \par Limits -** The Housekeeping app does not place a limit on this parameter -*/ -#define HK_RUNTIME_TABLE_NAME "RuntimeTable" - - -/** -** \hkcfg HK Copy Table Filename -** -** \par Description: -** The value of this constant defines the filename of the HK Copy Table -** -** \par Limits -** The length of each string, including the NULL terminator cannot exceed -** the #OS_MAX_PATH_LEN value. -*/ - -#define HK_COPY_TABLE_FILENAME "/cf/apps/hk_cpy_tbl.tbl" - -/** \hkcfg Mission specific version number for HK application -** -** \par Description: -** An application version number consists of four parts: -** major version number, minor version number, revision -** number and mission specific revision number. The mission -** specific revision number is defined here and the other -** parts are defined in "hk_version.h". -** -** \par Limits: -** Must be defined as a numeric value that is greater than -** or equal to zero. -*/ -#define HK_MISSION_REV 0 - - -#endif /* HK_PLATFORM_CFG_H */ - -/************************/ -/* End of File Comment */ -/************************/ diff --git a/config/bebop2/inc/hs_msgids.h b/config/bebop2/inc/hs_msgids.h deleted file mode 100644 index 8db455fb4..000000000 --- a/config/bebop2/inc/hs_msgids.h +++ /dev/null @@ -1,10 +0,0 @@ -#ifndef HS_MSGIDS_H -#define HS_MSGIDS_H - -#include "msg_ids.h" - -#endif /*HS_MSGIDS_H*/ - -/************************/ -/* End of File Comment */ -/************************/ diff --git a/config/bebop2/inc/hs_platform_cfg.h b/config/bebop2/inc/hs_platform_cfg.h deleted file mode 100644 index 1c18853e0..000000000 --- a/config/bebop2/inc/hs_platform_cfg.h +++ /dev/null @@ -1,606 +0,0 @@ -#ifndef HS_PLATFORM_CFG_H -#define HS_PLATFORM_CFG_H - -/** \hscfg Application Name -** -** \par Description: -** This definition must match the name used at startup by the cFE -** Executive Services when creating the HS application. Note that -** application names are also an argument to certain cFE commands. -** For example, the application name is needed to access tables -** via cFE Table Services commands. -** -** \par Limits: -** HS requires that this name be defined, but otherwise places -** no limits on the definition. Refer to CFE Executive Services -** for specific information on limits related to application names. -*/ -#define HS_APP_NAME "HS" - -/**\hscfg Idle Task Configuration Parameters (custom) -** -** \par Description: -** These parameters are used by #CFE_ES_CreateChildTask -** Note that these values are only necessarily relevant in the -** default hs_custom.c. -** -** \par Limits: -** These limits will vary by platform and available resources. -*/ -#define HS_IDLE_TASK_NAME "HS_IDLE_TASK" -#define HS_IDLE_TASK_STACK_PTR 0 -#define HS_IDLE_TASK_STACK_SIZE 4096 -#define HS_IDLE_TASK_FLAGS 0 - -/**\hscfg Idle Task Priority (custom) -** -** \par Description: -** This parameter is used to set the priority of the Idle Task. It should -** be higher than all other user created tasks, but may need to be set lower -** than the maximum value if an OS uses its own minimum priority task. -** Note that these values are only necessarily relevant in the -** default hs_custom.c. -** -** \par Limits: -** This parameter can't be larger than 255. -*/ -#define HS_IDLE_TASK_PRIORITY 255 - -/** \hscfg Maximum reported execution counters -** -** \par Description: -** Maximum number of execution counters that can be -** specified to be reported in telemetry. -** -** \par Limits: -** This parameter can't be larger than an unsigned 32 bit -** integer (4294967295). -** -** This parameter will dictate the size of the Execution -** Counter Table (XCT): -** -** XCT Size = HS_MAX_EXEC_CNT_SLOTS * sizeof(#HS_XCTEntry_t) -** -** The total size of this table should not exceed the -** cFE size limit for a single buffered table set by the -** #CFE_TBL_MAX_SNGL_TABLE_SIZE parameter -*/ -#define HS_MAX_EXEC_CNT_SLOTS 32 - -/** \hscfg Maximum message action types -** -** \par Description: -** Maximum number of Message Action action types. -** -** \par Limits: -** This parameter can't be larger than 4 less than an -** unsigned 16 bit integer (65531). -** -** This parameter must be greater than 0. -** -** This parameter will influence the size of the Message -** Action Table (MAT): -** -** MAT Size = HS_MAX_MSG_ACT_TYPES * (HS_MAX_MSG_ACT_SIZE + 4) -** -** The total size of this table should not exceed the -** cFE size limit for a single buffered table set by the -** #CFE_TBL_MAX_SNGL_TABLE_SIZE parameter -*/ -#define HS_MAX_MSG_ACT_TYPES 8 - -/** \hscfg Maximum message action size (in bytes) -** -** \par Description: -** Size in bytes of maximum length of software bus message that -** can be sent using a Message Action action type. -** -** \par Limits: -** This parameter can't be larger than #CFE_SB_MAX_SB_MSG_SIZE -** -** This parameter can't be smaller than a packet header -** -** This parameter will influence the size of the Message -** Action Table (MAT): -** -** MAT Size = HS_MAX_MSG_ACT_TYPES * (HS_MAX_MSG_ACT_SIZE + 4) -** -** The total size of this table should not exceed the -** cFE size limit for a single buffered table set by the -** #CFE_TBL_MAX_SNGL_TABLE_SIZE parameter -*/ -#define HS_MAX_MSG_ACT_SIZE 16 - -/** \hscfg Maximum number of monitored applications -** -** \par Description: -** Maximum number of applications that can be -** monitored to assure check-ins -** -** \par Limits: -** This parameter can't be larger than an unsigned 32 bit -** integer (4294967295). -** -** This parameter must be greater than 0. -** -** This parameter will dictate the size of the Application -** Monitor Table (AMT): -** -** AMT Size = HS_MAX_MONITORED_APPS * sizeof(#HS_AMTEntry_t) -** -** The total size of this table should not exceed the -** cFE size limit for a single buffered table set by the -** #CFE_TBL_MAX_SNGL_TABLE_SIZE parameter -*/ -#define HS_MAX_MONITORED_APPS 32 - -/** \hscfg Maximum number of monitored events -** -** \par Description: -** Maximum number of events that can be -** monitored -** -** \par Limits: -** This parameter can't be larger than an unsigned 32 bit -** integer (4294967295). -** -** This parameter must be greater than 0. -** -** This parameter will dictate the size of the Event -** Monitor Table (EMT): -** -** EMT Size = HS_MAX_MONITORED_EVENTS * sizeof(#HS_EMTEntry_t) -** -** The total size of this table should not exceed the -** cFE size limit for a single buffered table set by the -** #CFE_TBL_MAX_SNGL_TABLE_SIZE parameter -*/ -#define HS_MAX_MONITORED_EVENTS 16 - -/** \hscfg Watchdog Timeout Value -** -** \par Description: -** Number of milliseconds before a watchdog timeout occurs. -** -** \par Limits: -** This parameter can't be larger than an unsigned 32 bit -** integer (4294967295). -** -** This parameter must be greater than 0. -*/ -#define HS_WATCHDOG_TIMEOUT_VALUE 10000 - -/** -** \hscfg Time to wait after performing processing (in milliseconds) -** -** \par Description: -** Dictates the length of a task delay performed prior to checking -** the Software Bus for a Wakeup Message. This ensures that HS will -** run no more often than a certain rate. If this parameter is set to 0, -** no task delay will be performed. Time is in milliseconds. -** -** \par Limits -** This parameter can't be larger than an unsigned 32 bit -** integer (4294967295). -*/ -#define HS_POST_PROCESSING_DELAY 0 - -/** -** \hscfg Wakeup Message Software Bus Timeout -** -** \par Description: -** This parameter is passed into #CFE_SB_RcvMsg as the timeout value. -** It can specify #CFE_SB_POLL, #CFE_SB_PEND_FOREVER, or a timeout -** value in milliseconds. -** -** \par Limits -** This Parameter must be #CFE_SB_POLL, #CFE_SB_PEND_FOREVER, -** or greater than 0 and less than 2^31 - 1 -** -** As a timeout, this parameter should be less than -** (#HS_WATCHDOG_TIMEOUT_VALUE * 1000) - HS runtime in ms -** otherwise HS may not be able to service the watchdog in time. -*/ -#define HS_WAKEUP_TIMEOUT 1200 - -/** \hscfg CPU aliveness output string -** -** \par Description: -** String that is output to via #OS_printf periodically if aliveness -** is enabled. -** -** \par Limits: -** None. -** -*/ -#define HS_CPU_ALIVE_STRING "." - -/** \hscfg CPU aliveness output period -** -** \par Description: -** Rate in number of HS cycles at which the HS_CPU_ALIVE_STRING -** is output via the UART. -** -** \par Limits: -** This parameter can't be larger than an unsigned 32 bit -** integer (4294967295). -** -*/ -#define HS_CPU_ALIVE_PERIOD 5 - -/** \hscfg Max Number of Processor Resets that may be performed by HS -** -** \par Description: -** Maximum number of times that the HS App will attempt a processor -** reset as the result of either an Application Monitor or -** Event Monitor Failure -** -** \par Limits: -** This parameter can't be larger than an unsigned 16 bit -** integer (65535). -** -** Although not enforced, if this parameter is greater than or -** equal to #CFE_ES_MAX_PROCESSOR_RESETS then a POWER-ON reset -** will occur before the max count is reached, resetting the remaining -** actions to the value set here. -** -*/ -#define HS_MAX_RESTART_ACTIONS 3 - -/** \hscfg Software bus command pipe depth -** -** \par Description: -** Depth of the software bus pipe HS uses for commands and HK requests. -** Used during initialization in the call to #CFE_SB_CreatePipe -** -** \par Limits: -** This parameter can't be larger than #CFE_SB_MAX_PIPE_DEPTH -** -** This parameter must be greater than 0. -*/ -#define HS_CMD_PIPE_DEPTH 12 - -/** \hscfg Software bus event pipe depth -** -** \par Description: -** Depth of the software bus pipe HS uses for event monitoring. -** This should be set to supply sufficient room for the expected event -** message load per second. Used during initialization in the call to -** #CFE_SB_CreatePipe -** -** \par Limits: -** This parameter can't be larger than #CFE_SB_MAX_PIPE_DEPTH -** -** This parameter must be greater than 0. -*/ -#define HS_EVENT_PIPE_DEPTH 32 - -/** \hscfg Software bus wakeup pipe depth -** -** \par Description: -** Depth of the software bus pipe HS uses for wakeup messages. -** Used during initialization in the call to #CFE_SB_CreatePipe -** -** \par Limits: -** This parameter can't be larger than #CFE_SB_MAX_PIPE_DEPTH -** -** This parameter must be greater than 0. -*/ -#define HS_WAKEUP_PIPE_DEPTH 1 - -/** -** \hscfg Time to wait before a processor reset (in milliseconds) -** -** \par Description: -** Dictates the length of the task delay (milliseconds) performed prior -** to calling #CFE_ES_ResetCFE to allow for any event message to go out. -** -** \par Limits -** This parameter can't be larger than an unsigned 32 bit -** integer (4294967295). -*/ -#define HS_RESET_TASK_DELAY 50 - -/** -** \hscfg Time to wait for all apps to be started (in milliseconds) -** -** \par Description: -** Dictates the timeout for the #CFE_ES_WaitForStartupSync call that -** HS uses to wait for all of the Applications specified in the startup -** script to finish initialization. HS will wait this amount of time -** before assuming all startup script applications have been started and -** will then begin nominal processing. -** -** \par Limits -** This parameter can't be larger than an unsigned 32 bit -** integer (4294967295). -** -** This should be greater than or equal to the Startup Sync timeout for -** any application in the Application Monitor Table. -*/ -#define HS_STARTUP_SYNC_TIMEOUT 65000 - -/** \hscfg Default State of the Application Monitor -** -** \par Description: -** State the Application Monitor is set to when the HS -** application starts. -** -** \par Limits: -** Must be HS_STATE_ENABLED or HS_STATE_DISABLED -*/ -#define HS_APPMON_DEFAULT_STATE HS_STATE_ENABLED - -/** \hscfg Default State of the Event Monitor -** -** \par Description: -** State the Event Monitor is set to when the HS -** application starts. -** -** \par Limits: -** Must be HS_STATE_ENABLED or HS_STATE_DISABLED -*/ -#define HS_EVENTMON_DEFAULT_STATE HS_STATE_ENABLED - -/** \hscfg Default State of the Aliveness Indicator -** -** \par Description: -** State the Aliveness Indicator is set to when the HS application -** starts. -** -** \par Limits: -** Must be HS_STATE_ENABLED or HS_STATE_DISABLED -*/ -#define HS_ALIVENESS_DEFAULT_STATE HS_STATE_ENABLED - -/** \hscfg Default State of the CPU Hogging Indicator -** -** \par Description: -** State the CPU Hogging Event Message is set to when the HS application -** starts. -** -** \par Limits: -** Must be HS_STATE_ENABLED or HS_STATE_DISABLED -*/ -#define HS_CPUHOG_DEFAULT_STATE HS_STATE_ENABLED - -/** \hscfg Application Monitor Table (AMT) filename -** -** \par Description: -** Default file to load the Applications Monitor Table from -** during a power-on reset sequence -** -** \par Limits: -** This string shouldn't be longer than #OS_MAX_PATH_LEN for the -** target platform in question -*/ -#define HS_AMT_FILENAME "/cf/apps/hs_amt.tbl" - -/** \hscfg Event Monitor Table (EMT) filename -** -** \par Description: -** Default file to load the Event Monitor Table from -** during a power-on reset sequence -** -** \par Limits: -** This string shouldn't be longer than #OS_MAX_PATH_LEN for the -** target platform in question -*/ -#define HS_EMT_FILENAME "/cf/apps/hs_emt.tbl" - -/** \hscfg Execution Counter Table (XCT) filename -** -** \par Description: -** Default file to load the Execution Counters Table from -** during a power-on reset sequence -** -** \par Limits: -** This string shouldn't be longer than #OS_MAX_PATH_LEN for the -** target platform in question -*/ -#define HS_XCT_FILENAME "/cf/apps/hs_xct.tbl" - -/** \hscfg Message Actions Table (MAT) filename -** -** \par Description: -** Default file to load the Message Actions Table from -** during a power-on reset sequence -** -** \par Limits: -** This string shouldn't be longer than #OS_MAX_PATH_LEN for the -** target platform in question -*/ -#define HS_MAT_FILENAME "/cf/apps/hs_mat.tbl" - -/** \hscfg CPU Utilization Calls per Mark (custom) -** -** \par Description: -** Number of times the Mark function must be called before it actually -** marks the time. This influences the interval size. The function -** calling the Mark function may not run at the same rate as the HS cycle -** (or HS may not want to monitor utilization every cycle) so this the -** interval to be at least as long as an HS cycle. -** Note that these values are only necessarily relevant in the -** default hs_custom.c. -** -** \par Limits: -** This parameter can't be larger than an unsigned 32 bit -** integer (4294967295). -*/ -#define HS_UTIL_CALLS_PER_MARK 1 - -/** \hscfg CPU Utilization Cycles per Interval (custom) -** -** \par Description: -** Number of HS Cycles it takes to complete a CPU Utilization Interval. -** HS will monitor the utilization after this number of HS wakeup cycles. -** Note that these values are only necessarily relevant in the -** default hs_custom.c. -** -** \par Limits: -** This parameter can't be larger than an unsigned 32 bit -** integer (4294967295). -*/ -#define HS_UTIL_CYCLES_PER_INTERVAL 1 - -/** \hscfg CPU Utilization Total Utils Per Interval -** -** \par Description: -** Number of Utils (counts) equal to full utilization. This allows for higher -** resolution than percentages, and non decimal based values. -** -** \par Limits: -** This parameter can't be larger than an unsigned 32 bit -** integer (4294967295). -*/ -#define HS_UTIL_PER_INTERVAL_TOTAL 10000 - -/** \hscfg CPU Utilization Hogging Utils Per Interval -** -** \par Description: -** Number of Utils (counts) equal to utilization which is considered hogging -** during one interval. A greater number of counts is also considered hogging. -** -** \par Limits: -** This parameter can't be larger than #HS_UTIL_PER_INTERVAL_TOTAL. -*/ -#define HS_UTIL_PER_INTERVAL_HOGGING 9900 - -/** \hscfg CPU Utilization Conversion Factor Multiplication 1 (custom) -** -** \par Description: -** First multiplication conversion factor. Number of idle ticks is multiplied -** this value first when converting to utils. -** Note that these values are only necessarily relevant in the -** default hs_custom.c. -** -** \par Limits: -** There may be processor dependent limits on value. Note that all math -** is done using "uint32" values; it is important that the number -** of loop iterations in HS_IDLE, times this value, not overflow. -** -** The result of the conversion must be a 32 bit signed integer -** (between -2147483648 and 2147483647). -*/ -#define HS_UTIL_CONV_MULT1 1 - -/** \hscfg CPU Utilization Conversion Factor Division (custom) -** -** \par Description: -** Division conversion factor. Number of idle ticks is divided by this value -** after it has been multiplied by #HS_UTIL_CONV_MULT1. -** Note that these values are only necessarily relevant in the -** default hs_custom.c. -** -** \par Limits: -** There may be processor dependent limits on value. -** -** The result of the conversion must be a 32 bit signed integer -** (between -2147483648 and 2147483647). -*/ -#define HS_UTIL_CONV_DIV 1 - -/** \hscfg CPU Utilization Conversion Factor Multiplication 2 (custom) -** -** \par Description: -** Second multiplication conversion factor. Number of idle ticks is multiplied -** this value after being divided by #HS_UTIL_CONV_DIV after being multiplied by -** #HS_UTIL_CONV_MULT1 when converting to utils. -** Note that these values are only necessarily relevant in the -** default hs_custom.c. -** -** \par Limits: -** There may be processor dependent limits on value. -** -** The result of the conversion must be a 32 bit signed integer -** (between -2147483648 and 2147483647). -*/ -#define HS_UTIL_CONV_MULT2 1 - -/** \hscfg CPU Utilization Hogging Timeout -** -** \par Description: -** Number of intervals for which the hogging limit must be exceeded before hogging -** is reported. -** -** \par Limits: -** This parameter can't be larger than an unsigned 32 bit -** integer (4294967295). -*/ -#define HS_UTIL_HOGGING_TIMEOUT 5 - -/** \hscfg CPU Peak Utilization Number of Intervals -** -** \par Description: -** Number of intervals over which the peak utilization is determined. -** -** \par Limits: -** This parameter can't be larger than an unsigned 32 bit -** integer (4294967295). -** -** This parameter controls the size of the array which stores -** previously measured utilization values. -*/ -#define HS_UTIL_PEAK_NUM_INTERVAL 64 - -/** \hscfg CPU Average Utilization Number of Intervals -** -** \par Description: -** Number of intervals over which the average utilization is computed. -** -** \par Limits: -** This parameter can't be larger than #HS_UTIL_PEAK_NUM_INTERVAL . -*/ -#define HS_UTIL_AVERAGE_NUM_INTERVAL 4 - -/** \hscfg CPU Utilization Diagnostics Mask (custom) -** -** \par Description: -** Count mask for CPU Utilization Calibration. Time will be marked -** when (Counts & Mask) == Mask -** Note that these values are only necessarily relevant in the -** default hs_custom.c. -** -** \par Limits: -** This parameter can't be larger than an unsigned 32 bit -** integer (4294967295). -*/ -#define HS_UTIL_DIAG_MASK 0xFFFFFFFF - -/** \hscfg CPU Utilization Diagnostics Array Configuration (custom) -** -** \par Description: -** Time will be marked into an array of subseconds. The independant parameter -** controls the exponent to which 2 is raised to determine the array size. As -** such, large values will require significant memory usage. -** Note that these values are only necessarily relevant in the -** default hs_custom.c. -** -** \par Limits: -** This parameter must be less than 32 and may not be negative. -*/ -#define HS_UTIL_TIME_DIAG_ARRAY_POWER 4 -#define HS_UTIL_TIME_DIAG_ARRAY_LENGTH (1<<(HS_UTIL_TIME_DIAG_ARRAY_POWER)) -#define HS_UTIL_TIME_DIAG_ARRAY_MASK (HS_UTIL_TIME_DIAG_ARRAY_LENGTH - 1) - - -/** \hscfg Mission specific version number for HS application -** -** \par Description: -** An application version number consists of four parts: -** major version number, minor version number, revision -** number and mission specific revision number. The mission -** specific revision number is defined here and the other -** parts are defined in "hs_version.h". -** -** \par Limits: -** Must be defined as a numeric value that is greater than -** or equal to zero. -*/ -#define HS_MISSION_REV 0 - -#endif /*HS_PLATFORM_CFG_H*/ - -/************************/ -/* End of File Comment */ -/************************/ diff --git a/config/bebop2/inc/lc_msgids.h b/config/bebop2/inc/lc_msgids.h deleted file mode 100644 index 38f2e04f9..000000000 --- a/config/bebop2/inc/lc_msgids.h +++ /dev/null @@ -1,13 +0,0 @@ -#ifndef LC_MSGIDS_H -#define LC_MSGIDS_H - -#include "msg_ids.h" - -#define LC_ALL_ACTIONPOINTS 0xFFFF -#define LC_ALL_WATCHPOINTS 0xFFFF - -#endif /*LC_MSGIDS_H*/ - -/************************/ -/* End of File Comment */ -/************************/ diff --git a/config/bebop2/inc/lc_platform_cfg.h b/config/bebop2/inc/lc_platform_cfg.h deleted file mode 100644 index 3255f78b7..000000000 --- a/config/bebop2/inc/lc_platform_cfg.h +++ /dev/null @@ -1,224 +0,0 @@ -#ifndef LC_PLATFORM_CFG_H -#define LC_PLATFORM_CFG_H - -/** \lccfg Application Name -** -** \par Description: -** This definition must match the name used at startup by the cFE -** Executive Services when creating the LC application. Note that -** application names are also an argument to certain cFE commands. -** For example, the application name is needed to access tables -** via cFE Table Services commands. -** -** \par Limits: -** LC requires that this name be defined, but otherwise places -** no limits on the definition. Refer to CFE Executive Services -** for specific information on limits related to application names. -*/ -#define LC_APP_NAME "LC" - - -/** \lccfg Command Pipe Depth -** -** \par Description: -** Maximum number of messages that will be allowed in the -** LC command pipe at one time. Used during initialization -** in the call to #CFE_SB_CreatePipe -** -** \par Limits: -** This parameter can't be larger than an unsigned 16 bit -** integer (65535). -*/ -#define LC_PIPE_DEPTH 12 - -/** \lccfg Maximum number of watchpoints -** -** \par Description: -** Maximum number of watchpoints that can be defined in the -** Watchpoint Definition Table (WDT) -** -** \par Limits: -** This parameter can't be larger than 65520 (0xFFF0) because -** higher values are reserved for use as Reversh Polish -** operators. -** -** This parameter will dictate the size of the Watchpoint -** Definition Table: -** -** WDT Size = LC_MAX_WATCHPOINTS * sizeof(#LC_WDTEntry_t) -** -** The total size of this table should not exceed the -** cFE size limit for a single buffered table set by the -** #CFE_TBL_MAX_SNGL_TABLE_SIZE parameter -*/ -#define LC_MAX_WATCHPOINTS 176 - -/** \lccfg Maximum number of actionpoints -** -** \par Description: -** Maximum number of actionpoints that can be defined in the -** Actionpoint Definition Table (ADT) -** -** \par Limits: -** This parameter can't be larger than an unsigned 16 bit -** integer (65535). -** -** This parameter will dictate the size of the Actionpoint -** Definition Table: -** -** ADT Size = LC_MAX_ACTIONPOINTS * sizeof(#LC_ADTEntry_t) -** -** The total size of this table should not exceed the -** cFE size limit for a single buffered table set by the -** #CFE_TBL_MAX_SNGL_TABLE_SIZE parameter -*/ -#define LC_MAX_ACTIONPOINTS 176 - -/** \lccfg LC state after power-on reset -** -** \par Description: -** What operating state LC should initialize to after a power-on -** reset. -** -** \par Limits: -** This parameter must be one of the following: -** #LC_STATE_ACTIVE -** #LC_STATE_PASSIVE -** #LC_STATE_DISABLED -*/ -#define LC_STATE_POWER_ON_RESET LC_STATE_DISABLED - -/** \lccfg Save data to CDS compiler switch -** -** \par Description: -** Compile switch that tells LC that we should save data -** over a processor or application reset by using the -** Critical Data Store (CDS). -** Comment out or \#undef to force LC to do a default (power-on) -** initialization sequence on all restarts (this is the -** default case). -** -** \par Limits: -** n/a -*/ -/* #define LC_SAVE_TO_CDS */ - -/** \lccfg LC state when CDS is restored -** -** \par Description: -** What operating state LC should initialize to after successfully -** restoring information from the CDS after a processor or -** application reset. This is only used when #LC_SAVE_TO_CDS -** is set to TRUE, and provides a way to override any state LC -** may have been operating in prior to the reset occurring. -** -** \par Limits: -** This parameter must be one of the following: -** #LC_STATE_ACTIVE -** #LC_STATE_PASSIVE -** #LC_STATE_DISABLED -** #LC_STATE_FROM_CDS -*/ -#define LC_STATE_WHEN_CDS_RESTORED LC_STATE_FROM_CDS - -/** \lccfg Watchpoint Definition Table (WDT) filename -** -** \par Description: -** Default file to load the watchpoint definition table from -** during a power-on reset sequence -** -** \par Limits: -** This string shouldn't be longer than #OS_MAX_PATH_LEN for the -** target platform in question -*/ -#define LC_WDT_FILENAME "/cf/apps/lc_def_wdt.tbl" - -/** \lccfg Actionpoint Definition Table (ADT) filename -** -** \par Description: -** Default file to load the actionpoint definition table from -** during a power-on reset sequence -** -** \par Limits: -** This string shouldn't be longer than #OS_MAX_PATH_LEN for the -** target platform in question -*/ -#define LC_ADT_FILENAME "/cf/apps/lc_def_adt.tbl" - -/** \lccfg Maximum reverse polish (RPN) equation size -** -** \par Description: -** Maximum combined number of operators and operands that may -** exist in an actionpoint definition's reverse polish equation -** -** \par Limits: -** The LC app does not place a limit on this parameter. -** However, raising this value will increase the size of the -** Actionpoint Definition Table (ADT) -*/ -#define LC_MAX_RPN_EQU_SIZE 20 - -/** \lccfg Maximum actionpoint event text string size -** -** \par Description: -** Maximum length of the event message string that can specified -** in an actionpoint definition (including NUL terminator) -** -** \par Limits: -** LC appends the trailer text #LC_AP_EVENT_TAIL_STR to this -** string when reporting actionpoint failures. The size of this -** string is #LC_AP_EVENT_TAIL_LEN -** -** The total value of LC_MAX_ACTION_TEXT + #LC_AP_EVENT_TAIL_LEN -** should be less than #CFE_EVS_MAX_MESSAGE_LENGTH to avoid -** event message truncation -** -** Raising this value will also increase the size of the -** Actionpoint Definition Table (ADT) -*/ -#define LC_MAX_ACTION_TEXT 32 - -/** \lccfg Maximum valid ADT RTS ID -** -** \par Description: -** The maximum RTS ID that LC will allow during table -** validation in a Actionpoint Definition Table (ADT) entry -** -** \par Limits: -** This parameter can't be larger than an unsigned 16 bit -** integer (65535). -*/ -#define LC_MAX_VALID_ADT_RTSID 0xFFF0 - -/** \lccfg Floating Point Compare Tolerance -** -** \par Description: -** Difference between 2 floats that will still compare as - equal. The default value of (1.0e-25) was taken from - the GNC file mathconstants.h -** -** \par Limits: -** The LC app does not place a limit on this parameter. -*/ -#define LC_FLOAT_TOLERANCE (1.0e-25) - -/** \mmcfg Mission specific version number for LC application -** -** \par Description: -** An application version number consists of four parts: -** major version number, minor version number, revision -** number and mission specific revision number. The mission -** specific revision number is defined here and the other -** parts are defined in "lc_version.h". -** -** \par Limits: -** Must be defined as a numeric value that is greater than -** or equal to zero. -*/ -#define LC_MISSION_REV 0 - -#endif /*LC_PLATFORM_CFG_H*/ - -/************************/ -/* End of File Comment */ -/************************/ diff --git a/config/bebop2/inc/ld_platform_cfg.h b/config/bebop2/inc/ld_platform_cfg.h deleted file mode 100644 index 210a0bcf0..000000000 --- a/config/bebop2/inc/ld_platform_cfg.h +++ /dev/null @@ -1,122 +0,0 @@ -#ifndef LD_PLATFORM_CFG_H -#define LD_PLATFORM_CFG_H - -#ifdef __cplusplus -extern "C" { -#endif - -/* -** LD Platform Configuration Parameter Definitions -*/ - -/** \brief Mission specific version number for LD application -** -** \par Description: -** An application version number consists of four parts: -** major version number, minor version number, revision -** number and mission specific revision number. The mission -** specific revision number is defined here and the other -** parts are defined in "amc_version.h". -** -** \par Limits: -** Must be defined as a numeric value that is greater than -** or equal to zero. -*/ -#define LD_MISSION_REV (0) - -/** \brief Pipe depth for the Scheduler pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define LD_SCH_PIPE_DEPTH (15) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define LD_SCH_PIPE_NAME ("LD_SCH_PIPE") - -/** \brief The SB pend behavior type for the Scheduler pipe. -** -** \par Limits: -** One of: CFE_SB_POLL, CFE_SB_PEND_FOREVER, or the -** number of milliseconds to wait for a new message (recommended). -** Note, using CFE_SB_PEND_FOREVER may cause an unresponsive -** application if no messages arrive on this pipe. -*/ -#define LD_SCH_PIPE_PEND_TIME (2000) - -/** \brief The number of WAKEUP messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max limited to CFE_SB_MAX_PIPE_DEPTH-1. Note the -** LD_WAKEUP_MID_MAX_MSG_COUNT and LD_SEND_HK_MID_MAX_MSG_COUNT -** must be less than LD_SCH_PIPE_DEPTH. -*/ -#define LD_WAKEUP_MID_MAX_MSG_COUNT (1) - -/** \brief The number of SEND_HK messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. Note the -** LD_WAKEUP_MID_MAX_MSG_COUNT and LD_SEND_HK_MID_MAX_MSG_COUNT -** must be less than LD_SCH_PIPE_DEPTH. -*/ -#define LD_SEND_HK_MID_MAX_MSG_COUNT (1) - -/** \brief Pipe depth for the command pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define LD_CMD_PIPE_DEPTH (4) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define LD_CMD_PIPE_NAME ("LD_CMD_PIPE") - -/** \brief Pipe depth for the data pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define LD_DATA_PIPE_DEPTH (4) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define LD_DATA_PIPE_NAME ("LD_DATA_PIPE") - -/** \brief The config table default filename -** -** \par Limits: -** The length of each string, including the NULL terminator cannot exceed -** the #OS_MAX_PATH_LEN value. -*/ -#define LD_CONFIG_TABLE_FILENAME ("/cf/apps/ld_config.tbl") - -/** \brief The timeout value, in milliseconds, to wait for ES application startup sync. -** -** \par Limits: -** This parameter must be at least 1000 (ms). -*/ -#define LD_STARTUP_TIMEOUT_MSEC (1000) - - -#ifdef __cplusplus -} -#endif - -#endif /* LD_PLATFORM_CFG_H */ - -/************************/ -/* End of File Comment */ -/************************/ - diff --git a/config/bebop2/inc/lgc_platform_cfg.h b/config/bebop2/inc/lgc_platform_cfg.h deleted file mode 100644 index ee9701169..000000000 --- a/config/bebop2/inc/lgc_platform_cfg.h +++ /dev/null @@ -1,130 +0,0 @@ -#ifndef LGC_PLATFORM_CFG_H -#define LGC_PLATFORM_CFG_H - -#ifdef __cplusplus -extern "C" { -#endif - -/* -** LGC Platform Configuration Parameter Definitions -*/ - -/** \brief Mission specific version number for LGC application -** -** \par Description: -** An application version number consists of four parts: -** major version number, minor version number, revision -** number and mission specific revision number. The mission -** specific revision number is defined here and the other -** parts are defined in "amc_version.h". -** -** \par Limits: -** Must be defined as a numeric value that is greater than -** or equal to zero. -*/ -#define LGC_MISSION_REV (0) - -/** \brief Pipe depth for the Scheduler pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define LGC_SCH_PIPE_DEPTH (2) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define LGC_SCH_PIPE_NAME ("LGC_SCH_PIPE") - -/** \brief The SB pend behavior type for the Scheduler pipe. -** -** \par Limits: -** One of: CFE_SB_POLL, CFE_SB_PEND_FOREVER, or the -** number of milliseconds to wait for a new message (recommended). -** Note, using CFE_SB_PEND_FOREVER may cause an unresponsive -** application if no messages arrive on this pipe. -*/ -#define LGC_SCH_PIPE_PEND_TIME (2000) - -/** \brief The number of WAKEUP messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max limited to CFE_SB_MAX_PIPE_DEPTH-1. Note the -** LGC_WAKEUP_MID_MAX_MSG_COUNT and LGC_SEND_HK_MID_MAX_MSG_COUNT -** must be less than LGC_SCH_PIPE_DEPTH. -*/ -#define LGC_WAKEUP_MID_MAX_MSG_COUNT (1) - -/** \brief The number of SEND_HK messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. Note the -** LGC_WAKEUP_MID_MAX_MSG_COUNT and LGC_SEND_HK_MID_MAX_MSG_COUNT -** must be less than LGC_SCH_PIPE_DEPTH. -*/ -#define LGC_SEND_HK_MID_MAX_MSG_COUNT (1) - -/** \brief Pipe depth for the command pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define LGC_CMD_PIPE_DEPTH (4) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define LGC_CMD_PIPE_NAME ("LGC_CMD_PIPE") - -/** \brief Pipe depth for the data pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define LGC_DATA_PIPE_DEPTH (4) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define LGC_DATA_PIPE_NAME ("LGC_DATA_PIPE") - -/** \brief The config table default filename -** -** \par Limits: -** The length of each string, including the NULL terminator cannot exceed -** the #OS_MAX_PATH_LEN value. -*/ -#define LGC_CONFIG_TABLE_FILENAME ("/cf/apps/lgc_config.tbl") - -/** \brief The timeout value, in milliseconds, to wait for ES application startup sync. -** -** \par Limits: -** This parameter must be at least 1000 (ms). -*/ -#define LGC_STARTUP_TIMEOUT_MSEC (1000) - - -/** \brief The number of landing gear actuators. -** -** \par Limits: -** None. -*/ -#define LGC_MAX_GEAR_OUTPUTS (1) - - -#ifdef __cplusplus -} -#endif - -#endif /* LGC_PLATFORM_CFG_H */ - -/************************/ -/* End of File Comment */ -/************************/ - diff --git a/config/bebop2/inc/mac_platform_cfg.h b/config/bebop2/inc/mac_platform_cfg.h deleted file mode 100644 index 58a381b18..000000000 --- a/config/bebop2/inc/mac_platform_cfg.h +++ /dev/null @@ -1,113 +0,0 @@ -#ifndef MAC_PLATFORM_CFG_H -#define MAC_PLATFORM_CFG_H - -#ifdef __cplusplus -extern "C" { -#endif - -/* -** mac Platform Configuration Parameter Definitions -*/ - -/** \brief Mission specific version number for MAC application -** -** \par Description: -** An application version number consists of four parts: -** major version number, minor version number, revision -** number and mission specific revision number. The mission -** specific revision number is defined here and the other -** parts are defined in "mac_version.h". -** -** \par Limits: -** Must be defined as a numeric value that is greater than -** or equal to zero. -*/ -#define MAC_MISSION_REV (0) - -/** \brief Pipe depth for the Scheduler pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define MAC_SCH_PIPE_DEPTH (15) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define MAC_SCH_PIPE_NAME ("MAC_SCH_PIPE") - -/** \brief The SB pend behavior type for the Scheduler pipe. -** -** \par Limits: -** One of: CFE_SB_POLL, CFE_SB_PEND_FOREVER, or the -** number of milliseconds to wait for a new message (recommended). -** Note, using CFE_SB_PEND_FOREVER may cause an unresponsive -** application if no messages arrive on this pipe. -*/ -#define MAC_SCH_PIPE_PEND_TIME (2000) - -/** \brief The number of WAKEUP messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max limited to CFE_SB_MAX_PIPE_DEPTH-1. Note the -** MAC_SCH_PIPE_WAKEUP_RESERVED and MAC_SCH_PIPE_SEND_HK_RESERVED -** must be less than MAC_SCH_PIPE_DEPTH. -*/ -#define MAC_SCH_PIPE_WAKEUP_RESERVED (1) - -/** \brief The number of SEND_HK messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. Note the -** MAC_SCH_PIPE_WAKEUP_RESERVED and MAC_SCH_PIPE_SEND_HK_RESERVED -** must be less than MAC_SCH_PIPE_DEPTH. -*/ -#define MAC_SCH_PIPE_SEND_HK_RESERVED (1) - -/** \brief Pipe depth for the command pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define MAC_CMD_PIPE_DEPTH (15) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define MAC_CMD_PIPE_NAME ("MAC_CMD_PIPE") - -/** \brief The config table default filename -** -** \par Limits: -** The length of each string, including the NULL terminator cannot exceed -** the #OS_MAX_PATH_LEN value. -*/ -#define MAC_PARAM_TABLE_FILENAME ("/cf/apps/mac_param.tbl") - -/** \brief The timeout value, in milliseconds, to wait for ES application startup sync. -** -** \par Limits: -** This parameter must be at least 1000 (ms). -*/ -#define MAC_STARTUP_TIMEOUT_MSEC (1000) - -/* TODO: Add Doxygen markup. */ -#define MAC_CUSTOM_DEV_PATH "/tmp/ttyS0" - -#define MAC_MAX_MOTOR_OUTPUTS (16) - - -#ifdef __cplusplus -} -#endif - -#endif /* MAC_PLATFORM_CFG_H */ - -/************************/ -/* End of File Comment */ -/************************/ - diff --git a/config/bebop2/inc/mavlink_platform_cfg.h b/config/bebop2/inc/mavlink_platform_cfg.h deleted file mode 100644 index 915ab2abf..000000000 --- a/config/bebop2/inc/mavlink_platform_cfg.h +++ /dev/null @@ -1,150 +0,0 @@ -#ifndef MAVLINK_PLATFORM_CFG_H -#define MAVLINK_PLATFORM_CFG_H - -#ifdef __cplusplus -extern "C" { -#endif - -/* -** ci Platform Configuration Parameter Definitions -*/ - -/** \brief Mission specific version number for MAVLINK application -** -** \par Description: -** An application version number consists of four parts: -** major version number, minor version number, revision -** number and mission specific revision number. The mission -** specific revision number is defined here and the other -** parts are defined in "ci_version.h". -** -** \par Limits: -** Must be defined as a numeric value that is greater than -** or equal to zero. -*/ -#define MAVLINK_MISSION_REV (0) - -/** \brief Pipe depth for the Scheduler pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define MAVLINK_SCH_PIPE_DEPTH (2) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define MAVLINK_SCH_PIPE_NAME ("MAVLINK_SCH_PIPE") - -/** \brief The SB pend behavior type for the Scheduler pipe. -** -** \par Limits: -** One of: CFE_SB_POLL, CFE_SB_PEND_FOREVER, or the -** number of milliseconds to wait for a new message (recommended). -** Note, using CFE_SB_PEND_FOREVER may cause an unresponsive -** application if no messages arrive on this pipe. -*/ -#define MAVLINK_SCH_PIPE_PEND_TIME (2000) - -/** \brief The number of WAKEUP messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max limited to CFE_SB_MAX_PIPE_DEPTH-1. Note the -** MAVLINK_SCH_PIPE_WAKEUP_RESERVED and MAVLINK_SCH_PIPE_SEND_HK_RESERVED -** must be less than MAVLINK_SCH_PIPE_DEPTH. -*/ -#define MAVLINK_SCH_PIPE_WAKEUP_RESERVED (1) - -/** \brief The number of SEND_HK messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. Note the -** MAVLINK_SCH_PIPE_WAKEUP_RESERVED and MAVLINK_SCH_PIPE_SEND_HK_RESERVED -** must be less than MAVLINK_SCH_PIPE_DEPTH. -*/ -#define MAVLINK_SCH_PIPE_SEND_HK_RESERVED (1) - -/** \brief The number of PROCESS_TIMEOUT messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define MAVLINK_SCH_PIPE_PROC_TIMEOUT_RESERVED (1) - -/** \brief Pipe depth for the command pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define MAVLINK_CMD_PIPE_DEPTH (CFE_SB_MAX_PIPE_DEPTH) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define MAVLINK_CMD_PIPE_NAME ("MAVLINK_CMD_PIPE") - -/** \brief Pipe depth for the data pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define MAVLINK_DATA_PIPE_DEPTH (4) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define MAVLINK_DATA_PIPE_NAME ("MAVLINK_DATA_PIPE") - -/** \brief The config table default filename -** -** \par Limits: -** The length of each string, including the NULL terminator cannot exceed -** the #OS_MAX_PATH_LEN value. -*/ -#define MAVLINK_ACTION_MAP_TABLE_FILENAME ("/cf/apps/mavlink_action.tbl") - -/** \brief The timeout table default filename -** -** \par Limits: -** The length of each string, including the NULL terminator cannot exceed -** the #OS_MAX_PATH_LEN value. -*/ -#define MAVLINK_TIMEOUT_TABLE_FILENAME ("/cf/apps/mavlink_timeout.tbl") - -/** \brief The timeout value, in milliseconds, to wait for ES application startup sync. -** -** \par Limits: -** This parameter must be at least 1000 (ms). -*/ -#define MAVLINK_STARTUP_TIMEOUT_MSEC (5000) - - -#define MAVLINK_MSG_PARAM_NAME_LEN (64) - -#define MAVLINK_SYSTEM_ID (1) -#define MAVLINK_COMPONENT_ID (1) -#define MAVLINK_GCS_IP ("10.10.0.13") -#define MAVLINK_GCS_PORT (14550) -#define MAVLINK_PASSTHRU_IP_SRC ("127.0.0.1") -#define MAVLINK_PASSTHRU_INGEST_PORT (14550) - -#define MAVLINK_ACTION_MAP_ENTRIES (10) -#define MAVLINK_HEARTBEAT_WAIT_CYCLES (5) - - -#ifdef __cplusplus -} -#endif - -#endif /* MAVLINK_PLATFORM_CFG_H */ - -/************************/ -/* End of File Comment */ -/************************/ - diff --git a/config/bebop2/inc/md_msgids.h b/config/bebop2/inc/md_msgids.h deleted file mode 100644 index a7d484c5d..000000000 --- a/config/bebop2/inc/md_msgids.h +++ /dev/null @@ -1,10 +0,0 @@ -#ifndef MD_MSGIDS_H -#define MD_MSGIDS_H - -#include "msg_ids.h" - -#endif /*MD_MSGIDS_H*/ - -/************************/ -/* End of File Comment */ -/************************/ diff --git a/config/bebop2/inc/md_platform_cfg.h b/config/bebop2/inc/md_platform_cfg.h deleted file mode 100644 index b84ababdc..000000000 --- a/config/bebop2/inc/md_platform_cfg.h +++ /dev/null @@ -1,99 +0,0 @@ -#ifndef MD_PLATFORM_CFG_H -#define MD_PLATFORM_CFG_H - - -/************************************************************************* -** Macro Definitions -*************************************************************************/ - -/** -** \name MD Command Pipe Parameters */ -/** \{ */ -#define MD_PIPE_NAME "MD_CMD_PIPE" -#define MD_PIPE_DEPTH 50 -/** \} */ - - -/** \mdcfg Memory Dwell Base Filename -** -** \par Description: -** Default base name and location for Memory Dwell filenames -** AppInit will append 01,02,03, up to number of tables. -** -** \par Limits: -** This string shouldn't be longer than #OS_MAX_PATH_LEN for the -** target platform in question -*/ -#define MD_TBL_FILENAME_FORMAT "/cf/apps/md_dw\%02d.tbl" - -/** -** \mdcfg Number of memory dwell tables. -** -** \par Limits -** Acceptable values for this parameter are 1 to 16. -*/ -#define MD_NUM_DWELL_TABLES 4 - -/** -** \mdcfg Maximum number of dwell specifications (address/delay/length) -** in a Dwell Table. -** -** \par Limits -** The maximum value for this parameter is limited by its effect -** on the MD_DwellTableLoad_t and associated data points, limiting -** it to 65535 points. -*/ -#define MD_DWELL_TABLE_SIZE 25 - -/** -** \mdcfg Option of whether 32 bit integers must be aligned to 32 bit -** boundaries. 1 indicates 'yes' (32-bit boundary alignment enforced), -** 0 indicates 'no' (16-bit boundary alignment enforced). -** -** \par Limits -** Value must be 0 or 1. -*/ -#define MD_ENFORCE_DWORD_ALIGN 1 - -/** -** \mdcfg Option of whether a signature field will be reserved in -** dwell packets. 1 indicates 'yes', 0 indicates 'no'. -** -** \par Limits -** Value must be 0 or 1. -*/ -#define MD_SIGNATURE_OPTION 1 - -/** -** \mdcfg Number of characters used in the Signature Field -** -** \par Limits -** Signature field length needs to be a multiple of 4 so that -** dwell packet is a multiple of 4 bytes and no compiler padding -** will occur. Note that the final character of the signature string -** must be a null character, so the effective length of user definable -** characters is one less than the defined length. The length -** specified must therefore be at least 4. -*/ -#define MD_SIGNATURE_FIELD_LENGTH 32 - -/** \mdcfg Mission specific version number for MD application -** -** \par Description: -** An application version number consists of four parts: -** major version number, minor version number, revision -** number and mission specific revision number. The mission -** specific revision number is defined here and the other -** parts are defined in "md_version.h". -** -** \par Limits: -** Must be defined as a numeric value that is greater than -** or equal to zero. -*/ -#define MD_MISSION_REV 0 - -#endif /* MD_PLATFORM_CFG_H */ - -/************************/ -/* End of File Comment */ -/************************/ diff --git a/config/bebop2/inc/mm_msgids.h b/config/bebop2/inc/mm_msgids.h deleted file mode 100644 index be3104f3a..000000000 --- a/config/bebop2/inc/mm_msgids.h +++ /dev/null @@ -1,10 +0,0 @@ -#ifndef MM_MSGIDS_H -#define MM_MSGIDS_H - -#include "msg_ids.h" - -#endif /*MM_MSGIDS_H*/ - -/************************/ -/* End of File Comment */ -/************************/ diff --git a/config/bebop2/inc/mm_platform_cfg.h b/config/bebop2/inc/mm_platform_cfg.h deleted file mode 100644 index 8ce3bec71..000000000 --- a/config/bebop2/inc/mm_platform_cfg.h +++ /dev/null @@ -1,399 +0,0 @@ -#ifndef MM_PLATFORM_CFG_H -#define MM_PLATFORM_CFG_H - -/** -** \mmcfg Memory Managment File -- cFE file header sub-type -** -** \par Description: -** This parameter defines the value that is used -** to identify a Memory Management file. -** -** \par Limits: -** The file header data type for the value is 32 bits unsigned, -** thus the value can be anything from zero to 4,294,967,295. -** (limit is not verified) -*/ -#define MM_CFE_HDR_SUBTYPE 0x4D4D5354 - - -/** -** \mmcfg Memory Management File -- cFE file header description -** -** \par Description: -** This parameter defines the text string that -** may be used to identify Memory Management files. -** -** \par Limits: -** The string length (including string terminator) cannot exceed -** #CFE_FS_HDR_DESC_MAX_LEN. (limit is not verified) -*/ -#define MM_CFE_HDR_DESCRIPTION "Memory Manager dump file" - - -/** \mmcfg Maximum number of bytes for a file load to RAM memory -** -** \par Description: -** Maximum number of bytes that can be loaded into RAM from a -** single load file. -** -** \par Limits: -** The MM app does not place a limit on this parameter. -** However, setting this value to a large number will increase -** the likelyhood of MM being late responding to housekeeping -** requests since it cannot process such a request while a load -** or dump is in progress. -*/ -#define MM_MAX_LOAD_FILE_DATA_RAM (1024*1024) - -/** \mmcfg Maximum number of bytes for a file load to EEPROM memory -** -** \par Description: -** Maximum number of bytes that can be loaded into EEPROM from a -** single load file. -** -** \par Limits: -** The MM app does not place a limit on this parameter. -** However, setting this value to a large number will increase -** the likelyhood of MM being late responding to housekeeping -** requests since it cannot process such a request while a load -** or dump is in progress. -*/ -#define MM_MAX_LOAD_FILE_DATA_EEPROM (128*1024) - -/** \mmcfg Maximum number of bytes for an uninterruptable load -** -** \par Description: -** Maximum number of bytes that can be loaded with the -** "memory load with interrupts disabled" (#MM_LOAD_MEM_WID_CC) -** command. -** -** \par Limits: -** This parameter is limited to the size of an uint8 which -** is the data type used to specify the number of bytes to -** load in the command message. -* -** If this data type is made bigger, changing this value to a -** large number will increase the amount of time interrupts are -** disabled during the load. It should also be kept small enough -** to avoid packet segmentation for the command protocal being -** used. -*/ -#define MM_MAX_UNINTERRUPTABLE_DATA 200 - -/** \mmcfg Maximum number of bytes per load data segment -** -** \par Description: -** Maximum number of bytes MM will load per task cycle -** to prevent CPU hogging (segmented load). -** -** \par Limits: -** The MM app does not place a limit on this parameter. -** However, setting this value to a large number will decrease -** the amount of time available for other tasks to execute and -** increase MM CPU utilization during load operations. -*/ -#define MM_MAX_LOAD_DATA_SEG 200 - -/** \mmcfg Maximum number of bytes for a file dump from RAM memory -** -** \par Description: -** Maximum number of bytes that can be dumped from RAM into a -** single dump file. -** -** \par Limits: -** The MM app does not place a limit on this parameter. -** However, setting this value to a large number will increase -** the likelyhood of MM being late responding to housekeeping -** requests since it cannot process such a request while a load -** or dump is in progress. -*/ -#define MM_MAX_DUMP_FILE_DATA_RAM (1024*1024) - -/** \mmcfg Maximum number of bytes for a file dump from EEPROM memory -** -** \par Description: -** Maximum number of bytes that can be dumped from EEPROM into a -** single dump file. -** -** \par Limits: -** The MM app does not place a limit on this parameter. -** However, setting this value to a large number will increase -** the likelyhood of MM being late responding to housekeeping -** requests since it cannot process such a request while a load -** or dump is in progress. -*/ -#define MM_MAX_DUMP_FILE_DATA_EEPROM (128*1024) - -/** \mmcfg Maximum number of bytes for a symbol table file dump -** -** \par Description: -** Maximum number of bytes that can be dumped from the symbol table -** into a single dump file. -** -** \par Limits: -** The MM app does not place a limit on this parameter. -** However, setting this value to a large number will impact -** the OSAL since it is responsible for generating the dump file. -*/ -#define MM_MAX_DUMP_FILE_DATA_SYMTBL (128*1024) - -/** \mmcfg Maximum number of bytes per dump data segment -** -** \par Description: -** Maximum number of bytes MM will dump per task cycle -** to prevent CPU hogging (segmented dump). -** -** \par Limits: -** The MM app does not place a limit on this parameter. -** However, setting this value to a large number will decrease -** the amount of time available for other tasks to execute and -** increase MM CPU utilization during dump operations. -*/ -#define MM_MAX_DUMP_DATA_SEG 200 - -/** \mmcfg Maximum number of bytes for a fill to RAM memory -** -** \par Description: -** Maximum number of bytes that can be loaded into RAM with a -** single memory fill command. -** -** \par Limits: -** The MM app does not place a limit on this parameter. -** However, setting this value to a large number will increase -** the likelyhood of MM being late responding to housekeeping -** requests since it cannot process such a request while a fill -** operation is in progress. -*/ -#define MM_MAX_FILL_DATA_RAM (1024*1024) - -/** \mmcfg Maximum number of bytes for a fill to EEPROM memory -** -** \par Description: -** Maximum number of bytes that can be loaded into EEPROM with a -** single memory fill command. -** -** \par Limits: -** The MM app does not place a limit on this parameter. -** However, setting this value to a large number will increase -** the likelyhood of MM being late responding to housekeeping -** requests since it cannot process such a request while a fill -** operation is in progress. -*/ -#define MM_MAX_FILL_DATA_EEPROM (128*1024) - -/** \mmcfg Maximum number of bytes per fill data segment -** -** \par Description: -** Maximum number of bytes MM will fill per task cycle -** to prevent CPU hogging (segmented fill). -** -** \par Limits: -** The MM app does not place a limit on this parameter. -** However, setting this value to a large number will decrease -** the amount of time available for other tasks to execute and -** increase MM CPU utilization during memory fill operations. -*/ -#define MM_MAX_FILL_DATA_SEG 200 - -/** \mmcfg Optional MEM32 compile switch -** -** \par Description: -** Compile switch to include code for the optional MM_MEM32 memory. -** The value should be set to TRUE or FALSE. A value of TRUE will -** include the code. -** -** \par Limits: -** n/a -*/ -#define MM_OPT_CODE_MEM32_MEMTYPE TRUE - -/** \mmcfg Maximum number of bytes for a file load to MEM32 memory -** -** \par Description: -** Maximum number of bytes that can be loaded into the optional -** MEM32 memory type from a single load file. -** -** \par Limits: -** This value should be longword aligned. -** Setting this value to a large number will increase the likelyhood -** of MM being late responding to housekeeping requests since it -** cannot process such a request while a load or dump is in progress. -*/ -#define MM_MAX_LOAD_FILE_DATA_MEM32 (1024*1024) - -/** \mmcfg Maximum number of bytes for a file dump from MEM32 memory -** -** \par Description: -** Maximum number of bytes that can be dumped from the optional -** MEM32 memory type to a single dump file. -** -** \par Limits: -** This value should be longword aligned. -** Setting this value to a large number will increase the likelyhood -** of MM being late responding to housekeeping requests since it -** cannot process such a request while a load or dump is in progress. -*/ -#define MM_MAX_DUMP_FILE_DATA_MEM32 (1024*1024) - -/** \mmcfg Maximum number of bytes for a fill to MEM32 memory -** -** \par Description: -** Maximum number of bytes that can be loaded into the optional -** MEM32 memory type with a single memory fill command. -** -** \par Limits: -** This value should be longword aligned. -** Setting this value to a large number will increase the likelyhood -** of MM being late responding to housekeeping requests since it -** cannot process such a request while a memory fill operation -** is in progress. -*/ -#define MM_MAX_FILL_DATA_MEM32 (1024*1024) - -/** \mmcfg Optional MEM16 compile switch -** -** \par Description: -** Compile switch to include code for the optional MM_MEM16 memory. -** The value should be set to TRUE or FALSE. A value of TRUE will -** include the code. -** -** \par Limits: -** n/a -*/ -#define MM_OPT_CODE_MEM16_MEMTYPE TRUE - -/** \mmcfg Maximum number of bytes for a file load to MEM16 memory -** -** \par Description: -** Maximum number of bytes that can be loaded into the optional -** MEM16 memory type from a single load file. -** -** \par Limits: -** This value should be word aligned. -** Setting this value to a large number will increase the likelyhood -** of MM being late responding to housekeeping requests since it -** cannot process such a request while a load or dump is in progress. -*/ -#define MM_MAX_LOAD_FILE_DATA_MEM16 (1024*1024) - -/** \mmcfg Maximum number of bytes for a file dump from MEM16 memory -** -** \par Description: -** Maximum number of bytes that can be dumped from the optional -** MEM16 memory type to a single dump file. -** -** \par Limits: -** This value should be word aligned. -** Setting this value to a large number will increase the likelyhood -** of MM being late responding to housekeeping requests since it -** cannot process such a request while a load or dump is in progress. -*/ -#define MM_MAX_DUMP_FILE_DATA_MEM16 (1024*1024) - -/** \mmcfg Maximum number of bytes for a fill to MEM16 memory -** -** \par Description: -** Maximum number of bytes that can be loaded into the optional -** MEM16 memory type with a single memory fill command. -** -** \par Limits: -** This value should be word aligned. -** Setting this value to a large number will increase the likelyhood -** of MM being late responding to housekeeping requests since it -** cannot process such a request while a memory fill operation -** is in progress. -*/ -#define MM_MAX_FILL_DATA_MEM16 (1024*1024) - -/** \mmcfg Optional MEM8 compile switch -** -** \par Description: -** Compile switch to include code for the optional MM_MEM8 memory. -** The value should be set to TRUE or FALSE. A value of TRUE will -** include the code. -** -** \par Limits: -** n/a -*/ -#define MM_OPT_CODE_MEM8_MEMTYPE TRUE - -/** \mmcfg Maximum number of bytes for a file load to MEM8 memory -** -** \par Description: -** Maximum number of bytes that can be loaded into the optional -** MEM8 memory type from a single load file. -** -** \par Limits: -** The MM app does not place a limit on this parameter. -** Setting this value to a large number will increase the likelyhood -** of MM being late responding to housekeeping requests since it -** cannot process such a request while a load or dump is in progress. -*/ -#define MM_MAX_LOAD_FILE_DATA_MEM8 (1024*1024) - -/** \mmcfg Maximum number of bytes for a file dump from MEM8 memory -** -** \par Description: -** Maximum number of bytes that can be dumped from the optional -** MEM8 memory type to a single dump file. -** -** \par Limits: -** The MM app does not place a limit on this parameter. -** Setting this value to a large number will increase the likelyhood -** of MM being late responding to housekeeping requests since it -** cannot process such a request while a load or dump is in progress. -*/ -#define MM_MAX_DUMP_FILE_DATA_MEM8 (1024*1024) - -/** \mmcfg Maximum number of bytes for a fill to MEM8 memory -** -** \par Description: -** Maximum number of bytes that can be loaded into the optional -** MEM8 memory type with a single memory fill command. -** -** \par Limits: -** The MM app does not place a limit on this parameter. -** Setting this value to a large number will increase the likelyhood -** of MM being late responding to housekeeping requests since it -** cannot process such a request while a memory fill operation -** is in progress. -*/ -#define MM_MAX_FILL_DATA_MEM8 (1024*1024) - -/** \mmcfg Segment break processor delay -** -** \par Description: -** How many milliseconds to delay between segments for dump, load, -** and fill operations. A value of zero cycles through the -** OS scheduler, giving up what's left of the current timeslice. -** -** \par Limits: -** The MM app does not place a limit on this parameter. -** However, setting this value to a large number will increase the -** time required to process load, dump, and fill requests. -** It will also increase the likelyhood of MM being late responding -** to housekeeping requests since it cannot process such a request -** while a memory operation is in progress. -*/ -#define MM_PROCESSOR_CYCLE 0 - -/** \mmcfg Mission specific version number for MM application -** -** \par Description: -** An application version number consists of four parts: -** major version number, minor version number, revision -** number and mission specific revision number. The mission -** specific revision number is defined here and the other -** parts are defined in "mm_version.h". -** -** \par Limits: -** Must be defined as a numeric value that is greater than -** or equal to zero. -*/ -#define MM_MISSION_REV 0 - -#endif /*MM_PLATFORM_CFG_H*/ - -/************************/ -/* End of File Comment */ -/************************/ diff --git a/config/bebop2/inc/mpc_platform_cfg.h b/config/bebop2/inc/mpc_platform_cfg.h deleted file mode 100644 index 20a61ef05..000000000 --- a/config/bebop2/inc/mpc_platform_cfg.h +++ /dev/null @@ -1,111 +0,0 @@ -#ifndef MPC_PLATFORM_CFG_H -#define MPC_PLATFORM_CFG_H - -#ifdef __cplusplus -extern "C" { -#endif - -/* -** MPC Platform Configuration Parameter Definitions -*/ - -/** \brief Mission specific version number for MPC application -** -** \par Description: -** An application version number consists of four parts: -** major version number, minor version number, revision -** number and mission specific revision number. The mission -** specific revision number is defined here and the other -** parts are defined in "amc_version.h". -** -** \par Limits: -** Must be defined as a numeric value that is greater than -** or equal to zero. -*/ -#define MPC_MISSION_REV (0) - -/** \brief Pipe depth for the Scheduler pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define MPC_SCH_PIPE_DEPTH (15) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define MPC_SCH_PIPE_NAME ("MPC_SCH_PIPE") - -/** \brief The SB pend behavior type for the Scheduler pipe. -** -** \par Limits: -** One of: CFE_SB_POLL, CFE_SB_PEND_FOREVER, or the -** number of milliseconds to wait for a new message (recommended). -** Note, using CFE_SB_PEND_FOREVER may cause an unresponsive -** application if no messages arrive on this pipe. -*/ -#define MPC_SCH_PIPE_PEND_TIME (2000) - -/** \brief The number of WAKEUP messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max limited to CFE_SB_MAX_PIPE_DEPTH-1. Note the -** MPC_WAKEUP_MID_MAX_MSG_COUNT and MPC_SEND_HK_MID_MAX_MSG_COUNT -** must be less than MPC_SCH_PIPE_DEPTH. -*/ -#define MPC_WAKEUP_MID_MAX_MSG_COUNT (1) - -/** \brief The number of SEND_HK messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. Note the -** MPC_WAKEUP_MID_MAX_MSG_COUNT and MPC_SEND_HK_MID_MAX_MSG_COUNT -** must be less than MPC_SCH_PIPE_DEPTH. -*/ -#define MPC_SEND_HK_MID_MAX_MSG_COUNT (1) - -/** \brief Pipe depth for the command pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define MPC_CMD_PIPE_DEPTH (4) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define MPC_CMD_PIPE_NAME ("MPC_CMD_PIPE") - -/** \brief The config table default filename -** -** \par Limits: -** The length of each string, including the NULL terminator cannot exceed -** the #OS_MAX_PATH_LEN value. -*/ -#define MPC_CONFIG_TABLE_FILENAME ("/cf/apps/mpc_config.tbl") - -/** \brief The timeout value, in milliseconds, to wait for ES application startup sync. -** -** \par Limits: -** This parameter must be at least 1000 (ms). -*/ -#define MPC_STARTUP_TIMEOUT_MSEC (1000) - -/** \brief Time for direction change hysteresis */ -#define DIRECTION_CHANGE_TRIGGER_TIME_US (100000) - - -#ifdef __cplusplus -} -#endif - -#endif /* MPC_PLATFORM_CFG_H */ - -/************************/ -/* End of File Comment */ -/************************/ - diff --git a/config/bebop2/inc/ms5607_platform_cfg.h b/config/bebop2/inc/ms5607_platform_cfg.h deleted file mode 100644 index 6b9cf8081..000000000 --- a/config/bebop2/inc/ms5607_platform_cfg.h +++ /dev/null @@ -1,138 +0,0 @@ -#ifndef MS5607_PLATFORM_CFG_H -#define MS5607_PLATFORM_CFG_H - -#ifdef __cplusplus -extern "C" { -#endif - -/* -** MS5607 Platform Configuration Parameter Definitions -*/ - -/** \brief Mission specific version number for MS5607 application -** -** \par Description: -** An application version number consists of four parts: -** major version number, minor version number, revision -** number and mission specific revision number. The mission -** specific revision number is defined here and the other -** parts are defined in "amc_version.h". -** -** \par Limits: -** Must be defined as a numeric value that is greater than -** or equal to zero. -*/ -#define MS5607_MISSION_REV (0) - -/** \brief Pipe depth for the Scheduler pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define MS5607_SCH_PIPE_DEPTH (2) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define MS5607_SCH_PIPE_NAME ("MS5607_SCH_PIPE") - -/** \brief The SB pend behavior type for the Scheduler pipe. -** -** \par Limits: -** One of: CFE_SB_POLL, CFE_SB_PEND_FOREVER, or the -** number of milliseconds to wait for a new message (recommended). -** Note, using CFE_SB_PEND_FOREVER may cause an unresponsive -** application if no messages arrive on this pipe. -*/ -#define MS5607_SCH_PIPE_PEND_TIME (2000) - -/** \brief The number of WAKEUP messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max limited to CFE_SB_MAX_PIPE_DEPTH-1. Note the -** MS5607_WAKEUP_MID_MAX_MSG_COUNT and MS5607_SEND_HK_MID_MAX_MSG_COUNT -** must be less than MS5607_SCH_PIPE_DEPTH. -*/ -#define MS5607_MEASURE_MID_MAX_MSG_COUNT (1) - -/** \brief The number of SEND_HK messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. Note the -** MS5607_WAKEUP_MID_MAX_MSG_COUNT and MS5607_SEND_HK_MID_MAX_MSG_COUNT -** must be less than MS5607_SCH_PIPE_DEPTH. -*/ -#define MS5607_SEND_HK_MID_MAX_MSG_COUNT (1) - -/** \brief Pipe depth for the command pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define MS5607_CMD_PIPE_DEPTH (4) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define MS5607_CMD_PIPE_NAME ("MS5607_CMD_PIPE") - -/** \brief Pipe depth for the data pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define MS5607_DATA_PIPE_DEPTH (4) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define MS5607_DATA_PIPE_NAME ("MS5607_DATA_PIPE") - -/** \brief The config table default filename -** -** \par Limits: -** The length of each string, including the NULL terminator cannot exceed -** the #OS_MAX_PATH_LEN value. -*/ -#define MS5607_CONFIG_TABLE_FILENAME ("/cf/apps/ms5607_config.tbl") - -/** \brief The timeout value, in milliseconds, to wait for ES application startup sync. -** -** \par Limits: -** This parameter must be at least 1000 (ms). -*/ -#define MS5607_STARTUP_TIMEOUT_MSEC (1000) - -/** \brief The MS5607 device path. -** -** \par Limits: -** The length of each string, including the NULL terminator cannot exceed -** the #OS_MAX_PATH_LEN value. -*/ -#define MS5607_DEVICE_PATH ("/dev/i2c-1") - -/** \brief The ratio pressure per temperature measurements -** -** \par Limits: -** Set to 3 for 3 pressure measurements for every temperature -** measurement. -*/ -#define MS5607_PRESS_TEMP_MEAS_RATIO (3) - - -#ifdef __cplusplus -} -#endif - -#endif /* MS5607_PLATFORM_CFG_H */ - -/************************/ -/* End of File Comment */ -/************************/ - diff --git a/config/bebop2/inc/nav_platform_cfg.h b/config/bebop2/inc/nav_platform_cfg.h deleted file mode 100644 index 6781d6e8b..000000000 --- a/config/bebop2/inc/nav_platform_cfg.h +++ /dev/null @@ -1,122 +0,0 @@ -#ifndef NAV_PLATFORM_CFG_H -#define NAV_PLATFORM_CFG_H - -#ifdef __cplusplus -extern "C" { -#endif - -/* -** NAV Platform Configuration Parameter Definitions -*/ - -/** \brief Mission specific version number for NAV application -** -** \par Description: -** An application version number consists of four parts: -** major version number, minor version number, revision -** number and mission specific revision number. The mission -** specific revision number is defined here and the other -** parts are defined in "amc_version.h". -** -** \par Limits: -** Must be defined as a numeric value that is greater than -** or equal to zero. -*/ -#define NAV_MISSION_REV (0) - -/** \brief Pipe depth for the Scheduler pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define NAV_SCH_PIPE_DEPTH (15) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define NAV_SCH_PIPE_NAME ("NAV_SCH_PIPE") - -/** \brief The SB pend behavior type for the Scheduler pipe. -** -** \par Limits: -** One of: CFE_SB_POLL, CFE_SB_PEND_FOREVER, or the -** number of milliseconds to wait for a new message (recommended). -** Note, using CFE_SB_PEND_FOREVER may cause an unresponsive -** application if no messages arrive on this pipe. -*/ -#define NAV_SCH_PIPE_PEND_TIME (2000) - -/** \brief The number of WAKEUP messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max limited to CFE_SB_MAX_PIPE_DEPTH-1. Note the -** NAV_WAKEUP_MID_MAX_MSG_COUNT and NAV_SEND_HK_MID_MAX_MSG_COUNT -** must be less than NAV_SCH_PIPE_DEPTH. -*/ -#define NAV_WAKEUP_MID_MAX_MSG_COUNT (1) - -/** \brief The number of SEND_HK messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. Note the -** NAV_WAKEUP_MID_MAX_MSG_COUNT and NAV_SEND_HK_MID_MAX_MSG_COUNT -** must be less than NAV_SCH_PIPE_DEPTH. -*/ -#define NAV_SEND_HK_MID_MAX_MSG_COUNT (1) - -/** \brief Pipe depth for the command pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define NAV_CMD_PIPE_DEPTH (4) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define NAV_CMD_PIPE_NAME ("NAV_CMD_PIPE") - -/** \brief Pipe depth for the data pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define NAV_DATA_PIPE_DEPTH (4) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define NAV_DATA_PIPE_NAME ("NAV_DATA_PIPE") - -/** \brief The config table default filename -** -** \par Limits: -** The length of each string, including the NULL terminator cannot exceed -** the #OS_MAX_PATH_LEN value. -*/ -#define NAV_CONFIG_TABLE_FILENAME ("/cf/apps/nav_config.tbl") - -/** \brief The timeout value, in milliseconds, to wait for ES application startup sync. -** -** \par Limits: -** This parameter must be at least 1000 (ms). -*/ -#define NAV_STARTUP_TIMEOUT_MSEC (1000) - - -#ifdef __cplusplus -} -#endif - -#endif /* NAV_PLATFORM_CFG_H */ - -/************************/ -/* End of File Comment */ -/************************/ - diff --git a/config/bebop2/inc/osconfig.h b/config/bebop2/inc/osconfig.h index 29181806a..35287ee0b 100644 --- a/config/bebop2/inc/osconfig.h +++ b/config/bebop2/inc/osconfig.h @@ -101,7 +101,7 @@ ** This define sets the queue implentation of the Linux port to use sockets ** commenting this out makes the Linux port use the POSIX message queues. */ -#define OSAL_SOCKET_QUEUE +/* #define OSAL_SOCKET_QUEUE */ /* ** Module loader/symbol table is optional diff --git a/config/bebop2/inc/prm_platform_cfg.h b/config/bebop2/inc/prm_platform_cfg.h deleted file mode 100644 index 86a2f9b4d..000000000 --- a/config/bebop2/inc/prm_platform_cfg.h +++ /dev/null @@ -1,125 +0,0 @@ - -#ifndef PRM_PLATFORM_CFG_H -#define PRM_PLATFORM_CFG_H - -#ifdef __cplusplus -extern "C" { -#endif - -/* -** prm Platform Configuration Parameter Definitions -*/ - -/** \brief Mission specific version number for PRM application -** -** \par Description: -** An application version number consists of four parts: -** major version number, minor version number, revision -** number and mission specific revision number. The mission -** specific revision number is defined here and the other -** parts are defined in "prm_version.h". -** -** \par Limits: -** Must be defined as a numeric value that is greater than -** or equal to zero. -*/ -#define PRM_MISSION_REV (0) - -/** \brief Pipe depth for the Scheduler pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define PRM_SCH_PIPE_DEPTH (2) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define PRM_SCH_PIPE_NAME ("PRM_SCH_PIPE") - -/** \brief The SB pend behavior type for the Scheduler pipe. -** -** \par Limits: -** One of: CFE_SB_POLL, CFE_SB_PEND_FOREVER, or the -** number of milliseconds to wait for a new message (recommended). -** Note, using CFE_SB_PEND_FOREVER may cause an unresponsive -** application if no messages arrive on this pipe. -*/ -#define PRM_SCH_PIPE_PEND_TIME (2000) - -/** \brief The number of WAKEUP messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max limited to CFE_SB_MAX_PIPE_DEPTH-1. Note the -** PRM_SCH_PIPE_WAKEUP_RESERVED and PRM_SCH_PIPE_SEND_HK_RESERVED -** must be less than PRM_SCH_PIPE_DEPTH. -*/ -#define PRM_SCH_PIPE_WAKEUP_RESERVED (1) - -/** \brief The number of SEND_HK messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. Note the -** PRM_SCH_PIPE_WAKEUP_RESERVED and PRM_SCH_PIPE_SEND_HK_RESERVED -** must be less than PRM_SCH_PIPE_DEPTH. -*/ -#define PRM_SCH_PIPE_SEND_HK_RESERVED (1) - -/** \brief Pipe depth for the command pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define PRM_CMD_PIPE_DEPTH (4) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define PRM_CMD_PIPE_NAME ("PRM_CMD_PIPE") - -/** \brief Pipe depth for the data pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define PRM_DATA_PIPE_DEPTH (4) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define PRM_DATA_PIPE_NAME ("PRM_DATA_PIPE") - -/** \brief The config table default filename -** -** \par Limits: -** The length of each string, including the NULL terminator cannot exceed -** the #OS_MAX_PATH_LEN value. -*/ -#define PRM_CONFIG_TABLE_FILENAME ("/cf/apps/prm_config.tbl") -/** \brief The timeout value, in milliseconds, to wait for ES application startup sync. -** -** \par Limits: -** This parameter must be at least 1000 (ms). -*/ -#define PRM_STARTUP_TIMEOUT_MSEC (1000) - -/* TODO: Add Doxygen markup. */ -#define PRM_CUSTOM_DEV_PATH "/tmp/ttyS0" - - -#ifdef __cplusplus -} -#endif - -#endif /* PRM_PLATFORM_CFG_H */ - -/************************/ -/* End of File Comment */ -/************************/ - diff --git a/config/bebop2/inc/px4br_platform_cfg.h b/config/bebop2/inc/px4br_platform_cfg.h deleted file mode 100644 index 9ea36cfaf..000000000 --- a/config/bebop2/inc/px4br_platform_cfg.h +++ /dev/null @@ -1,39 +0,0 @@ -#ifndef PX4BR_PLATFORM_CFG_H -#define PX4BR_PLATFORM_CFG_H - -/* -** Pragmas -*/ - -/* -** Local Defines -*/ -#define PX4BR_RUNTIME_QUEUE_NAME "OS_RUNTIME_MGR_CMD" -#define PX4BR_MAX_FIFO_PATH_LENGTH (255) - -/* -** Include Files -*/ - -/* -** Local Structure Declarations -*/ - -/* -** External Global Variables -*/ - -/* -** Global Variables -*/ - -/* -** Local Variables -*/ - -/* -** Local Function Prototypes -*/ - -#endif /* PX4BR_PLATFORM_CFG_H */ - diff --git a/config/bebop2/inc/qae_platform_cfg.h b/config/bebop2/inc/qae_platform_cfg.h deleted file mode 100644 index bd6552cf3..000000000 --- a/config/bebop2/inc/qae_platform_cfg.h +++ /dev/null @@ -1,122 +0,0 @@ -#ifndef QAE_PLATFORM_CFG_H -#define QAE_PLATFORM_CFG_H - -#ifdef __cplusplus -extern "C" { -#endif - -/* -** QAE Platform Configuration Parameter Definitions -*/ - -/** \brief Mission specific version number for QAE application -** -** \par Description: -** An application version number consists of four parts: -** major version number, minor version number, revision -** number and mission specific revision number. The mission -** specific revision number is defined here and the other -** parts are defined in "amc_version.h". -** -** \par Limits: -** Must be defined as a numeric value that is greater than -** or equal to zero. -*/ -#define QAE_MISSION_REV (0) - -/** \brief Pipe depth for the Scheduler pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define QAE_SCH_PIPE_DEPTH (5) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define QAE_SCH_PIPE_NAME ("QAE_SCH_PIPE") - -/** \brief The SB pend behavior type for the Scheduler pipe. -** -** \par Limits: -** One of: CFE_SB_POLL, CFE_SB_PEND_FOREVER, or the -** number of milliseconds to wait for a new message (recommended). -** Note, using CFE_SB_PEND_FOREVER may cause an unresponsive -** application if no messages arrive on this pipe. -*/ -#define QAE_SCH_PIPE_PEND_TIME (2000) - -/** \brief The number of WAKEUP messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max limited to CFE_SB_MAX_PIPE_DEPTH-1. Note the -** QAE_WAKEUP_MID_MAX_MSG_COUNT and QAE_SEND_HK_MID_MAX_MSG_COUNT -** must be less than QAE_SCH_PIPE_DEPTH. -*/ -#define QAE_WAKEUP_MID_MAX_MSG_COUNT (1) - -/** \brief The number of SEND_HK messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. Note the -** QAE_WAKEUP_MID_MAX_MSG_COUNT and QAE_SEND_HK_MID_MAX_MSG_COUNT -** must be less than QAE_SCH_PIPE_DEPTH. -*/ -#define QAE_SEND_HK_MID_MAX_MSG_COUNT (1) - -/** \brief Pipe depth for the command pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define QAE_CMD_PIPE_DEPTH (4) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define QAE_CMD_PIPE_NAME ("QAE_CMD_PIPE") - -/** \brief Pipe depth for the data pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define QAE_DATA_PIPE_DEPTH (4) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define QAE_DATA_PIPE_NAME ("QAE_DATA_PIPE") - -/** \brief The config table default filename -** -** \par Limits: -** The length of each string, including the NULL terminator cannot exceed -** the #OS_MAX_PATH_LEN value. -*/ -#define QAE_CONFIG_TABLE_FILENAME ("/cf/apps/qae_config.tbl") - -/** \brief The timeout value, in milliseconds, to wait for ES application startup sync. -** -** \par Limits: -** This parameter must be at least 1000 (ms). -*/ -#define QAE_STARTUP_TIMEOUT_MSEC (1000) - - -#ifdef __cplusplus -} -#endif - -#endif /* QAE_PLATFORM_CFG_H */ - -/************************/ -/* End of File Comment */ -/************************/ - diff --git a/config/bebop2/inc/rgbled_msgids.h b/config/bebop2/inc/rgbled_msgids.h deleted file mode 100644 index 16a36dcc7..000000000 --- a/config/bebop2/inc/rgbled_msgids.h +++ /dev/null @@ -1,18 +0,0 @@ -#ifndef RGBLED_MSGIDS_H -#define RGBLED_MSGIDS_H - -#ifdef __cplusplus -extern "C" { -#endif - -#include "msg_ids.h" - -#ifdef __cplusplus -} -#endif - -#endif /* RGBLED_MSGIDS_H */ - -/************************/ -/* End of File Comment */ -/************************/ diff --git a/config/bebop2/inc/rgbled_platform_cfg.h b/config/bebop2/inc/rgbled_platform_cfg.h deleted file mode 100644 index 6e568f21b..000000000 --- a/config/bebop2/inc/rgbled_platform_cfg.h +++ /dev/null @@ -1,126 +0,0 @@ -#ifndef RGBLED_PLATFORM_CFG_H -#define RGBLED_PLATFORM_CFG_H - -#include "osapi.h" - -#ifdef __cplusplus -extern "C" { -#endif - -#define RGBLED_SELFTEST_TASK_FLAGS OS_ENABLE_CORE_0 - -/* -** RGBLED Platform Configuration Parameter Definitions -*/ - -/** \brief Mission specific version number for RGBLED application -** -** \par Description: -** An application version number consists of four parts: -** major version number, minor version number, revision -** number and mission specific revision number. The mission -** specific revision number is defined here and the other -** parts are defined in "amc_version.h". -** -** \par Limits: -** Must be defined as a numeric value that is greater than -** or equal to zero. -*/ -#define RGBLED_MISSION_REV (0) - -/** \brief Pipe depth for the Scheduler pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define RGBLED_SCH_PIPE_DEPTH (2) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define RGBLED_SCH_PIPE_NAME ("RGBLED_SCH_PIPE") - -/** \brief The SB pend behavior type for the Scheduler pipe. -** -** \par Limits: -** One of: CFE_SB_POLL, CFE_SB_PEND_FOREVER, or the -** number of milliseconds to wait for a new message (recommended). -** Note, using CFE_SB_PEND_FOREVER may cause an unresponsive -** application if no messages arrive on this pipe. -*/ -#define RGBLED_SCH_PIPE_PEND_TIME (2000) - -/** \brief The number of WAKEUP messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max limited to CFE_SB_MAX_PIPE_DEPTH-1. Note the -** RGBLED_WAKEUP_MID_MAX_MSG_COUNT and RGBLED_SEND_HK_MID_MAX_MSG_COUNT -** must be less than RGBLED_SCH_PIPE_DEPTH. -*/ -#define RGBLED_WAKEUP_MID_MAX_MSG_COUNT (1) - -/** \brief The number of SEND_HK messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. Note the -** RGBLED_WAKEUP_MID_MAX_MSG_COUNT and RGBLED_SEND_HK_MID_MAX_MSG_COUNT -** must be less than RGBLED_SCH_PIPE_DEPTH. -*/ -#define RGBLED_SEND_HK_MID_MAX_MSG_COUNT (1) - -/** \brief Pipe depth for the command pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define RGBLED_CMD_PIPE_DEPTH (4) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define RGBLED_CMD_PIPE_NAME ("RGBLED_CMD_PIPE") - -/** \brief Pipe depth for the data pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define RGBLED_DATA_PIPE_DEPTH (4) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define RGBLED_DATA_PIPE_NAME ("RGBLED_DATA_PIPE") - -/** \brief The config table default filename -** -** \par Limits: -** The length of each string, including the NULL terminator cannot exceed -** the #OS_MAX_PATH_LEN value. -*/ -#define RGBLED_CONFIG_TABLE_FILENAME ("/cf/apps/rgbled_config.tbl") - -/** \brief The timeout value, in milliseconds, to wait for ES application startup sync. -** -** \par Limits: -** This parameter must be at least 1000 (ms). -*/ -#define RGBLED_STARTUP_TIMEOUT_MSEC (1000) - - -#ifdef __cplusplus -} -#endif - -#endif /* RGBLED_PLATFORM_CFG_H */ - -/************************/ -/* End of File Comment */ -/************************/ - diff --git a/config/bebop2/inc/sbn_msgids.h b/config/bebop2/inc/sbn_msgids.h deleted file mode 100644 index c0d95d30b..000000000 --- a/config/bebop2/inc/sbn_msgids.h +++ /dev/null @@ -1,11 +0,0 @@ -#ifndef SBN_MSGIDS_H -#define SBN_MSGIDS_H - -#include "msg_ids.h" - -#endif /* SBN_MSGIDS_H */ - -/*======================================================================================= -** End of file sbn_msgids.h -**=====================================================================================*/ - diff --git a/config/bebop2/inc/sc_msgids.h b/config/bebop2/inc/sc_msgids.h deleted file mode 100644 index f81bdec50..000000000 --- a/config/bebop2/inc/sc_msgids.h +++ /dev/null @@ -1,10 +0,0 @@ -#ifndef SC_MSGIDS_H -#define SC_MSGIDS_H - -#include "msg_ids.h" - -#endif /*SC_MSGIDS_H*/ - -/************************/ -/* End of File Comment */ -/************************/ diff --git a/config/bebop2/inc/sc_platform_cfg.h b/config/bebop2/inc/sc_platform_cfg.h deleted file mode 100644 index a831c16bf..000000000 --- a/config/bebop2/inc/sc_platform_cfg.h +++ /dev/null @@ -1,359 +0,0 @@ -#ifndef SC_PLATFORM_CFG_H -#define SC_PLATFORM_CFG_H - -/************************************************************************* - ** Macro Definitions - *************************************************************************/ - -/** \sccfg Max number of commands per second -** -** \par Description: -** Maximum number of commands that can be sent out by SC -* in any given second. -** -** \par Limits: -** This parameter can't be larger than an unsigned 16 bit -** integer (65535), but should be kepoot relatively small to -** avoid SC hogging the CPU -** -*/ -#define SC_MAX_CMDS_PER_SEC 8 - - -/** \sccfg Number of RTS's -** -** \par Description: -** The number of RTS's allowed in the system -** -** \par Limits: -** This parameter can't be larger than 999.This parameter will dicate the size of -** The RTS Info Table. -*/ -#define SC_NUMBER_OF_RTS 64 - - -/** \sccfg Max buffer size for an ATS in uint16s -** -** \par Description: -** The max sizeof an ATS buffer in words (not bytes) -** \par Limits: -** This parameter can't be larger than an unsigned 16 bit -** integer (65535). -*/ -#define SC_ATS_BUFF_SIZE 8000 - - -/** \sccfg Max buffer size for an Append ATS in uint16s -** -** \par Description: -** The max sizeof an Append ATS buffer in words (not bytes) -** \par Limits: -** This parameter cannot be larger than SC_ATS_BUFF_SIZE. -*/ -#define SC_APPEND_BUFF_SIZE (SC_ATS_BUFF_SIZE / 2) - - -/** \sccfg Max buffer size for an RTS in uint16s -** -** \par Description: -** The max size of an RTS buffer in WORDS (not bytes) -** \par Limits: -** This parameter can't be larger than an unsigned 16 bit -** integer (65535). -*/ -#define SC_RTS_BUFF_SIZE 150 - - -/** \sccfg Max number of commands in each ATS -** -** \par Description: -** The maximum number of commands that are allowed in each ATS -** -** \par Limits: -** This parameter can't be larger than an unsigned 16 bit -** integer (65535). -*/ -#define SC_MAX_ATS_CMDS 1000 - - -/** \sccfg The last RTS that will be sent with an #SC_RTS_START_INF_EID event message -** -** \par Description: -** When all RTS's are started, the #SC_RTS_START_INF_EID event message is sent out. -** This parameter suppreses that message for all RTS's over this number -** -** \par Limits: -** This parameter needs to be less than or equal to SC_NUMBER_OF_RTS -*/ -#define SC_LAST_RTS_WITH_EVENTS 20 - - -/** \sccfg Minimum Packet Size -** -** \par Description: -** This parameter specifies the minumum size for an ATS or RTS command. -** \par Limits: -** This parameter must be greater than or equal to CFE_SB_CMD_HDR_SIZE and -** less than or equal to CFE_SB_MAX_SB_MSG_SIZE. -*/ -#define SC_PACKET_MIN_SIZE 8 - - -/** \sccfg Maximum Packet Size -** -** \par Description: -** This parameter specifies the maximum size for an ATS or RTS command. -** \par Limits: -** This parameter must be greater than or equal to SC_PACKET_MIN_SIZE and -** less than or equal to CFE_SB_MAX_SB_MSG_SIZE. -*/ -#define SC_PACKET_MAX_SIZE 250 - - -/** \sccfg Command Pipe Depth -** -** \par Description: -** Maximum number of messages that will be allowed in the -** SC command pipe at one time. Used during initialization -** in the call to #CFE_SB_CreatePipe -** -** \par Limits: -** This parameter must be greater than zero and less than or equal to -** CFE_SB_MAX_PIPE_DEPTH. -*/ -#define SC_PIPE_DEPTH 12 - - -/** \sccfg ATS Table Filenames -** -** \par Description: -** Filenames for the ATS tables loaded at startup are constructed by -** appending a one digit table identifier plus the extension ".tbl" -** to the base portion of the filename defined here. -** -** The default definitions will create ATS filenames as follows: -** "/cf/apps/sc_ats1.tbl or /cf/apps/sc_ats2.tbl" -** -** \par Limits: -** SC requires that this name be defined, but otherwise places no -** limits on the definition. If the named table file does not exist -** at run time, or the table fails validation, then the table load -** will fail. Refer to #OS_MAX_PATH_LEN for filename length limits. -*/ -#define SC_ATS_FILE_NAME "/cf/apps/sc_ats" - - -/** \sccfg Append ATS Table Filename -** -** \par Description: -** This name describes the default append ATS filename loaded at -** startup. Often the default Append ATS file contains only a -** single unused table entry, and is used only to initialize the -** table state as having data that may be patched. -** -** \par Limits: -** SC requires that this name be defined, but otherwise places no -** limits on the definition. If the named table file does not exist -** at run time, or the table fails validation, then the table load -** will fail. Refer to #OS_MAX_PATH_LEN for filename length limits. -*/ -#define SC_APPEND_FILE_NAME "/cf/apps/sc_append.tbl" - - -/** \sccfg RTS Table Filenames -** -** \par Description: -** Filenames for the RTS tables loaded at startup are constructed by -** appending a one digit table identifier plus the extension ".tbl" -** to the base portion of the filename defined here. -** -** The default definitions will create RTS filenames as follows: -** "/cf/apps/sc_rts001.tbl, /cf/apps/sc_rts002.tbl, etc" -** -** \par Limits: -** SC requires that this name be defined, but otherwise places no -** limits on the definition. If the named table file does not exist -** at run time, or the table fails validation, then the table load -** will fail. Refer to #OS_MAX_PATH_LEN for filename length limits. -*/ -#define SC_RTS_FILE_NAME "/cf/apps/sc_rts" - - -/** \sccfg ATS Table Object Names -** -** \par Description: -** Unique table object names are required for each table registered -** with cFE Table Services. ATS table object names are constructed -** by appending a one digit table identifier to the base portion of -** the object name defined here. -** -** The default definitions will create ATS object names as follows: -** "ATS_TBL1 or ATS_TBL2" -** -** \par Limits: -** SC requires that this name be defined, but otherwise places no -** limits on the definition. Refer to #CFE_TBL_MAX_NAME_LENGTH for -** specific information on limits related to table object names. -*/ -#define SC_ATS_TABLE_NAME "ATS_TBL" - - -/** \sccfg Append ATS Table Object Names -** -** \par Description: -** Unique table object names are required for each table registered -** with cFE Table Services. This is the table object name for the -** Append ATS table. -** -** \par Limits: -** SC requires that this name be defined, but otherwise places no -** limits on the definition. Refer to #CFE_TBL_MAX_NAME_LENGTH for -** specific information on limits related to table object names. -*/ -#define SC_APPEND_TABLE_NAME "APPEND_TBL" - - -/** \sccfg RTS Table Object Names -** -** \par Description: -** Unique table object names are required for each table registered -** with cFE Table Services. RTS table object names are constructed -** by appending a three digit table identifier to the base portion -** of the object name defined here. -** -** The default definitions will create RTS object names as follows: -** "RTS_TBL001, RTS_TBL002, etc" -** -** \par Limits: -** SC requires that this name be defined, but otherwise places no -** limits on the definition. Refer to #CFE_TBL_MAX_NAME_LENGTH for -** specific information on limits related to table object names. -*/ -#define SC_RTS_TABLE_NAME "RTS_TBL" - - -/** \sccfg Name of the RTS Infomation Table -** -** \par Description: -** Name of the RTS Information Table -** \par Limits: -** Must be less than #CFE_TBL_MAX_NAME_LENGTH -*/ -#define SC_RTSINFO_TABLE_NAME "RTSINF_TBL" - - -/** \sccfg Name of the RTP Control block table -** -** \par Description: -** Name of the RTP Control Block Table -** \par Limits: -** Must be less than #CFE_TBL_MAX_NAME_LENGTH -*/ -#define SC_RTP_CTRL_TABLE_NAME "RTPCTR_TBL" - - -/** \sccfg Name of the ATS Infomation Table -** -** \par Description: -** Name of the ATS Information Table -** \par Limits: -** Must be less than #CFE_TBL_MAX_NAME_LENGTH -*/ -#define SC_ATSINFO_TABLE_NAME "ATSINF_TBL" - - -/** \sccfg Name of the Append ATS Infomation Table -** -** \par Description: -** Name of the Append ATS Information Table -** \par Limits: -** Must be less than #CFE_TBL_MAX_NAME_LENGTH -*/ -#define SC_APPENDINFO_TABLE_NAME "APPINF_TBL" - - -/** \sccfg Name of the ATP Control block table -** -** \par Description: -** Name of the ATP Control Block Table -** \par Limits: -** Must be less than #CFE_TBL_MAX_NAME_LENGTH -*/ -#define SC_ATS_CTRL_TABLE_NAME "ATPCTR_TBL" - - - /** \sccfg Name Prefix of ATS Cmd Status Table -** -** \par Description: -** The prefix of the ATS Command Status table names. Note that actual table names -** will have a 1 digit number postfixed to it depending on the -** ATS number -** -** \par Limits: -** Total length must be less than #CFE_TBL_MAX_NAME_LENGTH -*/ -#define SC_ATS_CMD_STAT_TABLE_NAME "ATSCMD_TBL" - - -/** \sccfg Defnies default state of Continue-Ats-On-Checksum-Failure Flag -** -** \par Description: -** This parameter specifies the default state to continue an ATS -** when a command in the ATS fails checksum validation -** -** \par Limits: -** Must be TUE or FALSE -*/ -#define SC_CONT_ON_FAILURE_START TRUE - - -/** \sccfg Defines the TIME SC should use for its commands -** -** -** \par Description: -** This parameter defines what type of time SC should use for sending uot its commands -** -** \par Limits: -** Must be SC_USE_CFE_TIME, SC_USE_TAI, or SC_USE_UTC */ -#define SC_TIME_TO_USE SC_USE_CFE_TIME - - -/** \sccfg Define inclusion state for RTS group commands -** -** \par Description: -** This parameter specifies the inclusion state for the -** following RTS group commands: Start RTS group, Stop -** RTS group, Enable RTS group and Disable RTS group. -** RTS group commands affect a range of consecutive RTS -** numbers. When set to TRUE, this definition results -** in the inclusion of the group command handlers into -** the SC source code. -** -** \par Limits: -** Must be defined as TRUE or FALSE -*/ -#define SC_ENABLE_GROUP_COMMANDS TRUE - - -/** \sccfg Mission specific version number for SC application -** -** \par Description: -** An application version number consists of four parts: -** major version number, minor version number, revision -** number and mission specific revision number. The mission -** specific revision number is defined here and the other -** parts are defined in "sc_version.h". -** -** \par Limits: -** Must be defined as a numeric value that is greater than -** or equal to zero. -*/ -#define SC_MISSION_REV 0 - - -#endif /*SC_PLATFORM_CFG_H*/ - -/************************/ -/* End of File Comment */ -/************************/ - diff --git a/config/bebop2/inc/sc_rts.h b/config/bebop2/inc/sc_rts.h deleted file mode 100644 index 3069a5df7..000000000 --- a/config/bebop2/inc/sc_rts.h +++ /dev/null @@ -1,323 +0,0 @@ -#ifndef SC_RTS_H -#define SC_RTS_H - -/** - ** \name RTS 'name for a mission - This can be shorted or expanded or changed for each mission*/ -/** \{ */ - -#define RTS_ID_AUTO_POWER_ON 1 /**< \brief Startup auto-exec after power-on reset */ -#define RTS_ID_AUTO_PROCESSOR 2 /**< \brief Startup auto-exec after processor reset */ - -#define RTS_ID_Spare3 3 -#define RTS_ID_Spare4 4 -#define RTS_ID_Spare5 5 -#define RTS_ID_Spare6 6 -#define RTS_ID_Spare7 7 -#define RTS_ID_Spare8 8 -#define RTS_ID_Spare9 9 - -#define RTS_ID_Spare10 10 -#define RTS_ID_Spare11 11 -#define RTS_ID_Spare12 12 -#define RTS_ID_Spare13 13 -#define RTS_ID_Spare14 14 -#define RTS_ID_Spare15 15 -#define RTS_ID_Spare16 16 -#define RTS_ID_Spare17 17 -#define RTS_ID_Spare18 18 -#define RTS_ID_Spare19 19 - -#define RTS_ID_Spare20 20 -#define RTS_ID_Spare21 21 -#define RTS_ID_Spare22 22 -#define RTS_ID_Spare23 23 -#define RTS_ID_Spare24 24 -#define RTS_ID_Spare25 25 -#define RTS_ID_Spare26 26 -#define RTS_ID_Spare27 27 -#define RTS_ID_Spare28 28 -#define RTS_ID_Spare29 29 - -#define RTS_ID_Spare30 30 -#define RTS_ID_Spare31 31 -#define RTS_ID_Spare32 32 -#define RTS_ID_Spare33 33 -#define RTS_ID_Spare34 34 -#define RTS_ID_Spare35 35 -#define RTS_ID_Spare36 36 -#define RTS_ID_Spare37 37 -#define RTS_ID_Spare38 38 -#define RTS_ID_Spare39 39 - -#define RTS_ID_Spare40 40 -#define RTS_ID_Spare41 41 -#define RTS_ID_Spare42 42 -#define RTS_ID_Spare43 43 -#define RTS_ID_Spare44 44 -#define RTS_ID_Spare45 45 -#define RTS_ID_Spare46 46 -#define RTS_ID_Spare47 47 -#define RTS_ID_Spare48 48 -#define RTS_ID_Spare49 49 - -#define RTS_ID_Spare50 50 -#define RTS_ID_Spare51 51 -#define RTS_ID_Spare52 52 -#define RTS_ID_Spare53 53 -#define RTS_ID_Spare54 54 -#define RTS_ID_Spare55 55 -#define RTS_ID_Spare56 56 -#define RTS_ID_Spare57 57 -#define RTS_ID_Spare58 58 -#define RTS_ID_Spare59 59 - -#define RTS_ID_Spare60 60 -#define RTS_ID_Spare61 61 -#define RTS_ID_Spare62 62 -#define RTS_ID_Spare63 63 -#define RTS_ID_Spare64 64 -#define RTS_ID_Spare65 65 -#define RTS_ID_Spare66 66 -#define RTS_ID_Spare67 67 -#define RTS_ID_Spare68 68 -#define RTS_ID_Spare69 69 - -#define RTS_ID_Spare70 70 -#define RTS_ID_Spare71 71 -#define RTS_ID_Spare72 72 -#define RTS_ID_Spare73 73 -#define RTS_ID_Spare74 74 -#define RTS_ID_Spare75 75 -#define RTS_ID_Spare76 76 -#define RTS_ID_Spare77 77 -#define RTS_ID_Spare78 78 -#define RTS_ID_Spare79 79 - -#define RTS_ID_Spare80 80 -#define RTS_ID_Spare81 81 -#define RTS_ID_Spare82 82 -#define RTS_ID_Spare83 83 -#define RTS_ID_Spare84 84 -#define RTS_ID_Spare85 85 -#define RTS_ID_Spare86 86 -#define RTS_ID_Spare87 87 -#define RTS_ID_Spare88 88 -#define RTS_ID_Spare89 89 - -#define RTS_ID_Spare90 90 -#define RTS_ID_Spare91 91 -#define RTS_ID_Spare92 92 -#define RTS_ID_Spare93 93 -#define RTS_ID_Spare94 94 -#define RTS_ID_Spare95 95 -#define RTS_ID_Spare96 96 -#define RTS_ID_Spare97 97 -#define RTS_ID_Spare98 98 -#define RTS_ID_Spare99 99 - -#define RTS_ID_Spare100 100 -#define RTS_ID_Spare101 101 -#define RTS_ID_Spare102 102 -#define RTS_ID_Spare103 103 -#define RTS_ID_Spare104 104 -#define RTS_ID_Spare105 105 -#define RTS_ID_Spare106 106 -#define RTS_ID_Spare107 107 -#define RTS_ID_Spare108 108 -#define RTS_ID_Spare109 109 - -#define RTS_ID_Spare110 110 -#define RTS_ID_Spare111 111 -#define RTS_ID_Spare112 112 -#define RTS_ID_Spare113 113 -#define RTS_ID_Spare114 114 -#define RTS_ID_Spare115 115 -#define RTS_ID_Spare116 116 -#define RTS_ID_Spare117 117 -#define RTS_ID_Spare118 118 -#define RTS_ID_Spare119 119 - -#define RTS_ID_Spare120 120 -#define RTS_ID_Spare121 121 -#define RTS_ID_Spare122 122 -#define RTS_ID_Spare123 123 -#define RTS_ID_Spare124 124 -#define RTS_ID_Spare125 125 -#define RTS_ID_Spare126 126 -#define RTS_ID_Spare127 127 -#define RTS_ID_Spare128 128 -#define RTS_ID_Spare129 129 - -#define RTS_ID_Spare130 130 -#define RTS_ID_Spare131 131 -#define RTS_ID_Spare132 132 -#define RTS_ID_Spare133 133 -#define RTS_ID_Spare134 134 -#define RTS_ID_Spare135 135 -#define RTS_ID_Spare136 136 -#define RTS_ID_Spare137 137 -#define RTS_ID_Spare138 138 -#define RTS_ID_Spare139 139 - -#define RTS_ID_Spare140 140 -#define RTS_ID_Spare141 141 -#define RTS_ID_Spare142 142 -#define RTS_ID_Spare143 143 -#define RTS_ID_Spare144 144 -#define RTS_ID_Spare145 145 -#define RTS_ID_Spare146 146 -#define RTS_ID_Spare147 147 -#define RTS_ID_Spare148 148 -#define RTS_ID_Spare149 149 - -#define RTS_ID_Spare150 150 -#define RTS_ID_Spare151 151 -#define RTS_ID_Spare152 152 -#define RTS_ID_Spare153 153 -#define RTS_ID_Spare154 154 -#define RTS_ID_Spare155 155 -#define RTS_ID_Spare156 156 -#define RTS_ID_Spare157 157 -#define RTS_ID_Spare158 158 -#define RTS_ID_Spare159 159 - -#define RTS_ID_Spare160 160 -#define RTS_ID_Spare161 161 -#define RTS_ID_Spare162 162 -#define RTS_ID_Spare163 163 -#define RTS_ID_Spare164 164 -#define RTS_ID_Spare165 165 -#define RTS_ID_Spare166 166 -#define RTS_ID_Spare167 167 -#define RTS_ID_Spare168 168 -#define RTS_ID_Spare169 169 - -#define RTS_ID_Spare170 170 -#define RTS_ID_Spare171 171 -#define RTS_ID_Spare172 172 -#define RTS_ID_Spare173 173 -#define RTS_ID_Spare174 174 -#define RTS_ID_Spare175 175 -#define RTS_ID_Spare176 176 -#define RTS_ID_Spare177 177 -#define RTS_ID_Spare178 178 -#define RTS_ID_Spare179 179 - -#define RTS_ID_Spare180 180 -#define RTS_ID_Spare181 181 -#define RTS_ID_Spare182 182 -#define RTS_ID_Spare183 183 -#define RTS_ID_Spare184 184 -#define RTS_ID_Spare185 185 -#define RTS_ID_Spare186 186 -#define RTS_ID_Spare187 187 -#define RTS_ID_Spare188 188 -#define RTS_ID_Spare189 189 - -#define RTS_ID_Spare190 190 -#define RTS_ID_Spare191 191 -#define RTS_ID_Spare192 192 -#define RTS_ID_Spare193 193 -#define RTS_ID_Spare194 194 -#define RTS_ID_Spare195 195 -#define RTS_ID_Spare196 196 -#define RTS_ID_Spare197 197 -#define RTS_ID_Spare198 198 -#define RTS_ID_Spare199 199 - -#define RTS_ID_Spare200 200 -#define RTS_ID_Spare201 201 -#define RTS_ID_Spare202 202 -#define RTS_ID_Spare203 203 -#define RTS_ID_Spare204 204 -#define RTS_ID_Spare205 205 -#define RTS_ID_Spare206 206 -#define RTS_ID_Spare207 207 -#define RTS_ID_Spare208 208 -#define RTS_ID_Spare209 209 - -#define RTS_ID_Spare210 210 -#define RTS_ID_Spare211 211 -#define RTS_ID_Spare212 212 -#define RTS_ID_Spare213 213 -#define RTS_ID_Spare214 214 -#define RTS_ID_Spare215 215 -#define RTS_ID_Spare216 216 -#define RTS_ID_Spare217 217 -#define RTS_ID_Spare218 218 -#define RTS_ID_Spare219 219 - -#define RTS_ID_Spare220 220 -#define RTS_ID_Spare221 221 -#define RTS_ID_Spare222 222 -#define RTS_ID_Spare223 223 -#define RTS_ID_Spare224 224 -#define RTS_ID_Spare225 225 -#define RTS_ID_Spare226 226 -#define RTS_ID_Spare227 227 -#define RTS_ID_Spare228 228 -#define RTS_ID_Spare229 229 - -#define RTS_ID_Spare230 230 -#define RTS_ID_Spare231 231 -#define RTS_ID_Spare232 232 -#define RTS_ID_Spare233 233 -#define RTS_ID_Spare234 234 -#define RTS_ID_Spare235 235 -#define RTS_ID_Spare236 236 -#define RTS_ID_Spare237 237 -#define RTS_ID_Spare238 238 -#define RTS_ID_Spare239 239 - -#define RTS_ID_Spare240 240 -#define RTS_ID_Spare241 241 -#define RTS_ID_Spare242 242 -#define RTS_ID_Spare243 243 -#define RTS_ID_Spare244 244 -#define RTS_ID_Spare245 245 -#define RTS_ID_Spare246 246 -#define RTS_ID_Spare247 247 -#define RTS_ID_Spare248 248 -#define RTS_ID_Spare249 249 - -#define RTS_ID_Spare250 250 -#define RTS_ID_Spare251 251 -#define RTS_ID_Spare252 252 -#define RTS_ID_Spare253 253 -#define RTS_ID_Spare254 254 -#define RTS_ID_Spare255 255 -#define RTS_ID_Spare256 256 -/** \} */ - - -#endif /* SC_RTS_H */ - -/************************/ -/* End of File Comment */ -/************************/ - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/config/bebop2/inc/sch_grpids.h b/config/bebop2/inc/sch_grpids.h deleted file mode 100644 index f2d6a64f4..000000000 --- a/config/bebop2/inc/sch_grpids.h +++ /dev/null @@ -1,48 +0,0 @@ -#ifndef SCH_GRPIDS_H -#define SCH_GRPIDS_H - -/* -** Pragmas -*/ - -/* -** Include Files -*/ - -/* -** Local Defines -*/ -#define SCH_GROUP_NONE (0) -#define SCH_GROUP_CI (0x00000001) -#define SCH_GROUP_CF_SEND_HK (0x00000002) -#define SCH_GROUP_CF_WAKE_UP_REQ_CMD (0x00000010) -#define SCH_GROUP_CS_SEND_HK (0x00000020) -#define SCH_GROUP_MD_WAKEUP (0x00000040) -#define SCH_GROUP_DS_SEND_HK (0x00000080) -#define SCH_GROUP_SC_1HZ_WAKEUP (0x00000100) -#define SCH_GROUP_GOPRO_SEND_HK (0x00000200) -#define SCH_GROUP_FM_SEND_HK (0x00000400) -#define SCH_GROUP_HK_SEND_HK (0x00000800) -#define SCH_GROUP_HS_SEND_HK (0x00001000) -#define SCH_GROUP_LC_SEND_HK (0x00002000) -#define SCH_GROUP_MD_SEND_HK (0x00004000) -#define SCH_GROUP_MM_SEND_HK (0x00008000) -#define SCH_GROUP_SC_SEND_HK (0x00010000) -#define SCH_GROUP_SCH_SEND_HK (0x00020000) -#define SCH_GROUP_CFE_ES_SEND_HK (0x00040000) -#define SCH_GROUP_CFE_EVS_SEND_HK (0x00080000) -#define SCH_GROUP_CFE_SB_SEND_HK (0x00100000) -#define SCH_GROUP_CFE_TBL_SEND_HK (0x00200000) -#define SCH_GROUP_CFE_TIME_SEND_HK (0x00400000) -#define SCH_GROUP_HS_WAKEUP (0x00800000) -#define SCH_GROUP_TO (0x01000000) -#define SCH_GROUP_VC (0x02000000) -#define SCH_GROUP_EA (0x04000000) - -#endif /* SCH_GRPIDS_H */ - -/*======================================================================================= -** End of file sch_grpids.h -**=====================================================================================*/ - - diff --git a/config/bebop2/inc/sch_msgids.h b/config/bebop2/inc/sch_msgids.h deleted file mode 100644 index be337a78a..000000000 --- a/config/bebop2/inc/sch_msgids.h +++ /dev/null @@ -1,10 +0,0 @@ -#ifndef SCH_MSGIDS_H -#define SCH_MSGIDS_H - -#include "msg_ids.h" - -#endif /* SCH_MSGIDS_H */ - -/************************/ -/* End of File Comment */ -/************************/ diff --git a/config/bebop2/inc/sch_platform_cfg.h b/config/bebop2/inc/sch_platform_cfg.h deleted file mode 100644 index 0c946a35c..000000000 --- a/config/bebop2/inc/sch_platform_cfg.h +++ /dev/null @@ -1,294 +0,0 @@ -#ifndef SCH_PLATFORM_CFG_H -#define SCH_PLATFORM_CFG_H - -#include "osapi.h" - - -/************************************************************************* -** Macro definitions -**************************************************************************/ - -/** -** \schcfg Software Bus Command Pipe Depth -** -** \par Description: -** Dictates the number of messages to SCH that can be queued while awaiting -** processing by the SCH Application. -** -** \par Limits -** Must be greater than zero -*/ -#define SCH_PIPE_DEPTH 12 /**< \brief SCH Command Pipe Depth */ - -#define SCH_AD_PIPE_DEPTH 3 -#define SCH_AD_CHILD_TASK_PRIORITY 37 -#define SCH_AD_CHILD_TASK_FLAGS OS_ENABLE_CORE_0 - -/*#define SCH_RTM_SUPPORTED*/ - -/* -** Schedule table definitions... -*/ -/** -** \schcfg Minor Frame Frequency (in Hz) -** -** \par Description: -** Dictates the number of minor frame slots within each Major Frame. -** -** \par Limits -** Must be 2 or more and less than 65536 -*/ -#define SCH_TOTAL_SLOTS 250 /* SCH wake-up rate (Hz) */ - - -/** -** \schcfg Maximum number of Activities per Minor Frame -** -** \par Description: -** Dictates the number of activities that can be defined for each Minor Frame. -** -** \par Limits -** Must be at least one -*/ -#define SCH_ENTRIES_PER_SLOT 15 - - -/** -** \schcfg Maximum Number of Message Definitions in Message Definition Table -** -** \par Description: -** Dictates the number of messages that can be defined in Message Definition Table. -** -** \par Limits -** Must be at least one -*/ -#define SCH_MAX_MESSAGES 128 - -/** -** \schcfg Maximum Message ID allowed in Message Definition Table -** -** \par Description: -** Dictates the maximum message ID that can be used in the Message Definition Table. -** -** \par Limits -** Must be less than or equal to SCH_MDT_MAX_MSG_ID and greater than or equal to 0 -*/ -#define SCH_MDT_MIN_MSG_ID 0 - -/** -** \schcfg Minimum Message ID allowed in Message Definition Table -** -** \par Description: -** Dictates the minimum message ID that can be used in the Message Definition Table. -** -** \par Limits -** Must be less than or equal to #CFE_SB_HIGHEST_VALID_MSGID and greater than SCH_MDT_MIN_MSG_ID -*/ -#define SCH_MDT_MAX_MSG_ID CFE_SB_HIGHEST_VALID_MSGID - - -/** -** \schcfg Maximum Length, in Words, of a Message -** -** \par Description: -** Dictates the maximum number of words that can be assigned to a particular message -** in the Message Definition Table. -** -** \par Limits -** Must be at least large enough to hold the smallest possible message header -* ** (see #CFE_SB_TLM_HDR_SIZE and #CFE_SB_CMD_HDR_SIZE) -*/ -#define SCH_MAX_MSG_WORDS 64 /* max message length (in words) */ - - -/* -** Limits for how far we can get behind and how much we can do at once... -*/ -/** -** \schcfg Maximum Number of slots allowed for catch-up before skipping -** -** \par Description: -** Dictates the number of Minor Frames that will be processed in "Catch Up" -** mode before giving up and skipping ahead. -** -** \par Limits -** -*/ -#define SCH_MAX_LAG_COUNT (SCH_TOTAL_SLOTS / 2) - - -/** -** \schcfg Maximum Number of Slots to be processed when in "Catch Up" mode -** -** \par Description: -** Dictates the maximum number of slots SCH will process when trying to -** "Catch Up" to the correct slot for the current time. -** -** \par Limits -** Must be at least one -*/ -#define SCH_MAX_SLOTS_PER_WAKEUP 5 - -/* -** Conversion factor for how many microseconds in a wake-up period... -*/ -/** -** \schcfg Major Frame Period (in microseconds) -** -** \par Description: -** Dictates the number microseconds in a Major Frame. -** -** \par Limits -** Must be greater than zero -*/ -#define SCH_MICROS_PER_MAJOR_FRAME 1000000 - - -/** -** \schcfg Additional time allowed in Sync Slot to wait for Major Frame Sync (in microseconds) -** -** \par Description: -** Dictates the additional time allowed in the Syncronization Slot -** to allow the Major Frame Sync signal to be received and re-synchronize -** processing. -** -** \par Limits -** Must be less than the normal slot period -*/ -#define SCH_SYNC_SLOT_DRIFT_WINDOW 500 - - -/** -** \schcfg Time, in milliseconds, to wait for all applications to be started and ready to run -** -** \par Description: -** Dictates the timeout for the #CFE_ES_WaitForStartupSync call that SCH uses to wait -** for all of the Applications specified in the startup script to finish initialization. -** SCH will wait this amount of time before assuming all startup script applications have -** been started and will then begin nominal schedule processing. -** -** \par Limits -** None -*/ -#define SCH_STARTUP_SYNC_TIMEOUT 50000 - - -/** -** \schcfg Time, in microseconds, to wait for first Major Frame Sync to arrive -** -** \par Description: -** Dictates the time allowed for the first Major Frame sync signal to arrive -** before assuming it is not going to occur and switching to a freewheeling -** mode. -** -** \par Limits -** Must be greater than or equal to the Major Frame Period -*/ -#define SCH_STARTUP_PERIOD (5*SCH_MICROS_PER_MAJOR_FRAME) - - -/* -** Specifies the limit on the number of consecutive noisy Major Frame signals -** before we begin to ignore them. -*/ -/** -** \schcfg Maximum Number of consecutive Noisy Major Frame signals before they are ignored -** -** \par Description: -** Dictates the number of consecutive "Noisy" Major Frame Signals (i.e. - signals that -** occur outside the expected window of their occurence) until the Major Frame signal -** is automatically ignored and the Minor Frame Timer is used instead. -** -** \par Limits -** This value should never be set to less than two because a single "noisy" Major -** Frame signal is likely when turning on or switching the 1 Hz signal on the spacecraft. -*/ -#define SCH_MAX_NOISY_MAJORF 2 - - -/** -** \schcfg Scheduler API Library Usage Status -** -** \par Description: -** Determines whether or not the Scheduler application is using the API library allowing -** for external tasks to disable and enable schedule processing. Note that if the library -** is to be used it must be generated as a separate object, and loaded prior to the -** appplication. -** -** \par Limits -** This value must either be 0 when not using or including the library, or 1 if the library -** is going to be used. -*/ -#define SCH_LIB_PRESENCE 1 - - -/** -** \schcfg Scheduler API Library Initial Inhibition Count -** -** \par Description: -** Sets the number of times the scheduler must be enabled following library initialization. -** This allows the scheduler to come up either enabled (set to 0) or disabled (set to -** a value greater than or equal to 1) -** -** \par Limits -** This value must be an unsigned 32 bit integer. -*/ -#define SCH_LIB_DIS_CTR 0 - - -/** -** \schcfg Default SCH Schedule Definition Table Filename -** -** \par Description: -** The value of this constant defines the default filename of -** the SCH Schedule Definition Table -** -** \par Limits -** The length of each string, including the NULL terminator cannot exceed -** the #OS_MAX_PATH_LEN value. -*/ - -//#define SCH_SCHEDULE_FILENAME "/cf/apps/sch_def_schtbl.tbl" -#define SCH_SCHEDULE_FILENAME "/cf/apps/sch_def_schtbl.tbl" - - -/** -** \schcfg Default SCH Message Definition Table Filename -** -** \par Description: -** The value of this constant defines the default filename of the -** SCH Message Definition Table -** -** \par Limits -** The length of each string, including the NULL terminator cannot exceed -** the #OS_MAX_PATH_LEN value. -*/ - -#define SCH_MESSAGE_FILENAME "/cf/apps/sch_def_msgtbl.tbl" - - -/** \schcfg Mission specific version number for SCH application -** -** \par Description: -** An application version number consists of four parts: -** major version number, minor version number, revision -** number and mission specific revision number. The mission -** specific revision number is defined here and the other -** parts are defined in "sch_version.h". -** -** \par Limits: -** Must be defined as a numeric value that is greater than -** or equal to zero. -*/ - -#define SCH_MISSION_REV 0 - -#define SCH_DEADLINES_PER_SLOT 5 - - - -#endif /* SCH_PLATFORM_CFG_H */ - -/************************/ -/* End of File Comment */ -/************************/ diff --git a/config/bebop2/inc/sens_platform_cfg.h b/config/bebop2/inc/sens_platform_cfg.h deleted file mode 100644 index c8ac6f8ec..000000000 --- a/config/bebop2/inc/sens_platform_cfg.h +++ /dev/null @@ -1,154 +0,0 @@ -#ifndef SENS_PLATFORM_CFG_H -#define SENS_PLATFORM_CFG_H - -#ifdef __cplusplus -extern "C" { -#endif - -/* -** SENS Platform Configuration Parameter Definitions -*/ - -/** \brief Mission specific version number for SENS application -** -** \par Description: -** An application version number consists of four parts: -** major version number, minor version number, revision -** number and mission specific revision number. The mission -** specific revision number is defined here and the other -** parts are defined in "amc_version.h". -** -** \par Limits: -** Must be defined as a numeric value that is greater than -** or equal to zero. -*/ -#define SENS_MISSION_REV (0) - -/** \brief Pipe depth for the Scheduler pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define SENS_SCH_PIPE_DEPTH (10) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define SENS_SCH_PIPE_NAME ("SENS_SCH_PIPE") - -/** \brief The SB pend behavior type for the Scheduler pipe. -** -** \par Limits: -** One of: CFE_SB_POLL, CFE_SB_PEND_FOREVER, or the -** number of milliseconds to wait for a new message (recommended). -** Note, using CFE_SB_PEND_FOREVER may cause an unresponsive -** application if no messages arrive on this pipe. -*/ -#define SENS_SCH_PIPE_PEND_TIME (2000) - -/** \brief The number of WAKEUP messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max limited to CFE_SB_MAX_PIPE_DEPTH-1. Note the -** SENS_WAKEUP_MID_MAX_MSG_COUNT and SENS_SEND_HK_MID_MAX_MSG_COUNT -** must be less than SENS_SCH_PIPE_DEPTH. -*/ -#define SENS_WAKEUP_MID_MAX_MSG_COUNT (1) - -/** \brief The number of SEND_HK messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. Note the -** SENS_WAKEUP_MID_MAX_MSG_COUNT and SENS_SEND_HK_MID_MAX_MSG_COUNT -** must be less than SENS_SCH_PIPE_DEPTH. -*/ -#define SENS_SEND_HK_MID_MAX_MSG_COUNT (1) - -/** \brief Pipe depth for the command pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define SENS_CMD_PIPE_DEPTH (4) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define SENS_CMD_PIPE_NAME ("SENS_CMD_PIPE") - -/** \brief Pipe depth for the data pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define SENS_DATA_PIPE_DEPTH (4) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define SENS_DATA_PIPE_NAME ("SENS_DATA_PIPE") - -/** \brief The config table default filename -** -** \par Limits: -** The length of each string, including the NULL terminator cannot exceed -** the #OS_MAX_PATH_LEN value. -*/ -#define SENS_CONFIG_TABLE_FILENAME ("/cf/apps/sens_config.tbl") - -/** \brief The timeout value, in milliseconds, to wait for ES application startup sync. -** -** \par Limits: -** This parameter must be at least 1000 (ms). -*/ -#define SENS_STARTUP_TIMEOUT_MSEC (1000) - -/** \brief The maximum time difference, in microseconds, between accelerometer -** measurements to be considered valid. -** -** \par Limits: -** This parameter must be greater than 0. -*/ -#define SENS_MAX_ACC_TIME_DELTA (25) - -/** \brief The maximum time difference, in microseconds, between gyro -** measurements to be considered valid. -** -** \par Limits: -** This parameter must be greater than 0. -*/ -#define SENS_MAX_GYRO_TIME_DELTA (25) - -/** \brief The maximum time difference, in microseconds, between magnetometer -** measurements to be considered valid. -** -** \par Limits: -** This parameter must be greater than 0. -*/ -#define SENS_MAX_MAG_TIME_DELTA (25) - -/** \brief The maximum time difference, in microseconds, between barometer -** measurements to be considered valid. -** -** \par Limits: -** This parameter must be greater than 0. -*/ -#define SENS_MAX_BARO_TIME_DELTA (100) - - -#ifdef __cplusplus -} -#endif - -#endif /* SENS_PLATFORM_CFG_H */ - -/************************/ -/* End of File Comment */ -/************************/ - diff --git a/config/bebop2/inc/sonar_platform_cfg.h b/config/bebop2/inc/sonar_platform_cfg.h deleted file mode 100644 index ae88d2453..000000000 --- a/config/bebop2/inc/sonar_platform_cfg.h +++ /dev/null @@ -1,129 +0,0 @@ -#ifndef SONAR_PLATFORM_CFG_H -#define SONAR_PLATFORM_CFG_H - -#ifdef __cplusplus -extern "C" { -#endif - -/* -** SONAR Platform Configuration Parameter Definitions -*/ - -/** \brief Mission specific version number for SONAR application -** -** \par Description: -** An application version number consists of four parts: -** major version number, minor version number, revision -** number and mission specific revision number. The mission -** specific revision number is defined here and the other -** parts are defined in "amc_version.h". -** -** \par Limits: -** Must be defined as a numeric value that is greater than -** or equal to zero. -*/ -#define SONAR_MISSION_REV (0) - -/** \brief Pipe depth for the Scheduler pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define SONAR_SCH_PIPE_DEPTH (2) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define SONAR_SCH_PIPE_NAME ("SONAR_SCH_PIPE") - -/** \brief The SB pend behavior type for the Scheduler pipe. -** -** \par Limits: -** One of: CFE_SB_POLL, CFE_SB_PEND_FOREVER, or the -** number of milliseconds to wait for a new message (recommended). -** Note, using CFE_SB_PEND_FOREVER may cause an unresponsive -** application if no messages arrive on this pipe. -*/ -#define SONAR_SCH_PIPE_PEND_TIME (2000) - -/** \brief The number of WAKEUP messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max limited to CFE_SB_MAX_PIPE_DEPTH-1. Note the -** SONAR_MEASURE_MID_MAX_MSG_COUNT and SONAR_SEND_HK_MID_MAX_MSG_COUNT -** must be less than SONAR_SCH_PIPE_DEPTH. -*/ -#define SONAR_MEASURE_MID_MAX_MSG_COUNT (1) - -/** \brief The number of SEND_HK messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. Note the -** SONAR_MEASURE_MID_MAX_MSG_COUNT and SONAR_SEND_HK_MID_MAX_MSG_COUNT -** must be less than SONAR_SCH_PIPE_DEPTH. -*/ -#define SONAR_SEND_HK_MID_MAX_MSG_COUNT (1) - -/** \brief Pipe depth for the command pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define SONAR_CMD_PIPE_DEPTH (4) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define SONAR_CMD_PIPE_NAME ("SONAR_CMD_PIPE") - -/** \brief Pipe depth for the data pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define SONAR_DATA_PIPE_DEPTH (4) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define SONAR_DATA_PIPE_NAME ("SONAR_DATA_PIPE") - -/** \brief The config table default filename -** -** \par Limits: -** The length of each string, including the NULL terminator cannot exceed -** the #OS_MAX_PATH_LEN value. -*/ -#define SONAR_CONFIG_TABLE_FILENAME ("/cf/apps/sonar_config.tbl") - -/** \brief The timeout value, in milliseconds, to wait for ES application startup sync. -** -** \par Limits: -** This parameter must be at least 1000 (ms). -*/ -#define SONAR_STARTUP_TIMEOUT_MSEC (1000) - -/* TODO */ -#define SONAR_SENS_VARIANCE (1.0f) - -#define SONAR_MIN_DISTANCE (0.5f) - -#define SONAR_MAX_DISTANCE (8.5f) - - -#ifdef __cplusplus -} -#endif - -#endif /* SONAR_PLATFORM_CFG_H */ - -/************************/ -/* End of File Comment */ -/************************/ - diff --git a/config/bebop2/inc/to_msgids.h b/config/bebop2/inc/to_msgids.h deleted file mode 100644 index a00beac0e..000000000 --- a/config/bebop2/inc/to_msgids.h +++ /dev/null @@ -1,10 +0,0 @@ -#ifndef TO_MSGIDS_H -#define TO_MSGIDS_H - -#include "msg_ids.h" - -#endif - -/************************/ -/* End of File Comment */ -/************************/ diff --git a/config/bebop2/inc/to_platform_cfg.h b/config/bebop2/inc/to_platform_cfg.h deleted file mode 100644 index c520a9242..000000000 --- a/config/bebop2/inc/to_platform_cfg.h +++ /dev/null @@ -1,281 +0,0 @@ -#ifndef TO_PLATFORM_CFG_H -#define TO_PLATFORM_CFG_H - -#ifdef __cplusplus -extern "C" { -#endif - -#include "cfe_platform_cfg.h" - -/* -** Platform Configuration Parameter Definitions -*/ - - -/** \tocfg Child task flags -** -** \par Description: -** These are optional flags passed to the #CFE_ES_CreateChildTask -** function when creating the CFE child task. -** -*/ -#define TO_CUSTOM_CHILD_TASK_FLAGS (OS_ENABLE_CORE_0) - - -/** \tocfg Child task stack size -** -** \par Description: -** Child task stack size passed to the #CFE_ES_CreateChildTask -** function when creating the CFE child task. Stack size is in -** bytes. -** -*/ -#define TO_CUSTOM_TASK_STACK_SIZE (131072) - - -/** \tocfg Default telemetry destination IP address -** -** \par Description: -** Default IP address to send the telemetry stream to. This is default -** only and can be changed by command at runtime. -** -*/ -#define TO_UDP_CHANNEL_ADDRESS "192.168.2.215" - - -/** \tocfg Default telemetry destination UDP port -** -** \par Description: -** Default UDP port to send the telemetry stream to. This is default -** only and can be changed by command at runtime. -** -*/ -#define TO_UDP_CHANNEL_PORT (5011) - - -/** \tocfg Message Flow packet limit -** -** \par Description: -** This is the maximum number of message flow entries that can fit in -** a message flow diagnostic message. -** -*/ -#define TO_MSG_FLOW_PKT_LIMIT (200) - - -/** \tocfg Maximum message length -** -** \par Description: -** The maximum size that an output telemetry message can be. This is in -** bytes. If a message exceeds this size, it will be dropped by the -** classifier. -** -*/ -#define TO_MAX_MSG_LENGTH (32767) - -/** \tocfg The UDP channel's CF throttling semaphore name -** -** \par Limits: -** Two channels in CF must not have the same semaphore name. This must be unique -** compared to other channels' throttling semaphores. -*/ -#define TO_UDP_CF_THROTTLE_SEM_NAME "TO_CF_CH0_SEM" - - -/** \tocfg The UDP channel Name -*/ -#define TO_UDP_CHANNEL_NAME "UDP" - - - -/** \tocfg The UDP channel's default and maximum value for the CF - * throttling semaphore -** -** \par Limits: -** Must not be larger than the TO_DATA_PIPE_DEPTH -*/ -#define TO_UDP_CF_MAX_PDUS (4) - - -/** \tocfg Mission specific version number for TO application -** -** \par Description: -** An application version number consists of four parts: -** major version number, minor version number, revision -** number and mission specific revision number. The mission -** specific revision number is defined here and the other -** parts are defined in "to_version.h". -** -** \par Limits: -** Must be defined as a numeric value that is greater than -** or equal to zero. -*/ -#define TO_MISSION_REV (1) - -/** \tocfg Pipe depth for the Scheduler pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define TO_SCH_PIPE_DEPTH (2) - -/** \tocfg Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define TO_SCH_PIPE_NAME ("TO_SCH_PIPE") - -/** \tocfg The SB pend behavior type for the Scheduler pipe. -** -** \par Limits: -** One of: CFE_SB_POLL, CFE_SB_PEND_FOREVER, or the -** number of milliseconds to wait for a new message (recommended). -** Note, using CFE_SB_PEND_FOREVER may cause an unresponsive -** application if no messages arrive on this pipe. -*/ -#define TO_SCH_PIPE_PEND_TIME (2000) - -/** \tocfg The number of WAKEUP messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max limited to CFE_SB_MAX_PIPE_DEPTH-1. Note the -** TO_SCH_PIPE_WAKEUP_RESERVED and TO_SCH_PIPE_SEND_HK_RESERVED -** must be less than TO_SCH_PIPE_DEPTH. -*/ -#define TO_SCH_PIPE_WAKEUP_RESERVED (1) - -/** \tocfg The number of SEND_HK messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. Note the -** TO_SCH_PIPE_WAKEUP_RESERVED and TO_SCH_PIPE_SEND_HK_RESERVED -** must be less than TO_SCH_PIPE_DEPTH. -*/ -#define TO_SCH_PIPE_SEND_HK_RESERVED (1) - -/** \tocfg Pipe depth for the command pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define TO_CMD_PIPE_DEPTH (4) - -/** \tocfg Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define TO_CMD_PIPE_NAME ("TO_CMD_PIPE") - -/** \tocfg Pipe depth for the data pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define TO_DATA_PIPE_DEPTH (CFE_SB_MAX_PIPE_DEPTH) - -/** \tocfg The config table default filename -** -** \par Limits: -** The length of each string, including the NULL terminator cannot exceed -** the #OS_MAX_PATH_LEN value. -*/ -#define TO_UDP_CONFIG_TABLE_FILENAME ("/cf/apps/to_udp_cfg.tbl") - - -#define TO_MAX_MEMPOOL_BLK_SIZES (8) - -/** -** \cfeescfg Define TO Memory Pool Block Sizes -** -** \par Description: -** TO Memory Pool Block Sizes -** -** \par Limits -** These sizes MUST be increasing and MUST be an integral multiple of 4. -** The number of block sizes defined cannot exceed -** #CFE_ES_MAX_MEMPOOL_BLOCK_SIZES -*/ -#define TO_MEM_BLOCK_SIZE_01 32 -#define TO_MEM_BLOCK_SIZE_02 64 -#define TO_MEM_BLOCK_SIZE_03 128 -#define TO_MEM_BLOCK_SIZE_04 256 -#define TO_MEM_BLOCK_SIZE_05 512 -#define TO_MEM_BLOCK_SIZE_06 2048 -#define TO_MEM_BLOCK_SIZE_07 8192 -#define TO_MAX_BLOCK_SIZE (TO_MEM_BLOCK_SIZE_07 + TO_MEM_BLOCK_SIZE_07) - -/** - * \tocfg Defines the table identification name used for table registration - * of the configuration table. - */ -#define TO_UDP_CONFIG_TABLENAME "UDP_CFG" - -/** - * \tocfg Defines the table identification name used for table registration - * of the dump table. - */ -#define TO_UDP_DUMP_TABLENAME "UDP_DMP" - -/** \tocfg The timeout value, in milliseconds, to wait for ES application startup sync. -** -** \par Limits: -** This parameter must be at least 1000 (ms). -*/ -#define TO_STARTUP_TIMEOUT_MSEC (1000) - -/** \tocfg Maximum number of messages to classify per processing frame. -*/ -#define TO_MAX_MSGS_OUT_PER_FRAME (100) - -/** \tocfg Maximum number of messages to classify per processing frame. -*/ - -/** \tocfg Maximum number configurable channels. - * -** \par Description: This is normally set to 1. -*/ -#define TO_MAX_CHANNELS (1) - -/** \tocfg Channel output queue depth. - * -** \par Description: This defines how many messages can be queued into the -** channel output queue by the scheduler. -*/ -#define TO_OUTPUT_QUEUE_DEPTH (20) - -/** \tocfg Development UDP channel task priority. - * -** \par Description: This defines the priority of the development UDP -** child task. -*/ -#define TO_UDP_CHANNEL_TASK_PRIORITY (119) - -/** -** \tocfg Number of bytes in the Message Memory Pool -** -** \par Description: -** The message memory pool contains the memory needed for the queued messages packets. -** The queued messages are dynamically allocated from this pool when the -** messages are received and queued, and deallocated when messages are transmitted -** or a new table is loaded. -** -** \par Limits -** The Telemetry Output app does not place a limit on this parameter, but there is -** an overhead cost in the memory pool. The value must be larger than what is -** needed. -*/ -#define TO_NUM_BYTES_IN_MEM_POOL (200 * TO_MAX_BLOCK_SIZE) - - -#ifdef __cplusplus -} -#endif - -#endif /* TO_PLATFORM_CFG_H */ - -/************************/ -/* End of File Comment */ -/************************/ - diff --git a/config/bebop2/inc/vc_platform_cfg.h b/config/bebop2/inc/vc_platform_cfg.h deleted file mode 100644 index 85f0fb2cc..000000000 --- a/config/bebop2/inc/vc_platform_cfg.h +++ /dev/null @@ -1,305 +0,0 @@ -#ifndef VC_PLATFORM_CFG_H -#define VC_PLATFORM_CFG_H - -#ifdef __cplusplus -extern "C" { -#endif - -#include - -#define VC_STREAMING_TASK_FLAGS OS_ENABLE_CORE_0 - -/* -** VC Platform Configuration Parameter Definitions -*/ - -/** \brief Mission specific version number for VC application -** -** \par Description: -** An application version number consists of four parts: -** major version number, minor version number, revision -** number and mission specific revision number. The mission -** specific revision number is defined here and the other -** parts are defined in "vc_version.h". -** -** \par Limits: -** Must be defined as a numeric value that is greater than -** or equal to zero. -*/ -#define VC_MISSION_REV (0) - -/** \brief Pipe depth for the Scheduler pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define VC_SCH_PIPE_DEPTH (2) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define VC_SCH_PIPE_NAME ("VC_SCH_PIPE") - -/** \brief The SB pend behavior type for the Scheduler pipe. -** -** \par Limits: -** One of: CFE_SB_POLL, CFE_SB_PEND_FOREVER, or the -** number of milliseconds to wait for a new message (recommended). -** Note, using CFE_SB_PEND_FOREVER may cause an unresponsive -** application if no messages arrive on this pipe. -*/ -#define VC_SCH_PIPE_PEND_TIME (2000) - -/** \brief The number of WAKEUP messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max limited to CFE_SB_MAX_PIPE_DEPTH-1. Note the -** VC_SCH_PIPE_WAKEUP_RESERVED and VC_SCH_PIPE_SEND_HK_RESERVED -** must be less than VC_SCH_PIPE_DEPTH. -*/ -#define VC_SCH_PIPE_WAKEUP_RESERVED (1) - -/** \brief The number of SEND_HK messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. Note the -** VC_SCH_PIPE_WAKEUP_RESERVED and VC_SCH_PIPE_SEND_HK_RESERVED -** must be less than VC_SCH_PIPE_DEPTH. -*/ -#define VC_SCH_PIPE_SEND_HK_RESERVED (1) - -/** \brief Pipe depth for the command pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define VC_CMD_PIPE_DEPTH (4) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define VC_CMD_PIPE_NAME ("VC_CMD_PIPE") - -/** \brief The timeout value, in milliseconds, to wait for ES application startup sync. -** -** \par Limits: -** This parameter must be at least 1000 (ms). -*/ -#define VC_STARTUP_TIMEOUT_MSEC (1000) - -/** \brief The max address length -** -** \par Limits: -** This parameter must be at least 16 for IPV4. -*/ -#define VC_ADDRESS_LENGTH INET_ADDRSTRLEN - -/* Custom Settings */ - - -/** \brief Max channels allowed -** -** \par Limits: -** Minimum of 1. -*/ -#define VC_MAX_OUTPUT_CHANNELS (5) - -/** \brief Max device path length -** -** \par Limits: -** OS_MAX_LOCAL_PATH_LEN -*/ -#define VC_MAX_DEVICE_PATH OS_MAX_LOCAL_PATH_LEN - -/** \brief Max number of camera devices -** -** \par Limits: -** Minimum of 1. -*/ -#define VC_MAX_DEVICES (1) - -/** \brief Max buffer size -** -** \par Limits: -** Minimum based on configured device driver requirements. -*/ -//#define VC_MAX_BUFFER_SIZE (115200) -#define VC_MAX_BUFFER_SIZE (153600) - -/** \brief Max packet size -** -** \par Limits: -** UDP max payload size. -*/ -#define VC_MAX_PACKET_SIZE (153600) - -/** \brief Retry attemps for interrupted calls -** -** \par Limits: -** None. -*/ -#define VC_MAX_RETRY_ATTEMPTS (2) - -/** \brief Sleep time micro seconds for interrupted calls -** -** \par Limits: -** None. -*/ -#define VC_MAX_RETRY_SLEEP_USEC (10) - -/** \brief Streaming task priority -** -** \par Limits: -** 0 to MAX_PRIORITY (usually 255) -*/ -#define VC_STREAMING_TASK_PRIORITY (91) - -/** \brief Streaming task name -** -** \par Limits: -** OS_MAX_API_NAME -*/ -#define VC_STREAMING_TASK_NAME "VC_STREAM" - -/* Camera settings */ - -/** \brief Video resolution width -** -** \par Limits: -** Specific to device -*/ -#define VC_FRAME_WIDTH (320) - -/** \brief Video resolution height -** -** \par Limits: -** Specific to device -*/ -#define VC_FRAME_HEIGHT (240) - -/** \brief Video frame rate -** -** \par Limits: -** Specific to device -*/ -#define VC_FRAMERATE (30) - -/** \brief Video camera device path -** -** \par Limits: -** OS_MAX_LOCAL_PATH_LEN -*/ -#define VC_DEVICE_PATH "/dev/video0" - - -/* Ground system settings */ - -/** \brief Ground system ip address -** -** \par Limits: -** INET_ADDRSTRLEN -*/ -#define VC_DESTINATION_IP "192.168.42.42" - -/** \brief Ground system port -** -** \par Limits: -** uint16 decimal -*/ -#define VC_DESTINATION_PORT (3001) - -/** \brief Source system ip address -** -** \par Limits: -** INET_ADDRSTRLEN -*/ -#define VC_SOURCE_IP "0" - -/** \brief Source system port -** -** \par Limits: -** uint16 decimal -*/ -#define VC_SOURCE_PORT (0) - -/* V4L settings */ - -/** \brief V4L streaming io method -** -** \par Limits: -** V4L specific. -*/ -#define VC_V4L_IO_METHOD V4L2_MEMORY_MMAP - -/** \brief V4L buffer type -** -** \par Limits: -** V4L specific. -*/ -#define VC_V4L_BUFFER_TYPE V4L2_BUF_TYPE_VIDEO_CAPTURE - -/** \brief V4L video format -** -** \par Limits: -** V4L specific. -*/ -#define VC_V4L_VIDEO_FORMAT V4L2_PIX_FMT_UYVY - -/** \brief V4L field order -** -** \par Limits: -** V4L specific. -*/ -#define VC_V4L_VIDEO_FIELD_ORDER V4L2_FIELD_NONE - -/** \brief V4L buffers to request -** -** \par Limits: -** V4L specific. -*/ -#define VC_V4L_BUFFER_REQUEST (4) - -/** \brief V4L Memory Type -** -** \par Limits: -** V4L specific. -*/ -#define VC_V4L_MEMORY_TYPE V4L2_MEMORY_MMAP - -/* Timeout settings */ - -/** \brief Wait time for camera data in seconds -** -** \par Limits: -** None. -*/ -#define VC_BUFFER_FILL_TIMEOUT_SEC (2) - -/** \brief Wait time for camera data in microseconds -** -** \par Limits: -** None. -*/ -#define VC_BUFFER_FILL_TIMEOUT_USEC (0) - -/** \brief Max timeouts until exiting streaming task -** -** \par Limits: -** None. -*/ -#define VC_BUFFER_TIMEOUTS_ALLOWED (2) - - -#ifdef __cplusplus -} -#endif - -#endif /* VC_PLATFORM_CFG_H */ - -/************************/ -/* End of File Comment */ -/************************/ diff --git a/config/bebop2/inc/vm_platform_cfg.h b/config/bebop2/inc/vm_platform_cfg.h deleted file mode 100644 index af0ac002b..000000000 --- a/config/bebop2/inc/vm_platform_cfg.h +++ /dev/null @@ -1,151 +0,0 @@ -#ifndef VM_PLATFORM_CFG_H -#define VM_PLATFORM_CFG_H - -#ifdef __cplusplus -extern "C" { -#endif - -/* -** VM Platform Configuration Parameter Definitions -*/ - -/** \brief Mission specific version number for VM application -** -** \par Description: -** An application version number consists of four parts: -** major version number, minor version number, revision -** number and mission specific revision number. The mission -** specific revision number is defined here and the other -** parts are defined in "amc_version.h". -** -** \par Limits: -** Must be defined as a numeric value that is greater than -** or equal to zero. -*/ -#define VM_MISSION_REV (0) - -/** \brief Pipe depth for the Scheduler pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define VM_SCH_PIPE_DEPTH (30) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define VM_SCH_PIPE_NAME ("VM_SCH_PIPE") - -/** \brief The SB pend behavior type for the Scheduler pipe. -** -** \par Limits: -** One of: CFE_SB_POLL, CFE_SB_PEND_FOREVER, or the -** number of milliseconds to wait for a new message (recommended). -** Note, using CFE_SB_PEND_FOREVER may cause an unresponsive -** application if no messages arrive on this pipe. -*/ -#define VM_SCH_PIPE_PEND_TIME (2000) - -/** \brief The number of WAKEUP messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max limited to CFE_SB_MAX_PIPE_DEPTH-1. Note the -** VM_WAKEUP_MID_MAX_MSG_COUNT and VM_SEND_HK_MID_MAX_MSG_COUNT -** must be less than VM_SCH_PIPE_DEPTH. -*/ -#define VM_WAKEUP_MID_MAX_MSG_COUNT (1) - -/** \brief The number of SEND_HK messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. Note the -** VM_WAKEUP_MID_MAX_MSG_COUNT and VM_SEND_HK_MID_MAX_MSG_COUNT -** must be less than VM_SCH_PIPE_DEPTH. -*/ -#define VM_SEND_HK_MID_MAX_MSG_COUNT (1) - -/** \brief Pipe depth for the command pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define VM_CMD_PIPE_DEPTH (4) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define VM_CMD_PIPE_NAME ("VM_CMD_PIPE") - -/** \brief Pipe depth for the data pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define VM_DATA_PIPE_DEPTH (18) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define VM_DATA_PIPE_NAME ("VM_DATA_PIPE") - -/** \brief Pipe depth for the parameters pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define VM_PARAM_PIPE_DEPTH (4) - -/** \brief Pipe name for the parameters pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define VM_PARAM_PIPE_NAME ("VM_PARAM_PIPE") - -/** \brief The config table default filename -** -** \par Limits: -** The length of each string, including the NULL terminator cannot exceed -** the #OS_MAX_PATH_LEN value. -*/ -#define VM_CONFIG_TABLE_FILENAME ("/cf/apps/vm_config.tbl") - -/** \brief The timeout value, in milliseconds, to wait for ES application startup sync. -** -** \par Limits: -** This parameter must be at least 1000 (ms). -*/ -#define VM_STARTUP_TIMEOUT_MSEC (1000) - -/** \brief The timeout value, in microseconds, to wait until VM starts checking battery -** voltage. -** -** \par Limits: -** None -*/ -#define VM_BATTERY_VOLTAGE_CHECK_DELAY (6000000) - -/** \brief The minimum battery voltage to be considered valid. -** -** \par Limits: -** Must be greater than or equal to FLT_EPSILON. -*/ -#define VM_MINIMUM_VALID_BATTERY_VOLTAGE (2.0f) - - -#ifdef __cplusplus -} -#endif - -#endif /* VM_PLATFORM_CFG_H */ - -/************************/ -/* End of File Comment */ -/************************/ - diff --git a/config/bebop2/sitl/target/CMakeLists.txt b/config/bebop2/sitl/target/CMakeLists.txt index 7883b91e3..470f7d769 100644 --- a/config/bebop2/sitl/target/CMakeLists.txt +++ b/config/bebop2/sitl/target/CMakeLists.txt @@ -32,27 +32,27 @@ buildliner_add_app( buildliner_add_app( prmlib DEFINITION ${PROJECT_SOURCE_DIR}/apps/prmlib/fsw/for_build - CONFIG ${CMAKE_CURRENT_SOURCE_DIR}/apps/prm + CONFIG ${PROJECT_SOURCE_DIR}/config/shared/apps/prm ) buildliner_add_app( sim DEFINITION ${PROJECT_SOURCE_DIR}/apps/sim/fsw/for_build - CONFIG ${CMAKE_CURRENT_SOURCE_DIR}/apps/sim + CONFIG ${PROJECT_SOURCE_DIR}/config/shared/apps/sim ) buildliner_add_app( sch DEFINITION ${PROJECT_SOURCE_DIR}/apps/sch/fsw/for_build - CONFIG ${CMAKE_CURRENT_SOURCE_DIR}/apps/sch + CONFIG ${PROJECT_SOURCE_DIR}/config/shared/apps/sch CONFIG_SOURCES - ${CMAKE_CURRENT_SOURCE_DIR}/apps/sch/sch_custom_rt.c + ${PROJECT_SOURCE_DIR}/config/shared/apps/sch/sch_custom.c ) buildliner_add_app( cf DEFINITION ${PROJECT_SOURCE_DIR}/apps/cf/fsw/for_build - CONFIG ${CMAKE_CURRENT_SOURCE_DIR}/apps/cf + CONFIG ${PROJECT_SOURCE_DIR}/config/shared/apps/cf ) buildliner_add_app( @@ -64,7 +64,7 @@ buildliner_add_app( buildliner_add_app( ds DEFINITION ${PROJECT_SOURCE_DIR}/apps/ds/fsw/for_build - CONFIG ${CMAKE_CURRENT_SOURCE_DIR}/apps/ds + CONFIG ${PROJECT_SOURCE_DIR}/config/shared/apps/ds ) buildliner_add_app( @@ -115,159 +115,159 @@ buildliner_add_app( buildliner_add_app( ci DEFINITION ${PROJECT_SOURCE_DIR}/apps/ci/fsw/for_build - CONFIG ${CMAKE_CURRENT_SOURCE_DIR}/apps/ci + CONFIG ${PROJECT_SOURCE_DIR}/config/shared/apps/ci CONFIG_SOURCES - ${CMAKE_CURRENT_SOURCE_DIR}/apps/ci/ci_custom.c + ${PROJECT_SOURCE_DIR}/config/shared/apps/ci/ci_custom.c ) buildliner_add_app( to DEFINITION ${PROJECT_SOURCE_DIR}/apps/to/fsw/for_build - CONFIG ${CMAKE_CURRENT_SOURCE_DIR}/apps/to + CONFIG ${PROJECT_SOURCE_DIR}/config/shared/apps/to CONFIG_SOURCES - ${CMAKE_CURRENT_SOURCE_DIR}/apps/to/tables/to_backup_cfg.c - ${CMAKE_CURRENT_SOURCE_DIR}/apps/to/to_custom.c + ${PROJECT_SOURCE_DIR}/config/shared/apps/to/tables/to_backup_cfg.c + ${PROJECT_SOURCE_DIR}/config/shared/apps/to/to_custom.c ) buildliner_add_app( ea DEFINITION ${PROJECT_SOURCE_DIR}/apps/ea/fsw/for_build - CONFIG ${CMAKE_CURRENT_SOURCE_DIR}/apps/ea + CONFIG ${PROJECT_SOURCE_DIR}/config/shared/apps/ea CONFIG_SOURCES - ${CMAKE_CURRENT_SOURCE_DIR}/apps/ea/src/ea_custom.c + ${PROJECT_SOURCE_DIR}/config/shared/apps/ea/src/ea_custom.c ) buildliner_add_app( vc DEFINITION ${PROJECT_SOURCE_DIR}/apps/vc/fsw/for_build - CONFIG ${CMAKE_CURRENT_SOURCE_DIR}/apps/vc + CONFIG ${PROJECT_SOURCE_DIR}/config/shared/apps/vc CONFIG_SOURCES - ${CMAKE_CURRENT_SOURCE_DIR}/apps/vc/src/vc_dev_io_udp/vc_dev_io_udp.c - ${CMAKE_CURRENT_SOURCE_DIR}/apps/vc/src/vc_transmit_udp/vc_transmit_udp.c - ${CMAKE_CURRENT_SOURCE_DIR}/apps/vc/src/vc_custom.c + ${PROJECT_SOURCE_DIR}/config/shared/apps/vc/src/vc_dev_io_udp/vc_dev_io_udp.c + ${PROJECT_SOURCE_DIR}/config/shared/apps/vc/src/vc_transmit_udp/vc_transmit_udp.c + ${PROJECT_SOURCE_DIR}/config/shared/apps/vc/src/vc_custom.c ) buildliner_add_app( amc DEFINITION ${PROJECT_SOURCE_DIR}/apps/amc/fsw/for_build - CONFIG ${CMAKE_CURRENT_SOURCE_DIR}/apps/amc + CONFIG ${PROJECT_SOURCE_DIR}/config/shared/apps/amc CONFIG_SOURCES - ${CMAKE_CURRENT_SOURCE_DIR}/apps/amc/amc_custom.cpp + ${PROJECT_SOURCE_DIR}/config/shared/apps/amc/amc_custom.cpp ) buildliner_add_app( mac DEFINITION ${PROJECT_SOURCE_DIR}/apps/mac/fsw/for_build - CONFIG ${CMAKE_CURRENT_SOURCE_DIR}/apps/mac + CONFIG ${PROJECT_SOURCE_DIR}/config/shared/apps/mac ) buildliner_add_app( rgbled DEFINITION ${PROJECT_SOURCE_DIR}/apps/rgbled/fsw/for_build - CONFIG ${CMAKE_CURRENT_SOURCE_DIR}/apps/rgbled + CONFIG ${PROJECT_SOURCE_DIR}/config/shared/apps/rgbled CONFIG_SOURCES - ${CMAKE_CURRENT_SOURCE_DIR}/apps/rgbled/src/rgbled_custom.c + ${PROJECT_SOURCE_DIR}/config/shared/apps/rgbled/src/rgbled_custom.c ) buildliner_add_app( ms5607 DEFINITION ${PROJECT_SOURCE_DIR}/apps/ms5607/fsw/for_build - CONFIG ${CMAKE_CURRENT_SOURCE_DIR}/apps/ms5607 + CONFIG ${PROJECT_SOURCE_DIR}/config/shared/apps/ms5607 CONFIG_SOURCES - ${CMAKE_CURRENT_SOURCE_DIR}/apps/ms5607/src/ms5607_custom.cpp + ${PROJECT_SOURCE_DIR}/config/shared/apps/ms5607/src/ms5607_custom.cpp ) buildliner_add_app( gps DEFINITION ${PROJECT_SOURCE_DIR}/apps/gps/fsw/for_build - CONFIG ${CMAKE_CURRENT_SOURCE_DIR}/apps/gps + CONFIG ${PROJECT_SOURCE_DIR}/config/shared/apps/gps CONFIG_SOURCES - ${CMAKE_CURRENT_SOURCE_DIR}/apps/gps/src/gps_parser_ubx/gps_parser_ubx_common.c - ${CMAKE_CURRENT_SOURCE_DIR}/apps/gps/src/gps_parser_ubx/gps_parser_ubx_nav.c - ${CMAKE_CURRENT_SOURCE_DIR}/apps/gps/src/gps_parser_ubx/gps_parser_ubx_cfg.c - ${CMAKE_CURRENT_SOURCE_DIR}/apps/gps/src/gps_parser_ubx/gps_parser_ubx_ack.c - ${CMAKE_CURRENT_SOURCE_DIR}/apps/gps/src/gps_parser_ubx/gps_parser_ubx_mon.c - ${CMAKE_CURRENT_SOURCE_DIR}/apps/gps/src/gps_custom.c + ${PROJECT_SOURCE_DIR}/config/shared/apps/gps/src/gps_parser_ubx/gps_parser_ubx_common.c + ${PROJECT_SOURCE_DIR}/config/shared/apps/gps/src/gps_parser_ubx/gps_parser_ubx_nav.c + ${PROJECT_SOURCE_DIR}/config/shared/apps/gps/src/gps_parser_ubx/gps_parser_ubx_cfg.c + ${PROJECT_SOURCE_DIR}/config/shared/apps/gps/src/gps_parser_ubx/gps_parser_ubx_ack.c + ${PROJECT_SOURCE_DIR}/config/shared/apps/gps/src/gps_parser_ubx/gps_parser_ubx_mon.c + ${PROJECT_SOURCE_DIR}/config/shared/apps/gps/src/gps_custom.c ) buildliner_add_app( sens DEFINITION ${PROJECT_SOURCE_DIR}/apps/sens/fsw/for_build - CONFIG ${CMAKE_CURRENT_SOURCE_DIR}/apps/sens + CONFIG ${PROJECT_SOURCE_DIR}/config/shared/apps/sens ) buildliner_add_app( mpc DEFINITION ${PROJECT_SOURCE_DIR}/apps/mpc/fsw/for_build - CONFIG ${CMAKE_CURRENT_SOURCE_DIR}/apps/mpc + CONFIG ${PROJECT_SOURCE_DIR}/config/shared/apps/mpc ) buildliner_add_app( vm DEFINITION ${PROJECT_SOURCE_DIR}/apps/vm/fsw/for_build - CONFIG ${CMAKE_CURRENT_SOURCE_DIR}/apps/vm + CONFIG ${PROJECT_SOURCE_DIR}/config/shared/apps/vm ) buildliner_add_app( ld DEFINITION ${PROJECT_SOURCE_DIR}/apps/ld/fsw/for_build - CONFIG ${CMAKE_CURRENT_SOURCE_DIR}/apps/ld + CONFIG ${PROJECT_SOURCE_DIR}/config/shared/apps/ld ) buildliner_add_app( nav DEFINITION ${PROJECT_SOURCE_DIR}/apps/nav/fsw/for_build - CONFIG ${CMAKE_CURRENT_SOURCE_DIR}/apps/nav + CONFIG ${PROJECT_SOURCE_DIR}/config/shared/apps/nav ) buildliner_add_app( rcin DEFINITION ${PROJECT_SOURCE_DIR}/apps/rcin/fsw/for_build - CONFIG ${CMAKE_CURRENT_SOURCE_DIR}/apps/rcin + CONFIG ${PROJECT_SOURCE_DIR}/config/shared/apps/rcin CONFIG_SOURCES - ${CMAKE_CURRENT_SOURCE_DIR}/apps/rcin/src/rcin_custom.c + ${PROJECT_SOURCE_DIR}/config/shared/apps/rcin/src/rcin_custom.c ) buildliner_add_app( bat DEFINITION ${PROJECT_SOURCE_DIR}/apps/bat/fsw/for_build - CONFIG ${CMAKE_CURRENT_SOURCE_DIR}/apps/bat + CONFIG ${PROJECT_SOURCE_DIR}/config/shared/apps/bat CONFIG_SOURCES - ${CMAKE_CURRENT_SOURCE_DIR}/apps/bat/bat_custom.cpp + ${PROJECT_SOURCE_DIR}/config/shared/apps/bat/bat_custom.cpp ) buildliner_add_app( mpu6050 DEFINITION ${PROJECT_SOURCE_DIR}/apps/mpu6050/fsw/for_build - CONFIG ${CMAKE_CURRENT_SOURCE_DIR}/apps/mpu6050 + CONFIG ${PROJECT_SOURCE_DIR}/config/shared/apps/mpu6050 CONFIG_SOURCES - ${CMAKE_CURRENT_SOURCE_DIR}/apps/mpu6050/src/mpu6050_custom.cpp + ${PROJECT_SOURCE_DIR}/config/shared/apps/mpu6050/src/mpu6050_custom.cpp ) buildliner_add_app( ak8963 DEFINITION ${PROJECT_SOURCE_DIR}/apps/ak8963/fsw/for_build - CONFIG ${CMAKE_CURRENT_SOURCE_DIR}/apps/ak8963 + CONFIG ${PROJECT_SOURCE_DIR}/config/shared/apps/ak8963 CONFIG_SOURCES - ${CMAKE_CURRENT_SOURCE_DIR}/apps/ak8963/src/ak8963_custom.cpp + ${PROJECT_SOURCE_DIR}/config/shared/apps/ak8963/src/ak8963_custom.cpp ) buildliner_add_app( pe DEFINITION ${PROJECT_SOURCE_DIR}/apps/pe/fsw/for_build - CONFIG ${CMAKE_CURRENT_SOURCE_DIR}/apps/pe + CONFIG ${PROJECT_SOURCE_DIR}/config/shared/apps/pe ) buildliner_add_app( qae DEFINITION ${PROJECT_SOURCE_DIR}/apps/qae/fsw/for_build - CONFIG ${CMAKE_CURRENT_SOURCE_DIR}/apps/qae + CONFIG ${PROJECT_SOURCE_DIR}/config/shared/apps/qae ) buildliner_add_app( lgc DEFINITION ${PROJECT_SOURCE_DIR}/apps/lgc/fsw/for_build - CONFIG ${CMAKE_CURRENT_SOURCE_DIR}/apps/lgc + CONFIG ${PROJECT_SOURCE_DIR}/config/shared/apps/lgc CONFIG_SOURCES - ${CMAKE_CURRENT_SOURCE_DIR}/apps/lgc/lgc_custom.cpp + ${PROJECT_SOURCE_DIR}/config/shared/apps/lgc/lgc_custom.cpp ) diff --git a/config/bebop2/sitl/target/apps/ci/CMakeLists.txt b/config/bebop2/sitl/target/apps/ci/CMakeLists.txt deleted file mode 100644 index b12b802ac..000000000 --- a/config/bebop2/sitl/target/apps/ci/CMakeLists.txt +++ /dev/null @@ -1,36 +0,0 @@ -set(APP_NAME ci) - -buildliner_add_table( - ${APP_NAME} - NAME ci_config - SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/tables/ci_config.c - INCLUDES ${CMAKE_CURRENT_SOURCE_DIR}/src/ -) - -buildliner_add_app_unit_test_src(${APP_NAME} SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/tables/ci_config.c) - -buildliner_add_app_unit_test(ci-custom-ut - UTASSERT - NO_HELGRIND - NO_MASSIF - - SOURCES - ${CMAKE_CURRENT_SOURCE_DIR}/unit_test/ci_testrunner.c - ${CMAKE_CURRENT_SOURCE_DIR}/unit_test/ci_custom_test.c - ${CMAKE_CURRENT_SOURCE_DIR}/ci_custom.c - ${PROJECT_SOURCE_DIR}/apps/ci/fsw/src/ci_app.c - ${PROJECT_SOURCE_DIR}/apps/ci/fsw/src/ci_config_utils.c - ${CMAKE_CURRENT_SOURCE_DIR}/unit_test/ci_mock_os_calls.c - ${CMAKE_CURRENT_SOURCE_DIR}/unit_test/ci_test_utils.c - ${PROJECT_SOURCE_DIR}/core/base/ut_assert/src/ut_cfe_es_hooks.c - - INCLUDES - ${PROJECT_SOURCE_DIR}/apps/ci/fsw/src/ - - WRAPPERS - socket - bind - - VALGRIND_SUPPRESSION_FILE - ${CMAKE_CURRENT_SOURCE_DIR}/unit_test/ci-custom.supp -) diff --git a/config/bebop2/sitl/target/apps/sch/unit_test/sch_custom_test.c b/config/bebop2/sitl/target/apps/sch/unit_test/sch_custom_test.c deleted file mode 100644 index c26ec65a0..000000000 --- a/config/bebop2/sitl/target/apps/sch/unit_test/sch_custom_test.c +++ /dev/null @@ -1,420 +0,0 @@ - /************************************************************************* - ** File: - ** $Id: sch_custom_test.c 1.3 2017/06/21 15:29:03EDT mdeschu Exp $ - ** - ** Purpose: - ** This file contains unit test cases for the functions contained in the file sch_custom.c - ** - ** References: - ** Flight Software Branch C Coding Standard Version 1.2 - ** CFS Development Standards Document - ** Notes: - ** - *************************************************************************/ - -/* - * Includes - */ - -#include "sch_custom_test.h" -#include "sch_custom.h" -#include "sch_app.h" -#include "sch_msg.h" -#include "sch_msgdefs.h" -#include "sch_events.h" -#include "sch_version.h" -#include "sch_test_utils.h" -#include -#include -#include -#include "ut_cfe_evs_hooks.h" -#include "ut_cfe_evs_stubs.h" -#include "ut_cfe_time_stubs.h" - -SCH_AppData_t SCH_AppData; - -/* - * Function Definitions - */ -void SCH_CustomEarlyInit_Test(void) -{ - int32 Result; - - /* Execute the function being tested */ - Result = SCH_CustomEarlyInit(); - - /* Verify results */ - UtAssert_True (Result == CFE_SUCCESS, "Result == CFE_SUCCESS"); - - UtAssert_True (Ut_CFE_EVS_GetEventQueueDepth() == 0, "Ut_CFE_EVS_GetEventQueueDepth() == 0"); - -} /* end SCH_CustomEarlyInit_Test */ - -void SCH_CustomLateInit_Test_Nominal(void) -{ - int32 Result; - - /* Execute the function being tested */ - Result = SCH_CustomLateInit(); - - /* Verify results */ - UtAssert_True (Result == CFE_SUCCESS, "Result == CFE_SUCCESS"); - - UtAssert_True (Ut_CFE_EVS_GetEventQueueDepth() == 0, "Ut_CFE_EVS_GetEventQueueDepth() == 0"); - -} /* end SCH_CustomLateInit_Test_Nominal */ - -void SCH_CustomLateInit_Test_RegisterSynchCallbackError(void) -{ - int32 Result; - - /* Set to make function under test return -1 */ - Ut_CFE_TIME_SetReturnCode(UT_CFE_TIME_REGISTERSYNCHCALLBACK_INDEX, -1, 1); - - /* Execute the function being tested */ - Result = SCH_CustomLateInit(); - - /* Verify results */ - UtAssert_True (Result == -1, "Result == -1"); - - UtAssert_True (Ut_CFE_EVS_GetEventQueueDepth() == 0, "Ut_CFE_EVS_GetEventQueueDepth() == 0"); - -} /* end SCH_CustomLateInit_Test_RegisterSynchCallbackError */ - -void SCH_CustomLateInit_Test_TimerSetError(void) -{ - int32 Result; - - /* Set to make function under test return -1 */ -#ifndef CFE_PSP_MAX_TIMERS - Ut_OSTIMER_SetReturnCode(UT_OSTIMER_SET_INDEX, -1, 1); -#else - Ut_CFE_PSP_SetReturnCode(UT_CFE_PSP_TIMERSET_INDEX, -1, 1); -#endif - - /* Execute the function being tested */ - Result = SCH_CustomLateInit(); - - /* Verify results */ - UtAssert_True (Result == -1, "Result == -1"); - - UtAssert_True (Ut_CFE_EVS_GetEventQueueDepth() == 0, "Ut_CFE_EVS_GetEventQueueDepth() == 0"); - -} /* end SCH_CustomLateInit_Test_TimerSetError */ - -void SCH_CustomGetCurrentSlotNumber_Test_LowCurrentSlot(void) -{ - int32 Result = 0; - - SCH_AppData.SyncToMET = 99; - SCH_AppData.LastSyncMETSlot = 10; - - /* Execute the function being tested */ - //Result = SCH_CustomGetCurrentSlotNumber(); - - /* Verify results */ - UtAssert_True (Result == SCH_TOTAL_SLOTS - 10, "Result == SCH_TOTAL_SLOTS - 10"); - - UtAssert_True (Ut_CFE_EVS_GetEventQueueDepth() == 0, "Ut_CFE_EVS_GetEventQueueDepth() == 0"); - -} /* end SCH_CustomGetCurrentSlotNumber_Test_LowCurrentSlot */ - -void SCH_CustomGetCurrentSlotNumber_Test_HighCurrentSlot(void) -{ - int32 Result = 0; - - SCH_AppData.SyncToMET = 99; - SCH_AppData.LastSyncMETSlot = 0; - - /* Set to make SCH_GetMETSlotNumber return 1 */ - Ut_CFE_TIME_SetReturnCode(UT_CFE_TIME_SUB2MICROSECS_INDEX, SCH_NORMAL_SLOT_PERIOD, 1); - - /* Execute the function being tested */ - //Result = SCH_CustomGetCurrentSlotNumber(); - - /* Verify results */ - UtAssert_True (Result == 1, "Result == 1"); - - UtAssert_True (Ut_CFE_EVS_GetEventQueueDepth() == 0, "Ut_CFE_EVS_GetEventQueueDepth() == 0"); - -} /* end SCH_CustomGetCurrentSlotNumber_Test_HighCurrentSlot */ - -void SCH_CustomGetCurrentSlotNumber_Test_NotSynchronized(void) -{ - int32 Result = 0; - - SCH_AppData.SyncToMET = SCH_NOT_SYNCHRONIZED; - SCH_AppData.MinorFramesSinceTone = 10; - - /* Execute the function being tested */ - //Result = SCH_CustomGetCurrentSlotNumber(); - - /* Verify results */ - UtAssert_True (Result == 10, "Result == 10"); - - UtAssert_True (Ut_CFE_EVS_GetEventQueueDepth() == 0, "Ut_CFE_EVS_GetEventQueueDepth() == 0"); - -} /* end SCH_CustomGetCurrentSlotNumber_Test_NotSynchronized */ - -void SCH_CustomCleanup_Test(void) -{ - /* Execute the function being tested */ - SCH_CustomCleanup(); - - /* Verify results */ - UtAssert_True (Ut_CFE_EVS_GetEventQueueDepth() == 0, "Ut_CFE_EVS_GetEventQueueDepth() == 0"); - -} /* end SCH_CustomCleanup_Test */ - -void SCH_GetMETSlotNumber_Test_Rollover(void) -{ - uint32 Result = 1; - - /* Set to make function under test return 0 by rollover */ - Ut_CFE_TIME_SetReturnCode(UT_CFE_TIME_SUB2MICROSECS_INDEX, SCH_NORMAL_SLOT_PERIOD * SCH_TOTAL_SLOTS, 1); - - /* Execute the function being tested */ - //Result = SCH_GetMETSlotNumber(); - - /* Verify results */ - UtAssert_True (Result == 0, "Result == 0"); - - UtAssert_True (Ut_CFE_EVS_GetEventQueueDepth() == 0, "Ut_CFE_EVS_GetEventQueueDepth() == 0"); - -} /* end SCH_GetMETSlotNumber_Test_Rollover */ - -void SCH_GetMETSlotNumber_Test_NoRollover(void) -{ - uint32 Result = 0; - - /* Set to make function under test return 1 */ - Ut_CFE_TIME_SetReturnCode(UT_CFE_TIME_SUB2MICROSECS_INDEX, SCH_NORMAL_SLOT_PERIOD, 1); - - /* Execute the function being tested */ - //Result = SCH_GetMETSlotNumber(); - - /* Verify results */ - UtAssert_True (Result == 1, "Result == 1"); - - UtAssert_True (Ut_CFE_EVS_GetEventQueueDepth() == 0, "Ut_CFE_EVS_GetEventQueueDepth() == 0"); - -} /* end SCH_GetMETSlotNumber_Test_NoRollover */ - -void SCH_MajorFrameCallback_Test_NoisyNotSynchronized(void) -{ - SCH_AppData.SyncToMET = SCH_NOT_SYNCHRONIZED; - SCH_AppData.MinorFramesSinceTone = 1; - SCH_AppData.IgnoreMajorFrame = FALSE; - SCH_AppData.ConsecutiveNoisyFrameCounter = SCH_MAX_NOISY_MAJORF - 1; - - /* Set to make SCH_GetMETSlotNumber return 1 */ - Ut_CFE_TIME_SetReturnCode(UT_CFE_TIME_SUB2MICROSECS_INDEX, SCH_NORMAL_SLOT_PERIOD, 1); - - /* Execute the function being tested */ - //SCH_MajorFrameCallback(); - - /* Verify results */ - UtAssert_True (SCH_AppData.UnexpectedMajorFrame == TRUE, "SCH_AppData.UnexpectedMajorFrame == TRUE"); - UtAssert_True (SCH_AppData.UnexpectedMajorFrameCount == 1, "SCH_AppData.UnexpectedMajorFrameCount == 1"); - UtAssert_True (SCH_AppData.ConsecutiveNoisyFrameCounter == SCH_MAX_NOISY_MAJORF, "SCH_AppData.ConsecutiveNoisyFrameCounter == SCH_MAX_NOISY_MAJORF"); - UtAssert_True (SCH_AppData.IgnoreMajorFrame == TRUE, "SCH_AppData.IgnoreMajorFrame == TRUE"); - UtAssert_True (SCH_AppData.LastSyncMETSlot == 1, "SCH_AppData.LastSyncMETSlot == 1"); - - UtAssert_True (Ut_CFE_EVS_GetEventQueueDepth() == 0, "Ut_CFE_EVS_GetEventQueueDepth() == 0"); - -} /* end SCH_MajorFrameCallback_Test_NoisyNotSynchronized */ - -void SCH_MajorFrameCallback_Test_NoisySynchronized(void) -{ - SCH_AppData.SyncToMET = SCH_MINOR_SYNCHRONIZED; - SCH_AppData.NextSlotNumber = 1; - SCH_AppData.IgnoreMajorFrame = FALSE; - SCH_AppData.ConsecutiveNoisyFrameCounter = SCH_MAX_NOISY_MAJORF - 1; - - /* Set to make SCH_GetMETSlotNumber return 1 */ - Ut_CFE_TIME_SetReturnCode(UT_CFE_TIME_SUB2MICROSECS_INDEX, SCH_NORMAL_SLOT_PERIOD, 1); - - /* Execute the function being tested */ - //SCH_MajorFrameCallback(); - - /* Verify results */ - UtAssert_True (SCH_AppData.UnexpectedMajorFrame == TRUE, "SCH_AppData.UnexpectedMajorFrame == TRUE"); - UtAssert_True (SCH_AppData.UnexpectedMajorFrameCount == 1, "SCH_AppData.UnexpectedMajorFrameCount == 1"); - UtAssert_True (SCH_AppData.ConsecutiveNoisyFrameCounter == SCH_MAX_NOISY_MAJORF, "SCH_AppData.ConsecutiveNoisyFrameCounter == SCH_MAX_NOISY_MAJORF"); - UtAssert_True (SCH_AppData.IgnoreMajorFrame == TRUE, "SCH_AppData.IgnoreMajorFrame == TRUE"); - UtAssert_True (SCH_AppData.LastSyncMETSlot == 1, "SCH_AppData.LastSyncMETSlot == 1"); - - UtAssert_True (Ut_CFE_EVS_GetEventQueueDepth() == 0, "Ut_CFE_EVS_GetEventQueueDepth() == 0"); - -} /* end SCH_MajorFrameCallback_Test_NoisySynchronized */ - -void SCH_MajorFrameCallback_Test_FrameOccurredWhenExpected(void) -{ - SCH_AppData.SyncToMET = 99; - SCH_AppData.IgnoreMajorFrame = FALSE; - SCH_AppData.ConsecutiveNoisyFrameCounter = 1; - - /* Set to make SCH_GetMETSlotNumber return 1 */ - Ut_CFE_TIME_SetReturnCode(UT_CFE_TIME_SUB2MICROSECS_INDEX, SCH_NORMAL_SLOT_PERIOD, 1); - - /* Execute the function being tested */ - //SCH_MajorFrameCallback(); - - /* Verify results */ - UtAssert_True (SCH_AppData.UnexpectedMajorFrame == FALSE, "SCH_AppData.UnexpectedMajorFrame == FALSE"); - UtAssert_True (SCH_AppData.ConsecutiveNoisyFrameCounter == 0, "SCH_AppData.ConsecutiveNoisyFrameCounter == 0"); - UtAssert_True (SCH_AppData.ValidMajorFrameCount == 1, "SCH_AppData.ValidMajorFrameCount == 1"); - UtAssert_True (SCH_AppData.MinorFramesSinceTone == 0, "SCH_AppData.MinorFramesSinceTone == 0"); - UtAssert_True (SCH_AppData.MajorFrameSource == SCH_MAJOR_FS_CFE_TIME, "MajorFrameSource == SCH_MAJOR_FS_CFE_TIME"); - UtAssert_True (SCH_AppData.SyncToMET == (SCH_AppData.SyncToMET & SCH_MINOR_SYNCHRONIZED), "SCH_AppData.SyncToMET == (SCH_AppData.SyncToMET & SCH_MINOR_SYNCHRONIZED)"); - UtAssert_True (SCH_AppData.LastSyncMETSlot == 1, "SCH_AppData.LastSyncMETSlot == 1"); - - UtAssert_True (Ut_CFE_EVS_GetEventQueueDepth() == 0, "Ut_CFE_EVS_GetEventQueueDepth() == 0"); - -} /* end SCH_MajorFrameCallback_Test_FrameOccurredWhenExpected */ - -#define CFE_TIME_FLAG_FLYING 1 -void SCH_MajorFrameCallback_Test_FlywheelMode(void) -{ - /* Set to make fail condition "(StateFlags & CFE_TIME_FLAG_FLYING) == 0" */ - Ut_CFE_TIME_SetReturnCode(UT_CFE_TIME_GETCLOCKINFO_INDEX, CFE_TIME_FLAG_FLYING, 1); - - /* Set to make SCH_GetMETSlotNumber return 1 */ - Ut_CFE_TIME_SetReturnCode(UT_CFE_TIME_SUB2MICROSECS_INDEX, SCH_NORMAL_SLOT_PERIOD, 1); - - /* Execute the function being tested */ - //SCH_MajorFrameCallback(); - - /* Verify results */ - UtAssert_True (SCH_AppData.LastSyncMETSlot == 1, "SCH_AppData.LastSyncMETSlot == 1"); - - UtAssert_True (Ut_CFE_EVS_GetEventQueueDepth() == 0, "Ut_CFE_EVS_GetEventQueueDepth() == 0"); - -} /* end SCH_MajorFrameCallback_Test_FlywheelMode */ - -void SCH_MinorFrameCallback_Test_SyncAttemptsLeft(void) -{ - uint32 TimerId = 1; - - SCH_AppData.MajorFrameSource = SCH_MAJOR_FS_NONE; - - /* Set to make SCH_GetMETSlotNumber return 1 */ - Ut_CFE_TIME_SetReturnCode(UT_CFE_TIME_SUB2MICROSECS_INDEX, SCH_NORMAL_SLOT_PERIOD, 1); - - /* Execute the function being tested */ - //SCH_MinorFrameCallback(TimerId); - - /* Verify results */ - UtAssert_True(SCH_AppData.MajorFrameSource == SCH_MAJOR_FS_MINOR_FRAME_TIMER, "SCH_AppData.MajorFrameSource == SCH_MAJOR_FS_MINOR_FRAME_TIMER"); - UtAssert_True(SCH_AppData.SyncToMET == SCH_PENDING_MAJOR_SYNCH, "SCH_AppData.SyncToMET == SCH_PENDING_MAJOR_SYNCH"); - UtAssert_True(SCH_AppData.SyncAttemptsLeft == SCH_MAX_SYNC_ATTEMPTS - 1, "SCH_AppData.SyncAttemptsLeft == SCH_MAX_SYNC_ATTEMPTS - 1"); - UtAssert_True(SCH_AppData.LastSyncMETSlot == 0, "SCH_AppData.LastSyncMETSlot == 0"); - - UtAssert_True (Ut_CFE_EVS_GetEventQueueDepth() == 0, "Ut_CFE_EVS_GetEventQueueDepth() == 0"); - -} /* end SCH_MinorFrameCallback_Test_SyncAttemptsLeft */ - -void SCH_MinorFrameCallback_Test_SynchronizationAchievedNominal(void) -{ - uint32 TimerId = 1; - - SCH_AppData.MajorFrameSource = SCH_MAJOR_FS_NONE; - - /* Execute the function being tested */ - //SCH_MinorFrameCallback(TimerId); - - /* Verify results */ - UtAssert_True(SCH_AppData.MajorFrameSource == SCH_MAJOR_FS_MINOR_FRAME_TIMER, "SCH_AppData.MajorFrameSource == SCH_MAJOR_FS_MINOR_FRAME_TIMER"); - UtAssert_True(SCH_AppData.SyncAttemptsLeft == SCH_MAX_SYNC_ATTEMPTS - 1, "SCH_AppData.SyncAttemptsLeft == SCH_MAX_SYNC_ATTEMPTS - 1"); - UtAssert_True(SCH_AppData.SyncToMET == SCH_MAJOR_SYNCHRONIZED, "SCH_AppData.SyncToMET == SCH_MAJOR_SYNCHRONIZED"); - UtAssert_True(SCH_AppData.MinorFramesSinceTone == 0, "SCH_AppData.MinorFramesSinceTone == 0"); - UtAssert_True(SCH_AppData.LastSyncMETSlot == 0, "SCH_AppData.LastSyncMETSlot == 0"); - - UtAssert_True (Ut_CFE_EVS_GetEventQueueDepth() == 0, "Ut_CFE_EVS_GetEventQueueDepth() == 0"); - -} /* end SCH_MinorFrameCallback_Test_SynchronizationAchievedNominal */ - -void SCH_MinorFrameCallback_Test_AlreadySynchronizedNominal(void) -{ - uint32 TimerId = 1; - - SCH_AppData.MajorFrameSource = 99; - - /* Execute the function being tested */ - //SCH_MinorFrameCallback(TimerId); - - /* Verify results */ - UtAssert_True(SCH_AppData.MinorFramesSinceTone == 1, "SCH_AppData.MinorFramesSinceTone == 1"); - - UtAssert_True (Ut_CFE_EVS_GetEventQueueDepth() == 0, "Ut_CFE_EVS_GetEventQueueDepth() == 0"); - -} /* end SCH_MinorFrameCallback_Test_AlreadySynchronizedNominal */ - -void SCH_MinorFrameCallback_Test_AlreadySynchronizedRollover(void) -{ - uint32 TimerId = 1; - - SCH_AppData.MajorFrameSource = 99; - SCH_AppData.MinorFramesSinceTone = SCH_TOTAL_SLOTS; - - /* Execute the function being tested */ - //SCH_MinorFrameCallback(TimerId); - - /* Verify results */ - UtAssert_True(SCH_AppData.MinorFramesSinceTone == 0, "SCH_AppData.MinorFramesSinceTone == 0"); - UtAssert_True(SCH_AppData.MissedMajorFrameCount == 1, "SCH_AppData.MissedMajorFrameCount == 1"); - - UtAssert_True (Ut_CFE_EVS_GetEventQueueDepth() == 0, "Ut_CFE_EVS_GetEventQueueDepth() == 0"); - -} /* end SCH_MinorFrameCallback_Test_AlreadySynchronizedRollover */ - -void SCH_MinorFrameCallback_Test_AlreadySynchronizedStartTimer(void) -{ - uint32 TimerId = 1; - - SCH_AppData.MajorFrameSource = 99; - SCH_AppData.MinorFramesSinceTone = SCH_TIME_SYNC_SLOT - 1; - - /* Execute the function being tested */ - //SCH_MinorFrameCallback(TimerId); - - /* Verify results */ - UtAssert_True(SCH_AppData.MinorFramesSinceTone == SCH_TIME_SYNC_SLOT, "SCH_AppData.MinorFramesSinceTone == SCH_TIME_SYNC_SLOT"); - - UtAssert_True (Ut_CFE_EVS_GetEventQueueDepth() == 0, "Ut_CFE_EVS_GetEventQueueDepth() == 0"); - -} /* end SCH_MinorFrameCallback_Test_AlreadySynchronizedStartTimer */ - -void SCH_Custom_Test_AddTestCases(void) -{ - UtTest_Add(SCH_CustomEarlyInit_Test, SCH_Test_Setup, SCH_Test_TearDown, "SCH_CustomEarlyInit_Test"); - - UtTest_Add(SCH_CustomLateInit_Test_Nominal, SCH_Test_Setup, SCH_Test_TearDown, "SCH_CustomLateInit_Test_Nominal"); - //UtTest_Add(SCH_CustomLateInit_Test_RegisterSynchCallbackError, SCH_Test_Setup, SCH_Test_TearDown, "SCH_CustomLateInit_Test_RegisterSynchCallbackError"); - UtTest_Add(SCH_CustomLateInit_Test_TimerSetError, SCH_Test_Setup, SCH_Test_TearDown, "SCH_CustomLateInit_Test_TimerSetError"); - - //UtTest_Add(SCH_CustomGetCurrentSlotNumber_Test_LowCurrentSlot, SCH_Test_Setup, SCH_Test_TearDown, "SCH_CustomGetCurrentSlotNumber_Test_LowCurrentSlot"); - //UtTest_Add(SCH_CustomGetCurrentSlotNumber_Test_HighCurrentSlot, SCH_Test_Setup, SCH_Test_TearDown, "SCH_CustomGetCurrentSlotNumber_Test_HighCurrentSlot"); - //UtTest_Add(SCH_CustomGetCurrentSlotNumber_Test_NotSynchronized, SCH_Test_Setup, SCH_Test_TearDown, "SCH_CustomGetCurrentSlotNumber_Test_NotSynchronized"); - - UtTest_Add(SCH_CustomCleanup_Test, SCH_Test_Setup, SCH_Test_TearDown, "SCH_CustomCleanup_Test"); - - //UtTest_Add(SCH_GetMETSlotNumber_Test_Rollover, SCH_Test_Setup, SCH_Test_TearDown, "SCH_GetMETSlotNumber_Test_Rollover"); - //UtTest_Add(SCH_GetMETSlotNumber_Test_NoRollover, SCH_Test_Setup, SCH_Test_TearDown, "SCH_GetMETSlotNumber_Test_NoRollover"); - - //UtTest_Add(SCH_MajorFrameCallback_Test_NoisyNotSynchronized, SCH_Test_Setup, SCH_Test_TearDown, "SCH_MajorFrameCallback_Test_NoisyNotSynchronized"); - //UtTest_Add(SCH_MajorFrameCallback_Test_NoisySynchronized, SCH_Test_Setup, SCH_Test_TearDown, "SCH_MajorFrameCallback_Test_NoisySynchronized"); - //UtTest_Add(SCH_MajorFrameCallback_Test_FrameOccurredWhenExpected, SCH_Test_Setup, SCH_Test_TearDown, "SCH_MajorFrameCallback_Test_FrameOccurredWhenExpected"); - //UtTest_Add(SCH_MajorFrameCallback_Test_FlywheelMode, SCH_Test_Setup, SCH_Test_TearDown, "SCH_MajorFrameCallback_Test_FlywheelMode"); - - //UtTest_Add(SCH_MinorFrameCallback_Test_SyncAttemptsLeft, SCH_Test_Setup, SCH_Test_TearDown, "SCH_MinorFrameCallback_Test_SyncAttemptsLeft"); - //UtTest_Add(SCH_MinorFrameCallback_Test_SynchronizationAchievedNominal, SCH_Test_Setup, SCH_Test_TearDown, "SCH_MinorFrameCallback_Test_SynchronizationAchievedNominal"); - //UtTest_Add(SCH_MinorFrameCallback_Test_AlreadySynchronizedNominal, SCH_Test_Setup, SCH_Test_TearDown, "SCH_MinorFrameCallback_Test_AlreadySynchronizedNominal"); - //UtTest_Add(SCH_MinorFrameCallback_Test_AlreadySynchronizedRollover, SCH_Test_Setup, SCH_Test_TearDown, "SCH_MinorFrameCallback_Test_AlreadySynchronizedRollover"); - //UtTest_Add(SCH_MinorFrameCallback_Test_AlreadySynchronizedStartTimer, SCH_Test_Setup, SCH_Test_TearDown, "SCH_MinorFrameCallback_Test_AlreadySynchronizedStartTimer"); - -} /* end SCH_Custom_Test_AddTestCases */ - -/************************/ -/* End of File Comment */ -/************************/ diff --git a/config/obc/cpd/inc/ae_platform_cfg.h b/config/obc/cpd/inc/ae_platform_cfg.h deleted file mode 100644 index 0cd966dd5..000000000 --- a/config/obc/cpd/inc/ae_platform_cfg.h +++ /dev/null @@ -1,122 +0,0 @@ -#ifndef AE_PLATFORM_CFG_H -#define AE_PLATFORM_CFG_H - -#ifdef __cplusplus -extern "C" { -#endif - -/* -** AE Platform Configuration Parameter Definitions -*/ - -/** \brief Mission specific version number for AE application -** -** \par Description: -** An application version number consists of four parts: -** major version number, minor version number, revision -** number and mission specific revision number. The mission -** specific revision number is defined here and the other -** parts are defined in "amc_version.h". -** -** \par Limits: -** Must be defined as a numeric value that is greater than -** or equal to zero. -*/ -#define AE_MISSION_REV (0) - -/** \brief Pipe depth for the Scheduler pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define AE_SCH_PIPE_DEPTH (2) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define AE_SCH_PIPE_NAME ("AE_SCH_PIPE") - -/** \brief The SB pend behavior type for the Scheduler pipe. -** -** \par Limits: -** One of: CFE_SB_POLL, CFE_SB_PEND_FOREVER, or the -** number of milliseconds to wait for a new message (recommended). -** Note, using CFE_SB_PEND_FOREVER may cause an unresponsive -** application if no messages arrive on this pipe. -*/ -#define AE_SCH_PIPE_PEND_TIME (2000) - -/** \brief The number of WAKEUP messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max limited to CFE_SB_MAX_PIPE_DEPTH-1. Note the -** AE_WAKEUP_MID_MAX_MSG_COUNT and AE_SEND_HK_MID_MAX_MSG_COUNT -** must be less than AE_SCH_PIPE_DEPTH. -*/ -#define AE_WAKEUP_MID_MAX_MSG_COUNT (1) - -/** \brief The number of SEND_HK messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. Note the -** AE_WAKEUP_MID_MAX_MSG_COUNT and AE_SEND_HK_MID_MAX_MSG_COUNT -** must be less than AE_SCH_PIPE_DEPTH. -*/ -#define AE_SEND_HK_MID_MAX_MSG_COUNT (1) - -/** \brief Pipe depth for the command pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define AE_CMD_PIPE_DEPTH (4) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define AE_CMD_PIPE_NAME ("AE_CMD_PIPE") - -/** \brief Pipe depth for the data pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define AE_DATA_PIPE_DEPTH (4) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define AE_DATA_PIPE_NAME ("AE_DATA_PIPE") - -/** \brief The config table default filename -** -** \par Limits: -** The length of each string, including the NULL terminator cannot exceed -** the #OS_MAX_PATH_LEN value. -*/ -#define AE_CONFIG_TABLE_FILENAME ("/cf/apps/ae_config.tbl") - -/** \brief The timeout value, in milliseconds, to wait for ES application startup sync. -** -** \par Limits: -** This parameter must be at least 1000 (ms). -*/ -#define AE_STARTUP_TIMEOUT_MSEC (1000) - - -#ifdef __cplusplus -} -#endif - -#endif /* AE_PLATFORM_CFG_H */ - -/************************/ -/* End of File Comment */ -/************************/ - diff --git a/config/obc/cpd/inc/amc_platform_cfg.h b/config/obc/cpd/inc/amc_platform_cfg.h deleted file mode 100644 index e72128569..000000000 --- a/config/obc/cpd/inc/amc_platform_cfg.h +++ /dev/null @@ -1,130 +0,0 @@ -#ifndef AMC_PLATFORM_CFG_H -#define AMC_PLATFORM_CFG_H - -#ifdef __cplusplus -extern "C" { -#endif - -/* -** amc Platform Configuration Parameter Definitions -*/ - -/** \brief Mission specific version number for AMC application -** -** \par Description: -** An application version number consists of four parts: -** major version number, minor version number, revision -** number and mission specific revision number. The mission -** specific revision number is defined here and the other -** parts are defined in "amc_version.h". -** -** \par Limits: -** Must be defined as a numeric value that is greater than -** or equal to zero. -*/ -#define AMC_MISSION_REV (0) - -/** \brief Pipe depth for the Scheduler pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define AMC_SCH_PIPE_DEPTH (15) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define AMC_SCH_PIPE_NAME ("AMC_SCH_PIPE") - -/** \brief The SB pend behavior type for the Scheduler pipe. -** -** \par Limits: -** One of: CFE_SB_POLL, CFE_SB_PEND_FOREVER, or the -** number of milliseconds to wait for a new message (recommended). -** Note, using CFE_SB_PEND_FOREVER may cause an unresponsive -** application if no messages arrive on this pipe. -*/ -#define AMC_SCH_PIPE_PEND_TIME (2000) - -/** \brief The number of WAKEUP messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max limited to CFE_SB_MAX_PIPE_DEPTH-1. Note the -** AMC_SCH_PIPE_WAKEUP_RESERVED and AMC_SCH_PIPE_SEND_HK_RESERVED -** must be less than AMC_SCH_PIPE_DEPTH. -*/ -#define AMC_SCH_PIPE_WAKEUP_RESERVED (1) - -/** \brief The number of SEND_HK messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. Note the -** AMC_SCH_PIPE_WAKEUP_RESERVED and AMC_SCH_PIPE_SEND_HK_RESERVED -** must be less than AMC_SCH_PIPE_DEPTH. -*/ -#define AMC_SCH_PIPE_SEND_HK_RESERVED (1) - -/** \brief Pipe depth for the command pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define AMC_CMD_PIPE_DEPTH (4) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define AMC_CMD_PIPE_NAME ("AMC_CMD_PIPE") - -/** \brief Pipe depth for the data pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define AMC_PARAM_PIPE_DEPTH (4) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define AMC_PARAM_PIPE_NAME ("AMC_PARAM_PIPE") - -/** \brief The config table default filename -** -** \par Limits: -** The length of each string, including the NULL terminator cannot exceed -** the #OS_MAX_PATH_LEN value. -*/ -#define AMC_PWM_CONFIG_TABLE_FILENAME ("/cf/apps/amc_pwmcfg.tbl") - -#define AMC_MIXER_CONFIG_TABLE_FILENAME ("/cf/apps/amc_mixercfg.tbl") - -/** \brief The timeout value, in milliseconds, to wait for ES application startup sync. -** -** \par Limits: -** This parameter must be at least 1000 (ms). -*/ -#define AMC_STARTUP_TIMEOUT_MSEC (1000) - -/* TODO: Add Doxygen markup. */ -#define AMC_MAX_MOTOR_OUTPUTS (8) - -#define AMC_MAX_PARAMS (3) - - - -#ifdef __cplusplus -} -#endif - -#endif /* AMC_PLATFORM_CFG_H */ - -/************************/ -/* End of File Comment */ -/************************/ - diff --git a/config/obc/cpd/inc/bat_platform_cfg.h b/config/obc/cpd/inc/bat_platform_cfg.h deleted file mode 100644 index 10a8ed217..000000000 --- a/config/obc/cpd/inc/bat_platform_cfg.h +++ /dev/null @@ -1,112 +0,0 @@ -#ifndef BAT_PLATFORM_CFG_H -#define BAT_PLATFORM_CFG_H - -#ifdef __cplusplus -extern "C" { -#endif - -#define BAT_LISTENER_TASK_FLAGS OS_ENABLE_CORE_0 - -/* -** BAT Platform Configuration Parameter Definitions -*/ - -/** \brief Mission specific version number for BAT application -** -** \par Description: -** An application version number consists of four parts: -** major version number, minor version number, revision -** number and mission specific revision number. The mission -** specific revision number is defined here and the other -** parts are defined in "amc_version.h". -** -** \par Limits: -** Must be defined as a numeric value that is greater than -** or equal to zero. -*/ -#define BAT_MISSION_REV (0) - -/** \brief Pipe depth for the Scheduler pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define BAT_SCH_PIPE_DEPTH (3) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define BAT_SCH_PIPE_NAME ("BAT_SCH_PIPE") - -/** \brief The SB pend behavior type for the Scheduler pipe. -** -** \par Limits: -** One of: CFE_SB_POLL, CFE_SB_PEND_FOREVER, or the -** number of milliseconds to wait for a new message (recommended). -** Note, using CFE_SB_PEND_FOREVER may cause an unresponsive -** application if no messages arrive on this pipe. -*/ -#define BAT_SCH_PIPE_PEND_TIME (2000) - -/** \brief The number of WAKEUP messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max limited to CFE_SB_MAX_PIPE_DEPTH-1. Note the -** BAT_WAKEUP_MID_MAX_MSG_COUNT and BAT_SEND_HK_MID_MAX_MSG_COUNT -** must be less than BAT_SCH_PIPE_DEPTH. -*/ -#define BAT_WAKEUP_MID_MAX_MSG_COUNT (1) - -/** \brief The number of SEND_HK messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. Note the -** BAT_WAKEUP_MID_MAX_MSG_COUNT and BAT_SEND_HK_MID_MAX_MSG_COUNT -** must be less than BAT_SCH_PIPE_DEPTH. -*/ -#define BAT_SEND_HK_MID_MAX_MSG_COUNT (1) - -/** \brief Pipe depth for the command pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define BAT_CMD_PIPE_DEPTH (4) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define BAT_CMD_PIPE_NAME ("BAT_CMD_PIPE") - -/** \brief The config table default filename -** -** \par Limits: -** The length of each string, including the NULL terminator cannot exceed -** the #OS_MAX_PATH_LEN value. -*/ -#define BAT_CONFIG_TABLE_FILENAME ("/cf/apps/bat_config.tbl") - -/** \brief The timeout value, in milliseconds, to wait for ES application startup sync. -** -** \par Limits: -** This parameter must be at least 1000 (ms). -*/ -#define BAT_STARTUP_TIMEOUT_MSEC (1000) - -/** \brief BAT Child task stack size */ -#define BAT_LISTENER_TASK_STACK_SIZE (16000) - -#ifdef __cplusplus -} -#endif - -#endif /* BAT_PLATFORM_CFG_H */ - -/************************/ -/* End of File Comment */ -/************************/ - diff --git a/config/obc/cpd/inc/cf_msgids.h b/config/obc/cpd/inc/cf_msgids.h deleted file mode 100644 index 820de96d4..000000000 --- a/config/obc/cpd/inc/cf_msgids.h +++ /dev/null @@ -1,10 +0,0 @@ -#ifndef CF_MSGIDS_H -#define CF_MSGIDS_H - -#include "msg_ids.h" - -#endif /* CF_MSGIDS_H */ - -/************************/ -/* End of File Comment */ -/************************/ diff --git a/config/obc/cpd/inc/cf_platform_cfg.h b/config/obc/cpd/inc/cf_platform_cfg.h deleted file mode 100644 index d99eaa728..000000000 --- a/config/obc/cpd/inc/cf_platform_cfg.h +++ /dev/null @@ -1,373 +0,0 @@ -#ifndef CF_PLATFORM_CFG_H -#define CF_PLATFORM_CFG_H - -/************************************************************************* -** Macro definitions -**************************************************************************/ - -/** -** \cfcfg Application Pipe Depth -** -** \par Description: -** Dictates the pipe depth of the cf command pipe. -** -** \par Limits: -** The minimum size of this paramater is 1 -** The maximum size dictated by cFE platform configuration -** parameter is CFE_SB_MAX_PIPE_DEPTH -*/ -#define CF_PIPE_DEPTH 40 - - -/** -** \cfcfg Application Pipe Name -** -** \par Description: -** Dictates the pipe name of the cf command pipe. -** -** \par Limits: -** -*/ -#define CF_PIPE_NAME "CF_CMD_PIPE" - - -/** -** \cfcfg Maximum Simulataneous Transactions -** -** \par Description: -** Dictates max number of transactions (uplink and downlink) -** that can be in progress at any given time. -** -** \par Limits: -** -*/ -#define CF_MAX_SIMULTANEOUS_TRANSACTIONS 100 - - - -/** -** \cfcfg Uplink PDU Data Buffer Size -** -** \par Description: -** This parameter sets the statically allocated size (in bytes) of the -** incoming PDU buffer. This buffer will be used to hold the pdu hdr and -** data portion of the incoming PDUs. Incoming PDUs are enclosed in a CCSDS -** packet. This parameter should not include the size of the CCSDS pkt hdr. -** -** \par Limits: -** Must be greater than or equal to the sum of the ground engine parameter -** outgoing-file-chunk-size, pdu hdr size and the 4 bytes of 'offset' in -** file-data pdus. Upper limit of 64K derived from 16 bit PDU header field -** named 'PDU Data Field Length'. -** This parameter must be less-than or equal-to the outgoing pdu buffer. -** -** -*/ -#define CF_INCOMING_PDU_BUF_SIZE 512 - - - -/** -** \cfcfg Outgoing PDU Data Buffer Size -** -** \par Description: -** This parameter sets the statically allocated size (in bytes) of the -** outgoing PDU buffer. This buffer will be used to hold the pdu hdr and -** data portion of the outgoing PDUs. Outgoing PDUs are enclosed in a CCSDS -** packet. This parameter should not include the size of the CCSDS pkt hdr. -** -** \par Limits: -** This parameter will put an upper limit on the table parameter -** 'outgoing_file_chunk_size'. The max 'outgoing_file_chunk_size' allowed -** will be CF_OUTGOING_PDU_BUF_SIZE - (12 + 4) The 12 and 4 are pdu hdr -** size and offset field in file-data pdu, respectively. -** This parameter has an upper limit of 64K derived from 16 bit PDU header -** field named 'PDU Data Field Length'. -** This parameter must be greater-than or equal-to the incoming pdu buffer. -** -** -*/ -#define CF_OUTGOING_PDU_BUF_SIZE 2048 - - -/** -** \cfcfg Path name and file prefix of the engine temp files -** -** \par Description: -** The receiving engine constructs all files in a temporary file. This -** parameter specifies the path and base filename of the temporary files. -** The engine appends a sequence number to this parameter to get a complete -** filename. -** -** \par Limits: -** - The length of this string, including the NULL terminator cannot exceed -** the #OS_MAX_PATH_LEN value. -** - The last character should not be a slash. -** -*/ -#define CF_ENGINE_TEMP_FILE_PREFIX "/ram/cftmp" - -/** -** \cfcfg Name of the CF Configuration Table -** -** \par Description: -** This parameter defines the name of the CF Configuration Table. -** -** \par Limits -** The length of this string, including the NULL terminator cannot exceed -** the #OS_MAX_PATH_LEN value. -*/ -#define CF_CONFIG_TABLE_NAME "ConfigTable" - - -/** -** \cfcfg CF Configuration Table Filename -** -** \par Description: -** The value of this constant defines the filename of the CF Config Table -** -** \par Limits -** The length of this string, including the NULL terminator cannot exceed -** the #OS_MAX_PATH_LEN value. -*/ -#define CF_CONFIG_TABLE_FILENAME "/cf/apps/cf_cfgtable.tbl" - - -/** -** \cfcfg Number of Input Channels -** -** \par Description: -** Defines the number of input channels -** defined in the configuration table. Input channels were added to the -** design to support class 2 file receives from multiple peers. It is -** necessary for the code to know what output channel should be used for -** responses (ACK-EOF,NAK, etc) of incoming, class 2 transactions. -** Each input channel has a dedicated MsgId for incoming PDUs and an output -** channel for responses of class 2, file-receive transactions. -** -** \par Limits -** Lower Limit of 1, Upper limit of 255. -** -*/ -#define CF_NUM_INPUT_CHANNELS 1 - - -/** -** \cfcfg Max Number of Playback Output Channels -** -** \par Description: -** Defines the max number of playback output channels that may ever be -** defined in the configuration table. Refer to the configuration table for -** more details about playback output channels. -** -** \par Limits -** Lower Limit of 1, Upper limit of 255. -** -** \par Notes: -** The CF configuration table must have an entry for this number of -** playback channels, but some may be marked as not-in-use. This saves -** having to recompile and reload a new CF Application when a playback -** channel is added. -*/ -#define CF_MAX_PLAYBACK_CHANNELS 2 - - -/** -** \cfcfg Max Number of Polling(Hot) Directories per Playback Output Channel -** -** \par Description: -** Defines the max number of polling directories that may ever be defined -** in the configuration table. A polling directory is a directory that -** is periodically checked for playback files. Files found in the polling -** directory are immediately placed on the playback pending queue for -** downlink. -** -** \par Limits: -** Lower limit of 1, Upper limit of 255. -** -** \par Notes: -** The CF configuration table must have an entry for this number of polling -** directories, but some may be marked as not-in-use. This saves having to -** recompile and reload a new CF Application when a polling directory is -** added. -** -*/ -#define CF_MAX_POLLING_DIRS_PER_CHAN 8 - - -/** -** \cfcfg Number of bytes in the CF Memory Pool -** -** \par Description: -** The CF memory pool contains the memory needed to hold information for -** each transaction. The info for each transaction is defined by a -** CF_QueueEntry_t. The number of CF_QueueEntry_t's needed is based on: -** -** UplinkHistoryQDepth + CF_MAX_SIMULTANEOUS_TRANSACTIONS + -** ((CF_MAX_PLAYBACK_CHANNELS * (PendingQDepth + HistoryQDepth)) -** -** Lower case variables are defined in config table, upper case params are -** defined in platform config file (cf_platform_cfg.h) -** -** See CF Housekeeping page for memory utilization details -** -** -** \par Limits -** Lower Limit of 256, Upper limit of 4 Gigabytes -*/ -#define CF_MEMORY_POOL_BYTES 32768 - - -/** -** \cfcfg Default Queue Information Filename -** -** \par Description: -** The value of this constant defines the filename used to store the CF -** queue information. This filename is used only when no filename is -** specified in the command. -** -** \par Limits -** The length of each string, including the NULL terminator cannot exceed -** the OS_MAX_PATH_LEN value. -*/ -#define CF_DEFAULT_QUEUE_INFO_FILENAME "/ram/cf_queue_info.dat" - - -/** -** \cfcfg CF Event Filtering -** -** \par Description: -** This group of configuration parameters dictates what CF events will be -** filtered through EVS. The filtering will begin after the CF app -** initializes and stay in effect until changed via EVS command. -** Mark all unused event Id values and mask values to zero -** eg. #define CF_FILTERED_EVENT1 0 -** #define CF_FILTER_MASK1 0 -** To filter the event, set the mask value to CFE_EVS_FIRST_ONE_STOP -** To disable filtering of the event, set mask value to CFE_EVS_NO_FILTER -** -** \par Limits -** These parameters have a lower limit of 0 and an upper limit of 65535. -*/ - -#define CF_FILTERED_EVENT1 CF_IN_TRANS_START_EID -#define CF_FILTER_MASK1 CFE_EVS_NO_FILTER - -#define CF_FILTERED_EVENT2 CF_IN_TRANS_OK_EID -#define CF_FILTER_MASK2 CFE_EVS_NO_FILTER - -#define CF_FILTERED_EVENT3 CF_OUT_TRANS_START_EID -#define CF_FILTER_MASK3 CFE_EVS_NO_FILTER - -#define CF_FILTERED_EVENT4 CF_OUT_TRANS_OK_EID -#define CF_FILTER_MASK4 CFE_EVS_NO_FILTER - -#define CF_FILTERED_EVENT5 0 -#define CF_FILTER_MASK5 CFE_EVS_NO_FILTER - -#define CF_FILTERED_EVENT6 0 -#define CF_FILTER_MASK6 CFE_EVS_NO_FILTER - -#define CF_FILTERED_EVENT7 0 -#define CF_FILTER_MASK7 CFE_EVS_NO_FILTER - -#define CF_FILTERED_EVENT8 0 -#define CF_FILTER_MASK8 CFE_EVS_NO_FILTER - - - -/** -** \cfcfg Time to wait for all apps to be started (in milliseconds) -** -** \par Description: -** Dictates the timeout for the #CFE_ES_WaitForStartupSync call that -** CF uses to ensure that TO or the downlink App has completed it's -** initialization which includes creating the semaphore needed by CF. -** -** \par Limits -** This parameter can't be larger than an unsigned 32 bit -** integer (4294967295). -** -** This should be greater than or equal to the Startup Sync timeout for -** any application in the Application Monitor Table. -*/ -#define CF_STARTUP_SYNC_TIMEOUT 65000 - - -/** -** \cfcfg Use fixed size packets (for outgoing PDUs) or not. -** -** \par Description: -** When sending PDUs, CF can be configured to place the PDUs in fixed-size -** pkts or let the PDU size determine the pkt size. The value defined -** must correspond to the CCSDS Total Message size which includes the PDU -** header, the CCSDS header and data. -** Set this value to 0 for variable pkt sizes. -** -** \par Limits -** This parameter can't be larger than CFE_SB_MAX_SB_MSG_SIZE (typically -** set to 32K or 64K bytes) -** -** If non-zero, this should be greater than or equal to the size needed to -** hold the largest PDU expected to be sent by the engine (typically a -** file data PDU which is derived from the CF table cfg param -** "OutgoingFileChunkSize"). -*/ -#define CF_SEND_FIXED_SIZE_PKTS 0 - - -/** -** \cfcfg Auto-Suspend, max transactions to suspend -** -** \par Description: -** When auto suspend is enabled, after EOF is sent the transaction number -** is logged in a buffer. The buffer size is defined in this parameter. -** After the following wakeup cmd is received, cF will check this buffer -** for transactions to suspend. They cannot be suspended at the time the -** EOF is sent because the engine is not designed to re-entrant. -** -** \par Limits -** This parameter must be greater than zero and can't be larger than an -** unsigned 32 bit integer (4294967295). -*/ -#define CF_AUTOSUSPEND_MAX_TRANS 1 - - - - -/** \cfcfg Mission specific version number for CF application -** -** \par Description: -** An application version number consists of four parts: -** major version number, minor version number, revision -** number and mission specific revision number. The mission -** specific revision number is defined here and the other -** parts are defined in "cf_version.h". -** -** \par Limits: -** Must be defined as a numeric value that is greater than -** or equal to zero. -*/ -#define CF_MISSION_REV 0 - - -/** \cfcfg Compile-time debug switch for CF application -** -** \par Description: -** CF_DEBUG should NOT be defined under normal conditions. It is to be used -** as a safety net during development, when a uart terminal is connected to -** the processor. When the code is compiled with CF_DEBUG defined, the code -** will issue OS_printfs in areas that would otherwise be quiet. -** -** \par Limits: -** Must be defined or commented out. -*/ -/* #define CF_DEBUG */ - - - -#endif /* CF_PLATFORM_CFG_H */ - -/************************/ -/* End of File Comment */ -/************************/ diff --git a/config/obc/cpd/inc/cfe_msgids.h b/config/obc/cpd/inc/cfe_msgids.h deleted file mode 100644 index 5a7b5231d..000000000 --- a/config/obc/cpd/inc/cfe_msgids.h +++ /dev/null @@ -1,58 +0,0 @@ -#ifndef CFE_MSGIDS_H -#define CFE_MSGIDS_H - -/* -** Includes -*/ - -#include "cfe_mission_cfg.h" - -/* -** cFE Command Message Id's -*/ -#define CFE_EVS_CMD_MID CFE_CMD_MID_BASE_CPU1 + CFE_EVS_CMD_MSG /* 0x1801 */ - /* Message ID 0x1802 is available */ -#define CFE_SB_CMD_MID CFE_CMD_MID_BASE_CPU1 + CFE_SB_CMD_MSG /* 0x1803 */ -#define CFE_TBL_CMD_MID CFE_CMD_MID_BASE_CPU1 + CFE_TBL_CMD_MSG /* 0x1804 */ -#define CFE_TIME_CMD_MID CFE_CMD_MID_BASE_CPU1 + CFE_TIME_CMD_MSG /* 0x1805 */ -#define CFE_ES_CMD_MID CFE_CMD_MID_BASE_CPU1 + CFE_ES_CMD_MSG /* 0x1806 */ - -#define CFE_ES_SEND_HK_MID CFE_CMD_MID_BASE_CPU1 + CFE_ES_SEND_HK_MSG /* 0x1808 */ -#define CFE_EVS_SEND_HK_MID CFE_CMD_MID_BASE_CPU1 + CFE_EVS_SEND_HK_MSG /* 0x1809 */ - /* Message ID 0x180A is available */ -#define CFE_SB_SEND_HK_MID CFE_CMD_MID_BASE_CPU1 + CFE_SB_SEND_HK_MSG /* 0x180B */ -#define CFE_TBL_SEND_HK_MID CFE_CMD_MID_BASE_CPU1 + CFE_TBL_SEND_HK_MSG /* 0x180C */ -#define CFE_TIME_SEND_HK_MID CFE_CMD_MID_BASE_CPU1 + CFE_TIME_SEND_HK_MSG /* 0x180D */ - -#define CFE_TIME_TONE_CMD_MID CFE_CMD_MID_BASE_CPU1 + CFE_TIME_TONE_CMD_MSG /* 0x1810 */ -#define CFE_TIME_1HZ_CMD_MID CFE_CMD_MID_BASE_CPU1 + CFE_TIME_1HZ_CMD_MSG /* 0x1811 */ - - -/* -** cFE Global Command Message Id's -*/ -#define CFE_TIME_DATA_CMD_MID CFE_CMD_MID_BASE_GLOB + CFE_TIME_DATA_CMD_MSG /* 0x1860 */ -#define CFE_TIME_FAKE_CMD_MID CFE_CMD_MID_BASE_GLOB + CFE_TIME_FAKE_CMD_MSG /* 0x1861 */ -#define CFE_TIME_SEND_CMD_MID CFE_CMD_MID_BASE_GLOB + CFE_TIME_SEND_CMD_MSG /* 0x1862 */ - - -/* -** CFE Telemetry Message Id's -*/ -#define CFE_ES_HK_TLM_MID CFE_TLM_MID_BASE_CPU1 + CFE_ES_HK_TLM_MSG /* 0x0800 */ -#define CFE_EVS_HK_TLM_MID CFE_TLM_MID_BASE_CPU1 + CFE_EVS_HK_TLM_MSG /* 0x0801 */ - /* Message ID 0x0802 is available */ -#define CFE_SB_HK_TLM_MID CFE_TLM_MID_BASE_CPU1 + CFE_SB_HK_TLM_MSG /* 0x0803 */ -#define CFE_TBL_HK_TLM_MID CFE_TLM_MID_BASE_CPU1 + CFE_TBL_HK_TLM_MSG /* 0x0804 */ -#define CFE_TIME_HK_TLM_MID CFE_TLM_MID_BASE_CPU1 + CFE_TIME_HK_TLM_MSG /* 0x0805 */ -#define CFE_TIME_DIAG_TLM_MID CFE_TLM_MID_BASE_CPU1 + CFE_TIME_DIAG_TLM_MSG /* 0x0806 */ -#define CFE_EVS_EVENT_MSG_MID CFE_TLM_MID_BASE_CPU1 + CFE_EVS_EVENT_MSG_MSG /* 0x0808 */ -#define CFE_SB_STATS_TLM_MID CFE_TLM_MID_BASE_CPU1 + CFE_SB_STATS_TLM_MSG /* 0x080A */ -#define CFE_ES_APP_TLM_MID CFE_TLM_MID_BASE_CPU1 + CFE_ES_APP_TLM_MSG /* 0x080B */ -#define CFE_TBL_REG_TLM_MID CFE_TLM_MID_BASE_CPU1 + CFE_TBL_REG_TLM_MSG /* 0x080C */ -#define CFE_SB_ALLSUBS_TLM_MID CFE_TLM_MID_BASE_CPU1 + CFE_SB_ALLSUBS_TLM_MSG /* 0x080D */ -#define CFE_SB_ONESUB_TLM_MID CFE_TLM_MID_BASE_CPU1 + CFE_SB_ONESUB_TLM_MSG /* 0x080E */ -#define CFE_ES_SHELL_TLM_MID CFE_TLM_MID_BASE_CPU1 + CFE_ES_SHELL_TLM_MSG /* 0x080F */ -#define CFE_ES_MEMSTATS_TLM_MID CFE_TLM_MID_BASE_CPU1 + CFE_ES_MEMSTATS_TLM_MSG /* 0x0810 */ - -#endif diff --git a/config/obc/cpd/inc/cfe_platform_cfg.h b/config/obc/cpd/inc/cfe_platform_cfg.h deleted file mode 100644 index aa22ccd6b..000000000 --- a/config/obc/cpd/inc/cfe_platform_cfg.h +++ /dev/null @@ -1,1770 +0,0 @@ -#ifndef CFE_PLATFORM_CFG_H -#define CFE_PLATFORM_CFG_H - -/* -** Allow reference to CFE_SPACECRAFT_ID (see CFE_TBL_VALID_ definitions below) -*/ -#include "cfe_mission_cfg.h" - -/* -** CPU Id for target Processor -*/ -#define CFE_CPU_ID 1 - -/* -** CPU Name for target Processor -*/ -#define CFE_CPU_NAME "CPU1" - -/** -** \cfesbcfg Maximum Number of Unique Message IDs SB Routing Table can hold -** -** \par Description: -** Dictates the maximum number of unique MsgIds the SB routing table will hold. -** This constant has a direct affect on the size of SB's tables and arrays. -** Keeping this count as low as possible will save memory. -** To see the run-time, high-water mark and the current utilization figures -** regarding this parameter, send an SB command to 'Send Statistics Pkt'. -** -** \par Limits -** This parameter has a lower limit of 1 and an upper limit of 1024. -** -*/ -#define CFE_SB_MAX_MSG_IDS 256 - - -/** -** \cfesbcfg Maximum Number of Unique Pipes SB Routing Table can hold -** -** \par Description: -** Dictates the maximum number of unique Pipes the SB routing table will hold. -** This constant has a direct affect on the size of SB's tables and arrays. -** Keeping this count as low as possible will save memory. -** To see the run-time, high-water mark and the current utilization figures -** regarding this parameter, send an SB command to 'Send Statistics Pkt'. -** -** \par Limits -** This parameter has a lower limit of 1 and an upper limit of 255. -** This parameter must also be less than or equal to OS_MAX_QUEUES -** -*/ -#define CFE_SB_MAX_PIPES 255 - - -/** -** \cfesbcfg Maximum Number of unique local destinations a single MsgId can have -** -** \par Description: -** Dictates the maximum number of unique local destinations a single MsgId can -** have. -** -** \par Limits -** This parameter has a lower limit of 1 and an upper limit of 64. -** -*/ -#define CFE_SB_MAX_DEST_PER_PKT 16 - - -/** -** \cfesbcfg Default Subscription Message Limit -** -** \par Description: -** Dictates the default Message Limit when using the #CFE_SB_Subscribe API. This will -** limit the number of messages with a specific message ID that can be received through -** a subscription. This only changes the default; other message limits can be set on a per -** subscription basis using #CFE_SB_SubscribeEx . -** -** \par Limits -** This parameter has a lower limit of 4 and an upper limit of 65535. -** -*/ -#define CFE_SB_DEFAULT_MSG_LIMIT 4 - - -/** -** \cfesbcfg Size of the SB buffer memory pool -** -** \par Description: -** Dictates the size of the SB memory pool. For each message the SB -** sends, the SB dynamically allocates from this memory pool, the memory needed -** to process the message. The memory needed to process each message is msg -** size + msg descriptor(#CFE_SB_BufferD_t). This memory pool is also used -** to allocate destination descriptors (#CFE_SB_DestinationD_t) during the -** subscription process. -** To see the run-time, high-water mark and the current utilization figures -** regarding this parameter, send an SB command to 'Send Statistics Pkt'. -** Some memory statistics have been added to the SB housekeeping packet. -** NOTE: It is important to monitor these statistics to ensure the desired -** memory margin is met. -** -** \par Limits -** This parameter has a lower limit of 512 and an upper limit 4.29G bytes. -** -*/ -#define CFE_SB_BUF_MEMORY_BYTES 524288 - - -/** -** \cfesbcfg Maximum depth allowed when creating an SB pipe -** -** \par Description: -** The value of this constant dictates the maximum pipe depth that an -** application may request. The pipe depth is given as a paramter in the -** #CFE_SB_CreatePipe API. -** -** \par Limits -** This parameter has a lower limit of 1 and an upper limit of 65535. -*/ -#define CFE_SB_MAX_PIPE_DEPTH 256 - - -/** -** \cfesbcfg Highest Valid Message Id -** -** \par Description: -** The value of this constant dictates the size of the SB message map. The SB -** messsage map is a lookup table that provides the routing table index for -** fast access into the routing table.The default setting of 0x1FFF was chosen -** to save memory for CCSDS implementations where the CCSDS Version number -** (3 MSB's of MsgId) would remain constant throughout the mission. This -** reduces the message map from 128Kbytes to 16Kbytes.See CFE_FSW_DCR 504 for -** more details. -** -** \par Limits -** This parameter has a lower limit of 1 and an upper limit of 0xFFFF. -*/ -#define CFE_SB_HIGHEST_VALID_MSGID 0x1FFF - - -/** -** \cfesbcfg Default Routing Information Filename -** -** \par Description: -** The value of this constant defines the filename used to store the software -** bus routing information. This filename is used only when no filename is -** specified in the command. -** -** \par Limits -** The length of each string, including the NULL terminator cannot exceed the -** #OS_MAX_PATH_LEN value. -*/ -#define CFE_SB_DEFAULT_ROUTING_FILENAME "/ram/cfe_sb_route.dat" - - -/** -** \cfesbcfg Default Pipe Information Filename -** -** \par Description: -** The value of this constant defines the filename used to store the software -** bus pipe information. This filename is used only when no filename is -** specified in the command. -** -** \par Limits -** The length of each string, including the NULL terminator cannot exceed the -** #OS_MAX_PATH_LEN value. -*/ -#define CFE_SB_DEFAULT_PIPE_FILENAME "/ram/cfe_sb_pipe.dat" - - -/** -** \cfesbcfg Default Message Map Filename -** -** \par Description: -** The value of this constant defines the filename used to store the software -** bus message map information. This filename is used only when no filename is -** specified in the command. The message map is a lookup table (array of 16bit -** words) that has an element for each possible MsgId value and holds the -** routing table index for that MsgId. The Msg Map provides fast access to the -** destinations of a message. -** -** \par Limits -** The length of each string, including the NULL terminator cannot exceed the -** #OS_MAX_PATH_LEN value. -*/ -#define CFE_SB_DEFAULT_MAP_FILENAME "/ram/cfe_sb_msgmap.dat" - - -/** -** \cfesbcfg SB Event Filtering -** -** \par Description: -** This group of configuration paramters dictates what SB events will be -** filtered through EVS. The filtering will begin after the SB task initializes -** and stay in effect until a cmd to EVS changes it. -** This allows the operator to set limits on the number of event messages that -** are sent during system initialization. -** NOTE: Set all unused event values and mask values to zero -** -** \par Limits -** This filtering applies only to SB events. -** These parameters have a lower limit of 0 and an upper limit of 65535. -*/ -#define CFE_SB_FILTERED_EVENT1 CFE_SB_SEND_NO_SUBS_EID -#define CFE_SB_FILTER_MASK1 CFE_EVS_FIRST_4_STOP - -#define CFE_SB_FILTERED_EVENT2 CFE_SB_DUP_SUBSCRIP_EID -#define CFE_SB_FILTER_MASK2 CFE_EVS_FIRST_4_STOP - -#define CFE_SB_FILTERED_EVENT3 CFE_SB_MSGID_LIM_ERR_EID -#define CFE_SB_FILTER_MASK3 CFE_EVS_FIRST_16_STOP - -#define CFE_SB_FILTERED_EVENT4 CFE_SB_Q_FULL_ERR_EID -#define CFE_SB_FILTER_MASK4 CFE_EVS_FIRST_16_STOP - -#define CFE_SB_FILTERED_EVENT5 0 -#define CFE_SB_FILTER_MASK5 CFE_EVS_NO_FILTER - -#define CFE_SB_FILTERED_EVENT6 0 -#define CFE_SB_FILTER_MASK6 CFE_EVS_NO_FILTER - -#define CFE_SB_FILTERED_EVENT7 0 -#define CFE_SB_FILTER_MASK7 CFE_EVS_NO_FILTER - -#define CFE_SB_FILTERED_EVENT8 0 -#define CFE_SB_FILTER_MASK8 CFE_EVS_NO_FILTER - - -/** -** \cfeescfg Define SB Memory Pool Block Sizes -** -** \par Description: -** Software Bus Memory Pool Block Sizes -** -** \par Limits -** These sizes MUST be increasing and MUST be an integral multiple of 4. -** The number of block sizes defined cannot exceed -** #CFE_ES_MAX_MEMPOOL_BLOCK_SIZES -*/ -#define CFE_SB_MEM_BLOCK_SIZE_01 8 -#define CFE_SB_MEM_BLOCK_SIZE_02 16 -#define CFE_SB_MEM_BLOCK_SIZE_03 20 -#define CFE_SB_MEM_BLOCK_SIZE_04 36 -#define CFE_SB_MEM_BLOCK_SIZE_05 64 -#define CFE_SB_MEM_BLOCK_SIZE_06 96 -#define CFE_SB_MEM_BLOCK_SIZE_07 128 -#define CFE_SB_MEM_BLOCK_SIZE_08 160 -#define CFE_SB_MEM_BLOCK_SIZE_09 256 -#define CFE_SB_MEM_BLOCK_SIZE_10 512 -#define CFE_SB_MEM_BLOCK_SIZE_11 1024 -#define CFE_SB_MEM_BLOCK_SIZE_12 2048 -#define CFE_SB_MEM_BLOCK_SIZE_13 4096 -#define CFE_SB_MEM_BLOCK_SIZE_14 8192 -#define CFE_SB_MEM_BLOCK_SIZE_15 16384 -#define CFE_SB_MEM_BLOCK_SIZE_16 32768 -#define CFE_SB_MAX_BLOCK_SIZE (CFE_SB_MAX_SB_MSG_SIZE + 40) - -/** -** \cfesbcfg Define Default Sender Information Storage Mode -** -** \par Description: -** Defines the default mode for the storing of sender information when sending -** a software bus message. If set to 1, the sender information will be stored. -** If set to 0, the sender information will not be stored. -** -** \par Limits -** There is a lower limit of 0 and an upper limit of 1 on this configuration -** paramater. -*/ -#define CFE_SB_DEFAULT_REPORT_SENDER 1 - - -/** -** \cfetimecfg Time Server or Time Client Selection -** -** \par Description: -** This configuration parameter selects whether the Time task functions as a -** time "server" or "client". A time server generates the "time at the tone" -** packet which is received by time clients. -** -** \par Limits -** Enable one, and only one by defining either CFE_TIME_CFG_SERVER or -** CFE_TIME_CFG_CLIENT AS TRUE. The other must be defined as FALSE. -*/ -#define CFE_TIME_CFG_SERVER TRUE -#define CFE_TIME_CFG_CLIENT FALSE - -/** -** \cfetimecfg Local MET or Virtual MET Selection for Time Servers -** -** \par Description: -** Depending on the specific hardware system configuration, it may be possible -** for Time Servers to read the "local" MET from a h/w register rather than -** having to track the MET as the count of tone signal interrupts (virtual MET) -** -** Time Clients must be defined as using a virtual MET. Also, a Time Server -** cannot be defined as having both a h/w MET and an external time source (they -** both cannot synchronize to the same tone). -** -** Note: "disable" this define (set to FALSE) only for Time Servers with local hardware -** that supports a h/w MET that is synchronized to the tone signal !!! -** -** \par Limits -** Only applies if #CFE_TIME_CFG_SERVER is set to TRUE. -*/ -#define CFE_TIME_CFG_VIRTUAL TRUE - - -/** -** \cfetimecfg Include or Exclude the Primary/Redundant Tone Selection Cmd -** -** \par Description: -** Depending on the specific hardware system configuration, it may be possible -** to switch between a primary and redundant tone signal. If supported by -** hardware, this definitions will enable command interfaces to select the -** active tone signal. Both Time Clients and Time Servers support this feature. -** Note: Set the CFE_TIME_CFG_SIGNAL define to TRUE to enable tone signal commands. -** -** \par Limits -** Not Applicable -*/ -#define CFE_TIME_CFG_SIGNAL FALSE - - -/** -** \cfetimecfg Include or Exclude the Internal/External Time Source Selection Cmd -** -** \par Description: -** By default, Time Servers maintain time using an internal MET which may be a -** h/w register or software counter, depending on available hardware. The -** following definition enables command interfaces to switch between an -** internal MET, or external time data received from one of several supported -** external time sources. Only a Time Server may be configured to use external -** time data. -** Note: Set the CFE_TIME_CFG_SOURCE define to TRUE to include the Time Source -** Selection Command (command allows selection between the internal -** or external time source). Then choose the external source with the -** CFE_TIME_CFG_SRC_??? define. -** -** \par Limits -** Only applies if #CFE_TIME_CFG_SERVER is set to TRUE. -*/ -#define CFE_TIME_CFG_SOURCE FALSE - - -/** -** \cfetimecfg Choose the External Time Source for Server only -** -** \par Description: -** If #CFE_TIME_CFG_SOURCE is set to TRUE, then one of the following external time -** source types must also be set to TRUE. Do not set any of the external time -** source types to TRUE unless #CFE_TIME_CFG_SOURCE is set to TRUE. -** -** \par Limits -** -# If #CFE_TIME_CFG_SOURCE is set to TRUE then one and only one of the following -** three external time sources can and must be set TRUE: -** #CFE_TIME_CFG_SRC_MET, #CFE_TIME_CFG_SRC_GPS, #CFE_TIME_CFG_SRC_TIME -** -# Only applies if #CFE_TIME_CFG_SERVER is set to TRUE. -*/ -#define CFE_TIME_CFG_SRC_MET FALSE -#define CFE_TIME_CFG_SRC_GPS FALSE -#define CFE_TIME_CFG_SRC_TIME FALSE - - -/** -** \cfetimecfg Define the Max Delta Limits for Time Servers using an Ext Time Source -** -** \par Description: -** If #CFE_TIME_CFG_SOURCE is set to TRUE and one of the external time sources is -** also set to TRUE, then the delta time limits for range checking is used. -** -** When a new time value is received from an external source, the value is -** compared against the "expected" time value. If the delta exceeds the -** following defined amount, then the new time data will be ignored. This range -** checking is only performed after the clock state has been commanded to -** "valid". Until then, external time data is accepted unconditionally. -** -** \par Limits -** Applies only if both #CFE_TIME_CFG_SERVER and #CFE_TIME_CFG_SOURCE are set -** to TRUE. -*/ -#define CFE_TIME_MAX_DELTA_SECS 0 -#define CFE_TIME_MAX_DELTA_SUBS 500000 - - -/** -** \cfetimecfg Define the Local Clock Rollover Value in seconds and subseconds -** -** \par Description: -** Specifies the capability of the local clock. Indicates the time at which -** the local clock rolls over. -** -** \par Limits -** Not Applicable -*/ -#define CFE_TIME_MAX_LOCAL_SECS 27 -#define CFE_TIME_MAX_LOCAL_SUBS 0 - - -/** -** \cfetimecfg Define Timing Limits From One Tone To The Next -** -** \par Description: -** Defines limits to the timing of the 1Hz tone signal. A tone signal is valid -** only if it arrives within one second (plus or minus the tone limit) from -** the previous tone signal.Units are microseconds as measured with the local -** clock. -** -** \par Limits -** Not Applicable -*/ -#define CFE_TIME_CFG_TONE_LIMIT 20000 - - - -/** -** \cfetimecfg Define Time to Start Flywheel Since Last Tone -** -** \par Description: -** Define time to enter flywheel mode (in seconds since last tone data update) -** Units are microseconds as measured with the local clock. -** -** \par Limits -** Not Applicable -*/ -#define CFE_TIME_CFG_START_FLY 2 - - -/** -** \cfetimecfg Define Periodic Time to Update Local Clock Tone Latch -** -** \par Description: -** Define Periodic Time to Update Local Clock Tone Latch. Applies only when -** in flywheel mode. This define dicates the period at which the simulated -** 'last tone' time is updated. Units are seconds. -** -** \par Limits -** Not Applicable -*/ -#define CFE_TIME_CFG_LATCH_FLY 8 - - -/** -** \cfetimecfg Define Maximum number of Time Synchronization Callbacks allowed -** -** \par Description: -** Define maximum number of Time Synchronization callback functions allowed. -** Each callback is called whenever cFE TIME receives a valid time synchronization -** signal (typically 1 Hz). -** -** \par Limits -** Not Applicable -*/ -#define CFE_TIME_MAX_NUM_SYNCH_FUNCS 4 - - -/** -** \cfetimecfg Enable (or disable) the 1HZ time command packet -** -** \par Description: -** Controls the generation of a packet that may be used as a 1HZ wakeup -** signal for applications that subscribe to CFE_TIME_1HZ_CMD_MID. -** Disable the packet to avoid 'no subscriber' errors that result from -** sending a packet when there are no subscribers to the packet. -** -** \par Limits -** Enable the 1HZ packet by setting #CFE_TIME_ENA_1HZ_CMD_PKT to TRUE. -** Disable the 1HZ packet by setting #CFE_TIME_ENA_1HZ_CMD_PKT to FALSE. -*/ -#define CFE_TIME_ENA_1HZ_CMD_PKT TRUE - - -/** -** \cfeescfg Define Max Number of Applications -** -** \par Description: -** Defines the maximum number of applications that can be loaded into the -** system. This number does not include child tasks. -** -** \par Limits -** There is a lower limit of 6 and an upper limit of 64 on this configuration -** paramater. The lower limit corresponds to the cFE internal applications. -*/ -#define CFE_ES_MAX_APPLICATIONS 64 - - -/** -** \cfeescfg Define Max Number of Shared libraries -** -** \par Description: -** Defines the maximum number of cFE Shared libraries that can be loaded into -** the system. -** -** \par Limits -** There is a lower limit of 1 and an upper limit of 64 on this configuration -** paramater. -*/ -#define CFE_ES_MAX_LIBRARIES 10 - -/** -** \cfeescfg Define Max Number of ER (Exception and Reset) log entries -** -** \par Description: -** Defines the maximum number of ER (Exception and Reset) log entries -** -** \par Limits -** There is a lower limit of 10 and an upper limit of 128 on this configuration -** paramater. -*/ -#define CFE_ES_ER_LOG_ENTRIES 20 - -/** \cfeescfg Maximum size of CPU Context in ES Error Log -** -** \par Description: -** This should be large enough to accommodate the CPU context -** information supplied by the PSP on the given platform. -** -** \par Limits: -** Must be greater than zero and a multiple of sizeof(uint32). -** Limited only by the available memory and the number of entries -** in the error log. Any context information beyond this size will -** be truncated. -*/ -#define CFE_ES_ER_LOG_MAX_CONTEXT_SIZE 128 - - -/** -** \cfeescfg Define Size of the cFE System Log. -** -** \par Description: -** Defines the size in bytes of the cFE system log. The system log holds -** variable length strings that are terminated by a linefeed and null -** character. -** -** \par Limits -** There is a lower limit of 512 and an upper limit of 16384 on this -** configuration paramater. -*/ -#define CFE_ES_SYSTEM_LOG_SIZE 3072 - - -/** -** \cfeescfg Define Number of entries in the ES Object table -** -** \par Description: -** Defines the number of entries in the ES Object table. This table controls -** the core cFE startup. -** -** \par Limits -** There is a lower limit of 15 and an upper limit of 50 on this configuration -** paramater. -*/ -#define CFE_ES_OBJECT_TABLE_SIZE 30 - - -/** -** \cfeescfg Define Max Number of Generic Counters -** -** \par Description: -** Defines the maximum number of Generic Counters that can be registered. -** -** \par Limits -** This parameter has a lower limit of 1 and an upper limit of 65535. -*/ -#define CFE_ES_MAX_GEN_COUNTERS 8 - - -/** -** \cfeescfg Define ES Application Control Scan Rate -** -** \par Description: -** ES Application Control Scan Rate. This parameter controls the speed that ES -** scans the Application Table looking for App Delete/Restart/Reload requests. -** All Applications are deleted, restarted, or reloaded by the ES Application. -** ES will periodically scan for control requests to process. The scan rate is -** controlled by this parameter, which is given in milliseconds. A value of -** 1000 means that ES will scan the Application Table once per second. Be -** careful not to set the value of this too low, because ES will use more CPU -** cycles scanning the table. -** -** \par Limits -** There is a lower limit of 100 and an upper limit of 20000 on this -** configuration paramater. millisecond units. -*/ -#define CFE_ES_APP_SCAN_RATE 1000 - - -/** -** \cfeescfg Define ES Application Kill Timeout -** -** \par Description: -** ES Application Kill Timeout. This parameter controls the number of -** "scan periods" that ES will wait for an application to Exit after getting -** the signal Delete, Reload or Restart. The sequence works as follows: -** -# ES will set the control request for an App to Delete/Restart/Reload and -** set this kill timer to the value in this parameter. -** -# If the App is reponding and Calls it's RunLoop function, it will drop out -** of it's main loop and call CFE_ES_ExitApp. Once it calls Exit App, then -** ES can delete, restart, or reload the app the next time it scans the app -** table. -** -# If the App is not responding, the ES App will decrement this Kill Timeout -** value each time it runs. If the timeout value reaches zero, ES will kill -** the app. -** -** The Kill timeout value depends on the #CFE_ES_APP_SCAN_RATE. If the Scan Rate -** is 1000, or 1 second, and this #CFE_ES_APP_KILL_TIMEOUT is set to 5, then it -** will take 5 seconds to kill a non-responding App. -** If the Scan Rate is 250, or 1/4 second, and the #CFE_ES_APP_KILL_TIMEOUT is -** set to 2, then it will take 1/2 second to time out. -** -** \par Limits -** There is a lower limit of 1 and an upper limit of 100 on this configuration -** paramater. Units are number of #CFE_ES_APP_SCAN_RATE cycles. -*/ -#define CFE_ES_APP_KILL_TIMEOUT 5 - - -/** -** \cfeescfg ES Ram Disk Sector Size -** -** \par Description: -** Defines the ram disk sector size. The ram disk is 1 of 4 memory areas that -** are preserved on a processor reset. -** NOTE: Changing this value changes memory allocation, and may -** require changes to platform specific values (in CFE_PSP) such as -** USER_RESERVED_MEM in VxWorks depending on the memory areas -** being used for preserved data and on OS specific behavior. -** -** \par Limits -** There is a lower limit of 128 and an upper limit of 4096 on this -** configuration paramater. -*/ -#define CFE_ES_RAM_DISK_SECTOR_SIZE 512 - - -/** -** \cfeescfg ES Ram Disk Number of Sectors -** -** \par Description: -** Defines the ram disk number of sectors. The ram disk is one of four memory -** areas that are preserved on a processor reset. -** NOTE: Changing this value changes memory allocation, and may -** require changes to platform specific values (in CFE_PSP) such as -** USER_RESERVED_MEM in VxWorks depending on the memory areas -** being used for preserved data and on OS specific behavior. -** -** \par Limits -** There is a lower limit of 128 and an upper limit of 8192 on this -** configuration paramater. -*/ -#define CFE_ES_RAM_DISK_NUM_SECTORS 4096 - -/** -** \cfeescfg Percentage of Ram Disk Reserved for Decompressing Apps -** -** \par Description: -** The #CFE_ES_RAM_DISK_PERCENT_RESERVED parameter is used to make sure that the -** Volatile ( RAM ) Disk has a defined amount of free space during a processor -** reset. The cFE uses the Volatile disk to decompress cFE applications during -** system startup. If this Volatile disk happens to get filled with logs and -** misc files, then a processor reset may not work, because there will be no -** room to decompress cFE apps. To solve that problem, this parameter sets the -** "Low Water Mark" for disk space on a Processor reset. It should be set to -** allow the largest cFE Application to be decompressed. -** During a Processor reset, if there is not sufficient space left on the disk, -** it will be re-formatted in order to clear up some space. -** -** This feature can be turned OFF by setting the parameter to 0. -** -** \par Limits -** There is a lower limit of 0 and an upper limit of 75 on this configuration -** paramater.Units are percentage. A setting of zero will turn this feature -** off. -*/ -#define CFE_ES_RAM_DISK_PERCENT_RESERVED 30 - - -/** -** \cfeescfg RAM Disk Mount string -** -** \par Description: -** The #CFE_ES_RAM_DISK_MOUNT_STRING parameter is used to set the cFE mount path -** for the CFE RAM disk. This is a parameter for missions that do not want to -** use the default value of "/ram", or for missions that need to have a different -** value for different CPUs or Spacecraft. -** Note that the vxWorks OSAL cannot currently handle names that have more than one -** path separator in it. The names "/ram", "/ramdisk", "/disk123" will all work, but -** "/disks/ram" will not. -** Multiple separators can be used with the posix or RTEMS ports. -** -*/ -#define CFE_ES_RAM_DISK_MOUNT_STRING "/ram" - - -/** -** \cfeescfg Define Critical Data Store Size -** -** \par Description: -** Defines the Critical Data Store (CDS) area size in bytes size. The CDS is -** one of four memory areas that are preserved during a processor reset. -** NOTE: Changing this value changes memory allocation, and may -** require changes to platform specific values (in CFE_PSP) such as -** USER_RESERVED_MEM in VxWorks depending on the memory areas -** being used for preserved data and on OS specific behavior. -** -** \par Limits -** There is a lower limit of 8192 and an upper limit of 2097152 (2MBytes) on -** this configuration paramater. -*/ -#define CFE_ES_CDS_SIZE ( 128 * 2048 ) - - -/** -** \cfeescfg Define User Reserved Memory Size -** -** \par Description: -** User Reserved Memory Size. This is the size in bytes of the cFE User -** reserved Memory area. This is a block of memory that is available for cFE -** application use. The address is obtained by calling -** #CFE_PSP_GetUserReservedArea. The User Reserved Memory is one of four memory -** areas that are preserved during a processor reset. -** NOTE: Changing this value changes memory allocation, and may -** require changes to platform specific values (in CFE_PSP) such as -** USER_RESERVED_MEM in VxWorks depending on the memory areas -** being used for preserved data and on OS specific behavior. -** -** \par Limits -** There is a lower limit of 1024 and an upper limit of 33554432 (32Mbytes) on -** this configuration paramater. -*/ -#define CFE_ES_USER_RESERVED_SIZE ( 1024 * 2048 ) - - -/** -** \cfeescfg Define ES Reset Area Size -** -** \par Description: -** The ES Reset Area Size. This is the size in bytes of the cFE Reset variable -** and log area. This is a block of memory used by the cFE to store the system -** log ER Log and critical reset variables. This is 4 of 4 of the memory areas -** that are preserved during a processor reset. -** Note: This area must be sized large enough to hold all of the data -** structures. It should be automatically sized based on the #CFE_ES_ResetData_t -** type, but circular dependancies in the headers prevent it from being defined -** this way. -** NOTE: Changing this value changes memory allocation, and may -** require changes to platform specific values (in CFE_PSP) such as -** USER_RESERVED_MEM in VxWorks depending on the memory areas -** being used for preserved data and on OS specific behavior. -** -** \par Limits -** There is a lower limit of 153600 (150KBytes) and an upper limit of 2097152 -** (2MBytes) on this configuration paramater. -*/ -#define CFE_ES_RESET_AREA_SIZE ( 170 * 2048 ) - -/** -** \cfeescfg Define Default Memory Pool Alignment Mode -** -** \par Description: -** Defines the default mode for the requirement to align ES Mempool buffer. -** If this define is set, the memory pool must be aligned or the call to -** create a new memory pool will be rejected with a CFE_ES_BAD_ARGUMENT -** return code. -** -** \par Limits -** If CFE_ES_MEMPOOL_ALIGNED is defined, the alignment check is enabled. -** If CFE_ES_MEMPOOL_ALIGNED is not defined, the alignment check is not -** compiled in. -*/ -#define CFE_ES_MEMPOOL_ALIGNED 1 - -/** -** \cfeescfg ES Nonvolatile Startup Filename -** -** \par Description: -** The value of this constant defines the path and name of the file that -** contains a list of modules that will be loaded and started by the cFE after -** the cFE finishes its startup sequence. -** -** \par Limits -** The length of each string, including the NULL terminator cannot exceed the -** #OS_MAX_PATH_LEN value. -*/ -#define CFE_ES_NONVOL_STARTUP_FILE "/cf/apps/cfe_es_startup.scr" - - -/** -** \cfeescfg ES Volatile Startup Filename -** -** \par Description: -** The value of this constant defines the path and name of the file that -** contains a list of modules that will be loaded and started by the cFE after -** the cFE finishes its startup sequence. -** -** \par Limits -** The length of each string, including the NULL terminator cannot exceed the -** #OS_MAX_PATH_LEN value. -*/ -#define CFE_ES_VOLATILE_STARTUP_FILE "/ram/apps/cfe_es_startup.scr" - -/** -** \cfeescfg Default Shell Filename -** -** \par Description: -** The value of this constant defines the filename used to store the shell -** output after a shell command is received by ES. This file contains the -** entire shell output. The fsw also sends the shell output in series of fixed -** size telemetry packets. This filename is used only when no filename -** is specified in the shell command. -** -** \par Limits -** The length of each string, including the NULL terminator cannot exceed the -** #OS_MAX_PATH_LEN value. -*/ -#define CFE_ES_DEFAULT_SHELL_FILENAME "/ram/ShellCmd.out" - - -/** -** \cfeescfg Define Max Shell Command Size -** -** \par Description: -** Defines the maximum size in characters of the shell command. -** -** \par Limits -** There is a lower limit of 64 and an upper limit of 128 on this configuration -** paramater. Units are characters. -*/ -#define CFE_ES_MAX_SHELL_CMD 64 - - -/** -** \cfeescfg Define Shell Command Telemetry Pkt Segment Size -** -** \par Description: -** Defines the size of the shell command tlm packet segments.The shell command -** output size is dependant on the shell command itself. If the shell output -** size is greater than the size of the packet defined here, the fsw will -** generate a series of tlm packets (of the size defined here) that can be -** reconstructed by the ground system. -** -** \par Limits -** There is a lower limit of 32 and an upper limit of 128 on this configuration -** paramater. -*/ -#define CFE_ES_MAX_SHELL_PKT 64 - - -/** -** \cfeescfg Default Application Information Filename -** -** \par Description: -** The value of this constant defines the filename used to store information -** pertaining to all of the Applications that are registered with Executive -** Services. This filename is used only when no filename is specified in the -** the command to query all system apps. -** -** \par Limits -** The length of each string, including the NULL terminator cannot exceed the -** #OS_MAX_PATH_LEN value. -*/ -#define CFE_ES_DEFAULT_APP_LOG_FILE "/ram/cfe_es_app_info.log" - -/** -** \cfeescfg Default Application Information Filename -** -** \par Description: -** The value of this constant defines the filename used to store information -** pertaining to all of the Applications that are registered with Executive -** Services. This filename is used only when no filename is specified in the -** the command to query all system tasks. -** -** \par Limits -** The length of each string, including the NULL terminator cannot exceed the -** #OS_MAX_PATH_LEN value. -*/ -#define CFE_ES_DEFAULT_TASK_LOG_FILE "/ram/cfe_es_task_info.log" - -/** -** \cfeescfg Default System Log Filename -** -** \par Description: -** The value of this constant defines the filename used to store important -** information (as ASCII text strings) that might not be able to be sent in an -** Event Message. This filename is used only when no filename is specified in -** the command to dump the system log. No file specified in the cmd means the -** first character in the cmd filename is a NULL terminator (zero). -** -** \par Limits -** The length of each string, including the NULL terminator cannot exceed the -** #OS_MAX_PATH_LEN value. -*/ -#define CFE_ES_DEFAULT_SYSLOG_FILE "/ram/cfe_es_syslog.log" - -/** -** \cfeescfg Default Exception and Reset (ER) Log Filename -** -** \par Description: -** The value of this constant defines the filename used to store the -** Exception and Reset (ER) Log. This filename is used only when no filename is -** specified in the command to dump the ER log. No file specified in the cmd -** means the first character in the cmd filename is a NULL terminator (zero). -** -** \par Limits -** The length of each string, including the NULL terminator cannot exceed the -** #OS_MAX_PATH_LEN value. -*/ -#define CFE_ES_DEFAULT_ER_LOG_FILE "/ram/cfe_erlog.log" - -/** -** \cfeescfg Default Performance Data Filename -** -** \par Description: -** The value of this constant defines the filename used to store the -** Performance Data. This filename is used only when no filename is specified -** in the command to stop performance data collecting. -** -** \par Limits -** The length of each string, including the NULL terminator cannot exceed the -** #OS_MAX_PATH_LEN value. -*/ -#define CFE_ES_DEFAULT_PERF_DUMP_FILENAME "/ram/cfe_es_perf.dat" - - -/** -** \cfeescfg Default Critical Data Store Registry Filename -** -** \par Description: -** The value of this constant defines the filename used to store the -** Critical Data Store Registry. This filename is used only when no filename is -** specified in the command to stop performance data collecting. -** -** \par Limits -** The length of each string, including the NULL terminator cannot exceed the -** #OS_MAX_PATH_LEN value. -*/ -#define CFE_ES_DEFAULT_CDS_REG_DUMP_FILE "/ram/cfe_cds_reg.log" - -/** -** \cfeescfg Define Default System Log Mode -** -** \par Description: -** Defines the default mode for the operation of the ES System log. The log may -** operate in either Overwrite mode = 0, where once the log becomes full the -** oldest message in the log will be overwritten, or Discard mode = 1, where -** once the log becomes full the contents of the log are preserved and the new -** event is discarded. This constant may hold a value of either 0 or 1 -** depending on the desired default log mode. Overwrite Mode = 0, Discard -** Mode = 1. -** -** \par Limits -** There is a lower limit of 0 and an upper limit of 1 on this configuration -** paramater. -*/ -#define CFE_ES_DEFAULT_SYSLOG_MODE 1 - -/** -** \cfeescfg Define Max Number of Performance IDs -** -** \par Description: -** Defines the maximum number of perf ids allowed. -** -** -** \par Limits -** This number must always be divisible by 32. There is a lower limit of 32 and -** an upper limit of 512 on this configuration paramater. -*/ -#define CFE_ES_PERF_MAX_IDS 128 - -/** -** \cfeescfg Define Max Size of Performance Data Buffer -** -** \par Description: -** Defines the maximum size of the performance data buffer. Units are number of -** performance data entries. An entry is defined by a 32 bit data word followed -** by a 64 bit time stamp. -** -** \par Limits -** There is a lower limit of 1025 and an upper limit of 1048576 (1 Meg) on this -** configuration paramater. The units are number of entries. An entry is -** defined by a 32 bit data word followed by a 64 bit time stamp. -*/ -#define CFE_ES_PERF_DATA_BUFFER_SIZE 10000 - - -/** -** \cfeescfg Define Filter Mask Setting for Disabling All Performance Entries -** -** \par Description: -** Defines the filter mask for disabling all performance entries. The value is a -** bit mask. For each bit, 0 means the corresponding entry is disabled and -** 1 means it is enabled. -*/ -#define CFE_ES_PERF_FILTMASK_NONE 0 - -/** -** \cfeescfg Define Filter Mask Setting for Enabling All Performance Entries -** -** \par Description: -** Defines the filter mask for enabling all performance entries. The value is a -** bit mask. For each bit, 0 means the corresponding entry is disabled and -** 1 means it is enabled. -*/ -#define CFE_ES_PERF_FILTMASK_ALL ~CFE_ES_PERF_FILTMASK_NONE - -/** -** \cfeescfg Define Default Filter Mask Setting for Performance Data Buffer -** -** \par Description: -** Defines the default filter mask for the performance data buffer. The value is a -** bit mask. For each bit, 0 means the corresponding entry is disabled and 1 -** means it is enabled. -** -*/ -#define CFE_ES_PERF_FILTMASK_INIT CFE_ES_PERF_FILTMASK_ALL - - -/** -** \cfeescfg Define Default Filter Trigger Setting for Disabling All Performance Entries -** -** \par Description: -** Defines the default trigger mask for disabling all performance data entries. The value -** is a bit mask. For each bit, 0 means the trigger for the corresponding entry is -** disabled and 1 means it is enabled. -** -*/ -#define CFE_ES_PERF_TRIGMASK_NONE 0 - -/** -** \cfeescfg Define Filter Trigger Setting for Enabling All Performance Entries -** -** \par Description: -** Defines the trigger mask for enabling all performance data entries. The value is -** a bit mask. For each bit, 0 means the trigger for the corresponding entry is -** disabled and 1 means it is enabled. -** -*/ -#define CFE_ES_PERF_TRIGMASK_ALL ~CFE_ES_PERF_TRIGMASK_NONE - -/** -** \cfeescfg Define Default Filter Trigger Setting for Performance Data Buffer -** -** \par Description: -** Defines the default trigger mask for the performance data buffer. The value is a -** 32-bit mask. For each bit, 0 means the trigger for the corresponding entry is -** disabled and 1 means it is enabled. -** -*/ -#define CFE_ES_PERF_TRIGMASK_INIT CFE_ES_PERF_TRIGMASK_NONE - -/** -** \cfeescfg Define Performance Analyzer Child Task Priority -** -** \par Description: -** This parameter defines the priority of the child task spawed by the -** Executive Services to write performance data to a file. Lower numbers -** are higher priority, with 1 being the highest priority in the case of a -** child task. -** -** \par Limits -** Valid range for a child task is 1 to 255 however, the priority cannot -** be higher (lower number) than the ES parent application priority. -*/ -#define CFE_ES_PERF_CHILD_PRIORITY 200 - -/** -** \cfeescfg Define Performance Analyzer Child Task Stack Size -** -** \par Description: -** This parameter defines the stack size of the child task spawed by the -** Executive Services to write performance data to a file. -** -** \par Limits -** It is recommended this parameter be greater than or equal to 4KB. This parameter -** is limited by the maximum value allowed by the data type. In this case, the data -** type is an unsigned 32-bit integer, so the valid range is 0 to 0xFFFFFFFF. -*/ -#define CFE_ES_PERF_CHILD_STACK_SIZE 16384 - -/** -** \cfeescfg Define Performance Analyzer Child Task Delay -** -** \par Description: -** This parameter defines the delay time (in milliseconds) between performance -** data file writes performed by the Executive Services Performace Analyzer -** Child Task. -** -** \par Limits -** It is recommended this parameter be greater than or equal to 20ms. This parameter -** is limited by the maximum value allowed by the data type. In this case, the data -** type is an unsigned 32-bit integer, so the valid range is 0 to 0xFFFFFFFF. -*/ -#define CFE_ES_PERF_CHILD_MS_DELAY 20 - -/** -** \cfeescfg Define Performance Analyzer Child Task Number of Entries Between Delay -** -** \par Description: -** This parameter defines the number of performace analyzer entries the Performace -** Analyzer Child Task will write to the file between delays. -** -*/ -#define CFE_ES_PERF_ENTRIES_BTWN_DLYS 50 - -/** -** \cfeescfg Define Default Stack Size for an Application -** -** \par Description: -** This parameter defines a default stack size. This parameter is used by the -** cFE Core Applications. -** -** \par Limits -** There is a lower limit of 2048 and an upper limit of 16384 on this -** configuration paramater. -*/ -#define CFE_ES_DEFAULT_STACK_SIZE 16384 - - -/** -** \cfeescfg Define EVS Task Priority -** -** \par Description: -** Defines the cFE_EVS Task priority. -** -** \par Limits -** Not Applicable -*/ -#define CFE_EVS_START_TASK_PRIORITY 61 - -/** -** \cfeescfg Define EVS Task Stack Size -** -** \par Description: -** Defines the cFE_EVS Task Stack Size -** -** \par Limits -** There is a lower limit of 2048 and an upper limit of 16384 on this -** configuration paramater. -*/ -#define CFE_EVS_START_TASK_STACK_SIZE CFE_ES_DEFAULT_STACK_SIZE - -#define CFE_EVS_START_TASK_FLAGS OS_ENABLE_CORE_0 - -/** -** \cfeescfg Define SB Task Priority -** -** \par Description: -** Defines the cFE_SB Task priority. -** -** \par Limits -** Not Applicable -*/ -#define CFE_SB_START_TASK_PRIORITY 64 - -/** -** \cfeescfg Define SB Task Stack Size -** -** \par Description: -** Defines the cFE_SB Task Stack Size -** -** \par Limits -** There is a lower limit of 2048 and an upper limit of 16384 on this -** configuration paramater. -*/ -#define CFE_SB_START_TASK_STACK_SIZE CFE_ES_DEFAULT_STACK_SIZE - -#define CFE_SB_START_TASK_FLAGS OS_ENABLE_CORE_0 - -/** -** \cfeescfg Define ES Task Priority -** -** \par Description: -** Defines the cFE_ES Task priority. -** -** \par Limits -** Not Applicable -*/ -#define CFE_ES_START_TASK_PRIORITY 68 - -/** -** \cfeescfg Define ES Task Stack Size -** -** \par Description: -** Defines the cFE_ES Task Stack Size -** -** \par Limits -** There is a lower limit of 2048 and an upper limit of 16384 on this -** configuration paramater. -*/ -#define CFE_ES_START_TASK_STACK_SIZE 16384 - -#define CFE_ES_START_TASK_FLAGS OS_ENABLE_CORE_0 - -/** -** \cfetimecfg Define TIME Task Priorities -** -** \par Description: -** Defines the cFE_TIME Task priority. -** Defines the cFE_TIME Tone Task priority. -** Defines the cFE_TIME 1HZ Task priority. -** -** \par Limits -** There is a lower limit of zero and an upper limit of 255 on these -** configuration paramaters. Remember that the meaning of each task -** priority is inverted -- a "lower" number has a "higher" priority. -*/ -#define CFE_TIME_START_TASK_PRIORITY 60 -#define CFE_TIME_TONE_TASK_PRIORITY 25 -#define CFE_TIME_1HZ_TASK_PRIORITY 25 - -/** -** \cfetimecfg Define TIME Task Stack Sizes -** -** \par Description: -** Defines the cFE_TIME Main Task Stack Size -** Defines the cFE_TIME Tone Task Stack Size -** Defines the cFE_TIME 1HZ Task Stack Size -** -** \par Limits -** There is a lower limit of 2048 and an upper limit of 16384 on these -** configuration paramaters. -*/ -#define CFE_TIME_START_TASK_STACK_SIZE CFE_ES_DEFAULT_STACK_SIZE -#define CFE_TIME_TONE_TASK_STACK_SIZE 16384 -#define CFE_TIME_1HZ_TASK_STACK_SIZE 16384 - -#define CFE_TIME_START_TASK_FLAGS OS_ENABLE_CORE_0 -#define CFE_TIME_TONE_TASK_FLAGS OS_ENABLE_CORE_0 -#define CFE_TIME_1HZ_TASK_FLAGS OS_ENABLE_CORE_0 - -/** -** \cfeescfg Define TBL Task Priority -** -** \par Description: -** Defines the cFE_TBL Task priority. -** -** \par Limits -** Not Applicable -*/ -#define CFE_TBL_START_TASK_PRIORITY 70 - -/** -** \cfeescfg Define TBL Task Stack Size -** -** \par Description: -** Defines the cFE_TBL Task Stack Size -** -** \par Limits -** There is a lower limit of 2048 and an upper limit of 16384 on this -** configuration paramater. -*/ -#define CFE_TBL_START_TASK_STACK_SIZE CFE_ES_DEFAULT_STACK_SIZE - -#define CFE_TBL_START_TASK_FLAGS OS_ENABLE_CORE_0 - -/** -** \cfeescfg Define Maximum Number of Registered CDS Blocks -** -** \par Description: -** Maximum number of registered CDS Blocks -** -** \par Limits -** There is a lower limit of 8 and an upper limit of 32767 on this configuration -** paramater. -*/ -#define CFE_ES_CDS_MAX_NUM_ENTRIES 512 - - -/** -** \cfeescfg Define Number of Processor Resets Before a Power On Reset -** -** \par Description: -** Number of Processor Resets before a Power On Reset is called. If set to 2, -** then 2 processor resets will occur, and the 3rd processor reset will be a -** power on reset instead. -** -** \par Limits -** There is a lower limit of 0 and an upper limit of 1024 on this configuration -** paramater. -*/ -#define CFE_ES_MAX_PROCESSOR_RESETS 2 - - -/** -** \cfeescfg Define Default ES Memory Pool Block Sizes -** -** \par Description: -** Default Intermediate ES Memory Pool Block Sizes. If an application -** is using the CFE_ES Memory Pool APIs (#CFE_ES_PoolCreate, #CFE_ES_PoolCreateNoSem, -** #CFE_ES_GetPoolBuf and #CFE_ES_PutPoolBuf) but finds these sizes -** inappropriate for their use, they may wish to use the #CFE_ES_PoolCreateEx -** API to specify their own intermediate block sizes -** -** \par Limits -** These sizes MUST be increasing and MUST be an integral multiple of 4. Also, -** CFE_ES_MAX_BLOCK_SIZE must be larger than CFE_SB_MAX_SB_MSG_SIZE and both -** CFE_TBL_MAX_SNGL_TABLE_SIZE and CFE_TBL_MAX_DBL_TABLE_SIZE. Note that if Table -** Services have been removed from the CFE, the table size limits are still -** enforced although the table size definitions may be reduced. Refer to the CFS -** Deployment Guide for information about removing CFE Table Services from the CFE. -*/ -#define CFE_ES_MEM_BLOCK_SIZE_01 8 -#define CFE_ES_MEM_BLOCK_SIZE_02 16 -#define CFE_ES_MEM_BLOCK_SIZE_03 32 -#define CFE_ES_MEM_BLOCK_SIZE_04 48 -#define CFE_ES_MEM_BLOCK_SIZE_05 64 -#define CFE_ES_MEM_BLOCK_SIZE_06 96 -#define CFE_ES_MEM_BLOCK_SIZE_07 128 -#define CFE_ES_MEM_BLOCK_SIZE_08 160 -#define CFE_ES_MEM_BLOCK_SIZE_09 256 -#define CFE_ES_MEM_BLOCK_SIZE_10 512 -#define CFE_ES_MEM_BLOCK_SIZE_11 1024 -#define CFE_ES_MEM_BLOCK_SIZE_12 2048 -#define CFE_ES_MEM_BLOCK_SIZE_13 4096 -#define CFE_ES_MEM_BLOCK_SIZE_14 8192 -#define CFE_ES_MEM_BLOCK_SIZE_15 16384 -#define CFE_ES_MEM_BLOCK_SIZE_16 80000 -#define CFE_ES_MAX_BLOCK_SIZE 200000 - - -/** -** \cfeescfg Define ES Critical Data Store Memory Pool Block Sizes -** -** \par Description: -** Intermediate ES Critical Data Store Memory Pool Block Sizes -** -** \par Limits -** These sizes MUST be increasing and MUST be an integral multiple of 4. -*/ -#define CFE_ES_CDS_MEM_BLOCK_SIZE_01 8 -#define CFE_ES_CDS_MEM_BLOCK_SIZE_02 16 -#define CFE_ES_CDS_MEM_BLOCK_SIZE_03 32 -#define CFE_ES_CDS_MEM_BLOCK_SIZE_04 48 -#define CFE_ES_CDS_MEM_BLOCK_SIZE_05 64 -#define CFE_ES_CDS_MEM_BLOCK_SIZE_06 96 -#define CFE_ES_CDS_MEM_BLOCK_SIZE_07 128 -#define CFE_ES_CDS_MEM_BLOCK_SIZE_08 160 -#define CFE_ES_CDS_MEM_BLOCK_SIZE_09 256 -#define CFE_ES_CDS_MEM_BLOCK_SIZE_10 512 -#define CFE_ES_CDS_MEM_BLOCK_SIZE_11 1024 -#define CFE_ES_CDS_MEM_BLOCK_SIZE_12 2048 -#define CFE_ES_CDS_MEM_BLOCK_SIZE_13 4096 -#define CFE_ES_CDS_MEM_BLOCK_SIZE_14 8192 -#define CFE_ES_CDS_MEM_BLOCK_SIZE_15 16384 -#define CFE_ES_CDS_MEM_BLOCK_SIZE_16 32768 -#define CFE_ES_CDS_MAX_BLOCK_SIZE 80000 - - - -/** -** \cfeevscfg Define Maximum Number of Event Filters per Application -** -** \par Description: -** Maximum number of events that may be filtered per application. -** -** \par Limits -** There is an upper limit of 32767 on this configuration paramater. -*/ -#define CFE_EVS_MAX_EVENT_FILTERS (256) - - -/** -** \cfeevscfg Enable or Disable EVS Local Event Log -** -** \par Description: -** The CFE_EVS_LOG_ON configuration parameter must be defined to enable EVS -** event logging. In order to disable the local event log this definition needs -** to be commented out. -** -** \par Limits -** Not Applicable -*/ -#define CFE_EVS_LOG_ON - - -/** -** \cfeevscfg Default Event Log Filename -** -** \par Description: -** The value of this constant defines the filename used to store the Event -** Services local event log. This filename is used only when no filename is -** specified in the command to dump the event log. -** -** \par Limits -** The length of each string, including the NULL terminator cannot exceed the -** #OS_MAX_PATH_LEN value. -*/ -#define CFE_EVS_DEFAULT_LOG_FILE "/ram/cfe_evs.log" - - -/** -** \cfeevscfg Maximum Number of Events in EVS Local Event Log -** -** \par Description: -** Dictates the EVS local event log capacity. Units are the number of events. -** -** \par Limits -** There is an upper limit of 65535 on this configuration paramater. -*/ -#define CFE_EVS_LOG_MAX 20 - - -/** -** \cfeevscfg Default EVS Application Data Filename -** -** \par Description: -** The value of this constant defines the filename used to store the EVS -** Application Data(event counts/filtering information). This filename is -** used only when no filename is specified in the command to dump the event -** log. -** -** \par Limits -** The length of each string, including the NULL terminator cannot exceed the -** #OS_MAX_PATH_LEN value. -*/ -#define CFE_EVS_DEFAULT_APP_DATA_FILE "/ram/cfe_evs_app.dat" - - -/** -** \cfeevscfg Default EVS Output Port State -** -** \par Description: -** Defines the default port state (enabled or deisabled) for the four output -** ports defined within the Event Service. Port 1 is usually the uart output -** terminal. To enable a port, set the proper bit to a 1. Bit 0 is port 1, -** bit 1 is port2 etc. -** -** \par Limits -** The valid settings are 0x0 to 0xF. -*/ -#define CFE_EVS_PORT_DEFAULT 0x0001 - - -/** -** \cfeevscfg Default EVS Event Type Filter Mask -** -** \par Description: -** Defines a state of on or off for all four event types. The term event -** 'type' refers to the criticality level and may be Debug, Informational, -** Error or Critical. Each event type has a bit position. (bit 0 = Debug, -** bit 1 = Info, bit 2 = Error, bit 3 = Critical). This is a global setting, -** meaning it applies to all applications. To filter an event type, set its -** bit to zero. For example, -** 0xE means Debug = OFF, Info = ON, Error = ON, Critical = ON -** -** \par Limits -** The valid settings are 0x0 to 0xF. -*/ -#define CFE_EVS_DEFAULT_TYPE_FLAG 0xE - - - -/** -** \cfeevscfg Default EVS Local Event Log Mode -** -** \par Description: -** Defines a state of overwrite(0) or discard(1) for the operation of the -** EVS local event log. The log may operate in either Overwrite mode = 0, -** where once the log becomes full the oldest event in the log will be -** overwritten, or Discard mode = 1, where once the log becomes full the -** contents of the log are preserved and the new event is discarded. -** Overwrite Mode = 0, Discard Mode = 1. -** -** \par Limits -** The valid settings are 0 or 1 -*/ -#define CFE_EVS_DEFAULT_LOG_MODE 1 - - -/** -** \cfeevscfg Default EVS Message Format Mode -** -** \par Description: -** Defines the default message format (long or short) for event messages being -** sent to the ground. Choose between #CFE_EVS_LONG_FORMAT or -** #CFE_EVS_SHORT_FORMAT. -** -** \par Limits -** The valid settings are #CFE_EVS_LONG_FORMAT or #CFE_EVS_SHORT_FORMAT -*/ -#define CFE_EVS_DEFAULT_MSG_FORMAT_MODE CFE_EVS_LONG_FORMAT - - - -/* Platform Configuration Parameters for Table Service (TBL) */ - -/** -** \cfetblcfg Size of Table Services Table Memory Pool -** -** \par Description: -** Defines the TOTAL size of the memory pool that cFE Table Services allocates -** from the system. The size must be large enough to provide memory for each -** registered table, the inactive buffers for double buffered tables and for -** the shared inactive buffers for single buffered tables. -** -** \par Limits -** The cFE does not place a limit on the size of this parameter. -*/ -#define CFE_TBL_BUF_MEMORY_BYTES 1048576 - -/** -** \cfetblcfg Maximum Size Allowed for a Double Buffered Table -** -** \par Description: -** Defines the maximum allowed size (in bytes) of a double buffered table. -** -** \par Limits -** The cFE does not place a limit on the size of this parameter but it must be -** less than half of #CFE_TBL_BUF_MEMORY_BYTES. -*/ -#define CFE_TBL_MAX_DBL_TABLE_SIZE 65535 - -/** -** \cfetblcfg Maximum Size Allowed for a Single Buffered Table -** -** \par Description: -** Defines the maximum allowed size (in bytes) of a single buffered table. -** \b NOTE: This size determines the size of all shared table buffers. -** Therefore, this size will be multiplied by #CFE_TBL_MAX_SIMULTANEOUS_LOADS -** below when allocating memory for shared tables. -** -** \par Limits -** The cFE does not place a limit on the size of this parameter but it must be -** small enough to allow for #CFE_TBL_MAX_SIMULTANEOUS_LOADS number of tables -** to fit into #CFE_TBL_BUF_MEMORY_BYTES. -*/ -#define CFE_TBL_MAX_SNGL_TABLE_SIZE 65535 - -/** -** \cfetblcfg Maximum Number of Tables Allowed to be Registered -** -** \par Description: -** Defines the maximum number of tables supported by this processor's Table Services. -** -** \par Limits -** This number must be less than 32767. It should be recognized that this parameter -** determines the size of the Table Registry. An excessively high number will waste -** memory. -*/ -#define CFE_TBL_MAX_NUM_TABLES 128 - -/** -** \cfetblcfg Maximum Number of Critical Tables that can be Registered -** -** \par Description: -** Defines the maximum number of critical tables supported by this processor's Table Services. -** -** \par Limits -** This number must be less than 32767. It should be recognized that this parameter -** determines the size of the Critical Table Registry which is maintained in the Critical -** Data Store. An excessively high number will waste Critical Data Store memory. Therefore, -** this number must not exceed the value defined in CFE_ES_CDS_MAX_CRITICAL_TABLES. -*/ -#define CFE_TBL_MAX_CRITICAL_TABLES 32 - -/** -** \cfetblcfg Maximum Number of Table Handles -** -** \par Description: -** Defines the maximum number of Table Handles. -** -** \par Limits -** This number must be less than 32767. This number must be at least as big as -** the number of tables (#CFE_TBL_MAX_NUM_TABLES) and should be set higher if tables -** are shared between applications. -*/ -#define CFE_TBL_MAX_NUM_HANDLES 256 - -/** -** \cfetblcfg Maximum Number of Simultaneous Loads to Support -** -** \par Description: -** Defines the maximum number of single buffered tables that can be -** loaded simultaneously. This number is used to determine the number -** of shared buffers to allocate. -** -** \par Limits -** This number must be less than 32767. An excessively high number will -** degrade system performance and waste memory. A number less than 5 is -** suggested but not required. -*/ -#define CFE_TBL_MAX_SIMULTANEOUS_LOADS 4 - -/** -** \cfetblcfg Maximum Number of Simultaneous Table Validations -** -** \par Description: -** Defines the maximum number of pending validations that -** the Table Services can handle at any one time. When a -** table has a validation function, a validation request is -** made of the application to perform that validation. This -** number determines how many of those requests can be -** outstanding at any one time. -** -** \par Limits -** This number must be less than 32767. An excessively high number will -** degrade system performance and waste memory. A number less than 20 is -** suggested but not required. -*/ -#define CFE_TBL_MAX_NUM_VALIDATIONS 10 - -/** -** \cfetblcfg Default Filename for a Table Registry Dump -** -** \par Description: -** Defines the file name used to store the table registry when -** no filename is specified in the dump registry command. -** -** \par Limits -** The length of each string, including the NULL terminator cannot exceed the -** #OS_MAX_PATH_LEN value. -*/ -#define CFE_TBL_DEFAULT_REG_DUMP_FILE "/ram/cfe_tbl_reg.log" - -/** -** \cfetblcfg Number of Spacecraft ID's specified for validation -** -** \par Description: -** Defines the number of specified spacecraft ID values that -** are verified during table loads. If the number is zero -** then no validation of the spacecraft ID field in the table -** file header is performed when tables are loaded. Non-zero -** values indicate how many values from the list of spacecraft -** ID's defined below are compared to the spacecraft ID field -** in the table file header. The ELF2CFETBL tool may be used -** to create table files with specified spacecraft ID values. -** -** \par Limits -** This number must be greater than or equal to zero and -** less than or equal to 2. -*/ -#define CFE_TBL_VALID_SCID_COUNT 0 - -/* macro to construct 32 bit value from 4 chars */ -#define CFE_TBL_U32FROM4CHARS( _C1, _C2, _C3, _C4 ) \ - ( (uint32)(_C1) << 24 | \ - (uint32)(_C2) << 16 | \ - (uint32)(_C3) << 8 | \ - (uint32)(_C4) ) - -/** -** \cfetblcfg Spacecraft ID values used for table load validation -** -** \par Description: -** Defines the spacecraft ID values used for validating the -** spacecraft ID field in the table file header. To be valid, -** the spacecraft ID specified in the table file header must -** match one of the values defined here. -** -** \par Limits -** This value can be any 32 bit unsigned integer. -*/ -#define CFE_TBL_VALID_SCID_1 (CFE_SPACECRAFT_ID) -#define CFE_TBL_VALID_SCID_2 (CFE_TBL_U32FROM4CHARS('a', 'b', 'c', 'd')) - -/** -** \cfetblcfg Number of Processor ID's specified for validation -** -** \par Description: -** Defines the number of specified processor ID values that -** are verified during table loads. If the number is zero -** then no validation of the processor ID field in the table -** file header is performed when tables are loaded. Non-zero -** values indicate how many values from the list of processor -** ID's defined below are compared to the processor ID field -** in the table file header. The ELF2CFETBL tool may be used -** to create table files with specified processor ID values. -** -** \par Limits -** This number must be greater than or equal to zero and -** less than or equal to 4. -*/ -#define CFE_TBL_VALID_PRID_COUNT 0 - -/** -** \cfetblcfg Processor ID values used for table load validation -** -** \par Description: -** Defines the processor ID values used for validating the -** processor ID field in the table file header. To be valid, -** the spacecraft ID specified in the table file header must -** match one of the values defined here. -** -** \par Limits -** This value can be any 32 bit unsigned integer. -*/ -#define CFE_TBL_VALID_PRID_1 (CFE_CPU_ID) -#define CFE_TBL_VALID_PRID_2 (CFE_TBL_U32FROM4CHARS('a', 'b', 'c', 'd')) -#define CFE_TBL_VALID_PRID_3 0 -#define CFE_TBL_VALID_PRID_4 0 - -/** \cfeescfg Mission specific version number for cFE -** -** \par Description: -** The cFE version number consists of four parts: -** major version number, minor version number, revision -** number and mission specific revision number. The mission -** specific revision number is defined here and the other -** parts are defined in "cfe_version.h". -** -** \par Limits: -** Must be defined as a numeric value that is greater than -** or equal to zero. -*/ -#define CFE_MISSION_REV 0 - -/** \cfeescfg Poll timer for startup sync delay -** -** \par Description: -** During startup, some tasks may need to synchronize their own initialization -** with the initialization of other applications in the system. -** -** CFE ES implements an API to accomplish this, that performs a task delay (sleep) -** while polling the overall system state until other tasks are ready. -** -** This value controls the amount of time that the CFE_ES_ApplicationSyncDelay -** will sleep between each check of the system state. This should be large enough -** to allow other tasks to run, but not so large as to noticeably delay the startup -** completion. -** -** Units are in milliseconds -** -** \par Limits: -** Must be defined as an integer value that is greater than -** or equal to zero. -*/ -#define CFE_ES_STARTUP_SYNC_POLL_MSEC 50 - -/** \cfeescfg CFE core application startup timeout -** -** \par Description: -** The upper limit for the amount of time that the cFE core applications -** (ES, SB, EVS, TIME, TBL) are each alloted to reach their respective -** "ready" states. -** -** The CFE "main" thread starts individual tasks for each of the core applications -** (except FS). Each of these must perform some initialization work before the -** next core application can be started, so the main thread waits to ensure that the -** application has reached the "ready" state before starting the next application. -** -** If any core application fails to start, then it indicates a major problem with -** the system and startup is aborted. -** -** Units are in milliseconds -** -** \par Limits: -** Must be defined as an integer value that is greater than -** or equal to zero. -** -*/ -#define CFE_CORE_MAX_STARTUP_MSEC 30000 - -/** \cfeescfg Startup script timeout -** -** \par Description: -** The upper limit for the total amount of time that all apps listed in the CFE ES startup -** script may take to all become ready. -** -** Unlike the "core" app timeout, this is a soft limit; if the alloted time is exceeded, -** it probably indicates an issue with one of the apps, but does not cause CFE ES to take -** any additional action other than logging the event to the syslog. -** -** Units are in milliseconds -** -** \par Limits: -** Must be defined as an integer value that is greater than -** or equal to zero. - */ -#define CFE_ES_STARTUP_SCRIPT_TIMEOUT_MSEC 30000 - - -#endif diff --git a/config/obc/cpd/inc/ci_msgids.h b/config/obc/cpd/inc/ci_msgids.h deleted file mode 100644 index 9424bf351..000000000 --- a/config/obc/cpd/inc/ci_msgids.h +++ /dev/null @@ -1,10 +0,0 @@ -#ifndef CI_MSGIDS_H -#define CI_MSGIDS_H - -#include "msg_ids.h" - -#endif - -/************************/ -/* End of File Comment */ -/************************/ diff --git a/config/obc/cpd/inc/ci_platform_cfg.h b/config/obc/cpd/inc/ci_platform_cfg.h deleted file mode 100644 index 63437675c..000000000 --- a/config/obc/cpd/inc/ci_platform_cfg.h +++ /dev/null @@ -1,154 +0,0 @@ -#ifndef CI_PLATFORM_CFG_H -#define CI_PLATFORM_CFG_H - -#ifdef __cplusplus -extern "C" { -#endif - - -/* -** ci Platform Configuration Parameter Definitions -*/ - -/** \brief Mission specific version number for CI application -** -** \par Description: -** An application version number consists of four parts: -** major version number, minor version number, revision -** number and mission specific revision number. The mission -** specific revision number is defined here and the other -** parts are defined in "ci_version.h". -** -** \par Limits: -** Must be defined as a numeric value that is greater than -** or equal to zero. -*/ -#define CI_MISSION_REV (1) - -/** \brief Pipe depth for the Scheduler pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define CI_SCH_PIPE_DEPTH (2) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define CI_SCH_PIPE_NAME ("CI_SCH_PIPE") - -/** \brief The SB pend behavior type for the Scheduler pipe. -** -** \par Limits: -** One of: CFE_SB_POLL, CFE_SB_PEND_FOREVER, or the -** number of milliseconds to wait for a new message (recommended). -** Note, using CFE_SB_PEND_FOREVER may cause an unresponsive -** application if no messages arrive on this pipe. -*/ -#define CI_SCH_PIPE_PEND_TIME (2000) - -/** \brief The number of WAKEUP messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max limited to CFE_SB_MAX_PIPE_DEPTH-1. Note the -** CI_SCH_PIPE_WAKEUP_RESERVED and CI_SCH_PIPE_SEND_HK_RESERVED -** must be less than CI_SCH_PIPE_DEPTH. -*/ -#define CI_SCH_PIPE_WAKEUP_RESERVED (1) - -/** \brief The number of SEND_HK messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. Note the -** CI_SCH_PIPE_WAKEUP_RESERVED and CI_SCH_PIPE_SEND_HK_RESERVED -** must be less than CI_SCH_PIPE_DEPTH. -*/ -#define CI_SCH_PIPE_SEND_HK_RESERVED (1) - -/** \brief The number of PROCESS_TIMEOUT messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define CI_SCH_PIPE_PROC_TIMEOUT_RESERVED (1) - -/** \brief Pipe depth for the command pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define CI_CMD_PIPE_DEPTH (4) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define CI_CMD_PIPE_NAME ("CI_CMD_PIPE") - -/** \brief The config table default filename -** -** \par Limits: -** The length of each string, including the NULL terminator cannot exceed -** the #OS_MAX_PATH_LEN value. -*/ -#define CI_CONFIG_TABLE_FILENAME ("/cf/apps/ci_config.tbl") - -/** \brief The timeout table default filename -** -** \par Limits: -** The length of each string, including the NULL terminator cannot exceed -** the #OS_MAX_PATH_LEN value. -*/ -#define CI_TIMEOUT_TABLE_FILENAME ("/cf/apps/ci_timeout.tbl") - -/** \brief The timeout value, in milliseconds, to wait for ES application startup sync. -** -** \par Limits: -** This parameter must be at least 1000 (ms). -*/ -#define CI_STARTUP_TIMEOUT_MSEC (5000) - -/** \brief CI Ingest Mode */ -#define CI_INGEST_MODE (CI_BHV_OPTIMISTIC) - -/** \brief CI Listener Task Delay -** -** \note The main ingest loop is a while loop and sleeps for this many -** milliseconds each iteration. - */ -#define CI_LISTENER_TASK_DELAY (100) - -/** \brief CI Lister Task Stack Size */ -#define CI_LISTENER_TASK_STACK_SIZE (160000) - -/** \brief CI Lister Task Flags for CFE_ES_CreateChildTask() */ -#define CI_LISTENER_TASK_FLAGS (OS_ENABLE_CORE_0) - -/** \brief CI Lister Task Priority */ -#define CI_LISTENER_TASK_PRIORITY (109) - -/** \brief The largest size message CI can ingest */ -#define CI_MAX_CMD_INGEST (CFE_SB_MAX_SB_MSG_SIZE) - -/** \brief Listener task name */ -#define CI_LISTENER_TASK_NAME ("CI_LISTENER") - -/** \brief CI config table mutex name */ -#define CI_CFG_TBL_MUTEX_NAME ("CI_CFG_TBL_MUTEX") - -/** \brief CI timeout table mutex name */ -#define CI_TIME_TBL_MUTEX_NAME ("CI_TIME_TBL_MUTEX") - -#ifdef __cplusplus -} -#endif - -#endif /* CI_PLATFORM_CFG_H */ - -/************************/ -/* End of File Comment */ -/************************/ - diff --git a/config/obc/cpd/inc/cs_msgids.h b/config/obc/cpd/inc/cs_msgids.h deleted file mode 100644 index 688d2c27d..000000000 --- a/config/obc/cpd/inc/cs_msgids.h +++ /dev/null @@ -1,11 +0,0 @@ -#ifndef CS_MSGIDS_H -#define CS_MSGIDS_H - -#include "msg_ids.h" - -#endif /*CS_MSGIDS_H*/ - -/************************/ -/* End of File Comment */ -/************************/ - diff --git a/config/obc/cpd/inc/cs_platform_cfg.h b/config/obc/cpd/inc/cs_platform_cfg.h deleted file mode 100644 index b744a641d..000000000 --- a/config/obc/cpd/inc/cs_platform_cfg.h +++ /dev/null @@ -1,305 +0,0 @@ -#ifndef CS_PLATFORM_CFG_H -#define CS_PLATFORM_CFG_H - -#include "osapi.h" - -/************************************************************************* - ** Macro Definitions - *************************************************************************/ - -#define CS_CHILD_TASK_FLAGS OS_ENABLE_CORE_0 - -/** -** \cscfg EEPROM File Table -- default table filename -** -** \par Description: -** This parameter defines the default filename for the -** EEPROM addresses File Table. -** -** \par Limits: -** The string length (including string terminator) cannot exceed -** #OS_MAX_PATH_LEN. (limit is not verified) -*/ -#define CS_DEF_EEPROM_TABLE_FILENAME "/cf/apps/cs_eepromtbl.tbl" - -/** -** \cscfg Memory Address File Table -- default table filename -** -** \par Description: -** This parameter defines the default filename for the -** Memory addresses File Table. -** -** \par Limits: -** The string length (including string terminator) cannot exceed -** #OS_MAX_PATH_LEN. (limit is not verified) -*/ -#define CS_DEF_MEMORY_TABLE_FILENAME "/cf/apps/cs_memorytbl.tbl" - -/** -** \cscfg Tables File Table -- default table filename -** -** \par Description: -** This parameter defines the default filename for the -** Tables List File Table. -** -** \par Limits: -** The string length (including string terminator) cannot exceed -** #OS_MAX_PATH_LEN. (limit is not verified) -*/ -#define CS_DEF_TABLES_TABLE_FILENAME "/cf/apps/cs_tablestbl.tbl" - -/** -** \cscfg Application File Table -- default table filename -** -** \par Description: -** This parameter defines the default filename for the -** Application List File Table. -** -** \par Limits: -** The string length (including string terminator) cannot exceed -** #OS_MAX_PATH_LEN. (limit is not verified) -*/ -#define CS_DEF_APP_TABLE_FILENAME "/cf/apps/cs_apptbl.tbl" - -/** -** \cscfg Application Pipe Depth -** -** \par Description: -** This parameter defines the depth of the CS input pipe. The -** depth should be deep enough to accommodate all of the DS -** command packets and all of the subscribed telemetry packets -** that might be generated by applications with a priority -** higher than the CS application. -** -** \par Limits: -** The value must be greater than zero and cannot exceed the -** definition of #CFE_SB_MAX_PIPE_DEPTH. -*/ -#define CS_PIPE_DEPTH 12 - -/** \cscfg Maximum number of entries in the Eeprom table to checksum - ** - ** \par Description: - ** Maximum number of entries that can be in the table of - ** Eeprom areas to checksum. - ** - ** \par Limits: - ** This parameter is limited by the uint16 datatype that defines it. - ** This parameter is limited to 65535. - ** - */ -#define CS_MAX_NUM_EEPROM_TABLE_ENTRIES 16 - -/** \cscfg Maximum number of entries in the Memory table to checksum - ** - ** \par Description: - ** Maximum number of entries that can be in the table of - ** Memory areas to checksum. - ** - ** \par Limits: - ** This parameter is limited by the uint16 datatype that defines it. - ** This parameter is limited to 65535. - ** - */ -#define CS_MAX_NUM_MEMORY_TABLE_ENTRIES 16 - -/** \cscfg Maximum number of tables to checksum - ** - ** \par Description: - ** Maximum number of entries in the table of tables to checksum - ** - ** \par Limits: - ** This parameter is limited by the maximum number of tables allowed - ** in the system. This parameter is limited to #CFE_TBL_MAX_NUM_TABLES - ** - */ -#define CS_MAX_NUM_TABLES_TABLE_ENTRIES 24 - -/** \cscfg Maximum number of applications to checksum - ** - ** \par Description: - ** Maximum number of entries in the table of applications to checksum - ** - ** \par Limits: - ** This parameter is limited by the maximum number of applications allowed - ** in the system. This parameter is limited to #CFE_ES_MAX_APPLICATIONS - ** - */ -#define CS_MAX_NUM_APP_TABLE_ENTRIES 24 - -/** \cscfg Default number of bytes to checksum per cycle - ** - ** \par Description: - ** The default number of bytes that are checksummed in a single CS cycle - ** - ** \par Limits: - ** This parameter is limited by the maximum value allowed by the data type. - ** In this case, the data type is an unsigned 32-bit integer, so the valid - ** range is 0 to 0xFFFFFFFF. Note that "0" is a valid value, and will - ** result in a checksum of 0. - ** - */ -#define CS_DEFAULT_BYTES_PER_CYCLE (1024 *16) - -/** \cscfg CS Child Task Priority - ** - ** \par Description: - ** Priority of child tasks created by CS. Lower numbers are higher priority, - ** with 1 being the highest priority in the case of a child task. - ** - ** \par Limits: - ** Valid range for a child task is 1 to 255, but the priority cannot be - ** higher (lower number) than the CS App priority. - ** - */ -#define CS_CHILD_TASK_PRIORITY 202 - - -/** \cscfg Delay between checksumming cycles for child task - ** - ** \par Description: - ** CS child tasks perform checksum cycles like the main App. - ** Since the child tasks aren't scheduled, there needs to be - ** some other mechanism to prevent it from hogging the CPU. - ** This parameter specifies the number of milliseconds to delay - ** in between cycles. - ** - ** \par Limits: - ** CS does not place limits on this parameter. It is intended to - ** be configurable to prevent the child task from hogging the CPU - ** - */ -#define CS_CHILD_TASK_DELAY 1000 - - -/** \cscfg Timeout for waiting for other apps to start - ** - ** \par Description: - ** CS waits for all of the other applications that are listed in - ** the startup script to start before entering its main loop. If - ** not all of those apps start, CS can pend indefinitely without - ** a timeout. Once CS waits this amount of time ( in milliseconds) - ** it will start regardless of the status of the rest of the apps - ** in the startup script. - ** - ** \par Limits: - ** CS does not place limits on this parameter. It is intended to - ** be configurable to allow enough time for all apps to start. - ** - */ -#define CS_STARTUP_TIMEOUT 60000 - - - -/** \cscfg Desired state of the checksumming of OS code segment at power on -** -** \par Description: -** This determines the default state the checksumming of -** OS code segment should be in at power on -** -** \par Limits: -** This can either be CS_STATE_ENABLED or CS_STATE_DISABLED -*/ -#define CS_OSCS_CHECKSUM_STATE CS_STATE_ENABLED - -/** \cscfg Desired state of the checksumming of CFE core checksum at power on -** -** \par Description: -** This determines the default state the checksumming of -** CFE core should be in at power on -** -** \par Limits: -** This can either be CS_STATE_ENABLED or CS_STATE_DISABLED -*/ -#define CS_CFECORE_CHECKSUM_STATE CS_STATE_ENABLED - -/** \cscfg Desired state of the EEPROM table at power on -** -** \par Description: -** This determines the default state the EEPROM table should -** be in at power on -** -** \par Limits: -** This can either be CS_STATE_ENABLED or CS_STATE_DISABLED -*/ -#define CS_EEPROM_TBL_POWERON_STATE CS_STATE_ENABLED - -/** \cscfg Desired state of the EEPROM table at power on -** -** \par Description: -** This determines the default state the Memory table should -** be in at power on -** -** \par Limits: -** This can either be CS_STATE_ENABLED or CS_STATE_DISABLED -*/ -#define CS_MEMORY_TBL_POWERON_STATE CS_STATE_ENABLED - -/** \cscfg Desired state of the Applications table at power on -** -** \par Description: -** This determines the default state the EEPROM table should -** be in at power on -** -** \par Limits: -** This can either be CS_STATE_ENABLED or CS_STATE_DISABLED -*/ -#define CS_APPS_TBL_POWERON_STATE CS_STATE_ENABLED - -/** \cscfg Desired state of the Tables table at power on -** -** \par Description: -** This determines the default state the EEPROM table should -** be in at power on -** -** \par Limits: -** This can either be CS_STATE_ENABLED or CS_STATE_DISABLED -*/ -#define CS_TABLES_TBL_POWERON_STATE CS_STATE_ENABLED - -/** \cscfg Whether to preserve checksum states on processor reset -** -** \par Description: -** This determines whether to preserve checksum -** enabled/disabled states on processor reset -** -** \par Limits: -** None -*/ -#define CS_PRESERVE_STATES_ON_PROCESSOR_RESET TRUE - - -/** \cscfg Name of the Critical Data Store Used for CS -** -** \par Description: -** Name of the Critical Data Store for CS -** This CDS is used to preserve the checksum -** enabled states for EERPOM, Memory, Apps, Tables tables -** as well as OS code segment and cFE core states -** -** \par Limits: -** Must be a unique string with regards to CDS -*/ -#define CS_CDS_NAME "CS_CDS" - -/** \cscfg Mission specific version number for CS application -** -** \par Description: -** An application version number consists of four parts: -** major version number, minor version number, revision -** number and mission specific revision number. The mission -** specific revision number is defined here and the other -** parts are defined in "cs_version.h". -** -** \par Limits: -** Must be defined as a numeric value that is greater than -** or equal to zero. -*/ -#define CS_MISSION_REV 0 - -#endif /*_cs_platform_cfg_*/ - -/************************/ -/* End of File Comment */ -/************************/ - diff --git a/config/obc/cpd/inc/ds_msgids.h b/config/obc/cpd/inc/ds_msgids.h deleted file mode 100644 index d288329a0..000000000 --- a/config/obc/cpd/inc/ds_msgids.h +++ /dev/null @@ -1,11 +0,0 @@ -#ifndef DS_MSGIDS_H -#define DS_MSGIDS_H - -#include "msg_ids.h" - - -#endif /* DS_MSGIDS_H */ - -/************************/ -/* End of File Comment */ -/************************/ diff --git a/config/obc/cpd/inc/ds_platform_cfg.h b/config/obc/cpd/inc/ds_platform_cfg.h deleted file mode 100644 index 0a2d305dd..000000000 --- a/config/obc/cpd/inc/ds_platform_cfg.h +++ /dev/null @@ -1,471 +0,0 @@ -#ifndef DS_PLATFORM_CFG_H -#define DS_PLATFORM_CFG_H - - -/** -** \dscfg Destination File Table -- logical table name -** -** \par Description: -** This parameter defines the name of the DS Destination File -** Table when referenced via cFE Table Services. Note that this -** parameter is not a filename, it is the table specific portion -** of the logical name. The entire logical name for this table -** is "DS.FILE_TBL". -** -** \par Limits: -** The string length (including string terminator) cannot exceed -** #CFE_TBL_MAX_NAME_LENGTH. (limit is not verified) -*/ -#define DS_DESTINATION_TBL_NAME "FILE_TBL" - - -/** -** \dscfg Destination File Table -- default table filename -** -** \par Description: -** This parameter defines the default filename for the -** Destination File Table. -** -** \par Limits: -** The string length (including string terminator) cannot exceed -** #OS_MAX_PATH_LEN. (limit is not verified) -*/ -#define DS_DEF_DEST_FILENAME "/cf/apps/ds_file_tbl.tbl" - - -/** -** \dscfg Destination File Table -- number of files -** -** \par Description: -** This parameter defines the size of the DS Destination File -** Table by setting the number of file entries in the table. The -** number should be large enough to provide an entry for all the -** destination files defined for the project. Maintenance will -** be simplified if file index 'n' always describes the same -** file - even if that file is not in use at the present time. -** -** \par Limits: -** The number must be greater than zero but there is no upper -** enforced limit for this parameter. -*/ -#define DS_DEST_FILE_CNT 16 - - -/** -** \dscfg Destination File Table -- pathname buffer size -** -** \par Description: -** This parameter further defines the size of the Destination -** File Table by setting the size of the pathname buffer for -** each file entry. Note that the buffer must contain both -** the string and the string terminator - so the max string -** length is one less than the buffer size. -** -** \par Limits: -** The buffer size must be greater than zero and a multiple -** of four bytes for alignment. The value cannot exceed the -** maximum filename size allowed by the OS (#OS_MAX_PATH_LEN). -*/ -#define DS_PATHNAME_BUFSIZE OS_MAX_PATH_LEN - - -/** -** \dscfg Destination File Table -- basename buffer size -** -** \par Description: -** This parameter further defines the size of the Destination -** File Table by setting the size of the basename buffer for -** each file entry. Note that the buffer must contain both -** the string and the string terminator - so the max string -** length is one less than the buffer size. -** -** \par Limits: -** The buffer size must be greater than zero and a multiple -** of four bytes for alignment. The value cannot exceed the -** maximum filename size allowed by the OS (#OS_MAX_PATH_LEN). -*/ -#define DS_BASENAME_BUFSIZE OS_MAX_PATH_LEN - - -/** -** \dscfg Destination File Table -- extension buffer size -** -** \par Description: -** This parameter further defines the size of the Destination -** File Table by setting the size of the extension buffer for -** each file entry. Note that the buffer must contain both -** the string and the string terminator - so the max string -** length is one less than the buffer size. -** -** \par Limits: -** The buffer size must be greater than zero and a multiple -** of four bytes for alignment. The value cannot exceed the -** maximum filename size allowed by the OS (#OS_MAX_PATH_LEN). -*/ -#define DS_EXTENSION_BUFSIZE 8 - - -/** -** \dscfg Packet Filter Table -- logical table name -** -** \par Description: -** This parameter defines the name of the DS Packet Filter Table -** when referenced via cFE Table Services. Note that this -** parameter is not a filename, it is the table specific portion -** of the logical name. The entire logical name for this table -** is "DS.FILTER_TBL". -** -** \par Limits: -** The string length (including string terminator) cannot exceed -** #CFE_TBL_MAX_NAME_LENGTH. (limit is not verified) -*/ -#define DS_FILTER_TBL_NAME "FILTER_TBL" - - -/** -** \dscfg Packet Filter Table -- default table filename -** -** \par Description: -** This parameter defines the default filename for the -** Packet Filter Table. -** -** \par Limits: -** The string length (including string terminator) cannot exceed -** #OS_MAX_PATH_LEN. (limit is not verified) -*/ -#define DS_DEF_FILTER_FILENAME "/cf/apps/ds_filter_tbl.tbl" - - -/** -** \dscfg Packet Filter Table -- number of packets -** -** \par Description: -** This parameter defines the size of the DS Packet Filter Table -** by setting the number of packet entries in the table. The -** number should be large enough to provide an entry for each -** command and telemetry packet subject to data storage. -** -** \par Limits: -** The number must be greater than zero but there is no upper -** enforced limit for this parameter. However, setting the -** size equal to the number of packets that might be subject -** to data storage, rather than the total number of packets -** defined for this project, will reduce the table file size, -** possibly significantly. -*/ -#define DS_PACKETS_IN_FILTER_TABLE 256 - - -/** -** \dscfg Packet Filter Table -- filters per packet -** -** \par Description: -** This parameter further defines the size of the DS Packet -** Filter Table by setting the number of filters per packet -** entry. This is the maximum number of destination files -** to which a single packet can be written (at one time). -** -** \par Limits: -** The number of filters per packet must be greater than zero -** and not greater than #DS_DEST_FILE_CNT. -*/ -#define DS_FILTERS_PER_PACKET 4 - - -/** -** \dscfg Common Table File -- descriptor text buffer size -** -** \par Description: -** This parameter defines the size of the Descriptor Text -** fields in both the Destination File Table and the Packet -** Filter Table. The buffer includes the string terminator. -** -** \par Limits: -** The buffer size must be greater than zero and a multiple -** of four bytes for alignment. There is no upper limit. -*/ -#define DS_DESCRIPTOR_BUFSIZE 32 - - -/** -** \dscfg Filename Sequence Count -- number of digits -** -** \par Description: -** This parameter defines the number of filename sequence -** count digits used when the filename type has been set to -** "count" rather than "time". Sequence counts are padded -** with leading zero's to create fixed length strings. -** -** \par Limits: -** The number of sequence count digits must be greater than -** zero - even if there is no intention of later setting -** the filename type to "count". This value should match -** the definition for #DS_MAX_SEQUENCE_COUNT, below. -*/ -#define DS_SEQUENCE_DIGITS 8 - - -/** -** \dscfg Filename Sequence Count -- max counter value -** -** \par Description: -** This parameter defines the maximum value a file sequence -** count will reach before rollover. -** -** \par Limits: -** The value must be greater than zero and should not have -** more digits than the number of sequence count digits -** defined for #DS_SEQUENCE_DIGITS, above. -*/ -#define DS_MAX_SEQUENCE_COUNT 99999999 - - -/** -** \dscfg Data Storage File -- total filename size -** -** \par Description: -** This parameter defines the maximum size of a filename after -** combining the pathname, basename, sequence and extension. -** -** \par Limits: -** The buffer size must be greater than zero and a multiple -** of four bytes for alignment. The buffer size (including -** string terminator) cannot exceed #OS_MAX_PATH_LEN. -*/ -#define DS_TOTAL_FNAME_BUFSIZE OS_MAX_PATH_LEN - - -/** -** \dscfg Data Storage File -- cFE file header sub-type -** -** \par Description: -** This parameter defines a mission-specific value that is used -** to identify a Data Storage file. -** -** \par Limits: -** The file header data type for the value is 32 bits unsigned, -** thus the value can be anything from zero to 4,294,967,295. -** (limit is not verified) -*/ -#define DS_FILE_HDR_SUBTYPE 12345 - - -/** -** \dscfg Data Storage File -- cFE file header description -** -** \par Description: -** This parameter defines a mission-specific text string that -** may be used to identify Data Storage files. -** -** \par Limits: -** The string length (including string terminator) cannot exceed -** #CFE_FS_HDR_DESC_MAX_LEN. (limit is not verified) -*/ -#define DS_FILE_HDR_DESCRIPTION "DS data storage file" - - -/** -** \dscfg Data Storage File -- minimum size limit -** -** \par Description: -** This parameter defines the lower limit for commands and -** table entries that define the size (in bytes) when a data -** storage file is automatically closed. -** -** \par Limits: -** None -- however, the user should be cautioned that a very -** small value will allow an size limit that closes files too -** frequently, while a very large value will effectively -** prevent files from ever being closed due to size. -*/ -#define DS_FILE_MIN_SIZE_LIMIT 1024 - - -/** -** \dscfg Data Storage File -- minimum age limit -** -** \par Description: -** This parameter defines the lower limit for commands and -** table entries that define the age (in seconds) when a data -** storage file is automatically closed. -** -** \par Limits: -** None -- however, the user should be cautioned that a very -** small value will allow an age limit that closes files too -** frequently, while a very large value will effectively -** prevent files from ever being closed due to age. -*/ -#define DS_FILE_MIN_AGE_LIMIT 60 - - -/** -** \dscfg Application Pipe Name -** -** \par Description: -** This parameter defines a portion of the logical name used -** during the creation of the DS input pipe. The logical name -** may also be used as an identifier when accessing status for -** the pipe via cFE Software Bus Services. The entire logical -** name is "DS.DS_CMD_PIPE". -** -** \par Limits: -** The string length (including string terminator) cannot -** exceed #OS_MAX_API_NAME. (limit is not verified) -*/ -#define DS_APP_PIPE_NAME "DS_CMD_PIPE" - - -/** -** \dscfg Application Pipe Depth -** -** \par Description: -** This parameter defines the depth of the DS input pipe. The -** depth should be deep enough to accommodate all of the DS -** command packets and all of the subscribed telemetry packets -** that might be generated by applications with a priority -** higher than the DS application. -** -** \par Limits: -** The value must be greater than zero and cannot exceed the -** definition of #CFE_SB_MAX_PIPE_DEPTH. -*/ -#define DS_APP_PIPE_DEPTH 256 - - -/** -** \dscfg Make DS Tables Critical -** -** \par Description: -** Set this parameter to a value of one to make the DS tables critical, -** otherwise set to zero. -** -** \par Limits -** This parameter must be set to zero or one. -*/ -#define DS_MAKE_TABLES_CRITICAL 0 - - -/** -** \dscfg Housekeeping Request Frequency -** -** \par Description: -** Set this parameter equal to the number of seconds between -** housekeeping request commands. This number is mission -** specific and must match the frequency used by the source -** of the command - often the scheduler task. The value is -** used by the DS application to measure file age and also -** as a factor in the calculation of file growth rates. -** -** \par Limits -** This parameter must be greater than zero. -*/ -#define DS_SECS_PER_HK_CYCLE 4 - - -/** -** \dscfg Default DS Packet Processor State -** -** \par Description: -** Set this parameter to a value of one and DS will begin to -** process packets immediately on startup. Set the value to -** zero and DS will ignore data storage packets until receipt -** of a valid #DS_ENABLE command. -** -** \par Limits -** This parameter must be set to zero or one. -*/ -#define DS_DEF_ENABLE_STATE 1 - - -/** -** \dscfg Save DS Packet Processor State in Critical Data Store -** -** \par Description: -** Set this parameter to a value of one and DS will restore -** the previous Packet Processor enable/disable state after -** a processor reset. This setting does not affect the -** Packet Processor enable/disable state set at power-on -** which is controlled by #DS_DEF_ENABLE_STATE. Set the -** value to zero and DS will set the enable/disable state -** as described for #DS_DEF_ENABLE_STATE following any reset. -** -** \par Limits -** This parameter must be set to zero or one. -*/ -#define DS_CDS_ENABLE_STATE 1 - - -/** \dscfg Mission specific version number for DS application -** -** \par Description: -** An application version number consists of four parts: -** major version number, minor version number, revision -** number and mission specific revision number. The mission -** specific revision number is defined here and the other -** parts are defined in "ds_version.h". -** -** \par Limits: -** Must be defined as a numeric value that is greater than -** or equal to zero. -*/ -#define DS_MISSION_REV 0 - - -/** -** \dscfg File Header Type Selection -** -** \par Description: -** Set this parameter to select the type of file header that -** will be the first record written to each Data Storage File. -** -** \par Limits -** This parameter must be set to one of the following: -** 0 = none -- set this value to have no file header -** 1 = CFE -- set this value to use CFE file headers -** 2 = GPM -- set this value to use GPM file headers -*/ -#define DS_FILE_HEADER_TYPE 1 - - -/** -** \dscfg Move Files to Downlink Directory After Close Selection -** -** \par Description: -** Set this parameter to enable the code and structures to -** automatically move DS files to another directory after -** closing the files. The intended use for this setting is -** to move files from a working directory into a directory -** from which the files can be downlinked. Note that even -** after enabling this feature, files will not be moved if -** the move pathname in the Destination File Table is null. -** -** \par Limits -** This parameter must be set to one of the following: -** TRUE = add move pathname field to Destination File Table -** FALSE = do not add move pathname to Destination File Table -*/ -#define DS_MOVE_FILES FALSE - - -/** -** \dscfg Application Per Packet Pipe Limit -** -** \par Description: -** This parameter defines the per packet pipe limit. This is -** the max number of packets with the same Message ID that may -** be in the DS input pipe at any one time. This value should -** be large enough to accommodate a burst of packets (usually -** event packets) plus a suitable margin. -** -** \par Limits: -** The value must be greater than zero and cannot exceed the -** definition of #DS_APP_PIPE_DEPTH. -*/ -#define DS_PER_PACKET_PIPE_LIMIT 1 - - -#endif /* DS_PLATFORM_CFG_H */ - -/************************/ -/* End of File Comment */ -/************************/ diff --git a/config/obc/cpd/inc/ea_platform_cfg.h b/config/obc/cpd/inc/ea_platform_cfg.h deleted file mode 100644 index b3034d0c1..000000000 --- a/config/obc/cpd/inc/ea_platform_cfg.h +++ /dev/null @@ -1,143 +0,0 @@ -#ifndef EA_PLATFORM_CFG_H -#define EA_PLATFORM_CFG_H - -#ifdef __cplusplus -extern "C" { -#endif - -#define EA_CHILD_TASK_FLAGS OS_ENABLE_CORE_0 - - -/* -** ea Platform Configuration Parameter Definitions -*/ - -/** \brief Mission specific version number for EA application -** -** \par Description: -** An application version number consists of four parts: -** major version number, minor version number, revision -** number and mission specific revision number. The mission -** specific revision number is defined here and the other -** parts are defined in "ea_version.h". -** -** \par Limits: -** Must be defined as a numeric value that is greater than -** or equal to zero. -*/ -#define EA_MISSION_REV (0) - -/** \brief Pipe depth for the Scheduler pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define EA_SCH_PIPE_DEPTH (2) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define EA_SCH_PIPE_NAME ("EA_SCH_PIPE") - -/** \brief The SB pend behavior type for the Scheduler pipe. -** -** \par Limits: -** One of: CFE_SB_POLL, CFE_SB_PEND_FOREVER, or the -** number of milliseconds to wait for a new message (recommended). -** Note, using CFE_SB_PEND_FOREVER may cause an unresponsive -** application if no messages arrive on this pipe. -*/ -#define EA_SCH_PIPE_PEND_TIME (2000) - -/** \brief The number of WAKEUP messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max limited to CFE_SB_MAX_PIPE_DEPTH-1. Note the -** EA_SCH_PIPE_WAKEUP_RESERVED and EA_SCH_PIPE_SEND_HK_RESERVED -** must be less than EA_SCH_PIPE_DEPTH. -*/ -#define EA_SCH_PIPE_WAKEUP_RESERVED (1) - -/** \brief The number of SEND_HK messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. Note the -** EA_SCH_PIPE_WAKEUP_RESERVED and EA_SCH_PIPE_SEND_HK_RESERVED -** must be less than EA_SCH_PIPE_DEPTH. -*/ -#define EA_SCH_PIPE_SEND_HK_RESERVED (1) - -/** \brief Pipe depth for the command pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define EA_CMD_PIPE_DEPTH (4) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define EA_CMD_PIPE_NAME ("EA_CMD_PIPE") - -/** \brief Pipe depth for the data pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define EA_DATA_PIPE_DEPTH (4) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define EA_DATA_PIPE_NAME ("EA_DATA_PIPE") - -/** \brief The config table default filename -** -** \par Limits: -** The length of each string, including the NULL terminator cannot exceed -** the #OS_MAX_PATH_LEN value. -*/ -#define EA_CONFIG_TABLE_FILENAME ("/cf/apps/ea_config.tbl") -/** \brief The timeout value, in milliseconds, to wait for ES application startup sync. -** -** \par Limits: -** This parameter must be at least 1000 (ms). -*/ -#define EA_STARTUP_TIMEOUT_MSEC (1000) - -/* TODO: Add Doxygen markup. */ -#define EA_CUSTOM_DEV_PATH "/tmp/ttyS0" - -/** \cscfg EA Child Task Priority - ** - ** \par Description: - ** Priority of child tasks created by EA. Lower numbers are higher priority, - ** with 1 being the highest priority in the case of a child task. - ** - ** \par Limits: - ** Valid range for a child task is 1 to 255, but the priority cannot be - ** higher (lower number) than the EA App priority. - ** - */ -#define EA_CHILD_TASK_PRIORITY (187) -#define EA_APP_UTIL_THRESHOLD (70) -#define EA_APP_NUM_THREADS (2) - -#define EA_MAX_PATH_LEN (96) - -#ifdef __cplusplus -} -#endif - -#endif /* EA_PLATFORM_CFG_H */ - -/************************/ -/* End of File Comment */ -/************************/ - diff --git a/config/obc/cpd/inc/flow_msgids.h b/config/obc/cpd/inc/flow_msgids.h deleted file mode 100644 index 494f62fc0..000000000 --- a/config/obc/cpd/inc/flow_msgids.h +++ /dev/null @@ -1,18 +0,0 @@ -#ifndef FLOW_MSGIDS_H -#define FLOW_MSGIDS_H - -#ifdef __cplusplus -extern "C" { -#endif - -#include "msg_ids.h" - -#ifdef __cplusplus -} -#endif - -#endif /* FLOW_MSGIDS_H */ - -/************************/ -/* End of File Comment */ -/************************/ diff --git a/config/obc/cpd/inc/flow_platform_cfg.h b/config/obc/cpd/inc/flow_platform_cfg.h deleted file mode 100644 index 4f24d6eea..000000000 --- a/config/obc/cpd/inc/flow_platform_cfg.h +++ /dev/null @@ -1,135 +0,0 @@ -#ifndef FLOW_PLATFORM_CFG_H -#define FLOW_PLATFORM_CFG_H - -#ifdef __cplusplus -extern "C" { -#endif - -/* -** FLOW Platform Configuration Parameter Definitions -*/ - -/** \brief Mission specific version number for FLOW application -** -** \par Description: -** An application version number consists of four parts: -** major version number, minor version number, revision -** number and mission specific revision number. The mission -** specific revision number is defined here and the other -** parts are defined in "amc_version.h". -** -** \par Limits: -** Must be defined as a numeric value that is greater than -** or equal to zero. -*/ -#define FLOW_MISSION_REV (0) - -/** \brief Pipe depth for the Scheduler pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define FLOW_SCH_PIPE_DEPTH (2) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define FLOW_SCH_PIPE_NAME ("FLOW_SCH_PIPE") - -/** \brief The number of WAKEUP messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max limited to CFE_SB_MAX_PIPE_DEPTH-1. Note the -** FLOW_WAKEUP_MID_MAX_MSG_COUNT and FLOW_SEND_HK_MID_MAX_MSG_COUNT -** must be less than FLOW_SCH_PIPE_DEPTH. -*/ -#define FLOW_WAKEUP_MID_MAX_MSG_COUNT (1) - -/** \brief The number of SEND_HK messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. Note the -** FLOW_WAKEUP_MID_MAX_MSG_COUNT and FLOW_SEND_HK_MID_MAX_MSG_COUNT -** must be less than FLOW_SCH_PIPE_DEPTH. -*/ -#define FLOW_SEND_HK_MID_MAX_MSG_COUNT (1) - -/** \brief Pipe depth for the command pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define FLOW_CMD_PIPE_DEPTH (4) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define FLOW_CMD_PIPE_NAME ("FLOW_CMD_PIPE") - -/** \brief Pipe depth for the data pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define FLOW_DATA_PIPE_DEPTH (4) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define FLOW_DATA_PIPE_NAME ("FLOW_DATA_PIPE") - -/** \brief The config table default filename -** -** \par Limits: -** The length of each string, including the NULL terminator cannot exceed -** the #OS_MAX_PATH_LEN value. -*/ -#define FLOW_CONFIG_TABLE_FILENAME ("/cf/apps/flow_config.tbl") - -/** \brief The timeout value, in milliseconds, to wait for ES application startup sync. -** -** \par Limits: -** This parameter must be at least 1000 (ms). -*/ -#define FLOW_STARTUP_TIMEOUT_MSEC (1000) - -/** \brief Pipe depth for the Gyroscope pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define FLOW_GYRO_PIPE_DEPTH (30) - -/** \brief Pipe name for the Gyroscope pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define FLOW_GYRO_PIPE_NAME ("FLOW_GYRO_PIPE") - -/** \brief The number of SENSOR_GYRO messages to reserve on the Gyroscope pipe. -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. Note the -** FLOW_SENSOR_GYRO_MID_MAX_MSG_COUNT -** must be less than FLOW_GYRO_PIPE_DEPTH. -*/ -#define FLOW_SENSOR_GYRO_MAX_MSG_COUNT (25) - - -#ifdef __cplusplus -} -#endif - -#endif /* FLOW_PLATFORM_CFG_H */ - -/************************/ -/* End of File Comment */ -/************************/ - diff --git a/config/obc/cpd/inc/fm_msgids.h b/config/obc/cpd/inc/fm_msgids.h deleted file mode 100644 index 1af16a366..000000000 --- a/config/obc/cpd/inc/fm_msgids.h +++ /dev/null @@ -1,11 +0,0 @@ -#ifndef FM_MSGIDS_H -#define FM_MSGIDS_H - - -#include "msg_ids.h" - -#endif /* FM_MSGIDS_H */ - -/************************/ -/* End of File Comment */ -/************************/ diff --git a/config/obc/cpd/inc/fm_platform_cfg.h b/config/obc/cpd/inc/fm_platform_cfg.h deleted file mode 100644 index 7b83a233d..000000000 --- a/config/obc/cpd/inc/fm_platform_cfg.h +++ /dev/null @@ -1,424 +0,0 @@ -#ifndef FM_PLATFORM_CFG_H -#define FM_PLATFORM_CFG_H - -#include "osapi.h" - - -/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ -/* */ -/* FM platform configuration parameters - application definitions */ -/* */ -/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ - -#define FM_CHILD_TASK_FLAGS OS_ENABLE_CORE_0 - -/** \fmcfg File Manager Application Name -** -** \par Description: -** This definition must match the name used at startup by the cFE -** Executive Services when creating the FM application. Note that -** application names are also an argument to certain cFE commands. -** For example, the application name is needed to access tables -** via cFE Table Services commands. -** -** \par Limits: -** FM requires that this name be defined, but otherwise places -** no limits on the definition. Refer to CFE Executive Services -** for specific information on limits related to application names. -*/ -#define FM_APP_NAME "FM" - - -/** \fmcfg File Manager Command Pipe Name -** -** \par Description: -** This definition is the name used at startup when creating a cFE -** Software Bus command pipe for the FM application. -** -** \par Limits: -** FM requires that this name be defined, but otherwise places -** no limits on the definition. Refer to CFE Software Bus Services -** for specific information on limits related to pipe names. -*/ -#define FM_APP_PIPE_NAME "FM_CMD_PIPE" - - -/** \fmcfg File Manager Command Pipe Depth -** -** \par Description: -** This definition sets the total number of packets that may queue -** in the FM command pipe. The limit for individual message types -** in the queue is the default cFE Software Bus subscription limit -** of four. -** -** \par Limits: -** The FM application limits this value to be no less than 4 and -** no greater than 20 packets at any one time in the command pipe. -*/ -#define FM_APP_PIPE_DEPTH 10 - - -/** \sccfg Mission specific version number for FM application -** -** \par Description: -** An application version number consists of four parts: -** major version number, minor version number, revision -** number and mission specific revision number. The mission -** specific revision number is defined here and the other -** parts are defined in "fm_version.h". -** -** \par Limits: -** Must be defined as a numeric value that is greater than -** or equal to zero. -*/ -#define FM_MISSION_REV 0 - - -/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ -/* */ -/* FM platform configuration parameters - output file definitions */ -/* */ -/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ - -/** \fmcfg Default Directory List Output Filename -** -** \par Description: -** This definition is the default output filename used by the Get -** Directory List to File command handler when the output filename -** is not provided. The default filename is used whenever the -** commanded output filename is the empty string. -** -** \par Limits: -** The FM application does not place a limit on this configuration -** parameter, however the symbol must be defined and the name will -** be subject to the same verification tests as a commanded output -** filename. Set this parameter to the empty string if no default -** filename is desired. -*/ -#define FM_DIR_LIST_FILE_DEFNAME "/ram/fm_dirlist.out" - - -/** \fmcfg Maximum Directory List Output File Entries -** -** \par Description: -** This definition sets the upper limit for the number of directory -** entries that may be written to a Directory List output file. -** Directory List files are variable length, based on the number of -** directory entries actually written to the file. There may zero -** entries written to the file if the directory is empty. For most -** environments, this definition will play no role at all, as it -** will be set to a number much larger than the count of files that -** will ever exist in any directory at one time. -** -** \par Limits: -** The FM application limits this value to be no less than 100 and -** no greater than 10000. -*/ -#define FM_DIR_LIST_FILE_ENTRIES 3000 - - -/** \fmcfg Directory List Output File Header Sub-Type -** -** \par Description: -** This definition sets the cFE File Header sub-type value for FM -** Directory List data files. The value may be used to differentiate -** FM Directory List files from other data files. -** -** \par Limits: -** The FM application places no limits on this unsigned 32 bit value. -*/ -#define FM_DIR_LIST_FILE_SUBTYPE 12345 - - -/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ -/* */ -/* FM platform configuration parameters - TLM packet definitions */ -/* */ -/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ - -/** \fmcfg Directory List Telemetry Packet Entry Count -** -** \par Description: -** This definition sets the number of directory entries contained -** in the Directory List telemetry packet. The command handler will -** read directory entries until reaching the index of the start entry -** (set via command argument) and then continue to read -** directory entries and populate the telemtry packet until there are -** either no more unread directory entries or until the telemetry -** packet is full. -** -** \par Limits: -** The FM application limits this value to be no less than 10 and -** and no greater than 100. The number of directory entries in the -** telemetry packet will in large part determine the packet size. -*/ -#define FM_DIR_LIST_PKT_ENTRIES 20 - - -/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ -/* */ -/* FM platform configuration parameters - child task definitions */ -/* */ -/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ - -/** \fmcfg Child Task File I/O Control Settings -** -** \par Description: -** These definitions control the amount of file data that the FM child task -** will process before giving up the CPU to allow other tasks time to run. -** -** FM_CHILD_FILE_BLOCK_SIZE defines the size of each block of file data that -** the FM child task will read or write. This value also defines the size -** of the FM child task I/O buffer that exists in global memory. -** -** FM_CHILD_FILE_LOOP_COUNT defines the number of file data blocks that may -** be processed before the FM child task sleeps (gives up the CPU). -** -** FM_CHILD_FILE_SLEEP_MS defines the length of time (in milli-secs) before -** the FM child task wakes (re-acquires the CPU). Note that many platforms -** will limit the precision of this value. -** -** Thus the combination of the 3 values control CPU use by the FM child task. -** Using a smaller block size minimizes the amount of RAM used by the file -** I/O buffer, but at the expense of file efficiency. Adjust each of the -** values such that the combination is appropriate for the target platform. -** -** For example, if the block size is 2048 and the loop count is 16 and the -** sleep time is 20, then while processing a 1 Mbyte file there will be -** 32 sleep cycles of 20ms each, for a total task delay of 0.64 seconds. -** -** \par Limits: -** FM_CHILD_FILE_BLOCK_SIZE: The FM application limits this value to be no -** less than 256 bytes and no greater than 32KB. -** -** FM_CHILD_FILE_LOOP_COUNT: The FM application limits this value to be -** non-zero. There is no upper limit - a very large number effectively -** means that the FM child task will not surrender the CPU to other lower -** priority tasks. -** -** FM_CHILD_FILE_SLEEP_MS: The FM application limits this value to be no -** no greater than 100 ms. The value zero generally means a very short -** task delay - refer to the target platform documentation for specifics. -*/ -#define FM_CHILD_FILE_BLOCK_SIZE 2048 -#define FM_CHILD_FILE_LOOP_COUNT 16 -#define FM_CHILD_FILE_SLEEP_MS 20 - -/** \fmcfg Child file stat sleep -** -** \par Description: -** OS_stat is a CPU intensive call. FM uses the OS_stat call to query a -** file’s size, date, and mode when setting up directory listings. -** Querying a large number of files and/or files large in size when -** processing directory listing commands can cause FM to hog the CPU. To -** mitigate this, options to sleep a configurable number of milliseconds -** between calls to OS_stat for a configurable number of files -** in a directory listing is provided. A large sleep cycle will not hang the CPU -** but it may take a long time for directory listing to complete. A shorter -** sleep cycle will speed up the directory listing commands but may cause -** FM to hog the CPU. -** -** FM_CHILD_STAT_SLEEP_MS: The number of milliseconds to sleep each -** cycle. One cycle is FM_CHILD_STAT_SLEEP_FILECOUNT. -** -** FM_CHILD_STAT_SLEEP_FILECOUNT: The number of files to process (OS_stat) before -** sleeping FM_CHILD_STAT_SLEEP_MS. -** Works in tandem with FM_CHILD_STAT_SLEEP_MS to reduce CPU hogging -** while allowing slightly more customization to balance time the operator is waiting to -** get data back from a directory listing versus FM hogging the CPU with calls to OS_stat -** -** In short: -** High SLEEP_MS means less CPU hogging by FM but a longer time to process a dir listing command -** Low SLEEP_MS means more potential CPU hogging by FM but shorter time to process a dir listing command -** High FILECOUNT means more potential CPU hogging by FM but a shorter time to process a dir listing command -** Low FILECOUNT means less CPU hogging by FM but longer time to process a dir listing command -** \par Limits: -** The default is zero unless the mission needs require them to be changed. -** -*/ -#define FM_CHILD_STAT_SLEEP_MS 0 -#define FM_CHILD_STAT_SLEEP_FILECOUNT 0 - -/** \fmcfg Child Task Command Queue Entry Count -** -** \par Description: -** This definition sets the array depth for the command arguments queue in -** the FM main task to FM child task handshake interface. The value sets -** the upper limit for the number of commands that can be waiting in the -** queue to be processed by the low priority FM child task. A multi-entry -** command queue prevents the occasional slow command from being rejected -** because the child task has not yet completed the previous slow command. -** -** \par Limits: -** The FM application limits this value to be no less than 1 and no greater -** than 10. There must be at least one because this is the method for -** passing command arguments from the parent to the child task. The upper -** limit is arbitrary. -*/ -#define FM_CHILD_QUEUE_DEPTH 3 - - -/** \fmcfg Child Task Name - cFE object name -** -** \par Description: -** This definition sets the FM child task object name. The task object -** name is required during child task creation by cFE Executive Services. -** -** \par Limits: -** FM requires that this name be defined, but otherwise places -** no limits on the definition. Refer to CFE Executive Services -** for specific information on limits related to object names. -*/ -#define FM_CHILD_TASK_NAME "FM_CHILD_TASK" - - -/** \fmcfg Child Task Stack Size -** -** \par Description: -** This definition sets the size in bytes of the FM child task -** stack. It is highly recommended that this assignment be made -** by someone familiar with the system requirements for tasks -** running on the target platform. -** -** \par Limits: -** The FM application limits this value to be no less than 2048 -** and no greater than 20480. These limits are purely arbitrary -** and may need to be modified for specific platforms. -*/ -#define FM_CHILD_TASK_STACK_SIZE 20480 - - -/** \fmcfg Child Task Execution Priority -** -** \par Description: -** This definition sets the execution priority for the FM child -** task. It is highly recommended that this assignment be made -** by someone familiar with the system requirements for tasks -** running on the target platform. -** -** \par Limits: -** Value to be no less than 1 and no greater than 255. -** -** \par Priority Values: -** Note that a small value has higher priority than a large value. -** Thus, 100 is higher priority than 150. It is also necessary to -** ensure that a child task has lower priority than its parent. -** It should be clear that a child task that runs ahead of its -** parent defeats the purpose of having a child task to run in -** the background. -*/ -#define FM_CHILD_TASK_PRIORITY 208 - - -/** \fmcfg Child Task Semaphore Name - cFE object name -** -** \par Description: -** This definition sets the FM child task semaphore object name. -** The semaphore object name is required during semaphore creation -** by cFE Executive Services. -** -** \par Limits: -** FM requires that this name be defined, but otherwise places -** no limits on the definition. Refer to CFE Executive Services -** for specific information on limits related to object names. -*/ -#define FM_CHILD_SEM_NAME "FM_CHILD_SEM" - - -/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ -/* */ -/* FM platform configuration parameters - table definitions */ -/* */ -/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ - -/** \fmcfg Free Space Table Name - cFE object name -** -** \par Description: -** Table object name is required during table creation. -** -** \par Limits: -** FM requires that this name be defined, but otherwise places -** no limits on the definition. Refer to CFE Table Services -** for specific information on limits related to table names. -*/ -#define FM_TABLE_CFE_NAME "FreeSpace" - - -/** \fmcfg Free Space Table Name - filename with path -** -** \par Description: -** Table name with path is required to load table at startup. -** -** \par Limits: -** FM requires that this name be defined, but otherwise places -** no limits on the definition. If the named table does not -** exist or fails validation, the table load will fail. -*/ -#define FM_TABLE_DEF_NAME "/cf/apps/fm_freespace.tbl" - - -/** \fmcfg Free Space Table Name - filename without path -** -** \par Description: -** Table name without path defines the output name for the table -** file created during the table make process. -** -** \par Limits: -** FM requires that this name be defined, but otherwise places -** no limits on the definition. If the table name is not -** valid then the make process may fail, or the table file may -** be unloadable to the target hardware. -*/ -#define FM_TABLE_FILENAME "fm_freespace.tbl" - - -/** \fmcfg Free Space Table Description -** -** \par Description: -** Table files contain headers that include descriptive text. -** This text will be put into the file header during the table -** make process. -** -** \par Limits: -** FM requires that this name be defined, but otherwise places -** no limits on the definition. Refer to cFE Table Services -** for limits related to table descriptive text. -*/ -#define FM_TABLE_DEF_DESC "FM File System Free Space Table" - - -/** \fmcfg Number of Free Space Table Entries -** -** \par Description: -** This value defines the number of entries in both the FM file system -** free space table and the FM file system free space telemetry packet. -** Note: this value does not define the number of file systems present -** or supported by the CFE-OSAL, the value only defines the number of -** file systems for which FM may be enabled to report free space data. -** -** \par Limits: -** FM limits this value to be not less than 1 and not greater than 16. -*/ -#define FM_TABLE_ENTRY_COUNT 8 - - -/** \fmcfg Table Data Validation Error Code -** -** \par Description: -** Table data is verified during the table load process. Should -** the validation process fail, this value will be returned by -** FM to cFE Table Services and displayed in an event message. -** -** \par Limits: -** FM requires that this value be defined, but otherwise places -** no limits on the definition. Refer to cFE Table Services -** for limits related to error return values. -*/ -#define FM_TABLE_VALIDATION_ERR (0xCF000080L) - - -#endif /* FM_PLATFORM_CFG_H */ - -/************************/ -/* End of File Comment */ -/************************/ diff --git a/config/obc/cpd/inc/gps_platform_cfg.h b/config/obc/cpd/inc/gps_platform_cfg.h deleted file mode 100644 index 57e4df39d..000000000 --- a/config/obc/cpd/inc/gps_platform_cfg.h +++ /dev/null @@ -1,124 +0,0 @@ -#ifndef GPS_PLATFORM_CFG_H -#define GPS_PLATFORM_CFG_H - -#ifdef __cplusplus -extern "C" { -#endif - -#define GPS_CUSTOM_CHILD_TASK_FLAGS OS_ENABLE_CORE_0 - -/* -** GPS Platform Configuration Parameter Definitions -*/ - -/** \brief Mission specific version number for GPS application -** -** \par Description: -** An application version number consists of four parts: -** major version number, minor version number, revision -** number and mission specific revision number. The mission -** specific revision number is defined here and the other -** parts are defined in "amc_version.h". -** -** \par Limits: -** Must be defined as a numeric value that is greater than -** or equal to zero. -*/ -#define GPS_MISSION_REV (0) - -/** \brief Pipe depth for the Scheduler pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define GPS_SCH_PIPE_DEPTH (2) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define GPS_SCH_PIPE_NAME ("GPS_SCH_PIPE") - -/** \brief The SB pend behavior type for the Scheduler pipe. -** -** \par Limits: -** One of: CFE_SB_POLL, CFE_SB_PEND_FOREVER, or the -** number of milliseconds to wait for a new message (recommended). -** Note, using CFE_SB_PEND_FOREVER may cause an unresponsive -** application if no messages arrive on this pipe. -*/ -#define GPS_SCH_PIPE_PEND_TIME (2000) - -/** \brief The number of WAKEUP messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max limited to CFE_SB_MAX_PIPE_DEPTH-1. Note the -** GPS_READ_SENSOR_MID_MAX_MSG_COUNT and GPS_SEND_HK_MID_MAX_MSG_COUNT -** must be less than GPS_SCH_PIPE_DEPTH. -*/ -#define GPS_READ_SENSOR_MID_MAX_MSG_COUNT (1) - -/** \brief The number of SEND_HK messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. Note the -** GPS_READ_SENSOR_MID_MAX_MSG_COUNT and GPS_SEND_HK_MID_MAX_MSG_COUNT -** must be less than GPS_SCH_PIPE_DEPTH. -*/ -#define GPS_SEND_HK_MID_MAX_MSG_COUNT (1) - -/** \brief Pipe depth for the command pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define GPS_CMD_PIPE_DEPTH (4) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define GPS_CMD_PIPE_NAME ("GPS_CMD_PIPE") - -/** \brief Pipe depth for the data pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define GPS_DATA_PIPE_DEPTH (4) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define GPS_DATA_PIPE_NAME ("GPS_DATA_PIPE") - -/** \brief The config table default filename -** -** \par Limits: -** The length of each string, including the NULL terminator cannot exceed -** the #OS_MAX_PATH_LEN value. -*/ -#define GPS_CONFIG_TABLE_FILENAME ("/cf/apps/gps_config.tbl") - -/** \brief The timeout value, in milliseconds, to wait for ES application startup sync. -** -** \par Limits: -** This parameter must be at least 1000 (ms). -*/ -#define GPS_STARTUP_TIMEOUT_MSEC (1000) - - -#ifdef __cplusplus -} -#endif - -#endif /* GPS_PLATFORM_CFG_H */ - -/************************/ -/* End of File Comment */ -/************************/ - diff --git a/config/obc/cpd/inc/hk_msgids.h b/config/obc/cpd/inc/hk_msgids.h deleted file mode 100644 index ab602d518..000000000 --- a/config/obc/cpd/inc/hk_msgids.h +++ /dev/null @@ -1,11 +0,0 @@ -#ifndef HK_MSGIDS_H -#define HK_MSGIDS_H - - -#include "msg_ids.h" - -#endif /* HK_MSGIDS_H */ - -/************************/ -/* End of File Comment */ -/************************/ diff --git a/config/obc/cpd/inc/hk_platform_cfg.h b/config/obc/cpd/inc/hk_platform_cfg.h deleted file mode 100644 index bd46c7291..000000000 --- a/config/obc/cpd/inc/hk_platform_cfg.h +++ /dev/null @@ -1,123 +0,0 @@ -#ifndef HK_PLATFORM_CFG_H -#define HK_PLATFORM_CFG_H - - - -/************************************************************************* -** Macro definitions -**************************************************************************/ - -/** -** \hkcfg Application Pipe Depth -** -** \par Description: -** Dictates the pipe depth of the hk command pipe. -** -** \par Limits -** The minimum size of this paramater is 1 -** The maximum size dictated by cFE platform configuration -** parameter CFE_SB_MAX_PIPE_DEPTH -*/ -#define HK_PIPE_DEPTH 40 - - -/** -** \hkcfg Discard Incomplete Combo Packets -** -** \par Description: -** Dictates whether combo packets that have not had all data contents -** updated since last requested will be discarded (YES = 1) or sent -** anyway (NO = 0). -** -** \par Limits -** This parameter can be set to 0 or 1 only. -*/ -#define HK_DISCARD_INCOMPLETE_COMBO 0 - - -/** -** \hkcfg Maximum Number of HK Copy Table Entries -** -** \par Description: -** Dictates the number of elements in the hk copy table. -** -** \par Limits -** The maximum size of this paramater is 8192 -*/ -#define HK_COPY_TABLE_ENTRIES 128 - - -/** -** \hkcfg Number of bytes in the HK Memory Pool -** -** \par Description: -** The HK memory pool contains the memory needed for the output packets. -** The output packets are dynamically allocated from this pool when the -** HK copy table is initially processed or loaded with new data. -** -** \par Limits -** The Housekeeping app does not place a limit on this parameter, but there is -** an overhead cost in the memory pool. The value must be larger than what is -** needed. -*/ -#define HK_NUM_BYTES_IN_MEM_POOL (6 * 1024) - - -/** -** \hkcfg Name of the HK Copy Table -** -** \par Description: -** This parameter defines the name of the HK Copy Table. -** -** \par Limits -** The Housekeeping app does not place a limit on this parameter -*/ -#define HK_COPY_TABLE_NAME "CopyTable" - - -/** -** \hkcfg Name of the HK Run-time Table -** -** \par Description: -** This parameter defines the name of the HK Run-time Table. -** -** \par Limits -** The Housekeeping app does not place a limit on this parameter -*/ -#define HK_RUNTIME_TABLE_NAME "RuntimeTable" - - -/** -** \hkcfg HK Copy Table Filename -** -** \par Description: -** The value of this constant defines the filename of the HK Copy Table -** -** \par Limits -** The length of each string, including the NULL terminator cannot exceed -** the #OS_MAX_PATH_LEN value. -*/ - -#define HK_COPY_TABLE_FILENAME "/cf/apps/hk_cpy_tbl.tbl" - -/** \hkcfg Mission specific version number for HK application -** -** \par Description: -** An application version number consists of four parts: -** major version number, minor version number, revision -** number and mission specific revision number. The mission -** specific revision number is defined here and the other -** parts are defined in "hk_version.h". -** -** \par Limits: -** Must be defined as a numeric value that is greater than -** or equal to zero. -*/ -#define HK_MISSION_REV 0 - - -#endif /* HK_PLATFORM_CFG_H */ - -/************************/ -/* End of File Comment */ -/************************/ diff --git a/config/obc/cpd/inc/hmc5883_platform_cfg.h b/config/obc/cpd/inc/hmc5883_platform_cfg.h deleted file mode 100644 index 0a27fcb81..000000000 --- a/config/obc/cpd/inc/hmc5883_platform_cfg.h +++ /dev/null @@ -1,134 +0,0 @@ -#ifndef HMC5883_PLATFORM_CFG_H -#define HMC5883_PLATFORM_CFG_H - -#ifdef __cplusplus -extern "C" { -#endif - -/* -** HMC5883 Platform Configuration Parameter Definitions -*/ - -/** \brief Mission specific version number for HMC5883 application -** -** \par Description: -** An application version number consists of four parts: -** major version number, minor version number, revision -** number and mission specific revision number. The mission -** specific revision number is defined here and the other -** parts are defined in "amc_version.h". -** -** \par Limits: -** Must be defined as a numeric value that is greater than -** or equal to zero. -*/ -#define HMC5883_MISSION_REV (0) - -/** \brief Pipe depth for the Scheduler pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define HMC5883_SCH_PIPE_DEPTH (2) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define HMC5883_SCH_PIPE_NAME ("HMC5883_SCH_PIPE") - -/** \brief The SB pend behavior type for the Scheduler pipe. -** -** \par Limits: -** One of: CFE_SB_POLL, CFE_SB_PEND_FOREVER, or the -** number of milliseconds to wait for a new message (recommended). -** Note, using CFE_SB_PEND_FOREVER may cause an unresponsive -** application if no messages arrive on this pipe. -*/ -#define HMC5883_SCH_PIPE_PEND_TIME (2000) - -/** \brief The number of WAKEUP messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max limited to CFE_SB_MAX_PIPE_DEPTH-1. Note the -** HMC5883_WAKEUP_MID_MAX_MSG_COUNT and HMC5883_SEND_HK_MID_MAX_MSG_COUNT -** must be less than HMC5883_SCH_PIPE_DEPTH. -*/ -#define HMC5883_WAKEUP_MID_MAX_MSG_COUNT (1) - -/** \brief The number of SEND_HK messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. Note the -** HMC5883_WAKEUP_MID_MAX_MSG_COUNT and HMC5883_SEND_HK_MID_MAX_MSG_COUNT -** must be less than HMC5883_SCH_PIPE_DEPTH. -*/ -#define HMC5883_SEND_HK_MID_MAX_MSG_COUNT (1) - -/** \brief Pipe depth for the command pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define HMC5883_CMD_PIPE_DEPTH (4) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define HMC5883_CMD_PIPE_NAME ("HMC5883_CMD_PIPE") - -/** \brief Pipe depth for the data pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define HMC5883_DATA_PIPE_DEPTH (4) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define HMC5883_DATA_PIPE_NAME ("HMC5883_DATA_PIPE") - -/** \brief The config table default filename -** -** \par Limits: -** The length of each string, including the NULL terminator cannot exceed -** the #OS_MAX_PATH_LEN value. -*/ -#define HMC5883_CONFIG_TABLE_FILENAME ("/cf/apps/hmc5883_config.tbl") - -/** \brief The timeout value, in milliseconds, to wait for ES application startup sync. -** -** \par Limits: -** This parameter must be at least 1000 (ms). -*/ -#define HMC5883_STARTUP_TIMEOUT_MSEC (1000) - -/** \brief Mag divider for calculated scaling */ -#define HMC5883_MAG_DIVIDER (820.0f) - -/** \brief Mag unit for calculated scaling */ -#define HMC5883_MAG_UNIT (1.0f) - -/** \brief Precalculated mag range */ -#define HMC5883_CALC_MAG_RANGE (1.9f) - -/** \brief Precalculated mag scaling */ -#define HMC5883_CALC_MAG_SCALING (HMC5883_MAG_UNIT / HMC5883_MAG_DIVIDER) - - -#ifdef __cplusplus -} -#endif - -#endif /* HMC5883_PLATFORM_CFG_H */ - -/************************/ -/* End of File Comment */ -/************************/ - diff --git a/config/obc/cpd/inc/hs_msgids.h b/config/obc/cpd/inc/hs_msgids.h deleted file mode 100644 index 8db455fb4..000000000 --- a/config/obc/cpd/inc/hs_msgids.h +++ /dev/null @@ -1,10 +0,0 @@ -#ifndef HS_MSGIDS_H -#define HS_MSGIDS_H - -#include "msg_ids.h" - -#endif /*HS_MSGIDS_H*/ - -/************************/ -/* End of File Comment */ -/************************/ diff --git a/config/obc/cpd/inc/hs_platform_cfg.h b/config/obc/cpd/inc/hs_platform_cfg.h deleted file mode 100644 index 1c18853e0..000000000 --- a/config/obc/cpd/inc/hs_platform_cfg.h +++ /dev/null @@ -1,606 +0,0 @@ -#ifndef HS_PLATFORM_CFG_H -#define HS_PLATFORM_CFG_H - -/** \hscfg Application Name -** -** \par Description: -** This definition must match the name used at startup by the cFE -** Executive Services when creating the HS application. Note that -** application names are also an argument to certain cFE commands. -** For example, the application name is needed to access tables -** via cFE Table Services commands. -** -** \par Limits: -** HS requires that this name be defined, but otherwise places -** no limits on the definition. Refer to CFE Executive Services -** for specific information on limits related to application names. -*/ -#define HS_APP_NAME "HS" - -/**\hscfg Idle Task Configuration Parameters (custom) -** -** \par Description: -** These parameters are used by #CFE_ES_CreateChildTask -** Note that these values are only necessarily relevant in the -** default hs_custom.c. -** -** \par Limits: -** These limits will vary by platform and available resources. -*/ -#define HS_IDLE_TASK_NAME "HS_IDLE_TASK" -#define HS_IDLE_TASK_STACK_PTR 0 -#define HS_IDLE_TASK_STACK_SIZE 4096 -#define HS_IDLE_TASK_FLAGS 0 - -/**\hscfg Idle Task Priority (custom) -** -** \par Description: -** This parameter is used to set the priority of the Idle Task. It should -** be higher than all other user created tasks, but may need to be set lower -** than the maximum value if an OS uses its own minimum priority task. -** Note that these values are only necessarily relevant in the -** default hs_custom.c. -** -** \par Limits: -** This parameter can't be larger than 255. -*/ -#define HS_IDLE_TASK_PRIORITY 255 - -/** \hscfg Maximum reported execution counters -** -** \par Description: -** Maximum number of execution counters that can be -** specified to be reported in telemetry. -** -** \par Limits: -** This parameter can't be larger than an unsigned 32 bit -** integer (4294967295). -** -** This parameter will dictate the size of the Execution -** Counter Table (XCT): -** -** XCT Size = HS_MAX_EXEC_CNT_SLOTS * sizeof(#HS_XCTEntry_t) -** -** The total size of this table should not exceed the -** cFE size limit for a single buffered table set by the -** #CFE_TBL_MAX_SNGL_TABLE_SIZE parameter -*/ -#define HS_MAX_EXEC_CNT_SLOTS 32 - -/** \hscfg Maximum message action types -** -** \par Description: -** Maximum number of Message Action action types. -** -** \par Limits: -** This parameter can't be larger than 4 less than an -** unsigned 16 bit integer (65531). -** -** This parameter must be greater than 0. -** -** This parameter will influence the size of the Message -** Action Table (MAT): -** -** MAT Size = HS_MAX_MSG_ACT_TYPES * (HS_MAX_MSG_ACT_SIZE + 4) -** -** The total size of this table should not exceed the -** cFE size limit for a single buffered table set by the -** #CFE_TBL_MAX_SNGL_TABLE_SIZE parameter -*/ -#define HS_MAX_MSG_ACT_TYPES 8 - -/** \hscfg Maximum message action size (in bytes) -** -** \par Description: -** Size in bytes of maximum length of software bus message that -** can be sent using a Message Action action type. -** -** \par Limits: -** This parameter can't be larger than #CFE_SB_MAX_SB_MSG_SIZE -** -** This parameter can't be smaller than a packet header -** -** This parameter will influence the size of the Message -** Action Table (MAT): -** -** MAT Size = HS_MAX_MSG_ACT_TYPES * (HS_MAX_MSG_ACT_SIZE + 4) -** -** The total size of this table should not exceed the -** cFE size limit for a single buffered table set by the -** #CFE_TBL_MAX_SNGL_TABLE_SIZE parameter -*/ -#define HS_MAX_MSG_ACT_SIZE 16 - -/** \hscfg Maximum number of monitored applications -** -** \par Description: -** Maximum number of applications that can be -** monitored to assure check-ins -** -** \par Limits: -** This parameter can't be larger than an unsigned 32 bit -** integer (4294967295). -** -** This parameter must be greater than 0. -** -** This parameter will dictate the size of the Application -** Monitor Table (AMT): -** -** AMT Size = HS_MAX_MONITORED_APPS * sizeof(#HS_AMTEntry_t) -** -** The total size of this table should not exceed the -** cFE size limit for a single buffered table set by the -** #CFE_TBL_MAX_SNGL_TABLE_SIZE parameter -*/ -#define HS_MAX_MONITORED_APPS 32 - -/** \hscfg Maximum number of monitored events -** -** \par Description: -** Maximum number of events that can be -** monitored -** -** \par Limits: -** This parameter can't be larger than an unsigned 32 bit -** integer (4294967295). -** -** This parameter must be greater than 0. -** -** This parameter will dictate the size of the Event -** Monitor Table (EMT): -** -** EMT Size = HS_MAX_MONITORED_EVENTS * sizeof(#HS_EMTEntry_t) -** -** The total size of this table should not exceed the -** cFE size limit for a single buffered table set by the -** #CFE_TBL_MAX_SNGL_TABLE_SIZE parameter -*/ -#define HS_MAX_MONITORED_EVENTS 16 - -/** \hscfg Watchdog Timeout Value -** -** \par Description: -** Number of milliseconds before a watchdog timeout occurs. -** -** \par Limits: -** This parameter can't be larger than an unsigned 32 bit -** integer (4294967295). -** -** This parameter must be greater than 0. -*/ -#define HS_WATCHDOG_TIMEOUT_VALUE 10000 - -/** -** \hscfg Time to wait after performing processing (in milliseconds) -** -** \par Description: -** Dictates the length of a task delay performed prior to checking -** the Software Bus for a Wakeup Message. This ensures that HS will -** run no more often than a certain rate. If this parameter is set to 0, -** no task delay will be performed. Time is in milliseconds. -** -** \par Limits -** This parameter can't be larger than an unsigned 32 bit -** integer (4294967295). -*/ -#define HS_POST_PROCESSING_DELAY 0 - -/** -** \hscfg Wakeup Message Software Bus Timeout -** -** \par Description: -** This parameter is passed into #CFE_SB_RcvMsg as the timeout value. -** It can specify #CFE_SB_POLL, #CFE_SB_PEND_FOREVER, or a timeout -** value in milliseconds. -** -** \par Limits -** This Parameter must be #CFE_SB_POLL, #CFE_SB_PEND_FOREVER, -** or greater than 0 and less than 2^31 - 1 -** -** As a timeout, this parameter should be less than -** (#HS_WATCHDOG_TIMEOUT_VALUE * 1000) - HS runtime in ms -** otherwise HS may not be able to service the watchdog in time. -*/ -#define HS_WAKEUP_TIMEOUT 1200 - -/** \hscfg CPU aliveness output string -** -** \par Description: -** String that is output to via #OS_printf periodically if aliveness -** is enabled. -** -** \par Limits: -** None. -** -*/ -#define HS_CPU_ALIVE_STRING "." - -/** \hscfg CPU aliveness output period -** -** \par Description: -** Rate in number of HS cycles at which the HS_CPU_ALIVE_STRING -** is output via the UART. -** -** \par Limits: -** This parameter can't be larger than an unsigned 32 bit -** integer (4294967295). -** -*/ -#define HS_CPU_ALIVE_PERIOD 5 - -/** \hscfg Max Number of Processor Resets that may be performed by HS -** -** \par Description: -** Maximum number of times that the HS App will attempt a processor -** reset as the result of either an Application Monitor or -** Event Monitor Failure -** -** \par Limits: -** This parameter can't be larger than an unsigned 16 bit -** integer (65535). -** -** Although not enforced, if this parameter is greater than or -** equal to #CFE_ES_MAX_PROCESSOR_RESETS then a POWER-ON reset -** will occur before the max count is reached, resetting the remaining -** actions to the value set here. -** -*/ -#define HS_MAX_RESTART_ACTIONS 3 - -/** \hscfg Software bus command pipe depth -** -** \par Description: -** Depth of the software bus pipe HS uses for commands and HK requests. -** Used during initialization in the call to #CFE_SB_CreatePipe -** -** \par Limits: -** This parameter can't be larger than #CFE_SB_MAX_PIPE_DEPTH -** -** This parameter must be greater than 0. -*/ -#define HS_CMD_PIPE_DEPTH 12 - -/** \hscfg Software bus event pipe depth -** -** \par Description: -** Depth of the software bus pipe HS uses for event monitoring. -** This should be set to supply sufficient room for the expected event -** message load per second. Used during initialization in the call to -** #CFE_SB_CreatePipe -** -** \par Limits: -** This parameter can't be larger than #CFE_SB_MAX_PIPE_DEPTH -** -** This parameter must be greater than 0. -*/ -#define HS_EVENT_PIPE_DEPTH 32 - -/** \hscfg Software bus wakeup pipe depth -** -** \par Description: -** Depth of the software bus pipe HS uses for wakeup messages. -** Used during initialization in the call to #CFE_SB_CreatePipe -** -** \par Limits: -** This parameter can't be larger than #CFE_SB_MAX_PIPE_DEPTH -** -** This parameter must be greater than 0. -*/ -#define HS_WAKEUP_PIPE_DEPTH 1 - -/** -** \hscfg Time to wait before a processor reset (in milliseconds) -** -** \par Description: -** Dictates the length of the task delay (milliseconds) performed prior -** to calling #CFE_ES_ResetCFE to allow for any event message to go out. -** -** \par Limits -** This parameter can't be larger than an unsigned 32 bit -** integer (4294967295). -*/ -#define HS_RESET_TASK_DELAY 50 - -/** -** \hscfg Time to wait for all apps to be started (in milliseconds) -** -** \par Description: -** Dictates the timeout for the #CFE_ES_WaitForStartupSync call that -** HS uses to wait for all of the Applications specified in the startup -** script to finish initialization. HS will wait this amount of time -** before assuming all startup script applications have been started and -** will then begin nominal processing. -** -** \par Limits -** This parameter can't be larger than an unsigned 32 bit -** integer (4294967295). -** -** This should be greater than or equal to the Startup Sync timeout for -** any application in the Application Monitor Table. -*/ -#define HS_STARTUP_SYNC_TIMEOUT 65000 - -/** \hscfg Default State of the Application Monitor -** -** \par Description: -** State the Application Monitor is set to when the HS -** application starts. -** -** \par Limits: -** Must be HS_STATE_ENABLED or HS_STATE_DISABLED -*/ -#define HS_APPMON_DEFAULT_STATE HS_STATE_ENABLED - -/** \hscfg Default State of the Event Monitor -** -** \par Description: -** State the Event Monitor is set to when the HS -** application starts. -** -** \par Limits: -** Must be HS_STATE_ENABLED or HS_STATE_DISABLED -*/ -#define HS_EVENTMON_DEFAULT_STATE HS_STATE_ENABLED - -/** \hscfg Default State of the Aliveness Indicator -** -** \par Description: -** State the Aliveness Indicator is set to when the HS application -** starts. -** -** \par Limits: -** Must be HS_STATE_ENABLED or HS_STATE_DISABLED -*/ -#define HS_ALIVENESS_DEFAULT_STATE HS_STATE_ENABLED - -/** \hscfg Default State of the CPU Hogging Indicator -** -** \par Description: -** State the CPU Hogging Event Message is set to when the HS application -** starts. -** -** \par Limits: -** Must be HS_STATE_ENABLED or HS_STATE_DISABLED -*/ -#define HS_CPUHOG_DEFAULT_STATE HS_STATE_ENABLED - -/** \hscfg Application Monitor Table (AMT) filename -** -** \par Description: -** Default file to load the Applications Monitor Table from -** during a power-on reset sequence -** -** \par Limits: -** This string shouldn't be longer than #OS_MAX_PATH_LEN for the -** target platform in question -*/ -#define HS_AMT_FILENAME "/cf/apps/hs_amt.tbl" - -/** \hscfg Event Monitor Table (EMT) filename -** -** \par Description: -** Default file to load the Event Monitor Table from -** during a power-on reset sequence -** -** \par Limits: -** This string shouldn't be longer than #OS_MAX_PATH_LEN for the -** target platform in question -*/ -#define HS_EMT_FILENAME "/cf/apps/hs_emt.tbl" - -/** \hscfg Execution Counter Table (XCT) filename -** -** \par Description: -** Default file to load the Execution Counters Table from -** during a power-on reset sequence -** -** \par Limits: -** This string shouldn't be longer than #OS_MAX_PATH_LEN for the -** target platform in question -*/ -#define HS_XCT_FILENAME "/cf/apps/hs_xct.tbl" - -/** \hscfg Message Actions Table (MAT) filename -** -** \par Description: -** Default file to load the Message Actions Table from -** during a power-on reset sequence -** -** \par Limits: -** This string shouldn't be longer than #OS_MAX_PATH_LEN for the -** target platform in question -*/ -#define HS_MAT_FILENAME "/cf/apps/hs_mat.tbl" - -/** \hscfg CPU Utilization Calls per Mark (custom) -** -** \par Description: -** Number of times the Mark function must be called before it actually -** marks the time. This influences the interval size. The function -** calling the Mark function may not run at the same rate as the HS cycle -** (or HS may not want to monitor utilization every cycle) so this the -** interval to be at least as long as an HS cycle. -** Note that these values are only necessarily relevant in the -** default hs_custom.c. -** -** \par Limits: -** This parameter can't be larger than an unsigned 32 bit -** integer (4294967295). -*/ -#define HS_UTIL_CALLS_PER_MARK 1 - -/** \hscfg CPU Utilization Cycles per Interval (custom) -** -** \par Description: -** Number of HS Cycles it takes to complete a CPU Utilization Interval. -** HS will monitor the utilization after this number of HS wakeup cycles. -** Note that these values are only necessarily relevant in the -** default hs_custom.c. -** -** \par Limits: -** This parameter can't be larger than an unsigned 32 bit -** integer (4294967295). -*/ -#define HS_UTIL_CYCLES_PER_INTERVAL 1 - -/** \hscfg CPU Utilization Total Utils Per Interval -** -** \par Description: -** Number of Utils (counts) equal to full utilization. This allows for higher -** resolution than percentages, and non decimal based values. -** -** \par Limits: -** This parameter can't be larger than an unsigned 32 bit -** integer (4294967295). -*/ -#define HS_UTIL_PER_INTERVAL_TOTAL 10000 - -/** \hscfg CPU Utilization Hogging Utils Per Interval -** -** \par Description: -** Number of Utils (counts) equal to utilization which is considered hogging -** during one interval. A greater number of counts is also considered hogging. -** -** \par Limits: -** This parameter can't be larger than #HS_UTIL_PER_INTERVAL_TOTAL. -*/ -#define HS_UTIL_PER_INTERVAL_HOGGING 9900 - -/** \hscfg CPU Utilization Conversion Factor Multiplication 1 (custom) -** -** \par Description: -** First multiplication conversion factor. Number of idle ticks is multiplied -** this value first when converting to utils. -** Note that these values are only necessarily relevant in the -** default hs_custom.c. -** -** \par Limits: -** There may be processor dependent limits on value. Note that all math -** is done using "uint32" values; it is important that the number -** of loop iterations in HS_IDLE, times this value, not overflow. -** -** The result of the conversion must be a 32 bit signed integer -** (between -2147483648 and 2147483647). -*/ -#define HS_UTIL_CONV_MULT1 1 - -/** \hscfg CPU Utilization Conversion Factor Division (custom) -** -** \par Description: -** Division conversion factor. Number of idle ticks is divided by this value -** after it has been multiplied by #HS_UTIL_CONV_MULT1. -** Note that these values are only necessarily relevant in the -** default hs_custom.c. -** -** \par Limits: -** There may be processor dependent limits on value. -** -** The result of the conversion must be a 32 bit signed integer -** (between -2147483648 and 2147483647). -*/ -#define HS_UTIL_CONV_DIV 1 - -/** \hscfg CPU Utilization Conversion Factor Multiplication 2 (custom) -** -** \par Description: -** Second multiplication conversion factor. Number of idle ticks is multiplied -** this value after being divided by #HS_UTIL_CONV_DIV after being multiplied by -** #HS_UTIL_CONV_MULT1 when converting to utils. -** Note that these values are only necessarily relevant in the -** default hs_custom.c. -** -** \par Limits: -** There may be processor dependent limits on value. -** -** The result of the conversion must be a 32 bit signed integer -** (between -2147483648 and 2147483647). -*/ -#define HS_UTIL_CONV_MULT2 1 - -/** \hscfg CPU Utilization Hogging Timeout -** -** \par Description: -** Number of intervals for which the hogging limit must be exceeded before hogging -** is reported. -** -** \par Limits: -** This parameter can't be larger than an unsigned 32 bit -** integer (4294967295). -*/ -#define HS_UTIL_HOGGING_TIMEOUT 5 - -/** \hscfg CPU Peak Utilization Number of Intervals -** -** \par Description: -** Number of intervals over which the peak utilization is determined. -** -** \par Limits: -** This parameter can't be larger than an unsigned 32 bit -** integer (4294967295). -** -** This parameter controls the size of the array which stores -** previously measured utilization values. -*/ -#define HS_UTIL_PEAK_NUM_INTERVAL 64 - -/** \hscfg CPU Average Utilization Number of Intervals -** -** \par Description: -** Number of intervals over which the average utilization is computed. -** -** \par Limits: -** This parameter can't be larger than #HS_UTIL_PEAK_NUM_INTERVAL . -*/ -#define HS_UTIL_AVERAGE_NUM_INTERVAL 4 - -/** \hscfg CPU Utilization Diagnostics Mask (custom) -** -** \par Description: -** Count mask for CPU Utilization Calibration. Time will be marked -** when (Counts & Mask) == Mask -** Note that these values are only necessarily relevant in the -** default hs_custom.c. -** -** \par Limits: -** This parameter can't be larger than an unsigned 32 bit -** integer (4294967295). -*/ -#define HS_UTIL_DIAG_MASK 0xFFFFFFFF - -/** \hscfg CPU Utilization Diagnostics Array Configuration (custom) -** -** \par Description: -** Time will be marked into an array of subseconds. The independant parameter -** controls the exponent to which 2 is raised to determine the array size. As -** such, large values will require significant memory usage. -** Note that these values are only necessarily relevant in the -** default hs_custom.c. -** -** \par Limits: -** This parameter must be less than 32 and may not be negative. -*/ -#define HS_UTIL_TIME_DIAG_ARRAY_POWER 4 -#define HS_UTIL_TIME_DIAG_ARRAY_LENGTH (1<<(HS_UTIL_TIME_DIAG_ARRAY_POWER)) -#define HS_UTIL_TIME_DIAG_ARRAY_MASK (HS_UTIL_TIME_DIAG_ARRAY_LENGTH - 1) - - -/** \hscfg Mission specific version number for HS application -** -** \par Description: -** An application version number consists of four parts: -** major version number, minor version number, revision -** number and mission specific revision number. The mission -** specific revision number is defined here and the other -** parts are defined in "hs_version.h". -** -** \par Limits: -** Must be defined as a numeric value that is greater than -** or equal to zero. -*/ -#define HS_MISSION_REV 0 - -#endif /*HS_PLATFORM_CFG_H*/ - -/************************/ -/* End of File Comment */ -/************************/ diff --git a/config/obc/cpd/inc/lc_msgids.h b/config/obc/cpd/inc/lc_msgids.h deleted file mode 100644 index 38f2e04f9..000000000 --- a/config/obc/cpd/inc/lc_msgids.h +++ /dev/null @@ -1,13 +0,0 @@ -#ifndef LC_MSGIDS_H -#define LC_MSGIDS_H - -#include "msg_ids.h" - -#define LC_ALL_ACTIONPOINTS 0xFFFF -#define LC_ALL_WATCHPOINTS 0xFFFF - -#endif /*LC_MSGIDS_H*/ - -/************************/ -/* End of File Comment */ -/************************/ diff --git a/config/obc/cpd/inc/lc_platform_cfg.h b/config/obc/cpd/inc/lc_platform_cfg.h deleted file mode 100644 index 3255f78b7..000000000 --- a/config/obc/cpd/inc/lc_platform_cfg.h +++ /dev/null @@ -1,224 +0,0 @@ -#ifndef LC_PLATFORM_CFG_H -#define LC_PLATFORM_CFG_H - -/** \lccfg Application Name -** -** \par Description: -** This definition must match the name used at startup by the cFE -** Executive Services when creating the LC application. Note that -** application names are also an argument to certain cFE commands. -** For example, the application name is needed to access tables -** via cFE Table Services commands. -** -** \par Limits: -** LC requires that this name be defined, but otherwise places -** no limits on the definition. Refer to CFE Executive Services -** for specific information on limits related to application names. -*/ -#define LC_APP_NAME "LC" - - -/** \lccfg Command Pipe Depth -** -** \par Description: -** Maximum number of messages that will be allowed in the -** LC command pipe at one time. Used during initialization -** in the call to #CFE_SB_CreatePipe -** -** \par Limits: -** This parameter can't be larger than an unsigned 16 bit -** integer (65535). -*/ -#define LC_PIPE_DEPTH 12 - -/** \lccfg Maximum number of watchpoints -** -** \par Description: -** Maximum number of watchpoints that can be defined in the -** Watchpoint Definition Table (WDT) -** -** \par Limits: -** This parameter can't be larger than 65520 (0xFFF0) because -** higher values are reserved for use as Reversh Polish -** operators. -** -** This parameter will dictate the size of the Watchpoint -** Definition Table: -** -** WDT Size = LC_MAX_WATCHPOINTS * sizeof(#LC_WDTEntry_t) -** -** The total size of this table should not exceed the -** cFE size limit for a single buffered table set by the -** #CFE_TBL_MAX_SNGL_TABLE_SIZE parameter -*/ -#define LC_MAX_WATCHPOINTS 176 - -/** \lccfg Maximum number of actionpoints -** -** \par Description: -** Maximum number of actionpoints that can be defined in the -** Actionpoint Definition Table (ADT) -** -** \par Limits: -** This parameter can't be larger than an unsigned 16 bit -** integer (65535). -** -** This parameter will dictate the size of the Actionpoint -** Definition Table: -** -** ADT Size = LC_MAX_ACTIONPOINTS * sizeof(#LC_ADTEntry_t) -** -** The total size of this table should not exceed the -** cFE size limit for a single buffered table set by the -** #CFE_TBL_MAX_SNGL_TABLE_SIZE parameter -*/ -#define LC_MAX_ACTIONPOINTS 176 - -/** \lccfg LC state after power-on reset -** -** \par Description: -** What operating state LC should initialize to after a power-on -** reset. -** -** \par Limits: -** This parameter must be one of the following: -** #LC_STATE_ACTIVE -** #LC_STATE_PASSIVE -** #LC_STATE_DISABLED -*/ -#define LC_STATE_POWER_ON_RESET LC_STATE_DISABLED - -/** \lccfg Save data to CDS compiler switch -** -** \par Description: -** Compile switch that tells LC that we should save data -** over a processor or application reset by using the -** Critical Data Store (CDS). -** Comment out or \#undef to force LC to do a default (power-on) -** initialization sequence on all restarts (this is the -** default case). -** -** \par Limits: -** n/a -*/ -/* #define LC_SAVE_TO_CDS */ - -/** \lccfg LC state when CDS is restored -** -** \par Description: -** What operating state LC should initialize to after successfully -** restoring information from the CDS after a processor or -** application reset. This is only used when #LC_SAVE_TO_CDS -** is set to TRUE, and provides a way to override any state LC -** may have been operating in prior to the reset occurring. -** -** \par Limits: -** This parameter must be one of the following: -** #LC_STATE_ACTIVE -** #LC_STATE_PASSIVE -** #LC_STATE_DISABLED -** #LC_STATE_FROM_CDS -*/ -#define LC_STATE_WHEN_CDS_RESTORED LC_STATE_FROM_CDS - -/** \lccfg Watchpoint Definition Table (WDT) filename -** -** \par Description: -** Default file to load the watchpoint definition table from -** during a power-on reset sequence -** -** \par Limits: -** This string shouldn't be longer than #OS_MAX_PATH_LEN for the -** target platform in question -*/ -#define LC_WDT_FILENAME "/cf/apps/lc_def_wdt.tbl" - -/** \lccfg Actionpoint Definition Table (ADT) filename -** -** \par Description: -** Default file to load the actionpoint definition table from -** during a power-on reset sequence -** -** \par Limits: -** This string shouldn't be longer than #OS_MAX_PATH_LEN for the -** target platform in question -*/ -#define LC_ADT_FILENAME "/cf/apps/lc_def_adt.tbl" - -/** \lccfg Maximum reverse polish (RPN) equation size -** -** \par Description: -** Maximum combined number of operators and operands that may -** exist in an actionpoint definition's reverse polish equation -** -** \par Limits: -** The LC app does not place a limit on this parameter. -** However, raising this value will increase the size of the -** Actionpoint Definition Table (ADT) -*/ -#define LC_MAX_RPN_EQU_SIZE 20 - -/** \lccfg Maximum actionpoint event text string size -** -** \par Description: -** Maximum length of the event message string that can specified -** in an actionpoint definition (including NUL terminator) -** -** \par Limits: -** LC appends the trailer text #LC_AP_EVENT_TAIL_STR to this -** string when reporting actionpoint failures. The size of this -** string is #LC_AP_EVENT_TAIL_LEN -** -** The total value of LC_MAX_ACTION_TEXT + #LC_AP_EVENT_TAIL_LEN -** should be less than #CFE_EVS_MAX_MESSAGE_LENGTH to avoid -** event message truncation -** -** Raising this value will also increase the size of the -** Actionpoint Definition Table (ADT) -*/ -#define LC_MAX_ACTION_TEXT 32 - -/** \lccfg Maximum valid ADT RTS ID -** -** \par Description: -** The maximum RTS ID that LC will allow during table -** validation in a Actionpoint Definition Table (ADT) entry -** -** \par Limits: -** This parameter can't be larger than an unsigned 16 bit -** integer (65535). -*/ -#define LC_MAX_VALID_ADT_RTSID 0xFFF0 - -/** \lccfg Floating Point Compare Tolerance -** -** \par Description: -** Difference between 2 floats that will still compare as - equal. The default value of (1.0e-25) was taken from - the GNC file mathconstants.h -** -** \par Limits: -** The LC app does not place a limit on this parameter. -*/ -#define LC_FLOAT_TOLERANCE (1.0e-25) - -/** \mmcfg Mission specific version number for LC application -** -** \par Description: -** An application version number consists of four parts: -** major version number, minor version number, revision -** number and mission specific revision number. The mission -** specific revision number is defined here and the other -** parts are defined in "lc_version.h". -** -** \par Limits: -** Must be defined as a numeric value that is greater than -** or equal to zero. -*/ -#define LC_MISSION_REV 0 - -#endif /*LC_PLATFORM_CFG_H*/ - -/************************/ -/* End of File Comment */ -/************************/ diff --git a/config/obc/cpd/inc/ld_platform_cfg.h b/config/obc/cpd/inc/ld_platform_cfg.h deleted file mode 100644 index 210a0bcf0..000000000 --- a/config/obc/cpd/inc/ld_platform_cfg.h +++ /dev/null @@ -1,122 +0,0 @@ -#ifndef LD_PLATFORM_CFG_H -#define LD_PLATFORM_CFG_H - -#ifdef __cplusplus -extern "C" { -#endif - -/* -** LD Platform Configuration Parameter Definitions -*/ - -/** \brief Mission specific version number for LD application -** -** \par Description: -** An application version number consists of four parts: -** major version number, minor version number, revision -** number and mission specific revision number. The mission -** specific revision number is defined here and the other -** parts are defined in "amc_version.h". -** -** \par Limits: -** Must be defined as a numeric value that is greater than -** or equal to zero. -*/ -#define LD_MISSION_REV (0) - -/** \brief Pipe depth for the Scheduler pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define LD_SCH_PIPE_DEPTH (15) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define LD_SCH_PIPE_NAME ("LD_SCH_PIPE") - -/** \brief The SB pend behavior type for the Scheduler pipe. -** -** \par Limits: -** One of: CFE_SB_POLL, CFE_SB_PEND_FOREVER, or the -** number of milliseconds to wait for a new message (recommended). -** Note, using CFE_SB_PEND_FOREVER may cause an unresponsive -** application if no messages arrive on this pipe. -*/ -#define LD_SCH_PIPE_PEND_TIME (2000) - -/** \brief The number of WAKEUP messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max limited to CFE_SB_MAX_PIPE_DEPTH-1. Note the -** LD_WAKEUP_MID_MAX_MSG_COUNT and LD_SEND_HK_MID_MAX_MSG_COUNT -** must be less than LD_SCH_PIPE_DEPTH. -*/ -#define LD_WAKEUP_MID_MAX_MSG_COUNT (1) - -/** \brief The number of SEND_HK messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. Note the -** LD_WAKEUP_MID_MAX_MSG_COUNT and LD_SEND_HK_MID_MAX_MSG_COUNT -** must be less than LD_SCH_PIPE_DEPTH. -*/ -#define LD_SEND_HK_MID_MAX_MSG_COUNT (1) - -/** \brief Pipe depth for the command pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define LD_CMD_PIPE_DEPTH (4) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define LD_CMD_PIPE_NAME ("LD_CMD_PIPE") - -/** \brief Pipe depth for the data pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define LD_DATA_PIPE_DEPTH (4) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define LD_DATA_PIPE_NAME ("LD_DATA_PIPE") - -/** \brief The config table default filename -** -** \par Limits: -** The length of each string, including the NULL terminator cannot exceed -** the #OS_MAX_PATH_LEN value. -*/ -#define LD_CONFIG_TABLE_FILENAME ("/cf/apps/ld_config.tbl") - -/** \brief The timeout value, in milliseconds, to wait for ES application startup sync. -** -** \par Limits: -** This parameter must be at least 1000 (ms). -*/ -#define LD_STARTUP_TIMEOUT_MSEC (1000) - - -#ifdef __cplusplus -} -#endif - -#endif /* LD_PLATFORM_CFG_H */ - -/************************/ -/* End of File Comment */ -/************************/ - diff --git a/config/obc/cpd/inc/lgc_platform_cfg.h b/config/obc/cpd/inc/lgc_platform_cfg.h deleted file mode 100644 index ee9701169..000000000 --- a/config/obc/cpd/inc/lgc_platform_cfg.h +++ /dev/null @@ -1,130 +0,0 @@ -#ifndef LGC_PLATFORM_CFG_H -#define LGC_PLATFORM_CFG_H - -#ifdef __cplusplus -extern "C" { -#endif - -/* -** LGC Platform Configuration Parameter Definitions -*/ - -/** \brief Mission specific version number for LGC application -** -** \par Description: -** An application version number consists of four parts: -** major version number, minor version number, revision -** number and mission specific revision number. The mission -** specific revision number is defined here and the other -** parts are defined in "amc_version.h". -** -** \par Limits: -** Must be defined as a numeric value that is greater than -** or equal to zero. -*/ -#define LGC_MISSION_REV (0) - -/** \brief Pipe depth for the Scheduler pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define LGC_SCH_PIPE_DEPTH (2) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define LGC_SCH_PIPE_NAME ("LGC_SCH_PIPE") - -/** \brief The SB pend behavior type for the Scheduler pipe. -** -** \par Limits: -** One of: CFE_SB_POLL, CFE_SB_PEND_FOREVER, or the -** number of milliseconds to wait for a new message (recommended). -** Note, using CFE_SB_PEND_FOREVER may cause an unresponsive -** application if no messages arrive on this pipe. -*/ -#define LGC_SCH_PIPE_PEND_TIME (2000) - -/** \brief The number of WAKEUP messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max limited to CFE_SB_MAX_PIPE_DEPTH-1. Note the -** LGC_WAKEUP_MID_MAX_MSG_COUNT and LGC_SEND_HK_MID_MAX_MSG_COUNT -** must be less than LGC_SCH_PIPE_DEPTH. -*/ -#define LGC_WAKEUP_MID_MAX_MSG_COUNT (1) - -/** \brief The number of SEND_HK messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. Note the -** LGC_WAKEUP_MID_MAX_MSG_COUNT and LGC_SEND_HK_MID_MAX_MSG_COUNT -** must be less than LGC_SCH_PIPE_DEPTH. -*/ -#define LGC_SEND_HK_MID_MAX_MSG_COUNT (1) - -/** \brief Pipe depth for the command pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define LGC_CMD_PIPE_DEPTH (4) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define LGC_CMD_PIPE_NAME ("LGC_CMD_PIPE") - -/** \brief Pipe depth for the data pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define LGC_DATA_PIPE_DEPTH (4) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define LGC_DATA_PIPE_NAME ("LGC_DATA_PIPE") - -/** \brief The config table default filename -** -** \par Limits: -** The length of each string, including the NULL terminator cannot exceed -** the #OS_MAX_PATH_LEN value. -*/ -#define LGC_CONFIG_TABLE_FILENAME ("/cf/apps/lgc_config.tbl") - -/** \brief The timeout value, in milliseconds, to wait for ES application startup sync. -** -** \par Limits: -** This parameter must be at least 1000 (ms). -*/ -#define LGC_STARTUP_TIMEOUT_MSEC (1000) - - -/** \brief The number of landing gear actuators. -** -** \par Limits: -** None. -*/ -#define LGC_MAX_GEAR_OUTPUTS (1) - - -#ifdef __cplusplus -} -#endif - -#endif /* LGC_PLATFORM_CFG_H */ - -/************************/ -/* End of File Comment */ -/************************/ - diff --git a/config/obc/cpd/inc/mac_platform_cfg.h b/config/obc/cpd/inc/mac_platform_cfg.h deleted file mode 100644 index 58a381b18..000000000 --- a/config/obc/cpd/inc/mac_platform_cfg.h +++ /dev/null @@ -1,113 +0,0 @@ -#ifndef MAC_PLATFORM_CFG_H -#define MAC_PLATFORM_CFG_H - -#ifdef __cplusplus -extern "C" { -#endif - -/* -** mac Platform Configuration Parameter Definitions -*/ - -/** \brief Mission specific version number for MAC application -** -** \par Description: -** An application version number consists of four parts: -** major version number, minor version number, revision -** number and mission specific revision number. The mission -** specific revision number is defined here and the other -** parts are defined in "mac_version.h". -** -** \par Limits: -** Must be defined as a numeric value that is greater than -** or equal to zero. -*/ -#define MAC_MISSION_REV (0) - -/** \brief Pipe depth for the Scheduler pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define MAC_SCH_PIPE_DEPTH (15) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define MAC_SCH_PIPE_NAME ("MAC_SCH_PIPE") - -/** \brief The SB pend behavior type for the Scheduler pipe. -** -** \par Limits: -** One of: CFE_SB_POLL, CFE_SB_PEND_FOREVER, or the -** number of milliseconds to wait for a new message (recommended). -** Note, using CFE_SB_PEND_FOREVER may cause an unresponsive -** application if no messages arrive on this pipe. -*/ -#define MAC_SCH_PIPE_PEND_TIME (2000) - -/** \brief The number of WAKEUP messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max limited to CFE_SB_MAX_PIPE_DEPTH-1. Note the -** MAC_SCH_PIPE_WAKEUP_RESERVED and MAC_SCH_PIPE_SEND_HK_RESERVED -** must be less than MAC_SCH_PIPE_DEPTH. -*/ -#define MAC_SCH_PIPE_WAKEUP_RESERVED (1) - -/** \brief The number of SEND_HK messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. Note the -** MAC_SCH_PIPE_WAKEUP_RESERVED and MAC_SCH_PIPE_SEND_HK_RESERVED -** must be less than MAC_SCH_PIPE_DEPTH. -*/ -#define MAC_SCH_PIPE_SEND_HK_RESERVED (1) - -/** \brief Pipe depth for the command pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define MAC_CMD_PIPE_DEPTH (15) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define MAC_CMD_PIPE_NAME ("MAC_CMD_PIPE") - -/** \brief The config table default filename -** -** \par Limits: -** The length of each string, including the NULL terminator cannot exceed -** the #OS_MAX_PATH_LEN value. -*/ -#define MAC_PARAM_TABLE_FILENAME ("/cf/apps/mac_param.tbl") - -/** \brief The timeout value, in milliseconds, to wait for ES application startup sync. -** -** \par Limits: -** This parameter must be at least 1000 (ms). -*/ -#define MAC_STARTUP_TIMEOUT_MSEC (1000) - -/* TODO: Add Doxygen markup. */ -#define MAC_CUSTOM_DEV_PATH "/tmp/ttyS0" - -#define MAC_MAX_MOTOR_OUTPUTS (16) - - -#ifdef __cplusplus -} -#endif - -#endif /* MAC_PLATFORM_CFG_H */ - -/************************/ -/* End of File Comment */ -/************************/ - diff --git a/config/obc/cpd/inc/mavlink_platform_cfg.h b/config/obc/cpd/inc/mavlink_platform_cfg.h deleted file mode 100644 index 915ab2abf..000000000 --- a/config/obc/cpd/inc/mavlink_platform_cfg.h +++ /dev/null @@ -1,150 +0,0 @@ -#ifndef MAVLINK_PLATFORM_CFG_H -#define MAVLINK_PLATFORM_CFG_H - -#ifdef __cplusplus -extern "C" { -#endif - -/* -** ci Platform Configuration Parameter Definitions -*/ - -/** \brief Mission specific version number for MAVLINK application -** -** \par Description: -** An application version number consists of four parts: -** major version number, minor version number, revision -** number and mission specific revision number. The mission -** specific revision number is defined here and the other -** parts are defined in "ci_version.h". -** -** \par Limits: -** Must be defined as a numeric value that is greater than -** or equal to zero. -*/ -#define MAVLINK_MISSION_REV (0) - -/** \brief Pipe depth for the Scheduler pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define MAVLINK_SCH_PIPE_DEPTH (2) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define MAVLINK_SCH_PIPE_NAME ("MAVLINK_SCH_PIPE") - -/** \brief The SB pend behavior type for the Scheduler pipe. -** -** \par Limits: -** One of: CFE_SB_POLL, CFE_SB_PEND_FOREVER, or the -** number of milliseconds to wait for a new message (recommended). -** Note, using CFE_SB_PEND_FOREVER may cause an unresponsive -** application if no messages arrive on this pipe. -*/ -#define MAVLINK_SCH_PIPE_PEND_TIME (2000) - -/** \brief The number of WAKEUP messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max limited to CFE_SB_MAX_PIPE_DEPTH-1. Note the -** MAVLINK_SCH_PIPE_WAKEUP_RESERVED and MAVLINK_SCH_PIPE_SEND_HK_RESERVED -** must be less than MAVLINK_SCH_PIPE_DEPTH. -*/ -#define MAVLINK_SCH_PIPE_WAKEUP_RESERVED (1) - -/** \brief The number of SEND_HK messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. Note the -** MAVLINK_SCH_PIPE_WAKEUP_RESERVED and MAVLINK_SCH_PIPE_SEND_HK_RESERVED -** must be less than MAVLINK_SCH_PIPE_DEPTH. -*/ -#define MAVLINK_SCH_PIPE_SEND_HK_RESERVED (1) - -/** \brief The number of PROCESS_TIMEOUT messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define MAVLINK_SCH_PIPE_PROC_TIMEOUT_RESERVED (1) - -/** \brief Pipe depth for the command pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define MAVLINK_CMD_PIPE_DEPTH (CFE_SB_MAX_PIPE_DEPTH) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define MAVLINK_CMD_PIPE_NAME ("MAVLINK_CMD_PIPE") - -/** \brief Pipe depth for the data pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define MAVLINK_DATA_PIPE_DEPTH (4) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define MAVLINK_DATA_PIPE_NAME ("MAVLINK_DATA_PIPE") - -/** \brief The config table default filename -** -** \par Limits: -** The length of each string, including the NULL terminator cannot exceed -** the #OS_MAX_PATH_LEN value. -*/ -#define MAVLINK_ACTION_MAP_TABLE_FILENAME ("/cf/apps/mavlink_action.tbl") - -/** \brief The timeout table default filename -** -** \par Limits: -** The length of each string, including the NULL terminator cannot exceed -** the #OS_MAX_PATH_LEN value. -*/ -#define MAVLINK_TIMEOUT_TABLE_FILENAME ("/cf/apps/mavlink_timeout.tbl") - -/** \brief The timeout value, in milliseconds, to wait for ES application startup sync. -** -** \par Limits: -** This parameter must be at least 1000 (ms). -*/ -#define MAVLINK_STARTUP_TIMEOUT_MSEC (5000) - - -#define MAVLINK_MSG_PARAM_NAME_LEN (64) - -#define MAVLINK_SYSTEM_ID (1) -#define MAVLINK_COMPONENT_ID (1) -#define MAVLINK_GCS_IP ("10.10.0.13") -#define MAVLINK_GCS_PORT (14550) -#define MAVLINK_PASSTHRU_IP_SRC ("127.0.0.1") -#define MAVLINK_PASSTHRU_INGEST_PORT (14550) - -#define MAVLINK_ACTION_MAP_ENTRIES (10) -#define MAVLINK_HEARTBEAT_WAIT_CYCLES (5) - - -#ifdef __cplusplus -} -#endif - -#endif /* MAVLINK_PLATFORM_CFG_H */ - -/************************/ -/* End of File Comment */ -/************************/ - diff --git a/config/obc/cpd/inc/md_msgids.h b/config/obc/cpd/inc/md_msgids.h deleted file mode 100644 index a7d484c5d..000000000 --- a/config/obc/cpd/inc/md_msgids.h +++ /dev/null @@ -1,10 +0,0 @@ -#ifndef MD_MSGIDS_H -#define MD_MSGIDS_H - -#include "msg_ids.h" - -#endif /*MD_MSGIDS_H*/ - -/************************/ -/* End of File Comment */ -/************************/ diff --git a/config/obc/cpd/inc/md_platform_cfg.h b/config/obc/cpd/inc/md_platform_cfg.h deleted file mode 100644 index b84ababdc..000000000 --- a/config/obc/cpd/inc/md_platform_cfg.h +++ /dev/null @@ -1,99 +0,0 @@ -#ifndef MD_PLATFORM_CFG_H -#define MD_PLATFORM_CFG_H - - -/************************************************************************* -** Macro Definitions -*************************************************************************/ - -/** -** \name MD Command Pipe Parameters */ -/** \{ */ -#define MD_PIPE_NAME "MD_CMD_PIPE" -#define MD_PIPE_DEPTH 50 -/** \} */ - - -/** \mdcfg Memory Dwell Base Filename -** -** \par Description: -** Default base name and location for Memory Dwell filenames -** AppInit will append 01,02,03, up to number of tables. -** -** \par Limits: -** This string shouldn't be longer than #OS_MAX_PATH_LEN for the -** target platform in question -*/ -#define MD_TBL_FILENAME_FORMAT "/cf/apps/md_dw\%02d.tbl" - -/** -** \mdcfg Number of memory dwell tables. -** -** \par Limits -** Acceptable values for this parameter are 1 to 16. -*/ -#define MD_NUM_DWELL_TABLES 4 - -/** -** \mdcfg Maximum number of dwell specifications (address/delay/length) -** in a Dwell Table. -** -** \par Limits -** The maximum value for this parameter is limited by its effect -** on the MD_DwellTableLoad_t and associated data points, limiting -** it to 65535 points. -*/ -#define MD_DWELL_TABLE_SIZE 25 - -/** -** \mdcfg Option of whether 32 bit integers must be aligned to 32 bit -** boundaries. 1 indicates 'yes' (32-bit boundary alignment enforced), -** 0 indicates 'no' (16-bit boundary alignment enforced). -** -** \par Limits -** Value must be 0 or 1. -*/ -#define MD_ENFORCE_DWORD_ALIGN 1 - -/** -** \mdcfg Option of whether a signature field will be reserved in -** dwell packets. 1 indicates 'yes', 0 indicates 'no'. -** -** \par Limits -** Value must be 0 or 1. -*/ -#define MD_SIGNATURE_OPTION 1 - -/** -** \mdcfg Number of characters used in the Signature Field -** -** \par Limits -** Signature field length needs to be a multiple of 4 so that -** dwell packet is a multiple of 4 bytes and no compiler padding -** will occur. Note that the final character of the signature string -** must be a null character, so the effective length of user definable -** characters is one less than the defined length. The length -** specified must therefore be at least 4. -*/ -#define MD_SIGNATURE_FIELD_LENGTH 32 - -/** \mdcfg Mission specific version number for MD application -** -** \par Description: -** An application version number consists of four parts: -** major version number, minor version number, revision -** number and mission specific revision number. The mission -** specific revision number is defined here and the other -** parts are defined in "md_version.h". -** -** \par Limits: -** Must be defined as a numeric value that is greater than -** or equal to zero. -*/ -#define MD_MISSION_REV 0 - -#endif /* MD_PLATFORM_CFG_H */ - -/************************/ -/* End of File Comment */ -/************************/ diff --git a/config/obc/cpd/inc/mm_msgids.h b/config/obc/cpd/inc/mm_msgids.h deleted file mode 100644 index be3104f3a..000000000 --- a/config/obc/cpd/inc/mm_msgids.h +++ /dev/null @@ -1,10 +0,0 @@ -#ifndef MM_MSGIDS_H -#define MM_MSGIDS_H - -#include "msg_ids.h" - -#endif /*MM_MSGIDS_H*/ - -/************************/ -/* End of File Comment */ -/************************/ diff --git a/config/obc/cpd/inc/mm_platform_cfg.h b/config/obc/cpd/inc/mm_platform_cfg.h deleted file mode 100644 index 8ce3bec71..000000000 --- a/config/obc/cpd/inc/mm_platform_cfg.h +++ /dev/null @@ -1,399 +0,0 @@ -#ifndef MM_PLATFORM_CFG_H -#define MM_PLATFORM_CFG_H - -/** -** \mmcfg Memory Managment File -- cFE file header sub-type -** -** \par Description: -** This parameter defines the value that is used -** to identify a Memory Management file. -** -** \par Limits: -** The file header data type for the value is 32 bits unsigned, -** thus the value can be anything from zero to 4,294,967,295. -** (limit is not verified) -*/ -#define MM_CFE_HDR_SUBTYPE 0x4D4D5354 - - -/** -** \mmcfg Memory Management File -- cFE file header description -** -** \par Description: -** This parameter defines the text string that -** may be used to identify Memory Management files. -** -** \par Limits: -** The string length (including string terminator) cannot exceed -** #CFE_FS_HDR_DESC_MAX_LEN. (limit is not verified) -*/ -#define MM_CFE_HDR_DESCRIPTION "Memory Manager dump file" - - -/** \mmcfg Maximum number of bytes for a file load to RAM memory -** -** \par Description: -** Maximum number of bytes that can be loaded into RAM from a -** single load file. -** -** \par Limits: -** The MM app does not place a limit on this parameter. -** However, setting this value to a large number will increase -** the likelyhood of MM being late responding to housekeeping -** requests since it cannot process such a request while a load -** or dump is in progress. -*/ -#define MM_MAX_LOAD_FILE_DATA_RAM (1024*1024) - -/** \mmcfg Maximum number of bytes for a file load to EEPROM memory -** -** \par Description: -** Maximum number of bytes that can be loaded into EEPROM from a -** single load file. -** -** \par Limits: -** The MM app does not place a limit on this parameter. -** However, setting this value to a large number will increase -** the likelyhood of MM being late responding to housekeeping -** requests since it cannot process such a request while a load -** or dump is in progress. -*/ -#define MM_MAX_LOAD_FILE_DATA_EEPROM (128*1024) - -/** \mmcfg Maximum number of bytes for an uninterruptable load -** -** \par Description: -** Maximum number of bytes that can be loaded with the -** "memory load with interrupts disabled" (#MM_LOAD_MEM_WID_CC) -** command. -** -** \par Limits: -** This parameter is limited to the size of an uint8 which -** is the data type used to specify the number of bytes to -** load in the command message. -* -** If this data type is made bigger, changing this value to a -** large number will increase the amount of time interrupts are -** disabled during the load. It should also be kept small enough -** to avoid packet segmentation for the command protocal being -** used. -*/ -#define MM_MAX_UNINTERRUPTABLE_DATA 200 - -/** \mmcfg Maximum number of bytes per load data segment -** -** \par Description: -** Maximum number of bytes MM will load per task cycle -** to prevent CPU hogging (segmented load). -** -** \par Limits: -** The MM app does not place a limit on this parameter. -** However, setting this value to a large number will decrease -** the amount of time available for other tasks to execute and -** increase MM CPU utilization during load operations. -*/ -#define MM_MAX_LOAD_DATA_SEG 200 - -/** \mmcfg Maximum number of bytes for a file dump from RAM memory -** -** \par Description: -** Maximum number of bytes that can be dumped from RAM into a -** single dump file. -** -** \par Limits: -** The MM app does not place a limit on this parameter. -** However, setting this value to a large number will increase -** the likelyhood of MM being late responding to housekeeping -** requests since it cannot process such a request while a load -** or dump is in progress. -*/ -#define MM_MAX_DUMP_FILE_DATA_RAM (1024*1024) - -/** \mmcfg Maximum number of bytes for a file dump from EEPROM memory -** -** \par Description: -** Maximum number of bytes that can be dumped from EEPROM into a -** single dump file. -** -** \par Limits: -** The MM app does not place a limit on this parameter. -** However, setting this value to a large number will increase -** the likelyhood of MM being late responding to housekeeping -** requests since it cannot process such a request while a load -** or dump is in progress. -*/ -#define MM_MAX_DUMP_FILE_DATA_EEPROM (128*1024) - -/** \mmcfg Maximum number of bytes for a symbol table file dump -** -** \par Description: -** Maximum number of bytes that can be dumped from the symbol table -** into a single dump file. -** -** \par Limits: -** The MM app does not place a limit on this parameter. -** However, setting this value to a large number will impact -** the OSAL since it is responsible for generating the dump file. -*/ -#define MM_MAX_DUMP_FILE_DATA_SYMTBL (128*1024) - -/** \mmcfg Maximum number of bytes per dump data segment -** -** \par Description: -** Maximum number of bytes MM will dump per task cycle -** to prevent CPU hogging (segmented dump). -** -** \par Limits: -** The MM app does not place a limit on this parameter. -** However, setting this value to a large number will decrease -** the amount of time available for other tasks to execute and -** increase MM CPU utilization during dump operations. -*/ -#define MM_MAX_DUMP_DATA_SEG 200 - -/** \mmcfg Maximum number of bytes for a fill to RAM memory -** -** \par Description: -** Maximum number of bytes that can be loaded into RAM with a -** single memory fill command. -** -** \par Limits: -** The MM app does not place a limit on this parameter. -** However, setting this value to a large number will increase -** the likelyhood of MM being late responding to housekeeping -** requests since it cannot process such a request while a fill -** operation is in progress. -*/ -#define MM_MAX_FILL_DATA_RAM (1024*1024) - -/** \mmcfg Maximum number of bytes for a fill to EEPROM memory -** -** \par Description: -** Maximum number of bytes that can be loaded into EEPROM with a -** single memory fill command. -** -** \par Limits: -** The MM app does not place a limit on this parameter. -** However, setting this value to a large number will increase -** the likelyhood of MM being late responding to housekeeping -** requests since it cannot process such a request while a fill -** operation is in progress. -*/ -#define MM_MAX_FILL_DATA_EEPROM (128*1024) - -/** \mmcfg Maximum number of bytes per fill data segment -** -** \par Description: -** Maximum number of bytes MM will fill per task cycle -** to prevent CPU hogging (segmented fill). -** -** \par Limits: -** The MM app does not place a limit on this parameter. -** However, setting this value to a large number will decrease -** the amount of time available for other tasks to execute and -** increase MM CPU utilization during memory fill operations. -*/ -#define MM_MAX_FILL_DATA_SEG 200 - -/** \mmcfg Optional MEM32 compile switch -** -** \par Description: -** Compile switch to include code for the optional MM_MEM32 memory. -** The value should be set to TRUE or FALSE. A value of TRUE will -** include the code. -** -** \par Limits: -** n/a -*/ -#define MM_OPT_CODE_MEM32_MEMTYPE TRUE - -/** \mmcfg Maximum number of bytes for a file load to MEM32 memory -** -** \par Description: -** Maximum number of bytes that can be loaded into the optional -** MEM32 memory type from a single load file. -** -** \par Limits: -** This value should be longword aligned. -** Setting this value to a large number will increase the likelyhood -** of MM being late responding to housekeeping requests since it -** cannot process such a request while a load or dump is in progress. -*/ -#define MM_MAX_LOAD_FILE_DATA_MEM32 (1024*1024) - -/** \mmcfg Maximum number of bytes for a file dump from MEM32 memory -** -** \par Description: -** Maximum number of bytes that can be dumped from the optional -** MEM32 memory type to a single dump file. -** -** \par Limits: -** This value should be longword aligned. -** Setting this value to a large number will increase the likelyhood -** of MM being late responding to housekeeping requests since it -** cannot process such a request while a load or dump is in progress. -*/ -#define MM_MAX_DUMP_FILE_DATA_MEM32 (1024*1024) - -/** \mmcfg Maximum number of bytes for a fill to MEM32 memory -** -** \par Description: -** Maximum number of bytes that can be loaded into the optional -** MEM32 memory type with a single memory fill command. -** -** \par Limits: -** This value should be longword aligned. -** Setting this value to a large number will increase the likelyhood -** of MM being late responding to housekeeping requests since it -** cannot process such a request while a memory fill operation -** is in progress. -*/ -#define MM_MAX_FILL_DATA_MEM32 (1024*1024) - -/** \mmcfg Optional MEM16 compile switch -** -** \par Description: -** Compile switch to include code for the optional MM_MEM16 memory. -** The value should be set to TRUE or FALSE. A value of TRUE will -** include the code. -** -** \par Limits: -** n/a -*/ -#define MM_OPT_CODE_MEM16_MEMTYPE TRUE - -/** \mmcfg Maximum number of bytes for a file load to MEM16 memory -** -** \par Description: -** Maximum number of bytes that can be loaded into the optional -** MEM16 memory type from a single load file. -** -** \par Limits: -** This value should be word aligned. -** Setting this value to a large number will increase the likelyhood -** of MM being late responding to housekeeping requests since it -** cannot process such a request while a load or dump is in progress. -*/ -#define MM_MAX_LOAD_FILE_DATA_MEM16 (1024*1024) - -/** \mmcfg Maximum number of bytes for a file dump from MEM16 memory -** -** \par Description: -** Maximum number of bytes that can be dumped from the optional -** MEM16 memory type to a single dump file. -** -** \par Limits: -** This value should be word aligned. -** Setting this value to a large number will increase the likelyhood -** of MM being late responding to housekeeping requests since it -** cannot process such a request while a load or dump is in progress. -*/ -#define MM_MAX_DUMP_FILE_DATA_MEM16 (1024*1024) - -/** \mmcfg Maximum number of bytes for a fill to MEM16 memory -** -** \par Description: -** Maximum number of bytes that can be loaded into the optional -** MEM16 memory type with a single memory fill command. -** -** \par Limits: -** This value should be word aligned. -** Setting this value to a large number will increase the likelyhood -** of MM being late responding to housekeeping requests since it -** cannot process such a request while a memory fill operation -** is in progress. -*/ -#define MM_MAX_FILL_DATA_MEM16 (1024*1024) - -/** \mmcfg Optional MEM8 compile switch -** -** \par Description: -** Compile switch to include code for the optional MM_MEM8 memory. -** The value should be set to TRUE or FALSE. A value of TRUE will -** include the code. -** -** \par Limits: -** n/a -*/ -#define MM_OPT_CODE_MEM8_MEMTYPE TRUE - -/** \mmcfg Maximum number of bytes for a file load to MEM8 memory -** -** \par Description: -** Maximum number of bytes that can be loaded into the optional -** MEM8 memory type from a single load file. -** -** \par Limits: -** The MM app does not place a limit on this parameter. -** Setting this value to a large number will increase the likelyhood -** of MM being late responding to housekeeping requests since it -** cannot process such a request while a load or dump is in progress. -*/ -#define MM_MAX_LOAD_FILE_DATA_MEM8 (1024*1024) - -/** \mmcfg Maximum number of bytes for a file dump from MEM8 memory -** -** \par Description: -** Maximum number of bytes that can be dumped from the optional -** MEM8 memory type to a single dump file. -** -** \par Limits: -** The MM app does not place a limit on this parameter. -** Setting this value to a large number will increase the likelyhood -** of MM being late responding to housekeeping requests since it -** cannot process such a request while a load or dump is in progress. -*/ -#define MM_MAX_DUMP_FILE_DATA_MEM8 (1024*1024) - -/** \mmcfg Maximum number of bytes for a fill to MEM8 memory -** -** \par Description: -** Maximum number of bytes that can be loaded into the optional -** MEM8 memory type with a single memory fill command. -** -** \par Limits: -** The MM app does not place a limit on this parameter. -** Setting this value to a large number will increase the likelyhood -** of MM being late responding to housekeeping requests since it -** cannot process such a request while a memory fill operation -** is in progress. -*/ -#define MM_MAX_FILL_DATA_MEM8 (1024*1024) - -/** \mmcfg Segment break processor delay -** -** \par Description: -** How many milliseconds to delay between segments for dump, load, -** and fill operations. A value of zero cycles through the -** OS scheduler, giving up what's left of the current timeslice. -** -** \par Limits: -** The MM app does not place a limit on this parameter. -** However, setting this value to a large number will increase the -** time required to process load, dump, and fill requests. -** It will also increase the likelyhood of MM being late responding -** to housekeeping requests since it cannot process such a request -** while a memory operation is in progress. -*/ -#define MM_PROCESSOR_CYCLE 0 - -/** \mmcfg Mission specific version number for MM application -** -** \par Description: -** An application version number consists of four parts: -** major version number, minor version number, revision -** number and mission specific revision number. The mission -** specific revision number is defined here and the other -** parts are defined in "mm_version.h". -** -** \par Limits: -** Must be defined as a numeric value that is greater than -** or equal to zero. -*/ -#define MM_MISSION_REV 0 - -#endif /*MM_PLATFORM_CFG_H*/ - -/************************/ -/* End of File Comment */ -/************************/ diff --git a/config/obc/cpd/inc/mpc_platform_cfg.h b/config/obc/cpd/inc/mpc_platform_cfg.h deleted file mode 100644 index 20a61ef05..000000000 --- a/config/obc/cpd/inc/mpc_platform_cfg.h +++ /dev/null @@ -1,111 +0,0 @@ -#ifndef MPC_PLATFORM_CFG_H -#define MPC_PLATFORM_CFG_H - -#ifdef __cplusplus -extern "C" { -#endif - -/* -** MPC Platform Configuration Parameter Definitions -*/ - -/** \brief Mission specific version number for MPC application -** -** \par Description: -** An application version number consists of four parts: -** major version number, minor version number, revision -** number and mission specific revision number. The mission -** specific revision number is defined here and the other -** parts are defined in "amc_version.h". -** -** \par Limits: -** Must be defined as a numeric value that is greater than -** or equal to zero. -*/ -#define MPC_MISSION_REV (0) - -/** \brief Pipe depth for the Scheduler pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define MPC_SCH_PIPE_DEPTH (15) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define MPC_SCH_PIPE_NAME ("MPC_SCH_PIPE") - -/** \brief The SB pend behavior type for the Scheduler pipe. -** -** \par Limits: -** One of: CFE_SB_POLL, CFE_SB_PEND_FOREVER, or the -** number of milliseconds to wait for a new message (recommended). -** Note, using CFE_SB_PEND_FOREVER may cause an unresponsive -** application if no messages arrive on this pipe. -*/ -#define MPC_SCH_PIPE_PEND_TIME (2000) - -/** \brief The number of WAKEUP messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max limited to CFE_SB_MAX_PIPE_DEPTH-1. Note the -** MPC_WAKEUP_MID_MAX_MSG_COUNT and MPC_SEND_HK_MID_MAX_MSG_COUNT -** must be less than MPC_SCH_PIPE_DEPTH. -*/ -#define MPC_WAKEUP_MID_MAX_MSG_COUNT (1) - -/** \brief The number of SEND_HK messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. Note the -** MPC_WAKEUP_MID_MAX_MSG_COUNT and MPC_SEND_HK_MID_MAX_MSG_COUNT -** must be less than MPC_SCH_PIPE_DEPTH. -*/ -#define MPC_SEND_HK_MID_MAX_MSG_COUNT (1) - -/** \brief Pipe depth for the command pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define MPC_CMD_PIPE_DEPTH (4) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define MPC_CMD_PIPE_NAME ("MPC_CMD_PIPE") - -/** \brief The config table default filename -** -** \par Limits: -** The length of each string, including the NULL terminator cannot exceed -** the #OS_MAX_PATH_LEN value. -*/ -#define MPC_CONFIG_TABLE_FILENAME ("/cf/apps/mpc_config.tbl") - -/** \brief The timeout value, in milliseconds, to wait for ES application startup sync. -** -** \par Limits: -** This parameter must be at least 1000 (ms). -*/ -#define MPC_STARTUP_TIMEOUT_MSEC (1000) - -/** \brief Time for direction change hysteresis */ -#define DIRECTION_CHANGE_TRIGGER_TIME_US (100000) - - -#ifdef __cplusplus -} -#endif - -#endif /* MPC_PLATFORM_CFG_H */ - -/************************/ -/* End of File Comment */ -/************************/ - diff --git a/config/obc/cpd/inc/mpu9250_platform_cfg.h b/config/obc/cpd/inc/mpu9250_platform_cfg.h deleted file mode 100644 index 0c5373479..000000000 --- a/config/obc/cpd/inc/mpu9250_platform_cfg.h +++ /dev/null @@ -1,174 +0,0 @@ -#ifndef MPU9250_PLATFORM_CFG_H -#define MPU9250_PLATFORM_CFG_H - -#ifdef __cplusplus -extern "C" { -#endif - -#include "math.h" - -/* -** MPU9250 Platform Configuration Parameter Definitions -*/ - -/** \brief Mission specific version number for MPU9250 application -** -** \par Description: -** An application version number consists of four parts: -** major version number, minor version number, revision -** number and mission specific revision number. The mission -** specific revision number is defined here and the other -** parts are defined in "amc_version.h". -** -** \par Limits: -** Must be defined as a numeric value that is greater than -** or equal to zero. -*/ -#define MPU9250_MISSION_REV (0) - -/** \brief Pipe depth for the Scheduler pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define MPU9250_SCH_PIPE_DEPTH (2) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define MPU9250_SCH_PIPE_NAME ("MPU9250_SCH_PIPE") - -/** \brief The SB pend behavior type for the Scheduler pipe. -** -** \par Limits: -** One of: CFE_SB_POLL, CFE_SB_PEND_FOREVER, or the -** number of milliseconds to wait for a new message (recommended). -** Note, using CFE_SB_PEND_FOREVER may cause an unresponsive -** application if no messages arrive on this pipe. -*/ -#define MPU9250_SCH_PIPE_PEND_TIME (2000) - -/** \brief Pipe depth for the params pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define MPU9250_PARAM_PIPE_DEPTH (4) - -/** \brief Pipe name for the params pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define MPU9250_PARAM_PIPE_NAME ("MPU9250_PARAM_PIPE") - -/** \brief The number of WAKEUP messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max limited to CFE_SB_MAX_PIPE_DEPTH-1. Note the -** MPU9250_MEASURE_MID_MAX_MSG_COUNT and MPU9250_SEND_HK_MID_MAX_MSG_COUNT -** must be less than MPU9250_SCH_PIPE_DEPTH. -*/ -#define MPU9250_MEASURE_MID_MAX_MSG_COUNT (1) - -/** \brief The number of SEND_HK messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. Note the -** MPU9250_MEASURE_MID_MAX_MSG_COUNT and MPU9250_SEND_HK_MID_MAX_MSG_COUNT -** must be less than MPU9250_SCH_PIPE_DEPTH. -*/ -#define MPU9250_SEND_HK_MID_MAX_MSG_COUNT (1) - -/** \brief Pipe depth for the command pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define MPU9250_CMD_PIPE_DEPTH (4) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define MPU9250_CMD_PIPE_NAME ("MPU9250_CMD_PIPE") - -/** \brief Pipe depth for the data pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define MPU9250_DATA_PIPE_DEPTH (4) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define MPU9250_DATA_PIPE_NAME ("MPU9250_DATA_PIPE") - -/** \brief The config table default filename -** -** \par Limits: -** The length of each string, including the NULL terminator cannot exceed -** the #OS_MAX_PATH_LEN value. -*/ -#define MPU9250_CONFIG_TABLE_FILENAME ("/cf/apps/mpu9250_config.tbl") - -/** \brief The timeout value, in milliseconds, to wait for ES application startup sync. -** -** \par Limits: -** This parameter must be at least 1000 (ms). -*/ -#define MPU9250_STARTUP_TIMEOUT_MSEC (1000) - - -/** \brief Fake accel device ID */ -#define MPU9250_ACCEL_PX4_DEVICE_ID (6789478) -/** \brief Fake gyro device ID */ -#define MPU9250_GYRO_PX4_DEVICE_ID (3467548) -/** \brief Integration publish rate */ -#define MPU9250_ACCEL_INT_PUB_RATE (1000000 / 400) -/** \brief Integration publish rate */ -#define MPU9250_GYRO_INT_PUB_RATE (1000000 / 400) -/** \brief Accel scale */ -#define MPU9250_ACC_SCALE (16) -/** \brief Gyro scale */ -#define MPU9250_GYRO_SCALE (2000) -/** \brief Magnetometer device ID. */ -#define MPU9250_AK8963_ID (0x48) -/** \brief IMU device ID. */ -#define MPU9250_DEVICE_ID (0x71) -/** \brief IMU accelerometer sample rate. */ -#define MPU9250_ACCEL_SAMPLE_RATE (200) -/** \brief IMU accelerometer filter cutoff frequency. */ -#define MPU9250_ACCEL_FILTER_CUTOFF_FREQ (30) -/** \brief IMU gyroscope sample rate. */ -#define MPU9250_GYRO_SAMPLE_RATE (200) -/** \brief IMU gyroscope filter cutoff frequency. */ -#define MPU9250_GYRO_FILTER_CUTOFF_FREQ (30) -/** \brief Set to never publish (0) in PX4 mpu9250 wrapper. */ -#define MPU9250_NEVER_AUTOPUBLISH_US (0) -/** \brief One gravity. */ -#define MPU9250_ONE_G (9.80665f) -/** \brief Radians per degree. */ -#define MPU9250_RADIANS_PER_DEGREE (0.0174532f) -/** \brief Room temperature offset */ -#define MPU9250_ROOM_TEMP_OFFSET (0.0f) -/** \brief Temperature sensitivity */ -#define MPU9250_TEMP_SENS (361.0f) - - -#ifdef __cplusplus -} -#endif - -#endif /* MPU9250_PLATFORM_CFG_H */ - -/************************/ -/* End of File Comment */ -/************************/ - diff --git a/config/obc/cpd/inc/ms5611_platform_cfg.h b/config/obc/cpd/inc/ms5611_platform_cfg.h deleted file mode 100644 index 4042ed560..000000000 --- a/config/obc/cpd/inc/ms5611_platform_cfg.h +++ /dev/null @@ -1,138 +0,0 @@ -#ifndef MS5611_PLATFORM_CFG_H -#define MS5611_PLATFORM_CFG_H - -#ifdef __cplusplus -extern "C" { -#endif - -/* -** MS5611 Platform Configuration Parameter Definitions -*/ - -/** \brief Mission specific version number for MS5611 application -** -** \par Description: -** An application version number consists of four parts: -** major version number, minor version number, revision -** number and mission specific revision number. The mission -** specific revision number is defined here and the other -** parts are defined in "amc_version.h". -** -** \par Limits: -** Must be defined as a numeric value that is greater than -** or equal to zero. -*/ -#define MS5611_MISSION_REV (0) - -/** \brief Pipe depth for the Scheduler pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define MS5611_SCH_PIPE_DEPTH (2) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define MS5611_SCH_PIPE_NAME ("MS5611_SCH_PIPE") - -/** \brief The SB pend behavior type for the Scheduler pipe. -** -** \par Limits: -** One of: CFE_SB_POLL, CFE_SB_PEND_FOREVER, or the -** number of milliseconds to wait for a new message (recommended). -** Note, using CFE_SB_PEND_FOREVER may cause an unresponsive -** application if no messages arrive on this pipe. -*/ -#define MS5611_SCH_PIPE_PEND_TIME (2000) - -/** \brief The number of WAKEUP messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max limited to CFE_SB_MAX_PIPE_DEPTH-1. Note the -** MS5611_WAKEUP_MID_MAX_MSG_COUNT and MS5611_SEND_HK_MID_MAX_MSG_COUNT -** must be less than MS5611_SCH_PIPE_DEPTH. -*/ -#define MS5611_MEASURE_MID_MAX_MSG_COUNT (1) - -/** \brief The number of SEND_HK messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. Note the -** MS5611_WAKEUP_MID_MAX_MSG_COUNT and MS5611_SEND_HK_MID_MAX_MSG_COUNT -** must be less than MS5611_SCH_PIPE_DEPTH. -*/ -#define MS5611_SEND_HK_MID_MAX_MSG_COUNT (1) - -/** \brief Pipe depth for the command pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define MS5611_CMD_PIPE_DEPTH (4) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define MS5611_CMD_PIPE_NAME ("MS5611_CMD_PIPE") - -/** \brief Pipe depth for the data pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define MS5611_DATA_PIPE_DEPTH (4) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define MS5611_DATA_PIPE_NAME ("MS5611_DATA_PIPE") - -/** \brief The config table default filename -** -** \par Limits: -** The length of each string, including the NULL terminator cannot exceed -** the #OS_MAX_PATH_LEN value. -*/ -#define MS5611_CONFIG_TABLE_FILENAME ("/cf/apps/ms5611_config.tbl") - -/** \brief The timeout value, in milliseconds, to wait for ES application startup sync. -** -** \par Limits: -** This parameter must be at least 1000 (ms). -*/ -#define MS5611_STARTUP_TIMEOUT_MSEC (1000) - -/** \brief The MS5611 device path. -** -** \par Limits: -** The length of each string, including the NULL terminator cannot exceed -** the #OS_MAX_PATH_LEN value. -*/ -#define MS5611_DEVICE_PATH ("/dev/spidev1.1") - -/** \brief The ratio pressure per temperature measurements -** -** \par Limits: -** Set to 3 for 3 pressure measurements for every temperature -** measurement. -*/ -#define MS5611_PRESS_TEMP_MEAS_RATIO (3) - - -#ifdef __cplusplus -} -#endif - -#endif /* MS5611_PLATFORM_CFG_H */ - -/************************/ -/* End of File Comment */ -/************************/ - diff --git a/config/obc/cpd/inc/nav_platform_cfg.h b/config/obc/cpd/inc/nav_platform_cfg.h deleted file mode 100644 index 6781d6e8b..000000000 --- a/config/obc/cpd/inc/nav_platform_cfg.h +++ /dev/null @@ -1,122 +0,0 @@ -#ifndef NAV_PLATFORM_CFG_H -#define NAV_PLATFORM_CFG_H - -#ifdef __cplusplus -extern "C" { -#endif - -/* -** NAV Platform Configuration Parameter Definitions -*/ - -/** \brief Mission specific version number for NAV application -** -** \par Description: -** An application version number consists of four parts: -** major version number, minor version number, revision -** number and mission specific revision number. The mission -** specific revision number is defined here and the other -** parts are defined in "amc_version.h". -** -** \par Limits: -** Must be defined as a numeric value that is greater than -** or equal to zero. -*/ -#define NAV_MISSION_REV (0) - -/** \brief Pipe depth for the Scheduler pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define NAV_SCH_PIPE_DEPTH (15) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define NAV_SCH_PIPE_NAME ("NAV_SCH_PIPE") - -/** \brief The SB pend behavior type for the Scheduler pipe. -** -** \par Limits: -** One of: CFE_SB_POLL, CFE_SB_PEND_FOREVER, or the -** number of milliseconds to wait for a new message (recommended). -** Note, using CFE_SB_PEND_FOREVER may cause an unresponsive -** application if no messages arrive on this pipe. -*/ -#define NAV_SCH_PIPE_PEND_TIME (2000) - -/** \brief The number of WAKEUP messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max limited to CFE_SB_MAX_PIPE_DEPTH-1. Note the -** NAV_WAKEUP_MID_MAX_MSG_COUNT and NAV_SEND_HK_MID_MAX_MSG_COUNT -** must be less than NAV_SCH_PIPE_DEPTH. -*/ -#define NAV_WAKEUP_MID_MAX_MSG_COUNT (1) - -/** \brief The number of SEND_HK messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. Note the -** NAV_WAKEUP_MID_MAX_MSG_COUNT and NAV_SEND_HK_MID_MAX_MSG_COUNT -** must be less than NAV_SCH_PIPE_DEPTH. -*/ -#define NAV_SEND_HK_MID_MAX_MSG_COUNT (1) - -/** \brief Pipe depth for the command pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define NAV_CMD_PIPE_DEPTH (4) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define NAV_CMD_PIPE_NAME ("NAV_CMD_PIPE") - -/** \brief Pipe depth for the data pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define NAV_DATA_PIPE_DEPTH (4) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define NAV_DATA_PIPE_NAME ("NAV_DATA_PIPE") - -/** \brief The config table default filename -** -** \par Limits: -** The length of each string, including the NULL terminator cannot exceed -** the #OS_MAX_PATH_LEN value. -*/ -#define NAV_CONFIG_TABLE_FILENAME ("/cf/apps/nav_config.tbl") - -/** \brief The timeout value, in milliseconds, to wait for ES application startup sync. -** -** \par Limits: -** This parameter must be at least 1000 (ms). -*/ -#define NAV_STARTUP_TIMEOUT_MSEC (1000) - - -#ifdef __cplusplus -} -#endif - -#endif /* NAV_PLATFORM_CFG_H */ - -/************************/ -/* End of File Comment */ -/************************/ - diff --git a/config/obc/cpd/inc/pe_platform_cfg.h b/config/obc/cpd/inc/pe_platform_cfg.h deleted file mode 100644 index ca1de959a..000000000 --- a/config/obc/cpd/inc/pe_platform_cfg.h +++ /dev/null @@ -1,140 +0,0 @@ -#ifndef PE_PLATFORM_CFG_H -#define PE_PLATFORM_CFG_H - -#ifdef __cplusplus -extern "C" { -#endif - -/* -** PE Platform Configuration Parameter Definitions -*/ - -/** \brief Mission specific version number for PE application -** -** \par Description: -** An application version number consists of four parts: -** major version number, minor version number, revision -** number and mission specific revision number. The mission -** specific revision number is defined here and the other -** parts are defined in "amc_version.h". -** -** \par Limits: -** Must be defined as a numeric value that is greater than -** or equal to zero. -*/ -#define PE_MISSION_REV (0) - -/** \brief Pipe depth for the Scheduler pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define PE_SCH_PIPE_DEPTH (20) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define PE_SCH_PIPE_NAME ("PE_SCH_PIPE") - -/** \brief The SB pend behavior type for the Scheduler pipe. -** -** \par Limits: -** One of: CFE_SB_POLL, CFE_SB_PEND_FOREVER, or the -** number of milliseconds to wait for a new message (recommended). -** Note, using CFE_SB_PEND_FOREVER may cause an unresponsive -** application if no messages arrive on this pipe. -*/ -#define PE_SCH_PIPE_PEND_TIME (2000) - -/** \brief The number of WAKEUP messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max limited to CFE_SB_MAX_PIPE_DEPTH-1. Note the -** PE_WAKEUP_MID_MAX_MSG_COUNT and PE_SEND_HK_MID_MAX_MSG_COUNT -** must be less than PE_SCH_PIPE_DEPTH. -*/ -#define PE_WAKEUP_MID_MAX_MSG_COUNT (1) - -/** \brief The number of SEND_HK messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. Note the -** PE_WAKEUP_MID_MAX_MSG_COUNT and PE_SEND_HK_MID_MAX_MSG_COUNT -** must be less than PE_SCH_PIPE_DEPTH. -*/ -#define PE_SEND_HK_MID_MAX_MSG_COUNT (1) - -/** \brief Pipe depth for the command pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define PE_CMD_PIPE_DEPTH (4) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define PE_CMD_PIPE_NAME ("PE_CMD_PIPE") - -/** \brief The config table default filename -** -** \par Limits: -** The length of each string, including the NULL terminator cannot exceed -** the #OS_MAX_PATH_LEN value. -*/ -#define PE_CONFIG_TABLE_FILENAME ("/cf/apps/pe_config.tbl") - -/** \brief The timeout value, in milliseconds, to wait for ES application startup sync. -** -** \par Limits: -** This parameter must be at least 1000 (ms). -*/ -#define PE_STARTUP_TIMEOUT_MSEC (1000) - -/** \brief MAx event filters the PE app can use. -** -** \par Limits: -** This parameter cannot exceed TODO -*/ -#define PE_MAX_EVENT_FILTERS (64) - -/*** Sensor Configuration ***/ - -/* Baro */ -#define REQ_BARO_INIT_COUNT (2000) -#define BARO_TIMEOUT (100000) /* 0.1 s */ - -/* GPS */ -#define REQ_GPS_INIT_COUNT (50) -#define GPS_TIMEOUT (1000000) /* 1.0 s */ - -/* Land */ -#define REQ_LAND_INIT_COUNT (1) -#define LAND_TIMEOUT (1000000) /* 1.0 s */ - -/* Distance sensor */ -#define REQ_DIST_INIT_COUNT (50) -#define DIST_TIMEOUT (150000) /* 0.1 s */ -#define DIST_BETA_MAX (700) -#define DIST_SENSOR_TYPE (3) /* 3 = radar */ - -/* Optical flow */ -#define REQ_FLOW_INIT_COUNT (10) -#define FLOW_TIMEOUT (1000000) /* 1.0 s */ -#define FLOW_GYRO_HP_CUTOFF (0.001f) - - -#ifdef __cplusplus -} -#endif - -#endif /* PE_PLATFORM_CFG_H */ - -/************************/ -/* End of File Comment */ -/************************/ - diff --git a/config/obc/cpd/inc/prm_platform_cfg.h b/config/obc/cpd/inc/prm_platform_cfg.h deleted file mode 100644 index 86a2f9b4d..000000000 --- a/config/obc/cpd/inc/prm_platform_cfg.h +++ /dev/null @@ -1,125 +0,0 @@ - -#ifndef PRM_PLATFORM_CFG_H -#define PRM_PLATFORM_CFG_H - -#ifdef __cplusplus -extern "C" { -#endif - -/* -** prm Platform Configuration Parameter Definitions -*/ - -/** \brief Mission specific version number for PRM application -** -** \par Description: -** An application version number consists of four parts: -** major version number, minor version number, revision -** number and mission specific revision number. The mission -** specific revision number is defined here and the other -** parts are defined in "prm_version.h". -** -** \par Limits: -** Must be defined as a numeric value that is greater than -** or equal to zero. -*/ -#define PRM_MISSION_REV (0) - -/** \brief Pipe depth for the Scheduler pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define PRM_SCH_PIPE_DEPTH (2) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define PRM_SCH_PIPE_NAME ("PRM_SCH_PIPE") - -/** \brief The SB pend behavior type for the Scheduler pipe. -** -** \par Limits: -** One of: CFE_SB_POLL, CFE_SB_PEND_FOREVER, or the -** number of milliseconds to wait for a new message (recommended). -** Note, using CFE_SB_PEND_FOREVER may cause an unresponsive -** application if no messages arrive on this pipe. -*/ -#define PRM_SCH_PIPE_PEND_TIME (2000) - -/** \brief The number of WAKEUP messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max limited to CFE_SB_MAX_PIPE_DEPTH-1. Note the -** PRM_SCH_PIPE_WAKEUP_RESERVED and PRM_SCH_PIPE_SEND_HK_RESERVED -** must be less than PRM_SCH_PIPE_DEPTH. -*/ -#define PRM_SCH_PIPE_WAKEUP_RESERVED (1) - -/** \brief The number of SEND_HK messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. Note the -** PRM_SCH_PIPE_WAKEUP_RESERVED and PRM_SCH_PIPE_SEND_HK_RESERVED -** must be less than PRM_SCH_PIPE_DEPTH. -*/ -#define PRM_SCH_PIPE_SEND_HK_RESERVED (1) - -/** \brief Pipe depth for the command pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define PRM_CMD_PIPE_DEPTH (4) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define PRM_CMD_PIPE_NAME ("PRM_CMD_PIPE") - -/** \brief Pipe depth for the data pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define PRM_DATA_PIPE_DEPTH (4) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define PRM_DATA_PIPE_NAME ("PRM_DATA_PIPE") - -/** \brief The config table default filename -** -** \par Limits: -** The length of each string, including the NULL terminator cannot exceed -** the #OS_MAX_PATH_LEN value. -*/ -#define PRM_CONFIG_TABLE_FILENAME ("/cf/apps/prm_config.tbl") -/** \brief The timeout value, in milliseconds, to wait for ES application startup sync. -** -** \par Limits: -** This parameter must be at least 1000 (ms). -*/ -#define PRM_STARTUP_TIMEOUT_MSEC (1000) - -/* TODO: Add Doxygen markup. */ -#define PRM_CUSTOM_DEV_PATH "/tmp/ttyS0" - - -#ifdef __cplusplus -} -#endif - -#endif /* PRM_PLATFORM_CFG_H */ - -/************************/ -/* End of File Comment */ -/************************/ - diff --git a/config/obc/cpd/inc/px4br_platform_cfg.h b/config/obc/cpd/inc/px4br_platform_cfg.h deleted file mode 100644 index 9ea36cfaf..000000000 --- a/config/obc/cpd/inc/px4br_platform_cfg.h +++ /dev/null @@ -1,39 +0,0 @@ -#ifndef PX4BR_PLATFORM_CFG_H -#define PX4BR_PLATFORM_CFG_H - -/* -** Pragmas -*/ - -/* -** Local Defines -*/ -#define PX4BR_RUNTIME_QUEUE_NAME "OS_RUNTIME_MGR_CMD" -#define PX4BR_MAX_FIFO_PATH_LENGTH (255) - -/* -** Include Files -*/ - -/* -** Local Structure Declarations -*/ - -/* -** External Global Variables -*/ - -/* -** Global Variables -*/ - -/* -** Local Variables -*/ - -/* -** Local Function Prototypes -*/ - -#endif /* PX4BR_PLATFORM_CFG_H */ - diff --git a/config/obc/cpd/inc/qae_platform_cfg.h b/config/obc/cpd/inc/qae_platform_cfg.h deleted file mode 100644 index bd6552cf3..000000000 --- a/config/obc/cpd/inc/qae_platform_cfg.h +++ /dev/null @@ -1,122 +0,0 @@ -#ifndef QAE_PLATFORM_CFG_H -#define QAE_PLATFORM_CFG_H - -#ifdef __cplusplus -extern "C" { -#endif - -/* -** QAE Platform Configuration Parameter Definitions -*/ - -/** \brief Mission specific version number for QAE application -** -** \par Description: -** An application version number consists of four parts: -** major version number, minor version number, revision -** number and mission specific revision number. The mission -** specific revision number is defined here and the other -** parts are defined in "amc_version.h". -** -** \par Limits: -** Must be defined as a numeric value that is greater than -** or equal to zero. -*/ -#define QAE_MISSION_REV (0) - -/** \brief Pipe depth for the Scheduler pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define QAE_SCH_PIPE_DEPTH (5) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define QAE_SCH_PIPE_NAME ("QAE_SCH_PIPE") - -/** \brief The SB pend behavior type for the Scheduler pipe. -** -** \par Limits: -** One of: CFE_SB_POLL, CFE_SB_PEND_FOREVER, or the -** number of milliseconds to wait for a new message (recommended). -** Note, using CFE_SB_PEND_FOREVER may cause an unresponsive -** application if no messages arrive on this pipe. -*/ -#define QAE_SCH_PIPE_PEND_TIME (2000) - -/** \brief The number of WAKEUP messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max limited to CFE_SB_MAX_PIPE_DEPTH-1. Note the -** QAE_WAKEUP_MID_MAX_MSG_COUNT and QAE_SEND_HK_MID_MAX_MSG_COUNT -** must be less than QAE_SCH_PIPE_DEPTH. -*/ -#define QAE_WAKEUP_MID_MAX_MSG_COUNT (1) - -/** \brief The number of SEND_HK messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. Note the -** QAE_WAKEUP_MID_MAX_MSG_COUNT and QAE_SEND_HK_MID_MAX_MSG_COUNT -** must be less than QAE_SCH_PIPE_DEPTH. -*/ -#define QAE_SEND_HK_MID_MAX_MSG_COUNT (1) - -/** \brief Pipe depth for the command pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define QAE_CMD_PIPE_DEPTH (4) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define QAE_CMD_PIPE_NAME ("QAE_CMD_PIPE") - -/** \brief Pipe depth for the data pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define QAE_DATA_PIPE_DEPTH (4) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define QAE_DATA_PIPE_NAME ("QAE_DATA_PIPE") - -/** \brief The config table default filename -** -** \par Limits: -** The length of each string, including the NULL terminator cannot exceed -** the #OS_MAX_PATH_LEN value. -*/ -#define QAE_CONFIG_TABLE_FILENAME ("/cf/apps/qae_config.tbl") - -/** \brief The timeout value, in milliseconds, to wait for ES application startup sync. -** -** \par Limits: -** This parameter must be at least 1000 (ms). -*/ -#define QAE_STARTUP_TIMEOUT_MSEC (1000) - - -#ifdef __cplusplus -} -#endif - -#endif /* QAE_PLATFORM_CFG_H */ - -/************************/ -/* End of File Comment */ -/************************/ - diff --git a/config/obc/cpd/inc/rcin_platform_cfg.h b/config/obc/cpd/inc/rcin_platform_cfg.h deleted file mode 100644 index 3f55e6541..000000000 --- a/config/obc/cpd/inc/rcin_platform_cfg.h +++ /dev/null @@ -1,126 +0,0 @@ -#ifndef RCIN_PLATFORM_CFG_H -#define RCIN_PLATFORM_CFG_H - -#ifdef __cplusplus -extern "C" { -#endif - -#define RCIN_STREAMING_TASK_FLAGS OS_ENABLE_CORE_0 - -/* -** RCIN Platform Configuration Parameter Definitions -*/ - -/** \brief Mission specific version number for RCIN application -** -** \par Description: -** An application version number consists of four parts: -** major version number, minor version number, revision -** number and mission specific revision number. The mission -** specific revision number is defined here and the other -** parts are defined in "amc_version.h". -** -** \par Limits: -** Must be defined as a numeric value that is greater than -** or equal to zero. -*/ -#define RCIN_MISSION_REV (0) - -/** \brief Pipe depth for the Scheduler pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define RCIN_SCH_PIPE_DEPTH (2) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define RCIN_SCH_PIPE_NAME ("RCIN_SCH_PIPE") - -/** \brief The SB pend behavior type for the Scheduler pipe. -** -** \par Limits: -** One of: CFE_SB_POLL, CFE_SB_PEND_FOREVER, or the -** number of milliseconds to wait for a new message (recommended). -** Note, using CFE_SB_PEND_FOREVER may cause an unresponsive -** application if no messages arrive on this pipe. -*/ -#define RCIN_SCH_PIPE_PEND_TIME (2000) - -/** \brief The number of WAKEUP messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max limited to CFE_SB_MAX_PIPE_DEPTH-1. Note the -** RCIN_WAKEUP_MID_MAX_MSG_COUNT and RCIN_SEND_HK_MID_MAX_MSG_COUNT -** must be less than RCIN_SCH_PIPE_DEPTH. -*/ -#define RCIN_WAKEUP_MID_MAX_MSG_COUNT (1) - -/** \brief The number of SEND_HK messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. Note the -** RCIN_WAKEUP_MID_MAX_MSG_COUNT and RCIN_SEND_HK_MID_MAX_MSG_COUNT -** must be less than RCIN_SCH_PIPE_DEPTH. -*/ -#define RCIN_SEND_HK_MID_MAX_MSG_COUNT (1) - -/** \brief Pipe depth for the command pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define RCIN_CMD_PIPE_DEPTH (4) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define RCIN_CMD_PIPE_NAME ("RCIN_CMD_PIPE") - -/** \brief Pipe depth for the data pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define RCIN_DATA_PIPE_DEPTH (4) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define RCIN_DATA_PIPE_NAME ("RCIN_DATA_PIPE") - -/** \brief The config table default filename -** -** \par Limits: -** The length of each string, including the NULL terminator cannot exceed -** the #OS_MAX_PATH_LEN value. -*/ -#define RCIN_CONFIG_TABLE_FILENAME ("/cf/apps/rcin_config.tbl") - -/** \brief The timeout value, in milliseconds, to wait for ES application startup sync. -** -** \par Limits: -** This parameter must be at least 1000 (ms). -*/ -#define RCIN_STARTUP_TIMEOUT_MSEC (1000) - -/**\brief Max filters in event table */ -#define RCIN_MAX_EVENT_FILTERS (32) - -#ifdef __cplusplus -} -#endif - -#endif /* RCIN_PLATFORM_CFG_H */ - -/************************/ -/* End of File Comment */ -/************************/ - diff --git a/config/obc/cpd/inc/rgbled_msgids.h b/config/obc/cpd/inc/rgbled_msgids.h deleted file mode 100644 index 16a36dcc7..000000000 --- a/config/obc/cpd/inc/rgbled_msgids.h +++ /dev/null @@ -1,18 +0,0 @@ -#ifndef RGBLED_MSGIDS_H -#define RGBLED_MSGIDS_H - -#ifdef __cplusplus -extern "C" { -#endif - -#include "msg_ids.h" - -#ifdef __cplusplus -} -#endif - -#endif /* RGBLED_MSGIDS_H */ - -/************************/ -/* End of File Comment */ -/************************/ diff --git a/config/obc/cpd/inc/rgbled_platform_cfg.h b/config/obc/cpd/inc/rgbled_platform_cfg.h deleted file mode 100644 index 6e568f21b..000000000 --- a/config/obc/cpd/inc/rgbled_platform_cfg.h +++ /dev/null @@ -1,126 +0,0 @@ -#ifndef RGBLED_PLATFORM_CFG_H -#define RGBLED_PLATFORM_CFG_H - -#include "osapi.h" - -#ifdef __cplusplus -extern "C" { -#endif - -#define RGBLED_SELFTEST_TASK_FLAGS OS_ENABLE_CORE_0 - -/* -** RGBLED Platform Configuration Parameter Definitions -*/ - -/** \brief Mission specific version number for RGBLED application -** -** \par Description: -** An application version number consists of four parts: -** major version number, minor version number, revision -** number and mission specific revision number. The mission -** specific revision number is defined here and the other -** parts are defined in "amc_version.h". -** -** \par Limits: -** Must be defined as a numeric value that is greater than -** or equal to zero. -*/ -#define RGBLED_MISSION_REV (0) - -/** \brief Pipe depth for the Scheduler pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define RGBLED_SCH_PIPE_DEPTH (2) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define RGBLED_SCH_PIPE_NAME ("RGBLED_SCH_PIPE") - -/** \brief The SB pend behavior type for the Scheduler pipe. -** -** \par Limits: -** One of: CFE_SB_POLL, CFE_SB_PEND_FOREVER, or the -** number of milliseconds to wait for a new message (recommended). -** Note, using CFE_SB_PEND_FOREVER may cause an unresponsive -** application if no messages arrive on this pipe. -*/ -#define RGBLED_SCH_PIPE_PEND_TIME (2000) - -/** \brief The number of WAKEUP messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max limited to CFE_SB_MAX_PIPE_DEPTH-1. Note the -** RGBLED_WAKEUP_MID_MAX_MSG_COUNT and RGBLED_SEND_HK_MID_MAX_MSG_COUNT -** must be less than RGBLED_SCH_PIPE_DEPTH. -*/ -#define RGBLED_WAKEUP_MID_MAX_MSG_COUNT (1) - -/** \brief The number of SEND_HK messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. Note the -** RGBLED_WAKEUP_MID_MAX_MSG_COUNT and RGBLED_SEND_HK_MID_MAX_MSG_COUNT -** must be less than RGBLED_SCH_PIPE_DEPTH. -*/ -#define RGBLED_SEND_HK_MID_MAX_MSG_COUNT (1) - -/** \brief Pipe depth for the command pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define RGBLED_CMD_PIPE_DEPTH (4) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define RGBLED_CMD_PIPE_NAME ("RGBLED_CMD_PIPE") - -/** \brief Pipe depth for the data pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define RGBLED_DATA_PIPE_DEPTH (4) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define RGBLED_DATA_PIPE_NAME ("RGBLED_DATA_PIPE") - -/** \brief The config table default filename -** -** \par Limits: -** The length of each string, including the NULL terminator cannot exceed -** the #OS_MAX_PATH_LEN value. -*/ -#define RGBLED_CONFIG_TABLE_FILENAME ("/cf/apps/rgbled_config.tbl") - -/** \brief The timeout value, in milliseconds, to wait for ES application startup sync. -** -** \par Limits: -** This parameter must be at least 1000 (ms). -*/ -#define RGBLED_STARTUP_TIMEOUT_MSEC (1000) - - -#ifdef __cplusplus -} -#endif - -#endif /* RGBLED_PLATFORM_CFG_H */ - -/************************/ -/* End of File Comment */ -/************************/ - diff --git a/config/obc/cpd/inc/sbn_msgids.h b/config/obc/cpd/inc/sbn_msgids.h deleted file mode 100644 index c0d95d30b..000000000 --- a/config/obc/cpd/inc/sbn_msgids.h +++ /dev/null @@ -1,11 +0,0 @@ -#ifndef SBN_MSGIDS_H -#define SBN_MSGIDS_H - -#include "msg_ids.h" - -#endif /* SBN_MSGIDS_H */ - -/*======================================================================================= -** End of file sbn_msgids.h -**=====================================================================================*/ - diff --git a/config/obc/cpd/inc/sc_msgids.h b/config/obc/cpd/inc/sc_msgids.h deleted file mode 100644 index f81bdec50..000000000 --- a/config/obc/cpd/inc/sc_msgids.h +++ /dev/null @@ -1,10 +0,0 @@ -#ifndef SC_MSGIDS_H -#define SC_MSGIDS_H - -#include "msg_ids.h" - -#endif /*SC_MSGIDS_H*/ - -/************************/ -/* End of File Comment */ -/************************/ diff --git a/config/obc/cpd/inc/sc_platform_cfg.h b/config/obc/cpd/inc/sc_platform_cfg.h deleted file mode 100644 index a831c16bf..000000000 --- a/config/obc/cpd/inc/sc_platform_cfg.h +++ /dev/null @@ -1,359 +0,0 @@ -#ifndef SC_PLATFORM_CFG_H -#define SC_PLATFORM_CFG_H - -/************************************************************************* - ** Macro Definitions - *************************************************************************/ - -/** \sccfg Max number of commands per second -** -** \par Description: -** Maximum number of commands that can be sent out by SC -* in any given second. -** -** \par Limits: -** This parameter can't be larger than an unsigned 16 bit -** integer (65535), but should be kepoot relatively small to -** avoid SC hogging the CPU -** -*/ -#define SC_MAX_CMDS_PER_SEC 8 - - -/** \sccfg Number of RTS's -** -** \par Description: -** The number of RTS's allowed in the system -** -** \par Limits: -** This parameter can't be larger than 999.This parameter will dicate the size of -** The RTS Info Table. -*/ -#define SC_NUMBER_OF_RTS 64 - - -/** \sccfg Max buffer size for an ATS in uint16s -** -** \par Description: -** The max sizeof an ATS buffer in words (not bytes) -** \par Limits: -** This parameter can't be larger than an unsigned 16 bit -** integer (65535). -*/ -#define SC_ATS_BUFF_SIZE 8000 - - -/** \sccfg Max buffer size for an Append ATS in uint16s -** -** \par Description: -** The max sizeof an Append ATS buffer in words (not bytes) -** \par Limits: -** This parameter cannot be larger than SC_ATS_BUFF_SIZE. -*/ -#define SC_APPEND_BUFF_SIZE (SC_ATS_BUFF_SIZE / 2) - - -/** \sccfg Max buffer size for an RTS in uint16s -** -** \par Description: -** The max size of an RTS buffer in WORDS (not bytes) -** \par Limits: -** This parameter can't be larger than an unsigned 16 bit -** integer (65535). -*/ -#define SC_RTS_BUFF_SIZE 150 - - -/** \sccfg Max number of commands in each ATS -** -** \par Description: -** The maximum number of commands that are allowed in each ATS -** -** \par Limits: -** This parameter can't be larger than an unsigned 16 bit -** integer (65535). -*/ -#define SC_MAX_ATS_CMDS 1000 - - -/** \sccfg The last RTS that will be sent with an #SC_RTS_START_INF_EID event message -** -** \par Description: -** When all RTS's are started, the #SC_RTS_START_INF_EID event message is sent out. -** This parameter suppreses that message for all RTS's over this number -** -** \par Limits: -** This parameter needs to be less than or equal to SC_NUMBER_OF_RTS -*/ -#define SC_LAST_RTS_WITH_EVENTS 20 - - -/** \sccfg Minimum Packet Size -** -** \par Description: -** This parameter specifies the minumum size for an ATS or RTS command. -** \par Limits: -** This parameter must be greater than or equal to CFE_SB_CMD_HDR_SIZE and -** less than or equal to CFE_SB_MAX_SB_MSG_SIZE. -*/ -#define SC_PACKET_MIN_SIZE 8 - - -/** \sccfg Maximum Packet Size -** -** \par Description: -** This parameter specifies the maximum size for an ATS or RTS command. -** \par Limits: -** This parameter must be greater than or equal to SC_PACKET_MIN_SIZE and -** less than or equal to CFE_SB_MAX_SB_MSG_SIZE. -*/ -#define SC_PACKET_MAX_SIZE 250 - - -/** \sccfg Command Pipe Depth -** -** \par Description: -** Maximum number of messages that will be allowed in the -** SC command pipe at one time. Used during initialization -** in the call to #CFE_SB_CreatePipe -** -** \par Limits: -** This parameter must be greater than zero and less than or equal to -** CFE_SB_MAX_PIPE_DEPTH. -*/ -#define SC_PIPE_DEPTH 12 - - -/** \sccfg ATS Table Filenames -** -** \par Description: -** Filenames for the ATS tables loaded at startup are constructed by -** appending a one digit table identifier plus the extension ".tbl" -** to the base portion of the filename defined here. -** -** The default definitions will create ATS filenames as follows: -** "/cf/apps/sc_ats1.tbl or /cf/apps/sc_ats2.tbl" -** -** \par Limits: -** SC requires that this name be defined, but otherwise places no -** limits on the definition. If the named table file does not exist -** at run time, or the table fails validation, then the table load -** will fail. Refer to #OS_MAX_PATH_LEN for filename length limits. -*/ -#define SC_ATS_FILE_NAME "/cf/apps/sc_ats" - - -/** \sccfg Append ATS Table Filename -** -** \par Description: -** This name describes the default append ATS filename loaded at -** startup. Often the default Append ATS file contains only a -** single unused table entry, and is used only to initialize the -** table state as having data that may be patched. -** -** \par Limits: -** SC requires that this name be defined, but otherwise places no -** limits on the definition. If the named table file does not exist -** at run time, or the table fails validation, then the table load -** will fail. Refer to #OS_MAX_PATH_LEN for filename length limits. -*/ -#define SC_APPEND_FILE_NAME "/cf/apps/sc_append.tbl" - - -/** \sccfg RTS Table Filenames -** -** \par Description: -** Filenames for the RTS tables loaded at startup are constructed by -** appending a one digit table identifier plus the extension ".tbl" -** to the base portion of the filename defined here. -** -** The default definitions will create RTS filenames as follows: -** "/cf/apps/sc_rts001.tbl, /cf/apps/sc_rts002.tbl, etc" -** -** \par Limits: -** SC requires that this name be defined, but otherwise places no -** limits on the definition. If the named table file does not exist -** at run time, or the table fails validation, then the table load -** will fail. Refer to #OS_MAX_PATH_LEN for filename length limits. -*/ -#define SC_RTS_FILE_NAME "/cf/apps/sc_rts" - - -/** \sccfg ATS Table Object Names -** -** \par Description: -** Unique table object names are required for each table registered -** with cFE Table Services. ATS table object names are constructed -** by appending a one digit table identifier to the base portion of -** the object name defined here. -** -** The default definitions will create ATS object names as follows: -** "ATS_TBL1 or ATS_TBL2" -** -** \par Limits: -** SC requires that this name be defined, but otherwise places no -** limits on the definition. Refer to #CFE_TBL_MAX_NAME_LENGTH for -** specific information on limits related to table object names. -*/ -#define SC_ATS_TABLE_NAME "ATS_TBL" - - -/** \sccfg Append ATS Table Object Names -** -** \par Description: -** Unique table object names are required for each table registered -** with cFE Table Services. This is the table object name for the -** Append ATS table. -** -** \par Limits: -** SC requires that this name be defined, but otherwise places no -** limits on the definition. Refer to #CFE_TBL_MAX_NAME_LENGTH for -** specific information on limits related to table object names. -*/ -#define SC_APPEND_TABLE_NAME "APPEND_TBL" - - -/** \sccfg RTS Table Object Names -** -** \par Description: -** Unique table object names are required for each table registered -** with cFE Table Services. RTS table object names are constructed -** by appending a three digit table identifier to the base portion -** of the object name defined here. -** -** The default definitions will create RTS object names as follows: -** "RTS_TBL001, RTS_TBL002, etc" -** -** \par Limits: -** SC requires that this name be defined, but otherwise places no -** limits on the definition. Refer to #CFE_TBL_MAX_NAME_LENGTH for -** specific information on limits related to table object names. -*/ -#define SC_RTS_TABLE_NAME "RTS_TBL" - - -/** \sccfg Name of the RTS Infomation Table -** -** \par Description: -** Name of the RTS Information Table -** \par Limits: -** Must be less than #CFE_TBL_MAX_NAME_LENGTH -*/ -#define SC_RTSINFO_TABLE_NAME "RTSINF_TBL" - - -/** \sccfg Name of the RTP Control block table -** -** \par Description: -** Name of the RTP Control Block Table -** \par Limits: -** Must be less than #CFE_TBL_MAX_NAME_LENGTH -*/ -#define SC_RTP_CTRL_TABLE_NAME "RTPCTR_TBL" - - -/** \sccfg Name of the ATS Infomation Table -** -** \par Description: -** Name of the ATS Information Table -** \par Limits: -** Must be less than #CFE_TBL_MAX_NAME_LENGTH -*/ -#define SC_ATSINFO_TABLE_NAME "ATSINF_TBL" - - -/** \sccfg Name of the Append ATS Infomation Table -** -** \par Description: -** Name of the Append ATS Information Table -** \par Limits: -** Must be less than #CFE_TBL_MAX_NAME_LENGTH -*/ -#define SC_APPENDINFO_TABLE_NAME "APPINF_TBL" - - -/** \sccfg Name of the ATP Control block table -** -** \par Description: -** Name of the ATP Control Block Table -** \par Limits: -** Must be less than #CFE_TBL_MAX_NAME_LENGTH -*/ -#define SC_ATS_CTRL_TABLE_NAME "ATPCTR_TBL" - - - /** \sccfg Name Prefix of ATS Cmd Status Table -** -** \par Description: -** The prefix of the ATS Command Status table names. Note that actual table names -** will have a 1 digit number postfixed to it depending on the -** ATS number -** -** \par Limits: -** Total length must be less than #CFE_TBL_MAX_NAME_LENGTH -*/ -#define SC_ATS_CMD_STAT_TABLE_NAME "ATSCMD_TBL" - - -/** \sccfg Defnies default state of Continue-Ats-On-Checksum-Failure Flag -** -** \par Description: -** This parameter specifies the default state to continue an ATS -** when a command in the ATS fails checksum validation -** -** \par Limits: -** Must be TUE or FALSE -*/ -#define SC_CONT_ON_FAILURE_START TRUE - - -/** \sccfg Defines the TIME SC should use for its commands -** -** -** \par Description: -** This parameter defines what type of time SC should use for sending uot its commands -** -** \par Limits: -** Must be SC_USE_CFE_TIME, SC_USE_TAI, or SC_USE_UTC */ -#define SC_TIME_TO_USE SC_USE_CFE_TIME - - -/** \sccfg Define inclusion state for RTS group commands -** -** \par Description: -** This parameter specifies the inclusion state for the -** following RTS group commands: Start RTS group, Stop -** RTS group, Enable RTS group and Disable RTS group. -** RTS group commands affect a range of consecutive RTS -** numbers. When set to TRUE, this definition results -** in the inclusion of the group command handlers into -** the SC source code. -** -** \par Limits: -** Must be defined as TRUE or FALSE -*/ -#define SC_ENABLE_GROUP_COMMANDS TRUE - - -/** \sccfg Mission specific version number for SC application -** -** \par Description: -** An application version number consists of four parts: -** major version number, minor version number, revision -** number and mission specific revision number. The mission -** specific revision number is defined here and the other -** parts are defined in "sc_version.h". -** -** \par Limits: -** Must be defined as a numeric value that is greater than -** or equal to zero. -*/ -#define SC_MISSION_REV 0 - - -#endif /*SC_PLATFORM_CFG_H*/ - -/************************/ -/* End of File Comment */ -/************************/ - diff --git a/config/obc/cpd/inc/sc_rts.h b/config/obc/cpd/inc/sc_rts.h deleted file mode 100644 index 3069a5df7..000000000 --- a/config/obc/cpd/inc/sc_rts.h +++ /dev/null @@ -1,323 +0,0 @@ -#ifndef SC_RTS_H -#define SC_RTS_H - -/** - ** \name RTS 'name for a mission - This can be shorted or expanded or changed for each mission*/ -/** \{ */ - -#define RTS_ID_AUTO_POWER_ON 1 /**< \brief Startup auto-exec after power-on reset */ -#define RTS_ID_AUTO_PROCESSOR 2 /**< \brief Startup auto-exec after processor reset */ - -#define RTS_ID_Spare3 3 -#define RTS_ID_Spare4 4 -#define RTS_ID_Spare5 5 -#define RTS_ID_Spare6 6 -#define RTS_ID_Spare7 7 -#define RTS_ID_Spare8 8 -#define RTS_ID_Spare9 9 - -#define RTS_ID_Spare10 10 -#define RTS_ID_Spare11 11 -#define RTS_ID_Spare12 12 -#define RTS_ID_Spare13 13 -#define RTS_ID_Spare14 14 -#define RTS_ID_Spare15 15 -#define RTS_ID_Spare16 16 -#define RTS_ID_Spare17 17 -#define RTS_ID_Spare18 18 -#define RTS_ID_Spare19 19 - -#define RTS_ID_Spare20 20 -#define RTS_ID_Spare21 21 -#define RTS_ID_Spare22 22 -#define RTS_ID_Spare23 23 -#define RTS_ID_Spare24 24 -#define RTS_ID_Spare25 25 -#define RTS_ID_Spare26 26 -#define RTS_ID_Spare27 27 -#define RTS_ID_Spare28 28 -#define RTS_ID_Spare29 29 - -#define RTS_ID_Spare30 30 -#define RTS_ID_Spare31 31 -#define RTS_ID_Spare32 32 -#define RTS_ID_Spare33 33 -#define RTS_ID_Spare34 34 -#define RTS_ID_Spare35 35 -#define RTS_ID_Spare36 36 -#define RTS_ID_Spare37 37 -#define RTS_ID_Spare38 38 -#define RTS_ID_Spare39 39 - -#define RTS_ID_Spare40 40 -#define RTS_ID_Spare41 41 -#define RTS_ID_Spare42 42 -#define RTS_ID_Spare43 43 -#define RTS_ID_Spare44 44 -#define RTS_ID_Spare45 45 -#define RTS_ID_Spare46 46 -#define RTS_ID_Spare47 47 -#define RTS_ID_Spare48 48 -#define RTS_ID_Spare49 49 - -#define RTS_ID_Spare50 50 -#define RTS_ID_Spare51 51 -#define RTS_ID_Spare52 52 -#define RTS_ID_Spare53 53 -#define RTS_ID_Spare54 54 -#define RTS_ID_Spare55 55 -#define RTS_ID_Spare56 56 -#define RTS_ID_Spare57 57 -#define RTS_ID_Spare58 58 -#define RTS_ID_Spare59 59 - -#define RTS_ID_Spare60 60 -#define RTS_ID_Spare61 61 -#define RTS_ID_Spare62 62 -#define RTS_ID_Spare63 63 -#define RTS_ID_Spare64 64 -#define RTS_ID_Spare65 65 -#define RTS_ID_Spare66 66 -#define RTS_ID_Spare67 67 -#define RTS_ID_Spare68 68 -#define RTS_ID_Spare69 69 - -#define RTS_ID_Spare70 70 -#define RTS_ID_Spare71 71 -#define RTS_ID_Spare72 72 -#define RTS_ID_Spare73 73 -#define RTS_ID_Spare74 74 -#define RTS_ID_Spare75 75 -#define RTS_ID_Spare76 76 -#define RTS_ID_Spare77 77 -#define RTS_ID_Spare78 78 -#define RTS_ID_Spare79 79 - -#define RTS_ID_Spare80 80 -#define RTS_ID_Spare81 81 -#define RTS_ID_Spare82 82 -#define RTS_ID_Spare83 83 -#define RTS_ID_Spare84 84 -#define RTS_ID_Spare85 85 -#define RTS_ID_Spare86 86 -#define RTS_ID_Spare87 87 -#define RTS_ID_Spare88 88 -#define RTS_ID_Spare89 89 - -#define RTS_ID_Spare90 90 -#define RTS_ID_Spare91 91 -#define RTS_ID_Spare92 92 -#define RTS_ID_Spare93 93 -#define RTS_ID_Spare94 94 -#define RTS_ID_Spare95 95 -#define RTS_ID_Spare96 96 -#define RTS_ID_Spare97 97 -#define RTS_ID_Spare98 98 -#define RTS_ID_Spare99 99 - -#define RTS_ID_Spare100 100 -#define RTS_ID_Spare101 101 -#define RTS_ID_Spare102 102 -#define RTS_ID_Spare103 103 -#define RTS_ID_Spare104 104 -#define RTS_ID_Spare105 105 -#define RTS_ID_Spare106 106 -#define RTS_ID_Spare107 107 -#define RTS_ID_Spare108 108 -#define RTS_ID_Spare109 109 - -#define RTS_ID_Spare110 110 -#define RTS_ID_Spare111 111 -#define RTS_ID_Spare112 112 -#define RTS_ID_Spare113 113 -#define RTS_ID_Spare114 114 -#define RTS_ID_Spare115 115 -#define RTS_ID_Spare116 116 -#define RTS_ID_Spare117 117 -#define RTS_ID_Spare118 118 -#define RTS_ID_Spare119 119 - -#define RTS_ID_Spare120 120 -#define RTS_ID_Spare121 121 -#define RTS_ID_Spare122 122 -#define RTS_ID_Spare123 123 -#define RTS_ID_Spare124 124 -#define RTS_ID_Spare125 125 -#define RTS_ID_Spare126 126 -#define RTS_ID_Spare127 127 -#define RTS_ID_Spare128 128 -#define RTS_ID_Spare129 129 - -#define RTS_ID_Spare130 130 -#define RTS_ID_Spare131 131 -#define RTS_ID_Spare132 132 -#define RTS_ID_Spare133 133 -#define RTS_ID_Spare134 134 -#define RTS_ID_Spare135 135 -#define RTS_ID_Spare136 136 -#define RTS_ID_Spare137 137 -#define RTS_ID_Spare138 138 -#define RTS_ID_Spare139 139 - -#define RTS_ID_Spare140 140 -#define RTS_ID_Spare141 141 -#define RTS_ID_Spare142 142 -#define RTS_ID_Spare143 143 -#define RTS_ID_Spare144 144 -#define RTS_ID_Spare145 145 -#define RTS_ID_Spare146 146 -#define RTS_ID_Spare147 147 -#define RTS_ID_Spare148 148 -#define RTS_ID_Spare149 149 - -#define RTS_ID_Spare150 150 -#define RTS_ID_Spare151 151 -#define RTS_ID_Spare152 152 -#define RTS_ID_Spare153 153 -#define RTS_ID_Spare154 154 -#define RTS_ID_Spare155 155 -#define RTS_ID_Spare156 156 -#define RTS_ID_Spare157 157 -#define RTS_ID_Spare158 158 -#define RTS_ID_Spare159 159 - -#define RTS_ID_Spare160 160 -#define RTS_ID_Spare161 161 -#define RTS_ID_Spare162 162 -#define RTS_ID_Spare163 163 -#define RTS_ID_Spare164 164 -#define RTS_ID_Spare165 165 -#define RTS_ID_Spare166 166 -#define RTS_ID_Spare167 167 -#define RTS_ID_Spare168 168 -#define RTS_ID_Spare169 169 - -#define RTS_ID_Spare170 170 -#define RTS_ID_Spare171 171 -#define RTS_ID_Spare172 172 -#define RTS_ID_Spare173 173 -#define RTS_ID_Spare174 174 -#define RTS_ID_Spare175 175 -#define RTS_ID_Spare176 176 -#define RTS_ID_Spare177 177 -#define RTS_ID_Spare178 178 -#define RTS_ID_Spare179 179 - -#define RTS_ID_Spare180 180 -#define RTS_ID_Spare181 181 -#define RTS_ID_Spare182 182 -#define RTS_ID_Spare183 183 -#define RTS_ID_Spare184 184 -#define RTS_ID_Spare185 185 -#define RTS_ID_Spare186 186 -#define RTS_ID_Spare187 187 -#define RTS_ID_Spare188 188 -#define RTS_ID_Spare189 189 - -#define RTS_ID_Spare190 190 -#define RTS_ID_Spare191 191 -#define RTS_ID_Spare192 192 -#define RTS_ID_Spare193 193 -#define RTS_ID_Spare194 194 -#define RTS_ID_Spare195 195 -#define RTS_ID_Spare196 196 -#define RTS_ID_Spare197 197 -#define RTS_ID_Spare198 198 -#define RTS_ID_Spare199 199 - -#define RTS_ID_Spare200 200 -#define RTS_ID_Spare201 201 -#define RTS_ID_Spare202 202 -#define RTS_ID_Spare203 203 -#define RTS_ID_Spare204 204 -#define RTS_ID_Spare205 205 -#define RTS_ID_Spare206 206 -#define RTS_ID_Spare207 207 -#define RTS_ID_Spare208 208 -#define RTS_ID_Spare209 209 - -#define RTS_ID_Spare210 210 -#define RTS_ID_Spare211 211 -#define RTS_ID_Spare212 212 -#define RTS_ID_Spare213 213 -#define RTS_ID_Spare214 214 -#define RTS_ID_Spare215 215 -#define RTS_ID_Spare216 216 -#define RTS_ID_Spare217 217 -#define RTS_ID_Spare218 218 -#define RTS_ID_Spare219 219 - -#define RTS_ID_Spare220 220 -#define RTS_ID_Spare221 221 -#define RTS_ID_Spare222 222 -#define RTS_ID_Spare223 223 -#define RTS_ID_Spare224 224 -#define RTS_ID_Spare225 225 -#define RTS_ID_Spare226 226 -#define RTS_ID_Spare227 227 -#define RTS_ID_Spare228 228 -#define RTS_ID_Spare229 229 - -#define RTS_ID_Spare230 230 -#define RTS_ID_Spare231 231 -#define RTS_ID_Spare232 232 -#define RTS_ID_Spare233 233 -#define RTS_ID_Spare234 234 -#define RTS_ID_Spare235 235 -#define RTS_ID_Spare236 236 -#define RTS_ID_Spare237 237 -#define RTS_ID_Spare238 238 -#define RTS_ID_Spare239 239 - -#define RTS_ID_Spare240 240 -#define RTS_ID_Spare241 241 -#define RTS_ID_Spare242 242 -#define RTS_ID_Spare243 243 -#define RTS_ID_Spare244 244 -#define RTS_ID_Spare245 245 -#define RTS_ID_Spare246 246 -#define RTS_ID_Spare247 247 -#define RTS_ID_Spare248 248 -#define RTS_ID_Spare249 249 - -#define RTS_ID_Spare250 250 -#define RTS_ID_Spare251 251 -#define RTS_ID_Spare252 252 -#define RTS_ID_Spare253 253 -#define RTS_ID_Spare254 254 -#define RTS_ID_Spare255 255 -#define RTS_ID_Spare256 256 -/** \} */ - - -#endif /* SC_RTS_H */ - -/************************/ -/* End of File Comment */ -/************************/ - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/config/obc/cpd/inc/sch_grpids.h b/config/obc/cpd/inc/sch_grpids.h deleted file mode 100644 index f2d6a64f4..000000000 --- a/config/obc/cpd/inc/sch_grpids.h +++ /dev/null @@ -1,48 +0,0 @@ -#ifndef SCH_GRPIDS_H -#define SCH_GRPIDS_H - -/* -** Pragmas -*/ - -/* -** Include Files -*/ - -/* -** Local Defines -*/ -#define SCH_GROUP_NONE (0) -#define SCH_GROUP_CI (0x00000001) -#define SCH_GROUP_CF_SEND_HK (0x00000002) -#define SCH_GROUP_CF_WAKE_UP_REQ_CMD (0x00000010) -#define SCH_GROUP_CS_SEND_HK (0x00000020) -#define SCH_GROUP_MD_WAKEUP (0x00000040) -#define SCH_GROUP_DS_SEND_HK (0x00000080) -#define SCH_GROUP_SC_1HZ_WAKEUP (0x00000100) -#define SCH_GROUP_GOPRO_SEND_HK (0x00000200) -#define SCH_GROUP_FM_SEND_HK (0x00000400) -#define SCH_GROUP_HK_SEND_HK (0x00000800) -#define SCH_GROUP_HS_SEND_HK (0x00001000) -#define SCH_GROUP_LC_SEND_HK (0x00002000) -#define SCH_GROUP_MD_SEND_HK (0x00004000) -#define SCH_GROUP_MM_SEND_HK (0x00008000) -#define SCH_GROUP_SC_SEND_HK (0x00010000) -#define SCH_GROUP_SCH_SEND_HK (0x00020000) -#define SCH_GROUP_CFE_ES_SEND_HK (0x00040000) -#define SCH_GROUP_CFE_EVS_SEND_HK (0x00080000) -#define SCH_GROUP_CFE_SB_SEND_HK (0x00100000) -#define SCH_GROUP_CFE_TBL_SEND_HK (0x00200000) -#define SCH_GROUP_CFE_TIME_SEND_HK (0x00400000) -#define SCH_GROUP_HS_WAKEUP (0x00800000) -#define SCH_GROUP_TO (0x01000000) -#define SCH_GROUP_VC (0x02000000) -#define SCH_GROUP_EA (0x04000000) - -#endif /* SCH_GRPIDS_H */ - -/*======================================================================================= -** End of file sch_grpids.h -**=====================================================================================*/ - - diff --git a/config/obc/cpd/inc/sch_msgids.h b/config/obc/cpd/inc/sch_msgids.h deleted file mode 100644 index be337a78a..000000000 --- a/config/obc/cpd/inc/sch_msgids.h +++ /dev/null @@ -1,10 +0,0 @@ -#ifndef SCH_MSGIDS_H -#define SCH_MSGIDS_H - -#include "msg_ids.h" - -#endif /* SCH_MSGIDS_H */ - -/************************/ -/* End of File Comment */ -/************************/ diff --git a/config/obc/cpd/inc/sch_platform_cfg.h b/config/obc/cpd/inc/sch_platform_cfg.h deleted file mode 100644 index 0c946a35c..000000000 --- a/config/obc/cpd/inc/sch_platform_cfg.h +++ /dev/null @@ -1,294 +0,0 @@ -#ifndef SCH_PLATFORM_CFG_H -#define SCH_PLATFORM_CFG_H - -#include "osapi.h" - - -/************************************************************************* -** Macro definitions -**************************************************************************/ - -/** -** \schcfg Software Bus Command Pipe Depth -** -** \par Description: -** Dictates the number of messages to SCH that can be queued while awaiting -** processing by the SCH Application. -** -** \par Limits -** Must be greater than zero -*/ -#define SCH_PIPE_DEPTH 12 /**< \brief SCH Command Pipe Depth */ - -#define SCH_AD_PIPE_DEPTH 3 -#define SCH_AD_CHILD_TASK_PRIORITY 37 -#define SCH_AD_CHILD_TASK_FLAGS OS_ENABLE_CORE_0 - -/*#define SCH_RTM_SUPPORTED*/ - -/* -** Schedule table definitions... -*/ -/** -** \schcfg Minor Frame Frequency (in Hz) -** -** \par Description: -** Dictates the number of minor frame slots within each Major Frame. -** -** \par Limits -** Must be 2 or more and less than 65536 -*/ -#define SCH_TOTAL_SLOTS 250 /* SCH wake-up rate (Hz) */ - - -/** -** \schcfg Maximum number of Activities per Minor Frame -** -** \par Description: -** Dictates the number of activities that can be defined for each Minor Frame. -** -** \par Limits -** Must be at least one -*/ -#define SCH_ENTRIES_PER_SLOT 15 - - -/** -** \schcfg Maximum Number of Message Definitions in Message Definition Table -** -** \par Description: -** Dictates the number of messages that can be defined in Message Definition Table. -** -** \par Limits -** Must be at least one -*/ -#define SCH_MAX_MESSAGES 128 - -/** -** \schcfg Maximum Message ID allowed in Message Definition Table -** -** \par Description: -** Dictates the maximum message ID that can be used in the Message Definition Table. -** -** \par Limits -** Must be less than or equal to SCH_MDT_MAX_MSG_ID and greater than or equal to 0 -*/ -#define SCH_MDT_MIN_MSG_ID 0 - -/** -** \schcfg Minimum Message ID allowed in Message Definition Table -** -** \par Description: -** Dictates the minimum message ID that can be used in the Message Definition Table. -** -** \par Limits -** Must be less than or equal to #CFE_SB_HIGHEST_VALID_MSGID and greater than SCH_MDT_MIN_MSG_ID -*/ -#define SCH_MDT_MAX_MSG_ID CFE_SB_HIGHEST_VALID_MSGID - - -/** -** \schcfg Maximum Length, in Words, of a Message -** -** \par Description: -** Dictates the maximum number of words that can be assigned to a particular message -** in the Message Definition Table. -** -** \par Limits -** Must be at least large enough to hold the smallest possible message header -* ** (see #CFE_SB_TLM_HDR_SIZE and #CFE_SB_CMD_HDR_SIZE) -*/ -#define SCH_MAX_MSG_WORDS 64 /* max message length (in words) */ - - -/* -** Limits for how far we can get behind and how much we can do at once... -*/ -/** -** \schcfg Maximum Number of slots allowed for catch-up before skipping -** -** \par Description: -** Dictates the number of Minor Frames that will be processed in "Catch Up" -** mode before giving up and skipping ahead. -** -** \par Limits -** -*/ -#define SCH_MAX_LAG_COUNT (SCH_TOTAL_SLOTS / 2) - - -/** -** \schcfg Maximum Number of Slots to be processed when in "Catch Up" mode -** -** \par Description: -** Dictates the maximum number of slots SCH will process when trying to -** "Catch Up" to the correct slot for the current time. -** -** \par Limits -** Must be at least one -*/ -#define SCH_MAX_SLOTS_PER_WAKEUP 5 - -/* -** Conversion factor for how many microseconds in a wake-up period... -*/ -/** -** \schcfg Major Frame Period (in microseconds) -** -** \par Description: -** Dictates the number microseconds in a Major Frame. -** -** \par Limits -** Must be greater than zero -*/ -#define SCH_MICROS_PER_MAJOR_FRAME 1000000 - - -/** -** \schcfg Additional time allowed in Sync Slot to wait for Major Frame Sync (in microseconds) -** -** \par Description: -** Dictates the additional time allowed in the Syncronization Slot -** to allow the Major Frame Sync signal to be received and re-synchronize -** processing. -** -** \par Limits -** Must be less than the normal slot period -*/ -#define SCH_SYNC_SLOT_DRIFT_WINDOW 500 - - -/** -** \schcfg Time, in milliseconds, to wait for all applications to be started and ready to run -** -** \par Description: -** Dictates the timeout for the #CFE_ES_WaitForStartupSync call that SCH uses to wait -** for all of the Applications specified in the startup script to finish initialization. -** SCH will wait this amount of time before assuming all startup script applications have -** been started and will then begin nominal schedule processing. -** -** \par Limits -** None -*/ -#define SCH_STARTUP_SYNC_TIMEOUT 50000 - - -/** -** \schcfg Time, in microseconds, to wait for first Major Frame Sync to arrive -** -** \par Description: -** Dictates the time allowed for the first Major Frame sync signal to arrive -** before assuming it is not going to occur and switching to a freewheeling -** mode. -** -** \par Limits -** Must be greater than or equal to the Major Frame Period -*/ -#define SCH_STARTUP_PERIOD (5*SCH_MICROS_PER_MAJOR_FRAME) - - -/* -** Specifies the limit on the number of consecutive noisy Major Frame signals -** before we begin to ignore them. -*/ -/** -** \schcfg Maximum Number of consecutive Noisy Major Frame signals before they are ignored -** -** \par Description: -** Dictates the number of consecutive "Noisy" Major Frame Signals (i.e. - signals that -** occur outside the expected window of their occurence) until the Major Frame signal -** is automatically ignored and the Minor Frame Timer is used instead. -** -** \par Limits -** This value should never be set to less than two because a single "noisy" Major -** Frame signal is likely when turning on or switching the 1 Hz signal on the spacecraft. -*/ -#define SCH_MAX_NOISY_MAJORF 2 - - -/** -** \schcfg Scheduler API Library Usage Status -** -** \par Description: -** Determines whether or not the Scheduler application is using the API library allowing -** for external tasks to disable and enable schedule processing. Note that if the library -** is to be used it must be generated as a separate object, and loaded prior to the -** appplication. -** -** \par Limits -** This value must either be 0 when not using or including the library, or 1 if the library -** is going to be used. -*/ -#define SCH_LIB_PRESENCE 1 - - -/** -** \schcfg Scheduler API Library Initial Inhibition Count -** -** \par Description: -** Sets the number of times the scheduler must be enabled following library initialization. -** This allows the scheduler to come up either enabled (set to 0) or disabled (set to -** a value greater than or equal to 1) -** -** \par Limits -** This value must be an unsigned 32 bit integer. -*/ -#define SCH_LIB_DIS_CTR 0 - - -/** -** \schcfg Default SCH Schedule Definition Table Filename -** -** \par Description: -** The value of this constant defines the default filename of -** the SCH Schedule Definition Table -** -** \par Limits -** The length of each string, including the NULL terminator cannot exceed -** the #OS_MAX_PATH_LEN value. -*/ - -//#define SCH_SCHEDULE_FILENAME "/cf/apps/sch_def_schtbl.tbl" -#define SCH_SCHEDULE_FILENAME "/cf/apps/sch_def_schtbl.tbl" - - -/** -** \schcfg Default SCH Message Definition Table Filename -** -** \par Description: -** The value of this constant defines the default filename of the -** SCH Message Definition Table -** -** \par Limits -** The length of each string, including the NULL terminator cannot exceed -** the #OS_MAX_PATH_LEN value. -*/ - -#define SCH_MESSAGE_FILENAME "/cf/apps/sch_def_msgtbl.tbl" - - -/** \schcfg Mission specific version number for SCH application -** -** \par Description: -** An application version number consists of four parts: -** major version number, minor version number, revision -** number and mission specific revision number. The mission -** specific revision number is defined here and the other -** parts are defined in "sch_version.h". -** -** \par Limits: -** Must be defined as a numeric value that is greater than -** or equal to zero. -*/ - -#define SCH_MISSION_REV 0 - -#define SCH_DEADLINES_PER_SLOT 5 - - - -#endif /* SCH_PLATFORM_CFG_H */ - -/************************/ -/* End of File Comment */ -/************************/ diff --git a/config/obc/cpd/inc/sens_platform_cfg.h b/config/obc/cpd/inc/sens_platform_cfg.h deleted file mode 100644 index c8ac6f8ec..000000000 --- a/config/obc/cpd/inc/sens_platform_cfg.h +++ /dev/null @@ -1,154 +0,0 @@ -#ifndef SENS_PLATFORM_CFG_H -#define SENS_PLATFORM_CFG_H - -#ifdef __cplusplus -extern "C" { -#endif - -/* -** SENS Platform Configuration Parameter Definitions -*/ - -/** \brief Mission specific version number for SENS application -** -** \par Description: -** An application version number consists of four parts: -** major version number, minor version number, revision -** number and mission specific revision number. The mission -** specific revision number is defined here and the other -** parts are defined in "amc_version.h". -** -** \par Limits: -** Must be defined as a numeric value that is greater than -** or equal to zero. -*/ -#define SENS_MISSION_REV (0) - -/** \brief Pipe depth for the Scheduler pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define SENS_SCH_PIPE_DEPTH (10) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define SENS_SCH_PIPE_NAME ("SENS_SCH_PIPE") - -/** \brief The SB pend behavior type for the Scheduler pipe. -** -** \par Limits: -** One of: CFE_SB_POLL, CFE_SB_PEND_FOREVER, or the -** number of milliseconds to wait for a new message (recommended). -** Note, using CFE_SB_PEND_FOREVER may cause an unresponsive -** application if no messages arrive on this pipe. -*/ -#define SENS_SCH_PIPE_PEND_TIME (2000) - -/** \brief The number of WAKEUP messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max limited to CFE_SB_MAX_PIPE_DEPTH-1. Note the -** SENS_WAKEUP_MID_MAX_MSG_COUNT and SENS_SEND_HK_MID_MAX_MSG_COUNT -** must be less than SENS_SCH_PIPE_DEPTH. -*/ -#define SENS_WAKEUP_MID_MAX_MSG_COUNT (1) - -/** \brief The number of SEND_HK messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. Note the -** SENS_WAKEUP_MID_MAX_MSG_COUNT and SENS_SEND_HK_MID_MAX_MSG_COUNT -** must be less than SENS_SCH_PIPE_DEPTH. -*/ -#define SENS_SEND_HK_MID_MAX_MSG_COUNT (1) - -/** \brief Pipe depth for the command pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define SENS_CMD_PIPE_DEPTH (4) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define SENS_CMD_PIPE_NAME ("SENS_CMD_PIPE") - -/** \brief Pipe depth for the data pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define SENS_DATA_PIPE_DEPTH (4) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define SENS_DATA_PIPE_NAME ("SENS_DATA_PIPE") - -/** \brief The config table default filename -** -** \par Limits: -** The length of each string, including the NULL terminator cannot exceed -** the #OS_MAX_PATH_LEN value. -*/ -#define SENS_CONFIG_TABLE_FILENAME ("/cf/apps/sens_config.tbl") - -/** \brief The timeout value, in milliseconds, to wait for ES application startup sync. -** -** \par Limits: -** This parameter must be at least 1000 (ms). -*/ -#define SENS_STARTUP_TIMEOUT_MSEC (1000) - -/** \brief The maximum time difference, in microseconds, between accelerometer -** measurements to be considered valid. -** -** \par Limits: -** This parameter must be greater than 0. -*/ -#define SENS_MAX_ACC_TIME_DELTA (25) - -/** \brief The maximum time difference, in microseconds, between gyro -** measurements to be considered valid. -** -** \par Limits: -** This parameter must be greater than 0. -*/ -#define SENS_MAX_GYRO_TIME_DELTA (25) - -/** \brief The maximum time difference, in microseconds, between magnetometer -** measurements to be considered valid. -** -** \par Limits: -** This parameter must be greater than 0. -*/ -#define SENS_MAX_MAG_TIME_DELTA (25) - -/** \brief The maximum time difference, in microseconds, between barometer -** measurements to be considered valid. -** -** \par Limits: -** This parameter must be greater than 0. -*/ -#define SENS_MAX_BARO_TIME_DELTA (100) - - -#ifdef __cplusplus -} -#endif - -#endif /* SENS_PLATFORM_CFG_H */ - -/************************/ -/* End of File Comment */ -/************************/ - diff --git a/config/obc/cpd/inc/to_msgids.h b/config/obc/cpd/inc/to_msgids.h deleted file mode 100644 index a00beac0e..000000000 --- a/config/obc/cpd/inc/to_msgids.h +++ /dev/null @@ -1,10 +0,0 @@ -#ifndef TO_MSGIDS_H -#define TO_MSGIDS_H - -#include "msg_ids.h" - -#endif - -/************************/ -/* End of File Comment */ -/************************/ diff --git a/config/obc/cpd/inc/to_platform_cfg.h b/config/obc/cpd/inc/to_platform_cfg.h deleted file mode 100644 index c520a9242..000000000 --- a/config/obc/cpd/inc/to_platform_cfg.h +++ /dev/null @@ -1,281 +0,0 @@ -#ifndef TO_PLATFORM_CFG_H -#define TO_PLATFORM_CFG_H - -#ifdef __cplusplus -extern "C" { -#endif - -#include "cfe_platform_cfg.h" - -/* -** Platform Configuration Parameter Definitions -*/ - - -/** \tocfg Child task flags -** -** \par Description: -** These are optional flags passed to the #CFE_ES_CreateChildTask -** function when creating the CFE child task. -** -*/ -#define TO_CUSTOM_CHILD_TASK_FLAGS (OS_ENABLE_CORE_0) - - -/** \tocfg Child task stack size -** -** \par Description: -** Child task stack size passed to the #CFE_ES_CreateChildTask -** function when creating the CFE child task. Stack size is in -** bytes. -** -*/ -#define TO_CUSTOM_TASK_STACK_SIZE (131072) - - -/** \tocfg Default telemetry destination IP address -** -** \par Description: -** Default IP address to send the telemetry stream to. This is default -** only and can be changed by command at runtime. -** -*/ -#define TO_UDP_CHANNEL_ADDRESS "192.168.2.215" - - -/** \tocfg Default telemetry destination UDP port -** -** \par Description: -** Default UDP port to send the telemetry stream to. This is default -** only and can be changed by command at runtime. -** -*/ -#define TO_UDP_CHANNEL_PORT (5011) - - -/** \tocfg Message Flow packet limit -** -** \par Description: -** This is the maximum number of message flow entries that can fit in -** a message flow diagnostic message. -** -*/ -#define TO_MSG_FLOW_PKT_LIMIT (200) - - -/** \tocfg Maximum message length -** -** \par Description: -** The maximum size that an output telemetry message can be. This is in -** bytes. If a message exceeds this size, it will be dropped by the -** classifier. -** -*/ -#define TO_MAX_MSG_LENGTH (32767) - -/** \tocfg The UDP channel's CF throttling semaphore name -** -** \par Limits: -** Two channels in CF must not have the same semaphore name. This must be unique -** compared to other channels' throttling semaphores. -*/ -#define TO_UDP_CF_THROTTLE_SEM_NAME "TO_CF_CH0_SEM" - - -/** \tocfg The UDP channel Name -*/ -#define TO_UDP_CHANNEL_NAME "UDP" - - - -/** \tocfg The UDP channel's default and maximum value for the CF - * throttling semaphore -** -** \par Limits: -** Must not be larger than the TO_DATA_PIPE_DEPTH -*/ -#define TO_UDP_CF_MAX_PDUS (4) - - -/** \tocfg Mission specific version number for TO application -** -** \par Description: -** An application version number consists of four parts: -** major version number, minor version number, revision -** number and mission specific revision number. The mission -** specific revision number is defined here and the other -** parts are defined in "to_version.h". -** -** \par Limits: -** Must be defined as a numeric value that is greater than -** or equal to zero. -*/ -#define TO_MISSION_REV (1) - -/** \tocfg Pipe depth for the Scheduler pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define TO_SCH_PIPE_DEPTH (2) - -/** \tocfg Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define TO_SCH_PIPE_NAME ("TO_SCH_PIPE") - -/** \tocfg The SB pend behavior type for the Scheduler pipe. -** -** \par Limits: -** One of: CFE_SB_POLL, CFE_SB_PEND_FOREVER, or the -** number of milliseconds to wait for a new message (recommended). -** Note, using CFE_SB_PEND_FOREVER may cause an unresponsive -** application if no messages arrive on this pipe. -*/ -#define TO_SCH_PIPE_PEND_TIME (2000) - -/** \tocfg The number of WAKEUP messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max limited to CFE_SB_MAX_PIPE_DEPTH-1. Note the -** TO_SCH_PIPE_WAKEUP_RESERVED and TO_SCH_PIPE_SEND_HK_RESERVED -** must be less than TO_SCH_PIPE_DEPTH. -*/ -#define TO_SCH_PIPE_WAKEUP_RESERVED (1) - -/** \tocfg The number of SEND_HK messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. Note the -** TO_SCH_PIPE_WAKEUP_RESERVED and TO_SCH_PIPE_SEND_HK_RESERVED -** must be less than TO_SCH_PIPE_DEPTH. -*/ -#define TO_SCH_PIPE_SEND_HK_RESERVED (1) - -/** \tocfg Pipe depth for the command pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define TO_CMD_PIPE_DEPTH (4) - -/** \tocfg Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define TO_CMD_PIPE_NAME ("TO_CMD_PIPE") - -/** \tocfg Pipe depth for the data pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define TO_DATA_PIPE_DEPTH (CFE_SB_MAX_PIPE_DEPTH) - -/** \tocfg The config table default filename -** -** \par Limits: -** The length of each string, including the NULL terminator cannot exceed -** the #OS_MAX_PATH_LEN value. -*/ -#define TO_UDP_CONFIG_TABLE_FILENAME ("/cf/apps/to_udp_cfg.tbl") - - -#define TO_MAX_MEMPOOL_BLK_SIZES (8) - -/** -** \cfeescfg Define TO Memory Pool Block Sizes -** -** \par Description: -** TO Memory Pool Block Sizes -** -** \par Limits -** These sizes MUST be increasing and MUST be an integral multiple of 4. -** The number of block sizes defined cannot exceed -** #CFE_ES_MAX_MEMPOOL_BLOCK_SIZES -*/ -#define TO_MEM_BLOCK_SIZE_01 32 -#define TO_MEM_BLOCK_SIZE_02 64 -#define TO_MEM_BLOCK_SIZE_03 128 -#define TO_MEM_BLOCK_SIZE_04 256 -#define TO_MEM_BLOCK_SIZE_05 512 -#define TO_MEM_BLOCK_SIZE_06 2048 -#define TO_MEM_BLOCK_SIZE_07 8192 -#define TO_MAX_BLOCK_SIZE (TO_MEM_BLOCK_SIZE_07 + TO_MEM_BLOCK_SIZE_07) - -/** - * \tocfg Defines the table identification name used for table registration - * of the configuration table. - */ -#define TO_UDP_CONFIG_TABLENAME "UDP_CFG" - -/** - * \tocfg Defines the table identification name used for table registration - * of the dump table. - */ -#define TO_UDP_DUMP_TABLENAME "UDP_DMP" - -/** \tocfg The timeout value, in milliseconds, to wait for ES application startup sync. -** -** \par Limits: -** This parameter must be at least 1000 (ms). -*/ -#define TO_STARTUP_TIMEOUT_MSEC (1000) - -/** \tocfg Maximum number of messages to classify per processing frame. -*/ -#define TO_MAX_MSGS_OUT_PER_FRAME (100) - -/** \tocfg Maximum number of messages to classify per processing frame. -*/ - -/** \tocfg Maximum number configurable channels. - * -** \par Description: This is normally set to 1. -*/ -#define TO_MAX_CHANNELS (1) - -/** \tocfg Channel output queue depth. - * -** \par Description: This defines how many messages can be queued into the -** channel output queue by the scheduler. -*/ -#define TO_OUTPUT_QUEUE_DEPTH (20) - -/** \tocfg Development UDP channel task priority. - * -** \par Description: This defines the priority of the development UDP -** child task. -*/ -#define TO_UDP_CHANNEL_TASK_PRIORITY (119) - -/** -** \tocfg Number of bytes in the Message Memory Pool -** -** \par Description: -** The message memory pool contains the memory needed for the queued messages packets. -** The queued messages are dynamically allocated from this pool when the -** messages are received and queued, and deallocated when messages are transmitted -** or a new table is loaded. -** -** \par Limits -** The Telemetry Output app does not place a limit on this parameter, but there is -** an overhead cost in the memory pool. The value must be larger than what is -** needed. -*/ -#define TO_NUM_BYTES_IN_MEM_POOL (200 * TO_MAX_BLOCK_SIZE) - - -#ifdef __cplusplus -} -#endif - -#endif /* TO_PLATFORM_CFG_H */ - -/************************/ -/* End of File Comment */ -/************************/ - diff --git a/config/obc/cpd/inc/ulr_platform_cfg.h b/config/obc/cpd/inc/ulr_platform_cfg.h deleted file mode 100644 index 16e60d3b0..000000000 --- a/config/obc/cpd/inc/ulr_platform_cfg.h +++ /dev/null @@ -1,126 +0,0 @@ -#ifndef ULR_PLATFORM_CFG_H -#define ULR_PLATFORM_CFG_H - -#ifdef __cplusplus -extern "C" { -#endif - -#define ULR_LISTENER_TASK_FLAGS OS_ENABLE_CORE_0 - -/* -** ULR Platform Configuration Parameter Definitions -*/ - -/** \brief Mission specific version number for ULR application -** -** \par Description: -** An application version number consists of four parts: -** major version number, minor version number, revision -** number and mission specific revision number. The mission -** specific revision number is defined here and the other -** parts are defined in "amc_version.h". -** -** \par Limits: -** Must be defined as a numeric value that is greater than -** or equal to zero. -*/ -#define ULR_MISSION_REV (0) - -/** \brief Pipe depth for the Scheduler pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define ULR_SCH_PIPE_DEPTH (2) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define ULR_SCH_PIPE_NAME ("ULR_SCH_PIPE") - -/** \brief The SB pend behavior type for the Scheduler pipe. -** -** \par Limits: -** One of: CFE_SB_POLL, CFE_SB_PEND_FOREVER, or the -** number of milliseconds to wait for a new message (recommended). -** Note, using CFE_SB_PEND_FOREVER may cause an unresponsive -** application if no messages arrive on this pipe. -*/ -#define ULR_SCH_PIPE_PEND_TIME (2000) - -/** \brief The number of WAKEUP messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max limited to CFE_SB_MAX_PIPE_DEPTH-1. Note the -** ULR_MEASURE_MID_MAX_MSG_COUNT and ULR_SEND_HK_MID_MAX_MSG_COUNT -** must be less than ULR_SCH_PIPE_DEPTH. -*/ -#define ULR_MEASURE_MID_MAX_MSG_COUNT (1) - -/** \brief The number of SEND_HK messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. Note the -** ULR_MEASURE_MID_MAX_MSG_COUNT and ULR_SEND_HK_MID_MAX_MSG_COUNT -** must be less than ULR_SCH_PIPE_DEPTH. -*/ -#define ULR_SEND_HK_MID_MAX_MSG_COUNT (1) - -/** \brief Pipe depth for the command pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define ULR_CMD_PIPE_DEPTH (4) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define ULR_CMD_PIPE_NAME ("ULR_CMD_PIPE") - -/** \brief Pipe depth for the data pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define ULR_DATA_PIPE_DEPTH (4) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define ULR_DATA_PIPE_NAME ("ULR_DATA_PIPE") - -/** \brief The timeout value, in milliseconds, to wait for ES application startup sync. -** -** \par Limits: -** This parameter must be at least 1000 (ms). -*/ -#define ULR_STARTUP_TIMEOUT_MSEC (1000) - -/* TODO: Add Doxygen */ -#define ULR_CUSTOM_PORT_PATH "/dev/ttyS6" -#define ULR_SENS_VARIANCE (0.045f * 0.045f) - - -#define ULR_LISTENER_TASK_PRIORITY (64) -#define ULR_LISTENER_TASK_STACK_SIZE (16000) -#define ULR_LISTENER_TASK_NAME "ULR_LISTENER" -#define ULR_MUTEX_NAME "ULR_MUTEX" - - -#ifdef __cplusplus -} -#endif - -#endif /* ULR_PLATFORM_CFG_H */ - -/************************/ -/* End of File Comment */ -/************************/ - diff --git a/config/obc/cpd/inc/vc_platform_cfg.h b/config/obc/cpd/inc/vc_platform_cfg.h deleted file mode 100644 index e975da22d..000000000 --- a/config/obc/cpd/inc/vc_platform_cfg.h +++ /dev/null @@ -1,305 +0,0 @@ -#ifndef VC_PLATFORM_CFG_H -#define VC_PLATFORM_CFG_H - -#ifdef __cplusplus -extern "C" { -#endif - -#include - -#define VC_STREAMING_TASK_FLAGS OS_ENABLE_CORE_0 - -/* -** VC Platform Configuration Parameter Definitions -*/ - -/** \brief Mission specific version number for VC application -** -** \par Description: -** An application version number consists of four parts: -** major version number, minor version number, revision -** number and mission specific revision number. The mission -** specific revision number is defined here and the other -** parts are defined in "vc_version.h". -** -** \par Limits: -** Must be defined as a numeric value that is greater than -** or equal to zero. -*/ -#define VC_MISSION_REV (0) - -/** \brief Pipe depth for the Scheduler pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define VC_SCH_PIPE_DEPTH (2) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define VC_SCH_PIPE_NAME ("VC_SCH_PIPE") - -/** \brief The SB pend behavior type for the Scheduler pipe. -** -** \par Limits: -** One of: CFE_SB_POLL, CFE_SB_PEND_FOREVER, or the -** number of milliseconds to wait for a new message (recommended). -** Note, using CFE_SB_PEND_FOREVER may cause an unresponsive -** application if no messages arrive on this pipe. -*/ -#define VC_SCH_PIPE_PEND_TIME (2000) - -/** \brief The number of WAKEUP messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max limited to CFE_SB_MAX_PIPE_DEPTH-1. Note the -** VC_SCH_PIPE_WAKEUP_RESERVED and VC_SCH_PIPE_SEND_HK_RESERVED -** must be less than VC_SCH_PIPE_DEPTH. -*/ -#define VC_SCH_PIPE_WAKEUP_RESERVED (1) - -/** \brief The number of SEND_HK messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. Note the -** VC_SCH_PIPE_WAKEUP_RESERVED and VC_SCH_PIPE_SEND_HK_RESERVED -** must be less than VC_SCH_PIPE_DEPTH. -*/ -#define VC_SCH_PIPE_SEND_HK_RESERVED (1) - -/** \brief Pipe depth for the command pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define VC_CMD_PIPE_DEPTH (4) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define VC_CMD_PIPE_NAME ("VC_CMD_PIPE") - -/** \brief The timeout value, in milliseconds, to wait for ES application startup sync. -** -** \par Limits: -** This parameter must be at least 1000 (ms). -*/ -#define VC_STARTUP_TIMEOUT_MSEC (1000) - -/** \brief The max address length -** -** \par Limits: -** This parameter must be at least 16 for IPV4. -*/ -#define VC_ADDRESS_LENGTH INET_ADDRSTRLEN - -/* Custom Settings */ - - -/** \brief Max channels allowed -** -** \par Limits: -** Minimum of 1. -*/ -#define VC_MAX_OUTPUT_CHANNELS (5) - -/** \brief Max device path length -** -** \par Limits: -** OS_MAX_LOCAL_PATH_LEN -*/ -#define VC_MAX_DEVICE_PATH OS_MAX_LOCAL_PATH_LEN - -/** \brief Max number of camera devices -** -** \par Limits: -** Minimum of 1. -*/ -#define VC_MAX_DEVICES (1) - -/** \brief Max buffer size -** -** \par Limits: -** Minimum based on configured device driver requirements. -*/ -//#define VC_MAX_BUFFER_SIZE (115200) -#define VC_MAX_BUFFER_SIZE (1228800) - -/** \brief Max packet size -** -** \par Limits: -** UDP max payload size. -*/ -#define VC_MAX_PACKET_SIZE (65527) - -/** \brief Retry attemps for interrupted calls -** -** \par Limits: -** None. -*/ -#define VC_MAX_RETRY_ATTEMPTS (2) - -/** \brief Sleep time micro seconds for interrupted calls -** -** \par Limits: -** None. -*/ -#define VC_MAX_RETRY_SLEEP_USEC (10) - -/** \brief Streaming task priority -** -** \par Limits: -** 0 to MAX_PRIORITY (usually 255) -*/ -#define VC_STREAMING_TASK_PRIORITY (91) - -/** \brief Streaming task name -** -** \par Limits: -** OS_MAX_API_NAME -*/ -#define VC_STREAMING_TASK_NAME "VC_STREAM" - -/* Camera settings */ - -/** \brief Video resolution width -** -** \par Limits: -** Specific to device -*/ -#define VC_FRAME_WIDTH (320) - -/** \brief Video resolution height -** -** \par Limits: -** Specific to device -*/ -#define VC_FRAME_HEIGHT (240) - -/** \brief Video frame rate -** -** \par Limits: -** Specific to device -*/ -#define VC_FRAMERATE (30) - -/** \brief Video camera device path -** -** \par Limits: -** OS_MAX_LOCAL_PATH_LEN -*/ -#define VC_DEVICE_PATH "/dev/video0" - - -/* Ground system settings */ - -/** \brief Ground system ip address -** -** \par Limits: -** INET_ADDRSTRLEN -*/ -#define VC_DESTINATION_IP "192.168.1.3" - -/** \brief Ground system port -** -** \par Limits: -** uint16 decimal -*/ -#define VC_DESTINATION_PORT (3001) - -/** \brief Source system ip address -** -** \par Limits: -** INET_ADDRSTRLEN -*/ -#define VC_SOURCE_IP "0" - -/** \brief Source system port -** -** \par Limits: -** uint16 decimal -*/ -#define VC_SOURCE_PORT (0) - -/* V4L settings */ - -/** \brief V4L streaming io method -** -** \par Limits: -** V4L specific. -*/ -#define VC_V4L_IO_METHOD V4L2_MEMORY_USERPTR - -/** \brief V4L buffer type -** -** \par Limits: -** V4L specific. -*/ -#define VC_V4L_BUFFER_TYPE V4L2_BUF_TYPE_VIDEO_CAPTURE - -/** \brief V4L video format -** -** \par Limits: -** V4L specific. -*/ -#define VC_V4L_VIDEO_FORMAT V4L2_PIX_FMT_MJPEG - -/** \brief V4L field order -** -** \par Limits: -** V4L specific. -*/ -#define VC_V4L_VIDEO_FIELD_ORDER V4L2_FIELD_NONE - -/** \brief V4L buffers to request -** -** \par Limits: -** V4L specific. -*/ -#define VC_V4L_BUFFER_REQUEST (4) - -/** \brief V4L Memory Type -** -** \par Limits: -** V4L specific. -*/ -#define VC_V4L_MEMORY_TYPE V4L2_MEMORY_USERPTR - -/* Timeout settings */ - -/** \brief Wait time for camera data in seconds -** -** \par Limits: -** None. -*/ -#define VC_BUFFER_FILL_TIMEOUT_SEC (2) - -/** \brief Wait time for camera data in microseconds -** -** \par Limits: -** None. -*/ -#define VC_BUFFER_FILL_TIMEOUT_USEC (0) - -/** \brief Max timeouts until exiting streaming task -** -** \par Limits: -** None. -*/ -#define VC_BUFFER_TIMEOUTS_ALLOWED (2) - - -#ifdef __cplusplus -} -#endif - -#endif /* VC_PLATFORM_CFG_H */ - -/************************/ -/* End of File Comment */ -/************************/ diff --git a/config/obc/cpd/inc/vm_platform_cfg.h b/config/obc/cpd/inc/vm_platform_cfg.h deleted file mode 100644 index af0ac002b..000000000 --- a/config/obc/cpd/inc/vm_platform_cfg.h +++ /dev/null @@ -1,151 +0,0 @@ -#ifndef VM_PLATFORM_CFG_H -#define VM_PLATFORM_CFG_H - -#ifdef __cplusplus -extern "C" { -#endif - -/* -** VM Platform Configuration Parameter Definitions -*/ - -/** \brief Mission specific version number for VM application -** -** \par Description: -** An application version number consists of four parts: -** major version number, minor version number, revision -** number and mission specific revision number. The mission -** specific revision number is defined here and the other -** parts are defined in "amc_version.h". -** -** \par Limits: -** Must be defined as a numeric value that is greater than -** or equal to zero. -*/ -#define VM_MISSION_REV (0) - -/** \brief Pipe depth for the Scheduler pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define VM_SCH_PIPE_DEPTH (30) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define VM_SCH_PIPE_NAME ("VM_SCH_PIPE") - -/** \brief The SB pend behavior type for the Scheduler pipe. -** -** \par Limits: -** One of: CFE_SB_POLL, CFE_SB_PEND_FOREVER, or the -** number of milliseconds to wait for a new message (recommended). -** Note, using CFE_SB_PEND_FOREVER may cause an unresponsive -** application if no messages arrive on this pipe. -*/ -#define VM_SCH_PIPE_PEND_TIME (2000) - -/** \brief The number of WAKEUP messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max limited to CFE_SB_MAX_PIPE_DEPTH-1. Note the -** VM_WAKEUP_MID_MAX_MSG_COUNT and VM_SEND_HK_MID_MAX_MSG_COUNT -** must be less than VM_SCH_PIPE_DEPTH. -*/ -#define VM_WAKEUP_MID_MAX_MSG_COUNT (1) - -/** \brief The number of SEND_HK messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. Note the -** VM_WAKEUP_MID_MAX_MSG_COUNT and VM_SEND_HK_MID_MAX_MSG_COUNT -** must be less than VM_SCH_PIPE_DEPTH. -*/ -#define VM_SEND_HK_MID_MAX_MSG_COUNT (1) - -/** \brief Pipe depth for the command pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define VM_CMD_PIPE_DEPTH (4) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define VM_CMD_PIPE_NAME ("VM_CMD_PIPE") - -/** \brief Pipe depth for the data pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define VM_DATA_PIPE_DEPTH (18) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define VM_DATA_PIPE_NAME ("VM_DATA_PIPE") - -/** \brief Pipe depth for the parameters pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define VM_PARAM_PIPE_DEPTH (4) - -/** \brief Pipe name for the parameters pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define VM_PARAM_PIPE_NAME ("VM_PARAM_PIPE") - -/** \brief The config table default filename -** -** \par Limits: -** The length of each string, including the NULL terminator cannot exceed -** the #OS_MAX_PATH_LEN value. -*/ -#define VM_CONFIG_TABLE_FILENAME ("/cf/apps/vm_config.tbl") - -/** \brief The timeout value, in milliseconds, to wait for ES application startup sync. -** -** \par Limits: -** This parameter must be at least 1000 (ms). -*/ -#define VM_STARTUP_TIMEOUT_MSEC (1000) - -/** \brief The timeout value, in microseconds, to wait until VM starts checking battery -** voltage. -** -** \par Limits: -** None -*/ -#define VM_BATTERY_VOLTAGE_CHECK_DELAY (6000000) - -/** \brief The minimum battery voltage to be considered valid. -** -** \par Limits: -** Must be greater than or equal to FLT_EPSILON. -*/ -#define VM_MINIMUM_VALID_BATTERY_VOLTAGE (2.0f) - - -#ifdef __cplusplus -} -#endif - -#endif /* VM_PLATFORM_CFG_H */ - -/************************/ -/* End of File Comment */ -/************************/ - diff --git a/config/obc/ppd/inc/ae_platform_cfg.h b/config/obc/ppd/inc/ae_platform_cfg.h deleted file mode 100644 index 0cd966dd5..000000000 --- a/config/obc/ppd/inc/ae_platform_cfg.h +++ /dev/null @@ -1,122 +0,0 @@ -#ifndef AE_PLATFORM_CFG_H -#define AE_PLATFORM_CFG_H - -#ifdef __cplusplus -extern "C" { -#endif - -/* -** AE Platform Configuration Parameter Definitions -*/ - -/** \brief Mission specific version number for AE application -** -** \par Description: -** An application version number consists of four parts: -** major version number, minor version number, revision -** number and mission specific revision number. The mission -** specific revision number is defined here and the other -** parts are defined in "amc_version.h". -** -** \par Limits: -** Must be defined as a numeric value that is greater than -** or equal to zero. -*/ -#define AE_MISSION_REV (0) - -/** \brief Pipe depth for the Scheduler pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define AE_SCH_PIPE_DEPTH (2) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define AE_SCH_PIPE_NAME ("AE_SCH_PIPE") - -/** \brief The SB pend behavior type for the Scheduler pipe. -** -** \par Limits: -** One of: CFE_SB_POLL, CFE_SB_PEND_FOREVER, or the -** number of milliseconds to wait for a new message (recommended). -** Note, using CFE_SB_PEND_FOREVER may cause an unresponsive -** application if no messages arrive on this pipe. -*/ -#define AE_SCH_PIPE_PEND_TIME (2000) - -/** \brief The number of WAKEUP messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max limited to CFE_SB_MAX_PIPE_DEPTH-1. Note the -** AE_WAKEUP_MID_MAX_MSG_COUNT and AE_SEND_HK_MID_MAX_MSG_COUNT -** must be less than AE_SCH_PIPE_DEPTH. -*/ -#define AE_WAKEUP_MID_MAX_MSG_COUNT (1) - -/** \brief The number of SEND_HK messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. Note the -** AE_WAKEUP_MID_MAX_MSG_COUNT and AE_SEND_HK_MID_MAX_MSG_COUNT -** must be less than AE_SCH_PIPE_DEPTH. -*/ -#define AE_SEND_HK_MID_MAX_MSG_COUNT (1) - -/** \brief Pipe depth for the command pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define AE_CMD_PIPE_DEPTH (4) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define AE_CMD_PIPE_NAME ("AE_CMD_PIPE") - -/** \brief Pipe depth for the data pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define AE_DATA_PIPE_DEPTH (4) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define AE_DATA_PIPE_NAME ("AE_DATA_PIPE") - -/** \brief The config table default filename -** -** \par Limits: -** The length of each string, including the NULL terminator cannot exceed -** the #OS_MAX_PATH_LEN value. -*/ -#define AE_CONFIG_TABLE_FILENAME ("/cf/apps/ae_config.tbl") - -/** \brief The timeout value, in milliseconds, to wait for ES application startup sync. -** -** \par Limits: -** This parameter must be at least 1000 (ms). -*/ -#define AE_STARTUP_TIMEOUT_MSEC (1000) - - -#ifdef __cplusplus -} -#endif - -#endif /* AE_PLATFORM_CFG_H */ - -/************************/ -/* End of File Comment */ -/************************/ - diff --git a/config/obc/ppd/inc/amc_platform_cfg.h b/config/obc/ppd/inc/amc_platform_cfg.h deleted file mode 100644 index e72128569..000000000 --- a/config/obc/ppd/inc/amc_platform_cfg.h +++ /dev/null @@ -1,130 +0,0 @@ -#ifndef AMC_PLATFORM_CFG_H -#define AMC_PLATFORM_CFG_H - -#ifdef __cplusplus -extern "C" { -#endif - -/* -** amc Platform Configuration Parameter Definitions -*/ - -/** \brief Mission specific version number for AMC application -** -** \par Description: -** An application version number consists of four parts: -** major version number, minor version number, revision -** number and mission specific revision number. The mission -** specific revision number is defined here and the other -** parts are defined in "amc_version.h". -** -** \par Limits: -** Must be defined as a numeric value that is greater than -** or equal to zero. -*/ -#define AMC_MISSION_REV (0) - -/** \brief Pipe depth for the Scheduler pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define AMC_SCH_PIPE_DEPTH (15) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define AMC_SCH_PIPE_NAME ("AMC_SCH_PIPE") - -/** \brief The SB pend behavior type for the Scheduler pipe. -** -** \par Limits: -** One of: CFE_SB_POLL, CFE_SB_PEND_FOREVER, or the -** number of milliseconds to wait for a new message (recommended). -** Note, using CFE_SB_PEND_FOREVER may cause an unresponsive -** application if no messages arrive on this pipe. -*/ -#define AMC_SCH_PIPE_PEND_TIME (2000) - -/** \brief The number of WAKEUP messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max limited to CFE_SB_MAX_PIPE_DEPTH-1. Note the -** AMC_SCH_PIPE_WAKEUP_RESERVED and AMC_SCH_PIPE_SEND_HK_RESERVED -** must be less than AMC_SCH_PIPE_DEPTH. -*/ -#define AMC_SCH_PIPE_WAKEUP_RESERVED (1) - -/** \brief The number of SEND_HK messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. Note the -** AMC_SCH_PIPE_WAKEUP_RESERVED and AMC_SCH_PIPE_SEND_HK_RESERVED -** must be less than AMC_SCH_PIPE_DEPTH. -*/ -#define AMC_SCH_PIPE_SEND_HK_RESERVED (1) - -/** \brief Pipe depth for the command pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define AMC_CMD_PIPE_DEPTH (4) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define AMC_CMD_PIPE_NAME ("AMC_CMD_PIPE") - -/** \brief Pipe depth for the data pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define AMC_PARAM_PIPE_DEPTH (4) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define AMC_PARAM_PIPE_NAME ("AMC_PARAM_PIPE") - -/** \brief The config table default filename -** -** \par Limits: -** The length of each string, including the NULL terminator cannot exceed -** the #OS_MAX_PATH_LEN value. -*/ -#define AMC_PWM_CONFIG_TABLE_FILENAME ("/cf/apps/amc_pwmcfg.tbl") - -#define AMC_MIXER_CONFIG_TABLE_FILENAME ("/cf/apps/amc_mixercfg.tbl") - -/** \brief The timeout value, in milliseconds, to wait for ES application startup sync. -** -** \par Limits: -** This parameter must be at least 1000 (ms). -*/ -#define AMC_STARTUP_TIMEOUT_MSEC (1000) - -/* TODO: Add Doxygen markup. */ -#define AMC_MAX_MOTOR_OUTPUTS (8) - -#define AMC_MAX_PARAMS (3) - - - -#ifdef __cplusplus -} -#endif - -#endif /* AMC_PLATFORM_CFG_H */ - -/************************/ -/* End of File Comment */ -/************************/ - diff --git a/config/obc/ppd/inc/bat_platform_cfg.h b/config/obc/ppd/inc/bat_platform_cfg.h deleted file mode 100644 index 10a8ed217..000000000 --- a/config/obc/ppd/inc/bat_platform_cfg.h +++ /dev/null @@ -1,112 +0,0 @@ -#ifndef BAT_PLATFORM_CFG_H -#define BAT_PLATFORM_CFG_H - -#ifdef __cplusplus -extern "C" { -#endif - -#define BAT_LISTENER_TASK_FLAGS OS_ENABLE_CORE_0 - -/* -** BAT Platform Configuration Parameter Definitions -*/ - -/** \brief Mission specific version number for BAT application -** -** \par Description: -** An application version number consists of four parts: -** major version number, minor version number, revision -** number and mission specific revision number. The mission -** specific revision number is defined here and the other -** parts are defined in "amc_version.h". -** -** \par Limits: -** Must be defined as a numeric value that is greater than -** or equal to zero. -*/ -#define BAT_MISSION_REV (0) - -/** \brief Pipe depth for the Scheduler pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define BAT_SCH_PIPE_DEPTH (3) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define BAT_SCH_PIPE_NAME ("BAT_SCH_PIPE") - -/** \brief The SB pend behavior type for the Scheduler pipe. -** -** \par Limits: -** One of: CFE_SB_POLL, CFE_SB_PEND_FOREVER, or the -** number of milliseconds to wait for a new message (recommended). -** Note, using CFE_SB_PEND_FOREVER may cause an unresponsive -** application if no messages arrive on this pipe. -*/ -#define BAT_SCH_PIPE_PEND_TIME (2000) - -/** \brief The number of WAKEUP messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max limited to CFE_SB_MAX_PIPE_DEPTH-1. Note the -** BAT_WAKEUP_MID_MAX_MSG_COUNT and BAT_SEND_HK_MID_MAX_MSG_COUNT -** must be less than BAT_SCH_PIPE_DEPTH. -*/ -#define BAT_WAKEUP_MID_MAX_MSG_COUNT (1) - -/** \brief The number of SEND_HK messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. Note the -** BAT_WAKEUP_MID_MAX_MSG_COUNT and BAT_SEND_HK_MID_MAX_MSG_COUNT -** must be less than BAT_SCH_PIPE_DEPTH. -*/ -#define BAT_SEND_HK_MID_MAX_MSG_COUNT (1) - -/** \brief Pipe depth for the command pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define BAT_CMD_PIPE_DEPTH (4) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define BAT_CMD_PIPE_NAME ("BAT_CMD_PIPE") - -/** \brief The config table default filename -** -** \par Limits: -** The length of each string, including the NULL terminator cannot exceed -** the #OS_MAX_PATH_LEN value. -*/ -#define BAT_CONFIG_TABLE_FILENAME ("/cf/apps/bat_config.tbl") - -/** \brief The timeout value, in milliseconds, to wait for ES application startup sync. -** -** \par Limits: -** This parameter must be at least 1000 (ms). -*/ -#define BAT_STARTUP_TIMEOUT_MSEC (1000) - -/** \brief BAT Child task stack size */ -#define BAT_LISTENER_TASK_STACK_SIZE (16000) - -#ifdef __cplusplus -} -#endif - -#endif /* BAT_PLATFORM_CFG_H */ - -/************************/ -/* End of File Comment */ -/************************/ - diff --git a/config/obc/ppd/inc/cf_msgids.h b/config/obc/ppd/inc/cf_msgids.h deleted file mode 100644 index 820de96d4..000000000 --- a/config/obc/ppd/inc/cf_msgids.h +++ /dev/null @@ -1,10 +0,0 @@ -#ifndef CF_MSGIDS_H -#define CF_MSGIDS_H - -#include "msg_ids.h" - -#endif /* CF_MSGIDS_H */ - -/************************/ -/* End of File Comment */ -/************************/ diff --git a/config/obc/ppd/inc/cf_platform_cfg.h b/config/obc/ppd/inc/cf_platform_cfg.h deleted file mode 100644 index d99eaa728..000000000 --- a/config/obc/ppd/inc/cf_platform_cfg.h +++ /dev/null @@ -1,373 +0,0 @@ -#ifndef CF_PLATFORM_CFG_H -#define CF_PLATFORM_CFG_H - -/************************************************************************* -** Macro definitions -**************************************************************************/ - -/** -** \cfcfg Application Pipe Depth -** -** \par Description: -** Dictates the pipe depth of the cf command pipe. -** -** \par Limits: -** The minimum size of this paramater is 1 -** The maximum size dictated by cFE platform configuration -** parameter is CFE_SB_MAX_PIPE_DEPTH -*/ -#define CF_PIPE_DEPTH 40 - - -/** -** \cfcfg Application Pipe Name -** -** \par Description: -** Dictates the pipe name of the cf command pipe. -** -** \par Limits: -** -*/ -#define CF_PIPE_NAME "CF_CMD_PIPE" - - -/** -** \cfcfg Maximum Simulataneous Transactions -** -** \par Description: -** Dictates max number of transactions (uplink and downlink) -** that can be in progress at any given time. -** -** \par Limits: -** -*/ -#define CF_MAX_SIMULTANEOUS_TRANSACTIONS 100 - - - -/** -** \cfcfg Uplink PDU Data Buffer Size -** -** \par Description: -** This parameter sets the statically allocated size (in bytes) of the -** incoming PDU buffer. This buffer will be used to hold the pdu hdr and -** data portion of the incoming PDUs. Incoming PDUs are enclosed in a CCSDS -** packet. This parameter should not include the size of the CCSDS pkt hdr. -** -** \par Limits: -** Must be greater than or equal to the sum of the ground engine parameter -** outgoing-file-chunk-size, pdu hdr size and the 4 bytes of 'offset' in -** file-data pdus. Upper limit of 64K derived from 16 bit PDU header field -** named 'PDU Data Field Length'. -** This parameter must be less-than or equal-to the outgoing pdu buffer. -** -** -*/ -#define CF_INCOMING_PDU_BUF_SIZE 512 - - - -/** -** \cfcfg Outgoing PDU Data Buffer Size -** -** \par Description: -** This parameter sets the statically allocated size (in bytes) of the -** outgoing PDU buffer. This buffer will be used to hold the pdu hdr and -** data portion of the outgoing PDUs. Outgoing PDUs are enclosed in a CCSDS -** packet. This parameter should not include the size of the CCSDS pkt hdr. -** -** \par Limits: -** This parameter will put an upper limit on the table parameter -** 'outgoing_file_chunk_size'. The max 'outgoing_file_chunk_size' allowed -** will be CF_OUTGOING_PDU_BUF_SIZE - (12 + 4) The 12 and 4 are pdu hdr -** size and offset field in file-data pdu, respectively. -** This parameter has an upper limit of 64K derived from 16 bit PDU header -** field named 'PDU Data Field Length'. -** This parameter must be greater-than or equal-to the incoming pdu buffer. -** -** -*/ -#define CF_OUTGOING_PDU_BUF_SIZE 2048 - - -/** -** \cfcfg Path name and file prefix of the engine temp files -** -** \par Description: -** The receiving engine constructs all files in a temporary file. This -** parameter specifies the path and base filename of the temporary files. -** The engine appends a sequence number to this parameter to get a complete -** filename. -** -** \par Limits: -** - The length of this string, including the NULL terminator cannot exceed -** the #OS_MAX_PATH_LEN value. -** - The last character should not be a slash. -** -*/ -#define CF_ENGINE_TEMP_FILE_PREFIX "/ram/cftmp" - -/** -** \cfcfg Name of the CF Configuration Table -** -** \par Description: -** This parameter defines the name of the CF Configuration Table. -** -** \par Limits -** The length of this string, including the NULL terminator cannot exceed -** the #OS_MAX_PATH_LEN value. -*/ -#define CF_CONFIG_TABLE_NAME "ConfigTable" - - -/** -** \cfcfg CF Configuration Table Filename -** -** \par Description: -** The value of this constant defines the filename of the CF Config Table -** -** \par Limits -** The length of this string, including the NULL terminator cannot exceed -** the #OS_MAX_PATH_LEN value. -*/ -#define CF_CONFIG_TABLE_FILENAME "/cf/apps/cf_cfgtable.tbl" - - -/** -** \cfcfg Number of Input Channels -** -** \par Description: -** Defines the number of input channels -** defined in the configuration table. Input channels were added to the -** design to support class 2 file receives from multiple peers. It is -** necessary for the code to know what output channel should be used for -** responses (ACK-EOF,NAK, etc) of incoming, class 2 transactions. -** Each input channel has a dedicated MsgId for incoming PDUs and an output -** channel for responses of class 2, file-receive transactions. -** -** \par Limits -** Lower Limit of 1, Upper limit of 255. -** -*/ -#define CF_NUM_INPUT_CHANNELS 1 - - -/** -** \cfcfg Max Number of Playback Output Channels -** -** \par Description: -** Defines the max number of playback output channels that may ever be -** defined in the configuration table. Refer to the configuration table for -** more details about playback output channels. -** -** \par Limits -** Lower Limit of 1, Upper limit of 255. -** -** \par Notes: -** The CF configuration table must have an entry for this number of -** playback channels, but some may be marked as not-in-use. This saves -** having to recompile and reload a new CF Application when a playback -** channel is added. -*/ -#define CF_MAX_PLAYBACK_CHANNELS 2 - - -/** -** \cfcfg Max Number of Polling(Hot) Directories per Playback Output Channel -** -** \par Description: -** Defines the max number of polling directories that may ever be defined -** in the configuration table. A polling directory is a directory that -** is periodically checked for playback files. Files found in the polling -** directory are immediately placed on the playback pending queue for -** downlink. -** -** \par Limits: -** Lower limit of 1, Upper limit of 255. -** -** \par Notes: -** The CF configuration table must have an entry for this number of polling -** directories, but some may be marked as not-in-use. This saves having to -** recompile and reload a new CF Application when a polling directory is -** added. -** -*/ -#define CF_MAX_POLLING_DIRS_PER_CHAN 8 - - -/** -** \cfcfg Number of bytes in the CF Memory Pool -** -** \par Description: -** The CF memory pool contains the memory needed to hold information for -** each transaction. The info for each transaction is defined by a -** CF_QueueEntry_t. The number of CF_QueueEntry_t's needed is based on: -** -** UplinkHistoryQDepth + CF_MAX_SIMULTANEOUS_TRANSACTIONS + -** ((CF_MAX_PLAYBACK_CHANNELS * (PendingQDepth + HistoryQDepth)) -** -** Lower case variables are defined in config table, upper case params are -** defined in platform config file (cf_platform_cfg.h) -** -** See CF Housekeeping page for memory utilization details -** -** -** \par Limits -** Lower Limit of 256, Upper limit of 4 Gigabytes -*/ -#define CF_MEMORY_POOL_BYTES 32768 - - -/** -** \cfcfg Default Queue Information Filename -** -** \par Description: -** The value of this constant defines the filename used to store the CF -** queue information. This filename is used only when no filename is -** specified in the command. -** -** \par Limits -** The length of each string, including the NULL terminator cannot exceed -** the OS_MAX_PATH_LEN value. -*/ -#define CF_DEFAULT_QUEUE_INFO_FILENAME "/ram/cf_queue_info.dat" - - -/** -** \cfcfg CF Event Filtering -** -** \par Description: -** This group of configuration parameters dictates what CF events will be -** filtered through EVS. The filtering will begin after the CF app -** initializes and stay in effect until changed via EVS command. -** Mark all unused event Id values and mask values to zero -** eg. #define CF_FILTERED_EVENT1 0 -** #define CF_FILTER_MASK1 0 -** To filter the event, set the mask value to CFE_EVS_FIRST_ONE_STOP -** To disable filtering of the event, set mask value to CFE_EVS_NO_FILTER -** -** \par Limits -** These parameters have a lower limit of 0 and an upper limit of 65535. -*/ - -#define CF_FILTERED_EVENT1 CF_IN_TRANS_START_EID -#define CF_FILTER_MASK1 CFE_EVS_NO_FILTER - -#define CF_FILTERED_EVENT2 CF_IN_TRANS_OK_EID -#define CF_FILTER_MASK2 CFE_EVS_NO_FILTER - -#define CF_FILTERED_EVENT3 CF_OUT_TRANS_START_EID -#define CF_FILTER_MASK3 CFE_EVS_NO_FILTER - -#define CF_FILTERED_EVENT4 CF_OUT_TRANS_OK_EID -#define CF_FILTER_MASK4 CFE_EVS_NO_FILTER - -#define CF_FILTERED_EVENT5 0 -#define CF_FILTER_MASK5 CFE_EVS_NO_FILTER - -#define CF_FILTERED_EVENT6 0 -#define CF_FILTER_MASK6 CFE_EVS_NO_FILTER - -#define CF_FILTERED_EVENT7 0 -#define CF_FILTER_MASK7 CFE_EVS_NO_FILTER - -#define CF_FILTERED_EVENT8 0 -#define CF_FILTER_MASK8 CFE_EVS_NO_FILTER - - - -/** -** \cfcfg Time to wait for all apps to be started (in milliseconds) -** -** \par Description: -** Dictates the timeout for the #CFE_ES_WaitForStartupSync call that -** CF uses to ensure that TO or the downlink App has completed it's -** initialization which includes creating the semaphore needed by CF. -** -** \par Limits -** This parameter can't be larger than an unsigned 32 bit -** integer (4294967295). -** -** This should be greater than or equal to the Startup Sync timeout for -** any application in the Application Monitor Table. -*/ -#define CF_STARTUP_SYNC_TIMEOUT 65000 - - -/** -** \cfcfg Use fixed size packets (for outgoing PDUs) or not. -** -** \par Description: -** When sending PDUs, CF can be configured to place the PDUs in fixed-size -** pkts or let the PDU size determine the pkt size. The value defined -** must correspond to the CCSDS Total Message size which includes the PDU -** header, the CCSDS header and data. -** Set this value to 0 for variable pkt sizes. -** -** \par Limits -** This parameter can't be larger than CFE_SB_MAX_SB_MSG_SIZE (typically -** set to 32K or 64K bytes) -** -** If non-zero, this should be greater than or equal to the size needed to -** hold the largest PDU expected to be sent by the engine (typically a -** file data PDU which is derived from the CF table cfg param -** "OutgoingFileChunkSize"). -*/ -#define CF_SEND_FIXED_SIZE_PKTS 0 - - -/** -** \cfcfg Auto-Suspend, max transactions to suspend -** -** \par Description: -** When auto suspend is enabled, after EOF is sent the transaction number -** is logged in a buffer. The buffer size is defined in this parameter. -** After the following wakeup cmd is received, cF will check this buffer -** for transactions to suspend. They cannot be suspended at the time the -** EOF is sent because the engine is not designed to re-entrant. -** -** \par Limits -** This parameter must be greater than zero and can't be larger than an -** unsigned 32 bit integer (4294967295). -*/ -#define CF_AUTOSUSPEND_MAX_TRANS 1 - - - - -/** \cfcfg Mission specific version number for CF application -** -** \par Description: -** An application version number consists of four parts: -** major version number, minor version number, revision -** number and mission specific revision number. The mission -** specific revision number is defined here and the other -** parts are defined in "cf_version.h". -** -** \par Limits: -** Must be defined as a numeric value that is greater than -** or equal to zero. -*/ -#define CF_MISSION_REV 0 - - -/** \cfcfg Compile-time debug switch for CF application -** -** \par Description: -** CF_DEBUG should NOT be defined under normal conditions. It is to be used -** as a safety net during development, when a uart terminal is connected to -** the processor. When the code is compiled with CF_DEBUG defined, the code -** will issue OS_printfs in areas that would otherwise be quiet. -** -** \par Limits: -** Must be defined or commented out. -*/ -/* #define CF_DEBUG */ - - - -#endif /* CF_PLATFORM_CFG_H */ - -/************************/ -/* End of File Comment */ -/************************/ diff --git a/config/obc/ppd/inc/cfe_msgids.h b/config/obc/ppd/inc/cfe_msgids.h deleted file mode 100644 index 5a7b5231d..000000000 --- a/config/obc/ppd/inc/cfe_msgids.h +++ /dev/null @@ -1,58 +0,0 @@ -#ifndef CFE_MSGIDS_H -#define CFE_MSGIDS_H - -/* -** Includes -*/ - -#include "cfe_mission_cfg.h" - -/* -** cFE Command Message Id's -*/ -#define CFE_EVS_CMD_MID CFE_CMD_MID_BASE_CPU1 + CFE_EVS_CMD_MSG /* 0x1801 */ - /* Message ID 0x1802 is available */ -#define CFE_SB_CMD_MID CFE_CMD_MID_BASE_CPU1 + CFE_SB_CMD_MSG /* 0x1803 */ -#define CFE_TBL_CMD_MID CFE_CMD_MID_BASE_CPU1 + CFE_TBL_CMD_MSG /* 0x1804 */ -#define CFE_TIME_CMD_MID CFE_CMD_MID_BASE_CPU1 + CFE_TIME_CMD_MSG /* 0x1805 */ -#define CFE_ES_CMD_MID CFE_CMD_MID_BASE_CPU1 + CFE_ES_CMD_MSG /* 0x1806 */ - -#define CFE_ES_SEND_HK_MID CFE_CMD_MID_BASE_CPU1 + CFE_ES_SEND_HK_MSG /* 0x1808 */ -#define CFE_EVS_SEND_HK_MID CFE_CMD_MID_BASE_CPU1 + CFE_EVS_SEND_HK_MSG /* 0x1809 */ - /* Message ID 0x180A is available */ -#define CFE_SB_SEND_HK_MID CFE_CMD_MID_BASE_CPU1 + CFE_SB_SEND_HK_MSG /* 0x180B */ -#define CFE_TBL_SEND_HK_MID CFE_CMD_MID_BASE_CPU1 + CFE_TBL_SEND_HK_MSG /* 0x180C */ -#define CFE_TIME_SEND_HK_MID CFE_CMD_MID_BASE_CPU1 + CFE_TIME_SEND_HK_MSG /* 0x180D */ - -#define CFE_TIME_TONE_CMD_MID CFE_CMD_MID_BASE_CPU1 + CFE_TIME_TONE_CMD_MSG /* 0x1810 */ -#define CFE_TIME_1HZ_CMD_MID CFE_CMD_MID_BASE_CPU1 + CFE_TIME_1HZ_CMD_MSG /* 0x1811 */ - - -/* -** cFE Global Command Message Id's -*/ -#define CFE_TIME_DATA_CMD_MID CFE_CMD_MID_BASE_GLOB + CFE_TIME_DATA_CMD_MSG /* 0x1860 */ -#define CFE_TIME_FAKE_CMD_MID CFE_CMD_MID_BASE_GLOB + CFE_TIME_FAKE_CMD_MSG /* 0x1861 */ -#define CFE_TIME_SEND_CMD_MID CFE_CMD_MID_BASE_GLOB + CFE_TIME_SEND_CMD_MSG /* 0x1862 */ - - -/* -** CFE Telemetry Message Id's -*/ -#define CFE_ES_HK_TLM_MID CFE_TLM_MID_BASE_CPU1 + CFE_ES_HK_TLM_MSG /* 0x0800 */ -#define CFE_EVS_HK_TLM_MID CFE_TLM_MID_BASE_CPU1 + CFE_EVS_HK_TLM_MSG /* 0x0801 */ - /* Message ID 0x0802 is available */ -#define CFE_SB_HK_TLM_MID CFE_TLM_MID_BASE_CPU1 + CFE_SB_HK_TLM_MSG /* 0x0803 */ -#define CFE_TBL_HK_TLM_MID CFE_TLM_MID_BASE_CPU1 + CFE_TBL_HK_TLM_MSG /* 0x0804 */ -#define CFE_TIME_HK_TLM_MID CFE_TLM_MID_BASE_CPU1 + CFE_TIME_HK_TLM_MSG /* 0x0805 */ -#define CFE_TIME_DIAG_TLM_MID CFE_TLM_MID_BASE_CPU1 + CFE_TIME_DIAG_TLM_MSG /* 0x0806 */ -#define CFE_EVS_EVENT_MSG_MID CFE_TLM_MID_BASE_CPU1 + CFE_EVS_EVENT_MSG_MSG /* 0x0808 */ -#define CFE_SB_STATS_TLM_MID CFE_TLM_MID_BASE_CPU1 + CFE_SB_STATS_TLM_MSG /* 0x080A */ -#define CFE_ES_APP_TLM_MID CFE_TLM_MID_BASE_CPU1 + CFE_ES_APP_TLM_MSG /* 0x080B */ -#define CFE_TBL_REG_TLM_MID CFE_TLM_MID_BASE_CPU1 + CFE_TBL_REG_TLM_MSG /* 0x080C */ -#define CFE_SB_ALLSUBS_TLM_MID CFE_TLM_MID_BASE_CPU1 + CFE_SB_ALLSUBS_TLM_MSG /* 0x080D */ -#define CFE_SB_ONESUB_TLM_MID CFE_TLM_MID_BASE_CPU1 + CFE_SB_ONESUB_TLM_MSG /* 0x080E */ -#define CFE_ES_SHELL_TLM_MID CFE_TLM_MID_BASE_CPU1 + CFE_ES_SHELL_TLM_MSG /* 0x080F */ -#define CFE_ES_MEMSTATS_TLM_MID CFE_TLM_MID_BASE_CPU1 + CFE_ES_MEMSTATS_TLM_MSG /* 0x0810 */ - -#endif diff --git a/config/obc/ppd/inc/cfe_platform_cfg.h b/config/obc/ppd/inc/cfe_platform_cfg.h deleted file mode 100644 index aa22ccd6b..000000000 --- a/config/obc/ppd/inc/cfe_platform_cfg.h +++ /dev/null @@ -1,1770 +0,0 @@ -#ifndef CFE_PLATFORM_CFG_H -#define CFE_PLATFORM_CFG_H - -/* -** Allow reference to CFE_SPACECRAFT_ID (see CFE_TBL_VALID_ definitions below) -*/ -#include "cfe_mission_cfg.h" - -/* -** CPU Id for target Processor -*/ -#define CFE_CPU_ID 1 - -/* -** CPU Name for target Processor -*/ -#define CFE_CPU_NAME "CPU1" - -/** -** \cfesbcfg Maximum Number of Unique Message IDs SB Routing Table can hold -** -** \par Description: -** Dictates the maximum number of unique MsgIds the SB routing table will hold. -** This constant has a direct affect on the size of SB's tables and arrays. -** Keeping this count as low as possible will save memory. -** To see the run-time, high-water mark and the current utilization figures -** regarding this parameter, send an SB command to 'Send Statistics Pkt'. -** -** \par Limits -** This parameter has a lower limit of 1 and an upper limit of 1024. -** -*/ -#define CFE_SB_MAX_MSG_IDS 256 - - -/** -** \cfesbcfg Maximum Number of Unique Pipes SB Routing Table can hold -** -** \par Description: -** Dictates the maximum number of unique Pipes the SB routing table will hold. -** This constant has a direct affect on the size of SB's tables and arrays. -** Keeping this count as low as possible will save memory. -** To see the run-time, high-water mark and the current utilization figures -** regarding this parameter, send an SB command to 'Send Statistics Pkt'. -** -** \par Limits -** This parameter has a lower limit of 1 and an upper limit of 255. -** This parameter must also be less than or equal to OS_MAX_QUEUES -** -*/ -#define CFE_SB_MAX_PIPES 255 - - -/** -** \cfesbcfg Maximum Number of unique local destinations a single MsgId can have -** -** \par Description: -** Dictates the maximum number of unique local destinations a single MsgId can -** have. -** -** \par Limits -** This parameter has a lower limit of 1 and an upper limit of 64. -** -*/ -#define CFE_SB_MAX_DEST_PER_PKT 16 - - -/** -** \cfesbcfg Default Subscription Message Limit -** -** \par Description: -** Dictates the default Message Limit when using the #CFE_SB_Subscribe API. This will -** limit the number of messages with a specific message ID that can be received through -** a subscription. This only changes the default; other message limits can be set on a per -** subscription basis using #CFE_SB_SubscribeEx . -** -** \par Limits -** This parameter has a lower limit of 4 and an upper limit of 65535. -** -*/ -#define CFE_SB_DEFAULT_MSG_LIMIT 4 - - -/** -** \cfesbcfg Size of the SB buffer memory pool -** -** \par Description: -** Dictates the size of the SB memory pool. For each message the SB -** sends, the SB dynamically allocates from this memory pool, the memory needed -** to process the message. The memory needed to process each message is msg -** size + msg descriptor(#CFE_SB_BufferD_t). This memory pool is also used -** to allocate destination descriptors (#CFE_SB_DestinationD_t) during the -** subscription process. -** To see the run-time, high-water mark and the current utilization figures -** regarding this parameter, send an SB command to 'Send Statistics Pkt'. -** Some memory statistics have been added to the SB housekeeping packet. -** NOTE: It is important to monitor these statistics to ensure the desired -** memory margin is met. -** -** \par Limits -** This parameter has a lower limit of 512 and an upper limit 4.29G bytes. -** -*/ -#define CFE_SB_BUF_MEMORY_BYTES 524288 - - -/** -** \cfesbcfg Maximum depth allowed when creating an SB pipe -** -** \par Description: -** The value of this constant dictates the maximum pipe depth that an -** application may request. The pipe depth is given as a paramter in the -** #CFE_SB_CreatePipe API. -** -** \par Limits -** This parameter has a lower limit of 1 and an upper limit of 65535. -*/ -#define CFE_SB_MAX_PIPE_DEPTH 256 - - -/** -** \cfesbcfg Highest Valid Message Id -** -** \par Description: -** The value of this constant dictates the size of the SB message map. The SB -** messsage map is a lookup table that provides the routing table index for -** fast access into the routing table.The default setting of 0x1FFF was chosen -** to save memory for CCSDS implementations where the CCSDS Version number -** (3 MSB's of MsgId) would remain constant throughout the mission. This -** reduces the message map from 128Kbytes to 16Kbytes.See CFE_FSW_DCR 504 for -** more details. -** -** \par Limits -** This parameter has a lower limit of 1 and an upper limit of 0xFFFF. -*/ -#define CFE_SB_HIGHEST_VALID_MSGID 0x1FFF - - -/** -** \cfesbcfg Default Routing Information Filename -** -** \par Description: -** The value of this constant defines the filename used to store the software -** bus routing information. This filename is used only when no filename is -** specified in the command. -** -** \par Limits -** The length of each string, including the NULL terminator cannot exceed the -** #OS_MAX_PATH_LEN value. -*/ -#define CFE_SB_DEFAULT_ROUTING_FILENAME "/ram/cfe_sb_route.dat" - - -/** -** \cfesbcfg Default Pipe Information Filename -** -** \par Description: -** The value of this constant defines the filename used to store the software -** bus pipe information. This filename is used only when no filename is -** specified in the command. -** -** \par Limits -** The length of each string, including the NULL terminator cannot exceed the -** #OS_MAX_PATH_LEN value. -*/ -#define CFE_SB_DEFAULT_PIPE_FILENAME "/ram/cfe_sb_pipe.dat" - - -/** -** \cfesbcfg Default Message Map Filename -** -** \par Description: -** The value of this constant defines the filename used to store the software -** bus message map information. This filename is used only when no filename is -** specified in the command. The message map is a lookup table (array of 16bit -** words) that has an element for each possible MsgId value and holds the -** routing table index for that MsgId. The Msg Map provides fast access to the -** destinations of a message. -** -** \par Limits -** The length of each string, including the NULL terminator cannot exceed the -** #OS_MAX_PATH_LEN value. -*/ -#define CFE_SB_DEFAULT_MAP_FILENAME "/ram/cfe_sb_msgmap.dat" - - -/** -** \cfesbcfg SB Event Filtering -** -** \par Description: -** This group of configuration paramters dictates what SB events will be -** filtered through EVS. The filtering will begin after the SB task initializes -** and stay in effect until a cmd to EVS changes it. -** This allows the operator to set limits on the number of event messages that -** are sent during system initialization. -** NOTE: Set all unused event values and mask values to zero -** -** \par Limits -** This filtering applies only to SB events. -** These parameters have a lower limit of 0 and an upper limit of 65535. -*/ -#define CFE_SB_FILTERED_EVENT1 CFE_SB_SEND_NO_SUBS_EID -#define CFE_SB_FILTER_MASK1 CFE_EVS_FIRST_4_STOP - -#define CFE_SB_FILTERED_EVENT2 CFE_SB_DUP_SUBSCRIP_EID -#define CFE_SB_FILTER_MASK2 CFE_EVS_FIRST_4_STOP - -#define CFE_SB_FILTERED_EVENT3 CFE_SB_MSGID_LIM_ERR_EID -#define CFE_SB_FILTER_MASK3 CFE_EVS_FIRST_16_STOP - -#define CFE_SB_FILTERED_EVENT4 CFE_SB_Q_FULL_ERR_EID -#define CFE_SB_FILTER_MASK4 CFE_EVS_FIRST_16_STOP - -#define CFE_SB_FILTERED_EVENT5 0 -#define CFE_SB_FILTER_MASK5 CFE_EVS_NO_FILTER - -#define CFE_SB_FILTERED_EVENT6 0 -#define CFE_SB_FILTER_MASK6 CFE_EVS_NO_FILTER - -#define CFE_SB_FILTERED_EVENT7 0 -#define CFE_SB_FILTER_MASK7 CFE_EVS_NO_FILTER - -#define CFE_SB_FILTERED_EVENT8 0 -#define CFE_SB_FILTER_MASK8 CFE_EVS_NO_FILTER - - -/** -** \cfeescfg Define SB Memory Pool Block Sizes -** -** \par Description: -** Software Bus Memory Pool Block Sizes -** -** \par Limits -** These sizes MUST be increasing and MUST be an integral multiple of 4. -** The number of block sizes defined cannot exceed -** #CFE_ES_MAX_MEMPOOL_BLOCK_SIZES -*/ -#define CFE_SB_MEM_BLOCK_SIZE_01 8 -#define CFE_SB_MEM_BLOCK_SIZE_02 16 -#define CFE_SB_MEM_BLOCK_SIZE_03 20 -#define CFE_SB_MEM_BLOCK_SIZE_04 36 -#define CFE_SB_MEM_BLOCK_SIZE_05 64 -#define CFE_SB_MEM_BLOCK_SIZE_06 96 -#define CFE_SB_MEM_BLOCK_SIZE_07 128 -#define CFE_SB_MEM_BLOCK_SIZE_08 160 -#define CFE_SB_MEM_BLOCK_SIZE_09 256 -#define CFE_SB_MEM_BLOCK_SIZE_10 512 -#define CFE_SB_MEM_BLOCK_SIZE_11 1024 -#define CFE_SB_MEM_BLOCK_SIZE_12 2048 -#define CFE_SB_MEM_BLOCK_SIZE_13 4096 -#define CFE_SB_MEM_BLOCK_SIZE_14 8192 -#define CFE_SB_MEM_BLOCK_SIZE_15 16384 -#define CFE_SB_MEM_BLOCK_SIZE_16 32768 -#define CFE_SB_MAX_BLOCK_SIZE (CFE_SB_MAX_SB_MSG_SIZE + 40) - -/** -** \cfesbcfg Define Default Sender Information Storage Mode -** -** \par Description: -** Defines the default mode for the storing of sender information when sending -** a software bus message. If set to 1, the sender information will be stored. -** If set to 0, the sender information will not be stored. -** -** \par Limits -** There is a lower limit of 0 and an upper limit of 1 on this configuration -** paramater. -*/ -#define CFE_SB_DEFAULT_REPORT_SENDER 1 - - -/** -** \cfetimecfg Time Server or Time Client Selection -** -** \par Description: -** This configuration parameter selects whether the Time task functions as a -** time "server" or "client". A time server generates the "time at the tone" -** packet which is received by time clients. -** -** \par Limits -** Enable one, and only one by defining either CFE_TIME_CFG_SERVER or -** CFE_TIME_CFG_CLIENT AS TRUE. The other must be defined as FALSE. -*/ -#define CFE_TIME_CFG_SERVER TRUE -#define CFE_TIME_CFG_CLIENT FALSE - -/** -** \cfetimecfg Local MET or Virtual MET Selection for Time Servers -** -** \par Description: -** Depending on the specific hardware system configuration, it may be possible -** for Time Servers to read the "local" MET from a h/w register rather than -** having to track the MET as the count of tone signal interrupts (virtual MET) -** -** Time Clients must be defined as using a virtual MET. Also, a Time Server -** cannot be defined as having both a h/w MET and an external time source (they -** both cannot synchronize to the same tone). -** -** Note: "disable" this define (set to FALSE) only for Time Servers with local hardware -** that supports a h/w MET that is synchronized to the tone signal !!! -** -** \par Limits -** Only applies if #CFE_TIME_CFG_SERVER is set to TRUE. -*/ -#define CFE_TIME_CFG_VIRTUAL TRUE - - -/** -** \cfetimecfg Include or Exclude the Primary/Redundant Tone Selection Cmd -** -** \par Description: -** Depending on the specific hardware system configuration, it may be possible -** to switch between a primary and redundant tone signal. If supported by -** hardware, this definitions will enable command interfaces to select the -** active tone signal. Both Time Clients and Time Servers support this feature. -** Note: Set the CFE_TIME_CFG_SIGNAL define to TRUE to enable tone signal commands. -** -** \par Limits -** Not Applicable -*/ -#define CFE_TIME_CFG_SIGNAL FALSE - - -/** -** \cfetimecfg Include or Exclude the Internal/External Time Source Selection Cmd -** -** \par Description: -** By default, Time Servers maintain time using an internal MET which may be a -** h/w register or software counter, depending on available hardware. The -** following definition enables command interfaces to switch between an -** internal MET, or external time data received from one of several supported -** external time sources. Only a Time Server may be configured to use external -** time data. -** Note: Set the CFE_TIME_CFG_SOURCE define to TRUE to include the Time Source -** Selection Command (command allows selection between the internal -** or external time source). Then choose the external source with the -** CFE_TIME_CFG_SRC_??? define. -** -** \par Limits -** Only applies if #CFE_TIME_CFG_SERVER is set to TRUE. -*/ -#define CFE_TIME_CFG_SOURCE FALSE - - -/** -** \cfetimecfg Choose the External Time Source for Server only -** -** \par Description: -** If #CFE_TIME_CFG_SOURCE is set to TRUE, then one of the following external time -** source types must also be set to TRUE. Do not set any of the external time -** source types to TRUE unless #CFE_TIME_CFG_SOURCE is set to TRUE. -** -** \par Limits -** -# If #CFE_TIME_CFG_SOURCE is set to TRUE then one and only one of the following -** three external time sources can and must be set TRUE: -** #CFE_TIME_CFG_SRC_MET, #CFE_TIME_CFG_SRC_GPS, #CFE_TIME_CFG_SRC_TIME -** -# Only applies if #CFE_TIME_CFG_SERVER is set to TRUE. -*/ -#define CFE_TIME_CFG_SRC_MET FALSE -#define CFE_TIME_CFG_SRC_GPS FALSE -#define CFE_TIME_CFG_SRC_TIME FALSE - - -/** -** \cfetimecfg Define the Max Delta Limits for Time Servers using an Ext Time Source -** -** \par Description: -** If #CFE_TIME_CFG_SOURCE is set to TRUE and one of the external time sources is -** also set to TRUE, then the delta time limits for range checking is used. -** -** When a new time value is received from an external source, the value is -** compared against the "expected" time value. If the delta exceeds the -** following defined amount, then the new time data will be ignored. This range -** checking is only performed after the clock state has been commanded to -** "valid". Until then, external time data is accepted unconditionally. -** -** \par Limits -** Applies only if both #CFE_TIME_CFG_SERVER and #CFE_TIME_CFG_SOURCE are set -** to TRUE. -*/ -#define CFE_TIME_MAX_DELTA_SECS 0 -#define CFE_TIME_MAX_DELTA_SUBS 500000 - - -/** -** \cfetimecfg Define the Local Clock Rollover Value in seconds and subseconds -** -** \par Description: -** Specifies the capability of the local clock. Indicates the time at which -** the local clock rolls over. -** -** \par Limits -** Not Applicable -*/ -#define CFE_TIME_MAX_LOCAL_SECS 27 -#define CFE_TIME_MAX_LOCAL_SUBS 0 - - -/** -** \cfetimecfg Define Timing Limits From One Tone To The Next -** -** \par Description: -** Defines limits to the timing of the 1Hz tone signal. A tone signal is valid -** only if it arrives within one second (plus or minus the tone limit) from -** the previous tone signal.Units are microseconds as measured with the local -** clock. -** -** \par Limits -** Not Applicable -*/ -#define CFE_TIME_CFG_TONE_LIMIT 20000 - - - -/** -** \cfetimecfg Define Time to Start Flywheel Since Last Tone -** -** \par Description: -** Define time to enter flywheel mode (in seconds since last tone data update) -** Units are microseconds as measured with the local clock. -** -** \par Limits -** Not Applicable -*/ -#define CFE_TIME_CFG_START_FLY 2 - - -/** -** \cfetimecfg Define Periodic Time to Update Local Clock Tone Latch -** -** \par Description: -** Define Periodic Time to Update Local Clock Tone Latch. Applies only when -** in flywheel mode. This define dicates the period at which the simulated -** 'last tone' time is updated. Units are seconds. -** -** \par Limits -** Not Applicable -*/ -#define CFE_TIME_CFG_LATCH_FLY 8 - - -/** -** \cfetimecfg Define Maximum number of Time Synchronization Callbacks allowed -** -** \par Description: -** Define maximum number of Time Synchronization callback functions allowed. -** Each callback is called whenever cFE TIME receives a valid time synchronization -** signal (typically 1 Hz). -** -** \par Limits -** Not Applicable -*/ -#define CFE_TIME_MAX_NUM_SYNCH_FUNCS 4 - - -/** -** \cfetimecfg Enable (or disable) the 1HZ time command packet -** -** \par Description: -** Controls the generation of a packet that may be used as a 1HZ wakeup -** signal for applications that subscribe to CFE_TIME_1HZ_CMD_MID. -** Disable the packet to avoid 'no subscriber' errors that result from -** sending a packet when there are no subscribers to the packet. -** -** \par Limits -** Enable the 1HZ packet by setting #CFE_TIME_ENA_1HZ_CMD_PKT to TRUE. -** Disable the 1HZ packet by setting #CFE_TIME_ENA_1HZ_CMD_PKT to FALSE. -*/ -#define CFE_TIME_ENA_1HZ_CMD_PKT TRUE - - -/** -** \cfeescfg Define Max Number of Applications -** -** \par Description: -** Defines the maximum number of applications that can be loaded into the -** system. This number does not include child tasks. -** -** \par Limits -** There is a lower limit of 6 and an upper limit of 64 on this configuration -** paramater. The lower limit corresponds to the cFE internal applications. -*/ -#define CFE_ES_MAX_APPLICATIONS 64 - - -/** -** \cfeescfg Define Max Number of Shared libraries -** -** \par Description: -** Defines the maximum number of cFE Shared libraries that can be loaded into -** the system. -** -** \par Limits -** There is a lower limit of 1 and an upper limit of 64 on this configuration -** paramater. -*/ -#define CFE_ES_MAX_LIBRARIES 10 - -/** -** \cfeescfg Define Max Number of ER (Exception and Reset) log entries -** -** \par Description: -** Defines the maximum number of ER (Exception and Reset) log entries -** -** \par Limits -** There is a lower limit of 10 and an upper limit of 128 on this configuration -** paramater. -*/ -#define CFE_ES_ER_LOG_ENTRIES 20 - -/** \cfeescfg Maximum size of CPU Context in ES Error Log -** -** \par Description: -** This should be large enough to accommodate the CPU context -** information supplied by the PSP on the given platform. -** -** \par Limits: -** Must be greater than zero and a multiple of sizeof(uint32). -** Limited only by the available memory and the number of entries -** in the error log. Any context information beyond this size will -** be truncated. -*/ -#define CFE_ES_ER_LOG_MAX_CONTEXT_SIZE 128 - - -/** -** \cfeescfg Define Size of the cFE System Log. -** -** \par Description: -** Defines the size in bytes of the cFE system log. The system log holds -** variable length strings that are terminated by a linefeed and null -** character. -** -** \par Limits -** There is a lower limit of 512 and an upper limit of 16384 on this -** configuration paramater. -*/ -#define CFE_ES_SYSTEM_LOG_SIZE 3072 - - -/** -** \cfeescfg Define Number of entries in the ES Object table -** -** \par Description: -** Defines the number of entries in the ES Object table. This table controls -** the core cFE startup. -** -** \par Limits -** There is a lower limit of 15 and an upper limit of 50 on this configuration -** paramater. -*/ -#define CFE_ES_OBJECT_TABLE_SIZE 30 - - -/** -** \cfeescfg Define Max Number of Generic Counters -** -** \par Description: -** Defines the maximum number of Generic Counters that can be registered. -** -** \par Limits -** This parameter has a lower limit of 1 and an upper limit of 65535. -*/ -#define CFE_ES_MAX_GEN_COUNTERS 8 - - -/** -** \cfeescfg Define ES Application Control Scan Rate -** -** \par Description: -** ES Application Control Scan Rate. This parameter controls the speed that ES -** scans the Application Table looking for App Delete/Restart/Reload requests. -** All Applications are deleted, restarted, or reloaded by the ES Application. -** ES will periodically scan for control requests to process. The scan rate is -** controlled by this parameter, which is given in milliseconds. A value of -** 1000 means that ES will scan the Application Table once per second. Be -** careful not to set the value of this too low, because ES will use more CPU -** cycles scanning the table. -** -** \par Limits -** There is a lower limit of 100 and an upper limit of 20000 on this -** configuration paramater. millisecond units. -*/ -#define CFE_ES_APP_SCAN_RATE 1000 - - -/** -** \cfeescfg Define ES Application Kill Timeout -** -** \par Description: -** ES Application Kill Timeout. This parameter controls the number of -** "scan periods" that ES will wait for an application to Exit after getting -** the signal Delete, Reload or Restart. The sequence works as follows: -** -# ES will set the control request for an App to Delete/Restart/Reload and -** set this kill timer to the value in this parameter. -** -# If the App is reponding and Calls it's RunLoop function, it will drop out -** of it's main loop and call CFE_ES_ExitApp. Once it calls Exit App, then -** ES can delete, restart, or reload the app the next time it scans the app -** table. -** -# If the App is not responding, the ES App will decrement this Kill Timeout -** value each time it runs. If the timeout value reaches zero, ES will kill -** the app. -** -** The Kill timeout value depends on the #CFE_ES_APP_SCAN_RATE. If the Scan Rate -** is 1000, or 1 second, and this #CFE_ES_APP_KILL_TIMEOUT is set to 5, then it -** will take 5 seconds to kill a non-responding App. -** If the Scan Rate is 250, or 1/4 second, and the #CFE_ES_APP_KILL_TIMEOUT is -** set to 2, then it will take 1/2 second to time out. -** -** \par Limits -** There is a lower limit of 1 and an upper limit of 100 on this configuration -** paramater. Units are number of #CFE_ES_APP_SCAN_RATE cycles. -*/ -#define CFE_ES_APP_KILL_TIMEOUT 5 - - -/** -** \cfeescfg ES Ram Disk Sector Size -** -** \par Description: -** Defines the ram disk sector size. The ram disk is 1 of 4 memory areas that -** are preserved on a processor reset. -** NOTE: Changing this value changes memory allocation, and may -** require changes to platform specific values (in CFE_PSP) such as -** USER_RESERVED_MEM in VxWorks depending on the memory areas -** being used for preserved data and on OS specific behavior. -** -** \par Limits -** There is a lower limit of 128 and an upper limit of 4096 on this -** configuration paramater. -*/ -#define CFE_ES_RAM_DISK_SECTOR_SIZE 512 - - -/** -** \cfeescfg ES Ram Disk Number of Sectors -** -** \par Description: -** Defines the ram disk number of sectors. The ram disk is one of four memory -** areas that are preserved on a processor reset. -** NOTE: Changing this value changes memory allocation, and may -** require changes to platform specific values (in CFE_PSP) such as -** USER_RESERVED_MEM in VxWorks depending on the memory areas -** being used for preserved data and on OS specific behavior. -** -** \par Limits -** There is a lower limit of 128 and an upper limit of 8192 on this -** configuration paramater. -*/ -#define CFE_ES_RAM_DISK_NUM_SECTORS 4096 - -/** -** \cfeescfg Percentage of Ram Disk Reserved for Decompressing Apps -** -** \par Description: -** The #CFE_ES_RAM_DISK_PERCENT_RESERVED parameter is used to make sure that the -** Volatile ( RAM ) Disk has a defined amount of free space during a processor -** reset. The cFE uses the Volatile disk to decompress cFE applications during -** system startup. If this Volatile disk happens to get filled with logs and -** misc files, then a processor reset may not work, because there will be no -** room to decompress cFE apps. To solve that problem, this parameter sets the -** "Low Water Mark" for disk space on a Processor reset. It should be set to -** allow the largest cFE Application to be decompressed. -** During a Processor reset, if there is not sufficient space left on the disk, -** it will be re-formatted in order to clear up some space. -** -** This feature can be turned OFF by setting the parameter to 0. -** -** \par Limits -** There is a lower limit of 0 and an upper limit of 75 on this configuration -** paramater.Units are percentage. A setting of zero will turn this feature -** off. -*/ -#define CFE_ES_RAM_DISK_PERCENT_RESERVED 30 - - -/** -** \cfeescfg RAM Disk Mount string -** -** \par Description: -** The #CFE_ES_RAM_DISK_MOUNT_STRING parameter is used to set the cFE mount path -** for the CFE RAM disk. This is a parameter for missions that do not want to -** use the default value of "/ram", or for missions that need to have a different -** value for different CPUs or Spacecraft. -** Note that the vxWorks OSAL cannot currently handle names that have more than one -** path separator in it. The names "/ram", "/ramdisk", "/disk123" will all work, but -** "/disks/ram" will not. -** Multiple separators can be used with the posix or RTEMS ports. -** -*/ -#define CFE_ES_RAM_DISK_MOUNT_STRING "/ram" - - -/** -** \cfeescfg Define Critical Data Store Size -** -** \par Description: -** Defines the Critical Data Store (CDS) area size in bytes size. The CDS is -** one of four memory areas that are preserved during a processor reset. -** NOTE: Changing this value changes memory allocation, and may -** require changes to platform specific values (in CFE_PSP) such as -** USER_RESERVED_MEM in VxWorks depending on the memory areas -** being used for preserved data and on OS specific behavior. -** -** \par Limits -** There is a lower limit of 8192 and an upper limit of 2097152 (2MBytes) on -** this configuration paramater. -*/ -#define CFE_ES_CDS_SIZE ( 128 * 2048 ) - - -/** -** \cfeescfg Define User Reserved Memory Size -** -** \par Description: -** User Reserved Memory Size. This is the size in bytes of the cFE User -** reserved Memory area. This is a block of memory that is available for cFE -** application use. The address is obtained by calling -** #CFE_PSP_GetUserReservedArea. The User Reserved Memory is one of four memory -** areas that are preserved during a processor reset. -** NOTE: Changing this value changes memory allocation, and may -** require changes to platform specific values (in CFE_PSP) such as -** USER_RESERVED_MEM in VxWorks depending on the memory areas -** being used for preserved data and on OS specific behavior. -** -** \par Limits -** There is a lower limit of 1024 and an upper limit of 33554432 (32Mbytes) on -** this configuration paramater. -*/ -#define CFE_ES_USER_RESERVED_SIZE ( 1024 * 2048 ) - - -/** -** \cfeescfg Define ES Reset Area Size -** -** \par Description: -** The ES Reset Area Size. This is the size in bytes of the cFE Reset variable -** and log area. This is a block of memory used by the cFE to store the system -** log ER Log and critical reset variables. This is 4 of 4 of the memory areas -** that are preserved during a processor reset. -** Note: This area must be sized large enough to hold all of the data -** structures. It should be automatically sized based on the #CFE_ES_ResetData_t -** type, but circular dependancies in the headers prevent it from being defined -** this way. -** NOTE: Changing this value changes memory allocation, and may -** require changes to platform specific values (in CFE_PSP) such as -** USER_RESERVED_MEM in VxWorks depending on the memory areas -** being used for preserved data and on OS specific behavior. -** -** \par Limits -** There is a lower limit of 153600 (150KBytes) and an upper limit of 2097152 -** (2MBytes) on this configuration paramater. -*/ -#define CFE_ES_RESET_AREA_SIZE ( 170 * 2048 ) - -/** -** \cfeescfg Define Default Memory Pool Alignment Mode -** -** \par Description: -** Defines the default mode for the requirement to align ES Mempool buffer. -** If this define is set, the memory pool must be aligned or the call to -** create a new memory pool will be rejected with a CFE_ES_BAD_ARGUMENT -** return code. -** -** \par Limits -** If CFE_ES_MEMPOOL_ALIGNED is defined, the alignment check is enabled. -** If CFE_ES_MEMPOOL_ALIGNED is not defined, the alignment check is not -** compiled in. -*/ -#define CFE_ES_MEMPOOL_ALIGNED 1 - -/** -** \cfeescfg ES Nonvolatile Startup Filename -** -** \par Description: -** The value of this constant defines the path and name of the file that -** contains a list of modules that will be loaded and started by the cFE after -** the cFE finishes its startup sequence. -** -** \par Limits -** The length of each string, including the NULL terminator cannot exceed the -** #OS_MAX_PATH_LEN value. -*/ -#define CFE_ES_NONVOL_STARTUP_FILE "/cf/apps/cfe_es_startup.scr" - - -/** -** \cfeescfg ES Volatile Startup Filename -** -** \par Description: -** The value of this constant defines the path and name of the file that -** contains a list of modules that will be loaded and started by the cFE after -** the cFE finishes its startup sequence. -** -** \par Limits -** The length of each string, including the NULL terminator cannot exceed the -** #OS_MAX_PATH_LEN value. -*/ -#define CFE_ES_VOLATILE_STARTUP_FILE "/ram/apps/cfe_es_startup.scr" - -/** -** \cfeescfg Default Shell Filename -** -** \par Description: -** The value of this constant defines the filename used to store the shell -** output after a shell command is received by ES. This file contains the -** entire shell output. The fsw also sends the shell output in series of fixed -** size telemetry packets. This filename is used only when no filename -** is specified in the shell command. -** -** \par Limits -** The length of each string, including the NULL terminator cannot exceed the -** #OS_MAX_PATH_LEN value. -*/ -#define CFE_ES_DEFAULT_SHELL_FILENAME "/ram/ShellCmd.out" - - -/** -** \cfeescfg Define Max Shell Command Size -** -** \par Description: -** Defines the maximum size in characters of the shell command. -** -** \par Limits -** There is a lower limit of 64 and an upper limit of 128 on this configuration -** paramater. Units are characters. -*/ -#define CFE_ES_MAX_SHELL_CMD 64 - - -/** -** \cfeescfg Define Shell Command Telemetry Pkt Segment Size -** -** \par Description: -** Defines the size of the shell command tlm packet segments.The shell command -** output size is dependant on the shell command itself. If the shell output -** size is greater than the size of the packet defined here, the fsw will -** generate a series of tlm packets (of the size defined here) that can be -** reconstructed by the ground system. -** -** \par Limits -** There is a lower limit of 32 and an upper limit of 128 on this configuration -** paramater. -*/ -#define CFE_ES_MAX_SHELL_PKT 64 - - -/** -** \cfeescfg Default Application Information Filename -** -** \par Description: -** The value of this constant defines the filename used to store information -** pertaining to all of the Applications that are registered with Executive -** Services. This filename is used only when no filename is specified in the -** the command to query all system apps. -** -** \par Limits -** The length of each string, including the NULL terminator cannot exceed the -** #OS_MAX_PATH_LEN value. -*/ -#define CFE_ES_DEFAULT_APP_LOG_FILE "/ram/cfe_es_app_info.log" - -/** -** \cfeescfg Default Application Information Filename -** -** \par Description: -** The value of this constant defines the filename used to store information -** pertaining to all of the Applications that are registered with Executive -** Services. This filename is used only when no filename is specified in the -** the command to query all system tasks. -** -** \par Limits -** The length of each string, including the NULL terminator cannot exceed the -** #OS_MAX_PATH_LEN value. -*/ -#define CFE_ES_DEFAULT_TASK_LOG_FILE "/ram/cfe_es_task_info.log" - -/** -** \cfeescfg Default System Log Filename -** -** \par Description: -** The value of this constant defines the filename used to store important -** information (as ASCII text strings) that might not be able to be sent in an -** Event Message. This filename is used only when no filename is specified in -** the command to dump the system log. No file specified in the cmd means the -** first character in the cmd filename is a NULL terminator (zero). -** -** \par Limits -** The length of each string, including the NULL terminator cannot exceed the -** #OS_MAX_PATH_LEN value. -*/ -#define CFE_ES_DEFAULT_SYSLOG_FILE "/ram/cfe_es_syslog.log" - -/** -** \cfeescfg Default Exception and Reset (ER) Log Filename -** -** \par Description: -** The value of this constant defines the filename used to store the -** Exception and Reset (ER) Log. This filename is used only when no filename is -** specified in the command to dump the ER log. No file specified in the cmd -** means the first character in the cmd filename is a NULL terminator (zero). -** -** \par Limits -** The length of each string, including the NULL terminator cannot exceed the -** #OS_MAX_PATH_LEN value. -*/ -#define CFE_ES_DEFAULT_ER_LOG_FILE "/ram/cfe_erlog.log" - -/** -** \cfeescfg Default Performance Data Filename -** -** \par Description: -** The value of this constant defines the filename used to store the -** Performance Data. This filename is used only when no filename is specified -** in the command to stop performance data collecting. -** -** \par Limits -** The length of each string, including the NULL terminator cannot exceed the -** #OS_MAX_PATH_LEN value. -*/ -#define CFE_ES_DEFAULT_PERF_DUMP_FILENAME "/ram/cfe_es_perf.dat" - - -/** -** \cfeescfg Default Critical Data Store Registry Filename -** -** \par Description: -** The value of this constant defines the filename used to store the -** Critical Data Store Registry. This filename is used only when no filename is -** specified in the command to stop performance data collecting. -** -** \par Limits -** The length of each string, including the NULL terminator cannot exceed the -** #OS_MAX_PATH_LEN value. -*/ -#define CFE_ES_DEFAULT_CDS_REG_DUMP_FILE "/ram/cfe_cds_reg.log" - -/** -** \cfeescfg Define Default System Log Mode -** -** \par Description: -** Defines the default mode for the operation of the ES System log. The log may -** operate in either Overwrite mode = 0, where once the log becomes full the -** oldest message in the log will be overwritten, or Discard mode = 1, where -** once the log becomes full the contents of the log are preserved and the new -** event is discarded. This constant may hold a value of either 0 or 1 -** depending on the desired default log mode. Overwrite Mode = 0, Discard -** Mode = 1. -** -** \par Limits -** There is a lower limit of 0 and an upper limit of 1 on this configuration -** paramater. -*/ -#define CFE_ES_DEFAULT_SYSLOG_MODE 1 - -/** -** \cfeescfg Define Max Number of Performance IDs -** -** \par Description: -** Defines the maximum number of perf ids allowed. -** -** -** \par Limits -** This number must always be divisible by 32. There is a lower limit of 32 and -** an upper limit of 512 on this configuration paramater. -*/ -#define CFE_ES_PERF_MAX_IDS 128 - -/** -** \cfeescfg Define Max Size of Performance Data Buffer -** -** \par Description: -** Defines the maximum size of the performance data buffer. Units are number of -** performance data entries. An entry is defined by a 32 bit data word followed -** by a 64 bit time stamp. -** -** \par Limits -** There is a lower limit of 1025 and an upper limit of 1048576 (1 Meg) on this -** configuration paramater. The units are number of entries. An entry is -** defined by a 32 bit data word followed by a 64 bit time stamp. -*/ -#define CFE_ES_PERF_DATA_BUFFER_SIZE 10000 - - -/** -** \cfeescfg Define Filter Mask Setting for Disabling All Performance Entries -** -** \par Description: -** Defines the filter mask for disabling all performance entries. The value is a -** bit mask. For each bit, 0 means the corresponding entry is disabled and -** 1 means it is enabled. -*/ -#define CFE_ES_PERF_FILTMASK_NONE 0 - -/** -** \cfeescfg Define Filter Mask Setting for Enabling All Performance Entries -** -** \par Description: -** Defines the filter mask for enabling all performance entries. The value is a -** bit mask. For each bit, 0 means the corresponding entry is disabled and -** 1 means it is enabled. -*/ -#define CFE_ES_PERF_FILTMASK_ALL ~CFE_ES_PERF_FILTMASK_NONE - -/** -** \cfeescfg Define Default Filter Mask Setting for Performance Data Buffer -** -** \par Description: -** Defines the default filter mask for the performance data buffer. The value is a -** bit mask. For each bit, 0 means the corresponding entry is disabled and 1 -** means it is enabled. -** -*/ -#define CFE_ES_PERF_FILTMASK_INIT CFE_ES_PERF_FILTMASK_ALL - - -/** -** \cfeescfg Define Default Filter Trigger Setting for Disabling All Performance Entries -** -** \par Description: -** Defines the default trigger mask for disabling all performance data entries. The value -** is a bit mask. For each bit, 0 means the trigger for the corresponding entry is -** disabled and 1 means it is enabled. -** -*/ -#define CFE_ES_PERF_TRIGMASK_NONE 0 - -/** -** \cfeescfg Define Filter Trigger Setting for Enabling All Performance Entries -** -** \par Description: -** Defines the trigger mask for enabling all performance data entries. The value is -** a bit mask. For each bit, 0 means the trigger for the corresponding entry is -** disabled and 1 means it is enabled. -** -*/ -#define CFE_ES_PERF_TRIGMASK_ALL ~CFE_ES_PERF_TRIGMASK_NONE - -/** -** \cfeescfg Define Default Filter Trigger Setting for Performance Data Buffer -** -** \par Description: -** Defines the default trigger mask for the performance data buffer. The value is a -** 32-bit mask. For each bit, 0 means the trigger for the corresponding entry is -** disabled and 1 means it is enabled. -** -*/ -#define CFE_ES_PERF_TRIGMASK_INIT CFE_ES_PERF_TRIGMASK_NONE - -/** -** \cfeescfg Define Performance Analyzer Child Task Priority -** -** \par Description: -** This parameter defines the priority of the child task spawed by the -** Executive Services to write performance data to a file. Lower numbers -** are higher priority, with 1 being the highest priority in the case of a -** child task. -** -** \par Limits -** Valid range for a child task is 1 to 255 however, the priority cannot -** be higher (lower number) than the ES parent application priority. -*/ -#define CFE_ES_PERF_CHILD_PRIORITY 200 - -/** -** \cfeescfg Define Performance Analyzer Child Task Stack Size -** -** \par Description: -** This parameter defines the stack size of the child task spawed by the -** Executive Services to write performance data to a file. -** -** \par Limits -** It is recommended this parameter be greater than or equal to 4KB. This parameter -** is limited by the maximum value allowed by the data type. In this case, the data -** type is an unsigned 32-bit integer, so the valid range is 0 to 0xFFFFFFFF. -*/ -#define CFE_ES_PERF_CHILD_STACK_SIZE 16384 - -/** -** \cfeescfg Define Performance Analyzer Child Task Delay -** -** \par Description: -** This parameter defines the delay time (in milliseconds) between performance -** data file writes performed by the Executive Services Performace Analyzer -** Child Task. -** -** \par Limits -** It is recommended this parameter be greater than or equal to 20ms. This parameter -** is limited by the maximum value allowed by the data type. In this case, the data -** type is an unsigned 32-bit integer, so the valid range is 0 to 0xFFFFFFFF. -*/ -#define CFE_ES_PERF_CHILD_MS_DELAY 20 - -/** -** \cfeescfg Define Performance Analyzer Child Task Number of Entries Between Delay -** -** \par Description: -** This parameter defines the number of performace analyzer entries the Performace -** Analyzer Child Task will write to the file between delays. -** -*/ -#define CFE_ES_PERF_ENTRIES_BTWN_DLYS 50 - -/** -** \cfeescfg Define Default Stack Size for an Application -** -** \par Description: -** This parameter defines a default stack size. This parameter is used by the -** cFE Core Applications. -** -** \par Limits -** There is a lower limit of 2048 and an upper limit of 16384 on this -** configuration paramater. -*/ -#define CFE_ES_DEFAULT_STACK_SIZE 16384 - - -/** -** \cfeescfg Define EVS Task Priority -** -** \par Description: -** Defines the cFE_EVS Task priority. -** -** \par Limits -** Not Applicable -*/ -#define CFE_EVS_START_TASK_PRIORITY 61 - -/** -** \cfeescfg Define EVS Task Stack Size -** -** \par Description: -** Defines the cFE_EVS Task Stack Size -** -** \par Limits -** There is a lower limit of 2048 and an upper limit of 16384 on this -** configuration paramater. -*/ -#define CFE_EVS_START_TASK_STACK_SIZE CFE_ES_DEFAULT_STACK_SIZE - -#define CFE_EVS_START_TASK_FLAGS OS_ENABLE_CORE_0 - -/** -** \cfeescfg Define SB Task Priority -** -** \par Description: -** Defines the cFE_SB Task priority. -** -** \par Limits -** Not Applicable -*/ -#define CFE_SB_START_TASK_PRIORITY 64 - -/** -** \cfeescfg Define SB Task Stack Size -** -** \par Description: -** Defines the cFE_SB Task Stack Size -** -** \par Limits -** There is a lower limit of 2048 and an upper limit of 16384 on this -** configuration paramater. -*/ -#define CFE_SB_START_TASK_STACK_SIZE CFE_ES_DEFAULT_STACK_SIZE - -#define CFE_SB_START_TASK_FLAGS OS_ENABLE_CORE_0 - -/** -** \cfeescfg Define ES Task Priority -** -** \par Description: -** Defines the cFE_ES Task priority. -** -** \par Limits -** Not Applicable -*/ -#define CFE_ES_START_TASK_PRIORITY 68 - -/** -** \cfeescfg Define ES Task Stack Size -** -** \par Description: -** Defines the cFE_ES Task Stack Size -** -** \par Limits -** There is a lower limit of 2048 and an upper limit of 16384 on this -** configuration paramater. -*/ -#define CFE_ES_START_TASK_STACK_SIZE 16384 - -#define CFE_ES_START_TASK_FLAGS OS_ENABLE_CORE_0 - -/** -** \cfetimecfg Define TIME Task Priorities -** -** \par Description: -** Defines the cFE_TIME Task priority. -** Defines the cFE_TIME Tone Task priority. -** Defines the cFE_TIME 1HZ Task priority. -** -** \par Limits -** There is a lower limit of zero and an upper limit of 255 on these -** configuration paramaters. Remember that the meaning of each task -** priority is inverted -- a "lower" number has a "higher" priority. -*/ -#define CFE_TIME_START_TASK_PRIORITY 60 -#define CFE_TIME_TONE_TASK_PRIORITY 25 -#define CFE_TIME_1HZ_TASK_PRIORITY 25 - -/** -** \cfetimecfg Define TIME Task Stack Sizes -** -** \par Description: -** Defines the cFE_TIME Main Task Stack Size -** Defines the cFE_TIME Tone Task Stack Size -** Defines the cFE_TIME 1HZ Task Stack Size -** -** \par Limits -** There is a lower limit of 2048 and an upper limit of 16384 on these -** configuration paramaters. -*/ -#define CFE_TIME_START_TASK_STACK_SIZE CFE_ES_DEFAULT_STACK_SIZE -#define CFE_TIME_TONE_TASK_STACK_SIZE 16384 -#define CFE_TIME_1HZ_TASK_STACK_SIZE 16384 - -#define CFE_TIME_START_TASK_FLAGS OS_ENABLE_CORE_0 -#define CFE_TIME_TONE_TASK_FLAGS OS_ENABLE_CORE_0 -#define CFE_TIME_1HZ_TASK_FLAGS OS_ENABLE_CORE_0 - -/** -** \cfeescfg Define TBL Task Priority -** -** \par Description: -** Defines the cFE_TBL Task priority. -** -** \par Limits -** Not Applicable -*/ -#define CFE_TBL_START_TASK_PRIORITY 70 - -/** -** \cfeescfg Define TBL Task Stack Size -** -** \par Description: -** Defines the cFE_TBL Task Stack Size -** -** \par Limits -** There is a lower limit of 2048 and an upper limit of 16384 on this -** configuration paramater. -*/ -#define CFE_TBL_START_TASK_STACK_SIZE CFE_ES_DEFAULT_STACK_SIZE - -#define CFE_TBL_START_TASK_FLAGS OS_ENABLE_CORE_0 - -/** -** \cfeescfg Define Maximum Number of Registered CDS Blocks -** -** \par Description: -** Maximum number of registered CDS Blocks -** -** \par Limits -** There is a lower limit of 8 and an upper limit of 32767 on this configuration -** paramater. -*/ -#define CFE_ES_CDS_MAX_NUM_ENTRIES 512 - - -/** -** \cfeescfg Define Number of Processor Resets Before a Power On Reset -** -** \par Description: -** Number of Processor Resets before a Power On Reset is called. If set to 2, -** then 2 processor resets will occur, and the 3rd processor reset will be a -** power on reset instead. -** -** \par Limits -** There is a lower limit of 0 and an upper limit of 1024 on this configuration -** paramater. -*/ -#define CFE_ES_MAX_PROCESSOR_RESETS 2 - - -/** -** \cfeescfg Define Default ES Memory Pool Block Sizes -** -** \par Description: -** Default Intermediate ES Memory Pool Block Sizes. If an application -** is using the CFE_ES Memory Pool APIs (#CFE_ES_PoolCreate, #CFE_ES_PoolCreateNoSem, -** #CFE_ES_GetPoolBuf and #CFE_ES_PutPoolBuf) but finds these sizes -** inappropriate for their use, they may wish to use the #CFE_ES_PoolCreateEx -** API to specify their own intermediate block sizes -** -** \par Limits -** These sizes MUST be increasing and MUST be an integral multiple of 4. Also, -** CFE_ES_MAX_BLOCK_SIZE must be larger than CFE_SB_MAX_SB_MSG_SIZE and both -** CFE_TBL_MAX_SNGL_TABLE_SIZE and CFE_TBL_MAX_DBL_TABLE_SIZE. Note that if Table -** Services have been removed from the CFE, the table size limits are still -** enforced although the table size definitions may be reduced. Refer to the CFS -** Deployment Guide for information about removing CFE Table Services from the CFE. -*/ -#define CFE_ES_MEM_BLOCK_SIZE_01 8 -#define CFE_ES_MEM_BLOCK_SIZE_02 16 -#define CFE_ES_MEM_BLOCK_SIZE_03 32 -#define CFE_ES_MEM_BLOCK_SIZE_04 48 -#define CFE_ES_MEM_BLOCK_SIZE_05 64 -#define CFE_ES_MEM_BLOCK_SIZE_06 96 -#define CFE_ES_MEM_BLOCK_SIZE_07 128 -#define CFE_ES_MEM_BLOCK_SIZE_08 160 -#define CFE_ES_MEM_BLOCK_SIZE_09 256 -#define CFE_ES_MEM_BLOCK_SIZE_10 512 -#define CFE_ES_MEM_BLOCK_SIZE_11 1024 -#define CFE_ES_MEM_BLOCK_SIZE_12 2048 -#define CFE_ES_MEM_BLOCK_SIZE_13 4096 -#define CFE_ES_MEM_BLOCK_SIZE_14 8192 -#define CFE_ES_MEM_BLOCK_SIZE_15 16384 -#define CFE_ES_MEM_BLOCK_SIZE_16 80000 -#define CFE_ES_MAX_BLOCK_SIZE 200000 - - -/** -** \cfeescfg Define ES Critical Data Store Memory Pool Block Sizes -** -** \par Description: -** Intermediate ES Critical Data Store Memory Pool Block Sizes -** -** \par Limits -** These sizes MUST be increasing and MUST be an integral multiple of 4. -*/ -#define CFE_ES_CDS_MEM_BLOCK_SIZE_01 8 -#define CFE_ES_CDS_MEM_BLOCK_SIZE_02 16 -#define CFE_ES_CDS_MEM_BLOCK_SIZE_03 32 -#define CFE_ES_CDS_MEM_BLOCK_SIZE_04 48 -#define CFE_ES_CDS_MEM_BLOCK_SIZE_05 64 -#define CFE_ES_CDS_MEM_BLOCK_SIZE_06 96 -#define CFE_ES_CDS_MEM_BLOCK_SIZE_07 128 -#define CFE_ES_CDS_MEM_BLOCK_SIZE_08 160 -#define CFE_ES_CDS_MEM_BLOCK_SIZE_09 256 -#define CFE_ES_CDS_MEM_BLOCK_SIZE_10 512 -#define CFE_ES_CDS_MEM_BLOCK_SIZE_11 1024 -#define CFE_ES_CDS_MEM_BLOCK_SIZE_12 2048 -#define CFE_ES_CDS_MEM_BLOCK_SIZE_13 4096 -#define CFE_ES_CDS_MEM_BLOCK_SIZE_14 8192 -#define CFE_ES_CDS_MEM_BLOCK_SIZE_15 16384 -#define CFE_ES_CDS_MEM_BLOCK_SIZE_16 32768 -#define CFE_ES_CDS_MAX_BLOCK_SIZE 80000 - - - -/** -** \cfeevscfg Define Maximum Number of Event Filters per Application -** -** \par Description: -** Maximum number of events that may be filtered per application. -** -** \par Limits -** There is an upper limit of 32767 on this configuration paramater. -*/ -#define CFE_EVS_MAX_EVENT_FILTERS (256) - - -/** -** \cfeevscfg Enable or Disable EVS Local Event Log -** -** \par Description: -** The CFE_EVS_LOG_ON configuration parameter must be defined to enable EVS -** event logging. In order to disable the local event log this definition needs -** to be commented out. -** -** \par Limits -** Not Applicable -*/ -#define CFE_EVS_LOG_ON - - -/** -** \cfeevscfg Default Event Log Filename -** -** \par Description: -** The value of this constant defines the filename used to store the Event -** Services local event log. This filename is used only when no filename is -** specified in the command to dump the event log. -** -** \par Limits -** The length of each string, including the NULL terminator cannot exceed the -** #OS_MAX_PATH_LEN value. -*/ -#define CFE_EVS_DEFAULT_LOG_FILE "/ram/cfe_evs.log" - - -/** -** \cfeevscfg Maximum Number of Events in EVS Local Event Log -** -** \par Description: -** Dictates the EVS local event log capacity. Units are the number of events. -** -** \par Limits -** There is an upper limit of 65535 on this configuration paramater. -*/ -#define CFE_EVS_LOG_MAX 20 - - -/** -** \cfeevscfg Default EVS Application Data Filename -** -** \par Description: -** The value of this constant defines the filename used to store the EVS -** Application Data(event counts/filtering information). This filename is -** used only when no filename is specified in the command to dump the event -** log. -** -** \par Limits -** The length of each string, including the NULL terminator cannot exceed the -** #OS_MAX_PATH_LEN value. -*/ -#define CFE_EVS_DEFAULT_APP_DATA_FILE "/ram/cfe_evs_app.dat" - - -/** -** \cfeevscfg Default EVS Output Port State -** -** \par Description: -** Defines the default port state (enabled or deisabled) for the four output -** ports defined within the Event Service. Port 1 is usually the uart output -** terminal. To enable a port, set the proper bit to a 1. Bit 0 is port 1, -** bit 1 is port2 etc. -** -** \par Limits -** The valid settings are 0x0 to 0xF. -*/ -#define CFE_EVS_PORT_DEFAULT 0x0001 - - -/** -** \cfeevscfg Default EVS Event Type Filter Mask -** -** \par Description: -** Defines a state of on or off for all four event types. The term event -** 'type' refers to the criticality level and may be Debug, Informational, -** Error or Critical. Each event type has a bit position. (bit 0 = Debug, -** bit 1 = Info, bit 2 = Error, bit 3 = Critical). This is a global setting, -** meaning it applies to all applications. To filter an event type, set its -** bit to zero. For example, -** 0xE means Debug = OFF, Info = ON, Error = ON, Critical = ON -** -** \par Limits -** The valid settings are 0x0 to 0xF. -*/ -#define CFE_EVS_DEFAULT_TYPE_FLAG 0xE - - - -/** -** \cfeevscfg Default EVS Local Event Log Mode -** -** \par Description: -** Defines a state of overwrite(0) or discard(1) for the operation of the -** EVS local event log. The log may operate in either Overwrite mode = 0, -** where once the log becomes full the oldest event in the log will be -** overwritten, or Discard mode = 1, where once the log becomes full the -** contents of the log are preserved and the new event is discarded. -** Overwrite Mode = 0, Discard Mode = 1. -** -** \par Limits -** The valid settings are 0 or 1 -*/ -#define CFE_EVS_DEFAULT_LOG_MODE 1 - - -/** -** \cfeevscfg Default EVS Message Format Mode -** -** \par Description: -** Defines the default message format (long or short) for event messages being -** sent to the ground. Choose between #CFE_EVS_LONG_FORMAT or -** #CFE_EVS_SHORT_FORMAT. -** -** \par Limits -** The valid settings are #CFE_EVS_LONG_FORMAT or #CFE_EVS_SHORT_FORMAT -*/ -#define CFE_EVS_DEFAULT_MSG_FORMAT_MODE CFE_EVS_LONG_FORMAT - - - -/* Platform Configuration Parameters for Table Service (TBL) */ - -/** -** \cfetblcfg Size of Table Services Table Memory Pool -** -** \par Description: -** Defines the TOTAL size of the memory pool that cFE Table Services allocates -** from the system. The size must be large enough to provide memory for each -** registered table, the inactive buffers for double buffered tables and for -** the shared inactive buffers for single buffered tables. -** -** \par Limits -** The cFE does not place a limit on the size of this parameter. -*/ -#define CFE_TBL_BUF_MEMORY_BYTES 1048576 - -/** -** \cfetblcfg Maximum Size Allowed for a Double Buffered Table -** -** \par Description: -** Defines the maximum allowed size (in bytes) of a double buffered table. -** -** \par Limits -** The cFE does not place a limit on the size of this parameter but it must be -** less than half of #CFE_TBL_BUF_MEMORY_BYTES. -*/ -#define CFE_TBL_MAX_DBL_TABLE_SIZE 65535 - -/** -** \cfetblcfg Maximum Size Allowed for a Single Buffered Table -** -** \par Description: -** Defines the maximum allowed size (in bytes) of a single buffered table. -** \b NOTE: This size determines the size of all shared table buffers. -** Therefore, this size will be multiplied by #CFE_TBL_MAX_SIMULTANEOUS_LOADS -** below when allocating memory for shared tables. -** -** \par Limits -** The cFE does not place a limit on the size of this parameter but it must be -** small enough to allow for #CFE_TBL_MAX_SIMULTANEOUS_LOADS number of tables -** to fit into #CFE_TBL_BUF_MEMORY_BYTES. -*/ -#define CFE_TBL_MAX_SNGL_TABLE_SIZE 65535 - -/** -** \cfetblcfg Maximum Number of Tables Allowed to be Registered -** -** \par Description: -** Defines the maximum number of tables supported by this processor's Table Services. -** -** \par Limits -** This number must be less than 32767. It should be recognized that this parameter -** determines the size of the Table Registry. An excessively high number will waste -** memory. -*/ -#define CFE_TBL_MAX_NUM_TABLES 128 - -/** -** \cfetblcfg Maximum Number of Critical Tables that can be Registered -** -** \par Description: -** Defines the maximum number of critical tables supported by this processor's Table Services. -** -** \par Limits -** This number must be less than 32767. It should be recognized that this parameter -** determines the size of the Critical Table Registry which is maintained in the Critical -** Data Store. An excessively high number will waste Critical Data Store memory. Therefore, -** this number must not exceed the value defined in CFE_ES_CDS_MAX_CRITICAL_TABLES. -*/ -#define CFE_TBL_MAX_CRITICAL_TABLES 32 - -/** -** \cfetblcfg Maximum Number of Table Handles -** -** \par Description: -** Defines the maximum number of Table Handles. -** -** \par Limits -** This number must be less than 32767. This number must be at least as big as -** the number of tables (#CFE_TBL_MAX_NUM_TABLES) and should be set higher if tables -** are shared between applications. -*/ -#define CFE_TBL_MAX_NUM_HANDLES 256 - -/** -** \cfetblcfg Maximum Number of Simultaneous Loads to Support -** -** \par Description: -** Defines the maximum number of single buffered tables that can be -** loaded simultaneously. This number is used to determine the number -** of shared buffers to allocate. -** -** \par Limits -** This number must be less than 32767. An excessively high number will -** degrade system performance and waste memory. A number less than 5 is -** suggested but not required. -*/ -#define CFE_TBL_MAX_SIMULTANEOUS_LOADS 4 - -/** -** \cfetblcfg Maximum Number of Simultaneous Table Validations -** -** \par Description: -** Defines the maximum number of pending validations that -** the Table Services can handle at any one time. When a -** table has a validation function, a validation request is -** made of the application to perform that validation. This -** number determines how many of those requests can be -** outstanding at any one time. -** -** \par Limits -** This number must be less than 32767. An excessively high number will -** degrade system performance and waste memory. A number less than 20 is -** suggested but not required. -*/ -#define CFE_TBL_MAX_NUM_VALIDATIONS 10 - -/** -** \cfetblcfg Default Filename for a Table Registry Dump -** -** \par Description: -** Defines the file name used to store the table registry when -** no filename is specified in the dump registry command. -** -** \par Limits -** The length of each string, including the NULL terminator cannot exceed the -** #OS_MAX_PATH_LEN value. -*/ -#define CFE_TBL_DEFAULT_REG_DUMP_FILE "/ram/cfe_tbl_reg.log" - -/** -** \cfetblcfg Number of Spacecraft ID's specified for validation -** -** \par Description: -** Defines the number of specified spacecraft ID values that -** are verified during table loads. If the number is zero -** then no validation of the spacecraft ID field in the table -** file header is performed when tables are loaded. Non-zero -** values indicate how many values from the list of spacecraft -** ID's defined below are compared to the spacecraft ID field -** in the table file header. The ELF2CFETBL tool may be used -** to create table files with specified spacecraft ID values. -** -** \par Limits -** This number must be greater than or equal to zero and -** less than or equal to 2. -*/ -#define CFE_TBL_VALID_SCID_COUNT 0 - -/* macro to construct 32 bit value from 4 chars */ -#define CFE_TBL_U32FROM4CHARS( _C1, _C2, _C3, _C4 ) \ - ( (uint32)(_C1) << 24 | \ - (uint32)(_C2) << 16 | \ - (uint32)(_C3) << 8 | \ - (uint32)(_C4) ) - -/** -** \cfetblcfg Spacecraft ID values used for table load validation -** -** \par Description: -** Defines the spacecraft ID values used for validating the -** spacecraft ID field in the table file header. To be valid, -** the spacecraft ID specified in the table file header must -** match one of the values defined here. -** -** \par Limits -** This value can be any 32 bit unsigned integer. -*/ -#define CFE_TBL_VALID_SCID_1 (CFE_SPACECRAFT_ID) -#define CFE_TBL_VALID_SCID_2 (CFE_TBL_U32FROM4CHARS('a', 'b', 'c', 'd')) - -/** -** \cfetblcfg Number of Processor ID's specified for validation -** -** \par Description: -** Defines the number of specified processor ID values that -** are verified during table loads. If the number is zero -** then no validation of the processor ID field in the table -** file header is performed when tables are loaded. Non-zero -** values indicate how many values from the list of processor -** ID's defined below are compared to the processor ID field -** in the table file header. The ELF2CFETBL tool may be used -** to create table files with specified processor ID values. -** -** \par Limits -** This number must be greater than or equal to zero and -** less than or equal to 4. -*/ -#define CFE_TBL_VALID_PRID_COUNT 0 - -/** -** \cfetblcfg Processor ID values used for table load validation -** -** \par Description: -** Defines the processor ID values used for validating the -** processor ID field in the table file header. To be valid, -** the spacecraft ID specified in the table file header must -** match one of the values defined here. -** -** \par Limits -** This value can be any 32 bit unsigned integer. -*/ -#define CFE_TBL_VALID_PRID_1 (CFE_CPU_ID) -#define CFE_TBL_VALID_PRID_2 (CFE_TBL_U32FROM4CHARS('a', 'b', 'c', 'd')) -#define CFE_TBL_VALID_PRID_3 0 -#define CFE_TBL_VALID_PRID_4 0 - -/** \cfeescfg Mission specific version number for cFE -** -** \par Description: -** The cFE version number consists of four parts: -** major version number, minor version number, revision -** number and mission specific revision number. The mission -** specific revision number is defined here and the other -** parts are defined in "cfe_version.h". -** -** \par Limits: -** Must be defined as a numeric value that is greater than -** or equal to zero. -*/ -#define CFE_MISSION_REV 0 - -/** \cfeescfg Poll timer for startup sync delay -** -** \par Description: -** During startup, some tasks may need to synchronize their own initialization -** with the initialization of other applications in the system. -** -** CFE ES implements an API to accomplish this, that performs a task delay (sleep) -** while polling the overall system state until other tasks are ready. -** -** This value controls the amount of time that the CFE_ES_ApplicationSyncDelay -** will sleep between each check of the system state. This should be large enough -** to allow other tasks to run, but not so large as to noticeably delay the startup -** completion. -** -** Units are in milliseconds -** -** \par Limits: -** Must be defined as an integer value that is greater than -** or equal to zero. -*/ -#define CFE_ES_STARTUP_SYNC_POLL_MSEC 50 - -/** \cfeescfg CFE core application startup timeout -** -** \par Description: -** The upper limit for the amount of time that the cFE core applications -** (ES, SB, EVS, TIME, TBL) are each alloted to reach their respective -** "ready" states. -** -** The CFE "main" thread starts individual tasks for each of the core applications -** (except FS). Each of these must perform some initialization work before the -** next core application can be started, so the main thread waits to ensure that the -** application has reached the "ready" state before starting the next application. -** -** If any core application fails to start, then it indicates a major problem with -** the system and startup is aborted. -** -** Units are in milliseconds -** -** \par Limits: -** Must be defined as an integer value that is greater than -** or equal to zero. -** -*/ -#define CFE_CORE_MAX_STARTUP_MSEC 30000 - -/** \cfeescfg Startup script timeout -** -** \par Description: -** The upper limit for the total amount of time that all apps listed in the CFE ES startup -** script may take to all become ready. -** -** Unlike the "core" app timeout, this is a soft limit; if the alloted time is exceeded, -** it probably indicates an issue with one of the apps, but does not cause CFE ES to take -** any additional action other than logging the event to the syslog. -** -** Units are in milliseconds -** -** \par Limits: -** Must be defined as an integer value that is greater than -** or equal to zero. - */ -#define CFE_ES_STARTUP_SCRIPT_TIMEOUT_MSEC 30000 - - -#endif diff --git a/config/obc/ppd/inc/ci_msgids.h b/config/obc/ppd/inc/ci_msgids.h deleted file mode 100644 index 9424bf351..000000000 --- a/config/obc/ppd/inc/ci_msgids.h +++ /dev/null @@ -1,10 +0,0 @@ -#ifndef CI_MSGIDS_H -#define CI_MSGIDS_H - -#include "msg_ids.h" - -#endif - -/************************/ -/* End of File Comment */ -/************************/ diff --git a/config/obc/ppd/inc/ci_platform_cfg.h b/config/obc/ppd/inc/ci_platform_cfg.h deleted file mode 100644 index 63437675c..000000000 --- a/config/obc/ppd/inc/ci_platform_cfg.h +++ /dev/null @@ -1,154 +0,0 @@ -#ifndef CI_PLATFORM_CFG_H -#define CI_PLATFORM_CFG_H - -#ifdef __cplusplus -extern "C" { -#endif - - -/* -** ci Platform Configuration Parameter Definitions -*/ - -/** \brief Mission specific version number for CI application -** -** \par Description: -** An application version number consists of four parts: -** major version number, minor version number, revision -** number and mission specific revision number. The mission -** specific revision number is defined here and the other -** parts are defined in "ci_version.h". -** -** \par Limits: -** Must be defined as a numeric value that is greater than -** or equal to zero. -*/ -#define CI_MISSION_REV (1) - -/** \brief Pipe depth for the Scheduler pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define CI_SCH_PIPE_DEPTH (2) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define CI_SCH_PIPE_NAME ("CI_SCH_PIPE") - -/** \brief The SB pend behavior type for the Scheduler pipe. -** -** \par Limits: -** One of: CFE_SB_POLL, CFE_SB_PEND_FOREVER, or the -** number of milliseconds to wait for a new message (recommended). -** Note, using CFE_SB_PEND_FOREVER may cause an unresponsive -** application if no messages arrive on this pipe. -*/ -#define CI_SCH_PIPE_PEND_TIME (2000) - -/** \brief The number of WAKEUP messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max limited to CFE_SB_MAX_PIPE_DEPTH-1. Note the -** CI_SCH_PIPE_WAKEUP_RESERVED and CI_SCH_PIPE_SEND_HK_RESERVED -** must be less than CI_SCH_PIPE_DEPTH. -*/ -#define CI_SCH_PIPE_WAKEUP_RESERVED (1) - -/** \brief The number of SEND_HK messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. Note the -** CI_SCH_PIPE_WAKEUP_RESERVED and CI_SCH_PIPE_SEND_HK_RESERVED -** must be less than CI_SCH_PIPE_DEPTH. -*/ -#define CI_SCH_PIPE_SEND_HK_RESERVED (1) - -/** \brief The number of PROCESS_TIMEOUT messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define CI_SCH_PIPE_PROC_TIMEOUT_RESERVED (1) - -/** \brief Pipe depth for the command pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define CI_CMD_PIPE_DEPTH (4) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define CI_CMD_PIPE_NAME ("CI_CMD_PIPE") - -/** \brief The config table default filename -** -** \par Limits: -** The length of each string, including the NULL terminator cannot exceed -** the #OS_MAX_PATH_LEN value. -*/ -#define CI_CONFIG_TABLE_FILENAME ("/cf/apps/ci_config.tbl") - -/** \brief The timeout table default filename -** -** \par Limits: -** The length of each string, including the NULL terminator cannot exceed -** the #OS_MAX_PATH_LEN value. -*/ -#define CI_TIMEOUT_TABLE_FILENAME ("/cf/apps/ci_timeout.tbl") - -/** \brief The timeout value, in milliseconds, to wait for ES application startup sync. -** -** \par Limits: -** This parameter must be at least 1000 (ms). -*/ -#define CI_STARTUP_TIMEOUT_MSEC (5000) - -/** \brief CI Ingest Mode */ -#define CI_INGEST_MODE (CI_BHV_OPTIMISTIC) - -/** \brief CI Listener Task Delay -** -** \note The main ingest loop is a while loop and sleeps for this many -** milliseconds each iteration. - */ -#define CI_LISTENER_TASK_DELAY (100) - -/** \brief CI Lister Task Stack Size */ -#define CI_LISTENER_TASK_STACK_SIZE (160000) - -/** \brief CI Lister Task Flags for CFE_ES_CreateChildTask() */ -#define CI_LISTENER_TASK_FLAGS (OS_ENABLE_CORE_0) - -/** \brief CI Lister Task Priority */ -#define CI_LISTENER_TASK_PRIORITY (109) - -/** \brief The largest size message CI can ingest */ -#define CI_MAX_CMD_INGEST (CFE_SB_MAX_SB_MSG_SIZE) - -/** \brief Listener task name */ -#define CI_LISTENER_TASK_NAME ("CI_LISTENER") - -/** \brief CI config table mutex name */ -#define CI_CFG_TBL_MUTEX_NAME ("CI_CFG_TBL_MUTEX") - -/** \brief CI timeout table mutex name */ -#define CI_TIME_TBL_MUTEX_NAME ("CI_TIME_TBL_MUTEX") - -#ifdef __cplusplus -} -#endif - -#endif /* CI_PLATFORM_CFG_H */ - -/************************/ -/* End of File Comment */ -/************************/ - diff --git a/config/obc/ppd/inc/cs_msgids.h b/config/obc/ppd/inc/cs_msgids.h deleted file mode 100644 index 688d2c27d..000000000 --- a/config/obc/ppd/inc/cs_msgids.h +++ /dev/null @@ -1,11 +0,0 @@ -#ifndef CS_MSGIDS_H -#define CS_MSGIDS_H - -#include "msg_ids.h" - -#endif /*CS_MSGIDS_H*/ - -/************************/ -/* End of File Comment */ -/************************/ - diff --git a/config/obc/ppd/inc/cs_platform_cfg.h b/config/obc/ppd/inc/cs_platform_cfg.h deleted file mode 100644 index b744a641d..000000000 --- a/config/obc/ppd/inc/cs_platform_cfg.h +++ /dev/null @@ -1,305 +0,0 @@ -#ifndef CS_PLATFORM_CFG_H -#define CS_PLATFORM_CFG_H - -#include "osapi.h" - -/************************************************************************* - ** Macro Definitions - *************************************************************************/ - -#define CS_CHILD_TASK_FLAGS OS_ENABLE_CORE_0 - -/** -** \cscfg EEPROM File Table -- default table filename -** -** \par Description: -** This parameter defines the default filename for the -** EEPROM addresses File Table. -** -** \par Limits: -** The string length (including string terminator) cannot exceed -** #OS_MAX_PATH_LEN. (limit is not verified) -*/ -#define CS_DEF_EEPROM_TABLE_FILENAME "/cf/apps/cs_eepromtbl.tbl" - -/** -** \cscfg Memory Address File Table -- default table filename -** -** \par Description: -** This parameter defines the default filename for the -** Memory addresses File Table. -** -** \par Limits: -** The string length (including string terminator) cannot exceed -** #OS_MAX_PATH_LEN. (limit is not verified) -*/ -#define CS_DEF_MEMORY_TABLE_FILENAME "/cf/apps/cs_memorytbl.tbl" - -/** -** \cscfg Tables File Table -- default table filename -** -** \par Description: -** This parameter defines the default filename for the -** Tables List File Table. -** -** \par Limits: -** The string length (including string terminator) cannot exceed -** #OS_MAX_PATH_LEN. (limit is not verified) -*/ -#define CS_DEF_TABLES_TABLE_FILENAME "/cf/apps/cs_tablestbl.tbl" - -/** -** \cscfg Application File Table -- default table filename -** -** \par Description: -** This parameter defines the default filename for the -** Application List File Table. -** -** \par Limits: -** The string length (including string terminator) cannot exceed -** #OS_MAX_PATH_LEN. (limit is not verified) -*/ -#define CS_DEF_APP_TABLE_FILENAME "/cf/apps/cs_apptbl.tbl" - -/** -** \cscfg Application Pipe Depth -** -** \par Description: -** This parameter defines the depth of the CS input pipe. The -** depth should be deep enough to accommodate all of the DS -** command packets and all of the subscribed telemetry packets -** that might be generated by applications with a priority -** higher than the CS application. -** -** \par Limits: -** The value must be greater than zero and cannot exceed the -** definition of #CFE_SB_MAX_PIPE_DEPTH. -*/ -#define CS_PIPE_DEPTH 12 - -/** \cscfg Maximum number of entries in the Eeprom table to checksum - ** - ** \par Description: - ** Maximum number of entries that can be in the table of - ** Eeprom areas to checksum. - ** - ** \par Limits: - ** This parameter is limited by the uint16 datatype that defines it. - ** This parameter is limited to 65535. - ** - */ -#define CS_MAX_NUM_EEPROM_TABLE_ENTRIES 16 - -/** \cscfg Maximum number of entries in the Memory table to checksum - ** - ** \par Description: - ** Maximum number of entries that can be in the table of - ** Memory areas to checksum. - ** - ** \par Limits: - ** This parameter is limited by the uint16 datatype that defines it. - ** This parameter is limited to 65535. - ** - */ -#define CS_MAX_NUM_MEMORY_TABLE_ENTRIES 16 - -/** \cscfg Maximum number of tables to checksum - ** - ** \par Description: - ** Maximum number of entries in the table of tables to checksum - ** - ** \par Limits: - ** This parameter is limited by the maximum number of tables allowed - ** in the system. This parameter is limited to #CFE_TBL_MAX_NUM_TABLES - ** - */ -#define CS_MAX_NUM_TABLES_TABLE_ENTRIES 24 - -/** \cscfg Maximum number of applications to checksum - ** - ** \par Description: - ** Maximum number of entries in the table of applications to checksum - ** - ** \par Limits: - ** This parameter is limited by the maximum number of applications allowed - ** in the system. This parameter is limited to #CFE_ES_MAX_APPLICATIONS - ** - */ -#define CS_MAX_NUM_APP_TABLE_ENTRIES 24 - -/** \cscfg Default number of bytes to checksum per cycle - ** - ** \par Description: - ** The default number of bytes that are checksummed in a single CS cycle - ** - ** \par Limits: - ** This parameter is limited by the maximum value allowed by the data type. - ** In this case, the data type is an unsigned 32-bit integer, so the valid - ** range is 0 to 0xFFFFFFFF. Note that "0" is a valid value, and will - ** result in a checksum of 0. - ** - */ -#define CS_DEFAULT_BYTES_PER_CYCLE (1024 *16) - -/** \cscfg CS Child Task Priority - ** - ** \par Description: - ** Priority of child tasks created by CS. Lower numbers are higher priority, - ** with 1 being the highest priority in the case of a child task. - ** - ** \par Limits: - ** Valid range for a child task is 1 to 255, but the priority cannot be - ** higher (lower number) than the CS App priority. - ** - */ -#define CS_CHILD_TASK_PRIORITY 202 - - -/** \cscfg Delay between checksumming cycles for child task - ** - ** \par Description: - ** CS child tasks perform checksum cycles like the main App. - ** Since the child tasks aren't scheduled, there needs to be - ** some other mechanism to prevent it from hogging the CPU. - ** This parameter specifies the number of milliseconds to delay - ** in between cycles. - ** - ** \par Limits: - ** CS does not place limits on this parameter. It is intended to - ** be configurable to prevent the child task from hogging the CPU - ** - */ -#define CS_CHILD_TASK_DELAY 1000 - - -/** \cscfg Timeout for waiting for other apps to start - ** - ** \par Description: - ** CS waits for all of the other applications that are listed in - ** the startup script to start before entering its main loop. If - ** not all of those apps start, CS can pend indefinitely without - ** a timeout. Once CS waits this amount of time ( in milliseconds) - ** it will start regardless of the status of the rest of the apps - ** in the startup script. - ** - ** \par Limits: - ** CS does not place limits on this parameter. It is intended to - ** be configurable to allow enough time for all apps to start. - ** - */ -#define CS_STARTUP_TIMEOUT 60000 - - - -/** \cscfg Desired state of the checksumming of OS code segment at power on -** -** \par Description: -** This determines the default state the checksumming of -** OS code segment should be in at power on -** -** \par Limits: -** This can either be CS_STATE_ENABLED or CS_STATE_DISABLED -*/ -#define CS_OSCS_CHECKSUM_STATE CS_STATE_ENABLED - -/** \cscfg Desired state of the checksumming of CFE core checksum at power on -** -** \par Description: -** This determines the default state the checksumming of -** CFE core should be in at power on -** -** \par Limits: -** This can either be CS_STATE_ENABLED or CS_STATE_DISABLED -*/ -#define CS_CFECORE_CHECKSUM_STATE CS_STATE_ENABLED - -/** \cscfg Desired state of the EEPROM table at power on -** -** \par Description: -** This determines the default state the EEPROM table should -** be in at power on -** -** \par Limits: -** This can either be CS_STATE_ENABLED or CS_STATE_DISABLED -*/ -#define CS_EEPROM_TBL_POWERON_STATE CS_STATE_ENABLED - -/** \cscfg Desired state of the EEPROM table at power on -** -** \par Description: -** This determines the default state the Memory table should -** be in at power on -** -** \par Limits: -** This can either be CS_STATE_ENABLED or CS_STATE_DISABLED -*/ -#define CS_MEMORY_TBL_POWERON_STATE CS_STATE_ENABLED - -/** \cscfg Desired state of the Applications table at power on -** -** \par Description: -** This determines the default state the EEPROM table should -** be in at power on -** -** \par Limits: -** This can either be CS_STATE_ENABLED or CS_STATE_DISABLED -*/ -#define CS_APPS_TBL_POWERON_STATE CS_STATE_ENABLED - -/** \cscfg Desired state of the Tables table at power on -** -** \par Description: -** This determines the default state the EEPROM table should -** be in at power on -** -** \par Limits: -** This can either be CS_STATE_ENABLED or CS_STATE_DISABLED -*/ -#define CS_TABLES_TBL_POWERON_STATE CS_STATE_ENABLED - -/** \cscfg Whether to preserve checksum states on processor reset -** -** \par Description: -** This determines whether to preserve checksum -** enabled/disabled states on processor reset -** -** \par Limits: -** None -*/ -#define CS_PRESERVE_STATES_ON_PROCESSOR_RESET TRUE - - -/** \cscfg Name of the Critical Data Store Used for CS -** -** \par Description: -** Name of the Critical Data Store for CS -** This CDS is used to preserve the checksum -** enabled states for EERPOM, Memory, Apps, Tables tables -** as well as OS code segment and cFE core states -** -** \par Limits: -** Must be a unique string with regards to CDS -*/ -#define CS_CDS_NAME "CS_CDS" - -/** \cscfg Mission specific version number for CS application -** -** \par Description: -** An application version number consists of four parts: -** major version number, minor version number, revision -** number and mission specific revision number. The mission -** specific revision number is defined here and the other -** parts are defined in "cs_version.h". -** -** \par Limits: -** Must be defined as a numeric value that is greater than -** or equal to zero. -*/ -#define CS_MISSION_REV 0 - -#endif /*_cs_platform_cfg_*/ - -/************************/ -/* End of File Comment */ -/************************/ - diff --git a/config/obc/ppd/inc/ds_msgids.h b/config/obc/ppd/inc/ds_msgids.h deleted file mode 100644 index d288329a0..000000000 --- a/config/obc/ppd/inc/ds_msgids.h +++ /dev/null @@ -1,11 +0,0 @@ -#ifndef DS_MSGIDS_H -#define DS_MSGIDS_H - -#include "msg_ids.h" - - -#endif /* DS_MSGIDS_H */ - -/************************/ -/* End of File Comment */ -/************************/ diff --git a/config/obc/ppd/inc/ds_platform_cfg.h b/config/obc/ppd/inc/ds_platform_cfg.h deleted file mode 100644 index 0a2d305dd..000000000 --- a/config/obc/ppd/inc/ds_platform_cfg.h +++ /dev/null @@ -1,471 +0,0 @@ -#ifndef DS_PLATFORM_CFG_H -#define DS_PLATFORM_CFG_H - - -/** -** \dscfg Destination File Table -- logical table name -** -** \par Description: -** This parameter defines the name of the DS Destination File -** Table when referenced via cFE Table Services. Note that this -** parameter is not a filename, it is the table specific portion -** of the logical name. The entire logical name for this table -** is "DS.FILE_TBL". -** -** \par Limits: -** The string length (including string terminator) cannot exceed -** #CFE_TBL_MAX_NAME_LENGTH. (limit is not verified) -*/ -#define DS_DESTINATION_TBL_NAME "FILE_TBL" - - -/** -** \dscfg Destination File Table -- default table filename -** -** \par Description: -** This parameter defines the default filename for the -** Destination File Table. -** -** \par Limits: -** The string length (including string terminator) cannot exceed -** #OS_MAX_PATH_LEN. (limit is not verified) -*/ -#define DS_DEF_DEST_FILENAME "/cf/apps/ds_file_tbl.tbl" - - -/** -** \dscfg Destination File Table -- number of files -** -** \par Description: -** This parameter defines the size of the DS Destination File -** Table by setting the number of file entries in the table. The -** number should be large enough to provide an entry for all the -** destination files defined for the project. Maintenance will -** be simplified if file index 'n' always describes the same -** file - even if that file is not in use at the present time. -** -** \par Limits: -** The number must be greater than zero but there is no upper -** enforced limit for this parameter. -*/ -#define DS_DEST_FILE_CNT 16 - - -/** -** \dscfg Destination File Table -- pathname buffer size -** -** \par Description: -** This parameter further defines the size of the Destination -** File Table by setting the size of the pathname buffer for -** each file entry. Note that the buffer must contain both -** the string and the string terminator - so the max string -** length is one less than the buffer size. -** -** \par Limits: -** The buffer size must be greater than zero and a multiple -** of four bytes for alignment. The value cannot exceed the -** maximum filename size allowed by the OS (#OS_MAX_PATH_LEN). -*/ -#define DS_PATHNAME_BUFSIZE OS_MAX_PATH_LEN - - -/** -** \dscfg Destination File Table -- basename buffer size -** -** \par Description: -** This parameter further defines the size of the Destination -** File Table by setting the size of the basename buffer for -** each file entry. Note that the buffer must contain both -** the string and the string terminator - so the max string -** length is one less than the buffer size. -** -** \par Limits: -** The buffer size must be greater than zero and a multiple -** of four bytes for alignment. The value cannot exceed the -** maximum filename size allowed by the OS (#OS_MAX_PATH_LEN). -*/ -#define DS_BASENAME_BUFSIZE OS_MAX_PATH_LEN - - -/** -** \dscfg Destination File Table -- extension buffer size -** -** \par Description: -** This parameter further defines the size of the Destination -** File Table by setting the size of the extension buffer for -** each file entry. Note that the buffer must contain both -** the string and the string terminator - so the max string -** length is one less than the buffer size. -** -** \par Limits: -** The buffer size must be greater than zero and a multiple -** of four bytes for alignment. The value cannot exceed the -** maximum filename size allowed by the OS (#OS_MAX_PATH_LEN). -*/ -#define DS_EXTENSION_BUFSIZE 8 - - -/** -** \dscfg Packet Filter Table -- logical table name -** -** \par Description: -** This parameter defines the name of the DS Packet Filter Table -** when referenced via cFE Table Services. Note that this -** parameter is not a filename, it is the table specific portion -** of the logical name. The entire logical name for this table -** is "DS.FILTER_TBL". -** -** \par Limits: -** The string length (including string terminator) cannot exceed -** #CFE_TBL_MAX_NAME_LENGTH. (limit is not verified) -*/ -#define DS_FILTER_TBL_NAME "FILTER_TBL" - - -/** -** \dscfg Packet Filter Table -- default table filename -** -** \par Description: -** This parameter defines the default filename for the -** Packet Filter Table. -** -** \par Limits: -** The string length (including string terminator) cannot exceed -** #OS_MAX_PATH_LEN. (limit is not verified) -*/ -#define DS_DEF_FILTER_FILENAME "/cf/apps/ds_filter_tbl.tbl" - - -/** -** \dscfg Packet Filter Table -- number of packets -** -** \par Description: -** This parameter defines the size of the DS Packet Filter Table -** by setting the number of packet entries in the table. The -** number should be large enough to provide an entry for each -** command and telemetry packet subject to data storage. -** -** \par Limits: -** The number must be greater than zero but there is no upper -** enforced limit for this parameter. However, setting the -** size equal to the number of packets that might be subject -** to data storage, rather than the total number of packets -** defined for this project, will reduce the table file size, -** possibly significantly. -*/ -#define DS_PACKETS_IN_FILTER_TABLE 256 - - -/** -** \dscfg Packet Filter Table -- filters per packet -** -** \par Description: -** This parameter further defines the size of the DS Packet -** Filter Table by setting the number of filters per packet -** entry. This is the maximum number of destination files -** to which a single packet can be written (at one time). -** -** \par Limits: -** The number of filters per packet must be greater than zero -** and not greater than #DS_DEST_FILE_CNT. -*/ -#define DS_FILTERS_PER_PACKET 4 - - -/** -** \dscfg Common Table File -- descriptor text buffer size -** -** \par Description: -** This parameter defines the size of the Descriptor Text -** fields in both the Destination File Table and the Packet -** Filter Table. The buffer includes the string terminator. -** -** \par Limits: -** The buffer size must be greater than zero and a multiple -** of four bytes for alignment. There is no upper limit. -*/ -#define DS_DESCRIPTOR_BUFSIZE 32 - - -/** -** \dscfg Filename Sequence Count -- number of digits -** -** \par Description: -** This parameter defines the number of filename sequence -** count digits used when the filename type has been set to -** "count" rather than "time". Sequence counts are padded -** with leading zero's to create fixed length strings. -** -** \par Limits: -** The number of sequence count digits must be greater than -** zero - even if there is no intention of later setting -** the filename type to "count". This value should match -** the definition for #DS_MAX_SEQUENCE_COUNT, below. -*/ -#define DS_SEQUENCE_DIGITS 8 - - -/** -** \dscfg Filename Sequence Count -- max counter value -** -** \par Description: -** This parameter defines the maximum value a file sequence -** count will reach before rollover. -** -** \par Limits: -** The value must be greater than zero and should not have -** more digits than the number of sequence count digits -** defined for #DS_SEQUENCE_DIGITS, above. -*/ -#define DS_MAX_SEQUENCE_COUNT 99999999 - - -/** -** \dscfg Data Storage File -- total filename size -** -** \par Description: -** This parameter defines the maximum size of a filename after -** combining the pathname, basename, sequence and extension. -** -** \par Limits: -** The buffer size must be greater than zero and a multiple -** of four bytes for alignment. The buffer size (including -** string terminator) cannot exceed #OS_MAX_PATH_LEN. -*/ -#define DS_TOTAL_FNAME_BUFSIZE OS_MAX_PATH_LEN - - -/** -** \dscfg Data Storage File -- cFE file header sub-type -** -** \par Description: -** This parameter defines a mission-specific value that is used -** to identify a Data Storage file. -** -** \par Limits: -** The file header data type for the value is 32 bits unsigned, -** thus the value can be anything from zero to 4,294,967,295. -** (limit is not verified) -*/ -#define DS_FILE_HDR_SUBTYPE 12345 - - -/** -** \dscfg Data Storage File -- cFE file header description -** -** \par Description: -** This parameter defines a mission-specific text string that -** may be used to identify Data Storage files. -** -** \par Limits: -** The string length (including string terminator) cannot exceed -** #CFE_FS_HDR_DESC_MAX_LEN. (limit is not verified) -*/ -#define DS_FILE_HDR_DESCRIPTION "DS data storage file" - - -/** -** \dscfg Data Storage File -- minimum size limit -** -** \par Description: -** This parameter defines the lower limit for commands and -** table entries that define the size (in bytes) when a data -** storage file is automatically closed. -** -** \par Limits: -** None -- however, the user should be cautioned that a very -** small value will allow an size limit that closes files too -** frequently, while a very large value will effectively -** prevent files from ever being closed due to size. -*/ -#define DS_FILE_MIN_SIZE_LIMIT 1024 - - -/** -** \dscfg Data Storage File -- minimum age limit -** -** \par Description: -** This parameter defines the lower limit for commands and -** table entries that define the age (in seconds) when a data -** storage file is automatically closed. -** -** \par Limits: -** None -- however, the user should be cautioned that a very -** small value will allow an age limit that closes files too -** frequently, while a very large value will effectively -** prevent files from ever being closed due to age. -*/ -#define DS_FILE_MIN_AGE_LIMIT 60 - - -/** -** \dscfg Application Pipe Name -** -** \par Description: -** This parameter defines a portion of the logical name used -** during the creation of the DS input pipe. The logical name -** may also be used as an identifier when accessing status for -** the pipe via cFE Software Bus Services. The entire logical -** name is "DS.DS_CMD_PIPE". -** -** \par Limits: -** The string length (including string terminator) cannot -** exceed #OS_MAX_API_NAME. (limit is not verified) -*/ -#define DS_APP_PIPE_NAME "DS_CMD_PIPE" - - -/** -** \dscfg Application Pipe Depth -** -** \par Description: -** This parameter defines the depth of the DS input pipe. The -** depth should be deep enough to accommodate all of the DS -** command packets and all of the subscribed telemetry packets -** that might be generated by applications with a priority -** higher than the DS application. -** -** \par Limits: -** The value must be greater than zero and cannot exceed the -** definition of #CFE_SB_MAX_PIPE_DEPTH. -*/ -#define DS_APP_PIPE_DEPTH 256 - - -/** -** \dscfg Make DS Tables Critical -** -** \par Description: -** Set this parameter to a value of one to make the DS tables critical, -** otherwise set to zero. -** -** \par Limits -** This parameter must be set to zero or one. -*/ -#define DS_MAKE_TABLES_CRITICAL 0 - - -/** -** \dscfg Housekeeping Request Frequency -** -** \par Description: -** Set this parameter equal to the number of seconds between -** housekeeping request commands. This number is mission -** specific and must match the frequency used by the source -** of the command - often the scheduler task. The value is -** used by the DS application to measure file age and also -** as a factor in the calculation of file growth rates. -** -** \par Limits -** This parameter must be greater than zero. -*/ -#define DS_SECS_PER_HK_CYCLE 4 - - -/** -** \dscfg Default DS Packet Processor State -** -** \par Description: -** Set this parameter to a value of one and DS will begin to -** process packets immediately on startup. Set the value to -** zero and DS will ignore data storage packets until receipt -** of a valid #DS_ENABLE command. -** -** \par Limits -** This parameter must be set to zero or one. -*/ -#define DS_DEF_ENABLE_STATE 1 - - -/** -** \dscfg Save DS Packet Processor State in Critical Data Store -** -** \par Description: -** Set this parameter to a value of one and DS will restore -** the previous Packet Processor enable/disable state after -** a processor reset. This setting does not affect the -** Packet Processor enable/disable state set at power-on -** which is controlled by #DS_DEF_ENABLE_STATE. Set the -** value to zero and DS will set the enable/disable state -** as described for #DS_DEF_ENABLE_STATE following any reset. -** -** \par Limits -** This parameter must be set to zero or one. -*/ -#define DS_CDS_ENABLE_STATE 1 - - -/** \dscfg Mission specific version number for DS application -** -** \par Description: -** An application version number consists of four parts: -** major version number, minor version number, revision -** number and mission specific revision number. The mission -** specific revision number is defined here and the other -** parts are defined in "ds_version.h". -** -** \par Limits: -** Must be defined as a numeric value that is greater than -** or equal to zero. -*/ -#define DS_MISSION_REV 0 - - -/** -** \dscfg File Header Type Selection -** -** \par Description: -** Set this parameter to select the type of file header that -** will be the first record written to each Data Storage File. -** -** \par Limits -** This parameter must be set to one of the following: -** 0 = none -- set this value to have no file header -** 1 = CFE -- set this value to use CFE file headers -** 2 = GPM -- set this value to use GPM file headers -*/ -#define DS_FILE_HEADER_TYPE 1 - - -/** -** \dscfg Move Files to Downlink Directory After Close Selection -** -** \par Description: -** Set this parameter to enable the code and structures to -** automatically move DS files to another directory after -** closing the files. The intended use for this setting is -** to move files from a working directory into a directory -** from which the files can be downlinked. Note that even -** after enabling this feature, files will not be moved if -** the move pathname in the Destination File Table is null. -** -** \par Limits -** This parameter must be set to one of the following: -** TRUE = add move pathname field to Destination File Table -** FALSE = do not add move pathname to Destination File Table -*/ -#define DS_MOVE_FILES FALSE - - -/** -** \dscfg Application Per Packet Pipe Limit -** -** \par Description: -** This parameter defines the per packet pipe limit. This is -** the max number of packets with the same Message ID that may -** be in the DS input pipe at any one time. This value should -** be large enough to accommodate a burst of packets (usually -** event packets) plus a suitable margin. -** -** \par Limits: -** The value must be greater than zero and cannot exceed the -** definition of #DS_APP_PIPE_DEPTH. -*/ -#define DS_PER_PACKET_PIPE_LIMIT 1 - - -#endif /* DS_PLATFORM_CFG_H */ - -/************************/ -/* End of File Comment */ -/************************/ diff --git a/config/obc/ppd/inc/ea_platform_cfg.h b/config/obc/ppd/inc/ea_platform_cfg.h deleted file mode 100644 index b3034d0c1..000000000 --- a/config/obc/ppd/inc/ea_platform_cfg.h +++ /dev/null @@ -1,143 +0,0 @@ -#ifndef EA_PLATFORM_CFG_H -#define EA_PLATFORM_CFG_H - -#ifdef __cplusplus -extern "C" { -#endif - -#define EA_CHILD_TASK_FLAGS OS_ENABLE_CORE_0 - - -/* -** ea Platform Configuration Parameter Definitions -*/ - -/** \brief Mission specific version number for EA application -** -** \par Description: -** An application version number consists of four parts: -** major version number, minor version number, revision -** number and mission specific revision number. The mission -** specific revision number is defined here and the other -** parts are defined in "ea_version.h". -** -** \par Limits: -** Must be defined as a numeric value that is greater than -** or equal to zero. -*/ -#define EA_MISSION_REV (0) - -/** \brief Pipe depth for the Scheduler pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define EA_SCH_PIPE_DEPTH (2) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define EA_SCH_PIPE_NAME ("EA_SCH_PIPE") - -/** \brief The SB pend behavior type for the Scheduler pipe. -** -** \par Limits: -** One of: CFE_SB_POLL, CFE_SB_PEND_FOREVER, or the -** number of milliseconds to wait for a new message (recommended). -** Note, using CFE_SB_PEND_FOREVER may cause an unresponsive -** application if no messages arrive on this pipe. -*/ -#define EA_SCH_PIPE_PEND_TIME (2000) - -/** \brief The number of WAKEUP messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max limited to CFE_SB_MAX_PIPE_DEPTH-1. Note the -** EA_SCH_PIPE_WAKEUP_RESERVED and EA_SCH_PIPE_SEND_HK_RESERVED -** must be less than EA_SCH_PIPE_DEPTH. -*/ -#define EA_SCH_PIPE_WAKEUP_RESERVED (1) - -/** \brief The number of SEND_HK messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. Note the -** EA_SCH_PIPE_WAKEUP_RESERVED and EA_SCH_PIPE_SEND_HK_RESERVED -** must be less than EA_SCH_PIPE_DEPTH. -*/ -#define EA_SCH_PIPE_SEND_HK_RESERVED (1) - -/** \brief Pipe depth for the command pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define EA_CMD_PIPE_DEPTH (4) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define EA_CMD_PIPE_NAME ("EA_CMD_PIPE") - -/** \brief Pipe depth for the data pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define EA_DATA_PIPE_DEPTH (4) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define EA_DATA_PIPE_NAME ("EA_DATA_PIPE") - -/** \brief The config table default filename -** -** \par Limits: -** The length of each string, including the NULL terminator cannot exceed -** the #OS_MAX_PATH_LEN value. -*/ -#define EA_CONFIG_TABLE_FILENAME ("/cf/apps/ea_config.tbl") -/** \brief The timeout value, in milliseconds, to wait for ES application startup sync. -** -** \par Limits: -** This parameter must be at least 1000 (ms). -*/ -#define EA_STARTUP_TIMEOUT_MSEC (1000) - -/* TODO: Add Doxygen markup. */ -#define EA_CUSTOM_DEV_PATH "/tmp/ttyS0" - -/** \cscfg EA Child Task Priority - ** - ** \par Description: - ** Priority of child tasks created by EA. Lower numbers are higher priority, - ** with 1 being the highest priority in the case of a child task. - ** - ** \par Limits: - ** Valid range for a child task is 1 to 255, but the priority cannot be - ** higher (lower number) than the EA App priority. - ** - */ -#define EA_CHILD_TASK_PRIORITY (187) -#define EA_APP_UTIL_THRESHOLD (70) -#define EA_APP_NUM_THREADS (2) - -#define EA_MAX_PATH_LEN (96) - -#ifdef __cplusplus -} -#endif - -#endif /* EA_PLATFORM_CFG_H */ - -/************************/ -/* End of File Comment */ -/************************/ - diff --git a/config/obc/ppd/inc/flow_msgids.h b/config/obc/ppd/inc/flow_msgids.h deleted file mode 100644 index 494f62fc0..000000000 --- a/config/obc/ppd/inc/flow_msgids.h +++ /dev/null @@ -1,18 +0,0 @@ -#ifndef FLOW_MSGIDS_H -#define FLOW_MSGIDS_H - -#ifdef __cplusplus -extern "C" { -#endif - -#include "msg_ids.h" - -#ifdef __cplusplus -} -#endif - -#endif /* FLOW_MSGIDS_H */ - -/************************/ -/* End of File Comment */ -/************************/ diff --git a/config/obc/ppd/inc/flow_platform_cfg.h b/config/obc/ppd/inc/flow_platform_cfg.h deleted file mode 100644 index 4f24d6eea..000000000 --- a/config/obc/ppd/inc/flow_platform_cfg.h +++ /dev/null @@ -1,135 +0,0 @@ -#ifndef FLOW_PLATFORM_CFG_H -#define FLOW_PLATFORM_CFG_H - -#ifdef __cplusplus -extern "C" { -#endif - -/* -** FLOW Platform Configuration Parameter Definitions -*/ - -/** \brief Mission specific version number for FLOW application -** -** \par Description: -** An application version number consists of four parts: -** major version number, minor version number, revision -** number and mission specific revision number. The mission -** specific revision number is defined here and the other -** parts are defined in "amc_version.h". -** -** \par Limits: -** Must be defined as a numeric value that is greater than -** or equal to zero. -*/ -#define FLOW_MISSION_REV (0) - -/** \brief Pipe depth for the Scheduler pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define FLOW_SCH_PIPE_DEPTH (2) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define FLOW_SCH_PIPE_NAME ("FLOW_SCH_PIPE") - -/** \brief The number of WAKEUP messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max limited to CFE_SB_MAX_PIPE_DEPTH-1. Note the -** FLOW_WAKEUP_MID_MAX_MSG_COUNT and FLOW_SEND_HK_MID_MAX_MSG_COUNT -** must be less than FLOW_SCH_PIPE_DEPTH. -*/ -#define FLOW_WAKEUP_MID_MAX_MSG_COUNT (1) - -/** \brief The number of SEND_HK messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. Note the -** FLOW_WAKEUP_MID_MAX_MSG_COUNT and FLOW_SEND_HK_MID_MAX_MSG_COUNT -** must be less than FLOW_SCH_PIPE_DEPTH. -*/ -#define FLOW_SEND_HK_MID_MAX_MSG_COUNT (1) - -/** \brief Pipe depth for the command pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define FLOW_CMD_PIPE_DEPTH (4) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define FLOW_CMD_PIPE_NAME ("FLOW_CMD_PIPE") - -/** \brief Pipe depth for the data pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define FLOW_DATA_PIPE_DEPTH (4) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define FLOW_DATA_PIPE_NAME ("FLOW_DATA_PIPE") - -/** \brief The config table default filename -** -** \par Limits: -** The length of each string, including the NULL terminator cannot exceed -** the #OS_MAX_PATH_LEN value. -*/ -#define FLOW_CONFIG_TABLE_FILENAME ("/cf/apps/flow_config.tbl") - -/** \brief The timeout value, in milliseconds, to wait for ES application startup sync. -** -** \par Limits: -** This parameter must be at least 1000 (ms). -*/ -#define FLOW_STARTUP_TIMEOUT_MSEC (1000) - -/** \brief Pipe depth for the Gyroscope pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define FLOW_GYRO_PIPE_DEPTH (30) - -/** \brief Pipe name for the Gyroscope pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define FLOW_GYRO_PIPE_NAME ("FLOW_GYRO_PIPE") - -/** \brief The number of SENSOR_GYRO messages to reserve on the Gyroscope pipe. -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. Note the -** FLOW_SENSOR_GYRO_MID_MAX_MSG_COUNT -** must be less than FLOW_GYRO_PIPE_DEPTH. -*/ -#define FLOW_SENSOR_GYRO_MAX_MSG_COUNT (25) - - -#ifdef __cplusplus -} -#endif - -#endif /* FLOW_PLATFORM_CFG_H */ - -/************************/ -/* End of File Comment */ -/************************/ - diff --git a/config/obc/ppd/inc/fm_msgids.h b/config/obc/ppd/inc/fm_msgids.h deleted file mode 100644 index 1af16a366..000000000 --- a/config/obc/ppd/inc/fm_msgids.h +++ /dev/null @@ -1,11 +0,0 @@ -#ifndef FM_MSGIDS_H -#define FM_MSGIDS_H - - -#include "msg_ids.h" - -#endif /* FM_MSGIDS_H */ - -/************************/ -/* End of File Comment */ -/************************/ diff --git a/config/obc/ppd/inc/fm_platform_cfg.h b/config/obc/ppd/inc/fm_platform_cfg.h deleted file mode 100644 index 7b83a233d..000000000 --- a/config/obc/ppd/inc/fm_platform_cfg.h +++ /dev/null @@ -1,424 +0,0 @@ -#ifndef FM_PLATFORM_CFG_H -#define FM_PLATFORM_CFG_H - -#include "osapi.h" - - -/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ -/* */ -/* FM platform configuration parameters - application definitions */ -/* */ -/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ - -#define FM_CHILD_TASK_FLAGS OS_ENABLE_CORE_0 - -/** \fmcfg File Manager Application Name -** -** \par Description: -** This definition must match the name used at startup by the cFE -** Executive Services when creating the FM application. Note that -** application names are also an argument to certain cFE commands. -** For example, the application name is needed to access tables -** via cFE Table Services commands. -** -** \par Limits: -** FM requires that this name be defined, but otherwise places -** no limits on the definition. Refer to CFE Executive Services -** for specific information on limits related to application names. -*/ -#define FM_APP_NAME "FM" - - -/** \fmcfg File Manager Command Pipe Name -** -** \par Description: -** This definition is the name used at startup when creating a cFE -** Software Bus command pipe for the FM application. -** -** \par Limits: -** FM requires that this name be defined, but otherwise places -** no limits on the definition. Refer to CFE Software Bus Services -** for specific information on limits related to pipe names. -*/ -#define FM_APP_PIPE_NAME "FM_CMD_PIPE" - - -/** \fmcfg File Manager Command Pipe Depth -** -** \par Description: -** This definition sets the total number of packets that may queue -** in the FM command pipe. The limit for individual message types -** in the queue is the default cFE Software Bus subscription limit -** of four. -** -** \par Limits: -** The FM application limits this value to be no less than 4 and -** no greater than 20 packets at any one time in the command pipe. -*/ -#define FM_APP_PIPE_DEPTH 10 - - -/** \sccfg Mission specific version number for FM application -** -** \par Description: -** An application version number consists of four parts: -** major version number, minor version number, revision -** number and mission specific revision number. The mission -** specific revision number is defined here and the other -** parts are defined in "fm_version.h". -** -** \par Limits: -** Must be defined as a numeric value that is greater than -** or equal to zero. -*/ -#define FM_MISSION_REV 0 - - -/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ -/* */ -/* FM platform configuration parameters - output file definitions */ -/* */ -/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ - -/** \fmcfg Default Directory List Output Filename -** -** \par Description: -** This definition is the default output filename used by the Get -** Directory List to File command handler when the output filename -** is not provided. The default filename is used whenever the -** commanded output filename is the empty string. -** -** \par Limits: -** The FM application does not place a limit on this configuration -** parameter, however the symbol must be defined and the name will -** be subject to the same verification tests as a commanded output -** filename. Set this parameter to the empty string if no default -** filename is desired. -*/ -#define FM_DIR_LIST_FILE_DEFNAME "/ram/fm_dirlist.out" - - -/** \fmcfg Maximum Directory List Output File Entries -** -** \par Description: -** This definition sets the upper limit for the number of directory -** entries that may be written to a Directory List output file. -** Directory List files are variable length, based on the number of -** directory entries actually written to the file. There may zero -** entries written to the file if the directory is empty. For most -** environments, this definition will play no role at all, as it -** will be set to a number much larger than the count of files that -** will ever exist in any directory at one time. -** -** \par Limits: -** The FM application limits this value to be no less than 100 and -** no greater than 10000. -*/ -#define FM_DIR_LIST_FILE_ENTRIES 3000 - - -/** \fmcfg Directory List Output File Header Sub-Type -** -** \par Description: -** This definition sets the cFE File Header sub-type value for FM -** Directory List data files. The value may be used to differentiate -** FM Directory List files from other data files. -** -** \par Limits: -** The FM application places no limits on this unsigned 32 bit value. -*/ -#define FM_DIR_LIST_FILE_SUBTYPE 12345 - - -/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ -/* */ -/* FM platform configuration parameters - TLM packet definitions */ -/* */ -/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ - -/** \fmcfg Directory List Telemetry Packet Entry Count -** -** \par Description: -** This definition sets the number of directory entries contained -** in the Directory List telemetry packet. The command handler will -** read directory entries until reaching the index of the start entry -** (set via command argument) and then continue to read -** directory entries and populate the telemtry packet until there are -** either no more unread directory entries or until the telemetry -** packet is full. -** -** \par Limits: -** The FM application limits this value to be no less than 10 and -** and no greater than 100. The number of directory entries in the -** telemetry packet will in large part determine the packet size. -*/ -#define FM_DIR_LIST_PKT_ENTRIES 20 - - -/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ -/* */ -/* FM platform configuration parameters - child task definitions */ -/* */ -/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ - -/** \fmcfg Child Task File I/O Control Settings -** -** \par Description: -** These definitions control the amount of file data that the FM child task -** will process before giving up the CPU to allow other tasks time to run. -** -** FM_CHILD_FILE_BLOCK_SIZE defines the size of each block of file data that -** the FM child task will read or write. This value also defines the size -** of the FM child task I/O buffer that exists in global memory. -** -** FM_CHILD_FILE_LOOP_COUNT defines the number of file data blocks that may -** be processed before the FM child task sleeps (gives up the CPU). -** -** FM_CHILD_FILE_SLEEP_MS defines the length of time (in milli-secs) before -** the FM child task wakes (re-acquires the CPU). Note that many platforms -** will limit the precision of this value. -** -** Thus the combination of the 3 values control CPU use by the FM child task. -** Using a smaller block size minimizes the amount of RAM used by the file -** I/O buffer, but at the expense of file efficiency. Adjust each of the -** values such that the combination is appropriate for the target platform. -** -** For example, if the block size is 2048 and the loop count is 16 and the -** sleep time is 20, then while processing a 1 Mbyte file there will be -** 32 sleep cycles of 20ms each, for a total task delay of 0.64 seconds. -** -** \par Limits: -** FM_CHILD_FILE_BLOCK_SIZE: The FM application limits this value to be no -** less than 256 bytes and no greater than 32KB. -** -** FM_CHILD_FILE_LOOP_COUNT: The FM application limits this value to be -** non-zero. There is no upper limit - a very large number effectively -** means that the FM child task will not surrender the CPU to other lower -** priority tasks. -** -** FM_CHILD_FILE_SLEEP_MS: The FM application limits this value to be no -** no greater than 100 ms. The value zero generally means a very short -** task delay - refer to the target platform documentation for specifics. -*/ -#define FM_CHILD_FILE_BLOCK_SIZE 2048 -#define FM_CHILD_FILE_LOOP_COUNT 16 -#define FM_CHILD_FILE_SLEEP_MS 20 - -/** \fmcfg Child file stat sleep -** -** \par Description: -** OS_stat is a CPU intensive call. FM uses the OS_stat call to query a -** file’s size, date, and mode when setting up directory listings. -** Querying a large number of files and/or files large in size when -** processing directory listing commands can cause FM to hog the CPU. To -** mitigate this, options to sleep a configurable number of milliseconds -** between calls to OS_stat for a configurable number of files -** in a directory listing is provided. A large sleep cycle will not hang the CPU -** but it may take a long time for directory listing to complete. A shorter -** sleep cycle will speed up the directory listing commands but may cause -** FM to hog the CPU. -** -** FM_CHILD_STAT_SLEEP_MS: The number of milliseconds to sleep each -** cycle. One cycle is FM_CHILD_STAT_SLEEP_FILECOUNT. -** -** FM_CHILD_STAT_SLEEP_FILECOUNT: The number of files to process (OS_stat) before -** sleeping FM_CHILD_STAT_SLEEP_MS. -** Works in tandem with FM_CHILD_STAT_SLEEP_MS to reduce CPU hogging -** while allowing slightly more customization to balance time the operator is waiting to -** get data back from a directory listing versus FM hogging the CPU with calls to OS_stat -** -** In short: -** High SLEEP_MS means less CPU hogging by FM but a longer time to process a dir listing command -** Low SLEEP_MS means more potential CPU hogging by FM but shorter time to process a dir listing command -** High FILECOUNT means more potential CPU hogging by FM but a shorter time to process a dir listing command -** Low FILECOUNT means less CPU hogging by FM but longer time to process a dir listing command -** \par Limits: -** The default is zero unless the mission needs require them to be changed. -** -*/ -#define FM_CHILD_STAT_SLEEP_MS 0 -#define FM_CHILD_STAT_SLEEP_FILECOUNT 0 - -/** \fmcfg Child Task Command Queue Entry Count -** -** \par Description: -** This definition sets the array depth for the command arguments queue in -** the FM main task to FM child task handshake interface. The value sets -** the upper limit for the number of commands that can be waiting in the -** queue to be processed by the low priority FM child task. A multi-entry -** command queue prevents the occasional slow command from being rejected -** because the child task has not yet completed the previous slow command. -** -** \par Limits: -** The FM application limits this value to be no less than 1 and no greater -** than 10. There must be at least one because this is the method for -** passing command arguments from the parent to the child task. The upper -** limit is arbitrary. -*/ -#define FM_CHILD_QUEUE_DEPTH 3 - - -/** \fmcfg Child Task Name - cFE object name -** -** \par Description: -** This definition sets the FM child task object name. The task object -** name is required during child task creation by cFE Executive Services. -** -** \par Limits: -** FM requires that this name be defined, but otherwise places -** no limits on the definition. Refer to CFE Executive Services -** for specific information on limits related to object names. -*/ -#define FM_CHILD_TASK_NAME "FM_CHILD_TASK" - - -/** \fmcfg Child Task Stack Size -** -** \par Description: -** This definition sets the size in bytes of the FM child task -** stack. It is highly recommended that this assignment be made -** by someone familiar with the system requirements for tasks -** running on the target platform. -** -** \par Limits: -** The FM application limits this value to be no less than 2048 -** and no greater than 20480. These limits are purely arbitrary -** and may need to be modified for specific platforms. -*/ -#define FM_CHILD_TASK_STACK_SIZE 20480 - - -/** \fmcfg Child Task Execution Priority -** -** \par Description: -** This definition sets the execution priority for the FM child -** task. It is highly recommended that this assignment be made -** by someone familiar with the system requirements for tasks -** running on the target platform. -** -** \par Limits: -** Value to be no less than 1 and no greater than 255. -** -** \par Priority Values: -** Note that a small value has higher priority than a large value. -** Thus, 100 is higher priority than 150. It is also necessary to -** ensure that a child task has lower priority than its parent. -** It should be clear that a child task that runs ahead of its -** parent defeats the purpose of having a child task to run in -** the background. -*/ -#define FM_CHILD_TASK_PRIORITY 208 - - -/** \fmcfg Child Task Semaphore Name - cFE object name -** -** \par Description: -** This definition sets the FM child task semaphore object name. -** The semaphore object name is required during semaphore creation -** by cFE Executive Services. -** -** \par Limits: -** FM requires that this name be defined, but otherwise places -** no limits on the definition. Refer to CFE Executive Services -** for specific information on limits related to object names. -*/ -#define FM_CHILD_SEM_NAME "FM_CHILD_SEM" - - -/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ -/* */ -/* FM platform configuration parameters - table definitions */ -/* */ -/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ - -/** \fmcfg Free Space Table Name - cFE object name -** -** \par Description: -** Table object name is required during table creation. -** -** \par Limits: -** FM requires that this name be defined, but otherwise places -** no limits on the definition. Refer to CFE Table Services -** for specific information on limits related to table names. -*/ -#define FM_TABLE_CFE_NAME "FreeSpace" - - -/** \fmcfg Free Space Table Name - filename with path -** -** \par Description: -** Table name with path is required to load table at startup. -** -** \par Limits: -** FM requires that this name be defined, but otherwise places -** no limits on the definition. If the named table does not -** exist or fails validation, the table load will fail. -*/ -#define FM_TABLE_DEF_NAME "/cf/apps/fm_freespace.tbl" - - -/** \fmcfg Free Space Table Name - filename without path -** -** \par Description: -** Table name without path defines the output name for the table -** file created during the table make process. -** -** \par Limits: -** FM requires that this name be defined, but otherwise places -** no limits on the definition. If the table name is not -** valid then the make process may fail, or the table file may -** be unloadable to the target hardware. -*/ -#define FM_TABLE_FILENAME "fm_freespace.tbl" - - -/** \fmcfg Free Space Table Description -** -** \par Description: -** Table files contain headers that include descriptive text. -** This text will be put into the file header during the table -** make process. -** -** \par Limits: -** FM requires that this name be defined, but otherwise places -** no limits on the definition. Refer to cFE Table Services -** for limits related to table descriptive text. -*/ -#define FM_TABLE_DEF_DESC "FM File System Free Space Table" - - -/** \fmcfg Number of Free Space Table Entries -** -** \par Description: -** This value defines the number of entries in both the FM file system -** free space table and the FM file system free space telemetry packet. -** Note: this value does not define the number of file systems present -** or supported by the CFE-OSAL, the value only defines the number of -** file systems for which FM may be enabled to report free space data. -** -** \par Limits: -** FM limits this value to be not less than 1 and not greater than 16. -*/ -#define FM_TABLE_ENTRY_COUNT 8 - - -/** \fmcfg Table Data Validation Error Code -** -** \par Description: -** Table data is verified during the table load process. Should -** the validation process fail, this value will be returned by -** FM to cFE Table Services and displayed in an event message. -** -** \par Limits: -** FM requires that this value be defined, but otherwise places -** no limits on the definition. Refer to cFE Table Services -** for limits related to error return values. -*/ -#define FM_TABLE_VALIDATION_ERR (0xCF000080L) - - -#endif /* FM_PLATFORM_CFG_H */ - -/************************/ -/* End of File Comment */ -/************************/ diff --git a/config/obc/ppd/inc/gps_platform_cfg.h b/config/obc/ppd/inc/gps_platform_cfg.h deleted file mode 100644 index 57e4df39d..000000000 --- a/config/obc/ppd/inc/gps_platform_cfg.h +++ /dev/null @@ -1,124 +0,0 @@ -#ifndef GPS_PLATFORM_CFG_H -#define GPS_PLATFORM_CFG_H - -#ifdef __cplusplus -extern "C" { -#endif - -#define GPS_CUSTOM_CHILD_TASK_FLAGS OS_ENABLE_CORE_0 - -/* -** GPS Platform Configuration Parameter Definitions -*/ - -/** \brief Mission specific version number for GPS application -** -** \par Description: -** An application version number consists of four parts: -** major version number, minor version number, revision -** number and mission specific revision number. The mission -** specific revision number is defined here and the other -** parts are defined in "amc_version.h". -** -** \par Limits: -** Must be defined as a numeric value that is greater than -** or equal to zero. -*/ -#define GPS_MISSION_REV (0) - -/** \brief Pipe depth for the Scheduler pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define GPS_SCH_PIPE_DEPTH (2) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define GPS_SCH_PIPE_NAME ("GPS_SCH_PIPE") - -/** \brief The SB pend behavior type for the Scheduler pipe. -** -** \par Limits: -** One of: CFE_SB_POLL, CFE_SB_PEND_FOREVER, or the -** number of milliseconds to wait for a new message (recommended). -** Note, using CFE_SB_PEND_FOREVER may cause an unresponsive -** application if no messages arrive on this pipe. -*/ -#define GPS_SCH_PIPE_PEND_TIME (2000) - -/** \brief The number of WAKEUP messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max limited to CFE_SB_MAX_PIPE_DEPTH-1. Note the -** GPS_READ_SENSOR_MID_MAX_MSG_COUNT and GPS_SEND_HK_MID_MAX_MSG_COUNT -** must be less than GPS_SCH_PIPE_DEPTH. -*/ -#define GPS_READ_SENSOR_MID_MAX_MSG_COUNT (1) - -/** \brief The number of SEND_HK messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. Note the -** GPS_READ_SENSOR_MID_MAX_MSG_COUNT and GPS_SEND_HK_MID_MAX_MSG_COUNT -** must be less than GPS_SCH_PIPE_DEPTH. -*/ -#define GPS_SEND_HK_MID_MAX_MSG_COUNT (1) - -/** \brief Pipe depth for the command pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define GPS_CMD_PIPE_DEPTH (4) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define GPS_CMD_PIPE_NAME ("GPS_CMD_PIPE") - -/** \brief Pipe depth for the data pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define GPS_DATA_PIPE_DEPTH (4) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define GPS_DATA_PIPE_NAME ("GPS_DATA_PIPE") - -/** \brief The config table default filename -** -** \par Limits: -** The length of each string, including the NULL terminator cannot exceed -** the #OS_MAX_PATH_LEN value. -*/ -#define GPS_CONFIG_TABLE_FILENAME ("/cf/apps/gps_config.tbl") - -/** \brief The timeout value, in milliseconds, to wait for ES application startup sync. -** -** \par Limits: -** This parameter must be at least 1000 (ms). -*/ -#define GPS_STARTUP_TIMEOUT_MSEC (1000) - - -#ifdef __cplusplus -} -#endif - -#endif /* GPS_PLATFORM_CFG_H */ - -/************************/ -/* End of File Comment */ -/************************/ - diff --git a/config/obc/ppd/inc/hk_msgids.h b/config/obc/ppd/inc/hk_msgids.h deleted file mode 100644 index ab602d518..000000000 --- a/config/obc/ppd/inc/hk_msgids.h +++ /dev/null @@ -1,11 +0,0 @@ -#ifndef HK_MSGIDS_H -#define HK_MSGIDS_H - - -#include "msg_ids.h" - -#endif /* HK_MSGIDS_H */ - -/************************/ -/* End of File Comment */ -/************************/ diff --git a/config/obc/ppd/inc/hk_platform_cfg.h b/config/obc/ppd/inc/hk_platform_cfg.h deleted file mode 100644 index bd46c7291..000000000 --- a/config/obc/ppd/inc/hk_platform_cfg.h +++ /dev/null @@ -1,123 +0,0 @@ -#ifndef HK_PLATFORM_CFG_H -#define HK_PLATFORM_CFG_H - - - -/************************************************************************* -** Macro definitions -**************************************************************************/ - -/** -** \hkcfg Application Pipe Depth -** -** \par Description: -** Dictates the pipe depth of the hk command pipe. -** -** \par Limits -** The minimum size of this paramater is 1 -** The maximum size dictated by cFE platform configuration -** parameter CFE_SB_MAX_PIPE_DEPTH -*/ -#define HK_PIPE_DEPTH 40 - - -/** -** \hkcfg Discard Incomplete Combo Packets -** -** \par Description: -** Dictates whether combo packets that have not had all data contents -** updated since last requested will be discarded (YES = 1) or sent -** anyway (NO = 0). -** -** \par Limits -** This parameter can be set to 0 or 1 only. -*/ -#define HK_DISCARD_INCOMPLETE_COMBO 0 - - -/** -** \hkcfg Maximum Number of HK Copy Table Entries -** -** \par Description: -** Dictates the number of elements in the hk copy table. -** -** \par Limits -** The maximum size of this paramater is 8192 -*/ -#define HK_COPY_TABLE_ENTRIES 128 - - -/** -** \hkcfg Number of bytes in the HK Memory Pool -** -** \par Description: -** The HK memory pool contains the memory needed for the output packets. -** The output packets are dynamically allocated from this pool when the -** HK copy table is initially processed or loaded with new data. -** -** \par Limits -** The Housekeeping app does not place a limit on this parameter, but there is -** an overhead cost in the memory pool. The value must be larger than what is -** needed. -*/ -#define HK_NUM_BYTES_IN_MEM_POOL (6 * 1024) - - -/** -** \hkcfg Name of the HK Copy Table -** -** \par Description: -** This parameter defines the name of the HK Copy Table. -** -** \par Limits -** The Housekeeping app does not place a limit on this parameter -*/ -#define HK_COPY_TABLE_NAME "CopyTable" - - -/** -** \hkcfg Name of the HK Run-time Table -** -** \par Description: -** This parameter defines the name of the HK Run-time Table. -** -** \par Limits -** The Housekeeping app does not place a limit on this parameter -*/ -#define HK_RUNTIME_TABLE_NAME "RuntimeTable" - - -/** -** \hkcfg HK Copy Table Filename -** -** \par Description: -** The value of this constant defines the filename of the HK Copy Table -** -** \par Limits -** The length of each string, including the NULL terminator cannot exceed -** the #OS_MAX_PATH_LEN value. -*/ - -#define HK_COPY_TABLE_FILENAME "/cf/apps/hk_cpy_tbl.tbl" - -/** \hkcfg Mission specific version number for HK application -** -** \par Description: -** An application version number consists of four parts: -** major version number, minor version number, revision -** number and mission specific revision number. The mission -** specific revision number is defined here and the other -** parts are defined in "hk_version.h". -** -** \par Limits: -** Must be defined as a numeric value that is greater than -** or equal to zero. -*/ -#define HK_MISSION_REV 0 - - -#endif /* HK_PLATFORM_CFG_H */ - -/************************/ -/* End of File Comment */ -/************************/ diff --git a/config/obc/ppd/inc/hmc5883_platform_cfg.h b/config/obc/ppd/inc/hmc5883_platform_cfg.h deleted file mode 100644 index 0a27fcb81..000000000 --- a/config/obc/ppd/inc/hmc5883_platform_cfg.h +++ /dev/null @@ -1,134 +0,0 @@ -#ifndef HMC5883_PLATFORM_CFG_H -#define HMC5883_PLATFORM_CFG_H - -#ifdef __cplusplus -extern "C" { -#endif - -/* -** HMC5883 Platform Configuration Parameter Definitions -*/ - -/** \brief Mission specific version number for HMC5883 application -** -** \par Description: -** An application version number consists of four parts: -** major version number, minor version number, revision -** number and mission specific revision number. The mission -** specific revision number is defined here and the other -** parts are defined in "amc_version.h". -** -** \par Limits: -** Must be defined as a numeric value that is greater than -** or equal to zero. -*/ -#define HMC5883_MISSION_REV (0) - -/** \brief Pipe depth for the Scheduler pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define HMC5883_SCH_PIPE_DEPTH (2) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define HMC5883_SCH_PIPE_NAME ("HMC5883_SCH_PIPE") - -/** \brief The SB pend behavior type for the Scheduler pipe. -** -** \par Limits: -** One of: CFE_SB_POLL, CFE_SB_PEND_FOREVER, or the -** number of milliseconds to wait for a new message (recommended). -** Note, using CFE_SB_PEND_FOREVER may cause an unresponsive -** application if no messages arrive on this pipe. -*/ -#define HMC5883_SCH_PIPE_PEND_TIME (2000) - -/** \brief The number of WAKEUP messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max limited to CFE_SB_MAX_PIPE_DEPTH-1. Note the -** HMC5883_WAKEUP_MID_MAX_MSG_COUNT and HMC5883_SEND_HK_MID_MAX_MSG_COUNT -** must be less than HMC5883_SCH_PIPE_DEPTH. -*/ -#define HMC5883_WAKEUP_MID_MAX_MSG_COUNT (1) - -/** \brief The number of SEND_HK messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. Note the -** HMC5883_WAKEUP_MID_MAX_MSG_COUNT and HMC5883_SEND_HK_MID_MAX_MSG_COUNT -** must be less than HMC5883_SCH_PIPE_DEPTH. -*/ -#define HMC5883_SEND_HK_MID_MAX_MSG_COUNT (1) - -/** \brief Pipe depth for the command pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define HMC5883_CMD_PIPE_DEPTH (4) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define HMC5883_CMD_PIPE_NAME ("HMC5883_CMD_PIPE") - -/** \brief Pipe depth for the data pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define HMC5883_DATA_PIPE_DEPTH (4) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define HMC5883_DATA_PIPE_NAME ("HMC5883_DATA_PIPE") - -/** \brief The config table default filename -** -** \par Limits: -** The length of each string, including the NULL terminator cannot exceed -** the #OS_MAX_PATH_LEN value. -*/ -#define HMC5883_CONFIG_TABLE_FILENAME ("/cf/apps/hmc5883_config.tbl") - -/** \brief The timeout value, in milliseconds, to wait for ES application startup sync. -** -** \par Limits: -** This parameter must be at least 1000 (ms). -*/ -#define HMC5883_STARTUP_TIMEOUT_MSEC (1000) - -/** \brief Mag divider for calculated scaling */ -#define HMC5883_MAG_DIVIDER (820.0f) - -/** \brief Mag unit for calculated scaling */ -#define HMC5883_MAG_UNIT (1.0f) - -/** \brief Precalculated mag range */ -#define HMC5883_CALC_MAG_RANGE (1.9f) - -/** \brief Precalculated mag scaling */ -#define HMC5883_CALC_MAG_SCALING (HMC5883_MAG_UNIT / HMC5883_MAG_DIVIDER) - - -#ifdef __cplusplus -} -#endif - -#endif /* HMC5883_PLATFORM_CFG_H */ - -/************************/ -/* End of File Comment */ -/************************/ - diff --git a/config/obc/ppd/inc/hs_msgids.h b/config/obc/ppd/inc/hs_msgids.h deleted file mode 100644 index 8db455fb4..000000000 --- a/config/obc/ppd/inc/hs_msgids.h +++ /dev/null @@ -1,10 +0,0 @@ -#ifndef HS_MSGIDS_H -#define HS_MSGIDS_H - -#include "msg_ids.h" - -#endif /*HS_MSGIDS_H*/ - -/************************/ -/* End of File Comment */ -/************************/ diff --git a/config/obc/ppd/inc/hs_platform_cfg.h b/config/obc/ppd/inc/hs_platform_cfg.h deleted file mode 100644 index 1c18853e0..000000000 --- a/config/obc/ppd/inc/hs_platform_cfg.h +++ /dev/null @@ -1,606 +0,0 @@ -#ifndef HS_PLATFORM_CFG_H -#define HS_PLATFORM_CFG_H - -/** \hscfg Application Name -** -** \par Description: -** This definition must match the name used at startup by the cFE -** Executive Services when creating the HS application. Note that -** application names are also an argument to certain cFE commands. -** For example, the application name is needed to access tables -** via cFE Table Services commands. -** -** \par Limits: -** HS requires that this name be defined, but otherwise places -** no limits on the definition. Refer to CFE Executive Services -** for specific information on limits related to application names. -*/ -#define HS_APP_NAME "HS" - -/**\hscfg Idle Task Configuration Parameters (custom) -** -** \par Description: -** These parameters are used by #CFE_ES_CreateChildTask -** Note that these values are only necessarily relevant in the -** default hs_custom.c. -** -** \par Limits: -** These limits will vary by platform and available resources. -*/ -#define HS_IDLE_TASK_NAME "HS_IDLE_TASK" -#define HS_IDLE_TASK_STACK_PTR 0 -#define HS_IDLE_TASK_STACK_SIZE 4096 -#define HS_IDLE_TASK_FLAGS 0 - -/**\hscfg Idle Task Priority (custom) -** -** \par Description: -** This parameter is used to set the priority of the Idle Task. It should -** be higher than all other user created tasks, but may need to be set lower -** than the maximum value if an OS uses its own minimum priority task. -** Note that these values are only necessarily relevant in the -** default hs_custom.c. -** -** \par Limits: -** This parameter can't be larger than 255. -*/ -#define HS_IDLE_TASK_PRIORITY 255 - -/** \hscfg Maximum reported execution counters -** -** \par Description: -** Maximum number of execution counters that can be -** specified to be reported in telemetry. -** -** \par Limits: -** This parameter can't be larger than an unsigned 32 bit -** integer (4294967295). -** -** This parameter will dictate the size of the Execution -** Counter Table (XCT): -** -** XCT Size = HS_MAX_EXEC_CNT_SLOTS * sizeof(#HS_XCTEntry_t) -** -** The total size of this table should not exceed the -** cFE size limit for a single buffered table set by the -** #CFE_TBL_MAX_SNGL_TABLE_SIZE parameter -*/ -#define HS_MAX_EXEC_CNT_SLOTS 32 - -/** \hscfg Maximum message action types -** -** \par Description: -** Maximum number of Message Action action types. -** -** \par Limits: -** This parameter can't be larger than 4 less than an -** unsigned 16 bit integer (65531). -** -** This parameter must be greater than 0. -** -** This parameter will influence the size of the Message -** Action Table (MAT): -** -** MAT Size = HS_MAX_MSG_ACT_TYPES * (HS_MAX_MSG_ACT_SIZE + 4) -** -** The total size of this table should not exceed the -** cFE size limit for a single buffered table set by the -** #CFE_TBL_MAX_SNGL_TABLE_SIZE parameter -*/ -#define HS_MAX_MSG_ACT_TYPES 8 - -/** \hscfg Maximum message action size (in bytes) -** -** \par Description: -** Size in bytes of maximum length of software bus message that -** can be sent using a Message Action action type. -** -** \par Limits: -** This parameter can't be larger than #CFE_SB_MAX_SB_MSG_SIZE -** -** This parameter can't be smaller than a packet header -** -** This parameter will influence the size of the Message -** Action Table (MAT): -** -** MAT Size = HS_MAX_MSG_ACT_TYPES * (HS_MAX_MSG_ACT_SIZE + 4) -** -** The total size of this table should not exceed the -** cFE size limit for a single buffered table set by the -** #CFE_TBL_MAX_SNGL_TABLE_SIZE parameter -*/ -#define HS_MAX_MSG_ACT_SIZE 16 - -/** \hscfg Maximum number of monitored applications -** -** \par Description: -** Maximum number of applications that can be -** monitored to assure check-ins -** -** \par Limits: -** This parameter can't be larger than an unsigned 32 bit -** integer (4294967295). -** -** This parameter must be greater than 0. -** -** This parameter will dictate the size of the Application -** Monitor Table (AMT): -** -** AMT Size = HS_MAX_MONITORED_APPS * sizeof(#HS_AMTEntry_t) -** -** The total size of this table should not exceed the -** cFE size limit for a single buffered table set by the -** #CFE_TBL_MAX_SNGL_TABLE_SIZE parameter -*/ -#define HS_MAX_MONITORED_APPS 32 - -/** \hscfg Maximum number of monitored events -** -** \par Description: -** Maximum number of events that can be -** monitored -** -** \par Limits: -** This parameter can't be larger than an unsigned 32 bit -** integer (4294967295). -** -** This parameter must be greater than 0. -** -** This parameter will dictate the size of the Event -** Monitor Table (EMT): -** -** EMT Size = HS_MAX_MONITORED_EVENTS * sizeof(#HS_EMTEntry_t) -** -** The total size of this table should not exceed the -** cFE size limit for a single buffered table set by the -** #CFE_TBL_MAX_SNGL_TABLE_SIZE parameter -*/ -#define HS_MAX_MONITORED_EVENTS 16 - -/** \hscfg Watchdog Timeout Value -** -** \par Description: -** Number of milliseconds before a watchdog timeout occurs. -** -** \par Limits: -** This parameter can't be larger than an unsigned 32 bit -** integer (4294967295). -** -** This parameter must be greater than 0. -*/ -#define HS_WATCHDOG_TIMEOUT_VALUE 10000 - -/** -** \hscfg Time to wait after performing processing (in milliseconds) -** -** \par Description: -** Dictates the length of a task delay performed prior to checking -** the Software Bus for a Wakeup Message. This ensures that HS will -** run no more often than a certain rate. If this parameter is set to 0, -** no task delay will be performed. Time is in milliseconds. -** -** \par Limits -** This parameter can't be larger than an unsigned 32 bit -** integer (4294967295). -*/ -#define HS_POST_PROCESSING_DELAY 0 - -/** -** \hscfg Wakeup Message Software Bus Timeout -** -** \par Description: -** This parameter is passed into #CFE_SB_RcvMsg as the timeout value. -** It can specify #CFE_SB_POLL, #CFE_SB_PEND_FOREVER, or a timeout -** value in milliseconds. -** -** \par Limits -** This Parameter must be #CFE_SB_POLL, #CFE_SB_PEND_FOREVER, -** or greater than 0 and less than 2^31 - 1 -** -** As a timeout, this parameter should be less than -** (#HS_WATCHDOG_TIMEOUT_VALUE * 1000) - HS runtime in ms -** otherwise HS may not be able to service the watchdog in time. -*/ -#define HS_WAKEUP_TIMEOUT 1200 - -/** \hscfg CPU aliveness output string -** -** \par Description: -** String that is output to via #OS_printf periodically if aliveness -** is enabled. -** -** \par Limits: -** None. -** -*/ -#define HS_CPU_ALIVE_STRING "." - -/** \hscfg CPU aliveness output period -** -** \par Description: -** Rate in number of HS cycles at which the HS_CPU_ALIVE_STRING -** is output via the UART. -** -** \par Limits: -** This parameter can't be larger than an unsigned 32 bit -** integer (4294967295). -** -*/ -#define HS_CPU_ALIVE_PERIOD 5 - -/** \hscfg Max Number of Processor Resets that may be performed by HS -** -** \par Description: -** Maximum number of times that the HS App will attempt a processor -** reset as the result of either an Application Monitor or -** Event Monitor Failure -** -** \par Limits: -** This parameter can't be larger than an unsigned 16 bit -** integer (65535). -** -** Although not enforced, if this parameter is greater than or -** equal to #CFE_ES_MAX_PROCESSOR_RESETS then a POWER-ON reset -** will occur before the max count is reached, resetting the remaining -** actions to the value set here. -** -*/ -#define HS_MAX_RESTART_ACTIONS 3 - -/** \hscfg Software bus command pipe depth -** -** \par Description: -** Depth of the software bus pipe HS uses for commands and HK requests. -** Used during initialization in the call to #CFE_SB_CreatePipe -** -** \par Limits: -** This parameter can't be larger than #CFE_SB_MAX_PIPE_DEPTH -** -** This parameter must be greater than 0. -*/ -#define HS_CMD_PIPE_DEPTH 12 - -/** \hscfg Software bus event pipe depth -** -** \par Description: -** Depth of the software bus pipe HS uses for event monitoring. -** This should be set to supply sufficient room for the expected event -** message load per second. Used during initialization in the call to -** #CFE_SB_CreatePipe -** -** \par Limits: -** This parameter can't be larger than #CFE_SB_MAX_PIPE_DEPTH -** -** This parameter must be greater than 0. -*/ -#define HS_EVENT_PIPE_DEPTH 32 - -/** \hscfg Software bus wakeup pipe depth -** -** \par Description: -** Depth of the software bus pipe HS uses for wakeup messages. -** Used during initialization in the call to #CFE_SB_CreatePipe -** -** \par Limits: -** This parameter can't be larger than #CFE_SB_MAX_PIPE_DEPTH -** -** This parameter must be greater than 0. -*/ -#define HS_WAKEUP_PIPE_DEPTH 1 - -/** -** \hscfg Time to wait before a processor reset (in milliseconds) -** -** \par Description: -** Dictates the length of the task delay (milliseconds) performed prior -** to calling #CFE_ES_ResetCFE to allow for any event message to go out. -** -** \par Limits -** This parameter can't be larger than an unsigned 32 bit -** integer (4294967295). -*/ -#define HS_RESET_TASK_DELAY 50 - -/** -** \hscfg Time to wait for all apps to be started (in milliseconds) -** -** \par Description: -** Dictates the timeout for the #CFE_ES_WaitForStartupSync call that -** HS uses to wait for all of the Applications specified in the startup -** script to finish initialization. HS will wait this amount of time -** before assuming all startup script applications have been started and -** will then begin nominal processing. -** -** \par Limits -** This parameter can't be larger than an unsigned 32 bit -** integer (4294967295). -** -** This should be greater than or equal to the Startup Sync timeout for -** any application in the Application Monitor Table. -*/ -#define HS_STARTUP_SYNC_TIMEOUT 65000 - -/** \hscfg Default State of the Application Monitor -** -** \par Description: -** State the Application Monitor is set to when the HS -** application starts. -** -** \par Limits: -** Must be HS_STATE_ENABLED or HS_STATE_DISABLED -*/ -#define HS_APPMON_DEFAULT_STATE HS_STATE_ENABLED - -/** \hscfg Default State of the Event Monitor -** -** \par Description: -** State the Event Monitor is set to when the HS -** application starts. -** -** \par Limits: -** Must be HS_STATE_ENABLED or HS_STATE_DISABLED -*/ -#define HS_EVENTMON_DEFAULT_STATE HS_STATE_ENABLED - -/** \hscfg Default State of the Aliveness Indicator -** -** \par Description: -** State the Aliveness Indicator is set to when the HS application -** starts. -** -** \par Limits: -** Must be HS_STATE_ENABLED or HS_STATE_DISABLED -*/ -#define HS_ALIVENESS_DEFAULT_STATE HS_STATE_ENABLED - -/** \hscfg Default State of the CPU Hogging Indicator -** -** \par Description: -** State the CPU Hogging Event Message is set to when the HS application -** starts. -** -** \par Limits: -** Must be HS_STATE_ENABLED or HS_STATE_DISABLED -*/ -#define HS_CPUHOG_DEFAULT_STATE HS_STATE_ENABLED - -/** \hscfg Application Monitor Table (AMT) filename -** -** \par Description: -** Default file to load the Applications Monitor Table from -** during a power-on reset sequence -** -** \par Limits: -** This string shouldn't be longer than #OS_MAX_PATH_LEN for the -** target platform in question -*/ -#define HS_AMT_FILENAME "/cf/apps/hs_amt.tbl" - -/** \hscfg Event Monitor Table (EMT) filename -** -** \par Description: -** Default file to load the Event Monitor Table from -** during a power-on reset sequence -** -** \par Limits: -** This string shouldn't be longer than #OS_MAX_PATH_LEN for the -** target platform in question -*/ -#define HS_EMT_FILENAME "/cf/apps/hs_emt.tbl" - -/** \hscfg Execution Counter Table (XCT) filename -** -** \par Description: -** Default file to load the Execution Counters Table from -** during a power-on reset sequence -** -** \par Limits: -** This string shouldn't be longer than #OS_MAX_PATH_LEN for the -** target platform in question -*/ -#define HS_XCT_FILENAME "/cf/apps/hs_xct.tbl" - -/** \hscfg Message Actions Table (MAT) filename -** -** \par Description: -** Default file to load the Message Actions Table from -** during a power-on reset sequence -** -** \par Limits: -** This string shouldn't be longer than #OS_MAX_PATH_LEN for the -** target platform in question -*/ -#define HS_MAT_FILENAME "/cf/apps/hs_mat.tbl" - -/** \hscfg CPU Utilization Calls per Mark (custom) -** -** \par Description: -** Number of times the Mark function must be called before it actually -** marks the time. This influences the interval size. The function -** calling the Mark function may not run at the same rate as the HS cycle -** (or HS may not want to monitor utilization every cycle) so this the -** interval to be at least as long as an HS cycle. -** Note that these values are only necessarily relevant in the -** default hs_custom.c. -** -** \par Limits: -** This parameter can't be larger than an unsigned 32 bit -** integer (4294967295). -*/ -#define HS_UTIL_CALLS_PER_MARK 1 - -/** \hscfg CPU Utilization Cycles per Interval (custom) -** -** \par Description: -** Number of HS Cycles it takes to complete a CPU Utilization Interval. -** HS will monitor the utilization after this number of HS wakeup cycles. -** Note that these values are only necessarily relevant in the -** default hs_custom.c. -** -** \par Limits: -** This parameter can't be larger than an unsigned 32 bit -** integer (4294967295). -*/ -#define HS_UTIL_CYCLES_PER_INTERVAL 1 - -/** \hscfg CPU Utilization Total Utils Per Interval -** -** \par Description: -** Number of Utils (counts) equal to full utilization. This allows for higher -** resolution than percentages, and non decimal based values. -** -** \par Limits: -** This parameter can't be larger than an unsigned 32 bit -** integer (4294967295). -*/ -#define HS_UTIL_PER_INTERVAL_TOTAL 10000 - -/** \hscfg CPU Utilization Hogging Utils Per Interval -** -** \par Description: -** Number of Utils (counts) equal to utilization which is considered hogging -** during one interval. A greater number of counts is also considered hogging. -** -** \par Limits: -** This parameter can't be larger than #HS_UTIL_PER_INTERVAL_TOTAL. -*/ -#define HS_UTIL_PER_INTERVAL_HOGGING 9900 - -/** \hscfg CPU Utilization Conversion Factor Multiplication 1 (custom) -** -** \par Description: -** First multiplication conversion factor. Number of idle ticks is multiplied -** this value first when converting to utils. -** Note that these values are only necessarily relevant in the -** default hs_custom.c. -** -** \par Limits: -** There may be processor dependent limits on value. Note that all math -** is done using "uint32" values; it is important that the number -** of loop iterations in HS_IDLE, times this value, not overflow. -** -** The result of the conversion must be a 32 bit signed integer -** (between -2147483648 and 2147483647). -*/ -#define HS_UTIL_CONV_MULT1 1 - -/** \hscfg CPU Utilization Conversion Factor Division (custom) -** -** \par Description: -** Division conversion factor. Number of idle ticks is divided by this value -** after it has been multiplied by #HS_UTIL_CONV_MULT1. -** Note that these values are only necessarily relevant in the -** default hs_custom.c. -** -** \par Limits: -** There may be processor dependent limits on value. -** -** The result of the conversion must be a 32 bit signed integer -** (between -2147483648 and 2147483647). -*/ -#define HS_UTIL_CONV_DIV 1 - -/** \hscfg CPU Utilization Conversion Factor Multiplication 2 (custom) -** -** \par Description: -** Second multiplication conversion factor. Number of idle ticks is multiplied -** this value after being divided by #HS_UTIL_CONV_DIV after being multiplied by -** #HS_UTIL_CONV_MULT1 when converting to utils. -** Note that these values are only necessarily relevant in the -** default hs_custom.c. -** -** \par Limits: -** There may be processor dependent limits on value. -** -** The result of the conversion must be a 32 bit signed integer -** (between -2147483648 and 2147483647). -*/ -#define HS_UTIL_CONV_MULT2 1 - -/** \hscfg CPU Utilization Hogging Timeout -** -** \par Description: -** Number of intervals for which the hogging limit must be exceeded before hogging -** is reported. -** -** \par Limits: -** This parameter can't be larger than an unsigned 32 bit -** integer (4294967295). -*/ -#define HS_UTIL_HOGGING_TIMEOUT 5 - -/** \hscfg CPU Peak Utilization Number of Intervals -** -** \par Description: -** Number of intervals over which the peak utilization is determined. -** -** \par Limits: -** This parameter can't be larger than an unsigned 32 bit -** integer (4294967295). -** -** This parameter controls the size of the array which stores -** previously measured utilization values. -*/ -#define HS_UTIL_PEAK_NUM_INTERVAL 64 - -/** \hscfg CPU Average Utilization Number of Intervals -** -** \par Description: -** Number of intervals over which the average utilization is computed. -** -** \par Limits: -** This parameter can't be larger than #HS_UTIL_PEAK_NUM_INTERVAL . -*/ -#define HS_UTIL_AVERAGE_NUM_INTERVAL 4 - -/** \hscfg CPU Utilization Diagnostics Mask (custom) -** -** \par Description: -** Count mask for CPU Utilization Calibration. Time will be marked -** when (Counts & Mask) == Mask -** Note that these values are only necessarily relevant in the -** default hs_custom.c. -** -** \par Limits: -** This parameter can't be larger than an unsigned 32 bit -** integer (4294967295). -*/ -#define HS_UTIL_DIAG_MASK 0xFFFFFFFF - -/** \hscfg CPU Utilization Diagnostics Array Configuration (custom) -** -** \par Description: -** Time will be marked into an array of subseconds. The independant parameter -** controls the exponent to which 2 is raised to determine the array size. As -** such, large values will require significant memory usage. -** Note that these values are only necessarily relevant in the -** default hs_custom.c. -** -** \par Limits: -** This parameter must be less than 32 and may not be negative. -*/ -#define HS_UTIL_TIME_DIAG_ARRAY_POWER 4 -#define HS_UTIL_TIME_DIAG_ARRAY_LENGTH (1<<(HS_UTIL_TIME_DIAG_ARRAY_POWER)) -#define HS_UTIL_TIME_DIAG_ARRAY_MASK (HS_UTIL_TIME_DIAG_ARRAY_LENGTH - 1) - - -/** \hscfg Mission specific version number for HS application -** -** \par Description: -** An application version number consists of four parts: -** major version number, minor version number, revision -** number and mission specific revision number. The mission -** specific revision number is defined here and the other -** parts are defined in "hs_version.h". -** -** \par Limits: -** Must be defined as a numeric value that is greater than -** or equal to zero. -*/ -#define HS_MISSION_REV 0 - -#endif /*HS_PLATFORM_CFG_H*/ - -/************************/ -/* End of File Comment */ -/************************/ diff --git a/config/obc/ppd/inc/lc_msgids.h b/config/obc/ppd/inc/lc_msgids.h deleted file mode 100644 index 38f2e04f9..000000000 --- a/config/obc/ppd/inc/lc_msgids.h +++ /dev/null @@ -1,13 +0,0 @@ -#ifndef LC_MSGIDS_H -#define LC_MSGIDS_H - -#include "msg_ids.h" - -#define LC_ALL_ACTIONPOINTS 0xFFFF -#define LC_ALL_WATCHPOINTS 0xFFFF - -#endif /*LC_MSGIDS_H*/ - -/************************/ -/* End of File Comment */ -/************************/ diff --git a/config/obc/ppd/inc/lc_platform_cfg.h b/config/obc/ppd/inc/lc_platform_cfg.h deleted file mode 100644 index 3255f78b7..000000000 --- a/config/obc/ppd/inc/lc_platform_cfg.h +++ /dev/null @@ -1,224 +0,0 @@ -#ifndef LC_PLATFORM_CFG_H -#define LC_PLATFORM_CFG_H - -/** \lccfg Application Name -** -** \par Description: -** This definition must match the name used at startup by the cFE -** Executive Services when creating the LC application. Note that -** application names are also an argument to certain cFE commands. -** For example, the application name is needed to access tables -** via cFE Table Services commands. -** -** \par Limits: -** LC requires that this name be defined, but otherwise places -** no limits on the definition. Refer to CFE Executive Services -** for specific information on limits related to application names. -*/ -#define LC_APP_NAME "LC" - - -/** \lccfg Command Pipe Depth -** -** \par Description: -** Maximum number of messages that will be allowed in the -** LC command pipe at one time. Used during initialization -** in the call to #CFE_SB_CreatePipe -** -** \par Limits: -** This parameter can't be larger than an unsigned 16 bit -** integer (65535). -*/ -#define LC_PIPE_DEPTH 12 - -/** \lccfg Maximum number of watchpoints -** -** \par Description: -** Maximum number of watchpoints that can be defined in the -** Watchpoint Definition Table (WDT) -** -** \par Limits: -** This parameter can't be larger than 65520 (0xFFF0) because -** higher values are reserved for use as Reversh Polish -** operators. -** -** This parameter will dictate the size of the Watchpoint -** Definition Table: -** -** WDT Size = LC_MAX_WATCHPOINTS * sizeof(#LC_WDTEntry_t) -** -** The total size of this table should not exceed the -** cFE size limit for a single buffered table set by the -** #CFE_TBL_MAX_SNGL_TABLE_SIZE parameter -*/ -#define LC_MAX_WATCHPOINTS 176 - -/** \lccfg Maximum number of actionpoints -** -** \par Description: -** Maximum number of actionpoints that can be defined in the -** Actionpoint Definition Table (ADT) -** -** \par Limits: -** This parameter can't be larger than an unsigned 16 bit -** integer (65535). -** -** This parameter will dictate the size of the Actionpoint -** Definition Table: -** -** ADT Size = LC_MAX_ACTIONPOINTS * sizeof(#LC_ADTEntry_t) -** -** The total size of this table should not exceed the -** cFE size limit for a single buffered table set by the -** #CFE_TBL_MAX_SNGL_TABLE_SIZE parameter -*/ -#define LC_MAX_ACTIONPOINTS 176 - -/** \lccfg LC state after power-on reset -** -** \par Description: -** What operating state LC should initialize to after a power-on -** reset. -** -** \par Limits: -** This parameter must be one of the following: -** #LC_STATE_ACTIVE -** #LC_STATE_PASSIVE -** #LC_STATE_DISABLED -*/ -#define LC_STATE_POWER_ON_RESET LC_STATE_DISABLED - -/** \lccfg Save data to CDS compiler switch -** -** \par Description: -** Compile switch that tells LC that we should save data -** over a processor or application reset by using the -** Critical Data Store (CDS). -** Comment out or \#undef to force LC to do a default (power-on) -** initialization sequence on all restarts (this is the -** default case). -** -** \par Limits: -** n/a -*/ -/* #define LC_SAVE_TO_CDS */ - -/** \lccfg LC state when CDS is restored -** -** \par Description: -** What operating state LC should initialize to after successfully -** restoring information from the CDS after a processor or -** application reset. This is only used when #LC_SAVE_TO_CDS -** is set to TRUE, and provides a way to override any state LC -** may have been operating in prior to the reset occurring. -** -** \par Limits: -** This parameter must be one of the following: -** #LC_STATE_ACTIVE -** #LC_STATE_PASSIVE -** #LC_STATE_DISABLED -** #LC_STATE_FROM_CDS -*/ -#define LC_STATE_WHEN_CDS_RESTORED LC_STATE_FROM_CDS - -/** \lccfg Watchpoint Definition Table (WDT) filename -** -** \par Description: -** Default file to load the watchpoint definition table from -** during a power-on reset sequence -** -** \par Limits: -** This string shouldn't be longer than #OS_MAX_PATH_LEN for the -** target platform in question -*/ -#define LC_WDT_FILENAME "/cf/apps/lc_def_wdt.tbl" - -/** \lccfg Actionpoint Definition Table (ADT) filename -** -** \par Description: -** Default file to load the actionpoint definition table from -** during a power-on reset sequence -** -** \par Limits: -** This string shouldn't be longer than #OS_MAX_PATH_LEN for the -** target platform in question -*/ -#define LC_ADT_FILENAME "/cf/apps/lc_def_adt.tbl" - -/** \lccfg Maximum reverse polish (RPN) equation size -** -** \par Description: -** Maximum combined number of operators and operands that may -** exist in an actionpoint definition's reverse polish equation -** -** \par Limits: -** The LC app does not place a limit on this parameter. -** However, raising this value will increase the size of the -** Actionpoint Definition Table (ADT) -*/ -#define LC_MAX_RPN_EQU_SIZE 20 - -/** \lccfg Maximum actionpoint event text string size -** -** \par Description: -** Maximum length of the event message string that can specified -** in an actionpoint definition (including NUL terminator) -** -** \par Limits: -** LC appends the trailer text #LC_AP_EVENT_TAIL_STR to this -** string when reporting actionpoint failures. The size of this -** string is #LC_AP_EVENT_TAIL_LEN -** -** The total value of LC_MAX_ACTION_TEXT + #LC_AP_EVENT_TAIL_LEN -** should be less than #CFE_EVS_MAX_MESSAGE_LENGTH to avoid -** event message truncation -** -** Raising this value will also increase the size of the -** Actionpoint Definition Table (ADT) -*/ -#define LC_MAX_ACTION_TEXT 32 - -/** \lccfg Maximum valid ADT RTS ID -** -** \par Description: -** The maximum RTS ID that LC will allow during table -** validation in a Actionpoint Definition Table (ADT) entry -** -** \par Limits: -** This parameter can't be larger than an unsigned 16 bit -** integer (65535). -*/ -#define LC_MAX_VALID_ADT_RTSID 0xFFF0 - -/** \lccfg Floating Point Compare Tolerance -** -** \par Description: -** Difference between 2 floats that will still compare as - equal. The default value of (1.0e-25) was taken from - the GNC file mathconstants.h -** -** \par Limits: -** The LC app does not place a limit on this parameter. -*/ -#define LC_FLOAT_TOLERANCE (1.0e-25) - -/** \mmcfg Mission specific version number for LC application -** -** \par Description: -** An application version number consists of four parts: -** major version number, minor version number, revision -** number and mission specific revision number. The mission -** specific revision number is defined here and the other -** parts are defined in "lc_version.h". -** -** \par Limits: -** Must be defined as a numeric value that is greater than -** or equal to zero. -*/ -#define LC_MISSION_REV 0 - -#endif /*LC_PLATFORM_CFG_H*/ - -/************************/ -/* End of File Comment */ -/************************/ diff --git a/config/obc/ppd/inc/ld_platform_cfg.h b/config/obc/ppd/inc/ld_platform_cfg.h deleted file mode 100644 index 210a0bcf0..000000000 --- a/config/obc/ppd/inc/ld_platform_cfg.h +++ /dev/null @@ -1,122 +0,0 @@ -#ifndef LD_PLATFORM_CFG_H -#define LD_PLATFORM_CFG_H - -#ifdef __cplusplus -extern "C" { -#endif - -/* -** LD Platform Configuration Parameter Definitions -*/ - -/** \brief Mission specific version number for LD application -** -** \par Description: -** An application version number consists of four parts: -** major version number, minor version number, revision -** number and mission specific revision number. The mission -** specific revision number is defined here and the other -** parts are defined in "amc_version.h". -** -** \par Limits: -** Must be defined as a numeric value that is greater than -** or equal to zero. -*/ -#define LD_MISSION_REV (0) - -/** \brief Pipe depth for the Scheduler pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define LD_SCH_PIPE_DEPTH (15) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define LD_SCH_PIPE_NAME ("LD_SCH_PIPE") - -/** \brief The SB pend behavior type for the Scheduler pipe. -** -** \par Limits: -** One of: CFE_SB_POLL, CFE_SB_PEND_FOREVER, or the -** number of milliseconds to wait for a new message (recommended). -** Note, using CFE_SB_PEND_FOREVER may cause an unresponsive -** application if no messages arrive on this pipe. -*/ -#define LD_SCH_PIPE_PEND_TIME (2000) - -/** \brief The number of WAKEUP messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max limited to CFE_SB_MAX_PIPE_DEPTH-1. Note the -** LD_WAKEUP_MID_MAX_MSG_COUNT and LD_SEND_HK_MID_MAX_MSG_COUNT -** must be less than LD_SCH_PIPE_DEPTH. -*/ -#define LD_WAKEUP_MID_MAX_MSG_COUNT (1) - -/** \brief The number of SEND_HK messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. Note the -** LD_WAKEUP_MID_MAX_MSG_COUNT and LD_SEND_HK_MID_MAX_MSG_COUNT -** must be less than LD_SCH_PIPE_DEPTH. -*/ -#define LD_SEND_HK_MID_MAX_MSG_COUNT (1) - -/** \brief Pipe depth for the command pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define LD_CMD_PIPE_DEPTH (4) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define LD_CMD_PIPE_NAME ("LD_CMD_PIPE") - -/** \brief Pipe depth for the data pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define LD_DATA_PIPE_DEPTH (4) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define LD_DATA_PIPE_NAME ("LD_DATA_PIPE") - -/** \brief The config table default filename -** -** \par Limits: -** The length of each string, including the NULL terminator cannot exceed -** the #OS_MAX_PATH_LEN value. -*/ -#define LD_CONFIG_TABLE_FILENAME ("/cf/apps/ld_config.tbl") - -/** \brief The timeout value, in milliseconds, to wait for ES application startup sync. -** -** \par Limits: -** This parameter must be at least 1000 (ms). -*/ -#define LD_STARTUP_TIMEOUT_MSEC (1000) - - -#ifdef __cplusplus -} -#endif - -#endif /* LD_PLATFORM_CFG_H */ - -/************************/ -/* End of File Comment */ -/************************/ - diff --git a/config/obc/ppd/inc/lgc_platform_cfg.h b/config/obc/ppd/inc/lgc_platform_cfg.h deleted file mode 100644 index ee9701169..000000000 --- a/config/obc/ppd/inc/lgc_platform_cfg.h +++ /dev/null @@ -1,130 +0,0 @@ -#ifndef LGC_PLATFORM_CFG_H -#define LGC_PLATFORM_CFG_H - -#ifdef __cplusplus -extern "C" { -#endif - -/* -** LGC Platform Configuration Parameter Definitions -*/ - -/** \brief Mission specific version number for LGC application -** -** \par Description: -** An application version number consists of four parts: -** major version number, minor version number, revision -** number and mission specific revision number. The mission -** specific revision number is defined here and the other -** parts are defined in "amc_version.h". -** -** \par Limits: -** Must be defined as a numeric value that is greater than -** or equal to zero. -*/ -#define LGC_MISSION_REV (0) - -/** \brief Pipe depth for the Scheduler pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define LGC_SCH_PIPE_DEPTH (2) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define LGC_SCH_PIPE_NAME ("LGC_SCH_PIPE") - -/** \brief The SB pend behavior type for the Scheduler pipe. -** -** \par Limits: -** One of: CFE_SB_POLL, CFE_SB_PEND_FOREVER, or the -** number of milliseconds to wait for a new message (recommended). -** Note, using CFE_SB_PEND_FOREVER may cause an unresponsive -** application if no messages arrive on this pipe. -*/ -#define LGC_SCH_PIPE_PEND_TIME (2000) - -/** \brief The number of WAKEUP messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max limited to CFE_SB_MAX_PIPE_DEPTH-1. Note the -** LGC_WAKEUP_MID_MAX_MSG_COUNT and LGC_SEND_HK_MID_MAX_MSG_COUNT -** must be less than LGC_SCH_PIPE_DEPTH. -*/ -#define LGC_WAKEUP_MID_MAX_MSG_COUNT (1) - -/** \brief The number of SEND_HK messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. Note the -** LGC_WAKEUP_MID_MAX_MSG_COUNT and LGC_SEND_HK_MID_MAX_MSG_COUNT -** must be less than LGC_SCH_PIPE_DEPTH. -*/ -#define LGC_SEND_HK_MID_MAX_MSG_COUNT (1) - -/** \brief Pipe depth for the command pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define LGC_CMD_PIPE_DEPTH (4) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define LGC_CMD_PIPE_NAME ("LGC_CMD_PIPE") - -/** \brief Pipe depth for the data pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define LGC_DATA_PIPE_DEPTH (4) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define LGC_DATA_PIPE_NAME ("LGC_DATA_PIPE") - -/** \brief The config table default filename -** -** \par Limits: -** The length of each string, including the NULL terminator cannot exceed -** the #OS_MAX_PATH_LEN value. -*/ -#define LGC_CONFIG_TABLE_FILENAME ("/cf/apps/lgc_config.tbl") - -/** \brief The timeout value, in milliseconds, to wait for ES application startup sync. -** -** \par Limits: -** This parameter must be at least 1000 (ms). -*/ -#define LGC_STARTUP_TIMEOUT_MSEC (1000) - - -/** \brief The number of landing gear actuators. -** -** \par Limits: -** None. -*/ -#define LGC_MAX_GEAR_OUTPUTS (1) - - -#ifdef __cplusplus -} -#endif - -#endif /* LGC_PLATFORM_CFG_H */ - -/************************/ -/* End of File Comment */ -/************************/ - diff --git a/config/obc/ppd/inc/mac_platform_cfg.h b/config/obc/ppd/inc/mac_platform_cfg.h deleted file mode 100644 index 58a381b18..000000000 --- a/config/obc/ppd/inc/mac_platform_cfg.h +++ /dev/null @@ -1,113 +0,0 @@ -#ifndef MAC_PLATFORM_CFG_H -#define MAC_PLATFORM_CFG_H - -#ifdef __cplusplus -extern "C" { -#endif - -/* -** mac Platform Configuration Parameter Definitions -*/ - -/** \brief Mission specific version number for MAC application -** -** \par Description: -** An application version number consists of four parts: -** major version number, minor version number, revision -** number and mission specific revision number. The mission -** specific revision number is defined here and the other -** parts are defined in "mac_version.h". -** -** \par Limits: -** Must be defined as a numeric value that is greater than -** or equal to zero. -*/ -#define MAC_MISSION_REV (0) - -/** \brief Pipe depth for the Scheduler pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define MAC_SCH_PIPE_DEPTH (15) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define MAC_SCH_PIPE_NAME ("MAC_SCH_PIPE") - -/** \brief The SB pend behavior type for the Scheduler pipe. -** -** \par Limits: -** One of: CFE_SB_POLL, CFE_SB_PEND_FOREVER, or the -** number of milliseconds to wait for a new message (recommended). -** Note, using CFE_SB_PEND_FOREVER may cause an unresponsive -** application if no messages arrive on this pipe. -*/ -#define MAC_SCH_PIPE_PEND_TIME (2000) - -/** \brief The number of WAKEUP messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max limited to CFE_SB_MAX_PIPE_DEPTH-1. Note the -** MAC_SCH_PIPE_WAKEUP_RESERVED and MAC_SCH_PIPE_SEND_HK_RESERVED -** must be less than MAC_SCH_PIPE_DEPTH. -*/ -#define MAC_SCH_PIPE_WAKEUP_RESERVED (1) - -/** \brief The number of SEND_HK messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. Note the -** MAC_SCH_PIPE_WAKEUP_RESERVED and MAC_SCH_PIPE_SEND_HK_RESERVED -** must be less than MAC_SCH_PIPE_DEPTH. -*/ -#define MAC_SCH_PIPE_SEND_HK_RESERVED (1) - -/** \brief Pipe depth for the command pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define MAC_CMD_PIPE_DEPTH (15) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define MAC_CMD_PIPE_NAME ("MAC_CMD_PIPE") - -/** \brief The config table default filename -** -** \par Limits: -** The length of each string, including the NULL terminator cannot exceed -** the #OS_MAX_PATH_LEN value. -*/ -#define MAC_PARAM_TABLE_FILENAME ("/cf/apps/mac_param.tbl") - -/** \brief The timeout value, in milliseconds, to wait for ES application startup sync. -** -** \par Limits: -** This parameter must be at least 1000 (ms). -*/ -#define MAC_STARTUP_TIMEOUT_MSEC (1000) - -/* TODO: Add Doxygen markup. */ -#define MAC_CUSTOM_DEV_PATH "/tmp/ttyS0" - -#define MAC_MAX_MOTOR_OUTPUTS (16) - - -#ifdef __cplusplus -} -#endif - -#endif /* MAC_PLATFORM_CFG_H */ - -/************************/ -/* End of File Comment */ -/************************/ - diff --git a/config/obc/ppd/inc/mavlink_platform_cfg.h b/config/obc/ppd/inc/mavlink_platform_cfg.h deleted file mode 100644 index 915ab2abf..000000000 --- a/config/obc/ppd/inc/mavlink_platform_cfg.h +++ /dev/null @@ -1,150 +0,0 @@ -#ifndef MAVLINK_PLATFORM_CFG_H -#define MAVLINK_PLATFORM_CFG_H - -#ifdef __cplusplus -extern "C" { -#endif - -/* -** ci Platform Configuration Parameter Definitions -*/ - -/** \brief Mission specific version number for MAVLINK application -** -** \par Description: -** An application version number consists of four parts: -** major version number, minor version number, revision -** number and mission specific revision number. The mission -** specific revision number is defined here and the other -** parts are defined in "ci_version.h". -** -** \par Limits: -** Must be defined as a numeric value that is greater than -** or equal to zero. -*/ -#define MAVLINK_MISSION_REV (0) - -/** \brief Pipe depth for the Scheduler pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define MAVLINK_SCH_PIPE_DEPTH (2) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define MAVLINK_SCH_PIPE_NAME ("MAVLINK_SCH_PIPE") - -/** \brief The SB pend behavior type for the Scheduler pipe. -** -** \par Limits: -** One of: CFE_SB_POLL, CFE_SB_PEND_FOREVER, or the -** number of milliseconds to wait for a new message (recommended). -** Note, using CFE_SB_PEND_FOREVER may cause an unresponsive -** application if no messages arrive on this pipe. -*/ -#define MAVLINK_SCH_PIPE_PEND_TIME (2000) - -/** \brief The number of WAKEUP messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max limited to CFE_SB_MAX_PIPE_DEPTH-1. Note the -** MAVLINK_SCH_PIPE_WAKEUP_RESERVED and MAVLINK_SCH_PIPE_SEND_HK_RESERVED -** must be less than MAVLINK_SCH_PIPE_DEPTH. -*/ -#define MAVLINK_SCH_PIPE_WAKEUP_RESERVED (1) - -/** \brief The number of SEND_HK messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. Note the -** MAVLINK_SCH_PIPE_WAKEUP_RESERVED and MAVLINK_SCH_PIPE_SEND_HK_RESERVED -** must be less than MAVLINK_SCH_PIPE_DEPTH. -*/ -#define MAVLINK_SCH_PIPE_SEND_HK_RESERVED (1) - -/** \brief The number of PROCESS_TIMEOUT messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define MAVLINK_SCH_PIPE_PROC_TIMEOUT_RESERVED (1) - -/** \brief Pipe depth for the command pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define MAVLINK_CMD_PIPE_DEPTH (CFE_SB_MAX_PIPE_DEPTH) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define MAVLINK_CMD_PIPE_NAME ("MAVLINK_CMD_PIPE") - -/** \brief Pipe depth for the data pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define MAVLINK_DATA_PIPE_DEPTH (4) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define MAVLINK_DATA_PIPE_NAME ("MAVLINK_DATA_PIPE") - -/** \brief The config table default filename -** -** \par Limits: -** The length of each string, including the NULL terminator cannot exceed -** the #OS_MAX_PATH_LEN value. -*/ -#define MAVLINK_ACTION_MAP_TABLE_FILENAME ("/cf/apps/mavlink_action.tbl") - -/** \brief The timeout table default filename -** -** \par Limits: -** The length of each string, including the NULL terminator cannot exceed -** the #OS_MAX_PATH_LEN value. -*/ -#define MAVLINK_TIMEOUT_TABLE_FILENAME ("/cf/apps/mavlink_timeout.tbl") - -/** \brief The timeout value, in milliseconds, to wait for ES application startup sync. -** -** \par Limits: -** This parameter must be at least 1000 (ms). -*/ -#define MAVLINK_STARTUP_TIMEOUT_MSEC (5000) - - -#define MAVLINK_MSG_PARAM_NAME_LEN (64) - -#define MAVLINK_SYSTEM_ID (1) -#define MAVLINK_COMPONENT_ID (1) -#define MAVLINK_GCS_IP ("10.10.0.13") -#define MAVLINK_GCS_PORT (14550) -#define MAVLINK_PASSTHRU_IP_SRC ("127.0.0.1") -#define MAVLINK_PASSTHRU_INGEST_PORT (14550) - -#define MAVLINK_ACTION_MAP_ENTRIES (10) -#define MAVLINK_HEARTBEAT_WAIT_CYCLES (5) - - -#ifdef __cplusplus -} -#endif - -#endif /* MAVLINK_PLATFORM_CFG_H */ - -/************************/ -/* End of File Comment */ -/************************/ - diff --git a/config/obc/ppd/inc/md_msgids.h b/config/obc/ppd/inc/md_msgids.h deleted file mode 100644 index a7d484c5d..000000000 --- a/config/obc/ppd/inc/md_msgids.h +++ /dev/null @@ -1,10 +0,0 @@ -#ifndef MD_MSGIDS_H -#define MD_MSGIDS_H - -#include "msg_ids.h" - -#endif /*MD_MSGIDS_H*/ - -/************************/ -/* End of File Comment */ -/************************/ diff --git a/config/obc/ppd/inc/md_platform_cfg.h b/config/obc/ppd/inc/md_platform_cfg.h deleted file mode 100644 index b84ababdc..000000000 --- a/config/obc/ppd/inc/md_platform_cfg.h +++ /dev/null @@ -1,99 +0,0 @@ -#ifndef MD_PLATFORM_CFG_H -#define MD_PLATFORM_CFG_H - - -/************************************************************************* -** Macro Definitions -*************************************************************************/ - -/** -** \name MD Command Pipe Parameters */ -/** \{ */ -#define MD_PIPE_NAME "MD_CMD_PIPE" -#define MD_PIPE_DEPTH 50 -/** \} */ - - -/** \mdcfg Memory Dwell Base Filename -** -** \par Description: -** Default base name and location for Memory Dwell filenames -** AppInit will append 01,02,03, up to number of tables. -** -** \par Limits: -** This string shouldn't be longer than #OS_MAX_PATH_LEN for the -** target platform in question -*/ -#define MD_TBL_FILENAME_FORMAT "/cf/apps/md_dw\%02d.tbl" - -/** -** \mdcfg Number of memory dwell tables. -** -** \par Limits -** Acceptable values for this parameter are 1 to 16. -*/ -#define MD_NUM_DWELL_TABLES 4 - -/** -** \mdcfg Maximum number of dwell specifications (address/delay/length) -** in a Dwell Table. -** -** \par Limits -** The maximum value for this parameter is limited by its effect -** on the MD_DwellTableLoad_t and associated data points, limiting -** it to 65535 points. -*/ -#define MD_DWELL_TABLE_SIZE 25 - -/** -** \mdcfg Option of whether 32 bit integers must be aligned to 32 bit -** boundaries. 1 indicates 'yes' (32-bit boundary alignment enforced), -** 0 indicates 'no' (16-bit boundary alignment enforced). -** -** \par Limits -** Value must be 0 or 1. -*/ -#define MD_ENFORCE_DWORD_ALIGN 1 - -/** -** \mdcfg Option of whether a signature field will be reserved in -** dwell packets. 1 indicates 'yes', 0 indicates 'no'. -** -** \par Limits -** Value must be 0 or 1. -*/ -#define MD_SIGNATURE_OPTION 1 - -/** -** \mdcfg Number of characters used in the Signature Field -** -** \par Limits -** Signature field length needs to be a multiple of 4 so that -** dwell packet is a multiple of 4 bytes and no compiler padding -** will occur. Note that the final character of the signature string -** must be a null character, so the effective length of user definable -** characters is one less than the defined length. The length -** specified must therefore be at least 4. -*/ -#define MD_SIGNATURE_FIELD_LENGTH 32 - -/** \mdcfg Mission specific version number for MD application -** -** \par Description: -** An application version number consists of four parts: -** major version number, minor version number, revision -** number and mission specific revision number. The mission -** specific revision number is defined here and the other -** parts are defined in "md_version.h". -** -** \par Limits: -** Must be defined as a numeric value that is greater than -** or equal to zero. -*/ -#define MD_MISSION_REV 0 - -#endif /* MD_PLATFORM_CFG_H */ - -/************************/ -/* End of File Comment */ -/************************/ diff --git a/config/obc/ppd/inc/mm_msgids.h b/config/obc/ppd/inc/mm_msgids.h deleted file mode 100644 index be3104f3a..000000000 --- a/config/obc/ppd/inc/mm_msgids.h +++ /dev/null @@ -1,10 +0,0 @@ -#ifndef MM_MSGIDS_H -#define MM_MSGIDS_H - -#include "msg_ids.h" - -#endif /*MM_MSGIDS_H*/ - -/************************/ -/* End of File Comment */ -/************************/ diff --git a/config/obc/ppd/inc/mm_platform_cfg.h b/config/obc/ppd/inc/mm_platform_cfg.h deleted file mode 100644 index 8ce3bec71..000000000 --- a/config/obc/ppd/inc/mm_platform_cfg.h +++ /dev/null @@ -1,399 +0,0 @@ -#ifndef MM_PLATFORM_CFG_H -#define MM_PLATFORM_CFG_H - -/** -** \mmcfg Memory Managment File -- cFE file header sub-type -** -** \par Description: -** This parameter defines the value that is used -** to identify a Memory Management file. -** -** \par Limits: -** The file header data type for the value is 32 bits unsigned, -** thus the value can be anything from zero to 4,294,967,295. -** (limit is not verified) -*/ -#define MM_CFE_HDR_SUBTYPE 0x4D4D5354 - - -/** -** \mmcfg Memory Management File -- cFE file header description -** -** \par Description: -** This parameter defines the text string that -** may be used to identify Memory Management files. -** -** \par Limits: -** The string length (including string terminator) cannot exceed -** #CFE_FS_HDR_DESC_MAX_LEN. (limit is not verified) -*/ -#define MM_CFE_HDR_DESCRIPTION "Memory Manager dump file" - - -/** \mmcfg Maximum number of bytes for a file load to RAM memory -** -** \par Description: -** Maximum number of bytes that can be loaded into RAM from a -** single load file. -** -** \par Limits: -** The MM app does not place a limit on this parameter. -** However, setting this value to a large number will increase -** the likelyhood of MM being late responding to housekeeping -** requests since it cannot process such a request while a load -** or dump is in progress. -*/ -#define MM_MAX_LOAD_FILE_DATA_RAM (1024*1024) - -/** \mmcfg Maximum number of bytes for a file load to EEPROM memory -** -** \par Description: -** Maximum number of bytes that can be loaded into EEPROM from a -** single load file. -** -** \par Limits: -** The MM app does not place a limit on this parameter. -** However, setting this value to a large number will increase -** the likelyhood of MM being late responding to housekeeping -** requests since it cannot process such a request while a load -** or dump is in progress. -*/ -#define MM_MAX_LOAD_FILE_DATA_EEPROM (128*1024) - -/** \mmcfg Maximum number of bytes for an uninterruptable load -** -** \par Description: -** Maximum number of bytes that can be loaded with the -** "memory load with interrupts disabled" (#MM_LOAD_MEM_WID_CC) -** command. -** -** \par Limits: -** This parameter is limited to the size of an uint8 which -** is the data type used to specify the number of bytes to -** load in the command message. -* -** If this data type is made bigger, changing this value to a -** large number will increase the amount of time interrupts are -** disabled during the load. It should also be kept small enough -** to avoid packet segmentation for the command protocal being -** used. -*/ -#define MM_MAX_UNINTERRUPTABLE_DATA 200 - -/** \mmcfg Maximum number of bytes per load data segment -** -** \par Description: -** Maximum number of bytes MM will load per task cycle -** to prevent CPU hogging (segmented load). -** -** \par Limits: -** The MM app does not place a limit on this parameter. -** However, setting this value to a large number will decrease -** the amount of time available for other tasks to execute and -** increase MM CPU utilization during load operations. -*/ -#define MM_MAX_LOAD_DATA_SEG 200 - -/** \mmcfg Maximum number of bytes for a file dump from RAM memory -** -** \par Description: -** Maximum number of bytes that can be dumped from RAM into a -** single dump file. -** -** \par Limits: -** The MM app does not place a limit on this parameter. -** However, setting this value to a large number will increase -** the likelyhood of MM being late responding to housekeeping -** requests since it cannot process such a request while a load -** or dump is in progress. -*/ -#define MM_MAX_DUMP_FILE_DATA_RAM (1024*1024) - -/** \mmcfg Maximum number of bytes for a file dump from EEPROM memory -** -** \par Description: -** Maximum number of bytes that can be dumped from EEPROM into a -** single dump file. -** -** \par Limits: -** The MM app does not place a limit on this parameter. -** However, setting this value to a large number will increase -** the likelyhood of MM being late responding to housekeeping -** requests since it cannot process such a request while a load -** or dump is in progress. -*/ -#define MM_MAX_DUMP_FILE_DATA_EEPROM (128*1024) - -/** \mmcfg Maximum number of bytes for a symbol table file dump -** -** \par Description: -** Maximum number of bytes that can be dumped from the symbol table -** into a single dump file. -** -** \par Limits: -** The MM app does not place a limit on this parameter. -** However, setting this value to a large number will impact -** the OSAL since it is responsible for generating the dump file. -*/ -#define MM_MAX_DUMP_FILE_DATA_SYMTBL (128*1024) - -/** \mmcfg Maximum number of bytes per dump data segment -** -** \par Description: -** Maximum number of bytes MM will dump per task cycle -** to prevent CPU hogging (segmented dump). -** -** \par Limits: -** The MM app does not place a limit on this parameter. -** However, setting this value to a large number will decrease -** the amount of time available for other tasks to execute and -** increase MM CPU utilization during dump operations. -*/ -#define MM_MAX_DUMP_DATA_SEG 200 - -/** \mmcfg Maximum number of bytes for a fill to RAM memory -** -** \par Description: -** Maximum number of bytes that can be loaded into RAM with a -** single memory fill command. -** -** \par Limits: -** The MM app does not place a limit on this parameter. -** However, setting this value to a large number will increase -** the likelyhood of MM being late responding to housekeeping -** requests since it cannot process such a request while a fill -** operation is in progress. -*/ -#define MM_MAX_FILL_DATA_RAM (1024*1024) - -/** \mmcfg Maximum number of bytes for a fill to EEPROM memory -** -** \par Description: -** Maximum number of bytes that can be loaded into EEPROM with a -** single memory fill command. -** -** \par Limits: -** The MM app does not place a limit on this parameter. -** However, setting this value to a large number will increase -** the likelyhood of MM being late responding to housekeeping -** requests since it cannot process such a request while a fill -** operation is in progress. -*/ -#define MM_MAX_FILL_DATA_EEPROM (128*1024) - -/** \mmcfg Maximum number of bytes per fill data segment -** -** \par Description: -** Maximum number of bytes MM will fill per task cycle -** to prevent CPU hogging (segmented fill). -** -** \par Limits: -** The MM app does not place a limit on this parameter. -** However, setting this value to a large number will decrease -** the amount of time available for other tasks to execute and -** increase MM CPU utilization during memory fill operations. -*/ -#define MM_MAX_FILL_DATA_SEG 200 - -/** \mmcfg Optional MEM32 compile switch -** -** \par Description: -** Compile switch to include code for the optional MM_MEM32 memory. -** The value should be set to TRUE or FALSE. A value of TRUE will -** include the code. -** -** \par Limits: -** n/a -*/ -#define MM_OPT_CODE_MEM32_MEMTYPE TRUE - -/** \mmcfg Maximum number of bytes for a file load to MEM32 memory -** -** \par Description: -** Maximum number of bytes that can be loaded into the optional -** MEM32 memory type from a single load file. -** -** \par Limits: -** This value should be longword aligned. -** Setting this value to a large number will increase the likelyhood -** of MM being late responding to housekeeping requests since it -** cannot process such a request while a load or dump is in progress. -*/ -#define MM_MAX_LOAD_FILE_DATA_MEM32 (1024*1024) - -/** \mmcfg Maximum number of bytes for a file dump from MEM32 memory -** -** \par Description: -** Maximum number of bytes that can be dumped from the optional -** MEM32 memory type to a single dump file. -** -** \par Limits: -** This value should be longword aligned. -** Setting this value to a large number will increase the likelyhood -** of MM being late responding to housekeeping requests since it -** cannot process such a request while a load or dump is in progress. -*/ -#define MM_MAX_DUMP_FILE_DATA_MEM32 (1024*1024) - -/** \mmcfg Maximum number of bytes for a fill to MEM32 memory -** -** \par Description: -** Maximum number of bytes that can be loaded into the optional -** MEM32 memory type with a single memory fill command. -** -** \par Limits: -** This value should be longword aligned. -** Setting this value to a large number will increase the likelyhood -** of MM being late responding to housekeeping requests since it -** cannot process such a request while a memory fill operation -** is in progress. -*/ -#define MM_MAX_FILL_DATA_MEM32 (1024*1024) - -/** \mmcfg Optional MEM16 compile switch -** -** \par Description: -** Compile switch to include code for the optional MM_MEM16 memory. -** The value should be set to TRUE or FALSE. A value of TRUE will -** include the code. -** -** \par Limits: -** n/a -*/ -#define MM_OPT_CODE_MEM16_MEMTYPE TRUE - -/** \mmcfg Maximum number of bytes for a file load to MEM16 memory -** -** \par Description: -** Maximum number of bytes that can be loaded into the optional -** MEM16 memory type from a single load file. -** -** \par Limits: -** This value should be word aligned. -** Setting this value to a large number will increase the likelyhood -** of MM being late responding to housekeeping requests since it -** cannot process such a request while a load or dump is in progress. -*/ -#define MM_MAX_LOAD_FILE_DATA_MEM16 (1024*1024) - -/** \mmcfg Maximum number of bytes for a file dump from MEM16 memory -** -** \par Description: -** Maximum number of bytes that can be dumped from the optional -** MEM16 memory type to a single dump file. -** -** \par Limits: -** This value should be word aligned. -** Setting this value to a large number will increase the likelyhood -** of MM being late responding to housekeeping requests since it -** cannot process such a request while a load or dump is in progress. -*/ -#define MM_MAX_DUMP_FILE_DATA_MEM16 (1024*1024) - -/** \mmcfg Maximum number of bytes for a fill to MEM16 memory -** -** \par Description: -** Maximum number of bytes that can be loaded into the optional -** MEM16 memory type with a single memory fill command. -** -** \par Limits: -** This value should be word aligned. -** Setting this value to a large number will increase the likelyhood -** of MM being late responding to housekeeping requests since it -** cannot process such a request while a memory fill operation -** is in progress. -*/ -#define MM_MAX_FILL_DATA_MEM16 (1024*1024) - -/** \mmcfg Optional MEM8 compile switch -** -** \par Description: -** Compile switch to include code for the optional MM_MEM8 memory. -** The value should be set to TRUE or FALSE. A value of TRUE will -** include the code. -** -** \par Limits: -** n/a -*/ -#define MM_OPT_CODE_MEM8_MEMTYPE TRUE - -/** \mmcfg Maximum number of bytes for a file load to MEM8 memory -** -** \par Description: -** Maximum number of bytes that can be loaded into the optional -** MEM8 memory type from a single load file. -** -** \par Limits: -** The MM app does not place a limit on this parameter. -** Setting this value to a large number will increase the likelyhood -** of MM being late responding to housekeeping requests since it -** cannot process such a request while a load or dump is in progress. -*/ -#define MM_MAX_LOAD_FILE_DATA_MEM8 (1024*1024) - -/** \mmcfg Maximum number of bytes for a file dump from MEM8 memory -** -** \par Description: -** Maximum number of bytes that can be dumped from the optional -** MEM8 memory type to a single dump file. -** -** \par Limits: -** The MM app does not place a limit on this parameter. -** Setting this value to a large number will increase the likelyhood -** of MM being late responding to housekeeping requests since it -** cannot process such a request while a load or dump is in progress. -*/ -#define MM_MAX_DUMP_FILE_DATA_MEM8 (1024*1024) - -/** \mmcfg Maximum number of bytes for a fill to MEM8 memory -** -** \par Description: -** Maximum number of bytes that can be loaded into the optional -** MEM8 memory type with a single memory fill command. -** -** \par Limits: -** The MM app does not place a limit on this parameter. -** Setting this value to a large number will increase the likelyhood -** of MM being late responding to housekeeping requests since it -** cannot process such a request while a memory fill operation -** is in progress. -*/ -#define MM_MAX_FILL_DATA_MEM8 (1024*1024) - -/** \mmcfg Segment break processor delay -** -** \par Description: -** How many milliseconds to delay between segments for dump, load, -** and fill operations. A value of zero cycles through the -** OS scheduler, giving up what's left of the current timeslice. -** -** \par Limits: -** The MM app does not place a limit on this parameter. -** However, setting this value to a large number will increase the -** time required to process load, dump, and fill requests. -** It will also increase the likelyhood of MM being late responding -** to housekeeping requests since it cannot process such a request -** while a memory operation is in progress. -*/ -#define MM_PROCESSOR_CYCLE 0 - -/** \mmcfg Mission specific version number for MM application -** -** \par Description: -** An application version number consists of four parts: -** major version number, minor version number, revision -** number and mission specific revision number. The mission -** specific revision number is defined here and the other -** parts are defined in "mm_version.h". -** -** \par Limits: -** Must be defined as a numeric value that is greater than -** or equal to zero. -*/ -#define MM_MISSION_REV 0 - -#endif /*MM_PLATFORM_CFG_H*/ - -/************************/ -/* End of File Comment */ -/************************/ diff --git a/config/obc/ppd/inc/mpc_platform_cfg.h b/config/obc/ppd/inc/mpc_platform_cfg.h deleted file mode 100644 index 20a61ef05..000000000 --- a/config/obc/ppd/inc/mpc_platform_cfg.h +++ /dev/null @@ -1,111 +0,0 @@ -#ifndef MPC_PLATFORM_CFG_H -#define MPC_PLATFORM_CFG_H - -#ifdef __cplusplus -extern "C" { -#endif - -/* -** MPC Platform Configuration Parameter Definitions -*/ - -/** \brief Mission specific version number for MPC application -** -** \par Description: -** An application version number consists of four parts: -** major version number, minor version number, revision -** number and mission specific revision number. The mission -** specific revision number is defined here and the other -** parts are defined in "amc_version.h". -** -** \par Limits: -** Must be defined as a numeric value that is greater than -** or equal to zero. -*/ -#define MPC_MISSION_REV (0) - -/** \brief Pipe depth for the Scheduler pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define MPC_SCH_PIPE_DEPTH (15) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define MPC_SCH_PIPE_NAME ("MPC_SCH_PIPE") - -/** \brief The SB pend behavior type for the Scheduler pipe. -** -** \par Limits: -** One of: CFE_SB_POLL, CFE_SB_PEND_FOREVER, or the -** number of milliseconds to wait for a new message (recommended). -** Note, using CFE_SB_PEND_FOREVER may cause an unresponsive -** application if no messages arrive on this pipe. -*/ -#define MPC_SCH_PIPE_PEND_TIME (2000) - -/** \brief The number of WAKEUP messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max limited to CFE_SB_MAX_PIPE_DEPTH-1. Note the -** MPC_WAKEUP_MID_MAX_MSG_COUNT and MPC_SEND_HK_MID_MAX_MSG_COUNT -** must be less than MPC_SCH_PIPE_DEPTH. -*/ -#define MPC_WAKEUP_MID_MAX_MSG_COUNT (1) - -/** \brief The number of SEND_HK messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. Note the -** MPC_WAKEUP_MID_MAX_MSG_COUNT and MPC_SEND_HK_MID_MAX_MSG_COUNT -** must be less than MPC_SCH_PIPE_DEPTH. -*/ -#define MPC_SEND_HK_MID_MAX_MSG_COUNT (1) - -/** \brief Pipe depth for the command pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define MPC_CMD_PIPE_DEPTH (4) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define MPC_CMD_PIPE_NAME ("MPC_CMD_PIPE") - -/** \brief The config table default filename -** -** \par Limits: -** The length of each string, including the NULL terminator cannot exceed -** the #OS_MAX_PATH_LEN value. -*/ -#define MPC_CONFIG_TABLE_FILENAME ("/cf/apps/mpc_config.tbl") - -/** \brief The timeout value, in milliseconds, to wait for ES application startup sync. -** -** \par Limits: -** This parameter must be at least 1000 (ms). -*/ -#define MPC_STARTUP_TIMEOUT_MSEC (1000) - -/** \brief Time for direction change hysteresis */ -#define DIRECTION_CHANGE_TRIGGER_TIME_US (100000) - - -#ifdef __cplusplus -} -#endif - -#endif /* MPC_PLATFORM_CFG_H */ - -/************************/ -/* End of File Comment */ -/************************/ - diff --git a/config/obc/ppd/inc/mpu9250_platform_cfg.h b/config/obc/ppd/inc/mpu9250_platform_cfg.h deleted file mode 100644 index 0c5373479..000000000 --- a/config/obc/ppd/inc/mpu9250_platform_cfg.h +++ /dev/null @@ -1,174 +0,0 @@ -#ifndef MPU9250_PLATFORM_CFG_H -#define MPU9250_PLATFORM_CFG_H - -#ifdef __cplusplus -extern "C" { -#endif - -#include "math.h" - -/* -** MPU9250 Platform Configuration Parameter Definitions -*/ - -/** \brief Mission specific version number for MPU9250 application -** -** \par Description: -** An application version number consists of four parts: -** major version number, minor version number, revision -** number and mission specific revision number. The mission -** specific revision number is defined here and the other -** parts are defined in "amc_version.h". -** -** \par Limits: -** Must be defined as a numeric value that is greater than -** or equal to zero. -*/ -#define MPU9250_MISSION_REV (0) - -/** \brief Pipe depth for the Scheduler pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define MPU9250_SCH_PIPE_DEPTH (2) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define MPU9250_SCH_PIPE_NAME ("MPU9250_SCH_PIPE") - -/** \brief The SB pend behavior type for the Scheduler pipe. -** -** \par Limits: -** One of: CFE_SB_POLL, CFE_SB_PEND_FOREVER, or the -** number of milliseconds to wait for a new message (recommended). -** Note, using CFE_SB_PEND_FOREVER may cause an unresponsive -** application if no messages arrive on this pipe. -*/ -#define MPU9250_SCH_PIPE_PEND_TIME (2000) - -/** \brief Pipe depth for the params pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define MPU9250_PARAM_PIPE_DEPTH (4) - -/** \brief Pipe name for the params pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define MPU9250_PARAM_PIPE_NAME ("MPU9250_PARAM_PIPE") - -/** \brief The number of WAKEUP messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max limited to CFE_SB_MAX_PIPE_DEPTH-1. Note the -** MPU9250_MEASURE_MID_MAX_MSG_COUNT and MPU9250_SEND_HK_MID_MAX_MSG_COUNT -** must be less than MPU9250_SCH_PIPE_DEPTH. -*/ -#define MPU9250_MEASURE_MID_MAX_MSG_COUNT (1) - -/** \brief The number of SEND_HK messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. Note the -** MPU9250_MEASURE_MID_MAX_MSG_COUNT and MPU9250_SEND_HK_MID_MAX_MSG_COUNT -** must be less than MPU9250_SCH_PIPE_DEPTH. -*/ -#define MPU9250_SEND_HK_MID_MAX_MSG_COUNT (1) - -/** \brief Pipe depth for the command pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define MPU9250_CMD_PIPE_DEPTH (4) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define MPU9250_CMD_PIPE_NAME ("MPU9250_CMD_PIPE") - -/** \brief Pipe depth for the data pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define MPU9250_DATA_PIPE_DEPTH (4) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define MPU9250_DATA_PIPE_NAME ("MPU9250_DATA_PIPE") - -/** \brief The config table default filename -** -** \par Limits: -** The length of each string, including the NULL terminator cannot exceed -** the #OS_MAX_PATH_LEN value. -*/ -#define MPU9250_CONFIG_TABLE_FILENAME ("/cf/apps/mpu9250_config.tbl") - -/** \brief The timeout value, in milliseconds, to wait for ES application startup sync. -** -** \par Limits: -** This parameter must be at least 1000 (ms). -*/ -#define MPU9250_STARTUP_TIMEOUT_MSEC (1000) - - -/** \brief Fake accel device ID */ -#define MPU9250_ACCEL_PX4_DEVICE_ID (6789478) -/** \brief Fake gyro device ID */ -#define MPU9250_GYRO_PX4_DEVICE_ID (3467548) -/** \brief Integration publish rate */ -#define MPU9250_ACCEL_INT_PUB_RATE (1000000 / 400) -/** \brief Integration publish rate */ -#define MPU9250_GYRO_INT_PUB_RATE (1000000 / 400) -/** \brief Accel scale */ -#define MPU9250_ACC_SCALE (16) -/** \brief Gyro scale */ -#define MPU9250_GYRO_SCALE (2000) -/** \brief Magnetometer device ID. */ -#define MPU9250_AK8963_ID (0x48) -/** \brief IMU device ID. */ -#define MPU9250_DEVICE_ID (0x71) -/** \brief IMU accelerometer sample rate. */ -#define MPU9250_ACCEL_SAMPLE_RATE (200) -/** \brief IMU accelerometer filter cutoff frequency. */ -#define MPU9250_ACCEL_FILTER_CUTOFF_FREQ (30) -/** \brief IMU gyroscope sample rate. */ -#define MPU9250_GYRO_SAMPLE_RATE (200) -/** \brief IMU gyroscope filter cutoff frequency. */ -#define MPU9250_GYRO_FILTER_CUTOFF_FREQ (30) -/** \brief Set to never publish (0) in PX4 mpu9250 wrapper. */ -#define MPU9250_NEVER_AUTOPUBLISH_US (0) -/** \brief One gravity. */ -#define MPU9250_ONE_G (9.80665f) -/** \brief Radians per degree. */ -#define MPU9250_RADIANS_PER_DEGREE (0.0174532f) -/** \brief Room temperature offset */ -#define MPU9250_ROOM_TEMP_OFFSET (0.0f) -/** \brief Temperature sensitivity */ -#define MPU9250_TEMP_SENS (361.0f) - - -#ifdef __cplusplus -} -#endif - -#endif /* MPU9250_PLATFORM_CFG_H */ - -/************************/ -/* End of File Comment */ -/************************/ - diff --git a/config/obc/ppd/inc/ms5611_platform_cfg.h b/config/obc/ppd/inc/ms5611_platform_cfg.h deleted file mode 100644 index 4042ed560..000000000 --- a/config/obc/ppd/inc/ms5611_platform_cfg.h +++ /dev/null @@ -1,138 +0,0 @@ -#ifndef MS5611_PLATFORM_CFG_H -#define MS5611_PLATFORM_CFG_H - -#ifdef __cplusplus -extern "C" { -#endif - -/* -** MS5611 Platform Configuration Parameter Definitions -*/ - -/** \brief Mission specific version number for MS5611 application -** -** \par Description: -** An application version number consists of four parts: -** major version number, minor version number, revision -** number and mission specific revision number. The mission -** specific revision number is defined here and the other -** parts are defined in "amc_version.h". -** -** \par Limits: -** Must be defined as a numeric value that is greater than -** or equal to zero. -*/ -#define MS5611_MISSION_REV (0) - -/** \brief Pipe depth for the Scheduler pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define MS5611_SCH_PIPE_DEPTH (2) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define MS5611_SCH_PIPE_NAME ("MS5611_SCH_PIPE") - -/** \brief The SB pend behavior type for the Scheduler pipe. -** -** \par Limits: -** One of: CFE_SB_POLL, CFE_SB_PEND_FOREVER, or the -** number of milliseconds to wait for a new message (recommended). -** Note, using CFE_SB_PEND_FOREVER may cause an unresponsive -** application if no messages arrive on this pipe. -*/ -#define MS5611_SCH_PIPE_PEND_TIME (2000) - -/** \brief The number of WAKEUP messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max limited to CFE_SB_MAX_PIPE_DEPTH-1. Note the -** MS5611_WAKEUP_MID_MAX_MSG_COUNT and MS5611_SEND_HK_MID_MAX_MSG_COUNT -** must be less than MS5611_SCH_PIPE_DEPTH. -*/ -#define MS5611_MEASURE_MID_MAX_MSG_COUNT (1) - -/** \brief The number of SEND_HK messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. Note the -** MS5611_WAKEUP_MID_MAX_MSG_COUNT and MS5611_SEND_HK_MID_MAX_MSG_COUNT -** must be less than MS5611_SCH_PIPE_DEPTH. -*/ -#define MS5611_SEND_HK_MID_MAX_MSG_COUNT (1) - -/** \brief Pipe depth for the command pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define MS5611_CMD_PIPE_DEPTH (4) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define MS5611_CMD_PIPE_NAME ("MS5611_CMD_PIPE") - -/** \brief Pipe depth for the data pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define MS5611_DATA_PIPE_DEPTH (4) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define MS5611_DATA_PIPE_NAME ("MS5611_DATA_PIPE") - -/** \brief The config table default filename -** -** \par Limits: -** The length of each string, including the NULL terminator cannot exceed -** the #OS_MAX_PATH_LEN value. -*/ -#define MS5611_CONFIG_TABLE_FILENAME ("/cf/apps/ms5611_config.tbl") - -/** \brief The timeout value, in milliseconds, to wait for ES application startup sync. -** -** \par Limits: -** This parameter must be at least 1000 (ms). -*/ -#define MS5611_STARTUP_TIMEOUT_MSEC (1000) - -/** \brief The MS5611 device path. -** -** \par Limits: -** The length of each string, including the NULL terminator cannot exceed -** the #OS_MAX_PATH_LEN value. -*/ -#define MS5611_DEVICE_PATH ("/dev/spidev1.1") - -/** \brief The ratio pressure per temperature measurements -** -** \par Limits: -** Set to 3 for 3 pressure measurements for every temperature -** measurement. -*/ -#define MS5611_PRESS_TEMP_MEAS_RATIO (3) - - -#ifdef __cplusplus -} -#endif - -#endif /* MS5611_PLATFORM_CFG_H */ - -/************************/ -/* End of File Comment */ -/************************/ - diff --git a/config/obc/ppd/inc/nav_platform_cfg.h b/config/obc/ppd/inc/nav_platform_cfg.h deleted file mode 100644 index 6781d6e8b..000000000 --- a/config/obc/ppd/inc/nav_platform_cfg.h +++ /dev/null @@ -1,122 +0,0 @@ -#ifndef NAV_PLATFORM_CFG_H -#define NAV_PLATFORM_CFG_H - -#ifdef __cplusplus -extern "C" { -#endif - -/* -** NAV Platform Configuration Parameter Definitions -*/ - -/** \brief Mission specific version number for NAV application -** -** \par Description: -** An application version number consists of four parts: -** major version number, minor version number, revision -** number and mission specific revision number. The mission -** specific revision number is defined here and the other -** parts are defined in "amc_version.h". -** -** \par Limits: -** Must be defined as a numeric value that is greater than -** or equal to zero. -*/ -#define NAV_MISSION_REV (0) - -/** \brief Pipe depth for the Scheduler pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define NAV_SCH_PIPE_DEPTH (15) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define NAV_SCH_PIPE_NAME ("NAV_SCH_PIPE") - -/** \brief The SB pend behavior type for the Scheduler pipe. -** -** \par Limits: -** One of: CFE_SB_POLL, CFE_SB_PEND_FOREVER, or the -** number of milliseconds to wait for a new message (recommended). -** Note, using CFE_SB_PEND_FOREVER may cause an unresponsive -** application if no messages arrive on this pipe. -*/ -#define NAV_SCH_PIPE_PEND_TIME (2000) - -/** \brief The number of WAKEUP messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max limited to CFE_SB_MAX_PIPE_DEPTH-1. Note the -** NAV_WAKEUP_MID_MAX_MSG_COUNT and NAV_SEND_HK_MID_MAX_MSG_COUNT -** must be less than NAV_SCH_PIPE_DEPTH. -*/ -#define NAV_WAKEUP_MID_MAX_MSG_COUNT (1) - -/** \brief The number of SEND_HK messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. Note the -** NAV_WAKEUP_MID_MAX_MSG_COUNT and NAV_SEND_HK_MID_MAX_MSG_COUNT -** must be less than NAV_SCH_PIPE_DEPTH. -*/ -#define NAV_SEND_HK_MID_MAX_MSG_COUNT (1) - -/** \brief Pipe depth for the command pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define NAV_CMD_PIPE_DEPTH (4) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define NAV_CMD_PIPE_NAME ("NAV_CMD_PIPE") - -/** \brief Pipe depth for the data pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define NAV_DATA_PIPE_DEPTH (4) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define NAV_DATA_PIPE_NAME ("NAV_DATA_PIPE") - -/** \brief The config table default filename -** -** \par Limits: -** The length of each string, including the NULL terminator cannot exceed -** the #OS_MAX_PATH_LEN value. -*/ -#define NAV_CONFIG_TABLE_FILENAME ("/cf/apps/nav_config.tbl") - -/** \brief The timeout value, in milliseconds, to wait for ES application startup sync. -** -** \par Limits: -** This parameter must be at least 1000 (ms). -*/ -#define NAV_STARTUP_TIMEOUT_MSEC (1000) - - -#ifdef __cplusplus -} -#endif - -#endif /* NAV_PLATFORM_CFG_H */ - -/************************/ -/* End of File Comment */ -/************************/ - diff --git a/config/obc/ppd/inc/osconfig.h b/config/obc/ppd/inc/osconfig.h deleted file mode 100644 index b5fe3f36d..000000000 --- a/config/obc/ppd/inc/osconfig.h +++ /dev/null @@ -1,140 +0,0 @@ -#ifndef OSCONFIG_H -#define OSCONFIG_H - -#define OS_RUNTIME_MANAGER_CMD_QUEUE_NAME "OS_RUNTIME_MGR_CMD" -#define OS_RUNTIME_MANAGER_CMD_QUEUE_DEPTH 1 -#define OS_RUNTIME_MANAGER_CMD_TASK_NAME "OS_RUNTIME_MGR_CMD" -#define OS_RUNTIME_MANAGER_CMD_TASK_STACK_SIZE 32535 -#define OS_RUNTIME_MANAGER_CMD_TASK_PRIORITY 0 -#define OS_RUNTIME_MANAGER_EXEC_TASK_NAME "OS_RUNTIME_MGR_EXEC" -#define OS_RUNTIME_MANAGER_EXEC_TASK_STACK_SIZE 32535 -#define OS_RUNTIME_MANAGER_EXEC_TASK_PRIORITY 99 -#define OS_RUNTIME_MANAGER_SEM_NAME "OS_RUNTIME_MGR_SEM" - -/*#define OS_USE_EMBEDDED_PRINTF*/ - -#define OS_MAX_QUEUE_WIDTH 8 -#define OS_MAX_QUEUE_DEPTH 256 - -/* -** Platform Configuration Parameters for the OS API -*/ - -#define OS_MAX_TASKS 100 -#define OS_MAX_QUEUES 255 -#define OS_MAX_COUNT_SEMAPHORES 100 -#define OS_MAX_BIN_SEMAPHORES 100 -#define OS_MAX_MUTEXES 100 -#define OS_MAX_TIMEOUTS (OS_MAX_QUEUES+OS_MAX_COUNT_SEMAPHORES+OS_MAX_BIN_SEMAPHORES) - -/* -** Maximum length for an absolute path name -*/ -#define OS_MAX_PATH_LEN 64 - -/* -** Maximum length for a local or host path/filename. -** This parameter can consist of the OSAL filename/path + -** the host OS physical volume name or path. -*/ -#define OS_MAX_LOCAL_PATH_LEN (OS_MAX_PATH_LEN + OS_FS_PHYS_NAME_LEN) - -/* -** The maxium length allowed for a object (task,queue....) name -*/ -#define OS_MAX_API_NAME 40 - -/* -** The maximum length for a file name -*/ -#define OS_MAX_FILE_NAME 20 - -/* -** These defines are for OS_printf -*/ -#define OS_BUFFER_SIZE 512 -#define OS_BUFFER_MSG_DEPTH 100 - -/* This #define turns on a utility task that - * will read the statements to print from - * the OS_printf function. If you want OS_printf - * to print the text out itself, comment this out - * - * NOTE: The Utility Task #defines only have meaning - * on the VxWorks operating systems - */ - -#define OS_UTILITY_TASK_ON - - -#ifdef OS_UTILITY_TASK_ON - #define OS_UTILITYTASK_STACK_SIZE 2048 - /* some room is left for other lower priority tasks */ - #define OS_UTILITYTASK_PRIORITY 245 -#endif - - -/* -** the size of a command that can be passed to the underlying OS -*/ -#define OS_MAX_CMD_LEN 1000 - -/* -** This define will include the OS network API. -** It should be turned off for targtets that do not have a network stack or -** device ( like the basic RAD750 vxWorks BSP ) -*/ -#define OS_INCLUDE_NETWORK - -/* -** This is the maximum number of open file descriptors allowed at a time -*/ -#define OS_MAX_NUM_OPEN_FILES 50 - -/* -** This defines the filethe input command of OS_ShellOutputToFile -** is written to in the VxWorks6 port -*/ -#define OS_SHELL_CMD_INPUT_FILE_NAME "/ram/OS_ShellCmd.in" - -/* -** This define sets the queue implentation of the Linux port to use sockets -** commenting this out makes the Linux port use the POSIX message queues. -*/ -#define OSAL_SOCKET_QUEUE */ - -/* -** Module loader/symbol table is optional -*/ -#define OS_INCLUDE_MODULE_LOADER - -#ifdef OS_INCLUDE_MODULE_LOADER - /* - ** This define sets the size of the OS Module Table, which keeps track of the loaded modules in - ** the running system. This define must be set high enough to support the maximum number of - ** loadable modules in the system. If the the table is filled up at runtime, a new module load - ** would fail. - */ - #define OS_MAX_MODULES 64 - - /* - ** The Static Loader define is used for switching between the Dynamic and Static loader implementations. - */ - /* #define OS_STATIC_LOADER */ - -#endif - - -/* -** This define sets the maximum symbol name string length. It is used in implementations that -** support the symbols and symbol lookup. -*/ -#define OS_MAX_SYM_LEN 64 - - -/* -** This define sets the maximum number of timers available -*/ -#define OS_MAX_TIMERS 5 - -#endif diff --git a/config/obc/ppd/inc/pe_platform_cfg.h b/config/obc/ppd/inc/pe_platform_cfg.h deleted file mode 100644 index ca1de959a..000000000 --- a/config/obc/ppd/inc/pe_platform_cfg.h +++ /dev/null @@ -1,140 +0,0 @@ -#ifndef PE_PLATFORM_CFG_H -#define PE_PLATFORM_CFG_H - -#ifdef __cplusplus -extern "C" { -#endif - -/* -** PE Platform Configuration Parameter Definitions -*/ - -/** \brief Mission specific version number for PE application -** -** \par Description: -** An application version number consists of four parts: -** major version number, minor version number, revision -** number and mission specific revision number. The mission -** specific revision number is defined here and the other -** parts are defined in "amc_version.h". -** -** \par Limits: -** Must be defined as a numeric value that is greater than -** or equal to zero. -*/ -#define PE_MISSION_REV (0) - -/** \brief Pipe depth for the Scheduler pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define PE_SCH_PIPE_DEPTH (20) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define PE_SCH_PIPE_NAME ("PE_SCH_PIPE") - -/** \brief The SB pend behavior type for the Scheduler pipe. -** -** \par Limits: -** One of: CFE_SB_POLL, CFE_SB_PEND_FOREVER, or the -** number of milliseconds to wait for a new message (recommended). -** Note, using CFE_SB_PEND_FOREVER may cause an unresponsive -** application if no messages arrive on this pipe. -*/ -#define PE_SCH_PIPE_PEND_TIME (2000) - -/** \brief The number of WAKEUP messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max limited to CFE_SB_MAX_PIPE_DEPTH-1. Note the -** PE_WAKEUP_MID_MAX_MSG_COUNT and PE_SEND_HK_MID_MAX_MSG_COUNT -** must be less than PE_SCH_PIPE_DEPTH. -*/ -#define PE_WAKEUP_MID_MAX_MSG_COUNT (1) - -/** \brief The number of SEND_HK messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. Note the -** PE_WAKEUP_MID_MAX_MSG_COUNT and PE_SEND_HK_MID_MAX_MSG_COUNT -** must be less than PE_SCH_PIPE_DEPTH. -*/ -#define PE_SEND_HK_MID_MAX_MSG_COUNT (1) - -/** \brief Pipe depth for the command pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define PE_CMD_PIPE_DEPTH (4) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define PE_CMD_PIPE_NAME ("PE_CMD_PIPE") - -/** \brief The config table default filename -** -** \par Limits: -** The length of each string, including the NULL terminator cannot exceed -** the #OS_MAX_PATH_LEN value. -*/ -#define PE_CONFIG_TABLE_FILENAME ("/cf/apps/pe_config.tbl") - -/** \brief The timeout value, in milliseconds, to wait for ES application startup sync. -** -** \par Limits: -** This parameter must be at least 1000 (ms). -*/ -#define PE_STARTUP_TIMEOUT_MSEC (1000) - -/** \brief MAx event filters the PE app can use. -** -** \par Limits: -** This parameter cannot exceed TODO -*/ -#define PE_MAX_EVENT_FILTERS (64) - -/*** Sensor Configuration ***/ - -/* Baro */ -#define REQ_BARO_INIT_COUNT (2000) -#define BARO_TIMEOUT (100000) /* 0.1 s */ - -/* GPS */ -#define REQ_GPS_INIT_COUNT (50) -#define GPS_TIMEOUT (1000000) /* 1.0 s */ - -/* Land */ -#define REQ_LAND_INIT_COUNT (1) -#define LAND_TIMEOUT (1000000) /* 1.0 s */ - -/* Distance sensor */ -#define REQ_DIST_INIT_COUNT (50) -#define DIST_TIMEOUT (150000) /* 0.1 s */ -#define DIST_BETA_MAX (700) -#define DIST_SENSOR_TYPE (3) /* 3 = radar */ - -/* Optical flow */ -#define REQ_FLOW_INIT_COUNT (10) -#define FLOW_TIMEOUT (1000000) /* 1.0 s */ -#define FLOW_GYRO_HP_CUTOFF (0.001f) - - -#ifdef __cplusplus -} -#endif - -#endif /* PE_PLATFORM_CFG_H */ - -/************************/ -/* End of File Comment */ -/************************/ - diff --git a/config/obc/ppd/inc/prm_platform_cfg.h b/config/obc/ppd/inc/prm_platform_cfg.h deleted file mode 100644 index 86a2f9b4d..000000000 --- a/config/obc/ppd/inc/prm_platform_cfg.h +++ /dev/null @@ -1,125 +0,0 @@ - -#ifndef PRM_PLATFORM_CFG_H -#define PRM_PLATFORM_CFG_H - -#ifdef __cplusplus -extern "C" { -#endif - -/* -** prm Platform Configuration Parameter Definitions -*/ - -/** \brief Mission specific version number for PRM application -** -** \par Description: -** An application version number consists of four parts: -** major version number, minor version number, revision -** number and mission specific revision number. The mission -** specific revision number is defined here and the other -** parts are defined in "prm_version.h". -** -** \par Limits: -** Must be defined as a numeric value that is greater than -** or equal to zero. -*/ -#define PRM_MISSION_REV (0) - -/** \brief Pipe depth for the Scheduler pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define PRM_SCH_PIPE_DEPTH (2) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define PRM_SCH_PIPE_NAME ("PRM_SCH_PIPE") - -/** \brief The SB pend behavior type for the Scheduler pipe. -** -** \par Limits: -** One of: CFE_SB_POLL, CFE_SB_PEND_FOREVER, or the -** number of milliseconds to wait for a new message (recommended). -** Note, using CFE_SB_PEND_FOREVER may cause an unresponsive -** application if no messages arrive on this pipe. -*/ -#define PRM_SCH_PIPE_PEND_TIME (2000) - -/** \brief The number of WAKEUP messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max limited to CFE_SB_MAX_PIPE_DEPTH-1. Note the -** PRM_SCH_PIPE_WAKEUP_RESERVED and PRM_SCH_PIPE_SEND_HK_RESERVED -** must be less than PRM_SCH_PIPE_DEPTH. -*/ -#define PRM_SCH_PIPE_WAKEUP_RESERVED (1) - -/** \brief The number of SEND_HK messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. Note the -** PRM_SCH_PIPE_WAKEUP_RESERVED and PRM_SCH_PIPE_SEND_HK_RESERVED -** must be less than PRM_SCH_PIPE_DEPTH. -*/ -#define PRM_SCH_PIPE_SEND_HK_RESERVED (1) - -/** \brief Pipe depth for the command pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define PRM_CMD_PIPE_DEPTH (4) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define PRM_CMD_PIPE_NAME ("PRM_CMD_PIPE") - -/** \brief Pipe depth for the data pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define PRM_DATA_PIPE_DEPTH (4) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define PRM_DATA_PIPE_NAME ("PRM_DATA_PIPE") - -/** \brief The config table default filename -** -** \par Limits: -** The length of each string, including the NULL terminator cannot exceed -** the #OS_MAX_PATH_LEN value. -*/ -#define PRM_CONFIG_TABLE_FILENAME ("/cf/apps/prm_config.tbl") -/** \brief The timeout value, in milliseconds, to wait for ES application startup sync. -** -** \par Limits: -** This parameter must be at least 1000 (ms). -*/ -#define PRM_STARTUP_TIMEOUT_MSEC (1000) - -/* TODO: Add Doxygen markup. */ -#define PRM_CUSTOM_DEV_PATH "/tmp/ttyS0" - - -#ifdef __cplusplus -} -#endif - -#endif /* PRM_PLATFORM_CFG_H */ - -/************************/ -/* End of File Comment */ -/************************/ - diff --git a/config/obc/ppd/inc/px4br_platform_cfg.h b/config/obc/ppd/inc/px4br_platform_cfg.h deleted file mode 100644 index 9ea36cfaf..000000000 --- a/config/obc/ppd/inc/px4br_platform_cfg.h +++ /dev/null @@ -1,39 +0,0 @@ -#ifndef PX4BR_PLATFORM_CFG_H -#define PX4BR_PLATFORM_CFG_H - -/* -** Pragmas -*/ - -/* -** Local Defines -*/ -#define PX4BR_RUNTIME_QUEUE_NAME "OS_RUNTIME_MGR_CMD" -#define PX4BR_MAX_FIFO_PATH_LENGTH (255) - -/* -** Include Files -*/ - -/* -** Local Structure Declarations -*/ - -/* -** External Global Variables -*/ - -/* -** Global Variables -*/ - -/* -** Local Variables -*/ - -/* -** Local Function Prototypes -*/ - -#endif /* PX4BR_PLATFORM_CFG_H */ - diff --git a/config/obc/ppd/inc/qae_platform_cfg.h b/config/obc/ppd/inc/qae_platform_cfg.h deleted file mode 100644 index bd6552cf3..000000000 --- a/config/obc/ppd/inc/qae_platform_cfg.h +++ /dev/null @@ -1,122 +0,0 @@ -#ifndef QAE_PLATFORM_CFG_H -#define QAE_PLATFORM_CFG_H - -#ifdef __cplusplus -extern "C" { -#endif - -/* -** QAE Platform Configuration Parameter Definitions -*/ - -/** \brief Mission specific version number for QAE application -** -** \par Description: -** An application version number consists of four parts: -** major version number, minor version number, revision -** number and mission specific revision number. The mission -** specific revision number is defined here and the other -** parts are defined in "amc_version.h". -** -** \par Limits: -** Must be defined as a numeric value that is greater than -** or equal to zero. -*/ -#define QAE_MISSION_REV (0) - -/** \brief Pipe depth for the Scheduler pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define QAE_SCH_PIPE_DEPTH (5) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define QAE_SCH_PIPE_NAME ("QAE_SCH_PIPE") - -/** \brief The SB pend behavior type for the Scheduler pipe. -** -** \par Limits: -** One of: CFE_SB_POLL, CFE_SB_PEND_FOREVER, or the -** number of milliseconds to wait for a new message (recommended). -** Note, using CFE_SB_PEND_FOREVER may cause an unresponsive -** application if no messages arrive on this pipe. -*/ -#define QAE_SCH_PIPE_PEND_TIME (2000) - -/** \brief The number of WAKEUP messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max limited to CFE_SB_MAX_PIPE_DEPTH-1. Note the -** QAE_WAKEUP_MID_MAX_MSG_COUNT and QAE_SEND_HK_MID_MAX_MSG_COUNT -** must be less than QAE_SCH_PIPE_DEPTH. -*/ -#define QAE_WAKEUP_MID_MAX_MSG_COUNT (1) - -/** \brief The number of SEND_HK messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. Note the -** QAE_WAKEUP_MID_MAX_MSG_COUNT and QAE_SEND_HK_MID_MAX_MSG_COUNT -** must be less than QAE_SCH_PIPE_DEPTH. -*/ -#define QAE_SEND_HK_MID_MAX_MSG_COUNT (1) - -/** \brief Pipe depth for the command pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define QAE_CMD_PIPE_DEPTH (4) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define QAE_CMD_PIPE_NAME ("QAE_CMD_PIPE") - -/** \brief Pipe depth for the data pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define QAE_DATA_PIPE_DEPTH (4) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define QAE_DATA_PIPE_NAME ("QAE_DATA_PIPE") - -/** \brief The config table default filename -** -** \par Limits: -** The length of each string, including the NULL terminator cannot exceed -** the #OS_MAX_PATH_LEN value. -*/ -#define QAE_CONFIG_TABLE_FILENAME ("/cf/apps/qae_config.tbl") - -/** \brief The timeout value, in milliseconds, to wait for ES application startup sync. -** -** \par Limits: -** This parameter must be at least 1000 (ms). -*/ -#define QAE_STARTUP_TIMEOUT_MSEC (1000) - - -#ifdef __cplusplus -} -#endif - -#endif /* QAE_PLATFORM_CFG_H */ - -/************************/ -/* End of File Comment */ -/************************/ - diff --git a/config/obc/ppd/inc/rcin_platform_cfg.h b/config/obc/ppd/inc/rcin_platform_cfg.h deleted file mode 100644 index 3f55e6541..000000000 --- a/config/obc/ppd/inc/rcin_platform_cfg.h +++ /dev/null @@ -1,126 +0,0 @@ -#ifndef RCIN_PLATFORM_CFG_H -#define RCIN_PLATFORM_CFG_H - -#ifdef __cplusplus -extern "C" { -#endif - -#define RCIN_STREAMING_TASK_FLAGS OS_ENABLE_CORE_0 - -/* -** RCIN Platform Configuration Parameter Definitions -*/ - -/** \brief Mission specific version number for RCIN application -** -** \par Description: -** An application version number consists of four parts: -** major version number, minor version number, revision -** number and mission specific revision number. The mission -** specific revision number is defined here and the other -** parts are defined in "amc_version.h". -** -** \par Limits: -** Must be defined as a numeric value that is greater than -** or equal to zero. -*/ -#define RCIN_MISSION_REV (0) - -/** \brief Pipe depth for the Scheduler pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define RCIN_SCH_PIPE_DEPTH (2) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define RCIN_SCH_PIPE_NAME ("RCIN_SCH_PIPE") - -/** \brief The SB pend behavior type for the Scheduler pipe. -** -** \par Limits: -** One of: CFE_SB_POLL, CFE_SB_PEND_FOREVER, or the -** number of milliseconds to wait for a new message (recommended). -** Note, using CFE_SB_PEND_FOREVER may cause an unresponsive -** application if no messages arrive on this pipe. -*/ -#define RCIN_SCH_PIPE_PEND_TIME (2000) - -/** \brief The number of WAKEUP messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max limited to CFE_SB_MAX_PIPE_DEPTH-1. Note the -** RCIN_WAKEUP_MID_MAX_MSG_COUNT and RCIN_SEND_HK_MID_MAX_MSG_COUNT -** must be less than RCIN_SCH_PIPE_DEPTH. -*/ -#define RCIN_WAKEUP_MID_MAX_MSG_COUNT (1) - -/** \brief The number of SEND_HK messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. Note the -** RCIN_WAKEUP_MID_MAX_MSG_COUNT and RCIN_SEND_HK_MID_MAX_MSG_COUNT -** must be less than RCIN_SCH_PIPE_DEPTH. -*/ -#define RCIN_SEND_HK_MID_MAX_MSG_COUNT (1) - -/** \brief Pipe depth for the command pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define RCIN_CMD_PIPE_DEPTH (4) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define RCIN_CMD_PIPE_NAME ("RCIN_CMD_PIPE") - -/** \brief Pipe depth for the data pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define RCIN_DATA_PIPE_DEPTH (4) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define RCIN_DATA_PIPE_NAME ("RCIN_DATA_PIPE") - -/** \brief The config table default filename -** -** \par Limits: -** The length of each string, including the NULL terminator cannot exceed -** the #OS_MAX_PATH_LEN value. -*/ -#define RCIN_CONFIG_TABLE_FILENAME ("/cf/apps/rcin_config.tbl") - -/** \brief The timeout value, in milliseconds, to wait for ES application startup sync. -** -** \par Limits: -** This parameter must be at least 1000 (ms). -*/ -#define RCIN_STARTUP_TIMEOUT_MSEC (1000) - -/**\brief Max filters in event table */ -#define RCIN_MAX_EVENT_FILTERS (32) - -#ifdef __cplusplus -} -#endif - -#endif /* RCIN_PLATFORM_CFG_H */ - -/************************/ -/* End of File Comment */ -/************************/ - diff --git a/config/obc/ppd/inc/rgbled_msgids.h b/config/obc/ppd/inc/rgbled_msgids.h deleted file mode 100644 index 16a36dcc7..000000000 --- a/config/obc/ppd/inc/rgbled_msgids.h +++ /dev/null @@ -1,18 +0,0 @@ -#ifndef RGBLED_MSGIDS_H -#define RGBLED_MSGIDS_H - -#ifdef __cplusplus -extern "C" { -#endif - -#include "msg_ids.h" - -#ifdef __cplusplus -} -#endif - -#endif /* RGBLED_MSGIDS_H */ - -/************************/ -/* End of File Comment */ -/************************/ diff --git a/config/obc/ppd/inc/rgbled_platform_cfg.h b/config/obc/ppd/inc/rgbled_platform_cfg.h deleted file mode 100644 index 6e568f21b..000000000 --- a/config/obc/ppd/inc/rgbled_platform_cfg.h +++ /dev/null @@ -1,126 +0,0 @@ -#ifndef RGBLED_PLATFORM_CFG_H -#define RGBLED_PLATFORM_CFG_H - -#include "osapi.h" - -#ifdef __cplusplus -extern "C" { -#endif - -#define RGBLED_SELFTEST_TASK_FLAGS OS_ENABLE_CORE_0 - -/* -** RGBLED Platform Configuration Parameter Definitions -*/ - -/** \brief Mission specific version number for RGBLED application -** -** \par Description: -** An application version number consists of four parts: -** major version number, minor version number, revision -** number and mission specific revision number. The mission -** specific revision number is defined here and the other -** parts are defined in "amc_version.h". -** -** \par Limits: -** Must be defined as a numeric value that is greater than -** or equal to zero. -*/ -#define RGBLED_MISSION_REV (0) - -/** \brief Pipe depth for the Scheduler pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define RGBLED_SCH_PIPE_DEPTH (2) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define RGBLED_SCH_PIPE_NAME ("RGBLED_SCH_PIPE") - -/** \brief The SB pend behavior type for the Scheduler pipe. -** -** \par Limits: -** One of: CFE_SB_POLL, CFE_SB_PEND_FOREVER, or the -** number of milliseconds to wait for a new message (recommended). -** Note, using CFE_SB_PEND_FOREVER may cause an unresponsive -** application if no messages arrive on this pipe. -*/ -#define RGBLED_SCH_PIPE_PEND_TIME (2000) - -/** \brief The number of WAKEUP messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max limited to CFE_SB_MAX_PIPE_DEPTH-1. Note the -** RGBLED_WAKEUP_MID_MAX_MSG_COUNT and RGBLED_SEND_HK_MID_MAX_MSG_COUNT -** must be less than RGBLED_SCH_PIPE_DEPTH. -*/ -#define RGBLED_WAKEUP_MID_MAX_MSG_COUNT (1) - -/** \brief The number of SEND_HK messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. Note the -** RGBLED_WAKEUP_MID_MAX_MSG_COUNT and RGBLED_SEND_HK_MID_MAX_MSG_COUNT -** must be less than RGBLED_SCH_PIPE_DEPTH. -*/ -#define RGBLED_SEND_HK_MID_MAX_MSG_COUNT (1) - -/** \brief Pipe depth for the command pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define RGBLED_CMD_PIPE_DEPTH (4) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define RGBLED_CMD_PIPE_NAME ("RGBLED_CMD_PIPE") - -/** \brief Pipe depth for the data pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define RGBLED_DATA_PIPE_DEPTH (4) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define RGBLED_DATA_PIPE_NAME ("RGBLED_DATA_PIPE") - -/** \brief The config table default filename -** -** \par Limits: -** The length of each string, including the NULL terminator cannot exceed -** the #OS_MAX_PATH_LEN value. -*/ -#define RGBLED_CONFIG_TABLE_FILENAME ("/cf/apps/rgbled_config.tbl") - -/** \brief The timeout value, in milliseconds, to wait for ES application startup sync. -** -** \par Limits: -** This parameter must be at least 1000 (ms). -*/ -#define RGBLED_STARTUP_TIMEOUT_MSEC (1000) - - -#ifdef __cplusplus -} -#endif - -#endif /* RGBLED_PLATFORM_CFG_H */ - -/************************/ -/* End of File Comment */ -/************************/ - diff --git a/config/obc/ppd/inc/sbn_msgids.h b/config/obc/ppd/inc/sbn_msgids.h deleted file mode 100644 index c0d95d30b..000000000 --- a/config/obc/ppd/inc/sbn_msgids.h +++ /dev/null @@ -1,11 +0,0 @@ -#ifndef SBN_MSGIDS_H -#define SBN_MSGIDS_H - -#include "msg_ids.h" - -#endif /* SBN_MSGIDS_H */ - -/*======================================================================================= -** End of file sbn_msgids.h -**=====================================================================================*/ - diff --git a/config/obc/ppd/inc/sc_msgids.h b/config/obc/ppd/inc/sc_msgids.h deleted file mode 100644 index f81bdec50..000000000 --- a/config/obc/ppd/inc/sc_msgids.h +++ /dev/null @@ -1,10 +0,0 @@ -#ifndef SC_MSGIDS_H -#define SC_MSGIDS_H - -#include "msg_ids.h" - -#endif /*SC_MSGIDS_H*/ - -/************************/ -/* End of File Comment */ -/************************/ diff --git a/config/obc/ppd/inc/sc_platform_cfg.h b/config/obc/ppd/inc/sc_platform_cfg.h deleted file mode 100644 index a831c16bf..000000000 --- a/config/obc/ppd/inc/sc_platform_cfg.h +++ /dev/null @@ -1,359 +0,0 @@ -#ifndef SC_PLATFORM_CFG_H -#define SC_PLATFORM_CFG_H - -/************************************************************************* - ** Macro Definitions - *************************************************************************/ - -/** \sccfg Max number of commands per second -** -** \par Description: -** Maximum number of commands that can be sent out by SC -* in any given second. -** -** \par Limits: -** This parameter can't be larger than an unsigned 16 bit -** integer (65535), but should be kepoot relatively small to -** avoid SC hogging the CPU -** -*/ -#define SC_MAX_CMDS_PER_SEC 8 - - -/** \sccfg Number of RTS's -** -** \par Description: -** The number of RTS's allowed in the system -** -** \par Limits: -** This parameter can't be larger than 999.This parameter will dicate the size of -** The RTS Info Table. -*/ -#define SC_NUMBER_OF_RTS 64 - - -/** \sccfg Max buffer size for an ATS in uint16s -** -** \par Description: -** The max sizeof an ATS buffer in words (not bytes) -** \par Limits: -** This parameter can't be larger than an unsigned 16 bit -** integer (65535). -*/ -#define SC_ATS_BUFF_SIZE 8000 - - -/** \sccfg Max buffer size for an Append ATS in uint16s -** -** \par Description: -** The max sizeof an Append ATS buffer in words (not bytes) -** \par Limits: -** This parameter cannot be larger than SC_ATS_BUFF_SIZE. -*/ -#define SC_APPEND_BUFF_SIZE (SC_ATS_BUFF_SIZE / 2) - - -/** \sccfg Max buffer size for an RTS in uint16s -** -** \par Description: -** The max size of an RTS buffer in WORDS (not bytes) -** \par Limits: -** This parameter can't be larger than an unsigned 16 bit -** integer (65535). -*/ -#define SC_RTS_BUFF_SIZE 150 - - -/** \sccfg Max number of commands in each ATS -** -** \par Description: -** The maximum number of commands that are allowed in each ATS -** -** \par Limits: -** This parameter can't be larger than an unsigned 16 bit -** integer (65535). -*/ -#define SC_MAX_ATS_CMDS 1000 - - -/** \sccfg The last RTS that will be sent with an #SC_RTS_START_INF_EID event message -** -** \par Description: -** When all RTS's are started, the #SC_RTS_START_INF_EID event message is sent out. -** This parameter suppreses that message for all RTS's over this number -** -** \par Limits: -** This parameter needs to be less than or equal to SC_NUMBER_OF_RTS -*/ -#define SC_LAST_RTS_WITH_EVENTS 20 - - -/** \sccfg Minimum Packet Size -** -** \par Description: -** This parameter specifies the minumum size for an ATS or RTS command. -** \par Limits: -** This parameter must be greater than or equal to CFE_SB_CMD_HDR_SIZE and -** less than or equal to CFE_SB_MAX_SB_MSG_SIZE. -*/ -#define SC_PACKET_MIN_SIZE 8 - - -/** \sccfg Maximum Packet Size -** -** \par Description: -** This parameter specifies the maximum size for an ATS or RTS command. -** \par Limits: -** This parameter must be greater than or equal to SC_PACKET_MIN_SIZE and -** less than or equal to CFE_SB_MAX_SB_MSG_SIZE. -*/ -#define SC_PACKET_MAX_SIZE 250 - - -/** \sccfg Command Pipe Depth -** -** \par Description: -** Maximum number of messages that will be allowed in the -** SC command pipe at one time. Used during initialization -** in the call to #CFE_SB_CreatePipe -** -** \par Limits: -** This parameter must be greater than zero and less than or equal to -** CFE_SB_MAX_PIPE_DEPTH. -*/ -#define SC_PIPE_DEPTH 12 - - -/** \sccfg ATS Table Filenames -** -** \par Description: -** Filenames for the ATS tables loaded at startup are constructed by -** appending a one digit table identifier plus the extension ".tbl" -** to the base portion of the filename defined here. -** -** The default definitions will create ATS filenames as follows: -** "/cf/apps/sc_ats1.tbl or /cf/apps/sc_ats2.tbl" -** -** \par Limits: -** SC requires that this name be defined, but otherwise places no -** limits on the definition. If the named table file does not exist -** at run time, or the table fails validation, then the table load -** will fail. Refer to #OS_MAX_PATH_LEN for filename length limits. -*/ -#define SC_ATS_FILE_NAME "/cf/apps/sc_ats" - - -/** \sccfg Append ATS Table Filename -** -** \par Description: -** This name describes the default append ATS filename loaded at -** startup. Often the default Append ATS file contains only a -** single unused table entry, and is used only to initialize the -** table state as having data that may be patched. -** -** \par Limits: -** SC requires that this name be defined, but otherwise places no -** limits on the definition. If the named table file does not exist -** at run time, or the table fails validation, then the table load -** will fail. Refer to #OS_MAX_PATH_LEN for filename length limits. -*/ -#define SC_APPEND_FILE_NAME "/cf/apps/sc_append.tbl" - - -/** \sccfg RTS Table Filenames -** -** \par Description: -** Filenames for the RTS tables loaded at startup are constructed by -** appending a one digit table identifier plus the extension ".tbl" -** to the base portion of the filename defined here. -** -** The default definitions will create RTS filenames as follows: -** "/cf/apps/sc_rts001.tbl, /cf/apps/sc_rts002.tbl, etc" -** -** \par Limits: -** SC requires that this name be defined, but otherwise places no -** limits on the definition. If the named table file does not exist -** at run time, or the table fails validation, then the table load -** will fail. Refer to #OS_MAX_PATH_LEN for filename length limits. -*/ -#define SC_RTS_FILE_NAME "/cf/apps/sc_rts" - - -/** \sccfg ATS Table Object Names -** -** \par Description: -** Unique table object names are required for each table registered -** with cFE Table Services. ATS table object names are constructed -** by appending a one digit table identifier to the base portion of -** the object name defined here. -** -** The default definitions will create ATS object names as follows: -** "ATS_TBL1 or ATS_TBL2" -** -** \par Limits: -** SC requires that this name be defined, but otherwise places no -** limits on the definition. Refer to #CFE_TBL_MAX_NAME_LENGTH for -** specific information on limits related to table object names. -*/ -#define SC_ATS_TABLE_NAME "ATS_TBL" - - -/** \sccfg Append ATS Table Object Names -** -** \par Description: -** Unique table object names are required for each table registered -** with cFE Table Services. This is the table object name for the -** Append ATS table. -** -** \par Limits: -** SC requires that this name be defined, but otherwise places no -** limits on the definition. Refer to #CFE_TBL_MAX_NAME_LENGTH for -** specific information on limits related to table object names. -*/ -#define SC_APPEND_TABLE_NAME "APPEND_TBL" - - -/** \sccfg RTS Table Object Names -** -** \par Description: -** Unique table object names are required for each table registered -** with cFE Table Services. RTS table object names are constructed -** by appending a three digit table identifier to the base portion -** of the object name defined here. -** -** The default definitions will create RTS object names as follows: -** "RTS_TBL001, RTS_TBL002, etc" -** -** \par Limits: -** SC requires that this name be defined, but otherwise places no -** limits on the definition. Refer to #CFE_TBL_MAX_NAME_LENGTH for -** specific information on limits related to table object names. -*/ -#define SC_RTS_TABLE_NAME "RTS_TBL" - - -/** \sccfg Name of the RTS Infomation Table -** -** \par Description: -** Name of the RTS Information Table -** \par Limits: -** Must be less than #CFE_TBL_MAX_NAME_LENGTH -*/ -#define SC_RTSINFO_TABLE_NAME "RTSINF_TBL" - - -/** \sccfg Name of the RTP Control block table -** -** \par Description: -** Name of the RTP Control Block Table -** \par Limits: -** Must be less than #CFE_TBL_MAX_NAME_LENGTH -*/ -#define SC_RTP_CTRL_TABLE_NAME "RTPCTR_TBL" - - -/** \sccfg Name of the ATS Infomation Table -** -** \par Description: -** Name of the ATS Information Table -** \par Limits: -** Must be less than #CFE_TBL_MAX_NAME_LENGTH -*/ -#define SC_ATSINFO_TABLE_NAME "ATSINF_TBL" - - -/** \sccfg Name of the Append ATS Infomation Table -** -** \par Description: -** Name of the Append ATS Information Table -** \par Limits: -** Must be less than #CFE_TBL_MAX_NAME_LENGTH -*/ -#define SC_APPENDINFO_TABLE_NAME "APPINF_TBL" - - -/** \sccfg Name of the ATP Control block table -** -** \par Description: -** Name of the ATP Control Block Table -** \par Limits: -** Must be less than #CFE_TBL_MAX_NAME_LENGTH -*/ -#define SC_ATS_CTRL_TABLE_NAME "ATPCTR_TBL" - - - /** \sccfg Name Prefix of ATS Cmd Status Table -** -** \par Description: -** The prefix of the ATS Command Status table names. Note that actual table names -** will have a 1 digit number postfixed to it depending on the -** ATS number -** -** \par Limits: -** Total length must be less than #CFE_TBL_MAX_NAME_LENGTH -*/ -#define SC_ATS_CMD_STAT_TABLE_NAME "ATSCMD_TBL" - - -/** \sccfg Defnies default state of Continue-Ats-On-Checksum-Failure Flag -** -** \par Description: -** This parameter specifies the default state to continue an ATS -** when a command in the ATS fails checksum validation -** -** \par Limits: -** Must be TUE or FALSE -*/ -#define SC_CONT_ON_FAILURE_START TRUE - - -/** \sccfg Defines the TIME SC should use for its commands -** -** -** \par Description: -** This parameter defines what type of time SC should use for sending uot its commands -** -** \par Limits: -** Must be SC_USE_CFE_TIME, SC_USE_TAI, or SC_USE_UTC */ -#define SC_TIME_TO_USE SC_USE_CFE_TIME - - -/** \sccfg Define inclusion state for RTS group commands -** -** \par Description: -** This parameter specifies the inclusion state for the -** following RTS group commands: Start RTS group, Stop -** RTS group, Enable RTS group and Disable RTS group. -** RTS group commands affect a range of consecutive RTS -** numbers. When set to TRUE, this definition results -** in the inclusion of the group command handlers into -** the SC source code. -** -** \par Limits: -** Must be defined as TRUE or FALSE -*/ -#define SC_ENABLE_GROUP_COMMANDS TRUE - - -/** \sccfg Mission specific version number for SC application -** -** \par Description: -** An application version number consists of four parts: -** major version number, minor version number, revision -** number and mission specific revision number. The mission -** specific revision number is defined here and the other -** parts are defined in "sc_version.h". -** -** \par Limits: -** Must be defined as a numeric value that is greater than -** or equal to zero. -*/ -#define SC_MISSION_REV 0 - - -#endif /*SC_PLATFORM_CFG_H*/ - -/************************/ -/* End of File Comment */ -/************************/ - diff --git a/config/obc/ppd/inc/sc_rts.h b/config/obc/ppd/inc/sc_rts.h deleted file mode 100644 index f3b65dd3f..000000000 --- a/config/obc/ppd/inc/sc_rts.h +++ /dev/null @@ -1,323 +0,0 @@ -#ifndef SC_RTS_H -#define SC_RTS_H - -/** - ** \name RTS 'name for a mission - This can be shorted or expanded or changed for each mission*/ -/** \{ */ - -#define RTS_ID_AUTO_POWER_ON 1 /**< \brief Startup auto-exec after power-on reset */ -#define RTS_ID_AUTO_PROCESSOR 2 /**< \brief Startup auto-exec after processor reset */ - -#define RTS_ID_EXTEND_GEAR 3 /**< \brief Extend landing gear command to LGC. */ -#define RTS_ID_RETRACT_GEAR 4 /**< \brief Retract landing gear command to LGC. */ -#define RTS_ID_Spare5 5 -#define RTS_ID_Spare6 6 -#define RTS_ID_Spare7 7 -#define RTS_ID_Spare8 8 -#define RTS_ID_Spare9 9 - -#define RTS_ID_Spare10 10 -#define RTS_ID_Spare11 11 -#define RTS_ID_Spare12 12 -#define RTS_ID_Spare13 13 -#define RTS_ID_Spare14 14 -#define RTS_ID_Spare15 15 -#define RTS_ID_Spare16 16 -#define RTS_ID_Spare17 17 -#define RTS_ID_Spare18 18 -#define RTS_ID_Spare19 19 - -#define RTS_ID_Spare20 20 -#define RTS_ID_Spare21 21 -#define RTS_ID_Spare22 22 -#define RTS_ID_Spare23 23 -#define RTS_ID_Spare24 24 -#define RTS_ID_Spare25 25 -#define RTS_ID_Spare26 26 -#define RTS_ID_Spare27 27 -#define RTS_ID_Spare28 28 -#define RTS_ID_Spare29 29 - -#define RTS_ID_Spare30 30 -#define RTS_ID_Spare31 31 -#define RTS_ID_Spare32 32 -#define RTS_ID_Spare33 33 -#define RTS_ID_Spare34 34 -#define RTS_ID_Spare35 35 -#define RTS_ID_Spare36 36 -#define RTS_ID_Spare37 37 -#define RTS_ID_Spare38 38 -#define RTS_ID_Spare39 39 - -#define RTS_ID_Spare40 40 -#define RTS_ID_Spare41 41 -#define RTS_ID_Spare42 42 -#define RTS_ID_Spare43 43 -#define RTS_ID_Spare44 44 -#define RTS_ID_Spare45 45 -#define RTS_ID_Spare46 46 -#define RTS_ID_Spare47 47 -#define RTS_ID_Spare48 48 -#define RTS_ID_Spare49 49 - -#define RTS_ID_Spare50 50 -#define RTS_ID_Spare51 51 -#define RTS_ID_Spare52 52 -#define RTS_ID_Spare53 53 -#define RTS_ID_Spare54 54 -#define RTS_ID_Spare55 55 -#define RTS_ID_Spare56 56 -#define RTS_ID_Spare57 57 -#define RTS_ID_Spare58 58 -#define RTS_ID_Spare59 59 - -#define RTS_ID_Spare60 60 -#define RTS_ID_Spare61 61 -#define RTS_ID_Spare62 62 -#define RTS_ID_Spare63 63 -#define RTS_ID_Spare64 64 -#define RTS_ID_Spare65 65 -#define RTS_ID_Spare66 66 -#define RTS_ID_Spare67 67 -#define RTS_ID_Spare68 68 -#define RTS_ID_Spare69 69 - -#define RTS_ID_Spare70 70 -#define RTS_ID_Spare71 71 -#define RTS_ID_Spare72 72 -#define RTS_ID_Spare73 73 -#define RTS_ID_Spare74 74 -#define RTS_ID_Spare75 75 -#define RTS_ID_Spare76 76 -#define RTS_ID_Spare77 77 -#define RTS_ID_Spare78 78 -#define RTS_ID_Spare79 79 - -#define RTS_ID_Spare80 80 -#define RTS_ID_Spare81 81 -#define RTS_ID_Spare82 82 -#define RTS_ID_Spare83 83 -#define RTS_ID_Spare84 84 -#define RTS_ID_Spare85 85 -#define RTS_ID_Spare86 86 -#define RTS_ID_Spare87 87 -#define RTS_ID_Spare88 88 -#define RTS_ID_Spare89 89 - -#define RTS_ID_Spare90 90 -#define RTS_ID_Spare91 91 -#define RTS_ID_Spare92 92 -#define RTS_ID_Spare93 93 -#define RTS_ID_Spare94 94 -#define RTS_ID_Spare95 95 -#define RTS_ID_Spare96 96 -#define RTS_ID_Spare97 97 -#define RTS_ID_Spare98 98 -#define RTS_ID_Spare99 99 - -#define RTS_ID_Spare100 100 -#define RTS_ID_Spare101 101 -#define RTS_ID_Spare102 102 -#define RTS_ID_Spare103 103 -#define RTS_ID_Spare104 104 -#define RTS_ID_Spare105 105 -#define RTS_ID_Spare106 106 -#define RTS_ID_Spare107 107 -#define RTS_ID_Spare108 108 -#define RTS_ID_Spare109 109 - -#define RTS_ID_Spare110 110 -#define RTS_ID_Spare111 111 -#define RTS_ID_Spare112 112 -#define RTS_ID_Spare113 113 -#define RTS_ID_Spare114 114 -#define RTS_ID_Spare115 115 -#define RTS_ID_Spare116 116 -#define RTS_ID_Spare117 117 -#define RTS_ID_Spare118 118 -#define RTS_ID_Spare119 119 - -#define RTS_ID_Spare120 120 -#define RTS_ID_Spare121 121 -#define RTS_ID_Spare122 122 -#define RTS_ID_Spare123 123 -#define RTS_ID_Spare124 124 -#define RTS_ID_Spare125 125 -#define RTS_ID_Spare126 126 -#define RTS_ID_Spare127 127 -#define RTS_ID_Spare128 128 -#define RTS_ID_Spare129 129 - -#define RTS_ID_Spare130 130 -#define RTS_ID_Spare131 131 -#define RTS_ID_Spare132 132 -#define RTS_ID_Spare133 133 -#define RTS_ID_Spare134 134 -#define RTS_ID_Spare135 135 -#define RTS_ID_Spare136 136 -#define RTS_ID_Spare137 137 -#define RTS_ID_Spare138 138 -#define RTS_ID_Spare139 139 - -#define RTS_ID_Spare140 140 -#define RTS_ID_Spare141 141 -#define RTS_ID_Spare142 142 -#define RTS_ID_Spare143 143 -#define RTS_ID_Spare144 144 -#define RTS_ID_Spare145 145 -#define RTS_ID_Spare146 146 -#define RTS_ID_Spare147 147 -#define RTS_ID_Spare148 148 -#define RTS_ID_Spare149 149 - -#define RTS_ID_Spare150 150 -#define RTS_ID_Spare151 151 -#define RTS_ID_Spare152 152 -#define RTS_ID_Spare153 153 -#define RTS_ID_Spare154 154 -#define RTS_ID_Spare155 155 -#define RTS_ID_Spare156 156 -#define RTS_ID_Spare157 157 -#define RTS_ID_Spare158 158 -#define RTS_ID_Spare159 159 - -#define RTS_ID_Spare160 160 -#define RTS_ID_Spare161 161 -#define RTS_ID_Spare162 162 -#define RTS_ID_Spare163 163 -#define RTS_ID_Spare164 164 -#define RTS_ID_Spare165 165 -#define RTS_ID_Spare166 166 -#define RTS_ID_Spare167 167 -#define RTS_ID_Spare168 168 -#define RTS_ID_Spare169 169 - -#define RTS_ID_Spare170 170 -#define RTS_ID_Spare171 171 -#define RTS_ID_Spare172 172 -#define RTS_ID_Spare173 173 -#define RTS_ID_Spare174 174 -#define RTS_ID_Spare175 175 -#define RTS_ID_Spare176 176 -#define RTS_ID_Spare177 177 -#define RTS_ID_Spare178 178 -#define RTS_ID_Spare179 179 - -#define RTS_ID_Spare180 180 -#define RTS_ID_Spare181 181 -#define RTS_ID_Spare182 182 -#define RTS_ID_Spare183 183 -#define RTS_ID_Spare184 184 -#define RTS_ID_Spare185 185 -#define RTS_ID_Spare186 186 -#define RTS_ID_Spare187 187 -#define RTS_ID_Spare188 188 -#define RTS_ID_Spare189 189 - -#define RTS_ID_Spare190 190 -#define RTS_ID_Spare191 191 -#define RTS_ID_Spare192 192 -#define RTS_ID_Spare193 193 -#define RTS_ID_Spare194 194 -#define RTS_ID_Spare195 195 -#define RTS_ID_Spare196 196 -#define RTS_ID_Spare197 197 -#define RTS_ID_Spare198 198 -#define RTS_ID_Spare199 199 - -#define RTS_ID_Spare200 200 -#define RTS_ID_Spare201 201 -#define RTS_ID_Spare202 202 -#define RTS_ID_Spare203 203 -#define RTS_ID_Spare204 204 -#define RTS_ID_Spare205 205 -#define RTS_ID_Spare206 206 -#define RTS_ID_Spare207 207 -#define RTS_ID_Spare208 208 -#define RTS_ID_Spare209 209 - -#define RTS_ID_Spare210 210 -#define RTS_ID_Spare211 211 -#define RTS_ID_Spare212 212 -#define RTS_ID_Spare213 213 -#define RTS_ID_Spare214 214 -#define RTS_ID_Spare215 215 -#define RTS_ID_Spare216 216 -#define RTS_ID_Spare217 217 -#define RTS_ID_Spare218 218 -#define RTS_ID_Spare219 219 - -#define RTS_ID_Spare220 220 -#define RTS_ID_Spare221 221 -#define RTS_ID_Spare222 222 -#define RTS_ID_Spare223 223 -#define RTS_ID_Spare224 224 -#define RTS_ID_Spare225 225 -#define RTS_ID_Spare226 226 -#define RTS_ID_Spare227 227 -#define RTS_ID_Spare228 228 -#define RTS_ID_Spare229 229 - -#define RTS_ID_Spare230 230 -#define RTS_ID_Spare231 231 -#define RTS_ID_Spare232 232 -#define RTS_ID_Spare233 233 -#define RTS_ID_Spare234 234 -#define RTS_ID_Spare235 235 -#define RTS_ID_Spare236 236 -#define RTS_ID_Spare237 237 -#define RTS_ID_Spare238 238 -#define RTS_ID_Spare239 239 - -#define RTS_ID_Spare240 240 -#define RTS_ID_Spare241 241 -#define RTS_ID_Spare242 242 -#define RTS_ID_Spare243 243 -#define RTS_ID_Spare244 244 -#define RTS_ID_Spare245 245 -#define RTS_ID_Spare246 246 -#define RTS_ID_Spare247 247 -#define RTS_ID_Spare248 248 -#define RTS_ID_Spare249 249 - -#define RTS_ID_Spare250 250 -#define RTS_ID_Spare251 251 -#define RTS_ID_Spare252 252 -#define RTS_ID_Spare253 253 -#define RTS_ID_Spare254 254 -#define RTS_ID_Spare255 255 -#define RTS_ID_Spare256 256 -/** \} */ - - -#endif /* SC_RTS_H */ - -/************************/ -/* End of File Comment */ -/************************/ - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/config/obc/ppd/inc/sch_grpids.h b/config/obc/ppd/inc/sch_grpids.h deleted file mode 100644 index f2d6a64f4..000000000 --- a/config/obc/ppd/inc/sch_grpids.h +++ /dev/null @@ -1,48 +0,0 @@ -#ifndef SCH_GRPIDS_H -#define SCH_GRPIDS_H - -/* -** Pragmas -*/ - -/* -** Include Files -*/ - -/* -** Local Defines -*/ -#define SCH_GROUP_NONE (0) -#define SCH_GROUP_CI (0x00000001) -#define SCH_GROUP_CF_SEND_HK (0x00000002) -#define SCH_GROUP_CF_WAKE_UP_REQ_CMD (0x00000010) -#define SCH_GROUP_CS_SEND_HK (0x00000020) -#define SCH_GROUP_MD_WAKEUP (0x00000040) -#define SCH_GROUP_DS_SEND_HK (0x00000080) -#define SCH_GROUP_SC_1HZ_WAKEUP (0x00000100) -#define SCH_GROUP_GOPRO_SEND_HK (0x00000200) -#define SCH_GROUP_FM_SEND_HK (0x00000400) -#define SCH_GROUP_HK_SEND_HK (0x00000800) -#define SCH_GROUP_HS_SEND_HK (0x00001000) -#define SCH_GROUP_LC_SEND_HK (0x00002000) -#define SCH_GROUP_MD_SEND_HK (0x00004000) -#define SCH_GROUP_MM_SEND_HK (0x00008000) -#define SCH_GROUP_SC_SEND_HK (0x00010000) -#define SCH_GROUP_SCH_SEND_HK (0x00020000) -#define SCH_GROUP_CFE_ES_SEND_HK (0x00040000) -#define SCH_GROUP_CFE_EVS_SEND_HK (0x00080000) -#define SCH_GROUP_CFE_SB_SEND_HK (0x00100000) -#define SCH_GROUP_CFE_TBL_SEND_HK (0x00200000) -#define SCH_GROUP_CFE_TIME_SEND_HK (0x00400000) -#define SCH_GROUP_HS_WAKEUP (0x00800000) -#define SCH_GROUP_TO (0x01000000) -#define SCH_GROUP_VC (0x02000000) -#define SCH_GROUP_EA (0x04000000) - -#endif /* SCH_GRPIDS_H */ - -/*======================================================================================= -** End of file sch_grpids.h -**=====================================================================================*/ - - diff --git a/config/obc/ppd/inc/sch_msgids.h b/config/obc/ppd/inc/sch_msgids.h deleted file mode 100644 index be337a78a..000000000 --- a/config/obc/ppd/inc/sch_msgids.h +++ /dev/null @@ -1,10 +0,0 @@ -#ifndef SCH_MSGIDS_H -#define SCH_MSGIDS_H - -#include "msg_ids.h" - -#endif /* SCH_MSGIDS_H */ - -/************************/ -/* End of File Comment */ -/************************/ diff --git a/config/obc/ppd/inc/sch_platform_cfg.h b/config/obc/ppd/inc/sch_platform_cfg.h deleted file mode 100644 index 0c946a35c..000000000 --- a/config/obc/ppd/inc/sch_platform_cfg.h +++ /dev/null @@ -1,294 +0,0 @@ -#ifndef SCH_PLATFORM_CFG_H -#define SCH_PLATFORM_CFG_H - -#include "osapi.h" - - -/************************************************************************* -** Macro definitions -**************************************************************************/ - -/** -** \schcfg Software Bus Command Pipe Depth -** -** \par Description: -** Dictates the number of messages to SCH that can be queued while awaiting -** processing by the SCH Application. -** -** \par Limits -** Must be greater than zero -*/ -#define SCH_PIPE_DEPTH 12 /**< \brief SCH Command Pipe Depth */ - -#define SCH_AD_PIPE_DEPTH 3 -#define SCH_AD_CHILD_TASK_PRIORITY 37 -#define SCH_AD_CHILD_TASK_FLAGS OS_ENABLE_CORE_0 - -/*#define SCH_RTM_SUPPORTED*/ - -/* -** Schedule table definitions... -*/ -/** -** \schcfg Minor Frame Frequency (in Hz) -** -** \par Description: -** Dictates the number of minor frame slots within each Major Frame. -** -** \par Limits -** Must be 2 or more and less than 65536 -*/ -#define SCH_TOTAL_SLOTS 250 /* SCH wake-up rate (Hz) */ - - -/** -** \schcfg Maximum number of Activities per Minor Frame -** -** \par Description: -** Dictates the number of activities that can be defined for each Minor Frame. -** -** \par Limits -** Must be at least one -*/ -#define SCH_ENTRIES_PER_SLOT 15 - - -/** -** \schcfg Maximum Number of Message Definitions in Message Definition Table -** -** \par Description: -** Dictates the number of messages that can be defined in Message Definition Table. -** -** \par Limits -** Must be at least one -*/ -#define SCH_MAX_MESSAGES 128 - -/** -** \schcfg Maximum Message ID allowed in Message Definition Table -** -** \par Description: -** Dictates the maximum message ID that can be used in the Message Definition Table. -** -** \par Limits -** Must be less than or equal to SCH_MDT_MAX_MSG_ID and greater than or equal to 0 -*/ -#define SCH_MDT_MIN_MSG_ID 0 - -/** -** \schcfg Minimum Message ID allowed in Message Definition Table -** -** \par Description: -** Dictates the minimum message ID that can be used in the Message Definition Table. -** -** \par Limits -** Must be less than or equal to #CFE_SB_HIGHEST_VALID_MSGID and greater than SCH_MDT_MIN_MSG_ID -*/ -#define SCH_MDT_MAX_MSG_ID CFE_SB_HIGHEST_VALID_MSGID - - -/** -** \schcfg Maximum Length, in Words, of a Message -** -** \par Description: -** Dictates the maximum number of words that can be assigned to a particular message -** in the Message Definition Table. -** -** \par Limits -** Must be at least large enough to hold the smallest possible message header -* ** (see #CFE_SB_TLM_HDR_SIZE and #CFE_SB_CMD_HDR_SIZE) -*/ -#define SCH_MAX_MSG_WORDS 64 /* max message length (in words) */ - - -/* -** Limits for how far we can get behind and how much we can do at once... -*/ -/** -** \schcfg Maximum Number of slots allowed for catch-up before skipping -** -** \par Description: -** Dictates the number of Minor Frames that will be processed in "Catch Up" -** mode before giving up and skipping ahead. -** -** \par Limits -** -*/ -#define SCH_MAX_LAG_COUNT (SCH_TOTAL_SLOTS / 2) - - -/** -** \schcfg Maximum Number of Slots to be processed when in "Catch Up" mode -** -** \par Description: -** Dictates the maximum number of slots SCH will process when trying to -** "Catch Up" to the correct slot for the current time. -** -** \par Limits -** Must be at least one -*/ -#define SCH_MAX_SLOTS_PER_WAKEUP 5 - -/* -** Conversion factor for how many microseconds in a wake-up period... -*/ -/** -** \schcfg Major Frame Period (in microseconds) -** -** \par Description: -** Dictates the number microseconds in a Major Frame. -** -** \par Limits -** Must be greater than zero -*/ -#define SCH_MICROS_PER_MAJOR_FRAME 1000000 - - -/** -** \schcfg Additional time allowed in Sync Slot to wait for Major Frame Sync (in microseconds) -** -** \par Description: -** Dictates the additional time allowed in the Syncronization Slot -** to allow the Major Frame Sync signal to be received and re-synchronize -** processing. -** -** \par Limits -** Must be less than the normal slot period -*/ -#define SCH_SYNC_SLOT_DRIFT_WINDOW 500 - - -/** -** \schcfg Time, in milliseconds, to wait for all applications to be started and ready to run -** -** \par Description: -** Dictates the timeout for the #CFE_ES_WaitForStartupSync call that SCH uses to wait -** for all of the Applications specified in the startup script to finish initialization. -** SCH will wait this amount of time before assuming all startup script applications have -** been started and will then begin nominal schedule processing. -** -** \par Limits -** None -*/ -#define SCH_STARTUP_SYNC_TIMEOUT 50000 - - -/** -** \schcfg Time, in microseconds, to wait for first Major Frame Sync to arrive -** -** \par Description: -** Dictates the time allowed for the first Major Frame sync signal to arrive -** before assuming it is not going to occur and switching to a freewheeling -** mode. -** -** \par Limits -** Must be greater than or equal to the Major Frame Period -*/ -#define SCH_STARTUP_PERIOD (5*SCH_MICROS_PER_MAJOR_FRAME) - - -/* -** Specifies the limit on the number of consecutive noisy Major Frame signals -** before we begin to ignore them. -*/ -/** -** \schcfg Maximum Number of consecutive Noisy Major Frame signals before they are ignored -** -** \par Description: -** Dictates the number of consecutive "Noisy" Major Frame Signals (i.e. - signals that -** occur outside the expected window of their occurence) until the Major Frame signal -** is automatically ignored and the Minor Frame Timer is used instead. -** -** \par Limits -** This value should never be set to less than two because a single "noisy" Major -** Frame signal is likely when turning on or switching the 1 Hz signal on the spacecraft. -*/ -#define SCH_MAX_NOISY_MAJORF 2 - - -/** -** \schcfg Scheduler API Library Usage Status -** -** \par Description: -** Determines whether or not the Scheduler application is using the API library allowing -** for external tasks to disable and enable schedule processing. Note that if the library -** is to be used it must be generated as a separate object, and loaded prior to the -** appplication. -** -** \par Limits -** This value must either be 0 when not using or including the library, or 1 if the library -** is going to be used. -*/ -#define SCH_LIB_PRESENCE 1 - - -/** -** \schcfg Scheduler API Library Initial Inhibition Count -** -** \par Description: -** Sets the number of times the scheduler must be enabled following library initialization. -** This allows the scheduler to come up either enabled (set to 0) or disabled (set to -** a value greater than or equal to 1) -** -** \par Limits -** This value must be an unsigned 32 bit integer. -*/ -#define SCH_LIB_DIS_CTR 0 - - -/** -** \schcfg Default SCH Schedule Definition Table Filename -** -** \par Description: -** The value of this constant defines the default filename of -** the SCH Schedule Definition Table -** -** \par Limits -** The length of each string, including the NULL terminator cannot exceed -** the #OS_MAX_PATH_LEN value. -*/ - -//#define SCH_SCHEDULE_FILENAME "/cf/apps/sch_def_schtbl.tbl" -#define SCH_SCHEDULE_FILENAME "/cf/apps/sch_def_schtbl.tbl" - - -/** -** \schcfg Default SCH Message Definition Table Filename -** -** \par Description: -** The value of this constant defines the default filename of the -** SCH Message Definition Table -** -** \par Limits -** The length of each string, including the NULL terminator cannot exceed -** the #OS_MAX_PATH_LEN value. -*/ - -#define SCH_MESSAGE_FILENAME "/cf/apps/sch_def_msgtbl.tbl" - - -/** \schcfg Mission specific version number for SCH application -** -** \par Description: -** An application version number consists of four parts: -** major version number, minor version number, revision -** number and mission specific revision number. The mission -** specific revision number is defined here and the other -** parts are defined in "sch_version.h". -** -** \par Limits: -** Must be defined as a numeric value that is greater than -** or equal to zero. -*/ - -#define SCH_MISSION_REV 0 - -#define SCH_DEADLINES_PER_SLOT 5 - - - -#endif /* SCH_PLATFORM_CFG_H */ - -/************************/ -/* End of File Comment */ -/************************/ diff --git a/config/obc/ppd/inc/sens_platform_cfg.h b/config/obc/ppd/inc/sens_platform_cfg.h deleted file mode 100644 index c8ac6f8ec..000000000 --- a/config/obc/ppd/inc/sens_platform_cfg.h +++ /dev/null @@ -1,154 +0,0 @@ -#ifndef SENS_PLATFORM_CFG_H -#define SENS_PLATFORM_CFG_H - -#ifdef __cplusplus -extern "C" { -#endif - -/* -** SENS Platform Configuration Parameter Definitions -*/ - -/** \brief Mission specific version number for SENS application -** -** \par Description: -** An application version number consists of four parts: -** major version number, minor version number, revision -** number and mission specific revision number. The mission -** specific revision number is defined here and the other -** parts are defined in "amc_version.h". -** -** \par Limits: -** Must be defined as a numeric value that is greater than -** or equal to zero. -*/ -#define SENS_MISSION_REV (0) - -/** \brief Pipe depth for the Scheduler pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define SENS_SCH_PIPE_DEPTH (10) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define SENS_SCH_PIPE_NAME ("SENS_SCH_PIPE") - -/** \brief The SB pend behavior type for the Scheduler pipe. -** -** \par Limits: -** One of: CFE_SB_POLL, CFE_SB_PEND_FOREVER, or the -** number of milliseconds to wait for a new message (recommended). -** Note, using CFE_SB_PEND_FOREVER may cause an unresponsive -** application if no messages arrive on this pipe. -*/ -#define SENS_SCH_PIPE_PEND_TIME (2000) - -/** \brief The number of WAKEUP messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max limited to CFE_SB_MAX_PIPE_DEPTH-1. Note the -** SENS_WAKEUP_MID_MAX_MSG_COUNT and SENS_SEND_HK_MID_MAX_MSG_COUNT -** must be less than SENS_SCH_PIPE_DEPTH. -*/ -#define SENS_WAKEUP_MID_MAX_MSG_COUNT (1) - -/** \brief The number of SEND_HK messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. Note the -** SENS_WAKEUP_MID_MAX_MSG_COUNT and SENS_SEND_HK_MID_MAX_MSG_COUNT -** must be less than SENS_SCH_PIPE_DEPTH. -*/ -#define SENS_SEND_HK_MID_MAX_MSG_COUNT (1) - -/** \brief Pipe depth for the command pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define SENS_CMD_PIPE_DEPTH (4) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define SENS_CMD_PIPE_NAME ("SENS_CMD_PIPE") - -/** \brief Pipe depth for the data pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define SENS_DATA_PIPE_DEPTH (4) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define SENS_DATA_PIPE_NAME ("SENS_DATA_PIPE") - -/** \brief The config table default filename -** -** \par Limits: -** The length of each string, including the NULL terminator cannot exceed -** the #OS_MAX_PATH_LEN value. -*/ -#define SENS_CONFIG_TABLE_FILENAME ("/cf/apps/sens_config.tbl") - -/** \brief The timeout value, in milliseconds, to wait for ES application startup sync. -** -** \par Limits: -** This parameter must be at least 1000 (ms). -*/ -#define SENS_STARTUP_TIMEOUT_MSEC (1000) - -/** \brief The maximum time difference, in microseconds, between accelerometer -** measurements to be considered valid. -** -** \par Limits: -** This parameter must be greater than 0. -*/ -#define SENS_MAX_ACC_TIME_DELTA (25) - -/** \brief The maximum time difference, in microseconds, between gyro -** measurements to be considered valid. -** -** \par Limits: -** This parameter must be greater than 0. -*/ -#define SENS_MAX_GYRO_TIME_DELTA (25) - -/** \brief The maximum time difference, in microseconds, between magnetometer -** measurements to be considered valid. -** -** \par Limits: -** This parameter must be greater than 0. -*/ -#define SENS_MAX_MAG_TIME_DELTA (25) - -/** \brief The maximum time difference, in microseconds, between barometer -** measurements to be considered valid. -** -** \par Limits: -** This parameter must be greater than 0. -*/ -#define SENS_MAX_BARO_TIME_DELTA (100) - - -#ifdef __cplusplus -} -#endif - -#endif /* SENS_PLATFORM_CFG_H */ - -/************************/ -/* End of File Comment */ -/************************/ - diff --git a/config/obc/ppd/inc/to_msgids.h b/config/obc/ppd/inc/to_msgids.h deleted file mode 100644 index a00beac0e..000000000 --- a/config/obc/ppd/inc/to_msgids.h +++ /dev/null @@ -1,10 +0,0 @@ -#ifndef TO_MSGIDS_H -#define TO_MSGIDS_H - -#include "msg_ids.h" - -#endif - -/************************/ -/* End of File Comment */ -/************************/ diff --git a/config/obc/ppd/inc/to_platform_cfg.h b/config/obc/ppd/inc/to_platform_cfg.h deleted file mode 100644 index c520a9242..000000000 --- a/config/obc/ppd/inc/to_platform_cfg.h +++ /dev/null @@ -1,281 +0,0 @@ -#ifndef TO_PLATFORM_CFG_H -#define TO_PLATFORM_CFG_H - -#ifdef __cplusplus -extern "C" { -#endif - -#include "cfe_platform_cfg.h" - -/* -** Platform Configuration Parameter Definitions -*/ - - -/** \tocfg Child task flags -** -** \par Description: -** These are optional flags passed to the #CFE_ES_CreateChildTask -** function when creating the CFE child task. -** -*/ -#define TO_CUSTOM_CHILD_TASK_FLAGS (OS_ENABLE_CORE_0) - - -/** \tocfg Child task stack size -** -** \par Description: -** Child task stack size passed to the #CFE_ES_CreateChildTask -** function when creating the CFE child task. Stack size is in -** bytes. -** -*/ -#define TO_CUSTOM_TASK_STACK_SIZE (131072) - - -/** \tocfg Default telemetry destination IP address -** -** \par Description: -** Default IP address to send the telemetry stream to. This is default -** only and can be changed by command at runtime. -** -*/ -#define TO_UDP_CHANNEL_ADDRESS "192.168.2.215" - - -/** \tocfg Default telemetry destination UDP port -** -** \par Description: -** Default UDP port to send the telemetry stream to. This is default -** only and can be changed by command at runtime. -** -*/ -#define TO_UDP_CHANNEL_PORT (5011) - - -/** \tocfg Message Flow packet limit -** -** \par Description: -** This is the maximum number of message flow entries that can fit in -** a message flow diagnostic message. -** -*/ -#define TO_MSG_FLOW_PKT_LIMIT (200) - - -/** \tocfg Maximum message length -** -** \par Description: -** The maximum size that an output telemetry message can be. This is in -** bytes. If a message exceeds this size, it will be dropped by the -** classifier. -** -*/ -#define TO_MAX_MSG_LENGTH (32767) - -/** \tocfg The UDP channel's CF throttling semaphore name -** -** \par Limits: -** Two channels in CF must not have the same semaphore name. This must be unique -** compared to other channels' throttling semaphores. -*/ -#define TO_UDP_CF_THROTTLE_SEM_NAME "TO_CF_CH0_SEM" - - -/** \tocfg The UDP channel Name -*/ -#define TO_UDP_CHANNEL_NAME "UDP" - - - -/** \tocfg The UDP channel's default and maximum value for the CF - * throttling semaphore -** -** \par Limits: -** Must not be larger than the TO_DATA_PIPE_DEPTH -*/ -#define TO_UDP_CF_MAX_PDUS (4) - - -/** \tocfg Mission specific version number for TO application -** -** \par Description: -** An application version number consists of four parts: -** major version number, minor version number, revision -** number and mission specific revision number. The mission -** specific revision number is defined here and the other -** parts are defined in "to_version.h". -** -** \par Limits: -** Must be defined as a numeric value that is greater than -** or equal to zero. -*/ -#define TO_MISSION_REV (1) - -/** \tocfg Pipe depth for the Scheduler pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define TO_SCH_PIPE_DEPTH (2) - -/** \tocfg Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define TO_SCH_PIPE_NAME ("TO_SCH_PIPE") - -/** \tocfg The SB pend behavior type for the Scheduler pipe. -** -** \par Limits: -** One of: CFE_SB_POLL, CFE_SB_PEND_FOREVER, or the -** number of milliseconds to wait for a new message (recommended). -** Note, using CFE_SB_PEND_FOREVER may cause an unresponsive -** application if no messages arrive on this pipe. -*/ -#define TO_SCH_PIPE_PEND_TIME (2000) - -/** \tocfg The number of WAKEUP messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max limited to CFE_SB_MAX_PIPE_DEPTH-1. Note the -** TO_SCH_PIPE_WAKEUP_RESERVED and TO_SCH_PIPE_SEND_HK_RESERVED -** must be less than TO_SCH_PIPE_DEPTH. -*/ -#define TO_SCH_PIPE_WAKEUP_RESERVED (1) - -/** \tocfg The number of SEND_HK messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. Note the -** TO_SCH_PIPE_WAKEUP_RESERVED and TO_SCH_PIPE_SEND_HK_RESERVED -** must be less than TO_SCH_PIPE_DEPTH. -*/ -#define TO_SCH_PIPE_SEND_HK_RESERVED (1) - -/** \tocfg Pipe depth for the command pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define TO_CMD_PIPE_DEPTH (4) - -/** \tocfg Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define TO_CMD_PIPE_NAME ("TO_CMD_PIPE") - -/** \tocfg Pipe depth for the data pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define TO_DATA_PIPE_DEPTH (CFE_SB_MAX_PIPE_DEPTH) - -/** \tocfg The config table default filename -** -** \par Limits: -** The length of each string, including the NULL terminator cannot exceed -** the #OS_MAX_PATH_LEN value. -*/ -#define TO_UDP_CONFIG_TABLE_FILENAME ("/cf/apps/to_udp_cfg.tbl") - - -#define TO_MAX_MEMPOOL_BLK_SIZES (8) - -/** -** \cfeescfg Define TO Memory Pool Block Sizes -** -** \par Description: -** TO Memory Pool Block Sizes -** -** \par Limits -** These sizes MUST be increasing and MUST be an integral multiple of 4. -** The number of block sizes defined cannot exceed -** #CFE_ES_MAX_MEMPOOL_BLOCK_SIZES -*/ -#define TO_MEM_BLOCK_SIZE_01 32 -#define TO_MEM_BLOCK_SIZE_02 64 -#define TO_MEM_BLOCK_SIZE_03 128 -#define TO_MEM_BLOCK_SIZE_04 256 -#define TO_MEM_BLOCK_SIZE_05 512 -#define TO_MEM_BLOCK_SIZE_06 2048 -#define TO_MEM_BLOCK_SIZE_07 8192 -#define TO_MAX_BLOCK_SIZE (TO_MEM_BLOCK_SIZE_07 + TO_MEM_BLOCK_SIZE_07) - -/** - * \tocfg Defines the table identification name used for table registration - * of the configuration table. - */ -#define TO_UDP_CONFIG_TABLENAME "UDP_CFG" - -/** - * \tocfg Defines the table identification name used for table registration - * of the dump table. - */ -#define TO_UDP_DUMP_TABLENAME "UDP_DMP" - -/** \tocfg The timeout value, in milliseconds, to wait for ES application startup sync. -** -** \par Limits: -** This parameter must be at least 1000 (ms). -*/ -#define TO_STARTUP_TIMEOUT_MSEC (1000) - -/** \tocfg Maximum number of messages to classify per processing frame. -*/ -#define TO_MAX_MSGS_OUT_PER_FRAME (100) - -/** \tocfg Maximum number of messages to classify per processing frame. -*/ - -/** \tocfg Maximum number configurable channels. - * -** \par Description: This is normally set to 1. -*/ -#define TO_MAX_CHANNELS (1) - -/** \tocfg Channel output queue depth. - * -** \par Description: This defines how many messages can be queued into the -** channel output queue by the scheduler. -*/ -#define TO_OUTPUT_QUEUE_DEPTH (20) - -/** \tocfg Development UDP channel task priority. - * -** \par Description: This defines the priority of the development UDP -** child task. -*/ -#define TO_UDP_CHANNEL_TASK_PRIORITY (119) - -/** -** \tocfg Number of bytes in the Message Memory Pool -** -** \par Description: -** The message memory pool contains the memory needed for the queued messages packets. -** The queued messages are dynamically allocated from this pool when the -** messages are received and queued, and deallocated when messages are transmitted -** or a new table is loaded. -** -** \par Limits -** The Telemetry Output app does not place a limit on this parameter, but there is -** an overhead cost in the memory pool. The value must be larger than what is -** needed. -*/ -#define TO_NUM_BYTES_IN_MEM_POOL (200 * TO_MAX_BLOCK_SIZE) - - -#ifdef __cplusplus -} -#endif - -#endif /* TO_PLATFORM_CFG_H */ - -/************************/ -/* End of File Comment */ -/************************/ - diff --git a/config/obc/ppd/inc/ulr_platform_cfg.h b/config/obc/ppd/inc/ulr_platform_cfg.h deleted file mode 100644 index 16e60d3b0..000000000 --- a/config/obc/ppd/inc/ulr_platform_cfg.h +++ /dev/null @@ -1,126 +0,0 @@ -#ifndef ULR_PLATFORM_CFG_H -#define ULR_PLATFORM_CFG_H - -#ifdef __cplusplus -extern "C" { -#endif - -#define ULR_LISTENER_TASK_FLAGS OS_ENABLE_CORE_0 - -/* -** ULR Platform Configuration Parameter Definitions -*/ - -/** \brief Mission specific version number for ULR application -** -** \par Description: -** An application version number consists of four parts: -** major version number, minor version number, revision -** number and mission specific revision number. The mission -** specific revision number is defined here and the other -** parts are defined in "amc_version.h". -** -** \par Limits: -** Must be defined as a numeric value that is greater than -** or equal to zero. -*/ -#define ULR_MISSION_REV (0) - -/** \brief Pipe depth for the Scheduler pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define ULR_SCH_PIPE_DEPTH (2) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define ULR_SCH_PIPE_NAME ("ULR_SCH_PIPE") - -/** \brief The SB pend behavior type for the Scheduler pipe. -** -** \par Limits: -** One of: CFE_SB_POLL, CFE_SB_PEND_FOREVER, or the -** number of milliseconds to wait for a new message (recommended). -** Note, using CFE_SB_PEND_FOREVER may cause an unresponsive -** application if no messages arrive on this pipe. -*/ -#define ULR_SCH_PIPE_PEND_TIME (2000) - -/** \brief The number of WAKEUP messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max limited to CFE_SB_MAX_PIPE_DEPTH-1. Note the -** ULR_MEASURE_MID_MAX_MSG_COUNT and ULR_SEND_HK_MID_MAX_MSG_COUNT -** must be less than ULR_SCH_PIPE_DEPTH. -*/ -#define ULR_MEASURE_MID_MAX_MSG_COUNT (1) - -/** \brief The number of SEND_HK messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. Note the -** ULR_MEASURE_MID_MAX_MSG_COUNT and ULR_SEND_HK_MID_MAX_MSG_COUNT -** must be less than ULR_SCH_PIPE_DEPTH. -*/ -#define ULR_SEND_HK_MID_MAX_MSG_COUNT (1) - -/** \brief Pipe depth for the command pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define ULR_CMD_PIPE_DEPTH (4) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define ULR_CMD_PIPE_NAME ("ULR_CMD_PIPE") - -/** \brief Pipe depth for the data pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define ULR_DATA_PIPE_DEPTH (4) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define ULR_DATA_PIPE_NAME ("ULR_DATA_PIPE") - -/** \brief The timeout value, in milliseconds, to wait for ES application startup sync. -** -** \par Limits: -** This parameter must be at least 1000 (ms). -*/ -#define ULR_STARTUP_TIMEOUT_MSEC (1000) - -/* TODO: Add Doxygen */ -#define ULR_CUSTOM_PORT_PATH "/dev/ttyS6" -#define ULR_SENS_VARIANCE (0.045f * 0.045f) - - -#define ULR_LISTENER_TASK_PRIORITY (64) -#define ULR_LISTENER_TASK_STACK_SIZE (16000) -#define ULR_LISTENER_TASK_NAME "ULR_LISTENER" -#define ULR_MUTEX_NAME "ULR_MUTEX" - - -#ifdef __cplusplus -} -#endif - -#endif /* ULR_PLATFORM_CFG_H */ - -/************************/ -/* End of File Comment */ -/************************/ - diff --git a/config/obc/ppd/inc/vc_platform_cfg.h b/config/obc/ppd/inc/vc_platform_cfg.h deleted file mode 100644 index 61ac4baaf..000000000 --- a/config/obc/ppd/inc/vc_platform_cfg.h +++ /dev/null @@ -1,305 +0,0 @@ -#ifndef VC_PLATFORM_CFG_H -#define VC_PLATFORM_CFG_H - -#ifdef __cplusplus -extern "C" { -#endif - -#include - -#define VC_STREAMING_TASK_FLAGS OS_ENABLE_CORE_0 - -/* -** VC Platform Configuration Parameter Definitions -*/ - -/** \brief Mission specific version number for VC application -** -** \par Description: -** An application version number consists of four parts: -** major version number, minor version number, revision -** number and mission specific revision number. The mission -** specific revision number is defined here and the other -** parts are defined in "vc_version.h". -** -** \par Limits: -** Must be defined as a numeric value that is greater than -** or equal to zero. -*/ -#define VC_MISSION_REV (0) - -/** \brief Pipe depth for the Scheduler pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define VC_SCH_PIPE_DEPTH (2) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define VC_SCH_PIPE_NAME ("VC_SCH_PIPE") - -/** \brief The SB pend behavior type for the Scheduler pipe. -** -** \par Limits: -** One of: CFE_SB_POLL, CFE_SB_PEND_FOREVER, or the -** number of milliseconds to wait for a new message (recommended). -** Note, using CFE_SB_PEND_FOREVER may cause an unresponsive -** application if no messages arrive on this pipe. -*/ -#define VC_SCH_PIPE_PEND_TIME (2000) - -/** \brief The number of WAKEUP messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max limited to CFE_SB_MAX_PIPE_DEPTH-1. Note the -** VC_SCH_PIPE_WAKEUP_RESERVED and VC_SCH_PIPE_SEND_HK_RESERVED -** must be less than VC_SCH_PIPE_DEPTH. -*/ -#define VC_SCH_PIPE_WAKEUP_RESERVED (1) - -/** \brief The number of SEND_HK messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. Note the -** VC_SCH_PIPE_WAKEUP_RESERVED and VC_SCH_PIPE_SEND_HK_RESERVED -** must be less than VC_SCH_PIPE_DEPTH. -*/ -#define VC_SCH_PIPE_SEND_HK_RESERVED (1) - -/** \brief Pipe depth for the command pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define VC_CMD_PIPE_DEPTH (4) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define VC_CMD_PIPE_NAME ("VC_CMD_PIPE") - -/** \brief The timeout value, in milliseconds, to wait for ES application startup sync. -** -** \par Limits: -** This parameter must be at least 1000 (ms). -*/ -#define VC_STARTUP_TIMEOUT_MSEC (1000) - -/** \brief The max address length -** -** \par Limits: -** This parameter must be at least 16 for IPV4. -*/ -#define VC_ADDRESS_LENGTH INET_ADDRSTRLEN - -/* Custom Settings */ - - -/** \brief Max channels allowed -** -** \par Limits: -** Minimum of 1. -*/ -#define VC_MAX_OUTPUT_CHANNELS (5) - -/** \brief Max device path length -** -** \par Limits: -** OS_MAX_LOCAL_PATH_LEN -*/ -#define VC_MAX_DEVICE_PATH OS_MAX_LOCAL_PATH_LEN - -/** \brief Max number of camera devices -** -** \par Limits: -** Minimum of 1. -*/ -#define VC_MAX_DEVICES (1) - -/** \brief Max buffer size -** -** \par Limits: -** Minimum based on configured device driver requirements. -*/ -//#define VC_MAX_BUFFER_SIZE (115200) -#define VC_MAX_BUFFER_SIZE (1228800) - -/** \brief Max packet size -** -** \par Limits: -** UDP max payload size. -*/ -#define VC_MAX_PACKET_SIZE (65527) - -/** \brief Retry attemps for interrupted calls -** -** \par Limits: -** None. -*/ -#define VC_MAX_RETRY_ATTEMPTS (2) - -/** \brief Sleep time micro seconds for interrupted calls -** -** \par Limits: -** None. -*/ -#define VC_MAX_RETRY_SLEEP_USEC (10) - -/** \brief Streaming task priority -** -** \par Limits: -** 0 to MAX_PRIORITY (usually 255) -*/ -#define VC_STREAMING_TASK_PRIORITY (91) - -/** \brief Streaming task name -** -** \par Limits: -** OS_MAX_API_NAME -*/ -#define VC_STREAMING_TASK_NAME "VC_STREAM" - -/* Camera settings */ - -/** \brief Video resolution width -** -** \par Limits: -** Specific to device -*/ -#define VC_FRAME_WIDTH (320) - -/** \brief Video resolution height -** -** \par Limits: -** Specific to device -*/ -#define VC_FRAME_HEIGHT (240) - -/** \brief Video frame rate -** -** \par Limits: -** Specific to device -*/ -#define VC_FRAMERATE (30) - -/** \brief Video camera device path -** -** \par Limits: -** OS_MAX_LOCAL_PATH_LEN -*/ -#define VC_DEVICE_PATH "/dev/video0" - - -/* Ground system settings */ - -/** \brief Ground system ip address -** -** \par Limits: -** INET_ADDRSTRLEN -*/ -#define VC_DESTINATION_IP "192.168.1.66" - -/** \brief Ground system port -** -** \par Limits: -** uint16 decimal -*/ -#define VC_DESTINATION_PORT (3001) - -/** \brief Source system ip address -** -** \par Limits: -** INET_ADDRSTRLEN -*/ -#define VC_SOURCE_IP "0" - -/** \brief Source system port -** -** \par Limits: -** uint16 decimal -*/ -#define VC_SOURCE_PORT (0) - -/* V4L settings */ - -/** \brief V4L streaming io method -** -** \par Limits: -** V4L specific. -*/ -#define VC_V4L_IO_METHOD V4L2_MEMORY_USERPTR - -/** \brief V4L buffer type -** -** \par Limits: -** V4L specific. -*/ -#define VC_V4L_BUFFER_TYPE V4L2_BUF_TYPE_VIDEO_CAPTURE - -/** \brief V4L video format -** -** \par Limits: -** V4L specific. -*/ -#define VC_V4L_VIDEO_FORMAT V4L2_PIX_FMT_MJPEG - -/** \brief V4L field order -** -** \par Limits: -** V4L specific. -*/ -#define VC_V4L_VIDEO_FIELD_ORDER V4L2_FIELD_NONE - -/** \brief V4L buffers to request -** -** \par Limits: -** V4L specific. -*/ -#define VC_V4L_BUFFER_REQUEST (4) - -/** \brief V4L Memory Type -** -** \par Limits: -** V4L specific. -*/ -#define VC_V4L_MEMORY_TYPE V4L2_MEMORY_USERPTR - -/* Timeout settings */ - -/** \brief Wait time for camera data in seconds -** -** \par Limits: -** None. -*/ -#define VC_BUFFER_FILL_TIMEOUT_SEC (2) - -/** \brief Wait time for camera data in microseconds -** -** \par Limits: -** None. -*/ -#define VC_BUFFER_FILL_TIMEOUT_USEC (0) - -/** \brief Max timeouts until exiting streaming task -** -** \par Limits: -** None. -*/ -#define VC_BUFFER_TIMEOUTS_ALLOWED (2) - - -#ifdef __cplusplus -} -#endif - -#endif /* VC_PLATFORM_CFG_H */ - -/************************/ -/* End of File Comment */ -/************************/ diff --git a/config/obc/ppd/inc/vm_platform_cfg.h b/config/obc/ppd/inc/vm_platform_cfg.h deleted file mode 100644 index af0ac002b..000000000 --- a/config/obc/ppd/inc/vm_platform_cfg.h +++ /dev/null @@ -1,151 +0,0 @@ -#ifndef VM_PLATFORM_CFG_H -#define VM_PLATFORM_CFG_H - -#ifdef __cplusplus -extern "C" { -#endif - -/* -** VM Platform Configuration Parameter Definitions -*/ - -/** \brief Mission specific version number for VM application -** -** \par Description: -** An application version number consists of four parts: -** major version number, minor version number, revision -** number and mission specific revision number. The mission -** specific revision number is defined here and the other -** parts are defined in "amc_version.h". -** -** \par Limits: -** Must be defined as a numeric value that is greater than -** or equal to zero. -*/ -#define VM_MISSION_REV (0) - -/** \brief Pipe depth for the Scheduler pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define VM_SCH_PIPE_DEPTH (30) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define VM_SCH_PIPE_NAME ("VM_SCH_PIPE") - -/** \brief The SB pend behavior type for the Scheduler pipe. -** -** \par Limits: -** One of: CFE_SB_POLL, CFE_SB_PEND_FOREVER, or the -** number of milliseconds to wait for a new message (recommended). -** Note, using CFE_SB_PEND_FOREVER may cause an unresponsive -** application if no messages arrive on this pipe. -*/ -#define VM_SCH_PIPE_PEND_TIME (2000) - -/** \brief The number of WAKEUP messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max limited to CFE_SB_MAX_PIPE_DEPTH-1. Note the -** VM_WAKEUP_MID_MAX_MSG_COUNT and VM_SEND_HK_MID_MAX_MSG_COUNT -** must be less than VM_SCH_PIPE_DEPTH. -*/ -#define VM_WAKEUP_MID_MAX_MSG_COUNT (1) - -/** \brief The number of SEND_HK messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. Note the -** VM_WAKEUP_MID_MAX_MSG_COUNT and VM_SEND_HK_MID_MAX_MSG_COUNT -** must be less than VM_SCH_PIPE_DEPTH. -*/ -#define VM_SEND_HK_MID_MAX_MSG_COUNT (1) - -/** \brief Pipe depth for the command pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define VM_CMD_PIPE_DEPTH (4) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define VM_CMD_PIPE_NAME ("VM_CMD_PIPE") - -/** \brief Pipe depth for the data pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define VM_DATA_PIPE_DEPTH (18) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define VM_DATA_PIPE_NAME ("VM_DATA_PIPE") - -/** \brief Pipe depth for the parameters pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define VM_PARAM_PIPE_DEPTH (4) - -/** \brief Pipe name for the parameters pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define VM_PARAM_PIPE_NAME ("VM_PARAM_PIPE") - -/** \brief The config table default filename -** -** \par Limits: -** The length of each string, including the NULL terminator cannot exceed -** the #OS_MAX_PATH_LEN value. -*/ -#define VM_CONFIG_TABLE_FILENAME ("/cf/apps/vm_config.tbl") - -/** \brief The timeout value, in milliseconds, to wait for ES application startup sync. -** -** \par Limits: -** This parameter must be at least 1000 (ms). -*/ -#define VM_STARTUP_TIMEOUT_MSEC (1000) - -/** \brief The timeout value, in microseconds, to wait until VM starts checking battery -** voltage. -** -** \par Limits: -** None -*/ -#define VM_BATTERY_VOLTAGE_CHECK_DELAY (6000000) - -/** \brief The minimum battery voltage to be considered valid. -** -** \par Limits: -** Must be greater than or equal to FLT_EPSILON. -*/ -#define VM_MINIMUM_VALID_BATTERY_VOLTAGE (2.0f) - - -#ifdef __cplusplus -} -#endif - -#endif /* VM_PLATFORM_CFG_H */ - -/************************/ -/* End of File Comment */ -/************************/ - diff --git a/config/ocpoc/quadx/inc/ae_platform_cfg.h b/config/ocpoc/quadx/inc/ae_platform_cfg.h deleted file mode 100644 index 0cd966dd5..000000000 --- a/config/ocpoc/quadx/inc/ae_platform_cfg.h +++ /dev/null @@ -1,122 +0,0 @@ -#ifndef AE_PLATFORM_CFG_H -#define AE_PLATFORM_CFG_H - -#ifdef __cplusplus -extern "C" { -#endif - -/* -** AE Platform Configuration Parameter Definitions -*/ - -/** \brief Mission specific version number for AE application -** -** \par Description: -** An application version number consists of four parts: -** major version number, minor version number, revision -** number and mission specific revision number. The mission -** specific revision number is defined here and the other -** parts are defined in "amc_version.h". -** -** \par Limits: -** Must be defined as a numeric value that is greater than -** or equal to zero. -*/ -#define AE_MISSION_REV (0) - -/** \brief Pipe depth for the Scheduler pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define AE_SCH_PIPE_DEPTH (2) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define AE_SCH_PIPE_NAME ("AE_SCH_PIPE") - -/** \brief The SB pend behavior type for the Scheduler pipe. -** -** \par Limits: -** One of: CFE_SB_POLL, CFE_SB_PEND_FOREVER, or the -** number of milliseconds to wait for a new message (recommended). -** Note, using CFE_SB_PEND_FOREVER may cause an unresponsive -** application if no messages arrive on this pipe. -*/ -#define AE_SCH_PIPE_PEND_TIME (2000) - -/** \brief The number of WAKEUP messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max limited to CFE_SB_MAX_PIPE_DEPTH-1. Note the -** AE_WAKEUP_MID_MAX_MSG_COUNT and AE_SEND_HK_MID_MAX_MSG_COUNT -** must be less than AE_SCH_PIPE_DEPTH. -*/ -#define AE_WAKEUP_MID_MAX_MSG_COUNT (1) - -/** \brief The number of SEND_HK messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. Note the -** AE_WAKEUP_MID_MAX_MSG_COUNT and AE_SEND_HK_MID_MAX_MSG_COUNT -** must be less than AE_SCH_PIPE_DEPTH. -*/ -#define AE_SEND_HK_MID_MAX_MSG_COUNT (1) - -/** \brief Pipe depth for the command pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define AE_CMD_PIPE_DEPTH (4) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define AE_CMD_PIPE_NAME ("AE_CMD_PIPE") - -/** \brief Pipe depth for the data pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define AE_DATA_PIPE_DEPTH (4) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define AE_DATA_PIPE_NAME ("AE_DATA_PIPE") - -/** \brief The config table default filename -** -** \par Limits: -** The length of each string, including the NULL terminator cannot exceed -** the #OS_MAX_PATH_LEN value. -*/ -#define AE_CONFIG_TABLE_FILENAME ("/cf/apps/ae_config.tbl") - -/** \brief The timeout value, in milliseconds, to wait for ES application startup sync. -** -** \par Limits: -** This parameter must be at least 1000 (ms). -*/ -#define AE_STARTUP_TIMEOUT_MSEC (1000) - - -#ifdef __cplusplus -} -#endif - -#endif /* AE_PLATFORM_CFG_H */ - -/************************/ -/* End of File Comment */ -/************************/ - diff --git a/config/ocpoc/quadx/inc/amc_platform_cfg.h b/config/ocpoc/quadx/inc/amc_platform_cfg.h deleted file mode 100644 index e72128569..000000000 --- a/config/ocpoc/quadx/inc/amc_platform_cfg.h +++ /dev/null @@ -1,130 +0,0 @@ -#ifndef AMC_PLATFORM_CFG_H -#define AMC_PLATFORM_CFG_H - -#ifdef __cplusplus -extern "C" { -#endif - -/* -** amc Platform Configuration Parameter Definitions -*/ - -/** \brief Mission specific version number for AMC application -** -** \par Description: -** An application version number consists of four parts: -** major version number, minor version number, revision -** number and mission specific revision number. The mission -** specific revision number is defined here and the other -** parts are defined in "amc_version.h". -** -** \par Limits: -** Must be defined as a numeric value that is greater than -** or equal to zero. -*/ -#define AMC_MISSION_REV (0) - -/** \brief Pipe depth for the Scheduler pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define AMC_SCH_PIPE_DEPTH (15) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define AMC_SCH_PIPE_NAME ("AMC_SCH_PIPE") - -/** \brief The SB pend behavior type for the Scheduler pipe. -** -** \par Limits: -** One of: CFE_SB_POLL, CFE_SB_PEND_FOREVER, or the -** number of milliseconds to wait for a new message (recommended). -** Note, using CFE_SB_PEND_FOREVER may cause an unresponsive -** application if no messages arrive on this pipe. -*/ -#define AMC_SCH_PIPE_PEND_TIME (2000) - -/** \brief The number of WAKEUP messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max limited to CFE_SB_MAX_PIPE_DEPTH-1. Note the -** AMC_SCH_PIPE_WAKEUP_RESERVED and AMC_SCH_PIPE_SEND_HK_RESERVED -** must be less than AMC_SCH_PIPE_DEPTH. -*/ -#define AMC_SCH_PIPE_WAKEUP_RESERVED (1) - -/** \brief The number of SEND_HK messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. Note the -** AMC_SCH_PIPE_WAKEUP_RESERVED and AMC_SCH_PIPE_SEND_HK_RESERVED -** must be less than AMC_SCH_PIPE_DEPTH. -*/ -#define AMC_SCH_PIPE_SEND_HK_RESERVED (1) - -/** \brief Pipe depth for the command pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define AMC_CMD_PIPE_DEPTH (4) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define AMC_CMD_PIPE_NAME ("AMC_CMD_PIPE") - -/** \brief Pipe depth for the data pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define AMC_PARAM_PIPE_DEPTH (4) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define AMC_PARAM_PIPE_NAME ("AMC_PARAM_PIPE") - -/** \brief The config table default filename -** -** \par Limits: -** The length of each string, including the NULL terminator cannot exceed -** the #OS_MAX_PATH_LEN value. -*/ -#define AMC_PWM_CONFIG_TABLE_FILENAME ("/cf/apps/amc_pwmcfg.tbl") - -#define AMC_MIXER_CONFIG_TABLE_FILENAME ("/cf/apps/amc_mixercfg.tbl") - -/** \brief The timeout value, in milliseconds, to wait for ES application startup sync. -** -** \par Limits: -** This parameter must be at least 1000 (ms). -*/ -#define AMC_STARTUP_TIMEOUT_MSEC (1000) - -/* TODO: Add Doxygen markup. */ -#define AMC_MAX_MOTOR_OUTPUTS (8) - -#define AMC_MAX_PARAMS (3) - - - -#ifdef __cplusplus -} -#endif - -#endif /* AMC_PLATFORM_CFG_H */ - -/************************/ -/* End of File Comment */ -/************************/ - diff --git a/config/ocpoc/quadx/inc/bat_platform_cfg.h b/config/ocpoc/quadx/inc/bat_platform_cfg.h deleted file mode 100644 index 10a8ed217..000000000 --- a/config/ocpoc/quadx/inc/bat_platform_cfg.h +++ /dev/null @@ -1,112 +0,0 @@ -#ifndef BAT_PLATFORM_CFG_H -#define BAT_PLATFORM_CFG_H - -#ifdef __cplusplus -extern "C" { -#endif - -#define BAT_LISTENER_TASK_FLAGS OS_ENABLE_CORE_0 - -/* -** BAT Platform Configuration Parameter Definitions -*/ - -/** \brief Mission specific version number for BAT application -** -** \par Description: -** An application version number consists of four parts: -** major version number, minor version number, revision -** number and mission specific revision number. The mission -** specific revision number is defined here and the other -** parts are defined in "amc_version.h". -** -** \par Limits: -** Must be defined as a numeric value that is greater than -** or equal to zero. -*/ -#define BAT_MISSION_REV (0) - -/** \brief Pipe depth for the Scheduler pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define BAT_SCH_PIPE_DEPTH (3) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define BAT_SCH_PIPE_NAME ("BAT_SCH_PIPE") - -/** \brief The SB pend behavior type for the Scheduler pipe. -** -** \par Limits: -** One of: CFE_SB_POLL, CFE_SB_PEND_FOREVER, or the -** number of milliseconds to wait for a new message (recommended). -** Note, using CFE_SB_PEND_FOREVER may cause an unresponsive -** application if no messages arrive on this pipe. -*/ -#define BAT_SCH_PIPE_PEND_TIME (2000) - -/** \brief The number of WAKEUP messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max limited to CFE_SB_MAX_PIPE_DEPTH-1. Note the -** BAT_WAKEUP_MID_MAX_MSG_COUNT and BAT_SEND_HK_MID_MAX_MSG_COUNT -** must be less than BAT_SCH_PIPE_DEPTH. -*/ -#define BAT_WAKEUP_MID_MAX_MSG_COUNT (1) - -/** \brief The number of SEND_HK messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. Note the -** BAT_WAKEUP_MID_MAX_MSG_COUNT and BAT_SEND_HK_MID_MAX_MSG_COUNT -** must be less than BAT_SCH_PIPE_DEPTH. -*/ -#define BAT_SEND_HK_MID_MAX_MSG_COUNT (1) - -/** \brief Pipe depth for the command pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define BAT_CMD_PIPE_DEPTH (4) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define BAT_CMD_PIPE_NAME ("BAT_CMD_PIPE") - -/** \brief The config table default filename -** -** \par Limits: -** The length of each string, including the NULL terminator cannot exceed -** the #OS_MAX_PATH_LEN value. -*/ -#define BAT_CONFIG_TABLE_FILENAME ("/cf/apps/bat_config.tbl") - -/** \brief The timeout value, in milliseconds, to wait for ES application startup sync. -** -** \par Limits: -** This parameter must be at least 1000 (ms). -*/ -#define BAT_STARTUP_TIMEOUT_MSEC (1000) - -/** \brief BAT Child task stack size */ -#define BAT_LISTENER_TASK_STACK_SIZE (16000) - -#ifdef __cplusplus -} -#endif - -#endif /* BAT_PLATFORM_CFG_H */ - -/************************/ -/* End of File Comment */ -/************************/ - diff --git a/config/ocpoc/quadx/inc/cf_msgids.h b/config/ocpoc/quadx/inc/cf_msgids.h deleted file mode 100644 index 820de96d4..000000000 --- a/config/ocpoc/quadx/inc/cf_msgids.h +++ /dev/null @@ -1,10 +0,0 @@ -#ifndef CF_MSGIDS_H -#define CF_MSGIDS_H - -#include "msg_ids.h" - -#endif /* CF_MSGIDS_H */ - -/************************/ -/* End of File Comment */ -/************************/ diff --git a/config/ocpoc/quadx/inc/cf_platform_cfg.h b/config/ocpoc/quadx/inc/cf_platform_cfg.h deleted file mode 100644 index d99eaa728..000000000 --- a/config/ocpoc/quadx/inc/cf_platform_cfg.h +++ /dev/null @@ -1,373 +0,0 @@ -#ifndef CF_PLATFORM_CFG_H -#define CF_PLATFORM_CFG_H - -/************************************************************************* -** Macro definitions -**************************************************************************/ - -/** -** \cfcfg Application Pipe Depth -** -** \par Description: -** Dictates the pipe depth of the cf command pipe. -** -** \par Limits: -** The minimum size of this paramater is 1 -** The maximum size dictated by cFE platform configuration -** parameter is CFE_SB_MAX_PIPE_DEPTH -*/ -#define CF_PIPE_DEPTH 40 - - -/** -** \cfcfg Application Pipe Name -** -** \par Description: -** Dictates the pipe name of the cf command pipe. -** -** \par Limits: -** -*/ -#define CF_PIPE_NAME "CF_CMD_PIPE" - - -/** -** \cfcfg Maximum Simulataneous Transactions -** -** \par Description: -** Dictates max number of transactions (uplink and downlink) -** that can be in progress at any given time. -** -** \par Limits: -** -*/ -#define CF_MAX_SIMULTANEOUS_TRANSACTIONS 100 - - - -/** -** \cfcfg Uplink PDU Data Buffer Size -** -** \par Description: -** This parameter sets the statically allocated size (in bytes) of the -** incoming PDU buffer. This buffer will be used to hold the pdu hdr and -** data portion of the incoming PDUs. Incoming PDUs are enclosed in a CCSDS -** packet. This parameter should not include the size of the CCSDS pkt hdr. -** -** \par Limits: -** Must be greater than or equal to the sum of the ground engine parameter -** outgoing-file-chunk-size, pdu hdr size and the 4 bytes of 'offset' in -** file-data pdus. Upper limit of 64K derived from 16 bit PDU header field -** named 'PDU Data Field Length'. -** This parameter must be less-than or equal-to the outgoing pdu buffer. -** -** -*/ -#define CF_INCOMING_PDU_BUF_SIZE 512 - - - -/** -** \cfcfg Outgoing PDU Data Buffer Size -** -** \par Description: -** This parameter sets the statically allocated size (in bytes) of the -** outgoing PDU buffer. This buffer will be used to hold the pdu hdr and -** data portion of the outgoing PDUs. Outgoing PDUs are enclosed in a CCSDS -** packet. This parameter should not include the size of the CCSDS pkt hdr. -** -** \par Limits: -** This parameter will put an upper limit on the table parameter -** 'outgoing_file_chunk_size'. The max 'outgoing_file_chunk_size' allowed -** will be CF_OUTGOING_PDU_BUF_SIZE - (12 + 4) The 12 and 4 are pdu hdr -** size and offset field in file-data pdu, respectively. -** This parameter has an upper limit of 64K derived from 16 bit PDU header -** field named 'PDU Data Field Length'. -** This parameter must be greater-than or equal-to the incoming pdu buffer. -** -** -*/ -#define CF_OUTGOING_PDU_BUF_SIZE 2048 - - -/** -** \cfcfg Path name and file prefix of the engine temp files -** -** \par Description: -** The receiving engine constructs all files in a temporary file. This -** parameter specifies the path and base filename of the temporary files. -** The engine appends a sequence number to this parameter to get a complete -** filename. -** -** \par Limits: -** - The length of this string, including the NULL terminator cannot exceed -** the #OS_MAX_PATH_LEN value. -** - The last character should not be a slash. -** -*/ -#define CF_ENGINE_TEMP_FILE_PREFIX "/ram/cftmp" - -/** -** \cfcfg Name of the CF Configuration Table -** -** \par Description: -** This parameter defines the name of the CF Configuration Table. -** -** \par Limits -** The length of this string, including the NULL terminator cannot exceed -** the #OS_MAX_PATH_LEN value. -*/ -#define CF_CONFIG_TABLE_NAME "ConfigTable" - - -/** -** \cfcfg CF Configuration Table Filename -** -** \par Description: -** The value of this constant defines the filename of the CF Config Table -** -** \par Limits -** The length of this string, including the NULL terminator cannot exceed -** the #OS_MAX_PATH_LEN value. -*/ -#define CF_CONFIG_TABLE_FILENAME "/cf/apps/cf_cfgtable.tbl" - - -/** -** \cfcfg Number of Input Channels -** -** \par Description: -** Defines the number of input channels -** defined in the configuration table. Input channels were added to the -** design to support class 2 file receives from multiple peers. It is -** necessary for the code to know what output channel should be used for -** responses (ACK-EOF,NAK, etc) of incoming, class 2 transactions. -** Each input channel has a dedicated MsgId for incoming PDUs and an output -** channel for responses of class 2, file-receive transactions. -** -** \par Limits -** Lower Limit of 1, Upper limit of 255. -** -*/ -#define CF_NUM_INPUT_CHANNELS 1 - - -/** -** \cfcfg Max Number of Playback Output Channels -** -** \par Description: -** Defines the max number of playback output channels that may ever be -** defined in the configuration table. Refer to the configuration table for -** more details about playback output channels. -** -** \par Limits -** Lower Limit of 1, Upper limit of 255. -** -** \par Notes: -** The CF configuration table must have an entry for this number of -** playback channels, but some may be marked as not-in-use. This saves -** having to recompile and reload a new CF Application when a playback -** channel is added. -*/ -#define CF_MAX_PLAYBACK_CHANNELS 2 - - -/** -** \cfcfg Max Number of Polling(Hot) Directories per Playback Output Channel -** -** \par Description: -** Defines the max number of polling directories that may ever be defined -** in the configuration table. A polling directory is a directory that -** is periodically checked for playback files. Files found in the polling -** directory are immediately placed on the playback pending queue for -** downlink. -** -** \par Limits: -** Lower limit of 1, Upper limit of 255. -** -** \par Notes: -** The CF configuration table must have an entry for this number of polling -** directories, but some may be marked as not-in-use. This saves having to -** recompile and reload a new CF Application when a polling directory is -** added. -** -*/ -#define CF_MAX_POLLING_DIRS_PER_CHAN 8 - - -/** -** \cfcfg Number of bytes in the CF Memory Pool -** -** \par Description: -** The CF memory pool contains the memory needed to hold information for -** each transaction. The info for each transaction is defined by a -** CF_QueueEntry_t. The number of CF_QueueEntry_t's needed is based on: -** -** UplinkHistoryQDepth + CF_MAX_SIMULTANEOUS_TRANSACTIONS + -** ((CF_MAX_PLAYBACK_CHANNELS * (PendingQDepth + HistoryQDepth)) -** -** Lower case variables are defined in config table, upper case params are -** defined in platform config file (cf_platform_cfg.h) -** -** See CF Housekeeping page for memory utilization details -** -** -** \par Limits -** Lower Limit of 256, Upper limit of 4 Gigabytes -*/ -#define CF_MEMORY_POOL_BYTES 32768 - - -/** -** \cfcfg Default Queue Information Filename -** -** \par Description: -** The value of this constant defines the filename used to store the CF -** queue information. This filename is used only when no filename is -** specified in the command. -** -** \par Limits -** The length of each string, including the NULL terminator cannot exceed -** the OS_MAX_PATH_LEN value. -*/ -#define CF_DEFAULT_QUEUE_INFO_FILENAME "/ram/cf_queue_info.dat" - - -/** -** \cfcfg CF Event Filtering -** -** \par Description: -** This group of configuration parameters dictates what CF events will be -** filtered through EVS. The filtering will begin after the CF app -** initializes and stay in effect until changed via EVS command. -** Mark all unused event Id values and mask values to zero -** eg. #define CF_FILTERED_EVENT1 0 -** #define CF_FILTER_MASK1 0 -** To filter the event, set the mask value to CFE_EVS_FIRST_ONE_STOP -** To disable filtering of the event, set mask value to CFE_EVS_NO_FILTER -** -** \par Limits -** These parameters have a lower limit of 0 and an upper limit of 65535. -*/ - -#define CF_FILTERED_EVENT1 CF_IN_TRANS_START_EID -#define CF_FILTER_MASK1 CFE_EVS_NO_FILTER - -#define CF_FILTERED_EVENT2 CF_IN_TRANS_OK_EID -#define CF_FILTER_MASK2 CFE_EVS_NO_FILTER - -#define CF_FILTERED_EVENT3 CF_OUT_TRANS_START_EID -#define CF_FILTER_MASK3 CFE_EVS_NO_FILTER - -#define CF_FILTERED_EVENT4 CF_OUT_TRANS_OK_EID -#define CF_FILTER_MASK4 CFE_EVS_NO_FILTER - -#define CF_FILTERED_EVENT5 0 -#define CF_FILTER_MASK5 CFE_EVS_NO_FILTER - -#define CF_FILTERED_EVENT6 0 -#define CF_FILTER_MASK6 CFE_EVS_NO_FILTER - -#define CF_FILTERED_EVENT7 0 -#define CF_FILTER_MASK7 CFE_EVS_NO_FILTER - -#define CF_FILTERED_EVENT8 0 -#define CF_FILTER_MASK8 CFE_EVS_NO_FILTER - - - -/** -** \cfcfg Time to wait for all apps to be started (in milliseconds) -** -** \par Description: -** Dictates the timeout for the #CFE_ES_WaitForStartupSync call that -** CF uses to ensure that TO or the downlink App has completed it's -** initialization which includes creating the semaphore needed by CF. -** -** \par Limits -** This parameter can't be larger than an unsigned 32 bit -** integer (4294967295). -** -** This should be greater than or equal to the Startup Sync timeout for -** any application in the Application Monitor Table. -*/ -#define CF_STARTUP_SYNC_TIMEOUT 65000 - - -/** -** \cfcfg Use fixed size packets (for outgoing PDUs) or not. -** -** \par Description: -** When sending PDUs, CF can be configured to place the PDUs in fixed-size -** pkts or let the PDU size determine the pkt size. The value defined -** must correspond to the CCSDS Total Message size which includes the PDU -** header, the CCSDS header and data. -** Set this value to 0 for variable pkt sizes. -** -** \par Limits -** This parameter can't be larger than CFE_SB_MAX_SB_MSG_SIZE (typically -** set to 32K or 64K bytes) -** -** If non-zero, this should be greater than or equal to the size needed to -** hold the largest PDU expected to be sent by the engine (typically a -** file data PDU which is derived from the CF table cfg param -** "OutgoingFileChunkSize"). -*/ -#define CF_SEND_FIXED_SIZE_PKTS 0 - - -/** -** \cfcfg Auto-Suspend, max transactions to suspend -** -** \par Description: -** When auto suspend is enabled, after EOF is sent the transaction number -** is logged in a buffer. The buffer size is defined in this parameter. -** After the following wakeup cmd is received, cF will check this buffer -** for transactions to suspend. They cannot be suspended at the time the -** EOF is sent because the engine is not designed to re-entrant. -** -** \par Limits -** This parameter must be greater than zero and can't be larger than an -** unsigned 32 bit integer (4294967295). -*/ -#define CF_AUTOSUSPEND_MAX_TRANS 1 - - - - -/** \cfcfg Mission specific version number for CF application -** -** \par Description: -** An application version number consists of four parts: -** major version number, minor version number, revision -** number and mission specific revision number. The mission -** specific revision number is defined here and the other -** parts are defined in "cf_version.h". -** -** \par Limits: -** Must be defined as a numeric value that is greater than -** or equal to zero. -*/ -#define CF_MISSION_REV 0 - - -/** \cfcfg Compile-time debug switch for CF application -** -** \par Description: -** CF_DEBUG should NOT be defined under normal conditions. It is to be used -** as a safety net during development, when a uart terminal is connected to -** the processor. When the code is compiled with CF_DEBUG defined, the code -** will issue OS_printfs in areas that would otherwise be quiet. -** -** \par Limits: -** Must be defined or commented out. -*/ -/* #define CF_DEBUG */ - - - -#endif /* CF_PLATFORM_CFG_H */ - -/************************/ -/* End of File Comment */ -/************************/ diff --git a/config/ocpoc/quadx/inc/cfe_msgids.h b/config/ocpoc/quadx/inc/cfe_msgids.h deleted file mode 100644 index 5a7b5231d..000000000 --- a/config/ocpoc/quadx/inc/cfe_msgids.h +++ /dev/null @@ -1,58 +0,0 @@ -#ifndef CFE_MSGIDS_H -#define CFE_MSGIDS_H - -/* -** Includes -*/ - -#include "cfe_mission_cfg.h" - -/* -** cFE Command Message Id's -*/ -#define CFE_EVS_CMD_MID CFE_CMD_MID_BASE_CPU1 + CFE_EVS_CMD_MSG /* 0x1801 */ - /* Message ID 0x1802 is available */ -#define CFE_SB_CMD_MID CFE_CMD_MID_BASE_CPU1 + CFE_SB_CMD_MSG /* 0x1803 */ -#define CFE_TBL_CMD_MID CFE_CMD_MID_BASE_CPU1 + CFE_TBL_CMD_MSG /* 0x1804 */ -#define CFE_TIME_CMD_MID CFE_CMD_MID_BASE_CPU1 + CFE_TIME_CMD_MSG /* 0x1805 */ -#define CFE_ES_CMD_MID CFE_CMD_MID_BASE_CPU1 + CFE_ES_CMD_MSG /* 0x1806 */ - -#define CFE_ES_SEND_HK_MID CFE_CMD_MID_BASE_CPU1 + CFE_ES_SEND_HK_MSG /* 0x1808 */ -#define CFE_EVS_SEND_HK_MID CFE_CMD_MID_BASE_CPU1 + CFE_EVS_SEND_HK_MSG /* 0x1809 */ - /* Message ID 0x180A is available */ -#define CFE_SB_SEND_HK_MID CFE_CMD_MID_BASE_CPU1 + CFE_SB_SEND_HK_MSG /* 0x180B */ -#define CFE_TBL_SEND_HK_MID CFE_CMD_MID_BASE_CPU1 + CFE_TBL_SEND_HK_MSG /* 0x180C */ -#define CFE_TIME_SEND_HK_MID CFE_CMD_MID_BASE_CPU1 + CFE_TIME_SEND_HK_MSG /* 0x180D */ - -#define CFE_TIME_TONE_CMD_MID CFE_CMD_MID_BASE_CPU1 + CFE_TIME_TONE_CMD_MSG /* 0x1810 */ -#define CFE_TIME_1HZ_CMD_MID CFE_CMD_MID_BASE_CPU1 + CFE_TIME_1HZ_CMD_MSG /* 0x1811 */ - - -/* -** cFE Global Command Message Id's -*/ -#define CFE_TIME_DATA_CMD_MID CFE_CMD_MID_BASE_GLOB + CFE_TIME_DATA_CMD_MSG /* 0x1860 */ -#define CFE_TIME_FAKE_CMD_MID CFE_CMD_MID_BASE_GLOB + CFE_TIME_FAKE_CMD_MSG /* 0x1861 */ -#define CFE_TIME_SEND_CMD_MID CFE_CMD_MID_BASE_GLOB + CFE_TIME_SEND_CMD_MSG /* 0x1862 */ - - -/* -** CFE Telemetry Message Id's -*/ -#define CFE_ES_HK_TLM_MID CFE_TLM_MID_BASE_CPU1 + CFE_ES_HK_TLM_MSG /* 0x0800 */ -#define CFE_EVS_HK_TLM_MID CFE_TLM_MID_BASE_CPU1 + CFE_EVS_HK_TLM_MSG /* 0x0801 */ - /* Message ID 0x0802 is available */ -#define CFE_SB_HK_TLM_MID CFE_TLM_MID_BASE_CPU1 + CFE_SB_HK_TLM_MSG /* 0x0803 */ -#define CFE_TBL_HK_TLM_MID CFE_TLM_MID_BASE_CPU1 + CFE_TBL_HK_TLM_MSG /* 0x0804 */ -#define CFE_TIME_HK_TLM_MID CFE_TLM_MID_BASE_CPU1 + CFE_TIME_HK_TLM_MSG /* 0x0805 */ -#define CFE_TIME_DIAG_TLM_MID CFE_TLM_MID_BASE_CPU1 + CFE_TIME_DIAG_TLM_MSG /* 0x0806 */ -#define CFE_EVS_EVENT_MSG_MID CFE_TLM_MID_BASE_CPU1 + CFE_EVS_EVENT_MSG_MSG /* 0x0808 */ -#define CFE_SB_STATS_TLM_MID CFE_TLM_MID_BASE_CPU1 + CFE_SB_STATS_TLM_MSG /* 0x080A */ -#define CFE_ES_APP_TLM_MID CFE_TLM_MID_BASE_CPU1 + CFE_ES_APP_TLM_MSG /* 0x080B */ -#define CFE_TBL_REG_TLM_MID CFE_TLM_MID_BASE_CPU1 + CFE_TBL_REG_TLM_MSG /* 0x080C */ -#define CFE_SB_ALLSUBS_TLM_MID CFE_TLM_MID_BASE_CPU1 + CFE_SB_ALLSUBS_TLM_MSG /* 0x080D */ -#define CFE_SB_ONESUB_TLM_MID CFE_TLM_MID_BASE_CPU1 + CFE_SB_ONESUB_TLM_MSG /* 0x080E */ -#define CFE_ES_SHELL_TLM_MID CFE_TLM_MID_BASE_CPU1 + CFE_ES_SHELL_TLM_MSG /* 0x080F */ -#define CFE_ES_MEMSTATS_TLM_MID CFE_TLM_MID_BASE_CPU1 + CFE_ES_MEMSTATS_TLM_MSG /* 0x0810 */ - -#endif diff --git a/config/ocpoc/quadx/inc/cfe_platform_cfg.h b/config/ocpoc/quadx/inc/cfe_platform_cfg.h deleted file mode 100644 index aa22ccd6b..000000000 --- a/config/ocpoc/quadx/inc/cfe_platform_cfg.h +++ /dev/null @@ -1,1770 +0,0 @@ -#ifndef CFE_PLATFORM_CFG_H -#define CFE_PLATFORM_CFG_H - -/* -** Allow reference to CFE_SPACECRAFT_ID (see CFE_TBL_VALID_ definitions below) -*/ -#include "cfe_mission_cfg.h" - -/* -** CPU Id for target Processor -*/ -#define CFE_CPU_ID 1 - -/* -** CPU Name for target Processor -*/ -#define CFE_CPU_NAME "CPU1" - -/** -** \cfesbcfg Maximum Number of Unique Message IDs SB Routing Table can hold -** -** \par Description: -** Dictates the maximum number of unique MsgIds the SB routing table will hold. -** This constant has a direct affect on the size of SB's tables and arrays. -** Keeping this count as low as possible will save memory. -** To see the run-time, high-water mark and the current utilization figures -** regarding this parameter, send an SB command to 'Send Statistics Pkt'. -** -** \par Limits -** This parameter has a lower limit of 1 and an upper limit of 1024. -** -*/ -#define CFE_SB_MAX_MSG_IDS 256 - - -/** -** \cfesbcfg Maximum Number of Unique Pipes SB Routing Table can hold -** -** \par Description: -** Dictates the maximum number of unique Pipes the SB routing table will hold. -** This constant has a direct affect on the size of SB's tables and arrays. -** Keeping this count as low as possible will save memory. -** To see the run-time, high-water mark and the current utilization figures -** regarding this parameter, send an SB command to 'Send Statistics Pkt'. -** -** \par Limits -** This parameter has a lower limit of 1 and an upper limit of 255. -** This parameter must also be less than or equal to OS_MAX_QUEUES -** -*/ -#define CFE_SB_MAX_PIPES 255 - - -/** -** \cfesbcfg Maximum Number of unique local destinations a single MsgId can have -** -** \par Description: -** Dictates the maximum number of unique local destinations a single MsgId can -** have. -** -** \par Limits -** This parameter has a lower limit of 1 and an upper limit of 64. -** -*/ -#define CFE_SB_MAX_DEST_PER_PKT 16 - - -/** -** \cfesbcfg Default Subscription Message Limit -** -** \par Description: -** Dictates the default Message Limit when using the #CFE_SB_Subscribe API. This will -** limit the number of messages with a specific message ID that can be received through -** a subscription. This only changes the default; other message limits can be set on a per -** subscription basis using #CFE_SB_SubscribeEx . -** -** \par Limits -** This parameter has a lower limit of 4 and an upper limit of 65535. -** -*/ -#define CFE_SB_DEFAULT_MSG_LIMIT 4 - - -/** -** \cfesbcfg Size of the SB buffer memory pool -** -** \par Description: -** Dictates the size of the SB memory pool. For each message the SB -** sends, the SB dynamically allocates from this memory pool, the memory needed -** to process the message. The memory needed to process each message is msg -** size + msg descriptor(#CFE_SB_BufferD_t). This memory pool is also used -** to allocate destination descriptors (#CFE_SB_DestinationD_t) during the -** subscription process. -** To see the run-time, high-water mark and the current utilization figures -** regarding this parameter, send an SB command to 'Send Statistics Pkt'. -** Some memory statistics have been added to the SB housekeeping packet. -** NOTE: It is important to monitor these statistics to ensure the desired -** memory margin is met. -** -** \par Limits -** This parameter has a lower limit of 512 and an upper limit 4.29G bytes. -** -*/ -#define CFE_SB_BUF_MEMORY_BYTES 524288 - - -/** -** \cfesbcfg Maximum depth allowed when creating an SB pipe -** -** \par Description: -** The value of this constant dictates the maximum pipe depth that an -** application may request. The pipe depth is given as a paramter in the -** #CFE_SB_CreatePipe API. -** -** \par Limits -** This parameter has a lower limit of 1 and an upper limit of 65535. -*/ -#define CFE_SB_MAX_PIPE_DEPTH 256 - - -/** -** \cfesbcfg Highest Valid Message Id -** -** \par Description: -** The value of this constant dictates the size of the SB message map. The SB -** messsage map is a lookup table that provides the routing table index for -** fast access into the routing table.The default setting of 0x1FFF was chosen -** to save memory for CCSDS implementations where the CCSDS Version number -** (3 MSB's of MsgId) would remain constant throughout the mission. This -** reduces the message map from 128Kbytes to 16Kbytes.See CFE_FSW_DCR 504 for -** more details. -** -** \par Limits -** This parameter has a lower limit of 1 and an upper limit of 0xFFFF. -*/ -#define CFE_SB_HIGHEST_VALID_MSGID 0x1FFF - - -/** -** \cfesbcfg Default Routing Information Filename -** -** \par Description: -** The value of this constant defines the filename used to store the software -** bus routing information. This filename is used only when no filename is -** specified in the command. -** -** \par Limits -** The length of each string, including the NULL terminator cannot exceed the -** #OS_MAX_PATH_LEN value. -*/ -#define CFE_SB_DEFAULT_ROUTING_FILENAME "/ram/cfe_sb_route.dat" - - -/** -** \cfesbcfg Default Pipe Information Filename -** -** \par Description: -** The value of this constant defines the filename used to store the software -** bus pipe information. This filename is used only when no filename is -** specified in the command. -** -** \par Limits -** The length of each string, including the NULL terminator cannot exceed the -** #OS_MAX_PATH_LEN value. -*/ -#define CFE_SB_DEFAULT_PIPE_FILENAME "/ram/cfe_sb_pipe.dat" - - -/** -** \cfesbcfg Default Message Map Filename -** -** \par Description: -** The value of this constant defines the filename used to store the software -** bus message map information. This filename is used only when no filename is -** specified in the command. The message map is a lookup table (array of 16bit -** words) that has an element for each possible MsgId value and holds the -** routing table index for that MsgId. The Msg Map provides fast access to the -** destinations of a message. -** -** \par Limits -** The length of each string, including the NULL terminator cannot exceed the -** #OS_MAX_PATH_LEN value. -*/ -#define CFE_SB_DEFAULT_MAP_FILENAME "/ram/cfe_sb_msgmap.dat" - - -/** -** \cfesbcfg SB Event Filtering -** -** \par Description: -** This group of configuration paramters dictates what SB events will be -** filtered through EVS. The filtering will begin after the SB task initializes -** and stay in effect until a cmd to EVS changes it. -** This allows the operator to set limits on the number of event messages that -** are sent during system initialization. -** NOTE: Set all unused event values and mask values to zero -** -** \par Limits -** This filtering applies only to SB events. -** These parameters have a lower limit of 0 and an upper limit of 65535. -*/ -#define CFE_SB_FILTERED_EVENT1 CFE_SB_SEND_NO_SUBS_EID -#define CFE_SB_FILTER_MASK1 CFE_EVS_FIRST_4_STOP - -#define CFE_SB_FILTERED_EVENT2 CFE_SB_DUP_SUBSCRIP_EID -#define CFE_SB_FILTER_MASK2 CFE_EVS_FIRST_4_STOP - -#define CFE_SB_FILTERED_EVENT3 CFE_SB_MSGID_LIM_ERR_EID -#define CFE_SB_FILTER_MASK3 CFE_EVS_FIRST_16_STOP - -#define CFE_SB_FILTERED_EVENT4 CFE_SB_Q_FULL_ERR_EID -#define CFE_SB_FILTER_MASK4 CFE_EVS_FIRST_16_STOP - -#define CFE_SB_FILTERED_EVENT5 0 -#define CFE_SB_FILTER_MASK5 CFE_EVS_NO_FILTER - -#define CFE_SB_FILTERED_EVENT6 0 -#define CFE_SB_FILTER_MASK6 CFE_EVS_NO_FILTER - -#define CFE_SB_FILTERED_EVENT7 0 -#define CFE_SB_FILTER_MASK7 CFE_EVS_NO_FILTER - -#define CFE_SB_FILTERED_EVENT8 0 -#define CFE_SB_FILTER_MASK8 CFE_EVS_NO_FILTER - - -/** -** \cfeescfg Define SB Memory Pool Block Sizes -** -** \par Description: -** Software Bus Memory Pool Block Sizes -** -** \par Limits -** These sizes MUST be increasing and MUST be an integral multiple of 4. -** The number of block sizes defined cannot exceed -** #CFE_ES_MAX_MEMPOOL_BLOCK_SIZES -*/ -#define CFE_SB_MEM_BLOCK_SIZE_01 8 -#define CFE_SB_MEM_BLOCK_SIZE_02 16 -#define CFE_SB_MEM_BLOCK_SIZE_03 20 -#define CFE_SB_MEM_BLOCK_SIZE_04 36 -#define CFE_SB_MEM_BLOCK_SIZE_05 64 -#define CFE_SB_MEM_BLOCK_SIZE_06 96 -#define CFE_SB_MEM_BLOCK_SIZE_07 128 -#define CFE_SB_MEM_BLOCK_SIZE_08 160 -#define CFE_SB_MEM_BLOCK_SIZE_09 256 -#define CFE_SB_MEM_BLOCK_SIZE_10 512 -#define CFE_SB_MEM_BLOCK_SIZE_11 1024 -#define CFE_SB_MEM_BLOCK_SIZE_12 2048 -#define CFE_SB_MEM_BLOCK_SIZE_13 4096 -#define CFE_SB_MEM_BLOCK_SIZE_14 8192 -#define CFE_SB_MEM_BLOCK_SIZE_15 16384 -#define CFE_SB_MEM_BLOCK_SIZE_16 32768 -#define CFE_SB_MAX_BLOCK_SIZE (CFE_SB_MAX_SB_MSG_SIZE + 40) - -/** -** \cfesbcfg Define Default Sender Information Storage Mode -** -** \par Description: -** Defines the default mode for the storing of sender information when sending -** a software bus message. If set to 1, the sender information will be stored. -** If set to 0, the sender information will not be stored. -** -** \par Limits -** There is a lower limit of 0 and an upper limit of 1 on this configuration -** paramater. -*/ -#define CFE_SB_DEFAULT_REPORT_SENDER 1 - - -/** -** \cfetimecfg Time Server or Time Client Selection -** -** \par Description: -** This configuration parameter selects whether the Time task functions as a -** time "server" or "client". A time server generates the "time at the tone" -** packet which is received by time clients. -** -** \par Limits -** Enable one, and only one by defining either CFE_TIME_CFG_SERVER or -** CFE_TIME_CFG_CLIENT AS TRUE. The other must be defined as FALSE. -*/ -#define CFE_TIME_CFG_SERVER TRUE -#define CFE_TIME_CFG_CLIENT FALSE - -/** -** \cfetimecfg Local MET or Virtual MET Selection for Time Servers -** -** \par Description: -** Depending on the specific hardware system configuration, it may be possible -** for Time Servers to read the "local" MET from a h/w register rather than -** having to track the MET as the count of tone signal interrupts (virtual MET) -** -** Time Clients must be defined as using a virtual MET. Also, a Time Server -** cannot be defined as having both a h/w MET and an external time source (they -** both cannot synchronize to the same tone). -** -** Note: "disable" this define (set to FALSE) only for Time Servers with local hardware -** that supports a h/w MET that is synchronized to the tone signal !!! -** -** \par Limits -** Only applies if #CFE_TIME_CFG_SERVER is set to TRUE. -*/ -#define CFE_TIME_CFG_VIRTUAL TRUE - - -/** -** \cfetimecfg Include or Exclude the Primary/Redundant Tone Selection Cmd -** -** \par Description: -** Depending on the specific hardware system configuration, it may be possible -** to switch between a primary and redundant tone signal. If supported by -** hardware, this definitions will enable command interfaces to select the -** active tone signal. Both Time Clients and Time Servers support this feature. -** Note: Set the CFE_TIME_CFG_SIGNAL define to TRUE to enable tone signal commands. -** -** \par Limits -** Not Applicable -*/ -#define CFE_TIME_CFG_SIGNAL FALSE - - -/** -** \cfetimecfg Include or Exclude the Internal/External Time Source Selection Cmd -** -** \par Description: -** By default, Time Servers maintain time using an internal MET which may be a -** h/w register or software counter, depending on available hardware. The -** following definition enables command interfaces to switch between an -** internal MET, or external time data received from one of several supported -** external time sources. Only a Time Server may be configured to use external -** time data. -** Note: Set the CFE_TIME_CFG_SOURCE define to TRUE to include the Time Source -** Selection Command (command allows selection between the internal -** or external time source). Then choose the external source with the -** CFE_TIME_CFG_SRC_??? define. -** -** \par Limits -** Only applies if #CFE_TIME_CFG_SERVER is set to TRUE. -*/ -#define CFE_TIME_CFG_SOURCE FALSE - - -/** -** \cfetimecfg Choose the External Time Source for Server only -** -** \par Description: -** If #CFE_TIME_CFG_SOURCE is set to TRUE, then one of the following external time -** source types must also be set to TRUE. Do not set any of the external time -** source types to TRUE unless #CFE_TIME_CFG_SOURCE is set to TRUE. -** -** \par Limits -** -# If #CFE_TIME_CFG_SOURCE is set to TRUE then one and only one of the following -** three external time sources can and must be set TRUE: -** #CFE_TIME_CFG_SRC_MET, #CFE_TIME_CFG_SRC_GPS, #CFE_TIME_CFG_SRC_TIME -** -# Only applies if #CFE_TIME_CFG_SERVER is set to TRUE. -*/ -#define CFE_TIME_CFG_SRC_MET FALSE -#define CFE_TIME_CFG_SRC_GPS FALSE -#define CFE_TIME_CFG_SRC_TIME FALSE - - -/** -** \cfetimecfg Define the Max Delta Limits for Time Servers using an Ext Time Source -** -** \par Description: -** If #CFE_TIME_CFG_SOURCE is set to TRUE and one of the external time sources is -** also set to TRUE, then the delta time limits for range checking is used. -** -** When a new time value is received from an external source, the value is -** compared against the "expected" time value. If the delta exceeds the -** following defined amount, then the new time data will be ignored. This range -** checking is only performed after the clock state has been commanded to -** "valid". Until then, external time data is accepted unconditionally. -** -** \par Limits -** Applies only if both #CFE_TIME_CFG_SERVER and #CFE_TIME_CFG_SOURCE are set -** to TRUE. -*/ -#define CFE_TIME_MAX_DELTA_SECS 0 -#define CFE_TIME_MAX_DELTA_SUBS 500000 - - -/** -** \cfetimecfg Define the Local Clock Rollover Value in seconds and subseconds -** -** \par Description: -** Specifies the capability of the local clock. Indicates the time at which -** the local clock rolls over. -** -** \par Limits -** Not Applicable -*/ -#define CFE_TIME_MAX_LOCAL_SECS 27 -#define CFE_TIME_MAX_LOCAL_SUBS 0 - - -/** -** \cfetimecfg Define Timing Limits From One Tone To The Next -** -** \par Description: -** Defines limits to the timing of the 1Hz tone signal. A tone signal is valid -** only if it arrives within one second (plus or minus the tone limit) from -** the previous tone signal.Units are microseconds as measured with the local -** clock. -** -** \par Limits -** Not Applicable -*/ -#define CFE_TIME_CFG_TONE_LIMIT 20000 - - - -/** -** \cfetimecfg Define Time to Start Flywheel Since Last Tone -** -** \par Description: -** Define time to enter flywheel mode (in seconds since last tone data update) -** Units are microseconds as measured with the local clock. -** -** \par Limits -** Not Applicable -*/ -#define CFE_TIME_CFG_START_FLY 2 - - -/** -** \cfetimecfg Define Periodic Time to Update Local Clock Tone Latch -** -** \par Description: -** Define Periodic Time to Update Local Clock Tone Latch. Applies only when -** in flywheel mode. This define dicates the period at which the simulated -** 'last tone' time is updated. Units are seconds. -** -** \par Limits -** Not Applicable -*/ -#define CFE_TIME_CFG_LATCH_FLY 8 - - -/** -** \cfetimecfg Define Maximum number of Time Synchronization Callbacks allowed -** -** \par Description: -** Define maximum number of Time Synchronization callback functions allowed. -** Each callback is called whenever cFE TIME receives a valid time synchronization -** signal (typically 1 Hz). -** -** \par Limits -** Not Applicable -*/ -#define CFE_TIME_MAX_NUM_SYNCH_FUNCS 4 - - -/** -** \cfetimecfg Enable (or disable) the 1HZ time command packet -** -** \par Description: -** Controls the generation of a packet that may be used as a 1HZ wakeup -** signal for applications that subscribe to CFE_TIME_1HZ_CMD_MID. -** Disable the packet to avoid 'no subscriber' errors that result from -** sending a packet when there are no subscribers to the packet. -** -** \par Limits -** Enable the 1HZ packet by setting #CFE_TIME_ENA_1HZ_CMD_PKT to TRUE. -** Disable the 1HZ packet by setting #CFE_TIME_ENA_1HZ_CMD_PKT to FALSE. -*/ -#define CFE_TIME_ENA_1HZ_CMD_PKT TRUE - - -/** -** \cfeescfg Define Max Number of Applications -** -** \par Description: -** Defines the maximum number of applications that can be loaded into the -** system. This number does not include child tasks. -** -** \par Limits -** There is a lower limit of 6 and an upper limit of 64 on this configuration -** paramater. The lower limit corresponds to the cFE internal applications. -*/ -#define CFE_ES_MAX_APPLICATIONS 64 - - -/** -** \cfeescfg Define Max Number of Shared libraries -** -** \par Description: -** Defines the maximum number of cFE Shared libraries that can be loaded into -** the system. -** -** \par Limits -** There is a lower limit of 1 and an upper limit of 64 on this configuration -** paramater. -*/ -#define CFE_ES_MAX_LIBRARIES 10 - -/** -** \cfeescfg Define Max Number of ER (Exception and Reset) log entries -** -** \par Description: -** Defines the maximum number of ER (Exception and Reset) log entries -** -** \par Limits -** There is a lower limit of 10 and an upper limit of 128 on this configuration -** paramater. -*/ -#define CFE_ES_ER_LOG_ENTRIES 20 - -/** \cfeescfg Maximum size of CPU Context in ES Error Log -** -** \par Description: -** This should be large enough to accommodate the CPU context -** information supplied by the PSP on the given platform. -** -** \par Limits: -** Must be greater than zero and a multiple of sizeof(uint32). -** Limited only by the available memory and the number of entries -** in the error log. Any context information beyond this size will -** be truncated. -*/ -#define CFE_ES_ER_LOG_MAX_CONTEXT_SIZE 128 - - -/** -** \cfeescfg Define Size of the cFE System Log. -** -** \par Description: -** Defines the size in bytes of the cFE system log. The system log holds -** variable length strings that are terminated by a linefeed and null -** character. -** -** \par Limits -** There is a lower limit of 512 and an upper limit of 16384 on this -** configuration paramater. -*/ -#define CFE_ES_SYSTEM_LOG_SIZE 3072 - - -/** -** \cfeescfg Define Number of entries in the ES Object table -** -** \par Description: -** Defines the number of entries in the ES Object table. This table controls -** the core cFE startup. -** -** \par Limits -** There is a lower limit of 15 and an upper limit of 50 on this configuration -** paramater. -*/ -#define CFE_ES_OBJECT_TABLE_SIZE 30 - - -/** -** \cfeescfg Define Max Number of Generic Counters -** -** \par Description: -** Defines the maximum number of Generic Counters that can be registered. -** -** \par Limits -** This parameter has a lower limit of 1 and an upper limit of 65535. -*/ -#define CFE_ES_MAX_GEN_COUNTERS 8 - - -/** -** \cfeescfg Define ES Application Control Scan Rate -** -** \par Description: -** ES Application Control Scan Rate. This parameter controls the speed that ES -** scans the Application Table looking for App Delete/Restart/Reload requests. -** All Applications are deleted, restarted, or reloaded by the ES Application. -** ES will periodically scan for control requests to process. The scan rate is -** controlled by this parameter, which is given in milliseconds. A value of -** 1000 means that ES will scan the Application Table once per second. Be -** careful not to set the value of this too low, because ES will use more CPU -** cycles scanning the table. -** -** \par Limits -** There is a lower limit of 100 and an upper limit of 20000 on this -** configuration paramater. millisecond units. -*/ -#define CFE_ES_APP_SCAN_RATE 1000 - - -/** -** \cfeescfg Define ES Application Kill Timeout -** -** \par Description: -** ES Application Kill Timeout. This parameter controls the number of -** "scan periods" that ES will wait for an application to Exit after getting -** the signal Delete, Reload or Restart. The sequence works as follows: -** -# ES will set the control request for an App to Delete/Restart/Reload and -** set this kill timer to the value in this parameter. -** -# If the App is reponding and Calls it's RunLoop function, it will drop out -** of it's main loop and call CFE_ES_ExitApp. Once it calls Exit App, then -** ES can delete, restart, or reload the app the next time it scans the app -** table. -** -# If the App is not responding, the ES App will decrement this Kill Timeout -** value each time it runs. If the timeout value reaches zero, ES will kill -** the app. -** -** The Kill timeout value depends on the #CFE_ES_APP_SCAN_RATE. If the Scan Rate -** is 1000, or 1 second, and this #CFE_ES_APP_KILL_TIMEOUT is set to 5, then it -** will take 5 seconds to kill a non-responding App. -** If the Scan Rate is 250, or 1/4 second, and the #CFE_ES_APP_KILL_TIMEOUT is -** set to 2, then it will take 1/2 second to time out. -** -** \par Limits -** There is a lower limit of 1 and an upper limit of 100 on this configuration -** paramater. Units are number of #CFE_ES_APP_SCAN_RATE cycles. -*/ -#define CFE_ES_APP_KILL_TIMEOUT 5 - - -/** -** \cfeescfg ES Ram Disk Sector Size -** -** \par Description: -** Defines the ram disk sector size. The ram disk is 1 of 4 memory areas that -** are preserved on a processor reset. -** NOTE: Changing this value changes memory allocation, and may -** require changes to platform specific values (in CFE_PSP) such as -** USER_RESERVED_MEM in VxWorks depending on the memory areas -** being used for preserved data and on OS specific behavior. -** -** \par Limits -** There is a lower limit of 128 and an upper limit of 4096 on this -** configuration paramater. -*/ -#define CFE_ES_RAM_DISK_SECTOR_SIZE 512 - - -/** -** \cfeescfg ES Ram Disk Number of Sectors -** -** \par Description: -** Defines the ram disk number of sectors. The ram disk is one of four memory -** areas that are preserved on a processor reset. -** NOTE: Changing this value changes memory allocation, and may -** require changes to platform specific values (in CFE_PSP) such as -** USER_RESERVED_MEM in VxWorks depending on the memory areas -** being used for preserved data and on OS specific behavior. -** -** \par Limits -** There is a lower limit of 128 and an upper limit of 8192 on this -** configuration paramater. -*/ -#define CFE_ES_RAM_DISK_NUM_SECTORS 4096 - -/** -** \cfeescfg Percentage of Ram Disk Reserved for Decompressing Apps -** -** \par Description: -** The #CFE_ES_RAM_DISK_PERCENT_RESERVED parameter is used to make sure that the -** Volatile ( RAM ) Disk has a defined amount of free space during a processor -** reset. The cFE uses the Volatile disk to decompress cFE applications during -** system startup. If this Volatile disk happens to get filled with logs and -** misc files, then a processor reset may not work, because there will be no -** room to decompress cFE apps. To solve that problem, this parameter sets the -** "Low Water Mark" for disk space on a Processor reset. It should be set to -** allow the largest cFE Application to be decompressed. -** During a Processor reset, if there is not sufficient space left on the disk, -** it will be re-formatted in order to clear up some space. -** -** This feature can be turned OFF by setting the parameter to 0. -** -** \par Limits -** There is a lower limit of 0 and an upper limit of 75 on this configuration -** paramater.Units are percentage. A setting of zero will turn this feature -** off. -*/ -#define CFE_ES_RAM_DISK_PERCENT_RESERVED 30 - - -/** -** \cfeescfg RAM Disk Mount string -** -** \par Description: -** The #CFE_ES_RAM_DISK_MOUNT_STRING parameter is used to set the cFE mount path -** for the CFE RAM disk. This is a parameter for missions that do not want to -** use the default value of "/ram", or for missions that need to have a different -** value for different CPUs or Spacecraft. -** Note that the vxWorks OSAL cannot currently handle names that have more than one -** path separator in it. The names "/ram", "/ramdisk", "/disk123" will all work, but -** "/disks/ram" will not. -** Multiple separators can be used with the posix or RTEMS ports. -** -*/ -#define CFE_ES_RAM_DISK_MOUNT_STRING "/ram" - - -/** -** \cfeescfg Define Critical Data Store Size -** -** \par Description: -** Defines the Critical Data Store (CDS) area size in bytes size. The CDS is -** one of four memory areas that are preserved during a processor reset. -** NOTE: Changing this value changes memory allocation, and may -** require changes to platform specific values (in CFE_PSP) such as -** USER_RESERVED_MEM in VxWorks depending on the memory areas -** being used for preserved data and on OS specific behavior. -** -** \par Limits -** There is a lower limit of 8192 and an upper limit of 2097152 (2MBytes) on -** this configuration paramater. -*/ -#define CFE_ES_CDS_SIZE ( 128 * 2048 ) - - -/** -** \cfeescfg Define User Reserved Memory Size -** -** \par Description: -** User Reserved Memory Size. This is the size in bytes of the cFE User -** reserved Memory area. This is a block of memory that is available for cFE -** application use. The address is obtained by calling -** #CFE_PSP_GetUserReservedArea. The User Reserved Memory is one of four memory -** areas that are preserved during a processor reset. -** NOTE: Changing this value changes memory allocation, and may -** require changes to platform specific values (in CFE_PSP) such as -** USER_RESERVED_MEM in VxWorks depending on the memory areas -** being used for preserved data and on OS specific behavior. -** -** \par Limits -** There is a lower limit of 1024 and an upper limit of 33554432 (32Mbytes) on -** this configuration paramater. -*/ -#define CFE_ES_USER_RESERVED_SIZE ( 1024 * 2048 ) - - -/** -** \cfeescfg Define ES Reset Area Size -** -** \par Description: -** The ES Reset Area Size. This is the size in bytes of the cFE Reset variable -** and log area. This is a block of memory used by the cFE to store the system -** log ER Log and critical reset variables. This is 4 of 4 of the memory areas -** that are preserved during a processor reset. -** Note: This area must be sized large enough to hold all of the data -** structures. It should be automatically sized based on the #CFE_ES_ResetData_t -** type, but circular dependancies in the headers prevent it from being defined -** this way. -** NOTE: Changing this value changes memory allocation, and may -** require changes to platform specific values (in CFE_PSP) such as -** USER_RESERVED_MEM in VxWorks depending on the memory areas -** being used for preserved data and on OS specific behavior. -** -** \par Limits -** There is a lower limit of 153600 (150KBytes) and an upper limit of 2097152 -** (2MBytes) on this configuration paramater. -*/ -#define CFE_ES_RESET_AREA_SIZE ( 170 * 2048 ) - -/** -** \cfeescfg Define Default Memory Pool Alignment Mode -** -** \par Description: -** Defines the default mode for the requirement to align ES Mempool buffer. -** If this define is set, the memory pool must be aligned or the call to -** create a new memory pool will be rejected with a CFE_ES_BAD_ARGUMENT -** return code. -** -** \par Limits -** If CFE_ES_MEMPOOL_ALIGNED is defined, the alignment check is enabled. -** If CFE_ES_MEMPOOL_ALIGNED is not defined, the alignment check is not -** compiled in. -*/ -#define CFE_ES_MEMPOOL_ALIGNED 1 - -/** -** \cfeescfg ES Nonvolatile Startup Filename -** -** \par Description: -** The value of this constant defines the path and name of the file that -** contains a list of modules that will be loaded and started by the cFE after -** the cFE finishes its startup sequence. -** -** \par Limits -** The length of each string, including the NULL terminator cannot exceed the -** #OS_MAX_PATH_LEN value. -*/ -#define CFE_ES_NONVOL_STARTUP_FILE "/cf/apps/cfe_es_startup.scr" - - -/** -** \cfeescfg ES Volatile Startup Filename -** -** \par Description: -** The value of this constant defines the path and name of the file that -** contains a list of modules that will be loaded and started by the cFE after -** the cFE finishes its startup sequence. -** -** \par Limits -** The length of each string, including the NULL terminator cannot exceed the -** #OS_MAX_PATH_LEN value. -*/ -#define CFE_ES_VOLATILE_STARTUP_FILE "/ram/apps/cfe_es_startup.scr" - -/** -** \cfeescfg Default Shell Filename -** -** \par Description: -** The value of this constant defines the filename used to store the shell -** output after a shell command is received by ES. This file contains the -** entire shell output. The fsw also sends the shell output in series of fixed -** size telemetry packets. This filename is used only when no filename -** is specified in the shell command. -** -** \par Limits -** The length of each string, including the NULL terminator cannot exceed the -** #OS_MAX_PATH_LEN value. -*/ -#define CFE_ES_DEFAULT_SHELL_FILENAME "/ram/ShellCmd.out" - - -/** -** \cfeescfg Define Max Shell Command Size -** -** \par Description: -** Defines the maximum size in characters of the shell command. -** -** \par Limits -** There is a lower limit of 64 and an upper limit of 128 on this configuration -** paramater. Units are characters. -*/ -#define CFE_ES_MAX_SHELL_CMD 64 - - -/** -** \cfeescfg Define Shell Command Telemetry Pkt Segment Size -** -** \par Description: -** Defines the size of the shell command tlm packet segments.The shell command -** output size is dependant on the shell command itself. If the shell output -** size is greater than the size of the packet defined here, the fsw will -** generate a series of tlm packets (of the size defined here) that can be -** reconstructed by the ground system. -** -** \par Limits -** There is a lower limit of 32 and an upper limit of 128 on this configuration -** paramater. -*/ -#define CFE_ES_MAX_SHELL_PKT 64 - - -/** -** \cfeescfg Default Application Information Filename -** -** \par Description: -** The value of this constant defines the filename used to store information -** pertaining to all of the Applications that are registered with Executive -** Services. This filename is used only when no filename is specified in the -** the command to query all system apps. -** -** \par Limits -** The length of each string, including the NULL terminator cannot exceed the -** #OS_MAX_PATH_LEN value. -*/ -#define CFE_ES_DEFAULT_APP_LOG_FILE "/ram/cfe_es_app_info.log" - -/** -** \cfeescfg Default Application Information Filename -** -** \par Description: -** The value of this constant defines the filename used to store information -** pertaining to all of the Applications that are registered with Executive -** Services. This filename is used only when no filename is specified in the -** the command to query all system tasks. -** -** \par Limits -** The length of each string, including the NULL terminator cannot exceed the -** #OS_MAX_PATH_LEN value. -*/ -#define CFE_ES_DEFAULT_TASK_LOG_FILE "/ram/cfe_es_task_info.log" - -/** -** \cfeescfg Default System Log Filename -** -** \par Description: -** The value of this constant defines the filename used to store important -** information (as ASCII text strings) that might not be able to be sent in an -** Event Message. This filename is used only when no filename is specified in -** the command to dump the system log. No file specified in the cmd means the -** first character in the cmd filename is a NULL terminator (zero). -** -** \par Limits -** The length of each string, including the NULL terminator cannot exceed the -** #OS_MAX_PATH_LEN value. -*/ -#define CFE_ES_DEFAULT_SYSLOG_FILE "/ram/cfe_es_syslog.log" - -/** -** \cfeescfg Default Exception and Reset (ER) Log Filename -** -** \par Description: -** The value of this constant defines the filename used to store the -** Exception and Reset (ER) Log. This filename is used only when no filename is -** specified in the command to dump the ER log. No file specified in the cmd -** means the first character in the cmd filename is a NULL terminator (zero). -** -** \par Limits -** The length of each string, including the NULL terminator cannot exceed the -** #OS_MAX_PATH_LEN value. -*/ -#define CFE_ES_DEFAULT_ER_LOG_FILE "/ram/cfe_erlog.log" - -/** -** \cfeescfg Default Performance Data Filename -** -** \par Description: -** The value of this constant defines the filename used to store the -** Performance Data. This filename is used only when no filename is specified -** in the command to stop performance data collecting. -** -** \par Limits -** The length of each string, including the NULL terminator cannot exceed the -** #OS_MAX_PATH_LEN value. -*/ -#define CFE_ES_DEFAULT_PERF_DUMP_FILENAME "/ram/cfe_es_perf.dat" - - -/** -** \cfeescfg Default Critical Data Store Registry Filename -** -** \par Description: -** The value of this constant defines the filename used to store the -** Critical Data Store Registry. This filename is used only when no filename is -** specified in the command to stop performance data collecting. -** -** \par Limits -** The length of each string, including the NULL terminator cannot exceed the -** #OS_MAX_PATH_LEN value. -*/ -#define CFE_ES_DEFAULT_CDS_REG_DUMP_FILE "/ram/cfe_cds_reg.log" - -/** -** \cfeescfg Define Default System Log Mode -** -** \par Description: -** Defines the default mode for the operation of the ES System log. The log may -** operate in either Overwrite mode = 0, where once the log becomes full the -** oldest message in the log will be overwritten, or Discard mode = 1, where -** once the log becomes full the contents of the log are preserved and the new -** event is discarded. This constant may hold a value of either 0 or 1 -** depending on the desired default log mode. Overwrite Mode = 0, Discard -** Mode = 1. -** -** \par Limits -** There is a lower limit of 0 and an upper limit of 1 on this configuration -** paramater. -*/ -#define CFE_ES_DEFAULT_SYSLOG_MODE 1 - -/** -** \cfeescfg Define Max Number of Performance IDs -** -** \par Description: -** Defines the maximum number of perf ids allowed. -** -** -** \par Limits -** This number must always be divisible by 32. There is a lower limit of 32 and -** an upper limit of 512 on this configuration paramater. -*/ -#define CFE_ES_PERF_MAX_IDS 128 - -/** -** \cfeescfg Define Max Size of Performance Data Buffer -** -** \par Description: -** Defines the maximum size of the performance data buffer. Units are number of -** performance data entries. An entry is defined by a 32 bit data word followed -** by a 64 bit time stamp. -** -** \par Limits -** There is a lower limit of 1025 and an upper limit of 1048576 (1 Meg) on this -** configuration paramater. The units are number of entries. An entry is -** defined by a 32 bit data word followed by a 64 bit time stamp. -*/ -#define CFE_ES_PERF_DATA_BUFFER_SIZE 10000 - - -/** -** \cfeescfg Define Filter Mask Setting for Disabling All Performance Entries -** -** \par Description: -** Defines the filter mask for disabling all performance entries. The value is a -** bit mask. For each bit, 0 means the corresponding entry is disabled and -** 1 means it is enabled. -*/ -#define CFE_ES_PERF_FILTMASK_NONE 0 - -/** -** \cfeescfg Define Filter Mask Setting for Enabling All Performance Entries -** -** \par Description: -** Defines the filter mask for enabling all performance entries. The value is a -** bit mask. For each bit, 0 means the corresponding entry is disabled and -** 1 means it is enabled. -*/ -#define CFE_ES_PERF_FILTMASK_ALL ~CFE_ES_PERF_FILTMASK_NONE - -/** -** \cfeescfg Define Default Filter Mask Setting for Performance Data Buffer -** -** \par Description: -** Defines the default filter mask for the performance data buffer. The value is a -** bit mask. For each bit, 0 means the corresponding entry is disabled and 1 -** means it is enabled. -** -*/ -#define CFE_ES_PERF_FILTMASK_INIT CFE_ES_PERF_FILTMASK_ALL - - -/** -** \cfeescfg Define Default Filter Trigger Setting for Disabling All Performance Entries -** -** \par Description: -** Defines the default trigger mask for disabling all performance data entries. The value -** is a bit mask. For each bit, 0 means the trigger for the corresponding entry is -** disabled and 1 means it is enabled. -** -*/ -#define CFE_ES_PERF_TRIGMASK_NONE 0 - -/** -** \cfeescfg Define Filter Trigger Setting for Enabling All Performance Entries -** -** \par Description: -** Defines the trigger mask for enabling all performance data entries. The value is -** a bit mask. For each bit, 0 means the trigger for the corresponding entry is -** disabled and 1 means it is enabled. -** -*/ -#define CFE_ES_PERF_TRIGMASK_ALL ~CFE_ES_PERF_TRIGMASK_NONE - -/** -** \cfeescfg Define Default Filter Trigger Setting for Performance Data Buffer -** -** \par Description: -** Defines the default trigger mask for the performance data buffer. The value is a -** 32-bit mask. For each bit, 0 means the trigger for the corresponding entry is -** disabled and 1 means it is enabled. -** -*/ -#define CFE_ES_PERF_TRIGMASK_INIT CFE_ES_PERF_TRIGMASK_NONE - -/** -** \cfeescfg Define Performance Analyzer Child Task Priority -** -** \par Description: -** This parameter defines the priority of the child task spawed by the -** Executive Services to write performance data to a file. Lower numbers -** are higher priority, with 1 being the highest priority in the case of a -** child task. -** -** \par Limits -** Valid range for a child task is 1 to 255 however, the priority cannot -** be higher (lower number) than the ES parent application priority. -*/ -#define CFE_ES_PERF_CHILD_PRIORITY 200 - -/** -** \cfeescfg Define Performance Analyzer Child Task Stack Size -** -** \par Description: -** This parameter defines the stack size of the child task spawed by the -** Executive Services to write performance data to a file. -** -** \par Limits -** It is recommended this parameter be greater than or equal to 4KB. This parameter -** is limited by the maximum value allowed by the data type. In this case, the data -** type is an unsigned 32-bit integer, so the valid range is 0 to 0xFFFFFFFF. -*/ -#define CFE_ES_PERF_CHILD_STACK_SIZE 16384 - -/** -** \cfeescfg Define Performance Analyzer Child Task Delay -** -** \par Description: -** This parameter defines the delay time (in milliseconds) between performance -** data file writes performed by the Executive Services Performace Analyzer -** Child Task. -** -** \par Limits -** It is recommended this parameter be greater than or equal to 20ms. This parameter -** is limited by the maximum value allowed by the data type. In this case, the data -** type is an unsigned 32-bit integer, so the valid range is 0 to 0xFFFFFFFF. -*/ -#define CFE_ES_PERF_CHILD_MS_DELAY 20 - -/** -** \cfeescfg Define Performance Analyzer Child Task Number of Entries Between Delay -** -** \par Description: -** This parameter defines the number of performace analyzer entries the Performace -** Analyzer Child Task will write to the file between delays. -** -*/ -#define CFE_ES_PERF_ENTRIES_BTWN_DLYS 50 - -/** -** \cfeescfg Define Default Stack Size for an Application -** -** \par Description: -** This parameter defines a default stack size. This parameter is used by the -** cFE Core Applications. -** -** \par Limits -** There is a lower limit of 2048 and an upper limit of 16384 on this -** configuration paramater. -*/ -#define CFE_ES_DEFAULT_STACK_SIZE 16384 - - -/** -** \cfeescfg Define EVS Task Priority -** -** \par Description: -** Defines the cFE_EVS Task priority. -** -** \par Limits -** Not Applicable -*/ -#define CFE_EVS_START_TASK_PRIORITY 61 - -/** -** \cfeescfg Define EVS Task Stack Size -** -** \par Description: -** Defines the cFE_EVS Task Stack Size -** -** \par Limits -** There is a lower limit of 2048 and an upper limit of 16384 on this -** configuration paramater. -*/ -#define CFE_EVS_START_TASK_STACK_SIZE CFE_ES_DEFAULT_STACK_SIZE - -#define CFE_EVS_START_TASK_FLAGS OS_ENABLE_CORE_0 - -/** -** \cfeescfg Define SB Task Priority -** -** \par Description: -** Defines the cFE_SB Task priority. -** -** \par Limits -** Not Applicable -*/ -#define CFE_SB_START_TASK_PRIORITY 64 - -/** -** \cfeescfg Define SB Task Stack Size -** -** \par Description: -** Defines the cFE_SB Task Stack Size -** -** \par Limits -** There is a lower limit of 2048 and an upper limit of 16384 on this -** configuration paramater. -*/ -#define CFE_SB_START_TASK_STACK_SIZE CFE_ES_DEFAULT_STACK_SIZE - -#define CFE_SB_START_TASK_FLAGS OS_ENABLE_CORE_0 - -/** -** \cfeescfg Define ES Task Priority -** -** \par Description: -** Defines the cFE_ES Task priority. -** -** \par Limits -** Not Applicable -*/ -#define CFE_ES_START_TASK_PRIORITY 68 - -/** -** \cfeescfg Define ES Task Stack Size -** -** \par Description: -** Defines the cFE_ES Task Stack Size -** -** \par Limits -** There is a lower limit of 2048 and an upper limit of 16384 on this -** configuration paramater. -*/ -#define CFE_ES_START_TASK_STACK_SIZE 16384 - -#define CFE_ES_START_TASK_FLAGS OS_ENABLE_CORE_0 - -/** -** \cfetimecfg Define TIME Task Priorities -** -** \par Description: -** Defines the cFE_TIME Task priority. -** Defines the cFE_TIME Tone Task priority. -** Defines the cFE_TIME 1HZ Task priority. -** -** \par Limits -** There is a lower limit of zero and an upper limit of 255 on these -** configuration paramaters. Remember that the meaning of each task -** priority is inverted -- a "lower" number has a "higher" priority. -*/ -#define CFE_TIME_START_TASK_PRIORITY 60 -#define CFE_TIME_TONE_TASK_PRIORITY 25 -#define CFE_TIME_1HZ_TASK_PRIORITY 25 - -/** -** \cfetimecfg Define TIME Task Stack Sizes -** -** \par Description: -** Defines the cFE_TIME Main Task Stack Size -** Defines the cFE_TIME Tone Task Stack Size -** Defines the cFE_TIME 1HZ Task Stack Size -** -** \par Limits -** There is a lower limit of 2048 and an upper limit of 16384 on these -** configuration paramaters. -*/ -#define CFE_TIME_START_TASK_STACK_SIZE CFE_ES_DEFAULT_STACK_SIZE -#define CFE_TIME_TONE_TASK_STACK_SIZE 16384 -#define CFE_TIME_1HZ_TASK_STACK_SIZE 16384 - -#define CFE_TIME_START_TASK_FLAGS OS_ENABLE_CORE_0 -#define CFE_TIME_TONE_TASK_FLAGS OS_ENABLE_CORE_0 -#define CFE_TIME_1HZ_TASK_FLAGS OS_ENABLE_CORE_0 - -/** -** \cfeescfg Define TBL Task Priority -** -** \par Description: -** Defines the cFE_TBL Task priority. -** -** \par Limits -** Not Applicable -*/ -#define CFE_TBL_START_TASK_PRIORITY 70 - -/** -** \cfeescfg Define TBL Task Stack Size -** -** \par Description: -** Defines the cFE_TBL Task Stack Size -** -** \par Limits -** There is a lower limit of 2048 and an upper limit of 16384 on this -** configuration paramater. -*/ -#define CFE_TBL_START_TASK_STACK_SIZE CFE_ES_DEFAULT_STACK_SIZE - -#define CFE_TBL_START_TASK_FLAGS OS_ENABLE_CORE_0 - -/** -** \cfeescfg Define Maximum Number of Registered CDS Blocks -** -** \par Description: -** Maximum number of registered CDS Blocks -** -** \par Limits -** There is a lower limit of 8 and an upper limit of 32767 on this configuration -** paramater. -*/ -#define CFE_ES_CDS_MAX_NUM_ENTRIES 512 - - -/** -** \cfeescfg Define Number of Processor Resets Before a Power On Reset -** -** \par Description: -** Number of Processor Resets before a Power On Reset is called. If set to 2, -** then 2 processor resets will occur, and the 3rd processor reset will be a -** power on reset instead. -** -** \par Limits -** There is a lower limit of 0 and an upper limit of 1024 on this configuration -** paramater. -*/ -#define CFE_ES_MAX_PROCESSOR_RESETS 2 - - -/** -** \cfeescfg Define Default ES Memory Pool Block Sizes -** -** \par Description: -** Default Intermediate ES Memory Pool Block Sizes. If an application -** is using the CFE_ES Memory Pool APIs (#CFE_ES_PoolCreate, #CFE_ES_PoolCreateNoSem, -** #CFE_ES_GetPoolBuf and #CFE_ES_PutPoolBuf) but finds these sizes -** inappropriate for their use, they may wish to use the #CFE_ES_PoolCreateEx -** API to specify their own intermediate block sizes -** -** \par Limits -** These sizes MUST be increasing and MUST be an integral multiple of 4. Also, -** CFE_ES_MAX_BLOCK_SIZE must be larger than CFE_SB_MAX_SB_MSG_SIZE and both -** CFE_TBL_MAX_SNGL_TABLE_SIZE and CFE_TBL_MAX_DBL_TABLE_SIZE. Note that if Table -** Services have been removed from the CFE, the table size limits are still -** enforced although the table size definitions may be reduced. Refer to the CFS -** Deployment Guide for information about removing CFE Table Services from the CFE. -*/ -#define CFE_ES_MEM_BLOCK_SIZE_01 8 -#define CFE_ES_MEM_BLOCK_SIZE_02 16 -#define CFE_ES_MEM_BLOCK_SIZE_03 32 -#define CFE_ES_MEM_BLOCK_SIZE_04 48 -#define CFE_ES_MEM_BLOCK_SIZE_05 64 -#define CFE_ES_MEM_BLOCK_SIZE_06 96 -#define CFE_ES_MEM_BLOCK_SIZE_07 128 -#define CFE_ES_MEM_BLOCK_SIZE_08 160 -#define CFE_ES_MEM_BLOCK_SIZE_09 256 -#define CFE_ES_MEM_BLOCK_SIZE_10 512 -#define CFE_ES_MEM_BLOCK_SIZE_11 1024 -#define CFE_ES_MEM_BLOCK_SIZE_12 2048 -#define CFE_ES_MEM_BLOCK_SIZE_13 4096 -#define CFE_ES_MEM_BLOCK_SIZE_14 8192 -#define CFE_ES_MEM_BLOCK_SIZE_15 16384 -#define CFE_ES_MEM_BLOCK_SIZE_16 80000 -#define CFE_ES_MAX_BLOCK_SIZE 200000 - - -/** -** \cfeescfg Define ES Critical Data Store Memory Pool Block Sizes -** -** \par Description: -** Intermediate ES Critical Data Store Memory Pool Block Sizes -** -** \par Limits -** These sizes MUST be increasing and MUST be an integral multiple of 4. -*/ -#define CFE_ES_CDS_MEM_BLOCK_SIZE_01 8 -#define CFE_ES_CDS_MEM_BLOCK_SIZE_02 16 -#define CFE_ES_CDS_MEM_BLOCK_SIZE_03 32 -#define CFE_ES_CDS_MEM_BLOCK_SIZE_04 48 -#define CFE_ES_CDS_MEM_BLOCK_SIZE_05 64 -#define CFE_ES_CDS_MEM_BLOCK_SIZE_06 96 -#define CFE_ES_CDS_MEM_BLOCK_SIZE_07 128 -#define CFE_ES_CDS_MEM_BLOCK_SIZE_08 160 -#define CFE_ES_CDS_MEM_BLOCK_SIZE_09 256 -#define CFE_ES_CDS_MEM_BLOCK_SIZE_10 512 -#define CFE_ES_CDS_MEM_BLOCK_SIZE_11 1024 -#define CFE_ES_CDS_MEM_BLOCK_SIZE_12 2048 -#define CFE_ES_CDS_MEM_BLOCK_SIZE_13 4096 -#define CFE_ES_CDS_MEM_BLOCK_SIZE_14 8192 -#define CFE_ES_CDS_MEM_BLOCK_SIZE_15 16384 -#define CFE_ES_CDS_MEM_BLOCK_SIZE_16 32768 -#define CFE_ES_CDS_MAX_BLOCK_SIZE 80000 - - - -/** -** \cfeevscfg Define Maximum Number of Event Filters per Application -** -** \par Description: -** Maximum number of events that may be filtered per application. -** -** \par Limits -** There is an upper limit of 32767 on this configuration paramater. -*/ -#define CFE_EVS_MAX_EVENT_FILTERS (256) - - -/** -** \cfeevscfg Enable or Disable EVS Local Event Log -** -** \par Description: -** The CFE_EVS_LOG_ON configuration parameter must be defined to enable EVS -** event logging. In order to disable the local event log this definition needs -** to be commented out. -** -** \par Limits -** Not Applicable -*/ -#define CFE_EVS_LOG_ON - - -/** -** \cfeevscfg Default Event Log Filename -** -** \par Description: -** The value of this constant defines the filename used to store the Event -** Services local event log. This filename is used only when no filename is -** specified in the command to dump the event log. -** -** \par Limits -** The length of each string, including the NULL terminator cannot exceed the -** #OS_MAX_PATH_LEN value. -*/ -#define CFE_EVS_DEFAULT_LOG_FILE "/ram/cfe_evs.log" - - -/** -** \cfeevscfg Maximum Number of Events in EVS Local Event Log -** -** \par Description: -** Dictates the EVS local event log capacity. Units are the number of events. -** -** \par Limits -** There is an upper limit of 65535 on this configuration paramater. -*/ -#define CFE_EVS_LOG_MAX 20 - - -/** -** \cfeevscfg Default EVS Application Data Filename -** -** \par Description: -** The value of this constant defines the filename used to store the EVS -** Application Data(event counts/filtering information). This filename is -** used only when no filename is specified in the command to dump the event -** log. -** -** \par Limits -** The length of each string, including the NULL terminator cannot exceed the -** #OS_MAX_PATH_LEN value. -*/ -#define CFE_EVS_DEFAULT_APP_DATA_FILE "/ram/cfe_evs_app.dat" - - -/** -** \cfeevscfg Default EVS Output Port State -** -** \par Description: -** Defines the default port state (enabled or deisabled) for the four output -** ports defined within the Event Service. Port 1 is usually the uart output -** terminal. To enable a port, set the proper bit to a 1. Bit 0 is port 1, -** bit 1 is port2 etc. -** -** \par Limits -** The valid settings are 0x0 to 0xF. -*/ -#define CFE_EVS_PORT_DEFAULT 0x0001 - - -/** -** \cfeevscfg Default EVS Event Type Filter Mask -** -** \par Description: -** Defines a state of on or off for all four event types. The term event -** 'type' refers to the criticality level and may be Debug, Informational, -** Error or Critical. Each event type has a bit position. (bit 0 = Debug, -** bit 1 = Info, bit 2 = Error, bit 3 = Critical). This is a global setting, -** meaning it applies to all applications. To filter an event type, set its -** bit to zero. For example, -** 0xE means Debug = OFF, Info = ON, Error = ON, Critical = ON -** -** \par Limits -** The valid settings are 0x0 to 0xF. -*/ -#define CFE_EVS_DEFAULT_TYPE_FLAG 0xE - - - -/** -** \cfeevscfg Default EVS Local Event Log Mode -** -** \par Description: -** Defines a state of overwrite(0) or discard(1) for the operation of the -** EVS local event log. The log may operate in either Overwrite mode = 0, -** where once the log becomes full the oldest event in the log will be -** overwritten, or Discard mode = 1, where once the log becomes full the -** contents of the log are preserved and the new event is discarded. -** Overwrite Mode = 0, Discard Mode = 1. -** -** \par Limits -** The valid settings are 0 or 1 -*/ -#define CFE_EVS_DEFAULT_LOG_MODE 1 - - -/** -** \cfeevscfg Default EVS Message Format Mode -** -** \par Description: -** Defines the default message format (long or short) for event messages being -** sent to the ground. Choose between #CFE_EVS_LONG_FORMAT or -** #CFE_EVS_SHORT_FORMAT. -** -** \par Limits -** The valid settings are #CFE_EVS_LONG_FORMAT or #CFE_EVS_SHORT_FORMAT -*/ -#define CFE_EVS_DEFAULT_MSG_FORMAT_MODE CFE_EVS_LONG_FORMAT - - - -/* Platform Configuration Parameters for Table Service (TBL) */ - -/** -** \cfetblcfg Size of Table Services Table Memory Pool -** -** \par Description: -** Defines the TOTAL size of the memory pool that cFE Table Services allocates -** from the system. The size must be large enough to provide memory for each -** registered table, the inactive buffers for double buffered tables and for -** the shared inactive buffers for single buffered tables. -** -** \par Limits -** The cFE does not place a limit on the size of this parameter. -*/ -#define CFE_TBL_BUF_MEMORY_BYTES 1048576 - -/** -** \cfetblcfg Maximum Size Allowed for a Double Buffered Table -** -** \par Description: -** Defines the maximum allowed size (in bytes) of a double buffered table. -** -** \par Limits -** The cFE does not place a limit on the size of this parameter but it must be -** less than half of #CFE_TBL_BUF_MEMORY_BYTES. -*/ -#define CFE_TBL_MAX_DBL_TABLE_SIZE 65535 - -/** -** \cfetblcfg Maximum Size Allowed for a Single Buffered Table -** -** \par Description: -** Defines the maximum allowed size (in bytes) of a single buffered table. -** \b NOTE: This size determines the size of all shared table buffers. -** Therefore, this size will be multiplied by #CFE_TBL_MAX_SIMULTANEOUS_LOADS -** below when allocating memory for shared tables. -** -** \par Limits -** The cFE does not place a limit on the size of this parameter but it must be -** small enough to allow for #CFE_TBL_MAX_SIMULTANEOUS_LOADS number of tables -** to fit into #CFE_TBL_BUF_MEMORY_BYTES. -*/ -#define CFE_TBL_MAX_SNGL_TABLE_SIZE 65535 - -/** -** \cfetblcfg Maximum Number of Tables Allowed to be Registered -** -** \par Description: -** Defines the maximum number of tables supported by this processor's Table Services. -** -** \par Limits -** This number must be less than 32767. It should be recognized that this parameter -** determines the size of the Table Registry. An excessively high number will waste -** memory. -*/ -#define CFE_TBL_MAX_NUM_TABLES 128 - -/** -** \cfetblcfg Maximum Number of Critical Tables that can be Registered -** -** \par Description: -** Defines the maximum number of critical tables supported by this processor's Table Services. -** -** \par Limits -** This number must be less than 32767. It should be recognized that this parameter -** determines the size of the Critical Table Registry which is maintained in the Critical -** Data Store. An excessively high number will waste Critical Data Store memory. Therefore, -** this number must not exceed the value defined in CFE_ES_CDS_MAX_CRITICAL_TABLES. -*/ -#define CFE_TBL_MAX_CRITICAL_TABLES 32 - -/** -** \cfetblcfg Maximum Number of Table Handles -** -** \par Description: -** Defines the maximum number of Table Handles. -** -** \par Limits -** This number must be less than 32767. This number must be at least as big as -** the number of tables (#CFE_TBL_MAX_NUM_TABLES) and should be set higher if tables -** are shared between applications. -*/ -#define CFE_TBL_MAX_NUM_HANDLES 256 - -/** -** \cfetblcfg Maximum Number of Simultaneous Loads to Support -** -** \par Description: -** Defines the maximum number of single buffered tables that can be -** loaded simultaneously. This number is used to determine the number -** of shared buffers to allocate. -** -** \par Limits -** This number must be less than 32767. An excessively high number will -** degrade system performance and waste memory. A number less than 5 is -** suggested but not required. -*/ -#define CFE_TBL_MAX_SIMULTANEOUS_LOADS 4 - -/** -** \cfetblcfg Maximum Number of Simultaneous Table Validations -** -** \par Description: -** Defines the maximum number of pending validations that -** the Table Services can handle at any one time. When a -** table has a validation function, a validation request is -** made of the application to perform that validation. This -** number determines how many of those requests can be -** outstanding at any one time. -** -** \par Limits -** This number must be less than 32767. An excessively high number will -** degrade system performance and waste memory. A number less than 20 is -** suggested but not required. -*/ -#define CFE_TBL_MAX_NUM_VALIDATIONS 10 - -/** -** \cfetblcfg Default Filename for a Table Registry Dump -** -** \par Description: -** Defines the file name used to store the table registry when -** no filename is specified in the dump registry command. -** -** \par Limits -** The length of each string, including the NULL terminator cannot exceed the -** #OS_MAX_PATH_LEN value. -*/ -#define CFE_TBL_DEFAULT_REG_DUMP_FILE "/ram/cfe_tbl_reg.log" - -/** -** \cfetblcfg Number of Spacecraft ID's specified for validation -** -** \par Description: -** Defines the number of specified spacecraft ID values that -** are verified during table loads. If the number is zero -** then no validation of the spacecraft ID field in the table -** file header is performed when tables are loaded. Non-zero -** values indicate how many values from the list of spacecraft -** ID's defined below are compared to the spacecraft ID field -** in the table file header. The ELF2CFETBL tool may be used -** to create table files with specified spacecraft ID values. -** -** \par Limits -** This number must be greater than or equal to zero and -** less than or equal to 2. -*/ -#define CFE_TBL_VALID_SCID_COUNT 0 - -/* macro to construct 32 bit value from 4 chars */ -#define CFE_TBL_U32FROM4CHARS( _C1, _C2, _C3, _C4 ) \ - ( (uint32)(_C1) << 24 | \ - (uint32)(_C2) << 16 | \ - (uint32)(_C3) << 8 | \ - (uint32)(_C4) ) - -/** -** \cfetblcfg Spacecraft ID values used for table load validation -** -** \par Description: -** Defines the spacecraft ID values used for validating the -** spacecraft ID field in the table file header. To be valid, -** the spacecraft ID specified in the table file header must -** match one of the values defined here. -** -** \par Limits -** This value can be any 32 bit unsigned integer. -*/ -#define CFE_TBL_VALID_SCID_1 (CFE_SPACECRAFT_ID) -#define CFE_TBL_VALID_SCID_2 (CFE_TBL_U32FROM4CHARS('a', 'b', 'c', 'd')) - -/** -** \cfetblcfg Number of Processor ID's specified for validation -** -** \par Description: -** Defines the number of specified processor ID values that -** are verified during table loads. If the number is zero -** then no validation of the processor ID field in the table -** file header is performed when tables are loaded. Non-zero -** values indicate how many values from the list of processor -** ID's defined below are compared to the processor ID field -** in the table file header. The ELF2CFETBL tool may be used -** to create table files with specified processor ID values. -** -** \par Limits -** This number must be greater than or equal to zero and -** less than or equal to 4. -*/ -#define CFE_TBL_VALID_PRID_COUNT 0 - -/** -** \cfetblcfg Processor ID values used for table load validation -** -** \par Description: -** Defines the processor ID values used for validating the -** processor ID field in the table file header. To be valid, -** the spacecraft ID specified in the table file header must -** match one of the values defined here. -** -** \par Limits -** This value can be any 32 bit unsigned integer. -*/ -#define CFE_TBL_VALID_PRID_1 (CFE_CPU_ID) -#define CFE_TBL_VALID_PRID_2 (CFE_TBL_U32FROM4CHARS('a', 'b', 'c', 'd')) -#define CFE_TBL_VALID_PRID_3 0 -#define CFE_TBL_VALID_PRID_4 0 - -/** \cfeescfg Mission specific version number for cFE -** -** \par Description: -** The cFE version number consists of four parts: -** major version number, minor version number, revision -** number and mission specific revision number. The mission -** specific revision number is defined here and the other -** parts are defined in "cfe_version.h". -** -** \par Limits: -** Must be defined as a numeric value that is greater than -** or equal to zero. -*/ -#define CFE_MISSION_REV 0 - -/** \cfeescfg Poll timer for startup sync delay -** -** \par Description: -** During startup, some tasks may need to synchronize their own initialization -** with the initialization of other applications in the system. -** -** CFE ES implements an API to accomplish this, that performs a task delay (sleep) -** while polling the overall system state until other tasks are ready. -** -** This value controls the amount of time that the CFE_ES_ApplicationSyncDelay -** will sleep between each check of the system state. This should be large enough -** to allow other tasks to run, but not so large as to noticeably delay the startup -** completion. -** -** Units are in milliseconds -** -** \par Limits: -** Must be defined as an integer value that is greater than -** or equal to zero. -*/ -#define CFE_ES_STARTUP_SYNC_POLL_MSEC 50 - -/** \cfeescfg CFE core application startup timeout -** -** \par Description: -** The upper limit for the amount of time that the cFE core applications -** (ES, SB, EVS, TIME, TBL) are each alloted to reach their respective -** "ready" states. -** -** The CFE "main" thread starts individual tasks for each of the core applications -** (except FS). Each of these must perform some initialization work before the -** next core application can be started, so the main thread waits to ensure that the -** application has reached the "ready" state before starting the next application. -** -** If any core application fails to start, then it indicates a major problem with -** the system and startup is aborted. -** -** Units are in milliseconds -** -** \par Limits: -** Must be defined as an integer value that is greater than -** or equal to zero. -** -*/ -#define CFE_CORE_MAX_STARTUP_MSEC 30000 - -/** \cfeescfg Startup script timeout -** -** \par Description: -** The upper limit for the total amount of time that all apps listed in the CFE ES startup -** script may take to all become ready. -** -** Unlike the "core" app timeout, this is a soft limit; if the alloted time is exceeded, -** it probably indicates an issue with one of the apps, but does not cause CFE ES to take -** any additional action other than logging the event to the syslog. -** -** Units are in milliseconds -** -** \par Limits: -** Must be defined as an integer value that is greater than -** or equal to zero. - */ -#define CFE_ES_STARTUP_SCRIPT_TIMEOUT_MSEC 30000 - - -#endif diff --git a/config/ocpoc/quadx/inc/ci_msgids.h b/config/ocpoc/quadx/inc/ci_msgids.h deleted file mode 100644 index 9424bf351..000000000 --- a/config/ocpoc/quadx/inc/ci_msgids.h +++ /dev/null @@ -1,10 +0,0 @@ -#ifndef CI_MSGIDS_H -#define CI_MSGIDS_H - -#include "msg_ids.h" - -#endif - -/************************/ -/* End of File Comment */ -/************************/ diff --git a/config/ocpoc/quadx/inc/ci_platform_cfg.h b/config/ocpoc/quadx/inc/ci_platform_cfg.h deleted file mode 100644 index 63437675c..000000000 --- a/config/ocpoc/quadx/inc/ci_platform_cfg.h +++ /dev/null @@ -1,154 +0,0 @@ -#ifndef CI_PLATFORM_CFG_H -#define CI_PLATFORM_CFG_H - -#ifdef __cplusplus -extern "C" { -#endif - - -/* -** ci Platform Configuration Parameter Definitions -*/ - -/** \brief Mission specific version number for CI application -** -** \par Description: -** An application version number consists of four parts: -** major version number, minor version number, revision -** number and mission specific revision number. The mission -** specific revision number is defined here and the other -** parts are defined in "ci_version.h". -** -** \par Limits: -** Must be defined as a numeric value that is greater than -** or equal to zero. -*/ -#define CI_MISSION_REV (1) - -/** \brief Pipe depth for the Scheduler pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define CI_SCH_PIPE_DEPTH (2) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define CI_SCH_PIPE_NAME ("CI_SCH_PIPE") - -/** \brief The SB pend behavior type for the Scheduler pipe. -** -** \par Limits: -** One of: CFE_SB_POLL, CFE_SB_PEND_FOREVER, or the -** number of milliseconds to wait for a new message (recommended). -** Note, using CFE_SB_PEND_FOREVER may cause an unresponsive -** application if no messages arrive on this pipe. -*/ -#define CI_SCH_PIPE_PEND_TIME (2000) - -/** \brief The number of WAKEUP messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max limited to CFE_SB_MAX_PIPE_DEPTH-1. Note the -** CI_SCH_PIPE_WAKEUP_RESERVED and CI_SCH_PIPE_SEND_HK_RESERVED -** must be less than CI_SCH_PIPE_DEPTH. -*/ -#define CI_SCH_PIPE_WAKEUP_RESERVED (1) - -/** \brief The number of SEND_HK messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. Note the -** CI_SCH_PIPE_WAKEUP_RESERVED and CI_SCH_PIPE_SEND_HK_RESERVED -** must be less than CI_SCH_PIPE_DEPTH. -*/ -#define CI_SCH_PIPE_SEND_HK_RESERVED (1) - -/** \brief The number of PROCESS_TIMEOUT messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define CI_SCH_PIPE_PROC_TIMEOUT_RESERVED (1) - -/** \brief Pipe depth for the command pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define CI_CMD_PIPE_DEPTH (4) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define CI_CMD_PIPE_NAME ("CI_CMD_PIPE") - -/** \brief The config table default filename -** -** \par Limits: -** The length of each string, including the NULL terminator cannot exceed -** the #OS_MAX_PATH_LEN value. -*/ -#define CI_CONFIG_TABLE_FILENAME ("/cf/apps/ci_config.tbl") - -/** \brief The timeout table default filename -** -** \par Limits: -** The length of each string, including the NULL terminator cannot exceed -** the #OS_MAX_PATH_LEN value. -*/ -#define CI_TIMEOUT_TABLE_FILENAME ("/cf/apps/ci_timeout.tbl") - -/** \brief The timeout value, in milliseconds, to wait for ES application startup sync. -** -** \par Limits: -** This parameter must be at least 1000 (ms). -*/ -#define CI_STARTUP_TIMEOUT_MSEC (5000) - -/** \brief CI Ingest Mode */ -#define CI_INGEST_MODE (CI_BHV_OPTIMISTIC) - -/** \brief CI Listener Task Delay -** -** \note The main ingest loop is a while loop and sleeps for this many -** milliseconds each iteration. - */ -#define CI_LISTENER_TASK_DELAY (100) - -/** \brief CI Lister Task Stack Size */ -#define CI_LISTENER_TASK_STACK_SIZE (160000) - -/** \brief CI Lister Task Flags for CFE_ES_CreateChildTask() */ -#define CI_LISTENER_TASK_FLAGS (OS_ENABLE_CORE_0) - -/** \brief CI Lister Task Priority */ -#define CI_LISTENER_TASK_PRIORITY (109) - -/** \brief The largest size message CI can ingest */ -#define CI_MAX_CMD_INGEST (CFE_SB_MAX_SB_MSG_SIZE) - -/** \brief Listener task name */ -#define CI_LISTENER_TASK_NAME ("CI_LISTENER") - -/** \brief CI config table mutex name */ -#define CI_CFG_TBL_MUTEX_NAME ("CI_CFG_TBL_MUTEX") - -/** \brief CI timeout table mutex name */ -#define CI_TIME_TBL_MUTEX_NAME ("CI_TIME_TBL_MUTEX") - -#ifdef __cplusplus -} -#endif - -#endif /* CI_PLATFORM_CFG_H */ - -/************************/ -/* End of File Comment */ -/************************/ - diff --git a/config/ocpoc/quadx/inc/cs_msgids.h b/config/ocpoc/quadx/inc/cs_msgids.h deleted file mode 100644 index 688d2c27d..000000000 --- a/config/ocpoc/quadx/inc/cs_msgids.h +++ /dev/null @@ -1,11 +0,0 @@ -#ifndef CS_MSGIDS_H -#define CS_MSGIDS_H - -#include "msg_ids.h" - -#endif /*CS_MSGIDS_H*/ - -/************************/ -/* End of File Comment */ -/************************/ - diff --git a/config/ocpoc/quadx/inc/cs_platform_cfg.h b/config/ocpoc/quadx/inc/cs_platform_cfg.h deleted file mode 100644 index b744a641d..000000000 --- a/config/ocpoc/quadx/inc/cs_platform_cfg.h +++ /dev/null @@ -1,305 +0,0 @@ -#ifndef CS_PLATFORM_CFG_H -#define CS_PLATFORM_CFG_H - -#include "osapi.h" - -/************************************************************************* - ** Macro Definitions - *************************************************************************/ - -#define CS_CHILD_TASK_FLAGS OS_ENABLE_CORE_0 - -/** -** \cscfg EEPROM File Table -- default table filename -** -** \par Description: -** This parameter defines the default filename for the -** EEPROM addresses File Table. -** -** \par Limits: -** The string length (including string terminator) cannot exceed -** #OS_MAX_PATH_LEN. (limit is not verified) -*/ -#define CS_DEF_EEPROM_TABLE_FILENAME "/cf/apps/cs_eepromtbl.tbl" - -/** -** \cscfg Memory Address File Table -- default table filename -** -** \par Description: -** This parameter defines the default filename for the -** Memory addresses File Table. -** -** \par Limits: -** The string length (including string terminator) cannot exceed -** #OS_MAX_PATH_LEN. (limit is not verified) -*/ -#define CS_DEF_MEMORY_TABLE_FILENAME "/cf/apps/cs_memorytbl.tbl" - -/** -** \cscfg Tables File Table -- default table filename -** -** \par Description: -** This parameter defines the default filename for the -** Tables List File Table. -** -** \par Limits: -** The string length (including string terminator) cannot exceed -** #OS_MAX_PATH_LEN. (limit is not verified) -*/ -#define CS_DEF_TABLES_TABLE_FILENAME "/cf/apps/cs_tablestbl.tbl" - -/** -** \cscfg Application File Table -- default table filename -** -** \par Description: -** This parameter defines the default filename for the -** Application List File Table. -** -** \par Limits: -** The string length (including string terminator) cannot exceed -** #OS_MAX_PATH_LEN. (limit is not verified) -*/ -#define CS_DEF_APP_TABLE_FILENAME "/cf/apps/cs_apptbl.tbl" - -/** -** \cscfg Application Pipe Depth -** -** \par Description: -** This parameter defines the depth of the CS input pipe. The -** depth should be deep enough to accommodate all of the DS -** command packets and all of the subscribed telemetry packets -** that might be generated by applications with a priority -** higher than the CS application. -** -** \par Limits: -** The value must be greater than zero and cannot exceed the -** definition of #CFE_SB_MAX_PIPE_DEPTH. -*/ -#define CS_PIPE_DEPTH 12 - -/** \cscfg Maximum number of entries in the Eeprom table to checksum - ** - ** \par Description: - ** Maximum number of entries that can be in the table of - ** Eeprom areas to checksum. - ** - ** \par Limits: - ** This parameter is limited by the uint16 datatype that defines it. - ** This parameter is limited to 65535. - ** - */ -#define CS_MAX_NUM_EEPROM_TABLE_ENTRIES 16 - -/** \cscfg Maximum number of entries in the Memory table to checksum - ** - ** \par Description: - ** Maximum number of entries that can be in the table of - ** Memory areas to checksum. - ** - ** \par Limits: - ** This parameter is limited by the uint16 datatype that defines it. - ** This parameter is limited to 65535. - ** - */ -#define CS_MAX_NUM_MEMORY_TABLE_ENTRIES 16 - -/** \cscfg Maximum number of tables to checksum - ** - ** \par Description: - ** Maximum number of entries in the table of tables to checksum - ** - ** \par Limits: - ** This parameter is limited by the maximum number of tables allowed - ** in the system. This parameter is limited to #CFE_TBL_MAX_NUM_TABLES - ** - */ -#define CS_MAX_NUM_TABLES_TABLE_ENTRIES 24 - -/** \cscfg Maximum number of applications to checksum - ** - ** \par Description: - ** Maximum number of entries in the table of applications to checksum - ** - ** \par Limits: - ** This parameter is limited by the maximum number of applications allowed - ** in the system. This parameter is limited to #CFE_ES_MAX_APPLICATIONS - ** - */ -#define CS_MAX_NUM_APP_TABLE_ENTRIES 24 - -/** \cscfg Default number of bytes to checksum per cycle - ** - ** \par Description: - ** The default number of bytes that are checksummed in a single CS cycle - ** - ** \par Limits: - ** This parameter is limited by the maximum value allowed by the data type. - ** In this case, the data type is an unsigned 32-bit integer, so the valid - ** range is 0 to 0xFFFFFFFF. Note that "0" is a valid value, and will - ** result in a checksum of 0. - ** - */ -#define CS_DEFAULT_BYTES_PER_CYCLE (1024 *16) - -/** \cscfg CS Child Task Priority - ** - ** \par Description: - ** Priority of child tasks created by CS. Lower numbers are higher priority, - ** with 1 being the highest priority in the case of a child task. - ** - ** \par Limits: - ** Valid range for a child task is 1 to 255, but the priority cannot be - ** higher (lower number) than the CS App priority. - ** - */ -#define CS_CHILD_TASK_PRIORITY 202 - - -/** \cscfg Delay between checksumming cycles for child task - ** - ** \par Description: - ** CS child tasks perform checksum cycles like the main App. - ** Since the child tasks aren't scheduled, there needs to be - ** some other mechanism to prevent it from hogging the CPU. - ** This parameter specifies the number of milliseconds to delay - ** in between cycles. - ** - ** \par Limits: - ** CS does not place limits on this parameter. It is intended to - ** be configurable to prevent the child task from hogging the CPU - ** - */ -#define CS_CHILD_TASK_DELAY 1000 - - -/** \cscfg Timeout for waiting for other apps to start - ** - ** \par Description: - ** CS waits for all of the other applications that are listed in - ** the startup script to start before entering its main loop. If - ** not all of those apps start, CS can pend indefinitely without - ** a timeout. Once CS waits this amount of time ( in milliseconds) - ** it will start regardless of the status of the rest of the apps - ** in the startup script. - ** - ** \par Limits: - ** CS does not place limits on this parameter. It is intended to - ** be configurable to allow enough time for all apps to start. - ** - */ -#define CS_STARTUP_TIMEOUT 60000 - - - -/** \cscfg Desired state of the checksumming of OS code segment at power on -** -** \par Description: -** This determines the default state the checksumming of -** OS code segment should be in at power on -** -** \par Limits: -** This can either be CS_STATE_ENABLED or CS_STATE_DISABLED -*/ -#define CS_OSCS_CHECKSUM_STATE CS_STATE_ENABLED - -/** \cscfg Desired state of the checksumming of CFE core checksum at power on -** -** \par Description: -** This determines the default state the checksumming of -** CFE core should be in at power on -** -** \par Limits: -** This can either be CS_STATE_ENABLED or CS_STATE_DISABLED -*/ -#define CS_CFECORE_CHECKSUM_STATE CS_STATE_ENABLED - -/** \cscfg Desired state of the EEPROM table at power on -** -** \par Description: -** This determines the default state the EEPROM table should -** be in at power on -** -** \par Limits: -** This can either be CS_STATE_ENABLED or CS_STATE_DISABLED -*/ -#define CS_EEPROM_TBL_POWERON_STATE CS_STATE_ENABLED - -/** \cscfg Desired state of the EEPROM table at power on -** -** \par Description: -** This determines the default state the Memory table should -** be in at power on -** -** \par Limits: -** This can either be CS_STATE_ENABLED or CS_STATE_DISABLED -*/ -#define CS_MEMORY_TBL_POWERON_STATE CS_STATE_ENABLED - -/** \cscfg Desired state of the Applications table at power on -** -** \par Description: -** This determines the default state the EEPROM table should -** be in at power on -** -** \par Limits: -** This can either be CS_STATE_ENABLED or CS_STATE_DISABLED -*/ -#define CS_APPS_TBL_POWERON_STATE CS_STATE_ENABLED - -/** \cscfg Desired state of the Tables table at power on -** -** \par Description: -** This determines the default state the EEPROM table should -** be in at power on -** -** \par Limits: -** This can either be CS_STATE_ENABLED or CS_STATE_DISABLED -*/ -#define CS_TABLES_TBL_POWERON_STATE CS_STATE_ENABLED - -/** \cscfg Whether to preserve checksum states on processor reset -** -** \par Description: -** This determines whether to preserve checksum -** enabled/disabled states on processor reset -** -** \par Limits: -** None -*/ -#define CS_PRESERVE_STATES_ON_PROCESSOR_RESET TRUE - - -/** \cscfg Name of the Critical Data Store Used for CS -** -** \par Description: -** Name of the Critical Data Store for CS -** This CDS is used to preserve the checksum -** enabled states for EERPOM, Memory, Apps, Tables tables -** as well as OS code segment and cFE core states -** -** \par Limits: -** Must be a unique string with regards to CDS -*/ -#define CS_CDS_NAME "CS_CDS" - -/** \cscfg Mission specific version number for CS application -** -** \par Description: -** An application version number consists of four parts: -** major version number, minor version number, revision -** number and mission specific revision number. The mission -** specific revision number is defined here and the other -** parts are defined in "cs_version.h". -** -** \par Limits: -** Must be defined as a numeric value that is greater than -** or equal to zero. -*/ -#define CS_MISSION_REV 0 - -#endif /*_cs_platform_cfg_*/ - -/************************/ -/* End of File Comment */ -/************************/ - diff --git a/config/ocpoc/quadx/inc/ds_msgids.h b/config/ocpoc/quadx/inc/ds_msgids.h deleted file mode 100644 index d288329a0..000000000 --- a/config/ocpoc/quadx/inc/ds_msgids.h +++ /dev/null @@ -1,11 +0,0 @@ -#ifndef DS_MSGIDS_H -#define DS_MSGIDS_H - -#include "msg_ids.h" - - -#endif /* DS_MSGIDS_H */ - -/************************/ -/* End of File Comment */ -/************************/ diff --git a/config/ocpoc/quadx/inc/ds_platform_cfg.h b/config/ocpoc/quadx/inc/ds_platform_cfg.h deleted file mode 100644 index 0a2d305dd..000000000 --- a/config/ocpoc/quadx/inc/ds_platform_cfg.h +++ /dev/null @@ -1,471 +0,0 @@ -#ifndef DS_PLATFORM_CFG_H -#define DS_PLATFORM_CFG_H - - -/** -** \dscfg Destination File Table -- logical table name -** -** \par Description: -** This parameter defines the name of the DS Destination File -** Table when referenced via cFE Table Services. Note that this -** parameter is not a filename, it is the table specific portion -** of the logical name. The entire logical name for this table -** is "DS.FILE_TBL". -** -** \par Limits: -** The string length (including string terminator) cannot exceed -** #CFE_TBL_MAX_NAME_LENGTH. (limit is not verified) -*/ -#define DS_DESTINATION_TBL_NAME "FILE_TBL" - - -/** -** \dscfg Destination File Table -- default table filename -** -** \par Description: -** This parameter defines the default filename for the -** Destination File Table. -** -** \par Limits: -** The string length (including string terminator) cannot exceed -** #OS_MAX_PATH_LEN. (limit is not verified) -*/ -#define DS_DEF_DEST_FILENAME "/cf/apps/ds_file_tbl.tbl" - - -/** -** \dscfg Destination File Table -- number of files -** -** \par Description: -** This parameter defines the size of the DS Destination File -** Table by setting the number of file entries in the table. The -** number should be large enough to provide an entry for all the -** destination files defined for the project. Maintenance will -** be simplified if file index 'n' always describes the same -** file - even if that file is not in use at the present time. -** -** \par Limits: -** The number must be greater than zero but there is no upper -** enforced limit for this parameter. -*/ -#define DS_DEST_FILE_CNT 16 - - -/** -** \dscfg Destination File Table -- pathname buffer size -** -** \par Description: -** This parameter further defines the size of the Destination -** File Table by setting the size of the pathname buffer for -** each file entry. Note that the buffer must contain both -** the string and the string terminator - so the max string -** length is one less than the buffer size. -** -** \par Limits: -** The buffer size must be greater than zero and a multiple -** of four bytes for alignment. The value cannot exceed the -** maximum filename size allowed by the OS (#OS_MAX_PATH_LEN). -*/ -#define DS_PATHNAME_BUFSIZE OS_MAX_PATH_LEN - - -/** -** \dscfg Destination File Table -- basename buffer size -** -** \par Description: -** This parameter further defines the size of the Destination -** File Table by setting the size of the basename buffer for -** each file entry. Note that the buffer must contain both -** the string and the string terminator - so the max string -** length is one less than the buffer size. -** -** \par Limits: -** The buffer size must be greater than zero and a multiple -** of four bytes for alignment. The value cannot exceed the -** maximum filename size allowed by the OS (#OS_MAX_PATH_LEN). -*/ -#define DS_BASENAME_BUFSIZE OS_MAX_PATH_LEN - - -/** -** \dscfg Destination File Table -- extension buffer size -** -** \par Description: -** This parameter further defines the size of the Destination -** File Table by setting the size of the extension buffer for -** each file entry. Note that the buffer must contain both -** the string and the string terminator - so the max string -** length is one less than the buffer size. -** -** \par Limits: -** The buffer size must be greater than zero and a multiple -** of four bytes for alignment. The value cannot exceed the -** maximum filename size allowed by the OS (#OS_MAX_PATH_LEN). -*/ -#define DS_EXTENSION_BUFSIZE 8 - - -/** -** \dscfg Packet Filter Table -- logical table name -** -** \par Description: -** This parameter defines the name of the DS Packet Filter Table -** when referenced via cFE Table Services. Note that this -** parameter is not a filename, it is the table specific portion -** of the logical name. The entire logical name for this table -** is "DS.FILTER_TBL". -** -** \par Limits: -** The string length (including string terminator) cannot exceed -** #CFE_TBL_MAX_NAME_LENGTH. (limit is not verified) -*/ -#define DS_FILTER_TBL_NAME "FILTER_TBL" - - -/** -** \dscfg Packet Filter Table -- default table filename -** -** \par Description: -** This parameter defines the default filename for the -** Packet Filter Table. -** -** \par Limits: -** The string length (including string terminator) cannot exceed -** #OS_MAX_PATH_LEN. (limit is not verified) -*/ -#define DS_DEF_FILTER_FILENAME "/cf/apps/ds_filter_tbl.tbl" - - -/** -** \dscfg Packet Filter Table -- number of packets -** -** \par Description: -** This parameter defines the size of the DS Packet Filter Table -** by setting the number of packet entries in the table. The -** number should be large enough to provide an entry for each -** command and telemetry packet subject to data storage. -** -** \par Limits: -** The number must be greater than zero but there is no upper -** enforced limit for this parameter. However, setting the -** size equal to the number of packets that might be subject -** to data storage, rather than the total number of packets -** defined for this project, will reduce the table file size, -** possibly significantly. -*/ -#define DS_PACKETS_IN_FILTER_TABLE 256 - - -/** -** \dscfg Packet Filter Table -- filters per packet -** -** \par Description: -** This parameter further defines the size of the DS Packet -** Filter Table by setting the number of filters per packet -** entry. This is the maximum number of destination files -** to which a single packet can be written (at one time). -** -** \par Limits: -** The number of filters per packet must be greater than zero -** and not greater than #DS_DEST_FILE_CNT. -*/ -#define DS_FILTERS_PER_PACKET 4 - - -/** -** \dscfg Common Table File -- descriptor text buffer size -** -** \par Description: -** This parameter defines the size of the Descriptor Text -** fields in both the Destination File Table and the Packet -** Filter Table. The buffer includes the string terminator. -** -** \par Limits: -** The buffer size must be greater than zero and a multiple -** of four bytes for alignment. There is no upper limit. -*/ -#define DS_DESCRIPTOR_BUFSIZE 32 - - -/** -** \dscfg Filename Sequence Count -- number of digits -** -** \par Description: -** This parameter defines the number of filename sequence -** count digits used when the filename type has been set to -** "count" rather than "time". Sequence counts are padded -** with leading zero's to create fixed length strings. -** -** \par Limits: -** The number of sequence count digits must be greater than -** zero - even if there is no intention of later setting -** the filename type to "count". This value should match -** the definition for #DS_MAX_SEQUENCE_COUNT, below. -*/ -#define DS_SEQUENCE_DIGITS 8 - - -/** -** \dscfg Filename Sequence Count -- max counter value -** -** \par Description: -** This parameter defines the maximum value a file sequence -** count will reach before rollover. -** -** \par Limits: -** The value must be greater than zero and should not have -** more digits than the number of sequence count digits -** defined for #DS_SEQUENCE_DIGITS, above. -*/ -#define DS_MAX_SEQUENCE_COUNT 99999999 - - -/** -** \dscfg Data Storage File -- total filename size -** -** \par Description: -** This parameter defines the maximum size of a filename after -** combining the pathname, basename, sequence and extension. -** -** \par Limits: -** The buffer size must be greater than zero and a multiple -** of four bytes for alignment. The buffer size (including -** string terminator) cannot exceed #OS_MAX_PATH_LEN. -*/ -#define DS_TOTAL_FNAME_BUFSIZE OS_MAX_PATH_LEN - - -/** -** \dscfg Data Storage File -- cFE file header sub-type -** -** \par Description: -** This parameter defines a mission-specific value that is used -** to identify a Data Storage file. -** -** \par Limits: -** The file header data type for the value is 32 bits unsigned, -** thus the value can be anything from zero to 4,294,967,295. -** (limit is not verified) -*/ -#define DS_FILE_HDR_SUBTYPE 12345 - - -/** -** \dscfg Data Storage File -- cFE file header description -** -** \par Description: -** This parameter defines a mission-specific text string that -** may be used to identify Data Storage files. -** -** \par Limits: -** The string length (including string terminator) cannot exceed -** #CFE_FS_HDR_DESC_MAX_LEN. (limit is not verified) -*/ -#define DS_FILE_HDR_DESCRIPTION "DS data storage file" - - -/** -** \dscfg Data Storage File -- minimum size limit -** -** \par Description: -** This parameter defines the lower limit for commands and -** table entries that define the size (in bytes) when a data -** storage file is automatically closed. -** -** \par Limits: -** None -- however, the user should be cautioned that a very -** small value will allow an size limit that closes files too -** frequently, while a very large value will effectively -** prevent files from ever being closed due to size. -*/ -#define DS_FILE_MIN_SIZE_LIMIT 1024 - - -/** -** \dscfg Data Storage File -- minimum age limit -** -** \par Description: -** This parameter defines the lower limit for commands and -** table entries that define the age (in seconds) when a data -** storage file is automatically closed. -** -** \par Limits: -** None -- however, the user should be cautioned that a very -** small value will allow an age limit that closes files too -** frequently, while a very large value will effectively -** prevent files from ever being closed due to age. -*/ -#define DS_FILE_MIN_AGE_LIMIT 60 - - -/** -** \dscfg Application Pipe Name -** -** \par Description: -** This parameter defines a portion of the logical name used -** during the creation of the DS input pipe. The logical name -** may also be used as an identifier when accessing status for -** the pipe via cFE Software Bus Services. The entire logical -** name is "DS.DS_CMD_PIPE". -** -** \par Limits: -** The string length (including string terminator) cannot -** exceed #OS_MAX_API_NAME. (limit is not verified) -*/ -#define DS_APP_PIPE_NAME "DS_CMD_PIPE" - - -/** -** \dscfg Application Pipe Depth -** -** \par Description: -** This parameter defines the depth of the DS input pipe. The -** depth should be deep enough to accommodate all of the DS -** command packets and all of the subscribed telemetry packets -** that might be generated by applications with a priority -** higher than the DS application. -** -** \par Limits: -** The value must be greater than zero and cannot exceed the -** definition of #CFE_SB_MAX_PIPE_DEPTH. -*/ -#define DS_APP_PIPE_DEPTH 256 - - -/** -** \dscfg Make DS Tables Critical -** -** \par Description: -** Set this parameter to a value of one to make the DS tables critical, -** otherwise set to zero. -** -** \par Limits -** This parameter must be set to zero or one. -*/ -#define DS_MAKE_TABLES_CRITICAL 0 - - -/** -** \dscfg Housekeeping Request Frequency -** -** \par Description: -** Set this parameter equal to the number of seconds between -** housekeeping request commands. This number is mission -** specific and must match the frequency used by the source -** of the command - often the scheduler task. The value is -** used by the DS application to measure file age and also -** as a factor in the calculation of file growth rates. -** -** \par Limits -** This parameter must be greater than zero. -*/ -#define DS_SECS_PER_HK_CYCLE 4 - - -/** -** \dscfg Default DS Packet Processor State -** -** \par Description: -** Set this parameter to a value of one and DS will begin to -** process packets immediately on startup. Set the value to -** zero and DS will ignore data storage packets until receipt -** of a valid #DS_ENABLE command. -** -** \par Limits -** This parameter must be set to zero or one. -*/ -#define DS_DEF_ENABLE_STATE 1 - - -/** -** \dscfg Save DS Packet Processor State in Critical Data Store -** -** \par Description: -** Set this parameter to a value of one and DS will restore -** the previous Packet Processor enable/disable state after -** a processor reset. This setting does not affect the -** Packet Processor enable/disable state set at power-on -** which is controlled by #DS_DEF_ENABLE_STATE. Set the -** value to zero and DS will set the enable/disable state -** as described for #DS_DEF_ENABLE_STATE following any reset. -** -** \par Limits -** This parameter must be set to zero or one. -*/ -#define DS_CDS_ENABLE_STATE 1 - - -/** \dscfg Mission specific version number for DS application -** -** \par Description: -** An application version number consists of four parts: -** major version number, minor version number, revision -** number and mission specific revision number. The mission -** specific revision number is defined here and the other -** parts are defined in "ds_version.h". -** -** \par Limits: -** Must be defined as a numeric value that is greater than -** or equal to zero. -*/ -#define DS_MISSION_REV 0 - - -/** -** \dscfg File Header Type Selection -** -** \par Description: -** Set this parameter to select the type of file header that -** will be the first record written to each Data Storage File. -** -** \par Limits -** This parameter must be set to one of the following: -** 0 = none -- set this value to have no file header -** 1 = CFE -- set this value to use CFE file headers -** 2 = GPM -- set this value to use GPM file headers -*/ -#define DS_FILE_HEADER_TYPE 1 - - -/** -** \dscfg Move Files to Downlink Directory After Close Selection -** -** \par Description: -** Set this parameter to enable the code and structures to -** automatically move DS files to another directory after -** closing the files. The intended use for this setting is -** to move files from a working directory into a directory -** from which the files can be downlinked. Note that even -** after enabling this feature, files will not be moved if -** the move pathname in the Destination File Table is null. -** -** \par Limits -** This parameter must be set to one of the following: -** TRUE = add move pathname field to Destination File Table -** FALSE = do not add move pathname to Destination File Table -*/ -#define DS_MOVE_FILES FALSE - - -/** -** \dscfg Application Per Packet Pipe Limit -** -** \par Description: -** This parameter defines the per packet pipe limit. This is -** the max number of packets with the same Message ID that may -** be in the DS input pipe at any one time. This value should -** be large enough to accommodate a burst of packets (usually -** event packets) plus a suitable margin. -** -** \par Limits: -** The value must be greater than zero and cannot exceed the -** definition of #DS_APP_PIPE_DEPTH. -*/ -#define DS_PER_PACKET_PIPE_LIMIT 1 - - -#endif /* DS_PLATFORM_CFG_H */ - -/************************/ -/* End of File Comment */ -/************************/ diff --git a/config/ocpoc/quadx/inc/ea_platform_cfg.h b/config/ocpoc/quadx/inc/ea_platform_cfg.h deleted file mode 100644 index b3034d0c1..000000000 --- a/config/ocpoc/quadx/inc/ea_platform_cfg.h +++ /dev/null @@ -1,143 +0,0 @@ -#ifndef EA_PLATFORM_CFG_H -#define EA_PLATFORM_CFG_H - -#ifdef __cplusplus -extern "C" { -#endif - -#define EA_CHILD_TASK_FLAGS OS_ENABLE_CORE_0 - - -/* -** ea Platform Configuration Parameter Definitions -*/ - -/** \brief Mission specific version number for EA application -** -** \par Description: -** An application version number consists of four parts: -** major version number, minor version number, revision -** number and mission specific revision number. The mission -** specific revision number is defined here and the other -** parts are defined in "ea_version.h". -** -** \par Limits: -** Must be defined as a numeric value that is greater than -** or equal to zero. -*/ -#define EA_MISSION_REV (0) - -/** \brief Pipe depth for the Scheduler pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define EA_SCH_PIPE_DEPTH (2) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define EA_SCH_PIPE_NAME ("EA_SCH_PIPE") - -/** \brief The SB pend behavior type for the Scheduler pipe. -** -** \par Limits: -** One of: CFE_SB_POLL, CFE_SB_PEND_FOREVER, or the -** number of milliseconds to wait for a new message (recommended). -** Note, using CFE_SB_PEND_FOREVER may cause an unresponsive -** application if no messages arrive on this pipe. -*/ -#define EA_SCH_PIPE_PEND_TIME (2000) - -/** \brief The number of WAKEUP messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max limited to CFE_SB_MAX_PIPE_DEPTH-1. Note the -** EA_SCH_PIPE_WAKEUP_RESERVED and EA_SCH_PIPE_SEND_HK_RESERVED -** must be less than EA_SCH_PIPE_DEPTH. -*/ -#define EA_SCH_PIPE_WAKEUP_RESERVED (1) - -/** \brief The number of SEND_HK messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. Note the -** EA_SCH_PIPE_WAKEUP_RESERVED and EA_SCH_PIPE_SEND_HK_RESERVED -** must be less than EA_SCH_PIPE_DEPTH. -*/ -#define EA_SCH_PIPE_SEND_HK_RESERVED (1) - -/** \brief Pipe depth for the command pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define EA_CMD_PIPE_DEPTH (4) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define EA_CMD_PIPE_NAME ("EA_CMD_PIPE") - -/** \brief Pipe depth for the data pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define EA_DATA_PIPE_DEPTH (4) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define EA_DATA_PIPE_NAME ("EA_DATA_PIPE") - -/** \brief The config table default filename -** -** \par Limits: -** The length of each string, including the NULL terminator cannot exceed -** the #OS_MAX_PATH_LEN value. -*/ -#define EA_CONFIG_TABLE_FILENAME ("/cf/apps/ea_config.tbl") -/** \brief The timeout value, in milliseconds, to wait for ES application startup sync. -** -** \par Limits: -** This parameter must be at least 1000 (ms). -*/ -#define EA_STARTUP_TIMEOUT_MSEC (1000) - -/* TODO: Add Doxygen markup. */ -#define EA_CUSTOM_DEV_PATH "/tmp/ttyS0" - -/** \cscfg EA Child Task Priority - ** - ** \par Description: - ** Priority of child tasks created by EA. Lower numbers are higher priority, - ** with 1 being the highest priority in the case of a child task. - ** - ** \par Limits: - ** Valid range for a child task is 1 to 255, but the priority cannot be - ** higher (lower number) than the EA App priority. - ** - */ -#define EA_CHILD_TASK_PRIORITY (187) -#define EA_APP_UTIL_THRESHOLD (70) -#define EA_APP_NUM_THREADS (2) - -#define EA_MAX_PATH_LEN (96) - -#ifdef __cplusplus -} -#endif - -#endif /* EA_PLATFORM_CFG_H */ - -/************************/ -/* End of File Comment */ -/************************/ - diff --git a/config/ocpoc/quadx/inc/flow_msgids.h b/config/ocpoc/quadx/inc/flow_msgids.h deleted file mode 100644 index 494f62fc0..000000000 --- a/config/ocpoc/quadx/inc/flow_msgids.h +++ /dev/null @@ -1,18 +0,0 @@ -#ifndef FLOW_MSGIDS_H -#define FLOW_MSGIDS_H - -#ifdef __cplusplus -extern "C" { -#endif - -#include "msg_ids.h" - -#ifdef __cplusplus -} -#endif - -#endif /* FLOW_MSGIDS_H */ - -/************************/ -/* End of File Comment */ -/************************/ diff --git a/config/ocpoc/quadx/inc/flow_platform_cfg.h b/config/ocpoc/quadx/inc/flow_platform_cfg.h deleted file mode 100644 index 4f24d6eea..000000000 --- a/config/ocpoc/quadx/inc/flow_platform_cfg.h +++ /dev/null @@ -1,135 +0,0 @@ -#ifndef FLOW_PLATFORM_CFG_H -#define FLOW_PLATFORM_CFG_H - -#ifdef __cplusplus -extern "C" { -#endif - -/* -** FLOW Platform Configuration Parameter Definitions -*/ - -/** \brief Mission specific version number for FLOW application -** -** \par Description: -** An application version number consists of four parts: -** major version number, minor version number, revision -** number and mission specific revision number. The mission -** specific revision number is defined here and the other -** parts are defined in "amc_version.h". -** -** \par Limits: -** Must be defined as a numeric value that is greater than -** or equal to zero. -*/ -#define FLOW_MISSION_REV (0) - -/** \brief Pipe depth for the Scheduler pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define FLOW_SCH_PIPE_DEPTH (2) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define FLOW_SCH_PIPE_NAME ("FLOW_SCH_PIPE") - -/** \brief The number of WAKEUP messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max limited to CFE_SB_MAX_PIPE_DEPTH-1. Note the -** FLOW_WAKEUP_MID_MAX_MSG_COUNT and FLOW_SEND_HK_MID_MAX_MSG_COUNT -** must be less than FLOW_SCH_PIPE_DEPTH. -*/ -#define FLOW_WAKEUP_MID_MAX_MSG_COUNT (1) - -/** \brief The number of SEND_HK messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. Note the -** FLOW_WAKEUP_MID_MAX_MSG_COUNT and FLOW_SEND_HK_MID_MAX_MSG_COUNT -** must be less than FLOW_SCH_PIPE_DEPTH. -*/ -#define FLOW_SEND_HK_MID_MAX_MSG_COUNT (1) - -/** \brief Pipe depth for the command pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define FLOW_CMD_PIPE_DEPTH (4) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define FLOW_CMD_PIPE_NAME ("FLOW_CMD_PIPE") - -/** \brief Pipe depth for the data pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define FLOW_DATA_PIPE_DEPTH (4) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define FLOW_DATA_PIPE_NAME ("FLOW_DATA_PIPE") - -/** \brief The config table default filename -** -** \par Limits: -** The length of each string, including the NULL terminator cannot exceed -** the #OS_MAX_PATH_LEN value. -*/ -#define FLOW_CONFIG_TABLE_FILENAME ("/cf/apps/flow_config.tbl") - -/** \brief The timeout value, in milliseconds, to wait for ES application startup sync. -** -** \par Limits: -** This parameter must be at least 1000 (ms). -*/ -#define FLOW_STARTUP_TIMEOUT_MSEC (1000) - -/** \brief Pipe depth for the Gyroscope pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define FLOW_GYRO_PIPE_DEPTH (30) - -/** \brief Pipe name for the Gyroscope pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define FLOW_GYRO_PIPE_NAME ("FLOW_GYRO_PIPE") - -/** \brief The number of SENSOR_GYRO messages to reserve on the Gyroscope pipe. -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. Note the -** FLOW_SENSOR_GYRO_MID_MAX_MSG_COUNT -** must be less than FLOW_GYRO_PIPE_DEPTH. -*/ -#define FLOW_SENSOR_GYRO_MAX_MSG_COUNT (25) - - -#ifdef __cplusplus -} -#endif - -#endif /* FLOW_PLATFORM_CFG_H */ - -/************************/ -/* End of File Comment */ -/************************/ - diff --git a/config/ocpoc/quadx/inc/fm_msgids.h b/config/ocpoc/quadx/inc/fm_msgids.h deleted file mode 100644 index 1af16a366..000000000 --- a/config/ocpoc/quadx/inc/fm_msgids.h +++ /dev/null @@ -1,11 +0,0 @@ -#ifndef FM_MSGIDS_H -#define FM_MSGIDS_H - - -#include "msg_ids.h" - -#endif /* FM_MSGIDS_H */ - -/************************/ -/* End of File Comment */ -/************************/ diff --git a/config/ocpoc/quadx/inc/fm_platform_cfg.h b/config/ocpoc/quadx/inc/fm_platform_cfg.h deleted file mode 100644 index 7b83a233d..000000000 --- a/config/ocpoc/quadx/inc/fm_platform_cfg.h +++ /dev/null @@ -1,424 +0,0 @@ -#ifndef FM_PLATFORM_CFG_H -#define FM_PLATFORM_CFG_H - -#include "osapi.h" - - -/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ -/* */ -/* FM platform configuration parameters - application definitions */ -/* */ -/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ - -#define FM_CHILD_TASK_FLAGS OS_ENABLE_CORE_0 - -/** \fmcfg File Manager Application Name -** -** \par Description: -** This definition must match the name used at startup by the cFE -** Executive Services when creating the FM application. Note that -** application names are also an argument to certain cFE commands. -** For example, the application name is needed to access tables -** via cFE Table Services commands. -** -** \par Limits: -** FM requires that this name be defined, but otherwise places -** no limits on the definition. Refer to CFE Executive Services -** for specific information on limits related to application names. -*/ -#define FM_APP_NAME "FM" - - -/** \fmcfg File Manager Command Pipe Name -** -** \par Description: -** This definition is the name used at startup when creating a cFE -** Software Bus command pipe for the FM application. -** -** \par Limits: -** FM requires that this name be defined, but otherwise places -** no limits on the definition. Refer to CFE Software Bus Services -** for specific information on limits related to pipe names. -*/ -#define FM_APP_PIPE_NAME "FM_CMD_PIPE" - - -/** \fmcfg File Manager Command Pipe Depth -** -** \par Description: -** This definition sets the total number of packets that may queue -** in the FM command pipe. The limit for individual message types -** in the queue is the default cFE Software Bus subscription limit -** of four. -** -** \par Limits: -** The FM application limits this value to be no less than 4 and -** no greater than 20 packets at any one time in the command pipe. -*/ -#define FM_APP_PIPE_DEPTH 10 - - -/** \sccfg Mission specific version number for FM application -** -** \par Description: -** An application version number consists of four parts: -** major version number, minor version number, revision -** number and mission specific revision number. The mission -** specific revision number is defined here and the other -** parts are defined in "fm_version.h". -** -** \par Limits: -** Must be defined as a numeric value that is greater than -** or equal to zero. -*/ -#define FM_MISSION_REV 0 - - -/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ -/* */ -/* FM platform configuration parameters - output file definitions */ -/* */ -/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ - -/** \fmcfg Default Directory List Output Filename -** -** \par Description: -** This definition is the default output filename used by the Get -** Directory List to File command handler when the output filename -** is not provided. The default filename is used whenever the -** commanded output filename is the empty string. -** -** \par Limits: -** The FM application does not place a limit on this configuration -** parameter, however the symbol must be defined and the name will -** be subject to the same verification tests as a commanded output -** filename. Set this parameter to the empty string if no default -** filename is desired. -*/ -#define FM_DIR_LIST_FILE_DEFNAME "/ram/fm_dirlist.out" - - -/** \fmcfg Maximum Directory List Output File Entries -** -** \par Description: -** This definition sets the upper limit for the number of directory -** entries that may be written to a Directory List output file. -** Directory List files are variable length, based on the number of -** directory entries actually written to the file. There may zero -** entries written to the file if the directory is empty. For most -** environments, this definition will play no role at all, as it -** will be set to a number much larger than the count of files that -** will ever exist in any directory at one time. -** -** \par Limits: -** The FM application limits this value to be no less than 100 and -** no greater than 10000. -*/ -#define FM_DIR_LIST_FILE_ENTRIES 3000 - - -/** \fmcfg Directory List Output File Header Sub-Type -** -** \par Description: -** This definition sets the cFE File Header sub-type value for FM -** Directory List data files. The value may be used to differentiate -** FM Directory List files from other data files. -** -** \par Limits: -** The FM application places no limits on this unsigned 32 bit value. -*/ -#define FM_DIR_LIST_FILE_SUBTYPE 12345 - - -/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ -/* */ -/* FM platform configuration parameters - TLM packet definitions */ -/* */ -/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ - -/** \fmcfg Directory List Telemetry Packet Entry Count -** -** \par Description: -** This definition sets the number of directory entries contained -** in the Directory List telemetry packet. The command handler will -** read directory entries until reaching the index of the start entry -** (set via command argument) and then continue to read -** directory entries and populate the telemtry packet until there are -** either no more unread directory entries or until the telemetry -** packet is full. -** -** \par Limits: -** The FM application limits this value to be no less than 10 and -** and no greater than 100. The number of directory entries in the -** telemetry packet will in large part determine the packet size. -*/ -#define FM_DIR_LIST_PKT_ENTRIES 20 - - -/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ -/* */ -/* FM platform configuration parameters - child task definitions */ -/* */ -/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ - -/** \fmcfg Child Task File I/O Control Settings -** -** \par Description: -** These definitions control the amount of file data that the FM child task -** will process before giving up the CPU to allow other tasks time to run. -** -** FM_CHILD_FILE_BLOCK_SIZE defines the size of each block of file data that -** the FM child task will read or write. This value also defines the size -** of the FM child task I/O buffer that exists in global memory. -** -** FM_CHILD_FILE_LOOP_COUNT defines the number of file data blocks that may -** be processed before the FM child task sleeps (gives up the CPU). -** -** FM_CHILD_FILE_SLEEP_MS defines the length of time (in milli-secs) before -** the FM child task wakes (re-acquires the CPU). Note that many platforms -** will limit the precision of this value. -** -** Thus the combination of the 3 values control CPU use by the FM child task. -** Using a smaller block size minimizes the amount of RAM used by the file -** I/O buffer, but at the expense of file efficiency. Adjust each of the -** values such that the combination is appropriate for the target platform. -** -** For example, if the block size is 2048 and the loop count is 16 and the -** sleep time is 20, then while processing a 1 Mbyte file there will be -** 32 sleep cycles of 20ms each, for a total task delay of 0.64 seconds. -** -** \par Limits: -** FM_CHILD_FILE_BLOCK_SIZE: The FM application limits this value to be no -** less than 256 bytes and no greater than 32KB. -** -** FM_CHILD_FILE_LOOP_COUNT: The FM application limits this value to be -** non-zero. There is no upper limit - a very large number effectively -** means that the FM child task will not surrender the CPU to other lower -** priority tasks. -** -** FM_CHILD_FILE_SLEEP_MS: The FM application limits this value to be no -** no greater than 100 ms. The value zero generally means a very short -** task delay - refer to the target platform documentation for specifics. -*/ -#define FM_CHILD_FILE_BLOCK_SIZE 2048 -#define FM_CHILD_FILE_LOOP_COUNT 16 -#define FM_CHILD_FILE_SLEEP_MS 20 - -/** \fmcfg Child file stat sleep -** -** \par Description: -** OS_stat is a CPU intensive call. FM uses the OS_stat call to query a -** file’s size, date, and mode when setting up directory listings. -** Querying a large number of files and/or files large in size when -** processing directory listing commands can cause FM to hog the CPU. To -** mitigate this, options to sleep a configurable number of milliseconds -** between calls to OS_stat for a configurable number of files -** in a directory listing is provided. A large sleep cycle will not hang the CPU -** but it may take a long time for directory listing to complete. A shorter -** sleep cycle will speed up the directory listing commands but may cause -** FM to hog the CPU. -** -** FM_CHILD_STAT_SLEEP_MS: The number of milliseconds to sleep each -** cycle. One cycle is FM_CHILD_STAT_SLEEP_FILECOUNT. -** -** FM_CHILD_STAT_SLEEP_FILECOUNT: The number of files to process (OS_stat) before -** sleeping FM_CHILD_STAT_SLEEP_MS. -** Works in tandem with FM_CHILD_STAT_SLEEP_MS to reduce CPU hogging -** while allowing slightly more customization to balance time the operator is waiting to -** get data back from a directory listing versus FM hogging the CPU with calls to OS_stat -** -** In short: -** High SLEEP_MS means less CPU hogging by FM but a longer time to process a dir listing command -** Low SLEEP_MS means more potential CPU hogging by FM but shorter time to process a dir listing command -** High FILECOUNT means more potential CPU hogging by FM but a shorter time to process a dir listing command -** Low FILECOUNT means less CPU hogging by FM but longer time to process a dir listing command -** \par Limits: -** The default is zero unless the mission needs require them to be changed. -** -*/ -#define FM_CHILD_STAT_SLEEP_MS 0 -#define FM_CHILD_STAT_SLEEP_FILECOUNT 0 - -/** \fmcfg Child Task Command Queue Entry Count -** -** \par Description: -** This definition sets the array depth for the command arguments queue in -** the FM main task to FM child task handshake interface. The value sets -** the upper limit for the number of commands that can be waiting in the -** queue to be processed by the low priority FM child task. A multi-entry -** command queue prevents the occasional slow command from being rejected -** because the child task has not yet completed the previous slow command. -** -** \par Limits: -** The FM application limits this value to be no less than 1 and no greater -** than 10. There must be at least one because this is the method for -** passing command arguments from the parent to the child task. The upper -** limit is arbitrary. -*/ -#define FM_CHILD_QUEUE_DEPTH 3 - - -/** \fmcfg Child Task Name - cFE object name -** -** \par Description: -** This definition sets the FM child task object name. The task object -** name is required during child task creation by cFE Executive Services. -** -** \par Limits: -** FM requires that this name be defined, but otherwise places -** no limits on the definition. Refer to CFE Executive Services -** for specific information on limits related to object names. -*/ -#define FM_CHILD_TASK_NAME "FM_CHILD_TASK" - - -/** \fmcfg Child Task Stack Size -** -** \par Description: -** This definition sets the size in bytes of the FM child task -** stack. It is highly recommended that this assignment be made -** by someone familiar with the system requirements for tasks -** running on the target platform. -** -** \par Limits: -** The FM application limits this value to be no less than 2048 -** and no greater than 20480. These limits are purely arbitrary -** and may need to be modified for specific platforms. -*/ -#define FM_CHILD_TASK_STACK_SIZE 20480 - - -/** \fmcfg Child Task Execution Priority -** -** \par Description: -** This definition sets the execution priority for the FM child -** task. It is highly recommended that this assignment be made -** by someone familiar with the system requirements for tasks -** running on the target platform. -** -** \par Limits: -** Value to be no less than 1 and no greater than 255. -** -** \par Priority Values: -** Note that a small value has higher priority than a large value. -** Thus, 100 is higher priority than 150. It is also necessary to -** ensure that a child task has lower priority than its parent. -** It should be clear that a child task that runs ahead of its -** parent defeats the purpose of having a child task to run in -** the background. -*/ -#define FM_CHILD_TASK_PRIORITY 208 - - -/** \fmcfg Child Task Semaphore Name - cFE object name -** -** \par Description: -** This definition sets the FM child task semaphore object name. -** The semaphore object name is required during semaphore creation -** by cFE Executive Services. -** -** \par Limits: -** FM requires that this name be defined, but otherwise places -** no limits on the definition. Refer to CFE Executive Services -** for specific information on limits related to object names. -*/ -#define FM_CHILD_SEM_NAME "FM_CHILD_SEM" - - -/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ -/* */ -/* FM platform configuration parameters - table definitions */ -/* */ -/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ - -/** \fmcfg Free Space Table Name - cFE object name -** -** \par Description: -** Table object name is required during table creation. -** -** \par Limits: -** FM requires that this name be defined, but otherwise places -** no limits on the definition. Refer to CFE Table Services -** for specific information on limits related to table names. -*/ -#define FM_TABLE_CFE_NAME "FreeSpace" - - -/** \fmcfg Free Space Table Name - filename with path -** -** \par Description: -** Table name with path is required to load table at startup. -** -** \par Limits: -** FM requires that this name be defined, but otherwise places -** no limits on the definition. If the named table does not -** exist or fails validation, the table load will fail. -*/ -#define FM_TABLE_DEF_NAME "/cf/apps/fm_freespace.tbl" - - -/** \fmcfg Free Space Table Name - filename without path -** -** \par Description: -** Table name without path defines the output name for the table -** file created during the table make process. -** -** \par Limits: -** FM requires that this name be defined, but otherwise places -** no limits on the definition. If the table name is not -** valid then the make process may fail, or the table file may -** be unloadable to the target hardware. -*/ -#define FM_TABLE_FILENAME "fm_freespace.tbl" - - -/** \fmcfg Free Space Table Description -** -** \par Description: -** Table files contain headers that include descriptive text. -** This text will be put into the file header during the table -** make process. -** -** \par Limits: -** FM requires that this name be defined, but otherwise places -** no limits on the definition. Refer to cFE Table Services -** for limits related to table descriptive text. -*/ -#define FM_TABLE_DEF_DESC "FM File System Free Space Table" - - -/** \fmcfg Number of Free Space Table Entries -** -** \par Description: -** This value defines the number of entries in both the FM file system -** free space table and the FM file system free space telemetry packet. -** Note: this value does not define the number of file systems present -** or supported by the CFE-OSAL, the value only defines the number of -** file systems for which FM may be enabled to report free space data. -** -** \par Limits: -** FM limits this value to be not less than 1 and not greater than 16. -*/ -#define FM_TABLE_ENTRY_COUNT 8 - - -/** \fmcfg Table Data Validation Error Code -** -** \par Description: -** Table data is verified during the table load process. Should -** the validation process fail, this value will be returned by -** FM to cFE Table Services and displayed in an event message. -** -** \par Limits: -** FM requires that this value be defined, but otherwise places -** no limits on the definition. Refer to cFE Table Services -** for limits related to error return values. -*/ -#define FM_TABLE_VALIDATION_ERR (0xCF000080L) - - -#endif /* FM_PLATFORM_CFG_H */ - -/************************/ -/* End of File Comment */ -/************************/ diff --git a/config/ocpoc/quadx/inc/gps_platform_cfg.h b/config/ocpoc/quadx/inc/gps_platform_cfg.h deleted file mode 100644 index 57e4df39d..000000000 --- a/config/ocpoc/quadx/inc/gps_platform_cfg.h +++ /dev/null @@ -1,124 +0,0 @@ -#ifndef GPS_PLATFORM_CFG_H -#define GPS_PLATFORM_CFG_H - -#ifdef __cplusplus -extern "C" { -#endif - -#define GPS_CUSTOM_CHILD_TASK_FLAGS OS_ENABLE_CORE_0 - -/* -** GPS Platform Configuration Parameter Definitions -*/ - -/** \brief Mission specific version number for GPS application -** -** \par Description: -** An application version number consists of four parts: -** major version number, minor version number, revision -** number and mission specific revision number. The mission -** specific revision number is defined here and the other -** parts are defined in "amc_version.h". -** -** \par Limits: -** Must be defined as a numeric value that is greater than -** or equal to zero. -*/ -#define GPS_MISSION_REV (0) - -/** \brief Pipe depth for the Scheduler pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define GPS_SCH_PIPE_DEPTH (2) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define GPS_SCH_PIPE_NAME ("GPS_SCH_PIPE") - -/** \brief The SB pend behavior type for the Scheduler pipe. -** -** \par Limits: -** One of: CFE_SB_POLL, CFE_SB_PEND_FOREVER, or the -** number of milliseconds to wait for a new message (recommended). -** Note, using CFE_SB_PEND_FOREVER may cause an unresponsive -** application if no messages arrive on this pipe. -*/ -#define GPS_SCH_PIPE_PEND_TIME (2000) - -/** \brief The number of WAKEUP messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max limited to CFE_SB_MAX_PIPE_DEPTH-1. Note the -** GPS_READ_SENSOR_MID_MAX_MSG_COUNT and GPS_SEND_HK_MID_MAX_MSG_COUNT -** must be less than GPS_SCH_PIPE_DEPTH. -*/ -#define GPS_READ_SENSOR_MID_MAX_MSG_COUNT (1) - -/** \brief The number of SEND_HK messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. Note the -** GPS_READ_SENSOR_MID_MAX_MSG_COUNT and GPS_SEND_HK_MID_MAX_MSG_COUNT -** must be less than GPS_SCH_PIPE_DEPTH. -*/ -#define GPS_SEND_HK_MID_MAX_MSG_COUNT (1) - -/** \brief Pipe depth for the command pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define GPS_CMD_PIPE_DEPTH (4) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define GPS_CMD_PIPE_NAME ("GPS_CMD_PIPE") - -/** \brief Pipe depth for the data pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define GPS_DATA_PIPE_DEPTH (4) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define GPS_DATA_PIPE_NAME ("GPS_DATA_PIPE") - -/** \brief The config table default filename -** -** \par Limits: -** The length of each string, including the NULL terminator cannot exceed -** the #OS_MAX_PATH_LEN value. -*/ -#define GPS_CONFIG_TABLE_FILENAME ("/cf/apps/gps_config.tbl") - -/** \brief The timeout value, in milliseconds, to wait for ES application startup sync. -** -** \par Limits: -** This parameter must be at least 1000 (ms). -*/ -#define GPS_STARTUP_TIMEOUT_MSEC (1000) - - -#ifdef __cplusplus -} -#endif - -#endif /* GPS_PLATFORM_CFG_H */ - -/************************/ -/* End of File Comment */ -/************************/ - diff --git a/config/ocpoc/quadx/inc/hk_msgids.h b/config/ocpoc/quadx/inc/hk_msgids.h deleted file mode 100644 index ab602d518..000000000 --- a/config/ocpoc/quadx/inc/hk_msgids.h +++ /dev/null @@ -1,11 +0,0 @@ -#ifndef HK_MSGIDS_H -#define HK_MSGIDS_H - - -#include "msg_ids.h" - -#endif /* HK_MSGIDS_H */ - -/************************/ -/* End of File Comment */ -/************************/ diff --git a/config/ocpoc/quadx/inc/hk_platform_cfg.h b/config/ocpoc/quadx/inc/hk_platform_cfg.h deleted file mode 100644 index bd46c7291..000000000 --- a/config/ocpoc/quadx/inc/hk_platform_cfg.h +++ /dev/null @@ -1,123 +0,0 @@ -#ifndef HK_PLATFORM_CFG_H -#define HK_PLATFORM_CFG_H - - - -/************************************************************************* -** Macro definitions -**************************************************************************/ - -/** -** \hkcfg Application Pipe Depth -** -** \par Description: -** Dictates the pipe depth of the hk command pipe. -** -** \par Limits -** The minimum size of this paramater is 1 -** The maximum size dictated by cFE platform configuration -** parameter CFE_SB_MAX_PIPE_DEPTH -*/ -#define HK_PIPE_DEPTH 40 - - -/** -** \hkcfg Discard Incomplete Combo Packets -** -** \par Description: -** Dictates whether combo packets that have not had all data contents -** updated since last requested will be discarded (YES = 1) or sent -** anyway (NO = 0). -** -** \par Limits -** This parameter can be set to 0 or 1 only. -*/ -#define HK_DISCARD_INCOMPLETE_COMBO 0 - - -/** -** \hkcfg Maximum Number of HK Copy Table Entries -** -** \par Description: -** Dictates the number of elements in the hk copy table. -** -** \par Limits -** The maximum size of this paramater is 8192 -*/ -#define HK_COPY_TABLE_ENTRIES 128 - - -/** -** \hkcfg Number of bytes in the HK Memory Pool -** -** \par Description: -** The HK memory pool contains the memory needed for the output packets. -** The output packets are dynamically allocated from this pool when the -** HK copy table is initially processed or loaded with new data. -** -** \par Limits -** The Housekeeping app does not place a limit on this parameter, but there is -** an overhead cost in the memory pool. The value must be larger than what is -** needed. -*/ -#define HK_NUM_BYTES_IN_MEM_POOL (6 * 1024) - - -/** -** \hkcfg Name of the HK Copy Table -** -** \par Description: -** This parameter defines the name of the HK Copy Table. -** -** \par Limits -** The Housekeeping app does not place a limit on this parameter -*/ -#define HK_COPY_TABLE_NAME "CopyTable" - - -/** -** \hkcfg Name of the HK Run-time Table -** -** \par Description: -** This parameter defines the name of the HK Run-time Table. -** -** \par Limits -** The Housekeeping app does not place a limit on this parameter -*/ -#define HK_RUNTIME_TABLE_NAME "RuntimeTable" - - -/** -** \hkcfg HK Copy Table Filename -** -** \par Description: -** The value of this constant defines the filename of the HK Copy Table -** -** \par Limits -** The length of each string, including the NULL terminator cannot exceed -** the #OS_MAX_PATH_LEN value. -*/ - -#define HK_COPY_TABLE_FILENAME "/cf/apps/hk_cpy_tbl.tbl" - -/** \hkcfg Mission specific version number for HK application -** -** \par Description: -** An application version number consists of four parts: -** major version number, minor version number, revision -** number and mission specific revision number. The mission -** specific revision number is defined here and the other -** parts are defined in "hk_version.h". -** -** \par Limits: -** Must be defined as a numeric value that is greater than -** or equal to zero. -*/ -#define HK_MISSION_REV 0 - - -#endif /* HK_PLATFORM_CFG_H */ - -/************************/ -/* End of File Comment */ -/************************/ diff --git a/config/ocpoc/quadx/inc/hmc5883_platform_cfg.h b/config/ocpoc/quadx/inc/hmc5883_platform_cfg.h deleted file mode 100644 index 0a27fcb81..000000000 --- a/config/ocpoc/quadx/inc/hmc5883_platform_cfg.h +++ /dev/null @@ -1,134 +0,0 @@ -#ifndef HMC5883_PLATFORM_CFG_H -#define HMC5883_PLATFORM_CFG_H - -#ifdef __cplusplus -extern "C" { -#endif - -/* -** HMC5883 Platform Configuration Parameter Definitions -*/ - -/** \brief Mission specific version number for HMC5883 application -** -** \par Description: -** An application version number consists of four parts: -** major version number, minor version number, revision -** number and mission specific revision number. The mission -** specific revision number is defined here and the other -** parts are defined in "amc_version.h". -** -** \par Limits: -** Must be defined as a numeric value that is greater than -** or equal to zero. -*/ -#define HMC5883_MISSION_REV (0) - -/** \brief Pipe depth for the Scheduler pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define HMC5883_SCH_PIPE_DEPTH (2) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define HMC5883_SCH_PIPE_NAME ("HMC5883_SCH_PIPE") - -/** \brief The SB pend behavior type for the Scheduler pipe. -** -** \par Limits: -** One of: CFE_SB_POLL, CFE_SB_PEND_FOREVER, or the -** number of milliseconds to wait for a new message (recommended). -** Note, using CFE_SB_PEND_FOREVER may cause an unresponsive -** application if no messages arrive on this pipe. -*/ -#define HMC5883_SCH_PIPE_PEND_TIME (2000) - -/** \brief The number of WAKEUP messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max limited to CFE_SB_MAX_PIPE_DEPTH-1. Note the -** HMC5883_WAKEUP_MID_MAX_MSG_COUNT and HMC5883_SEND_HK_MID_MAX_MSG_COUNT -** must be less than HMC5883_SCH_PIPE_DEPTH. -*/ -#define HMC5883_WAKEUP_MID_MAX_MSG_COUNT (1) - -/** \brief The number of SEND_HK messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. Note the -** HMC5883_WAKEUP_MID_MAX_MSG_COUNT and HMC5883_SEND_HK_MID_MAX_MSG_COUNT -** must be less than HMC5883_SCH_PIPE_DEPTH. -*/ -#define HMC5883_SEND_HK_MID_MAX_MSG_COUNT (1) - -/** \brief Pipe depth for the command pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define HMC5883_CMD_PIPE_DEPTH (4) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define HMC5883_CMD_PIPE_NAME ("HMC5883_CMD_PIPE") - -/** \brief Pipe depth for the data pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define HMC5883_DATA_PIPE_DEPTH (4) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define HMC5883_DATA_PIPE_NAME ("HMC5883_DATA_PIPE") - -/** \brief The config table default filename -** -** \par Limits: -** The length of each string, including the NULL terminator cannot exceed -** the #OS_MAX_PATH_LEN value. -*/ -#define HMC5883_CONFIG_TABLE_FILENAME ("/cf/apps/hmc5883_config.tbl") - -/** \brief The timeout value, in milliseconds, to wait for ES application startup sync. -** -** \par Limits: -** This parameter must be at least 1000 (ms). -*/ -#define HMC5883_STARTUP_TIMEOUT_MSEC (1000) - -/** \brief Mag divider for calculated scaling */ -#define HMC5883_MAG_DIVIDER (820.0f) - -/** \brief Mag unit for calculated scaling */ -#define HMC5883_MAG_UNIT (1.0f) - -/** \brief Precalculated mag range */ -#define HMC5883_CALC_MAG_RANGE (1.9f) - -/** \brief Precalculated mag scaling */ -#define HMC5883_CALC_MAG_SCALING (HMC5883_MAG_UNIT / HMC5883_MAG_DIVIDER) - - -#ifdef __cplusplus -} -#endif - -#endif /* HMC5883_PLATFORM_CFG_H */ - -/************************/ -/* End of File Comment */ -/************************/ - diff --git a/config/ocpoc/quadx/inc/hs_msgids.h b/config/ocpoc/quadx/inc/hs_msgids.h deleted file mode 100644 index 8db455fb4..000000000 --- a/config/ocpoc/quadx/inc/hs_msgids.h +++ /dev/null @@ -1,10 +0,0 @@ -#ifndef HS_MSGIDS_H -#define HS_MSGIDS_H - -#include "msg_ids.h" - -#endif /*HS_MSGIDS_H*/ - -/************************/ -/* End of File Comment */ -/************************/ diff --git a/config/ocpoc/quadx/inc/hs_platform_cfg.h b/config/ocpoc/quadx/inc/hs_platform_cfg.h deleted file mode 100644 index 1c18853e0..000000000 --- a/config/ocpoc/quadx/inc/hs_platform_cfg.h +++ /dev/null @@ -1,606 +0,0 @@ -#ifndef HS_PLATFORM_CFG_H -#define HS_PLATFORM_CFG_H - -/** \hscfg Application Name -** -** \par Description: -** This definition must match the name used at startup by the cFE -** Executive Services when creating the HS application. Note that -** application names are also an argument to certain cFE commands. -** For example, the application name is needed to access tables -** via cFE Table Services commands. -** -** \par Limits: -** HS requires that this name be defined, but otherwise places -** no limits on the definition. Refer to CFE Executive Services -** for specific information on limits related to application names. -*/ -#define HS_APP_NAME "HS" - -/**\hscfg Idle Task Configuration Parameters (custom) -** -** \par Description: -** These parameters are used by #CFE_ES_CreateChildTask -** Note that these values are only necessarily relevant in the -** default hs_custom.c. -** -** \par Limits: -** These limits will vary by platform and available resources. -*/ -#define HS_IDLE_TASK_NAME "HS_IDLE_TASK" -#define HS_IDLE_TASK_STACK_PTR 0 -#define HS_IDLE_TASK_STACK_SIZE 4096 -#define HS_IDLE_TASK_FLAGS 0 - -/**\hscfg Idle Task Priority (custom) -** -** \par Description: -** This parameter is used to set the priority of the Idle Task. It should -** be higher than all other user created tasks, but may need to be set lower -** than the maximum value if an OS uses its own minimum priority task. -** Note that these values are only necessarily relevant in the -** default hs_custom.c. -** -** \par Limits: -** This parameter can't be larger than 255. -*/ -#define HS_IDLE_TASK_PRIORITY 255 - -/** \hscfg Maximum reported execution counters -** -** \par Description: -** Maximum number of execution counters that can be -** specified to be reported in telemetry. -** -** \par Limits: -** This parameter can't be larger than an unsigned 32 bit -** integer (4294967295). -** -** This parameter will dictate the size of the Execution -** Counter Table (XCT): -** -** XCT Size = HS_MAX_EXEC_CNT_SLOTS * sizeof(#HS_XCTEntry_t) -** -** The total size of this table should not exceed the -** cFE size limit for a single buffered table set by the -** #CFE_TBL_MAX_SNGL_TABLE_SIZE parameter -*/ -#define HS_MAX_EXEC_CNT_SLOTS 32 - -/** \hscfg Maximum message action types -** -** \par Description: -** Maximum number of Message Action action types. -** -** \par Limits: -** This parameter can't be larger than 4 less than an -** unsigned 16 bit integer (65531). -** -** This parameter must be greater than 0. -** -** This parameter will influence the size of the Message -** Action Table (MAT): -** -** MAT Size = HS_MAX_MSG_ACT_TYPES * (HS_MAX_MSG_ACT_SIZE + 4) -** -** The total size of this table should not exceed the -** cFE size limit for a single buffered table set by the -** #CFE_TBL_MAX_SNGL_TABLE_SIZE parameter -*/ -#define HS_MAX_MSG_ACT_TYPES 8 - -/** \hscfg Maximum message action size (in bytes) -** -** \par Description: -** Size in bytes of maximum length of software bus message that -** can be sent using a Message Action action type. -** -** \par Limits: -** This parameter can't be larger than #CFE_SB_MAX_SB_MSG_SIZE -** -** This parameter can't be smaller than a packet header -** -** This parameter will influence the size of the Message -** Action Table (MAT): -** -** MAT Size = HS_MAX_MSG_ACT_TYPES * (HS_MAX_MSG_ACT_SIZE + 4) -** -** The total size of this table should not exceed the -** cFE size limit for a single buffered table set by the -** #CFE_TBL_MAX_SNGL_TABLE_SIZE parameter -*/ -#define HS_MAX_MSG_ACT_SIZE 16 - -/** \hscfg Maximum number of monitored applications -** -** \par Description: -** Maximum number of applications that can be -** monitored to assure check-ins -** -** \par Limits: -** This parameter can't be larger than an unsigned 32 bit -** integer (4294967295). -** -** This parameter must be greater than 0. -** -** This parameter will dictate the size of the Application -** Monitor Table (AMT): -** -** AMT Size = HS_MAX_MONITORED_APPS * sizeof(#HS_AMTEntry_t) -** -** The total size of this table should not exceed the -** cFE size limit for a single buffered table set by the -** #CFE_TBL_MAX_SNGL_TABLE_SIZE parameter -*/ -#define HS_MAX_MONITORED_APPS 32 - -/** \hscfg Maximum number of monitored events -** -** \par Description: -** Maximum number of events that can be -** monitored -** -** \par Limits: -** This parameter can't be larger than an unsigned 32 bit -** integer (4294967295). -** -** This parameter must be greater than 0. -** -** This parameter will dictate the size of the Event -** Monitor Table (EMT): -** -** EMT Size = HS_MAX_MONITORED_EVENTS * sizeof(#HS_EMTEntry_t) -** -** The total size of this table should not exceed the -** cFE size limit for a single buffered table set by the -** #CFE_TBL_MAX_SNGL_TABLE_SIZE parameter -*/ -#define HS_MAX_MONITORED_EVENTS 16 - -/** \hscfg Watchdog Timeout Value -** -** \par Description: -** Number of milliseconds before a watchdog timeout occurs. -** -** \par Limits: -** This parameter can't be larger than an unsigned 32 bit -** integer (4294967295). -** -** This parameter must be greater than 0. -*/ -#define HS_WATCHDOG_TIMEOUT_VALUE 10000 - -/** -** \hscfg Time to wait after performing processing (in milliseconds) -** -** \par Description: -** Dictates the length of a task delay performed prior to checking -** the Software Bus for a Wakeup Message. This ensures that HS will -** run no more often than a certain rate. If this parameter is set to 0, -** no task delay will be performed. Time is in milliseconds. -** -** \par Limits -** This parameter can't be larger than an unsigned 32 bit -** integer (4294967295). -*/ -#define HS_POST_PROCESSING_DELAY 0 - -/** -** \hscfg Wakeup Message Software Bus Timeout -** -** \par Description: -** This parameter is passed into #CFE_SB_RcvMsg as the timeout value. -** It can specify #CFE_SB_POLL, #CFE_SB_PEND_FOREVER, or a timeout -** value in milliseconds. -** -** \par Limits -** This Parameter must be #CFE_SB_POLL, #CFE_SB_PEND_FOREVER, -** or greater than 0 and less than 2^31 - 1 -** -** As a timeout, this parameter should be less than -** (#HS_WATCHDOG_TIMEOUT_VALUE * 1000) - HS runtime in ms -** otherwise HS may not be able to service the watchdog in time. -*/ -#define HS_WAKEUP_TIMEOUT 1200 - -/** \hscfg CPU aliveness output string -** -** \par Description: -** String that is output to via #OS_printf periodically if aliveness -** is enabled. -** -** \par Limits: -** None. -** -*/ -#define HS_CPU_ALIVE_STRING "." - -/** \hscfg CPU aliveness output period -** -** \par Description: -** Rate in number of HS cycles at which the HS_CPU_ALIVE_STRING -** is output via the UART. -** -** \par Limits: -** This parameter can't be larger than an unsigned 32 bit -** integer (4294967295). -** -*/ -#define HS_CPU_ALIVE_PERIOD 5 - -/** \hscfg Max Number of Processor Resets that may be performed by HS -** -** \par Description: -** Maximum number of times that the HS App will attempt a processor -** reset as the result of either an Application Monitor or -** Event Monitor Failure -** -** \par Limits: -** This parameter can't be larger than an unsigned 16 bit -** integer (65535). -** -** Although not enforced, if this parameter is greater than or -** equal to #CFE_ES_MAX_PROCESSOR_RESETS then a POWER-ON reset -** will occur before the max count is reached, resetting the remaining -** actions to the value set here. -** -*/ -#define HS_MAX_RESTART_ACTIONS 3 - -/** \hscfg Software bus command pipe depth -** -** \par Description: -** Depth of the software bus pipe HS uses for commands and HK requests. -** Used during initialization in the call to #CFE_SB_CreatePipe -** -** \par Limits: -** This parameter can't be larger than #CFE_SB_MAX_PIPE_DEPTH -** -** This parameter must be greater than 0. -*/ -#define HS_CMD_PIPE_DEPTH 12 - -/** \hscfg Software bus event pipe depth -** -** \par Description: -** Depth of the software bus pipe HS uses for event monitoring. -** This should be set to supply sufficient room for the expected event -** message load per second. Used during initialization in the call to -** #CFE_SB_CreatePipe -** -** \par Limits: -** This parameter can't be larger than #CFE_SB_MAX_PIPE_DEPTH -** -** This parameter must be greater than 0. -*/ -#define HS_EVENT_PIPE_DEPTH 32 - -/** \hscfg Software bus wakeup pipe depth -** -** \par Description: -** Depth of the software bus pipe HS uses for wakeup messages. -** Used during initialization in the call to #CFE_SB_CreatePipe -** -** \par Limits: -** This parameter can't be larger than #CFE_SB_MAX_PIPE_DEPTH -** -** This parameter must be greater than 0. -*/ -#define HS_WAKEUP_PIPE_DEPTH 1 - -/** -** \hscfg Time to wait before a processor reset (in milliseconds) -** -** \par Description: -** Dictates the length of the task delay (milliseconds) performed prior -** to calling #CFE_ES_ResetCFE to allow for any event message to go out. -** -** \par Limits -** This parameter can't be larger than an unsigned 32 bit -** integer (4294967295). -*/ -#define HS_RESET_TASK_DELAY 50 - -/** -** \hscfg Time to wait for all apps to be started (in milliseconds) -** -** \par Description: -** Dictates the timeout for the #CFE_ES_WaitForStartupSync call that -** HS uses to wait for all of the Applications specified in the startup -** script to finish initialization. HS will wait this amount of time -** before assuming all startup script applications have been started and -** will then begin nominal processing. -** -** \par Limits -** This parameter can't be larger than an unsigned 32 bit -** integer (4294967295). -** -** This should be greater than or equal to the Startup Sync timeout for -** any application in the Application Monitor Table. -*/ -#define HS_STARTUP_SYNC_TIMEOUT 65000 - -/** \hscfg Default State of the Application Monitor -** -** \par Description: -** State the Application Monitor is set to when the HS -** application starts. -** -** \par Limits: -** Must be HS_STATE_ENABLED or HS_STATE_DISABLED -*/ -#define HS_APPMON_DEFAULT_STATE HS_STATE_ENABLED - -/** \hscfg Default State of the Event Monitor -** -** \par Description: -** State the Event Monitor is set to when the HS -** application starts. -** -** \par Limits: -** Must be HS_STATE_ENABLED or HS_STATE_DISABLED -*/ -#define HS_EVENTMON_DEFAULT_STATE HS_STATE_ENABLED - -/** \hscfg Default State of the Aliveness Indicator -** -** \par Description: -** State the Aliveness Indicator is set to when the HS application -** starts. -** -** \par Limits: -** Must be HS_STATE_ENABLED or HS_STATE_DISABLED -*/ -#define HS_ALIVENESS_DEFAULT_STATE HS_STATE_ENABLED - -/** \hscfg Default State of the CPU Hogging Indicator -** -** \par Description: -** State the CPU Hogging Event Message is set to when the HS application -** starts. -** -** \par Limits: -** Must be HS_STATE_ENABLED or HS_STATE_DISABLED -*/ -#define HS_CPUHOG_DEFAULT_STATE HS_STATE_ENABLED - -/** \hscfg Application Monitor Table (AMT) filename -** -** \par Description: -** Default file to load the Applications Monitor Table from -** during a power-on reset sequence -** -** \par Limits: -** This string shouldn't be longer than #OS_MAX_PATH_LEN for the -** target platform in question -*/ -#define HS_AMT_FILENAME "/cf/apps/hs_amt.tbl" - -/** \hscfg Event Monitor Table (EMT) filename -** -** \par Description: -** Default file to load the Event Monitor Table from -** during a power-on reset sequence -** -** \par Limits: -** This string shouldn't be longer than #OS_MAX_PATH_LEN for the -** target platform in question -*/ -#define HS_EMT_FILENAME "/cf/apps/hs_emt.tbl" - -/** \hscfg Execution Counter Table (XCT) filename -** -** \par Description: -** Default file to load the Execution Counters Table from -** during a power-on reset sequence -** -** \par Limits: -** This string shouldn't be longer than #OS_MAX_PATH_LEN for the -** target platform in question -*/ -#define HS_XCT_FILENAME "/cf/apps/hs_xct.tbl" - -/** \hscfg Message Actions Table (MAT) filename -** -** \par Description: -** Default file to load the Message Actions Table from -** during a power-on reset sequence -** -** \par Limits: -** This string shouldn't be longer than #OS_MAX_PATH_LEN for the -** target platform in question -*/ -#define HS_MAT_FILENAME "/cf/apps/hs_mat.tbl" - -/** \hscfg CPU Utilization Calls per Mark (custom) -** -** \par Description: -** Number of times the Mark function must be called before it actually -** marks the time. This influences the interval size. The function -** calling the Mark function may not run at the same rate as the HS cycle -** (or HS may not want to monitor utilization every cycle) so this the -** interval to be at least as long as an HS cycle. -** Note that these values are only necessarily relevant in the -** default hs_custom.c. -** -** \par Limits: -** This parameter can't be larger than an unsigned 32 bit -** integer (4294967295). -*/ -#define HS_UTIL_CALLS_PER_MARK 1 - -/** \hscfg CPU Utilization Cycles per Interval (custom) -** -** \par Description: -** Number of HS Cycles it takes to complete a CPU Utilization Interval. -** HS will monitor the utilization after this number of HS wakeup cycles. -** Note that these values are only necessarily relevant in the -** default hs_custom.c. -** -** \par Limits: -** This parameter can't be larger than an unsigned 32 bit -** integer (4294967295). -*/ -#define HS_UTIL_CYCLES_PER_INTERVAL 1 - -/** \hscfg CPU Utilization Total Utils Per Interval -** -** \par Description: -** Number of Utils (counts) equal to full utilization. This allows for higher -** resolution than percentages, and non decimal based values. -** -** \par Limits: -** This parameter can't be larger than an unsigned 32 bit -** integer (4294967295). -*/ -#define HS_UTIL_PER_INTERVAL_TOTAL 10000 - -/** \hscfg CPU Utilization Hogging Utils Per Interval -** -** \par Description: -** Number of Utils (counts) equal to utilization which is considered hogging -** during one interval. A greater number of counts is also considered hogging. -** -** \par Limits: -** This parameter can't be larger than #HS_UTIL_PER_INTERVAL_TOTAL. -*/ -#define HS_UTIL_PER_INTERVAL_HOGGING 9900 - -/** \hscfg CPU Utilization Conversion Factor Multiplication 1 (custom) -** -** \par Description: -** First multiplication conversion factor. Number of idle ticks is multiplied -** this value first when converting to utils. -** Note that these values are only necessarily relevant in the -** default hs_custom.c. -** -** \par Limits: -** There may be processor dependent limits on value. Note that all math -** is done using "uint32" values; it is important that the number -** of loop iterations in HS_IDLE, times this value, not overflow. -** -** The result of the conversion must be a 32 bit signed integer -** (between -2147483648 and 2147483647). -*/ -#define HS_UTIL_CONV_MULT1 1 - -/** \hscfg CPU Utilization Conversion Factor Division (custom) -** -** \par Description: -** Division conversion factor. Number of idle ticks is divided by this value -** after it has been multiplied by #HS_UTIL_CONV_MULT1. -** Note that these values are only necessarily relevant in the -** default hs_custom.c. -** -** \par Limits: -** There may be processor dependent limits on value. -** -** The result of the conversion must be a 32 bit signed integer -** (between -2147483648 and 2147483647). -*/ -#define HS_UTIL_CONV_DIV 1 - -/** \hscfg CPU Utilization Conversion Factor Multiplication 2 (custom) -** -** \par Description: -** Second multiplication conversion factor. Number of idle ticks is multiplied -** this value after being divided by #HS_UTIL_CONV_DIV after being multiplied by -** #HS_UTIL_CONV_MULT1 when converting to utils. -** Note that these values are only necessarily relevant in the -** default hs_custom.c. -** -** \par Limits: -** There may be processor dependent limits on value. -** -** The result of the conversion must be a 32 bit signed integer -** (between -2147483648 and 2147483647). -*/ -#define HS_UTIL_CONV_MULT2 1 - -/** \hscfg CPU Utilization Hogging Timeout -** -** \par Description: -** Number of intervals for which the hogging limit must be exceeded before hogging -** is reported. -** -** \par Limits: -** This parameter can't be larger than an unsigned 32 bit -** integer (4294967295). -*/ -#define HS_UTIL_HOGGING_TIMEOUT 5 - -/** \hscfg CPU Peak Utilization Number of Intervals -** -** \par Description: -** Number of intervals over which the peak utilization is determined. -** -** \par Limits: -** This parameter can't be larger than an unsigned 32 bit -** integer (4294967295). -** -** This parameter controls the size of the array which stores -** previously measured utilization values. -*/ -#define HS_UTIL_PEAK_NUM_INTERVAL 64 - -/** \hscfg CPU Average Utilization Number of Intervals -** -** \par Description: -** Number of intervals over which the average utilization is computed. -** -** \par Limits: -** This parameter can't be larger than #HS_UTIL_PEAK_NUM_INTERVAL . -*/ -#define HS_UTIL_AVERAGE_NUM_INTERVAL 4 - -/** \hscfg CPU Utilization Diagnostics Mask (custom) -** -** \par Description: -** Count mask for CPU Utilization Calibration. Time will be marked -** when (Counts & Mask) == Mask -** Note that these values are only necessarily relevant in the -** default hs_custom.c. -** -** \par Limits: -** This parameter can't be larger than an unsigned 32 bit -** integer (4294967295). -*/ -#define HS_UTIL_DIAG_MASK 0xFFFFFFFF - -/** \hscfg CPU Utilization Diagnostics Array Configuration (custom) -** -** \par Description: -** Time will be marked into an array of subseconds. The independant parameter -** controls the exponent to which 2 is raised to determine the array size. As -** such, large values will require significant memory usage. -** Note that these values are only necessarily relevant in the -** default hs_custom.c. -** -** \par Limits: -** This parameter must be less than 32 and may not be negative. -*/ -#define HS_UTIL_TIME_DIAG_ARRAY_POWER 4 -#define HS_UTIL_TIME_DIAG_ARRAY_LENGTH (1<<(HS_UTIL_TIME_DIAG_ARRAY_POWER)) -#define HS_UTIL_TIME_DIAG_ARRAY_MASK (HS_UTIL_TIME_DIAG_ARRAY_LENGTH - 1) - - -/** \hscfg Mission specific version number for HS application -** -** \par Description: -** An application version number consists of four parts: -** major version number, minor version number, revision -** number and mission specific revision number. The mission -** specific revision number is defined here and the other -** parts are defined in "hs_version.h". -** -** \par Limits: -** Must be defined as a numeric value that is greater than -** or equal to zero. -*/ -#define HS_MISSION_REV 0 - -#endif /*HS_PLATFORM_CFG_H*/ - -/************************/ -/* End of File Comment */ -/************************/ diff --git a/config/ocpoc/quadx/inc/lc_msgids.h b/config/ocpoc/quadx/inc/lc_msgids.h deleted file mode 100644 index 38f2e04f9..000000000 --- a/config/ocpoc/quadx/inc/lc_msgids.h +++ /dev/null @@ -1,13 +0,0 @@ -#ifndef LC_MSGIDS_H -#define LC_MSGIDS_H - -#include "msg_ids.h" - -#define LC_ALL_ACTIONPOINTS 0xFFFF -#define LC_ALL_WATCHPOINTS 0xFFFF - -#endif /*LC_MSGIDS_H*/ - -/************************/ -/* End of File Comment */ -/************************/ diff --git a/config/ocpoc/quadx/inc/lc_platform_cfg.h b/config/ocpoc/quadx/inc/lc_platform_cfg.h deleted file mode 100644 index 3255f78b7..000000000 --- a/config/ocpoc/quadx/inc/lc_platform_cfg.h +++ /dev/null @@ -1,224 +0,0 @@ -#ifndef LC_PLATFORM_CFG_H -#define LC_PLATFORM_CFG_H - -/** \lccfg Application Name -** -** \par Description: -** This definition must match the name used at startup by the cFE -** Executive Services when creating the LC application. Note that -** application names are also an argument to certain cFE commands. -** For example, the application name is needed to access tables -** via cFE Table Services commands. -** -** \par Limits: -** LC requires that this name be defined, but otherwise places -** no limits on the definition. Refer to CFE Executive Services -** for specific information on limits related to application names. -*/ -#define LC_APP_NAME "LC" - - -/** \lccfg Command Pipe Depth -** -** \par Description: -** Maximum number of messages that will be allowed in the -** LC command pipe at one time. Used during initialization -** in the call to #CFE_SB_CreatePipe -** -** \par Limits: -** This parameter can't be larger than an unsigned 16 bit -** integer (65535). -*/ -#define LC_PIPE_DEPTH 12 - -/** \lccfg Maximum number of watchpoints -** -** \par Description: -** Maximum number of watchpoints that can be defined in the -** Watchpoint Definition Table (WDT) -** -** \par Limits: -** This parameter can't be larger than 65520 (0xFFF0) because -** higher values are reserved for use as Reversh Polish -** operators. -** -** This parameter will dictate the size of the Watchpoint -** Definition Table: -** -** WDT Size = LC_MAX_WATCHPOINTS * sizeof(#LC_WDTEntry_t) -** -** The total size of this table should not exceed the -** cFE size limit for a single buffered table set by the -** #CFE_TBL_MAX_SNGL_TABLE_SIZE parameter -*/ -#define LC_MAX_WATCHPOINTS 176 - -/** \lccfg Maximum number of actionpoints -** -** \par Description: -** Maximum number of actionpoints that can be defined in the -** Actionpoint Definition Table (ADT) -** -** \par Limits: -** This parameter can't be larger than an unsigned 16 bit -** integer (65535). -** -** This parameter will dictate the size of the Actionpoint -** Definition Table: -** -** ADT Size = LC_MAX_ACTIONPOINTS * sizeof(#LC_ADTEntry_t) -** -** The total size of this table should not exceed the -** cFE size limit for a single buffered table set by the -** #CFE_TBL_MAX_SNGL_TABLE_SIZE parameter -*/ -#define LC_MAX_ACTIONPOINTS 176 - -/** \lccfg LC state after power-on reset -** -** \par Description: -** What operating state LC should initialize to after a power-on -** reset. -** -** \par Limits: -** This parameter must be one of the following: -** #LC_STATE_ACTIVE -** #LC_STATE_PASSIVE -** #LC_STATE_DISABLED -*/ -#define LC_STATE_POWER_ON_RESET LC_STATE_DISABLED - -/** \lccfg Save data to CDS compiler switch -** -** \par Description: -** Compile switch that tells LC that we should save data -** over a processor or application reset by using the -** Critical Data Store (CDS). -** Comment out or \#undef to force LC to do a default (power-on) -** initialization sequence on all restarts (this is the -** default case). -** -** \par Limits: -** n/a -*/ -/* #define LC_SAVE_TO_CDS */ - -/** \lccfg LC state when CDS is restored -** -** \par Description: -** What operating state LC should initialize to after successfully -** restoring information from the CDS after a processor or -** application reset. This is only used when #LC_SAVE_TO_CDS -** is set to TRUE, and provides a way to override any state LC -** may have been operating in prior to the reset occurring. -** -** \par Limits: -** This parameter must be one of the following: -** #LC_STATE_ACTIVE -** #LC_STATE_PASSIVE -** #LC_STATE_DISABLED -** #LC_STATE_FROM_CDS -*/ -#define LC_STATE_WHEN_CDS_RESTORED LC_STATE_FROM_CDS - -/** \lccfg Watchpoint Definition Table (WDT) filename -** -** \par Description: -** Default file to load the watchpoint definition table from -** during a power-on reset sequence -** -** \par Limits: -** This string shouldn't be longer than #OS_MAX_PATH_LEN for the -** target platform in question -*/ -#define LC_WDT_FILENAME "/cf/apps/lc_def_wdt.tbl" - -/** \lccfg Actionpoint Definition Table (ADT) filename -** -** \par Description: -** Default file to load the actionpoint definition table from -** during a power-on reset sequence -** -** \par Limits: -** This string shouldn't be longer than #OS_MAX_PATH_LEN for the -** target platform in question -*/ -#define LC_ADT_FILENAME "/cf/apps/lc_def_adt.tbl" - -/** \lccfg Maximum reverse polish (RPN) equation size -** -** \par Description: -** Maximum combined number of operators and operands that may -** exist in an actionpoint definition's reverse polish equation -** -** \par Limits: -** The LC app does not place a limit on this parameter. -** However, raising this value will increase the size of the -** Actionpoint Definition Table (ADT) -*/ -#define LC_MAX_RPN_EQU_SIZE 20 - -/** \lccfg Maximum actionpoint event text string size -** -** \par Description: -** Maximum length of the event message string that can specified -** in an actionpoint definition (including NUL terminator) -** -** \par Limits: -** LC appends the trailer text #LC_AP_EVENT_TAIL_STR to this -** string when reporting actionpoint failures. The size of this -** string is #LC_AP_EVENT_TAIL_LEN -** -** The total value of LC_MAX_ACTION_TEXT + #LC_AP_EVENT_TAIL_LEN -** should be less than #CFE_EVS_MAX_MESSAGE_LENGTH to avoid -** event message truncation -** -** Raising this value will also increase the size of the -** Actionpoint Definition Table (ADT) -*/ -#define LC_MAX_ACTION_TEXT 32 - -/** \lccfg Maximum valid ADT RTS ID -** -** \par Description: -** The maximum RTS ID that LC will allow during table -** validation in a Actionpoint Definition Table (ADT) entry -** -** \par Limits: -** This parameter can't be larger than an unsigned 16 bit -** integer (65535). -*/ -#define LC_MAX_VALID_ADT_RTSID 0xFFF0 - -/** \lccfg Floating Point Compare Tolerance -** -** \par Description: -** Difference between 2 floats that will still compare as - equal. The default value of (1.0e-25) was taken from - the GNC file mathconstants.h -** -** \par Limits: -** The LC app does not place a limit on this parameter. -*/ -#define LC_FLOAT_TOLERANCE (1.0e-25) - -/** \mmcfg Mission specific version number for LC application -** -** \par Description: -** An application version number consists of four parts: -** major version number, minor version number, revision -** number and mission specific revision number. The mission -** specific revision number is defined here and the other -** parts are defined in "lc_version.h". -** -** \par Limits: -** Must be defined as a numeric value that is greater than -** or equal to zero. -*/ -#define LC_MISSION_REV 0 - -#endif /*LC_PLATFORM_CFG_H*/ - -/************************/ -/* End of File Comment */ -/************************/ diff --git a/config/ocpoc/quadx/inc/ld_platform_cfg.h b/config/ocpoc/quadx/inc/ld_platform_cfg.h deleted file mode 100644 index 210a0bcf0..000000000 --- a/config/ocpoc/quadx/inc/ld_platform_cfg.h +++ /dev/null @@ -1,122 +0,0 @@ -#ifndef LD_PLATFORM_CFG_H -#define LD_PLATFORM_CFG_H - -#ifdef __cplusplus -extern "C" { -#endif - -/* -** LD Platform Configuration Parameter Definitions -*/ - -/** \brief Mission specific version number for LD application -** -** \par Description: -** An application version number consists of four parts: -** major version number, minor version number, revision -** number and mission specific revision number. The mission -** specific revision number is defined here and the other -** parts are defined in "amc_version.h". -** -** \par Limits: -** Must be defined as a numeric value that is greater than -** or equal to zero. -*/ -#define LD_MISSION_REV (0) - -/** \brief Pipe depth for the Scheduler pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define LD_SCH_PIPE_DEPTH (15) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define LD_SCH_PIPE_NAME ("LD_SCH_PIPE") - -/** \brief The SB pend behavior type for the Scheduler pipe. -** -** \par Limits: -** One of: CFE_SB_POLL, CFE_SB_PEND_FOREVER, or the -** number of milliseconds to wait for a new message (recommended). -** Note, using CFE_SB_PEND_FOREVER may cause an unresponsive -** application if no messages arrive on this pipe. -*/ -#define LD_SCH_PIPE_PEND_TIME (2000) - -/** \brief The number of WAKEUP messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max limited to CFE_SB_MAX_PIPE_DEPTH-1. Note the -** LD_WAKEUP_MID_MAX_MSG_COUNT and LD_SEND_HK_MID_MAX_MSG_COUNT -** must be less than LD_SCH_PIPE_DEPTH. -*/ -#define LD_WAKEUP_MID_MAX_MSG_COUNT (1) - -/** \brief The number of SEND_HK messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. Note the -** LD_WAKEUP_MID_MAX_MSG_COUNT and LD_SEND_HK_MID_MAX_MSG_COUNT -** must be less than LD_SCH_PIPE_DEPTH. -*/ -#define LD_SEND_HK_MID_MAX_MSG_COUNT (1) - -/** \brief Pipe depth for the command pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define LD_CMD_PIPE_DEPTH (4) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define LD_CMD_PIPE_NAME ("LD_CMD_PIPE") - -/** \brief Pipe depth for the data pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define LD_DATA_PIPE_DEPTH (4) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define LD_DATA_PIPE_NAME ("LD_DATA_PIPE") - -/** \brief The config table default filename -** -** \par Limits: -** The length of each string, including the NULL terminator cannot exceed -** the #OS_MAX_PATH_LEN value. -*/ -#define LD_CONFIG_TABLE_FILENAME ("/cf/apps/ld_config.tbl") - -/** \brief The timeout value, in milliseconds, to wait for ES application startup sync. -** -** \par Limits: -** This parameter must be at least 1000 (ms). -*/ -#define LD_STARTUP_TIMEOUT_MSEC (1000) - - -#ifdef __cplusplus -} -#endif - -#endif /* LD_PLATFORM_CFG_H */ - -/************************/ -/* End of File Comment */ -/************************/ - diff --git a/config/ocpoc/quadx/inc/lgc_platform_cfg.h b/config/ocpoc/quadx/inc/lgc_platform_cfg.h deleted file mode 100644 index ee9701169..000000000 --- a/config/ocpoc/quadx/inc/lgc_platform_cfg.h +++ /dev/null @@ -1,130 +0,0 @@ -#ifndef LGC_PLATFORM_CFG_H -#define LGC_PLATFORM_CFG_H - -#ifdef __cplusplus -extern "C" { -#endif - -/* -** LGC Platform Configuration Parameter Definitions -*/ - -/** \brief Mission specific version number for LGC application -** -** \par Description: -** An application version number consists of four parts: -** major version number, minor version number, revision -** number and mission specific revision number. The mission -** specific revision number is defined here and the other -** parts are defined in "amc_version.h". -** -** \par Limits: -** Must be defined as a numeric value that is greater than -** or equal to zero. -*/ -#define LGC_MISSION_REV (0) - -/** \brief Pipe depth for the Scheduler pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define LGC_SCH_PIPE_DEPTH (2) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define LGC_SCH_PIPE_NAME ("LGC_SCH_PIPE") - -/** \brief The SB pend behavior type for the Scheduler pipe. -** -** \par Limits: -** One of: CFE_SB_POLL, CFE_SB_PEND_FOREVER, or the -** number of milliseconds to wait for a new message (recommended). -** Note, using CFE_SB_PEND_FOREVER may cause an unresponsive -** application if no messages arrive on this pipe. -*/ -#define LGC_SCH_PIPE_PEND_TIME (2000) - -/** \brief The number of WAKEUP messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max limited to CFE_SB_MAX_PIPE_DEPTH-1. Note the -** LGC_WAKEUP_MID_MAX_MSG_COUNT and LGC_SEND_HK_MID_MAX_MSG_COUNT -** must be less than LGC_SCH_PIPE_DEPTH. -*/ -#define LGC_WAKEUP_MID_MAX_MSG_COUNT (1) - -/** \brief The number of SEND_HK messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. Note the -** LGC_WAKEUP_MID_MAX_MSG_COUNT and LGC_SEND_HK_MID_MAX_MSG_COUNT -** must be less than LGC_SCH_PIPE_DEPTH. -*/ -#define LGC_SEND_HK_MID_MAX_MSG_COUNT (1) - -/** \brief Pipe depth for the command pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define LGC_CMD_PIPE_DEPTH (4) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define LGC_CMD_PIPE_NAME ("LGC_CMD_PIPE") - -/** \brief Pipe depth for the data pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define LGC_DATA_PIPE_DEPTH (4) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define LGC_DATA_PIPE_NAME ("LGC_DATA_PIPE") - -/** \brief The config table default filename -** -** \par Limits: -** The length of each string, including the NULL terminator cannot exceed -** the #OS_MAX_PATH_LEN value. -*/ -#define LGC_CONFIG_TABLE_FILENAME ("/cf/apps/lgc_config.tbl") - -/** \brief The timeout value, in milliseconds, to wait for ES application startup sync. -** -** \par Limits: -** This parameter must be at least 1000 (ms). -*/ -#define LGC_STARTUP_TIMEOUT_MSEC (1000) - - -/** \brief The number of landing gear actuators. -** -** \par Limits: -** None. -*/ -#define LGC_MAX_GEAR_OUTPUTS (1) - - -#ifdef __cplusplus -} -#endif - -#endif /* LGC_PLATFORM_CFG_H */ - -/************************/ -/* End of File Comment */ -/************************/ - diff --git a/config/ocpoc/quadx/inc/mac_platform_cfg.h b/config/ocpoc/quadx/inc/mac_platform_cfg.h deleted file mode 100644 index 58a381b18..000000000 --- a/config/ocpoc/quadx/inc/mac_platform_cfg.h +++ /dev/null @@ -1,113 +0,0 @@ -#ifndef MAC_PLATFORM_CFG_H -#define MAC_PLATFORM_CFG_H - -#ifdef __cplusplus -extern "C" { -#endif - -/* -** mac Platform Configuration Parameter Definitions -*/ - -/** \brief Mission specific version number for MAC application -** -** \par Description: -** An application version number consists of four parts: -** major version number, minor version number, revision -** number and mission specific revision number. The mission -** specific revision number is defined here and the other -** parts are defined in "mac_version.h". -** -** \par Limits: -** Must be defined as a numeric value that is greater than -** or equal to zero. -*/ -#define MAC_MISSION_REV (0) - -/** \brief Pipe depth for the Scheduler pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define MAC_SCH_PIPE_DEPTH (15) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define MAC_SCH_PIPE_NAME ("MAC_SCH_PIPE") - -/** \brief The SB pend behavior type for the Scheduler pipe. -** -** \par Limits: -** One of: CFE_SB_POLL, CFE_SB_PEND_FOREVER, or the -** number of milliseconds to wait for a new message (recommended). -** Note, using CFE_SB_PEND_FOREVER may cause an unresponsive -** application if no messages arrive on this pipe. -*/ -#define MAC_SCH_PIPE_PEND_TIME (2000) - -/** \brief The number of WAKEUP messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max limited to CFE_SB_MAX_PIPE_DEPTH-1. Note the -** MAC_SCH_PIPE_WAKEUP_RESERVED and MAC_SCH_PIPE_SEND_HK_RESERVED -** must be less than MAC_SCH_PIPE_DEPTH. -*/ -#define MAC_SCH_PIPE_WAKEUP_RESERVED (1) - -/** \brief The number of SEND_HK messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. Note the -** MAC_SCH_PIPE_WAKEUP_RESERVED and MAC_SCH_PIPE_SEND_HK_RESERVED -** must be less than MAC_SCH_PIPE_DEPTH. -*/ -#define MAC_SCH_PIPE_SEND_HK_RESERVED (1) - -/** \brief Pipe depth for the command pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define MAC_CMD_PIPE_DEPTH (15) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define MAC_CMD_PIPE_NAME ("MAC_CMD_PIPE") - -/** \brief The config table default filename -** -** \par Limits: -** The length of each string, including the NULL terminator cannot exceed -** the #OS_MAX_PATH_LEN value. -*/ -#define MAC_PARAM_TABLE_FILENAME ("/cf/apps/mac_param.tbl") - -/** \brief The timeout value, in milliseconds, to wait for ES application startup sync. -** -** \par Limits: -** This parameter must be at least 1000 (ms). -*/ -#define MAC_STARTUP_TIMEOUT_MSEC (1000) - -/* TODO: Add Doxygen markup. */ -#define MAC_CUSTOM_DEV_PATH "/tmp/ttyS0" - -#define MAC_MAX_MOTOR_OUTPUTS (16) - - -#ifdef __cplusplus -} -#endif - -#endif /* MAC_PLATFORM_CFG_H */ - -/************************/ -/* End of File Comment */ -/************************/ - diff --git a/config/ocpoc/quadx/inc/mavlink_platform_cfg.h b/config/ocpoc/quadx/inc/mavlink_platform_cfg.h deleted file mode 100644 index 915ab2abf..000000000 --- a/config/ocpoc/quadx/inc/mavlink_platform_cfg.h +++ /dev/null @@ -1,150 +0,0 @@ -#ifndef MAVLINK_PLATFORM_CFG_H -#define MAVLINK_PLATFORM_CFG_H - -#ifdef __cplusplus -extern "C" { -#endif - -/* -** ci Platform Configuration Parameter Definitions -*/ - -/** \brief Mission specific version number for MAVLINK application -** -** \par Description: -** An application version number consists of four parts: -** major version number, minor version number, revision -** number and mission specific revision number. The mission -** specific revision number is defined here and the other -** parts are defined in "ci_version.h". -** -** \par Limits: -** Must be defined as a numeric value that is greater than -** or equal to zero. -*/ -#define MAVLINK_MISSION_REV (0) - -/** \brief Pipe depth for the Scheduler pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define MAVLINK_SCH_PIPE_DEPTH (2) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define MAVLINK_SCH_PIPE_NAME ("MAVLINK_SCH_PIPE") - -/** \brief The SB pend behavior type for the Scheduler pipe. -** -** \par Limits: -** One of: CFE_SB_POLL, CFE_SB_PEND_FOREVER, or the -** number of milliseconds to wait for a new message (recommended). -** Note, using CFE_SB_PEND_FOREVER may cause an unresponsive -** application if no messages arrive on this pipe. -*/ -#define MAVLINK_SCH_PIPE_PEND_TIME (2000) - -/** \brief The number of WAKEUP messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max limited to CFE_SB_MAX_PIPE_DEPTH-1. Note the -** MAVLINK_SCH_PIPE_WAKEUP_RESERVED and MAVLINK_SCH_PIPE_SEND_HK_RESERVED -** must be less than MAVLINK_SCH_PIPE_DEPTH. -*/ -#define MAVLINK_SCH_PIPE_WAKEUP_RESERVED (1) - -/** \brief The number of SEND_HK messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. Note the -** MAVLINK_SCH_PIPE_WAKEUP_RESERVED and MAVLINK_SCH_PIPE_SEND_HK_RESERVED -** must be less than MAVLINK_SCH_PIPE_DEPTH. -*/ -#define MAVLINK_SCH_PIPE_SEND_HK_RESERVED (1) - -/** \brief The number of PROCESS_TIMEOUT messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define MAVLINK_SCH_PIPE_PROC_TIMEOUT_RESERVED (1) - -/** \brief Pipe depth for the command pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define MAVLINK_CMD_PIPE_DEPTH (CFE_SB_MAX_PIPE_DEPTH) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define MAVLINK_CMD_PIPE_NAME ("MAVLINK_CMD_PIPE") - -/** \brief Pipe depth for the data pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define MAVLINK_DATA_PIPE_DEPTH (4) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define MAVLINK_DATA_PIPE_NAME ("MAVLINK_DATA_PIPE") - -/** \brief The config table default filename -** -** \par Limits: -** The length of each string, including the NULL terminator cannot exceed -** the #OS_MAX_PATH_LEN value. -*/ -#define MAVLINK_ACTION_MAP_TABLE_FILENAME ("/cf/apps/mavlink_action.tbl") - -/** \brief The timeout table default filename -** -** \par Limits: -** The length of each string, including the NULL terminator cannot exceed -** the #OS_MAX_PATH_LEN value. -*/ -#define MAVLINK_TIMEOUT_TABLE_FILENAME ("/cf/apps/mavlink_timeout.tbl") - -/** \brief The timeout value, in milliseconds, to wait for ES application startup sync. -** -** \par Limits: -** This parameter must be at least 1000 (ms). -*/ -#define MAVLINK_STARTUP_TIMEOUT_MSEC (5000) - - -#define MAVLINK_MSG_PARAM_NAME_LEN (64) - -#define MAVLINK_SYSTEM_ID (1) -#define MAVLINK_COMPONENT_ID (1) -#define MAVLINK_GCS_IP ("10.10.0.13") -#define MAVLINK_GCS_PORT (14550) -#define MAVLINK_PASSTHRU_IP_SRC ("127.0.0.1") -#define MAVLINK_PASSTHRU_INGEST_PORT (14550) - -#define MAVLINK_ACTION_MAP_ENTRIES (10) -#define MAVLINK_HEARTBEAT_WAIT_CYCLES (5) - - -#ifdef __cplusplus -} -#endif - -#endif /* MAVLINK_PLATFORM_CFG_H */ - -/************************/ -/* End of File Comment */ -/************************/ - diff --git a/config/ocpoc/quadx/inc/md_msgids.h b/config/ocpoc/quadx/inc/md_msgids.h deleted file mode 100644 index a7d484c5d..000000000 --- a/config/ocpoc/quadx/inc/md_msgids.h +++ /dev/null @@ -1,10 +0,0 @@ -#ifndef MD_MSGIDS_H -#define MD_MSGIDS_H - -#include "msg_ids.h" - -#endif /*MD_MSGIDS_H*/ - -/************************/ -/* End of File Comment */ -/************************/ diff --git a/config/ocpoc/quadx/inc/md_platform_cfg.h b/config/ocpoc/quadx/inc/md_platform_cfg.h deleted file mode 100644 index b84ababdc..000000000 --- a/config/ocpoc/quadx/inc/md_platform_cfg.h +++ /dev/null @@ -1,99 +0,0 @@ -#ifndef MD_PLATFORM_CFG_H -#define MD_PLATFORM_CFG_H - - -/************************************************************************* -** Macro Definitions -*************************************************************************/ - -/** -** \name MD Command Pipe Parameters */ -/** \{ */ -#define MD_PIPE_NAME "MD_CMD_PIPE" -#define MD_PIPE_DEPTH 50 -/** \} */ - - -/** \mdcfg Memory Dwell Base Filename -** -** \par Description: -** Default base name and location for Memory Dwell filenames -** AppInit will append 01,02,03, up to number of tables. -** -** \par Limits: -** This string shouldn't be longer than #OS_MAX_PATH_LEN for the -** target platform in question -*/ -#define MD_TBL_FILENAME_FORMAT "/cf/apps/md_dw\%02d.tbl" - -/** -** \mdcfg Number of memory dwell tables. -** -** \par Limits -** Acceptable values for this parameter are 1 to 16. -*/ -#define MD_NUM_DWELL_TABLES 4 - -/** -** \mdcfg Maximum number of dwell specifications (address/delay/length) -** in a Dwell Table. -** -** \par Limits -** The maximum value for this parameter is limited by its effect -** on the MD_DwellTableLoad_t and associated data points, limiting -** it to 65535 points. -*/ -#define MD_DWELL_TABLE_SIZE 25 - -/** -** \mdcfg Option of whether 32 bit integers must be aligned to 32 bit -** boundaries. 1 indicates 'yes' (32-bit boundary alignment enforced), -** 0 indicates 'no' (16-bit boundary alignment enforced). -** -** \par Limits -** Value must be 0 or 1. -*/ -#define MD_ENFORCE_DWORD_ALIGN 1 - -/** -** \mdcfg Option of whether a signature field will be reserved in -** dwell packets. 1 indicates 'yes', 0 indicates 'no'. -** -** \par Limits -** Value must be 0 or 1. -*/ -#define MD_SIGNATURE_OPTION 1 - -/** -** \mdcfg Number of characters used in the Signature Field -** -** \par Limits -** Signature field length needs to be a multiple of 4 so that -** dwell packet is a multiple of 4 bytes and no compiler padding -** will occur. Note that the final character of the signature string -** must be a null character, so the effective length of user definable -** characters is one less than the defined length. The length -** specified must therefore be at least 4. -*/ -#define MD_SIGNATURE_FIELD_LENGTH 32 - -/** \mdcfg Mission specific version number for MD application -** -** \par Description: -** An application version number consists of four parts: -** major version number, minor version number, revision -** number and mission specific revision number. The mission -** specific revision number is defined here and the other -** parts are defined in "md_version.h". -** -** \par Limits: -** Must be defined as a numeric value that is greater than -** or equal to zero. -*/ -#define MD_MISSION_REV 0 - -#endif /* MD_PLATFORM_CFG_H */ - -/************************/ -/* End of File Comment */ -/************************/ diff --git a/config/ocpoc/quadx/inc/mm_msgids.h b/config/ocpoc/quadx/inc/mm_msgids.h deleted file mode 100644 index be3104f3a..000000000 --- a/config/ocpoc/quadx/inc/mm_msgids.h +++ /dev/null @@ -1,10 +0,0 @@ -#ifndef MM_MSGIDS_H -#define MM_MSGIDS_H - -#include "msg_ids.h" - -#endif /*MM_MSGIDS_H*/ - -/************************/ -/* End of File Comment */ -/************************/ diff --git a/config/ocpoc/quadx/inc/mm_platform_cfg.h b/config/ocpoc/quadx/inc/mm_platform_cfg.h deleted file mode 100644 index 8ce3bec71..000000000 --- a/config/ocpoc/quadx/inc/mm_platform_cfg.h +++ /dev/null @@ -1,399 +0,0 @@ -#ifndef MM_PLATFORM_CFG_H -#define MM_PLATFORM_CFG_H - -/** -** \mmcfg Memory Managment File -- cFE file header sub-type -** -** \par Description: -** This parameter defines the value that is used -** to identify a Memory Management file. -** -** \par Limits: -** The file header data type for the value is 32 bits unsigned, -** thus the value can be anything from zero to 4,294,967,295. -** (limit is not verified) -*/ -#define MM_CFE_HDR_SUBTYPE 0x4D4D5354 - - -/** -** \mmcfg Memory Management File -- cFE file header description -** -** \par Description: -** This parameter defines the text string that -** may be used to identify Memory Management files. -** -** \par Limits: -** The string length (including string terminator) cannot exceed -** #CFE_FS_HDR_DESC_MAX_LEN. (limit is not verified) -*/ -#define MM_CFE_HDR_DESCRIPTION "Memory Manager dump file" - - -/** \mmcfg Maximum number of bytes for a file load to RAM memory -** -** \par Description: -** Maximum number of bytes that can be loaded into RAM from a -** single load file. -** -** \par Limits: -** The MM app does not place a limit on this parameter. -** However, setting this value to a large number will increase -** the likelyhood of MM being late responding to housekeeping -** requests since it cannot process such a request while a load -** or dump is in progress. -*/ -#define MM_MAX_LOAD_FILE_DATA_RAM (1024*1024) - -/** \mmcfg Maximum number of bytes for a file load to EEPROM memory -** -** \par Description: -** Maximum number of bytes that can be loaded into EEPROM from a -** single load file. -** -** \par Limits: -** The MM app does not place a limit on this parameter. -** However, setting this value to a large number will increase -** the likelyhood of MM being late responding to housekeeping -** requests since it cannot process such a request while a load -** or dump is in progress. -*/ -#define MM_MAX_LOAD_FILE_DATA_EEPROM (128*1024) - -/** \mmcfg Maximum number of bytes for an uninterruptable load -** -** \par Description: -** Maximum number of bytes that can be loaded with the -** "memory load with interrupts disabled" (#MM_LOAD_MEM_WID_CC) -** command. -** -** \par Limits: -** This parameter is limited to the size of an uint8 which -** is the data type used to specify the number of bytes to -** load in the command message. -* -** If this data type is made bigger, changing this value to a -** large number will increase the amount of time interrupts are -** disabled during the load. It should also be kept small enough -** to avoid packet segmentation for the command protocal being -** used. -*/ -#define MM_MAX_UNINTERRUPTABLE_DATA 200 - -/** \mmcfg Maximum number of bytes per load data segment -** -** \par Description: -** Maximum number of bytes MM will load per task cycle -** to prevent CPU hogging (segmented load). -** -** \par Limits: -** The MM app does not place a limit on this parameter. -** However, setting this value to a large number will decrease -** the amount of time available for other tasks to execute and -** increase MM CPU utilization during load operations. -*/ -#define MM_MAX_LOAD_DATA_SEG 200 - -/** \mmcfg Maximum number of bytes for a file dump from RAM memory -** -** \par Description: -** Maximum number of bytes that can be dumped from RAM into a -** single dump file. -** -** \par Limits: -** The MM app does not place a limit on this parameter. -** However, setting this value to a large number will increase -** the likelyhood of MM being late responding to housekeeping -** requests since it cannot process such a request while a load -** or dump is in progress. -*/ -#define MM_MAX_DUMP_FILE_DATA_RAM (1024*1024) - -/** \mmcfg Maximum number of bytes for a file dump from EEPROM memory -** -** \par Description: -** Maximum number of bytes that can be dumped from EEPROM into a -** single dump file. -** -** \par Limits: -** The MM app does not place a limit on this parameter. -** However, setting this value to a large number will increase -** the likelyhood of MM being late responding to housekeeping -** requests since it cannot process such a request while a load -** or dump is in progress. -*/ -#define MM_MAX_DUMP_FILE_DATA_EEPROM (128*1024) - -/** \mmcfg Maximum number of bytes for a symbol table file dump -** -** \par Description: -** Maximum number of bytes that can be dumped from the symbol table -** into a single dump file. -** -** \par Limits: -** The MM app does not place a limit on this parameter. -** However, setting this value to a large number will impact -** the OSAL since it is responsible for generating the dump file. -*/ -#define MM_MAX_DUMP_FILE_DATA_SYMTBL (128*1024) - -/** \mmcfg Maximum number of bytes per dump data segment -** -** \par Description: -** Maximum number of bytes MM will dump per task cycle -** to prevent CPU hogging (segmented dump). -** -** \par Limits: -** The MM app does not place a limit on this parameter. -** However, setting this value to a large number will decrease -** the amount of time available for other tasks to execute and -** increase MM CPU utilization during dump operations. -*/ -#define MM_MAX_DUMP_DATA_SEG 200 - -/** \mmcfg Maximum number of bytes for a fill to RAM memory -** -** \par Description: -** Maximum number of bytes that can be loaded into RAM with a -** single memory fill command. -** -** \par Limits: -** The MM app does not place a limit on this parameter. -** However, setting this value to a large number will increase -** the likelyhood of MM being late responding to housekeeping -** requests since it cannot process such a request while a fill -** operation is in progress. -*/ -#define MM_MAX_FILL_DATA_RAM (1024*1024) - -/** \mmcfg Maximum number of bytes for a fill to EEPROM memory -** -** \par Description: -** Maximum number of bytes that can be loaded into EEPROM with a -** single memory fill command. -** -** \par Limits: -** The MM app does not place a limit on this parameter. -** However, setting this value to a large number will increase -** the likelyhood of MM being late responding to housekeeping -** requests since it cannot process such a request while a fill -** operation is in progress. -*/ -#define MM_MAX_FILL_DATA_EEPROM (128*1024) - -/** \mmcfg Maximum number of bytes per fill data segment -** -** \par Description: -** Maximum number of bytes MM will fill per task cycle -** to prevent CPU hogging (segmented fill). -** -** \par Limits: -** The MM app does not place a limit on this parameter. -** However, setting this value to a large number will decrease -** the amount of time available for other tasks to execute and -** increase MM CPU utilization during memory fill operations. -*/ -#define MM_MAX_FILL_DATA_SEG 200 - -/** \mmcfg Optional MEM32 compile switch -** -** \par Description: -** Compile switch to include code for the optional MM_MEM32 memory. -** The value should be set to TRUE or FALSE. A value of TRUE will -** include the code. -** -** \par Limits: -** n/a -*/ -#define MM_OPT_CODE_MEM32_MEMTYPE TRUE - -/** \mmcfg Maximum number of bytes for a file load to MEM32 memory -** -** \par Description: -** Maximum number of bytes that can be loaded into the optional -** MEM32 memory type from a single load file. -** -** \par Limits: -** This value should be longword aligned. -** Setting this value to a large number will increase the likelyhood -** of MM being late responding to housekeeping requests since it -** cannot process such a request while a load or dump is in progress. -*/ -#define MM_MAX_LOAD_FILE_DATA_MEM32 (1024*1024) - -/** \mmcfg Maximum number of bytes for a file dump from MEM32 memory -** -** \par Description: -** Maximum number of bytes that can be dumped from the optional -** MEM32 memory type to a single dump file. -** -** \par Limits: -** This value should be longword aligned. -** Setting this value to a large number will increase the likelyhood -** of MM being late responding to housekeeping requests since it -** cannot process such a request while a load or dump is in progress. -*/ -#define MM_MAX_DUMP_FILE_DATA_MEM32 (1024*1024) - -/** \mmcfg Maximum number of bytes for a fill to MEM32 memory -** -** \par Description: -** Maximum number of bytes that can be loaded into the optional -** MEM32 memory type with a single memory fill command. -** -** \par Limits: -** This value should be longword aligned. -** Setting this value to a large number will increase the likelyhood -** of MM being late responding to housekeeping requests since it -** cannot process such a request while a memory fill operation -** is in progress. -*/ -#define MM_MAX_FILL_DATA_MEM32 (1024*1024) - -/** \mmcfg Optional MEM16 compile switch -** -** \par Description: -** Compile switch to include code for the optional MM_MEM16 memory. -** The value should be set to TRUE or FALSE. A value of TRUE will -** include the code. -** -** \par Limits: -** n/a -*/ -#define MM_OPT_CODE_MEM16_MEMTYPE TRUE - -/** \mmcfg Maximum number of bytes for a file load to MEM16 memory -** -** \par Description: -** Maximum number of bytes that can be loaded into the optional -** MEM16 memory type from a single load file. -** -** \par Limits: -** This value should be word aligned. -** Setting this value to a large number will increase the likelyhood -** of MM being late responding to housekeeping requests since it -** cannot process such a request while a load or dump is in progress. -*/ -#define MM_MAX_LOAD_FILE_DATA_MEM16 (1024*1024) - -/** \mmcfg Maximum number of bytes for a file dump from MEM16 memory -** -** \par Description: -** Maximum number of bytes that can be dumped from the optional -** MEM16 memory type to a single dump file. -** -** \par Limits: -** This value should be word aligned. -** Setting this value to a large number will increase the likelyhood -** of MM being late responding to housekeeping requests since it -** cannot process such a request while a load or dump is in progress. -*/ -#define MM_MAX_DUMP_FILE_DATA_MEM16 (1024*1024) - -/** \mmcfg Maximum number of bytes for a fill to MEM16 memory -** -** \par Description: -** Maximum number of bytes that can be loaded into the optional -** MEM16 memory type with a single memory fill command. -** -** \par Limits: -** This value should be word aligned. -** Setting this value to a large number will increase the likelyhood -** of MM being late responding to housekeeping requests since it -** cannot process such a request while a memory fill operation -** is in progress. -*/ -#define MM_MAX_FILL_DATA_MEM16 (1024*1024) - -/** \mmcfg Optional MEM8 compile switch -** -** \par Description: -** Compile switch to include code for the optional MM_MEM8 memory. -** The value should be set to TRUE or FALSE. A value of TRUE will -** include the code. -** -** \par Limits: -** n/a -*/ -#define MM_OPT_CODE_MEM8_MEMTYPE TRUE - -/** \mmcfg Maximum number of bytes for a file load to MEM8 memory -** -** \par Description: -** Maximum number of bytes that can be loaded into the optional -** MEM8 memory type from a single load file. -** -** \par Limits: -** The MM app does not place a limit on this parameter. -** Setting this value to a large number will increase the likelyhood -** of MM being late responding to housekeeping requests since it -** cannot process such a request while a load or dump is in progress. -*/ -#define MM_MAX_LOAD_FILE_DATA_MEM8 (1024*1024) - -/** \mmcfg Maximum number of bytes for a file dump from MEM8 memory -** -** \par Description: -** Maximum number of bytes that can be dumped from the optional -** MEM8 memory type to a single dump file. -** -** \par Limits: -** The MM app does not place a limit on this parameter. -** Setting this value to a large number will increase the likelyhood -** of MM being late responding to housekeeping requests since it -** cannot process such a request while a load or dump is in progress. -*/ -#define MM_MAX_DUMP_FILE_DATA_MEM8 (1024*1024) - -/** \mmcfg Maximum number of bytes for a fill to MEM8 memory -** -** \par Description: -** Maximum number of bytes that can be loaded into the optional -** MEM8 memory type with a single memory fill command. -** -** \par Limits: -** The MM app does not place a limit on this parameter. -** Setting this value to a large number will increase the likelyhood -** of MM being late responding to housekeeping requests since it -** cannot process such a request while a memory fill operation -** is in progress. -*/ -#define MM_MAX_FILL_DATA_MEM8 (1024*1024) - -/** \mmcfg Segment break processor delay -** -** \par Description: -** How many milliseconds to delay between segments for dump, load, -** and fill operations. A value of zero cycles through the -** OS scheduler, giving up what's left of the current timeslice. -** -** \par Limits: -** The MM app does not place a limit on this parameter. -** However, setting this value to a large number will increase the -** time required to process load, dump, and fill requests. -** It will also increase the likelyhood of MM being late responding -** to housekeeping requests since it cannot process such a request -** while a memory operation is in progress. -*/ -#define MM_PROCESSOR_CYCLE 0 - -/** \mmcfg Mission specific version number for MM application -** -** \par Description: -** An application version number consists of four parts: -** major version number, minor version number, revision -** number and mission specific revision number. The mission -** specific revision number is defined here and the other -** parts are defined in "mm_version.h". -** -** \par Limits: -** Must be defined as a numeric value that is greater than -** or equal to zero. -*/ -#define MM_MISSION_REV 0 - -#endif /*MM_PLATFORM_CFG_H*/ - -/************************/ -/* End of File Comment */ -/************************/ diff --git a/config/ocpoc/quadx/inc/mpc_platform_cfg.h b/config/ocpoc/quadx/inc/mpc_platform_cfg.h deleted file mode 100644 index 20a61ef05..000000000 --- a/config/ocpoc/quadx/inc/mpc_platform_cfg.h +++ /dev/null @@ -1,111 +0,0 @@ -#ifndef MPC_PLATFORM_CFG_H -#define MPC_PLATFORM_CFG_H - -#ifdef __cplusplus -extern "C" { -#endif - -/* -** MPC Platform Configuration Parameter Definitions -*/ - -/** \brief Mission specific version number for MPC application -** -** \par Description: -** An application version number consists of four parts: -** major version number, minor version number, revision -** number and mission specific revision number. The mission -** specific revision number is defined here and the other -** parts are defined in "amc_version.h". -** -** \par Limits: -** Must be defined as a numeric value that is greater than -** or equal to zero. -*/ -#define MPC_MISSION_REV (0) - -/** \brief Pipe depth for the Scheduler pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define MPC_SCH_PIPE_DEPTH (15) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define MPC_SCH_PIPE_NAME ("MPC_SCH_PIPE") - -/** \brief The SB pend behavior type for the Scheduler pipe. -** -** \par Limits: -** One of: CFE_SB_POLL, CFE_SB_PEND_FOREVER, or the -** number of milliseconds to wait for a new message (recommended). -** Note, using CFE_SB_PEND_FOREVER may cause an unresponsive -** application if no messages arrive on this pipe. -*/ -#define MPC_SCH_PIPE_PEND_TIME (2000) - -/** \brief The number of WAKEUP messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max limited to CFE_SB_MAX_PIPE_DEPTH-1. Note the -** MPC_WAKEUP_MID_MAX_MSG_COUNT and MPC_SEND_HK_MID_MAX_MSG_COUNT -** must be less than MPC_SCH_PIPE_DEPTH. -*/ -#define MPC_WAKEUP_MID_MAX_MSG_COUNT (1) - -/** \brief The number of SEND_HK messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. Note the -** MPC_WAKEUP_MID_MAX_MSG_COUNT and MPC_SEND_HK_MID_MAX_MSG_COUNT -** must be less than MPC_SCH_PIPE_DEPTH. -*/ -#define MPC_SEND_HK_MID_MAX_MSG_COUNT (1) - -/** \brief Pipe depth for the command pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define MPC_CMD_PIPE_DEPTH (4) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define MPC_CMD_PIPE_NAME ("MPC_CMD_PIPE") - -/** \brief The config table default filename -** -** \par Limits: -** The length of each string, including the NULL terminator cannot exceed -** the #OS_MAX_PATH_LEN value. -*/ -#define MPC_CONFIG_TABLE_FILENAME ("/cf/apps/mpc_config.tbl") - -/** \brief The timeout value, in milliseconds, to wait for ES application startup sync. -** -** \par Limits: -** This parameter must be at least 1000 (ms). -*/ -#define MPC_STARTUP_TIMEOUT_MSEC (1000) - -/** \brief Time for direction change hysteresis */ -#define DIRECTION_CHANGE_TRIGGER_TIME_US (100000) - - -#ifdef __cplusplus -} -#endif - -#endif /* MPC_PLATFORM_CFG_H */ - -/************************/ -/* End of File Comment */ -/************************/ - diff --git a/config/ocpoc/quadx/inc/mpu9250_platform_cfg.h b/config/ocpoc/quadx/inc/mpu9250_platform_cfg.h deleted file mode 100644 index 0c5373479..000000000 --- a/config/ocpoc/quadx/inc/mpu9250_platform_cfg.h +++ /dev/null @@ -1,174 +0,0 @@ -#ifndef MPU9250_PLATFORM_CFG_H -#define MPU9250_PLATFORM_CFG_H - -#ifdef __cplusplus -extern "C" { -#endif - -#include "math.h" - -/* -** MPU9250 Platform Configuration Parameter Definitions -*/ - -/** \brief Mission specific version number for MPU9250 application -** -** \par Description: -** An application version number consists of four parts: -** major version number, minor version number, revision -** number and mission specific revision number. The mission -** specific revision number is defined here and the other -** parts are defined in "amc_version.h". -** -** \par Limits: -** Must be defined as a numeric value that is greater than -** or equal to zero. -*/ -#define MPU9250_MISSION_REV (0) - -/** \brief Pipe depth for the Scheduler pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define MPU9250_SCH_PIPE_DEPTH (2) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define MPU9250_SCH_PIPE_NAME ("MPU9250_SCH_PIPE") - -/** \brief The SB pend behavior type for the Scheduler pipe. -** -** \par Limits: -** One of: CFE_SB_POLL, CFE_SB_PEND_FOREVER, or the -** number of milliseconds to wait for a new message (recommended). -** Note, using CFE_SB_PEND_FOREVER may cause an unresponsive -** application if no messages arrive on this pipe. -*/ -#define MPU9250_SCH_PIPE_PEND_TIME (2000) - -/** \brief Pipe depth for the params pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define MPU9250_PARAM_PIPE_DEPTH (4) - -/** \brief Pipe name for the params pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define MPU9250_PARAM_PIPE_NAME ("MPU9250_PARAM_PIPE") - -/** \brief The number of WAKEUP messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max limited to CFE_SB_MAX_PIPE_DEPTH-1. Note the -** MPU9250_MEASURE_MID_MAX_MSG_COUNT and MPU9250_SEND_HK_MID_MAX_MSG_COUNT -** must be less than MPU9250_SCH_PIPE_DEPTH. -*/ -#define MPU9250_MEASURE_MID_MAX_MSG_COUNT (1) - -/** \brief The number of SEND_HK messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. Note the -** MPU9250_MEASURE_MID_MAX_MSG_COUNT and MPU9250_SEND_HK_MID_MAX_MSG_COUNT -** must be less than MPU9250_SCH_PIPE_DEPTH. -*/ -#define MPU9250_SEND_HK_MID_MAX_MSG_COUNT (1) - -/** \brief Pipe depth for the command pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define MPU9250_CMD_PIPE_DEPTH (4) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define MPU9250_CMD_PIPE_NAME ("MPU9250_CMD_PIPE") - -/** \brief Pipe depth for the data pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define MPU9250_DATA_PIPE_DEPTH (4) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define MPU9250_DATA_PIPE_NAME ("MPU9250_DATA_PIPE") - -/** \brief The config table default filename -** -** \par Limits: -** The length of each string, including the NULL terminator cannot exceed -** the #OS_MAX_PATH_LEN value. -*/ -#define MPU9250_CONFIG_TABLE_FILENAME ("/cf/apps/mpu9250_config.tbl") - -/** \brief The timeout value, in milliseconds, to wait for ES application startup sync. -** -** \par Limits: -** This parameter must be at least 1000 (ms). -*/ -#define MPU9250_STARTUP_TIMEOUT_MSEC (1000) - - -/** \brief Fake accel device ID */ -#define MPU9250_ACCEL_PX4_DEVICE_ID (6789478) -/** \brief Fake gyro device ID */ -#define MPU9250_GYRO_PX4_DEVICE_ID (3467548) -/** \brief Integration publish rate */ -#define MPU9250_ACCEL_INT_PUB_RATE (1000000 / 400) -/** \brief Integration publish rate */ -#define MPU9250_GYRO_INT_PUB_RATE (1000000 / 400) -/** \brief Accel scale */ -#define MPU9250_ACC_SCALE (16) -/** \brief Gyro scale */ -#define MPU9250_GYRO_SCALE (2000) -/** \brief Magnetometer device ID. */ -#define MPU9250_AK8963_ID (0x48) -/** \brief IMU device ID. */ -#define MPU9250_DEVICE_ID (0x71) -/** \brief IMU accelerometer sample rate. */ -#define MPU9250_ACCEL_SAMPLE_RATE (200) -/** \brief IMU accelerometer filter cutoff frequency. */ -#define MPU9250_ACCEL_FILTER_CUTOFF_FREQ (30) -/** \brief IMU gyroscope sample rate. */ -#define MPU9250_GYRO_SAMPLE_RATE (200) -/** \brief IMU gyroscope filter cutoff frequency. */ -#define MPU9250_GYRO_FILTER_CUTOFF_FREQ (30) -/** \brief Set to never publish (0) in PX4 mpu9250 wrapper. */ -#define MPU9250_NEVER_AUTOPUBLISH_US (0) -/** \brief One gravity. */ -#define MPU9250_ONE_G (9.80665f) -/** \brief Radians per degree. */ -#define MPU9250_RADIANS_PER_DEGREE (0.0174532f) -/** \brief Room temperature offset */ -#define MPU9250_ROOM_TEMP_OFFSET (0.0f) -/** \brief Temperature sensitivity */ -#define MPU9250_TEMP_SENS (361.0f) - - -#ifdef __cplusplus -} -#endif - -#endif /* MPU9250_PLATFORM_CFG_H */ - -/************************/ -/* End of File Comment */ -/************************/ - diff --git a/config/ocpoc/quadx/inc/ms5611_platform_cfg.h b/config/ocpoc/quadx/inc/ms5611_platform_cfg.h deleted file mode 100644 index 4042ed560..000000000 --- a/config/ocpoc/quadx/inc/ms5611_platform_cfg.h +++ /dev/null @@ -1,138 +0,0 @@ -#ifndef MS5611_PLATFORM_CFG_H -#define MS5611_PLATFORM_CFG_H - -#ifdef __cplusplus -extern "C" { -#endif - -/* -** MS5611 Platform Configuration Parameter Definitions -*/ - -/** \brief Mission specific version number for MS5611 application -** -** \par Description: -** An application version number consists of four parts: -** major version number, minor version number, revision -** number and mission specific revision number. The mission -** specific revision number is defined here and the other -** parts are defined in "amc_version.h". -** -** \par Limits: -** Must be defined as a numeric value that is greater than -** or equal to zero. -*/ -#define MS5611_MISSION_REV (0) - -/** \brief Pipe depth for the Scheduler pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define MS5611_SCH_PIPE_DEPTH (2) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define MS5611_SCH_PIPE_NAME ("MS5611_SCH_PIPE") - -/** \brief The SB pend behavior type for the Scheduler pipe. -** -** \par Limits: -** One of: CFE_SB_POLL, CFE_SB_PEND_FOREVER, or the -** number of milliseconds to wait for a new message (recommended). -** Note, using CFE_SB_PEND_FOREVER may cause an unresponsive -** application if no messages arrive on this pipe. -*/ -#define MS5611_SCH_PIPE_PEND_TIME (2000) - -/** \brief The number of WAKEUP messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max limited to CFE_SB_MAX_PIPE_DEPTH-1. Note the -** MS5611_WAKEUP_MID_MAX_MSG_COUNT and MS5611_SEND_HK_MID_MAX_MSG_COUNT -** must be less than MS5611_SCH_PIPE_DEPTH. -*/ -#define MS5611_MEASURE_MID_MAX_MSG_COUNT (1) - -/** \brief The number of SEND_HK messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. Note the -** MS5611_WAKEUP_MID_MAX_MSG_COUNT and MS5611_SEND_HK_MID_MAX_MSG_COUNT -** must be less than MS5611_SCH_PIPE_DEPTH. -*/ -#define MS5611_SEND_HK_MID_MAX_MSG_COUNT (1) - -/** \brief Pipe depth for the command pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define MS5611_CMD_PIPE_DEPTH (4) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define MS5611_CMD_PIPE_NAME ("MS5611_CMD_PIPE") - -/** \brief Pipe depth for the data pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define MS5611_DATA_PIPE_DEPTH (4) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define MS5611_DATA_PIPE_NAME ("MS5611_DATA_PIPE") - -/** \brief The config table default filename -** -** \par Limits: -** The length of each string, including the NULL terminator cannot exceed -** the #OS_MAX_PATH_LEN value. -*/ -#define MS5611_CONFIG_TABLE_FILENAME ("/cf/apps/ms5611_config.tbl") - -/** \brief The timeout value, in milliseconds, to wait for ES application startup sync. -** -** \par Limits: -** This parameter must be at least 1000 (ms). -*/ -#define MS5611_STARTUP_TIMEOUT_MSEC (1000) - -/** \brief The MS5611 device path. -** -** \par Limits: -** The length of each string, including the NULL terminator cannot exceed -** the #OS_MAX_PATH_LEN value. -*/ -#define MS5611_DEVICE_PATH ("/dev/spidev1.1") - -/** \brief The ratio pressure per temperature measurements -** -** \par Limits: -** Set to 3 for 3 pressure measurements for every temperature -** measurement. -*/ -#define MS5611_PRESS_TEMP_MEAS_RATIO (3) - - -#ifdef __cplusplus -} -#endif - -#endif /* MS5611_PLATFORM_CFG_H */ - -/************************/ -/* End of File Comment */ -/************************/ - diff --git a/config/ocpoc/quadx/inc/nav_platform_cfg.h b/config/ocpoc/quadx/inc/nav_platform_cfg.h deleted file mode 100644 index 6781d6e8b..000000000 --- a/config/ocpoc/quadx/inc/nav_platform_cfg.h +++ /dev/null @@ -1,122 +0,0 @@ -#ifndef NAV_PLATFORM_CFG_H -#define NAV_PLATFORM_CFG_H - -#ifdef __cplusplus -extern "C" { -#endif - -/* -** NAV Platform Configuration Parameter Definitions -*/ - -/** \brief Mission specific version number for NAV application -** -** \par Description: -** An application version number consists of four parts: -** major version number, minor version number, revision -** number and mission specific revision number. The mission -** specific revision number is defined here and the other -** parts are defined in "amc_version.h". -** -** \par Limits: -** Must be defined as a numeric value that is greater than -** or equal to zero. -*/ -#define NAV_MISSION_REV (0) - -/** \brief Pipe depth for the Scheduler pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define NAV_SCH_PIPE_DEPTH (15) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define NAV_SCH_PIPE_NAME ("NAV_SCH_PIPE") - -/** \brief The SB pend behavior type for the Scheduler pipe. -** -** \par Limits: -** One of: CFE_SB_POLL, CFE_SB_PEND_FOREVER, or the -** number of milliseconds to wait for a new message (recommended). -** Note, using CFE_SB_PEND_FOREVER may cause an unresponsive -** application if no messages arrive on this pipe. -*/ -#define NAV_SCH_PIPE_PEND_TIME (2000) - -/** \brief The number of WAKEUP messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max limited to CFE_SB_MAX_PIPE_DEPTH-1. Note the -** NAV_WAKEUP_MID_MAX_MSG_COUNT and NAV_SEND_HK_MID_MAX_MSG_COUNT -** must be less than NAV_SCH_PIPE_DEPTH. -*/ -#define NAV_WAKEUP_MID_MAX_MSG_COUNT (1) - -/** \brief The number of SEND_HK messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. Note the -** NAV_WAKEUP_MID_MAX_MSG_COUNT and NAV_SEND_HK_MID_MAX_MSG_COUNT -** must be less than NAV_SCH_PIPE_DEPTH. -*/ -#define NAV_SEND_HK_MID_MAX_MSG_COUNT (1) - -/** \brief Pipe depth for the command pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define NAV_CMD_PIPE_DEPTH (4) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define NAV_CMD_PIPE_NAME ("NAV_CMD_PIPE") - -/** \brief Pipe depth for the data pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define NAV_DATA_PIPE_DEPTH (4) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define NAV_DATA_PIPE_NAME ("NAV_DATA_PIPE") - -/** \brief The config table default filename -** -** \par Limits: -** The length of each string, including the NULL terminator cannot exceed -** the #OS_MAX_PATH_LEN value. -*/ -#define NAV_CONFIG_TABLE_FILENAME ("/cf/apps/nav_config.tbl") - -/** \brief The timeout value, in milliseconds, to wait for ES application startup sync. -** -** \par Limits: -** This parameter must be at least 1000 (ms). -*/ -#define NAV_STARTUP_TIMEOUT_MSEC (1000) - - -#ifdef __cplusplus -} -#endif - -#endif /* NAV_PLATFORM_CFG_H */ - -/************************/ -/* End of File Comment */ -/************************/ - diff --git a/config/ocpoc/quadx/inc/osconfig.h b/config/ocpoc/quadx/inc/osconfig.h deleted file mode 100644 index b5fe3f36d..000000000 --- a/config/ocpoc/quadx/inc/osconfig.h +++ /dev/null @@ -1,140 +0,0 @@ -#ifndef OSCONFIG_H -#define OSCONFIG_H - -#define OS_RUNTIME_MANAGER_CMD_QUEUE_NAME "OS_RUNTIME_MGR_CMD" -#define OS_RUNTIME_MANAGER_CMD_QUEUE_DEPTH 1 -#define OS_RUNTIME_MANAGER_CMD_TASK_NAME "OS_RUNTIME_MGR_CMD" -#define OS_RUNTIME_MANAGER_CMD_TASK_STACK_SIZE 32535 -#define OS_RUNTIME_MANAGER_CMD_TASK_PRIORITY 0 -#define OS_RUNTIME_MANAGER_EXEC_TASK_NAME "OS_RUNTIME_MGR_EXEC" -#define OS_RUNTIME_MANAGER_EXEC_TASK_STACK_SIZE 32535 -#define OS_RUNTIME_MANAGER_EXEC_TASK_PRIORITY 99 -#define OS_RUNTIME_MANAGER_SEM_NAME "OS_RUNTIME_MGR_SEM" - -/*#define OS_USE_EMBEDDED_PRINTF*/ - -#define OS_MAX_QUEUE_WIDTH 8 -#define OS_MAX_QUEUE_DEPTH 256 - -/* -** Platform Configuration Parameters for the OS API -*/ - -#define OS_MAX_TASKS 100 -#define OS_MAX_QUEUES 255 -#define OS_MAX_COUNT_SEMAPHORES 100 -#define OS_MAX_BIN_SEMAPHORES 100 -#define OS_MAX_MUTEXES 100 -#define OS_MAX_TIMEOUTS (OS_MAX_QUEUES+OS_MAX_COUNT_SEMAPHORES+OS_MAX_BIN_SEMAPHORES) - -/* -** Maximum length for an absolute path name -*/ -#define OS_MAX_PATH_LEN 64 - -/* -** Maximum length for a local or host path/filename. -** This parameter can consist of the OSAL filename/path + -** the host OS physical volume name or path. -*/ -#define OS_MAX_LOCAL_PATH_LEN (OS_MAX_PATH_LEN + OS_FS_PHYS_NAME_LEN) - -/* -** The maxium length allowed for a object (task,queue....) name -*/ -#define OS_MAX_API_NAME 40 - -/* -** The maximum length for a file name -*/ -#define OS_MAX_FILE_NAME 20 - -/* -** These defines are for OS_printf -*/ -#define OS_BUFFER_SIZE 512 -#define OS_BUFFER_MSG_DEPTH 100 - -/* This #define turns on a utility task that - * will read the statements to print from - * the OS_printf function. If you want OS_printf - * to print the text out itself, comment this out - * - * NOTE: The Utility Task #defines only have meaning - * on the VxWorks operating systems - */ - -#define OS_UTILITY_TASK_ON - - -#ifdef OS_UTILITY_TASK_ON - #define OS_UTILITYTASK_STACK_SIZE 2048 - /* some room is left for other lower priority tasks */ - #define OS_UTILITYTASK_PRIORITY 245 -#endif - - -/* -** the size of a command that can be passed to the underlying OS -*/ -#define OS_MAX_CMD_LEN 1000 - -/* -** This define will include the OS network API. -** It should be turned off for targtets that do not have a network stack or -** device ( like the basic RAD750 vxWorks BSP ) -*/ -#define OS_INCLUDE_NETWORK - -/* -** This is the maximum number of open file descriptors allowed at a time -*/ -#define OS_MAX_NUM_OPEN_FILES 50 - -/* -** This defines the filethe input command of OS_ShellOutputToFile -** is written to in the VxWorks6 port -*/ -#define OS_SHELL_CMD_INPUT_FILE_NAME "/ram/OS_ShellCmd.in" - -/* -** This define sets the queue implentation of the Linux port to use sockets -** commenting this out makes the Linux port use the POSIX message queues. -*/ -#define OSAL_SOCKET_QUEUE */ - -/* -** Module loader/symbol table is optional -*/ -#define OS_INCLUDE_MODULE_LOADER - -#ifdef OS_INCLUDE_MODULE_LOADER - /* - ** This define sets the size of the OS Module Table, which keeps track of the loaded modules in - ** the running system. This define must be set high enough to support the maximum number of - ** loadable modules in the system. If the the table is filled up at runtime, a new module load - ** would fail. - */ - #define OS_MAX_MODULES 64 - - /* - ** The Static Loader define is used for switching between the Dynamic and Static loader implementations. - */ - /* #define OS_STATIC_LOADER */ - -#endif - - -/* -** This define sets the maximum symbol name string length. It is used in implementations that -** support the symbols and symbol lookup. -*/ -#define OS_MAX_SYM_LEN 64 - - -/* -** This define sets the maximum number of timers available -*/ -#define OS_MAX_TIMERS 5 - -#endif diff --git a/config/ocpoc/quadx/inc/pe_platform_cfg.h b/config/ocpoc/quadx/inc/pe_platform_cfg.h deleted file mode 100644 index ca1de959a..000000000 --- a/config/ocpoc/quadx/inc/pe_platform_cfg.h +++ /dev/null @@ -1,140 +0,0 @@ -#ifndef PE_PLATFORM_CFG_H -#define PE_PLATFORM_CFG_H - -#ifdef __cplusplus -extern "C" { -#endif - -/* -** PE Platform Configuration Parameter Definitions -*/ - -/** \brief Mission specific version number for PE application -** -** \par Description: -** An application version number consists of four parts: -** major version number, minor version number, revision -** number and mission specific revision number. The mission -** specific revision number is defined here and the other -** parts are defined in "amc_version.h". -** -** \par Limits: -** Must be defined as a numeric value that is greater than -** or equal to zero. -*/ -#define PE_MISSION_REV (0) - -/** \brief Pipe depth for the Scheduler pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define PE_SCH_PIPE_DEPTH (20) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define PE_SCH_PIPE_NAME ("PE_SCH_PIPE") - -/** \brief The SB pend behavior type for the Scheduler pipe. -** -** \par Limits: -** One of: CFE_SB_POLL, CFE_SB_PEND_FOREVER, or the -** number of milliseconds to wait for a new message (recommended). -** Note, using CFE_SB_PEND_FOREVER may cause an unresponsive -** application if no messages arrive on this pipe. -*/ -#define PE_SCH_PIPE_PEND_TIME (2000) - -/** \brief The number of WAKEUP messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max limited to CFE_SB_MAX_PIPE_DEPTH-1. Note the -** PE_WAKEUP_MID_MAX_MSG_COUNT and PE_SEND_HK_MID_MAX_MSG_COUNT -** must be less than PE_SCH_PIPE_DEPTH. -*/ -#define PE_WAKEUP_MID_MAX_MSG_COUNT (1) - -/** \brief The number of SEND_HK messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. Note the -** PE_WAKEUP_MID_MAX_MSG_COUNT and PE_SEND_HK_MID_MAX_MSG_COUNT -** must be less than PE_SCH_PIPE_DEPTH. -*/ -#define PE_SEND_HK_MID_MAX_MSG_COUNT (1) - -/** \brief Pipe depth for the command pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define PE_CMD_PIPE_DEPTH (4) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define PE_CMD_PIPE_NAME ("PE_CMD_PIPE") - -/** \brief The config table default filename -** -** \par Limits: -** The length of each string, including the NULL terminator cannot exceed -** the #OS_MAX_PATH_LEN value. -*/ -#define PE_CONFIG_TABLE_FILENAME ("/cf/apps/pe_config.tbl") - -/** \brief The timeout value, in milliseconds, to wait for ES application startup sync. -** -** \par Limits: -** This parameter must be at least 1000 (ms). -*/ -#define PE_STARTUP_TIMEOUT_MSEC (1000) - -/** \brief MAx event filters the PE app can use. -** -** \par Limits: -** This parameter cannot exceed TODO -*/ -#define PE_MAX_EVENT_FILTERS (64) - -/*** Sensor Configuration ***/ - -/* Baro */ -#define REQ_BARO_INIT_COUNT (2000) -#define BARO_TIMEOUT (100000) /* 0.1 s */ - -/* GPS */ -#define REQ_GPS_INIT_COUNT (50) -#define GPS_TIMEOUT (1000000) /* 1.0 s */ - -/* Land */ -#define REQ_LAND_INIT_COUNT (1) -#define LAND_TIMEOUT (1000000) /* 1.0 s */ - -/* Distance sensor */ -#define REQ_DIST_INIT_COUNT (50) -#define DIST_TIMEOUT (150000) /* 0.1 s */ -#define DIST_BETA_MAX (700) -#define DIST_SENSOR_TYPE (3) /* 3 = radar */ - -/* Optical flow */ -#define REQ_FLOW_INIT_COUNT (10) -#define FLOW_TIMEOUT (1000000) /* 1.0 s */ -#define FLOW_GYRO_HP_CUTOFF (0.001f) - - -#ifdef __cplusplus -} -#endif - -#endif /* PE_PLATFORM_CFG_H */ - -/************************/ -/* End of File Comment */ -/************************/ - diff --git a/config/ocpoc/quadx/inc/prm_platform_cfg.h b/config/ocpoc/quadx/inc/prm_platform_cfg.h deleted file mode 100644 index 86a2f9b4d..000000000 --- a/config/ocpoc/quadx/inc/prm_platform_cfg.h +++ /dev/null @@ -1,125 +0,0 @@ - -#ifndef PRM_PLATFORM_CFG_H -#define PRM_PLATFORM_CFG_H - -#ifdef __cplusplus -extern "C" { -#endif - -/* -** prm Platform Configuration Parameter Definitions -*/ - -/** \brief Mission specific version number for PRM application -** -** \par Description: -** An application version number consists of four parts: -** major version number, minor version number, revision -** number and mission specific revision number. The mission -** specific revision number is defined here and the other -** parts are defined in "prm_version.h". -** -** \par Limits: -** Must be defined as a numeric value that is greater than -** or equal to zero. -*/ -#define PRM_MISSION_REV (0) - -/** \brief Pipe depth for the Scheduler pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define PRM_SCH_PIPE_DEPTH (2) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define PRM_SCH_PIPE_NAME ("PRM_SCH_PIPE") - -/** \brief The SB pend behavior type for the Scheduler pipe. -** -** \par Limits: -** One of: CFE_SB_POLL, CFE_SB_PEND_FOREVER, or the -** number of milliseconds to wait for a new message (recommended). -** Note, using CFE_SB_PEND_FOREVER may cause an unresponsive -** application if no messages arrive on this pipe. -*/ -#define PRM_SCH_PIPE_PEND_TIME (2000) - -/** \brief The number of WAKEUP messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max limited to CFE_SB_MAX_PIPE_DEPTH-1. Note the -** PRM_SCH_PIPE_WAKEUP_RESERVED and PRM_SCH_PIPE_SEND_HK_RESERVED -** must be less than PRM_SCH_PIPE_DEPTH. -*/ -#define PRM_SCH_PIPE_WAKEUP_RESERVED (1) - -/** \brief The number of SEND_HK messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. Note the -** PRM_SCH_PIPE_WAKEUP_RESERVED and PRM_SCH_PIPE_SEND_HK_RESERVED -** must be less than PRM_SCH_PIPE_DEPTH. -*/ -#define PRM_SCH_PIPE_SEND_HK_RESERVED (1) - -/** \brief Pipe depth for the command pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define PRM_CMD_PIPE_DEPTH (4) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define PRM_CMD_PIPE_NAME ("PRM_CMD_PIPE") - -/** \brief Pipe depth for the data pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define PRM_DATA_PIPE_DEPTH (4) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define PRM_DATA_PIPE_NAME ("PRM_DATA_PIPE") - -/** \brief The config table default filename -** -** \par Limits: -** The length of each string, including the NULL terminator cannot exceed -** the #OS_MAX_PATH_LEN value. -*/ -#define PRM_CONFIG_TABLE_FILENAME ("/cf/apps/prm_config.tbl") -/** \brief The timeout value, in milliseconds, to wait for ES application startup sync. -** -** \par Limits: -** This parameter must be at least 1000 (ms). -*/ -#define PRM_STARTUP_TIMEOUT_MSEC (1000) - -/* TODO: Add Doxygen markup. */ -#define PRM_CUSTOM_DEV_PATH "/tmp/ttyS0" - - -#ifdef __cplusplus -} -#endif - -#endif /* PRM_PLATFORM_CFG_H */ - -/************************/ -/* End of File Comment */ -/************************/ - diff --git a/config/ocpoc/quadx/inc/px4br_platform_cfg.h b/config/ocpoc/quadx/inc/px4br_platform_cfg.h deleted file mode 100644 index 9ea36cfaf..000000000 --- a/config/ocpoc/quadx/inc/px4br_platform_cfg.h +++ /dev/null @@ -1,39 +0,0 @@ -#ifndef PX4BR_PLATFORM_CFG_H -#define PX4BR_PLATFORM_CFG_H - -/* -** Pragmas -*/ - -/* -** Local Defines -*/ -#define PX4BR_RUNTIME_QUEUE_NAME "OS_RUNTIME_MGR_CMD" -#define PX4BR_MAX_FIFO_PATH_LENGTH (255) - -/* -** Include Files -*/ - -/* -** Local Structure Declarations -*/ - -/* -** External Global Variables -*/ - -/* -** Global Variables -*/ - -/* -** Local Variables -*/ - -/* -** Local Function Prototypes -*/ - -#endif /* PX4BR_PLATFORM_CFG_H */ - diff --git a/config/ocpoc/quadx/inc/qae_platform_cfg.h b/config/ocpoc/quadx/inc/qae_platform_cfg.h deleted file mode 100644 index bd6552cf3..000000000 --- a/config/ocpoc/quadx/inc/qae_platform_cfg.h +++ /dev/null @@ -1,122 +0,0 @@ -#ifndef QAE_PLATFORM_CFG_H -#define QAE_PLATFORM_CFG_H - -#ifdef __cplusplus -extern "C" { -#endif - -/* -** QAE Platform Configuration Parameter Definitions -*/ - -/** \brief Mission specific version number for QAE application -** -** \par Description: -** An application version number consists of four parts: -** major version number, minor version number, revision -** number and mission specific revision number. The mission -** specific revision number is defined here and the other -** parts are defined in "amc_version.h". -** -** \par Limits: -** Must be defined as a numeric value that is greater than -** or equal to zero. -*/ -#define QAE_MISSION_REV (0) - -/** \brief Pipe depth for the Scheduler pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define QAE_SCH_PIPE_DEPTH (5) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define QAE_SCH_PIPE_NAME ("QAE_SCH_PIPE") - -/** \brief The SB pend behavior type for the Scheduler pipe. -** -** \par Limits: -** One of: CFE_SB_POLL, CFE_SB_PEND_FOREVER, or the -** number of milliseconds to wait for a new message (recommended). -** Note, using CFE_SB_PEND_FOREVER may cause an unresponsive -** application if no messages arrive on this pipe. -*/ -#define QAE_SCH_PIPE_PEND_TIME (2000) - -/** \brief The number of WAKEUP messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max limited to CFE_SB_MAX_PIPE_DEPTH-1. Note the -** QAE_WAKEUP_MID_MAX_MSG_COUNT and QAE_SEND_HK_MID_MAX_MSG_COUNT -** must be less than QAE_SCH_PIPE_DEPTH. -*/ -#define QAE_WAKEUP_MID_MAX_MSG_COUNT (1) - -/** \brief The number of SEND_HK messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. Note the -** QAE_WAKEUP_MID_MAX_MSG_COUNT and QAE_SEND_HK_MID_MAX_MSG_COUNT -** must be less than QAE_SCH_PIPE_DEPTH. -*/ -#define QAE_SEND_HK_MID_MAX_MSG_COUNT (1) - -/** \brief Pipe depth for the command pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define QAE_CMD_PIPE_DEPTH (4) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define QAE_CMD_PIPE_NAME ("QAE_CMD_PIPE") - -/** \brief Pipe depth for the data pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define QAE_DATA_PIPE_DEPTH (4) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define QAE_DATA_PIPE_NAME ("QAE_DATA_PIPE") - -/** \brief The config table default filename -** -** \par Limits: -** The length of each string, including the NULL terminator cannot exceed -** the #OS_MAX_PATH_LEN value. -*/ -#define QAE_CONFIG_TABLE_FILENAME ("/cf/apps/qae_config.tbl") - -/** \brief The timeout value, in milliseconds, to wait for ES application startup sync. -** -** \par Limits: -** This parameter must be at least 1000 (ms). -*/ -#define QAE_STARTUP_TIMEOUT_MSEC (1000) - - -#ifdef __cplusplus -} -#endif - -#endif /* QAE_PLATFORM_CFG_H */ - -/************************/ -/* End of File Comment */ -/************************/ - diff --git a/config/ocpoc/quadx/inc/rcin_platform_cfg.h b/config/ocpoc/quadx/inc/rcin_platform_cfg.h deleted file mode 100644 index 3f55e6541..000000000 --- a/config/ocpoc/quadx/inc/rcin_platform_cfg.h +++ /dev/null @@ -1,126 +0,0 @@ -#ifndef RCIN_PLATFORM_CFG_H -#define RCIN_PLATFORM_CFG_H - -#ifdef __cplusplus -extern "C" { -#endif - -#define RCIN_STREAMING_TASK_FLAGS OS_ENABLE_CORE_0 - -/* -** RCIN Platform Configuration Parameter Definitions -*/ - -/** \brief Mission specific version number for RCIN application -** -** \par Description: -** An application version number consists of four parts: -** major version number, minor version number, revision -** number and mission specific revision number. The mission -** specific revision number is defined here and the other -** parts are defined in "amc_version.h". -** -** \par Limits: -** Must be defined as a numeric value that is greater than -** or equal to zero. -*/ -#define RCIN_MISSION_REV (0) - -/** \brief Pipe depth for the Scheduler pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define RCIN_SCH_PIPE_DEPTH (2) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define RCIN_SCH_PIPE_NAME ("RCIN_SCH_PIPE") - -/** \brief The SB pend behavior type for the Scheduler pipe. -** -** \par Limits: -** One of: CFE_SB_POLL, CFE_SB_PEND_FOREVER, or the -** number of milliseconds to wait for a new message (recommended). -** Note, using CFE_SB_PEND_FOREVER may cause an unresponsive -** application if no messages arrive on this pipe. -*/ -#define RCIN_SCH_PIPE_PEND_TIME (2000) - -/** \brief The number of WAKEUP messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max limited to CFE_SB_MAX_PIPE_DEPTH-1. Note the -** RCIN_WAKEUP_MID_MAX_MSG_COUNT and RCIN_SEND_HK_MID_MAX_MSG_COUNT -** must be less than RCIN_SCH_PIPE_DEPTH. -*/ -#define RCIN_WAKEUP_MID_MAX_MSG_COUNT (1) - -/** \brief The number of SEND_HK messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. Note the -** RCIN_WAKEUP_MID_MAX_MSG_COUNT and RCIN_SEND_HK_MID_MAX_MSG_COUNT -** must be less than RCIN_SCH_PIPE_DEPTH. -*/ -#define RCIN_SEND_HK_MID_MAX_MSG_COUNT (1) - -/** \brief Pipe depth for the command pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define RCIN_CMD_PIPE_DEPTH (4) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define RCIN_CMD_PIPE_NAME ("RCIN_CMD_PIPE") - -/** \brief Pipe depth for the data pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define RCIN_DATA_PIPE_DEPTH (4) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define RCIN_DATA_PIPE_NAME ("RCIN_DATA_PIPE") - -/** \brief The config table default filename -** -** \par Limits: -** The length of each string, including the NULL terminator cannot exceed -** the #OS_MAX_PATH_LEN value. -*/ -#define RCIN_CONFIG_TABLE_FILENAME ("/cf/apps/rcin_config.tbl") - -/** \brief The timeout value, in milliseconds, to wait for ES application startup sync. -** -** \par Limits: -** This parameter must be at least 1000 (ms). -*/ -#define RCIN_STARTUP_TIMEOUT_MSEC (1000) - -/**\brief Max filters in event table */ -#define RCIN_MAX_EVENT_FILTERS (32) - -#ifdef __cplusplus -} -#endif - -#endif /* RCIN_PLATFORM_CFG_H */ - -/************************/ -/* End of File Comment */ -/************************/ - diff --git a/config/ocpoc/quadx/inc/rgbled_msgids.h b/config/ocpoc/quadx/inc/rgbled_msgids.h deleted file mode 100644 index 16a36dcc7..000000000 --- a/config/ocpoc/quadx/inc/rgbled_msgids.h +++ /dev/null @@ -1,18 +0,0 @@ -#ifndef RGBLED_MSGIDS_H -#define RGBLED_MSGIDS_H - -#ifdef __cplusplus -extern "C" { -#endif - -#include "msg_ids.h" - -#ifdef __cplusplus -} -#endif - -#endif /* RGBLED_MSGIDS_H */ - -/************************/ -/* End of File Comment */ -/************************/ diff --git a/config/ocpoc/quadx/inc/rgbled_platform_cfg.h b/config/ocpoc/quadx/inc/rgbled_platform_cfg.h deleted file mode 100644 index 6e568f21b..000000000 --- a/config/ocpoc/quadx/inc/rgbled_platform_cfg.h +++ /dev/null @@ -1,126 +0,0 @@ -#ifndef RGBLED_PLATFORM_CFG_H -#define RGBLED_PLATFORM_CFG_H - -#include "osapi.h" - -#ifdef __cplusplus -extern "C" { -#endif - -#define RGBLED_SELFTEST_TASK_FLAGS OS_ENABLE_CORE_0 - -/* -** RGBLED Platform Configuration Parameter Definitions -*/ - -/** \brief Mission specific version number for RGBLED application -** -** \par Description: -** An application version number consists of four parts: -** major version number, minor version number, revision -** number and mission specific revision number. The mission -** specific revision number is defined here and the other -** parts are defined in "amc_version.h". -** -** \par Limits: -** Must be defined as a numeric value that is greater than -** or equal to zero. -*/ -#define RGBLED_MISSION_REV (0) - -/** \brief Pipe depth for the Scheduler pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define RGBLED_SCH_PIPE_DEPTH (2) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define RGBLED_SCH_PIPE_NAME ("RGBLED_SCH_PIPE") - -/** \brief The SB pend behavior type for the Scheduler pipe. -** -** \par Limits: -** One of: CFE_SB_POLL, CFE_SB_PEND_FOREVER, or the -** number of milliseconds to wait for a new message (recommended). -** Note, using CFE_SB_PEND_FOREVER may cause an unresponsive -** application if no messages arrive on this pipe. -*/ -#define RGBLED_SCH_PIPE_PEND_TIME (2000) - -/** \brief The number of WAKEUP messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max limited to CFE_SB_MAX_PIPE_DEPTH-1. Note the -** RGBLED_WAKEUP_MID_MAX_MSG_COUNT and RGBLED_SEND_HK_MID_MAX_MSG_COUNT -** must be less than RGBLED_SCH_PIPE_DEPTH. -*/ -#define RGBLED_WAKEUP_MID_MAX_MSG_COUNT (1) - -/** \brief The number of SEND_HK messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. Note the -** RGBLED_WAKEUP_MID_MAX_MSG_COUNT and RGBLED_SEND_HK_MID_MAX_MSG_COUNT -** must be less than RGBLED_SCH_PIPE_DEPTH. -*/ -#define RGBLED_SEND_HK_MID_MAX_MSG_COUNT (1) - -/** \brief Pipe depth for the command pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define RGBLED_CMD_PIPE_DEPTH (4) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define RGBLED_CMD_PIPE_NAME ("RGBLED_CMD_PIPE") - -/** \brief Pipe depth for the data pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define RGBLED_DATA_PIPE_DEPTH (4) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define RGBLED_DATA_PIPE_NAME ("RGBLED_DATA_PIPE") - -/** \brief The config table default filename -** -** \par Limits: -** The length of each string, including the NULL terminator cannot exceed -** the #OS_MAX_PATH_LEN value. -*/ -#define RGBLED_CONFIG_TABLE_FILENAME ("/cf/apps/rgbled_config.tbl") - -/** \brief The timeout value, in milliseconds, to wait for ES application startup sync. -** -** \par Limits: -** This parameter must be at least 1000 (ms). -*/ -#define RGBLED_STARTUP_TIMEOUT_MSEC (1000) - - -#ifdef __cplusplus -} -#endif - -#endif /* RGBLED_PLATFORM_CFG_H */ - -/************************/ -/* End of File Comment */ -/************************/ - diff --git a/config/ocpoc/quadx/inc/sbn_msgids.h b/config/ocpoc/quadx/inc/sbn_msgids.h deleted file mode 100644 index c0d95d30b..000000000 --- a/config/ocpoc/quadx/inc/sbn_msgids.h +++ /dev/null @@ -1,11 +0,0 @@ -#ifndef SBN_MSGIDS_H -#define SBN_MSGIDS_H - -#include "msg_ids.h" - -#endif /* SBN_MSGIDS_H */ - -/*======================================================================================= -** End of file sbn_msgids.h -**=====================================================================================*/ - diff --git a/config/ocpoc/quadx/inc/sc_msgids.h b/config/ocpoc/quadx/inc/sc_msgids.h deleted file mode 100644 index f81bdec50..000000000 --- a/config/ocpoc/quadx/inc/sc_msgids.h +++ /dev/null @@ -1,10 +0,0 @@ -#ifndef SC_MSGIDS_H -#define SC_MSGIDS_H - -#include "msg_ids.h" - -#endif /*SC_MSGIDS_H*/ - -/************************/ -/* End of File Comment */ -/************************/ diff --git a/config/ocpoc/quadx/inc/sc_platform_cfg.h b/config/ocpoc/quadx/inc/sc_platform_cfg.h deleted file mode 100644 index a831c16bf..000000000 --- a/config/ocpoc/quadx/inc/sc_platform_cfg.h +++ /dev/null @@ -1,359 +0,0 @@ -#ifndef SC_PLATFORM_CFG_H -#define SC_PLATFORM_CFG_H - -/************************************************************************* - ** Macro Definitions - *************************************************************************/ - -/** \sccfg Max number of commands per second -** -** \par Description: -** Maximum number of commands that can be sent out by SC -* in any given second. -** -** \par Limits: -** This parameter can't be larger than an unsigned 16 bit -** integer (65535), but should be kepoot relatively small to -** avoid SC hogging the CPU -** -*/ -#define SC_MAX_CMDS_PER_SEC 8 - - -/** \sccfg Number of RTS's -** -** \par Description: -** The number of RTS's allowed in the system -** -** \par Limits: -** This parameter can't be larger than 999.This parameter will dicate the size of -** The RTS Info Table. -*/ -#define SC_NUMBER_OF_RTS 64 - - -/** \sccfg Max buffer size for an ATS in uint16s -** -** \par Description: -** The max sizeof an ATS buffer in words (not bytes) -** \par Limits: -** This parameter can't be larger than an unsigned 16 bit -** integer (65535). -*/ -#define SC_ATS_BUFF_SIZE 8000 - - -/** \sccfg Max buffer size for an Append ATS in uint16s -** -** \par Description: -** The max sizeof an Append ATS buffer in words (not bytes) -** \par Limits: -** This parameter cannot be larger than SC_ATS_BUFF_SIZE. -*/ -#define SC_APPEND_BUFF_SIZE (SC_ATS_BUFF_SIZE / 2) - - -/** \sccfg Max buffer size for an RTS in uint16s -** -** \par Description: -** The max size of an RTS buffer in WORDS (not bytes) -** \par Limits: -** This parameter can't be larger than an unsigned 16 bit -** integer (65535). -*/ -#define SC_RTS_BUFF_SIZE 150 - - -/** \sccfg Max number of commands in each ATS -** -** \par Description: -** The maximum number of commands that are allowed in each ATS -** -** \par Limits: -** This parameter can't be larger than an unsigned 16 bit -** integer (65535). -*/ -#define SC_MAX_ATS_CMDS 1000 - - -/** \sccfg The last RTS that will be sent with an #SC_RTS_START_INF_EID event message -** -** \par Description: -** When all RTS's are started, the #SC_RTS_START_INF_EID event message is sent out. -** This parameter suppreses that message for all RTS's over this number -** -** \par Limits: -** This parameter needs to be less than or equal to SC_NUMBER_OF_RTS -*/ -#define SC_LAST_RTS_WITH_EVENTS 20 - - -/** \sccfg Minimum Packet Size -** -** \par Description: -** This parameter specifies the minumum size for an ATS or RTS command. -** \par Limits: -** This parameter must be greater than or equal to CFE_SB_CMD_HDR_SIZE and -** less than or equal to CFE_SB_MAX_SB_MSG_SIZE. -*/ -#define SC_PACKET_MIN_SIZE 8 - - -/** \sccfg Maximum Packet Size -** -** \par Description: -** This parameter specifies the maximum size for an ATS or RTS command. -** \par Limits: -** This parameter must be greater than or equal to SC_PACKET_MIN_SIZE and -** less than or equal to CFE_SB_MAX_SB_MSG_SIZE. -*/ -#define SC_PACKET_MAX_SIZE 250 - - -/** \sccfg Command Pipe Depth -** -** \par Description: -** Maximum number of messages that will be allowed in the -** SC command pipe at one time. Used during initialization -** in the call to #CFE_SB_CreatePipe -** -** \par Limits: -** This parameter must be greater than zero and less than or equal to -** CFE_SB_MAX_PIPE_DEPTH. -*/ -#define SC_PIPE_DEPTH 12 - - -/** \sccfg ATS Table Filenames -** -** \par Description: -** Filenames for the ATS tables loaded at startup are constructed by -** appending a one digit table identifier plus the extension ".tbl" -** to the base portion of the filename defined here. -** -** The default definitions will create ATS filenames as follows: -** "/cf/apps/sc_ats1.tbl or /cf/apps/sc_ats2.tbl" -** -** \par Limits: -** SC requires that this name be defined, but otherwise places no -** limits on the definition. If the named table file does not exist -** at run time, or the table fails validation, then the table load -** will fail. Refer to #OS_MAX_PATH_LEN for filename length limits. -*/ -#define SC_ATS_FILE_NAME "/cf/apps/sc_ats" - - -/** \sccfg Append ATS Table Filename -** -** \par Description: -** This name describes the default append ATS filename loaded at -** startup. Often the default Append ATS file contains only a -** single unused table entry, and is used only to initialize the -** table state as having data that may be patched. -** -** \par Limits: -** SC requires that this name be defined, but otherwise places no -** limits on the definition. If the named table file does not exist -** at run time, or the table fails validation, then the table load -** will fail. Refer to #OS_MAX_PATH_LEN for filename length limits. -*/ -#define SC_APPEND_FILE_NAME "/cf/apps/sc_append.tbl" - - -/** \sccfg RTS Table Filenames -** -** \par Description: -** Filenames for the RTS tables loaded at startup are constructed by -** appending a one digit table identifier plus the extension ".tbl" -** to the base portion of the filename defined here. -** -** The default definitions will create RTS filenames as follows: -** "/cf/apps/sc_rts001.tbl, /cf/apps/sc_rts002.tbl, etc" -** -** \par Limits: -** SC requires that this name be defined, but otherwise places no -** limits on the definition. If the named table file does not exist -** at run time, or the table fails validation, then the table load -** will fail. Refer to #OS_MAX_PATH_LEN for filename length limits. -*/ -#define SC_RTS_FILE_NAME "/cf/apps/sc_rts" - - -/** \sccfg ATS Table Object Names -** -** \par Description: -** Unique table object names are required for each table registered -** with cFE Table Services. ATS table object names are constructed -** by appending a one digit table identifier to the base portion of -** the object name defined here. -** -** The default definitions will create ATS object names as follows: -** "ATS_TBL1 or ATS_TBL2" -** -** \par Limits: -** SC requires that this name be defined, but otherwise places no -** limits on the definition. Refer to #CFE_TBL_MAX_NAME_LENGTH for -** specific information on limits related to table object names. -*/ -#define SC_ATS_TABLE_NAME "ATS_TBL" - - -/** \sccfg Append ATS Table Object Names -** -** \par Description: -** Unique table object names are required for each table registered -** with cFE Table Services. This is the table object name for the -** Append ATS table. -** -** \par Limits: -** SC requires that this name be defined, but otherwise places no -** limits on the definition. Refer to #CFE_TBL_MAX_NAME_LENGTH for -** specific information on limits related to table object names. -*/ -#define SC_APPEND_TABLE_NAME "APPEND_TBL" - - -/** \sccfg RTS Table Object Names -** -** \par Description: -** Unique table object names are required for each table registered -** with cFE Table Services. RTS table object names are constructed -** by appending a three digit table identifier to the base portion -** of the object name defined here. -** -** The default definitions will create RTS object names as follows: -** "RTS_TBL001, RTS_TBL002, etc" -** -** \par Limits: -** SC requires that this name be defined, but otherwise places no -** limits on the definition. Refer to #CFE_TBL_MAX_NAME_LENGTH for -** specific information on limits related to table object names. -*/ -#define SC_RTS_TABLE_NAME "RTS_TBL" - - -/** \sccfg Name of the RTS Infomation Table -** -** \par Description: -** Name of the RTS Information Table -** \par Limits: -** Must be less than #CFE_TBL_MAX_NAME_LENGTH -*/ -#define SC_RTSINFO_TABLE_NAME "RTSINF_TBL" - - -/** \sccfg Name of the RTP Control block table -** -** \par Description: -** Name of the RTP Control Block Table -** \par Limits: -** Must be less than #CFE_TBL_MAX_NAME_LENGTH -*/ -#define SC_RTP_CTRL_TABLE_NAME "RTPCTR_TBL" - - -/** \sccfg Name of the ATS Infomation Table -** -** \par Description: -** Name of the ATS Information Table -** \par Limits: -** Must be less than #CFE_TBL_MAX_NAME_LENGTH -*/ -#define SC_ATSINFO_TABLE_NAME "ATSINF_TBL" - - -/** \sccfg Name of the Append ATS Infomation Table -** -** \par Description: -** Name of the Append ATS Information Table -** \par Limits: -** Must be less than #CFE_TBL_MAX_NAME_LENGTH -*/ -#define SC_APPENDINFO_TABLE_NAME "APPINF_TBL" - - -/** \sccfg Name of the ATP Control block table -** -** \par Description: -** Name of the ATP Control Block Table -** \par Limits: -** Must be less than #CFE_TBL_MAX_NAME_LENGTH -*/ -#define SC_ATS_CTRL_TABLE_NAME "ATPCTR_TBL" - - - /** \sccfg Name Prefix of ATS Cmd Status Table -** -** \par Description: -** The prefix of the ATS Command Status table names. Note that actual table names -** will have a 1 digit number postfixed to it depending on the -** ATS number -** -** \par Limits: -** Total length must be less than #CFE_TBL_MAX_NAME_LENGTH -*/ -#define SC_ATS_CMD_STAT_TABLE_NAME "ATSCMD_TBL" - - -/** \sccfg Defnies default state of Continue-Ats-On-Checksum-Failure Flag -** -** \par Description: -** This parameter specifies the default state to continue an ATS -** when a command in the ATS fails checksum validation -** -** \par Limits: -** Must be TUE or FALSE -*/ -#define SC_CONT_ON_FAILURE_START TRUE - - -/** \sccfg Defines the TIME SC should use for its commands -** -** -** \par Description: -** This parameter defines what type of time SC should use for sending uot its commands -** -** \par Limits: -** Must be SC_USE_CFE_TIME, SC_USE_TAI, or SC_USE_UTC */ -#define SC_TIME_TO_USE SC_USE_CFE_TIME - - -/** \sccfg Define inclusion state for RTS group commands -** -** \par Description: -** This parameter specifies the inclusion state for the -** following RTS group commands: Start RTS group, Stop -** RTS group, Enable RTS group and Disable RTS group. -** RTS group commands affect a range of consecutive RTS -** numbers. When set to TRUE, this definition results -** in the inclusion of the group command handlers into -** the SC source code. -** -** \par Limits: -** Must be defined as TRUE or FALSE -*/ -#define SC_ENABLE_GROUP_COMMANDS TRUE - - -/** \sccfg Mission specific version number for SC application -** -** \par Description: -** An application version number consists of four parts: -** major version number, minor version number, revision -** number and mission specific revision number. The mission -** specific revision number is defined here and the other -** parts are defined in "sc_version.h". -** -** \par Limits: -** Must be defined as a numeric value that is greater than -** or equal to zero. -*/ -#define SC_MISSION_REV 0 - - -#endif /*SC_PLATFORM_CFG_H*/ - -/************************/ -/* End of File Comment */ -/************************/ - diff --git a/config/ocpoc/quadx/inc/sc_rts.h b/config/ocpoc/quadx/inc/sc_rts.h deleted file mode 100644 index 3069a5df7..000000000 --- a/config/ocpoc/quadx/inc/sc_rts.h +++ /dev/null @@ -1,323 +0,0 @@ -#ifndef SC_RTS_H -#define SC_RTS_H - -/** - ** \name RTS 'name for a mission - This can be shorted or expanded or changed for each mission*/ -/** \{ */ - -#define RTS_ID_AUTO_POWER_ON 1 /**< \brief Startup auto-exec after power-on reset */ -#define RTS_ID_AUTO_PROCESSOR 2 /**< \brief Startup auto-exec after processor reset */ - -#define RTS_ID_Spare3 3 -#define RTS_ID_Spare4 4 -#define RTS_ID_Spare5 5 -#define RTS_ID_Spare6 6 -#define RTS_ID_Spare7 7 -#define RTS_ID_Spare8 8 -#define RTS_ID_Spare9 9 - -#define RTS_ID_Spare10 10 -#define RTS_ID_Spare11 11 -#define RTS_ID_Spare12 12 -#define RTS_ID_Spare13 13 -#define RTS_ID_Spare14 14 -#define RTS_ID_Spare15 15 -#define RTS_ID_Spare16 16 -#define RTS_ID_Spare17 17 -#define RTS_ID_Spare18 18 -#define RTS_ID_Spare19 19 - -#define RTS_ID_Spare20 20 -#define RTS_ID_Spare21 21 -#define RTS_ID_Spare22 22 -#define RTS_ID_Spare23 23 -#define RTS_ID_Spare24 24 -#define RTS_ID_Spare25 25 -#define RTS_ID_Spare26 26 -#define RTS_ID_Spare27 27 -#define RTS_ID_Spare28 28 -#define RTS_ID_Spare29 29 - -#define RTS_ID_Spare30 30 -#define RTS_ID_Spare31 31 -#define RTS_ID_Spare32 32 -#define RTS_ID_Spare33 33 -#define RTS_ID_Spare34 34 -#define RTS_ID_Spare35 35 -#define RTS_ID_Spare36 36 -#define RTS_ID_Spare37 37 -#define RTS_ID_Spare38 38 -#define RTS_ID_Spare39 39 - -#define RTS_ID_Spare40 40 -#define RTS_ID_Spare41 41 -#define RTS_ID_Spare42 42 -#define RTS_ID_Spare43 43 -#define RTS_ID_Spare44 44 -#define RTS_ID_Spare45 45 -#define RTS_ID_Spare46 46 -#define RTS_ID_Spare47 47 -#define RTS_ID_Spare48 48 -#define RTS_ID_Spare49 49 - -#define RTS_ID_Spare50 50 -#define RTS_ID_Spare51 51 -#define RTS_ID_Spare52 52 -#define RTS_ID_Spare53 53 -#define RTS_ID_Spare54 54 -#define RTS_ID_Spare55 55 -#define RTS_ID_Spare56 56 -#define RTS_ID_Spare57 57 -#define RTS_ID_Spare58 58 -#define RTS_ID_Spare59 59 - -#define RTS_ID_Spare60 60 -#define RTS_ID_Spare61 61 -#define RTS_ID_Spare62 62 -#define RTS_ID_Spare63 63 -#define RTS_ID_Spare64 64 -#define RTS_ID_Spare65 65 -#define RTS_ID_Spare66 66 -#define RTS_ID_Spare67 67 -#define RTS_ID_Spare68 68 -#define RTS_ID_Spare69 69 - -#define RTS_ID_Spare70 70 -#define RTS_ID_Spare71 71 -#define RTS_ID_Spare72 72 -#define RTS_ID_Spare73 73 -#define RTS_ID_Spare74 74 -#define RTS_ID_Spare75 75 -#define RTS_ID_Spare76 76 -#define RTS_ID_Spare77 77 -#define RTS_ID_Spare78 78 -#define RTS_ID_Spare79 79 - -#define RTS_ID_Spare80 80 -#define RTS_ID_Spare81 81 -#define RTS_ID_Spare82 82 -#define RTS_ID_Spare83 83 -#define RTS_ID_Spare84 84 -#define RTS_ID_Spare85 85 -#define RTS_ID_Spare86 86 -#define RTS_ID_Spare87 87 -#define RTS_ID_Spare88 88 -#define RTS_ID_Spare89 89 - -#define RTS_ID_Spare90 90 -#define RTS_ID_Spare91 91 -#define RTS_ID_Spare92 92 -#define RTS_ID_Spare93 93 -#define RTS_ID_Spare94 94 -#define RTS_ID_Spare95 95 -#define RTS_ID_Spare96 96 -#define RTS_ID_Spare97 97 -#define RTS_ID_Spare98 98 -#define RTS_ID_Spare99 99 - -#define RTS_ID_Spare100 100 -#define RTS_ID_Spare101 101 -#define RTS_ID_Spare102 102 -#define RTS_ID_Spare103 103 -#define RTS_ID_Spare104 104 -#define RTS_ID_Spare105 105 -#define RTS_ID_Spare106 106 -#define RTS_ID_Spare107 107 -#define RTS_ID_Spare108 108 -#define RTS_ID_Spare109 109 - -#define RTS_ID_Spare110 110 -#define RTS_ID_Spare111 111 -#define RTS_ID_Spare112 112 -#define RTS_ID_Spare113 113 -#define RTS_ID_Spare114 114 -#define RTS_ID_Spare115 115 -#define RTS_ID_Spare116 116 -#define RTS_ID_Spare117 117 -#define RTS_ID_Spare118 118 -#define RTS_ID_Spare119 119 - -#define RTS_ID_Spare120 120 -#define RTS_ID_Spare121 121 -#define RTS_ID_Spare122 122 -#define RTS_ID_Spare123 123 -#define RTS_ID_Spare124 124 -#define RTS_ID_Spare125 125 -#define RTS_ID_Spare126 126 -#define RTS_ID_Spare127 127 -#define RTS_ID_Spare128 128 -#define RTS_ID_Spare129 129 - -#define RTS_ID_Spare130 130 -#define RTS_ID_Spare131 131 -#define RTS_ID_Spare132 132 -#define RTS_ID_Spare133 133 -#define RTS_ID_Spare134 134 -#define RTS_ID_Spare135 135 -#define RTS_ID_Spare136 136 -#define RTS_ID_Spare137 137 -#define RTS_ID_Spare138 138 -#define RTS_ID_Spare139 139 - -#define RTS_ID_Spare140 140 -#define RTS_ID_Spare141 141 -#define RTS_ID_Spare142 142 -#define RTS_ID_Spare143 143 -#define RTS_ID_Spare144 144 -#define RTS_ID_Spare145 145 -#define RTS_ID_Spare146 146 -#define RTS_ID_Spare147 147 -#define RTS_ID_Spare148 148 -#define RTS_ID_Spare149 149 - -#define RTS_ID_Spare150 150 -#define RTS_ID_Spare151 151 -#define RTS_ID_Spare152 152 -#define RTS_ID_Spare153 153 -#define RTS_ID_Spare154 154 -#define RTS_ID_Spare155 155 -#define RTS_ID_Spare156 156 -#define RTS_ID_Spare157 157 -#define RTS_ID_Spare158 158 -#define RTS_ID_Spare159 159 - -#define RTS_ID_Spare160 160 -#define RTS_ID_Spare161 161 -#define RTS_ID_Spare162 162 -#define RTS_ID_Spare163 163 -#define RTS_ID_Spare164 164 -#define RTS_ID_Spare165 165 -#define RTS_ID_Spare166 166 -#define RTS_ID_Spare167 167 -#define RTS_ID_Spare168 168 -#define RTS_ID_Spare169 169 - -#define RTS_ID_Spare170 170 -#define RTS_ID_Spare171 171 -#define RTS_ID_Spare172 172 -#define RTS_ID_Spare173 173 -#define RTS_ID_Spare174 174 -#define RTS_ID_Spare175 175 -#define RTS_ID_Spare176 176 -#define RTS_ID_Spare177 177 -#define RTS_ID_Spare178 178 -#define RTS_ID_Spare179 179 - -#define RTS_ID_Spare180 180 -#define RTS_ID_Spare181 181 -#define RTS_ID_Spare182 182 -#define RTS_ID_Spare183 183 -#define RTS_ID_Spare184 184 -#define RTS_ID_Spare185 185 -#define RTS_ID_Spare186 186 -#define RTS_ID_Spare187 187 -#define RTS_ID_Spare188 188 -#define RTS_ID_Spare189 189 - -#define RTS_ID_Spare190 190 -#define RTS_ID_Spare191 191 -#define RTS_ID_Spare192 192 -#define RTS_ID_Spare193 193 -#define RTS_ID_Spare194 194 -#define RTS_ID_Spare195 195 -#define RTS_ID_Spare196 196 -#define RTS_ID_Spare197 197 -#define RTS_ID_Spare198 198 -#define RTS_ID_Spare199 199 - -#define RTS_ID_Spare200 200 -#define RTS_ID_Spare201 201 -#define RTS_ID_Spare202 202 -#define RTS_ID_Spare203 203 -#define RTS_ID_Spare204 204 -#define RTS_ID_Spare205 205 -#define RTS_ID_Spare206 206 -#define RTS_ID_Spare207 207 -#define RTS_ID_Spare208 208 -#define RTS_ID_Spare209 209 - -#define RTS_ID_Spare210 210 -#define RTS_ID_Spare211 211 -#define RTS_ID_Spare212 212 -#define RTS_ID_Spare213 213 -#define RTS_ID_Spare214 214 -#define RTS_ID_Spare215 215 -#define RTS_ID_Spare216 216 -#define RTS_ID_Spare217 217 -#define RTS_ID_Spare218 218 -#define RTS_ID_Spare219 219 - -#define RTS_ID_Spare220 220 -#define RTS_ID_Spare221 221 -#define RTS_ID_Spare222 222 -#define RTS_ID_Spare223 223 -#define RTS_ID_Spare224 224 -#define RTS_ID_Spare225 225 -#define RTS_ID_Spare226 226 -#define RTS_ID_Spare227 227 -#define RTS_ID_Spare228 228 -#define RTS_ID_Spare229 229 - -#define RTS_ID_Spare230 230 -#define RTS_ID_Spare231 231 -#define RTS_ID_Spare232 232 -#define RTS_ID_Spare233 233 -#define RTS_ID_Spare234 234 -#define RTS_ID_Spare235 235 -#define RTS_ID_Spare236 236 -#define RTS_ID_Spare237 237 -#define RTS_ID_Spare238 238 -#define RTS_ID_Spare239 239 - -#define RTS_ID_Spare240 240 -#define RTS_ID_Spare241 241 -#define RTS_ID_Spare242 242 -#define RTS_ID_Spare243 243 -#define RTS_ID_Spare244 244 -#define RTS_ID_Spare245 245 -#define RTS_ID_Spare246 246 -#define RTS_ID_Spare247 247 -#define RTS_ID_Spare248 248 -#define RTS_ID_Spare249 249 - -#define RTS_ID_Spare250 250 -#define RTS_ID_Spare251 251 -#define RTS_ID_Spare252 252 -#define RTS_ID_Spare253 253 -#define RTS_ID_Spare254 254 -#define RTS_ID_Spare255 255 -#define RTS_ID_Spare256 256 -/** \} */ - - -#endif /* SC_RTS_H */ - -/************************/ -/* End of File Comment */ -/************************/ - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/config/ocpoc/quadx/inc/sch_grpids.h b/config/ocpoc/quadx/inc/sch_grpids.h deleted file mode 100644 index f2d6a64f4..000000000 --- a/config/ocpoc/quadx/inc/sch_grpids.h +++ /dev/null @@ -1,48 +0,0 @@ -#ifndef SCH_GRPIDS_H -#define SCH_GRPIDS_H - -/* -** Pragmas -*/ - -/* -** Include Files -*/ - -/* -** Local Defines -*/ -#define SCH_GROUP_NONE (0) -#define SCH_GROUP_CI (0x00000001) -#define SCH_GROUP_CF_SEND_HK (0x00000002) -#define SCH_GROUP_CF_WAKE_UP_REQ_CMD (0x00000010) -#define SCH_GROUP_CS_SEND_HK (0x00000020) -#define SCH_GROUP_MD_WAKEUP (0x00000040) -#define SCH_GROUP_DS_SEND_HK (0x00000080) -#define SCH_GROUP_SC_1HZ_WAKEUP (0x00000100) -#define SCH_GROUP_GOPRO_SEND_HK (0x00000200) -#define SCH_GROUP_FM_SEND_HK (0x00000400) -#define SCH_GROUP_HK_SEND_HK (0x00000800) -#define SCH_GROUP_HS_SEND_HK (0x00001000) -#define SCH_GROUP_LC_SEND_HK (0x00002000) -#define SCH_GROUP_MD_SEND_HK (0x00004000) -#define SCH_GROUP_MM_SEND_HK (0x00008000) -#define SCH_GROUP_SC_SEND_HK (0x00010000) -#define SCH_GROUP_SCH_SEND_HK (0x00020000) -#define SCH_GROUP_CFE_ES_SEND_HK (0x00040000) -#define SCH_GROUP_CFE_EVS_SEND_HK (0x00080000) -#define SCH_GROUP_CFE_SB_SEND_HK (0x00100000) -#define SCH_GROUP_CFE_TBL_SEND_HK (0x00200000) -#define SCH_GROUP_CFE_TIME_SEND_HK (0x00400000) -#define SCH_GROUP_HS_WAKEUP (0x00800000) -#define SCH_GROUP_TO (0x01000000) -#define SCH_GROUP_VC (0x02000000) -#define SCH_GROUP_EA (0x04000000) - -#endif /* SCH_GRPIDS_H */ - -/*======================================================================================= -** End of file sch_grpids.h -**=====================================================================================*/ - - diff --git a/config/ocpoc/quadx/inc/sch_msgids.h b/config/ocpoc/quadx/inc/sch_msgids.h deleted file mode 100644 index be337a78a..000000000 --- a/config/ocpoc/quadx/inc/sch_msgids.h +++ /dev/null @@ -1,10 +0,0 @@ -#ifndef SCH_MSGIDS_H -#define SCH_MSGIDS_H - -#include "msg_ids.h" - -#endif /* SCH_MSGIDS_H */ - -/************************/ -/* End of File Comment */ -/************************/ diff --git a/config/ocpoc/quadx/inc/sch_platform_cfg.h b/config/ocpoc/quadx/inc/sch_platform_cfg.h deleted file mode 100644 index 0c946a35c..000000000 --- a/config/ocpoc/quadx/inc/sch_platform_cfg.h +++ /dev/null @@ -1,294 +0,0 @@ -#ifndef SCH_PLATFORM_CFG_H -#define SCH_PLATFORM_CFG_H - -#include "osapi.h" - - -/************************************************************************* -** Macro definitions -**************************************************************************/ - -/** -** \schcfg Software Bus Command Pipe Depth -** -** \par Description: -** Dictates the number of messages to SCH that can be queued while awaiting -** processing by the SCH Application. -** -** \par Limits -** Must be greater than zero -*/ -#define SCH_PIPE_DEPTH 12 /**< \brief SCH Command Pipe Depth */ - -#define SCH_AD_PIPE_DEPTH 3 -#define SCH_AD_CHILD_TASK_PRIORITY 37 -#define SCH_AD_CHILD_TASK_FLAGS OS_ENABLE_CORE_0 - -/*#define SCH_RTM_SUPPORTED*/ - -/* -** Schedule table definitions... -*/ -/** -** \schcfg Minor Frame Frequency (in Hz) -** -** \par Description: -** Dictates the number of minor frame slots within each Major Frame. -** -** \par Limits -** Must be 2 or more and less than 65536 -*/ -#define SCH_TOTAL_SLOTS 250 /* SCH wake-up rate (Hz) */ - - -/** -** \schcfg Maximum number of Activities per Minor Frame -** -** \par Description: -** Dictates the number of activities that can be defined for each Minor Frame. -** -** \par Limits -** Must be at least one -*/ -#define SCH_ENTRIES_PER_SLOT 15 - - -/** -** \schcfg Maximum Number of Message Definitions in Message Definition Table -** -** \par Description: -** Dictates the number of messages that can be defined in Message Definition Table. -** -** \par Limits -** Must be at least one -*/ -#define SCH_MAX_MESSAGES 128 - -/** -** \schcfg Maximum Message ID allowed in Message Definition Table -** -** \par Description: -** Dictates the maximum message ID that can be used in the Message Definition Table. -** -** \par Limits -** Must be less than or equal to SCH_MDT_MAX_MSG_ID and greater than or equal to 0 -*/ -#define SCH_MDT_MIN_MSG_ID 0 - -/** -** \schcfg Minimum Message ID allowed in Message Definition Table -** -** \par Description: -** Dictates the minimum message ID that can be used in the Message Definition Table. -** -** \par Limits -** Must be less than or equal to #CFE_SB_HIGHEST_VALID_MSGID and greater than SCH_MDT_MIN_MSG_ID -*/ -#define SCH_MDT_MAX_MSG_ID CFE_SB_HIGHEST_VALID_MSGID - - -/** -** \schcfg Maximum Length, in Words, of a Message -** -** \par Description: -** Dictates the maximum number of words that can be assigned to a particular message -** in the Message Definition Table. -** -** \par Limits -** Must be at least large enough to hold the smallest possible message header -* ** (see #CFE_SB_TLM_HDR_SIZE and #CFE_SB_CMD_HDR_SIZE) -*/ -#define SCH_MAX_MSG_WORDS 64 /* max message length (in words) */ - - -/* -** Limits for how far we can get behind and how much we can do at once... -*/ -/** -** \schcfg Maximum Number of slots allowed for catch-up before skipping -** -** \par Description: -** Dictates the number of Minor Frames that will be processed in "Catch Up" -** mode before giving up and skipping ahead. -** -** \par Limits -** -*/ -#define SCH_MAX_LAG_COUNT (SCH_TOTAL_SLOTS / 2) - - -/** -** \schcfg Maximum Number of Slots to be processed when in "Catch Up" mode -** -** \par Description: -** Dictates the maximum number of slots SCH will process when trying to -** "Catch Up" to the correct slot for the current time. -** -** \par Limits -** Must be at least one -*/ -#define SCH_MAX_SLOTS_PER_WAKEUP 5 - -/* -** Conversion factor for how many microseconds in a wake-up period... -*/ -/** -** \schcfg Major Frame Period (in microseconds) -** -** \par Description: -** Dictates the number microseconds in a Major Frame. -** -** \par Limits -** Must be greater than zero -*/ -#define SCH_MICROS_PER_MAJOR_FRAME 1000000 - - -/** -** \schcfg Additional time allowed in Sync Slot to wait for Major Frame Sync (in microseconds) -** -** \par Description: -** Dictates the additional time allowed in the Syncronization Slot -** to allow the Major Frame Sync signal to be received and re-synchronize -** processing. -** -** \par Limits -** Must be less than the normal slot period -*/ -#define SCH_SYNC_SLOT_DRIFT_WINDOW 500 - - -/** -** \schcfg Time, in milliseconds, to wait for all applications to be started and ready to run -** -** \par Description: -** Dictates the timeout for the #CFE_ES_WaitForStartupSync call that SCH uses to wait -** for all of the Applications specified in the startup script to finish initialization. -** SCH will wait this amount of time before assuming all startup script applications have -** been started and will then begin nominal schedule processing. -** -** \par Limits -** None -*/ -#define SCH_STARTUP_SYNC_TIMEOUT 50000 - - -/** -** \schcfg Time, in microseconds, to wait for first Major Frame Sync to arrive -** -** \par Description: -** Dictates the time allowed for the first Major Frame sync signal to arrive -** before assuming it is not going to occur and switching to a freewheeling -** mode. -** -** \par Limits -** Must be greater than or equal to the Major Frame Period -*/ -#define SCH_STARTUP_PERIOD (5*SCH_MICROS_PER_MAJOR_FRAME) - - -/* -** Specifies the limit on the number of consecutive noisy Major Frame signals -** before we begin to ignore them. -*/ -/** -** \schcfg Maximum Number of consecutive Noisy Major Frame signals before they are ignored -** -** \par Description: -** Dictates the number of consecutive "Noisy" Major Frame Signals (i.e. - signals that -** occur outside the expected window of their occurence) until the Major Frame signal -** is automatically ignored and the Minor Frame Timer is used instead. -** -** \par Limits -** This value should never be set to less than two because a single "noisy" Major -** Frame signal is likely when turning on or switching the 1 Hz signal on the spacecraft. -*/ -#define SCH_MAX_NOISY_MAJORF 2 - - -/** -** \schcfg Scheduler API Library Usage Status -** -** \par Description: -** Determines whether or not the Scheduler application is using the API library allowing -** for external tasks to disable and enable schedule processing. Note that if the library -** is to be used it must be generated as a separate object, and loaded prior to the -** appplication. -** -** \par Limits -** This value must either be 0 when not using or including the library, or 1 if the library -** is going to be used. -*/ -#define SCH_LIB_PRESENCE 1 - - -/** -** \schcfg Scheduler API Library Initial Inhibition Count -** -** \par Description: -** Sets the number of times the scheduler must be enabled following library initialization. -** This allows the scheduler to come up either enabled (set to 0) or disabled (set to -** a value greater than or equal to 1) -** -** \par Limits -** This value must be an unsigned 32 bit integer. -*/ -#define SCH_LIB_DIS_CTR 0 - - -/** -** \schcfg Default SCH Schedule Definition Table Filename -** -** \par Description: -** The value of this constant defines the default filename of -** the SCH Schedule Definition Table -** -** \par Limits -** The length of each string, including the NULL terminator cannot exceed -** the #OS_MAX_PATH_LEN value. -*/ - -//#define SCH_SCHEDULE_FILENAME "/cf/apps/sch_def_schtbl.tbl" -#define SCH_SCHEDULE_FILENAME "/cf/apps/sch_def_schtbl.tbl" - - -/** -** \schcfg Default SCH Message Definition Table Filename -** -** \par Description: -** The value of this constant defines the default filename of the -** SCH Message Definition Table -** -** \par Limits -** The length of each string, including the NULL terminator cannot exceed -** the #OS_MAX_PATH_LEN value. -*/ - -#define SCH_MESSAGE_FILENAME "/cf/apps/sch_def_msgtbl.tbl" - - -/** \schcfg Mission specific version number for SCH application -** -** \par Description: -** An application version number consists of four parts: -** major version number, minor version number, revision -** number and mission specific revision number. The mission -** specific revision number is defined here and the other -** parts are defined in "sch_version.h". -** -** \par Limits: -** Must be defined as a numeric value that is greater than -** or equal to zero. -*/ - -#define SCH_MISSION_REV 0 - -#define SCH_DEADLINES_PER_SLOT 5 - - - -#endif /* SCH_PLATFORM_CFG_H */ - -/************************/ -/* End of File Comment */ -/************************/ diff --git a/config/ocpoc/quadx/inc/sens_platform_cfg.h b/config/ocpoc/quadx/inc/sens_platform_cfg.h deleted file mode 100644 index c8ac6f8ec..000000000 --- a/config/ocpoc/quadx/inc/sens_platform_cfg.h +++ /dev/null @@ -1,154 +0,0 @@ -#ifndef SENS_PLATFORM_CFG_H -#define SENS_PLATFORM_CFG_H - -#ifdef __cplusplus -extern "C" { -#endif - -/* -** SENS Platform Configuration Parameter Definitions -*/ - -/** \brief Mission specific version number for SENS application -** -** \par Description: -** An application version number consists of four parts: -** major version number, minor version number, revision -** number and mission specific revision number. The mission -** specific revision number is defined here and the other -** parts are defined in "amc_version.h". -** -** \par Limits: -** Must be defined as a numeric value that is greater than -** or equal to zero. -*/ -#define SENS_MISSION_REV (0) - -/** \brief Pipe depth for the Scheduler pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define SENS_SCH_PIPE_DEPTH (10) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define SENS_SCH_PIPE_NAME ("SENS_SCH_PIPE") - -/** \brief The SB pend behavior type for the Scheduler pipe. -** -** \par Limits: -** One of: CFE_SB_POLL, CFE_SB_PEND_FOREVER, or the -** number of milliseconds to wait for a new message (recommended). -** Note, using CFE_SB_PEND_FOREVER may cause an unresponsive -** application if no messages arrive on this pipe. -*/ -#define SENS_SCH_PIPE_PEND_TIME (2000) - -/** \brief The number of WAKEUP messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max limited to CFE_SB_MAX_PIPE_DEPTH-1. Note the -** SENS_WAKEUP_MID_MAX_MSG_COUNT and SENS_SEND_HK_MID_MAX_MSG_COUNT -** must be less than SENS_SCH_PIPE_DEPTH. -*/ -#define SENS_WAKEUP_MID_MAX_MSG_COUNT (1) - -/** \brief The number of SEND_HK messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. Note the -** SENS_WAKEUP_MID_MAX_MSG_COUNT and SENS_SEND_HK_MID_MAX_MSG_COUNT -** must be less than SENS_SCH_PIPE_DEPTH. -*/ -#define SENS_SEND_HK_MID_MAX_MSG_COUNT (1) - -/** \brief Pipe depth for the command pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define SENS_CMD_PIPE_DEPTH (4) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define SENS_CMD_PIPE_NAME ("SENS_CMD_PIPE") - -/** \brief Pipe depth for the data pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define SENS_DATA_PIPE_DEPTH (4) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define SENS_DATA_PIPE_NAME ("SENS_DATA_PIPE") - -/** \brief The config table default filename -** -** \par Limits: -** The length of each string, including the NULL terminator cannot exceed -** the #OS_MAX_PATH_LEN value. -*/ -#define SENS_CONFIG_TABLE_FILENAME ("/cf/apps/sens_config.tbl") - -/** \brief The timeout value, in milliseconds, to wait for ES application startup sync. -** -** \par Limits: -** This parameter must be at least 1000 (ms). -*/ -#define SENS_STARTUP_TIMEOUT_MSEC (1000) - -/** \brief The maximum time difference, in microseconds, between accelerometer -** measurements to be considered valid. -** -** \par Limits: -** This parameter must be greater than 0. -*/ -#define SENS_MAX_ACC_TIME_DELTA (25) - -/** \brief The maximum time difference, in microseconds, between gyro -** measurements to be considered valid. -** -** \par Limits: -** This parameter must be greater than 0. -*/ -#define SENS_MAX_GYRO_TIME_DELTA (25) - -/** \brief The maximum time difference, in microseconds, between magnetometer -** measurements to be considered valid. -** -** \par Limits: -** This parameter must be greater than 0. -*/ -#define SENS_MAX_MAG_TIME_DELTA (25) - -/** \brief The maximum time difference, in microseconds, between barometer -** measurements to be considered valid. -** -** \par Limits: -** This parameter must be greater than 0. -*/ -#define SENS_MAX_BARO_TIME_DELTA (100) - - -#ifdef __cplusplus -} -#endif - -#endif /* SENS_PLATFORM_CFG_H */ - -/************************/ -/* End of File Comment */ -/************************/ - diff --git a/config/ocpoc/quadx/inc/to_msgids.h b/config/ocpoc/quadx/inc/to_msgids.h deleted file mode 100644 index a00beac0e..000000000 --- a/config/ocpoc/quadx/inc/to_msgids.h +++ /dev/null @@ -1,10 +0,0 @@ -#ifndef TO_MSGIDS_H -#define TO_MSGIDS_H - -#include "msg_ids.h" - -#endif - -/************************/ -/* End of File Comment */ -/************************/ diff --git a/config/ocpoc/quadx/inc/to_platform_cfg.h b/config/ocpoc/quadx/inc/to_platform_cfg.h deleted file mode 100644 index c520a9242..000000000 --- a/config/ocpoc/quadx/inc/to_platform_cfg.h +++ /dev/null @@ -1,281 +0,0 @@ -#ifndef TO_PLATFORM_CFG_H -#define TO_PLATFORM_CFG_H - -#ifdef __cplusplus -extern "C" { -#endif - -#include "cfe_platform_cfg.h" - -/* -** Platform Configuration Parameter Definitions -*/ - - -/** \tocfg Child task flags -** -** \par Description: -** These are optional flags passed to the #CFE_ES_CreateChildTask -** function when creating the CFE child task. -** -*/ -#define TO_CUSTOM_CHILD_TASK_FLAGS (OS_ENABLE_CORE_0) - - -/** \tocfg Child task stack size -** -** \par Description: -** Child task stack size passed to the #CFE_ES_CreateChildTask -** function when creating the CFE child task. Stack size is in -** bytes. -** -*/ -#define TO_CUSTOM_TASK_STACK_SIZE (131072) - - -/** \tocfg Default telemetry destination IP address -** -** \par Description: -** Default IP address to send the telemetry stream to. This is default -** only and can be changed by command at runtime. -** -*/ -#define TO_UDP_CHANNEL_ADDRESS "192.168.2.215" - - -/** \tocfg Default telemetry destination UDP port -** -** \par Description: -** Default UDP port to send the telemetry stream to. This is default -** only and can be changed by command at runtime. -** -*/ -#define TO_UDP_CHANNEL_PORT (5011) - - -/** \tocfg Message Flow packet limit -** -** \par Description: -** This is the maximum number of message flow entries that can fit in -** a message flow diagnostic message. -** -*/ -#define TO_MSG_FLOW_PKT_LIMIT (200) - - -/** \tocfg Maximum message length -** -** \par Description: -** The maximum size that an output telemetry message can be. This is in -** bytes. If a message exceeds this size, it will be dropped by the -** classifier. -** -*/ -#define TO_MAX_MSG_LENGTH (32767) - -/** \tocfg The UDP channel's CF throttling semaphore name -** -** \par Limits: -** Two channels in CF must not have the same semaphore name. This must be unique -** compared to other channels' throttling semaphores. -*/ -#define TO_UDP_CF_THROTTLE_SEM_NAME "TO_CF_CH0_SEM" - - -/** \tocfg The UDP channel Name -*/ -#define TO_UDP_CHANNEL_NAME "UDP" - - - -/** \tocfg The UDP channel's default and maximum value for the CF - * throttling semaphore -** -** \par Limits: -** Must not be larger than the TO_DATA_PIPE_DEPTH -*/ -#define TO_UDP_CF_MAX_PDUS (4) - - -/** \tocfg Mission specific version number for TO application -** -** \par Description: -** An application version number consists of four parts: -** major version number, minor version number, revision -** number and mission specific revision number. The mission -** specific revision number is defined here and the other -** parts are defined in "to_version.h". -** -** \par Limits: -** Must be defined as a numeric value that is greater than -** or equal to zero. -*/ -#define TO_MISSION_REV (1) - -/** \tocfg Pipe depth for the Scheduler pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define TO_SCH_PIPE_DEPTH (2) - -/** \tocfg Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define TO_SCH_PIPE_NAME ("TO_SCH_PIPE") - -/** \tocfg The SB pend behavior type for the Scheduler pipe. -** -** \par Limits: -** One of: CFE_SB_POLL, CFE_SB_PEND_FOREVER, or the -** number of milliseconds to wait for a new message (recommended). -** Note, using CFE_SB_PEND_FOREVER may cause an unresponsive -** application if no messages arrive on this pipe. -*/ -#define TO_SCH_PIPE_PEND_TIME (2000) - -/** \tocfg The number of WAKEUP messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max limited to CFE_SB_MAX_PIPE_DEPTH-1. Note the -** TO_SCH_PIPE_WAKEUP_RESERVED and TO_SCH_PIPE_SEND_HK_RESERVED -** must be less than TO_SCH_PIPE_DEPTH. -*/ -#define TO_SCH_PIPE_WAKEUP_RESERVED (1) - -/** \tocfg The number of SEND_HK messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. Note the -** TO_SCH_PIPE_WAKEUP_RESERVED and TO_SCH_PIPE_SEND_HK_RESERVED -** must be less than TO_SCH_PIPE_DEPTH. -*/ -#define TO_SCH_PIPE_SEND_HK_RESERVED (1) - -/** \tocfg Pipe depth for the command pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define TO_CMD_PIPE_DEPTH (4) - -/** \tocfg Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define TO_CMD_PIPE_NAME ("TO_CMD_PIPE") - -/** \tocfg Pipe depth for the data pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define TO_DATA_PIPE_DEPTH (CFE_SB_MAX_PIPE_DEPTH) - -/** \tocfg The config table default filename -** -** \par Limits: -** The length of each string, including the NULL terminator cannot exceed -** the #OS_MAX_PATH_LEN value. -*/ -#define TO_UDP_CONFIG_TABLE_FILENAME ("/cf/apps/to_udp_cfg.tbl") - - -#define TO_MAX_MEMPOOL_BLK_SIZES (8) - -/** -** \cfeescfg Define TO Memory Pool Block Sizes -** -** \par Description: -** TO Memory Pool Block Sizes -** -** \par Limits -** These sizes MUST be increasing and MUST be an integral multiple of 4. -** The number of block sizes defined cannot exceed -** #CFE_ES_MAX_MEMPOOL_BLOCK_SIZES -*/ -#define TO_MEM_BLOCK_SIZE_01 32 -#define TO_MEM_BLOCK_SIZE_02 64 -#define TO_MEM_BLOCK_SIZE_03 128 -#define TO_MEM_BLOCK_SIZE_04 256 -#define TO_MEM_BLOCK_SIZE_05 512 -#define TO_MEM_BLOCK_SIZE_06 2048 -#define TO_MEM_BLOCK_SIZE_07 8192 -#define TO_MAX_BLOCK_SIZE (TO_MEM_BLOCK_SIZE_07 + TO_MEM_BLOCK_SIZE_07) - -/** - * \tocfg Defines the table identification name used for table registration - * of the configuration table. - */ -#define TO_UDP_CONFIG_TABLENAME "UDP_CFG" - -/** - * \tocfg Defines the table identification name used for table registration - * of the dump table. - */ -#define TO_UDP_DUMP_TABLENAME "UDP_DMP" - -/** \tocfg The timeout value, in milliseconds, to wait for ES application startup sync. -** -** \par Limits: -** This parameter must be at least 1000 (ms). -*/ -#define TO_STARTUP_TIMEOUT_MSEC (1000) - -/** \tocfg Maximum number of messages to classify per processing frame. -*/ -#define TO_MAX_MSGS_OUT_PER_FRAME (100) - -/** \tocfg Maximum number of messages to classify per processing frame. -*/ - -/** \tocfg Maximum number configurable channels. - * -** \par Description: This is normally set to 1. -*/ -#define TO_MAX_CHANNELS (1) - -/** \tocfg Channel output queue depth. - * -** \par Description: This defines how many messages can be queued into the -** channel output queue by the scheduler. -*/ -#define TO_OUTPUT_QUEUE_DEPTH (20) - -/** \tocfg Development UDP channel task priority. - * -** \par Description: This defines the priority of the development UDP -** child task. -*/ -#define TO_UDP_CHANNEL_TASK_PRIORITY (119) - -/** -** \tocfg Number of bytes in the Message Memory Pool -** -** \par Description: -** The message memory pool contains the memory needed for the queued messages packets. -** The queued messages are dynamically allocated from this pool when the -** messages are received and queued, and deallocated when messages are transmitted -** or a new table is loaded. -** -** \par Limits -** The Telemetry Output app does not place a limit on this parameter, but there is -** an overhead cost in the memory pool. The value must be larger than what is -** needed. -*/ -#define TO_NUM_BYTES_IN_MEM_POOL (200 * TO_MAX_BLOCK_SIZE) - - -#ifdef __cplusplus -} -#endif - -#endif /* TO_PLATFORM_CFG_H */ - -/************************/ -/* End of File Comment */ -/************************/ - diff --git a/config/ocpoc/quadx/inc/ulr_platform_cfg.h b/config/ocpoc/quadx/inc/ulr_platform_cfg.h deleted file mode 100644 index 16e60d3b0..000000000 --- a/config/ocpoc/quadx/inc/ulr_platform_cfg.h +++ /dev/null @@ -1,126 +0,0 @@ -#ifndef ULR_PLATFORM_CFG_H -#define ULR_PLATFORM_CFG_H - -#ifdef __cplusplus -extern "C" { -#endif - -#define ULR_LISTENER_TASK_FLAGS OS_ENABLE_CORE_0 - -/* -** ULR Platform Configuration Parameter Definitions -*/ - -/** \brief Mission specific version number for ULR application -** -** \par Description: -** An application version number consists of four parts: -** major version number, minor version number, revision -** number and mission specific revision number. The mission -** specific revision number is defined here and the other -** parts are defined in "amc_version.h". -** -** \par Limits: -** Must be defined as a numeric value that is greater than -** or equal to zero. -*/ -#define ULR_MISSION_REV (0) - -/** \brief Pipe depth for the Scheduler pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define ULR_SCH_PIPE_DEPTH (2) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define ULR_SCH_PIPE_NAME ("ULR_SCH_PIPE") - -/** \brief The SB pend behavior type for the Scheduler pipe. -** -** \par Limits: -** One of: CFE_SB_POLL, CFE_SB_PEND_FOREVER, or the -** number of milliseconds to wait for a new message (recommended). -** Note, using CFE_SB_PEND_FOREVER may cause an unresponsive -** application if no messages arrive on this pipe. -*/ -#define ULR_SCH_PIPE_PEND_TIME (2000) - -/** \brief The number of WAKEUP messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max limited to CFE_SB_MAX_PIPE_DEPTH-1. Note the -** ULR_MEASURE_MID_MAX_MSG_COUNT and ULR_SEND_HK_MID_MAX_MSG_COUNT -** must be less than ULR_SCH_PIPE_DEPTH. -*/ -#define ULR_MEASURE_MID_MAX_MSG_COUNT (1) - -/** \brief The number of SEND_HK messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. Note the -** ULR_MEASURE_MID_MAX_MSG_COUNT and ULR_SEND_HK_MID_MAX_MSG_COUNT -** must be less than ULR_SCH_PIPE_DEPTH. -*/ -#define ULR_SEND_HK_MID_MAX_MSG_COUNT (1) - -/** \brief Pipe depth for the command pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define ULR_CMD_PIPE_DEPTH (4) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define ULR_CMD_PIPE_NAME ("ULR_CMD_PIPE") - -/** \brief Pipe depth for the data pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define ULR_DATA_PIPE_DEPTH (4) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define ULR_DATA_PIPE_NAME ("ULR_DATA_PIPE") - -/** \brief The timeout value, in milliseconds, to wait for ES application startup sync. -** -** \par Limits: -** This parameter must be at least 1000 (ms). -*/ -#define ULR_STARTUP_TIMEOUT_MSEC (1000) - -/* TODO: Add Doxygen */ -#define ULR_CUSTOM_PORT_PATH "/dev/ttyS6" -#define ULR_SENS_VARIANCE (0.045f * 0.045f) - - -#define ULR_LISTENER_TASK_PRIORITY (64) -#define ULR_LISTENER_TASK_STACK_SIZE (16000) -#define ULR_LISTENER_TASK_NAME "ULR_LISTENER" -#define ULR_MUTEX_NAME "ULR_MUTEX" - - -#ifdef __cplusplus -} -#endif - -#endif /* ULR_PLATFORM_CFG_H */ - -/************************/ -/* End of File Comment */ -/************************/ - diff --git a/config/ocpoc/quadx/inc/vc_platform_cfg.h b/config/ocpoc/quadx/inc/vc_platform_cfg.h deleted file mode 100644 index e975da22d..000000000 --- a/config/ocpoc/quadx/inc/vc_platform_cfg.h +++ /dev/null @@ -1,305 +0,0 @@ -#ifndef VC_PLATFORM_CFG_H -#define VC_PLATFORM_CFG_H - -#ifdef __cplusplus -extern "C" { -#endif - -#include - -#define VC_STREAMING_TASK_FLAGS OS_ENABLE_CORE_0 - -/* -** VC Platform Configuration Parameter Definitions -*/ - -/** \brief Mission specific version number for VC application -** -** \par Description: -** An application version number consists of four parts: -** major version number, minor version number, revision -** number and mission specific revision number. The mission -** specific revision number is defined here and the other -** parts are defined in "vc_version.h". -** -** \par Limits: -** Must be defined as a numeric value that is greater than -** or equal to zero. -*/ -#define VC_MISSION_REV (0) - -/** \brief Pipe depth for the Scheduler pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define VC_SCH_PIPE_DEPTH (2) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define VC_SCH_PIPE_NAME ("VC_SCH_PIPE") - -/** \brief The SB pend behavior type for the Scheduler pipe. -** -** \par Limits: -** One of: CFE_SB_POLL, CFE_SB_PEND_FOREVER, or the -** number of milliseconds to wait for a new message (recommended). -** Note, using CFE_SB_PEND_FOREVER may cause an unresponsive -** application if no messages arrive on this pipe. -*/ -#define VC_SCH_PIPE_PEND_TIME (2000) - -/** \brief The number of WAKEUP messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max limited to CFE_SB_MAX_PIPE_DEPTH-1. Note the -** VC_SCH_PIPE_WAKEUP_RESERVED and VC_SCH_PIPE_SEND_HK_RESERVED -** must be less than VC_SCH_PIPE_DEPTH. -*/ -#define VC_SCH_PIPE_WAKEUP_RESERVED (1) - -/** \brief The number of SEND_HK messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. Note the -** VC_SCH_PIPE_WAKEUP_RESERVED and VC_SCH_PIPE_SEND_HK_RESERVED -** must be less than VC_SCH_PIPE_DEPTH. -*/ -#define VC_SCH_PIPE_SEND_HK_RESERVED (1) - -/** \brief Pipe depth for the command pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define VC_CMD_PIPE_DEPTH (4) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define VC_CMD_PIPE_NAME ("VC_CMD_PIPE") - -/** \brief The timeout value, in milliseconds, to wait for ES application startup sync. -** -** \par Limits: -** This parameter must be at least 1000 (ms). -*/ -#define VC_STARTUP_TIMEOUT_MSEC (1000) - -/** \brief The max address length -** -** \par Limits: -** This parameter must be at least 16 for IPV4. -*/ -#define VC_ADDRESS_LENGTH INET_ADDRSTRLEN - -/* Custom Settings */ - - -/** \brief Max channels allowed -** -** \par Limits: -** Minimum of 1. -*/ -#define VC_MAX_OUTPUT_CHANNELS (5) - -/** \brief Max device path length -** -** \par Limits: -** OS_MAX_LOCAL_PATH_LEN -*/ -#define VC_MAX_DEVICE_PATH OS_MAX_LOCAL_PATH_LEN - -/** \brief Max number of camera devices -** -** \par Limits: -** Minimum of 1. -*/ -#define VC_MAX_DEVICES (1) - -/** \brief Max buffer size -** -** \par Limits: -** Minimum based on configured device driver requirements. -*/ -//#define VC_MAX_BUFFER_SIZE (115200) -#define VC_MAX_BUFFER_SIZE (1228800) - -/** \brief Max packet size -** -** \par Limits: -** UDP max payload size. -*/ -#define VC_MAX_PACKET_SIZE (65527) - -/** \brief Retry attemps for interrupted calls -** -** \par Limits: -** None. -*/ -#define VC_MAX_RETRY_ATTEMPTS (2) - -/** \brief Sleep time micro seconds for interrupted calls -** -** \par Limits: -** None. -*/ -#define VC_MAX_RETRY_SLEEP_USEC (10) - -/** \brief Streaming task priority -** -** \par Limits: -** 0 to MAX_PRIORITY (usually 255) -*/ -#define VC_STREAMING_TASK_PRIORITY (91) - -/** \brief Streaming task name -** -** \par Limits: -** OS_MAX_API_NAME -*/ -#define VC_STREAMING_TASK_NAME "VC_STREAM" - -/* Camera settings */ - -/** \brief Video resolution width -** -** \par Limits: -** Specific to device -*/ -#define VC_FRAME_WIDTH (320) - -/** \brief Video resolution height -** -** \par Limits: -** Specific to device -*/ -#define VC_FRAME_HEIGHT (240) - -/** \brief Video frame rate -** -** \par Limits: -** Specific to device -*/ -#define VC_FRAMERATE (30) - -/** \brief Video camera device path -** -** \par Limits: -** OS_MAX_LOCAL_PATH_LEN -*/ -#define VC_DEVICE_PATH "/dev/video0" - - -/* Ground system settings */ - -/** \brief Ground system ip address -** -** \par Limits: -** INET_ADDRSTRLEN -*/ -#define VC_DESTINATION_IP "192.168.1.3" - -/** \brief Ground system port -** -** \par Limits: -** uint16 decimal -*/ -#define VC_DESTINATION_PORT (3001) - -/** \brief Source system ip address -** -** \par Limits: -** INET_ADDRSTRLEN -*/ -#define VC_SOURCE_IP "0" - -/** \brief Source system port -** -** \par Limits: -** uint16 decimal -*/ -#define VC_SOURCE_PORT (0) - -/* V4L settings */ - -/** \brief V4L streaming io method -** -** \par Limits: -** V4L specific. -*/ -#define VC_V4L_IO_METHOD V4L2_MEMORY_USERPTR - -/** \brief V4L buffer type -** -** \par Limits: -** V4L specific. -*/ -#define VC_V4L_BUFFER_TYPE V4L2_BUF_TYPE_VIDEO_CAPTURE - -/** \brief V4L video format -** -** \par Limits: -** V4L specific. -*/ -#define VC_V4L_VIDEO_FORMAT V4L2_PIX_FMT_MJPEG - -/** \brief V4L field order -** -** \par Limits: -** V4L specific. -*/ -#define VC_V4L_VIDEO_FIELD_ORDER V4L2_FIELD_NONE - -/** \brief V4L buffers to request -** -** \par Limits: -** V4L specific. -*/ -#define VC_V4L_BUFFER_REQUEST (4) - -/** \brief V4L Memory Type -** -** \par Limits: -** V4L specific. -*/ -#define VC_V4L_MEMORY_TYPE V4L2_MEMORY_USERPTR - -/* Timeout settings */ - -/** \brief Wait time for camera data in seconds -** -** \par Limits: -** None. -*/ -#define VC_BUFFER_FILL_TIMEOUT_SEC (2) - -/** \brief Wait time for camera data in microseconds -** -** \par Limits: -** None. -*/ -#define VC_BUFFER_FILL_TIMEOUT_USEC (0) - -/** \brief Max timeouts until exiting streaming task -** -** \par Limits: -** None. -*/ -#define VC_BUFFER_TIMEOUTS_ALLOWED (2) - - -#ifdef __cplusplus -} -#endif - -#endif /* VC_PLATFORM_CFG_H */ - -/************************/ -/* End of File Comment */ -/************************/ diff --git a/config/ocpoc/quadx/inc/vm_platform_cfg.h b/config/ocpoc/quadx/inc/vm_platform_cfg.h deleted file mode 100644 index af0ac002b..000000000 --- a/config/ocpoc/quadx/inc/vm_platform_cfg.h +++ /dev/null @@ -1,151 +0,0 @@ -#ifndef VM_PLATFORM_CFG_H -#define VM_PLATFORM_CFG_H - -#ifdef __cplusplus -extern "C" { -#endif - -/* -** VM Platform Configuration Parameter Definitions -*/ - -/** \brief Mission specific version number for VM application -** -** \par Description: -** An application version number consists of four parts: -** major version number, minor version number, revision -** number and mission specific revision number. The mission -** specific revision number is defined here and the other -** parts are defined in "amc_version.h". -** -** \par Limits: -** Must be defined as a numeric value that is greater than -** or equal to zero. -*/ -#define VM_MISSION_REV (0) - -/** \brief Pipe depth for the Scheduler pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define VM_SCH_PIPE_DEPTH (30) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define VM_SCH_PIPE_NAME ("VM_SCH_PIPE") - -/** \brief The SB pend behavior type for the Scheduler pipe. -** -** \par Limits: -** One of: CFE_SB_POLL, CFE_SB_PEND_FOREVER, or the -** number of milliseconds to wait for a new message (recommended). -** Note, using CFE_SB_PEND_FOREVER may cause an unresponsive -** application if no messages arrive on this pipe. -*/ -#define VM_SCH_PIPE_PEND_TIME (2000) - -/** \brief The number of WAKEUP messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max limited to CFE_SB_MAX_PIPE_DEPTH-1. Note the -** VM_WAKEUP_MID_MAX_MSG_COUNT and VM_SEND_HK_MID_MAX_MSG_COUNT -** must be less than VM_SCH_PIPE_DEPTH. -*/ -#define VM_WAKEUP_MID_MAX_MSG_COUNT (1) - -/** \brief The number of SEND_HK messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. Note the -** VM_WAKEUP_MID_MAX_MSG_COUNT and VM_SEND_HK_MID_MAX_MSG_COUNT -** must be less than VM_SCH_PIPE_DEPTH. -*/ -#define VM_SEND_HK_MID_MAX_MSG_COUNT (1) - -/** \brief Pipe depth for the command pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define VM_CMD_PIPE_DEPTH (4) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define VM_CMD_PIPE_NAME ("VM_CMD_PIPE") - -/** \brief Pipe depth for the data pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define VM_DATA_PIPE_DEPTH (18) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define VM_DATA_PIPE_NAME ("VM_DATA_PIPE") - -/** \brief Pipe depth for the parameters pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define VM_PARAM_PIPE_DEPTH (4) - -/** \brief Pipe name for the parameters pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define VM_PARAM_PIPE_NAME ("VM_PARAM_PIPE") - -/** \brief The config table default filename -** -** \par Limits: -** The length of each string, including the NULL terminator cannot exceed -** the #OS_MAX_PATH_LEN value. -*/ -#define VM_CONFIG_TABLE_FILENAME ("/cf/apps/vm_config.tbl") - -/** \brief The timeout value, in milliseconds, to wait for ES application startup sync. -** -** \par Limits: -** This parameter must be at least 1000 (ms). -*/ -#define VM_STARTUP_TIMEOUT_MSEC (1000) - -/** \brief The timeout value, in microseconds, to wait until VM starts checking battery -** voltage. -** -** \par Limits: -** None -*/ -#define VM_BATTERY_VOLTAGE_CHECK_DELAY (6000000) - -/** \brief The minimum battery voltage to be considered valid. -** -** \par Limits: -** Must be greater than or equal to FLT_EPSILON. -*/ -#define VM_MINIMUM_VALID_BATTERY_VOLTAGE (2.0f) - - -#ifdef __cplusplus -} -#endif - -#endif /* VM_PLATFORM_CFG_H */ - -/************************/ -/* End of File Comment */ -/************************/ - diff --git a/config/ocpoc/quadx/target/CMakeLists.txt b/config/ocpoc/quadx/target/CMakeLists.txt index 935c6d9ef..99e7301ed 100644 --- a/config/ocpoc/quadx/target/CMakeLists.txt +++ b/config/ocpoc/quadx/target/CMakeLists.txt @@ -37,21 +37,21 @@ buildliner_add_app( buildliner_add_app( prmlib DEFINITION ${PROJECT_SOURCE_DIR}/apps/prmlib/fsw/for_build - CONFIG ${CMAKE_CURRENT_SOURCE_DIR}/apps/prm + CONFIG ${PROJECT_SOURCE_DIR}/config/shared/apps/prm ) buildliner_add_app( sch DEFINITION ${PROJECT_SOURCE_DIR}/apps/sch/fsw/for_build - CONFIG ${CMAKE_CURRENT_SOURCE_DIR}/apps/sch + CONFIG ${CMAKE_CURRENT_SOURCE_DIR}/../../shared/apps/sch CONFIG_SOURCES - ${CMAKE_CURRENT_SOURCE_DIR}/apps/sch/sch_custom_rt.c + ${CMAKE_CURRENT_SOURCE_DIR}/../../shared/apps/sch/sch_custom_rt.c ) buildliner_add_app( cf DEFINITION ${PROJECT_SOURCE_DIR}/apps/cf/fsw/for_build - CONFIG ${CMAKE_CURRENT_SOURCE_DIR}/apps/cf + CONFIG ${PROJECT_SOURCE_DIR}/config/shared/apps/cf ) buildliner_add_app( @@ -63,7 +63,7 @@ buildliner_add_app( buildliner_add_app( ds DEFINITION ${PROJECT_SOURCE_DIR}/apps/ds/fsw/for_build - CONFIG ${CMAKE_CURRENT_SOURCE_DIR}/apps/ds + CONFIG ${PROJECT_SOURCE_DIR}/config/shared/apps/ds ) buildliner_add_app( @@ -114,36 +114,26 @@ buildliner_add_app( buildliner_add_app( ci DEFINITION ${PROJECT_SOURCE_DIR}/apps/ci/fsw/for_build - CONFIG ${CMAKE_CURRENT_SOURCE_DIR}/apps/ci + CONFIG ${PROJECT_SOURCE_DIR}/config/shared/apps/ci CONFIG_SOURCES - ${CMAKE_CURRENT_SOURCE_DIR}/apps/ci/ci_custom.c + ${PROJECT_SOURCE_DIR}/config/shared/apps/ci/ci_custom.c ) buildliner_add_app( to DEFINITION ${PROJECT_SOURCE_DIR}/apps/to/fsw/for_build - CONFIG ${CMAKE_CURRENT_SOURCE_DIR}/apps/to + CONFIG ${PROJECT_SOURCE_DIR}/config/shared/apps/to CONFIG_SOURCES - ${CMAKE_CURRENT_SOURCE_DIR}/apps/to/tables/to_backup_cfg.c - ${CMAKE_CURRENT_SOURCE_DIR}/apps/to/to_custom.c + ${PROJECT_SOURCE_DIR}/config/shared/apps/to/tables/to_backup_cfg.c + ${PROJECT_SOURCE_DIR}/config/shared/apps/to/to_custom.c ) buildliner_add_app( ea DEFINITION ${PROJECT_SOURCE_DIR}/apps/ea/fsw/for_build - CONFIG ${CMAKE_CURRENT_SOURCE_DIR}/apps/ea + CONFIG ${PROJECT_SOURCE_DIR}/config/shared/apps/ea CONFIG_SOURCES - ${CMAKE_CURRENT_SOURCE_DIR}/apps/ea/src/ea_custom.c -) - -buildliner_add_app( - vc - DEFINITION ${PROJECT_SOURCE_DIR}/apps/vc/fsw/for_build - CONFIG ${CMAKE_CURRENT_SOURCE_DIR}/apps/vc - CONFIG_SOURCES - ${CMAKE_CURRENT_SOURCE_DIR}/apps/vc/src/vc_dev_io_v4l/vc_dev_io_v4l.c - ${CMAKE_CURRENT_SOURCE_DIR}/apps/vc/src/vc_transmit_udp/vc_transmit_udp.c - ${CMAKE_CURRENT_SOURCE_DIR}/apps/vc/src/vc_custom.c + ${PROJECT_SOURCE_DIR}/config/shared/apps/ea/src/ea_custom.c ) buildliner_add_app( @@ -163,45 +153,45 @@ buildliner_add_app( buildliner_add_app( ulr DEFINITION ${PROJECT_SOURCE_DIR}/apps/ulr/fsw/for_build - CONFIG ${CMAKE_CURRENT_SOURCE_DIR}/apps/ulr + CONFIG ${CMAKE_CURRENT_SOURCE_DIR}/../../shared/apps/ulr CONFIG_SOURCES - ${CMAKE_CURRENT_SOURCE_DIR}/apps/ulr/ulr_custom.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/../../shared/apps/ulr/ulr_custom.cpp ) buildliner_add_app( rgbled DEFINITION ${PROJECT_SOURCE_DIR}/apps/rgbled/fsw/for_build - CONFIG ${CMAKE_CURRENT_SOURCE_DIR}/apps/rgbled + CONFIG ${CMAKE_CURRENT_SOURCE_DIR}/../../shared/apps/rgbled CONFIG_SOURCES - ${CMAKE_CURRENT_SOURCE_DIR}/apps/rgbled/src/rgbled_custom.c + ${CMAKE_CURRENT_SOURCE_DIR}/../../shared/apps/rgbled/src/rgbled_custom.c ) buildliner_add_app( ms5611 DEFINITION ${PROJECT_SOURCE_DIR}/apps/ms5611/fsw/for_build - CONFIG ${CMAKE_CURRENT_SOURCE_DIR}/apps/ms5611 + CONFIG ${PROJECT_SOURCE_DIR}/config/shared/apps/ms5611 CONFIG_SOURCES - ${CMAKE_CURRENT_SOURCE_DIR}/apps/ms5611/src/ms5611_custom.c + ${PROJECT_SOURCE_DIR}/config/shared/apps/ms5611/src/ms5611_custom.c ) buildliner_add_app( gps DEFINITION ${PROJECT_SOURCE_DIR}/apps/gps/fsw/for_build - CONFIG ${CMAKE_CURRENT_SOURCE_DIR}/apps/gps + CONFIG ${CMAKE_CURRENT_SOURCE_DIR}/../../shared/apps/gps CONFIG_SOURCES - ${CMAKE_CURRENT_SOURCE_DIR}/apps/gps/src/gps_interface_uart/gps_serial.c - ${CMAKE_CURRENT_SOURCE_DIR}/apps/gps/src/gps_parser_ubx/gps_parser_ubx_common.c - ${CMAKE_CURRENT_SOURCE_DIR}/apps/gps/src/gps_parser_ubx/gps_parser_ubx_nav.c - ${CMAKE_CURRENT_SOURCE_DIR}/apps/gps/src/gps_parser_ubx/gps_parser_ubx_cfg.c - ${CMAKE_CURRENT_SOURCE_DIR}/apps/gps/src/gps_parser_ubx/gps_parser_ubx_ack.c - ${CMAKE_CURRENT_SOURCE_DIR}/apps/gps/src/gps_parser_ubx/gps_parser_ubx_mon.c - ${CMAKE_CURRENT_SOURCE_DIR}/apps/gps/src/gps_custom.c + ${CMAKE_CURRENT_SOURCE_DIR}/../../shared/apps/gps/src/gps_interface_uart/gps_serial.c + ${CMAKE_CURRENT_SOURCE_DIR}/../../shared/apps/gps/src/gps_parser_ubx/gps_parser_ubx_common.c + ${CMAKE_CURRENT_SOURCE_DIR}/../../shared/apps/gps/src/gps_parser_ubx/gps_parser_ubx_nav.c + ${CMAKE_CURRENT_SOURCE_DIR}/../../shared/apps/gps/src/gps_parser_ubx/gps_parser_ubx_cfg.c + ${CMAKE_CURRENT_SOURCE_DIR}/../../shared/apps/gps/src/gps_parser_ubx/gps_parser_ubx_ack.c + ${CMAKE_CURRENT_SOURCE_DIR}/../../shared/apps/gps/src/gps_parser_ubx/gps_parser_ubx_mon.c + ${CMAKE_CURRENT_SOURCE_DIR}/../../shared/apps/gps/src/gps_custom.c ) buildliner_add_app( sens DEFINITION ${PROJECT_SOURCE_DIR}/apps/sens/fsw/for_build - CONFIG ${CMAKE_CURRENT_SOURCE_DIR}/apps/sens + CONFIG ${CMAKE_CURRENT_SOURCE_DIR}/../../shared/apps/sens ) buildliner_add_app( @@ -213,27 +203,27 @@ buildliner_add_app( buildliner_add_app( vm DEFINITION ${PROJECT_SOURCE_DIR}/apps/vm/fsw/for_build - CONFIG ${CMAKE_CURRENT_SOURCE_DIR}/apps/vm + CONFIG ${CMAKE_CURRENT_SOURCE_DIR}/../../shared/apps/vm ) buildliner_add_app( ld DEFINITION ${PROJECT_SOURCE_DIR}/apps/ld/fsw/for_build - CONFIG ${CMAKE_CURRENT_SOURCE_DIR}/apps/ld + CONFIG ${CMAKE_CURRENT_SOURCE_DIR}/../../shared/apps/ld ) buildliner_add_app( nav DEFINITION ${PROJECT_SOURCE_DIR}/apps/nav/fsw/for_build - CONFIG ${CMAKE_CURRENT_SOURCE_DIR}/apps/nav + CONFIG ${CMAKE_CURRENT_SOURCE_DIR}/../../shared/apps/nav ) buildliner_add_app( rcin DEFINITION ${PROJECT_SOURCE_DIR}/apps/rcin/fsw/for_build - CONFIG ${CMAKE_CURRENT_SOURCE_DIR}/apps/rcin + CONFIG ${CMAKE_CURRENT_SOURCE_DIR}/../../shared/apps/rcin CONFIG_SOURCES - ${CMAKE_CURRENT_SOURCE_DIR}/apps/rcin/src/rcin_custom.c + ${CMAKE_CURRENT_SOURCE_DIR}/../../shared/apps/rcin/src/rcin_custom.c ) buildliner_add_app( @@ -247,17 +237,17 @@ buildliner_add_app( buildliner_add_app( mpu9250 DEFINITION ${PROJECT_SOURCE_DIR}/apps/mpu9250/fsw/for_build - CONFIG ${CMAKE_CURRENT_SOURCE_DIR}/apps/mpu9250 + CONFIG ${PROJECT_SOURCE_DIR}/config/shared/apps/mpu9250 CONFIG_SOURCES - ${CMAKE_CURRENT_SOURCE_DIR}/apps/mpu9250/src/mpu9250_custom.c + ${PROJECT_SOURCE_DIR}/config/shared/apps/mpu9250/src/mpu9250_custom.c ) buildliner_add_app( hmc5883 DEFINITION ${PROJECT_SOURCE_DIR}/apps/hmc5883/fsw/for_build - CONFIG ${CMAKE_CURRENT_SOURCE_DIR}/apps/hmc5883 + CONFIG ${PROJECT_SOURCE_DIR}/config/shared/apps/hmc5883 CONFIG_SOURCES - ${CMAKE_CURRENT_SOURCE_DIR}/apps/hmc5883/src/hmc5883_custom.c + ${PROJECT_SOURCE_DIR}/config/shared/apps/hmc5883/src/hmc5883_custom.c ) buildliner_add_app( @@ -265,17 +255,3 @@ buildliner_add_app( DEFINITION ${PROJECT_SOURCE_DIR}/apps/pe/fsw/for_build CONFIG ${CMAKE_CURRENT_SOURCE_DIR}/apps/pe ) - -buildliner_add_app( - qae - DEFINITION ${PROJECT_SOURCE_DIR}/apps/qae/fsw/for_build - CONFIG ${CMAKE_CURRENT_SOURCE_DIR}/apps/qae -) - -buildliner_add_app( - lgc - DEFINITION ${PROJECT_SOURCE_DIR}/apps/lgc/fsw/for_build - CONFIG ${CMAKE_CURRENT_SOURCE_DIR}/apps/lgc - CONFIG_SOURCES - ${CMAKE_CURRENT_SOURCE_DIR}/apps/lgc/lgc_custom.cpp -) diff --git a/config/ocpoc/quadx/target/airliner.service b/config/ocpoc/quadx/target/airliner.service new file mode 100644 index 000000000..578bcb234 --- /dev/null +++ b/config/ocpoc/quadx/target/airliner.service @@ -0,0 +1,19 @@ +[Unit] +Description=Airliner UAS Flight Software +After=network.target auditd.service +ConditionPathExists=!/opt/airliner/disable + +[Service] +Type=simple +WorkingDirectory=/opt/airliner/ +ExecStart=/opt/airliner/core-bin +ExecReload=/bin/kill -9 $MAINPID +#ExecReload=/opt/airliner/allstop +ExecStop=/bin/kill -9 $MAINPID +ExecStop=/opt/airliner/allstop +KillMode=process +#Restart=on-failure + +[Install] +WantedBy=multi-user.target +Alias=airliner.service diff --git a/config/ocpoc/quadx/target/apps/amc/amc_custom.cpp b/config/ocpoc/quadx/target/apps/amc/amc_custom.cpp index 1be165e2f..37bf9e20a 100644 --- a/config/ocpoc/quadx/target/apps/amc/amc_custom.cpp +++ b/config/ocpoc/quadx/target/apps/amc/amc_custom.cpp @@ -82,8 +82,9 @@ uint32 AMC_Freq2tick(uint16 FreqHz); /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ int32 AMC::InitDevice(void) { - uint32 i; - int mem_fd; + uint32 i = 0; + int returnVal = 0; + int mem_fd = 0; /* Initialize just in case we were reloaded and the ctor wasn't called. */ AMC_SharedMemCmd = 0; @@ -96,8 +97,8 @@ int32 AMC::InitDevice(void) if (AMC_SharedMemCmd <= 0) { - AMC_SharedMemCmd = 0; - return errno; + returnVal = errno; + goto end_of_function; } // Note: this appears to be required actuators to initialize @@ -108,10 +109,11 @@ int32 AMC::InitDevice(void) AMC_SharedMemCmd->PeriodHi[i].Hi = AMC_Freq2tick(AMC_FREQUENCY_PWM) / 2; } - + +end_of_function: StopMotors(); - return 0; + return returnVal; } diff --git a/config/ocpoc/quadx/target/apps/cf/CMakeLists.txt b/config/ocpoc/quadx/target/apps/cf/CMakeLists.txt deleted file mode 100644 index 248a08896..000000000 --- a/config/ocpoc/quadx/target/apps/cf/CMakeLists.txt +++ /dev/null @@ -1,10 +0,0 @@ -set(APP_NAME cf) - -buildliner_add_table( - ${APP_NAME} - NAME cf_cfgtable - SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/tables/cf_cfgtable.c - INCLUDES ${CMAKE_CURRENT_SOURCE_DIR}/src/ -) - - diff --git a/config/ocpoc/quadx/target/apps/cf/tables/cf_cfgtable.c b/config/ocpoc/quadx/target/apps/cf/tables/cf_cfgtable.c deleted file mode 100644 index e4dd91e34..000000000 --- a/config/ocpoc/quadx/target/apps/cf/tables/cf_cfgtable.c +++ /dev/null @@ -1,323 +0,0 @@ -/************************************************************************ -** Includes -*************************************************************************/ -#include "cfe.h" -#include "cfe_tbl_filedef.h" -#include "cf_tbldefs.h" -#include "cf_platform_cfg.h" -#include "cf_msgids.h" -#include "cf_defs.h" - -static OS_USED CFE_TBL_FileDef_t CFE_TBL_FileDef = -{ - "CF_ConfigTable", "CF.ConfigTable", "CF Config Tbl", - "cf_cfgtable.tbl", sizeof (cf_config_table_t) -}; - - -/* -** Default playback table data - See NOTE Above -*/ - -cf_config_table_t CF_ConfigTable = -{ - - "CF Default Table",/* TableIdString */ - 2, /* TableVersion (integer) */ - 4, /* NumEngCyclesPerWakeup */ - 2, /* NumWakeupsPerQueueChk */ - 4, /* NumWakeupsPerPollDirChk */ - 100, /* UplinkHistoryQDepth */ - 0, /* Reserved1 */ - 0, /* Reserved2 */ - "10", /* AckTimeout (secs, entered as string) */ - "2", /* AckLimit (max timeouts, string) */ - "5", /* NakTimeout (secs, string) */ - "3", /* NakLimit (max timeouts, string) */ - "20", /* InactivityTimeout (secs, string) */ - "200", /* OutgoingFileChunkSize (bytes, string)*/ - "no", /* SaveIncompleteFiles (yes,no, string) */ - "0.24", /* Flight EntityId - 2 byte dotted-decimal string eg. "0.255"*/ - - { /* Input Channel Array */ - - { /* Input Channel 0 */ - - CF_INCOMING_PDU_MID, - 0, /* Output Chan for Class 2 Uplink Responses, ACK-EOF,Nak,Fin etc) */ - 0, /* spare */ - - }, /* end Input Channel 0 */ - - }, /* end Input Channel Array */ - - { /* Playback Channel Array */ - - { /* Playback Channel #0 */ - CF_ENTRY_IN_USE, /* Playback Channel Entry In Use */ - CF_ENABLED, /* Dequeue Enable */ - CF_SPACE_TO_GND_PDU_MID, /* Space To Gnd PDU MsgId */ - 100, /* Pending Queue Depth */ - 100, /* History Queue Depth */ - "OutputChan0", /* Playback Channel Name */ - "TO_CF_CH0_SEM", /* Handshake Semaphore Name */ - - { /* Polling Directory Array */ - - { /* Polling Directory 0 */ - CF_ENTRY_IN_USE,/* Poll Directory In Use or Not */ - CF_DISABLED, /* Enable State */ - 1, /* Class (1 or 2)*/ - 5, /* Priority */ - CF_KEEP_FILE, /* Preserve files after successful transfer? */ - 0, /* Reserved1 */ - 0, /* Reserved2 */ - 0, /* Reserved3 */ - "0.23", /* Gnd EntityId - 2 byte dotted-decimal string eg. "0.255"*/ - "/cf/ch0poll0/", /* SrcPath, no spaces, fwd slash at end */ - "cftesting/", /* DstPath, no spaces */ - },/* End Polling Directory 0 */ - - { /* Polling Directory 1 */ - CF_ENTRY_IN_USE,/* Poll Directory In Use or Not */ - CF_DISABLED, /* Enable State */ - 1, /* Class (1 or 2)*/ - 0, /* Priority */ - CF_KEEP_FILE, /* Preserve files after successful transfer? */ - 0, /* Reserved1 */ - 0, /* Reserved2 */ - 0, /* Reserved3 */ - "0.23", /* Gnd EntityId - 2 byte dotted-decimal string eg. "0.255"*/ - "/cf/ch0poll1/", /* SrcPathname */ - "/gnd/", /* DestPathname */ - - },/* End Polling Directory 1 */ - - - { /* Polling Directory 2 */ - CF_ENTRY_IN_USE,/* Poll Directory In Use or Not */ - CF_DISABLED, /* Enable State */ - 1, /* Class (1 or 2)*/ - 5, /* Priority */ - CF_DELETE_FILE, /* Preserve files after successful transfer? */ - 0, /* Reserved1 */ - 0, /* Reserved2 */ - 0, /* Reserved3 */ - "0.23", /* Gnd EntityId - 2 byte dotted-decimal string eg. "0.255"*/ - "/cf/ch0poll2/", /* SrcPathname */ - "cftesting/", /* DstPathname */ - },/* End Polling Directory 2 */ - - { /* Polling Directory 3 */ - CF_ENTRY_IN_USE,/* Poll Directory In Use or Not */ - CF_DISABLED, /* Enable State */ - 1, /* Class (1 or 2)*/ - 0, /* Priority */ - CF_KEEP_FILE, /* Preserve files after successful transfer? */ - 0, /* Reserved1 */ - 0, /* Reserved2 */ - 0, /* Reserved3 */ - "0.23", /* Gnd EntityId - 2 byte dotted-decimal string eg. "0.255"*/ - "/cf/ch0poll3/", /* SrcPathname */ - "/gnd/", /* DestPathname */ - - },/* End Polling Directory 3 */ - - { /* Polling Directory 4 */ - CF_ENTRY_IN_USE,/* Poll Directory In Use or Not */ - CF_DISABLED, /* Enable State */ - 1, /* Class (1 or 2)*/ - 5, /* Priority */ - CF_DELETE_FILE, /* Preserve files after successful transfer? */ - 0, /* Reserved1 */ - 0, /* Reserved2 */ - 0, /* Reserved3 */ - "0.23", /* Gnd EntityId - 2 byte dotted-decimal string eg. "0.255"*/ - "/cf/ch0poll4/", /* SrcPathname */ - "cftesting/", /* DstPathname */ - },/* End Polling Directory 4 */ - - { /* Polling Directory 5 */ - CF_ENTRY_IN_USE,/* Poll Directory In Use or Not */ - CF_DISABLED, /* Enable State */ - 1, /* Class (1 or 2)*/ - 0, /* Priority */ - CF_KEEP_FILE, /* Preserve files after successful transfer? */ - 0, /* Reserved1 */ - 0, /* Reserved2 */ - 0, /* Reserved3 */ - "0.23", /* Gnd EntityId - 2 byte dotted-decimal string eg. "0.255"*/ - "/cf/ch0poll5/", /* SrcPathname */ - "/gnd/", /* DestPathname */ - - },/* End Polling Directory 5 */ - - { /* Polling Directory 6 */ - CF_ENTRY_IN_USE,/* Poll Directory In Use or Not */ - CF_DISABLED, /* Enable State */ - 1, /* Class (1 or 2)*/ - 5, /* Priority */ - CF_DELETE_FILE, /* Preserve files after successful transfer? */ - 0, /* Reserved1 */ - 0, /* Reserved2 */ - 0, /* Reserved3 */ - "0.23", /* Gnd EntityId - 2 byte dotted-decimal string eg. "0.255"*/ - "/cf/ch0poll6/", /* SrcPathname */ - "cftesting/", /* DstPathname */ - },/* End Polling Directory 6 */ - - { /* Polling Directory 7 */ - CF_ENTRY_IN_USE,/* Poll Directory In Use or Not */ - CF_DISABLED, /* Enable State */ - 1, /* Class (1 or 2)*/ - 0, /* Priority */ - CF_KEEP_FILE, /* Preserve files after successful transfer? */ - 0, /* Reserved1 */ - 0, /* Reserved2 */ - 0, /* Reserved3 */ - "0.23", /* Gnd EntityId - 2 byte dotted-decimal string eg. "0.255"*/ - "/cf/ch0poll7/", /* SrcPathname */ - "/gnd/", /* DestPathname */ - - },/* End Polling Directory 7 */ - - }, /* End Polling Directory Array */ - - }, /* End Playback Channel #0 */ - - - { /* Playback Channel #1 */ - CF_ENTRY_UNUSED, /* Playback Channel Entry In Use */ - CF_DISABLED, /* Dequeue Enable */ - CF_SPACE_TO_GND_PDU_MID, /* Space To Gnd PDU MsgId */ - 100, /* Pending Queue Depth */ - 100, /* History Queue Depth */ - "OutputChan1", /* Playback Channel Name */ - "TO_CF_CH1_SEM", /* Handshake Semaphore Name */ - - { /* Polling Directory Array */ - - { /* Polling Directory 0 */ - CF_ENTRY_UNUSED,/* Poll Directory In Use or Not */ - CF_DISABLED, /* Enable State */ - 1, /* Class (1 or 2)*/ - 0, /* Priority */ - CF_DELETE_FILE, /* Preserve files after successful transfer? */ - 0, /* Reserved1 */ - 0, /* Reserved2 */ - 0, /* Reserved3 */ - "0.23", /* Gnd EntityId - 2 byte dotted-decimal string eg. "0.255"*/ - "/cf/ch1poll0/", /* SrcPathname */ - "cftesting/", /* DstPathname */ - },/* End Polling Directory 0 */ - - { /* Polling Directory 1 */ - CF_ENTRY_UNUSED,/* Poll Directory In Use or Not */ - CF_DISABLED, /* Enable State */ - 1, /* Class (1 or 2)*/ - 0, /* Priority */ - CF_DELETE_FILE, /* Preserve files after successful transfer? */ - 0, /* Reserved1 */ - 0, /* Reserved2 */ - 0, /* Reserved3 */ - "0.23", /* Gnd EntityId - 2 byte dotted-decimal string eg. "0.255"*/ - "/cf/ch1poll1/", /* SrcPathname */ - "cftesting/", /* DstPathname */ - }, /* End Polling Directory 1 */ - - { /* Polling Directory 2 */ - CF_ENTRY_UNUSED,/* Poll Directory In Use or Not */ - CF_DISABLED, /* Enable State */ - 1, /* Class (1 or 2)*/ - 0, /* Priority */ - CF_DELETE_FILE, /* Preserve files after successful transfer? */ - 0, /* Reserved1 */ - 0, /* Reserved2 */ - 0, /* Reserved3 */ - "0.23", /* Gnd EntityId - 2 byte dotted-decimal string eg. "0.255"*/ - "/cf/ch1poll2/", /* SrcPathname */ - "cftesting/", /* DstPathname */ - },/* End Polling Directory 2 */ - - { /* Polling Directory 3 */ - CF_ENTRY_UNUSED,/* Poll Directory In Use or Not */ - CF_DISABLED, /* Enable State */ - 1, /* Class (1 or 2)*/ - 0, /* Priority */ - CF_DELETE_FILE, /* Preserve files after successful transfer? */ - 0, /* Reserved1 */ - 0, /* Reserved2 */ - 0, /* Reserved3 */ - "0.23", /* Gnd EntityId - 2 byte dotted-decimal string eg. "0.255"*/ - "/cf/ch1poll3/", /* SrcPathname */ - "cftesting/", /* DstPathname */ - }, /* End Polling Directory 3 */ - - { /* Polling Directory 4 */ - CF_ENTRY_UNUSED,/* Poll Directory In Use or Not */ - CF_DISABLED, /* Enable State */ - 1, /* Class (1 or 2)*/ - 0, /* Priority */ - CF_DELETE_FILE, /* Preserve files after successful transfer? */ - 0, /* Reserved1 */ - 0, /* Reserved2 */ - 0, /* Reserved3 */ - "0.23", /* Gnd EntityId - 2 byte dotted-decimal string eg. "0.255"*/ - "/cf/ch1poll4/", /* SrcPathname */ - "cftesting/", /* DstPathname */ - },/* End Polling Directory 4 */ - - { /* Polling Directory 5 */ - CF_ENTRY_UNUSED,/* Poll Directory In Use or Not */ - CF_DISABLED, /* Enable State */ - 1, /* Class (1 or 2)*/ - 0, /* Priority */ - CF_DELETE_FILE, /* Preserve files after successful transfer? */ - 0, /* Reserved1 */ - 0, /* Reserved2 */ - 0, /* Reserved3 */ - "0.23", /* Gnd EntityId - 2 byte dotted-decimal string eg. "0.255"*/ - "/cf/ch1poll5/", /* SrcPathname */ - "cftesting/", /* DstPathname */ - }, /* End Polling Directory 5 */ - - { /* Polling Directory 6 */ - CF_ENTRY_UNUSED,/* Poll Directory In Use or Not */ - CF_DISABLED, /* Enable State */ - 1, /* Class (1 or 2)*/ - 0, /* Priority */ - CF_DELETE_FILE, /* Preserve files after successful transfer? */ - 0, /* Reserved1 */ - 0, /* Reserved2 */ - 0, /* Reserved3 */ - "0.23", /* Gnd EntityId - 2 byte dotted-decimal string eg. "0.255"*/ - "/cf/ch1poll6/", /* SrcPathname */ - "cftesting/", /* DstPathname */ - },/* End Polling Directory 6 */ - - { /* Polling Directory 7 */ - CF_ENTRY_UNUSED,/* Poll Directory In Use or Not */ - CF_DISABLED, /* Enable State */ - 1, /* Class (1 or 2)*/ - 0, /* Priority */ - CF_DELETE_FILE, /* Preserve files after successful transfer? */ - 0, /* Reserved1 */ - 0, /* Reserved2 */ - 0, /* Reserved3 */ - "0.23", /* Gnd EntityId - 2 byte dotted-decimal string eg. "0.255"*/ - "/cf/ch1poll7/", /* SrcPathname */ - "cftesting/", /* DstPathname */ - }, /* End Polling Directory 7 */ - - }, /* End Polling Directory Array */ - - }, /* End Playback Channel #1 */ - - }, /* End Playback Channel Array */ - -}; /* End CF_ConfigTable */ - - -/************************/ -/* End of File Comment */ -/************************/ diff --git a/config/ocpoc/quadx/target/apps/ci/CMakeLists.txt b/config/ocpoc/quadx/target/apps/ci/CMakeLists.txt deleted file mode 100644 index b12b802ac..000000000 --- a/config/ocpoc/quadx/target/apps/ci/CMakeLists.txt +++ /dev/null @@ -1,36 +0,0 @@ -set(APP_NAME ci) - -buildliner_add_table( - ${APP_NAME} - NAME ci_config - SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/tables/ci_config.c - INCLUDES ${CMAKE_CURRENT_SOURCE_DIR}/src/ -) - -buildliner_add_app_unit_test_src(${APP_NAME} SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/tables/ci_config.c) - -buildliner_add_app_unit_test(ci-custom-ut - UTASSERT - NO_HELGRIND - NO_MASSIF - - SOURCES - ${CMAKE_CURRENT_SOURCE_DIR}/unit_test/ci_testrunner.c - ${CMAKE_CURRENT_SOURCE_DIR}/unit_test/ci_custom_test.c - ${CMAKE_CURRENT_SOURCE_DIR}/ci_custom.c - ${PROJECT_SOURCE_DIR}/apps/ci/fsw/src/ci_app.c - ${PROJECT_SOURCE_DIR}/apps/ci/fsw/src/ci_config_utils.c - ${CMAKE_CURRENT_SOURCE_DIR}/unit_test/ci_mock_os_calls.c - ${CMAKE_CURRENT_SOURCE_DIR}/unit_test/ci_test_utils.c - ${PROJECT_SOURCE_DIR}/core/base/ut_assert/src/ut_cfe_es_hooks.c - - INCLUDES - ${PROJECT_SOURCE_DIR}/apps/ci/fsw/src/ - - WRAPPERS - socket - bind - - VALGRIND_SUPPRESSION_FILE - ${CMAKE_CURRENT_SOURCE_DIR}/unit_test/ci-custom.supp -) diff --git a/config/ocpoc/quadx/target/apps/ci/ci_custom.c b/config/ocpoc/quadx/target/apps/ci/ci_custom.c deleted file mode 100644 index 5a9c11ef3..000000000 --- a/config/ocpoc/quadx/target/apps/ci/ci_custom.c +++ /dev/null @@ -1,111 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ - -#include "ci_custom.h" -#include "ci_platform_cfg.h" -#include -#include -#include -#include "ci_events.h" -#include -#include - -#define CI_CUSTOM_RETURN_CODE_NULL_POINTER (-1) - - -typedef struct -{ - int Socket; - uint16 Port; -} CI_AppCustomData_t; - -CI_AppCustomData_t CI_AppCustomData = {0, 5010}; - - -osalbool CI_AddCustomEventFilters(uint32 *count) -{ - return TRUE; -} - - -int32 CI_InitCustom(void) -{ - int32 Status = CFE_SUCCESS; - int reuseaddr = 1; - struct sockaddr_in address; - - if((CI_AppCustomData.Socket = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP)) < 0) - { - CFE_EVS_SendEvent(CI_SOCKET_ERR_EID, CFE_EVS_ERROR, - "Socket errno: %i", errno); - Status = -1; - goto end_of_function; - } - - setsockopt(CI_AppCustomData.Socket, SOL_SOCKET, SO_REUSEADDR, &reuseaddr, sizeof(reuseaddr)); - - bzero((char *) &address, sizeof(address)); - address.sin_family = AF_INET; - address.sin_addr.s_addr = htonl (INADDR_ANY); - address.sin_port = htons(CI_AppCustomData.Port); - - if ( (bind(CI_AppCustomData.Socket, (struct sockaddr *) &address, sizeof(address)) < 0) ) - { - CFE_EVS_SendEvent(CI_SOCKET_ERR_EID, CFE_EVS_ERROR,"Bind socket failed = %d", errno); - Status = -1; - goto end_of_function; - } - - CFE_EVS_SendEvent(CI_ENA_INF_EID, CFE_EVS_INFORMATION, - "UDP command input enabled on port %u.", - CI_AppCustomData.Port); - -end_of_function: - return Status; - -} - - -void CI_ReadMessage(uint8* buffer, uint32* size) -{ - *size = recv(CI_AppCustomData.Socket, - (char *)buffer, - (size_t)size, 0); -} - - -void CI_CleanupCustom(void) -{ - close(CI_AppCustomData.Socket); -} - diff --git a/config/ocpoc/quadx/target/apps/ci/tables/ci_config.c b/config/ocpoc/quadx/target/apps/ci/tables/ci_config.c deleted file mode 100644 index dcd0efdce..000000000 --- a/config/ocpoc/quadx/target/apps/ci/tables/ci_config.c +++ /dev/null @@ -1,68 +0,0 @@ -/* -** Pragmas -*/ - -/* -** Include Files -*/ -#include "cfe_tbl_filedef.h" -#include "ci_tbldefs.h" - -/* -** Local Defines -*/ - -/* -** Local Structure Declarations -*/ -static OS_USED CFE_TBL_FileDef_t CFE_TBL_FileDef = -{ - /* Content format: ObjName[64], TblName[38], Desc[32], TgtFileName[20], ObjSize - ** ObjName - variable name of config table, e.g., CI_ConfigDefTbl[] - ** TblName - app's table name, e.g., CI.CONFIG_TBL, where CI is the same app name - ** used in cfe_es_startup.scr, and CI_defConfigTbl is the same table - ** name passed in to CFE_TBL_Register() - ** Desc - description of table in string format - ** TgtFileName[20] - table file name, compiled as .tbl file extension - ** ObjSize - size of the entire table - */ - - "CI_ConfigTbl", "CI.CONFIG_TBL", "CI default config table", - "ci_config.tbl", sizeof(CI_ConfigTblEntry_t) -}; - -/* -** External Global Variables -*/ - -/* -** Global Variables -*/ - -/* Default CI config table data */ -CI_ConfigTblEntry_t CI_ConfigTbl = -{ - /* Table ID */ - 1, - { - /* Registered Commands */ - {0x1806, 2, STEP_2, UNAUTHORIZED, 0, LOG} // CFE ES Proc/Power Reset - } -}; - -/* -** Local Variables -*/ - -/* -** Function Prototypes -*/ - -/* -** Function Definitions -*/ - -/*======================================================================================= -** End of file ci_config.c -**=====================================================================================*/ - diff --git a/config/ocpoc/quadx/target/apps/ci/unit_test/ci-custom.supp b/config/ocpoc/quadx/target/apps/ci/unit_test/ci-custom.supp deleted file mode 100644 index 1864afc99..000000000 --- a/config/ocpoc/quadx/target/apps/ci/unit_test/ci-custom.supp +++ /dev/null @@ -1,59 +0,0 @@ -# The following hits are a result of mallocs in UtList_Add. This is -# unit test specific code and does not impact the flight code. -{ - - Memcheck:Leak - match-leak-kinds: reachable - fun:malloc - fun:UtList_Add - fun:Ut_CFE_EVS_SendEventHook - fun:CFE_EVS_SendEvent - fun:CI_InitCustom - fun:Test_CI_InitCustom_Nominal - fun:UtTest_Run - fun:main -} - -{ - - Memcheck:Leak - match-leak-kinds: reachable - fun:malloc - fun:UtList_Add - fun:Ut_CFE_EVS_SendEventHook - fun:CFE_EVS_SendEvent - fun:CI_InitCustom - fun:Test_CI_InitCustom_Nominal - fun:UtTest_Run - fun:main -} - -{ - - Memcheck:Leak - match-leak-kinds: reachable - fun:malloc - fun:UtList_Add - fun:Ut_CFE_EVS_SendEventHook - fun:CFE_EVS_SendEvent - fun:CI_InitCustom - fun:Test_CI_InitCustom_Nominal - fun:UtTest_Run - fun:main -} - -{ - - Memcheck:Leak - match-leak-kinds: reachable - fun:malloc - fun:UtList_Add - fun:Ut_CFE_EVS_SendEventHook - fun:CFE_EVS_SendEvent - fun:CI_InitCustom - fun:Test_CI_InitCustom_Nominal - fun:UtTest_Run - fun:main -} - -################################### diff --git a/config/ocpoc/quadx/target/apps/ci/unit_test/ci_custom_test.c b/config/ocpoc/quadx/target/apps/ci/unit_test/ci_custom_test.c deleted file mode 100644 index f45ed5441..000000000 --- a/config/ocpoc/quadx/target/apps/ci/unit_test/ci_custom_test.c +++ /dev/null @@ -1,124 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ - -#include "ci_custom_test.h" -#include "ci_app.h" -#include "ci_test_utils.h" - -#include "uttest.h" -#include "ut_osapi_stubs.h" -#include "ut_cfe_sb_stubs.h" -#include "ut_cfe_es_stubs.h" -#include "ut_cfe_es_hooks.h" -#include "ut_cfe_evs_stubs.h" -#include "ut_cfe_evs_hooks.h" -#include "ut_cfe_time_stubs.h" -#include "ut_cfe_psp_memutils_stubs.h" -#include "ut_cfe_tbl_stubs.h" -#include "ut_cfe_fs_stubs.h" -#include "ut_cfe_time_stubs.h" - -int SOCK_RET_CODE; -int BIND_RET_CODE; - -/** - * Test CI_InitCustom(), Bad socket - */ -void Test_CI_InitCustom_Bad_Socket(void) -{ - int32 retCode = 0; - - /* Set to cause to fail */ - SOCK_RET_CODE = -1; - - /* Execute the function being tested */ - retCode = CI_InitCustom(); - - /* Verify results */ - UtAssert_True(retCode==-1,"Return = -1"); - UtAssert_EventSent(CI_SOCKET_ERR_EID, CFE_EVS_ERROR, "", "Socket error"); - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); -} - -/** - * Test CI_InitCustom(), Bad bind - */ -void Test_CI_InitCustom_Bad_Bind(void) -{ - int32 retCode = 0; - - /* Set to cause to fail */ - SOCK_RET_CODE = 0; - BIND_RET_CODE = -1; - - /* Execute the function being tested */ - retCode = CI_InitCustom(); - - /* Verify results */ - UtAssert_True(retCode==-1,"Return = -1"); - UtAssert_EventSent(CI_SOCKET_ERR_EID, CFE_EVS_ERROR, "", "Bind error"); - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); -} - -/** - * Test CI_InitCustom(), Nominal - */ -void Test_CI_InitCustom_Nominal(void) -{ - int32 retCode = -1; - - /* Set to cause to pass */ - SOCK_RET_CODE = 0; - BIND_RET_CODE = 0; - - /* Execute the function being tested */ - retCode = CI_InitCustom(); - - /* Verify results */ - UtAssert_True(retCode==0,"Return = 0"); - UtAssert_EventSent(CI_ENA_INF_EID, CFE_EVS_INFORMATION, "", "Socket opened"); - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); -} - -/************************************************************************** - * Rollup Test Cases - **************************************************************************/ -void CI_Custom_Test_AddTestCases(void) -{ - UtTest_Add(Test_CI_InitCustom_Bad_Socket, CI_Test_Setup, CI_Test_TearDown, - "Test_CI_InitCustom_Bad_Socket"); - UtTest_Add(Test_CI_InitCustom_Bad_Bind, CI_Test_Setup, CI_Test_TearDown, - "Test_CI_InitCustom_Bad_Bind"); - UtTest_Add(Test_CI_InitCustom_Nominal, CI_Test_Setup, CI_Test_TearDown, - "Test_CI_InitCustom_Nominal"); -} diff --git a/config/ocpoc/quadx/target/apps/ci/unit_test/ci_custom_test.h b/config/ocpoc/quadx/target/apps/ci/unit_test/ci_custom_test.h deleted file mode 100644 index dbc880681..000000000 --- a/config/ocpoc/quadx/target/apps/ci/unit_test/ci_custom_test.h +++ /dev/null @@ -1,48 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ - - -#ifndef CI_CUSTOM_TEST_H -#define CI_CUSTOM_TEST_H - -#ifdef __cplusplus -extern "C" { -#endif - -void CI_Custom_Test_AddTestCases(void); - -#ifdef __cplusplus -} -#endif - -#endif /* CI_CUSTOM_TEST_H */ diff --git a/config/ocpoc/quadx/target/apps/ci/unit_test/ci_mock_os_calls.c b/config/ocpoc/quadx/target/apps/ci/unit_test/ci_mock_os_calls.c deleted file mode 100644 index f16a1cc2a..000000000 --- a/config/ocpoc/quadx/target/apps/ci/unit_test/ci_mock_os_calls.c +++ /dev/null @@ -1,57 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ - -int SOCK_RET_CODE = 0; -int HTONL_RET_CODE = 0; -int HTONS_RET_CODE = 0; -int BIND_RET_CODE = 0; - -int __wrap_socket (int namespace, int style, int protocol) -{ - return SOCK_RET_CODE; -} - -//int __wrap_htonl (int hostlong) -//{ -// return HTONL_RET_CODE; -//} -// -//int __wrap_htons (int hostshort) -//{ -// return HTONS_RET_CODE; -//} - -int __wrap_bind (int socket, int *addr, int length) -{ - return BIND_RET_CODE; -} diff --git a/config/ocpoc/quadx/target/apps/ci/unit_test/ci_mock_os_calls.h b/config/ocpoc/quadx/target/apps/ci/unit_test/ci_mock_os_calls.h deleted file mode 100644 index 876608286..000000000 --- a/config/ocpoc/quadx/target/apps/ci/unit_test/ci_mock_os_calls.h +++ /dev/null @@ -1,50 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ - -#ifndef CI_MOCK_OS_CALLS_H -#define CI_MOCK_OS_CALLS_H - -#ifdef __cplusplus -extern "C" { -#endif - -extern int SOCK_RET_CODE; -extern int HTONL_RET_CODE; -extern int HTONS_RET_CODE; -extern int BIND_RET_CODE - -#ifdef __cplusplus -} -#endif - -#endif /* MOCK_OS_CALLS_H */ diff --git a/config/ocpoc/quadx/target/apps/ci/unit_test/ci_test_utils.c b/config/ocpoc/quadx/target/apps/ci/unit_test/ci_test_utils.c deleted file mode 100644 index 2f1db3298..000000000 --- a/config/ocpoc/quadx/target/apps/ci/unit_test/ci_test_utils.c +++ /dev/null @@ -1,83 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ - - -#include "ci_test_utils.h" - -#include "ut_cfe_evs_hooks.h" -#include "ut_cfe_time_stubs.h" -#include "ut_cfe_psp_memutils_stubs.h" -#include "ut_cfe_tbl_stubs.h" -#include "ut_cfe_tbl_hooks.h" -#include "ut_cfe_fs_stubs.h" -#include "ut_cfe_time_stubs.h" -#include "ut_osapi_stubs.h" -#include "ut_osfileapi_stubs.h" -#include "ut_cfe_sb_stubs.h" -#include "ut_cfe_es_stubs.h" -#include "ut_cfe_evs_stubs.h" - -#include - -/* - * Config table for testing - */ -CI_ConfigTblEntry_t CI_configtable = { - 1 /* iParam*/ -}; - -/* - * Function Definitions - */ - -void CI_Test_Setup(void) -{ - /* initialize test environment to default state for every test */ - - CFE_PSP_MemSet(&CI_AppData, 0x00, sizeof(CI_AppData_t)); - - Ut_CFE_EVS_Reset(); - Ut_CFE_FS_Reset(); - Ut_CFE_TIME_Reset(); - Ut_CFE_TBL_Reset(); - Ut_CFE_SB_Reset(); - Ut_CFE_ES_Reset(); - Ut_OSAPI_Reset(); - Ut_OSFILEAPI_Reset(); - - Ut_CFE_TBL_AddTable(CI_CONFIG_TABLE_FILENAME, (void *) &CI_configtable); -} - -void CI_Test_TearDown(void) { - CFE_PSP_MemSet(&CI_AppData, 0x00, sizeof(CI_AppData_t)); -} diff --git a/config/ocpoc/quadx/target/apps/ci/unit_test/ci_test_utils.h b/config/ocpoc/quadx/target/apps/ci/unit_test/ci_test_utils.h deleted file mode 100644 index 423dc5455..000000000 --- a/config/ocpoc/quadx/target/apps/ci/unit_test/ci_test_utils.h +++ /dev/null @@ -1,63 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ - - -#ifndef CI_TEST_UTILS_H -#define CI_TEST_UTILS_H - -/* - * Includes - */ - -#include "ci_app.h" - -extern CI_AppData_t CI_AppData; - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * Function Definitions - */ - -void CI_Test_Setup(void); -void CI_Test_TearDown(void); - - -#ifdef __cplusplus -} -#endif - -#endif /* CI_TEST_UTILS_H */ - diff --git a/config/ocpoc/quadx/target/apps/ci/unit_test/ci_testrunner.c b/config/ocpoc/quadx/target/apps/ci/unit_test/ci_testrunner.c deleted file mode 100644 index f2e1fc97c..000000000 --- a/config/ocpoc/quadx/target/apps/ci/unit_test/ci_testrunner.c +++ /dev/null @@ -1,45 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ - - -#include "uttest.h" - -#include "ci_custom_test.h" - -int main(void) -{ - CI_Custom_Test_AddTestCases(); - - return(UtTest_Run()); -} - diff --git a/config/ocpoc/quadx/target/apps/ds/CMakeLists.txt b/config/ocpoc/quadx/target/apps/ds/CMakeLists.txt deleted file mode 100644 index 6379c18b4..000000000 --- a/config/ocpoc/quadx/target/apps/ds/CMakeLists.txt +++ /dev/null @@ -1,16 +0,0 @@ -set(APP_NAME ds) - -buildliner_add_table( - ${APP_NAME} - NAME ds_file_tbl - SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/tables/ds_file_tbl.c - INCLUDES ${CMAKE_CURRENT_SOURCE_DIR}/src/ -) - -buildliner_add_table( - ${APP_NAME} - NAME ds_filter_tbl - SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/tables/ds_filter_tbl.c - INCLUDES ${CMAKE_CURRENT_SOURCE_DIR}/src/ -) - diff --git a/config/ocpoc/quadx/target/apps/ds/tables/ds_file_tbl.c b/config/ocpoc/quadx/target/apps/ds/tables/ds_file_tbl.c deleted file mode 100644 index 008c69860..000000000 --- a/config/ocpoc/quadx/target/apps/ds/tables/ds_file_tbl.c +++ /dev/null @@ -1,292 +0,0 @@ -#include "cfe.h" -#include "cfe_tbl_filedef.h" -#include "ds_platform_cfg.h" -#include "ds_appdefs.h" -#include "ds_app.h" -#include "ds_msg.h" - - -/* -** Note: It is suggested that missions pre-define their file table -** index numbers in a public header file to be included by -** both the packet filter table source file and the destination -** file table source file. Common definitions may also be used -** when creating ground system database entries that require -** file index numbers for command arguments. -*/ -/* All events */ -#define FILE_ALL_EVENTS 0 -/* All housekeeping packets */ -#define FILE_ALL_APP_HK_PKTS 1 -/* Log all flight application messages */ -#define FILE_FLIGHT_APP_TLM_PKTS 2 -/* Log just default flight application messages */ -#define FILE_FLIGHT_DEFAULT_APP_TLM_PKTS 3 -/* Log just sensor application messages */ -#define FILE_FLIGHT_SENSOR_APP_TLM_PKTS 4 -/* Log all flight messages at a low rate */ -#define FILE_FLIGHT_MIN_APP_TLM_PKTS 5 -/* CFE core applications commands */ -#define FILE_CORE_APP_CMD_PKTS 6 - - -/* -** Sample Destination File Table Data -*/ -DS_DestFileTable_t DS_DestFileTable = -{ - /* .Descriptor = */ "Events", - /* .File = */ - { - /* File Index 00 -- event packets only */ - { -#if (DS_MOVE_FILES == TRUE) - /* .Movename = */ DS_EMPTY_STRING, -#endif - /* .Pathname = */ "/cf/log/", - /* .Basename = */ "events", - /* .Extension = */ ".dat", - - /* .FileNameType = */ DS_BY_COUNT, - /* .EnableState = */ DS_ENABLED, - /* .MaxFileSize = */ (1024 * 1024 * 200), /* 200 M-bytes */ - /* .MaxFileAge = */ (60 * 60 * 2), /* 2 hours */ - /* .SequenceCount = */ 1000, - }, - /* File Index 01 -- application housekeeping packets */ - { -#if (DS_MOVE_FILES == TRUE) - /* .Movename = */ DS_EMPTY_STRING, -#endif - /* .Pathname = */ "/cf/log/", - /* .Basename = */ "hk", - /* .Extension = */ ".hk", - - /* .FileNameType = */ DS_BY_COUNT, - /* .EnableState = */ DS_ENABLED, - /* .MaxFileSize = */ (1024 * 1024 * 200), /* 200 M-bytes */ - /* .MaxFileAge = */ (60 * 60 * 2), /* 2 hours */ - /* .SequenceCount = */ 2000, - }, - /* File Index 02 -- application telemetry packets */ - { -#if (DS_MOVE_FILES == TRUE) - /* .Movename = */ DS_EMPTY_STRING, -#endif - /* .Pathname = */ "/cf/log/", - /* .Basename = */ "flight", - /* .Extension = */ ".tlm", - - /* .FileNameType = */ DS_BY_COUNT, - /* .EnableState = */ DS_ENABLED, - /* .MaxFileSize = */ (1024 * 1024 * 200), /* 200 M-bytes */ - /* .MaxFileAge = */ (60 * 60 * 2), /* 2 hours */ - /* .SequenceCount = */ 3000, - }, - /* File Index 03 -- hardware telemetry packets */ - { -#if (DS_MOVE_FILES == TRUE) - /* .Movename = */ DS_EMPTY_STRING, -#endif - /* .Pathname = */ "/cf/log/", - /* .Basename = */ "default", - /* .Extension = */ ".tlm", - - /* .FileNameType = */ DS_BY_COUNT, - /* .EnableState = */ DS_DISABLED, - /* .MaxFileSize = */ (1024 * 1024 * 200), /* 200 M-bytes */ - /* .MaxFileAge = */ (60 * 60 * 2), /* 2 hours */ - /* .SequenceCount = */ 4000, - }, - /* File Index 04 -- cFE housekeeping packets */ - { -#if (DS_MOVE_FILES == TRUE) - /* .Movename = */ DS_EMPTY_STRING, -#endif - /* .Pathname = */ "/cf/log/", - /* .Basename = */ "sensor", - /* .Extension = */ ".tlm", - - /* .FileNameType = */ DS_BY_COUNT, - /* .EnableState = */ DS_DISABLED, - /* .MaxFileSize = */ (1024 * 1024 * 200), /* 200 M-bytes */ - /* .MaxFileAge = */ (60 * 60 * 2), /* 2 hours */ - /* .SequenceCount = */ 5000, - }, - /* File Index 05 -- cFE telemetry packets */ - { -#if (DS_MOVE_FILES == TRUE) - /* .Movename = */ DS_EMPTY_STRING, -#endif - /* .Pathname = */ "/cf/log/", - /* .Basename = */ "minimum", - /* .Extension = */ ".tlm", - - /* .FileNameType = */ DS_BY_COUNT, - /* .EnableState = */ DS_DISABLED, - /* .MaxFileSize = */ (1024 * 1024 * 200), /* 200 M-bytes */ - /* .MaxFileAge = */ (60 * 60 * 2), /* 2 hours */ - /* .SequenceCount = */ 6000, - }, - /* File Index 06 */ - { -#if (DS_MOVE_FILES == TRUE) - /* .Movename = */ DS_EMPTY_STRING, -#endif - /* .Pathname = */ "/cf/log/", - /* .Basename = */ "commands", - /* .Extension = */ ".cmd", - - /* .FileNameType = */ DS_BY_COUNT, - /* .EnableState = */ DS_ENABLED, - /* .MaxFileSize = */ (1024 * 1024 * 200), /* 200 M-bytes */ - /* .MaxFileAge = */ (60 * 60 * 2), /* 2 hours */ - /* .SequenceCount = */ 7000, - }, - /* File Index 07 */ - { -#if (DS_MOVE_FILES == TRUE) - /* .Movename = */ DS_EMPTY_STRING, -#endif - /* .Pathname = */ DS_EMPTY_STRING, - /* .Basename = */ DS_EMPTY_STRING, - /* .Extension = */ DS_EMPTY_STRING, - - /* .FileNameType = */ DS_UNUSED, - /* .EnableState = */ DS_UNUSED, - /* .MaxFileSize = */ DS_UNUSED, - /* .MaxFileAge = */ DS_UNUSED, - /* .SequenceCount = */ DS_UNUSED, - }, - /* File Index 08 */ - { -#if (DS_MOVE_FILES == TRUE) - /* .Movename = */ DS_EMPTY_STRING, -#endif - /* .Pathname = */ DS_EMPTY_STRING, - /* .Basename = */ DS_EMPTY_STRING, - /* .Extension = */ DS_EMPTY_STRING, - - /* .FileNameType = */ DS_UNUSED, - /* .EnableState = */ DS_UNUSED, - /* .MaxFileSize = */ DS_UNUSED, - /* .MaxFileAge = */ DS_UNUSED, - /* .SequenceCount = */ DS_UNUSED, - }, - /* File Index 09 */ - { -#if (DS_MOVE_FILES == TRUE) - /* .Movename = */ DS_EMPTY_STRING, -#endif - /* .Pathname = */ DS_EMPTY_STRING, - /* .Basename = */ DS_EMPTY_STRING, - /* .Extension = */ DS_EMPTY_STRING, - - /* .FileNameType = */ DS_UNUSED, - /* .EnableState = */ DS_UNUSED, - /* .MaxFileSize = */ DS_UNUSED, - /* .MaxFileAge = */ DS_UNUSED, - /* .SequenceCount = */ DS_UNUSED, - }, - /* File Index 10 */ - { -#if (DS_MOVE_FILES == TRUE) - /* .Movename = */ DS_EMPTY_STRING, -#endif - /* .Pathname = */ DS_EMPTY_STRING, - /* .Basename = */ DS_EMPTY_STRING, - /* .Extension = */ DS_EMPTY_STRING, - - /* .FileNameType = */ DS_UNUSED, - /* .EnableState = */ DS_UNUSED, - /* .MaxFileSize = */ DS_UNUSED, - /* .MaxFileAge = */ DS_UNUSED, - /* .SequenceCount = */ DS_UNUSED, - }, - /* File Index 11 */ - { -#if (DS_MOVE_FILES == TRUE) - /* .Movename = */ DS_EMPTY_STRING, -#endif - /* .Pathname = */ DS_EMPTY_STRING, - /* .Basename = */ DS_EMPTY_STRING, - /* .Extension = */ DS_EMPTY_STRING, - - /* .FileNameType = */ DS_UNUSED, - /* .EnableState = */ DS_UNUSED, - /* .MaxFileSize = */ DS_UNUSED, - /* .MaxFileAge = */ DS_UNUSED, - /* .SequenceCount = */ DS_UNUSED, - }, - /* File Index 12 */ - { -#if (DS_MOVE_FILES == TRUE) - /* .Movename = */ DS_EMPTY_STRING, -#endif - /* .Pathname = */ DS_EMPTY_STRING, - /* .Basename = */ DS_EMPTY_STRING, - /* .Extension = */ DS_EMPTY_STRING, - - /* .FileNameType = */ DS_UNUSED, - /* .EnableState = */ DS_UNUSED, - /* .MaxFileSize = */ DS_UNUSED, - /* .MaxFileAge = */ DS_UNUSED, - /* .SequenceCount = */ DS_UNUSED, - }, - /* File Index 13 */ - { -#if (DS_MOVE_FILES == TRUE) - /* .Movename = */ DS_EMPTY_STRING, -#endif - /* .Pathname = */ DS_EMPTY_STRING, - /* .Basename = */ DS_EMPTY_STRING, - /* .Extension = */ DS_EMPTY_STRING, - - /* .FileNameType = */ DS_UNUSED, - /* .EnableState = */ DS_UNUSED, - /* .MaxFileSize = */ DS_UNUSED, - /* .MaxFileAge = */ DS_UNUSED, - /* .SequenceCount = */ DS_UNUSED, - }, - /* File Index 14 */ - { -#if (DS_MOVE_FILES == TRUE) - /* .Movename = */ DS_EMPTY_STRING, -#endif - /* .Pathname = */ DS_EMPTY_STRING, - /* .Basename = */ DS_EMPTY_STRING, - /* .Extension = */ DS_EMPTY_STRING, - - /* .FileNameType = */ DS_UNUSED, - /* .EnableState = */ DS_UNUSED, - /* .MaxFileSize = */ DS_UNUSED, - /* .MaxFileAge = */ DS_UNUSED, - /* .SequenceCount = */ DS_UNUSED, - }, - /* File Index 15 */ - { -#if (DS_MOVE_FILES == TRUE) - /* .Movename = */ DS_EMPTY_STRING, -#endif - /* .Pathname = */ DS_EMPTY_STRING, - /* .Basename = */ DS_EMPTY_STRING, - /* .Extension = */ DS_EMPTY_STRING, - - /* .FileNameType = */ DS_UNUSED, - /* .EnableState = */ DS_UNUSED, - /* .MaxFileSize = */ DS_UNUSED, - /* .MaxFileAge = */ DS_UNUSED, - /* .SequenceCount = */ DS_UNUSED, - }, - } -}; - -/* -** Sample Destination File Table Header -*/ -CFE_TBL_FILEDEF(DS_DestFileTable, DS.FILE_TBL, DS Destination File Table,ds_file_tbl.tbl) - - -/************************/ -/* End of File Comment */ -/************************/ diff --git a/config/ocpoc/quadx/target/apps/ds/tables/ds_filter_tbl.c b/config/ocpoc/quadx/target/apps/ds/tables/ds_filter_tbl.c deleted file mode 100644 index 1afc76432..000000000 --- a/config/ocpoc/quadx/target/apps/ds/tables/ds_filter_tbl.c +++ /dev/null @@ -1,3145 +0,0 @@ -#include "cfe.h" -#include "cfe_tbl_filedef.h" -#include "ds_platform_cfg.h" -#include "ds_appdefs.h" -#include "ds_app.h" -#include "ds_msg.h" - -/* -** Note: Include header files that define the message ID's for the -** mission specific list of packets that need to be stored. -*/ -#include "cfe_msgids.h" -#include "ds_msgids.h" - -/* #include "ci_lab_msgids.h" */ -/* #include "to_lab_msgids.h" */ - -/* #include "cs_msgids.h" */ -/* #include "ds_msgids.h" */ -/* #include "fm_msgids.h" */ -/* #include "hk_msgids.h" */ -/* #include "hs_msgids.h" */ -/* #include "lc_msgids.h" */ -/* #include "md_msgids.h" */ -/* #include "mm_msgids.h" */ -/* #include "sc_msgids.h" */ -/* #include "sch_msgids.h" */ - - -/* -** Note: It is suggested that missions pre-define their file table -** index numbers in a public header file to be included by -** both the packet filter table source file and the destination -** file table source file. Common definitions may also be used -** when creating command database entries that require file -** index numbers for command arguments. -*/ -/* All events */ -#define FILE_ALL_EVENTS 0 -/* All housekeeping packets */ -#define FILE_ALL_APP_HK_PKTS 1 -/* Log all flight application messages */ -#define FILE_FLIGHT_APP_TLM_PKTS 2 -/* Log just default flight application messages */ -#define FILE_FLIGHT_DEFAULT_APP_TLM_PKTS 3 -/* Log just sensor application messages */ -#define FILE_FLIGHT_SENSOR_APP_TLM_PKTS 4 -/* Log all flight messages at a low rate */ -#define FILE_FLIGHT_MIN_APP_TLM_PKTS 5 -/* CFE core applications commands */ -#define FILE_CORE_APP_CMD_PKTS 6 - - -/* -** Sample packet filter table data -*/ -DS_FilterTable_t DS_FilterTable = -{ - /* .Descriptor = */ "Sample filter table data", - /* .Packet = */ - { - /* Packet Index 000 */ - { - /* .MessageID = */ CFE_ES_HK_TLM_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_ALL_APP_HK_PKTS, DS_BY_COUNT, 1, 2, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 001 */ - { - /* .MessageID = */ CFE_EVS_HK_TLM_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_ALL_APP_HK_PKTS, DS_BY_COUNT, 1, 2, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 002 */ - { - /* .MessageID = */ CFE_SB_HK_TLM_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_ALL_APP_HK_PKTS, DS_BY_COUNT, 1, 2, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 003 */ - { - /* .MessageID = */ CFE_TBL_HK_TLM_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_ALL_APP_HK_PKTS, DS_BY_COUNT, 1, 2, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 004 */ - { - /* .MessageID = */ CFE_TIME_HK_TLM_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_ALL_APP_HK_PKTS, DS_BY_COUNT, 1, 2, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 005 */ - { - /* .MessageID = */ CFE_EVS_CMD_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_CORE_APP_CMD_PKTS, DS_BY_COUNT, 1, 1, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 006 */ - { - /* .MessageID = */ CFE_EVS_EVENT_MSG_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_ALL_EVENTS, DS_BY_COUNT, 1, 1, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 007 */ - { - /* .MessageID = */ CFE_SB_CMD_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_CORE_APP_CMD_PKTS, DS_BY_COUNT, 1, 1, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 008 */ - { - /* .MessageID = */ CFE_TIME_CMD_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_CORE_APP_CMD_PKTS, DS_BY_COUNT, 1, 1, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 009 */ - { - /* .MessageID = */ CFE_ES_CMD_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_CORE_APP_CMD_PKTS, DS_BY_COUNT, 1, 1, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 010 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 011 */ - { - /* .MessageID = */ CFE_SB_ONESUB_TLM_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 012 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 013 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 014 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 015 */ - { - /* .MessageID = */ PX4_SENSOR_ACCEL_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_FLIGHT_APP_TLM_PKTS, DS_BY_COUNT, 10, 250, 0 }, - { FILE_FLIGHT_SENSOR_APP_TLM_PKTS, DS_BY_COUNT, 10, 250, 0 }, - { FILE_FLIGHT_MIN_APP_TLM_PKTS, DS_BY_COUNT, 1, 2000, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 016 */ - { - /* .MessageID = */ PX4_SENSOR_BARO_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_FLIGHT_APP_TLM_PKTS, DS_BY_COUNT, 10, 50, 0 }, - { FILE_FLIGHT_SENSOR_APP_TLM_PKTS, DS_BY_COUNT, 10, 50, 0 }, - { FILE_FLIGHT_MIN_APP_TLM_PKTS, DS_BY_COUNT, 1, 2000, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 017 */ - { - /* .MessageID = */ PX4_SENSOR_GYRO_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_FLIGHT_APP_TLM_PKTS, DS_BY_COUNT, 10, 250, 0 }, - { FILE_FLIGHT_SENSOR_APP_TLM_PKTS, DS_BY_COUNT, 10, 250, 0 }, - { FILE_FLIGHT_MIN_APP_TLM_PKTS, DS_BY_COUNT, 1, 2000, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 018 */ - { - /* .MessageID = */ PX4_SENSOR_MAG_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_FLIGHT_APP_TLM_PKTS, DS_BY_COUNT, 10, 250, 0 }, - { FILE_FLIGHT_SENSOR_APP_TLM_PKTS, DS_BY_COUNT, 10, 250, 0 }, - { FILE_FLIGHT_MIN_APP_TLM_PKTS, DS_BY_COUNT, 1, 2000, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 019 */ - { - /* .MessageID = */ PX4_SENSOR_COMBINED_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_FLIGHT_APP_TLM_PKTS, DS_BY_COUNT, 10, 250, 0 }, - { FILE_FLIGHT_SENSOR_APP_TLM_PKTS, DS_BY_COUNT, 10, 250, 0 }, - { FILE_FLIGHT_MIN_APP_TLM_PKTS, DS_BY_COUNT, 1, 2000, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 020 */ - { - /* .MessageID = */ PX4_VEHICLE_GPS_POSITION_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_FLIGHT_APP_TLM_PKTS, DS_BY_COUNT, 5, 6, 0 }, - { FILE_FLIGHT_SENSOR_APP_TLM_PKTS, DS_BY_COUNT, 5, 6, 0 }, - { FILE_FLIGHT_MIN_APP_TLM_PKTS, DS_BY_COUNT, 1, 500, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 021 */ - { - /* .MessageID = */ PX4_DISTANCE_SENSOR_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_FLIGHT_APP_TLM_PKTS, DS_BY_COUNT, 10, 250, 0 }, - { FILE_FLIGHT_SENSOR_APP_TLM_PKTS, DS_BY_COUNT, 10, 250, 0 }, - { FILE_FLIGHT_MIN_APP_TLM_PKTS, DS_BY_COUNT, 1, 1000, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 022 */ - { - /* .MessageID = */ PX4_INPUT_RC_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_FLIGHT_APP_TLM_PKTS, DS_BY_COUNT, 5, 50, 0 }, - { FILE_FLIGHT_MIN_APP_TLM_PKTS, DS_BY_COUNT, 1, 1000, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 023 */ - { - /* .MessageID = */ PX4_RC_CHANNELS_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_FLIGHT_APP_TLM_PKTS, DS_BY_COUNT, 1, 250, 0 }, - { FILE_FLIGHT_MIN_APP_TLM_PKTS, DS_BY_COUNT, 1, 2000, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 024 */ - { - /* .MessageID = */ PX4_ACTUATOR_CONTROLS_0_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_FLIGHT_APP_TLM_PKTS, DS_BY_COUNT, 10, 250, 0 }, - { FILE_FLIGHT_DEFAULT_APP_TLM_PKTS, DS_BY_COUNT, 10, 250, 0 }, - { FILE_FLIGHT_MIN_APP_TLM_PKTS, DS_BY_COUNT, 1, 1000, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 025 */ - { - /* .MessageID = */ PX4_ACTUATOR_CONTROLS_1_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_FLIGHT_APP_TLM_PKTS, DS_BY_COUNT, 10, 250, 0 }, - { FILE_FLIGHT_DEFAULT_APP_TLM_PKTS, DS_BY_COUNT, 10, 250, 0 }, - { FILE_FLIGHT_MIN_APP_TLM_PKTS, DS_BY_COUNT, 1, 1000, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 026 */ - { - /* .MessageID = */ PX4_ACTUATOR_OUTPUTS_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_FLIGHT_APP_TLM_PKTS, DS_BY_COUNT, 10, 250, 0 }, - { FILE_FLIGHT_DEFAULT_APP_TLM_PKTS, DS_BY_COUNT, 10, 250, 0 }, - { FILE_FLIGHT_MIN_APP_TLM_PKTS, DS_BY_COUNT, 1, 1000, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 027 */ - { - /* .MessageID = */ PX4_ACTUATOR_ARMED_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_FLIGHT_APP_TLM_PKTS, DS_BY_COUNT, 1, 1, 0 }, - { FILE_FLIGHT_MIN_APP_TLM_PKTS, DS_BY_COUNT, 1, 1, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 028 */ - { - /* .MessageID = */ PX4_BATTERY_STATUS_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_FLIGHT_APP_TLM_PKTS, DS_BY_COUNT, 2, 50, 0 }, - { FILE_FLIGHT_DEFAULT_APP_TLM_PKTS, DS_BY_COUNT, 2, 50, 0 }, - { FILE_FLIGHT_MIN_APP_TLM_PKTS, DS_BY_COUNT, 1, 500, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 029 */ - { - /* .MessageID = */ PX4_COMMANDER_STATE_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_FLIGHT_APP_TLM_PKTS, DS_BY_COUNT, 10, 250, 0 }, - { FILE_FLIGHT_MIN_APP_TLM_PKTS, DS_BY_COUNT, 1, 1000, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 030 */ - { - /* .MessageID = */ PX4_CONTROL_STATE_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_FLIGHT_APP_TLM_PKTS, DS_BY_COUNT, 10, 250, 0 }, - { FILE_FLIGHT_MIN_APP_TLM_PKTS, DS_BY_COUNT, 1, 1000, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 031 */ - { - /* .MessageID = */ PX4_ESTIMATOR_STATUS_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_FLIGHT_APP_TLM_PKTS, DS_BY_COUNT, 5, 125, 0 }, - { FILE_FLIGHT_DEFAULT_APP_TLM_PKTS, DS_BY_COUNT, 5, 125, 0 }, - { FILE_FLIGHT_MIN_APP_TLM_PKTS, DS_BY_COUNT, 1, 500, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 032 */ - { - /* .MessageID = */ PX4_EKF2_INNOVATIONS_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_FLIGHT_APP_TLM_PKTS, DS_BY_COUNT, 5, 125, 0 }, - { FILE_FLIGHT_DEFAULT_APP_TLM_PKTS, DS_BY_COUNT, 5, 125, 0 }, - { FILE_FLIGHT_MIN_APP_TLM_PKTS, DS_BY_COUNT, 1, 500, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 033 */ - { - /* .MessageID = */ PX4_MANUAL_CONTROL_SETPOINT_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_FLIGHT_APP_TLM_PKTS, DS_BY_COUNT, 5, 250, 0 }, - { FILE_FLIGHT_DEFAULT_APP_TLM_PKTS, DS_BY_COUNT, 5, 250, 0 }, - { FILE_FLIGHT_MIN_APP_TLM_PKTS, DS_BY_COUNT, 1, 1000, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 034 */ - { - /* .MessageID = */ PX4_POSITION_SETPOINT_TRIPLET_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_FLIGHT_APP_TLM_PKTS, DS_BY_COUNT, 5, 250, 0 }, - { FILE_FLIGHT_DEFAULT_APP_TLM_PKTS, DS_BY_COUNT, 5, 250, 0 }, - { FILE_FLIGHT_MIN_APP_TLM_PKTS, DS_BY_COUNT, 1, 1000, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 035 */ - { - /* .MessageID = */ PX4_VEHICLE_ATTITUDE_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_FLIGHT_APP_TLM_PKTS, DS_BY_COUNT, 20, 250, 0 }, - { FILE_FLIGHT_DEFAULT_APP_TLM_PKTS, DS_BY_COUNT, 20, 250, 0 }, - { FILE_FLIGHT_MIN_APP_TLM_PKTS, DS_BY_COUNT, 1, 500, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 036 */ - { - /* .MessageID = */ PX4_VEHICLE_ATTITUDE_SETPOINT_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_FLIGHT_APP_TLM_PKTS, DS_BY_COUNT, 10, 250, 0 }, - { FILE_FLIGHT_DEFAULT_APP_TLM_PKTS, DS_BY_COUNT, 10, 250, 0 }, - { FILE_FLIGHT_MIN_APP_TLM_PKTS, DS_BY_COUNT, 1, 1000, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 037 */ - { - /* .MessageID = */ PX4_VEHICLE_RATES_SETPOINT_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_FLIGHT_APP_TLM_PKTS, DS_BY_COUNT, 20, 250, 0 }, - { FILE_FLIGHT_DEFAULT_APP_TLM_PKTS, DS_BY_COUNT, 20, 250, 0 }, - { FILE_FLIGHT_MIN_APP_TLM_PKTS, DS_BY_COUNT, 1, 500, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 038 */ - { - /* .MessageID = */ PX4_VEHICLE_COMMAND_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_FLIGHT_APP_TLM_PKTS, DS_BY_COUNT, 1, 1, 0 }, - { FILE_FLIGHT_DEFAULT_APP_TLM_PKTS, DS_BY_COUNT, 1, 1, 0 }, - { FILE_FLIGHT_MIN_APP_TLM_PKTS, DS_BY_COUNT, 1, 1, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 039 */ - { - /* .MessageID = */ PX4_VEHICLE_GLOBAL_POSITION_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_FLIGHT_APP_TLM_PKTS, DS_BY_COUNT, 5, 125, 0 }, - { FILE_FLIGHT_DEFAULT_APP_TLM_PKTS, DS_BY_COUNT, 5, 125, 0 }, - { FILE_FLIGHT_MIN_APP_TLM_PKTS, DS_BY_COUNT, 1, 1000, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 040 */ - { - /* .MessageID = */ PX4_VEHICLE_GLOBAL_VELOCITY_SETPOINT_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_FLIGHT_APP_TLM_PKTS, DS_BY_COUNT, 5, 250, 0 }, - { FILE_FLIGHT_MIN_APP_TLM_PKTS, DS_BY_COUNT, 1, 2000, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 041 */ - { - /* .MessageID = */ PX4_VEHICLE_LAND_DETECTED_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_FLIGHT_APP_TLM_PKTS, DS_BY_COUNT, 1, 1, 0 }, - { FILE_FLIGHT_DEFAULT_APP_TLM_PKTS, DS_BY_COUNT, 1, 1, 0 }, - { FILE_FLIGHT_MIN_APP_TLM_PKTS, DS_BY_COUNT, 1, 1, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 042 */ - { - /* .MessageID = */ PX4_VEHICLE_LOCAL_POSITION_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_FLIGHT_APP_TLM_PKTS, DS_BY_COUNT, 10, 125, 0 }, - { FILE_FLIGHT_DEFAULT_APP_TLM_PKTS, DS_BY_COUNT, 10, 125, 0 }, - { FILE_FLIGHT_MIN_APP_TLM_PKTS, DS_BY_COUNT, 1, 1000, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 043 */ - { - /* .MessageID = */ PX4_VEHICLE_LOCAL_POSITION_SETPOINT_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_FLIGHT_APP_TLM_PKTS, DS_BY_COUNT, 10, 250, 0 }, - { FILE_FLIGHT_DEFAULT_APP_TLM_PKTS, DS_BY_COUNT, 10, 250, 0 }, - { FILE_FLIGHT_MIN_APP_TLM_PKTS, DS_BY_COUNT, 1, 1000, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 044 */ - { - /* .MessageID = */ PX4_VEHICLE_STATUS_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_FLIGHT_APP_TLM_PKTS, DS_BY_COUNT, 5, 250, 0 }, - { FILE_FLIGHT_DEFAULT_APP_TLM_PKTS, DS_BY_COUNT, 5, 250, 0 }, - { FILE_FLIGHT_MIN_APP_TLM_PKTS, DS_BY_COUNT, 1, 2000, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 045 */ - { - /* .MessageID = */ PX4_HOME_POSITION_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_FLIGHT_APP_TLM_PKTS, DS_BY_COUNT, 1, 1, 0 }, - { FILE_FLIGHT_MIN_APP_TLM_PKTS, DS_BY_COUNT, 1, 1, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 046 */ - { - /* .MessageID = */ PX4_VEHICLE_CONTROL_MODE_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_FLIGHT_APP_TLM_PKTS, DS_BY_COUNT, 10, 250, 0 }, - { FILE_FLIGHT_MIN_APP_TLM_PKTS, DS_BY_COUNT, 1, 1000, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 047 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 048 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 049 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 050 */ - { - /* .MessageID = */ TO_HK_TLM_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_ALL_APP_HK_PKTS, DS_BY_COUNT, 1, 1, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 051 */ - { - /* .MessageID = */ CI_HK_TLM_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_ALL_APP_HK_PKTS, DS_BY_COUNT, 1, 1, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 052 */ - { - /* .MessageID = */ CF_HK_TLM_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_ALL_APP_HK_PKTS, DS_BY_COUNT, 1, 1, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 053 */ - { - /* .MessageID = */ CS_HK_TLM_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_ALL_APP_HK_PKTS, DS_BY_COUNT, 1, 1, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 054 */ - { - /* .MessageID = */ DS_HK_TLM_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_ALL_APP_HK_PKTS, DS_BY_COUNT, 1, 1, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 055 */ - { - /* .MessageID = */ HK_HK_TLM_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_ALL_APP_HK_PKTS, DS_BY_COUNT, 1, 1, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 056 */ - { - /* .MessageID = */ HS_HK_TLM_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_ALL_APP_HK_PKTS, DS_BY_COUNT, 1, 1, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 057 */ - { - /* .MessageID = */ LC_HK_TLM_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_ALL_APP_HK_PKTS, DS_BY_COUNT, 1, 1, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 058 */ - { - /* .MessageID = */ MM_HK_TLM_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_ALL_APP_HK_PKTS, DS_BY_COUNT, 1, 1, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 059 */ - { - /* .MessageID = */ MD_HK_TLM_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_ALL_APP_HK_PKTS, DS_BY_COUNT, 1, 1, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 060 */ - { - /* .MessageID = */ SC_HK_TLM_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_ALL_APP_HK_PKTS, DS_BY_COUNT, 1, 1, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 061 */ - { - /* .MessageID = */ SCH_HK_TLM_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_ALL_APP_HK_PKTS, DS_BY_COUNT, 1, 1, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 062 */ - { - /* .MessageID = */ MPU9250_HK_TLM_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_ALL_APP_HK_PKTS, DS_BY_COUNT, 1, 1, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 063 */ - { - /* .MessageID = */ MS5611_HK_TLM_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_ALL_APP_HK_PKTS, DS_BY_COUNT, 1, 1, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 064 */ - { - /* .MessageID = */ EA_HK_TLM_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_ALL_APP_HK_PKTS, DS_BY_COUNT, 1, 1, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 065 */ - { - /* .MessageID = */ VC_HK_TLM_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_ALL_APP_HK_PKTS, DS_BY_COUNT, 1, 1, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 066 */ - { - /* .MessageID = */ AMC_HK_TLM_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_ALL_APP_HK_PKTS, DS_BY_COUNT, 1, 1, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 067 */ - { - /* .MessageID = */ MAC_HK_TLM_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_ALL_APP_HK_PKTS, DS_BY_COUNT, 1, 1, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 068 */ - { - /* .MessageID = */ ULR_HK_TLM_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_ALL_APP_HK_PKTS, DS_BY_COUNT, 1, 1, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 069 */ - { - /* .MessageID = */ RGBLED_HK_TLM_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_ALL_APP_HK_PKTS, DS_BY_COUNT, 1, 1, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 070 */ - { - /* .MessageID = */ GPS_HK_TLM_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_ALL_APP_HK_PKTS, DS_BY_COUNT, 1, 1, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 071 */ - { - /* .MessageID = */ SENS_HK_TLM_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_ALL_APP_HK_PKTS, DS_BY_COUNT, 1, 1, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 072 */ - { - /* .MessageID = */ QAE_HK_TLM_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_ALL_APP_HK_PKTS, DS_BY_COUNT, 1, 1, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 073 */ - { - /* .MessageID = */ LD_HK_TLM_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_ALL_APP_HK_PKTS, DS_BY_COUNT, 1, 1, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 074 */ - { - /* .MessageID = */ MPC_HK_TLM_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_ALL_APP_HK_PKTS, DS_BY_COUNT, 1, 1, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 075 */ - { - /* .MessageID = */ NAV_HK_TLM_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_ALL_APP_HK_PKTS, DS_BY_COUNT, 1, 1, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 076 */ - { - /* .MessageID = */ RCIN_HK_TLM_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_ALL_APP_HK_PKTS, DS_BY_COUNT, 1, 1, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 077 */ - { - /* .MessageID = */ VM_HK_TLM_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_ALL_APP_HK_PKTS, DS_BY_COUNT, 1, 1, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 078 */ - { - /* .MessageID = */ BAT_HK_TLM_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_ALL_APP_HK_PKTS, DS_BY_COUNT, 1, 1, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 079 */ - { - /* .MessageID = */ PE_HK_TLM_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_ALL_APP_HK_PKTS, DS_BY_COUNT, 1, 1, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 080 */ - { - /* .MessageID = */ HMC5883_HK_TLM_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_ALL_APP_HK_PKTS, DS_BY_COUNT, 1, 1, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 081 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 082 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 083 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 084 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 085 */ - { - /* .MessageID = */ TO_CMD_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_CORE_APP_CMD_PKTS, DS_BY_COUNT, 1, 1, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 086 */ - { - /* .MessageID = */ CI_CMD_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_CORE_APP_CMD_PKTS, DS_BY_COUNT, 1, 1, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 087 */ - { - /* .MessageID = */ CF_CMD_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_CORE_APP_CMD_PKTS, DS_BY_COUNT, 1, 1, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 088 */ - { - /* .MessageID = */ CS_CMD_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_CORE_APP_CMD_PKTS, DS_BY_COUNT, 1, 1, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 089 */ - { - /* .MessageID = */ DS_CMD_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_CORE_APP_CMD_PKTS, DS_BY_COUNT, 1, 1, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 090 */ - { - /* .MessageID = */ FM_CMD_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_CORE_APP_CMD_PKTS, DS_BY_COUNT, 1, 1, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 091 */ - { - /* .MessageID = */ HK_CMD_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_CORE_APP_CMD_PKTS, DS_BY_COUNT, 1, 1, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 092 */ - { - /* .MessageID = */ LC_CMD_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_CORE_APP_CMD_PKTS, DS_BY_COUNT, 1, 1, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 093 */ - { - /* .MessageID = */ MM_CMD_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_CORE_APP_CMD_PKTS, DS_BY_COUNT, 1, 1, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 094 */ - { - /* .MessageID = */ MD_CMD_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_CORE_APP_CMD_PKTS, DS_BY_COUNT, 1, 1, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 095 */ - { - /* .MessageID = */ SC_CMD_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_CORE_APP_CMD_PKTS, DS_BY_COUNT, 1, 1, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 096 */ - { - /* .MessageID = */ SCH_CMD_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_CORE_APP_CMD_PKTS, DS_BY_COUNT, 1, 1, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 097 */ - { - /* .MessageID = */ MPU9250_CMD_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_CORE_APP_CMD_PKTS, DS_BY_COUNT, 1, 1, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 098 */ - { - /* .MessageID = */ MS5611_CMD_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_CORE_APP_CMD_PKTS, DS_BY_COUNT, 1, 1, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 099 */ - { - /* .MessageID = */ EA_CMD_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_CORE_APP_CMD_PKTS, DS_BY_COUNT, 1, 1, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 100 */ - { - /* .MessageID = */ VC_CMD_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_CORE_APP_CMD_PKTS, DS_BY_COUNT, 1, 1, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 101 */ - { - /* .MessageID = */ AMC_CMD_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_CORE_APP_CMD_PKTS, DS_BY_COUNT, 1, 1, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 102 */ - { - /* .MessageID = */ MAC_CMD_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_CORE_APP_CMD_PKTS, DS_BY_COUNT, 1, 1, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 103 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 104 */ - { - /* .MessageID = */ ULR_CMD_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 105 */ - { - /* .MessageID = */ RGBLED_CMD_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 106 */ - { - /* .MessageID = */ GPS_CMD_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 107 */ - { - /* .MessageID = */ SENS_CMD_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 108 */ - { - /* .MessageID = */ QAE_CMD_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 109 */ - { - /* .MessageID = */ LD_CMD_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 110 */ - { - /* .MessageID = */ MPC_CMD_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 111 */ - { - /* .MessageID = */ NAV_CMD_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 112 */ - { - /* .MessageID = */ RCIN_CMD_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 113 */ - { - /* .MessageID = */ VM_CMD_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 114 */ - { - /* .MessageID = */ BAT_CMD_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 115 */ - { - /* .MessageID = */ PE_CMD_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 116 */ - { - /* .MessageID = */ HMC5883_CMD_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 117 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 118 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 119 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 120 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 121 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 122 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 123 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 124 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 125 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 126 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 127 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 128 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 129 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 130 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 131 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 132 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 133 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 134 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 135 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 136 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 137 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 138 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 139 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 140 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 141 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 142 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 143 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 144 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 145 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 146 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 147 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 148 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 149 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 150 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 151 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 152 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 153 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 154 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 155 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 156 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 157 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 158 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 159 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 160 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 161 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 162 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 163 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 164 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 165 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 166 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 167 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 168 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 169 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 170 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 171 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 172 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 173 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 174 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 175 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 176 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 177 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 178 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 179 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 180 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 181 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 182 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 183 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 184 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 185 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 186 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 187 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 188 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 189 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 190 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 191 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 192 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 193 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 194 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 195 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 196 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 197 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 198 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 199 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 200 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 201 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 202 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 203 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 204 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 205 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 206 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 207 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 208 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 209 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 210 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 211 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 212 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 213 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 214 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 215 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 216 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 217 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 218 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 219 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 220 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 221 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 222 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 223 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 224 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 225 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 226 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 227 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 228 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 229 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 230 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 231 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 232 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 233 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 234 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 235 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 236 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 237 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 238 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 239 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 240 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 241 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 242 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 243 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 244 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 245 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 246 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 247 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 248 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 249 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 250 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 251 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 252 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 253 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 254 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 255 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - } - } -}; - -/* -** Sample packet filter table header -*/ -CFE_TBL_FILEDEF(DS_FilterTable, DS.FILTER_TBL, DS Packet Filter Table,ds_filter_tbl.tbl) - - -/************************/ -/* End of File Comment */ -/************************/ diff --git a/config/ocpoc/quadx/target/apps/ea/CMakeLists.txt b/config/ocpoc/quadx/target/apps/ea/CMakeLists.txt deleted file mode 100644 index ae0506220..000000000 --- a/config/ocpoc/quadx/target/apps/ea/CMakeLists.txt +++ /dev/null @@ -1,55 +0,0 @@ -set(APP_NAME ea) - -buildliner_add_app_unit_test(ea-custom-ut - UTASSERT - NANOPB - SOURCES - ${CMAKE_CURRENT_SOURCE_DIR}/unit_test/ea_testrunner.c - ${CMAKE_CURRENT_SOURCE_DIR}/unit_test/ea_custom_test.c - ${CMAKE_CURRENT_SOURCE_DIR}/src/ea_custom.c - ${PROJECT_SOURCE_DIR}/apps/ea/fsw/src/ea_app.c - ${CMAKE_CURRENT_SOURCE_DIR}/unit_test/ea_mock_os_calls.c - ${CMAKE_CURRENT_SOURCE_DIR}/unit_test/ea_test_utils.c - ${PROJECT_SOURCE_DIR}/core/base/ut_assert/src/ut_cfe_es_hooks.c - - INCLUDES - ${PROJECT_SOURCE_DIR}/apps/ea/fsw/src/ - - WRAPPERS - fork - execvp - waitpid - kill - - VALGRIND_SUPPRESSION_FILE - ${CMAKE_CURRENT_SOURCE_DIR}/ea-custom-ut.supp -) - -buildliner_add_app_unit_test(ea-perfmon-ut - UTASSERT - NANOPB - SOURCES - ${CMAKE_CURRENT_SOURCE_DIR}/unit_test/ea_perfmon_testrunner.c - ${CMAKE_CURRENT_SOURCE_DIR}/unit_test/ea_perfmon_test.c - ${CMAKE_CURRENT_SOURCE_DIR}/src/ea_custom.c - ${PROJECT_SOURCE_DIR}/apps/ea/fsw/src/ea_app.c - ${CMAKE_CURRENT_SOURCE_DIR}/unit_test/ea_test_utils.c - ${PROJECT_SOURCE_DIR}/core/base/ut_assert/src/ut_cfe_es_hooks.c - - INCLUDES - ${PROJECT_SOURCE_DIR}/apps/ea/fsw/src/ - - VALGRIND_SUPPRESSION_FILE - ${CMAKE_CURRENT_SOURCE_DIR}/ea-perfmon-ut.supp -) - -add_custom_target( - ea-ut-custom-input-files - COMMAND cp ${CMAKE_CURRENT_SOURCE_DIR}/unit_test/sleep.py ${CMAKE_CURRENT_BINARY_DIR} - COMMAND cp ${CMAKE_CURRENT_SOURCE_DIR}/unit_test/fib.py ${CMAKE_CURRENT_BINARY_DIR} - COMMAND cp ${CMAKE_CURRENT_SOURCE_DIR}/unit_test/noop.py ${CMAKE_CURRENT_BINARY_DIR} -) - -add_dependencies(ea-custom-ut ea-ut-custom-input-files) -add_dependencies(ea-perfmon-ut ea-ut-custom-input-files) - diff --git a/config/ocpoc/quadx/target/apps/ea/ea-custom-ut.supp b/config/ocpoc/quadx/target/apps/ea/ea-custom-ut.supp deleted file mode 100644 index d87eb5ce5..000000000 --- a/config/ocpoc/quadx/target/apps/ea/ea-custom-ut.supp +++ /dev/null @@ -1,27 +0,0 @@ -{ - - Memcheck:Leak - match-leak-kinds: reachable - fun:malloc - fun:UtList_Add - fun:Ut_CFE_EVS_SendEventHook - fun:CFE_EVS_SendEvent - fun:EA_TermAppCustom - fun:Test_EA_Custom_TermApp_Nominal - fun:UtTest_Run - fun:main -} - -{ - - Memcheck:Leak - match-leak-kinds: reachable - fun:malloc - fun:UtList_Add - fun:Ut_CFE_EVS_SendEventHook - fun:CFE_EVS_SendEvent - fun:EA_TermAppCustom - fun:Test_EA_Custom_TermApp_Nominal - fun:UtTest_Run - fun:main -} \ No newline at end of file diff --git a/config/ocpoc/quadx/target/apps/ea/ea-perfmon-ut.supp b/config/ocpoc/quadx/target/apps/ea/ea-perfmon-ut.supp deleted file mode 100644 index e69de29bb..000000000 diff --git a/config/ocpoc/quadx/target/apps/ea/src/ea_custom.c b/config/ocpoc/quadx/target/apps/ea/src/ea_custom.c deleted file mode 100644 index 28daf8659..000000000 --- a/config/ocpoc/quadx/target/apps/ea/src/ea_custom.c +++ /dev/null @@ -1,249 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ - -#include "ea_custom.h" -#include -#include -#include -#include -#include -#include -#include - -#include "ea_platform_cfg.h" -#include "ea_app.h" -#include "ea_msg.h" - -void EA_StartAppCustom() -{ - int32 Status = -1; - Status = CFE_ES_RegisterChildTask(); - - if (Status == CFE_SUCCESS) - { - /* - ** Create child process to execute app - */ - pid_t pid = fork(); - - /* - ** Child process - */ - if (pid == 0) - { - char *argv[] = {EA_AppData.ChildData.Cmd, EA_AppData.ChildData.Args, NULL}; - if(execvp(EA_AppData.ChildData.Cmd, argv) == -1) - { - CFE_EVS_SendEvent(EA_CMD_ERR_EID, CFE_EVS_ERROR, - "Error starting external application"); - } - /* - ** NOTE: This exit is required here as a means to shut down the child process. - */ - exit(0); - } - /* - ** Failed Fork - */ - else if (pid == -1) - { - EA_AppData.HkTlm.usCmdErrCnt++; - CFE_EVS_SendEvent(EA_CMD_ERR_EID, CFE_EVS_ERROR, - "Error starting new process"); - } - /* - ** Parent process - */ - else - { - EA_AppData.HkTlm.usCmdCnt++; - CFE_EVS_SendEvent(EA_INF_APP_START_EID, CFE_EVS_INFORMATION, - "External application started"); - strncpy(EA_AppData.HkTlm.ActiveApp, EA_AppData.ChildData.Args, OS_MAX_PATH_LEN); - EA_AppData.HkTlm.ActiveAppPID = pid; - waitpid(pid, (int*)&EA_AppData.HkTlm.LastAppStatus, 0); - EA_AppData.HkTlm.LastAppStatus = EA_AppData.HkTlm.LastAppStatus; - EA_AppData.HkTlm.ActiveAppPID = 0; - EA_AppData.HkTlm.ActiveAppUtil = 0; - strncpy(EA_AppData.HkTlm.LastAppRun, EA_AppData.HkTlm.ActiveApp, OS_MAX_PATH_LEN); - memset(EA_AppData.HkTlm.ActiveApp, '\0', OS_MAX_PATH_LEN); - memset(EA_AppData.ChildData.Cmd, '\0', OS_MAX_PATH_LEN); - memset(EA_AppData.ChildData.Args, '\0', OS_MAX_PATH_LEN); - - } - }/*end if register child task*/ - else - { - (void) CFE_ES_WriteToSysLog("EA - StartApp Child Task Registration failed!\n"); - } - - EA_AppData.ChildAppTaskID = 0; - EA_AppData.ChildAppTaskInUse = FALSE; - CFE_ES_ExitChildTask(); - - return; -} - -void EA_TermAppCustom() -{ - int kill_status = -1; - - /* - ** Ensure app is currently running - */ - if(EA_AppData.HkTlm.ActiveAppPID != 0) - { - CFE_ES_DeleteChildTask(EA_AppData.ChildAppTaskID); - kill_status = kill(EA_AppData.HkTlm.ActiveAppPID, SIGKILL); - - /* - ** Check kill call return code - */ - if(kill_status == 0) - { - EA_AppData.HkTlm.usCmdCnt++; - EA_AppData.HkTlm.ActiveAppPID = 0; - EA_AppData.HkTlm.ActiveAppUtil = 0; - strncpy(EA_AppData.HkTlm.LastAppRun, EA_AppData.HkTlm.ActiveApp, OS_MAX_PATH_LEN); - EA_AppData.HkTlm.LastAppStatus = -1; // TODO: Add meaningful number to this - memset(EA_AppData.HkTlm.ActiveApp, '\0', OS_MAX_PATH_LEN); - EA_AppData.ChildAppTaskInUse = FALSE; - CFE_EVS_SendEvent(EA_INF_APP_TERM_EID, CFE_EVS_INFORMATION, - "External application terminated"); - } - else - { - EA_AppData.HkTlm.usCmdErrCnt++; - CFE_EVS_SendEvent(EA_CMD_ERR_EID, CFE_EVS_ERROR, - "Unable to terminate application"); - } - } - else - { - EA_AppData.HkTlm.usCmdErrCnt++; - CFE_EVS_SendEvent(EA_CMD_ERR_EID, CFE_EVS_ERROR, - "Attempted to terminate app while none executing"); - } - - return; -} - -void EA_PerfmonCustom(int32 pid) -{ - EA_ProcData_t proc_data = EA_ParsePidUtil(pid); - int dp = proc_data.p_time - EA_AppData.ProcData.p_time; - int dt = proc_data.total_time - EA_AppData.ProcData.total_time; - float util = 100 * EA_APP_NUM_THREADS * (float)dp/ (float)dt; - EA_AppData.ProcData.p_time = proc_data.p_time; - EA_AppData.ProcData.total_time = proc_data.total_time; - EA_AppData.HkTlm.ActiveAppUtil = util; - - return; -} - -EA_ProcData_t EA_ParsePidUtil(int32 pid) -{ - EA_ProcData_t procData; - unsigned long long int utime = 0; - unsigned long long int ntime = 0; - unsigned long long int stime = 0; - unsigned long long int itime = 0; - unsigned long long int io_wait = 0; - unsigned long long int irq = 0; - unsigned long long int soft_irq = 0; - unsigned long long int steal = 0; - unsigned long long int guest = 0; - unsigned long long int guest_nice = 0; - unsigned long long int sys_time, idle_time, total_time, virt_time; - - FILE* proc_stat = fopen("/proc/stat", "r"); - if (proc_stat == NULL) { - OS_printf("Unable to open stat"); - } - - char buf[1024]; - char* data = fgets(buf, sizeof(buf) - 1, proc_stat); - if (data == NULL) - { - OS_printf("Unable to read stat"); - } - - fclose(proc_stat); - - sscanf(buf, "cpu %16llu %16llu %16llu %16llu %16llu %16llu %16llu %16llu %16llu %16llu", - &utime, &ntime, &stime, &itime, &io_wait, &irq, &soft_irq, &steal, &guest, &guest_nice); - utime = utime - guest; - ntime = ntime - guest_nice; - idle_time = itime + io_wait; - sys_time = stime + irq + soft_irq; - virt_time = guest + guest_nice; - total_time = utime + ntime + sys_time + idle_time + steal + virt_time; - procData.total_time = total_time; - - char path[64]; - snprintf(path, sizeof(path), "/proc/%li/stat", pid); - FILE* pid_stat = fopen(path, "r"); - if (pid_stat == NULL) { - OS_printf("Unable to open pid_stat"); - } - - memset(buf, '\0', 1024); - data = fgets(buf, sizeof(buf) - 1, pid_stat); - if (data == NULL) - { - OS_printf("Unable to read pid_stat"); - } - - int utime_ln = 13; - int stime_ln = 14; - int count_ndx = 0; - char *tok; - for (tok = strtok(data," "); tok != NULL; tok = strtok(NULL, " ")) - { - if (count_ndx == utime_ln) - { - utime = atol(tok); - } - if (count_ndx == stime_ln) - { - stime = atol(tok); - } - count_ndx++; - } - - fclose(pid_stat); - - procData.p_time = utime + stime; - - return(procData); -} diff --git a/config/ocpoc/quadx/target/apps/ea/unit_test/ea-custom-ut.supp b/config/ocpoc/quadx/target/apps/ea/unit_test/ea-custom-ut.supp deleted file mode 100644 index f460b1d85..000000000 --- a/config/ocpoc/quadx/target/apps/ea/unit_test/ea-custom-ut.supp +++ /dev/null @@ -1,32 +0,0 @@ -# The following hits are a result of mallocs in UtList_Add. This is -# unit test specific code and does not impact the flight code. - -{ - - Memcheck:Leak - match-leak-kinds: reachable - fun:malloc - fun:UtList_Add - fun:Ut_CFE_EVS_SendEventHook - fun:CFE_EVS_SendEvent - fun:EA_TermAppCustom - fun:Test_EA_Custom_TermApp_Nominal - fun:UtTest_Run - fun:main -} - -{ - - Memcheck:Leak - match-leak-kinds: reachable - fun:malloc - fun:UtList_Add - fun:Ut_CFE_EVS_SendEventHook - fun:CFE_EVS_SendEvent - fun:EA_TermAppCustom - fun:Test_EA_Custom_TermApp_Nominal - fun:UtTest_Run - fun:main -} - -################################### diff --git a/config/ocpoc/quadx/target/apps/ea/unit_test/ea_custom_test.c b/config/ocpoc/quadx/target/apps/ea/unit_test/ea_custom_test.c deleted file mode 100644 index cf816c08d..000000000 --- a/config/ocpoc/quadx/target/apps/ea/unit_test/ea_custom_test.c +++ /dev/null @@ -1,200 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ - -#include "ea_custom_test.h" -#include "ea_test_utils.h" -#include "ea_app.h" -#include "ea_custom.h" -#include "ea_msg.h" - -#include "uttest.h" -#include "ut_osapi_stubs.h" -#include "ut_cfe_sb_stubs.h" -#include "ut_cfe_es_stubs.h" -#include "ut_cfe_es_hooks.h" -#include "ut_cfe_evs_stubs.h" -#include "ut_cfe_evs_hooks.h" -#include "ut_cfe_time_stubs.h" -#include "ut_cfe_psp_memutils_stubs.h" -#include "ut_cfe_tbl_stubs.h" -#include "ut_cfe_fs_stubs.h" -#include "ut_cfe_time_stubs.h" - -char CUSTOM_APP_PATH[OS_MAX_PATH_LEN] = "/usr/bin/python"; -char CUSTOM_TEST_ARG[OS_MAX_PATH_LEN] = "noop.py"; - -int FORK_RET_CODE; -int EXECVP_RET_CODE; -int KILL_RET_CODE; -int WAITPID_RET_CODE; - -int PERFMON_SAMPLES = 50; - -/** - * Test EA_StartAppCustom(), Register Child Task Error - */ -void Test_EA_Custom_StartApp_RegisterChildTaskError(void) -{ - /* Set to cause message "StartApp Child Task Registration failed!" to be printed */ - Ut_CFE_ES_SetReturnCode(UT_CFE_ES_REGISTERCHILDTASK_INDEX, -1, 1); - - /* Execute the function being tested */ - EA_StartAppCustom(); - - /* Verify results */ - /* Note: Cannot verify line OS_printf("StartApp Child Task Registration failed!\n") */ - UtAssert_True (EA_AppData.ChildAppTaskID == 0, "Child task ID = 0"); - UtAssert_True (EA_AppData.ChildAppTaskInUse == FALSE, "Child task not in use"); -} - -/** - * Test EA_StartAppCustom(), Failed fork - */ -void Test_EA_Custom_StartApp_FailFork(void) -{ - /* Set to cause fork to fail */ - FORK_RET_CODE = -1; - - /* Execute the function being tested */ - EA_StartAppCustom(); - - /* Verify results */ - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); - UtAssert_EventSent(EA_CMD_ERR_EID, CFE_EVS_ERROR, - "Error starting new process", "Error starting new process"); - UtAssert_True(EA_AppData.HkTlm.usCmdErrCnt==1,"Command Error Count = 1"); -} - -/** - * Test EA_StartAppCustom(), Nominal - */ -void Test_EA_Custom_StartApp_Nominal(void) -{ - /* Set so everything looks valid */ - strncpy(EA_AppData.ChildData.Cmd, CUSTOM_APP_PATH, OS_MAX_PATH_LEN); - strncpy(EA_AppData.ChildData.Args, CUSTOM_TEST_ARG, OS_MAX_PATH_LEN); - FORK_RET_CODE = 1; - WAITPID_RET_CODE = 2; - - /* Execute the function being tested */ - EA_StartAppCustom(); - - /* Verify results */ - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); - UtAssert_EventSent(EA_INF_APP_START_EID, CFE_EVS_INFORMATION, "External application started", "External application started"); - UtAssert_True(EA_AppData.HkTlm.usCmdCnt==1,"Command Count = 1"); - - /* Verify cleanup too since app instantly exits for test */ - UtAssert_True(EA_AppData.HkTlm.ActiveAppPID==0,"ActiveAppPID = 0"); - UtAssert_True(EA_AppData.HkTlm.ActiveAppUtil==0,"ActiveAppUtil = 0");// - UtAssert_True(EA_AppData.ChildAppTaskInUse==FALSE,"ChildAppTaskInUse = FALSE"); - UtAssert_StrCmp(EA_AppData.HkTlm.LastAppRun, CUSTOM_TEST_ARG, "Last Active App set"); - UtAssert_True(EA_AppData.HkTlm.LastAppStatus==2,"LastAppStatus = waitpid return code"); -} - -/** - * Test EA_TermAppCustom(), No app running - */ -void Test_EA_Custom_TermApp_NoneActive(void) -{ - /* Set to cause conditional to fail */ - EA_AppData.HkTlm.ActiveAppPID = 0; - - /* Execute the function being tested */ - EA_TermAppCustom(); - - /* Verify results */ - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); - UtAssert_EventSent(EA_CMD_ERR_EID, CFE_EVS_ERROR, - "Attempted to terminate app while none executing", "No active app"); - UtAssert_True(EA_AppData.HkTlm.usCmdErrCnt==1,"Command Error Count = 1"); -} - -/** - * Test EA_TermAppCustom(), Failed kill - */ -void Test_EA_Custom_TermApp_KillFail(void) -{ - /* Set to cause kill to fail */ - EA_AppData.HkTlm.ActiveAppPID = 1; - KILL_RET_CODE = -1; - - /* Execute the function being tested */ - EA_TermAppCustom(); - - /* Verify results */ - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); - UtAssert_EventSent(EA_CMD_ERR_EID, CFE_EVS_ERROR, - "Unable to terminate application", "Unable to terminate application"); - UtAssert_True(EA_AppData.HkTlm.usCmdErrCnt==1,"Command Error Count = 1"); -} - -/** - * Test EA_TermAppCustom(), Nominal - */ -void Test_EA_Custom_TermApp_Nominal(void) -{ - /* Set active app params that TermApp will clear or copy to last app params */ - EA_AppData.HkTlm.ActiveAppPID = 1; - EA_AppData.HkTlm.ActiveAppUtil = 2; - EA_AppData.ChildAppTaskInUse = TRUE; - strncpy(EA_AppData.HkTlm.ActiveApp, CUSTOM_TEST_ARG, OS_MAX_PATH_LEN); - KILL_RET_CODE = 0; - - /* Execute the function being tested */ - EA_TermAppCustom(); - - /* Verify results */ - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); - UtAssert_EventSent(EA_INF_APP_TERM_EID, CFE_EVS_INFORMATION,"", "External application terminated"); - UtAssert_True(EA_AppData.HkTlm.usCmdCnt==1,"Command Count = 1"); - UtAssert_True(EA_AppData.HkTlm.ActiveAppPID==0,"ActiveAppPID = 0"); - UtAssert_True(EA_AppData.HkTlm.ActiveAppUtil==0,"ActiveAppUtil = 0");// - UtAssert_True(EA_AppData.ChildAppTaskInUse==FALSE,"ChildAppTaskInUse = FALSE"); - UtAssert_StrCmp(EA_AppData.HkTlm.LastAppRun, CUSTOM_TEST_ARG, "Last Active App set"); - UtAssert_True(EA_AppData.HkTlm.LastAppStatus==-1,"LastAppStatus = -1"); -} - -/************************************************************************** - * Rollup Test Cases - **************************************************************************/ -void EA_Custom_Test_AddTestCases(void) -{ - UtTest_Add(Test_EA_Custom_StartApp_RegisterChildTaskError, EA_Test_Setup, EA_Test_TearDown, "Test_EA_Custom_StartApp_RegisterChildTaskError"); - UtTest_Add(Test_EA_Custom_StartApp_FailFork, EA_Test_Setup, EA_Test_TearDown, "Test_EA_Custom_StartApp_FailFork"); - UtTest_Add(Test_EA_Custom_StartApp_Nominal, EA_Test_Setup, EA_Test_TearDown, "Test_EA_Custom_StartApp_Nominal"); - UtTest_Add(Test_EA_Custom_TermApp_NoneActive, EA_Test_Setup, EA_Test_TearDown, "Test_EA_Custom_TermApp_NoneActive"); - UtTest_Add(Test_EA_Custom_TermApp_KillFail, EA_Test_Setup, EA_Test_TearDown, "Test_EA_Custom_TermApp_KillFail"); - UtTest_Add(Test_EA_Custom_TermApp_Nominal, EA_Test_Setup, EA_Test_TearDown, "Test_EA_Custom_TermApp_Nominal"); -} - diff --git a/config/ocpoc/quadx/target/apps/ea/unit_test/ea_custom_test.h b/config/ocpoc/quadx/target/apps/ea/unit_test/ea_custom_test.h deleted file mode 100644 index 0ba43986e..000000000 --- a/config/ocpoc/quadx/target/apps/ea/unit_test/ea_custom_test.h +++ /dev/null @@ -1,49 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ - -#ifndef EA_CUSTOM_TEST_H -#define EA_CUSTOM_TEST_H - -#ifdef __cplusplus -extern "C" { -#endif - -void EA_Custom_Test_AddTestCases(void); -int EA_CalibrateTop(int pid); -int EA_GetPidUtil(int pid, int util_ndx); - -#ifdef __cplusplus -} -#endif - -#endif /* EA_CUSTOM_TEST_H */ diff --git a/config/ocpoc/quadx/target/apps/ea/unit_test/ea_mock_os_calls.c b/config/ocpoc/quadx/target/apps/ea/unit_test/ea_mock_os_calls.c deleted file mode 100644 index ec8b52ec8..000000000 --- a/config/ocpoc/quadx/target/apps/ea/unit_test/ea_mock_os_calls.c +++ /dev/null @@ -1,62 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ - -#include - -int FORK_RET_CODE = 0; -int EXECVP_RET_CODE = 0; -int KILL_RET_CODE = 0; -int WAITPID_RET_CODE = 0; - -//void __real_fork(); - -pid_t __wrap_fork() -{ - return FORK_RET_CODE; -} - -int __wrap_execvp(const char *file, char *const argv[]) -{ - return EXECVP_RET_CODE; -} - -int __wrap_kill(int pid, int signal) -{ - return KILL_RET_CODE; -} - -pid_t __wrap_waitpid(pid_t pid, int *status, int options) -{ - *status = WAITPID_RET_CODE; - return WAITPID_RET_CODE; -} diff --git a/config/ocpoc/quadx/target/apps/ea/unit_test/ea_mock_os_calls.h b/config/ocpoc/quadx/target/apps/ea/unit_test/ea_mock_os_calls.h deleted file mode 100644 index ac9d19b7f..000000000 --- a/config/ocpoc/quadx/target/apps/ea/unit_test/ea_mock_os_calls.h +++ /dev/null @@ -1,57 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ - -#ifndef EA_MOCK_OS_CALLS_H -#define EA_MOCK_OS_CALLS_H - -#ifdef __cplusplus -extern "C" { -#endif - -//#define fork() mock_fork() -//#define execvp(...) mock_execvp(__VA_ARGS__) -//#define kill(...) mock_kill(__VA_ARGS__) - -extern int FORK_RET_CODE; -extern int EXECVP_RET_CODE; -extern int KILL_RET_CODE; -extern int WAITPID_RET_CODE -//int __wrap_fork(); -//int __wrap_execvp(const char *file, char *const argv[]); -//int __wrap_kill(int pid, int signal); - -#ifdef __cplusplus -} -#endif - -#endif /* MOCK_OS_CALLS_H */ diff --git a/config/ocpoc/quadx/target/apps/ea/unit_test/ea_perfmon_test.c b/config/ocpoc/quadx/target/apps/ea/unit_test/ea_perfmon_test.c deleted file mode 100644 index c3554a95f..000000000 --- a/config/ocpoc/quadx/target/apps/ea/unit_test/ea_perfmon_test.c +++ /dev/null @@ -1,192 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ - -#include "ea_perfmon_test.h" -#include "ea_test_utils.h" -#include "ea_app.h" -#include "ea_custom.h" -#include "ea_msg.h" - -#include "uttest.h" -#include "ut_osapi_stubs.h" -#include "ut_cfe_sb_stubs.h" -#include "ut_cfe_es_stubs.h" -#include "ut_cfe_es_hooks.h" -#include "ut_cfe_evs_stubs.h" -#include "ut_cfe_evs_hooks.h" -#include "ut_cfe_time_stubs.h" -#include "ut_cfe_psp_memutils_stubs.h" -#include "ut_cfe_tbl_stubs.h" -#include "ut_cfe_fs_stubs.h" -#include "ut_cfe_time_stubs.h" - -char PERFMON_APP_PATH[OS_MAX_PATH_LEN] = "/usr/bin/python"; -char PERFMON_TEST_ARG_FIB[OS_MAX_PATH_LEN] = "fib.py"; -char PERFMON_TEST_ARG_SLP[OS_MAX_PATH_LEN] = "sleep.py"; -int PERFMON_SAMPLES = 5; - -/** - * Test EA_PerfmonCustom(), Nominal - */ -void Test_EA_PerfmonCustom_Nominal(void) -{ - /* - ** Create child process to execute test app - */ - pid_t pid = fork(); - /* - ** Child process - */ - if (pid == 0) - { - char *argv[] = {PERFMON_APP_PATH, PERFMON_TEST_ARG_FIB, NULL}; - if(execvp(PERFMON_APP_PATH, argv) == -1) - { - printf("Unable to execute new process\n"); - } - exit(0); - } - /* - ** Failed Fork - */ - else if (pid == -1) - { - printf("Unable to execute fork\n"); - } - /* - ** Parent process - */ - else - { - int high_util_flag = 0; - int low_util_flag = 0; - int util = 0; - int count = 0; - while(count < PERFMON_SAMPLES) - { - /* Get current util */ - EA_PerfmonCustom(pid); - util = EA_AppData.HkTlm.ActiveAppUtil; - - /* Test if util in expected ranges */ - if(util >= 0 && util <= 100) - { - low_util_flag = 1; - } - if(util > 30 && util <= 100) - { - high_util_flag = 1; - } - count += 1; - sleep(1); - } - - /* Verify results */ - UtAssert_True(low_util_flag==1, "Hit low util threshold"); - UtAssert_True(high_util_flag==1, "Hit high util threshold"); - } -} - -/** - * Test EA_PerfmonCustom(), Idle - */ -void Test_EA_PerfmonCustom_Idle(void) -{ - /* - ** Create child process to execute test app - */ - pid_t pid = fork(); - /* - ** Child process - */ - if (pid == 0) - { - char *argv[] = {PERFMON_APP_PATH, PERFMON_TEST_ARG_SLP, NULL}; - if(execvp(PERFMON_APP_PATH, argv) == -1) - { - printf("Unable to execute new process\n"); - } - exit(0); - } - /* - ** Failed Fork - */ - else if (pid == -1) - { - printf("Unable to execute fork\n"); - } - /* - ** Parent process - */ - else - { - int high_util_flag = 0; - int low_util_flag = 0; - int util = 0; - int count = 0; - while(count < PERFMON_SAMPLES) - { - /* Get current util */ - EA_PerfmonCustom(pid); - util = EA_AppData.HkTlm.ActiveAppUtil; - - /* Test if util in expected ranges */ - if(util >= 0 && util <= 100) - { - low_util_flag = 1; - } - if(util > 50 && util <= 100) - { - high_util_flag = 1; - } - count += 1; - sleep(1); - } - - /* Verify results */ - UtAssert_True(low_util_flag==1, "Hit low util threshold"); - UtAssert_True(high_util_flag==0, "Hit high util threshold"); - } -} - - - -/************************************************************************** - * Rollup Test Cases - **************************************************************************/ -void EA_Perfmon_Test_AddTestCases(void) -{ - UtTest_Add(Test_EA_PerfmonCustom_Nominal, EA_Test_Setup, EA_Test_TearDown, "Test_EA_PerfmonCustom_Nominal"); - UtTest_Add(Test_EA_PerfmonCustom_Idle, EA_Test_Setup, EA_Test_TearDown, "Test_EA_PerfmonCustom_Idle"); -} - diff --git a/config/ocpoc/quadx/target/apps/ea/unit_test/ea_perfmon_test.h b/config/ocpoc/quadx/target/apps/ea/unit_test/ea_perfmon_test.h deleted file mode 100644 index 0ba43986e..000000000 --- a/config/ocpoc/quadx/target/apps/ea/unit_test/ea_perfmon_test.h +++ /dev/null @@ -1,49 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ - -#ifndef EA_CUSTOM_TEST_H -#define EA_CUSTOM_TEST_H - -#ifdef __cplusplus -extern "C" { -#endif - -void EA_Custom_Test_AddTestCases(void); -int EA_CalibrateTop(int pid); -int EA_GetPidUtil(int pid, int util_ndx); - -#ifdef __cplusplus -} -#endif - -#endif /* EA_CUSTOM_TEST_H */ diff --git a/config/ocpoc/quadx/target/apps/ea/unit_test/ea_perfmon_testrunner.c b/config/ocpoc/quadx/target/apps/ea/unit_test/ea_perfmon_testrunner.c deleted file mode 100644 index cbfb60861..000000000 --- a/config/ocpoc/quadx/target/apps/ea/unit_test/ea_perfmon_testrunner.c +++ /dev/null @@ -1,46 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ - -#include "uttest.h" - -#include "ea_perfmon_test.h" - -void EA_Perfmon_Test_AddTestCases(void); - -int main(void) -{ - EA_Perfmon_Test_AddTestCases(); - - return(UtTest_Run()); -} - diff --git a/config/ocpoc/quadx/target/apps/ea/unit_test/ea_test_utils.c b/config/ocpoc/quadx/target/apps/ea/unit_test/ea_test_utils.c deleted file mode 100644 index b82004805..000000000 --- a/config/ocpoc/quadx/target/apps/ea/unit_test/ea_test_utils.c +++ /dev/null @@ -1,73 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ - -#include "ea_test_utils.h" - -#include "ut_cfe_evs_hooks.h" -#include "ut_cfe_time_stubs.h" -#include "ut_cfe_psp_memutils_stubs.h" -#include "ut_cfe_tbl_stubs.h" -#include "ut_cfe_tbl_hooks.h" -#include "ut_cfe_fs_stubs.h" -#include "ut_cfe_time_stubs.h" -#include "ut_osapi_stubs.h" -#include "ut_osfileapi_stubs.h" -#include "ut_cfe_sb_stubs.h" -#include "ut_cfe_es_stubs.h" -#include "ut_cfe_evs_stubs.h" - -#include - -/* - * Function Definitions - */ - -void EA_Test_Setup(void) -{ - /* initialize test environment to default state for every test */ - - CFE_PSP_MemSet(&EA_AppData, 0x00, sizeof(EA_AppData_t)); - - Ut_CFE_EVS_Reset(); - Ut_CFE_FS_Reset(); - Ut_CFE_TIME_Reset(); - Ut_CFE_TBL_Reset(); - Ut_CFE_SB_Reset(); - Ut_CFE_ES_Reset(); - Ut_OSAPI_Reset(); - Ut_OSFILEAPI_Reset(); -} - -void EA_Test_TearDown(void) { - CFE_PSP_MemSet(&EA_AppData, 0x00, sizeof(EA_AppData_t)); -} diff --git a/config/ocpoc/quadx/target/apps/ea/unit_test/ea_test_utils.h b/config/ocpoc/quadx/target/apps/ea/unit_test/ea_test_utils.h deleted file mode 100644 index f4f8f8518..000000000 --- a/config/ocpoc/quadx/target/apps/ea/unit_test/ea_test_utils.h +++ /dev/null @@ -1,62 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ - -#ifndef EA_TEST_UTILS_H -#define EA_TEST_UTILS_H - -/* - * Includes - */ - -#include "ea_app.h" - -extern EA_AppData_t EA_AppData; - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * Function Definitions - */ - -void EA_Test_Setup(void); -void EA_Test_TearDown(void); - - -#ifdef __cplusplus -} -#endif - -#endif /* EA_TEST_UTILS_H */ - diff --git a/config/ocpoc/quadx/target/apps/ea/unit_test/ea_testrunner.c b/config/ocpoc/quadx/target/apps/ea/unit_test/ea_testrunner.c deleted file mode 100644 index 9f37d7cb6..000000000 --- a/config/ocpoc/quadx/target/apps/ea/unit_test/ea_testrunner.c +++ /dev/null @@ -1,44 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ - -#include "uttest.h" - -#include "ea_custom_test.h" - -int main(void) -{ - EA_Custom_Test_AddTestCases(); - - return(UtTest_Run()); -} - diff --git a/config/ocpoc/quadx/target/apps/ea/unit_test/fib.py b/config/ocpoc/quadx/target/apps/ea/unit_test/fib.py deleted file mode 100644 index 863d2a64d..000000000 --- a/config/ocpoc/quadx/target/apps/ea/unit_test/fib.py +++ /dev/null @@ -1,14 +0,0 @@ -import sys -import time - -def fib(n): - if n < 0: - return 0 - if n == 0 or n == 1: - return 1 - else: - return fib(n-1) + fib(n-2) - -f = fib(40) - -sys.exit(3) diff --git a/config/ocpoc/quadx/target/apps/ea/unit_test/noop.py b/config/ocpoc/quadx/target/apps/ea/unit_test/noop.py deleted file mode 100644 index de2b0fb69..000000000 --- a/config/ocpoc/quadx/target/apps/ea/unit_test/noop.py +++ /dev/null @@ -1,3 +0,0 @@ -import sys -print "Python: Noop" -sys.exit(3) diff --git a/config/ocpoc/quadx/target/apps/ea/unit_test/sleep.py b/config/ocpoc/quadx/target/apps/ea/unit_test/sleep.py deleted file mode 100644 index 90aa057a5..000000000 --- a/config/ocpoc/quadx/target/apps/ea/unit_test/sleep.py +++ /dev/null @@ -1,6 +0,0 @@ -import sys -import time - -time.sleep(5) - -sys.exit(3) diff --git a/config/ocpoc/quadx/target/apps/flow/CMakeLists.txt b/config/ocpoc/quadx/target/apps/flow/CMakeLists.txt deleted file mode 100644 index af4c74ebf..000000000 --- a/config/ocpoc/quadx/target/apps/flow/CMakeLists.txt +++ /dev/null @@ -1,8 +0,0 @@ -set(APP_NAME flow) - -buildliner_add_table( - ${APP_NAME} - NAME flow_config - SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/tables/flow_config.c - INCLUDES ${CMAKE_CURRENT_SOURCE_DIR}/src/ -) diff --git a/config/ocpoc/quadx/target/apps/flow/tables/flow_config.c b/config/ocpoc/quadx/target/apps/flow/tables/flow_config.c deleted file mode 100644 index c5defdaa1..000000000 --- a/config/ocpoc/quadx/target/apps/flow/tables/flow_config.c +++ /dev/null @@ -1,80 +0,0 @@ -/* -** Include Files -*/ -#include "cfe_tbl_filedef.h" -#include "flow_tbldefs.h" - - -/* Default FLOW config table data */ -FLOW_ConfigTbl_t FLOW_ConfigTbl = -{ - /** \brief Horizontal field of view. - * - * \par Limits: - * default 0.088. - */ - 0.10934f, - /** \brief Size of sliding window. - * - * \par Limits: - * Min > Max (incr.) 2 > 10, default 8. - */ - 8, - /** \brief Number of blocks of sliding window. - * - * \par Limits: - * Min > Max (incr.) 2 > 10, default 5. - */ - 5, - /** \brief Default image output rate. - * - * \par Limits: - * default 15. - */ - 10, - /** \brief Default image width. - * - * \par Limits: - * default 64. - */ - 64, - /** \brief Default image height. - * - * \par Limits: - * default 64. - */ - 64, - /** \brief Default image search size. - * - * \par Limits: - * default 6. - */ - 6, - /** \brief Default feature threshold. - * - * \par Limits: - * default 30. - */ - 30, - /** \brief Default value threshold. - * - * \par Limits: - * default 3000. - */ - 3000, - /** \brief Mean count threshold. - * - * \par Limits: - * default 10. - */ - 10 -}; - - -/* Table file header */ -CFE_TBL_FILEDEF(FLOW_ConfigTbl, FLOW.CONFIG_TBL, FLOW default config table, flow_config.tbl ) - -/*======================================================================================= -** End of file flow_config.c -**=====================================================================================*/ - diff --git a/config/ocpoc/quadx/target/apps/ld/tables/ld_config.c b/config/ocpoc/quadx/target/apps/ld/tables/ld_config.c deleted file mode 100644 index 06153be52..000000000 --- a/config/ocpoc/quadx/target/apps/ld/tables/ld_config.c +++ /dev/null @@ -1,151 +0,0 @@ -/* -** Pragmas -*/ - -/* -** Include Files -*/ -#include "cfe_tbl_filedef.h" -#include "ld_tbldefs.h" - -/* -** Local Defines -*/ - -/* -** Local Structure Declarations -*/ -static OS_USED CFE_TBL_FileDef_t CFE_TBL_FileDef = -{ - /* Content format: ObjName[64], TblName[38], Desc[32], TgtFileName[20], ObjSize - ** ObjName - variable name of config table, e.g., CI_ConfigDefTbl[] - ** TblName - app's table name, e.g., CI.CONFIG_TBL, where CI is the same app name - ** used in cfe_es_startup.scr, and CI_defConfigTbl is the same table - ** name passed in to CFE_TBL_Register() - ** Desc - description of table in string format - ** TgtFileName[20] - table file name, compiled as .tbl file extension - ** ObjSize - size of the entire table - */ - - "LD_ConfigTbl", "LD.CONFIG_TBL", "LD default config table", - "ld_config.tbl", (sizeof(LD_ConfigTbl_t)) -}; - -/* -** External Global Variables -*/ - -/* -** Global Variables -*/ - -/* Default ULR config table data */ -LD_ConfigTbl_t LD_ConfigTbl = -{ - /** \brief Multicopter max climb rate. - * - * \par Limits: - * default 0.5. - */ - 0.5, - - /** \brief Multicopter max horizontal velocity. - * - * \par Limits: - * default 1.5. - */ - 1.50, - - /** \brief Multicopter max rotation. - * - * \par Limits: - * default 20.0. - */ - 20.0, - - /** \brief Multicopter specific force threshold. - * - * \par Limits: - * Min > Max (incr.) 0.1 > 10 , default 2.0. - */ - 2.0, - - /** \brief Multicopter free-fall trigger time. - * - * \par Limits: - * Min > Max (incr.) 0.02 > 5 , default 0.3. - */ - 0.3, - - /** \brief Multicopter Flight stick down threshold for landing. - * - * \par Limits: - * default 0.15. - */ - 0.15, - - /** \brief Multicopter maximum altitude. - * - * \par Limits: - * default 10000.0. - */ - 10000.0, - - /** \brief Multicopter low throttle threshold. - * - * \par Limits: - * default 0.3. - */ - 0.35, - - /** \brief Multicopter minimum throttle in manual mode. - * - * \par Limits: - * default 0.08. - */ - 0.08, - - /** \brief Multicopter takeoff stick up threshold in position control mode. - * - * \par Limits: - * default 0.65. - */ - 0.65, - - /** \brief Multicopter takeoff stick down threshold in position control mode. - * - * \par Limits: - * default 0.15. - */ - 0.15, - - /** \brief Landing descend rate. - * - * \par Limits: - * default 0.5. - */ - 0.3f, - - /** \brief Min Thust No Altitude Lock Land Timout. - * - * \par Limits: - * default 8000000. - */ - 8000000 -}; - -/* -** Local Variables -*/ - -/* -** Function Prototypes -*/ - -/* -** Function Definitions -*/ - -/*======================================================================================= -** End of file ld_config.c -**=====================================================================================*/ diff --git a/config/ocpoc/quadx/target/apps/lgc/CMakeLists.txt b/config/ocpoc/quadx/target/apps/lgc/CMakeLists.txt deleted file mode 100644 index bee42f981..000000000 --- a/config/ocpoc/quadx/target/apps/lgc/CMakeLists.txt +++ /dev/null @@ -1,7 +0,0 @@ -set(APP_NAME lgc) - -buildliner_add_table( - ${APP_NAME} - NAME lgc_config - SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/tables/lgc_config.c -) diff --git a/config/ocpoc/quadx/target/apps/lgc/lgc_custom.cpp b/config/ocpoc/quadx/target/apps/lgc/lgc_custom.cpp deleted file mode 100644 index 6f6de1e93..000000000 --- a/config/ocpoc/quadx/target/apps/lgc/lgc_custom.cpp +++ /dev/null @@ -1,147 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ - -#include "cfe.h" -#include "lgc_app.h" -#include -#include -#include -#include -#include -#include - -#define LGC_RCOUT_ZYNQ_PWM_BASE (0x43c00000) -#define LGC_FREQUENCY_PWM (400) -#define LGC_TICK_PER_S (50000000) -#define LGC_TICK_PER_US (50) -#define LGC_DEVICE_PATH "/dev/mem" -#define MOTOR_OUTPUTS_SKIPPED (8) - - -/* The following struct is used by the LGC_SharedMemCmd_t struct and overlayed - * over the ocpoc PPM registers to control the PWM hardware. - */ -typedef struct { - uint32 Period; - uint32 Hi; -} LGC_PeriodHi_t; - - -/* The following struct is overlayed over the ocpoc PPM registers to control - * the PWM hardware. - */ -typedef struct -{ - LGC_PeriodHi_t PeriodHi[MOTOR_OUTPUTS_SKIPPED + LGC_MAX_GEAR_OUTPUTS]; -} LGC_SharedMemCmd_t; - -volatile LGC_SharedMemCmd_t *LGC_SharedMemCmd; - - -/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ -/* */ -/* LGC_Freq2tick function. */ -/* */ -/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ -uint32 LGC_Freq2tick(uint16 FreqHz); - - -/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ -/* */ -/* LGC::InitDevice function. */ -/* */ -/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ -int32 LGC::InitDevice(void) -{ - uint32 i = 0; - int returnVal = 0; - int mem_fd = 0; - - /* Initialize just in case we were reloaded and the ctor wasn't called. */ - LGC_SharedMemCmd = 0; - - mem_fd = open(LGC_DEVICE_PATH, O_RDWR | O_SYNC); - LGC_SharedMemCmd = (LGC_SharedMemCmd_t *) mmap(0, 0x1000, - PROT_READ | PROT_WRITE, MAP_SHARED, mem_fd, - LGC_RCOUT_ZYNQ_PWM_BASE); - close(mem_fd); - - if (LGC_SharedMemCmd == 0) - { - returnVal = errno; - goto end_of_function; - } - - // Note: this appears to be required actuators to initialize - for (i = MOTOR_OUTPUTS_SKIPPED; i < (MOTOR_OUTPUTS_SKIPPED + LGC_MAX_GEAR_OUTPUTS); ++i) - { - LGC_SharedMemCmd->PeriodHi[i].Period = - LGC_Freq2tick(LGC_FREQUENCY_PWM); - LGC_SharedMemCmd->PeriodHi[i].Hi = - LGC_Freq2tick(LGC_FREQUENCY_PWM) / 2; - } - -end_of_function: - return returnVal; -} - - -/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ -/* */ -/* LGC::SetMotorOutputs function. */ -/* */ -/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ -void LGC::SetMotorOutputs(const uint16 *PWM) -{ - uint32 i = 0; - - /* Convert this to duty_cycle in ns */ - for (i = MOTOR_OUTPUTS_SKIPPED; i < (MOTOR_OUTPUTS_SKIPPED + LGC_MAX_GEAR_OUTPUTS); ++i) - { - LGC_SharedMemCmd->PeriodHi[i].Hi = LGC_TICK_PER_US * PWM[(i - MOTOR_OUTPUTS_SKIPPED)]; - } - return; -} - - -/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ -/* */ -/* LGC_Freq2tick function. */ -/* */ -/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ -uint32 LGC_Freq2tick(uint16 FreqHz) -{ - uint32 duty = LGC_TICK_PER_S / (unsigned long)FreqHz; - - return duty; -} diff --git a/config/ocpoc/quadx/target/apps/lgc/tables/lgc_config.c b/config/ocpoc/quadx/target/apps/lgc/tables/lgc_config.c deleted file mode 100644 index 1f57ca8da..000000000 --- a/config/ocpoc/quadx/target/apps/lgc/tables/lgc_config.c +++ /dev/null @@ -1,65 +0,0 @@ -/* -** Pragmas -*/ - -/* -** Include Files -*/ -#include "cfe_tbl_filedef.h" -#include "lgc_tbldefs.h" - -/* -** Local Defines -*/ - -/* -** Local Structure Declarations -*/ -static OS_USED CFE_TBL_FileDef_t CFE_TBL_FileDef = -{ - /* Content format: ObjName[64], TblName[38], Desc[32], TgtFileName[20], ObjSize - ** ObjName - variable name of config table, e.g., CI_ConfigDefTbl[] - ** TblName - app's table name, e.g., CI.CONFIG_TBL, where CI is the same app name - ** used in cfe_es_startup.scr, and CI_defConfigTbl is the same table - ** name passed in to CFE_TBL_Register() - ** Desc - description of table in string format - ** TgtFileName[20] - table file name, compiled as .tbl file extension - ** ObjSize - size of the entire table - */ - - "LGC_ConfigTbl", "LGC.CONFIG_TBL", "LGC default config table", - "lgc_config.tbl", (sizeof(LGC_ConfigTbl_t)) -}; - -/* -** External Global Variables -*/ - -/* -** Global Variables -*/ - -/* Default LGC config table data */ -LGC_ConfigTbl_t LGC_ConfigTbl = -{ - 900, /* PwmDisarmed */ - 1000, /* PwmMin */ - 2000 /* PwmMax */ -}; - -/* -** Local Variables -*/ - -/* -** Function Prototypes -*/ - -/* -** Function Definitions -*/ - -/*======================================================================================= -** End of file lgc_config.c -**=====================================================================================*/ - diff --git a/config/ocpoc/quadx/target/apps/mpu9250/tables/mpu9250_config.c b/config/ocpoc/quadx/target/apps/mpu9250/tables/mpu9250_config.c deleted file mode 100644 index cc2334069..000000000 --- a/config/ocpoc/quadx/target/apps/mpu9250/tables/mpu9250_config.c +++ /dev/null @@ -1,93 +0,0 @@ -/* -** Pragmas -*/ - -/* -** Include Files -*/ -#include "cfe_tbl_filedef.h" -#include "mpu9250_tbldefs.h" - -/* -** Local Defines -*/ - -/* -** Local Structure Declarations -*/ -static OS_USED CFE_TBL_FileDef_t CFE_TBL_FileDef = -{ - /* Content format: ObjName[64], TblName[38], Desc[32], TgtFileName[20], ObjSize - ** ObjName - variable name of config table, e.g., CI_ConfigDefTbl[] - ** TblName - app's table name, e.g., CI.CONFIG_TBL, where CI is the same app name - ** used in cfe_es_startup.scr, and CI_defConfigTbl is the same table - ** name passed in to CFE_TBL_Register() - ** Desc - description of table in string format - ** TgtFileName[20] - table file name, compiled as .tbl file extension - ** ObjSize - size of the entire table - */ - - "MPU9250_ConfigTbl", "MPU9250.CONFIG_TBL", "MPU9250 default config table", - "mpu9250_config.tbl", (sizeof(MPU9250_ConfigTbl_t)) -}; - -/* -** External Global Variables -*/ - -/* -** Global Variables -*/ - -/* Default MPU9250 config table data */ -MPU9250_ConfigTbl_t MPU9250_ConfigTbl = -{ - /* User calibration params */ - /* AccXScale */ - 1.002483367919921875f, - /* AccYScale */ - 1.002597928047180176f, - /* AccZScale */ - 0.991139471530914307f, - /* AccXOffset */ - 0.018333911895751953f, - /* AccYOffset */ - -0.134463787078857422f, - /* AccZOffset */ - 0.048464775085449219f, - /* GyroXScale */ - 1.0f, - /* GyroYScale */ - 1.0f, - /* GyroZScale */ - 1.0f, - /* GyroXOffset */ - 0.019233696162700653f, - /* GyroYOffset */ - 0.024173684418201447f, - /* GyroZOffset */ - -0.008248925209045410f - /* MagXScale */ - /* MagYScale */ - /* MagZScale */ - /* MagXOffset */ - /* MagYOffset */ - /* MagZOffset */ -}; - -/* -** Local Variables -*/ - -/* -** Function Prototypes -*/ - -/* -** Function Definitions -*/ - -/*======================================================================================= -** End of file mpu9250_config.c -**=====================================================================================*/ - diff --git a/config/ocpoc/quadx/target/apps/mpu9250/tables/mpu9250_config_dev_ocpoc.c b/config/ocpoc/quadx/target/apps/mpu9250/tables/mpu9250_config_dev_ocpoc.c deleted file mode 100644 index cc2334069..000000000 --- a/config/ocpoc/quadx/target/apps/mpu9250/tables/mpu9250_config_dev_ocpoc.c +++ /dev/null @@ -1,93 +0,0 @@ -/* -** Pragmas -*/ - -/* -** Include Files -*/ -#include "cfe_tbl_filedef.h" -#include "mpu9250_tbldefs.h" - -/* -** Local Defines -*/ - -/* -** Local Structure Declarations -*/ -static OS_USED CFE_TBL_FileDef_t CFE_TBL_FileDef = -{ - /* Content format: ObjName[64], TblName[38], Desc[32], TgtFileName[20], ObjSize - ** ObjName - variable name of config table, e.g., CI_ConfigDefTbl[] - ** TblName - app's table name, e.g., CI.CONFIG_TBL, where CI is the same app name - ** used in cfe_es_startup.scr, and CI_defConfigTbl is the same table - ** name passed in to CFE_TBL_Register() - ** Desc - description of table in string format - ** TgtFileName[20] - table file name, compiled as .tbl file extension - ** ObjSize - size of the entire table - */ - - "MPU9250_ConfigTbl", "MPU9250.CONFIG_TBL", "MPU9250 default config table", - "mpu9250_config.tbl", (sizeof(MPU9250_ConfigTbl_t)) -}; - -/* -** External Global Variables -*/ - -/* -** Global Variables -*/ - -/* Default MPU9250 config table data */ -MPU9250_ConfigTbl_t MPU9250_ConfigTbl = -{ - /* User calibration params */ - /* AccXScale */ - 1.002483367919921875f, - /* AccYScale */ - 1.002597928047180176f, - /* AccZScale */ - 0.991139471530914307f, - /* AccXOffset */ - 0.018333911895751953f, - /* AccYOffset */ - -0.134463787078857422f, - /* AccZOffset */ - 0.048464775085449219f, - /* GyroXScale */ - 1.0f, - /* GyroYScale */ - 1.0f, - /* GyroZScale */ - 1.0f, - /* GyroXOffset */ - 0.019233696162700653f, - /* GyroYOffset */ - 0.024173684418201447f, - /* GyroZOffset */ - -0.008248925209045410f - /* MagXScale */ - /* MagYScale */ - /* MagZScale */ - /* MagXOffset */ - /* MagYOffset */ - /* MagZOffset */ -}; - -/* -** Local Variables -*/ - -/* -** Function Prototypes -*/ - -/* -** Function Definitions -*/ - -/*======================================================================================= -** End of file mpu9250_config.c -**=====================================================================================*/ - diff --git a/config/ocpoc/quadx/target/apps/prm/CMakeLists.txt b/config/ocpoc/quadx/target/apps/prm/CMakeLists.txt deleted file mode 100644 index 64806fbfe..000000000 --- a/config/ocpoc/quadx/target/apps/prm/CMakeLists.txt +++ /dev/null @@ -1,7 +0,0 @@ -set(APP_NAME prm) - -buildliner_add_table( - ${APP_NAME} - NAME prm_config - SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/tables/prm_config.c -) diff --git a/config/ocpoc/quadx/target/apps/prm/tables/prm_config.c b/config/ocpoc/quadx/target/apps/prm/tables/prm_config.c deleted file mode 100644 index c275bb0dd..000000000 --- a/config/ocpoc/quadx/target/apps/prm/tables/prm_config.c +++ /dev/null @@ -1,63 +0,0 @@ -/* -** Pragmas -*/ - -/* -** Include Files -*/ -#include "cfe_tbl_filedef.h" -#include "prm_tbldefs.h" - -/* -** Local Defines -*/ - -/* -** Local Structure Declarations -*/ -static OS_USED CFE_TBL_FileDef_t CFE_TBL_FileDef = -{ - /* Content format: ObjName[64], TblName[38], Desc[32], TgtFileName[20], ObjSize - ** ObjName - variable name of config table, e.g., CI_ConfigDefTbl[] - ** TblName - app's table name, e.g., CI.CONFIG_TBL, where CI is the same app name - ** used in cfe_es_startup.scr, and CI_defConfigTbl is the same table - ** name passed in to CFE_TBL_Register() - ** Desc - description of table in string format - ** TgtFileName[20] - table file name, compiled as .tbl file extension - ** ObjSize - size of the entire table - */ - - "PRM_ConfigTbl", "PRM.CONFIG_TBL", "PRM default config table", - "prm_config.tbl", (sizeof(PRM_ConfigTbl_t)) -}; - -/* -** External Global Variables -*/ - -/* -** Global Variables -*/ - -/* Default PRM config table data */ -PRM_ConfigTbl_t PRM_ConfigTbl = -{ - 1 -}; - -/* -** Local Variables -*/ - -/* -** Function Prototypes -*/ - -/* -** Function Definitions -*/ - -/*======================================================================================= -** End of file prm_config.c -**=====================================================================================*/ - diff --git a/config/ocpoc/quadx/target/apps/qae/CMakeLists.txt b/config/ocpoc/quadx/target/apps/qae/CMakeLists.txt deleted file mode 100644 index c3cbca98d..000000000 --- a/config/ocpoc/quadx/target/apps/qae/CMakeLists.txt +++ /dev/null @@ -1,9 +0,0 @@ -set(APP_NAME qae) - -buildliner_add_table( - ${APP_NAME} - NAME qae_config - SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/tables/qae_config.c -) - -buildliner_add_app_unit_test_src(${APP_NAME} SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/tables/qae_config.c) diff --git a/config/ocpoc/quadx/target/apps/qae/tables/qae_config.c b/config/ocpoc/quadx/target/apps/qae/tables/qae_config.c deleted file mode 100644 index 5e28b1802..000000000 --- a/config/ocpoc/quadx/target/apps/qae/tables/qae_config.c +++ /dev/null @@ -1,104 +0,0 @@ -/* -** Pragmas -*/ - -/* -** Include Files -*/ -#include "cfe_tbl_filedef.h" -#include "qae_tbldefs.h" - -/* -** Local Defines -*/ - -/* -** Local Structure Declarations -*/ -static OS_USED CFE_TBL_FileDef_t CFE_TBL_FileDef = -{ - /* Content format: ObjName[64], TblName[38], Desc[32], TgtFileName[20], ObjSize - ** ObjName - variable name of config table, e.g., CI_ConfigDefTbl[] - ** TblName - app's table name, e.g., CI.CONFIG_TBL, where CI is the same app name - ** used in cfe_es_startup.scr, and CI_defConfigTbl is the same table - ** name passed in to CFE_TBL_Register() - ** Desc - description of table in string format - ** TgtFileName[20] - table file name, compiled as .tbl file extension - ** ObjSize - size of the entire table - */ - - "QAE_ConfigTbl", "QAE.CONFIG_TBL", "QAE default config table", - "qae_config.tbl", (sizeof(QAE_ConfigTbl_t)) -}; - -/* -** External Global Variables -*/ - -/* -** Global Variables -*/ - -/* Default QAE config table data */ -QAE_ConfigTbl_t QAE_ConfigTbl = -{ - /** \brief Complimentary filter accelerometer weight. - * - * \par Limits: - * Min > Max (incr.) 0 > 1, default 0.2. - */ - 0.2f, - /** \brief Complimentary filter magnetometer weight. - * - * \par Limits: - * Min > Max (incr.) 0 > 1, default 0.1. - */ - 0.1f, - /** \brief Complimentary filter gyroscope bias weight. - * - * \par Limits: - * Min > Max (incr.) 0 > 1, default 0.1. - */ - 0.1f, - /** \brief Magnetic declination, in degrees. - * - * \par Limits: - * Min > Max (incr.) 0 > 180, default 0.0. - */ - 0.0f, - /** \brief Automatic GPS based declination compensation. - * - * \par Limits: - * TRUE or FALSE, default 1 (TRUE). - */ - 1, - /** \brief Acceleration compensation based on GPS velocity. - * - * \par Limits: - * TRUE or FALSE, default 1 (TRUE). - */ - 1, - /** \brief Gyro bias limit in rad/s. - * - * \par Limits: - * Min > Max (incr.) 0 > 2, default 0.05. - */ - 0.05f -}; - -/* -** Local Variables -*/ - -/* -** Function Prototypes -*/ - -/* -** Function Definitions -*/ - -/*======================================================================================= -** End of file qae_config.c -**=====================================================================================*/ - diff --git a/config/ocpoc/quadx/target/apps/sch/tables/sch_def_schtbl.c b/config/ocpoc/quadx/target/apps/sch/tables/sch_def_schtbl.c deleted file mode 100644 index 30f327d76..000000000 --- a/config/ocpoc/quadx/target/apps/sch/tables/sch_def_schtbl.c +++ /dev/null @@ -1,4506 +0,0 @@ -#ifdef __cplusplus -extern "C" { -#endif - -/* -** Pragmas -*/ - -/* -** Include Files -*/ -#include "cfe.h" -#include "cfe_tbl_filedef.h" -#include "sch_platform_cfg.h" -#include "sch_msgdefs.h" -#include "sch_tbldefs.h" - -#include "sch_grpids.h" - -/* - * Rate Groups - * - -QAE_SEND_HK_MIDX 1Hz, 0 -QAE_WAKEUP_MIDX 250Hz, 0 -AMC_SEND_HK_MIDX 1Hz, 5 -AMC_UPDATE_MOTORS_MIDX 250Hz, 0 -BAT_SEND_HK_MIDX 1Hz, 10 -BAT_WAKEUP_MIDX 10Hz, (15,40,65,90,115,140,165,190,215,240) -CFE_ES_SEND_HK_MIDX 1Hz, 20 -CFE_EVS_SEND_HK_MIDX 1Hz, 25 -CFE_SB_SEND_HK_MIDX 1Hz, 30 -CFE_TIME_SEND_HK_MIDX 1Hz, 35 -CFE_TBL_SEND_HK_MIDX 1Hz, 40 -CFE_TIME_FAKE_CMD_MIDX ---, --- -CFE_TIME_TONE_CMD_MIDX ---, --- -CFE_TIME_1HZ_CMD_MIDX ---, --- -CF_SEND_HK_MIDX 1Hz, 60 -CF_WAKE_UP_REQ_CMD_MIDX 1Hz, 65 -CI_SEND_HK_MIDX 1Hz, 70 -CI_1HZ_PROC_TIMEOUTS_MIDX 1Hz, 74 -CS_BACKGROUND_CYCLE_MIDX ---, --- -CS_SEND_HK_MIDX 1Hz, 75 -DS_SEND_HK_MIDX 1Hz, 80 -EA_SEND_HK_MIDX 1Hz, 85 -EA_PERFMON_MIDX 1Hz, 90 -EA_SEND_HK_MIDX 1Hz, 95 -EA_WAKEUP_MIDX 1Hz, 100 -GPS_READ_SENSOR_MIDX 1Hz, 105 -GPS_SEND_HK_MIDX 1Hz, 110 -HK_SEND_COMBINED_PKT1_MIDX ---, --- -HK_SEND_COMBINED_PKT2_MIDX ---, --- -HK_SEND_COMBINED_PKT3_MIDX ---, --- -HK_SEND_COMBINED_PKT4_MIDX ---, --- -HK_SEND_COMBINED_PKT5_MIDX ---, --- -HK_SEND_COMBINED_PKT6_MIDX ---, --- -HK_SEND_COMBINED_PKT7_MIDX ---, --- -HK_SEND_COMBINED_PKT8_MIDX ---, --- -HK_SEND_COMBINED_PKT9_MIDX ---, --- -HK_SEND_COMBINED_PKT10_MIDX ---, --- -HK_SEND_HK_MIDX 1Hz, 115 -HMC5883_SEND_HK_MIDX 1Hz, 120 -HMC5883_WAKEUP_MIDX 250Hz, 0 -HS_SEND_HK_MIDX 1Hz, 125 -HS_WAKEUP_MIDX 1Hz, 130 -FM_SEND_HK_MIDX 1Hz, 135 -LC_SEND_HK_MIDX 1Hz, 140 -LD_SEND_HK_MIDX 1Hz, 145 -LD_WAKEUP_MIDX 250Hz, 0 -MD_SEND_HK_MIDX 1Hz, 150 -MD_WAKEUP_MIDX 1Hz, 155 -MM_SEND_HK_MIDX 1Hz, 160 -MAC_SEND_HK_MIDX 1Hz, 165 -MAC_RUN_CONTROLLER_MIDX 250Hz, 0 -MPC_SEND_HK_MIDX 1Hz, 170 -MPC_WAKEUP_MIDX 250Hz, 0 -MPU9250_SEND_HK_MIDX 1Hz, 175 -MPU9250_MEASURE_MIDX 250Hz, 0 -MS5611_SEND_HK_MIDX 1Hz, 180 -MS5611_WAKEUP_MIDX 250Hz, 0 -NAV_SEND_HK_MIDX 1Hz, 185 -NAV_WAKEUP_MIDX 10Hz, (17,42,67,92,117,142,167,192,217,242) -PE_SEND_HK_MIDX 1Hz, 190 -PE_WAKEUP_MIDX 250Hz, 0 -RCIN_WAKEUP_MIDX 50Hz, 205 -RCIN_SEND_HK_MIDX 1Hz, 210 -RGBLED_SEND_HK_MIDX 1Hz, 215 -RGBLED_WAKEUP_MIDX 1Hz, 220 -SC_1HZ_WAKEUP_MIDX 1Hz, 225 -SC_SEND_HK_MIDX 1Hz, 230 -SCH_SEND_HK_MIDX 1Hz, 235 -SENS_WAKEUP_MIDX 250Hz, 0 -TO_SEND_TLM_MIDX 10Hz, (6,31,56,81,106,131,156,181,206,231) -TO_SEND_HK_MIDX 1Hz, 240 -ULR_MEASURE_MIDX 250Hz, 0 -ULR_SEND_HK_MIDX 1Hz, 245 -VC_SEND_HK_MIDX 1Hz, 7 -VC_PROCESS_CMDS_MIDX 1Hz, 12 - -*/ - - -/* -** Local Defines -*/ - -#define CFE_ES_SEND_HK_MIDX 1 -#define CFE_EVS_SEND_HK_MIDX 2 -#define CFE_SB_SEND_HK_MIDX 3 -#define CFE_TIME_SEND_HK_MIDX 4 -#define CFE_TBL_SEND_HK_MIDX 5 -#define CFE_TIME_FAKE_CMD_MIDX 6 - -#define LC_SAMPLE_AP_MIDX 9 - -#define SCH_SEND_HK_MIDX 15 -#define TO_SEND_HK_MIDX 16 -#define HK_SEND_HK_MIDX 17 - -#define TO_SEND_TLM_MIDX 19 -#define HK_SEND_COMBINED_PKT1_MIDX 20 -#define HK_SEND_COMBINED_PKT2_MIDX 21 -#define HK_SEND_COMBINED_PKT3_MIDX 22 -#define HK_SEND_COMBINED_PKT4_MIDX 23 -#define HK_SEND_COMBINED_PKT5_MIDX 24 -#define HK_SEND_COMBINED_PKT6_MIDX 25 -#define HK_SEND_COMBINED_PKT7_MIDX 26 -#define HK_SEND_COMBINED_PKT8_MIDX 27 -#define HK_SEND_COMBINED_PKT9_MIDX 28 -#define HK_SEND_COMBINED_PKT10_MIDX 29 -#define FM_SEND_HK_MIDX 30 -#define LC_SEND_HK_MIDX 31 -#define HS_WAKEUP_MIDX 32 -#define HS_SEND_HK_MIDX 33 -#define MD_SEND_HK_MIDX 34 -#define MD_WAKEUP_MIDX 35 -#define DS_SEND_HK_MIDX 37 -#define CS_SEND_HK_MIDX 38 -#define CS_BACKGROUND_CYCLE_MIDX 39 -#define SC_1HZ_WAKEUP_MIDX 40 -#define SC_SEND_HK_MIDX 41 -#define FLOW_WAKEUP_MIDX 42 -#define FLOW_SEND_HK_MIDX 43 - -#define VC_SEND_HK_MIDX 45 -#define VC_PROCESS_CMDS_MIDX 46 -#define RGBLED_WAKEUP_MIDX 47 -#define RGBLED_SEND_HK_MIDX 48 - -#define CI_READ_CMD_MIDX 50 -#define CI_1HZ_PROC_TIMEOUTS_MIDX 51 -#define CI_SEND_HK_MIDX 52 -#define PARAMS_WAKEUP_MIDX 53 -#define PARAMS_SEND_HK_MIDX 54 - -#define CF_SEND_HK_MIDX 57 -#define CF_WAKE_UP_REQ_CMD_MIDX 58 - -#define MAC_SEND_HK_MIDX 60 -#define MAC_RUN_CONTROLLER_MIDX 61 - -#define AMC_UPDATE_MOTORS_MIDX 65 -#define AMC_SEND_HK_MIDX 66 -#define MPU9250_SEND_HK_MIDX 67 -#define MPU9250_MEASURE_MIDX 68 - -#define MM_SEND_HK_MIDX 70 - -#define MPU6050_SEND_HK_MIDX 72 -#define MPU6050_MEASURE_MIDX 73 -#define PE_SEND_HK_MIDX 74 -#define PE_WAKEUP_MIDX 75 -#define MS5607_SEND_HK_MIDX 76 -#define MS5607_MEASURE_MIDX 77 -#define MS5611_SEND_HK_MIDX 78 -#define MS5611_MEASURE_MIDX 79 -#define ULR_MEASURE_MIDX 80 -#define ULR_SEND_HK_MIDX 81 -#define HMC5883_SEND_HK_MIDX 82 -#define AK8963_SEND_HK_MIDX 83 -#define AK8963_WAKEUP_MIDX 84 -#define NEOM8N_SEND_HK_MIDX 85 -#define NEOM8N_MEASURE_MIDX 86 -#define NEOM8N_PROC_CMDS_MIDX 87 -#define HMC5883_WAKEUP_MIDX 88 - -#define SENS_SEND_HK_MIDX 90 -#define SENS_WAKEUP_MIDX 91 - -#define LGC_WAKEUP_MIDX 93 -#define LGC_SEND_HK_MIDX 94 - -#define PRM_SEND_HK_MIDX 96 -#define PRM_WAKEUP_MIDX 97 - -#define QAE_SEND_HK_MIDX 102 -#define QAE_WAKEUP_MIDX 103 -#define LD_SEND_HK_MIDX 104 -#define LD_WAKEUP_MIDX 105 -#define MPC_SEND_HK_MIDX 106 -#define MPC_WAKEUP_MIDX 107 -#define NAV_SEND_HK_MIDX 108 -#define NAV_WAKEUP_MIDX 109 -#define CFE_TIME_TONE_CMD_MIDX 110 -#define CFE_TIME_1HZ_CMD_MIDX 111 -#define RCIN_SEND_HK_MIDX 112 -#define RCIN_WAKEUP_MIDX 113 -#define VM_SEND_HK_MIDX 114 -#define VM_WAKEUP_MIDX 115 - -#define BAT_SEND_HK_MIDX 117 -#define BAT_WAKEUP_MIDX 118 -#define MAVLINK_WAKEUP_MIDX 119 -#define MAVLINK_SEND_HK_MIDX 120 - -#define GPS_READ_SENSOR_MIDX 122 -#define GPS_SEND_HK_MIDX 123 - -#define EA_WAKEUP_MIDX 125 -#define EA_PERFMON_MIDX 126 -#define EA_SEND_HK_MIDX 127 - - -/* Default schedule table */ -SCH_ScheduleEntry_t SCH_DefaultScheduleTable[SCH_TABLE_ENTRIES] = -{ - - /* slot #0*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MS5611_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_SEND_HK_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #1*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, RCIN_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #2*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, FLOW_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #3*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #4*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #5*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MS5611_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_SEND_HK_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, GPS_READ_SENSOR_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #6*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, RCIN_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, TO_SEND_TLM_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #7*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VC_SEND_HK_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #8*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #9*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #10*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MS5611_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, BAT_SEND_HK_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #11*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, RCIN_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #12*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VC_PROCESS_CMDS_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #13*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #14*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #15*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MS5611_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, BAT_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #16*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, RCIN_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #17*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, NAV_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - - /* slot #18*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #19*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #20*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MS5611_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, CFE_ES_SEND_HK_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #21*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, RCIN_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #22*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #23*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #24*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #25*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MS5611_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, CFE_EVS_SEND_HK_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #26*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, RCIN_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #27*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, FLOW_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #28*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #29*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #30*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MS5611_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, CFE_SB_SEND_HK_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #31*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, RCIN_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, TO_SEND_TLM_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #32*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #33*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #34*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #35*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MS5611_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, CFE_TIME_SEND_HK_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #36*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, RCIN_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #37*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAVLINK_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #38*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAVLINK_SEND_HK_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #39*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #40*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MS5611_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, BAT_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, CFE_TIME_SEND_HK_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #41*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, RCIN_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #42*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, NAV_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - - - /* slot #43*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #44*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #45*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MS5611_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, CFE_TBL_SEND_HK_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #46*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, RCIN_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #47*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #48*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #49*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #50*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MS5611_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #51*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, RCIN_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #52*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, FLOW_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #53*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, FLOW_SEND_HK_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #54*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #55*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MS5611_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, GPS_READ_SENSOR_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #56*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, RCIN_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, TO_SEND_TLM_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #57*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #58*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #59*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #60*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MS5611_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, CF_SEND_HK_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #61*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, RCIN_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #62*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #63*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #64*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_SEND_HK_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #65*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MS5611_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, BAT_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, CF_WAKE_UP_REQ_CMD_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #66*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, RCIN_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #67*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, NAV_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - - /* slot #68*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #69*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #70*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MS5611_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, CI_SEND_HK_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #71*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, RCIN_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #72*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #73*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #74*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, CI_1HZ_PROC_TIMEOUTS_MIDX,SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #75*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MS5611_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, CS_SEND_HK_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #76*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, RCIN_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #77*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, FLOW_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #78*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #79*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #80*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MS5611_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, DS_SEND_HK_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #81*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, RCIN_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, TO_SEND_TLM_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #82*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #83*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #84*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #85*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MS5611_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, EA_SEND_HK_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #86*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, RCIN_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #87*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #88*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #89*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #90*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MS5611_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, BAT_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, EA_PERFMON_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #91*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, RCIN_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #92*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, NAV_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - - /* slot #93*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #94*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #95*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MS5611_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #96*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, RCIN_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #97*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #98*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #99*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #100*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MS5611_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, EA_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #101*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, RCIN_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #102*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, FLOW_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #103*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #104*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #105*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MS5611_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, GPS_READ_SENSOR_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #106*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, RCIN_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, TO_SEND_TLM_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #107*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #108*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #109*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #110*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MS5611_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, GPS_SEND_HK_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #111*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, RCIN_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #112*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #113*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #114*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #115*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MS5611_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, BAT_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HK_SEND_HK_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #116*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, RCIN_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #117*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, NAV_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - - /* slot #118*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #119*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #120*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MS5611_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_SEND_HK_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #121*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, RCIN_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #122*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #123*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_SEND_HK_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #124*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #125*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MS5611_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HS_SEND_HK_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #126*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, RCIN_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #127*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, FLOW_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #128*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #129*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #130*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MS5611_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #131*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, RCIN_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, TO_SEND_TLM_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #132*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #133*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #134*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #135*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MS5611_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, FM_SEND_HK_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #136*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, RCIN_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #137*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #138*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #139*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #140*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MS5611_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, BAT_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LC_SEND_HK_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #141*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, RCIN_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #142*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #143*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, NAV_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - - /* slot #144*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #145*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MS5611_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_SEND_HK_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #146*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, RCIN_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #147*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #148*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #149*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #150*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MS5611_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MD_SEND_HK_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #151*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, RCIN_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #152*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, FLOW_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #153*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #154*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #155*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MS5611_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, GPS_READ_SENSOR_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #156*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, RCIN_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, TO_SEND_TLM_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #157*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #158*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #159*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #160*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MS5611_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MM_SEND_HK_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #161*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, RCIN_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #162*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #163*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #164*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #165*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MS5611_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, BAT_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_SEND_HK_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #166*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, RCIN_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #167*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, NAV_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - - /* slot #168*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #169*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #170*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MS5611_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_SEND_HK_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #171*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, RCIN_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #172*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #173*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #174*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #175*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MS5611_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_SEND_HK_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #176*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, RCIN_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #177*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, FLOW_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #178*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #179*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LGC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #180*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MS5611_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MS5611_SEND_HK_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #181*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, RCIN_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, TO_SEND_TLM_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #182*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #183*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #184*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #185*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MS5611_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, NAV_SEND_HK_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - - /* slot #186*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, RCIN_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #187*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #188*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #189*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #190*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MS5611_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, BAT_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_SEND_HK_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #191*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, RCIN_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #192*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, NAV_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - - /* slot #193*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #194*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #195*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MS5611_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #196*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, RCIN_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #197*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #198*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #199*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #200*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MS5611_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #201*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, RCIN_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #202*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, FLOW_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #203*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #204*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #205*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MS5611_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, GPS_READ_SENSOR_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #206*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, RCIN_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, TO_SEND_TLM_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #207*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #208*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #209*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #210*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MS5611_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, RCIN_SEND_HK_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #211*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, RCIN_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #212*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #213*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #214*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #215*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MS5611_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, BAT_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, RGBLED_SEND_HK_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #216*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, RCIN_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #217*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, NAV_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - - /* slot #218*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #219*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #220*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MS5611_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, RGBLED_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #221*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, RCIN_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #222*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #223*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #224*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #225*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MS5611_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SC_1HZ_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #226*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, RCIN_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #227*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LGC_SEND_HK_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, FLOW_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #228*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #229*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #230*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MS5611_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SC_SEND_HK_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #231*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, RCIN_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, TO_SEND_TLM_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #232*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #233*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #234*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #235*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MS5611_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SCH_SEND_HK_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #236*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, RCIN_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #237*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #238*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #239*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #240*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MS5611_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, BAT_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, TO_SEND_HK_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #241*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, RCIN_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #242*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, NAV_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - - /* slot #243*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #244*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #245*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MS5611_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_SEND_HK_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #246*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, RCIN_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #247*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #248*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, - - /* slot #249*/ - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE } -}; - -/* -** Local Variables -*/ - -/* -** Function Prototypes -*/ - -/* -** Function Definitions -*/ - - - -/* Table file header */ -CFE_TBL_FILEDEF(SCH_DefaultScheduleTable, SCH.SCHED_DEF, SCH schedule table, sch_def_schtbl.tbl ) - - - -#ifdef __cplusplus -} -#endif - -/*======================================================================================= -** End of file sch_def_schtbl.c -**=====================================================================================*/ - diff --git a/config/ocpoc/quadx/target/apps/sch/unit_test/sch_test_utils.c b/config/ocpoc/quadx/target/apps/sch/unit_test/sch_test_utils.c deleted file mode 100644 index dfa7dd3e8..000000000 --- a/config/ocpoc/quadx/target/apps/sch/unit_test/sch_test_utils.c +++ /dev/null @@ -1,58 +0,0 @@ - /************************************************************************* - ** File: - ** $Id: sch_test_utils.c 1.2 2017/06/21 15:28:59EDT mdeschu Exp $ - ** - ** Purpose: - ** This file contains unit test utilities for the sch application. - ** - ** References: - ** Flight Software Branch C Coding Standard Version 1.2 - ** CFS Development Standards Document - ** Notes: - ** - *************************************************************************/ - -#include "sch_test_utils.h" -#include "sch_tbldefs.h" - -SCH_MessageEntry_t MessageTable[SCH_MAX_MESSAGES]; -SCH_ScheduleEntry_t ScheduleTable[SCH_TABLE_ENTRIES]; - -/* - * Function Definitions - */ - -void SCH_Test_Setup(void) -{ - /* initialize test environment to default state for every test */ - - CFE_PSP_MemSet(&SCH_AppData, 0, sizeof(SCH_AppData_t)); - - SCH_AppData.MessageTable = &MessageTable[0]; - SCH_AppData.ScheduleTable = &ScheduleTable[0]; - - CFE_PSP_MemSet(SCH_AppData.MessageTable, 0, sizeof(SCH_MessageEntry_t)*SCH_MAX_MESSAGES); - CFE_PSP_MemSet(SCH_AppData.ScheduleTable, 0, sizeof(SCH_ScheduleEntry_t)*SCH_TABLE_ENTRIES); - - Ut_CFE_EVS_Reset(); - Ut_CFE_FS_Reset(); - Ut_CFE_TIME_Reset(); - Ut_CFE_TBL_Reset(); - Ut_CFE_SB_Reset(); - Ut_CFE_ES_Reset(); - Ut_OSAPI_Reset(); - Ut_OSFILEAPI_Reset(); - Ut_OSTIMER_Reset(); -} /* end SCH_Test_Setup */ - -void SCH_Test_TearDown(void) -{ - /* cleanup test environment */ -} /* end SCH_Test_TearDown */ - -Ut_CFE_EVS_HookTable_t Ut_CFE_EVS_HookTable; -Ut_CFE_EVS_ReturnCodeTable_t Ut_CFE_EVS_ReturnCodeTable[UT_CFE_EVS_MAX_INDEX]; - -/************************/ -/* End of File Comment */ -/************************/ diff --git a/config/ocpoc/quadx/target/apps/sch/unit_test/sch_test_utils.h b/config/ocpoc/quadx/target/apps/sch/unit_test/sch_test_utils.h deleted file mode 100644 index 34dc6c3a7..000000000 --- a/config/ocpoc/quadx/target/apps/sch/unit_test/sch_test_utils.h +++ /dev/null @@ -1,32 +0,0 @@ - /************************************************************************* - ** File: - ** $Id: sch_test_utils.h 1.2 2017/06/21 15:28:58EDT mdeschu Exp $ - ** - ** Purpose: - ** This file contains the function prototypes and global variables for the unit test utilities for the SCH application. - ** - ** References: - ** Flight Software Branch C Coding Standard Version 1.2 - ** CFS Development Standards Document - ** Notes: - ** - *************************************************************************/ - -/* - * Includes - */ - -#include "sch_app.h" - -/* - * Function Definitions - */ - -void SCH_Test_Setup(void); -void SCH_Test_TearDown(void); - - - -/************************/ -/* End of File Comment */ -/************************/ diff --git a/config/ocpoc/quadx/target/apps/vc/CMakeLists.txt b/config/ocpoc/quadx/target/apps/vc/CMakeLists.txt deleted file mode 100644 index 70e2b99f0..000000000 --- a/config/ocpoc/quadx/target/apps/vc/CMakeLists.txt +++ /dev/null @@ -1,72 +0,0 @@ -set(APP_NAME vc) - -buildliner_add_app_unit_test(vc-custom-ut - UTASSERT - SOURCES - # Unit test runner - ${CMAKE_CURRENT_SOURCE_DIR}/unit_test/vc_custom_testrunner.c - # Unit test for custom device module v4l - ${CMAKE_CURRENT_SOURCE_DIR}/unit_test/vc_dev_io_v4l_test/vc_app_custom_device_test.c - ${CMAKE_CURRENT_SOURCE_DIR}/unit_test/vc_dev_io_v4l_test/vc_app_custom_device_test.h - ${CMAKE_CURRENT_SOURCE_DIR}/unit_test/vc_dev_io_v4l_test/vc_custom_device_test_utils.c - ${CMAKE_CURRENT_SOURCE_DIR}/unit_test/vc_dev_io_v4l_test/vc_custom_device_test_utils.h - # Unit test for custom transmit module - ${CMAKE_CURRENT_SOURCE_DIR}/unit_test/vc_transmit_udp_test/vc_app_custom_transmit_test.c - ${CMAKE_CURRENT_SOURCE_DIR}/unit_test/vc_transmit_udp_test/vc_app_custom_transmit_test.h - ${CMAKE_CURRENT_SOURCE_DIR}/unit_test/vc_transmit_udp_test/vc_custom_transmit_test_utils.c - ${CMAKE_CURRENT_SOURCE_DIR}/unit_test/vc_transmit_udp_test/vc_custom_transmit_test_utils.h - # Unit test for shared custom module - ${CMAKE_CURRENT_SOURCE_DIR}/unit_test/vc_custom_shared_test/vc_app_custom_shared_test.c - ${CMAKE_CURRENT_SOURCE_DIR}/unit_test/vc_custom_shared_test/vc_app_custom_shared_test.h - ${CMAKE_CURRENT_SOURCE_DIR}/unit_test/vc_custom_shared_test/vc_custom_shared_test_utils.c - ${CMAKE_CURRENT_SOURCE_DIR}/unit_test/vc_custom_shared_test/vc_custom_shared_test_utils.h - # Platform stubs - ${CMAKE_CURRENT_SOURCE_DIR}/unit_test/vc_platform_stubs/vc_platform_stubs.c - ${CMAKE_CURRENT_SOURCE_DIR}/unit_test/vc_platform_stubs/vc_platform_stubs.h - # Custom stubs - ${CMAKE_CURRENT_SOURCE_DIR}/unit_test/vc_app_custom_stubs/vc_app_custom_stubs.c - ${CMAKE_CURRENT_SOURCE_DIR}/unit_test/vc_app_custom_stubs/vc_app_custom_stubs.h - # VC App stubs - ${CMAKE_CURRENT_SOURCE_DIR}/unit_test/vc_app_stubs/vc_app_stubs.c - ${CMAKE_CURRENT_SOURCE_DIR}/unit_test/vc_app_stubs/vc_app_stubs.h - # Custom code (code under test) - ${CMAKE_CURRENT_SOURCE_DIR}/src/vc_transmit_udp/vc_transmit_udp.c - ${CMAKE_CURRENT_SOURCE_DIR}/src/vc_transmit_udp/vc_transmit_udp.h - # Custom device code v4l - ${CMAKE_CURRENT_SOURCE_DIR}/src/vc_dev_io_v4l/vc_dev_io_v4l.c - ${CMAKE_CURRENT_SOURCE_DIR}/src/vc_dev_io_v4l/vc_dev_io_v4l.h - # Custom shared code - ${CMAKE_CURRENT_SOURCE_DIR}/src/vc_custom.c - ${CMAKE_CURRENT_SOURCE_DIR}/src/vc_custom_shared.h - - INCLUDES - # Custom code under test - ${CMAKE_CURRENT_SOURCE_DIR}/src/ - # Custom v4l code - ${CMAKE_CURRENT_SOURCE_DIR}/src/vc_dev_io_v4l/ - # Custom udp code - ${CMAKE_CURRENT_SOURCE_DIR}/src/vc_transmit_udp/ - # Test code - ${CMAKE_CURRENT_SOURCE_DIR}/unit_test/ - # Custom v4l code - ${CMAKE_CURRENT_SOURCE_DIR}/unit_test/vc_dev_io_v4l_test/ - # Custom udp transmit code - ${CMAKE_CURRENT_SOURCE_DIR}/unit_test/vc_transmit_udp_test/ - ${CMAKE_CURRENT_SOURCE_DIR}/unit_test/vc_transmit_udp_test/ - ${CMAKE_CURRENT_SOURCE_DIR}/unit_test/vc_platform_stubs/ - ${CMAKE_CURRENT_SOURCE_DIR}/unit_test/vc_app_stubs/ - ${CMAKE_CURRENT_SOURCE_DIR}/unit_test/vc_custom_shared_test/ - # Sealed code - ${PROJECT_SOURCE_DIR}/apps/vc/fsw/src/ - - WRAPPERS - # Wrapped functions (see platform stubs) - ioctl - open - close - select - socket - bind - sendto - recv -) diff --git a/config/ocpoc/quadx/target/apps/vc/src/CMakeLists.txt b/config/ocpoc/quadx/target/apps/vc/src/CMakeLists.txt deleted file mode 100644 index 89d4afd8b..000000000 --- a/config/ocpoc/quadx/target/apps/vc/src/CMakeLists.txt +++ /dev/null @@ -1,8 +0,0 @@ -# Set source for custom code. -set(APP_CUSTOM_SRC - ${CMAKE_CURRENT_SOURCE_DIR}/vc_transmit_udp/vc_transmit_udp.c - ${CMAKE_CURRENT_SOURCE_DIR}/vc_dev_io_v4l/vc_dev_io_v4l.c - ${CMAKE_CURRENT_SOURCE_DIR}/vc_custom.c - PARENT_SCOPE - ) - diff --git a/config/ocpoc/quadx/target/apps/vc/src/vc_custom.c b/config/ocpoc/quadx/target/apps/vc/src/vc_custom.c deleted file mode 100644 index ea878486f..000000000 --- a/config/ocpoc/quadx/target/apps/vc/src/vc_custom.c +++ /dev/null @@ -1,246 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ - -#include "vc_custom_shared.h" -#include "vc_cmds.h" -#include - -/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ -/* */ -/* Process New Custom Commands. Raise an error event if the */ -/* command is unknown. */ -/* */ -/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ -void VC_ProcessNewCustomCmds(CFE_SB_Msg_t* MsgPtr) -{ - uint32 uiCmdCode=0; - - if (MsgPtr != NULL) - { - uint16 inSize = CFE_SB_GetTotalMsgLength(MsgPtr); - uiCmdCode = CFE_SB_GetCmdCode(MsgPtr); - - switch (uiCmdCode) - { - case VC_STARTSTREAMING_CC: - { - VC_StartStreamingCmd(MsgPtr); - break; - } - case VC_STOPSTREAMING_CC: - { - VC_StopStreamingCmd(MsgPtr); - break; - } - default: - { - VC_AppData.HkTlm.usCmdErrCnt++; - (void) CFE_EVS_SendEvent(VC_MSGID_ERR_EID, CFE_EVS_ERROR, - "Recvd invalid cmdId (%u)", (unsigned int)uiCmdCode); - break; - } - } - } -} - - -void VC_StartStreamingCmd(CFE_SB_Msg_t* MsgPtr) -{ - VC_StartStreamCmd_t *CmdPtr = 0; - - uint16 ExpectedLength = sizeof(VC_StartStreamCmd_t); - - /* Verify command packet length */ - if (VC_VerifyCmdLength(MsgPtr, ExpectedLength)) - { - (void) CFE_EVS_SendEvent(VC_CMD_INF_EID, CFE_EVS_INFORMATION, "Start Streaming command received"); - - if (VC_AppData.AppState == VC_INITIALIZED) - { - CmdPtr = ((VC_StartStreamCmd_t *) MsgPtr); - - /* - ** NUL terminate the very end of the address string as a - ** safety measure - */ - CmdPtr->Address[VC_ADDRESS_LENGTH - 1] = '\0'; - - /* - ** Check if the address string is a nul string - */ - if(strlen(CmdPtr->Address) == 0) - { - VC_AppData.HkTlm.usCmdErrCnt++; - (void) CFE_EVS_SendEvent(VC_ADDR_NUL_ERR_EID, CFE_EVS_ERROR, - "NUL (empty) string specified for address"); - } - /* Check if the address is valid */ - else if (FALSE == VC_Address_Verification(CmdPtr->Address)) - { - VC_AppData.HkTlm.usCmdErrCnt++; - (void) CFE_EVS_SendEvent(VC_ADDR_ERR_EID, CFE_EVS_ERROR, - "Invalid string specified for address"); - } - /* Update the configuration */ - else if (FALSE == VC_Update_Destination(CmdPtr->Address, CmdPtr->Port)) - { - VC_AppData.HkTlm.usCmdErrCnt++; - (void) CFE_EVS_SendEvent(VC_INIT_ERR_EID, CFE_EVS_ERROR, - "Destination update failed in cmd start streaming"); - } - ///* Call VC_Transmit_Uninit() */ - //else if (FALSE == VC_Transmit_Uninit()) - //{ - //VC_AppData.HkTlm.usCmdErrCnt++; - //(void) CFE_EVS_SendEvent(VC_UNINIT_ERR_EID, CFE_EVS_ERROR, - //"VC_Transmit_Uninit failed in cmd start streaming"); - //} - ///* Call VC_Transmit_Init() */ - //else if (FALSE == VC_Transmit_Init()) - //{ - //VC_AppData.HkTlm.usCmdErrCnt++; - //(void) CFE_EVS_SendEvent(VC_INIT_ERR_EID, CFE_EVS_ERROR, - //"VC_Transmit_Init failed in cmd start streaming"); - //} - /* Call VC_Devices_Start() */ - else if (FALSE == VC_Devices_Start()) - { - VC_AppData.HkTlm.usCmdErrCnt++; - (void) CFE_EVS_SendEvent(VC_INIT_ERR_EID, CFE_EVS_ERROR, - "VC_Devices_Start failed in cmd start streaming"); - } - /* Success! */ - else - { - VC_AppData.AppState = VC_STREAMING; - VC_AppData.HkTlm.usCmdCnt++; - (void) CFE_EVS_SendEvent(VC_CMD_INF_EID, CFE_EVS_INFORMATION, - "VC started streaming to %s:%u", CmdPtr->Address, CmdPtr->Port); - } - } - else - { - VC_AppData.HkTlm.usCmdErrCnt++; - (void) CFE_EVS_SendEvent(VC_CMD_ERR_EID, CFE_EVS_ERROR, "VC is already streaming"); - } - } - return; -} /* End of VC_StartStreamingCmd() */ - - -void VC_StopStreamingCmd(CFE_SB_Msg_t* MsgPtr) -{ - uint16 ExpectedLength = sizeof(VC_NoArgCmd_t); - - /* Verify command packet length */ - if (VC_VerifyCmdLength(MsgPtr, ExpectedLength)) - { - (void) CFE_EVS_SendEvent(VC_CMD_INF_EID, CFE_EVS_INFORMATION, "Stop Streaming command received"); - - if (VC_AppData.AppState == VC_STREAMING) - { - if(FALSE == VC_Devices_Stop()) - { - VC_AppData.HkTlm.usCmdErrCnt++; - (void) CFE_EVS_SendEvent(VC_UNINIT_ERR_EID, CFE_EVS_ERROR, - "VC_Devices_Stop() failed"); - } - else - { - VC_AppData.AppState = VC_INITIALIZED; - VC_AppData.HkTlm.usCmdCnt++; - (void) CFE_EVS_SendEvent(VC_CMD_INF_EID ,CFE_EVS_INFORMATION, - "VC stopped streaming"); - } - } - else - { - VC_AppData.HkTlm.usCmdErrCnt++; - (void) CFE_EVS_SendEvent(VC_CMD_ERR_EID, CFE_EVS_ERROR, "VC is already not streaming"); - } - } - return; -} /* End of VC_StopStreamingCmd() */ - - -boolean VC_Custom_Max_Events_Not_Reached(int32 ind) -{ - boolean returnBool = FALSE; - if ((ind < VC_MAX_EVENT_FILTERS) && (ind > 0)) - { - returnBool = TRUE; - } - - return (returnBool); -} - - -int32 VC_Custom_Init_EventFilters(int32 ind, CFE_EVS_BinFilter_t *EventTbl) -{ - int32 customEventCount = ind; - - /* Null check */ - if(0 == EventTbl) - { - customEventCount = VC_CUSTOM_ERROR_CODE; - goto end_of_function; - } - - if(TRUE == VC_Custom_Max_Events_Not_Reached(customEventCount)) - { - EventTbl[ customEventCount].EventID = VC_SOCKET_ERR_EID; - EventTbl[customEventCount++].Mask = CFE_EVS_FIRST_16_STOP; - } - else - { - customEventCount = VC_CUSTOM_ERROR_CODE; - goto end_of_function; - } - - if(TRUE == VC_Custom_Max_Events_Not_Reached(customEventCount)) - { - EventTbl[ customEventCount].EventID = VC_DEVICE_ERR_EID; - EventTbl[customEventCount].Mask = CFE_EVS_FIRST_16_STOP; - } - else - { - customEventCount = VC_CUSTOM_ERROR_CODE; - goto end_of_function; - } - -end_of_function: - - return (customEventCount); -} - - diff --git a/config/ocpoc/quadx/target/apps/vc/src/vc_custom_shared.h b/config/ocpoc/quadx/target/apps/vc/src/vc_custom_shared.h deleted file mode 100644 index 03cf9a611..000000000 --- a/config/ocpoc/quadx/target/apps/vc/src/vc_custom_shared.h +++ /dev/null @@ -1,160 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ - -#ifndef VC_CUSTOM_SHARED_H -#define VC_CUSTOM_SHARED_H -/************************************************************************ -** Includes -*************************************************************************/ -#include "cfe.h" -#include "vc_app.h" -#include "vc_custom.h" -//#include "vc_dev_io_udp/vc_dev_io_udp.h" -#include "vc_dev_io_v4l/vc_dev_io_v4l.h" - -/************************************************************************ -** Local Defines -*************************************************************************/ -/* start streaming command */ -#define VC_STARTSTREAMING_CC (2) -/* stop streaming command */ -#define VC_STOPSTREAMING_CC (3) - - -/************************************************************************ -** Structure Declarations -*************************************************************************/ -/** -** \brief Start Streaming Command -*/ -typedef struct -{ - uint8 CmdHeader[CFE_SB_CMD_HDR_SIZE]; - char Address[VC_ADDRESS_LENGTH]; - uint16 Port; -} VC_StartStreamCmd_t; - - -typedef enum { - -/** \brief 'VC - ' -** \event 'VC - ' -** -** \par Type: ERROR -** -** \par Cause: -** -** This event message is issued when a transmit resource encounters an -** socket error. -** -*/ - VC_SOCKET_ERR_EID = VC_EVT_CNT, - -/** \brief 'VC - ' -** \event 'VC - ' -** -** \par Type: ERROR -** -** \par Cause: -** -** This event message is issued when a device resource encounters an -** error. -** -*/ - VC_DEVICE_ERR_EID, - -/** \brief 'VC - ' -** \event 'VC - ' -** -** \par Type: ERROR -** -** \par Cause: -** -** This event message is issued when a start streaming command is -** received with a bad address command parameter. -** -*/ - VC_ADDR_ERR_EID, - -/** \brief 'VC - ' -** \event 'VC - ' -** -** \par Type: ERROR -** -** \par Cause: -** -** This event message is issued when a start streaming command is -** received with a NULL address command parameter. -** -*/ - VC_ADDR_NUL_ERR_EID, - -/** \brief Number of custom events -** -** \par Limits: -** int32 -*/ - VC_CUSTOM_EVT_CNT -} VC_CustomEventIds_t; - - -/************************************************************************ -** External Global Variables -*************************************************************************/ - -extern VC_AppData_t VC_AppData; - -/************************************************************************ -** Function Prototypes -*************************************************************************/ - -/************************************************************************/ -/** \brief Determines if the maximum of event filters has been reached. -** -** \par Description -** This function checks if an index has reached the maximum -** number of events. -** -** \par Assumptions, External Events, and Notes: -** None -** -** \param [in] ind The current index to check. -** -** -** \returns boolean -** -*************************************************************************/ -boolean VC_Custom_Max_Events_Not_Reached(int32 ind); - - -#endif /* VC_CUSTOM_SHARED_H */ diff --git a/config/ocpoc/quadx/target/apps/vc/src/vc_dev_io_udp/vc_dev_io_udp.c b/config/ocpoc/quadx/target/apps/vc/src/vc_dev_io_udp/vc_dev_io_udp.c deleted file mode 100644 index 25308f4e1..000000000 --- a/config/ocpoc/quadx/target/apps/vc/src/vc_dev_io_udp/vc_dev_io_udp.c +++ /dev/null @@ -1,424 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ -/************************************************************************ -** Pragmas -*************************************************************************/ - -/************************************************************************ -** Includes -*************************************************************************/ -#include "vc_dev_io_udp.h" -#include "cfe.h" -#include -#include -#include -#include -#include -#include - -/************************************************************************ -** Local Defines -*************************************************************************/ - -/************************************************************************ -** Local Structure Declarations -*************************************************************************/ - -/************************************************************************ -** External Global Variables -*************************************************************************/ - -/************************************************************************ -** Global Variables -*************************************************************************/ - -/************************************************************************ -** Local Variables -*************************************************************************/ - -/************************************************************************ -** Local Function Definitions -*************************************************************************/ - -VC_AppCustomDevice_t VC_AppCustomDevice; - - -int32 VC_Devices_InitData(void) -{ - int32 iStatus = CFE_SUCCESS; - - /* Set all struct zero values */ - bzero(&VC_AppCustomDevice, sizeof(VC_AppCustomDevice)); - - /* Set all non-zero values for channel zero */ - VC_AppCustomDevice.ContinueFlag = TRUE; - VC_AppCustomDevice.Priority = VC_STREAMING_TASK_PRIORITY; - VC_AppCustomDevice.StreamingTask = VC_Stream_Task; - VC_AppCustomDevice.Channel[0].Status = VC_DEVICE_UNINITIALIZED; - VC_AppCustomDevice.Channel[0].Mode = VC_DEVICE_ENABLED; - VC_AppCustomDevice.Channel[0].Socket = 0; - VC_AppCustomDevice.Channel[0].Port = VC_GST_GAZEBO_PORT; - - return iStatus; -} - - -boolean VC_Devices_Start(void) -{ - int32 returnCode = 0; - - /* Set loop flag to continue forever */ - VC_AppCustomDevice.ContinueFlag = TRUE; - - /* Create the streaming task */ - returnCode = CFE_ES_CreateChildTask( - &VC_AppCustomDevice.ChildTaskID, - VC_STREAMING_TASK_NAME, - VC_AppCustomDevice.StreamingTask, - 0, - CFE_ES_DEFAULT_STACK_SIZE, - VC_AppCustomDevice.Priority, - VC_STREAMING_TASK_FLAGS); - - if(returnCode != CFE_SUCCESS) - { - VC_AppCustomDevice.ContinueFlag = FALSE; - return FALSE; - } - return TRUE; -} - - -boolean VC_Devices_Stop(void) -{ - int32 returnCode = CFE_SUCCESS; - /* Delete the child task */ - returnCode = CFE_ES_DeleteChildTask(VC_AppCustomDevice.ChildTaskID); - - /* Set streaming task loop flag to stop */ - VC_AppCustomDevice.ContinueFlag = FALSE; - - /* Set app state to initialized */ - VC_AppData.AppState = VC_INITIALIZED; - - if (returnCode != CFE_SUCCESS) - { - return FALSE; - } - return TRUE; -} - - -boolean VC_Devices_Init(void) -{ - if(-1 == VC_Init_CustomDevices()) - { - return FALSE; - } - return TRUE; -} - - -boolean VC_Devices_Uninit(void) -{ - if(-1 == VC_CleanupDevices()) - { - return FALSE; - } - return TRUE; -} - - -int32 VC_CleanupDevices(void) -{ - uint32 i = 0; - int32 returnCode = 0; - - for(i=0; i < VC_MAX_DEVICES; i++) - { - if(VC_AppCustomDevice.Channel[i].Mode == VC_DEVICE_ENABLED) - { - if(-1 == close(VC_AppCustomDevice.Channel[i].Socket)) - { - /* Close failed */ - returnCode = -1; - } - else - { - VC_AppCustomDevice.Channel[i].Mode = VC_DEVICE_DISABLED; - VC_AppCustomDevice.Channel[i].Socket = 0; - } - } - } - return returnCode; -} - - -void VC_Devices_Critical_Cleanup(void) -{ - uint8 i = 0; - - for(i=0; i < VC_MAX_DEVICES; i++) - { - if(VC_AppCustomDevice.Channel[i].Socket != 0) - { - close(VC_AppCustomDevice.Channel[i].Socket); - } - } - return; -} - - -int32 VC_Init_CustomDevices(void) -{ - int32 returnCode = 0; - int reuseaddr = 1; - struct sockaddr_in address; - uint32 i = 0; - - for (i=0; i < VC_MAX_DEVICES; i++) - { - /* if a device is enabled... */ - if(VC_AppCustomDevice.Channel[i].Mode == VC_DEVICE_ENABLED) - { - /* Create socket */ - VC_AppCustomDevice.Channel[i].Socket = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP); - /* if socket creation failed */ - - if (VC_AppCustomDevice.Channel[i].Socket < 0) - { - CFE_EVS_SendEvent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, "Socket errno: %i on channel %u", errno, (unsigned int)i); - returnCode = -1; - goto end_of_function; - } - /* socket creation success try to bind */ - setsockopt(VC_AppCustomDevice.Channel[i].Socket, SOL_SOCKET, - SO_REUSEADDR, &reuseaddr, sizeof(reuseaddr)); - bzero((char *) &address, sizeof(address)); - address.sin_family = AF_INET; - address.sin_addr.s_addr = htonl (INADDR_ANY); - address.sin_port = htons(VC_AppCustomDevice.Channel[i].Port); - /* if bind failed... */ - if((bind(VC_AppCustomDevice.Channel[i].Socket , (struct sockaddr *) &address, sizeof(address)) < 0)) - { - CFE_EVS_SendEvent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR,"Bind errno: %i on channel %u", errno, (unsigned int)i); - returnCode = -1; - goto end_of_function; - } - /* socket create and bind success */ - VC_AppCustomDevice.Channel[i].Status = VC_DEVICE_INITIALIZED; - CFE_EVS_SendEvent(VC_DEV_INF_EID, CFE_EVS_INFORMATION, - "VC Device initialized channel %u", (unsigned int)i); - } - } - -end_of_function: - - return returnCode; -} - - -void VC_Stream_Task(void) -{ - int32 returnCode = 0; - static int32 timeouts = 0; - - uint32 i = 0; - uint32 j = 0; - uint32 maxFd = 0; - static uint32 retryAttempts = 0; - fd_set fds; - - struct timeval timeValue; - uint32 iStatus = -1; - - iStatus = CFE_ES_RegisterChildTask(); - - if (iStatus == CFE_SUCCESS) - { - while (VC_AppCustomDevice.ContinueFlag == TRUE) - { - maxFd = 0; - returnCode = 0; - - /* Initialize the set */ - FD_ZERO(&fds); - - /* Add enabled and streaming devices to the fd set */ - for (i=0; i < VC_MAX_DEVICES; i++) - { - if(VC_AppCustomDevice.Channel[i].Mode == VC_DEVICE_ENABLED - && VC_AppCustomDevice.Channel[i].Status == VC_DEVICE_INITIALIZED) - { - FD_SET(VC_AppCustomDevice.Channel[i].Socket, &fds); - /* Get the greatest fd value for select() */ - if (VC_AppCustomDevice.Channel[i].Socket > maxFd) - { - /* maxFd is needed for select */ - maxFd = VC_AppCustomDevice.Channel[i].Socket; - } - } - } - /* If maxFd is > 0 a fd was added the set so call select */ - if (maxFd > 0) - { - CFE_ES_PerfLogEntry(VC_DEVICE_GET_PERF_ID); - /* Wait for a socket fd to become ready */ - /* timeout set to null = block indefinitely */ - returnCode = select(maxFd + 1, &fds, 0, 0, 0); - CFE_ES_PerfLogExit(VC_DEVICE_GET_PERF_ID); - } - else - { - /* No fd's were added to the set so error out */ - CFE_EVS_SendEvent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, - "VC can't start streaming no devices are streaming enabled"); - returnCode = -1; - goto end_of_function; - } - - /* select() wasn't successful */ - if (-1 == returnCode) - { - /* select was interrupted, try again */ - if (EINTR == errno) - { - if (retryAttempts == VC_MAX_RETRY_ATTEMPTS) - { - goto end_of_function; - } - retryAttempts++; - usleep(VC_MAX_RETRY_SLEEP_USEC); - CFE_EVS_SendEvent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, - "VC select was interrupted"); - continue; - } - else - { - /* select returned an error other than EINTR */ - CFE_EVS_SendEvent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, - "VC start streaming failed select() returned %i", errno); - goto end_of_function; - } - } - /* select() returned and a socket is ready */ - if(returnCode > 0) - { - /* Determine which socket is ready */ - for (i=0; i < VC_MAX_DEVICES; i++) - { - if(VC_AppCustomDevice.Channel[i].Mode == VC_DEVICE_ENABLED - && VC_AppCustomDevice.Channel[i].Status == VC_DEVICE_INITIALIZED) - { - if(FD_ISSET(VC_AppCustomDevice.Channel[i].Socket, &fds)) - { - /* Call send buffer with the socket that is ready */ - VC_Send_Buffer(i); - } - } - } - } - } /* end while loop */ - } /* end if status == success */ - -end_of_function: - - /* Streaming task is exiting so set app flag to initialized */ - VC_AppData.AppState = VC_INITIALIZED; - CFE_EVS_SendEvent(VC_DEV_INF_EID, CFE_EVS_INFORMATION, - "VC streaming task exited with return code %li task status (0x%08lX)", - returnCode, iStatus); - - /* The child task was successfully created so exit from it */ - if (iStatus == CFE_SUCCESS) - { - CFE_ES_ExitChildTask(); - } -} - - -int32 VC_Send_Buffer(uint8 DeviceID) -{ - int32 returnCode = 0; - int size = 0; - unsigned int packetLength = 0; - - size = recv(VC_AppCustomDevice.Channel[DeviceID].Socket, - VC_AppCustomDevice.Channel[DeviceID].Buffer, VC_MAX_PACKET_SIZE, 0); - /* if we have the preamble header... */ - if (size == VC_MPARTMUX_HEADER_SIZE) - { - /* get the size of the payload from the preamble header */ - sscanf(&VC_AppCustomDevice.Channel[DeviceID].Buffer[VC_MPARTMUX_HEADER_LENGTH_START], - "%u", &packetLength); - /* receive the payload */ - size = recv(VC_AppCustomDevice.Channel[DeviceID].Socket, - VC_AppCustomDevice.Channel[DeviceID].Buffer, VC_MAX_PACKET_SIZE, 0); - /* if the size we received is not the size specified in the header - * something went wrong. Or sscanf didn't find a match so we - * don't have a size from the preamble etc */ - - if (size != packetLength) - { - CFE_EVS_SendEvent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, - "VC recv size error on channel %u", (unsigned int)DeviceID); - returnCode = -1; - goto end_of_function; - } - /* Send data, for now map device id to senddata channel */ - if (-1 == VC_SendData(DeviceID, (void*)VC_AppCustomDevice.Channel[DeviceID].Buffer, packetLength)) - { - CFE_EVS_SendEvent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, - "VC send data failed on channel %u", (unsigned int)DeviceID); - returnCode = -1; - goto end_of_function; - } - } - /* if recv returned an error */ - else if (size == -1) - { - /* recv returned an error */ - CFE_EVS_SendEvent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, - "VC recv errno: %i on channel %u", errno, (unsigned int)DeviceID); - returnCode = -1; - goto end_of_function; - } - else - { - /* do nothing we received the 2 byte preamble */ - goto end_of_function; - } - -end_of_function: - return returnCode; -} diff --git a/config/ocpoc/quadx/target/apps/vc/src/vc_dev_io_udp/vc_dev_io_udp.h b/config/ocpoc/quadx/target/apps/vc/src/vc_dev_io_udp/vc_dev_io_udp.h deleted file mode 100644 index 6513549cf..000000000 --- a/config/ocpoc/quadx/target/apps/vc/src/vc_dev_io_udp/vc_dev_io_udp.h +++ /dev/null @@ -1,167 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ - -#ifndef VC_DEV_IO_UDP_H -#define VC_DEV_IO_UDP_H - -/************************************************************************ -** Includes -*************************************************************************/ -#include "cfe.h" -#include "vc_dev_io.h" -#include "../vc_custom_shared.h" -#include "vc_perfids.h" -#include "vc_app.h" - -/************************************************************************ -** Local Defines -*************************************************************************/ -/* TODO move to platform config */ -/** \brief Size of the Gstreamer multipartmux preamble when configured -** with a boundary = "*". -** -** \par Limits: -** Varies with boundary specified. -*/ -#define VC_MPARTMUX_HEADER_SIZE (61) -/** \brief Char count where length of the payload is specified in the -** multipartmux preamble. -*/ -#define VC_MPARTMUX_HEADER_LENGTH_START (51) -/** \brief Gstreamer Gazebo camera plugin UDP output port number. -*/ -#define VC_GST_GAZEBO_PORT (5600) - -/************************************************************************ -** Structure Declarations -*************************************************************************/ - -/** - * Device modes - */ -typedef enum -{ - /*! Device state unused */ - VC_DEVICE_UNUSED = 0, - /*! Device state disabled */ - VC_DEVICE_DISABLED = 1, - /*! Device state enabled */ - VC_DEVICE_ENABLED = 2 -} VC_DeviceMode_t; - - -/** - * Device status - */ -typedef enum -{ - /*! Device status uninitialized */ - VC_DEVICE_UNINITIALIZED = 0, - /*! Device status uninitialized */ - VC_DEVICE_INITIALIZED = 1, - /*! Device status streaming */ - VC_DEVICE_STREAMING = 2 -} VC_DeviceStatus_t; - - -/** - * Device handle - */ -typedef struct -{ - /*! Device status */ - VC_DeviceStatus_t Status; - /*! Device mode */ - VC_DeviceMode_t Mode; - /*! Device socket file descriptor */ - int Socket; - /*! Device port number */ - uint16 Port; - /*! Device buffer for receiving image data */ - char Buffer[VC_MAX_PACKET_SIZE]; -} VC_Device_Handle_t; - - -/** - * Global data structure for custom device IO layer - */ -typedef struct -{ - /*! Flag to start and stop streaming */ - boolean ContinueFlag; - /*! Streaming task priority */ - uint8 Priority; - /*! Streaming child task identifier */ - uint32 ChildTaskID; - /*! Streaming task function pointer */ - CFE_ES_ChildTaskMainFuncPtr_t StreamingTask; - /*! Device resource(s) channels */ - VC_Device_Handle_t Channel[VC_MAX_DEVICES]; - /*! Streaming task flags */ - uint32 TaskFlags; -} VC_AppCustomDevice_t; - - -/** - * @brief Cleanup (close) all enabled devices - * @return 0 for success -1 for failure - */ -int32 VC_CleanupDevices(void); - - -/** - * @brief Initialize all enabled devices. - * @return 0 for success -1 for failure - */ -int32 VC_Init_CustomDevices(void); - - -/** - * @brief Streaming task, takes ready file descriptor and sends. - * @note This is a loop to be run in a VC app child task - */ -void VC_Stream_Task(void); - - -/** - * @brief send a buffer from a "ready" socket - * @note gst multipartmux sends 2 bytes, preamble bytes (70 if the - * default boundary string is used, less if a custom boundary is - * specified), followed by the image payload. - * @param DeviceID the device ID of the "ready" socket - * @return 0 for success -1 for failure - */ -int32 VC_Send_Buffer(uint8 DeviceID); - - -#endif diff --git a/config/ocpoc/quadx/target/apps/vc/src/vc_dev_io_v4l/vc_dev_io_v4l.c b/config/ocpoc/quadx/target/apps/vc/src/vc_dev_io_v4l/vc_dev_io_v4l.c deleted file mode 100644 index f6be72a7a..000000000 --- a/config/ocpoc/quadx/target/apps/vc/src/vc_dev_io_v4l/vc_dev_io_v4l.c +++ /dev/null @@ -1,858 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ - -/************************************************************************ -** Pragmas -*************************************************************************/ - -/************************************************************************ -** Includes -*************************************************************************/ -#include "vc_dev_io_v4l.h" -#include "cfe.h" -#include -#include -#include -#include -#include -#include -#include - -/************************************************************************ -** Local Defines -*************************************************************************/ - -/************************************************************************ -** Local Structure Declarations -*************************************************************************/ - -/************************************************************************ -** External Global Variables -*************************************************************************/ - -/************************************************************************ -** Global Variables -*************************************************************************/ - -/************************************************************************ -** Local Variables -*************************************************************************/ - -/************************************************************************ -** Local Function Definitions -*************************************************************************/ - -/** - * Custom device layer app data declaration - */ -VC_AppCustomDevice_t VC_AppCustomDevice; - - -int32 VC_CustomDevice_InitData() -{ - int32 iStatus = CFE_SUCCESS; - - /* Set all struct zero values */ - bzero(&VC_AppCustomDevice, sizeof(VC_AppCustomDevice)); - - /* Set all non-zero values for channel zero */ - VC_AppCustomDevice.ContinueFlag = TRUE; - VC_AppCustomDevice.Priority = VC_STREAMING_TASK_PRIORITY; - VC_AppCustomDevice.TaskFlags = VC_STREAMING_TASK_FLAGS; - VC_AppCustomDevice.StreamingTask = VC_Stream_Task; - VC_AppCustomDevice.Channel[0].Status = VC_DEVICE_UNINITIALIZED; - VC_AppCustomDevice.Channel[0].Mode = VC_DEVICE_ENABLED; - VC_AppCustomDevice.Channel[0].BufferType = VC_V4L_BUFFER_TYPE; - VC_AppCustomDevice.Channel[0].Buffer_Size = VC_MAX_BUFFER_SIZE; - VC_AppCustomDevice.Channel[0].FrameWidth = VC_FRAME_WIDTH; - VC_AppCustomDevice.Channel[0].FrameHeight = VC_FRAME_HEIGHT; - VC_AppCustomDevice.Channel[0].VideoFormat = VC_V4L_VIDEO_FORMAT; - VC_AppCustomDevice.Channel[0].FieldOrder = VC_V4L_VIDEO_FIELD_ORDER; - VC_AppCustomDevice.Channel[0].BufferRequest = VC_V4L_BUFFER_REQUEST; - VC_AppCustomDevice.Channel[0].MemoryType = VC_V4L_MEMORY_TYPE; - - strncpy(VC_AppCustomDevice.Channel[0].DevName, VC_DEVICE_PATH, VC_MAX_DEVICE_PATH); - - - return (iStatus); -} - - -int32 VC_Ioctl(int fh, int request, void *arg) -{ - int32 returnCode = 0; - uint32 i = 0; - - for (i=0; i < VC_MAX_RETRY_ATTEMPTS; i++) - { - returnCode = ioctl(fh, request, arg); - - if (-1 == returnCode && EINTR == errno) - { - usleep(VC_MAX_RETRY_SLEEP_USEC); - } - else - { - break; - } - } - - return (returnCode); -} - - -int32 VC_ConfigureDevice(uint8 DeviceID) -{ - int32 returnCode = 0; - struct v4l2_format Format = {}; - struct v4l2_capability Capabilities = {}; - struct v4l2_requestbuffers Request = {}; - - bzero(&Format, sizeof(Format)); - Format.type = VC_AppCustomDevice.Channel[DeviceID].BufferType; - Format.fmt.pix.width = VC_AppCustomDevice.Channel[DeviceID].FrameWidth; - Format.fmt.pix.height = VC_AppCustomDevice.Channel[DeviceID].FrameHeight; - Format.fmt.pix.pixelformat = VC_AppCustomDevice.Channel[DeviceID].VideoFormat; - Format.fmt.pix.field = VC_AppCustomDevice.Channel[DeviceID].FieldOrder; - - bzero(&Request, sizeof(Request)); - Request.count = VC_AppCustomDevice.Channel[DeviceID].BufferRequest; - Request.type = VC_AppCustomDevice.Channel[DeviceID].BufferType; - Request.memory = VC_AppCustomDevice.Channel[DeviceID].MemoryType; - - if (-1 == VC_Ioctl(VC_AppCustomDevice.Channel[DeviceID].DeviceFd, VIDIOC_QUERYCAP, &Capabilities)) - { - (void) CFE_EVS_SendEvent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, - "VC VIDIOC_QUERYCAP returned %i on %s channel %u", errno, - VC_AppCustomDevice.Channel[DeviceID].DevName, (unsigned int)DeviceID); - returnCode = -1; - goto end_of_function; - } - - if (!(Capabilities.capabilities & VC_AppCustomDevice.Channel[DeviceID].BufferType)) - { - (void) CFE_EVS_SendEvent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, - "VC Capabilities %u on %s channel %u not found", - (unsigned int)VC_AppCustomDevice.Channel[DeviceID].BufferType, - VC_AppCustomDevice.Channel[DeviceID].DevName, (unsigned int)DeviceID); - returnCode = -1; - goto end_of_function; - } - - if (!(Capabilities.capabilities & V4L2_CAP_STREAMING)) - { - (void) CFE_EVS_SendEvent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, - "VC Capabilities %u on %s channel %u not found", - V4L2_CAP_STREAMING, - VC_AppCustomDevice.Channel[DeviceID].DevName, (unsigned int)DeviceID); - returnCode = -1; - goto end_of_function; - } - - if (-1 == VC_Ioctl(VC_AppCustomDevice.Channel[DeviceID].DeviceFd, VIDIOC_S_FMT, &Format)) - { - (void) CFE_EVS_SendEvent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, - "VIDIOC_S_FMT returned %i on %s channel %u", errno, - VC_AppCustomDevice.Channel[DeviceID].DevName, (unsigned int)DeviceID); - returnCode = -1; - goto end_of_function; - } - - if (Format.fmt.pix.pixelformat != VC_AppCustomDevice.Channel[DeviceID].VideoFormat) - { - (void) CFE_EVS_SendEvent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, - "VC device %s channel %u didn't accept format %u.", - VC_AppCustomDevice.Channel[DeviceID].DevName, - (unsigned int)DeviceID, - (unsigned int)VC_AppCustomDevice.Channel[DeviceID].VideoFormat); - returnCode = -1; - goto end_of_function; - } - - if ((Format.fmt.pix.width != VC_AppCustomDevice.Channel[DeviceID].FrameWidth) || - (Format.fmt.pix.height != VC_AppCustomDevice.Channel[DeviceID].FrameHeight)) - { - (void) CFE_EVS_SendEvent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, - "VC device %s channel %u didn't accept resolution instead %d:%d.", - VC_AppCustomDevice.Channel[DeviceID].DevName, (unsigned int)DeviceID, - Format.fmt.pix.width, Format.fmt.pix.height); - returnCode = -1; - goto end_of_function; - } - - if (Format.fmt.pix.sizeimage > VC_AppCustomDevice.Channel[DeviceID].Buffer_Size) - { - (void) CFE_EVS_SendEvent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, - "VC device %s channel %u size image %u > buffer size %lu.", - VC_AppCustomDevice.Channel[DeviceID].DevName, (unsigned int)DeviceID, - Format.fmt.pix.sizeimage, VC_AppCustomDevice.Channel[DeviceID].Buffer_Size); - returnCode = -1; - goto end_of_function; - } - - if (-1 == VC_Ioctl(VC_AppCustomDevice.Channel[DeviceID].DeviceFd, VIDIOC_REQBUFS, &Request)) - { - (void) CFE_EVS_SendEvent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, - "VC VIDIOC_REQBUFS returned %i on %s channel %u.", errno, - VC_AppCustomDevice.Channel[DeviceID].DevName, (unsigned int)DeviceID); - returnCode = -1; - goto end_of_function; - } - - if (Request.count != VC_AppCustomDevice.Channel[DeviceID].BufferRequest) - { - (void) CFE_EVS_SendEvent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, - "VC VIDIOC_REQBUFS did not comply. %u buffers on %s channel %u.", Request.count, - VC_AppCustomDevice.Channel[DeviceID].DevName, (unsigned int)DeviceID); - returnCode = -1; - goto end_of_function; - } - -end_of_function: - return (returnCode); -} - - -int32 VC_Start_StreamingDevice(uint8 DeviceID) -{ - int32 returnCode = 0; - uint32 i = 0; - enum v4l2_buf_type Type; - struct v4l2_buffer Buffer; - - Type = VC_AppCustomDevice.Channel[DeviceID].BufferType; - - for (i=0; i < VC_AppCustomDevice.Channel[DeviceID].BufferRequest; i++) - { - VC_AppCustomDevice.Channel[DeviceID].Buffer_Ptrs[i].ptr = (void*)&VC_AppCustomDevice.Channel[DeviceID].Buffers[i][0]; - - bzero(&Buffer, sizeof(Buffer)); - Buffer.type = VC_AppCustomDevice.Channel[DeviceID].BufferType; - Buffer.memory = VC_AppCustomDevice.Channel[DeviceID].MemoryType; - Buffer.index = i; - Buffer.m.userptr = (unsigned long)VC_AppCustomDevice.Channel[DeviceID].Buffer_Ptrs[i].ptr; - Buffer.length = VC_AppCustomDevice.Channel[DeviceID].Buffer_Size; - - if (-1 == VC_Ioctl(VC_AppCustomDevice.Channel[DeviceID].DeviceFd, VIDIOC_QBUF, &Buffer)) - { - (void) CFE_EVS_SendEvent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, - "VC VIDIOC_QBUF returned %i on %s channel %u", errno, - VC_AppCustomDevice.Channel[DeviceID].DevName, (unsigned int)DeviceID); - returnCode = -1; - goto end_of_function; - } - } - - if (-1 == VC_Ioctl(VC_AppCustomDevice.Channel[DeviceID].DeviceFd, VIDIOC_STREAMON, &Type)) - { - (void) CFE_EVS_SendEvent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, - "VC VIDIOC_STREAMON returned %i on %s channel %u", errno, - VC_AppCustomDevice.Channel[DeviceID].DevName, (unsigned int)DeviceID); - returnCode = -1; - goto end_of_function; - } - else - { - (void) CFE_EVS_SendEvent(VC_DEV_INF_EID, CFE_EVS_INFORMATION, - "VC VIDIOC_STREAMON success on %s channel %u", - VC_AppCustomDevice.Channel[DeviceID].DevName, (unsigned int)DeviceID); - } - -end_of_function: - - return (returnCode); -} - - -int32 VC_Stop_StreamingDevice(uint8 DeviceID) -{ - int32 returnCode = 0; - uint32 i = 0; - enum v4l2_buf_type Type; - - Type = VC_AppCustomDevice.Channel[DeviceID].BufferType; - - if (-1 == VC_Ioctl(VC_AppCustomDevice.Channel[DeviceID].DeviceFd, VIDIOC_STREAMOFF, &Type)) - { - returnCode = -1; - } - - return (returnCode); -} - - -int32 VC_Send_Buffer(uint8 DeviceID) -{ - int32 returnCode = 0; - uint32 i = 0; - boolean checkFlag = FALSE; - - struct v4l2_buffer Buffer; - - bzero(&Buffer, sizeof(Buffer)); - Buffer.type = VC_AppCustomDevice.Channel[DeviceID].BufferType; - Buffer.memory = VC_AppCustomDevice.Channel[DeviceID].MemoryType; - - /* Dequeue the ready buffer */ - if (-1 == VC_Ioctl(VC_AppCustomDevice.Channel[DeviceID].DeviceFd, VIDIOC_DQBUF, &Buffer)) - { - /* VIDIOC_DQBUF failed */ - (void) CFE_EVS_SendEvent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, - "VC VIDIOC_DQBUF returned %i on %s channel %u", errno, - VC_AppCustomDevice.Channel[DeviceID].DevName, (unsigned int)DeviceID); - returnCode = -1; - goto end_of_function; - } - - /* The dequeued buffer is larger than max transmit packet size */ - if (Buffer.bytesused > VC_MAX_PACKET_SIZE) - { - /* The buffer is too large so skip sending */ - (void) CFE_EVS_SendEvent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, - "VC Packet on %s channel %u is too large", - VC_AppCustomDevice.Channel[DeviceID].DevName, (unsigned int)DeviceID); - //returnCode = -1; - goto queue_next_buffer; - } - - /* Check and make sure VIDIOC_DQBUF returned a valid address - * from possible addresses (user buffer pointers) - */ - for (i=0; i < VC_AppCustomDevice.Channel[DeviceID].BufferRequest; i++) - { - if ((Buffer.m.userptr == (unsigned long)VC_AppCustomDevice.Channel[DeviceID].Buffer_Ptrs[i].ptr) - && (Buffer.length == VC_AppCustomDevice.Channel[DeviceID].Buffer_Size)) - { - checkFlag = TRUE; - } - } - if (checkFlag == FALSE) - { - /* VIDIOC_DQBUF returned an unknown buffer address */ - (void) CFE_EVS_SendEvent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, - "VC VIDIOC_DQBUF returned unknown user pointer on %s channel %u", - VC_AppCustomDevice.Channel[DeviceID].DevName, (unsigned int)DeviceID); - returnCode = -1; - goto end_of_function; - } - - /* Send data, for now map device id to senddata channel */ - if (-1 == VC_SendData(DeviceID, (void*)Buffer.m.userptr, Buffer.bytesused)) - { - (void) CFE_EVS_SendEvent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, - "VC send data failed on %s channel %u", - VC_AppCustomDevice.Channel[DeviceID].DevName, (unsigned int)DeviceID); - returnCode = -1; - goto end_of_function; - } - -queue_next_buffer: - - /* Queue the next buffer */ - if (-1 == VC_Ioctl(VC_AppCustomDevice.Channel[DeviceID].DeviceFd, VIDIOC_QBUF, &Buffer)) - { - (void) CFE_EVS_SendEvent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, - "VC VIDIOC_QBUF returned %i on %s channel %u", errno, - VC_AppCustomDevice.Channel[DeviceID].DevName, (unsigned int)DeviceID); - returnCode = -1; - } - -end_of_function: - return (returnCode); -} - - -void VC_Stream_Task(void) -{ - int32 returnCode = 0; - static int32 timeouts = 0; - - uint32 i = 0; - uint32 j = 0; - uint32 maxFd = 0; - static uint32 retryAttempts = 0; - fd_set fds; - - struct timeval timeValue; - uint32 iStatus = -1; - - iStatus = CFE_ES_RegisterChildTask(); - - if (iStatus == CFE_SUCCESS) - { - while (VC_AppCustomDevice.ContinueFlag == TRUE) - { - maxFd = 0; - returnCode = 0; - - /* Select modifies the timeout value with time left until - * the timeout would expire so timeValue needs to be set - * every loop iteration - */ - timeValue.tv_sec = VC_BUFFER_FILL_TIMEOUT_SEC; - timeValue.tv_usec = VC_BUFFER_FILL_TIMEOUT_USEC; - - /* Initialize the set */ - FD_ZERO(&fds); - - /* Add enabled and streaming devices to the fd set */ - for (i=0; i < VC_MAX_DEVICES; i++) - { - if(VC_AppCustomDevice.Channel[i].Mode == VC_DEVICE_ENABLED - && VC_AppCustomDevice.Channel[i].Status == VC_DEVICE_STREAMING) - { - FD_SET(VC_AppCustomDevice.Channel[i].DeviceFd, &fds); - - /* Get the greatest fd value for select() */ - if (VC_AppCustomDevice.Channel[i].DeviceFd > maxFd) - { - /* maxFd is needed for select */ - maxFd = VC_AppCustomDevice.Channel[i].DeviceFd; - } - } - } - /* If maxFd is > 0 a fd was added the set so call select */ - if (maxFd > 0) - { - CFE_ES_PerfLogEntry(VC_DEVICE_GET_PERF_ID); - /* Wait for a queued buffer to be filled by the device */ - returnCode = select(maxFd + 1, &fds, 0, 0, &timeValue); - CFE_ES_PerfLogExit(VC_DEVICE_GET_PERF_ID); - } - else - { - /* No fd's were added to the set so error out */ - (void) CFE_EVS_SendEvent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, - "VC can't start streaming no devices are streaming enabled"); - returnCode = -1; - goto end_of_function; - } - - /* select() wasn't successful */ - if (-1 == returnCode) - { - /* select was interrupted, try again */ - if (EINTR == errno) - { - if (retryAttempts == VC_MAX_RETRY_ATTEMPTS) - { - goto end_of_function; - } - retryAttempts++; - usleep(VC_MAX_RETRY_SLEEP_USEC); - (void) CFE_EVS_SendEvent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, - "VC select was interrupted"); - continue; - } - else - { - /* select returned an error other than EINTR */ - (void) CFE_EVS_SendEvent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, - "VC start streaming failed select() returned %i", errno); - goto end_of_function; - } - } - /* select timed out */ - if (0 == returnCode) - { - if (timeouts == VC_BUFFER_TIMEOUTS_ALLOWED) - { - returnCode = -1; - goto end_of_function; - } - timeouts++; - usleep(VC_MAX_RETRY_SLEEP_USEC); - CFE_EVS_SendEvent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, - "VC select timed out"); - continue; - } - /* select() returned and a buffer is ready to be dequeued */ - if(returnCode > 0) - { - /* Determine which device is ready */ - for (i=0; i < VC_MAX_DEVICES; i++) - { - if(VC_AppCustomDevice.Channel[i].Mode == VC_DEVICE_ENABLED - && VC_AppCustomDevice.Channel[i].Status == VC_DEVICE_STREAMING) - { - if(FD_ISSET(VC_AppCustomDevice.Channel[i].DeviceFd, &fds)) - { - /* Call send buffer with the device that is ready */ - returnCode = VC_Send_Buffer(i); - if(returnCode != 0) - { - (void) CFE_EVS_SendEvent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, - "VC Send_Buffer failed, a device may have been disconnected, disabling device %u", (unsigned int)i); - VC_DisableDevice(i); - } - } - } - } - } - } /* end while loop */ - } /* end if status == success */ - -end_of_function: - - /* Streaming task is exiting so set app flag to initialized */ - VC_AppData.AppState = VC_INITIALIZED; - (void) CFE_EVS_SendEvent(VC_DEV_INF_EID, CFE_EVS_INFORMATION, - "VC streaming task exited with return code %li task status (0x%08lX)", - returnCode, iStatus); - - /* The child task was successfully created so exit from it */ - if (iStatus == CFE_SUCCESS) - { - CFE_ES_ExitChildTask(); - } -} - - -int32 VC_Start_Streaming(void) -{ - uint32 i = 0; - int32 returnCode = 0; - - for(i=0; i < VC_MAX_DEVICES; i++) - { - if((VC_AppCustomDevice.Channel[i].Mode == VC_DEVICE_ENABLED) && - (VC_AppCustomDevice.Channel[i].Status == VC_DEVICE_INITIALIZED)) - { - if(-1 == VC_Start_StreamingDevice(i)) - { - /* Start streaming failed */ - returnCode = -1; - } - else - { - /* Start streaming was successful set status to streaming */ - VC_AppCustomDevice.Channel[i].Status = VC_DEVICE_STREAMING; - } - } - } - return (returnCode); -} - - -int32 VC_Stop_Streaming(void) -{ - uint32 i = 0; - int32 returnCode = 0; - - for(i=0; i < VC_MAX_DEVICES; i++) - { - if((VC_AppCustomDevice.Channel[i].Mode == VC_DEVICE_ENABLED) && - (VC_AppCustomDevice.Channel[i].Status == VC_DEVICE_STREAMING)) - { - if(-1 == VC_Stop_StreamingDevice(i)) - { - /* Stop streaming failed */ - returnCode = -1; - } - else - { - /* Stop streaming was successful set status to initialized */ - VC_AppCustomDevice.Channel[i].Status = VC_DEVICE_INITIALIZED; - } - } - } - return (returnCode); -} - - -int32 VC_InitDevice(uint8 DeviceID, const char *DeviceName) -{ - int32 returnCode = 0; - uint32 i = 0; - - if((VC_AppCustomDevice.Channel[DeviceID].Mode == VC_DEVICE_ENABLED) && - (VC_AppCustomDevice.Channel[DeviceID].DeviceFd != 0)) - { - (void) CFE_EVS_SendEvent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, - "VC Device %s for channel %u already initialized.", DeviceName, (unsigned int)i); - returnCode = -1; - goto end_of_function; - } - - if(DeviceName == 0) - { - (void) CFE_EVS_SendEvent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, - "VC Device name for channel %u is null.", (unsigned int)i); - returnCode = -1; - goto end_of_function; - } - - if(DeviceID >= VC_MAX_DEVICES) - { - (void) CFE_EVS_SendEvent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, - "VC DeviceID (%u) invalid.", (unsigned int)DeviceID); - returnCode = -1; - goto end_of_function; - } - - VC_AppCustomDevice.Channel[DeviceID].DeviceFd = open(DeviceName, O_RDWR | O_NONBLOCK, 0); - if(VC_AppCustomDevice.Channel[DeviceID].DeviceFd < 0) - { - (void) CFE_EVS_SendEvent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, - "VC Device open errno: %i on channel %u", errno, (unsigned int)i); - returnCode = -1; - goto end_of_function; - } - -end_of_function: - return (returnCode); -} - - -int32 VC_Init_CustomDevices(void) -{ - uint32 i = 0; - int32 returnCode = 0; - - for (i=0; i < VC_MAX_DEVICES; i++) - { - if(VC_AppCustomDevice.Channel[i].Mode == VC_DEVICE_ENABLED) - { - /* If the device is enabled initialize it */ - returnCode = VC_InitDevice(i, VC_AppCustomDevice.Channel[i].DevName); - if (returnCode) - { - /* If the device failed to be initialized set to disabled - * an error event will be generated in VC_InitDevice */ - VC_AppCustomDevice.Channel[i].Mode = VC_DEVICE_DISABLED; - } - else - { - /* Success, raise info event */ - (void) CFE_EVS_SendEvent(VC_DEV_INF_EID, CFE_EVS_INFORMATION, - "VC Device initialized channel %u from %s", - (unsigned int)i, VC_AppCustomDevice.Channel[i].DevName); - - /* The device is initialized so now configure it */ - returnCode = VC_ConfigureDevice(i); - if (returnCode) - { - /* The device failed to be configured so make sure - * the status is set to uninitialized - */ - VC_AppCustomDevice.Channel[i].Status = VC_DEVICE_UNINITIALIZED; - } - else - { - /* Success, set status to device initialized and - * raise a info event - */ - VC_AppCustomDevice.Channel[i].Status = VC_DEVICE_INITIALIZED; - (void) CFE_EVS_SendEvent(VC_DEV_INF_EID, CFE_EVS_INFORMATION, - "VC Device configured channel %u from %s", - (unsigned int)i, VC_AppCustomDevice.Channel[i].DevName); - } - } - } - } - return (returnCode); -} - - -int32 VC_CleanupDevices(void) -{ - uint32 i = 0; - int32 returnCode = 0; - - for(i=0; i < VC_MAX_DEVICES; i++) - { - if(VC_AppCustomDevice.Channel[i].Mode == VC_DEVICE_ENABLED) - { - if(VC_AppCustomDevice.Channel[i].Status == VC_DEVICE_STREAMING) - { - if(-1 == VC_Stop_StreamingDevice(i)) - { - /* VC_Stop_Streaming failed */ - returnCode = -1; - } - else - { - /* Success set device status to initialized */ - VC_AppCustomDevice.Channel[i].Status = VC_DEVICE_INITIALIZED; - } - } - - if(-1 == VC_DisableDevice(i)) - { - /* VC_DisableDevice failed */ - returnCode = -1; - } - else - { - VC_AppCustomDevice.Channel[i].Mode = VC_DEVICE_DISABLED; - } - } - } - return (returnCode); -} - - -void VC_Devices_Critical_Cleanup(void) -{ - uint8 i = 0; - - for(i=0; i < VC_MAX_DEVICES; i++) - { - if(VC_AppCustomDevice.Channel[i].DeviceFd != 0) - { - ioctl(VC_AppCustomDevice.Channel[i].DeviceFd, VIDIOC_STREAMOFF, &VC_AppCustomDevice.Channel[i].BufferType); - close(VC_AppCustomDevice.Channel[i].DeviceFd); - } - } - return; -} - - -int32 VC_DisableDevice(uint8 DeviceID) -{ - int32 returnCode = 0; - - if(VC_AppCustomDevice.Channel[DeviceID].Mode != VC_DEVICE_ENABLED) - { - returnCode = -1; - goto end_of_function; - } - - returnCode = close(VC_AppCustomDevice.Channel[DeviceID].DeviceFd); - if (0 == returnCode) - { - VC_AppCustomDevice.Channel[DeviceID].DeviceFd = 0; - } - -end_of_function: - return (returnCode); -} - - -/* - * Start streaming on all enabled and initialized devices - * True for success, false for failure - * Note: Creates the streaming task - */ -boolean VC_Devices_Start(void) -{ - int32 returnCode = 0; - boolean returnBool = TRUE; - - /* Set loop flag to continue forever */ - VC_AppCustomDevice.ContinueFlag = TRUE; - - /* Start streaming on all devices */ - if(-1 == VC_Start_Streaming()) - { - VC_AppCustomDevice.ContinueFlag = FALSE; - returnBool = FALSE; - goto end_of_function; - } - - /* Create the streaming task */ - returnCode = CFE_ES_CreateChildTask( - &VC_AppCustomDevice.ChildTaskID, - VC_STREAMING_TASK_NAME, - VC_AppCustomDevice.StreamingTask, - 0, - CFE_ES_DEFAULT_STACK_SIZE, - VC_AppCustomDevice.Priority, - VC_STREAMING_TASK_FLAGS); - - if(returnCode != CFE_SUCCESS) - { - VC_AppCustomDevice.ContinueFlag = FALSE; - returnBool = FALSE; - } - -end_of_function: - - return (returnBool); -} - - -/* - * Stop streaming on all enabled and initialized devices - * True for success, false for failure - * Note: Deletes the streaming task - */ -boolean VC_Devices_Stop(void) -{ - boolean returnBool = TRUE; - - /* Delete the child task */ - CFE_ES_DeleteChildTask(VC_AppCustomDevice.ChildTaskID); - - /* Set streaming task loop flag to stop */ - VC_AppCustomDevice.ContinueFlag = FALSE; - - /* Set app state to initialized */ - VC_AppData.AppState = VC_INITIALIZED; - - if(-1 == VC_Stop_Streaming()) - { - returnBool = FALSE; - } - - return (returnBool); -} - - -boolean VC_Devices_Init(void) -{ - boolean returnBool = TRUE; - if(-1 == VC_Init_CustomDevices()) - { - returnBool = FALSE; - } - return (returnBool); -} - - -boolean VC_Devices_Uninit(void) -{ - boolean returnBool = TRUE; - if(-1 == VC_CleanupDevices()) - { - returnBool = FALSE; - } - return (returnBool); -} - - -int32 VC_Devices_InitData() -{ - return VC_CustomDevice_InitData(); -} - diff --git a/config/ocpoc/quadx/target/apps/vc/src/vc_dev_io_v4l/vc_dev_io_v4l.h b/config/ocpoc/quadx/target/apps/vc/src/vc_dev_io_v4l/vc_dev_io_v4l.h deleted file mode 100644 index 1e4a63491..000000000 --- a/config/ocpoc/quadx/target/apps/vc/src/vc_dev_io_v4l/vc_dev_io_v4l.h +++ /dev/null @@ -1,252 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ - -#ifndef VC_DEV_IO_V4L_H -#define VC_DEV_IO_V4L_H - -#include "cfe.h" -#include "vc_dev_io.h" -#include "../vc_custom_shared.h" -#include "vc_perfids.h" -#include "vc_app.h" - -/************************************************************************ -** Structure Declarations -*************************************************************************/ - -/** - * Device modes - */ -typedef enum -{ - /*! Device state unused */ - VC_DEVICE_UNUSED = 0, - /*! Device state disabled */ - VC_DEVICE_DISABLED = 1, - /*! Device state enabled */ - VC_DEVICE_ENABLED = 2 -} VC_DeviceMode_t; - - -/** - * Device status - */ -typedef enum -{ - /*! Device status uninitialized */ - VC_DEVICE_UNINITIALIZED = 0, - /*! Device status uninitialized */ - VC_DEVICE_INITIALIZED = 1, - /*! Device status streaming */ - VC_DEVICE_STREAMING = 2 -} VC_DeviceStatus_t; - - -/** - * Buffer pointers for V4L user pointer IO - */ -typedef struct { - /*! Pointer to user defined buffer */ - void *ptr; -}VC_BufferPtr_t; - - -/** - * Device handle - */ -typedef struct -{ - /*! Device status */ - VC_DeviceStatus_t Status; - /*! Device mode */ - VC_DeviceMode_t Mode; - /*! Device resource channel identifier */ - uint8 ChannelID; - /*! Path to device */ - char DevName[VC_MAX_DEVICE_PATH]; - /*! Device file descriptor */ - int DeviceFd; - /*! V4L buffer type */ - uint32 BufferType; - /*! V4L frame width */ - uint32 FrameWidth; - /*! V4L frame height */ - uint32 FrameHeight; - /*! V4L video format */ - uint32 VideoFormat; - /*! V4L field order */ - uint8 FieldOrder; - /*! V4L buffer request */ - uint8 BufferRequest; - /*! V4L memory type */ - uint32 MemoryType; - /*! V4L user defined buffer(s) */ - char Buffers[VC_V4L_BUFFER_REQUEST][VC_MAX_BUFFER_SIZE]; - /*! V4L buffer size (for all buffers) */ - uint32 Buffer_Size; - /*! V4L user defined buffer pointer(s) */ - VC_BufferPtr_t Buffer_Ptrs[VC_V4L_BUFFER_REQUEST]; -} VC_Device_Handle_t; - - -/** - * Global data structure for custom device IO layer - */ -typedef struct -{ - /*! Flag to start and stop streaming */ - boolean ContinueFlag; - /*! Streaming task priority */ - uint8 Priority; - /*! Streaming child task identifier */ - uint32 ChildTaskID; - /*! Streaming task function pointer */ - CFE_ES_ChildTaskMainFuncPtr_t StreamingTask; - /*! Device resource(s) channels */ - VC_Device_Handle_t Channel[VC_MAX_DEVICES]; - /*! Streaming task flags */ - uint32 TaskFlags; -} VC_AppCustomDevice_t; - - -/************************************************************************ -** Function Prototypes -*************************************************************************/ - -/** - * @brief Custom function to initialize custom device data structure. - * @return CFE_SUCCESS - */ -int32 VC_CustomDevice_InitData(void); - - -/** - * @brief ioctl with limited EINTR retry attempts - * @param fh file descriptor - * @param request ioctl request code - * @param arg pointer to a device specific struct - * @return usually 0 for success and -1 for failure - * @note see ioctl man-page for more info - */ -int32 VC_Ioctl(int fh, int request, void *arg); - - -/** - * @brief Initialize, configure, and start all enabled devices - * @return usually 0 for success -1 for failure - * @note see ioctl man-page for more info - */ -int32 VC_Init_CustomDevices(void); - - -/** - * @brief Initialize an enabled device - * @param DeviceID the device to initialize - * @param DeviceName the device name (path) to open - * @return 0 for success -1 for failure - */ -int32 VC_InitDevice(uint8 DeviceID, const char *DeviceName); - - -/** - * Configure device resource - * @param DeviceID the device ID of the resource to configure - * @return 0 for success -1 for failure - */ -int32 VC_ConfigureDevice(uint8 DeviceID); - - -/** - * @brief Start streaming on all devices - * @return 0 for success -1 for failure - */ -int32 VC_Start_Streaming(void); - - -/** - * @brief start streaming on a particular device - * @param DeviceID the device ID to start streaming on - * @return 0 for success -1 for failure - */ -int32 VC_Start_StreamingDevice(uint8 DeviceID); - - -/** - * @brief Streaming task, takes ready buffer and sends - * @note This is a loop to be run in a VC app child task - */ -void VC_Stream_Task(void); - - -/** - * @brief dequeue and send a buffer from a "ready" device - * @param DeviceID the device ID of the "ready" device - * @return 0 for success -1 for failure - */ -int32 VC_Send_Buffer(uint8 DeviceID); - - -/** - * @brief Stop streaming on all devices - * @return 0 for success -1 for failure - */ -int32 VC_Stop_Streaming(void); - - -/** - * @brief stop streaming on a particular device - * @param DeviceID the device ID to stop streaming on - * @return 0 for success -1 for failure - */ -int32 VC_Stop_StreamingDevice(uint8 DeviceID); - - -/** - * @brief Disable a device - * @param DeviceID the device to enable - * @return 0 for success -1 for failure - */ -int32 VC_DisableDevice(uint8 DeviceID); - - -/** - * @brief Cleanup (stop & close) all enabled and initialized devices - * @return 0 for success -1 for failure - */ -int32 VC_CleanupDevices(void); - - -extern VC_AppCustomDevice_t VC_AppCustomDevice; - -#endif - diff --git a/config/ocpoc/quadx/target/apps/vc/src/vc_transmit_udp/vc_transmit_udp.c b/config/ocpoc/quadx/target/apps/vc/src/vc_transmit_udp/vc_transmit_udp.c deleted file mode 100644 index 39487c28c..000000000 --- a/config/ocpoc/quadx/target/apps/vc/src/vc_transmit_udp/vc_transmit_udp.c +++ /dev/null @@ -1,431 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ - -/************************************************************************ -** Pragmas -*************************************************************************/ - -/************************************************************************ -** Includes -*************************************************************************/ -#include "vc_transmit_udp.h" -#include "cfe.h" -#include -#include -#include -#include "px4lib.h" - -/************************************************************************ -** Local Defines -*************************************************************************/ -#define OP_FLOW_FRAME_WIDTH 64 -#define OP_FLOW_FRAME_HEIGHT 64 -/************************************************************************ -** Local Structure Declarations -*************************************************************************/ - -/************************************************************************ -** External Global Variables -*************************************************************************/ - -/************************************************************************ -** Global Variables -*************************************************************************/ - - -/************************************************************************ -** Local Variables -*************************************************************************/ - -/************************************************************************ -** Local Function Definitions -*************************************************************************/ - -/** - * Global data structure for custom device transmit layer - */ -VC_AppCustomData_t VC_AppCustomData; - - -int32 VC_CustomTransmit_InitData() -{ - int32 iStatus = CFE_SUCCESS; - - /* Set all struct zero values */ - bzero(&VC_AppCustomData, sizeof(VC_AppCustomData)); - - /* Set all non-zero values for channel zero */ - VC_AppCustomData.Channel[0].Mode = VC_CHANNEL_ENABLED; - VC_AppCustomData.Channel[0].ChannelID = 0; - VC_AppCustomData.Channel[0].DestPort = VC_DESTINATION_PORT; - VC_AppCustomData.Channel[0].SocketFd = 0; - - strncpy(VC_AppCustomData.Channel[0].DestIP, VC_DESTINATION_IP, INET_ADDRSTRLEN); - strncpy(VC_AppCustomData.Channel[0].MyIP, VC_SOURCE_IP, INET_ADDRSTRLEN); - - - /* Initialize output messages*/ - CFE_SB_InitMsg(&OpticalFlowFrameMsg, FLOW_FRAME_MID, - sizeof(PX4_OpticalFlowFrameMsg_t), TRUE); - - return (iStatus); -} - - -int32 VC_EnableChannel(uint8 ChannelID) -{ - int32 returnCode = 0; - uint32 i = 0; - struct sockaddr_in servaddr; - int status; - int reuseaddr = 1; - - if((VC_AppCustomData.Channel[ChannelID].Mode == VC_CHANNEL_ENABLED) && - (VC_AppCustomData.Channel[ChannelID].SocketFd != 0)) - { - (void) CFE_EVS_SendEvent(VC_SOCKET_ERR_EID, CFE_EVS_ERROR, - "VC UDP for channel %u already enabled.", (unsigned int)i); - returnCode = -1; - goto end_of_function; - } - - if(ChannelID >= VC_MAX_OUTPUT_CHANNELS) - { - (void) CFE_EVS_SendEvent(VC_SOCKET_ERR_EID, CFE_EVS_ERROR, - "VC ChannelID (%u) invalid.", (unsigned int)ChannelID); - returnCode = -1; - goto end_of_function; - } - - VC_AppCustomData.Channel[ChannelID].SocketFd = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP); - if(VC_AppCustomData.Channel[ChannelID].SocketFd < 0) - { - VC_AppCustomData.Channel[ChannelID].Mode = VC_CHANNEL_DISABLED; - (void) CFE_EVS_SendEvent(VC_SOCKET_ERR_EID, CFE_EVS_ERROR, - "VC socket errno: %i on channel %u", errno, (unsigned int)i); - returnCode = -1; - goto end_of_function; - } - - /* Set the Reuse Address flag. If we don't set this flag, the socket will - * lock the port on termination and the kernel won't unlock it until it - * times out after a minute or so. - */ - setsockopt(VC_AppCustomData.Channel[ChannelID].SocketFd, SOL_SOCKET, SO_REUSEADDR, &reuseaddr, sizeof(reuseaddr)); - - /* Set the input arguments to the socket bind. - */ - - bzero(&servaddr,sizeof(servaddr)); - servaddr.sin_family = AF_INET; - servaddr.sin_port = htons(VC_AppCustomData.Channel[ChannelID].MyPort); - - if (inet_aton(VC_AppCustomData.Channel[ChannelID].MyIP, &servaddr.sin_addr) == 0) - { - (void) CFE_EVS_SendEvent(VC_SOCKET_ERR_EID, CFE_EVS_ERROR, - "VC inet_aton errno: %i on channel %u", errno, (unsigned int)i); - returnCode = -1; - goto end_of_function; - } - - status = bind(VC_AppCustomData.Channel[ChannelID].SocketFd, - (struct sockaddr *)&servaddr,sizeof(servaddr)); - if(status < 0) - { - (void) CFE_EVS_SendEvent(VC_SOCKET_ERR_EID, CFE_EVS_ERROR, - "VC bind errno: %i on channel %u", errno, (unsigned int)i); - VC_AppCustomData.Channel[ChannelID].Mode = VC_CHANNEL_DISABLED; - returnCode = -1; - } - -end_of_function: - return (returnCode); -} - - -int32 VC_Init_CustomTransmitters(void) -{ - uint32 i = 0; - int32 returnCode = 0; - - for (i=0; i < VC_MAX_OUTPUT_CHANNELS; i++) - { - if(VC_AppCustomData.Channel[i].Mode == VC_CHANNEL_ENABLED) - { - if(VC_EnableChannel(i)) - { - returnCode = -1; - VC_AppCustomData.Channel[i].Mode = VC_CHANNEL_DISABLED; - } - else - { - (void) CFE_EVS_SendEvent(VC_CHA_INF_EID, CFE_EVS_INFORMATION, - "VC UDP output enabled channel %u to %s:%u", - (unsigned int)i, VC_AppCustomData.Channel[i].DestIP, - (unsigned int)VC_AppCustomData.Channel[i].DestPort); - } - } - } - return (returnCode); -} - - -int32 VC_DisableChannel(uint8 ChannelID) -{ - int32 returnCode = 0; - - if(VC_AppCustomData.Channel[ChannelID].Mode != VC_CHANNEL_ENABLED) - { - returnCode = -1; - goto end_of_function; - } - - if(-1 == close(VC_AppCustomData.Channel[ChannelID].SocketFd)) - { - returnCode = -1; - goto end_of_function; - } - else - { - VC_AppCustomData.Channel[ChannelID].SocketFd = 0; - } - -end_of_function: - return (returnCode); -} - - -int32 VC_CleanupCustom(void) -{ - uint32 i = 0; - int32 returnCode = 0; - - for(i=0; i < VC_MAX_OUTPUT_CHANNELS; i++) - { - if(VC_AppCustomData.Channel[i].Mode == VC_CHANNEL_ENABLED) - { - if(-1 == VC_DisableChannel(i)) - { - returnCode = -1; - } - } - } - return returnCode; -} - - -boolean VC_Transmit_Init(void) -{ - boolean returnBool = TRUE; - if(-1 == VC_Init_CustomTransmitters()) - { - (void) CFE_EVS_SendEvent(VC_SOCKET_ERR_EID, CFE_EVS_ERROR, \ - "VC_Transmit_Init Failed"); - returnBool = FALSE; - } - return (returnBool); -} - - -boolean VC_Transmit_Uninit(void) -{ - boolean returnBool = TRUE; - if(-1 == VC_CleanupCustom()) - { - returnBool = FALSE; - } - return (returnBool); -} - - -void VC_Transmit_Critical_Cleanup(void) -{ - uint8 i = 0; - - for(i=0; i < VC_MAX_OUTPUT_CHANNELS; i++) - { - if(VC_AppCustomData.Channel[i].SocketFd != 0) - { - close(VC_AppCustomData.Channel[i].SocketFd); - } - } - return; -} - - -int32 VC_SendData(uint32 ChannelID, const char* Buffer, uint32 Size) -{ - static struct sockaddr_in s_addr; - int status = 0; - int32 returnCode = 0; - - bzero((char *) &s_addr, sizeof(s_addr)); - s_addr.sin_family = AF_INET; - - if(ChannelID < VC_MAX_OUTPUT_CHANNELS) - { - VC_Transmit_Handle_t *channel = &VC_AppCustomData.Channel[ChannelID]; - - if(channel->Mode == VC_CHANNEL_ENABLED) - { - - CFE_ES_PerfLogEntry(VC_SOCKET_SEND_PERF_ID); - /* Send message via UDP socket */ - s_addr.sin_addr.s_addr = inet_addr(channel->DestIP); - s_addr.sin_port = htons(channel->DestPort); - - /* If the frame is from opFlow dedicated camera device - * convert image from YUV2 or YUYV to Grey by extracting the Y component. - * copy the image to opticalFlowFrameMsg*/ - if(ChannelID == 0) - { - /* Row */ - uint32 rowPadding = (VC_FRAME_HEIGHT-OP_FLOW_FRAME_HEIGHT)/2; - uint32 startRow = ((VC_FRAME_WIDTH)*(rowPadding-1)); - uint32 endRow = ((VC_FRAME_WIDTH)*(VC_FRAME_HEIGHT-rowPadding-1)); - /* Column */ - uint32 columnPadding = (VC_FRAME_WIDTH-OP_FLOW_FRAME_WIDTH)/2; - uint32 startColumn = (columnPadding); - uint32 endColumn = (VC_FRAME_WIDTH-columnPadding-1); - - uint32 byteCounter = 0; - uint32 colCounter = 0; - uint32 valCounter = 0; - - uint32 columnPaddingCounter = 0; - uint32 rowPaddingCounter = 0; - uint32 i; - for(i =0 ; i= endRow) - { - byteCounter++; - continue; - - } - else - { - if(byteCounter!=0 && byteCounter%VC_FRAME_WIDTH == 0) - { - colCounter = 0; - } - - if(colCounter>=startColumn && colCounter<=endColumn) - { - OpticalFlowFrameMsg.Frame[valCounter]=(uint8)Buffer[i]; - valCounter++; - } - colCounter++; - } - byteCounter++; - } - } - - /* Publish message to software bus */ - uint64 timestamp; - timestamp = PX4LIB_GetPX4TimeUs(); - OpticalFlowFrameMsg.Timestamp = timestamp; - CFE_SB_TimeStampMsg((CFE_SB_Msg_t*) &OpticalFlowFrameMsg); - CFE_SB_SendMsg((CFE_SB_Msg_t*) &OpticalFlowFrameMsg); - status = PX4_OPTICAL_FLOW_FRAME_SIZE; - - /* Send frame over udp*/ - status = sendto(channel->SocketFd, (char *)OpticalFlowFrameMsg.Frame, sizeof(OpticalFlowFrameMsg.Frame), 0, - (struct sockaddr *) &s_addr, - sizeof(s_addr)); - } - - if (status < 0) - { - if(errno == 90) - { - (void) CFE_EVS_SendEvent(VC_SOCKET_ERR_EID,CFE_EVS_ERROR, - "L%d VC sendto errno %d. Message too long. Size=%u", __LINE__, errno, (unsigned int)Size); - } - else - { - (void) CFE_EVS_SendEvent(VC_SOCKET_ERR_EID, CFE_EVS_ERROR, - "L%d VC sendto errno %d.", __LINE__, errno); - } - - /* Delay the task to prevent the possibility of busy waiting and accidental denial of service. */ - OS_TaskDelay(1000); - } - CFE_ES_PerfLogExit(VC_SOCKET_SEND_PERF_ID); - } - } - return (returnCode); -} - - -boolean VC_Address_Verification(const char *Address) -{ - boolean returnBool = FALSE; - static struct sockaddr_in s_addr; - if(0 != inet_aton(Address, &s_addr.sin_addr)) - { - returnBool = TRUE; - } - return (returnBool); -} - - -boolean VC_Update_Destination(const char *Address, uint16 Port) -{ - boolean returnBool = TRUE; - uint32 i = 0; - - for (i=0; i < VC_MAX_OUTPUT_CHANNELS; i++) - { - if(VC_AppCustomData.Channel[i].Mode == VC_CHANNEL_ENABLED) - { - VC_AppCustomData.Channel[i].DestPort = Port; - - if(!strncpy(VC_AppCustomData.Channel[i].DestIP, Address, INET_ADDRSTRLEN)) - { - returnBool = FALSE; - } - } - } - - return (returnBool); -} - - -int32 VC_Transmit_InitData() -{ - return VC_CustomTransmit_InitData(); -} - diff --git a/config/ocpoc/quadx/target/apps/vc/src/vc_transmit_udp/vc_transmit_udp.h b/config/ocpoc/quadx/target/apps/vc/src/vc_transmit_udp/vc_transmit_udp.h deleted file mode 100644 index e83ecd4be..000000000 --- a/config/ocpoc/quadx/target/apps/vc/src/vc_transmit_udp/vc_transmit_udp.h +++ /dev/null @@ -1,145 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ - -#ifndef VC_TRANSMIT_UDP_H -#define VC_TRANSMIT_UDP_H - -/************************************************************************ -** Includes -*************************************************************************/ -#include "cfe.h" -#include "px4_msgs.h" -#include "msg_ids.h" -#include "vc_transmit.h" -#include "../vc_custom_shared.h" -#include "vc_perfids.h" -#include -#include "vc_app.h" - -/************************************************************************ -** Structure Declarations -*************************************************************************/ - -/** - * Channel modes - */ -typedef enum -{ - /*! Channel state unused */ - VC_CHANNEL_UNUSED = 0, - /*! Channel state disabled */ - VC_CHANNEL_DISABLED = 1, - /*! Channel state enabled */ - VC_CHANNEL_ENABLED = 2 -} VC_ChannelMode_t; - - -/** - * Transmit struct handle for user defined source and/or destination - * configuration information and initialized resource reference. - */ -typedef struct -{ - /*! Channel mode */ - VC_ChannelMode_t Mode; - /*! Channel identifier */ - uint8 ChannelID; - /*! Destination port */ - uint16 DestPort; - /*! Local port to bind */ - uint16 MyPort; - /*! Destination IP address */ - char DestIP[INET_ADDRSTRLEN]; - /*! Local IP address to allow interface choices */ - char MyIP[INET_ADDRSTRLEN]; - /*! Socket file descriptor for the channel */ - int SocketFd; -} VC_Transmit_Handle_t; - -/** - * Transmit handles - */ -typedef struct -{ - VC_Transmit_Handle_t Channel[VC_MAX_OUTPUT_CHANNELS]; -} VC_AppCustomData_t; - -/** \brief Optical flow frame message */ -PX4_OpticalFlowFrameMsg_t OpticalFlowFrameMsg; -/************************************************************************ -** External Global Variables -*************************************************************************/ - -extern VC_AppCustomData_t VC_AppCustomData; - -/************************************************************************ -** Function Prototypes -*************************************************************************/ - -/** - * @brief Custom function to initialize custom transmit data structure. - * @return CFE_SUCCESS - */ -int32 VC_CustomTransmit_InitData(void); - - -/** - * @brief Initialize all enabled transmit resources - * @return 0 for success -1 for failure - */ -int32 VC_Init_CustomTransmitters(void); - - -/** - * @brief Initialize a transmit channel - * @return 0 for success -1 for failure - */ -int32 VC_EnableChannel(uint8 ChannelID); - - -/** - * @brief Cleanup all transmit resources - * @return 0 for success -1 for failure - */ -int32 VC_CleanupCustom(void); - - -/** - * @brief Disable a transmit channel - * @param ChannelID the channel to disable - * @return 0 for success -1 for failure - */ -int32 VC_DisableChannel(uint8 ChannelID); - - -#endif diff --git a/config/ocpoc/quadx/target/apps/vc/unit_test/vc_app_custom_stubs/vc_app_custom_stubs.c b/config/ocpoc/quadx/target/apps/vc/unit_test/vc_app_custom_stubs/vc_app_custom_stubs.c deleted file mode 100644 index af7b83c94..000000000 --- a/config/ocpoc/quadx/target/apps/vc/unit_test/vc_app_custom_stubs/vc_app_custom_stubs.c +++ /dev/null @@ -1,50 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ - -#include "vc_app_custom_stubs.h" - - - -uint64 PX4LIB_GetPX4TimeUs(void) -{ - return 0; -} - - -uint64 PX4LIB_GetPX4TimeMs(void) -{ - return 0; -} - - - diff --git a/config/ocpoc/quadx/target/apps/vc/unit_test/vc_app_custom_stubs/vc_app_custom_stubs.h b/config/ocpoc/quadx/target/apps/vc/unit_test/vc_app_custom_stubs/vc_app_custom_stubs.h deleted file mode 100644 index 320012837..000000000 --- a/config/ocpoc/quadx/target/apps/vc/unit_test/vc_app_custom_stubs/vc_app_custom_stubs.h +++ /dev/null @@ -1,48 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ - -#ifndef VC_APP_CUSTOM_STUBS_H -#define VC_APP_CUSTOM_STUBS_H - -#ifdef __cplusplus -extern "C" { -#endif - -#include "cfe.h" - - -#ifdef __cplusplus -} -#endif - -#endif /* VC_APP_CUSTOM_STUBS_H */ diff --git a/config/ocpoc/quadx/target/apps/vc/unit_test/vc_app_stubs/vc_app_stubs.c b/config/ocpoc/quadx/target/apps/vc/unit_test/vc_app_stubs/vc_app_stubs.c deleted file mode 100644 index 21cf82ce5..000000000 --- a/config/ocpoc/quadx/target/apps/vc/unit_test/vc_app_stubs/vc_app_stubs.c +++ /dev/null @@ -1,62 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ - -#include "vc_app_stubs.h" -#include "vc_custom_shared.h" - -boolean VC_VerifyCmdLength(CFE_SB_Msg_t* MsgPtr, - uint16 usExpectedLen) -{ - boolean bResult = TRUE; - uint16 usMsgLen = 0; - - if (MsgPtr != NULL) - { - usMsgLen = CFE_SB_GetTotalMsgLength(MsgPtr); - - if (usExpectedLen != usMsgLen) - { - bResult = FALSE; - CFE_SB_MsgId_t MsgId = CFE_SB_GetMsgId(MsgPtr); - uint16 usCmdCode = CFE_SB_GetCmdCode(MsgPtr); - - (void) CFE_EVS_SendEvent(VC_MSGLEN_ERR_EID, CFE_EVS_ERROR, - "Rcvd invalid msgLen: msgId=0x%08X, cmdCode=%d, " - "msgLen=%d, expectedLen=%d", - MsgId, usCmdCode, usMsgLen, usExpectedLen); - VC_AppData.HkTlm.usCmdErrCnt++; - } - } - - return (bResult); -} /* End of VC_VerifyCmdLength() */ diff --git a/config/ocpoc/quadx/target/apps/vc/unit_test/vc_app_stubs/vc_app_stubs.h b/config/ocpoc/quadx/target/apps/vc/unit_test/vc_app_stubs/vc_app_stubs.h deleted file mode 100644 index a44118e95..000000000 --- a/config/ocpoc/quadx/target/apps/vc/unit_test/vc_app_stubs/vc_app_stubs.h +++ /dev/null @@ -1,50 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ - -#ifndef VC_APP_STUBS_H -#define VC_APP_STUBS_H - -#ifdef __cplusplus -extern "C" { -#endif - -#include "cfe.h" - -boolean VC_VerifyCmdLength(CFE_SB_Msg_t* MsgPtr, - uint16 usExpectedLen); - -#ifdef __cplusplus -} -#endif - -#endif /* VC_APP_STUBS_H */ diff --git a/config/ocpoc/quadx/target/apps/vc/unit_test/vc_custom_shared_test/vc_app_custom_shared_test.c b/config/ocpoc/quadx/target/apps/vc/unit_test/vc_custom_shared_test/vc_app_custom_shared_test.c deleted file mode 100644 index 04aae9595..000000000 --- a/config/ocpoc/quadx/target/apps/vc/unit_test/vc_custom_shared_test/vc_app_custom_shared_test.c +++ /dev/null @@ -1,589 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ - -#include "vc_app_custom_shared_test.h" -#include "vc_custom_shared_test_utils.h" -#include "vc_platform_cfg.h" -#include "vc_transmit_udp.h" -#include "vc_msgids.h" -#include "vc_platform_stubs.h" - -#include -#include -#include - -#include "uttest.h" -#include "ut_osapi_stubs.h" -#include "ut_cfe_sb_stubs.h" -#include "ut_cfe_sb_hooks.h" -#include "ut_cfe_es_stubs.h" -#include "ut_cfe_es_hooks.h" -#include "ut_cfe_evs_stubs.h" -#include "ut_cfe_evs_hooks.h" -#include "ut_cfe_time_stubs.h" -#include "ut_cfe_psp_memutils_stubs.h" -#include "ut_cfe_tbl_stubs.h" -#include "ut_cfe_fs_stubs.h" -#include "ut_cfe_time_stubs.h" - -/************************************************************************** - * Tests VC_ProcessNewCustomCmds() - **************************************************************************/ -/** - * Test VC_ProcessNewCustomCmds() - InvalidMsgID - */ -void Test_VC_Custom_ProcessNewCustomCmds_InvalidMsgID(void) -{ - VC_StartStreamCmd_t InMsg; - - CFE_SB_InitMsg (&InMsg, 0x0000, sizeof(VC_StartStreamCmd_t), TRUE); - - CFE_SB_SetCmdCode((CFE_SB_MsgPtr_t)&InMsg, VC_STARTSTREAMING_CC); - - /* Set get command code function hook */ - Ut_CFE_SB_SetFunctionHook(UT_CFE_SB_GETCMDCODE_INDEX, &Ut_CFE_SB_GetCmdCodeHook); - - /* Call the function under test */ - VC_ProcessNewCustomCmds((CFE_SB_MsgPtr_t)&InMsg); - - /* Verify results */ - - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); - UtAssert_True(VC_AppData.HkTlm.usCmdErrCnt == 1,"CmdErrCnt not incremented"); - UtAssert_EventSent(VC_MSGID_ERR_EID, CFE_EVS_ERROR, "", - "VC_ProcessNewCustomCmds() failed to raise an event"); -} - - -/** - * Test VC_ProcessNewCustomCmds() - Invalid Command Code - */ -void Test_VC_Custom_ProcessNewCustomCmds_InvalidCommand(void) -{ - /* Create an invalid command code */ - uint8 InvalidCommandCode = 100; - - VC_StartStreamCmd_t InMsg; - - CFE_SB_InitMsg (&InMsg, VC_STARTSTREAMING_CC, sizeof(VC_StartStreamCmd_t), TRUE); - - /* Set invalid command code */ - CFE_SB_SetCmdCode((CFE_SB_MsgPtr_t)&InMsg, InvalidCommandCode); - - /* Set get command code function hook */ - Ut_CFE_SB_SetFunctionHook(UT_CFE_SB_GETCMDCODE_INDEX, &Ut_CFE_SB_GetCmdCodeHook); - - /* Call the function under test */ - VC_ProcessNewCustomCmds((CFE_SB_MsgPtr_t)&InMsg); - - /* Verify results */ - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); - UtAssert_True(VC_AppData.HkTlm.usCmdErrCnt = 1,"Command error counter != 1"); - UtAssert_EventSent(VC_MSGID_ERR_EID, CFE_EVS_ERROR, "", - "Cmd with Invalid Cmd Code Sent"); -} - - -/** - * Test VC_ProcessNewCustomCmds(), StartStreaming command, Invalid Size - */ -void Test_VC_ProcessNewCustomCmds_StartStreaming_InvalidSize(void) -{ - /* Command with the wrong type (size) */ - VC_NoArgCmd_t InMsg; - - CFE_SB_InitMsg (&InMsg, VC_CMD_MID, sizeof(InMsg), TRUE); - - CFE_SB_SetCmdCode((CFE_SB_MsgPtr_t)&InMsg, VC_STARTSTREAMING_CC); - - /* Set get command code function hook */ - Ut_CFE_SB_SetFunctionHook(UT_CFE_SB_GETCMDCODE_INDEX, &Ut_CFE_SB_GetCmdCodeHook); - - /* Call the function under test */ - VC_ProcessNewCustomCmds((CFE_SB_MsgPtr_t)&InMsg); - - /* Verify results */ - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); - UtAssert_True(VC_AppData.HkTlm.usCmdErrCnt = 1,"Command error counter != 1"); - UtAssert_EventSent(VC_MSGLEN_ERR_EID, CFE_EVS_ERROR, "", - "Start Streaming Cmd Event Sent"); -} - - -/** - * Test VC_ProcessNewCustomCmds(), StartStreaming command, Invalid State - */ -void Test_VC_ProcessNewCustomCmds_StartStreaming_InvalidState(void) -{ - VC_StartStreamCmd_t InStartStreamingCmd; - - CFE_SB_InitMsg (&InStartStreamingCmd, VC_CMD_MID, sizeof(InStartStreamingCmd), TRUE); - CFE_SB_SetCmdCode((CFE_SB_MsgPtr_t)&InStartStreamingCmd, VC_STARTSTREAMING_CC); - - /* Set get command code function hook */ - Ut_CFE_SB_SetFunctionHook(UT_CFE_SB_GETCMDCODE_INDEX, &Ut_CFE_SB_GetCmdCodeHook); - - /* Set app state to streaming */ - VC_AppData.AppState = VC_STREAMING; - - /* Call the function under test */ - VC_ProcessNewCustomCmds((CFE_SB_MsgPtr_t)&InStartStreamingCmd); - - /* Verify results */ - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==2,"Event Count = 2"); - UtAssert_True(VC_AppData.HkTlm.usCmdErrCnt = 1,"Command error counter != 1"); - UtAssert_EventSent(VC_CMD_ERR_EID, CFE_EVS_ERROR, "VC is already streaming", "Start Streaming Cmd Event Sent"); -} - - -/** - * Test VC_ProcessNewCustomCmds(), StartStreaming command, Invalid (Null) Address - */ -void Test_VC_ProcessNewCustomCmds_StartStreaming_InvalidNullAddress(void) -{ - VC_StartStreamCmd_t InStartStreamingCmd; - - CFE_SB_InitMsg (&InStartStreamingCmd, VC_CMD_MID, sizeof(InStartStreamingCmd), TRUE); - CFE_SB_SetCmdCode((CFE_SB_MsgPtr_t)&InStartStreamingCmd, VC_STARTSTREAMING_CC); - - /* Set get command code function hook */ - Ut_CFE_SB_SetFunctionHook(UT_CFE_SB_GETCMDCODE_INDEX, &Ut_CFE_SB_GetCmdCodeHook); - - /* Set app state to initialized */ - VC_AppData.AppState = VC_INITIALIZED; - - /* Call the function under test */ - VC_ProcessNewCustomCmds((CFE_SB_MsgPtr_t)&InStartStreamingCmd); - - /* Verify results */ - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==2,"Event Count = 2"); - UtAssert_True(VC_AppData.HkTlm.usCmdErrCnt = 1,"Command error counter != 1"); - UtAssert_EventSent(VC_ADDR_NUL_ERR_EID, CFE_EVS_ERROR, - "NUL (empty) string specified for address", "Start Streaming Cmd Event Sent"); -} - - -/** - * Test VC_ProcessNewCustomCmds(), StartStreaming command, Invalid Address - */ -void Test_VC_ProcessNewCustomCmds_StartStreaming_InvalidAddress(void) -{ - VC_StartStreamCmd_t InStartStreamingCmd; - - CFE_SB_InitMsg (&InStartStreamingCmd, VC_CMD_MID, sizeof(InStartStreamingCmd), TRUE); - CFE_SB_SetCmdCode((CFE_SB_MsgPtr_t)&InStartStreamingCmd, VC_STARTSTREAMING_CC); - - /* Set get command code function hook */ - Ut_CFE_SB_SetFunctionHook(UT_CFE_SB_GETCMDCODE_INDEX, &Ut_CFE_SB_GetCmdCodeHook); - - /* Set app state to initialized */ - VC_AppData.AppState = VC_INITIALIZED; - - /* Start streaming needs an address to pass null check */ - strcpy(InStartStreamingCmd.Address, "NOT_NULL"); - - /* Call the function under test */ - VC_ProcessNewCustomCmds((CFE_SB_MsgPtr_t)&InStartStreamingCmd); - - /* Verify results */ - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==2,"Event Count = 2"); - UtAssert_True(VC_AppData.HkTlm.usCmdErrCnt = 1,"Command error counter != 1"); - UtAssert_EventSent(VC_ADDR_ERR_EID, CFE_EVS_ERROR, - "Invalid string specified for address", "Start Streaming Cmd Event Sent"); -} - - -/** - * Test VC_ProcessNewCustomCmds(), StartStreaming command, destination - * update failure - */ -void Test_VC_ProcessNewCustomCmds_StartStreaming_UpdateDestinationFail(void) -{ - /* Currently no way to fail update destination. */ - //VC_StartStreamCmd_t InStartStreamingCmd; - - //CFE_SB_InitMsg (&InStartStreamingCmd, VC_CMD_MID, sizeof(InStartStreamingCmd), TRUE); - //CFE_SB_SetCmdCode((CFE_SB_MsgPtr_t)&InStartStreamingCmd, VC_STARTSTREAMING_CC); - - ///* Set get command code function hook */ - //Ut_CFE_SB_SetFunctionHook(UT_CFE_SB_GETCMDCODE_INDEX, &Ut_CFE_SB_GetCmdCodeHook); - - ///* Set app state to initialized */ - //VC_AppData.AppState = VC_INITIALIZED; - - ///* Start streaming needs an address to pass null check */ - //strcpy(InStartStreamingCmd.Address, "1.1.1.1"); - - ///* Call the function under test */ - //VC_ProcessNewCustomCmds((CFE_SB_MsgPtr_t)&InStartStreamingCmd); - - ///* Verify results */ - //UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==2,"Event Count = 2"); - //UtAssert_True(VC_AppData.HkTlm.usCmdErrCnt = 1,"Command error counter != 1"); - //UtAssert_EventSent(VC_INIT_ERR_EID, CFE_EVS_ERROR, "Destination update failed", "Start Streaming Cmd Event Sent"); -} - - -/** - * Test VC_ProcessNewCustomCmds(), StartStreaming command, transmit - * uninit failure - */ -void Test_VC_ProcessNewCustomCmds_StartStreaming_TransmitUninitFail(void) -{ - VC_StartStreamCmd_t InStartStreamingCmd; - - CFE_SB_InitMsg (&InStartStreamingCmd, VC_CMD_MID, sizeof(InStartStreamingCmd), TRUE); - CFE_SB_SetCmdCode((CFE_SB_MsgPtr_t)&InStartStreamingCmd, VC_STARTSTREAMING_CC); - - /* Set get command code function hook */ - Ut_CFE_SB_SetFunctionHook(UT_CFE_SB_GETCMDCODE_INDEX, &Ut_CFE_SB_GetCmdCodeHook); - - /* Set app state to initialized */ - VC_AppData.AppState = VC_INITIALIZED; - - /* Start streaming needs an address to pass null check */ - strcpy(InStartStreamingCmd.Address, "1.1.1.1"); - - /* Set a channel to enabled to pass VC_Update_Destination */ - VC_AppCustomData.Channel[0].Mode = VC_CHANNEL_ENABLED; - - /* Set close to fail */ - VC_Platform_Stubs_Returns.VC_Wrap_Close_Return = -1; - - /* Call the function under test */ - VC_ProcessNewCustomCmds((CFE_SB_MsgPtr_t)&InStartStreamingCmd); - - /* Verify results */ - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==2,"Event Count = 2"); - UtAssert_True(VC_AppData.HkTlm.usCmdErrCnt = 1,"Command error counter != 1"); -} - - -/** - * Test VC_ProcessNewCustomCmds(), StartStreaming command, devices - * start failure - */ -void Test_VC_ProcessNewCustomCmds_StartStreaming_DevicesStartFail(void) -{ - VC_StartStreamCmd_t InStartStreamingCmd; - - CFE_SB_InitMsg (&InStartStreamingCmd, VC_CMD_MID, sizeof(InStartStreamingCmd), TRUE); - CFE_SB_SetCmdCode((CFE_SB_MsgPtr_t)&InStartStreamingCmd, VC_STARTSTREAMING_CC); - - /* Set get command code function hook */ - Ut_CFE_SB_SetFunctionHook(UT_CFE_SB_GETCMDCODE_INDEX, &Ut_CFE_SB_GetCmdCodeHook); - - /* Set app state to initialized */ - VC_AppData.AppState = VC_INITIALIZED; - - /* Start streaming needs an address to pass null check */ - strcpy(InStartStreamingCmd.Address, "1.1.1.1"); - - /* Set source IP to a valid value to pass transmit init */ - strcpy(VC_AppCustomData.Channel[0].MyIP, "1.1.1.1"); - - /* Set a channel to enabled to pass VC_Update_Destination */ - VC_AppCustomData.Channel[0].Mode = VC_CHANNEL_ENABLED; - - /* Set status to initialized */ - VC_AppCustomDevice.Channel[0].Status = VC_DEVICE_INITIALIZED; - - /* Set device start child task to fail */ - Ut_CFE_ES_SetReturnCode(UT_CFE_ES_CREATECHILDTASK_INDEX, -1, 1); - - /* Call the function under test */ - VC_ProcessNewCustomCmds((CFE_SB_MsgPtr_t)&InStartStreamingCmd); - - /* Verify results */ - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==2,"Event Count = 2"); - UtAssert_True(VC_AppData.HkTlm.usCmdErrCnt = 1,"Command error counter != 1"); - UtAssert_EventSent(VC_INIT_ERR_EID, CFE_EVS_ERROR, "VC_Devices_Start failed in cmd start streaming", "Device start failure did not raise event"); -} - - -/** - * Test VC_ProcessNewCustomCmds(), Start Streaming command, Nominal - */ -void Test_VC_ProcessNewCustomCmds_StartStreaming_Nominal(void) -{ - VC_StartStreamCmd_t InStartStreamingCmd; - - CFE_SB_InitMsg (&InStartStreamingCmd, VC_CMD_MID, sizeof(InStartStreamingCmd), TRUE); - CFE_SB_SetCmdCode((CFE_SB_MsgPtr_t)&InStartStreamingCmd, VC_STARTSTREAMING_CC); - - /* Set get command code function hook */ - Ut_CFE_SB_SetFunctionHook(UT_CFE_SB_GETCMDCODE_INDEX, &Ut_CFE_SB_GetCmdCodeHook); - - /* Set app state to initialized */ - VC_AppData.AppState = VC_INITIALIZED; - - /* Start streaming needs an address to pass null check */ - strcpy(InStartStreamingCmd.Address, "1.1.1.1"); - - /* Set source IP to a valid value to pass transmit init */ - strcpy(VC_AppCustomData.Channel[0].MyIP, "1.1.1.1"); - - /* Set a channel to enabled to pass VC_Update_Destination */ - VC_AppCustomData.Channel[0].Mode = VC_CHANNEL_ENABLED; - - /* Set status to initialized */ - VC_AppCustomDevice.Channel[0].Status = VC_DEVICE_INITIALIZED; - - /* Call the function under test */ - VC_ProcessNewCustomCmds((CFE_SB_MsgPtr_t)&InStartStreamingCmd); - - /* Verify results */ - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==2,"Event Count = 2"); - UtAssert_True(VC_AppData.HkTlm.usCmdCnt = 1,"Command counter != 1"); - UtAssert_EventSent(VC_CMD_INF_EID, CFE_EVS_INFORMATION, "", "Start Streaming Cmd Event Sent"); - UtAssert_True(VC_AppData.AppState == VC_STREAMING, "App state != streaming"); -} - - -/** - * Test VC_ProcessNewCustomCmds(), StopStreaming command, Invalid Size - */ -void Test_VC_ProcessNewCustomCmds_StopStreaming_InvalidSize(void) -{ - /* Command with the wrong type (size) */ - VC_StartStreamCmd_t InMsg; - - CFE_SB_InitMsg (&InMsg, VC_CMD_MID, sizeof(InMsg), TRUE); - - CFE_SB_SetCmdCode((CFE_SB_MsgPtr_t)&InMsg, VC_STOPSTREAMING_CC); - - /* Set get command code function hook */ - Ut_CFE_SB_SetFunctionHook(UT_CFE_SB_GETCMDCODE_INDEX, &Ut_CFE_SB_GetCmdCodeHook); - - /* Call the function under test */ - VC_ProcessNewCustomCmds((CFE_SB_MsgPtr_t)&InMsg); - - /* Verify results */ - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); - UtAssert_True(VC_AppData.HkTlm.usCmdErrCnt = 1,"Command error counter != 1"); - UtAssert_EventSent(VC_MSGLEN_ERR_EID, CFE_EVS_ERROR, "", - "Start Streaming Cmd Event Sent"); -} - - -/** - * Test VC_ProcessNewCustomCmds(), StopStreaming command, Invalid State - */ -void Test_VC_ProcessNewCustomCmds_StopStreaming_InvalidState(void) -{ - VC_NoArgCmd_t InMsg; - - CFE_SB_InitMsg (&InMsg, VC_CMD_MID, sizeof(InMsg), TRUE); - CFE_SB_SetCmdCode((CFE_SB_MsgPtr_t)&InMsg, VC_STOPSTREAMING_CC); - - /* Set get command code function hook */ - Ut_CFE_SB_SetFunctionHook(UT_CFE_SB_GETCMDCODE_INDEX, &Ut_CFE_SB_GetCmdCodeHook); - - /* Set app state to streaming */ - VC_AppData.AppState = VC_INITIALIZED; - - /* Call the function under test */ - VC_ProcessNewCustomCmds((CFE_SB_MsgPtr_t)&InMsg); - - /* Verify results */ - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==2,"Event Count = 2"); - UtAssert_True(VC_AppData.HkTlm.usCmdErrCnt = 1,"Command error counter != 1"); - UtAssert_EventSent(VC_CMD_ERR_EID, CFE_EVS_ERROR, - "VC is already not streaming", "Stop Streaming Cmd Event Sent"); -} - - -/************************************************************************** - * Tests VC_Custom_Max_Events_Not_Reached() - **************************************************************************/ -/** - * Test Test_VC_Custom_Max_Events_Not_Reached(), Nominal - * - */ -void Test_VC_Custom_Max_Events_Not_Reached_Nominal(void) -{ - UtAssert_True(VC_Custom_Max_Events_Not_Reached(VC_MAX_EVENT_FILTERS - 1) == TRUE, - "Max events not reached did return true"); -} - - -/** - * Test Test_VC_Custom_Max_Events_Not_Reached(), Fail - * - */ -void Test_VC_Custom_Max_Events_Not_Reached_Fail(void) -{ - UtAssert_True(VC_Custom_Max_Events_Not_Reached(VC_MAX_EVENT_FILTERS + 1) == FALSE, - "Max events not reached did not return false"); -} - - -/************************************************************************** - * Tests VC_Custom_Init_EventFilters() - **************************************************************************/ -/** - * Test VC_Custom_Init_EventFilters(), Nominal - */ -void Test_VC_Custom_Init_EventFilters_Nominal(void) -{ - int32 returnCode = 0; - int32 expected = 2; - - CFE_EVS_BinFilter_t EventTbl[VC_MAX_EVENT_FILTERS]; - - returnCode = VC_Custom_Init_EventFilters(1, EventTbl); - - UtAssert_True(returnCode == expected, - "Test_VC_Custom_Init_EventFilters_Nominal did not return the expected value"); - UtAssert_True(EventTbl[1].EventID == VC_SOCKET_ERR_EID, - "Event filter array entries not added"); - UtAssert_True(EventTbl[2].EventID == VC_DEVICE_ERR_EID, - "Event filter array entries not added"); -} - - -/** - * Test VC_Custom_Init_EventFilters(), Fail - */ -void Test_VC_Custom_Init_EventFilters_Fail1(void) -{ - int32 returnCode = 0; - int32 expected = -1; - CFE_EVS_BinFilter_t EventTbl[VC_MAX_EVENT_FILTERS]; - - returnCode = VC_Custom_Init_EventFilters(VC_MAX_EVENT_FILTERS, EventTbl); - - UtAssert_True(returnCode == expected, - "Test_VC_Custom_Init_EventFilters_Fail did not return the expected value"); - -} - - -/** - * Test VC_Custom_Init_EventFilters(), Fail - */ -void Test_VC_Custom_Init_EventFilters_Fail2(void) -{ - int32 returnCode = 0; - int32 expected = -1; - CFE_EVS_BinFilter_t EventTbl[VC_MAX_EVENT_FILTERS]; - - returnCode = VC_Custom_Init_EventFilters(VC_MAX_EVENT_FILTERS-1, EventTbl); - - UtAssert_True(returnCode == expected, - "Test_VC_Custom_Init_EventFilters_Fail did not return the expected value"); - UtAssert_True(returnCode == expected, - "Test_VC_Custom_Init_EventFilters_Nominal did not return the expected value"); - UtAssert_True(EventTbl[VC_MAX_EVENT_FILTERS-1].EventID == VC_SOCKET_ERR_EID, - "Event filter array entries not added"); - -} - - -/** - * Test VC_Custom_Init_EventFilters(), Fail null check - */ -void Test_VC_Custom_Init_EventFilters_Null(void) -{ - int32 returnCode = 0; - int32 expected = -1; - - returnCode = VC_Custom_Init_EventFilters(1, (CFE_EVS_BinFilter_t *)0); - - UtAssert_True(returnCode == expected, - "Test_VC_Custom_Init_EventFilters_Fail did not return the expected value"); -} - -/************************************************************************** - * Rollup Test Cases - **************************************************************************/ -void VC_Custom_App_Shared_Test_AddTestCases(void) -{ -/************************************************************************** - * Tests for Custom Shared Layer - **************************************************************************/ - UtTest_Add(Test_VC_Custom_ProcessNewCustomCmds_InvalidMsgID, - VC_Custom_Shared_Test_Setup, VC_Custom_Shared_Test_TearDown, - "Test_VC_Custom_ProcessNewCustomCmds_InvalidMsgID"); - UtTest_Add(Test_VC_Custom_ProcessNewCustomCmds_InvalidCommand, - VC_Custom_Shared_Test_Setup, VC_Custom_Shared_Test_TearDown, - "Test_VC_Custom_ProcessNewCustomCmds_InvalidCommand"); - UtTest_Add(Test_VC_ProcessNewCustomCmds_StartStreaming_InvalidSize, - VC_Custom_Shared_Test_Setup, VC_Custom_Shared_Test_TearDown, - "Test_VC_ProcessNewCustomCmds_StartStreaming_InvalidSize"); - UtTest_Add(Test_VC_ProcessNewCustomCmds_StartStreaming_InvalidState, - VC_Custom_Shared_Test_Setup, VC_Custom_Shared_Test_TearDown, - "Test_VC_ProcessNewCustomCmds_StartStreaming_InvalidState"); - UtTest_Add(Test_VC_ProcessNewCustomCmds_StartStreaming_InvalidNullAddress, - VC_Custom_Shared_Test_Setup, VC_Custom_Shared_Test_TearDown, - "Test_VC_ProcessNewCustomCmds_StartStreaming_InvalidNullAddress"); - UtTest_Add(Test_VC_ProcessNewCustomCmds_StartStreaming_InvalidAddress, - VC_Custom_Shared_Test_Setup, VC_Custom_Shared_Test_TearDown, - "Test_VC_ProcessNewCustomCmds_StartStreaming_InvalidAddress"); - UtTest_Add(Test_VC_ProcessNewCustomCmds_StartStreaming_UpdateDestinationFail, - VC_Custom_Shared_Test_Setup, VC_Custom_Shared_Test_TearDown, - "Test_VC_ProcessNewCustomCmds_StartStreaming_UpdateDestinationFail"); - UtTest_Add(Test_VC_ProcessNewCustomCmds_StartStreaming_TransmitUninitFail, - VC_Custom_Shared_Test_Setup, VC_Custom_Shared_Test_TearDown, - "Test_VC_ProcessNewCustomCmds_StartStreaming_TransmitUninitFail"); - UtTest_Add(Test_VC_ProcessNewCustomCmds_StartStreaming_DevicesStartFail, - VC_Custom_Shared_Test_Setup, VC_Custom_Shared_Test_TearDown, - "Test_VC_ProcessNewCustomCmds_StartStreaming_DevicesStartFail"); - UtTest_Add(Test_VC_ProcessNewCustomCmds_StartStreaming_Nominal, - VC_Custom_Shared_Test_Setup, VC_Custom_Shared_Test_TearDown, - "Test_VC_ProcessNewCustomCmds_StartStreaming_Nominal"); - UtTest_Add(Test_VC_ProcessNewCustomCmds_StopStreaming_InvalidSize, - VC_Custom_Shared_Test_Setup, VC_Custom_Shared_Test_TearDown, - "Test_VC_ProcessNewCustomCmds_StopStreaming_InvalidSize"); - UtTest_Add(Test_VC_ProcessNewCustomCmds_StopStreaming_InvalidState, - VC_Custom_Shared_Test_Setup, VC_Custom_Shared_Test_TearDown, - "Test_VC_ProcessNewCustomCmds_StopStreaming_InvalidState"); - UtTest_Add(Test_VC_Custom_Max_Events_Not_Reached_Nominal, - VC_Custom_Shared_Test_Setup, VC_Custom_Shared_Test_TearDown, - "Test_VC_Custom_Max_Events_Not_Reached_Nominal"); - UtTest_Add(Test_VC_Custom_Max_Events_Not_Reached_Fail, - VC_Custom_Shared_Test_Setup, VC_Custom_Shared_Test_TearDown, - "Test_VC_Custom_Max_Events_Not_Reached_Fail"); - UtTest_Add(Test_VC_Custom_Init_EventFilters_Nominal, - VC_Custom_Shared_Test_Setup, VC_Custom_Shared_Test_TearDown, - "Test_VC_Custom_Init_EventFilters_Nominal"); - UtTest_Add(Test_VC_Custom_Init_EventFilters_Fail1, - VC_Custom_Shared_Test_Setup, VC_Custom_Shared_Test_TearDown, - "Test_VC_Custom_Init_EventFilters_Fail1"); - UtTest_Add(Test_VC_Custom_Init_EventFilters_Fail2, - VC_Custom_Shared_Test_Setup, VC_Custom_Shared_Test_TearDown, - "Test_VC_Custom_Init_EventFilters_Fail2"); - UtTest_Add(Test_VC_Custom_Init_EventFilters_Null, - VC_Custom_Shared_Test_Setup, VC_Custom_Shared_Test_TearDown, - "Test_VC_Custom_Init_EventFilters_Null"); -} diff --git a/config/ocpoc/quadx/target/apps/vc/unit_test/vc_custom_shared_test/vc_app_custom_shared_test.h b/config/ocpoc/quadx/target/apps/vc/unit_test/vc_custom_shared_test/vc_app_custom_shared_test.h deleted file mode 100644 index b01f3180f..000000000 --- a/config/ocpoc/quadx/target/apps/vc/unit_test/vc_custom_shared_test/vc_app_custom_shared_test.h +++ /dev/null @@ -1,48 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ - -#ifndef VC_APP_CUSTOM_SHARED_TEST_H -#define VC_APP_CUSTOM_SHARED_TEST_H - -#ifdef __cplusplus -extern "C" { -#endif - -void VC_Custom_App_Shared_Test_AddTestCases(void); - - -#ifdef __cplusplus -} -#endif - -#endif /* VC_APP_CUSTOM_SHARED_TEST_H */ diff --git a/config/ocpoc/quadx/target/apps/vc/unit_test/vc_custom_shared_test/vc_custom_shared_test_utils.c b/config/ocpoc/quadx/target/apps/vc/unit_test/vc_custom_shared_test/vc_custom_shared_test_utils.c deleted file mode 100644 index 3a923a55c..000000000 --- a/config/ocpoc/quadx/target/apps/vc/unit_test/vc_custom_shared_test/vc_custom_shared_test_utils.c +++ /dev/null @@ -1,79 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ - -#include "vc_custom_shared_test_utils.h" -#include "vc_platform_stubs.h" -#include "vc_transmit_udp.h" -#include "vc_dev_io_v4l.h" - -#include "ut_cfe_evs_hooks.h" -#include "ut_cfe_time_stubs.h" -#include "ut_cfe_psp_memutils_stubs.h" -#include "ut_cfe_tbl_stubs.h" -#include "ut_cfe_tbl_hooks.h" -#include "ut_cfe_fs_stubs.h" -#include "ut_cfe_time_stubs.h" -#include "ut_osapi_stubs.h" -#include "ut_osfileapi_stubs.h" -#include "ut_cfe_sb_stubs.h" -#include "ut_cfe_es_stubs.h" -#include "ut_cfe_evs_stubs.h" - -#include - -/* - * Function Definitions - */ -void VC_Custom_Shared_Test_Setup(void) -{ - /* initialize test environment to default state for every test */ - - CFE_PSP_MemSet(&VC_AppData, 0x00, sizeof(VC_AppData)); - - Ut_CFE_EVS_Reset(); - Ut_CFE_FS_Reset(); - Ut_CFE_TIME_Reset(); - Ut_CFE_TBL_Reset(); - Ut_CFE_SB_Reset(); - Ut_CFE_ES_Reset(); - Ut_OSAPI_Reset(); - Ut_OSFILEAPI_Reset(); -} - -void VC_Custom_Shared_Test_TearDown(void) -{ - CFE_PSP_MemSet(&VC_AppData, 0x00, sizeof(VC_AppData)); - CFE_PSP_MemSet(&VC_AppCustomDevice, 0x00, sizeof(VC_AppCustomDevice_t)); - CFE_PSP_MemSet(&VC_AppCustomData, 0x00, sizeof(VC_AppCustomData_t)); - CFE_PSP_MemSet(&VC_Platform_Stubs_Returns, 0x00, sizeof(VC_Platform_Stubs_Returns_t)); -} diff --git a/config/ocpoc/quadx/target/apps/vc/unit_test/vc_custom_shared_test/vc_custom_shared_test_utils.h b/config/ocpoc/quadx/target/apps/vc/unit_test/vc_custom_shared_test/vc_custom_shared_test_utils.h deleted file mode 100644 index 2482120de..000000000 --- a/config/ocpoc/quadx/target/apps/vc/unit_test/vc_custom_shared_test/vc_custom_shared_test_utils.h +++ /dev/null @@ -1,61 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ - -#ifndef VC_CUSTOM_DEVICE_SHARED_UTILS_H -#define VC_CUSTOM_DEVICE_SHARED_UTILS_H - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * Includes - */ - -#include "vc_custom_shared.h" - -extern VC_AppCustomDevice_t VC_AppCustomDevice; - -/* - * Function Definitions - */ - -void VC_Custom_Shared_Test_Setup(void); -void VC_Custom_Shared_Test_TearDown(void); - - -#ifdef __cplusplus -} -#endif - -#endif /* VC_CUSTOM_DEVICE_SHARED_UTILS_H */ diff --git a/config/ocpoc/quadx/target/apps/vc/unit_test/vc_custom_testrunner.c b/config/ocpoc/quadx/target/apps/vc/unit_test/vc_custom_testrunner.c deleted file mode 100644 index f25062cd8..000000000 --- a/config/ocpoc/quadx/target/apps/vc/unit_test/vc_custom_testrunner.c +++ /dev/null @@ -1,66 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ - -#include "uttest.h" - -#include "vc_app_custom_device_test.h" -#include "vc_app_custom_transmit_test.h" -#include "vc_app.h" -//#include "vc_cmds_test.h" -//#include "vc_config_tbl_test.h" -//#include "vc_cds_tbl_test.h" - -VC_AppData_t VC_AppData; - -extern int enable_wrappers; - -void VC_Custom_App_Device_Test_AddTestCases(void); -void VC_Custom_App_Transmit_Test_AddTestCases(void); -void VC_Custom_App_Shared_Test_AddTestCases(void); - -int main(void) -{ - int testResults = 0; - enable_wrappers = 1; - VC_Custom_App_Device_Test_AddTestCases(); - VC_Custom_App_Transmit_Test_AddTestCases(); - VC_Custom_App_Shared_Test_AddTestCases(); - //VC_Cmds_Test_AddTestCases(); - //VC_Config_Tbl_Test_AddTestCases(); - //VC_CDS_Tbl_Test_AddTestCases(); - testResults = UtTest_Run(); - - enable_wrappers = 0; - - return testResults; -} diff --git a/config/ocpoc/quadx/target/apps/vc/unit_test/vc_dev_io_udp_test/vc_app_custom_device_test.c b/config/ocpoc/quadx/target/apps/vc/unit_test/vc_dev_io_udp_test/vc_app_custom_device_test.c deleted file mode 100644 index 72e9efa7b..000000000 --- a/config/ocpoc/quadx/target/apps/vc/unit_test/vc_dev_io_udp_test/vc_app_custom_device_test.c +++ /dev/null @@ -1,722 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ - -#include "vc_app_custom_device_test.h" -#include "vc_custom_device_test_utils.h" -#include "vc_transmit_udp.h" -#include "vc_platform_stubs.h" -#include "vc_platform_cfg.h" -#include -#include -#include - -#include "uttest.h" -#include "ut_osapi_stubs.h" -#include "ut_cfe_sb_stubs.h" -#include "ut_cfe_sb_hooks.h" -#include "ut_cfe_es_stubs.h" -#include "ut_cfe_es_hooks.h" -#include "ut_cfe_evs_stubs.h" -#include "ut_cfe_evs_hooks.h" -#include "ut_cfe_time_stubs.h" -#include "ut_cfe_psp_memutils_stubs.h" -#include "ut_cfe_tbl_stubs.h" -#include "ut_cfe_fs_stubs.h" -#include "ut_cfe_time_stubs.h" - -/************************************************************************** - * Tests for VC_InitCustomDevices() - **************************************************************************/ -/** - * Test VC_InitCustomDevices() fail socket creation - */ -void Test_VC_Custom_InitCustomDevices_FailSocket(void) -{ - int32 result = 0; - int32 expected = -1; - uint8 DeviceID = 0; - char returnString[64]; - snprintf(returnString, 64, "Socket errno: %i on channel %u", 13, 0); - - /* Set the first device to enabled */ - VC_AppCustomDevice.Channel[0].Mode = VC_DEVICE_ENABLED; - - /* Set socket creation to fail */ - VC_Platform_Stubs_Returns.VC_Wrap_Socket_Return = -1; - VC_Platform_Stubs_Returns.VC_Wrap_Socket_Errno = 1; - VC_Platform_Stubs_Returns.VC_Wrap_Socket_Errno_Value = 13; - - result = VC_Init_CustomDevices(); - - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); - UtAssert_EventSent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, returnString, - "VC_InitCustomDevices() failed to raise an event"); - UtAssert_True(VC_AppCustomDevice.Channel[0].Status == VC_DEVICE_UNINITIALIZED, - "VC_InitCustomDevices() status NOT uninitialized"); - UtAssert_True(result == expected,"VC_InitDevice() did not return failure"); -} - -/** - * Test VC_InitCustomDevices() fail bind - */ -void Test_VC_Custom_InitCustomDevices_FailBind(void) -{ - int32 result = 0; - int32 expected = -1; - uint8 DeviceID = 0; - char returnString[64]; - snprintf(returnString, 64, "Bind errno: %i on channel %u", 13, 0); - - /* Set the first device to enabled */ - VC_AppCustomDevice.Channel[0].Mode = VC_DEVICE_ENABLED; - - /* Set socket creation to pass */ - VC_Platform_Stubs_Returns.VC_Wrap_Socket_Return = 1; - - /* Set bind to fail */ - VC_Platform_Stubs_Returns.VC_Wrap_Bind_Return = -1; - VC_Platform_Stubs_Returns.VC_Wrap_Bind_Errno = 1; - VC_Platform_Stubs_Returns.VC_Wrap_Bind_Errno_Value = 13; - - result = VC_Init_CustomDevices(); - - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); - UtAssert_EventSent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, returnString, - "VC_InitCustomDevices() failed to raise an event"); - UtAssert_True(VC_AppCustomDevice.Channel[0].Status == VC_DEVICE_UNINITIALIZED, - "VC_InitCustomDevices() status NOT uninitialized"); - UtAssert_True(result == expected,"VC_InitDevice() did not return failure"); -} - -/** - * Test VC_InitCustomDevices() nominal - */ -void Test_VC_Custom_InitCustomDevices_Nominal(void) -{ - int32 result = -1; - int32 expected = 0; - uint8 DeviceID = 0; - char returnString[64]; - snprintf(returnString, 64, "VC Device initialized channel %u", 0); - - /* Set the first device to enabled */ - VC_AppCustomDevice.Channel[0].Mode = VC_DEVICE_ENABLED; - - /* Set socket creation to pass */ - VC_Platform_Stubs_Returns.VC_Wrap_Socket_Return = 1; - - /* Set bind to pass */ - VC_Platform_Stubs_Returns.VC_Wrap_Bind_Return = 1; - - result = VC_Init_CustomDevices(); - - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); - UtAssert_EventSent(VC_DEV_INF_EID, CFE_EVS_INFORMATION, returnString, - "VC_InitCustomDevices() failed to raise an event"); - UtAssert_True(VC_AppCustomDevice.Channel[0].Status == VC_DEVICE_INITIALIZED, - "VC_InitCustomDevices() status NOT initialized"); - UtAssert_True(result == expected,"VC_InitDevice() did not return failure"); -} - -/************************************************************************** - * Tests for VC_Stream_Task() - **************************************************************************/ - -/** - * Test VC_Stream_Task() fail register child task - */ -void Test_VC_Custom_StreamTask_RegisterChildTaskFail(void) -{ - /* Set register child task to fail */ - Ut_CFE_ES_SetReturnCode(UT_CFE_ES_REGISTERCHILDTASK_INDEX, -1, 1); - - /* Call the function under test */ - VC_Stream_Task(); - - /* Verfity results */ - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); - UtAssert_True(VC_AppData.AppState == VC_INITIALIZED, - "VC_Stream_Task() did not set app state"); - UtAssert_EventSent(VC_DEV_INF_EID, CFE_EVS_INFORMATION, - "VC streaming task exited with return code 0 task status (0xFFFFFFFF)", - "VC_Stream_Task() failed to raise an event"); -} - - -/** - * Test VC_Stream_Task() fail nothing enabled and streaming - */ -void Test_VC_Custom_StreamTask_NothingEnabled(void) -{ - - char returnString[64]; - snprintf(returnString, 64, "VC can't start streaming no devices are streaming enabled"); - char returnString1[128]; - snprintf(returnString1, 128, "VC streaming task exited with return code %d task status (0x%08X)", - -1, (unsigned int)CFE_SUCCESS); - - /* Set register child task to succeed */ - Ut_CFE_ES_SetReturnCode(UT_CFE_ES_REGISTERCHILDTASK_INDEX, CFE_SUCCESS, 1); - - /* Set the while loop continue flag to true */ - VC_AppCustomDevice.ContinueFlag = TRUE; - - /* Set a fake device file descriptor */ - VC_AppCustomDevice.Channel[0].Socket = 7; - - /* Set select to fail with an error (-1) */ - VC_Platform_Stubs_Returns.VC_Wrap_Select_Return = -1; - - /* Call the function under test */ - VC_Stream_Task(); - - /* Verfity results */ - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==2,"Event Count = 2"); - UtAssert_True(VC_AppData.AppState == VC_INITIALIZED, - "VC_Stream_Task() did not set app state"); - UtAssert_EventSent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, returnString, - "VC_Stream_Task() failed to raise an event"); - UtAssert_EventSent(VC_DEV_INF_EID, CFE_EVS_INFORMATION, returnString1, - "VC_Stream_Task() failed to raise an event"); -} - - -/** - * Test VC_Stream_Task() fail select error - */ -void Test_VC_Custom_StreamTask_SelectError(void) -{ - - char returnString[64]; - snprintf(returnString, 64, "VC start streaming failed select() returned %i", 6); - char returnString1[128]; - snprintf(returnString1, 128, "VC streaming task exited with return code %d task status (0x%08X)", - -1, (unsigned int)CFE_SUCCESS); - - /* Set register child task to succeed */ - Ut_CFE_ES_SetReturnCode(UT_CFE_ES_REGISTERCHILDTASK_INDEX, CFE_SUCCESS, 1); - - /* Set the while loop continue flag to true */ - VC_AppCustomDevice.ContinueFlag = TRUE; - - /* Set the mode and state for channel 0*/ - VC_AppCustomDevice.Channel[0].Mode = VC_DEVICE_ENABLED; - VC_AppCustomDevice.Channel[0].Status = VC_DEVICE_INITIALIZED; - - /* Set return error number to true */ - VC_Platform_Stubs_Returns.VC_Wrap_Select_Errno = 1; - - /* Set error number to interrupted */ - /* Note this will set errno through multiple calls */ - VC_Platform_Stubs_Returns.VC_Wrap_Select_Errno_Value = 6; - - /* Set a fake device file descriptor */ - VC_AppCustomDevice.Channel[0].Socket = 7; - - /* Set select to fail with an error (-1) */ - VC_Platform_Stubs_Returns.VC_Wrap_Select_Return = -1; - - /* Call the function under test */ - VC_Stream_Task(); - - /* Verfity results */ - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==2,"Event Count = 2"); - UtAssert_True(VC_AppData.AppState == VC_INITIALIZED, - "VC_Stream_Task() did not set app state"); - UtAssert_EventSent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, returnString, - "VC_Stream_Task() failed to raise an event"); - UtAssert_EventSent(VC_DEV_INF_EID, CFE_EVS_INFORMATION, returnString1, - "VC_Stream_Task() failed to raise an event"); -} - - -/** - * Test VC_Stream_Task() fail select interrupted max retry attempts - */ -void Test_VC_Custom_StreamTask_InterruptedError(void) -{ - char returnString[64]; - snprintf(returnString, 64, "VC select was interrupted"); - char returnString1[128]; - snprintf(returnString1, 128, "VC streaming task exited with return code %d task status (0x%08X)", - -1, (unsigned int)CFE_SUCCESS); - - /* Set register child task to succeed */ - Ut_CFE_ES_SetReturnCode(UT_CFE_ES_REGISTERCHILDTASK_INDEX, CFE_SUCCESS, 1); - - /* Set the while loop continue flag to true */ - VC_AppCustomDevice.ContinueFlag = TRUE; - - /* Set the mode and state for channel 0*/ - VC_AppCustomDevice.Channel[0].Mode = VC_DEVICE_ENABLED; - VC_AppCustomDevice.Channel[0].Status = VC_DEVICE_INITIALIZED; - - /* Set return error number to true */ - VC_Platform_Stubs_Returns.VC_Wrap_Select_Errno = 1; - - /* Set error number to interrupted */ - /* Note this will set errno through multiple calls */ - VC_Platform_Stubs_Returns.VC_Wrap_Select_Errno_Value = EINTR; - - /* Set a fake device file descriptor */ - VC_AppCustomDevice.Channel[0].Socket = 7; - - /* Set select to fail with an error (-1) */ - VC_Platform_Stubs_Returns.VC_Wrap_Select_Return = -1; - - /* Call the function under test */ - VC_Stream_Task(); - - /* Verfity results */ - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==(VC_MAX_RETRY_ATTEMPTS + 1), - "Event Count is not correct"); - UtAssert_True(VC_AppData.AppState == VC_INITIALIZED, - "VC_Stream_Task() did not set app state"); - UtAssert_EventSent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, returnString, - "VC_Stream_Task() failed to raise an event"); - UtAssert_EventSent(VC_DEV_INF_EID, CFE_EVS_INFORMATION, returnString1, - "VC_Stream_Task() failed to raise an event"); -} - - -/************************************************************************** - * Tests for VC_Devices_Start() - **************************************************************************/ - /** - * Test VC_Devices_Start() fail child task creation - */ -void Test_VC_Custom_DevicesStart_ChildTaskCreationFail(void) -{ - /* Set create child task to fail */ - Ut_CFE_ES_SetReturnCode(UT_CFE_ES_CREATECHILDTASK_INDEX, -1, 1); - - boolean result = TRUE; - boolean expected = FALSE; - - /* Call the function under test */ - result = VC_Devices_Start(); - - UtAssert_True(VC_AppCustomDevice.ContinueFlag == FALSE, - "Devices start continue flag not correctly set"); - UtAssert_True(result == expected,"VC_Devices_Start() did not fail"); -} - - -/** - * Test VC_Devices_Start() nominal - */ -void Test_VC_Custom_DevicesStart_Nominal(void) -{ - /* Set create child task to fail */ - Ut_CFE_ES_SetReturnCode(UT_CFE_ES_CREATECHILDTASK_INDEX, CFE_SUCCESS, 1); - - boolean result = FALSE; - boolean expected = TRUE; - - /* Call the function under test */ - result = VC_Devices_Start(); - - UtAssert_True(VC_AppCustomDevice.ContinueFlag == TRUE, - "Devices start continue flag not correctly set"); - UtAssert_True(result == expected,"VC_Devices_Start() did not fail"); -} - - -/************************************************************************** - * Tests for VC_Devices_Stop() - **************************************************************************/ - /** - * Test VC_Devices_Stop() fail delete child task - */ -void Test_VC_Custom_DevicesStop_ChildTaskDeleteFail(void) -{ - /* Set delete child task to fail */ - Ut_CFE_ES_SetReturnCode(UT_CFE_ES_DELETECHILDTASK_INDEX, -1, 1); - - boolean result = TRUE; - boolean expected = FALSE; - - /* Call the function under test */ - result = VC_Devices_Stop(); - - UtAssert_True(VC_AppCustomDevice.ContinueFlag == FALSE, - "Devices start continue flag not correctly set"); - UtAssert_True(VC_AppData.AppState == VC_INITIALIZED, - "AppState not correctly set"); - UtAssert_True(result == expected,"VC_Devices_Stop() did not fail"); -} - - - /** - * Test VC_Devices_Stop() nominal - */ -void Test_VC_Custom_DevicesStop_Nominal(void) -{ - /* Set delete child task to fail */ - Ut_CFE_ES_SetReturnCode(UT_CFE_ES_DELETECHILDTASK_INDEX, CFE_SUCCESS, 1); - - boolean result = FALSE; - boolean expected = TRUE; - - /* Call the function under test */ - result = VC_Devices_Stop(); - - UtAssert_True(VC_AppCustomDevice.ContinueFlag == FALSE, - "Devices start continue flag not correctly set"); - UtAssert_True(VC_AppData.AppState == VC_INITIALIZED, - "AppState not correctly set"); - UtAssert_True(result == expected,"VC_Devices_Stop() did not fail"); -} - - -/************************************************************************** - * Tests for VC_CleanupDevices() - **************************************************************************/ - /** - * Test VC_CleanupDevices() close fail - * - */ -void Test_VC_Custom_CleanupDevices_CloseFail(void) -{ - int32 result = 0; - int32 expected = -1; - - /* Set channel 0 to enabled */ - VC_AppCustomDevice.Channel[0].Mode = VC_DEVICE_ENABLED; - - /* Set close to fail */ - VC_Platform_Stubs_Returns.VC_Wrap_Close_Return = -1; - - /* Call the function under test */ - result = VC_CleanupDevices(); - - UtAssert_True(result == expected,"VC_DisableDevice() did not succeed"); - UtAssert_True(VC_AppCustomDevice.Channel[0].Mode == VC_DEVICE_ENABLED, - "VC_CleanupDevices() did not set correct status"); -} - -/** - * Test VC_CleanupDevices() nominal - * - */ -void Test_VC_Custom_CleanupDevices_Nominal(void) -{ - int32 result = -1; - int32 expected = 0; - - /* Set channel 0 to enabled */ - VC_AppCustomDevice.Channel[0].Mode = VC_DEVICE_ENABLED; - - - /* Call the function under test */ - result = VC_CleanupDevices(); - - UtAssert_True(result == expected,"VC_DisableDevice() did not succeed"); - UtAssert_True(VC_AppCustomDevice.Channel[0].Mode == VC_DEVICE_DISABLED, - "VC_CleanupDevices() did not set correct status"); -} - -/************************************************************************** - * Tests for VC_Devices_Init() - **************************************************************************/ - /** - * Test VC_Devices_Init fail VC_Init_CustomDevices see previous test - * VC_InitCustomDevices() fail socket creation - */ -void Test_VC_Custom_DevicesInit_Fail(void) -{ - boolean result = TRUE; - boolean expected = FALSE; - - /* Set the first device to enabled */ - VC_AppCustomDevice.Channel[0].Mode = VC_DEVICE_ENABLED; - - /* Set socket creation to fail */ - VC_Platform_Stubs_Returns.VC_Wrap_Socket_Return = -1; - VC_Platform_Stubs_Returns.VC_Wrap_Socket_Errno = 1; - VC_Platform_Stubs_Returns.VC_Wrap_Socket_Errno_Value = 13; - - result = VC_Devices_Init(); - - UtAssert_True(result == expected,"VC_Devices_Init() did not return an error"); -} - - - /** - * Test VC_Devices_Init nominal see previous test - * VC_InitCustomDevices() nominal - */ -void Test_VC_Custom_DevicesInit_Nominal(void) -{ - boolean result = FALSE; - boolean expected = TRUE; - - /* Set the first device to enabled */ - VC_AppCustomDevice.Channel[0].Mode = VC_DEVICE_ENABLED; - - result = VC_Devices_Init(); - - UtAssert_True(result == expected,"VC_Devices_Init() did not return an error"); -} - - -/************************************************************************** - * Tests for VC_Devices_Uninit() - **************************************************************************/ -/** - * Test VC_Devices_Uninit() cleanup fail see previous test - * VC_CleanupDevices() close fail - */ -void Test_VC_Custom_DevicesUninit_CleanupFail(void) -{ - boolean result = TRUE; - boolean expected = FALSE; - - /* Set channel 0 to enabled */ - VC_AppCustomDevice.Channel[0].Mode = VC_DEVICE_ENABLED; - - /* Set close to fail */ - VC_Platform_Stubs_Returns.VC_Wrap_Close_Return = -1; - - /* Call the function under test */ - result = VC_Devices_Uninit(); - - UtAssert_True(result == expected,"VC_DisableDevice() did not succeed"); - UtAssert_True(VC_AppCustomDevice.Channel[0].Mode = VC_DEVICE_DISABLED, - "VC_CleanupDevices() did not set correct status"); -} - - -/** - * Test VC_Devices_Uninit() nominal - * - */ -void Test_VC_Custom_DevicesUninit_Nominal(void) -{ - boolean result = FALSE; - boolean expected = TRUE; - - /* Call the function under test */ - result = VC_Devices_Uninit(); - - UtAssert_True(result == expected,"VC_DisableDevice() did not succeed"); - UtAssert_True(VC_AppCustomDevice.Channel[0].Mode = VC_DEVICE_DISABLED, - "VC_CleanupDevices() did not set correct status"); -} - -/************************************************************************** - * Tests for VC_Send_Buffer() - **************************************************************************/ -/** - * Test VC_Send_Buffer() recv error - * - */ -void Test_VC_Custom_SendBuffer_RecvError(void) -{ - int32 result = 0; - int32 expected = -1; - - char returnString[64]; - snprintf(returnString, 64, "VC recv errno: %i on channel %u", 1, 0); - - /* Set recv to fail */ - VC_Platform_Stubs_Returns.VC_Wrap_Recv_Return = -1; - VC_Platform_Stubs_Returns.VC_Wrap_Recv_Errno = 1; - VC_Platform_Stubs_Returns.VC_Wrap_Recv_Errno_Value = 1; - - /* Call the function under test */ - result = VC_Send_Buffer(0); - - UtAssert_True(result == expected,"VC_Send_Buffer() did not return the correct value"); - UtAssert_EventSent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, returnString, - "VC_Send_Buffer() failed to raise an event"); -} - - -/** - * Test VC_Send_Buffer() size error - * - */ -void Test_VC_Custom_SendBuffer_SizeError(void) -{ - int32 result = 0; - int32 expected = -1; - - char returnString[64]; - snprintf(returnString, 64, "VC recv size error on channel %u", 0); - - /* Set recv to fail */ - VC_Platform_Stubs_Returns.VC_Wrap_Recv_Return = VC_MPARTMUX_HEADER_SIZE; - VC_Platform_Stubs_Returns.VC_Wrap_Recv_Return1 = -1; - - /* Call the function under test */ - result = VC_Send_Buffer(0); - - UtAssert_True(result == expected,"VC_Send_Buffer() did not return the correct value"); - UtAssert_EventSent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, returnString, - "VC_Send_Buffer() failed to raise an event"); -} - - -/** - * Test VC_Send_Buffer() send data fail - * - */ -void Test_VC_Custom_SendBuffer_SendError(void) -{ - int32 result = 0; - int32 expected = -1; - - char returnString[64]; - snprintf(returnString, 64, "VC send data failed on channel %u", 0); - - /* Set recv to pass/fail */ - VC_Platform_Stubs_Returns.VC_Wrap_Recv_Return = VC_MPARTMUX_HEADER_SIZE; - VC_Platform_Stubs_Returns.VC_Wrap_Recv_Return1 = 0; - - /* set sendto to fail */ - VC_Platform_Stubs_Returns.VC_Wrap_SendTo_Return = -1; - - /* Properly initialize custom transmit data */ - VC_CustomTransmit_InitData(); - - /* Call the function under test */ - result = VC_Send_Buffer(0); - - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==2,"Event Count = 2"); - UtAssert_True(result == expected,"VC_Send_Buffer() did not return the correct value"); - UtAssert_EventSent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, returnString, - "VC_Send_Buffer() failed to raise an event"); -} - - -/** - * Test VC_Send_Buffer() nominal - * - */ -void Test_VC_Custom_SendBuffer_Nominal(void) -{ - int32 result = -1; - int32 expected = 0; - - char returnString[64]; - snprintf(returnString, 64, "VC send data failed on channel %u", 0); - - /* Set recv to pass/fail */ - VC_Platform_Stubs_Returns.VC_Wrap_Recv_Return = VC_MPARTMUX_HEADER_SIZE; - VC_Platform_Stubs_Returns.VC_Wrap_Recv_Return1 = 0; - - /* Properly initialize custom transmit data */ - VC_CustomTransmit_InitData(); - - /* Call the function under test */ - result = VC_Send_Buffer(0); - - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==0,"Event Count = 0"); - UtAssert_True(result == expected,"VC_Send_Buffer() did not return the correct value"); -} - - -/************************************************************************** - * Tests for VC_Devices_InitData() - **************************************************************************/ - -/** - * Test VC_Devices_InitData() nominal - * Note: currently no way to fail this function - */ -void Test_VC_Devices_InitData_Nominal(void) -{ - int32 result = -1; - int32 expected = CFE_SUCCESS; - - /* Call the function under test */ - result = VC_Devices_InitData(); - - /* Verify the results */ - UtAssert_True(result == expected,"VC_Custom_InitData() did not succeed"); -} - -/************************************************************************** - * Rollup Test Cases - **************************************************************************/ -void VC_Custom_App_Device_Test_AddTestCases(void) -{ -/************************************************************************** - * Tests for Custom Device Layer - **************************************************************************/ - UtTest_Add(Test_VC_Custom_InitCustomDevices_FailSocket, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_InitCustomDevices_FailSocket"); - UtTest_Add(Test_VC_Custom_InitCustomDevices_FailBind, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_InitCustomDevices_FailBind"); - UtTest_Add(Test_VC_Custom_InitCustomDevices_Nominal, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_InitCustomDevices_Nominal"); - UtTest_Add(Test_VC_Custom_StreamTask_RegisterChildTaskFail, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_StreamTask_RegisterChildTaskFail"); - UtTest_Add(Test_VC_Custom_StreamTask_NothingEnabled, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_StreamTask_NothingEnabled"); - UtTest_Add(Test_VC_Custom_StreamTask_SelectError, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_StreamTask_SelectError"); - UtTest_Add(Test_VC_Custom_StreamTask_InterruptedError, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_StreamTask_InterruptedError"); - UtTest_Add(Test_VC_Custom_DevicesStart_ChildTaskCreationFail, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_DevicesStart_ChildTaskCreationFail"); - UtTest_Add(Test_VC_Custom_DevicesStart_Nominal, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_DevicesStart_Nominal"); - UtTest_Add(Test_VC_Custom_DevicesStop_ChildTaskDeleteFail, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_DevicesStop_ChildTaskDeleteFail"); - UtTest_Add(Test_VC_Custom_DevicesStop_Nominal, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_DevicesStop_Nominal"); - UtTest_Add(Test_VC_Custom_CleanupDevices_CloseFail, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_CleanupDevices_CloseFail"); - UtTest_Add(Test_VC_Custom_CleanupDevices_Nominal, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_CleanupDevices_Nominal"); - UtTest_Add(Test_VC_Custom_DevicesInit_Fail, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_DevicesInit_Fail"); - UtTest_Add(Test_VC_Custom_DevicesInit_Nominal, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_DevicesInit_Nominal"); - UtTest_Add(Test_VC_Custom_DevicesUninit_CleanupFail, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_DevicesUninit_CleanupFail"); - UtTest_Add(Test_VC_Custom_DevicesUninit_Nominal, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_DevicesUninit_Nominal"); - UtTest_Add(Test_VC_Custom_SendBuffer_RecvError, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_SendBuffer_RecvError"); - UtTest_Add(Test_VC_Custom_SendBuffer_SizeError, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_SendBuffer_SizeError"); - UtTest_Add(Test_VC_Custom_SendBuffer_SendError, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_SendBuffer_SendError"); - UtTest_Add(Test_VC_Custom_SendBuffer_Nominal, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_SendBuffer_Nominal"); - UtTest_Add(Test_VC_Devices_InitData_Nominal, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Devices_InitData_Nominal"); -} diff --git a/config/ocpoc/quadx/target/apps/vc/unit_test/vc_dev_io_udp_test/vc_app_custom_device_test.h b/config/ocpoc/quadx/target/apps/vc/unit_test/vc_dev_io_udp_test/vc_app_custom_device_test.h deleted file mode 100644 index 38b7e33d3..000000000 --- a/config/ocpoc/quadx/target/apps/vc/unit_test/vc_dev_io_udp_test/vc_app_custom_device_test.h +++ /dev/null @@ -1,48 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ - -#ifndef VC_APP_CUSTOM_DEVICE_TEST_H -#define VC_APP_CUSTOM_DEVICE_TEST_H - -#ifdef __cplusplus -extern "C" { -#endif - -void VC_Custom_App_Device_Test_AddTestCases(void); - - -#ifdef __cplusplus -} -#endif - -#endif /* VC_APP_CUSTOM_DEVICE_TEST_H */ diff --git a/config/ocpoc/quadx/target/apps/vc/unit_test/vc_dev_io_udp_test/vc_custom_device_test_utils.c b/config/ocpoc/quadx/target/apps/vc/unit_test/vc_dev_io_udp_test/vc_custom_device_test_utils.c deleted file mode 100644 index f34216d08..000000000 --- a/config/ocpoc/quadx/target/apps/vc/unit_test/vc_dev_io_udp_test/vc_custom_device_test_utils.c +++ /dev/null @@ -1,76 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ - -#include "vc_custom_device_test_utils.h" -#include "vc_platform_stubs.h" - -#include "ut_cfe_evs_hooks.h" -#include "ut_cfe_time_stubs.h" -#include "ut_cfe_psp_memutils_stubs.h" -#include "ut_cfe_tbl_stubs.h" -#include "ut_cfe_tbl_hooks.h" -#include "ut_cfe_fs_stubs.h" -#include "ut_cfe_time_stubs.h" -#include "ut_osapi_stubs.h" -#include "ut_osfileapi_stubs.h" -#include "ut_cfe_sb_stubs.h" -#include "ut_cfe_es_stubs.h" -#include "ut_cfe_evs_stubs.h" - -#include - -/* - * Function Definitions - */ - -void VC_Custom_Device_Test_Setup(void) -{ - /* initialize test environment to default state for every test */ - - CFE_PSP_MemSet(&VC_AppCustomDevice, 0x00, sizeof(VC_AppCustomDevice_t)); - - Ut_CFE_EVS_Reset(); - Ut_CFE_FS_Reset(); - Ut_CFE_TIME_Reset(); - Ut_CFE_TBL_Reset(); - Ut_CFE_SB_Reset(); - Ut_CFE_ES_Reset(); - Ut_OSAPI_Reset(); - Ut_OSFILEAPI_Reset(); -} - -void VC_Custom_Device_Test_TearDown(void) { - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_CallCount = 0; - CFE_PSP_MemSet(&VC_AppCustomDevice, 0x00, sizeof(VC_AppCustomDevice_t)); - CFE_PSP_MemSet(&VC_Platform_Stubs_Returns, 0x00, sizeof(VC_Platform_Stubs_Returns_t)); -} diff --git a/config/ocpoc/quadx/target/apps/vc/unit_test/vc_dev_io_udp_test/vc_custom_device_test_utils.h b/config/ocpoc/quadx/target/apps/vc/unit_test/vc_dev_io_udp_test/vc_custom_device_test_utils.h deleted file mode 100644 index c170b7b8b..000000000 --- a/config/ocpoc/quadx/target/apps/vc/unit_test/vc_dev_io_udp_test/vc_custom_device_test_utils.h +++ /dev/null @@ -1,61 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ - -#ifndef VC_CUSTOM_DEVICE_TEST_UTILS_H -#define VC_CUSTOM_DEVICE_TEST_UTILS_H - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * Includes - */ - -#include "vc_dev_io_udp.h" - -extern VC_AppCustomDevice_t VC_AppCustomDevice; - -/* - * Function Definitions - */ - -void VC_Custom_Device_Test_Setup(void); -void VC_Custom_Device_Test_TearDown(void); - - -#ifdef __cplusplus -} -#endif - -#endif /* VC_CUSTOM_DEVICE_TEST_UTILS_H */ diff --git a/config/ocpoc/quadx/target/apps/vc/unit_test/vc_dev_io_v4l_test/vc_app_custom_device_test.c b/config/ocpoc/quadx/target/apps/vc/unit_test/vc_dev_io_v4l_test/vc_app_custom_device_test.c deleted file mode 100644 index 9badeb810..000000000 --- a/config/ocpoc/quadx/target/apps/vc/unit_test/vc_dev_io_v4l_test/vc_app_custom_device_test.c +++ /dev/null @@ -1,1944 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ - -#include "vc_app_custom_device_test.h" -#include "vc_custom_device_test_utils.h" -#include "vc_transmit_udp.h" -#include "vc_platform_stubs.h" -#include "vc_platform_cfg.h" -#include -#include -#include - -#include "uttest.h" -#include "ut_osapi_stubs.h" -#include "ut_cfe_sb_stubs.h" -#include "ut_cfe_sb_hooks.h" -#include "ut_cfe_es_stubs.h" -#include "ut_cfe_es_hooks.h" -#include "ut_cfe_evs_stubs.h" -#include "ut_cfe_evs_hooks.h" -#include "ut_cfe_time_stubs.h" -#include "ut_cfe_psp_memutils_stubs.h" -#include "ut_cfe_tbl_stubs.h" -#include "ut_cfe_fs_stubs.h" -#include "ut_cfe_time_stubs.h" - - -/************************************************************************** - * Tests for VC_Ioctl() - **************************************************************************/ -/** - * Test VC_Ioctl() ioctl returns -1 error - */ -void Test_VC_Custom_Ioctl_Error(void) -{ - int32 result = 0; - int32 expected = -1; - - /* Set a return value for the wrapped ioctl */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Return = -1; - - /* A test argument to pass to VC_Ioctl value is random - * the wrapped ioctl will not use the arguments and will return a - * value */ - int test = 1; - - - result = VC_Ioctl(test, test, &test); - - UtAssert_True(result == expected, "VC_Ioctl did not return an error"); -} -/** - * Test VC_Ioctl() ioctl returns -1 error and errno interrupted - */ -void Test_VC_Custom_Ioctl_Interrupted(void) -{ - int32 result = 0; - int32 expected = -1; - uint32 i = 0; - - /* Set a return value for the wrapped ioctl (always fail) */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Return = -1; - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Return1 = -1; - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Return2 = -1; - - /* Set return error number to true */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Errno = 1; - - /* Set error number to interrupted */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Errno_Value = EINTR; - - /* A test argument to pass to VC_Ioctl value is random - * the wrapped ioctl will not use the arguments and will return a - * value */ - int test = 777; - - /* Call VC_Ioctl with errno set to EINTR max retry attempts*/ - result = VC_Ioctl(test, test, &test); - - UtAssert_True(result == expected, "VC_Ioctl did not return an error"); -} - -/************************************************************************** - * Tests for VC_InitDevice() - **************************************************************************/ - -/** - * Test VC_InitDevice() through VC_Init_CustomDevices already initialized error - */ -void Test_VC_Custom_InitDevice_AlreadyInitialized(void) -{ - int32 result = 0; - int32 expected = -1; - uint8 DeviceID = 0; - - strcpy(VC_AppCustomDevice.Channel[0].DevName, "test"); - - /* Set the first device to enabled */ - VC_AppCustomDevice.Channel[0].Mode = VC_DEVICE_ENABLED; - /* Set the first device file descriptor to a non-zero value */ - VC_AppCustomDevice.Channel[0].DeviceFd = 1; - - result = VC_Init_CustomDevices(); - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); - UtAssert_True(result == expected,"VC_InitDevice() did not return an error"); - - UtAssert_True(VC_AppCustomDevice.Channel[0].Mode == VC_DEVICE_DISABLED, - "VC_InitCustomDevices() did not mode to disabled"); - UtAssert_EventSent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, "VC Device test for channel 0 already initialized.", - "VC_InitDevice() failed to raise an event"); -} - - -/** - * Test VC_InitDevice() null device name - */ -void Test_VC_Custom_InitDevice_NullName(void) -{ - int32 result = 0; - int32 expected = -1; - uint8 DeviceID = 0; - char *DeviceName = 0; - - /* Set the first device to enabled */ - VC_AppCustomDevice.Channel[0].Mode = VC_DEVICE_ENABLED; - - - result = VC_InitDevice(DeviceID, DeviceName); - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); - UtAssert_True(result == expected,"VC_InitDevice() did not return an error"); - UtAssert_EventSent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, "VC Device name for channel 0 is null.", - "VC_InitDevice() failed to raise an event"); -} - - -/** - * Test VC_InitDevice() invalid device ID - */ -void Test_VC_Custom_InitDevice_InvalidID(void) -{ - int32 result = 0; - int32 expected = -1; - uint8 DeviceID = VC_MAX_DEVICES; - char returnString[32]; - snprintf(returnString, 32, "VC DeviceID (%u) invalid.", VC_MAX_DEVICES); - char DeviceName[] = "test"; - - /* Set the first device to enabled */ - VC_AppCustomDevice.Channel[0].Mode = VC_DEVICE_ENABLED; - - result = VC_InitDevice(DeviceID, DeviceName); - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); - UtAssert_True(result == expected,"VC_InitDevice() did not return an error"); - UtAssert_EventSent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, returnString, - "VC_InitDevice() failed to raise an event"); -} - - -/** - * Test VC_InitDevice() through VC_InitCustomDevices() open error - */ -void Test_VC_Custom_InitDevice_OpenError(void) -{ - int32 result = 0; - int32 expected = -1; - uint8 DeviceID = 0; - char returnString[32]; - snprintf(returnString, 32, "VC Device open errno: %i on channel %u", 5, 0); - //char DeviceName[] = "test"; - - /* Set a return value for the wrapped open */ - VC_Platform_Stubs_Returns.VC_Wrap_Open_Return = -1; - - /* Set return error number to true */ - VC_Platform_Stubs_Returns.VC_Wrap_Open_Errno = 1; - - /* Set error number to interrupted */ - VC_Platform_Stubs_Returns.VC_Wrap_Open_Errno_Value = 5; - - /* Set the first device to enabled */ - VC_AppCustomDevice.Channel[0].Mode = VC_DEVICE_ENABLED; - - //result = VC_InitDevice(DeviceID, DeviceName); - result = VC_Init_CustomDevices(); - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); - UtAssert_True(VC_AppCustomDevice.Channel[0].Mode == VC_DEVICE_DISABLED, - "VC_InitCustomDevices() did not mode to disabled"); - UtAssert_True(result == expected,"VC_InitDevice() did not return an error"); - UtAssert_EventSent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, returnString, - "VC_InitDevice() failed to raise an event"); -} - -/** - * Test VC_InitDevice() nominal - */ -void Test_VC_Custom_InitDevice_Nominal(void) -{ - int32 result = 0; - int32 expected = 0; - uint8 DeviceID = 0; - char DeviceName[] = "test"; - - - /* Set the first device to enabled */ - VC_AppCustomDevice.Channel[0].Mode = VC_DEVICE_ENABLED; - - result = VC_InitDevice(DeviceID, DeviceName); - - UtAssert_True(result == expected,"VC_InitDevice() did not return success"); -} - - -/************************************************************************** - * Tests for VC_InitCustomDevices() - **************************************************************************/ - -/** - * Test VC_InitCustomDevices() pass init but fail configure - * ConfigureDevice will fail on the first v4L struct verification - */ -void Test_VC_Custom_InitCustomDevices_FailConfigure(void) -{ - int32 result = 0; - int32 expected = -1; - uint8 DeviceID = 0; - char returnString[64]; - snprintf(returnString, 64, "VC Device initialized channel %u from %s", 0, "test"); - - /* Set the first device to enabled */ - VC_AppCustomDevice.Channel[0].Mode = VC_DEVICE_ENABLED; - - /* Set a test device path */ - strcpy(VC_AppCustomDevice.Channel[0].DevName, "test"); - - result = VC_Init_CustomDevices(); - - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==2,"Event Count = 2"); - UtAssert_EventSent(VC_DEV_INF_EID, CFE_EVS_INFORMATION, returnString, - "VC_InitCustomDevices() failed to raise an event"); - UtAssert_True(VC_AppCustomDevice.Channel[0].Status == VC_DEVICE_UNINITIALIZED, - "VC_InitCustomDevices() did not set status to uninitialized"); - UtAssert_True(result == expected,"VC_InitDevice() did not return failure"); -} - -/** - * Test VC_InitCustomDevices() Nominal - */ -void Test_VC_Custom_InitCustomDevices_Nominal(void) -{ - int32 result = 0; - int32 expected = 0; - uint8 DeviceID = 0; - char returnString[64]; - snprintf(returnString, 64, "VC Device initialized channel %u from %s", 0, "test"); - char returnString1[64]; - snprintf(returnString1, 64, "VC Device configured channel %u from %s", 0, "test"); - /* Set the first device to enabled */ - VC_AppCustomDevice.Channel[0].Mode = VC_DEVICE_ENABLED; - - /* Set to true to emulate ioctl setting struct values */ - /* Need to succeed twice to reach format ioctl call */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Struct = 2; - - /* Set the test device path */ - strcpy(VC_AppCustomDevice.Channel[0].DevName, "test"); - - /* Set the video format to pass format check */ - VC_AppCustomDevice.Channel[0].VideoFormat = VC_V4L_VIDEO_FORMAT; - - /* Set the correct buffer type */ - VC_AppCustomDevice.Channel[0].BufferType = VC_V4L_BUFFER_TYPE; - - /* Set the correct resolution */ - VC_AppCustomDevice.Channel[0].FrameWidth = VC_FRAME_WIDTH; - VC_AppCustomDevice.Channel[0].FrameHeight = VC_FRAME_HEIGHT; - - /* Set the correct size */ - VC_AppCustomDevice.Channel[0].Buffer_Size = VC_MAX_BUFFER_SIZE; - - /* Set the correct buffer number */ - VC_AppCustomDevice.Channel[0].BufferRequest = VC_V4L_BUFFER_REQUEST; - - result = VC_Init_CustomDevices(); - - UtAssert_True(result == expected,"VC_Init_CustomDevices() did not succeed"); - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==2,"Event Count = 2"); - UtAssert_True(VC_AppCustomDevice.Channel[0].Status == VC_DEVICE_INITIALIZED, - "VC_Init_CustomDevices() state not initialized"); - UtAssert_EventSent(VC_DEV_INF_EID, CFE_EVS_INFORMATION, returnString, - "VC_InitCustomDevices() failed to raise an event"); - UtAssert_EventSent(VC_DEV_INF_EID, CFE_EVS_INFORMATION, returnString1, - "VC_InitCustomDevices() failed to raise an event"); -} - -/************************************************************************** - * Tests for VC_ConfigureDevice() - **************************************************************************/ - -/** - * Test VC_ConfigureDevice() fail V4L capabilities query - */ -void Test_VC_Custom_ConfigureDevice_CapabilitiesFail(void) -{ - int32 result = 0; - int32 expected = -1; - uint8 DeviceID = 0; - char returnString[64]; - snprintf(returnString, 64, "VC VIDIOC_QUERYCAP returned %i on %s channel %u", 5, "test", 0); - - /* Set a return value for the wrapped ioctl */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Return = -1; - - /* Set return error number to true */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Errno = 1; - - /* Set error number to interrupted */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Errno_Value = 5; - - strcpy(VC_AppCustomDevice.Channel[0].DevName, "test"); - - result = VC_ConfigureDevice(DeviceID); - - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); - UtAssert_EventSent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, returnString, - "VC_ConfigureDevices() failed to raise an event"); - UtAssert_True(result == expected,"VC_ConfigureDevice() did not return failure"); - -} - - -/** - * Test VC_ConfigureDevice() fail V4L capabilities fail - * check buffer type - */ -void Test_VC_Custom_ConfigureDevice_CapabilitiesBuffer(void) -{ - int32 result = 0; - int32 expected = -1; - uint8 DeviceID = 0; - char returnString[64]; - snprintf(returnString, 64, "VC Capabilities %u on %s channel %u not found", - VC_V4L_BUFFER_TYPE,"test", 0); - - /* Set the test device path */ - strcpy(VC_AppCustomDevice.Channel[0].DevName, "test"); - - VC_AppCustomDevice.Channel[0].BufferType = VC_V4L_BUFFER_TYPE; - - /* Call the function under test */ - result = VC_ConfigureDevice(DeviceID); - - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); - UtAssert_EventSent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, returnString, - "VC_ConfigureDevices() failed to raise an event"); - UtAssert_True(result == expected,"VC_ConfigureDevice() did not return failure"); - -} - - -/** - * Test VC_ConfigureDevice() fail V4L capabilities check fail - * check streaming capability - */ -void Test_VC_Custom_ConfigureDevice_CapabilitiesStreaming(void) -{ - int32 result = 0; - int32 expected = -1; - uint8 DeviceID = 0; - char returnString[64]; - snprintf(returnString, 64, "VC Capabilities %u on %s channel %u not found", - V4L2_CAP_STREAMING,"test", 0); - - /* Set to true to emulate ioctl setting struct values */ - /* Need to succeed once for the first capabilities check */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Struct = 1; - - /* Set the test device path */ - strcpy(VC_AppCustomDevice.Channel[0].DevName, "test"); - - /* Set the correct buffer type */ - VC_AppCustomDevice.Channel[0].BufferType = VC_V4L_BUFFER_TYPE; - - /* Call the function under test */ - result = VC_ConfigureDevice(DeviceID); - - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); - UtAssert_EventSent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, returnString, - "VC_ConfigureDevices() failed to raise an event"); - UtAssert_True(result == expected,"VC_ConfigureDevice() did not return failure"); - -} - - -/** - * Test VC_ConfigureDevice() fail V4L set format fail - */ -void Test_VC_Custom_ConfigureDevice_FormatFail(void) -{ - int32 result = 0; - int32 expected = -1; - uint8 DeviceID = 0; - char returnString[64]; - snprintf(returnString, 64, "VIDIOC_S_FMT returned %i on %s channel %u", - 5,"test", 0); - - /* Set to true to emulate ioctl setting struct values */ - /* Need to succeed twice to reach format ioctl call */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Struct = 2; - - /* Set the test device path */ - strcpy(VC_AppCustomDevice.Channel[0].DevName, "test"); - - /* Set the correct buffer type */ - VC_AppCustomDevice.Channel[0].BufferType = VC_V4L_BUFFER_TYPE; - - /* Set return error number to true */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Errno = 1; - - /* Set error number to interrupted */ - /* Note this will set errno through multiple calls */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Errno_Value = 5; - - /* Set the second ioctl call to fail */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Return1 = -1; - - /* Call the function under test */ - result = VC_ConfigureDevice(DeviceID); - - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); - UtAssert_EventSent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, returnString, - "VC_ConfigureDevices() failed to raise an event"); - UtAssert_True(result == expected,"VC_ConfigureDevice() did not return failure"); - -} - -/** - * Test VC_ConfigureDevice() fail V4L set format verification check - */ -void Test_VC_Custom_ConfigureDevice_FormatCheck(void) -{ - int32 result = 0; - int32 expected = -1; - uint8 DeviceID = 0; - char returnString[64]; - snprintf(returnString, 64, "VC device %s channel %u didn't accept format %u.", - "test",0, 0); - - /* Set to true to emulate ioctl setting struct values */ - /* Need to succeed twice to reach format ioctl call */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Struct = 2; - - /* Set the test device path */ - strcpy(VC_AppCustomDevice.Channel[0].DevName, "test"); - - /* Set the correct buffer type */ - VC_AppCustomDevice.Channel[0].BufferType = VC_V4L_BUFFER_TYPE; - - /* Call the function under test */ - result = VC_ConfigureDevice(DeviceID); - - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); - UtAssert_EventSent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, returnString, - "VC_ConfigureDevices() failed to raise an event"); - UtAssert_True(result == expected,"VC_ConfigureDevice() did not return failure"); - -} - -/** - * Test VC_ConfigureDevice() fail V4L set format verification check - * resolution - */ -void Test_VC_Custom_ConfigureDevice_FormatCheckRes(void) -{ - int32 result = 0; - int32 expected = -1; - uint8 DeviceID = 0; - char returnString[64]; - snprintf(returnString, 64, "VC device %s channel %u didn't accept resolution instead %d:%d.", - "test",0, VC_FRAME_WIDTH, VC_FRAME_HEIGHT); - - /* Set to true to emulate ioctl setting struct values */ - /* Need to succeed twice to reach format ioctl call */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Struct = 2; - - /* Set the test device path */ - strcpy(VC_AppCustomDevice.Channel[0].DevName, "test"); - - /* Set the video format to pass format check */ - VC_AppCustomDevice.Channel[0].VideoFormat = VC_V4L_VIDEO_FORMAT; - - /* Set the correct buffer type */ - VC_AppCustomDevice.Channel[0].BufferType = VC_V4L_BUFFER_TYPE; - - /* Call the function under test */ - result = VC_ConfigureDevice(DeviceID); - - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); - UtAssert_EventSent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, returnString, - "VC_ConfigureDevices() failed to raise an event"); - UtAssert_True(result == expected,"VC_ConfigureDevice() did not return failure"); -} - -/** - * Test VC_ConfigureDevice() fail V4L set format verification check - * size - */ -void Test_VC_Custom_ConfigureDevice_FormatCheckSize(void) -{ - int32 result = 0; - int32 expected = -1; - uint8 DeviceID = 0; - char returnString[64]; - snprintf(returnString, 64, "VC device %s channel %u size image %u > buffer size %lu.", - "test",0, VC_MAX_BUFFER_SIZE, 0); - - /* Set to true to emulate ioctl setting struct values */ - /* Need to succeed twice to reach format ioctl call */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Struct = 2; - - /* Set the test device path */ - strcpy(VC_AppCustomDevice.Channel[0].DevName, "test"); - - /* Set the video format to pass format check */ - VC_AppCustomDevice.Channel[0].VideoFormat = VC_V4L_VIDEO_FORMAT; - - /* Set the correct buffer type */ - VC_AppCustomDevice.Channel[0].BufferType = VC_V4L_BUFFER_TYPE; - - /* Set the correct resolution */ - VC_AppCustomDevice.Channel[0].FrameWidth = VC_FRAME_WIDTH; - VC_AppCustomDevice.Channel[0].FrameHeight = VC_FRAME_HEIGHT; - - /* Call the function under test */ - result = VC_ConfigureDevice(DeviceID); - - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); - UtAssert_EventSent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, returnString, - "VC_ConfigureDevices() failed to raise an event"); - UtAssert_True(result == expected,"VC_ConfigureDevice() did not return failure"); -} - - -/** - * Test VC_ConfigureDevice() fail V4L requests buffers - */ -void Test_VC_Custom_ConfigureDevice_RequestsBuffers(void) -{ - int32 result = 0; - int32 expected = -1; - uint8 DeviceID = 0; - char returnString[64]; - snprintf(returnString, 64, "VC VIDIOC_REQBUFS returned %i on %s channel %u.", - 5,"test",0); - - /* Set to true to emulate ioctl setting struct values */ - /* Need to succeed twice to reach format ioctl call */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Struct = 2; - - /* Set the test device path */ - strcpy(VC_AppCustomDevice.Channel[0].DevName, "test"); - - /* Set the video format to pass format check */ - VC_AppCustomDevice.Channel[0].VideoFormat = VC_V4L_VIDEO_FORMAT; - - /* Set the correct buffer type */ - VC_AppCustomDevice.Channel[0].BufferType = VC_V4L_BUFFER_TYPE; - - /* Set the correct resolution */ - VC_AppCustomDevice.Channel[0].FrameWidth = VC_FRAME_WIDTH; - VC_AppCustomDevice.Channel[0].FrameHeight = VC_FRAME_HEIGHT; - - /* Set the correct size */ - VC_AppCustomDevice.Channel[0].Buffer_Size = VC_MAX_BUFFER_SIZE; - - /* Set return error number to true */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Errno = 1; - - /* Set error number to interrupted */ - /* Note this will set errno through multiple calls */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Errno_Value = 5; - - /* Set the third ioctl call to fail */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Return2 = -1; - - /* Call the function under test */ - result = VC_ConfigureDevice(DeviceID); - - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); - UtAssert_EventSent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, returnString, - "VC_ConfigureDevices() failed to raise an event"); - UtAssert_True(result == expected,"VC_ConfigureDevice() did not return failure"); -} - - -/** - * Test VC_ConfigureDevice() fail V4L requests buffers fail requested - * count verification - */ -void Test_VC_Custom_ConfigureDevice_RequestsBuffersCount(void) -{ - int32 result = 0; - int32 expected = -1; - uint8 DeviceID = 0; - char returnString[64]; - snprintf(returnString, 64, "VC VIDIOC_REQBUFS did not comply. %u buffers on %s channel %u.", - 4,"test",0); - - /* Set to true to emulate ioctl setting struct values */ - /* Need to succeed twice to reach format ioctl call */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Struct = 2; - - /* Set the test device path */ - strcpy(VC_AppCustomDevice.Channel[0].DevName, "test"); - - /* Set the video format to pass format check */ - VC_AppCustomDevice.Channel[0].VideoFormat = VC_V4L_VIDEO_FORMAT; - - /* Set the correct buffer type */ - VC_AppCustomDevice.Channel[0].BufferType = VC_V4L_BUFFER_TYPE; - - /* Set the correct resolution */ - VC_AppCustomDevice.Channel[0].FrameWidth = VC_FRAME_WIDTH; - VC_AppCustomDevice.Channel[0].FrameHeight = VC_FRAME_HEIGHT; - - /* Set the correct size */ - VC_AppCustomDevice.Channel[0].Buffer_Size = VC_MAX_BUFFER_SIZE; - - /* Call the function under test */ - result = VC_ConfigureDevice(DeviceID); - - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); - UtAssert_EventSent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, returnString, - "VC_ConfigureDevices() failed to raise an event"); - UtAssert_True(result == expected,"VC_ConfigureDevice() did not return failure"); -} - -/** - * Test VC_ConfigureDevice() nominal - */ -void Test_VC_Custom_ConfigureDevice_Nominal(void) -{ - int32 result = 0; - int32 expected = 0; - uint8 DeviceID = 0; - - /* Set to true to emulate ioctl setting struct values */ - /* Need to succeed twice to reach format ioctl call */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Struct = 2; - - /* Set the test device path */ - strcpy(VC_AppCustomDevice.Channel[0].DevName, "test"); - - /* Set the video format to pass format check */ - VC_AppCustomDevice.Channel[0].VideoFormat = VC_V4L_VIDEO_FORMAT; - - /* Set the correct buffer type */ - VC_AppCustomDevice.Channel[0].BufferType = VC_V4L_BUFFER_TYPE; - - /* Set the correct resolution */ - VC_AppCustomDevice.Channel[0].FrameWidth = VC_FRAME_WIDTH; - VC_AppCustomDevice.Channel[0].FrameHeight = VC_FRAME_HEIGHT; - - /* Set the correct size */ - VC_AppCustomDevice.Channel[0].Buffer_Size = VC_MAX_BUFFER_SIZE; - - /* Set the correct buffer number */ - VC_AppCustomDevice.Channel[0].BufferRequest = VC_V4L_BUFFER_REQUEST; - - /* Call the function under test */ - result = VC_ConfigureDevice(DeviceID); - - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==0,"Event Count = 0"); - UtAssert_True(result == expected,"VC_ConfigureDevice() did not return failure"); -} - -/************************************************************************** - * Tests for VC_Devices_Init() - **************************************************************************/ - -/** - * Test VC_Devices_Init fail VC_Init_CustomDevices and - * VC_InitDevice() already initialized error (see previous already - * initialized test) - */ -void Test_VC_Custom_DevicesInit_Fail(void) -{ - boolean result = TRUE; - boolean expected = FALSE; - uint8 DeviceID = 0; - - strcpy(VC_AppCustomDevice.Channel[0].DevName, "test"); - - /* Set the first device to enabled */ - VC_AppCustomDevice.Channel[0].Mode = VC_DEVICE_ENABLED; - /* Set the first device file descriptor to a non-zero value */ - VC_AppCustomDevice.Channel[0].DeviceFd = 1; - - result = VC_Devices_Init(); - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); - UtAssert_True(result == expected,"VC_InitDevice() did not return an error"); - - UtAssert_True(VC_AppCustomDevice.Channel[0].Mode == VC_DEVICE_DISABLED, - "VC_InitCustomDevices() did not mode to disabled"); - UtAssert_EventSent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, "VC Device test for channel 0 already initialized.", - "VC_InitDevice() failed to raise an event"); -} - -/** - * Test VC_Devices_Init Nominal (See previous test for - * VC_InitCustomDevices() Nominal) - */ -void Test_VC_Custom_DevicesInit_Nominal(void) -{ - boolean result = FALSE; - boolean expected = TRUE; - uint8 DeviceID = 0; - char returnString[64]; - snprintf(returnString, 64, "VC Device initialized channel %u from %s", 0, "test"); - char returnString1[64]; - snprintf(returnString1, 64, "VC Device configured channel %u from %s", 0, "test"); - /* Set the first device to enabled */ - VC_AppCustomDevice.Channel[0].Mode = VC_DEVICE_ENABLED; - - /* Set to true to emulate ioctl setting struct values */ - /* Need to succeed twice to reach format ioctl call */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Struct = 2; - - /* Set the test device path */ - strcpy(VC_AppCustomDevice.Channel[0].DevName, "test"); - - /* Set the video format to pass format check */ - VC_AppCustomDevice.Channel[0].VideoFormat = VC_V4L_VIDEO_FORMAT; - - /* Set the correct buffer type */ - VC_AppCustomDevice.Channel[0].BufferType = VC_V4L_BUFFER_TYPE; - - /* Set the correct resolution */ - VC_AppCustomDevice.Channel[0].FrameWidth = VC_FRAME_WIDTH; - VC_AppCustomDevice.Channel[0].FrameHeight = VC_FRAME_HEIGHT; - - /* Set the correct size */ - VC_AppCustomDevice.Channel[0].Buffer_Size = VC_MAX_BUFFER_SIZE; - - /* Set the correct buffer number */ - VC_AppCustomDevice.Channel[0].BufferRequest = VC_V4L_BUFFER_REQUEST; - - result = VC_Devices_Init(); - - UtAssert_True(result == expected,"VC_Init_CustomDevices() did not succeed"); - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==2,"Event Count = 2"); - UtAssert_True(VC_AppCustomDevice.Channel[0].Status == VC_DEVICE_INITIALIZED, - "VC_Init_CustomDevices() state not initialized"); - UtAssert_EventSent(VC_DEV_INF_EID, CFE_EVS_INFORMATION, returnString, - "VC_InitCustomDevices() failed to raise an event"); - UtAssert_EventSent(VC_DEV_INF_EID, CFE_EVS_INFORMATION, returnString1, - "VC_InitCustomDevices() failed to raise an event"); -} - -/************************************************************************** - * Tests for VC_Start_StreamingDevice() - **************************************************************************/ - -/** - * Test VC_Start_StreamingDevice through VC_Start_Streaming() - * fail queue buffers ioctl - */ -void Test_VC_Custom_StartStreamingDevice_BufferQueue(void) -{ - int32 result = 0; - int32 expected = -1; - uint8 DeviceID = 0; - - char returnString[64]; - snprintf(returnString, 64, "VC VIDIOC_QBUF returned %i on %s channel %u", 5, "test", 0); - - /* Set return error number to true */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Errno = 1; - - /* Set error number to interrupted */ - /* Note this will set errno through multiple calls */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Errno_Value = 5; - - /* Set the test device path */ - strcpy(VC_AppCustomDevice.Channel[0].DevName, "test"); - - /* Set buffer request to its correct value */ - VC_AppCustomDevice.Channel[0].BufferRequest = VC_V4L_BUFFER_REQUEST; - - /* Set the first ioctl call to fail */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Return = -1; - - /* Set channel 0 to enabled and initialized */ - VC_AppCustomDevice.Channel[0].Mode = VC_DEVICE_ENABLED; - VC_AppCustomDevice.Channel[0].Status = VC_DEVICE_INITIALIZED; - - /* Call the function under test */ - result = VC_Start_Streaming(); - - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); - UtAssert_True(result == expected,"VC_Start_StreamingDevice() did not fail"); - UtAssert_True(VC_AppCustomDevice.Channel[0].Status == VC_DEVICE_INITIALIZED, - "VC_StartStreaming changed status with failure"); - UtAssert_EventSent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, returnString, - "VC_Start_StreamingDevice() failed to raise an event"); -} - -/** - * Test VC_Start_StreamingDevice through VC_Start_Streaming() - * fail stream on ioctl - */ -void Test_VC_Custom_StartStreamingDevice_StreamOn(void) -{ - int32 result = 0; - int32 expected = -1; - uint8 DeviceID = 0; - - char returnString[64]; - snprintf(returnString, 64, "VC VIDIOC_STREAMON returned %i on %s channel %u", 5, "test", 0); - - /* Set return error number to true */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Errno = 1; - - /* Set error number to interrupted */ - /* Note this will set errno through multiple calls */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Errno_Value = 5; - - /* Set the test device path */ - strcpy(VC_AppCustomDevice.Channel[0].DevName, "test"); - - /* Set buffer request to one to only call ioctl queue buffer once */ - VC_AppCustomDevice.Channel[0].BufferRequest = 1; - - /* Set the second ioctl call to fail */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Return1 = -1; - - /* Set channel 0 to enabled and initialized */ - VC_AppCustomDevice.Channel[0].Mode = VC_DEVICE_ENABLED; - VC_AppCustomDevice.Channel[0].Status = VC_DEVICE_INITIALIZED; - - /* Call the function under test */ - result = VC_Start_Streaming(); - - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); - UtAssert_True(result == expected,"VC_Start_StreamingDevice() did not fail"); - UtAssert_True(VC_AppCustomDevice.Channel[0].Status == VC_DEVICE_INITIALIZED, - "VC_StartStreaming changed status with failure"); - UtAssert_EventSent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, returnString, - "VC_Start_StreamingDevice() failed to raise an event"); -} - -/** - * Test VC_Start_StreamingDevice nominal - */ -void Test_VC_Custom_StartStreamingDevice_Nominal(void) -{ - int32 result = -1; - int32 expected = 0; - uint8 DeviceID = 0; - - char returnString[64]; - snprintf(returnString, 64, "VC VIDIOC_STREAMON success on %s channel %u", "test", 0); - - /* Set the test device path */ - strcpy(VC_AppCustomDevice.Channel[0].DevName, "test"); - - /* Set buffer request to one to only call ioctl queue buffer once */ - VC_AppCustomDevice.Channel[0].BufferRequest = 1; - - /* Call the function under test */ - result = VC_Start_StreamingDevice(DeviceID); - - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); - UtAssert_True(result == expected,"VC_Start_StreamingDevice() did not succeed"); - UtAssert_EventSent(VC_DEV_INF_EID, CFE_EVS_INFORMATION, returnString, - "VC_Start_StreamingDevice() failed to raise an event"); -} - -/************************************************************************** - * Tests for VC_Start_Streaming() - **************************************************************************/ - - -/** - * Test VC_Start_Streaming nominal - */ -void Test_VC_Custom_StartStreaming_Nominal(void) -{ - int32 result = -1; - int32 expected = 0; - uint8 DeviceID = 0; - - char returnString[64]; - snprintf(returnString, 64, "VC VIDIOC_STREAMON success on %s channel %u", "test", 0); - - /* Set channel 0 to enabled and initialized */ - VC_AppCustomDevice.Channel[0].Mode = VC_DEVICE_ENABLED; - VC_AppCustomDevice.Channel[0].Status = VC_DEVICE_INITIALIZED; - - /* Set the test device path */ - strcpy(VC_AppCustomDevice.Channel[0].DevName, "test"); - - /* Set buffer request to one to only call ioctl queue buffer once */ - VC_AppCustomDevice.Channel[0].BufferRequest = 1; - - /* Call the function under test */ - result = VC_Start_Streaming(); - - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); - UtAssert_True(VC_AppCustomDevice.Channel[0].Status == VC_DEVICE_STREAMING, - "VC_Start_Streaming() did not set state to streaming"); - UtAssert_True(result == expected,"VC_Start_StreamingDevice() did not succeed"); - UtAssert_EventSent(VC_DEV_INF_EID, CFE_EVS_INFORMATION, returnString, - "VC_Start_StreamingDevice() failed to raise an event"); -} - -/************************************************************************** - * Tests for VC_Stream_Task() - **************************************************************************/ - -/** - * Test VC_Stream_Task() fail register child task - */ -void Test_VC_Custom_StreamTask_RegisterChildTaskFail(void) -{ - /* Set register child task to fail */ - Ut_CFE_ES_SetReturnCode(UT_CFE_ES_REGISTERCHILDTASK_INDEX, -1, 1); - - /* Call the function under test */ - VC_Stream_Task(); - - /* Verfity results */ - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); - UtAssert_True(VC_AppData.AppState == VC_INITIALIZED, - "VC_Stream_Task() did not set app state"); - UtAssert_EventSent(VC_DEV_INF_EID, CFE_EVS_INFORMATION, - "VC streaming task exited with return code 0 task status (0xFFFFFFFF)", - "VC_Stream_Task() failed to raise an event"); -} - - -/** - * Test VC_Stream_Task() fail nothing enabled and streaming - */ -void Test_VC_Custom_StreamTask_NothingEnabled(void) -{ - - char returnString[64]; - snprintf(returnString, 64, "VC can't start streaming no devices are streaming enabled"); - char returnString1[128]; - snprintf(returnString1, 128, "VC streaming task exited with return code %d task status (0x%08X)", - -1, (unsigned int)CFE_SUCCESS); - - /* Set register child task to succeed */ - Ut_CFE_ES_SetReturnCode(UT_CFE_ES_REGISTERCHILDTASK_INDEX, CFE_SUCCESS, 1); - - /* Set the while loop continue flag to true */ - VC_AppCustomDevice.ContinueFlag = TRUE; - - /* Set a fake device file descriptor */ - VC_AppCustomDevice.Channel[0].DeviceFd = 7; - - /* Set select to fail with an error (-1) */ - VC_Platform_Stubs_Returns.VC_Wrap_Select_Return = -1; - - /* Call the function under test */ - VC_Stream_Task(); - - /* Verfity results */ - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==2,"Event Count = 2"); - UtAssert_True(VC_AppData.AppState == VC_INITIALIZED, - "VC_Stream_Task() did not set app state"); - UtAssert_EventSent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, returnString, - "VC_Stream_Task() failed to raise an event"); - UtAssert_EventSent(VC_DEV_INF_EID, CFE_EVS_INFORMATION, returnString1, - "VC_Stream_Task() failed to raise an event"); -} - - -/** - * Test VC_Stream_Task() fail select error - */ -void Test_VC_Custom_StreamTask_SelectError(void) -{ - - char returnString[64]; - snprintf(returnString, 64, "VC start streaming failed select() returned %i", 6); - char returnString1[128]; - snprintf(returnString1, 128, "VC streaming task exited with return code %d task status (0x%08X)", - -1, (unsigned int)CFE_SUCCESS); - - /* Set register child task to succeed */ - Ut_CFE_ES_SetReturnCode(UT_CFE_ES_REGISTERCHILDTASK_INDEX, CFE_SUCCESS, 1); - - /* Set the while loop continue flag to true */ - VC_AppCustomDevice.ContinueFlag = TRUE; - - /* Set the mode and state for channel 0*/ - VC_AppCustomDevice.Channel[0].Mode = VC_DEVICE_ENABLED; - VC_AppCustomDevice.Channel[0].Status = VC_DEVICE_STREAMING; - - /* Set return error number to true */ - VC_Platform_Stubs_Returns.VC_Wrap_Select_Errno = 1; - - /* Set error number to interrupted */ - /* Note this will set errno through multiple calls */ - VC_Platform_Stubs_Returns.VC_Wrap_Select_Errno_Value = 6; - - /* Set a fake device file descriptor */ - VC_AppCustomDevice.Channel[0].DeviceFd = 7; - - /* Set select to fail with an error (-1) */ - VC_Platform_Stubs_Returns.VC_Wrap_Select_Return = -1; - - /* Call the function under test */ - VC_Stream_Task(); - - /* Verfity results */ - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==2,"Event Count = 2"); - UtAssert_True(VC_AppData.AppState == VC_INITIALIZED, - "VC_Stream_Task() did not set app state"); - UtAssert_EventSent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, returnString, - "VC_Stream_Task() failed to raise an event"); - UtAssert_EventSent(VC_DEV_INF_EID, CFE_EVS_INFORMATION, returnString1, - "VC_Stream_Task() failed to raise an event"); -} - -/** - * Test VC_Stream_Task() fail select interrupted max retry attempts - */ -void Test_VC_Custom_StreamTask_InterruptedError(void) -{ - char returnString[64]; - snprintf(returnString, 64, "VC select was interrupted"); - char returnString1[128]; - snprintf(returnString1, 128, "VC streaming task exited with return code %d task status (0x%08X)", - -1, (unsigned int)CFE_SUCCESS); - - /* Set register child task to succeed */ - Ut_CFE_ES_SetReturnCode(UT_CFE_ES_REGISTERCHILDTASK_INDEX, CFE_SUCCESS, 1); - - /* Set the while loop continue flag to true */ - VC_AppCustomDevice.ContinueFlag = TRUE; - - /* Set the mode and state for channel 0*/ - VC_AppCustomDevice.Channel[0].Mode = VC_DEVICE_ENABLED; - VC_AppCustomDevice.Channel[0].Status = VC_DEVICE_STREAMING; - - /* Set return error number to true */ - VC_Platform_Stubs_Returns.VC_Wrap_Select_Errno = 1; - - /* Set error number to interrupted */ - /* Note this will set errno through multiple calls */ - VC_Platform_Stubs_Returns.VC_Wrap_Select_Errno_Value = EINTR; - - /* Set a fake device file descriptor */ - VC_AppCustomDevice.Channel[0].DeviceFd = 7; - - /* Set select to fail with an error (-1) */ - VC_Platform_Stubs_Returns.VC_Wrap_Select_Return = -1; - - /* Call the function under test */ - VC_Stream_Task(); - - /* Verfity results */ - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==(VC_MAX_RETRY_ATTEMPTS + 1), - "Event Count is not correct"); - UtAssert_True(VC_AppData.AppState == VC_INITIALIZED, - "VC_Stream_Task() did not set app state"); - UtAssert_EventSent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, returnString, - "VC_Stream_Task() failed to raise an event"); - UtAssert_EventSent(VC_DEV_INF_EID, CFE_EVS_INFORMATION, returnString1, - "VC_Stream_Task() failed to raise an event"); -} - -/** - * Test VC_Stream_Task() fail select timeout max retry attempts - */ -void Test_VC_Custom_StreamTask_TimeoutError(void) -{ - char returnString[64]; - snprintf(returnString, 64, "VC select timed out"); - char returnString1[128]; - snprintf(returnString1, 128, "VC streaming task exited with return code %d task status (0x%08X)", - -1, (unsigned int)CFE_SUCCESS); - - /* Set register child task to succeed */ - Ut_CFE_ES_SetReturnCode(UT_CFE_ES_REGISTERCHILDTASK_INDEX, CFE_SUCCESS, 1); - - /* Set the while loop continue flag to true */ - VC_AppCustomDevice.ContinueFlag = TRUE; - - /* Set the mode and state for channel 0*/ - VC_AppCustomDevice.Channel[0].Mode = VC_DEVICE_ENABLED; - VC_AppCustomDevice.Channel[0].Status = VC_DEVICE_STREAMING; - - /* Set a fake device file descriptor */ - VC_AppCustomDevice.Channel[0].DeviceFd = 7; - - /* Set select to timeout return value (0) */ - VC_Platform_Stubs_Returns.VC_Wrap_Select_Return = 0; - - /* Call the function under test */ - VC_Stream_Task(); - - /* Verfity results */ - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==(VC_BUFFER_TIMEOUTS_ALLOWED + 1), - "Event Count is not correct"); - UtAssert_True(VC_AppData.AppState == VC_INITIALIZED, - "VC_Stream_Task() did not set app state"); - UtAssert_EventSent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, returnString, - "VC_Stream_Task() failed to raise an event"); - UtAssert_EventSent(VC_DEV_INF_EID, CFE_EVS_INFORMATION, returnString1, - "VC_Stream_Task() failed to raise an event"); -} - - -/************************************************************************** - * Tests for VC_Devices_Start() - **************************************************************************/ - -/** - * Test VC_Devices_Start() fail start streaming - */ -void Test_VC_Custom_DevicesStart_StartStreaming(void) -{ - boolean result = TRUE; - boolean expected = FALSE; - - uint8 DeviceID = 0; - - /* Fail start streaming device */ - char returnString[64]; - snprintf(returnString, 64, "VC VIDIOC_QBUF returned %i on %s channel %u", 5, "test", 0); - - /* Set return error number to true */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Errno = 1; - - /* Set error number to interrupted */ - /* Note this will set errno through multiple calls */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Errno_Value = 5; - - /* Set the test device path */ - strcpy(VC_AppCustomDevice.Channel[0].DevName, "test"); - - /* Set buffer request to its correct value */ - VC_AppCustomDevice.Channel[0].BufferRequest = VC_V4L_BUFFER_REQUEST; - - /* Set the first ioctl call to fail */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Return = -1; - - /* Set channel 0 to enabled and initialized */ - VC_AppCustomDevice.Channel[0].Mode = VC_DEVICE_ENABLED; - VC_AppCustomDevice.Channel[0].Status = VC_DEVICE_INITIALIZED; - - /* Call the function under test */ - result = VC_Devices_Start(); - - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); - UtAssert_True(VC_AppCustomDevice.ContinueFlag == FALSE, - "Devices start continue flag not correctly set"); - UtAssert_True(result == expected,"VC_Devices_Start() did not fail"); - UtAssert_True(VC_AppCustomDevice.Channel[0].Status == VC_DEVICE_INITIALIZED, - "VC_StartStreaming changed status with failure"); - UtAssert_EventSent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, returnString, - "VC_Start_StreamingDevice() failed to raise an event"); -} - -/** - * Test VC_Devices_Start() fail child task creation - */ -void Test_VC_Custom_DevicesStart_ChildTaskCreationFail(void) -{ - /* Set create child task to fail */ - Ut_CFE_ES_SetReturnCode(UT_CFE_ES_CREATECHILDTASK_INDEX, -1, 1); - - boolean result = TRUE; - boolean expected = FALSE; - char returnString[64]; - snprintf(returnString, 64, "VC VIDIOC_STREAMON success on %s channel %u", "test", 0); - - uint8 DeviceID = 0; - - /* Set the test device path */ - strcpy(VC_AppCustomDevice.Channel[0].DevName, "test"); - - /* Set buffer request to its correct value */ - VC_AppCustomDevice.Channel[0].BufferRequest = VC_V4L_BUFFER_REQUEST; - - /* Set channel 0 to enabled and initialized */ - VC_AppCustomDevice.Channel[0].Mode = VC_DEVICE_ENABLED; - VC_AppCustomDevice.Channel[0].Status = VC_DEVICE_INITIALIZED; - - /* Call the function under test */ - result = VC_Devices_Start(); - - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); - UtAssert_True(VC_AppCustomDevice.ContinueFlag == FALSE, - "Devices start continue flag not correctly set"); - UtAssert_True(result == expected,"VC_Devices_Start() did not fail"); - UtAssert_True(VC_AppCustomDevice.Channel[0].Status == VC_DEVICE_STREAMING, - "VC_Custom_Device status is not the correct value"); - UtAssert_EventSent(VC_DEV_INF_EID, CFE_EVS_INFORMATION, returnString, - "VC_Start_StreamingDevice() failed to raise an event"); -} - -/** - * Test VC_Devices_Start() nominal - */ -void Test_VC_Custom_DevicesStart_Nominal(void) -{ - /* Set create child task to fail */ - Ut_CFE_ES_SetReturnCode(UT_CFE_ES_CREATECHILDTASK_INDEX, CFE_SUCCESS, 1); - - boolean result = FALSE; - boolean expected = TRUE; - char returnString[64]; - snprintf(returnString, 64, "VC VIDIOC_STREAMON success on %s channel %u", "test", 0); - - uint8 DeviceID = 0; - - /* Set the test device path */ - strcpy(VC_AppCustomDevice.Channel[0].DevName, "test"); - - /* Set buffer request to its correct value */ - VC_AppCustomDevice.Channel[0].BufferRequest = VC_V4L_BUFFER_REQUEST; - - /* Set channel 0 to enabled and initialized */ - VC_AppCustomDevice.Channel[0].Mode = VC_DEVICE_ENABLED; - VC_AppCustomDevice.Channel[0].Status = VC_DEVICE_INITIALIZED; - - /* Call the function under test */ - result = VC_Devices_Start(); - - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); - UtAssert_True(VC_AppCustomDevice.ContinueFlag == TRUE, - "Devices start continue flag not correctly set"); - UtAssert_True(result == expected,"VC_Devices_Start() did not fail"); - UtAssert_True(VC_AppCustomDevice.Channel[0].Status == VC_DEVICE_STREAMING, - "VC_Custom_Device status is not the correct value"); - UtAssert_EventSent(VC_DEV_INF_EID, CFE_EVS_INFORMATION, returnString, - "VC_Start_StreamingDevice() failed to raise an event"); -} - -/************************************************************************** - * Tests for VC_Stop_StreamingDevice() - **************************************************************************/ - -/** - * Test VC_Stop_StreamingDevice() through VC_Stop_Streaming() - * fail stream off - */ -void Test_VC_Custom_StopStreamingDevices_StreamOff(void) -{ - int32 result = 0; - int32 expected = -1; - - char returnString[64]; - snprintf(returnString, 64, "VC VIDIOC_STREAMOFF returned %i on %s channel %u", 7, "test", 0); - - /* Set the test device path */ - strcpy(VC_AppCustomDevice.Channel[0].DevName, "test"); - - - /* Set channel 0 to enabled and initialized */ - VC_AppCustomDevice.Channel[0].Mode = VC_DEVICE_ENABLED; - VC_AppCustomDevice.Channel[0].Status = VC_DEVICE_STREAMING; - - /* Set return error number to true */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Errno = 1; - - /* Set error number to interrupted */ - /* Note this will set errno through multiple calls */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Errno_Value = 7; - - /* Set the first ioctl call to fail */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Return = -1; - - /* Call the function under test */ - result = VC_Stop_Streaming(); - - UtAssert_True(result == expected,"VC_Stop_StreamingDevice() did not fail"); -} - -/** - * Test VC_Stop_StreamingDevice() through VC_Stop_Streaming() nominal - */ -void Test_VC_Custom_StopStreamingDevices_Nominal(void) -{ - int32 result = -1; - int32 expected = 0; - - char returnString[64]; - snprintf(returnString, 64, "VC VIDIOC_STREAMOFF success on %s channel %u", "test", 0); - - - /* Set channel 0 to enabled and initialized */ - VC_AppCustomDevice.Channel[0].Mode = VC_DEVICE_ENABLED; - VC_AppCustomDevice.Channel[0].Status = VC_DEVICE_STREAMING; - - /* Set the test device path */ - strcpy(VC_AppCustomDevice.Channel[0].DevName, "test"); - - /* Call the function under test */ - result = VC_Stop_Streaming(); - - UtAssert_True(result == expected,"VC_Stop_StreamingDevice() did not succeed"); -} - - -/************************************************************************** - * Tests for VC_Stop_Streaming() - **************************************************************************/ - -/************************************************************************** - * Tests for VC_Devices_Stop() - **************************************************************************/ - - /** - * Test VC_Devices_Stop() fail stop streaming - */ -void Test_VC_Custom_DevicesStop_FailStopStreaming(void) -{ - boolean result = TRUE; - int32 expected = FALSE; - - char returnString[64]; - snprintf(returnString, 64, "VC VIDIOC_STREAMOFF returned %i on %s channel %u", 7, "test", 0); - - /* Set the test device path */ - strcpy(VC_AppCustomDevice.Channel[0].DevName, "test"); - - - /* Set channel 0 to enabled and initialized */ - VC_AppCustomDevice.Channel[0].Mode = VC_DEVICE_ENABLED; - VC_AppCustomDevice.Channel[0].Status = VC_DEVICE_STREAMING; - - /* Set return error number to true */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Errno = 1; - - /* Set error number to interrupted */ - /* Note this will set errno through multiple calls */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Errno_Value = 7; - - /* Set the first ioctl call to fail */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Return = -1; - - /* Call the function under test */ - result = VC_Devices_Stop(); - - UtAssert_True(result == expected,"VC_Stop_StreamingDevice() did not fail"); -} - - /** - * Test VC_Devices_Stop() nominal - */ -void Test_VC_Custom_DevicesStop_Nominal(void) -{ - boolean result = FALSE; - boolean expected = TRUE; - - char returnString[64]; - snprintf(returnString, 64, "VC VIDIOC_STREAMOFF success on %s channel %u", "test", 0); - - - /* Set channel 0 to enabled and initialized */ - VC_AppCustomDevice.Channel[0].Mode = VC_DEVICE_ENABLED; - VC_AppCustomDevice.Channel[0].Status = VC_DEVICE_STREAMING; - - /* Set the test device path */ - strcpy(VC_AppCustomDevice.Channel[0].DevName, "test"); - - /* Call the function under test */ - result = VC_Devices_Stop(); - - UtAssert_True(result == expected,"VC_Stop_StreamingDevice() did not succeed"); - UtAssert_True(VC_AppCustomDevice.ContinueFlag==FALSE,"Continue flag wasn't set"); - UtAssert_True(VC_AppData.AppState==VC_INITIALIZED,"App state isn't initialized"); -} - - -/************************************************************************** - * Tests for VC_DisableDevice() - **************************************************************************/ - - /** - * Test VC_DisableDevice() nothing enabled - */ -void Test_VC_Custom_DisableDevice_NothingEnabled(void) -{ - int32 result = 0; - int32 expected = -1; - uint8 DeviceID = 0; - - char returnString[64]; - snprintf(returnString, 64, "VC Device for channel %u is not enabled.", 0); - - result = VC_DisableDevice(DeviceID); - UtAssert_True(result == expected,"VC_DisableDevice() did not fail"); -} - - - /** - * Test VC_DisableDevice() nominal - */ -void Test_VC_Custom_DisableDevice_Nominal(void) -{ - int32 result = -1; - int32 expected = 0; - uint8 DeviceID = 0; - - /* Set test device file descriptor a random value */ - VC_AppCustomDevice.Channel[0].DeviceFd = 1; - - /* Set device mode to enable */ - VC_AppCustomDevice.Channel[0].Mode = VC_DEVICE_ENABLED; - - /* Call the function under test */ - result = VC_DisableDevice(DeviceID); - - UtAssert_True(VC_AppCustomDevice.Channel[0].DeviceFd == 0, - "VC_DisableDevice() did not reset FD"); - UtAssert_True(result == expected,"VC_DisableDevice() did not succeed"); -} - -/************************************************************************** - * Tests for VC_CleanupDevices() - **************************************************************************/ - - /** - * Test VC_CleanupDevices() stop streaming fail - * note reuse of code from first stop streaming device fail test - */ -void Test_VC_Custom_CleanupDevices_StopStreaming(void) -{ - int32 result = 0; - int32 expected = -1; - - char returnString[64]; - snprintf(returnString, 64, "VC VIDIOC_STREAMOFF returned %i on %s channel %u", 7, "test", 0); - - /* Set the test device path */ - strcpy(VC_AppCustomDevice.Channel[0].DevName, "test"); - - - /* Set channel 0 to enabled and initialized */ - VC_AppCustomDevice.Channel[0].Mode = VC_DEVICE_ENABLED; - VC_AppCustomDevice.Channel[0].Status = VC_DEVICE_STREAMING; - - /* Set return error number to true */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Errno = 1; - - /* Set error number to interrupted */ - /* Note this will set errno through multiple calls */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Errno_Value = 7; - - /* Set the first ioctl call to fail */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Return = -1; - - /* Call the function under test */ - result = VC_CleanupDevices(); - - UtAssert_True(result == expected,"VC_Stop_StreamingDevice() did not fail"); - UtAssert_True(VC_AppCustomDevice.Channel[0].Status == VC_DEVICE_STREAMING, - "VC_CleanupDevices() did not set status"); -} - -/** - * Test VC_CleanupDevices() nominal - * - */ -void Test_VC_Custom_CleanupDevices_Nominal(void) -{ - int32 result = -1; - int32 expected = 0; - uint8 DeviceID = 0; - - char returnString[64]; - snprintf(returnString, 64, "VC VIDIOC_STREAMOFF success on %s channel %u", "test", 0); - - /* Set channel 0 to enabled and initialized */ - VC_AppCustomDevice.Channel[0].Mode = VC_DEVICE_ENABLED; - VC_AppCustomDevice.Channel[0].Status = VC_DEVICE_STREAMING; - - /* Set the test device path */ - strcpy(VC_AppCustomDevice.Channel[0].DevName, "test"); - - /* Call the function under test */ - result = VC_CleanupDevices(); - - UtAssert_True(result == expected,"VC_DisableDevice() did not succeed"); - UtAssert_True(VC_AppCustomDevice.Channel[0].Status == VC_DEVICE_INITIALIZED, - "VC_CleanupDevices() did not set correct status"); -} - - -/************************************************************************** - * Tests for VC_Devices_Uninit() - **************************************************************************/ - -/** - * Test VC_Devices_Uninit() nominal - * - */ -void Test_VC_Custom_DevicesUninit_Nominal(void) -{ - boolean result = FALSE; - boolean expected = TRUE; - uint8 DeviceID = 0; - - char returnString[64]; - snprintf(returnString, 64, "VC VIDIOC_STREAMOFF success on %s channel %u", "test", 0); - - /* Set channel 0 to enabled and initialized */ - VC_AppCustomDevice.Channel[0].Mode = VC_DEVICE_ENABLED; - VC_AppCustomDevice.Channel[0].Status = VC_DEVICE_STREAMING; - - /* Set the test device path */ - strcpy(VC_AppCustomDevice.Channel[0].DevName, "test"); - - /* Call the function under test */ - result = VC_Devices_Uninit(); - - UtAssert_True(result == expected,"VC_DisableDevice() did not succeed"); - UtAssert_True(VC_AppCustomDevice.Channel[0].Status == VC_DEVICE_INITIALIZED, - "VC_CleanupDevices() did not set correct status"); -} - - -/** - * Test VC_Devices_Uninit() cleanup devices fail - * - */ -void Test_VC_Custom_DevicesUninit_Cleanup(void) -{ - boolean result = TRUE; - boolean expected = FALSE; - - char returnString[64]; - snprintf(returnString, 64, "VC VIDIOC_STREAMOFF returned %i on %s channel %u", 7, "test", 0); - - /* Set the test device path */ - strcpy(VC_AppCustomDevice.Channel[0].DevName, "test"); - - - /* Set channel 0 to enabled and initialized */ - VC_AppCustomDevice.Channel[0].Mode = VC_DEVICE_ENABLED; - VC_AppCustomDevice.Channel[0].Status = VC_DEVICE_STREAMING; - - /* Set return error number to true */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Errno = 1; - - /* Set error number to interrupted */ - /* Note this will set errno through multiple calls */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Errno_Value = 7; - - /* Set the first ioctl call to fail */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Return = -1; - - /* Call the function under test */ - result = VC_Devices_Uninit(); - - UtAssert_True(result == expected,"VC_Stop_StreamingDevice() did not fail"); - UtAssert_True(VC_AppCustomDevice.Channel[0].Status == VC_DEVICE_STREAMING, - "VC_CleanupDevices() did not set status"); -} - -/************************************************************************** - * Tests for VC_Send_Buffer() - **************************************************************************/ - -/** - * Test VC_Send_Buffer() buffer dequeue fail - * - */ -void Test_VC_Custom_SendBuffer_BufferDequeue(void) -{ - int32 result = 0; - int32 expected = -1; - uint8 DeviceID = 0; - - char returnString[64]; - snprintf(returnString, 64, "VC VIDIOC_DQBUF returned %i on %s channel %u", 7, "test", 0); - - /* Set the test device path */ - strcpy(VC_AppCustomDevice.Channel[0].DevName, "test"); - - /* Set return error number to true */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Errno = 1; - - /* Set error number to interrupted */ - /* Note this will set errno through multiple calls */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Errno_Value = 7; - - /* Set the first ioctl call to fail */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Return = -1; - - /* Call the function under test */ - result = VC_Send_Buffer(DeviceID); - - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); - UtAssert_EventSent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, returnString, - "VC_Stop_StreamingDevice() failed to raise an event"); - UtAssert_True(result == expected,"VC_Send_Buffer() did not fail"); -} - -/** - * Test VC_Send_Buffer() max buffer size fail - * - */ -void Test_VC_Custom_SendBuffer_MaxBuffer(void) -{ - int32 result = 0; - int32 expected = -1; - uint8 DeviceID = 0; - - char returnString[64]; - snprintf(returnString, 64, "VC Packet on %s channel %u is too large", "test", 0); - - /* Set the test device path */ - strcpy(VC_AppCustomDevice.Channel[0].DevName, "test"); - - /* Set buffer dequeued validation check to fail */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Struct = 2; - - /* Call the function under test */ - result = VC_Send_Buffer(DeviceID); - - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); - UtAssert_EventSent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, returnString, - "VC_Stop_StreamingDevice() failed to raise an event"); - /* TODO currently does not fail if max buffer size exceeded. */ - //UtAssert_True(result == expected,"VC_Send_Buffer() did not fail"); -} - -/** - * Test VC_Send_Buffer() dequeued buffer address validation fail - * - */ -void Test_VC_Custom_SendBuffer_InvalidAddress(void) -{ - int32 result = 0; - int32 expected = -1; - uint8 DeviceID = 0; - - char returnString[128]; - snprintf(returnString, 128, - "VC VIDIOC_DQBUF returned unknown user pointer on %s channel %u", - "test", 0); - - /* Set the test device path */ - strcpy(VC_AppCustomDevice.Channel[0].DevName, "test"); - - /* Set buffer dequeued validation check to pass */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Struct = 1; - - /* Set buffer request to a value > 0 */ - VC_AppCustomDevice.Channel[DeviceID].BufferRequest = 1; - - /* Set random pointer address */ - VC_AppCustomDevice.Channel[DeviceID].Buffer_Ptrs[0].ptr = (void *)1; - - /* Call the function under test */ - result = VC_Send_Buffer(DeviceID); - - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); - UtAssert_EventSent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, returnString, - "VC_Stop_StreamingDevice() failed to raise an event"); - UtAssert_True(result == expected,"VC_Send_Buffer() did not fail"); -} - -/** - * Test VC_Send_Buffer() dequeued buffer fail send data - * - */ -void Test_VC_Custom_SendBuffer_SendData(void) -{ - int32 result = 0; - int32 expected = -1; - uint8 DeviceID = 0; - - char returnString[128]; - snprintf(returnString, 128, - "VC send data failed on %s channel %u", - "test", 0); - - /* Properly initialize custom transmit data */ - VC_CustomTransmit_InitData(); - - /* Set the test device path */ - strcpy(VC_AppCustomDevice.Channel[0].DevName, "test"); - - /* Set buffer dequeued validation check to pass */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Struct = 1; - - /* Set buffer request to a value > 0 */ - VC_AppCustomDevice.Channel[DeviceID].BufferRequest = 1; - - /* set sendto to fail */ - VC_Platform_Stubs_Returns.VC_Wrap_SendTo_Return = -1; - - /* Set the second ioctl call to fail */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Return1 = -1; - - /* Call the function under test */ - result = VC_Send_Buffer(DeviceID); - - /* Two events because send data will fail */ - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==2,"Event Count = 2"); - UtAssert_True(result == expected,"VC_Send_Buffer() did not fail"); -} - -/** - * Test VC_Send_Buffer() queue new buffer failure - */ -void Test_VC_Custom_SendBuffer_BufferQueue(void) -{ - int32 result = 0; - int32 expected = -1; - uint8 DeviceID = 0; - - char returnString[128]; - snprintf(returnString, 128, - "VC VIDIOC_QBUF returned %i on %s channel %u", 7, "test", 0); - - /* Set the test device path */ - strcpy(VC_AppCustomDevice.Channel[0].DevName, "test"); - - /* Set buffer dequeued validation check to pass */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Struct = 1; - - /* Set second ioctl call to fail */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Return1 = -1; - - /* Set buffer request to a value > 0 */ - VC_AppCustomDevice.Channel[DeviceID].BufferRequest = 1; - - /* Set return error number to true */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Errno = 1; - - /* Set error number to interrupted */ - /* Note this will set errno through multiple calls */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Errno_Value = 7; - - /* Call the function under test */ - result = VC_Send_Buffer(DeviceID); - - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); - UtAssert_EventSent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, returnString, - "VC_Send_Buffer() failed to raise an event"); - UtAssert_True(result == expected,"VC_Send_Buffer() did not fail"); -} - -/** - * Test VC_Send_Buffer() nominal - */ -void Test_VC_Custom_SendBuffer_Nominal(void) -{ - int32 result = -1; - int32 expected = 0; - uint8 DeviceID = 0; - - /* Set the test device path */ - strcpy(VC_AppCustomDevice.Channel[0].DevName, "test"); - - /* Set buffer dequeued validation check to pass */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Struct = 1; - - /* Set buffer request to a value > 0 */ - VC_AppCustomDevice.Channel[DeviceID].BufferRequest = 1; - - /* Set return error number to true */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Errno = 1; - - /* Set error number to interrupted */ - /* Note this will set errno through multiple calls */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Errno_Value = 7; - - /* Call the function under test */ - result = VC_Send_Buffer(DeviceID); - - UtAssert_True(result == expected,"VC_Send_Buffer() did not succeed"); -} - - -/************************************************************************** - * Tests for VC_Devices_InitData() - **************************************************************************/ - -/** - * Test VC_Devices_InitData() nominal - * Note: currently no way to fail this function - */ -void Test_VC_Devices_InitData_Nominal(void) -{ - int32 result = -1; - int32 expected = CFE_SUCCESS; - - /* Call the function under test */ - result = VC_Devices_InitData(); - - /* Verify the results */ - UtAssert_True(result == expected,"VC_Custom_InitData() did not succeed"); -} - - -/************************************************************************** - * Rollup Test Cases - **************************************************************************/ -void VC_Custom_App_Device_Test_AddTestCases(void) -{ -/************************************************************************** - * Tests for Custom Device Layer - **************************************************************************/ - UtTest_Add(Test_VC_Custom_Ioctl_Error, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_Ioctl_Error"); - UtTest_Add(Test_VC_Custom_Ioctl_Interrupted, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_Ioctl_Interrupted"); - UtTest_Add(Test_VC_Custom_InitDevice_AlreadyInitialized, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_InitDevice_AlreadyInitialized"); - UtTest_Add(Test_VC_Custom_InitDevice_NullName, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_InitDevice_NullName"); - UtTest_Add(Test_VC_Custom_InitDevice_InvalidID, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_InitDevice_InvalidID"); - UtTest_Add(Test_VC_Custom_InitDevice_OpenError, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_InitDevice_OpenError"); - UtTest_Add(Test_VC_Custom_InitDevice_Nominal, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_InitDevice_Nominal"); - UtTest_Add(Test_VC_Custom_InitCustomDevices_FailConfigure, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_InitCustomDevices_FailConfigure"); - UtTest_Add(Test_VC_Custom_InitCustomDevices_Nominal, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_InitCustomDevices_FailInit"); - UtTest_Add(Test_VC_Custom_ConfigureDevice_CapabilitiesFail, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_ConfigureDevice_CapabilitiesFail"); - UtTest_Add(Test_VC_Custom_ConfigureDevice_CapabilitiesBuffer, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_ConfigureDevice_CapabilitiesBuffer"); - UtTest_Add(Test_VC_Custom_ConfigureDevice_CapabilitiesStreaming, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_ConfigureDevice_CapabilitiesStreaming"); - UtTest_Add(Test_VC_Custom_ConfigureDevice_FormatFail, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_ConfigureDevice_FormatFail"); - UtTest_Add(Test_VC_Custom_ConfigureDevice_FormatCheck, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_ConfigureDevice_FormatCheck"); - UtTest_Add(Test_VC_Custom_ConfigureDevice_FormatCheckRes, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_ConfigureDevice_FormatCheckRes"); - UtTest_Add(Test_VC_Custom_ConfigureDevice_FormatCheckSize, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_ConfigureDevice_FormatCheckSize"); - UtTest_Add(Test_VC_Custom_ConfigureDevice_RequestsBuffers, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_ConfigureDevice_RequestsBuffers"); - UtTest_Add(Test_VC_Custom_ConfigureDevice_RequestsBuffersCount, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_ConfigureDevice_RequestsBuffersCount"); - UtTest_Add(Test_VC_Custom_ConfigureDevice_Nominal, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_ConfigureDevice_Nominal"); - UtTest_Add(Test_VC_Custom_DevicesInit_Fail, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_DevicesInit_Fail"); - UtTest_Add(Test_VC_Custom_DevicesInit_Nominal, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_DevicesInit_Nominal"); - UtTest_Add(Test_VC_Custom_StartStreamingDevice_BufferQueue, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_StartStreamingDevice_BufferQueue"); - UtTest_Add(Test_VC_Custom_StartStreamingDevice_StreamOn, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_StartStreamingDevice_StreamOn"); - UtTest_Add(Test_VC_Custom_StartStreamingDevice_Nominal, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_StartStreamingDevice_Nominal"); - UtTest_Add(Test_VC_Custom_StartStreaming_Nominal, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_StartStreaming_Nominal"); - UtTest_Add(Test_VC_Custom_StreamTask_RegisterChildTaskFail, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_StreamTask_RegisterChildTaskFail"); - UtTest_Add(Test_VC_Custom_StreamTask_NothingEnabled, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_StreamTask_NothingEnabled"); - UtTest_Add(Test_VC_Custom_StreamTask_SelectError, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_StreamTask_SelectError"); - UtTest_Add(Test_VC_Custom_StreamTask_InterruptedError, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_StreamTask_InterruptedError"); - UtTest_Add(Test_VC_Custom_StreamTask_TimeoutError, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_StreamTask_TimeoutError"); - UtTest_Add(Test_VC_Custom_DevicesStart_StartStreaming, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_DevicesStart_StartStreaming"); - UtTest_Add(Test_VC_Custom_DevicesStart_ChildTaskCreationFail, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_DevicesStart_ChildTaskCreationFail"); - UtTest_Add(Test_VC_Custom_DevicesStart_Nominal, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_DevicesStart_Nominal"); - UtTest_Add(Test_VC_Custom_StopStreamingDevices_StreamOff, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_StopStreamingDevices_StreamOff"); - UtTest_Add(Test_VC_Custom_StopStreamingDevices_Nominal, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_StopStreamingDevices_Nominal"); - UtTest_Add(Test_VC_Custom_DevicesStop_FailStopStreaming, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_DevicesStop_FailStopStreaming"); - UtTest_Add(Test_VC_Custom_DevicesStop_Nominal, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_DevicesStop_Nominal"); - UtTest_Add(Test_VC_Custom_DisableDevice_NothingEnabled, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_DisableDevice_NothingEnabled"); - UtTest_Add(Test_VC_Custom_DisableDevice_Nominal, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_DisableDevice_Nominal"); - UtTest_Add(Test_VC_Custom_CleanupDevices_StopStreaming, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_CleanupDevices_StopStreaming"); - UtTest_Add(Test_VC_Custom_CleanupDevices_Nominal, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_CleanupDevices_Nominal"); - UtTest_Add(Test_VC_Custom_DevicesUninit_Nominal, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_DevicesUninit_Nominal"); - UtTest_Add(Test_VC_Custom_DevicesUninit_Cleanup, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_DevicesUninit_Cleanup"); - UtTest_Add(Test_VC_Custom_SendBuffer_BufferDequeue, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_SendBuffer_BufferDequeue"); - UtTest_Add(Test_VC_Custom_SendBuffer_MaxBuffer, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_SendBuffer_MaxBuffer"); - UtTest_Add(Test_VC_Custom_SendBuffer_InvalidAddress, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_SendBuffer_InvalidAddress"); - UtTest_Add(Test_VC_Custom_SendBuffer_SendData, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_SendBuffer_SendData"); - UtTest_Add(Test_VC_Custom_SendBuffer_BufferQueue, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_SendBuffer_BufferQueue"); - UtTest_Add(Test_VC_Custom_SendBuffer_Nominal, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_SendBuffer_Nominal"); - UtTest_Add(Test_VC_Devices_InitData_Nominal, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Devices_InitData_Nominal"); -} diff --git a/config/ocpoc/quadx/target/apps/vc/unit_test/vc_dev_io_v4l_test/vc_app_custom_device_test.h b/config/ocpoc/quadx/target/apps/vc/unit_test/vc_dev_io_v4l_test/vc_app_custom_device_test.h deleted file mode 100644 index 38b7e33d3..000000000 --- a/config/ocpoc/quadx/target/apps/vc/unit_test/vc_dev_io_v4l_test/vc_app_custom_device_test.h +++ /dev/null @@ -1,48 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ - -#ifndef VC_APP_CUSTOM_DEVICE_TEST_H -#define VC_APP_CUSTOM_DEVICE_TEST_H - -#ifdef __cplusplus -extern "C" { -#endif - -void VC_Custom_App_Device_Test_AddTestCases(void); - - -#ifdef __cplusplus -} -#endif - -#endif /* VC_APP_CUSTOM_DEVICE_TEST_H */ diff --git a/config/ocpoc/quadx/target/apps/vc/unit_test/vc_dev_io_v4l_test/vc_custom_device_test_utils.c b/config/ocpoc/quadx/target/apps/vc/unit_test/vc_dev_io_v4l_test/vc_custom_device_test_utils.c deleted file mode 100644 index f34216d08..000000000 --- a/config/ocpoc/quadx/target/apps/vc/unit_test/vc_dev_io_v4l_test/vc_custom_device_test_utils.c +++ /dev/null @@ -1,76 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ - -#include "vc_custom_device_test_utils.h" -#include "vc_platform_stubs.h" - -#include "ut_cfe_evs_hooks.h" -#include "ut_cfe_time_stubs.h" -#include "ut_cfe_psp_memutils_stubs.h" -#include "ut_cfe_tbl_stubs.h" -#include "ut_cfe_tbl_hooks.h" -#include "ut_cfe_fs_stubs.h" -#include "ut_cfe_time_stubs.h" -#include "ut_osapi_stubs.h" -#include "ut_osfileapi_stubs.h" -#include "ut_cfe_sb_stubs.h" -#include "ut_cfe_es_stubs.h" -#include "ut_cfe_evs_stubs.h" - -#include - -/* - * Function Definitions - */ - -void VC_Custom_Device_Test_Setup(void) -{ - /* initialize test environment to default state for every test */ - - CFE_PSP_MemSet(&VC_AppCustomDevice, 0x00, sizeof(VC_AppCustomDevice_t)); - - Ut_CFE_EVS_Reset(); - Ut_CFE_FS_Reset(); - Ut_CFE_TIME_Reset(); - Ut_CFE_TBL_Reset(); - Ut_CFE_SB_Reset(); - Ut_CFE_ES_Reset(); - Ut_OSAPI_Reset(); - Ut_OSFILEAPI_Reset(); -} - -void VC_Custom_Device_Test_TearDown(void) { - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_CallCount = 0; - CFE_PSP_MemSet(&VC_AppCustomDevice, 0x00, sizeof(VC_AppCustomDevice_t)); - CFE_PSP_MemSet(&VC_Platform_Stubs_Returns, 0x00, sizeof(VC_Platform_Stubs_Returns_t)); -} diff --git a/config/ocpoc/quadx/target/apps/vc/unit_test/vc_dev_io_v4l_test/vc_custom_device_test_utils.h b/config/ocpoc/quadx/target/apps/vc/unit_test/vc_dev_io_v4l_test/vc_custom_device_test_utils.h deleted file mode 100644 index 92c1f88d2..000000000 --- a/config/ocpoc/quadx/target/apps/vc/unit_test/vc_dev_io_v4l_test/vc_custom_device_test_utils.h +++ /dev/null @@ -1,61 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ - -#ifndef VC_CUSTOM_DEVICE_TEST_UTILS_H -#define VC_CUSTOM_DEVICE_TEST_UTILS_H - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * Includes - */ - -#include "vc_dev_io_v4l.h" - -extern VC_AppCustomDevice_t VC_AppCustomDevice; - -/* - * Function Definitions - */ - -void VC_Custom_Device_Test_Setup(void); -void VC_Custom_Device_Test_TearDown(void); - - -#ifdef __cplusplus -} -#endif - -#endif /* VC_CUSTOM_DEVICE_TEST_UTILS_H */ diff --git a/config/ocpoc/quadx/target/apps/vc/unit_test/vc_platform_stubs/vc_platform_stubs.c b/config/ocpoc/quadx/target/apps/vc/unit_test/vc_platform_stubs/vc_platform_stubs.c deleted file mode 100644 index e2887ad31..000000000 --- a/config/ocpoc/quadx/target/apps/vc/unit_test/vc_platform_stubs/vc_platform_stubs.c +++ /dev/null @@ -1,270 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ - -#include -#include -#include -#include -#include -#include -#include - -#include "vc_platform_stubs.h" -#include "vc_platform_cfg.h" - -int enable_wrappers = 0; - -int __real_open(char *filename, int access, int permission); -int __real_close(int fildes); -int __real_ioctl(int fh, int request, void *arg); -int __real_select(int nfds, fd_set *readfds, fd_set *writefds, - fd_set *exceptfds, struct timeval *timeout); -int __real_socket(int domain, int type, int protocol); -int __real_bind(int sockfd, const struct sockaddr *addr, socklen_t addrlen); -int __real_sendto(int sockfd, const void *buf, size_t len, int flags, - const struct sockaddr *dest_addr, socklen_t addrlen); -ssize_t __real_recv(int s, void *buf, size_t len, int flags); - - -VC_Platform_Stubs_Returns_t VC_Platform_Stubs_Returns = {0}; - - -int __wrap_ioctl(int fh, int request, void *arg) -{ - int returnCode = 0; - - if(enable_wrappers == 0) - { - returnCode = __real_ioctl(fh, request, arg); - } - else - { - if (VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Errno) - { - errno = VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Errno_Value; - } - if (VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Struct) - { - switch(request) - { - case VIDIOC_QUERYCAP: - if(1 == VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Struct) - { - ((struct v4l2_capability *)arg)->capabilities = VC_V4L_BUFFER_TYPE; - } - if(2 == VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Struct) - { - ((struct v4l2_capability *)arg)->capabilities = (VC_V4L_BUFFER_TYPE + - V4L2_CAP_STREAMING); - } - break; - case VIDIOC_S_FMT: - ((struct v4l2_format *)arg)->fmt.pix.pixelformat = VC_V4L_VIDEO_FORMAT; - ((struct v4l2_format *)arg)->fmt.pix.width = VC_FRAME_WIDTH; - ((struct v4l2_format *)arg)->fmt.pix.height = VC_FRAME_HEIGHT; - ((struct v4l2_format *)arg)->fmt.pix.sizeimage = VC_MAX_BUFFER_SIZE; - break; - case VIDIOC_REQBUFS: - ((struct v4l2_requestbuffers *)arg)->count = VC_V4L_BUFFER_REQUEST; - case VIDIOC_DQBUF: - if(1 == VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Struct) - { - ((struct v4l2_buffer *)arg)->bytesused = VC_MAX_PACKET_SIZE; - } - if(2 == VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Struct) - { - ((struct v4l2_buffer *)arg)->bytesused = (VC_MAX_PACKET_SIZE + 1); - } - default: - break; - } - } - - if (1 == VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_CallCount) - { - returnCode = VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Return1; - } - else if (2 == VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_CallCount) - { - returnCode = VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Return2; - } - else - { - returnCode = VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Return; - } - - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_CallCount++; - } - return returnCode; -} - - -int __wrap_open(char *filename, int access, int permission) -{ - int returnCode = 0; - - if(enable_wrappers == 0) - { - returnCode = __real_open(filename, access, permission); - } - else - { - if (VC_Platform_Stubs_Returns.VC_Wrap_Open_Errno) - { - errno = VC_Platform_Stubs_Returns.VC_Wrap_Open_Errno_Value; - } - returnCode = VC_Platform_Stubs_Returns.VC_Wrap_Open_Return; - } - return returnCode; -} - - -int __wrap_close(int fildes) -{ - int returnCode = 0; - - if(enable_wrappers == 0) - { - returnCode = __real_close(fildes); - } - else - { - returnCode = VC_Platform_Stubs_Returns.VC_Wrap_Close_Return; - } - return returnCode; -} - - -int __wrap_select(int nfds, fd_set *readfds, fd_set *writefds, - fd_set *exceptfds, struct timeval *timeout) -{ - int returnCode = 0; - if(enable_wrappers == 0) - { - returnCode = __real_select(nfds, readfds, writefds, exceptfds, timeout); - } - else - { - if (VC_Platform_Stubs_Returns.VC_Wrap_Select_Errno) - { - errno = VC_Platform_Stubs_Returns.VC_Wrap_Select_Errno_Value; - } - returnCode = VC_Platform_Stubs_Returns.VC_Wrap_Select_Return; - } - return returnCode; -} - - -int __wrap_socket(int domain, int type, int protocol) -{ - int returnCode = 0; - if(enable_wrappers == 0) - { - returnCode = __real_socket(domain, type, protocol); - } - else - { - if (VC_Platform_Stubs_Returns.VC_Wrap_Socket_Errno) - { - errno = VC_Platform_Stubs_Returns.VC_Wrap_Socket_Errno_Value; - } - returnCode = VC_Platform_Stubs_Returns.VC_Wrap_Socket_Return; - } - return returnCode; -} - - -ssize_t __wrap_recv(int s, void *buf, size_t len, int flags) -{ - ssize_t returnCode = 0; - if(enable_wrappers == 0) - { - returnCode = __real_recv(s, buf, len, flags); - } - else - { - if (VC_Platform_Stubs_Returns.VC_Wrap_Recv_Errno) - { - errno = VC_Platform_Stubs_Returns.VC_Wrap_Recv_Errno_Value; - } - if (1 == VC_Platform_Stubs_Returns.VC_Wrap_Recv_CallCount) - { - returnCode = VC_Platform_Stubs_Returns.VC_Wrap_Recv_Return1; - } - else - { - returnCode = VC_Platform_Stubs_Returns.VC_Wrap_Recv_Return; - } - - VC_Platform_Stubs_Returns.VC_Wrap_Recv_CallCount++; - } - return returnCode; -} - - -int __wrap_bind(int sockfd, const struct sockaddr *addr, socklen_t addrlen) -{ - int returnCode = 0; - if(enable_wrappers == 0) - { - returnCode = __real_bind(sockfd, addr, addrlen); - } - else - { - if (VC_Platform_Stubs_Returns.VC_Wrap_Bind_Errno) - { - errno = VC_Platform_Stubs_Returns.VC_Wrap_Bind_Errno_Value; - } - returnCode = VC_Platform_Stubs_Returns.VC_Wrap_Bind_Return; - } - return returnCode; -} - -int __wrap_sendto(int sockfd, const void *buf, size_t len, int flags, - const struct sockaddr *dest_addr, socklen_t addrlen) -{ - int returnCode = 0; - if(enable_wrappers == 0) - { - returnCode = __real_sendto(sockfd, buf, len, flags, dest_addr, addrlen); - } - else - { - if (VC_Platform_Stubs_Returns.VC_Wrap_SendTo_Errno) - { - errno = VC_Platform_Stubs_Returns.VC_Wrap_SendTo_Errno_Value; - } - returnCode = VC_Platform_Stubs_Returns.VC_Wrap_SendTo_Return; - } - return returnCode; -} diff --git a/config/ocpoc/quadx/target/apps/vc/unit_test/vc_platform_stubs/vc_platform_stubs.h b/config/ocpoc/quadx/target/apps/vc/unit_test/vc_platform_stubs/vc_platform_stubs.h deleted file mode 100644 index 66dada74f..000000000 --- a/config/ocpoc/quadx/target/apps/vc/unit_test/vc_platform_stubs/vc_platform_stubs.h +++ /dev/null @@ -1,84 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ - -#ifndef VC_PLATFORM_STUBS_H -#define VC_PLATFORM_STUBS_H - -#ifdef __cplusplus -extern "C" { -#endif - -#include - - -typedef struct -{ - int VC_Wrap_Ioctl_Return; - int VC_Wrap_Ioctl_Return1; - int VC_Wrap_Ioctl_Return2; - int VC_Wrap_Ioctl_Errno; - int VC_Wrap_Ioctl_Errno_Value; - int VC_Wrap_Ioctl_Struct; - int VC_Wrap_Open_Return; - int VC_Wrap_Open_Errno; - int VC_Wrap_Open_Errno_Value; - int VC_Wrap_Close_Return; - int VC_Wrap_Select_Return; - int VC_Wrap_Select_Errno; - int VC_Wrap_Select_Errno_Value; - int VC_Wrap_Socket_Return; - int VC_Wrap_Socket_Errno; - int VC_Wrap_Socket_Errno_Value; - int VC_Wrap_Bind_Return; - int VC_Wrap_Bind_Errno; - int VC_Wrap_Bind_Errno_Value; - int VC_Wrap_SendTo_Return; - int VC_Wrap_SendTo_Errno; - int VC_Wrap_SendTo_Errno_Value; - int VC_Wrap_Ioctl_CallCount; - int VC_Wrap_Recv_Return; - int VC_Wrap_Recv_Return1; - int VC_Wrap_Recv_Errno; - int VC_Wrap_Recv_Errno_Value; - int VC_Wrap_Recv_CallCount; -} VC_Platform_Stubs_Returns_t; - - -extern VC_Platform_Stubs_Returns_t VC_Platform_Stubs_Returns; - - -#ifdef __cplusplus -} -#endif - -#endif /* VC_PLATFORM_STUBS_H */ diff --git a/config/ocpoc/quadx/target/apps/vc/unit_test/vc_transmit_udp_test/vc_app_custom_transmit_test.c b/config/ocpoc/quadx/target/apps/vc/unit_test/vc_transmit_udp_test/vc_app_custom_transmit_test.c deleted file mode 100644 index 8d6672cb5..000000000 --- a/config/ocpoc/quadx/target/apps/vc/unit_test/vc_transmit_udp_test/vc_app_custom_transmit_test.c +++ /dev/null @@ -1,626 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ - -#include "vc_app_custom_transmit_test.h" -#include "vc_custom_transmit_test_utils.h" -#include "vc_platform_stubs.h" -#include "vc_platform_cfg.h" -#include -#include -#include - -#include "uttest.h" -#include "ut_osapi_stubs.h" -#include "ut_cfe_sb_stubs.h" -#include "ut_cfe_sb_hooks.h" -#include "ut_cfe_es_stubs.h" -#include "ut_cfe_es_hooks.h" -#include "ut_cfe_evs_stubs.h" -#include "ut_cfe_evs_hooks.h" -#include "ut_cfe_time_stubs.h" -#include "ut_cfe_psp_memutils_stubs.h" -#include "ut_cfe_tbl_stubs.h" -#include "ut_cfe_fs_stubs.h" -#include "ut_cfe_time_stubs.h" - - -/************************************************************************** - * Tests for Custom Transmit Layer - **************************************************************************/ - -/************************************************************************** - * Tests for VC_EnableChannel() - **************************************************************************/ - -/** - * Test VC_EnableChannel() through VC_Init_CustomTransmitters - * fail already initialized error - */ -void Test_VC_Custom_InitTransmit_AlreadyInitialized(void) -{ - int32 result = 0; - int32 expected = -1; - - char returnString[128]; - snprintf(returnString, 128, "VC UDP for channel %u already enabled.", 0); - - /* Set test channel 0 to enabled */ - VC_AppCustomData.Channel[0].Mode = VC_CHANNEL_ENABLED; - - /* Set a socket file descriptor to a non 0 value */ - VC_AppCustomData.Channel[0].SocketFd = 1; - - /* Call the function under test */ - result = VC_Init_CustomTransmitters(); - - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); - UtAssert_True(result == expected,"VC_Init_CustomTransmitters() did not return an error"); - - UtAssert_True(VC_AppCustomData.Channel[0].Mode == VC_CHANNEL_DISABLED, - "VC_Init_CustomTransmitters() did not set mode to disabled"); - UtAssert_EventSent(VC_SOCKET_ERR_EID, CFE_EVS_ERROR, returnString, - "VC_EnableChannel() failed to raise an event"); -} - -/** - * Test VC_EnableChannel() invalid channel id - */ -void Test_VC_Custom_InitTransmit_ChannelId(void) -{ - int32 result = 0; - int32 expected = -1; - - char returnString[128]; - snprintf(returnString, 128, "VC ChannelID (%u) invalid.", (VC_MAX_OUTPUT_CHANNELS + 1)); - - /* Set test channel 0 to enabled */ - VC_AppCustomData.Channel[0].Mode = VC_CHANNEL_ENABLED; - - /* Call the function under test */ - result = VC_EnableChannel((VC_MAX_OUTPUT_CHANNELS + 1)); - - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); - UtAssert_True(result == expected,"VC_Init_CustomTransmitters() did not return an error"); - UtAssert_EventSent(VC_SOCKET_ERR_EID, CFE_EVS_ERROR, returnString, - "VC_EnableChannel() failed to raise an event"); -} - -/** - * Test VC_EnableChannel() through VC_Init_CustomTransmitters - * fail socket creation - */ -void Test_VC_Custom_InitTransmit_Socket(void) -{ - int32 result = 0; - int32 expected = -1; - - char returnString[128]; - snprintf(returnString, 128, "VC socket errno: %i on channel %u", 8, 0); - - /* Set test channel 0 to enabled */ - VC_AppCustomData.Channel[0].Mode = VC_CHANNEL_ENABLED; - - /* Set socket call to fail */ - VC_Platform_Stubs_Returns.VC_Wrap_Socket_Return = -1; - - /* Set errno for socket call */ - VC_Platform_Stubs_Returns.VC_Wrap_Socket_Errno = 1; - VC_Platform_Stubs_Returns.VC_Wrap_Socket_Errno_Value = 8; - - /* Call the function under test */ - result = VC_Init_CustomTransmitters(); - - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); - UtAssert_True(result == expected,"VC_Init_CustomTransmitters() did not return an error"); - UtAssert_True(VC_AppCustomData.Channel[0].SocketFd == -1, - "VC_EnableChannel() failed to return an error"); - UtAssert_True(VC_AppCustomData.Channel[0].Mode == VC_CHANNEL_DISABLED, - "VC_Init_CustomTransmitters() did not set mode to disabled"); - UtAssert_EventSent(VC_SOCKET_ERR_EID, CFE_EVS_ERROR, returnString, - "VC_EnableChannel() failed to raise an event"); -} - -/** - * Test VC_EnableChannel() through VC_Init_CustomTransmitters - * fail invalid address - */ -void Test_VC_Custom_InitTransmit_InvalidAddress(void) -{ - int32 result = 0; - int32 expected = -1; - - char returnString[128]; - snprintf(returnString, 128, "VC inet_aton errno: %i on channel %u", 88, 0); - - /* Set test channel 0 to enabled */ - VC_AppCustomData.Channel[0].Mode = VC_CHANNEL_ENABLED; - - /* Set an invalid address for inet_aton */ - strcpy(VC_AppCustomData.Channel[0].MyIP, "test"); - - /* Call the function under test */ - result = VC_Init_CustomTransmitters(); - - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); - UtAssert_True(result == expected,"VC_Init_CustomTransmitters() did not return an error"); - UtAssert_True(VC_AppCustomData.Channel[0].Mode == VC_CHANNEL_DISABLED, - "VC_Init_CustomTransmitters() did not set mode to disabled"); - UtAssert_EventSent(VC_SOCKET_ERR_EID, CFE_EVS_ERROR, returnString, - "VC_EnableChannel() failed to raise an event"); -} - -/** - * Test VC_EnableChannel() through VC_Init_CustomTransmitters - * fail bind - */ -void Test_VC_Custom_InitTransmit_Bind(void) -{ - int32 result = 0; - int32 expected = -1; - - char returnString[128]; - snprintf(returnString, 128, "VC bind errno: %i on channel %u", 8, 0); - - /* Set test channel 0 to enabled */ - VC_AppCustomData.Channel[0].Mode = VC_CHANNEL_ENABLED; - - /* Set an valid address for inet_aton */ - strcpy(VC_AppCustomData.Channel[0].MyIP, "1.1.1.1"); - - /* Set socket call to fail */ - VC_Platform_Stubs_Returns.VC_Wrap_Bind_Return = -1; - - /* Set errno for socket call */ - VC_Platform_Stubs_Returns.VC_Wrap_Bind_Errno = 1; - VC_Platform_Stubs_Returns.VC_Wrap_Bind_Errno_Value = 8; - - /* Call the function under test */ - result = VC_Init_CustomTransmitters(); - - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); - UtAssert_True(result == expected,"VC_Init_CustomTransmitters() did not return an error"); - UtAssert_True(VC_AppCustomData.Channel[0].Mode == VC_CHANNEL_DISABLED, - "VC_Init_CustomTransmitters() did not set mode to disabled"); - UtAssert_EventSent(VC_SOCKET_ERR_EID, CFE_EVS_ERROR, returnString, - "VC_EnableChannel() failed to raise an event"); -} - -/** - * Test VC_EnableChannel() through VC_Init_CustomTransmitters nominal - */ -void Test_VC_Custom_InitTransmit_Nominal(void) -{ - int32 result = -1; - int32 expected = 0; - - char returnString[128]; - snprintf(returnString, 128, "VC UDP output enabled channel %u to %s:%u", 0, "test",0); - - /* Set test channel 0 to enabled */ - VC_AppCustomData.Channel[0].Mode = VC_CHANNEL_ENABLED; - - /* Set an valid address for inet_aton */ - strcpy(VC_AppCustomData.Channel[0].MyIP, "1.1.1.1"); - - strcpy(VC_AppCustomData.Channel[0].DestIP, "test"); - VC_AppCustomData.Channel[0].DestPort = 0; - - /* Call the function under test */ - result = VC_Init_CustomTransmitters(); - - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); - UtAssert_True(result == expected,"VC_Init_CustomTransmitters() did not succeed"); - UtAssert_True(VC_AppCustomData.Channel[0].Mode == VC_CHANNEL_ENABLED, - "VC_Init_CustomTransmitters() did not mode to disabled"); - UtAssert_EventSent(VC_CHA_INF_EID, CFE_EVS_INFORMATION, returnString, - "VC_EnableChannel() failed to raise an event"); -} - -/************************************************************************** - * Tests for VC_Transmit_InitData() - **************************************************************************/ - -/** - * Test VC_Transmit_InitData() nominal - * Note: currently no way to fail this function - */ -void Test_VC_Transmit_InitData_Nominal(void) -{ - int32 result = -1; - int32 expected = CFE_SUCCESS; - - /* Call the function under test */ - result = VC_Transmit_InitData(); - - /* Verify the results */ - UtAssert_True(result == expected,"VC_Transmit_InitData() did not succeed"); -} - - -/************************************************************************** - * Tests for VC_Init_CustomTransmitters() - **************************************************************************/ - -/************************************************************************** - * Tests for VC_Transmit_Init() - **************************************************************************/ - - /** - * Test VC_Transmit_Init() fail VC_Init_CustomTransmitters - * see reuse (VC_EnableChannel() invalid channel id) - */ -void Test_VC_Custom_TransmitInit_Fail(void) -{ - boolean result = TRUE; - boolean expected = FALSE; - - char returnString[128]; - snprintf(returnString, 128, "VC UDP for channel %u already enabled.", 0); - char returnString1[128]; - snprintf(returnString1, 128, "VC_Transmit_Init Failed"); - - /* Set test channel 0 to enabled */ - VC_AppCustomData.Channel[0].Mode = VC_CHANNEL_ENABLED; - - /* Set a socket file descriptor to a non 0 value */ - VC_AppCustomData.Channel[0].SocketFd = 1; - - /* Call the function under test */ - result = VC_Transmit_Init(); - - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==2,"Event Count = 2"); - UtAssert_True(result == expected,"VC_Init_CustomTransmitters() did not return an error"); - UtAssert_True(VC_AppCustomData.Channel[0].Mode == VC_CHANNEL_DISABLED, - "VC_Init_CustomTransmitters() did not set mode to disabled"); - UtAssert_EventSent(VC_SOCKET_ERR_EID, CFE_EVS_ERROR, returnString, - "VC_EnableChannel() failed to raise an event"); - UtAssert_EventSent(VC_SOCKET_ERR_EID, CFE_EVS_ERROR, returnString1, - "VC_EnableChannel() failed to raise an event"); - -} - -/** - * Test VC_Transmit_Init() nominal - */ -void Test_VC_Custom_TransmitInit_Nominal(void) -{ - boolean result = FALSE; - boolean expected = TRUE; - - char returnString[128]; - snprintf(returnString, 128, "VC UDP output enabled channel %u to %s:%u", 0, "test",0); - - /* Set test channel 0 to enabled */ - VC_AppCustomData.Channel[0].Mode = VC_CHANNEL_ENABLED; - - /* Set an valid address for inet_aton */ - strcpy(VC_AppCustomData.Channel[0].MyIP, "1.1.1.1"); - - strcpy(VC_AppCustomData.Channel[0].DestIP, "test"); - VC_AppCustomData.Channel[0].DestPort = 0; - - /* Call the function under test */ - result = VC_Transmit_Init(); - - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); - UtAssert_True(result == expected,"VC_Init_CustomTransmitters() did not succeed"); - UtAssert_True(VC_AppCustomData.Channel[0].Mode == VC_CHANNEL_ENABLED, - "VC_Init_CustomTransmitters() did not set mode to disabled"); - UtAssert_EventSent(VC_CHA_INF_EID, CFE_EVS_INFORMATION, returnString, - "VC_EnableChannel() failed to raise an event"); -} - -/************************************************************************** - * Tests for VC_SendData() - **************************************************************************/ - -/** - * Test VC_SendData() invalid channel id - */ -void Test_VC_Custom_SendData_ChannelId(void) -{ - int32 result = -1; - int32 expected = 0; - - /* Call the function under test */ - result = VC_SendData((VC_MAX_OUTPUT_CHANNELS + 1), "buffer", 77); - - UtAssert_True(result == expected,"VC_SendData() did not return the correct value"); -} - -/** - * Test VC_SendData() sendto fail - */ -void Test_VC_Custom_SendData_SendTo(void) -{ - int32 result = 0; - int32 expected = -1; - - /* Set test channel 0 to enabled */ - VC_AppCustomData.Channel[0].Mode = VC_CHANNEL_ENABLED; - - /* Set sendto call to fail */ - VC_Platform_Stubs_Returns.VC_Wrap_SendTo_Return = -1; - - /* Set errno for sendto call */ - VC_Platform_Stubs_Returns.VC_Wrap_SendTo_Errno = 1; - VC_Platform_Stubs_Returns.VC_Wrap_SendTo_Errno_Value = 8; - - /* Call the function under test */ - result = VC_SendData(0, "buffer", 77); - - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); - /* TODO currently failure does not disable channel. */ - //UtAssert_True(VC_AppCustomData.Channel[0].Mode == VC_CHANNEL_DISABLED, - //"VC_SendData() did not set mode to disabled"); - //UtAssert_True(result == expected,"VC_SendData() did not return the correct value"); - UtAssert_EventSent(VC_SOCKET_ERR_EID, CFE_EVS_ERROR, "", - "VC_SendData() failed to raise an event"); -} - -/** - * Test VC_SendData() sendto fail message too long - */ -void Test_VC_Custom_SendData_SendToTooLong(void) -{ - int32 result = 0; - int32 expected = -1; - - /* Set test channel 0 to enabled */ - VC_AppCustomData.Channel[0].Mode = VC_CHANNEL_ENABLED; - - /* Set sendto call to fail */ - VC_Platform_Stubs_Returns.VC_Wrap_SendTo_Return = -1; - - /* Set errno for sendto call */ - VC_Platform_Stubs_Returns.VC_Wrap_SendTo_Errno = 1; - VC_Platform_Stubs_Returns.VC_Wrap_SendTo_Errno_Value = 90; - - /* Call the function under test */ - result = VC_SendData(0, "buffer", 77); - - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); - /* TODO currently failure does not disable channel. */ - //UtAssert_True(result == expected,"VC_SendData() did not return the correct value"); - UtAssert_EventSent(VC_SOCKET_ERR_EID, CFE_EVS_ERROR, "", - "VC_SendData() failed to raise an event"); -} - -/** - * Test VC_SendData() nominal - */ -void Test_VC_Custom_SendData_Nominal(void) -{ - int32 result = -1; - int32 expected = 0; - - /* Set test channel 0 to enabled */ - VC_AppCustomData.Channel[0].Mode = VC_CHANNEL_ENABLED; - - /* Call the function under test */ - result = VC_SendData(0, "buffer", 77); - - UtAssert_True(result == expected,"VC_SendData() did not return the correct value"); -} - -/************************************************************************** - * Tests for VC_Address_Verification() - **************************************************************************/ - -/** - * Test VC_Address_Verification() nominal - */ -void Test_VC_Custom_AddressVerification_Nominal(void) -{ - boolean result = FALSE; - boolean expected = TRUE; - - result = VC_Address_Verification("1.1.1.1"); - - UtAssert_True(result == expected,"VC_Address_Verification() did not return the correct value"); -} - -/** - * Test VC_Address_Verification() fail - */ -void Test_VC_Custom_AddressVerification_Fail(void) -{ - boolean result = TRUE; - boolean expected = FALSE; - - result = VC_Address_Verification("test"); - - UtAssert_True(result == expected,"VC_Address_Verification() did not return the correct value"); -} - -/************************************************************************** - * Tests for VC_Update_Destination() - **************************************************************************/ - -/** - * Test VC_Update_Destination() nominal - */ -void Test_VC_Custom_UpdateDestination_Nominal(void) -{ - boolean result = FALSE; - boolean expected = TRUE; - - /* Set test channel 0 to enabled */ - VC_AppCustomData.Channel[0].Mode = VC_CHANNEL_ENABLED; - - result = VC_Update_Destination("test", 5000); - - UtAssert_True(result == expected,"VC_Update_Destination() did not return the correct value"); - UtAssert_StrCmp(VC_AppCustomData.Channel[0].DestIP, "test", - "VC_Update_Destination() did not set a correct value"); - UtAssert_True(VC_AppCustomData.Channel[0].DestPort == 5000, - "VC_Update_Destination() did not set a correct value"); - -} - -/** - * Test VC_Update_Destination() fail - */ -void Test_VC_Custom_UpdateDestination_Fail(void) -{ - /* No way to fail strncpy in update destination at this time. */ - //boolean result = TRUE; - //boolean expected = FALSE; - - //result = VC_Update_Destination("test", 5000); - - //UtAssert_True(result == expected,"VC_Update_Destination() did not return the correct value"); -} - -/************************************************************************** - * Tests for VC_DisableChannel() - **************************************************************************/ - -/** - * Test VC_DisableChannel() fail - */ -void Test_VC_Custom_DisableChannel_Fail(void) -{ - int32 result = 0; - int32 expected = -1; - - result = VC_DisableChannel(0); - - UtAssert_True(result == expected,"VC_DisableChannel() did not return the correct value"); -} - -/** - * Test VC_DisableChannel() through VC_CleanupCustom nominal - */ -void Test_VC_Custom_DisableChannel_Nominal(void) -{ - int32 result = -1; - int32 expected = 0; - - VC_AppCustomData.Channel[0].Mode = VC_CHANNEL_ENABLED; - - result = VC_CleanupCustom(); - - UtAssert_True(result == expected,"VC_DisableChannel() did not return the correct value"); - -} - -/************************************************************************** - * Tests for VC_CleanupCustom() - **************************************************************************/ - -/** - * Test VC_CleanupCustom() fail - * No current way to fail cleanup custom since mode check is the only - * error checking inside of disable channel. Error checking close return - * value will enable a fail condition for cleanup custom - */ - - -/************************************************************************** - * Tests for VC_Transmit_Uninit() - **************************************************************************/ - - /** - * Test VC_Transmit_Uninit() fail - * No current way to fail cleanup custom since mode check is the only - * error checking inside of disable channel. Error checking close return - * value will enable a fail condition for cleanup custom - */ - -/** - * Test VC_Transmit_Uninit() nominal - */ -void Test_VC_Custom_TransmitUninit_Nominal(void) -{ - boolean result = FALSE; - boolean expected = TRUE; - - VC_AppCustomData.Channel[0].Mode = VC_CHANNEL_ENABLED; - - result = VC_Transmit_Uninit(); - - UtAssert_True(result == expected,"VC_Transmit_Uninit() did not return the correct value"); - -} - - -/************************************************************************** - * Rollup Test Cases - **************************************************************************/ -void VC_Custom_App_Transmit_Test_AddTestCases(void) -{ -/************************************************************************** - * Tests for Custom Transmit Layer - **************************************************************************/ - UtTest_Add(Test_VC_Custom_InitTransmit_AlreadyInitialized, VC_Custom_Transmit_Test_Setup, - VC_Custom_Transmit_Test_TearDown, "Test_VC_Custom_InitTransmit_AlreadyInitialized"); - UtTest_Add(Test_VC_Custom_InitTransmit_ChannelId, VC_Custom_Transmit_Test_Setup, - VC_Custom_Transmit_Test_TearDown, "Test_VC_Custom_InitTransmit_ChannelId"); - UtTest_Add(Test_VC_Custom_InitTransmit_Socket, VC_Custom_Transmit_Test_Setup, - VC_Custom_Transmit_Test_TearDown, "Test_VC_Custom_InitTransmit_Socket"); - UtTest_Add(Test_VC_Custom_InitTransmit_InvalidAddress, VC_Custom_Transmit_Test_Setup, - VC_Custom_Transmit_Test_TearDown, "Test_VC_Custom_InitTransmit_InvalidAddress"); - UtTest_Add(Test_VC_Custom_InitTransmit_Bind, VC_Custom_Transmit_Test_Setup, - VC_Custom_Transmit_Test_TearDown, "Test_VC_Custom_InitTransmit_Bind"); - UtTest_Add(Test_VC_Custom_InitTransmit_Nominal, VC_Custom_Transmit_Test_Setup, - VC_Custom_Transmit_Test_TearDown, "Test_VC_Custom_InitTransmit_Nominal"); - UtTest_Add(Test_VC_Transmit_InitData_Nominal, VC_Custom_Transmit_Test_Setup, - VC_Custom_Transmit_Test_TearDown, "Test_VC_Transmit_InitData_Nominal"); - UtTest_Add(Test_VC_Custom_TransmitInit_Fail, VC_Custom_Transmit_Test_Setup, - VC_Custom_Transmit_Test_TearDown, "Test_VC_Custom_TransmitInit_Fail"); - UtTest_Add(Test_VC_Custom_TransmitInit_Nominal, VC_Custom_Transmit_Test_Setup, - VC_Custom_Transmit_Test_TearDown, "Test_VC_Custom_TransmitInit_Nominal"); - UtTest_Add(Test_VC_Custom_SendData_ChannelId, VC_Custom_Transmit_Test_Setup, - VC_Custom_Transmit_Test_TearDown, "Test_VC_Custom_SendData_ChannelId"); - UtTest_Add(Test_VC_Custom_SendData_SendTo, VC_Custom_Transmit_Test_Setup, - VC_Custom_Transmit_Test_TearDown, "Test_VC_Custom_SendData_SendTo"); - UtTest_Add(Test_VC_Custom_SendData_SendToTooLong, VC_Custom_Transmit_Test_Setup, - VC_Custom_Transmit_Test_TearDown, "Test_VC_Custom_SendData_SendToTooLong"); - UtTest_Add(Test_VC_Custom_SendData_Nominal, VC_Custom_Transmit_Test_Setup, - VC_Custom_Transmit_Test_TearDown, "Test_VC_Custom_SendData_Nominal"); - UtTest_Add(Test_VC_Custom_AddressVerification_Nominal, VC_Custom_Transmit_Test_Setup, - VC_Custom_Transmit_Test_TearDown, "Test_VC_Custom_AddressVerification_Nominal"); - UtTest_Add(Test_VC_Custom_AddressVerification_Fail, VC_Custom_Transmit_Test_Setup, - VC_Custom_Transmit_Test_TearDown, "Test_VC_Custom_AddressVerification_Fail"); - UtTest_Add(Test_VC_Custom_UpdateDestination_Nominal, VC_Custom_Transmit_Test_Setup, - VC_Custom_Transmit_Test_TearDown, "Test_VC_Custom_UpdateDestination_Nominal"); - UtTest_Add(Test_VC_Custom_UpdateDestination_Fail, VC_Custom_Transmit_Test_Setup, - VC_Custom_Transmit_Test_TearDown, "Test_VC_Custom_UpdateDestination_Fail"); - UtTest_Add(Test_VC_Custom_DisableChannel_Fail, VC_Custom_Transmit_Test_Setup, - VC_Custom_Transmit_Test_TearDown, "Test_VC_Custom_DisableChannel_Fail"); - UtTest_Add(Test_VC_Custom_DisableChannel_Nominal, VC_Custom_Transmit_Test_Setup, - VC_Custom_Transmit_Test_TearDown, "Test_VC_Custom_DisableChannel_Nominal"); - UtTest_Add(Test_VC_Custom_TransmitUninit_Nominal, VC_Custom_Transmit_Test_Setup, - VC_Custom_Transmit_Test_TearDown, "Test_VC_Custom_TransmitUninit_Nominal"); -} diff --git a/config/ocpoc/quadx/target/apps/vc/unit_test/vc_transmit_udp_test/vc_app_custom_transmit_test.h b/config/ocpoc/quadx/target/apps/vc/unit_test/vc_transmit_udp_test/vc_app_custom_transmit_test.h deleted file mode 100644 index 732cc8812..000000000 --- a/config/ocpoc/quadx/target/apps/vc/unit_test/vc_transmit_udp_test/vc_app_custom_transmit_test.h +++ /dev/null @@ -1,48 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ - -#ifndef VC_APP_CUSTOM_TRANSMIT_TEST_H -#define VC_APP_CUSTOM_TRANSMIT_TEST_H - -#ifdef __cplusplus -extern "C" { -#endif - -void VC_Custom_App_Transmit_Test_AddTestCases(void); - - -#ifdef __cplusplus -} -#endif - -#endif /* VC_APP_CUSTOM_TRANSMIT_TEST_H */ diff --git a/config/ocpoc/quadx/target/apps/vc/unit_test/vc_transmit_udp_test/vc_custom_transmit_test_utils.c b/config/ocpoc/quadx/target/apps/vc/unit_test/vc_transmit_udp_test/vc_custom_transmit_test_utils.c deleted file mode 100644 index 5c3a803bb..000000000 --- a/config/ocpoc/quadx/target/apps/vc/unit_test/vc_transmit_udp_test/vc_custom_transmit_test_utils.c +++ /dev/null @@ -1,76 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ - -#include "vc_custom_transmit_test_utils.h" -#include "vc_platform_stubs.h" - -#include "ut_cfe_evs_hooks.h" -#include "ut_cfe_time_stubs.h" -#include "ut_cfe_psp_memutils_stubs.h" -#include "ut_cfe_tbl_stubs.h" -#include "ut_cfe_tbl_hooks.h" -#include "ut_cfe_fs_stubs.h" -#include "ut_cfe_time_stubs.h" -#include "ut_osapi_stubs.h" -#include "ut_osfileapi_stubs.h" -#include "ut_cfe_sb_stubs.h" -#include "ut_cfe_es_stubs.h" -#include "ut_cfe_evs_stubs.h" - -#include - -/* - * Function Definitions - */ - -void VC_Custom_Transmit_Test_Setup(void) -{ - /* initialize test environment to default state for every test */ - - CFE_PSP_MemSet(&VC_AppCustomData, 0x00, sizeof(VC_AppCustomData_t)); - - Ut_CFE_EVS_Reset(); - Ut_CFE_FS_Reset(); - Ut_CFE_TIME_Reset(); - Ut_CFE_TBL_Reset(); - Ut_CFE_SB_Reset(); - Ut_CFE_ES_Reset(); - Ut_OSAPI_Reset(); - Ut_OSFILEAPI_Reset(); -} - -void VC_Custom_Transmit_Test_TearDown(void) { - - CFE_PSP_MemSet(&VC_AppCustomData, 0x00, sizeof(VC_AppCustomData_t)); - CFE_PSP_MemSet(&VC_Platform_Stubs_Returns, 0x00, sizeof(VC_Platform_Stubs_Returns_t)); -} diff --git a/config/ocpoc/quadx/target/apps/vc/unit_test/vc_transmit_udp_test/vc_custom_transmit_test_utils.h b/config/ocpoc/quadx/target/apps/vc/unit_test/vc_transmit_udp_test/vc_custom_transmit_test_utils.h deleted file mode 100644 index 81cd02415..000000000 --- a/config/ocpoc/quadx/target/apps/vc/unit_test/vc_transmit_udp_test/vc_custom_transmit_test_utils.h +++ /dev/null @@ -1,61 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ - -#ifndef VC_CUSTOM_TRANSMIT_TEST_UTILS_H -#define VC_CUSTOM_TRANSMIT_TEST_UTILS_H - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * Includes - */ - -#include "vc_transmit_udp.h" - - -extern VC_AppCustomData_t VC_AppCustomData; -/* - * Function Definitions - */ - -void VC_Custom_Transmit_Test_Setup(void); -void VC_Custom_Transmit_Test_TearDown(void); - - -#ifdef __cplusplus -} -#endif - -#endif /* VC_CUSTOM_TRANSMIT_TEST_UTILS_H */ diff --git a/config/ocpoc/quadx/target/cfe_es_startup.scr b/config/ocpoc/quadx/target/cfe_es_startup.scr index e4ce15b4f..9315ae5f7 100644 --- a/config/ocpoc/quadx/target/cfe_es_startup.scr +++ b/config/ocpoc/quadx/target/cfe_es_startup.scr @@ -6,6 +6,7 @@ CFE_APP, /cf/apps/SENS.so, SENS_AppMain, SENS, 52, 327680, 0x0, 0, CFE_APP, /cf/apps/MPU9250.so, MPU9250_AppMain, MPU9250, 46, 327680, 0x0, 0, 2; CFE_APP, /cf/apps/HMC5883.so, HMC5883_AppMain, HMC5883, 49, 327680, 0x0, 0, 2; CFE_APP, /cf/apps/MS5611.so, MS5611_AppMain, MS5611, 82, 327680, 0x0, 0, 2; +CFE_APP, /cf/apps/ULR.so, ULR_AppMain, ULR, 67, 327680, 0x0, 0, 2; CFE_APP, /cf/apps/MAC.so, MAC_AppMain, MAC, 55, 327680, 0x0, 0, 4; CFE_APP, /cf/apps/GPS.so, GPS_AppMain, GPS, 97, 327680, 0x0, 0, 2; CFE_APP, /cf/apps/CI.so, CI_AppMain, CI, 115, 327680, 0x0, 0, 2; diff --git a/config/ocpoc/s1000/inc/ae_platform_cfg.h b/config/ocpoc/s1000/inc/ae_platform_cfg.h deleted file mode 100644 index 0cd966dd5..000000000 --- a/config/ocpoc/s1000/inc/ae_platform_cfg.h +++ /dev/null @@ -1,122 +0,0 @@ -#ifndef AE_PLATFORM_CFG_H -#define AE_PLATFORM_CFG_H - -#ifdef __cplusplus -extern "C" { -#endif - -/* -** AE Platform Configuration Parameter Definitions -*/ - -/** \brief Mission specific version number for AE application -** -** \par Description: -** An application version number consists of four parts: -** major version number, minor version number, revision -** number and mission specific revision number. The mission -** specific revision number is defined here and the other -** parts are defined in "amc_version.h". -** -** \par Limits: -** Must be defined as a numeric value that is greater than -** or equal to zero. -*/ -#define AE_MISSION_REV (0) - -/** \brief Pipe depth for the Scheduler pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define AE_SCH_PIPE_DEPTH (2) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define AE_SCH_PIPE_NAME ("AE_SCH_PIPE") - -/** \brief The SB pend behavior type for the Scheduler pipe. -** -** \par Limits: -** One of: CFE_SB_POLL, CFE_SB_PEND_FOREVER, or the -** number of milliseconds to wait for a new message (recommended). -** Note, using CFE_SB_PEND_FOREVER may cause an unresponsive -** application if no messages arrive on this pipe. -*/ -#define AE_SCH_PIPE_PEND_TIME (2000) - -/** \brief The number of WAKEUP messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max limited to CFE_SB_MAX_PIPE_DEPTH-1. Note the -** AE_WAKEUP_MID_MAX_MSG_COUNT and AE_SEND_HK_MID_MAX_MSG_COUNT -** must be less than AE_SCH_PIPE_DEPTH. -*/ -#define AE_WAKEUP_MID_MAX_MSG_COUNT (1) - -/** \brief The number of SEND_HK messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. Note the -** AE_WAKEUP_MID_MAX_MSG_COUNT and AE_SEND_HK_MID_MAX_MSG_COUNT -** must be less than AE_SCH_PIPE_DEPTH. -*/ -#define AE_SEND_HK_MID_MAX_MSG_COUNT (1) - -/** \brief Pipe depth for the command pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define AE_CMD_PIPE_DEPTH (4) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define AE_CMD_PIPE_NAME ("AE_CMD_PIPE") - -/** \brief Pipe depth for the data pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define AE_DATA_PIPE_DEPTH (4) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define AE_DATA_PIPE_NAME ("AE_DATA_PIPE") - -/** \brief The config table default filename -** -** \par Limits: -** The length of each string, including the NULL terminator cannot exceed -** the #OS_MAX_PATH_LEN value. -*/ -#define AE_CONFIG_TABLE_FILENAME ("/cf/apps/ae_config.tbl") - -/** \brief The timeout value, in milliseconds, to wait for ES application startup sync. -** -** \par Limits: -** This parameter must be at least 1000 (ms). -*/ -#define AE_STARTUP_TIMEOUT_MSEC (1000) - - -#ifdef __cplusplus -} -#endif - -#endif /* AE_PLATFORM_CFG_H */ - -/************************/ -/* End of File Comment */ -/************************/ - diff --git a/config/ocpoc/s1000/inc/amc_platform_cfg.h b/config/ocpoc/s1000/inc/amc_platform_cfg.h deleted file mode 100644 index e72128569..000000000 --- a/config/ocpoc/s1000/inc/amc_platform_cfg.h +++ /dev/null @@ -1,130 +0,0 @@ -#ifndef AMC_PLATFORM_CFG_H -#define AMC_PLATFORM_CFG_H - -#ifdef __cplusplus -extern "C" { -#endif - -/* -** amc Platform Configuration Parameter Definitions -*/ - -/** \brief Mission specific version number for AMC application -** -** \par Description: -** An application version number consists of four parts: -** major version number, minor version number, revision -** number and mission specific revision number. The mission -** specific revision number is defined here and the other -** parts are defined in "amc_version.h". -** -** \par Limits: -** Must be defined as a numeric value that is greater than -** or equal to zero. -*/ -#define AMC_MISSION_REV (0) - -/** \brief Pipe depth for the Scheduler pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define AMC_SCH_PIPE_DEPTH (15) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define AMC_SCH_PIPE_NAME ("AMC_SCH_PIPE") - -/** \brief The SB pend behavior type for the Scheduler pipe. -** -** \par Limits: -** One of: CFE_SB_POLL, CFE_SB_PEND_FOREVER, or the -** number of milliseconds to wait for a new message (recommended). -** Note, using CFE_SB_PEND_FOREVER may cause an unresponsive -** application if no messages arrive on this pipe. -*/ -#define AMC_SCH_PIPE_PEND_TIME (2000) - -/** \brief The number of WAKEUP messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max limited to CFE_SB_MAX_PIPE_DEPTH-1. Note the -** AMC_SCH_PIPE_WAKEUP_RESERVED and AMC_SCH_PIPE_SEND_HK_RESERVED -** must be less than AMC_SCH_PIPE_DEPTH. -*/ -#define AMC_SCH_PIPE_WAKEUP_RESERVED (1) - -/** \brief The number of SEND_HK messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. Note the -** AMC_SCH_PIPE_WAKEUP_RESERVED and AMC_SCH_PIPE_SEND_HK_RESERVED -** must be less than AMC_SCH_PIPE_DEPTH. -*/ -#define AMC_SCH_PIPE_SEND_HK_RESERVED (1) - -/** \brief Pipe depth for the command pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define AMC_CMD_PIPE_DEPTH (4) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define AMC_CMD_PIPE_NAME ("AMC_CMD_PIPE") - -/** \brief Pipe depth for the data pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define AMC_PARAM_PIPE_DEPTH (4) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define AMC_PARAM_PIPE_NAME ("AMC_PARAM_PIPE") - -/** \brief The config table default filename -** -** \par Limits: -** The length of each string, including the NULL terminator cannot exceed -** the #OS_MAX_PATH_LEN value. -*/ -#define AMC_PWM_CONFIG_TABLE_FILENAME ("/cf/apps/amc_pwmcfg.tbl") - -#define AMC_MIXER_CONFIG_TABLE_FILENAME ("/cf/apps/amc_mixercfg.tbl") - -/** \brief The timeout value, in milliseconds, to wait for ES application startup sync. -** -** \par Limits: -** This parameter must be at least 1000 (ms). -*/ -#define AMC_STARTUP_TIMEOUT_MSEC (1000) - -/* TODO: Add Doxygen markup. */ -#define AMC_MAX_MOTOR_OUTPUTS (8) - -#define AMC_MAX_PARAMS (3) - - - -#ifdef __cplusplus -} -#endif - -#endif /* AMC_PLATFORM_CFG_H */ - -/************************/ -/* End of File Comment */ -/************************/ - diff --git a/config/ocpoc/s1000/inc/bat_platform_cfg.h b/config/ocpoc/s1000/inc/bat_platform_cfg.h deleted file mode 100644 index 10a8ed217..000000000 --- a/config/ocpoc/s1000/inc/bat_platform_cfg.h +++ /dev/null @@ -1,112 +0,0 @@ -#ifndef BAT_PLATFORM_CFG_H -#define BAT_PLATFORM_CFG_H - -#ifdef __cplusplus -extern "C" { -#endif - -#define BAT_LISTENER_TASK_FLAGS OS_ENABLE_CORE_0 - -/* -** BAT Platform Configuration Parameter Definitions -*/ - -/** \brief Mission specific version number for BAT application -** -** \par Description: -** An application version number consists of four parts: -** major version number, minor version number, revision -** number and mission specific revision number. The mission -** specific revision number is defined here and the other -** parts are defined in "amc_version.h". -** -** \par Limits: -** Must be defined as a numeric value that is greater than -** or equal to zero. -*/ -#define BAT_MISSION_REV (0) - -/** \brief Pipe depth for the Scheduler pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define BAT_SCH_PIPE_DEPTH (3) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define BAT_SCH_PIPE_NAME ("BAT_SCH_PIPE") - -/** \brief The SB pend behavior type for the Scheduler pipe. -** -** \par Limits: -** One of: CFE_SB_POLL, CFE_SB_PEND_FOREVER, or the -** number of milliseconds to wait for a new message (recommended). -** Note, using CFE_SB_PEND_FOREVER may cause an unresponsive -** application if no messages arrive on this pipe. -*/ -#define BAT_SCH_PIPE_PEND_TIME (2000) - -/** \brief The number of WAKEUP messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max limited to CFE_SB_MAX_PIPE_DEPTH-1. Note the -** BAT_WAKEUP_MID_MAX_MSG_COUNT and BAT_SEND_HK_MID_MAX_MSG_COUNT -** must be less than BAT_SCH_PIPE_DEPTH. -*/ -#define BAT_WAKEUP_MID_MAX_MSG_COUNT (1) - -/** \brief The number of SEND_HK messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. Note the -** BAT_WAKEUP_MID_MAX_MSG_COUNT and BAT_SEND_HK_MID_MAX_MSG_COUNT -** must be less than BAT_SCH_PIPE_DEPTH. -*/ -#define BAT_SEND_HK_MID_MAX_MSG_COUNT (1) - -/** \brief Pipe depth for the command pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define BAT_CMD_PIPE_DEPTH (4) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define BAT_CMD_PIPE_NAME ("BAT_CMD_PIPE") - -/** \brief The config table default filename -** -** \par Limits: -** The length of each string, including the NULL terminator cannot exceed -** the #OS_MAX_PATH_LEN value. -*/ -#define BAT_CONFIG_TABLE_FILENAME ("/cf/apps/bat_config.tbl") - -/** \brief The timeout value, in milliseconds, to wait for ES application startup sync. -** -** \par Limits: -** This parameter must be at least 1000 (ms). -*/ -#define BAT_STARTUP_TIMEOUT_MSEC (1000) - -/** \brief BAT Child task stack size */ -#define BAT_LISTENER_TASK_STACK_SIZE (16000) - -#ifdef __cplusplus -} -#endif - -#endif /* BAT_PLATFORM_CFG_H */ - -/************************/ -/* End of File Comment */ -/************************/ - diff --git a/config/ocpoc/s1000/inc/cf_msgids.h b/config/ocpoc/s1000/inc/cf_msgids.h deleted file mode 100644 index 820de96d4..000000000 --- a/config/ocpoc/s1000/inc/cf_msgids.h +++ /dev/null @@ -1,10 +0,0 @@ -#ifndef CF_MSGIDS_H -#define CF_MSGIDS_H - -#include "msg_ids.h" - -#endif /* CF_MSGIDS_H */ - -/************************/ -/* End of File Comment */ -/************************/ diff --git a/config/ocpoc/s1000/inc/cf_platform_cfg.h b/config/ocpoc/s1000/inc/cf_platform_cfg.h deleted file mode 100644 index d99eaa728..000000000 --- a/config/ocpoc/s1000/inc/cf_platform_cfg.h +++ /dev/null @@ -1,373 +0,0 @@ -#ifndef CF_PLATFORM_CFG_H -#define CF_PLATFORM_CFG_H - -/************************************************************************* -** Macro definitions -**************************************************************************/ - -/** -** \cfcfg Application Pipe Depth -** -** \par Description: -** Dictates the pipe depth of the cf command pipe. -** -** \par Limits: -** The minimum size of this paramater is 1 -** The maximum size dictated by cFE platform configuration -** parameter is CFE_SB_MAX_PIPE_DEPTH -*/ -#define CF_PIPE_DEPTH 40 - - -/** -** \cfcfg Application Pipe Name -** -** \par Description: -** Dictates the pipe name of the cf command pipe. -** -** \par Limits: -** -*/ -#define CF_PIPE_NAME "CF_CMD_PIPE" - - -/** -** \cfcfg Maximum Simulataneous Transactions -** -** \par Description: -** Dictates max number of transactions (uplink and downlink) -** that can be in progress at any given time. -** -** \par Limits: -** -*/ -#define CF_MAX_SIMULTANEOUS_TRANSACTIONS 100 - - - -/** -** \cfcfg Uplink PDU Data Buffer Size -** -** \par Description: -** This parameter sets the statically allocated size (in bytes) of the -** incoming PDU buffer. This buffer will be used to hold the pdu hdr and -** data portion of the incoming PDUs. Incoming PDUs are enclosed in a CCSDS -** packet. This parameter should not include the size of the CCSDS pkt hdr. -** -** \par Limits: -** Must be greater than or equal to the sum of the ground engine parameter -** outgoing-file-chunk-size, pdu hdr size and the 4 bytes of 'offset' in -** file-data pdus. Upper limit of 64K derived from 16 bit PDU header field -** named 'PDU Data Field Length'. -** This parameter must be less-than or equal-to the outgoing pdu buffer. -** -** -*/ -#define CF_INCOMING_PDU_BUF_SIZE 512 - - - -/** -** \cfcfg Outgoing PDU Data Buffer Size -** -** \par Description: -** This parameter sets the statically allocated size (in bytes) of the -** outgoing PDU buffer. This buffer will be used to hold the pdu hdr and -** data portion of the outgoing PDUs. Outgoing PDUs are enclosed in a CCSDS -** packet. This parameter should not include the size of the CCSDS pkt hdr. -** -** \par Limits: -** This parameter will put an upper limit on the table parameter -** 'outgoing_file_chunk_size'. The max 'outgoing_file_chunk_size' allowed -** will be CF_OUTGOING_PDU_BUF_SIZE - (12 + 4) The 12 and 4 are pdu hdr -** size and offset field in file-data pdu, respectively. -** This parameter has an upper limit of 64K derived from 16 bit PDU header -** field named 'PDU Data Field Length'. -** This parameter must be greater-than or equal-to the incoming pdu buffer. -** -** -*/ -#define CF_OUTGOING_PDU_BUF_SIZE 2048 - - -/** -** \cfcfg Path name and file prefix of the engine temp files -** -** \par Description: -** The receiving engine constructs all files in a temporary file. This -** parameter specifies the path and base filename of the temporary files. -** The engine appends a sequence number to this parameter to get a complete -** filename. -** -** \par Limits: -** - The length of this string, including the NULL terminator cannot exceed -** the #OS_MAX_PATH_LEN value. -** - The last character should not be a slash. -** -*/ -#define CF_ENGINE_TEMP_FILE_PREFIX "/ram/cftmp" - -/** -** \cfcfg Name of the CF Configuration Table -** -** \par Description: -** This parameter defines the name of the CF Configuration Table. -** -** \par Limits -** The length of this string, including the NULL terminator cannot exceed -** the #OS_MAX_PATH_LEN value. -*/ -#define CF_CONFIG_TABLE_NAME "ConfigTable" - - -/** -** \cfcfg CF Configuration Table Filename -** -** \par Description: -** The value of this constant defines the filename of the CF Config Table -** -** \par Limits -** The length of this string, including the NULL terminator cannot exceed -** the #OS_MAX_PATH_LEN value. -*/ -#define CF_CONFIG_TABLE_FILENAME "/cf/apps/cf_cfgtable.tbl" - - -/** -** \cfcfg Number of Input Channels -** -** \par Description: -** Defines the number of input channels -** defined in the configuration table. Input channels were added to the -** design to support class 2 file receives from multiple peers. It is -** necessary for the code to know what output channel should be used for -** responses (ACK-EOF,NAK, etc) of incoming, class 2 transactions. -** Each input channel has a dedicated MsgId for incoming PDUs and an output -** channel for responses of class 2, file-receive transactions. -** -** \par Limits -** Lower Limit of 1, Upper limit of 255. -** -*/ -#define CF_NUM_INPUT_CHANNELS 1 - - -/** -** \cfcfg Max Number of Playback Output Channels -** -** \par Description: -** Defines the max number of playback output channels that may ever be -** defined in the configuration table. Refer to the configuration table for -** more details about playback output channels. -** -** \par Limits -** Lower Limit of 1, Upper limit of 255. -** -** \par Notes: -** The CF configuration table must have an entry for this number of -** playback channels, but some may be marked as not-in-use. This saves -** having to recompile and reload a new CF Application when a playback -** channel is added. -*/ -#define CF_MAX_PLAYBACK_CHANNELS 2 - - -/** -** \cfcfg Max Number of Polling(Hot) Directories per Playback Output Channel -** -** \par Description: -** Defines the max number of polling directories that may ever be defined -** in the configuration table. A polling directory is a directory that -** is periodically checked for playback files. Files found in the polling -** directory are immediately placed on the playback pending queue for -** downlink. -** -** \par Limits: -** Lower limit of 1, Upper limit of 255. -** -** \par Notes: -** The CF configuration table must have an entry for this number of polling -** directories, but some may be marked as not-in-use. This saves having to -** recompile and reload a new CF Application when a polling directory is -** added. -** -*/ -#define CF_MAX_POLLING_DIRS_PER_CHAN 8 - - -/** -** \cfcfg Number of bytes in the CF Memory Pool -** -** \par Description: -** The CF memory pool contains the memory needed to hold information for -** each transaction. The info for each transaction is defined by a -** CF_QueueEntry_t. The number of CF_QueueEntry_t's needed is based on: -** -** UplinkHistoryQDepth + CF_MAX_SIMULTANEOUS_TRANSACTIONS + -** ((CF_MAX_PLAYBACK_CHANNELS * (PendingQDepth + HistoryQDepth)) -** -** Lower case variables are defined in config table, upper case params are -** defined in platform config file (cf_platform_cfg.h) -** -** See CF Housekeeping page for memory utilization details -** -** -** \par Limits -** Lower Limit of 256, Upper limit of 4 Gigabytes -*/ -#define CF_MEMORY_POOL_BYTES 32768 - - -/** -** \cfcfg Default Queue Information Filename -** -** \par Description: -** The value of this constant defines the filename used to store the CF -** queue information. This filename is used only when no filename is -** specified in the command. -** -** \par Limits -** The length of each string, including the NULL terminator cannot exceed -** the OS_MAX_PATH_LEN value. -*/ -#define CF_DEFAULT_QUEUE_INFO_FILENAME "/ram/cf_queue_info.dat" - - -/** -** \cfcfg CF Event Filtering -** -** \par Description: -** This group of configuration parameters dictates what CF events will be -** filtered through EVS. The filtering will begin after the CF app -** initializes and stay in effect until changed via EVS command. -** Mark all unused event Id values and mask values to zero -** eg. #define CF_FILTERED_EVENT1 0 -** #define CF_FILTER_MASK1 0 -** To filter the event, set the mask value to CFE_EVS_FIRST_ONE_STOP -** To disable filtering of the event, set mask value to CFE_EVS_NO_FILTER -** -** \par Limits -** These parameters have a lower limit of 0 and an upper limit of 65535. -*/ - -#define CF_FILTERED_EVENT1 CF_IN_TRANS_START_EID -#define CF_FILTER_MASK1 CFE_EVS_NO_FILTER - -#define CF_FILTERED_EVENT2 CF_IN_TRANS_OK_EID -#define CF_FILTER_MASK2 CFE_EVS_NO_FILTER - -#define CF_FILTERED_EVENT3 CF_OUT_TRANS_START_EID -#define CF_FILTER_MASK3 CFE_EVS_NO_FILTER - -#define CF_FILTERED_EVENT4 CF_OUT_TRANS_OK_EID -#define CF_FILTER_MASK4 CFE_EVS_NO_FILTER - -#define CF_FILTERED_EVENT5 0 -#define CF_FILTER_MASK5 CFE_EVS_NO_FILTER - -#define CF_FILTERED_EVENT6 0 -#define CF_FILTER_MASK6 CFE_EVS_NO_FILTER - -#define CF_FILTERED_EVENT7 0 -#define CF_FILTER_MASK7 CFE_EVS_NO_FILTER - -#define CF_FILTERED_EVENT8 0 -#define CF_FILTER_MASK8 CFE_EVS_NO_FILTER - - - -/** -** \cfcfg Time to wait for all apps to be started (in milliseconds) -** -** \par Description: -** Dictates the timeout for the #CFE_ES_WaitForStartupSync call that -** CF uses to ensure that TO or the downlink App has completed it's -** initialization which includes creating the semaphore needed by CF. -** -** \par Limits -** This parameter can't be larger than an unsigned 32 bit -** integer (4294967295). -** -** This should be greater than or equal to the Startup Sync timeout for -** any application in the Application Monitor Table. -*/ -#define CF_STARTUP_SYNC_TIMEOUT 65000 - - -/** -** \cfcfg Use fixed size packets (for outgoing PDUs) or not. -** -** \par Description: -** When sending PDUs, CF can be configured to place the PDUs in fixed-size -** pkts or let the PDU size determine the pkt size. The value defined -** must correspond to the CCSDS Total Message size which includes the PDU -** header, the CCSDS header and data. -** Set this value to 0 for variable pkt sizes. -** -** \par Limits -** This parameter can't be larger than CFE_SB_MAX_SB_MSG_SIZE (typically -** set to 32K or 64K bytes) -** -** If non-zero, this should be greater than or equal to the size needed to -** hold the largest PDU expected to be sent by the engine (typically a -** file data PDU which is derived from the CF table cfg param -** "OutgoingFileChunkSize"). -*/ -#define CF_SEND_FIXED_SIZE_PKTS 0 - - -/** -** \cfcfg Auto-Suspend, max transactions to suspend -** -** \par Description: -** When auto suspend is enabled, after EOF is sent the transaction number -** is logged in a buffer. The buffer size is defined in this parameter. -** After the following wakeup cmd is received, cF will check this buffer -** for transactions to suspend. They cannot be suspended at the time the -** EOF is sent because the engine is not designed to re-entrant. -** -** \par Limits -** This parameter must be greater than zero and can't be larger than an -** unsigned 32 bit integer (4294967295). -*/ -#define CF_AUTOSUSPEND_MAX_TRANS 1 - - - - -/** \cfcfg Mission specific version number for CF application -** -** \par Description: -** An application version number consists of four parts: -** major version number, minor version number, revision -** number and mission specific revision number. The mission -** specific revision number is defined here and the other -** parts are defined in "cf_version.h". -** -** \par Limits: -** Must be defined as a numeric value that is greater than -** or equal to zero. -*/ -#define CF_MISSION_REV 0 - - -/** \cfcfg Compile-time debug switch for CF application -** -** \par Description: -** CF_DEBUG should NOT be defined under normal conditions. It is to be used -** as a safety net during development, when a uart terminal is connected to -** the processor. When the code is compiled with CF_DEBUG defined, the code -** will issue OS_printfs in areas that would otherwise be quiet. -** -** \par Limits: -** Must be defined or commented out. -*/ -/* #define CF_DEBUG */ - - - -#endif /* CF_PLATFORM_CFG_H */ - -/************************/ -/* End of File Comment */ -/************************/ diff --git a/config/ocpoc/s1000/inc/cfe_msgids.h b/config/ocpoc/s1000/inc/cfe_msgids.h deleted file mode 100644 index 5a7b5231d..000000000 --- a/config/ocpoc/s1000/inc/cfe_msgids.h +++ /dev/null @@ -1,58 +0,0 @@ -#ifndef CFE_MSGIDS_H -#define CFE_MSGIDS_H - -/* -** Includes -*/ - -#include "cfe_mission_cfg.h" - -/* -** cFE Command Message Id's -*/ -#define CFE_EVS_CMD_MID CFE_CMD_MID_BASE_CPU1 + CFE_EVS_CMD_MSG /* 0x1801 */ - /* Message ID 0x1802 is available */ -#define CFE_SB_CMD_MID CFE_CMD_MID_BASE_CPU1 + CFE_SB_CMD_MSG /* 0x1803 */ -#define CFE_TBL_CMD_MID CFE_CMD_MID_BASE_CPU1 + CFE_TBL_CMD_MSG /* 0x1804 */ -#define CFE_TIME_CMD_MID CFE_CMD_MID_BASE_CPU1 + CFE_TIME_CMD_MSG /* 0x1805 */ -#define CFE_ES_CMD_MID CFE_CMD_MID_BASE_CPU1 + CFE_ES_CMD_MSG /* 0x1806 */ - -#define CFE_ES_SEND_HK_MID CFE_CMD_MID_BASE_CPU1 + CFE_ES_SEND_HK_MSG /* 0x1808 */ -#define CFE_EVS_SEND_HK_MID CFE_CMD_MID_BASE_CPU1 + CFE_EVS_SEND_HK_MSG /* 0x1809 */ - /* Message ID 0x180A is available */ -#define CFE_SB_SEND_HK_MID CFE_CMD_MID_BASE_CPU1 + CFE_SB_SEND_HK_MSG /* 0x180B */ -#define CFE_TBL_SEND_HK_MID CFE_CMD_MID_BASE_CPU1 + CFE_TBL_SEND_HK_MSG /* 0x180C */ -#define CFE_TIME_SEND_HK_MID CFE_CMD_MID_BASE_CPU1 + CFE_TIME_SEND_HK_MSG /* 0x180D */ - -#define CFE_TIME_TONE_CMD_MID CFE_CMD_MID_BASE_CPU1 + CFE_TIME_TONE_CMD_MSG /* 0x1810 */ -#define CFE_TIME_1HZ_CMD_MID CFE_CMD_MID_BASE_CPU1 + CFE_TIME_1HZ_CMD_MSG /* 0x1811 */ - - -/* -** cFE Global Command Message Id's -*/ -#define CFE_TIME_DATA_CMD_MID CFE_CMD_MID_BASE_GLOB + CFE_TIME_DATA_CMD_MSG /* 0x1860 */ -#define CFE_TIME_FAKE_CMD_MID CFE_CMD_MID_BASE_GLOB + CFE_TIME_FAKE_CMD_MSG /* 0x1861 */ -#define CFE_TIME_SEND_CMD_MID CFE_CMD_MID_BASE_GLOB + CFE_TIME_SEND_CMD_MSG /* 0x1862 */ - - -/* -** CFE Telemetry Message Id's -*/ -#define CFE_ES_HK_TLM_MID CFE_TLM_MID_BASE_CPU1 + CFE_ES_HK_TLM_MSG /* 0x0800 */ -#define CFE_EVS_HK_TLM_MID CFE_TLM_MID_BASE_CPU1 + CFE_EVS_HK_TLM_MSG /* 0x0801 */ - /* Message ID 0x0802 is available */ -#define CFE_SB_HK_TLM_MID CFE_TLM_MID_BASE_CPU1 + CFE_SB_HK_TLM_MSG /* 0x0803 */ -#define CFE_TBL_HK_TLM_MID CFE_TLM_MID_BASE_CPU1 + CFE_TBL_HK_TLM_MSG /* 0x0804 */ -#define CFE_TIME_HK_TLM_MID CFE_TLM_MID_BASE_CPU1 + CFE_TIME_HK_TLM_MSG /* 0x0805 */ -#define CFE_TIME_DIAG_TLM_MID CFE_TLM_MID_BASE_CPU1 + CFE_TIME_DIAG_TLM_MSG /* 0x0806 */ -#define CFE_EVS_EVENT_MSG_MID CFE_TLM_MID_BASE_CPU1 + CFE_EVS_EVENT_MSG_MSG /* 0x0808 */ -#define CFE_SB_STATS_TLM_MID CFE_TLM_MID_BASE_CPU1 + CFE_SB_STATS_TLM_MSG /* 0x080A */ -#define CFE_ES_APP_TLM_MID CFE_TLM_MID_BASE_CPU1 + CFE_ES_APP_TLM_MSG /* 0x080B */ -#define CFE_TBL_REG_TLM_MID CFE_TLM_MID_BASE_CPU1 + CFE_TBL_REG_TLM_MSG /* 0x080C */ -#define CFE_SB_ALLSUBS_TLM_MID CFE_TLM_MID_BASE_CPU1 + CFE_SB_ALLSUBS_TLM_MSG /* 0x080D */ -#define CFE_SB_ONESUB_TLM_MID CFE_TLM_MID_BASE_CPU1 + CFE_SB_ONESUB_TLM_MSG /* 0x080E */ -#define CFE_ES_SHELL_TLM_MID CFE_TLM_MID_BASE_CPU1 + CFE_ES_SHELL_TLM_MSG /* 0x080F */ -#define CFE_ES_MEMSTATS_TLM_MID CFE_TLM_MID_BASE_CPU1 + CFE_ES_MEMSTATS_TLM_MSG /* 0x0810 */ - -#endif diff --git a/config/ocpoc/s1000/inc/cfe_platform_cfg.h b/config/ocpoc/s1000/inc/cfe_platform_cfg.h deleted file mode 100644 index aa22ccd6b..000000000 --- a/config/ocpoc/s1000/inc/cfe_platform_cfg.h +++ /dev/null @@ -1,1770 +0,0 @@ -#ifndef CFE_PLATFORM_CFG_H -#define CFE_PLATFORM_CFG_H - -/* -** Allow reference to CFE_SPACECRAFT_ID (see CFE_TBL_VALID_ definitions below) -*/ -#include "cfe_mission_cfg.h" - -/* -** CPU Id for target Processor -*/ -#define CFE_CPU_ID 1 - -/* -** CPU Name for target Processor -*/ -#define CFE_CPU_NAME "CPU1" - -/** -** \cfesbcfg Maximum Number of Unique Message IDs SB Routing Table can hold -** -** \par Description: -** Dictates the maximum number of unique MsgIds the SB routing table will hold. -** This constant has a direct affect on the size of SB's tables and arrays. -** Keeping this count as low as possible will save memory. -** To see the run-time, high-water mark and the current utilization figures -** regarding this parameter, send an SB command to 'Send Statistics Pkt'. -** -** \par Limits -** This parameter has a lower limit of 1 and an upper limit of 1024. -** -*/ -#define CFE_SB_MAX_MSG_IDS 256 - - -/** -** \cfesbcfg Maximum Number of Unique Pipes SB Routing Table can hold -** -** \par Description: -** Dictates the maximum number of unique Pipes the SB routing table will hold. -** This constant has a direct affect on the size of SB's tables and arrays. -** Keeping this count as low as possible will save memory. -** To see the run-time, high-water mark and the current utilization figures -** regarding this parameter, send an SB command to 'Send Statistics Pkt'. -** -** \par Limits -** This parameter has a lower limit of 1 and an upper limit of 255. -** This parameter must also be less than or equal to OS_MAX_QUEUES -** -*/ -#define CFE_SB_MAX_PIPES 255 - - -/** -** \cfesbcfg Maximum Number of unique local destinations a single MsgId can have -** -** \par Description: -** Dictates the maximum number of unique local destinations a single MsgId can -** have. -** -** \par Limits -** This parameter has a lower limit of 1 and an upper limit of 64. -** -*/ -#define CFE_SB_MAX_DEST_PER_PKT 16 - - -/** -** \cfesbcfg Default Subscription Message Limit -** -** \par Description: -** Dictates the default Message Limit when using the #CFE_SB_Subscribe API. This will -** limit the number of messages with a specific message ID that can be received through -** a subscription. This only changes the default; other message limits can be set on a per -** subscription basis using #CFE_SB_SubscribeEx . -** -** \par Limits -** This parameter has a lower limit of 4 and an upper limit of 65535. -** -*/ -#define CFE_SB_DEFAULT_MSG_LIMIT 4 - - -/** -** \cfesbcfg Size of the SB buffer memory pool -** -** \par Description: -** Dictates the size of the SB memory pool. For each message the SB -** sends, the SB dynamically allocates from this memory pool, the memory needed -** to process the message. The memory needed to process each message is msg -** size + msg descriptor(#CFE_SB_BufferD_t). This memory pool is also used -** to allocate destination descriptors (#CFE_SB_DestinationD_t) during the -** subscription process. -** To see the run-time, high-water mark and the current utilization figures -** regarding this parameter, send an SB command to 'Send Statistics Pkt'. -** Some memory statistics have been added to the SB housekeeping packet. -** NOTE: It is important to monitor these statistics to ensure the desired -** memory margin is met. -** -** \par Limits -** This parameter has a lower limit of 512 and an upper limit 4.29G bytes. -** -*/ -#define CFE_SB_BUF_MEMORY_BYTES 524288 - - -/** -** \cfesbcfg Maximum depth allowed when creating an SB pipe -** -** \par Description: -** The value of this constant dictates the maximum pipe depth that an -** application may request. The pipe depth is given as a paramter in the -** #CFE_SB_CreatePipe API. -** -** \par Limits -** This parameter has a lower limit of 1 and an upper limit of 65535. -*/ -#define CFE_SB_MAX_PIPE_DEPTH 256 - - -/** -** \cfesbcfg Highest Valid Message Id -** -** \par Description: -** The value of this constant dictates the size of the SB message map. The SB -** messsage map is a lookup table that provides the routing table index for -** fast access into the routing table.The default setting of 0x1FFF was chosen -** to save memory for CCSDS implementations where the CCSDS Version number -** (3 MSB's of MsgId) would remain constant throughout the mission. This -** reduces the message map from 128Kbytes to 16Kbytes.See CFE_FSW_DCR 504 for -** more details. -** -** \par Limits -** This parameter has a lower limit of 1 and an upper limit of 0xFFFF. -*/ -#define CFE_SB_HIGHEST_VALID_MSGID 0x1FFF - - -/** -** \cfesbcfg Default Routing Information Filename -** -** \par Description: -** The value of this constant defines the filename used to store the software -** bus routing information. This filename is used only when no filename is -** specified in the command. -** -** \par Limits -** The length of each string, including the NULL terminator cannot exceed the -** #OS_MAX_PATH_LEN value. -*/ -#define CFE_SB_DEFAULT_ROUTING_FILENAME "/ram/cfe_sb_route.dat" - - -/** -** \cfesbcfg Default Pipe Information Filename -** -** \par Description: -** The value of this constant defines the filename used to store the software -** bus pipe information. This filename is used only when no filename is -** specified in the command. -** -** \par Limits -** The length of each string, including the NULL terminator cannot exceed the -** #OS_MAX_PATH_LEN value. -*/ -#define CFE_SB_DEFAULT_PIPE_FILENAME "/ram/cfe_sb_pipe.dat" - - -/** -** \cfesbcfg Default Message Map Filename -** -** \par Description: -** The value of this constant defines the filename used to store the software -** bus message map information. This filename is used only when no filename is -** specified in the command. The message map is a lookup table (array of 16bit -** words) that has an element for each possible MsgId value and holds the -** routing table index for that MsgId. The Msg Map provides fast access to the -** destinations of a message. -** -** \par Limits -** The length of each string, including the NULL terminator cannot exceed the -** #OS_MAX_PATH_LEN value. -*/ -#define CFE_SB_DEFAULT_MAP_FILENAME "/ram/cfe_sb_msgmap.dat" - - -/** -** \cfesbcfg SB Event Filtering -** -** \par Description: -** This group of configuration paramters dictates what SB events will be -** filtered through EVS. The filtering will begin after the SB task initializes -** and stay in effect until a cmd to EVS changes it. -** This allows the operator to set limits on the number of event messages that -** are sent during system initialization. -** NOTE: Set all unused event values and mask values to zero -** -** \par Limits -** This filtering applies only to SB events. -** These parameters have a lower limit of 0 and an upper limit of 65535. -*/ -#define CFE_SB_FILTERED_EVENT1 CFE_SB_SEND_NO_SUBS_EID -#define CFE_SB_FILTER_MASK1 CFE_EVS_FIRST_4_STOP - -#define CFE_SB_FILTERED_EVENT2 CFE_SB_DUP_SUBSCRIP_EID -#define CFE_SB_FILTER_MASK2 CFE_EVS_FIRST_4_STOP - -#define CFE_SB_FILTERED_EVENT3 CFE_SB_MSGID_LIM_ERR_EID -#define CFE_SB_FILTER_MASK3 CFE_EVS_FIRST_16_STOP - -#define CFE_SB_FILTERED_EVENT4 CFE_SB_Q_FULL_ERR_EID -#define CFE_SB_FILTER_MASK4 CFE_EVS_FIRST_16_STOP - -#define CFE_SB_FILTERED_EVENT5 0 -#define CFE_SB_FILTER_MASK5 CFE_EVS_NO_FILTER - -#define CFE_SB_FILTERED_EVENT6 0 -#define CFE_SB_FILTER_MASK6 CFE_EVS_NO_FILTER - -#define CFE_SB_FILTERED_EVENT7 0 -#define CFE_SB_FILTER_MASK7 CFE_EVS_NO_FILTER - -#define CFE_SB_FILTERED_EVENT8 0 -#define CFE_SB_FILTER_MASK8 CFE_EVS_NO_FILTER - - -/** -** \cfeescfg Define SB Memory Pool Block Sizes -** -** \par Description: -** Software Bus Memory Pool Block Sizes -** -** \par Limits -** These sizes MUST be increasing and MUST be an integral multiple of 4. -** The number of block sizes defined cannot exceed -** #CFE_ES_MAX_MEMPOOL_BLOCK_SIZES -*/ -#define CFE_SB_MEM_BLOCK_SIZE_01 8 -#define CFE_SB_MEM_BLOCK_SIZE_02 16 -#define CFE_SB_MEM_BLOCK_SIZE_03 20 -#define CFE_SB_MEM_BLOCK_SIZE_04 36 -#define CFE_SB_MEM_BLOCK_SIZE_05 64 -#define CFE_SB_MEM_BLOCK_SIZE_06 96 -#define CFE_SB_MEM_BLOCK_SIZE_07 128 -#define CFE_SB_MEM_BLOCK_SIZE_08 160 -#define CFE_SB_MEM_BLOCK_SIZE_09 256 -#define CFE_SB_MEM_BLOCK_SIZE_10 512 -#define CFE_SB_MEM_BLOCK_SIZE_11 1024 -#define CFE_SB_MEM_BLOCK_SIZE_12 2048 -#define CFE_SB_MEM_BLOCK_SIZE_13 4096 -#define CFE_SB_MEM_BLOCK_SIZE_14 8192 -#define CFE_SB_MEM_BLOCK_SIZE_15 16384 -#define CFE_SB_MEM_BLOCK_SIZE_16 32768 -#define CFE_SB_MAX_BLOCK_SIZE (CFE_SB_MAX_SB_MSG_SIZE + 40) - -/** -** \cfesbcfg Define Default Sender Information Storage Mode -** -** \par Description: -** Defines the default mode for the storing of sender information when sending -** a software bus message. If set to 1, the sender information will be stored. -** If set to 0, the sender information will not be stored. -** -** \par Limits -** There is a lower limit of 0 and an upper limit of 1 on this configuration -** paramater. -*/ -#define CFE_SB_DEFAULT_REPORT_SENDER 1 - - -/** -** \cfetimecfg Time Server or Time Client Selection -** -** \par Description: -** This configuration parameter selects whether the Time task functions as a -** time "server" or "client". A time server generates the "time at the tone" -** packet which is received by time clients. -** -** \par Limits -** Enable one, and only one by defining either CFE_TIME_CFG_SERVER or -** CFE_TIME_CFG_CLIENT AS TRUE. The other must be defined as FALSE. -*/ -#define CFE_TIME_CFG_SERVER TRUE -#define CFE_TIME_CFG_CLIENT FALSE - -/** -** \cfetimecfg Local MET or Virtual MET Selection for Time Servers -** -** \par Description: -** Depending on the specific hardware system configuration, it may be possible -** for Time Servers to read the "local" MET from a h/w register rather than -** having to track the MET as the count of tone signal interrupts (virtual MET) -** -** Time Clients must be defined as using a virtual MET. Also, a Time Server -** cannot be defined as having both a h/w MET and an external time source (they -** both cannot synchronize to the same tone). -** -** Note: "disable" this define (set to FALSE) only for Time Servers with local hardware -** that supports a h/w MET that is synchronized to the tone signal !!! -** -** \par Limits -** Only applies if #CFE_TIME_CFG_SERVER is set to TRUE. -*/ -#define CFE_TIME_CFG_VIRTUAL TRUE - - -/** -** \cfetimecfg Include or Exclude the Primary/Redundant Tone Selection Cmd -** -** \par Description: -** Depending on the specific hardware system configuration, it may be possible -** to switch between a primary and redundant tone signal. If supported by -** hardware, this definitions will enable command interfaces to select the -** active tone signal. Both Time Clients and Time Servers support this feature. -** Note: Set the CFE_TIME_CFG_SIGNAL define to TRUE to enable tone signal commands. -** -** \par Limits -** Not Applicable -*/ -#define CFE_TIME_CFG_SIGNAL FALSE - - -/** -** \cfetimecfg Include or Exclude the Internal/External Time Source Selection Cmd -** -** \par Description: -** By default, Time Servers maintain time using an internal MET which may be a -** h/w register or software counter, depending on available hardware. The -** following definition enables command interfaces to switch between an -** internal MET, or external time data received from one of several supported -** external time sources. Only a Time Server may be configured to use external -** time data. -** Note: Set the CFE_TIME_CFG_SOURCE define to TRUE to include the Time Source -** Selection Command (command allows selection between the internal -** or external time source). Then choose the external source with the -** CFE_TIME_CFG_SRC_??? define. -** -** \par Limits -** Only applies if #CFE_TIME_CFG_SERVER is set to TRUE. -*/ -#define CFE_TIME_CFG_SOURCE FALSE - - -/** -** \cfetimecfg Choose the External Time Source for Server only -** -** \par Description: -** If #CFE_TIME_CFG_SOURCE is set to TRUE, then one of the following external time -** source types must also be set to TRUE. Do not set any of the external time -** source types to TRUE unless #CFE_TIME_CFG_SOURCE is set to TRUE. -** -** \par Limits -** -# If #CFE_TIME_CFG_SOURCE is set to TRUE then one and only one of the following -** three external time sources can and must be set TRUE: -** #CFE_TIME_CFG_SRC_MET, #CFE_TIME_CFG_SRC_GPS, #CFE_TIME_CFG_SRC_TIME -** -# Only applies if #CFE_TIME_CFG_SERVER is set to TRUE. -*/ -#define CFE_TIME_CFG_SRC_MET FALSE -#define CFE_TIME_CFG_SRC_GPS FALSE -#define CFE_TIME_CFG_SRC_TIME FALSE - - -/** -** \cfetimecfg Define the Max Delta Limits for Time Servers using an Ext Time Source -** -** \par Description: -** If #CFE_TIME_CFG_SOURCE is set to TRUE and one of the external time sources is -** also set to TRUE, then the delta time limits for range checking is used. -** -** When a new time value is received from an external source, the value is -** compared against the "expected" time value. If the delta exceeds the -** following defined amount, then the new time data will be ignored. This range -** checking is only performed after the clock state has been commanded to -** "valid". Until then, external time data is accepted unconditionally. -** -** \par Limits -** Applies only if both #CFE_TIME_CFG_SERVER and #CFE_TIME_CFG_SOURCE are set -** to TRUE. -*/ -#define CFE_TIME_MAX_DELTA_SECS 0 -#define CFE_TIME_MAX_DELTA_SUBS 500000 - - -/** -** \cfetimecfg Define the Local Clock Rollover Value in seconds and subseconds -** -** \par Description: -** Specifies the capability of the local clock. Indicates the time at which -** the local clock rolls over. -** -** \par Limits -** Not Applicable -*/ -#define CFE_TIME_MAX_LOCAL_SECS 27 -#define CFE_TIME_MAX_LOCAL_SUBS 0 - - -/** -** \cfetimecfg Define Timing Limits From One Tone To The Next -** -** \par Description: -** Defines limits to the timing of the 1Hz tone signal. A tone signal is valid -** only if it arrives within one second (plus or minus the tone limit) from -** the previous tone signal.Units are microseconds as measured with the local -** clock. -** -** \par Limits -** Not Applicable -*/ -#define CFE_TIME_CFG_TONE_LIMIT 20000 - - - -/** -** \cfetimecfg Define Time to Start Flywheel Since Last Tone -** -** \par Description: -** Define time to enter flywheel mode (in seconds since last tone data update) -** Units are microseconds as measured with the local clock. -** -** \par Limits -** Not Applicable -*/ -#define CFE_TIME_CFG_START_FLY 2 - - -/** -** \cfetimecfg Define Periodic Time to Update Local Clock Tone Latch -** -** \par Description: -** Define Periodic Time to Update Local Clock Tone Latch. Applies only when -** in flywheel mode. This define dicates the period at which the simulated -** 'last tone' time is updated. Units are seconds. -** -** \par Limits -** Not Applicable -*/ -#define CFE_TIME_CFG_LATCH_FLY 8 - - -/** -** \cfetimecfg Define Maximum number of Time Synchronization Callbacks allowed -** -** \par Description: -** Define maximum number of Time Synchronization callback functions allowed. -** Each callback is called whenever cFE TIME receives a valid time synchronization -** signal (typically 1 Hz). -** -** \par Limits -** Not Applicable -*/ -#define CFE_TIME_MAX_NUM_SYNCH_FUNCS 4 - - -/** -** \cfetimecfg Enable (or disable) the 1HZ time command packet -** -** \par Description: -** Controls the generation of a packet that may be used as a 1HZ wakeup -** signal for applications that subscribe to CFE_TIME_1HZ_CMD_MID. -** Disable the packet to avoid 'no subscriber' errors that result from -** sending a packet when there are no subscribers to the packet. -** -** \par Limits -** Enable the 1HZ packet by setting #CFE_TIME_ENA_1HZ_CMD_PKT to TRUE. -** Disable the 1HZ packet by setting #CFE_TIME_ENA_1HZ_CMD_PKT to FALSE. -*/ -#define CFE_TIME_ENA_1HZ_CMD_PKT TRUE - - -/** -** \cfeescfg Define Max Number of Applications -** -** \par Description: -** Defines the maximum number of applications that can be loaded into the -** system. This number does not include child tasks. -** -** \par Limits -** There is a lower limit of 6 and an upper limit of 64 on this configuration -** paramater. The lower limit corresponds to the cFE internal applications. -*/ -#define CFE_ES_MAX_APPLICATIONS 64 - - -/** -** \cfeescfg Define Max Number of Shared libraries -** -** \par Description: -** Defines the maximum number of cFE Shared libraries that can be loaded into -** the system. -** -** \par Limits -** There is a lower limit of 1 and an upper limit of 64 on this configuration -** paramater. -*/ -#define CFE_ES_MAX_LIBRARIES 10 - -/** -** \cfeescfg Define Max Number of ER (Exception and Reset) log entries -** -** \par Description: -** Defines the maximum number of ER (Exception and Reset) log entries -** -** \par Limits -** There is a lower limit of 10 and an upper limit of 128 on this configuration -** paramater. -*/ -#define CFE_ES_ER_LOG_ENTRIES 20 - -/** \cfeescfg Maximum size of CPU Context in ES Error Log -** -** \par Description: -** This should be large enough to accommodate the CPU context -** information supplied by the PSP on the given platform. -** -** \par Limits: -** Must be greater than zero and a multiple of sizeof(uint32). -** Limited only by the available memory and the number of entries -** in the error log. Any context information beyond this size will -** be truncated. -*/ -#define CFE_ES_ER_LOG_MAX_CONTEXT_SIZE 128 - - -/** -** \cfeescfg Define Size of the cFE System Log. -** -** \par Description: -** Defines the size in bytes of the cFE system log. The system log holds -** variable length strings that are terminated by a linefeed and null -** character. -** -** \par Limits -** There is a lower limit of 512 and an upper limit of 16384 on this -** configuration paramater. -*/ -#define CFE_ES_SYSTEM_LOG_SIZE 3072 - - -/** -** \cfeescfg Define Number of entries in the ES Object table -** -** \par Description: -** Defines the number of entries in the ES Object table. This table controls -** the core cFE startup. -** -** \par Limits -** There is a lower limit of 15 and an upper limit of 50 on this configuration -** paramater. -*/ -#define CFE_ES_OBJECT_TABLE_SIZE 30 - - -/** -** \cfeescfg Define Max Number of Generic Counters -** -** \par Description: -** Defines the maximum number of Generic Counters that can be registered. -** -** \par Limits -** This parameter has a lower limit of 1 and an upper limit of 65535. -*/ -#define CFE_ES_MAX_GEN_COUNTERS 8 - - -/** -** \cfeescfg Define ES Application Control Scan Rate -** -** \par Description: -** ES Application Control Scan Rate. This parameter controls the speed that ES -** scans the Application Table looking for App Delete/Restart/Reload requests. -** All Applications are deleted, restarted, or reloaded by the ES Application. -** ES will periodically scan for control requests to process. The scan rate is -** controlled by this parameter, which is given in milliseconds. A value of -** 1000 means that ES will scan the Application Table once per second. Be -** careful not to set the value of this too low, because ES will use more CPU -** cycles scanning the table. -** -** \par Limits -** There is a lower limit of 100 and an upper limit of 20000 on this -** configuration paramater. millisecond units. -*/ -#define CFE_ES_APP_SCAN_RATE 1000 - - -/** -** \cfeescfg Define ES Application Kill Timeout -** -** \par Description: -** ES Application Kill Timeout. This parameter controls the number of -** "scan periods" that ES will wait for an application to Exit after getting -** the signal Delete, Reload or Restart. The sequence works as follows: -** -# ES will set the control request for an App to Delete/Restart/Reload and -** set this kill timer to the value in this parameter. -** -# If the App is reponding and Calls it's RunLoop function, it will drop out -** of it's main loop and call CFE_ES_ExitApp. Once it calls Exit App, then -** ES can delete, restart, or reload the app the next time it scans the app -** table. -** -# If the App is not responding, the ES App will decrement this Kill Timeout -** value each time it runs. If the timeout value reaches zero, ES will kill -** the app. -** -** The Kill timeout value depends on the #CFE_ES_APP_SCAN_RATE. If the Scan Rate -** is 1000, or 1 second, and this #CFE_ES_APP_KILL_TIMEOUT is set to 5, then it -** will take 5 seconds to kill a non-responding App. -** If the Scan Rate is 250, or 1/4 second, and the #CFE_ES_APP_KILL_TIMEOUT is -** set to 2, then it will take 1/2 second to time out. -** -** \par Limits -** There is a lower limit of 1 and an upper limit of 100 on this configuration -** paramater. Units are number of #CFE_ES_APP_SCAN_RATE cycles. -*/ -#define CFE_ES_APP_KILL_TIMEOUT 5 - - -/** -** \cfeescfg ES Ram Disk Sector Size -** -** \par Description: -** Defines the ram disk sector size. The ram disk is 1 of 4 memory areas that -** are preserved on a processor reset. -** NOTE: Changing this value changes memory allocation, and may -** require changes to platform specific values (in CFE_PSP) such as -** USER_RESERVED_MEM in VxWorks depending on the memory areas -** being used for preserved data and on OS specific behavior. -** -** \par Limits -** There is a lower limit of 128 and an upper limit of 4096 on this -** configuration paramater. -*/ -#define CFE_ES_RAM_DISK_SECTOR_SIZE 512 - - -/** -** \cfeescfg ES Ram Disk Number of Sectors -** -** \par Description: -** Defines the ram disk number of sectors. The ram disk is one of four memory -** areas that are preserved on a processor reset. -** NOTE: Changing this value changes memory allocation, and may -** require changes to platform specific values (in CFE_PSP) such as -** USER_RESERVED_MEM in VxWorks depending on the memory areas -** being used for preserved data and on OS specific behavior. -** -** \par Limits -** There is a lower limit of 128 and an upper limit of 8192 on this -** configuration paramater. -*/ -#define CFE_ES_RAM_DISK_NUM_SECTORS 4096 - -/** -** \cfeescfg Percentage of Ram Disk Reserved for Decompressing Apps -** -** \par Description: -** The #CFE_ES_RAM_DISK_PERCENT_RESERVED parameter is used to make sure that the -** Volatile ( RAM ) Disk has a defined amount of free space during a processor -** reset. The cFE uses the Volatile disk to decompress cFE applications during -** system startup. If this Volatile disk happens to get filled with logs and -** misc files, then a processor reset may not work, because there will be no -** room to decompress cFE apps. To solve that problem, this parameter sets the -** "Low Water Mark" for disk space on a Processor reset. It should be set to -** allow the largest cFE Application to be decompressed. -** During a Processor reset, if there is not sufficient space left on the disk, -** it will be re-formatted in order to clear up some space. -** -** This feature can be turned OFF by setting the parameter to 0. -** -** \par Limits -** There is a lower limit of 0 and an upper limit of 75 on this configuration -** paramater.Units are percentage. A setting of zero will turn this feature -** off. -*/ -#define CFE_ES_RAM_DISK_PERCENT_RESERVED 30 - - -/** -** \cfeescfg RAM Disk Mount string -** -** \par Description: -** The #CFE_ES_RAM_DISK_MOUNT_STRING parameter is used to set the cFE mount path -** for the CFE RAM disk. This is a parameter for missions that do not want to -** use the default value of "/ram", or for missions that need to have a different -** value for different CPUs or Spacecraft. -** Note that the vxWorks OSAL cannot currently handle names that have more than one -** path separator in it. The names "/ram", "/ramdisk", "/disk123" will all work, but -** "/disks/ram" will not. -** Multiple separators can be used with the posix or RTEMS ports. -** -*/ -#define CFE_ES_RAM_DISK_MOUNT_STRING "/ram" - - -/** -** \cfeescfg Define Critical Data Store Size -** -** \par Description: -** Defines the Critical Data Store (CDS) area size in bytes size. The CDS is -** one of four memory areas that are preserved during a processor reset. -** NOTE: Changing this value changes memory allocation, and may -** require changes to platform specific values (in CFE_PSP) such as -** USER_RESERVED_MEM in VxWorks depending on the memory areas -** being used for preserved data and on OS specific behavior. -** -** \par Limits -** There is a lower limit of 8192 and an upper limit of 2097152 (2MBytes) on -** this configuration paramater. -*/ -#define CFE_ES_CDS_SIZE ( 128 * 2048 ) - - -/** -** \cfeescfg Define User Reserved Memory Size -** -** \par Description: -** User Reserved Memory Size. This is the size in bytes of the cFE User -** reserved Memory area. This is a block of memory that is available for cFE -** application use. The address is obtained by calling -** #CFE_PSP_GetUserReservedArea. The User Reserved Memory is one of four memory -** areas that are preserved during a processor reset. -** NOTE: Changing this value changes memory allocation, and may -** require changes to platform specific values (in CFE_PSP) such as -** USER_RESERVED_MEM in VxWorks depending on the memory areas -** being used for preserved data and on OS specific behavior. -** -** \par Limits -** There is a lower limit of 1024 and an upper limit of 33554432 (32Mbytes) on -** this configuration paramater. -*/ -#define CFE_ES_USER_RESERVED_SIZE ( 1024 * 2048 ) - - -/** -** \cfeescfg Define ES Reset Area Size -** -** \par Description: -** The ES Reset Area Size. This is the size in bytes of the cFE Reset variable -** and log area. This is a block of memory used by the cFE to store the system -** log ER Log and critical reset variables. This is 4 of 4 of the memory areas -** that are preserved during a processor reset. -** Note: This area must be sized large enough to hold all of the data -** structures. It should be automatically sized based on the #CFE_ES_ResetData_t -** type, but circular dependancies in the headers prevent it from being defined -** this way. -** NOTE: Changing this value changes memory allocation, and may -** require changes to platform specific values (in CFE_PSP) such as -** USER_RESERVED_MEM in VxWorks depending on the memory areas -** being used for preserved data and on OS specific behavior. -** -** \par Limits -** There is a lower limit of 153600 (150KBytes) and an upper limit of 2097152 -** (2MBytes) on this configuration paramater. -*/ -#define CFE_ES_RESET_AREA_SIZE ( 170 * 2048 ) - -/** -** \cfeescfg Define Default Memory Pool Alignment Mode -** -** \par Description: -** Defines the default mode for the requirement to align ES Mempool buffer. -** If this define is set, the memory pool must be aligned or the call to -** create a new memory pool will be rejected with a CFE_ES_BAD_ARGUMENT -** return code. -** -** \par Limits -** If CFE_ES_MEMPOOL_ALIGNED is defined, the alignment check is enabled. -** If CFE_ES_MEMPOOL_ALIGNED is not defined, the alignment check is not -** compiled in. -*/ -#define CFE_ES_MEMPOOL_ALIGNED 1 - -/** -** \cfeescfg ES Nonvolatile Startup Filename -** -** \par Description: -** The value of this constant defines the path and name of the file that -** contains a list of modules that will be loaded and started by the cFE after -** the cFE finishes its startup sequence. -** -** \par Limits -** The length of each string, including the NULL terminator cannot exceed the -** #OS_MAX_PATH_LEN value. -*/ -#define CFE_ES_NONVOL_STARTUP_FILE "/cf/apps/cfe_es_startup.scr" - - -/** -** \cfeescfg ES Volatile Startup Filename -** -** \par Description: -** The value of this constant defines the path and name of the file that -** contains a list of modules that will be loaded and started by the cFE after -** the cFE finishes its startup sequence. -** -** \par Limits -** The length of each string, including the NULL terminator cannot exceed the -** #OS_MAX_PATH_LEN value. -*/ -#define CFE_ES_VOLATILE_STARTUP_FILE "/ram/apps/cfe_es_startup.scr" - -/** -** \cfeescfg Default Shell Filename -** -** \par Description: -** The value of this constant defines the filename used to store the shell -** output after a shell command is received by ES. This file contains the -** entire shell output. The fsw also sends the shell output in series of fixed -** size telemetry packets. This filename is used only when no filename -** is specified in the shell command. -** -** \par Limits -** The length of each string, including the NULL terminator cannot exceed the -** #OS_MAX_PATH_LEN value. -*/ -#define CFE_ES_DEFAULT_SHELL_FILENAME "/ram/ShellCmd.out" - - -/** -** \cfeescfg Define Max Shell Command Size -** -** \par Description: -** Defines the maximum size in characters of the shell command. -** -** \par Limits -** There is a lower limit of 64 and an upper limit of 128 on this configuration -** paramater. Units are characters. -*/ -#define CFE_ES_MAX_SHELL_CMD 64 - - -/** -** \cfeescfg Define Shell Command Telemetry Pkt Segment Size -** -** \par Description: -** Defines the size of the shell command tlm packet segments.The shell command -** output size is dependant on the shell command itself. If the shell output -** size is greater than the size of the packet defined here, the fsw will -** generate a series of tlm packets (of the size defined here) that can be -** reconstructed by the ground system. -** -** \par Limits -** There is a lower limit of 32 and an upper limit of 128 on this configuration -** paramater. -*/ -#define CFE_ES_MAX_SHELL_PKT 64 - - -/** -** \cfeescfg Default Application Information Filename -** -** \par Description: -** The value of this constant defines the filename used to store information -** pertaining to all of the Applications that are registered with Executive -** Services. This filename is used only when no filename is specified in the -** the command to query all system apps. -** -** \par Limits -** The length of each string, including the NULL terminator cannot exceed the -** #OS_MAX_PATH_LEN value. -*/ -#define CFE_ES_DEFAULT_APP_LOG_FILE "/ram/cfe_es_app_info.log" - -/** -** \cfeescfg Default Application Information Filename -** -** \par Description: -** The value of this constant defines the filename used to store information -** pertaining to all of the Applications that are registered with Executive -** Services. This filename is used only when no filename is specified in the -** the command to query all system tasks. -** -** \par Limits -** The length of each string, including the NULL terminator cannot exceed the -** #OS_MAX_PATH_LEN value. -*/ -#define CFE_ES_DEFAULT_TASK_LOG_FILE "/ram/cfe_es_task_info.log" - -/** -** \cfeescfg Default System Log Filename -** -** \par Description: -** The value of this constant defines the filename used to store important -** information (as ASCII text strings) that might not be able to be sent in an -** Event Message. This filename is used only when no filename is specified in -** the command to dump the system log. No file specified in the cmd means the -** first character in the cmd filename is a NULL terminator (zero). -** -** \par Limits -** The length of each string, including the NULL terminator cannot exceed the -** #OS_MAX_PATH_LEN value. -*/ -#define CFE_ES_DEFAULT_SYSLOG_FILE "/ram/cfe_es_syslog.log" - -/** -** \cfeescfg Default Exception and Reset (ER) Log Filename -** -** \par Description: -** The value of this constant defines the filename used to store the -** Exception and Reset (ER) Log. This filename is used only when no filename is -** specified in the command to dump the ER log. No file specified in the cmd -** means the first character in the cmd filename is a NULL terminator (zero). -** -** \par Limits -** The length of each string, including the NULL terminator cannot exceed the -** #OS_MAX_PATH_LEN value. -*/ -#define CFE_ES_DEFAULT_ER_LOG_FILE "/ram/cfe_erlog.log" - -/** -** \cfeescfg Default Performance Data Filename -** -** \par Description: -** The value of this constant defines the filename used to store the -** Performance Data. This filename is used only when no filename is specified -** in the command to stop performance data collecting. -** -** \par Limits -** The length of each string, including the NULL terminator cannot exceed the -** #OS_MAX_PATH_LEN value. -*/ -#define CFE_ES_DEFAULT_PERF_DUMP_FILENAME "/ram/cfe_es_perf.dat" - - -/** -** \cfeescfg Default Critical Data Store Registry Filename -** -** \par Description: -** The value of this constant defines the filename used to store the -** Critical Data Store Registry. This filename is used only when no filename is -** specified in the command to stop performance data collecting. -** -** \par Limits -** The length of each string, including the NULL terminator cannot exceed the -** #OS_MAX_PATH_LEN value. -*/ -#define CFE_ES_DEFAULT_CDS_REG_DUMP_FILE "/ram/cfe_cds_reg.log" - -/** -** \cfeescfg Define Default System Log Mode -** -** \par Description: -** Defines the default mode for the operation of the ES System log. The log may -** operate in either Overwrite mode = 0, where once the log becomes full the -** oldest message in the log will be overwritten, or Discard mode = 1, where -** once the log becomes full the contents of the log are preserved and the new -** event is discarded. This constant may hold a value of either 0 or 1 -** depending on the desired default log mode. Overwrite Mode = 0, Discard -** Mode = 1. -** -** \par Limits -** There is a lower limit of 0 and an upper limit of 1 on this configuration -** paramater. -*/ -#define CFE_ES_DEFAULT_SYSLOG_MODE 1 - -/** -** \cfeescfg Define Max Number of Performance IDs -** -** \par Description: -** Defines the maximum number of perf ids allowed. -** -** -** \par Limits -** This number must always be divisible by 32. There is a lower limit of 32 and -** an upper limit of 512 on this configuration paramater. -*/ -#define CFE_ES_PERF_MAX_IDS 128 - -/** -** \cfeescfg Define Max Size of Performance Data Buffer -** -** \par Description: -** Defines the maximum size of the performance data buffer. Units are number of -** performance data entries. An entry is defined by a 32 bit data word followed -** by a 64 bit time stamp. -** -** \par Limits -** There is a lower limit of 1025 and an upper limit of 1048576 (1 Meg) on this -** configuration paramater. The units are number of entries. An entry is -** defined by a 32 bit data word followed by a 64 bit time stamp. -*/ -#define CFE_ES_PERF_DATA_BUFFER_SIZE 10000 - - -/** -** \cfeescfg Define Filter Mask Setting for Disabling All Performance Entries -** -** \par Description: -** Defines the filter mask for disabling all performance entries. The value is a -** bit mask. For each bit, 0 means the corresponding entry is disabled and -** 1 means it is enabled. -*/ -#define CFE_ES_PERF_FILTMASK_NONE 0 - -/** -** \cfeescfg Define Filter Mask Setting for Enabling All Performance Entries -** -** \par Description: -** Defines the filter mask for enabling all performance entries. The value is a -** bit mask. For each bit, 0 means the corresponding entry is disabled and -** 1 means it is enabled. -*/ -#define CFE_ES_PERF_FILTMASK_ALL ~CFE_ES_PERF_FILTMASK_NONE - -/** -** \cfeescfg Define Default Filter Mask Setting for Performance Data Buffer -** -** \par Description: -** Defines the default filter mask for the performance data buffer. The value is a -** bit mask. For each bit, 0 means the corresponding entry is disabled and 1 -** means it is enabled. -** -*/ -#define CFE_ES_PERF_FILTMASK_INIT CFE_ES_PERF_FILTMASK_ALL - - -/** -** \cfeescfg Define Default Filter Trigger Setting for Disabling All Performance Entries -** -** \par Description: -** Defines the default trigger mask for disabling all performance data entries. The value -** is a bit mask. For each bit, 0 means the trigger for the corresponding entry is -** disabled and 1 means it is enabled. -** -*/ -#define CFE_ES_PERF_TRIGMASK_NONE 0 - -/** -** \cfeescfg Define Filter Trigger Setting for Enabling All Performance Entries -** -** \par Description: -** Defines the trigger mask for enabling all performance data entries. The value is -** a bit mask. For each bit, 0 means the trigger for the corresponding entry is -** disabled and 1 means it is enabled. -** -*/ -#define CFE_ES_PERF_TRIGMASK_ALL ~CFE_ES_PERF_TRIGMASK_NONE - -/** -** \cfeescfg Define Default Filter Trigger Setting for Performance Data Buffer -** -** \par Description: -** Defines the default trigger mask for the performance data buffer. The value is a -** 32-bit mask. For each bit, 0 means the trigger for the corresponding entry is -** disabled and 1 means it is enabled. -** -*/ -#define CFE_ES_PERF_TRIGMASK_INIT CFE_ES_PERF_TRIGMASK_NONE - -/** -** \cfeescfg Define Performance Analyzer Child Task Priority -** -** \par Description: -** This parameter defines the priority of the child task spawed by the -** Executive Services to write performance data to a file. Lower numbers -** are higher priority, with 1 being the highest priority in the case of a -** child task. -** -** \par Limits -** Valid range for a child task is 1 to 255 however, the priority cannot -** be higher (lower number) than the ES parent application priority. -*/ -#define CFE_ES_PERF_CHILD_PRIORITY 200 - -/** -** \cfeescfg Define Performance Analyzer Child Task Stack Size -** -** \par Description: -** This parameter defines the stack size of the child task spawed by the -** Executive Services to write performance data to a file. -** -** \par Limits -** It is recommended this parameter be greater than or equal to 4KB. This parameter -** is limited by the maximum value allowed by the data type. In this case, the data -** type is an unsigned 32-bit integer, so the valid range is 0 to 0xFFFFFFFF. -*/ -#define CFE_ES_PERF_CHILD_STACK_SIZE 16384 - -/** -** \cfeescfg Define Performance Analyzer Child Task Delay -** -** \par Description: -** This parameter defines the delay time (in milliseconds) between performance -** data file writes performed by the Executive Services Performace Analyzer -** Child Task. -** -** \par Limits -** It is recommended this parameter be greater than or equal to 20ms. This parameter -** is limited by the maximum value allowed by the data type. In this case, the data -** type is an unsigned 32-bit integer, so the valid range is 0 to 0xFFFFFFFF. -*/ -#define CFE_ES_PERF_CHILD_MS_DELAY 20 - -/** -** \cfeescfg Define Performance Analyzer Child Task Number of Entries Between Delay -** -** \par Description: -** This parameter defines the number of performace analyzer entries the Performace -** Analyzer Child Task will write to the file between delays. -** -*/ -#define CFE_ES_PERF_ENTRIES_BTWN_DLYS 50 - -/** -** \cfeescfg Define Default Stack Size for an Application -** -** \par Description: -** This parameter defines a default stack size. This parameter is used by the -** cFE Core Applications. -** -** \par Limits -** There is a lower limit of 2048 and an upper limit of 16384 on this -** configuration paramater. -*/ -#define CFE_ES_DEFAULT_STACK_SIZE 16384 - - -/** -** \cfeescfg Define EVS Task Priority -** -** \par Description: -** Defines the cFE_EVS Task priority. -** -** \par Limits -** Not Applicable -*/ -#define CFE_EVS_START_TASK_PRIORITY 61 - -/** -** \cfeescfg Define EVS Task Stack Size -** -** \par Description: -** Defines the cFE_EVS Task Stack Size -** -** \par Limits -** There is a lower limit of 2048 and an upper limit of 16384 on this -** configuration paramater. -*/ -#define CFE_EVS_START_TASK_STACK_SIZE CFE_ES_DEFAULT_STACK_SIZE - -#define CFE_EVS_START_TASK_FLAGS OS_ENABLE_CORE_0 - -/** -** \cfeescfg Define SB Task Priority -** -** \par Description: -** Defines the cFE_SB Task priority. -** -** \par Limits -** Not Applicable -*/ -#define CFE_SB_START_TASK_PRIORITY 64 - -/** -** \cfeescfg Define SB Task Stack Size -** -** \par Description: -** Defines the cFE_SB Task Stack Size -** -** \par Limits -** There is a lower limit of 2048 and an upper limit of 16384 on this -** configuration paramater. -*/ -#define CFE_SB_START_TASK_STACK_SIZE CFE_ES_DEFAULT_STACK_SIZE - -#define CFE_SB_START_TASK_FLAGS OS_ENABLE_CORE_0 - -/** -** \cfeescfg Define ES Task Priority -** -** \par Description: -** Defines the cFE_ES Task priority. -** -** \par Limits -** Not Applicable -*/ -#define CFE_ES_START_TASK_PRIORITY 68 - -/** -** \cfeescfg Define ES Task Stack Size -** -** \par Description: -** Defines the cFE_ES Task Stack Size -** -** \par Limits -** There is a lower limit of 2048 and an upper limit of 16384 on this -** configuration paramater. -*/ -#define CFE_ES_START_TASK_STACK_SIZE 16384 - -#define CFE_ES_START_TASK_FLAGS OS_ENABLE_CORE_0 - -/** -** \cfetimecfg Define TIME Task Priorities -** -** \par Description: -** Defines the cFE_TIME Task priority. -** Defines the cFE_TIME Tone Task priority. -** Defines the cFE_TIME 1HZ Task priority. -** -** \par Limits -** There is a lower limit of zero and an upper limit of 255 on these -** configuration paramaters. Remember that the meaning of each task -** priority is inverted -- a "lower" number has a "higher" priority. -*/ -#define CFE_TIME_START_TASK_PRIORITY 60 -#define CFE_TIME_TONE_TASK_PRIORITY 25 -#define CFE_TIME_1HZ_TASK_PRIORITY 25 - -/** -** \cfetimecfg Define TIME Task Stack Sizes -** -** \par Description: -** Defines the cFE_TIME Main Task Stack Size -** Defines the cFE_TIME Tone Task Stack Size -** Defines the cFE_TIME 1HZ Task Stack Size -** -** \par Limits -** There is a lower limit of 2048 and an upper limit of 16384 on these -** configuration paramaters. -*/ -#define CFE_TIME_START_TASK_STACK_SIZE CFE_ES_DEFAULT_STACK_SIZE -#define CFE_TIME_TONE_TASK_STACK_SIZE 16384 -#define CFE_TIME_1HZ_TASK_STACK_SIZE 16384 - -#define CFE_TIME_START_TASK_FLAGS OS_ENABLE_CORE_0 -#define CFE_TIME_TONE_TASK_FLAGS OS_ENABLE_CORE_0 -#define CFE_TIME_1HZ_TASK_FLAGS OS_ENABLE_CORE_0 - -/** -** \cfeescfg Define TBL Task Priority -** -** \par Description: -** Defines the cFE_TBL Task priority. -** -** \par Limits -** Not Applicable -*/ -#define CFE_TBL_START_TASK_PRIORITY 70 - -/** -** \cfeescfg Define TBL Task Stack Size -** -** \par Description: -** Defines the cFE_TBL Task Stack Size -** -** \par Limits -** There is a lower limit of 2048 and an upper limit of 16384 on this -** configuration paramater. -*/ -#define CFE_TBL_START_TASK_STACK_SIZE CFE_ES_DEFAULT_STACK_SIZE - -#define CFE_TBL_START_TASK_FLAGS OS_ENABLE_CORE_0 - -/** -** \cfeescfg Define Maximum Number of Registered CDS Blocks -** -** \par Description: -** Maximum number of registered CDS Blocks -** -** \par Limits -** There is a lower limit of 8 and an upper limit of 32767 on this configuration -** paramater. -*/ -#define CFE_ES_CDS_MAX_NUM_ENTRIES 512 - - -/** -** \cfeescfg Define Number of Processor Resets Before a Power On Reset -** -** \par Description: -** Number of Processor Resets before a Power On Reset is called. If set to 2, -** then 2 processor resets will occur, and the 3rd processor reset will be a -** power on reset instead. -** -** \par Limits -** There is a lower limit of 0 and an upper limit of 1024 on this configuration -** paramater. -*/ -#define CFE_ES_MAX_PROCESSOR_RESETS 2 - - -/** -** \cfeescfg Define Default ES Memory Pool Block Sizes -** -** \par Description: -** Default Intermediate ES Memory Pool Block Sizes. If an application -** is using the CFE_ES Memory Pool APIs (#CFE_ES_PoolCreate, #CFE_ES_PoolCreateNoSem, -** #CFE_ES_GetPoolBuf and #CFE_ES_PutPoolBuf) but finds these sizes -** inappropriate for their use, they may wish to use the #CFE_ES_PoolCreateEx -** API to specify their own intermediate block sizes -** -** \par Limits -** These sizes MUST be increasing and MUST be an integral multiple of 4. Also, -** CFE_ES_MAX_BLOCK_SIZE must be larger than CFE_SB_MAX_SB_MSG_SIZE and both -** CFE_TBL_MAX_SNGL_TABLE_SIZE and CFE_TBL_MAX_DBL_TABLE_SIZE. Note that if Table -** Services have been removed from the CFE, the table size limits are still -** enforced although the table size definitions may be reduced. Refer to the CFS -** Deployment Guide for information about removing CFE Table Services from the CFE. -*/ -#define CFE_ES_MEM_BLOCK_SIZE_01 8 -#define CFE_ES_MEM_BLOCK_SIZE_02 16 -#define CFE_ES_MEM_BLOCK_SIZE_03 32 -#define CFE_ES_MEM_BLOCK_SIZE_04 48 -#define CFE_ES_MEM_BLOCK_SIZE_05 64 -#define CFE_ES_MEM_BLOCK_SIZE_06 96 -#define CFE_ES_MEM_BLOCK_SIZE_07 128 -#define CFE_ES_MEM_BLOCK_SIZE_08 160 -#define CFE_ES_MEM_BLOCK_SIZE_09 256 -#define CFE_ES_MEM_BLOCK_SIZE_10 512 -#define CFE_ES_MEM_BLOCK_SIZE_11 1024 -#define CFE_ES_MEM_BLOCK_SIZE_12 2048 -#define CFE_ES_MEM_BLOCK_SIZE_13 4096 -#define CFE_ES_MEM_BLOCK_SIZE_14 8192 -#define CFE_ES_MEM_BLOCK_SIZE_15 16384 -#define CFE_ES_MEM_BLOCK_SIZE_16 80000 -#define CFE_ES_MAX_BLOCK_SIZE 200000 - - -/** -** \cfeescfg Define ES Critical Data Store Memory Pool Block Sizes -** -** \par Description: -** Intermediate ES Critical Data Store Memory Pool Block Sizes -** -** \par Limits -** These sizes MUST be increasing and MUST be an integral multiple of 4. -*/ -#define CFE_ES_CDS_MEM_BLOCK_SIZE_01 8 -#define CFE_ES_CDS_MEM_BLOCK_SIZE_02 16 -#define CFE_ES_CDS_MEM_BLOCK_SIZE_03 32 -#define CFE_ES_CDS_MEM_BLOCK_SIZE_04 48 -#define CFE_ES_CDS_MEM_BLOCK_SIZE_05 64 -#define CFE_ES_CDS_MEM_BLOCK_SIZE_06 96 -#define CFE_ES_CDS_MEM_BLOCK_SIZE_07 128 -#define CFE_ES_CDS_MEM_BLOCK_SIZE_08 160 -#define CFE_ES_CDS_MEM_BLOCK_SIZE_09 256 -#define CFE_ES_CDS_MEM_BLOCK_SIZE_10 512 -#define CFE_ES_CDS_MEM_BLOCK_SIZE_11 1024 -#define CFE_ES_CDS_MEM_BLOCK_SIZE_12 2048 -#define CFE_ES_CDS_MEM_BLOCK_SIZE_13 4096 -#define CFE_ES_CDS_MEM_BLOCK_SIZE_14 8192 -#define CFE_ES_CDS_MEM_BLOCK_SIZE_15 16384 -#define CFE_ES_CDS_MEM_BLOCK_SIZE_16 32768 -#define CFE_ES_CDS_MAX_BLOCK_SIZE 80000 - - - -/** -** \cfeevscfg Define Maximum Number of Event Filters per Application -** -** \par Description: -** Maximum number of events that may be filtered per application. -** -** \par Limits -** There is an upper limit of 32767 on this configuration paramater. -*/ -#define CFE_EVS_MAX_EVENT_FILTERS (256) - - -/** -** \cfeevscfg Enable or Disable EVS Local Event Log -** -** \par Description: -** The CFE_EVS_LOG_ON configuration parameter must be defined to enable EVS -** event logging. In order to disable the local event log this definition needs -** to be commented out. -** -** \par Limits -** Not Applicable -*/ -#define CFE_EVS_LOG_ON - - -/** -** \cfeevscfg Default Event Log Filename -** -** \par Description: -** The value of this constant defines the filename used to store the Event -** Services local event log. This filename is used only when no filename is -** specified in the command to dump the event log. -** -** \par Limits -** The length of each string, including the NULL terminator cannot exceed the -** #OS_MAX_PATH_LEN value. -*/ -#define CFE_EVS_DEFAULT_LOG_FILE "/ram/cfe_evs.log" - - -/** -** \cfeevscfg Maximum Number of Events in EVS Local Event Log -** -** \par Description: -** Dictates the EVS local event log capacity. Units are the number of events. -** -** \par Limits -** There is an upper limit of 65535 on this configuration paramater. -*/ -#define CFE_EVS_LOG_MAX 20 - - -/** -** \cfeevscfg Default EVS Application Data Filename -** -** \par Description: -** The value of this constant defines the filename used to store the EVS -** Application Data(event counts/filtering information). This filename is -** used only when no filename is specified in the command to dump the event -** log. -** -** \par Limits -** The length of each string, including the NULL terminator cannot exceed the -** #OS_MAX_PATH_LEN value. -*/ -#define CFE_EVS_DEFAULT_APP_DATA_FILE "/ram/cfe_evs_app.dat" - - -/** -** \cfeevscfg Default EVS Output Port State -** -** \par Description: -** Defines the default port state (enabled or deisabled) for the four output -** ports defined within the Event Service. Port 1 is usually the uart output -** terminal. To enable a port, set the proper bit to a 1. Bit 0 is port 1, -** bit 1 is port2 etc. -** -** \par Limits -** The valid settings are 0x0 to 0xF. -*/ -#define CFE_EVS_PORT_DEFAULT 0x0001 - - -/** -** \cfeevscfg Default EVS Event Type Filter Mask -** -** \par Description: -** Defines a state of on or off for all four event types. The term event -** 'type' refers to the criticality level and may be Debug, Informational, -** Error or Critical. Each event type has a bit position. (bit 0 = Debug, -** bit 1 = Info, bit 2 = Error, bit 3 = Critical). This is a global setting, -** meaning it applies to all applications. To filter an event type, set its -** bit to zero. For example, -** 0xE means Debug = OFF, Info = ON, Error = ON, Critical = ON -** -** \par Limits -** The valid settings are 0x0 to 0xF. -*/ -#define CFE_EVS_DEFAULT_TYPE_FLAG 0xE - - - -/** -** \cfeevscfg Default EVS Local Event Log Mode -** -** \par Description: -** Defines a state of overwrite(0) or discard(1) for the operation of the -** EVS local event log. The log may operate in either Overwrite mode = 0, -** where once the log becomes full the oldest event in the log will be -** overwritten, or Discard mode = 1, where once the log becomes full the -** contents of the log are preserved and the new event is discarded. -** Overwrite Mode = 0, Discard Mode = 1. -** -** \par Limits -** The valid settings are 0 or 1 -*/ -#define CFE_EVS_DEFAULT_LOG_MODE 1 - - -/** -** \cfeevscfg Default EVS Message Format Mode -** -** \par Description: -** Defines the default message format (long or short) for event messages being -** sent to the ground. Choose between #CFE_EVS_LONG_FORMAT or -** #CFE_EVS_SHORT_FORMAT. -** -** \par Limits -** The valid settings are #CFE_EVS_LONG_FORMAT or #CFE_EVS_SHORT_FORMAT -*/ -#define CFE_EVS_DEFAULT_MSG_FORMAT_MODE CFE_EVS_LONG_FORMAT - - - -/* Platform Configuration Parameters for Table Service (TBL) */ - -/** -** \cfetblcfg Size of Table Services Table Memory Pool -** -** \par Description: -** Defines the TOTAL size of the memory pool that cFE Table Services allocates -** from the system. The size must be large enough to provide memory for each -** registered table, the inactive buffers for double buffered tables and for -** the shared inactive buffers for single buffered tables. -** -** \par Limits -** The cFE does not place a limit on the size of this parameter. -*/ -#define CFE_TBL_BUF_MEMORY_BYTES 1048576 - -/** -** \cfetblcfg Maximum Size Allowed for a Double Buffered Table -** -** \par Description: -** Defines the maximum allowed size (in bytes) of a double buffered table. -** -** \par Limits -** The cFE does not place a limit on the size of this parameter but it must be -** less than half of #CFE_TBL_BUF_MEMORY_BYTES. -*/ -#define CFE_TBL_MAX_DBL_TABLE_SIZE 65535 - -/** -** \cfetblcfg Maximum Size Allowed for a Single Buffered Table -** -** \par Description: -** Defines the maximum allowed size (in bytes) of a single buffered table. -** \b NOTE: This size determines the size of all shared table buffers. -** Therefore, this size will be multiplied by #CFE_TBL_MAX_SIMULTANEOUS_LOADS -** below when allocating memory for shared tables. -** -** \par Limits -** The cFE does not place a limit on the size of this parameter but it must be -** small enough to allow for #CFE_TBL_MAX_SIMULTANEOUS_LOADS number of tables -** to fit into #CFE_TBL_BUF_MEMORY_BYTES. -*/ -#define CFE_TBL_MAX_SNGL_TABLE_SIZE 65535 - -/** -** \cfetblcfg Maximum Number of Tables Allowed to be Registered -** -** \par Description: -** Defines the maximum number of tables supported by this processor's Table Services. -** -** \par Limits -** This number must be less than 32767. It should be recognized that this parameter -** determines the size of the Table Registry. An excessively high number will waste -** memory. -*/ -#define CFE_TBL_MAX_NUM_TABLES 128 - -/** -** \cfetblcfg Maximum Number of Critical Tables that can be Registered -** -** \par Description: -** Defines the maximum number of critical tables supported by this processor's Table Services. -** -** \par Limits -** This number must be less than 32767. It should be recognized that this parameter -** determines the size of the Critical Table Registry which is maintained in the Critical -** Data Store. An excessively high number will waste Critical Data Store memory. Therefore, -** this number must not exceed the value defined in CFE_ES_CDS_MAX_CRITICAL_TABLES. -*/ -#define CFE_TBL_MAX_CRITICAL_TABLES 32 - -/** -** \cfetblcfg Maximum Number of Table Handles -** -** \par Description: -** Defines the maximum number of Table Handles. -** -** \par Limits -** This number must be less than 32767. This number must be at least as big as -** the number of tables (#CFE_TBL_MAX_NUM_TABLES) and should be set higher if tables -** are shared between applications. -*/ -#define CFE_TBL_MAX_NUM_HANDLES 256 - -/** -** \cfetblcfg Maximum Number of Simultaneous Loads to Support -** -** \par Description: -** Defines the maximum number of single buffered tables that can be -** loaded simultaneously. This number is used to determine the number -** of shared buffers to allocate. -** -** \par Limits -** This number must be less than 32767. An excessively high number will -** degrade system performance and waste memory. A number less than 5 is -** suggested but not required. -*/ -#define CFE_TBL_MAX_SIMULTANEOUS_LOADS 4 - -/** -** \cfetblcfg Maximum Number of Simultaneous Table Validations -** -** \par Description: -** Defines the maximum number of pending validations that -** the Table Services can handle at any one time. When a -** table has a validation function, a validation request is -** made of the application to perform that validation. This -** number determines how many of those requests can be -** outstanding at any one time. -** -** \par Limits -** This number must be less than 32767. An excessively high number will -** degrade system performance and waste memory. A number less than 20 is -** suggested but not required. -*/ -#define CFE_TBL_MAX_NUM_VALIDATIONS 10 - -/** -** \cfetblcfg Default Filename for a Table Registry Dump -** -** \par Description: -** Defines the file name used to store the table registry when -** no filename is specified in the dump registry command. -** -** \par Limits -** The length of each string, including the NULL terminator cannot exceed the -** #OS_MAX_PATH_LEN value. -*/ -#define CFE_TBL_DEFAULT_REG_DUMP_FILE "/ram/cfe_tbl_reg.log" - -/** -** \cfetblcfg Number of Spacecraft ID's specified for validation -** -** \par Description: -** Defines the number of specified spacecraft ID values that -** are verified during table loads. If the number is zero -** then no validation of the spacecraft ID field in the table -** file header is performed when tables are loaded. Non-zero -** values indicate how many values from the list of spacecraft -** ID's defined below are compared to the spacecraft ID field -** in the table file header. The ELF2CFETBL tool may be used -** to create table files with specified spacecraft ID values. -** -** \par Limits -** This number must be greater than or equal to zero and -** less than or equal to 2. -*/ -#define CFE_TBL_VALID_SCID_COUNT 0 - -/* macro to construct 32 bit value from 4 chars */ -#define CFE_TBL_U32FROM4CHARS( _C1, _C2, _C3, _C4 ) \ - ( (uint32)(_C1) << 24 | \ - (uint32)(_C2) << 16 | \ - (uint32)(_C3) << 8 | \ - (uint32)(_C4) ) - -/** -** \cfetblcfg Spacecraft ID values used for table load validation -** -** \par Description: -** Defines the spacecraft ID values used for validating the -** spacecraft ID field in the table file header. To be valid, -** the spacecraft ID specified in the table file header must -** match one of the values defined here. -** -** \par Limits -** This value can be any 32 bit unsigned integer. -*/ -#define CFE_TBL_VALID_SCID_1 (CFE_SPACECRAFT_ID) -#define CFE_TBL_VALID_SCID_2 (CFE_TBL_U32FROM4CHARS('a', 'b', 'c', 'd')) - -/** -** \cfetblcfg Number of Processor ID's specified for validation -** -** \par Description: -** Defines the number of specified processor ID values that -** are verified during table loads. If the number is zero -** then no validation of the processor ID field in the table -** file header is performed when tables are loaded. Non-zero -** values indicate how many values from the list of processor -** ID's defined below are compared to the processor ID field -** in the table file header. The ELF2CFETBL tool may be used -** to create table files with specified processor ID values. -** -** \par Limits -** This number must be greater than or equal to zero and -** less than or equal to 4. -*/ -#define CFE_TBL_VALID_PRID_COUNT 0 - -/** -** \cfetblcfg Processor ID values used for table load validation -** -** \par Description: -** Defines the processor ID values used for validating the -** processor ID field in the table file header. To be valid, -** the spacecraft ID specified in the table file header must -** match one of the values defined here. -** -** \par Limits -** This value can be any 32 bit unsigned integer. -*/ -#define CFE_TBL_VALID_PRID_1 (CFE_CPU_ID) -#define CFE_TBL_VALID_PRID_2 (CFE_TBL_U32FROM4CHARS('a', 'b', 'c', 'd')) -#define CFE_TBL_VALID_PRID_3 0 -#define CFE_TBL_VALID_PRID_4 0 - -/** \cfeescfg Mission specific version number for cFE -** -** \par Description: -** The cFE version number consists of four parts: -** major version number, minor version number, revision -** number and mission specific revision number. The mission -** specific revision number is defined here and the other -** parts are defined in "cfe_version.h". -** -** \par Limits: -** Must be defined as a numeric value that is greater than -** or equal to zero. -*/ -#define CFE_MISSION_REV 0 - -/** \cfeescfg Poll timer for startup sync delay -** -** \par Description: -** During startup, some tasks may need to synchronize their own initialization -** with the initialization of other applications in the system. -** -** CFE ES implements an API to accomplish this, that performs a task delay (sleep) -** while polling the overall system state until other tasks are ready. -** -** This value controls the amount of time that the CFE_ES_ApplicationSyncDelay -** will sleep between each check of the system state. This should be large enough -** to allow other tasks to run, but not so large as to noticeably delay the startup -** completion. -** -** Units are in milliseconds -** -** \par Limits: -** Must be defined as an integer value that is greater than -** or equal to zero. -*/ -#define CFE_ES_STARTUP_SYNC_POLL_MSEC 50 - -/** \cfeescfg CFE core application startup timeout -** -** \par Description: -** The upper limit for the amount of time that the cFE core applications -** (ES, SB, EVS, TIME, TBL) are each alloted to reach their respective -** "ready" states. -** -** The CFE "main" thread starts individual tasks for each of the core applications -** (except FS). Each of these must perform some initialization work before the -** next core application can be started, so the main thread waits to ensure that the -** application has reached the "ready" state before starting the next application. -** -** If any core application fails to start, then it indicates a major problem with -** the system and startup is aborted. -** -** Units are in milliseconds -** -** \par Limits: -** Must be defined as an integer value that is greater than -** or equal to zero. -** -*/ -#define CFE_CORE_MAX_STARTUP_MSEC 30000 - -/** \cfeescfg Startup script timeout -** -** \par Description: -** The upper limit for the total amount of time that all apps listed in the CFE ES startup -** script may take to all become ready. -** -** Unlike the "core" app timeout, this is a soft limit; if the alloted time is exceeded, -** it probably indicates an issue with one of the apps, but does not cause CFE ES to take -** any additional action other than logging the event to the syslog. -** -** Units are in milliseconds -** -** \par Limits: -** Must be defined as an integer value that is greater than -** or equal to zero. - */ -#define CFE_ES_STARTUP_SCRIPT_TIMEOUT_MSEC 30000 - - -#endif diff --git a/config/ocpoc/s1000/inc/ci_msgids.h b/config/ocpoc/s1000/inc/ci_msgids.h deleted file mode 100644 index 9424bf351..000000000 --- a/config/ocpoc/s1000/inc/ci_msgids.h +++ /dev/null @@ -1,10 +0,0 @@ -#ifndef CI_MSGIDS_H -#define CI_MSGIDS_H - -#include "msg_ids.h" - -#endif - -/************************/ -/* End of File Comment */ -/************************/ diff --git a/config/ocpoc/s1000/inc/ci_platform_cfg.h b/config/ocpoc/s1000/inc/ci_platform_cfg.h deleted file mode 100644 index 63437675c..000000000 --- a/config/ocpoc/s1000/inc/ci_platform_cfg.h +++ /dev/null @@ -1,154 +0,0 @@ -#ifndef CI_PLATFORM_CFG_H -#define CI_PLATFORM_CFG_H - -#ifdef __cplusplus -extern "C" { -#endif - - -/* -** ci Platform Configuration Parameter Definitions -*/ - -/** \brief Mission specific version number for CI application -** -** \par Description: -** An application version number consists of four parts: -** major version number, minor version number, revision -** number and mission specific revision number. The mission -** specific revision number is defined here and the other -** parts are defined in "ci_version.h". -** -** \par Limits: -** Must be defined as a numeric value that is greater than -** or equal to zero. -*/ -#define CI_MISSION_REV (1) - -/** \brief Pipe depth for the Scheduler pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define CI_SCH_PIPE_DEPTH (2) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define CI_SCH_PIPE_NAME ("CI_SCH_PIPE") - -/** \brief The SB pend behavior type for the Scheduler pipe. -** -** \par Limits: -** One of: CFE_SB_POLL, CFE_SB_PEND_FOREVER, or the -** number of milliseconds to wait for a new message (recommended). -** Note, using CFE_SB_PEND_FOREVER may cause an unresponsive -** application if no messages arrive on this pipe. -*/ -#define CI_SCH_PIPE_PEND_TIME (2000) - -/** \brief The number of WAKEUP messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max limited to CFE_SB_MAX_PIPE_DEPTH-1. Note the -** CI_SCH_PIPE_WAKEUP_RESERVED and CI_SCH_PIPE_SEND_HK_RESERVED -** must be less than CI_SCH_PIPE_DEPTH. -*/ -#define CI_SCH_PIPE_WAKEUP_RESERVED (1) - -/** \brief The number of SEND_HK messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. Note the -** CI_SCH_PIPE_WAKEUP_RESERVED and CI_SCH_PIPE_SEND_HK_RESERVED -** must be less than CI_SCH_PIPE_DEPTH. -*/ -#define CI_SCH_PIPE_SEND_HK_RESERVED (1) - -/** \brief The number of PROCESS_TIMEOUT messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define CI_SCH_PIPE_PROC_TIMEOUT_RESERVED (1) - -/** \brief Pipe depth for the command pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define CI_CMD_PIPE_DEPTH (4) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define CI_CMD_PIPE_NAME ("CI_CMD_PIPE") - -/** \brief The config table default filename -** -** \par Limits: -** The length of each string, including the NULL terminator cannot exceed -** the #OS_MAX_PATH_LEN value. -*/ -#define CI_CONFIG_TABLE_FILENAME ("/cf/apps/ci_config.tbl") - -/** \brief The timeout table default filename -** -** \par Limits: -** The length of each string, including the NULL terminator cannot exceed -** the #OS_MAX_PATH_LEN value. -*/ -#define CI_TIMEOUT_TABLE_FILENAME ("/cf/apps/ci_timeout.tbl") - -/** \brief The timeout value, in milliseconds, to wait for ES application startup sync. -** -** \par Limits: -** This parameter must be at least 1000 (ms). -*/ -#define CI_STARTUP_TIMEOUT_MSEC (5000) - -/** \brief CI Ingest Mode */ -#define CI_INGEST_MODE (CI_BHV_OPTIMISTIC) - -/** \brief CI Listener Task Delay -** -** \note The main ingest loop is a while loop and sleeps for this many -** milliseconds each iteration. - */ -#define CI_LISTENER_TASK_DELAY (100) - -/** \brief CI Lister Task Stack Size */ -#define CI_LISTENER_TASK_STACK_SIZE (160000) - -/** \brief CI Lister Task Flags for CFE_ES_CreateChildTask() */ -#define CI_LISTENER_TASK_FLAGS (OS_ENABLE_CORE_0) - -/** \brief CI Lister Task Priority */ -#define CI_LISTENER_TASK_PRIORITY (109) - -/** \brief The largest size message CI can ingest */ -#define CI_MAX_CMD_INGEST (CFE_SB_MAX_SB_MSG_SIZE) - -/** \brief Listener task name */ -#define CI_LISTENER_TASK_NAME ("CI_LISTENER") - -/** \brief CI config table mutex name */ -#define CI_CFG_TBL_MUTEX_NAME ("CI_CFG_TBL_MUTEX") - -/** \brief CI timeout table mutex name */ -#define CI_TIME_TBL_MUTEX_NAME ("CI_TIME_TBL_MUTEX") - -#ifdef __cplusplus -} -#endif - -#endif /* CI_PLATFORM_CFG_H */ - -/************************/ -/* End of File Comment */ -/************************/ - diff --git a/config/ocpoc/s1000/inc/cs_msgids.h b/config/ocpoc/s1000/inc/cs_msgids.h deleted file mode 100644 index 688d2c27d..000000000 --- a/config/ocpoc/s1000/inc/cs_msgids.h +++ /dev/null @@ -1,11 +0,0 @@ -#ifndef CS_MSGIDS_H -#define CS_MSGIDS_H - -#include "msg_ids.h" - -#endif /*CS_MSGIDS_H*/ - -/************************/ -/* End of File Comment */ -/************************/ - diff --git a/config/ocpoc/s1000/inc/cs_platform_cfg.h b/config/ocpoc/s1000/inc/cs_platform_cfg.h deleted file mode 100644 index b744a641d..000000000 --- a/config/ocpoc/s1000/inc/cs_platform_cfg.h +++ /dev/null @@ -1,305 +0,0 @@ -#ifndef CS_PLATFORM_CFG_H -#define CS_PLATFORM_CFG_H - -#include "osapi.h" - -/************************************************************************* - ** Macro Definitions - *************************************************************************/ - -#define CS_CHILD_TASK_FLAGS OS_ENABLE_CORE_0 - -/** -** \cscfg EEPROM File Table -- default table filename -** -** \par Description: -** This parameter defines the default filename for the -** EEPROM addresses File Table. -** -** \par Limits: -** The string length (including string terminator) cannot exceed -** #OS_MAX_PATH_LEN. (limit is not verified) -*/ -#define CS_DEF_EEPROM_TABLE_FILENAME "/cf/apps/cs_eepromtbl.tbl" - -/** -** \cscfg Memory Address File Table -- default table filename -** -** \par Description: -** This parameter defines the default filename for the -** Memory addresses File Table. -** -** \par Limits: -** The string length (including string terminator) cannot exceed -** #OS_MAX_PATH_LEN. (limit is not verified) -*/ -#define CS_DEF_MEMORY_TABLE_FILENAME "/cf/apps/cs_memorytbl.tbl" - -/** -** \cscfg Tables File Table -- default table filename -** -** \par Description: -** This parameter defines the default filename for the -** Tables List File Table. -** -** \par Limits: -** The string length (including string terminator) cannot exceed -** #OS_MAX_PATH_LEN. (limit is not verified) -*/ -#define CS_DEF_TABLES_TABLE_FILENAME "/cf/apps/cs_tablestbl.tbl" - -/** -** \cscfg Application File Table -- default table filename -** -** \par Description: -** This parameter defines the default filename for the -** Application List File Table. -** -** \par Limits: -** The string length (including string terminator) cannot exceed -** #OS_MAX_PATH_LEN. (limit is not verified) -*/ -#define CS_DEF_APP_TABLE_FILENAME "/cf/apps/cs_apptbl.tbl" - -/** -** \cscfg Application Pipe Depth -** -** \par Description: -** This parameter defines the depth of the CS input pipe. The -** depth should be deep enough to accommodate all of the DS -** command packets and all of the subscribed telemetry packets -** that might be generated by applications with a priority -** higher than the CS application. -** -** \par Limits: -** The value must be greater than zero and cannot exceed the -** definition of #CFE_SB_MAX_PIPE_DEPTH. -*/ -#define CS_PIPE_DEPTH 12 - -/** \cscfg Maximum number of entries in the Eeprom table to checksum - ** - ** \par Description: - ** Maximum number of entries that can be in the table of - ** Eeprom areas to checksum. - ** - ** \par Limits: - ** This parameter is limited by the uint16 datatype that defines it. - ** This parameter is limited to 65535. - ** - */ -#define CS_MAX_NUM_EEPROM_TABLE_ENTRIES 16 - -/** \cscfg Maximum number of entries in the Memory table to checksum - ** - ** \par Description: - ** Maximum number of entries that can be in the table of - ** Memory areas to checksum. - ** - ** \par Limits: - ** This parameter is limited by the uint16 datatype that defines it. - ** This parameter is limited to 65535. - ** - */ -#define CS_MAX_NUM_MEMORY_TABLE_ENTRIES 16 - -/** \cscfg Maximum number of tables to checksum - ** - ** \par Description: - ** Maximum number of entries in the table of tables to checksum - ** - ** \par Limits: - ** This parameter is limited by the maximum number of tables allowed - ** in the system. This parameter is limited to #CFE_TBL_MAX_NUM_TABLES - ** - */ -#define CS_MAX_NUM_TABLES_TABLE_ENTRIES 24 - -/** \cscfg Maximum number of applications to checksum - ** - ** \par Description: - ** Maximum number of entries in the table of applications to checksum - ** - ** \par Limits: - ** This parameter is limited by the maximum number of applications allowed - ** in the system. This parameter is limited to #CFE_ES_MAX_APPLICATIONS - ** - */ -#define CS_MAX_NUM_APP_TABLE_ENTRIES 24 - -/** \cscfg Default number of bytes to checksum per cycle - ** - ** \par Description: - ** The default number of bytes that are checksummed in a single CS cycle - ** - ** \par Limits: - ** This parameter is limited by the maximum value allowed by the data type. - ** In this case, the data type is an unsigned 32-bit integer, so the valid - ** range is 0 to 0xFFFFFFFF. Note that "0" is a valid value, and will - ** result in a checksum of 0. - ** - */ -#define CS_DEFAULT_BYTES_PER_CYCLE (1024 *16) - -/** \cscfg CS Child Task Priority - ** - ** \par Description: - ** Priority of child tasks created by CS. Lower numbers are higher priority, - ** with 1 being the highest priority in the case of a child task. - ** - ** \par Limits: - ** Valid range for a child task is 1 to 255, but the priority cannot be - ** higher (lower number) than the CS App priority. - ** - */ -#define CS_CHILD_TASK_PRIORITY 202 - - -/** \cscfg Delay between checksumming cycles for child task - ** - ** \par Description: - ** CS child tasks perform checksum cycles like the main App. - ** Since the child tasks aren't scheduled, there needs to be - ** some other mechanism to prevent it from hogging the CPU. - ** This parameter specifies the number of milliseconds to delay - ** in between cycles. - ** - ** \par Limits: - ** CS does not place limits on this parameter. It is intended to - ** be configurable to prevent the child task from hogging the CPU - ** - */ -#define CS_CHILD_TASK_DELAY 1000 - - -/** \cscfg Timeout for waiting for other apps to start - ** - ** \par Description: - ** CS waits for all of the other applications that are listed in - ** the startup script to start before entering its main loop. If - ** not all of those apps start, CS can pend indefinitely without - ** a timeout. Once CS waits this amount of time ( in milliseconds) - ** it will start regardless of the status of the rest of the apps - ** in the startup script. - ** - ** \par Limits: - ** CS does not place limits on this parameter. It is intended to - ** be configurable to allow enough time for all apps to start. - ** - */ -#define CS_STARTUP_TIMEOUT 60000 - - - -/** \cscfg Desired state of the checksumming of OS code segment at power on -** -** \par Description: -** This determines the default state the checksumming of -** OS code segment should be in at power on -** -** \par Limits: -** This can either be CS_STATE_ENABLED or CS_STATE_DISABLED -*/ -#define CS_OSCS_CHECKSUM_STATE CS_STATE_ENABLED - -/** \cscfg Desired state of the checksumming of CFE core checksum at power on -** -** \par Description: -** This determines the default state the checksumming of -** CFE core should be in at power on -** -** \par Limits: -** This can either be CS_STATE_ENABLED or CS_STATE_DISABLED -*/ -#define CS_CFECORE_CHECKSUM_STATE CS_STATE_ENABLED - -/** \cscfg Desired state of the EEPROM table at power on -** -** \par Description: -** This determines the default state the EEPROM table should -** be in at power on -** -** \par Limits: -** This can either be CS_STATE_ENABLED or CS_STATE_DISABLED -*/ -#define CS_EEPROM_TBL_POWERON_STATE CS_STATE_ENABLED - -/** \cscfg Desired state of the EEPROM table at power on -** -** \par Description: -** This determines the default state the Memory table should -** be in at power on -** -** \par Limits: -** This can either be CS_STATE_ENABLED or CS_STATE_DISABLED -*/ -#define CS_MEMORY_TBL_POWERON_STATE CS_STATE_ENABLED - -/** \cscfg Desired state of the Applications table at power on -** -** \par Description: -** This determines the default state the EEPROM table should -** be in at power on -** -** \par Limits: -** This can either be CS_STATE_ENABLED or CS_STATE_DISABLED -*/ -#define CS_APPS_TBL_POWERON_STATE CS_STATE_ENABLED - -/** \cscfg Desired state of the Tables table at power on -** -** \par Description: -** This determines the default state the EEPROM table should -** be in at power on -** -** \par Limits: -** This can either be CS_STATE_ENABLED or CS_STATE_DISABLED -*/ -#define CS_TABLES_TBL_POWERON_STATE CS_STATE_ENABLED - -/** \cscfg Whether to preserve checksum states on processor reset -** -** \par Description: -** This determines whether to preserve checksum -** enabled/disabled states on processor reset -** -** \par Limits: -** None -*/ -#define CS_PRESERVE_STATES_ON_PROCESSOR_RESET TRUE - - -/** \cscfg Name of the Critical Data Store Used for CS -** -** \par Description: -** Name of the Critical Data Store for CS -** This CDS is used to preserve the checksum -** enabled states for EERPOM, Memory, Apps, Tables tables -** as well as OS code segment and cFE core states -** -** \par Limits: -** Must be a unique string with regards to CDS -*/ -#define CS_CDS_NAME "CS_CDS" - -/** \cscfg Mission specific version number for CS application -** -** \par Description: -** An application version number consists of four parts: -** major version number, minor version number, revision -** number and mission specific revision number. The mission -** specific revision number is defined here and the other -** parts are defined in "cs_version.h". -** -** \par Limits: -** Must be defined as a numeric value that is greater than -** or equal to zero. -*/ -#define CS_MISSION_REV 0 - -#endif /*_cs_platform_cfg_*/ - -/************************/ -/* End of File Comment */ -/************************/ - diff --git a/config/ocpoc/s1000/inc/ds_msgids.h b/config/ocpoc/s1000/inc/ds_msgids.h deleted file mode 100644 index d288329a0..000000000 --- a/config/ocpoc/s1000/inc/ds_msgids.h +++ /dev/null @@ -1,11 +0,0 @@ -#ifndef DS_MSGIDS_H -#define DS_MSGIDS_H - -#include "msg_ids.h" - - -#endif /* DS_MSGIDS_H */ - -/************************/ -/* End of File Comment */ -/************************/ diff --git a/config/ocpoc/s1000/inc/ds_platform_cfg.h b/config/ocpoc/s1000/inc/ds_platform_cfg.h deleted file mode 100644 index 0a2d305dd..000000000 --- a/config/ocpoc/s1000/inc/ds_platform_cfg.h +++ /dev/null @@ -1,471 +0,0 @@ -#ifndef DS_PLATFORM_CFG_H -#define DS_PLATFORM_CFG_H - - -/** -** \dscfg Destination File Table -- logical table name -** -** \par Description: -** This parameter defines the name of the DS Destination File -** Table when referenced via cFE Table Services. Note that this -** parameter is not a filename, it is the table specific portion -** of the logical name. The entire logical name for this table -** is "DS.FILE_TBL". -** -** \par Limits: -** The string length (including string terminator) cannot exceed -** #CFE_TBL_MAX_NAME_LENGTH. (limit is not verified) -*/ -#define DS_DESTINATION_TBL_NAME "FILE_TBL" - - -/** -** \dscfg Destination File Table -- default table filename -** -** \par Description: -** This parameter defines the default filename for the -** Destination File Table. -** -** \par Limits: -** The string length (including string terminator) cannot exceed -** #OS_MAX_PATH_LEN. (limit is not verified) -*/ -#define DS_DEF_DEST_FILENAME "/cf/apps/ds_file_tbl.tbl" - - -/** -** \dscfg Destination File Table -- number of files -** -** \par Description: -** This parameter defines the size of the DS Destination File -** Table by setting the number of file entries in the table. The -** number should be large enough to provide an entry for all the -** destination files defined for the project. Maintenance will -** be simplified if file index 'n' always describes the same -** file - even if that file is not in use at the present time. -** -** \par Limits: -** The number must be greater than zero but there is no upper -** enforced limit for this parameter. -*/ -#define DS_DEST_FILE_CNT 16 - - -/** -** \dscfg Destination File Table -- pathname buffer size -** -** \par Description: -** This parameter further defines the size of the Destination -** File Table by setting the size of the pathname buffer for -** each file entry. Note that the buffer must contain both -** the string and the string terminator - so the max string -** length is one less than the buffer size. -** -** \par Limits: -** The buffer size must be greater than zero and a multiple -** of four bytes for alignment. The value cannot exceed the -** maximum filename size allowed by the OS (#OS_MAX_PATH_LEN). -*/ -#define DS_PATHNAME_BUFSIZE OS_MAX_PATH_LEN - - -/** -** \dscfg Destination File Table -- basename buffer size -** -** \par Description: -** This parameter further defines the size of the Destination -** File Table by setting the size of the basename buffer for -** each file entry. Note that the buffer must contain both -** the string and the string terminator - so the max string -** length is one less than the buffer size. -** -** \par Limits: -** The buffer size must be greater than zero and a multiple -** of four bytes for alignment. The value cannot exceed the -** maximum filename size allowed by the OS (#OS_MAX_PATH_LEN). -*/ -#define DS_BASENAME_BUFSIZE OS_MAX_PATH_LEN - - -/** -** \dscfg Destination File Table -- extension buffer size -** -** \par Description: -** This parameter further defines the size of the Destination -** File Table by setting the size of the extension buffer for -** each file entry. Note that the buffer must contain both -** the string and the string terminator - so the max string -** length is one less than the buffer size. -** -** \par Limits: -** The buffer size must be greater than zero and a multiple -** of four bytes for alignment. The value cannot exceed the -** maximum filename size allowed by the OS (#OS_MAX_PATH_LEN). -*/ -#define DS_EXTENSION_BUFSIZE 8 - - -/** -** \dscfg Packet Filter Table -- logical table name -** -** \par Description: -** This parameter defines the name of the DS Packet Filter Table -** when referenced via cFE Table Services. Note that this -** parameter is not a filename, it is the table specific portion -** of the logical name. The entire logical name for this table -** is "DS.FILTER_TBL". -** -** \par Limits: -** The string length (including string terminator) cannot exceed -** #CFE_TBL_MAX_NAME_LENGTH. (limit is not verified) -*/ -#define DS_FILTER_TBL_NAME "FILTER_TBL" - - -/** -** \dscfg Packet Filter Table -- default table filename -** -** \par Description: -** This parameter defines the default filename for the -** Packet Filter Table. -** -** \par Limits: -** The string length (including string terminator) cannot exceed -** #OS_MAX_PATH_LEN. (limit is not verified) -*/ -#define DS_DEF_FILTER_FILENAME "/cf/apps/ds_filter_tbl.tbl" - - -/** -** \dscfg Packet Filter Table -- number of packets -** -** \par Description: -** This parameter defines the size of the DS Packet Filter Table -** by setting the number of packet entries in the table. The -** number should be large enough to provide an entry for each -** command and telemetry packet subject to data storage. -** -** \par Limits: -** The number must be greater than zero but there is no upper -** enforced limit for this parameter. However, setting the -** size equal to the number of packets that might be subject -** to data storage, rather than the total number of packets -** defined for this project, will reduce the table file size, -** possibly significantly. -*/ -#define DS_PACKETS_IN_FILTER_TABLE 256 - - -/** -** \dscfg Packet Filter Table -- filters per packet -** -** \par Description: -** This parameter further defines the size of the DS Packet -** Filter Table by setting the number of filters per packet -** entry. This is the maximum number of destination files -** to which a single packet can be written (at one time). -** -** \par Limits: -** The number of filters per packet must be greater than zero -** and not greater than #DS_DEST_FILE_CNT. -*/ -#define DS_FILTERS_PER_PACKET 4 - - -/** -** \dscfg Common Table File -- descriptor text buffer size -** -** \par Description: -** This parameter defines the size of the Descriptor Text -** fields in both the Destination File Table and the Packet -** Filter Table. The buffer includes the string terminator. -** -** \par Limits: -** The buffer size must be greater than zero and a multiple -** of four bytes for alignment. There is no upper limit. -*/ -#define DS_DESCRIPTOR_BUFSIZE 32 - - -/** -** \dscfg Filename Sequence Count -- number of digits -** -** \par Description: -** This parameter defines the number of filename sequence -** count digits used when the filename type has been set to -** "count" rather than "time". Sequence counts are padded -** with leading zero's to create fixed length strings. -** -** \par Limits: -** The number of sequence count digits must be greater than -** zero - even if there is no intention of later setting -** the filename type to "count". This value should match -** the definition for #DS_MAX_SEQUENCE_COUNT, below. -*/ -#define DS_SEQUENCE_DIGITS 8 - - -/** -** \dscfg Filename Sequence Count -- max counter value -** -** \par Description: -** This parameter defines the maximum value a file sequence -** count will reach before rollover. -** -** \par Limits: -** The value must be greater than zero and should not have -** more digits than the number of sequence count digits -** defined for #DS_SEQUENCE_DIGITS, above. -*/ -#define DS_MAX_SEQUENCE_COUNT 99999999 - - -/** -** \dscfg Data Storage File -- total filename size -** -** \par Description: -** This parameter defines the maximum size of a filename after -** combining the pathname, basename, sequence and extension. -** -** \par Limits: -** The buffer size must be greater than zero and a multiple -** of four bytes for alignment. The buffer size (including -** string terminator) cannot exceed #OS_MAX_PATH_LEN. -*/ -#define DS_TOTAL_FNAME_BUFSIZE OS_MAX_PATH_LEN - - -/** -** \dscfg Data Storage File -- cFE file header sub-type -** -** \par Description: -** This parameter defines a mission-specific value that is used -** to identify a Data Storage file. -** -** \par Limits: -** The file header data type for the value is 32 bits unsigned, -** thus the value can be anything from zero to 4,294,967,295. -** (limit is not verified) -*/ -#define DS_FILE_HDR_SUBTYPE 12345 - - -/** -** \dscfg Data Storage File -- cFE file header description -** -** \par Description: -** This parameter defines a mission-specific text string that -** may be used to identify Data Storage files. -** -** \par Limits: -** The string length (including string terminator) cannot exceed -** #CFE_FS_HDR_DESC_MAX_LEN. (limit is not verified) -*/ -#define DS_FILE_HDR_DESCRIPTION "DS data storage file" - - -/** -** \dscfg Data Storage File -- minimum size limit -** -** \par Description: -** This parameter defines the lower limit for commands and -** table entries that define the size (in bytes) when a data -** storage file is automatically closed. -** -** \par Limits: -** None -- however, the user should be cautioned that a very -** small value will allow an size limit that closes files too -** frequently, while a very large value will effectively -** prevent files from ever being closed due to size. -*/ -#define DS_FILE_MIN_SIZE_LIMIT 1024 - - -/** -** \dscfg Data Storage File -- minimum age limit -** -** \par Description: -** This parameter defines the lower limit for commands and -** table entries that define the age (in seconds) when a data -** storage file is automatically closed. -** -** \par Limits: -** None -- however, the user should be cautioned that a very -** small value will allow an age limit that closes files too -** frequently, while a very large value will effectively -** prevent files from ever being closed due to age. -*/ -#define DS_FILE_MIN_AGE_LIMIT 60 - - -/** -** \dscfg Application Pipe Name -** -** \par Description: -** This parameter defines a portion of the logical name used -** during the creation of the DS input pipe. The logical name -** may also be used as an identifier when accessing status for -** the pipe via cFE Software Bus Services. The entire logical -** name is "DS.DS_CMD_PIPE". -** -** \par Limits: -** The string length (including string terminator) cannot -** exceed #OS_MAX_API_NAME. (limit is not verified) -*/ -#define DS_APP_PIPE_NAME "DS_CMD_PIPE" - - -/** -** \dscfg Application Pipe Depth -** -** \par Description: -** This parameter defines the depth of the DS input pipe. The -** depth should be deep enough to accommodate all of the DS -** command packets and all of the subscribed telemetry packets -** that might be generated by applications with a priority -** higher than the DS application. -** -** \par Limits: -** The value must be greater than zero and cannot exceed the -** definition of #CFE_SB_MAX_PIPE_DEPTH. -*/ -#define DS_APP_PIPE_DEPTH 256 - - -/** -** \dscfg Make DS Tables Critical -** -** \par Description: -** Set this parameter to a value of one to make the DS tables critical, -** otherwise set to zero. -** -** \par Limits -** This parameter must be set to zero or one. -*/ -#define DS_MAKE_TABLES_CRITICAL 0 - - -/** -** \dscfg Housekeeping Request Frequency -** -** \par Description: -** Set this parameter equal to the number of seconds between -** housekeeping request commands. This number is mission -** specific and must match the frequency used by the source -** of the command - often the scheduler task. The value is -** used by the DS application to measure file age and also -** as a factor in the calculation of file growth rates. -** -** \par Limits -** This parameter must be greater than zero. -*/ -#define DS_SECS_PER_HK_CYCLE 4 - - -/** -** \dscfg Default DS Packet Processor State -** -** \par Description: -** Set this parameter to a value of one and DS will begin to -** process packets immediately on startup. Set the value to -** zero and DS will ignore data storage packets until receipt -** of a valid #DS_ENABLE command. -** -** \par Limits -** This parameter must be set to zero or one. -*/ -#define DS_DEF_ENABLE_STATE 1 - - -/** -** \dscfg Save DS Packet Processor State in Critical Data Store -** -** \par Description: -** Set this parameter to a value of one and DS will restore -** the previous Packet Processor enable/disable state after -** a processor reset. This setting does not affect the -** Packet Processor enable/disable state set at power-on -** which is controlled by #DS_DEF_ENABLE_STATE. Set the -** value to zero and DS will set the enable/disable state -** as described for #DS_DEF_ENABLE_STATE following any reset. -** -** \par Limits -** This parameter must be set to zero or one. -*/ -#define DS_CDS_ENABLE_STATE 1 - - -/** \dscfg Mission specific version number for DS application -** -** \par Description: -** An application version number consists of four parts: -** major version number, minor version number, revision -** number and mission specific revision number. The mission -** specific revision number is defined here and the other -** parts are defined in "ds_version.h". -** -** \par Limits: -** Must be defined as a numeric value that is greater than -** or equal to zero. -*/ -#define DS_MISSION_REV 0 - - -/** -** \dscfg File Header Type Selection -** -** \par Description: -** Set this parameter to select the type of file header that -** will be the first record written to each Data Storage File. -** -** \par Limits -** This parameter must be set to one of the following: -** 0 = none -- set this value to have no file header -** 1 = CFE -- set this value to use CFE file headers -** 2 = GPM -- set this value to use GPM file headers -*/ -#define DS_FILE_HEADER_TYPE 1 - - -/** -** \dscfg Move Files to Downlink Directory After Close Selection -** -** \par Description: -** Set this parameter to enable the code and structures to -** automatically move DS files to another directory after -** closing the files. The intended use for this setting is -** to move files from a working directory into a directory -** from which the files can be downlinked. Note that even -** after enabling this feature, files will not be moved if -** the move pathname in the Destination File Table is null. -** -** \par Limits -** This parameter must be set to one of the following: -** TRUE = add move pathname field to Destination File Table -** FALSE = do not add move pathname to Destination File Table -*/ -#define DS_MOVE_FILES FALSE - - -/** -** \dscfg Application Per Packet Pipe Limit -** -** \par Description: -** This parameter defines the per packet pipe limit. This is -** the max number of packets with the same Message ID that may -** be in the DS input pipe at any one time. This value should -** be large enough to accommodate a burst of packets (usually -** event packets) plus a suitable margin. -** -** \par Limits: -** The value must be greater than zero and cannot exceed the -** definition of #DS_APP_PIPE_DEPTH. -*/ -#define DS_PER_PACKET_PIPE_LIMIT 1 - - -#endif /* DS_PLATFORM_CFG_H */ - -/************************/ -/* End of File Comment */ -/************************/ diff --git a/config/ocpoc/s1000/inc/ea_platform_cfg.h b/config/ocpoc/s1000/inc/ea_platform_cfg.h deleted file mode 100644 index b3034d0c1..000000000 --- a/config/ocpoc/s1000/inc/ea_platform_cfg.h +++ /dev/null @@ -1,143 +0,0 @@ -#ifndef EA_PLATFORM_CFG_H -#define EA_PLATFORM_CFG_H - -#ifdef __cplusplus -extern "C" { -#endif - -#define EA_CHILD_TASK_FLAGS OS_ENABLE_CORE_0 - - -/* -** ea Platform Configuration Parameter Definitions -*/ - -/** \brief Mission specific version number for EA application -** -** \par Description: -** An application version number consists of four parts: -** major version number, minor version number, revision -** number and mission specific revision number. The mission -** specific revision number is defined here and the other -** parts are defined in "ea_version.h". -** -** \par Limits: -** Must be defined as a numeric value that is greater than -** or equal to zero. -*/ -#define EA_MISSION_REV (0) - -/** \brief Pipe depth for the Scheduler pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define EA_SCH_PIPE_DEPTH (2) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define EA_SCH_PIPE_NAME ("EA_SCH_PIPE") - -/** \brief The SB pend behavior type for the Scheduler pipe. -** -** \par Limits: -** One of: CFE_SB_POLL, CFE_SB_PEND_FOREVER, or the -** number of milliseconds to wait for a new message (recommended). -** Note, using CFE_SB_PEND_FOREVER may cause an unresponsive -** application if no messages arrive on this pipe. -*/ -#define EA_SCH_PIPE_PEND_TIME (2000) - -/** \brief The number of WAKEUP messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max limited to CFE_SB_MAX_PIPE_DEPTH-1. Note the -** EA_SCH_PIPE_WAKEUP_RESERVED and EA_SCH_PIPE_SEND_HK_RESERVED -** must be less than EA_SCH_PIPE_DEPTH. -*/ -#define EA_SCH_PIPE_WAKEUP_RESERVED (1) - -/** \brief The number of SEND_HK messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. Note the -** EA_SCH_PIPE_WAKEUP_RESERVED and EA_SCH_PIPE_SEND_HK_RESERVED -** must be less than EA_SCH_PIPE_DEPTH. -*/ -#define EA_SCH_PIPE_SEND_HK_RESERVED (1) - -/** \brief Pipe depth for the command pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define EA_CMD_PIPE_DEPTH (4) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define EA_CMD_PIPE_NAME ("EA_CMD_PIPE") - -/** \brief Pipe depth for the data pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define EA_DATA_PIPE_DEPTH (4) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define EA_DATA_PIPE_NAME ("EA_DATA_PIPE") - -/** \brief The config table default filename -** -** \par Limits: -** The length of each string, including the NULL terminator cannot exceed -** the #OS_MAX_PATH_LEN value. -*/ -#define EA_CONFIG_TABLE_FILENAME ("/cf/apps/ea_config.tbl") -/** \brief The timeout value, in milliseconds, to wait for ES application startup sync. -** -** \par Limits: -** This parameter must be at least 1000 (ms). -*/ -#define EA_STARTUP_TIMEOUT_MSEC (1000) - -/* TODO: Add Doxygen markup. */ -#define EA_CUSTOM_DEV_PATH "/tmp/ttyS0" - -/** \cscfg EA Child Task Priority - ** - ** \par Description: - ** Priority of child tasks created by EA. Lower numbers are higher priority, - ** with 1 being the highest priority in the case of a child task. - ** - ** \par Limits: - ** Valid range for a child task is 1 to 255, but the priority cannot be - ** higher (lower number) than the EA App priority. - ** - */ -#define EA_CHILD_TASK_PRIORITY (187) -#define EA_APP_UTIL_THRESHOLD (70) -#define EA_APP_NUM_THREADS (2) - -#define EA_MAX_PATH_LEN (96) - -#ifdef __cplusplus -} -#endif - -#endif /* EA_PLATFORM_CFG_H */ - -/************************/ -/* End of File Comment */ -/************************/ - diff --git a/config/ocpoc/s1000/inc/flow_msgids.h b/config/ocpoc/s1000/inc/flow_msgids.h deleted file mode 100644 index 494f62fc0..000000000 --- a/config/ocpoc/s1000/inc/flow_msgids.h +++ /dev/null @@ -1,18 +0,0 @@ -#ifndef FLOW_MSGIDS_H -#define FLOW_MSGIDS_H - -#ifdef __cplusplus -extern "C" { -#endif - -#include "msg_ids.h" - -#ifdef __cplusplus -} -#endif - -#endif /* FLOW_MSGIDS_H */ - -/************************/ -/* End of File Comment */ -/************************/ diff --git a/config/ocpoc/s1000/inc/flow_platform_cfg.h b/config/ocpoc/s1000/inc/flow_platform_cfg.h deleted file mode 100644 index 4f24d6eea..000000000 --- a/config/ocpoc/s1000/inc/flow_platform_cfg.h +++ /dev/null @@ -1,135 +0,0 @@ -#ifndef FLOW_PLATFORM_CFG_H -#define FLOW_PLATFORM_CFG_H - -#ifdef __cplusplus -extern "C" { -#endif - -/* -** FLOW Platform Configuration Parameter Definitions -*/ - -/** \brief Mission specific version number for FLOW application -** -** \par Description: -** An application version number consists of four parts: -** major version number, minor version number, revision -** number and mission specific revision number. The mission -** specific revision number is defined here and the other -** parts are defined in "amc_version.h". -** -** \par Limits: -** Must be defined as a numeric value that is greater than -** or equal to zero. -*/ -#define FLOW_MISSION_REV (0) - -/** \brief Pipe depth for the Scheduler pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define FLOW_SCH_PIPE_DEPTH (2) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define FLOW_SCH_PIPE_NAME ("FLOW_SCH_PIPE") - -/** \brief The number of WAKEUP messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max limited to CFE_SB_MAX_PIPE_DEPTH-1. Note the -** FLOW_WAKEUP_MID_MAX_MSG_COUNT and FLOW_SEND_HK_MID_MAX_MSG_COUNT -** must be less than FLOW_SCH_PIPE_DEPTH. -*/ -#define FLOW_WAKEUP_MID_MAX_MSG_COUNT (1) - -/** \brief The number of SEND_HK messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. Note the -** FLOW_WAKEUP_MID_MAX_MSG_COUNT and FLOW_SEND_HK_MID_MAX_MSG_COUNT -** must be less than FLOW_SCH_PIPE_DEPTH. -*/ -#define FLOW_SEND_HK_MID_MAX_MSG_COUNT (1) - -/** \brief Pipe depth for the command pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define FLOW_CMD_PIPE_DEPTH (4) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define FLOW_CMD_PIPE_NAME ("FLOW_CMD_PIPE") - -/** \brief Pipe depth for the data pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define FLOW_DATA_PIPE_DEPTH (4) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define FLOW_DATA_PIPE_NAME ("FLOW_DATA_PIPE") - -/** \brief The config table default filename -** -** \par Limits: -** The length of each string, including the NULL terminator cannot exceed -** the #OS_MAX_PATH_LEN value. -*/ -#define FLOW_CONFIG_TABLE_FILENAME ("/cf/apps/flow_config.tbl") - -/** \brief The timeout value, in milliseconds, to wait for ES application startup sync. -** -** \par Limits: -** This parameter must be at least 1000 (ms). -*/ -#define FLOW_STARTUP_TIMEOUT_MSEC (1000) - -/** \brief Pipe depth for the Gyroscope pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define FLOW_GYRO_PIPE_DEPTH (30) - -/** \brief Pipe name for the Gyroscope pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define FLOW_GYRO_PIPE_NAME ("FLOW_GYRO_PIPE") - -/** \brief The number of SENSOR_GYRO messages to reserve on the Gyroscope pipe. -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. Note the -** FLOW_SENSOR_GYRO_MID_MAX_MSG_COUNT -** must be less than FLOW_GYRO_PIPE_DEPTH. -*/ -#define FLOW_SENSOR_GYRO_MAX_MSG_COUNT (25) - - -#ifdef __cplusplus -} -#endif - -#endif /* FLOW_PLATFORM_CFG_H */ - -/************************/ -/* End of File Comment */ -/************************/ - diff --git a/config/ocpoc/s1000/inc/fm_msgids.h b/config/ocpoc/s1000/inc/fm_msgids.h deleted file mode 100644 index 1af16a366..000000000 --- a/config/ocpoc/s1000/inc/fm_msgids.h +++ /dev/null @@ -1,11 +0,0 @@ -#ifndef FM_MSGIDS_H -#define FM_MSGIDS_H - - -#include "msg_ids.h" - -#endif /* FM_MSGIDS_H */ - -/************************/ -/* End of File Comment */ -/************************/ diff --git a/config/ocpoc/s1000/inc/fm_platform_cfg.h b/config/ocpoc/s1000/inc/fm_platform_cfg.h deleted file mode 100644 index 7b83a233d..000000000 --- a/config/ocpoc/s1000/inc/fm_platform_cfg.h +++ /dev/null @@ -1,424 +0,0 @@ -#ifndef FM_PLATFORM_CFG_H -#define FM_PLATFORM_CFG_H - -#include "osapi.h" - - -/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ -/* */ -/* FM platform configuration parameters - application definitions */ -/* */ -/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ - -#define FM_CHILD_TASK_FLAGS OS_ENABLE_CORE_0 - -/** \fmcfg File Manager Application Name -** -** \par Description: -** This definition must match the name used at startup by the cFE -** Executive Services when creating the FM application. Note that -** application names are also an argument to certain cFE commands. -** For example, the application name is needed to access tables -** via cFE Table Services commands. -** -** \par Limits: -** FM requires that this name be defined, but otherwise places -** no limits on the definition. Refer to CFE Executive Services -** for specific information on limits related to application names. -*/ -#define FM_APP_NAME "FM" - - -/** \fmcfg File Manager Command Pipe Name -** -** \par Description: -** This definition is the name used at startup when creating a cFE -** Software Bus command pipe for the FM application. -** -** \par Limits: -** FM requires that this name be defined, but otherwise places -** no limits on the definition. Refer to CFE Software Bus Services -** for specific information on limits related to pipe names. -*/ -#define FM_APP_PIPE_NAME "FM_CMD_PIPE" - - -/** \fmcfg File Manager Command Pipe Depth -** -** \par Description: -** This definition sets the total number of packets that may queue -** in the FM command pipe. The limit for individual message types -** in the queue is the default cFE Software Bus subscription limit -** of four. -** -** \par Limits: -** The FM application limits this value to be no less than 4 and -** no greater than 20 packets at any one time in the command pipe. -*/ -#define FM_APP_PIPE_DEPTH 10 - - -/** \sccfg Mission specific version number for FM application -** -** \par Description: -** An application version number consists of four parts: -** major version number, minor version number, revision -** number and mission specific revision number. The mission -** specific revision number is defined here and the other -** parts are defined in "fm_version.h". -** -** \par Limits: -** Must be defined as a numeric value that is greater than -** or equal to zero. -*/ -#define FM_MISSION_REV 0 - - -/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ -/* */ -/* FM platform configuration parameters - output file definitions */ -/* */ -/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ - -/** \fmcfg Default Directory List Output Filename -** -** \par Description: -** This definition is the default output filename used by the Get -** Directory List to File command handler when the output filename -** is not provided. The default filename is used whenever the -** commanded output filename is the empty string. -** -** \par Limits: -** The FM application does not place a limit on this configuration -** parameter, however the symbol must be defined and the name will -** be subject to the same verification tests as a commanded output -** filename. Set this parameter to the empty string if no default -** filename is desired. -*/ -#define FM_DIR_LIST_FILE_DEFNAME "/ram/fm_dirlist.out" - - -/** \fmcfg Maximum Directory List Output File Entries -** -** \par Description: -** This definition sets the upper limit for the number of directory -** entries that may be written to a Directory List output file. -** Directory List files are variable length, based on the number of -** directory entries actually written to the file. There may zero -** entries written to the file if the directory is empty. For most -** environments, this definition will play no role at all, as it -** will be set to a number much larger than the count of files that -** will ever exist in any directory at one time. -** -** \par Limits: -** The FM application limits this value to be no less than 100 and -** no greater than 10000. -*/ -#define FM_DIR_LIST_FILE_ENTRIES 3000 - - -/** \fmcfg Directory List Output File Header Sub-Type -** -** \par Description: -** This definition sets the cFE File Header sub-type value for FM -** Directory List data files. The value may be used to differentiate -** FM Directory List files from other data files. -** -** \par Limits: -** The FM application places no limits on this unsigned 32 bit value. -*/ -#define FM_DIR_LIST_FILE_SUBTYPE 12345 - - -/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ -/* */ -/* FM platform configuration parameters - TLM packet definitions */ -/* */ -/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ - -/** \fmcfg Directory List Telemetry Packet Entry Count -** -** \par Description: -** This definition sets the number of directory entries contained -** in the Directory List telemetry packet. The command handler will -** read directory entries until reaching the index of the start entry -** (set via command argument) and then continue to read -** directory entries and populate the telemtry packet until there are -** either no more unread directory entries or until the telemetry -** packet is full. -** -** \par Limits: -** The FM application limits this value to be no less than 10 and -** and no greater than 100. The number of directory entries in the -** telemetry packet will in large part determine the packet size. -*/ -#define FM_DIR_LIST_PKT_ENTRIES 20 - - -/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ -/* */ -/* FM platform configuration parameters - child task definitions */ -/* */ -/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ - -/** \fmcfg Child Task File I/O Control Settings -** -** \par Description: -** These definitions control the amount of file data that the FM child task -** will process before giving up the CPU to allow other tasks time to run. -** -** FM_CHILD_FILE_BLOCK_SIZE defines the size of each block of file data that -** the FM child task will read or write. This value also defines the size -** of the FM child task I/O buffer that exists in global memory. -** -** FM_CHILD_FILE_LOOP_COUNT defines the number of file data blocks that may -** be processed before the FM child task sleeps (gives up the CPU). -** -** FM_CHILD_FILE_SLEEP_MS defines the length of time (in milli-secs) before -** the FM child task wakes (re-acquires the CPU). Note that many platforms -** will limit the precision of this value. -** -** Thus the combination of the 3 values control CPU use by the FM child task. -** Using a smaller block size minimizes the amount of RAM used by the file -** I/O buffer, but at the expense of file efficiency. Adjust each of the -** values such that the combination is appropriate for the target platform. -** -** For example, if the block size is 2048 and the loop count is 16 and the -** sleep time is 20, then while processing a 1 Mbyte file there will be -** 32 sleep cycles of 20ms each, for a total task delay of 0.64 seconds. -** -** \par Limits: -** FM_CHILD_FILE_BLOCK_SIZE: The FM application limits this value to be no -** less than 256 bytes and no greater than 32KB. -** -** FM_CHILD_FILE_LOOP_COUNT: The FM application limits this value to be -** non-zero. There is no upper limit - a very large number effectively -** means that the FM child task will not surrender the CPU to other lower -** priority tasks. -** -** FM_CHILD_FILE_SLEEP_MS: The FM application limits this value to be no -** no greater than 100 ms. The value zero generally means a very short -** task delay - refer to the target platform documentation for specifics. -*/ -#define FM_CHILD_FILE_BLOCK_SIZE 2048 -#define FM_CHILD_FILE_LOOP_COUNT 16 -#define FM_CHILD_FILE_SLEEP_MS 20 - -/** \fmcfg Child file stat sleep -** -** \par Description: -** OS_stat is a CPU intensive call. FM uses the OS_stat call to query a -** file’s size, date, and mode when setting up directory listings. -** Querying a large number of files and/or files large in size when -** processing directory listing commands can cause FM to hog the CPU. To -** mitigate this, options to sleep a configurable number of milliseconds -** between calls to OS_stat for a configurable number of files -** in a directory listing is provided. A large sleep cycle will not hang the CPU -** but it may take a long time for directory listing to complete. A shorter -** sleep cycle will speed up the directory listing commands but may cause -** FM to hog the CPU. -** -** FM_CHILD_STAT_SLEEP_MS: The number of milliseconds to sleep each -** cycle. One cycle is FM_CHILD_STAT_SLEEP_FILECOUNT. -** -** FM_CHILD_STAT_SLEEP_FILECOUNT: The number of files to process (OS_stat) before -** sleeping FM_CHILD_STAT_SLEEP_MS. -** Works in tandem with FM_CHILD_STAT_SLEEP_MS to reduce CPU hogging -** while allowing slightly more customization to balance time the operator is waiting to -** get data back from a directory listing versus FM hogging the CPU with calls to OS_stat -** -** In short: -** High SLEEP_MS means less CPU hogging by FM but a longer time to process a dir listing command -** Low SLEEP_MS means more potential CPU hogging by FM but shorter time to process a dir listing command -** High FILECOUNT means more potential CPU hogging by FM but a shorter time to process a dir listing command -** Low FILECOUNT means less CPU hogging by FM but longer time to process a dir listing command -** \par Limits: -** The default is zero unless the mission needs require them to be changed. -** -*/ -#define FM_CHILD_STAT_SLEEP_MS 0 -#define FM_CHILD_STAT_SLEEP_FILECOUNT 0 - -/** \fmcfg Child Task Command Queue Entry Count -** -** \par Description: -** This definition sets the array depth for the command arguments queue in -** the FM main task to FM child task handshake interface. The value sets -** the upper limit for the number of commands that can be waiting in the -** queue to be processed by the low priority FM child task. A multi-entry -** command queue prevents the occasional slow command from being rejected -** because the child task has not yet completed the previous slow command. -** -** \par Limits: -** The FM application limits this value to be no less than 1 and no greater -** than 10. There must be at least one because this is the method for -** passing command arguments from the parent to the child task. The upper -** limit is arbitrary. -*/ -#define FM_CHILD_QUEUE_DEPTH 3 - - -/** \fmcfg Child Task Name - cFE object name -** -** \par Description: -** This definition sets the FM child task object name. The task object -** name is required during child task creation by cFE Executive Services. -** -** \par Limits: -** FM requires that this name be defined, but otherwise places -** no limits on the definition. Refer to CFE Executive Services -** for specific information on limits related to object names. -*/ -#define FM_CHILD_TASK_NAME "FM_CHILD_TASK" - - -/** \fmcfg Child Task Stack Size -** -** \par Description: -** This definition sets the size in bytes of the FM child task -** stack. It is highly recommended that this assignment be made -** by someone familiar with the system requirements for tasks -** running on the target platform. -** -** \par Limits: -** The FM application limits this value to be no less than 2048 -** and no greater than 20480. These limits are purely arbitrary -** and may need to be modified for specific platforms. -*/ -#define FM_CHILD_TASK_STACK_SIZE 20480 - - -/** \fmcfg Child Task Execution Priority -** -** \par Description: -** This definition sets the execution priority for the FM child -** task. It is highly recommended that this assignment be made -** by someone familiar with the system requirements for tasks -** running on the target platform. -** -** \par Limits: -** Value to be no less than 1 and no greater than 255. -** -** \par Priority Values: -** Note that a small value has higher priority than a large value. -** Thus, 100 is higher priority than 150. It is also necessary to -** ensure that a child task has lower priority than its parent. -** It should be clear that a child task that runs ahead of its -** parent defeats the purpose of having a child task to run in -** the background. -*/ -#define FM_CHILD_TASK_PRIORITY 208 - - -/** \fmcfg Child Task Semaphore Name - cFE object name -** -** \par Description: -** This definition sets the FM child task semaphore object name. -** The semaphore object name is required during semaphore creation -** by cFE Executive Services. -** -** \par Limits: -** FM requires that this name be defined, but otherwise places -** no limits on the definition. Refer to CFE Executive Services -** for specific information on limits related to object names. -*/ -#define FM_CHILD_SEM_NAME "FM_CHILD_SEM" - - -/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ -/* */ -/* FM platform configuration parameters - table definitions */ -/* */ -/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ - -/** \fmcfg Free Space Table Name - cFE object name -** -** \par Description: -** Table object name is required during table creation. -** -** \par Limits: -** FM requires that this name be defined, but otherwise places -** no limits on the definition. Refer to CFE Table Services -** for specific information on limits related to table names. -*/ -#define FM_TABLE_CFE_NAME "FreeSpace" - - -/** \fmcfg Free Space Table Name - filename with path -** -** \par Description: -** Table name with path is required to load table at startup. -** -** \par Limits: -** FM requires that this name be defined, but otherwise places -** no limits on the definition. If the named table does not -** exist or fails validation, the table load will fail. -*/ -#define FM_TABLE_DEF_NAME "/cf/apps/fm_freespace.tbl" - - -/** \fmcfg Free Space Table Name - filename without path -** -** \par Description: -** Table name without path defines the output name for the table -** file created during the table make process. -** -** \par Limits: -** FM requires that this name be defined, but otherwise places -** no limits on the definition. If the table name is not -** valid then the make process may fail, or the table file may -** be unloadable to the target hardware. -*/ -#define FM_TABLE_FILENAME "fm_freespace.tbl" - - -/** \fmcfg Free Space Table Description -** -** \par Description: -** Table files contain headers that include descriptive text. -** This text will be put into the file header during the table -** make process. -** -** \par Limits: -** FM requires that this name be defined, but otherwise places -** no limits on the definition. Refer to cFE Table Services -** for limits related to table descriptive text. -*/ -#define FM_TABLE_DEF_DESC "FM File System Free Space Table" - - -/** \fmcfg Number of Free Space Table Entries -** -** \par Description: -** This value defines the number of entries in both the FM file system -** free space table and the FM file system free space telemetry packet. -** Note: this value does not define the number of file systems present -** or supported by the CFE-OSAL, the value only defines the number of -** file systems for which FM may be enabled to report free space data. -** -** \par Limits: -** FM limits this value to be not less than 1 and not greater than 16. -*/ -#define FM_TABLE_ENTRY_COUNT 8 - - -/** \fmcfg Table Data Validation Error Code -** -** \par Description: -** Table data is verified during the table load process. Should -** the validation process fail, this value will be returned by -** FM to cFE Table Services and displayed in an event message. -** -** \par Limits: -** FM requires that this value be defined, but otherwise places -** no limits on the definition. Refer to cFE Table Services -** for limits related to error return values. -*/ -#define FM_TABLE_VALIDATION_ERR (0xCF000080L) - - -#endif /* FM_PLATFORM_CFG_H */ - -/************************/ -/* End of File Comment */ -/************************/ diff --git a/config/ocpoc/s1000/inc/gps_platform_cfg.h b/config/ocpoc/s1000/inc/gps_platform_cfg.h deleted file mode 100644 index 57e4df39d..000000000 --- a/config/ocpoc/s1000/inc/gps_platform_cfg.h +++ /dev/null @@ -1,124 +0,0 @@ -#ifndef GPS_PLATFORM_CFG_H -#define GPS_PLATFORM_CFG_H - -#ifdef __cplusplus -extern "C" { -#endif - -#define GPS_CUSTOM_CHILD_TASK_FLAGS OS_ENABLE_CORE_0 - -/* -** GPS Platform Configuration Parameter Definitions -*/ - -/** \brief Mission specific version number for GPS application -** -** \par Description: -** An application version number consists of four parts: -** major version number, minor version number, revision -** number and mission specific revision number. The mission -** specific revision number is defined here and the other -** parts are defined in "amc_version.h". -** -** \par Limits: -** Must be defined as a numeric value that is greater than -** or equal to zero. -*/ -#define GPS_MISSION_REV (0) - -/** \brief Pipe depth for the Scheduler pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define GPS_SCH_PIPE_DEPTH (2) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define GPS_SCH_PIPE_NAME ("GPS_SCH_PIPE") - -/** \brief The SB pend behavior type for the Scheduler pipe. -** -** \par Limits: -** One of: CFE_SB_POLL, CFE_SB_PEND_FOREVER, or the -** number of milliseconds to wait for a new message (recommended). -** Note, using CFE_SB_PEND_FOREVER may cause an unresponsive -** application if no messages arrive on this pipe. -*/ -#define GPS_SCH_PIPE_PEND_TIME (2000) - -/** \brief The number of WAKEUP messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max limited to CFE_SB_MAX_PIPE_DEPTH-1. Note the -** GPS_READ_SENSOR_MID_MAX_MSG_COUNT and GPS_SEND_HK_MID_MAX_MSG_COUNT -** must be less than GPS_SCH_PIPE_DEPTH. -*/ -#define GPS_READ_SENSOR_MID_MAX_MSG_COUNT (1) - -/** \brief The number of SEND_HK messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. Note the -** GPS_READ_SENSOR_MID_MAX_MSG_COUNT and GPS_SEND_HK_MID_MAX_MSG_COUNT -** must be less than GPS_SCH_PIPE_DEPTH. -*/ -#define GPS_SEND_HK_MID_MAX_MSG_COUNT (1) - -/** \brief Pipe depth for the command pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define GPS_CMD_PIPE_DEPTH (4) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define GPS_CMD_PIPE_NAME ("GPS_CMD_PIPE") - -/** \brief Pipe depth for the data pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define GPS_DATA_PIPE_DEPTH (4) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define GPS_DATA_PIPE_NAME ("GPS_DATA_PIPE") - -/** \brief The config table default filename -** -** \par Limits: -** The length of each string, including the NULL terminator cannot exceed -** the #OS_MAX_PATH_LEN value. -*/ -#define GPS_CONFIG_TABLE_FILENAME ("/cf/apps/gps_config.tbl") - -/** \brief The timeout value, in milliseconds, to wait for ES application startup sync. -** -** \par Limits: -** This parameter must be at least 1000 (ms). -*/ -#define GPS_STARTUP_TIMEOUT_MSEC (1000) - - -#ifdef __cplusplus -} -#endif - -#endif /* GPS_PLATFORM_CFG_H */ - -/************************/ -/* End of File Comment */ -/************************/ - diff --git a/config/ocpoc/s1000/inc/hk_msgids.h b/config/ocpoc/s1000/inc/hk_msgids.h deleted file mode 100644 index ab602d518..000000000 --- a/config/ocpoc/s1000/inc/hk_msgids.h +++ /dev/null @@ -1,11 +0,0 @@ -#ifndef HK_MSGIDS_H -#define HK_MSGIDS_H - - -#include "msg_ids.h" - -#endif /* HK_MSGIDS_H */ - -/************************/ -/* End of File Comment */ -/************************/ diff --git a/config/ocpoc/s1000/inc/hk_platform_cfg.h b/config/ocpoc/s1000/inc/hk_platform_cfg.h deleted file mode 100644 index bd46c7291..000000000 --- a/config/ocpoc/s1000/inc/hk_platform_cfg.h +++ /dev/null @@ -1,123 +0,0 @@ -#ifndef HK_PLATFORM_CFG_H -#define HK_PLATFORM_CFG_H - - - -/************************************************************************* -** Macro definitions -**************************************************************************/ - -/** -** \hkcfg Application Pipe Depth -** -** \par Description: -** Dictates the pipe depth of the hk command pipe. -** -** \par Limits -** The minimum size of this paramater is 1 -** The maximum size dictated by cFE platform configuration -** parameter CFE_SB_MAX_PIPE_DEPTH -*/ -#define HK_PIPE_DEPTH 40 - - -/** -** \hkcfg Discard Incomplete Combo Packets -** -** \par Description: -** Dictates whether combo packets that have not had all data contents -** updated since last requested will be discarded (YES = 1) or sent -** anyway (NO = 0). -** -** \par Limits -** This parameter can be set to 0 or 1 only. -*/ -#define HK_DISCARD_INCOMPLETE_COMBO 0 - - -/** -** \hkcfg Maximum Number of HK Copy Table Entries -** -** \par Description: -** Dictates the number of elements in the hk copy table. -** -** \par Limits -** The maximum size of this paramater is 8192 -*/ -#define HK_COPY_TABLE_ENTRIES 128 - - -/** -** \hkcfg Number of bytes in the HK Memory Pool -** -** \par Description: -** The HK memory pool contains the memory needed for the output packets. -** The output packets are dynamically allocated from this pool when the -** HK copy table is initially processed or loaded with new data. -** -** \par Limits -** The Housekeeping app does not place a limit on this parameter, but there is -** an overhead cost in the memory pool. The value must be larger than what is -** needed. -*/ -#define HK_NUM_BYTES_IN_MEM_POOL (6 * 1024) - - -/** -** \hkcfg Name of the HK Copy Table -** -** \par Description: -** This parameter defines the name of the HK Copy Table. -** -** \par Limits -** The Housekeeping app does not place a limit on this parameter -*/ -#define HK_COPY_TABLE_NAME "CopyTable" - - -/** -** \hkcfg Name of the HK Run-time Table -** -** \par Description: -** This parameter defines the name of the HK Run-time Table. -** -** \par Limits -** The Housekeeping app does not place a limit on this parameter -*/ -#define HK_RUNTIME_TABLE_NAME "RuntimeTable" - - -/** -** \hkcfg HK Copy Table Filename -** -** \par Description: -** The value of this constant defines the filename of the HK Copy Table -** -** \par Limits -** The length of each string, including the NULL terminator cannot exceed -** the #OS_MAX_PATH_LEN value. -*/ - -#define HK_COPY_TABLE_FILENAME "/cf/apps/hk_cpy_tbl.tbl" - -/** \hkcfg Mission specific version number for HK application -** -** \par Description: -** An application version number consists of four parts: -** major version number, minor version number, revision -** number and mission specific revision number. The mission -** specific revision number is defined here and the other -** parts are defined in "hk_version.h". -** -** \par Limits: -** Must be defined as a numeric value that is greater than -** or equal to zero. -*/ -#define HK_MISSION_REV 0 - - -#endif /* HK_PLATFORM_CFG_H */ - -/************************/ -/* End of File Comment */ -/************************/ diff --git a/config/ocpoc/s1000/inc/hmc5883_platform_cfg.h b/config/ocpoc/s1000/inc/hmc5883_platform_cfg.h deleted file mode 100644 index 0a27fcb81..000000000 --- a/config/ocpoc/s1000/inc/hmc5883_platform_cfg.h +++ /dev/null @@ -1,134 +0,0 @@ -#ifndef HMC5883_PLATFORM_CFG_H -#define HMC5883_PLATFORM_CFG_H - -#ifdef __cplusplus -extern "C" { -#endif - -/* -** HMC5883 Platform Configuration Parameter Definitions -*/ - -/** \brief Mission specific version number for HMC5883 application -** -** \par Description: -** An application version number consists of four parts: -** major version number, minor version number, revision -** number and mission specific revision number. The mission -** specific revision number is defined here and the other -** parts are defined in "amc_version.h". -** -** \par Limits: -** Must be defined as a numeric value that is greater than -** or equal to zero. -*/ -#define HMC5883_MISSION_REV (0) - -/** \brief Pipe depth for the Scheduler pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define HMC5883_SCH_PIPE_DEPTH (2) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define HMC5883_SCH_PIPE_NAME ("HMC5883_SCH_PIPE") - -/** \brief The SB pend behavior type for the Scheduler pipe. -** -** \par Limits: -** One of: CFE_SB_POLL, CFE_SB_PEND_FOREVER, or the -** number of milliseconds to wait for a new message (recommended). -** Note, using CFE_SB_PEND_FOREVER may cause an unresponsive -** application if no messages arrive on this pipe. -*/ -#define HMC5883_SCH_PIPE_PEND_TIME (2000) - -/** \brief The number of WAKEUP messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max limited to CFE_SB_MAX_PIPE_DEPTH-1. Note the -** HMC5883_WAKEUP_MID_MAX_MSG_COUNT and HMC5883_SEND_HK_MID_MAX_MSG_COUNT -** must be less than HMC5883_SCH_PIPE_DEPTH. -*/ -#define HMC5883_WAKEUP_MID_MAX_MSG_COUNT (1) - -/** \brief The number of SEND_HK messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. Note the -** HMC5883_WAKEUP_MID_MAX_MSG_COUNT and HMC5883_SEND_HK_MID_MAX_MSG_COUNT -** must be less than HMC5883_SCH_PIPE_DEPTH. -*/ -#define HMC5883_SEND_HK_MID_MAX_MSG_COUNT (1) - -/** \brief Pipe depth for the command pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define HMC5883_CMD_PIPE_DEPTH (4) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define HMC5883_CMD_PIPE_NAME ("HMC5883_CMD_PIPE") - -/** \brief Pipe depth for the data pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define HMC5883_DATA_PIPE_DEPTH (4) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define HMC5883_DATA_PIPE_NAME ("HMC5883_DATA_PIPE") - -/** \brief The config table default filename -** -** \par Limits: -** The length of each string, including the NULL terminator cannot exceed -** the #OS_MAX_PATH_LEN value. -*/ -#define HMC5883_CONFIG_TABLE_FILENAME ("/cf/apps/hmc5883_config.tbl") - -/** \brief The timeout value, in milliseconds, to wait for ES application startup sync. -** -** \par Limits: -** This parameter must be at least 1000 (ms). -*/ -#define HMC5883_STARTUP_TIMEOUT_MSEC (1000) - -/** \brief Mag divider for calculated scaling */ -#define HMC5883_MAG_DIVIDER (820.0f) - -/** \brief Mag unit for calculated scaling */ -#define HMC5883_MAG_UNIT (1.0f) - -/** \brief Precalculated mag range */ -#define HMC5883_CALC_MAG_RANGE (1.9f) - -/** \brief Precalculated mag scaling */ -#define HMC5883_CALC_MAG_SCALING (HMC5883_MAG_UNIT / HMC5883_MAG_DIVIDER) - - -#ifdef __cplusplus -} -#endif - -#endif /* HMC5883_PLATFORM_CFG_H */ - -/************************/ -/* End of File Comment */ -/************************/ - diff --git a/config/ocpoc/s1000/inc/hs_msgids.h b/config/ocpoc/s1000/inc/hs_msgids.h deleted file mode 100644 index 8db455fb4..000000000 --- a/config/ocpoc/s1000/inc/hs_msgids.h +++ /dev/null @@ -1,10 +0,0 @@ -#ifndef HS_MSGIDS_H -#define HS_MSGIDS_H - -#include "msg_ids.h" - -#endif /*HS_MSGIDS_H*/ - -/************************/ -/* End of File Comment */ -/************************/ diff --git a/config/ocpoc/s1000/inc/hs_platform_cfg.h b/config/ocpoc/s1000/inc/hs_platform_cfg.h deleted file mode 100644 index 1c18853e0..000000000 --- a/config/ocpoc/s1000/inc/hs_platform_cfg.h +++ /dev/null @@ -1,606 +0,0 @@ -#ifndef HS_PLATFORM_CFG_H -#define HS_PLATFORM_CFG_H - -/** \hscfg Application Name -** -** \par Description: -** This definition must match the name used at startup by the cFE -** Executive Services when creating the HS application. Note that -** application names are also an argument to certain cFE commands. -** For example, the application name is needed to access tables -** via cFE Table Services commands. -** -** \par Limits: -** HS requires that this name be defined, but otherwise places -** no limits on the definition. Refer to CFE Executive Services -** for specific information on limits related to application names. -*/ -#define HS_APP_NAME "HS" - -/**\hscfg Idle Task Configuration Parameters (custom) -** -** \par Description: -** These parameters are used by #CFE_ES_CreateChildTask -** Note that these values are only necessarily relevant in the -** default hs_custom.c. -** -** \par Limits: -** These limits will vary by platform and available resources. -*/ -#define HS_IDLE_TASK_NAME "HS_IDLE_TASK" -#define HS_IDLE_TASK_STACK_PTR 0 -#define HS_IDLE_TASK_STACK_SIZE 4096 -#define HS_IDLE_TASK_FLAGS 0 - -/**\hscfg Idle Task Priority (custom) -** -** \par Description: -** This parameter is used to set the priority of the Idle Task. It should -** be higher than all other user created tasks, but may need to be set lower -** than the maximum value if an OS uses its own minimum priority task. -** Note that these values are only necessarily relevant in the -** default hs_custom.c. -** -** \par Limits: -** This parameter can't be larger than 255. -*/ -#define HS_IDLE_TASK_PRIORITY 255 - -/** \hscfg Maximum reported execution counters -** -** \par Description: -** Maximum number of execution counters that can be -** specified to be reported in telemetry. -** -** \par Limits: -** This parameter can't be larger than an unsigned 32 bit -** integer (4294967295). -** -** This parameter will dictate the size of the Execution -** Counter Table (XCT): -** -** XCT Size = HS_MAX_EXEC_CNT_SLOTS * sizeof(#HS_XCTEntry_t) -** -** The total size of this table should not exceed the -** cFE size limit for a single buffered table set by the -** #CFE_TBL_MAX_SNGL_TABLE_SIZE parameter -*/ -#define HS_MAX_EXEC_CNT_SLOTS 32 - -/** \hscfg Maximum message action types -** -** \par Description: -** Maximum number of Message Action action types. -** -** \par Limits: -** This parameter can't be larger than 4 less than an -** unsigned 16 bit integer (65531). -** -** This parameter must be greater than 0. -** -** This parameter will influence the size of the Message -** Action Table (MAT): -** -** MAT Size = HS_MAX_MSG_ACT_TYPES * (HS_MAX_MSG_ACT_SIZE + 4) -** -** The total size of this table should not exceed the -** cFE size limit for a single buffered table set by the -** #CFE_TBL_MAX_SNGL_TABLE_SIZE parameter -*/ -#define HS_MAX_MSG_ACT_TYPES 8 - -/** \hscfg Maximum message action size (in bytes) -** -** \par Description: -** Size in bytes of maximum length of software bus message that -** can be sent using a Message Action action type. -** -** \par Limits: -** This parameter can't be larger than #CFE_SB_MAX_SB_MSG_SIZE -** -** This parameter can't be smaller than a packet header -** -** This parameter will influence the size of the Message -** Action Table (MAT): -** -** MAT Size = HS_MAX_MSG_ACT_TYPES * (HS_MAX_MSG_ACT_SIZE + 4) -** -** The total size of this table should not exceed the -** cFE size limit for a single buffered table set by the -** #CFE_TBL_MAX_SNGL_TABLE_SIZE parameter -*/ -#define HS_MAX_MSG_ACT_SIZE 16 - -/** \hscfg Maximum number of monitored applications -** -** \par Description: -** Maximum number of applications that can be -** monitored to assure check-ins -** -** \par Limits: -** This parameter can't be larger than an unsigned 32 bit -** integer (4294967295). -** -** This parameter must be greater than 0. -** -** This parameter will dictate the size of the Application -** Monitor Table (AMT): -** -** AMT Size = HS_MAX_MONITORED_APPS * sizeof(#HS_AMTEntry_t) -** -** The total size of this table should not exceed the -** cFE size limit for a single buffered table set by the -** #CFE_TBL_MAX_SNGL_TABLE_SIZE parameter -*/ -#define HS_MAX_MONITORED_APPS 32 - -/** \hscfg Maximum number of monitored events -** -** \par Description: -** Maximum number of events that can be -** monitored -** -** \par Limits: -** This parameter can't be larger than an unsigned 32 bit -** integer (4294967295). -** -** This parameter must be greater than 0. -** -** This parameter will dictate the size of the Event -** Monitor Table (EMT): -** -** EMT Size = HS_MAX_MONITORED_EVENTS * sizeof(#HS_EMTEntry_t) -** -** The total size of this table should not exceed the -** cFE size limit for a single buffered table set by the -** #CFE_TBL_MAX_SNGL_TABLE_SIZE parameter -*/ -#define HS_MAX_MONITORED_EVENTS 16 - -/** \hscfg Watchdog Timeout Value -** -** \par Description: -** Number of milliseconds before a watchdog timeout occurs. -** -** \par Limits: -** This parameter can't be larger than an unsigned 32 bit -** integer (4294967295). -** -** This parameter must be greater than 0. -*/ -#define HS_WATCHDOG_TIMEOUT_VALUE 10000 - -/** -** \hscfg Time to wait after performing processing (in milliseconds) -** -** \par Description: -** Dictates the length of a task delay performed prior to checking -** the Software Bus for a Wakeup Message. This ensures that HS will -** run no more often than a certain rate. If this parameter is set to 0, -** no task delay will be performed. Time is in milliseconds. -** -** \par Limits -** This parameter can't be larger than an unsigned 32 bit -** integer (4294967295). -*/ -#define HS_POST_PROCESSING_DELAY 0 - -/** -** \hscfg Wakeup Message Software Bus Timeout -** -** \par Description: -** This parameter is passed into #CFE_SB_RcvMsg as the timeout value. -** It can specify #CFE_SB_POLL, #CFE_SB_PEND_FOREVER, or a timeout -** value in milliseconds. -** -** \par Limits -** This Parameter must be #CFE_SB_POLL, #CFE_SB_PEND_FOREVER, -** or greater than 0 and less than 2^31 - 1 -** -** As a timeout, this parameter should be less than -** (#HS_WATCHDOG_TIMEOUT_VALUE * 1000) - HS runtime in ms -** otherwise HS may not be able to service the watchdog in time. -*/ -#define HS_WAKEUP_TIMEOUT 1200 - -/** \hscfg CPU aliveness output string -** -** \par Description: -** String that is output to via #OS_printf periodically if aliveness -** is enabled. -** -** \par Limits: -** None. -** -*/ -#define HS_CPU_ALIVE_STRING "." - -/** \hscfg CPU aliveness output period -** -** \par Description: -** Rate in number of HS cycles at which the HS_CPU_ALIVE_STRING -** is output via the UART. -** -** \par Limits: -** This parameter can't be larger than an unsigned 32 bit -** integer (4294967295). -** -*/ -#define HS_CPU_ALIVE_PERIOD 5 - -/** \hscfg Max Number of Processor Resets that may be performed by HS -** -** \par Description: -** Maximum number of times that the HS App will attempt a processor -** reset as the result of either an Application Monitor or -** Event Monitor Failure -** -** \par Limits: -** This parameter can't be larger than an unsigned 16 bit -** integer (65535). -** -** Although not enforced, if this parameter is greater than or -** equal to #CFE_ES_MAX_PROCESSOR_RESETS then a POWER-ON reset -** will occur before the max count is reached, resetting the remaining -** actions to the value set here. -** -*/ -#define HS_MAX_RESTART_ACTIONS 3 - -/** \hscfg Software bus command pipe depth -** -** \par Description: -** Depth of the software bus pipe HS uses for commands and HK requests. -** Used during initialization in the call to #CFE_SB_CreatePipe -** -** \par Limits: -** This parameter can't be larger than #CFE_SB_MAX_PIPE_DEPTH -** -** This parameter must be greater than 0. -*/ -#define HS_CMD_PIPE_DEPTH 12 - -/** \hscfg Software bus event pipe depth -** -** \par Description: -** Depth of the software bus pipe HS uses for event monitoring. -** This should be set to supply sufficient room for the expected event -** message load per second. Used during initialization in the call to -** #CFE_SB_CreatePipe -** -** \par Limits: -** This parameter can't be larger than #CFE_SB_MAX_PIPE_DEPTH -** -** This parameter must be greater than 0. -*/ -#define HS_EVENT_PIPE_DEPTH 32 - -/** \hscfg Software bus wakeup pipe depth -** -** \par Description: -** Depth of the software bus pipe HS uses for wakeup messages. -** Used during initialization in the call to #CFE_SB_CreatePipe -** -** \par Limits: -** This parameter can't be larger than #CFE_SB_MAX_PIPE_DEPTH -** -** This parameter must be greater than 0. -*/ -#define HS_WAKEUP_PIPE_DEPTH 1 - -/** -** \hscfg Time to wait before a processor reset (in milliseconds) -** -** \par Description: -** Dictates the length of the task delay (milliseconds) performed prior -** to calling #CFE_ES_ResetCFE to allow for any event message to go out. -** -** \par Limits -** This parameter can't be larger than an unsigned 32 bit -** integer (4294967295). -*/ -#define HS_RESET_TASK_DELAY 50 - -/** -** \hscfg Time to wait for all apps to be started (in milliseconds) -** -** \par Description: -** Dictates the timeout for the #CFE_ES_WaitForStartupSync call that -** HS uses to wait for all of the Applications specified in the startup -** script to finish initialization. HS will wait this amount of time -** before assuming all startup script applications have been started and -** will then begin nominal processing. -** -** \par Limits -** This parameter can't be larger than an unsigned 32 bit -** integer (4294967295). -** -** This should be greater than or equal to the Startup Sync timeout for -** any application in the Application Monitor Table. -*/ -#define HS_STARTUP_SYNC_TIMEOUT 65000 - -/** \hscfg Default State of the Application Monitor -** -** \par Description: -** State the Application Monitor is set to when the HS -** application starts. -** -** \par Limits: -** Must be HS_STATE_ENABLED or HS_STATE_DISABLED -*/ -#define HS_APPMON_DEFAULT_STATE HS_STATE_ENABLED - -/** \hscfg Default State of the Event Monitor -** -** \par Description: -** State the Event Monitor is set to when the HS -** application starts. -** -** \par Limits: -** Must be HS_STATE_ENABLED or HS_STATE_DISABLED -*/ -#define HS_EVENTMON_DEFAULT_STATE HS_STATE_ENABLED - -/** \hscfg Default State of the Aliveness Indicator -** -** \par Description: -** State the Aliveness Indicator is set to when the HS application -** starts. -** -** \par Limits: -** Must be HS_STATE_ENABLED or HS_STATE_DISABLED -*/ -#define HS_ALIVENESS_DEFAULT_STATE HS_STATE_ENABLED - -/** \hscfg Default State of the CPU Hogging Indicator -** -** \par Description: -** State the CPU Hogging Event Message is set to when the HS application -** starts. -** -** \par Limits: -** Must be HS_STATE_ENABLED or HS_STATE_DISABLED -*/ -#define HS_CPUHOG_DEFAULT_STATE HS_STATE_ENABLED - -/** \hscfg Application Monitor Table (AMT) filename -** -** \par Description: -** Default file to load the Applications Monitor Table from -** during a power-on reset sequence -** -** \par Limits: -** This string shouldn't be longer than #OS_MAX_PATH_LEN for the -** target platform in question -*/ -#define HS_AMT_FILENAME "/cf/apps/hs_amt.tbl" - -/** \hscfg Event Monitor Table (EMT) filename -** -** \par Description: -** Default file to load the Event Monitor Table from -** during a power-on reset sequence -** -** \par Limits: -** This string shouldn't be longer than #OS_MAX_PATH_LEN for the -** target platform in question -*/ -#define HS_EMT_FILENAME "/cf/apps/hs_emt.tbl" - -/** \hscfg Execution Counter Table (XCT) filename -** -** \par Description: -** Default file to load the Execution Counters Table from -** during a power-on reset sequence -** -** \par Limits: -** This string shouldn't be longer than #OS_MAX_PATH_LEN for the -** target platform in question -*/ -#define HS_XCT_FILENAME "/cf/apps/hs_xct.tbl" - -/** \hscfg Message Actions Table (MAT) filename -** -** \par Description: -** Default file to load the Message Actions Table from -** during a power-on reset sequence -** -** \par Limits: -** This string shouldn't be longer than #OS_MAX_PATH_LEN for the -** target platform in question -*/ -#define HS_MAT_FILENAME "/cf/apps/hs_mat.tbl" - -/** \hscfg CPU Utilization Calls per Mark (custom) -** -** \par Description: -** Number of times the Mark function must be called before it actually -** marks the time. This influences the interval size. The function -** calling the Mark function may not run at the same rate as the HS cycle -** (or HS may not want to monitor utilization every cycle) so this the -** interval to be at least as long as an HS cycle. -** Note that these values are only necessarily relevant in the -** default hs_custom.c. -** -** \par Limits: -** This parameter can't be larger than an unsigned 32 bit -** integer (4294967295). -*/ -#define HS_UTIL_CALLS_PER_MARK 1 - -/** \hscfg CPU Utilization Cycles per Interval (custom) -** -** \par Description: -** Number of HS Cycles it takes to complete a CPU Utilization Interval. -** HS will monitor the utilization after this number of HS wakeup cycles. -** Note that these values are only necessarily relevant in the -** default hs_custom.c. -** -** \par Limits: -** This parameter can't be larger than an unsigned 32 bit -** integer (4294967295). -*/ -#define HS_UTIL_CYCLES_PER_INTERVAL 1 - -/** \hscfg CPU Utilization Total Utils Per Interval -** -** \par Description: -** Number of Utils (counts) equal to full utilization. This allows for higher -** resolution than percentages, and non decimal based values. -** -** \par Limits: -** This parameter can't be larger than an unsigned 32 bit -** integer (4294967295). -*/ -#define HS_UTIL_PER_INTERVAL_TOTAL 10000 - -/** \hscfg CPU Utilization Hogging Utils Per Interval -** -** \par Description: -** Number of Utils (counts) equal to utilization which is considered hogging -** during one interval. A greater number of counts is also considered hogging. -** -** \par Limits: -** This parameter can't be larger than #HS_UTIL_PER_INTERVAL_TOTAL. -*/ -#define HS_UTIL_PER_INTERVAL_HOGGING 9900 - -/** \hscfg CPU Utilization Conversion Factor Multiplication 1 (custom) -** -** \par Description: -** First multiplication conversion factor. Number of idle ticks is multiplied -** this value first when converting to utils. -** Note that these values are only necessarily relevant in the -** default hs_custom.c. -** -** \par Limits: -** There may be processor dependent limits on value. Note that all math -** is done using "uint32" values; it is important that the number -** of loop iterations in HS_IDLE, times this value, not overflow. -** -** The result of the conversion must be a 32 bit signed integer -** (between -2147483648 and 2147483647). -*/ -#define HS_UTIL_CONV_MULT1 1 - -/** \hscfg CPU Utilization Conversion Factor Division (custom) -** -** \par Description: -** Division conversion factor. Number of idle ticks is divided by this value -** after it has been multiplied by #HS_UTIL_CONV_MULT1. -** Note that these values are only necessarily relevant in the -** default hs_custom.c. -** -** \par Limits: -** There may be processor dependent limits on value. -** -** The result of the conversion must be a 32 bit signed integer -** (between -2147483648 and 2147483647). -*/ -#define HS_UTIL_CONV_DIV 1 - -/** \hscfg CPU Utilization Conversion Factor Multiplication 2 (custom) -** -** \par Description: -** Second multiplication conversion factor. Number of idle ticks is multiplied -** this value after being divided by #HS_UTIL_CONV_DIV after being multiplied by -** #HS_UTIL_CONV_MULT1 when converting to utils. -** Note that these values are only necessarily relevant in the -** default hs_custom.c. -** -** \par Limits: -** There may be processor dependent limits on value. -** -** The result of the conversion must be a 32 bit signed integer -** (between -2147483648 and 2147483647). -*/ -#define HS_UTIL_CONV_MULT2 1 - -/** \hscfg CPU Utilization Hogging Timeout -** -** \par Description: -** Number of intervals for which the hogging limit must be exceeded before hogging -** is reported. -** -** \par Limits: -** This parameter can't be larger than an unsigned 32 bit -** integer (4294967295). -*/ -#define HS_UTIL_HOGGING_TIMEOUT 5 - -/** \hscfg CPU Peak Utilization Number of Intervals -** -** \par Description: -** Number of intervals over which the peak utilization is determined. -** -** \par Limits: -** This parameter can't be larger than an unsigned 32 bit -** integer (4294967295). -** -** This parameter controls the size of the array which stores -** previously measured utilization values. -*/ -#define HS_UTIL_PEAK_NUM_INTERVAL 64 - -/** \hscfg CPU Average Utilization Number of Intervals -** -** \par Description: -** Number of intervals over which the average utilization is computed. -** -** \par Limits: -** This parameter can't be larger than #HS_UTIL_PEAK_NUM_INTERVAL . -*/ -#define HS_UTIL_AVERAGE_NUM_INTERVAL 4 - -/** \hscfg CPU Utilization Diagnostics Mask (custom) -** -** \par Description: -** Count mask for CPU Utilization Calibration. Time will be marked -** when (Counts & Mask) == Mask -** Note that these values are only necessarily relevant in the -** default hs_custom.c. -** -** \par Limits: -** This parameter can't be larger than an unsigned 32 bit -** integer (4294967295). -*/ -#define HS_UTIL_DIAG_MASK 0xFFFFFFFF - -/** \hscfg CPU Utilization Diagnostics Array Configuration (custom) -** -** \par Description: -** Time will be marked into an array of subseconds. The independant parameter -** controls the exponent to which 2 is raised to determine the array size. As -** such, large values will require significant memory usage. -** Note that these values are only necessarily relevant in the -** default hs_custom.c. -** -** \par Limits: -** This parameter must be less than 32 and may not be negative. -*/ -#define HS_UTIL_TIME_DIAG_ARRAY_POWER 4 -#define HS_UTIL_TIME_DIAG_ARRAY_LENGTH (1<<(HS_UTIL_TIME_DIAG_ARRAY_POWER)) -#define HS_UTIL_TIME_DIAG_ARRAY_MASK (HS_UTIL_TIME_DIAG_ARRAY_LENGTH - 1) - - -/** \hscfg Mission specific version number for HS application -** -** \par Description: -** An application version number consists of four parts: -** major version number, minor version number, revision -** number and mission specific revision number. The mission -** specific revision number is defined here and the other -** parts are defined in "hs_version.h". -** -** \par Limits: -** Must be defined as a numeric value that is greater than -** or equal to zero. -*/ -#define HS_MISSION_REV 0 - -#endif /*HS_PLATFORM_CFG_H*/ - -/************************/ -/* End of File Comment */ -/************************/ diff --git a/config/ocpoc/s1000/inc/lc_msgids.h b/config/ocpoc/s1000/inc/lc_msgids.h deleted file mode 100644 index 38f2e04f9..000000000 --- a/config/ocpoc/s1000/inc/lc_msgids.h +++ /dev/null @@ -1,13 +0,0 @@ -#ifndef LC_MSGIDS_H -#define LC_MSGIDS_H - -#include "msg_ids.h" - -#define LC_ALL_ACTIONPOINTS 0xFFFF -#define LC_ALL_WATCHPOINTS 0xFFFF - -#endif /*LC_MSGIDS_H*/ - -/************************/ -/* End of File Comment */ -/************************/ diff --git a/config/ocpoc/s1000/inc/lc_platform_cfg.h b/config/ocpoc/s1000/inc/lc_platform_cfg.h deleted file mode 100644 index 3255f78b7..000000000 --- a/config/ocpoc/s1000/inc/lc_platform_cfg.h +++ /dev/null @@ -1,224 +0,0 @@ -#ifndef LC_PLATFORM_CFG_H -#define LC_PLATFORM_CFG_H - -/** \lccfg Application Name -** -** \par Description: -** This definition must match the name used at startup by the cFE -** Executive Services when creating the LC application. Note that -** application names are also an argument to certain cFE commands. -** For example, the application name is needed to access tables -** via cFE Table Services commands. -** -** \par Limits: -** LC requires that this name be defined, but otherwise places -** no limits on the definition. Refer to CFE Executive Services -** for specific information on limits related to application names. -*/ -#define LC_APP_NAME "LC" - - -/** \lccfg Command Pipe Depth -** -** \par Description: -** Maximum number of messages that will be allowed in the -** LC command pipe at one time. Used during initialization -** in the call to #CFE_SB_CreatePipe -** -** \par Limits: -** This parameter can't be larger than an unsigned 16 bit -** integer (65535). -*/ -#define LC_PIPE_DEPTH 12 - -/** \lccfg Maximum number of watchpoints -** -** \par Description: -** Maximum number of watchpoints that can be defined in the -** Watchpoint Definition Table (WDT) -** -** \par Limits: -** This parameter can't be larger than 65520 (0xFFF0) because -** higher values are reserved for use as Reversh Polish -** operators. -** -** This parameter will dictate the size of the Watchpoint -** Definition Table: -** -** WDT Size = LC_MAX_WATCHPOINTS * sizeof(#LC_WDTEntry_t) -** -** The total size of this table should not exceed the -** cFE size limit for a single buffered table set by the -** #CFE_TBL_MAX_SNGL_TABLE_SIZE parameter -*/ -#define LC_MAX_WATCHPOINTS 176 - -/** \lccfg Maximum number of actionpoints -** -** \par Description: -** Maximum number of actionpoints that can be defined in the -** Actionpoint Definition Table (ADT) -** -** \par Limits: -** This parameter can't be larger than an unsigned 16 bit -** integer (65535). -** -** This parameter will dictate the size of the Actionpoint -** Definition Table: -** -** ADT Size = LC_MAX_ACTIONPOINTS * sizeof(#LC_ADTEntry_t) -** -** The total size of this table should not exceed the -** cFE size limit for a single buffered table set by the -** #CFE_TBL_MAX_SNGL_TABLE_SIZE parameter -*/ -#define LC_MAX_ACTIONPOINTS 176 - -/** \lccfg LC state after power-on reset -** -** \par Description: -** What operating state LC should initialize to after a power-on -** reset. -** -** \par Limits: -** This parameter must be one of the following: -** #LC_STATE_ACTIVE -** #LC_STATE_PASSIVE -** #LC_STATE_DISABLED -*/ -#define LC_STATE_POWER_ON_RESET LC_STATE_DISABLED - -/** \lccfg Save data to CDS compiler switch -** -** \par Description: -** Compile switch that tells LC that we should save data -** over a processor or application reset by using the -** Critical Data Store (CDS). -** Comment out or \#undef to force LC to do a default (power-on) -** initialization sequence on all restarts (this is the -** default case). -** -** \par Limits: -** n/a -*/ -/* #define LC_SAVE_TO_CDS */ - -/** \lccfg LC state when CDS is restored -** -** \par Description: -** What operating state LC should initialize to after successfully -** restoring information from the CDS after a processor or -** application reset. This is only used when #LC_SAVE_TO_CDS -** is set to TRUE, and provides a way to override any state LC -** may have been operating in prior to the reset occurring. -** -** \par Limits: -** This parameter must be one of the following: -** #LC_STATE_ACTIVE -** #LC_STATE_PASSIVE -** #LC_STATE_DISABLED -** #LC_STATE_FROM_CDS -*/ -#define LC_STATE_WHEN_CDS_RESTORED LC_STATE_FROM_CDS - -/** \lccfg Watchpoint Definition Table (WDT) filename -** -** \par Description: -** Default file to load the watchpoint definition table from -** during a power-on reset sequence -** -** \par Limits: -** This string shouldn't be longer than #OS_MAX_PATH_LEN for the -** target platform in question -*/ -#define LC_WDT_FILENAME "/cf/apps/lc_def_wdt.tbl" - -/** \lccfg Actionpoint Definition Table (ADT) filename -** -** \par Description: -** Default file to load the actionpoint definition table from -** during a power-on reset sequence -** -** \par Limits: -** This string shouldn't be longer than #OS_MAX_PATH_LEN for the -** target platform in question -*/ -#define LC_ADT_FILENAME "/cf/apps/lc_def_adt.tbl" - -/** \lccfg Maximum reverse polish (RPN) equation size -** -** \par Description: -** Maximum combined number of operators and operands that may -** exist in an actionpoint definition's reverse polish equation -** -** \par Limits: -** The LC app does not place a limit on this parameter. -** However, raising this value will increase the size of the -** Actionpoint Definition Table (ADT) -*/ -#define LC_MAX_RPN_EQU_SIZE 20 - -/** \lccfg Maximum actionpoint event text string size -** -** \par Description: -** Maximum length of the event message string that can specified -** in an actionpoint definition (including NUL terminator) -** -** \par Limits: -** LC appends the trailer text #LC_AP_EVENT_TAIL_STR to this -** string when reporting actionpoint failures. The size of this -** string is #LC_AP_EVENT_TAIL_LEN -** -** The total value of LC_MAX_ACTION_TEXT + #LC_AP_EVENT_TAIL_LEN -** should be less than #CFE_EVS_MAX_MESSAGE_LENGTH to avoid -** event message truncation -** -** Raising this value will also increase the size of the -** Actionpoint Definition Table (ADT) -*/ -#define LC_MAX_ACTION_TEXT 32 - -/** \lccfg Maximum valid ADT RTS ID -** -** \par Description: -** The maximum RTS ID that LC will allow during table -** validation in a Actionpoint Definition Table (ADT) entry -** -** \par Limits: -** This parameter can't be larger than an unsigned 16 bit -** integer (65535). -*/ -#define LC_MAX_VALID_ADT_RTSID 0xFFF0 - -/** \lccfg Floating Point Compare Tolerance -** -** \par Description: -** Difference between 2 floats that will still compare as - equal. The default value of (1.0e-25) was taken from - the GNC file mathconstants.h -** -** \par Limits: -** The LC app does not place a limit on this parameter. -*/ -#define LC_FLOAT_TOLERANCE (1.0e-25) - -/** \mmcfg Mission specific version number for LC application -** -** \par Description: -** An application version number consists of four parts: -** major version number, minor version number, revision -** number and mission specific revision number. The mission -** specific revision number is defined here and the other -** parts are defined in "lc_version.h". -** -** \par Limits: -** Must be defined as a numeric value that is greater than -** or equal to zero. -*/ -#define LC_MISSION_REV 0 - -#endif /*LC_PLATFORM_CFG_H*/ - -/************************/ -/* End of File Comment */ -/************************/ diff --git a/config/ocpoc/s1000/inc/ld_platform_cfg.h b/config/ocpoc/s1000/inc/ld_platform_cfg.h deleted file mode 100644 index 210a0bcf0..000000000 --- a/config/ocpoc/s1000/inc/ld_platform_cfg.h +++ /dev/null @@ -1,122 +0,0 @@ -#ifndef LD_PLATFORM_CFG_H -#define LD_PLATFORM_CFG_H - -#ifdef __cplusplus -extern "C" { -#endif - -/* -** LD Platform Configuration Parameter Definitions -*/ - -/** \brief Mission specific version number for LD application -** -** \par Description: -** An application version number consists of four parts: -** major version number, minor version number, revision -** number and mission specific revision number. The mission -** specific revision number is defined here and the other -** parts are defined in "amc_version.h". -** -** \par Limits: -** Must be defined as a numeric value that is greater than -** or equal to zero. -*/ -#define LD_MISSION_REV (0) - -/** \brief Pipe depth for the Scheduler pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define LD_SCH_PIPE_DEPTH (15) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define LD_SCH_PIPE_NAME ("LD_SCH_PIPE") - -/** \brief The SB pend behavior type for the Scheduler pipe. -** -** \par Limits: -** One of: CFE_SB_POLL, CFE_SB_PEND_FOREVER, or the -** number of milliseconds to wait for a new message (recommended). -** Note, using CFE_SB_PEND_FOREVER may cause an unresponsive -** application if no messages arrive on this pipe. -*/ -#define LD_SCH_PIPE_PEND_TIME (2000) - -/** \brief The number of WAKEUP messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max limited to CFE_SB_MAX_PIPE_DEPTH-1. Note the -** LD_WAKEUP_MID_MAX_MSG_COUNT and LD_SEND_HK_MID_MAX_MSG_COUNT -** must be less than LD_SCH_PIPE_DEPTH. -*/ -#define LD_WAKEUP_MID_MAX_MSG_COUNT (1) - -/** \brief The number of SEND_HK messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. Note the -** LD_WAKEUP_MID_MAX_MSG_COUNT and LD_SEND_HK_MID_MAX_MSG_COUNT -** must be less than LD_SCH_PIPE_DEPTH. -*/ -#define LD_SEND_HK_MID_MAX_MSG_COUNT (1) - -/** \brief Pipe depth for the command pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define LD_CMD_PIPE_DEPTH (4) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define LD_CMD_PIPE_NAME ("LD_CMD_PIPE") - -/** \brief Pipe depth for the data pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define LD_DATA_PIPE_DEPTH (4) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define LD_DATA_PIPE_NAME ("LD_DATA_PIPE") - -/** \brief The config table default filename -** -** \par Limits: -** The length of each string, including the NULL terminator cannot exceed -** the #OS_MAX_PATH_LEN value. -*/ -#define LD_CONFIG_TABLE_FILENAME ("/cf/apps/ld_config.tbl") - -/** \brief The timeout value, in milliseconds, to wait for ES application startup sync. -** -** \par Limits: -** This parameter must be at least 1000 (ms). -*/ -#define LD_STARTUP_TIMEOUT_MSEC (1000) - - -#ifdef __cplusplus -} -#endif - -#endif /* LD_PLATFORM_CFG_H */ - -/************************/ -/* End of File Comment */ -/************************/ - diff --git a/config/ocpoc/s1000/inc/lgc_platform_cfg.h b/config/ocpoc/s1000/inc/lgc_platform_cfg.h deleted file mode 100644 index ee9701169..000000000 --- a/config/ocpoc/s1000/inc/lgc_platform_cfg.h +++ /dev/null @@ -1,130 +0,0 @@ -#ifndef LGC_PLATFORM_CFG_H -#define LGC_PLATFORM_CFG_H - -#ifdef __cplusplus -extern "C" { -#endif - -/* -** LGC Platform Configuration Parameter Definitions -*/ - -/** \brief Mission specific version number for LGC application -** -** \par Description: -** An application version number consists of four parts: -** major version number, minor version number, revision -** number and mission specific revision number. The mission -** specific revision number is defined here and the other -** parts are defined in "amc_version.h". -** -** \par Limits: -** Must be defined as a numeric value that is greater than -** or equal to zero. -*/ -#define LGC_MISSION_REV (0) - -/** \brief Pipe depth for the Scheduler pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define LGC_SCH_PIPE_DEPTH (2) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define LGC_SCH_PIPE_NAME ("LGC_SCH_PIPE") - -/** \brief The SB pend behavior type for the Scheduler pipe. -** -** \par Limits: -** One of: CFE_SB_POLL, CFE_SB_PEND_FOREVER, or the -** number of milliseconds to wait for a new message (recommended). -** Note, using CFE_SB_PEND_FOREVER may cause an unresponsive -** application if no messages arrive on this pipe. -*/ -#define LGC_SCH_PIPE_PEND_TIME (2000) - -/** \brief The number of WAKEUP messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max limited to CFE_SB_MAX_PIPE_DEPTH-1. Note the -** LGC_WAKEUP_MID_MAX_MSG_COUNT and LGC_SEND_HK_MID_MAX_MSG_COUNT -** must be less than LGC_SCH_PIPE_DEPTH. -*/ -#define LGC_WAKEUP_MID_MAX_MSG_COUNT (1) - -/** \brief The number of SEND_HK messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. Note the -** LGC_WAKEUP_MID_MAX_MSG_COUNT and LGC_SEND_HK_MID_MAX_MSG_COUNT -** must be less than LGC_SCH_PIPE_DEPTH. -*/ -#define LGC_SEND_HK_MID_MAX_MSG_COUNT (1) - -/** \brief Pipe depth for the command pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define LGC_CMD_PIPE_DEPTH (4) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define LGC_CMD_PIPE_NAME ("LGC_CMD_PIPE") - -/** \brief Pipe depth for the data pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define LGC_DATA_PIPE_DEPTH (4) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define LGC_DATA_PIPE_NAME ("LGC_DATA_PIPE") - -/** \brief The config table default filename -** -** \par Limits: -** The length of each string, including the NULL terminator cannot exceed -** the #OS_MAX_PATH_LEN value. -*/ -#define LGC_CONFIG_TABLE_FILENAME ("/cf/apps/lgc_config.tbl") - -/** \brief The timeout value, in milliseconds, to wait for ES application startup sync. -** -** \par Limits: -** This parameter must be at least 1000 (ms). -*/ -#define LGC_STARTUP_TIMEOUT_MSEC (1000) - - -/** \brief The number of landing gear actuators. -** -** \par Limits: -** None. -*/ -#define LGC_MAX_GEAR_OUTPUTS (1) - - -#ifdef __cplusplus -} -#endif - -#endif /* LGC_PLATFORM_CFG_H */ - -/************************/ -/* End of File Comment */ -/************************/ - diff --git a/config/ocpoc/s1000/inc/mac_platform_cfg.h b/config/ocpoc/s1000/inc/mac_platform_cfg.h deleted file mode 100644 index 58a381b18..000000000 --- a/config/ocpoc/s1000/inc/mac_platform_cfg.h +++ /dev/null @@ -1,113 +0,0 @@ -#ifndef MAC_PLATFORM_CFG_H -#define MAC_PLATFORM_CFG_H - -#ifdef __cplusplus -extern "C" { -#endif - -/* -** mac Platform Configuration Parameter Definitions -*/ - -/** \brief Mission specific version number for MAC application -** -** \par Description: -** An application version number consists of four parts: -** major version number, minor version number, revision -** number and mission specific revision number. The mission -** specific revision number is defined here and the other -** parts are defined in "mac_version.h". -** -** \par Limits: -** Must be defined as a numeric value that is greater than -** or equal to zero. -*/ -#define MAC_MISSION_REV (0) - -/** \brief Pipe depth for the Scheduler pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define MAC_SCH_PIPE_DEPTH (15) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define MAC_SCH_PIPE_NAME ("MAC_SCH_PIPE") - -/** \brief The SB pend behavior type for the Scheduler pipe. -** -** \par Limits: -** One of: CFE_SB_POLL, CFE_SB_PEND_FOREVER, or the -** number of milliseconds to wait for a new message (recommended). -** Note, using CFE_SB_PEND_FOREVER may cause an unresponsive -** application if no messages arrive on this pipe. -*/ -#define MAC_SCH_PIPE_PEND_TIME (2000) - -/** \brief The number of WAKEUP messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max limited to CFE_SB_MAX_PIPE_DEPTH-1. Note the -** MAC_SCH_PIPE_WAKEUP_RESERVED and MAC_SCH_PIPE_SEND_HK_RESERVED -** must be less than MAC_SCH_PIPE_DEPTH. -*/ -#define MAC_SCH_PIPE_WAKEUP_RESERVED (1) - -/** \brief The number of SEND_HK messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. Note the -** MAC_SCH_PIPE_WAKEUP_RESERVED and MAC_SCH_PIPE_SEND_HK_RESERVED -** must be less than MAC_SCH_PIPE_DEPTH. -*/ -#define MAC_SCH_PIPE_SEND_HK_RESERVED (1) - -/** \brief Pipe depth for the command pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define MAC_CMD_PIPE_DEPTH (15) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define MAC_CMD_PIPE_NAME ("MAC_CMD_PIPE") - -/** \brief The config table default filename -** -** \par Limits: -** The length of each string, including the NULL terminator cannot exceed -** the #OS_MAX_PATH_LEN value. -*/ -#define MAC_PARAM_TABLE_FILENAME ("/cf/apps/mac_param.tbl") - -/** \brief The timeout value, in milliseconds, to wait for ES application startup sync. -** -** \par Limits: -** This parameter must be at least 1000 (ms). -*/ -#define MAC_STARTUP_TIMEOUT_MSEC (1000) - -/* TODO: Add Doxygen markup. */ -#define MAC_CUSTOM_DEV_PATH "/tmp/ttyS0" - -#define MAC_MAX_MOTOR_OUTPUTS (16) - - -#ifdef __cplusplus -} -#endif - -#endif /* MAC_PLATFORM_CFG_H */ - -/************************/ -/* End of File Comment */ -/************************/ - diff --git a/config/ocpoc/s1000/inc/mavlink_platform_cfg.h b/config/ocpoc/s1000/inc/mavlink_platform_cfg.h deleted file mode 100644 index 915ab2abf..000000000 --- a/config/ocpoc/s1000/inc/mavlink_platform_cfg.h +++ /dev/null @@ -1,150 +0,0 @@ -#ifndef MAVLINK_PLATFORM_CFG_H -#define MAVLINK_PLATFORM_CFG_H - -#ifdef __cplusplus -extern "C" { -#endif - -/* -** ci Platform Configuration Parameter Definitions -*/ - -/** \brief Mission specific version number for MAVLINK application -** -** \par Description: -** An application version number consists of four parts: -** major version number, minor version number, revision -** number and mission specific revision number. The mission -** specific revision number is defined here and the other -** parts are defined in "ci_version.h". -** -** \par Limits: -** Must be defined as a numeric value that is greater than -** or equal to zero. -*/ -#define MAVLINK_MISSION_REV (0) - -/** \brief Pipe depth for the Scheduler pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define MAVLINK_SCH_PIPE_DEPTH (2) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define MAVLINK_SCH_PIPE_NAME ("MAVLINK_SCH_PIPE") - -/** \brief The SB pend behavior type for the Scheduler pipe. -** -** \par Limits: -** One of: CFE_SB_POLL, CFE_SB_PEND_FOREVER, or the -** number of milliseconds to wait for a new message (recommended). -** Note, using CFE_SB_PEND_FOREVER may cause an unresponsive -** application if no messages arrive on this pipe. -*/ -#define MAVLINK_SCH_PIPE_PEND_TIME (2000) - -/** \brief The number of WAKEUP messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max limited to CFE_SB_MAX_PIPE_DEPTH-1. Note the -** MAVLINK_SCH_PIPE_WAKEUP_RESERVED and MAVLINK_SCH_PIPE_SEND_HK_RESERVED -** must be less than MAVLINK_SCH_PIPE_DEPTH. -*/ -#define MAVLINK_SCH_PIPE_WAKEUP_RESERVED (1) - -/** \brief The number of SEND_HK messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. Note the -** MAVLINK_SCH_PIPE_WAKEUP_RESERVED and MAVLINK_SCH_PIPE_SEND_HK_RESERVED -** must be less than MAVLINK_SCH_PIPE_DEPTH. -*/ -#define MAVLINK_SCH_PIPE_SEND_HK_RESERVED (1) - -/** \brief The number of PROCESS_TIMEOUT messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define MAVLINK_SCH_PIPE_PROC_TIMEOUT_RESERVED (1) - -/** \brief Pipe depth for the command pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define MAVLINK_CMD_PIPE_DEPTH (CFE_SB_MAX_PIPE_DEPTH) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define MAVLINK_CMD_PIPE_NAME ("MAVLINK_CMD_PIPE") - -/** \brief Pipe depth for the data pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define MAVLINK_DATA_PIPE_DEPTH (4) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define MAVLINK_DATA_PIPE_NAME ("MAVLINK_DATA_PIPE") - -/** \brief The config table default filename -** -** \par Limits: -** The length of each string, including the NULL terminator cannot exceed -** the #OS_MAX_PATH_LEN value. -*/ -#define MAVLINK_ACTION_MAP_TABLE_FILENAME ("/cf/apps/mavlink_action.tbl") - -/** \brief The timeout table default filename -** -** \par Limits: -** The length of each string, including the NULL terminator cannot exceed -** the #OS_MAX_PATH_LEN value. -*/ -#define MAVLINK_TIMEOUT_TABLE_FILENAME ("/cf/apps/mavlink_timeout.tbl") - -/** \brief The timeout value, in milliseconds, to wait for ES application startup sync. -** -** \par Limits: -** This parameter must be at least 1000 (ms). -*/ -#define MAVLINK_STARTUP_TIMEOUT_MSEC (5000) - - -#define MAVLINK_MSG_PARAM_NAME_LEN (64) - -#define MAVLINK_SYSTEM_ID (1) -#define MAVLINK_COMPONENT_ID (1) -#define MAVLINK_GCS_IP ("10.10.0.13") -#define MAVLINK_GCS_PORT (14550) -#define MAVLINK_PASSTHRU_IP_SRC ("127.0.0.1") -#define MAVLINK_PASSTHRU_INGEST_PORT (14550) - -#define MAVLINK_ACTION_MAP_ENTRIES (10) -#define MAVLINK_HEARTBEAT_WAIT_CYCLES (5) - - -#ifdef __cplusplus -} -#endif - -#endif /* MAVLINK_PLATFORM_CFG_H */ - -/************************/ -/* End of File Comment */ -/************************/ - diff --git a/config/ocpoc/s1000/inc/md_msgids.h b/config/ocpoc/s1000/inc/md_msgids.h deleted file mode 100644 index a7d484c5d..000000000 --- a/config/ocpoc/s1000/inc/md_msgids.h +++ /dev/null @@ -1,10 +0,0 @@ -#ifndef MD_MSGIDS_H -#define MD_MSGIDS_H - -#include "msg_ids.h" - -#endif /*MD_MSGIDS_H*/ - -/************************/ -/* End of File Comment */ -/************************/ diff --git a/config/ocpoc/s1000/inc/md_platform_cfg.h b/config/ocpoc/s1000/inc/md_platform_cfg.h deleted file mode 100644 index b84ababdc..000000000 --- a/config/ocpoc/s1000/inc/md_platform_cfg.h +++ /dev/null @@ -1,99 +0,0 @@ -#ifndef MD_PLATFORM_CFG_H -#define MD_PLATFORM_CFG_H - - -/************************************************************************* -** Macro Definitions -*************************************************************************/ - -/** -** \name MD Command Pipe Parameters */ -/** \{ */ -#define MD_PIPE_NAME "MD_CMD_PIPE" -#define MD_PIPE_DEPTH 50 -/** \} */ - - -/** \mdcfg Memory Dwell Base Filename -** -** \par Description: -** Default base name and location for Memory Dwell filenames -** AppInit will append 01,02,03, up to number of tables. -** -** \par Limits: -** This string shouldn't be longer than #OS_MAX_PATH_LEN for the -** target platform in question -*/ -#define MD_TBL_FILENAME_FORMAT "/cf/apps/md_dw\%02d.tbl" - -/** -** \mdcfg Number of memory dwell tables. -** -** \par Limits -** Acceptable values for this parameter are 1 to 16. -*/ -#define MD_NUM_DWELL_TABLES 4 - -/** -** \mdcfg Maximum number of dwell specifications (address/delay/length) -** in a Dwell Table. -** -** \par Limits -** The maximum value for this parameter is limited by its effect -** on the MD_DwellTableLoad_t and associated data points, limiting -** it to 65535 points. -*/ -#define MD_DWELL_TABLE_SIZE 25 - -/** -** \mdcfg Option of whether 32 bit integers must be aligned to 32 bit -** boundaries. 1 indicates 'yes' (32-bit boundary alignment enforced), -** 0 indicates 'no' (16-bit boundary alignment enforced). -** -** \par Limits -** Value must be 0 or 1. -*/ -#define MD_ENFORCE_DWORD_ALIGN 1 - -/** -** \mdcfg Option of whether a signature field will be reserved in -** dwell packets. 1 indicates 'yes', 0 indicates 'no'. -** -** \par Limits -** Value must be 0 or 1. -*/ -#define MD_SIGNATURE_OPTION 1 - -/** -** \mdcfg Number of characters used in the Signature Field -** -** \par Limits -** Signature field length needs to be a multiple of 4 so that -** dwell packet is a multiple of 4 bytes and no compiler padding -** will occur. Note that the final character of the signature string -** must be a null character, so the effective length of user definable -** characters is one less than the defined length. The length -** specified must therefore be at least 4. -*/ -#define MD_SIGNATURE_FIELD_LENGTH 32 - -/** \mdcfg Mission specific version number for MD application -** -** \par Description: -** An application version number consists of four parts: -** major version number, minor version number, revision -** number and mission specific revision number. The mission -** specific revision number is defined here and the other -** parts are defined in "md_version.h". -** -** \par Limits: -** Must be defined as a numeric value that is greater than -** or equal to zero. -*/ -#define MD_MISSION_REV 0 - -#endif /* MD_PLATFORM_CFG_H */ - -/************************/ -/* End of File Comment */ -/************************/ diff --git a/config/ocpoc/s1000/inc/mm_msgids.h b/config/ocpoc/s1000/inc/mm_msgids.h deleted file mode 100644 index be3104f3a..000000000 --- a/config/ocpoc/s1000/inc/mm_msgids.h +++ /dev/null @@ -1,10 +0,0 @@ -#ifndef MM_MSGIDS_H -#define MM_MSGIDS_H - -#include "msg_ids.h" - -#endif /*MM_MSGIDS_H*/ - -/************************/ -/* End of File Comment */ -/************************/ diff --git a/config/ocpoc/s1000/inc/mm_platform_cfg.h b/config/ocpoc/s1000/inc/mm_platform_cfg.h deleted file mode 100644 index 8ce3bec71..000000000 --- a/config/ocpoc/s1000/inc/mm_platform_cfg.h +++ /dev/null @@ -1,399 +0,0 @@ -#ifndef MM_PLATFORM_CFG_H -#define MM_PLATFORM_CFG_H - -/** -** \mmcfg Memory Managment File -- cFE file header sub-type -** -** \par Description: -** This parameter defines the value that is used -** to identify a Memory Management file. -** -** \par Limits: -** The file header data type for the value is 32 bits unsigned, -** thus the value can be anything from zero to 4,294,967,295. -** (limit is not verified) -*/ -#define MM_CFE_HDR_SUBTYPE 0x4D4D5354 - - -/** -** \mmcfg Memory Management File -- cFE file header description -** -** \par Description: -** This parameter defines the text string that -** may be used to identify Memory Management files. -** -** \par Limits: -** The string length (including string terminator) cannot exceed -** #CFE_FS_HDR_DESC_MAX_LEN. (limit is not verified) -*/ -#define MM_CFE_HDR_DESCRIPTION "Memory Manager dump file" - - -/** \mmcfg Maximum number of bytes for a file load to RAM memory -** -** \par Description: -** Maximum number of bytes that can be loaded into RAM from a -** single load file. -** -** \par Limits: -** The MM app does not place a limit on this parameter. -** However, setting this value to a large number will increase -** the likelyhood of MM being late responding to housekeeping -** requests since it cannot process such a request while a load -** or dump is in progress. -*/ -#define MM_MAX_LOAD_FILE_DATA_RAM (1024*1024) - -/** \mmcfg Maximum number of bytes for a file load to EEPROM memory -** -** \par Description: -** Maximum number of bytes that can be loaded into EEPROM from a -** single load file. -** -** \par Limits: -** The MM app does not place a limit on this parameter. -** However, setting this value to a large number will increase -** the likelyhood of MM being late responding to housekeeping -** requests since it cannot process such a request while a load -** or dump is in progress. -*/ -#define MM_MAX_LOAD_FILE_DATA_EEPROM (128*1024) - -/** \mmcfg Maximum number of bytes for an uninterruptable load -** -** \par Description: -** Maximum number of bytes that can be loaded with the -** "memory load with interrupts disabled" (#MM_LOAD_MEM_WID_CC) -** command. -** -** \par Limits: -** This parameter is limited to the size of an uint8 which -** is the data type used to specify the number of bytes to -** load in the command message. -* -** If this data type is made bigger, changing this value to a -** large number will increase the amount of time interrupts are -** disabled during the load. It should also be kept small enough -** to avoid packet segmentation for the command protocal being -** used. -*/ -#define MM_MAX_UNINTERRUPTABLE_DATA 200 - -/** \mmcfg Maximum number of bytes per load data segment -** -** \par Description: -** Maximum number of bytes MM will load per task cycle -** to prevent CPU hogging (segmented load). -** -** \par Limits: -** The MM app does not place a limit on this parameter. -** However, setting this value to a large number will decrease -** the amount of time available for other tasks to execute and -** increase MM CPU utilization during load operations. -*/ -#define MM_MAX_LOAD_DATA_SEG 200 - -/** \mmcfg Maximum number of bytes for a file dump from RAM memory -** -** \par Description: -** Maximum number of bytes that can be dumped from RAM into a -** single dump file. -** -** \par Limits: -** The MM app does not place a limit on this parameter. -** However, setting this value to a large number will increase -** the likelyhood of MM being late responding to housekeeping -** requests since it cannot process such a request while a load -** or dump is in progress. -*/ -#define MM_MAX_DUMP_FILE_DATA_RAM (1024*1024) - -/** \mmcfg Maximum number of bytes for a file dump from EEPROM memory -** -** \par Description: -** Maximum number of bytes that can be dumped from EEPROM into a -** single dump file. -** -** \par Limits: -** The MM app does not place a limit on this parameter. -** However, setting this value to a large number will increase -** the likelyhood of MM being late responding to housekeeping -** requests since it cannot process such a request while a load -** or dump is in progress. -*/ -#define MM_MAX_DUMP_FILE_DATA_EEPROM (128*1024) - -/** \mmcfg Maximum number of bytes for a symbol table file dump -** -** \par Description: -** Maximum number of bytes that can be dumped from the symbol table -** into a single dump file. -** -** \par Limits: -** The MM app does not place a limit on this parameter. -** However, setting this value to a large number will impact -** the OSAL since it is responsible for generating the dump file. -*/ -#define MM_MAX_DUMP_FILE_DATA_SYMTBL (128*1024) - -/** \mmcfg Maximum number of bytes per dump data segment -** -** \par Description: -** Maximum number of bytes MM will dump per task cycle -** to prevent CPU hogging (segmented dump). -** -** \par Limits: -** The MM app does not place a limit on this parameter. -** However, setting this value to a large number will decrease -** the amount of time available for other tasks to execute and -** increase MM CPU utilization during dump operations. -*/ -#define MM_MAX_DUMP_DATA_SEG 200 - -/** \mmcfg Maximum number of bytes for a fill to RAM memory -** -** \par Description: -** Maximum number of bytes that can be loaded into RAM with a -** single memory fill command. -** -** \par Limits: -** The MM app does not place a limit on this parameter. -** However, setting this value to a large number will increase -** the likelyhood of MM being late responding to housekeeping -** requests since it cannot process such a request while a fill -** operation is in progress. -*/ -#define MM_MAX_FILL_DATA_RAM (1024*1024) - -/** \mmcfg Maximum number of bytes for a fill to EEPROM memory -** -** \par Description: -** Maximum number of bytes that can be loaded into EEPROM with a -** single memory fill command. -** -** \par Limits: -** The MM app does not place a limit on this parameter. -** However, setting this value to a large number will increase -** the likelyhood of MM being late responding to housekeeping -** requests since it cannot process such a request while a fill -** operation is in progress. -*/ -#define MM_MAX_FILL_DATA_EEPROM (128*1024) - -/** \mmcfg Maximum number of bytes per fill data segment -** -** \par Description: -** Maximum number of bytes MM will fill per task cycle -** to prevent CPU hogging (segmented fill). -** -** \par Limits: -** The MM app does not place a limit on this parameter. -** However, setting this value to a large number will decrease -** the amount of time available for other tasks to execute and -** increase MM CPU utilization during memory fill operations. -*/ -#define MM_MAX_FILL_DATA_SEG 200 - -/** \mmcfg Optional MEM32 compile switch -** -** \par Description: -** Compile switch to include code for the optional MM_MEM32 memory. -** The value should be set to TRUE or FALSE. A value of TRUE will -** include the code. -** -** \par Limits: -** n/a -*/ -#define MM_OPT_CODE_MEM32_MEMTYPE TRUE - -/** \mmcfg Maximum number of bytes for a file load to MEM32 memory -** -** \par Description: -** Maximum number of bytes that can be loaded into the optional -** MEM32 memory type from a single load file. -** -** \par Limits: -** This value should be longword aligned. -** Setting this value to a large number will increase the likelyhood -** of MM being late responding to housekeeping requests since it -** cannot process such a request while a load or dump is in progress. -*/ -#define MM_MAX_LOAD_FILE_DATA_MEM32 (1024*1024) - -/** \mmcfg Maximum number of bytes for a file dump from MEM32 memory -** -** \par Description: -** Maximum number of bytes that can be dumped from the optional -** MEM32 memory type to a single dump file. -** -** \par Limits: -** This value should be longword aligned. -** Setting this value to a large number will increase the likelyhood -** of MM being late responding to housekeeping requests since it -** cannot process such a request while a load or dump is in progress. -*/ -#define MM_MAX_DUMP_FILE_DATA_MEM32 (1024*1024) - -/** \mmcfg Maximum number of bytes for a fill to MEM32 memory -** -** \par Description: -** Maximum number of bytes that can be loaded into the optional -** MEM32 memory type with a single memory fill command. -** -** \par Limits: -** This value should be longword aligned. -** Setting this value to a large number will increase the likelyhood -** of MM being late responding to housekeeping requests since it -** cannot process such a request while a memory fill operation -** is in progress. -*/ -#define MM_MAX_FILL_DATA_MEM32 (1024*1024) - -/** \mmcfg Optional MEM16 compile switch -** -** \par Description: -** Compile switch to include code for the optional MM_MEM16 memory. -** The value should be set to TRUE or FALSE. A value of TRUE will -** include the code. -** -** \par Limits: -** n/a -*/ -#define MM_OPT_CODE_MEM16_MEMTYPE TRUE - -/** \mmcfg Maximum number of bytes for a file load to MEM16 memory -** -** \par Description: -** Maximum number of bytes that can be loaded into the optional -** MEM16 memory type from a single load file. -** -** \par Limits: -** This value should be word aligned. -** Setting this value to a large number will increase the likelyhood -** of MM being late responding to housekeeping requests since it -** cannot process such a request while a load or dump is in progress. -*/ -#define MM_MAX_LOAD_FILE_DATA_MEM16 (1024*1024) - -/** \mmcfg Maximum number of bytes for a file dump from MEM16 memory -** -** \par Description: -** Maximum number of bytes that can be dumped from the optional -** MEM16 memory type to a single dump file. -** -** \par Limits: -** This value should be word aligned. -** Setting this value to a large number will increase the likelyhood -** of MM being late responding to housekeeping requests since it -** cannot process such a request while a load or dump is in progress. -*/ -#define MM_MAX_DUMP_FILE_DATA_MEM16 (1024*1024) - -/** \mmcfg Maximum number of bytes for a fill to MEM16 memory -** -** \par Description: -** Maximum number of bytes that can be loaded into the optional -** MEM16 memory type with a single memory fill command. -** -** \par Limits: -** This value should be word aligned. -** Setting this value to a large number will increase the likelyhood -** of MM being late responding to housekeeping requests since it -** cannot process such a request while a memory fill operation -** is in progress. -*/ -#define MM_MAX_FILL_DATA_MEM16 (1024*1024) - -/** \mmcfg Optional MEM8 compile switch -** -** \par Description: -** Compile switch to include code for the optional MM_MEM8 memory. -** The value should be set to TRUE or FALSE. A value of TRUE will -** include the code. -** -** \par Limits: -** n/a -*/ -#define MM_OPT_CODE_MEM8_MEMTYPE TRUE - -/** \mmcfg Maximum number of bytes for a file load to MEM8 memory -** -** \par Description: -** Maximum number of bytes that can be loaded into the optional -** MEM8 memory type from a single load file. -** -** \par Limits: -** The MM app does not place a limit on this parameter. -** Setting this value to a large number will increase the likelyhood -** of MM being late responding to housekeeping requests since it -** cannot process such a request while a load or dump is in progress. -*/ -#define MM_MAX_LOAD_FILE_DATA_MEM8 (1024*1024) - -/** \mmcfg Maximum number of bytes for a file dump from MEM8 memory -** -** \par Description: -** Maximum number of bytes that can be dumped from the optional -** MEM8 memory type to a single dump file. -** -** \par Limits: -** The MM app does not place a limit on this parameter. -** Setting this value to a large number will increase the likelyhood -** of MM being late responding to housekeeping requests since it -** cannot process such a request while a load or dump is in progress. -*/ -#define MM_MAX_DUMP_FILE_DATA_MEM8 (1024*1024) - -/** \mmcfg Maximum number of bytes for a fill to MEM8 memory -** -** \par Description: -** Maximum number of bytes that can be loaded into the optional -** MEM8 memory type with a single memory fill command. -** -** \par Limits: -** The MM app does not place a limit on this parameter. -** Setting this value to a large number will increase the likelyhood -** of MM being late responding to housekeeping requests since it -** cannot process such a request while a memory fill operation -** is in progress. -*/ -#define MM_MAX_FILL_DATA_MEM8 (1024*1024) - -/** \mmcfg Segment break processor delay -** -** \par Description: -** How many milliseconds to delay between segments for dump, load, -** and fill operations. A value of zero cycles through the -** OS scheduler, giving up what's left of the current timeslice. -** -** \par Limits: -** The MM app does not place a limit on this parameter. -** However, setting this value to a large number will increase the -** time required to process load, dump, and fill requests. -** It will also increase the likelyhood of MM being late responding -** to housekeeping requests since it cannot process such a request -** while a memory operation is in progress. -*/ -#define MM_PROCESSOR_CYCLE 0 - -/** \mmcfg Mission specific version number for MM application -** -** \par Description: -** An application version number consists of four parts: -** major version number, minor version number, revision -** number and mission specific revision number. The mission -** specific revision number is defined here and the other -** parts are defined in "mm_version.h". -** -** \par Limits: -** Must be defined as a numeric value that is greater than -** or equal to zero. -*/ -#define MM_MISSION_REV 0 - -#endif /*MM_PLATFORM_CFG_H*/ - -/************************/ -/* End of File Comment */ -/************************/ diff --git a/config/ocpoc/s1000/inc/mpc_platform_cfg.h b/config/ocpoc/s1000/inc/mpc_platform_cfg.h deleted file mode 100644 index 20a61ef05..000000000 --- a/config/ocpoc/s1000/inc/mpc_platform_cfg.h +++ /dev/null @@ -1,111 +0,0 @@ -#ifndef MPC_PLATFORM_CFG_H -#define MPC_PLATFORM_CFG_H - -#ifdef __cplusplus -extern "C" { -#endif - -/* -** MPC Platform Configuration Parameter Definitions -*/ - -/** \brief Mission specific version number for MPC application -** -** \par Description: -** An application version number consists of four parts: -** major version number, minor version number, revision -** number and mission specific revision number. The mission -** specific revision number is defined here and the other -** parts are defined in "amc_version.h". -** -** \par Limits: -** Must be defined as a numeric value that is greater than -** or equal to zero. -*/ -#define MPC_MISSION_REV (0) - -/** \brief Pipe depth for the Scheduler pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define MPC_SCH_PIPE_DEPTH (15) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define MPC_SCH_PIPE_NAME ("MPC_SCH_PIPE") - -/** \brief The SB pend behavior type for the Scheduler pipe. -** -** \par Limits: -** One of: CFE_SB_POLL, CFE_SB_PEND_FOREVER, or the -** number of milliseconds to wait for a new message (recommended). -** Note, using CFE_SB_PEND_FOREVER may cause an unresponsive -** application if no messages arrive on this pipe. -*/ -#define MPC_SCH_PIPE_PEND_TIME (2000) - -/** \brief The number of WAKEUP messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max limited to CFE_SB_MAX_PIPE_DEPTH-1. Note the -** MPC_WAKEUP_MID_MAX_MSG_COUNT and MPC_SEND_HK_MID_MAX_MSG_COUNT -** must be less than MPC_SCH_PIPE_DEPTH. -*/ -#define MPC_WAKEUP_MID_MAX_MSG_COUNT (1) - -/** \brief The number of SEND_HK messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. Note the -** MPC_WAKEUP_MID_MAX_MSG_COUNT and MPC_SEND_HK_MID_MAX_MSG_COUNT -** must be less than MPC_SCH_PIPE_DEPTH. -*/ -#define MPC_SEND_HK_MID_MAX_MSG_COUNT (1) - -/** \brief Pipe depth for the command pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define MPC_CMD_PIPE_DEPTH (4) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define MPC_CMD_PIPE_NAME ("MPC_CMD_PIPE") - -/** \brief The config table default filename -** -** \par Limits: -** The length of each string, including the NULL terminator cannot exceed -** the #OS_MAX_PATH_LEN value. -*/ -#define MPC_CONFIG_TABLE_FILENAME ("/cf/apps/mpc_config.tbl") - -/** \brief The timeout value, in milliseconds, to wait for ES application startup sync. -** -** \par Limits: -** This parameter must be at least 1000 (ms). -*/ -#define MPC_STARTUP_TIMEOUT_MSEC (1000) - -/** \brief Time for direction change hysteresis */ -#define DIRECTION_CHANGE_TRIGGER_TIME_US (100000) - - -#ifdef __cplusplus -} -#endif - -#endif /* MPC_PLATFORM_CFG_H */ - -/************************/ -/* End of File Comment */ -/************************/ - diff --git a/config/ocpoc/s1000/inc/mpu9250_platform_cfg.h b/config/ocpoc/s1000/inc/mpu9250_platform_cfg.h deleted file mode 100644 index 0c5373479..000000000 --- a/config/ocpoc/s1000/inc/mpu9250_platform_cfg.h +++ /dev/null @@ -1,174 +0,0 @@ -#ifndef MPU9250_PLATFORM_CFG_H -#define MPU9250_PLATFORM_CFG_H - -#ifdef __cplusplus -extern "C" { -#endif - -#include "math.h" - -/* -** MPU9250 Platform Configuration Parameter Definitions -*/ - -/** \brief Mission specific version number for MPU9250 application -** -** \par Description: -** An application version number consists of four parts: -** major version number, minor version number, revision -** number and mission specific revision number. The mission -** specific revision number is defined here and the other -** parts are defined in "amc_version.h". -** -** \par Limits: -** Must be defined as a numeric value that is greater than -** or equal to zero. -*/ -#define MPU9250_MISSION_REV (0) - -/** \brief Pipe depth for the Scheduler pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define MPU9250_SCH_PIPE_DEPTH (2) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define MPU9250_SCH_PIPE_NAME ("MPU9250_SCH_PIPE") - -/** \brief The SB pend behavior type for the Scheduler pipe. -** -** \par Limits: -** One of: CFE_SB_POLL, CFE_SB_PEND_FOREVER, or the -** number of milliseconds to wait for a new message (recommended). -** Note, using CFE_SB_PEND_FOREVER may cause an unresponsive -** application if no messages arrive on this pipe. -*/ -#define MPU9250_SCH_PIPE_PEND_TIME (2000) - -/** \brief Pipe depth for the params pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define MPU9250_PARAM_PIPE_DEPTH (4) - -/** \brief Pipe name for the params pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define MPU9250_PARAM_PIPE_NAME ("MPU9250_PARAM_PIPE") - -/** \brief The number of WAKEUP messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max limited to CFE_SB_MAX_PIPE_DEPTH-1. Note the -** MPU9250_MEASURE_MID_MAX_MSG_COUNT and MPU9250_SEND_HK_MID_MAX_MSG_COUNT -** must be less than MPU9250_SCH_PIPE_DEPTH. -*/ -#define MPU9250_MEASURE_MID_MAX_MSG_COUNT (1) - -/** \brief The number of SEND_HK messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. Note the -** MPU9250_MEASURE_MID_MAX_MSG_COUNT and MPU9250_SEND_HK_MID_MAX_MSG_COUNT -** must be less than MPU9250_SCH_PIPE_DEPTH. -*/ -#define MPU9250_SEND_HK_MID_MAX_MSG_COUNT (1) - -/** \brief Pipe depth for the command pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define MPU9250_CMD_PIPE_DEPTH (4) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define MPU9250_CMD_PIPE_NAME ("MPU9250_CMD_PIPE") - -/** \brief Pipe depth for the data pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define MPU9250_DATA_PIPE_DEPTH (4) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define MPU9250_DATA_PIPE_NAME ("MPU9250_DATA_PIPE") - -/** \brief The config table default filename -** -** \par Limits: -** The length of each string, including the NULL terminator cannot exceed -** the #OS_MAX_PATH_LEN value. -*/ -#define MPU9250_CONFIG_TABLE_FILENAME ("/cf/apps/mpu9250_config.tbl") - -/** \brief The timeout value, in milliseconds, to wait for ES application startup sync. -** -** \par Limits: -** This parameter must be at least 1000 (ms). -*/ -#define MPU9250_STARTUP_TIMEOUT_MSEC (1000) - - -/** \brief Fake accel device ID */ -#define MPU9250_ACCEL_PX4_DEVICE_ID (6789478) -/** \brief Fake gyro device ID */ -#define MPU9250_GYRO_PX4_DEVICE_ID (3467548) -/** \brief Integration publish rate */ -#define MPU9250_ACCEL_INT_PUB_RATE (1000000 / 400) -/** \brief Integration publish rate */ -#define MPU9250_GYRO_INT_PUB_RATE (1000000 / 400) -/** \brief Accel scale */ -#define MPU9250_ACC_SCALE (16) -/** \brief Gyro scale */ -#define MPU9250_GYRO_SCALE (2000) -/** \brief Magnetometer device ID. */ -#define MPU9250_AK8963_ID (0x48) -/** \brief IMU device ID. */ -#define MPU9250_DEVICE_ID (0x71) -/** \brief IMU accelerometer sample rate. */ -#define MPU9250_ACCEL_SAMPLE_RATE (200) -/** \brief IMU accelerometer filter cutoff frequency. */ -#define MPU9250_ACCEL_FILTER_CUTOFF_FREQ (30) -/** \brief IMU gyroscope sample rate. */ -#define MPU9250_GYRO_SAMPLE_RATE (200) -/** \brief IMU gyroscope filter cutoff frequency. */ -#define MPU9250_GYRO_FILTER_CUTOFF_FREQ (30) -/** \brief Set to never publish (0) in PX4 mpu9250 wrapper. */ -#define MPU9250_NEVER_AUTOPUBLISH_US (0) -/** \brief One gravity. */ -#define MPU9250_ONE_G (9.80665f) -/** \brief Radians per degree. */ -#define MPU9250_RADIANS_PER_DEGREE (0.0174532f) -/** \brief Room temperature offset */ -#define MPU9250_ROOM_TEMP_OFFSET (0.0f) -/** \brief Temperature sensitivity */ -#define MPU9250_TEMP_SENS (361.0f) - - -#ifdef __cplusplus -} -#endif - -#endif /* MPU9250_PLATFORM_CFG_H */ - -/************************/ -/* End of File Comment */ -/************************/ - diff --git a/config/ocpoc/s1000/inc/ms5611_platform_cfg.h b/config/ocpoc/s1000/inc/ms5611_platform_cfg.h deleted file mode 100644 index 4042ed560..000000000 --- a/config/ocpoc/s1000/inc/ms5611_platform_cfg.h +++ /dev/null @@ -1,138 +0,0 @@ -#ifndef MS5611_PLATFORM_CFG_H -#define MS5611_PLATFORM_CFG_H - -#ifdef __cplusplus -extern "C" { -#endif - -/* -** MS5611 Platform Configuration Parameter Definitions -*/ - -/** \brief Mission specific version number for MS5611 application -** -** \par Description: -** An application version number consists of four parts: -** major version number, minor version number, revision -** number and mission specific revision number. The mission -** specific revision number is defined here and the other -** parts are defined in "amc_version.h". -** -** \par Limits: -** Must be defined as a numeric value that is greater than -** or equal to zero. -*/ -#define MS5611_MISSION_REV (0) - -/** \brief Pipe depth for the Scheduler pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define MS5611_SCH_PIPE_DEPTH (2) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define MS5611_SCH_PIPE_NAME ("MS5611_SCH_PIPE") - -/** \brief The SB pend behavior type for the Scheduler pipe. -** -** \par Limits: -** One of: CFE_SB_POLL, CFE_SB_PEND_FOREVER, or the -** number of milliseconds to wait for a new message (recommended). -** Note, using CFE_SB_PEND_FOREVER may cause an unresponsive -** application if no messages arrive on this pipe. -*/ -#define MS5611_SCH_PIPE_PEND_TIME (2000) - -/** \brief The number of WAKEUP messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max limited to CFE_SB_MAX_PIPE_DEPTH-1. Note the -** MS5611_WAKEUP_MID_MAX_MSG_COUNT and MS5611_SEND_HK_MID_MAX_MSG_COUNT -** must be less than MS5611_SCH_PIPE_DEPTH. -*/ -#define MS5611_MEASURE_MID_MAX_MSG_COUNT (1) - -/** \brief The number of SEND_HK messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. Note the -** MS5611_WAKEUP_MID_MAX_MSG_COUNT and MS5611_SEND_HK_MID_MAX_MSG_COUNT -** must be less than MS5611_SCH_PIPE_DEPTH. -*/ -#define MS5611_SEND_HK_MID_MAX_MSG_COUNT (1) - -/** \brief Pipe depth for the command pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define MS5611_CMD_PIPE_DEPTH (4) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define MS5611_CMD_PIPE_NAME ("MS5611_CMD_PIPE") - -/** \brief Pipe depth for the data pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define MS5611_DATA_PIPE_DEPTH (4) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define MS5611_DATA_PIPE_NAME ("MS5611_DATA_PIPE") - -/** \brief The config table default filename -** -** \par Limits: -** The length of each string, including the NULL terminator cannot exceed -** the #OS_MAX_PATH_LEN value. -*/ -#define MS5611_CONFIG_TABLE_FILENAME ("/cf/apps/ms5611_config.tbl") - -/** \brief The timeout value, in milliseconds, to wait for ES application startup sync. -** -** \par Limits: -** This parameter must be at least 1000 (ms). -*/ -#define MS5611_STARTUP_TIMEOUT_MSEC (1000) - -/** \brief The MS5611 device path. -** -** \par Limits: -** The length of each string, including the NULL terminator cannot exceed -** the #OS_MAX_PATH_LEN value. -*/ -#define MS5611_DEVICE_PATH ("/dev/spidev1.1") - -/** \brief The ratio pressure per temperature measurements -** -** \par Limits: -** Set to 3 for 3 pressure measurements for every temperature -** measurement. -*/ -#define MS5611_PRESS_TEMP_MEAS_RATIO (3) - - -#ifdef __cplusplus -} -#endif - -#endif /* MS5611_PLATFORM_CFG_H */ - -/************************/ -/* End of File Comment */ -/************************/ - diff --git a/config/ocpoc/s1000/inc/nav_platform_cfg.h b/config/ocpoc/s1000/inc/nav_platform_cfg.h deleted file mode 100644 index 6781d6e8b..000000000 --- a/config/ocpoc/s1000/inc/nav_platform_cfg.h +++ /dev/null @@ -1,122 +0,0 @@ -#ifndef NAV_PLATFORM_CFG_H -#define NAV_PLATFORM_CFG_H - -#ifdef __cplusplus -extern "C" { -#endif - -/* -** NAV Platform Configuration Parameter Definitions -*/ - -/** \brief Mission specific version number for NAV application -** -** \par Description: -** An application version number consists of four parts: -** major version number, minor version number, revision -** number and mission specific revision number. The mission -** specific revision number is defined here and the other -** parts are defined in "amc_version.h". -** -** \par Limits: -** Must be defined as a numeric value that is greater than -** or equal to zero. -*/ -#define NAV_MISSION_REV (0) - -/** \brief Pipe depth for the Scheduler pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define NAV_SCH_PIPE_DEPTH (15) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define NAV_SCH_PIPE_NAME ("NAV_SCH_PIPE") - -/** \brief The SB pend behavior type for the Scheduler pipe. -** -** \par Limits: -** One of: CFE_SB_POLL, CFE_SB_PEND_FOREVER, or the -** number of milliseconds to wait for a new message (recommended). -** Note, using CFE_SB_PEND_FOREVER may cause an unresponsive -** application if no messages arrive on this pipe. -*/ -#define NAV_SCH_PIPE_PEND_TIME (2000) - -/** \brief The number of WAKEUP messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max limited to CFE_SB_MAX_PIPE_DEPTH-1. Note the -** NAV_WAKEUP_MID_MAX_MSG_COUNT and NAV_SEND_HK_MID_MAX_MSG_COUNT -** must be less than NAV_SCH_PIPE_DEPTH. -*/ -#define NAV_WAKEUP_MID_MAX_MSG_COUNT (1) - -/** \brief The number of SEND_HK messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. Note the -** NAV_WAKEUP_MID_MAX_MSG_COUNT and NAV_SEND_HK_MID_MAX_MSG_COUNT -** must be less than NAV_SCH_PIPE_DEPTH. -*/ -#define NAV_SEND_HK_MID_MAX_MSG_COUNT (1) - -/** \brief Pipe depth for the command pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define NAV_CMD_PIPE_DEPTH (4) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define NAV_CMD_PIPE_NAME ("NAV_CMD_PIPE") - -/** \brief Pipe depth for the data pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define NAV_DATA_PIPE_DEPTH (4) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define NAV_DATA_PIPE_NAME ("NAV_DATA_PIPE") - -/** \brief The config table default filename -** -** \par Limits: -** The length of each string, including the NULL terminator cannot exceed -** the #OS_MAX_PATH_LEN value. -*/ -#define NAV_CONFIG_TABLE_FILENAME ("/cf/apps/nav_config.tbl") - -/** \brief The timeout value, in milliseconds, to wait for ES application startup sync. -** -** \par Limits: -** This parameter must be at least 1000 (ms). -*/ -#define NAV_STARTUP_TIMEOUT_MSEC (1000) - - -#ifdef __cplusplus -} -#endif - -#endif /* NAV_PLATFORM_CFG_H */ - -/************************/ -/* End of File Comment */ -/************************/ - diff --git a/config/ocpoc/s1000/inc/osconfig.h b/config/ocpoc/s1000/inc/osconfig.h deleted file mode 100644 index b5fe3f36d..000000000 --- a/config/ocpoc/s1000/inc/osconfig.h +++ /dev/null @@ -1,140 +0,0 @@ -#ifndef OSCONFIG_H -#define OSCONFIG_H - -#define OS_RUNTIME_MANAGER_CMD_QUEUE_NAME "OS_RUNTIME_MGR_CMD" -#define OS_RUNTIME_MANAGER_CMD_QUEUE_DEPTH 1 -#define OS_RUNTIME_MANAGER_CMD_TASK_NAME "OS_RUNTIME_MGR_CMD" -#define OS_RUNTIME_MANAGER_CMD_TASK_STACK_SIZE 32535 -#define OS_RUNTIME_MANAGER_CMD_TASK_PRIORITY 0 -#define OS_RUNTIME_MANAGER_EXEC_TASK_NAME "OS_RUNTIME_MGR_EXEC" -#define OS_RUNTIME_MANAGER_EXEC_TASK_STACK_SIZE 32535 -#define OS_RUNTIME_MANAGER_EXEC_TASK_PRIORITY 99 -#define OS_RUNTIME_MANAGER_SEM_NAME "OS_RUNTIME_MGR_SEM" - -/*#define OS_USE_EMBEDDED_PRINTF*/ - -#define OS_MAX_QUEUE_WIDTH 8 -#define OS_MAX_QUEUE_DEPTH 256 - -/* -** Platform Configuration Parameters for the OS API -*/ - -#define OS_MAX_TASKS 100 -#define OS_MAX_QUEUES 255 -#define OS_MAX_COUNT_SEMAPHORES 100 -#define OS_MAX_BIN_SEMAPHORES 100 -#define OS_MAX_MUTEXES 100 -#define OS_MAX_TIMEOUTS (OS_MAX_QUEUES+OS_MAX_COUNT_SEMAPHORES+OS_MAX_BIN_SEMAPHORES) - -/* -** Maximum length for an absolute path name -*/ -#define OS_MAX_PATH_LEN 64 - -/* -** Maximum length for a local or host path/filename. -** This parameter can consist of the OSAL filename/path + -** the host OS physical volume name or path. -*/ -#define OS_MAX_LOCAL_PATH_LEN (OS_MAX_PATH_LEN + OS_FS_PHYS_NAME_LEN) - -/* -** The maxium length allowed for a object (task,queue....) name -*/ -#define OS_MAX_API_NAME 40 - -/* -** The maximum length for a file name -*/ -#define OS_MAX_FILE_NAME 20 - -/* -** These defines are for OS_printf -*/ -#define OS_BUFFER_SIZE 512 -#define OS_BUFFER_MSG_DEPTH 100 - -/* This #define turns on a utility task that - * will read the statements to print from - * the OS_printf function. If you want OS_printf - * to print the text out itself, comment this out - * - * NOTE: The Utility Task #defines only have meaning - * on the VxWorks operating systems - */ - -#define OS_UTILITY_TASK_ON - - -#ifdef OS_UTILITY_TASK_ON - #define OS_UTILITYTASK_STACK_SIZE 2048 - /* some room is left for other lower priority tasks */ - #define OS_UTILITYTASK_PRIORITY 245 -#endif - - -/* -** the size of a command that can be passed to the underlying OS -*/ -#define OS_MAX_CMD_LEN 1000 - -/* -** This define will include the OS network API. -** It should be turned off for targtets that do not have a network stack or -** device ( like the basic RAD750 vxWorks BSP ) -*/ -#define OS_INCLUDE_NETWORK - -/* -** This is the maximum number of open file descriptors allowed at a time -*/ -#define OS_MAX_NUM_OPEN_FILES 50 - -/* -** This defines the filethe input command of OS_ShellOutputToFile -** is written to in the VxWorks6 port -*/ -#define OS_SHELL_CMD_INPUT_FILE_NAME "/ram/OS_ShellCmd.in" - -/* -** This define sets the queue implentation of the Linux port to use sockets -** commenting this out makes the Linux port use the POSIX message queues. -*/ -#define OSAL_SOCKET_QUEUE */ - -/* -** Module loader/symbol table is optional -*/ -#define OS_INCLUDE_MODULE_LOADER - -#ifdef OS_INCLUDE_MODULE_LOADER - /* - ** This define sets the size of the OS Module Table, which keeps track of the loaded modules in - ** the running system. This define must be set high enough to support the maximum number of - ** loadable modules in the system. If the the table is filled up at runtime, a new module load - ** would fail. - */ - #define OS_MAX_MODULES 64 - - /* - ** The Static Loader define is used for switching between the Dynamic and Static loader implementations. - */ - /* #define OS_STATIC_LOADER */ - -#endif - - -/* -** This define sets the maximum symbol name string length. It is used in implementations that -** support the symbols and symbol lookup. -*/ -#define OS_MAX_SYM_LEN 64 - - -/* -** This define sets the maximum number of timers available -*/ -#define OS_MAX_TIMERS 5 - -#endif diff --git a/config/ocpoc/s1000/inc/pe_platform_cfg.h b/config/ocpoc/s1000/inc/pe_platform_cfg.h deleted file mode 100644 index ca1de959a..000000000 --- a/config/ocpoc/s1000/inc/pe_platform_cfg.h +++ /dev/null @@ -1,140 +0,0 @@ -#ifndef PE_PLATFORM_CFG_H -#define PE_PLATFORM_CFG_H - -#ifdef __cplusplus -extern "C" { -#endif - -/* -** PE Platform Configuration Parameter Definitions -*/ - -/** \brief Mission specific version number for PE application -** -** \par Description: -** An application version number consists of four parts: -** major version number, minor version number, revision -** number and mission specific revision number. The mission -** specific revision number is defined here and the other -** parts are defined in "amc_version.h". -** -** \par Limits: -** Must be defined as a numeric value that is greater than -** or equal to zero. -*/ -#define PE_MISSION_REV (0) - -/** \brief Pipe depth for the Scheduler pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define PE_SCH_PIPE_DEPTH (20) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define PE_SCH_PIPE_NAME ("PE_SCH_PIPE") - -/** \brief The SB pend behavior type for the Scheduler pipe. -** -** \par Limits: -** One of: CFE_SB_POLL, CFE_SB_PEND_FOREVER, or the -** number of milliseconds to wait for a new message (recommended). -** Note, using CFE_SB_PEND_FOREVER may cause an unresponsive -** application if no messages arrive on this pipe. -*/ -#define PE_SCH_PIPE_PEND_TIME (2000) - -/** \brief The number of WAKEUP messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max limited to CFE_SB_MAX_PIPE_DEPTH-1. Note the -** PE_WAKEUP_MID_MAX_MSG_COUNT and PE_SEND_HK_MID_MAX_MSG_COUNT -** must be less than PE_SCH_PIPE_DEPTH. -*/ -#define PE_WAKEUP_MID_MAX_MSG_COUNT (1) - -/** \brief The number of SEND_HK messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. Note the -** PE_WAKEUP_MID_MAX_MSG_COUNT and PE_SEND_HK_MID_MAX_MSG_COUNT -** must be less than PE_SCH_PIPE_DEPTH. -*/ -#define PE_SEND_HK_MID_MAX_MSG_COUNT (1) - -/** \brief Pipe depth for the command pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define PE_CMD_PIPE_DEPTH (4) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define PE_CMD_PIPE_NAME ("PE_CMD_PIPE") - -/** \brief The config table default filename -** -** \par Limits: -** The length of each string, including the NULL terminator cannot exceed -** the #OS_MAX_PATH_LEN value. -*/ -#define PE_CONFIG_TABLE_FILENAME ("/cf/apps/pe_config.tbl") - -/** \brief The timeout value, in milliseconds, to wait for ES application startup sync. -** -** \par Limits: -** This parameter must be at least 1000 (ms). -*/ -#define PE_STARTUP_TIMEOUT_MSEC (1000) - -/** \brief MAx event filters the PE app can use. -** -** \par Limits: -** This parameter cannot exceed TODO -*/ -#define PE_MAX_EVENT_FILTERS (64) - -/*** Sensor Configuration ***/ - -/* Baro */ -#define REQ_BARO_INIT_COUNT (2000) -#define BARO_TIMEOUT (100000) /* 0.1 s */ - -/* GPS */ -#define REQ_GPS_INIT_COUNT (50) -#define GPS_TIMEOUT (1000000) /* 1.0 s */ - -/* Land */ -#define REQ_LAND_INIT_COUNT (1) -#define LAND_TIMEOUT (1000000) /* 1.0 s */ - -/* Distance sensor */ -#define REQ_DIST_INIT_COUNT (50) -#define DIST_TIMEOUT (150000) /* 0.1 s */ -#define DIST_BETA_MAX (700) -#define DIST_SENSOR_TYPE (3) /* 3 = radar */ - -/* Optical flow */ -#define REQ_FLOW_INIT_COUNT (10) -#define FLOW_TIMEOUT (1000000) /* 1.0 s */ -#define FLOW_GYRO_HP_CUTOFF (0.001f) - - -#ifdef __cplusplus -} -#endif - -#endif /* PE_PLATFORM_CFG_H */ - -/************************/ -/* End of File Comment */ -/************************/ - diff --git a/config/ocpoc/s1000/inc/prm_platform_cfg.h b/config/ocpoc/s1000/inc/prm_platform_cfg.h deleted file mode 100644 index 86a2f9b4d..000000000 --- a/config/ocpoc/s1000/inc/prm_platform_cfg.h +++ /dev/null @@ -1,125 +0,0 @@ - -#ifndef PRM_PLATFORM_CFG_H -#define PRM_PLATFORM_CFG_H - -#ifdef __cplusplus -extern "C" { -#endif - -/* -** prm Platform Configuration Parameter Definitions -*/ - -/** \brief Mission specific version number for PRM application -** -** \par Description: -** An application version number consists of four parts: -** major version number, minor version number, revision -** number and mission specific revision number. The mission -** specific revision number is defined here and the other -** parts are defined in "prm_version.h". -** -** \par Limits: -** Must be defined as a numeric value that is greater than -** or equal to zero. -*/ -#define PRM_MISSION_REV (0) - -/** \brief Pipe depth for the Scheduler pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define PRM_SCH_PIPE_DEPTH (2) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define PRM_SCH_PIPE_NAME ("PRM_SCH_PIPE") - -/** \brief The SB pend behavior type for the Scheduler pipe. -** -** \par Limits: -** One of: CFE_SB_POLL, CFE_SB_PEND_FOREVER, or the -** number of milliseconds to wait for a new message (recommended). -** Note, using CFE_SB_PEND_FOREVER may cause an unresponsive -** application if no messages arrive on this pipe. -*/ -#define PRM_SCH_PIPE_PEND_TIME (2000) - -/** \brief The number of WAKEUP messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max limited to CFE_SB_MAX_PIPE_DEPTH-1. Note the -** PRM_SCH_PIPE_WAKEUP_RESERVED and PRM_SCH_PIPE_SEND_HK_RESERVED -** must be less than PRM_SCH_PIPE_DEPTH. -*/ -#define PRM_SCH_PIPE_WAKEUP_RESERVED (1) - -/** \brief The number of SEND_HK messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. Note the -** PRM_SCH_PIPE_WAKEUP_RESERVED and PRM_SCH_PIPE_SEND_HK_RESERVED -** must be less than PRM_SCH_PIPE_DEPTH. -*/ -#define PRM_SCH_PIPE_SEND_HK_RESERVED (1) - -/** \brief Pipe depth for the command pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define PRM_CMD_PIPE_DEPTH (4) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define PRM_CMD_PIPE_NAME ("PRM_CMD_PIPE") - -/** \brief Pipe depth for the data pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define PRM_DATA_PIPE_DEPTH (4) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define PRM_DATA_PIPE_NAME ("PRM_DATA_PIPE") - -/** \brief The config table default filename -** -** \par Limits: -** The length of each string, including the NULL terminator cannot exceed -** the #OS_MAX_PATH_LEN value. -*/ -#define PRM_CONFIG_TABLE_FILENAME ("/cf/apps/prm_config.tbl") -/** \brief The timeout value, in milliseconds, to wait for ES application startup sync. -** -** \par Limits: -** This parameter must be at least 1000 (ms). -*/ -#define PRM_STARTUP_TIMEOUT_MSEC (1000) - -/* TODO: Add Doxygen markup. */ -#define PRM_CUSTOM_DEV_PATH "/tmp/ttyS0" - - -#ifdef __cplusplus -} -#endif - -#endif /* PRM_PLATFORM_CFG_H */ - -/************************/ -/* End of File Comment */ -/************************/ - diff --git a/config/ocpoc/s1000/inc/px4br_platform_cfg.h b/config/ocpoc/s1000/inc/px4br_platform_cfg.h deleted file mode 100644 index 9ea36cfaf..000000000 --- a/config/ocpoc/s1000/inc/px4br_platform_cfg.h +++ /dev/null @@ -1,39 +0,0 @@ -#ifndef PX4BR_PLATFORM_CFG_H -#define PX4BR_PLATFORM_CFG_H - -/* -** Pragmas -*/ - -/* -** Local Defines -*/ -#define PX4BR_RUNTIME_QUEUE_NAME "OS_RUNTIME_MGR_CMD" -#define PX4BR_MAX_FIFO_PATH_LENGTH (255) - -/* -** Include Files -*/ - -/* -** Local Structure Declarations -*/ - -/* -** External Global Variables -*/ - -/* -** Global Variables -*/ - -/* -** Local Variables -*/ - -/* -** Local Function Prototypes -*/ - -#endif /* PX4BR_PLATFORM_CFG_H */ - diff --git a/config/ocpoc/s1000/inc/qae_platform_cfg.h b/config/ocpoc/s1000/inc/qae_platform_cfg.h deleted file mode 100644 index bd6552cf3..000000000 --- a/config/ocpoc/s1000/inc/qae_platform_cfg.h +++ /dev/null @@ -1,122 +0,0 @@ -#ifndef QAE_PLATFORM_CFG_H -#define QAE_PLATFORM_CFG_H - -#ifdef __cplusplus -extern "C" { -#endif - -/* -** QAE Platform Configuration Parameter Definitions -*/ - -/** \brief Mission specific version number for QAE application -** -** \par Description: -** An application version number consists of four parts: -** major version number, minor version number, revision -** number and mission specific revision number. The mission -** specific revision number is defined here and the other -** parts are defined in "amc_version.h". -** -** \par Limits: -** Must be defined as a numeric value that is greater than -** or equal to zero. -*/ -#define QAE_MISSION_REV (0) - -/** \brief Pipe depth for the Scheduler pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define QAE_SCH_PIPE_DEPTH (5) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define QAE_SCH_PIPE_NAME ("QAE_SCH_PIPE") - -/** \brief The SB pend behavior type for the Scheduler pipe. -** -** \par Limits: -** One of: CFE_SB_POLL, CFE_SB_PEND_FOREVER, or the -** number of milliseconds to wait for a new message (recommended). -** Note, using CFE_SB_PEND_FOREVER may cause an unresponsive -** application if no messages arrive on this pipe. -*/ -#define QAE_SCH_PIPE_PEND_TIME (2000) - -/** \brief The number of WAKEUP messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max limited to CFE_SB_MAX_PIPE_DEPTH-1. Note the -** QAE_WAKEUP_MID_MAX_MSG_COUNT and QAE_SEND_HK_MID_MAX_MSG_COUNT -** must be less than QAE_SCH_PIPE_DEPTH. -*/ -#define QAE_WAKEUP_MID_MAX_MSG_COUNT (1) - -/** \brief The number of SEND_HK messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. Note the -** QAE_WAKEUP_MID_MAX_MSG_COUNT and QAE_SEND_HK_MID_MAX_MSG_COUNT -** must be less than QAE_SCH_PIPE_DEPTH. -*/ -#define QAE_SEND_HK_MID_MAX_MSG_COUNT (1) - -/** \brief Pipe depth for the command pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define QAE_CMD_PIPE_DEPTH (4) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define QAE_CMD_PIPE_NAME ("QAE_CMD_PIPE") - -/** \brief Pipe depth for the data pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define QAE_DATA_PIPE_DEPTH (4) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define QAE_DATA_PIPE_NAME ("QAE_DATA_PIPE") - -/** \brief The config table default filename -** -** \par Limits: -** The length of each string, including the NULL terminator cannot exceed -** the #OS_MAX_PATH_LEN value. -*/ -#define QAE_CONFIG_TABLE_FILENAME ("/cf/apps/qae_config.tbl") - -/** \brief The timeout value, in milliseconds, to wait for ES application startup sync. -** -** \par Limits: -** This parameter must be at least 1000 (ms). -*/ -#define QAE_STARTUP_TIMEOUT_MSEC (1000) - - -#ifdef __cplusplus -} -#endif - -#endif /* QAE_PLATFORM_CFG_H */ - -/************************/ -/* End of File Comment */ -/************************/ - diff --git a/config/ocpoc/s1000/inc/rcin_platform_cfg.h b/config/ocpoc/s1000/inc/rcin_platform_cfg.h deleted file mode 100644 index 3f55e6541..000000000 --- a/config/ocpoc/s1000/inc/rcin_platform_cfg.h +++ /dev/null @@ -1,126 +0,0 @@ -#ifndef RCIN_PLATFORM_CFG_H -#define RCIN_PLATFORM_CFG_H - -#ifdef __cplusplus -extern "C" { -#endif - -#define RCIN_STREAMING_TASK_FLAGS OS_ENABLE_CORE_0 - -/* -** RCIN Platform Configuration Parameter Definitions -*/ - -/** \brief Mission specific version number for RCIN application -** -** \par Description: -** An application version number consists of four parts: -** major version number, minor version number, revision -** number and mission specific revision number. The mission -** specific revision number is defined here and the other -** parts are defined in "amc_version.h". -** -** \par Limits: -** Must be defined as a numeric value that is greater than -** or equal to zero. -*/ -#define RCIN_MISSION_REV (0) - -/** \brief Pipe depth for the Scheduler pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define RCIN_SCH_PIPE_DEPTH (2) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define RCIN_SCH_PIPE_NAME ("RCIN_SCH_PIPE") - -/** \brief The SB pend behavior type for the Scheduler pipe. -** -** \par Limits: -** One of: CFE_SB_POLL, CFE_SB_PEND_FOREVER, or the -** number of milliseconds to wait for a new message (recommended). -** Note, using CFE_SB_PEND_FOREVER may cause an unresponsive -** application if no messages arrive on this pipe. -*/ -#define RCIN_SCH_PIPE_PEND_TIME (2000) - -/** \brief The number of WAKEUP messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max limited to CFE_SB_MAX_PIPE_DEPTH-1. Note the -** RCIN_WAKEUP_MID_MAX_MSG_COUNT and RCIN_SEND_HK_MID_MAX_MSG_COUNT -** must be less than RCIN_SCH_PIPE_DEPTH. -*/ -#define RCIN_WAKEUP_MID_MAX_MSG_COUNT (1) - -/** \brief The number of SEND_HK messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. Note the -** RCIN_WAKEUP_MID_MAX_MSG_COUNT and RCIN_SEND_HK_MID_MAX_MSG_COUNT -** must be less than RCIN_SCH_PIPE_DEPTH. -*/ -#define RCIN_SEND_HK_MID_MAX_MSG_COUNT (1) - -/** \brief Pipe depth for the command pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define RCIN_CMD_PIPE_DEPTH (4) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define RCIN_CMD_PIPE_NAME ("RCIN_CMD_PIPE") - -/** \brief Pipe depth for the data pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define RCIN_DATA_PIPE_DEPTH (4) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define RCIN_DATA_PIPE_NAME ("RCIN_DATA_PIPE") - -/** \brief The config table default filename -** -** \par Limits: -** The length of each string, including the NULL terminator cannot exceed -** the #OS_MAX_PATH_LEN value. -*/ -#define RCIN_CONFIG_TABLE_FILENAME ("/cf/apps/rcin_config.tbl") - -/** \brief The timeout value, in milliseconds, to wait for ES application startup sync. -** -** \par Limits: -** This parameter must be at least 1000 (ms). -*/ -#define RCIN_STARTUP_TIMEOUT_MSEC (1000) - -/**\brief Max filters in event table */ -#define RCIN_MAX_EVENT_FILTERS (32) - -#ifdef __cplusplus -} -#endif - -#endif /* RCIN_PLATFORM_CFG_H */ - -/************************/ -/* End of File Comment */ -/************************/ - diff --git a/config/ocpoc/s1000/inc/rgbled_msgids.h b/config/ocpoc/s1000/inc/rgbled_msgids.h deleted file mode 100644 index 16a36dcc7..000000000 --- a/config/ocpoc/s1000/inc/rgbled_msgids.h +++ /dev/null @@ -1,18 +0,0 @@ -#ifndef RGBLED_MSGIDS_H -#define RGBLED_MSGIDS_H - -#ifdef __cplusplus -extern "C" { -#endif - -#include "msg_ids.h" - -#ifdef __cplusplus -} -#endif - -#endif /* RGBLED_MSGIDS_H */ - -/************************/ -/* End of File Comment */ -/************************/ diff --git a/config/ocpoc/s1000/inc/rgbled_platform_cfg.h b/config/ocpoc/s1000/inc/rgbled_platform_cfg.h deleted file mode 100644 index 6e568f21b..000000000 --- a/config/ocpoc/s1000/inc/rgbled_platform_cfg.h +++ /dev/null @@ -1,126 +0,0 @@ -#ifndef RGBLED_PLATFORM_CFG_H -#define RGBLED_PLATFORM_CFG_H - -#include "osapi.h" - -#ifdef __cplusplus -extern "C" { -#endif - -#define RGBLED_SELFTEST_TASK_FLAGS OS_ENABLE_CORE_0 - -/* -** RGBLED Platform Configuration Parameter Definitions -*/ - -/** \brief Mission specific version number for RGBLED application -** -** \par Description: -** An application version number consists of four parts: -** major version number, minor version number, revision -** number and mission specific revision number. The mission -** specific revision number is defined here and the other -** parts are defined in "amc_version.h". -** -** \par Limits: -** Must be defined as a numeric value that is greater than -** or equal to zero. -*/ -#define RGBLED_MISSION_REV (0) - -/** \brief Pipe depth for the Scheduler pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define RGBLED_SCH_PIPE_DEPTH (2) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define RGBLED_SCH_PIPE_NAME ("RGBLED_SCH_PIPE") - -/** \brief The SB pend behavior type for the Scheduler pipe. -** -** \par Limits: -** One of: CFE_SB_POLL, CFE_SB_PEND_FOREVER, or the -** number of milliseconds to wait for a new message (recommended). -** Note, using CFE_SB_PEND_FOREVER may cause an unresponsive -** application if no messages arrive on this pipe. -*/ -#define RGBLED_SCH_PIPE_PEND_TIME (2000) - -/** \brief The number of WAKEUP messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max limited to CFE_SB_MAX_PIPE_DEPTH-1. Note the -** RGBLED_WAKEUP_MID_MAX_MSG_COUNT and RGBLED_SEND_HK_MID_MAX_MSG_COUNT -** must be less than RGBLED_SCH_PIPE_DEPTH. -*/ -#define RGBLED_WAKEUP_MID_MAX_MSG_COUNT (1) - -/** \brief The number of SEND_HK messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. Note the -** RGBLED_WAKEUP_MID_MAX_MSG_COUNT and RGBLED_SEND_HK_MID_MAX_MSG_COUNT -** must be less than RGBLED_SCH_PIPE_DEPTH. -*/ -#define RGBLED_SEND_HK_MID_MAX_MSG_COUNT (1) - -/** \brief Pipe depth for the command pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define RGBLED_CMD_PIPE_DEPTH (4) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define RGBLED_CMD_PIPE_NAME ("RGBLED_CMD_PIPE") - -/** \brief Pipe depth for the data pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define RGBLED_DATA_PIPE_DEPTH (4) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define RGBLED_DATA_PIPE_NAME ("RGBLED_DATA_PIPE") - -/** \brief The config table default filename -** -** \par Limits: -** The length of each string, including the NULL terminator cannot exceed -** the #OS_MAX_PATH_LEN value. -*/ -#define RGBLED_CONFIG_TABLE_FILENAME ("/cf/apps/rgbled_config.tbl") - -/** \brief The timeout value, in milliseconds, to wait for ES application startup sync. -** -** \par Limits: -** This parameter must be at least 1000 (ms). -*/ -#define RGBLED_STARTUP_TIMEOUT_MSEC (1000) - - -#ifdef __cplusplus -} -#endif - -#endif /* RGBLED_PLATFORM_CFG_H */ - -/************************/ -/* End of File Comment */ -/************************/ - diff --git a/config/ocpoc/s1000/inc/sbn_msgids.h b/config/ocpoc/s1000/inc/sbn_msgids.h deleted file mode 100644 index c0d95d30b..000000000 --- a/config/ocpoc/s1000/inc/sbn_msgids.h +++ /dev/null @@ -1,11 +0,0 @@ -#ifndef SBN_MSGIDS_H -#define SBN_MSGIDS_H - -#include "msg_ids.h" - -#endif /* SBN_MSGIDS_H */ - -/*======================================================================================= -** End of file sbn_msgids.h -**=====================================================================================*/ - diff --git a/config/ocpoc/s1000/inc/sc_msgids.h b/config/ocpoc/s1000/inc/sc_msgids.h deleted file mode 100644 index f81bdec50..000000000 --- a/config/ocpoc/s1000/inc/sc_msgids.h +++ /dev/null @@ -1,10 +0,0 @@ -#ifndef SC_MSGIDS_H -#define SC_MSGIDS_H - -#include "msg_ids.h" - -#endif /*SC_MSGIDS_H*/ - -/************************/ -/* End of File Comment */ -/************************/ diff --git a/config/ocpoc/s1000/inc/sc_platform_cfg.h b/config/ocpoc/s1000/inc/sc_platform_cfg.h deleted file mode 100644 index a831c16bf..000000000 --- a/config/ocpoc/s1000/inc/sc_platform_cfg.h +++ /dev/null @@ -1,359 +0,0 @@ -#ifndef SC_PLATFORM_CFG_H -#define SC_PLATFORM_CFG_H - -/************************************************************************* - ** Macro Definitions - *************************************************************************/ - -/** \sccfg Max number of commands per second -** -** \par Description: -** Maximum number of commands that can be sent out by SC -* in any given second. -** -** \par Limits: -** This parameter can't be larger than an unsigned 16 bit -** integer (65535), but should be kepoot relatively small to -** avoid SC hogging the CPU -** -*/ -#define SC_MAX_CMDS_PER_SEC 8 - - -/** \sccfg Number of RTS's -** -** \par Description: -** The number of RTS's allowed in the system -** -** \par Limits: -** This parameter can't be larger than 999.This parameter will dicate the size of -** The RTS Info Table. -*/ -#define SC_NUMBER_OF_RTS 64 - - -/** \sccfg Max buffer size for an ATS in uint16s -** -** \par Description: -** The max sizeof an ATS buffer in words (not bytes) -** \par Limits: -** This parameter can't be larger than an unsigned 16 bit -** integer (65535). -*/ -#define SC_ATS_BUFF_SIZE 8000 - - -/** \sccfg Max buffer size for an Append ATS in uint16s -** -** \par Description: -** The max sizeof an Append ATS buffer in words (not bytes) -** \par Limits: -** This parameter cannot be larger than SC_ATS_BUFF_SIZE. -*/ -#define SC_APPEND_BUFF_SIZE (SC_ATS_BUFF_SIZE / 2) - - -/** \sccfg Max buffer size for an RTS in uint16s -** -** \par Description: -** The max size of an RTS buffer in WORDS (not bytes) -** \par Limits: -** This parameter can't be larger than an unsigned 16 bit -** integer (65535). -*/ -#define SC_RTS_BUFF_SIZE 150 - - -/** \sccfg Max number of commands in each ATS -** -** \par Description: -** The maximum number of commands that are allowed in each ATS -** -** \par Limits: -** This parameter can't be larger than an unsigned 16 bit -** integer (65535). -*/ -#define SC_MAX_ATS_CMDS 1000 - - -/** \sccfg The last RTS that will be sent with an #SC_RTS_START_INF_EID event message -** -** \par Description: -** When all RTS's are started, the #SC_RTS_START_INF_EID event message is sent out. -** This parameter suppreses that message for all RTS's over this number -** -** \par Limits: -** This parameter needs to be less than or equal to SC_NUMBER_OF_RTS -*/ -#define SC_LAST_RTS_WITH_EVENTS 20 - - -/** \sccfg Minimum Packet Size -** -** \par Description: -** This parameter specifies the minumum size for an ATS or RTS command. -** \par Limits: -** This parameter must be greater than or equal to CFE_SB_CMD_HDR_SIZE and -** less than or equal to CFE_SB_MAX_SB_MSG_SIZE. -*/ -#define SC_PACKET_MIN_SIZE 8 - - -/** \sccfg Maximum Packet Size -** -** \par Description: -** This parameter specifies the maximum size for an ATS or RTS command. -** \par Limits: -** This parameter must be greater than or equal to SC_PACKET_MIN_SIZE and -** less than or equal to CFE_SB_MAX_SB_MSG_SIZE. -*/ -#define SC_PACKET_MAX_SIZE 250 - - -/** \sccfg Command Pipe Depth -** -** \par Description: -** Maximum number of messages that will be allowed in the -** SC command pipe at one time. Used during initialization -** in the call to #CFE_SB_CreatePipe -** -** \par Limits: -** This parameter must be greater than zero and less than or equal to -** CFE_SB_MAX_PIPE_DEPTH. -*/ -#define SC_PIPE_DEPTH 12 - - -/** \sccfg ATS Table Filenames -** -** \par Description: -** Filenames for the ATS tables loaded at startup are constructed by -** appending a one digit table identifier plus the extension ".tbl" -** to the base portion of the filename defined here. -** -** The default definitions will create ATS filenames as follows: -** "/cf/apps/sc_ats1.tbl or /cf/apps/sc_ats2.tbl" -** -** \par Limits: -** SC requires that this name be defined, but otherwise places no -** limits on the definition. If the named table file does not exist -** at run time, or the table fails validation, then the table load -** will fail. Refer to #OS_MAX_PATH_LEN for filename length limits. -*/ -#define SC_ATS_FILE_NAME "/cf/apps/sc_ats" - - -/** \sccfg Append ATS Table Filename -** -** \par Description: -** This name describes the default append ATS filename loaded at -** startup. Often the default Append ATS file contains only a -** single unused table entry, and is used only to initialize the -** table state as having data that may be patched. -** -** \par Limits: -** SC requires that this name be defined, but otherwise places no -** limits on the definition. If the named table file does not exist -** at run time, or the table fails validation, then the table load -** will fail. Refer to #OS_MAX_PATH_LEN for filename length limits. -*/ -#define SC_APPEND_FILE_NAME "/cf/apps/sc_append.tbl" - - -/** \sccfg RTS Table Filenames -** -** \par Description: -** Filenames for the RTS tables loaded at startup are constructed by -** appending a one digit table identifier plus the extension ".tbl" -** to the base portion of the filename defined here. -** -** The default definitions will create RTS filenames as follows: -** "/cf/apps/sc_rts001.tbl, /cf/apps/sc_rts002.tbl, etc" -** -** \par Limits: -** SC requires that this name be defined, but otherwise places no -** limits on the definition. If the named table file does not exist -** at run time, or the table fails validation, then the table load -** will fail. Refer to #OS_MAX_PATH_LEN for filename length limits. -*/ -#define SC_RTS_FILE_NAME "/cf/apps/sc_rts" - - -/** \sccfg ATS Table Object Names -** -** \par Description: -** Unique table object names are required for each table registered -** with cFE Table Services. ATS table object names are constructed -** by appending a one digit table identifier to the base portion of -** the object name defined here. -** -** The default definitions will create ATS object names as follows: -** "ATS_TBL1 or ATS_TBL2" -** -** \par Limits: -** SC requires that this name be defined, but otherwise places no -** limits on the definition. Refer to #CFE_TBL_MAX_NAME_LENGTH for -** specific information on limits related to table object names. -*/ -#define SC_ATS_TABLE_NAME "ATS_TBL" - - -/** \sccfg Append ATS Table Object Names -** -** \par Description: -** Unique table object names are required for each table registered -** with cFE Table Services. This is the table object name for the -** Append ATS table. -** -** \par Limits: -** SC requires that this name be defined, but otherwise places no -** limits on the definition. Refer to #CFE_TBL_MAX_NAME_LENGTH for -** specific information on limits related to table object names. -*/ -#define SC_APPEND_TABLE_NAME "APPEND_TBL" - - -/** \sccfg RTS Table Object Names -** -** \par Description: -** Unique table object names are required for each table registered -** with cFE Table Services. RTS table object names are constructed -** by appending a three digit table identifier to the base portion -** of the object name defined here. -** -** The default definitions will create RTS object names as follows: -** "RTS_TBL001, RTS_TBL002, etc" -** -** \par Limits: -** SC requires that this name be defined, but otherwise places no -** limits on the definition. Refer to #CFE_TBL_MAX_NAME_LENGTH for -** specific information on limits related to table object names. -*/ -#define SC_RTS_TABLE_NAME "RTS_TBL" - - -/** \sccfg Name of the RTS Infomation Table -** -** \par Description: -** Name of the RTS Information Table -** \par Limits: -** Must be less than #CFE_TBL_MAX_NAME_LENGTH -*/ -#define SC_RTSINFO_TABLE_NAME "RTSINF_TBL" - - -/** \sccfg Name of the RTP Control block table -** -** \par Description: -** Name of the RTP Control Block Table -** \par Limits: -** Must be less than #CFE_TBL_MAX_NAME_LENGTH -*/ -#define SC_RTP_CTRL_TABLE_NAME "RTPCTR_TBL" - - -/** \sccfg Name of the ATS Infomation Table -** -** \par Description: -** Name of the ATS Information Table -** \par Limits: -** Must be less than #CFE_TBL_MAX_NAME_LENGTH -*/ -#define SC_ATSINFO_TABLE_NAME "ATSINF_TBL" - - -/** \sccfg Name of the Append ATS Infomation Table -** -** \par Description: -** Name of the Append ATS Information Table -** \par Limits: -** Must be less than #CFE_TBL_MAX_NAME_LENGTH -*/ -#define SC_APPENDINFO_TABLE_NAME "APPINF_TBL" - - -/** \sccfg Name of the ATP Control block table -** -** \par Description: -** Name of the ATP Control Block Table -** \par Limits: -** Must be less than #CFE_TBL_MAX_NAME_LENGTH -*/ -#define SC_ATS_CTRL_TABLE_NAME "ATPCTR_TBL" - - - /** \sccfg Name Prefix of ATS Cmd Status Table -** -** \par Description: -** The prefix of the ATS Command Status table names. Note that actual table names -** will have a 1 digit number postfixed to it depending on the -** ATS number -** -** \par Limits: -** Total length must be less than #CFE_TBL_MAX_NAME_LENGTH -*/ -#define SC_ATS_CMD_STAT_TABLE_NAME "ATSCMD_TBL" - - -/** \sccfg Defnies default state of Continue-Ats-On-Checksum-Failure Flag -** -** \par Description: -** This parameter specifies the default state to continue an ATS -** when a command in the ATS fails checksum validation -** -** \par Limits: -** Must be TUE or FALSE -*/ -#define SC_CONT_ON_FAILURE_START TRUE - - -/** \sccfg Defines the TIME SC should use for its commands -** -** -** \par Description: -** This parameter defines what type of time SC should use for sending uot its commands -** -** \par Limits: -** Must be SC_USE_CFE_TIME, SC_USE_TAI, or SC_USE_UTC */ -#define SC_TIME_TO_USE SC_USE_CFE_TIME - - -/** \sccfg Define inclusion state for RTS group commands -** -** \par Description: -** This parameter specifies the inclusion state for the -** following RTS group commands: Start RTS group, Stop -** RTS group, Enable RTS group and Disable RTS group. -** RTS group commands affect a range of consecutive RTS -** numbers. When set to TRUE, this definition results -** in the inclusion of the group command handlers into -** the SC source code. -** -** \par Limits: -** Must be defined as TRUE or FALSE -*/ -#define SC_ENABLE_GROUP_COMMANDS TRUE - - -/** \sccfg Mission specific version number for SC application -** -** \par Description: -** An application version number consists of four parts: -** major version number, minor version number, revision -** number and mission specific revision number. The mission -** specific revision number is defined here and the other -** parts are defined in "sc_version.h". -** -** \par Limits: -** Must be defined as a numeric value that is greater than -** or equal to zero. -*/ -#define SC_MISSION_REV 0 - - -#endif /*SC_PLATFORM_CFG_H*/ - -/************************/ -/* End of File Comment */ -/************************/ - diff --git a/config/ocpoc/s1000/inc/sc_rts.h b/config/ocpoc/s1000/inc/sc_rts.h deleted file mode 100644 index f3b65dd3f..000000000 --- a/config/ocpoc/s1000/inc/sc_rts.h +++ /dev/null @@ -1,323 +0,0 @@ -#ifndef SC_RTS_H -#define SC_RTS_H - -/** - ** \name RTS 'name for a mission - This can be shorted or expanded or changed for each mission*/ -/** \{ */ - -#define RTS_ID_AUTO_POWER_ON 1 /**< \brief Startup auto-exec after power-on reset */ -#define RTS_ID_AUTO_PROCESSOR 2 /**< \brief Startup auto-exec after processor reset */ - -#define RTS_ID_EXTEND_GEAR 3 /**< \brief Extend landing gear command to LGC. */ -#define RTS_ID_RETRACT_GEAR 4 /**< \brief Retract landing gear command to LGC. */ -#define RTS_ID_Spare5 5 -#define RTS_ID_Spare6 6 -#define RTS_ID_Spare7 7 -#define RTS_ID_Spare8 8 -#define RTS_ID_Spare9 9 - -#define RTS_ID_Spare10 10 -#define RTS_ID_Spare11 11 -#define RTS_ID_Spare12 12 -#define RTS_ID_Spare13 13 -#define RTS_ID_Spare14 14 -#define RTS_ID_Spare15 15 -#define RTS_ID_Spare16 16 -#define RTS_ID_Spare17 17 -#define RTS_ID_Spare18 18 -#define RTS_ID_Spare19 19 - -#define RTS_ID_Spare20 20 -#define RTS_ID_Spare21 21 -#define RTS_ID_Spare22 22 -#define RTS_ID_Spare23 23 -#define RTS_ID_Spare24 24 -#define RTS_ID_Spare25 25 -#define RTS_ID_Spare26 26 -#define RTS_ID_Spare27 27 -#define RTS_ID_Spare28 28 -#define RTS_ID_Spare29 29 - -#define RTS_ID_Spare30 30 -#define RTS_ID_Spare31 31 -#define RTS_ID_Spare32 32 -#define RTS_ID_Spare33 33 -#define RTS_ID_Spare34 34 -#define RTS_ID_Spare35 35 -#define RTS_ID_Spare36 36 -#define RTS_ID_Spare37 37 -#define RTS_ID_Spare38 38 -#define RTS_ID_Spare39 39 - -#define RTS_ID_Spare40 40 -#define RTS_ID_Spare41 41 -#define RTS_ID_Spare42 42 -#define RTS_ID_Spare43 43 -#define RTS_ID_Spare44 44 -#define RTS_ID_Spare45 45 -#define RTS_ID_Spare46 46 -#define RTS_ID_Spare47 47 -#define RTS_ID_Spare48 48 -#define RTS_ID_Spare49 49 - -#define RTS_ID_Spare50 50 -#define RTS_ID_Spare51 51 -#define RTS_ID_Spare52 52 -#define RTS_ID_Spare53 53 -#define RTS_ID_Spare54 54 -#define RTS_ID_Spare55 55 -#define RTS_ID_Spare56 56 -#define RTS_ID_Spare57 57 -#define RTS_ID_Spare58 58 -#define RTS_ID_Spare59 59 - -#define RTS_ID_Spare60 60 -#define RTS_ID_Spare61 61 -#define RTS_ID_Spare62 62 -#define RTS_ID_Spare63 63 -#define RTS_ID_Spare64 64 -#define RTS_ID_Spare65 65 -#define RTS_ID_Spare66 66 -#define RTS_ID_Spare67 67 -#define RTS_ID_Spare68 68 -#define RTS_ID_Spare69 69 - -#define RTS_ID_Spare70 70 -#define RTS_ID_Spare71 71 -#define RTS_ID_Spare72 72 -#define RTS_ID_Spare73 73 -#define RTS_ID_Spare74 74 -#define RTS_ID_Spare75 75 -#define RTS_ID_Spare76 76 -#define RTS_ID_Spare77 77 -#define RTS_ID_Spare78 78 -#define RTS_ID_Spare79 79 - -#define RTS_ID_Spare80 80 -#define RTS_ID_Spare81 81 -#define RTS_ID_Spare82 82 -#define RTS_ID_Spare83 83 -#define RTS_ID_Spare84 84 -#define RTS_ID_Spare85 85 -#define RTS_ID_Spare86 86 -#define RTS_ID_Spare87 87 -#define RTS_ID_Spare88 88 -#define RTS_ID_Spare89 89 - -#define RTS_ID_Spare90 90 -#define RTS_ID_Spare91 91 -#define RTS_ID_Spare92 92 -#define RTS_ID_Spare93 93 -#define RTS_ID_Spare94 94 -#define RTS_ID_Spare95 95 -#define RTS_ID_Spare96 96 -#define RTS_ID_Spare97 97 -#define RTS_ID_Spare98 98 -#define RTS_ID_Spare99 99 - -#define RTS_ID_Spare100 100 -#define RTS_ID_Spare101 101 -#define RTS_ID_Spare102 102 -#define RTS_ID_Spare103 103 -#define RTS_ID_Spare104 104 -#define RTS_ID_Spare105 105 -#define RTS_ID_Spare106 106 -#define RTS_ID_Spare107 107 -#define RTS_ID_Spare108 108 -#define RTS_ID_Spare109 109 - -#define RTS_ID_Spare110 110 -#define RTS_ID_Spare111 111 -#define RTS_ID_Spare112 112 -#define RTS_ID_Spare113 113 -#define RTS_ID_Spare114 114 -#define RTS_ID_Spare115 115 -#define RTS_ID_Spare116 116 -#define RTS_ID_Spare117 117 -#define RTS_ID_Spare118 118 -#define RTS_ID_Spare119 119 - -#define RTS_ID_Spare120 120 -#define RTS_ID_Spare121 121 -#define RTS_ID_Spare122 122 -#define RTS_ID_Spare123 123 -#define RTS_ID_Spare124 124 -#define RTS_ID_Spare125 125 -#define RTS_ID_Spare126 126 -#define RTS_ID_Spare127 127 -#define RTS_ID_Spare128 128 -#define RTS_ID_Spare129 129 - -#define RTS_ID_Spare130 130 -#define RTS_ID_Spare131 131 -#define RTS_ID_Spare132 132 -#define RTS_ID_Spare133 133 -#define RTS_ID_Spare134 134 -#define RTS_ID_Spare135 135 -#define RTS_ID_Spare136 136 -#define RTS_ID_Spare137 137 -#define RTS_ID_Spare138 138 -#define RTS_ID_Spare139 139 - -#define RTS_ID_Spare140 140 -#define RTS_ID_Spare141 141 -#define RTS_ID_Spare142 142 -#define RTS_ID_Spare143 143 -#define RTS_ID_Spare144 144 -#define RTS_ID_Spare145 145 -#define RTS_ID_Spare146 146 -#define RTS_ID_Spare147 147 -#define RTS_ID_Spare148 148 -#define RTS_ID_Spare149 149 - -#define RTS_ID_Spare150 150 -#define RTS_ID_Spare151 151 -#define RTS_ID_Spare152 152 -#define RTS_ID_Spare153 153 -#define RTS_ID_Spare154 154 -#define RTS_ID_Spare155 155 -#define RTS_ID_Spare156 156 -#define RTS_ID_Spare157 157 -#define RTS_ID_Spare158 158 -#define RTS_ID_Spare159 159 - -#define RTS_ID_Spare160 160 -#define RTS_ID_Spare161 161 -#define RTS_ID_Spare162 162 -#define RTS_ID_Spare163 163 -#define RTS_ID_Spare164 164 -#define RTS_ID_Spare165 165 -#define RTS_ID_Spare166 166 -#define RTS_ID_Spare167 167 -#define RTS_ID_Spare168 168 -#define RTS_ID_Spare169 169 - -#define RTS_ID_Spare170 170 -#define RTS_ID_Spare171 171 -#define RTS_ID_Spare172 172 -#define RTS_ID_Spare173 173 -#define RTS_ID_Spare174 174 -#define RTS_ID_Spare175 175 -#define RTS_ID_Spare176 176 -#define RTS_ID_Spare177 177 -#define RTS_ID_Spare178 178 -#define RTS_ID_Spare179 179 - -#define RTS_ID_Spare180 180 -#define RTS_ID_Spare181 181 -#define RTS_ID_Spare182 182 -#define RTS_ID_Spare183 183 -#define RTS_ID_Spare184 184 -#define RTS_ID_Spare185 185 -#define RTS_ID_Spare186 186 -#define RTS_ID_Spare187 187 -#define RTS_ID_Spare188 188 -#define RTS_ID_Spare189 189 - -#define RTS_ID_Spare190 190 -#define RTS_ID_Spare191 191 -#define RTS_ID_Spare192 192 -#define RTS_ID_Spare193 193 -#define RTS_ID_Spare194 194 -#define RTS_ID_Spare195 195 -#define RTS_ID_Spare196 196 -#define RTS_ID_Spare197 197 -#define RTS_ID_Spare198 198 -#define RTS_ID_Spare199 199 - -#define RTS_ID_Spare200 200 -#define RTS_ID_Spare201 201 -#define RTS_ID_Spare202 202 -#define RTS_ID_Spare203 203 -#define RTS_ID_Spare204 204 -#define RTS_ID_Spare205 205 -#define RTS_ID_Spare206 206 -#define RTS_ID_Spare207 207 -#define RTS_ID_Spare208 208 -#define RTS_ID_Spare209 209 - -#define RTS_ID_Spare210 210 -#define RTS_ID_Spare211 211 -#define RTS_ID_Spare212 212 -#define RTS_ID_Spare213 213 -#define RTS_ID_Spare214 214 -#define RTS_ID_Spare215 215 -#define RTS_ID_Spare216 216 -#define RTS_ID_Spare217 217 -#define RTS_ID_Spare218 218 -#define RTS_ID_Spare219 219 - -#define RTS_ID_Spare220 220 -#define RTS_ID_Spare221 221 -#define RTS_ID_Spare222 222 -#define RTS_ID_Spare223 223 -#define RTS_ID_Spare224 224 -#define RTS_ID_Spare225 225 -#define RTS_ID_Spare226 226 -#define RTS_ID_Spare227 227 -#define RTS_ID_Spare228 228 -#define RTS_ID_Spare229 229 - -#define RTS_ID_Spare230 230 -#define RTS_ID_Spare231 231 -#define RTS_ID_Spare232 232 -#define RTS_ID_Spare233 233 -#define RTS_ID_Spare234 234 -#define RTS_ID_Spare235 235 -#define RTS_ID_Spare236 236 -#define RTS_ID_Spare237 237 -#define RTS_ID_Spare238 238 -#define RTS_ID_Spare239 239 - -#define RTS_ID_Spare240 240 -#define RTS_ID_Spare241 241 -#define RTS_ID_Spare242 242 -#define RTS_ID_Spare243 243 -#define RTS_ID_Spare244 244 -#define RTS_ID_Spare245 245 -#define RTS_ID_Spare246 246 -#define RTS_ID_Spare247 247 -#define RTS_ID_Spare248 248 -#define RTS_ID_Spare249 249 - -#define RTS_ID_Spare250 250 -#define RTS_ID_Spare251 251 -#define RTS_ID_Spare252 252 -#define RTS_ID_Spare253 253 -#define RTS_ID_Spare254 254 -#define RTS_ID_Spare255 255 -#define RTS_ID_Spare256 256 -/** \} */ - - -#endif /* SC_RTS_H */ - -/************************/ -/* End of File Comment */ -/************************/ - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/config/ocpoc/s1000/inc/sch_grpids.h b/config/ocpoc/s1000/inc/sch_grpids.h deleted file mode 100644 index f2d6a64f4..000000000 --- a/config/ocpoc/s1000/inc/sch_grpids.h +++ /dev/null @@ -1,48 +0,0 @@ -#ifndef SCH_GRPIDS_H -#define SCH_GRPIDS_H - -/* -** Pragmas -*/ - -/* -** Include Files -*/ - -/* -** Local Defines -*/ -#define SCH_GROUP_NONE (0) -#define SCH_GROUP_CI (0x00000001) -#define SCH_GROUP_CF_SEND_HK (0x00000002) -#define SCH_GROUP_CF_WAKE_UP_REQ_CMD (0x00000010) -#define SCH_GROUP_CS_SEND_HK (0x00000020) -#define SCH_GROUP_MD_WAKEUP (0x00000040) -#define SCH_GROUP_DS_SEND_HK (0x00000080) -#define SCH_GROUP_SC_1HZ_WAKEUP (0x00000100) -#define SCH_GROUP_GOPRO_SEND_HK (0x00000200) -#define SCH_GROUP_FM_SEND_HK (0x00000400) -#define SCH_GROUP_HK_SEND_HK (0x00000800) -#define SCH_GROUP_HS_SEND_HK (0x00001000) -#define SCH_GROUP_LC_SEND_HK (0x00002000) -#define SCH_GROUP_MD_SEND_HK (0x00004000) -#define SCH_GROUP_MM_SEND_HK (0x00008000) -#define SCH_GROUP_SC_SEND_HK (0x00010000) -#define SCH_GROUP_SCH_SEND_HK (0x00020000) -#define SCH_GROUP_CFE_ES_SEND_HK (0x00040000) -#define SCH_GROUP_CFE_EVS_SEND_HK (0x00080000) -#define SCH_GROUP_CFE_SB_SEND_HK (0x00100000) -#define SCH_GROUP_CFE_TBL_SEND_HK (0x00200000) -#define SCH_GROUP_CFE_TIME_SEND_HK (0x00400000) -#define SCH_GROUP_HS_WAKEUP (0x00800000) -#define SCH_GROUP_TO (0x01000000) -#define SCH_GROUP_VC (0x02000000) -#define SCH_GROUP_EA (0x04000000) - -#endif /* SCH_GRPIDS_H */ - -/*======================================================================================= -** End of file sch_grpids.h -**=====================================================================================*/ - - diff --git a/config/ocpoc/s1000/inc/sch_msgids.h b/config/ocpoc/s1000/inc/sch_msgids.h deleted file mode 100644 index be337a78a..000000000 --- a/config/ocpoc/s1000/inc/sch_msgids.h +++ /dev/null @@ -1,10 +0,0 @@ -#ifndef SCH_MSGIDS_H -#define SCH_MSGIDS_H - -#include "msg_ids.h" - -#endif /* SCH_MSGIDS_H */ - -/************************/ -/* End of File Comment */ -/************************/ diff --git a/config/ocpoc/s1000/inc/sch_platform_cfg.h b/config/ocpoc/s1000/inc/sch_platform_cfg.h deleted file mode 100644 index 0c946a35c..000000000 --- a/config/ocpoc/s1000/inc/sch_platform_cfg.h +++ /dev/null @@ -1,294 +0,0 @@ -#ifndef SCH_PLATFORM_CFG_H -#define SCH_PLATFORM_CFG_H - -#include "osapi.h" - - -/************************************************************************* -** Macro definitions -**************************************************************************/ - -/** -** \schcfg Software Bus Command Pipe Depth -** -** \par Description: -** Dictates the number of messages to SCH that can be queued while awaiting -** processing by the SCH Application. -** -** \par Limits -** Must be greater than zero -*/ -#define SCH_PIPE_DEPTH 12 /**< \brief SCH Command Pipe Depth */ - -#define SCH_AD_PIPE_DEPTH 3 -#define SCH_AD_CHILD_TASK_PRIORITY 37 -#define SCH_AD_CHILD_TASK_FLAGS OS_ENABLE_CORE_0 - -/*#define SCH_RTM_SUPPORTED*/ - -/* -** Schedule table definitions... -*/ -/** -** \schcfg Minor Frame Frequency (in Hz) -** -** \par Description: -** Dictates the number of minor frame slots within each Major Frame. -** -** \par Limits -** Must be 2 or more and less than 65536 -*/ -#define SCH_TOTAL_SLOTS 250 /* SCH wake-up rate (Hz) */ - - -/** -** \schcfg Maximum number of Activities per Minor Frame -** -** \par Description: -** Dictates the number of activities that can be defined for each Minor Frame. -** -** \par Limits -** Must be at least one -*/ -#define SCH_ENTRIES_PER_SLOT 15 - - -/** -** \schcfg Maximum Number of Message Definitions in Message Definition Table -** -** \par Description: -** Dictates the number of messages that can be defined in Message Definition Table. -** -** \par Limits -** Must be at least one -*/ -#define SCH_MAX_MESSAGES 128 - -/** -** \schcfg Maximum Message ID allowed in Message Definition Table -** -** \par Description: -** Dictates the maximum message ID that can be used in the Message Definition Table. -** -** \par Limits -** Must be less than or equal to SCH_MDT_MAX_MSG_ID and greater than or equal to 0 -*/ -#define SCH_MDT_MIN_MSG_ID 0 - -/** -** \schcfg Minimum Message ID allowed in Message Definition Table -** -** \par Description: -** Dictates the minimum message ID that can be used in the Message Definition Table. -** -** \par Limits -** Must be less than or equal to #CFE_SB_HIGHEST_VALID_MSGID and greater than SCH_MDT_MIN_MSG_ID -*/ -#define SCH_MDT_MAX_MSG_ID CFE_SB_HIGHEST_VALID_MSGID - - -/** -** \schcfg Maximum Length, in Words, of a Message -** -** \par Description: -** Dictates the maximum number of words that can be assigned to a particular message -** in the Message Definition Table. -** -** \par Limits -** Must be at least large enough to hold the smallest possible message header -* ** (see #CFE_SB_TLM_HDR_SIZE and #CFE_SB_CMD_HDR_SIZE) -*/ -#define SCH_MAX_MSG_WORDS 64 /* max message length (in words) */ - - -/* -** Limits for how far we can get behind and how much we can do at once... -*/ -/** -** \schcfg Maximum Number of slots allowed for catch-up before skipping -** -** \par Description: -** Dictates the number of Minor Frames that will be processed in "Catch Up" -** mode before giving up and skipping ahead. -** -** \par Limits -** -*/ -#define SCH_MAX_LAG_COUNT (SCH_TOTAL_SLOTS / 2) - - -/** -** \schcfg Maximum Number of Slots to be processed when in "Catch Up" mode -** -** \par Description: -** Dictates the maximum number of slots SCH will process when trying to -** "Catch Up" to the correct slot for the current time. -** -** \par Limits -** Must be at least one -*/ -#define SCH_MAX_SLOTS_PER_WAKEUP 5 - -/* -** Conversion factor for how many microseconds in a wake-up period... -*/ -/** -** \schcfg Major Frame Period (in microseconds) -** -** \par Description: -** Dictates the number microseconds in a Major Frame. -** -** \par Limits -** Must be greater than zero -*/ -#define SCH_MICROS_PER_MAJOR_FRAME 1000000 - - -/** -** \schcfg Additional time allowed in Sync Slot to wait for Major Frame Sync (in microseconds) -** -** \par Description: -** Dictates the additional time allowed in the Syncronization Slot -** to allow the Major Frame Sync signal to be received and re-synchronize -** processing. -** -** \par Limits -** Must be less than the normal slot period -*/ -#define SCH_SYNC_SLOT_DRIFT_WINDOW 500 - - -/** -** \schcfg Time, in milliseconds, to wait for all applications to be started and ready to run -** -** \par Description: -** Dictates the timeout for the #CFE_ES_WaitForStartupSync call that SCH uses to wait -** for all of the Applications specified in the startup script to finish initialization. -** SCH will wait this amount of time before assuming all startup script applications have -** been started and will then begin nominal schedule processing. -** -** \par Limits -** None -*/ -#define SCH_STARTUP_SYNC_TIMEOUT 50000 - - -/** -** \schcfg Time, in microseconds, to wait for first Major Frame Sync to arrive -** -** \par Description: -** Dictates the time allowed for the first Major Frame sync signal to arrive -** before assuming it is not going to occur and switching to a freewheeling -** mode. -** -** \par Limits -** Must be greater than or equal to the Major Frame Period -*/ -#define SCH_STARTUP_PERIOD (5*SCH_MICROS_PER_MAJOR_FRAME) - - -/* -** Specifies the limit on the number of consecutive noisy Major Frame signals -** before we begin to ignore them. -*/ -/** -** \schcfg Maximum Number of consecutive Noisy Major Frame signals before they are ignored -** -** \par Description: -** Dictates the number of consecutive "Noisy" Major Frame Signals (i.e. - signals that -** occur outside the expected window of their occurence) until the Major Frame signal -** is automatically ignored and the Minor Frame Timer is used instead. -** -** \par Limits -** This value should never be set to less than two because a single "noisy" Major -** Frame signal is likely when turning on or switching the 1 Hz signal on the spacecraft. -*/ -#define SCH_MAX_NOISY_MAJORF 2 - - -/** -** \schcfg Scheduler API Library Usage Status -** -** \par Description: -** Determines whether or not the Scheduler application is using the API library allowing -** for external tasks to disable and enable schedule processing. Note that if the library -** is to be used it must be generated as a separate object, and loaded prior to the -** appplication. -** -** \par Limits -** This value must either be 0 when not using or including the library, or 1 if the library -** is going to be used. -*/ -#define SCH_LIB_PRESENCE 1 - - -/** -** \schcfg Scheduler API Library Initial Inhibition Count -** -** \par Description: -** Sets the number of times the scheduler must be enabled following library initialization. -** This allows the scheduler to come up either enabled (set to 0) or disabled (set to -** a value greater than or equal to 1) -** -** \par Limits -** This value must be an unsigned 32 bit integer. -*/ -#define SCH_LIB_DIS_CTR 0 - - -/** -** \schcfg Default SCH Schedule Definition Table Filename -** -** \par Description: -** The value of this constant defines the default filename of -** the SCH Schedule Definition Table -** -** \par Limits -** The length of each string, including the NULL terminator cannot exceed -** the #OS_MAX_PATH_LEN value. -*/ - -//#define SCH_SCHEDULE_FILENAME "/cf/apps/sch_def_schtbl.tbl" -#define SCH_SCHEDULE_FILENAME "/cf/apps/sch_def_schtbl.tbl" - - -/** -** \schcfg Default SCH Message Definition Table Filename -** -** \par Description: -** The value of this constant defines the default filename of the -** SCH Message Definition Table -** -** \par Limits -** The length of each string, including the NULL terminator cannot exceed -** the #OS_MAX_PATH_LEN value. -*/ - -#define SCH_MESSAGE_FILENAME "/cf/apps/sch_def_msgtbl.tbl" - - -/** \schcfg Mission specific version number for SCH application -** -** \par Description: -** An application version number consists of four parts: -** major version number, minor version number, revision -** number and mission specific revision number. The mission -** specific revision number is defined here and the other -** parts are defined in "sch_version.h". -** -** \par Limits: -** Must be defined as a numeric value that is greater than -** or equal to zero. -*/ - -#define SCH_MISSION_REV 0 - -#define SCH_DEADLINES_PER_SLOT 5 - - - -#endif /* SCH_PLATFORM_CFG_H */ - -/************************/ -/* End of File Comment */ -/************************/ diff --git a/config/ocpoc/s1000/inc/sens_platform_cfg.h b/config/ocpoc/s1000/inc/sens_platform_cfg.h deleted file mode 100644 index c8ac6f8ec..000000000 --- a/config/ocpoc/s1000/inc/sens_platform_cfg.h +++ /dev/null @@ -1,154 +0,0 @@ -#ifndef SENS_PLATFORM_CFG_H -#define SENS_PLATFORM_CFG_H - -#ifdef __cplusplus -extern "C" { -#endif - -/* -** SENS Platform Configuration Parameter Definitions -*/ - -/** \brief Mission specific version number for SENS application -** -** \par Description: -** An application version number consists of four parts: -** major version number, minor version number, revision -** number and mission specific revision number. The mission -** specific revision number is defined here and the other -** parts are defined in "amc_version.h". -** -** \par Limits: -** Must be defined as a numeric value that is greater than -** or equal to zero. -*/ -#define SENS_MISSION_REV (0) - -/** \brief Pipe depth for the Scheduler pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define SENS_SCH_PIPE_DEPTH (10) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define SENS_SCH_PIPE_NAME ("SENS_SCH_PIPE") - -/** \brief The SB pend behavior type for the Scheduler pipe. -** -** \par Limits: -** One of: CFE_SB_POLL, CFE_SB_PEND_FOREVER, or the -** number of milliseconds to wait for a new message (recommended). -** Note, using CFE_SB_PEND_FOREVER may cause an unresponsive -** application if no messages arrive on this pipe. -*/ -#define SENS_SCH_PIPE_PEND_TIME (2000) - -/** \brief The number of WAKEUP messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max limited to CFE_SB_MAX_PIPE_DEPTH-1. Note the -** SENS_WAKEUP_MID_MAX_MSG_COUNT and SENS_SEND_HK_MID_MAX_MSG_COUNT -** must be less than SENS_SCH_PIPE_DEPTH. -*/ -#define SENS_WAKEUP_MID_MAX_MSG_COUNT (1) - -/** \brief The number of SEND_HK messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. Note the -** SENS_WAKEUP_MID_MAX_MSG_COUNT and SENS_SEND_HK_MID_MAX_MSG_COUNT -** must be less than SENS_SCH_PIPE_DEPTH. -*/ -#define SENS_SEND_HK_MID_MAX_MSG_COUNT (1) - -/** \brief Pipe depth for the command pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define SENS_CMD_PIPE_DEPTH (4) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define SENS_CMD_PIPE_NAME ("SENS_CMD_PIPE") - -/** \brief Pipe depth for the data pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define SENS_DATA_PIPE_DEPTH (4) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define SENS_DATA_PIPE_NAME ("SENS_DATA_PIPE") - -/** \brief The config table default filename -** -** \par Limits: -** The length of each string, including the NULL terminator cannot exceed -** the #OS_MAX_PATH_LEN value. -*/ -#define SENS_CONFIG_TABLE_FILENAME ("/cf/apps/sens_config.tbl") - -/** \brief The timeout value, in milliseconds, to wait for ES application startup sync. -** -** \par Limits: -** This parameter must be at least 1000 (ms). -*/ -#define SENS_STARTUP_TIMEOUT_MSEC (1000) - -/** \brief The maximum time difference, in microseconds, between accelerometer -** measurements to be considered valid. -** -** \par Limits: -** This parameter must be greater than 0. -*/ -#define SENS_MAX_ACC_TIME_DELTA (25) - -/** \brief The maximum time difference, in microseconds, between gyro -** measurements to be considered valid. -** -** \par Limits: -** This parameter must be greater than 0. -*/ -#define SENS_MAX_GYRO_TIME_DELTA (25) - -/** \brief The maximum time difference, in microseconds, between magnetometer -** measurements to be considered valid. -** -** \par Limits: -** This parameter must be greater than 0. -*/ -#define SENS_MAX_MAG_TIME_DELTA (25) - -/** \brief The maximum time difference, in microseconds, between barometer -** measurements to be considered valid. -** -** \par Limits: -** This parameter must be greater than 0. -*/ -#define SENS_MAX_BARO_TIME_DELTA (100) - - -#ifdef __cplusplus -} -#endif - -#endif /* SENS_PLATFORM_CFG_H */ - -/************************/ -/* End of File Comment */ -/************************/ - diff --git a/config/ocpoc/s1000/inc/to_msgids.h b/config/ocpoc/s1000/inc/to_msgids.h deleted file mode 100644 index a00beac0e..000000000 --- a/config/ocpoc/s1000/inc/to_msgids.h +++ /dev/null @@ -1,10 +0,0 @@ -#ifndef TO_MSGIDS_H -#define TO_MSGIDS_H - -#include "msg_ids.h" - -#endif - -/************************/ -/* End of File Comment */ -/************************/ diff --git a/config/ocpoc/s1000/inc/to_platform_cfg.h b/config/ocpoc/s1000/inc/to_platform_cfg.h deleted file mode 100644 index c520a9242..000000000 --- a/config/ocpoc/s1000/inc/to_platform_cfg.h +++ /dev/null @@ -1,281 +0,0 @@ -#ifndef TO_PLATFORM_CFG_H -#define TO_PLATFORM_CFG_H - -#ifdef __cplusplus -extern "C" { -#endif - -#include "cfe_platform_cfg.h" - -/* -** Platform Configuration Parameter Definitions -*/ - - -/** \tocfg Child task flags -** -** \par Description: -** These are optional flags passed to the #CFE_ES_CreateChildTask -** function when creating the CFE child task. -** -*/ -#define TO_CUSTOM_CHILD_TASK_FLAGS (OS_ENABLE_CORE_0) - - -/** \tocfg Child task stack size -** -** \par Description: -** Child task stack size passed to the #CFE_ES_CreateChildTask -** function when creating the CFE child task. Stack size is in -** bytes. -** -*/ -#define TO_CUSTOM_TASK_STACK_SIZE (131072) - - -/** \tocfg Default telemetry destination IP address -** -** \par Description: -** Default IP address to send the telemetry stream to. This is default -** only and can be changed by command at runtime. -** -*/ -#define TO_UDP_CHANNEL_ADDRESS "192.168.2.215" - - -/** \tocfg Default telemetry destination UDP port -** -** \par Description: -** Default UDP port to send the telemetry stream to. This is default -** only and can be changed by command at runtime. -** -*/ -#define TO_UDP_CHANNEL_PORT (5011) - - -/** \tocfg Message Flow packet limit -** -** \par Description: -** This is the maximum number of message flow entries that can fit in -** a message flow diagnostic message. -** -*/ -#define TO_MSG_FLOW_PKT_LIMIT (200) - - -/** \tocfg Maximum message length -** -** \par Description: -** The maximum size that an output telemetry message can be. This is in -** bytes. If a message exceeds this size, it will be dropped by the -** classifier. -** -*/ -#define TO_MAX_MSG_LENGTH (32767) - -/** \tocfg The UDP channel's CF throttling semaphore name -** -** \par Limits: -** Two channels in CF must not have the same semaphore name. This must be unique -** compared to other channels' throttling semaphores. -*/ -#define TO_UDP_CF_THROTTLE_SEM_NAME "TO_CF_CH0_SEM" - - -/** \tocfg The UDP channel Name -*/ -#define TO_UDP_CHANNEL_NAME "UDP" - - - -/** \tocfg The UDP channel's default and maximum value for the CF - * throttling semaphore -** -** \par Limits: -** Must not be larger than the TO_DATA_PIPE_DEPTH -*/ -#define TO_UDP_CF_MAX_PDUS (4) - - -/** \tocfg Mission specific version number for TO application -** -** \par Description: -** An application version number consists of four parts: -** major version number, minor version number, revision -** number and mission specific revision number. The mission -** specific revision number is defined here and the other -** parts are defined in "to_version.h". -** -** \par Limits: -** Must be defined as a numeric value that is greater than -** or equal to zero. -*/ -#define TO_MISSION_REV (1) - -/** \tocfg Pipe depth for the Scheduler pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define TO_SCH_PIPE_DEPTH (2) - -/** \tocfg Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define TO_SCH_PIPE_NAME ("TO_SCH_PIPE") - -/** \tocfg The SB pend behavior type for the Scheduler pipe. -** -** \par Limits: -** One of: CFE_SB_POLL, CFE_SB_PEND_FOREVER, or the -** number of milliseconds to wait for a new message (recommended). -** Note, using CFE_SB_PEND_FOREVER may cause an unresponsive -** application if no messages arrive on this pipe. -*/ -#define TO_SCH_PIPE_PEND_TIME (2000) - -/** \tocfg The number of WAKEUP messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max limited to CFE_SB_MAX_PIPE_DEPTH-1. Note the -** TO_SCH_PIPE_WAKEUP_RESERVED and TO_SCH_PIPE_SEND_HK_RESERVED -** must be less than TO_SCH_PIPE_DEPTH. -*/ -#define TO_SCH_PIPE_WAKEUP_RESERVED (1) - -/** \tocfg The number of SEND_HK messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. Note the -** TO_SCH_PIPE_WAKEUP_RESERVED and TO_SCH_PIPE_SEND_HK_RESERVED -** must be less than TO_SCH_PIPE_DEPTH. -*/ -#define TO_SCH_PIPE_SEND_HK_RESERVED (1) - -/** \tocfg Pipe depth for the command pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define TO_CMD_PIPE_DEPTH (4) - -/** \tocfg Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define TO_CMD_PIPE_NAME ("TO_CMD_PIPE") - -/** \tocfg Pipe depth for the data pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define TO_DATA_PIPE_DEPTH (CFE_SB_MAX_PIPE_DEPTH) - -/** \tocfg The config table default filename -** -** \par Limits: -** The length of each string, including the NULL terminator cannot exceed -** the #OS_MAX_PATH_LEN value. -*/ -#define TO_UDP_CONFIG_TABLE_FILENAME ("/cf/apps/to_udp_cfg.tbl") - - -#define TO_MAX_MEMPOOL_BLK_SIZES (8) - -/** -** \cfeescfg Define TO Memory Pool Block Sizes -** -** \par Description: -** TO Memory Pool Block Sizes -** -** \par Limits -** These sizes MUST be increasing and MUST be an integral multiple of 4. -** The number of block sizes defined cannot exceed -** #CFE_ES_MAX_MEMPOOL_BLOCK_SIZES -*/ -#define TO_MEM_BLOCK_SIZE_01 32 -#define TO_MEM_BLOCK_SIZE_02 64 -#define TO_MEM_BLOCK_SIZE_03 128 -#define TO_MEM_BLOCK_SIZE_04 256 -#define TO_MEM_BLOCK_SIZE_05 512 -#define TO_MEM_BLOCK_SIZE_06 2048 -#define TO_MEM_BLOCK_SIZE_07 8192 -#define TO_MAX_BLOCK_SIZE (TO_MEM_BLOCK_SIZE_07 + TO_MEM_BLOCK_SIZE_07) - -/** - * \tocfg Defines the table identification name used for table registration - * of the configuration table. - */ -#define TO_UDP_CONFIG_TABLENAME "UDP_CFG" - -/** - * \tocfg Defines the table identification name used for table registration - * of the dump table. - */ -#define TO_UDP_DUMP_TABLENAME "UDP_DMP" - -/** \tocfg The timeout value, in milliseconds, to wait for ES application startup sync. -** -** \par Limits: -** This parameter must be at least 1000 (ms). -*/ -#define TO_STARTUP_TIMEOUT_MSEC (1000) - -/** \tocfg Maximum number of messages to classify per processing frame. -*/ -#define TO_MAX_MSGS_OUT_PER_FRAME (100) - -/** \tocfg Maximum number of messages to classify per processing frame. -*/ - -/** \tocfg Maximum number configurable channels. - * -** \par Description: This is normally set to 1. -*/ -#define TO_MAX_CHANNELS (1) - -/** \tocfg Channel output queue depth. - * -** \par Description: This defines how many messages can be queued into the -** channel output queue by the scheduler. -*/ -#define TO_OUTPUT_QUEUE_DEPTH (20) - -/** \tocfg Development UDP channel task priority. - * -** \par Description: This defines the priority of the development UDP -** child task. -*/ -#define TO_UDP_CHANNEL_TASK_PRIORITY (119) - -/** -** \tocfg Number of bytes in the Message Memory Pool -** -** \par Description: -** The message memory pool contains the memory needed for the queued messages packets. -** The queued messages are dynamically allocated from this pool when the -** messages are received and queued, and deallocated when messages are transmitted -** or a new table is loaded. -** -** \par Limits -** The Telemetry Output app does not place a limit on this parameter, but there is -** an overhead cost in the memory pool. The value must be larger than what is -** needed. -*/ -#define TO_NUM_BYTES_IN_MEM_POOL (200 * TO_MAX_BLOCK_SIZE) - - -#ifdef __cplusplus -} -#endif - -#endif /* TO_PLATFORM_CFG_H */ - -/************************/ -/* End of File Comment */ -/************************/ - diff --git a/config/ocpoc/s1000/inc/ulr_platform_cfg.h b/config/ocpoc/s1000/inc/ulr_platform_cfg.h deleted file mode 100644 index 16e60d3b0..000000000 --- a/config/ocpoc/s1000/inc/ulr_platform_cfg.h +++ /dev/null @@ -1,126 +0,0 @@ -#ifndef ULR_PLATFORM_CFG_H -#define ULR_PLATFORM_CFG_H - -#ifdef __cplusplus -extern "C" { -#endif - -#define ULR_LISTENER_TASK_FLAGS OS_ENABLE_CORE_0 - -/* -** ULR Platform Configuration Parameter Definitions -*/ - -/** \brief Mission specific version number for ULR application -** -** \par Description: -** An application version number consists of four parts: -** major version number, minor version number, revision -** number and mission specific revision number. The mission -** specific revision number is defined here and the other -** parts are defined in "amc_version.h". -** -** \par Limits: -** Must be defined as a numeric value that is greater than -** or equal to zero. -*/ -#define ULR_MISSION_REV (0) - -/** \brief Pipe depth for the Scheduler pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define ULR_SCH_PIPE_DEPTH (2) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define ULR_SCH_PIPE_NAME ("ULR_SCH_PIPE") - -/** \brief The SB pend behavior type for the Scheduler pipe. -** -** \par Limits: -** One of: CFE_SB_POLL, CFE_SB_PEND_FOREVER, or the -** number of milliseconds to wait for a new message (recommended). -** Note, using CFE_SB_PEND_FOREVER may cause an unresponsive -** application if no messages arrive on this pipe. -*/ -#define ULR_SCH_PIPE_PEND_TIME (2000) - -/** \brief The number of WAKEUP messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max limited to CFE_SB_MAX_PIPE_DEPTH-1. Note the -** ULR_MEASURE_MID_MAX_MSG_COUNT and ULR_SEND_HK_MID_MAX_MSG_COUNT -** must be less than ULR_SCH_PIPE_DEPTH. -*/ -#define ULR_MEASURE_MID_MAX_MSG_COUNT (1) - -/** \brief The number of SEND_HK messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. Note the -** ULR_MEASURE_MID_MAX_MSG_COUNT and ULR_SEND_HK_MID_MAX_MSG_COUNT -** must be less than ULR_SCH_PIPE_DEPTH. -*/ -#define ULR_SEND_HK_MID_MAX_MSG_COUNT (1) - -/** \brief Pipe depth for the command pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define ULR_CMD_PIPE_DEPTH (4) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define ULR_CMD_PIPE_NAME ("ULR_CMD_PIPE") - -/** \brief Pipe depth for the data pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define ULR_DATA_PIPE_DEPTH (4) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define ULR_DATA_PIPE_NAME ("ULR_DATA_PIPE") - -/** \brief The timeout value, in milliseconds, to wait for ES application startup sync. -** -** \par Limits: -** This parameter must be at least 1000 (ms). -*/ -#define ULR_STARTUP_TIMEOUT_MSEC (1000) - -/* TODO: Add Doxygen */ -#define ULR_CUSTOM_PORT_PATH "/dev/ttyS6" -#define ULR_SENS_VARIANCE (0.045f * 0.045f) - - -#define ULR_LISTENER_TASK_PRIORITY (64) -#define ULR_LISTENER_TASK_STACK_SIZE (16000) -#define ULR_LISTENER_TASK_NAME "ULR_LISTENER" -#define ULR_MUTEX_NAME "ULR_MUTEX" - - -#ifdef __cplusplus -} -#endif - -#endif /* ULR_PLATFORM_CFG_H */ - -/************************/ -/* End of File Comment */ -/************************/ - diff --git a/config/ocpoc/s1000/inc/vc_platform_cfg.h b/config/ocpoc/s1000/inc/vc_platform_cfg.h deleted file mode 100644 index 61ac4baaf..000000000 --- a/config/ocpoc/s1000/inc/vc_platform_cfg.h +++ /dev/null @@ -1,305 +0,0 @@ -#ifndef VC_PLATFORM_CFG_H -#define VC_PLATFORM_CFG_H - -#ifdef __cplusplus -extern "C" { -#endif - -#include - -#define VC_STREAMING_TASK_FLAGS OS_ENABLE_CORE_0 - -/* -** VC Platform Configuration Parameter Definitions -*/ - -/** \brief Mission specific version number for VC application -** -** \par Description: -** An application version number consists of four parts: -** major version number, minor version number, revision -** number and mission specific revision number. The mission -** specific revision number is defined here and the other -** parts are defined in "vc_version.h". -** -** \par Limits: -** Must be defined as a numeric value that is greater than -** or equal to zero. -*/ -#define VC_MISSION_REV (0) - -/** \brief Pipe depth for the Scheduler pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define VC_SCH_PIPE_DEPTH (2) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define VC_SCH_PIPE_NAME ("VC_SCH_PIPE") - -/** \brief The SB pend behavior type for the Scheduler pipe. -** -** \par Limits: -** One of: CFE_SB_POLL, CFE_SB_PEND_FOREVER, or the -** number of milliseconds to wait for a new message (recommended). -** Note, using CFE_SB_PEND_FOREVER may cause an unresponsive -** application if no messages arrive on this pipe. -*/ -#define VC_SCH_PIPE_PEND_TIME (2000) - -/** \brief The number of WAKEUP messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max limited to CFE_SB_MAX_PIPE_DEPTH-1. Note the -** VC_SCH_PIPE_WAKEUP_RESERVED and VC_SCH_PIPE_SEND_HK_RESERVED -** must be less than VC_SCH_PIPE_DEPTH. -*/ -#define VC_SCH_PIPE_WAKEUP_RESERVED (1) - -/** \brief The number of SEND_HK messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. Note the -** VC_SCH_PIPE_WAKEUP_RESERVED and VC_SCH_PIPE_SEND_HK_RESERVED -** must be less than VC_SCH_PIPE_DEPTH. -*/ -#define VC_SCH_PIPE_SEND_HK_RESERVED (1) - -/** \brief Pipe depth for the command pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define VC_CMD_PIPE_DEPTH (4) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define VC_CMD_PIPE_NAME ("VC_CMD_PIPE") - -/** \brief The timeout value, in milliseconds, to wait for ES application startup sync. -** -** \par Limits: -** This parameter must be at least 1000 (ms). -*/ -#define VC_STARTUP_TIMEOUT_MSEC (1000) - -/** \brief The max address length -** -** \par Limits: -** This parameter must be at least 16 for IPV4. -*/ -#define VC_ADDRESS_LENGTH INET_ADDRSTRLEN - -/* Custom Settings */ - - -/** \brief Max channels allowed -** -** \par Limits: -** Minimum of 1. -*/ -#define VC_MAX_OUTPUT_CHANNELS (5) - -/** \brief Max device path length -** -** \par Limits: -** OS_MAX_LOCAL_PATH_LEN -*/ -#define VC_MAX_DEVICE_PATH OS_MAX_LOCAL_PATH_LEN - -/** \brief Max number of camera devices -** -** \par Limits: -** Minimum of 1. -*/ -#define VC_MAX_DEVICES (1) - -/** \brief Max buffer size -** -** \par Limits: -** Minimum based on configured device driver requirements. -*/ -//#define VC_MAX_BUFFER_SIZE (115200) -#define VC_MAX_BUFFER_SIZE (1228800) - -/** \brief Max packet size -** -** \par Limits: -** UDP max payload size. -*/ -#define VC_MAX_PACKET_SIZE (65527) - -/** \brief Retry attemps for interrupted calls -** -** \par Limits: -** None. -*/ -#define VC_MAX_RETRY_ATTEMPTS (2) - -/** \brief Sleep time micro seconds for interrupted calls -** -** \par Limits: -** None. -*/ -#define VC_MAX_RETRY_SLEEP_USEC (10) - -/** \brief Streaming task priority -** -** \par Limits: -** 0 to MAX_PRIORITY (usually 255) -*/ -#define VC_STREAMING_TASK_PRIORITY (91) - -/** \brief Streaming task name -** -** \par Limits: -** OS_MAX_API_NAME -*/ -#define VC_STREAMING_TASK_NAME "VC_STREAM" - -/* Camera settings */ - -/** \brief Video resolution width -** -** \par Limits: -** Specific to device -*/ -#define VC_FRAME_WIDTH (320) - -/** \brief Video resolution height -** -** \par Limits: -** Specific to device -*/ -#define VC_FRAME_HEIGHT (240) - -/** \brief Video frame rate -** -** \par Limits: -** Specific to device -*/ -#define VC_FRAMERATE (30) - -/** \brief Video camera device path -** -** \par Limits: -** OS_MAX_LOCAL_PATH_LEN -*/ -#define VC_DEVICE_PATH "/dev/video0" - - -/* Ground system settings */ - -/** \brief Ground system ip address -** -** \par Limits: -** INET_ADDRSTRLEN -*/ -#define VC_DESTINATION_IP "192.168.1.66" - -/** \brief Ground system port -** -** \par Limits: -** uint16 decimal -*/ -#define VC_DESTINATION_PORT (3001) - -/** \brief Source system ip address -** -** \par Limits: -** INET_ADDRSTRLEN -*/ -#define VC_SOURCE_IP "0" - -/** \brief Source system port -** -** \par Limits: -** uint16 decimal -*/ -#define VC_SOURCE_PORT (0) - -/* V4L settings */ - -/** \brief V4L streaming io method -** -** \par Limits: -** V4L specific. -*/ -#define VC_V4L_IO_METHOD V4L2_MEMORY_USERPTR - -/** \brief V4L buffer type -** -** \par Limits: -** V4L specific. -*/ -#define VC_V4L_BUFFER_TYPE V4L2_BUF_TYPE_VIDEO_CAPTURE - -/** \brief V4L video format -** -** \par Limits: -** V4L specific. -*/ -#define VC_V4L_VIDEO_FORMAT V4L2_PIX_FMT_MJPEG - -/** \brief V4L field order -** -** \par Limits: -** V4L specific. -*/ -#define VC_V4L_VIDEO_FIELD_ORDER V4L2_FIELD_NONE - -/** \brief V4L buffers to request -** -** \par Limits: -** V4L specific. -*/ -#define VC_V4L_BUFFER_REQUEST (4) - -/** \brief V4L Memory Type -** -** \par Limits: -** V4L specific. -*/ -#define VC_V4L_MEMORY_TYPE V4L2_MEMORY_USERPTR - -/* Timeout settings */ - -/** \brief Wait time for camera data in seconds -** -** \par Limits: -** None. -*/ -#define VC_BUFFER_FILL_TIMEOUT_SEC (2) - -/** \brief Wait time for camera data in microseconds -** -** \par Limits: -** None. -*/ -#define VC_BUFFER_FILL_TIMEOUT_USEC (0) - -/** \brief Max timeouts until exiting streaming task -** -** \par Limits: -** None. -*/ -#define VC_BUFFER_TIMEOUTS_ALLOWED (2) - - -#ifdef __cplusplus -} -#endif - -#endif /* VC_PLATFORM_CFG_H */ - -/************************/ -/* End of File Comment */ -/************************/ diff --git a/config/ocpoc/s1000/inc/vm_platform_cfg.h b/config/ocpoc/s1000/inc/vm_platform_cfg.h deleted file mode 100644 index af0ac002b..000000000 --- a/config/ocpoc/s1000/inc/vm_platform_cfg.h +++ /dev/null @@ -1,151 +0,0 @@ -#ifndef VM_PLATFORM_CFG_H -#define VM_PLATFORM_CFG_H - -#ifdef __cplusplus -extern "C" { -#endif - -/* -** VM Platform Configuration Parameter Definitions -*/ - -/** \brief Mission specific version number for VM application -** -** \par Description: -** An application version number consists of four parts: -** major version number, minor version number, revision -** number and mission specific revision number. The mission -** specific revision number is defined here and the other -** parts are defined in "amc_version.h". -** -** \par Limits: -** Must be defined as a numeric value that is greater than -** or equal to zero. -*/ -#define VM_MISSION_REV (0) - -/** \brief Pipe depth for the Scheduler pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define VM_SCH_PIPE_DEPTH (30) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define VM_SCH_PIPE_NAME ("VM_SCH_PIPE") - -/** \brief The SB pend behavior type for the Scheduler pipe. -** -** \par Limits: -** One of: CFE_SB_POLL, CFE_SB_PEND_FOREVER, or the -** number of milliseconds to wait for a new message (recommended). -** Note, using CFE_SB_PEND_FOREVER may cause an unresponsive -** application if no messages arrive on this pipe. -*/ -#define VM_SCH_PIPE_PEND_TIME (2000) - -/** \brief The number of WAKEUP messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max limited to CFE_SB_MAX_PIPE_DEPTH-1. Note the -** VM_WAKEUP_MID_MAX_MSG_COUNT and VM_SEND_HK_MID_MAX_MSG_COUNT -** must be less than VM_SCH_PIPE_DEPTH. -*/ -#define VM_WAKEUP_MID_MAX_MSG_COUNT (1) - -/** \brief The number of SEND_HK messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. Note the -** VM_WAKEUP_MID_MAX_MSG_COUNT and VM_SEND_HK_MID_MAX_MSG_COUNT -** must be less than VM_SCH_PIPE_DEPTH. -*/ -#define VM_SEND_HK_MID_MAX_MSG_COUNT (1) - -/** \brief Pipe depth for the command pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define VM_CMD_PIPE_DEPTH (4) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define VM_CMD_PIPE_NAME ("VM_CMD_PIPE") - -/** \brief Pipe depth for the data pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define VM_DATA_PIPE_DEPTH (18) - -/** \brief Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define VM_DATA_PIPE_NAME ("VM_DATA_PIPE") - -/** \brief Pipe depth for the parameters pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define VM_PARAM_PIPE_DEPTH (4) - -/** \brief Pipe name for the parameters pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define VM_PARAM_PIPE_NAME ("VM_PARAM_PIPE") - -/** \brief The config table default filename -** -** \par Limits: -** The length of each string, including the NULL terminator cannot exceed -** the #OS_MAX_PATH_LEN value. -*/ -#define VM_CONFIG_TABLE_FILENAME ("/cf/apps/vm_config.tbl") - -/** \brief The timeout value, in milliseconds, to wait for ES application startup sync. -** -** \par Limits: -** This parameter must be at least 1000 (ms). -*/ -#define VM_STARTUP_TIMEOUT_MSEC (1000) - -/** \brief The timeout value, in microseconds, to wait until VM starts checking battery -** voltage. -** -** \par Limits: -** None -*/ -#define VM_BATTERY_VOLTAGE_CHECK_DELAY (6000000) - -/** \brief The minimum battery voltage to be considered valid. -** -** \par Limits: -** Must be greater than or equal to FLT_EPSILON. -*/ -#define VM_MINIMUM_VALID_BATTERY_VOLTAGE (2.0f) - - -#ifdef __cplusplus -} -#endif - -#endif /* VM_PLATFORM_CFG_H */ - -/************************/ -/* End of File Comment */ -/************************/ - diff --git a/config/ocpoc/s1000/target/CMakeLists.txt b/config/ocpoc/s1000/target/CMakeLists.txt index 935c6d9ef..8cbe1d7cd 100644 --- a/config/ocpoc/s1000/target/CMakeLists.txt +++ b/config/ocpoc/s1000/target/CMakeLists.txt @@ -37,21 +37,21 @@ buildliner_add_app( buildliner_add_app( prmlib DEFINITION ${PROJECT_SOURCE_DIR}/apps/prmlib/fsw/for_build - CONFIG ${CMAKE_CURRENT_SOURCE_DIR}/apps/prm + CONFIG ${PROJECT_SOURCE_DIR}/config/shared/apps/prm ) buildliner_add_app( sch DEFINITION ${PROJECT_SOURCE_DIR}/apps/sch/fsw/for_build - CONFIG ${CMAKE_CURRENT_SOURCE_DIR}/apps/sch + CONFIG ${CMAKE_CURRENT_SOURCE_DIR}/../../shared/apps/sch CONFIG_SOURCES - ${CMAKE_CURRENT_SOURCE_DIR}/apps/sch/sch_custom_rt.c + ${CMAKE_CURRENT_SOURCE_DIR}/../../shared/apps/sch/sch_custom_rt.c ) buildliner_add_app( cf DEFINITION ${PROJECT_SOURCE_DIR}/apps/cf/fsw/for_build - CONFIG ${CMAKE_CURRENT_SOURCE_DIR}/apps/cf + CONFIG ${PROJECT_SOURCE_DIR}/config/shared/apps/cf ) buildliner_add_app( @@ -63,7 +63,7 @@ buildliner_add_app( buildliner_add_app( ds DEFINITION ${PROJECT_SOURCE_DIR}/apps/ds/fsw/for_build - CONFIG ${CMAKE_CURRENT_SOURCE_DIR}/apps/ds + CONFIG ${PROJECT_SOURCE_DIR}/config/shared/apps/ds ) buildliner_add_app( @@ -114,36 +114,26 @@ buildliner_add_app( buildliner_add_app( ci DEFINITION ${PROJECT_SOURCE_DIR}/apps/ci/fsw/for_build - CONFIG ${CMAKE_CURRENT_SOURCE_DIR}/apps/ci + CONFIG ${PROJECT_SOURCE_DIR}/config/shared/apps/ci CONFIG_SOURCES - ${CMAKE_CURRENT_SOURCE_DIR}/apps/ci/ci_custom.c + ${PROJECT_SOURCE_DIR}/config/shared/apps/ci/ci_custom.c ) buildliner_add_app( to DEFINITION ${PROJECT_SOURCE_DIR}/apps/to/fsw/for_build - CONFIG ${CMAKE_CURRENT_SOURCE_DIR}/apps/to + CONFIG ${PROJECT_SOURCE_DIR}/config/shared/apps/to CONFIG_SOURCES - ${CMAKE_CURRENT_SOURCE_DIR}/apps/to/tables/to_backup_cfg.c - ${CMAKE_CURRENT_SOURCE_DIR}/apps/to/to_custom.c + ${PROJECT_SOURCE_DIR}/config/shared/apps/to/tables/to_backup_cfg.c + ${PROJECT_SOURCE_DIR}/config/shared/apps/to/to_custom.c ) buildliner_add_app( ea DEFINITION ${PROJECT_SOURCE_DIR}/apps/ea/fsw/for_build - CONFIG ${CMAKE_CURRENT_SOURCE_DIR}/apps/ea + CONFIG ${PROJECT_SOURCE_DIR}/config/shared/apps/ea CONFIG_SOURCES - ${CMAKE_CURRENT_SOURCE_DIR}/apps/ea/src/ea_custom.c -) - -buildliner_add_app( - vc - DEFINITION ${PROJECT_SOURCE_DIR}/apps/vc/fsw/for_build - CONFIG ${CMAKE_CURRENT_SOURCE_DIR}/apps/vc - CONFIG_SOURCES - ${CMAKE_CURRENT_SOURCE_DIR}/apps/vc/src/vc_dev_io_v4l/vc_dev_io_v4l.c - ${CMAKE_CURRENT_SOURCE_DIR}/apps/vc/src/vc_transmit_udp/vc_transmit_udp.c - ${CMAKE_CURRENT_SOURCE_DIR}/apps/vc/src/vc_custom.c + ${PROJECT_SOURCE_DIR}/config/shared/apps/ea/src/ea_custom.c ) buildliner_add_app( @@ -163,45 +153,45 @@ buildliner_add_app( buildliner_add_app( ulr DEFINITION ${PROJECT_SOURCE_DIR}/apps/ulr/fsw/for_build - CONFIG ${CMAKE_CURRENT_SOURCE_DIR}/apps/ulr + CONFIG ${CMAKE_CURRENT_SOURCE_DIR}/../../shared/apps/ulr CONFIG_SOURCES - ${CMAKE_CURRENT_SOURCE_DIR}/apps/ulr/ulr_custom.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/../../shared/apps/ulr/ulr_custom.cpp ) buildliner_add_app( rgbled DEFINITION ${PROJECT_SOURCE_DIR}/apps/rgbled/fsw/for_build - CONFIG ${CMAKE_CURRENT_SOURCE_DIR}/apps/rgbled + CONFIG ${CMAKE_CURRENT_SOURCE_DIR}/../../shared/apps/rgbled CONFIG_SOURCES - ${CMAKE_CURRENT_SOURCE_DIR}/apps/rgbled/src/rgbled_custom.c + ${CMAKE_CURRENT_SOURCE_DIR}/../../shared/apps/rgbled/src/rgbled_custom.c ) buildliner_add_app( ms5611 DEFINITION ${PROJECT_SOURCE_DIR}/apps/ms5611/fsw/for_build - CONFIG ${CMAKE_CURRENT_SOURCE_DIR}/apps/ms5611 + CONFIG ${PROJECT_SOURCE_DIR}/config/shared/apps/ms5611 CONFIG_SOURCES - ${CMAKE_CURRENT_SOURCE_DIR}/apps/ms5611/src/ms5611_custom.c + ${PROJECT_SOURCE_DIR}/config/shared/apps/ms5611/src/ms5611_custom.c ) buildliner_add_app( gps DEFINITION ${PROJECT_SOURCE_DIR}/apps/gps/fsw/for_build - CONFIG ${CMAKE_CURRENT_SOURCE_DIR}/apps/gps + CONFIG ${CMAKE_CURRENT_SOURCE_DIR}/../../shared/apps/gps CONFIG_SOURCES - ${CMAKE_CURRENT_SOURCE_DIR}/apps/gps/src/gps_interface_uart/gps_serial.c - ${CMAKE_CURRENT_SOURCE_DIR}/apps/gps/src/gps_parser_ubx/gps_parser_ubx_common.c - ${CMAKE_CURRENT_SOURCE_DIR}/apps/gps/src/gps_parser_ubx/gps_parser_ubx_nav.c - ${CMAKE_CURRENT_SOURCE_DIR}/apps/gps/src/gps_parser_ubx/gps_parser_ubx_cfg.c - ${CMAKE_CURRENT_SOURCE_DIR}/apps/gps/src/gps_parser_ubx/gps_parser_ubx_ack.c - ${CMAKE_CURRENT_SOURCE_DIR}/apps/gps/src/gps_parser_ubx/gps_parser_ubx_mon.c - ${CMAKE_CURRENT_SOURCE_DIR}/apps/gps/src/gps_custom.c + ${CMAKE_CURRENT_SOURCE_DIR}/../../shared/apps/gps/src/gps_interface_uart/gps_serial.c + ${CMAKE_CURRENT_SOURCE_DIR}/../../shared/apps/gps/src/gps_parser_ubx/gps_parser_ubx_common.c + ${CMAKE_CURRENT_SOURCE_DIR}/../../shared/apps/gps/src/gps_parser_ubx/gps_parser_ubx_nav.c + ${CMAKE_CURRENT_SOURCE_DIR}/../../shared/apps/gps/src/gps_parser_ubx/gps_parser_ubx_cfg.c + ${CMAKE_CURRENT_SOURCE_DIR}/../../shared/apps/gps/src/gps_parser_ubx/gps_parser_ubx_ack.c + ${CMAKE_CURRENT_SOURCE_DIR}/../../shared/apps/gps/src/gps_parser_ubx/gps_parser_ubx_mon.c + ${CMAKE_CURRENT_SOURCE_DIR}/../../shared/apps/gps/src/gps_custom.c ) buildliner_add_app( sens DEFINITION ${PROJECT_SOURCE_DIR}/apps/sens/fsw/for_build - CONFIG ${CMAKE_CURRENT_SOURCE_DIR}/apps/sens + CONFIG ${CMAKE_CURRENT_SOURCE_DIR}/../../shared/apps/sens ) buildliner_add_app( @@ -213,27 +203,27 @@ buildliner_add_app( buildliner_add_app( vm DEFINITION ${PROJECT_SOURCE_DIR}/apps/vm/fsw/for_build - CONFIG ${CMAKE_CURRENT_SOURCE_DIR}/apps/vm + CONFIG ${CMAKE_CURRENT_SOURCE_DIR}/../../shared/apps/vm ) buildliner_add_app( ld DEFINITION ${PROJECT_SOURCE_DIR}/apps/ld/fsw/for_build - CONFIG ${CMAKE_CURRENT_SOURCE_DIR}/apps/ld + CONFIG ${CMAKE_CURRENT_SOURCE_DIR}/../../shared/apps/ld ) buildliner_add_app( nav DEFINITION ${PROJECT_SOURCE_DIR}/apps/nav/fsw/for_build - CONFIG ${CMAKE_CURRENT_SOURCE_DIR}/apps/nav + CONFIG ${CMAKE_CURRENT_SOURCE_DIR}/../../shared/apps/nav ) buildliner_add_app( rcin DEFINITION ${PROJECT_SOURCE_DIR}/apps/rcin/fsw/for_build - CONFIG ${CMAKE_CURRENT_SOURCE_DIR}/apps/rcin + CONFIG ${CMAKE_CURRENT_SOURCE_DIR}/../../shared/apps/rcin CONFIG_SOURCES - ${CMAKE_CURRENT_SOURCE_DIR}/apps/rcin/src/rcin_custom.c + ${CMAKE_CURRENT_SOURCE_DIR}/../../shared/apps/rcin/src/rcin_custom.c ) buildliner_add_app( @@ -247,17 +237,17 @@ buildliner_add_app( buildliner_add_app( mpu9250 DEFINITION ${PROJECT_SOURCE_DIR}/apps/mpu9250/fsw/for_build - CONFIG ${CMAKE_CURRENT_SOURCE_DIR}/apps/mpu9250 + CONFIG ${PROJECT_SOURCE_DIR}/config/shared/apps/mpu9250 CONFIG_SOURCES - ${CMAKE_CURRENT_SOURCE_DIR}/apps/mpu9250/src/mpu9250_custom.c + ${PROJECT_SOURCE_DIR}/config/shared/apps/mpu9250/src/mpu9250_custom.c ) buildliner_add_app( hmc5883 DEFINITION ${PROJECT_SOURCE_DIR}/apps/hmc5883/fsw/for_build - CONFIG ${CMAKE_CURRENT_SOURCE_DIR}/apps/hmc5883 + CONFIG ${PROJECT_SOURCE_DIR}/config/shared/apps/hmc5883 CONFIG_SOURCES - ${CMAKE_CURRENT_SOURCE_DIR}/apps/hmc5883/src/hmc5883_custom.c + ${PROJECT_SOURCE_DIR}/config/shared/apps/hmc5883/src/hmc5883_custom.c ) buildliner_add_app( @@ -266,12 +256,6 @@ buildliner_add_app( CONFIG ${CMAKE_CURRENT_SOURCE_DIR}/apps/pe ) -buildliner_add_app( - qae - DEFINITION ${PROJECT_SOURCE_DIR}/apps/qae/fsw/for_build - CONFIG ${CMAKE_CURRENT_SOURCE_DIR}/apps/qae -) - buildliner_add_app( lgc DEFINITION ${PROJECT_SOURCE_DIR}/apps/lgc/fsw/for_build diff --git a/config/ocpoc/s1000/target/apps/cf/CMakeLists.txt b/config/ocpoc/s1000/target/apps/cf/CMakeLists.txt deleted file mode 100644 index 248a08896..000000000 --- a/config/ocpoc/s1000/target/apps/cf/CMakeLists.txt +++ /dev/null @@ -1,10 +0,0 @@ -set(APP_NAME cf) - -buildliner_add_table( - ${APP_NAME} - NAME cf_cfgtable - SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/tables/cf_cfgtable.c - INCLUDES ${CMAKE_CURRENT_SOURCE_DIR}/src/ -) - - diff --git a/config/ocpoc/s1000/target/apps/cf/tables/cf_cfgtable.c b/config/ocpoc/s1000/target/apps/cf/tables/cf_cfgtable.c deleted file mode 100644 index e4dd91e34..000000000 --- a/config/ocpoc/s1000/target/apps/cf/tables/cf_cfgtable.c +++ /dev/null @@ -1,323 +0,0 @@ -/************************************************************************ -** Includes -*************************************************************************/ -#include "cfe.h" -#include "cfe_tbl_filedef.h" -#include "cf_tbldefs.h" -#include "cf_platform_cfg.h" -#include "cf_msgids.h" -#include "cf_defs.h" - -static OS_USED CFE_TBL_FileDef_t CFE_TBL_FileDef = -{ - "CF_ConfigTable", "CF.ConfigTable", "CF Config Tbl", - "cf_cfgtable.tbl", sizeof (cf_config_table_t) -}; - - -/* -** Default playback table data - See NOTE Above -*/ - -cf_config_table_t CF_ConfigTable = -{ - - "CF Default Table",/* TableIdString */ - 2, /* TableVersion (integer) */ - 4, /* NumEngCyclesPerWakeup */ - 2, /* NumWakeupsPerQueueChk */ - 4, /* NumWakeupsPerPollDirChk */ - 100, /* UplinkHistoryQDepth */ - 0, /* Reserved1 */ - 0, /* Reserved2 */ - "10", /* AckTimeout (secs, entered as string) */ - "2", /* AckLimit (max timeouts, string) */ - "5", /* NakTimeout (secs, string) */ - "3", /* NakLimit (max timeouts, string) */ - "20", /* InactivityTimeout (secs, string) */ - "200", /* OutgoingFileChunkSize (bytes, string)*/ - "no", /* SaveIncompleteFiles (yes,no, string) */ - "0.24", /* Flight EntityId - 2 byte dotted-decimal string eg. "0.255"*/ - - { /* Input Channel Array */ - - { /* Input Channel 0 */ - - CF_INCOMING_PDU_MID, - 0, /* Output Chan for Class 2 Uplink Responses, ACK-EOF,Nak,Fin etc) */ - 0, /* spare */ - - }, /* end Input Channel 0 */ - - }, /* end Input Channel Array */ - - { /* Playback Channel Array */ - - { /* Playback Channel #0 */ - CF_ENTRY_IN_USE, /* Playback Channel Entry In Use */ - CF_ENABLED, /* Dequeue Enable */ - CF_SPACE_TO_GND_PDU_MID, /* Space To Gnd PDU MsgId */ - 100, /* Pending Queue Depth */ - 100, /* History Queue Depth */ - "OutputChan0", /* Playback Channel Name */ - "TO_CF_CH0_SEM", /* Handshake Semaphore Name */ - - { /* Polling Directory Array */ - - { /* Polling Directory 0 */ - CF_ENTRY_IN_USE,/* Poll Directory In Use or Not */ - CF_DISABLED, /* Enable State */ - 1, /* Class (1 or 2)*/ - 5, /* Priority */ - CF_KEEP_FILE, /* Preserve files after successful transfer? */ - 0, /* Reserved1 */ - 0, /* Reserved2 */ - 0, /* Reserved3 */ - "0.23", /* Gnd EntityId - 2 byte dotted-decimal string eg. "0.255"*/ - "/cf/ch0poll0/", /* SrcPath, no spaces, fwd slash at end */ - "cftesting/", /* DstPath, no spaces */ - },/* End Polling Directory 0 */ - - { /* Polling Directory 1 */ - CF_ENTRY_IN_USE,/* Poll Directory In Use or Not */ - CF_DISABLED, /* Enable State */ - 1, /* Class (1 or 2)*/ - 0, /* Priority */ - CF_KEEP_FILE, /* Preserve files after successful transfer? */ - 0, /* Reserved1 */ - 0, /* Reserved2 */ - 0, /* Reserved3 */ - "0.23", /* Gnd EntityId - 2 byte dotted-decimal string eg. "0.255"*/ - "/cf/ch0poll1/", /* SrcPathname */ - "/gnd/", /* DestPathname */ - - },/* End Polling Directory 1 */ - - - { /* Polling Directory 2 */ - CF_ENTRY_IN_USE,/* Poll Directory In Use or Not */ - CF_DISABLED, /* Enable State */ - 1, /* Class (1 or 2)*/ - 5, /* Priority */ - CF_DELETE_FILE, /* Preserve files after successful transfer? */ - 0, /* Reserved1 */ - 0, /* Reserved2 */ - 0, /* Reserved3 */ - "0.23", /* Gnd EntityId - 2 byte dotted-decimal string eg. "0.255"*/ - "/cf/ch0poll2/", /* SrcPathname */ - "cftesting/", /* DstPathname */ - },/* End Polling Directory 2 */ - - { /* Polling Directory 3 */ - CF_ENTRY_IN_USE,/* Poll Directory In Use or Not */ - CF_DISABLED, /* Enable State */ - 1, /* Class (1 or 2)*/ - 0, /* Priority */ - CF_KEEP_FILE, /* Preserve files after successful transfer? */ - 0, /* Reserved1 */ - 0, /* Reserved2 */ - 0, /* Reserved3 */ - "0.23", /* Gnd EntityId - 2 byte dotted-decimal string eg. "0.255"*/ - "/cf/ch0poll3/", /* SrcPathname */ - "/gnd/", /* DestPathname */ - - },/* End Polling Directory 3 */ - - { /* Polling Directory 4 */ - CF_ENTRY_IN_USE,/* Poll Directory In Use or Not */ - CF_DISABLED, /* Enable State */ - 1, /* Class (1 or 2)*/ - 5, /* Priority */ - CF_DELETE_FILE, /* Preserve files after successful transfer? */ - 0, /* Reserved1 */ - 0, /* Reserved2 */ - 0, /* Reserved3 */ - "0.23", /* Gnd EntityId - 2 byte dotted-decimal string eg. "0.255"*/ - "/cf/ch0poll4/", /* SrcPathname */ - "cftesting/", /* DstPathname */ - },/* End Polling Directory 4 */ - - { /* Polling Directory 5 */ - CF_ENTRY_IN_USE,/* Poll Directory In Use or Not */ - CF_DISABLED, /* Enable State */ - 1, /* Class (1 or 2)*/ - 0, /* Priority */ - CF_KEEP_FILE, /* Preserve files after successful transfer? */ - 0, /* Reserved1 */ - 0, /* Reserved2 */ - 0, /* Reserved3 */ - "0.23", /* Gnd EntityId - 2 byte dotted-decimal string eg. "0.255"*/ - "/cf/ch0poll5/", /* SrcPathname */ - "/gnd/", /* DestPathname */ - - },/* End Polling Directory 5 */ - - { /* Polling Directory 6 */ - CF_ENTRY_IN_USE,/* Poll Directory In Use or Not */ - CF_DISABLED, /* Enable State */ - 1, /* Class (1 or 2)*/ - 5, /* Priority */ - CF_DELETE_FILE, /* Preserve files after successful transfer? */ - 0, /* Reserved1 */ - 0, /* Reserved2 */ - 0, /* Reserved3 */ - "0.23", /* Gnd EntityId - 2 byte dotted-decimal string eg. "0.255"*/ - "/cf/ch0poll6/", /* SrcPathname */ - "cftesting/", /* DstPathname */ - },/* End Polling Directory 6 */ - - { /* Polling Directory 7 */ - CF_ENTRY_IN_USE,/* Poll Directory In Use or Not */ - CF_DISABLED, /* Enable State */ - 1, /* Class (1 or 2)*/ - 0, /* Priority */ - CF_KEEP_FILE, /* Preserve files after successful transfer? */ - 0, /* Reserved1 */ - 0, /* Reserved2 */ - 0, /* Reserved3 */ - "0.23", /* Gnd EntityId - 2 byte dotted-decimal string eg. "0.255"*/ - "/cf/ch0poll7/", /* SrcPathname */ - "/gnd/", /* DestPathname */ - - },/* End Polling Directory 7 */ - - }, /* End Polling Directory Array */ - - }, /* End Playback Channel #0 */ - - - { /* Playback Channel #1 */ - CF_ENTRY_UNUSED, /* Playback Channel Entry In Use */ - CF_DISABLED, /* Dequeue Enable */ - CF_SPACE_TO_GND_PDU_MID, /* Space To Gnd PDU MsgId */ - 100, /* Pending Queue Depth */ - 100, /* History Queue Depth */ - "OutputChan1", /* Playback Channel Name */ - "TO_CF_CH1_SEM", /* Handshake Semaphore Name */ - - { /* Polling Directory Array */ - - { /* Polling Directory 0 */ - CF_ENTRY_UNUSED,/* Poll Directory In Use or Not */ - CF_DISABLED, /* Enable State */ - 1, /* Class (1 or 2)*/ - 0, /* Priority */ - CF_DELETE_FILE, /* Preserve files after successful transfer? */ - 0, /* Reserved1 */ - 0, /* Reserved2 */ - 0, /* Reserved3 */ - "0.23", /* Gnd EntityId - 2 byte dotted-decimal string eg. "0.255"*/ - "/cf/ch1poll0/", /* SrcPathname */ - "cftesting/", /* DstPathname */ - },/* End Polling Directory 0 */ - - { /* Polling Directory 1 */ - CF_ENTRY_UNUSED,/* Poll Directory In Use or Not */ - CF_DISABLED, /* Enable State */ - 1, /* Class (1 or 2)*/ - 0, /* Priority */ - CF_DELETE_FILE, /* Preserve files after successful transfer? */ - 0, /* Reserved1 */ - 0, /* Reserved2 */ - 0, /* Reserved3 */ - "0.23", /* Gnd EntityId - 2 byte dotted-decimal string eg. "0.255"*/ - "/cf/ch1poll1/", /* SrcPathname */ - "cftesting/", /* DstPathname */ - }, /* End Polling Directory 1 */ - - { /* Polling Directory 2 */ - CF_ENTRY_UNUSED,/* Poll Directory In Use or Not */ - CF_DISABLED, /* Enable State */ - 1, /* Class (1 or 2)*/ - 0, /* Priority */ - CF_DELETE_FILE, /* Preserve files after successful transfer? */ - 0, /* Reserved1 */ - 0, /* Reserved2 */ - 0, /* Reserved3 */ - "0.23", /* Gnd EntityId - 2 byte dotted-decimal string eg. "0.255"*/ - "/cf/ch1poll2/", /* SrcPathname */ - "cftesting/", /* DstPathname */ - },/* End Polling Directory 2 */ - - { /* Polling Directory 3 */ - CF_ENTRY_UNUSED,/* Poll Directory In Use or Not */ - CF_DISABLED, /* Enable State */ - 1, /* Class (1 or 2)*/ - 0, /* Priority */ - CF_DELETE_FILE, /* Preserve files after successful transfer? */ - 0, /* Reserved1 */ - 0, /* Reserved2 */ - 0, /* Reserved3 */ - "0.23", /* Gnd EntityId - 2 byte dotted-decimal string eg. "0.255"*/ - "/cf/ch1poll3/", /* SrcPathname */ - "cftesting/", /* DstPathname */ - }, /* End Polling Directory 3 */ - - { /* Polling Directory 4 */ - CF_ENTRY_UNUSED,/* Poll Directory In Use or Not */ - CF_DISABLED, /* Enable State */ - 1, /* Class (1 or 2)*/ - 0, /* Priority */ - CF_DELETE_FILE, /* Preserve files after successful transfer? */ - 0, /* Reserved1 */ - 0, /* Reserved2 */ - 0, /* Reserved3 */ - "0.23", /* Gnd EntityId - 2 byte dotted-decimal string eg. "0.255"*/ - "/cf/ch1poll4/", /* SrcPathname */ - "cftesting/", /* DstPathname */ - },/* End Polling Directory 4 */ - - { /* Polling Directory 5 */ - CF_ENTRY_UNUSED,/* Poll Directory In Use or Not */ - CF_DISABLED, /* Enable State */ - 1, /* Class (1 or 2)*/ - 0, /* Priority */ - CF_DELETE_FILE, /* Preserve files after successful transfer? */ - 0, /* Reserved1 */ - 0, /* Reserved2 */ - 0, /* Reserved3 */ - "0.23", /* Gnd EntityId - 2 byte dotted-decimal string eg. "0.255"*/ - "/cf/ch1poll5/", /* SrcPathname */ - "cftesting/", /* DstPathname */ - }, /* End Polling Directory 5 */ - - { /* Polling Directory 6 */ - CF_ENTRY_UNUSED,/* Poll Directory In Use or Not */ - CF_DISABLED, /* Enable State */ - 1, /* Class (1 or 2)*/ - 0, /* Priority */ - CF_DELETE_FILE, /* Preserve files after successful transfer? */ - 0, /* Reserved1 */ - 0, /* Reserved2 */ - 0, /* Reserved3 */ - "0.23", /* Gnd EntityId - 2 byte dotted-decimal string eg. "0.255"*/ - "/cf/ch1poll6/", /* SrcPathname */ - "cftesting/", /* DstPathname */ - },/* End Polling Directory 6 */ - - { /* Polling Directory 7 */ - CF_ENTRY_UNUSED,/* Poll Directory In Use or Not */ - CF_DISABLED, /* Enable State */ - 1, /* Class (1 or 2)*/ - 0, /* Priority */ - CF_DELETE_FILE, /* Preserve files after successful transfer? */ - 0, /* Reserved1 */ - 0, /* Reserved2 */ - 0, /* Reserved3 */ - "0.23", /* Gnd EntityId - 2 byte dotted-decimal string eg. "0.255"*/ - "/cf/ch1poll7/", /* SrcPathname */ - "cftesting/", /* DstPathname */ - }, /* End Polling Directory 7 */ - - }, /* End Polling Directory Array */ - - }, /* End Playback Channel #1 */ - - }, /* End Playback Channel Array */ - -}; /* End CF_ConfigTable */ - - -/************************/ -/* End of File Comment */ -/************************/ diff --git a/config/ocpoc/s1000/target/apps/ci/ci_custom.c b/config/ocpoc/s1000/target/apps/ci/ci_custom.c deleted file mode 100644 index 5a9c11ef3..000000000 --- a/config/ocpoc/s1000/target/apps/ci/ci_custom.c +++ /dev/null @@ -1,111 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ - -#include "ci_custom.h" -#include "ci_platform_cfg.h" -#include -#include -#include -#include "ci_events.h" -#include -#include - -#define CI_CUSTOM_RETURN_CODE_NULL_POINTER (-1) - - -typedef struct -{ - int Socket; - uint16 Port; -} CI_AppCustomData_t; - -CI_AppCustomData_t CI_AppCustomData = {0, 5010}; - - -osalbool CI_AddCustomEventFilters(uint32 *count) -{ - return TRUE; -} - - -int32 CI_InitCustom(void) -{ - int32 Status = CFE_SUCCESS; - int reuseaddr = 1; - struct sockaddr_in address; - - if((CI_AppCustomData.Socket = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP)) < 0) - { - CFE_EVS_SendEvent(CI_SOCKET_ERR_EID, CFE_EVS_ERROR, - "Socket errno: %i", errno); - Status = -1; - goto end_of_function; - } - - setsockopt(CI_AppCustomData.Socket, SOL_SOCKET, SO_REUSEADDR, &reuseaddr, sizeof(reuseaddr)); - - bzero((char *) &address, sizeof(address)); - address.sin_family = AF_INET; - address.sin_addr.s_addr = htonl (INADDR_ANY); - address.sin_port = htons(CI_AppCustomData.Port); - - if ( (bind(CI_AppCustomData.Socket, (struct sockaddr *) &address, sizeof(address)) < 0) ) - { - CFE_EVS_SendEvent(CI_SOCKET_ERR_EID, CFE_EVS_ERROR,"Bind socket failed = %d", errno); - Status = -1; - goto end_of_function; - } - - CFE_EVS_SendEvent(CI_ENA_INF_EID, CFE_EVS_INFORMATION, - "UDP command input enabled on port %u.", - CI_AppCustomData.Port); - -end_of_function: - return Status; - -} - - -void CI_ReadMessage(uint8* buffer, uint32* size) -{ - *size = recv(CI_AppCustomData.Socket, - (char *)buffer, - (size_t)size, 0); -} - - -void CI_CleanupCustom(void) -{ - close(CI_AppCustomData.Socket); -} - diff --git a/config/ocpoc/s1000/target/apps/ci/tables/ci_config.c b/config/ocpoc/s1000/target/apps/ci/tables/ci_config.c deleted file mode 100644 index dcd0efdce..000000000 --- a/config/ocpoc/s1000/target/apps/ci/tables/ci_config.c +++ /dev/null @@ -1,68 +0,0 @@ -/* -** Pragmas -*/ - -/* -** Include Files -*/ -#include "cfe_tbl_filedef.h" -#include "ci_tbldefs.h" - -/* -** Local Defines -*/ - -/* -** Local Structure Declarations -*/ -static OS_USED CFE_TBL_FileDef_t CFE_TBL_FileDef = -{ - /* Content format: ObjName[64], TblName[38], Desc[32], TgtFileName[20], ObjSize - ** ObjName - variable name of config table, e.g., CI_ConfigDefTbl[] - ** TblName - app's table name, e.g., CI.CONFIG_TBL, where CI is the same app name - ** used in cfe_es_startup.scr, and CI_defConfigTbl is the same table - ** name passed in to CFE_TBL_Register() - ** Desc - description of table in string format - ** TgtFileName[20] - table file name, compiled as .tbl file extension - ** ObjSize - size of the entire table - */ - - "CI_ConfigTbl", "CI.CONFIG_TBL", "CI default config table", - "ci_config.tbl", sizeof(CI_ConfigTblEntry_t) -}; - -/* -** External Global Variables -*/ - -/* -** Global Variables -*/ - -/* Default CI config table data */ -CI_ConfigTblEntry_t CI_ConfigTbl = -{ - /* Table ID */ - 1, - { - /* Registered Commands */ - {0x1806, 2, STEP_2, UNAUTHORIZED, 0, LOG} // CFE ES Proc/Power Reset - } -}; - -/* -** Local Variables -*/ - -/* -** Function Prototypes -*/ - -/* -** Function Definitions -*/ - -/*======================================================================================= -** End of file ci_config.c -**=====================================================================================*/ - diff --git a/config/ocpoc/s1000/target/apps/ci/unit_test/ci-custom.supp b/config/ocpoc/s1000/target/apps/ci/unit_test/ci-custom.supp deleted file mode 100644 index 1864afc99..000000000 --- a/config/ocpoc/s1000/target/apps/ci/unit_test/ci-custom.supp +++ /dev/null @@ -1,59 +0,0 @@ -# The following hits are a result of mallocs in UtList_Add. This is -# unit test specific code and does not impact the flight code. -{ - - Memcheck:Leak - match-leak-kinds: reachable - fun:malloc - fun:UtList_Add - fun:Ut_CFE_EVS_SendEventHook - fun:CFE_EVS_SendEvent - fun:CI_InitCustom - fun:Test_CI_InitCustom_Nominal - fun:UtTest_Run - fun:main -} - -{ - - Memcheck:Leak - match-leak-kinds: reachable - fun:malloc - fun:UtList_Add - fun:Ut_CFE_EVS_SendEventHook - fun:CFE_EVS_SendEvent - fun:CI_InitCustom - fun:Test_CI_InitCustom_Nominal - fun:UtTest_Run - fun:main -} - -{ - - Memcheck:Leak - match-leak-kinds: reachable - fun:malloc - fun:UtList_Add - fun:Ut_CFE_EVS_SendEventHook - fun:CFE_EVS_SendEvent - fun:CI_InitCustom - fun:Test_CI_InitCustom_Nominal - fun:UtTest_Run - fun:main -} - -{ - - Memcheck:Leak - match-leak-kinds: reachable - fun:malloc - fun:UtList_Add - fun:Ut_CFE_EVS_SendEventHook - fun:CFE_EVS_SendEvent - fun:CI_InitCustom - fun:Test_CI_InitCustom_Nominal - fun:UtTest_Run - fun:main -} - -################################### diff --git a/config/ocpoc/s1000/target/apps/ci/unit_test/ci_custom_test.c b/config/ocpoc/s1000/target/apps/ci/unit_test/ci_custom_test.c deleted file mode 100644 index f45ed5441..000000000 --- a/config/ocpoc/s1000/target/apps/ci/unit_test/ci_custom_test.c +++ /dev/null @@ -1,124 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ - -#include "ci_custom_test.h" -#include "ci_app.h" -#include "ci_test_utils.h" - -#include "uttest.h" -#include "ut_osapi_stubs.h" -#include "ut_cfe_sb_stubs.h" -#include "ut_cfe_es_stubs.h" -#include "ut_cfe_es_hooks.h" -#include "ut_cfe_evs_stubs.h" -#include "ut_cfe_evs_hooks.h" -#include "ut_cfe_time_stubs.h" -#include "ut_cfe_psp_memutils_stubs.h" -#include "ut_cfe_tbl_stubs.h" -#include "ut_cfe_fs_stubs.h" -#include "ut_cfe_time_stubs.h" - -int SOCK_RET_CODE; -int BIND_RET_CODE; - -/** - * Test CI_InitCustom(), Bad socket - */ -void Test_CI_InitCustom_Bad_Socket(void) -{ - int32 retCode = 0; - - /* Set to cause to fail */ - SOCK_RET_CODE = -1; - - /* Execute the function being tested */ - retCode = CI_InitCustom(); - - /* Verify results */ - UtAssert_True(retCode==-1,"Return = -1"); - UtAssert_EventSent(CI_SOCKET_ERR_EID, CFE_EVS_ERROR, "", "Socket error"); - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); -} - -/** - * Test CI_InitCustom(), Bad bind - */ -void Test_CI_InitCustom_Bad_Bind(void) -{ - int32 retCode = 0; - - /* Set to cause to fail */ - SOCK_RET_CODE = 0; - BIND_RET_CODE = -1; - - /* Execute the function being tested */ - retCode = CI_InitCustom(); - - /* Verify results */ - UtAssert_True(retCode==-1,"Return = -1"); - UtAssert_EventSent(CI_SOCKET_ERR_EID, CFE_EVS_ERROR, "", "Bind error"); - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); -} - -/** - * Test CI_InitCustom(), Nominal - */ -void Test_CI_InitCustom_Nominal(void) -{ - int32 retCode = -1; - - /* Set to cause to pass */ - SOCK_RET_CODE = 0; - BIND_RET_CODE = 0; - - /* Execute the function being tested */ - retCode = CI_InitCustom(); - - /* Verify results */ - UtAssert_True(retCode==0,"Return = 0"); - UtAssert_EventSent(CI_ENA_INF_EID, CFE_EVS_INFORMATION, "", "Socket opened"); - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); -} - -/************************************************************************** - * Rollup Test Cases - **************************************************************************/ -void CI_Custom_Test_AddTestCases(void) -{ - UtTest_Add(Test_CI_InitCustom_Bad_Socket, CI_Test_Setup, CI_Test_TearDown, - "Test_CI_InitCustom_Bad_Socket"); - UtTest_Add(Test_CI_InitCustom_Bad_Bind, CI_Test_Setup, CI_Test_TearDown, - "Test_CI_InitCustom_Bad_Bind"); - UtTest_Add(Test_CI_InitCustom_Nominal, CI_Test_Setup, CI_Test_TearDown, - "Test_CI_InitCustom_Nominal"); -} diff --git a/config/ocpoc/s1000/target/apps/ci/unit_test/ci_custom_test.h b/config/ocpoc/s1000/target/apps/ci/unit_test/ci_custom_test.h deleted file mode 100644 index dbc880681..000000000 --- a/config/ocpoc/s1000/target/apps/ci/unit_test/ci_custom_test.h +++ /dev/null @@ -1,48 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ - - -#ifndef CI_CUSTOM_TEST_H -#define CI_CUSTOM_TEST_H - -#ifdef __cplusplus -extern "C" { -#endif - -void CI_Custom_Test_AddTestCases(void); - -#ifdef __cplusplus -} -#endif - -#endif /* CI_CUSTOM_TEST_H */ diff --git a/config/ocpoc/s1000/target/apps/ci/unit_test/ci_mock_os_calls.c b/config/ocpoc/s1000/target/apps/ci/unit_test/ci_mock_os_calls.c deleted file mode 100644 index f16a1cc2a..000000000 --- a/config/ocpoc/s1000/target/apps/ci/unit_test/ci_mock_os_calls.c +++ /dev/null @@ -1,57 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ - -int SOCK_RET_CODE = 0; -int HTONL_RET_CODE = 0; -int HTONS_RET_CODE = 0; -int BIND_RET_CODE = 0; - -int __wrap_socket (int namespace, int style, int protocol) -{ - return SOCK_RET_CODE; -} - -//int __wrap_htonl (int hostlong) -//{ -// return HTONL_RET_CODE; -//} -// -//int __wrap_htons (int hostshort) -//{ -// return HTONS_RET_CODE; -//} - -int __wrap_bind (int socket, int *addr, int length) -{ - return BIND_RET_CODE; -} diff --git a/config/ocpoc/s1000/target/apps/ci/unit_test/ci_mock_os_calls.h b/config/ocpoc/s1000/target/apps/ci/unit_test/ci_mock_os_calls.h deleted file mode 100644 index 876608286..000000000 --- a/config/ocpoc/s1000/target/apps/ci/unit_test/ci_mock_os_calls.h +++ /dev/null @@ -1,50 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ - -#ifndef CI_MOCK_OS_CALLS_H -#define CI_MOCK_OS_CALLS_H - -#ifdef __cplusplus -extern "C" { -#endif - -extern int SOCK_RET_CODE; -extern int HTONL_RET_CODE; -extern int HTONS_RET_CODE; -extern int BIND_RET_CODE - -#ifdef __cplusplus -} -#endif - -#endif /* MOCK_OS_CALLS_H */ diff --git a/config/ocpoc/s1000/target/apps/ci/unit_test/ci_test_utils.c b/config/ocpoc/s1000/target/apps/ci/unit_test/ci_test_utils.c deleted file mode 100644 index 2f1db3298..000000000 --- a/config/ocpoc/s1000/target/apps/ci/unit_test/ci_test_utils.c +++ /dev/null @@ -1,83 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ - - -#include "ci_test_utils.h" - -#include "ut_cfe_evs_hooks.h" -#include "ut_cfe_time_stubs.h" -#include "ut_cfe_psp_memutils_stubs.h" -#include "ut_cfe_tbl_stubs.h" -#include "ut_cfe_tbl_hooks.h" -#include "ut_cfe_fs_stubs.h" -#include "ut_cfe_time_stubs.h" -#include "ut_osapi_stubs.h" -#include "ut_osfileapi_stubs.h" -#include "ut_cfe_sb_stubs.h" -#include "ut_cfe_es_stubs.h" -#include "ut_cfe_evs_stubs.h" - -#include - -/* - * Config table for testing - */ -CI_ConfigTblEntry_t CI_configtable = { - 1 /* iParam*/ -}; - -/* - * Function Definitions - */ - -void CI_Test_Setup(void) -{ - /* initialize test environment to default state for every test */ - - CFE_PSP_MemSet(&CI_AppData, 0x00, sizeof(CI_AppData_t)); - - Ut_CFE_EVS_Reset(); - Ut_CFE_FS_Reset(); - Ut_CFE_TIME_Reset(); - Ut_CFE_TBL_Reset(); - Ut_CFE_SB_Reset(); - Ut_CFE_ES_Reset(); - Ut_OSAPI_Reset(); - Ut_OSFILEAPI_Reset(); - - Ut_CFE_TBL_AddTable(CI_CONFIG_TABLE_FILENAME, (void *) &CI_configtable); -} - -void CI_Test_TearDown(void) { - CFE_PSP_MemSet(&CI_AppData, 0x00, sizeof(CI_AppData_t)); -} diff --git a/config/ocpoc/s1000/target/apps/ci/unit_test/ci_test_utils.h b/config/ocpoc/s1000/target/apps/ci/unit_test/ci_test_utils.h deleted file mode 100644 index 423dc5455..000000000 --- a/config/ocpoc/s1000/target/apps/ci/unit_test/ci_test_utils.h +++ /dev/null @@ -1,63 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ - - -#ifndef CI_TEST_UTILS_H -#define CI_TEST_UTILS_H - -/* - * Includes - */ - -#include "ci_app.h" - -extern CI_AppData_t CI_AppData; - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * Function Definitions - */ - -void CI_Test_Setup(void); -void CI_Test_TearDown(void); - - -#ifdef __cplusplus -} -#endif - -#endif /* CI_TEST_UTILS_H */ - diff --git a/config/ocpoc/s1000/target/apps/ci/unit_test/ci_testrunner.c b/config/ocpoc/s1000/target/apps/ci/unit_test/ci_testrunner.c deleted file mode 100644 index f2e1fc97c..000000000 --- a/config/ocpoc/s1000/target/apps/ci/unit_test/ci_testrunner.c +++ /dev/null @@ -1,45 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ - - -#include "uttest.h" - -#include "ci_custom_test.h" - -int main(void) -{ - CI_Custom_Test_AddTestCases(); - - return(UtTest_Run()); -} - diff --git a/config/ocpoc/s1000/target/apps/ds/CMakeLists.txt b/config/ocpoc/s1000/target/apps/ds/CMakeLists.txt deleted file mode 100644 index 6379c18b4..000000000 --- a/config/ocpoc/s1000/target/apps/ds/CMakeLists.txt +++ /dev/null @@ -1,16 +0,0 @@ -set(APP_NAME ds) - -buildliner_add_table( - ${APP_NAME} - NAME ds_file_tbl - SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/tables/ds_file_tbl.c - INCLUDES ${CMAKE_CURRENT_SOURCE_DIR}/src/ -) - -buildliner_add_table( - ${APP_NAME} - NAME ds_filter_tbl - SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/tables/ds_filter_tbl.c - INCLUDES ${CMAKE_CURRENT_SOURCE_DIR}/src/ -) - diff --git a/config/ocpoc/s1000/target/apps/ds/tables/ds_file_tbl.c b/config/ocpoc/s1000/target/apps/ds/tables/ds_file_tbl.c deleted file mode 100644 index 008c69860..000000000 --- a/config/ocpoc/s1000/target/apps/ds/tables/ds_file_tbl.c +++ /dev/null @@ -1,292 +0,0 @@ -#include "cfe.h" -#include "cfe_tbl_filedef.h" -#include "ds_platform_cfg.h" -#include "ds_appdefs.h" -#include "ds_app.h" -#include "ds_msg.h" - - -/* -** Note: It is suggested that missions pre-define their file table -** index numbers in a public header file to be included by -** both the packet filter table source file and the destination -** file table source file. Common definitions may also be used -** when creating ground system database entries that require -** file index numbers for command arguments. -*/ -/* All events */ -#define FILE_ALL_EVENTS 0 -/* All housekeeping packets */ -#define FILE_ALL_APP_HK_PKTS 1 -/* Log all flight application messages */ -#define FILE_FLIGHT_APP_TLM_PKTS 2 -/* Log just default flight application messages */ -#define FILE_FLIGHT_DEFAULT_APP_TLM_PKTS 3 -/* Log just sensor application messages */ -#define FILE_FLIGHT_SENSOR_APP_TLM_PKTS 4 -/* Log all flight messages at a low rate */ -#define FILE_FLIGHT_MIN_APP_TLM_PKTS 5 -/* CFE core applications commands */ -#define FILE_CORE_APP_CMD_PKTS 6 - - -/* -** Sample Destination File Table Data -*/ -DS_DestFileTable_t DS_DestFileTable = -{ - /* .Descriptor = */ "Events", - /* .File = */ - { - /* File Index 00 -- event packets only */ - { -#if (DS_MOVE_FILES == TRUE) - /* .Movename = */ DS_EMPTY_STRING, -#endif - /* .Pathname = */ "/cf/log/", - /* .Basename = */ "events", - /* .Extension = */ ".dat", - - /* .FileNameType = */ DS_BY_COUNT, - /* .EnableState = */ DS_ENABLED, - /* .MaxFileSize = */ (1024 * 1024 * 200), /* 200 M-bytes */ - /* .MaxFileAge = */ (60 * 60 * 2), /* 2 hours */ - /* .SequenceCount = */ 1000, - }, - /* File Index 01 -- application housekeeping packets */ - { -#if (DS_MOVE_FILES == TRUE) - /* .Movename = */ DS_EMPTY_STRING, -#endif - /* .Pathname = */ "/cf/log/", - /* .Basename = */ "hk", - /* .Extension = */ ".hk", - - /* .FileNameType = */ DS_BY_COUNT, - /* .EnableState = */ DS_ENABLED, - /* .MaxFileSize = */ (1024 * 1024 * 200), /* 200 M-bytes */ - /* .MaxFileAge = */ (60 * 60 * 2), /* 2 hours */ - /* .SequenceCount = */ 2000, - }, - /* File Index 02 -- application telemetry packets */ - { -#if (DS_MOVE_FILES == TRUE) - /* .Movename = */ DS_EMPTY_STRING, -#endif - /* .Pathname = */ "/cf/log/", - /* .Basename = */ "flight", - /* .Extension = */ ".tlm", - - /* .FileNameType = */ DS_BY_COUNT, - /* .EnableState = */ DS_ENABLED, - /* .MaxFileSize = */ (1024 * 1024 * 200), /* 200 M-bytes */ - /* .MaxFileAge = */ (60 * 60 * 2), /* 2 hours */ - /* .SequenceCount = */ 3000, - }, - /* File Index 03 -- hardware telemetry packets */ - { -#if (DS_MOVE_FILES == TRUE) - /* .Movename = */ DS_EMPTY_STRING, -#endif - /* .Pathname = */ "/cf/log/", - /* .Basename = */ "default", - /* .Extension = */ ".tlm", - - /* .FileNameType = */ DS_BY_COUNT, - /* .EnableState = */ DS_DISABLED, - /* .MaxFileSize = */ (1024 * 1024 * 200), /* 200 M-bytes */ - /* .MaxFileAge = */ (60 * 60 * 2), /* 2 hours */ - /* .SequenceCount = */ 4000, - }, - /* File Index 04 -- cFE housekeeping packets */ - { -#if (DS_MOVE_FILES == TRUE) - /* .Movename = */ DS_EMPTY_STRING, -#endif - /* .Pathname = */ "/cf/log/", - /* .Basename = */ "sensor", - /* .Extension = */ ".tlm", - - /* .FileNameType = */ DS_BY_COUNT, - /* .EnableState = */ DS_DISABLED, - /* .MaxFileSize = */ (1024 * 1024 * 200), /* 200 M-bytes */ - /* .MaxFileAge = */ (60 * 60 * 2), /* 2 hours */ - /* .SequenceCount = */ 5000, - }, - /* File Index 05 -- cFE telemetry packets */ - { -#if (DS_MOVE_FILES == TRUE) - /* .Movename = */ DS_EMPTY_STRING, -#endif - /* .Pathname = */ "/cf/log/", - /* .Basename = */ "minimum", - /* .Extension = */ ".tlm", - - /* .FileNameType = */ DS_BY_COUNT, - /* .EnableState = */ DS_DISABLED, - /* .MaxFileSize = */ (1024 * 1024 * 200), /* 200 M-bytes */ - /* .MaxFileAge = */ (60 * 60 * 2), /* 2 hours */ - /* .SequenceCount = */ 6000, - }, - /* File Index 06 */ - { -#if (DS_MOVE_FILES == TRUE) - /* .Movename = */ DS_EMPTY_STRING, -#endif - /* .Pathname = */ "/cf/log/", - /* .Basename = */ "commands", - /* .Extension = */ ".cmd", - - /* .FileNameType = */ DS_BY_COUNT, - /* .EnableState = */ DS_ENABLED, - /* .MaxFileSize = */ (1024 * 1024 * 200), /* 200 M-bytes */ - /* .MaxFileAge = */ (60 * 60 * 2), /* 2 hours */ - /* .SequenceCount = */ 7000, - }, - /* File Index 07 */ - { -#if (DS_MOVE_FILES == TRUE) - /* .Movename = */ DS_EMPTY_STRING, -#endif - /* .Pathname = */ DS_EMPTY_STRING, - /* .Basename = */ DS_EMPTY_STRING, - /* .Extension = */ DS_EMPTY_STRING, - - /* .FileNameType = */ DS_UNUSED, - /* .EnableState = */ DS_UNUSED, - /* .MaxFileSize = */ DS_UNUSED, - /* .MaxFileAge = */ DS_UNUSED, - /* .SequenceCount = */ DS_UNUSED, - }, - /* File Index 08 */ - { -#if (DS_MOVE_FILES == TRUE) - /* .Movename = */ DS_EMPTY_STRING, -#endif - /* .Pathname = */ DS_EMPTY_STRING, - /* .Basename = */ DS_EMPTY_STRING, - /* .Extension = */ DS_EMPTY_STRING, - - /* .FileNameType = */ DS_UNUSED, - /* .EnableState = */ DS_UNUSED, - /* .MaxFileSize = */ DS_UNUSED, - /* .MaxFileAge = */ DS_UNUSED, - /* .SequenceCount = */ DS_UNUSED, - }, - /* File Index 09 */ - { -#if (DS_MOVE_FILES == TRUE) - /* .Movename = */ DS_EMPTY_STRING, -#endif - /* .Pathname = */ DS_EMPTY_STRING, - /* .Basename = */ DS_EMPTY_STRING, - /* .Extension = */ DS_EMPTY_STRING, - - /* .FileNameType = */ DS_UNUSED, - /* .EnableState = */ DS_UNUSED, - /* .MaxFileSize = */ DS_UNUSED, - /* .MaxFileAge = */ DS_UNUSED, - /* .SequenceCount = */ DS_UNUSED, - }, - /* File Index 10 */ - { -#if (DS_MOVE_FILES == TRUE) - /* .Movename = */ DS_EMPTY_STRING, -#endif - /* .Pathname = */ DS_EMPTY_STRING, - /* .Basename = */ DS_EMPTY_STRING, - /* .Extension = */ DS_EMPTY_STRING, - - /* .FileNameType = */ DS_UNUSED, - /* .EnableState = */ DS_UNUSED, - /* .MaxFileSize = */ DS_UNUSED, - /* .MaxFileAge = */ DS_UNUSED, - /* .SequenceCount = */ DS_UNUSED, - }, - /* File Index 11 */ - { -#if (DS_MOVE_FILES == TRUE) - /* .Movename = */ DS_EMPTY_STRING, -#endif - /* .Pathname = */ DS_EMPTY_STRING, - /* .Basename = */ DS_EMPTY_STRING, - /* .Extension = */ DS_EMPTY_STRING, - - /* .FileNameType = */ DS_UNUSED, - /* .EnableState = */ DS_UNUSED, - /* .MaxFileSize = */ DS_UNUSED, - /* .MaxFileAge = */ DS_UNUSED, - /* .SequenceCount = */ DS_UNUSED, - }, - /* File Index 12 */ - { -#if (DS_MOVE_FILES == TRUE) - /* .Movename = */ DS_EMPTY_STRING, -#endif - /* .Pathname = */ DS_EMPTY_STRING, - /* .Basename = */ DS_EMPTY_STRING, - /* .Extension = */ DS_EMPTY_STRING, - - /* .FileNameType = */ DS_UNUSED, - /* .EnableState = */ DS_UNUSED, - /* .MaxFileSize = */ DS_UNUSED, - /* .MaxFileAge = */ DS_UNUSED, - /* .SequenceCount = */ DS_UNUSED, - }, - /* File Index 13 */ - { -#if (DS_MOVE_FILES == TRUE) - /* .Movename = */ DS_EMPTY_STRING, -#endif - /* .Pathname = */ DS_EMPTY_STRING, - /* .Basename = */ DS_EMPTY_STRING, - /* .Extension = */ DS_EMPTY_STRING, - - /* .FileNameType = */ DS_UNUSED, - /* .EnableState = */ DS_UNUSED, - /* .MaxFileSize = */ DS_UNUSED, - /* .MaxFileAge = */ DS_UNUSED, - /* .SequenceCount = */ DS_UNUSED, - }, - /* File Index 14 */ - { -#if (DS_MOVE_FILES == TRUE) - /* .Movename = */ DS_EMPTY_STRING, -#endif - /* .Pathname = */ DS_EMPTY_STRING, - /* .Basename = */ DS_EMPTY_STRING, - /* .Extension = */ DS_EMPTY_STRING, - - /* .FileNameType = */ DS_UNUSED, - /* .EnableState = */ DS_UNUSED, - /* .MaxFileSize = */ DS_UNUSED, - /* .MaxFileAge = */ DS_UNUSED, - /* .SequenceCount = */ DS_UNUSED, - }, - /* File Index 15 */ - { -#if (DS_MOVE_FILES == TRUE) - /* .Movename = */ DS_EMPTY_STRING, -#endif - /* .Pathname = */ DS_EMPTY_STRING, - /* .Basename = */ DS_EMPTY_STRING, - /* .Extension = */ DS_EMPTY_STRING, - - /* .FileNameType = */ DS_UNUSED, - /* .EnableState = */ DS_UNUSED, - /* .MaxFileSize = */ DS_UNUSED, - /* .MaxFileAge = */ DS_UNUSED, - /* .SequenceCount = */ DS_UNUSED, - }, - } -}; - -/* -** Sample Destination File Table Header -*/ -CFE_TBL_FILEDEF(DS_DestFileTable, DS.FILE_TBL, DS Destination File Table,ds_file_tbl.tbl) - - -/************************/ -/* End of File Comment */ -/************************/ diff --git a/config/ocpoc/s1000/target/apps/ds/tables/ds_filter_tbl.c b/config/ocpoc/s1000/target/apps/ds/tables/ds_filter_tbl.c deleted file mode 100644 index 1afc76432..000000000 --- a/config/ocpoc/s1000/target/apps/ds/tables/ds_filter_tbl.c +++ /dev/null @@ -1,3145 +0,0 @@ -#include "cfe.h" -#include "cfe_tbl_filedef.h" -#include "ds_platform_cfg.h" -#include "ds_appdefs.h" -#include "ds_app.h" -#include "ds_msg.h" - -/* -** Note: Include header files that define the message ID's for the -** mission specific list of packets that need to be stored. -*/ -#include "cfe_msgids.h" -#include "ds_msgids.h" - -/* #include "ci_lab_msgids.h" */ -/* #include "to_lab_msgids.h" */ - -/* #include "cs_msgids.h" */ -/* #include "ds_msgids.h" */ -/* #include "fm_msgids.h" */ -/* #include "hk_msgids.h" */ -/* #include "hs_msgids.h" */ -/* #include "lc_msgids.h" */ -/* #include "md_msgids.h" */ -/* #include "mm_msgids.h" */ -/* #include "sc_msgids.h" */ -/* #include "sch_msgids.h" */ - - -/* -** Note: It is suggested that missions pre-define their file table -** index numbers in a public header file to be included by -** both the packet filter table source file and the destination -** file table source file. Common definitions may also be used -** when creating command database entries that require file -** index numbers for command arguments. -*/ -/* All events */ -#define FILE_ALL_EVENTS 0 -/* All housekeeping packets */ -#define FILE_ALL_APP_HK_PKTS 1 -/* Log all flight application messages */ -#define FILE_FLIGHT_APP_TLM_PKTS 2 -/* Log just default flight application messages */ -#define FILE_FLIGHT_DEFAULT_APP_TLM_PKTS 3 -/* Log just sensor application messages */ -#define FILE_FLIGHT_SENSOR_APP_TLM_PKTS 4 -/* Log all flight messages at a low rate */ -#define FILE_FLIGHT_MIN_APP_TLM_PKTS 5 -/* CFE core applications commands */ -#define FILE_CORE_APP_CMD_PKTS 6 - - -/* -** Sample packet filter table data -*/ -DS_FilterTable_t DS_FilterTable = -{ - /* .Descriptor = */ "Sample filter table data", - /* .Packet = */ - { - /* Packet Index 000 */ - { - /* .MessageID = */ CFE_ES_HK_TLM_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_ALL_APP_HK_PKTS, DS_BY_COUNT, 1, 2, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 001 */ - { - /* .MessageID = */ CFE_EVS_HK_TLM_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_ALL_APP_HK_PKTS, DS_BY_COUNT, 1, 2, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 002 */ - { - /* .MessageID = */ CFE_SB_HK_TLM_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_ALL_APP_HK_PKTS, DS_BY_COUNT, 1, 2, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 003 */ - { - /* .MessageID = */ CFE_TBL_HK_TLM_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_ALL_APP_HK_PKTS, DS_BY_COUNT, 1, 2, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 004 */ - { - /* .MessageID = */ CFE_TIME_HK_TLM_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_ALL_APP_HK_PKTS, DS_BY_COUNT, 1, 2, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 005 */ - { - /* .MessageID = */ CFE_EVS_CMD_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_CORE_APP_CMD_PKTS, DS_BY_COUNT, 1, 1, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 006 */ - { - /* .MessageID = */ CFE_EVS_EVENT_MSG_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_ALL_EVENTS, DS_BY_COUNT, 1, 1, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 007 */ - { - /* .MessageID = */ CFE_SB_CMD_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_CORE_APP_CMD_PKTS, DS_BY_COUNT, 1, 1, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 008 */ - { - /* .MessageID = */ CFE_TIME_CMD_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_CORE_APP_CMD_PKTS, DS_BY_COUNT, 1, 1, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 009 */ - { - /* .MessageID = */ CFE_ES_CMD_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_CORE_APP_CMD_PKTS, DS_BY_COUNT, 1, 1, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 010 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 011 */ - { - /* .MessageID = */ CFE_SB_ONESUB_TLM_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 012 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 013 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 014 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 015 */ - { - /* .MessageID = */ PX4_SENSOR_ACCEL_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_FLIGHT_APP_TLM_PKTS, DS_BY_COUNT, 10, 250, 0 }, - { FILE_FLIGHT_SENSOR_APP_TLM_PKTS, DS_BY_COUNT, 10, 250, 0 }, - { FILE_FLIGHT_MIN_APP_TLM_PKTS, DS_BY_COUNT, 1, 2000, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 016 */ - { - /* .MessageID = */ PX4_SENSOR_BARO_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_FLIGHT_APP_TLM_PKTS, DS_BY_COUNT, 10, 50, 0 }, - { FILE_FLIGHT_SENSOR_APP_TLM_PKTS, DS_BY_COUNT, 10, 50, 0 }, - { FILE_FLIGHT_MIN_APP_TLM_PKTS, DS_BY_COUNT, 1, 2000, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 017 */ - { - /* .MessageID = */ PX4_SENSOR_GYRO_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_FLIGHT_APP_TLM_PKTS, DS_BY_COUNT, 10, 250, 0 }, - { FILE_FLIGHT_SENSOR_APP_TLM_PKTS, DS_BY_COUNT, 10, 250, 0 }, - { FILE_FLIGHT_MIN_APP_TLM_PKTS, DS_BY_COUNT, 1, 2000, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 018 */ - { - /* .MessageID = */ PX4_SENSOR_MAG_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_FLIGHT_APP_TLM_PKTS, DS_BY_COUNT, 10, 250, 0 }, - { FILE_FLIGHT_SENSOR_APP_TLM_PKTS, DS_BY_COUNT, 10, 250, 0 }, - { FILE_FLIGHT_MIN_APP_TLM_PKTS, DS_BY_COUNT, 1, 2000, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 019 */ - { - /* .MessageID = */ PX4_SENSOR_COMBINED_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_FLIGHT_APP_TLM_PKTS, DS_BY_COUNT, 10, 250, 0 }, - { FILE_FLIGHT_SENSOR_APP_TLM_PKTS, DS_BY_COUNT, 10, 250, 0 }, - { FILE_FLIGHT_MIN_APP_TLM_PKTS, DS_BY_COUNT, 1, 2000, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 020 */ - { - /* .MessageID = */ PX4_VEHICLE_GPS_POSITION_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_FLIGHT_APP_TLM_PKTS, DS_BY_COUNT, 5, 6, 0 }, - { FILE_FLIGHT_SENSOR_APP_TLM_PKTS, DS_BY_COUNT, 5, 6, 0 }, - { FILE_FLIGHT_MIN_APP_TLM_PKTS, DS_BY_COUNT, 1, 500, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 021 */ - { - /* .MessageID = */ PX4_DISTANCE_SENSOR_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_FLIGHT_APP_TLM_PKTS, DS_BY_COUNT, 10, 250, 0 }, - { FILE_FLIGHT_SENSOR_APP_TLM_PKTS, DS_BY_COUNT, 10, 250, 0 }, - { FILE_FLIGHT_MIN_APP_TLM_PKTS, DS_BY_COUNT, 1, 1000, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 022 */ - { - /* .MessageID = */ PX4_INPUT_RC_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_FLIGHT_APP_TLM_PKTS, DS_BY_COUNT, 5, 50, 0 }, - { FILE_FLIGHT_MIN_APP_TLM_PKTS, DS_BY_COUNT, 1, 1000, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 023 */ - { - /* .MessageID = */ PX4_RC_CHANNELS_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_FLIGHT_APP_TLM_PKTS, DS_BY_COUNT, 1, 250, 0 }, - { FILE_FLIGHT_MIN_APP_TLM_PKTS, DS_BY_COUNT, 1, 2000, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 024 */ - { - /* .MessageID = */ PX4_ACTUATOR_CONTROLS_0_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_FLIGHT_APP_TLM_PKTS, DS_BY_COUNT, 10, 250, 0 }, - { FILE_FLIGHT_DEFAULT_APP_TLM_PKTS, DS_BY_COUNT, 10, 250, 0 }, - { FILE_FLIGHT_MIN_APP_TLM_PKTS, DS_BY_COUNT, 1, 1000, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 025 */ - { - /* .MessageID = */ PX4_ACTUATOR_CONTROLS_1_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_FLIGHT_APP_TLM_PKTS, DS_BY_COUNT, 10, 250, 0 }, - { FILE_FLIGHT_DEFAULT_APP_TLM_PKTS, DS_BY_COUNT, 10, 250, 0 }, - { FILE_FLIGHT_MIN_APP_TLM_PKTS, DS_BY_COUNT, 1, 1000, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 026 */ - { - /* .MessageID = */ PX4_ACTUATOR_OUTPUTS_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_FLIGHT_APP_TLM_PKTS, DS_BY_COUNT, 10, 250, 0 }, - { FILE_FLIGHT_DEFAULT_APP_TLM_PKTS, DS_BY_COUNT, 10, 250, 0 }, - { FILE_FLIGHT_MIN_APP_TLM_PKTS, DS_BY_COUNT, 1, 1000, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 027 */ - { - /* .MessageID = */ PX4_ACTUATOR_ARMED_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_FLIGHT_APP_TLM_PKTS, DS_BY_COUNT, 1, 1, 0 }, - { FILE_FLIGHT_MIN_APP_TLM_PKTS, DS_BY_COUNT, 1, 1, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 028 */ - { - /* .MessageID = */ PX4_BATTERY_STATUS_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_FLIGHT_APP_TLM_PKTS, DS_BY_COUNT, 2, 50, 0 }, - { FILE_FLIGHT_DEFAULT_APP_TLM_PKTS, DS_BY_COUNT, 2, 50, 0 }, - { FILE_FLIGHT_MIN_APP_TLM_PKTS, DS_BY_COUNT, 1, 500, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 029 */ - { - /* .MessageID = */ PX4_COMMANDER_STATE_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_FLIGHT_APP_TLM_PKTS, DS_BY_COUNT, 10, 250, 0 }, - { FILE_FLIGHT_MIN_APP_TLM_PKTS, DS_BY_COUNT, 1, 1000, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 030 */ - { - /* .MessageID = */ PX4_CONTROL_STATE_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_FLIGHT_APP_TLM_PKTS, DS_BY_COUNT, 10, 250, 0 }, - { FILE_FLIGHT_MIN_APP_TLM_PKTS, DS_BY_COUNT, 1, 1000, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 031 */ - { - /* .MessageID = */ PX4_ESTIMATOR_STATUS_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_FLIGHT_APP_TLM_PKTS, DS_BY_COUNT, 5, 125, 0 }, - { FILE_FLIGHT_DEFAULT_APP_TLM_PKTS, DS_BY_COUNT, 5, 125, 0 }, - { FILE_FLIGHT_MIN_APP_TLM_PKTS, DS_BY_COUNT, 1, 500, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 032 */ - { - /* .MessageID = */ PX4_EKF2_INNOVATIONS_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_FLIGHT_APP_TLM_PKTS, DS_BY_COUNT, 5, 125, 0 }, - { FILE_FLIGHT_DEFAULT_APP_TLM_PKTS, DS_BY_COUNT, 5, 125, 0 }, - { FILE_FLIGHT_MIN_APP_TLM_PKTS, DS_BY_COUNT, 1, 500, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 033 */ - { - /* .MessageID = */ PX4_MANUAL_CONTROL_SETPOINT_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_FLIGHT_APP_TLM_PKTS, DS_BY_COUNT, 5, 250, 0 }, - { FILE_FLIGHT_DEFAULT_APP_TLM_PKTS, DS_BY_COUNT, 5, 250, 0 }, - { FILE_FLIGHT_MIN_APP_TLM_PKTS, DS_BY_COUNT, 1, 1000, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 034 */ - { - /* .MessageID = */ PX4_POSITION_SETPOINT_TRIPLET_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_FLIGHT_APP_TLM_PKTS, DS_BY_COUNT, 5, 250, 0 }, - { FILE_FLIGHT_DEFAULT_APP_TLM_PKTS, DS_BY_COUNT, 5, 250, 0 }, - { FILE_FLIGHT_MIN_APP_TLM_PKTS, DS_BY_COUNT, 1, 1000, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 035 */ - { - /* .MessageID = */ PX4_VEHICLE_ATTITUDE_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_FLIGHT_APP_TLM_PKTS, DS_BY_COUNT, 20, 250, 0 }, - { FILE_FLIGHT_DEFAULT_APP_TLM_PKTS, DS_BY_COUNT, 20, 250, 0 }, - { FILE_FLIGHT_MIN_APP_TLM_PKTS, DS_BY_COUNT, 1, 500, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 036 */ - { - /* .MessageID = */ PX4_VEHICLE_ATTITUDE_SETPOINT_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_FLIGHT_APP_TLM_PKTS, DS_BY_COUNT, 10, 250, 0 }, - { FILE_FLIGHT_DEFAULT_APP_TLM_PKTS, DS_BY_COUNT, 10, 250, 0 }, - { FILE_FLIGHT_MIN_APP_TLM_PKTS, DS_BY_COUNT, 1, 1000, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 037 */ - { - /* .MessageID = */ PX4_VEHICLE_RATES_SETPOINT_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_FLIGHT_APP_TLM_PKTS, DS_BY_COUNT, 20, 250, 0 }, - { FILE_FLIGHT_DEFAULT_APP_TLM_PKTS, DS_BY_COUNT, 20, 250, 0 }, - { FILE_FLIGHT_MIN_APP_TLM_PKTS, DS_BY_COUNT, 1, 500, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 038 */ - { - /* .MessageID = */ PX4_VEHICLE_COMMAND_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_FLIGHT_APP_TLM_PKTS, DS_BY_COUNT, 1, 1, 0 }, - { FILE_FLIGHT_DEFAULT_APP_TLM_PKTS, DS_BY_COUNT, 1, 1, 0 }, - { FILE_FLIGHT_MIN_APP_TLM_PKTS, DS_BY_COUNT, 1, 1, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 039 */ - { - /* .MessageID = */ PX4_VEHICLE_GLOBAL_POSITION_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_FLIGHT_APP_TLM_PKTS, DS_BY_COUNT, 5, 125, 0 }, - { FILE_FLIGHT_DEFAULT_APP_TLM_PKTS, DS_BY_COUNT, 5, 125, 0 }, - { FILE_FLIGHT_MIN_APP_TLM_PKTS, DS_BY_COUNT, 1, 1000, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 040 */ - { - /* .MessageID = */ PX4_VEHICLE_GLOBAL_VELOCITY_SETPOINT_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_FLIGHT_APP_TLM_PKTS, DS_BY_COUNT, 5, 250, 0 }, - { FILE_FLIGHT_MIN_APP_TLM_PKTS, DS_BY_COUNT, 1, 2000, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 041 */ - { - /* .MessageID = */ PX4_VEHICLE_LAND_DETECTED_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_FLIGHT_APP_TLM_PKTS, DS_BY_COUNT, 1, 1, 0 }, - { FILE_FLIGHT_DEFAULT_APP_TLM_PKTS, DS_BY_COUNT, 1, 1, 0 }, - { FILE_FLIGHT_MIN_APP_TLM_PKTS, DS_BY_COUNT, 1, 1, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 042 */ - { - /* .MessageID = */ PX4_VEHICLE_LOCAL_POSITION_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_FLIGHT_APP_TLM_PKTS, DS_BY_COUNT, 10, 125, 0 }, - { FILE_FLIGHT_DEFAULT_APP_TLM_PKTS, DS_BY_COUNT, 10, 125, 0 }, - { FILE_FLIGHT_MIN_APP_TLM_PKTS, DS_BY_COUNT, 1, 1000, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 043 */ - { - /* .MessageID = */ PX4_VEHICLE_LOCAL_POSITION_SETPOINT_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_FLIGHT_APP_TLM_PKTS, DS_BY_COUNT, 10, 250, 0 }, - { FILE_FLIGHT_DEFAULT_APP_TLM_PKTS, DS_BY_COUNT, 10, 250, 0 }, - { FILE_FLIGHT_MIN_APP_TLM_PKTS, DS_BY_COUNT, 1, 1000, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 044 */ - { - /* .MessageID = */ PX4_VEHICLE_STATUS_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_FLIGHT_APP_TLM_PKTS, DS_BY_COUNT, 5, 250, 0 }, - { FILE_FLIGHT_DEFAULT_APP_TLM_PKTS, DS_BY_COUNT, 5, 250, 0 }, - { FILE_FLIGHT_MIN_APP_TLM_PKTS, DS_BY_COUNT, 1, 2000, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 045 */ - { - /* .MessageID = */ PX4_HOME_POSITION_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_FLIGHT_APP_TLM_PKTS, DS_BY_COUNT, 1, 1, 0 }, - { FILE_FLIGHT_MIN_APP_TLM_PKTS, DS_BY_COUNT, 1, 1, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 046 */ - { - /* .MessageID = */ PX4_VEHICLE_CONTROL_MODE_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_FLIGHT_APP_TLM_PKTS, DS_BY_COUNT, 10, 250, 0 }, - { FILE_FLIGHT_MIN_APP_TLM_PKTS, DS_BY_COUNT, 1, 1000, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 047 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 048 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 049 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 050 */ - { - /* .MessageID = */ TO_HK_TLM_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_ALL_APP_HK_PKTS, DS_BY_COUNT, 1, 1, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 051 */ - { - /* .MessageID = */ CI_HK_TLM_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_ALL_APP_HK_PKTS, DS_BY_COUNT, 1, 1, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 052 */ - { - /* .MessageID = */ CF_HK_TLM_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_ALL_APP_HK_PKTS, DS_BY_COUNT, 1, 1, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 053 */ - { - /* .MessageID = */ CS_HK_TLM_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_ALL_APP_HK_PKTS, DS_BY_COUNT, 1, 1, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 054 */ - { - /* .MessageID = */ DS_HK_TLM_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_ALL_APP_HK_PKTS, DS_BY_COUNT, 1, 1, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 055 */ - { - /* .MessageID = */ HK_HK_TLM_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_ALL_APP_HK_PKTS, DS_BY_COUNT, 1, 1, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 056 */ - { - /* .MessageID = */ HS_HK_TLM_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_ALL_APP_HK_PKTS, DS_BY_COUNT, 1, 1, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 057 */ - { - /* .MessageID = */ LC_HK_TLM_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_ALL_APP_HK_PKTS, DS_BY_COUNT, 1, 1, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 058 */ - { - /* .MessageID = */ MM_HK_TLM_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_ALL_APP_HK_PKTS, DS_BY_COUNT, 1, 1, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 059 */ - { - /* .MessageID = */ MD_HK_TLM_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_ALL_APP_HK_PKTS, DS_BY_COUNT, 1, 1, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 060 */ - { - /* .MessageID = */ SC_HK_TLM_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_ALL_APP_HK_PKTS, DS_BY_COUNT, 1, 1, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 061 */ - { - /* .MessageID = */ SCH_HK_TLM_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_ALL_APP_HK_PKTS, DS_BY_COUNT, 1, 1, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 062 */ - { - /* .MessageID = */ MPU9250_HK_TLM_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_ALL_APP_HK_PKTS, DS_BY_COUNT, 1, 1, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 063 */ - { - /* .MessageID = */ MS5611_HK_TLM_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_ALL_APP_HK_PKTS, DS_BY_COUNT, 1, 1, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 064 */ - { - /* .MessageID = */ EA_HK_TLM_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_ALL_APP_HK_PKTS, DS_BY_COUNT, 1, 1, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 065 */ - { - /* .MessageID = */ VC_HK_TLM_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_ALL_APP_HK_PKTS, DS_BY_COUNT, 1, 1, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 066 */ - { - /* .MessageID = */ AMC_HK_TLM_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_ALL_APP_HK_PKTS, DS_BY_COUNT, 1, 1, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 067 */ - { - /* .MessageID = */ MAC_HK_TLM_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_ALL_APP_HK_PKTS, DS_BY_COUNT, 1, 1, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 068 */ - { - /* .MessageID = */ ULR_HK_TLM_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_ALL_APP_HK_PKTS, DS_BY_COUNT, 1, 1, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 069 */ - { - /* .MessageID = */ RGBLED_HK_TLM_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_ALL_APP_HK_PKTS, DS_BY_COUNT, 1, 1, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 070 */ - { - /* .MessageID = */ GPS_HK_TLM_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_ALL_APP_HK_PKTS, DS_BY_COUNT, 1, 1, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 071 */ - { - /* .MessageID = */ SENS_HK_TLM_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_ALL_APP_HK_PKTS, DS_BY_COUNT, 1, 1, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 072 */ - { - /* .MessageID = */ QAE_HK_TLM_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_ALL_APP_HK_PKTS, DS_BY_COUNT, 1, 1, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 073 */ - { - /* .MessageID = */ LD_HK_TLM_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_ALL_APP_HK_PKTS, DS_BY_COUNT, 1, 1, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 074 */ - { - /* .MessageID = */ MPC_HK_TLM_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_ALL_APP_HK_PKTS, DS_BY_COUNT, 1, 1, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 075 */ - { - /* .MessageID = */ NAV_HK_TLM_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_ALL_APP_HK_PKTS, DS_BY_COUNT, 1, 1, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 076 */ - { - /* .MessageID = */ RCIN_HK_TLM_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_ALL_APP_HK_PKTS, DS_BY_COUNT, 1, 1, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 077 */ - { - /* .MessageID = */ VM_HK_TLM_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_ALL_APP_HK_PKTS, DS_BY_COUNT, 1, 1, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 078 */ - { - /* .MessageID = */ BAT_HK_TLM_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_ALL_APP_HK_PKTS, DS_BY_COUNT, 1, 1, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 079 */ - { - /* .MessageID = */ PE_HK_TLM_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_ALL_APP_HK_PKTS, DS_BY_COUNT, 1, 1, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 080 */ - { - /* .MessageID = */ HMC5883_HK_TLM_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_ALL_APP_HK_PKTS, DS_BY_COUNT, 1, 1, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 081 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 082 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 083 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 084 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 085 */ - { - /* .MessageID = */ TO_CMD_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_CORE_APP_CMD_PKTS, DS_BY_COUNT, 1, 1, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 086 */ - { - /* .MessageID = */ CI_CMD_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_CORE_APP_CMD_PKTS, DS_BY_COUNT, 1, 1, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 087 */ - { - /* .MessageID = */ CF_CMD_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_CORE_APP_CMD_PKTS, DS_BY_COUNT, 1, 1, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 088 */ - { - /* .MessageID = */ CS_CMD_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_CORE_APP_CMD_PKTS, DS_BY_COUNT, 1, 1, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 089 */ - { - /* .MessageID = */ DS_CMD_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_CORE_APP_CMD_PKTS, DS_BY_COUNT, 1, 1, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 090 */ - { - /* .MessageID = */ FM_CMD_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_CORE_APP_CMD_PKTS, DS_BY_COUNT, 1, 1, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 091 */ - { - /* .MessageID = */ HK_CMD_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_CORE_APP_CMD_PKTS, DS_BY_COUNT, 1, 1, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 092 */ - { - /* .MessageID = */ LC_CMD_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_CORE_APP_CMD_PKTS, DS_BY_COUNT, 1, 1, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 093 */ - { - /* .MessageID = */ MM_CMD_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_CORE_APP_CMD_PKTS, DS_BY_COUNT, 1, 1, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 094 */ - { - /* .MessageID = */ MD_CMD_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_CORE_APP_CMD_PKTS, DS_BY_COUNT, 1, 1, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 095 */ - { - /* .MessageID = */ SC_CMD_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_CORE_APP_CMD_PKTS, DS_BY_COUNT, 1, 1, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 096 */ - { - /* .MessageID = */ SCH_CMD_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_CORE_APP_CMD_PKTS, DS_BY_COUNT, 1, 1, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 097 */ - { - /* .MessageID = */ MPU9250_CMD_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_CORE_APP_CMD_PKTS, DS_BY_COUNT, 1, 1, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 098 */ - { - /* .MessageID = */ MS5611_CMD_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_CORE_APP_CMD_PKTS, DS_BY_COUNT, 1, 1, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 099 */ - { - /* .MessageID = */ EA_CMD_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_CORE_APP_CMD_PKTS, DS_BY_COUNT, 1, 1, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 100 */ - { - /* .MessageID = */ VC_CMD_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_CORE_APP_CMD_PKTS, DS_BY_COUNT, 1, 1, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 101 */ - { - /* .MessageID = */ AMC_CMD_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_CORE_APP_CMD_PKTS, DS_BY_COUNT, 1, 1, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 102 */ - { - /* .MessageID = */ MAC_CMD_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_CORE_APP_CMD_PKTS, DS_BY_COUNT, 1, 1, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 103 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 104 */ - { - /* .MessageID = */ ULR_CMD_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 105 */ - { - /* .MessageID = */ RGBLED_CMD_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 106 */ - { - /* .MessageID = */ GPS_CMD_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 107 */ - { - /* .MessageID = */ SENS_CMD_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 108 */ - { - /* .MessageID = */ QAE_CMD_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 109 */ - { - /* .MessageID = */ LD_CMD_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 110 */ - { - /* .MessageID = */ MPC_CMD_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 111 */ - { - /* .MessageID = */ NAV_CMD_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 112 */ - { - /* .MessageID = */ RCIN_CMD_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 113 */ - { - /* .MessageID = */ VM_CMD_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 114 */ - { - /* .MessageID = */ BAT_CMD_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 115 */ - { - /* .MessageID = */ PE_CMD_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 116 */ - { - /* .MessageID = */ HMC5883_CMD_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 117 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 118 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 119 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 120 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 121 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 122 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 123 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 124 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 125 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 126 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 127 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 128 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 129 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 130 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 131 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 132 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 133 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 134 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 135 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 136 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 137 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 138 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 139 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 140 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 141 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 142 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 143 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 144 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 145 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 146 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 147 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 148 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 149 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 150 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 151 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 152 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 153 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 154 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 155 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 156 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 157 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 158 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 159 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 160 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 161 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 162 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 163 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 164 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 165 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 166 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 167 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 168 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 169 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 170 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 171 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 172 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 173 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 174 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 175 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 176 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 177 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 178 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 179 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 180 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 181 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 182 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 183 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 184 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 185 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 186 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 187 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 188 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 189 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 190 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 191 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 192 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 193 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 194 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 195 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 196 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 197 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 198 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 199 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 200 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 201 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 202 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 203 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 204 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 205 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 206 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 207 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 208 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 209 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 210 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 211 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 212 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 213 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 214 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 215 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 216 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 217 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 218 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 219 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 220 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 221 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 222 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 223 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 224 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 225 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 226 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 227 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 228 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 229 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 230 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 231 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 232 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 233 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 234 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 235 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 236 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 237 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 238 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 239 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 240 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 241 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 242 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 243 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 244 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 245 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 246 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 247 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 248 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 249 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 250 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 251 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 252 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 253 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 254 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 255 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - } - } -}; - -/* -** Sample packet filter table header -*/ -CFE_TBL_FILEDEF(DS_FilterTable, DS.FILTER_TBL, DS Packet Filter Table,ds_filter_tbl.tbl) - - -/************************/ -/* End of File Comment */ -/************************/ diff --git a/config/ocpoc/s1000/target/apps/ea/CMakeLists.txt b/config/ocpoc/s1000/target/apps/ea/CMakeLists.txt deleted file mode 100644 index ae0506220..000000000 --- a/config/ocpoc/s1000/target/apps/ea/CMakeLists.txt +++ /dev/null @@ -1,55 +0,0 @@ -set(APP_NAME ea) - -buildliner_add_app_unit_test(ea-custom-ut - UTASSERT - NANOPB - SOURCES - ${CMAKE_CURRENT_SOURCE_DIR}/unit_test/ea_testrunner.c - ${CMAKE_CURRENT_SOURCE_DIR}/unit_test/ea_custom_test.c - ${CMAKE_CURRENT_SOURCE_DIR}/src/ea_custom.c - ${PROJECT_SOURCE_DIR}/apps/ea/fsw/src/ea_app.c - ${CMAKE_CURRENT_SOURCE_DIR}/unit_test/ea_mock_os_calls.c - ${CMAKE_CURRENT_SOURCE_DIR}/unit_test/ea_test_utils.c - ${PROJECT_SOURCE_DIR}/core/base/ut_assert/src/ut_cfe_es_hooks.c - - INCLUDES - ${PROJECT_SOURCE_DIR}/apps/ea/fsw/src/ - - WRAPPERS - fork - execvp - waitpid - kill - - VALGRIND_SUPPRESSION_FILE - ${CMAKE_CURRENT_SOURCE_DIR}/ea-custom-ut.supp -) - -buildliner_add_app_unit_test(ea-perfmon-ut - UTASSERT - NANOPB - SOURCES - ${CMAKE_CURRENT_SOURCE_DIR}/unit_test/ea_perfmon_testrunner.c - ${CMAKE_CURRENT_SOURCE_DIR}/unit_test/ea_perfmon_test.c - ${CMAKE_CURRENT_SOURCE_DIR}/src/ea_custom.c - ${PROJECT_SOURCE_DIR}/apps/ea/fsw/src/ea_app.c - ${CMAKE_CURRENT_SOURCE_DIR}/unit_test/ea_test_utils.c - ${PROJECT_SOURCE_DIR}/core/base/ut_assert/src/ut_cfe_es_hooks.c - - INCLUDES - ${PROJECT_SOURCE_DIR}/apps/ea/fsw/src/ - - VALGRIND_SUPPRESSION_FILE - ${CMAKE_CURRENT_SOURCE_DIR}/ea-perfmon-ut.supp -) - -add_custom_target( - ea-ut-custom-input-files - COMMAND cp ${CMAKE_CURRENT_SOURCE_DIR}/unit_test/sleep.py ${CMAKE_CURRENT_BINARY_DIR} - COMMAND cp ${CMAKE_CURRENT_SOURCE_DIR}/unit_test/fib.py ${CMAKE_CURRENT_BINARY_DIR} - COMMAND cp ${CMAKE_CURRENT_SOURCE_DIR}/unit_test/noop.py ${CMAKE_CURRENT_BINARY_DIR} -) - -add_dependencies(ea-custom-ut ea-ut-custom-input-files) -add_dependencies(ea-perfmon-ut ea-ut-custom-input-files) - diff --git a/config/ocpoc/s1000/target/apps/ea/ea-custom-ut.supp b/config/ocpoc/s1000/target/apps/ea/ea-custom-ut.supp deleted file mode 100644 index d87eb5ce5..000000000 --- a/config/ocpoc/s1000/target/apps/ea/ea-custom-ut.supp +++ /dev/null @@ -1,27 +0,0 @@ -{ - - Memcheck:Leak - match-leak-kinds: reachable - fun:malloc - fun:UtList_Add - fun:Ut_CFE_EVS_SendEventHook - fun:CFE_EVS_SendEvent - fun:EA_TermAppCustom - fun:Test_EA_Custom_TermApp_Nominal - fun:UtTest_Run - fun:main -} - -{ - - Memcheck:Leak - match-leak-kinds: reachable - fun:malloc - fun:UtList_Add - fun:Ut_CFE_EVS_SendEventHook - fun:CFE_EVS_SendEvent - fun:EA_TermAppCustom - fun:Test_EA_Custom_TermApp_Nominal - fun:UtTest_Run - fun:main -} \ No newline at end of file diff --git a/config/ocpoc/s1000/target/apps/ea/ea-perfmon-ut.supp b/config/ocpoc/s1000/target/apps/ea/ea-perfmon-ut.supp deleted file mode 100644 index e69de29bb..000000000 diff --git a/config/ocpoc/s1000/target/apps/ea/src/ea_custom.c b/config/ocpoc/s1000/target/apps/ea/src/ea_custom.c deleted file mode 100644 index 28daf8659..000000000 --- a/config/ocpoc/s1000/target/apps/ea/src/ea_custom.c +++ /dev/null @@ -1,249 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ - -#include "ea_custom.h" -#include -#include -#include -#include -#include -#include -#include - -#include "ea_platform_cfg.h" -#include "ea_app.h" -#include "ea_msg.h" - -void EA_StartAppCustom() -{ - int32 Status = -1; - Status = CFE_ES_RegisterChildTask(); - - if (Status == CFE_SUCCESS) - { - /* - ** Create child process to execute app - */ - pid_t pid = fork(); - - /* - ** Child process - */ - if (pid == 0) - { - char *argv[] = {EA_AppData.ChildData.Cmd, EA_AppData.ChildData.Args, NULL}; - if(execvp(EA_AppData.ChildData.Cmd, argv) == -1) - { - CFE_EVS_SendEvent(EA_CMD_ERR_EID, CFE_EVS_ERROR, - "Error starting external application"); - } - /* - ** NOTE: This exit is required here as a means to shut down the child process. - */ - exit(0); - } - /* - ** Failed Fork - */ - else if (pid == -1) - { - EA_AppData.HkTlm.usCmdErrCnt++; - CFE_EVS_SendEvent(EA_CMD_ERR_EID, CFE_EVS_ERROR, - "Error starting new process"); - } - /* - ** Parent process - */ - else - { - EA_AppData.HkTlm.usCmdCnt++; - CFE_EVS_SendEvent(EA_INF_APP_START_EID, CFE_EVS_INFORMATION, - "External application started"); - strncpy(EA_AppData.HkTlm.ActiveApp, EA_AppData.ChildData.Args, OS_MAX_PATH_LEN); - EA_AppData.HkTlm.ActiveAppPID = pid; - waitpid(pid, (int*)&EA_AppData.HkTlm.LastAppStatus, 0); - EA_AppData.HkTlm.LastAppStatus = EA_AppData.HkTlm.LastAppStatus; - EA_AppData.HkTlm.ActiveAppPID = 0; - EA_AppData.HkTlm.ActiveAppUtil = 0; - strncpy(EA_AppData.HkTlm.LastAppRun, EA_AppData.HkTlm.ActiveApp, OS_MAX_PATH_LEN); - memset(EA_AppData.HkTlm.ActiveApp, '\0', OS_MAX_PATH_LEN); - memset(EA_AppData.ChildData.Cmd, '\0', OS_MAX_PATH_LEN); - memset(EA_AppData.ChildData.Args, '\0', OS_MAX_PATH_LEN); - - } - }/*end if register child task*/ - else - { - (void) CFE_ES_WriteToSysLog("EA - StartApp Child Task Registration failed!\n"); - } - - EA_AppData.ChildAppTaskID = 0; - EA_AppData.ChildAppTaskInUse = FALSE; - CFE_ES_ExitChildTask(); - - return; -} - -void EA_TermAppCustom() -{ - int kill_status = -1; - - /* - ** Ensure app is currently running - */ - if(EA_AppData.HkTlm.ActiveAppPID != 0) - { - CFE_ES_DeleteChildTask(EA_AppData.ChildAppTaskID); - kill_status = kill(EA_AppData.HkTlm.ActiveAppPID, SIGKILL); - - /* - ** Check kill call return code - */ - if(kill_status == 0) - { - EA_AppData.HkTlm.usCmdCnt++; - EA_AppData.HkTlm.ActiveAppPID = 0; - EA_AppData.HkTlm.ActiveAppUtil = 0; - strncpy(EA_AppData.HkTlm.LastAppRun, EA_AppData.HkTlm.ActiveApp, OS_MAX_PATH_LEN); - EA_AppData.HkTlm.LastAppStatus = -1; // TODO: Add meaningful number to this - memset(EA_AppData.HkTlm.ActiveApp, '\0', OS_MAX_PATH_LEN); - EA_AppData.ChildAppTaskInUse = FALSE; - CFE_EVS_SendEvent(EA_INF_APP_TERM_EID, CFE_EVS_INFORMATION, - "External application terminated"); - } - else - { - EA_AppData.HkTlm.usCmdErrCnt++; - CFE_EVS_SendEvent(EA_CMD_ERR_EID, CFE_EVS_ERROR, - "Unable to terminate application"); - } - } - else - { - EA_AppData.HkTlm.usCmdErrCnt++; - CFE_EVS_SendEvent(EA_CMD_ERR_EID, CFE_EVS_ERROR, - "Attempted to terminate app while none executing"); - } - - return; -} - -void EA_PerfmonCustom(int32 pid) -{ - EA_ProcData_t proc_data = EA_ParsePidUtil(pid); - int dp = proc_data.p_time - EA_AppData.ProcData.p_time; - int dt = proc_data.total_time - EA_AppData.ProcData.total_time; - float util = 100 * EA_APP_NUM_THREADS * (float)dp/ (float)dt; - EA_AppData.ProcData.p_time = proc_data.p_time; - EA_AppData.ProcData.total_time = proc_data.total_time; - EA_AppData.HkTlm.ActiveAppUtil = util; - - return; -} - -EA_ProcData_t EA_ParsePidUtil(int32 pid) -{ - EA_ProcData_t procData; - unsigned long long int utime = 0; - unsigned long long int ntime = 0; - unsigned long long int stime = 0; - unsigned long long int itime = 0; - unsigned long long int io_wait = 0; - unsigned long long int irq = 0; - unsigned long long int soft_irq = 0; - unsigned long long int steal = 0; - unsigned long long int guest = 0; - unsigned long long int guest_nice = 0; - unsigned long long int sys_time, idle_time, total_time, virt_time; - - FILE* proc_stat = fopen("/proc/stat", "r"); - if (proc_stat == NULL) { - OS_printf("Unable to open stat"); - } - - char buf[1024]; - char* data = fgets(buf, sizeof(buf) - 1, proc_stat); - if (data == NULL) - { - OS_printf("Unable to read stat"); - } - - fclose(proc_stat); - - sscanf(buf, "cpu %16llu %16llu %16llu %16llu %16llu %16llu %16llu %16llu %16llu %16llu", - &utime, &ntime, &stime, &itime, &io_wait, &irq, &soft_irq, &steal, &guest, &guest_nice); - utime = utime - guest; - ntime = ntime - guest_nice; - idle_time = itime + io_wait; - sys_time = stime + irq + soft_irq; - virt_time = guest + guest_nice; - total_time = utime + ntime + sys_time + idle_time + steal + virt_time; - procData.total_time = total_time; - - char path[64]; - snprintf(path, sizeof(path), "/proc/%li/stat", pid); - FILE* pid_stat = fopen(path, "r"); - if (pid_stat == NULL) { - OS_printf("Unable to open pid_stat"); - } - - memset(buf, '\0', 1024); - data = fgets(buf, sizeof(buf) - 1, pid_stat); - if (data == NULL) - { - OS_printf("Unable to read pid_stat"); - } - - int utime_ln = 13; - int stime_ln = 14; - int count_ndx = 0; - char *tok; - for (tok = strtok(data," "); tok != NULL; tok = strtok(NULL, " ")) - { - if (count_ndx == utime_ln) - { - utime = atol(tok); - } - if (count_ndx == stime_ln) - { - stime = atol(tok); - } - count_ndx++; - } - - fclose(pid_stat); - - procData.p_time = utime + stime; - - return(procData); -} diff --git a/config/ocpoc/s1000/target/apps/ea/unit_test/ea-custom-ut.supp b/config/ocpoc/s1000/target/apps/ea/unit_test/ea-custom-ut.supp deleted file mode 100644 index f460b1d85..000000000 --- a/config/ocpoc/s1000/target/apps/ea/unit_test/ea-custom-ut.supp +++ /dev/null @@ -1,32 +0,0 @@ -# The following hits are a result of mallocs in UtList_Add. This is -# unit test specific code and does not impact the flight code. - -{ - - Memcheck:Leak - match-leak-kinds: reachable - fun:malloc - fun:UtList_Add - fun:Ut_CFE_EVS_SendEventHook - fun:CFE_EVS_SendEvent - fun:EA_TermAppCustom - fun:Test_EA_Custom_TermApp_Nominal - fun:UtTest_Run - fun:main -} - -{ - - Memcheck:Leak - match-leak-kinds: reachable - fun:malloc - fun:UtList_Add - fun:Ut_CFE_EVS_SendEventHook - fun:CFE_EVS_SendEvent - fun:EA_TermAppCustom - fun:Test_EA_Custom_TermApp_Nominal - fun:UtTest_Run - fun:main -} - -################################### diff --git a/config/ocpoc/s1000/target/apps/ea/unit_test/ea_custom_test.c b/config/ocpoc/s1000/target/apps/ea/unit_test/ea_custom_test.c deleted file mode 100644 index cf816c08d..000000000 --- a/config/ocpoc/s1000/target/apps/ea/unit_test/ea_custom_test.c +++ /dev/null @@ -1,200 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ - -#include "ea_custom_test.h" -#include "ea_test_utils.h" -#include "ea_app.h" -#include "ea_custom.h" -#include "ea_msg.h" - -#include "uttest.h" -#include "ut_osapi_stubs.h" -#include "ut_cfe_sb_stubs.h" -#include "ut_cfe_es_stubs.h" -#include "ut_cfe_es_hooks.h" -#include "ut_cfe_evs_stubs.h" -#include "ut_cfe_evs_hooks.h" -#include "ut_cfe_time_stubs.h" -#include "ut_cfe_psp_memutils_stubs.h" -#include "ut_cfe_tbl_stubs.h" -#include "ut_cfe_fs_stubs.h" -#include "ut_cfe_time_stubs.h" - -char CUSTOM_APP_PATH[OS_MAX_PATH_LEN] = "/usr/bin/python"; -char CUSTOM_TEST_ARG[OS_MAX_PATH_LEN] = "noop.py"; - -int FORK_RET_CODE; -int EXECVP_RET_CODE; -int KILL_RET_CODE; -int WAITPID_RET_CODE; - -int PERFMON_SAMPLES = 50; - -/** - * Test EA_StartAppCustom(), Register Child Task Error - */ -void Test_EA_Custom_StartApp_RegisterChildTaskError(void) -{ - /* Set to cause message "StartApp Child Task Registration failed!" to be printed */ - Ut_CFE_ES_SetReturnCode(UT_CFE_ES_REGISTERCHILDTASK_INDEX, -1, 1); - - /* Execute the function being tested */ - EA_StartAppCustom(); - - /* Verify results */ - /* Note: Cannot verify line OS_printf("StartApp Child Task Registration failed!\n") */ - UtAssert_True (EA_AppData.ChildAppTaskID == 0, "Child task ID = 0"); - UtAssert_True (EA_AppData.ChildAppTaskInUse == FALSE, "Child task not in use"); -} - -/** - * Test EA_StartAppCustom(), Failed fork - */ -void Test_EA_Custom_StartApp_FailFork(void) -{ - /* Set to cause fork to fail */ - FORK_RET_CODE = -1; - - /* Execute the function being tested */ - EA_StartAppCustom(); - - /* Verify results */ - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); - UtAssert_EventSent(EA_CMD_ERR_EID, CFE_EVS_ERROR, - "Error starting new process", "Error starting new process"); - UtAssert_True(EA_AppData.HkTlm.usCmdErrCnt==1,"Command Error Count = 1"); -} - -/** - * Test EA_StartAppCustom(), Nominal - */ -void Test_EA_Custom_StartApp_Nominal(void) -{ - /* Set so everything looks valid */ - strncpy(EA_AppData.ChildData.Cmd, CUSTOM_APP_PATH, OS_MAX_PATH_LEN); - strncpy(EA_AppData.ChildData.Args, CUSTOM_TEST_ARG, OS_MAX_PATH_LEN); - FORK_RET_CODE = 1; - WAITPID_RET_CODE = 2; - - /* Execute the function being tested */ - EA_StartAppCustom(); - - /* Verify results */ - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); - UtAssert_EventSent(EA_INF_APP_START_EID, CFE_EVS_INFORMATION, "External application started", "External application started"); - UtAssert_True(EA_AppData.HkTlm.usCmdCnt==1,"Command Count = 1"); - - /* Verify cleanup too since app instantly exits for test */ - UtAssert_True(EA_AppData.HkTlm.ActiveAppPID==0,"ActiveAppPID = 0"); - UtAssert_True(EA_AppData.HkTlm.ActiveAppUtil==0,"ActiveAppUtil = 0");// - UtAssert_True(EA_AppData.ChildAppTaskInUse==FALSE,"ChildAppTaskInUse = FALSE"); - UtAssert_StrCmp(EA_AppData.HkTlm.LastAppRun, CUSTOM_TEST_ARG, "Last Active App set"); - UtAssert_True(EA_AppData.HkTlm.LastAppStatus==2,"LastAppStatus = waitpid return code"); -} - -/** - * Test EA_TermAppCustom(), No app running - */ -void Test_EA_Custom_TermApp_NoneActive(void) -{ - /* Set to cause conditional to fail */ - EA_AppData.HkTlm.ActiveAppPID = 0; - - /* Execute the function being tested */ - EA_TermAppCustom(); - - /* Verify results */ - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); - UtAssert_EventSent(EA_CMD_ERR_EID, CFE_EVS_ERROR, - "Attempted to terminate app while none executing", "No active app"); - UtAssert_True(EA_AppData.HkTlm.usCmdErrCnt==1,"Command Error Count = 1"); -} - -/** - * Test EA_TermAppCustom(), Failed kill - */ -void Test_EA_Custom_TermApp_KillFail(void) -{ - /* Set to cause kill to fail */ - EA_AppData.HkTlm.ActiveAppPID = 1; - KILL_RET_CODE = -1; - - /* Execute the function being tested */ - EA_TermAppCustom(); - - /* Verify results */ - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); - UtAssert_EventSent(EA_CMD_ERR_EID, CFE_EVS_ERROR, - "Unable to terminate application", "Unable to terminate application"); - UtAssert_True(EA_AppData.HkTlm.usCmdErrCnt==1,"Command Error Count = 1"); -} - -/** - * Test EA_TermAppCustom(), Nominal - */ -void Test_EA_Custom_TermApp_Nominal(void) -{ - /* Set active app params that TermApp will clear or copy to last app params */ - EA_AppData.HkTlm.ActiveAppPID = 1; - EA_AppData.HkTlm.ActiveAppUtil = 2; - EA_AppData.ChildAppTaskInUse = TRUE; - strncpy(EA_AppData.HkTlm.ActiveApp, CUSTOM_TEST_ARG, OS_MAX_PATH_LEN); - KILL_RET_CODE = 0; - - /* Execute the function being tested */ - EA_TermAppCustom(); - - /* Verify results */ - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); - UtAssert_EventSent(EA_INF_APP_TERM_EID, CFE_EVS_INFORMATION,"", "External application terminated"); - UtAssert_True(EA_AppData.HkTlm.usCmdCnt==1,"Command Count = 1"); - UtAssert_True(EA_AppData.HkTlm.ActiveAppPID==0,"ActiveAppPID = 0"); - UtAssert_True(EA_AppData.HkTlm.ActiveAppUtil==0,"ActiveAppUtil = 0");// - UtAssert_True(EA_AppData.ChildAppTaskInUse==FALSE,"ChildAppTaskInUse = FALSE"); - UtAssert_StrCmp(EA_AppData.HkTlm.LastAppRun, CUSTOM_TEST_ARG, "Last Active App set"); - UtAssert_True(EA_AppData.HkTlm.LastAppStatus==-1,"LastAppStatus = -1"); -} - -/************************************************************************** - * Rollup Test Cases - **************************************************************************/ -void EA_Custom_Test_AddTestCases(void) -{ - UtTest_Add(Test_EA_Custom_StartApp_RegisterChildTaskError, EA_Test_Setup, EA_Test_TearDown, "Test_EA_Custom_StartApp_RegisterChildTaskError"); - UtTest_Add(Test_EA_Custom_StartApp_FailFork, EA_Test_Setup, EA_Test_TearDown, "Test_EA_Custom_StartApp_FailFork"); - UtTest_Add(Test_EA_Custom_StartApp_Nominal, EA_Test_Setup, EA_Test_TearDown, "Test_EA_Custom_StartApp_Nominal"); - UtTest_Add(Test_EA_Custom_TermApp_NoneActive, EA_Test_Setup, EA_Test_TearDown, "Test_EA_Custom_TermApp_NoneActive"); - UtTest_Add(Test_EA_Custom_TermApp_KillFail, EA_Test_Setup, EA_Test_TearDown, "Test_EA_Custom_TermApp_KillFail"); - UtTest_Add(Test_EA_Custom_TermApp_Nominal, EA_Test_Setup, EA_Test_TearDown, "Test_EA_Custom_TermApp_Nominal"); -} - diff --git a/config/ocpoc/s1000/target/apps/ea/unit_test/ea_custom_test.h b/config/ocpoc/s1000/target/apps/ea/unit_test/ea_custom_test.h deleted file mode 100644 index 0ba43986e..000000000 --- a/config/ocpoc/s1000/target/apps/ea/unit_test/ea_custom_test.h +++ /dev/null @@ -1,49 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ - -#ifndef EA_CUSTOM_TEST_H -#define EA_CUSTOM_TEST_H - -#ifdef __cplusplus -extern "C" { -#endif - -void EA_Custom_Test_AddTestCases(void); -int EA_CalibrateTop(int pid); -int EA_GetPidUtil(int pid, int util_ndx); - -#ifdef __cplusplus -} -#endif - -#endif /* EA_CUSTOM_TEST_H */ diff --git a/config/ocpoc/s1000/target/apps/ea/unit_test/ea_mock_os_calls.c b/config/ocpoc/s1000/target/apps/ea/unit_test/ea_mock_os_calls.c deleted file mode 100644 index ec8b52ec8..000000000 --- a/config/ocpoc/s1000/target/apps/ea/unit_test/ea_mock_os_calls.c +++ /dev/null @@ -1,62 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ - -#include - -int FORK_RET_CODE = 0; -int EXECVP_RET_CODE = 0; -int KILL_RET_CODE = 0; -int WAITPID_RET_CODE = 0; - -//void __real_fork(); - -pid_t __wrap_fork() -{ - return FORK_RET_CODE; -} - -int __wrap_execvp(const char *file, char *const argv[]) -{ - return EXECVP_RET_CODE; -} - -int __wrap_kill(int pid, int signal) -{ - return KILL_RET_CODE; -} - -pid_t __wrap_waitpid(pid_t pid, int *status, int options) -{ - *status = WAITPID_RET_CODE; - return WAITPID_RET_CODE; -} diff --git a/config/ocpoc/s1000/target/apps/ea/unit_test/ea_mock_os_calls.h b/config/ocpoc/s1000/target/apps/ea/unit_test/ea_mock_os_calls.h deleted file mode 100644 index ac9d19b7f..000000000 --- a/config/ocpoc/s1000/target/apps/ea/unit_test/ea_mock_os_calls.h +++ /dev/null @@ -1,57 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ - -#ifndef EA_MOCK_OS_CALLS_H -#define EA_MOCK_OS_CALLS_H - -#ifdef __cplusplus -extern "C" { -#endif - -//#define fork() mock_fork() -//#define execvp(...) mock_execvp(__VA_ARGS__) -//#define kill(...) mock_kill(__VA_ARGS__) - -extern int FORK_RET_CODE; -extern int EXECVP_RET_CODE; -extern int KILL_RET_CODE; -extern int WAITPID_RET_CODE -//int __wrap_fork(); -//int __wrap_execvp(const char *file, char *const argv[]); -//int __wrap_kill(int pid, int signal); - -#ifdef __cplusplus -} -#endif - -#endif /* MOCK_OS_CALLS_H */ diff --git a/config/ocpoc/s1000/target/apps/ea/unit_test/ea_perfmon_test.c b/config/ocpoc/s1000/target/apps/ea/unit_test/ea_perfmon_test.c deleted file mode 100644 index c3554a95f..000000000 --- a/config/ocpoc/s1000/target/apps/ea/unit_test/ea_perfmon_test.c +++ /dev/null @@ -1,192 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ - -#include "ea_perfmon_test.h" -#include "ea_test_utils.h" -#include "ea_app.h" -#include "ea_custom.h" -#include "ea_msg.h" - -#include "uttest.h" -#include "ut_osapi_stubs.h" -#include "ut_cfe_sb_stubs.h" -#include "ut_cfe_es_stubs.h" -#include "ut_cfe_es_hooks.h" -#include "ut_cfe_evs_stubs.h" -#include "ut_cfe_evs_hooks.h" -#include "ut_cfe_time_stubs.h" -#include "ut_cfe_psp_memutils_stubs.h" -#include "ut_cfe_tbl_stubs.h" -#include "ut_cfe_fs_stubs.h" -#include "ut_cfe_time_stubs.h" - -char PERFMON_APP_PATH[OS_MAX_PATH_LEN] = "/usr/bin/python"; -char PERFMON_TEST_ARG_FIB[OS_MAX_PATH_LEN] = "fib.py"; -char PERFMON_TEST_ARG_SLP[OS_MAX_PATH_LEN] = "sleep.py"; -int PERFMON_SAMPLES = 5; - -/** - * Test EA_PerfmonCustom(), Nominal - */ -void Test_EA_PerfmonCustom_Nominal(void) -{ - /* - ** Create child process to execute test app - */ - pid_t pid = fork(); - /* - ** Child process - */ - if (pid == 0) - { - char *argv[] = {PERFMON_APP_PATH, PERFMON_TEST_ARG_FIB, NULL}; - if(execvp(PERFMON_APP_PATH, argv) == -1) - { - printf("Unable to execute new process\n"); - } - exit(0); - } - /* - ** Failed Fork - */ - else if (pid == -1) - { - printf("Unable to execute fork\n"); - } - /* - ** Parent process - */ - else - { - int high_util_flag = 0; - int low_util_flag = 0; - int util = 0; - int count = 0; - while(count < PERFMON_SAMPLES) - { - /* Get current util */ - EA_PerfmonCustom(pid); - util = EA_AppData.HkTlm.ActiveAppUtil; - - /* Test if util in expected ranges */ - if(util >= 0 && util <= 100) - { - low_util_flag = 1; - } - if(util > 30 && util <= 100) - { - high_util_flag = 1; - } - count += 1; - sleep(1); - } - - /* Verify results */ - UtAssert_True(low_util_flag==1, "Hit low util threshold"); - UtAssert_True(high_util_flag==1, "Hit high util threshold"); - } -} - -/** - * Test EA_PerfmonCustom(), Idle - */ -void Test_EA_PerfmonCustom_Idle(void) -{ - /* - ** Create child process to execute test app - */ - pid_t pid = fork(); - /* - ** Child process - */ - if (pid == 0) - { - char *argv[] = {PERFMON_APP_PATH, PERFMON_TEST_ARG_SLP, NULL}; - if(execvp(PERFMON_APP_PATH, argv) == -1) - { - printf("Unable to execute new process\n"); - } - exit(0); - } - /* - ** Failed Fork - */ - else if (pid == -1) - { - printf("Unable to execute fork\n"); - } - /* - ** Parent process - */ - else - { - int high_util_flag = 0; - int low_util_flag = 0; - int util = 0; - int count = 0; - while(count < PERFMON_SAMPLES) - { - /* Get current util */ - EA_PerfmonCustom(pid); - util = EA_AppData.HkTlm.ActiveAppUtil; - - /* Test if util in expected ranges */ - if(util >= 0 && util <= 100) - { - low_util_flag = 1; - } - if(util > 50 && util <= 100) - { - high_util_flag = 1; - } - count += 1; - sleep(1); - } - - /* Verify results */ - UtAssert_True(low_util_flag==1, "Hit low util threshold"); - UtAssert_True(high_util_flag==0, "Hit high util threshold"); - } -} - - - -/************************************************************************** - * Rollup Test Cases - **************************************************************************/ -void EA_Perfmon_Test_AddTestCases(void) -{ - UtTest_Add(Test_EA_PerfmonCustom_Nominal, EA_Test_Setup, EA_Test_TearDown, "Test_EA_PerfmonCustom_Nominal"); - UtTest_Add(Test_EA_PerfmonCustom_Idle, EA_Test_Setup, EA_Test_TearDown, "Test_EA_PerfmonCustom_Idle"); -} - diff --git a/config/ocpoc/s1000/target/apps/ea/unit_test/ea_perfmon_test.h b/config/ocpoc/s1000/target/apps/ea/unit_test/ea_perfmon_test.h deleted file mode 100644 index 0ba43986e..000000000 --- a/config/ocpoc/s1000/target/apps/ea/unit_test/ea_perfmon_test.h +++ /dev/null @@ -1,49 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ - -#ifndef EA_CUSTOM_TEST_H -#define EA_CUSTOM_TEST_H - -#ifdef __cplusplus -extern "C" { -#endif - -void EA_Custom_Test_AddTestCases(void); -int EA_CalibrateTop(int pid); -int EA_GetPidUtil(int pid, int util_ndx); - -#ifdef __cplusplus -} -#endif - -#endif /* EA_CUSTOM_TEST_H */ diff --git a/config/ocpoc/s1000/target/apps/ea/unit_test/ea_perfmon_testrunner.c b/config/ocpoc/s1000/target/apps/ea/unit_test/ea_perfmon_testrunner.c deleted file mode 100644 index cbfb60861..000000000 --- a/config/ocpoc/s1000/target/apps/ea/unit_test/ea_perfmon_testrunner.c +++ /dev/null @@ -1,46 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ - -#include "uttest.h" - -#include "ea_perfmon_test.h" - -void EA_Perfmon_Test_AddTestCases(void); - -int main(void) -{ - EA_Perfmon_Test_AddTestCases(); - - return(UtTest_Run()); -} - diff --git a/config/ocpoc/s1000/target/apps/ea/unit_test/ea_test_utils.c b/config/ocpoc/s1000/target/apps/ea/unit_test/ea_test_utils.c deleted file mode 100644 index b82004805..000000000 --- a/config/ocpoc/s1000/target/apps/ea/unit_test/ea_test_utils.c +++ /dev/null @@ -1,73 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ - -#include "ea_test_utils.h" - -#include "ut_cfe_evs_hooks.h" -#include "ut_cfe_time_stubs.h" -#include "ut_cfe_psp_memutils_stubs.h" -#include "ut_cfe_tbl_stubs.h" -#include "ut_cfe_tbl_hooks.h" -#include "ut_cfe_fs_stubs.h" -#include "ut_cfe_time_stubs.h" -#include "ut_osapi_stubs.h" -#include "ut_osfileapi_stubs.h" -#include "ut_cfe_sb_stubs.h" -#include "ut_cfe_es_stubs.h" -#include "ut_cfe_evs_stubs.h" - -#include - -/* - * Function Definitions - */ - -void EA_Test_Setup(void) -{ - /* initialize test environment to default state for every test */ - - CFE_PSP_MemSet(&EA_AppData, 0x00, sizeof(EA_AppData_t)); - - Ut_CFE_EVS_Reset(); - Ut_CFE_FS_Reset(); - Ut_CFE_TIME_Reset(); - Ut_CFE_TBL_Reset(); - Ut_CFE_SB_Reset(); - Ut_CFE_ES_Reset(); - Ut_OSAPI_Reset(); - Ut_OSFILEAPI_Reset(); -} - -void EA_Test_TearDown(void) { - CFE_PSP_MemSet(&EA_AppData, 0x00, sizeof(EA_AppData_t)); -} diff --git a/config/ocpoc/s1000/target/apps/ea/unit_test/ea_test_utils.h b/config/ocpoc/s1000/target/apps/ea/unit_test/ea_test_utils.h deleted file mode 100644 index f4f8f8518..000000000 --- a/config/ocpoc/s1000/target/apps/ea/unit_test/ea_test_utils.h +++ /dev/null @@ -1,62 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ - -#ifndef EA_TEST_UTILS_H -#define EA_TEST_UTILS_H - -/* - * Includes - */ - -#include "ea_app.h" - -extern EA_AppData_t EA_AppData; - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * Function Definitions - */ - -void EA_Test_Setup(void); -void EA_Test_TearDown(void); - - -#ifdef __cplusplus -} -#endif - -#endif /* EA_TEST_UTILS_H */ - diff --git a/config/ocpoc/s1000/target/apps/ea/unit_test/ea_testrunner.c b/config/ocpoc/s1000/target/apps/ea/unit_test/ea_testrunner.c deleted file mode 100644 index 9f37d7cb6..000000000 --- a/config/ocpoc/s1000/target/apps/ea/unit_test/ea_testrunner.c +++ /dev/null @@ -1,44 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ - -#include "uttest.h" - -#include "ea_custom_test.h" - -int main(void) -{ - EA_Custom_Test_AddTestCases(); - - return(UtTest_Run()); -} - diff --git a/config/ocpoc/s1000/target/apps/ea/unit_test/fib.py b/config/ocpoc/s1000/target/apps/ea/unit_test/fib.py deleted file mode 100644 index 863d2a64d..000000000 --- a/config/ocpoc/s1000/target/apps/ea/unit_test/fib.py +++ /dev/null @@ -1,14 +0,0 @@ -import sys -import time - -def fib(n): - if n < 0: - return 0 - if n == 0 or n == 1: - return 1 - else: - return fib(n-1) + fib(n-2) - -f = fib(40) - -sys.exit(3) diff --git a/config/ocpoc/s1000/target/apps/ea/unit_test/noop.py b/config/ocpoc/s1000/target/apps/ea/unit_test/noop.py deleted file mode 100644 index de2b0fb69..000000000 --- a/config/ocpoc/s1000/target/apps/ea/unit_test/noop.py +++ /dev/null @@ -1,3 +0,0 @@ -import sys -print "Python: Noop" -sys.exit(3) diff --git a/config/ocpoc/s1000/target/apps/ea/unit_test/sleep.py b/config/ocpoc/s1000/target/apps/ea/unit_test/sleep.py deleted file mode 100644 index 90aa057a5..000000000 --- a/config/ocpoc/s1000/target/apps/ea/unit_test/sleep.py +++ /dev/null @@ -1,6 +0,0 @@ -import sys -import time - -time.sleep(5) - -sys.exit(3) diff --git a/config/ocpoc/s1000/target/apps/flow/CMakeLists.txt b/config/ocpoc/s1000/target/apps/flow/CMakeLists.txt deleted file mode 100644 index af4c74ebf..000000000 --- a/config/ocpoc/s1000/target/apps/flow/CMakeLists.txt +++ /dev/null @@ -1,8 +0,0 @@ -set(APP_NAME flow) - -buildliner_add_table( - ${APP_NAME} - NAME flow_config - SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/tables/flow_config.c - INCLUDES ${CMAKE_CURRENT_SOURCE_DIR}/src/ -) diff --git a/config/ocpoc/s1000/target/apps/flow/tables/flow_config.c b/config/ocpoc/s1000/target/apps/flow/tables/flow_config.c deleted file mode 100644 index ecc847cc7..000000000 --- a/config/ocpoc/s1000/target/apps/flow/tables/flow_config.c +++ /dev/null @@ -1,80 +0,0 @@ -/* -** Include Files -*/ -#include "cfe_tbl_filedef.h" -#include "flow_tbldefs.h" - - -/* Default FLOW config table data */ -FLOW_ConfigTbl_t FLOW_ConfigTbl = -{ - /** \brief Horizontal field of view. - * - * \par Limits: - * default 0.088. - */ - 0.10934f, - /** \brief Size of sliding window. - * - * \par Limits: - * Min > Max (incr.) 2 > 10, default 8. - */ - 8, - /** \brief Number of blocks of sliding window. - * - * \par Limits: - * Min > Max (incr.) 2 > 10, default 5. - */ - 5, - /** \brief Default image output rate. - * - * \par Limits: - * default 15. - */ - 10, - /** \brief Default image width. - * - * \par Limits: - * default 64. - */ - 64, - /** \brief Default image height. - * - * \par Limits: - * default 64. - */ - 64, - /** \brief Default image search size. - * - * \par Limits: - * default 6. - */ - 6, - /** \brief Default feature threshold. - * - * \par Limits: - * default 30. - */ - 30, - /** \brief Default value threshold. - * - * \par Limits: - * default 3000. - */ - 3000, - /** \brief Mean count threshold. - * - * \par Limits: - * default 10. - */ - 10 -}; - - -/* Table file header */ -CFE_TBL_FILEDEF(FLOW_ConfigTbl, FLOW.CONFIG_TBL, FLOW default config table, flow_config.tbl ) - -/*======================================================================================= -** End of file flow_config.c -**=====================================================================================*/ - diff --git a/config/ocpoc/s1000/target/apps/gps/CMakeLists.txt b/config/ocpoc/s1000/target/apps/gps/CMakeLists.txt deleted file mode 100644 index defd104f2..000000000 --- a/config/ocpoc/s1000/target/apps/gps/CMakeLists.txt +++ /dev/null @@ -1,7 +0,0 @@ -set(APP_NAME gps) - -buildliner_add_table( - ${APP_NAME} - NAME gps_config - SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/tables/gps_config.c -) diff --git a/config/ocpoc/s1000/target/apps/gps/src/CMakeLists.txt b/config/ocpoc/s1000/target/apps/gps/src/CMakeLists.txt deleted file mode 100644 index b90f33510..000000000 --- a/config/ocpoc/s1000/target/apps/gps/src/CMakeLists.txt +++ /dev/null @@ -1,5 +0,0 @@ -# Set source for custom code. -set(APP_CUSTOM_SRC - ${CMAKE_CURRENT_SOURCE_DIR}/gps_custom.c - PARENT_SCOPE - ) diff --git a/config/ocpoc/s1000/target/apps/gps/src/gps_custom.c b/config/ocpoc/s1000/target/apps/gps/src/gps_custom.c deleted file mode 100644 index 2c5543fce..000000000 --- a/config/ocpoc/s1000/target/apps/gps/src/gps_custom.c +++ /dev/null @@ -1,217 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ -/************************************************************************ -** Pragmas -*************************************************************************/ - -/************************************************************************ -** Includes -*************************************************************************/ -#include "gps_custom_shared.h" -#include - -/************************************************************************ -** Local Defines -*************************************************************************/ - -/************************************************************************ -** Local Structure Declarations -*************************************************************************/ - -/************************************************************************ -** External Global Variables -*************************************************************************/ - -/************************************************************************ -** Global Variables -*************************************************************************/ -GPS_AppCustomData_t GPS_AppCustomData; - -/************************************************************************ -** Local Variables -*************************************************************************/ - -/************************************************************************ -** Local Function Definitions -*************************************************************************/ - -boolean GPS_Custom_Max_Events_Not_Reached(int32 ind) -{ - if ((ind < CFE_EVS_MAX_EVENT_FILTERS) && (ind > 0)) - { - return TRUE; - } - else - { - return FALSE; - } -} - - -int32 GPS_Custom_Init_EventFilters(int32 ind, CFE_EVS_BinFilter_t *EventTbl) -{ - int32 customEventCount = ind; - - /* Null check */ - if(0 == EventTbl) - { - customEventCount = -1; - goto end_of_function; - } - - if(TRUE == GPS_Custom_Max_Events_Not_Reached(customEventCount)) - { - EventTbl[ customEventCount].EventID = GPS_DEVICE_ERR_EID; - EventTbl[customEventCount++].Mask = CFE_EVS_FIRST_16_STOP; - } - else - { - customEventCount = -1; - goto end_of_function; - } - -end_of_function: - - return customEventCount; -} - - -//boolean GPS_Custom_Measure_DumpMsg(PX4_GpsDumpMsg_t *Measure) -//{ - //boolean returnBool = TRUE; - //void *userDataPtr = 0; - //void *copyDataPtr = 0; - //uint16 userDataLength = 0; - - ///* Null check */ - //if(0 == Measure) - //{ - //CFE_EVS_SendEvent(GPS_DEVICE_ERR_EID, CFE_EVS_ERROR, - //"GPS measure dump message null pointer"); - //returnBool = FALSE; - //goto end_of_function; - //} - - //OS_MutSemTake(GPS_AppCustomData.MutexDump); - //userDataPtr = CFE_SB_GetUserData((CFE_SB_MsgPtr_t)&GPS_AppCustomData.GpsDumpMsg); - //userDataLength = CFE_SB_GetUserDataLength((CFE_SB_MsgPtr_t)Measure); - //copyDataPtr = CFE_SB_GetUserData((CFE_SB_MsgPtr_t)Measure); - //memcpy(copyDataPtr, userDataPtr, userDataLength); - //OS_MutSemGive(GPS_AppCustomData.MutexDump); - -//end_of_function: - - //return returnBool; -//} - - -boolean GPS_Custom_Measure_PositionMsg(PX4_VehicleGpsPositionMsg_t *Measure) -{ - boolean returnBool = TRUE; - void *userDataPtr = 0; - void *copyDataPtr = 0; - uint16 userDataLength = 0; - - /* Null check */ - if(0 == Measure) - { - CFE_EVS_SendEvent(GPS_DEVICE_ERR_EID, CFE_EVS_ERROR, - "GPS measure dump message null pointer"); - returnBool = FALSE; - goto end_of_function; - } - - OS_MutSemTake(GPS_AppCustomData.MutexPosition); - //userDataPtr = CFE_SB_GetUserData((CFE_SB_MsgPtr_t)&GPS_AppCustomData.GpsPositionMsg); - //userDataLength = CFE_SB_GetUserDataLength((CFE_SB_MsgPtr_t)Measure); - //copyDataPtr = CFE_SB_GetUserData((CFE_SB_MsgPtr_t)Measure); - - //memcpy(copyDataPtr, userDataPtr, userDataLength); - Measure->Timestamp = GPS_AppCustomData.GpsPositionMsg.Timestamp; - Measure->TimeUtcUsec = GPS_AppCustomData.GpsPositionMsg.TimeUtcUsec; - Measure->Lat = GPS_AppCustomData.GpsPositionMsg.Lat; - Measure->Lon = GPS_AppCustomData.GpsPositionMsg.Lon; - Measure->Alt = GPS_AppCustomData.GpsPositionMsg.Alt; - Measure->AltEllipsoid = GPS_AppCustomData.GpsPositionMsg.AltEllipsoid; - Measure->SVariance = GPS_AppCustomData.GpsPositionMsg.SVariance; - Measure->CVariance = GPS_AppCustomData.GpsPositionMsg.CVariance; - Measure->EpH = GPS_AppCustomData.GpsPositionMsg.EpH; - Measure->EpV = GPS_AppCustomData.GpsPositionMsg.EpV; - Measure->HDOP = GPS_AppCustomData.GpsPositionMsg.HDOP; - Measure->VDOP = GPS_AppCustomData.GpsPositionMsg.VDOP; - Measure->NoisePerMs = GPS_AppCustomData.GpsPositionMsg.NoisePerMs; - Measure->JammingIndicator = GPS_AppCustomData.GpsPositionMsg.JammingIndicator; - Measure->Vel_m_s = GPS_AppCustomData.GpsPositionMsg.Vel_m_s; - Measure->Vel_n_m_s = GPS_AppCustomData.GpsPositionMsg.Vel_n_m_s; - Measure->Vel_e_m_s = GPS_AppCustomData.GpsPositionMsg.Vel_e_m_s; - Measure->Vel_d_m_s = GPS_AppCustomData.GpsPositionMsg.Vel_d_m_s; - Measure->COG = GPS_AppCustomData.GpsPositionMsg.COG; - Measure->TimestampTimeRelative = GPS_AppCustomData.GpsPositionMsg.TimestampTimeRelative; - Measure->FixType = GPS_AppCustomData.GpsPositionMsg.FixType; - Measure->VelNedValid = GPS_AppCustomData.GpsPositionMsg.VelNedValid; - Measure->SatellitesUsed = GPS_AppCustomData.GpsPositionMsg.SatellitesUsed; - OS_MutSemGive(GPS_AppCustomData.MutexPosition); - -end_of_function: - - return returnBool; -} - - -boolean GPS_Custom_Measure_SatInfoMsg(PX4_SatelliteInfoMsg_t *Measure) -{ - boolean returnBool = FALSE; - //void *userDataPtr = 0; - //void *copyDataPtr = 0; - //uint16 userDataLength = 0; - ///* Null check */ - //if(0 == Measure) - //{ - //CFE_EVS_SendEvent(GPS_DEVICE_ERR_EID, CFE_EVS_ERROR, - //"GPS measure dump message null pointer"); - //returnBool = FALSE; - //goto end_of_function; - //} - - //OS_MutSemTake(GPS_AppCustomData.MutexSatInfo); - //userDataPtr = CFE_SB_GetUserData((CFE_SB_MsgPtr_t)&GPS_AppCustomData.GpsSatInfoMsg); - //userDataLength = CFE_SB_GetUserDataLength((CFE_SB_MsgPtr_t)Measure); - //copyDataPtr = CFE_SB_GetUserData((CFE_SB_MsgPtr_t)Measure); - - //memcpy(copyDataPtr, userDataPtr, userDataLength); - //OS_MutSemGive(GPS_AppCustomData.MutexSatInfo); - -end_of_function: - - return returnBool; -} diff --git a/config/ocpoc/s1000/target/apps/gps/src/gps_custom_shared.h b/config/ocpoc/s1000/target/apps/gps/src/gps_custom_shared.h deleted file mode 100644 index f5b57a0c9..000000000 --- a/config/ocpoc/s1000/target/apps/gps/src/gps_custom_shared.h +++ /dev/null @@ -1,235 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ - -#ifndef GPS_CUSTOM_SHARED_H -#define GPS_CUSTOM_SHARED_H -/************************************************************************ -** Includes -*************************************************************************/ -#include "gps_events.h" -#include "cfe.h" -#include "px4_msgs.h" - -#ifdef __cplusplus -extern "C" { -#endif -/************************************************************************ -** Local Defines -*************************************************************************/ - -/** \brief GPS read buffer size. -** -** \par Description: -** MON_VER from u-blox modules can be ~190 bytes -*/ -#define GPS_READ_BUFFER_SIZE (250) - -/************************************************************************ -** Structure Declarations -*************************************************************************/ -typedef enum -{ - -/** \brief 'GPS - ' -** \event 'GPS - ' -** -** \par Type: ERROR -** -** \par Cause: -** -** This event message is issued when a device resource encounters an -** error. -** -*/ - GPS_DEVICE_ERR_EID = GPS_EVT_CNT, - -/** \brief 'GPS - ' -** \event 'GPS - ' -** -** \par Type: ERROR -** -** \par Cause: -** -** This event message is issued when a GPS message parser encounters an -** error. -** -*/ - GPS_INIT_DEVICE_PARSER_ERR_EID, - -/** \brief Number of custom events -** -** \par Limits: -** int32 -*/ - GPS_CUSTOM_EVT_CNT -} GPS_CustomEventIds_t; - - -typedef struct -{ - /*! \brief cFE Software Bus Telemetry Message Header */ - uint8 TlmHeader[CFE_SB_TLM_HDR_SIZE]; - uint8 Payload[GPS_READ_BUFFER_SIZE]; -} GPS_DeviceMessage_t; - - -/** - * \brief Parser state. - */ -typedef enum -{ - GPS_PARSE_STATE_UNINIT=0, - GPS_PARSE_STATE_IDLE, - GPS_PARSE_STATE_GOT_SYNC1, - GPS_PARSE_STATE_GOT_SYNC2, - GPS_PARSE_STATE_GOT_CLASS, - GPS_PARSE_STATE_GOT_ID, - GPS_PARSE_STATE_GOT_LENGTH1, - GPS_PARSE_STATE_GOT_LENGTH2, - GPS_PARSE_STATE_GOT_PAYLOAD, - GPS_PARSE_STATE_GOT_CHECKSUMA, - GPS_PARSE_STATE_GOT_CHECKSUMB -} GPS_ParserState_t; - - -typedef struct -{ - /*! Number of received messages */ - uint32 MsgReceived; - /*! Number of parse errors */ - uint32 ParseError; - /*! Parsing state machine */ - GPS_ParserState_t ParseState; - uint16 PayloadCursor; - uint8 ClassID; - uint8 MsgID; - uint16 MsgLength; - uint16 ChecksumA; -} GPS_ParserStatus_t; - -/** - * \brief GPS device status - */ -typedef enum -{ - /*! GPS status uninitialized */ - GPS_CUSTOM_UNINITIALIZED = 0, - /*! GPS status initialized */ - GPS_CUSTOM_INITIALIZED = 1, - /*! GPS status streaming */ - GPS_CUSTOM_STREAMING = 2 -} GPS_Custom_Status_t; - - -typedef enum -{ - GPS_ACK_IDLE = 0, - GPS_ACK_WAITING = 1, - GPS_ACK_GOT_ACK = 2, - GPS_ACK_GOT_NAK = 3 -} GPS_Ack_State_t; - - -typedef struct -{ - /*! Device file descriptor */ - int DeviceFd; - /*! The current device status */ - GPS_Custom_Status_t Status; - /*! The current baud */ - uint32 Baud; - /*! The current parser status */ - GPS_ParserStatus_t ParserStatus; - /*! The current parser message */ - GPS_DeviceMessage_t Message; - /*! Streaming task priority */ - uint8 Priority; - /*! Streaming child task identifier */ - uint32 ChildTaskID; - /*! Streaming task function pointer */ - CFE_ES_ChildTaskMainFuncPtr_t StreamingTask; - //PX4_GpsDumpMsg_t GpsDumpMsg; - PX4_VehicleGpsPositionMsg_t GpsPositionMsg; - PX4_SatelliteInfoMsg_t GpsSatInfoMsg; - GPS_Ack_State_t AckState; - uint16 AckWaitingMsg; - uint8 AckRcvdMsgCls; - boolean AckWaitingRcvd; - /*! The shared data mutex */ - //uint32 MutexDump; - uint32 MutexPosition; - uint32 MutexSatInfo; - /*! */ - uint32 RateCountVel; - uint32 RateCountLatLon; - boolean GotPosllh; - boolean GotVelned; - /*! Flag to start and stop streaming */ - boolean ContinueFlag; - uint32 TaskFlags; -} GPS_AppCustomData_t; - - -/************************************************************************ -** External Global Variables -*************************************************************************/ -extern GPS_AppCustomData_t GPS_AppCustomData; - -/************************************************************************ -** Function Prototypes -*************************************************************************/ - -/************************************************************************/ -/** \brief Determines if the maximum of event filters has been reached. -** -** \par Description -** This function checks if an index has reached the maximum -** number of events. -** -** \par Assumptions, External Events, and Notes: -** None -** -** \param [in] ind The current index to check. -** -** -** \returns boolean -** -*************************************************************************/ -boolean GPS_Custom_Max_Events_Not_Reached(int32 ind); - - -#ifdef __cplusplus -} -#endif - -#endif /* GPS_CUSTOM_SHARED_H */ diff --git a/config/ocpoc/s1000/target/apps/gps/src/gps_parser_ubx/gps_parser_ubx_ack.c b/config/ocpoc/s1000/target/apps/gps/src/gps_parser_ubx/gps_parser_ubx_ack.c deleted file mode 100644 index 21e7717d0..000000000 --- a/config/ocpoc/s1000/target/apps/gps/src/gps_parser_ubx/gps_parser_ubx_ack.c +++ /dev/null @@ -1,200 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ -/************************************************************************* -** -** Include section -** -**************************************************************************/ - -#include "cfe.h" -//#include "GPS_events.h" -//#include "GPS_msgids.h" -#include "gps_parser_ubx_ack.h" - -/************************************************************************* -** -** Macro definitions -** -**************************************************************************/ -#define GPS_PARSER_ACK_ACK_MSG_LENGTH (2) -#define GPS_PARSER_ACK_NAK_MSG_LENGTH (2) - -/************************************************************************* -** -** Type definitions -** -**************************************************************************/ - -/* -** (none) -*/ - -/************************************************************************* -** -** Imported data -** -**************************************************************************/ - -/* -** (none) -*/ - -/************************************************************************* -** -** Exported data -** -**************************************************************************/ - - - -/************************************************************************* -** -** File data -** -**************************************************************************/ - -/* -** (none) -*/ - -/************************************************************************* -** Local function prototypes -**************************************************************************/ -void GPS_Ack_ParseChar_ACK(uint8 byte, GPS_DeviceMessage_t* message) -{ - uint16 checkMsg = 0; - if(GPS_AppCustomData.ParserStatus.MsgLength != GPS_PARSER_ACK_ACK_MSG_LENGTH) - { - GPS_AppCustomData.ParserStatus.ParseError++; - CFE_EVS_SendEvent(GPS_INIT_DEVICE_PARSER_ERR_EID, CFE_EVS_ERROR, - "Received ACK message with incorrect length (%u).", GPS_AppCustomData.ParserStatus.MsgLength); - GPS_Parser_Reset(); - } - else - { - GPS_ACK_ACK_t *payload = (void*)CFE_SB_GetUserData((CFE_SB_MsgPtr_t)message); - switch(GPS_AppCustomData.ParserStatus.PayloadCursor) - { - case 0: - { - CFE_SB_MsgId_t sbMsgID = GPS_TranslateMsgID(GPS_AppCustomData.ParserStatus.ClassID, GPS_AppCustomData.ParserStatus.MsgID); - uint16 sbHdrSize = CFE_SB_MsgHdrSize(sbMsgID); - uint16 sbTotalMsgSize = sbHdrSize + GPS_AppCustomData.ParserStatus.MsgLength; - CFE_SB_InitMsg(message, sbMsgID, sbTotalMsgSize, TRUE); - - payload->clsID = byte; - GPS_AppCustomData.AckRcvdMsgCls = byte; - break; - } - case 1: - { - payload->msgID = byte; - - checkMsg = ((GPS_AppCustomData.AckRcvdMsgCls) | byte << 8); - - if(GPS_ACK_WAITING == GPS_AppCustomData.AckState) - { - if(checkMsg == GPS_AppCustomData.AckWaitingMsg) - { - GPS_AppCustomData.AckState = GPS_ACK_GOT_ACK; - GPS_AppCustomData.AckWaitingRcvd = TRUE; - } - } - GPS_Parser_StateChange(GPS_PARSE_STATE_GOT_PAYLOAD); - break; - } - default: - { - GPS_Parser_Reset(); - return; - } - } - } -} - - -void GPS_Ack_ParseChar_NAK(uint8 byte, GPS_DeviceMessage_t* message) -{ - uint16 checkMsg = 0; - if(GPS_AppCustomData.ParserStatus.MsgLength != GPS_PARSER_ACK_NAK_MSG_LENGTH) - { - GPS_AppCustomData.ParserStatus.ParseError++; - CFE_EVS_SendEvent(GPS_INIT_DEVICE_PARSER_ERR_EID, CFE_EVS_ERROR, - "Received ACK message with incorrect length (%u).", GPS_AppCustomData.ParserStatus.MsgLength); - GPS_Parser_Reset(); - } - else - { - GPS_ACK_NAK_t *payload = (void*)CFE_SB_GetUserData((CFE_SB_MsgPtr_t)message); - switch(GPS_AppCustomData.ParserStatus.PayloadCursor) - { - case 0: - { - CFE_SB_MsgId_t sbMsgID = GPS_TranslateMsgID(GPS_AppCustomData.ParserStatus.ClassID, GPS_AppCustomData.ParserStatus.MsgID); - uint16 sbHdrSize = CFE_SB_MsgHdrSize(sbMsgID); - uint16 sbTotalMsgSize = sbHdrSize + GPS_AppCustomData.ParserStatus.MsgLength; - CFE_SB_InitMsg(message, sbMsgID, sbTotalMsgSize, TRUE); - - payload->clsID = byte; - GPS_AppCustomData.AckRcvdMsgCls = byte; - break; - } - case 1: - { - payload->msgID = byte; - - checkMsg = ((GPS_AppCustomData.AckRcvdMsgCls) | byte << 8); - if(GPS_ACK_WAITING == GPS_AppCustomData.AckState) - { - if(checkMsg == GPS_AppCustomData.AckWaitingMsg) - { - GPS_AppCustomData.AckState = GPS_ACK_GOT_NAK; - GPS_AppCustomData.AckWaitingRcvd = TRUE; - } - } - GPS_Parser_StateChange(GPS_PARSE_STATE_GOT_PAYLOAD); - break; - } - default: - { - GPS_Parser_Reset(); - return; - } - } - } -} - -/************************/ -/* End of File Comment */ -/************************/ - diff --git a/config/ocpoc/s1000/target/apps/gps/src/gps_parser_ubx/gps_parser_ubx_ack.h b/config/ocpoc/s1000/target/apps/gps/src/gps_parser_ubx/gps_parser_ubx_ack.h deleted file mode 100644 index bb3f7b863..000000000 --- a/config/ocpoc/s1000/target/apps/gps/src/gps_parser_ubx/gps_parser_ubx_ack.h +++ /dev/null @@ -1,99 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ -/************************************************************************* -** -** Include section -** -**************************************************************************/ -#ifndef _GPS_PARSER_UBX_ACK_H_ -#define _GPS_PARSER_UBX_ACK_H_ - -#include "cfe.h" -#include "../gps_custom_shared.h" -//#include "GPS_events.h" -//#include "GPS_msgids.h" -#include "gps_parser_ubx_common.h" -#include "gps_ubx_msg.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/************************************************************************* -** -** Macro definitions -** -**************************************************************************/ - - -/************************************************************************* -** -** Type definitions -** -**************************************************************************/ - -/* -** (none) -*/ - -/************************************************************************* -** -** Imported data -** -**************************************************************************/ - -/* -** (none) -*/ - -/************************************************************************* -** -** Exported data -** -**************************************************************************/ - - -void GPS_Ack_ParseChar_ACK(uint8 byte, GPS_DeviceMessage_t* message); -void GPS_Ack_ParseChar_NAK(uint8 byte, GPS_DeviceMessage_t* message); - - -#ifdef __cplusplus -} -#endif - -#endif /* _GPS_PARSER_UBX_CFG_H_ */ - -/************************/ -/* End of File Comment */ -/************************/ - diff --git a/config/ocpoc/s1000/target/apps/gps/src/gps_parser_ubx/gps_parser_ubx_cfg.c b/config/ocpoc/s1000/target/apps/gps/src/gps_parser_ubx/gps_parser_ubx_cfg.c deleted file mode 100644 index d1354ab0d..000000000 --- a/config/ocpoc/s1000/target/apps/gps/src/gps_parser_ubx/gps_parser_ubx_cfg.c +++ /dev/null @@ -1,912 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ -/************************************************************************* -** -** Include section -** -**************************************************************************/ - -#include "cfe.h" -#include "../gps_custom_shared.h" -//#include "GPS_events.h" -//#include "GPS_msgids.h" -#include "gps_parser_ubx_cfg.h" - -/************************************************************************* -** -** Macro definitions -** -**************************************************************************/ -#define GPS_PARSER_CFG_CFG_MSG_LENGTH1 (12) -#define GPS_PARSER_CFG_CFG_MSG_LENGTH2 (13) -#define GPS_PARSER_CFG_NAV5_MSG_LENGTH (36) -#define GPS_PARSER_CFG_SBAS_MSG_LENGTH (8) -#define GPS_PARSER_CFG_TMODE3_MSG_LENGTH (40) -#define GPS_PARSER_CFG_PRT_MSG_LENGTH (20) -#define GPS_PARSER_CFG_MSG_MSG_LENGTH1 (8) -#define GPS_PARSER_CFG_MSG_MSG_LENGTH2 (8) - -/************************************************************************* -** -** Type definitions -** -**************************************************************************/ - -/* -** (none) -*/ - -/************************************************************************* -** -** Imported data -** -**************************************************************************/ - -/* -** (none) -*/ - -/************************************************************************* -** -** Exported data -** -**************************************************************************/ - - - -/************************************************************************* -** -** File data -** -**************************************************************************/ - -/* -** (none) -*/ - -/************************************************************************* -** Local function prototypes -**************************************************************************/ -void GPS_Cfg_ParseChar_CFG(uint8 byte, GPS_DeviceMessage_t* message) -{ - if(GPS_AppCustomData.ParserStatus.MsgLength != GPS_PARSER_CFG_CFG_MSG_LENGTH1 || - GPS_PARSER_CFG_CFG_MSG_LENGTH2) - { - GPS_AppCustomData.ParserStatus.ParseError++; - CFE_EVS_SendEvent(GPS_INIT_DEVICE_PARSER_ERR_EID, CFE_EVS_ERROR, - "Received CFG message with incorrect length (%u).", GPS_AppCustomData.ParserStatus.MsgLength); - GPS_Parser_Reset(); - } - else - { - GPS_CFG_CFG_t *payload = (void*)CFE_SB_GetUserData((CFE_SB_MsgPtr_t)message); - switch(GPS_AppCustomData.ParserStatus.PayloadCursor) - { - case 0: - { - CFE_SB_MsgId_t sbMsgID = GPS_TranslateMsgID(GPS_AppCustomData.ParserStatus.ClassID, GPS_AppCustomData.ParserStatus.MsgID); - uint16 sbHdrSize = CFE_SB_MsgHdrSize(sbMsgID); - uint16 sbTotalMsgSize = sbHdrSize + GPS_AppCustomData.ParserStatus.MsgLength; - CFE_SB_InitMsg(message, sbMsgID, sbTotalMsgSize, TRUE); - - payload->clearMask = byte; - break; - } - case 1: - { - payload->clearMask += byte << 8; - break; - } - case 2: - { - payload->clearMask += byte << 16; - break; - } - case 3: - { - payload->clearMask += byte << 24; - break; - } - case 4: - { - payload->saveMask = byte; - break; - } - case 5: - { - payload->saveMask += byte << 8; - break; - } - case 6: - { - payload->saveMask += byte << 16; - break; - } - case 7: - { - payload->saveMask += byte << 24; - break; - } - case 8: - { - payload->loadMask = byte; - break; - } - case 9: - { - payload->loadMask += byte << 8; - break; - } - case 10: - { - payload->loadMask += byte << 16; - break; - } - case 11: - { - payload->loadMask += byte << 24; - if(GPS_AppCustomData.ParserStatus.MsgLength == GPS_PARSER_CFG_CFG_MSG_LENGTH1) - { - GPS_Parser_StateChange(GPS_PARSE_STATE_GOT_PAYLOAD); - } - break; - } - case 12: - { - payload->deviceMask = byte; - GPS_Parser_StateChange(GPS_PARSE_STATE_GOT_PAYLOAD); - break; - } - default: - { - GPS_Parser_Reset(); - return; - } - } - } -} - - -void GPS_Cfg_ParseChar_NAV5(uint8 byte, GPS_DeviceMessage_t* message) -{ - if(GPS_AppCustomData.ParserStatus.MsgLength != GPS_PARSER_CFG_NAV5_MSG_LENGTH) - { - GPS_AppCustomData.ParserStatus.ParseError++; - CFE_EVS_SendEvent(GPS_INIT_DEVICE_PARSER_ERR_EID, CFE_EVS_ERROR, - "Received NAV5 message with incorrect length (%u).", GPS_AppCustomData.ParserStatus.MsgLength); - GPS_Parser_Reset(); - } - else - { - GPS_CFG_NAV5_t *payload = (void*)CFE_SB_GetUserData((CFE_SB_MsgPtr_t)message); - switch(GPS_AppCustomData.ParserStatus.PayloadCursor) - { - case 0: - { - CFE_SB_MsgId_t sbMsgID = GPS_TranslateMsgID(GPS_AppCustomData.ParserStatus.ClassID, GPS_AppCustomData.ParserStatus.MsgID); - uint16 sbHdrSize = CFE_SB_MsgHdrSize(sbMsgID); - uint16 sbTotalMsgSize = sbHdrSize + GPS_AppCustomData.ParserStatus.MsgLength; - CFE_SB_InitMsg(message, sbMsgID, sbTotalMsgSize, TRUE); - - payload->mask = byte; - break; - } - case 1: - { - payload->mask += byte << 8; - break; - } - case 2: - { - payload->dynModel = byte; - break; - } - case 3: - { - payload->fixMode = byte; - break; - } - case 4: - { - payload->fixedAlt = byte; - break; - } - case 5: - { - payload->fixedAlt += byte << 8; - break; - } - case 6: - { - payload->fixedAlt += byte << 16; - break; - } - case 7: - { - payload->fixedAlt += byte << 24; - break; - } - case 8: - { - payload->fixedAltVar = byte; - break; - } - case 9: - { - payload->fixedAltVar += byte << 8; - break; - } - case 10: - { - payload->fixedAltVar += byte << 16; - break; - } - case 11: - { - payload->fixedAltVar += byte << 24; - break; - } - case 12: - { - payload->minElev = byte; - break; - } - case 13: - { - payload->drLimit = byte; - break; - } - case 14: - { - payload->pDop = byte; - break; - } - case 15: - { - payload->pDop += byte << 8; - break; - } - case 16: - { - payload->tDop = byte; - break; - } - case 17: - { - payload->tDop += byte << 8; - break; - } - case 18: - { - payload->pAcc = byte; - break; - } - case 19: - { - payload->pAcc += byte << 8; - break; - } - case 20: - { - payload->tAcc = byte; - break; - } - case 21: - { - payload->tAcc += byte << 8; - break; - } - case 22: - { - payload->staticHoldThresh = byte; - break; - } - case 23: - { - payload->dgnssTimeout = byte; - break; - } - case 24: - { - payload->cnoThreshNumSVs = byte; - break; - } - case 25: - { - payload->cnoThresh = byte; - break; - } - case 26: - { - payload->reserved1 = byte; - break; - } - case 27: - { - payload->reserved1 += byte << 8; - break; - } - case 28: - { - payload->staticHoldMaxDist = byte; - break; - } - case 29: - { - payload->staticHoldMaxDist += byte << 8; - break; - } - case 30: - { - payload->utcStandard = byte; - break; - } - case 31: - { - payload->reserved2 = byte; - break; - } - case 32: - { - payload->reserved3 = byte; - break; - } - case 33: - { - payload->reserved3 += byte << 8; - break; - } - case 34: - { - payload->reserved3 += byte << 16; - break; - } - case 35: - { - payload->reserved3 += byte << 24; - GPS_Parser_StateChange(GPS_PARSE_STATE_GOT_PAYLOAD); - break; - } - default: - { - GPS_Parser_Reset(); - return; - } - } - } -} - - -void GPS_Cfg_ParseChar_SBAS(uint8 byte, GPS_DeviceMessage_t* message) -{ - if(GPS_AppCustomData.ParserStatus.MsgLength != GPS_PARSER_CFG_SBAS_MSG_LENGTH) - { - GPS_AppCustomData.ParserStatus.ParseError++; - CFE_EVS_SendEvent(GPS_INIT_DEVICE_PARSER_ERR_EID, CFE_EVS_ERROR, - "Received NAV5 message with incorrect length (%u).", GPS_AppCustomData.ParserStatus.MsgLength); - GPS_Parser_Reset(); - } - else - { - GPS_CFG_SBAS_t *payload = (void*)CFE_SB_GetUserData((CFE_SB_MsgPtr_t)message); - switch(GPS_AppCustomData.ParserStatus.PayloadCursor) - { - case 0: - { - CFE_SB_MsgId_t sbMsgID = GPS_TranslateMsgID(GPS_AppCustomData.ParserStatus.ClassID, GPS_AppCustomData.ParserStatus.MsgID); - uint16 sbHdrSize = CFE_SB_MsgHdrSize(sbMsgID); - uint16 sbTotalMsgSize = sbHdrSize + GPS_AppCustomData.ParserStatus.MsgLength; - CFE_SB_InitMsg(message, sbMsgID, sbTotalMsgSize, TRUE); - - payload->mode = byte; - break; - } - case 1: - { - payload->usage = byte; - break; - } - case 2: - { - payload->maxSBAS = byte; - break; - } - case 3: - { - payload->scanmode2 = byte; - break; - } - case 4: - { - payload->scanmode1 = byte; - break; - } - case 5: - { - payload->scanmode1 += byte << 8; - break; - } - case 6: - { - payload->scanmode1 += byte << 16; - break; - } - case 7: - { - payload->scanmode1 += byte << 24; - GPS_Parser_StateChange(GPS_PARSE_STATE_GOT_PAYLOAD); - break; - } - default: - { - GPS_Parser_Reset(); - return; - } - } - } -} - - -void GPS_Cfg_ParseChar_TMODE3(uint8 byte, GPS_DeviceMessage_t* message) -{ - if(GPS_AppCustomData.ParserStatus.MsgLength != GPS_PARSER_CFG_SBAS_MSG_LENGTH) - { - GPS_AppCustomData.ParserStatus.ParseError++; - CFE_EVS_SendEvent(GPS_INIT_DEVICE_PARSER_ERR_EID, CFE_EVS_ERROR, - "Received NAV5 message with incorrect length (%u).", GPS_AppCustomData.ParserStatus.MsgLength); - GPS_Parser_Reset(); - } - else - { - GPS_CFG_TMODE3_t *payload = (void*)CFE_SB_GetUserData((CFE_SB_MsgPtr_t)message); - switch(GPS_AppCustomData.ParserStatus.PayloadCursor) - { - case 0: - { - CFE_SB_MsgId_t sbMsgID = GPS_TranslateMsgID(GPS_AppCustomData.ParserStatus.ClassID, GPS_AppCustomData.ParserStatus.MsgID); - uint16 sbHdrSize = CFE_SB_MsgHdrSize(sbMsgID); - uint16 sbTotalMsgSize = sbHdrSize + GPS_AppCustomData.ParserStatus.MsgLength; - CFE_SB_InitMsg(message, sbMsgID, sbTotalMsgSize, TRUE); - - payload->version = byte; - break; - } - case 1: - { - payload->reserved1 = byte; - break; - } - case 2: - { - payload->flags = byte; - break; - } - case 3: - { - payload->flags = byte << 8; - break; - } - case 4: - { - payload->ecefXOrLat = byte; - break; - } - case 5: - { - payload->ecefXOrLat += byte << 8; - break; - } - case 6: - { - payload->ecefXOrLat += byte << 16; - break; - } - case 7: - { - payload->ecefXOrLat += byte << 24; - break; - } - case 8: - { - payload->ecefYOrLon = byte; - break; - } - case 9: - { - payload->ecefYOrLon += byte << 8; - break; - } - case 10: - { - payload->ecefYOrLon += byte << 16; - break; - } - case 11: - { - payload->ecefYOrLon += byte << 24; - break; - } - case 12: - { - payload->ecefZOrAlt = byte; - break; - } - case 13: - { - payload->ecefZOrAlt += byte << 8; - break; - } - case 14: - { - payload->ecefZOrAlt += byte << 16; - break; - } - case 15: - { - payload->ecefZOrAlt += byte << 24; - break; - } - case 16: - { - payload->ecefXOrLatHP = byte; - break; - } - case 17: - { - payload->ecefYOrLonHP = byte; - break; - } - case 18: - { - payload->ecefZOrAltHP = byte; - break; - } - case 19: - { - payload->reserved2 = byte; - break; - } - case 20: - { - payload->fixedPosAcc = byte; - break; - } - case 21: - { - payload->fixedPosAcc += byte << 8; - break; - } - case 22: - { - payload->fixedPosAcc += byte << 16; - break; - } - case 23: - { - payload->fixedPosAcc += byte << 24; - break; - } - case 24: - { - payload->svinMinDur = byte; - break; - } - case 25: - { - payload->svinMinDur += byte << 8; - break; - } - case 26: - { - payload->svinMinDur += byte << 16; - break; - } - case 27: - { - payload->svinMinDur += byte << 24; - break; - } - case 28: - { - payload->svinAccLimit = byte; - break; - } - case 29: - { - payload->svinAccLimit += byte << 8; - break; - } - case 30: - { - payload->svinAccLimit += byte << 16; - break; - } - case 31: - { - payload->svinAccLimit += byte << 24; - break; - } - case 32: - { - payload->reserved3[0] = byte; - break; - } - case 33: - { - payload->reserved3[1] = byte; - break; - } - case 34: - { - payload->reserved3[2] = byte; - break; - } - case 35: - { - payload->reserved3[3] = byte; - break; - } - case 36: - { - payload->reserved3[4] = byte; - break; - } - case 37: - { - payload->reserved3[5] = byte; - break; - } - case 38: - { - payload->reserved3[6] = byte; - break; - } - case 39: - { - payload->reserved3[7] = byte; - GPS_Parser_StateChange(GPS_PARSE_STATE_GOT_PAYLOAD); - break; - } - default: - { - GPS_Parser_Reset(); - return; - } - } - } -} - - -void GPS_Cfg_ParseChar_PRT(uint8 byte, GPS_DeviceMessage_t* message) -{ - if(GPS_AppCustomData.ParserStatus.MsgLength != GPS_PARSER_CFG_SBAS_MSG_LENGTH) - { - GPS_AppCustomData.ParserStatus.ParseError++; - CFE_EVS_SendEvent(GPS_INIT_DEVICE_PARSER_ERR_EID, CFE_EVS_ERROR, - "Received NAV5 message with incorrect length (%u).", GPS_AppCustomData.ParserStatus.MsgLength); - GPS_Parser_Reset(); - } - else - { - GPS_CFG_PRT_t *payload = (void*)CFE_SB_GetUserData((CFE_SB_MsgPtr_t)message); - switch(GPS_AppCustomData.ParserStatus.PayloadCursor) - { - case 0: - { - CFE_SB_MsgId_t sbMsgID = GPS_TranslateMsgID(GPS_AppCustomData.ParserStatus.ClassID, GPS_AppCustomData.ParserStatus.MsgID); - uint16 sbHdrSize = CFE_SB_MsgHdrSize(sbMsgID); - uint16 sbTotalMsgSize = sbHdrSize + GPS_AppCustomData.ParserStatus.MsgLength; - CFE_SB_InitMsg(message, sbMsgID, sbTotalMsgSize, TRUE); - - payload->portID = byte; - break; - } - case 1: - { - payload->reserved1 = byte; - break; - } - case 2: - { - payload->txReady = byte; - break; - } - case 3: - { - payload->txReady = byte << 8; - break; - } - case 4: - { - payload->mode = byte; - break; - } - case 5: - { - payload->mode += byte << 8; - break; - } - case 6: - { - payload->mode += byte << 16; - break; - } - case 7: - { - payload->mode += byte << 24; - break; - } - case 8: - { - payload->baudRate = byte; - break; - } - case 9: - { - payload->baudRate += byte << 8; - break; - } - case 10: - { - payload->baudRate += byte << 16; - break; - } - case 11: - { - payload->baudRate += byte << 24; - break; - } - case 12: - { - payload->inProtoMask = byte; - break; - } - case 13: - { - payload->inProtoMask += byte << 8; - break; - } - case 14: - { - payload->outProtoMask = byte; - break; - } - case 15: - { - payload->outProtoMask += byte << 8; - break; - } - case 16: - { - payload->flags = byte; - break; - } - case 17: - { - payload->flags += byte << 8; - break; - } - case 18: - { - payload->reserved2 = byte; - break; - } - case 19: - { - payload->reserved2 += byte << 8; - GPS_Parser_StateChange(GPS_PARSE_STATE_GOT_PAYLOAD); - break; - } - default: - { - GPS_Parser_Reset(); - return; - } - } - } -} - - -void GPS_Cfg_ParseChar_MSG(uint8 byte, GPS_DeviceMessage_t* message) -{ - if(GPS_AppCustomData.ParserStatus.MsgLength != GPS_PARSER_CFG_SBAS_MSG_LENGTH) - { - GPS_AppCustomData.ParserStatus.ParseError++; - CFE_EVS_SendEvent(GPS_INIT_DEVICE_PARSER_ERR_EID, CFE_EVS_ERROR, - "Received NAV5 message with incorrect length (%u).", GPS_AppCustomData.ParserStatus.MsgLength); - GPS_Parser_Reset(); - } - else - { - GPS_CFG_MSG_t *payload = (void*)CFE_SB_GetUserData((CFE_SB_MsgPtr_t)message); - switch(GPS_AppCustomData.ParserStatus.PayloadCursor) - { - case 0: - { - CFE_SB_MsgId_t sbMsgID = GPS_TranslateMsgID(GPS_AppCustomData.ParserStatus.ClassID, GPS_AppCustomData.ParserStatus.MsgID); - uint16 sbHdrSize = CFE_SB_MsgHdrSize(sbMsgID); - uint16 sbTotalMsgSize = sbHdrSize + GPS_AppCustomData.ParserStatus.MsgLength; - CFE_SB_InitMsg(message, sbMsgID, sbTotalMsgSize, TRUE); - - payload->msgClass = byte; - break; - } - case 1: - { - payload->msgID = byte; - break; - } - case 2: - { - payload->rate[0] = byte; - break; - } - case 3: - { - payload->rate[1] = byte; - break; - } - case 4: - { - payload->rate[2] = byte; - break; - } - case 5: - { - payload->rate[3] = byte; - break; - } - case 6: - { - payload->rate[4] = byte; - break; - } - case 7: - { - payload->rate[5] = byte; - GPS_Parser_StateChange(GPS_PARSE_STATE_GOT_PAYLOAD); - break; - } - default: - { - GPS_Parser_Reset(); - return; - } - } - } -} - -/************************/ -/* End of File Comment */ -/************************/ - diff --git a/config/ocpoc/s1000/target/apps/gps/src/gps_parser_ubx/gps_parser_ubx_cfg.h b/config/ocpoc/s1000/target/apps/gps/src/gps_parser_ubx/gps_parser_ubx_cfg.h deleted file mode 100644 index 89ff7120e..000000000 --- a/config/ocpoc/s1000/target/apps/gps/src/gps_parser_ubx/gps_parser_ubx_cfg.h +++ /dev/null @@ -1,103 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ -/************************************************************************* -** -** Include section -** -**************************************************************************/ -#ifndef _GPS_PARSER_UBX_CFG_H_ -#define _GPS_PARSER_UBX_CFG_H_ - -#ifdef __cplusplus -extern "C" { -#endif - -#include "cfe.h" -#include "../gps_custom_shared.h" -//#include "GPS_events.h" -//#include "GPS_msgids.h" -#include "gps_parser_ubx_common.h" -#include "gps_ubx_msg.h" - - -/************************************************************************* -** -** Macro definitions -** -**************************************************************************/ - - -/************************************************************************* -** -** Type definitions -** -**************************************************************************/ - -/* -** (none) -*/ - -/************************************************************************* -** -** Imported data -** -**************************************************************************/ - -/* -** (none) -*/ - -/************************************************************************* -** -** Exported data -** -**************************************************************************/ - - -void GPS_Cfg_ParseChar_CFG(uint8 byte, GPS_DeviceMessage_t* message); -void GPS_Cfg_ParseChar_NAV5(uint8 byte, GPS_DeviceMessage_t* message); -void GPS_Cfg_ParseChar_SBAS(uint8 byte, GPS_DeviceMessage_t* message); -void GPS_Cfg_ParseChar_TMODE3(uint8 byte, GPS_DeviceMessage_t* message); -void GPS_Cfg_ParseChar_PRT(uint8 byte, GPS_DeviceMessage_t* message); -void GPS_Cfg_ParseChar_MSG(uint8 byte, GPS_DeviceMessage_t* message); - -#ifdef __cplusplus -} -#endif - -#endif /* _GPS_PARSER_UBX_CFG_H_ */ - -/************************/ -/* End of File Comment */ -/************************/ - diff --git a/config/ocpoc/s1000/target/apps/gps/src/gps_parser_ubx/gps_parser_ubx_common.c b/config/ocpoc/s1000/target/apps/gps/src/gps_parser_ubx/gps_parser_ubx_common.c deleted file mode 100644 index d8bf3595d..000000000 --- a/config/ocpoc/s1000/target/apps/gps/src/gps_parser_ubx/gps_parser_ubx_common.c +++ /dev/null @@ -1,1608 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ - -/************************************************************************ -** Includes -*************************************************************************/ -#include "cfe.h" -#include "gps_parser_ubx_common.h" -#include "msg_ids.h" -//#include "GPS_events.h" -//#include "GPS_msgids.h" - - -/************************************************************************ -** Local Defines -*************************************************************************/ - -/************************************************************************ -** Structure Declarations -*************************************************************************/ - -/************************************************************************* -** Local function prototypes -**************************************************************************/ - -void GPS_SetChecksum(uint8 *Buffer, uint16 Size) -{ - uint8 ckA = 0; - uint8 ckB = 0; - uint16 i = 0; - - for(i = 2; i < (Size-2); ++i) - { - ckA = ckA + Buffer[i]; - ckB = ckB + ckA; - } - - Buffer[Size-2] = ckA; - Buffer[Size-1] = ckB; -} - - -void GPS_Parser_Reset() -{ - GPS_AppCustomData.ParserStatus.ParseState = GPS_PARSE_STATE_IDLE; -} - - -void GPS_Parser_StateChange(GPS_ParserState_t newState) -{ - switch(newState) - { - case GPS_PARSE_STATE_UNINIT: - { - break; - } - - case GPS_PARSE_STATE_IDLE: - { - break; - } - - case GPS_PARSE_STATE_GOT_SYNC1: - { - break; - } - - case GPS_PARSE_STATE_GOT_SYNC2: - { - break; - } - - case GPS_PARSE_STATE_GOT_CLASS: - { - break; - } - - case GPS_PARSE_STATE_GOT_ID: - { - break; - } - - case GPS_PARSE_STATE_GOT_LENGTH1: - { - break; - } - - case GPS_PARSE_STATE_GOT_LENGTH2: - { - GPS_AppCustomData.ParserStatus.PayloadCursor = 0; - break; - } - - case GPS_PARSE_STATE_GOT_PAYLOAD: - { - break; - } - - case GPS_PARSE_STATE_GOT_CHECKSUMA: - { - break; - } - - case GPS_PARSE_STATE_GOT_CHECKSUMB: - { - break; - } - - default: - { - break; - } - } - - GPS_AppCustomData.ParserStatus.ParseState = newState; -} - - -uint16 GPS_ParseChar(uint8 byte, GPS_DeviceMessage_t* message, boolean *done) -{ - uint16 msg_received = 0; - - switch(GPS_AppCustomData.ParserStatus.ParseState) - { - - case GPS_PARSE_STATE_UNINIT: - { - GPS_AppCustomData.ParserStatus.ParseError++; - CFE_EVS_SendEvent(GPS_INIT_DEVICE_PARSER_ERR_EID, CFE_EVS_ERROR, - "Parser not initialized"); - break; - } - - case GPS_PARSE_STATE_IDLE: - { - if(byte == GPS_PARSER_SYNC1_VALUE) - { - GPS_Parser_StateChange(GPS_PARSE_STATE_GOT_SYNC1); - } - else if(byte == 0xff) - { - *done = TRUE; - } - else - { - //GPS_AppCustomData.ParserStatus.ParseError++; - //CFE_EVS_SendEvent(GPS_INIT_DEVICE_PARSER_ERR_EID, CFE_EVS_ERROR, - // "Received unexpected byte (0x%.2x) in IDLE state.", byte); - } - break; - } - - case GPS_PARSE_STATE_GOT_SYNC1: - { - if(byte == GPS_PARSER_SYNC2_VALUE) - { - GPS_Parser_StateChange(GPS_PARSE_STATE_GOT_SYNC2); - } - else - { - GPS_AppCustomData.ParserStatus.ParseError++; - CFE_EVS_SendEvent(GPS_INIT_DEVICE_PARSER_ERR_EID, CFE_EVS_ERROR, - "Received unexpected byte (0x%.2x) in GOT_SYNC1 state", byte); - GPS_Parser_Reset(); - } - break; - } - - case GPS_PARSE_STATE_GOT_SYNC2: - { - switch(byte) - { - case GPS_PARSER_CLASS_NAV_VALUE: - /* Fall through */ - case GPS_PARSER_CLASS_RXM_VALUE: - /* Fall through */ - case GPS_PARSER_CLASS_INF_VALUE: - /* Fall through */ - case GPS_PARSER_CLASS_ACK_VALUE: - /* Fall through */ - case GPS_PARSER_CLASS_CFG_VALUE: - /* Fall through */ - case GPS_PARSER_CLASS_UPD_VALUE: - /* Fall through */ - case GPS_PARSER_CLASS_MON_VALUE: - /* Fall through */ - case GPS_PARSER_CLASS_AID_VALUE: - /* Fall through */ - case GPS_PARSER_CLASS_TIM_VALUE: - /* Fall through */ - case GPS_PARSER_CLASS_ESF_VALUE: - /* Fall through */ - case GPS_PARSER_CLASS_MGA_VALUE: - /* Fall through */ - case GPS_PARSER_CLASS_LOG_VALUE: - /* Fall through */ - case GPS_PARSER_CLASS_SEC_VALUE: - /* Fall through */ - case GPS_PARSER_CLASS_HNR_VALUE: - { - GPS_AppCustomData.ParserStatus.ClassID = byte; - GPS_Parser_StateChange(GPS_PARSE_STATE_GOT_CLASS); - break; - } - - default: - { - GPS_AppCustomData.ParserStatus.ParseError++; - CFE_EVS_SendEvent(GPS_INIT_DEVICE_PARSER_ERR_EID, CFE_EVS_ERROR, - "Received message with unexpected class ID (0x%.2x)", byte); - GPS_Parser_Reset(); - } - } - break; - } - - case GPS_PARSE_STATE_GOT_CLASS: - { - switch(GPS_AppCustomData.ParserStatus.ClassID) - { - case GPS_PARSER_CLASS_NAV_VALUE: - { - switch(byte) - { - case GPS_PARSER_NAV_POSECEF_ID_VALUE: - /* Fall through */ - case GPS_PARSER_NAV_POSLLH_ID_VALUE: - /* Fall through */ - case GPS_PARSER_NAV_STATUS_ID_VALUE: - /* Fall through */ - case GPS_PARSER_NAV_DOP_ID_VALUE: - /* Fall through */ - case GPS_PARSER_NAV_ATT_ID_VALUE: - /* Fall through */ - case GPS_PARSER_NAV_SOL_ID_VALUE: - /* Fall through */ - case GPS_PARSER_NAV_NAVPVT_ID_VALUE: - /* Fall through */ - case GPS_PARSER_NAV_ODO_ID_VALUE: - /* Fall through */ - case GPS_PARSER_NAV_RESETODO_ID_VALUE: - /* Fall through */ - case GPS_PARSER_NAV_VELECEF_ID_VALUE: - /* Fall through */ - case GPS_PARSER_NAV_VELNED_ID_VALUE: - /* Fall through */ - case GPS_PARSER_NAV_TIMEGPS_ID_VALUE: - /* Fall through */ - case GPS_PARSER_NAV_TIMEUTC_ID_VALUE: - /* Fall through */ - case GPS_PARSER_NAV_CLOCK_ID_VALUE: - /* Fall through */ - case GPS_PARSER_NAV_TIMEGLO_ID_VALUE: - /* Fall through */ - case GPS_PARSER_NAV_TIMEBDS_ID_VALUE: - /* Fall through */ - case GPS_PARSER_NAV_TIMEGAL_ID_VALUE: - /* Fall through */ - case GPS_PARSER_NAV_TIMELS_ID_VALUE: - /* Fall through */ - case GPS_PARSER_NAV_SVINFO_ID_VALUE: - /* Fall through */ - case GPS_PARSER_NAV_DGPS_ID_VALUE: - /* Fall through */ - case GPS_PARSER_NAV_SBAS_ID_VALUE: - /* Fall through */ - case GPS_PARSER_NAV_ORB_ID_VALUE: - /* Fall through */ - case GPS_PARSER_NAV_NAVSAT_ID_VALUE: - /* Fall through */ - case GPS_PARSER_NAV_GEOFENCE_ID_VALUE: - /* Fall through */ - case GPS_PARSER_NAV_AOPSTATUS_ID_VALUE: - /* Fall through */ - case GPS_PARSER_NAV_EOE_ID_VALUE: - { - GPS_AppCustomData.ParserStatus.MsgID = byte; - GPS_Parser_StateChange(GPS_PARSE_STATE_GOT_ID); - break; - } - - default: - { - GPS_AppCustomData.ParserStatus.ParseError++; - CFE_EVS_SendEvent(GPS_INIT_DEVICE_PARSER_ERR_EID, CFE_EVS_ERROR, - "Received message with unexpected message ID (0x%.2x) for NAV class.", byte); - GPS_Parser_Reset(); - } - } - break; - } - - case GPS_PARSER_CLASS_RXM_VALUE: - { - switch(byte) - { - case GPS_PARSER_RXM_SFRBX_ID_VALUE: - /* Fall through */ - case GPS_PARSER_RXM_MEASX_ID_VALUE: - /* Fall through */ - case GPS_PARSER_RXM_RAWX_ID_VALUE: - /* Fall through */ - case GPS_PARSER_RXM_SVSI_ID_VALUE: - /* Fall through */ - case GPS_PARSER_RXM_PMREQ_ID_VALUE: - /* Fall through */ - case GPS_PARSER_RXM_RLM_ID_VALUE: - /* Fall through */ - case GPS_PARSER_RXM_IMES_ID_VALUE: - { - GPS_AppCustomData.ParserStatus.MsgID = byte; - GPS_Parser_StateChange(GPS_PARSE_STATE_GOT_ID); - break; - } - - default: - { - GPS_AppCustomData.ParserStatus.ParseError++; - CFE_EVS_SendEvent(GPS_INIT_DEVICE_PARSER_ERR_EID, CFE_EVS_ERROR, - "Received message with unexpected message ID (0x%.2x) for RXM class.", byte); - GPS_Parser_Reset(); - } - } - } - - case GPS_PARSER_CLASS_INF_VALUE: - { - switch(byte) - { - case GPS_PARSER_INF_ERROR_ID_VALUE: - /* Fall through */ - case GPS_PARSER_INF_WARNING_ID_VALUE: - /* Fall through */ - case GPS_PARSER_INF_NOTICE_ID_VALUE: - /* Fall through */ - case GPS_PARSER_INF_TEST_ID_VALUE: - /* Fall through */ - case GPS_PARSER_INF_DEBUG_ID_VALUE: - { - GPS_AppCustomData.ParserStatus.MsgID = byte; - GPS_Parser_StateChange(GPS_PARSE_STATE_GOT_ID); - break; - } - - default: - { - GPS_AppCustomData.ParserStatus.ParseError++; - CFE_EVS_SendEvent(GPS_INIT_DEVICE_PARSER_ERR_EID, CFE_EVS_ERROR, - "Received message with unexpected message ID (0x%.2x) for INF class.", byte); - GPS_Parser_Reset(); - } - } - break; - } - - case GPS_PARSER_CLASS_ACK_VALUE: - { - switch(byte) - { - case GPS_PARSER_ACK_NAK_ID_VALUE: - { - GPS_AppCustomData.ParserStatus.MsgID = byte; - GPS_Parser_StateChange(GPS_PARSE_STATE_GOT_ID); - break; - } - case GPS_PARSER_ACK_ACK_ID_VALUE: - { - GPS_AppCustomData.ParserStatus.MsgID = byte; - GPS_Parser_StateChange(GPS_PARSE_STATE_GOT_ID); - break; - } - - default: - { - GPS_AppCustomData.ParserStatus.ParseError++; - CFE_EVS_SendEvent(GPS_INIT_DEVICE_PARSER_ERR_EID, CFE_EVS_ERROR, - "Received message with unexpected message ID (0x%.2x) for ACK class.", byte); - GPS_Parser_Reset(); - } - } - break; - } - - case GPS_PARSER_CLASS_CFG_VALUE: - { - switch(byte) - { - case GPS_PARSER_CFG_PRT_ID_VALUE: - /* Fall through */ - case GPS_PARSER_CFG_MSG_ID_VALUE: - /* Fall through */ - case GPS_PARSER_CFG_INF_ID_VALUE: - /* Fall through */ - case GPS_PARSER_CFG_RST_ID_VALUE: - /* Fall through */ - case GPS_PARSER_CFG_DAT_ID_VALUE: - /* Fall through */ - case GPS_PARSER_CFG_RATE_ID_VALUE: - /* Fall through */ - case GPS_PARSER_CFG_CFG_ID_VALUE: - /* Fall through */ - case GPS_PARSER_CFG_RXM_ID_VALUE: - /* Fall through */ - case GPS_PARSER_CFG_ANT_ID_VALUE: - /* Fall through */ - case GPS_PARSER_CFG_SBAS_ID_VALUE: - /* Fall through */ - case GPS_PARSER_CFG_NMEA_ID_VALUE: - /* Fall through */ - case GPS_PARSER_CFG_USB_ID_VALUE: - /* Fall through */ - case GPS_PARSER_CFG_ODO_ID_VALUE: - /* Fall through */ - case GPS_PARSER_CFG_NAVX5_ID_VALUE: - /* Fall through */ - case GPS_PARSER_CFG_NAV5_ID_VALUE: - /* Fall through */ - case GPS_PARSER_CFG_TP5_ID_VALUE: - /* Fall through */ - case GPS_PARSER_CFG_RINV_ID_VALUE: - /* Fall through */ - case GPS_PARSER_CFG_ITFM_ID_VALUE: - /* Fall through */ - case GPS_PARSER_CFG_PM2_ID_VALUE: - /* Fall through */ - case GPS_PARSER_CFG_TMOD2_ID_VALUE: - /* Fall through */ - case GPS_PARSER_CFG_GNSS_ID_VALUE: - /* Fall through */ - case GPS_PARSER_CFG_LOGFILTER_ID_VALUE: - /* Fall through */ - case GPS_PARSER_CFG_PWR_ID_VALUE: - /* Fall through */ - case GPS_PARSER_CFG_TXSLOT_ID_VALUE: - /* Fall through */ - case GPS_PARSER_CFG_HNR_ID_VALUE: - /* Fall through */ - case GPS_PARSER_CFG_ESRC_ID_VALUE: - /* Fall through */ - case GPS_PARSER_CFG_DOSC_ID_VALUE: - /* Fall through */ - case GPS_PARSER_CFG_SMGR_ID_VALUE: - /* Fall through */ - case GPS_PARSER_CFG_GEOFENCE_ID_VALUE: - /* Fall through */ - case GPS_PARSER_CFG_FIXSEED_ID_VALUE: - /* Fall through */ - case GPS_PARSER_CFG_DYNSEED_ID_VALUE: - /* Fall through */ - case GPS_PARSER_CFG_PMS_ID_VALUE: - { - GPS_AppCustomData.ParserStatus.MsgID = byte; - GPS_Parser_StateChange(GPS_PARSE_STATE_GOT_ID); - break; - } - - default: - { - GPS_AppCustomData.ParserStatus.ParseError++; - CFE_EVS_SendEvent(GPS_INIT_DEVICE_PARSER_ERR_EID, CFE_EVS_ERROR, - "Received message with unexpected message ID (0x%.2x) for CFG class.", byte); - GPS_Parser_Reset(); - } - } - break; - } - - case GPS_PARSER_CLASS_UPD_VALUE: - { - switch(byte) - { - case GPS_PARSER_UPD_SOS_ID_VALUE: - { - GPS_AppCustomData.ParserStatus.MsgID = byte; - GPS_Parser_StateChange(GPS_PARSE_STATE_GOT_ID); - break; - } - - default: - { - GPS_AppCustomData.ParserStatus.ParseError++; - CFE_EVS_SendEvent(GPS_INIT_DEVICE_PARSER_ERR_EID, CFE_EVS_ERROR, - "Received message with unexpected message ID (0x%.2x) for UPD class.", byte); - GPS_Parser_Reset(); - } - } - break; - } - - case GPS_PARSER_CLASS_MON_VALUE: - { - switch(byte) - { - case GPS_PARSER_MON_IO_ID_VALUE: - /* Fall through */ - case GPS_PARSER_MON_VER_ID_VALUE: - /* Fall through */ - case GPS_PARSER_MON_MSGPP_ID_VALUE: - /* Fall through */ - case GPS_PARSER_MON_RXBUF_ID_VALUE: - /* Fall through */ - case GPS_PARSER_MON_TXBUF_ID_VALUE: - /* Fall through */ - case GPS_PARSER_MON_HW_ID_VALUE: - /* Fall through */ - case GPS_PARSER_MON_HW2_ID_VALUE: - /* Fall through */ - case GPS_PARSER_MON_RXR_ID_VALUE: - /* Fall through */ - case GPS_PARSER_MON_PATCH_ID_VALUE: - /* Fall through */ - case GPS_PARSER_MON_GNSS_ID_VALUE: - /* Fall through */ - case GPS_PARSER_MON_SMGR_ID_VALUE: - { - GPS_AppCustomData.ParserStatus.MsgID = byte; - GPS_Parser_StateChange(GPS_PARSE_STATE_GOT_ID); - break; - } - - default: - { - GPS_AppCustomData.ParserStatus.ParseError++; - CFE_EVS_SendEvent(GPS_INIT_DEVICE_PARSER_ERR_EID, CFE_EVS_ERROR, - "Received message with unexpected message ID (0x%.2x) for MON class.", byte); - GPS_Parser_Reset(); - } - } - break; - } - - case GPS_PARSER_CLASS_AID_VALUE: - { - switch(byte) - { - case GPS_PARSER_AID_INI_ID_VALUE: - /* Fall through */ - case GPS_PARSER_AID_HUI_ID_VALUE: - /* Fall through */ - case GPS_PARSER_AID_ALM_ID_VALUE: - /* Fall through */ - case GPS_PARSER_AID_EPH_ID_VALUE: - /* Fall through */ - case GPS_PARSER_AID_AOP_ID_VALUE: - { - GPS_AppCustomData.ParserStatus.MsgID = byte; - GPS_Parser_StateChange(GPS_PARSE_STATE_GOT_ID); - break; - } - - default: - { - GPS_AppCustomData.ParserStatus.ParseError++; - CFE_EVS_SendEvent(GPS_INIT_DEVICE_PARSER_ERR_EID, CFE_EVS_ERROR, - "Received message with unexpected message ID (0x%.2x) for AID class.", byte); - GPS_Parser_Reset(); - } - } - break; - } - - case GPS_PARSER_CLASS_TIM_VALUE: - { - switch(byte) - { - case GPS_PARSER_TIM_TP_ID_VALUE: - /* Fall through */ - case GPS_PARSER_TIM_TM2_ID_VALUE: - /* Fall through */ - case GPS_PARSER_TIM_SVIN_ID_VALUE: - /* Fall through */ - case GPS_PARSER_TIM_VRFY_ID_VALUE: - /* Fall through */ - case GPS_PARSER_TIM_DOSC_ID_VALUE: - /* Fall through */ - case GPS_PARSER_TIM_TOS_ID_VALUE: - /* Fall through */ - case GPS_PARSER_TIM_SMEAS_ID_VALUE: - /* Fall through */ - case GPS_PARSER_TIM_VCOCAL_ID_VALUE: - /* Fall through */ - case GPS_PARSER_TIM_FCHG_ID_VALUE: - /* Fall through */ - case GPS_PARSER_TIM_HOC_ID_VALUE: - { - GPS_AppCustomData.ParserStatus.MsgID = byte; - GPS_Parser_StateChange(GPS_PARSE_STATE_GOT_ID); - break; - } - - default: - { - GPS_AppCustomData.ParserStatus.ParseError++; - CFE_EVS_SendEvent(GPS_INIT_DEVICE_PARSER_ERR_EID, CFE_EVS_ERROR, - "Received message with unexpected message ID (0x%.2x) for TIM class.", byte); - GPS_Parser_Reset(); - } - } - break; - } - - case GPS_PARSER_CLASS_ESF_VALUE: - { - switch(byte) - { - case GPS_PARSER_ESF_MEAS_ID_VALUE: - /* Fall through */ - case GPS_PARSER_ESF_RAW_ID_VALUE: - /* Fall through */ - case GPS_PARSER_ESF_INS_ID_VALUE: - /* Fall through */ - case GPS_PARSER_ESF_STATUS_ID_VALUE: - { - GPS_AppCustomData.ParserStatus.MsgID = byte; - GPS_Parser_StateChange(GPS_PARSE_STATE_GOT_ID); - break; - } - - default: - { - GPS_AppCustomData.ParserStatus.ParseError++; - CFE_EVS_SendEvent(GPS_INIT_DEVICE_PARSER_ERR_EID, CFE_EVS_ERROR, - "Received message with unexpected message ID (0x%.2x) for ESF class.", byte); - GPS_Parser_Reset(); - } - } - break; - } - - case GPS_PARSER_CLASS_MGA_VALUE: - { - switch(byte) - { - case GPS_PARSER_MGA_GPS_ID_VALUE: - /* Fall through */ - case GPS_PARSER_MGA_GAL_ID_VALUE: - /* Fall through */ - case GPS_PARSER_MGA_BDS_ID_VALUE: - /* Fall through */ - case GPS_PARSER_MGA_QZSS_ID_VALUE: - /* Fall through */ - case GPS_PARSER_MGA_GLO_ID_VALUE: - /* Fall through */ - case GPS_PARSER_MGA_ANO_ID_VALUE: - /* Fall through */ - case GPS_PARSER_MGA_FLASH_ID_VALUE: - /* Fall through */ - case GPS_PARSER_MGA_INI_XYZ_ID_VALUE: - /* Fall through */ - case GPS_PARSER_MGA_ACK_DATA0_ID_VALUE: - /* Fall through */ - case GPS_PARSER_MGA_DBD_ID_VALUE: - { - GPS_AppCustomData.ParserStatus.MsgID = byte; - GPS_Parser_StateChange(GPS_PARSE_STATE_GOT_ID); - break; - } - - default: - { - GPS_AppCustomData.ParserStatus.ParseError++; - CFE_EVS_SendEvent(GPS_INIT_DEVICE_PARSER_ERR_EID, CFE_EVS_ERROR, - "Received message with unexpected message ID (0x%.2x) for MGA class.", byte); - GPS_Parser_Reset(); - } - } - break; - } - - case GPS_PARSER_CLASS_LOG_VALUE: - { - switch(byte) - { - case GPS_PARSER_LOG_ERASE_ID_VALUE: - /* Fall through */ - case GPS_PARSER_LOG_STRING_ID_VALUE: - /* Fall through */ - case GPS_PARSER_LOG_CREATE_ID_VALUE: - /* Fall through */ - case GPS_PARSER_LOG_INFO_ID_VALUE: - /* Fall through */ - case GPS_PARSER_LOG_RETRIEVE_ID_VALUE: - /* Fall through */ - case GPS_PARSER_LOG_RETRIEVEPOS_ID_VALUE: - /* Fall through */ - case GPS_PARSER_LOG_RETRIEVESTRING_ID_VALUE: - /* Fall through */ - case GPS_PARSER_LOG_FINDTIME_ID_VALUE: - /* Fall through */ - case GPS_PARSER_LOG_RETRIEVEPOSEXTRA_ID_VALUE: - { - GPS_AppCustomData.ParserStatus.MsgID = byte; - GPS_Parser_StateChange(GPS_PARSE_STATE_GOT_ID); - break; - } - - default: - { - GPS_AppCustomData.ParserStatus.ParseError++; - CFE_EVS_SendEvent(GPS_INIT_DEVICE_PARSER_ERR_EID, CFE_EVS_ERROR, - "Received message with unexpected message ID (0x%.2x) for LOG class.", byte); - GPS_Parser_Reset(); - } - } - break; - } - - case GPS_PARSER_CLASS_SEC_VALUE: - { - switch(byte) - { - case GPS_PARSER_SEC_SIGN_ID_VALUE: - /* Fall through */ - case GPS_PARSER_SEC_UNIQID_ID_VALUE: - { - GPS_AppCustomData.ParserStatus.MsgID = byte; - GPS_Parser_StateChange(GPS_PARSE_STATE_GOT_ID); - break; - } - - default: - { - GPS_AppCustomData.ParserStatus.ParseError++; - CFE_EVS_SendEvent(GPS_INIT_DEVICE_PARSER_ERR_EID, CFE_EVS_ERROR, - "Received message with unexpected message ID (0x%.2x) for SEC class.", byte); - GPS_Parser_Reset(); - } - } - break; - } - - case GPS_PARSER_CLASS_HNR_VALUE: - { - switch(byte) - { - case GPS_PARSER_HNR_PVT_ID_VALUE: - { - GPS_AppCustomData.ParserStatus.MsgID = byte; - GPS_Parser_StateChange(GPS_PARSE_STATE_GOT_ID); - break; - } - - default: - { - GPS_AppCustomData.ParserStatus.ParseError++; - CFE_EVS_SendEvent(GPS_INIT_DEVICE_PARSER_ERR_EID, CFE_EVS_ERROR, - "Received message with unexpected message ID (0x%.2x) for HNR class.", byte); - GPS_Parser_Reset(); - } - } - break; - } - - default: - { - GPS_AppCustomData.ParserStatus.ParseError++; - CFE_EVS_SendEvent(GPS_INIT_DEVICE_PARSER_ERR_EID, CFE_EVS_ERROR, - "Received message with unexpected class ID (0x%.2x)", byte); - GPS_Parser_Reset(); - } - } - break; - } - - case GPS_PARSE_STATE_GOT_ID: - { - GPS_AppCustomData.ParserStatus.MsgLength = byte; - GPS_Parser_StateChange(GPS_PARSE_STATE_GOT_LENGTH1); - break; - } - - case GPS_PARSE_STATE_GOT_LENGTH1: - { - GPS_AppCustomData.ParserStatus.MsgLength += byte << 8; - GPS_Parser_StateChange(GPS_PARSE_STATE_GOT_LENGTH2); - break; - } - - case GPS_PARSE_STATE_GOT_LENGTH2: - { - switch(GPS_AppCustomData.ParserStatus.ClassID) - { - case GPS_PARSER_CLASS_NAV_VALUE: - { - switch(GPS_AppCustomData.ParserStatus.MsgID) - { - case GPS_PARSER_NAV_POSECEF_ID_VALUE: - { - GPS_Nav_ParseChar_POSECEF(byte, message); - GPS_AppCustomData.ParserStatus.PayloadCursor++; - break; - } - - case GPS_PARSER_NAV_POSLLH_ID_VALUE: - { - GPS_Nav_ParseChar_POSLLH(byte, message); - GPS_AppCustomData.ParserStatus.PayloadCursor++; - break; - } - - case GPS_PARSER_NAV_STATUS_ID_VALUE: - { - GPS_Nav_ParseChar_STATUS(byte, message); - GPS_AppCustomData.ParserStatus.PayloadCursor++; - break; - } - - case GPS_PARSER_NAV_DOP_ID_VALUE: - { - GPS_Nav_ParseChar_DOP(byte, message); - GPS_AppCustomData.ParserStatus.PayloadCursor++; - break; - } - - case GPS_PARSER_NAV_ATT_ID_VALUE: - { - GPS_Nav_ParseChar_ATT(byte, message); - GPS_AppCustomData.ParserStatus.PayloadCursor++; - break; - } - - case GPS_PARSER_NAV_SOL_ID_VALUE: - { - GPS_Nav_ParseChar_SOL(byte, message); - GPS_AppCustomData.ParserStatus.PayloadCursor++; - break; - } - - case GPS_PARSER_NAV_NAVPVT_ID_VALUE: - { - GPS_Nav_ParseChar_PVT(byte, message); - GPS_AppCustomData.ParserStatus.PayloadCursor++; - break; - } - - case GPS_PARSER_NAV_ODO_ID_VALUE: - { - GPS_Nav_ParseChar_ODO(byte, message); - GPS_AppCustomData.ParserStatus.PayloadCursor++; - break; - } - - case GPS_PARSER_NAV_RESETODO_ID_VALUE: - { - GPS_Nav_ParseChar_RESETODO(byte, message); - GPS_AppCustomData.ParserStatus.PayloadCursor++; - break; - } - - case GPS_PARSER_NAV_VELECEF_ID_VALUE: - { - GPS_Nav_ParseChar_VELECEF(byte, message); - GPS_AppCustomData.ParserStatus.PayloadCursor++; - break; - } - - case GPS_PARSER_NAV_VELNED_ID_VALUE: - { - GPS_Nav_ParseChar_VELNED(byte, message); - GPS_AppCustomData.ParserStatus.PayloadCursor++; - break; - } - - case GPS_PARSER_NAV_TIMEGPS_ID_VALUE: - { - GPS_Nav_ParseChar_TIMEGPS(byte, message); - GPS_AppCustomData.ParserStatus.PayloadCursor++; - break; - } - - case GPS_PARSER_NAV_TIMEUTC_ID_VALUE: - { - GPS_Nav_ParseChar_TIMEUTC(byte, message); - GPS_AppCustomData.ParserStatus.PayloadCursor++; - break; - } - - case GPS_PARSER_NAV_CLOCK_ID_VALUE: - { - GPS_Nav_ParseChar_CLOCK(byte, message); - GPS_AppCustomData.ParserStatus.PayloadCursor++; - break; - } - - case GPS_PARSER_NAV_TIMEGLO_ID_VALUE: - { - GPS_Nav_ParseChar_TIMEGLO(byte, message); - GPS_AppCustomData.ParserStatus.PayloadCursor++; - break; - } - - case GPS_PARSER_NAV_TIMEBDS_ID_VALUE: - { - GPS_Nav_ParseChar_TIMEBDS(byte, message); - GPS_AppCustomData.ParserStatus.PayloadCursor++; - break; - } - - case GPS_PARSER_NAV_TIMEGAL_ID_VALUE: - { - GPS_Nav_ParseChar_TIMEGAL(byte, message); - GPS_AppCustomData.ParserStatus.PayloadCursor++; - break; - } - - case GPS_PARSER_NAV_TIMELS_ID_VALUE: - { - GPS_Nav_ParseChar_TIMELS(byte, message); - GPS_AppCustomData.ParserStatus.PayloadCursor++; - break; - } - - case GPS_PARSER_NAV_SVINFO_ID_VALUE: - { - GPS_Nav_ParseChar_SVINFOH(byte, message); - GPS_AppCustomData.ParserStatus.PayloadCursor++; - break; - } - - case GPS_PARSER_NAV_DGPS_ID_VALUE: - { - GPS_Nav_ParseChar_DGPS(byte, message); - GPS_AppCustomData.ParserStatus.PayloadCursor++; - break; - } - - case GPS_PARSER_NAV_SBAS_ID_VALUE: - { - GPS_Nav_ParseChar_SBAS(byte, message); - GPS_AppCustomData.ParserStatus.PayloadCursor++; - break; - } - - case GPS_PARSER_NAV_ORB_ID_VALUE: - { - GPS_Nav_ParseChar_ORB(byte, message); - GPS_AppCustomData.ParserStatus.PayloadCursor++; - break; - } - - case GPS_PARSER_NAV_NAVSAT_ID_VALUE: - { - GPS_Nav_ParseChar_SAT(byte, message); - GPS_AppCustomData.ParserStatus.PayloadCursor++; - break; - } - - case GPS_PARSER_NAV_GEOFENCE_ID_VALUE: - { - GPS_Nav_ParseChar_GEOFENCE(byte, message); - GPS_AppCustomData.ParserStatus.PayloadCursor++; - break; - } - - case GPS_PARSER_NAV_AOPSTATUS_ID_VALUE: - { - GPS_Nav_ParseChar_AOPSTATUS(byte, message); - GPS_AppCustomData.ParserStatus.PayloadCursor++; - break; - } - - case GPS_PARSER_NAV_EOE_ID_VALUE: - { - GPS_Nav_ParseChar_EOE(byte, message); - GPS_AppCustomData.ParserStatus.PayloadCursor++; - break; - } - - default: - { - GPS_AppCustomData.ParserStatus.ParseError++; - CFE_EVS_SendEvent(GPS_INIT_DEVICE_PARSER_ERR_EID, CFE_EVS_ERROR, - "Received message with unexpected message ID (0x%.2x) for NAV class.", byte); - GPS_Parser_Reset(); - } - } - - break; - } - - case GPS_PARSER_CLASS_RXM_VALUE: - { - OS_printf("GPS: GPS_PARSER_CLASS_RXM_VALUE not yet implemented.\n"); - GPS_Parser_StateChange(GPS_PARSE_STATE_IDLE); - break; - } - - case GPS_PARSER_CLASS_INF_VALUE: - { - OS_printf("GPS: GPS_PARSER_CLASS_INF_VALUE not yet implemented.\n"); - GPS_Parser_StateChange(GPS_PARSE_STATE_IDLE); - break; - } - - case GPS_PARSER_CLASS_ACK_VALUE: - { - switch(GPS_AppCustomData.ParserStatus.MsgID) - { - case GPS_PARSER_ACK_NAK_ID_VALUE: - { - GPS_Ack_ParseChar_NAK(byte, message); - GPS_AppCustomData.ParserStatus.PayloadCursor++; - break; - } - - case GPS_PARSER_ACK_ACK_ID_VALUE: - { - GPS_Ack_ParseChar_ACK(byte, message); - GPS_AppCustomData.ParserStatus.PayloadCursor++; - break; - } - } - break; - } - - case GPS_PARSER_CLASS_CFG_VALUE: - { - /* */ - OS_printf("GPS: GPS_PARSER_CLASS_CFG_VALUE not yet implemented.\n"); - GPS_Parser_StateChange(GPS_PARSE_STATE_IDLE); - break; - } - - case GPS_PARSER_CLASS_UPD_VALUE: - { - OS_printf("GPS: GPS_PARSER_CLASS_UPD_VALUE not yet implemented.\n"); - GPS_Parser_StateChange(GPS_PARSE_STATE_IDLE); - break; - } - - case GPS_PARSER_CLASS_MON_VALUE: - { - switch(GPS_AppCustomData.ParserStatus.MsgID) - { - case GPS_PARSER_MON_IO_ID_VALUE: - { - GPS_Mon_ParseChar_IO(byte, message); - GPS_AppCustomData.ParserStatus.PayloadCursor++; - break; - } - - case GPS_PARSER_MON_VER_ID_VALUE: - { - GPS_Mon_ParseChar_VER(byte, message); - GPS_AppCustomData.ParserStatus.PayloadCursor++; - break; - } - - case GPS_PARSER_MON_MSGPP_ID_VALUE: - { - GPS_Mon_ParseChar_MSGPP(byte, message); - GPS_AppCustomData.ParserStatus.PayloadCursor++; - break; - } - - case GPS_PARSER_MON_RXBUF_ID_VALUE: - { - GPS_Mon_ParseChar_RXBUF(byte, message); - GPS_AppCustomData.ParserStatus.PayloadCursor++; - break; - } - - case GPS_PARSER_MON_TXBUF_ID_VALUE: - { - GPS_Mon_ParseChar_TXBUF(byte, message); - GPS_AppCustomData.ParserStatus.PayloadCursor++; - break; - } - - case GPS_PARSER_MON_HW_ID_VALUE: - { - GPS_Mon_ParseChar_HW(byte, message); - GPS_AppCustomData.ParserStatus.PayloadCursor++; - break; - } - - case GPS_PARSER_MON_HW2_ID_VALUE: - { - GPS_Mon_ParseChar_HW2(byte, message); - GPS_AppCustomData.ParserStatus.PayloadCursor++; - break; - } - - case GPS_PARSER_MON_RXR_ID_VALUE: - { - GPS_Mon_ParseChar_RXR(byte, message); - GPS_AppCustomData.ParserStatus.PayloadCursor++; - break; - } - - case GPS_PARSER_MON_PATCH_ID_VALUE: - { - GPS_Mon_ParseChar_PATCH(byte, message); - GPS_AppCustomData.ParserStatus.PayloadCursor++; - break; - } - - case GPS_PARSER_MON_GNSS_ID_VALUE: - { - GPS_Mon_ParseChar_GNSS(byte, message); - GPS_AppCustomData.ParserStatus.PayloadCursor++; - break; - } - - case GPS_PARSER_MON_SMGR_ID_VALUE: - { - GPS_Mon_ParseChar_SMGR(byte, message); - GPS_AppCustomData.ParserStatus.PayloadCursor++; - break; - } - } - - break; - } - - case GPS_PARSER_CLASS_AID_VALUE: - { - OS_printf("GPS: GPS_PARSER_CLASS_AID_VALUE not yet implemented.\n"); - GPS_Parser_StateChange(GPS_PARSE_STATE_IDLE); - break; - } - - case GPS_PARSER_CLASS_TIM_VALUE: - { - OS_printf("GPS: GPS_PARSER_CLASS_TIM_VALUE not yet implemented.\n"); - GPS_Parser_StateChange(GPS_PARSE_STATE_IDLE); - break; - } - - case GPS_PARSER_CLASS_ESF_VALUE: - { - OS_printf("GPS: GPS_PARSER_CLASS_ESF_VALUE not yet implemented.\n"); - GPS_Parser_StateChange(GPS_PARSE_STATE_IDLE); - break; - } - - case GPS_PARSER_CLASS_MGA_VALUE: - { - OS_printf("GPS: GPS_PARSER_CLASS_MGA_VALUE not yet implemented.\n"); - GPS_Parser_StateChange(GPS_PARSE_STATE_IDLE); - break; - } - - case GPS_PARSER_CLASS_LOG_VALUE: - { - OS_printf("GPS: GPS_PARSER_CLASS_LOG_VALUE not yet implemented.\n"); - GPS_Parser_StateChange(GPS_PARSE_STATE_IDLE); - break; - } - - case GPS_PARSER_CLASS_SEC_VALUE: - { - OS_printf("GPS: GPS_PARSER_CLASS_SEC_VALUE not yet implemented.\n"); - GPS_Parser_StateChange(GPS_PARSE_STATE_IDLE); - break; - } - - case GPS_PARSER_CLASS_HNR_VALUE: - { - OS_printf("GPS: GPS_PARSER_CLASS_HNR_VALUE not yet implemented.\n"); - GPS_Parser_StateChange(GPS_PARSE_STATE_IDLE); - break; - } - - default: - { - GPS_Parser_StateChange(GPS_PARSE_STATE_IDLE); - } - } - - break; - } - - case GPS_PARSE_STATE_GOT_PAYLOAD: - { - GPS_AppCustomData.ParserStatus.ChecksumA = byte; - GPS_Parser_StateChange(GPS_PARSE_STATE_GOT_CHECKSUMA); - break; - } - - case GPS_PARSE_STATE_GOT_CHECKSUMA: - { - CFE_SB_TimeStampMsg((CFE_SB_MsgPtr_t)message); - msg_received = 1; - *done = TRUE; - GPS_Parser_StateChange(GPS_PARSE_STATE_IDLE); - break; - } - - default: - { - } - } - - return msg_received; -} - - - -CFE_SB_MsgId_t GPS_TranslateMsgID(uint16 ClassID, uint16 MsgID) -{ - CFE_SB_MsgId_t sbMsgID = 0; - - switch(ClassID) - { - case GPS_PARSER_CLASS_NAV_VALUE: - { - switch(MsgID) - { - //case GPS_PARSER_NAV_POSECEF_ID_VALUE: - //sbMsgID = GPS_NAV_POSECEF_MID; - //break; - - //case GPS_PARSER_NAV_POSLLH_ID_VALUE: - //sbMsgID = GPS_NAV_POSLLH_MID; - //break; - - //case GPS_PARSER_NAV_STATUS_ID_VALUE: - //sbMsgID = GPS_NAV_STATUS_MID; - //break; - - case GPS_PARSER_NAV_DOP_ID_VALUE: - { - sbMsgID = GPS_NAV_DOP_MID; - break; - } - //case GPS_PARSER_NAV_ATT_ID_VALUE: - //sbMsgID = GPS_NAV_ATT_MID; - //break; - - //case GPS_PARSER_NAV_SOL_ID_VALUE: - //sbMsgID = GPS_NAV_SOL_MID; - //break; - - case GPS_PARSER_NAV_NAVPVT_ID_VALUE: - { - sbMsgID = GPS_NAV_NAVPVT_MID; - break; - } - //case GPS_PARSER_NAV_ODO_ID_VALUE: - //sbMsgID = GPS_NAV_ODO_MID; - //break; - - //case GPS_PARSER_NAV_RESETODO_ID_VALUE: - //sbMsgID = GPS_NAV_RESETODO_MID; - //break; - - //case GPS_PARSER_NAV_VELECEF_ID_VALUE: - //sbMsgID = GPS_NAV_VELECEF_MID; - //break; - - //case GPS_PARSER_NAV_VELNED_ID_VALUE: - //sbMsgID = GPS_NAV_VELNED_MID; - //break; - - //case GPS_PARSER_NAV_TIMEGPS_ID_VALUE: - //sbMsgID = GPS_NAV_TIMEGPS_MID; - //break; - - //case GPS_PARSER_NAV_TIMEUTC_ID_VALUE: - //sbMsgID = GPS_NAV_TIMEUTC_MID; - //break; - - //case GPS_PARSER_NAV_CLOCK_ID_VALUE: - //sbMsgID = GPS_NAV_CLOCK_MID; - //break; - - //case GPS_PARSER_NAV_TIMEGLO_ID_VALUE: - //sbMsgID = GPS_NAV_TIMEGLO_MID; - //break; - - //case GPS_PARSER_NAV_TIMEBDS_ID_VALUE: - //sbMsgID = GPS_NAV_TIMEBDS_MID; - //break; - - //case GPS_PARSER_NAV_TIMEGAL_ID_VALUE: - //sbMsgID = GPS_NAV_TIMEGAL_MID; - //break; - - //case GPS_PARSER_NAV_TIMELS_ID_VALUE: - //sbMsgID = GPS_NAV_TIMELS_MID; - //break; - - case GPS_PARSER_NAV_SVINFO_ID_VALUE: - { - sbMsgID = GPS_NAV_SVINFO_MID; - break; - } - //case GPS_PARSER_NAV_DGPS_ID_VALUE: - //sbMsgID = GPS_NAV_DGPS_MID; - //break; - - //case GPS_PARSER_NAV_SBAS_ID_VALUE: - //sbMsgID = GPS_NAV_SBAS_MID; - //break; - - //case GPS_PARSER_NAV_ORB_ID_VALUE: - //sbMsgID = GPS_NAV_ORB_MID; - //break; - - //case GPS_PARSER_NAV_NAVSAT_ID_VALUE: - //sbMsgID = GPS_NAV_NAVSAT_MID; - //break; - - //case GPS_PARSER_NAV_GEOFENCE_ID_VALUE: - //sbMsgID = GPS_NAV_GEOFENCE_MID; - //break; - - //case GPS_PARSER_NAV_AOPSTATUS_ID_VALUE: - //sbMsgID = GPS_NAV_AOPSTATUS_MID; - //break; - - //case GPS_PARSER_NAV_EOE_ID_VALUE: - //sbMsgID = GPS_NAV_EOE_MID; - //break; - - default: - { - break; - } - } - break; - } - case GPS_PARSER_CLASS_RXM_VALUE: - /* Fall through */ - case GPS_PARSER_CLASS_INF_VALUE: - /* Fall through */ - case GPS_PARSER_CLASS_ACK_VALUE: - { - switch(MsgID) - { - case GPS_PARSER_ACK_NAK_ID_VALUE: - { - sbMsgID = GPS_ACK_NAK_MID; - break; - } - case GPS_PARSER_ACK_ACK_ID_VALUE: - { - sbMsgID = GPS_ACK_ACK_MID; - break; - } - default: - { - break; - } - } - } - case GPS_PARSER_CLASS_CFG_VALUE: - { - switch(MsgID) - { - case GPS_PARSER_CFG_PRT_ID_VALUE: - { - sbMsgID = GPS_CFG_PRT_MID; - break; - } - - case GPS_PARSER_CFG_MSG_ID_VALUE: - { - sbMsgID = GPS_CFG_MSG_MID; - break; - } - //case GPS_PARSER_CFG_INF_ID_VALUE: - //sbMsgID = ; - //break; - - //case GPS_PARSER_CFG_RST_ID_VALUE: - //sbMsgID = ; - //break; - - //case GPS_PARSER_CFG_DAT_ID_VALUE: - //sbMsgID = ; - //break; - - case GPS_PARSER_CFG_RATE_ID_VALUE: - { - sbMsgID = GPS_CFG_RATE_MID; - break; - } - //case GPS_PARSER_CFG_CFG_ID_VALUE: - //sbMsgID = ; - //break; - - //case GPS_PARSER_CFG_RXM_ID_VALUE: - //sbMsgID = ; - //break; - - //case GPS_PARSER_CFG_ANT_ID_VALUE: - //sbMsgID = ; - //break; - - case GPS_PARSER_CFG_SBAS_ID_VALUE: - { - sbMsgID = GPS_CFG_SBAS_MID; - break; - } - //case GPS_PARSER_CFG_NMEA_ID_VALUE: - //sbMsgID = ; - //break; - - //case GPS_PARSER_CFG_USB_ID_VALUE: - //sbMsgID = ; - //break; - - //case GPS_PARSER_CFG_ODO_ID_VALUE: - //sbMsgID = ; - //break; - - //case GPS_PARSER_CFG_NAVX5_ID_VALUE: - //sbMsgID = ; - //break; - - case GPS_PARSER_CFG_NAV5_ID_VALUE: - { - sbMsgID = GPS_CFG_NAV5_MID; - break; - } - //case GPS_PARSER_CFG_TP5_ID_VALUE: - //sbMsgID = ; - //break; - - //case GPS_PARSER_CFG_RINV_ID_VALUE: - //sbMsgID = ; - //break; - - //case GPS_PARSER_CFG_ITFM_ID_VALUE: - //sbMsgID = ; - //break; - - //case GPS_PARSER_CFG_PM2_ID_VALUE: - //sbMsgID = ; - //break; - - //case GPS_PARSER_CFG_TMOD2_ID_VALUE: - //sbMsgID = ; - //break; - - //case GPS_PARSER_CFG_GNSS_ID_VALUE: - //sbMsgID = ; - //break; - - //case GPS_PARSER_CFG_LOGFILTER_ID_VALUE: - //sbMsgID = ; - //break; - - //case GPS_PARSER_CFG_PWR_ID_VALUE: - //sbMsgID = ; - //break; - - //case GPS_PARSER_CFG_TXSLOT_ID_VALUE: - //sbMsgID = ; - //break; - - //case GPS_PARSER_CFG_HNR_ID_VALUE: - //sbMsgID = ; - //break; - - //case GPS_PARSER_CFG_ESRC_ID_VALUE: - //sbMsgID = ; - //break; - - //case GPS_PARSER_CFG_DOSC_ID_VALUE: - //sbMsgID = ; - //break; - - //case GPS_PARSER_CFG_SMGR_ID_VALUE: - //sbMsgID = ; - //break; - - //case GPS_PARSER_CFG_GEOFENCE_ID_VALUE: - //sbMsgID = ; - //break; - - //case GPS_PARSER_CFG_FIXSEED_ID_VALUE: - //sbMsgID = ; - //break; - - //case GPS_PARSER_CFG_DYNSEED_ID_VALUE: - //sbMsgID = ; - //break; - - //case GPS_PARSER_CFG_PMS_ID_VALUE: - //sbMsgID = ; - //break; - - default: - { - break; - } - } - } - case GPS_PARSER_CLASS_UPD_VALUE: - /* Fall through */ - case GPS_PARSER_CLASS_MON_VALUE: - { - switch(MsgID) - { - //case GPS_PARSER_MON_IO_ID_VALUE: - //sbMsgID = GPS_MON_IO_MID; - //break; - - //case GPS_PARSER_MON_VER_ID_VALUE: - //sbMsgID = GPS_MON_VER_MID; - //break; - - //case GPS_PARSER_MON_MSGPP_ID_VALUE: - //sbMsgID = GPS_MON_MSGPP_MID; - //break; - - //case GPS_PARSER_MON_RXBUF_ID_VALUE: - //sbMsgID = GPS_MON_RXBUF_MID; - //break; - - //case GPS_PARSER_MON_TXBUF_ID_VALUE: - //sbMsgID = GPS_MON_TXBUF_MID; - //break; - - case GPS_PARSER_MON_HW_ID_VALUE: - { - sbMsgID = GPS_MON_HW_MID; - break; - } - //case GPS_PARSER_MON_HW2_ID_VALUE: - //sbMsgID = GPS_MON_HW2_MID; - //break; - - //case GPS_PARSER_MON_RXR_ID_VALUE: - //sbMsgID = GPS_MON_RXR_MID; - //break; - - //case GPS_PARSER_MON_PATCH_ID_VALUE: - //sbMsgID = GPS_MON_PATCH_MID; - //break; - - //case GPS_PARSER_MON_GNSS_ID_VALUE: - //sbMsgID = GPS_MON_GNSS_MID; - //break; - - //case GPS_PARSER_MON_SMGR_ID_VALUE: - //sbMsgID = GPS_MON_SMGR_MID; - //break; - - default: - { - break; - } - } - } - - case GPS_PARSER_CLASS_AID_VALUE: - /* Fall through */ - case GPS_PARSER_CLASS_TIM_VALUE: - /* Fall through */ - case GPS_PARSER_CLASS_ESF_VALUE: - /* Fall through */ - case GPS_PARSER_CLASS_MGA_VALUE: - /* Fall through */ - case GPS_PARSER_CLASS_LOG_VALUE: - /* Fall through */ - case GPS_PARSER_CLASS_SEC_VALUE: - /* Fall through */ - case GPS_PARSER_CLASS_HNR_VALUE: - { - break; - } - default: - { - break; - } - } - - return sbMsgID; -} - -/************************/ -/* End of File Comment */ -/************************/ - diff --git a/config/ocpoc/s1000/target/apps/gps/src/gps_parser_ubx/gps_parser_ubx_common.h b/config/ocpoc/s1000/target/apps/gps/src/gps_parser_ubx/gps_parser_ubx_common.h deleted file mode 100644 index 37b0bf4a4..000000000 --- a/config/ocpoc/s1000/target/apps/gps/src/gps_parser_ubx/gps_parser_ubx_common.h +++ /dev/null @@ -1,307 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ - -#ifndef _GPS_PARSER_UBX_COMMON_H_ -#define _GPS_PARSER_UBX_COMMON_H_ - -#ifdef __cplusplus -extern "C" { -#endif - -/************************************************************************ -** Includes -*************************************************************************/ -#include "gps_parser_ubx_ack.h" -#include "gps_parser_ubx_cfg.h" -#include "gps_parser_ubx_mon.h" -#include "gps_parser_ubx_nav.h" -#include "gps_ubx_msg.h" -#include "../gps_custom_shared.h" -#include "../gps_interface_uart/gps_serial.h" - - - -/************************************************************************ -** Local Defines -*************************************************************************/ -/* UBX header contents */ -/** \brief Header symbol 1. -** -** \par Description: -** UBX header symbol 1. -*/ -#define GPS_PARSER_SYNC1_VALUE (0xb5) - -/** \brief Header symbol 2. -** -** \par Description: -** UBX header symbol 2. -*/ -#define GPS_PARSER_SYNC2_VALUE (0x62) - -/************************************************************************ -** External Global Variables -*************************************************************************/ -extern GPS_AppCustomData_t GPS_AppCustomData; - - -/************************************************************************ -** Structure Declarations -*************************************************************************/ - -typedef enum -{ - GPS_PARSER_CLASS_NAV_VALUE = 0x01, - GPS_PARSER_CLASS_RXM_VALUE = 0x02, - GPS_PARSER_CLASS_INF_VALUE = 0x04, - GPS_PARSER_CLASS_ACK_VALUE = 0x05, - GPS_PARSER_CLASS_CFG_VALUE = 0x06, - GPS_PARSER_CLASS_UPD_VALUE = 0x09, - GPS_PARSER_CLASS_MON_VALUE = 0x0a, - GPS_PARSER_CLASS_AID_VALUE = 0x0b, - GPS_PARSER_CLASS_TIM_VALUE = 0x0d, - GPS_PARSER_CLASS_ESF_VALUE = 0x10, - GPS_PARSER_CLASS_MGA_VALUE = 0x13, - GPS_PARSER_CLASS_LOG_VALUE = 0x21, - GPS_PARSER_CLASS_SEC_VALUE = 0x27, - GPS_PARSER_CLASS_HNR_VALUE = 0x28 -} GPS_ParserClassValue_t; - - -typedef enum -{ - GPS_PARSER_NAV_POSECEF_ID_VALUE = 0x01, - GPS_PARSER_NAV_POSLLH_ID_VALUE = 0x02, - GPS_PARSER_NAV_STATUS_ID_VALUE = 0x03, - GPS_PARSER_NAV_DOP_ID_VALUE = 0x04, - GPS_PARSER_NAV_ATT_ID_VALUE = 0x05, - GPS_PARSER_NAV_SOL_ID_VALUE = 0x06, - GPS_PARSER_NAV_NAVPVT_ID_VALUE = 0x07, - GPS_PARSER_NAV_ODO_ID_VALUE = 0x09, - GPS_PARSER_NAV_RESETODO_ID_VALUE = 0x10, - GPS_PARSER_NAV_VELECEF_ID_VALUE = 0x11, - GPS_PARSER_NAV_VELNED_ID_VALUE = 0x12, - GPS_PARSER_NAV_TIMEGPS_ID_VALUE = 0x20, - GPS_PARSER_NAV_TIMEUTC_ID_VALUE = 0x21, - GPS_PARSER_NAV_CLOCK_ID_VALUE = 0x22, - GPS_PARSER_NAV_TIMEGLO_ID_VALUE = 0x23, - GPS_PARSER_NAV_TIMEBDS_ID_VALUE = 0x24, - GPS_PARSER_NAV_TIMEGAL_ID_VALUE = 0x25, - GPS_PARSER_NAV_TIMELS_ID_VALUE = 0x26, - GPS_PARSER_NAV_SVINFO_ID_VALUE = 0x30, - GPS_PARSER_NAV_DGPS_ID_VALUE = 0x31, - GPS_PARSER_NAV_SBAS_ID_VALUE = 0x32, - GPS_PARSER_NAV_ORB_ID_VALUE = 0x34, - GPS_PARSER_NAV_NAVSAT_ID_VALUE = 0x35, - GPS_PARSER_NAV_GEOFENCE_ID_VALUE = 0x39, - GPS_PARSER_NAV_AOPSTATUS_ID_VALUE = 0x60, - GPS_PARSER_NAV_EOE_ID_VALUE = 0x61, -} GPS_ParserNavIDValue_t; - - -typedef enum -{ - GPS_PARSER_RXM_SFRBX_ID_VALUE = 0x13, - GPS_PARSER_RXM_MEASX_ID_VALUE = 0x14, - GPS_PARSER_RXM_RAWX_ID_VALUE = 0x15, - GPS_PARSER_RXM_SVSI_ID_VALUE = 0x20, - GPS_PARSER_RXM_PMREQ_ID_VALUE = 0x41, - GPS_PARSER_RXM_RLM_ID_VALUE = 0x59, - GPS_PARSER_RXM_IMES_ID_VALUE = 0x61 -} GPS_ParserRxmIDValue_t; - - -typedef enum -{ - GPS_PARSER_ACK_NAK_ID_VALUE = 0x00, - GPS_PARSER_ACK_ACK_ID_VALUE = 0x01 -} GPS_ParserAckIDValue_t; - - -typedef enum -{ - GPS_PARSER_CFG_PRT_ID_VALUE = 0x00, - GPS_PARSER_CFG_MSG_ID_VALUE = 0x01, - GPS_PARSER_CFG_INF_ID_VALUE = 0x02, - GPS_PARSER_CFG_RST_ID_VALUE = 0x04, - GPS_PARSER_CFG_DAT_ID_VALUE = 0x06, - GPS_PARSER_CFG_RATE_ID_VALUE = 0x08, - GPS_PARSER_CFG_CFG_ID_VALUE = 0x09, - GPS_PARSER_CFG_RXM_ID_VALUE = 0x11, - GPS_PARSER_CFG_ANT_ID_VALUE = 0x13, - GPS_PARSER_CFG_SBAS_ID_VALUE = 0x16, - GPS_PARSER_CFG_NMEA_ID_VALUE = 0x17, - GPS_PARSER_CFG_USB_ID_VALUE = 0x1B, - GPS_PARSER_CFG_ODO_ID_VALUE = 0x1E, - GPS_PARSER_CFG_NAVX5_ID_VALUE = 0x23, - GPS_PARSER_CFG_NAV5_ID_VALUE = 0x24, - GPS_PARSER_CFG_TP5_ID_VALUE = 0x31, - GPS_PARSER_CFG_RINV_ID_VALUE = 0x34, - GPS_PARSER_CFG_ITFM_ID_VALUE = 0x39, - GPS_PARSER_CFG_PM2_ID_VALUE = 0x3B, - GPS_PARSER_CFG_TMOD2_ID_VALUE = 0x3D, - GPS_PARSER_CFG_GNSS_ID_VALUE = 0x3E, - GPS_PARSER_CFG_LOGFILTER_ID_VALUE = 0x47, - GPS_PARSER_CFG_PWR_ID_VALUE = 0x57, - GPS_PARSER_CFG_TXSLOT_ID_VALUE = 0x53, - GPS_PARSER_CFG_HNR_ID_VALUE = 0x5C, - GPS_PARSER_CFG_ESRC_ID_VALUE = 0x60, - GPS_PARSER_CFG_DOSC_ID_VALUE = 0x61, - GPS_PARSER_CFG_SMGR_ID_VALUE = 0x62, - GPS_PARSER_CFG_GEOFENCE_ID_VALUE = 0x69, - GPS_PARSER_CFG_FIXSEED_ID_VALUE = 0X84, - GPS_PARSER_CFG_DYNSEED_ID_VALUE = 0x85, - GPS_PARSER_CFG_PMS_ID_VALUE = 0x86 -} GPS_ParserCfgIDValue_t; - - -typedef enum -{ - GPS_PARSER_UPD_SOS_ID_VALUE = 0x14, -} GPS_ParserUpdIDValue_t; - - -typedef enum -{ - GPS_PARSER_MON_IO_ID_VALUE = 0x02, - GPS_PARSER_MON_VER_ID_VALUE = 0x04, - GPS_PARSER_MON_MSGPP_ID_VALUE = 0x06, - GPS_PARSER_MON_RXBUF_ID_VALUE = 0x07, - GPS_PARSER_MON_TXBUF_ID_VALUE = 0x08, - GPS_PARSER_MON_HW_ID_VALUE = 0x09, - GPS_PARSER_MON_HW2_ID_VALUE = 0x0B, - GPS_PARSER_MON_RXR_ID_VALUE = 0x21, - GPS_PARSER_MON_PATCH_ID_VALUE = 0x27, - GPS_PARSER_MON_GNSS_ID_VALUE = 0x28, - GPS_PARSER_MON_SMGR_ID_VALUE = 0x2E -} GPS_ParserMonIDValue_t; - - -typedef enum -{ - GPS_PARSER_AID_INI_ID_VALUE = 0x01, - GPS_PARSER_AID_HUI_ID_VALUE = 0x02, - GPS_PARSER_AID_ALM_ID_VALUE = 0x30, - GPS_PARSER_AID_EPH_ID_VALUE = 0x31, - GPS_PARSER_AID_AOP_ID_VALUE = 0x33 -} GPS_ParserAidIDValue_t; - - -typedef enum -{ - GPS_PARSER_TIM_TP_ID_VALUE = 0x01, - GPS_PARSER_TIM_TM2_ID_VALUE = 0x03, - GPS_PARSER_TIM_SVIN_ID_VALUE = 0x04, - GPS_PARSER_TIM_VRFY_ID_VALUE = 0x06, - GPS_PARSER_TIM_DOSC_ID_VALUE = 0x11, - GPS_PARSER_TIM_TOS_ID_VALUE = 0x12, - GPS_PARSER_TIM_SMEAS_ID_VALUE = 0x13, - GPS_PARSER_TIM_VCOCAL_ID_VALUE = 0x15, - GPS_PARSER_TIM_FCHG_ID_VALUE = 0x16, - GPS_PARSER_TIM_HOC_ID_VALUE = 0x17 -} GPS_ParserTimIDValue_t; - - -typedef enum -{ - GPS_PARSER_ESF_MEAS_ID_VALUE = 0x02, - GPS_PARSER_ESF_RAW_ID_VALUE = 0x03, - GPS_PARSER_ESF_INS_ID_VALUE = 0x15, - GPS_PARSER_ESF_STATUS_ID_VALUE = 0x10 -} GPS_ParserEsfIDValue_t; - - -typedef enum -{ - GPS_PARSER_MGA_GPS_ID_VALUE = 0x00, - GPS_PARSER_MGA_GAL_ID_VALUE = 0x02, - GPS_PARSER_MGA_BDS_ID_VALUE = 0x03, - GPS_PARSER_MGA_QZSS_ID_VALUE = 0x05, - GPS_PARSER_MGA_GLO_ID_VALUE = 0x06, - GPS_PARSER_MGA_ANO_ID_VALUE = 0x20, - GPS_PARSER_MGA_FLASH_ID_VALUE = 0x21, - GPS_PARSER_MGA_INI_XYZ_ID_VALUE = 0x40, - GPS_PARSER_MGA_ACK_DATA0_ID_VALUE = 0x60, - GPS_PARSER_MGA_DBD_ID_VALUE = 0x80 -} GPS_ParserMgaIDValue_t; - - -typedef enum -{ - GPS_PARSER_LOG_ERASE_ID_VALUE = 0x03, - GPS_PARSER_LOG_STRING_ID_VALUE = 0x04, - GPS_PARSER_LOG_CREATE_ID_VALUE = 0x07, - GPS_PARSER_LOG_INFO_ID_VALUE = 0x08, - GPS_PARSER_LOG_RETRIEVE_ID_VALUE = 0x09, - GPS_PARSER_LOG_RETRIEVEPOS_ID_VALUE = 0x0B, - GPS_PARSER_LOG_RETRIEVESTRING_ID_VALUE = 0x0D, - GPS_PARSER_LOG_FINDTIME_ID_VALUE = 0x0E, - GPS_PARSER_LOG_RETRIEVEPOSEXTRA_ID_VALUE = 0x0F -} GPS_ParserLogIDValue_t; - - -typedef enum -{ - GPS_PARSER_SEC_SIGN_ID_VALUE = 0x01, - GPS_PARSER_SEC_UNIQID_ID_VALUE = 0x03, -} GPS_ParserSecIDValue_t; - - -typedef enum -{ - GPS_PARSER_HNR_PVT_ID_VALUE = 0x00, -} GPS_ParserHnrIDValue_t; - - -typedef enum -{ - GPS_PARSER_INF_ERROR_ID_VALUE = 0x00, - GPS_PARSER_INF_WARNING_ID_VALUE = 0x01, - GPS_PARSER_INF_NOTICE_ID_VALUE = 0x02, - GPS_PARSER_INF_TEST_ID_VALUE = 0x03, - GPS_PARSER_INF_DEBUG_ID_VALUE = 0x04 -} GPS_ParserInfIDValue_t; - - -uint16 GPS_ParseChar(uint8 byte, GPS_DeviceMessage_t* message, boolean *done); -void GPS_Parser_Reset(void); -CFE_SB_MsgId_t GPS_TranslateMsgID(uint16 ClassID, uint16 MsgID); -void GPS_Parser_StateChange(GPS_ParserState_t newState); -void GPS_SetChecksum(uint8 *Buffer, uint16 Size); - -#ifdef __cplusplus -} -#endif - -#endif /* _GPS_PARSER_UBX_COMMON_H_ */ - diff --git a/config/ocpoc/s1000/target/apps/gps/src/gps_parser_ubx/gps_parser_ubx_mon.c b/config/ocpoc/s1000/target/apps/gps/src/gps_parser_ubx/gps_parser_ubx_mon.c deleted file mode 100644 index c609fba24..000000000 --- a/config/ocpoc/s1000/target/apps/gps/src/gps_parser_ubx/gps_parser_ubx_mon.c +++ /dev/null @@ -1,477 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ -/************************************************************************* -** -** Include section -** -**************************************************************************/ - -#include "cfe.h" -//#include "GPS_events.h" -//#include "GPS_msgids.h" -#include "gps_parser_ubx_common.h" - -/************************************************************************* -** -** Macro definitions -** -**************************************************************************/ -#define GPS_PARSER_MON_MSGPP_MSG_LENGTH (120) -#define GPS_PARSER_MON_RXBUF_MSG_LENGTH (24) -#define GPS_PARSER_MON_TXBUF_MSG_LENGTH (28) -#define GPS_PARSER_MON_HW_MSG_LENGTH (60) -#define GPS_PARSER_MON_HW2_MSG_LENGTH (28) -#define GPS_PARSER_MON_RXR_MSG_LENGTH (1) -#define GPS_PARSER_MON_GNSS_MSG_LENGTH (8) -#define GPS_PARSER_MON_SMGR_MSG_LENGTH (16) - -/************************************************************************* -** -** Type definitions -** -**************************************************************************/ - -/* -** (none) -*/ - -/************************************************************************* -** -** Imported data -** -**************************************************************************/ - -/* -** (none) -*/ - -/************************************************************************* -** -** Exported data -** -**************************************************************************/ - - - -/************************************************************************* -** -** File data -** -**************************************************************************/ - -/* -** (none) -*/ - -/************************************************************************* -** Local function prototypes -**************************************************************************/ - -/* Incoming messages. */ -void GPS_Mon_ParseChar_IO(uint8 byte, GPS_DeviceMessage_t* message) -{ - -} - -void GPS_Mon_ParseChar_VER(uint8 byte, GPS_DeviceMessage_t* message) -{ - -} - -void GPS_Mon_ParseChar_MSGPP(uint8 byte, GPS_DeviceMessage_t* message) -{ - -} - -void GPS_Mon_ParseChar_RXBUF(uint8 byte, GPS_DeviceMessage_t* message) -{ - -} - -void GPS_Mon_ParseChar_TXBUF(uint8 byte, GPS_DeviceMessage_t* message) -{ - -} - -void GPS_Mon_ParseChar_HW(uint8 byte, GPS_DeviceMessage_t* message) -{ - if(GPS_AppCustomData.ParserStatus.MsgLength != GPS_PARSER_MON_HW_MSG_LENGTH) - { - GPS_AppCustomData.ParserStatus.ParseError++; - CFE_EVS_SendEvent(GPS_INIT_DEVICE_PARSER_ERR_EID, CFE_EVS_ERROR, - "Received TIMEUTC message with incorrect length (%u).", GPS_AppCustomData.ParserStatus.MsgLength); - GPS_Parser_Reset(); - } - else - { - GPS_MON_HW_t *payload = (void*)CFE_SB_GetUserData((CFE_SB_MsgPtr_t)message); - switch(GPS_AppCustomData.ParserStatus.PayloadCursor) - { - case 0: - { - CFE_SB_MsgId_t sbMsgID = GPS_TranslateMsgID(GPS_AppCustomData.ParserStatus.ClassID, GPS_AppCustomData.ParserStatus.MsgID); - uint16 sbHdrSize = CFE_SB_MsgHdrSize(sbMsgID); - uint16 sbTotalMsgSize = sbHdrSize + GPS_AppCustomData.ParserStatus.MsgLength; - CFE_SB_InitMsg(message, sbMsgID, sbTotalMsgSize, TRUE); - - payload->pinSel = byte; - break; - } - - case 1: - { - payload->pinSel += byte << 8; - break; - } - - case 2: - { - payload->pinSel += byte << 16; - break; - } - - case 3: - { - payload->pinSel += byte << 24; - break; - } - - case 4: - { - payload->pinBank = byte; - break; - } - - case 5: - { - payload->pinBank += byte << 8; - break; - } - - case 6: - { - payload->pinBank += byte << 16; - break; - } - - case 7: - { - payload->pinBank += byte << 24; - break; - } - - case 8: - { - payload->pinDir = byte; - break; - } - - case 9: - { - payload->pinDir += byte << 8; - break; - } - - case 10: - { - payload->pinDir += byte << 16; - break; - } - - case 11: - { - payload->pinDir += byte << 24; - break; - } - - case 12: - { - payload->pinVal = byte; - break; - } - - case 13: - { - payload->pinVal += byte << 8; - break; - } - - case 14: - { - payload->pinVal += byte << 16; - break; - } - - case 15: - { - payload->pinVal += byte << 24; - break; - } - - case 16: - { - payload->noisePerMS = byte; - break; - } - - case 17: - { - payload->noisePerMS += byte << 8; - break; - } - - case 18: - { - payload->agcCnt = byte; - break; - } - - case 19: - { - payload->agcCnt += byte << 8; - break; - } - - case 20: - { - payload->aStatus = byte; - break; - } - - case 21: - { - payload->aPower = byte; - break; - } - - case 22: - { - payload->flags = byte; - break; - } - - case 23: - { - /* Reserved byte */ - break; - } - - case 24: - { - payload->usedMask = byte; - break; - } - - case 25: - { - payload->usedMask += byte << 8; - break; - } - - case 26: - { - payload->usedMask += byte << 16; - break; - } - - case 27: - { - payload->usedMask += byte << 24; - break; - } - - /* Fall Through. These are the 17 elements of an array. */ - case 28: - /* Fall Through */ - case 29: - /* Fall Through */ - case 30: - /* Fall Through */ - case 31: - /* Fall Through */ - case 32: - /* Fall Through */ - case 33: - /* Fall Through */ - case 34: - /* Fall Through */ - case 35: - /* Fall Through */ - case 36: - /* Fall Through */ - case 37: - /* Fall Through */ - case 38: - /* Fall Through */ - case 39: - /* Fall Through */ - case 40: - /* Fall Through */ - case 41: - /* Fall Through */ - case 42: - /* Fall Through */ - case 43: - /* Fall Through */ - case 44: - { - payload->vp[GPS_AppCustomData.ParserStatus.PayloadCursor - 28] = byte; - break; - } - - case 45: - { - payload->jamInd = byte; - break; - } - - case 46: - /* Fall Through */ - case 47: - { - /* Reserved bytes */ - break; - } - - case 48: - { - payload->pinIrq = byte; - break; - } - - case 49: - { - payload->pinIrq += byte << 8; - break; - } - - case 50: - { - payload->pinIrq += byte << 16; - break; - } - - case 51: - { - payload->pinIrq += byte << 24; - break; - } - - case 52: - { - payload->pullH = byte; - break; - } - - case 53: - { - payload->pullH += byte << 8; - break; - } - - case 54: - { - payload->pullH += byte << 16; - break; - } - - case 55: - { - payload->pullH += byte << 24; - break; - } - - case 56: - { - payload->pullL = byte; - break; - } - - case 57: - { - payload->pullL += byte << 8; - break; - } - - case 58: - { - payload->pullL += byte << 16; - break; - } - - case 59: - { - payload->pullL += byte << 24; - GPS_Parser_StateChange(GPS_PARSE_STATE_GOT_PAYLOAD); - break; - } - - default: - { - GPS_Parser_Reset(); - return; - } - } - } -} - -void GPS_Mon_ParseChar_HW2(uint8 byte, GPS_DeviceMessage_t* message) -{ - -} - -void GPS_Mon_ParseChar_RXR(uint8 byte, GPS_DeviceMessage_t* message) -{ - -} - -void GPS_Mon_ParseChar_PATCH(uint8 byte, GPS_DeviceMessage_t* message) -{ - -} - -void GPS_Mon_ParseChar_GNSS(uint8 byte, GPS_DeviceMessage_t* message) -{ - -} - -void GPS_Mon_ParseChar_SMGR(uint8 byte, GPS_DeviceMessage_t* message) -{ - -} - - -/************************/ -/* End of File Comment */ -/************************/ - diff --git a/config/ocpoc/s1000/target/apps/gps/src/gps_parser_ubx/gps_parser_ubx_mon.h b/config/ocpoc/s1000/target/apps/gps/src/gps_parser_ubx/gps_parser_ubx_mon.h deleted file mode 100644 index cb4a7d0fc..000000000 --- a/config/ocpoc/s1000/target/apps/gps/src/gps_parser_ubx/gps_parser_ubx_mon.h +++ /dev/null @@ -1,108 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ -/************************************************************************* -** -** Include section -** -**************************************************************************/ -#ifndef _GPS_PARSER_UBX_MON_H_ -#define _GPS_PARSER_UBX_MON_H_ - -#ifdef __cplusplus -extern "C" { -#endif - -#include "cfe.h" -#include "../gps_custom_shared.h" -//#include "GPS_events.h" -//#include "GPS_msgids.h" - - - -/************************************************************************* -** -** Macro definitions -** -**************************************************************************/ - - -/************************************************************************* -** -** Type definitions -** -**************************************************************************/ - -/* -** (none) -*/ - -/************************************************************************* -** -** Imported data -** -**************************************************************************/ - -/* -** (none) -*/ - -/************************************************************************* -** -** Exported data -** -**************************************************************************/ - - -void GPS_Mon_ParseChar_IO(uint8 byte, GPS_DeviceMessage_t* message); -void GPS_Mon_ParseChar_VER(uint8 byte, GPS_DeviceMessage_t* message); -void GPS_Mon_ParseChar_MSGPP(uint8 byte, GPS_DeviceMessage_t* message); -void GPS_Mon_ParseChar_RXBUF(uint8 byte, GPS_DeviceMessage_t* message); -void GPS_Mon_ParseChar_TXBUF(uint8 byte, GPS_DeviceMessage_t* message); -void GPS_Mon_ParseChar_HW(uint8 byte, GPS_DeviceMessage_t* message); -void GPS_Mon_ParseChar_HW2(uint8 byte, GPS_DeviceMessage_t* message); -void GPS_Mon_ParseChar_RXR(uint8 byte, GPS_DeviceMessage_t* message); -void GPS_Mon_ParseChar_PATCH(uint8 byte, GPS_DeviceMessage_t* message); -void GPS_Mon_ParseChar_GNSS(uint8 byte, GPS_DeviceMessage_t* message); -void GPS_Mon_ParseChar_SMGR(uint8 byte, GPS_DeviceMessage_t* message); - - -#ifdef __cplusplus -} -#endif - -#endif /* _GPS_PARSER_UBX_MON_H_ */ - -/************************/ -/* End of File Comment */ -/************************/ - diff --git a/config/ocpoc/s1000/target/apps/gps/src/gps_parser_ubx/gps_parser_ubx_nav.c b/config/ocpoc/s1000/target/apps/gps/src/gps_parser_ubx/gps_parser_ubx_nav.c deleted file mode 100644 index 50befb80d..000000000 --- a/config/ocpoc/s1000/target/apps/gps/src/gps_parser_ubx/gps_parser_ubx_nav.c +++ /dev/null @@ -1,2494 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ -/************************************************************************* -** -** Include section -** -**************************************************************************/ - -#include "cfe.h" -//#include "GPS_events.h" -//#include "GPS_msgids.h" -#include "gps_parser_ubx_common.h" - -/************************************************************************* -** -** Macro definitions -** -**************************************************************************/ - -#define GPS_PARSER_NAV_AOPSTATUS_MSG_LENGTH (16) -#define GPS_PARSER_NAV_ATT_MSG_LENGTH (32) -#define GPS_PARSER_NAV_CLOCK_MSG_LENGTH (20) -#define GPS_PARSER_NAV_DGPS_MSG_LENGTH (16) -#define GPS_PARSER_NAV_DOP_MSG_LENGTH (18) -#define GPS_PARSER_NAV_EOE_MSG_LENGTH (4) -#define GPS_PARSER_NAV_GEOFENCE_MSG_LENGTH (8) -#define GPS_PARSER_NAV_ODO_MSG_LENGTH (20) -#define GPS_PARSER_NAV_ORB_MSG_LENGTH (8) -#define GPS_PARSER_NAV_POSECEF_MSG_LENGTH (20) -#define GPS_PARSER_NAV_POSLLH_MSG_LENGTH (28) -#define GPS_PARSER_NAV_PVT_MSG_LENGTH (92) -#define GPS_PARSER_NAV_SAT_MSG_LENGTH (8) -#define GPS_PARSER_NAV_SBAS_MSG_LENGTH (12) -#define GPS_PARSER_NAV_SOL_MSG_LENGTH (52) -#define GPS_PARSER_NAV_STATUS_MSG_LENGTH (16) -#define GPS_PARSER_NAV_SVINFOP1_MSG_LENGTH (8) -#define GPS_PARSER_NAV_SVINFOP2_MSG_LENGTH (12) -#define GPS_PARSER_NAV_TIMEBDS_MSG_LENGTH (20) -#define GPS_PARSER_NAV_TIMEGAL_MSG_LENGTH (20) -#define GPS_PARSER_NAV_TIMEGLO_MSG_LENGTH (20) -#define GPS_PARSER_NAV_TIMEGPS_MSG_LENGTH (16) -#define GPS_PARSER_NAV_TIMELS_MSG_LENGTH (24) -#define GPS_PARSER_NAV_TIMEUTC_MSG_LENGTH (20) -#define GPS_PARSER_NAV_VELECEF_MSG_LENGTH (20) -#define GPS_PARSER_NAV_VELNED_MSG_LENGTH (36) - -/************************************************************************* -** -** Type definitions -** -**************************************************************************/ - -/* -** (none) -*/ - -/************************************************************************* -** -** Imported data -** -**************************************************************************/ - -/* -** (none) -*/ - -/************************************************************************* -** -** Exported data -** -**************************************************************************/ - - - -/************************************************************************* -** -** File data -** -**************************************************************************/ - -/* -** (none) -*/ - -/************************************************************************* -** Local function prototypes -**************************************************************************/ -void GPS_Nav_ParseChar_POSECEF(uint8 byte, GPS_DeviceMessage_t* message) -{ - if(GPS_AppCustomData.ParserStatus.MsgLength != GPS_PARSER_NAV_POSECEF_MSG_LENGTH) - { - GPS_AppCustomData.ParserStatus.ParseError++; - CFE_EVS_SendEvent(GPS_INIT_DEVICE_PARSER_ERR_EID, CFE_EVS_ERROR, - "Received POSECEF message with incorrect length (%u).", GPS_AppCustomData.ParserStatus.MsgLength); - GPS_Parser_Reset(); - } - else - { - GPS_NAV_POSECEF_t *payload = (void*)CFE_SB_GetUserData((CFE_SB_MsgPtr_t)message); - switch(GPS_AppCustomData.ParserStatus.PayloadCursor) - { - case 0: - { - CFE_SB_MsgId_t sbMsgID = GPS_TranslateMsgID(GPS_AppCustomData.ParserStatus.ClassID, GPS_AppCustomData.ParserStatus.MsgID); - uint16 sbHdrSize = CFE_SB_MsgHdrSize(sbMsgID); - uint16 sbTotalMsgSize = sbHdrSize + GPS_AppCustomData.ParserStatus.MsgLength; - CFE_SB_InitMsg(message, sbMsgID, sbTotalMsgSize, TRUE); - - payload->iTOW = byte; - break; - } - - case 1: - { - payload->iTOW += byte << 8; - break; - } - case 2: - { - payload->iTOW += byte << 16; - break; - } - case 3: - { - payload->iTOW += byte << 24; - break; - } - case 4: - { - payload->ecefX = byte; - break; - } - case 5: - { - payload->ecefX += byte << 8; - break; - } - case 6: - { - payload->ecefX += byte << 16; - break; - } - case 7: - { - payload->ecefX += byte << 24; - break; - } - case 8: - { - payload->ecefY = byte; - break; - } - case 9: - { - payload->ecefY += byte << 8; - break; - } - case 10: - { - payload->ecefY += byte << 16; - break; - } - case 11: - { - payload->ecefY += byte << 24; - break; - } - case 12: - { - payload->ecefZ = byte; - break; - } - case 13: - { - payload->ecefZ += byte << 8; - break; - } - case 14: - { - payload->ecefZ += byte << 16; - break; - } - case 15: - { - payload->ecefZ += byte << 24; - break; - } - case 16: - { - payload->pAcc = byte; - break; - } - case 17: - { - payload->pAcc += byte << 8; - break; - } - case 18: - { - payload->pAcc += byte << 16; - break; - } - case 19: - { - payload->pAcc += byte << 24; - GPS_Parser_StateChange(GPS_PARSE_STATE_GOT_PAYLOAD); - break; - } - default: - { - GPS_Parser_Reset(); - return; - } - } - } -} - -/* Incoming messages. */ -void GPS_Nav_ParseChar_POSLLH(uint8 byte, GPS_DeviceMessage_t* message) -{ - if(GPS_AppCustomData.ParserStatus.MsgLength != GPS_PARSER_NAV_POSLLH_MSG_LENGTH) - { - GPS_AppCustomData.ParserStatus.ParseError++; - CFE_EVS_SendEvent(GPS_INIT_DEVICE_PARSER_ERR_EID, CFE_EVS_ERROR, - "Received POSLLH message with incorrect length (%u).", GPS_AppCustomData.ParserStatus.MsgLength); - GPS_Parser_Reset(); - } - else - { - GPS_NAV_POSLLH_t *payload = (void*)CFE_SB_GetUserData((CFE_SB_MsgPtr_t)message); - switch(GPS_AppCustomData.ParserStatus.PayloadCursor) - { - case 0: - { - CFE_SB_MsgId_t sbMsgID = GPS_TranslateMsgID(GPS_AppCustomData.ParserStatus.ClassID, GPS_AppCustomData.ParserStatus.MsgID); - uint16 sbHdrSize = CFE_SB_MsgHdrSize(sbMsgID); - uint16 sbTotalMsgSize = sbHdrSize + GPS_AppCustomData.ParserStatus.MsgLength; - CFE_SB_InitMsg(message, sbMsgID, sbTotalMsgSize, TRUE); - - payload->iTOW = byte; - break; - } - case 1: - { - payload->iTOW += byte << 8; - break; - } - case 2: - { - payload->iTOW += byte << 16; - break; - } - case 3: - { - payload->iTOW += byte << 24; - break; - } - case 4: - { - payload->lon = byte; - break; - } - case 5: - { - payload->lon += byte << 8; - break; - } - case 6: - { - payload->lon += byte << 16; - break; - } - case 7: - { - payload->lon += byte << 24; - break; - } - case 8: - { - payload->lat = byte; - break; - } - case 9: - { - payload->lat += byte << 8; - break; - } - case 10: - { - payload->lat += byte << 16; - break; - } - case 11: - { - payload->lat += byte << 24; - break; - } - case 12: - { - payload->height = byte; - break; - } - case 13: - { - payload->height += byte << 8; - break; - } - case 14: - { - payload->height += byte << 16; - break; - } - case 15: - { - payload->height += byte << 24; - break; - } - case 16: - { - payload->hMSL = byte; - break; - } - case 17: - { - payload->hMSL += byte << 8; - break; - } - case 18: - { - payload->hMSL += byte << 16; - break; - } - case 19: - { - payload->hMSL += byte << 24; - break; - } - case 20: - { - payload->hAcc = byte; - break; - } - case 21: - { - payload->hAcc += byte << 8; - break; - } - case 22: - { - payload->hAcc += byte << 16; - break; - } - case 23: - { - payload->hAcc += byte << 24; - break; - } - case 24: - { - payload->vAcc = byte; - break; - } - case 25: - { - payload->vAcc += byte << 8; - break; - } - case 26: - { - payload->vAcc += byte << 16; - break; - } - case 27: - { - payload->vAcc += byte << 24; - GPS_Parser_StateChange(GPS_PARSE_STATE_GOT_PAYLOAD); - break; - } - default: - { - GPS_Parser_Reset(); - return; - } - } - } -} - - -void GPS_Nav_ParseChar_STATUS(uint8 byte, GPS_DeviceMessage_t* message) -{ - if(GPS_AppCustomData.ParserStatus.MsgLength != GPS_PARSER_NAV_STATUS_MSG_LENGTH) - { - GPS_AppCustomData.ParserStatus.ParseError++; - CFE_EVS_SendEvent(GPS_INIT_DEVICE_PARSER_ERR_EID, CFE_EVS_ERROR, - "Received STATUS message with incorrect length (%u).", GPS_AppCustomData.ParserStatus.MsgLength); - GPS_Parser_Reset(); - } - else - { - GPS_NAV_STATUS_t *payload = (void*)CFE_SB_GetUserData((CFE_SB_MsgPtr_t)message); - switch(GPS_AppCustomData.ParserStatus.PayloadCursor) - { - case 0: - { - CFE_SB_MsgId_t sbMsgID = GPS_TranslateMsgID(GPS_AppCustomData.ParserStatus.ClassID, GPS_AppCustomData.ParserStatus.MsgID); - uint16 sbHdrSize = CFE_SB_MsgHdrSize(sbMsgID); - uint16 sbTotalMsgSize = sbHdrSize + GPS_AppCustomData.ParserStatus.MsgLength; - CFE_SB_InitMsg(message, sbMsgID, sbTotalMsgSize, TRUE); - - payload->iTOW = byte; - break; - } - case 1: - { - payload->iTOW += byte << 8; - break; - } - case 2: - { - payload->iTOW += byte << 16; - break; - } - case 3: - { - payload->iTOW += byte << 24; - break; - } - case 4: - { - payload->gpsFix = byte; - break; - } - case 5: - { - payload->flags = byte; - break; - } - case 6: - { - payload->fixStat = byte; - break; - } - case 7: - { - payload->flags2 = byte; - break; - } - case 8: - { - payload->ttff = byte; - break; - } - case 9: - { - payload->ttff += byte << 8; - break; - } - case 10: - { - payload->ttff += byte << 16; - break; - } - case 11: - { - payload->ttff += byte << 24; - break; - } - case 12: - { - payload->msss = byte; - break; - } - case 13: - { - payload->msss += byte << 8; - break; - } - case 14: - { - payload->msss += byte << 16; - break; - } - case 15: - { - payload->msss += byte << 24; - GPS_Parser_StateChange(GPS_PARSE_STATE_GOT_PAYLOAD); - break; - } - default: - { - GPS_Parser_Reset(); - return; - } - } - } -} - - - -void GPS_Nav_ParseChar_DOP(uint8 byte, GPS_DeviceMessage_t* message) -{ - if(GPS_AppCustomData.ParserStatus.MsgLength != GPS_PARSER_NAV_DOP_MSG_LENGTH) - { - GPS_AppCustomData.ParserStatus.ParseError++; - CFE_EVS_SendEvent(GPS_INIT_DEVICE_PARSER_ERR_EID, CFE_EVS_ERROR, - "Received DOP message with incorrect length (%u).", GPS_AppCustomData.ParserStatus.MsgLength); - GPS_Parser_Reset(); - } - else - { - GPS_NAV_DOP_t *payload = (void*)CFE_SB_GetUserData((CFE_SB_MsgPtr_t)message); - switch(GPS_AppCustomData.ParserStatus.PayloadCursor) - { - case 0: - { - CFE_SB_MsgId_t sbMsgID = GPS_TranslateMsgID(GPS_AppCustomData.ParserStatus.ClassID, GPS_AppCustomData.ParserStatus.MsgID); - uint16 sbHdrSize = CFE_SB_MsgHdrSize(sbMsgID); - uint16 sbTotalMsgSize = sbHdrSize + GPS_AppCustomData.ParserStatus.MsgLength; - CFE_SB_InitMsg(message, sbMsgID, sbTotalMsgSize, TRUE); - - payload->iTOW = byte; - break; - } - case 1: - { - payload->iTOW += byte << 8; - break; - } - case 2: - { - payload->iTOW += byte << 16; - break; - } - case 3: - { - payload->iTOW += byte << 24; - break; - } - case 4: - { - payload->gDOP = byte; - break; - } - case 5: - { - payload->gDOP += byte << 8; - break; - } - case 6: - { - payload->pDOP = byte; - break; - } - case 7: - { - payload->pDOP += byte << 8; - break; - } - case 8: - { - payload->tDOP = byte; - break; - } - case 9: - { - payload->tDOP += byte << 8; - break; - } - case 10: - { - payload->vDOP = byte; - break; - } - case 11: - { - payload->vDOP += byte << 8; - break; - } - case 12: - { - payload->hDOP = byte; - break; - } - case 13: - { - payload->hDOP += byte << 8; - break; - } - case 14: - { - payload->nDOP = byte; - break; - } - case 15: - { - payload->nDOP += byte << 8; - break; - } - case 16: - { - payload->eDOP = byte; - break; - } - case 17: - { - payload->eDOP += byte << 8; - GPS_Parser_StateChange(GPS_PARSE_STATE_GOT_PAYLOAD); - break; - } - default: - { - GPS_Parser_Reset(); - return; - } - } - } -} - - -void GPS_Nav_ParseChar_ATT(uint8 byte, GPS_DeviceMessage_t* message) -{ - if(GPS_AppCustomData.ParserStatus.MsgLength != GPS_PARSER_NAV_ATT_MSG_LENGTH) - { - GPS_AppCustomData.ParserStatus.ParseError++; - CFE_EVS_SendEvent(GPS_INIT_DEVICE_PARSER_ERR_EID, CFE_EVS_ERROR, - "Received ATT message with incorrect length (%u).", GPS_AppCustomData.ParserStatus.MsgLength); - GPS_Parser_Reset(); - } - else - { - GPS_NAV_ATT_t *payload = (void*)CFE_SB_GetUserData((CFE_SB_MsgPtr_t)message); - switch(GPS_AppCustomData.ParserStatus.PayloadCursor) - { - case 0: - { - CFE_SB_MsgId_t sbMsgID = GPS_TranslateMsgID(GPS_AppCustomData.ParserStatus.ClassID, GPS_AppCustomData.ParserStatus.MsgID); - uint16 sbHdrSize = CFE_SB_MsgHdrSize(sbMsgID); - uint16 sbTotalMsgSize = sbHdrSize + GPS_AppCustomData.ParserStatus.MsgLength; - CFE_SB_InitMsg(message, sbMsgID, sbTotalMsgSize, TRUE); - - payload->iTOW = byte; - break; - } - case 1: - { - payload->iTOW += byte << 8; - break; - } - case 2: - { - payload->iTOW += byte << 16; - break; - } - case 3: - { - payload->iTOW += byte << 24; - break; - } - case 4: - { - payload->version = byte; - break; - } - case 5: - /* Fall Through */ - case 6: - /* Fall Through */ - case 7: - { - break; - } - case 8: - { - payload->roll = byte; - break; - } - case 9: - { - payload->roll += byte << 8; - break; - } - case 10: - { - payload->roll += byte << 16; - break; - } - case 11: - { - payload->roll += byte << 24; - break; - } - case 12: - { - payload->pitch = byte; - break; - } - case 13: - { - payload->pitch += byte << 8; - break; - } - case 14: - { - payload->pitch += byte << 16; - break; - } - case 15: - { - payload->pitch += byte << 24; - break; - } - case 16: - { - payload->heading = byte; - break; - } - case 17: - { - payload->heading += byte << 8; - break; - } - case 18: - { - payload->heading += byte << 16; - break; - } - case 19: - { - payload->heading += byte << 24; - break; - } - case 20: - { - payload->accRoll = byte; - break; - } - case 21: - { - payload->accRoll += byte << 8; - break; - } - case 22: - { - payload->accRoll += byte << 16; - break; - } - case 23: - { - payload->accRoll += byte << 24; - break; - } - case 24: - { - payload->accPitch = byte; - break; - } - case 25: - { - payload->accPitch += byte << 8; - break; - } - case 26: - { - payload->accPitch += byte << 16; - break; - } - case 27: - { - payload->accPitch += byte << 24; - break; - } - case 28: - { - payload->accHeading = byte; - break; - } - case 29: - { - payload->accHeading += byte << 8; - break; - } - case 30: - { - payload->accHeading += byte << 16; - break; - } - case 31: - { - payload->accHeading += byte << 24; - GPS_Parser_StateChange(GPS_PARSE_STATE_GOT_PAYLOAD); - break; - } - default: - { - GPS_Parser_Reset(); - return; - } - } - } -} - - - -void GPS_Nav_ParseChar_SOL(uint8 byte, GPS_DeviceMessage_t* message) -{ - if(GPS_AppCustomData.ParserStatus.MsgLength != GPS_PARSER_NAV_SOL_MSG_LENGTH) - { - GPS_AppCustomData.ParserStatus.ParseError++; - CFE_EVS_SendEvent(GPS_INIT_DEVICE_PARSER_ERR_EID, CFE_EVS_ERROR, - "Received SOL message with incorrect length (%u).", GPS_AppCustomData.ParserStatus.MsgLength); - GPS_Parser_Reset(); - } - else - { - GPS_NAV_SOL_t *payload = (void*)CFE_SB_GetUserData((CFE_SB_MsgPtr_t)message); - switch(GPS_AppCustomData.ParserStatus.PayloadCursor) - { - case 0: - { - CFE_SB_MsgId_t sbMsgID = GPS_TranslateMsgID(GPS_AppCustomData.ParserStatus.ClassID, GPS_AppCustomData.ParserStatus.MsgID); - uint16 sbHdrSize = CFE_SB_MsgHdrSize(sbMsgID); - uint16 sbTotalMsgSize = sbHdrSize + GPS_AppCustomData.ParserStatus.MsgLength; - CFE_SB_InitMsg(message, sbMsgID, sbTotalMsgSize, TRUE); - - payload->iTOW = byte; - break; - } - case 1: - { - payload->iTOW += byte << 8; - break; - } - case 2: - { - payload->iTOW += byte << 16; - break; - } - case 3: - { - payload->iTOW += byte << 24; - break; - } - case 4: - { - payload->fTOW = byte; - break; - } - case 5: - { - payload->fTOW = byte << 8; - break; - } - case 6: - { - payload->fTOW += byte << 16; - break; - } - case 7: - { - payload->fTOW += byte << 24; - break; - } - case 8: - { - payload->week = byte; - break; - } - case 9: - { - payload->week += byte << 8; - break; - } - case 10: - { - payload->gpsFix = byte; - break; - } - case 11: - { - payload->flags = byte; - break; - } - case 12: - { - payload->ecefX = byte; - break; - } - case 13: - { - payload->ecefX += byte << 8; - break; - } - case 14: - { - payload->ecefX += byte << 16; - break; - } - case 15: - { - payload->ecefX += byte << 24; - break; - } - case 16: - { - payload->ecefY = byte; - break; - } - case 17: - { - payload->ecefY += byte << 8; - break; - } - case 18: - { - payload->ecefY += byte << 16; - break; - } - case 19: - { - payload->ecefY += byte << 24; - break; - } - case 20: - { - payload->ecefZ = byte; - break; - } - case 21: - { - payload->ecefZ += byte << 8; - break; - } - case 22: - { - payload->ecefZ += byte << 16; - break; - } - case 23: - { - payload->ecefZ += byte << 24; - break; - } - case 24: - { - payload->pAcc = byte; - break; - } - case 25: - { - payload->pAcc += byte << 8; - break; - } - case 26: - { - payload->pAcc += byte << 16; - break; - } - case 27: - { - payload->pAcc += byte << 24; - break; - } - case 28: - { - payload->ecefVX = byte; - break; - } - case 29: - { - payload->ecefVX += byte << 8; - break; - } - case 30: - { - payload->ecefVX += byte << 16; - break; - } - case 31: - { - payload->ecefVX += byte << 24; - break; - } - case 32: - { - payload->ecefVY = byte; - break; - } - case 33: - { - payload->ecefVY += byte << 8; - break; - } - case 34: - { - payload->ecefVY += byte << 16; - break; - } - case 35: - { - payload->ecefVY += byte << 24; - break; - } - case 36: - { - payload->ecefVZ = byte; - break; - } - case 37: - { - payload->ecefVZ += byte << 8; - break; - } - case 38: - { - payload->ecefVZ += byte << 16; - break; - } - case 39: - { - payload->ecefVZ += byte << 24; - break; - } - case 40: - { - payload->sAcc = byte; - break; - } - case 41: - { - payload->sAcc += byte << 8; - break; - } - case 42: - { - payload->sAcc += byte << 16; - break; - } - case 43: - { - payload->sAcc += byte << 24; - break; - } - case 44: - { - payload->pDOP = byte; - break; - } - case 45: - { - payload->pDOP += byte << 8; - break; - } - case 46: - { - break; - } - case 47: - { - payload->numSV = byte; - GPS_Parser_StateChange(GPS_PARSE_STATE_GOT_PAYLOAD); - break; - } - default: - { - GPS_Parser_Reset(); - return; - } - } - } -} - - - -void GPS_Nav_ParseChar_PVT(uint8 byte, GPS_DeviceMessage_t* message) -{ - if(GPS_AppCustomData.ParserStatus.MsgLength != GPS_PARSER_NAV_PVT_MSG_LENGTH) - { - GPS_AppCustomData.ParserStatus.ParseError++; - CFE_EVS_SendEvent(GPS_INIT_DEVICE_PARSER_ERR_EID, CFE_EVS_ERROR, - "Received PVT message with incorrect length (%u).", GPS_AppCustomData.ParserStatus.MsgLength); - GPS_Parser_Reset(); - } - else - { - GPS_NAV_PVT_t *payload = (void*)CFE_SB_GetUserData((CFE_SB_MsgPtr_t)message); - switch(GPS_AppCustomData.ParserStatus.PayloadCursor) - { - case 0: - { - CFE_SB_MsgId_t sbMsgID = GPS_TranslateMsgID(GPS_AppCustomData.ParserStatus.ClassID, GPS_AppCustomData.ParserStatus.MsgID); - uint16 sbHdrSize = CFE_SB_MsgHdrSize(sbMsgID); - uint16 sbTotalMsgSize = sbHdrSize + GPS_AppCustomData.ParserStatus.MsgLength; - CFE_SB_InitMsg(message, sbMsgID, sbTotalMsgSize, TRUE); - - payload->iTOW = byte; - break; - } - case 1: - { - payload->iTOW += byte << 8; - break; - } - case 2: - { - payload->iTOW += byte << 16; - break; - } - case 3: - { - payload->iTOW += byte << 24; - break; - } - case 4: - { - payload->year = byte; - break; - } - case 5: - { - payload->year = byte << 8; - break; - } - case 6: - { - payload->month = byte; - break; - } - case 7: - { - payload->day = byte; - break; - } - case 8: - { - payload->hour = byte; - break; - } - case 9: - { - payload->min = byte; - break; - } - case 10: - { - payload->sec = byte; - break; - } - case 11: - { - payload->valid = byte; - break; - } - case 12: - { - payload->tAcc = byte; - break; - } - case 13: - { - payload->tAcc += byte << 8; - break; - } - case 14: - { - payload->tAcc += byte << 16; - break; - } - case 15: - { - payload->tAcc += byte << 24; - break; - } - case 16: - { - payload->nano = byte; - break; - } - case 17: - { - payload->nano += byte << 8; - break; - } - case 18: - { - payload->nano += byte << 16; - break; - } - case 19: - { - payload->nano += byte << 24; - break; - } - case 20: - { - payload->fixType = byte; - break; - } - case 21: - { - payload->flags = byte; - break; - } - case 22: - { - payload->flags2 = byte; - break; - } - case 23: - { - payload->numSV = byte; - break; - } - case 24: - { - payload->lon = byte; - break; - } - case 25: - { - payload->lon += byte << 8; - break; - } - case 26: - { - payload->lon += byte << 16; - break; - } - case 27: - { - payload->lon += byte << 24; - break; - } - case 28: - { - payload->lat = byte; - break; - } - case 29: - { - payload->lat += byte << 8; - break; - } - case 30: - { - payload->lat += byte << 16; - break; - } - case 31: - { - payload->lat += byte << 24; - break; - } - case 32: - { - payload->height = byte; - break; - } - case 33: - { - payload->height += byte << 8; - break; - } - case 34: - { - payload->height += byte << 16; - break; - } - case 35: - { - payload->height += byte << 24; - break; - } - case 36: - { - payload->hMSL = byte; - break; - } - case 37: - { - payload->hMSL += byte << 8; - break; - } - case 38: - { - payload->hMSL += byte << 16; - break; - } - case 39: - { - payload->hMSL += byte << 24; - break; - } - case 40: - { - payload->hAcc = byte; - break; - } - case 41: - { - payload->hAcc += byte << 8; - break; - } - case 42: - { - payload->hAcc += byte << 16; - break; - } - case 43: - { - payload->hAcc += byte << 24; - break; - } - case 44: - { - payload->vAcc = byte; - break; - } - case 45: - { - payload->vAcc += byte << 8; - break; - } - case 46: - { - payload->vAcc += byte << 16; - break; - } - case 47: - { - payload->vAcc += byte << 24; - break; - } - case 48: - { - payload->velN = byte; - break; - } - case 49: - { - payload->velN += byte << 8; - break; - } - case 50: - { - payload->velN += byte << 16; - break; - } - case 51: - { - payload->velN += byte << 24; - break; - } - case 52: - { - payload->velE = byte; - break; - } - case 53: - { - payload->velE += byte << 8; - break; - } - case 54: - { - payload->velE += byte << 16; - break; - } - case 55: - { - payload->velE += byte << 24; - break; - } - case 56: - { - payload->velD = byte; - break; - } - case 57: - { - payload->velD += byte << 8; - break; - } - case 58: - { - payload->velD += byte << 16; - break; - } - case 59: - { - payload->velD += byte << 24; - break; - } - case 60: - { - payload->gSpeed = byte; - break; - } - case 61: - { - payload->gSpeed += byte << 8; - break; - } - case 62: - { - payload->gSpeed += byte << 16; - break; - } - case 63: - { - payload->gSpeed += byte << 24; - break; - } - case 64: - { - payload->headMot = byte; - break; - } - case 65: - { - payload->headMot += byte << 8; - break; - } - case 66: - { - payload->headMot += byte << 16; - break; - } - case 67: - { - payload->headMot += byte << 24; - break; - } - case 68: - { - payload->sAcc = byte; - break; - } - case 69: - { - payload->sAcc += byte << 8; - break; - } - case 70: - { - payload->sAcc += byte << 16; - break; - } - case 71: - { - payload->sAcc += byte << 24; - break; - } - case 72: - { - payload->headAcc = byte; - break; - } - case 73: - { - payload->headAcc += byte << 8; - break; - } - case 74: - { - payload->headAcc += byte << 16; - break; - } - case 75: - { - payload->headAcc += byte << 24; - break; - } - case 76: - { - payload->pDOP = byte; - break; - } - case 77: - { - payload->pDOP += byte << 8; - break; - } - case 78: - /* Fall Through */ - case 79: - /* Fall Through */ - case 80: - /* Fall Through */ - case 81: - /* Fall Through */ - case 82: - /* Fall Through */ - case 83: - { - break; - } - case 84: - { - payload->headVeh = byte; - break; - } - case 85: - { - payload->headVeh += byte << 8; - break; - } - case 86: - { - payload->headVeh += byte << 16; - break; - } - case 87: - { - payload->headVeh += byte << 24; - break; - } - case 88: - { - payload->magDec = byte; - break; - } - case 89: - { - payload->magDec += byte << 8; - break; - } - case 90: - { - payload->magAcc = byte; - break; - } - case 91: - { - payload->magAcc += byte << 8; - GPS_Parser_StateChange(GPS_PARSE_STATE_GOT_PAYLOAD); - break; - } - default: - { - GPS_Parser_Reset(); - return; - } - } - } -} - - - -void GPS_Nav_ParseChar_ODO(uint8 byte, GPS_DeviceMessage_t* message) -{ - if(GPS_AppCustomData.ParserStatus.MsgLength != GPS_PARSER_NAV_ODO_MSG_LENGTH) - { - GPS_AppCustomData.ParserStatus.ParseError++; - CFE_EVS_SendEvent(GPS_INIT_DEVICE_PARSER_ERR_EID, CFE_EVS_ERROR, - "Received ODO message with incorrect length (%u).", GPS_AppCustomData.ParserStatus.MsgLength); - GPS_Parser_Reset(); - } - else - { - GPS_NAV_ODO_t *payload = (void*)CFE_SB_GetUserData((CFE_SB_MsgPtr_t)message); - switch(GPS_AppCustomData.ParserStatus.PayloadCursor) - { - case 0: - { - CFE_SB_MsgId_t sbMsgID = GPS_TranslateMsgID(GPS_AppCustomData.ParserStatus.ClassID, GPS_AppCustomData.ParserStatus.MsgID); - uint16 sbHdrSize = CFE_SB_MsgHdrSize(sbMsgID); - uint16 sbTotalMsgSize = sbHdrSize + GPS_AppCustomData.ParserStatus.MsgLength; - CFE_SB_InitMsg(message, sbMsgID, sbTotalMsgSize, TRUE); - - payload->version = byte; - break; - } - case 1: - /* Fall Through */ - case 2: - /* Fall Through */ - case 3: - { - break; - } - case 4: - { - payload->iTOW = byte; - break; - } - case 5: - { - payload->iTOW += byte << 8; - break; - } - case 6: - { - payload->iTOW += byte << 16; - break; - } - case 7: - { - payload->iTOW += byte << 24; - break; - } - case 8: - { - payload->distance = byte; - break; - } - case 9: - { - payload->distance += byte << 8; - break; - } - case 10: - { - payload->distance += byte << 16; - break; - } - case 11: - { - payload->distance += byte << 24; - break; - } - case 12: - { - payload->totalDistance = byte; - break; - } - case 13: - { - payload->totalDistance += byte << 8; - break; - } - case 14: - { - payload->totalDistance += byte << 16; - break; - } - case 15: - { - payload->totalDistance += byte << 24; - break; - } - case 16: - { - payload->distanceStd = byte; - break; - } - case 17: - { - payload->distanceStd += byte << 8; - break; - } - case 18: - { - payload->distanceStd += byte << 16; - break; - } - case 19: - { - payload->distanceStd += byte << 24; - GPS_Parser_StateChange(GPS_PARSE_STATE_GOT_PAYLOAD); - break; - } - default: - { - GPS_Parser_Reset(); - return; - } - } - } -} - - - -void GPS_Nav_ParseChar_RESETODO(uint8 byte, GPS_DeviceMessage_t* message) -{ - -} - - - -void GPS_Nav_ParseChar_VELECEF(uint8 byte, GPS_DeviceMessage_t* message) -{ - -} - - - -void GPS_Nav_ParseChar_VELNED(uint8 byte, GPS_DeviceMessage_t* message) -{ - -} - - - -void GPS_Nav_ParseChar_TIMEGPS(uint8 byte, GPS_DeviceMessage_t* message) -{ - -} - - - -void GPS_Nav_ParseChar_TIMEUTC(uint8 byte, GPS_DeviceMessage_t* message) -{ - if(GPS_AppCustomData.ParserStatus.MsgLength != GPS_PARSER_NAV_TIMEUTC_MSG_LENGTH) - { - GPS_AppCustomData.ParserStatus.ParseError++; - CFE_EVS_SendEvent(GPS_INIT_DEVICE_PARSER_ERR_EID, CFE_EVS_ERROR, - "Received TIMEUTC message with incorrect length (%u).", GPS_AppCustomData.ParserStatus.MsgLength); - GPS_Parser_Reset(); - } - else - { - GPS_NAV_TIMEUTC_t *payload = (void*)CFE_SB_GetUserData((CFE_SB_MsgPtr_t)message); - switch(GPS_AppCustomData.ParserStatus.PayloadCursor) - { - case 0: - { - CFE_SB_MsgId_t sbMsgID = GPS_TranslateMsgID(GPS_AppCustomData.ParserStatus.ClassID, GPS_AppCustomData.ParserStatus.MsgID); - uint16 sbHdrSize = CFE_SB_MsgHdrSize(sbMsgID); - uint16 sbTotalMsgSize = sbHdrSize + GPS_AppCustomData.ParserStatus.MsgLength; - CFE_SB_InitMsg(message, sbMsgID, sbTotalMsgSize, TRUE); - - payload->iTOW = byte; - break; - } - case 1: - { - payload->iTOW += byte << 8; - break; - } - case 2: - { - payload->iTOW += byte << 16; - break; - } - case 3: - { - payload->iTOW += byte << 24; - break; - } - case 4: - { - payload->tAcc = byte; - break; - } - case 5: - { - payload->tAcc += byte << 8; - break; - } - case 6: - { - payload->tAcc += byte << 16; - break; - } - case 7: - { - payload->tAcc += byte << 24; - break; - } - case 8: - { - payload->nano = byte; - break; - } - case 9: - { - payload->nano += byte << 8; - break; - } - case 10: - { - payload->nano += byte << 16; - break; - } - case 11: - { - payload->nano += byte << 24; - break; - } - case 12: - { - payload->year = byte; - break; - } - case 13: - { - payload->year += byte << 8; - break; - } - case 14: - { - payload->month = byte; - break; - } - case 15: - { - payload->day = byte; - break; - } - case 16: - { - payload->hour = byte; - break; - } - case 17: - { - payload->min = byte; - break; - } - case 18: - { - payload->sec = byte; - break; - } - case 19: - { - payload->valid = byte; - GPS_Parser_StateChange(GPS_PARSE_STATE_GOT_PAYLOAD); - break; - } - default: - { - GPS_Parser_Reset(); - return; - } - } - } -} - - - -void GPS_Nav_ParseChar_CLOCK(uint8 byte, GPS_DeviceMessage_t* message) -{ - -} - - - -void GPS_Nav_ParseChar_TIMEGLO(uint8 byte, GPS_DeviceMessage_t* message) -{ - -} - - - -void GPS_Nav_ParseChar_TIMEBDS(uint8 byte, GPS_DeviceMessage_t* message) -{ - -} - - - -void GPS_Nav_ParseChar_TIMEGAL(uint8 byte, GPS_DeviceMessage_t* message) -{ - -} - - - -void GPS_Nav_ParseChar_TIMELS(uint8 byte, GPS_DeviceMessage_t* message) -{ - -} - - - -void GPS_Nav_ParseChar_SVINFOH(uint8 byte, GPS_DeviceMessage_t* message) -{ - static int i = 0; - /* SVINFO is variable length 8 + 12*numCH so no length check here */ - GPS_NAV_SVINFO_Combined_t *payload = (void*)CFE_SB_GetUserData((CFE_SB_MsgPtr_t)message); - /* If we're in part 1 of the SVINFO message*/ - if(GPS_AppCustomData.ParserStatus.PayloadCursor < 8) - { - switch(GPS_AppCustomData.ParserStatus.PayloadCursor) - { - case 0: - { - CFE_SB_MsgId_t sbMsgID = GPS_TranslateMsgID(GPS_AppCustomData.ParserStatus.ClassID, GPS_AppCustomData.ParserStatus.MsgID); - uint16 sbHdrSize = CFE_SB_MsgHdrSize(sbMsgID); - uint16 sbTotalMsgSize = sbHdrSize + GPS_AppCustomData.ParserStatus.MsgLength; - CFE_SB_InitMsg(message, sbMsgID, sbTotalMsgSize, TRUE); - - payload->svinfo.iTOW = byte; - break; - } - case 1: - { - payload->svinfo.iTOW += byte << 8; - break; - } - case 2: - { - payload->svinfo.iTOW += byte << 16; - break; - } - case 3: - { - payload->svinfo.iTOW += byte << 24; - break; - } - case 4: - { - payload->svinfo.numCh = byte; - /* Length check */ - if (byte != (GPS_AppCustomData.ParserStatus.MsgLength - 8) / 12 && - byte != 0) - { - GPS_AppCustomData.ParserStatus.ParseError++; - CFE_EVS_SendEvent(GPS_INIT_DEVICE_PARSER_ERR_EID, CFE_EVS_ERROR, - "Received SVINFO message with incorrect length (%u), numCh (%u).", - GPS_AppCustomData.ParserStatus.MsgLength, byte); - GPS_Parser_Reset(); - } - break; - } - case 5: - { - payload->svinfo.globalFlags = byte; - break; - } - case 6: - { - payload->svinfo.reserved2 = byte; - break; - } - case 7: - { - payload->svinfo.reserved2 += byte << 8; - /* If we don't have any part 2 messages */ - /* TODO verify this is possible */ - if (0 == (GPS_AppCustomData.ParserStatus.MsgLength - 8) / 12) - { - GPS_Parser_StateChange(GPS_PARSE_STATE_GOT_PAYLOAD); - } - break; - } - default: - { - GPS_Parser_Reset(); - return; - } - } - } - /* If we're in part 2 of the SVINFO message */ - else if(GPS_AppCustomData.ParserStatus.PayloadCursor >= 8) - { - /* Save a max limim of part 2 SVINFO messages */ - if (i < (GPS_AppCustomData.ParserStatus.MsgLength - 8) / 12 && - i < PX4_SAT_INFO_MAX_SATELLITES) - { - switch((GPS_AppCustomData.ParserStatus.PayloadCursor - 8) % 12) - { - case 0: - { - payload->numCh[i].chn = byte; - break; - } - case 1: - { - payload->numCh[i].svid = byte; - break; - } - case 2: - { - payload->numCh[i].flags = byte; - break; - } - case 3: - { - payload->numCh[i].quality = byte; - break; - } - case 4: - { - payload->numCh[i].cno = byte; - break; - } - case 5: - { - payload->numCh[i].elev = byte; - break; - } - case 6: - { - payload->numCh[i].azim = byte; - break; - } - case 7: - { - payload->numCh[i].azim += byte << 8; - break; - } - case 8: - { - payload->numCh[i].prRes = byte; - break; - } - case 9: - { - payload->numCh[i].prRes += byte << 8; - break; - } - case 10: - { - payload->numCh[i].prRes += byte << 16; - break; - } - case 11: - { - payload->numCh[i].prRes += byte << 24; - i++; - break; - } - default: - { - GPS_Parser_Reset(); - return; - } - } - } - /* end of message */ - else if (i == (GPS_AppCustomData.ParserStatus.MsgLength - 8) / 12) - { - i = 0; - GPS_Parser_StateChange(GPS_PARSE_STATE_GOT_PAYLOAD); - } - /* Max limit of part 2 SVINFO messages reached */ - else if (i >= PX4_SAT_INFO_MAX_SATELLITES) - { - /* Do nothing, continue parsing until end of message */ - } - else - { - GPS_Parser_Reset(); - } - } -} - - - -void GPS_Nav_ParseChar_DGPS(uint8 byte, GPS_DeviceMessage_t* message) -{ - -} - - - -void GPS_Nav_ParseChar_SBAS(uint8 byte, GPS_DeviceMessage_t* message) -{ - if(GPS_AppCustomData.ParserStatus.MsgLength != GPS_PARSER_NAV_SBAS_MSG_LENGTH) - { - GPS_AppCustomData.ParserStatus.ParseError++; - CFE_EVS_SendEvent(GPS_INIT_DEVICE_PARSER_ERR_EID, CFE_EVS_ERROR, - "Received SBAS message with incorrect length (%u).", GPS_AppCustomData.ParserStatus.MsgLength); - GPS_Parser_Reset(); - } - else - { - GPS_NAV_SBAS_t *payload = (void*)CFE_SB_GetUserData((CFE_SB_MsgPtr_t)message); - switch(GPS_AppCustomData.ParserStatus.PayloadCursor) - { - case 0: - { - CFE_SB_MsgId_t sbMsgID = GPS_TranslateMsgID(GPS_AppCustomData.ParserStatus.ClassID, GPS_AppCustomData.ParserStatus.MsgID); - uint16 sbHdrSize = CFE_SB_MsgHdrSize(sbMsgID); - uint16 sbTotalMsgSize = sbHdrSize + GPS_AppCustomData.ParserStatus.MsgLength; - CFE_SB_InitMsg(message, sbMsgID, sbTotalMsgSize, TRUE); - - payload->iTOW = byte; - break; - } - case 2: - { - payload->iTOW += byte << 8; - break; - } - case 3: - { - payload->iTOW += byte << 16; - break; - } - case 4: - { - payload->iTOW += byte << 24; - break; - } - case 5: - { - payload->geo = byte; - break; - } - case 6: - { - payload->mode = byte; - break; - } - case 7: - { - payload->sys = byte; - break; - } - case 8: - { - payload->service = byte; - break; - } - case 9: - { - payload->cnt = byte; - GPS_Parser_StateChange(GPS_PARSE_STATE_GOT_PAYLOAD); - break; - } - default: - { - GPS_Parser_Reset(); - return; - } - } - } -} - - - -void GPS_Nav_ParseChar_ORB(uint8 byte, GPS_DeviceMessage_t* message) -{ - if(GPS_AppCustomData.ParserStatus.MsgLength != GPS_PARSER_NAV_ORB_MSG_LENGTH) - { - GPS_AppCustomData.ParserStatus.ParseError++; - CFE_EVS_SendEvent(GPS_INIT_DEVICE_PARSER_ERR_EID, CFE_EVS_ERROR, - "Received ORB message with incorrect length (%u).", GPS_AppCustomData.ParserStatus.MsgLength); - GPS_Parser_Reset(); - } - else - { - GPS_NAV_ORB_t *payload = (void*)CFE_SB_GetUserData((CFE_SB_MsgPtr_t)message); - switch(GPS_AppCustomData.ParserStatus.PayloadCursor) - { - case 0: - { - CFE_SB_MsgId_t sbMsgID = GPS_TranslateMsgID(GPS_AppCustomData.ParserStatus.ClassID, GPS_AppCustomData.ParserStatus.MsgID); - uint16 sbHdrSize = CFE_SB_MsgHdrSize(sbMsgID); - uint16 sbTotalMsgSize = sbHdrSize + GPS_AppCustomData.ParserStatus.MsgLength; - CFE_SB_InitMsg(message, sbMsgID, sbTotalMsgSize, TRUE); - - payload->iTOW = byte; - break; - } - case 2: - { - payload->iTOW += byte << 8; - break; - } - case 3: - { - payload->iTOW += byte << 16; - break; - } - case 4: - { - payload->iTOW += byte << 24; - break; - } - case 5: - { - payload->version = byte; - break; - } - case 6: - { - payload->numSv = byte; - break; - } - case 7: - /* Fall Through */ - case 8: - { - break; - } - default: - { - GPS_Parser_Reset(); - return; - } - } - } -} - - - -void GPS_Nav_ParseChar_SAT(uint8 byte, GPS_DeviceMessage_t* message) -{ - if(GPS_AppCustomData.ParserStatus.MsgLength != GPS_PARSER_NAV_SAT_MSG_LENGTH) - { - GPS_AppCustomData.ParserStatus.ParseError++; - CFE_EVS_SendEvent(GPS_INIT_DEVICE_PARSER_ERR_EID, CFE_EVS_ERROR, - "Received SAT message with incorrect length (%u).", GPS_AppCustomData.ParserStatus.MsgLength); - GPS_Parser_Reset(); - } - else - { - GPS_NAV_SAT_t *payload = (void*)CFE_SB_GetUserData((CFE_SB_MsgPtr_t)message); - switch(GPS_AppCustomData.ParserStatus.PayloadCursor) - { - case 0: - { - CFE_SB_MsgId_t sbMsgID = GPS_TranslateMsgID(GPS_AppCustomData.ParserStatus.ClassID, GPS_AppCustomData.ParserStatus.MsgID); - uint16 sbHdrSize = CFE_SB_MsgHdrSize(sbMsgID); - uint16 sbTotalMsgSize = sbHdrSize + GPS_AppCustomData.ParserStatus.MsgLength; - CFE_SB_InitMsg(message, sbMsgID, sbTotalMsgSize, TRUE); - - payload->iTOW = byte; - break; - } - case 2: - { - payload->iTOW += byte << 8; - break; - } - case 3: - { - payload->iTOW += byte << 16; - break; - } - case 4: - { - payload->iTOW += byte << 24; - break; - } - case 5: - { - payload->version = byte; - break; - } - case 6: - { - payload->numSvs = byte; - break; - } - case 7: - /* Fall Through */ - case 8: - { - GPS_Parser_StateChange(GPS_PARSE_STATE_GOT_PAYLOAD); - break; - } - default: - { - GPS_Parser_Reset(); - return; - } - } - } -} - - - -void GPS_Nav_ParseChar_GEOFENCE(uint8 byte, GPS_DeviceMessage_t* message) -{ - if(GPS_AppCustomData.ParserStatus.MsgLength != GPS_PARSER_NAV_GEOFENCE_MSG_LENGTH) - { - GPS_AppCustomData.ParserStatus.ParseError++; - CFE_EVS_SendEvent(GPS_INIT_DEVICE_PARSER_ERR_EID, CFE_EVS_ERROR, - "Received GEOFENCE message with incorrect length (%u).", GPS_AppCustomData.ParserStatus.MsgLength); - GPS_Parser_Reset(); - } - else - { - GPS_NAV_GEOFENCE_t *payload = (void*)CFE_SB_GetUserData((CFE_SB_MsgPtr_t)message); - switch(GPS_AppCustomData.ParserStatus.PayloadCursor) - { - case 0: - { - CFE_SB_MsgId_t sbMsgID = GPS_TranslateMsgID(GPS_AppCustomData.ParserStatus.ClassID, GPS_AppCustomData.ParserStatus.MsgID); - uint16 sbHdrSize = CFE_SB_MsgHdrSize(sbMsgID); - uint16 sbTotalMsgSize = sbHdrSize + GPS_AppCustomData.ParserStatus.MsgLength; - CFE_SB_InitMsg(message, sbMsgID, sbTotalMsgSize, TRUE); - - payload->iTOW = byte; - break; - } - case 2: - { - payload->iTOW += byte << 8; - break; - } - case 3: - { - payload->iTOW += byte << 16; - break; - } - case 4: - { - payload->iTOW += byte << 24; - break; - } - case 5: - { - payload->version = byte; - break; - } - case 6: - { - payload->status = byte; - break; - } - case 7: - { - payload->numFences = byte; - break; - } - case 8: - { - payload->combState = byte; - break; - } - default: - { - GPS_Parser_Reset(); - return; - } - } - } -} - - - -void GPS_Nav_ParseChar_AOPSTATUS(uint8 byte, GPS_DeviceMessage_t* message) -{ - if(GPS_AppCustomData.ParserStatus.MsgLength != GPS_PARSER_NAV_AOPSTATUS_MSG_LENGTH) - { - GPS_AppCustomData.ParserStatus.ParseError++; - CFE_EVS_SendEvent(GPS_INIT_DEVICE_PARSER_ERR_EID, CFE_EVS_ERROR, - "Received AOPSTATUS message with incorrect length (%u).", GPS_AppCustomData.ParserStatus.MsgLength); - GPS_Parser_Reset(); - } - else - { - GPS_NAV_AOPSTATUS_t *payload = (void*)CFE_SB_GetUserData((CFE_SB_MsgPtr_t)message); - switch(GPS_AppCustomData.ParserStatus.PayloadCursor) - { - case 0: - { - CFE_SB_MsgId_t sbMsgID = GPS_TranslateMsgID(GPS_AppCustomData.ParserStatus.ClassID, GPS_AppCustomData.ParserStatus.MsgID); - uint16 sbHdrSize = CFE_SB_MsgHdrSize(sbMsgID); - uint16 sbTotalMsgSize = sbHdrSize + GPS_AppCustomData.ParserStatus.MsgLength; - CFE_SB_InitMsg(message, sbMsgID, sbTotalMsgSize, TRUE); - - payload->iTOW = byte; - break; - } - case 2: - { - payload->iTOW += byte << 8; - break; - } - case 3: - { - payload->iTOW += byte << 16; - break; - } - case 4: - { - payload->iTOW += byte << 24; - break; - } - case 5: - { - payload->aopCfg = byte; - break; - } - case 6: - { - payload->status; - break; - } - case 7: - /* Fall Through */ - case 8: - /* Fall Through */ - case 9: - /* Fall Through */ - case 10: - /* Fall Through */ - case 11: - /* Fall Through */ - case 12: - /* Fall Through */ - case 13: - /* Fall Through */ - case 14: - /* Fall Through */ - case 15: - /* Fall Through */ - case 16: - { - GPS_Parser_StateChange(GPS_PARSE_STATE_GOT_PAYLOAD); - break; - } - default: - { - GPS_Parser_Reset(); - return; - } - } - } -} - - - -void GPS_Nav_ParseChar_EOE(uint8 byte, GPS_DeviceMessage_t* message) -{ - if(GPS_AppCustomData.ParserStatus.MsgLength != GPS_PARSER_NAV_EOE_MSG_LENGTH) - { - GPS_AppCustomData.ParserStatus.ParseError++; - CFE_EVS_SendEvent(GPS_INIT_DEVICE_PARSER_ERR_EID, CFE_EVS_ERROR, - "Received EOE message with incorrect length (%u).", GPS_AppCustomData.ParserStatus.MsgLength); - GPS_Parser_Reset(); - } - else - { - GPS_NAV_EOE_t *payload = (void*)CFE_SB_GetUserData((CFE_SB_MsgPtr_t)message); - switch(GPS_AppCustomData.ParserStatus.PayloadCursor) - { - case 0: - { - CFE_SB_MsgId_t sbMsgID = GPS_TranslateMsgID(GPS_AppCustomData.ParserStatus.ClassID, GPS_AppCustomData.ParserStatus.MsgID); - uint16 sbHdrSize = CFE_SB_MsgHdrSize(sbMsgID); - uint16 sbTotalMsgSize = sbHdrSize + GPS_AppCustomData.ParserStatus.MsgLength; - CFE_SB_InitMsg(message, sbMsgID, sbTotalMsgSize, TRUE); - - payload->iTOW = byte; - break; - } - case 2: - { - payload->iTOW += byte << 8; - break; - } - case 3: - { - payload->iTOW += byte << 16; - break; - } - case 4: - { - payload->iTOW += byte << 24; - GPS_Parser_StateChange(GPS_PARSE_STATE_GOT_PAYLOAD); - break; - } - default: - { - GPS_Parser_Reset(); - return; - } - } - } -} - - -/************************/ -/* End of File Comment */ -/************************/ - diff --git a/config/ocpoc/s1000/target/apps/gps/src/gps_parser_ubx/gps_parser_ubx_nav.h b/config/ocpoc/s1000/target/apps/gps/src/gps_parser_ubx/gps_parser_ubx_nav.h deleted file mode 100644 index 37d548f2d..000000000 --- a/config/ocpoc/s1000/target/apps/gps/src/gps_parser_ubx/gps_parser_ubx_nav.h +++ /dev/null @@ -1,121 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ -/************************************************************************* -** -** Include section -** -**************************************************************************/ -#ifndef _GPS_PARSER_UBX_NAV_H_ -#define _GPS_PARSER_UBX_NAV_H_ - -#ifdef __cplusplus -extern "C" { -#endif - -#include "cfe.h" -#include "../gps_custom_shared.h" -//#include "GPS_events.h" -//#include "GPS_msgids.h" - -/************************************************************************* -** -** Macro definitions -** -**************************************************************************/ - - -/************************************************************************* -** -** Type definitions -** -**************************************************************************/ - -/* -** (none) -*/ - -/************************************************************************* -** -** Imported data -** -**************************************************************************/ - -/* -** (none) -*/ - -/************************************************************************* -** -** Exported data -** -**************************************************************************/ - -void GPS_Nav_ParseChar_POSECEF(uint8 byte, GPS_DeviceMessage_t* message); -void GPS_Nav_ParseChar_POSLLH(uint8 byte, GPS_DeviceMessage_t* message); -void GPS_Nav_ParseChar_STATUS(uint8 byte, GPS_DeviceMessage_t* message); -void GPS_Nav_ParseChar_DOP(uint8 byte, GPS_DeviceMessage_t* message); -void GPS_Nav_ParseChar_ATT(uint8 byte, GPS_DeviceMessage_t* message); -void GPS_Nav_ParseChar_SOL(uint8 byte, GPS_DeviceMessage_t* message); -void GPS_Nav_ParseChar_PVT(uint8 byte, GPS_DeviceMessage_t* message); -void GPS_Nav_ParseChar_ODO(uint8 byte, GPS_DeviceMessage_t* message); -void GPS_Nav_ParseChar_RESETODO(uint8 byte, GPS_DeviceMessage_t* message); -void GPS_Nav_ParseChar_VELECEF(uint8 byte, GPS_DeviceMessage_t* message); -void GPS_Nav_ParseChar_VELNED(uint8 byte, GPS_DeviceMessage_t* message); -void GPS_Nav_ParseChar_TIMEGPS(uint8 byte, GPS_DeviceMessage_t* message); -void GPS_Nav_ParseChar_TIMEUTC(uint8 byte, GPS_DeviceMessage_t* message); -void GPS_Nav_ParseChar_CLOCK(uint8 byte, GPS_DeviceMessage_t* message); -void GPS_Nav_ParseChar_TIMEGLO(uint8 byte, GPS_DeviceMessage_t* message); -void GPS_Nav_ParseChar_TIMEBDS(uint8 byte, GPS_DeviceMessage_t* message); -void GPS_Nav_ParseChar_TIMEGAL(uint8 byte, GPS_DeviceMessage_t* message); -void GPS_Nav_ParseChar_TIMELS(uint8 byte, GPS_DeviceMessage_t* message); -void GPS_Nav_ParseChar_SVINFOH(uint8 byte, GPS_DeviceMessage_t* message); -void GPS_Nav_ParseChar_DGPS(uint8 byte, GPS_DeviceMessage_t* message); -void GPS_Nav_ParseChar_SBAS(uint8 byte, GPS_DeviceMessage_t* message); -void GPS_Nav_ParseChar_ORB(uint8 byte, GPS_DeviceMessage_t* message); -void GPS_Nav_ParseChar_SAT(uint8 byte, GPS_DeviceMessage_t* message); -void GPS_Nav_ParseChar_GEOFENCE(uint8 byte, GPS_DeviceMessage_t* message); -void GPS_Nav_ParseChar_AOPSTATUS(uint8 byte, GPS_DeviceMessage_t* message); -void GPS_Nav_ParseChar_EOE(uint8 byte, GPS_DeviceMessage_t* message); - -//int32 GPS_Nav_EnablePOSLLH(void); - -#ifdef __cplusplus -} -#endif - -#endif /* _GPS_PARSER_UBX_NAV_H_*/ - -/************************/ -/* End of File Comment */ -/************************/ - diff --git a/config/ocpoc/s1000/target/apps/gps/src/gps_parser_ubx/gps_ubx_msg.h b/config/ocpoc/s1000/target/apps/gps/src/gps_parser_ubx/gps_ubx_msg.h deleted file mode 100644 index f5359c88d..000000000 --- a/config/ocpoc/s1000/target/apps/gps/src/gps_parser_ubx/gps_ubx_msg.h +++ /dev/null @@ -1,534 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ - -#ifndef _GPS_UBX_MSG_H_ -#define _GPS_UBX_MSG_H_ - -#ifdef __cplusplus -extern "C" { -#endif - -#include "common_types.h" -#include "px4_msgs.h" - -#define GPS_COEF_SIZE (8) - -/* RX NAV-PVT message content details */ -/* Bitfield "valid" masks */ -/**< validDate (Valid UTC Date) */ -#define GPS_NAV_PVT_VALID_VALIDDATE (0x01) -/**< validTime (Valid UTC Time) */ -#define GPS_NAV_PVT_VALID_VALIDTIME (0x02) -/**< fullyResolved (1 = UTC Time of Day has been fully resolved (no seconds uncertainty)) */ -#define GPS_NAV_PVT_VALID_FULLYRESOLVED (0x04) - -/* Bitfield "flags" masks */ -/**< gnssFixOK (A valid fix (i.e within DOP & accuracy masks)) */ -#define GPS_NAV_PVT_FLAGS_GNSSFIXOK (0x01) -/**< diffSoln (1 if differential corrections were applied) */ -#define GPS_NAV_PVT_FLAGS_DIFFSOLN (0x02) -/**< psmState (Power Save Mode state (see Power Management)) */ -#define GPS_NAV_PVT_FLAGS_PSMSTATE (0x1C) -/**< headVehValid (Heading of vehicle is valid) */ -#define GPS_NAV_PVT_FLAGS_HEADVEHVALID (0x20) -/**< Carrier phase range solution (RTK mode) */ -#define GPS_NAV_PVT_FLAGS_CARRSOLN (0xC0) - -/* RX NAV-TIMEUTC message content details */ -/* Bitfield "valid" masks */ -/**< validTOW (1 = Valid Time of Week) */ -#define GPS_NAV_TIMEUTC_VALID_VALIDTOW (0x01) -/**< validWKN (1 = Valid Week Number) */ -#define GPS_NAV_TIMEUTC_VALID_VALIDKWN (0x02) -/**< validUTC (1 = Valid UTC Time) */ -#define GPS_NAV_TIMEUTC_VALID_VALIDUTC (0x04) -/**< utcStandard (0..15 = UTC standard identifier) */ -#define GPS_NAV_TIMEUTC_VALID_UTCSTANDARD (0xF0) - -#define GPS_MON_HW_VP_PIN_COUNT (17) - -typedef struct -{ - uint32 iTOW; - uint8 aopCfg; - uint8 status; -} GPS_NAV_AOPSTATUS_t; - - -typedef struct -{ - uint32 iTOW; - uint8 version; - int32 roll; - int32 pitch; - int32 heading; - uint32 accRoll; - uint32 accPitch; - uint32 accHeading; -} GPS_NAV_ATT_t; - - -typedef struct -{ - uint32 iTOW; - int32 clkB; - int32 clkD; - uint32 tAcc; - uint32 fAcc; -} GPS_NAV_CLOCK_t; - - -typedef struct -{ - uint32 iTOW; - int32 age; - int16 baseId; - int16 baseHealth; - uint8 numCh; - uint8 status; -} GPS_NAV_DGPS_t; - - -typedef struct -{ - uint32 iTOW; - uint16 gDOP; - uint16 pDOP; - uint16 tDOP; - uint16 vDOP; - uint16 hDOP; - uint16 nDOP; - uint16 eDOP; -} GPS_NAV_DOP_t; - - -typedef struct -{ - uint32 iTOW; -} GPS_NAV_EOE_t; - - -typedef struct -{ - uint32 iTOW; - uint8 version; - uint8 status; - uint8 numFences; - uint8 combState; -} GPS_NAV_GEOFENCE_t; - - -typedef struct -{ - uint8 version; - uint32 iTOW; - uint32 distance; - uint32 totalDistance; - uint32 distanceStd; -} GPS_NAV_ODO_t; - - -typedef struct -{ - uint32 iTOW; - uint8 version; - uint8 numSv; -} GPS_NAV_ORB_t; - - -typedef struct -{ - uint32 iTOW; - int32 ecefX; - int32 ecefY; - int32 ecefZ; - uint32 pAcc; -} GPS_NAV_POSECEF_t; - - -typedef struct -{ - uint32 iTOW; - int32 lon; - int32 lat; - int32 height; - int32 hMSL; - uint32 hAcc; - uint32 vAcc; -} GPS_NAV_POSLLH_t; - - -typedef struct -{ - uint32 iTOW; - uint16 year; - uint8 month; - uint8 day; - uint8 hour; - uint8 min; - uint8 sec; - uint8 valid; - uint32 tAcc; - int32 nano; - uint8 fixType; - uint8 flags; - uint8 flags2; - uint8 numSV; - int32 lon; - int32 lat; - int32 height; - int32 hMSL; - uint32 hAcc; - uint32 vAcc; - int32 velN; - int32 velE; - int32 velD; - int32 gSpeed; - int32 headMot; - uint32 sAcc; - uint32 headAcc; - uint16 pDOP; - uint16 reserved2; - uint32 reserved3; - int32 headVeh; - int16 magDec; - uint16 magAcc; -} GPS_NAV_PVT_t; - - -typedef struct -{ - uint32 iTOW; - uint8 version; - uint8 numSvs; -} GPS_NAV_SAT_t; - - -typedef struct -{ - uint32 iTOW; - uint8 geo; - uint8 mode; - int8 sys; - uint8 service; - uint8 cnt; -} GPS_NAV_SBAS_t; - - -typedef struct -{ - uint32 iTOW; - int32 fTOW; - int16 week; - uint8 gpsFix; - uint8 flags; - int32 ecefX; - int32 ecefY; - int32 ecefZ; - uint32 pAcc; - int32 ecefVX; - int32 ecefVY; - int32 ecefVZ; - uint32 sAcc; - uint16 pDOP; - uint8 numSV; -} GPS_NAV_SOL_t; - - -typedef struct -{ - uint32 iTOW; - uint8 gpsFix; - uint8 flags; - uint8 fixStat; - uint8 flags2; - uint32 ttff; - uint32 msss; -} GPS_NAV_STATUS_t; - - -typedef struct -{ - uint32 iTOW; - uint8 numCh; - uint8 globalFlags; - uint16 reserved2; -} GPS_NAV_SVINFO_P1_t; - - -typedef struct -{ - uint8 chn; - uint8 svid; - uint8 flags; - uint8 quality; - uint8 cno; - int8 elev; - int16 azim; - int32 prRes; -} GPS_NAV_SVINFO_P2_t; - - -typedef struct -{ - GPS_NAV_SVINFO_P1_t svinfo; - GPS_NAV_SVINFO_P2_t numCh[PX4_SAT_INFO_MAX_SATELLITES]; -} GPS_NAV_SVINFO_Combined_t; - -typedef struct -{ - uint32 iTOW; - uint32 SOW; - int32 fSOW; - int16 week; - int8 leapS; - uint8 valid; - uint32 tAcc; -} GPS_NAV_TIMEBDS_t; - - -typedef struct -{ - uint32 iTOW; - uint32 galTow; - int32 fGalTow; - int16 galWno; - int8 leapS; - uint8 valid; - uint32 tAcc; -} GPS_NAV_TIMEGAL_t; - - -typedef struct -{ - uint32 iTOW; - uint32 TOD; - int32 fTOD; - uint16 Nt; - uint8 N4; - uint8 valid; - uint32 tAcc; -} GPS_NAV_TIMEGLO_t; - - -typedef struct -{ - uint32 iTOW; - int32 fTOW; - int16 week; - int8 leapS; - uint8 valid; - uint32 tAcc; -} GPS_NAV_TIMEGPS_t; - - -typedef struct -{ - uint32 iTOW; - uint8 version; - uint8 srcOfCurrLs; - int8 currLs; - uint8 srcOfLsChange; - int8 lsChange; - int32 timeToLsEvent; - uint16 dateOfLsGpsWn; - uint16 dateOfLsGpsDn; - uint8 valid; -} GPS_NAV_TIMELS_t; - - -typedef struct -{ - uint32 iTOW; - uint32 tAcc; - int32 nano; - uint16 year; - uint8 month; - uint8 day; - uint8 hour; - uint8 min; - uint8 sec; - uint8 valid; -} GPS_NAV_TIMEUTC_t; - - -typedef struct -{ - uint32 iTOW; - int32 ecefVX; - int32 ecefVY; - int32 ecefVZ; - uint32 sAcc; -} GPS_NAV_VELECEF_t; - - -typedef struct -{ - uint32 iTOW; - int32 velN; - int32 velE; - int32 velD; - uint32 speed; - uint32 gSpeed; - int32 heading; - uint32 sAcc; - uint32 cAcc; -} GPS_NAV_VELNED_t; - - -typedef struct -{ - uint32 pinSel; - uint32 pinBank; - uint32 pinDir; - uint32 pinVal; - uint16 noisePerMS; - uint16 agcCnt; - uint8 aStatus; - uint8 aPower; - uint8 flags; - uint8 reserved1; - uint32 usedMask; - uint8 vp[GPS_MON_HW_VP_PIN_COUNT]; - uint8 jamInd; - uint16 reserved2; - uint32 pinIrq; - uint32 pullH; - uint32 pullL; -} GPS_MON_HW_t; - - -typedef struct -{ - uint32 clearMask; - uint32 saveMask; - uint32 loadMask; - uint8 deviceMask; -} GPS_CFG_CFG_t; - - -typedef struct -{ - uint16 mask; - uint8 dynModel; - uint8 fixMode; - int32 fixedAlt; - uint32 fixedAltVar; - int8 minElev; - uint8 drLimit; - uint16 pDop; - uint16 tDop; - uint16 pAcc; - uint16 tAcc; - uint8 staticHoldThresh; - uint8 dgnssTimeout; - uint8 cnoThreshNumSVs; - uint8 cnoThresh; - uint16 reserved1; - uint16 staticHoldMaxDist; - uint8 utcStandard; - uint8 reserved2; - uint32 reserved3; -} GPS_CFG_NAV5_t; - - -typedef struct -{ - uint8 mode; - uint8 usage; - uint8 maxSBAS; - uint8 scanmode2; - uint32 scanmode1; -} GPS_CFG_SBAS_t; - - -typedef struct -{ - uint8 version; - uint8 reserved1; - uint16 flags; - int32 ecefXOrLat; - int32 ecefYOrLon; - int32 ecefZOrAlt; - int8 ecefXOrLatHP; - int8 ecefYOrLonHP; - int8 ecefZOrAltHP; - uint8 reserved2; - uint32 fixedPosAcc; - uint32 svinMinDur; - uint32 svinAccLimit; - uint8 reserved3[8]; -} GPS_CFG_TMODE3_t; - - -typedef struct -{ - uint8 portID; - uint8 reserved1; - uint16 txReady; - uint32 mode; - uint32 baudRate; - uint16 inProtoMask; - uint16 outProtoMask; - uint16 flags; - uint16 reserved2; -} GPS_CFG_PRT_t; - - -typedef struct -{ - uint8 msgClass; - uint8 msgID; - uint8 rate[6]; -} GPS_CFG_MSG_t; - - -typedef struct -{ - uint8 clsID; - uint8 msgID; -} GPS_ACK_ACK_t; - - -typedef struct -{ - uint8 clsID; - uint8 msgID; -} GPS_ACK_NAK_t; - - -#ifdef __cplusplus -} -#endif - -#endif /* _GPS_UBX_MSG_H_ */ diff --git a/config/ocpoc/s1000/target/apps/gps/tables/gps_config.c b/config/ocpoc/s1000/target/apps/gps/tables/gps_config.c deleted file mode 100644 index cc445d766..000000000 --- a/config/ocpoc/s1000/target/apps/gps/tables/gps_config.c +++ /dev/null @@ -1,63 +0,0 @@ -/* -** Pragmas -*/ - -/* -** Include Files -*/ -#include "cfe_tbl_filedef.h" -#include "gps_tbldefs.h" - -/* -** Local Defines -*/ - -/* -** Local Structure Declarations -*/ -static OS_USED CFE_TBL_FileDef_t CFE_TBL_FileDef = -{ - /* Content format: ObjName[64], TblName[38], Desc[32], TgtFileName[20], ObjSize - ** ObjName - variable name of config table, e.g., CI_ConfigDefTbl[] - ** TblName - app's table name, e.g., CI.CONFIG_TBL, where CI is the same app name - ** used in cfe_es_startup.scr, and CI_defConfigTbl is the same table - ** name passed in to CFE_TBL_Register() - ** Desc - description of table in string format - ** TgtFileName[20] - table file name, compiled as .tbl file extension - ** ObjSize - size of the entire table - */ - - "GPS_ConfigTbl", "GPS.CONFIG_TBL", "GPS default config table", - "gps_config.tbl", (sizeof(GPS_ConfigTbl_t)) -}; - -/* -** External Global Variables -*/ - -/* -** Global Variables -*/ - -/* Default GPS config table data */ -GPS_ConfigTbl_t GPS_ConfigTbl = -{ - /* TODO: Define table. */ -}; - -/* -** Local Variables -*/ - -/* -** Function Prototypes -*/ - -/* -** Function Definitions -*/ - -/*======================================================================================= -** End of file gps_config.c -**=====================================================================================*/ - diff --git a/config/ocpoc/s1000/target/apps/ld/CMakeLists.txt b/config/ocpoc/s1000/target/apps/ld/CMakeLists.txt deleted file mode 100644 index 755dd4658..000000000 --- a/config/ocpoc/s1000/target/apps/ld/CMakeLists.txt +++ /dev/null @@ -1,9 +0,0 @@ -set(APP_NAME ld) - -buildliner_add_table( - ${APP_NAME} - NAME ld_config - SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/tables/ld_config.c -) - -buildliner_add_app_unit_test_src(${APP_NAME} SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/tables/ld_config.c) diff --git a/config/ocpoc/s1000/target/apps/mpu9250/CMakeLists.txt b/config/ocpoc/s1000/target/apps/mpu9250/CMakeLists.txt deleted file mode 100644 index c0463f607..000000000 --- a/config/ocpoc/s1000/target/apps/mpu9250/CMakeLists.txt +++ /dev/null @@ -1,7 +0,0 @@ -set(APP_NAME mpu9250) - -buildliner_add_table( - ${APP_NAME} - NAME mpu9250_config - SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/tables/mpu9250_config.c -) diff --git a/config/ocpoc/s1000/target/apps/mpu9250/src/CMakeLists.txt b/config/ocpoc/s1000/target/apps/mpu9250/src/CMakeLists.txt deleted file mode 100644 index 48e666f2c..000000000 --- a/config/ocpoc/s1000/target/apps/mpu9250/src/CMakeLists.txt +++ /dev/null @@ -1,5 +0,0 @@ -# Set source for custom code. -set(APP_CUSTOM_SRC - ${CMAKE_CURRENT_SOURCE_DIR}/mpu9250_custom.c - PARENT_SCOPE - ) diff --git a/config/ocpoc/s1000/target/apps/mpu9250/src/mpu9250_custom.c b/config/ocpoc/s1000/target/apps/mpu9250/src/mpu9250_custom.c deleted file mode 100644 index 7c14f9736..000000000 --- a/config/ocpoc/s1000/target/apps/mpu9250/src/mpu9250_custom.c +++ /dev/null @@ -1,1134 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ -/************************************************************************ -** Pragmas -*************************************************************************/ - -/************************************************************************ -** Includes -*************************************************************************/ -#include "cfe.h" -#include "mpu9250_spi.h" -#include "mpu9250_events.h" -#include "mpu9250_perfids.h" -#include "px4lib.h" - - -#include -#include -#include -#include -#include -#include -#include -#include -#include - -/************************************************************************ -** Local Defines -*************************************************************************/ - -/************************************************************************ -** Local Structure Declarations -*************************************************************************/ -typedef enum { - -/** \brief 'MPU9250 - ' -** \event 'MPU9250 - ' -** -** \par Type: ERROR -** -** \par Cause: -** -** This event message is issued when a device resource encounters an -** error. -** -*/ - MPU9250_DEVICE_ERR_EID = MPU9250_EVT_CNT, - -/** \brief 'MPU9250 - ' -** \event 'MPU9250 - ' -** -** \par Type: Info -** -** \par Cause: -** -** This event message is issued when a device successfully complete a -** self test. -** -*/ - MPU9250_DEVICE_INF_EID, -/** \brief Number of custom events -** -** \par Limits: -** int32 -*/ - MPU9250_CUSTOM_EVT_CNT -} MPU9250_CustomEventIds_t; - - -/************************************************************************ -** External Global Variables -*************************************************************************/ - -/************************************************************************ -** Global Variables -*************************************************************************/ -MPU9250_AppCustomData_t MPU9250_AppCustomData; -struct spi_ioc_transfer MPU9250_SPI_Xfer[2]; - -/************************************************************************ -** Local Variables -*************************************************************************/ - -/************************************************************************ -** Local Function Definitions -*************************************************************************/ -int32 MPU9250_Ioctl(int fh, int request, void *arg) -{ - int32 returnCode = 0; - uint32 i = 0; - - for (i=0; i < MPU9250_MAX_RETRY_ATTEMPTS; i++) - { - returnCode = ioctl(fh, request, arg); - - if (-1 == returnCode && EINTR == errno) - { - usleep(MPU9250_MAX_RETRY_SLEEP_USEC); - } - else - { - break; - } - } - - return returnCode; -} - - -void MPU9250_Custom_InitData(void) -{ - /* Set all struct zero values */ - bzero(&MPU9250_AppCustomData, sizeof(MPU9250_AppCustomData)); -} - - -boolean MPU9250_Custom_Init() -{ - boolean returnBool = TRUE; - int ret = 0; - int i = 0; - int8 mode = MPU9250_SPI_DEVICE_MODE; - int8 bits = MPU9250_SPI_DEVICE_BITS; - uint32 speed = MPU9250_SPI_DEVICE_SPEED; - - MPU9250_AppCustomData.DeviceFd = open(MPU9250_SPI_DEVICE_PATH, O_RDWR); - if (MPU9250_AppCustomData.DeviceFd < 0) - { - CFE_EVS_SendEvent(MPU9250_DEVICE_ERR_EID, CFE_EVS_ERROR, - "MPU9250 Device open errno: %i", errno); - returnBool = FALSE; - goto end_of_function; - } - - ret = MPU9250_Ioctl(MPU9250_AppCustomData.DeviceFd, SPI_IOC_WR_MODE, &mode); - if (-1 == ret) - { - CFE_EVS_SendEvent(MPU9250_DEVICE_ERR_EID, CFE_EVS_ERROR, - "Can't set SPI mode."); - returnBool = FALSE; - goto end_of_function; - } - - ret = MPU9250_Ioctl(MPU9250_AppCustomData.DeviceFd, SPI_IOC_RD_MODE, &mode); - if (-1 == ret) - { - CFE_EVS_SendEvent(MPU9250_DEVICE_ERR_EID, CFE_EVS_ERROR, - "Can't get SPI mode."); - returnBool = FALSE; - goto end_of_function; - } - - ret = MPU9250_Ioctl(MPU9250_AppCustomData.DeviceFd, SPI_IOC_WR_BITS_PER_WORD, &bits); - if (-1 == ret) - { - CFE_EVS_SendEvent(MPU9250_DEVICE_ERR_EID, CFE_EVS_ERROR, - "Can't set bits per word."); - returnBool = FALSE; - goto end_of_function; - } - - ret = MPU9250_Ioctl(MPU9250_AppCustomData.DeviceFd, SPI_IOC_RD_BITS_PER_WORD, &bits); - if (-1 == ret) - { - CFE_EVS_SendEvent(MPU9250_DEVICE_ERR_EID, CFE_EVS_ERROR, - "Can't get bits per word."); - returnBool = FALSE; - goto end_of_function; - } - - ret = MPU9250_Ioctl(MPU9250_AppCustomData.DeviceFd, SPI_IOC_WR_MAX_SPEED_HZ, &speed); - if (-1 == ret) - { - CFE_EVS_SendEvent(MPU9250_DEVICE_ERR_EID, CFE_EVS_ERROR, - "Can't set max speed."); - returnBool = FALSE; - goto end_of_function; - } - - ret = MPU9250_Ioctl(MPU9250_AppCustomData.DeviceFd, SPI_IOC_RD_MAX_SPEED_HZ, &speed); - if (-1 == ret) - { - CFE_EVS_SendEvent(MPU9250_DEVICE_ERR_EID, CFE_EVS_ERROR, - "Can't get max speed."); - returnBool = FALSE; - goto end_of_function; - } - - /* Keep CS activated */ - MPU9250_SPI_Xfer[0].cs_change = 0; - MPU9250_SPI_Xfer[0].delay_usecs = 0; - MPU9250_SPI_Xfer[0].speed_hz = speed; - MPU9250_SPI_Xfer[0].bits_per_word = 8; - - ret = MPU9250_ResetDevice(); - if (-1 == ret) - { - CFE_EVS_SendEvent(MPU9250_DEVICE_ERR_EID, CFE_EVS_ERROR, - "Reset device failed."); - returnBool = FALSE; - goto end_of_function; - } - - /* TODO Add Gyroscope Self-Test */ - /* TODO Add Accelerometer Self-Test */ - - uint8 MPU_Init_Data[MPU_InitRegNum][2] = { - /* Reset Device */ - {0x80, MPU9250_REG_PWR_MGMT_1}, - /* Clock Source */ - {0x01, MPU9250_REG_PWR_MGMT_1}, - /* Enable Acc & Gyro */ - {0x00, MPU9250_REG_PWR_MGMT_2}, - /* Use DLPF set Gyroscope bandwidth 250Hz, temperature bandwidth 4000Hz */ - {MPU9250_DEFAULT_LOWPASS_FILTER, MPU9250_REG_CONFIG}, - /* +-2000dps */ - {0x18, MPU9250_REG_GYRO_CONFIG}, - /* +-4G */ - {0x08, MPU9250_REG_ACCEL_CONFIG}, - /* Set Acc Data Rates, Enable Acc LPF , Bandwidth 184Hz */ - {0x09, MPU9250_REG_ACCEL_CONFIG2}, - /* LATCH_INT_EN INT pin level held unitl interrupt status is - * cleared. IN_ANYRD_2CLEAR interrupt status is cleared if - * any read operation is performed. */ - {0x30, MPU9250_REG_INT_PIN_CFG}, - /* I2C Speed 348 kHz */ - //{0x40, MPUREG_I2C_MST_CTRL}, - /* Enable AUX */ - //{0x20, MPUREG_USER_CTRL}, - /* I2C Master mode */ - {0x20, MPU9250_REG_USER_CTRL}, - /* I2C 400KHz */ - {MPU9250_I2C_MST_P_NSR | MPU9250_I2C_MST_WAIT_FOR_ES | - MPU9250_I2C_MST_CLOCK_400HZ, MPU9250_REG_I2C_MST_CTRL}, - //{0x0D, MPU9250_REG_I2C_MST_CTRL}, - /* Set the I2C slave addres of AK8963 and set for write. */ - {MPU9250_AK8963_I2C_ADDR, MPU9250_REG_I2C_SLV0_ADDR}, - //{0x09, MPUREG_I2C_SLV4_CTRL}, - /* Enable I2C delay */ - //{0x81, MPUREG_I2C_MST_DELAY_CTRL}, - /* I2C slave 0 register address from where to begin data transfer */ - {MPU9250_AK8963_CNTL2, MPU9250_REG_I2C_SLV0_REG}, - /* Reset AK8963 */ - {0x01, MPU9250_REG_I2C_SLV0_DO}, - /* Enable I2C and set 1 byte */ - {0x81, MPU9250_REG_I2C_SLV0_CTRL}, - /* I2C slave 0 register address from where to begin data transfer */ - {MPU9250_AK8963_CNTL1, MPU9250_REG_I2C_SLV0_REG}, - /* Fused ROM read mode */ - //{MPU9250_AK8963_FUSE_MODE | MPU9250_AK8963_16BIT_ADC, MPU9250_REG_I2C_SLV0_DO}, - /* Register value to continuous measurement mode 1 in 16bit */ - //{0x12, MPU9250_REG_I2C_SLV0_DO}, - /* Register value to continuous measurement mode 2 in 16bit */ - {0x16, MPU9250_REG_I2C_SLV0_DO}, - /* Enable I2C and set 1 byte */ - {0x81, MPU9250_REG_I2C_SLV0_CTRL}, - /* Set the I2C slave address of AK8963 and set for read. */ - {MPU9250_AK8963_I2C_ADDR | 0x80, MPU9250_REG_I2C_SLV0_ADDR}, - /* I2C slave 0 register address from where to begin data transfer */ - {MPU9250_AK8963_WIA, MPU9250_REG_I2C_SLV0_REG}, - //{MPU9250_AK8963_ASAX, MPU9250_REG_I2C_SLV0_REG}, - /* Enable I2C and set 1 byte */ - {0x8f, MPU9250_REG_I2C_SLV0_CTRL} - //{0x83, MPU9250_REG_I2C_SLV0_CTRL} - }; - - for(i = 0; i < MPU_InitRegNum; i++) - { - returnBool = MPU9250_WriteReg(MPU_Init_Data[i][1], MPU_Init_Data[i][0]); - if(FALSE == returnBool) - { - goto end_of_function; - } - usleep(100000); - } - - //returnBool = MPU9250_Custom_Read_MagAdj(); - //if(FALSE == returnBool) - //{ - //goto end_of_function; - //} - - //uint8 MPU_Init_Data2[MPU_InitRegNum2][2] = { - ///* Set the I2C slave address of AK8963 and set for write. */ - //{MPU9250_AK8963_I2C_ADDR, MPU9250_REG_I2C_SLV0_ADDR}, - ///* I2C slave 0 register address from where to begin data transfer */ - //{MPU9250_AK8963_CNTL2, MPU9250_REG_I2C_SLV0_REG}, - ///* Reset AK8963 */ - //{0x01, MPU9250_REG_I2C_SLV0_DO}, - ///* Enable I2C and set 1 byte */ - //{0x81, MPU9250_REG_I2C_SLV0_CTRL}, - ///* I2C slave 0 register address from where to begin data transfer */ - //{MPU9250_AK8963_CNTL1, MPU9250_REG_I2C_SLV0_REG}, - ///* Register value to continuous measurement mode 2 in 16bit */ - //{0x16, MPU9250_REG_I2C_SLV0_DO}, - ///* Enable I2C and set 1 byte */ - //{0x81, MPU9250_REG_I2C_SLV0_CTRL}, - ///* Set the I2C slave address of AK8963 and set for read. */ - //{MPU9250_AK8963_I2C_ADDR | 0x80, MPU9250_REG_I2C_SLV0_ADDR}, - ///* I2C slave 0 register address from where to begin data transfer */ - //{MPU9250_AK8963_WIA, MPU9250_REG_I2C_SLV0_REG}, - ///* Enable I2C and set 1 byte, copy the max 15 reg from mag */ - //{0x8f, MPU9250_REG_I2C_SLV0_CTRL} - //}; - - //for(i = 0; i < MPU_InitRegNum2; i++) { - //returnBool = MPU9250_WriteReg(MPU_Init_Data2[i][1], MPU_Init_Data2[i][0]); - //if(FALSE == returnBool) - //{ - //goto end_of_function; - //} - //usleep(100000); - //} - - MPU9250_AppCustomData.Status = MPU9250_CUSTOM_INITIALIZED; - -end_of_function: - return returnBool; -} - - -boolean MPU9250_Custom_Uninit(void) -{ - boolean returnBool = TRUE; - int returnCode = 0; - - returnCode = close(MPU9250_AppCustomData.DeviceFd); - if (-1 == returnCode) - { - CFE_EVS_SendEvent(MPU9250_DEVICE_ERR_EID, CFE_EVS_ERROR, - "MPU9250 Device close errno: %i", errno); - returnBool = FALSE; - } - else - { - MPU9250_AppCustomData.Status = MPU9250_CUSTOM_UNINITIALIZED; - } - return returnBool; -} - - -int32 MPU9250_ResetDevice(void) -{ - int32 ret = 0; - boolean returnBool = TRUE; - - returnBool = MPU9250_WriteReg(MPU9250_BIT_H_RESET, MPU9250_REG_PWR_MGMT_1); - if (FALSE == returnBool) - { - CFE_EVS_SendEvent(MPU9250_DEVICE_ERR_EID, CFE_EVS_ERROR, - "MPU9250 ioctl returned %i", errno); - ret = -1; - } - else - { - usleep(100000); - } - return ret; -} - - -boolean MPU9250_WriteReg(uint8 Addr, uint8 Data) -{ - int ret; - unsigned char buf[32]; - boolean returnBool = TRUE; - - memset(buf, 0, sizeof(buf)); - buf[0] = Addr; - buf[1] = Data; - - MPU9250_SPI_Xfer[0].tx_buf = (unsigned long)buf; - MPU9250_SPI_Xfer[0].rx_buf = (unsigned long)buf; - MPU9250_SPI_Xfer[0].len = 2; - - ret = ioctl(MPU9250_AppCustomData.DeviceFd, SPI_IOC_MESSAGE(1), MPU9250_SPI_Xfer); - if (-1 == ret) - { - CFE_EVS_SendEvent(MPU9250_DEVICE_ERR_EID, CFE_EVS_ERROR, - "MPU9250 ioctl returned %i", errno); - returnBool = FALSE; - } - return returnBool; -} - - -boolean MPU9250_ReadReg(uint8 Addr, uint8 *returnVal) -{ - int ret = 0; - unsigned char buf[32]; - boolean returnBool = TRUE; - - /* Null pointer check */ - if(0 == returnVal) - { - CFE_EVS_SendEvent(MPU9250_DEVICE_ERR_EID, CFE_EVS_ERROR, - "MPU9250 ReadReg Null Pointer"); - returnBool = FALSE; - goto end_of_function; - } - - memset(buf, 0, sizeof(buf)); - buf[0] = Addr | 0x80; - buf[1] = 0; - - MPU9250_SPI_Xfer[0].tx_buf = (unsigned long)buf; - MPU9250_SPI_Xfer[0].rx_buf = (unsigned long)buf; - MPU9250_SPI_Xfer[0].len = 2; - - ret = MPU9250_Ioctl(MPU9250_AppCustomData.DeviceFd, SPI_IOC_MESSAGE(1), MPU9250_SPI_Xfer); - if (-1 == ret) - { - CFE_EVS_SendEvent(MPU9250_DEVICE_ERR_EID, CFE_EVS_ERROR, - "MPU9250 ioctl returned %i", errno); - } - - *returnVal = (uint8) buf[1]; - -end_of_function: - return returnBool; -} - - -boolean MPU9250_SetAccScale(uint8 Scale, float *AccDivider) -{ - boolean returnBool = TRUE; - uint8 value = 0; - - /* Null pointer check */ - if(0 == AccDivider) - { - CFE_EVS_SendEvent(MPU9250_DEVICE_ERR_EID, CFE_EVS_ERROR, - "MPU9250 SetAccScale Null Pointer"); - returnBool = FALSE; - goto end_of_function; - } - - switch (Scale) - { - case 2: - *AccDivider = 16384; - value = MPU9250_BITS_FS_2G; - break; - - case 4: - *AccDivider = 8192; - value = MPU9250_BITS_FS_4G; - break; - - case 8: - *AccDivider = 4096; - value = MPU9250_BITS_FS_8G; - break; - - case 16: - *AccDivider = 2048; - value = MPU9250_BITS_FS_16G; - break; - - default: - returnBool = FALSE; - goto end_of_function; - } - - returnBool = MPU9250_WriteReg(MPU9250_REG_ACCEL_CONFIG, value); - if (FALSE == returnBool) - { - goto end_of_function; - } - -end_of_function: - return returnBool; -} - - -boolean MPU9250_SetGyroScale(uint32 Scale, float *GyroDivider) -{ - boolean returnBool = TRUE; - uint8 value = 0; - - /* Null pointer check */ - if(0 == GyroDivider) - { - CFE_EVS_SendEvent(MPU9250_DEVICE_ERR_EID, CFE_EVS_ERROR, - "MPU9250 SetGyroScale Null Pointer"); - returnBool = FALSE; - goto end_of_function; - } - - switch (Scale) - { - case 250: - *GyroDivider = 131; - value = MPU9250_BITS_FS_250DPS; - break; - - case 500: - *GyroDivider = 65.5; - value = MPU9250_BITS_FS_500DPS; - break; - - case 1000: - *GyroDivider = 32.8; - value = MPU9250_BITS_FS_1000DPS; - break; - - case 2000: - *GyroDivider = 16.4; - value = MPU9250_BITS_FS_2000DPS; - break; - - default: - returnBool = FALSE; - goto end_of_function; - } - - returnBool = MPU9250_WriteReg(MPU9250_REG_GYRO_CONFIG, value); - if (FALSE == returnBool) - { - goto end_of_function; - } - -end_of_function: - return returnBool; -} - - -boolean MPU9250_Read_Gyro(int16 *X, int16 *Y, int16 *Z) -{ - uint8 hValue = 0; - uint8 lValue = 0; - boolean returnBool = TRUE; - - /* Null pointer check */ - if(0 == X || 0 == Y || 0 == Z) - { - CFE_EVS_SendEvent(MPU9250_DEVICE_ERR_EID, CFE_EVS_ERROR, - "MPU9250 Read_Gyro Null Pointer"); - returnBool = FALSE; - goto end_of_function; - } - - returnBool = MPU9250_ReadReg(MPU9250_REG_GYRO_XOUT_H, &hValue); - if(FALSE == returnBool) - { - returnBool = FALSE; - goto end_of_function; - } - returnBool = MPU9250_ReadReg(MPU9250_REG_GYRO_XOUT_L, &lValue); - if(FALSE == returnBool) - { - returnBool = FALSE; - goto end_of_function; - } - - *X = (hValue << 8) | lValue; - - returnBool = MPU9250_ReadReg(MPU9250_REG_GYRO_YOUT_H, &hValue); - if(FALSE == returnBool) - { - returnBool = FALSE; - goto end_of_function; - } - returnBool = MPU9250_ReadReg(MPU9250_REG_GYRO_YOUT_L, &lValue); - if(FALSE == returnBool) - { - returnBool = FALSE; - goto end_of_function; - } - - *Y = (hValue << 8) | lValue; - - returnBool = MPU9250_ReadReg(MPU9250_REG_GYRO_ZOUT_H, &hValue); - if(FALSE == returnBool) - { - returnBool = FALSE; - goto end_of_function; - } - returnBool = MPU9250_ReadReg(MPU9250_REG_GYRO_ZOUT_L, &lValue); - if(FALSE == returnBool) - { - returnBool = FALSE; - goto end_of_function; - } - - *Z = (hValue << 8) | lValue; - -end_of_function: - if (FALSE == returnBool) - { - CFE_EVS_SendEvent(MPU9250_DEVICE_ERR_EID, CFE_EVS_ERROR, - "MPU9250 read error in Read_Gyro"); - } - return returnBool; -} - - -boolean MPU9250_Read_Accel(int16 *X, int16 *Y, int16 *Z) -{ - uint8 hValue = 0; - uint8 lValue = 0; - boolean returnBool = TRUE; - - /* Null pointer check */ - if(0 == X || 0 == Y || 0 == Z) - { - CFE_EVS_SendEvent(MPU9250_DEVICE_ERR_EID, CFE_EVS_ERROR, - "MPU9250 Read_Accel Null Pointer"); - returnBool = FALSE; - goto end_of_function; - } - - returnBool = MPU9250_ReadReg(MPU9250_REG_ACCEL_XOUT_H, &hValue); - if(FALSE == returnBool) - { - returnBool = FALSE; - goto end_of_function; - } - returnBool = MPU9250_ReadReg(MPU9250_REG_ACCEL_XOUT_L, &lValue); - if(FALSE == returnBool) - { - returnBool = FALSE; - goto end_of_function; - } - - *X = (hValue << 8) | lValue; - - returnBool = MPU9250_ReadReg(MPU9250_REG_ACCEL_YOUT_H, &hValue); - if(FALSE == returnBool) - { - returnBool = FALSE; - goto end_of_function; - } - returnBool = MPU9250_ReadReg(MPU9250_REG_ACCEL_YOUT_L, &lValue); - if(FALSE == returnBool) - { - returnBool = FALSE; - goto end_of_function; - } - - *Y = (hValue << 8) | lValue; - - returnBool = MPU9250_ReadReg(MPU9250_REG_ACCEL_ZOUT_H, &hValue); - if(FALSE == returnBool) - { - returnBool = FALSE; - goto end_of_function; - } - returnBool = MPU9250_ReadReg(MPU9250_REG_ACCEL_ZOUT_L, &lValue); - if(FALSE == returnBool) - { - returnBool = FALSE; - goto end_of_function; - } - - *Z = (hValue << 8) | lValue; - -end_of_function: - if (FALSE == returnBool) - { - CFE_EVS_SendEvent(MPU9250_DEVICE_ERR_EID, CFE_EVS_ERROR, - "MPU9250 read error in Read_Accel"); - } - return returnBool; -}; - - -//boolean MPU9250_Read_Mag(int16 *X, int16 *Y, int16 *Z) -//{ - //uint8 hValue = 0; - //uint8 lValue = 0; - //uint8 st2 = 0; - //boolean returnBool = TRUE; - - ///* Null pointer check */ - //if(0 == X || 0 == Y || 0 == Z) - //{ - //CFE_EVS_SendEvent(MPU9250_DEVICE_ERR_EID, CFE_EVS_ERROR, - //"MPU9250 Read_Mag Null Pointer"); - //returnBool = FALSE; - //goto end_of_function; - //} - - //returnBool = MPU9250_ReadReg(MPU9250_REG_EXT_SENS_DATA_00 + MPU9250_AK8963_HXH, &hValue); - //if(FALSE == returnBool) - //{ - //returnBool = FALSE; - //goto end_of_function; - //} - //returnBool = MPU9250_ReadReg(MPU9250_REG_EXT_SENS_DATA_00 + MPU9250_AK8963_HXL, &lValue); - //if(FALSE == returnBool) - //{ - //returnBool = FALSE; - //goto end_of_function; - //} - - //*X = (hValue << 8) | lValue; - - //returnBool = MPU9250_ReadReg(MPU9250_REG_EXT_SENS_DATA_00 + MPU9250_AK8963_HYH, &hValue); - //if(FALSE == returnBool) - //{ - //returnBool = FALSE; - //goto end_of_function; - //} - //returnBool = MPU9250_ReadReg(MPU9250_REG_EXT_SENS_DATA_00 + MPU9250_AK8963_HYL, &lValue); - //if(FALSE == returnBool) - //{ - //returnBool = FALSE; - //goto end_of_function; - //} - - //*Y = (hValue << 8) | lValue; - - //returnBool = MPU9250_ReadReg(MPU9250_REG_EXT_SENS_DATA_00 + MPU9250_AK8963_HZH, &hValue); - //if(FALSE == returnBool) - //{ - //returnBool = FALSE; - //goto end_of_function; - //} - //returnBool = MPU9250_ReadReg(MPU9250_REG_EXT_SENS_DATA_00 + MPU9250_AK8963_HZL, &lValue); - //if(FALSE == returnBool) - //{ - //returnBool = FALSE; - //goto end_of_function; - //} - //*Z = (hValue << 8) | lValue; - - //returnBool = MPU9250_ReadReg(MPU9250_REG_EXT_SENS_DATA_00 + MPU9250_AK8963_ST2, &st2); - //if(st2 & MPU9250_ST2_HOFL_MASK) - //{ - //CFE_EVS_SendEvent(MPU9250_DEVICE_ERR_EID, CFE_EVS_ERROR, - //"Mag sensor data overflow"); - //returnBool = FALSE; - //goto end_of_function; - //} - -//end_of_function: - //if (FALSE == returnBool) - //{ - //CFE_EVS_SendEvent(MPU9250_DEVICE_ERR_EID, CFE_EVS_ERROR, - //"MPU9250 read error in Read_Mag"); - //} - //return returnBool; -//} - - -boolean MPU9250_Read_Temp(uint16 *Temp) -{ - uint8 hValue = 0; - uint8 lValue = 0; - boolean returnBool = TRUE; - - /* Null pointer check */ - if(0 == Temp) - { - CFE_EVS_SendEvent(MPU9250_DEVICE_ERR_EID, CFE_EVS_ERROR, - "MPU9250 Read_Temp Null Pointer"); - returnBool = FALSE; - goto end_of_function; - } - - returnBool = MPU9250_ReadReg(MPU9250_REG_TEMP_OUT_H, &hValue); - if(FALSE == returnBool) - { - returnBool = FALSE; - goto end_of_function; - } - returnBool = MPU9250_ReadReg(MPU9250_REG_TEMP_OUT_L, &lValue); - if(FALSE == returnBool) - { - returnBool = FALSE; - goto end_of_function; - } - *Temp = (hValue << 8) | lValue; - -end_of_function: - if (FALSE == returnBool) - { - CFE_EVS_SendEvent(MPU9250_DEVICE_ERR_EID, CFE_EVS_ERROR, - "MPU9250 read error in Read_Temp"); - } - return returnBool; -} - - -boolean MPU9250_Read_WhoAmI(uint8 *Value) -{ - boolean returnBool = TRUE; - /* Null pointer check */ - if(0 == Value) - { - CFE_EVS_SendEvent(MPU9250_DEVICE_ERR_EID, CFE_EVS_ERROR, - "MPU9250 Read_WhoAmI Null Pointer"); - returnBool = FALSE; - goto end_of_function; - } - - returnBool = MPU9250_ReadReg(MPU9250_REG_WHOAMI, Value); - -end_of_function: - if (FALSE == returnBool) - { - CFE_EVS_SendEvent(MPU9250_DEVICE_ERR_EID, CFE_EVS_ERROR, - "MPU9250 read error in WhoAmI"); - } - return returnBool; -} - - -//boolean MPU9250_Read_MagDeviceID(uint8 *Value) -//{ - //boolean returnBool = TRUE; - ///* Null pointer check */ - //if(0 == Value) - //{ - //CFE_EVS_SendEvent(MPU9250_DEVICE_ERR_EID, CFE_EVS_ERROR, - //"MPU9250 Read_MagDeviceID Null Pointer"); - //returnBool = FALSE; - //goto end_of_function; - //} - - //returnBool = MPU9250_ReadReg(MPU9250_REG_EXT_SENS_DATA_00 + MPU9250_AK8963_WIA, Value); - -//end_of_function: - //if (FALSE == returnBool) - //{ - //CFE_EVS_SendEvent(MPU9250_DEVICE_ERR_EID, CFE_EVS_ERROR, - //"MPU9250 read error in MagDeviceID"); - //} - //return returnBool; -//} - - -//boolean MPU9250_Read_MagInfo(uint8 *Value) -//{ - //boolean returnBool = TRUE; - ///* Null pointer check */ - //if(0 == Value) - //{ - //CFE_EVS_SendEvent(MPU9250_DEVICE_ERR_EID, CFE_EVS_ERROR, - //"MPU9250 Read_MagInfo Null Pointer"); - //returnBool = FALSE; - //goto end_of_function; - //} - //*Value = MPU9250_ReadReg(MPU9250_REG_EXT_SENS_DATA_00 + MPU9250_AK8963_INFO, Value); - -//end_of_function: - //if (FALSE == returnBool) - //{ - //CFE_EVS_SendEvent(MPU9250_DEVICE_ERR_EID, CFE_EVS_ERROR, - //"MPU9250 read error in MagInfo"); - //} - //return returnBool; -//} - - -boolean MPU9250_Perform_AccelSelfTest(void) -{ - return TRUE; -} - - -boolean MPU9250_Perform_GyroSelfTest(void) -{ - return TRUE; -} - - -//boolean MPU9250_Start_MagSelfTest(void) -//{ - //return TRUE; -//} - - -//boolean MPU9250_Stop_MagSelfTest(void) -//{ - //return TRUE; -//} - - -/* TODO */ -boolean MPU9250_Read_ImuStatus(boolean *WOM, boolean *FifoOvflw, boolean *Fsync, boolean *DataReady) -{ - uint8 value = 0; - boolean returnBool = TRUE; - - /* Null pointer check */ - if(0 == WOM || 0 == FifoOvflw || 0 == Fsync|| 0 == DataReady) - { - CFE_EVS_SendEvent(MPU9250_DEVICE_ERR_EID, CFE_EVS_ERROR, - "MPU9250 Read_ImuStatus Null Pointer"); - returnBool = FALSE; - goto end_of_function; - } - - returnBool = MPU9250_ReadReg(MPU9250_REG_INT_STATUS, &value); - if(FALSE == returnBool) - { - CFE_EVS_SendEvent(MPU9250_DEVICE_ERR_EID, CFE_EVS_ERROR, - "MPU9250 read error in ImuStatus"); - returnBool = FALSE; - goto end_of_function; - } - - *WOM = value & MPU9250_ST_INT_WOM_MASK; - *FifoOvflw = value & MPU9250_ST_INT_FIFO_OFL_MASK; - *Fsync = value & MPU9250_ST_INT_FSYNC_MASK; - *DataReady = value & MPU9250_ST_INT_RDY_MASK; - -end_of_function: - return returnBool; -} - - -//boolean MPU9250_Read_MagStatus(boolean *Overrun, boolean *DataReady, boolean *Overflow, boolean *Output16Bit) -//{ - //uint8 value = 0; - //boolean returnBool = TRUE; - - ///* Null pointer check */ - //if(0 == Overrun || 0 == DataReady || 0 == Overflow || 0 == Output16Bit) - //{ - //CFE_EVS_SendEvent(MPU9250_DEVICE_ERR_EID, CFE_EVS_ERROR, - //"MPU9250 Read_MagStatus Null Pointer"); - //returnBool = FALSE; - //goto end_of_function; - //} - - //returnBool = MPU9250_ReadReg(MPU9250_REG_EXT_SENS_DATA_00 + MPU9250_AK8963_ST1, &value); - //if(FALSE == returnBool) - //{ - //returnBool = FALSE; - //goto end_of_function; - //} - //*Overrun = value & MPU9250_ST1_DOR_MASK; - //*DataReady = value & MPU9250_ST1_DRDY_MASK; - - //returnBool = MPU9250_ReadReg(MPU9250_REG_EXT_SENS_DATA_00 + MPU9250_AK8963_ST2, &value); - //if(FALSE == returnBool) - //{ - //returnBool = FALSE; - //goto end_of_function; - //} - //*Overflow = value & MPU9250_ST2_HOFL_MASK; - //*Output16Bit = value & MPU9250_ST2_BITM_MASK; - -//end_of_function: - //if (FALSE == returnBool) - //{ - //CFE_EVS_SendEvent(MPU9250_DEVICE_ERR_EID, CFE_EVS_ERROR, - //"MPU9250 read error in MagStatus"); - //} - //return returnBool; -//} - - -//boolean MPU9250_Custom_Read_MagAdj(void) -//{ - //boolean returnBool = TRUE; - //uint8 validateX = 0; - //uint8 validateY = 0; - //uint8 validateZ = 0; - - //returnBool = MPU9250_ReadReg(MPU9250_REG_EXT_SENS_DATA_00, &validateX); - //if(FALSE == returnBool) - //{ - //returnBool = FALSE; - //goto end_of_function; - //} - ///* TODO validate X*/ - //MPU9250_AppCustomData.MagAdjX = validateX; - //returnBool = MPU9250_ReadReg(MPU9250_REG_EXT_SENS_DATA_01, &validateY); - //if(FALSE == returnBool) - //{ - //returnBool = FALSE; - //goto end_of_function; - //} - ///* TODO validate Y*/ - //MPU9250_AppCustomData.MagAdjY = validateY; - //returnBool = MPU9250_ReadReg(MPU9250_REG_EXT_SENS_DATA_02, &validateZ); - //if(FALSE == returnBool) - //{ - //returnBool = FALSE; - //goto end_of_function; - //} - ///* TODO validate Z*/ - //MPU9250_AppCustomData.MagAdjZ = validateZ; - -//end_of_function: - //if (FALSE == returnBool) - //{ - //CFE_EVS_SendEvent(MPU9250_DEVICE_ERR_EID, CFE_EVS_ERROR, - //"MPU9250 read or write error in Custom MagAdj"); - //} - //return returnBool; -//} - - -//boolean MPU9250_Read_MagAdj(uint8 *X, uint8 *Y, uint8 *Z) -//{ - //boolean returnBool = TRUE; - - ///* Null pointer check */ - //if(0 == X || 0 == Y || 0 == Z) - //{ - //CFE_EVS_SendEvent(MPU9250_DEVICE_ERR_EID, CFE_EVS_ERROR, - //"MPU9250 Read_MagAdj Null Pointer"); - //returnBool = FALSE; - //goto end_of_function; - //} - - //*X = MPU9250_AppCustomData.MagAdjX; - //*Y = MPU9250_AppCustomData.MagAdjY; - //*Z = MPU9250_AppCustomData.MagAdjZ; - -//end_of_function: - - //return returnBool; -//} - - -boolean MPU9250_Apply_Platform_Rotation(float *X, float *Y, float *Z) -{ - boolean returnBool = TRUE; - float temp; - - /* Null pointer check */ - if(0 == X || 0 == Y || 0 == Z) - { - CFE_EVS_SendEvent(MPU9250_DEVICE_ERR_EID, CFE_EVS_ERROR, - "MPU9250 Apply_Platform_Rotation Null Pointer"); - returnBool = FALSE; - goto end_of_function; - } - /* ROTATION_ROLL_180_YAW_90 */ - temp = *X; - *X = *Y; - *Y = temp; - *Z = -*Z; - -end_of_function: - - return returnBool; -} - - -boolean MPU9250_Custom_Max_Events_Not_Reached(int32 ind) -{ - if ((ind < CFE_EVS_MAX_EVENT_FILTERS) && (ind > 0)) - { - return TRUE; - } - else - { - return FALSE; - } -} - - -int32 MPU9250_Custom_Init_EventFilters(int32 ind, CFE_EVS_BinFilter_t *EventTbl) -{ - int32 customEventCount = ind; - - /* Null check */ - if(0 == EventTbl) - { - customEventCount = -1; - goto end_of_function; - } - - if(TRUE == MPU9250_Custom_Max_Events_Not_Reached(customEventCount)) - { - EventTbl[ customEventCount].EventID = MPU9250_DEVICE_ERR_EID; - EventTbl[customEventCount++].Mask = CFE_EVS_FIRST_16_STOP; - } - else - { - customEventCount = -1; - goto end_of_function; - } - -end_of_function: - - return customEventCount; -} - - -void MPU9250_Get_Rotation(uint8 *Rotation) -{ - - /* Null pointer check */ - if(0 == Rotation) - { - CFE_EVS_SendEvent(MPU9250_DEVICE_ERR_EID, CFE_EVS_ERROR, - "MPU9250 Get_Rotation Null Pointer"); - goto end_of_function; - } - - /* TODO move to a table */ - *Rotation = ROTATION_ROLL_180_YAW_90; - -end_of_function: -; -} diff --git a/config/ocpoc/s1000/target/apps/mpu9250/src/mpu9250_spi.h b/config/ocpoc/s1000/target/apps/mpu9250/src/mpu9250_spi.h deleted file mode 100644 index 0f4feda85..000000000 --- a/config/ocpoc/s1000/target/apps/mpu9250/src/mpu9250_spi.h +++ /dev/null @@ -1,421 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ - -#ifndef MPU9250_SPI_H -#define MPU9250_SPI_H -/************************************************************************ -** Includes -*************************************************************************/ -#include "mpu9250_custom.h" -#include "cfe.h" - -/************************************************************************ -** Local Defines -*************************************************************************/ -/* MPU 9250 register map for Gyroscope and Accelerometer */ -/* Self test output generated during manufacturing tests. */ -/** \brief Factory self test output for gyro X-axis.*/ -#define MPU9250_REG_GYRO_X_TEST (0x00) -/** \brief Factory self test output for gyro Y-axis.*/ -#define MPU9250_REG_GYRO_Y_TEST (0x01) -/** \brief Factory self test output for gyro Z-axis.*/ -#define MPU9250_REG_GYRO_Z_TEST (0x02) -/** \brief Factory self test output for accelerometer X-axis.*/ -#define MPU9250_REG_ACCEL_X_TEST (0x0D) -/** \brief Factory self test output for accelerometer Y-axis.*/ -#define MPU9250_REG_ACCEL_Y_TEST (0x0E) -/** \brief Factory self test output for accelerometer Z-axis.*/ -#define MPU9250_REG_ACCEL_Z_TEST (0x0F) -/* Registers used to remove DC bias from the gyro sensor data output for - * X, Y, and Z axes. Values are subtracted from the gyro sensor values - * before going into the sensor registers. */ -/** \brief High byte [15:8], offset X-axis. */ -#define MPU9250_REG_GYRO_X_OFF_H (0x13) -/** \brief Low byte [7:0], offset X-axis. */ -#define MPU9250_REG_GYRO_X_OFF_L (0x14) -/** \brief High byte [15:8], offset Y-axis. */ -#define MPU9250_REG_GYRO_Y_OFF_H (0x15) -/** \brief Low byte [7:0], offset Y-axis. */ -#define MPU9250_REG_GYRO_Y_OFF_L (0x16) -/** \brief High byte [15:8], offset Z-axis. */ -#define MPU9250_REG_GYRO_Z_OFF_H (0x17) -/** \brief Low byte [7:0], offset Z-axis. */ -#define MPU9250_REG_GYRO_Z_OFF_L (0x18) -/* Divides the internal sample rate to generate the sample rate that - * controls sensor data output rate. Only effective when Fchoice = 2'b11 - * such that the average filter's output is selected. */ -/** \brief Sample rate divisor. */ -#define MPU9250_REG_SMPLRT_DIV (0x19) -/** \brief Configuration. */ -#define MPU9250_REG_CONFIG (0x1A) -/** \brief Gyroscope configuration. */ -#define MPU9250_REG_GYRO_CONFIG (0x1B) -/** \brief Accelerometer configuration 1. */ -#define MPU9250_REG_ACCEL_CONFIG (0x1C) -/** \brief Accelerometer configuration 2. */ -#define MPU9250_REG_ACCEL_CONFIG2 (0x1D) -/** \brief Low Power Accelerometer Output Data Rate (ODR) Control. */ -#define MPU9250_REG_LPACCEL_ODR (0x1E) -/** \brief Wake-on Motion Threshold. */ -#define MPU9250_REG_WOM_THRESH (0x1F) -/** \brief FIFO Enable. */ -#define MPU9250_REG_FIFO_EN (0x23) -/** \brief I2C Master Control. */ -#define MPU9250_REG_I2C_MST_CTRL (0x24) -/** \brief I2C Slave 0 Address. */ -#define MPU9250_REG_I2C_SLV0_ADDR (0x25) -/** \brief I2C Slave 0 Register. */ -#define MPU9250_REG_I2C_SLV0_REG (0x26) -/** \brief I2C Slave 0 Control. */ -#define MPU9250_REG_I2C_SLV0_CTRL (0x27) -/** \brief I2C Slave 1 Address. */ -#define MPU9250_REG_I2C_SLV1_ADDR (0x28) -/** \brief I2C Slave 1 Registers. */ -#define MPU9250_REG_I2C_SLV1_REG (0x29) -/** \brief I2C Slave 1 Control. */ -#define MPU9250_REG_I2C_SLV1_CTRL (0x2A) -/** \brief I2C Slave 2 Address. */ -#define MPU9250_REG_I2C_SLV2_ADDR (0x2B) -/** \brief I2C Slave 2 Registers. */ -#define MPU9250_REG_I2C_SLV2_REG (0x2C) -/** \brief I2C Slave 2 Control. */ -#define MPU9250_REG_I2C_SLV2_CTRL (0x2D) -/** \brief I2C Slave 3 Address. */ -#define MPU9250_REG_I2C_SLV3_ADDR (0x2E) -/** \brief I2C Slave 3 Registers. */ -#define MPU9250_REG_I2C_SLV3_REG (0x2F) -/** \brief I2C Slave 3 Control. */ -#define MPU9250_REG_I2C_SLV3_CTRL (0x30) -/** \brief I2C Slave 4 Address. */ -#define MPU9250_REG_I2C_SLV4_ADDR (0x31) -/** \brief I2C Slave 4 Registers. */ -#define MPU9250_REG_I2C_SLV4_REG (0x32) -/** \brief I2C Data out, Data to be written to I2C Slave 4. */ -#define MPU9250_REG_I2C_SLV4_DO (0x33) -/** \brief I2C Slave 4 Control. */ -#define MPU9250_REG_I2C_SLV4_CTRL (0x34) -/** \brief I2C Data in, Data to be read from I2C Slave 4. */ -#define MPU9250_REG_I2C_SLV4_DI (0x35) -/** \brief I2C Master Status. */ -#define MPU9250_REG_I2C_MST_STATUS (0x36) -/** \brief Interrupt Pin / Bypass Enable Configuration. */ -#define MPU9250_REG_INT_PIN_CFG (0x37) -/** \brief Interrupt Enable. */ -#define MPU9250_REG_INT_ENABLE (0x38) -/** \brief Interrupt Status. */ -#define MPU9250_REG_INT_STATUS (0x3A) -/** \brief High byte accelerometer measurement X-axis. */ -#define MPU9250_REG_ACCEL_XOUT_H (0x3B) -/** \brief Low byte accelerometer measurement X-axis. */ -#define MPU9250_REG_ACCEL_XOUT_L (0x3C) -/** \brief High byte accelerometer measurement Y-axis. */ -#define MPU9250_REG_ACCEL_YOUT_H (0x3D) -/** \brief Low byte accelerometer measurement Y-axis. */ -#define MPU9250_REG_ACCEL_YOUT_L (0x3E) -/** \brief High byte accelerometer measurement Z-axis. */ -#define MPU9250_REG_ACCEL_ZOUT_H (0x3F) -/** \brief Low byte accelerometer measurement Z-axis. */ -#define MPU9250_REG_ACCEL_ZOUT_L (0x40) -/** \brief High byte temperature measurement. */ -#define MPU9250_REG_TEMP_OUT_H (0x41) -/** \brief Low byte temperature measurement. */ -#define MPU9250_REG_TEMP_OUT_L (0x42) -/** \brief High byte gyroscope measurement X-axis. */ -#define MPU9250_REG_GYRO_XOUT_H (0x43) -/** \brief Low byte gyroscope measurement X-axis. */ -#define MPU9250_REG_GYRO_XOUT_L (0x44) -/** \brief High byte gyroscope measurement Y-axis. */ -#define MPU9250_REG_GYRO_YOUT_H (0x45) -/** \brief Low byte gyroscope measurement Y-axis. */ -#define MPU9250_REG_GYRO_YOUT_L (0x46) -/** \brief High byte gyroscope measurement Z-axis. */ -#define MPU9250_REG_GYRO_ZOUT_H (0x47) -/** \brief Low byte gyroscope measurement Z-axis. */ -#define MPU9250_REG_GYRO_ZOUT_L (0x48) -/** \brief External sensor data 0 */ -#define MPU9250_REG_EXT_SENS_DATA_00 (0x49) -/** \brief External sensor data 1 */ -#define MPU9250_REG_EXT_SENS_DATA_01 (0x4A) -/** \brief External sensor data 2 */ -#define MPU9250_REG_EXT_SENS_DATA_02 (0x4B) -/** \brief I2C Data out, Data to be written to I2C Slave 0. */ -#define MPU9250_REG_I2C_SLV0_DO (0x63) -/** \brief I2C Data out, Data to be written to I2C Slave 1. */ -#define MPU9250_REG_I2C_SLV1_DO (0x64) -/** \brief I2C Data out, Data to be written to I2C Slave 2. */ -#define MPU9250_REG_I2C_SLV2_DO (0x65) -/** \brief I2C Data out, Data to be written to I2C Slave 3. */ -#define MPU9250_REG_I2C_SLV3_DO (0x66) -/** \brief I2C Master Delay Control. */ -#define MPU9250_REG_I2C_MST_DELAY_CTRL (0x67) -/** \brief Digital signal path reset. */ -#define MPU9250_REG_SIGNAL_PATH_RESET (0x68) -/** \brief Accelerometer interrupt control. */ -#define MPU9250_REG_MOT_DETECT_CTRL (0x69) -/** \brief User control. */ -#define MPU9250_REG_USER_CTRL (0x6A) -/** \brief Power management 1. */ -#define MPU9250_REG_PWR_MGMT_1 (0x6B) -/** \brief Power management 2. */ -#define MPU9250_REG_PWR_MGMT_2 (0x6C) -/** \brief High bits, number of written bytes in FIFO. */ -#define MPU9250_REG_FIFO_COUNTH (0x72) -/** \brief Low bits, number of written bytes in FIFO. */ -#define MPU9250_REG_FIFO_COUNTL (0x73) -/** \brief FIFO read/write command. */ -#define MPU9250_REG_FIFO_R_W (0x74) -/** \brief Indicate to user which device is being accessed. */ -#define MPU9250_REG_WHOAMI (0x75) - -/* Configuration bits mpu9250 */ -/** \brief Power Management 1 sleep bit. */ -#define MPU9250_BIT_SLEEP (0x40) -/** \brief Power Management 1 hardware reset bit. */ -#define MPU9250_BIT_H_RESET (0x80) -/** \brief Power Management 1 clock select bit. */ -#define MPU9250_BITS_CLKSEL (0x07) - -#define MPU9250_MPU_CLK_SEL_PLLGYROX (0x01) -#define MPU9250_MPU_CLK_SEL_PLLGYROZ (0x03) -#define MPU9250_MPU_EXT_SYNC_GYROX (0x02) -/** \brief Gyro Full Scale Select bit 250 DPS. */ -#define MPU9250_BITS_FS_250DPS (0x00) -/** \brief Gyro Full Scale Select bit 500 DPS. */ -#define MPU9250_BITS_FS_500DPS (0x08) -/** \brief Gyro Full Scale Select bit 1000 DPS. */ -#define MPU9250_BITS_FS_1000DPS (0x10) -/** \brief Gyro Full Scale Select bit 2000 DPS. */ -#define MPU9250_BITS_FS_2000DPS (0x18) -/** \brief Accel Full Scale Select bit 2G. */ -#define MPU9250_BITS_FS_2G (0x00) -/** \brief Accel Full Scale Select bit 4G. */ -#define MPU9250_BITS_FS_4G (0x08) -/** \brief Accel Full Scale Select bit 8G. */ -#define MPU9250_BITS_FS_8G (0x10) -/** \brief Accel Full Scale Select bit 16G. */ -#define MPU9250_BITS_FS_16G (0x18) -/** \brief Digital Low Pass Filter Configuration bit 250Hz. */ -#define MPU9250_BITS_FS_MASK (0x18) -#define MPU9250_BITS_DLPF_CFG_250HZ (0x00) -/** \brief Digital Low Pass Filter Configuration bit 184Hz. */ -#define MPU9250_BITS_DLPF_CFG_184HZ (0x01) -/** \brief Digital Low Pass Filter Configuration bit 92Hz. */ -#define MPU9250_BITS_DLPF_CFG_92HZ (0x02) -/** \brief Digital Low Pass Filter Configuration bit 41Hz. */ -#define MPU9250_BITS_DLPF_CFG_41HZ (0x03) -/** \brief Digital Low Pass Filter Configuration bit 20Hz. */ -#define MPU9250_BITS_DLPF_CFG_20HZ (0x04) -/** \brief Digital Low Pass Filter Configuration bit 10Hz. */ -#define MPU9250_BITS_DLPF_CFG_10HZ (0x05) -/** \brief Digital Low Pass Filter Configuration bit 5Hz. */ -#define MPU9250_BITS_DLPF_CFG_5HZ (0x06) -/** \brief Digital Low Pass Filter Configuration bit 3600Hz. */ -#define MPU9250_BITS_DLPF_CFG_3600HZ (0x07) -#define MPU9250_BITS_DLPF_CFG_MASK (0x07) -/** \brief Interrupt status cleared configuration bit. */ -#define MPU9250_BIT_INT_ANYRD_2CLEAR (0x10) -/** \brief Enable raw sensor data ready interrupt to pin bit. */ -#define MPU9250_BIT_RAW_RDY_EN (0x01) -/** \brief Reset I2C slave and set interface to SPI mode only. */ -#define MPU9250_BIT_I2C_IF_DIS (0x10) - -#define MPU9250_READ_FLAG (0x80) -#define MPU9250_BIT_RAW_RDY_EN (0x01) -#define MPU9250_BIT_INT_ANYRD_2CLEAR (0x10) -/** \brief The default value of the MPU9250 device ID. */ -#define MPU9250_WHOAMI_9250 (0x71) -/** \brief The I2C address of the Magnetometer. */ -#define MPU9250_AK8963_I2C_ADDR (0x0c) -/** \brief The default value of the AK8963 device ID. */ -#define MPU9250_AK8963_Device_ID (0x48) - -/* AK8963 Register map for the Magnetometer */ -/* Read-only registers */ -/** \brief Device ID. */ -#define MPU9250_AK8963_WIA (0x00) -/** \brief Device information. */ -#define MPU9250_AK8963_INFO (0x01) -/** \brief Status 1. */ -#define MPU9250_AK8963_ST1 (0x02) -/** \brief Measurement data X-axis lower 8-bits */ -#define MPU9250_AK8963_HXL (0x03) -/** \brief Measurement data X-axis upper 8-bits */ -#define MPU9250_AK8963_HXH (0x04) -/** \brief Measurement data Y-axis lower 8-bits */ -#define MPU9250_AK8963_HYL (0x05) -/** \brief Measurement data Y-axis upper 8-bits */ -#define MPU9250_AK8963_HYH (0x06) -/** \brief Measurement data Z-axis lower 8-bits */ -#define MPU9250_AK8963_HZL (0x07) -/** \brief Measurement data Z-axis upper 8-bits */ -#define MPU9250_AK8963_HZH (0x08) -/** \brief Status 2. */ -#define MPU9250_AK8963_ST2 (0x09) -/* Write/Read registers */ -/** \brief Control 1. */ -#define MPU9250_AK8963_CNTL1 (0x0A) -/** \brief Control 2. */ -#define MPU9250_AK8963_CNTL2 (0x0B) -/** \brief Self-test control. */ -#define MPU9250_AK8963_ASTC (0x0C) -//#define MPU9250_AK8963_TS1 (0x0D) -//#define MPU9250_AK8963_TS2 (0x0E) -/** \brief I2C disable. */ -#define MPU9250_AK8963_I2CDIS (0x0F) -/* Read-only registers (ROM) */ -/** \brief Sensitivity adjustment value X-axis. */ -#define MPU9250_AK8963_ASAX (0x10) -/** \brief Sensitivity adjustment value Y-axis. */ -#define MPU9250_AK8963_ASAY (0x11) -/** \brief Sensitivity adjustment value Z-axis. */ -#define MPU9250_AK8963_ASAZ (0x12) - -/* Masks Mag */ -/** \brief Data ready. */ -#define MPU9250_ST1_DRDY_MASK (0x01) -/** \brief Data overrun. */ -#define MPU9250_ST1_DOR_MASK (0x02) -/** \brief Output bit setting (mirror). */ -#define MPU9250_ST2_BITM_MASK (0x10) -/** \brief Magnetic sensor overflow. */ -#define MPU9250_ST2_HOFL_MASK (0x08) -/** \brief AK8963 fuse ROM access mode. */ -#define MPU9250_AK8963_FUSE_MODE (0x0F) -/** \brief AK8963 continues measurement mode 1 */ -#define MPU9250_AK8963_MEA1_MODE (0x02) -/** \brief AK8963 output bit setting. */ -#define MPU9250_AK8963_16BIT_ADC (0x10) - -/* Masks IMU */ -/** \brief Data ready. */ -#define MPU9250_ST_INT_RDY_MASK (0x01) -/** \brief Fsync interrupt occurred. */ -#define MPU9250_ST_INT_FSYNC_MASK (0x04) -/** \brief Fifo overflow interrupt occurred. */ -#define MPU9250_ST_INT_FIFO_OFL_MASK (0x05) -/** \brief Wake on motion interrupt occurred. */ -#define MPU9250_ST_INT_WOM_MASK (0x07) - -/** \brief Array initializer. */ -#define MPU_InitRegNum (20) -/** \brief Array initializer 2. */ -/** \brief Stop between slave reads. */ -#define MPU9250_I2C_MST_P_NSR (0x10) -/** \brief Delay data ready int until external sensor data is loaded. */ -#define MPU9250_I2C_MST_WAIT_FOR_ES (0x40) -/** \brief I2C master clock speed */ -#define MPU9250_I2C_MST_CLOCK_400HZ (0x0D) - -#define MPU9250_DEFAULT_LOWPASS_FILTER MPU9250_BITS_DLPF_CFG_250HZ - -/** \brief Retry attemps for interrupted ioctl calls. -** -** \par Limits: -** None. -*/ -#define MPU9250_MAX_RETRY_ATTEMPTS (2) - -/** \brief Sleep time micro seconds for interrupted calls. -** -** \par Limits: -** None. -*/ -#define MPU9250_MAX_RETRY_SLEEP_USEC (10) - -#define MPU9250_SPI_DEVICE_PATH "/dev/spidev1.0" -#define MPU9250_SPI_DEVICE_MODE (3) -#define MPU9250_SPI_DEVICE_BITS (8) -#define MPU9250_SPI_DEVICE_SPEED (1000000) -#define MPU9250_SPI_TX_DELAY (0) -#define MPU9250_SPI_RX_DELAY (0) - -/************************************************************************ -** Structure Declarations -*************************************************************************/ -/** - * \brief MPU9250 device status - */ -typedef enum -{ - /*! MPU9250 status uninitialized */ - MPU9250_CUSTOM_UNINITIALIZED = 0, - /*! MPU9250 status initialized */ - MPU9250_CUSTOM_INITIALIZED = 1 -} MPU9250_Custom_Status_t; - - -typedef struct -{ - /*! Device file descriptor */ - int DeviceFd; - /*! The current device status */ - MPU9250_Custom_Status_t Status; - uint8 MagAdjX; - uint8 MagAdjY; - uint8 MagAdjZ; -} MPU9250_AppCustomData_t; - - -/************************************************************************ -** External Global Variables -*************************************************************************/ - -/************************************************************************ -** Function Prototypes -*************************************************************************/ - -/************************************************************************/ -/** \brief ioctl with limited EINTR retry attempts. -** -** \par Description -** This function is a wrapper for ioctl with retry attempts added. -** -** \param [in] fh file descriptor. -** \param [in] request code. -** \param [in] arg pointer to a device specific struct. -** -** \returns -** usually 0 for success and -1 for failure, see ioctl man-page for -** more info. -** \endreturns -** -*************************************************************************/ -int32 MPU9250_Ioctl(int fh, int request, void *arg); - - -int32 MPU9250_ResetDevice(void); -boolean MPU9250_WriteReg(uint8 Addr, uint8 Data); -boolean MPU9250_Custom_Max_Events_Not_Reached(int32 ind); - - -#endif /* MPU9250_SPI_H */ diff --git a/config/ocpoc/s1000/target/apps/mpu9250/tables/mpu9250_config_default.c b/config/ocpoc/s1000/target/apps/mpu9250/tables/mpu9250_config_default.c deleted file mode 100644 index 4f2aa021f..000000000 --- a/config/ocpoc/s1000/target/apps/mpu9250/tables/mpu9250_config_default.c +++ /dev/null @@ -1,93 +0,0 @@ -/* -** Pragmas -*/ - -/* -** Include Files -*/ -#include "cfe_tbl_filedef.h" -#include "mpu9250_tbldefs.h" - -/* -** Local Defines -*/ - -/* -** Local Structure Declarations -*/ -static OS_USED CFE_TBL_FileDef_t CFE_TBL_FileDef = -{ - /* Content format: ObjName[64], TblName[38], Desc[32], TgtFileName[20], ObjSize - ** ObjName - variable name of config table, e.g., CI_ConfigDefTbl[] - ** TblName - app's table name, e.g., CI.CONFIG_TBL, where CI is the same app name - ** used in cfe_es_startup.scr, and CI_defConfigTbl is the same table - ** name passed in to CFE_TBL_Register() - ** Desc - description of table in string format - ** TgtFileName[20] - table file name, compiled as .tbl file extension - ** ObjSize - size of the entire table - */ - - "MPU9250_ConfigTbl", "MPU9250.CONFIG_TBL", "MPU9250 default config table", - "mpu9250_config.tbl", (sizeof(MPU9250_ConfigTbl_t)) -}; - -/* -** External Global Variables -*/ - -/* -** Global Variables -*/ - -/* Default MPU9250 config table data */ -MPU9250_ConfigTbl_t MPU9250_ConfigTbl = -{ - /* User calibration params */ - /* AccXScale */ - 1.0f, - /* AccYScale */ - 1.0f, - /* AccZScale */ - 1.0f, - /* AccXOffset */ - 0.0f, - /* AccYOffset */ - 0.0f, - /* AccZOffset */ - 0.0f, - /* GyroXScale */ - 1.0f, - /* GyroYScale */ - 1.0f, - /* GyroZScale */ - 1.0f, - /* GyroXOffset */ - 0.0f, - /* GyroYOffset */ - 0.0f, - /* GyroZOffset */ - 0.0f - /* MagXScale */ - /* MagYScale */ - /* MagZScale */ - /* MagXOffset */ - /* MagYOffset */ - /* MagZOffset */ -}; - -/* -** Local Variables -*/ - -/* -** Function Prototypes -*/ - -/* -** Function Definitions -*/ - -/*======================================================================================= -** End of file mpu9250_config.c -**=====================================================================================*/ - diff --git a/config/ocpoc/s1000/target/apps/ms5611/CMakeLists.txt b/config/ocpoc/s1000/target/apps/ms5611/CMakeLists.txt deleted file mode 100644 index 4370ae1aa..000000000 --- a/config/ocpoc/s1000/target/apps/ms5611/CMakeLists.txt +++ /dev/null @@ -1,40 +0,0 @@ -############################################################################# -# -# Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions -# are met: -# -# 1. Redistributions of source code must retain the above copyright -# notice, this list of conditions and the following disclaimer. -# 2. Redistributions in binary form must reproduce the above copyright -# notice, this list of conditions and the following disclaimer in -# the documentation and/or other materials provided with the -# distribution. -# 3. Neither the name Windhover Labs nor the names of its -# contributors may be used to endorse or promote products derived -# from this software without specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -# COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -# OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -# AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -# POSSIBILITY OF SUCH DAMAGE. -# -############################################################################# -set(APP_NAME ms5611) - -buildliner_add_table( - ${APP_NAME} - NAME ms5611_config - SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/tables/ms5611_config.c -) - diff --git a/config/ocpoc/s1000/target/apps/ms5611/src/CMakeLists.txt b/config/ocpoc/s1000/target/apps/ms5611/src/CMakeLists.txt deleted file mode 100644 index 2d1387c72..000000000 --- a/config/ocpoc/s1000/target/apps/ms5611/src/CMakeLists.txt +++ /dev/null @@ -1,37 +0,0 @@ -############################################################################# -# -# Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions -# are met: -# -# 1. Redistributions of source code must retain the above copyright -# notice, this list of conditions and the following disclaimer. -# 2. Redistributions in binary form must reproduce the above copyright -# notice, this list of conditions and the following disclaimer in -# the documentation and/or other materials provided with the -# distribution. -# 3. Neither the name Windhover Labs nor the names of its -# contributors may be used to endorse or promote products derived -# from this software without specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -# COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -# OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -# AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -# POSSIBILITY OF SUCH DAMAGE. -# -############################################################################# -# Set source for custom code. -set(APP_CUSTOM_SRC - ${CMAKE_CURRENT_SOURCE_DIR}/ms5611_custom.c - PARENT_SCOPE - ) diff --git a/config/ocpoc/s1000/target/apps/ms5611/src/ms5611_custom.c b/config/ocpoc/s1000/target/apps/ms5611/src/ms5611_custom.c deleted file mode 100644 index 3d95f746d..000000000 --- a/config/ocpoc/s1000/target/apps/ms5611/src/ms5611_custom.c +++ /dev/null @@ -1,467 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ -/************************************************************************ -** Pragmas -*************************************************************************/ - -/************************************************************************ -** Includes -*************************************************************************/ -#include "cfe.h" -#include "ms5611_spi.h" -#include "ms5611_events.h" -#include "ms5611_perfids.h" -#include -#include -#include -#include -#include -#include -#include -#include - -/************************************************************************ -** Local Defines -*************************************************************************/ - -/************************************************************************ -** Local Structure Declarations -*************************************************************************/ -typedef enum -{ -/** \brief 'MS5611 - ' -** \event 'MS5611 - ' -** -** \par Type: ERROR -** -** \par Cause: -** -** This event message is issued when a device resource encounters an -** error. -** -*/ - MS5611_DEVICE_ERR_EID = MS5611_EVT_CNT, - -/** \brief Number of custom events -** -** \par Limits: -** int32 -*/ - MS5611_CUSTOM_EVT_CNT -} MS5611_CustomEventIds_t; - - -/************************************************************************ -** External Global Variables -*************************************************************************/ - -/************************************************************************ -** Global Variables -*************************************************************************/ -MS5611_AppCustomData_t MS5611_AppCustomData; -struct spi_ioc_transfer MS5611_SPI_Xfer[2]; - -/************************************************************************ -** Local Variables -*************************************************************************/ - -/************************************************************************ -** Local Function Definitions -*************************************************************************/ -int32 MS5611_Ioctl(int fh, int request, void *arg) -{ - int32 returnCode = 0; - uint32 i = 0; - - for (i=0; i < MS5611_MAX_RETRY_ATTEMPTS; i++) - { - returnCode = ioctl(fh, request, arg); - - if (-1 == returnCode && EINTR == errno) - { - usleep(MS5611_MAX_RETRY_SLEEP_USEC); - } - else - { - break; - } - } - - return (returnCode); -} - - -void MS5611_Custom_InitData(void) -{ - /* Set all struct zero values */ - bzero(&MS5611_AppCustomData, sizeof(MS5611_AppCustomData)); -} - - -boolean MS5611_Custom_Init() -{ - boolean returnBool = TRUE; - int ret = 0; - int i = 0; - int8 mode = MS5611_SPI_DEVICE_MODE; - int8 bits = MS5611_SPI_DEVICE_BITS; - uint32 speed = MS5611_SPI_DEVICE_SPEED; - - MS5611_AppCustomData.DeviceFd = open(MS5611_SPI_DEVICE_PATH, O_RDWR); - if (MS5611_AppCustomData.DeviceFd < 0) - { - (void) CFE_EVS_SendEvent(MS5611_DEVICE_ERR_EID, CFE_EVS_ERROR, - "MS5611 Device open errno: %i", errno); - returnBool = FALSE; - goto end_of_function; - } - - ret = MS5611_Ioctl(MS5611_AppCustomData.DeviceFd, SPI_IOC_WR_MODE, &mode); - if (-1 == ret) - { - (void) CFE_EVS_SendEvent(MS5611_DEVICE_ERR_EID, CFE_EVS_ERROR, - "Can't set SPI mode."); - returnBool = FALSE; - goto end_of_function; - } - - ret = MS5611_Ioctl(MS5611_AppCustomData.DeviceFd, SPI_IOC_RD_MODE, &mode); - if (-1 == ret) - { - (void) CFE_EVS_SendEvent(MS5611_DEVICE_ERR_EID, CFE_EVS_ERROR, - "Can't get SPI mode."); - returnBool = FALSE; - goto end_of_function; - } - - ret = MS5611_Ioctl(MS5611_AppCustomData.DeviceFd, SPI_IOC_WR_BITS_PER_WORD, &bits); - if (-1 == ret) - { - (void) CFE_EVS_SendEvent(MS5611_DEVICE_ERR_EID, CFE_EVS_ERROR, - "Can't set bits per word."); - returnBool = FALSE; - goto end_of_function; - } - - ret = MS5611_Ioctl(MS5611_AppCustomData.DeviceFd, SPI_IOC_RD_BITS_PER_WORD, &bits); - if (-1 == ret) - { - (void) CFE_EVS_SendEvent(MS5611_DEVICE_ERR_EID, CFE_EVS_ERROR, - "Can't get bits per word."); - returnBool = FALSE; - goto end_of_function; - } - - ret = MS5611_Ioctl(MS5611_AppCustomData.DeviceFd, SPI_IOC_WR_MAX_SPEED_HZ, &speed); - if (-1 == ret) - { - (void) CFE_EVS_SendEvent(MS5611_DEVICE_ERR_EID, CFE_EVS_ERROR, - "Can't set max speed."); - returnBool = FALSE; - goto end_of_function; - } - - ret = MS5611_Ioctl(MS5611_AppCustomData.DeviceFd, SPI_IOC_RD_MAX_SPEED_HZ, &speed); - if (-1 == ret) - { - (void) CFE_EVS_SendEvent(MS5611_DEVICE_ERR_EID, CFE_EVS_ERROR, - "Can't get max speed."); - returnBool = FALSE; - goto end_of_function; - } - - /* Keep CS activated */ - MS5611_SPI_Xfer[0].cs_change = 0; - MS5611_SPI_Xfer[0].delay_usecs = 0; - MS5611_SPI_Xfer[0].speed_hz = speed; - MS5611_SPI_Xfer[0].bits_per_word = 8; - - ret = MS5611_ResetDevice(); - if (-1 == ret) - { - (void) CFE_EVS_SendEvent(MS5611_DEVICE_ERR_EID, CFE_EVS_ERROR, - "Reset device failed."); - returnBool = FALSE; - goto end_of_function; - } - - MS5611_AppCustomData.Status = MS5611_CUSTOM_INITIALIZED; - -end_of_function: - return (returnBool); -} - - -boolean MS5611_Custom_Uninit(void) -{ - boolean returnBool = TRUE; - int returnCode = 0; - - returnCode = close(MS5611_AppCustomData.DeviceFd); - if (-1 == returnCode) - { - (void) CFE_EVS_SendEvent(MS5611_DEVICE_ERR_EID, CFE_EVS_ERROR, - "MS5611 Device close errno: %i", errno); - returnBool = FALSE; - } - else - { - MS5611_AppCustomData.Status = MS5611_CUSTOM_UNINITIALIZED; - } - return (returnBool); -} - - -void MS5611_Critical_Cleanup(void) -{ - close(MS5611_AppCustomData.DeviceFd); -} - - -int32 MS5611_ResetDevice(void) -{ - int ret = 0; - - unsigned char txBuf[2]; - unsigned char rxBuf[2]; - - memset(txBuf, 0, sizeof(txBuf)); - memset(rxBuf, 0, sizeof(rxBuf)); - txBuf[0] = MS5611_SPI_CMD_RESET; - - MS5611_SPI_Xfer[0].tx_buf = (unsigned long)txBuf; - MS5611_SPI_Xfer[0].rx_buf = (unsigned long)rxBuf; - MS5611_SPI_Xfer[0].len = 2; - - ret = MS5611_Ioctl(MS5611_AppCustomData.DeviceFd, SPI_IOC_MESSAGE(1), MS5611_SPI_Xfer); - if (-1 == ret) - { - (void) CFE_EVS_SendEvent(MS5611_DEVICE_ERR_EID, CFE_EVS_ERROR, - "MS5611 ioctl returned %i", errno); - } - else - { - usleep(100000); - } - return (ret); -} - - -boolean MS5611_ReadPROM(uint8 Addr, uint16 *returnVal) -{ - int ret = 0; - uint32 i = 0; - boolean returnBool = TRUE; - - /* Null pointer check */ - if(0 == returnVal) - { - CFE_EVS_SendEvent(MS5611_DEVICE_ERR_EID, CFE_EVS_ERROR, - "MS5611 ReadProm Null Pointer"); - returnBool = FALSE; - goto end_of_function; - } - - unsigned char txBuf[30]; - unsigned char rxBuf[30]; - - memset(txBuf, 0, sizeof(txBuf)); - memset(rxBuf, 0, sizeof(rxBuf)); - txBuf[0] = MS5611_SPI_CMD_PROM_READ_MASK + (Addr << MS5611_SPI_CMD_PROM_ADDR_SHIFT); - - MS5611_SPI_Xfer[0].tx_buf = (unsigned long)txBuf; - MS5611_SPI_Xfer[0].rx_buf = (unsigned long)rxBuf; - MS5611_SPI_Xfer[0].len = 30; - - ret = MS5611_Ioctl(MS5611_AppCustomData.DeviceFd, SPI_IOC_MESSAGE(1), MS5611_SPI_Xfer); - if (-1 == ret) - { - (void) CFE_EVS_SendEvent(MS5611_DEVICE_ERR_EID, CFE_EVS_ERROR, - "MS5611 ioctl returned %i", errno); - returnBool = FALSE; - goto end_of_function; - } - *returnVal = (rxBuf[1] << 8) + rxBuf[2]; - -end_of_function: - return (returnBool); -} - - -boolean MS5611_D1Conversion(void) -{ - int ret = 0; - int32 result = 0; - boolean returnBool = TRUE; - - unsigned char txBuf[1]; - unsigned char rxBuf[1]; - - memset(txBuf, 0, sizeof(txBuf)); - memset(rxBuf, 0, sizeof(rxBuf)); - txBuf[0] = MS5611_SPI_CMD_CONVERT_D1; - - MS5611_SPI_Xfer[0].tx_buf = (unsigned long)txBuf; - MS5611_SPI_Xfer[0].rx_buf = (unsigned long)rxBuf; - MS5611_SPI_Xfer[0].len = 1; - - ret = MS5611_Ioctl(MS5611_AppCustomData.DeviceFd, SPI_IOC_MESSAGE(1), MS5611_SPI_Xfer); - if (-1 == ret) - { - (void) CFE_EVS_SendEvent(MS5611_DEVICE_ERR_EID, CFE_EVS_ERROR, - "MS5611 ioctl returned %i", errno); - returnBool = FALSE; - } - else - { - usleep(10000); - } - return (returnBool); -} - - -boolean MS5611_D2Conversion(void) -{ - int ret = 0; - int32 result = 0; - boolean returnBool = TRUE; - - unsigned char txBuf[1]; - unsigned char rxBuf[1]; - - memset(txBuf, 0, sizeof(txBuf)); - memset(rxBuf, 0, sizeof(rxBuf)); - txBuf[0] = MS5611_SPI_CMD_CONVERT_D2; - - MS5611_SPI_Xfer[0].tx_buf = (unsigned long)txBuf; - MS5611_SPI_Xfer[0].rx_buf = (unsigned long)rxBuf; - MS5611_SPI_Xfer[0].len = 1; - - ret = MS5611_Ioctl(MS5611_AppCustomData.DeviceFd, SPI_IOC_MESSAGE(1), MS5611_SPI_Xfer); - if (-1 == ret) - { - (void) CFE_EVS_SendEvent(MS5611_DEVICE_ERR_EID, CFE_EVS_ERROR, - "MS5611 ioctl returned %i", errno); - returnBool = FALSE; - } - else - { - usleep(10000); - } - return (returnBool); -} - - -boolean MS5611_ReadADCResult(uint32 *returnVal) -{ - int ret = 0; - int32 result = 0; - uint32 i = 0; - boolean returnBool = TRUE; - - unsigned char txBuf[30]; - unsigned char rxBuf[30]; - - /* Null pointer check */ - if(0 == returnVal) - { - (void) CFE_EVS_SendEvent(MS5611_DEVICE_ERR_EID, CFE_EVS_ERROR, - "MS5611 ReadProm Null Pointer"); - returnBool = FALSE; - goto end_of_function; - } - - memset(txBuf, 0, sizeof(txBuf)); - memset(rxBuf, 0, sizeof(rxBuf)); - txBuf[0] = MS5611_SPI_CMD_ADC_READ; - - MS5611_SPI_Xfer[0].tx_buf = (unsigned long)txBuf; - MS5611_SPI_Xfer[0].rx_buf = (unsigned long)rxBuf; - MS5611_SPI_Xfer[0].len = 30; - - ret = MS5611_Ioctl(MS5611_AppCustomData.DeviceFd, SPI_IOC_MESSAGE(1), MS5611_SPI_Xfer); - if (-1 == ret) - { - (void) CFE_EVS_SendEvent(MS5611_DEVICE_ERR_EID, CFE_EVS_ERROR, - "MS5611 ioctl returned %i", errno); - returnBool = FALSE; - goto end_of_function; - } - *returnVal = (rxBuf[1] << 16) + (rxBuf[2] << 8) + rxBuf[3]; - -end_of_function: - - return (returnBool); -} - - -boolean MS5611_Custom_Max_Events_Not_Reached(int32 ind) -{ - boolean returnBool = FALSE; - - if ((ind < CFE_EVS_MAX_EVENT_FILTERS) && (ind > 0)) - { - returnBool = TRUE; - } - - return (returnBool); -} - - -int32 MS5611_Custom_Init_EventFilters(int32 ind, CFE_EVS_BinFilter_t *EventTbl) -{ - int32 customEventCount = ind; - - /* Null check */ - if(0 == EventTbl) - { - customEventCount = -1; - goto end_of_function; - } - - if(TRUE == MS5611_Custom_Max_Events_Not_Reached(customEventCount)) - { - EventTbl[ customEventCount].EventID = MS5611_DEVICE_ERR_EID; - EventTbl[customEventCount++].Mask = CFE_EVS_FIRST_16_STOP; - } - else - { - customEventCount = -1; - goto end_of_function; - } - -end_of_function: - - return (customEventCount); -} - diff --git a/config/ocpoc/s1000/target/apps/ms5611/src/ms5611_spi.h b/config/ocpoc/s1000/target/apps/ms5611/src/ms5611_spi.h deleted file mode 100644 index c2bdc8783..000000000 --- a/config/ocpoc/s1000/target/apps/ms5611/src/ms5611_spi.h +++ /dev/null @@ -1,201 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ - -#ifndef MS5611_SPI_H -#define MS5611_SPI_H - -#ifdef __cplusplus -extern "C" { -#endif - -/************************************************************************ -** Includes -*************************************************************************/ -#include "ms5611_custom.h" -#include "ms5611_platform_cfg.h" -#include "cfe.h" - -/************************************************************************ -** Local Defines -*************************************************************************/ -/** \brief SPI Device path of the MS5611 */ -#define MS5611_SPI_DEVICE_PATH MS5611_DEVICE_PATH - -/** \brief SPI device mode */ -#define MS5611_SPI_DEVICE_MODE (3) - -/** \brief SPI device bits per word */ -#define MS5611_SPI_DEVICE_BITS (8) - -/** \brief SPI device speed */ -#define MS5611_SPI_DEVICE_SPEED (1000000) - -/** \brief SPI device transmit delay */ -#define MS5611_SPI_TX_DELAY (0) - -/** \brief SPI device receive delay */ -#define MS5611_SPI_RX_DELAY (0) -/* SPI Commands */ -/** \brief MS5611 command reset */ -#define MS5611_SPI_CMD_RESET (0x1e) - -/** \brief MS5611 command convert D1 (OSR=256) */ -#define MS5611_SPI_CMD_CONVERT_D1_MASK (0x40) - -/** \brief MS5611 command convert D2 (OSR=256) */ -#define MS5611_SPI_CMD_CONVERT_D2_MASK (0x50) - -/** \brief MS5611 command mask convert OSR 256 */ -#define MS5611_SPI_CMD_OSR_256_MASK (0x00) - -/** \brief MS5611 command mask convert OSR 512 */ -#define MS5611_SPI_CMD_OSR_512_MASK (0x02) - -/** \brief MS5611 command mask convert OSR 1024 */ -#define MS5611_SPI_CMD_OSR_1024_MASK (0x04) - -/** \brief MS5611 command mask convert OSR 2048 */ -#define MS5611_SPI_CMD_OSR_2048_MASK (0x06) - -/** \brief MS5611 command mask convert OSR 4096 */ -#define MS5611_SPI_CMD_OSR_4096_MASK (0x08) - -/** \brief MS5611 command ADC read */ -#define MS5611_SPI_CMD_ADC_READ (0x00) - -/** \brief MS5611 command mask PROM read */ -#define MS5611_SPI_CMD_PROM_READ_MASK (0xa0) - -/** \brief MS5611 command PROM read shift */ -#define MS5611_SPI_CMD_PROM_ADDR_SHIFT (1) - -/** \brief MS5611 command convert D1 with OSR mask */ -#define MS5611_SPI_CMD_CONVERT_D1 (MS5611_SPI_CMD_CONVERT_D1_MASK + MS5611_SPI_CMD_OSR_1024_MASK) - -/** \brief MS5611 command convert D2 with OSR mask */ -#define MS5611_SPI_CMD_CONVERT_D2 (MS5611_SPI_CMD_CONVERT_D2_MASK + MS5611_SPI_CMD_OSR_1024_MASK) - -/** \brief Retry attemps for interrupted ioctl calls. */ -#define MS5611_MAX_RETRY_ATTEMPTS (2) - -/** \brief Sleep time micro seconds for interrupted calls. */ -#define MS5611_MAX_RETRY_SLEEP_USEC (10) - - -/************************************************************************ -** Structure Declarations -*************************************************************************/ -/** - * \brief MS5611 device status - */ -typedef enum -{ - /*! status uninitialized */ - MS5611_CUSTOM_UNINITIALIZED = 0, - /*! status initialized */ - MS5611_CUSTOM_INITIALIZED = 1 -} MS5611_Custom_Status_t; - - -typedef struct -{ - /*! Device file descriptor */ - int DeviceFd; - /*! The current device status */ - MS5611_Custom_Status_t Status; -} MS5611_AppCustomData_t; - - -/************************************************************************ -** External Global Variables -*************************************************************************/ - -/************************************************************************ -** Function Prototypes -*************************************************************************/ - -/************************************************************************/ -/** \brief ioctl with limited EINTR retry attempts. -** -** \par Description -** This function is a wrapper for ioctl with retry attempts added. -** -** \param [in] fh file descriptor. -** \param [in] request code. -** \param [in] arg pointer to a device specific struct. -** -** \returns -** usually 0 for success and -1 for failure, see ioctl man-page for -** more info. -** \endreturns -** -*************************************************************************/ -int32 MS5611_Ioctl(int fh, int request, void *arg); - -/************************************************************************/ -/** \brief Determines if the maximum of event filters has been reached. -** -** \par Description -** This function checks if an index has reached the maximum -** number of events. -** -** \par Assumptions, External Events, and Notes: -** None -** -** \param [in] ind The current index to check. -** -** -** \returns boolean -** -*************************************************************************/ -boolean MS5611_Custom_Max_Events_Not_Reached(int32 ind); - -/************************************************************************/ -/** \brief Reset the device. -** -** \par Description -** This function must be used at initialization. -** -** \par Assumptions, External Events, and Notes: -** None -** -** \returns ioctl return code. -** -*************************************************************************/ -int32 MS5611_ResetDevice(void); - -#ifdef __cplusplus -} -#endif - -#endif /* MS5611_SPI_H */ diff --git a/config/ocpoc/s1000/target/apps/ms5611/tables/ms5611_config.c b/config/ocpoc/s1000/target/apps/ms5611/tables/ms5611_config.c deleted file mode 100644 index 696d9f096..000000000 --- a/config/ocpoc/s1000/target/apps/ms5611/tables/ms5611_config.c +++ /dev/null @@ -1,64 +0,0 @@ -/* -** Pragmas -*/ - -/* -** Include Files -*/ -#include "cfe_tbl_filedef.h" -#include "ms5611_tbldefs.h" - -/* -** Local Defines -*/ - -/* -** Local Structure Declarations -*/ -static OS_USED CFE_TBL_FileDef_t CFE_TBL_FileDef = -{ - /* Content format: ObjName[64], TblName[38], Desc[32], TgtFileName[20], ObjSize - ** ObjName - variable name of config table, e.g., CI_ConfigDefTbl[] - ** TblName - app's table name, e.g., CI.CONFIG_TBL, where CI is the same app name - ** used in cfe_es_startup.scr, and CI_defConfigTbl is the same table - ** name passed in to CFE_TBL_Register() - ** Desc - description of table in string format - ** TgtFileName[20] - table file name, compiled as .tbl file extension - ** ObjSize - size of the entire table - */ - - "MS5611_ConfigTbl", "MS5611.CONFIG_TBL", "MS5611 default config table", - "ms5611_config.tbl", (sizeof(MS5611_ConfigTbl_t)) -}; - -/* -** External Global Variables -*/ - -/* -** Global Variables -*/ - -/* Default MPU9250 config table data */ -MS5611_ConfigTbl_t MS5611_ConfigTbl = -{ - /* current pressure at MSL in kPa */ - 101.325 -}; - -/* -** Local Variables -*/ - -/* -** Function Prototypes -*/ - -/* -** Function Definitions -*/ - -/*======================================================================================= -** End of file ms5611_config.c -**=====================================================================================*/ - diff --git a/config/ocpoc/s1000/target/apps/nav/CMakeLists.txt b/config/ocpoc/s1000/target/apps/nav/CMakeLists.txt deleted file mode 100644 index 2b98f4b61..000000000 --- a/config/ocpoc/s1000/target/apps/nav/CMakeLists.txt +++ /dev/null @@ -1,9 +0,0 @@ -set(APP_NAME nav) - -buildliner_add_table( - ${APP_NAME} - NAME nav_config - SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/tables/nav_config.c -) - -buildliner_add_app_unit_test_src(${APP_NAME} SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/tables/nav_config.c) diff --git a/config/ocpoc/s1000/target/apps/nav/tables/nav_config.c b/config/ocpoc/s1000/target/apps/nav/tables/nav_config.c deleted file mode 100644 index 84dedafd2..000000000 --- a/config/ocpoc/s1000/target/apps/nav/tables/nav_config.c +++ /dev/null @@ -1,138 +0,0 @@ -/* -** Pragmas -*/ - -/* -** Include Files -*/ -#include "cfe_tbl_filedef.h" -#include "nav_tbldefs.h" - -/* -** Local Defines -*/ - -/* -** Local Structure Declarations -*/ -static OS_USED CFE_TBL_FileDef_t CFE_TBL_FileDef = -{ - /* Content format: ObjName[64], TblName[38], Desc[32], TgtFileName[20], ObjSize - ** ObjName - variable name of config table, e.g., CI_ConfigDefTbl[] - ** TblName - app's table name, e.g., CI.CONFIG_TBL, where CI is the same app name - ** used in cfe_es_startup.scr, and CI_defConfigTbl is the same table - ** name passed in to CFE_TBL_Register() - ** Desc - description of table in string format - ** TgtFileName[20] - table file name, compiled as .tbl file extension - ** ObjSize - size of the entire table - */ - - "NAV_ConfigTbl", "NAV.CONFIG_TBL", "NAV default config table", - "nav_config.tbl", (sizeof(NAV_ConfigTbl_t)) -}; - -/* -** External Global Variables -*/ - -/* -** Global Variables -*/ - -/* Default ULR config table data */ -NAV_ConfigTbl_t NAV_ConfigTbl = -{ - /** \brief Default Accepted Radius. - * - * \par Limits: - * Min > Max (incr.) 0.05 > 200.0 , default 2.0. - */ - 3.0, - - /** \brief Altitude Acceptance Radius. - * - * \par Limits: - * Min > Max (incr.) 0.05 > 200 , default 0.8. - */ - 1.2, - - /** \brief The Loiter Radius. - * - * \par Limits: - * Min > Max (incr.) 25 > 1000 , default 50.0. - */ - 50.0, - - /** \brief Take-off Altitude. - * - * \par Limits: - * Min > Max (incr.) 0 > 80 , default 2.5. - */ - 5.0, - - /** \brief Max yaw error in degrees needed for waypoint heading acceptance. - * - * \par Limits: - * Min > Max (incr.) 0 > 90 , default 12.0. - */ - 18.0, - - /** \brief Time in seconds we wait on reaching target heading at a waypoint if it is forced. - * - * \par Limits: - * Min > Max (incr.) -1 > 20 , default -1.0. - */ - -1.0, - - /** \brief Minimum Loiter Altitude. - * - * \par Limits: - * Min > Max (incr.) -1 > 80 , default 1.20. - */ - 1.20, - - /** \brief RTL Altitude. - * - * \par Limits: - * Min > Max (incr.) 0 > 150 , default 30.0. - */ - 10.0, - - /** \brief RTL Loiter Altitude. - * - * \par Limits: - * Min > Max (incr.) 2 > 100 , default 10.0. - */ - 5.0, - - /** \brief RTL Delay. - * - * \par Limits: - * Min > Max (incr.) -1 > 300 , default 0.0. - */ - 0.0, - - /** \brief Minimum distance to trigger rising to a safe altitude. - * - * \par Limits: - * Min > Max (incr.) 0.5 > 20 , default 5.0. - */ - 5.0 -}; - -/* -** Local Variables -*/ - -/* -** Function Prototypes -*/ - -/* -** Function Definitions -*/ - -/*======================================================================================= -** End of file nav_config.c -**=====================================================================================*/ - diff --git a/config/ocpoc/s1000/target/apps/prm/CMakeLists.txt b/config/ocpoc/s1000/target/apps/prm/CMakeLists.txt deleted file mode 100644 index 64806fbfe..000000000 --- a/config/ocpoc/s1000/target/apps/prm/CMakeLists.txt +++ /dev/null @@ -1,7 +0,0 @@ -set(APP_NAME prm) - -buildliner_add_table( - ${APP_NAME} - NAME prm_config - SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/tables/prm_config.c -) diff --git a/config/ocpoc/s1000/target/apps/prm/tables/prm_config.c b/config/ocpoc/s1000/target/apps/prm/tables/prm_config.c deleted file mode 100644 index c275bb0dd..000000000 --- a/config/ocpoc/s1000/target/apps/prm/tables/prm_config.c +++ /dev/null @@ -1,63 +0,0 @@ -/* -** Pragmas -*/ - -/* -** Include Files -*/ -#include "cfe_tbl_filedef.h" -#include "prm_tbldefs.h" - -/* -** Local Defines -*/ - -/* -** Local Structure Declarations -*/ -static OS_USED CFE_TBL_FileDef_t CFE_TBL_FileDef = -{ - /* Content format: ObjName[64], TblName[38], Desc[32], TgtFileName[20], ObjSize - ** ObjName - variable name of config table, e.g., CI_ConfigDefTbl[] - ** TblName - app's table name, e.g., CI.CONFIG_TBL, where CI is the same app name - ** used in cfe_es_startup.scr, and CI_defConfigTbl is the same table - ** name passed in to CFE_TBL_Register() - ** Desc - description of table in string format - ** TgtFileName[20] - table file name, compiled as .tbl file extension - ** ObjSize - size of the entire table - */ - - "PRM_ConfigTbl", "PRM.CONFIG_TBL", "PRM default config table", - "prm_config.tbl", (sizeof(PRM_ConfigTbl_t)) -}; - -/* -** External Global Variables -*/ - -/* -** Global Variables -*/ - -/* Default PRM config table data */ -PRM_ConfigTbl_t PRM_ConfigTbl = -{ - 1 -}; - -/* -** Local Variables -*/ - -/* -** Function Prototypes -*/ - -/* -** Function Definitions -*/ - -/*======================================================================================= -** End of file prm_config.c -**=====================================================================================*/ - diff --git a/config/ocpoc/s1000/target/apps/qae/CMakeLists.txt b/config/ocpoc/s1000/target/apps/qae/CMakeLists.txt deleted file mode 100644 index c3cbca98d..000000000 --- a/config/ocpoc/s1000/target/apps/qae/CMakeLists.txt +++ /dev/null @@ -1,9 +0,0 @@ -set(APP_NAME qae) - -buildliner_add_table( - ${APP_NAME} - NAME qae_config - SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/tables/qae_config.c -) - -buildliner_add_app_unit_test_src(${APP_NAME} SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/tables/qae_config.c) diff --git a/config/ocpoc/s1000/target/apps/qae/tables/qae_config.c b/config/ocpoc/s1000/target/apps/qae/tables/qae_config.c deleted file mode 100644 index 5e28b1802..000000000 --- a/config/ocpoc/s1000/target/apps/qae/tables/qae_config.c +++ /dev/null @@ -1,104 +0,0 @@ -/* -** Pragmas -*/ - -/* -** Include Files -*/ -#include "cfe_tbl_filedef.h" -#include "qae_tbldefs.h" - -/* -** Local Defines -*/ - -/* -** Local Structure Declarations -*/ -static OS_USED CFE_TBL_FileDef_t CFE_TBL_FileDef = -{ - /* Content format: ObjName[64], TblName[38], Desc[32], TgtFileName[20], ObjSize - ** ObjName - variable name of config table, e.g., CI_ConfigDefTbl[] - ** TblName - app's table name, e.g., CI.CONFIG_TBL, where CI is the same app name - ** used in cfe_es_startup.scr, and CI_defConfigTbl is the same table - ** name passed in to CFE_TBL_Register() - ** Desc - description of table in string format - ** TgtFileName[20] - table file name, compiled as .tbl file extension - ** ObjSize - size of the entire table - */ - - "QAE_ConfigTbl", "QAE.CONFIG_TBL", "QAE default config table", - "qae_config.tbl", (sizeof(QAE_ConfigTbl_t)) -}; - -/* -** External Global Variables -*/ - -/* -** Global Variables -*/ - -/* Default QAE config table data */ -QAE_ConfigTbl_t QAE_ConfigTbl = -{ - /** \brief Complimentary filter accelerometer weight. - * - * \par Limits: - * Min > Max (incr.) 0 > 1, default 0.2. - */ - 0.2f, - /** \brief Complimentary filter magnetometer weight. - * - * \par Limits: - * Min > Max (incr.) 0 > 1, default 0.1. - */ - 0.1f, - /** \brief Complimentary filter gyroscope bias weight. - * - * \par Limits: - * Min > Max (incr.) 0 > 1, default 0.1. - */ - 0.1f, - /** \brief Magnetic declination, in degrees. - * - * \par Limits: - * Min > Max (incr.) 0 > 180, default 0.0. - */ - 0.0f, - /** \brief Automatic GPS based declination compensation. - * - * \par Limits: - * TRUE or FALSE, default 1 (TRUE). - */ - 1, - /** \brief Acceleration compensation based on GPS velocity. - * - * \par Limits: - * TRUE or FALSE, default 1 (TRUE). - */ - 1, - /** \brief Gyro bias limit in rad/s. - * - * \par Limits: - * Min > Max (incr.) 0 > 2, default 0.05. - */ - 0.05f -}; - -/* -** Local Variables -*/ - -/* -** Function Prototypes -*/ - -/* -** Function Definitions -*/ - -/*======================================================================================= -** End of file qae_config.c -**=====================================================================================*/ - diff --git a/config/ocpoc/s1000/target/apps/rcin/CMakeLists.txt b/config/ocpoc/s1000/target/apps/rcin/CMakeLists.txt deleted file mode 100644 index 363fc65e3..000000000 --- a/config/ocpoc/s1000/target/apps/rcin/CMakeLists.txt +++ /dev/null @@ -1 +0,0 @@ -set(APP_NAME rcin) diff --git a/config/ocpoc/s1000/target/apps/rcin/src/CMakeLists.txt b/config/ocpoc/s1000/target/apps/rcin/src/CMakeLists.txt deleted file mode 100644 index 483c6ee5e..000000000 --- a/config/ocpoc/s1000/target/apps/rcin/src/CMakeLists.txt +++ /dev/null @@ -1,5 +0,0 @@ -# Set source for custom code. -set(APP_CUSTOM_SRC - ${CMAKE_CURRENT_SOURCE_DIR}/rcin_custom.c - PARENT_SCOPE - ) diff --git a/config/ocpoc/s1000/target/apps/rcin/src/rcin_custom.c b/config/ocpoc/s1000/target/apps/rcin/src/rcin_custom.c deleted file mode 100644 index 146b14d84..000000000 --- a/config/ocpoc/s1000/target/apps/rcin/src/rcin_custom.c +++ /dev/null @@ -1,868 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ -/************************************************************************ -** Pragmas -*************************************************************************/ - -/************************************************************************ -** Includes -*************************************************************************/ -#include "rcin_sbus.h" -#include "rcin_events.h" -#include "perf_ids.h" -#include "px4lib.h" -#include "rcin_platform_cfg.h" - -/************************************************************************ -** Local Defines -*************************************************************************/ - -/************************************************************************ -** Local Structure Declarations -*************************************************************************/ - -typedef enum { - -/** \brief 'RCIN - ' -** \event 'RCIN - ' -** -** \par Type: ERROR -** -** \par Cause: -** -** This event message is issued when a device resource encounters an -** error. -** -*/ - RCIN_DEVICE_ERR_EID = RCIN_EVT_CNT, -/** \brief 'RCIN - ' -** \event 'RCIN - ' -** -** \par Type: ERROR -** -** \par Cause: -** -** This event message is issued when the RC input stream is out of -** sync. -** -*/ - RCIN_SYNC_ERR_EID, - -/** \brief Number of custom events -** -** \par Limits: -** int32 -*/ - RCIN_CUSTOM_EVT_CNT - -} RCIN_CustomEventIds_t; - -/************************************************************************ -** External Global Variables -*************************************************************************/ - -/************************************************************************ -** Global Variables -*************************************************************************/ -RCIN_AppCustomData_t RCIN_AppCustomData; - -/************************************************************************ -** Local Variables -*************************************************************************/ - -/************************************************************************ -** Local Function Definitions -*************************************************************************/ -int32 RCIN_Ioctl(int fh, int request, void *arg) -{ - int32 returnCode = 0; - uint32 i = 0; - - for (i=0; i < RCIN_MAX_RETRY_ATTEMPTS; i++) - { - returnCode = ioctl(fh, request, arg); - - if (-1 == returnCode && EINTR == errno) - { - usleep(RCIN_MAX_RETRY_SLEEP_USEC); - } - else - { - break; - } - } - - return (returnCode); -} - - -int32 RCIN_Read(int fd, void *buf, size_t count) -{ - int32 returnSize = 0; - uint32 i = 0; - - for (i=0; i < RCIN_MAX_RETRY_ATTEMPTS; i++) - { - returnSize = read(fd, buf, count); - /* Interrupted */ - if (-1 == returnSize && EINTR == errno) - { - (void) CFE_EVS_SendEvent(RCIN_DEVICE_ERR_EID, CFE_EVS_ERROR, - "RCIN device read EINTR"); - usleep(RCIN_MAX_RETRY_SLEEP_USEC); - } - else - { - break; - } - } - - return (returnSize); -} - - -void RCIN_Custom_InitData(void) -{ - /* Set all struct zero values */ - bzero(&RCIN_AppCustomData, sizeof(RCIN_AppCustomData)); - strncpy(RCIN_AppCustomData.DevName, RCIN_DEVICE_PATH, RCIN_MAX_DEVICE_PATH); - /* Set all non-zero values */ - RCIN_AppCustomData.ContinueFlag = TRUE; - RCIN_AppCustomData.Priority = RCIN_STREAMING_TASK_PRIORITY; - RCIN_AppCustomData.StreamingTask = RCIN_Stream_Task; - /* Initialize for failsafe and RcLost */ - RCIN_AppCustomData.Measure.RcFailsafe = 1; - RCIN_AppCustomData.Measure.RcLost = 1; - return; -} - - -boolean RCIN_Custom_Init(void) -{ - boolean returnBool = TRUE; - int32 returnCode = 0; - int baud = RCIN_SERIAL_INPUT_SPEED; - struct serial_struct serials; - - /* Open */ - RCIN_AppCustomData.DeviceFd = open(RCIN_DEVICE_PATH, O_RDWR | O_NONBLOCK | O_CLOEXEC); - if (RCIN_AppCustomData.DeviceFd < 0) - { - (void) CFE_EVS_SendEvent(RCIN_DEVICE_ERR_EID, CFE_EVS_ERROR, - "RCIN custom device open errno: %i", errno); - returnBool = FALSE; - goto end_of_function; - } - else - { - RCIN_AppCustomData.Status = RCIN_CUSTOM_INITIALIZED; - } - - /* Create mutex for shared data */ - returnCode = OS_MutSemCreate(&RCIN_AppCustomData.Mutex, RCIN_MUTEX_NAME, 0); - if (returnCode != CFE_SUCCESS) - { - (void) CFE_EVS_SendEvent(RCIN_DEVICE_ERR_EID, CFE_EVS_ERROR, - "RCIN mutex create failed in custom init"); - returnBool = FALSE; - goto end_of_function; - } - - /* Get configuration */ - returnCode = tcgetattr(RCIN_AppCustomData.DeviceFd, - &RCIN_AppCustomData.TerminalConfig); - if (0 != returnCode) - { - (void) CFE_EVS_SendEvent(RCIN_DEVICE_ERR_EID, CFE_EVS_ERROR, - "RCIN custom get terminal config failed errno: %i", errno); - goto end_of_function; - } - - tcflush(RCIN_AppCustomData.DeviceFd, TCIFLUSH); - bzero(&RCIN_AppCustomData.TerminalConfig, - sizeof(RCIN_AppCustomData.TerminalConfig)); - RCIN_AppCustomData.TerminalConfig.c_cflag |= (CLOCAL | CREAD); - RCIN_AppCustomData.TerminalConfig.c_cflag &= ~CSIZE; - RCIN_AppCustomData.TerminalConfig.c_cflag |= CS8; - RCIN_AppCustomData.TerminalConfig.c_cflag |= PARENB; - RCIN_AppCustomData.TerminalConfig.c_cflag &= ~PARODD; - RCIN_AppCustomData.TerminalConfig.c_iflag |= INPCK; - RCIN_AppCustomData.TerminalConfig.c_cflag |= CSTOPB; - RCIN_AppCustomData.TerminalConfig.c_cc[VTIME] = 0; - RCIN_AppCustomData.TerminalConfig.c_cc[VMIN] = 0; - - cfsetispeed(&RCIN_AppCustomData.TerminalConfig, B38400); - cfsetospeed(&RCIN_AppCustomData.TerminalConfig, B38400); - - tcflush(RCIN_AppCustomData.DeviceFd, TCIFLUSH); - - returnCode = tcsetattr(RCIN_AppCustomData.DeviceFd, TCSANOW, - &RCIN_AppCustomData.TerminalConfig); - if (0 != returnCode) - { - (void) CFE_EVS_SendEvent(RCIN_DEVICE_ERR_EID, CFE_EVS_ERROR, - "RCIN custom set terminal config failed errno: %i", errno); - goto end_of_function; - } - - returnCode = RCIN_Ioctl(RCIN_AppCustomData.DeviceFd, TIOCGSERIAL, - &serials); - if (0 > returnCode) - { - (void) CFE_EVS_SendEvent(RCIN_DEVICE_ERR_EID, CFE_EVS_ERROR, - "RCIN custom get serial line info errno: %i", errno); - goto end_of_function; - } - - serials.flags = ASYNC_SPD_CUST; - serials.custom_divisor = serials.baud_base / baud; - - returnCode = RCIN_Ioctl(RCIN_AppCustomData.DeviceFd, TIOCSSERIAL, - &serials); - if (0 > returnCode) - { - (void) CFE_EVS_SendEvent(RCIN_DEVICE_ERR_EID, CFE_EVS_ERROR, - "RCIN custom set serial line info errno: %i", errno); - goto end_of_function; - } - - RCIN_Ioctl(RCIN_AppCustomData.DeviceFd, TIOCGSERIAL, &serials); - - tcflush(RCIN_AppCustomData.DeviceFd, TCIFLUSH); - - /* Create streaming task */ - /* Set loop flag to continue forever */ - RCIN_AppCustomData.ContinueFlag = TRUE; - - /* Create the streaming task */ - returnCode = CFE_ES_CreateChildTask( - &RCIN_AppCustomData.ChildTaskID, - RCIN_STREAMING_TASK_NAME, - RCIN_AppCustomData.StreamingTask, - 0, - CFE_ES_DEFAULT_STACK_SIZE, - RCIN_AppCustomData.Priority, - RCIN_STREAMING_TASK_FLAGS); - - if(CFE_SUCCESS != returnCode) - { - RCIN_AppCustomData.ContinueFlag = FALSE; - returnBool = FALSE; - CFE_EVS_SendEvent(RCIN_DEVICE_ERR_EID, CFE_EVS_ERROR, - "RCIN create streaming task failed"); - goto end_of_function; - } - else - { - RCIN_AppCustomData.Status = RCIN_CUSTOM_ENABLED; - } - -end_of_function: - return (returnBool); -} - - -void RCIN_Stream_Task(void) -{ - int32 returnCode = 0; - int32 timeouts = 0; - uint32 maxFd = 0; - uint32 retryAttempts = 0; - uint32 iStatus = -1; - fd_set fds; - struct timeval timeValue; - - iStatus = CFE_ES_RegisterChildTask(); - - if (iStatus == CFE_SUCCESS) - { - /* Task should continue forever until cleanup (uninit) */ - while (RCIN_AppCustomData.ContinueFlag == TRUE) - { - maxFd = 0; - returnCode = 0; - - /* Select modifies the timeout value with time left until - * the timeout would expire so timeValue needs to be set - * every loop iteration - */ - timeValue.tv_sec = RCIN_BUFFER_FILL_TIMEOUT_SEC; - timeValue.tv_usec = RCIN_BUFFER_FILL_TIMEOUT_USEC; - - /* Initialize the set */ - FD_ZERO(&fds); - - FD_SET(RCIN_AppCustomData.DeviceFd, &fds); - - /* Get the greatest fd value for select() */ - maxFd = RCIN_AppCustomData.DeviceFd; - - CFE_ES_PerfLogEntry(RCIN_DEVICE_GET_PERF_ID); - /* Wait for RC data */ - returnCode = select(maxFd + 1, &fds, 0, 0, &timeValue); - CFE_ES_PerfLogExit(RCIN_DEVICE_GET_PERF_ID); - - /* select() wasn't successful */ - if (-1 == returnCode) - { - /* select was interrupted, try again */ - if (EINTR == errno) - { - RCIN_Custom_RC_Lost(TRUE); - (void) CFE_EVS_SendEvent(RCIN_DEVICE_ERR_EID, CFE_EVS_ERROR, - "RCIN select was interrupted"); - usleep(RCIN_MAX_RETRY_SLEEP_USEC); - continue; - } - else - { - RCIN_Custom_RC_Lost(TRUE); - /* select returned an error other than EINTR */ - (void) CFE_EVS_SendEvent(RCIN_DEVICE_ERR_EID, CFE_EVS_ERROR, - "RCIN stream failed select() returned %i", errno); - usleep(RCIN_MAX_RETRY_SLEEP_USEC); - continue; - } - } - /* select timed out */ - if (0 == returnCode) - { - RCIN_Custom_RC_Lost(TRUE); - continue; - } - /* select() returned and data is ready to be read */ - if(returnCode > 0) - { - RCIN_Custom_RC_Lost(FALSE); - RCIN_Custom_Read(); - continue; - } - } /* end while loop */ - } /* end if status == success */ - - /* Take shared data mutex */ - OS_MutSemTake(RCIN_AppCustomData.Mutex); - /* Set failsafe and RcLost */ - RCIN_AppCustomData.Measure.RcFailsafe = 1; - RCIN_AppCustomData.Measure.RcLost = 1; - /* Give shared data mutex */ - OS_MutSemGive(RCIN_AppCustomData.Mutex); - - /* Streaming task is exiting so set app flag to initialized */ - RCIN_AppCustomData.Status = RCIN_CUSTOM_ENABLED; - CFE_EVS_SendEvent(RCIN_DEVICE_ERR_EID, CFE_EVS_ERROR, - "RCIN receive task exited with return code %li task status (0x%08lX)", - returnCode, iStatus); - - /* The child task was successfully registered so exit from it */ - if (iStatus == CFE_SUCCESS) - { - CFE_ES_ExitChildTask(); - } -} - - -boolean RCIN_Custom_PWM_Translate(uint8 *data, int size) -{ - boolean returnBool = TRUE; - - /* Null pointer check */ - if(0 == data) - { - (void) CFE_EVS_SendEvent(RCIN_DEVICE_ERR_EID, CFE_EVS_ERROR, - "RCIN_Custom_PWM_Translate null pointer"); - returnBool = FALSE; - goto end_of_function; - } - - /* Size check */ - if(RCIN_SERIAL_READ_SIZE != size) - { - (void) CFE_EVS_SendEvent(RCIN_DEVICE_ERR_EID, CFE_EVS_ERROR, - "RCIN_Custom_PWM_Translate size error"); - returnBool = FALSE; - goto end_of_function; - } - - /* Take shared data mutex */ - OS_MutSemTake(RCIN_AppCustomData.Mutex); - - RCIN_AppCustomData.Measure.Values[0] = (uint16)(((data[1] | data[2] << 8) - & 0x07FF) * RCIN_SBUS_SCALE_FACTOR + .5f) + RCIN_SBUS_SCALE_OFFSET; - RCIN_AppCustomData.Measure.Values[1] = (uint16)(((data[2] >> 3 | data[3] << 5) - & 0x07FF) * RCIN_SBUS_SCALE_FACTOR + .5f) + RCIN_SBUS_SCALE_OFFSET; - RCIN_AppCustomData.Measure.Values[2] = (uint16)(((data[3] >> 6 | data[4] << 2 - | data[5] << 10) & 0x07FF) * RCIN_SBUS_SCALE_FACTOR + .5f) - + RCIN_SBUS_SCALE_OFFSET; - RCIN_AppCustomData.Measure.Values[3] = (uint16)(((data[5] >> 1 | data[6] << 7) - & 0x07FF) * RCIN_SBUS_SCALE_FACTOR + .5f) + RCIN_SBUS_SCALE_OFFSET; - RCIN_AppCustomData.Measure.Values[4] = (uint16)(((data[6] >> 4 | data[7] << 4) - & 0x07FF) * RCIN_SBUS_SCALE_FACTOR + .5f) + RCIN_SBUS_SCALE_OFFSET; - RCIN_AppCustomData.Measure.Values[5] = (uint16)(((data[7] >> 7 | data[8] << 1 - | data[9] << 9) & 0x07FF) * RCIN_SBUS_SCALE_FACTOR + .5f) - + RCIN_SBUS_SCALE_OFFSET; - RCIN_AppCustomData.Measure.Values[6] = (uint16)(((data[9] >> 2 | data[10] << 6) - & 0x07FF) * RCIN_SBUS_SCALE_FACTOR + .5f) + RCIN_SBUS_SCALE_OFFSET; - RCIN_AppCustomData.Measure.Values[7] = (uint16)(((data[10] >> 5 | data[11] << 3) - & 0x07FF) * RCIN_SBUS_SCALE_FACTOR + .5f) + RCIN_SBUS_SCALE_OFFSET; // & the other 8 + 2 channels if you need them - RCIN_AppCustomData.Measure.Values[8] = (uint16)(((data[12] | data[13] << 8) - & 0x07FF) * RCIN_SBUS_SCALE_FACTOR + .5f) + RCIN_SBUS_SCALE_OFFSET; - RCIN_AppCustomData.Measure.Values[9] = (uint16)(((data[13] >> 3 | data[14] << 5) - & 0x07FF) * RCIN_SBUS_SCALE_FACTOR + .5f) + RCIN_SBUS_SCALE_OFFSET; - RCIN_AppCustomData.Measure.Values[10] = (uint16)(((data[14] >> 6 | data[15] << 2 - | data[16] << 10) & 0x07FF) * RCIN_SBUS_SCALE_FACTOR + .5f) - + RCIN_SBUS_SCALE_OFFSET; - RCIN_AppCustomData.Measure.Values[11] = (uint16)(((data[16] >> 1 | data[17] << 7) - & 0x07FF) * RCIN_SBUS_SCALE_FACTOR + .5f) + RCIN_SBUS_SCALE_OFFSET; - RCIN_AppCustomData.Measure.Values[12] = (uint16)(((data[17] >> 4 | data[18] << 4) - & 0x07FF) * RCIN_SBUS_SCALE_FACTOR + .5f) + RCIN_SBUS_SCALE_OFFSET; - RCIN_AppCustomData.Measure.Values[13] = (uint16)(((data[18] >> 7 | data[19] << 1 - | data[20] << 9) & 0x07FF) * RCIN_SBUS_SCALE_FACTOR + .5f) - + RCIN_SBUS_SCALE_OFFSET; - RCIN_AppCustomData.Measure.Values[14] = (uint16)(((data[20] >> 2 | data[21] << 6) - & 0x07FF) * RCIN_SBUS_SCALE_FACTOR + .5f) + RCIN_SBUS_SCALE_OFFSET; - RCIN_AppCustomData.Measure.Values[15] = (uint16)(((data[21] >> 5 | data[22] << 3) - & 0x07FF) * RCIN_SBUS_SCALE_FACTOR + .5f) + RCIN_SBUS_SCALE_OFFSET; - - /* Timestamp */ - RCIN_AppCustomData.Measure.Timestamp = PX4LIB_GetPX4TimeUs(); - - /* Channel count */ - RCIN_AppCustomData.Measure.ChannelCount = RCIN_SBUS_CHANNEL_COUNT; - RCIN_AppCustomData.Measure.RSSI = 100; - RCIN_AppCustomData.Measure.RcLostFrameCount = 0; - RCIN_AppCustomData.Measure.RcTotalFrameCount = 1; - RCIN_AppCustomData.Measure.RcPpmFrameLength = 100; - RCIN_AppCustomData.Measure.RcFailsafe = (data[23] & (1 << 3)) ? TRUE : FALSE; - RCIN_AppCustomData.Measure.RcLost = (data[23] & (1 << 2)) ? TRUE : FALSE; - RCIN_AppCustomData.Measure.InputSource = PX4_RC_INPUT_SOURCE_PX4FMU_SBUS; - - /* Give shared data mutex */ - OS_MutSemGive(RCIN_AppCustomData.Mutex); - -end_of_function: - return (returnBool); -} - - -void RCIN_Custom_RC_Lost(boolean notReset) -{ - static int errorCount = 0; - - /* Take shared data mutex */ - OS_MutSemTake(RCIN_AppCustomData.Mutex); - - if (FALSE == notReset) - { - /* Set status to streaming state */ - RCIN_AppCustomData.Status = RCIN_CUSTOM_STREAMING; - errorCount = 0; - } - else - { - /* Set status to not streaming if we're not in RC Lost*/ - if (RCIN_AppCustomData.Status != RCIN_CUSTOM_RC_LOST - && RCIN_AppCustomData.Status != RCIN_CUSTOM_NOTSTREAMING) - { - RCIN_AppCustomData.Status = RCIN_CUSTOM_NOTSTREAMING; - } - errorCount++; - } - - if(RCIN_MAX_ERROR_COUNT == errorCount) - { - /* We're at max error count, set failsafe and lost flags */ - RCIN_AppCustomData.Measure.RcFailsafe = TRUE; - RCIN_AppCustomData.Measure.RcLost = TRUE; - - if (RCIN_AppCustomData.Status != RCIN_CUSTOM_RC_LOST) - { - CFE_EVS_SendEvent(RCIN_DEVICE_ERR_EID, CFE_EVS_ERROR, - "RCIN RC LOST, setting failsafe and lost flags"); - RCIN_AppCustomData.Status = RCIN_CUSTOM_RC_LOST; - } - errorCount = 0; - } - /* Give shared data mutex */ - OS_MutSemGive(RCIN_AppCustomData.Mutex); - return; -} - - -void RCIN_Custom_Read(void) -{ - uint32 i = 0; - int bytesRead = 0; - uint8 sbusTemp[RCIN_SERIAL_READ_SIZE*4] = { 0 }; - static boolean sync = FALSE; - - /* Read */ - bytesRead = RCIN_Read(RCIN_AppCustomData.DeviceFd, &sbusTemp, sizeof(sbusTemp)); - - if(bytesRead > 0) - { - for(i = 0; i < bytesRead; i++) - { - switch(RCIN_AppCustomData.ParserState) - { - case RCIN_PARSER_STATE_UNKNOWN: - { - /* If header is found move to next state */ - if(0x0f == sbusTemp[i] || 0x8f == sbusTemp[i]) - { - RCIN_AppCustomData.sbusData[0] = sbusTemp[i]; - RCIN_AppCustomData.ParserState = RCIN_PARSER_STATE_WAITING_FOR_DATA1; - } - break; - } - case RCIN_PARSER_STATE_WAITING_FOR_HEADER: - { - /* If header is found move to next state */ - if(0x0f == sbusTemp[i] || 0x8f == sbusTemp[i]) - { - RCIN_AppCustomData.sbusData[0] = sbusTemp[i]; - RCIN_AppCustomData.ParserState = RCIN_PARSER_STATE_WAITING_FOR_DATA1; - } - break; - } - case RCIN_PARSER_STATE_WAITING_FOR_DATA1: - { - RCIN_AppCustomData.sbusData[1] = sbusTemp[i]; - RCIN_AppCustomData.ParserState = RCIN_PARSER_STATE_WAITING_FOR_DATA2; - break; - } - case RCIN_PARSER_STATE_WAITING_FOR_DATA2: - { - RCIN_AppCustomData.sbusData[2] = sbusTemp[i]; - RCIN_AppCustomData.ParserState = RCIN_PARSER_STATE_WAITING_FOR_DATA3; - break; - } - case RCIN_PARSER_STATE_WAITING_FOR_DATA3: - { - RCIN_AppCustomData.sbusData[3] = sbusTemp[i]; - RCIN_AppCustomData.ParserState = RCIN_PARSER_STATE_WAITING_FOR_DATA4; - break; - } - case RCIN_PARSER_STATE_WAITING_FOR_DATA4: - { - RCIN_AppCustomData.sbusData[4] = sbusTemp[i]; - RCIN_AppCustomData.ParserState = RCIN_PARSER_STATE_WAITING_FOR_DATA5; - break; - } - case RCIN_PARSER_STATE_WAITING_FOR_DATA5: - { - RCIN_AppCustomData.sbusData[5] = sbusTemp[i]; - RCIN_AppCustomData.ParserState = RCIN_PARSER_STATE_WAITING_FOR_DATA6; - break; - } - case RCIN_PARSER_STATE_WAITING_FOR_DATA6: - { - RCIN_AppCustomData.sbusData[6] = sbusTemp[i]; - RCIN_AppCustomData.ParserState = RCIN_PARSER_STATE_WAITING_FOR_DATA7; - break; - } - case RCIN_PARSER_STATE_WAITING_FOR_DATA7: - { - RCIN_AppCustomData.sbusData[7] = sbusTemp[i]; - RCIN_AppCustomData.ParserState = RCIN_PARSER_STATE_WAITING_FOR_DATA8; - break; - } - case RCIN_PARSER_STATE_WAITING_FOR_DATA8: - { - RCIN_AppCustomData.sbusData[8] = sbusTemp[i]; - RCIN_AppCustomData.ParserState = RCIN_PARSER_STATE_WAITING_FOR_DATA9; - break; - } - case RCIN_PARSER_STATE_WAITING_FOR_DATA9: - { - RCIN_AppCustomData.sbusData[9] = sbusTemp[i]; - RCIN_AppCustomData.ParserState = RCIN_PARSER_STATE_WAITING_FOR_DATA10; - break; - } - case RCIN_PARSER_STATE_WAITING_FOR_DATA10: - { - RCIN_AppCustomData.sbusData[10] = sbusTemp[i]; - RCIN_AppCustomData.ParserState = RCIN_PARSER_STATE_WAITING_FOR_DATA11; - break; - } - case RCIN_PARSER_STATE_WAITING_FOR_DATA11: - { - RCIN_AppCustomData.sbusData[11] = sbusTemp[i]; - RCIN_AppCustomData.ParserState = RCIN_PARSER_STATE_WAITING_FOR_DATA12; - break; - } - case RCIN_PARSER_STATE_WAITING_FOR_DATA12: - { - RCIN_AppCustomData.sbusData[12] = sbusTemp[i]; - RCIN_AppCustomData.ParserState = RCIN_PARSER_STATE_WAITING_FOR_DATA13; - } - break; - case RCIN_PARSER_STATE_WAITING_FOR_DATA13: - { - RCIN_AppCustomData.sbusData[13] = sbusTemp[i]; - RCIN_AppCustomData.ParserState = RCIN_PARSER_STATE_WAITING_FOR_DATA14; - break; - } - case RCIN_PARSER_STATE_WAITING_FOR_DATA14: - { - RCIN_AppCustomData.sbusData[14] = sbusTemp[i]; - RCIN_AppCustomData.ParserState = RCIN_PARSER_STATE_WAITING_FOR_DATA15; - break; - } - case RCIN_PARSER_STATE_WAITING_FOR_DATA15: - { - RCIN_AppCustomData.sbusData[15] = sbusTemp[i]; - RCIN_AppCustomData.ParserState = RCIN_PARSER_STATE_WAITING_FOR_DATA16; - break; - } - case RCIN_PARSER_STATE_WAITING_FOR_DATA16: - { - RCIN_AppCustomData.sbusData[16] = sbusTemp[i]; - RCIN_AppCustomData.ParserState = RCIN_PARSER_STATE_WAITING_FOR_DATA17; - break; - } - case RCIN_PARSER_STATE_WAITING_FOR_DATA17: - { - RCIN_AppCustomData.sbusData[17] = sbusTemp[i]; - RCIN_AppCustomData.ParserState = RCIN_PARSER_STATE_WAITING_FOR_DATA18; - break; - } - case RCIN_PARSER_STATE_WAITING_FOR_DATA18: - { - RCIN_AppCustomData.sbusData[18] = sbusTemp[i]; - RCIN_AppCustomData.ParserState = RCIN_PARSER_STATE_WAITING_FOR_DATA19; - break; - } - case RCIN_PARSER_STATE_WAITING_FOR_DATA19: - { - RCIN_AppCustomData.sbusData[19] = sbusTemp[i]; - RCIN_AppCustomData.ParserState = RCIN_PARSER_STATE_WAITING_FOR_DATA20; - break; - } - case RCIN_PARSER_STATE_WAITING_FOR_DATA20: - { - RCIN_AppCustomData.sbusData[20] = sbusTemp[i]; - RCIN_AppCustomData.ParserState = RCIN_PARSER_STATE_WAITING_FOR_DATA21; - break; - } - case RCIN_PARSER_STATE_WAITING_FOR_DATA21: - { - RCIN_AppCustomData.sbusData[21] = sbusTemp[i]; - RCIN_AppCustomData.ParserState = RCIN_PARSER_STATE_WAITING_FOR_DATA22; - break; - } - case RCIN_PARSER_STATE_WAITING_FOR_DATA22: - { - RCIN_AppCustomData.sbusData[22] = sbusTemp[i]; - RCIN_AppCustomData.ParserState = RCIN_PARSER_STATE_WAITING_FOR_FLAGS; - break; - } - case RCIN_PARSER_STATE_WAITING_FOR_FLAGS: - { - RCIN_AppCustomData.sbusData[23] = sbusTemp[i]; - RCIN_AppCustomData.ParserState = RCIN_PARSER_STATE_WAITING_FOR_FOOTER; - break; - } - case RCIN_PARSER_STATE_WAITING_FOR_FOOTER: - { - if(0x00 == sbusTemp[i]) - { - /* Reset the error counter */ - RCIN_Custom_RC_Lost(FALSE); - RCIN_AppCustomData.sbusData[24] = sbusTemp[i]; - RCIN_AppCustomData.ParserState = RCIN_PARSER_STATE_WAITING_FOR_HEADER; - if (FALSE == sync) - { - sync = TRUE; - (void) CFE_EVS_SendEvent(RCIN_SYNC_ERR_EID, CFE_EVS_ERROR, - "RCIN in sync."); - } - /* We have a valid packet, translate SBUS data */ - RCIN_Custom_PWM_Translate(RCIN_AppCustomData.sbusData, sizeof(RCIN_AppCustomData.sbusData)); - } - else - { - RCIN_Custom_RC_Lost(TRUE); - /* The end byte wasn't found so find a header candidate */ - RCIN_AppCustomData.ParserState = RCIN_PARSER_STATE_WAITING_FOR_HEADER; - (void) CFE_EVS_SendEvent(RCIN_SYNC_ERR_EID, CFE_EVS_ERROR, - "RCIN out of sync."); - sync = FALSE; - } - break; - } - default: - { - RCIN_Custom_RC_Lost(TRUE); - /* Unknown parser state */ - (void) CFE_EVS_SendEvent(RCIN_SYNC_ERR_EID, CFE_EVS_ERROR, - "Parser in invalid state."); - RCIN_AppCustomData.ParserState = RCIN_PARSER_STATE_UNKNOWN; - break; - } - } - } - } - /* Read returned an error */ - else - { - RCIN_Custom_RC_Lost(TRUE); - (void) CFE_EVS_SendEvent(RCIN_DEVICE_ERR_EID, CFE_EVS_ERROR, - "RCIN device read error, errno: %i", errno); - } - return; -} - - -boolean RCIN_Custom_Measure(PX4_InputRcMsg_t *Measure) -{ - boolean returnBool = TRUE; - void *userDataPtr = 0; - void *copyDataPtr = 0; - uint16 userDataLength = 0; - uint16 i = 0; - - /* Null pointer check */ - if (0 == Measure) - { - (void) CFE_EVS_SendEvent(RCIN_DEVICE_ERR_EID, CFE_EVS_ERROR, - "RCIN device read null pointer error"); - returnBool = FALSE; - goto end_of_function; - } - - /* Take the shared data mutex */ - OS_MutSemTake(RCIN_AppCustomData.Mutex); - - if(RCIN_CUSTOM_STREAMING != RCIN_AppCustomData.Status) - { - returnBool = FALSE; - } - - if(RCIN_AppCustomData.Measure.RcFailsafe == TRUE && - RCIN_AppCustomData.Measure.RcLost == TRUE) - { - returnBool = FALSE; - } - - Measure->Timestamp = RCIN_AppCustomData.Measure.Timestamp; - Measure->ChannelCount = RCIN_AppCustomData.Measure.ChannelCount; - Measure->RSSI = RCIN_AppCustomData.Measure.RSSI; - Measure->RcLostFrameCount = RCIN_AppCustomData.Measure.RcLostFrameCount; - Measure->RcTotalFrameCount = RCIN_AppCustomData.Measure.RcTotalFrameCount; - Measure->RcPpmFrameLength = RCIN_AppCustomData.Measure.RcPpmFrameLength; - for(i = 0; i<18; i++) - { - Measure->Values[i] = RCIN_AppCustomData.Measure.Values[i]; - } - - Measure->RcFailsafe = RCIN_AppCustomData.Measure.RcFailsafe; - Measure->RcLost = RCIN_AppCustomData.Measure.RcLost; - Measure->InputSource = RCIN_AppCustomData.Measure.InputSource; - - /* Give the shared data mutex */ - OS_MutSemGive(RCIN_AppCustomData.Mutex); - -end_of_function: - return (returnBool); -} - - -boolean RCIN_Custom_Uninit(void) -{ - boolean returnBool = TRUE; - int returnCode = 0; - - /* Delete the child task */ - CFE_ES_DeleteChildTask(RCIN_AppCustomData.ChildTaskID); - /* Set streaming task loop flag to stop */ - RCIN_AppCustomData.ContinueFlag = FALSE; - /* Set app state to initialized */ - RCIN_AppCustomData.Status = RCIN_CUSTOM_INITIALIZED; - - returnCode = close(RCIN_AppCustomData.DeviceFd); - if (-1 == returnCode) - { - (void) CFE_EVS_SendEvent(RCIN_DEVICE_ERR_EID, CFE_EVS_ERROR, - "RCIN Device close errno: %i", errno); - returnBool = FALSE; - } - else - { - RCIN_AppCustomData.Status = RCIN_CUSTOM_UNINITIALIZED; - } - return (returnBool); -} - - -boolean RCIN_Custom_Max_Events_Not_Reached(int32 ind) -{ - boolean returnBool = FALSE; - - if ((ind < RCIN_MAX_EVENT_FILTERS) && (ind > 0)) - { - returnBool = TRUE; - } - - return (returnBool); -} - - -int32 RCIN_Custom_Init_EventFilters(int32 ind, CFE_EVS_BinFilter_t *EventTbl) -{ - int32 customEventCount = ind; - - /* Null check */ - if(0 == EventTbl) - { - customEventCount = -1; - goto end_of_function; - } - - if(TRUE == RCIN_Custom_Max_Events_Not_Reached(customEventCount + 2)) - { - EventTbl[ customEventCount].EventID = RCIN_DEVICE_ERR_EID; - EventTbl[customEventCount++].Mask = CFE_EVS_FIRST_16_STOP; - EventTbl[ customEventCount].EventID = RCIN_SYNC_ERR_EID; - EventTbl[customEventCount++].Mask = CFE_EVS_FIRST_16_STOP; - } - else - { - customEventCount = -1; - goto end_of_function; - } - -end_of_function: - - return (customEventCount); -} diff --git a/config/ocpoc/s1000/target/apps/rcin/src/rcin_sbus.h b/config/ocpoc/s1000/target/apps/rcin/src/rcin_sbus.h deleted file mode 100644 index 2f89c76ff..000000000 --- a/config/ocpoc/s1000/target/apps/rcin/src/rcin_sbus.h +++ /dev/null @@ -1,400 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ - -#ifndef RCIN_SBUS_H -#define RCIN_SBUS_H - -#ifdef __cplusplus -extern "C" { -#endif - -/************************************************************************ -** Includes -*************************************************************************/ -#include "rcin_custom.h" -#include "px4_msgs.h" -#include -#include -#include -#include -#include -#include -#include -#include - -/************************************************************************ -** Local Defines -*************************************************************************/ -/** \brief I2C slave address of the TCA62724FMG LED driver in hex. -** -** \par Description: -** 8-bit address in little-endian format is 1010101(R/W) where R/W -** bit-0 indicates read (bit set to "H") or write mode (bit set to -** "L"). This is the 7-bit address without the R/W bit. -*/ -#define RGBLED_I2C_ADDRESS (0x55) - -/** \brief Device path. -** -** \par Description: -** The serial interface device path. -*/ -#define RCIN_DEVICE_PATH "/dev/ttyS2" - -/** \brief Input speed. -** -** \par Description: -** The serial input speed. -*/ -#define RCIN_SERIAL_INPUT_SPEED (100000) - -/** \brief Size of the raw RCIN message block. -** -** \par Description: -** The size of an SBUS packet. -*/ -#define RCIN_SERIAL_READ_SIZE (25) - -/** \brief SBUS channels -** -** \par Description: -** The SBUS channel count. -*/ -#define RCIN_SBUS_CHANNEL_COUNT (16) - -/* define range mapping here, -+100% -> 1000..2000 */ -/** \brief SBUS range minimum. */ -#define RCIN_SBUS_RANGE_MIN (200.0f) - -/** \brief SBUS range maximum. */ -#define RCIN_SBUS_RANGE_MAX (1800.0f) - -/** \brief Target range minimum. */ -#define RCIN_SBUS_TARGET_MIN (1000.0f) - -/** \brief Target range maximum. */ -#define RCIN_SBUS_TARGET_MAX (2000.0f) - -/* pre-calculate the floating point stuff as far as possible at compile time */ -/** \brief SBUS scale factor -** -** \par Description: -** The SBUS scale factor for value from SBUS conversion. -*/ -#define RCIN_SBUS_SCALE_FACTOR ((RCIN_SBUS_TARGET_MAX - RCIN_SBUS_TARGET_MIN) / (RCIN_SBUS_RANGE_MAX - RCIN_SBUS_RANGE_MIN)) - -/** \brief SBUS scale offset -** -** \par Description: -** The SBUS scale offset for value from SBUS conversion. -*/ -#define RCIN_SBUS_SCALE_OFFSET (int)(RCIN_SBUS_TARGET_MIN - (RCIN_SBUS_SCALE_FACTOR * RCIN_SBUS_RANGE_MIN + 0.5f)) - -/** \brief Max device path. -** -** \par Description: -** None. -*/ -#define RCIN_MAX_DEVICE_PATH OS_MAX_LOCAL_PATH_LEN - -/** \brief Retry attemps for interrupted ioctl calls. -** -** \par Limits: -** None. -*/ -#define RCIN_MAX_RETRY_ATTEMPTS (2) - -/** \brief Sleep time micro seconds for interrupted calls. -** -** \par Limits: -** None. -*/ -#define RCIN_MAX_RETRY_SLEEP_USEC (10) - -/* Timeout settings */ -/** \brief Wait time for data in seconds. -** -** \par Limits: -** None. -*/ -#define RCIN_BUFFER_FILL_TIMEOUT_SEC (0) - -/** \brief Wait time for data in microseconds. -** -** \par Limits: -** None. -*/ -#define RCIN_BUFFER_FILL_TIMEOUT_USEC (13000) - -/** \brief Streaming task priority -** -** \par Limits: -** 0 to MAX_PRIORITY (usually 255) -*/ -#define RCIN_STREAMING_TASK_PRIORITY (85) - -/** \brief RCIN shared data mutex name. */ -#define RCIN_MUTEX_NAME "RCIN_MUTEX" - -/** \brief Streaming task name -** -** \par Limits: -** OS_MAX_API_NAME -*/ -#define RCIN_STREAMING_TASK_NAME "RCIN_STREAM" - -/** \brief Maximum amount of errors before going to failsafe. */ -#define RCIN_MAX_ERROR_COUNT (25) - -/************************************************************************ -** Structure Declarations -*************************************************************************/ - -/** - * \brief Device status - */ -typedef enum -{ - /*! Status uninitialized */ - RCIN_CUSTOM_UNINITIALIZED = 0, - /*! Status initialized */ - RCIN_CUSTOM_INITIALIZED = 1, - /*! Status enabled */ - RCIN_CUSTOM_ENABLED = 2, - /*! Status not streaming */ - RCIN_CUSTOM_NOTSTREAMING = 3, - /*! Status streaming */ - RCIN_CUSTOM_STREAMING = 4, - /*! Status RC Lost */ - RCIN_CUSTOM_RC_LOST = 5 -} RCIN_Custom_Status_t; - - -/** - * \brief Device status - */ -typedef enum -{ - /*! State unknown */ - RCIN_PARSER_STATE_UNKNOWN = 0, - /*! State waiting for header */ - RCIN_PARSER_STATE_WAITING_FOR_HEADER = 1, - /*! State waiting for data */ - RCIN_PARSER_STATE_WAITING_FOR_DATA1 = 2, - RCIN_PARSER_STATE_WAITING_FOR_DATA2 = 3, - RCIN_PARSER_STATE_WAITING_FOR_DATA3 = 4, - RCIN_PARSER_STATE_WAITING_FOR_DATA4 = 5, - RCIN_PARSER_STATE_WAITING_FOR_DATA5 = 6, - RCIN_PARSER_STATE_WAITING_FOR_DATA6 = 7, - RCIN_PARSER_STATE_WAITING_FOR_DATA7 = 8, - RCIN_PARSER_STATE_WAITING_FOR_DATA8 = 9, - RCIN_PARSER_STATE_WAITING_FOR_DATA9 = 10, - RCIN_PARSER_STATE_WAITING_FOR_DATA10 = 11, - RCIN_PARSER_STATE_WAITING_FOR_DATA11 = 12, - RCIN_PARSER_STATE_WAITING_FOR_DATA12 = 13, - RCIN_PARSER_STATE_WAITING_FOR_DATA13 = 14, - RCIN_PARSER_STATE_WAITING_FOR_DATA14 = 15, - RCIN_PARSER_STATE_WAITING_FOR_DATA15 = 16, - RCIN_PARSER_STATE_WAITING_FOR_DATA16 = 17, - RCIN_PARSER_STATE_WAITING_FOR_DATA17 = 18, - RCIN_PARSER_STATE_WAITING_FOR_DATA18 = 19, - RCIN_PARSER_STATE_WAITING_FOR_DATA19 = 20, - RCIN_PARSER_STATE_WAITING_FOR_DATA20 = 21, - RCIN_PARSER_STATE_WAITING_FOR_DATA21 = 22, - RCIN_PARSER_STATE_WAITING_FOR_DATA22 = 23, - /*! State waiting for flags */ - RCIN_PARSER_STATE_WAITING_FOR_FLAGS = 24, - /*! State waiting for footer */ - RCIN_PARSER_STATE_WAITING_FOR_FOOTER = 25 -} RCIN_Custom_ParserState_t; - - -typedef struct -{ - /*! Device file descriptor */ - int DeviceFd; - /*! Path to device */ - char DevName[RCIN_MAX_DEVICE_PATH]; - /*! The terminal configuration */ - struct termios TerminalConfig; - /*! The current device status */ - RCIN_Custom_Status_t Status; - /*! The current device parser state */ - RCIN_Custom_ParserState_t ParserState; - /*! Flag to start and stop streaming */ - boolean ContinueFlag; - /*! Streaming task priority */ - uint8 Priority; - /*! Streaming child task identifier */ - uint32 ChildTaskID; - /*! Streaming task function pointer */ - CFE_ES_ChildTaskMainFuncPtr_t StreamingTask; - /*! RCInput message for storing SBUS data */ - PX4_InputRcMsg_t Measure; - /*! The shared data mutex */ - uint32 Mutex; - /*! Current raw SBUS data */ - uint8 sbusData[RCIN_SERIAL_READ_SIZE]; -} RCIN_AppCustomData_t; - - -/************************************************************************ -** External Global Variables -*************************************************************************/ - -/************************************************************************ -** Function Prototypes -*************************************************************************/ - -/************************************************************************/ -/** \brief ioctl with limited EINTR retry attempts. -** -** \par Description -** This function is a wrapper for ioctl with retry attempts added. -** -** \param [in] fh file descriptor. -** \param [in] request code. -** \param [in] arg pointer to a device specific struct. -** -** \returns -** usually 0 for success and -1 for failure, see ioctl man-page for -** more info. -** \endreturns -** -*************************************************************************/ -int32 RCIN_Ioctl(int fh, int request, void *arg); - - -/************************************************************************/ -/** \brief read with limited EINTR retry attempts. -** -** \par Description -** This function is a wrapper for read with retry attempts added. -** -** \param [in] fh file descriptor. -** \param [in] buffer. -** \param [in] size. -** -** \returns -** bytes read for success and -1 for failure, see read man-page for -** more info. -** \endreturns -** -*************************************************************************/ -int32 RCIN_Read(int fd, void *buf, size_t count); - - -/************************************************************************/ -/** \brief Determines if the maximum of event filters has been reached. -** -** \par Description -** This function checks if an index has reached the maximum -** number of events. -** -** \par Assumptions, External Events, and Notes: -** None -** -** \param [in] ind The current index to check. -** -** -** \returns boolean -** -*************************************************************************/ -boolean RCIN_Custom_Max_Events_Not_Reached(int32 ind); - - -/************************************************************************/ -/** \brief The stream task that actively reads the RCIN input stream. -** -** \par Description -** This thread runs until uninit. -** -*************************************************************************/ -void RCIN_Stream_Task(void); - - -/************************************************************************/ -/** \brief Attempt to read from the serial RCIN file descriptor. -** -** \par Description -** Attempts to read and parse the raw SBUS input stream. -** -*************************************************************************/ -void RCIN_Custom_Read(void); - - -/************************************************************************/ -/** \brief Called if the input stream is out of sync or a device read -** error occurs. -** -** \par Description -** This function keeps an internal counter that is incremented -** with every call. If the max error count is reached the failsafe -** and RC lost booleans in the RC_Input message are set. -** -** \par Assumptions, External Events, and Notes: -** None -** -** \param [in] notReset TRUE to not reset the counter, FALSE to -** reset the counter. -** -*************************************************************************/ -void RCIN_Custom_RC_Lost(boolean notReset); - - -/************************************************************************/ -/** \brief Translate raw SBUS data to channel pulse-position modulation -** values. -** -** \par Description -** This function converts the raw SBUS array to PPM (1000-2000) -** and populates the RC_Input message. -** -** \par Assumptions, External Events, and Notes: -** None -** -** \param [in] data The array of raw SBUS input data. -** -** \param [in] size The size of the array. -** -** -** \returns boolean TRUE for success, FALSE for failure. -** -*************************************************************************/ -boolean RCIN_Custom_PWM_Translate(uint8 *data, int size); - -#ifdef __cplusplus -} -#endif - -#endif /* RCIN_SBUS_H */ diff --git a/config/ocpoc/s1000/target/apps/rgbled/CMakeLists.txt b/config/ocpoc/s1000/target/apps/rgbled/CMakeLists.txt deleted file mode 100644 index 3555cfb46..000000000 --- a/config/ocpoc/s1000/target/apps/rgbled/CMakeLists.txt +++ /dev/null @@ -1,2 +0,0 @@ -set(APP_NAME rgbled) - diff --git a/config/ocpoc/s1000/target/apps/rgbled/src/CMakeLists.txt b/config/ocpoc/s1000/target/apps/rgbled/src/CMakeLists.txt deleted file mode 100644 index 7e82af272..000000000 --- a/config/ocpoc/s1000/target/apps/rgbled/src/CMakeLists.txt +++ /dev/null @@ -1,5 +0,0 @@ -# Set source for custom code. -set(APP_CUSTOM_SRC - ${CMAKE_CURRENT_SOURCE_DIR}/rgbled_custom.c - PARENT_SCOPE - ) diff --git a/config/ocpoc/s1000/target/apps/rgbled/src/rgbled_custom.c b/config/ocpoc/s1000/target/apps/rgbled/src/rgbled_custom.c deleted file mode 100644 index 6cb048e2c..000000000 --- a/config/ocpoc/s1000/target/apps/rgbled/src/rgbled_custom.c +++ /dev/null @@ -1,561 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ -/************************************************************************ -** Pragmas -*************************************************************************/ - -/************************************************************************ -** Includes -*************************************************************************/ -#include "cfe.h" -#include "rgbled_driver.h" -#include "rgbled_events.h" -#include "rgbled_perfids.h" -#include "rgbled_platform_cfg.h" -#include -#include -#include -#include -#include -#include -#include - -/************************************************************************ -** Local Defines -*************************************************************************/ - -/************************************************************************ -** Local Structure Declarations -*************************************************************************/ -typedef enum { - -/** \brief 'RGBLED - ' -** \event 'RGBLED - ' -** -** \par Type: ERROR -** -** \par Cause: -** -** This event message is issued when a device resource encounters an -** error. -** -*/ - RGBLED_DEVICE_ERR_EID = RGBLED_EVT_CNT, - -/** \brief 'RGBLED - ' -** \event 'RGBLED - ' -** -** \par Type: Info -** -** \par Cause: -** -** This event message is issued when a device successfully complete a -** self test. -** -*/ - RGBLED_DEVICE_INF_EID, -/** \brief Number of custom events -** -** \par Limits: -** int32 -*/ - RGBLED_CUSTOM_EVT_CNT -} RGBLED_CustomEventIds_t; - - -/************************************************************************ -** External Global Variables -*************************************************************************/ - -/************************************************************************ -** Global Variables -*************************************************************************/ -RGBLED_AppCustomData_t RGBLED_AppCustomData; - -/************************************************************************ -** Local Variables -*************************************************************************/ - -/************************************************************************ -** Local Function Definitions -*************************************************************************/ -int32 RGBLED_Ioctl(int fh, int request, void *arg) -{ - int32 returnCode = 0; - uint32 i = 0; - - for (i=0; i < RGBLED_MAX_RETRY_ATTEMPTS; i++) - { - returnCode = ioctl(fh, request, arg); - - if (-1 == returnCode && EINTR == errno) - { - usleep(RGBLED_MAX_RETRY_SLEEP_USEC); - } - else - { - break; - } - } - - return (returnCode); -} - - -void RGBLED_Custom_InitData(void) -{ - /* Set all struct zero values */ - bzero(&RGBLED_AppCustomData, sizeof(RGBLED_AppCustomData)); - - strncpy(RGBLED_AppCustomData.DevName, RGBLED_DEVICE_PATH, RGBLED_MAX_DEVICE_PATH); - RGBLED_AppCustomData.SelfTestTask = RGBLED_Custom_SelfTest_Task; - return; -} - - -boolean RGBLED_Custom_Init(void) -{ - boolean returnBool = TRUE; - - RGBLED_AppCustomData.DeviceFd = open(RGBLED_DEVICE_PATH, O_RDWR); - - if (RGBLED_AppCustomData.DeviceFd < 0) - { - (void) CFE_EVS_SendEvent(RGBLED_DEVICE_ERR_EID, CFE_EVS_ERROR, - "RGBLED Device open errno: %i", errno); - returnBool = FALSE; - goto end_of_function; - } - else - { - RGBLED_AppCustomData.Status = RGBLED_CUSTOM_INITIALIZED; - } - - returnBool = RGBLED_Custom_GetSettings(); - if (FALSE == returnBool) - { - (void) CFE_EVS_SendEvent(RGBLED_DEVICE_ERR_EID, CFE_EVS_ERROR, - "RGBLED Device custom enable failed to get initial settings"); - goto end_of_function; - } - - returnBool = RGBLED_Custom_Enable(); - if (FALSE == returnBool) - { - (void) CFE_EVS_SendEvent(RGBLED_DEVICE_ERR_EID, CFE_EVS_ERROR, - "RGBLED Device custom enable failed errno: %i", errno); - goto end_of_function; - } - else - { - RGBLED_AppCustomData.Status = RGBLED_CUSTOM_ENABLED; - } - -end_of_function: - return (returnBool); -} - - -boolean RGBLED_Custom_Enable(void) -{ - boolean returnBool = FALSE; - uint8 settings = 0; - - /* Enable output */ - settings |= RGBLED_I2C_SET_ENABLE; - settings |= RGBLED_I2C_SET_NOT_POWERSAVE; - - uint8 data[2] = { RGBLED_I2C_SUB_ADDR_SETTINGS, settings }; - - returnBool = RGBLED_Custom_Send(data, sizeof(data)); - if(TRUE == returnBool) - { - RGBLED_AppCustomData.Settings.Enabled = TRUE; - RGBLED_AppCustomData.Settings.NotPowerSave = TRUE; - } - - returnBool = RGBLED_Custom_Validate(); - if(FALSE == returnBool) - { - (void) CFE_EVS_SendEvent(RGBLED_DEVICE_ERR_EID, CFE_EVS_ERROR, - "RGBLED device settings validation failed in custom enable"); - } - return (returnBool); -} - - -boolean RGBLED_Custom_Disable(void) -{ - boolean returnBool = FALSE; - uint8 settings = 0; - - uint8 data[2] = { RGBLED_I2C_SUB_ADDR_SETTINGS, settings }; - - returnBool = RGBLED_Custom_Send(data, sizeof(data)); - if(TRUE == returnBool) - { - RGBLED_AppCustomData.Settings.Enabled = FALSE; - RGBLED_AppCustomData.Settings.NotPowerSave = FALSE; - } - - returnBool = RGBLED_Custom_Validate(); - if(FALSE == returnBool) - { - (void) CFE_EVS_SendEvent(RGBLED_DEVICE_ERR_EID, CFE_EVS_ERROR, - "RGBLED device settings validation failed in custom disable"); - } - return (returnBool); -} - - -boolean RGBLED_Custom_GetSettings(void) -{ - boolean returnBool = TRUE; - boolean enabled = FALSE; - boolean notPowerSave = FALSE; - uint8 settings = 0; - uint8 redPWM = 0; - uint8 greenPWM = 0; - uint8 bluePWM = 0; - - /* The TCA62724FMG LED driver returns 2-bytes */ - uint8 Result[2] = {0, 0}; - - returnBool = RGBLED_Custom_Receive(Result, sizeof(Result)); - - if(FALSE == returnBool) - { - /* If receive was unsuccessful return FALSE */ - goto end_of_function; - } - - /* Settings are bits 7 - 4 of returned byte 0 */ - settings = Result[0] & 0xf0; - /* Blue LED duty cycle is bits 3 - 0 of returned byte 0 */ - bluePWM = Result[0] & 0x0f; - /* Green LED duty cycle is bits 7 - 4 of returned byte 1 */ - greenPWM = (Result[1] & 0xf0) >> 4; - /* Red LED duty cycle is bits 3 - 0 of returned byte 1 */ - redPWM = Result[1] & 0x0f; - - /* If settings bit 5 is set (1) output is enabled */ - /* if settings bit 4 is set (1) powersave mode is not set */ - if(48 == settings) - { - enabled = TRUE; - notPowerSave = TRUE; - } - else if(32 == settings) - { - enabled = TRUE; - } - else if(16 == settings) - { - notPowerSave = TRUE; - } - - RGBLED_AppCustomData.Settings.Enabled = enabled; - RGBLED_AppCustomData.Settings.NotPowerSave = notPowerSave; - RGBLED_AppCustomData.Settings.RedDutyCycle = redPWM; - RGBLED_AppCustomData.Settings.GreenDutyCycle = greenPWM; - RGBLED_AppCustomData.Settings.BlueDutyCycle = bluePWM; - -end_of_function: - return (returnBool); -} - - -boolean RGBLED_Custom_Validate(void) -{ - boolean returnBool = FALSE; - boolean enabled = FALSE; - boolean notPowerSave = FALSE; - uint8 settings = 0; - uint8 redPWM = 0; - uint8 greenPWM = 0; - uint8 bluePWM = 0; - - /* The TCA62724FMG LED driver returns 2-bytes */ - uint8 Result[2] = {0, 0}; - - returnBool = RGBLED_Custom_Receive(Result, sizeof(Result)); - - if(FALSE == returnBool) - { - /* If receive was unsuccessful return FALSE */ - goto end_of_function; - } - - /* Settings are bits 7 - 4 of returned byte 0 */ - settings = Result[0] & 0xf0; - /* Blue LED duty cycle is bits 3 - 0 of returned byte 0 */ - bluePWM = Result[0] & 0x0f; - /* Green LED duty cycle is bits 7 - 4 of returned byte 1 */ - greenPWM = (Result[1] & 0xf0) >> 4; - /* Red LED duty cycle is bits 3 - 0 of returned byte 1 */ - redPWM = Result[1] & 0x0f; - - /* If settings bit 5 is set (1) output is enabled */ - /* if settings bit 4 is set (1) powersave mode is not set */ - if(48 == settings) - { - enabled = TRUE; - notPowerSave = TRUE; - } - else if(32 == settings) - { - enabled = TRUE; - } - else if(16 == settings) - { - notPowerSave = TRUE; - } - - if( RGBLED_AppCustomData.Settings.Enabled == enabled && - RGBLED_AppCustomData.Settings.NotPowerSave == notPowerSave && - RGBLED_AppCustomData.Settings.RedDutyCycle == redPWM && - RGBLED_AppCustomData.Settings.GreenDutyCycle == greenPWM && - RGBLED_AppCustomData.Settings.BlueDutyCycle == bluePWM ) - { - returnBool = TRUE; - } - else - { - returnBool = FALSE; - } - -end_of_function: - return (returnBool); -} - - -boolean RGBLED_Custom_Send(uint8 *Buffer, size_t Length) -{ - int returnCode = 0; - boolean returnBool = FALSE; - struct i2c_msg Messages[1]; - struct i2c_rdwr_ioctl_data Packets; - - Messages[0].addr = RGBLED_I2C_ADDRESS; - Messages[0].flags = 0; - Messages[0].buf = Buffer; - Messages[0].len = Length; - - Packets.msgs = Messages; - Packets.nmsgs = 1; - - CFE_ES_PerfLogEntry(RGBLED_SEND_PERF_ID); - returnCode = RGBLED_Ioctl(RGBLED_AppCustomData.DeviceFd, I2C_RDWR, &Packets); - CFE_ES_PerfLogExit(RGBLED_SEND_PERF_ID); - - if (-1 == returnCode) - { - (void) CFE_EVS_SendEvent(RGBLED_DEVICE_ERR_EID, CFE_EVS_ERROR, - "RGBLED ioctl returned %i", errno); - returnBool = FALSE; - } - else - { - returnBool = TRUE; - } - - return (returnBool); -} - - -boolean RGBLED_Custom_Receive(uint8 *Buffer, size_t Length) -{ - int returnCode = 0; - boolean returnBool = FALSE; - struct i2c_msg messages[1]; - struct i2c_rdwr_ioctl_data Packets; - - messages[0].addr = RGBLED_I2C_ADDRESS; - messages[0].flags = RGBLED_I2C_M_READ; - messages[0].buf = Buffer; - messages[0].len = Length; - - Packets.msgs = messages; - Packets.nmsgs = 1; - - CFE_ES_PerfLogEntry(RGBLED_RECEIVE_PERF_ID); - returnCode = RGBLED_Ioctl(RGBLED_AppCustomData.DeviceFd, I2C_RDWR, &Packets); - CFE_ES_PerfLogExit(RGBLED_RECEIVE_PERF_ID); - - if (-1 == returnCode) - { - (void) CFE_EVS_SendEvent(RGBLED_DEVICE_ERR_EID, CFE_EVS_ERROR, - "RGBLED ioctl returned %i", errno); - returnBool = FALSE; - } - else - { - returnBool = TRUE; - } - - return (returnBool); -} - - -boolean RGBLED_Custom_SetColor(uint8 Red, uint8 Green, uint8 Blue) -{ - boolean returnBool = FALSE; - /* Scale from 0-255 to 0-15 */ - uint8 redPWM = Red >> 4; - uint8 greenPWM = Green >> 4; - uint8 bluePWM = Blue >> 4; - - uint8 data[6] = { RGBLED_I2C_SUB_ADDR_PWM0, redPWM, - RGBLED_I2C_SUB_ADDR_PWM1, greenPWM, - RGBLED_I2C_SUB_ADDR_PWM2, bluePWM }; - - returnBool = RGBLED_Custom_Send(&data[0], sizeof(data)); - - /* Set the current value */ - RGBLED_AppCustomData.Settings.RedDutyCycle = redPWM; - RGBLED_AppCustomData.Settings.GreenDutyCycle = greenPWM; - RGBLED_AppCustomData.Settings.BlueDutyCycle = bluePWM; - - returnBool = RGBLED_Custom_Validate(); - if(FALSE == returnBool) - { - (void) CFE_EVS_SendEvent(RGBLED_DEVICE_ERR_EID, CFE_EVS_ERROR, - "RGBLED device settings validation failed"); - } - - return (returnBool); -} - - -boolean RGBLED_Custom_SelfTest(void) -{ - boolean returnBool = TRUE; - int32 returnCode = 0; - - /* Create the self-test task */ - returnCode = CFE_ES_CreateChildTask( - &RGBLED_AppCustomData.ChildTaskID, - RGBLED_SELFTEST_TASK_NAME, - RGBLED_AppCustomData.SelfTestTask, - 0, - CFE_ES_DEFAULT_STACK_SIZE, - RGBLED_SELFTEST_TASK_PRIORITY, - RGBLED_SELFTEST_TASK_FLAGS); - - if(returnCode != CFE_SUCCESS) - { - return FALSE; - } - return (returnBool); -} - - -void RGBLED_Custom_SelfTest_Task(void) -{ - uint32 iStatus = -1; - uint8 redPWM; - uint8 greenPWM; - uint8 bluePWM; - - /* Save the original settings */ - redPWM = RGBLED_AppCustomData.Settings.RedDutyCycle; - greenPWM = RGBLED_AppCustomData.Settings.GreenDutyCycle; - bluePWM = RGBLED_AppCustomData.Settings.BlueDutyCycle; - - iStatus = CFE_ES_RegisterChildTask(); - - if (iStatus == CFE_SUCCESS) - { - RGBLED_Custom_SetColor(255, 0, 0); - sleep(1); - - RGBLED_Custom_SetColor(0, 255, 0); - sleep(1); - - RGBLED_Custom_SetColor(0, 0, 255); - sleep(1); - - RGBLED_Custom_SetColor(255, 255, 255); - sleep(1); - - RGBLED_Custom_SetColor(0, 0, 0); - sleep(1); - /* Restore the original settings */ - RGBLED_Custom_SetColor((redPWM << 4), (greenPWM << 4), (bluePWM << 4)); - - } - (void) CFE_EVS_SendEvent(RGBLED_DEVICE_INF_EID, CFE_EVS_INFORMATION, - "RGBLED Device completed self test"); - /* Set app status in none custom code back to previous value */ - RGBLED_SelfTest_Complete(); - - /* The child task was successfully created so exit from it */ - if (iStatus == CFE_SUCCESS) - { - CFE_ES_ExitChildTask(); - } -} - - - -boolean RGBLED_Custom_Uninit(void) -{ - boolean returnBool = TRUE; - int returnCode = 0; - - returnBool = RGBLED_Custom_Disable(); - if(FALSE == returnBool) - { - (void) CFE_EVS_SendEvent(RGBLED_DEVICE_ERR_EID, CFE_EVS_ERROR, - "RGBLED Device disable error"); - } - else - { - RGBLED_AppCustomData.Status == RGBLED_CUSTOM_INITIALIZED; - } - - returnCode = close(RGBLED_AppCustomData.DeviceFd); - if (-1 == returnCode) - { - (void) CFE_EVS_SendEvent(RGBLED_DEVICE_ERR_EID, CFE_EVS_ERROR, - "RGBLED Device close errno: %i", errno); - returnBool = FALSE; - } - else - { - RGBLED_AppCustomData.Status = RGBLED_CUSTOM_UNINITIALIZED; - } - return (returnBool); -} - - diff --git a/config/ocpoc/s1000/target/apps/rgbled/src/rgbled_driver.h b/config/ocpoc/s1000/target/apps/rgbled/src/rgbled_driver.h deleted file mode 100644 index c94c25074..000000000 --- a/config/ocpoc/s1000/target/apps/rgbled/src/rgbled_driver.h +++ /dev/null @@ -1,363 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ - -#ifndef RGBLED_DRIVER_H -#define RGBLED_DRIVER_H - -#ifdef __cplusplus -extern "C" { -#endif - -/************************************************************************ -** Includes -*************************************************************************/ -#include "rgbled_custom.h" - -/************************************************************************ -** Local Defines -*************************************************************************/ -/** \brief I2C slave address of the TCA62724FMG LED driver in hex. -** -** \par Description: -** 8-bit address in little-endian format is 1010101(R/W) where R/W -** bit-0 indicates read (bit set to "H") or write mode (bit set to -** "L"). This is the 7-bit address without the R/W bit. -*/ -#define RGBLED_I2C_ADDRESS (0x55) - -/** \brief I2C address write mode. -** -** \par Description: -** Bit-0 of the I2C slave address for write mode. -*/ -#define RGBLED_I2C_ADDRESS_WRITE (0x00) - -/** \brief I2C address read mode. -** -** \par Description: -** Bit-0 of the I2C slave address for read mode. -*/ -#define RGBLED_I2C_ADDRESS_READ (0x01) - -/** \brief I2C sub-address for PWM Output 0 connected to the blue LED. -** -** \par Description: -** 8-bit address in little-endian format is (AI)0000001 where AI -** is the auto-increment OFF (bit set to "H") or auto-increment ON -** (bit set to "L"). This is the 8-bit address with AI OFF. -*/ -#define RGBLED_I2C_SUB_ADDR_PWM0 (0x81) - -/** \brief I2C sub-address for PWM Output 1 connected to the green LED. -** -** \par Description: -** 8-bit address in little-endian format is (AI)0000010 where AI -** is the auto-increment OFF (bit set to "H") or auto-increment ON -** (bit set to "L"). This is the 8-bit address with AI OFF. -*/ -#define RGBLED_I2C_SUB_ADDR_PWM1 (0x82) - -/** \brief I2C sub-address for PWM Output 2 connected to the red LED. -** -** \par Description: -** 8-bit address in little-endian format is (AI)0000011 where AI -** is the auto-increment OFF (bit set to "H") or auto-increment ON -** (bit set to "L"). This is the 8-bit address with AI OFF. -*/ -#define RGBLED_I2C_SUB_ADDR_PWM2 (0x83) - -/** \brief I2C sub-address for settings. -** -** \par Description: -** 8-bit address in little-endian format is (AI)0000100 where AI -** is the auto-increment OFF (bit set to "H") or auto-increment ON -** (bit set to "L"). This is the 8-bit address with AI OFF. -*/ -#define RGBLED_I2C_SUB_ADDR_SETTINGS (0x84) - -/** \brief I2C setting NOT powersave mode (NOT SHDN). -** -** \par Description: -** Bit-0 of the "ENABLE/NOT SHDN DATA" byte. Set to "H" output -** blinks at PWM0, PWM1, PWM2 rate. -*/ -#define RGBLED_I2C_SET_NOT_POWERSAVE (0x01) - -/** \brief I2C setting powersave mode (NOT SHDN). -** -** \par Description: -** Bit-0 of the "ENABLE/NOT SHDN DATA" byte. Set to "L" -** power-saving mode. -*/ -#define RGBLED_I2C_SET_POWERSAVE (0x00) - -/** \brief I2C setting enable (ENABLE). -** -** \par Description: -** Bit-1 of the "ENABLE/NOT SHDN DATA" byte. Set to "H" output -** blinks at PWM0, PWM1, PWM2 rate. -*/ -#define RGBLED_I2C_SET_ENABLE (0x02) - -/** \brief I2C setting NOT enable (ENABLE). -** -** \par Description: -** Bit-1 of the "ENABLE/NOT SHDN DATA" byte. Set to "L" output -** is OFF. -*/ -#define RGBLED_I2C_SET_DISABLE (0x00) - -/** \brief Max brightness setting for an LED (max PWM duty cycle). -** -** \par Description: -** The PWM ON Duty DATA byte uses 4-bits (bit-3 through bit 0) to -** set brightness. -*/ -#define RGBLED_MAX_BRIGHTNESS (15) - -/** \brief Device path. -** -** \par Description: -** The I2C interface device path. The "-1" is the adapter number. -*/ -#define RGBLED_DEVICE_PATH "/dev/i2c-1" - -/** \brief Max device path. -** -** \par Description: -** None. -*/ -#define RGBLED_MAX_DEVICE_PATH OS_MAX_LOCAL_PATH_LEN - -/** \brief Retry attemps for interrupted ioctl calls. -** -** \par Limits: -** None. -*/ -#define RGBLED_MAX_RETRY_ATTEMPTS (2) - -/** \brief Sleep time micro seconds for interrupted calls. -** -** \par Limits: -** None. -*/ -#define RGBLED_MAX_RETRY_SLEEP_USEC (10) - -/** \brief Read data, from slave to master. -** -** \par Limits: -** None. -*/ -#define RGBLED_I2C_M_READ (0x0001) -/** \brief Streaming task priority -** -** \par Limits: -** 0 to MAX_PRIORITY (usually 255) -*/ -#define RGBLED_SELFTEST_TASK_PRIORITY (50) - -/** \brief Streaming task name -** -** \par Limits: -** OS_MAX_API_NAME -*/ -#define RGBLED_SELFTEST_TASK_NAME ("RGBLED_TEST") - -/************************************************************************ -** Structure Declarations -*************************************************************************/ - -/** - * \brief LED device status - */ -typedef enum -{ - /*! RGBLED status uninitialized */ - RGBLED_CUSTOM_UNINITIALIZED = 0, - /*! RGBLED status initialized */ - RGBLED_CUSTOM_INITIALIZED = 1, - /*! RGBLED status enabled */ - RGBLED_CUSTOM_ENABLED = 2 -} RGBLED_Custom_Status_t; - - -/** - * \brief LED device settings - */ -typedef struct -{ - /*! RGBLED device enabled */ - boolean Enabled; - /*! RGBLED NOT powersave */ - boolean NotPowerSave; - /*! RGBLED duty cycle of red LED */ - uint8 RedDutyCycle; - /*! RGBLED duty cycle of green LED */ - uint8 GreenDutyCycle; - /*! RGBLED duty cycle of blue LED */ - uint8 BlueDutyCycle; -} RGBLED_Device_Settings_t; - - -typedef struct -{ - /*! Device file descriptor */ - int DeviceFd; - /*! Path to device */ - char DevName[RGBLED_MAX_DEVICE_PATH]; - /*! The current device settings */ - RGBLED_Device_Settings_t Settings; - /*! The current device status */ - RGBLED_Custom_Status_t Status; - /*! Streaming child task identifier */ - uint32 ChildTaskID; - /*! Streaming task function pointer */ - CFE_ES_ChildTaskMainFuncPtr_t SelfTestTask; -} RGBLED_AppCustomData_t; - - -/************************************************************************ -** External Global Variables -*************************************************************************/ - -/************************************************************************ -** Function Prototypes -*************************************************************************/ - -/************************************************************************/ -/** \brief ioctl with limited EINTR retry attempts. -** -** \par Description -** This function is a wrapper for ioctl with retry attempts added. -** -** \param [in] fh file descriptor. -** \param [in] request code. -** \param [in] arg pointer to a device specific struct. -** -** \returns -** usually 0 for success and -1 for failure, see ioctl man-page for -** more info. -** \endreturns -** -*************************************************************************/ -int32 RGBLED_Ioctl(int fh, int request, void *arg); - -/************************************************************************/ -/** \brief Send via I2C to the device. -** -** \par Description -** Sends data to the device target (recipient). -** -** \param [in] Buffer The buffer to send. -** -** \param [in] Length The length of the buffer to write. -** -** \returns TRUE for success, FALSE for failure. -** -*************************************************************************/ -boolean RGBLED_Custom_Send(uint8 *Buffer, size_t Length); - -/************************************************************************/ -/** \brief Receive data via I2C from the device. -** -** \par Description -** Receives data to the device target (sender). -** -** \param [out] Buffer The buffer to write to. -** -** \param [in] Length The length of the buffer to read. -** -** \returns TRUE for success, FALSE for failure. -** -*************************************************************************/ -boolean RGBLED_Custom_Receive(uint8 *Buffer, size_t Length); - -/************************************************************************/ -/** \brief Start a self-test. -** -** \par Description -** Starts a self-test and returns to the device to its original -** state. -** -*************************************************************************/ -void RGBLED_Custom_SelfTest_Task(void); - -/************************************************************************/ -/** \brief Get the current state of the device. -** -** \par Description -** Gets the current device settings. -** -** \returns TRUE for success, FALSE for failure. -** -*************************************************************************/ -boolean RGBLED_Custom_GetSettings(void); - -/************************************************************************/ -/** \brief Validate the device settings. -** -** \par Description -** Validate the current device settings. -** -** \returns TRUE for success, FALSE for failure. -** -*************************************************************************/ -boolean RGBLED_Custom_Validate(void); - -/************************************************************************/ -/** \brief Enable the device. -** -** \par Description -** Enable the device. -** -** \returns TRUE for success, FALSE for failure. -** -*************************************************************************/ -boolean RGBLED_Custom_Enable(void); - -/************************************************************************/ -/** \brief Disable the device. -** -** \par Description -** Disable the device. -** -** \returns TRUE for success, FALSE for failure. -** -*************************************************************************/ -boolean RGBLED_Custom_Disable(void); - -#ifdef __cplusplus -} -#endif - -#endif /* RGBLED_DRIVER_H */ diff --git a/config/ocpoc/s1000/target/apps/sch/CMakeLists.txt b/config/ocpoc/s1000/target/apps/sch/CMakeLists.txt deleted file mode 100644 index 749725f7c..000000000 --- a/config/ocpoc/s1000/target/apps/sch/CMakeLists.txt +++ /dev/null @@ -1,48 +0,0 @@ -set(APP_NAME sch) - -buildliner_add_app_unit_test_src( - ${APP_NAME} - SOURCES - ${CMAKE_CURRENT_SOURCE_DIR}/sch_custom_rt.c -) - -buildliner_add_table( - ${APP_NAME} - NAME sch_def_schtbl - SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/tables/sch_def_schtbl.c - INCLUDES ${CMAKE_CURRENT_SOURCE_DIR}/src/ -) - -buildliner_add_table( - ${APP_NAME} - NAME sch_def_msgtbl - SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/tables/sch_def_msgtbl.c - INCLUDES ${CMAKE_CURRENT_SOURCE_DIR}/src/ -) - -#buildliner_add_app_unit_test(sch-custom-ut -# UTASSERT -# NO_HELGRIND -# NO_MASSIF -# -# SOURCES -# ${CMAKE_CURRENT_SOURCE_DIR}/unit_test/sch_testrunner.c -# ${CMAKE_CURRENT_SOURCE_DIR}/unit_test/sch_custom_test.c -# #${CMAKE_CURRENT_SOURCE_DIR}/unit_test/sch_mock_os_calls.c -# ${CMAKE_CURRENT_SOURCE_DIR}/unit_test/sch_test_utils.c -# ${CMAKE_CURRENT_SOURCE_DIR}/sch_custom.c -## ${PROJECT_SOURCE_DIR}/apps/sch/fsw/src/sch_app.c -## ${PROJECT_SOURCE_DIR}/apps/sch/fsw/src/sch_cds_utils.c -## ${PROJECT_SOURCE_DIR}/apps/sch/fsw/src/sch_config_utils.c -## ${PROJECT_SOURCE_DIR}/core/base/ut_assert/src/ut_cfe_es_hooks.c -# -# INCLUDES -# ${PROJECT_SOURCE_DIR}/apps/sch/fsw/src/ -# -## WRAPPERS -## socket -## bind -# -#) - - diff --git a/config/ocpoc/s1000/target/apps/sch/sch_custom_rt.c b/config/ocpoc/s1000/target/apps/sch/sch_custom_rt.c deleted file mode 100644 index c1f404c16..000000000 --- a/config/ocpoc/s1000/target/apps/sch/sch_custom_rt.c +++ /dev/null @@ -1,451 +0,0 @@ -/* -** $Id: sch_custom.c 1.5 2017/06/21 15:29:41EDT mdeschu Exp $ -** -** Copyright (c) 2007-2014 United States Government as represented by the -** Administrator of the National Aeronautics and Space Administration. -** All Other Rights Reserved. -** -** This software was created at NASA's Goddard Space Flight Center. -** This software is governed by the NASA Open Source Agreement and may be -** used, distributed and modified only pursuant to the terms of that -** agreement. -** -** Purpose: Scheduler (SCH) application custom component -** -** Author: -** -** Notes: -** -*/ - -/************************************************************************* -** -** Include section -** -**************************************************************************/ - -#include "cfe.h" -#include "sch_platform_cfg.h" - -#include "sch_app.h" -#include "sch_custom.h" - -#include "cfe_time_msg.h" - - -/************************************************************************* -** -** Macro definitions -** -**************************************************************************/ - -/************************************************************************* -** Local function prototypes -**************************************************************************/ - - -/************************************************************************* -** -** Function definitions -** -**************************************************************************/ - - - - -/******************************************************************* -** -** SCH_CustomEarlyInit -** -** NOTE: For complete prolog information, see 'sch_custom.h' -** -** This function MUST update SCH_AppData.ClockAccuracy to the -** resolution of the minor frame timer. -********************************************************************/ - -int32 SCH_CustomEarlyInit(void) -{ - int32 Status = CFE_SUCCESS; - - Status = OS_TimerCreate(&SCH_AppData.TimerId, - SCH_TIMER_NAME, - &SCH_AppData.ClockAccuracy, - SCH_MinorFrameCallback); - - return Status; - -} /* End of CustomEarlyInit() */ - - -/******************************************************************* -** -** SCH_CustomLateInit -** -** NOTE: For complete prolog information, see 'sch_custom.h' -** -** This function MUST perform any startup synchronization required, -** and MUST finish setting up the major and minor frame timers. -********************************************************************/ - -int32 SCH_CustomLateInit(void) -{ - int32 Status = CFE_SUCCESS; - - CFE_ES_WaitForStartupSync(SCH_STARTUP_SYNC_TIMEOUT); - - /* - ** Connect to cFE TIME's time reference marker (typically 1 Hz) - ** to use it as the Major Frame synchronization source - */ - Status = CFE_TIME_RegisterSynchCallback((CFE_TIME_SynchCallbackPtr_t)&SCH_MajorFrameCallback); - if (Status == CFE_SUCCESS) - { - /* - ** Start the Minor Frame Timer with an extended delay to allow a Major Frame Sync - ** to start processing. If the Major Frame Sync fails to arrive, then we will - ** start when this timer expires and synch ourselves to the MET clock. - */ - Status = OS_TimerSet(SCH_AppData.TimerId, SCH_STARTUP_PERIOD, 0); - } - - return Status; - -} /* End of SH_CustomLateInit() */ - - -/******************************************************************* -** -** SCH_CustomGetCurrentSlotNumber -** -** NOTE: For complete prolog information, see 'sch_custom.h' -********************************************************************/ - -uint32 SCH_CustomGetCurrentSlotNumber(void) -{ - uint32 CurrentSlot; - - if (SCH_AppData.SyncToMET != SCH_NOT_SYNCHRONIZED) - { - CurrentSlot = SCH_GetMETSlotNumber(); - - /* - ** If we are only concerned with synchronizing the minor frames to an MET, - ** then we need to adjust the current slot by whatever MET time is prevalent - ** when the Major Frame Signal is received. - ** If we are synchronizing the Major Frame, then, by definition, LastSyncMETSlot - ** would be a zero and the current slot would be appropriate. - */ - if (CurrentSlot < SCH_AppData.LastSyncMETSlot) - { - CurrentSlot = CurrentSlot + SCH_TOTAL_SLOTS - SCH_AppData.LastSyncMETSlot; - } - else - { - CurrentSlot = CurrentSlot - SCH_AppData.LastSyncMETSlot; - } - } - else - { - CurrentSlot = SCH_AppData.MinorFramesSinceTone; - } - - return CurrentSlot; -} /* End of SH_CustomGetCurrentSlotNumber() */ - -/******************************************************************* -** -** SCH_CustomCleanup -** -** NOTE: For complete prolog information, see 'sch_custom.h' -********************************************************************/ - -void SCH_CustomCleanup(void) -{ - /* unregister the TIME callback for the major frame */ - CFE_TIME_UnregisterSynchCallback((CFE_TIME_SynchCallbackPtr_t)&SCH_MajorFrameCallback); - -} /* End of SH_CustomCleanup() */ - - -/******************************************************************* -** -** SCH_GetMETSlotNumber -** -** NOTE: For complete prolog information, see above -********************************************************************/ - -uint32 SCH_GetMETSlotNumber(void) -{ - uint32 SubSeconds = 0; - uint32 MicroSeconds; - uint32 Remainder; - uint32 METSlot; - - /* - ** Use MET rather than current time to avoid time changes - */ - SubSeconds = CFE_TIME_GetMETsubsecs(); - - /* - ** Convert sub-seconds to micro-seconds - */ - MicroSeconds = CFE_TIME_Sub2MicroSecs(SubSeconds); - - /* - ** Calculate schedule table slot number - */ - METSlot = (MicroSeconds / SCH_NORMAL_SLOT_PERIOD); - - /* - ** Check to see if close enough to round up to next slot - */ - Remainder = MicroSeconds - (METSlot * SCH_NORMAL_SLOT_PERIOD); - - /* - ** Add one more microsecond and see if it is sufficient to add another slot - */ - Remainder += 1; - METSlot += (Remainder / SCH_NORMAL_SLOT_PERIOD); - - /* - ** Check to see if the Current Slot number needs to roll over - */ - if (METSlot == SCH_TOTAL_SLOTS) - { - METSlot = 0; - } - - return METSlot; - -} - - -/******************************************************************* -** -** SCH_MajorFrameCallback -** -** NOTE: For complete prolog information, see above -********************************************************************/ - -void SCH_MajorFrameCallback(void) -{ - /* - ** Synchronize slot zero to the external tone signal - */ - uint16 StateFlags; - - /* - ** If cFE TIME is in FLYWHEEL mode, then ignore all synchronization signals - */ - StateFlags = CFE_TIME_GetClockInfo(); - - if ((StateFlags & CFE_TIME_FLAG_FLYING) == 0) - { - /* - ** Determine whether the major frame is noisy or not - ** - ** Conditions below are as follows: - ** If we are NOT synchronized to the MET (i.e. - the Minor Frame timer - ** has an acceptable resolution), then the Major Frame signal should - ** only occur in the last slot of the schedule table. - ** - ** If we ARE synchronized to the MET (i.e. - the Minor Frame timer is - ** not as good as we would like), then the Major Frame signal should - ** occur within a window of slots at the end of the table. - */ - if (((SCH_AppData.SyncToMET == SCH_NOT_SYNCHRONIZED) && - (SCH_AppData.MinorFramesSinceTone != SCH_TIME_SYNC_SLOT)) || - ((SCH_AppData.SyncToMET == SCH_MINOR_SYNCHRONIZED) && - (SCH_AppData.NextSlotNumber != 0) && - (SCH_AppData.NextSlotNumber < - (SCH_TOTAL_SLOTS - SCH_AppData.WorstCaseSlotsPerMinorFrame - 1)))) - { - /* - ** Count the number of consecutive noisy major frames and the Total number - ** of noisy major frames. Also, indicate in telemetry that this particular - ** Major Frame signal is considered noisy. - */ - SCH_AppData.UnexpectedMajorFrame = TRUE; - SCH_AppData.UnexpectedMajorFrameCount++; - - /* - ** If the Major Frame is not being ignored yet, then increment the consecutive noisy - ** Major Frame counter. - */ - if (!SCH_AppData.IgnoreMajorFrame) - { - SCH_AppData.ConsecutiveNoisyFrameCounter++; - - /* - ** If the major frame is too "noisy", then send event message and ignore future signals - */ - if (SCH_AppData.ConsecutiveNoisyFrameCounter >= SCH_MAX_NOISY_MAJORF) - { - SCH_AppData.IgnoreMajorFrame = TRUE; - } - } - } - else /* Major Frame occurred when expected */ - { - SCH_AppData.UnexpectedMajorFrame = FALSE; - SCH_AppData.ConsecutiveNoisyFrameCounter = 0; - } - - /* - ** Ignore this callback if SCH has detected a noisy Major Frame Synch signal - */ - if (SCH_AppData.IgnoreMajorFrame == FALSE) - { - /* - ** Stop Minor Frame Timer (which should be waiting for an unusually long - ** time to allow the Major Frame source to resynchronize timing) and start - ** it again with nominal Minor Frame timing - */ - OS_TimerSet(SCH_AppData.TimerId, SCH_NORMAL_SLOT_PERIOD, SCH_NORMAL_SLOT_PERIOD); - - /* - ** Increment Major Frame process counter - */ - SCH_AppData.ValidMajorFrameCount++; - - /* - ** Set current slot = zero to synchronize activities - */ - SCH_AppData.MinorFramesSinceTone = 0; - - /* - ** Major Frame Source is now from CFE TIME - */ - SCH_AppData.MajorFrameSource = SCH_MAJOR_FS_CFE_TIME; - - /* Clear any Major Frame In Sync with MET flags */ - /* But keep the Minor Frame In Sync with MET flag if it is set */ - SCH_AppData.SyncToMET &= SCH_MINOR_SYNCHRONIZED; - - /* - ** Give "wakeup SCH" semaphore - */ - OS_BinSemGive(SCH_AppData.TimeSemaphore); - } - } - - /* - ** We should assume that the next Major Frame will be in the same MET slot as this - */ - SCH_AppData.LastSyncMETSlot = SCH_GetMETSlotNumber(); - - return; - -} /* End of SCH_MajorFrameCallback() */ - - -/******************************************************************* -** -** SCH_MinorFrameCallback -** -** NOTE: For complete prolog information, see above -********************************************************************/ - -void SCH_MinorFrameCallback(uint32 TimerId) -{ - uint32 CurrentSlot; - - /* - ** If this is the very first timer interrupt, then the initial - ** Major Frame Synchronization timed out. This can occur when - ** either the signal is not arriving or the clock has gone into - ** FLYWHEEL mode. We should synchronize to the MET time instead. - */ - if (SCH_AppData.MajorFrameSource == SCH_MAJOR_FS_NONE) - { - SCH_AppData.MajorFrameSource = SCH_MAJOR_FS_MINOR_FRAME_TIMER; - - /* Synchronize timing to MET */ - SCH_AppData.SyncToMET |= SCH_PENDING_MAJOR_SYNCH; - SCH_AppData.SyncAttemptsLeft = SCH_MAX_SYNC_ATTEMPTS; - SCH_AppData.LastSyncMETSlot = 0; - } - - /* If attempting to synchronize the Major Frame with MET, then wait for zero subsecs before starting */ - if (((SCH_AppData.SyncToMET & SCH_PENDING_MAJOR_SYNCH) != 0) && - (SCH_AppData.MajorFrameSource == SCH_MAJOR_FS_MINOR_FRAME_TIMER)) - { - /* Whether we have found the Major Frame Start or not, wait another slot */ - OS_TimerSet(SCH_AppData.TimerId, SCH_NORMAL_SLOT_PERIOD, SCH_NORMAL_SLOT_PERIOD); - - /* Determine if this was the last attempt */ - SCH_AppData.SyncAttemptsLeft--; - - CurrentSlot = SCH_GetMETSlotNumber(); - if ((CurrentSlot != 0) && (SCH_AppData.SyncAttemptsLeft > 0)) - { - return; - } - else /* Synchronization achieved (or at least, aborted) */ - { - /* Clear the pending synchronization flag and set the "Major In Sync" flag */ - SCH_AppData.SyncToMET &= ~SCH_PENDING_MAJOR_SYNCH; - SCH_AppData.SyncToMET |= SCH_MAJOR_SYNCHRONIZED; - - /* CurrentSlot should be equal to zero. If not, this is the best estimate we can use */ - SCH_AppData.MinorFramesSinceTone = CurrentSlot; - SCH_AppData.LastSyncMETSlot = 0; - } - } - else - { - /* - ** If we are already synchronized with MET or don't care to be, increment current slot - */ - SCH_AppData.MinorFramesSinceTone++; - } - - if (SCH_AppData.MinorFramesSinceTone >= SCH_TOTAL_SLOTS) - { - /* - ** If we just rolled over from the last slot to slot zero, - ** It means that the Major Frame Callback did not cancel the - ** "long slot" timer that was started in the last slot - ** - ** It also means that we may now need a "short slot" - ** timer to make up for the previous long one - */ - OS_TimerSet(SCH_AppData.TimerId, SCH_SHORT_SLOT_PERIOD, SCH_NORMAL_SLOT_PERIOD); - - SCH_AppData.MinorFramesSinceTone = 0; - - SCH_AppData.MissedMajorFrameCount++; - } - - /* - ** Determine the timer delay value for the next slot - */ - if (SCH_AppData.MinorFramesSinceTone == SCH_TIME_SYNC_SLOT) - { - /* - ** Start "long slot" timer (should be stopped by Major Frame Callback) - */ - OS_TimerSet(SCH_AppData.TimerId, SCH_SYNC_SLOT_PERIOD, 0); - } - - /* - ** Note that if this is neither the first "short" minor frame nor the - ** last "long" minor frame, the timer is not modified. This should - ** provide more stable timing than introducing the dither associated - ** with software response times to timer interrupts. - */ - - /* - ** Give "wakeup SCH" semaphore - */ - OS_BinSemGive(SCH_AppData.TimeSemaphore); - - return; - -} /* End of SCH_MinorFrameCallback() */ - - -/************************/ -/* End of File Comment */ -/************************/ - diff --git a/config/ocpoc/s1000/target/apps/sch/tables/sch_def_msgtbl.c b/config/ocpoc/s1000/target/apps/sch/tables/sch_def_msgtbl.c deleted file mode 100644 index 8c5ce16ca..000000000 --- a/config/ocpoc/s1000/target/apps/sch/tables/sch_def_msgtbl.c +++ /dev/null @@ -1,326 +0,0 @@ -#ifdef __cplusplus -extern "C" { -#endif - -/* -** Pragmas -*/ - -/* -** Include Files -*/ -#include "cfe.h" -#include "cfe_tbl_filedef.h" -#include "sch_platform_cfg.h" -#include "sch_tbldefs.h" -#include "msg_ids.h" - - -/* -** Local Defines -*/ - -/* -** Local Structure Declarations -*/ - -/* -** External Global Variables -*/ - - -/* -** Global Variables -*/ - -#define SCH_FIX_HEADER(a, b, c) CFE_MAKE_BIG16(a), CFE_MAKE_BIG16(b), CFE_MAKE_BIG16(c) - -/* Message table entry map */ -SCH_MessageEntry_t SCH_DefaultMessageTable[SCH_MAX_MESSAGES] = -{ - /* ** DO NOT USE -- entry #0 reserved for "unused" command ID - DO NOT USE */ - /* Command ID #0 */ - { { SCH_UNUSED_MID, 0, 0, 0 } }, - /* Command ID #1 - Executive Services HK Request */ - { { SCH_FIX_HEADER(CFE_ES_SEND_HK_MID, 0xC000, 0x0001), 0x0000 } }, - /* Command ID #2 - Event Services HK Request */ - { { SCH_FIX_HEADER(CFE_EVS_SEND_HK_MID, 0xC000, 0x0001), 0x0000 } }, - /* Command ID #3 - Software Bus HK Request */ - { { SCH_FIX_HEADER(CFE_SB_SEND_HK_MID, 0xC000, 0x0001), 0x0000 } }, - /* Command ID #4 - Time Services HK Request */ - { { SCH_FIX_HEADER(CFE_TIME_SEND_HK_MID, 0xC000, 0x0001), 0x0000 } }, - /* Command ID #5 - Table Services HK Request */ - { { SCH_FIX_HEADER(CFE_TBL_SEND_HK_MID, 0xC000, 0x0001), 0x0000 } }, - /* Command ID #6 */ - { { SCH_FIX_HEADER(CFE_TIME_FAKE_CMD_MID, 0xC000, 0x0001), 0x0000 } }, - /* Command ID #7 - Data storage HK request*/ - { { SCH_FIX_HEADER(SCH_UNUSED_MID, 0,0), 0 } }, - /* Command ID #8 */ - { { SCH_FIX_HEADER(SCH_UNUSED_MID, 0,0), 0 } }, - /* Command ID #9 */ - { { SCH_FIX_HEADER(LC_SAMPLE_AP_MID, 0xC000, 0x0007), 0x0000, 0x0000, 0x0001, 0x0001 } }, - /* Command ID #10 - Health and safety HK request*/ - { { SCH_FIX_HEADER(SCH_UNUSED_MID, 0,0), 0 } }, - /* Command ID #11 - Limit checker HK request*/ - { { SCH_FIX_HEADER(SCH_UNUSED_MID, 0,0), 0 } }, - /* Command ID #12 */ - { { SCH_FIX_HEADER(SCH_UNUSED_MID, 0,0), 0 } }, - /* Command ID #13 */ - { { SCH_FIX_HEADER(SCH_UNUSED_MID, 0,0), 0 } }, - /* Command ID #14 - Wakeup store command app*/ - { { SCH_FIX_HEADER(SCH_UNUSED_MID, 0,0), 0 } }, - /* Command ID #15 - Scheduler HK request*/ - { { SCH_FIX_HEADER(SCH_SEND_HK_MID, 0xC000, 0x0001), 0x0000 } }, - /* Command ID #16 */ - { { SCH_FIX_HEADER(TO_SEND_HK_MID, 0xC000, 0x0001), 0x0000 } }, - /* Command ID #17 */ - { { SCH_FIX_HEADER(HK_SEND_HK_MID, 0xC000, 0x0001), 0x0000 } }, - /* Command ID #18 */ - { { SCH_FIX_HEADER(SCH_UNUSED_MID, 0, 0), 0 } }, - /* Command ID #19 */ - { { SCH_FIX_HEADER(TO_SEND_TLM_MID, 0xC000, 0x0001), 0x0000 } }, - /* Command ID #20 */ - { { SCH_FIX_HEADER(HK_SEND_COMBINED_PKT_MID, 0xC000, 0x0003), 0x0000, HK_COMBINED_PKT1_MID } }, - /* Command ID #21 */ - { { SCH_FIX_HEADER(HK_SEND_COMBINED_PKT_MID, 0xC000, 0x0003), 0x0000, HK_COMBINED_PKT2_MID } }, - /* Command ID #22 */ - { { SCH_FIX_HEADER(HK_SEND_COMBINED_PKT_MID, 0xC000, 0x0003), 0x0000, HK_COMBINED_PKT3_MID } }, - /* Command ID #23 */ - { { SCH_FIX_HEADER(HK_SEND_COMBINED_PKT_MID, 0xC000, 0x0003), 0x0000, HK_COMBINED_PKT4_MID } }, - /* Command ID #24 */ - { { SCH_FIX_HEADER(HK_SEND_COMBINED_PKT_MID, 0xC000, 0x0003), 0x0000, HK_COMBINED_PKT5_MID } }, - /* Command ID #25 */ - { { SCH_FIX_HEADER(HK_SEND_COMBINED_PKT_MID, 0xC000, 0x0003), 0x0000, HK_COMBINED_PKT6_MID } }, - /* Command ID #26 */ - { { SCH_FIX_HEADER(HK_SEND_COMBINED_PKT_MID, 0xC000, 0x0003), 0x0000, HK_COMBINED_PKT7_MID } }, - /* Command ID #27 */ - { { SCH_FIX_HEADER(HK_SEND_COMBINED_PKT_MID, 0xC000, 0x0003), 0x0000, HK_COMBINED_PKT8_MID } }, - /* Command ID #28 */ - { { SCH_FIX_HEADER(HK_SEND_COMBINED_PKT_MID, 0xC000, 0x0003), 0x0000, HK_COMBINED_PKT9_MID } }, - /* Command ID #29 */ - { { SCH_FIX_HEADER(HK_SEND_COMBINED_PKT_MID, 0xC000, 0x0003), 0x0000, HK_COMBINED_PKT10_MID } }, - /* Command ID #30 */ - { { SCH_FIX_HEADER(FM_SEND_HK_MID, 0xC000, 0x0001), 0x0000 } }, - /* Command ID #31 */ - { { SCH_FIX_HEADER(LC_SEND_HK_MID, 0xC000, 0x0001), 0x0000 } }, - /* Command ID #32 */ - { { SCH_FIX_HEADER(HS_WAKEUP_MID, 0xC000, 0x0001), 0x0000 } }, - /* Command ID #33 */ - { { SCH_FIX_HEADER(HS_SEND_HK_MID, 0xC000, 0x0001), 0x0000 } }, - /* Command ID #34 */ - { { SCH_FIX_HEADER(MD_SEND_HK_MID, 0xC000, 0x0001), 0x0000 } }, - /* Command ID #35 */ - { { SCH_FIX_HEADER(MD_WAKEUP_MID, 0xC000, 0x0001), 0x0000 } }, - /* Command ID #36 */ - { { SCH_FIX_HEADER(SCH_UNUSED_MID, 0, 0), 0 } }, - /* Command ID #37 */ - { { SCH_FIX_HEADER(DS_SEND_HK_MID, 0xC000, 0x0001), 0x0000 } }, - /* Command ID #38 */ - { { SCH_FIX_HEADER(CS_SEND_HK_MID, 0xC000, 0x0001), 0x0000 } }, - /* Command ID #39 */ - { { SCH_FIX_HEADER(CS_BACKGROUND_CYCLE_MID, 0xC000, 0x0001), 0x0000 } }, - /* Command ID #40 */ - { { SCH_FIX_HEADER(SC_1HZ_WAKEUP_MID, 0xC000, 0x0001), 0x0000 } }, - /* Command ID #41 */ - { { SCH_FIX_HEADER(SC_SEND_HK_MID, 0xC000, 0x0001), 0x0000 } }, - /* Command ID #42 */ - { { SCH_FIX_HEADER(FLOW_WAKEUP_MID, 0xC000, 0x0001), 0x0000 } }, - /* Command ID #43 */ - { { SCH_FIX_HEADER(FLOW_SEND_HK_MID, 0xC000, 0x0001), 0x0000 } }, - /* Command ID #44 */ - { { SCH_FIX_HEADER(SCH_UNUSED_MID, 0, 0), 0 } }, - /* Command ID #45 */ - { { SCH_FIX_HEADER(VC_PROCESS_CMDS_MID, 0xC000, 0x0001), 0x0000 } }, - /* Command ID #46 */ - { { SCH_FIX_HEADER(VC_SEND_HK_MID, 0xC000, 0x0001), 0x0000 } }, - /* Command ID #47 */ - { { SCH_FIX_HEADER(RGBLED_WAKEUP_MID, 0xC000, 0x0001), 0x0000 } }, - /* Command ID #48 */ - { { SCH_FIX_HEADER(RGBLED_SEND_HK_MID, 0xC000, 0x0001), 0x0000 } }, - /* Command ID #49 */ - { { SCH_FIX_HEADER(SCH_UNUSED_MID, 0, 0), 0 } }, - /* Command ID #50 */ - { { SCH_FIX_HEADER(SCH_UNUSED_MID, 0, 0), 0 } }, - /* Command ID #51 */ - { { SCH_FIX_HEADER(CI_PROCESS_TIMEOUTS_MID, 0xC000, 0x0001), 0x0000 } }, - /* Command ID #52 */ - { { SCH_FIX_HEADER(CI_SEND_HK_MID, 0xC000, 0x0001), 0x0000 } }, - /* Command ID #53 */ - { { SCH_FIX_HEADER(SCH_UNUSED_MID, 0, 0), 0 } }, - /* Command ID #54 */ - { { SCH_FIX_HEADER(SCH_UNUSED_MID, 0, 0), 0 } }, - /* Command ID #55 */ - { { SCH_FIX_HEADER(SCH_UNUSED_MID, 0, 0), 0 } }, - /* Command ID #56 */ - { { SCH_FIX_HEADER(SCH_UNUSED_MID, 0, 0), 0 } }, - /* Command ID #57 */ - { { SCH_FIX_HEADER(CF_SEND_HK_MID, 0xC000, 0x0001), 0x0000 } }, - /* Command ID #58 */ - { { SCH_FIX_HEADER(CF_WAKE_UP_REQ_CMD_MID, 0xC000, 0x0001), 0x0000 } }, - /* Command ID #59 */ - { { SCH_FIX_HEADER(SCH_UNUSED_MID, 0, 0), 0 } }, - /* Command ID #60 */ - { { SCH_FIX_HEADER(MAC_SEND_HK_MID, 0xC000, 0x0001), 0x0000 } }, - /* Command ID #61 */ - { { SCH_FIX_HEADER(MAC_RUN_CONTROLLER_MID, 0xC000, 0x0001), 0x0000 } }, - /* Command ID #62 */ - { { SCH_FIX_HEADER(SCH_UNUSED_MID, 0, 0), 0 } }, - /* Command ID #63 */ - { { SCH_FIX_HEADER(SCH_UNUSED_MID, 0, 0), 0 } }, - /* Command ID #64 */ - { { SCH_FIX_HEADER(SCH_UNUSED_MID, 0, 0), 0 } }, - /* Command ID #65 */ - { { SCH_FIX_HEADER(AMC_UPDATE_MOTORS_MID, 0xC000, 0x0001), 0 } }, - /* Command ID #66 */ - { { SCH_FIX_HEADER(AMC_SEND_HK_MID, 0xC000, 0x0001), 0 } }, - /* Command ID #67 */ - { { SCH_FIX_HEADER(MPU9250_SEND_HK_MID, 0xC000, 0x0001), 0x0000 } }, - /* Command ID #68 */ - { { SCH_FIX_HEADER(MPU9250_MEASURE_MID, 0xC000, 0x0001), 0x0000 } }, - /* Command ID #69 */ - { { SCH_FIX_HEADER(SCH_UNUSED_MID, 0, 0), 0 } }, - /* Command ID #70 */ - { { SCH_FIX_HEADER(MM_SEND_HK_MID, 0xC000, 0x0001), 0x0000 } }, - /* Command ID #71 */ - { { SCH_FIX_HEADER(SCH_UNUSED_MID, 0, 0), 0 } }, - /* Command ID #72 */ - { { SCH_FIX_HEADER(SCH_UNUSED_MID, 0, 0), 0 } }, - /* Command ID #73 */ - { { SCH_FIX_HEADER(SCH_UNUSED_MID, 0, 0), 0 } }, - /* Command ID #74 */ - { { SCH_FIX_HEADER(PE_SEND_HK_MID, 0xC000, 0x0001), 0x0000 } }, - /* Command ID #75 */ - { { SCH_FIX_HEADER(PE_WAKEUP_MID, 0xC000, 0x0001), 0x0000 } }, - /* Command ID #76 */ - { { SCH_FIX_HEADER(SCH_UNUSED_MID, 0, 0), 0 } }, - /* Command ID #77 */ - { { SCH_FIX_HEADER(SCH_UNUSED_MID, 0, 0), 0 } }, - /* Command ID #78 */ - { { SCH_FIX_HEADER(MS5611_SEND_HK_MID, 0xC000, 0x0001), 0x0000 } }, - /* Command ID #79 */ - { { SCH_FIX_HEADER(MS5611_MEASURE_MID, 0xC000, 0x0001), 0x0000 } }, - /* Command ID #80 */ - { { SCH_FIX_HEADER(ULR_MEASURE_MID, 0xC000, 0x0001), 0x0000 } }, - /* Command ID #81 */ - { { SCH_FIX_HEADER(ULR_SEND_HK_MID, 0xC000, 0x0001), 0x0000 } }, - /* Command ID #82 */ - { { SCH_FIX_HEADER(HMC5883_SEND_HK_MID, 0xC000, 0x0001), 0x0000 } }, - /* Command ID #83 */ - { { SCH_FIX_HEADER(SCH_UNUSED_MID, 0, 0), 0 } }, - /* Command ID #84 */ - { { SCH_FIX_HEADER(SCH_UNUSED_MID, 0, 0), 0 } }, - /* Command ID #85 */ - { { SCH_FIX_HEADER(NEOM8N_SEND_HK_MID, 0xC000, 0x0001), 0x0000 } }, - /* Command ID #86 */ - { { SCH_FIX_HEADER(NEOM8N_MEASURE_MID, 0xC000, 0x0001), 0x0000 } }, - /* Command ID #87 */ - { { SCH_FIX_HEADER(NEOM8N_PROC_CMDS_MID, 0xC000, 0x0001), 0x0000 } }, - /* Command ID #88 */ - { { SCH_FIX_HEADER(HMC5883_WAKEUP_MID, 0xC000, 0x0001), 0x0000 } }, - /* Command ID #89 */ - { { SCH_FIX_HEADER(SCH_UNUSED_MID, 0, 0), 0 } }, - /* Command ID #90 */ - { { SCH_FIX_HEADER(SENS_SEND_HK_MID, 0xC000, 0x0001), 0x0000 } }, - /* Command ID #91 */ - { { SCH_FIX_HEADER(SENS_WAKEUP_MID, 0xC000, 0x0001), 0x0000 } }, - /* Command ID #92 */ - { { SCH_FIX_HEADER(SCH_UNUSED_MID, 0, 0), 0 } }, - /* Command ID #93 */ - { { SCH_FIX_HEADER(LGC_WAKEUP_MID, 0xC000, 0x0001), 0x0000 } }, - /* Command ID #94 */ - { { SCH_FIX_HEADER(LGC_SEND_HK_MID, 0xC000, 0x0001), 0x0000 } }, - /* Command ID #95*/ - { { SCH_FIX_HEADER(SCH_UNUSED_MID, 0, 0), 0 } }, - /* Command ID #96 */ - { { SCH_FIX_HEADER(SCH_UNUSED_MID, 0, 0), 0 } }, - /* Command ID #97 */ - { { SCH_FIX_HEADER(SCH_UNUSED_MID, 0, 0), 0 } }, - /* Command ID #98 */ - { { SCH_FIX_HEADER(SCH_UNUSED_MID, 0, 0), 0 } }, - /* Command ID #99 */ - { { SCH_FIX_HEADER(SCH_UNUSED_MID, 0, 0), 0 } }, - /* Command ID #100 */ - { { SCH_FIX_HEADER(SCH_UNUSED_MID, 0, 0), 0 } }, - /* Command ID #101 */ - { { SCH_FIX_HEADER(SCH_UNUSED_MID, 0, 0), 0 } }, - /* Command ID #102 */ - { { SCH_FIX_HEADER(QAE_SEND_HK_MID, 0xC000, 0x0001), 0x0000 } }, - /* Command ID #103 */ - { { SCH_FIX_HEADER(QAE_WAKEUP_MID, 0xC000, 0x0001), 0x0000 } }, - /* Command ID #104 */ - { { SCH_FIX_HEADER(LD_SEND_HK_MID, 0xC000, 0x0001), 0x0000 } }, - /* Command ID #105 */ - { { SCH_FIX_HEADER(LD_WAKEUP_MID, 0xC000, 0x0001), 0x0000 } }, - /* Command ID #106 */ - { { SCH_FIX_HEADER(MPC_SEND_HK_MID, 0xC000, 0x0001), 0x0000 } }, - /* Command ID #107 */ - { { SCH_FIX_HEADER(MPC_WAKEUP_MID, 0xC000, 0x0001), 0x0000 } }, - /* Command ID #108 */ - { { SCH_FIX_HEADER(NAV_SEND_HK_MID, 0xC000, 0x0001), 0x0000 } }, - /* Command ID #109 */ - { { SCH_FIX_HEADER(NAV_WAKEUP_MID, 0xC000, 0x0001), 0x0000 } }, - /* Command ID #110 */ - { { SCH_FIX_HEADER(CFE_TIME_TONE_CMD_MID, 0xC000, 0x0001), 0x0000 } }, - /* Command ID #111 */ - { { SCH_FIX_HEADER(CFE_TIME_1HZ_CMD_MID, 0xC000, 0x0001), 0x0000 } }, - /* Command ID #112 */ - { { SCH_FIX_HEADER(RCIN_SEND_HK_MID, 0xC000, 0x0001), 0x0000 } }, - /* Command ID #113 */ - { { SCH_FIX_HEADER(RCIN_WAKEUP_MID, 0xC000, 0x0001), 0x0000 } }, - /* Command ID #114 */ - { { SCH_FIX_HEADER(VM_SEND_HK_MID, 0xC000, 0x0001), 0x0000 } }, - /* Command ID #115 */ - { { SCH_FIX_HEADER(VM_WAKEUP_MID, 0xC000, 0x0001), 0x0000 } }, - /* Command ID #116 */ - { { SCH_FIX_HEADER(SCH_UNUSED_MID, 0, 0), 0 } }, - /* Command ID #117 */ - { { SCH_FIX_HEADER(BAT_SEND_HK_MID, 0xC000, 0x0001), 0x0000 } }, - /* Command ID #118 */ - { { SCH_FIX_HEADER(BAT_WAKEUP_MID, 0xC000, 0x0001), 0x0000 } }, - /* Command ID #119 */ - { { SCH_FIX_HEADER(MAVLINK_WAKEUP_MID, 0xC000, 0x0001), 0x0000 } }, - /* Command ID #120 */ - { { SCH_FIX_HEADER(MAVLINK_SEND_HK_MID, 0xC000, 0x0001), 0x0000 } }, - /* Command ID #121 */ - { { SCH_FIX_HEADER(SCH_UNUSED_MID, 0, 0), 0 } }, - /* Command ID #122 */ - { { SCH_FIX_HEADER(GPS_READ_SENSOR_MID, 0xC000, 0x0001), 0x0000 } }, - /* Command ID #123 */ - { { SCH_FIX_HEADER(GPS_SEND_HK_MID, 0xC000, 0x0001), 0x0000 } }, - /* Command ID #124 */ - { { SCH_FIX_HEADER(SCH_UNUSED_MID, 0, 0), 0 } }, - /* Command ID #125 */ - { { SCH_FIX_HEADER(EA_WAKEUP_MID, 0xC000, 0x0001), 0x0000 } }, - /* Command ID #126 */ - { { SCH_FIX_HEADER(EA_PERFMON_MID, 0xC000, 0x0001), 0x0000 } }, - /* Command ID #127 */ - { { SCH_FIX_HEADER(EA_SEND_HK_MID, 0xC000, 0x0001), 0x0000 } } -}; - -/* -** Local Variables -*/ - -/* -** Function Prototypes -*/ - -/* -** Function Definitions -*/ - - - -/* Table file header */ -CFE_TBL_FILEDEF(SCH_DefaultMessageTable, SCH.MSG_DEFS, SCH message definitions table, sch_def_msgtbl.tbl ) - - - -#ifdef __cplusplus -} -#endif - -/*======================================================================================= -** End of file sch_def_msgtbl.c -**=====================================================================================*/ - diff --git a/config/ocpoc/s1000/target/apps/sch/unit_test/sch_custom_test.h b/config/ocpoc/s1000/target/apps/sch/unit_test/sch_custom_test.h deleted file mode 100644 index f59634e83..000000000 --- a/config/ocpoc/s1000/target/apps/sch/unit_test/sch_custom_test.h +++ /dev/null @@ -1,31 +0,0 @@ - /************************************************************************* - ** File: - ** $Id: sch_custom_test.h 1.2 2017/06/21 15:29:02EDT mdeschu Exp $ - ** - ** Purpose: - ** This file contains the function prototypes for the unit test cases for sch_custom.c - ** - ** References: - ** Flight Software Branch C Coding Standard Version 1.2 - ** CFS Development Standards Document - ** Notes: - ** - *************************************************************************/ - -/* - * Includes - */ - -#include "utassert.h" -#include "uttest.h" - -/* - * Function Prototypes - */ - -void SCH_Custom_Test_AddTestCases(void); - - -/************************/ -/* End of File Comment */ -/************************/ diff --git a/config/ocpoc/s1000/target/apps/sch/unit_test/sch_test_utils.c b/config/ocpoc/s1000/target/apps/sch/unit_test/sch_test_utils.c deleted file mode 100644 index dfa7dd3e8..000000000 --- a/config/ocpoc/s1000/target/apps/sch/unit_test/sch_test_utils.c +++ /dev/null @@ -1,58 +0,0 @@ - /************************************************************************* - ** File: - ** $Id: sch_test_utils.c 1.2 2017/06/21 15:28:59EDT mdeschu Exp $ - ** - ** Purpose: - ** This file contains unit test utilities for the sch application. - ** - ** References: - ** Flight Software Branch C Coding Standard Version 1.2 - ** CFS Development Standards Document - ** Notes: - ** - *************************************************************************/ - -#include "sch_test_utils.h" -#include "sch_tbldefs.h" - -SCH_MessageEntry_t MessageTable[SCH_MAX_MESSAGES]; -SCH_ScheduleEntry_t ScheduleTable[SCH_TABLE_ENTRIES]; - -/* - * Function Definitions - */ - -void SCH_Test_Setup(void) -{ - /* initialize test environment to default state for every test */ - - CFE_PSP_MemSet(&SCH_AppData, 0, sizeof(SCH_AppData_t)); - - SCH_AppData.MessageTable = &MessageTable[0]; - SCH_AppData.ScheduleTable = &ScheduleTable[0]; - - CFE_PSP_MemSet(SCH_AppData.MessageTable, 0, sizeof(SCH_MessageEntry_t)*SCH_MAX_MESSAGES); - CFE_PSP_MemSet(SCH_AppData.ScheduleTable, 0, sizeof(SCH_ScheduleEntry_t)*SCH_TABLE_ENTRIES); - - Ut_CFE_EVS_Reset(); - Ut_CFE_FS_Reset(); - Ut_CFE_TIME_Reset(); - Ut_CFE_TBL_Reset(); - Ut_CFE_SB_Reset(); - Ut_CFE_ES_Reset(); - Ut_OSAPI_Reset(); - Ut_OSFILEAPI_Reset(); - Ut_OSTIMER_Reset(); -} /* end SCH_Test_Setup */ - -void SCH_Test_TearDown(void) -{ - /* cleanup test environment */ -} /* end SCH_Test_TearDown */ - -Ut_CFE_EVS_HookTable_t Ut_CFE_EVS_HookTable; -Ut_CFE_EVS_ReturnCodeTable_t Ut_CFE_EVS_ReturnCodeTable[UT_CFE_EVS_MAX_INDEX]; - -/************************/ -/* End of File Comment */ -/************************/ diff --git a/config/ocpoc/s1000/target/apps/sch/unit_test/sch_test_utils.h b/config/ocpoc/s1000/target/apps/sch/unit_test/sch_test_utils.h deleted file mode 100644 index 34dc6c3a7..000000000 --- a/config/ocpoc/s1000/target/apps/sch/unit_test/sch_test_utils.h +++ /dev/null @@ -1,32 +0,0 @@ - /************************************************************************* - ** File: - ** $Id: sch_test_utils.h 1.2 2017/06/21 15:28:58EDT mdeschu Exp $ - ** - ** Purpose: - ** This file contains the function prototypes and global variables for the unit test utilities for the SCH application. - ** - ** References: - ** Flight Software Branch C Coding Standard Version 1.2 - ** CFS Development Standards Document - ** Notes: - ** - *************************************************************************/ - -/* - * Includes - */ - -#include "sch_app.h" - -/* - * Function Definitions - */ - -void SCH_Test_Setup(void); -void SCH_Test_TearDown(void); - - - -/************************/ -/* End of File Comment */ -/************************/ diff --git a/config/ocpoc/s1000/target/apps/sch/unit_test/sch_testrunner.c b/config/ocpoc/s1000/target/apps/sch/unit_test/sch_testrunner.c deleted file mode 100644 index 98973d29f..000000000 --- a/config/ocpoc/s1000/target/apps/sch/unit_test/sch_testrunner.c +++ /dev/null @@ -1,36 +0,0 @@ - /************************************************************************* - ** File: - ** $Id: sch_testrunner.c 1.2 2017/06/21 15:29:03EDT mdeschu Exp $ - ** - ** Purpose: - ** This file contains the unit test runner for the SCH application. - ** - ** References: - ** Flight Software Branch C Coding Standard Version 1.2 - ** CFS Development Standards Document - ** Notes: - ** - *************************************************************************/ - -/* - * Includes - */ - -#include "uttest.h" -#include "sch_custom_test.h" - -/* - * Function Definitions - */ - -int main(void) -{ - SCH_Custom_Test_AddTestCases(); - - return(UtTest_Run()); -} /* end main */ - - -/************************/ -/* End of File Comment */ -/************************/ diff --git a/config/ocpoc/s1000/target/apps/sens/CMakeLists.txt b/config/ocpoc/s1000/target/apps/sens/CMakeLists.txt deleted file mode 100644 index adf1852a8..000000000 --- a/config/ocpoc/s1000/target/apps/sens/CMakeLists.txt +++ /dev/null @@ -1,7 +0,0 @@ -set(APP_NAME sens) - -buildliner_add_table( - ${APP_NAME} - NAME sens_config - SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/tables/sens_config.c -) diff --git a/config/ocpoc/s1000/target/apps/sens/tables/sens_config.c b/config/ocpoc/s1000/target/apps/sens/tables/sens_config.c deleted file mode 100644 index b0b7a59c2..000000000 --- a/config/ocpoc/s1000/target/apps/sens/tables/sens_config.c +++ /dev/null @@ -1,222 +0,0 @@ -/* -** Pragmas -*/ - -/* -** Include Files -*/ -#include "cfe_tbl_filedef.h" -#include "sens_tbldefs.h" - -/* -** Local Defines -*/ - -/* -** Local Structure Declarations -*/ -static OS_USED CFE_TBL_FileDef_t CFE_TBL_FileDef = -{ - /* Content format: ObjName[64], TblName[38], Desc[32], TgtFileName[20], ObjSize - ** ObjName - variable name of config table, e.g., CI_ConfigDefTbl[] - ** TblName - app's table name, e.g., CI.CONFIG_TBL, where CI is the same app name - ** used in cfe_es_startup.scr, and CI_defConfigTbl is the same table - ** name passed in to CFE_TBL_Register() - ** Desc - description of table in string format - ** TgtFileName[20] - table file name, compiled as .tbl file extension - ** ObjSize - size of the entire table - */ - - "SENS_ConfigTbl", "SENS.CONFIG_TBL", "SENS default config table", - "sens_config.tbl", (sizeof(SENS_ConfigTbl_t)) -}; - -/* -** External Global Variables -*/ - -/* -** Global Variables -*/ - -/* Default SENS config table data */ -SENS_ConfigTbl_t SENS_ConfigTbl = -{ - /* Values here based on: - * https://docs.google.com/spreadsheets/d/1paD_elfTrYbCI3wqHR-x-OO1nnJUPQNuIw-M6-BSDVA/edit?usp=sharing - * - * Expected RC mapping: - * CH 1: Roll - * CH 2: Pitch - * CH 3: Throttle - * CH 4: Yaw - */ - - /* RC%d_MIN (0..17) */ - 982.0f, // Throttle min - 982.0f, // Roll min - 982.0f, // Pitch min - 982.0f, // Yaw min - 982.0f, - 982.0f, - 982.0f, - 982.0f, - 982.0f, - 982.0f, - 982.0f, - 982.0f, - 982.0f, - 982.0f, - 982.0f, - 982.0f, - 982.0f, - 982.0f, - /* RC%d_TRIM (0..17) */ - 982.0f, // Throttle trim - set this equal to min - 1493.0f, // Roll trim - 1493.0f, // Pitch trim - 1493.0f, // Yaw trim - 1493.0f, - 1493.0f, - 1493.0f, - 1493.0f, - 1493.0f, - 1493.0f, - 1493.0f, - 1493.0f, - 1493.0f, - 1493.0f, - 1493.0f, - 1493.0f, - 1493.0f, - 1493.0f, - /* RC%d_MAX (0..17) */ - 2006.0f, // Throttle max - 2006.0f, // Roll max - 2006.0f, // Pitch max - 2006.0f, // Yaw max - 2006.0f, - 2006.0f, - 2006.0f, - 2006.0f, - 2006.0f, - 2006.0f, - 2006.0f, - 2006.0f, - 2006.0f, - 2006.0f, - 2006.0f, - 2006.0f, - 2006.0f, - 2006.0f, - /* RC%d_REV (0..17) */ - 1.0f, - 1.0f, - 1.0f, - 1.0f, - 1.0f, - 1.0f, - 1.0f, - 1.0f, - 1.0f, - 1.0f, - 1.0f, - 1.0f, - 1.0f, - 1.0f, - 1.0f, - 1.0f, - 1.0f, - 1.0f, - /* RC%d_DZ (0..17) */ - 10.0f, - 10.0f, - 10.0f, - 10.0f, - 10.0f, - 10.0f, - 10.0f, - 10.0f, - 10.0f, - 10.0f, - 10.0f, - 10.0f, - 10.0f, - 10.0f, - 10.0f, - 10.0f, - 10.0f, - 10.0f, - - /* RC_MAP_ROLL */ 2, - /* RC_MAP_PITCH */ 3, - /* RC_MAP_YAW */ 4, - /* RC_MAP_THROTTLE */ 1, - /* RC_MAP_FAILSAFE */ 0, - - /* RC_MAP_MODE_SW */ 8, - /* RC_MAP_RETURN_SW */ 12, - /* RC_MAP_RATT_SW */ 10, - /* RC_MAP_POSCTL_SW */ 0, - /* RC_MAP_LOITER_SW */ 0, - /* RC_MAP_ACRO_SW */ 0, - /* RC_MAP_OFFB_SW */ 0, - /* RC_MAP_KILL_SW */ 7, - /* RC_MAP_ARM_SW */ 6, - /* RC_MAP_TRANS_SW */ 11, - /* RC_MAP_GEAR_SW */ 5, - /* RC_MAP_STAB_SW */ 0, - /* RC_MAP_MAN_SW */ 0, - /* RC_MAP_FLAPS */ 0, - /* RC_MAP_ALTCTL_SW */ 0, - - /* RC_MAP_AUX1 */ 0, - /* RC_MAP_AUX2 */ 0, - /* RC_MAP_AUX3 */ 0, - /* RC_MAP_AUX4 */ 0, - /* RC_MAP_AUX5 */ 0, - - /* RC_MAP_PARAM%d (1) */ 0, - /* RC_MAP_PARAM%d (2) */ 0, - /* RC_MAP_PARAM%d (3) */ 0, - - /* RC_MAP_FLTMODE */ 0, - - /* RC_FAILS_THR */ 0, - /* RC_ASSIST_TH */ 0.2313f, - /* RC_AUTO_TH */ 0.9770f, - /* RC_RATT_TH */ 0.5f, - /* RC_POSCTL_TH */ 0.6185f, - /* RC_RETURN_TH */ 0.5f, - /* RC_LOITER_TH */ 0.5f, - /* RC_ACRO_TH */ 0.5f, - /* RC_OFFB_TH */ 0.5f, - /* RC_KILLSWITCH_TH */ 0.5f, - /* RC_ARMSWITCH_TH */ 0.5f, - /* RC_TRANS_TH */ 0.25f, - /* RC_GEAR_TH */ 0.25f, - /* RC_STAB_TH */ 0.5f, - /* RC_MAN_TH */ 0.5f, - /* RC_ALTCTL_TH */ 0.5f, - - /* RC_FLT_SMP_RATE */ 50.0f, - /* RC_FLT_CUTOFF */ 10.0f, - - /* ModeSwitchControl */ 1 -}; - -/* -** Local Variables -*/ - -/* -** Function Prototypes -*/ - -/* -** Function Definitions -*/ - -/*======================================================================================= -** End of file sens_config.c -**=====================================================================================*/ diff --git a/config/ocpoc/s1000/target/apps/to/CMakeLists.txt b/config/ocpoc/s1000/target/apps/to/CMakeLists.txt deleted file mode 100644 index dee6a31c0..000000000 --- a/config/ocpoc/s1000/target/apps/to/CMakeLists.txt +++ /dev/null @@ -1,38 +0,0 @@ -set(APP_NAME to) - -buildliner_add_table( - ${APP_NAME} - NAME to_udp_cfg - SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/tables/to_udp_cfg.c - INCLUDES ${CMAKE_CURRENT_SOURCE_DIR}/src/ -) - -buildliner_add_app_unit_test(to-custom-ut - UTASSERT - NO_HELGRIND - NO_MASSIF - - SOURCES - ${CMAKE_CURRENT_SOURCE_DIR}/unit_test/to_app_custom_test.c - ${CMAKE_CURRENT_SOURCE_DIR}/unit_test/to_app_custom_test.h - ${CMAKE_CURRENT_SOURCE_DIR}/unit_test/to_custom_testrunner.c - ${CMAKE_CURRENT_SOURCE_DIR}/unit_test/to_custom_test_utils.c - ${CMAKE_CURRENT_SOURCE_DIR}/unit_test/to_custom_test_utils.h - ${CMAKE_CURRENT_SOURCE_DIR}/unit_test/to_app_stubs.c - ${CMAKE_CURRENT_SOURCE_DIR}/unit_test/to_app_stubs.h - ${CMAKE_CURRENT_SOURCE_DIR}/unit_test/to_platform_stubs.c - ${CMAKE_CURRENT_SOURCE_DIR}/unit_test/to_platform_stubs.h - ${CMAKE_CURRENT_SOURCE_DIR}/tables/to_backup_cfg.c - ${CMAKE_CURRENT_SOURCE_DIR}/to_custom.c - ${CMAKE_CURRENT_SOURCE_DIR}/to_custom_udp.h - - INCLUDES - ${CMAKE_CURRENT_SOURCE_DIR}/ - ${CMAKE_CURRENT_SOURCE_DIR}/unit_test/ - ${PROJECT_SOURCE_DIR}/apps/to/fsw/src - - WRAPPERS - socket - bind - sendto -) diff --git a/config/ocpoc/s1000/target/apps/to/tables/to_backup_cfg.c b/config/ocpoc/s1000/target/apps/to/tables/to_backup_cfg.c deleted file mode 100644 index dd007ca32..000000000 --- a/config/ocpoc/s1000/target/apps/to/tables/to_backup_cfg.c +++ /dev/null @@ -1,74 +0,0 @@ -/************************************************************************ - ** Includes - *************************************************************************/ -#include "cfe_tbl_filedef.h" -#include "to_tbldefs.h" -#include "msg_ids.h" - - -/************************************************************************ - ** Defines - *************************************************************************/ - -#define TO_PQUEUE_SINGLE_PASS_IDX 0 -#define TO_PQUEUE_HIGH_OPS_RSRVD_IDX 1 -#define TO_PQUEUE_HIGH_IDX 2 -#define TO_PQUEUE_MEDIUM_IDX 3 -#define TO_PQUEUE_LOW_IDX 4 - -/** - ** \brief Default TO config table data - */ -TO_ChannelTbl_t TO_BackupConfigTbl = -{ - /* Table ID */ - 0, - { - /* Message Flows */ - /* Ground Queues */ - {TO_HK_TLM_MID, 1, TO_PQUEUE_HIGH_IDX}, - {TO_DATA_TYPE_MID, 1, TO_PQUEUE_HIGH_IDX}, - {TO_DIAG_TLM_MID, 1, TO_PQUEUE_HIGH_IDX}, - {CFE_ES_HK_TLM_MID, 1, TO_PQUEUE_MEDIUM_IDX}, - {CFE_EVS_HK_TLM_MID, 1, TO_PQUEUE_MEDIUM_IDX}, - {CFE_SB_HK_TLM_MID, 1, TO_PQUEUE_MEDIUM_IDX}, - {CFE_TBL_HK_TLM_MID, 1, TO_PQUEUE_MEDIUM_IDX}, - {CFE_TIME_HK_TLM_MID, 1, TO_PQUEUE_MEDIUM_IDX}, - {CFE_TIME_DIAG_TLM_MID, 1, TO_PQUEUE_MEDIUM_IDX}, - {CFE_EVS_EVENT_MSG_MID, 32, TO_PQUEUE_MEDIUM_IDX}, - {CFE_SB_STATS_TLM_MID, 1, TO_PQUEUE_MEDIUM_IDX}, - {CFE_ES_APP_TLM_MID, 1, TO_PQUEUE_MEDIUM_IDX}, - {CFE_TBL_REG_TLM_MID, 1, TO_PQUEUE_MEDIUM_IDX}, - {CFE_SB_ONESUB_TLM_MID, 1, TO_PQUEUE_MEDIUM_IDX}, - {CFE_ES_SHELL_TLM_MID, 32, TO_PQUEUE_MEDIUM_IDX}, - {CFE_ES_MEMSTATS_TLM_MID, 1, TO_PQUEUE_MEDIUM_IDX}, - {CF_HK_TLM_MID, 1, TO_PQUEUE_MEDIUM_IDX}, - {CF_TRANS_TLM_MID, 1, TO_PQUEUE_MEDIUM_IDX}, - {CF_CONFIG_TLM_MID, 1, TO_PQUEUE_MEDIUM_IDX}, - {CF_SPACE_TO_GND_PDU_MID, 32, TO_PQUEUE_MEDIUM_IDX}, - {FM_HK_TLM_MID, 1, TO_PQUEUE_MEDIUM_IDX}, - {FM_FILE_INFO_TLM_MID, 1, TO_PQUEUE_MEDIUM_IDX}, - {FM_DIR_LIST_TLM_MID, 1, TO_PQUEUE_MEDIUM_IDX}, - {FM_OPEN_FILES_TLM_MID, 1, TO_PQUEUE_MEDIUM_IDX}, - {FM_FREE_SPACE_TLM_MID, 1, TO_PQUEUE_MEDIUM_IDX}, - {MD_HK_TLM_MID, 1, TO_PQUEUE_MEDIUM_IDX}, - {MM_HK_TLM_MID, 1, TO_PQUEUE_MEDIUM_IDX}, - },{ - /* Priority Queues */ - /* TO_PQUEUE_SINGLE_PASS_IDX */ - {TO_PQUEUE_ENA, 100, TO_PRIORITY_QUEUE_TYPE_SINGLE}, - /* TO_PQUEUE_HIGH_OPS_RSRVD_IDX */ - {TO_PQUEUE_ENA, 100, TO_PRIORITY_QUEUE_TYPE_FIFO}, - /* TO_PQUEUE_HIGH_IDX */ - {TO_PQUEUE_ENA, 100, TO_PRIORITY_QUEUE_TYPE_FIFO}, - /* TO_PQUEUE_MEDIUM_IDX */ - {TO_PQUEUE_ENA, 100, TO_PRIORITY_QUEUE_TYPE_FIFO}, - /* TO_PQUEUE_LOW_IDX */ - {TO_PQUEUE_ENA, 100, TO_PRIORITY_QUEUE_TYPE_FIFO} - } -}; - - -/************************/ -/* End of File Comment */ -/************************/ diff --git a/config/ocpoc/s1000/target/apps/to/tables/to_udp_cfg.c b/config/ocpoc/s1000/target/apps/to/tables/to_udp_cfg.c deleted file mode 100644 index f699d479c..000000000 --- a/config/ocpoc/s1000/target/apps/to/tables/to_udp_cfg.c +++ /dev/null @@ -1,224 +0,0 @@ -/************************************************************************ - ** Includes - *************************************************************************/ -#include "cfe_tbl_filedef.h" -#include "to_tbldefs.h" -#include "msg_ids.h" - -/** - ** \brief The cFE TO config table definition. - ** - ** Content format: ObjName[64], TblName[38], Desc[32], TgtFileName[20], ObjSize - ** ObjName - variable name of config table, e.g., TO_ConfigDefTbl[] - ** TblName - app's table name, e.g., TO.CONFIG_TBL, where TO is the same app name - ** used in cfe_es_startup.scr, and TO_defConfigTbl is the same table - ** name passed in to CFE_TBL_Register() - ** Desc - description of table in string format - ** TgtFileName[20] - table file name, compiled as .tbl file extension - ** ObjSize - size of the entire table - ** - */ -static CFE_TBL_FileDef_t CFE_TBL_FileDef OS_USED = -{ - "TO_ConfigTbl", "TO.UDP_CFG", "TO ground dev udp table", - "to_udp_cfg.tbl", (sizeof(TO_ChannelTbl_t)) -}; - - -/************************************************************************ - ** Defines - *************************************************************************/ - -#define TO_PQUEUE_SINGLE_PASS_IDX 0 -#define TO_PQUEUE_HIGH_OPS_RSRVD_IDX 1 -#define TO_PQUEUE_HIGH_IDX 2 -#define TO_PQUEUE_MEDIUM_IDX 3 -#define TO_PQUEUE_LOW_IDX 4 - -/** - ** \brief Default TO config table data - */ -TO_ChannelTbl_t TO_ConfigTbl = -{ - /* Table ID */ - 1, - { - /* Message Flows */ - /* Ground Queues */ - {AMC_HK_TLM_MID, 1, TO_PQUEUE_HIGH_IDX}, - {MAC_HK_TLM_MID, 1, TO_PQUEUE_HIGH_IDX}, - {MPC_HK_TLM_MID, 1, TO_PQUEUE_HIGH_IDX}, - {ULR_HK_TLM_MID, 1, TO_PQUEUE_HIGH_IDX}, - {RGBLED_HK_TLM_MID, 1, TO_PQUEUE_HIGH_IDX}, - {GPS_HK_TLM_MID, 1, TO_PQUEUE_HIGH_IDX}, - {SENS_HK_TLM_MID, 1, TO_PQUEUE_HIGH_IDX}, - {LD_HK_TLM_MID, 1, TO_PQUEUE_HIGH_IDX}, - {NAV_HK_TLM_MID, 1, TO_PQUEUE_HIGH_IDX}, - {RCIN_HK_TLM_MID, 1, TO_PQUEUE_HIGH_IDX}, - {VM_HK_TLM_MID, 1, TO_PQUEUE_HIGH_IDX}, - {BAT_HK_TLM_MID, 1, TO_PQUEUE_HIGH_IDX}, - {PE_HK_TLM_MID, 1, TO_PQUEUE_HIGH_IDX}, - {AK8963_HK_TLM_MID, 1, TO_PQUEUE_HIGH_IDX}, - {AK8963_DIAG_TLM_MID, 1, TO_PQUEUE_HIGH_IDX}, - {MS5611_HK_TLM_MID, 1, TO_PQUEUE_HIGH_IDX}, - {MS5611_DIAG_TLM_MID, 1, TO_PQUEUE_HIGH_IDX}, - {MPU6050_HK_TLM_MID, 1, TO_PQUEUE_HIGH_IDX}, - {MPU6050_DIAG_TLM_MID, 1, TO_PQUEUE_HIGH_IDX}, - {TO_HK_TLM_MID, 1, TO_PQUEUE_HIGH_IDX}, - {TO_DATA_TYPE_MID, 1, TO_PQUEUE_HIGH_IDX}, - {EA_HK_TLM_MID, 1, TO_PQUEUE_HIGH_IDX}, - {VC_HK_TLM_MID, 1, TO_PQUEUE_HIGH_IDX}, - {TO_DIAG_TLM_MID, 1, TO_PQUEUE_HIGH_IDX}, - {TO_DIAG_MSG_FLOW_MID, 1, TO_PQUEUE_HIGH_IDX}, - {GPS_HK_TLM_MID, 1, TO_PQUEUE_HIGH_IDX}, - {MAVLINK_HK_TLM_MID, 1, TO_PQUEUE_HIGH_IDX}, - {CFE_ES_HK_TLM_MID, 1, TO_PQUEUE_MEDIUM_IDX}, - {CFE_EVS_HK_TLM_MID, 1, TO_PQUEUE_MEDIUM_IDX}, - {CFE_SB_HK_TLM_MID, 1, TO_PQUEUE_MEDIUM_IDX}, - {CFE_TBL_HK_TLM_MID, 1, TO_PQUEUE_MEDIUM_IDX}, - {CFE_TIME_HK_TLM_MID, 1, TO_PQUEUE_MEDIUM_IDX}, - {CFE_TIME_DIAG_TLM_MID, 1, TO_PQUEUE_MEDIUM_IDX}, - {CFE_EVS_EVENT_MSG_MID, 32, TO_PQUEUE_MEDIUM_IDX}, - {CFE_SB_STATS_TLM_MID, 1, TO_PQUEUE_MEDIUM_IDX}, - {CFE_ES_APP_TLM_MID, 1, TO_PQUEUE_MEDIUM_IDX}, - {CFE_TBL_REG_TLM_MID, 1, TO_PQUEUE_MEDIUM_IDX}, - {CFE_SB_ONESUB_TLM_MID, 1, TO_PQUEUE_MEDIUM_IDX}, - {CFE_ES_SHELL_TLM_MID, 32, TO_PQUEUE_MEDIUM_IDX}, - {CFE_ES_MEMSTATS_TLM_MID, 1, TO_PQUEUE_MEDIUM_IDX}, - {CF_HK_TLM_MID, 1, TO_PQUEUE_MEDIUM_IDX}, - {CF_TRANS_TLM_MID, 1, TO_PQUEUE_MEDIUM_IDX}, - {CF_CONFIG_TLM_MID, 1, TO_PQUEUE_MEDIUM_IDX}, - {CF_SPACE_TO_GND_PDU_MID, 32, TO_PQUEUE_MEDIUM_IDX}, - {CS_HK_TLM_MID, 1, TO_PQUEUE_MEDIUM_IDX}, - {DS_HK_TLM_MID, 1, TO_PQUEUE_MEDIUM_IDX}, - {DS_DIAG_TLM_MID, 1, TO_PQUEUE_MEDIUM_IDX}, - {FM_HK_TLM_MID, 1, TO_PQUEUE_MEDIUM_IDX}, - {FM_FILE_INFO_TLM_MID, 1, TO_PQUEUE_MEDIUM_IDX}, - {FM_DIR_LIST_TLM_MID, 1, TO_PQUEUE_MEDIUM_IDX}, - {FM_OPEN_FILES_TLM_MID, 1, TO_PQUEUE_MEDIUM_IDX}, - {FM_FREE_SPACE_TLM_MID, 1, TO_PQUEUE_MEDIUM_IDX}, - {HK_HK_TLM_MID, 1, TO_PQUEUE_MEDIUM_IDX}, - {HS_HK_TLM_MID, 1, TO_PQUEUE_MEDIUM_IDX}, - {LC_HK_TLM_MID, 1, TO_PQUEUE_MEDIUM_IDX}, - {MD_HK_TLM_MID, 1, TO_PQUEUE_MEDIUM_IDX}, - {MM_HK_TLM_MID, 1, TO_PQUEUE_MEDIUM_IDX}, - {SCH_HK_TLM_MID, 1, TO_PQUEUE_MEDIUM_IDX}, - {SCH_DIAG_TLM_MID, 1, TO_PQUEUE_MEDIUM_IDX}, - {CI_HK_TLM_MID, 1, TO_PQUEUE_MEDIUM_IDX}, - {QAE_HK_TLM_MID, 1, TO_PQUEUE_MEDIUM_IDX}, - {FLOW_HK_TLM_MID, 1, TO_PQUEUE_MEDIUM_IDX}, - {FLOW_DIAG_TLM_MID, 1, TO_PQUEUE_MEDIUM_IDX}, - {MPC_DIAG_TLM_MID, 1, TO_PQUEUE_MEDIUM_IDX}, - {LD_DIAG_TLM_MID, 1, TO_PQUEUE_MEDIUM_IDX}, - {PRM_HK_TLM_MID, 1, TO_PQUEUE_MEDIUM_IDX}, - {VM_CONFIG_TLM_MID, 1, TO_PQUEUE_MEDIUM_IDX}, - -// {PX4_ACTUATOR_ARMED_MID, 1, TO_PQUEUE_LOW_IDX}, -// {PX4_ACTUATOR_CONTROLS_0_MID, 1, TO_PQUEUE_LOW_IDX}, -// {PX4_ACTUATOR_CONTROLS_1_MID, 1, TO_PQUEUE_LOW_IDX}, -// {PX4_ACTUATOR_CONTROLS_2_MID, 1, TO_PQUEUE_LOW_IDX}, -// {PX4_ACTUATOR_CONTROLS_3_MID, 1, TO_PQUEUE_LOW_IDX}, -// {PX4_ACTUATOR_DIRECT_MID, 1, TO_PQUEUE_LOW_IDX}, -// {PX4_ACTUATOR_OUTPUTS_MID, 1, TO_PQUEUE_LOW_IDX}, -// {PX4_ADC_REPORT_MID, 1, TO_PQUEUE_LOW_IDX}, -// {PX4_AIRSPEED_MID, 1, TO_PQUEUE_LOW_IDX}, -// {PX4_ATT_POS_MOCAP_MID, 1, TO_PQUEUE_LOW_IDX}, -// {PX4_BATTERY_STATUS_MID, 1, TO_PQUEUE_LOW_IDX}, -// {PX4_CAMERA_TRIGGER_MID, 1, TO_PQUEUE_LOW_IDX}, -// {PX4_COMMANDER_STATE_MID, 1, TO_PQUEUE_LOW_IDX}, -// {PX4_CONTROL_STATE_MID, 1, TO_PQUEUE_LOW_IDX}, -// {PX4_CPULOAD_MID, 1, TO_PQUEUE_LOW_IDX}, -// {PX4_DEBUG_KEY_VALUE_MID, 1, TO_PQUEUE_LOW_IDX}, -// {PX4_DIFFERENTIAL_PRESSURE_MID, 1, TO_PQUEUE_LOW_IDX}, -// {PX4_DISTANCE_SENSOR_MID, 1, TO_PQUEUE_LOW_IDX}, -// {PX4_FW_POS_CTRL_STATUS_MID, 1, TO_PQUEUE_LOW_IDX}, -// {PX4_FW_VIRTUAL_ATTITUDE_SETPOINT_MID, 1, TO_PQUEUE_LOW_IDX}, -// {PX4_FW_VIRTUAL_RATES_SETPOINT_MID, 1, TO_PQUEUE_LOW_IDX}, -// {PX4_EKF2_INNOVATIONS_MID, 1, TO_PQUEUE_LOW_IDX}, -// {PX4_EKF2_REPLAY_MID, 1, TO_PQUEUE_LOW_IDX}, -// {PX4_ESC_REPORT_MID, 1, TO_PQUEUE_LOW_IDX}, -// {PX4_ESC_STATUS_MID, 1, TO_PQUEUE_LOW_IDX}, -// {PX4_ESTIMATOR_STATUS_MID, 1, TO_PQUEUE_LOW_IDX}, -// {PX4_FENCE_MID, 1, TO_PQUEUE_LOW_IDX}, -// {PX4_FENCE_VERTEX_MID, 1, TO_PQUEUE_LOW_IDX}, -// {PX4_FILTERED_BOTTOM_FLOW_MID, 1, TO_PQUEUE_LOW_IDX}, -// {PX4_FOLLOW_TARGET_MID, 1, TO_PQUEUE_LOW_IDX}, - {PX4_GEOFENCE_RESULT_MID, 1, TO_PQUEUE_LOW_IDX}, -// {PX4_GPS_DUMP_MID, 1, TO_PQUEUE_LOW_IDX}, -// {PX4_GPS_INJECT_DATA_MID, 1, TO_PQUEUE_LOW_IDX}, -// {PX4_HIL_SENSOR_MID, 1, TO_PQUEUE_LOW_IDX}, - {PX4_HOME_POSITION_MID, 1, TO_PQUEUE_LOW_IDX}, -// {PX4_INPUT_RC_MID, 1, TO_PQUEUE_LOW_IDX}, - {PX4_LED_CONTROL_MID, 1, TO_PQUEUE_LOW_IDX}, - {PX4_LOG_MESSAGE_MID, 1, TO_PQUEUE_LOW_IDX}, - {PX4_MANUAL_CONTROL_SETPOINT_MID, 1, TO_PQUEUE_LOW_IDX}, - {PX4_MAVLINK_LOG_MID, 1, TO_PQUEUE_LOW_IDX}, -// {PX4_MC_ATT_CTRL_STATUS_MID, 1, TO_PQUEUE_LOW_IDX}, -// {PX4_MC_VIRTUAL_ATTITUDE_SETPOINT_MID, 1, TO_PQUEUE_LOW_IDX}, -// {PX4_MC_VIRTUAL_RATES_SETPOINT_MID, 1, TO_PQUEUE_LOW_IDX}, - {PX4_MISSION_MID, 1, TO_PQUEUE_LOW_IDX}, - {PX4_MISSION_RESULT_MID, 1, TO_PQUEUE_LOW_IDX}, -// {PX4_MULTIROTOR_MOTOR_LIMITS_MID, 1, TO_PQUEUE_LOW_IDX}, - {PX4_OFFBOARD_CONTROL_MODE_MID, 1, TO_PQUEUE_LOW_IDX}, -// {PX4_OPTICAL_FLOW_MID, 1, TO_PQUEUE_LOW_IDX}, -// {PX4_OUTPUT_PWM_MID, 1, TO_PQUEUE_LOW_IDX}, -// {PX4_PARAMETER_UPDATE_MID, 1, TO_PQUEUE_LOW_IDX}, - {PX4_POSITION_SETPOINT_TRIPLET_MID, 1, TO_PQUEUE_LOW_IDX}, -// {PX4_PWM_INPUT_MID, 1, TO_PQUEUE_LOW_IDX}, -// {PX4_QSHELL_REQ_MID, 1, TO_PQUEUE_LOW_IDX}, -// {PX4_RC_CHANNELS_MID, 1, TO_PQUEUE_LOW_IDX}, -// {PX4_RC_PARAMETER_MAP_MID, 1, TO_PQUEUE_LOW_IDX}, - {PX4_SAFETY_MID, 1, TO_PQUEUE_LOW_IDX}, -// {PX4_SATELLITE_INFO_MID, 1, TO_PQUEUE_LOW_IDX}, -// {PX4_SENSOR_ACCEL_MID, 1, TO_PQUEUE_LOW_IDX}, -// {PX4_SENSOR_BARO_MID, 1, TO_PQUEUE_LOW_IDX}, -// {PX4_SENSOR_COMBINED_MID, 1, TO_PQUEUE_LOW_IDX}, - {PX4_SENSOR_CORRECTION_MID, 1, TO_PQUEUE_LOW_IDX}, -// {PX4_SENSOR_GYRO_MID, 1, TO_PQUEUE_LOW_IDX}, -// {PX4_SENSOR_MAG_MID, 1, TO_PQUEUE_LOW_IDX}, -// {PX4_SERVORAIL_STATUS_MID, 1, TO_PQUEUE_LOW_IDX}, - {PX4_SUBSYSTEM_INFO_MID, 1, TO_PQUEUE_LOW_IDX}, - {PX4_SYSTEM_POWER_MID, 1, TO_PQUEUE_LOW_IDX}, -// {PX4_TECS_STATUS_MID, 1, TO_PQUEUE_LOW_IDX}, - {PX4_TELEMETRY_STATUS_MID, 1, TO_PQUEUE_LOW_IDX}, -// {PX4_TEST_MOTOR_MID, 1, TO_PQUEUE_LOW_IDX}, -// {PX4_TIME_OFFSET_MID, 1, TO_PQUEUE_LOW_IDX}, -// {PX4_TRANSPONDER_REPORT_MID, 1, TO_PQUEUE_LOW_IDX}, -// {PX4_UAVCAN_PARAMETER_REQUEST_MID, 1, TO_PQUEUE_LOW_IDX}, -// {PX4_UAVCAN_PARAMETER_VALUE_MID, 1, TO_PQUEUE_LOW_IDX}, - {PX4_VEHICLE_ATTITUDE_MID, 1, TO_PQUEUE_LOW_IDX}, -// {PX4_VEHICLE_ATTITUDE_SETPOINT_MID, 1, TO_PQUEUE_LOW_IDX}, -// {PX4_VEHICLE_COMMAND_ACK_MID, 1, TO_PQUEUE_LOW_IDX}, -// {PX4_VEHICLE_COMMAND_MID, 1, TO_PQUEUE_LOW_IDX}, -// {PX4_VEHICLE_CONTROL_MODE_MID, 1, TO_PQUEUE_LOW_IDX}, -// {PX4_VEHICLE_FORCE_SETPOINT_MID, 1, TO_PQUEUE_LOW_IDX}, - {PX4_VEHICLE_GLOBAL_POSITION_MID, 1, TO_PQUEUE_LOW_IDX}, -// {PX4_VEHICLE_GLOBAL_VELOCITY_SETPOINT_MID, 1, TO_PQUEUE_LOW_IDX}, -// {PX4_VEHICLE_GPS_POSITION_MID, 1, TO_PQUEUE_LOW_IDX}, - {PX4_VEHICLE_LAND_DETECTED_MID, 1, TO_PQUEUE_LOW_IDX}, -// {PX4_VEHICLE_LOCAL_POSITION_MID, 1, TO_PQUEUE_LOW_IDX}, -// {PX4_VEHICLE_LOCAL_POSITION_SETPOINT_MID, 1, TO_PQUEUE_LOW_IDX}, -// {PX4_VEHICLE_RATES_SETPOINT_MID, 1, TO_PQUEUE_LOW_IDX}, -// {PX4_VEHICLE_STATUS_MID, 1, TO_PQUEUE_LOW_IDX}, -// {PX4_VISION_POSITION_ESTIMATE_MID, 1, TO_PQUEUE_LOW_IDX}, -// {PX4_VTOL_VEHICLE_STATUS_MID, 1, TO_PQUEUE_LOW_IDX}, -// {PX4_WIND_ESTIMATE_MID, 1, TO_PQUEUE_LOW_IDX} - },{ - /* Priority Queues */ - /* TO_PQUEUE_SINGLE_PASS_IDX */ - {TO_PQUEUE_ENA, 100, TO_PRIORITY_QUEUE_TYPE_SINGLE}, - /* TO_PQUEUE_HIGH_OPS_RSRVD_IDX */ - {TO_PQUEUE_ENA, 100, TO_PRIORITY_QUEUE_TYPE_FIFO}, - /* TO_PQUEUE_HIGH_IDX */ - {TO_PQUEUE_ENA, 100, TO_PRIORITY_QUEUE_TYPE_FIFO}, - /* TO_PQUEUE_MEDIUM_IDX */ - {TO_PQUEUE_ENA, 100, TO_PRIORITY_QUEUE_TYPE_FIFO}, - /* TO_PQUEUE_LOW_IDX */ - {TO_PQUEUE_ENA, 100, TO_PRIORITY_QUEUE_TYPE_FIFO} - } -}; - - -/************************/ -/* End of File Comment */ -/************************/ diff --git a/config/ocpoc/s1000/target/apps/to/to_custom.c b/config/ocpoc/s1000/target/apps/to/to_custom.c deleted file mode 100644 index 17b682c26..000000000 --- a/config/ocpoc/s1000/target/apps/to/to_custom.c +++ /dev/null @@ -1,526 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ - -/************************************************************************ -** Pragmas -*************************************************************************/ - -/************************************************************************ -** Includes -*************************************************************************/ - -#include "to_custom_udp.h" -#include "to_platform_cfg.h" -#include -#include -#include "to_events.h" -#include -#include -#include - -/************************************************************************ -** Local Defines -*************************************************************************/ -#define TO_CUSTOM_CHANNEL_GET_TIMEOUT (500) /* msec */ - - -/************************************************************************ -** Local Function Definitions -*************************************************************************/ - - - -TO_AppCustomData_t TO_AppCustomData; - -TO_EnableChannelCmd_t TO_EnableChannelCmd_S; -TO_DisableChannelCmd_t TO_DisableChannelCmd_S; - -extern TO_ChannelTbl_t TO_BackupConfigTbl; - - -uint8 TO_OutputChannel_Status(uint32 Index) -{ - /* Use Index, instead of index, because vxworks-6.9/target/h/string.h:100 - * has a global named "index". */ - return TO_AppCustomData.Channel[Index].Mode; -} - - - -/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ -/* */ -/* Custom Initialize All. Nothing to do here. */ -/* */ -/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ -int32 TO_Custom_Init(void) -{ - int32 iStatus = 0; - uint32 i = 0; - - /* - * UDP development interface - */ - TO_AppCustomData.Channel[0].Mode = TO_CHANNEL_ENABLED; - strncpy(TO_AppCustomData.Channel[0].IP, TO_UDP_CHANNEL_ADDRESS, INET_ADDRSTRLEN); - TO_AppCustomData.Channel[0].DstPort = TO_UDP_CHANNEL_PORT; - TO_AppCustomData.Channel[0].Priority = TO_UDP_CHANNEL_TASK_PRIORITY; - TO_AppCustomData.Channel[0].ListenerTask = TO_OutputChannel_UDPChannelTask; - TO_AppCustomData.Channel[0].Socket = 0; - TO_AppCustomData.Channel[0].ChildTaskID = 0; - - /* Ground dev interface is optional */ - iStatus = TO_Channel_OpenChannel( - 0, - TO_UDP_CHANNEL_NAME, - TO_UDP_CONFIG_TABLENAME, - TO_UDP_CONFIG_TABLE_FILENAME, - &TO_BackupConfigTbl, - TO_UDP_DUMP_TABLENAME, - 1, - TO_UDP_CF_THROTTLE_SEM_NAME); - - for (i=0; i < TO_MAX_CHANNELS; i++) - { - if(TO_OutputChannel_Status(i) == TO_CHANNEL_ENABLED) - { - if(TO_OutputChannel_Enable(i, TO_AppCustomData.Channel[i].IP, TO_AppCustomData.Channel[i].DstPort)) - { - TO_AppCustomData.Channel[i].Mode = TO_CHANNEL_DISABLED; - } - else - { - CFE_EVS_SendEvent(TO_TLMOUTENA_INF_EID, CFE_EVS_INFORMATION, - "UDP telemetry output enabled channel %u to %s:%u", - (unsigned int)i, TO_AppCustomData.Channel[i].IP, - (unsigned int)TO_AppCustomData.Channel[i].DstPort); - } - } - } - - return iStatus; -} - - - -/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ -/* */ -/* Custom Send. Send the message out the socket. */ -/* */ -/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ -int32 TO_OutputChannel_Send(uint32 ChannelID, const char* Buffer, uint32 Size) -{ - struct sockaddr_in s_addr; - int status = 0; - int32 returnCode = 0; - - bzero((char *) &s_addr, sizeof(s_addr)); - s_addr.sin_family = AF_INET; - - if((Size > 0) && (ChannelID < TO_MAX_CHANNELS)) - { - TO_TlmChannels_t *channel = &TO_AppCustomData.Channel[ChannelID]; - - if(channel->Mode == TO_CHANNEL_ENABLED) - { - CFE_ES_PerfLogEntry(TO_SOCKET_SEND_PERF_ID); - /* Send message via UDP socket */ - s_addr.sin_addr.s_addr = inet_addr(channel->IP); - s_addr.sin_port = htons(channel->DstPort); - status = sendto(channel->Socket, (char *)Buffer, Size, 0, - (struct sockaddr *) &s_addr, - sizeof(s_addr)); - if (status < 0) - { - CFE_EVS_SendEvent(TO_TLMOUTSTOP_ERR_EID,CFE_EVS_ERROR, - "L%d TO sendto errno %d.", __LINE__, errno); - channel->Mode = TO_CHANNEL_DISABLED; - returnCode = -1; - } - CFE_ES_PerfLogExit(TO_SOCKET_SEND_PERF_ID); - } - } - - return returnCode; -} - - - -/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ -/* */ -/* Custom Cleanup All. Disable all the enable channels so we */ -/* don't try sending messages when the sealed framework is torn */ -/* down. */ -/* */ -/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ -void TO_OutputChannel_CustomCleanupAll(void) -{ - uint32 i = 0; - - for (i=0; i < TO_MAX_CHANNELS; i++) - { - if(TO_OutputChannel_Status(i) == TO_CHANNEL_ENABLED) - { - TO_OutputChannel_Disable(i); - } - } -} - - - -/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ -/* */ -/* Custom Buildup All. Enable all the 'enabled' channels. If it */ -/* fails, disable it. */ -/* */ -/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ -int32 TO_OutputChannel_CustomBuildupAll(uint32 index) -{ - return 0; -} - - - -/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ -/* */ -/* Custom Teardown All. Nothing to do here. */ -/* */ -/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ -int32 TO_OutputChannel_CustomTeardown(uint32 index) -{ - return 0; -} - - - -/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ -/* */ -/* Process New Custom Commands. Raise an error event if the */ -/* command is unknown. */ -/* */ -/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ -void TO_OutputChannel_ProcessNewCustomCmds(CFE_SB_Msg_t* MsgPtr) -{ - uint32 uiCmdCode=0; - - if (MsgPtr != NULL) - { - uint16 inSize = CFE_SB_GetTotalMsgLength(MsgPtr); - uiCmdCode = CFE_SB_GetCmdCode(MsgPtr); - - OS_MutSemTake(TO_AppData.MutexID); - switch (uiCmdCode) - { - case TO_ENABLE_CHANNEL_CC: - { - TO_EnableChannelCmd_t *cmd = (TO_EnableChannelCmd_t*) MsgPtr; - /* Validate arguments. */ - if(inSize != sizeof(TO_EnableChannelCmd_t)) - { - TO_AppData.HkTlm.usCmdErrCnt++; - (void) CFE_EVS_SendEvent(TO_MSG_LEN_ERR_EID, CFE_EVS_ERROR, - "Invalid message length. Received %u. Expected %u.", - (unsigned int)inSize, sizeof(TO_EnableChannelCmd_t)); - break; - } - - if(TO_OutputChannel_Enable(cmd->ChannelID, cmd->DestinationAddress, cmd->DestinationPort)) - { - TO_AppData.HkTlm.usCmdErrCnt++; - break; - } - - TO_AppData.HkTlm.usCmdCnt++; - (void) CFE_EVS_SendEvent(TO_TLMOUTENA_INF_EID, CFE_EVS_INFORMATION, - "Enabled channel %u to %s:%u.", - cmd->ChannelID, - cmd->DestinationAddress, - cmd->DestinationPort); - break; - } - - case TO_DISABLE_CHANNEL_CC: - { - TO_DisableChannelCmd_t *cmd = (TO_DisableChannelCmd_t*) MsgPtr; - /* Validate arguments. */ - if(inSize != sizeof(TO_DisableChannelCmd_t)) - { - TO_AppData.HkTlm.usCmdErrCnt++; - (void) CFE_EVS_SendEvent(TO_MSG_LEN_ERR_EID, CFE_EVS_ERROR, - "Invalid message length. Received %u. Expected %u.", - (unsigned int)inSize, sizeof(TO_DisableChannelCmd_t)); - break; - } - - if(TO_OutputChannel_Disable(cmd->ChannelID)) - { - TO_AppData.HkTlm.usCmdErrCnt++; - break; - } - - TO_AppData.HkTlm.usCmdCnt++; - break; - } - - default: - TO_AppData.HkTlm.usCmdErrCnt++; - (void) CFE_EVS_SendEvent(TO_CC_ERR_EID, CFE_EVS_ERROR, - "Recvd invalid cmdId (%u)", (unsigned int)uiCmdCode); - break; - } - OS_MutSemGive(TO_AppData.MutexID); - } -} - - - -/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ -/* */ -/* Enable Channel. This will bind the socket for transmission. */ -/* */ -/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ -int32 TO_OutputChannel_Enable(uint32 ChannelID, const char *DestinationAddress, uint16 DestinationPort) -{ - int32 returnCode = 0; - uint32 i = 0; - struct sockaddr_in servaddr; - int status; - int reuseaddr=1; - - if(DestinationAddress == 0) - { - CFE_EVS_SendEvent(TO_TLMOUTENA_ERR_EID, CFE_EVS_ERROR, - "Destination address for channel %u is null.", (unsigned int)i); - returnCode = -1; - goto end_of_function; - } - - if(ChannelID >= TO_MAX_CHANNELS) - { - CFE_EVS_SendEvent(TO_TLMOUTENA_ERR_EID, CFE_EVS_ERROR, - "ChannelID (%u) invalid.", (unsigned int)ChannelID); - returnCode = -1; - goto end_of_function; - } - - if((TO_AppCustomData.Channel[ChannelID].Socket = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP)) < 0) - { - TO_AppCustomData.Channel[ChannelID].Mode = TO_CHANNEL_DISABLED; - CFE_EVS_SendEvent(TO_TLMOUTSOCKET_ERR_EID, CFE_EVS_ERROR, - "TLM socket errno: %i on channel %u", errno, (unsigned int)ChannelID); - returnCode = -1; - goto end_of_function; - } - - /* Set the Reuse Address flag. If we don't set this flag, the socket will - * lock the port on termination and the kernel won't unlock it until it - * times out after a minute or so. - */ - setsockopt(TO_AppCustomData.Channel[i].Socket, SOL_SOCKET, SO_REUSEADDR, &reuseaddr, sizeof(reuseaddr)); - strncpy(TO_AppCustomData.Channel[ChannelID].IP, DestinationAddress, sizeof(TO_AppCustomData.Channel[ChannelID].IP)); - TO_AppCustomData.Channel[ChannelID].DstPort = DestinationPort; - - /* Set the input arguments to the socket bind. - */ - bzero((void*)&servaddr,sizeof(servaddr)); - servaddr.sin_family = AF_INET; - servaddr.sin_addr.s_addr = htonl(INADDR_ANY); - servaddr.sin_port=0; - status = bind(TO_AppCustomData.Channel[ChannelID].Socket, - (struct sockaddr *)&servaddr,sizeof(servaddr)); - if(status < 0) - { - CFE_EVS_SendEvent(TO_TLMOUTSOCKET_ERR_EID, CFE_EVS_ERROR, - "TLM bind errno: %i on channel %u", errno, (unsigned int)i); - TO_AppCustomData.Channel[ChannelID].Mode = TO_CHANNEL_DISABLED; - returnCode = -1; - goto end_of_function; - } - - /* Enable the channel for transmission. */ - TO_AppCustomData.Channel[ChannelID].Mode = TO_CHANNEL_ENABLED; - - /* Create the child listener task. */ - char TaskName[OS_MAX_API_NAME]; - snprintf(TaskName, OS_MAX_API_NAME, "TO_OUTCH_%u", (unsigned int)ChannelID); - returnCode = CFE_ES_CreateChildTask( - &TO_AppCustomData.Channel[ChannelID].ChildTaskID, - (const char *)TaskName, - TO_AppCustomData.Channel[ChannelID].ListenerTask, - 0, - TO_CUSTOM_TASK_STACK_SIZE, - TO_AppCustomData.Channel[ChannelID].Priority, - TO_CUSTOM_CHILD_TASK_FLAGS); - -end_of_function: - return returnCode; -} - - - -/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ -/* */ -/* Disable channel. Close the socket. */ -/* */ -/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ -int32 TO_OutputChannel_Disable(uint32 ChannelID) -{ - int32 returnCode = 0; - uint32 i = 0; - - if(TO_AppCustomData.Channel[ChannelID].Mode != TO_CHANNEL_ENABLED) - { - CFE_EVS_SendEvent(TO_TLMOUTDIS_ERR_EID, CFE_EVS_ERROR, - "UDP telemetry for channel %u is not enabled.", (unsigned int)i); - returnCode = -1; - goto end_of_function; - } - - /* Disable the channel before we close the socket so if the handler - * task is in the loop it will know the reason why the send - * function failed is because the channel is disabled. - */ - TO_AppCustomData.Channel[ChannelID].Mode = TO_CHANNEL_DISABLED; - close(TO_AppCustomData.Channel[ChannelID].Socket); - TO_AppCustomData.Channel[ChannelID].Socket = 0; - - CFE_EVS_SendEvent(TO_TLMOUTDIS_INF_EID, CFE_EVS_INFORMATION, - "Disabled channel %u.", - (unsigned int)ChannelID); - -end_of_function: - return returnCode; -} - - - -/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ -/* */ -/* The UDP Development Channel Task Entry Point */ -/* */ -/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ -void TO_OutputChannel_UDPChannelTask(void) -{ - CFE_ES_RegisterChildTask(); - - TO_OutputChannel_ChannelHandler(0); - - CFE_ES_ExitChildTask(); -} - - - -/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ -/* */ -/* Channel Handler */ -/* */ -/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ -void TO_OutputChannel_ChannelHandler(uint32 ChannelIdx) -{ - int32 iStatus = CFE_SUCCESS; - uint32 msgSize = 0; - char *buffer; - - while(TO_OutputChannel_Status(ChannelIdx) == TO_CHANNEL_ENABLED) - { - if(TO_Channel_State(ChannelIdx) == TO_CHANNEL_OPENED) - { - TO_OutputQueue_t *chQueue = &TO_AppData.ChannelData[ChannelIdx].OutputQueue; - - iStatus = OS_QueueGet( - chQueue->OSALQueueID, - &buffer, sizeof(buffer), &msgSize, TO_CUSTOM_CHANNEL_GET_TIMEOUT); - - if(iStatus == OS_SUCCESS) - { - struct sockaddr_in s_addr; - uint16 actualMessageSize = CFE_SB_GetTotalMsgLength((CFE_SB_MsgPtr_t)buffer); - - bzero((char *) &s_addr, sizeof(s_addr)); - s_addr.sin_family = AF_INET; - - int32 sendResult = TO_OutputChannel_Send(ChannelIdx, (const char*)buffer, actualMessageSize); - - if (sendResult != 0) - { - TO_OutputChannel_Disable(ChannelIdx); - } - - iStatus = CFE_ES_PutPoolBuf(TO_AppData.ChannelData[ChannelIdx].MemPoolHandle, (uint32 *)buffer); - if(iStatus < 0) - { - (void) CFE_EVS_SendEvent(TO_PUT_POOL_ERR_EID, CFE_EVS_ERROR, - "PutPoolBuf: error=0x%08lx", - (unsigned long)iStatus); - } - else - { - OS_MutSemTake(TO_AppData.MutexID); - TO_AppData.ChannelData[ChannelIdx].MemInUse -= iStatus; - OS_MutSemGive(TO_AppData.MutexID); - - TO_Channel_LockByIndex(ChannelIdx); - chQueue->CurrentlyQueuedCnt--; - chQueue->SentCount++; - TO_Channel_UnlockByIndex(ChannelIdx); - } - - } - else if(iStatus == OS_QUEUE_TIMEOUT) - { - /* Do nothing. Just loop back around and check the guard. */ - } - else - { - CFE_EVS_SendEvent(TO_OSQUEUE_GET_ERROR_EID, CFE_EVS_ERROR, - "Listener failed to pop message from queue. (%i).", (int)iStatus); - OS_MutSemTake(TO_AppData.MutexID); - TO_AppData.ChannelData[ChannelIdx].State = TO_CHANNEL_CLOSED; - OS_MutSemGive(TO_AppData.MutexID); - } - } - } -} - - - -int32 TO_Custom_InitEvent(int32 *ind) -{ - return 0; -} - - - -void TO_PrintCustomVersion(void) -{ - -} diff --git a/config/ocpoc/s1000/target/apps/to/to_custom_udp.h b/config/ocpoc/s1000/target/apps/to/to_custom_udp.h deleted file mode 100644 index 224ecae5c..000000000 --- a/config/ocpoc/s1000/target/apps/to/to_custom_udp.h +++ /dev/null @@ -1,141 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ - -#ifndef TO_CUSTOM_UDP_H -#define TO_CUSTOM_UDP_H - -/************************************************************************ -** Includes -*************************************************************************/ -#include "to_app.h" -#include "to_custom.h" -#include - -/************************************************************************ -** Local Defines -*************************************************************************/ -#define TO_CUSTOM_RETURN_CODE_NULL_POINTER (-1) -#define TO_CUSTOM_RETURN_CODE_MESSAGE_TOO_BIG (-2) - -/* TODO: Add Doxygen markup. */ -#define TO_ENABLE_CHANNEL_CC (10) -#define TO_DISABLE_CHANNEL_CC (11) - -/************************************************************************ -** Local Structure Declarations -*************************************************************************/ -typedef struct -{ - uint8 ucCmdHeader[CFE_SB_CMD_HDR_SIZE]; - uint8 ChannelID; - char DestinationAddress[INET_ADDRSTRLEN]; - uint16 DestinationPort; -} TO_EnableChannelCmd_t; - -typedef struct -{ - uint8 ucCmdHeader[CFE_SB_CMD_HDR_SIZE]; - uint8 ChannelID; -} TO_DisableChannelCmd_t; - -typedef enum { - /* TODO: Add Doxygen markup. */ - TO_TLMOUTSOCKET_ERR_EID = TO_EVT_CNT, - TO_TLMOUTENA_INF_EID, - TO_TLMOUTENA_ERR_EID, - TO_TLMOUTDIS_INF_EID, - TO_TLMOUTDIS_ERR_EID, - TO_TLMOUTSEND_ERR_EID, - TO_TLMOUTSTOP_ERR_EID, - TO_CUSTOM_EVT_CNT -} TO_CustomEventIds_t; - -typedef enum -{ - TO_CHANNEL_UNUSED = 0, - TO_CHANNEL_DISABLED = 1, - TO_CHANNEL_ENABLED = 2 -} TO_TLM_ChannelMode_t; - -typedef struct -{ - TO_TLM_ChannelMode_t Mode; - char IP[INET_ADDRSTRLEN]; - uint16 DstPort; - uint8 Priority; - CFE_ES_ChildTaskMainFuncPtr_t ListenerTask; - int Socket; - uint32 ChildTaskID; - uint32 TaskFlags; -} TO_TlmChannels_t; - -typedef struct -{ - TO_TlmChannels_t Channel[TO_MAX_CHANNELS]; -} TO_AppCustomData_t; - -/************************************************************************ -** External Global Variables -*************************************************************************/ - -extern TO_AppData_t TO_AppData; - -/************************************************************************ -** Local Function Definitions -*************************************************************************/ - -/** - * The routine to send a buffer out the channel. This routine - * abstracts the formatting and output of different channels. - */ -int32 TO_OutputChannel_Send(uint32 ChannelID, const char* Buffer, uint32 Size); - -int32 TO_OutputChannel_Enable(uint32 ChannelID, const char *DestinationAddress, uint16 DestinationPort); -int32 TO_OutputChannel_Disable(uint32 ChannelID); - -/** - * The UDP Development Channel Task Entry Point - */ -void TO_OutputChannel_UDPChannelTask(void); - -/** - * The child task routine for a pulling from the output queue and sending - * out the channel. - */ -void TO_OutputChannel_ChannelHandler(uint32 ChannelIndex); - -int32 TO_OutputChannel_CustomBuildupAll(uint32 index); -int32 TO_OutputChannel_CustomTeardownAll(uint32 index); - - -#endif diff --git a/config/ocpoc/s1000/target/apps/to/unit_test/to_app_custom_test.c b/config/ocpoc/s1000/target/apps/to/unit_test/to_app_custom_test.c deleted file mode 100644 index beec9f79b..000000000 --- a/config/ocpoc/s1000/target/apps/to/unit_test/to_app_custom_test.c +++ /dev/null @@ -1,985 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ - -#include "to_app_custom_test.h" -#include "to_custom_test_utils.h" -#include "to_platform_stubs.h" - -#include "uttest.h" -#include "ut_osapi_stubs.h" -#include "ut_cfe_sb_stubs.h" -#include "ut_cfe_sb_hooks.h" -#include "ut_cfe_es_stubs.h" -#include "ut_cfe_es_hooks.h" -#include "ut_cfe_evs_stubs.h" -#include "ut_cfe_evs_hooks.h" -#include "ut_cfe_time_stubs.h" -#include "ut_cfe_psp_memutils_stubs.h" -#include "ut_cfe_tbl_stubs.h" -#include "ut_cfe_fs_stubs.h" -#include "ut_cfe_time_stubs.h" -#include "to_custom.h" - - -/************************************************************************** - * Tests for TO_Custom_Init() - **************************************************************************/ -/** - * Test TO_Custom_Init() fail TO_Channel_OpenChannel() - */ -void TO_Custom_Init_OpenChannelFail(void) -{ - int32 result = 0; - int32 expected = 1; - - TO_App_Return.TO_Channel_OpenChannel_Return = 1; - - /* Execute the function being tested */ - result = TO_Custom_Init(); - - /* Verify results */ - UtAssert_True (result == expected, - "TO_Custom_Init() did not return an expected value"); -} - - -/** - * Test TO_Custom_Init() fail TO_OutputChannel_Enable() - */ -void TO_Custom_Init_EnableChannelFail(void) -{ - int32 result = -1; - int32 expected = 0; - uint8 ChannelID = 0; - - /* Set channel 0 to enabled */ - TO_AppCustomData.Channel[ChannelID].Mode = TO_CHANNEL_ENABLED; - - /* Set socket call in TO_OutputChannel_Enable to fail */ - TO_Platform_Stubs_Returns.TO_Wrap_Socket_Return = -1; - - /* Execute the function being tested */ - result = TO_Custom_Init(); - - /* Verify results */ - UtAssert_True (result == expected, - "TO_Custom_Init() did not return an expected value"); - UtAssert_True(TO_AppCustomData.Channel[ChannelID].Mode == TO_CHANNEL_DISABLED, - "TO_Custom_Init() did not set correct mode"); -} - - -/** - * Test TO_Custom_Init() nothing enabled - */ -void TO_Custom_Init_NothingEnabled(void) -{ - int32 result = -1; - int32 expected = 0; - - /* Execute the function being tested */ - result = TO_Custom_Init(); - - /* Verify results */ - UtAssert_True (result == expected, - "TO_Custom_Init() did not return an expected value"); -} - - -/** - * Test TO_Custom_Init() nominal - */ -void TO_Custom_Init_Nominal(void) -{ - int32 result = -1; - int32 expected = 0; - uint8 ChannelID = 0; - uint16 testPort = TO_UDP_CHANNEL_PORT; - char *testIP = TO_UDP_CHANNEL_ADDRESS; - - char returnString[128]; - snprintf(returnString, 128, "UDP telemetry output enabled channel %u to %s:%u", - ChannelID, testIP, testPort); - - /* Execute the function being tested */ - result = TO_Custom_Init(); - - /* Verify results */ - UtAssert_True (result == expected, - "TO_Custom_Init() did not return an expected value"); - UtAssert_True(TO_AppCustomData.Channel[ChannelID].Mode == TO_CHANNEL_ENABLED, - "TO_Custom_Init() did not set correct mode"); - //UtAssert_EventSent(TO_TLMOUTENA_INF_EID, CFE_EVS_INFORMATION, returnString, - // "TO_Custom_Init() failed to raise an event"); -} - - -/************************************************************************** - * Tests for TO_OutputChannel_CustomBuildupAll() - **************************************************************************/ -/** - * Test TO_OutputChannel_CustomBuildupAll() nominal - * NOTE: Function is not currently implemented. - */ -void Test_TO_OutputChannel_CustomBuildupAll_Nominal(void) -{ - int32 result = -1; - int32 expected = 0; - uint32 index = 0; - - /* Execute the function being tested */ - result = TO_OutputChannel_CustomBuildupAll(index); - - /* Verify results */ - UtAssert_True (result == expected, - "TO_OutputChannel_CustomBuildupAll() failed nominal"); -} - - -/************************************************************************** - * Tests for TO_OutputChannel_Enable() - **************************************************************************/ -/** - * Test TO_OutputChannel_Enable() null destination address - */ -void Test_TO_OutputChannel_Enable_NullDestinationAddress(void) -{ - int32 result = 0; - int32 expected = -1; - uint8 ChannelID = 0; - /* Null destination address */ - char *DestinationAddress = 0; - uint16 DestinationPort = 0; - - char returnString[128]; - snprintf(returnString, 128, "Destination address for channel %u is null.", 0); - - - /* Execute the function being tested */ - result = TO_OutputChannel_Enable(ChannelID, DestinationAddress, DestinationPort); - - /* Verify results */ - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); - UtAssert_True (result == expected, - "TO_OutputChannel_Enable() did not return the correct value"); - UtAssert_EventSent(TO_TLMOUTENA_ERR_EID, CFE_EVS_ERROR, returnString, - "TO_OutputChannel_Enable() failed to raise an event"); -} - - -/** - * Test TO_OutputChannel_Enable() invalid channel id - */ -void Test_TO_OutputChannel_Enable_InvalidID(void) -{ - int32 result = 0; - int32 expected = -1; - /* Set invalid channel ID */ - uint8 ChannelID = (TO_MAX_CHANNELS); - /* Set test destination address */ - char *DestinationAddress = "test"; - uint16 DestinationPort = 0; - - char returnString[128]; - snprintf(returnString, 128, "ChannelID (%u) invalid.", (TO_MAX_CHANNELS)); - - - /* Execute the function being tested */ - result = TO_OutputChannel_Enable(ChannelID, DestinationAddress, DestinationPort); - - /* Verify results */ - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); - UtAssert_True (result == expected, - "TO_OutputChannel_Enable() did not return the correct value"); - UtAssert_EventSent(TO_TLMOUTENA_ERR_EID, CFE_EVS_ERROR, returnString, - "TO_OutputChannel_Enable() failed to raise an event"); -} - - -/** - * Test TO_OutputChannel_Enable() fail socket creation - */ -void Test_TO_OutputChannel_Enable_SocketFail(void) -{ - int32 result = 0; - int32 expected = -1; - int32 expectedErrno = 5; - uint8 ChannelID = 0; - /* Set test destination address */ - char *DestinationAddress = "test"; - uint16 DestinationPort = 0; - - char returnString[128]; - snprintf(returnString, 128, "TLM socket errno: %i on channel %u", expectedErrno, ChannelID); - - /* Set socket call to fail */ - TO_Platform_Stubs_Returns.TO_Wrap_Socket_Return = -1; - - /* Set errno for socket call */ - TO_Platform_Stubs_Returns.TO_Wrap_Socket_Errno = 1; - TO_Platform_Stubs_Returns.TO_Wrap_Socket_Errno_Value = expectedErrno; - - /* Execute the function being tested */ - result = TO_OutputChannel_Enable(ChannelID, DestinationAddress, DestinationPort); - - /* Verify results */ - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); - UtAssert_True (result == expected, - "TO_OutputChannel_Enable() did not return the correct value"); - UtAssert_True(TO_AppCustomData.Channel[ChannelID].Socket == -1, - "TO_OutputChannel_Enable() failed to return an error"); - UtAssert_True(TO_AppCustomData.Channel[ChannelID].Mode == TO_CHANNEL_DISABLED, - "TO_OutputChannel_Enable() did not set correct mode"); - UtAssert_EventSent(TO_TLMOUTSOCKET_ERR_EID, CFE_EVS_ERROR, returnString, - "TO_OutputChannel_Enable() failed to raise an event"); -} - - -/** - * Test TO_OutputChannel_Enable() fail bind - */ -void Test_TO_OutputChannel_Enable_BindFail(void) -{ - int32 result = 0; - int32 expected = -1; - int32 expectedErrno = 5; - uint8 ChannelID = 0; - /* Set test destination address */ - char *DestinationAddress = "test"; - uint16 DestinationPort = 0; - - char returnString[128]; - snprintf(returnString, 128, "TLM bind errno: %i on channel %u", expectedErrno, ChannelID); - - /* Set socket call to pass */ - TO_Platform_Stubs_Returns.TO_Wrap_Socket_Return = 1; - - /* Set bind call to fail */ - TO_Platform_Stubs_Returns.TO_Wrap_Bind_Return = -1; - - /* Set errno for bind call */ - TO_Platform_Stubs_Returns.TO_Wrap_Bind_Errno = 1; - TO_Platform_Stubs_Returns.TO_Wrap_Bind_Errno_Value = expectedErrno; - - /* Execute the function being tested */ - result = TO_OutputChannel_Enable(ChannelID, DestinationAddress, DestinationPort); - - /* Verify results */ - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); - UtAssert_True (result == expected, - "TO_OutputChannel_Enable() did not return the correct value"); - UtAssert_True(TO_AppCustomData.Channel[ChannelID].Mode == TO_CHANNEL_DISABLED, - "TO_OutputChannel_Enable() did not set correct mode"); - UtAssert_EventSent(TO_TLMOUTSOCKET_ERR_EID, CFE_EVS_ERROR, returnString, - "TO_OutputChannel_Enable() failed to raise an event"); -} - - -/** - * Test TO_OutputChannel_Enable() fail create child task - */ -void Test_TO_OutputChannel_Enable_CreateChildTaskFail(void) -{ - int32 result = 0; - int32 expected = -1; - uint8 ChannelID = 0; - /* Set test destination address */ - char *DestinationAddress = "test"; - uint16 DestinationPort = 0; - - /* Set create child task to fail */ - Ut_CFE_ES_SetReturnCode(UT_CFE_ES_CREATECHILDTASK_INDEX, -1, 1); - - /* Set socket call to pass */ - TO_Platform_Stubs_Returns.TO_Wrap_Socket_Return = 1; - - /* Execute the function being tested */ - result = TO_OutputChannel_Enable(ChannelID, DestinationAddress, DestinationPort); - - /* Verify results */ - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==0,"Event Count = 0"); - UtAssert_True (result == expected, - "TO_OutputChannel_Enable() did not return the correct value"); - UtAssert_True(TO_AppCustomData.Channel[ChannelID].Mode == TO_CHANNEL_ENABLED, - "TO_OutputChannel_Enable() did not set correct mode"); -} - - -/** - * Test TO_OutputChannel_Enable() nominal - */ -void Test_TO_OutputChannel_Enable_Nominal(void) -{ - int32 result = -1; - int32 expected = CFE_SUCCESS; - uint8 ChannelID = 0; - /* Set test destination address */ - char *DestinationAddress = "test"; - uint16 DestinationPort = 0; - - /* Set create child task to return success */ - Ut_CFE_ES_SetReturnCode(UT_CFE_ES_CREATECHILDTASK_INDEX, CFE_SUCCESS, 1); - - /* Set socket call to pass */ - TO_Platform_Stubs_Returns.TO_Wrap_Socket_Return = 1; - - /* Execute the function being tested */ - result = TO_OutputChannel_Enable(ChannelID, DestinationAddress, DestinationPort); - - /* Verify results */ - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==0,"Event Count = 0"); - UtAssert_True (result == expected, - "TO_OutputChannel_Enable() did not return the correct value"); - UtAssert_True(TO_AppCustomData.Channel[ChannelID].Mode == TO_CHANNEL_ENABLED, - "TO_OutputChannel_Enable() did not set correct mode"); -} - - -/************************************************************************** - * Tests for TO_OutputChannel_Send() - **************************************************************************/ -/** - * Test TO_OutputChannel_Send() invalid channel id - */ -void Test_TO_OutputChannel_Send_InvalidID(void) -{ - int32 result = -1; - int32 expected = 0; - uint8 ChannelID = (TO_MAX_CHANNELS); - char *testBuffer = "test"; - - /* Execute the function being tested */ - result = TO_OutputChannel_Send(ChannelID, testBuffer, sizeof(testBuffer)); - - /* Verify results */ - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==0,"Event Count = 0"); - UtAssert_True (result == expected, - "TO_OutputChannel_Enable() did not return the correct value"); -} - - -/** - * Test TO_OutputChannel_Send() sendto fail - */ -void Test_TO_OutputChannel_Send_SendToFail(void) -{ - int32 result = 0; - int32 expected = -1; - uint8 ChannelID = 0; - char *testBuffer = "test"; - - /* Set test channel to enabled */ - TO_AppCustomData.Channel[ChannelID].Mode = TO_CHANNEL_ENABLED; - - /* Set sendto call to fail */ - TO_Platform_Stubs_Returns.TO_Wrap_SendTo_Return = -1; - /* Set errno for sendto call */ - TO_Platform_Stubs_Returns.TO_Wrap_SendTo_Errno = 1; - TO_Platform_Stubs_Returns.TO_Wrap_SendTo_Errno_Value = 8; - - /* Call the function under test */ - result = TO_OutputChannel_Send(ChannelID, testBuffer, sizeof(testBuffer)); - - /* Verify results */ - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); - UtAssert_True(TO_AppCustomData.Channel[ChannelID].Mode == TO_CHANNEL_DISABLED, - "TO_OutputChannel_Send() did not set mode to disabled"); - UtAssert_True(result == expected, - "TO_OutputChannel_Send() did not return the correct value"); - UtAssert_EventSent(TO_TLMOUTSTOP_ERR_EID, CFE_EVS_ERROR, "", - "TO_OutputChannel_Send() failed to raise an event"); -} - - -/** - * Test TO_OutputChannel_Send() sendto fail message too long - */ -void Test_TO_OutputChannel_Send_SendToTooLong(void) -{ - int32 result = 0; - int32 expected = -1; - uint8 ChannelID = 0; - char *testBuffer = "test"; - - /* Set test channel to enabled */ - TO_AppCustomData.Channel[ChannelID].Mode = TO_CHANNEL_ENABLED; - - /* Set sendto call to fail */ - TO_Platform_Stubs_Returns.TO_Wrap_SendTo_Return = -1; - /* Set errno for sendto call */ - TO_Platform_Stubs_Returns.TO_Wrap_SendTo_Errno = 1; - /* Set errno message too long */ - TO_Platform_Stubs_Returns.TO_Wrap_SendTo_Errno_Value = 90; - - /* Call the function under test */ - result = TO_OutputChannel_Send(ChannelID, testBuffer, sizeof(testBuffer)); - - /* Verify results */ - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); - UtAssert_True(result == expected, - "TO_OutputChannel_Send() did not return the correct value"); - UtAssert_EventSent(TO_TLMOUTSTOP_ERR_EID, CFE_EVS_ERROR, "", - "TO_OutputChannel_Send() failed to raise an event"); -} - - -/** - * Test TO_OutputChannel_Send() nominal - */ -void Test_TO_OutputChannel_Send_Nominal(void) -{ - int32 result = -1; - int32 expected = 0; - uint8 ChannelID = 0; - char *testBuffer = "test"; - - /* Set test channel to enabled */ - TO_AppCustomData.Channel[ChannelID].Mode = TO_CHANNEL_ENABLED; - - /* Call the function under test */ - result = TO_OutputChannel_Send(ChannelID, testBuffer, sizeof(testBuffer)); - - UtAssert_True(result == expected, - "TO_OutputChannel_Send() did not return the correct value"); -} - - - /************************************************************************** - * Tests for TO_OutputChannel_ChannelHandler() - **************************************************************************/ -/** - * Test TO_OutputChannel_ChannelHandler() fail OS_QueueGet - */ -void TO_OutputChannel_ChannelHandle_QueueGetFail(void) -{ - uint8 ChannelID = 0; - - /* Set test channel to enabled */ - TO_AppCustomData.Channel[ChannelID].Mode = TO_CHANNEL_ENABLED; - - /* Set all status returns after the first call to disabled - * NOTE: calls to TO_Channel_State sets the channel mode to - * TO_CHANNEL_DISABLED disabled after the first call - */ - TO_App_Return.TO_Channel_State_Return = TO_CHANNEL_OPENED; - TO_App_Return.TO_Channel_State_Return1 = TO_CHANNEL_CLOSED; - - /* Set OS_QueueGet to fail with OS_ERROR */ - Ut_OSAPI_SetReturnCode(UT_OSAPI_QUEUEGET_INDEX, OS_ERROR, 1); - - /* Call the function under test */ - TO_OutputChannel_ChannelHandler(ChannelID); - - /* Verify results */ - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); - UtAssert_EventSent(TO_OSQUEUE_GET_ERROR_EID, CFE_EVS_ERROR, "", - "TO_OutputChannel_Send() failed to raise an event"); -} - - -/** - * Test TO_OutputChannel_ChannelHandler() fail sendto - */ -void TO_OutputChannel_ChannelHandle_SendToFail(void) -{ - uint8 ChannelID = 0; - - /* Set test channel to enabled */ - TO_AppCustomData.Channel[ChannelID].Mode = TO_CHANNEL_ENABLED; - - /* Set sendto call to fail */ - TO_Platform_Stubs_Returns.TO_Wrap_SendTo_Return = -1; - - /* Set all status returns after the first call to disabled - * NOTE: calls to TO_Channel_State sets the channel mode to - * TO_CHANNEL_DISABLED disabled after the first call - */ - TO_App_Return.TO_Channel_State_Return = TO_CHANNEL_OPENED; - TO_App_Return.TO_Channel_State_Return1 = TO_CHANNEL_CLOSED; - - /* Call the function under test */ - TO_OutputChannel_ChannelHandler(ChannelID); - - /* Verify results */ - /* Events sendto error and disable channel info message */ - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==2,"Event Count = 2"); - UtAssert_EventSent(TO_TLMOUTSTOP_ERR_EID, CFE_EVS_ERROR, "", - "TO_OutputChannel_Send() failed to raise an event"); - UtAssert_EventSent(TO_CMD_INF_EID, CFE_EVS_INFORMATION, "", - "TO_OutputChannel_Send() failed to raise an event"); -} - - -/** - * Test TO_OutputChannel_ChannelHandler() fail CFE_ES_PutPoolBuf() - */ -void TO_OutputChannel_ChannelHandle_PutPoolBufFail(void) -{ - uint8 ChannelID = 0; - - /* Set CFE_ES_PutPoolBuf to fail */ - Ut_CFE_ES_SetReturnCode(UT_CFE_ES_PUTPOOLBUF_INDEX, -1, 1); - - /* Set test channel to enabled */ - TO_AppCustomData.Channel[ChannelID].Mode = TO_CHANNEL_ENABLED; - - /* Set all status returns after the first call to disabled - * NOTE: calls to TO_Channel_State sets the channel mode to - * TO_CHANNEL_DISABLED disabled after the first call - */ - TO_App_Return.TO_Channel_State_Return = TO_CHANNEL_OPENED; - TO_App_Return.TO_Channel_State_Return1 = TO_CHANNEL_CLOSED; - - /* Call the function under test */ - TO_OutputChannel_ChannelHandler(ChannelID); - - /* Verify results */ - /* Events sendto error and disable channel info message */ - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); - UtAssert_EventSent(TO_PUT_POOL_ERR_EID, CFE_EVS_ERROR, "", - "TO_OutputChannel_Send() failed to raise an event"); -} - -/** - * Test TO_OutputChannel_ChannelHandler() OS_QUEUE_TIMEOUT - */ -void TO_OutputChannel_ChannelHandle_OSQueueTimeout(void) -{ - uint8 ChannelID = 0; - - /* Set OS_QueueGet to fail with OS_QUEUE_TIMEOUT */ - Ut_OSAPI_SetReturnCode(UT_OSAPI_QUEUEGET_INDEX, OS_QUEUE_TIMEOUT, 1); - - /* Set test channel to enabled */ - TO_AppCustomData.Channel[ChannelID].Mode = TO_CHANNEL_ENABLED; - - /* Set all status returns after the first call to disabled - * NOTE: calls to TO_Channel_State sets the channel mode to - * TO_CHANNEL_DISABLED disabled after the first call - */ - TO_App_Return.TO_Channel_State_Return = TO_CHANNEL_OPENED; - TO_App_Return.TO_Channel_State_Return1 = TO_CHANNEL_CLOSED; - - /* Call the function under test */ - TO_OutputChannel_ChannelHandler(ChannelID); - - /* Verify results */ - /* Events sendto error and disable channel info message */ - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==0,"Event Count = 0"); -} - - - /************************************************************************** - * Tests for TO_OutputChannel_ProcessNewCustomCmds() - **************************************************************************/ -/** - * Test TO_OutputChannel_ProcessNewCustomCmds() invalid message length - * enable channel command code - */ -void TO_OutputChannel_ProcessNewCustomCmds_EnableInvalidMessageLength(void) -{ - /* Wrong type to create incorrect size condition */ - TO_DisableChannelCmd_t InMsg; - - CFE_SB_InitMsg(&InMsg, TO_CMD_MID, sizeof(InMsg), TRUE); - - CFE_SB_SetCmdCode((CFE_SB_MsgPtr_t)&InMsg, TO_ENABLE_CHANNEL_CC); - - /* Set get command code function hook */ - Ut_CFE_SB_SetFunctionHook(UT_CFE_SB_GETCMDCODE_INDEX, &Ut_CFE_SB_GetCmdCodeHook); - - /* Call the function under test */ - TO_OutputChannel_ProcessNewCustomCmds((CFE_SB_Msg_t*)&InMsg); - - /* Verify results */ - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); - UtAssert_True(TO_AppData.HkTlm.usCmdErrCnt == 1,"CmdErrCnt not incremented"); - UtAssert_EventSent(TO_MSG_LEN_ERR_EID, CFE_EVS_ERROR, "", - "TO_OutputChannel_ProcessNewCustomCmds() failed to raise an event"); -} - - -/** - * Test TO_OutputChannel_ProcessNewCustomCmds() invalid message length - * disable channel command code - */ -void TO_OutputChannel_ProcessNewCustomCmds_DisableInvalidMessageLength(void) -{ - /* Wrong type to create incorrect size condition */ - TO_EnableChannelCmd_t InMsg; - - CFE_SB_InitMsg(&InMsg, TO_CMD_MID, sizeof(InMsg), TRUE); - - CFE_SB_SetCmdCode((CFE_SB_MsgPtr_t)&InMsg, TO_DISABLE_CHANNEL_CC); - - /* Set get command code function hook */ - Ut_CFE_SB_SetFunctionHook(UT_CFE_SB_GETCMDCODE_INDEX, &Ut_CFE_SB_GetCmdCodeHook); - - /* Call the function under test */ - TO_OutputChannel_ProcessNewCustomCmds((CFE_SB_Msg_t*)&InMsg); - - /* Verify results */ - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); - UtAssert_True(TO_AppData.HkTlm.usCmdErrCnt == 1,"CmdErrCnt not incremented"); - UtAssert_EventSent(TO_MSG_LEN_ERR_EID, CFE_EVS_ERROR, "", - "TO_OutputChannel_ProcessNewCustomCmds() failed to raise an event"); -} - - -/** - * Test TO_OutputChannel_ProcessNewCustomCmds() invalid command code - */ -void TO_OutputChannel_ProcessNewCustomCmds_InvalidCommandCode(void) -{ - /* Create an invalid command code */ - uint8 InvalidCommandCode = 100; - - /* Wrong type to create incorrect size condition */ - TO_EnableChannelCmd_t InMsg; - - CFE_SB_InitMsg(&InMsg, TO_CMD_MID, sizeof(InMsg), TRUE); - - /* Set invalid command code */ - CFE_SB_SetCmdCode((CFE_SB_MsgPtr_t)&InMsg, InvalidCommandCode); - - /* Set get command code function hook */ - Ut_CFE_SB_SetFunctionHook(UT_CFE_SB_GETCMDCODE_INDEX, &Ut_CFE_SB_GetCmdCodeHook); - - /* Call the function under test */ - TO_OutputChannel_ProcessNewCustomCmds((CFE_SB_Msg_t*)&InMsg); - - /* Verify results */ - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); - UtAssert_True(TO_AppData.HkTlm.usCmdErrCnt == 1,"CmdErrCnt not incremented"); - UtAssert_EventSent(TO_CC_ERR_EID, CFE_EVS_ERROR, "", - "TO_OutputChannel_ProcessNewCustomCmds() failed to raise an event"); -} - - -/** - * Test TO_OutputChannel_ProcessNewCustomCmds() enable fail - */ -void TO_OutputChannel_ProcessNewCustomCmds_EnableFail(void) -{ - TO_EnableChannelCmd_t InMsg; - - CFE_SB_InitMsg(&InMsg, TO_CMD_MID, sizeof(InMsg), TRUE); - - /* Set command code */ - CFE_SB_SetCmdCode((CFE_SB_MsgPtr_t)&InMsg, TO_ENABLE_CHANNEL_CC); - - /* Set get command code function hook */ - Ut_CFE_SB_SetFunctionHook(UT_CFE_SB_GETCMDCODE_INDEX, &Ut_CFE_SB_GetCmdCodeHook); - - /* Set socket create to fail */ - TO_Platform_Stubs_Returns.TO_Wrap_Socket_Return = -1; - - /* Call the function under test */ - TO_OutputChannel_ProcessNewCustomCmds((CFE_SB_Msg_t*)&InMsg); - - /* Verify results */ - UtAssert_True(TO_AppData.HkTlm.usCmdErrCnt == 1,"CmdErrCnt not incremented"); - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); - UtAssert_EventSent(TO_TLMOUTSOCKET_ERR_EID, CFE_EVS_ERROR, "", - "TO_OutputChannel_Enable() failed to raise an event"); -} - - -/** - * Test TO_OutputChannel_ProcessNewCustomCmds() disable fail - */ -void TO_OutputChannel_ProcessNewCustomCmds_DisableFail(void) -{ - TO_DisableChannelCmd_t InMsg; - - CFE_SB_InitMsg(&InMsg, TO_CMD_MID, sizeof(InMsg), TRUE); - - /* Set command code */ - CFE_SB_SetCmdCode((CFE_SB_MsgPtr_t)&InMsg, TO_DISABLE_CHANNEL_CC); - - /* Set get command code function hook */ - Ut_CFE_SB_SetFunctionHook(UT_CFE_SB_GETCMDCODE_INDEX, &Ut_CFE_SB_GetCmdCodeHook); - - - /* Call the function under test */ - TO_OutputChannel_ProcessNewCustomCmds((CFE_SB_Msg_t*)&InMsg); - - /* Verify results */ - UtAssert_True(TO_AppData.HkTlm.usCmdErrCnt == 1,"CmdErrCnt not incremented"); - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); - UtAssert_EventSent(TO_TLMOUTDIS_ERR_EID, CFE_EVS_ERROR, "", - "TO_OutputChannel_Disable() failed to raise an event"); -} - - -/** - * Test TO_OutputChannel_ProcessNewCustomCmds() enable nominal - */ -void TO_OutputChannel_ProcessNewCustomCmds_EnableNominal(void) -{ - TO_EnableChannelCmd_t InMsg; - - CFE_SB_InitMsg(&InMsg, TO_CMD_MID, sizeof(InMsg), TRUE); - - /* Set command code */ - CFE_SB_SetCmdCode((CFE_SB_MsgPtr_t)&InMsg, TO_ENABLE_CHANNEL_CC); - - /* Set get command code function hook */ - Ut_CFE_SB_SetFunctionHook(UT_CFE_SB_GETCMDCODE_INDEX, &Ut_CFE_SB_GetCmdCodeHook); - - /* Call the function under test */ - TO_OutputChannel_ProcessNewCustomCmds((CFE_SB_Msg_t*)&InMsg); - - /* Verify results */ - UtAssert_True(TO_AppData.HkTlm.usCmdCnt == 1,"usCmdCnt not incremented"); - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); - UtAssert_EventSent(TO_TLMOUTENA_INF_EID, CFE_EVS_INFORMATION, "", - "TO_OutputChannel_Enable() failed to raise an event"); -} - - -/** - * Test TO_OutputChannel_ProcessNewCustomCmds() disable nominal - */ -void TO_OutputChannel_ProcessNewCustomCmds_DisableNominal(void) -{ - uint8 ChannelID = 0; - TO_DisableChannelCmd_t InMsg; - - /* Set to enabled for TO_OutputChannel_Disable can set to - * disabled - */ - TO_AppCustomData.Channel[ChannelID].Mode = TO_CHANNEL_ENABLED; - - CFE_SB_InitMsg(&InMsg, TO_CMD_MID, sizeof(InMsg), TRUE); - - /* Set command code */ - CFE_SB_SetCmdCode((CFE_SB_MsgPtr_t)&InMsg, TO_DISABLE_CHANNEL_CC); - - /* Set get command code function hook */ - Ut_CFE_SB_SetFunctionHook(UT_CFE_SB_GETCMDCODE_INDEX, &Ut_CFE_SB_GetCmdCodeHook); - - - /* Call the function under test */ - TO_OutputChannel_ProcessNewCustomCmds((CFE_SB_Msg_t*)&InMsg); - - /* Verify results */ - UtAssert_True(TO_AppData.HkTlm.usCmdCnt == 1,"usCmdCnt not incremented"); - UtAssert_True(TO_AppCustomData.Channel[ChannelID].Mode == TO_CHANNEL_DISABLED, - "TO_OutputChannel_Disable did not set correct mode"); - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); - UtAssert_EventSent(TO_TLMOUTDIS_INF_EID, CFE_EVS_INFORMATION, "", - "TO_OutputChannel_Disable() failed to raise an event"); -} - - /************************************************************************** - * Tests for TO_OutputChannel_UDPChannelTask() - **************************************************************************/ -/** - * Test TO_OutputChannel_UDPChannelTask() - * Note: currently there is no way to fail this function - */ -void TO_OutputChannel_UDPChannelTask_Nominal(void) -{ - TO_OutputChannel_UDPChannelTask(); -} - - - /************************************************************************** - * Tests for TO_OutputChannel_CustomCleanupAll() - **************************************************************************/ -/** - * Test TO_OutputChannel_CustomCleanupAll() nominal - * Note: currently there is no way to fail this function - */ -void TO_OutputChannel_CustomCleanupAll_Nominal(void) -{ - uint8 ChannelID = 0; - TO_AppCustomData.Channel[ChannelID].Mode = TO_CHANNEL_ENABLED; - - /* Call the function under test */ - TO_OutputChannel_CustomCleanupAll(); - - /* Verify results */ - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); - UtAssert_EventSent(TO_TLMOUTDIS_INF_EID, CFE_EVS_INFORMATION, "", - "TO_OutputChannel_Disable() failed to raise an event"); -} - - - /************************************************************************** - * Tests for TO_OutputChannel_Disable() - **************************************************************************/ - -/** - * Test TO_OutputChannel_Disable() nominal - */ -void TO_OutputChannel_Disable_Fail(void) -{ - int32 result = 0; - int32 expected = -1; - uint8 ChannelID = 0; - - /* Call the function under test */ - result = TO_OutputChannel_Disable(ChannelID); - - /* Verify results */ - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); - UtAssert_EventSent(TO_TLMOUTDIS_ERR_EID, CFE_EVS_ERROR, "", - "TO_OutputChannel_Disable() failed to raise an event"); - UtAssert_True(result == expected, - "TO_OutputChannel_Disable() did not return the correct value"); - -} - - -/** - * Test TO_OutputChannel_Disable() nominal - */ -void TO_OutputChannel_Disable_Nominal(void) -{ - int32 result = -1; - int32 expected = 0; - uint8 ChannelID = 0; - - TO_AppCustomData.Channel[ChannelID].Mode = TO_CHANNEL_ENABLED; - - /* Call the function under test */ - result = TO_OutputChannel_Disable(ChannelID); - - /* Verify results */ - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); - UtAssert_EventSent(TO_TLMOUTDIS_INF_EID, CFE_EVS_INFORMATION, "", - "TO_OutputChannel_Disable() failed to raise an event"); - UtAssert_True(result == expected, - "TO_OutputChannel_Disable() did not return the correct value"); - -} - - - /************************************************************************** - * Test Rollup - **************************************************************************/ -void TO_Custom_App_Test_AddTestCases(void) -{ - UtTest_Add(TO_Custom_Init_OpenChannelFail, - TO_Custom_Test_Setup, TO_Custom_Test_TearDown, - "TO_Custom_Init_OpenChannelFail"); - UtTest_Add(TO_Custom_Init_EnableChannelFail, - TO_Custom_Test_Setup, TO_Custom_Test_TearDown, - "TO_Custom_Init_EnableChannelFail"); - UtTest_Add(TO_Custom_Init_Nominal, - TO_Custom_Test_Setup, TO_Custom_Test_TearDown, - "TO_Custom_Init_Nominal"); - UtTest_Add(TO_Custom_Init_NothingEnabled, - TO_Custom_Test_Setup, TO_Custom_Test_TearDown, - "TO_Custom_Init_NothingEnabled"); - UtTest_Add(Test_TO_OutputChannel_CustomBuildupAll_Nominal, - TO_Custom_Test_Setup, TO_Custom_Test_TearDown, - "Test_TO_OutputChannel_CustomBuildupAll_Nominal"); - UtTest_Add(Test_TO_OutputChannel_Enable_NullDestinationAddress, - TO_Custom_Test_Setup, TO_Custom_Test_TearDown, - "Test_TO_OutputChannel_Enable_NullDestinationAddress"); - UtTest_Add(Test_TO_OutputChannel_Enable_InvalidID, - TO_Custom_Test_Setup, TO_Custom_Test_TearDown, - "Test_TO_OutputChannel_Enable_InvalidID"); - UtTest_Add(Test_TO_OutputChannel_Enable_SocketFail, - TO_Custom_Test_Setup, TO_Custom_Test_TearDown, - "Test_TO_OutputChannel_Enable_SocketFail"); - UtTest_Add(Test_TO_OutputChannel_Enable_BindFail, - TO_Custom_Test_Setup, TO_Custom_Test_TearDown, - "Test_TO_OutputChannel_Enable_BindFail"); - UtTest_Add(Test_TO_OutputChannel_Enable_CreateChildTaskFail, - TO_Custom_Test_Setup, TO_Custom_Test_TearDown, - "Test_TO_OutputChannel_Enable_CreateChildTaskFail"); - UtTest_Add(Test_TO_OutputChannel_Enable_Nominal, - TO_Custom_Test_Setup, TO_Custom_Test_TearDown, - "Test_TO_OutputChannel_Enable_Nominal"); - UtTest_Add(Test_TO_OutputChannel_Send_InvalidID, - TO_Custom_Test_Setup, TO_Custom_Test_TearDown, - "Test_TO_OutputChannel_Send_InvalidID"); - UtTest_Add(Test_TO_OutputChannel_Send_SendToFail, - TO_Custom_Test_Setup, TO_Custom_Test_TearDown, - "Test_TO_OutputChannel_Send_SendToFail"); - UtTest_Add(Test_TO_OutputChannel_Send_SendToTooLong, - TO_Custom_Test_Setup, TO_Custom_Test_TearDown, - "Test_TO_OutputChannel_Send_SendToTooLong"); - UtTest_Add(Test_TO_OutputChannel_Send_Nominal, - TO_Custom_Test_Setup, TO_Custom_Test_TearDown, - "Test_TO_OutputChannel_Send_Nominal"); - UtTest_Add(TO_OutputChannel_ChannelHandle_QueueGetFail, - TO_Custom_Test_Setup, TO_Custom_Test_TearDown, - "TO_OutputChannel_ChannelHandle_QueueGetFail"); - //UtTest_Add(TO_OutputChannel_ChannelHandle_SendToFail, - // TO_Custom_Test_Setup, TO_Custom_Test_TearDown, - // "TO_OutputChannel_ChannelHandle_SendToFail"); - //UtTest_Add(TO_OutputChannel_ChannelHandle_PutPoolBufFail, - // TO_Custom_Test_Setup, TO_Custom_Test_TearDown, - // "TO_OutputChannel_ChannelHandle_PutPoolBufFail"); - UtTest_Add(TO_OutputChannel_ChannelHandle_OSQueueTimeout, - TO_Custom_Test_Setup, TO_Custom_Test_TearDown, - "TO_OutputChannel_ChannelHandle_OSQueueTimeout"); - UtTest_Add(TO_OutputChannel_ProcessNewCustomCmds_EnableInvalidMessageLength, - TO_Custom_Test_Setup, TO_Custom_Test_TearDown, - "TO_OutputChannel_ProcessNewCustomCmds_EnableInvalidMessageLength"); - UtTest_Add(TO_OutputChannel_ProcessNewCustomCmds_DisableInvalidMessageLength, - TO_Custom_Test_Setup, TO_Custom_Test_TearDown, - "TO_OutputChannel_ProcessNewCustomCmds_DisableInvalidMessageLength"); - UtTest_Add(TO_OutputChannel_ProcessNewCustomCmds_InvalidCommandCode, - TO_Custom_Test_Setup, TO_Custom_Test_TearDown, - "TO_OutputChannel_ProcessNewCustomCmds_InvalidCommandCode"); - UtTest_Add(TO_OutputChannel_ProcessNewCustomCmds_EnableFail, - TO_Custom_Test_Setup, TO_Custom_Test_TearDown, - "TO_OutputChannel_ProcessNewCustomCmds_EnableFail"); - UtTest_Add(TO_OutputChannel_ProcessNewCustomCmds_DisableFail, - TO_Custom_Test_Setup, TO_Custom_Test_TearDown, - "TO_OutputChannel_ProcessNewCustomCmds_DisableFail"); - UtTest_Add(TO_OutputChannel_ProcessNewCustomCmds_EnableNominal, - TO_Custom_Test_Setup, TO_Custom_Test_TearDown, - "TO_OutputChannel_ProcessNewCustomCmds_EnableNominal"); - UtTest_Add(TO_OutputChannel_ProcessNewCustomCmds_DisableNominal, - TO_Custom_Test_Setup, TO_Custom_Test_TearDown, - "TO_OutputChannel_ProcessNewCustomCmds_DisableNominal"); - UtTest_Add(TO_OutputChannel_UDPChannelTask_Nominal, - TO_Custom_Test_Setup, TO_Custom_Test_TearDown, - "TO_OutputChannel_UDPChannelTask_Nominal"); - UtTest_Add(TO_OutputChannel_CustomCleanupAll_Nominal, - TO_Custom_Test_Setup, TO_Custom_Test_TearDown, - "TO_OutputChannel_CustomCleanupAll_Nominal"); - UtTest_Add(TO_OutputChannel_Disable_Fail, - TO_Custom_Test_Setup, TO_Custom_Test_TearDown, - "TO_OutputChannel_Disable_Fail"); - UtTest_Add(TO_OutputChannel_Disable_Nominal, - TO_Custom_Test_Setup, TO_Custom_Test_TearDown, - "TO_OutputChannel_Disable_Nominal"); -} diff --git a/config/ocpoc/s1000/target/apps/to/unit_test/to_app_custom_test.h b/config/ocpoc/s1000/target/apps/to/unit_test/to_app_custom_test.h deleted file mode 100644 index 941bef57d..000000000 --- a/config/ocpoc/s1000/target/apps/to/unit_test/to_app_custom_test.h +++ /dev/null @@ -1,55 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ - -#ifndef TO_APP_CUSTOM_TEST_H -#define TO_APP_CUSTOM_TEST_H - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * Includes - */ - -#include "to_custom_test_utils.h" - - -void TO_Custom_App_Test_AddTestCases(void); - - -#ifdef __cplusplus -} -#endif - -#endif /* TO_APP_CUSTOM_TEST_H */ diff --git a/config/ocpoc/s1000/target/apps/to/unit_test/to_app_stubs.c b/config/ocpoc/s1000/target/apps/to/unit_test/to_app_stubs.c deleted file mode 100644 index a43055280..000000000 --- a/config/ocpoc/s1000/target/apps/to/unit_test/to_app_stubs.c +++ /dev/null @@ -1,75 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ - -#include "to_app_stubs.h" - -TO_App_Returns_t TO_App_Return = {0}; - -int32 TO_Channel_OpenChannel(uint32 index, const char *ChannelName, - const char *ConfigTableName, const char *ConfigTableFileName, - TO_ChannelTbl_t *BackupTblPtr, const char *DumpTableName, - const uint32 CfCntSemMax, const char *CfCntSemName) -{ - return TO_App_Return.TO_Channel_OpenChannel_Return; -} - - -void TO_Channel_LockByIndex(uint16 index) -{ - -} - - -void TO_Channel_UnlockByIndex(uint16 index) -{ - -} - - -uint8 TO_Channel_State(uint16 index) -{ - uint8 returnCode = 0; - - if(0 == TO_App_Return.TO_Channel_State_CallCount) - { - returnCode = TO_App_Return.TO_Channel_State_Return; - } - else - { - TO_AppCustomData.Channel[0].Mode = TO_CHANNEL_DISABLED; - returnCode = TO_App_Return.TO_Channel_State_Return1; - } - TO_App_Return.TO_Channel_State_CallCount++; - return returnCode; -} - diff --git a/config/ocpoc/s1000/target/apps/to/unit_test/to_app_stubs.h b/config/ocpoc/s1000/target/apps/to/unit_test/to_app_stubs.h deleted file mode 100644 index 8ee03bf3c..000000000 --- a/config/ocpoc/s1000/target/apps/to/unit_test/to_app_stubs.h +++ /dev/null @@ -1,82 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ - -#ifndef TO_APP_STUBS_H -#define TO_APP_STUBS_H - -#ifdef __cplusplus -extern "C" { -#endif - -/************************************************************************ -** Includes -*************************************************************************/ -#include "cfe.h" -#include "to_custom_test_utils.h" - -/************************************************************************ -** Structure Declarations -*************************************************************************/ -typedef struct -{ - int32 TO_Channel_OpenChannel_Return; - uint8 TO_Channel_State_Return; - uint8 TO_Channel_State_Return1; - uint8 TO_Channel_State_CallCount; -} TO_App_Returns_t; - -/************************************************************************ -** External Global Variables -*************************************************************************/ -extern TO_App_Returns_t TO_App_Return; - -/************************************************************************ -** Function Prototypes (Stubs) -*************************************************************************/ -int32 TO_Channel_OpenChannel(uint32 index, const char *ChannelName, - const char *ConfigTableName, const char *ConfigTableFileName, - TO_ChannelTbl_t *BackupTblPtr, const char *DumpTableName, - const uint32 CfCntSemMax, const char *CfCntSemName); - -void TO_Channel_LockByIndex(uint16 index); - -void TO_Channel_UnlockByIndex(uint16 index); - -uint8 TO_Channel_State(uint16 index); - - -#ifdef __cplusplus -} -#endif - -#endif /* TO_APP_STUBS_H */ diff --git a/config/ocpoc/s1000/target/apps/to/unit_test/to_custom_test_utils.c b/config/ocpoc/s1000/target/apps/to/unit_test/to_custom_test_utils.c deleted file mode 100644 index 8f5c59fc0..000000000 --- a/config/ocpoc/s1000/target/apps/to/unit_test/to_custom_test_utils.c +++ /dev/null @@ -1,77 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ - -#include "to_custom_test_utils.h" -#include "to_platform_stubs.h" - -#include "ut_cfe_evs_hooks.h" -#include "ut_cfe_time_stubs.h" -#include "ut_cfe_psp_memutils_stubs.h" -#include "ut_cfe_tbl_stubs.h" -#include "ut_cfe_tbl_hooks.h" -#include "ut_cfe_fs_stubs.h" -#include "ut_cfe_time_stubs.h" -#include "ut_osapi_stubs.h" -#include "ut_osfileapi_stubs.h" -#include "ut_cfe_sb_stubs.h" -#include "ut_cfe_es_stubs.h" -#include "ut_cfe_evs_stubs.h" - -#include - -/* - * Function Definitions - */ - -void TO_Custom_Test_Setup(void) -{ - /* initialize test environment to default state for every test */ - CFE_PSP_MemSet(&TO_AppData, 0x00, sizeof(TO_AppData)); - CFE_PSP_MemSet(&TO_AppCustomData, 0x00, sizeof(TO_AppCustomData_t)); - CFE_PSP_MemSet(&TO_App_Return, 0x00, sizeof(TO_App_Return)); - CFE_PSP_MemSet(&TO_Platform_Stubs_Returns, 0x00, sizeof(TO_Platform_Stubs_Returns)); - - Ut_CFE_EVS_Reset(); - Ut_CFE_FS_Reset(); - Ut_CFE_TIME_Reset(); - Ut_CFE_TBL_Reset(); - Ut_CFE_SB_Reset(); - Ut_CFE_ES_Reset(); - Ut_OSAPI_Reset(); - Ut_OSFILEAPI_Reset(); -} - -void TO_Custom_Test_TearDown(void) -{ - -} diff --git a/config/ocpoc/s1000/target/apps/to/unit_test/to_custom_test_utils.h b/config/ocpoc/s1000/target/apps/to/unit_test/to_custom_test_utils.h deleted file mode 100644 index f86f57d06..000000000 --- a/config/ocpoc/s1000/target/apps/to/unit_test/to_custom_test_utils.h +++ /dev/null @@ -1,63 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ - -#ifndef TO_CUSTOM_TEST_UTILS_H -#define TO_CUSTOM_TEST_UTILS_H - -/* - * Includes - */ - -#include "to_custom_udp.h" -#include "to_app_stubs.h" - - -extern TO_AppCustomData_t TO_AppCustomData; - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * Function Definitions - */ - -void TO_Custom_Test_Setup(void); -void TO_Custom_Test_TearDown(void); - - -#ifdef __cplusplus -} -#endif - -#endif /* TO_CUSTOM_TEST_UTILS_H */ diff --git a/config/ocpoc/s1000/target/apps/to/unit_test/to_custom_testrunner.c b/config/ocpoc/s1000/target/apps/to/unit_test/to_custom_testrunner.c deleted file mode 100644 index 021ae11bc..000000000 --- a/config/ocpoc/s1000/target/apps/to/unit_test/to_custom_testrunner.c +++ /dev/null @@ -1,52 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ - -#include "uttest.h" - -#include "to_app_custom_test.h" - -TO_AppData_t TO_AppData; - -extern int enable_wrappers; - -int main(void) -{ - int testResults = 0; - enable_wrappers = 1; - TO_Custom_App_Test_AddTestCases(); - testResults = UtTest_Run(); - - enable_wrappers = 0; - - return testResults; -} diff --git a/config/ocpoc/s1000/target/apps/to/unit_test/to_platform_stubs.c b/config/ocpoc/s1000/target/apps/to/unit_test/to_platform_stubs.c deleted file mode 100644 index db2ffbec7..000000000 --- a/config/ocpoc/s1000/target/apps/to/unit_test/to_platform_stubs.c +++ /dev/null @@ -1,105 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ - -#include -#include - -#include "to_platform_stubs.h" - - -int enable_wrappers = 0; - -int __real_socket(int domain, int type, int protocol); -int __real_bind(int sockfd, const struct sockaddr *addr, socklen_t addrlen); -int __real_sendto(int sockfd, const void *buf, size_t len, int flags, - const struct sockaddr *dest_addr, socklen_t addrlen); - -TO_Platform_Stubs_Returns_t TO_Platform_Stubs_Returns = {0}; - - -int __wrap_socket(int domain, int type, int protocol) -{ - int returnCode = 0; - if(enable_wrappers == 0) - { - returnCode = __real_socket(domain, type, protocol); - } - else - { - if (TO_Platform_Stubs_Returns.TO_Wrap_Socket_Errno) - { - errno = TO_Platform_Stubs_Returns.TO_Wrap_Socket_Errno_Value; - } - returnCode = TO_Platform_Stubs_Returns.TO_Wrap_Socket_Return; - } - return returnCode; -} - - -int __wrap_bind(int sockfd, const struct sockaddr *addr, socklen_t addrlen) -{ - int returnCode = 0; - if(enable_wrappers == 0) - { - returnCode = __real_bind(sockfd, addr, addrlen); - } - else - { - if (TO_Platform_Stubs_Returns.TO_Wrap_Bind_Errno) - { - errno = TO_Platform_Stubs_Returns.TO_Wrap_Bind_Errno_Value; - } - returnCode = TO_Platform_Stubs_Returns.TO_Wrap_Bind_Return; - } - return returnCode; -} - - -int __wrap_sendto(int sockfd, const void *buf, size_t len, int flags, - const struct sockaddr *dest_addr, socklen_t addrlen) -{ - int returnCode = 0; - if(enable_wrappers == 0) - { - returnCode = __real_sendto(sockfd, buf, len, flags, dest_addr, addrlen); - } - else - { - if (TO_Platform_Stubs_Returns.TO_Wrap_SendTo_Errno) - { - errno = TO_Platform_Stubs_Returns.TO_Wrap_SendTo_Errno_Value; - } - returnCode = TO_Platform_Stubs_Returns.TO_Wrap_SendTo_Return; - } - return returnCode; -} diff --git a/config/ocpoc/s1000/target/apps/to/unit_test/to_platform_stubs.h b/config/ocpoc/s1000/target/apps/to/unit_test/to_platform_stubs.h deleted file mode 100644 index 923c5cd38..000000000 --- a/config/ocpoc/s1000/target/apps/to/unit_test/to_platform_stubs.h +++ /dev/null @@ -1,61 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ - -#ifndef TO_PLATFORM_STUBS_H -#define TO_PLATFORM_STUBS_H - -#ifdef __cplusplus -extern "C" { -#endif - -typedef struct -{ - int TO_Wrap_Socket_Return; - int TO_Wrap_Socket_Errno; - int TO_Wrap_Socket_Errno_Value; - int TO_Wrap_Bind_Return; - int TO_Wrap_Bind_Errno; - int TO_Wrap_Bind_Errno_Value; - int TO_Wrap_SendTo_Return; - int TO_Wrap_SendTo_Errno; - int TO_Wrap_SendTo_Errno_Value; -} TO_Platform_Stubs_Returns_t; - -extern TO_Platform_Stubs_Returns_t TO_Platform_Stubs_Returns; - - -#ifdef __cplusplus -} -#endif - -#endif /* TO_PLATFORM_STUBS_H */ diff --git a/config/ocpoc/s1000/target/apps/to/user_doxy.in b/config/ocpoc/s1000/target/apps/to/user_doxy.in deleted file mode 100644 index 506ec63b3..000000000 --- a/config/ocpoc/s1000/target/apps/to/user_doxy.in +++ /dev/null @@ -1,265 +0,0 @@ -# Doxyfile 1.5.4 -@INCLUDE_PATH=@PROJECT_SOURCE_DIR@/apps/to/docs/dox_src/mnem_maps -@INCLUDE=cfs_to_cmd_mnem_map -@INCLUDE=cfs_to_tlm_mnem_map -#--------------------------------------------------------------------------- -# Project related configuration options -#--------------------------------------------------------------------------- -#DOXYFILE_ENCODING = UTF-8 -PROJECT_NAME = "Telemetry Output (TO) Application on @BUILD_CONFIG_NAME@ User's Guide" -PROJECT_NUMBER = -OUTPUT_DIRECTORY = @CFS_DOCS_HTML_DIR@/users_guide/apps/to -CREATE_SUBDIRS = NO -OUTPUT_LANGUAGE = English -BRIEF_MEMBER_DESC = YES -REPEAT_BRIEF = YES -ABBREVIATE_BRIEF = -ALWAYS_DETAILED_SEC = NO -INLINE_INHERITED_MEMB = NO -FULL_PATH_NAMES = YES -STRIP_FROM_PATH = @PROJECT_SOURCE_DIR@ -STRIP_FROM_INC_PATH = -SHORT_NAMES = NO -JAVADOC_AUTOBRIEF = NO -#QT_AUTOBRIEF = NO -MULTILINE_CPP_IS_BRIEF = NO -DETAILS_AT_TOP = NO -INHERIT_DOCS = YES -SEPARATE_MEMBER_PAGES = NO -TAB_SIZE = 8 -ALIASES += "event=\xrefitem cfstoevents \"Event Message\" \"Telemetry Output Event Message Cross Reference\" " -ALIASES += "retdesc= " -ALIASES += "retcode= " -ALIASES += endcode= -ALIASES += "returns=\return " -ALIASES += endreturns=
-ALIASES += "retstmt= " -ALIASES += endstmt= -ALIASES += "tocmd=\xrefitem cfstocmds \"Name\" \"Telemetry Output Commands\" " -ALIASES += "totlm=\xrefitem cfstotlm \"Name\" \"Telemetry Output Telemetry\" " -ALIASES += "tocmdmnemonic=\xrefitem cfstocmdmnems \"Command Mnemonic(s)\" \"Telemetry Output Command Mnemonic Cross Reference\" \b \c " -ALIASES += "totlmmnemonic=\xrefitem cfstotlmmnems \"Telemetry Mnemonic(s)\" \"Telemetry Output Telemetry Mnemonic Cross Reference\" \b \c " -ALIASES += "tocfg=\xrefitem cfstocfg \"Purpose\" \"Telemetry Output Configuration Parameters\" " -OPTIMIZE_OUTPUT_FOR_C = YES -OPTIMIZE_OUTPUT_JAVA = NO -BUILTIN_STL_SUPPORT = NO -#CPP_CLI_SUPPORT = NO -#SIP_SUPPORT = NO -DISTRIBUTE_GROUP_DOC = NO -SUBGROUPING = YES -#TYPEDEF_HIDES_STRUCT = NO -#--------------------------------------------------------------------------- -# Build related configuration options -#--------------------------------------------------------------------------- -EXTRACT_ALL = YES -EXTRACT_PRIVATE = YES -EXTRACT_STATIC = YES -EXTRACT_LOCAL_CLASSES = YES -EXTRACT_LOCAL_METHODS = NO -#EXTRACT_ANON_NSPACES = NO -HIDE_UNDOC_MEMBERS = NO -HIDE_UNDOC_CLASSES = NO -HIDE_FRIEND_COMPOUNDS = NO -HIDE_IN_BODY_DOCS = NO -INTERNAL_DOCS = NO -CASE_SENSE_NAMES = NO -HIDE_SCOPE_NAMES = NO -SHOW_INCLUDE_FILES = YES -INLINE_INFO = YES -SORT_MEMBER_DOCS = YES -SORT_BRIEF_DOCS = NO -SORT_BY_SCOPE_NAME = NO -GENERATE_TODOLIST = NO -GENERATE_TESTLIST = YES -GENERATE_BUGLIST = YES -GENERATE_DEPRECATEDLIST= YES -ENABLED_SECTIONS = -MAX_INITIALIZER_LINES = 30 -SHOW_USED_FILES = YES -SHOW_DIRECTORIES = YES -FILE_VERSION_FILTER = -#--------------------------------------------------------------------------- -# configuration options related to warning and progress messages -#--------------------------------------------------------------------------- -QUIET = NO -WARNINGS = YES -WARN_IF_UNDOCUMENTED = YES -WARN_IF_DOC_ERROR = YES -WARN_NO_PARAMDOC = YES -WARN_FORMAT = "$file:$line: $text " -WARN_LOGFILE = -#--------------------------------------------------------------------------- -# configuration options related to the input files -#--------------------------------------------------------------------------- -INPUT = @PROJECT_SOURCE_DIR@/apps/to/docs/dox_src/users_guide/cfs_to.dox -INPUT += @PROJECT_SOURCE_DIR@/config/shared/inc/to_mission_cfg.h -INPUT += @PROJECT_SOURCE_DIR@/config/shared/inc/to_perfids.h -INPUT += @PROJECT_SOURCE_DIR@/config/shared/inc/to_msgids.h -INPUT += @PROJECT_SOURCE_DIR@/config/@BUILD_CONFIG_NAME@/inc/to_platform_cfg.h -INPUT += @PROJECT_SOURCE_DIR@/apps/to/fsw/src/to_app.h -INPUT += @PROJECT_SOURCE_DIR@/apps/to/fsw/src/to_cds_utils.h -INPUT += @PROJECT_SOURCE_DIR@/apps/to/fsw/src/to_config_utils.h -INPUT += @PROJECT_SOURCE_DIR@/apps/to/fsw/src/to_events.h -INPUT += @PROJECT_SOURCE_DIR@/apps/to/fsw/src/to_msg.h -INPUT += @PROJECT_SOURCE_DIR@/apps/to/fsw/src/to_tbldefs.h -INPUT += @PROJECT_SOURCE_DIR@/apps/to/fsw/src/to_version.h - -#INPUT_ENCODING = UTF-8 -FILE_PATTERNS = *.c \ - *.h -RECURSIVE = YES -EXCLUDE = -EXCLUDE_SYMLINKS = NO -EXCLUDE_PATTERNS = -#EXCLUDE_SYMBOLS = -EXAMPLE_PATH = -EXAMPLE_PATTERNS = * -EXAMPLE_RECURSIVE = NO -IMAGE_PATH = "./" -IMAGE_PATH += "@PROJECT_SOURCE_DIR@/apps/to/docs/dox_src/users_guide/" -INPUT_FILTER = -FILTER_PATTERNS = -FILTER_SOURCE_FILES = NO -#--------------------------------------------------------------------------- -# configuration options related to source browsing -#--------------------------------------------------------------------------- -SOURCE_BROWSER = YES -INLINE_SOURCES = NO -STRIP_CODE_COMMENTS = YES -REFERENCED_BY_RELATION = YES -REFERENCES_RELATION = YES -REFERENCES_LINK_SOURCE = YES -USE_HTAGS = NO -VERBATIM_HEADERS = YES -#--------------------------------------------------------------------------- -# configuration options related to the alphabetical class index -#--------------------------------------------------------------------------- -ALPHABETICAL_INDEX = YES -COLS_IN_ALPHA_INDEX = 5 -IGNORE_PREFIX = -#--------------------------------------------------------------------------- -# configuration options related to the HTML output -#--------------------------------------------------------------------------- -GENERATE_HTML = YES -HTML_OUTPUT = @CFS_DOCS_HTML_DIR@/users_guide/apps/to -HTML_FILE_EXTENSION = .html -HTML_HEADER = -HTML_FOOTER = -HTML_STYLESHEET = -HTML_ALIGN_MEMBERS = YES -GENERATE_HTMLHELP = NO -#HTML_DYNAMIC_SECTIONS = NO -CHM_FILE = CFS_Help.chm -HHC_LOCATION = "C:/Program Files/HTML Help Workshop/hhc.exe" -GENERATE_CHI = NO -BINARY_TOC = NO -TOC_EXPAND = NO -DISABLE_INDEX = NO -ENUM_VALUES_PER_LINE = 4 -GENERATE_TREEVIEW = NO -TREEVIEW_WIDTH = 250 -#--------------------------------------------------------------------------- -# configuration options related to the LaTeX output -#--------------------------------------------------------------------------- -GENERATE_LATEX = YES -LATEX_OUTPUT = @CFS_DOCS_LATEX_DIR@/users_guide/apps/to -LATEX_CMD_NAME = latex -MAKEINDEX_CMD_NAME = makeindex -COMPACT_LATEX = YES -PAPER_TYPE = letter -EXTRA_PACKAGES = -LATEX_HEADER = -PDF_HYPERLINKS = YES -USE_PDFLATEX = YES -LATEX_BATCHMODE = NO -LATEX_HIDE_INDICES = NO -#--------------------------------------------------------------------------- -# configuration options related to the RTF output -#--------------------------------------------------------------------------- -GENERATE_RTF = NO -RTF_OUTPUT = @CFS_DOCS_DIR@/users_guide/rtf/apps/to -COMPACT_RTF = YES -RTF_HYPERLINKS = NO -RTF_STYLESHEET_FILE = -RTF_EXTENSIONS_FILE = -#--------------------------------------------------------------------------- -# configuration options related to the man page output -#--------------------------------------------------------------------------- -GENERATE_MAN = NO -MAN_OUTPUT = man -MAN_EXTENSION = .3 -MAN_LINKS = NO -#--------------------------------------------------------------------------- -# configuration options related to the XML output -#--------------------------------------------------------------------------- -GENERATE_XML = NO -XML_OUTPUT = xml -XML_SCHEMA = -XML_DTD = -XML_PROGRAMLISTING = YES -#--------------------------------------------------------------------------- -# configuration options for the AutoGen Definitions output -#--------------------------------------------------------------------------- -GENERATE_AUTOGEN_DEF = NO -#--------------------------------------------------------------------------- -# configuration options related to the Perl module output -#--------------------------------------------------------------------------- -GENERATE_PERLMOD = NO -PERLMOD_LATEX = NO -PERLMOD_PRETTY = YES -PERLMOD_MAKEVAR_PREFIX = -#--------------------------------------------------------------------------- -# Configuration options related to the preprocessor -#--------------------------------------------------------------------------- -ENABLE_PREPROCESSING = YES -MACRO_EXPANSION = NO -EXPAND_ONLY_PREDEF = NO -SEARCH_INCLUDES = YES -INCLUDE_PATH = -INCLUDE_FILE_PATTERNS = -PREDEFINED = __PPC__ \ - MESSAGE_FORMAT_IS_CCSDS \ - CFE_TIME_CFG_SRC_TIME \ - CFE_TIME_CFG_SRC_GPS \ - CFE_TIME_CFG_SRC_MET -EXPAND_AS_DEFINED = -SKIP_FUNCTION_MACROS = YES -#--------------------------------------------------------------------------- -# Configuration::additions related to external references -#--------------------------------------------------------------------------- -TAGFILES = @CFS_DOCS_HTML_DIR@/detailed_design/cfe/cfe.tag=../../../cfe/detailed_design/ -GENERATE_TAGFILE = @CFS_DOCS_HTML_DIR@/users_guide/apps/to/to.tag -ALLEXTERNALS = NO -EXTERNAL_GROUPS = YES -PERL_PATH = /usr/bin/perl -#--------------------------------------------------------------------------- -# Configuration options related to the dot tool -#--------------------------------------------------------------------------- -CLASS_DIAGRAMS = NO -#MSCGEN_PATH = -HIDE_UNDOC_RELATIONS = YES -HAVE_DOT = YES -CLASS_GRAPH = NO -COLLABORATION_GRAPH = NO -GROUP_GRAPHS = YES -UML_LOOK = NO -TEMPLATE_RELATIONS = NO -INCLUDE_GRAPH = NO -INCLUDED_BY_GRAPH = NO -CALL_GRAPH = YES -CALLER_GRAPH = NO -GRAPHICAL_HIERARCHY = NO -DIRECTORY_GRAPH = YES -DOT_IMAGE_FORMAT = png -DOT_PATH = -DOTFILE_DIRS = -#DOT_GRAPH_MAX_NODES = 50 -MAX_DOT_GRAPH_DEPTH = 1000 -DOT_TRANSPARENT = NO -DOT_MULTI_TARGETS = NO -GENERATE_LEGEND = YES -DOT_CLEANUP = YES -#--------------------------------------------------------------------------- -# Configuration::additions related to the search engine -#--------------------------------------------------------------------------- -SEARCHENGINE = NO diff --git a/config/ocpoc/s1000/target/apps/ulr/CMakeLists.txt b/config/ocpoc/s1000/target/apps/ulr/CMakeLists.txt deleted file mode 100644 index cf90f209c..000000000 --- a/config/ocpoc/s1000/target/apps/ulr/CMakeLists.txt +++ /dev/null @@ -1,7 +0,0 @@ -set(APP_NAME ulr) - -#buildliner_add_app_unit_test_src( -# ${APP_NAME} -# SOURCES -# ${CMAKE_CURRENT_SOURCE_DIR}/ulr_custom.cpp -#) diff --git a/config/ocpoc/s1000/target/apps/ulr/tables/ulr_config.c b/config/ocpoc/s1000/target/apps/ulr/tables/ulr_config.c deleted file mode 100644 index 329984373..000000000 --- a/config/ocpoc/s1000/target/apps/ulr/tables/ulr_config.c +++ /dev/null @@ -1,63 +0,0 @@ -/* -** Pragmas -*/ - -/* -** Include Files -*/ -#include "cfe_tbl_filedef.h" -#include "ulr_tbldefs.h" - -/* -** Local Defines -*/ - -/* -** Local Structure Declarations -*/ -static OS_USED CFE_TBL_FileDef_t CFE_TBL_FileDef = -{ - /* Content format: ObjName[64], TblName[38], Desc[32], TgtFileName[20], ObjSize - ** ObjName - variable name of config table, e.g., CI_ConfigDefTbl[] - ** TblName - app's table name, e.g., CI.CONFIG_TBL, where CI is the same app name - ** used in cfe_es_startup.scr, and CI_defConfigTbl is the same table - ** name passed in to CFE_TBL_Register() - ** Desc - description of table in string format - ** TgtFileName[20] - table file name, compiled as .tbl file extension - ** ObjSize - size of the entire table - */ - - "ULR_ConfigTbl", "ULR.CONFIG_TBL", "ULR default config table", - "ulr_config.tbl", (sizeof(ULR_ConfigTbl_t)) -}; - -/* -** External Global Variables -*/ - -/* -** Global Variables -*/ - -/* Default ULR config table data */ -ULR_ConfigTbl_t ULR_ConfigTbl = -{ - /* TODO: Define table. */ -}; - -/* -** Local Variables -*/ - -/* -** Function Prototypes -*/ - -/* -** Function Definitions -*/ - -/*======================================================================================= -** End of file ulr_config.c -**=====================================================================================*/ - diff --git a/config/ocpoc/s1000/target/apps/ulr/ulr_custom.cpp b/config/ocpoc/s1000/target/apps/ulr/ulr_custom.cpp deleted file mode 100644 index 5a87978a4..000000000 --- a/config/ocpoc/s1000/target/apps/ulr/ulr_custom.cpp +++ /dev/null @@ -1,139 +0,0 @@ -#include "ulr_app.h" -#include -#include -#include -#include -#include -#include -#include - -#define ULR_PORT_SPEED (B115200) - -typedef struct -{ - int FD; -} ULR_CustomData_t; - -ULR_CustomData_t ULR_CustomData; - -int32 ULR::InitDevice(void) -{ - int32 iStatus = CFE_SUCCESS; - termios uart_config; - int termios_state; - - ULR_CustomData.FD = open(ULR_CUSTOM_PORT_PATH, O_RDWR | O_NOCTTY); - if (ULR_CustomData.FD < 0) - { - (void) CFE_EVS_SendEvent(ULR_CUSTOM_INIT_ERR_EID, CFE_EVS_ERROR, - "Failed to open device speed. errno=%u ('%s').", errno, - strerror(errno)); - iStatus = -1; - goto end_of_function; - } - - /* fill the struct for the new configuration */ - tcgetattr(ULR_CustomData.FD, &uart_config); - - // Input flags - Turn off input processing - // - // convert break to null byte, no CR to NL translation, - // no NL to CR translation, don't mark parity errors or breaks - // no input parity check, don't strip high bit off, - // no XON/XOFF software flow control - // - uart_config.c_iflag &= ~(IGNBRK | BRKINT | ICRNL | - INLCR | PARMRK | INPCK | ISTRIP | IXON); - - // - // Output flags - Turn off output processing - // - // no CR to NL translation, no NL to CR-NL translation, - // no NL to CR translation, no column 0 CR suppression, - // no Ctrl-D suppression, no fill characters, no case mapping, - // no local output processing - // - //// config.c_oflag &= ~(OCRNL | ONLCR | ONLRET | - // ONOCR | ONOEOT| OFILL | OLCUC | OPOST); - - /* no parity, one stop bit */ - uart_config.c_cflag &= ~(CSTOPB | PARENB); - - // - // No line processing - // - // echo off, echo newline off, canonical mode off, - // extended input processing off, signal chars off - // - uart_config.c_lflag &= ~(ECHO | ECHONL | ICANON | IEXTEN | ISIG); - - uart_config.c_oflag = 0; - - /* clear ONLCR flag (which appends a CR for every LF) */ - uart_config.c_oflag &= ~ONLCR; - - /* set baud rate */ - if ((termios_state = cfsetispeed(&uart_config, ULR_PORT_SPEED)) < 0) - { - (void) CFE_EVS_SendEvent(ULR_CUSTOM_INIT_ERR_EID, CFE_EVS_ERROR, - "Failed to set input speed. errno=%u ('%s').", errno, - strerror(errno)); - iStatus = -1; - goto end_of_function; - } - - if ((termios_state = cfsetospeed(&uart_config, ULR_PORT_SPEED)) < 0) - { - (void) CFE_EVS_SendEvent(ULR_CUSTOM_INIT_ERR_EID, CFE_EVS_ERROR, - "Failed to set output speed. errno=%u ('%s').", errno, - strerror(errno)); - iStatus = -1; - goto end_of_function; - } - - if ((termios_state = tcsetattr(ULR_CustomData.FD, TCSANOW, &uart_config)) < 0) - { - (void) CFE_EVS_SendEvent(ULR_CUSTOM_INIT_ERR_EID, CFE_EVS_ERROR, - "Failed to set port attributes. errno=%u ('%s').", errno, - strerror(errno)); - iStatus = -1; - goto end_of_function; - } - -end_of_function: - return iStatus; -} - - -int32 ULR::ReadDevice(uint8 *Buffer, uint32 *Size) -{ - int32 iStatus = CFE_SUCCESS; - int32 bytesRead = 0; - - if((Buffer == 0) || (Size == 0)) - { - iStatus = -1; - goto end_of_function; - } - - bytesRead = read(ULR_CustomData.FD, (void*)&Buffer[0], (int)*Size); - if(bytesRead < 0) - { - iStatus = -1; - } - else - { - *Size = bytesRead; - } - -end_of_function: - return iStatus; -} - - -void ULR::CloseDevice(void) -{ - close(ULR_CustomData.FD); - -} - diff --git a/config/ocpoc/s1000/target/apps/vc/CMakeLists.txt b/config/ocpoc/s1000/target/apps/vc/CMakeLists.txt deleted file mode 100644 index 70e2b99f0..000000000 --- a/config/ocpoc/s1000/target/apps/vc/CMakeLists.txt +++ /dev/null @@ -1,72 +0,0 @@ -set(APP_NAME vc) - -buildliner_add_app_unit_test(vc-custom-ut - UTASSERT - SOURCES - # Unit test runner - ${CMAKE_CURRENT_SOURCE_DIR}/unit_test/vc_custom_testrunner.c - # Unit test for custom device module v4l - ${CMAKE_CURRENT_SOURCE_DIR}/unit_test/vc_dev_io_v4l_test/vc_app_custom_device_test.c - ${CMAKE_CURRENT_SOURCE_DIR}/unit_test/vc_dev_io_v4l_test/vc_app_custom_device_test.h - ${CMAKE_CURRENT_SOURCE_DIR}/unit_test/vc_dev_io_v4l_test/vc_custom_device_test_utils.c - ${CMAKE_CURRENT_SOURCE_DIR}/unit_test/vc_dev_io_v4l_test/vc_custom_device_test_utils.h - # Unit test for custom transmit module - ${CMAKE_CURRENT_SOURCE_DIR}/unit_test/vc_transmit_udp_test/vc_app_custom_transmit_test.c - ${CMAKE_CURRENT_SOURCE_DIR}/unit_test/vc_transmit_udp_test/vc_app_custom_transmit_test.h - ${CMAKE_CURRENT_SOURCE_DIR}/unit_test/vc_transmit_udp_test/vc_custom_transmit_test_utils.c - ${CMAKE_CURRENT_SOURCE_DIR}/unit_test/vc_transmit_udp_test/vc_custom_transmit_test_utils.h - # Unit test for shared custom module - ${CMAKE_CURRENT_SOURCE_DIR}/unit_test/vc_custom_shared_test/vc_app_custom_shared_test.c - ${CMAKE_CURRENT_SOURCE_DIR}/unit_test/vc_custom_shared_test/vc_app_custom_shared_test.h - ${CMAKE_CURRENT_SOURCE_DIR}/unit_test/vc_custom_shared_test/vc_custom_shared_test_utils.c - ${CMAKE_CURRENT_SOURCE_DIR}/unit_test/vc_custom_shared_test/vc_custom_shared_test_utils.h - # Platform stubs - ${CMAKE_CURRENT_SOURCE_DIR}/unit_test/vc_platform_stubs/vc_platform_stubs.c - ${CMAKE_CURRENT_SOURCE_DIR}/unit_test/vc_platform_stubs/vc_platform_stubs.h - # Custom stubs - ${CMAKE_CURRENT_SOURCE_DIR}/unit_test/vc_app_custom_stubs/vc_app_custom_stubs.c - ${CMAKE_CURRENT_SOURCE_DIR}/unit_test/vc_app_custom_stubs/vc_app_custom_stubs.h - # VC App stubs - ${CMAKE_CURRENT_SOURCE_DIR}/unit_test/vc_app_stubs/vc_app_stubs.c - ${CMAKE_CURRENT_SOURCE_DIR}/unit_test/vc_app_stubs/vc_app_stubs.h - # Custom code (code under test) - ${CMAKE_CURRENT_SOURCE_DIR}/src/vc_transmit_udp/vc_transmit_udp.c - ${CMAKE_CURRENT_SOURCE_DIR}/src/vc_transmit_udp/vc_transmit_udp.h - # Custom device code v4l - ${CMAKE_CURRENT_SOURCE_DIR}/src/vc_dev_io_v4l/vc_dev_io_v4l.c - ${CMAKE_CURRENT_SOURCE_DIR}/src/vc_dev_io_v4l/vc_dev_io_v4l.h - # Custom shared code - ${CMAKE_CURRENT_SOURCE_DIR}/src/vc_custom.c - ${CMAKE_CURRENT_SOURCE_DIR}/src/vc_custom_shared.h - - INCLUDES - # Custom code under test - ${CMAKE_CURRENT_SOURCE_DIR}/src/ - # Custom v4l code - ${CMAKE_CURRENT_SOURCE_DIR}/src/vc_dev_io_v4l/ - # Custom udp code - ${CMAKE_CURRENT_SOURCE_DIR}/src/vc_transmit_udp/ - # Test code - ${CMAKE_CURRENT_SOURCE_DIR}/unit_test/ - # Custom v4l code - ${CMAKE_CURRENT_SOURCE_DIR}/unit_test/vc_dev_io_v4l_test/ - # Custom udp transmit code - ${CMAKE_CURRENT_SOURCE_DIR}/unit_test/vc_transmit_udp_test/ - ${CMAKE_CURRENT_SOURCE_DIR}/unit_test/vc_transmit_udp_test/ - ${CMAKE_CURRENT_SOURCE_DIR}/unit_test/vc_platform_stubs/ - ${CMAKE_CURRENT_SOURCE_DIR}/unit_test/vc_app_stubs/ - ${CMAKE_CURRENT_SOURCE_DIR}/unit_test/vc_custom_shared_test/ - # Sealed code - ${PROJECT_SOURCE_DIR}/apps/vc/fsw/src/ - - WRAPPERS - # Wrapped functions (see platform stubs) - ioctl - open - close - select - socket - bind - sendto - recv -) diff --git a/config/ocpoc/s1000/target/apps/vc/src/CMakeLists.txt b/config/ocpoc/s1000/target/apps/vc/src/CMakeLists.txt deleted file mode 100644 index 89d4afd8b..000000000 --- a/config/ocpoc/s1000/target/apps/vc/src/CMakeLists.txt +++ /dev/null @@ -1,8 +0,0 @@ -# Set source for custom code. -set(APP_CUSTOM_SRC - ${CMAKE_CURRENT_SOURCE_DIR}/vc_transmit_udp/vc_transmit_udp.c - ${CMAKE_CURRENT_SOURCE_DIR}/vc_dev_io_v4l/vc_dev_io_v4l.c - ${CMAKE_CURRENT_SOURCE_DIR}/vc_custom.c - PARENT_SCOPE - ) - diff --git a/config/ocpoc/s1000/target/apps/vc/src/vc_custom.c b/config/ocpoc/s1000/target/apps/vc/src/vc_custom.c deleted file mode 100644 index ea878486f..000000000 --- a/config/ocpoc/s1000/target/apps/vc/src/vc_custom.c +++ /dev/null @@ -1,246 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ - -#include "vc_custom_shared.h" -#include "vc_cmds.h" -#include - -/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ -/* */ -/* Process New Custom Commands. Raise an error event if the */ -/* command is unknown. */ -/* */ -/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ -void VC_ProcessNewCustomCmds(CFE_SB_Msg_t* MsgPtr) -{ - uint32 uiCmdCode=0; - - if (MsgPtr != NULL) - { - uint16 inSize = CFE_SB_GetTotalMsgLength(MsgPtr); - uiCmdCode = CFE_SB_GetCmdCode(MsgPtr); - - switch (uiCmdCode) - { - case VC_STARTSTREAMING_CC: - { - VC_StartStreamingCmd(MsgPtr); - break; - } - case VC_STOPSTREAMING_CC: - { - VC_StopStreamingCmd(MsgPtr); - break; - } - default: - { - VC_AppData.HkTlm.usCmdErrCnt++; - (void) CFE_EVS_SendEvent(VC_MSGID_ERR_EID, CFE_EVS_ERROR, - "Recvd invalid cmdId (%u)", (unsigned int)uiCmdCode); - break; - } - } - } -} - - -void VC_StartStreamingCmd(CFE_SB_Msg_t* MsgPtr) -{ - VC_StartStreamCmd_t *CmdPtr = 0; - - uint16 ExpectedLength = sizeof(VC_StartStreamCmd_t); - - /* Verify command packet length */ - if (VC_VerifyCmdLength(MsgPtr, ExpectedLength)) - { - (void) CFE_EVS_SendEvent(VC_CMD_INF_EID, CFE_EVS_INFORMATION, "Start Streaming command received"); - - if (VC_AppData.AppState == VC_INITIALIZED) - { - CmdPtr = ((VC_StartStreamCmd_t *) MsgPtr); - - /* - ** NUL terminate the very end of the address string as a - ** safety measure - */ - CmdPtr->Address[VC_ADDRESS_LENGTH - 1] = '\0'; - - /* - ** Check if the address string is a nul string - */ - if(strlen(CmdPtr->Address) == 0) - { - VC_AppData.HkTlm.usCmdErrCnt++; - (void) CFE_EVS_SendEvent(VC_ADDR_NUL_ERR_EID, CFE_EVS_ERROR, - "NUL (empty) string specified for address"); - } - /* Check if the address is valid */ - else if (FALSE == VC_Address_Verification(CmdPtr->Address)) - { - VC_AppData.HkTlm.usCmdErrCnt++; - (void) CFE_EVS_SendEvent(VC_ADDR_ERR_EID, CFE_EVS_ERROR, - "Invalid string specified for address"); - } - /* Update the configuration */ - else if (FALSE == VC_Update_Destination(CmdPtr->Address, CmdPtr->Port)) - { - VC_AppData.HkTlm.usCmdErrCnt++; - (void) CFE_EVS_SendEvent(VC_INIT_ERR_EID, CFE_EVS_ERROR, - "Destination update failed in cmd start streaming"); - } - ///* Call VC_Transmit_Uninit() */ - //else if (FALSE == VC_Transmit_Uninit()) - //{ - //VC_AppData.HkTlm.usCmdErrCnt++; - //(void) CFE_EVS_SendEvent(VC_UNINIT_ERR_EID, CFE_EVS_ERROR, - //"VC_Transmit_Uninit failed in cmd start streaming"); - //} - ///* Call VC_Transmit_Init() */ - //else if (FALSE == VC_Transmit_Init()) - //{ - //VC_AppData.HkTlm.usCmdErrCnt++; - //(void) CFE_EVS_SendEvent(VC_INIT_ERR_EID, CFE_EVS_ERROR, - //"VC_Transmit_Init failed in cmd start streaming"); - //} - /* Call VC_Devices_Start() */ - else if (FALSE == VC_Devices_Start()) - { - VC_AppData.HkTlm.usCmdErrCnt++; - (void) CFE_EVS_SendEvent(VC_INIT_ERR_EID, CFE_EVS_ERROR, - "VC_Devices_Start failed in cmd start streaming"); - } - /* Success! */ - else - { - VC_AppData.AppState = VC_STREAMING; - VC_AppData.HkTlm.usCmdCnt++; - (void) CFE_EVS_SendEvent(VC_CMD_INF_EID, CFE_EVS_INFORMATION, - "VC started streaming to %s:%u", CmdPtr->Address, CmdPtr->Port); - } - } - else - { - VC_AppData.HkTlm.usCmdErrCnt++; - (void) CFE_EVS_SendEvent(VC_CMD_ERR_EID, CFE_EVS_ERROR, "VC is already streaming"); - } - } - return; -} /* End of VC_StartStreamingCmd() */ - - -void VC_StopStreamingCmd(CFE_SB_Msg_t* MsgPtr) -{ - uint16 ExpectedLength = sizeof(VC_NoArgCmd_t); - - /* Verify command packet length */ - if (VC_VerifyCmdLength(MsgPtr, ExpectedLength)) - { - (void) CFE_EVS_SendEvent(VC_CMD_INF_EID, CFE_EVS_INFORMATION, "Stop Streaming command received"); - - if (VC_AppData.AppState == VC_STREAMING) - { - if(FALSE == VC_Devices_Stop()) - { - VC_AppData.HkTlm.usCmdErrCnt++; - (void) CFE_EVS_SendEvent(VC_UNINIT_ERR_EID, CFE_EVS_ERROR, - "VC_Devices_Stop() failed"); - } - else - { - VC_AppData.AppState = VC_INITIALIZED; - VC_AppData.HkTlm.usCmdCnt++; - (void) CFE_EVS_SendEvent(VC_CMD_INF_EID ,CFE_EVS_INFORMATION, - "VC stopped streaming"); - } - } - else - { - VC_AppData.HkTlm.usCmdErrCnt++; - (void) CFE_EVS_SendEvent(VC_CMD_ERR_EID, CFE_EVS_ERROR, "VC is already not streaming"); - } - } - return; -} /* End of VC_StopStreamingCmd() */ - - -boolean VC_Custom_Max_Events_Not_Reached(int32 ind) -{ - boolean returnBool = FALSE; - if ((ind < VC_MAX_EVENT_FILTERS) && (ind > 0)) - { - returnBool = TRUE; - } - - return (returnBool); -} - - -int32 VC_Custom_Init_EventFilters(int32 ind, CFE_EVS_BinFilter_t *EventTbl) -{ - int32 customEventCount = ind; - - /* Null check */ - if(0 == EventTbl) - { - customEventCount = VC_CUSTOM_ERROR_CODE; - goto end_of_function; - } - - if(TRUE == VC_Custom_Max_Events_Not_Reached(customEventCount)) - { - EventTbl[ customEventCount].EventID = VC_SOCKET_ERR_EID; - EventTbl[customEventCount++].Mask = CFE_EVS_FIRST_16_STOP; - } - else - { - customEventCount = VC_CUSTOM_ERROR_CODE; - goto end_of_function; - } - - if(TRUE == VC_Custom_Max_Events_Not_Reached(customEventCount)) - { - EventTbl[ customEventCount].EventID = VC_DEVICE_ERR_EID; - EventTbl[customEventCount].Mask = CFE_EVS_FIRST_16_STOP; - } - else - { - customEventCount = VC_CUSTOM_ERROR_CODE; - goto end_of_function; - } - -end_of_function: - - return (customEventCount); -} - - diff --git a/config/ocpoc/s1000/target/apps/vc/src/vc_custom_shared.h b/config/ocpoc/s1000/target/apps/vc/src/vc_custom_shared.h deleted file mode 100644 index 03cf9a611..000000000 --- a/config/ocpoc/s1000/target/apps/vc/src/vc_custom_shared.h +++ /dev/null @@ -1,160 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ - -#ifndef VC_CUSTOM_SHARED_H -#define VC_CUSTOM_SHARED_H -/************************************************************************ -** Includes -*************************************************************************/ -#include "cfe.h" -#include "vc_app.h" -#include "vc_custom.h" -//#include "vc_dev_io_udp/vc_dev_io_udp.h" -#include "vc_dev_io_v4l/vc_dev_io_v4l.h" - -/************************************************************************ -** Local Defines -*************************************************************************/ -/* start streaming command */ -#define VC_STARTSTREAMING_CC (2) -/* stop streaming command */ -#define VC_STOPSTREAMING_CC (3) - - -/************************************************************************ -** Structure Declarations -*************************************************************************/ -/** -** \brief Start Streaming Command -*/ -typedef struct -{ - uint8 CmdHeader[CFE_SB_CMD_HDR_SIZE]; - char Address[VC_ADDRESS_LENGTH]; - uint16 Port; -} VC_StartStreamCmd_t; - - -typedef enum { - -/** \brief 'VC - ' -** \event 'VC - ' -** -** \par Type: ERROR -** -** \par Cause: -** -** This event message is issued when a transmit resource encounters an -** socket error. -** -*/ - VC_SOCKET_ERR_EID = VC_EVT_CNT, - -/** \brief 'VC - ' -** \event 'VC - ' -** -** \par Type: ERROR -** -** \par Cause: -** -** This event message is issued when a device resource encounters an -** error. -** -*/ - VC_DEVICE_ERR_EID, - -/** \brief 'VC - ' -** \event 'VC - ' -** -** \par Type: ERROR -** -** \par Cause: -** -** This event message is issued when a start streaming command is -** received with a bad address command parameter. -** -*/ - VC_ADDR_ERR_EID, - -/** \brief 'VC - ' -** \event 'VC - ' -** -** \par Type: ERROR -** -** \par Cause: -** -** This event message is issued when a start streaming command is -** received with a NULL address command parameter. -** -*/ - VC_ADDR_NUL_ERR_EID, - -/** \brief Number of custom events -** -** \par Limits: -** int32 -*/ - VC_CUSTOM_EVT_CNT -} VC_CustomEventIds_t; - - -/************************************************************************ -** External Global Variables -*************************************************************************/ - -extern VC_AppData_t VC_AppData; - -/************************************************************************ -** Function Prototypes -*************************************************************************/ - -/************************************************************************/ -/** \brief Determines if the maximum of event filters has been reached. -** -** \par Description -** This function checks if an index has reached the maximum -** number of events. -** -** \par Assumptions, External Events, and Notes: -** None -** -** \param [in] ind The current index to check. -** -** -** \returns boolean -** -*************************************************************************/ -boolean VC_Custom_Max_Events_Not_Reached(int32 ind); - - -#endif /* VC_CUSTOM_SHARED_H */ diff --git a/config/ocpoc/s1000/target/apps/vc/src/vc_dev_io_udp/vc_dev_io_udp.c b/config/ocpoc/s1000/target/apps/vc/src/vc_dev_io_udp/vc_dev_io_udp.c deleted file mode 100644 index 25308f4e1..000000000 --- a/config/ocpoc/s1000/target/apps/vc/src/vc_dev_io_udp/vc_dev_io_udp.c +++ /dev/null @@ -1,424 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ -/************************************************************************ -** Pragmas -*************************************************************************/ - -/************************************************************************ -** Includes -*************************************************************************/ -#include "vc_dev_io_udp.h" -#include "cfe.h" -#include -#include -#include -#include -#include -#include - -/************************************************************************ -** Local Defines -*************************************************************************/ - -/************************************************************************ -** Local Structure Declarations -*************************************************************************/ - -/************************************************************************ -** External Global Variables -*************************************************************************/ - -/************************************************************************ -** Global Variables -*************************************************************************/ - -/************************************************************************ -** Local Variables -*************************************************************************/ - -/************************************************************************ -** Local Function Definitions -*************************************************************************/ - -VC_AppCustomDevice_t VC_AppCustomDevice; - - -int32 VC_Devices_InitData(void) -{ - int32 iStatus = CFE_SUCCESS; - - /* Set all struct zero values */ - bzero(&VC_AppCustomDevice, sizeof(VC_AppCustomDevice)); - - /* Set all non-zero values for channel zero */ - VC_AppCustomDevice.ContinueFlag = TRUE; - VC_AppCustomDevice.Priority = VC_STREAMING_TASK_PRIORITY; - VC_AppCustomDevice.StreamingTask = VC_Stream_Task; - VC_AppCustomDevice.Channel[0].Status = VC_DEVICE_UNINITIALIZED; - VC_AppCustomDevice.Channel[0].Mode = VC_DEVICE_ENABLED; - VC_AppCustomDevice.Channel[0].Socket = 0; - VC_AppCustomDevice.Channel[0].Port = VC_GST_GAZEBO_PORT; - - return iStatus; -} - - -boolean VC_Devices_Start(void) -{ - int32 returnCode = 0; - - /* Set loop flag to continue forever */ - VC_AppCustomDevice.ContinueFlag = TRUE; - - /* Create the streaming task */ - returnCode = CFE_ES_CreateChildTask( - &VC_AppCustomDevice.ChildTaskID, - VC_STREAMING_TASK_NAME, - VC_AppCustomDevice.StreamingTask, - 0, - CFE_ES_DEFAULT_STACK_SIZE, - VC_AppCustomDevice.Priority, - VC_STREAMING_TASK_FLAGS); - - if(returnCode != CFE_SUCCESS) - { - VC_AppCustomDevice.ContinueFlag = FALSE; - return FALSE; - } - return TRUE; -} - - -boolean VC_Devices_Stop(void) -{ - int32 returnCode = CFE_SUCCESS; - /* Delete the child task */ - returnCode = CFE_ES_DeleteChildTask(VC_AppCustomDevice.ChildTaskID); - - /* Set streaming task loop flag to stop */ - VC_AppCustomDevice.ContinueFlag = FALSE; - - /* Set app state to initialized */ - VC_AppData.AppState = VC_INITIALIZED; - - if (returnCode != CFE_SUCCESS) - { - return FALSE; - } - return TRUE; -} - - -boolean VC_Devices_Init(void) -{ - if(-1 == VC_Init_CustomDevices()) - { - return FALSE; - } - return TRUE; -} - - -boolean VC_Devices_Uninit(void) -{ - if(-1 == VC_CleanupDevices()) - { - return FALSE; - } - return TRUE; -} - - -int32 VC_CleanupDevices(void) -{ - uint32 i = 0; - int32 returnCode = 0; - - for(i=0; i < VC_MAX_DEVICES; i++) - { - if(VC_AppCustomDevice.Channel[i].Mode == VC_DEVICE_ENABLED) - { - if(-1 == close(VC_AppCustomDevice.Channel[i].Socket)) - { - /* Close failed */ - returnCode = -1; - } - else - { - VC_AppCustomDevice.Channel[i].Mode = VC_DEVICE_DISABLED; - VC_AppCustomDevice.Channel[i].Socket = 0; - } - } - } - return returnCode; -} - - -void VC_Devices_Critical_Cleanup(void) -{ - uint8 i = 0; - - for(i=0; i < VC_MAX_DEVICES; i++) - { - if(VC_AppCustomDevice.Channel[i].Socket != 0) - { - close(VC_AppCustomDevice.Channel[i].Socket); - } - } - return; -} - - -int32 VC_Init_CustomDevices(void) -{ - int32 returnCode = 0; - int reuseaddr = 1; - struct sockaddr_in address; - uint32 i = 0; - - for (i=0; i < VC_MAX_DEVICES; i++) - { - /* if a device is enabled... */ - if(VC_AppCustomDevice.Channel[i].Mode == VC_DEVICE_ENABLED) - { - /* Create socket */ - VC_AppCustomDevice.Channel[i].Socket = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP); - /* if socket creation failed */ - - if (VC_AppCustomDevice.Channel[i].Socket < 0) - { - CFE_EVS_SendEvent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, "Socket errno: %i on channel %u", errno, (unsigned int)i); - returnCode = -1; - goto end_of_function; - } - /* socket creation success try to bind */ - setsockopt(VC_AppCustomDevice.Channel[i].Socket, SOL_SOCKET, - SO_REUSEADDR, &reuseaddr, sizeof(reuseaddr)); - bzero((char *) &address, sizeof(address)); - address.sin_family = AF_INET; - address.sin_addr.s_addr = htonl (INADDR_ANY); - address.sin_port = htons(VC_AppCustomDevice.Channel[i].Port); - /* if bind failed... */ - if((bind(VC_AppCustomDevice.Channel[i].Socket , (struct sockaddr *) &address, sizeof(address)) < 0)) - { - CFE_EVS_SendEvent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR,"Bind errno: %i on channel %u", errno, (unsigned int)i); - returnCode = -1; - goto end_of_function; - } - /* socket create and bind success */ - VC_AppCustomDevice.Channel[i].Status = VC_DEVICE_INITIALIZED; - CFE_EVS_SendEvent(VC_DEV_INF_EID, CFE_EVS_INFORMATION, - "VC Device initialized channel %u", (unsigned int)i); - } - } - -end_of_function: - - return returnCode; -} - - -void VC_Stream_Task(void) -{ - int32 returnCode = 0; - static int32 timeouts = 0; - - uint32 i = 0; - uint32 j = 0; - uint32 maxFd = 0; - static uint32 retryAttempts = 0; - fd_set fds; - - struct timeval timeValue; - uint32 iStatus = -1; - - iStatus = CFE_ES_RegisterChildTask(); - - if (iStatus == CFE_SUCCESS) - { - while (VC_AppCustomDevice.ContinueFlag == TRUE) - { - maxFd = 0; - returnCode = 0; - - /* Initialize the set */ - FD_ZERO(&fds); - - /* Add enabled and streaming devices to the fd set */ - for (i=0; i < VC_MAX_DEVICES; i++) - { - if(VC_AppCustomDevice.Channel[i].Mode == VC_DEVICE_ENABLED - && VC_AppCustomDevice.Channel[i].Status == VC_DEVICE_INITIALIZED) - { - FD_SET(VC_AppCustomDevice.Channel[i].Socket, &fds); - /* Get the greatest fd value for select() */ - if (VC_AppCustomDevice.Channel[i].Socket > maxFd) - { - /* maxFd is needed for select */ - maxFd = VC_AppCustomDevice.Channel[i].Socket; - } - } - } - /* If maxFd is > 0 a fd was added the set so call select */ - if (maxFd > 0) - { - CFE_ES_PerfLogEntry(VC_DEVICE_GET_PERF_ID); - /* Wait for a socket fd to become ready */ - /* timeout set to null = block indefinitely */ - returnCode = select(maxFd + 1, &fds, 0, 0, 0); - CFE_ES_PerfLogExit(VC_DEVICE_GET_PERF_ID); - } - else - { - /* No fd's were added to the set so error out */ - CFE_EVS_SendEvent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, - "VC can't start streaming no devices are streaming enabled"); - returnCode = -1; - goto end_of_function; - } - - /* select() wasn't successful */ - if (-1 == returnCode) - { - /* select was interrupted, try again */ - if (EINTR == errno) - { - if (retryAttempts == VC_MAX_RETRY_ATTEMPTS) - { - goto end_of_function; - } - retryAttempts++; - usleep(VC_MAX_RETRY_SLEEP_USEC); - CFE_EVS_SendEvent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, - "VC select was interrupted"); - continue; - } - else - { - /* select returned an error other than EINTR */ - CFE_EVS_SendEvent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, - "VC start streaming failed select() returned %i", errno); - goto end_of_function; - } - } - /* select() returned and a socket is ready */ - if(returnCode > 0) - { - /* Determine which socket is ready */ - for (i=0; i < VC_MAX_DEVICES; i++) - { - if(VC_AppCustomDevice.Channel[i].Mode == VC_DEVICE_ENABLED - && VC_AppCustomDevice.Channel[i].Status == VC_DEVICE_INITIALIZED) - { - if(FD_ISSET(VC_AppCustomDevice.Channel[i].Socket, &fds)) - { - /* Call send buffer with the socket that is ready */ - VC_Send_Buffer(i); - } - } - } - } - } /* end while loop */ - } /* end if status == success */ - -end_of_function: - - /* Streaming task is exiting so set app flag to initialized */ - VC_AppData.AppState = VC_INITIALIZED; - CFE_EVS_SendEvent(VC_DEV_INF_EID, CFE_EVS_INFORMATION, - "VC streaming task exited with return code %li task status (0x%08lX)", - returnCode, iStatus); - - /* The child task was successfully created so exit from it */ - if (iStatus == CFE_SUCCESS) - { - CFE_ES_ExitChildTask(); - } -} - - -int32 VC_Send_Buffer(uint8 DeviceID) -{ - int32 returnCode = 0; - int size = 0; - unsigned int packetLength = 0; - - size = recv(VC_AppCustomDevice.Channel[DeviceID].Socket, - VC_AppCustomDevice.Channel[DeviceID].Buffer, VC_MAX_PACKET_SIZE, 0); - /* if we have the preamble header... */ - if (size == VC_MPARTMUX_HEADER_SIZE) - { - /* get the size of the payload from the preamble header */ - sscanf(&VC_AppCustomDevice.Channel[DeviceID].Buffer[VC_MPARTMUX_HEADER_LENGTH_START], - "%u", &packetLength); - /* receive the payload */ - size = recv(VC_AppCustomDevice.Channel[DeviceID].Socket, - VC_AppCustomDevice.Channel[DeviceID].Buffer, VC_MAX_PACKET_SIZE, 0); - /* if the size we received is not the size specified in the header - * something went wrong. Or sscanf didn't find a match so we - * don't have a size from the preamble etc */ - - if (size != packetLength) - { - CFE_EVS_SendEvent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, - "VC recv size error on channel %u", (unsigned int)DeviceID); - returnCode = -1; - goto end_of_function; - } - /* Send data, for now map device id to senddata channel */ - if (-1 == VC_SendData(DeviceID, (void*)VC_AppCustomDevice.Channel[DeviceID].Buffer, packetLength)) - { - CFE_EVS_SendEvent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, - "VC send data failed on channel %u", (unsigned int)DeviceID); - returnCode = -1; - goto end_of_function; - } - } - /* if recv returned an error */ - else if (size == -1) - { - /* recv returned an error */ - CFE_EVS_SendEvent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, - "VC recv errno: %i on channel %u", errno, (unsigned int)DeviceID); - returnCode = -1; - goto end_of_function; - } - else - { - /* do nothing we received the 2 byte preamble */ - goto end_of_function; - } - -end_of_function: - return returnCode; -} diff --git a/config/ocpoc/s1000/target/apps/vc/src/vc_dev_io_udp/vc_dev_io_udp.h b/config/ocpoc/s1000/target/apps/vc/src/vc_dev_io_udp/vc_dev_io_udp.h deleted file mode 100644 index 6513549cf..000000000 --- a/config/ocpoc/s1000/target/apps/vc/src/vc_dev_io_udp/vc_dev_io_udp.h +++ /dev/null @@ -1,167 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ - -#ifndef VC_DEV_IO_UDP_H -#define VC_DEV_IO_UDP_H - -/************************************************************************ -** Includes -*************************************************************************/ -#include "cfe.h" -#include "vc_dev_io.h" -#include "../vc_custom_shared.h" -#include "vc_perfids.h" -#include "vc_app.h" - -/************************************************************************ -** Local Defines -*************************************************************************/ -/* TODO move to platform config */ -/** \brief Size of the Gstreamer multipartmux preamble when configured -** with a boundary = "*". -** -** \par Limits: -** Varies with boundary specified. -*/ -#define VC_MPARTMUX_HEADER_SIZE (61) -/** \brief Char count where length of the payload is specified in the -** multipartmux preamble. -*/ -#define VC_MPARTMUX_HEADER_LENGTH_START (51) -/** \brief Gstreamer Gazebo camera plugin UDP output port number. -*/ -#define VC_GST_GAZEBO_PORT (5600) - -/************************************************************************ -** Structure Declarations -*************************************************************************/ - -/** - * Device modes - */ -typedef enum -{ - /*! Device state unused */ - VC_DEVICE_UNUSED = 0, - /*! Device state disabled */ - VC_DEVICE_DISABLED = 1, - /*! Device state enabled */ - VC_DEVICE_ENABLED = 2 -} VC_DeviceMode_t; - - -/** - * Device status - */ -typedef enum -{ - /*! Device status uninitialized */ - VC_DEVICE_UNINITIALIZED = 0, - /*! Device status uninitialized */ - VC_DEVICE_INITIALIZED = 1, - /*! Device status streaming */ - VC_DEVICE_STREAMING = 2 -} VC_DeviceStatus_t; - - -/** - * Device handle - */ -typedef struct -{ - /*! Device status */ - VC_DeviceStatus_t Status; - /*! Device mode */ - VC_DeviceMode_t Mode; - /*! Device socket file descriptor */ - int Socket; - /*! Device port number */ - uint16 Port; - /*! Device buffer for receiving image data */ - char Buffer[VC_MAX_PACKET_SIZE]; -} VC_Device_Handle_t; - - -/** - * Global data structure for custom device IO layer - */ -typedef struct -{ - /*! Flag to start and stop streaming */ - boolean ContinueFlag; - /*! Streaming task priority */ - uint8 Priority; - /*! Streaming child task identifier */ - uint32 ChildTaskID; - /*! Streaming task function pointer */ - CFE_ES_ChildTaskMainFuncPtr_t StreamingTask; - /*! Device resource(s) channels */ - VC_Device_Handle_t Channel[VC_MAX_DEVICES]; - /*! Streaming task flags */ - uint32 TaskFlags; -} VC_AppCustomDevice_t; - - -/** - * @brief Cleanup (close) all enabled devices - * @return 0 for success -1 for failure - */ -int32 VC_CleanupDevices(void); - - -/** - * @brief Initialize all enabled devices. - * @return 0 for success -1 for failure - */ -int32 VC_Init_CustomDevices(void); - - -/** - * @brief Streaming task, takes ready file descriptor and sends. - * @note This is a loop to be run in a VC app child task - */ -void VC_Stream_Task(void); - - -/** - * @brief send a buffer from a "ready" socket - * @note gst multipartmux sends 2 bytes, preamble bytes (70 if the - * default boundary string is used, less if a custom boundary is - * specified), followed by the image payload. - * @param DeviceID the device ID of the "ready" socket - * @return 0 for success -1 for failure - */ -int32 VC_Send_Buffer(uint8 DeviceID); - - -#endif diff --git a/config/ocpoc/s1000/target/apps/vc/src/vc_dev_io_v4l/vc_dev_io_v4l.c b/config/ocpoc/s1000/target/apps/vc/src/vc_dev_io_v4l/vc_dev_io_v4l.c deleted file mode 100644 index f6be72a7a..000000000 --- a/config/ocpoc/s1000/target/apps/vc/src/vc_dev_io_v4l/vc_dev_io_v4l.c +++ /dev/null @@ -1,858 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ - -/************************************************************************ -** Pragmas -*************************************************************************/ - -/************************************************************************ -** Includes -*************************************************************************/ -#include "vc_dev_io_v4l.h" -#include "cfe.h" -#include -#include -#include -#include -#include -#include -#include - -/************************************************************************ -** Local Defines -*************************************************************************/ - -/************************************************************************ -** Local Structure Declarations -*************************************************************************/ - -/************************************************************************ -** External Global Variables -*************************************************************************/ - -/************************************************************************ -** Global Variables -*************************************************************************/ - -/************************************************************************ -** Local Variables -*************************************************************************/ - -/************************************************************************ -** Local Function Definitions -*************************************************************************/ - -/** - * Custom device layer app data declaration - */ -VC_AppCustomDevice_t VC_AppCustomDevice; - - -int32 VC_CustomDevice_InitData() -{ - int32 iStatus = CFE_SUCCESS; - - /* Set all struct zero values */ - bzero(&VC_AppCustomDevice, sizeof(VC_AppCustomDevice)); - - /* Set all non-zero values for channel zero */ - VC_AppCustomDevice.ContinueFlag = TRUE; - VC_AppCustomDevice.Priority = VC_STREAMING_TASK_PRIORITY; - VC_AppCustomDevice.TaskFlags = VC_STREAMING_TASK_FLAGS; - VC_AppCustomDevice.StreamingTask = VC_Stream_Task; - VC_AppCustomDevice.Channel[0].Status = VC_DEVICE_UNINITIALIZED; - VC_AppCustomDevice.Channel[0].Mode = VC_DEVICE_ENABLED; - VC_AppCustomDevice.Channel[0].BufferType = VC_V4L_BUFFER_TYPE; - VC_AppCustomDevice.Channel[0].Buffer_Size = VC_MAX_BUFFER_SIZE; - VC_AppCustomDevice.Channel[0].FrameWidth = VC_FRAME_WIDTH; - VC_AppCustomDevice.Channel[0].FrameHeight = VC_FRAME_HEIGHT; - VC_AppCustomDevice.Channel[0].VideoFormat = VC_V4L_VIDEO_FORMAT; - VC_AppCustomDevice.Channel[0].FieldOrder = VC_V4L_VIDEO_FIELD_ORDER; - VC_AppCustomDevice.Channel[0].BufferRequest = VC_V4L_BUFFER_REQUEST; - VC_AppCustomDevice.Channel[0].MemoryType = VC_V4L_MEMORY_TYPE; - - strncpy(VC_AppCustomDevice.Channel[0].DevName, VC_DEVICE_PATH, VC_MAX_DEVICE_PATH); - - - return (iStatus); -} - - -int32 VC_Ioctl(int fh, int request, void *arg) -{ - int32 returnCode = 0; - uint32 i = 0; - - for (i=0; i < VC_MAX_RETRY_ATTEMPTS; i++) - { - returnCode = ioctl(fh, request, arg); - - if (-1 == returnCode && EINTR == errno) - { - usleep(VC_MAX_RETRY_SLEEP_USEC); - } - else - { - break; - } - } - - return (returnCode); -} - - -int32 VC_ConfigureDevice(uint8 DeviceID) -{ - int32 returnCode = 0; - struct v4l2_format Format = {}; - struct v4l2_capability Capabilities = {}; - struct v4l2_requestbuffers Request = {}; - - bzero(&Format, sizeof(Format)); - Format.type = VC_AppCustomDevice.Channel[DeviceID].BufferType; - Format.fmt.pix.width = VC_AppCustomDevice.Channel[DeviceID].FrameWidth; - Format.fmt.pix.height = VC_AppCustomDevice.Channel[DeviceID].FrameHeight; - Format.fmt.pix.pixelformat = VC_AppCustomDevice.Channel[DeviceID].VideoFormat; - Format.fmt.pix.field = VC_AppCustomDevice.Channel[DeviceID].FieldOrder; - - bzero(&Request, sizeof(Request)); - Request.count = VC_AppCustomDevice.Channel[DeviceID].BufferRequest; - Request.type = VC_AppCustomDevice.Channel[DeviceID].BufferType; - Request.memory = VC_AppCustomDevice.Channel[DeviceID].MemoryType; - - if (-1 == VC_Ioctl(VC_AppCustomDevice.Channel[DeviceID].DeviceFd, VIDIOC_QUERYCAP, &Capabilities)) - { - (void) CFE_EVS_SendEvent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, - "VC VIDIOC_QUERYCAP returned %i on %s channel %u", errno, - VC_AppCustomDevice.Channel[DeviceID].DevName, (unsigned int)DeviceID); - returnCode = -1; - goto end_of_function; - } - - if (!(Capabilities.capabilities & VC_AppCustomDevice.Channel[DeviceID].BufferType)) - { - (void) CFE_EVS_SendEvent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, - "VC Capabilities %u on %s channel %u not found", - (unsigned int)VC_AppCustomDevice.Channel[DeviceID].BufferType, - VC_AppCustomDevice.Channel[DeviceID].DevName, (unsigned int)DeviceID); - returnCode = -1; - goto end_of_function; - } - - if (!(Capabilities.capabilities & V4L2_CAP_STREAMING)) - { - (void) CFE_EVS_SendEvent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, - "VC Capabilities %u on %s channel %u not found", - V4L2_CAP_STREAMING, - VC_AppCustomDevice.Channel[DeviceID].DevName, (unsigned int)DeviceID); - returnCode = -1; - goto end_of_function; - } - - if (-1 == VC_Ioctl(VC_AppCustomDevice.Channel[DeviceID].DeviceFd, VIDIOC_S_FMT, &Format)) - { - (void) CFE_EVS_SendEvent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, - "VIDIOC_S_FMT returned %i on %s channel %u", errno, - VC_AppCustomDevice.Channel[DeviceID].DevName, (unsigned int)DeviceID); - returnCode = -1; - goto end_of_function; - } - - if (Format.fmt.pix.pixelformat != VC_AppCustomDevice.Channel[DeviceID].VideoFormat) - { - (void) CFE_EVS_SendEvent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, - "VC device %s channel %u didn't accept format %u.", - VC_AppCustomDevice.Channel[DeviceID].DevName, - (unsigned int)DeviceID, - (unsigned int)VC_AppCustomDevice.Channel[DeviceID].VideoFormat); - returnCode = -1; - goto end_of_function; - } - - if ((Format.fmt.pix.width != VC_AppCustomDevice.Channel[DeviceID].FrameWidth) || - (Format.fmt.pix.height != VC_AppCustomDevice.Channel[DeviceID].FrameHeight)) - { - (void) CFE_EVS_SendEvent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, - "VC device %s channel %u didn't accept resolution instead %d:%d.", - VC_AppCustomDevice.Channel[DeviceID].DevName, (unsigned int)DeviceID, - Format.fmt.pix.width, Format.fmt.pix.height); - returnCode = -1; - goto end_of_function; - } - - if (Format.fmt.pix.sizeimage > VC_AppCustomDevice.Channel[DeviceID].Buffer_Size) - { - (void) CFE_EVS_SendEvent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, - "VC device %s channel %u size image %u > buffer size %lu.", - VC_AppCustomDevice.Channel[DeviceID].DevName, (unsigned int)DeviceID, - Format.fmt.pix.sizeimage, VC_AppCustomDevice.Channel[DeviceID].Buffer_Size); - returnCode = -1; - goto end_of_function; - } - - if (-1 == VC_Ioctl(VC_AppCustomDevice.Channel[DeviceID].DeviceFd, VIDIOC_REQBUFS, &Request)) - { - (void) CFE_EVS_SendEvent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, - "VC VIDIOC_REQBUFS returned %i on %s channel %u.", errno, - VC_AppCustomDevice.Channel[DeviceID].DevName, (unsigned int)DeviceID); - returnCode = -1; - goto end_of_function; - } - - if (Request.count != VC_AppCustomDevice.Channel[DeviceID].BufferRequest) - { - (void) CFE_EVS_SendEvent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, - "VC VIDIOC_REQBUFS did not comply. %u buffers on %s channel %u.", Request.count, - VC_AppCustomDevice.Channel[DeviceID].DevName, (unsigned int)DeviceID); - returnCode = -1; - goto end_of_function; - } - -end_of_function: - return (returnCode); -} - - -int32 VC_Start_StreamingDevice(uint8 DeviceID) -{ - int32 returnCode = 0; - uint32 i = 0; - enum v4l2_buf_type Type; - struct v4l2_buffer Buffer; - - Type = VC_AppCustomDevice.Channel[DeviceID].BufferType; - - for (i=0; i < VC_AppCustomDevice.Channel[DeviceID].BufferRequest; i++) - { - VC_AppCustomDevice.Channel[DeviceID].Buffer_Ptrs[i].ptr = (void*)&VC_AppCustomDevice.Channel[DeviceID].Buffers[i][0]; - - bzero(&Buffer, sizeof(Buffer)); - Buffer.type = VC_AppCustomDevice.Channel[DeviceID].BufferType; - Buffer.memory = VC_AppCustomDevice.Channel[DeviceID].MemoryType; - Buffer.index = i; - Buffer.m.userptr = (unsigned long)VC_AppCustomDevice.Channel[DeviceID].Buffer_Ptrs[i].ptr; - Buffer.length = VC_AppCustomDevice.Channel[DeviceID].Buffer_Size; - - if (-1 == VC_Ioctl(VC_AppCustomDevice.Channel[DeviceID].DeviceFd, VIDIOC_QBUF, &Buffer)) - { - (void) CFE_EVS_SendEvent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, - "VC VIDIOC_QBUF returned %i on %s channel %u", errno, - VC_AppCustomDevice.Channel[DeviceID].DevName, (unsigned int)DeviceID); - returnCode = -1; - goto end_of_function; - } - } - - if (-1 == VC_Ioctl(VC_AppCustomDevice.Channel[DeviceID].DeviceFd, VIDIOC_STREAMON, &Type)) - { - (void) CFE_EVS_SendEvent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, - "VC VIDIOC_STREAMON returned %i on %s channel %u", errno, - VC_AppCustomDevice.Channel[DeviceID].DevName, (unsigned int)DeviceID); - returnCode = -1; - goto end_of_function; - } - else - { - (void) CFE_EVS_SendEvent(VC_DEV_INF_EID, CFE_EVS_INFORMATION, - "VC VIDIOC_STREAMON success on %s channel %u", - VC_AppCustomDevice.Channel[DeviceID].DevName, (unsigned int)DeviceID); - } - -end_of_function: - - return (returnCode); -} - - -int32 VC_Stop_StreamingDevice(uint8 DeviceID) -{ - int32 returnCode = 0; - uint32 i = 0; - enum v4l2_buf_type Type; - - Type = VC_AppCustomDevice.Channel[DeviceID].BufferType; - - if (-1 == VC_Ioctl(VC_AppCustomDevice.Channel[DeviceID].DeviceFd, VIDIOC_STREAMOFF, &Type)) - { - returnCode = -1; - } - - return (returnCode); -} - - -int32 VC_Send_Buffer(uint8 DeviceID) -{ - int32 returnCode = 0; - uint32 i = 0; - boolean checkFlag = FALSE; - - struct v4l2_buffer Buffer; - - bzero(&Buffer, sizeof(Buffer)); - Buffer.type = VC_AppCustomDevice.Channel[DeviceID].BufferType; - Buffer.memory = VC_AppCustomDevice.Channel[DeviceID].MemoryType; - - /* Dequeue the ready buffer */ - if (-1 == VC_Ioctl(VC_AppCustomDevice.Channel[DeviceID].DeviceFd, VIDIOC_DQBUF, &Buffer)) - { - /* VIDIOC_DQBUF failed */ - (void) CFE_EVS_SendEvent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, - "VC VIDIOC_DQBUF returned %i on %s channel %u", errno, - VC_AppCustomDevice.Channel[DeviceID].DevName, (unsigned int)DeviceID); - returnCode = -1; - goto end_of_function; - } - - /* The dequeued buffer is larger than max transmit packet size */ - if (Buffer.bytesused > VC_MAX_PACKET_SIZE) - { - /* The buffer is too large so skip sending */ - (void) CFE_EVS_SendEvent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, - "VC Packet on %s channel %u is too large", - VC_AppCustomDevice.Channel[DeviceID].DevName, (unsigned int)DeviceID); - //returnCode = -1; - goto queue_next_buffer; - } - - /* Check and make sure VIDIOC_DQBUF returned a valid address - * from possible addresses (user buffer pointers) - */ - for (i=0; i < VC_AppCustomDevice.Channel[DeviceID].BufferRequest; i++) - { - if ((Buffer.m.userptr == (unsigned long)VC_AppCustomDevice.Channel[DeviceID].Buffer_Ptrs[i].ptr) - && (Buffer.length == VC_AppCustomDevice.Channel[DeviceID].Buffer_Size)) - { - checkFlag = TRUE; - } - } - if (checkFlag == FALSE) - { - /* VIDIOC_DQBUF returned an unknown buffer address */ - (void) CFE_EVS_SendEvent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, - "VC VIDIOC_DQBUF returned unknown user pointer on %s channel %u", - VC_AppCustomDevice.Channel[DeviceID].DevName, (unsigned int)DeviceID); - returnCode = -1; - goto end_of_function; - } - - /* Send data, for now map device id to senddata channel */ - if (-1 == VC_SendData(DeviceID, (void*)Buffer.m.userptr, Buffer.bytesused)) - { - (void) CFE_EVS_SendEvent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, - "VC send data failed on %s channel %u", - VC_AppCustomDevice.Channel[DeviceID].DevName, (unsigned int)DeviceID); - returnCode = -1; - goto end_of_function; - } - -queue_next_buffer: - - /* Queue the next buffer */ - if (-1 == VC_Ioctl(VC_AppCustomDevice.Channel[DeviceID].DeviceFd, VIDIOC_QBUF, &Buffer)) - { - (void) CFE_EVS_SendEvent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, - "VC VIDIOC_QBUF returned %i on %s channel %u", errno, - VC_AppCustomDevice.Channel[DeviceID].DevName, (unsigned int)DeviceID); - returnCode = -1; - } - -end_of_function: - return (returnCode); -} - - -void VC_Stream_Task(void) -{ - int32 returnCode = 0; - static int32 timeouts = 0; - - uint32 i = 0; - uint32 j = 0; - uint32 maxFd = 0; - static uint32 retryAttempts = 0; - fd_set fds; - - struct timeval timeValue; - uint32 iStatus = -1; - - iStatus = CFE_ES_RegisterChildTask(); - - if (iStatus == CFE_SUCCESS) - { - while (VC_AppCustomDevice.ContinueFlag == TRUE) - { - maxFd = 0; - returnCode = 0; - - /* Select modifies the timeout value with time left until - * the timeout would expire so timeValue needs to be set - * every loop iteration - */ - timeValue.tv_sec = VC_BUFFER_FILL_TIMEOUT_SEC; - timeValue.tv_usec = VC_BUFFER_FILL_TIMEOUT_USEC; - - /* Initialize the set */ - FD_ZERO(&fds); - - /* Add enabled and streaming devices to the fd set */ - for (i=0; i < VC_MAX_DEVICES; i++) - { - if(VC_AppCustomDevice.Channel[i].Mode == VC_DEVICE_ENABLED - && VC_AppCustomDevice.Channel[i].Status == VC_DEVICE_STREAMING) - { - FD_SET(VC_AppCustomDevice.Channel[i].DeviceFd, &fds); - - /* Get the greatest fd value for select() */ - if (VC_AppCustomDevice.Channel[i].DeviceFd > maxFd) - { - /* maxFd is needed for select */ - maxFd = VC_AppCustomDevice.Channel[i].DeviceFd; - } - } - } - /* If maxFd is > 0 a fd was added the set so call select */ - if (maxFd > 0) - { - CFE_ES_PerfLogEntry(VC_DEVICE_GET_PERF_ID); - /* Wait for a queued buffer to be filled by the device */ - returnCode = select(maxFd + 1, &fds, 0, 0, &timeValue); - CFE_ES_PerfLogExit(VC_DEVICE_GET_PERF_ID); - } - else - { - /* No fd's were added to the set so error out */ - (void) CFE_EVS_SendEvent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, - "VC can't start streaming no devices are streaming enabled"); - returnCode = -1; - goto end_of_function; - } - - /* select() wasn't successful */ - if (-1 == returnCode) - { - /* select was interrupted, try again */ - if (EINTR == errno) - { - if (retryAttempts == VC_MAX_RETRY_ATTEMPTS) - { - goto end_of_function; - } - retryAttempts++; - usleep(VC_MAX_RETRY_SLEEP_USEC); - (void) CFE_EVS_SendEvent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, - "VC select was interrupted"); - continue; - } - else - { - /* select returned an error other than EINTR */ - (void) CFE_EVS_SendEvent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, - "VC start streaming failed select() returned %i", errno); - goto end_of_function; - } - } - /* select timed out */ - if (0 == returnCode) - { - if (timeouts == VC_BUFFER_TIMEOUTS_ALLOWED) - { - returnCode = -1; - goto end_of_function; - } - timeouts++; - usleep(VC_MAX_RETRY_SLEEP_USEC); - CFE_EVS_SendEvent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, - "VC select timed out"); - continue; - } - /* select() returned and a buffer is ready to be dequeued */ - if(returnCode > 0) - { - /* Determine which device is ready */ - for (i=0; i < VC_MAX_DEVICES; i++) - { - if(VC_AppCustomDevice.Channel[i].Mode == VC_DEVICE_ENABLED - && VC_AppCustomDevice.Channel[i].Status == VC_DEVICE_STREAMING) - { - if(FD_ISSET(VC_AppCustomDevice.Channel[i].DeviceFd, &fds)) - { - /* Call send buffer with the device that is ready */ - returnCode = VC_Send_Buffer(i); - if(returnCode != 0) - { - (void) CFE_EVS_SendEvent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, - "VC Send_Buffer failed, a device may have been disconnected, disabling device %u", (unsigned int)i); - VC_DisableDevice(i); - } - } - } - } - } - } /* end while loop */ - } /* end if status == success */ - -end_of_function: - - /* Streaming task is exiting so set app flag to initialized */ - VC_AppData.AppState = VC_INITIALIZED; - (void) CFE_EVS_SendEvent(VC_DEV_INF_EID, CFE_EVS_INFORMATION, - "VC streaming task exited with return code %li task status (0x%08lX)", - returnCode, iStatus); - - /* The child task was successfully created so exit from it */ - if (iStatus == CFE_SUCCESS) - { - CFE_ES_ExitChildTask(); - } -} - - -int32 VC_Start_Streaming(void) -{ - uint32 i = 0; - int32 returnCode = 0; - - for(i=0; i < VC_MAX_DEVICES; i++) - { - if((VC_AppCustomDevice.Channel[i].Mode == VC_DEVICE_ENABLED) && - (VC_AppCustomDevice.Channel[i].Status == VC_DEVICE_INITIALIZED)) - { - if(-1 == VC_Start_StreamingDevice(i)) - { - /* Start streaming failed */ - returnCode = -1; - } - else - { - /* Start streaming was successful set status to streaming */ - VC_AppCustomDevice.Channel[i].Status = VC_DEVICE_STREAMING; - } - } - } - return (returnCode); -} - - -int32 VC_Stop_Streaming(void) -{ - uint32 i = 0; - int32 returnCode = 0; - - for(i=0; i < VC_MAX_DEVICES; i++) - { - if((VC_AppCustomDevice.Channel[i].Mode == VC_DEVICE_ENABLED) && - (VC_AppCustomDevice.Channel[i].Status == VC_DEVICE_STREAMING)) - { - if(-1 == VC_Stop_StreamingDevice(i)) - { - /* Stop streaming failed */ - returnCode = -1; - } - else - { - /* Stop streaming was successful set status to initialized */ - VC_AppCustomDevice.Channel[i].Status = VC_DEVICE_INITIALIZED; - } - } - } - return (returnCode); -} - - -int32 VC_InitDevice(uint8 DeviceID, const char *DeviceName) -{ - int32 returnCode = 0; - uint32 i = 0; - - if((VC_AppCustomDevice.Channel[DeviceID].Mode == VC_DEVICE_ENABLED) && - (VC_AppCustomDevice.Channel[DeviceID].DeviceFd != 0)) - { - (void) CFE_EVS_SendEvent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, - "VC Device %s for channel %u already initialized.", DeviceName, (unsigned int)i); - returnCode = -1; - goto end_of_function; - } - - if(DeviceName == 0) - { - (void) CFE_EVS_SendEvent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, - "VC Device name for channel %u is null.", (unsigned int)i); - returnCode = -1; - goto end_of_function; - } - - if(DeviceID >= VC_MAX_DEVICES) - { - (void) CFE_EVS_SendEvent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, - "VC DeviceID (%u) invalid.", (unsigned int)DeviceID); - returnCode = -1; - goto end_of_function; - } - - VC_AppCustomDevice.Channel[DeviceID].DeviceFd = open(DeviceName, O_RDWR | O_NONBLOCK, 0); - if(VC_AppCustomDevice.Channel[DeviceID].DeviceFd < 0) - { - (void) CFE_EVS_SendEvent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, - "VC Device open errno: %i on channel %u", errno, (unsigned int)i); - returnCode = -1; - goto end_of_function; - } - -end_of_function: - return (returnCode); -} - - -int32 VC_Init_CustomDevices(void) -{ - uint32 i = 0; - int32 returnCode = 0; - - for (i=0; i < VC_MAX_DEVICES; i++) - { - if(VC_AppCustomDevice.Channel[i].Mode == VC_DEVICE_ENABLED) - { - /* If the device is enabled initialize it */ - returnCode = VC_InitDevice(i, VC_AppCustomDevice.Channel[i].DevName); - if (returnCode) - { - /* If the device failed to be initialized set to disabled - * an error event will be generated in VC_InitDevice */ - VC_AppCustomDevice.Channel[i].Mode = VC_DEVICE_DISABLED; - } - else - { - /* Success, raise info event */ - (void) CFE_EVS_SendEvent(VC_DEV_INF_EID, CFE_EVS_INFORMATION, - "VC Device initialized channel %u from %s", - (unsigned int)i, VC_AppCustomDevice.Channel[i].DevName); - - /* The device is initialized so now configure it */ - returnCode = VC_ConfigureDevice(i); - if (returnCode) - { - /* The device failed to be configured so make sure - * the status is set to uninitialized - */ - VC_AppCustomDevice.Channel[i].Status = VC_DEVICE_UNINITIALIZED; - } - else - { - /* Success, set status to device initialized and - * raise a info event - */ - VC_AppCustomDevice.Channel[i].Status = VC_DEVICE_INITIALIZED; - (void) CFE_EVS_SendEvent(VC_DEV_INF_EID, CFE_EVS_INFORMATION, - "VC Device configured channel %u from %s", - (unsigned int)i, VC_AppCustomDevice.Channel[i].DevName); - } - } - } - } - return (returnCode); -} - - -int32 VC_CleanupDevices(void) -{ - uint32 i = 0; - int32 returnCode = 0; - - for(i=0; i < VC_MAX_DEVICES; i++) - { - if(VC_AppCustomDevice.Channel[i].Mode == VC_DEVICE_ENABLED) - { - if(VC_AppCustomDevice.Channel[i].Status == VC_DEVICE_STREAMING) - { - if(-1 == VC_Stop_StreamingDevice(i)) - { - /* VC_Stop_Streaming failed */ - returnCode = -1; - } - else - { - /* Success set device status to initialized */ - VC_AppCustomDevice.Channel[i].Status = VC_DEVICE_INITIALIZED; - } - } - - if(-1 == VC_DisableDevice(i)) - { - /* VC_DisableDevice failed */ - returnCode = -1; - } - else - { - VC_AppCustomDevice.Channel[i].Mode = VC_DEVICE_DISABLED; - } - } - } - return (returnCode); -} - - -void VC_Devices_Critical_Cleanup(void) -{ - uint8 i = 0; - - for(i=0; i < VC_MAX_DEVICES; i++) - { - if(VC_AppCustomDevice.Channel[i].DeviceFd != 0) - { - ioctl(VC_AppCustomDevice.Channel[i].DeviceFd, VIDIOC_STREAMOFF, &VC_AppCustomDevice.Channel[i].BufferType); - close(VC_AppCustomDevice.Channel[i].DeviceFd); - } - } - return; -} - - -int32 VC_DisableDevice(uint8 DeviceID) -{ - int32 returnCode = 0; - - if(VC_AppCustomDevice.Channel[DeviceID].Mode != VC_DEVICE_ENABLED) - { - returnCode = -1; - goto end_of_function; - } - - returnCode = close(VC_AppCustomDevice.Channel[DeviceID].DeviceFd); - if (0 == returnCode) - { - VC_AppCustomDevice.Channel[DeviceID].DeviceFd = 0; - } - -end_of_function: - return (returnCode); -} - - -/* - * Start streaming on all enabled and initialized devices - * True for success, false for failure - * Note: Creates the streaming task - */ -boolean VC_Devices_Start(void) -{ - int32 returnCode = 0; - boolean returnBool = TRUE; - - /* Set loop flag to continue forever */ - VC_AppCustomDevice.ContinueFlag = TRUE; - - /* Start streaming on all devices */ - if(-1 == VC_Start_Streaming()) - { - VC_AppCustomDevice.ContinueFlag = FALSE; - returnBool = FALSE; - goto end_of_function; - } - - /* Create the streaming task */ - returnCode = CFE_ES_CreateChildTask( - &VC_AppCustomDevice.ChildTaskID, - VC_STREAMING_TASK_NAME, - VC_AppCustomDevice.StreamingTask, - 0, - CFE_ES_DEFAULT_STACK_SIZE, - VC_AppCustomDevice.Priority, - VC_STREAMING_TASK_FLAGS); - - if(returnCode != CFE_SUCCESS) - { - VC_AppCustomDevice.ContinueFlag = FALSE; - returnBool = FALSE; - } - -end_of_function: - - return (returnBool); -} - - -/* - * Stop streaming on all enabled and initialized devices - * True for success, false for failure - * Note: Deletes the streaming task - */ -boolean VC_Devices_Stop(void) -{ - boolean returnBool = TRUE; - - /* Delete the child task */ - CFE_ES_DeleteChildTask(VC_AppCustomDevice.ChildTaskID); - - /* Set streaming task loop flag to stop */ - VC_AppCustomDevice.ContinueFlag = FALSE; - - /* Set app state to initialized */ - VC_AppData.AppState = VC_INITIALIZED; - - if(-1 == VC_Stop_Streaming()) - { - returnBool = FALSE; - } - - return (returnBool); -} - - -boolean VC_Devices_Init(void) -{ - boolean returnBool = TRUE; - if(-1 == VC_Init_CustomDevices()) - { - returnBool = FALSE; - } - return (returnBool); -} - - -boolean VC_Devices_Uninit(void) -{ - boolean returnBool = TRUE; - if(-1 == VC_CleanupDevices()) - { - returnBool = FALSE; - } - return (returnBool); -} - - -int32 VC_Devices_InitData() -{ - return VC_CustomDevice_InitData(); -} - diff --git a/config/ocpoc/s1000/target/apps/vc/src/vc_dev_io_v4l/vc_dev_io_v4l.h b/config/ocpoc/s1000/target/apps/vc/src/vc_dev_io_v4l/vc_dev_io_v4l.h deleted file mode 100644 index 1e4a63491..000000000 --- a/config/ocpoc/s1000/target/apps/vc/src/vc_dev_io_v4l/vc_dev_io_v4l.h +++ /dev/null @@ -1,252 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ - -#ifndef VC_DEV_IO_V4L_H -#define VC_DEV_IO_V4L_H - -#include "cfe.h" -#include "vc_dev_io.h" -#include "../vc_custom_shared.h" -#include "vc_perfids.h" -#include "vc_app.h" - -/************************************************************************ -** Structure Declarations -*************************************************************************/ - -/** - * Device modes - */ -typedef enum -{ - /*! Device state unused */ - VC_DEVICE_UNUSED = 0, - /*! Device state disabled */ - VC_DEVICE_DISABLED = 1, - /*! Device state enabled */ - VC_DEVICE_ENABLED = 2 -} VC_DeviceMode_t; - - -/** - * Device status - */ -typedef enum -{ - /*! Device status uninitialized */ - VC_DEVICE_UNINITIALIZED = 0, - /*! Device status uninitialized */ - VC_DEVICE_INITIALIZED = 1, - /*! Device status streaming */ - VC_DEVICE_STREAMING = 2 -} VC_DeviceStatus_t; - - -/** - * Buffer pointers for V4L user pointer IO - */ -typedef struct { - /*! Pointer to user defined buffer */ - void *ptr; -}VC_BufferPtr_t; - - -/** - * Device handle - */ -typedef struct -{ - /*! Device status */ - VC_DeviceStatus_t Status; - /*! Device mode */ - VC_DeviceMode_t Mode; - /*! Device resource channel identifier */ - uint8 ChannelID; - /*! Path to device */ - char DevName[VC_MAX_DEVICE_PATH]; - /*! Device file descriptor */ - int DeviceFd; - /*! V4L buffer type */ - uint32 BufferType; - /*! V4L frame width */ - uint32 FrameWidth; - /*! V4L frame height */ - uint32 FrameHeight; - /*! V4L video format */ - uint32 VideoFormat; - /*! V4L field order */ - uint8 FieldOrder; - /*! V4L buffer request */ - uint8 BufferRequest; - /*! V4L memory type */ - uint32 MemoryType; - /*! V4L user defined buffer(s) */ - char Buffers[VC_V4L_BUFFER_REQUEST][VC_MAX_BUFFER_SIZE]; - /*! V4L buffer size (for all buffers) */ - uint32 Buffer_Size; - /*! V4L user defined buffer pointer(s) */ - VC_BufferPtr_t Buffer_Ptrs[VC_V4L_BUFFER_REQUEST]; -} VC_Device_Handle_t; - - -/** - * Global data structure for custom device IO layer - */ -typedef struct -{ - /*! Flag to start and stop streaming */ - boolean ContinueFlag; - /*! Streaming task priority */ - uint8 Priority; - /*! Streaming child task identifier */ - uint32 ChildTaskID; - /*! Streaming task function pointer */ - CFE_ES_ChildTaskMainFuncPtr_t StreamingTask; - /*! Device resource(s) channels */ - VC_Device_Handle_t Channel[VC_MAX_DEVICES]; - /*! Streaming task flags */ - uint32 TaskFlags; -} VC_AppCustomDevice_t; - - -/************************************************************************ -** Function Prototypes -*************************************************************************/ - -/** - * @brief Custom function to initialize custom device data structure. - * @return CFE_SUCCESS - */ -int32 VC_CustomDevice_InitData(void); - - -/** - * @brief ioctl with limited EINTR retry attempts - * @param fh file descriptor - * @param request ioctl request code - * @param arg pointer to a device specific struct - * @return usually 0 for success and -1 for failure - * @note see ioctl man-page for more info - */ -int32 VC_Ioctl(int fh, int request, void *arg); - - -/** - * @brief Initialize, configure, and start all enabled devices - * @return usually 0 for success -1 for failure - * @note see ioctl man-page for more info - */ -int32 VC_Init_CustomDevices(void); - - -/** - * @brief Initialize an enabled device - * @param DeviceID the device to initialize - * @param DeviceName the device name (path) to open - * @return 0 for success -1 for failure - */ -int32 VC_InitDevice(uint8 DeviceID, const char *DeviceName); - - -/** - * Configure device resource - * @param DeviceID the device ID of the resource to configure - * @return 0 for success -1 for failure - */ -int32 VC_ConfigureDevice(uint8 DeviceID); - - -/** - * @brief Start streaming on all devices - * @return 0 for success -1 for failure - */ -int32 VC_Start_Streaming(void); - - -/** - * @brief start streaming on a particular device - * @param DeviceID the device ID to start streaming on - * @return 0 for success -1 for failure - */ -int32 VC_Start_StreamingDevice(uint8 DeviceID); - - -/** - * @brief Streaming task, takes ready buffer and sends - * @note This is a loop to be run in a VC app child task - */ -void VC_Stream_Task(void); - - -/** - * @brief dequeue and send a buffer from a "ready" device - * @param DeviceID the device ID of the "ready" device - * @return 0 for success -1 for failure - */ -int32 VC_Send_Buffer(uint8 DeviceID); - - -/** - * @brief Stop streaming on all devices - * @return 0 for success -1 for failure - */ -int32 VC_Stop_Streaming(void); - - -/** - * @brief stop streaming on a particular device - * @param DeviceID the device ID to stop streaming on - * @return 0 for success -1 for failure - */ -int32 VC_Stop_StreamingDevice(uint8 DeviceID); - - -/** - * @brief Disable a device - * @param DeviceID the device to enable - * @return 0 for success -1 for failure - */ -int32 VC_DisableDevice(uint8 DeviceID); - - -/** - * @brief Cleanup (stop & close) all enabled and initialized devices - * @return 0 for success -1 for failure - */ -int32 VC_CleanupDevices(void); - - -extern VC_AppCustomDevice_t VC_AppCustomDevice; - -#endif - diff --git a/config/ocpoc/s1000/target/apps/vc/src/vc_transmit_udp/vc_transmit_udp.c b/config/ocpoc/s1000/target/apps/vc/src/vc_transmit_udp/vc_transmit_udp.c deleted file mode 100644 index add25556a..000000000 --- a/config/ocpoc/s1000/target/apps/vc/src/vc_transmit_udp/vc_transmit_udp.c +++ /dev/null @@ -1,432 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ - -/************************************************************************ -** Pragmas -*************************************************************************/ - -/************************************************************************ -** Includes -*************************************************************************/ -#include "vc_transmit_udp.h" -#include "cfe.h" -#include -#include -#include -#include "px4lib.h" - - -/************************************************************************ -** Local Defines -*************************************************************************/ -#define OP_FLOW_FRAME_WIDTH 64 -#define OP_FLOW_FRAME_HEIGHT 64 -/************************************************************************ -** Local Structure Declarations -*************************************************************************/ - -/************************************************************************ -** External Global Variables -*************************************************************************/ - -/************************************************************************ -** Global Variables -*************************************************************************/ - - -/************************************************************************ -** Local Variables -*************************************************************************/ - -/************************************************************************ -** Local Function Definitions -*************************************************************************/ - -/** - * Global data structure for custom device transmit layer - */ -VC_AppCustomData_t VC_AppCustomData; - - -int32 VC_CustomTransmit_InitData() -{ - int32 iStatus = CFE_SUCCESS; - - /* Set all struct zero values */ - bzero(&VC_AppCustomData, sizeof(VC_AppCustomData)); - - /* Set all non-zero values for channel zero */ - VC_AppCustomData.Channel[0].Mode = VC_CHANNEL_ENABLED; - VC_AppCustomData.Channel[0].ChannelID = 0; - VC_AppCustomData.Channel[0].DestPort = VC_DESTINATION_PORT; - VC_AppCustomData.Channel[0].SocketFd = 0; - - strncpy(VC_AppCustomData.Channel[0].DestIP, VC_DESTINATION_IP, INET_ADDRSTRLEN); - strncpy(VC_AppCustomData.Channel[0].MyIP, VC_SOURCE_IP, INET_ADDRSTRLEN); - - - /* Initialize output messages*/ - CFE_SB_InitMsg(&OpticalFlowFrameMsg, FLOW_FRAME_MID, - sizeof(PX4_OpticalFlowFrameMsg_t), TRUE); - - return (iStatus); -} - - -int32 VC_EnableChannel(uint8 ChannelID) -{ - int32 returnCode = 0; - uint32 i = 0; - struct sockaddr_in servaddr; - int status; - int reuseaddr = 1; - - if((VC_AppCustomData.Channel[ChannelID].Mode == VC_CHANNEL_ENABLED) && - (VC_AppCustomData.Channel[ChannelID].SocketFd != 0)) - { - (void) CFE_EVS_SendEvent(VC_SOCKET_ERR_EID, CFE_EVS_ERROR, - "VC UDP for channel %u already enabled.", (unsigned int)i); - returnCode = -1; - goto end_of_function; - } - - if(ChannelID >= VC_MAX_OUTPUT_CHANNELS) - { - (void) CFE_EVS_SendEvent(VC_SOCKET_ERR_EID, CFE_EVS_ERROR, - "VC ChannelID (%u) invalid.", (unsigned int)ChannelID); - returnCode = -1; - goto end_of_function; - } - - VC_AppCustomData.Channel[ChannelID].SocketFd = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP); - if(VC_AppCustomData.Channel[ChannelID].SocketFd < 0) - { - VC_AppCustomData.Channel[ChannelID].Mode = VC_CHANNEL_DISABLED; - (void) CFE_EVS_SendEvent(VC_SOCKET_ERR_EID, CFE_EVS_ERROR, - "VC socket errno: %i on channel %u", errno, (unsigned int)i); - returnCode = -1; - goto end_of_function; - } - - /* Set the Reuse Address flag. If we don't set this flag, the socket will - * lock the port on termination and the kernel won't unlock it until it - * times out after a minute or so. - */ - setsockopt(VC_AppCustomData.Channel[ChannelID].SocketFd, SOL_SOCKET, SO_REUSEADDR, &reuseaddr, sizeof(reuseaddr)); - - /* Set the input arguments to the socket bind. - */ - - bzero(&servaddr,sizeof(servaddr)); - servaddr.sin_family = AF_INET; - servaddr.sin_port = htons(VC_AppCustomData.Channel[ChannelID].MyPort); - - if (inet_aton(VC_AppCustomData.Channel[ChannelID].MyIP, &servaddr.sin_addr) == 0) - { - (void) CFE_EVS_SendEvent(VC_SOCKET_ERR_EID, CFE_EVS_ERROR, - "VC inet_aton errno: %i on channel %u", errno, (unsigned int)i); - returnCode = -1; - goto end_of_function; - } - - status = bind(VC_AppCustomData.Channel[ChannelID].SocketFd, - (struct sockaddr *)&servaddr,sizeof(servaddr)); - if(status < 0) - { - (void) CFE_EVS_SendEvent(VC_SOCKET_ERR_EID, CFE_EVS_ERROR, - "VC bind errno: %i on channel %u", errno, (unsigned int)i); - VC_AppCustomData.Channel[ChannelID].Mode = VC_CHANNEL_DISABLED; - returnCode = -1; - } - -end_of_function: - return (returnCode); -} - - -int32 VC_Init_CustomTransmitters(void) -{ - uint32 i = 0; - int32 returnCode = 0; - - for (i=0; i < VC_MAX_OUTPUT_CHANNELS; i++) - { - if(VC_AppCustomData.Channel[i].Mode == VC_CHANNEL_ENABLED) - { - if(VC_EnableChannel(i)) - { - returnCode = -1; - VC_AppCustomData.Channel[i].Mode = VC_CHANNEL_DISABLED; - } - else - { - (void) CFE_EVS_SendEvent(VC_CHA_INF_EID, CFE_EVS_INFORMATION, - "VC UDP output enabled channel %u to %s:%u", - (unsigned int)i, VC_AppCustomData.Channel[i].DestIP, - (unsigned int)VC_AppCustomData.Channel[i].DestPort); - } - } - } - return (returnCode); -} - - -int32 VC_DisableChannel(uint8 ChannelID) -{ - int32 returnCode = 0; - - if(VC_AppCustomData.Channel[ChannelID].Mode != VC_CHANNEL_ENABLED) - { - returnCode = -1; - goto end_of_function; - } - - if(-1 == close(VC_AppCustomData.Channel[ChannelID].SocketFd)) - { - returnCode = -1; - goto end_of_function; - } - else - { - VC_AppCustomData.Channel[ChannelID].SocketFd = 0; - } - -end_of_function: - return (returnCode); -} - - -int32 VC_CleanupCustom(void) -{ - uint32 i = 0; - int32 returnCode = 0; - - for(i=0; i < VC_MAX_OUTPUT_CHANNELS; i++) - { - if(VC_AppCustomData.Channel[i].Mode == VC_CHANNEL_ENABLED) - { - if(-1 == VC_DisableChannel(i)) - { - returnCode = -1; - } - } - } - return returnCode; -} - - -boolean VC_Transmit_Init(void) -{ - boolean returnBool = TRUE; - if(-1 == VC_Init_CustomTransmitters()) - { - (void) CFE_EVS_SendEvent(VC_SOCKET_ERR_EID, CFE_EVS_ERROR, \ - "VC_Transmit_Init Failed"); - returnBool = FALSE; - } - return (returnBool); -} - - -boolean VC_Transmit_Uninit(void) -{ - boolean returnBool = TRUE; - if(-1 == VC_CleanupCustom()) - { - returnBool = FALSE; - } - return (returnBool); -} - - -void VC_Transmit_Critical_Cleanup(void) -{ - uint8 i = 0; - - for(i=0; i < VC_MAX_OUTPUT_CHANNELS; i++) - { - if(VC_AppCustomData.Channel[i].SocketFd != 0) - { - close(VC_AppCustomData.Channel[i].SocketFd); - } - } - return; -} - - -int32 VC_SendData(uint32 ChannelID, const char* Buffer, uint32 Size) -{ - static struct sockaddr_in s_addr; - int status = 0; - int32 returnCode = 0; - - bzero((char *) &s_addr, sizeof(s_addr)); - s_addr.sin_family = AF_INET; - - if(ChannelID < VC_MAX_OUTPUT_CHANNELS) - { - VC_Transmit_Handle_t *channel = &VC_AppCustomData.Channel[ChannelID]; - - if(channel->Mode == VC_CHANNEL_ENABLED) - { - - CFE_ES_PerfLogEntry(VC_SOCKET_SEND_PERF_ID); - /* Send message via UDP socket */ - s_addr.sin_addr.s_addr = inet_addr(channel->DestIP); - s_addr.sin_port = htons(channel->DestPort); - - /* If the frame is from opFlow dedicated camera device - * convert image from YUV2 or YUYV to Grey by extracting the Y component. - * copy the image to opticalFlowFrameMsg*/ - if(ChannelID == 0) - { - /* Row */ - uint32 rowPadding = (VC_FRAME_HEIGHT-OP_FLOW_FRAME_HEIGHT)/2; - uint32 startRow = ((VC_FRAME_WIDTH)*(rowPadding-1)); - uint32 endRow = ((VC_FRAME_WIDTH)*(VC_FRAME_HEIGHT-rowPadding-1)); - /* Column */ - uint32 columnPadding = (VC_FRAME_WIDTH-OP_FLOW_FRAME_WIDTH)/2; - uint32 startColumn = (columnPadding); - uint32 endColumn = (VC_FRAME_WIDTH-columnPadding-1); - - uint32 byteCounter = 0; - uint32 colCounter = 0; - uint32 valCounter = 0; - - uint32 columnPaddingCounter = 0; - uint32 rowPaddingCounter = 0; - uint32 i; - for(i =0 ; i= endRow) - { - byteCounter++; - continue; - - } - else - { - if(byteCounter!=0 && byteCounter%VC_FRAME_WIDTH == 0) - { - colCounter = 0; - } - - if(colCounter>=startColumn && colCounter<=endColumn) - { - OpticalFlowFrameMsg.Frame[valCounter]=(uint8)Buffer[i]; - valCounter++; - } - colCounter++; - } - byteCounter++; - } - } - - /* Publish message to software bus */ - uint64 timestamp; - timestamp = PX4LIB_GetPX4TimeUs(); - OpticalFlowFrameMsg.Timestamp = timestamp; - CFE_SB_TimeStampMsg((CFE_SB_Msg_t*) &OpticalFlowFrameMsg); - CFE_SB_SendMsg((CFE_SB_Msg_t*) &OpticalFlowFrameMsg); - status = PX4_OPTICAL_FLOW_FRAME_SIZE; - - /* Send frame over udp*/ - status = sendto(channel->SocketFd, (char *)OpticalFlowFrameMsg.Frame, sizeof(OpticalFlowFrameMsg.Frame), 0, - (struct sockaddr *) &s_addr, - sizeof(s_addr)); - } - - if (status < 0) - { - if(errno == 90) - { - (void) CFE_EVS_SendEvent(VC_SOCKET_ERR_EID,CFE_EVS_ERROR, - "L%d VC sendto errno %d. Message too long. Size=%u", __LINE__, errno, (unsigned int)Size); - } - else - { - (void) CFE_EVS_SendEvent(VC_SOCKET_ERR_EID, CFE_EVS_ERROR, - "L%d VC sendto errno %d.", __LINE__, errno); - } - - /* Delay the task to prevent the possibility of busy waiting and accidental denial of service. */ - OS_TaskDelay(1000); - } - CFE_ES_PerfLogExit(VC_SOCKET_SEND_PERF_ID); - } - } - return (returnCode); -} - - -boolean VC_Address_Verification(const char *Address) -{ - boolean returnBool = FALSE; - static struct sockaddr_in s_addr; - if(0 != inet_aton(Address, &s_addr.sin_addr)) - { - returnBool = TRUE; - } - return (returnBool); -} - - -boolean VC_Update_Destination(const char *Address, uint16 Port) -{ - boolean returnBool = TRUE; - uint32 i = 0; - - for (i=0; i < VC_MAX_OUTPUT_CHANNELS; i++) - { - if(VC_AppCustomData.Channel[i].Mode == VC_CHANNEL_ENABLED) - { - VC_AppCustomData.Channel[i].DestPort = Port; - - if(!strncpy(VC_AppCustomData.Channel[i].DestIP, Address, INET_ADDRSTRLEN)) - { - returnBool = FALSE; - } - } - } - - return (returnBool); -} - - -int32 VC_Transmit_InitData() -{ - return VC_CustomTransmit_InitData(); -} - diff --git a/config/ocpoc/s1000/target/apps/vc/src/vc_transmit_udp/vc_transmit_udp.h b/config/ocpoc/s1000/target/apps/vc/src/vc_transmit_udp/vc_transmit_udp.h deleted file mode 100644 index e83ecd4be..000000000 --- a/config/ocpoc/s1000/target/apps/vc/src/vc_transmit_udp/vc_transmit_udp.h +++ /dev/null @@ -1,145 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ - -#ifndef VC_TRANSMIT_UDP_H -#define VC_TRANSMIT_UDP_H - -/************************************************************************ -** Includes -*************************************************************************/ -#include "cfe.h" -#include "px4_msgs.h" -#include "msg_ids.h" -#include "vc_transmit.h" -#include "../vc_custom_shared.h" -#include "vc_perfids.h" -#include -#include "vc_app.h" - -/************************************************************************ -** Structure Declarations -*************************************************************************/ - -/** - * Channel modes - */ -typedef enum -{ - /*! Channel state unused */ - VC_CHANNEL_UNUSED = 0, - /*! Channel state disabled */ - VC_CHANNEL_DISABLED = 1, - /*! Channel state enabled */ - VC_CHANNEL_ENABLED = 2 -} VC_ChannelMode_t; - - -/** - * Transmit struct handle for user defined source and/or destination - * configuration information and initialized resource reference. - */ -typedef struct -{ - /*! Channel mode */ - VC_ChannelMode_t Mode; - /*! Channel identifier */ - uint8 ChannelID; - /*! Destination port */ - uint16 DestPort; - /*! Local port to bind */ - uint16 MyPort; - /*! Destination IP address */ - char DestIP[INET_ADDRSTRLEN]; - /*! Local IP address to allow interface choices */ - char MyIP[INET_ADDRSTRLEN]; - /*! Socket file descriptor for the channel */ - int SocketFd; -} VC_Transmit_Handle_t; - -/** - * Transmit handles - */ -typedef struct -{ - VC_Transmit_Handle_t Channel[VC_MAX_OUTPUT_CHANNELS]; -} VC_AppCustomData_t; - -/** \brief Optical flow frame message */ -PX4_OpticalFlowFrameMsg_t OpticalFlowFrameMsg; -/************************************************************************ -** External Global Variables -*************************************************************************/ - -extern VC_AppCustomData_t VC_AppCustomData; - -/************************************************************************ -** Function Prototypes -*************************************************************************/ - -/** - * @brief Custom function to initialize custom transmit data structure. - * @return CFE_SUCCESS - */ -int32 VC_CustomTransmit_InitData(void); - - -/** - * @brief Initialize all enabled transmit resources - * @return 0 for success -1 for failure - */ -int32 VC_Init_CustomTransmitters(void); - - -/** - * @brief Initialize a transmit channel - * @return 0 for success -1 for failure - */ -int32 VC_EnableChannel(uint8 ChannelID); - - -/** - * @brief Cleanup all transmit resources - * @return 0 for success -1 for failure - */ -int32 VC_CleanupCustom(void); - - -/** - * @brief Disable a transmit channel - * @param ChannelID the channel to disable - * @return 0 for success -1 for failure - */ -int32 VC_DisableChannel(uint8 ChannelID); - - -#endif diff --git a/config/ocpoc/s1000/target/apps/vc/unit_test/vc_app_custom_stubs/vc_app_custom_stubs.c b/config/ocpoc/s1000/target/apps/vc/unit_test/vc_app_custom_stubs/vc_app_custom_stubs.c deleted file mode 100644 index af7b83c94..000000000 --- a/config/ocpoc/s1000/target/apps/vc/unit_test/vc_app_custom_stubs/vc_app_custom_stubs.c +++ /dev/null @@ -1,50 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ - -#include "vc_app_custom_stubs.h" - - - -uint64 PX4LIB_GetPX4TimeUs(void) -{ - return 0; -} - - -uint64 PX4LIB_GetPX4TimeMs(void) -{ - return 0; -} - - - diff --git a/config/ocpoc/s1000/target/apps/vc/unit_test/vc_app_custom_stubs/vc_app_custom_stubs.h b/config/ocpoc/s1000/target/apps/vc/unit_test/vc_app_custom_stubs/vc_app_custom_stubs.h deleted file mode 100644 index 320012837..000000000 --- a/config/ocpoc/s1000/target/apps/vc/unit_test/vc_app_custom_stubs/vc_app_custom_stubs.h +++ /dev/null @@ -1,48 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ - -#ifndef VC_APP_CUSTOM_STUBS_H -#define VC_APP_CUSTOM_STUBS_H - -#ifdef __cplusplus -extern "C" { -#endif - -#include "cfe.h" - - -#ifdef __cplusplus -} -#endif - -#endif /* VC_APP_CUSTOM_STUBS_H */ diff --git a/config/ocpoc/s1000/target/apps/vc/unit_test/vc_app_stubs/vc_app_stubs.c b/config/ocpoc/s1000/target/apps/vc/unit_test/vc_app_stubs/vc_app_stubs.c deleted file mode 100644 index 21cf82ce5..000000000 --- a/config/ocpoc/s1000/target/apps/vc/unit_test/vc_app_stubs/vc_app_stubs.c +++ /dev/null @@ -1,62 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ - -#include "vc_app_stubs.h" -#include "vc_custom_shared.h" - -boolean VC_VerifyCmdLength(CFE_SB_Msg_t* MsgPtr, - uint16 usExpectedLen) -{ - boolean bResult = TRUE; - uint16 usMsgLen = 0; - - if (MsgPtr != NULL) - { - usMsgLen = CFE_SB_GetTotalMsgLength(MsgPtr); - - if (usExpectedLen != usMsgLen) - { - bResult = FALSE; - CFE_SB_MsgId_t MsgId = CFE_SB_GetMsgId(MsgPtr); - uint16 usCmdCode = CFE_SB_GetCmdCode(MsgPtr); - - (void) CFE_EVS_SendEvent(VC_MSGLEN_ERR_EID, CFE_EVS_ERROR, - "Rcvd invalid msgLen: msgId=0x%08X, cmdCode=%d, " - "msgLen=%d, expectedLen=%d", - MsgId, usCmdCode, usMsgLen, usExpectedLen); - VC_AppData.HkTlm.usCmdErrCnt++; - } - } - - return (bResult); -} /* End of VC_VerifyCmdLength() */ diff --git a/config/ocpoc/s1000/target/apps/vc/unit_test/vc_app_stubs/vc_app_stubs.h b/config/ocpoc/s1000/target/apps/vc/unit_test/vc_app_stubs/vc_app_stubs.h deleted file mode 100644 index a44118e95..000000000 --- a/config/ocpoc/s1000/target/apps/vc/unit_test/vc_app_stubs/vc_app_stubs.h +++ /dev/null @@ -1,50 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ - -#ifndef VC_APP_STUBS_H -#define VC_APP_STUBS_H - -#ifdef __cplusplus -extern "C" { -#endif - -#include "cfe.h" - -boolean VC_VerifyCmdLength(CFE_SB_Msg_t* MsgPtr, - uint16 usExpectedLen); - -#ifdef __cplusplus -} -#endif - -#endif /* VC_APP_STUBS_H */ diff --git a/config/ocpoc/s1000/target/apps/vc/unit_test/vc_custom_shared_test/vc_app_custom_shared_test.c b/config/ocpoc/s1000/target/apps/vc/unit_test/vc_custom_shared_test/vc_app_custom_shared_test.c deleted file mode 100644 index 04aae9595..000000000 --- a/config/ocpoc/s1000/target/apps/vc/unit_test/vc_custom_shared_test/vc_app_custom_shared_test.c +++ /dev/null @@ -1,589 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ - -#include "vc_app_custom_shared_test.h" -#include "vc_custom_shared_test_utils.h" -#include "vc_platform_cfg.h" -#include "vc_transmit_udp.h" -#include "vc_msgids.h" -#include "vc_platform_stubs.h" - -#include -#include -#include - -#include "uttest.h" -#include "ut_osapi_stubs.h" -#include "ut_cfe_sb_stubs.h" -#include "ut_cfe_sb_hooks.h" -#include "ut_cfe_es_stubs.h" -#include "ut_cfe_es_hooks.h" -#include "ut_cfe_evs_stubs.h" -#include "ut_cfe_evs_hooks.h" -#include "ut_cfe_time_stubs.h" -#include "ut_cfe_psp_memutils_stubs.h" -#include "ut_cfe_tbl_stubs.h" -#include "ut_cfe_fs_stubs.h" -#include "ut_cfe_time_stubs.h" - -/************************************************************************** - * Tests VC_ProcessNewCustomCmds() - **************************************************************************/ -/** - * Test VC_ProcessNewCustomCmds() - InvalidMsgID - */ -void Test_VC_Custom_ProcessNewCustomCmds_InvalidMsgID(void) -{ - VC_StartStreamCmd_t InMsg; - - CFE_SB_InitMsg (&InMsg, 0x0000, sizeof(VC_StartStreamCmd_t), TRUE); - - CFE_SB_SetCmdCode((CFE_SB_MsgPtr_t)&InMsg, VC_STARTSTREAMING_CC); - - /* Set get command code function hook */ - Ut_CFE_SB_SetFunctionHook(UT_CFE_SB_GETCMDCODE_INDEX, &Ut_CFE_SB_GetCmdCodeHook); - - /* Call the function under test */ - VC_ProcessNewCustomCmds((CFE_SB_MsgPtr_t)&InMsg); - - /* Verify results */ - - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); - UtAssert_True(VC_AppData.HkTlm.usCmdErrCnt == 1,"CmdErrCnt not incremented"); - UtAssert_EventSent(VC_MSGID_ERR_EID, CFE_EVS_ERROR, "", - "VC_ProcessNewCustomCmds() failed to raise an event"); -} - - -/** - * Test VC_ProcessNewCustomCmds() - Invalid Command Code - */ -void Test_VC_Custom_ProcessNewCustomCmds_InvalidCommand(void) -{ - /* Create an invalid command code */ - uint8 InvalidCommandCode = 100; - - VC_StartStreamCmd_t InMsg; - - CFE_SB_InitMsg (&InMsg, VC_STARTSTREAMING_CC, sizeof(VC_StartStreamCmd_t), TRUE); - - /* Set invalid command code */ - CFE_SB_SetCmdCode((CFE_SB_MsgPtr_t)&InMsg, InvalidCommandCode); - - /* Set get command code function hook */ - Ut_CFE_SB_SetFunctionHook(UT_CFE_SB_GETCMDCODE_INDEX, &Ut_CFE_SB_GetCmdCodeHook); - - /* Call the function under test */ - VC_ProcessNewCustomCmds((CFE_SB_MsgPtr_t)&InMsg); - - /* Verify results */ - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); - UtAssert_True(VC_AppData.HkTlm.usCmdErrCnt = 1,"Command error counter != 1"); - UtAssert_EventSent(VC_MSGID_ERR_EID, CFE_EVS_ERROR, "", - "Cmd with Invalid Cmd Code Sent"); -} - - -/** - * Test VC_ProcessNewCustomCmds(), StartStreaming command, Invalid Size - */ -void Test_VC_ProcessNewCustomCmds_StartStreaming_InvalidSize(void) -{ - /* Command with the wrong type (size) */ - VC_NoArgCmd_t InMsg; - - CFE_SB_InitMsg (&InMsg, VC_CMD_MID, sizeof(InMsg), TRUE); - - CFE_SB_SetCmdCode((CFE_SB_MsgPtr_t)&InMsg, VC_STARTSTREAMING_CC); - - /* Set get command code function hook */ - Ut_CFE_SB_SetFunctionHook(UT_CFE_SB_GETCMDCODE_INDEX, &Ut_CFE_SB_GetCmdCodeHook); - - /* Call the function under test */ - VC_ProcessNewCustomCmds((CFE_SB_MsgPtr_t)&InMsg); - - /* Verify results */ - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); - UtAssert_True(VC_AppData.HkTlm.usCmdErrCnt = 1,"Command error counter != 1"); - UtAssert_EventSent(VC_MSGLEN_ERR_EID, CFE_EVS_ERROR, "", - "Start Streaming Cmd Event Sent"); -} - - -/** - * Test VC_ProcessNewCustomCmds(), StartStreaming command, Invalid State - */ -void Test_VC_ProcessNewCustomCmds_StartStreaming_InvalidState(void) -{ - VC_StartStreamCmd_t InStartStreamingCmd; - - CFE_SB_InitMsg (&InStartStreamingCmd, VC_CMD_MID, sizeof(InStartStreamingCmd), TRUE); - CFE_SB_SetCmdCode((CFE_SB_MsgPtr_t)&InStartStreamingCmd, VC_STARTSTREAMING_CC); - - /* Set get command code function hook */ - Ut_CFE_SB_SetFunctionHook(UT_CFE_SB_GETCMDCODE_INDEX, &Ut_CFE_SB_GetCmdCodeHook); - - /* Set app state to streaming */ - VC_AppData.AppState = VC_STREAMING; - - /* Call the function under test */ - VC_ProcessNewCustomCmds((CFE_SB_MsgPtr_t)&InStartStreamingCmd); - - /* Verify results */ - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==2,"Event Count = 2"); - UtAssert_True(VC_AppData.HkTlm.usCmdErrCnt = 1,"Command error counter != 1"); - UtAssert_EventSent(VC_CMD_ERR_EID, CFE_EVS_ERROR, "VC is already streaming", "Start Streaming Cmd Event Sent"); -} - - -/** - * Test VC_ProcessNewCustomCmds(), StartStreaming command, Invalid (Null) Address - */ -void Test_VC_ProcessNewCustomCmds_StartStreaming_InvalidNullAddress(void) -{ - VC_StartStreamCmd_t InStartStreamingCmd; - - CFE_SB_InitMsg (&InStartStreamingCmd, VC_CMD_MID, sizeof(InStartStreamingCmd), TRUE); - CFE_SB_SetCmdCode((CFE_SB_MsgPtr_t)&InStartStreamingCmd, VC_STARTSTREAMING_CC); - - /* Set get command code function hook */ - Ut_CFE_SB_SetFunctionHook(UT_CFE_SB_GETCMDCODE_INDEX, &Ut_CFE_SB_GetCmdCodeHook); - - /* Set app state to initialized */ - VC_AppData.AppState = VC_INITIALIZED; - - /* Call the function under test */ - VC_ProcessNewCustomCmds((CFE_SB_MsgPtr_t)&InStartStreamingCmd); - - /* Verify results */ - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==2,"Event Count = 2"); - UtAssert_True(VC_AppData.HkTlm.usCmdErrCnt = 1,"Command error counter != 1"); - UtAssert_EventSent(VC_ADDR_NUL_ERR_EID, CFE_EVS_ERROR, - "NUL (empty) string specified for address", "Start Streaming Cmd Event Sent"); -} - - -/** - * Test VC_ProcessNewCustomCmds(), StartStreaming command, Invalid Address - */ -void Test_VC_ProcessNewCustomCmds_StartStreaming_InvalidAddress(void) -{ - VC_StartStreamCmd_t InStartStreamingCmd; - - CFE_SB_InitMsg (&InStartStreamingCmd, VC_CMD_MID, sizeof(InStartStreamingCmd), TRUE); - CFE_SB_SetCmdCode((CFE_SB_MsgPtr_t)&InStartStreamingCmd, VC_STARTSTREAMING_CC); - - /* Set get command code function hook */ - Ut_CFE_SB_SetFunctionHook(UT_CFE_SB_GETCMDCODE_INDEX, &Ut_CFE_SB_GetCmdCodeHook); - - /* Set app state to initialized */ - VC_AppData.AppState = VC_INITIALIZED; - - /* Start streaming needs an address to pass null check */ - strcpy(InStartStreamingCmd.Address, "NOT_NULL"); - - /* Call the function under test */ - VC_ProcessNewCustomCmds((CFE_SB_MsgPtr_t)&InStartStreamingCmd); - - /* Verify results */ - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==2,"Event Count = 2"); - UtAssert_True(VC_AppData.HkTlm.usCmdErrCnt = 1,"Command error counter != 1"); - UtAssert_EventSent(VC_ADDR_ERR_EID, CFE_EVS_ERROR, - "Invalid string specified for address", "Start Streaming Cmd Event Sent"); -} - - -/** - * Test VC_ProcessNewCustomCmds(), StartStreaming command, destination - * update failure - */ -void Test_VC_ProcessNewCustomCmds_StartStreaming_UpdateDestinationFail(void) -{ - /* Currently no way to fail update destination. */ - //VC_StartStreamCmd_t InStartStreamingCmd; - - //CFE_SB_InitMsg (&InStartStreamingCmd, VC_CMD_MID, sizeof(InStartStreamingCmd), TRUE); - //CFE_SB_SetCmdCode((CFE_SB_MsgPtr_t)&InStartStreamingCmd, VC_STARTSTREAMING_CC); - - ///* Set get command code function hook */ - //Ut_CFE_SB_SetFunctionHook(UT_CFE_SB_GETCMDCODE_INDEX, &Ut_CFE_SB_GetCmdCodeHook); - - ///* Set app state to initialized */ - //VC_AppData.AppState = VC_INITIALIZED; - - ///* Start streaming needs an address to pass null check */ - //strcpy(InStartStreamingCmd.Address, "1.1.1.1"); - - ///* Call the function under test */ - //VC_ProcessNewCustomCmds((CFE_SB_MsgPtr_t)&InStartStreamingCmd); - - ///* Verify results */ - //UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==2,"Event Count = 2"); - //UtAssert_True(VC_AppData.HkTlm.usCmdErrCnt = 1,"Command error counter != 1"); - //UtAssert_EventSent(VC_INIT_ERR_EID, CFE_EVS_ERROR, "Destination update failed", "Start Streaming Cmd Event Sent"); -} - - -/** - * Test VC_ProcessNewCustomCmds(), StartStreaming command, transmit - * uninit failure - */ -void Test_VC_ProcessNewCustomCmds_StartStreaming_TransmitUninitFail(void) -{ - VC_StartStreamCmd_t InStartStreamingCmd; - - CFE_SB_InitMsg (&InStartStreamingCmd, VC_CMD_MID, sizeof(InStartStreamingCmd), TRUE); - CFE_SB_SetCmdCode((CFE_SB_MsgPtr_t)&InStartStreamingCmd, VC_STARTSTREAMING_CC); - - /* Set get command code function hook */ - Ut_CFE_SB_SetFunctionHook(UT_CFE_SB_GETCMDCODE_INDEX, &Ut_CFE_SB_GetCmdCodeHook); - - /* Set app state to initialized */ - VC_AppData.AppState = VC_INITIALIZED; - - /* Start streaming needs an address to pass null check */ - strcpy(InStartStreamingCmd.Address, "1.1.1.1"); - - /* Set a channel to enabled to pass VC_Update_Destination */ - VC_AppCustomData.Channel[0].Mode = VC_CHANNEL_ENABLED; - - /* Set close to fail */ - VC_Platform_Stubs_Returns.VC_Wrap_Close_Return = -1; - - /* Call the function under test */ - VC_ProcessNewCustomCmds((CFE_SB_MsgPtr_t)&InStartStreamingCmd); - - /* Verify results */ - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==2,"Event Count = 2"); - UtAssert_True(VC_AppData.HkTlm.usCmdErrCnt = 1,"Command error counter != 1"); -} - - -/** - * Test VC_ProcessNewCustomCmds(), StartStreaming command, devices - * start failure - */ -void Test_VC_ProcessNewCustomCmds_StartStreaming_DevicesStartFail(void) -{ - VC_StartStreamCmd_t InStartStreamingCmd; - - CFE_SB_InitMsg (&InStartStreamingCmd, VC_CMD_MID, sizeof(InStartStreamingCmd), TRUE); - CFE_SB_SetCmdCode((CFE_SB_MsgPtr_t)&InStartStreamingCmd, VC_STARTSTREAMING_CC); - - /* Set get command code function hook */ - Ut_CFE_SB_SetFunctionHook(UT_CFE_SB_GETCMDCODE_INDEX, &Ut_CFE_SB_GetCmdCodeHook); - - /* Set app state to initialized */ - VC_AppData.AppState = VC_INITIALIZED; - - /* Start streaming needs an address to pass null check */ - strcpy(InStartStreamingCmd.Address, "1.1.1.1"); - - /* Set source IP to a valid value to pass transmit init */ - strcpy(VC_AppCustomData.Channel[0].MyIP, "1.1.1.1"); - - /* Set a channel to enabled to pass VC_Update_Destination */ - VC_AppCustomData.Channel[0].Mode = VC_CHANNEL_ENABLED; - - /* Set status to initialized */ - VC_AppCustomDevice.Channel[0].Status = VC_DEVICE_INITIALIZED; - - /* Set device start child task to fail */ - Ut_CFE_ES_SetReturnCode(UT_CFE_ES_CREATECHILDTASK_INDEX, -1, 1); - - /* Call the function under test */ - VC_ProcessNewCustomCmds((CFE_SB_MsgPtr_t)&InStartStreamingCmd); - - /* Verify results */ - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==2,"Event Count = 2"); - UtAssert_True(VC_AppData.HkTlm.usCmdErrCnt = 1,"Command error counter != 1"); - UtAssert_EventSent(VC_INIT_ERR_EID, CFE_EVS_ERROR, "VC_Devices_Start failed in cmd start streaming", "Device start failure did not raise event"); -} - - -/** - * Test VC_ProcessNewCustomCmds(), Start Streaming command, Nominal - */ -void Test_VC_ProcessNewCustomCmds_StartStreaming_Nominal(void) -{ - VC_StartStreamCmd_t InStartStreamingCmd; - - CFE_SB_InitMsg (&InStartStreamingCmd, VC_CMD_MID, sizeof(InStartStreamingCmd), TRUE); - CFE_SB_SetCmdCode((CFE_SB_MsgPtr_t)&InStartStreamingCmd, VC_STARTSTREAMING_CC); - - /* Set get command code function hook */ - Ut_CFE_SB_SetFunctionHook(UT_CFE_SB_GETCMDCODE_INDEX, &Ut_CFE_SB_GetCmdCodeHook); - - /* Set app state to initialized */ - VC_AppData.AppState = VC_INITIALIZED; - - /* Start streaming needs an address to pass null check */ - strcpy(InStartStreamingCmd.Address, "1.1.1.1"); - - /* Set source IP to a valid value to pass transmit init */ - strcpy(VC_AppCustomData.Channel[0].MyIP, "1.1.1.1"); - - /* Set a channel to enabled to pass VC_Update_Destination */ - VC_AppCustomData.Channel[0].Mode = VC_CHANNEL_ENABLED; - - /* Set status to initialized */ - VC_AppCustomDevice.Channel[0].Status = VC_DEVICE_INITIALIZED; - - /* Call the function under test */ - VC_ProcessNewCustomCmds((CFE_SB_MsgPtr_t)&InStartStreamingCmd); - - /* Verify results */ - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==2,"Event Count = 2"); - UtAssert_True(VC_AppData.HkTlm.usCmdCnt = 1,"Command counter != 1"); - UtAssert_EventSent(VC_CMD_INF_EID, CFE_EVS_INFORMATION, "", "Start Streaming Cmd Event Sent"); - UtAssert_True(VC_AppData.AppState == VC_STREAMING, "App state != streaming"); -} - - -/** - * Test VC_ProcessNewCustomCmds(), StopStreaming command, Invalid Size - */ -void Test_VC_ProcessNewCustomCmds_StopStreaming_InvalidSize(void) -{ - /* Command with the wrong type (size) */ - VC_StartStreamCmd_t InMsg; - - CFE_SB_InitMsg (&InMsg, VC_CMD_MID, sizeof(InMsg), TRUE); - - CFE_SB_SetCmdCode((CFE_SB_MsgPtr_t)&InMsg, VC_STOPSTREAMING_CC); - - /* Set get command code function hook */ - Ut_CFE_SB_SetFunctionHook(UT_CFE_SB_GETCMDCODE_INDEX, &Ut_CFE_SB_GetCmdCodeHook); - - /* Call the function under test */ - VC_ProcessNewCustomCmds((CFE_SB_MsgPtr_t)&InMsg); - - /* Verify results */ - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); - UtAssert_True(VC_AppData.HkTlm.usCmdErrCnt = 1,"Command error counter != 1"); - UtAssert_EventSent(VC_MSGLEN_ERR_EID, CFE_EVS_ERROR, "", - "Start Streaming Cmd Event Sent"); -} - - -/** - * Test VC_ProcessNewCustomCmds(), StopStreaming command, Invalid State - */ -void Test_VC_ProcessNewCustomCmds_StopStreaming_InvalidState(void) -{ - VC_NoArgCmd_t InMsg; - - CFE_SB_InitMsg (&InMsg, VC_CMD_MID, sizeof(InMsg), TRUE); - CFE_SB_SetCmdCode((CFE_SB_MsgPtr_t)&InMsg, VC_STOPSTREAMING_CC); - - /* Set get command code function hook */ - Ut_CFE_SB_SetFunctionHook(UT_CFE_SB_GETCMDCODE_INDEX, &Ut_CFE_SB_GetCmdCodeHook); - - /* Set app state to streaming */ - VC_AppData.AppState = VC_INITIALIZED; - - /* Call the function under test */ - VC_ProcessNewCustomCmds((CFE_SB_MsgPtr_t)&InMsg); - - /* Verify results */ - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==2,"Event Count = 2"); - UtAssert_True(VC_AppData.HkTlm.usCmdErrCnt = 1,"Command error counter != 1"); - UtAssert_EventSent(VC_CMD_ERR_EID, CFE_EVS_ERROR, - "VC is already not streaming", "Stop Streaming Cmd Event Sent"); -} - - -/************************************************************************** - * Tests VC_Custom_Max_Events_Not_Reached() - **************************************************************************/ -/** - * Test Test_VC_Custom_Max_Events_Not_Reached(), Nominal - * - */ -void Test_VC_Custom_Max_Events_Not_Reached_Nominal(void) -{ - UtAssert_True(VC_Custom_Max_Events_Not_Reached(VC_MAX_EVENT_FILTERS - 1) == TRUE, - "Max events not reached did return true"); -} - - -/** - * Test Test_VC_Custom_Max_Events_Not_Reached(), Fail - * - */ -void Test_VC_Custom_Max_Events_Not_Reached_Fail(void) -{ - UtAssert_True(VC_Custom_Max_Events_Not_Reached(VC_MAX_EVENT_FILTERS + 1) == FALSE, - "Max events not reached did not return false"); -} - - -/************************************************************************** - * Tests VC_Custom_Init_EventFilters() - **************************************************************************/ -/** - * Test VC_Custom_Init_EventFilters(), Nominal - */ -void Test_VC_Custom_Init_EventFilters_Nominal(void) -{ - int32 returnCode = 0; - int32 expected = 2; - - CFE_EVS_BinFilter_t EventTbl[VC_MAX_EVENT_FILTERS]; - - returnCode = VC_Custom_Init_EventFilters(1, EventTbl); - - UtAssert_True(returnCode == expected, - "Test_VC_Custom_Init_EventFilters_Nominal did not return the expected value"); - UtAssert_True(EventTbl[1].EventID == VC_SOCKET_ERR_EID, - "Event filter array entries not added"); - UtAssert_True(EventTbl[2].EventID == VC_DEVICE_ERR_EID, - "Event filter array entries not added"); -} - - -/** - * Test VC_Custom_Init_EventFilters(), Fail - */ -void Test_VC_Custom_Init_EventFilters_Fail1(void) -{ - int32 returnCode = 0; - int32 expected = -1; - CFE_EVS_BinFilter_t EventTbl[VC_MAX_EVENT_FILTERS]; - - returnCode = VC_Custom_Init_EventFilters(VC_MAX_EVENT_FILTERS, EventTbl); - - UtAssert_True(returnCode == expected, - "Test_VC_Custom_Init_EventFilters_Fail did not return the expected value"); - -} - - -/** - * Test VC_Custom_Init_EventFilters(), Fail - */ -void Test_VC_Custom_Init_EventFilters_Fail2(void) -{ - int32 returnCode = 0; - int32 expected = -1; - CFE_EVS_BinFilter_t EventTbl[VC_MAX_EVENT_FILTERS]; - - returnCode = VC_Custom_Init_EventFilters(VC_MAX_EVENT_FILTERS-1, EventTbl); - - UtAssert_True(returnCode == expected, - "Test_VC_Custom_Init_EventFilters_Fail did not return the expected value"); - UtAssert_True(returnCode == expected, - "Test_VC_Custom_Init_EventFilters_Nominal did not return the expected value"); - UtAssert_True(EventTbl[VC_MAX_EVENT_FILTERS-1].EventID == VC_SOCKET_ERR_EID, - "Event filter array entries not added"); - -} - - -/** - * Test VC_Custom_Init_EventFilters(), Fail null check - */ -void Test_VC_Custom_Init_EventFilters_Null(void) -{ - int32 returnCode = 0; - int32 expected = -1; - - returnCode = VC_Custom_Init_EventFilters(1, (CFE_EVS_BinFilter_t *)0); - - UtAssert_True(returnCode == expected, - "Test_VC_Custom_Init_EventFilters_Fail did not return the expected value"); -} - -/************************************************************************** - * Rollup Test Cases - **************************************************************************/ -void VC_Custom_App_Shared_Test_AddTestCases(void) -{ -/************************************************************************** - * Tests for Custom Shared Layer - **************************************************************************/ - UtTest_Add(Test_VC_Custom_ProcessNewCustomCmds_InvalidMsgID, - VC_Custom_Shared_Test_Setup, VC_Custom_Shared_Test_TearDown, - "Test_VC_Custom_ProcessNewCustomCmds_InvalidMsgID"); - UtTest_Add(Test_VC_Custom_ProcessNewCustomCmds_InvalidCommand, - VC_Custom_Shared_Test_Setup, VC_Custom_Shared_Test_TearDown, - "Test_VC_Custom_ProcessNewCustomCmds_InvalidCommand"); - UtTest_Add(Test_VC_ProcessNewCustomCmds_StartStreaming_InvalidSize, - VC_Custom_Shared_Test_Setup, VC_Custom_Shared_Test_TearDown, - "Test_VC_ProcessNewCustomCmds_StartStreaming_InvalidSize"); - UtTest_Add(Test_VC_ProcessNewCustomCmds_StartStreaming_InvalidState, - VC_Custom_Shared_Test_Setup, VC_Custom_Shared_Test_TearDown, - "Test_VC_ProcessNewCustomCmds_StartStreaming_InvalidState"); - UtTest_Add(Test_VC_ProcessNewCustomCmds_StartStreaming_InvalidNullAddress, - VC_Custom_Shared_Test_Setup, VC_Custom_Shared_Test_TearDown, - "Test_VC_ProcessNewCustomCmds_StartStreaming_InvalidNullAddress"); - UtTest_Add(Test_VC_ProcessNewCustomCmds_StartStreaming_InvalidAddress, - VC_Custom_Shared_Test_Setup, VC_Custom_Shared_Test_TearDown, - "Test_VC_ProcessNewCustomCmds_StartStreaming_InvalidAddress"); - UtTest_Add(Test_VC_ProcessNewCustomCmds_StartStreaming_UpdateDestinationFail, - VC_Custom_Shared_Test_Setup, VC_Custom_Shared_Test_TearDown, - "Test_VC_ProcessNewCustomCmds_StartStreaming_UpdateDestinationFail"); - UtTest_Add(Test_VC_ProcessNewCustomCmds_StartStreaming_TransmitUninitFail, - VC_Custom_Shared_Test_Setup, VC_Custom_Shared_Test_TearDown, - "Test_VC_ProcessNewCustomCmds_StartStreaming_TransmitUninitFail"); - UtTest_Add(Test_VC_ProcessNewCustomCmds_StartStreaming_DevicesStartFail, - VC_Custom_Shared_Test_Setup, VC_Custom_Shared_Test_TearDown, - "Test_VC_ProcessNewCustomCmds_StartStreaming_DevicesStartFail"); - UtTest_Add(Test_VC_ProcessNewCustomCmds_StartStreaming_Nominal, - VC_Custom_Shared_Test_Setup, VC_Custom_Shared_Test_TearDown, - "Test_VC_ProcessNewCustomCmds_StartStreaming_Nominal"); - UtTest_Add(Test_VC_ProcessNewCustomCmds_StopStreaming_InvalidSize, - VC_Custom_Shared_Test_Setup, VC_Custom_Shared_Test_TearDown, - "Test_VC_ProcessNewCustomCmds_StopStreaming_InvalidSize"); - UtTest_Add(Test_VC_ProcessNewCustomCmds_StopStreaming_InvalidState, - VC_Custom_Shared_Test_Setup, VC_Custom_Shared_Test_TearDown, - "Test_VC_ProcessNewCustomCmds_StopStreaming_InvalidState"); - UtTest_Add(Test_VC_Custom_Max_Events_Not_Reached_Nominal, - VC_Custom_Shared_Test_Setup, VC_Custom_Shared_Test_TearDown, - "Test_VC_Custom_Max_Events_Not_Reached_Nominal"); - UtTest_Add(Test_VC_Custom_Max_Events_Not_Reached_Fail, - VC_Custom_Shared_Test_Setup, VC_Custom_Shared_Test_TearDown, - "Test_VC_Custom_Max_Events_Not_Reached_Fail"); - UtTest_Add(Test_VC_Custom_Init_EventFilters_Nominal, - VC_Custom_Shared_Test_Setup, VC_Custom_Shared_Test_TearDown, - "Test_VC_Custom_Init_EventFilters_Nominal"); - UtTest_Add(Test_VC_Custom_Init_EventFilters_Fail1, - VC_Custom_Shared_Test_Setup, VC_Custom_Shared_Test_TearDown, - "Test_VC_Custom_Init_EventFilters_Fail1"); - UtTest_Add(Test_VC_Custom_Init_EventFilters_Fail2, - VC_Custom_Shared_Test_Setup, VC_Custom_Shared_Test_TearDown, - "Test_VC_Custom_Init_EventFilters_Fail2"); - UtTest_Add(Test_VC_Custom_Init_EventFilters_Null, - VC_Custom_Shared_Test_Setup, VC_Custom_Shared_Test_TearDown, - "Test_VC_Custom_Init_EventFilters_Null"); -} diff --git a/config/ocpoc/s1000/target/apps/vc/unit_test/vc_custom_shared_test/vc_app_custom_shared_test.h b/config/ocpoc/s1000/target/apps/vc/unit_test/vc_custom_shared_test/vc_app_custom_shared_test.h deleted file mode 100644 index b01f3180f..000000000 --- a/config/ocpoc/s1000/target/apps/vc/unit_test/vc_custom_shared_test/vc_app_custom_shared_test.h +++ /dev/null @@ -1,48 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ - -#ifndef VC_APP_CUSTOM_SHARED_TEST_H -#define VC_APP_CUSTOM_SHARED_TEST_H - -#ifdef __cplusplus -extern "C" { -#endif - -void VC_Custom_App_Shared_Test_AddTestCases(void); - - -#ifdef __cplusplus -} -#endif - -#endif /* VC_APP_CUSTOM_SHARED_TEST_H */ diff --git a/config/ocpoc/s1000/target/apps/vc/unit_test/vc_custom_shared_test/vc_custom_shared_test_utils.c b/config/ocpoc/s1000/target/apps/vc/unit_test/vc_custom_shared_test/vc_custom_shared_test_utils.c deleted file mode 100644 index 3a923a55c..000000000 --- a/config/ocpoc/s1000/target/apps/vc/unit_test/vc_custom_shared_test/vc_custom_shared_test_utils.c +++ /dev/null @@ -1,79 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ - -#include "vc_custom_shared_test_utils.h" -#include "vc_platform_stubs.h" -#include "vc_transmit_udp.h" -#include "vc_dev_io_v4l.h" - -#include "ut_cfe_evs_hooks.h" -#include "ut_cfe_time_stubs.h" -#include "ut_cfe_psp_memutils_stubs.h" -#include "ut_cfe_tbl_stubs.h" -#include "ut_cfe_tbl_hooks.h" -#include "ut_cfe_fs_stubs.h" -#include "ut_cfe_time_stubs.h" -#include "ut_osapi_stubs.h" -#include "ut_osfileapi_stubs.h" -#include "ut_cfe_sb_stubs.h" -#include "ut_cfe_es_stubs.h" -#include "ut_cfe_evs_stubs.h" - -#include - -/* - * Function Definitions - */ -void VC_Custom_Shared_Test_Setup(void) -{ - /* initialize test environment to default state for every test */ - - CFE_PSP_MemSet(&VC_AppData, 0x00, sizeof(VC_AppData)); - - Ut_CFE_EVS_Reset(); - Ut_CFE_FS_Reset(); - Ut_CFE_TIME_Reset(); - Ut_CFE_TBL_Reset(); - Ut_CFE_SB_Reset(); - Ut_CFE_ES_Reset(); - Ut_OSAPI_Reset(); - Ut_OSFILEAPI_Reset(); -} - -void VC_Custom_Shared_Test_TearDown(void) -{ - CFE_PSP_MemSet(&VC_AppData, 0x00, sizeof(VC_AppData)); - CFE_PSP_MemSet(&VC_AppCustomDevice, 0x00, sizeof(VC_AppCustomDevice_t)); - CFE_PSP_MemSet(&VC_AppCustomData, 0x00, sizeof(VC_AppCustomData_t)); - CFE_PSP_MemSet(&VC_Platform_Stubs_Returns, 0x00, sizeof(VC_Platform_Stubs_Returns_t)); -} diff --git a/config/ocpoc/s1000/target/apps/vc/unit_test/vc_custom_shared_test/vc_custom_shared_test_utils.h b/config/ocpoc/s1000/target/apps/vc/unit_test/vc_custom_shared_test/vc_custom_shared_test_utils.h deleted file mode 100644 index 2482120de..000000000 --- a/config/ocpoc/s1000/target/apps/vc/unit_test/vc_custom_shared_test/vc_custom_shared_test_utils.h +++ /dev/null @@ -1,61 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ - -#ifndef VC_CUSTOM_DEVICE_SHARED_UTILS_H -#define VC_CUSTOM_DEVICE_SHARED_UTILS_H - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * Includes - */ - -#include "vc_custom_shared.h" - -extern VC_AppCustomDevice_t VC_AppCustomDevice; - -/* - * Function Definitions - */ - -void VC_Custom_Shared_Test_Setup(void); -void VC_Custom_Shared_Test_TearDown(void); - - -#ifdef __cplusplus -} -#endif - -#endif /* VC_CUSTOM_DEVICE_SHARED_UTILS_H */ diff --git a/config/ocpoc/s1000/target/apps/vc/unit_test/vc_custom_testrunner.c b/config/ocpoc/s1000/target/apps/vc/unit_test/vc_custom_testrunner.c deleted file mode 100644 index f25062cd8..000000000 --- a/config/ocpoc/s1000/target/apps/vc/unit_test/vc_custom_testrunner.c +++ /dev/null @@ -1,66 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ - -#include "uttest.h" - -#include "vc_app_custom_device_test.h" -#include "vc_app_custom_transmit_test.h" -#include "vc_app.h" -//#include "vc_cmds_test.h" -//#include "vc_config_tbl_test.h" -//#include "vc_cds_tbl_test.h" - -VC_AppData_t VC_AppData; - -extern int enable_wrappers; - -void VC_Custom_App_Device_Test_AddTestCases(void); -void VC_Custom_App_Transmit_Test_AddTestCases(void); -void VC_Custom_App_Shared_Test_AddTestCases(void); - -int main(void) -{ - int testResults = 0; - enable_wrappers = 1; - VC_Custom_App_Device_Test_AddTestCases(); - VC_Custom_App_Transmit_Test_AddTestCases(); - VC_Custom_App_Shared_Test_AddTestCases(); - //VC_Cmds_Test_AddTestCases(); - //VC_Config_Tbl_Test_AddTestCases(); - //VC_CDS_Tbl_Test_AddTestCases(); - testResults = UtTest_Run(); - - enable_wrappers = 0; - - return testResults; -} diff --git a/config/ocpoc/s1000/target/apps/vc/unit_test/vc_dev_io_udp_test/vc_app_custom_device_test.c b/config/ocpoc/s1000/target/apps/vc/unit_test/vc_dev_io_udp_test/vc_app_custom_device_test.c deleted file mode 100644 index 72e9efa7b..000000000 --- a/config/ocpoc/s1000/target/apps/vc/unit_test/vc_dev_io_udp_test/vc_app_custom_device_test.c +++ /dev/null @@ -1,722 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ - -#include "vc_app_custom_device_test.h" -#include "vc_custom_device_test_utils.h" -#include "vc_transmit_udp.h" -#include "vc_platform_stubs.h" -#include "vc_platform_cfg.h" -#include -#include -#include - -#include "uttest.h" -#include "ut_osapi_stubs.h" -#include "ut_cfe_sb_stubs.h" -#include "ut_cfe_sb_hooks.h" -#include "ut_cfe_es_stubs.h" -#include "ut_cfe_es_hooks.h" -#include "ut_cfe_evs_stubs.h" -#include "ut_cfe_evs_hooks.h" -#include "ut_cfe_time_stubs.h" -#include "ut_cfe_psp_memutils_stubs.h" -#include "ut_cfe_tbl_stubs.h" -#include "ut_cfe_fs_stubs.h" -#include "ut_cfe_time_stubs.h" - -/************************************************************************** - * Tests for VC_InitCustomDevices() - **************************************************************************/ -/** - * Test VC_InitCustomDevices() fail socket creation - */ -void Test_VC_Custom_InitCustomDevices_FailSocket(void) -{ - int32 result = 0; - int32 expected = -1; - uint8 DeviceID = 0; - char returnString[64]; - snprintf(returnString, 64, "Socket errno: %i on channel %u", 13, 0); - - /* Set the first device to enabled */ - VC_AppCustomDevice.Channel[0].Mode = VC_DEVICE_ENABLED; - - /* Set socket creation to fail */ - VC_Platform_Stubs_Returns.VC_Wrap_Socket_Return = -1; - VC_Platform_Stubs_Returns.VC_Wrap_Socket_Errno = 1; - VC_Platform_Stubs_Returns.VC_Wrap_Socket_Errno_Value = 13; - - result = VC_Init_CustomDevices(); - - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); - UtAssert_EventSent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, returnString, - "VC_InitCustomDevices() failed to raise an event"); - UtAssert_True(VC_AppCustomDevice.Channel[0].Status == VC_DEVICE_UNINITIALIZED, - "VC_InitCustomDevices() status NOT uninitialized"); - UtAssert_True(result == expected,"VC_InitDevice() did not return failure"); -} - -/** - * Test VC_InitCustomDevices() fail bind - */ -void Test_VC_Custom_InitCustomDevices_FailBind(void) -{ - int32 result = 0; - int32 expected = -1; - uint8 DeviceID = 0; - char returnString[64]; - snprintf(returnString, 64, "Bind errno: %i on channel %u", 13, 0); - - /* Set the first device to enabled */ - VC_AppCustomDevice.Channel[0].Mode = VC_DEVICE_ENABLED; - - /* Set socket creation to pass */ - VC_Platform_Stubs_Returns.VC_Wrap_Socket_Return = 1; - - /* Set bind to fail */ - VC_Platform_Stubs_Returns.VC_Wrap_Bind_Return = -1; - VC_Platform_Stubs_Returns.VC_Wrap_Bind_Errno = 1; - VC_Platform_Stubs_Returns.VC_Wrap_Bind_Errno_Value = 13; - - result = VC_Init_CustomDevices(); - - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); - UtAssert_EventSent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, returnString, - "VC_InitCustomDevices() failed to raise an event"); - UtAssert_True(VC_AppCustomDevice.Channel[0].Status == VC_DEVICE_UNINITIALIZED, - "VC_InitCustomDevices() status NOT uninitialized"); - UtAssert_True(result == expected,"VC_InitDevice() did not return failure"); -} - -/** - * Test VC_InitCustomDevices() nominal - */ -void Test_VC_Custom_InitCustomDevices_Nominal(void) -{ - int32 result = -1; - int32 expected = 0; - uint8 DeviceID = 0; - char returnString[64]; - snprintf(returnString, 64, "VC Device initialized channel %u", 0); - - /* Set the first device to enabled */ - VC_AppCustomDevice.Channel[0].Mode = VC_DEVICE_ENABLED; - - /* Set socket creation to pass */ - VC_Platform_Stubs_Returns.VC_Wrap_Socket_Return = 1; - - /* Set bind to pass */ - VC_Platform_Stubs_Returns.VC_Wrap_Bind_Return = 1; - - result = VC_Init_CustomDevices(); - - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); - UtAssert_EventSent(VC_DEV_INF_EID, CFE_EVS_INFORMATION, returnString, - "VC_InitCustomDevices() failed to raise an event"); - UtAssert_True(VC_AppCustomDevice.Channel[0].Status == VC_DEVICE_INITIALIZED, - "VC_InitCustomDevices() status NOT initialized"); - UtAssert_True(result == expected,"VC_InitDevice() did not return failure"); -} - -/************************************************************************** - * Tests for VC_Stream_Task() - **************************************************************************/ - -/** - * Test VC_Stream_Task() fail register child task - */ -void Test_VC_Custom_StreamTask_RegisterChildTaskFail(void) -{ - /* Set register child task to fail */ - Ut_CFE_ES_SetReturnCode(UT_CFE_ES_REGISTERCHILDTASK_INDEX, -1, 1); - - /* Call the function under test */ - VC_Stream_Task(); - - /* Verfity results */ - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); - UtAssert_True(VC_AppData.AppState == VC_INITIALIZED, - "VC_Stream_Task() did not set app state"); - UtAssert_EventSent(VC_DEV_INF_EID, CFE_EVS_INFORMATION, - "VC streaming task exited with return code 0 task status (0xFFFFFFFF)", - "VC_Stream_Task() failed to raise an event"); -} - - -/** - * Test VC_Stream_Task() fail nothing enabled and streaming - */ -void Test_VC_Custom_StreamTask_NothingEnabled(void) -{ - - char returnString[64]; - snprintf(returnString, 64, "VC can't start streaming no devices are streaming enabled"); - char returnString1[128]; - snprintf(returnString1, 128, "VC streaming task exited with return code %d task status (0x%08X)", - -1, (unsigned int)CFE_SUCCESS); - - /* Set register child task to succeed */ - Ut_CFE_ES_SetReturnCode(UT_CFE_ES_REGISTERCHILDTASK_INDEX, CFE_SUCCESS, 1); - - /* Set the while loop continue flag to true */ - VC_AppCustomDevice.ContinueFlag = TRUE; - - /* Set a fake device file descriptor */ - VC_AppCustomDevice.Channel[0].Socket = 7; - - /* Set select to fail with an error (-1) */ - VC_Platform_Stubs_Returns.VC_Wrap_Select_Return = -1; - - /* Call the function under test */ - VC_Stream_Task(); - - /* Verfity results */ - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==2,"Event Count = 2"); - UtAssert_True(VC_AppData.AppState == VC_INITIALIZED, - "VC_Stream_Task() did not set app state"); - UtAssert_EventSent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, returnString, - "VC_Stream_Task() failed to raise an event"); - UtAssert_EventSent(VC_DEV_INF_EID, CFE_EVS_INFORMATION, returnString1, - "VC_Stream_Task() failed to raise an event"); -} - - -/** - * Test VC_Stream_Task() fail select error - */ -void Test_VC_Custom_StreamTask_SelectError(void) -{ - - char returnString[64]; - snprintf(returnString, 64, "VC start streaming failed select() returned %i", 6); - char returnString1[128]; - snprintf(returnString1, 128, "VC streaming task exited with return code %d task status (0x%08X)", - -1, (unsigned int)CFE_SUCCESS); - - /* Set register child task to succeed */ - Ut_CFE_ES_SetReturnCode(UT_CFE_ES_REGISTERCHILDTASK_INDEX, CFE_SUCCESS, 1); - - /* Set the while loop continue flag to true */ - VC_AppCustomDevice.ContinueFlag = TRUE; - - /* Set the mode and state for channel 0*/ - VC_AppCustomDevice.Channel[0].Mode = VC_DEVICE_ENABLED; - VC_AppCustomDevice.Channel[0].Status = VC_DEVICE_INITIALIZED; - - /* Set return error number to true */ - VC_Platform_Stubs_Returns.VC_Wrap_Select_Errno = 1; - - /* Set error number to interrupted */ - /* Note this will set errno through multiple calls */ - VC_Platform_Stubs_Returns.VC_Wrap_Select_Errno_Value = 6; - - /* Set a fake device file descriptor */ - VC_AppCustomDevice.Channel[0].Socket = 7; - - /* Set select to fail with an error (-1) */ - VC_Platform_Stubs_Returns.VC_Wrap_Select_Return = -1; - - /* Call the function under test */ - VC_Stream_Task(); - - /* Verfity results */ - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==2,"Event Count = 2"); - UtAssert_True(VC_AppData.AppState == VC_INITIALIZED, - "VC_Stream_Task() did not set app state"); - UtAssert_EventSent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, returnString, - "VC_Stream_Task() failed to raise an event"); - UtAssert_EventSent(VC_DEV_INF_EID, CFE_EVS_INFORMATION, returnString1, - "VC_Stream_Task() failed to raise an event"); -} - - -/** - * Test VC_Stream_Task() fail select interrupted max retry attempts - */ -void Test_VC_Custom_StreamTask_InterruptedError(void) -{ - char returnString[64]; - snprintf(returnString, 64, "VC select was interrupted"); - char returnString1[128]; - snprintf(returnString1, 128, "VC streaming task exited with return code %d task status (0x%08X)", - -1, (unsigned int)CFE_SUCCESS); - - /* Set register child task to succeed */ - Ut_CFE_ES_SetReturnCode(UT_CFE_ES_REGISTERCHILDTASK_INDEX, CFE_SUCCESS, 1); - - /* Set the while loop continue flag to true */ - VC_AppCustomDevice.ContinueFlag = TRUE; - - /* Set the mode and state for channel 0*/ - VC_AppCustomDevice.Channel[0].Mode = VC_DEVICE_ENABLED; - VC_AppCustomDevice.Channel[0].Status = VC_DEVICE_INITIALIZED; - - /* Set return error number to true */ - VC_Platform_Stubs_Returns.VC_Wrap_Select_Errno = 1; - - /* Set error number to interrupted */ - /* Note this will set errno through multiple calls */ - VC_Platform_Stubs_Returns.VC_Wrap_Select_Errno_Value = EINTR; - - /* Set a fake device file descriptor */ - VC_AppCustomDevice.Channel[0].Socket = 7; - - /* Set select to fail with an error (-1) */ - VC_Platform_Stubs_Returns.VC_Wrap_Select_Return = -1; - - /* Call the function under test */ - VC_Stream_Task(); - - /* Verfity results */ - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==(VC_MAX_RETRY_ATTEMPTS + 1), - "Event Count is not correct"); - UtAssert_True(VC_AppData.AppState == VC_INITIALIZED, - "VC_Stream_Task() did not set app state"); - UtAssert_EventSent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, returnString, - "VC_Stream_Task() failed to raise an event"); - UtAssert_EventSent(VC_DEV_INF_EID, CFE_EVS_INFORMATION, returnString1, - "VC_Stream_Task() failed to raise an event"); -} - - -/************************************************************************** - * Tests for VC_Devices_Start() - **************************************************************************/ - /** - * Test VC_Devices_Start() fail child task creation - */ -void Test_VC_Custom_DevicesStart_ChildTaskCreationFail(void) -{ - /* Set create child task to fail */ - Ut_CFE_ES_SetReturnCode(UT_CFE_ES_CREATECHILDTASK_INDEX, -1, 1); - - boolean result = TRUE; - boolean expected = FALSE; - - /* Call the function under test */ - result = VC_Devices_Start(); - - UtAssert_True(VC_AppCustomDevice.ContinueFlag == FALSE, - "Devices start continue flag not correctly set"); - UtAssert_True(result == expected,"VC_Devices_Start() did not fail"); -} - - -/** - * Test VC_Devices_Start() nominal - */ -void Test_VC_Custom_DevicesStart_Nominal(void) -{ - /* Set create child task to fail */ - Ut_CFE_ES_SetReturnCode(UT_CFE_ES_CREATECHILDTASK_INDEX, CFE_SUCCESS, 1); - - boolean result = FALSE; - boolean expected = TRUE; - - /* Call the function under test */ - result = VC_Devices_Start(); - - UtAssert_True(VC_AppCustomDevice.ContinueFlag == TRUE, - "Devices start continue flag not correctly set"); - UtAssert_True(result == expected,"VC_Devices_Start() did not fail"); -} - - -/************************************************************************** - * Tests for VC_Devices_Stop() - **************************************************************************/ - /** - * Test VC_Devices_Stop() fail delete child task - */ -void Test_VC_Custom_DevicesStop_ChildTaskDeleteFail(void) -{ - /* Set delete child task to fail */ - Ut_CFE_ES_SetReturnCode(UT_CFE_ES_DELETECHILDTASK_INDEX, -1, 1); - - boolean result = TRUE; - boolean expected = FALSE; - - /* Call the function under test */ - result = VC_Devices_Stop(); - - UtAssert_True(VC_AppCustomDevice.ContinueFlag == FALSE, - "Devices start continue flag not correctly set"); - UtAssert_True(VC_AppData.AppState == VC_INITIALIZED, - "AppState not correctly set"); - UtAssert_True(result == expected,"VC_Devices_Stop() did not fail"); -} - - - /** - * Test VC_Devices_Stop() nominal - */ -void Test_VC_Custom_DevicesStop_Nominal(void) -{ - /* Set delete child task to fail */ - Ut_CFE_ES_SetReturnCode(UT_CFE_ES_DELETECHILDTASK_INDEX, CFE_SUCCESS, 1); - - boolean result = FALSE; - boolean expected = TRUE; - - /* Call the function under test */ - result = VC_Devices_Stop(); - - UtAssert_True(VC_AppCustomDevice.ContinueFlag == FALSE, - "Devices start continue flag not correctly set"); - UtAssert_True(VC_AppData.AppState == VC_INITIALIZED, - "AppState not correctly set"); - UtAssert_True(result == expected,"VC_Devices_Stop() did not fail"); -} - - -/************************************************************************** - * Tests for VC_CleanupDevices() - **************************************************************************/ - /** - * Test VC_CleanupDevices() close fail - * - */ -void Test_VC_Custom_CleanupDevices_CloseFail(void) -{ - int32 result = 0; - int32 expected = -1; - - /* Set channel 0 to enabled */ - VC_AppCustomDevice.Channel[0].Mode = VC_DEVICE_ENABLED; - - /* Set close to fail */ - VC_Platform_Stubs_Returns.VC_Wrap_Close_Return = -1; - - /* Call the function under test */ - result = VC_CleanupDevices(); - - UtAssert_True(result == expected,"VC_DisableDevice() did not succeed"); - UtAssert_True(VC_AppCustomDevice.Channel[0].Mode == VC_DEVICE_ENABLED, - "VC_CleanupDevices() did not set correct status"); -} - -/** - * Test VC_CleanupDevices() nominal - * - */ -void Test_VC_Custom_CleanupDevices_Nominal(void) -{ - int32 result = -1; - int32 expected = 0; - - /* Set channel 0 to enabled */ - VC_AppCustomDevice.Channel[0].Mode = VC_DEVICE_ENABLED; - - - /* Call the function under test */ - result = VC_CleanupDevices(); - - UtAssert_True(result == expected,"VC_DisableDevice() did not succeed"); - UtAssert_True(VC_AppCustomDevice.Channel[0].Mode == VC_DEVICE_DISABLED, - "VC_CleanupDevices() did not set correct status"); -} - -/************************************************************************** - * Tests for VC_Devices_Init() - **************************************************************************/ - /** - * Test VC_Devices_Init fail VC_Init_CustomDevices see previous test - * VC_InitCustomDevices() fail socket creation - */ -void Test_VC_Custom_DevicesInit_Fail(void) -{ - boolean result = TRUE; - boolean expected = FALSE; - - /* Set the first device to enabled */ - VC_AppCustomDevice.Channel[0].Mode = VC_DEVICE_ENABLED; - - /* Set socket creation to fail */ - VC_Platform_Stubs_Returns.VC_Wrap_Socket_Return = -1; - VC_Platform_Stubs_Returns.VC_Wrap_Socket_Errno = 1; - VC_Platform_Stubs_Returns.VC_Wrap_Socket_Errno_Value = 13; - - result = VC_Devices_Init(); - - UtAssert_True(result == expected,"VC_Devices_Init() did not return an error"); -} - - - /** - * Test VC_Devices_Init nominal see previous test - * VC_InitCustomDevices() nominal - */ -void Test_VC_Custom_DevicesInit_Nominal(void) -{ - boolean result = FALSE; - boolean expected = TRUE; - - /* Set the first device to enabled */ - VC_AppCustomDevice.Channel[0].Mode = VC_DEVICE_ENABLED; - - result = VC_Devices_Init(); - - UtAssert_True(result == expected,"VC_Devices_Init() did not return an error"); -} - - -/************************************************************************** - * Tests for VC_Devices_Uninit() - **************************************************************************/ -/** - * Test VC_Devices_Uninit() cleanup fail see previous test - * VC_CleanupDevices() close fail - */ -void Test_VC_Custom_DevicesUninit_CleanupFail(void) -{ - boolean result = TRUE; - boolean expected = FALSE; - - /* Set channel 0 to enabled */ - VC_AppCustomDevice.Channel[0].Mode = VC_DEVICE_ENABLED; - - /* Set close to fail */ - VC_Platform_Stubs_Returns.VC_Wrap_Close_Return = -1; - - /* Call the function under test */ - result = VC_Devices_Uninit(); - - UtAssert_True(result == expected,"VC_DisableDevice() did not succeed"); - UtAssert_True(VC_AppCustomDevice.Channel[0].Mode = VC_DEVICE_DISABLED, - "VC_CleanupDevices() did not set correct status"); -} - - -/** - * Test VC_Devices_Uninit() nominal - * - */ -void Test_VC_Custom_DevicesUninit_Nominal(void) -{ - boolean result = FALSE; - boolean expected = TRUE; - - /* Call the function under test */ - result = VC_Devices_Uninit(); - - UtAssert_True(result == expected,"VC_DisableDevice() did not succeed"); - UtAssert_True(VC_AppCustomDevice.Channel[0].Mode = VC_DEVICE_DISABLED, - "VC_CleanupDevices() did not set correct status"); -} - -/************************************************************************** - * Tests for VC_Send_Buffer() - **************************************************************************/ -/** - * Test VC_Send_Buffer() recv error - * - */ -void Test_VC_Custom_SendBuffer_RecvError(void) -{ - int32 result = 0; - int32 expected = -1; - - char returnString[64]; - snprintf(returnString, 64, "VC recv errno: %i on channel %u", 1, 0); - - /* Set recv to fail */ - VC_Platform_Stubs_Returns.VC_Wrap_Recv_Return = -1; - VC_Platform_Stubs_Returns.VC_Wrap_Recv_Errno = 1; - VC_Platform_Stubs_Returns.VC_Wrap_Recv_Errno_Value = 1; - - /* Call the function under test */ - result = VC_Send_Buffer(0); - - UtAssert_True(result == expected,"VC_Send_Buffer() did not return the correct value"); - UtAssert_EventSent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, returnString, - "VC_Send_Buffer() failed to raise an event"); -} - - -/** - * Test VC_Send_Buffer() size error - * - */ -void Test_VC_Custom_SendBuffer_SizeError(void) -{ - int32 result = 0; - int32 expected = -1; - - char returnString[64]; - snprintf(returnString, 64, "VC recv size error on channel %u", 0); - - /* Set recv to fail */ - VC_Platform_Stubs_Returns.VC_Wrap_Recv_Return = VC_MPARTMUX_HEADER_SIZE; - VC_Platform_Stubs_Returns.VC_Wrap_Recv_Return1 = -1; - - /* Call the function under test */ - result = VC_Send_Buffer(0); - - UtAssert_True(result == expected,"VC_Send_Buffer() did not return the correct value"); - UtAssert_EventSent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, returnString, - "VC_Send_Buffer() failed to raise an event"); -} - - -/** - * Test VC_Send_Buffer() send data fail - * - */ -void Test_VC_Custom_SendBuffer_SendError(void) -{ - int32 result = 0; - int32 expected = -1; - - char returnString[64]; - snprintf(returnString, 64, "VC send data failed on channel %u", 0); - - /* Set recv to pass/fail */ - VC_Platform_Stubs_Returns.VC_Wrap_Recv_Return = VC_MPARTMUX_HEADER_SIZE; - VC_Platform_Stubs_Returns.VC_Wrap_Recv_Return1 = 0; - - /* set sendto to fail */ - VC_Platform_Stubs_Returns.VC_Wrap_SendTo_Return = -1; - - /* Properly initialize custom transmit data */ - VC_CustomTransmit_InitData(); - - /* Call the function under test */ - result = VC_Send_Buffer(0); - - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==2,"Event Count = 2"); - UtAssert_True(result == expected,"VC_Send_Buffer() did not return the correct value"); - UtAssert_EventSent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, returnString, - "VC_Send_Buffer() failed to raise an event"); -} - - -/** - * Test VC_Send_Buffer() nominal - * - */ -void Test_VC_Custom_SendBuffer_Nominal(void) -{ - int32 result = -1; - int32 expected = 0; - - char returnString[64]; - snprintf(returnString, 64, "VC send data failed on channel %u", 0); - - /* Set recv to pass/fail */ - VC_Platform_Stubs_Returns.VC_Wrap_Recv_Return = VC_MPARTMUX_HEADER_SIZE; - VC_Platform_Stubs_Returns.VC_Wrap_Recv_Return1 = 0; - - /* Properly initialize custom transmit data */ - VC_CustomTransmit_InitData(); - - /* Call the function under test */ - result = VC_Send_Buffer(0); - - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==0,"Event Count = 0"); - UtAssert_True(result == expected,"VC_Send_Buffer() did not return the correct value"); -} - - -/************************************************************************** - * Tests for VC_Devices_InitData() - **************************************************************************/ - -/** - * Test VC_Devices_InitData() nominal - * Note: currently no way to fail this function - */ -void Test_VC_Devices_InitData_Nominal(void) -{ - int32 result = -1; - int32 expected = CFE_SUCCESS; - - /* Call the function under test */ - result = VC_Devices_InitData(); - - /* Verify the results */ - UtAssert_True(result == expected,"VC_Custom_InitData() did not succeed"); -} - -/************************************************************************** - * Rollup Test Cases - **************************************************************************/ -void VC_Custom_App_Device_Test_AddTestCases(void) -{ -/************************************************************************** - * Tests for Custom Device Layer - **************************************************************************/ - UtTest_Add(Test_VC_Custom_InitCustomDevices_FailSocket, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_InitCustomDevices_FailSocket"); - UtTest_Add(Test_VC_Custom_InitCustomDevices_FailBind, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_InitCustomDevices_FailBind"); - UtTest_Add(Test_VC_Custom_InitCustomDevices_Nominal, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_InitCustomDevices_Nominal"); - UtTest_Add(Test_VC_Custom_StreamTask_RegisterChildTaskFail, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_StreamTask_RegisterChildTaskFail"); - UtTest_Add(Test_VC_Custom_StreamTask_NothingEnabled, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_StreamTask_NothingEnabled"); - UtTest_Add(Test_VC_Custom_StreamTask_SelectError, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_StreamTask_SelectError"); - UtTest_Add(Test_VC_Custom_StreamTask_InterruptedError, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_StreamTask_InterruptedError"); - UtTest_Add(Test_VC_Custom_DevicesStart_ChildTaskCreationFail, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_DevicesStart_ChildTaskCreationFail"); - UtTest_Add(Test_VC_Custom_DevicesStart_Nominal, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_DevicesStart_Nominal"); - UtTest_Add(Test_VC_Custom_DevicesStop_ChildTaskDeleteFail, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_DevicesStop_ChildTaskDeleteFail"); - UtTest_Add(Test_VC_Custom_DevicesStop_Nominal, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_DevicesStop_Nominal"); - UtTest_Add(Test_VC_Custom_CleanupDevices_CloseFail, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_CleanupDevices_CloseFail"); - UtTest_Add(Test_VC_Custom_CleanupDevices_Nominal, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_CleanupDevices_Nominal"); - UtTest_Add(Test_VC_Custom_DevicesInit_Fail, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_DevicesInit_Fail"); - UtTest_Add(Test_VC_Custom_DevicesInit_Nominal, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_DevicesInit_Nominal"); - UtTest_Add(Test_VC_Custom_DevicesUninit_CleanupFail, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_DevicesUninit_CleanupFail"); - UtTest_Add(Test_VC_Custom_DevicesUninit_Nominal, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_DevicesUninit_Nominal"); - UtTest_Add(Test_VC_Custom_SendBuffer_RecvError, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_SendBuffer_RecvError"); - UtTest_Add(Test_VC_Custom_SendBuffer_SizeError, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_SendBuffer_SizeError"); - UtTest_Add(Test_VC_Custom_SendBuffer_SendError, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_SendBuffer_SendError"); - UtTest_Add(Test_VC_Custom_SendBuffer_Nominal, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_SendBuffer_Nominal"); - UtTest_Add(Test_VC_Devices_InitData_Nominal, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Devices_InitData_Nominal"); -} diff --git a/config/ocpoc/s1000/target/apps/vc/unit_test/vc_dev_io_udp_test/vc_app_custom_device_test.h b/config/ocpoc/s1000/target/apps/vc/unit_test/vc_dev_io_udp_test/vc_app_custom_device_test.h deleted file mode 100644 index 38b7e33d3..000000000 --- a/config/ocpoc/s1000/target/apps/vc/unit_test/vc_dev_io_udp_test/vc_app_custom_device_test.h +++ /dev/null @@ -1,48 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ - -#ifndef VC_APP_CUSTOM_DEVICE_TEST_H -#define VC_APP_CUSTOM_DEVICE_TEST_H - -#ifdef __cplusplus -extern "C" { -#endif - -void VC_Custom_App_Device_Test_AddTestCases(void); - - -#ifdef __cplusplus -} -#endif - -#endif /* VC_APP_CUSTOM_DEVICE_TEST_H */ diff --git a/config/ocpoc/s1000/target/apps/vc/unit_test/vc_dev_io_udp_test/vc_custom_device_test_utils.c b/config/ocpoc/s1000/target/apps/vc/unit_test/vc_dev_io_udp_test/vc_custom_device_test_utils.c deleted file mode 100644 index f34216d08..000000000 --- a/config/ocpoc/s1000/target/apps/vc/unit_test/vc_dev_io_udp_test/vc_custom_device_test_utils.c +++ /dev/null @@ -1,76 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ - -#include "vc_custom_device_test_utils.h" -#include "vc_platform_stubs.h" - -#include "ut_cfe_evs_hooks.h" -#include "ut_cfe_time_stubs.h" -#include "ut_cfe_psp_memutils_stubs.h" -#include "ut_cfe_tbl_stubs.h" -#include "ut_cfe_tbl_hooks.h" -#include "ut_cfe_fs_stubs.h" -#include "ut_cfe_time_stubs.h" -#include "ut_osapi_stubs.h" -#include "ut_osfileapi_stubs.h" -#include "ut_cfe_sb_stubs.h" -#include "ut_cfe_es_stubs.h" -#include "ut_cfe_evs_stubs.h" - -#include - -/* - * Function Definitions - */ - -void VC_Custom_Device_Test_Setup(void) -{ - /* initialize test environment to default state for every test */ - - CFE_PSP_MemSet(&VC_AppCustomDevice, 0x00, sizeof(VC_AppCustomDevice_t)); - - Ut_CFE_EVS_Reset(); - Ut_CFE_FS_Reset(); - Ut_CFE_TIME_Reset(); - Ut_CFE_TBL_Reset(); - Ut_CFE_SB_Reset(); - Ut_CFE_ES_Reset(); - Ut_OSAPI_Reset(); - Ut_OSFILEAPI_Reset(); -} - -void VC_Custom_Device_Test_TearDown(void) { - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_CallCount = 0; - CFE_PSP_MemSet(&VC_AppCustomDevice, 0x00, sizeof(VC_AppCustomDevice_t)); - CFE_PSP_MemSet(&VC_Platform_Stubs_Returns, 0x00, sizeof(VC_Platform_Stubs_Returns_t)); -} diff --git a/config/ocpoc/s1000/target/apps/vc/unit_test/vc_dev_io_udp_test/vc_custom_device_test_utils.h b/config/ocpoc/s1000/target/apps/vc/unit_test/vc_dev_io_udp_test/vc_custom_device_test_utils.h deleted file mode 100644 index c170b7b8b..000000000 --- a/config/ocpoc/s1000/target/apps/vc/unit_test/vc_dev_io_udp_test/vc_custom_device_test_utils.h +++ /dev/null @@ -1,61 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ - -#ifndef VC_CUSTOM_DEVICE_TEST_UTILS_H -#define VC_CUSTOM_DEVICE_TEST_UTILS_H - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * Includes - */ - -#include "vc_dev_io_udp.h" - -extern VC_AppCustomDevice_t VC_AppCustomDevice; - -/* - * Function Definitions - */ - -void VC_Custom_Device_Test_Setup(void); -void VC_Custom_Device_Test_TearDown(void); - - -#ifdef __cplusplus -} -#endif - -#endif /* VC_CUSTOM_DEVICE_TEST_UTILS_H */ diff --git a/config/ocpoc/s1000/target/apps/vc/unit_test/vc_dev_io_v4l_test/vc_app_custom_device_test.c b/config/ocpoc/s1000/target/apps/vc/unit_test/vc_dev_io_v4l_test/vc_app_custom_device_test.c deleted file mode 100644 index 9badeb810..000000000 --- a/config/ocpoc/s1000/target/apps/vc/unit_test/vc_dev_io_v4l_test/vc_app_custom_device_test.c +++ /dev/null @@ -1,1944 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ - -#include "vc_app_custom_device_test.h" -#include "vc_custom_device_test_utils.h" -#include "vc_transmit_udp.h" -#include "vc_platform_stubs.h" -#include "vc_platform_cfg.h" -#include -#include -#include - -#include "uttest.h" -#include "ut_osapi_stubs.h" -#include "ut_cfe_sb_stubs.h" -#include "ut_cfe_sb_hooks.h" -#include "ut_cfe_es_stubs.h" -#include "ut_cfe_es_hooks.h" -#include "ut_cfe_evs_stubs.h" -#include "ut_cfe_evs_hooks.h" -#include "ut_cfe_time_stubs.h" -#include "ut_cfe_psp_memutils_stubs.h" -#include "ut_cfe_tbl_stubs.h" -#include "ut_cfe_fs_stubs.h" -#include "ut_cfe_time_stubs.h" - - -/************************************************************************** - * Tests for VC_Ioctl() - **************************************************************************/ -/** - * Test VC_Ioctl() ioctl returns -1 error - */ -void Test_VC_Custom_Ioctl_Error(void) -{ - int32 result = 0; - int32 expected = -1; - - /* Set a return value for the wrapped ioctl */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Return = -1; - - /* A test argument to pass to VC_Ioctl value is random - * the wrapped ioctl will not use the arguments and will return a - * value */ - int test = 1; - - - result = VC_Ioctl(test, test, &test); - - UtAssert_True(result == expected, "VC_Ioctl did not return an error"); -} -/** - * Test VC_Ioctl() ioctl returns -1 error and errno interrupted - */ -void Test_VC_Custom_Ioctl_Interrupted(void) -{ - int32 result = 0; - int32 expected = -1; - uint32 i = 0; - - /* Set a return value for the wrapped ioctl (always fail) */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Return = -1; - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Return1 = -1; - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Return2 = -1; - - /* Set return error number to true */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Errno = 1; - - /* Set error number to interrupted */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Errno_Value = EINTR; - - /* A test argument to pass to VC_Ioctl value is random - * the wrapped ioctl will not use the arguments and will return a - * value */ - int test = 777; - - /* Call VC_Ioctl with errno set to EINTR max retry attempts*/ - result = VC_Ioctl(test, test, &test); - - UtAssert_True(result == expected, "VC_Ioctl did not return an error"); -} - -/************************************************************************** - * Tests for VC_InitDevice() - **************************************************************************/ - -/** - * Test VC_InitDevice() through VC_Init_CustomDevices already initialized error - */ -void Test_VC_Custom_InitDevice_AlreadyInitialized(void) -{ - int32 result = 0; - int32 expected = -1; - uint8 DeviceID = 0; - - strcpy(VC_AppCustomDevice.Channel[0].DevName, "test"); - - /* Set the first device to enabled */ - VC_AppCustomDevice.Channel[0].Mode = VC_DEVICE_ENABLED; - /* Set the first device file descriptor to a non-zero value */ - VC_AppCustomDevice.Channel[0].DeviceFd = 1; - - result = VC_Init_CustomDevices(); - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); - UtAssert_True(result == expected,"VC_InitDevice() did not return an error"); - - UtAssert_True(VC_AppCustomDevice.Channel[0].Mode == VC_DEVICE_DISABLED, - "VC_InitCustomDevices() did not mode to disabled"); - UtAssert_EventSent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, "VC Device test for channel 0 already initialized.", - "VC_InitDevice() failed to raise an event"); -} - - -/** - * Test VC_InitDevice() null device name - */ -void Test_VC_Custom_InitDevice_NullName(void) -{ - int32 result = 0; - int32 expected = -1; - uint8 DeviceID = 0; - char *DeviceName = 0; - - /* Set the first device to enabled */ - VC_AppCustomDevice.Channel[0].Mode = VC_DEVICE_ENABLED; - - - result = VC_InitDevice(DeviceID, DeviceName); - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); - UtAssert_True(result == expected,"VC_InitDevice() did not return an error"); - UtAssert_EventSent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, "VC Device name for channel 0 is null.", - "VC_InitDevice() failed to raise an event"); -} - - -/** - * Test VC_InitDevice() invalid device ID - */ -void Test_VC_Custom_InitDevice_InvalidID(void) -{ - int32 result = 0; - int32 expected = -1; - uint8 DeviceID = VC_MAX_DEVICES; - char returnString[32]; - snprintf(returnString, 32, "VC DeviceID (%u) invalid.", VC_MAX_DEVICES); - char DeviceName[] = "test"; - - /* Set the first device to enabled */ - VC_AppCustomDevice.Channel[0].Mode = VC_DEVICE_ENABLED; - - result = VC_InitDevice(DeviceID, DeviceName); - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); - UtAssert_True(result == expected,"VC_InitDevice() did not return an error"); - UtAssert_EventSent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, returnString, - "VC_InitDevice() failed to raise an event"); -} - - -/** - * Test VC_InitDevice() through VC_InitCustomDevices() open error - */ -void Test_VC_Custom_InitDevice_OpenError(void) -{ - int32 result = 0; - int32 expected = -1; - uint8 DeviceID = 0; - char returnString[32]; - snprintf(returnString, 32, "VC Device open errno: %i on channel %u", 5, 0); - //char DeviceName[] = "test"; - - /* Set a return value for the wrapped open */ - VC_Platform_Stubs_Returns.VC_Wrap_Open_Return = -1; - - /* Set return error number to true */ - VC_Platform_Stubs_Returns.VC_Wrap_Open_Errno = 1; - - /* Set error number to interrupted */ - VC_Platform_Stubs_Returns.VC_Wrap_Open_Errno_Value = 5; - - /* Set the first device to enabled */ - VC_AppCustomDevice.Channel[0].Mode = VC_DEVICE_ENABLED; - - //result = VC_InitDevice(DeviceID, DeviceName); - result = VC_Init_CustomDevices(); - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); - UtAssert_True(VC_AppCustomDevice.Channel[0].Mode == VC_DEVICE_DISABLED, - "VC_InitCustomDevices() did not mode to disabled"); - UtAssert_True(result == expected,"VC_InitDevice() did not return an error"); - UtAssert_EventSent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, returnString, - "VC_InitDevice() failed to raise an event"); -} - -/** - * Test VC_InitDevice() nominal - */ -void Test_VC_Custom_InitDevice_Nominal(void) -{ - int32 result = 0; - int32 expected = 0; - uint8 DeviceID = 0; - char DeviceName[] = "test"; - - - /* Set the first device to enabled */ - VC_AppCustomDevice.Channel[0].Mode = VC_DEVICE_ENABLED; - - result = VC_InitDevice(DeviceID, DeviceName); - - UtAssert_True(result == expected,"VC_InitDevice() did not return success"); -} - - -/************************************************************************** - * Tests for VC_InitCustomDevices() - **************************************************************************/ - -/** - * Test VC_InitCustomDevices() pass init but fail configure - * ConfigureDevice will fail on the first v4L struct verification - */ -void Test_VC_Custom_InitCustomDevices_FailConfigure(void) -{ - int32 result = 0; - int32 expected = -1; - uint8 DeviceID = 0; - char returnString[64]; - snprintf(returnString, 64, "VC Device initialized channel %u from %s", 0, "test"); - - /* Set the first device to enabled */ - VC_AppCustomDevice.Channel[0].Mode = VC_DEVICE_ENABLED; - - /* Set a test device path */ - strcpy(VC_AppCustomDevice.Channel[0].DevName, "test"); - - result = VC_Init_CustomDevices(); - - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==2,"Event Count = 2"); - UtAssert_EventSent(VC_DEV_INF_EID, CFE_EVS_INFORMATION, returnString, - "VC_InitCustomDevices() failed to raise an event"); - UtAssert_True(VC_AppCustomDevice.Channel[0].Status == VC_DEVICE_UNINITIALIZED, - "VC_InitCustomDevices() did not set status to uninitialized"); - UtAssert_True(result == expected,"VC_InitDevice() did not return failure"); -} - -/** - * Test VC_InitCustomDevices() Nominal - */ -void Test_VC_Custom_InitCustomDevices_Nominal(void) -{ - int32 result = 0; - int32 expected = 0; - uint8 DeviceID = 0; - char returnString[64]; - snprintf(returnString, 64, "VC Device initialized channel %u from %s", 0, "test"); - char returnString1[64]; - snprintf(returnString1, 64, "VC Device configured channel %u from %s", 0, "test"); - /* Set the first device to enabled */ - VC_AppCustomDevice.Channel[0].Mode = VC_DEVICE_ENABLED; - - /* Set to true to emulate ioctl setting struct values */ - /* Need to succeed twice to reach format ioctl call */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Struct = 2; - - /* Set the test device path */ - strcpy(VC_AppCustomDevice.Channel[0].DevName, "test"); - - /* Set the video format to pass format check */ - VC_AppCustomDevice.Channel[0].VideoFormat = VC_V4L_VIDEO_FORMAT; - - /* Set the correct buffer type */ - VC_AppCustomDevice.Channel[0].BufferType = VC_V4L_BUFFER_TYPE; - - /* Set the correct resolution */ - VC_AppCustomDevice.Channel[0].FrameWidth = VC_FRAME_WIDTH; - VC_AppCustomDevice.Channel[0].FrameHeight = VC_FRAME_HEIGHT; - - /* Set the correct size */ - VC_AppCustomDevice.Channel[0].Buffer_Size = VC_MAX_BUFFER_SIZE; - - /* Set the correct buffer number */ - VC_AppCustomDevice.Channel[0].BufferRequest = VC_V4L_BUFFER_REQUEST; - - result = VC_Init_CustomDevices(); - - UtAssert_True(result == expected,"VC_Init_CustomDevices() did not succeed"); - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==2,"Event Count = 2"); - UtAssert_True(VC_AppCustomDevice.Channel[0].Status == VC_DEVICE_INITIALIZED, - "VC_Init_CustomDevices() state not initialized"); - UtAssert_EventSent(VC_DEV_INF_EID, CFE_EVS_INFORMATION, returnString, - "VC_InitCustomDevices() failed to raise an event"); - UtAssert_EventSent(VC_DEV_INF_EID, CFE_EVS_INFORMATION, returnString1, - "VC_InitCustomDevices() failed to raise an event"); -} - -/************************************************************************** - * Tests for VC_ConfigureDevice() - **************************************************************************/ - -/** - * Test VC_ConfigureDevice() fail V4L capabilities query - */ -void Test_VC_Custom_ConfigureDevice_CapabilitiesFail(void) -{ - int32 result = 0; - int32 expected = -1; - uint8 DeviceID = 0; - char returnString[64]; - snprintf(returnString, 64, "VC VIDIOC_QUERYCAP returned %i on %s channel %u", 5, "test", 0); - - /* Set a return value for the wrapped ioctl */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Return = -1; - - /* Set return error number to true */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Errno = 1; - - /* Set error number to interrupted */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Errno_Value = 5; - - strcpy(VC_AppCustomDevice.Channel[0].DevName, "test"); - - result = VC_ConfigureDevice(DeviceID); - - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); - UtAssert_EventSent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, returnString, - "VC_ConfigureDevices() failed to raise an event"); - UtAssert_True(result == expected,"VC_ConfigureDevice() did not return failure"); - -} - - -/** - * Test VC_ConfigureDevice() fail V4L capabilities fail - * check buffer type - */ -void Test_VC_Custom_ConfigureDevice_CapabilitiesBuffer(void) -{ - int32 result = 0; - int32 expected = -1; - uint8 DeviceID = 0; - char returnString[64]; - snprintf(returnString, 64, "VC Capabilities %u on %s channel %u not found", - VC_V4L_BUFFER_TYPE,"test", 0); - - /* Set the test device path */ - strcpy(VC_AppCustomDevice.Channel[0].DevName, "test"); - - VC_AppCustomDevice.Channel[0].BufferType = VC_V4L_BUFFER_TYPE; - - /* Call the function under test */ - result = VC_ConfigureDevice(DeviceID); - - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); - UtAssert_EventSent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, returnString, - "VC_ConfigureDevices() failed to raise an event"); - UtAssert_True(result == expected,"VC_ConfigureDevice() did not return failure"); - -} - - -/** - * Test VC_ConfigureDevice() fail V4L capabilities check fail - * check streaming capability - */ -void Test_VC_Custom_ConfigureDevice_CapabilitiesStreaming(void) -{ - int32 result = 0; - int32 expected = -1; - uint8 DeviceID = 0; - char returnString[64]; - snprintf(returnString, 64, "VC Capabilities %u on %s channel %u not found", - V4L2_CAP_STREAMING,"test", 0); - - /* Set to true to emulate ioctl setting struct values */ - /* Need to succeed once for the first capabilities check */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Struct = 1; - - /* Set the test device path */ - strcpy(VC_AppCustomDevice.Channel[0].DevName, "test"); - - /* Set the correct buffer type */ - VC_AppCustomDevice.Channel[0].BufferType = VC_V4L_BUFFER_TYPE; - - /* Call the function under test */ - result = VC_ConfigureDevice(DeviceID); - - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); - UtAssert_EventSent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, returnString, - "VC_ConfigureDevices() failed to raise an event"); - UtAssert_True(result == expected,"VC_ConfigureDevice() did not return failure"); - -} - - -/** - * Test VC_ConfigureDevice() fail V4L set format fail - */ -void Test_VC_Custom_ConfigureDevice_FormatFail(void) -{ - int32 result = 0; - int32 expected = -1; - uint8 DeviceID = 0; - char returnString[64]; - snprintf(returnString, 64, "VIDIOC_S_FMT returned %i on %s channel %u", - 5,"test", 0); - - /* Set to true to emulate ioctl setting struct values */ - /* Need to succeed twice to reach format ioctl call */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Struct = 2; - - /* Set the test device path */ - strcpy(VC_AppCustomDevice.Channel[0].DevName, "test"); - - /* Set the correct buffer type */ - VC_AppCustomDevice.Channel[0].BufferType = VC_V4L_BUFFER_TYPE; - - /* Set return error number to true */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Errno = 1; - - /* Set error number to interrupted */ - /* Note this will set errno through multiple calls */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Errno_Value = 5; - - /* Set the second ioctl call to fail */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Return1 = -1; - - /* Call the function under test */ - result = VC_ConfigureDevice(DeviceID); - - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); - UtAssert_EventSent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, returnString, - "VC_ConfigureDevices() failed to raise an event"); - UtAssert_True(result == expected,"VC_ConfigureDevice() did not return failure"); - -} - -/** - * Test VC_ConfigureDevice() fail V4L set format verification check - */ -void Test_VC_Custom_ConfigureDevice_FormatCheck(void) -{ - int32 result = 0; - int32 expected = -1; - uint8 DeviceID = 0; - char returnString[64]; - snprintf(returnString, 64, "VC device %s channel %u didn't accept format %u.", - "test",0, 0); - - /* Set to true to emulate ioctl setting struct values */ - /* Need to succeed twice to reach format ioctl call */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Struct = 2; - - /* Set the test device path */ - strcpy(VC_AppCustomDevice.Channel[0].DevName, "test"); - - /* Set the correct buffer type */ - VC_AppCustomDevice.Channel[0].BufferType = VC_V4L_BUFFER_TYPE; - - /* Call the function under test */ - result = VC_ConfigureDevice(DeviceID); - - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); - UtAssert_EventSent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, returnString, - "VC_ConfigureDevices() failed to raise an event"); - UtAssert_True(result == expected,"VC_ConfigureDevice() did not return failure"); - -} - -/** - * Test VC_ConfigureDevice() fail V4L set format verification check - * resolution - */ -void Test_VC_Custom_ConfigureDevice_FormatCheckRes(void) -{ - int32 result = 0; - int32 expected = -1; - uint8 DeviceID = 0; - char returnString[64]; - snprintf(returnString, 64, "VC device %s channel %u didn't accept resolution instead %d:%d.", - "test",0, VC_FRAME_WIDTH, VC_FRAME_HEIGHT); - - /* Set to true to emulate ioctl setting struct values */ - /* Need to succeed twice to reach format ioctl call */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Struct = 2; - - /* Set the test device path */ - strcpy(VC_AppCustomDevice.Channel[0].DevName, "test"); - - /* Set the video format to pass format check */ - VC_AppCustomDevice.Channel[0].VideoFormat = VC_V4L_VIDEO_FORMAT; - - /* Set the correct buffer type */ - VC_AppCustomDevice.Channel[0].BufferType = VC_V4L_BUFFER_TYPE; - - /* Call the function under test */ - result = VC_ConfigureDevice(DeviceID); - - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); - UtAssert_EventSent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, returnString, - "VC_ConfigureDevices() failed to raise an event"); - UtAssert_True(result == expected,"VC_ConfigureDevice() did not return failure"); -} - -/** - * Test VC_ConfigureDevice() fail V4L set format verification check - * size - */ -void Test_VC_Custom_ConfigureDevice_FormatCheckSize(void) -{ - int32 result = 0; - int32 expected = -1; - uint8 DeviceID = 0; - char returnString[64]; - snprintf(returnString, 64, "VC device %s channel %u size image %u > buffer size %lu.", - "test",0, VC_MAX_BUFFER_SIZE, 0); - - /* Set to true to emulate ioctl setting struct values */ - /* Need to succeed twice to reach format ioctl call */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Struct = 2; - - /* Set the test device path */ - strcpy(VC_AppCustomDevice.Channel[0].DevName, "test"); - - /* Set the video format to pass format check */ - VC_AppCustomDevice.Channel[0].VideoFormat = VC_V4L_VIDEO_FORMAT; - - /* Set the correct buffer type */ - VC_AppCustomDevice.Channel[0].BufferType = VC_V4L_BUFFER_TYPE; - - /* Set the correct resolution */ - VC_AppCustomDevice.Channel[0].FrameWidth = VC_FRAME_WIDTH; - VC_AppCustomDevice.Channel[0].FrameHeight = VC_FRAME_HEIGHT; - - /* Call the function under test */ - result = VC_ConfigureDevice(DeviceID); - - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); - UtAssert_EventSent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, returnString, - "VC_ConfigureDevices() failed to raise an event"); - UtAssert_True(result == expected,"VC_ConfigureDevice() did not return failure"); -} - - -/** - * Test VC_ConfigureDevice() fail V4L requests buffers - */ -void Test_VC_Custom_ConfigureDevice_RequestsBuffers(void) -{ - int32 result = 0; - int32 expected = -1; - uint8 DeviceID = 0; - char returnString[64]; - snprintf(returnString, 64, "VC VIDIOC_REQBUFS returned %i on %s channel %u.", - 5,"test",0); - - /* Set to true to emulate ioctl setting struct values */ - /* Need to succeed twice to reach format ioctl call */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Struct = 2; - - /* Set the test device path */ - strcpy(VC_AppCustomDevice.Channel[0].DevName, "test"); - - /* Set the video format to pass format check */ - VC_AppCustomDevice.Channel[0].VideoFormat = VC_V4L_VIDEO_FORMAT; - - /* Set the correct buffer type */ - VC_AppCustomDevice.Channel[0].BufferType = VC_V4L_BUFFER_TYPE; - - /* Set the correct resolution */ - VC_AppCustomDevice.Channel[0].FrameWidth = VC_FRAME_WIDTH; - VC_AppCustomDevice.Channel[0].FrameHeight = VC_FRAME_HEIGHT; - - /* Set the correct size */ - VC_AppCustomDevice.Channel[0].Buffer_Size = VC_MAX_BUFFER_SIZE; - - /* Set return error number to true */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Errno = 1; - - /* Set error number to interrupted */ - /* Note this will set errno through multiple calls */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Errno_Value = 5; - - /* Set the third ioctl call to fail */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Return2 = -1; - - /* Call the function under test */ - result = VC_ConfigureDevice(DeviceID); - - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); - UtAssert_EventSent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, returnString, - "VC_ConfigureDevices() failed to raise an event"); - UtAssert_True(result == expected,"VC_ConfigureDevice() did not return failure"); -} - - -/** - * Test VC_ConfigureDevice() fail V4L requests buffers fail requested - * count verification - */ -void Test_VC_Custom_ConfigureDevice_RequestsBuffersCount(void) -{ - int32 result = 0; - int32 expected = -1; - uint8 DeviceID = 0; - char returnString[64]; - snprintf(returnString, 64, "VC VIDIOC_REQBUFS did not comply. %u buffers on %s channel %u.", - 4,"test",0); - - /* Set to true to emulate ioctl setting struct values */ - /* Need to succeed twice to reach format ioctl call */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Struct = 2; - - /* Set the test device path */ - strcpy(VC_AppCustomDevice.Channel[0].DevName, "test"); - - /* Set the video format to pass format check */ - VC_AppCustomDevice.Channel[0].VideoFormat = VC_V4L_VIDEO_FORMAT; - - /* Set the correct buffer type */ - VC_AppCustomDevice.Channel[0].BufferType = VC_V4L_BUFFER_TYPE; - - /* Set the correct resolution */ - VC_AppCustomDevice.Channel[0].FrameWidth = VC_FRAME_WIDTH; - VC_AppCustomDevice.Channel[0].FrameHeight = VC_FRAME_HEIGHT; - - /* Set the correct size */ - VC_AppCustomDevice.Channel[0].Buffer_Size = VC_MAX_BUFFER_SIZE; - - /* Call the function under test */ - result = VC_ConfigureDevice(DeviceID); - - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); - UtAssert_EventSent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, returnString, - "VC_ConfigureDevices() failed to raise an event"); - UtAssert_True(result == expected,"VC_ConfigureDevice() did not return failure"); -} - -/** - * Test VC_ConfigureDevice() nominal - */ -void Test_VC_Custom_ConfigureDevice_Nominal(void) -{ - int32 result = 0; - int32 expected = 0; - uint8 DeviceID = 0; - - /* Set to true to emulate ioctl setting struct values */ - /* Need to succeed twice to reach format ioctl call */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Struct = 2; - - /* Set the test device path */ - strcpy(VC_AppCustomDevice.Channel[0].DevName, "test"); - - /* Set the video format to pass format check */ - VC_AppCustomDevice.Channel[0].VideoFormat = VC_V4L_VIDEO_FORMAT; - - /* Set the correct buffer type */ - VC_AppCustomDevice.Channel[0].BufferType = VC_V4L_BUFFER_TYPE; - - /* Set the correct resolution */ - VC_AppCustomDevice.Channel[0].FrameWidth = VC_FRAME_WIDTH; - VC_AppCustomDevice.Channel[0].FrameHeight = VC_FRAME_HEIGHT; - - /* Set the correct size */ - VC_AppCustomDevice.Channel[0].Buffer_Size = VC_MAX_BUFFER_SIZE; - - /* Set the correct buffer number */ - VC_AppCustomDevice.Channel[0].BufferRequest = VC_V4L_BUFFER_REQUEST; - - /* Call the function under test */ - result = VC_ConfigureDevice(DeviceID); - - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==0,"Event Count = 0"); - UtAssert_True(result == expected,"VC_ConfigureDevice() did not return failure"); -} - -/************************************************************************** - * Tests for VC_Devices_Init() - **************************************************************************/ - -/** - * Test VC_Devices_Init fail VC_Init_CustomDevices and - * VC_InitDevice() already initialized error (see previous already - * initialized test) - */ -void Test_VC_Custom_DevicesInit_Fail(void) -{ - boolean result = TRUE; - boolean expected = FALSE; - uint8 DeviceID = 0; - - strcpy(VC_AppCustomDevice.Channel[0].DevName, "test"); - - /* Set the first device to enabled */ - VC_AppCustomDevice.Channel[0].Mode = VC_DEVICE_ENABLED; - /* Set the first device file descriptor to a non-zero value */ - VC_AppCustomDevice.Channel[0].DeviceFd = 1; - - result = VC_Devices_Init(); - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); - UtAssert_True(result == expected,"VC_InitDevice() did not return an error"); - - UtAssert_True(VC_AppCustomDevice.Channel[0].Mode == VC_DEVICE_DISABLED, - "VC_InitCustomDevices() did not mode to disabled"); - UtAssert_EventSent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, "VC Device test for channel 0 already initialized.", - "VC_InitDevice() failed to raise an event"); -} - -/** - * Test VC_Devices_Init Nominal (See previous test for - * VC_InitCustomDevices() Nominal) - */ -void Test_VC_Custom_DevicesInit_Nominal(void) -{ - boolean result = FALSE; - boolean expected = TRUE; - uint8 DeviceID = 0; - char returnString[64]; - snprintf(returnString, 64, "VC Device initialized channel %u from %s", 0, "test"); - char returnString1[64]; - snprintf(returnString1, 64, "VC Device configured channel %u from %s", 0, "test"); - /* Set the first device to enabled */ - VC_AppCustomDevice.Channel[0].Mode = VC_DEVICE_ENABLED; - - /* Set to true to emulate ioctl setting struct values */ - /* Need to succeed twice to reach format ioctl call */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Struct = 2; - - /* Set the test device path */ - strcpy(VC_AppCustomDevice.Channel[0].DevName, "test"); - - /* Set the video format to pass format check */ - VC_AppCustomDevice.Channel[0].VideoFormat = VC_V4L_VIDEO_FORMAT; - - /* Set the correct buffer type */ - VC_AppCustomDevice.Channel[0].BufferType = VC_V4L_BUFFER_TYPE; - - /* Set the correct resolution */ - VC_AppCustomDevice.Channel[0].FrameWidth = VC_FRAME_WIDTH; - VC_AppCustomDevice.Channel[0].FrameHeight = VC_FRAME_HEIGHT; - - /* Set the correct size */ - VC_AppCustomDevice.Channel[0].Buffer_Size = VC_MAX_BUFFER_SIZE; - - /* Set the correct buffer number */ - VC_AppCustomDevice.Channel[0].BufferRequest = VC_V4L_BUFFER_REQUEST; - - result = VC_Devices_Init(); - - UtAssert_True(result == expected,"VC_Init_CustomDevices() did not succeed"); - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==2,"Event Count = 2"); - UtAssert_True(VC_AppCustomDevice.Channel[0].Status == VC_DEVICE_INITIALIZED, - "VC_Init_CustomDevices() state not initialized"); - UtAssert_EventSent(VC_DEV_INF_EID, CFE_EVS_INFORMATION, returnString, - "VC_InitCustomDevices() failed to raise an event"); - UtAssert_EventSent(VC_DEV_INF_EID, CFE_EVS_INFORMATION, returnString1, - "VC_InitCustomDevices() failed to raise an event"); -} - -/************************************************************************** - * Tests for VC_Start_StreamingDevice() - **************************************************************************/ - -/** - * Test VC_Start_StreamingDevice through VC_Start_Streaming() - * fail queue buffers ioctl - */ -void Test_VC_Custom_StartStreamingDevice_BufferQueue(void) -{ - int32 result = 0; - int32 expected = -1; - uint8 DeviceID = 0; - - char returnString[64]; - snprintf(returnString, 64, "VC VIDIOC_QBUF returned %i on %s channel %u", 5, "test", 0); - - /* Set return error number to true */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Errno = 1; - - /* Set error number to interrupted */ - /* Note this will set errno through multiple calls */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Errno_Value = 5; - - /* Set the test device path */ - strcpy(VC_AppCustomDevice.Channel[0].DevName, "test"); - - /* Set buffer request to its correct value */ - VC_AppCustomDevice.Channel[0].BufferRequest = VC_V4L_BUFFER_REQUEST; - - /* Set the first ioctl call to fail */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Return = -1; - - /* Set channel 0 to enabled and initialized */ - VC_AppCustomDevice.Channel[0].Mode = VC_DEVICE_ENABLED; - VC_AppCustomDevice.Channel[0].Status = VC_DEVICE_INITIALIZED; - - /* Call the function under test */ - result = VC_Start_Streaming(); - - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); - UtAssert_True(result == expected,"VC_Start_StreamingDevice() did not fail"); - UtAssert_True(VC_AppCustomDevice.Channel[0].Status == VC_DEVICE_INITIALIZED, - "VC_StartStreaming changed status with failure"); - UtAssert_EventSent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, returnString, - "VC_Start_StreamingDevice() failed to raise an event"); -} - -/** - * Test VC_Start_StreamingDevice through VC_Start_Streaming() - * fail stream on ioctl - */ -void Test_VC_Custom_StartStreamingDevice_StreamOn(void) -{ - int32 result = 0; - int32 expected = -1; - uint8 DeviceID = 0; - - char returnString[64]; - snprintf(returnString, 64, "VC VIDIOC_STREAMON returned %i on %s channel %u", 5, "test", 0); - - /* Set return error number to true */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Errno = 1; - - /* Set error number to interrupted */ - /* Note this will set errno through multiple calls */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Errno_Value = 5; - - /* Set the test device path */ - strcpy(VC_AppCustomDevice.Channel[0].DevName, "test"); - - /* Set buffer request to one to only call ioctl queue buffer once */ - VC_AppCustomDevice.Channel[0].BufferRequest = 1; - - /* Set the second ioctl call to fail */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Return1 = -1; - - /* Set channel 0 to enabled and initialized */ - VC_AppCustomDevice.Channel[0].Mode = VC_DEVICE_ENABLED; - VC_AppCustomDevice.Channel[0].Status = VC_DEVICE_INITIALIZED; - - /* Call the function under test */ - result = VC_Start_Streaming(); - - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); - UtAssert_True(result == expected,"VC_Start_StreamingDevice() did not fail"); - UtAssert_True(VC_AppCustomDevice.Channel[0].Status == VC_DEVICE_INITIALIZED, - "VC_StartStreaming changed status with failure"); - UtAssert_EventSent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, returnString, - "VC_Start_StreamingDevice() failed to raise an event"); -} - -/** - * Test VC_Start_StreamingDevice nominal - */ -void Test_VC_Custom_StartStreamingDevice_Nominal(void) -{ - int32 result = -1; - int32 expected = 0; - uint8 DeviceID = 0; - - char returnString[64]; - snprintf(returnString, 64, "VC VIDIOC_STREAMON success on %s channel %u", "test", 0); - - /* Set the test device path */ - strcpy(VC_AppCustomDevice.Channel[0].DevName, "test"); - - /* Set buffer request to one to only call ioctl queue buffer once */ - VC_AppCustomDevice.Channel[0].BufferRequest = 1; - - /* Call the function under test */ - result = VC_Start_StreamingDevice(DeviceID); - - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); - UtAssert_True(result == expected,"VC_Start_StreamingDevice() did not succeed"); - UtAssert_EventSent(VC_DEV_INF_EID, CFE_EVS_INFORMATION, returnString, - "VC_Start_StreamingDevice() failed to raise an event"); -} - -/************************************************************************** - * Tests for VC_Start_Streaming() - **************************************************************************/ - - -/** - * Test VC_Start_Streaming nominal - */ -void Test_VC_Custom_StartStreaming_Nominal(void) -{ - int32 result = -1; - int32 expected = 0; - uint8 DeviceID = 0; - - char returnString[64]; - snprintf(returnString, 64, "VC VIDIOC_STREAMON success on %s channel %u", "test", 0); - - /* Set channel 0 to enabled and initialized */ - VC_AppCustomDevice.Channel[0].Mode = VC_DEVICE_ENABLED; - VC_AppCustomDevice.Channel[0].Status = VC_DEVICE_INITIALIZED; - - /* Set the test device path */ - strcpy(VC_AppCustomDevice.Channel[0].DevName, "test"); - - /* Set buffer request to one to only call ioctl queue buffer once */ - VC_AppCustomDevice.Channel[0].BufferRequest = 1; - - /* Call the function under test */ - result = VC_Start_Streaming(); - - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); - UtAssert_True(VC_AppCustomDevice.Channel[0].Status == VC_DEVICE_STREAMING, - "VC_Start_Streaming() did not set state to streaming"); - UtAssert_True(result == expected,"VC_Start_StreamingDevice() did not succeed"); - UtAssert_EventSent(VC_DEV_INF_EID, CFE_EVS_INFORMATION, returnString, - "VC_Start_StreamingDevice() failed to raise an event"); -} - -/************************************************************************** - * Tests for VC_Stream_Task() - **************************************************************************/ - -/** - * Test VC_Stream_Task() fail register child task - */ -void Test_VC_Custom_StreamTask_RegisterChildTaskFail(void) -{ - /* Set register child task to fail */ - Ut_CFE_ES_SetReturnCode(UT_CFE_ES_REGISTERCHILDTASK_INDEX, -1, 1); - - /* Call the function under test */ - VC_Stream_Task(); - - /* Verfity results */ - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); - UtAssert_True(VC_AppData.AppState == VC_INITIALIZED, - "VC_Stream_Task() did not set app state"); - UtAssert_EventSent(VC_DEV_INF_EID, CFE_EVS_INFORMATION, - "VC streaming task exited with return code 0 task status (0xFFFFFFFF)", - "VC_Stream_Task() failed to raise an event"); -} - - -/** - * Test VC_Stream_Task() fail nothing enabled and streaming - */ -void Test_VC_Custom_StreamTask_NothingEnabled(void) -{ - - char returnString[64]; - snprintf(returnString, 64, "VC can't start streaming no devices are streaming enabled"); - char returnString1[128]; - snprintf(returnString1, 128, "VC streaming task exited with return code %d task status (0x%08X)", - -1, (unsigned int)CFE_SUCCESS); - - /* Set register child task to succeed */ - Ut_CFE_ES_SetReturnCode(UT_CFE_ES_REGISTERCHILDTASK_INDEX, CFE_SUCCESS, 1); - - /* Set the while loop continue flag to true */ - VC_AppCustomDevice.ContinueFlag = TRUE; - - /* Set a fake device file descriptor */ - VC_AppCustomDevice.Channel[0].DeviceFd = 7; - - /* Set select to fail with an error (-1) */ - VC_Platform_Stubs_Returns.VC_Wrap_Select_Return = -1; - - /* Call the function under test */ - VC_Stream_Task(); - - /* Verfity results */ - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==2,"Event Count = 2"); - UtAssert_True(VC_AppData.AppState == VC_INITIALIZED, - "VC_Stream_Task() did not set app state"); - UtAssert_EventSent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, returnString, - "VC_Stream_Task() failed to raise an event"); - UtAssert_EventSent(VC_DEV_INF_EID, CFE_EVS_INFORMATION, returnString1, - "VC_Stream_Task() failed to raise an event"); -} - - -/** - * Test VC_Stream_Task() fail select error - */ -void Test_VC_Custom_StreamTask_SelectError(void) -{ - - char returnString[64]; - snprintf(returnString, 64, "VC start streaming failed select() returned %i", 6); - char returnString1[128]; - snprintf(returnString1, 128, "VC streaming task exited with return code %d task status (0x%08X)", - -1, (unsigned int)CFE_SUCCESS); - - /* Set register child task to succeed */ - Ut_CFE_ES_SetReturnCode(UT_CFE_ES_REGISTERCHILDTASK_INDEX, CFE_SUCCESS, 1); - - /* Set the while loop continue flag to true */ - VC_AppCustomDevice.ContinueFlag = TRUE; - - /* Set the mode and state for channel 0*/ - VC_AppCustomDevice.Channel[0].Mode = VC_DEVICE_ENABLED; - VC_AppCustomDevice.Channel[0].Status = VC_DEVICE_STREAMING; - - /* Set return error number to true */ - VC_Platform_Stubs_Returns.VC_Wrap_Select_Errno = 1; - - /* Set error number to interrupted */ - /* Note this will set errno through multiple calls */ - VC_Platform_Stubs_Returns.VC_Wrap_Select_Errno_Value = 6; - - /* Set a fake device file descriptor */ - VC_AppCustomDevice.Channel[0].DeviceFd = 7; - - /* Set select to fail with an error (-1) */ - VC_Platform_Stubs_Returns.VC_Wrap_Select_Return = -1; - - /* Call the function under test */ - VC_Stream_Task(); - - /* Verfity results */ - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==2,"Event Count = 2"); - UtAssert_True(VC_AppData.AppState == VC_INITIALIZED, - "VC_Stream_Task() did not set app state"); - UtAssert_EventSent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, returnString, - "VC_Stream_Task() failed to raise an event"); - UtAssert_EventSent(VC_DEV_INF_EID, CFE_EVS_INFORMATION, returnString1, - "VC_Stream_Task() failed to raise an event"); -} - -/** - * Test VC_Stream_Task() fail select interrupted max retry attempts - */ -void Test_VC_Custom_StreamTask_InterruptedError(void) -{ - char returnString[64]; - snprintf(returnString, 64, "VC select was interrupted"); - char returnString1[128]; - snprintf(returnString1, 128, "VC streaming task exited with return code %d task status (0x%08X)", - -1, (unsigned int)CFE_SUCCESS); - - /* Set register child task to succeed */ - Ut_CFE_ES_SetReturnCode(UT_CFE_ES_REGISTERCHILDTASK_INDEX, CFE_SUCCESS, 1); - - /* Set the while loop continue flag to true */ - VC_AppCustomDevice.ContinueFlag = TRUE; - - /* Set the mode and state for channel 0*/ - VC_AppCustomDevice.Channel[0].Mode = VC_DEVICE_ENABLED; - VC_AppCustomDevice.Channel[0].Status = VC_DEVICE_STREAMING; - - /* Set return error number to true */ - VC_Platform_Stubs_Returns.VC_Wrap_Select_Errno = 1; - - /* Set error number to interrupted */ - /* Note this will set errno through multiple calls */ - VC_Platform_Stubs_Returns.VC_Wrap_Select_Errno_Value = EINTR; - - /* Set a fake device file descriptor */ - VC_AppCustomDevice.Channel[0].DeviceFd = 7; - - /* Set select to fail with an error (-1) */ - VC_Platform_Stubs_Returns.VC_Wrap_Select_Return = -1; - - /* Call the function under test */ - VC_Stream_Task(); - - /* Verfity results */ - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==(VC_MAX_RETRY_ATTEMPTS + 1), - "Event Count is not correct"); - UtAssert_True(VC_AppData.AppState == VC_INITIALIZED, - "VC_Stream_Task() did not set app state"); - UtAssert_EventSent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, returnString, - "VC_Stream_Task() failed to raise an event"); - UtAssert_EventSent(VC_DEV_INF_EID, CFE_EVS_INFORMATION, returnString1, - "VC_Stream_Task() failed to raise an event"); -} - -/** - * Test VC_Stream_Task() fail select timeout max retry attempts - */ -void Test_VC_Custom_StreamTask_TimeoutError(void) -{ - char returnString[64]; - snprintf(returnString, 64, "VC select timed out"); - char returnString1[128]; - snprintf(returnString1, 128, "VC streaming task exited with return code %d task status (0x%08X)", - -1, (unsigned int)CFE_SUCCESS); - - /* Set register child task to succeed */ - Ut_CFE_ES_SetReturnCode(UT_CFE_ES_REGISTERCHILDTASK_INDEX, CFE_SUCCESS, 1); - - /* Set the while loop continue flag to true */ - VC_AppCustomDevice.ContinueFlag = TRUE; - - /* Set the mode and state for channel 0*/ - VC_AppCustomDevice.Channel[0].Mode = VC_DEVICE_ENABLED; - VC_AppCustomDevice.Channel[0].Status = VC_DEVICE_STREAMING; - - /* Set a fake device file descriptor */ - VC_AppCustomDevice.Channel[0].DeviceFd = 7; - - /* Set select to timeout return value (0) */ - VC_Platform_Stubs_Returns.VC_Wrap_Select_Return = 0; - - /* Call the function under test */ - VC_Stream_Task(); - - /* Verfity results */ - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==(VC_BUFFER_TIMEOUTS_ALLOWED + 1), - "Event Count is not correct"); - UtAssert_True(VC_AppData.AppState == VC_INITIALIZED, - "VC_Stream_Task() did not set app state"); - UtAssert_EventSent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, returnString, - "VC_Stream_Task() failed to raise an event"); - UtAssert_EventSent(VC_DEV_INF_EID, CFE_EVS_INFORMATION, returnString1, - "VC_Stream_Task() failed to raise an event"); -} - - -/************************************************************************** - * Tests for VC_Devices_Start() - **************************************************************************/ - -/** - * Test VC_Devices_Start() fail start streaming - */ -void Test_VC_Custom_DevicesStart_StartStreaming(void) -{ - boolean result = TRUE; - boolean expected = FALSE; - - uint8 DeviceID = 0; - - /* Fail start streaming device */ - char returnString[64]; - snprintf(returnString, 64, "VC VIDIOC_QBUF returned %i on %s channel %u", 5, "test", 0); - - /* Set return error number to true */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Errno = 1; - - /* Set error number to interrupted */ - /* Note this will set errno through multiple calls */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Errno_Value = 5; - - /* Set the test device path */ - strcpy(VC_AppCustomDevice.Channel[0].DevName, "test"); - - /* Set buffer request to its correct value */ - VC_AppCustomDevice.Channel[0].BufferRequest = VC_V4L_BUFFER_REQUEST; - - /* Set the first ioctl call to fail */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Return = -1; - - /* Set channel 0 to enabled and initialized */ - VC_AppCustomDevice.Channel[0].Mode = VC_DEVICE_ENABLED; - VC_AppCustomDevice.Channel[0].Status = VC_DEVICE_INITIALIZED; - - /* Call the function under test */ - result = VC_Devices_Start(); - - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); - UtAssert_True(VC_AppCustomDevice.ContinueFlag == FALSE, - "Devices start continue flag not correctly set"); - UtAssert_True(result == expected,"VC_Devices_Start() did not fail"); - UtAssert_True(VC_AppCustomDevice.Channel[0].Status == VC_DEVICE_INITIALIZED, - "VC_StartStreaming changed status with failure"); - UtAssert_EventSent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, returnString, - "VC_Start_StreamingDevice() failed to raise an event"); -} - -/** - * Test VC_Devices_Start() fail child task creation - */ -void Test_VC_Custom_DevicesStart_ChildTaskCreationFail(void) -{ - /* Set create child task to fail */ - Ut_CFE_ES_SetReturnCode(UT_CFE_ES_CREATECHILDTASK_INDEX, -1, 1); - - boolean result = TRUE; - boolean expected = FALSE; - char returnString[64]; - snprintf(returnString, 64, "VC VIDIOC_STREAMON success on %s channel %u", "test", 0); - - uint8 DeviceID = 0; - - /* Set the test device path */ - strcpy(VC_AppCustomDevice.Channel[0].DevName, "test"); - - /* Set buffer request to its correct value */ - VC_AppCustomDevice.Channel[0].BufferRequest = VC_V4L_BUFFER_REQUEST; - - /* Set channel 0 to enabled and initialized */ - VC_AppCustomDevice.Channel[0].Mode = VC_DEVICE_ENABLED; - VC_AppCustomDevice.Channel[0].Status = VC_DEVICE_INITIALIZED; - - /* Call the function under test */ - result = VC_Devices_Start(); - - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); - UtAssert_True(VC_AppCustomDevice.ContinueFlag == FALSE, - "Devices start continue flag not correctly set"); - UtAssert_True(result == expected,"VC_Devices_Start() did not fail"); - UtAssert_True(VC_AppCustomDevice.Channel[0].Status == VC_DEVICE_STREAMING, - "VC_Custom_Device status is not the correct value"); - UtAssert_EventSent(VC_DEV_INF_EID, CFE_EVS_INFORMATION, returnString, - "VC_Start_StreamingDevice() failed to raise an event"); -} - -/** - * Test VC_Devices_Start() nominal - */ -void Test_VC_Custom_DevicesStart_Nominal(void) -{ - /* Set create child task to fail */ - Ut_CFE_ES_SetReturnCode(UT_CFE_ES_CREATECHILDTASK_INDEX, CFE_SUCCESS, 1); - - boolean result = FALSE; - boolean expected = TRUE; - char returnString[64]; - snprintf(returnString, 64, "VC VIDIOC_STREAMON success on %s channel %u", "test", 0); - - uint8 DeviceID = 0; - - /* Set the test device path */ - strcpy(VC_AppCustomDevice.Channel[0].DevName, "test"); - - /* Set buffer request to its correct value */ - VC_AppCustomDevice.Channel[0].BufferRequest = VC_V4L_BUFFER_REQUEST; - - /* Set channel 0 to enabled and initialized */ - VC_AppCustomDevice.Channel[0].Mode = VC_DEVICE_ENABLED; - VC_AppCustomDevice.Channel[0].Status = VC_DEVICE_INITIALIZED; - - /* Call the function under test */ - result = VC_Devices_Start(); - - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); - UtAssert_True(VC_AppCustomDevice.ContinueFlag == TRUE, - "Devices start continue flag not correctly set"); - UtAssert_True(result == expected,"VC_Devices_Start() did not fail"); - UtAssert_True(VC_AppCustomDevice.Channel[0].Status == VC_DEVICE_STREAMING, - "VC_Custom_Device status is not the correct value"); - UtAssert_EventSent(VC_DEV_INF_EID, CFE_EVS_INFORMATION, returnString, - "VC_Start_StreamingDevice() failed to raise an event"); -} - -/************************************************************************** - * Tests for VC_Stop_StreamingDevice() - **************************************************************************/ - -/** - * Test VC_Stop_StreamingDevice() through VC_Stop_Streaming() - * fail stream off - */ -void Test_VC_Custom_StopStreamingDevices_StreamOff(void) -{ - int32 result = 0; - int32 expected = -1; - - char returnString[64]; - snprintf(returnString, 64, "VC VIDIOC_STREAMOFF returned %i on %s channel %u", 7, "test", 0); - - /* Set the test device path */ - strcpy(VC_AppCustomDevice.Channel[0].DevName, "test"); - - - /* Set channel 0 to enabled and initialized */ - VC_AppCustomDevice.Channel[0].Mode = VC_DEVICE_ENABLED; - VC_AppCustomDevice.Channel[0].Status = VC_DEVICE_STREAMING; - - /* Set return error number to true */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Errno = 1; - - /* Set error number to interrupted */ - /* Note this will set errno through multiple calls */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Errno_Value = 7; - - /* Set the first ioctl call to fail */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Return = -1; - - /* Call the function under test */ - result = VC_Stop_Streaming(); - - UtAssert_True(result == expected,"VC_Stop_StreamingDevice() did not fail"); -} - -/** - * Test VC_Stop_StreamingDevice() through VC_Stop_Streaming() nominal - */ -void Test_VC_Custom_StopStreamingDevices_Nominal(void) -{ - int32 result = -1; - int32 expected = 0; - - char returnString[64]; - snprintf(returnString, 64, "VC VIDIOC_STREAMOFF success on %s channel %u", "test", 0); - - - /* Set channel 0 to enabled and initialized */ - VC_AppCustomDevice.Channel[0].Mode = VC_DEVICE_ENABLED; - VC_AppCustomDevice.Channel[0].Status = VC_DEVICE_STREAMING; - - /* Set the test device path */ - strcpy(VC_AppCustomDevice.Channel[0].DevName, "test"); - - /* Call the function under test */ - result = VC_Stop_Streaming(); - - UtAssert_True(result == expected,"VC_Stop_StreamingDevice() did not succeed"); -} - - -/************************************************************************** - * Tests for VC_Stop_Streaming() - **************************************************************************/ - -/************************************************************************** - * Tests for VC_Devices_Stop() - **************************************************************************/ - - /** - * Test VC_Devices_Stop() fail stop streaming - */ -void Test_VC_Custom_DevicesStop_FailStopStreaming(void) -{ - boolean result = TRUE; - int32 expected = FALSE; - - char returnString[64]; - snprintf(returnString, 64, "VC VIDIOC_STREAMOFF returned %i on %s channel %u", 7, "test", 0); - - /* Set the test device path */ - strcpy(VC_AppCustomDevice.Channel[0].DevName, "test"); - - - /* Set channel 0 to enabled and initialized */ - VC_AppCustomDevice.Channel[0].Mode = VC_DEVICE_ENABLED; - VC_AppCustomDevice.Channel[0].Status = VC_DEVICE_STREAMING; - - /* Set return error number to true */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Errno = 1; - - /* Set error number to interrupted */ - /* Note this will set errno through multiple calls */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Errno_Value = 7; - - /* Set the first ioctl call to fail */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Return = -1; - - /* Call the function under test */ - result = VC_Devices_Stop(); - - UtAssert_True(result == expected,"VC_Stop_StreamingDevice() did not fail"); -} - - /** - * Test VC_Devices_Stop() nominal - */ -void Test_VC_Custom_DevicesStop_Nominal(void) -{ - boolean result = FALSE; - boolean expected = TRUE; - - char returnString[64]; - snprintf(returnString, 64, "VC VIDIOC_STREAMOFF success on %s channel %u", "test", 0); - - - /* Set channel 0 to enabled and initialized */ - VC_AppCustomDevice.Channel[0].Mode = VC_DEVICE_ENABLED; - VC_AppCustomDevice.Channel[0].Status = VC_DEVICE_STREAMING; - - /* Set the test device path */ - strcpy(VC_AppCustomDevice.Channel[0].DevName, "test"); - - /* Call the function under test */ - result = VC_Devices_Stop(); - - UtAssert_True(result == expected,"VC_Stop_StreamingDevice() did not succeed"); - UtAssert_True(VC_AppCustomDevice.ContinueFlag==FALSE,"Continue flag wasn't set"); - UtAssert_True(VC_AppData.AppState==VC_INITIALIZED,"App state isn't initialized"); -} - - -/************************************************************************** - * Tests for VC_DisableDevice() - **************************************************************************/ - - /** - * Test VC_DisableDevice() nothing enabled - */ -void Test_VC_Custom_DisableDevice_NothingEnabled(void) -{ - int32 result = 0; - int32 expected = -1; - uint8 DeviceID = 0; - - char returnString[64]; - snprintf(returnString, 64, "VC Device for channel %u is not enabled.", 0); - - result = VC_DisableDevice(DeviceID); - UtAssert_True(result == expected,"VC_DisableDevice() did not fail"); -} - - - /** - * Test VC_DisableDevice() nominal - */ -void Test_VC_Custom_DisableDevice_Nominal(void) -{ - int32 result = -1; - int32 expected = 0; - uint8 DeviceID = 0; - - /* Set test device file descriptor a random value */ - VC_AppCustomDevice.Channel[0].DeviceFd = 1; - - /* Set device mode to enable */ - VC_AppCustomDevice.Channel[0].Mode = VC_DEVICE_ENABLED; - - /* Call the function under test */ - result = VC_DisableDevice(DeviceID); - - UtAssert_True(VC_AppCustomDevice.Channel[0].DeviceFd == 0, - "VC_DisableDevice() did not reset FD"); - UtAssert_True(result == expected,"VC_DisableDevice() did not succeed"); -} - -/************************************************************************** - * Tests for VC_CleanupDevices() - **************************************************************************/ - - /** - * Test VC_CleanupDevices() stop streaming fail - * note reuse of code from first stop streaming device fail test - */ -void Test_VC_Custom_CleanupDevices_StopStreaming(void) -{ - int32 result = 0; - int32 expected = -1; - - char returnString[64]; - snprintf(returnString, 64, "VC VIDIOC_STREAMOFF returned %i on %s channel %u", 7, "test", 0); - - /* Set the test device path */ - strcpy(VC_AppCustomDevice.Channel[0].DevName, "test"); - - - /* Set channel 0 to enabled and initialized */ - VC_AppCustomDevice.Channel[0].Mode = VC_DEVICE_ENABLED; - VC_AppCustomDevice.Channel[0].Status = VC_DEVICE_STREAMING; - - /* Set return error number to true */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Errno = 1; - - /* Set error number to interrupted */ - /* Note this will set errno through multiple calls */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Errno_Value = 7; - - /* Set the first ioctl call to fail */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Return = -1; - - /* Call the function under test */ - result = VC_CleanupDevices(); - - UtAssert_True(result == expected,"VC_Stop_StreamingDevice() did not fail"); - UtAssert_True(VC_AppCustomDevice.Channel[0].Status == VC_DEVICE_STREAMING, - "VC_CleanupDevices() did not set status"); -} - -/** - * Test VC_CleanupDevices() nominal - * - */ -void Test_VC_Custom_CleanupDevices_Nominal(void) -{ - int32 result = -1; - int32 expected = 0; - uint8 DeviceID = 0; - - char returnString[64]; - snprintf(returnString, 64, "VC VIDIOC_STREAMOFF success on %s channel %u", "test", 0); - - /* Set channel 0 to enabled and initialized */ - VC_AppCustomDevice.Channel[0].Mode = VC_DEVICE_ENABLED; - VC_AppCustomDevice.Channel[0].Status = VC_DEVICE_STREAMING; - - /* Set the test device path */ - strcpy(VC_AppCustomDevice.Channel[0].DevName, "test"); - - /* Call the function under test */ - result = VC_CleanupDevices(); - - UtAssert_True(result == expected,"VC_DisableDevice() did not succeed"); - UtAssert_True(VC_AppCustomDevice.Channel[0].Status == VC_DEVICE_INITIALIZED, - "VC_CleanupDevices() did not set correct status"); -} - - -/************************************************************************** - * Tests for VC_Devices_Uninit() - **************************************************************************/ - -/** - * Test VC_Devices_Uninit() nominal - * - */ -void Test_VC_Custom_DevicesUninit_Nominal(void) -{ - boolean result = FALSE; - boolean expected = TRUE; - uint8 DeviceID = 0; - - char returnString[64]; - snprintf(returnString, 64, "VC VIDIOC_STREAMOFF success on %s channel %u", "test", 0); - - /* Set channel 0 to enabled and initialized */ - VC_AppCustomDevice.Channel[0].Mode = VC_DEVICE_ENABLED; - VC_AppCustomDevice.Channel[0].Status = VC_DEVICE_STREAMING; - - /* Set the test device path */ - strcpy(VC_AppCustomDevice.Channel[0].DevName, "test"); - - /* Call the function under test */ - result = VC_Devices_Uninit(); - - UtAssert_True(result == expected,"VC_DisableDevice() did not succeed"); - UtAssert_True(VC_AppCustomDevice.Channel[0].Status == VC_DEVICE_INITIALIZED, - "VC_CleanupDevices() did not set correct status"); -} - - -/** - * Test VC_Devices_Uninit() cleanup devices fail - * - */ -void Test_VC_Custom_DevicesUninit_Cleanup(void) -{ - boolean result = TRUE; - boolean expected = FALSE; - - char returnString[64]; - snprintf(returnString, 64, "VC VIDIOC_STREAMOFF returned %i on %s channel %u", 7, "test", 0); - - /* Set the test device path */ - strcpy(VC_AppCustomDevice.Channel[0].DevName, "test"); - - - /* Set channel 0 to enabled and initialized */ - VC_AppCustomDevice.Channel[0].Mode = VC_DEVICE_ENABLED; - VC_AppCustomDevice.Channel[0].Status = VC_DEVICE_STREAMING; - - /* Set return error number to true */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Errno = 1; - - /* Set error number to interrupted */ - /* Note this will set errno through multiple calls */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Errno_Value = 7; - - /* Set the first ioctl call to fail */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Return = -1; - - /* Call the function under test */ - result = VC_Devices_Uninit(); - - UtAssert_True(result == expected,"VC_Stop_StreamingDevice() did not fail"); - UtAssert_True(VC_AppCustomDevice.Channel[0].Status == VC_DEVICE_STREAMING, - "VC_CleanupDevices() did not set status"); -} - -/************************************************************************** - * Tests for VC_Send_Buffer() - **************************************************************************/ - -/** - * Test VC_Send_Buffer() buffer dequeue fail - * - */ -void Test_VC_Custom_SendBuffer_BufferDequeue(void) -{ - int32 result = 0; - int32 expected = -1; - uint8 DeviceID = 0; - - char returnString[64]; - snprintf(returnString, 64, "VC VIDIOC_DQBUF returned %i on %s channel %u", 7, "test", 0); - - /* Set the test device path */ - strcpy(VC_AppCustomDevice.Channel[0].DevName, "test"); - - /* Set return error number to true */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Errno = 1; - - /* Set error number to interrupted */ - /* Note this will set errno through multiple calls */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Errno_Value = 7; - - /* Set the first ioctl call to fail */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Return = -1; - - /* Call the function under test */ - result = VC_Send_Buffer(DeviceID); - - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); - UtAssert_EventSent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, returnString, - "VC_Stop_StreamingDevice() failed to raise an event"); - UtAssert_True(result == expected,"VC_Send_Buffer() did not fail"); -} - -/** - * Test VC_Send_Buffer() max buffer size fail - * - */ -void Test_VC_Custom_SendBuffer_MaxBuffer(void) -{ - int32 result = 0; - int32 expected = -1; - uint8 DeviceID = 0; - - char returnString[64]; - snprintf(returnString, 64, "VC Packet on %s channel %u is too large", "test", 0); - - /* Set the test device path */ - strcpy(VC_AppCustomDevice.Channel[0].DevName, "test"); - - /* Set buffer dequeued validation check to fail */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Struct = 2; - - /* Call the function under test */ - result = VC_Send_Buffer(DeviceID); - - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); - UtAssert_EventSent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, returnString, - "VC_Stop_StreamingDevice() failed to raise an event"); - /* TODO currently does not fail if max buffer size exceeded. */ - //UtAssert_True(result == expected,"VC_Send_Buffer() did not fail"); -} - -/** - * Test VC_Send_Buffer() dequeued buffer address validation fail - * - */ -void Test_VC_Custom_SendBuffer_InvalidAddress(void) -{ - int32 result = 0; - int32 expected = -1; - uint8 DeviceID = 0; - - char returnString[128]; - snprintf(returnString, 128, - "VC VIDIOC_DQBUF returned unknown user pointer on %s channel %u", - "test", 0); - - /* Set the test device path */ - strcpy(VC_AppCustomDevice.Channel[0].DevName, "test"); - - /* Set buffer dequeued validation check to pass */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Struct = 1; - - /* Set buffer request to a value > 0 */ - VC_AppCustomDevice.Channel[DeviceID].BufferRequest = 1; - - /* Set random pointer address */ - VC_AppCustomDevice.Channel[DeviceID].Buffer_Ptrs[0].ptr = (void *)1; - - /* Call the function under test */ - result = VC_Send_Buffer(DeviceID); - - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); - UtAssert_EventSent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, returnString, - "VC_Stop_StreamingDevice() failed to raise an event"); - UtAssert_True(result == expected,"VC_Send_Buffer() did not fail"); -} - -/** - * Test VC_Send_Buffer() dequeued buffer fail send data - * - */ -void Test_VC_Custom_SendBuffer_SendData(void) -{ - int32 result = 0; - int32 expected = -1; - uint8 DeviceID = 0; - - char returnString[128]; - snprintf(returnString, 128, - "VC send data failed on %s channel %u", - "test", 0); - - /* Properly initialize custom transmit data */ - VC_CustomTransmit_InitData(); - - /* Set the test device path */ - strcpy(VC_AppCustomDevice.Channel[0].DevName, "test"); - - /* Set buffer dequeued validation check to pass */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Struct = 1; - - /* Set buffer request to a value > 0 */ - VC_AppCustomDevice.Channel[DeviceID].BufferRequest = 1; - - /* set sendto to fail */ - VC_Platform_Stubs_Returns.VC_Wrap_SendTo_Return = -1; - - /* Set the second ioctl call to fail */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Return1 = -1; - - /* Call the function under test */ - result = VC_Send_Buffer(DeviceID); - - /* Two events because send data will fail */ - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==2,"Event Count = 2"); - UtAssert_True(result == expected,"VC_Send_Buffer() did not fail"); -} - -/** - * Test VC_Send_Buffer() queue new buffer failure - */ -void Test_VC_Custom_SendBuffer_BufferQueue(void) -{ - int32 result = 0; - int32 expected = -1; - uint8 DeviceID = 0; - - char returnString[128]; - snprintf(returnString, 128, - "VC VIDIOC_QBUF returned %i on %s channel %u", 7, "test", 0); - - /* Set the test device path */ - strcpy(VC_AppCustomDevice.Channel[0].DevName, "test"); - - /* Set buffer dequeued validation check to pass */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Struct = 1; - - /* Set second ioctl call to fail */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Return1 = -1; - - /* Set buffer request to a value > 0 */ - VC_AppCustomDevice.Channel[DeviceID].BufferRequest = 1; - - /* Set return error number to true */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Errno = 1; - - /* Set error number to interrupted */ - /* Note this will set errno through multiple calls */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Errno_Value = 7; - - /* Call the function under test */ - result = VC_Send_Buffer(DeviceID); - - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); - UtAssert_EventSent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, returnString, - "VC_Send_Buffer() failed to raise an event"); - UtAssert_True(result == expected,"VC_Send_Buffer() did not fail"); -} - -/** - * Test VC_Send_Buffer() nominal - */ -void Test_VC_Custom_SendBuffer_Nominal(void) -{ - int32 result = -1; - int32 expected = 0; - uint8 DeviceID = 0; - - /* Set the test device path */ - strcpy(VC_AppCustomDevice.Channel[0].DevName, "test"); - - /* Set buffer dequeued validation check to pass */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Struct = 1; - - /* Set buffer request to a value > 0 */ - VC_AppCustomDevice.Channel[DeviceID].BufferRequest = 1; - - /* Set return error number to true */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Errno = 1; - - /* Set error number to interrupted */ - /* Note this will set errno through multiple calls */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Errno_Value = 7; - - /* Call the function under test */ - result = VC_Send_Buffer(DeviceID); - - UtAssert_True(result == expected,"VC_Send_Buffer() did not succeed"); -} - - -/************************************************************************** - * Tests for VC_Devices_InitData() - **************************************************************************/ - -/** - * Test VC_Devices_InitData() nominal - * Note: currently no way to fail this function - */ -void Test_VC_Devices_InitData_Nominal(void) -{ - int32 result = -1; - int32 expected = CFE_SUCCESS; - - /* Call the function under test */ - result = VC_Devices_InitData(); - - /* Verify the results */ - UtAssert_True(result == expected,"VC_Custom_InitData() did not succeed"); -} - - -/************************************************************************** - * Rollup Test Cases - **************************************************************************/ -void VC_Custom_App_Device_Test_AddTestCases(void) -{ -/************************************************************************** - * Tests for Custom Device Layer - **************************************************************************/ - UtTest_Add(Test_VC_Custom_Ioctl_Error, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_Ioctl_Error"); - UtTest_Add(Test_VC_Custom_Ioctl_Interrupted, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_Ioctl_Interrupted"); - UtTest_Add(Test_VC_Custom_InitDevice_AlreadyInitialized, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_InitDevice_AlreadyInitialized"); - UtTest_Add(Test_VC_Custom_InitDevice_NullName, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_InitDevice_NullName"); - UtTest_Add(Test_VC_Custom_InitDevice_InvalidID, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_InitDevice_InvalidID"); - UtTest_Add(Test_VC_Custom_InitDevice_OpenError, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_InitDevice_OpenError"); - UtTest_Add(Test_VC_Custom_InitDevice_Nominal, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_InitDevice_Nominal"); - UtTest_Add(Test_VC_Custom_InitCustomDevices_FailConfigure, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_InitCustomDevices_FailConfigure"); - UtTest_Add(Test_VC_Custom_InitCustomDevices_Nominal, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_InitCustomDevices_FailInit"); - UtTest_Add(Test_VC_Custom_ConfigureDevice_CapabilitiesFail, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_ConfigureDevice_CapabilitiesFail"); - UtTest_Add(Test_VC_Custom_ConfigureDevice_CapabilitiesBuffer, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_ConfigureDevice_CapabilitiesBuffer"); - UtTest_Add(Test_VC_Custom_ConfigureDevice_CapabilitiesStreaming, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_ConfigureDevice_CapabilitiesStreaming"); - UtTest_Add(Test_VC_Custom_ConfigureDevice_FormatFail, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_ConfigureDevice_FormatFail"); - UtTest_Add(Test_VC_Custom_ConfigureDevice_FormatCheck, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_ConfigureDevice_FormatCheck"); - UtTest_Add(Test_VC_Custom_ConfigureDevice_FormatCheckRes, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_ConfigureDevice_FormatCheckRes"); - UtTest_Add(Test_VC_Custom_ConfigureDevice_FormatCheckSize, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_ConfigureDevice_FormatCheckSize"); - UtTest_Add(Test_VC_Custom_ConfigureDevice_RequestsBuffers, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_ConfigureDevice_RequestsBuffers"); - UtTest_Add(Test_VC_Custom_ConfigureDevice_RequestsBuffersCount, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_ConfigureDevice_RequestsBuffersCount"); - UtTest_Add(Test_VC_Custom_ConfigureDevice_Nominal, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_ConfigureDevice_Nominal"); - UtTest_Add(Test_VC_Custom_DevicesInit_Fail, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_DevicesInit_Fail"); - UtTest_Add(Test_VC_Custom_DevicesInit_Nominal, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_DevicesInit_Nominal"); - UtTest_Add(Test_VC_Custom_StartStreamingDevice_BufferQueue, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_StartStreamingDevice_BufferQueue"); - UtTest_Add(Test_VC_Custom_StartStreamingDevice_StreamOn, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_StartStreamingDevice_StreamOn"); - UtTest_Add(Test_VC_Custom_StartStreamingDevice_Nominal, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_StartStreamingDevice_Nominal"); - UtTest_Add(Test_VC_Custom_StartStreaming_Nominal, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_StartStreaming_Nominal"); - UtTest_Add(Test_VC_Custom_StreamTask_RegisterChildTaskFail, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_StreamTask_RegisterChildTaskFail"); - UtTest_Add(Test_VC_Custom_StreamTask_NothingEnabled, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_StreamTask_NothingEnabled"); - UtTest_Add(Test_VC_Custom_StreamTask_SelectError, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_StreamTask_SelectError"); - UtTest_Add(Test_VC_Custom_StreamTask_InterruptedError, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_StreamTask_InterruptedError"); - UtTest_Add(Test_VC_Custom_StreamTask_TimeoutError, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_StreamTask_TimeoutError"); - UtTest_Add(Test_VC_Custom_DevicesStart_StartStreaming, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_DevicesStart_StartStreaming"); - UtTest_Add(Test_VC_Custom_DevicesStart_ChildTaskCreationFail, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_DevicesStart_ChildTaskCreationFail"); - UtTest_Add(Test_VC_Custom_DevicesStart_Nominal, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_DevicesStart_Nominal"); - UtTest_Add(Test_VC_Custom_StopStreamingDevices_StreamOff, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_StopStreamingDevices_StreamOff"); - UtTest_Add(Test_VC_Custom_StopStreamingDevices_Nominal, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_StopStreamingDevices_Nominal"); - UtTest_Add(Test_VC_Custom_DevicesStop_FailStopStreaming, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_DevicesStop_FailStopStreaming"); - UtTest_Add(Test_VC_Custom_DevicesStop_Nominal, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_DevicesStop_Nominal"); - UtTest_Add(Test_VC_Custom_DisableDevice_NothingEnabled, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_DisableDevice_NothingEnabled"); - UtTest_Add(Test_VC_Custom_DisableDevice_Nominal, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_DisableDevice_Nominal"); - UtTest_Add(Test_VC_Custom_CleanupDevices_StopStreaming, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_CleanupDevices_StopStreaming"); - UtTest_Add(Test_VC_Custom_CleanupDevices_Nominal, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_CleanupDevices_Nominal"); - UtTest_Add(Test_VC_Custom_DevicesUninit_Nominal, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_DevicesUninit_Nominal"); - UtTest_Add(Test_VC_Custom_DevicesUninit_Cleanup, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_DevicesUninit_Cleanup"); - UtTest_Add(Test_VC_Custom_SendBuffer_BufferDequeue, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_SendBuffer_BufferDequeue"); - UtTest_Add(Test_VC_Custom_SendBuffer_MaxBuffer, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_SendBuffer_MaxBuffer"); - UtTest_Add(Test_VC_Custom_SendBuffer_InvalidAddress, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_SendBuffer_InvalidAddress"); - UtTest_Add(Test_VC_Custom_SendBuffer_SendData, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_SendBuffer_SendData"); - UtTest_Add(Test_VC_Custom_SendBuffer_BufferQueue, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_SendBuffer_BufferQueue"); - UtTest_Add(Test_VC_Custom_SendBuffer_Nominal, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_SendBuffer_Nominal"); - UtTest_Add(Test_VC_Devices_InitData_Nominal, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Devices_InitData_Nominal"); -} diff --git a/config/ocpoc/s1000/target/apps/vc/unit_test/vc_dev_io_v4l_test/vc_app_custom_device_test.h b/config/ocpoc/s1000/target/apps/vc/unit_test/vc_dev_io_v4l_test/vc_app_custom_device_test.h deleted file mode 100644 index 38b7e33d3..000000000 --- a/config/ocpoc/s1000/target/apps/vc/unit_test/vc_dev_io_v4l_test/vc_app_custom_device_test.h +++ /dev/null @@ -1,48 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ - -#ifndef VC_APP_CUSTOM_DEVICE_TEST_H -#define VC_APP_CUSTOM_DEVICE_TEST_H - -#ifdef __cplusplus -extern "C" { -#endif - -void VC_Custom_App_Device_Test_AddTestCases(void); - - -#ifdef __cplusplus -} -#endif - -#endif /* VC_APP_CUSTOM_DEVICE_TEST_H */ diff --git a/config/ocpoc/s1000/target/apps/vc/unit_test/vc_dev_io_v4l_test/vc_custom_device_test_utils.c b/config/ocpoc/s1000/target/apps/vc/unit_test/vc_dev_io_v4l_test/vc_custom_device_test_utils.c deleted file mode 100644 index f34216d08..000000000 --- a/config/ocpoc/s1000/target/apps/vc/unit_test/vc_dev_io_v4l_test/vc_custom_device_test_utils.c +++ /dev/null @@ -1,76 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ - -#include "vc_custom_device_test_utils.h" -#include "vc_platform_stubs.h" - -#include "ut_cfe_evs_hooks.h" -#include "ut_cfe_time_stubs.h" -#include "ut_cfe_psp_memutils_stubs.h" -#include "ut_cfe_tbl_stubs.h" -#include "ut_cfe_tbl_hooks.h" -#include "ut_cfe_fs_stubs.h" -#include "ut_cfe_time_stubs.h" -#include "ut_osapi_stubs.h" -#include "ut_osfileapi_stubs.h" -#include "ut_cfe_sb_stubs.h" -#include "ut_cfe_es_stubs.h" -#include "ut_cfe_evs_stubs.h" - -#include - -/* - * Function Definitions - */ - -void VC_Custom_Device_Test_Setup(void) -{ - /* initialize test environment to default state for every test */ - - CFE_PSP_MemSet(&VC_AppCustomDevice, 0x00, sizeof(VC_AppCustomDevice_t)); - - Ut_CFE_EVS_Reset(); - Ut_CFE_FS_Reset(); - Ut_CFE_TIME_Reset(); - Ut_CFE_TBL_Reset(); - Ut_CFE_SB_Reset(); - Ut_CFE_ES_Reset(); - Ut_OSAPI_Reset(); - Ut_OSFILEAPI_Reset(); -} - -void VC_Custom_Device_Test_TearDown(void) { - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_CallCount = 0; - CFE_PSP_MemSet(&VC_AppCustomDevice, 0x00, sizeof(VC_AppCustomDevice_t)); - CFE_PSP_MemSet(&VC_Platform_Stubs_Returns, 0x00, sizeof(VC_Platform_Stubs_Returns_t)); -} diff --git a/config/ocpoc/s1000/target/apps/vc/unit_test/vc_dev_io_v4l_test/vc_custom_device_test_utils.h b/config/ocpoc/s1000/target/apps/vc/unit_test/vc_dev_io_v4l_test/vc_custom_device_test_utils.h deleted file mode 100644 index 92c1f88d2..000000000 --- a/config/ocpoc/s1000/target/apps/vc/unit_test/vc_dev_io_v4l_test/vc_custom_device_test_utils.h +++ /dev/null @@ -1,61 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ - -#ifndef VC_CUSTOM_DEVICE_TEST_UTILS_H -#define VC_CUSTOM_DEVICE_TEST_UTILS_H - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * Includes - */ - -#include "vc_dev_io_v4l.h" - -extern VC_AppCustomDevice_t VC_AppCustomDevice; - -/* - * Function Definitions - */ - -void VC_Custom_Device_Test_Setup(void); -void VC_Custom_Device_Test_TearDown(void); - - -#ifdef __cplusplus -} -#endif - -#endif /* VC_CUSTOM_DEVICE_TEST_UTILS_H */ diff --git a/config/ocpoc/s1000/target/apps/vc/unit_test/vc_platform_stubs/vc_platform_stubs.c b/config/ocpoc/s1000/target/apps/vc/unit_test/vc_platform_stubs/vc_platform_stubs.c deleted file mode 100644 index e2887ad31..000000000 --- a/config/ocpoc/s1000/target/apps/vc/unit_test/vc_platform_stubs/vc_platform_stubs.c +++ /dev/null @@ -1,270 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ - -#include -#include -#include -#include -#include -#include -#include - -#include "vc_platform_stubs.h" -#include "vc_platform_cfg.h" - -int enable_wrappers = 0; - -int __real_open(char *filename, int access, int permission); -int __real_close(int fildes); -int __real_ioctl(int fh, int request, void *arg); -int __real_select(int nfds, fd_set *readfds, fd_set *writefds, - fd_set *exceptfds, struct timeval *timeout); -int __real_socket(int domain, int type, int protocol); -int __real_bind(int sockfd, const struct sockaddr *addr, socklen_t addrlen); -int __real_sendto(int sockfd, const void *buf, size_t len, int flags, - const struct sockaddr *dest_addr, socklen_t addrlen); -ssize_t __real_recv(int s, void *buf, size_t len, int flags); - - -VC_Platform_Stubs_Returns_t VC_Platform_Stubs_Returns = {0}; - - -int __wrap_ioctl(int fh, int request, void *arg) -{ - int returnCode = 0; - - if(enable_wrappers == 0) - { - returnCode = __real_ioctl(fh, request, arg); - } - else - { - if (VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Errno) - { - errno = VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Errno_Value; - } - if (VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Struct) - { - switch(request) - { - case VIDIOC_QUERYCAP: - if(1 == VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Struct) - { - ((struct v4l2_capability *)arg)->capabilities = VC_V4L_BUFFER_TYPE; - } - if(2 == VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Struct) - { - ((struct v4l2_capability *)arg)->capabilities = (VC_V4L_BUFFER_TYPE + - V4L2_CAP_STREAMING); - } - break; - case VIDIOC_S_FMT: - ((struct v4l2_format *)arg)->fmt.pix.pixelformat = VC_V4L_VIDEO_FORMAT; - ((struct v4l2_format *)arg)->fmt.pix.width = VC_FRAME_WIDTH; - ((struct v4l2_format *)arg)->fmt.pix.height = VC_FRAME_HEIGHT; - ((struct v4l2_format *)arg)->fmt.pix.sizeimage = VC_MAX_BUFFER_SIZE; - break; - case VIDIOC_REQBUFS: - ((struct v4l2_requestbuffers *)arg)->count = VC_V4L_BUFFER_REQUEST; - case VIDIOC_DQBUF: - if(1 == VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Struct) - { - ((struct v4l2_buffer *)arg)->bytesused = VC_MAX_PACKET_SIZE; - } - if(2 == VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Struct) - { - ((struct v4l2_buffer *)arg)->bytesused = (VC_MAX_PACKET_SIZE + 1); - } - default: - break; - } - } - - if (1 == VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_CallCount) - { - returnCode = VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Return1; - } - else if (2 == VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_CallCount) - { - returnCode = VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Return2; - } - else - { - returnCode = VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Return; - } - - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_CallCount++; - } - return returnCode; -} - - -int __wrap_open(char *filename, int access, int permission) -{ - int returnCode = 0; - - if(enable_wrappers == 0) - { - returnCode = __real_open(filename, access, permission); - } - else - { - if (VC_Platform_Stubs_Returns.VC_Wrap_Open_Errno) - { - errno = VC_Platform_Stubs_Returns.VC_Wrap_Open_Errno_Value; - } - returnCode = VC_Platform_Stubs_Returns.VC_Wrap_Open_Return; - } - return returnCode; -} - - -int __wrap_close(int fildes) -{ - int returnCode = 0; - - if(enable_wrappers == 0) - { - returnCode = __real_close(fildes); - } - else - { - returnCode = VC_Platform_Stubs_Returns.VC_Wrap_Close_Return; - } - return returnCode; -} - - -int __wrap_select(int nfds, fd_set *readfds, fd_set *writefds, - fd_set *exceptfds, struct timeval *timeout) -{ - int returnCode = 0; - if(enable_wrappers == 0) - { - returnCode = __real_select(nfds, readfds, writefds, exceptfds, timeout); - } - else - { - if (VC_Platform_Stubs_Returns.VC_Wrap_Select_Errno) - { - errno = VC_Platform_Stubs_Returns.VC_Wrap_Select_Errno_Value; - } - returnCode = VC_Platform_Stubs_Returns.VC_Wrap_Select_Return; - } - return returnCode; -} - - -int __wrap_socket(int domain, int type, int protocol) -{ - int returnCode = 0; - if(enable_wrappers == 0) - { - returnCode = __real_socket(domain, type, protocol); - } - else - { - if (VC_Platform_Stubs_Returns.VC_Wrap_Socket_Errno) - { - errno = VC_Platform_Stubs_Returns.VC_Wrap_Socket_Errno_Value; - } - returnCode = VC_Platform_Stubs_Returns.VC_Wrap_Socket_Return; - } - return returnCode; -} - - -ssize_t __wrap_recv(int s, void *buf, size_t len, int flags) -{ - ssize_t returnCode = 0; - if(enable_wrappers == 0) - { - returnCode = __real_recv(s, buf, len, flags); - } - else - { - if (VC_Platform_Stubs_Returns.VC_Wrap_Recv_Errno) - { - errno = VC_Platform_Stubs_Returns.VC_Wrap_Recv_Errno_Value; - } - if (1 == VC_Platform_Stubs_Returns.VC_Wrap_Recv_CallCount) - { - returnCode = VC_Platform_Stubs_Returns.VC_Wrap_Recv_Return1; - } - else - { - returnCode = VC_Platform_Stubs_Returns.VC_Wrap_Recv_Return; - } - - VC_Platform_Stubs_Returns.VC_Wrap_Recv_CallCount++; - } - return returnCode; -} - - -int __wrap_bind(int sockfd, const struct sockaddr *addr, socklen_t addrlen) -{ - int returnCode = 0; - if(enable_wrappers == 0) - { - returnCode = __real_bind(sockfd, addr, addrlen); - } - else - { - if (VC_Platform_Stubs_Returns.VC_Wrap_Bind_Errno) - { - errno = VC_Platform_Stubs_Returns.VC_Wrap_Bind_Errno_Value; - } - returnCode = VC_Platform_Stubs_Returns.VC_Wrap_Bind_Return; - } - return returnCode; -} - -int __wrap_sendto(int sockfd, const void *buf, size_t len, int flags, - const struct sockaddr *dest_addr, socklen_t addrlen) -{ - int returnCode = 0; - if(enable_wrappers == 0) - { - returnCode = __real_sendto(sockfd, buf, len, flags, dest_addr, addrlen); - } - else - { - if (VC_Platform_Stubs_Returns.VC_Wrap_SendTo_Errno) - { - errno = VC_Platform_Stubs_Returns.VC_Wrap_SendTo_Errno_Value; - } - returnCode = VC_Platform_Stubs_Returns.VC_Wrap_SendTo_Return; - } - return returnCode; -} diff --git a/config/ocpoc/s1000/target/apps/vc/unit_test/vc_platform_stubs/vc_platform_stubs.h b/config/ocpoc/s1000/target/apps/vc/unit_test/vc_platform_stubs/vc_platform_stubs.h deleted file mode 100644 index 66dada74f..000000000 --- a/config/ocpoc/s1000/target/apps/vc/unit_test/vc_platform_stubs/vc_platform_stubs.h +++ /dev/null @@ -1,84 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ - -#ifndef VC_PLATFORM_STUBS_H -#define VC_PLATFORM_STUBS_H - -#ifdef __cplusplus -extern "C" { -#endif - -#include - - -typedef struct -{ - int VC_Wrap_Ioctl_Return; - int VC_Wrap_Ioctl_Return1; - int VC_Wrap_Ioctl_Return2; - int VC_Wrap_Ioctl_Errno; - int VC_Wrap_Ioctl_Errno_Value; - int VC_Wrap_Ioctl_Struct; - int VC_Wrap_Open_Return; - int VC_Wrap_Open_Errno; - int VC_Wrap_Open_Errno_Value; - int VC_Wrap_Close_Return; - int VC_Wrap_Select_Return; - int VC_Wrap_Select_Errno; - int VC_Wrap_Select_Errno_Value; - int VC_Wrap_Socket_Return; - int VC_Wrap_Socket_Errno; - int VC_Wrap_Socket_Errno_Value; - int VC_Wrap_Bind_Return; - int VC_Wrap_Bind_Errno; - int VC_Wrap_Bind_Errno_Value; - int VC_Wrap_SendTo_Return; - int VC_Wrap_SendTo_Errno; - int VC_Wrap_SendTo_Errno_Value; - int VC_Wrap_Ioctl_CallCount; - int VC_Wrap_Recv_Return; - int VC_Wrap_Recv_Return1; - int VC_Wrap_Recv_Errno; - int VC_Wrap_Recv_Errno_Value; - int VC_Wrap_Recv_CallCount; -} VC_Platform_Stubs_Returns_t; - - -extern VC_Platform_Stubs_Returns_t VC_Platform_Stubs_Returns; - - -#ifdef __cplusplus -} -#endif - -#endif /* VC_PLATFORM_STUBS_H */ diff --git a/config/ocpoc/s1000/target/apps/vc/unit_test/vc_transmit_udp_test/vc_app_custom_transmit_test.c b/config/ocpoc/s1000/target/apps/vc/unit_test/vc_transmit_udp_test/vc_app_custom_transmit_test.c deleted file mode 100644 index 8d6672cb5..000000000 --- a/config/ocpoc/s1000/target/apps/vc/unit_test/vc_transmit_udp_test/vc_app_custom_transmit_test.c +++ /dev/null @@ -1,626 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ - -#include "vc_app_custom_transmit_test.h" -#include "vc_custom_transmit_test_utils.h" -#include "vc_platform_stubs.h" -#include "vc_platform_cfg.h" -#include -#include -#include - -#include "uttest.h" -#include "ut_osapi_stubs.h" -#include "ut_cfe_sb_stubs.h" -#include "ut_cfe_sb_hooks.h" -#include "ut_cfe_es_stubs.h" -#include "ut_cfe_es_hooks.h" -#include "ut_cfe_evs_stubs.h" -#include "ut_cfe_evs_hooks.h" -#include "ut_cfe_time_stubs.h" -#include "ut_cfe_psp_memutils_stubs.h" -#include "ut_cfe_tbl_stubs.h" -#include "ut_cfe_fs_stubs.h" -#include "ut_cfe_time_stubs.h" - - -/************************************************************************** - * Tests for Custom Transmit Layer - **************************************************************************/ - -/************************************************************************** - * Tests for VC_EnableChannel() - **************************************************************************/ - -/** - * Test VC_EnableChannel() through VC_Init_CustomTransmitters - * fail already initialized error - */ -void Test_VC_Custom_InitTransmit_AlreadyInitialized(void) -{ - int32 result = 0; - int32 expected = -1; - - char returnString[128]; - snprintf(returnString, 128, "VC UDP for channel %u already enabled.", 0); - - /* Set test channel 0 to enabled */ - VC_AppCustomData.Channel[0].Mode = VC_CHANNEL_ENABLED; - - /* Set a socket file descriptor to a non 0 value */ - VC_AppCustomData.Channel[0].SocketFd = 1; - - /* Call the function under test */ - result = VC_Init_CustomTransmitters(); - - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); - UtAssert_True(result == expected,"VC_Init_CustomTransmitters() did not return an error"); - - UtAssert_True(VC_AppCustomData.Channel[0].Mode == VC_CHANNEL_DISABLED, - "VC_Init_CustomTransmitters() did not set mode to disabled"); - UtAssert_EventSent(VC_SOCKET_ERR_EID, CFE_EVS_ERROR, returnString, - "VC_EnableChannel() failed to raise an event"); -} - -/** - * Test VC_EnableChannel() invalid channel id - */ -void Test_VC_Custom_InitTransmit_ChannelId(void) -{ - int32 result = 0; - int32 expected = -1; - - char returnString[128]; - snprintf(returnString, 128, "VC ChannelID (%u) invalid.", (VC_MAX_OUTPUT_CHANNELS + 1)); - - /* Set test channel 0 to enabled */ - VC_AppCustomData.Channel[0].Mode = VC_CHANNEL_ENABLED; - - /* Call the function under test */ - result = VC_EnableChannel((VC_MAX_OUTPUT_CHANNELS + 1)); - - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); - UtAssert_True(result == expected,"VC_Init_CustomTransmitters() did not return an error"); - UtAssert_EventSent(VC_SOCKET_ERR_EID, CFE_EVS_ERROR, returnString, - "VC_EnableChannel() failed to raise an event"); -} - -/** - * Test VC_EnableChannel() through VC_Init_CustomTransmitters - * fail socket creation - */ -void Test_VC_Custom_InitTransmit_Socket(void) -{ - int32 result = 0; - int32 expected = -1; - - char returnString[128]; - snprintf(returnString, 128, "VC socket errno: %i on channel %u", 8, 0); - - /* Set test channel 0 to enabled */ - VC_AppCustomData.Channel[0].Mode = VC_CHANNEL_ENABLED; - - /* Set socket call to fail */ - VC_Platform_Stubs_Returns.VC_Wrap_Socket_Return = -1; - - /* Set errno for socket call */ - VC_Platform_Stubs_Returns.VC_Wrap_Socket_Errno = 1; - VC_Platform_Stubs_Returns.VC_Wrap_Socket_Errno_Value = 8; - - /* Call the function under test */ - result = VC_Init_CustomTransmitters(); - - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); - UtAssert_True(result == expected,"VC_Init_CustomTransmitters() did not return an error"); - UtAssert_True(VC_AppCustomData.Channel[0].SocketFd == -1, - "VC_EnableChannel() failed to return an error"); - UtAssert_True(VC_AppCustomData.Channel[0].Mode == VC_CHANNEL_DISABLED, - "VC_Init_CustomTransmitters() did not set mode to disabled"); - UtAssert_EventSent(VC_SOCKET_ERR_EID, CFE_EVS_ERROR, returnString, - "VC_EnableChannel() failed to raise an event"); -} - -/** - * Test VC_EnableChannel() through VC_Init_CustomTransmitters - * fail invalid address - */ -void Test_VC_Custom_InitTransmit_InvalidAddress(void) -{ - int32 result = 0; - int32 expected = -1; - - char returnString[128]; - snprintf(returnString, 128, "VC inet_aton errno: %i on channel %u", 88, 0); - - /* Set test channel 0 to enabled */ - VC_AppCustomData.Channel[0].Mode = VC_CHANNEL_ENABLED; - - /* Set an invalid address for inet_aton */ - strcpy(VC_AppCustomData.Channel[0].MyIP, "test"); - - /* Call the function under test */ - result = VC_Init_CustomTransmitters(); - - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); - UtAssert_True(result == expected,"VC_Init_CustomTransmitters() did not return an error"); - UtAssert_True(VC_AppCustomData.Channel[0].Mode == VC_CHANNEL_DISABLED, - "VC_Init_CustomTransmitters() did not set mode to disabled"); - UtAssert_EventSent(VC_SOCKET_ERR_EID, CFE_EVS_ERROR, returnString, - "VC_EnableChannel() failed to raise an event"); -} - -/** - * Test VC_EnableChannel() through VC_Init_CustomTransmitters - * fail bind - */ -void Test_VC_Custom_InitTransmit_Bind(void) -{ - int32 result = 0; - int32 expected = -1; - - char returnString[128]; - snprintf(returnString, 128, "VC bind errno: %i on channel %u", 8, 0); - - /* Set test channel 0 to enabled */ - VC_AppCustomData.Channel[0].Mode = VC_CHANNEL_ENABLED; - - /* Set an valid address for inet_aton */ - strcpy(VC_AppCustomData.Channel[0].MyIP, "1.1.1.1"); - - /* Set socket call to fail */ - VC_Platform_Stubs_Returns.VC_Wrap_Bind_Return = -1; - - /* Set errno for socket call */ - VC_Platform_Stubs_Returns.VC_Wrap_Bind_Errno = 1; - VC_Platform_Stubs_Returns.VC_Wrap_Bind_Errno_Value = 8; - - /* Call the function under test */ - result = VC_Init_CustomTransmitters(); - - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); - UtAssert_True(result == expected,"VC_Init_CustomTransmitters() did not return an error"); - UtAssert_True(VC_AppCustomData.Channel[0].Mode == VC_CHANNEL_DISABLED, - "VC_Init_CustomTransmitters() did not set mode to disabled"); - UtAssert_EventSent(VC_SOCKET_ERR_EID, CFE_EVS_ERROR, returnString, - "VC_EnableChannel() failed to raise an event"); -} - -/** - * Test VC_EnableChannel() through VC_Init_CustomTransmitters nominal - */ -void Test_VC_Custom_InitTransmit_Nominal(void) -{ - int32 result = -1; - int32 expected = 0; - - char returnString[128]; - snprintf(returnString, 128, "VC UDP output enabled channel %u to %s:%u", 0, "test",0); - - /* Set test channel 0 to enabled */ - VC_AppCustomData.Channel[0].Mode = VC_CHANNEL_ENABLED; - - /* Set an valid address for inet_aton */ - strcpy(VC_AppCustomData.Channel[0].MyIP, "1.1.1.1"); - - strcpy(VC_AppCustomData.Channel[0].DestIP, "test"); - VC_AppCustomData.Channel[0].DestPort = 0; - - /* Call the function under test */ - result = VC_Init_CustomTransmitters(); - - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); - UtAssert_True(result == expected,"VC_Init_CustomTransmitters() did not succeed"); - UtAssert_True(VC_AppCustomData.Channel[0].Mode == VC_CHANNEL_ENABLED, - "VC_Init_CustomTransmitters() did not mode to disabled"); - UtAssert_EventSent(VC_CHA_INF_EID, CFE_EVS_INFORMATION, returnString, - "VC_EnableChannel() failed to raise an event"); -} - -/************************************************************************** - * Tests for VC_Transmit_InitData() - **************************************************************************/ - -/** - * Test VC_Transmit_InitData() nominal - * Note: currently no way to fail this function - */ -void Test_VC_Transmit_InitData_Nominal(void) -{ - int32 result = -1; - int32 expected = CFE_SUCCESS; - - /* Call the function under test */ - result = VC_Transmit_InitData(); - - /* Verify the results */ - UtAssert_True(result == expected,"VC_Transmit_InitData() did not succeed"); -} - - -/************************************************************************** - * Tests for VC_Init_CustomTransmitters() - **************************************************************************/ - -/************************************************************************** - * Tests for VC_Transmit_Init() - **************************************************************************/ - - /** - * Test VC_Transmit_Init() fail VC_Init_CustomTransmitters - * see reuse (VC_EnableChannel() invalid channel id) - */ -void Test_VC_Custom_TransmitInit_Fail(void) -{ - boolean result = TRUE; - boolean expected = FALSE; - - char returnString[128]; - snprintf(returnString, 128, "VC UDP for channel %u already enabled.", 0); - char returnString1[128]; - snprintf(returnString1, 128, "VC_Transmit_Init Failed"); - - /* Set test channel 0 to enabled */ - VC_AppCustomData.Channel[0].Mode = VC_CHANNEL_ENABLED; - - /* Set a socket file descriptor to a non 0 value */ - VC_AppCustomData.Channel[0].SocketFd = 1; - - /* Call the function under test */ - result = VC_Transmit_Init(); - - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==2,"Event Count = 2"); - UtAssert_True(result == expected,"VC_Init_CustomTransmitters() did not return an error"); - UtAssert_True(VC_AppCustomData.Channel[0].Mode == VC_CHANNEL_DISABLED, - "VC_Init_CustomTransmitters() did not set mode to disabled"); - UtAssert_EventSent(VC_SOCKET_ERR_EID, CFE_EVS_ERROR, returnString, - "VC_EnableChannel() failed to raise an event"); - UtAssert_EventSent(VC_SOCKET_ERR_EID, CFE_EVS_ERROR, returnString1, - "VC_EnableChannel() failed to raise an event"); - -} - -/** - * Test VC_Transmit_Init() nominal - */ -void Test_VC_Custom_TransmitInit_Nominal(void) -{ - boolean result = FALSE; - boolean expected = TRUE; - - char returnString[128]; - snprintf(returnString, 128, "VC UDP output enabled channel %u to %s:%u", 0, "test",0); - - /* Set test channel 0 to enabled */ - VC_AppCustomData.Channel[0].Mode = VC_CHANNEL_ENABLED; - - /* Set an valid address for inet_aton */ - strcpy(VC_AppCustomData.Channel[0].MyIP, "1.1.1.1"); - - strcpy(VC_AppCustomData.Channel[0].DestIP, "test"); - VC_AppCustomData.Channel[0].DestPort = 0; - - /* Call the function under test */ - result = VC_Transmit_Init(); - - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); - UtAssert_True(result == expected,"VC_Init_CustomTransmitters() did not succeed"); - UtAssert_True(VC_AppCustomData.Channel[0].Mode == VC_CHANNEL_ENABLED, - "VC_Init_CustomTransmitters() did not set mode to disabled"); - UtAssert_EventSent(VC_CHA_INF_EID, CFE_EVS_INFORMATION, returnString, - "VC_EnableChannel() failed to raise an event"); -} - -/************************************************************************** - * Tests for VC_SendData() - **************************************************************************/ - -/** - * Test VC_SendData() invalid channel id - */ -void Test_VC_Custom_SendData_ChannelId(void) -{ - int32 result = -1; - int32 expected = 0; - - /* Call the function under test */ - result = VC_SendData((VC_MAX_OUTPUT_CHANNELS + 1), "buffer", 77); - - UtAssert_True(result == expected,"VC_SendData() did not return the correct value"); -} - -/** - * Test VC_SendData() sendto fail - */ -void Test_VC_Custom_SendData_SendTo(void) -{ - int32 result = 0; - int32 expected = -1; - - /* Set test channel 0 to enabled */ - VC_AppCustomData.Channel[0].Mode = VC_CHANNEL_ENABLED; - - /* Set sendto call to fail */ - VC_Platform_Stubs_Returns.VC_Wrap_SendTo_Return = -1; - - /* Set errno for sendto call */ - VC_Platform_Stubs_Returns.VC_Wrap_SendTo_Errno = 1; - VC_Platform_Stubs_Returns.VC_Wrap_SendTo_Errno_Value = 8; - - /* Call the function under test */ - result = VC_SendData(0, "buffer", 77); - - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); - /* TODO currently failure does not disable channel. */ - //UtAssert_True(VC_AppCustomData.Channel[0].Mode == VC_CHANNEL_DISABLED, - //"VC_SendData() did not set mode to disabled"); - //UtAssert_True(result == expected,"VC_SendData() did not return the correct value"); - UtAssert_EventSent(VC_SOCKET_ERR_EID, CFE_EVS_ERROR, "", - "VC_SendData() failed to raise an event"); -} - -/** - * Test VC_SendData() sendto fail message too long - */ -void Test_VC_Custom_SendData_SendToTooLong(void) -{ - int32 result = 0; - int32 expected = -1; - - /* Set test channel 0 to enabled */ - VC_AppCustomData.Channel[0].Mode = VC_CHANNEL_ENABLED; - - /* Set sendto call to fail */ - VC_Platform_Stubs_Returns.VC_Wrap_SendTo_Return = -1; - - /* Set errno for sendto call */ - VC_Platform_Stubs_Returns.VC_Wrap_SendTo_Errno = 1; - VC_Platform_Stubs_Returns.VC_Wrap_SendTo_Errno_Value = 90; - - /* Call the function under test */ - result = VC_SendData(0, "buffer", 77); - - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); - /* TODO currently failure does not disable channel. */ - //UtAssert_True(result == expected,"VC_SendData() did not return the correct value"); - UtAssert_EventSent(VC_SOCKET_ERR_EID, CFE_EVS_ERROR, "", - "VC_SendData() failed to raise an event"); -} - -/** - * Test VC_SendData() nominal - */ -void Test_VC_Custom_SendData_Nominal(void) -{ - int32 result = -1; - int32 expected = 0; - - /* Set test channel 0 to enabled */ - VC_AppCustomData.Channel[0].Mode = VC_CHANNEL_ENABLED; - - /* Call the function under test */ - result = VC_SendData(0, "buffer", 77); - - UtAssert_True(result == expected,"VC_SendData() did not return the correct value"); -} - -/************************************************************************** - * Tests for VC_Address_Verification() - **************************************************************************/ - -/** - * Test VC_Address_Verification() nominal - */ -void Test_VC_Custom_AddressVerification_Nominal(void) -{ - boolean result = FALSE; - boolean expected = TRUE; - - result = VC_Address_Verification("1.1.1.1"); - - UtAssert_True(result == expected,"VC_Address_Verification() did not return the correct value"); -} - -/** - * Test VC_Address_Verification() fail - */ -void Test_VC_Custom_AddressVerification_Fail(void) -{ - boolean result = TRUE; - boolean expected = FALSE; - - result = VC_Address_Verification("test"); - - UtAssert_True(result == expected,"VC_Address_Verification() did not return the correct value"); -} - -/************************************************************************** - * Tests for VC_Update_Destination() - **************************************************************************/ - -/** - * Test VC_Update_Destination() nominal - */ -void Test_VC_Custom_UpdateDestination_Nominal(void) -{ - boolean result = FALSE; - boolean expected = TRUE; - - /* Set test channel 0 to enabled */ - VC_AppCustomData.Channel[0].Mode = VC_CHANNEL_ENABLED; - - result = VC_Update_Destination("test", 5000); - - UtAssert_True(result == expected,"VC_Update_Destination() did not return the correct value"); - UtAssert_StrCmp(VC_AppCustomData.Channel[0].DestIP, "test", - "VC_Update_Destination() did not set a correct value"); - UtAssert_True(VC_AppCustomData.Channel[0].DestPort == 5000, - "VC_Update_Destination() did not set a correct value"); - -} - -/** - * Test VC_Update_Destination() fail - */ -void Test_VC_Custom_UpdateDestination_Fail(void) -{ - /* No way to fail strncpy in update destination at this time. */ - //boolean result = TRUE; - //boolean expected = FALSE; - - //result = VC_Update_Destination("test", 5000); - - //UtAssert_True(result == expected,"VC_Update_Destination() did not return the correct value"); -} - -/************************************************************************** - * Tests for VC_DisableChannel() - **************************************************************************/ - -/** - * Test VC_DisableChannel() fail - */ -void Test_VC_Custom_DisableChannel_Fail(void) -{ - int32 result = 0; - int32 expected = -1; - - result = VC_DisableChannel(0); - - UtAssert_True(result == expected,"VC_DisableChannel() did not return the correct value"); -} - -/** - * Test VC_DisableChannel() through VC_CleanupCustom nominal - */ -void Test_VC_Custom_DisableChannel_Nominal(void) -{ - int32 result = -1; - int32 expected = 0; - - VC_AppCustomData.Channel[0].Mode = VC_CHANNEL_ENABLED; - - result = VC_CleanupCustom(); - - UtAssert_True(result == expected,"VC_DisableChannel() did not return the correct value"); - -} - -/************************************************************************** - * Tests for VC_CleanupCustom() - **************************************************************************/ - -/** - * Test VC_CleanupCustom() fail - * No current way to fail cleanup custom since mode check is the only - * error checking inside of disable channel. Error checking close return - * value will enable a fail condition for cleanup custom - */ - - -/************************************************************************** - * Tests for VC_Transmit_Uninit() - **************************************************************************/ - - /** - * Test VC_Transmit_Uninit() fail - * No current way to fail cleanup custom since mode check is the only - * error checking inside of disable channel. Error checking close return - * value will enable a fail condition for cleanup custom - */ - -/** - * Test VC_Transmit_Uninit() nominal - */ -void Test_VC_Custom_TransmitUninit_Nominal(void) -{ - boolean result = FALSE; - boolean expected = TRUE; - - VC_AppCustomData.Channel[0].Mode = VC_CHANNEL_ENABLED; - - result = VC_Transmit_Uninit(); - - UtAssert_True(result == expected,"VC_Transmit_Uninit() did not return the correct value"); - -} - - -/************************************************************************** - * Rollup Test Cases - **************************************************************************/ -void VC_Custom_App_Transmit_Test_AddTestCases(void) -{ -/************************************************************************** - * Tests for Custom Transmit Layer - **************************************************************************/ - UtTest_Add(Test_VC_Custom_InitTransmit_AlreadyInitialized, VC_Custom_Transmit_Test_Setup, - VC_Custom_Transmit_Test_TearDown, "Test_VC_Custom_InitTransmit_AlreadyInitialized"); - UtTest_Add(Test_VC_Custom_InitTransmit_ChannelId, VC_Custom_Transmit_Test_Setup, - VC_Custom_Transmit_Test_TearDown, "Test_VC_Custom_InitTransmit_ChannelId"); - UtTest_Add(Test_VC_Custom_InitTransmit_Socket, VC_Custom_Transmit_Test_Setup, - VC_Custom_Transmit_Test_TearDown, "Test_VC_Custom_InitTransmit_Socket"); - UtTest_Add(Test_VC_Custom_InitTransmit_InvalidAddress, VC_Custom_Transmit_Test_Setup, - VC_Custom_Transmit_Test_TearDown, "Test_VC_Custom_InitTransmit_InvalidAddress"); - UtTest_Add(Test_VC_Custom_InitTransmit_Bind, VC_Custom_Transmit_Test_Setup, - VC_Custom_Transmit_Test_TearDown, "Test_VC_Custom_InitTransmit_Bind"); - UtTest_Add(Test_VC_Custom_InitTransmit_Nominal, VC_Custom_Transmit_Test_Setup, - VC_Custom_Transmit_Test_TearDown, "Test_VC_Custom_InitTransmit_Nominal"); - UtTest_Add(Test_VC_Transmit_InitData_Nominal, VC_Custom_Transmit_Test_Setup, - VC_Custom_Transmit_Test_TearDown, "Test_VC_Transmit_InitData_Nominal"); - UtTest_Add(Test_VC_Custom_TransmitInit_Fail, VC_Custom_Transmit_Test_Setup, - VC_Custom_Transmit_Test_TearDown, "Test_VC_Custom_TransmitInit_Fail"); - UtTest_Add(Test_VC_Custom_TransmitInit_Nominal, VC_Custom_Transmit_Test_Setup, - VC_Custom_Transmit_Test_TearDown, "Test_VC_Custom_TransmitInit_Nominal"); - UtTest_Add(Test_VC_Custom_SendData_ChannelId, VC_Custom_Transmit_Test_Setup, - VC_Custom_Transmit_Test_TearDown, "Test_VC_Custom_SendData_ChannelId"); - UtTest_Add(Test_VC_Custom_SendData_SendTo, VC_Custom_Transmit_Test_Setup, - VC_Custom_Transmit_Test_TearDown, "Test_VC_Custom_SendData_SendTo"); - UtTest_Add(Test_VC_Custom_SendData_SendToTooLong, VC_Custom_Transmit_Test_Setup, - VC_Custom_Transmit_Test_TearDown, "Test_VC_Custom_SendData_SendToTooLong"); - UtTest_Add(Test_VC_Custom_SendData_Nominal, VC_Custom_Transmit_Test_Setup, - VC_Custom_Transmit_Test_TearDown, "Test_VC_Custom_SendData_Nominal"); - UtTest_Add(Test_VC_Custom_AddressVerification_Nominal, VC_Custom_Transmit_Test_Setup, - VC_Custom_Transmit_Test_TearDown, "Test_VC_Custom_AddressVerification_Nominal"); - UtTest_Add(Test_VC_Custom_AddressVerification_Fail, VC_Custom_Transmit_Test_Setup, - VC_Custom_Transmit_Test_TearDown, "Test_VC_Custom_AddressVerification_Fail"); - UtTest_Add(Test_VC_Custom_UpdateDestination_Nominal, VC_Custom_Transmit_Test_Setup, - VC_Custom_Transmit_Test_TearDown, "Test_VC_Custom_UpdateDestination_Nominal"); - UtTest_Add(Test_VC_Custom_UpdateDestination_Fail, VC_Custom_Transmit_Test_Setup, - VC_Custom_Transmit_Test_TearDown, "Test_VC_Custom_UpdateDestination_Fail"); - UtTest_Add(Test_VC_Custom_DisableChannel_Fail, VC_Custom_Transmit_Test_Setup, - VC_Custom_Transmit_Test_TearDown, "Test_VC_Custom_DisableChannel_Fail"); - UtTest_Add(Test_VC_Custom_DisableChannel_Nominal, VC_Custom_Transmit_Test_Setup, - VC_Custom_Transmit_Test_TearDown, "Test_VC_Custom_DisableChannel_Nominal"); - UtTest_Add(Test_VC_Custom_TransmitUninit_Nominal, VC_Custom_Transmit_Test_Setup, - VC_Custom_Transmit_Test_TearDown, "Test_VC_Custom_TransmitUninit_Nominal"); -} diff --git a/config/ocpoc/s1000/target/apps/vc/unit_test/vc_transmit_udp_test/vc_app_custom_transmit_test.h b/config/ocpoc/s1000/target/apps/vc/unit_test/vc_transmit_udp_test/vc_app_custom_transmit_test.h deleted file mode 100644 index 732cc8812..000000000 --- a/config/ocpoc/s1000/target/apps/vc/unit_test/vc_transmit_udp_test/vc_app_custom_transmit_test.h +++ /dev/null @@ -1,48 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ - -#ifndef VC_APP_CUSTOM_TRANSMIT_TEST_H -#define VC_APP_CUSTOM_TRANSMIT_TEST_H - -#ifdef __cplusplus -extern "C" { -#endif - -void VC_Custom_App_Transmit_Test_AddTestCases(void); - - -#ifdef __cplusplus -} -#endif - -#endif /* VC_APP_CUSTOM_TRANSMIT_TEST_H */ diff --git a/config/ocpoc/s1000/target/apps/vc/unit_test/vc_transmit_udp_test/vc_custom_transmit_test_utils.c b/config/ocpoc/s1000/target/apps/vc/unit_test/vc_transmit_udp_test/vc_custom_transmit_test_utils.c deleted file mode 100644 index 5c3a803bb..000000000 --- a/config/ocpoc/s1000/target/apps/vc/unit_test/vc_transmit_udp_test/vc_custom_transmit_test_utils.c +++ /dev/null @@ -1,76 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ - -#include "vc_custom_transmit_test_utils.h" -#include "vc_platform_stubs.h" - -#include "ut_cfe_evs_hooks.h" -#include "ut_cfe_time_stubs.h" -#include "ut_cfe_psp_memutils_stubs.h" -#include "ut_cfe_tbl_stubs.h" -#include "ut_cfe_tbl_hooks.h" -#include "ut_cfe_fs_stubs.h" -#include "ut_cfe_time_stubs.h" -#include "ut_osapi_stubs.h" -#include "ut_osfileapi_stubs.h" -#include "ut_cfe_sb_stubs.h" -#include "ut_cfe_es_stubs.h" -#include "ut_cfe_evs_stubs.h" - -#include - -/* - * Function Definitions - */ - -void VC_Custom_Transmit_Test_Setup(void) -{ - /* initialize test environment to default state for every test */ - - CFE_PSP_MemSet(&VC_AppCustomData, 0x00, sizeof(VC_AppCustomData_t)); - - Ut_CFE_EVS_Reset(); - Ut_CFE_FS_Reset(); - Ut_CFE_TIME_Reset(); - Ut_CFE_TBL_Reset(); - Ut_CFE_SB_Reset(); - Ut_CFE_ES_Reset(); - Ut_OSAPI_Reset(); - Ut_OSFILEAPI_Reset(); -} - -void VC_Custom_Transmit_Test_TearDown(void) { - - CFE_PSP_MemSet(&VC_AppCustomData, 0x00, sizeof(VC_AppCustomData_t)); - CFE_PSP_MemSet(&VC_Platform_Stubs_Returns, 0x00, sizeof(VC_Platform_Stubs_Returns_t)); -} diff --git a/config/ocpoc/s1000/target/apps/vc/unit_test/vc_transmit_udp_test/vc_custom_transmit_test_utils.h b/config/ocpoc/s1000/target/apps/vc/unit_test/vc_transmit_udp_test/vc_custom_transmit_test_utils.h deleted file mode 100644 index 81cd02415..000000000 --- a/config/ocpoc/s1000/target/apps/vc/unit_test/vc_transmit_udp_test/vc_custom_transmit_test_utils.h +++ /dev/null @@ -1,61 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ - -#ifndef VC_CUSTOM_TRANSMIT_TEST_UTILS_H -#define VC_CUSTOM_TRANSMIT_TEST_UTILS_H - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * Includes - */ - -#include "vc_transmit_udp.h" - - -extern VC_AppCustomData_t VC_AppCustomData; -/* - * Function Definitions - */ - -void VC_Custom_Transmit_Test_Setup(void); -void VC_Custom_Transmit_Test_TearDown(void); - - -#ifdef __cplusplus -} -#endif - -#endif /* VC_CUSTOM_TRANSMIT_TEST_UTILS_H */ diff --git a/config/ocpoc/s1000/target/apps/vm/CMakeLists.txt b/config/ocpoc/s1000/target/apps/vm/CMakeLists.txt deleted file mode 100644 index 6a488f231..000000000 --- a/config/ocpoc/s1000/target/apps/vm/CMakeLists.txt +++ /dev/null @@ -1,9 +0,0 @@ -set(APP_NAME vm) - -buildliner_add_table( - ${APP_NAME} - NAME vm_config - SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/tables/vm_config.c -) - -buildliner_add_app_unit_test_src(${APP_NAME} SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/tables/vm_config.c) diff --git a/config/ocpoc/s1000/target/apps/vm/tables/vm_config.c b/config/ocpoc/s1000/target/apps/vm/tables/vm_config.c deleted file mode 100644 index 77e1b19fe..000000000 --- a/config/ocpoc/s1000/target/apps/vm/tables/vm_config.c +++ /dev/null @@ -1,32 +0,0 @@ -/* -** Include Files -*/ -#include "cfe_tbl_filedef.h" -#include "vm_tbldefs.h" - -static OS_USED CFE_TBL_FileDef_t CFE_TBL_FileDef = -{ - "VM_ConfigTbl", "VM.CONFIG_TBL", "VM default config table", - "vm_config.tbl", (sizeof(VM_ConfigTbl_t)) -}; - -/* Default ULR config table data */ -VM_ConfigTbl_t VM_ConfigTbl = -{ - /* COM_RC_IN_MODE */ 2, - /* COM_ARM_SWISBTN */ 0, - /* COM_RC_ARM_HYST */ 1000, - /* MAV_SYS_ID */ 1, - /* MAV_COMP_ID */ 1, - /* COM_RC_LOSS_T */ 2, - /* COM_LOW_BAT_ACT */ 1, - /* COM_HOME_H_T */ 5.0, - /* COM_HOME_V_T */ 10.0, - /* HOME_POS_ALT_PADDING */ 0.0 - -}; - -/*======================================================================================= -** End of file vm_config.c -**=====================================================================================*/ - diff --git a/config/ocpoc/s1000/target/cfe_es_startup.scr b/config/ocpoc/s1000/target/cfe_es_startup.scr index 1f66851cd..a910658aa 100644 --- a/config/ocpoc/s1000/target/cfe_es_startup.scr +++ b/config/ocpoc/s1000/target/cfe_es_startup.scr @@ -29,7 +29,6 @@ CFE_APP, /cf/apps/VM.so, VM_AppMain, VM, 70, 327680, 0x0, 0, 4 CFE_APP, /cf/apps/CS.so, CS_AppMain, CS, 160, 327680, 0x0, 0, 2; CFE_APP, /cf/apps/RCIN.so, RCIN_AppMain, RCIN, 88, 327680, 0x0, 0, 2; CFE_APP, /cf/apps/LD.so, LD_AppMain, LD, 73, 327680, 0x0, 0, 4; -CFE_APP, /cf/apps/VC.so, VC_AppMain, VC, 181, 327680, 0x0, 0, 2; CFE_APP, /cf/apps/RGBLED.so, RGBLED_AppMain, RGBLED, 151, 327680, 0x0, 0, 2; CFE_APP, /cf/apps/LGC.so, LGC_AppMain, LGC, 148, 327680, 0x0, 0, 2; CFE_APP, /cf/apps/SCH.so, SCH_AppMain, SCH, 34, 40960, 0x0, 0, 2; diff --git a/config/bebop2/sitl/target/apps/gps/CMakeLists.txt b/config/ocpoc/shared/apps/gps/CMakeLists.txt similarity index 100% rename from config/bebop2/sitl/target/apps/gps/CMakeLists.txt rename to config/ocpoc/shared/apps/gps/CMakeLists.txt diff --git a/config/bebop2/sitl/target/apps/gps/src/CMakeLists.txt b/config/ocpoc/shared/apps/gps/src/CMakeLists.txt similarity index 100% rename from config/bebop2/sitl/target/apps/gps/src/CMakeLists.txt rename to config/ocpoc/shared/apps/gps/src/CMakeLists.txt diff --git a/config/ocpoc/quadx/target/apps/gps/src/gps_custom.c b/config/ocpoc/shared/apps/gps/src/gps_custom.c similarity index 100% rename from config/ocpoc/quadx/target/apps/gps/src/gps_custom.c rename to config/ocpoc/shared/apps/gps/src/gps_custom.c diff --git a/config/ocpoc/quadx/target/apps/gps/src/gps_custom_shared.h b/config/ocpoc/shared/apps/gps/src/gps_custom_shared.h similarity index 100% rename from config/ocpoc/quadx/target/apps/gps/src/gps_custom_shared.h rename to config/ocpoc/shared/apps/gps/src/gps_custom_shared.h diff --git a/config/ocpoc/quadx/target/apps/gps/src/gps_interface_uart/gps_serial.c b/config/ocpoc/shared/apps/gps/src/gps_interface_uart/gps_serial.c similarity index 99% rename from config/ocpoc/quadx/target/apps/gps/src/gps_interface_uart/gps_serial.c rename to config/ocpoc/shared/apps/gps/src/gps_interface_uart/gps_serial.c index 128914d73..5f0b732a9 100644 --- a/config/ocpoc/quadx/target/apps/gps/src/gps_interface_uart/gps_serial.c +++ b/config/ocpoc/shared/apps/gps/src/gps_interface_uart/gps_serial.c @@ -86,6 +86,7 @@ void GPS_Custom_InitData(void) /* Set all struct zero values */ bzero(&GPS_AppCustomData, sizeof(GPS_AppCustomData)); GPS_AppCustomData.Baud = GPS_SERIAL_IO_SPEED; + GPS_Parser_Reset(); /* Set all non-zero values */ GPS_AppCustomData.ContinueFlag = TRUE; diff --git a/config/ocpoc/quadx/target/apps/gps/src/gps_interface_uart/gps_serial.h b/config/ocpoc/shared/apps/gps/src/gps_interface_uart/gps_serial.h similarity index 100% rename from config/ocpoc/quadx/target/apps/gps/src/gps_interface_uart/gps_serial.h rename to config/ocpoc/shared/apps/gps/src/gps_interface_uart/gps_serial.h diff --git a/config/bebop2/sitl/target/apps/gps/src/gps_parser_ubx/gps_parser_ubx_ack.c b/config/ocpoc/shared/apps/gps/src/gps_parser_ubx/gps_parser_ubx_ack.c similarity index 100% rename from config/bebop2/sitl/target/apps/gps/src/gps_parser_ubx/gps_parser_ubx_ack.c rename to config/ocpoc/shared/apps/gps/src/gps_parser_ubx/gps_parser_ubx_ack.c diff --git a/config/bebop2/sitl/target/apps/gps/src/gps_parser_ubx/gps_parser_ubx_ack.h b/config/ocpoc/shared/apps/gps/src/gps_parser_ubx/gps_parser_ubx_ack.h similarity index 100% rename from config/bebop2/sitl/target/apps/gps/src/gps_parser_ubx/gps_parser_ubx_ack.h rename to config/ocpoc/shared/apps/gps/src/gps_parser_ubx/gps_parser_ubx_ack.h diff --git a/config/bebop2/sitl/target/apps/gps/src/gps_parser_ubx/gps_parser_ubx_cfg.c b/config/ocpoc/shared/apps/gps/src/gps_parser_ubx/gps_parser_ubx_cfg.c similarity index 100% rename from config/bebop2/sitl/target/apps/gps/src/gps_parser_ubx/gps_parser_ubx_cfg.c rename to config/ocpoc/shared/apps/gps/src/gps_parser_ubx/gps_parser_ubx_cfg.c diff --git a/config/bebop2/sitl/target/apps/gps/src/gps_parser_ubx/gps_parser_ubx_cfg.h b/config/ocpoc/shared/apps/gps/src/gps_parser_ubx/gps_parser_ubx_cfg.h similarity index 100% rename from config/bebop2/sitl/target/apps/gps/src/gps_parser_ubx/gps_parser_ubx_cfg.h rename to config/ocpoc/shared/apps/gps/src/gps_parser_ubx/gps_parser_ubx_cfg.h diff --git a/config/ocpoc/quadx/target/apps/gps/src/gps_parser_ubx/gps_parser_ubx_common.c b/config/ocpoc/shared/apps/gps/src/gps_parser_ubx/gps_parser_ubx_common.c similarity index 100% rename from config/ocpoc/quadx/target/apps/gps/src/gps_parser_ubx/gps_parser_ubx_common.c rename to config/ocpoc/shared/apps/gps/src/gps_parser_ubx/gps_parser_ubx_common.c diff --git a/config/ocpoc/quadx/target/apps/gps/src/gps_parser_ubx/gps_parser_ubx_common.h b/config/ocpoc/shared/apps/gps/src/gps_parser_ubx/gps_parser_ubx_common.h similarity index 100% rename from config/ocpoc/quadx/target/apps/gps/src/gps_parser_ubx/gps_parser_ubx_common.h rename to config/ocpoc/shared/apps/gps/src/gps_parser_ubx/gps_parser_ubx_common.h diff --git a/config/bebop2/sitl/target/apps/gps/src/gps_parser_ubx/gps_parser_ubx_mon.c b/config/ocpoc/shared/apps/gps/src/gps_parser_ubx/gps_parser_ubx_mon.c similarity index 100% rename from config/bebop2/sitl/target/apps/gps/src/gps_parser_ubx/gps_parser_ubx_mon.c rename to config/ocpoc/shared/apps/gps/src/gps_parser_ubx/gps_parser_ubx_mon.c diff --git a/config/bebop2/sitl/target/apps/gps/src/gps_parser_ubx/gps_parser_ubx_mon.h b/config/ocpoc/shared/apps/gps/src/gps_parser_ubx/gps_parser_ubx_mon.h similarity index 100% rename from config/bebop2/sitl/target/apps/gps/src/gps_parser_ubx/gps_parser_ubx_mon.h rename to config/ocpoc/shared/apps/gps/src/gps_parser_ubx/gps_parser_ubx_mon.h diff --git a/config/bebop2/sitl/target/apps/gps/src/gps_parser_ubx/gps_parser_ubx_nav.c b/config/ocpoc/shared/apps/gps/src/gps_parser_ubx/gps_parser_ubx_nav.c similarity index 100% rename from config/bebop2/sitl/target/apps/gps/src/gps_parser_ubx/gps_parser_ubx_nav.c rename to config/ocpoc/shared/apps/gps/src/gps_parser_ubx/gps_parser_ubx_nav.c diff --git a/config/bebop2/sitl/target/apps/gps/src/gps_parser_ubx/gps_parser_ubx_nav.h b/config/ocpoc/shared/apps/gps/src/gps_parser_ubx/gps_parser_ubx_nav.h similarity index 100% rename from config/bebop2/sitl/target/apps/gps/src/gps_parser_ubx/gps_parser_ubx_nav.h rename to config/ocpoc/shared/apps/gps/src/gps_parser_ubx/gps_parser_ubx_nav.h diff --git a/config/bebop2/sitl/target/apps/gps/src/gps_parser_ubx/gps_ubx_msg.h b/config/ocpoc/shared/apps/gps/src/gps_parser_ubx/gps_ubx_msg.h similarity index 100% rename from config/bebop2/sitl/target/apps/gps/src/gps_parser_ubx/gps_ubx_msg.h rename to config/ocpoc/shared/apps/gps/src/gps_parser_ubx/gps_ubx_msg.h diff --git a/config/bebop2/sitl/target/apps/gps/tables/gps_config.c b/config/ocpoc/shared/apps/gps/tables/gps_config.c similarity index 100% rename from config/bebop2/sitl/target/apps/gps/tables/gps_config.c rename to config/ocpoc/shared/apps/gps/tables/gps_config.c diff --git a/config/ocpoc/quadx/target/apps/hmc5883/CMakeLists.txt b/config/ocpoc/shared/apps/hmc5883/CMakeLists.txt similarity index 100% rename from config/ocpoc/quadx/target/apps/hmc5883/CMakeLists.txt rename to config/ocpoc/shared/apps/hmc5883/CMakeLists.txt diff --git a/config/ocpoc/quadx/target/apps/hmc5883/src/CMakeLists.txt b/config/ocpoc/shared/apps/hmc5883/src/CMakeLists.txt similarity index 100% rename from config/ocpoc/quadx/target/apps/hmc5883/src/CMakeLists.txt rename to config/ocpoc/shared/apps/hmc5883/src/CMakeLists.txt diff --git a/config/ocpoc/quadx/target/apps/hmc5883/src/hmc5883_custom.c b/config/ocpoc/shared/apps/hmc5883/src/hmc5883_custom.c similarity index 100% rename from config/ocpoc/quadx/target/apps/hmc5883/src/hmc5883_custom.c rename to config/ocpoc/shared/apps/hmc5883/src/hmc5883_custom.c diff --git a/config/ocpoc/quadx/target/apps/hmc5883/src/hmc5883_i2c.h b/config/ocpoc/shared/apps/hmc5883/src/hmc5883_i2c.h similarity index 100% rename from config/ocpoc/quadx/target/apps/hmc5883/src/hmc5883_i2c.h rename to config/ocpoc/shared/apps/hmc5883/src/hmc5883_i2c.h diff --git a/config/ocpoc/quadx/target/apps/hmc5883/tables/hmc5883_config.c b/config/ocpoc/shared/apps/hmc5883/tables/hmc5883_config.c similarity index 100% rename from config/ocpoc/quadx/target/apps/hmc5883/tables/hmc5883_config.c rename to config/ocpoc/shared/apps/hmc5883/tables/hmc5883_config.c diff --git a/config/ocpoc/quadx/target/apps/hmc5883/tables/hmc5883_config_default.c b/config/ocpoc/shared/apps/hmc5883/tables/hmc5883_config_default.c similarity index 100% rename from config/ocpoc/quadx/target/apps/hmc5883/tables/hmc5883_config_default.c rename to config/ocpoc/shared/apps/hmc5883/tables/hmc5883_config_default.c diff --git a/config/ocpoc/quadx/target/apps/hmc5883/tables/hmc5883_config_dev_ocpoc.c b/config/ocpoc/shared/apps/hmc5883/tables/hmc5883_config_dev_ocpoc.c similarity index 100% rename from config/ocpoc/quadx/target/apps/hmc5883/tables/hmc5883_config_dev_ocpoc.c rename to config/ocpoc/shared/apps/hmc5883/tables/hmc5883_config_dev_ocpoc.c diff --git a/config/bebop2/sitl/target/apps/ld/CMakeLists.txt b/config/ocpoc/shared/apps/ld/CMakeLists.txt similarity index 100% rename from config/bebop2/sitl/target/apps/ld/CMakeLists.txt rename to config/ocpoc/shared/apps/ld/CMakeLists.txt diff --git a/config/ocpoc/s1000/target/apps/ld/tables/ld_config.c b/config/ocpoc/shared/apps/ld/tables/ld_config.c similarity index 100% rename from config/ocpoc/s1000/target/apps/ld/tables/ld_config.c rename to config/ocpoc/shared/apps/ld/tables/ld_config.c diff --git a/config/bebop2/sitl/target/apps/nav/CMakeLists.txt b/config/ocpoc/shared/apps/nav/CMakeLists.txt similarity index 100% rename from config/bebop2/sitl/target/apps/nav/CMakeLists.txt rename to config/ocpoc/shared/apps/nav/CMakeLists.txt diff --git a/config/ocpoc/quadx/target/apps/nav/tables/nav_config.c b/config/ocpoc/shared/apps/nav/tables/nav_config.c similarity index 100% rename from config/ocpoc/quadx/target/apps/nav/tables/nav_config.c rename to config/ocpoc/shared/apps/nav/tables/nav_config.c diff --git a/config/bebop2/sitl/target/apps/rcin/CMakeLists.txt b/config/ocpoc/shared/apps/rcin/CMakeLists.txt similarity index 100% rename from config/bebop2/sitl/target/apps/rcin/CMakeLists.txt rename to config/ocpoc/shared/apps/rcin/CMakeLists.txt diff --git a/config/bebop2/sitl/target/apps/rcin/src/CMakeLists.txt b/config/ocpoc/shared/apps/rcin/src/CMakeLists.txt similarity index 100% rename from config/bebop2/sitl/target/apps/rcin/src/CMakeLists.txt rename to config/ocpoc/shared/apps/rcin/src/CMakeLists.txt diff --git a/config/ocpoc/quadx/target/apps/rcin/src/rcin_custom.c b/config/ocpoc/shared/apps/rcin/src/rcin_custom.c similarity index 100% rename from config/ocpoc/quadx/target/apps/rcin/src/rcin_custom.c rename to config/ocpoc/shared/apps/rcin/src/rcin_custom.c diff --git a/config/ocpoc/quadx/target/apps/rcin/src/rcin_sbus.h b/config/ocpoc/shared/apps/rcin/src/rcin_sbus.h similarity index 100% rename from config/ocpoc/quadx/target/apps/rcin/src/rcin_sbus.h rename to config/ocpoc/shared/apps/rcin/src/rcin_sbus.h diff --git a/config/bebop2/sitl/target/apps/rgbled/CMakeLists.txt b/config/ocpoc/shared/apps/rgbled/CMakeLists.txt similarity index 100% rename from config/bebop2/sitl/target/apps/rgbled/CMakeLists.txt rename to config/ocpoc/shared/apps/rgbled/CMakeLists.txt diff --git a/config/bebop2/sitl/target/apps/rgbled/src/CMakeLists.txt b/config/ocpoc/shared/apps/rgbled/src/CMakeLists.txt similarity index 100% rename from config/bebop2/sitl/target/apps/rgbled/src/CMakeLists.txt rename to config/ocpoc/shared/apps/rgbled/src/CMakeLists.txt diff --git a/config/ocpoc/quadx/target/apps/rgbled/src/rgbled_custom.c b/config/ocpoc/shared/apps/rgbled/src/rgbled_custom.c similarity index 100% rename from config/ocpoc/quadx/target/apps/rgbled/src/rgbled_custom.c rename to config/ocpoc/shared/apps/rgbled/src/rgbled_custom.c diff --git a/config/ocpoc/quadx/target/apps/rgbled/src/rgbled_driver.h b/config/ocpoc/shared/apps/rgbled/src/rgbled_driver.h similarity index 100% rename from config/ocpoc/quadx/target/apps/rgbled/src/rgbled_driver.h rename to config/ocpoc/shared/apps/rgbled/src/rgbled_driver.h diff --git a/config/ocpoc/quadx/target/apps/sch/CMakeLists.txt b/config/ocpoc/shared/apps/sch/CMakeLists.txt similarity index 100% rename from config/ocpoc/quadx/target/apps/sch/CMakeLists.txt rename to config/ocpoc/shared/apps/sch/CMakeLists.txt diff --git a/config/bebop2/sitl/target/apps/sch/sch_custom_rt.c b/config/ocpoc/shared/apps/sch/sch_custom_rt.c similarity index 100% rename from config/bebop2/sitl/target/apps/sch/sch_custom_rt.c rename to config/ocpoc/shared/apps/sch/sch_custom_rt.c diff --git a/config/ocpoc/quadx/target/apps/sch/tables/sch_def_msgtbl.c b/config/ocpoc/shared/apps/sch/tables/sch_def_msgtbl.c similarity index 100% rename from config/ocpoc/quadx/target/apps/sch/tables/sch_def_msgtbl.c rename to config/ocpoc/shared/apps/sch/tables/sch_def_msgtbl.c diff --git a/config/ocpoc/s1000/target/apps/sch/tables/sch_def_schtbl.c b/config/ocpoc/shared/apps/sch/tables/sch_def_schtbl.c similarity index 99% rename from config/ocpoc/s1000/target/apps/sch/tables/sch_def_schtbl.c rename to config/ocpoc/shared/apps/sch/tables/sch_def_schtbl.c index 2a9584d96..28b908f26 100644 --- a/config/ocpoc/s1000/target/apps/sch/tables/sch_def_schtbl.c +++ b/config/ocpoc/shared/apps/sch/tables/sch_def_schtbl.c @@ -3365,7 +3365,7 @@ SCH_ScheduleEntry_t SCH_DefaultScheduleTable[SCH_TABLE_ENTRIES] = { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LC_SAMPLE_AP_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, diff --git a/config/ocpoc/quadx/target/apps/sch/unit_test/sch_custom_test.c b/config/ocpoc/shared/apps/sch/unit_test/sch_custom_test.c similarity index 99% rename from config/ocpoc/quadx/target/apps/sch/unit_test/sch_custom_test.c rename to config/ocpoc/shared/apps/sch/unit_test/sch_custom_test.c index 3d6b0eef3..2896fee51 100644 --- a/config/ocpoc/quadx/target/apps/sch/unit_test/sch_custom_test.c +++ b/config/ocpoc/shared/apps/sch/unit_test/sch_custom_test.c @@ -27,6 +27,11 @@ #include #include #include +#include "ut_cfe_evs_hooks.h" +#include "ut_cfe_evs_stubs.h" +#include "ut_cfe_time_stubs.h" + +SCH_AppData_t SCH_AppData; /* * Function Definitions diff --git a/config/bebop2/sitl/target/apps/sch/unit_test/sch_custom_test.h b/config/ocpoc/shared/apps/sch/unit_test/sch_custom_test.h similarity index 100% rename from config/bebop2/sitl/target/apps/sch/unit_test/sch_custom_test.h rename to config/ocpoc/shared/apps/sch/unit_test/sch_custom_test.h diff --git a/config/bebop2/sitl/target/apps/sch/unit_test/sch_test_utils.c b/config/ocpoc/shared/apps/sch/unit_test/sch_test_utils.c similarity index 100% rename from config/bebop2/sitl/target/apps/sch/unit_test/sch_test_utils.c rename to config/ocpoc/shared/apps/sch/unit_test/sch_test_utils.c diff --git a/config/bebop2/sitl/target/apps/sch/unit_test/sch_test_utils.h b/config/ocpoc/shared/apps/sch/unit_test/sch_test_utils.h similarity index 100% rename from config/bebop2/sitl/target/apps/sch/unit_test/sch_test_utils.h rename to config/ocpoc/shared/apps/sch/unit_test/sch_test_utils.h diff --git a/config/bebop2/sitl/target/apps/sch/unit_test/sch_testrunner.c b/config/ocpoc/shared/apps/sch/unit_test/sch_testrunner.c similarity index 100% rename from config/bebop2/sitl/target/apps/sch/unit_test/sch_testrunner.c rename to config/ocpoc/shared/apps/sch/unit_test/sch_testrunner.c diff --git a/config/bebop2/sitl/target/apps/sens/CMakeLists.txt b/config/ocpoc/shared/apps/sens/CMakeLists.txt similarity index 100% rename from config/bebop2/sitl/target/apps/sens/CMakeLists.txt rename to config/ocpoc/shared/apps/sens/CMakeLists.txt diff --git a/config/ocpoc/quadx/target/apps/sens/tables/sens_config.c b/config/ocpoc/shared/apps/sens/tables/sens_config.c similarity index 100% rename from config/ocpoc/quadx/target/apps/sens/tables/sens_config.c rename to config/ocpoc/shared/apps/sens/tables/sens_config.c diff --git a/config/bebop2/sitl/target/apps/to/CMakeLists.txt b/config/ocpoc/shared/apps/to/CMakeLists.txt similarity index 100% rename from config/bebop2/sitl/target/apps/to/CMakeLists.txt rename to config/ocpoc/shared/apps/to/CMakeLists.txt diff --git a/config/bebop2/sitl/target/apps/to/tables/to_backup_cfg.c b/config/ocpoc/shared/apps/to/tables/to_backup_cfg.c similarity index 100% rename from config/bebop2/sitl/target/apps/to/tables/to_backup_cfg.c rename to config/ocpoc/shared/apps/to/tables/to_backup_cfg.c diff --git a/config/bebop2/sitl/target/apps/to/tables/to_udp_cfg.c b/config/ocpoc/shared/apps/to/tables/to_udp_cfg.c similarity index 100% rename from config/bebop2/sitl/target/apps/to/tables/to_udp_cfg.c rename to config/ocpoc/shared/apps/to/tables/to_udp_cfg.c diff --git a/config/bebop2/sitl/target/apps/to/to_custom.c b/config/ocpoc/shared/apps/to/to_custom.c similarity index 100% rename from config/bebop2/sitl/target/apps/to/to_custom.c rename to config/ocpoc/shared/apps/to/to_custom.c diff --git a/config/bebop2/sitl/target/apps/to/to_custom_udp.h b/config/ocpoc/shared/apps/to/to_custom_udp.h similarity index 100% rename from config/bebop2/sitl/target/apps/to/to_custom_udp.h rename to config/ocpoc/shared/apps/to/to_custom_udp.h diff --git a/config/bebop2/sitl/target/apps/to/unit_test/to_app_custom_test.c b/config/ocpoc/shared/apps/to/unit_test/to_app_custom_test.c similarity index 100% rename from config/bebop2/sitl/target/apps/to/unit_test/to_app_custom_test.c rename to config/ocpoc/shared/apps/to/unit_test/to_app_custom_test.c diff --git a/config/bebop2/sitl/target/apps/to/unit_test/to_app_custom_test.h b/config/ocpoc/shared/apps/to/unit_test/to_app_custom_test.h similarity index 100% rename from config/bebop2/sitl/target/apps/to/unit_test/to_app_custom_test.h rename to config/ocpoc/shared/apps/to/unit_test/to_app_custom_test.h diff --git a/config/bebop2/sitl/target/apps/to/unit_test/to_app_stubs.c b/config/ocpoc/shared/apps/to/unit_test/to_app_stubs.c similarity index 100% rename from config/bebop2/sitl/target/apps/to/unit_test/to_app_stubs.c rename to config/ocpoc/shared/apps/to/unit_test/to_app_stubs.c diff --git a/config/bebop2/sitl/target/apps/to/unit_test/to_app_stubs.h b/config/ocpoc/shared/apps/to/unit_test/to_app_stubs.h similarity index 100% rename from config/bebop2/sitl/target/apps/to/unit_test/to_app_stubs.h rename to config/ocpoc/shared/apps/to/unit_test/to_app_stubs.h diff --git a/config/bebop2/sitl/target/apps/to/unit_test/to_custom_test_utils.c b/config/ocpoc/shared/apps/to/unit_test/to_custom_test_utils.c similarity index 100% rename from config/bebop2/sitl/target/apps/to/unit_test/to_custom_test_utils.c rename to config/ocpoc/shared/apps/to/unit_test/to_custom_test_utils.c diff --git a/config/bebop2/sitl/target/apps/to/unit_test/to_custom_test_utils.h b/config/ocpoc/shared/apps/to/unit_test/to_custom_test_utils.h similarity index 100% rename from config/bebop2/sitl/target/apps/to/unit_test/to_custom_test_utils.h rename to config/ocpoc/shared/apps/to/unit_test/to_custom_test_utils.h diff --git a/config/bebop2/sitl/target/apps/to/unit_test/to_custom_testrunner.c b/config/ocpoc/shared/apps/to/unit_test/to_custom_testrunner.c similarity index 100% rename from config/bebop2/sitl/target/apps/to/unit_test/to_custom_testrunner.c rename to config/ocpoc/shared/apps/to/unit_test/to_custom_testrunner.c diff --git a/config/bebop2/sitl/target/apps/to/unit_test/to_platform_stubs.c b/config/ocpoc/shared/apps/to/unit_test/to_platform_stubs.c similarity index 100% rename from config/bebop2/sitl/target/apps/to/unit_test/to_platform_stubs.c rename to config/ocpoc/shared/apps/to/unit_test/to_platform_stubs.c diff --git a/config/bebop2/sitl/target/apps/to/unit_test/to_platform_stubs.h b/config/ocpoc/shared/apps/to/unit_test/to_platform_stubs.h similarity index 100% rename from config/bebop2/sitl/target/apps/to/unit_test/to_platform_stubs.h rename to config/ocpoc/shared/apps/to/unit_test/to_platform_stubs.h diff --git a/config/bebop2/sitl/target/apps/to/user_doxy.in b/config/ocpoc/shared/apps/to/user_doxy.in similarity index 100% rename from config/bebop2/sitl/target/apps/to/user_doxy.in rename to config/ocpoc/shared/apps/to/user_doxy.in diff --git a/config/bebop2/sitl/target/apps/ulr/CMakeLists.txt b/config/ocpoc/shared/apps/ulr/CMakeLists.txt similarity index 100% rename from config/bebop2/sitl/target/apps/ulr/CMakeLists.txt rename to config/ocpoc/shared/apps/ulr/CMakeLists.txt diff --git a/config/bebop2/sitl/target/apps/ulr/tables/ulr_config.c b/config/ocpoc/shared/apps/ulr/tables/ulr_config.c similarity index 100% rename from config/bebop2/sitl/target/apps/ulr/tables/ulr_config.c rename to config/ocpoc/shared/apps/ulr/tables/ulr_config.c diff --git a/config/ocpoc/quadx/target/apps/ulr/ulr_custom.cpp b/config/ocpoc/shared/apps/ulr/ulr_custom.cpp similarity index 100% rename from config/ocpoc/quadx/target/apps/ulr/ulr_custom.cpp rename to config/ocpoc/shared/apps/ulr/ulr_custom.cpp diff --git a/config/bebop2/sitl/target/apps/vm/CMakeLists.txt b/config/ocpoc/shared/apps/vm/CMakeLists.txt similarity index 100% rename from config/bebop2/sitl/target/apps/vm/CMakeLists.txt rename to config/ocpoc/shared/apps/vm/CMakeLists.txt diff --git a/config/bebop2/sitl/target/apps/vm/tables/vm_config.c b/config/ocpoc/shared/apps/vm/tables/vm_config.c similarity index 100% rename from config/bebop2/sitl/target/apps/vm/tables/vm_config.c rename to config/ocpoc/shared/apps/vm/tables/vm_config.c diff --git a/config/bebop2/sitl/target/apps/ak8963/CMakeLists.txt b/config/shared/apps/ak8963/CMakeLists.txt similarity index 100% rename from config/bebop2/sitl/target/apps/ak8963/CMakeLists.txt rename to config/shared/apps/ak8963/CMakeLists.txt diff --git a/config/bebop2/sitl/target/apps/ak8963/src/CMakeLists.txt b/config/shared/apps/ak8963/src/CMakeLists.txt similarity index 100% rename from config/bebop2/sitl/target/apps/ak8963/src/CMakeLists.txt rename to config/shared/apps/ak8963/src/CMakeLists.txt diff --git a/config/bebop2/sitl/target/apps/ak8963/src/ak8963_custom.cpp b/config/shared/apps/ak8963/src/ak8963_custom.cpp similarity index 100% rename from config/bebop2/sitl/target/apps/ak8963/src/ak8963_custom.cpp rename to config/shared/apps/ak8963/src/ak8963_custom.cpp diff --git a/config/bebop2/sitl/target/apps/ak8963/src/ak8963_i2c.h b/config/shared/apps/ak8963/src/ak8963_i2c.h similarity index 100% rename from config/bebop2/sitl/target/apps/ak8963/src/ak8963_i2c.h rename to config/shared/apps/ak8963/src/ak8963_i2c.h diff --git a/config/bebop2/sitl/target/apps/ak8963/tables/ak8963_config.c b/config/shared/apps/ak8963/tables/ak8963_config.c similarity index 100% rename from config/bebop2/sitl/target/apps/ak8963/tables/ak8963_config.c rename to config/shared/apps/ak8963/tables/ak8963_config.c diff --git a/config/bebop2/sitl/target/apps/amc/CMakeLists.txt b/config/shared/apps/amc/CMakeLists.txt similarity index 100% rename from config/bebop2/sitl/target/apps/amc/CMakeLists.txt rename to config/shared/apps/amc/CMakeLists.txt diff --git a/config/bebop2/sitl/target/apps/amc/amc_custom.cpp b/config/shared/apps/amc/amc_custom.cpp similarity index 100% rename from config/bebop2/sitl/target/apps/amc/amc_custom.cpp rename to config/shared/apps/amc/amc_custom.cpp diff --git a/config/bebop2/sitl/target/apps/amc/tables/amc_mixercfg.c b/config/shared/apps/amc/tables/amc_mixercfg.c similarity index 100% rename from config/bebop2/sitl/target/apps/amc/tables/amc_mixercfg.c rename to config/shared/apps/amc/tables/amc_mixercfg.c diff --git a/config/bebop2/sitl/target/apps/amc/tables/amc_pwmcfg.c b/config/shared/apps/amc/tables/amc_pwmcfg.c similarity index 100% rename from config/bebop2/sitl/target/apps/amc/tables/amc_pwmcfg.c rename to config/shared/apps/amc/tables/amc_pwmcfg.c diff --git a/config/bebop2/sitl/target/apps/bat/CMakeLists.txt b/config/shared/apps/bat/CMakeLists.txt similarity index 100% rename from config/bebop2/sitl/target/apps/bat/CMakeLists.txt rename to config/shared/apps/bat/CMakeLists.txt diff --git a/config/bebop2/sitl/target/apps/bat/bat_custom.cpp b/config/shared/apps/bat/bat_custom.cpp similarity index 100% rename from config/bebop2/sitl/target/apps/bat/bat_custom.cpp rename to config/shared/apps/bat/bat_custom.cpp diff --git a/config/bebop2/sitl/target/apps/bat/tables/bat_config.c b/config/shared/apps/bat/tables/bat_config.c similarity index 100% rename from config/bebop2/sitl/target/apps/bat/tables/bat_config.c rename to config/shared/apps/bat/tables/bat_config.c diff --git a/config/bebop2/sitl/target/apps/cf/CMakeLists.txt b/config/shared/apps/cf/CMakeLists.txt similarity index 100% rename from config/bebop2/sitl/target/apps/cf/CMakeLists.txt rename to config/shared/apps/cf/CMakeLists.txt diff --git a/config/bebop2/sitl/target/apps/cf/tables/cf_cfgtable.c b/config/shared/apps/cf/tables/cf_cfgtable.c similarity index 100% rename from config/bebop2/sitl/target/apps/cf/tables/cf_cfgtable.c rename to config/shared/apps/cf/tables/cf_cfgtable.c diff --git a/config/ocpoc/s1000/target/apps/ci/CMakeLists.txt b/config/shared/apps/ci/CMakeLists.txt similarity index 100% rename from config/ocpoc/s1000/target/apps/ci/CMakeLists.txt rename to config/shared/apps/ci/CMakeLists.txt diff --git a/config/bebop2/sitl/target/apps/ci/ci_custom.c b/config/shared/apps/ci/ci_custom.c similarity index 100% rename from config/bebop2/sitl/target/apps/ci/ci_custom.c rename to config/shared/apps/ci/ci_custom.c diff --git a/config/bebop2/sitl/target/apps/ci/tables/ci_config.c b/config/shared/apps/ci/tables/ci_config.c similarity index 100% rename from config/bebop2/sitl/target/apps/ci/tables/ci_config.c rename to config/shared/apps/ci/tables/ci_config.c diff --git a/config/bebop2/sitl/target/apps/ci/unit_test/ci-custom.supp b/config/shared/apps/ci/unit_test/ci-custom.supp similarity index 100% rename from config/bebop2/sitl/target/apps/ci/unit_test/ci-custom.supp rename to config/shared/apps/ci/unit_test/ci-custom.supp diff --git a/config/bebop2/sitl/target/apps/ci/unit_test/ci_custom_test.c b/config/shared/apps/ci/unit_test/ci_custom_test.c similarity index 100% rename from config/bebop2/sitl/target/apps/ci/unit_test/ci_custom_test.c rename to config/shared/apps/ci/unit_test/ci_custom_test.c diff --git a/config/bebop2/sitl/target/apps/ci/unit_test/ci_custom_test.h b/config/shared/apps/ci/unit_test/ci_custom_test.h similarity index 100% rename from config/bebop2/sitl/target/apps/ci/unit_test/ci_custom_test.h rename to config/shared/apps/ci/unit_test/ci_custom_test.h diff --git a/config/bebop2/sitl/target/apps/ci/unit_test/ci_mock_os_calls.c b/config/shared/apps/ci/unit_test/ci_mock_os_calls.c similarity index 100% rename from config/bebop2/sitl/target/apps/ci/unit_test/ci_mock_os_calls.c rename to config/shared/apps/ci/unit_test/ci_mock_os_calls.c diff --git a/config/bebop2/sitl/target/apps/ci/unit_test/ci_mock_os_calls.h b/config/shared/apps/ci/unit_test/ci_mock_os_calls.h similarity index 100% rename from config/bebop2/sitl/target/apps/ci/unit_test/ci_mock_os_calls.h rename to config/shared/apps/ci/unit_test/ci_mock_os_calls.h diff --git a/config/bebop2/sitl/target/apps/ci/unit_test/ci_test_utils.c b/config/shared/apps/ci/unit_test/ci_test_utils.c similarity index 100% rename from config/bebop2/sitl/target/apps/ci/unit_test/ci_test_utils.c rename to config/shared/apps/ci/unit_test/ci_test_utils.c diff --git a/config/bebop2/sitl/target/apps/ci/unit_test/ci_test_utils.h b/config/shared/apps/ci/unit_test/ci_test_utils.h similarity index 100% rename from config/bebop2/sitl/target/apps/ci/unit_test/ci_test_utils.h rename to config/shared/apps/ci/unit_test/ci_test_utils.h diff --git a/config/bebop2/sitl/target/apps/ci/unit_test/ci_testrunner.c b/config/shared/apps/ci/unit_test/ci_testrunner.c similarity index 100% rename from config/bebop2/sitl/target/apps/ci/unit_test/ci_testrunner.c rename to config/shared/apps/ci/unit_test/ci_testrunner.c diff --git a/config/bebop2/sitl/target/apps/ds/CMakeLists.txt b/config/shared/apps/ds/CMakeLists.txt similarity index 100% rename from config/bebop2/sitl/target/apps/ds/CMakeLists.txt rename to config/shared/apps/ds/CMakeLists.txt diff --git a/config/bebop2/sitl/target/apps/ds/tables/ds_file_tbl.c b/config/shared/apps/ds/tables/ds_file_tbl.c similarity index 100% rename from config/bebop2/sitl/target/apps/ds/tables/ds_file_tbl.c rename to config/shared/apps/ds/tables/ds_file_tbl.c diff --git a/config/bebop2/sitl/target/apps/ds/tables/ds_filter_tbl.c b/config/shared/apps/ds/tables/ds_filter_tbl.c similarity index 100% rename from config/bebop2/sitl/target/apps/ds/tables/ds_filter_tbl.c rename to config/shared/apps/ds/tables/ds_filter_tbl.c diff --git a/config/bebop2/sitl/target/apps/ea/CMakeLists.txt b/config/shared/apps/ea/CMakeLists.txt similarity index 100% rename from config/bebop2/sitl/target/apps/ea/CMakeLists.txt rename to config/shared/apps/ea/CMakeLists.txt diff --git a/config/bebop2/sitl/target/apps/ea/ea-custom-ut.supp b/config/shared/apps/ea/ea-custom-ut.supp similarity index 100% rename from config/bebop2/sitl/target/apps/ea/ea-custom-ut.supp rename to config/shared/apps/ea/ea-custom-ut.supp diff --git a/config/bebop2/sitl/target/apps/ea/ea-perfmon-ut.supp b/config/shared/apps/ea/ea-perfmon-ut.supp similarity index 100% rename from config/bebop2/sitl/target/apps/ea/ea-perfmon-ut.supp rename to config/shared/apps/ea/ea-perfmon-ut.supp diff --git a/config/bebop2/sitl/target/apps/ea/src/ea_custom.c b/config/shared/apps/ea/src/ea_custom.c similarity index 100% rename from config/bebop2/sitl/target/apps/ea/src/ea_custom.c rename to config/shared/apps/ea/src/ea_custom.c diff --git a/config/bebop2/sitl/target/apps/ea/unit_test/ea-custom-ut.supp b/config/shared/apps/ea/unit_test/ea-custom-ut.supp similarity index 100% rename from config/bebop2/sitl/target/apps/ea/unit_test/ea-custom-ut.supp rename to config/shared/apps/ea/unit_test/ea-custom-ut.supp diff --git a/config/bebop2/sitl/target/apps/ea/unit_test/ea_custom_test.c b/config/shared/apps/ea/unit_test/ea_custom_test.c similarity index 100% rename from config/bebop2/sitl/target/apps/ea/unit_test/ea_custom_test.c rename to config/shared/apps/ea/unit_test/ea_custom_test.c diff --git a/config/bebop2/sitl/target/apps/ea/unit_test/ea_custom_test.h b/config/shared/apps/ea/unit_test/ea_custom_test.h similarity index 100% rename from config/bebop2/sitl/target/apps/ea/unit_test/ea_custom_test.h rename to config/shared/apps/ea/unit_test/ea_custom_test.h diff --git a/config/bebop2/sitl/target/apps/ea/unit_test/ea_mock_os_calls.c b/config/shared/apps/ea/unit_test/ea_mock_os_calls.c similarity index 100% rename from config/bebop2/sitl/target/apps/ea/unit_test/ea_mock_os_calls.c rename to config/shared/apps/ea/unit_test/ea_mock_os_calls.c diff --git a/config/bebop2/sitl/target/apps/ea/unit_test/ea_mock_os_calls.h b/config/shared/apps/ea/unit_test/ea_mock_os_calls.h similarity index 100% rename from config/bebop2/sitl/target/apps/ea/unit_test/ea_mock_os_calls.h rename to config/shared/apps/ea/unit_test/ea_mock_os_calls.h diff --git a/config/bebop2/sitl/target/apps/ea/unit_test/ea_perfmon_test.c b/config/shared/apps/ea/unit_test/ea_perfmon_test.c similarity index 100% rename from config/bebop2/sitl/target/apps/ea/unit_test/ea_perfmon_test.c rename to config/shared/apps/ea/unit_test/ea_perfmon_test.c diff --git a/config/bebop2/sitl/target/apps/ea/unit_test/ea_perfmon_test.h b/config/shared/apps/ea/unit_test/ea_perfmon_test.h similarity index 100% rename from config/bebop2/sitl/target/apps/ea/unit_test/ea_perfmon_test.h rename to config/shared/apps/ea/unit_test/ea_perfmon_test.h diff --git a/config/bebop2/sitl/target/apps/ea/unit_test/ea_perfmon_testrunner.c b/config/shared/apps/ea/unit_test/ea_perfmon_testrunner.c similarity index 100% rename from config/bebop2/sitl/target/apps/ea/unit_test/ea_perfmon_testrunner.c rename to config/shared/apps/ea/unit_test/ea_perfmon_testrunner.c diff --git a/config/bebop2/sitl/target/apps/ea/unit_test/ea_test_utils.c b/config/shared/apps/ea/unit_test/ea_test_utils.c similarity index 100% rename from config/bebop2/sitl/target/apps/ea/unit_test/ea_test_utils.c rename to config/shared/apps/ea/unit_test/ea_test_utils.c diff --git a/config/bebop2/sitl/target/apps/ea/unit_test/ea_test_utils.h b/config/shared/apps/ea/unit_test/ea_test_utils.h similarity index 100% rename from config/bebop2/sitl/target/apps/ea/unit_test/ea_test_utils.h rename to config/shared/apps/ea/unit_test/ea_test_utils.h diff --git a/config/bebop2/sitl/target/apps/ea/unit_test/ea_testrunner.c b/config/shared/apps/ea/unit_test/ea_testrunner.c similarity index 100% rename from config/bebop2/sitl/target/apps/ea/unit_test/ea_testrunner.c rename to config/shared/apps/ea/unit_test/ea_testrunner.c diff --git a/config/bebop2/sitl/target/apps/ea/unit_test/fib.py b/config/shared/apps/ea/unit_test/fib.py similarity index 100% rename from config/bebop2/sitl/target/apps/ea/unit_test/fib.py rename to config/shared/apps/ea/unit_test/fib.py diff --git a/config/bebop2/sitl/target/apps/ea/unit_test/noop.py b/config/shared/apps/ea/unit_test/noop.py similarity index 100% rename from config/bebop2/sitl/target/apps/ea/unit_test/noop.py rename to config/shared/apps/ea/unit_test/noop.py diff --git a/config/bebop2/sitl/target/apps/ea/unit_test/sleep.py b/config/shared/apps/ea/unit_test/sleep.py similarity index 100% rename from config/bebop2/sitl/target/apps/ea/unit_test/sleep.py rename to config/shared/apps/ea/unit_test/sleep.py diff --git a/config/bebop2/sitl/target/apps/flow/CMakeLists.txt b/config/shared/apps/flow/CMakeLists.txt similarity index 100% rename from config/bebop2/sitl/target/apps/flow/CMakeLists.txt rename to config/shared/apps/flow/CMakeLists.txt diff --git a/config/bebop2/sitl/target/apps/flow/tables/flow_config.c b/config/shared/apps/flow/tables/flow_config.c similarity index 100% rename from config/bebop2/sitl/target/apps/flow/tables/flow_config.c rename to config/shared/apps/flow/tables/flow_config.c diff --git a/config/ocpoc/quadx/target/apps/gps/CMakeLists.txt b/config/shared/apps/gps/CMakeLists.txt similarity index 100% rename from config/ocpoc/quadx/target/apps/gps/CMakeLists.txt rename to config/shared/apps/gps/CMakeLists.txt diff --git a/config/ocpoc/quadx/target/apps/gps/src/CMakeLists.txt b/config/shared/apps/gps/src/CMakeLists.txt similarity index 100% rename from config/ocpoc/quadx/target/apps/gps/src/CMakeLists.txt rename to config/shared/apps/gps/src/CMakeLists.txt diff --git a/config/bebop2/sitl/target/apps/gps/src/gps_custom.c b/config/shared/apps/gps/src/gps_custom.c similarity index 100% rename from config/bebop2/sitl/target/apps/gps/src/gps_custom.c rename to config/shared/apps/gps/src/gps_custom.c diff --git a/config/bebop2/sitl/target/apps/gps/src/gps_custom_shared.h b/config/shared/apps/gps/src/gps_custom_shared.h similarity index 100% rename from config/bebop2/sitl/target/apps/gps/src/gps_custom_shared.h rename to config/shared/apps/gps/src/gps_custom_shared.h diff --git a/config/bebop2/sitl/target/apps/gps/src/gps_custom_sim_simple.c b/config/shared/apps/gps/src/gps_custom_sim_simple.c similarity index 100% rename from config/bebop2/sitl/target/apps/gps/src/gps_custom_sim_simple.c rename to config/shared/apps/gps/src/gps_custom_sim_simple.c diff --git a/config/ocpoc/s1000/target/apps/gps/src/gps_interface_uart/gps_serial.c b/config/shared/apps/gps/src/gps_interface_uart/gps_serial.c similarity index 94% rename from config/ocpoc/s1000/target/apps/gps/src/gps_interface_uart/gps_serial.c rename to config/shared/apps/gps/src/gps_interface_uart/gps_serial.c index 128914d73..f58fb015c 100644 --- a/config/ocpoc/s1000/target/apps/gps/src/gps_interface_uart/gps_serial.c +++ b/config/shared/apps/gps/src/gps_interface_uart/gps_serial.c @@ -86,6 +86,7 @@ void GPS_Custom_InitData(void) /* Set all struct zero values */ bzero(&GPS_AppCustomData, sizeof(GPS_AppCustomData)); GPS_AppCustomData.Baud = GPS_SERIAL_IO_SPEED; + GPS_Parser_Reset(); /* Set all non-zero values */ GPS_AppCustomData.ContinueFlag = TRUE; @@ -1128,60 +1129,110 @@ return returnBool; } -boolean GPS_Custom_Configure(void) +boolean GPS_Custom_Disable_Bebop_Msgs(void) { - boolean returnBool = TRUE; + boolean returnBool = FALSE; - /* TODO move this struct define to gps_ubx_msg */ - GPS_Payload_TX_CFG_Rate_t rateConfig; - - GPS_CFG_NAV5_t navConfig; - GPS_CFG_SBAS_t sbasConfig; - - /* Setup rate configuration */ - memset(&rateConfig, 0, sizeof(GPS_Payload_TX_CFG_Rate_t)); - rateConfig.measRate = GPS_TX_CFG_RATE_MEASINTERVAL; - rateConfig.navRate = GPS_TX_CFG_RATE_NAVRATE; - rateConfig.timeRef = GPS_TX_CFG_RATE_TIMEREF; - - /* Setup NAV5 configuration */ - memset(&navConfig, 0, sizeof(GPS_CFG_NAV5_t)); - navConfig.mask = GPS_TX_CFG_NAV5_MASK; - navConfig.dynModel = GPS_TX_CFG_NAV5_DYNMODEL; - navConfig.fixMode = GPS_TX_CFG_NAV5_FIXMODE;; + returnBool = GPS_Custom_SendMessageRate(GPS_MESSAGE_NMEA_GST, 0); + if(FALSE == returnBool) + { + goto end_of_function; + } + returnBool = GPS_Custom_WaitForAck(GPS_MESSAGE_CFG_MSG, + GPS_ACK_TIMEOUT); + if(FALSE == returnBool) + { + goto end_of_function; + } - /* Setup SBAS configuration */ - memset(&sbasConfig, 0, sizeof(GPS_CFG_SBAS_t)); - sbasConfig.mode = GPS_TX_CFG_SBAS_MODE; - - /* Send a CFG-RATE message to define update rate */ - returnBool = GPS_Custom_SendMessage(GPS_MESSAGE_CFG_RATE, - (uint8 *)&rateConfig, sizeof(GPS_Payload_TX_CFG_Rate_t)); + returnBool = GPS_Custom_SendMessageRate(GPS_MESSAGE_NMEA_GNS, 0); if(FALSE == returnBool) { goto end_of_function; } - - returnBool = GPS_Custom_WaitForAck(GPS_MESSAGE_CFG_RATE, + returnBool = GPS_Custom_WaitForAck(GPS_MESSAGE_CFG_MSG, GPS_ACK_TIMEOUT); if(FALSE == returnBool) { goto end_of_function; } - /* send a NAV5 message to set the options for the internal filter */ - returnBool = GPS_Custom_SendMessage(GPS_MESSAGE_CFG_NAV5, - (uint8 *)&navConfig, sizeof(GPS_CFG_NAV5_t)); + + returnBool = GPS_Custom_SendMessageRate(GPS_MESSAGE_NAV_POSECEF, 0); if(FALSE == returnBool) { goto end_of_function; } - - returnBool = GPS_Custom_WaitForAck(GPS_MESSAGE_CFG_NAV5, + returnBool = GPS_Custom_WaitForAck(GPS_MESSAGE_CFG_MSG, + GPS_ACK_TIMEOUT); + if(FALSE == returnBool) + { + goto end_of_function; + } + + returnBool = GPS_Custom_SendMessageRate(GPS_MESSAGE_NAV_VELNED, 0); + if(FALSE == returnBool) + { + goto end_of_function; + } + returnBool = GPS_Custom_WaitForAck(GPS_MESSAGE_CFG_MSG, GPS_ACK_TIMEOUT); if(FALSE == returnBool) { goto end_of_function; } + +end_of_function: + return returnBool; +} + + +boolean GPS_Custom_Configure(void) +{ + boolean returnBool = TRUE; + + /* TODO move this struct define to gps_ubx_msg */ + GPS_CFG_SBAS_t sbasConfig; + + /* gps_config.txt in the etc folder of the bebop 2 root directory + * is the gps configuration set at startup. Since the gps is already + * configured we can turn off messages turned on in that + * configuration file and turn on the ublox messages we want. + * The GPS configuration file is included below: + * $tty=/dev/ttyPA1 + * $force_update=1 + * $baud=230400 + * CFG-NAV5-MASK-Airborne < 4G - fix 3D only ... + * 06 24 FFFF 08 02 00000000 10270000 05 00 FA00 FA00 6400 2C01 00 3C 00 1C 0000 C8 + * CFG-NAVX5 ... + * 06 23 0000 0800 00000000 0302 03 14 1C 00 00 0100 00 DC06 000000000101 0000 0064 + * 06 UBX-CFG, 08 CFG-RATE, measRate 5 Hz, + * 06 08 C800 0100 0100 + * UBX-CFG-CFG-NMEA ... + * 06 17 2F 40 00 00 + * UBX-CFG-CFG-MSG-NMEA-GGA + * 06 01 F0 00 00 + * UBX-CFG-CFG-MSG-NMEA-GLL + * 06 01 F0 01 00 + * 06 UBX-CFG-CFG-MSG-NMEA-VTG + * 06 01 F0 05 00 + * UBX-CFG-CFG-MSG-NMEA-GST + * 06 01 F0 07 01 + * UBX-CFG-CFG-MSG-NMEA-GNS + * 06 01 F0 0D 01 + * UBX-CFG-CFG-MSG-UBX-NAV-NAV-POSECEF-Rate + * 06 01 01 01 01 + * UBX-CFG-CFG-MSG-UBX-NAV-UBX-NAV-VELNED-Rate + * 06 01 01 12 01*/ + returnBool = GPS_Custom_Disable_Bebop_Msgs(); + if(FALSE == returnBool) + { + goto end_of_function; + } + + /* Setup SBAS configuration */ + memset(&sbasConfig, 0, sizeof(GPS_CFG_SBAS_t)); + sbasConfig.mode = GPS_TX_CFG_SBAS_MODE; + /* send a SBAS message to set the SBAS options */ returnBool = GPS_Custom_SendMessage(GPS_MESSAGE_CFG_SBAS, (uint8 *)&sbasConfig, sizeof(GPS_CFG_SBAS_t)); diff --git a/config/ocpoc/s1000/target/apps/gps/src/gps_interface_uart/gps_serial.h b/config/shared/apps/gps/src/gps_interface_uart/gps_serial.h similarity index 92% rename from config/ocpoc/s1000/target/apps/gps/src/gps_interface_uart/gps_serial.h rename to config/shared/apps/gps/src/gps_interface_uart/gps_serial.h index 488ed009e..4c3c08218 100644 --- a/config/ocpoc/s1000/target/apps/gps/src/gps_interface_uart/gps_serial.h +++ b/config/shared/apps/gps/src/gps_interface_uart/gps_serial.h @@ -48,14 +48,14 @@ extern "C" { ** Local Defines *************************************************************************/ /** \brief GPS device path. */ -#define GPS_SERIAL_DEVICE_PATH "/dev/ttyS3" +#define GPS_SERIAL_DEVICE_PATH "/dev/ttyPA1" /** \brief IO speed. ** ** \par Description: -** The serial IO speed 38400 baud. +** The serial IO speed 230400 baud. */ -#define GPS_SERIAL_IO_SPEED 38400 +#define GPS_SERIAL_IO_SPEED (230400) /** \brief Wait time (ms) before read. ** @@ -99,6 +99,8 @@ extern "C" { #define GPS_MESSAGE_CLASS_MON (0x0A) +#define GPS_MESSAGE_CLASS_NMEA (0xF0) + /* Message IDs */ /** \brief Message ID port configuration. ** @@ -107,6 +109,13 @@ extern "C" { */ #define GPS_MESSAGE_ID_CFG_PRT (0x00) +/** \brief Message ID reset configuration. +** +** \par Description: +** Message ID for reset. +*/ +#define GPS_MESSAGE_ID_CFG_RST (0x04) + /** \brief Message ID rate configuration. ** ** \par Description: @@ -163,6 +172,14 @@ extern "C" { */ #define GPS_MESSAGE_ID_MON_HW (0x09) +#define GPS_MESSAGE_ID_NMEA_GST (0x07) + +#define GPS_MESSAGE_ID_NMEA_GNS (0x0D) + +#define GPS_MESSAGE_ID_NAV_POSECEF (0x01) + +#define GPS_MESSAGE_ID_NAV_VELNED (0x12) + /* TX CFG-PRT message contents */ /** \brief UART 1 port number. ** @@ -277,6 +294,8 @@ extern "C" { #define GPS_MESSAGE_CFG_RATE ((GPS_MESSAGE_CLASS_CFG) | \ GPS_MESSAGE_ID_CFG_RATE << 8) +#define GPS_MESSAGE_CFG_RST ((GPS_MESSAGE_CLASS_CFG) | \ + GPS_MESSAGE_ID_CFG_RST << 8) #define GPS_MESSAGE_CFG_NAV5 ((GPS_MESSAGE_CLASS_CFG) | \ GPS_MESSAGE_ID_CFG_NAV5 << 8) @@ -298,7 +317,19 @@ extern "C" { #define GPS_MESSAGE_MON_HW ((GPS_MESSAGE_CLASS_MON) | \ GPS_MESSAGE_ID_MON_HW << 8) - + +#define GPS_MESSAGE_NMEA_GST ((GPS_MESSAGE_CLASS_NMEA) | \ + GPS_MESSAGE_ID_NMEA_GST << 8) + +#define GPS_MESSAGE_NMEA_GNS ((GPS_MESSAGE_CLASS_NMEA) | \ + GPS_MESSAGE_ID_NMEA_GNS << 8) + +#define GPS_MESSAGE_NAV_POSECEF ((GPS_MESSAGE_CLASS_NAV) | \ + GPS_MESSAGE_ID_NAV_POSECEF << 8) + +#define GPS_MESSAGE_NAV_VELNED ((GPS_MESSAGE_CLASS_NAV) | \ + GPS_MESSAGE_ID_NAV_VELNED << 8) + /** \brief Retry attemps for interrupted calls. ** ** \par Limits: @@ -388,6 +419,21 @@ typedef struct } GPS_Payload_TX_CFG_Rate_t; +/** + * \brief GPS message Reset Receiver / Clear Backup Data Structures + */ +/* TODO move to gps_ubx_msg */ +typedef struct +{ + /*! BBR Sections to clear. */ + uint16 navBbrMask; + /*! Reset Type. */ + uint8 resetMode; + /*! Reserved. */ + uint8 reserved1; +} GPS_Payload_TX_CFG_Reset_t; + + /* TODO move to gps_ubx_msg*/ /** * \brief GPS message rate configuration message. @@ -651,6 +697,8 @@ void GPS_Stream_Task(void); *************************************************************************/ boolean GPS_Custom_Read_and_Parse(const uint32 timeout); +boolean GPS_Custom_Disable_Bebop_Msgs(void); + #ifdef __cplusplus } #endif diff --git a/config/ocpoc/quadx/target/apps/gps/src/gps_parser_ubx/gps_parser_ubx_ack.c b/config/shared/apps/gps/src/gps_parser_ubx/gps_parser_ubx_ack.c similarity index 100% rename from config/ocpoc/quadx/target/apps/gps/src/gps_parser_ubx/gps_parser_ubx_ack.c rename to config/shared/apps/gps/src/gps_parser_ubx/gps_parser_ubx_ack.c diff --git a/config/ocpoc/quadx/target/apps/gps/src/gps_parser_ubx/gps_parser_ubx_ack.h b/config/shared/apps/gps/src/gps_parser_ubx/gps_parser_ubx_ack.h similarity index 100% rename from config/ocpoc/quadx/target/apps/gps/src/gps_parser_ubx/gps_parser_ubx_ack.h rename to config/shared/apps/gps/src/gps_parser_ubx/gps_parser_ubx_ack.h diff --git a/config/ocpoc/quadx/target/apps/gps/src/gps_parser_ubx/gps_parser_ubx_cfg.c b/config/shared/apps/gps/src/gps_parser_ubx/gps_parser_ubx_cfg.c similarity index 100% rename from config/ocpoc/quadx/target/apps/gps/src/gps_parser_ubx/gps_parser_ubx_cfg.c rename to config/shared/apps/gps/src/gps_parser_ubx/gps_parser_ubx_cfg.c diff --git a/config/ocpoc/quadx/target/apps/gps/src/gps_parser_ubx/gps_parser_ubx_cfg.h b/config/shared/apps/gps/src/gps_parser_ubx/gps_parser_ubx_cfg.h similarity index 100% rename from config/ocpoc/quadx/target/apps/gps/src/gps_parser_ubx/gps_parser_ubx_cfg.h rename to config/shared/apps/gps/src/gps_parser_ubx/gps_parser_ubx_cfg.h diff --git a/config/bebop2/sitl/target/apps/gps/src/gps_parser_ubx/gps_parser_ubx_common.c b/config/shared/apps/gps/src/gps_parser_ubx/gps_parser_ubx_common.c similarity index 100% rename from config/bebop2/sitl/target/apps/gps/src/gps_parser_ubx/gps_parser_ubx_common.c rename to config/shared/apps/gps/src/gps_parser_ubx/gps_parser_ubx_common.c diff --git a/config/bebop2/sitl/target/apps/gps/src/gps_parser_ubx/gps_parser_ubx_common.h b/config/shared/apps/gps/src/gps_parser_ubx/gps_parser_ubx_common.h similarity index 100% rename from config/bebop2/sitl/target/apps/gps/src/gps_parser_ubx/gps_parser_ubx_common.h rename to config/shared/apps/gps/src/gps_parser_ubx/gps_parser_ubx_common.h diff --git a/config/ocpoc/quadx/target/apps/gps/src/gps_parser_ubx/gps_parser_ubx_mon.c b/config/shared/apps/gps/src/gps_parser_ubx/gps_parser_ubx_mon.c similarity index 100% rename from config/ocpoc/quadx/target/apps/gps/src/gps_parser_ubx/gps_parser_ubx_mon.c rename to config/shared/apps/gps/src/gps_parser_ubx/gps_parser_ubx_mon.c diff --git a/config/ocpoc/quadx/target/apps/gps/src/gps_parser_ubx/gps_parser_ubx_mon.h b/config/shared/apps/gps/src/gps_parser_ubx/gps_parser_ubx_mon.h similarity index 100% rename from config/ocpoc/quadx/target/apps/gps/src/gps_parser_ubx/gps_parser_ubx_mon.h rename to config/shared/apps/gps/src/gps_parser_ubx/gps_parser_ubx_mon.h diff --git a/config/ocpoc/quadx/target/apps/gps/src/gps_parser_ubx/gps_parser_ubx_nav.c b/config/shared/apps/gps/src/gps_parser_ubx/gps_parser_ubx_nav.c similarity index 100% rename from config/ocpoc/quadx/target/apps/gps/src/gps_parser_ubx/gps_parser_ubx_nav.c rename to config/shared/apps/gps/src/gps_parser_ubx/gps_parser_ubx_nav.c diff --git a/config/ocpoc/quadx/target/apps/gps/src/gps_parser_ubx/gps_parser_ubx_nav.h b/config/shared/apps/gps/src/gps_parser_ubx/gps_parser_ubx_nav.h similarity index 100% rename from config/ocpoc/quadx/target/apps/gps/src/gps_parser_ubx/gps_parser_ubx_nav.h rename to config/shared/apps/gps/src/gps_parser_ubx/gps_parser_ubx_nav.h diff --git a/config/ocpoc/quadx/target/apps/gps/src/gps_parser_ubx/gps_ubx_msg.h b/config/shared/apps/gps/src/gps_parser_ubx/gps_ubx_msg.h similarity index 100% rename from config/ocpoc/quadx/target/apps/gps/src/gps_parser_ubx/gps_ubx_msg.h rename to config/shared/apps/gps/src/gps_parser_ubx/gps_ubx_msg.h diff --git a/config/ocpoc/quadx/target/apps/gps/tables/gps_config.c b/config/shared/apps/gps/tables/gps_config.c similarity index 100% rename from config/ocpoc/quadx/target/apps/gps/tables/gps_config.c rename to config/shared/apps/gps/tables/gps_config.c diff --git a/config/ocpoc/s1000/target/apps/hmc5883/CMakeLists.txt b/config/shared/apps/hmc5883/CMakeLists.txt similarity index 100% rename from config/ocpoc/s1000/target/apps/hmc5883/CMakeLists.txt rename to config/shared/apps/hmc5883/CMakeLists.txt diff --git a/config/ocpoc/s1000/target/apps/hmc5883/src/CMakeLists.txt b/config/shared/apps/hmc5883/src/CMakeLists.txt similarity index 100% rename from config/ocpoc/s1000/target/apps/hmc5883/src/CMakeLists.txt rename to config/shared/apps/hmc5883/src/CMakeLists.txt diff --git a/config/ocpoc/s1000/target/apps/hmc5883/src/hmc5883_custom.c b/config/shared/apps/hmc5883/src/hmc5883_custom.c similarity index 100% rename from config/ocpoc/s1000/target/apps/hmc5883/src/hmc5883_custom.c rename to config/shared/apps/hmc5883/src/hmc5883_custom.c diff --git a/config/ocpoc/s1000/target/apps/hmc5883/src/hmc5883_i2c.h b/config/shared/apps/hmc5883/src/hmc5883_i2c.h similarity index 100% rename from config/ocpoc/s1000/target/apps/hmc5883/src/hmc5883_i2c.h rename to config/shared/apps/hmc5883/src/hmc5883_i2c.h diff --git a/config/ocpoc/s1000/target/apps/hmc5883/tables/hmc5883_config.c b/config/shared/apps/hmc5883/tables/hmc5883_config.c similarity index 100% rename from config/ocpoc/s1000/target/apps/hmc5883/tables/hmc5883_config.c rename to config/shared/apps/hmc5883/tables/hmc5883_config.c diff --git a/config/ocpoc/s1000/target/apps/hmc5883/tables/hmc5883_config_default.c b/config/shared/apps/hmc5883/tables/hmc5883_config_default.c similarity index 100% rename from config/ocpoc/s1000/target/apps/hmc5883/tables/hmc5883_config_default.c rename to config/shared/apps/hmc5883/tables/hmc5883_config_default.c diff --git a/config/ocpoc/s1000/target/apps/hmc5883/tables/hmc5883_config_main_vehicle.c b/config/shared/apps/hmc5883/tables/hmc5883_config_main_vehicle.c similarity index 100% rename from config/ocpoc/s1000/target/apps/hmc5883/tables/hmc5883_config_main_vehicle.c rename to config/shared/apps/hmc5883/tables/hmc5883_config_main_vehicle.c diff --git a/config/ocpoc/quadx/target/apps/ld/CMakeLists.txt b/config/shared/apps/ld/CMakeLists.txt similarity index 100% rename from config/ocpoc/quadx/target/apps/ld/CMakeLists.txt rename to config/shared/apps/ld/CMakeLists.txt diff --git a/config/bebop2/sitl/target/apps/ld/tables/ld_config.c b/config/shared/apps/ld/tables/ld_config.c similarity index 100% rename from config/bebop2/sitl/target/apps/ld/tables/ld_config.c rename to config/shared/apps/ld/tables/ld_config.c diff --git a/config/bebop2/sitl/target/apps/lgc/CMakeLists.txt b/config/shared/apps/lgc/CMakeLists.txt similarity index 100% rename from config/bebop2/sitl/target/apps/lgc/CMakeLists.txt rename to config/shared/apps/lgc/CMakeLists.txt diff --git a/config/bebop2/sitl/target/apps/lgc/lgc_custom.cpp b/config/shared/apps/lgc/lgc_custom.cpp similarity index 100% rename from config/bebop2/sitl/target/apps/lgc/lgc_custom.cpp rename to config/shared/apps/lgc/lgc_custom.cpp diff --git a/config/bebop2/sitl/target/apps/lgc/tables/lgc_config.c b/config/shared/apps/lgc/tables/lgc_config.c similarity index 100% rename from config/bebop2/sitl/target/apps/lgc/tables/lgc_config.c rename to config/shared/apps/lgc/tables/lgc_config.c diff --git a/config/bebop2/sitl/target/apps/mac/CMakeLists.txt b/config/shared/apps/mac/CMakeLists.txt similarity index 100% rename from config/bebop2/sitl/target/apps/mac/CMakeLists.txt rename to config/shared/apps/mac/CMakeLists.txt diff --git a/config/bebop2/sitl/target/apps/mac/tables/mac_param.c b/config/shared/apps/mac/tables/mac_param.c similarity index 94% rename from config/bebop2/sitl/target/apps/mac/tables/mac_param.c rename to config/shared/apps/mac/tables/mac_param.c index cc74d8c31..6c89de3ce 100644 --- a/config/bebop2/sitl/target/apps/mac/tables/mac_param.c +++ b/config/shared/apps/mac/tables/mac_param.c @@ -21,8 +21,8 @@ static OS_USED CFE_TBL_FileDef_t CFE_TBL_FileDef = /* Content format: ObjName[64], TblName[38], Desc[32], TgtFileName[20], ObjSize ** ObjName - variable name of config table, e.g., CI_ConfigDefTbl[] ** TblName - app's table name, e.g., CI.CONFIG_TBL, where CI is the same app name - ** used in cfe_es_startup.scr, and CI_defConfigTbl is the same table - ** name passed in to CFE_TBL_Register() + ** used in cfe_es_startup.scr, and CI_defConfigTbl is the same table + ** name passed in to CFE_TBL_Register() ** Desc - description of table in string format ** TgtFileName[20] - table file name, compiled as .tbl file extension ** ObjSize - size of the entire table diff --git a/config/bebop2/sitl/target/apps/mpc/CMakeLists.txt b/config/shared/apps/mpc/CMakeLists.txt similarity index 100% rename from config/bebop2/sitl/target/apps/mpc/CMakeLists.txt rename to config/shared/apps/mpc/CMakeLists.txt diff --git a/config/bebop2/sitl/target/apps/mpc/tables/mpc_config.c b/config/shared/apps/mpc/tables/mpc_config.c similarity index 100% rename from config/bebop2/sitl/target/apps/mpc/tables/mpc_config.c rename to config/shared/apps/mpc/tables/mpc_config.c diff --git a/config/bebop2/sitl/target/apps/mpu6050/CMakeLists.txt b/config/shared/apps/mpu6050/CMakeLists.txt similarity index 100% rename from config/bebop2/sitl/target/apps/mpu6050/CMakeLists.txt rename to config/shared/apps/mpu6050/CMakeLists.txt diff --git a/config/bebop2/sitl/target/apps/mpu6050/src/CMakeLists.txt b/config/shared/apps/mpu6050/src/CMakeLists.txt similarity index 100% rename from config/bebop2/sitl/target/apps/mpu6050/src/CMakeLists.txt rename to config/shared/apps/mpu6050/src/CMakeLists.txt diff --git a/config/bebop2/sitl/target/apps/mpu6050/src/mpu6050_custom.cpp b/config/shared/apps/mpu6050/src/mpu6050_custom.cpp similarity index 100% rename from config/bebop2/sitl/target/apps/mpu6050/src/mpu6050_custom.cpp rename to config/shared/apps/mpu6050/src/mpu6050_custom.cpp diff --git a/config/bebop2/sitl/target/apps/mpu6050/src/mpu6050_spi.h b/config/shared/apps/mpu6050/src/mpu6050_spi.h similarity index 100% rename from config/bebop2/sitl/target/apps/mpu6050/src/mpu6050_spi.h rename to config/shared/apps/mpu6050/src/mpu6050_spi.h diff --git a/config/bebop2/sitl/target/apps/mpu6050/tables/mpu6050_config.c b/config/shared/apps/mpu6050/tables/mpu6050_config.c similarity index 100% rename from config/bebop2/sitl/target/apps/mpu6050/tables/mpu6050_config.c rename to config/shared/apps/mpu6050/tables/mpu6050_config.c diff --git a/config/ocpoc/quadx/target/apps/mpu9250/CMakeLists.txt b/config/shared/apps/mpu9250/CMakeLists.txt similarity index 100% rename from config/ocpoc/quadx/target/apps/mpu9250/CMakeLists.txt rename to config/shared/apps/mpu9250/CMakeLists.txt diff --git a/config/ocpoc/quadx/target/apps/mpu9250/src/CMakeLists.txt b/config/shared/apps/mpu9250/src/CMakeLists.txt similarity index 100% rename from config/ocpoc/quadx/target/apps/mpu9250/src/CMakeLists.txt rename to config/shared/apps/mpu9250/src/CMakeLists.txt diff --git a/config/ocpoc/quadx/target/apps/mpu9250/src/mpu9250_custom.c b/config/shared/apps/mpu9250/src/mpu9250_custom.c similarity index 100% rename from config/ocpoc/quadx/target/apps/mpu9250/src/mpu9250_custom.c rename to config/shared/apps/mpu9250/src/mpu9250_custom.c diff --git a/config/ocpoc/quadx/target/apps/mpu9250/src/mpu9250_spi.h b/config/shared/apps/mpu9250/src/mpu9250_spi.h similarity index 100% rename from config/ocpoc/quadx/target/apps/mpu9250/src/mpu9250_spi.h rename to config/shared/apps/mpu9250/src/mpu9250_spi.h diff --git a/config/ocpoc/s1000/target/apps/mpu9250/tables/mpu9250_config.c b/config/shared/apps/mpu9250/tables/mpu9250_config.c similarity index 100% rename from config/ocpoc/s1000/target/apps/mpu9250/tables/mpu9250_config.c rename to config/shared/apps/mpu9250/tables/mpu9250_config.c diff --git a/config/ocpoc/quadx/target/apps/mpu9250/tables/mpu9250_config_default.c b/config/shared/apps/mpu9250/tables/mpu9250_config_default.c similarity index 100% rename from config/ocpoc/quadx/target/apps/mpu9250/tables/mpu9250_config_default.c rename to config/shared/apps/mpu9250/tables/mpu9250_config_default.c diff --git a/config/ocpoc/s1000/target/apps/mpu9250/tables/mpu9250_config_main_vehicle.c b/config/shared/apps/mpu9250/tables/mpu9250_config_main_vehicle.c similarity index 100% rename from config/ocpoc/s1000/target/apps/mpu9250/tables/mpu9250_config_main_vehicle.c rename to config/shared/apps/mpu9250/tables/mpu9250_config_main_vehicle.c diff --git a/config/bebop2/sitl/target/apps/ms5607/CMakeLists.txt b/config/shared/apps/ms5607/CMakeLists.txt similarity index 100% rename from config/bebop2/sitl/target/apps/ms5607/CMakeLists.txt rename to config/shared/apps/ms5607/CMakeLists.txt diff --git a/config/bebop2/sitl/target/apps/ms5607/src/CMakeLists.txt b/config/shared/apps/ms5607/src/CMakeLists.txt similarity index 100% rename from config/bebop2/sitl/target/apps/ms5607/src/CMakeLists.txt rename to config/shared/apps/ms5607/src/CMakeLists.txt diff --git a/config/bebop2/sitl/target/apps/ms5607/src/ms5607_custom.cpp b/config/shared/apps/ms5607/src/ms5607_custom.cpp similarity index 100% rename from config/bebop2/sitl/target/apps/ms5607/src/ms5607_custom.cpp rename to config/shared/apps/ms5607/src/ms5607_custom.cpp diff --git a/config/bebop2/sitl/target/apps/ms5607/tables/ms5607_config.c b/config/shared/apps/ms5607/tables/ms5607_config.c similarity index 100% rename from config/bebop2/sitl/target/apps/ms5607/tables/ms5607_config.c rename to config/shared/apps/ms5607/tables/ms5607_config.c diff --git a/config/ocpoc/quadx/target/apps/ms5611/CMakeLists.txt b/config/shared/apps/ms5611/CMakeLists.txt similarity index 100% rename from config/ocpoc/quadx/target/apps/ms5611/CMakeLists.txt rename to config/shared/apps/ms5611/CMakeLists.txt diff --git a/config/ocpoc/quadx/target/apps/ms5611/src/CMakeLists.txt b/config/shared/apps/ms5611/src/CMakeLists.txt similarity index 100% rename from config/ocpoc/quadx/target/apps/ms5611/src/CMakeLists.txt rename to config/shared/apps/ms5611/src/CMakeLists.txt diff --git a/config/ocpoc/quadx/target/apps/ms5611/src/ms5611_custom.c b/config/shared/apps/ms5611/src/ms5611_custom.c similarity index 100% rename from config/ocpoc/quadx/target/apps/ms5611/src/ms5611_custom.c rename to config/shared/apps/ms5611/src/ms5611_custom.c diff --git a/config/ocpoc/quadx/target/apps/ms5611/src/ms5611_spi.h b/config/shared/apps/ms5611/src/ms5611_spi.h similarity index 100% rename from config/ocpoc/quadx/target/apps/ms5611/src/ms5611_spi.h rename to config/shared/apps/ms5611/src/ms5611_spi.h diff --git a/config/ocpoc/quadx/target/apps/ms5611/tables/ms5611_config.c b/config/shared/apps/ms5611/tables/ms5611_config.c similarity index 100% rename from config/ocpoc/quadx/target/apps/ms5611/tables/ms5611_config.c rename to config/shared/apps/ms5611/tables/ms5611_config.c diff --git a/config/ocpoc/quadx/target/apps/nav/CMakeLists.txt b/config/shared/apps/nav/CMakeLists.txt similarity index 100% rename from config/ocpoc/quadx/target/apps/nav/CMakeLists.txt rename to config/shared/apps/nav/CMakeLists.txt diff --git a/config/bebop2/sitl/target/apps/nav/tables/nav_config.c b/config/shared/apps/nav/tables/nav_config.c similarity index 100% rename from config/bebop2/sitl/target/apps/nav/tables/nav_config.c rename to config/shared/apps/nav/tables/nav_config.c diff --git a/config/bebop2/sitl/target/apps/pe/CMakeLists.txt b/config/shared/apps/pe/CMakeLists.txt similarity index 100% rename from config/bebop2/sitl/target/apps/pe/CMakeLists.txt rename to config/shared/apps/pe/CMakeLists.txt diff --git a/config/bebop2/sitl/target/apps/pe/tables/pe_config.c b/config/shared/apps/pe/tables/pe_config.c similarity index 100% rename from config/bebop2/sitl/target/apps/pe/tables/pe_config.c rename to config/shared/apps/pe/tables/pe_config.c diff --git a/config/bebop2/sitl/target/apps/prm/CMakeLists.txt b/config/shared/apps/prm/CMakeLists.txt similarity index 100% rename from config/bebop2/sitl/target/apps/prm/CMakeLists.txt rename to config/shared/apps/prm/CMakeLists.txt diff --git a/config/bebop2/sitl/target/apps/prm/tables/prm_config.c b/config/shared/apps/prm/tables/prm_config.c similarity index 100% rename from config/bebop2/sitl/target/apps/prm/tables/prm_config.c rename to config/shared/apps/prm/tables/prm_config.c diff --git a/config/bebop2/sitl/target/apps/qae/CMakeLists.txt b/config/shared/apps/qae/CMakeLists.txt similarity index 100% rename from config/bebop2/sitl/target/apps/qae/CMakeLists.txt rename to config/shared/apps/qae/CMakeLists.txt diff --git a/config/bebop2/sitl/target/apps/qae/tables/qae_config.c b/config/shared/apps/qae/tables/qae_config.c similarity index 100% rename from config/bebop2/sitl/target/apps/qae/tables/qae_config.c rename to config/shared/apps/qae/tables/qae_config.c diff --git a/config/ocpoc/quadx/target/apps/rcin/CMakeLists.txt b/config/shared/apps/rcin/CMakeLists.txt similarity index 100% rename from config/ocpoc/quadx/target/apps/rcin/CMakeLists.txt rename to config/shared/apps/rcin/CMakeLists.txt diff --git a/config/ocpoc/quadx/target/apps/rcin/src/CMakeLists.txt b/config/shared/apps/rcin/src/CMakeLists.txt similarity index 100% rename from config/ocpoc/quadx/target/apps/rcin/src/CMakeLists.txt rename to config/shared/apps/rcin/src/CMakeLists.txt diff --git a/config/bebop2/sitl/target/apps/rcin/src/rcin_custom.c b/config/shared/apps/rcin/src/rcin_custom.c similarity index 100% rename from config/bebop2/sitl/target/apps/rcin/src/rcin_custom.c rename to config/shared/apps/rcin/src/rcin_custom.c diff --git a/config/bebop2/sitl/target/apps/rcin/src/rcin_sbus.h b/config/shared/apps/rcin/src/rcin_sbus.h similarity index 100% rename from config/bebop2/sitl/target/apps/rcin/src/rcin_sbus.h rename to config/shared/apps/rcin/src/rcin_sbus.h diff --git a/config/ocpoc/quadx/target/apps/rgbled/CMakeLists.txt b/config/shared/apps/rgbled/CMakeLists.txt similarity index 100% rename from config/ocpoc/quadx/target/apps/rgbled/CMakeLists.txt rename to config/shared/apps/rgbled/CMakeLists.txt diff --git a/config/ocpoc/quadx/target/apps/rgbled/src/CMakeLists.txt b/config/shared/apps/rgbled/src/CMakeLists.txt similarity index 100% rename from config/ocpoc/quadx/target/apps/rgbled/src/CMakeLists.txt rename to config/shared/apps/rgbled/src/CMakeLists.txt diff --git a/config/bebop2/sitl/target/apps/rgbled/src/rgbled_custom.c b/config/shared/apps/rgbled/src/rgbled_custom.c similarity index 100% rename from config/bebop2/sitl/target/apps/rgbled/src/rgbled_custom.c rename to config/shared/apps/rgbled/src/rgbled_custom.c diff --git a/config/bebop2/sitl/target/apps/rgbled/src/rgbled_driver.h b/config/shared/apps/rgbled/src/rgbled_driver.h similarity index 100% rename from config/bebop2/sitl/target/apps/rgbled/src/rgbled_driver.h rename to config/shared/apps/rgbled/src/rgbled_driver.h diff --git a/config/bebop2/sitl/target/apps/sch/CMakeLists.txt b/config/shared/apps/sch/CMakeLists.txt similarity index 100% rename from config/bebop2/sitl/target/apps/sch/CMakeLists.txt rename to config/shared/apps/sch/CMakeLists.txt diff --git a/config/bebop2/sitl/target/apps/sch/sch_custom_ftrt.c b/config/shared/apps/sch/sch_custom_ftrt.c similarity index 100% rename from config/bebop2/sitl/target/apps/sch/sch_custom_ftrt.c rename to config/shared/apps/sch/sch_custom_ftrt.c diff --git a/config/ocpoc/quadx/target/apps/sch/sch_custom_rt.c b/config/shared/apps/sch/sch_custom_rt.c similarity index 100% rename from config/ocpoc/quadx/target/apps/sch/sch_custom_rt.c rename to config/shared/apps/sch/sch_custom_rt.c diff --git a/config/bebop2/sitl/target/apps/sch/tables/sch_def_msgtbl.c b/config/shared/apps/sch/tables/sch_def_msgtbl.c similarity index 100% rename from config/bebop2/sitl/target/apps/sch/tables/sch_def_msgtbl.c rename to config/shared/apps/sch/tables/sch_def_msgtbl.c diff --git a/config/bebop2/sitl/target/apps/sch/tables/sch_def_schtbl.c b/config/shared/apps/sch/tables/sch_def_schtbl.c similarity index 99% rename from config/bebop2/sitl/target/apps/sch/tables/sch_def_schtbl.c rename to config/shared/apps/sch/tables/sch_def_schtbl.c index b1703c616..5562c87f9 100644 --- a/config/bebop2/sitl/target/apps/sch/tables/sch_def_schtbl.c +++ b/config/shared/apps/sch/tables/sch_def_schtbl.c @@ -17,90 +17,6 @@ extern "C" { #include "sch_grpids.h" -/* - * Rate Groups - * - -QAE_SEND_HK_MIDX 1Hz, 0 -QAE_WAKEUP_MIDX 250Hz, 0 -AMC_SEND_HK_MIDX 1Hz, 5 -AMC_UPDATE_MOTORS_MIDX 250Hz, 0 -BAT_SEND_HK_MIDX 1Hz, 10 -BAT_WAKEUP_MIDX 10Hz, (15,40,65,90,115,140,165,190,215,240) -CFE_ES_SEND_HK_MIDX 1Hz, 20 -CFE_EVS_SEND_HK_MIDX 1Hz, 25 -CFE_SB_SEND_HK_MIDX 1Hz, 30 -CFE_TIME_SEND_HK_MIDX 1Hz, 35 -CFE_TBL_SEND_HK_MIDX 1Hz, 40 -CFE_TIME_FAKE_CMD_MIDX ---, --- -CFE_TIME_TONE_CMD_MIDX ---, --- -CFE_TIME_1HZ_CMD_MIDX ---, --- -CF_SEND_HK_MIDX 1Hz, 60 -CF_WAKE_UP_REQ_CMD_MIDX 1Hz, 65 -CI_SEND_HK_MIDX 1Hz, 70 -CI_1HZ_PROC_TIMEOUTS_MIDX 1Hz, 74 -CS_BACKGROUND_CYCLE_MIDX ---, --- -CS_SEND_HK_MIDX 1Hz, 75 -DS_SEND_HK_MIDX 1Hz, 80 -EA_SEND_HK_MIDX 1Hz, 85 -EA_PERFMON_MIDX 1Hz, 90 -EA_SEND_HK_MIDX 1Hz, 95 -EA_WAKEUP_MIDX 1Hz, 100 -GPS_READ_SENSOR_MIDX 1Hz, 105 -GPS_SEND_HK_MIDX 1Hz, 110 -HK_SEND_COMBINED_PKT1_MIDX ---, --- -HK_SEND_COMBINED_PKT2_MIDX ---, --- -HK_SEND_COMBINED_PKT3_MIDX ---, --- -HK_SEND_COMBINED_PKT4_MIDX ---, --- -HK_SEND_COMBINED_PKT5_MIDX ---, --- -HK_SEND_COMBINED_PKT6_MIDX ---, --- -HK_SEND_COMBINED_PKT7_MIDX ---, --- -HK_SEND_COMBINED_PKT8_MIDX ---, --- -HK_SEND_COMBINED_PKT9_MIDX ---, --- -HK_SEND_COMBINED_PKT10_MIDX ---, --- -HK_SEND_HK_MIDX 1Hz, 115 -AK8963_SEND_HK_MIDX 1Hz, 120 -AK8963_WAKEUP_MIDX 250Hz, 0 -HS_SEND_HK_MIDX 1Hz, 125 -HS_WAKEUP_MIDX 1Hz, 130 -FM_SEND_HK_MIDX 1Hz, 135 -LC_SEND_HK_MIDX 1Hz, 140 -LD_SEND_HK_MIDX 1Hz, 145 -LD_WAKEUP_MIDX 250Hz, 0 -MD_SEND_HK_MIDX 1Hz, 150 -MD_WAKEUP_MIDX 1Hz, 155 -MM_SEND_HK_MIDX 1Hz, 160 -MAC_SEND_HK_MIDX 1Hz, 165 -MAC_RUN_CONTROLLER_MIDX 250Hz, 0 -MPC_SEND_HK_MIDX 1Hz, 170 -MPC_WAKEUP_MIDX 250Hz, 0 -MPU6050_SEND_HK_MIDX 1Hz, 175 -MPU6050_MEASURE_MIDX 250Hz, 0 -MS5607_SEND_HK_MIDX 1Hz, 180 -MS5607_WAKEUP_MIDX 250Hz, 0 -NAV_SEND_HK_MIDX 1Hz, 185 -NAV_WAKEUP_MIDX 10Hz, (17,42,67,92,117,142,167,192,217,242) -PE_SEND_HK_MIDX 1Hz, 190 -PE_WAKEUP_MIDX 250Hz, 0 -RCIN_WAKEUP_MIDX 50Hz, 205 -RCIN_SEND_HK_MIDX 1Hz, 210 -RGBLED_SEND_HK_MIDX 1Hz, 215 -RGBLED_WAKEUP_MIDX 1Hz, 220 -SC_1HZ_WAKEUP_MIDX 1Hz, 225 -SC_SEND_HK_MIDX 1Hz, 230 -SCH_SEND_HK_MIDX 1Hz, 235 -SENS_WAKEUP_MIDX 250Hz, 0 -TO_SEND_TLM_MIDX 10Hz, (6,31,56,81,106,131,156,181,206,231) -TO_SEND_HK_MIDX 1Hz, 240 -ULR_MEASURE_MIDX 250Hz, 0 -ULR_SEND_HK_MIDX 1Hz, 245 -VC_SEND_HK_MIDX 1Hz, 7 -VC_PROCESS_CMDS_MIDX 1Hz, 12 -FLOW_WAKEUP_MIDX 10Hz, (2,27,52,77,102,127,152,177,202,227) -FLOW_SEND_HK_MIDX 1Hz, 53 - -*/ - /* ** Local Defines diff --git a/config/ocpoc/s1000/target/apps/sch/unit_test/sch_custom_test.c b/config/shared/apps/sch/unit_test/sch_custom_test.c similarity index 99% rename from config/ocpoc/s1000/target/apps/sch/unit_test/sch_custom_test.c rename to config/shared/apps/sch/unit_test/sch_custom_test.c index 3d6b0eef3..2896fee51 100644 --- a/config/ocpoc/s1000/target/apps/sch/unit_test/sch_custom_test.c +++ b/config/shared/apps/sch/unit_test/sch_custom_test.c @@ -27,6 +27,11 @@ #include #include #include +#include "ut_cfe_evs_hooks.h" +#include "ut_cfe_evs_stubs.h" +#include "ut_cfe_time_stubs.h" + +SCH_AppData_t SCH_AppData; /* * Function Definitions diff --git a/config/ocpoc/quadx/target/apps/sch/unit_test/sch_custom_test.h b/config/shared/apps/sch/unit_test/sch_custom_test.h similarity index 100% rename from config/ocpoc/quadx/target/apps/sch/unit_test/sch_custom_test.h rename to config/shared/apps/sch/unit_test/sch_custom_test.h diff --git a/config/shared/apps/sch/unit_test/sch_test_utils.c b/config/shared/apps/sch/unit_test/sch_test_utils.c new file mode 100644 index 000000000..91e5a1f64 --- /dev/null +++ b/config/shared/apps/sch/unit_test/sch_test_utils.c @@ -0,0 +1,181 @@ + /************************************************************************* + ** File: + ** $Id: sch_test_utils.c 1.2 2017/06/21 15:28:59EDT mdeschu Exp $ + ** + ** Purpose: + ** This file contains unit test utilities for the sch application. + ** + ** References: + ** Flight Software Branch C Coding Standard Version 1.2 + ** CFS Development Standards Document + ** Notes: + ** + *************************************************************************/ + +#include "sch_test_utils.h" +#include "sch_tbldefs.h" +#include "ut_cfe_evs_stubs.h" +#include "ut_cfe_time_stubs.h" + +SCH_MessageEntry_t MessageTable[SCH_MAX_MESSAGES]; +SCH_ScheduleEntry_t ScheduleTable[SCH_TABLE_ENTRIES]; + +/* + * Function Definitions + */ + +void SCH_Test_Setup(void) +{ + /* initialize test environment to default state for every test */ + + CFE_PSP_MemSet(&SCH_AppData, 0, sizeof(SCH_AppData_t)); + + SCH_AppData.MessageTable = &MessageTable[0]; + SCH_AppData.ScheduleTable = &ScheduleTable[0]; + + CFE_PSP_MemSet(SCH_AppData.MessageTable, 0, sizeof(SCH_MessageEntry_t)*SCH_MAX_MESSAGES); + CFE_PSP_MemSet(SCH_AppData.ScheduleTable, 0, sizeof(SCH_ScheduleEntry_t)*SCH_TABLE_ENTRIES); + + Ut_CFE_EVS_Reset(); + Ut_CFE_FS_Reset(); + Ut_CFE_TIME_Reset(); + Ut_CFE_TBL_Reset(); + Ut_CFE_SB_Reset(); + Ut_CFE_ES_Reset(); + Ut_OSAPI_Reset(); + Ut_OSFILEAPI_Reset(); + Ut_OSTIMER_Reset(); +} /* end SCH_Test_Setup */ + +void SCH_Test_TearDown(void) +{ + /* cleanup test environment */ +} /* end SCH_Test_TearDown */ + +/* ut_ostimer_stubs */ + +Ut_OSTIMER_HookTable_t Ut_OSTIMER_HookTable; +Ut_OSTIMER_ReturnCodeTable_t Ut_OSTIMER_ReturnCodeTable[UT_OSTIMER_MAX_INDEX]; + +void Ut_OSTIMER_Reset(void) +{ + memset(&Ut_OSTIMER_HookTable, 0, sizeof(Ut_OSTIMER_HookTable)); + memset(&Ut_OSTIMER_ReturnCodeTable, 0, sizeof(Ut_OSTIMER_ReturnCodeTable)); +} + +void Ut_OSTIMER_SetFunctionHook(uint32 Index, void *FunPtr) +{ + if (Index == UT_OSTIMER_CREATE_INDEX) { Ut_OSTIMER_HookTable.OS_TimerCreate = FunPtr; } + else if (Index == UT_OSTIMER_SET_INDEX) { Ut_OSTIMER_HookTable.OS_TimerSet = FunPtr; } + else + { + printf("Unsupported OSTIMER Index In SetFunctionHook Call %lu", Index); + UtAssert_True(FALSE, "Unsupported OSTIMER Index In SetFunctionHook Call"); + } +} + +void Ut_OSTIMER_SetReturnCode(uint32 Index, int32 RtnVal, uint32 CallCnt) +{ + if (Index < UT_OSTIMER_MAX_INDEX) + { + Ut_OSTIMER_ReturnCodeTable[Index].Value = RtnVal; + Ut_OSTIMER_ReturnCodeTable[Index].Count = CallCnt; + } + else + { + printf("Unsupported OSTIMER Index In SetReturnCode Call %lu\n", Index); + UtAssert_True(FALSE, "Unsupported OSTIMER Index In SetReturnCode Call"); + } +} + +boolean Ut_OSTIMER_UseReturnCode(uint32 Index) +{ + if (Ut_OSTIMER_ReturnCodeTable[Index].Count > 0) + { + Ut_OSTIMER_ReturnCodeTable[Index].Count--; + if (Ut_OSTIMER_ReturnCodeTable[Index].Count == 0) + return(TRUE); + } + else if (Ut_OSTIMER_ReturnCodeTable[Index].ContinueReturnCodeAfterCountZero == TRUE) + { + return(TRUE); + } + + return(FALSE); +} + +void Ut_OSTIMER_ContinueReturnCodeAfterCountZero(uint32 Index) +{ + Ut_OSTIMER_ReturnCodeTable[Index].ContinueReturnCodeAfterCountZero = TRUE; +} + +int32 OS_TimerCreate(uint32 *timer_id, const char *timer_name, uint32 *clock_accuracy, OS_TimerCallback_t callback_ptr) +{ + /* Check for specified return */ + if (Ut_OSTIMER_UseReturnCode(UT_OSTIMER_CREATE_INDEX)) + return Ut_OSTIMER_ReturnCodeTable[UT_OSTIMER_CREATE_INDEX].Value; + + /* Check for Function Hook */ + if (Ut_OSTIMER_HookTable.OS_TimerCreate) + return(Ut_OSTIMER_HookTable.OS_TimerCreate(timer_id, timer_name, clock_accuracy, callback_ptr)); + + return CFE_SUCCESS; +} + +int32 OS_TimerSet(uint32 timer_id, uint32 start_time, uint32 interval_time) +{ + /* Check for specified return */ + if (Ut_OSTIMER_UseReturnCode(UT_OSTIMER_SET_INDEX)) + return Ut_OSTIMER_ReturnCodeTable[UT_OSTIMER_SET_INDEX].Value; + + /* Check for Function Hook */ + if (Ut_OSTIMER_HookTable.OS_TimerSet) + return(Ut_OSTIMER_HookTable.OS_TimerSet(timer_id, start_time, interval_time)); + + return CFE_SUCCESS; +} + +/* end ut_ostimer_stubs */ + + + +void OS_RtmEndFrame(void) +{ + //if(OS_RUNTIME_MODE == 1) + //{ + //OS_RtmData.State = OS_RTM_STATE_NONREALTIME_HOLD; + //pthread_cond_broadcast(&OS_RtmData.CV); + //} + //else + //{ + //OS_RtmData.CurrentFrameCount++; + //OS_RtmData.CurrentMinorFrame = OS_RtmData.CurrentFrameCount % OS_RtmData.MinorFramesPerMajorFrame; + //} +} + +OS_RunTimeModeEnum_t OS_RtmGetRunMode(void) +{ + return OS_RUNTIME_MODE_REALTIME; +} + +void OS_RtmSetMajorAndMinorFrame(uint32 MajorFrameLength, uint32 MinorFramesPerMajorFrame) +{ + +} + +uint32 OS_RtmGetCurrentMinorFrame(void) +{ + return 0; + //MINOR_FRAME; +} + + +int32 OS_RtmEngageStepMode(void) +{ + return 0; +} + + +/************************/ +/* End of File Comment */ +/************************/ diff --git a/config/shared/apps/sch/unit_test/sch_test_utils.h b/config/shared/apps/sch/unit_test/sch_test_utils.h new file mode 100644 index 000000000..05e173d71 --- /dev/null +++ b/config/shared/apps/sch/unit_test/sch_test_utils.h @@ -0,0 +1,87 @@ + /************************************************************************* + ** File: + ** $Id: sch_test_utils.h 1.2 2017/06/21 15:28:58EDT mdeschu Exp $ + ** + ** Purpose: + ** This file contains the function prototypes and global variables for the unit test utilities for the SCH application. + ** + ** References: + ** Flight Software Branch C Coding Standard Version 1.2 + ** CFS Development Standards Document + ** Notes: + ** + *************************************************************************/ + +#ifndef SCH_TEST_UTILS_H +#define SCH_TEST_UTILS_H + +/* + * Includes + */ + +#include "sch_app.h" +#include "ut_cfe_evs_hooks.h" +// FIXME: these need to be implemented/updated in UT-Assert (by copying from sch_test_utils.c/.h): +//#include "ut_cfe_evs_stubs.h" +//#include "ut_cfe_time_stubs.h" +//#include "ut_ostimer_stubs.h" +#include "ut_cfe_sb_stubs.h" +#include "ut_cfe_sb_hooks.h" +#include "ut_cfe_time_hooks.h" +#include "ut_cfe_psp_memutils_stubs.h" +#include "ut_cfe_tbl_stubs.h" +#include "ut_cfe_tbl_hooks.h" +#include "ut_cfe_fs_stubs.h" +#include "ut_osapi_stubs.h" +#include "ut_osfileapi_stubs.h" +#include "ut_cfe_es_stubs.h" +#include + +/* + * Function Definitions + */ + +void SCH_Test_Setup(void); +void SCH_Test_TearDown(void); + +/* + * Additional UT-Assert Stub Functions and Required Data Structures + * + * Note: This code needs to be moved into the UT-Assert library. We are including it here for now because the + * next release of the UT-Assert library is not expected to happen in the near future. + */ + +/* ut_ostimer_stubs */ + +typedef enum +{ + UT_OSTIMER_CREATE_INDEX, + UT_OSTIMER_SET_INDEX, + UT_OSTIMER_MAX_INDEX +} Ut_OSTIMER_INDEX_t; + +typedef struct +{ + int32 (*OS_TimerCreate)(uint32 *timer_id, const char *timer_name, uint32 *clock_accuracy, OS_TimerCallback_t callback_ptr); + int32 (*OS_TimerSet)(uint32 timer_id, uint32 start_time, uint32 interval_time); +} Ut_OSTIMER_HookTable_t; + +typedef struct +{ + int32 Value; + uint32 Count; + boolean ContinueReturnCodeAfterCountZero; +} Ut_OSTIMER_ReturnCodeTable_t; + +void Ut_OSTIMER_Reset(void); +void Ut_OSTIMER_SetFunctionHook(uint32 Index, void *FunPtr); +void Ut_OSTIMER_SetReturnCode(uint32 Index, int32 RtnVal, uint32 CallCnt); +void Ut_OSTIMER_ContinueReturnCodeAfterCountZero(uint32 Index); + +/* end ut_ostimer_stubs */ + +#endif + +/************************/ +/* End of File Comment */ +/************************/ diff --git a/config/ocpoc/quadx/target/apps/sch/unit_test/sch_testrunner.c b/config/shared/apps/sch/unit_test/sch_testrunner.c similarity index 100% rename from config/ocpoc/quadx/target/apps/sch/unit_test/sch_testrunner.c rename to config/shared/apps/sch/unit_test/sch_testrunner.c diff --git a/config/ocpoc/quadx/target/apps/sens/CMakeLists.txt b/config/shared/apps/sens/CMakeLists.txt similarity index 100% rename from config/ocpoc/quadx/target/apps/sens/CMakeLists.txt rename to config/shared/apps/sens/CMakeLists.txt diff --git a/config/bebop2/sitl/target/apps/sens/tables/sens_config.c b/config/shared/apps/sens/tables/sens_config.c similarity index 100% rename from config/bebop2/sitl/target/apps/sens/tables/sens_config.c rename to config/shared/apps/sens/tables/sens_config.c diff --git a/config/bebop2/sitl/target/apps/sim/CMakeLists.txt b/config/shared/apps/sim/CMakeLists.txt similarity index 100% rename from config/bebop2/sitl/target/apps/sim/CMakeLists.txt rename to config/shared/apps/sim/CMakeLists.txt diff --git a/config/bebop2/sitl/target/apps/sim/src/CMakeLists.txt b/config/shared/apps/sim/src/CMakeLists.txt similarity index 100% rename from config/bebop2/sitl/target/apps/sim/src/CMakeLists.txt rename to config/shared/apps/sim/src/CMakeLists.txt diff --git a/config/bebop2/sitl/target/apps/sim/src/sim_custom.c b/config/shared/apps/sim/src/sim_custom.c similarity index 100% rename from config/bebop2/sitl/target/apps/sim/src/sim_custom.c rename to config/shared/apps/sim/src/sim_custom.c diff --git a/config/bebop2/sitl/target/apps/sim/tables/sim_config.c b/config/shared/apps/sim/tables/sim_config.c similarity index 100% rename from config/bebop2/sitl/target/apps/sim/tables/sim_config.c rename to config/shared/apps/sim/tables/sim_config.c diff --git a/config/ocpoc/quadx/target/apps/to/CMakeLists.txt b/config/shared/apps/to/CMakeLists.txt similarity index 100% rename from config/ocpoc/quadx/target/apps/to/CMakeLists.txt rename to config/shared/apps/to/CMakeLists.txt diff --git a/config/ocpoc/quadx/target/apps/to/tables/to_backup_cfg.c b/config/shared/apps/to/tables/to_backup_cfg.c similarity index 100% rename from config/ocpoc/quadx/target/apps/to/tables/to_backup_cfg.c rename to config/shared/apps/to/tables/to_backup_cfg.c diff --git a/config/ocpoc/quadx/target/apps/to/tables/to_udp_cfg.c b/config/shared/apps/to/tables/to_udp_cfg.c similarity index 100% rename from config/ocpoc/quadx/target/apps/to/tables/to_udp_cfg.c rename to config/shared/apps/to/tables/to_udp_cfg.c diff --git a/config/ocpoc/quadx/target/apps/to/to_custom.c b/config/shared/apps/to/to_custom.c similarity index 100% rename from config/ocpoc/quadx/target/apps/to/to_custom.c rename to config/shared/apps/to/to_custom.c diff --git a/config/ocpoc/quadx/target/apps/to/to_custom_udp.h b/config/shared/apps/to/to_custom_udp.h similarity index 100% rename from config/ocpoc/quadx/target/apps/to/to_custom_udp.h rename to config/shared/apps/to/to_custom_udp.h diff --git a/config/ocpoc/quadx/target/apps/to/unit_test/to_app_custom_test.c b/config/shared/apps/to/unit_test/to_app_custom_test.c similarity index 100% rename from config/ocpoc/quadx/target/apps/to/unit_test/to_app_custom_test.c rename to config/shared/apps/to/unit_test/to_app_custom_test.c diff --git a/config/ocpoc/quadx/target/apps/to/unit_test/to_app_custom_test.h b/config/shared/apps/to/unit_test/to_app_custom_test.h similarity index 100% rename from config/ocpoc/quadx/target/apps/to/unit_test/to_app_custom_test.h rename to config/shared/apps/to/unit_test/to_app_custom_test.h diff --git a/config/ocpoc/quadx/target/apps/to/unit_test/to_app_stubs.c b/config/shared/apps/to/unit_test/to_app_stubs.c similarity index 100% rename from config/ocpoc/quadx/target/apps/to/unit_test/to_app_stubs.c rename to config/shared/apps/to/unit_test/to_app_stubs.c diff --git a/config/ocpoc/quadx/target/apps/to/unit_test/to_app_stubs.h b/config/shared/apps/to/unit_test/to_app_stubs.h similarity index 100% rename from config/ocpoc/quadx/target/apps/to/unit_test/to_app_stubs.h rename to config/shared/apps/to/unit_test/to_app_stubs.h diff --git a/config/ocpoc/quadx/target/apps/to/unit_test/to_custom_test_utils.c b/config/shared/apps/to/unit_test/to_custom_test_utils.c similarity index 100% rename from config/ocpoc/quadx/target/apps/to/unit_test/to_custom_test_utils.c rename to config/shared/apps/to/unit_test/to_custom_test_utils.c diff --git a/config/ocpoc/quadx/target/apps/to/unit_test/to_custom_test_utils.h b/config/shared/apps/to/unit_test/to_custom_test_utils.h similarity index 100% rename from config/ocpoc/quadx/target/apps/to/unit_test/to_custom_test_utils.h rename to config/shared/apps/to/unit_test/to_custom_test_utils.h diff --git a/config/ocpoc/quadx/target/apps/to/unit_test/to_custom_testrunner.c b/config/shared/apps/to/unit_test/to_custom_testrunner.c similarity index 100% rename from config/ocpoc/quadx/target/apps/to/unit_test/to_custom_testrunner.c rename to config/shared/apps/to/unit_test/to_custom_testrunner.c diff --git a/config/ocpoc/quadx/target/apps/to/unit_test/to_platform_stubs.c b/config/shared/apps/to/unit_test/to_platform_stubs.c similarity index 100% rename from config/ocpoc/quadx/target/apps/to/unit_test/to_platform_stubs.c rename to config/shared/apps/to/unit_test/to_platform_stubs.c diff --git a/config/ocpoc/quadx/target/apps/to/unit_test/to_platform_stubs.h b/config/shared/apps/to/unit_test/to_platform_stubs.h similarity index 100% rename from config/ocpoc/quadx/target/apps/to/unit_test/to_platform_stubs.h rename to config/shared/apps/to/unit_test/to_platform_stubs.h diff --git a/config/ocpoc/quadx/target/apps/to/user_doxy.in b/config/shared/apps/to/user_doxy.in similarity index 100% rename from config/ocpoc/quadx/target/apps/to/user_doxy.in rename to config/shared/apps/to/user_doxy.in diff --git a/config/ocpoc/quadx/target/apps/ulr/CMakeLists.txt b/config/shared/apps/ulr/CMakeLists.txt similarity index 100% rename from config/ocpoc/quadx/target/apps/ulr/CMakeLists.txt rename to config/shared/apps/ulr/CMakeLists.txt diff --git a/config/ocpoc/quadx/target/apps/ulr/tables/ulr_config.c b/config/shared/apps/ulr/tables/ulr_config.c similarity index 100% rename from config/ocpoc/quadx/target/apps/ulr/tables/ulr_config.c rename to config/shared/apps/ulr/tables/ulr_config.c diff --git a/config/bebop2/sitl/target/apps/ulr/ulr_custom.cpp b/config/shared/apps/ulr/ulr_custom.cpp similarity index 100% rename from config/bebop2/sitl/target/apps/ulr/ulr_custom.cpp rename to config/shared/apps/ulr/ulr_custom.cpp diff --git a/config/bebop2/sitl/target/apps/vc/CMakeLists.txt b/config/shared/apps/vc/CMakeLists.txt similarity index 100% rename from config/bebop2/sitl/target/apps/vc/CMakeLists.txt rename to config/shared/apps/vc/CMakeLists.txt diff --git a/config/bebop2/sitl/target/apps/vc/src/CMakeLists.txt b/config/shared/apps/vc/src/CMakeLists.txt similarity index 100% rename from config/bebop2/sitl/target/apps/vc/src/CMakeLists.txt rename to config/shared/apps/vc/src/CMakeLists.txt diff --git a/config/bebop2/sitl/target/apps/vc/src/vc_custom.c b/config/shared/apps/vc/src/vc_custom.c similarity index 100% rename from config/bebop2/sitl/target/apps/vc/src/vc_custom.c rename to config/shared/apps/vc/src/vc_custom.c diff --git a/config/bebop2/sitl/target/apps/vc/src/vc_custom_shared.h b/config/shared/apps/vc/src/vc_custom_shared.h similarity index 100% rename from config/bebop2/sitl/target/apps/vc/src/vc_custom_shared.h rename to config/shared/apps/vc/src/vc_custom_shared.h diff --git a/config/bebop2/sitl/target/apps/vc/src/vc_dev_io_udp/vc_dev_io_udp.c b/config/shared/apps/vc/src/vc_dev_io_udp/vc_dev_io_udp.c similarity index 100% rename from config/bebop2/sitl/target/apps/vc/src/vc_dev_io_udp/vc_dev_io_udp.c rename to config/shared/apps/vc/src/vc_dev_io_udp/vc_dev_io_udp.c diff --git a/config/bebop2/sitl/target/apps/vc/src/vc_dev_io_udp/vc_dev_io_udp.h b/config/shared/apps/vc/src/vc_dev_io_udp/vc_dev_io_udp.h similarity index 100% rename from config/bebop2/sitl/target/apps/vc/src/vc_dev_io_udp/vc_dev_io_udp.h rename to config/shared/apps/vc/src/vc_dev_io_udp/vc_dev_io_udp.h diff --git a/config/bebop2/sitl/target/apps/vc/src/vc_dev_io_v4l/vc_dev_io_v4l.c b/config/shared/apps/vc/src/vc_dev_io_v4l/vc_dev_io_v4l.c similarity index 100% rename from config/bebop2/sitl/target/apps/vc/src/vc_dev_io_v4l/vc_dev_io_v4l.c rename to config/shared/apps/vc/src/vc_dev_io_v4l/vc_dev_io_v4l.c diff --git a/config/bebop2/sitl/target/apps/vc/src/vc_dev_io_v4l/vc_dev_io_v4l.h b/config/shared/apps/vc/src/vc_dev_io_v4l/vc_dev_io_v4l.h similarity index 100% rename from config/bebop2/sitl/target/apps/vc/src/vc_dev_io_v4l/vc_dev_io_v4l.h rename to config/shared/apps/vc/src/vc_dev_io_v4l/vc_dev_io_v4l.h diff --git a/config/bebop2/sitl/target/apps/vc/src/vc_transmit_udp/vc_transmit_udp.c b/config/shared/apps/vc/src/vc_transmit_udp/vc_transmit_udp.c similarity index 100% rename from config/bebop2/sitl/target/apps/vc/src/vc_transmit_udp/vc_transmit_udp.c rename to config/shared/apps/vc/src/vc_transmit_udp/vc_transmit_udp.c diff --git a/config/bebop2/sitl/target/apps/vc/src/vc_transmit_udp/vc_transmit_udp.h b/config/shared/apps/vc/src/vc_transmit_udp/vc_transmit_udp.h similarity index 100% rename from config/bebop2/sitl/target/apps/vc/src/vc_transmit_udp/vc_transmit_udp.h rename to config/shared/apps/vc/src/vc_transmit_udp/vc_transmit_udp.h diff --git a/config/bebop2/sitl/target/apps/vc/unit_test/vc_app_stubs/vc_app_stubs.c b/config/shared/apps/vc/unit_test/vc_app_stubs/vc_app_stubs.c similarity index 100% rename from config/bebop2/sitl/target/apps/vc/unit_test/vc_app_stubs/vc_app_stubs.c rename to config/shared/apps/vc/unit_test/vc_app_stubs/vc_app_stubs.c diff --git a/config/bebop2/sitl/target/apps/vc/unit_test/vc_app_stubs/vc_app_stubs.h b/config/shared/apps/vc/unit_test/vc_app_stubs/vc_app_stubs.h similarity index 100% rename from config/bebop2/sitl/target/apps/vc/unit_test/vc_app_stubs/vc_app_stubs.h rename to config/shared/apps/vc/unit_test/vc_app_stubs/vc_app_stubs.h diff --git a/config/bebop2/sitl/target/apps/vc/unit_test/vc_custom_shared_test/vc_app_custom_shared_test.c b/config/shared/apps/vc/unit_test/vc_custom_shared_test/vc_app_custom_shared_test.c similarity index 100% rename from config/bebop2/sitl/target/apps/vc/unit_test/vc_custom_shared_test/vc_app_custom_shared_test.c rename to config/shared/apps/vc/unit_test/vc_custom_shared_test/vc_app_custom_shared_test.c diff --git a/config/bebop2/sitl/target/apps/vc/unit_test/vc_custom_shared_test/vc_app_custom_shared_test.h b/config/shared/apps/vc/unit_test/vc_custom_shared_test/vc_app_custom_shared_test.h similarity index 100% rename from config/bebop2/sitl/target/apps/vc/unit_test/vc_custom_shared_test/vc_app_custom_shared_test.h rename to config/shared/apps/vc/unit_test/vc_custom_shared_test/vc_app_custom_shared_test.h diff --git a/config/bebop2/sitl/target/apps/vc/unit_test/vc_custom_shared_test/vc_custom_shared_test_utils.c b/config/shared/apps/vc/unit_test/vc_custom_shared_test/vc_custom_shared_test_utils.c similarity index 100% rename from config/bebop2/sitl/target/apps/vc/unit_test/vc_custom_shared_test/vc_custom_shared_test_utils.c rename to config/shared/apps/vc/unit_test/vc_custom_shared_test/vc_custom_shared_test_utils.c diff --git a/config/bebop2/sitl/target/apps/vc/unit_test/vc_custom_shared_test/vc_custom_shared_test_utils.h b/config/shared/apps/vc/unit_test/vc_custom_shared_test/vc_custom_shared_test_utils.h similarity index 100% rename from config/bebop2/sitl/target/apps/vc/unit_test/vc_custom_shared_test/vc_custom_shared_test_utils.h rename to config/shared/apps/vc/unit_test/vc_custom_shared_test/vc_custom_shared_test_utils.h diff --git a/config/bebop2/sitl/target/apps/vc/unit_test/vc_custom_testrunner.c b/config/shared/apps/vc/unit_test/vc_custom_testrunner.c similarity index 100% rename from config/bebop2/sitl/target/apps/vc/unit_test/vc_custom_testrunner.c rename to config/shared/apps/vc/unit_test/vc_custom_testrunner.c diff --git a/config/bebop2/sitl/target/apps/vc/unit_test/vc_dev_io_udp_test/vc_app_custom_device_test.c b/config/shared/apps/vc/unit_test/vc_dev_io_udp_test/vc_app_custom_device_test.c similarity index 100% rename from config/bebop2/sitl/target/apps/vc/unit_test/vc_dev_io_udp_test/vc_app_custom_device_test.c rename to config/shared/apps/vc/unit_test/vc_dev_io_udp_test/vc_app_custom_device_test.c diff --git a/config/bebop2/sitl/target/apps/vc/unit_test/vc_dev_io_udp_test/vc_app_custom_device_test.h b/config/shared/apps/vc/unit_test/vc_dev_io_udp_test/vc_app_custom_device_test.h similarity index 100% rename from config/bebop2/sitl/target/apps/vc/unit_test/vc_dev_io_udp_test/vc_app_custom_device_test.h rename to config/shared/apps/vc/unit_test/vc_dev_io_udp_test/vc_app_custom_device_test.h diff --git a/config/bebop2/sitl/target/apps/vc/unit_test/vc_dev_io_udp_test/vc_custom_device_test_utils.c b/config/shared/apps/vc/unit_test/vc_dev_io_udp_test/vc_custom_device_test_utils.c similarity index 100% rename from config/bebop2/sitl/target/apps/vc/unit_test/vc_dev_io_udp_test/vc_custom_device_test_utils.c rename to config/shared/apps/vc/unit_test/vc_dev_io_udp_test/vc_custom_device_test_utils.c diff --git a/config/bebop2/sitl/target/apps/vc/unit_test/vc_dev_io_udp_test/vc_custom_device_test_utils.h b/config/shared/apps/vc/unit_test/vc_dev_io_udp_test/vc_custom_device_test_utils.h similarity index 100% rename from config/bebop2/sitl/target/apps/vc/unit_test/vc_dev_io_udp_test/vc_custom_device_test_utils.h rename to config/shared/apps/vc/unit_test/vc_dev_io_udp_test/vc_custom_device_test_utils.h diff --git a/config/bebop2/sitl/target/apps/vc/unit_test/vc_dev_io_v4l_test/vc_app_custom_device_test.c b/config/shared/apps/vc/unit_test/vc_dev_io_v4l_test/vc_app_custom_device_test.c similarity index 100% rename from config/bebop2/sitl/target/apps/vc/unit_test/vc_dev_io_v4l_test/vc_app_custom_device_test.c rename to config/shared/apps/vc/unit_test/vc_dev_io_v4l_test/vc_app_custom_device_test.c diff --git a/config/bebop2/sitl/target/apps/vc/unit_test/vc_dev_io_v4l_test/vc_app_custom_device_test.h b/config/shared/apps/vc/unit_test/vc_dev_io_v4l_test/vc_app_custom_device_test.h similarity index 100% rename from config/bebop2/sitl/target/apps/vc/unit_test/vc_dev_io_v4l_test/vc_app_custom_device_test.h rename to config/shared/apps/vc/unit_test/vc_dev_io_v4l_test/vc_app_custom_device_test.h diff --git a/config/bebop2/sitl/target/apps/vc/unit_test/vc_dev_io_v4l_test/vc_custom_device_test_utils.c b/config/shared/apps/vc/unit_test/vc_dev_io_v4l_test/vc_custom_device_test_utils.c similarity index 100% rename from config/bebop2/sitl/target/apps/vc/unit_test/vc_dev_io_v4l_test/vc_custom_device_test_utils.c rename to config/shared/apps/vc/unit_test/vc_dev_io_v4l_test/vc_custom_device_test_utils.c diff --git a/config/bebop2/sitl/target/apps/vc/unit_test/vc_dev_io_v4l_test/vc_custom_device_test_utils.h b/config/shared/apps/vc/unit_test/vc_dev_io_v4l_test/vc_custom_device_test_utils.h similarity index 100% rename from config/bebop2/sitl/target/apps/vc/unit_test/vc_dev_io_v4l_test/vc_custom_device_test_utils.h rename to config/shared/apps/vc/unit_test/vc_dev_io_v4l_test/vc_custom_device_test_utils.h diff --git a/config/bebop2/sitl/target/apps/vc/unit_test/vc_platform_stubs/vc_platform_stubs.c b/config/shared/apps/vc/unit_test/vc_platform_stubs/vc_platform_stubs.c similarity index 100% rename from config/bebop2/sitl/target/apps/vc/unit_test/vc_platform_stubs/vc_platform_stubs.c rename to config/shared/apps/vc/unit_test/vc_platform_stubs/vc_platform_stubs.c diff --git a/config/bebop2/sitl/target/apps/vc/unit_test/vc_platform_stubs/vc_platform_stubs.h b/config/shared/apps/vc/unit_test/vc_platform_stubs/vc_platform_stubs.h similarity index 100% rename from config/bebop2/sitl/target/apps/vc/unit_test/vc_platform_stubs/vc_platform_stubs.h rename to config/shared/apps/vc/unit_test/vc_platform_stubs/vc_platform_stubs.h diff --git a/config/bebop2/sitl/target/apps/vc/unit_test/vc_transmit_udp_test/vc_app_custom_transmit_test.c b/config/shared/apps/vc/unit_test/vc_transmit_udp_test/vc_app_custom_transmit_test.c similarity index 100% rename from config/bebop2/sitl/target/apps/vc/unit_test/vc_transmit_udp_test/vc_app_custom_transmit_test.c rename to config/shared/apps/vc/unit_test/vc_transmit_udp_test/vc_app_custom_transmit_test.c diff --git a/config/bebop2/sitl/target/apps/vc/unit_test/vc_transmit_udp_test/vc_app_custom_transmit_test.h b/config/shared/apps/vc/unit_test/vc_transmit_udp_test/vc_app_custom_transmit_test.h similarity index 100% rename from config/bebop2/sitl/target/apps/vc/unit_test/vc_transmit_udp_test/vc_app_custom_transmit_test.h rename to config/shared/apps/vc/unit_test/vc_transmit_udp_test/vc_app_custom_transmit_test.h diff --git a/config/bebop2/sitl/target/apps/vc/unit_test/vc_transmit_udp_test/vc_custom_transmit_test_utils.c b/config/shared/apps/vc/unit_test/vc_transmit_udp_test/vc_custom_transmit_test_utils.c similarity index 100% rename from config/bebop2/sitl/target/apps/vc/unit_test/vc_transmit_udp_test/vc_custom_transmit_test_utils.c rename to config/shared/apps/vc/unit_test/vc_transmit_udp_test/vc_custom_transmit_test_utils.c diff --git a/config/bebop2/sitl/target/apps/vc/unit_test/vc_transmit_udp_test/vc_custom_transmit_test_utils.h b/config/shared/apps/vc/unit_test/vc_transmit_udp_test/vc_custom_transmit_test_utils.h similarity index 100% rename from config/bebop2/sitl/target/apps/vc/unit_test/vc_transmit_udp_test/vc_custom_transmit_test_utils.h rename to config/shared/apps/vc/unit_test/vc_transmit_udp_test/vc_custom_transmit_test_utils.h diff --git a/config/ocpoc/quadx/target/apps/vm/CMakeLists.txt b/config/shared/apps/vm/CMakeLists.txt similarity index 100% rename from config/ocpoc/quadx/target/apps/vm/CMakeLists.txt rename to config/shared/apps/vm/CMakeLists.txt diff --git a/config/ocpoc/quadx/target/apps/vm/tables/vm_config.c b/config/shared/apps/vm/tables/vm_config.c similarity index 100% rename from config/ocpoc/quadx/target/apps/vm/tables/vm_config.c rename to config/shared/apps/vm/tables/vm_config.c diff --git a/config/shared/inc/amc_platform_cfg.h b/config/shared/inc/amc_platform_cfg.h index b3099326d..e72128569 100644 --- a/config/shared/inc/amc_platform_cfg.h +++ b/config/shared/inc/amc_platform_cfg.h @@ -112,7 +112,7 @@ extern "C" { #define AMC_STARTUP_TIMEOUT_MSEC (1000) /* TODO: Add Doxygen markup. */ -#define AMC_MAX_MOTOR_OUTPUTS (4) +#define AMC_MAX_MOTOR_OUTPUTS (8) #define AMC_MAX_PARAMS (3) diff --git a/config/shared/inc/ea_platform_cfg.h b/config/shared/inc/ea_platform_cfg.h index 0a91376f9..b3034d0c1 100644 --- a/config/shared/inc/ea_platform_cfg.h +++ b/config/shared/inc/ea_platform_cfg.h @@ -127,7 +127,7 @@ extern "C" { */ #define EA_CHILD_TASK_PRIORITY (187) #define EA_APP_UTIL_THRESHOLD (70) -#define EA_APP_NUM_THREADS (4) +#define EA_APP_NUM_THREADS (2) #define EA_MAX_PATH_LEN (96) diff --git a/config/shared/inc/hmc5883_platform_cfg.h b/config/shared/inc/hmc5883_platform_cfg.h index e78bf465b..0a27fcb81 100644 --- a/config/shared/inc/hmc5883_platform_cfg.h +++ b/config/shared/inc/hmc5883_platform_cfg.h @@ -110,13 +110,16 @@ extern "C" { #define HMC5883_STARTUP_TIMEOUT_MSEC (1000) /** \brief Mag divider for calculated scaling */ -#define HMC5883_MAG_DIVIDER (1090.0f) +#define HMC5883_MAG_DIVIDER (820.0f) -/** \brief Mag divider for calculated scaling */ -#define HMC5883_MAG_UNIT (1.0f) +/** \brief Mag unit for calculated scaling */ +#define HMC5883_MAG_UNIT (1.0f) /** \brief Precalculated mag range */ -#define HMC5883_CALC_MAG_RANGE (1.3f) +#define HMC5883_CALC_MAG_RANGE (1.9f) + +/** \brief Precalculated mag scaling */ +#define HMC5883_CALC_MAG_SCALING (HMC5883_MAG_UNIT / HMC5883_MAG_DIVIDER) #ifdef __cplusplus diff --git a/config/shared/inc/ms5611_platform_cfg.h b/config/shared/inc/ms5611_platform_cfg.h index 3363e14e3..4042ed560 100644 --- a/config/shared/inc/ms5611_platform_cfg.h +++ b/config/shared/inc/ms5611_platform_cfg.h @@ -107,7 +107,15 @@ extern "C" { ** \par Limits: ** This parameter must be at least 1000 (ms). */ -#define MS5611_STARTUP_TIMEOUT_MSEC (1000) +#define MS5611_STARTUP_TIMEOUT_MSEC (1000) + +/** \brief The MS5611 device path. +** +** \par Limits: +** The length of each string, including the NULL terminator cannot exceed +** the #OS_MAX_PATH_LEN value. +*/ +#define MS5611_DEVICE_PATH ("/dev/spidev1.1") /** \brief The ratio pressure per temperature measurements ** diff --git a/config/shared/inc/osconfig.h b/config/shared/inc/osconfig.h index b5fe3f36d..35287ee0b 100644 --- a/config/shared/inc/osconfig.h +++ b/config/shared/inc/osconfig.h @@ -101,7 +101,7 @@ ** This define sets the queue implentation of the Linux port to use sockets ** commenting this out makes the Linux port use the POSIX message queues. */ -#define OSAL_SOCKET_QUEUE */ +/* #define OSAL_SOCKET_QUEUE */ /* ** Module loader/symbol table is optional diff --git a/config/shared/inc/rcin_platform_cfg.h b/config/shared/inc/rcin_platform_cfg.h index 2b3264963..ad8609e68 100644 --- a/config/shared/inc/rcin_platform_cfg.h +++ b/config/shared/inc/rcin_platform_cfg.h @@ -5,6 +5,8 @@ extern "C" { #endif +#define RCIN_STREAMING_TASK_FLAGS OS_ENABLE_CORE_0 + /* ** RCIN Platform Configuration Parameter Definitions */ diff --git a/config/shared/inc/vc_platform_cfg.h b/config/shared/inc/vc_platform_cfg.h index 994ae68d2..367a73da0 100644 --- a/config/shared/inc/vc_platform_cfg.h +++ b/config/shared/inc/vc_platform_cfg.h @@ -120,7 +120,7 @@ extern "C" { ** \par Limits: ** Minimum of 1. */ -#define VC_MAX_DEVICES (2) +#define VC_MAX_DEVICES (1) /** \brief Max buffer size ** @@ -128,7 +128,7 @@ extern "C" { ** Minimum based on configured device driver requirements. */ //#define VC_MAX_BUFFER_SIZE (115200) -#define VC_MAX_BUFFER_SIZE (28800) +#define VC_MAX_BUFFER_SIZE (1228800) /** \brief Max packet size ** From f5cc7abcb7486bacf5bb19d4da6198d43cb848e2 Mon Sep 17 00:00:00 2001 From: Mathew Benson Date: Fri, 29 Jan 2021 22:04:26 -0600 Subject: [PATCH 003/370] Started configuring CPD and PPD --- config/obc/cpd/target/CMakeLists.txt | 7 - config/obc/cpd/target/apps/ds/CMakeLists.txt | 16 - .../cpd/target/apps/ds/tables/ds_file_tbl.c | 292 -- .../cpd/target/apps/ds/tables/ds_filter_tbl.c | 3145 ----------------- config/obc/cpd/target/apps/ea/CMakeLists.txt | 55 - .../obc/cpd/target/apps/ea/ea-custom-ut.supp | 27 - .../obc/cpd/target/apps/ea/ea-perfmon-ut.supp | 0 config/obc/cpd/target/apps/ea/src/ea_custom.c | 249 -- .../apps/ea/unit_test/ea-custom-ut.supp | 32 - .../target/apps/ea/unit_test/ea_custom_test.c | 200 -- .../target/apps/ea/unit_test/ea_custom_test.h | 49 - .../apps/ea/unit_test/ea_mock_os_calls.c | 62 - .../apps/ea/unit_test/ea_mock_os_calls.h | 57 - .../apps/ea/unit_test/ea_perfmon_test.c | 192 - .../apps/ea/unit_test/ea_perfmon_test.h | 49 - .../apps/ea/unit_test/ea_perfmon_testrunner.c | 46 - .../target/apps/ea/unit_test/ea_test_utils.c | 73 - .../target/apps/ea/unit_test/ea_test_utils.h | 62 - .../target/apps/ea/unit_test/ea_testrunner.c | 44 - .../obc/cpd/target/apps/ea/unit_test/fib.py | 14 - .../obc/cpd/target/apps/ea/unit_test/noop.py | 3 - .../obc/cpd/target/apps/ea/unit_test/sleep.py | 6 - .../obc/cpd/target/apps/flow/CMakeLists.txt | 8 - .../cpd/target/apps/flow/tables/flow_config.c | 80 - config/obc/cpd/target/apps/vc/CMakeLists.txt | 72 - .../obc/cpd/target/apps/vc/src/CMakeLists.txt | 8 - config/obc/cpd/target/apps/vc/src/vc_custom.c | 246 -- .../cpd/target/apps/vc/src/vc_custom_shared.h | 160 - .../apps/vc/src/vc_dev_io_udp/vc_dev_io_udp.c | 424 --- .../apps/vc/src/vc_dev_io_udp/vc_dev_io_udp.h | 167 - .../apps/vc/src/vc_dev_io_v4l/vc_dev_io_v4l.c | 858 ----- .../apps/vc/src/vc_dev_io_v4l/vc_dev_io_v4l.h | 252 -- .../vc/src/vc_transmit_udp/vc_transmit_udp.c | 431 --- .../vc/src/vc_transmit_udp/vc_transmit_udp.h | 145 - .../vc_app_custom_stubs/vc_app_custom_stubs.c | 50 - .../vc_app_custom_stubs/vc_app_custom_stubs.h | 48 - .../vc/unit_test/vc_app_stubs/vc_app_stubs.c | 62 - .../vc/unit_test/vc_app_stubs/vc_app_stubs.h | 50 - .../vc_app_custom_shared_test.c | 589 --- .../vc_app_custom_shared_test.h | 48 - .../vc_custom_shared_test_utils.c | 79 - .../vc_custom_shared_test_utils.h | 61 - .../apps/vc/unit_test/vc_custom_testrunner.c | 66 - .../vc_app_custom_device_test.c | 722 ---- .../vc_app_custom_device_test.h | 48 - .../vc_custom_device_test_utils.c | 76 - .../vc_custom_device_test_utils.h | 61 - .../vc_app_custom_device_test.c | 1944 ---------- .../vc_app_custom_device_test.h | 48 - .../vc_custom_device_test_utils.c | 76 - .../vc_custom_device_test_utils.h | 61 - .../vc_platform_stubs/vc_platform_stubs.c | 270 -- .../vc_platform_stubs/vc_platform_stubs.h | 84 - .../vc_app_custom_transmit_test.c | 626 ---- .../vc_app_custom_transmit_test.h | 48 - .../vc_custom_transmit_test_utils.c | 76 - .../vc_custom_transmit_test_utils.h | 61 - config/obc/cpd/target/cfe_es_startup.scr | 4 - config/obc/ppd/target/CMakeLists.txt | 143 - config/obc/ppd/target/apps/amc/CMakeLists.txt | 13 - config/obc/ppd/target/apps/amc/amc_custom.cpp | 150 - .../ppd/target/apps/amc/tables/amc_mixercfg.c | 82 - .../ppd/target/apps/amc/tables/amc_pwmcfg.c | 65 - config/obc/ppd/target/apps/bat/CMakeLists.txt | 9 - config/obc/ppd/target/apps/bat/bat_custom.cpp | 66 - .../ppd/target/apps/bat/tables/bat_config.c | 73 - .../obc/ppd/target/apps/flow/CMakeLists.txt | 8 - .../ppd/target/apps/flow/tables/flow_config.c | 80 - config/obc/ppd/target/apps/gps/CMakeLists.txt | 7 - .../ppd/target/apps/gps/src/CMakeLists.txt | 5 - .../obc/ppd/target/apps/gps/src/gps_custom.c | 217 -- .../target/apps/gps/src/gps_custom_shared.h | 235 -- .../gps/src/gps_interface_uart/gps_serial.c | 1272 ------- .../gps/src/gps_interface_uart/gps_serial.h | 658 ---- .../src/gps_parser_ubx/gps_parser_ubx_ack.c | 200 -- .../src/gps_parser_ubx/gps_parser_ubx_ack.h | 99 - .../src/gps_parser_ubx/gps_parser_ubx_cfg.c | 912 ----- .../src/gps_parser_ubx/gps_parser_ubx_cfg.h | 103 - .../gps_parser_ubx/gps_parser_ubx_common.c | 1608 --------- .../gps_parser_ubx/gps_parser_ubx_common.h | 307 -- .../src/gps_parser_ubx/gps_parser_ubx_mon.c | 477 --- .../src/gps_parser_ubx/gps_parser_ubx_mon.h | 108 - .../src/gps_parser_ubx/gps_parser_ubx_nav.c | 2494 ------------- .../src/gps_parser_ubx/gps_parser_ubx_nav.h | 121 - .../apps/gps/src/gps_parser_ubx/gps_ubx_msg.h | 534 --- .../ppd/target/apps/gps/tables/gps_config.c | 63 - .../ppd/target/apps/hmc5883/CMakeLists.txt | 7 - .../target/apps/hmc5883/src/CMakeLists.txt | 5 - .../target/apps/hmc5883/src/hmc5883_custom.c | 543 --- .../ppd/target/apps/hmc5883/src/hmc5883_i2c.h | 337 -- .../apps/hmc5883/tables/hmc5883_config.c | 75 - .../hmc5883/tables/hmc5883_config_default.c | 75 - .../tables/hmc5883_config_main_vehicle.c | 75 - config/obc/ppd/target/apps/ld/CMakeLists.txt | 9 - .../obc/ppd/target/apps/ld/tables/ld_config.c | 151 - config/obc/ppd/target/apps/lgc/CMakeLists.txt | 7 - config/obc/ppd/target/apps/lgc/lgc_custom.cpp | 147 - .../ppd/target/apps/lgc/tables/lgc_config.c | 65 - config/obc/ppd/target/apps/mac/CMakeLists.txt | 9 - .../ppd/target/apps/mac/tables/mac_param.c | 102 - config/obc/ppd/target/apps/mpc/CMakeLists.txt | 9 - .../ppd/target/apps/mpc/tables/mpc_config.c | 710 ---- .../ppd/target/apps/mpu9250/CMakeLists.txt | 7 - .../target/apps/mpu9250/src/CMakeLists.txt | 5 - .../target/apps/mpu9250/src/mpu9250_custom.c | 1134 ------ .../ppd/target/apps/mpu9250/src/mpu9250_spi.h | 421 --- .../apps/mpu9250/tables/mpu9250_config.c | 93 - .../mpu9250/tables/mpu9250_config_default.c | 93 - .../tables/mpu9250_config_main_vehicle.c | 93 - .../obc/ppd/target/apps/ms5611/CMakeLists.txt | 40 - .../ppd/target/apps/ms5611/src/CMakeLists.txt | 37 - .../target/apps/ms5611/src/ms5611_custom.c | 467 --- .../ppd/target/apps/ms5611/src/ms5611_spi.h | 201 -- .../target/apps/ms5611/tables/ms5611_config.c | 64 - config/obc/ppd/target/apps/nav/CMakeLists.txt | 9 - .../ppd/target/apps/nav/tables/nav_config.c | 138 - config/obc/ppd/target/apps/pe/CMakeLists.txt | 9 - .../obc/ppd/target/apps/pe/tables/pe_config.c | 171 - config/obc/ppd/target/apps/qae/CMakeLists.txt | 9 - .../ppd/target/apps/qae/tables/qae_config.c | 104 - .../obc/ppd/target/apps/rcin/CMakeLists.txt | 1 - .../ppd/target/apps/rcin/src/CMakeLists.txt | 5 - .../ppd/target/apps/rcin/src/rcin_custom.c | 868 ----- .../obc/ppd/target/apps/rcin/src/rcin_sbus.h | 400 --- .../obc/ppd/target/apps/rgbled/CMakeLists.txt | 2 - .../ppd/target/apps/rgbled/src/CMakeLists.txt | 5 - .../target/apps/rgbled/src/rgbled_custom.c | 561 --- .../target/apps/rgbled/src/rgbled_driver.h | 363 -- .../obc/ppd/target/apps/sens/CMakeLists.txt | 7 - .../ppd/target/apps/sens/tables/sens_config.c | 222 -- config/obc/ppd/target/apps/ulr/CMakeLists.txt | 7 - .../ppd/target/apps/ulr/tables/ulr_config.c | 63 - config/obc/ppd/target/apps/ulr/ulr_custom.cpp | 139 - config/obc/ppd/target/apps/vc/CMakeLists.txt | 72 - .../obc/ppd/target/apps/vc/src/CMakeLists.txt | 8 - config/obc/ppd/target/apps/vc/src/vc_custom.c | 246 -- .../ppd/target/apps/vc/src/vc_custom_shared.h | 160 - .../apps/vc/src/vc_dev_io_udp/vc_dev_io_udp.c | 424 --- .../apps/vc/src/vc_dev_io_udp/vc_dev_io_udp.h | 167 - .../apps/vc/src/vc_dev_io_v4l/vc_dev_io_v4l.c | 858 ----- .../apps/vc/src/vc_dev_io_v4l/vc_dev_io_v4l.h | 252 -- .../vc/src/vc_transmit_udp/vc_transmit_udp.c | 432 --- .../vc/src/vc_transmit_udp/vc_transmit_udp.h | 145 - .../vc_app_custom_stubs/vc_app_custom_stubs.c | 50 - .../vc_app_custom_stubs/vc_app_custom_stubs.h | 48 - .../vc/unit_test/vc_app_stubs/vc_app_stubs.c | 62 - .../vc/unit_test/vc_app_stubs/vc_app_stubs.h | 50 - .../vc_app_custom_shared_test.c | 589 --- .../vc_app_custom_shared_test.h | 48 - .../vc_custom_shared_test_utils.c | 79 - .../vc_custom_shared_test_utils.h | 61 - .../apps/vc/unit_test/vc_custom_testrunner.c | 66 - .../vc_app_custom_device_test.c | 722 ---- .../vc_app_custom_device_test.h | 48 - .../vc_custom_device_test_utils.c | 76 - .../vc_custom_device_test_utils.h | 61 - .../vc_app_custom_device_test.c | 1944 ---------- .../vc_app_custom_device_test.h | 48 - .../vc_custom_device_test_utils.c | 76 - .../vc_custom_device_test_utils.h | 61 - .../vc_platform_stubs/vc_platform_stubs.c | 270 -- .../vc_platform_stubs/vc_platform_stubs.h | 84 - .../vc_app_custom_transmit_test.c | 626 ---- .../vc_app_custom_transmit_test.h | 48 - .../vc_custom_transmit_test_utils.c | 76 - .../vc_custom_transmit_test_utils.h | 61 - config/obc/ppd/target/apps/vm/CMakeLists.txt | 9 - .../obc/ppd/target/apps/vm/tables/vm_config.c | 32 - config/obc/ppd/target/cfe_es_startup.scr | 20 - 169 files changed, 39041 deletions(-) delete mode 100644 config/obc/cpd/target/apps/ds/CMakeLists.txt delete mode 100644 config/obc/cpd/target/apps/ds/tables/ds_file_tbl.c delete mode 100644 config/obc/cpd/target/apps/ds/tables/ds_filter_tbl.c delete mode 100644 config/obc/cpd/target/apps/ea/CMakeLists.txt delete mode 100644 config/obc/cpd/target/apps/ea/ea-custom-ut.supp delete mode 100644 config/obc/cpd/target/apps/ea/ea-perfmon-ut.supp delete mode 100644 config/obc/cpd/target/apps/ea/src/ea_custom.c delete mode 100644 config/obc/cpd/target/apps/ea/unit_test/ea-custom-ut.supp delete mode 100644 config/obc/cpd/target/apps/ea/unit_test/ea_custom_test.c delete mode 100644 config/obc/cpd/target/apps/ea/unit_test/ea_custom_test.h delete mode 100644 config/obc/cpd/target/apps/ea/unit_test/ea_mock_os_calls.c delete mode 100644 config/obc/cpd/target/apps/ea/unit_test/ea_mock_os_calls.h delete mode 100644 config/obc/cpd/target/apps/ea/unit_test/ea_perfmon_test.c delete mode 100644 config/obc/cpd/target/apps/ea/unit_test/ea_perfmon_test.h delete mode 100644 config/obc/cpd/target/apps/ea/unit_test/ea_perfmon_testrunner.c delete mode 100644 config/obc/cpd/target/apps/ea/unit_test/ea_test_utils.c delete mode 100644 config/obc/cpd/target/apps/ea/unit_test/ea_test_utils.h delete mode 100644 config/obc/cpd/target/apps/ea/unit_test/ea_testrunner.c delete mode 100644 config/obc/cpd/target/apps/ea/unit_test/fib.py delete mode 100644 config/obc/cpd/target/apps/ea/unit_test/noop.py delete mode 100644 config/obc/cpd/target/apps/ea/unit_test/sleep.py delete mode 100644 config/obc/cpd/target/apps/flow/CMakeLists.txt delete mode 100644 config/obc/cpd/target/apps/flow/tables/flow_config.c delete mode 100644 config/obc/cpd/target/apps/vc/CMakeLists.txt delete mode 100644 config/obc/cpd/target/apps/vc/src/CMakeLists.txt delete mode 100644 config/obc/cpd/target/apps/vc/src/vc_custom.c delete mode 100644 config/obc/cpd/target/apps/vc/src/vc_custom_shared.h delete mode 100644 config/obc/cpd/target/apps/vc/src/vc_dev_io_udp/vc_dev_io_udp.c delete mode 100644 config/obc/cpd/target/apps/vc/src/vc_dev_io_udp/vc_dev_io_udp.h delete mode 100644 config/obc/cpd/target/apps/vc/src/vc_dev_io_v4l/vc_dev_io_v4l.c delete mode 100644 config/obc/cpd/target/apps/vc/src/vc_dev_io_v4l/vc_dev_io_v4l.h delete mode 100644 config/obc/cpd/target/apps/vc/src/vc_transmit_udp/vc_transmit_udp.c delete mode 100644 config/obc/cpd/target/apps/vc/src/vc_transmit_udp/vc_transmit_udp.h delete mode 100644 config/obc/cpd/target/apps/vc/unit_test/vc_app_custom_stubs/vc_app_custom_stubs.c delete mode 100644 config/obc/cpd/target/apps/vc/unit_test/vc_app_custom_stubs/vc_app_custom_stubs.h delete mode 100644 config/obc/cpd/target/apps/vc/unit_test/vc_app_stubs/vc_app_stubs.c delete mode 100644 config/obc/cpd/target/apps/vc/unit_test/vc_app_stubs/vc_app_stubs.h delete mode 100644 config/obc/cpd/target/apps/vc/unit_test/vc_custom_shared_test/vc_app_custom_shared_test.c delete mode 100644 config/obc/cpd/target/apps/vc/unit_test/vc_custom_shared_test/vc_app_custom_shared_test.h delete mode 100644 config/obc/cpd/target/apps/vc/unit_test/vc_custom_shared_test/vc_custom_shared_test_utils.c delete mode 100644 config/obc/cpd/target/apps/vc/unit_test/vc_custom_shared_test/vc_custom_shared_test_utils.h delete mode 100644 config/obc/cpd/target/apps/vc/unit_test/vc_custom_testrunner.c delete mode 100644 config/obc/cpd/target/apps/vc/unit_test/vc_dev_io_udp_test/vc_app_custom_device_test.c delete mode 100644 config/obc/cpd/target/apps/vc/unit_test/vc_dev_io_udp_test/vc_app_custom_device_test.h delete mode 100644 config/obc/cpd/target/apps/vc/unit_test/vc_dev_io_udp_test/vc_custom_device_test_utils.c delete mode 100644 config/obc/cpd/target/apps/vc/unit_test/vc_dev_io_udp_test/vc_custom_device_test_utils.h delete mode 100644 config/obc/cpd/target/apps/vc/unit_test/vc_dev_io_v4l_test/vc_app_custom_device_test.c delete mode 100644 config/obc/cpd/target/apps/vc/unit_test/vc_dev_io_v4l_test/vc_app_custom_device_test.h delete mode 100644 config/obc/cpd/target/apps/vc/unit_test/vc_dev_io_v4l_test/vc_custom_device_test_utils.c delete mode 100644 config/obc/cpd/target/apps/vc/unit_test/vc_dev_io_v4l_test/vc_custom_device_test_utils.h delete mode 100644 config/obc/cpd/target/apps/vc/unit_test/vc_platform_stubs/vc_platform_stubs.c delete mode 100644 config/obc/cpd/target/apps/vc/unit_test/vc_platform_stubs/vc_platform_stubs.h delete mode 100644 config/obc/cpd/target/apps/vc/unit_test/vc_transmit_udp_test/vc_app_custom_transmit_test.c delete mode 100644 config/obc/cpd/target/apps/vc/unit_test/vc_transmit_udp_test/vc_app_custom_transmit_test.h delete mode 100644 config/obc/cpd/target/apps/vc/unit_test/vc_transmit_udp_test/vc_custom_transmit_test_utils.c delete mode 100644 config/obc/cpd/target/apps/vc/unit_test/vc_transmit_udp_test/vc_custom_transmit_test_utils.h delete mode 100644 config/obc/ppd/target/apps/amc/CMakeLists.txt delete mode 100644 config/obc/ppd/target/apps/amc/amc_custom.cpp delete mode 100644 config/obc/ppd/target/apps/amc/tables/amc_mixercfg.c delete mode 100644 config/obc/ppd/target/apps/amc/tables/amc_pwmcfg.c delete mode 100644 config/obc/ppd/target/apps/bat/CMakeLists.txt delete mode 100644 config/obc/ppd/target/apps/bat/bat_custom.cpp delete mode 100644 config/obc/ppd/target/apps/bat/tables/bat_config.c delete mode 100644 config/obc/ppd/target/apps/flow/CMakeLists.txt delete mode 100644 config/obc/ppd/target/apps/flow/tables/flow_config.c delete mode 100644 config/obc/ppd/target/apps/gps/CMakeLists.txt delete mode 100644 config/obc/ppd/target/apps/gps/src/CMakeLists.txt delete mode 100644 config/obc/ppd/target/apps/gps/src/gps_custom.c delete mode 100644 config/obc/ppd/target/apps/gps/src/gps_custom_shared.h delete mode 100644 config/obc/ppd/target/apps/gps/src/gps_interface_uart/gps_serial.c delete mode 100644 config/obc/ppd/target/apps/gps/src/gps_interface_uart/gps_serial.h delete mode 100644 config/obc/ppd/target/apps/gps/src/gps_parser_ubx/gps_parser_ubx_ack.c delete mode 100644 config/obc/ppd/target/apps/gps/src/gps_parser_ubx/gps_parser_ubx_ack.h delete mode 100644 config/obc/ppd/target/apps/gps/src/gps_parser_ubx/gps_parser_ubx_cfg.c delete mode 100644 config/obc/ppd/target/apps/gps/src/gps_parser_ubx/gps_parser_ubx_cfg.h delete mode 100644 config/obc/ppd/target/apps/gps/src/gps_parser_ubx/gps_parser_ubx_common.c delete mode 100644 config/obc/ppd/target/apps/gps/src/gps_parser_ubx/gps_parser_ubx_common.h delete mode 100644 config/obc/ppd/target/apps/gps/src/gps_parser_ubx/gps_parser_ubx_mon.c delete mode 100644 config/obc/ppd/target/apps/gps/src/gps_parser_ubx/gps_parser_ubx_mon.h delete mode 100644 config/obc/ppd/target/apps/gps/src/gps_parser_ubx/gps_parser_ubx_nav.c delete mode 100644 config/obc/ppd/target/apps/gps/src/gps_parser_ubx/gps_parser_ubx_nav.h delete mode 100644 config/obc/ppd/target/apps/gps/src/gps_parser_ubx/gps_ubx_msg.h delete mode 100644 config/obc/ppd/target/apps/gps/tables/gps_config.c delete mode 100644 config/obc/ppd/target/apps/hmc5883/CMakeLists.txt delete mode 100644 config/obc/ppd/target/apps/hmc5883/src/CMakeLists.txt delete mode 100644 config/obc/ppd/target/apps/hmc5883/src/hmc5883_custom.c delete mode 100644 config/obc/ppd/target/apps/hmc5883/src/hmc5883_i2c.h delete mode 100644 config/obc/ppd/target/apps/hmc5883/tables/hmc5883_config.c delete mode 100644 config/obc/ppd/target/apps/hmc5883/tables/hmc5883_config_default.c delete mode 100644 config/obc/ppd/target/apps/hmc5883/tables/hmc5883_config_main_vehicle.c delete mode 100644 config/obc/ppd/target/apps/ld/CMakeLists.txt delete mode 100644 config/obc/ppd/target/apps/ld/tables/ld_config.c delete mode 100644 config/obc/ppd/target/apps/lgc/CMakeLists.txt delete mode 100644 config/obc/ppd/target/apps/lgc/lgc_custom.cpp delete mode 100644 config/obc/ppd/target/apps/lgc/tables/lgc_config.c delete mode 100644 config/obc/ppd/target/apps/mac/CMakeLists.txt delete mode 100644 config/obc/ppd/target/apps/mac/tables/mac_param.c delete mode 100644 config/obc/ppd/target/apps/mpc/CMakeLists.txt delete mode 100644 config/obc/ppd/target/apps/mpc/tables/mpc_config.c delete mode 100644 config/obc/ppd/target/apps/mpu9250/CMakeLists.txt delete mode 100644 config/obc/ppd/target/apps/mpu9250/src/CMakeLists.txt delete mode 100644 config/obc/ppd/target/apps/mpu9250/src/mpu9250_custom.c delete mode 100644 config/obc/ppd/target/apps/mpu9250/src/mpu9250_spi.h delete mode 100644 config/obc/ppd/target/apps/mpu9250/tables/mpu9250_config.c delete mode 100644 config/obc/ppd/target/apps/mpu9250/tables/mpu9250_config_default.c delete mode 100644 config/obc/ppd/target/apps/mpu9250/tables/mpu9250_config_main_vehicle.c delete mode 100644 config/obc/ppd/target/apps/ms5611/CMakeLists.txt delete mode 100644 config/obc/ppd/target/apps/ms5611/src/CMakeLists.txt delete mode 100644 config/obc/ppd/target/apps/ms5611/src/ms5611_custom.c delete mode 100644 config/obc/ppd/target/apps/ms5611/src/ms5611_spi.h delete mode 100644 config/obc/ppd/target/apps/ms5611/tables/ms5611_config.c delete mode 100644 config/obc/ppd/target/apps/nav/CMakeLists.txt delete mode 100644 config/obc/ppd/target/apps/nav/tables/nav_config.c delete mode 100644 config/obc/ppd/target/apps/pe/CMakeLists.txt delete mode 100644 config/obc/ppd/target/apps/pe/tables/pe_config.c delete mode 100644 config/obc/ppd/target/apps/qae/CMakeLists.txt delete mode 100644 config/obc/ppd/target/apps/qae/tables/qae_config.c delete mode 100644 config/obc/ppd/target/apps/rcin/CMakeLists.txt delete mode 100644 config/obc/ppd/target/apps/rcin/src/CMakeLists.txt delete mode 100644 config/obc/ppd/target/apps/rcin/src/rcin_custom.c delete mode 100644 config/obc/ppd/target/apps/rcin/src/rcin_sbus.h delete mode 100644 config/obc/ppd/target/apps/rgbled/CMakeLists.txt delete mode 100644 config/obc/ppd/target/apps/rgbled/src/CMakeLists.txt delete mode 100644 config/obc/ppd/target/apps/rgbled/src/rgbled_custom.c delete mode 100644 config/obc/ppd/target/apps/rgbled/src/rgbled_driver.h delete mode 100644 config/obc/ppd/target/apps/sens/CMakeLists.txt delete mode 100644 config/obc/ppd/target/apps/sens/tables/sens_config.c delete mode 100644 config/obc/ppd/target/apps/ulr/CMakeLists.txt delete mode 100644 config/obc/ppd/target/apps/ulr/tables/ulr_config.c delete mode 100644 config/obc/ppd/target/apps/ulr/ulr_custom.cpp delete mode 100644 config/obc/ppd/target/apps/vc/CMakeLists.txt delete mode 100644 config/obc/ppd/target/apps/vc/src/CMakeLists.txt delete mode 100644 config/obc/ppd/target/apps/vc/src/vc_custom.c delete mode 100644 config/obc/ppd/target/apps/vc/src/vc_custom_shared.h delete mode 100644 config/obc/ppd/target/apps/vc/src/vc_dev_io_udp/vc_dev_io_udp.c delete mode 100644 config/obc/ppd/target/apps/vc/src/vc_dev_io_udp/vc_dev_io_udp.h delete mode 100644 config/obc/ppd/target/apps/vc/src/vc_dev_io_v4l/vc_dev_io_v4l.c delete mode 100644 config/obc/ppd/target/apps/vc/src/vc_dev_io_v4l/vc_dev_io_v4l.h delete mode 100644 config/obc/ppd/target/apps/vc/src/vc_transmit_udp/vc_transmit_udp.c delete mode 100644 config/obc/ppd/target/apps/vc/src/vc_transmit_udp/vc_transmit_udp.h delete mode 100644 config/obc/ppd/target/apps/vc/unit_test/vc_app_custom_stubs/vc_app_custom_stubs.c delete mode 100644 config/obc/ppd/target/apps/vc/unit_test/vc_app_custom_stubs/vc_app_custom_stubs.h delete mode 100644 config/obc/ppd/target/apps/vc/unit_test/vc_app_stubs/vc_app_stubs.c delete mode 100644 config/obc/ppd/target/apps/vc/unit_test/vc_app_stubs/vc_app_stubs.h delete mode 100644 config/obc/ppd/target/apps/vc/unit_test/vc_custom_shared_test/vc_app_custom_shared_test.c delete mode 100644 config/obc/ppd/target/apps/vc/unit_test/vc_custom_shared_test/vc_app_custom_shared_test.h delete mode 100644 config/obc/ppd/target/apps/vc/unit_test/vc_custom_shared_test/vc_custom_shared_test_utils.c delete mode 100644 config/obc/ppd/target/apps/vc/unit_test/vc_custom_shared_test/vc_custom_shared_test_utils.h delete mode 100644 config/obc/ppd/target/apps/vc/unit_test/vc_custom_testrunner.c delete mode 100644 config/obc/ppd/target/apps/vc/unit_test/vc_dev_io_udp_test/vc_app_custom_device_test.c delete mode 100644 config/obc/ppd/target/apps/vc/unit_test/vc_dev_io_udp_test/vc_app_custom_device_test.h delete mode 100644 config/obc/ppd/target/apps/vc/unit_test/vc_dev_io_udp_test/vc_custom_device_test_utils.c delete mode 100644 config/obc/ppd/target/apps/vc/unit_test/vc_dev_io_udp_test/vc_custom_device_test_utils.h delete mode 100644 config/obc/ppd/target/apps/vc/unit_test/vc_dev_io_v4l_test/vc_app_custom_device_test.c delete mode 100644 config/obc/ppd/target/apps/vc/unit_test/vc_dev_io_v4l_test/vc_app_custom_device_test.h delete mode 100644 config/obc/ppd/target/apps/vc/unit_test/vc_dev_io_v4l_test/vc_custom_device_test_utils.c delete mode 100644 config/obc/ppd/target/apps/vc/unit_test/vc_dev_io_v4l_test/vc_custom_device_test_utils.h delete mode 100644 config/obc/ppd/target/apps/vc/unit_test/vc_platform_stubs/vc_platform_stubs.c delete mode 100644 config/obc/ppd/target/apps/vc/unit_test/vc_platform_stubs/vc_platform_stubs.h delete mode 100644 config/obc/ppd/target/apps/vc/unit_test/vc_transmit_udp_test/vc_app_custom_transmit_test.c delete mode 100644 config/obc/ppd/target/apps/vc/unit_test/vc_transmit_udp_test/vc_app_custom_transmit_test.h delete mode 100644 config/obc/ppd/target/apps/vc/unit_test/vc_transmit_udp_test/vc_custom_transmit_test_utils.c delete mode 100644 config/obc/ppd/target/apps/vc/unit_test/vc_transmit_udp_test/vc_custom_transmit_test_utils.h delete mode 100644 config/obc/ppd/target/apps/vm/CMakeLists.txt delete mode 100644 config/obc/ppd/target/apps/vm/tables/vm_config.c diff --git a/config/obc/cpd/target/CMakeLists.txt b/config/obc/cpd/target/CMakeLists.txt index 7449d4172..8bc822840 100644 --- a/config/obc/cpd/target/CMakeLists.txt +++ b/config/obc/cpd/target/CMakeLists.txt @@ -66,13 +66,6 @@ buildliner_add_app( CONFIG ${PROJECT_SOURCE_DIR}/config/shared/apps/cs ) -buildliner_add_app( - ds - EMBEDDED - DEFINITION ${PROJECT_SOURCE_DIR}/apps/ds/fsw/for_build - CONFIG ${CMAKE_CURRENT_SOURCE_DIR}/apps/ds -) - buildliner_add_app( fm EMBEDDED diff --git a/config/obc/cpd/target/apps/ds/CMakeLists.txt b/config/obc/cpd/target/apps/ds/CMakeLists.txt deleted file mode 100644 index 6379c18b4..000000000 --- a/config/obc/cpd/target/apps/ds/CMakeLists.txt +++ /dev/null @@ -1,16 +0,0 @@ -set(APP_NAME ds) - -buildliner_add_table( - ${APP_NAME} - NAME ds_file_tbl - SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/tables/ds_file_tbl.c - INCLUDES ${CMAKE_CURRENT_SOURCE_DIR}/src/ -) - -buildliner_add_table( - ${APP_NAME} - NAME ds_filter_tbl - SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/tables/ds_filter_tbl.c - INCLUDES ${CMAKE_CURRENT_SOURCE_DIR}/src/ -) - diff --git a/config/obc/cpd/target/apps/ds/tables/ds_file_tbl.c b/config/obc/cpd/target/apps/ds/tables/ds_file_tbl.c deleted file mode 100644 index 008c69860..000000000 --- a/config/obc/cpd/target/apps/ds/tables/ds_file_tbl.c +++ /dev/null @@ -1,292 +0,0 @@ -#include "cfe.h" -#include "cfe_tbl_filedef.h" -#include "ds_platform_cfg.h" -#include "ds_appdefs.h" -#include "ds_app.h" -#include "ds_msg.h" - - -/* -** Note: It is suggested that missions pre-define their file table -** index numbers in a public header file to be included by -** both the packet filter table source file and the destination -** file table source file. Common definitions may also be used -** when creating ground system database entries that require -** file index numbers for command arguments. -*/ -/* All events */ -#define FILE_ALL_EVENTS 0 -/* All housekeeping packets */ -#define FILE_ALL_APP_HK_PKTS 1 -/* Log all flight application messages */ -#define FILE_FLIGHT_APP_TLM_PKTS 2 -/* Log just default flight application messages */ -#define FILE_FLIGHT_DEFAULT_APP_TLM_PKTS 3 -/* Log just sensor application messages */ -#define FILE_FLIGHT_SENSOR_APP_TLM_PKTS 4 -/* Log all flight messages at a low rate */ -#define FILE_FLIGHT_MIN_APP_TLM_PKTS 5 -/* CFE core applications commands */ -#define FILE_CORE_APP_CMD_PKTS 6 - - -/* -** Sample Destination File Table Data -*/ -DS_DestFileTable_t DS_DestFileTable = -{ - /* .Descriptor = */ "Events", - /* .File = */ - { - /* File Index 00 -- event packets only */ - { -#if (DS_MOVE_FILES == TRUE) - /* .Movename = */ DS_EMPTY_STRING, -#endif - /* .Pathname = */ "/cf/log/", - /* .Basename = */ "events", - /* .Extension = */ ".dat", - - /* .FileNameType = */ DS_BY_COUNT, - /* .EnableState = */ DS_ENABLED, - /* .MaxFileSize = */ (1024 * 1024 * 200), /* 200 M-bytes */ - /* .MaxFileAge = */ (60 * 60 * 2), /* 2 hours */ - /* .SequenceCount = */ 1000, - }, - /* File Index 01 -- application housekeeping packets */ - { -#if (DS_MOVE_FILES == TRUE) - /* .Movename = */ DS_EMPTY_STRING, -#endif - /* .Pathname = */ "/cf/log/", - /* .Basename = */ "hk", - /* .Extension = */ ".hk", - - /* .FileNameType = */ DS_BY_COUNT, - /* .EnableState = */ DS_ENABLED, - /* .MaxFileSize = */ (1024 * 1024 * 200), /* 200 M-bytes */ - /* .MaxFileAge = */ (60 * 60 * 2), /* 2 hours */ - /* .SequenceCount = */ 2000, - }, - /* File Index 02 -- application telemetry packets */ - { -#if (DS_MOVE_FILES == TRUE) - /* .Movename = */ DS_EMPTY_STRING, -#endif - /* .Pathname = */ "/cf/log/", - /* .Basename = */ "flight", - /* .Extension = */ ".tlm", - - /* .FileNameType = */ DS_BY_COUNT, - /* .EnableState = */ DS_ENABLED, - /* .MaxFileSize = */ (1024 * 1024 * 200), /* 200 M-bytes */ - /* .MaxFileAge = */ (60 * 60 * 2), /* 2 hours */ - /* .SequenceCount = */ 3000, - }, - /* File Index 03 -- hardware telemetry packets */ - { -#if (DS_MOVE_FILES == TRUE) - /* .Movename = */ DS_EMPTY_STRING, -#endif - /* .Pathname = */ "/cf/log/", - /* .Basename = */ "default", - /* .Extension = */ ".tlm", - - /* .FileNameType = */ DS_BY_COUNT, - /* .EnableState = */ DS_DISABLED, - /* .MaxFileSize = */ (1024 * 1024 * 200), /* 200 M-bytes */ - /* .MaxFileAge = */ (60 * 60 * 2), /* 2 hours */ - /* .SequenceCount = */ 4000, - }, - /* File Index 04 -- cFE housekeeping packets */ - { -#if (DS_MOVE_FILES == TRUE) - /* .Movename = */ DS_EMPTY_STRING, -#endif - /* .Pathname = */ "/cf/log/", - /* .Basename = */ "sensor", - /* .Extension = */ ".tlm", - - /* .FileNameType = */ DS_BY_COUNT, - /* .EnableState = */ DS_DISABLED, - /* .MaxFileSize = */ (1024 * 1024 * 200), /* 200 M-bytes */ - /* .MaxFileAge = */ (60 * 60 * 2), /* 2 hours */ - /* .SequenceCount = */ 5000, - }, - /* File Index 05 -- cFE telemetry packets */ - { -#if (DS_MOVE_FILES == TRUE) - /* .Movename = */ DS_EMPTY_STRING, -#endif - /* .Pathname = */ "/cf/log/", - /* .Basename = */ "minimum", - /* .Extension = */ ".tlm", - - /* .FileNameType = */ DS_BY_COUNT, - /* .EnableState = */ DS_DISABLED, - /* .MaxFileSize = */ (1024 * 1024 * 200), /* 200 M-bytes */ - /* .MaxFileAge = */ (60 * 60 * 2), /* 2 hours */ - /* .SequenceCount = */ 6000, - }, - /* File Index 06 */ - { -#if (DS_MOVE_FILES == TRUE) - /* .Movename = */ DS_EMPTY_STRING, -#endif - /* .Pathname = */ "/cf/log/", - /* .Basename = */ "commands", - /* .Extension = */ ".cmd", - - /* .FileNameType = */ DS_BY_COUNT, - /* .EnableState = */ DS_ENABLED, - /* .MaxFileSize = */ (1024 * 1024 * 200), /* 200 M-bytes */ - /* .MaxFileAge = */ (60 * 60 * 2), /* 2 hours */ - /* .SequenceCount = */ 7000, - }, - /* File Index 07 */ - { -#if (DS_MOVE_FILES == TRUE) - /* .Movename = */ DS_EMPTY_STRING, -#endif - /* .Pathname = */ DS_EMPTY_STRING, - /* .Basename = */ DS_EMPTY_STRING, - /* .Extension = */ DS_EMPTY_STRING, - - /* .FileNameType = */ DS_UNUSED, - /* .EnableState = */ DS_UNUSED, - /* .MaxFileSize = */ DS_UNUSED, - /* .MaxFileAge = */ DS_UNUSED, - /* .SequenceCount = */ DS_UNUSED, - }, - /* File Index 08 */ - { -#if (DS_MOVE_FILES == TRUE) - /* .Movename = */ DS_EMPTY_STRING, -#endif - /* .Pathname = */ DS_EMPTY_STRING, - /* .Basename = */ DS_EMPTY_STRING, - /* .Extension = */ DS_EMPTY_STRING, - - /* .FileNameType = */ DS_UNUSED, - /* .EnableState = */ DS_UNUSED, - /* .MaxFileSize = */ DS_UNUSED, - /* .MaxFileAge = */ DS_UNUSED, - /* .SequenceCount = */ DS_UNUSED, - }, - /* File Index 09 */ - { -#if (DS_MOVE_FILES == TRUE) - /* .Movename = */ DS_EMPTY_STRING, -#endif - /* .Pathname = */ DS_EMPTY_STRING, - /* .Basename = */ DS_EMPTY_STRING, - /* .Extension = */ DS_EMPTY_STRING, - - /* .FileNameType = */ DS_UNUSED, - /* .EnableState = */ DS_UNUSED, - /* .MaxFileSize = */ DS_UNUSED, - /* .MaxFileAge = */ DS_UNUSED, - /* .SequenceCount = */ DS_UNUSED, - }, - /* File Index 10 */ - { -#if (DS_MOVE_FILES == TRUE) - /* .Movename = */ DS_EMPTY_STRING, -#endif - /* .Pathname = */ DS_EMPTY_STRING, - /* .Basename = */ DS_EMPTY_STRING, - /* .Extension = */ DS_EMPTY_STRING, - - /* .FileNameType = */ DS_UNUSED, - /* .EnableState = */ DS_UNUSED, - /* .MaxFileSize = */ DS_UNUSED, - /* .MaxFileAge = */ DS_UNUSED, - /* .SequenceCount = */ DS_UNUSED, - }, - /* File Index 11 */ - { -#if (DS_MOVE_FILES == TRUE) - /* .Movename = */ DS_EMPTY_STRING, -#endif - /* .Pathname = */ DS_EMPTY_STRING, - /* .Basename = */ DS_EMPTY_STRING, - /* .Extension = */ DS_EMPTY_STRING, - - /* .FileNameType = */ DS_UNUSED, - /* .EnableState = */ DS_UNUSED, - /* .MaxFileSize = */ DS_UNUSED, - /* .MaxFileAge = */ DS_UNUSED, - /* .SequenceCount = */ DS_UNUSED, - }, - /* File Index 12 */ - { -#if (DS_MOVE_FILES == TRUE) - /* .Movename = */ DS_EMPTY_STRING, -#endif - /* .Pathname = */ DS_EMPTY_STRING, - /* .Basename = */ DS_EMPTY_STRING, - /* .Extension = */ DS_EMPTY_STRING, - - /* .FileNameType = */ DS_UNUSED, - /* .EnableState = */ DS_UNUSED, - /* .MaxFileSize = */ DS_UNUSED, - /* .MaxFileAge = */ DS_UNUSED, - /* .SequenceCount = */ DS_UNUSED, - }, - /* File Index 13 */ - { -#if (DS_MOVE_FILES == TRUE) - /* .Movename = */ DS_EMPTY_STRING, -#endif - /* .Pathname = */ DS_EMPTY_STRING, - /* .Basename = */ DS_EMPTY_STRING, - /* .Extension = */ DS_EMPTY_STRING, - - /* .FileNameType = */ DS_UNUSED, - /* .EnableState = */ DS_UNUSED, - /* .MaxFileSize = */ DS_UNUSED, - /* .MaxFileAge = */ DS_UNUSED, - /* .SequenceCount = */ DS_UNUSED, - }, - /* File Index 14 */ - { -#if (DS_MOVE_FILES == TRUE) - /* .Movename = */ DS_EMPTY_STRING, -#endif - /* .Pathname = */ DS_EMPTY_STRING, - /* .Basename = */ DS_EMPTY_STRING, - /* .Extension = */ DS_EMPTY_STRING, - - /* .FileNameType = */ DS_UNUSED, - /* .EnableState = */ DS_UNUSED, - /* .MaxFileSize = */ DS_UNUSED, - /* .MaxFileAge = */ DS_UNUSED, - /* .SequenceCount = */ DS_UNUSED, - }, - /* File Index 15 */ - { -#if (DS_MOVE_FILES == TRUE) - /* .Movename = */ DS_EMPTY_STRING, -#endif - /* .Pathname = */ DS_EMPTY_STRING, - /* .Basename = */ DS_EMPTY_STRING, - /* .Extension = */ DS_EMPTY_STRING, - - /* .FileNameType = */ DS_UNUSED, - /* .EnableState = */ DS_UNUSED, - /* .MaxFileSize = */ DS_UNUSED, - /* .MaxFileAge = */ DS_UNUSED, - /* .SequenceCount = */ DS_UNUSED, - }, - } -}; - -/* -** Sample Destination File Table Header -*/ -CFE_TBL_FILEDEF(DS_DestFileTable, DS.FILE_TBL, DS Destination File Table,ds_file_tbl.tbl) - - -/************************/ -/* End of File Comment */ -/************************/ diff --git a/config/obc/cpd/target/apps/ds/tables/ds_filter_tbl.c b/config/obc/cpd/target/apps/ds/tables/ds_filter_tbl.c deleted file mode 100644 index 1afc76432..000000000 --- a/config/obc/cpd/target/apps/ds/tables/ds_filter_tbl.c +++ /dev/null @@ -1,3145 +0,0 @@ -#include "cfe.h" -#include "cfe_tbl_filedef.h" -#include "ds_platform_cfg.h" -#include "ds_appdefs.h" -#include "ds_app.h" -#include "ds_msg.h" - -/* -** Note: Include header files that define the message ID's for the -** mission specific list of packets that need to be stored. -*/ -#include "cfe_msgids.h" -#include "ds_msgids.h" - -/* #include "ci_lab_msgids.h" */ -/* #include "to_lab_msgids.h" */ - -/* #include "cs_msgids.h" */ -/* #include "ds_msgids.h" */ -/* #include "fm_msgids.h" */ -/* #include "hk_msgids.h" */ -/* #include "hs_msgids.h" */ -/* #include "lc_msgids.h" */ -/* #include "md_msgids.h" */ -/* #include "mm_msgids.h" */ -/* #include "sc_msgids.h" */ -/* #include "sch_msgids.h" */ - - -/* -** Note: It is suggested that missions pre-define their file table -** index numbers in a public header file to be included by -** both the packet filter table source file and the destination -** file table source file. Common definitions may also be used -** when creating command database entries that require file -** index numbers for command arguments. -*/ -/* All events */ -#define FILE_ALL_EVENTS 0 -/* All housekeeping packets */ -#define FILE_ALL_APP_HK_PKTS 1 -/* Log all flight application messages */ -#define FILE_FLIGHT_APP_TLM_PKTS 2 -/* Log just default flight application messages */ -#define FILE_FLIGHT_DEFAULT_APP_TLM_PKTS 3 -/* Log just sensor application messages */ -#define FILE_FLIGHT_SENSOR_APP_TLM_PKTS 4 -/* Log all flight messages at a low rate */ -#define FILE_FLIGHT_MIN_APP_TLM_PKTS 5 -/* CFE core applications commands */ -#define FILE_CORE_APP_CMD_PKTS 6 - - -/* -** Sample packet filter table data -*/ -DS_FilterTable_t DS_FilterTable = -{ - /* .Descriptor = */ "Sample filter table data", - /* .Packet = */ - { - /* Packet Index 000 */ - { - /* .MessageID = */ CFE_ES_HK_TLM_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_ALL_APP_HK_PKTS, DS_BY_COUNT, 1, 2, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 001 */ - { - /* .MessageID = */ CFE_EVS_HK_TLM_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_ALL_APP_HK_PKTS, DS_BY_COUNT, 1, 2, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 002 */ - { - /* .MessageID = */ CFE_SB_HK_TLM_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_ALL_APP_HK_PKTS, DS_BY_COUNT, 1, 2, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 003 */ - { - /* .MessageID = */ CFE_TBL_HK_TLM_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_ALL_APP_HK_PKTS, DS_BY_COUNT, 1, 2, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 004 */ - { - /* .MessageID = */ CFE_TIME_HK_TLM_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_ALL_APP_HK_PKTS, DS_BY_COUNT, 1, 2, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 005 */ - { - /* .MessageID = */ CFE_EVS_CMD_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_CORE_APP_CMD_PKTS, DS_BY_COUNT, 1, 1, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 006 */ - { - /* .MessageID = */ CFE_EVS_EVENT_MSG_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_ALL_EVENTS, DS_BY_COUNT, 1, 1, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 007 */ - { - /* .MessageID = */ CFE_SB_CMD_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_CORE_APP_CMD_PKTS, DS_BY_COUNT, 1, 1, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 008 */ - { - /* .MessageID = */ CFE_TIME_CMD_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_CORE_APP_CMD_PKTS, DS_BY_COUNT, 1, 1, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 009 */ - { - /* .MessageID = */ CFE_ES_CMD_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_CORE_APP_CMD_PKTS, DS_BY_COUNT, 1, 1, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 010 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 011 */ - { - /* .MessageID = */ CFE_SB_ONESUB_TLM_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 012 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 013 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 014 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 015 */ - { - /* .MessageID = */ PX4_SENSOR_ACCEL_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_FLIGHT_APP_TLM_PKTS, DS_BY_COUNT, 10, 250, 0 }, - { FILE_FLIGHT_SENSOR_APP_TLM_PKTS, DS_BY_COUNT, 10, 250, 0 }, - { FILE_FLIGHT_MIN_APP_TLM_PKTS, DS_BY_COUNT, 1, 2000, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 016 */ - { - /* .MessageID = */ PX4_SENSOR_BARO_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_FLIGHT_APP_TLM_PKTS, DS_BY_COUNT, 10, 50, 0 }, - { FILE_FLIGHT_SENSOR_APP_TLM_PKTS, DS_BY_COUNT, 10, 50, 0 }, - { FILE_FLIGHT_MIN_APP_TLM_PKTS, DS_BY_COUNT, 1, 2000, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 017 */ - { - /* .MessageID = */ PX4_SENSOR_GYRO_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_FLIGHT_APP_TLM_PKTS, DS_BY_COUNT, 10, 250, 0 }, - { FILE_FLIGHT_SENSOR_APP_TLM_PKTS, DS_BY_COUNT, 10, 250, 0 }, - { FILE_FLIGHT_MIN_APP_TLM_PKTS, DS_BY_COUNT, 1, 2000, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 018 */ - { - /* .MessageID = */ PX4_SENSOR_MAG_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_FLIGHT_APP_TLM_PKTS, DS_BY_COUNT, 10, 250, 0 }, - { FILE_FLIGHT_SENSOR_APP_TLM_PKTS, DS_BY_COUNT, 10, 250, 0 }, - { FILE_FLIGHT_MIN_APP_TLM_PKTS, DS_BY_COUNT, 1, 2000, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 019 */ - { - /* .MessageID = */ PX4_SENSOR_COMBINED_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_FLIGHT_APP_TLM_PKTS, DS_BY_COUNT, 10, 250, 0 }, - { FILE_FLIGHT_SENSOR_APP_TLM_PKTS, DS_BY_COUNT, 10, 250, 0 }, - { FILE_FLIGHT_MIN_APP_TLM_PKTS, DS_BY_COUNT, 1, 2000, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 020 */ - { - /* .MessageID = */ PX4_VEHICLE_GPS_POSITION_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_FLIGHT_APP_TLM_PKTS, DS_BY_COUNT, 5, 6, 0 }, - { FILE_FLIGHT_SENSOR_APP_TLM_PKTS, DS_BY_COUNT, 5, 6, 0 }, - { FILE_FLIGHT_MIN_APP_TLM_PKTS, DS_BY_COUNT, 1, 500, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 021 */ - { - /* .MessageID = */ PX4_DISTANCE_SENSOR_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_FLIGHT_APP_TLM_PKTS, DS_BY_COUNT, 10, 250, 0 }, - { FILE_FLIGHT_SENSOR_APP_TLM_PKTS, DS_BY_COUNT, 10, 250, 0 }, - { FILE_FLIGHT_MIN_APP_TLM_PKTS, DS_BY_COUNT, 1, 1000, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 022 */ - { - /* .MessageID = */ PX4_INPUT_RC_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_FLIGHT_APP_TLM_PKTS, DS_BY_COUNT, 5, 50, 0 }, - { FILE_FLIGHT_MIN_APP_TLM_PKTS, DS_BY_COUNT, 1, 1000, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 023 */ - { - /* .MessageID = */ PX4_RC_CHANNELS_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_FLIGHT_APP_TLM_PKTS, DS_BY_COUNT, 1, 250, 0 }, - { FILE_FLIGHT_MIN_APP_TLM_PKTS, DS_BY_COUNT, 1, 2000, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 024 */ - { - /* .MessageID = */ PX4_ACTUATOR_CONTROLS_0_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_FLIGHT_APP_TLM_PKTS, DS_BY_COUNT, 10, 250, 0 }, - { FILE_FLIGHT_DEFAULT_APP_TLM_PKTS, DS_BY_COUNT, 10, 250, 0 }, - { FILE_FLIGHT_MIN_APP_TLM_PKTS, DS_BY_COUNT, 1, 1000, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 025 */ - { - /* .MessageID = */ PX4_ACTUATOR_CONTROLS_1_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_FLIGHT_APP_TLM_PKTS, DS_BY_COUNT, 10, 250, 0 }, - { FILE_FLIGHT_DEFAULT_APP_TLM_PKTS, DS_BY_COUNT, 10, 250, 0 }, - { FILE_FLIGHT_MIN_APP_TLM_PKTS, DS_BY_COUNT, 1, 1000, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 026 */ - { - /* .MessageID = */ PX4_ACTUATOR_OUTPUTS_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_FLIGHT_APP_TLM_PKTS, DS_BY_COUNT, 10, 250, 0 }, - { FILE_FLIGHT_DEFAULT_APP_TLM_PKTS, DS_BY_COUNT, 10, 250, 0 }, - { FILE_FLIGHT_MIN_APP_TLM_PKTS, DS_BY_COUNT, 1, 1000, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 027 */ - { - /* .MessageID = */ PX4_ACTUATOR_ARMED_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_FLIGHT_APP_TLM_PKTS, DS_BY_COUNT, 1, 1, 0 }, - { FILE_FLIGHT_MIN_APP_TLM_PKTS, DS_BY_COUNT, 1, 1, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 028 */ - { - /* .MessageID = */ PX4_BATTERY_STATUS_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_FLIGHT_APP_TLM_PKTS, DS_BY_COUNT, 2, 50, 0 }, - { FILE_FLIGHT_DEFAULT_APP_TLM_PKTS, DS_BY_COUNT, 2, 50, 0 }, - { FILE_FLIGHT_MIN_APP_TLM_PKTS, DS_BY_COUNT, 1, 500, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 029 */ - { - /* .MessageID = */ PX4_COMMANDER_STATE_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_FLIGHT_APP_TLM_PKTS, DS_BY_COUNT, 10, 250, 0 }, - { FILE_FLIGHT_MIN_APP_TLM_PKTS, DS_BY_COUNT, 1, 1000, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 030 */ - { - /* .MessageID = */ PX4_CONTROL_STATE_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_FLIGHT_APP_TLM_PKTS, DS_BY_COUNT, 10, 250, 0 }, - { FILE_FLIGHT_MIN_APP_TLM_PKTS, DS_BY_COUNT, 1, 1000, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 031 */ - { - /* .MessageID = */ PX4_ESTIMATOR_STATUS_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_FLIGHT_APP_TLM_PKTS, DS_BY_COUNT, 5, 125, 0 }, - { FILE_FLIGHT_DEFAULT_APP_TLM_PKTS, DS_BY_COUNT, 5, 125, 0 }, - { FILE_FLIGHT_MIN_APP_TLM_PKTS, DS_BY_COUNT, 1, 500, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 032 */ - { - /* .MessageID = */ PX4_EKF2_INNOVATIONS_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_FLIGHT_APP_TLM_PKTS, DS_BY_COUNT, 5, 125, 0 }, - { FILE_FLIGHT_DEFAULT_APP_TLM_PKTS, DS_BY_COUNT, 5, 125, 0 }, - { FILE_FLIGHT_MIN_APP_TLM_PKTS, DS_BY_COUNT, 1, 500, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 033 */ - { - /* .MessageID = */ PX4_MANUAL_CONTROL_SETPOINT_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_FLIGHT_APP_TLM_PKTS, DS_BY_COUNT, 5, 250, 0 }, - { FILE_FLIGHT_DEFAULT_APP_TLM_PKTS, DS_BY_COUNT, 5, 250, 0 }, - { FILE_FLIGHT_MIN_APP_TLM_PKTS, DS_BY_COUNT, 1, 1000, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 034 */ - { - /* .MessageID = */ PX4_POSITION_SETPOINT_TRIPLET_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_FLIGHT_APP_TLM_PKTS, DS_BY_COUNT, 5, 250, 0 }, - { FILE_FLIGHT_DEFAULT_APP_TLM_PKTS, DS_BY_COUNT, 5, 250, 0 }, - { FILE_FLIGHT_MIN_APP_TLM_PKTS, DS_BY_COUNT, 1, 1000, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 035 */ - { - /* .MessageID = */ PX4_VEHICLE_ATTITUDE_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_FLIGHT_APP_TLM_PKTS, DS_BY_COUNT, 20, 250, 0 }, - { FILE_FLIGHT_DEFAULT_APP_TLM_PKTS, DS_BY_COUNT, 20, 250, 0 }, - { FILE_FLIGHT_MIN_APP_TLM_PKTS, DS_BY_COUNT, 1, 500, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 036 */ - { - /* .MessageID = */ PX4_VEHICLE_ATTITUDE_SETPOINT_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_FLIGHT_APP_TLM_PKTS, DS_BY_COUNT, 10, 250, 0 }, - { FILE_FLIGHT_DEFAULT_APP_TLM_PKTS, DS_BY_COUNT, 10, 250, 0 }, - { FILE_FLIGHT_MIN_APP_TLM_PKTS, DS_BY_COUNT, 1, 1000, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 037 */ - { - /* .MessageID = */ PX4_VEHICLE_RATES_SETPOINT_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_FLIGHT_APP_TLM_PKTS, DS_BY_COUNT, 20, 250, 0 }, - { FILE_FLIGHT_DEFAULT_APP_TLM_PKTS, DS_BY_COUNT, 20, 250, 0 }, - { FILE_FLIGHT_MIN_APP_TLM_PKTS, DS_BY_COUNT, 1, 500, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 038 */ - { - /* .MessageID = */ PX4_VEHICLE_COMMAND_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_FLIGHT_APP_TLM_PKTS, DS_BY_COUNT, 1, 1, 0 }, - { FILE_FLIGHT_DEFAULT_APP_TLM_PKTS, DS_BY_COUNT, 1, 1, 0 }, - { FILE_FLIGHT_MIN_APP_TLM_PKTS, DS_BY_COUNT, 1, 1, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 039 */ - { - /* .MessageID = */ PX4_VEHICLE_GLOBAL_POSITION_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_FLIGHT_APP_TLM_PKTS, DS_BY_COUNT, 5, 125, 0 }, - { FILE_FLIGHT_DEFAULT_APP_TLM_PKTS, DS_BY_COUNT, 5, 125, 0 }, - { FILE_FLIGHT_MIN_APP_TLM_PKTS, DS_BY_COUNT, 1, 1000, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 040 */ - { - /* .MessageID = */ PX4_VEHICLE_GLOBAL_VELOCITY_SETPOINT_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_FLIGHT_APP_TLM_PKTS, DS_BY_COUNT, 5, 250, 0 }, - { FILE_FLIGHT_MIN_APP_TLM_PKTS, DS_BY_COUNT, 1, 2000, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 041 */ - { - /* .MessageID = */ PX4_VEHICLE_LAND_DETECTED_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_FLIGHT_APP_TLM_PKTS, DS_BY_COUNT, 1, 1, 0 }, - { FILE_FLIGHT_DEFAULT_APP_TLM_PKTS, DS_BY_COUNT, 1, 1, 0 }, - { FILE_FLIGHT_MIN_APP_TLM_PKTS, DS_BY_COUNT, 1, 1, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 042 */ - { - /* .MessageID = */ PX4_VEHICLE_LOCAL_POSITION_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_FLIGHT_APP_TLM_PKTS, DS_BY_COUNT, 10, 125, 0 }, - { FILE_FLIGHT_DEFAULT_APP_TLM_PKTS, DS_BY_COUNT, 10, 125, 0 }, - { FILE_FLIGHT_MIN_APP_TLM_PKTS, DS_BY_COUNT, 1, 1000, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 043 */ - { - /* .MessageID = */ PX4_VEHICLE_LOCAL_POSITION_SETPOINT_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_FLIGHT_APP_TLM_PKTS, DS_BY_COUNT, 10, 250, 0 }, - { FILE_FLIGHT_DEFAULT_APP_TLM_PKTS, DS_BY_COUNT, 10, 250, 0 }, - { FILE_FLIGHT_MIN_APP_TLM_PKTS, DS_BY_COUNT, 1, 1000, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 044 */ - { - /* .MessageID = */ PX4_VEHICLE_STATUS_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_FLIGHT_APP_TLM_PKTS, DS_BY_COUNT, 5, 250, 0 }, - { FILE_FLIGHT_DEFAULT_APP_TLM_PKTS, DS_BY_COUNT, 5, 250, 0 }, - { FILE_FLIGHT_MIN_APP_TLM_PKTS, DS_BY_COUNT, 1, 2000, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 045 */ - { - /* .MessageID = */ PX4_HOME_POSITION_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_FLIGHT_APP_TLM_PKTS, DS_BY_COUNT, 1, 1, 0 }, - { FILE_FLIGHT_MIN_APP_TLM_PKTS, DS_BY_COUNT, 1, 1, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 046 */ - { - /* .MessageID = */ PX4_VEHICLE_CONTROL_MODE_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_FLIGHT_APP_TLM_PKTS, DS_BY_COUNT, 10, 250, 0 }, - { FILE_FLIGHT_MIN_APP_TLM_PKTS, DS_BY_COUNT, 1, 1000, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 047 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 048 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 049 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 050 */ - { - /* .MessageID = */ TO_HK_TLM_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_ALL_APP_HK_PKTS, DS_BY_COUNT, 1, 1, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 051 */ - { - /* .MessageID = */ CI_HK_TLM_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_ALL_APP_HK_PKTS, DS_BY_COUNT, 1, 1, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 052 */ - { - /* .MessageID = */ CF_HK_TLM_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_ALL_APP_HK_PKTS, DS_BY_COUNT, 1, 1, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 053 */ - { - /* .MessageID = */ CS_HK_TLM_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_ALL_APP_HK_PKTS, DS_BY_COUNT, 1, 1, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 054 */ - { - /* .MessageID = */ DS_HK_TLM_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_ALL_APP_HK_PKTS, DS_BY_COUNT, 1, 1, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 055 */ - { - /* .MessageID = */ HK_HK_TLM_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_ALL_APP_HK_PKTS, DS_BY_COUNT, 1, 1, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 056 */ - { - /* .MessageID = */ HS_HK_TLM_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_ALL_APP_HK_PKTS, DS_BY_COUNT, 1, 1, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 057 */ - { - /* .MessageID = */ LC_HK_TLM_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_ALL_APP_HK_PKTS, DS_BY_COUNT, 1, 1, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 058 */ - { - /* .MessageID = */ MM_HK_TLM_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_ALL_APP_HK_PKTS, DS_BY_COUNT, 1, 1, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 059 */ - { - /* .MessageID = */ MD_HK_TLM_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_ALL_APP_HK_PKTS, DS_BY_COUNT, 1, 1, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 060 */ - { - /* .MessageID = */ SC_HK_TLM_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_ALL_APP_HK_PKTS, DS_BY_COUNT, 1, 1, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 061 */ - { - /* .MessageID = */ SCH_HK_TLM_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_ALL_APP_HK_PKTS, DS_BY_COUNT, 1, 1, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 062 */ - { - /* .MessageID = */ MPU9250_HK_TLM_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_ALL_APP_HK_PKTS, DS_BY_COUNT, 1, 1, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 063 */ - { - /* .MessageID = */ MS5611_HK_TLM_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_ALL_APP_HK_PKTS, DS_BY_COUNT, 1, 1, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 064 */ - { - /* .MessageID = */ EA_HK_TLM_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_ALL_APP_HK_PKTS, DS_BY_COUNT, 1, 1, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 065 */ - { - /* .MessageID = */ VC_HK_TLM_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_ALL_APP_HK_PKTS, DS_BY_COUNT, 1, 1, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 066 */ - { - /* .MessageID = */ AMC_HK_TLM_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_ALL_APP_HK_PKTS, DS_BY_COUNT, 1, 1, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 067 */ - { - /* .MessageID = */ MAC_HK_TLM_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_ALL_APP_HK_PKTS, DS_BY_COUNT, 1, 1, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 068 */ - { - /* .MessageID = */ ULR_HK_TLM_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_ALL_APP_HK_PKTS, DS_BY_COUNT, 1, 1, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 069 */ - { - /* .MessageID = */ RGBLED_HK_TLM_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_ALL_APP_HK_PKTS, DS_BY_COUNT, 1, 1, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 070 */ - { - /* .MessageID = */ GPS_HK_TLM_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_ALL_APP_HK_PKTS, DS_BY_COUNT, 1, 1, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 071 */ - { - /* .MessageID = */ SENS_HK_TLM_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_ALL_APP_HK_PKTS, DS_BY_COUNT, 1, 1, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 072 */ - { - /* .MessageID = */ QAE_HK_TLM_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_ALL_APP_HK_PKTS, DS_BY_COUNT, 1, 1, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 073 */ - { - /* .MessageID = */ LD_HK_TLM_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_ALL_APP_HK_PKTS, DS_BY_COUNT, 1, 1, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 074 */ - { - /* .MessageID = */ MPC_HK_TLM_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_ALL_APP_HK_PKTS, DS_BY_COUNT, 1, 1, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 075 */ - { - /* .MessageID = */ NAV_HK_TLM_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_ALL_APP_HK_PKTS, DS_BY_COUNT, 1, 1, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 076 */ - { - /* .MessageID = */ RCIN_HK_TLM_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_ALL_APP_HK_PKTS, DS_BY_COUNT, 1, 1, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 077 */ - { - /* .MessageID = */ VM_HK_TLM_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_ALL_APP_HK_PKTS, DS_BY_COUNT, 1, 1, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 078 */ - { - /* .MessageID = */ BAT_HK_TLM_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_ALL_APP_HK_PKTS, DS_BY_COUNT, 1, 1, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 079 */ - { - /* .MessageID = */ PE_HK_TLM_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_ALL_APP_HK_PKTS, DS_BY_COUNT, 1, 1, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 080 */ - { - /* .MessageID = */ HMC5883_HK_TLM_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_ALL_APP_HK_PKTS, DS_BY_COUNT, 1, 1, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 081 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 082 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 083 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 084 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 085 */ - { - /* .MessageID = */ TO_CMD_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_CORE_APP_CMD_PKTS, DS_BY_COUNT, 1, 1, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 086 */ - { - /* .MessageID = */ CI_CMD_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_CORE_APP_CMD_PKTS, DS_BY_COUNT, 1, 1, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 087 */ - { - /* .MessageID = */ CF_CMD_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_CORE_APP_CMD_PKTS, DS_BY_COUNT, 1, 1, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 088 */ - { - /* .MessageID = */ CS_CMD_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_CORE_APP_CMD_PKTS, DS_BY_COUNT, 1, 1, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 089 */ - { - /* .MessageID = */ DS_CMD_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_CORE_APP_CMD_PKTS, DS_BY_COUNT, 1, 1, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 090 */ - { - /* .MessageID = */ FM_CMD_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_CORE_APP_CMD_PKTS, DS_BY_COUNT, 1, 1, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 091 */ - { - /* .MessageID = */ HK_CMD_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_CORE_APP_CMD_PKTS, DS_BY_COUNT, 1, 1, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 092 */ - { - /* .MessageID = */ LC_CMD_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_CORE_APP_CMD_PKTS, DS_BY_COUNT, 1, 1, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 093 */ - { - /* .MessageID = */ MM_CMD_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_CORE_APP_CMD_PKTS, DS_BY_COUNT, 1, 1, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 094 */ - { - /* .MessageID = */ MD_CMD_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_CORE_APP_CMD_PKTS, DS_BY_COUNT, 1, 1, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 095 */ - { - /* .MessageID = */ SC_CMD_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_CORE_APP_CMD_PKTS, DS_BY_COUNT, 1, 1, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 096 */ - { - /* .MessageID = */ SCH_CMD_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_CORE_APP_CMD_PKTS, DS_BY_COUNT, 1, 1, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 097 */ - { - /* .MessageID = */ MPU9250_CMD_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_CORE_APP_CMD_PKTS, DS_BY_COUNT, 1, 1, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 098 */ - { - /* .MessageID = */ MS5611_CMD_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_CORE_APP_CMD_PKTS, DS_BY_COUNT, 1, 1, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 099 */ - { - /* .MessageID = */ EA_CMD_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_CORE_APP_CMD_PKTS, DS_BY_COUNT, 1, 1, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 100 */ - { - /* .MessageID = */ VC_CMD_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_CORE_APP_CMD_PKTS, DS_BY_COUNT, 1, 1, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 101 */ - { - /* .MessageID = */ AMC_CMD_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_CORE_APP_CMD_PKTS, DS_BY_COUNT, 1, 1, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 102 */ - { - /* .MessageID = */ MAC_CMD_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { FILE_CORE_APP_CMD_PKTS, DS_BY_COUNT, 1, 1, 0 }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 103 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 104 */ - { - /* .MessageID = */ ULR_CMD_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 105 */ - { - /* .MessageID = */ RGBLED_CMD_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 106 */ - { - /* .MessageID = */ GPS_CMD_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 107 */ - { - /* .MessageID = */ SENS_CMD_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 108 */ - { - /* .MessageID = */ QAE_CMD_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 109 */ - { - /* .MessageID = */ LD_CMD_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 110 */ - { - /* .MessageID = */ MPC_CMD_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 111 */ - { - /* .MessageID = */ NAV_CMD_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 112 */ - { - /* .MessageID = */ RCIN_CMD_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 113 */ - { - /* .MessageID = */ VM_CMD_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 114 */ - { - /* .MessageID = */ BAT_CMD_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 115 */ - { - /* .MessageID = */ PE_CMD_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 116 */ - { - /* .MessageID = */ HMC5883_CMD_MID, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 117 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 118 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 119 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 120 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 121 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 122 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 123 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 124 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 125 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 126 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 127 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 128 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 129 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 130 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 131 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 132 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 133 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 134 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 135 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 136 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 137 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 138 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 139 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 140 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 141 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 142 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 143 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 144 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 145 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 146 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 147 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 148 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 149 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 150 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 151 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 152 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 153 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 154 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 155 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 156 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 157 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 158 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 159 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 160 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 161 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 162 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 163 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 164 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 165 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 166 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 167 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 168 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 169 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 170 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 171 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 172 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 173 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 174 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 175 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 176 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 177 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 178 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 179 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 180 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 181 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 182 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 183 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 184 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 185 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 186 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 187 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 188 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 189 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 190 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 191 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 192 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 193 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 194 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 195 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 196 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 197 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 198 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 199 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 200 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 201 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 202 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 203 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 204 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 205 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 206 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 207 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 208 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 209 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 210 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 211 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 212 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 213 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 214 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 215 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 216 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 217 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 218 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 219 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 220 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 221 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 222 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 223 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 224 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 225 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 226 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 227 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 228 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 229 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 230 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 231 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 232 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 233 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 234 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 235 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 236 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 237 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 238 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 239 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 240 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 241 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 242 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 243 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 244 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 245 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 246 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 247 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 248 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 249 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 250 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 251 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 252 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 253 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 254 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - }, - /* Packet Index 255 */ - { - /* .MessageID = */ DS_UNUSED, - /* .Filter = */ - { - /* File table index, filter type, N, X, O */ - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, - { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } - } - } - } -}; - -/* -** Sample packet filter table header -*/ -CFE_TBL_FILEDEF(DS_FilterTable, DS.FILTER_TBL, DS Packet Filter Table,ds_filter_tbl.tbl) - - -/************************/ -/* End of File Comment */ -/************************/ diff --git a/config/obc/cpd/target/apps/ea/CMakeLists.txt b/config/obc/cpd/target/apps/ea/CMakeLists.txt deleted file mode 100644 index ae0506220..000000000 --- a/config/obc/cpd/target/apps/ea/CMakeLists.txt +++ /dev/null @@ -1,55 +0,0 @@ -set(APP_NAME ea) - -buildliner_add_app_unit_test(ea-custom-ut - UTASSERT - NANOPB - SOURCES - ${CMAKE_CURRENT_SOURCE_DIR}/unit_test/ea_testrunner.c - ${CMAKE_CURRENT_SOURCE_DIR}/unit_test/ea_custom_test.c - ${CMAKE_CURRENT_SOURCE_DIR}/src/ea_custom.c - ${PROJECT_SOURCE_DIR}/apps/ea/fsw/src/ea_app.c - ${CMAKE_CURRENT_SOURCE_DIR}/unit_test/ea_mock_os_calls.c - ${CMAKE_CURRENT_SOURCE_DIR}/unit_test/ea_test_utils.c - ${PROJECT_SOURCE_DIR}/core/base/ut_assert/src/ut_cfe_es_hooks.c - - INCLUDES - ${PROJECT_SOURCE_DIR}/apps/ea/fsw/src/ - - WRAPPERS - fork - execvp - waitpid - kill - - VALGRIND_SUPPRESSION_FILE - ${CMAKE_CURRENT_SOURCE_DIR}/ea-custom-ut.supp -) - -buildliner_add_app_unit_test(ea-perfmon-ut - UTASSERT - NANOPB - SOURCES - ${CMAKE_CURRENT_SOURCE_DIR}/unit_test/ea_perfmon_testrunner.c - ${CMAKE_CURRENT_SOURCE_DIR}/unit_test/ea_perfmon_test.c - ${CMAKE_CURRENT_SOURCE_DIR}/src/ea_custom.c - ${PROJECT_SOURCE_DIR}/apps/ea/fsw/src/ea_app.c - ${CMAKE_CURRENT_SOURCE_DIR}/unit_test/ea_test_utils.c - ${PROJECT_SOURCE_DIR}/core/base/ut_assert/src/ut_cfe_es_hooks.c - - INCLUDES - ${PROJECT_SOURCE_DIR}/apps/ea/fsw/src/ - - VALGRIND_SUPPRESSION_FILE - ${CMAKE_CURRENT_SOURCE_DIR}/ea-perfmon-ut.supp -) - -add_custom_target( - ea-ut-custom-input-files - COMMAND cp ${CMAKE_CURRENT_SOURCE_DIR}/unit_test/sleep.py ${CMAKE_CURRENT_BINARY_DIR} - COMMAND cp ${CMAKE_CURRENT_SOURCE_DIR}/unit_test/fib.py ${CMAKE_CURRENT_BINARY_DIR} - COMMAND cp ${CMAKE_CURRENT_SOURCE_DIR}/unit_test/noop.py ${CMAKE_CURRENT_BINARY_DIR} -) - -add_dependencies(ea-custom-ut ea-ut-custom-input-files) -add_dependencies(ea-perfmon-ut ea-ut-custom-input-files) - diff --git a/config/obc/cpd/target/apps/ea/ea-custom-ut.supp b/config/obc/cpd/target/apps/ea/ea-custom-ut.supp deleted file mode 100644 index d87eb5ce5..000000000 --- a/config/obc/cpd/target/apps/ea/ea-custom-ut.supp +++ /dev/null @@ -1,27 +0,0 @@ -{ - - Memcheck:Leak - match-leak-kinds: reachable - fun:malloc - fun:UtList_Add - fun:Ut_CFE_EVS_SendEventHook - fun:CFE_EVS_SendEvent - fun:EA_TermAppCustom - fun:Test_EA_Custom_TermApp_Nominal - fun:UtTest_Run - fun:main -} - -{ - - Memcheck:Leak - match-leak-kinds: reachable - fun:malloc - fun:UtList_Add - fun:Ut_CFE_EVS_SendEventHook - fun:CFE_EVS_SendEvent - fun:EA_TermAppCustom - fun:Test_EA_Custom_TermApp_Nominal - fun:UtTest_Run - fun:main -} \ No newline at end of file diff --git a/config/obc/cpd/target/apps/ea/ea-perfmon-ut.supp b/config/obc/cpd/target/apps/ea/ea-perfmon-ut.supp deleted file mode 100644 index e69de29bb..000000000 diff --git a/config/obc/cpd/target/apps/ea/src/ea_custom.c b/config/obc/cpd/target/apps/ea/src/ea_custom.c deleted file mode 100644 index 28daf8659..000000000 --- a/config/obc/cpd/target/apps/ea/src/ea_custom.c +++ /dev/null @@ -1,249 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ - -#include "ea_custom.h" -#include -#include -#include -#include -#include -#include -#include - -#include "ea_platform_cfg.h" -#include "ea_app.h" -#include "ea_msg.h" - -void EA_StartAppCustom() -{ - int32 Status = -1; - Status = CFE_ES_RegisterChildTask(); - - if (Status == CFE_SUCCESS) - { - /* - ** Create child process to execute app - */ - pid_t pid = fork(); - - /* - ** Child process - */ - if (pid == 0) - { - char *argv[] = {EA_AppData.ChildData.Cmd, EA_AppData.ChildData.Args, NULL}; - if(execvp(EA_AppData.ChildData.Cmd, argv) == -1) - { - CFE_EVS_SendEvent(EA_CMD_ERR_EID, CFE_EVS_ERROR, - "Error starting external application"); - } - /* - ** NOTE: This exit is required here as a means to shut down the child process. - */ - exit(0); - } - /* - ** Failed Fork - */ - else if (pid == -1) - { - EA_AppData.HkTlm.usCmdErrCnt++; - CFE_EVS_SendEvent(EA_CMD_ERR_EID, CFE_EVS_ERROR, - "Error starting new process"); - } - /* - ** Parent process - */ - else - { - EA_AppData.HkTlm.usCmdCnt++; - CFE_EVS_SendEvent(EA_INF_APP_START_EID, CFE_EVS_INFORMATION, - "External application started"); - strncpy(EA_AppData.HkTlm.ActiveApp, EA_AppData.ChildData.Args, OS_MAX_PATH_LEN); - EA_AppData.HkTlm.ActiveAppPID = pid; - waitpid(pid, (int*)&EA_AppData.HkTlm.LastAppStatus, 0); - EA_AppData.HkTlm.LastAppStatus = EA_AppData.HkTlm.LastAppStatus; - EA_AppData.HkTlm.ActiveAppPID = 0; - EA_AppData.HkTlm.ActiveAppUtil = 0; - strncpy(EA_AppData.HkTlm.LastAppRun, EA_AppData.HkTlm.ActiveApp, OS_MAX_PATH_LEN); - memset(EA_AppData.HkTlm.ActiveApp, '\0', OS_MAX_PATH_LEN); - memset(EA_AppData.ChildData.Cmd, '\0', OS_MAX_PATH_LEN); - memset(EA_AppData.ChildData.Args, '\0', OS_MAX_PATH_LEN); - - } - }/*end if register child task*/ - else - { - (void) CFE_ES_WriteToSysLog("EA - StartApp Child Task Registration failed!\n"); - } - - EA_AppData.ChildAppTaskID = 0; - EA_AppData.ChildAppTaskInUse = FALSE; - CFE_ES_ExitChildTask(); - - return; -} - -void EA_TermAppCustom() -{ - int kill_status = -1; - - /* - ** Ensure app is currently running - */ - if(EA_AppData.HkTlm.ActiveAppPID != 0) - { - CFE_ES_DeleteChildTask(EA_AppData.ChildAppTaskID); - kill_status = kill(EA_AppData.HkTlm.ActiveAppPID, SIGKILL); - - /* - ** Check kill call return code - */ - if(kill_status == 0) - { - EA_AppData.HkTlm.usCmdCnt++; - EA_AppData.HkTlm.ActiveAppPID = 0; - EA_AppData.HkTlm.ActiveAppUtil = 0; - strncpy(EA_AppData.HkTlm.LastAppRun, EA_AppData.HkTlm.ActiveApp, OS_MAX_PATH_LEN); - EA_AppData.HkTlm.LastAppStatus = -1; // TODO: Add meaningful number to this - memset(EA_AppData.HkTlm.ActiveApp, '\0', OS_MAX_PATH_LEN); - EA_AppData.ChildAppTaskInUse = FALSE; - CFE_EVS_SendEvent(EA_INF_APP_TERM_EID, CFE_EVS_INFORMATION, - "External application terminated"); - } - else - { - EA_AppData.HkTlm.usCmdErrCnt++; - CFE_EVS_SendEvent(EA_CMD_ERR_EID, CFE_EVS_ERROR, - "Unable to terminate application"); - } - } - else - { - EA_AppData.HkTlm.usCmdErrCnt++; - CFE_EVS_SendEvent(EA_CMD_ERR_EID, CFE_EVS_ERROR, - "Attempted to terminate app while none executing"); - } - - return; -} - -void EA_PerfmonCustom(int32 pid) -{ - EA_ProcData_t proc_data = EA_ParsePidUtil(pid); - int dp = proc_data.p_time - EA_AppData.ProcData.p_time; - int dt = proc_data.total_time - EA_AppData.ProcData.total_time; - float util = 100 * EA_APP_NUM_THREADS * (float)dp/ (float)dt; - EA_AppData.ProcData.p_time = proc_data.p_time; - EA_AppData.ProcData.total_time = proc_data.total_time; - EA_AppData.HkTlm.ActiveAppUtil = util; - - return; -} - -EA_ProcData_t EA_ParsePidUtil(int32 pid) -{ - EA_ProcData_t procData; - unsigned long long int utime = 0; - unsigned long long int ntime = 0; - unsigned long long int stime = 0; - unsigned long long int itime = 0; - unsigned long long int io_wait = 0; - unsigned long long int irq = 0; - unsigned long long int soft_irq = 0; - unsigned long long int steal = 0; - unsigned long long int guest = 0; - unsigned long long int guest_nice = 0; - unsigned long long int sys_time, idle_time, total_time, virt_time; - - FILE* proc_stat = fopen("/proc/stat", "r"); - if (proc_stat == NULL) { - OS_printf("Unable to open stat"); - } - - char buf[1024]; - char* data = fgets(buf, sizeof(buf) - 1, proc_stat); - if (data == NULL) - { - OS_printf("Unable to read stat"); - } - - fclose(proc_stat); - - sscanf(buf, "cpu %16llu %16llu %16llu %16llu %16llu %16llu %16llu %16llu %16llu %16llu", - &utime, &ntime, &stime, &itime, &io_wait, &irq, &soft_irq, &steal, &guest, &guest_nice); - utime = utime - guest; - ntime = ntime - guest_nice; - idle_time = itime + io_wait; - sys_time = stime + irq + soft_irq; - virt_time = guest + guest_nice; - total_time = utime + ntime + sys_time + idle_time + steal + virt_time; - procData.total_time = total_time; - - char path[64]; - snprintf(path, sizeof(path), "/proc/%li/stat", pid); - FILE* pid_stat = fopen(path, "r"); - if (pid_stat == NULL) { - OS_printf("Unable to open pid_stat"); - } - - memset(buf, '\0', 1024); - data = fgets(buf, sizeof(buf) - 1, pid_stat); - if (data == NULL) - { - OS_printf("Unable to read pid_stat"); - } - - int utime_ln = 13; - int stime_ln = 14; - int count_ndx = 0; - char *tok; - for (tok = strtok(data," "); tok != NULL; tok = strtok(NULL, " ")) - { - if (count_ndx == utime_ln) - { - utime = atol(tok); - } - if (count_ndx == stime_ln) - { - stime = atol(tok); - } - count_ndx++; - } - - fclose(pid_stat); - - procData.p_time = utime + stime; - - return(procData); -} diff --git a/config/obc/cpd/target/apps/ea/unit_test/ea-custom-ut.supp b/config/obc/cpd/target/apps/ea/unit_test/ea-custom-ut.supp deleted file mode 100644 index f460b1d85..000000000 --- a/config/obc/cpd/target/apps/ea/unit_test/ea-custom-ut.supp +++ /dev/null @@ -1,32 +0,0 @@ -# The following hits are a result of mallocs in UtList_Add. This is -# unit test specific code and does not impact the flight code. - -{ - - Memcheck:Leak - match-leak-kinds: reachable - fun:malloc - fun:UtList_Add - fun:Ut_CFE_EVS_SendEventHook - fun:CFE_EVS_SendEvent - fun:EA_TermAppCustom - fun:Test_EA_Custom_TermApp_Nominal - fun:UtTest_Run - fun:main -} - -{ - - Memcheck:Leak - match-leak-kinds: reachable - fun:malloc - fun:UtList_Add - fun:Ut_CFE_EVS_SendEventHook - fun:CFE_EVS_SendEvent - fun:EA_TermAppCustom - fun:Test_EA_Custom_TermApp_Nominal - fun:UtTest_Run - fun:main -} - -################################### diff --git a/config/obc/cpd/target/apps/ea/unit_test/ea_custom_test.c b/config/obc/cpd/target/apps/ea/unit_test/ea_custom_test.c deleted file mode 100644 index cf816c08d..000000000 --- a/config/obc/cpd/target/apps/ea/unit_test/ea_custom_test.c +++ /dev/null @@ -1,200 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ - -#include "ea_custom_test.h" -#include "ea_test_utils.h" -#include "ea_app.h" -#include "ea_custom.h" -#include "ea_msg.h" - -#include "uttest.h" -#include "ut_osapi_stubs.h" -#include "ut_cfe_sb_stubs.h" -#include "ut_cfe_es_stubs.h" -#include "ut_cfe_es_hooks.h" -#include "ut_cfe_evs_stubs.h" -#include "ut_cfe_evs_hooks.h" -#include "ut_cfe_time_stubs.h" -#include "ut_cfe_psp_memutils_stubs.h" -#include "ut_cfe_tbl_stubs.h" -#include "ut_cfe_fs_stubs.h" -#include "ut_cfe_time_stubs.h" - -char CUSTOM_APP_PATH[OS_MAX_PATH_LEN] = "/usr/bin/python"; -char CUSTOM_TEST_ARG[OS_MAX_PATH_LEN] = "noop.py"; - -int FORK_RET_CODE; -int EXECVP_RET_CODE; -int KILL_RET_CODE; -int WAITPID_RET_CODE; - -int PERFMON_SAMPLES = 50; - -/** - * Test EA_StartAppCustom(), Register Child Task Error - */ -void Test_EA_Custom_StartApp_RegisterChildTaskError(void) -{ - /* Set to cause message "StartApp Child Task Registration failed!" to be printed */ - Ut_CFE_ES_SetReturnCode(UT_CFE_ES_REGISTERCHILDTASK_INDEX, -1, 1); - - /* Execute the function being tested */ - EA_StartAppCustom(); - - /* Verify results */ - /* Note: Cannot verify line OS_printf("StartApp Child Task Registration failed!\n") */ - UtAssert_True (EA_AppData.ChildAppTaskID == 0, "Child task ID = 0"); - UtAssert_True (EA_AppData.ChildAppTaskInUse == FALSE, "Child task not in use"); -} - -/** - * Test EA_StartAppCustom(), Failed fork - */ -void Test_EA_Custom_StartApp_FailFork(void) -{ - /* Set to cause fork to fail */ - FORK_RET_CODE = -1; - - /* Execute the function being tested */ - EA_StartAppCustom(); - - /* Verify results */ - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); - UtAssert_EventSent(EA_CMD_ERR_EID, CFE_EVS_ERROR, - "Error starting new process", "Error starting new process"); - UtAssert_True(EA_AppData.HkTlm.usCmdErrCnt==1,"Command Error Count = 1"); -} - -/** - * Test EA_StartAppCustom(), Nominal - */ -void Test_EA_Custom_StartApp_Nominal(void) -{ - /* Set so everything looks valid */ - strncpy(EA_AppData.ChildData.Cmd, CUSTOM_APP_PATH, OS_MAX_PATH_LEN); - strncpy(EA_AppData.ChildData.Args, CUSTOM_TEST_ARG, OS_MAX_PATH_LEN); - FORK_RET_CODE = 1; - WAITPID_RET_CODE = 2; - - /* Execute the function being tested */ - EA_StartAppCustom(); - - /* Verify results */ - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); - UtAssert_EventSent(EA_INF_APP_START_EID, CFE_EVS_INFORMATION, "External application started", "External application started"); - UtAssert_True(EA_AppData.HkTlm.usCmdCnt==1,"Command Count = 1"); - - /* Verify cleanup too since app instantly exits for test */ - UtAssert_True(EA_AppData.HkTlm.ActiveAppPID==0,"ActiveAppPID = 0"); - UtAssert_True(EA_AppData.HkTlm.ActiveAppUtil==0,"ActiveAppUtil = 0");// - UtAssert_True(EA_AppData.ChildAppTaskInUse==FALSE,"ChildAppTaskInUse = FALSE"); - UtAssert_StrCmp(EA_AppData.HkTlm.LastAppRun, CUSTOM_TEST_ARG, "Last Active App set"); - UtAssert_True(EA_AppData.HkTlm.LastAppStatus==2,"LastAppStatus = waitpid return code"); -} - -/** - * Test EA_TermAppCustom(), No app running - */ -void Test_EA_Custom_TermApp_NoneActive(void) -{ - /* Set to cause conditional to fail */ - EA_AppData.HkTlm.ActiveAppPID = 0; - - /* Execute the function being tested */ - EA_TermAppCustom(); - - /* Verify results */ - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); - UtAssert_EventSent(EA_CMD_ERR_EID, CFE_EVS_ERROR, - "Attempted to terminate app while none executing", "No active app"); - UtAssert_True(EA_AppData.HkTlm.usCmdErrCnt==1,"Command Error Count = 1"); -} - -/** - * Test EA_TermAppCustom(), Failed kill - */ -void Test_EA_Custom_TermApp_KillFail(void) -{ - /* Set to cause kill to fail */ - EA_AppData.HkTlm.ActiveAppPID = 1; - KILL_RET_CODE = -1; - - /* Execute the function being tested */ - EA_TermAppCustom(); - - /* Verify results */ - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); - UtAssert_EventSent(EA_CMD_ERR_EID, CFE_EVS_ERROR, - "Unable to terminate application", "Unable to terminate application"); - UtAssert_True(EA_AppData.HkTlm.usCmdErrCnt==1,"Command Error Count = 1"); -} - -/** - * Test EA_TermAppCustom(), Nominal - */ -void Test_EA_Custom_TermApp_Nominal(void) -{ - /* Set active app params that TermApp will clear or copy to last app params */ - EA_AppData.HkTlm.ActiveAppPID = 1; - EA_AppData.HkTlm.ActiveAppUtil = 2; - EA_AppData.ChildAppTaskInUse = TRUE; - strncpy(EA_AppData.HkTlm.ActiveApp, CUSTOM_TEST_ARG, OS_MAX_PATH_LEN); - KILL_RET_CODE = 0; - - /* Execute the function being tested */ - EA_TermAppCustom(); - - /* Verify results */ - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); - UtAssert_EventSent(EA_INF_APP_TERM_EID, CFE_EVS_INFORMATION,"", "External application terminated"); - UtAssert_True(EA_AppData.HkTlm.usCmdCnt==1,"Command Count = 1"); - UtAssert_True(EA_AppData.HkTlm.ActiveAppPID==0,"ActiveAppPID = 0"); - UtAssert_True(EA_AppData.HkTlm.ActiveAppUtil==0,"ActiveAppUtil = 0");// - UtAssert_True(EA_AppData.ChildAppTaskInUse==FALSE,"ChildAppTaskInUse = FALSE"); - UtAssert_StrCmp(EA_AppData.HkTlm.LastAppRun, CUSTOM_TEST_ARG, "Last Active App set"); - UtAssert_True(EA_AppData.HkTlm.LastAppStatus==-1,"LastAppStatus = -1"); -} - -/************************************************************************** - * Rollup Test Cases - **************************************************************************/ -void EA_Custom_Test_AddTestCases(void) -{ - UtTest_Add(Test_EA_Custom_StartApp_RegisterChildTaskError, EA_Test_Setup, EA_Test_TearDown, "Test_EA_Custom_StartApp_RegisterChildTaskError"); - UtTest_Add(Test_EA_Custom_StartApp_FailFork, EA_Test_Setup, EA_Test_TearDown, "Test_EA_Custom_StartApp_FailFork"); - UtTest_Add(Test_EA_Custom_StartApp_Nominal, EA_Test_Setup, EA_Test_TearDown, "Test_EA_Custom_StartApp_Nominal"); - UtTest_Add(Test_EA_Custom_TermApp_NoneActive, EA_Test_Setup, EA_Test_TearDown, "Test_EA_Custom_TermApp_NoneActive"); - UtTest_Add(Test_EA_Custom_TermApp_KillFail, EA_Test_Setup, EA_Test_TearDown, "Test_EA_Custom_TermApp_KillFail"); - UtTest_Add(Test_EA_Custom_TermApp_Nominal, EA_Test_Setup, EA_Test_TearDown, "Test_EA_Custom_TermApp_Nominal"); -} - diff --git a/config/obc/cpd/target/apps/ea/unit_test/ea_custom_test.h b/config/obc/cpd/target/apps/ea/unit_test/ea_custom_test.h deleted file mode 100644 index 0ba43986e..000000000 --- a/config/obc/cpd/target/apps/ea/unit_test/ea_custom_test.h +++ /dev/null @@ -1,49 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ - -#ifndef EA_CUSTOM_TEST_H -#define EA_CUSTOM_TEST_H - -#ifdef __cplusplus -extern "C" { -#endif - -void EA_Custom_Test_AddTestCases(void); -int EA_CalibrateTop(int pid); -int EA_GetPidUtil(int pid, int util_ndx); - -#ifdef __cplusplus -} -#endif - -#endif /* EA_CUSTOM_TEST_H */ diff --git a/config/obc/cpd/target/apps/ea/unit_test/ea_mock_os_calls.c b/config/obc/cpd/target/apps/ea/unit_test/ea_mock_os_calls.c deleted file mode 100644 index ec8b52ec8..000000000 --- a/config/obc/cpd/target/apps/ea/unit_test/ea_mock_os_calls.c +++ /dev/null @@ -1,62 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ - -#include - -int FORK_RET_CODE = 0; -int EXECVP_RET_CODE = 0; -int KILL_RET_CODE = 0; -int WAITPID_RET_CODE = 0; - -//void __real_fork(); - -pid_t __wrap_fork() -{ - return FORK_RET_CODE; -} - -int __wrap_execvp(const char *file, char *const argv[]) -{ - return EXECVP_RET_CODE; -} - -int __wrap_kill(int pid, int signal) -{ - return KILL_RET_CODE; -} - -pid_t __wrap_waitpid(pid_t pid, int *status, int options) -{ - *status = WAITPID_RET_CODE; - return WAITPID_RET_CODE; -} diff --git a/config/obc/cpd/target/apps/ea/unit_test/ea_mock_os_calls.h b/config/obc/cpd/target/apps/ea/unit_test/ea_mock_os_calls.h deleted file mode 100644 index ac9d19b7f..000000000 --- a/config/obc/cpd/target/apps/ea/unit_test/ea_mock_os_calls.h +++ /dev/null @@ -1,57 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ - -#ifndef EA_MOCK_OS_CALLS_H -#define EA_MOCK_OS_CALLS_H - -#ifdef __cplusplus -extern "C" { -#endif - -//#define fork() mock_fork() -//#define execvp(...) mock_execvp(__VA_ARGS__) -//#define kill(...) mock_kill(__VA_ARGS__) - -extern int FORK_RET_CODE; -extern int EXECVP_RET_CODE; -extern int KILL_RET_CODE; -extern int WAITPID_RET_CODE -//int __wrap_fork(); -//int __wrap_execvp(const char *file, char *const argv[]); -//int __wrap_kill(int pid, int signal); - -#ifdef __cplusplus -} -#endif - -#endif /* MOCK_OS_CALLS_H */ diff --git a/config/obc/cpd/target/apps/ea/unit_test/ea_perfmon_test.c b/config/obc/cpd/target/apps/ea/unit_test/ea_perfmon_test.c deleted file mode 100644 index c3554a95f..000000000 --- a/config/obc/cpd/target/apps/ea/unit_test/ea_perfmon_test.c +++ /dev/null @@ -1,192 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ - -#include "ea_perfmon_test.h" -#include "ea_test_utils.h" -#include "ea_app.h" -#include "ea_custom.h" -#include "ea_msg.h" - -#include "uttest.h" -#include "ut_osapi_stubs.h" -#include "ut_cfe_sb_stubs.h" -#include "ut_cfe_es_stubs.h" -#include "ut_cfe_es_hooks.h" -#include "ut_cfe_evs_stubs.h" -#include "ut_cfe_evs_hooks.h" -#include "ut_cfe_time_stubs.h" -#include "ut_cfe_psp_memutils_stubs.h" -#include "ut_cfe_tbl_stubs.h" -#include "ut_cfe_fs_stubs.h" -#include "ut_cfe_time_stubs.h" - -char PERFMON_APP_PATH[OS_MAX_PATH_LEN] = "/usr/bin/python"; -char PERFMON_TEST_ARG_FIB[OS_MAX_PATH_LEN] = "fib.py"; -char PERFMON_TEST_ARG_SLP[OS_MAX_PATH_LEN] = "sleep.py"; -int PERFMON_SAMPLES = 5; - -/** - * Test EA_PerfmonCustom(), Nominal - */ -void Test_EA_PerfmonCustom_Nominal(void) -{ - /* - ** Create child process to execute test app - */ - pid_t pid = fork(); - /* - ** Child process - */ - if (pid == 0) - { - char *argv[] = {PERFMON_APP_PATH, PERFMON_TEST_ARG_FIB, NULL}; - if(execvp(PERFMON_APP_PATH, argv) == -1) - { - printf("Unable to execute new process\n"); - } - exit(0); - } - /* - ** Failed Fork - */ - else if (pid == -1) - { - printf("Unable to execute fork\n"); - } - /* - ** Parent process - */ - else - { - int high_util_flag = 0; - int low_util_flag = 0; - int util = 0; - int count = 0; - while(count < PERFMON_SAMPLES) - { - /* Get current util */ - EA_PerfmonCustom(pid); - util = EA_AppData.HkTlm.ActiveAppUtil; - - /* Test if util in expected ranges */ - if(util >= 0 && util <= 100) - { - low_util_flag = 1; - } - if(util > 30 && util <= 100) - { - high_util_flag = 1; - } - count += 1; - sleep(1); - } - - /* Verify results */ - UtAssert_True(low_util_flag==1, "Hit low util threshold"); - UtAssert_True(high_util_flag==1, "Hit high util threshold"); - } -} - -/** - * Test EA_PerfmonCustom(), Idle - */ -void Test_EA_PerfmonCustom_Idle(void) -{ - /* - ** Create child process to execute test app - */ - pid_t pid = fork(); - /* - ** Child process - */ - if (pid == 0) - { - char *argv[] = {PERFMON_APP_PATH, PERFMON_TEST_ARG_SLP, NULL}; - if(execvp(PERFMON_APP_PATH, argv) == -1) - { - printf("Unable to execute new process\n"); - } - exit(0); - } - /* - ** Failed Fork - */ - else if (pid == -1) - { - printf("Unable to execute fork\n"); - } - /* - ** Parent process - */ - else - { - int high_util_flag = 0; - int low_util_flag = 0; - int util = 0; - int count = 0; - while(count < PERFMON_SAMPLES) - { - /* Get current util */ - EA_PerfmonCustom(pid); - util = EA_AppData.HkTlm.ActiveAppUtil; - - /* Test if util in expected ranges */ - if(util >= 0 && util <= 100) - { - low_util_flag = 1; - } - if(util > 50 && util <= 100) - { - high_util_flag = 1; - } - count += 1; - sleep(1); - } - - /* Verify results */ - UtAssert_True(low_util_flag==1, "Hit low util threshold"); - UtAssert_True(high_util_flag==0, "Hit high util threshold"); - } -} - - - -/************************************************************************** - * Rollup Test Cases - **************************************************************************/ -void EA_Perfmon_Test_AddTestCases(void) -{ - UtTest_Add(Test_EA_PerfmonCustom_Nominal, EA_Test_Setup, EA_Test_TearDown, "Test_EA_PerfmonCustom_Nominal"); - UtTest_Add(Test_EA_PerfmonCustom_Idle, EA_Test_Setup, EA_Test_TearDown, "Test_EA_PerfmonCustom_Idle"); -} - diff --git a/config/obc/cpd/target/apps/ea/unit_test/ea_perfmon_test.h b/config/obc/cpd/target/apps/ea/unit_test/ea_perfmon_test.h deleted file mode 100644 index 0ba43986e..000000000 --- a/config/obc/cpd/target/apps/ea/unit_test/ea_perfmon_test.h +++ /dev/null @@ -1,49 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ - -#ifndef EA_CUSTOM_TEST_H -#define EA_CUSTOM_TEST_H - -#ifdef __cplusplus -extern "C" { -#endif - -void EA_Custom_Test_AddTestCases(void); -int EA_CalibrateTop(int pid); -int EA_GetPidUtil(int pid, int util_ndx); - -#ifdef __cplusplus -} -#endif - -#endif /* EA_CUSTOM_TEST_H */ diff --git a/config/obc/cpd/target/apps/ea/unit_test/ea_perfmon_testrunner.c b/config/obc/cpd/target/apps/ea/unit_test/ea_perfmon_testrunner.c deleted file mode 100644 index cbfb60861..000000000 --- a/config/obc/cpd/target/apps/ea/unit_test/ea_perfmon_testrunner.c +++ /dev/null @@ -1,46 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ - -#include "uttest.h" - -#include "ea_perfmon_test.h" - -void EA_Perfmon_Test_AddTestCases(void); - -int main(void) -{ - EA_Perfmon_Test_AddTestCases(); - - return(UtTest_Run()); -} - diff --git a/config/obc/cpd/target/apps/ea/unit_test/ea_test_utils.c b/config/obc/cpd/target/apps/ea/unit_test/ea_test_utils.c deleted file mode 100644 index b82004805..000000000 --- a/config/obc/cpd/target/apps/ea/unit_test/ea_test_utils.c +++ /dev/null @@ -1,73 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ - -#include "ea_test_utils.h" - -#include "ut_cfe_evs_hooks.h" -#include "ut_cfe_time_stubs.h" -#include "ut_cfe_psp_memutils_stubs.h" -#include "ut_cfe_tbl_stubs.h" -#include "ut_cfe_tbl_hooks.h" -#include "ut_cfe_fs_stubs.h" -#include "ut_cfe_time_stubs.h" -#include "ut_osapi_stubs.h" -#include "ut_osfileapi_stubs.h" -#include "ut_cfe_sb_stubs.h" -#include "ut_cfe_es_stubs.h" -#include "ut_cfe_evs_stubs.h" - -#include - -/* - * Function Definitions - */ - -void EA_Test_Setup(void) -{ - /* initialize test environment to default state for every test */ - - CFE_PSP_MemSet(&EA_AppData, 0x00, sizeof(EA_AppData_t)); - - Ut_CFE_EVS_Reset(); - Ut_CFE_FS_Reset(); - Ut_CFE_TIME_Reset(); - Ut_CFE_TBL_Reset(); - Ut_CFE_SB_Reset(); - Ut_CFE_ES_Reset(); - Ut_OSAPI_Reset(); - Ut_OSFILEAPI_Reset(); -} - -void EA_Test_TearDown(void) { - CFE_PSP_MemSet(&EA_AppData, 0x00, sizeof(EA_AppData_t)); -} diff --git a/config/obc/cpd/target/apps/ea/unit_test/ea_test_utils.h b/config/obc/cpd/target/apps/ea/unit_test/ea_test_utils.h deleted file mode 100644 index f4f8f8518..000000000 --- a/config/obc/cpd/target/apps/ea/unit_test/ea_test_utils.h +++ /dev/null @@ -1,62 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ - -#ifndef EA_TEST_UTILS_H -#define EA_TEST_UTILS_H - -/* - * Includes - */ - -#include "ea_app.h" - -extern EA_AppData_t EA_AppData; - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * Function Definitions - */ - -void EA_Test_Setup(void); -void EA_Test_TearDown(void); - - -#ifdef __cplusplus -} -#endif - -#endif /* EA_TEST_UTILS_H */ - diff --git a/config/obc/cpd/target/apps/ea/unit_test/ea_testrunner.c b/config/obc/cpd/target/apps/ea/unit_test/ea_testrunner.c deleted file mode 100644 index 9f37d7cb6..000000000 --- a/config/obc/cpd/target/apps/ea/unit_test/ea_testrunner.c +++ /dev/null @@ -1,44 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ - -#include "uttest.h" - -#include "ea_custom_test.h" - -int main(void) -{ - EA_Custom_Test_AddTestCases(); - - return(UtTest_Run()); -} - diff --git a/config/obc/cpd/target/apps/ea/unit_test/fib.py b/config/obc/cpd/target/apps/ea/unit_test/fib.py deleted file mode 100644 index 863d2a64d..000000000 --- a/config/obc/cpd/target/apps/ea/unit_test/fib.py +++ /dev/null @@ -1,14 +0,0 @@ -import sys -import time - -def fib(n): - if n < 0: - return 0 - if n == 0 or n == 1: - return 1 - else: - return fib(n-1) + fib(n-2) - -f = fib(40) - -sys.exit(3) diff --git a/config/obc/cpd/target/apps/ea/unit_test/noop.py b/config/obc/cpd/target/apps/ea/unit_test/noop.py deleted file mode 100644 index de2b0fb69..000000000 --- a/config/obc/cpd/target/apps/ea/unit_test/noop.py +++ /dev/null @@ -1,3 +0,0 @@ -import sys -print "Python: Noop" -sys.exit(3) diff --git a/config/obc/cpd/target/apps/ea/unit_test/sleep.py b/config/obc/cpd/target/apps/ea/unit_test/sleep.py deleted file mode 100644 index 90aa057a5..000000000 --- a/config/obc/cpd/target/apps/ea/unit_test/sleep.py +++ /dev/null @@ -1,6 +0,0 @@ -import sys -import time - -time.sleep(5) - -sys.exit(3) diff --git a/config/obc/cpd/target/apps/flow/CMakeLists.txt b/config/obc/cpd/target/apps/flow/CMakeLists.txt deleted file mode 100644 index af4c74ebf..000000000 --- a/config/obc/cpd/target/apps/flow/CMakeLists.txt +++ /dev/null @@ -1,8 +0,0 @@ -set(APP_NAME flow) - -buildliner_add_table( - ${APP_NAME} - NAME flow_config - SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/tables/flow_config.c - INCLUDES ${CMAKE_CURRENT_SOURCE_DIR}/src/ -) diff --git a/config/obc/cpd/target/apps/flow/tables/flow_config.c b/config/obc/cpd/target/apps/flow/tables/flow_config.c deleted file mode 100644 index c5defdaa1..000000000 --- a/config/obc/cpd/target/apps/flow/tables/flow_config.c +++ /dev/null @@ -1,80 +0,0 @@ -/* -** Include Files -*/ -#include "cfe_tbl_filedef.h" -#include "flow_tbldefs.h" - - -/* Default FLOW config table data */ -FLOW_ConfigTbl_t FLOW_ConfigTbl = -{ - /** \brief Horizontal field of view. - * - * \par Limits: - * default 0.088. - */ - 0.10934f, - /** \brief Size of sliding window. - * - * \par Limits: - * Min > Max (incr.) 2 > 10, default 8. - */ - 8, - /** \brief Number of blocks of sliding window. - * - * \par Limits: - * Min > Max (incr.) 2 > 10, default 5. - */ - 5, - /** \brief Default image output rate. - * - * \par Limits: - * default 15. - */ - 10, - /** \brief Default image width. - * - * \par Limits: - * default 64. - */ - 64, - /** \brief Default image height. - * - * \par Limits: - * default 64. - */ - 64, - /** \brief Default image search size. - * - * \par Limits: - * default 6. - */ - 6, - /** \brief Default feature threshold. - * - * \par Limits: - * default 30. - */ - 30, - /** \brief Default value threshold. - * - * \par Limits: - * default 3000. - */ - 3000, - /** \brief Mean count threshold. - * - * \par Limits: - * default 10. - */ - 10 -}; - - -/* Table file header */ -CFE_TBL_FILEDEF(FLOW_ConfigTbl, FLOW.CONFIG_TBL, FLOW default config table, flow_config.tbl ) - -/*======================================================================================= -** End of file flow_config.c -**=====================================================================================*/ - diff --git a/config/obc/cpd/target/apps/vc/CMakeLists.txt b/config/obc/cpd/target/apps/vc/CMakeLists.txt deleted file mode 100644 index 70e2b99f0..000000000 --- a/config/obc/cpd/target/apps/vc/CMakeLists.txt +++ /dev/null @@ -1,72 +0,0 @@ -set(APP_NAME vc) - -buildliner_add_app_unit_test(vc-custom-ut - UTASSERT - SOURCES - # Unit test runner - ${CMAKE_CURRENT_SOURCE_DIR}/unit_test/vc_custom_testrunner.c - # Unit test for custom device module v4l - ${CMAKE_CURRENT_SOURCE_DIR}/unit_test/vc_dev_io_v4l_test/vc_app_custom_device_test.c - ${CMAKE_CURRENT_SOURCE_DIR}/unit_test/vc_dev_io_v4l_test/vc_app_custom_device_test.h - ${CMAKE_CURRENT_SOURCE_DIR}/unit_test/vc_dev_io_v4l_test/vc_custom_device_test_utils.c - ${CMAKE_CURRENT_SOURCE_DIR}/unit_test/vc_dev_io_v4l_test/vc_custom_device_test_utils.h - # Unit test for custom transmit module - ${CMAKE_CURRENT_SOURCE_DIR}/unit_test/vc_transmit_udp_test/vc_app_custom_transmit_test.c - ${CMAKE_CURRENT_SOURCE_DIR}/unit_test/vc_transmit_udp_test/vc_app_custom_transmit_test.h - ${CMAKE_CURRENT_SOURCE_DIR}/unit_test/vc_transmit_udp_test/vc_custom_transmit_test_utils.c - ${CMAKE_CURRENT_SOURCE_DIR}/unit_test/vc_transmit_udp_test/vc_custom_transmit_test_utils.h - # Unit test for shared custom module - ${CMAKE_CURRENT_SOURCE_DIR}/unit_test/vc_custom_shared_test/vc_app_custom_shared_test.c - ${CMAKE_CURRENT_SOURCE_DIR}/unit_test/vc_custom_shared_test/vc_app_custom_shared_test.h - ${CMAKE_CURRENT_SOURCE_DIR}/unit_test/vc_custom_shared_test/vc_custom_shared_test_utils.c - ${CMAKE_CURRENT_SOURCE_DIR}/unit_test/vc_custom_shared_test/vc_custom_shared_test_utils.h - # Platform stubs - ${CMAKE_CURRENT_SOURCE_DIR}/unit_test/vc_platform_stubs/vc_platform_stubs.c - ${CMAKE_CURRENT_SOURCE_DIR}/unit_test/vc_platform_stubs/vc_platform_stubs.h - # Custom stubs - ${CMAKE_CURRENT_SOURCE_DIR}/unit_test/vc_app_custom_stubs/vc_app_custom_stubs.c - ${CMAKE_CURRENT_SOURCE_DIR}/unit_test/vc_app_custom_stubs/vc_app_custom_stubs.h - # VC App stubs - ${CMAKE_CURRENT_SOURCE_DIR}/unit_test/vc_app_stubs/vc_app_stubs.c - ${CMAKE_CURRENT_SOURCE_DIR}/unit_test/vc_app_stubs/vc_app_stubs.h - # Custom code (code under test) - ${CMAKE_CURRENT_SOURCE_DIR}/src/vc_transmit_udp/vc_transmit_udp.c - ${CMAKE_CURRENT_SOURCE_DIR}/src/vc_transmit_udp/vc_transmit_udp.h - # Custom device code v4l - ${CMAKE_CURRENT_SOURCE_DIR}/src/vc_dev_io_v4l/vc_dev_io_v4l.c - ${CMAKE_CURRENT_SOURCE_DIR}/src/vc_dev_io_v4l/vc_dev_io_v4l.h - # Custom shared code - ${CMAKE_CURRENT_SOURCE_DIR}/src/vc_custom.c - ${CMAKE_CURRENT_SOURCE_DIR}/src/vc_custom_shared.h - - INCLUDES - # Custom code under test - ${CMAKE_CURRENT_SOURCE_DIR}/src/ - # Custom v4l code - ${CMAKE_CURRENT_SOURCE_DIR}/src/vc_dev_io_v4l/ - # Custom udp code - ${CMAKE_CURRENT_SOURCE_DIR}/src/vc_transmit_udp/ - # Test code - ${CMAKE_CURRENT_SOURCE_DIR}/unit_test/ - # Custom v4l code - ${CMAKE_CURRENT_SOURCE_DIR}/unit_test/vc_dev_io_v4l_test/ - # Custom udp transmit code - ${CMAKE_CURRENT_SOURCE_DIR}/unit_test/vc_transmit_udp_test/ - ${CMAKE_CURRENT_SOURCE_DIR}/unit_test/vc_transmit_udp_test/ - ${CMAKE_CURRENT_SOURCE_DIR}/unit_test/vc_platform_stubs/ - ${CMAKE_CURRENT_SOURCE_DIR}/unit_test/vc_app_stubs/ - ${CMAKE_CURRENT_SOURCE_DIR}/unit_test/vc_custom_shared_test/ - # Sealed code - ${PROJECT_SOURCE_DIR}/apps/vc/fsw/src/ - - WRAPPERS - # Wrapped functions (see platform stubs) - ioctl - open - close - select - socket - bind - sendto - recv -) diff --git a/config/obc/cpd/target/apps/vc/src/CMakeLists.txt b/config/obc/cpd/target/apps/vc/src/CMakeLists.txt deleted file mode 100644 index 89d4afd8b..000000000 --- a/config/obc/cpd/target/apps/vc/src/CMakeLists.txt +++ /dev/null @@ -1,8 +0,0 @@ -# Set source for custom code. -set(APP_CUSTOM_SRC - ${CMAKE_CURRENT_SOURCE_DIR}/vc_transmit_udp/vc_transmit_udp.c - ${CMAKE_CURRENT_SOURCE_DIR}/vc_dev_io_v4l/vc_dev_io_v4l.c - ${CMAKE_CURRENT_SOURCE_DIR}/vc_custom.c - PARENT_SCOPE - ) - diff --git a/config/obc/cpd/target/apps/vc/src/vc_custom.c b/config/obc/cpd/target/apps/vc/src/vc_custom.c deleted file mode 100644 index ea878486f..000000000 --- a/config/obc/cpd/target/apps/vc/src/vc_custom.c +++ /dev/null @@ -1,246 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ - -#include "vc_custom_shared.h" -#include "vc_cmds.h" -#include - -/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ -/* */ -/* Process New Custom Commands. Raise an error event if the */ -/* command is unknown. */ -/* */ -/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ -void VC_ProcessNewCustomCmds(CFE_SB_Msg_t* MsgPtr) -{ - uint32 uiCmdCode=0; - - if (MsgPtr != NULL) - { - uint16 inSize = CFE_SB_GetTotalMsgLength(MsgPtr); - uiCmdCode = CFE_SB_GetCmdCode(MsgPtr); - - switch (uiCmdCode) - { - case VC_STARTSTREAMING_CC: - { - VC_StartStreamingCmd(MsgPtr); - break; - } - case VC_STOPSTREAMING_CC: - { - VC_StopStreamingCmd(MsgPtr); - break; - } - default: - { - VC_AppData.HkTlm.usCmdErrCnt++; - (void) CFE_EVS_SendEvent(VC_MSGID_ERR_EID, CFE_EVS_ERROR, - "Recvd invalid cmdId (%u)", (unsigned int)uiCmdCode); - break; - } - } - } -} - - -void VC_StartStreamingCmd(CFE_SB_Msg_t* MsgPtr) -{ - VC_StartStreamCmd_t *CmdPtr = 0; - - uint16 ExpectedLength = sizeof(VC_StartStreamCmd_t); - - /* Verify command packet length */ - if (VC_VerifyCmdLength(MsgPtr, ExpectedLength)) - { - (void) CFE_EVS_SendEvent(VC_CMD_INF_EID, CFE_EVS_INFORMATION, "Start Streaming command received"); - - if (VC_AppData.AppState == VC_INITIALIZED) - { - CmdPtr = ((VC_StartStreamCmd_t *) MsgPtr); - - /* - ** NUL terminate the very end of the address string as a - ** safety measure - */ - CmdPtr->Address[VC_ADDRESS_LENGTH - 1] = '\0'; - - /* - ** Check if the address string is a nul string - */ - if(strlen(CmdPtr->Address) == 0) - { - VC_AppData.HkTlm.usCmdErrCnt++; - (void) CFE_EVS_SendEvent(VC_ADDR_NUL_ERR_EID, CFE_EVS_ERROR, - "NUL (empty) string specified for address"); - } - /* Check if the address is valid */ - else if (FALSE == VC_Address_Verification(CmdPtr->Address)) - { - VC_AppData.HkTlm.usCmdErrCnt++; - (void) CFE_EVS_SendEvent(VC_ADDR_ERR_EID, CFE_EVS_ERROR, - "Invalid string specified for address"); - } - /* Update the configuration */ - else if (FALSE == VC_Update_Destination(CmdPtr->Address, CmdPtr->Port)) - { - VC_AppData.HkTlm.usCmdErrCnt++; - (void) CFE_EVS_SendEvent(VC_INIT_ERR_EID, CFE_EVS_ERROR, - "Destination update failed in cmd start streaming"); - } - ///* Call VC_Transmit_Uninit() */ - //else if (FALSE == VC_Transmit_Uninit()) - //{ - //VC_AppData.HkTlm.usCmdErrCnt++; - //(void) CFE_EVS_SendEvent(VC_UNINIT_ERR_EID, CFE_EVS_ERROR, - //"VC_Transmit_Uninit failed in cmd start streaming"); - //} - ///* Call VC_Transmit_Init() */ - //else if (FALSE == VC_Transmit_Init()) - //{ - //VC_AppData.HkTlm.usCmdErrCnt++; - //(void) CFE_EVS_SendEvent(VC_INIT_ERR_EID, CFE_EVS_ERROR, - //"VC_Transmit_Init failed in cmd start streaming"); - //} - /* Call VC_Devices_Start() */ - else if (FALSE == VC_Devices_Start()) - { - VC_AppData.HkTlm.usCmdErrCnt++; - (void) CFE_EVS_SendEvent(VC_INIT_ERR_EID, CFE_EVS_ERROR, - "VC_Devices_Start failed in cmd start streaming"); - } - /* Success! */ - else - { - VC_AppData.AppState = VC_STREAMING; - VC_AppData.HkTlm.usCmdCnt++; - (void) CFE_EVS_SendEvent(VC_CMD_INF_EID, CFE_EVS_INFORMATION, - "VC started streaming to %s:%u", CmdPtr->Address, CmdPtr->Port); - } - } - else - { - VC_AppData.HkTlm.usCmdErrCnt++; - (void) CFE_EVS_SendEvent(VC_CMD_ERR_EID, CFE_EVS_ERROR, "VC is already streaming"); - } - } - return; -} /* End of VC_StartStreamingCmd() */ - - -void VC_StopStreamingCmd(CFE_SB_Msg_t* MsgPtr) -{ - uint16 ExpectedLength = sizeof(VC_NoArgCmd_t); - - /* Verify command packet length */ - if (VC_VerifyCmdLength(MsgPtr, ExpectedLength)) - { - (void) CFE_EVS_SendEvent(VC_CMD_INF_EID, CFE_EVS_INFORMATION, "Stop Streaming command received"); - - if (VC_AppData.AppState == VC_STREAMING) - { - if(FALSE == VC_Devices_Stop()) - { - VC_AppData.HkTlm.usCmdErrCnt++; - (void) CFE_EVS_SendEvent(VC_UNINIT_ERR_EID, CFE_EVS_ERROR, - "VC_Devices_Stop() failed"); - } - else - { - VC_AppData.AppState = VC_INITIALIZED; - VC_AppData.HkTlm.usCmdCnt++; - (void) CFE_EVS_SendEvent(VC_CMD_INF_EID ,CFE_EVS_INFORMATION, - "VC stopped streaming"); - } - } - else - { - VC_AppData.HkTlm.usCmdErrCnt++; - (void) CFE_EVS_SendEvent(VC_CMD_ERR_EID, CFE_EVS_ERROR, "VC is already not streaming"); - } - } - return; -} /* End of VC_StopStreamingCmd() */ - - -boolean VC_Custom_Max_Events_Not_Reached(int32 ind) -{ - boolean returnBool = FALSE; - if ((ind < VC_MAX_EVENT_FILTERS) && (ind > 0)) - { - returnBool = TRUE; - } - - return (returnBool); -} - - -int32 VC_Custom_Init_EventFilters(int32 ind, CFE_EVS_BinFilter_t *EventTbl) -{ - int32 customEventCount = ind; - - /* Null check */ - if(0 == EventTbl) - { - customEventCount = VC_CUSTOM_ERROR_CODE; - goto end_of_function; - } - - if(TRUE == VC_Custom_Max_Events_Not_Reached(customEventCount)) - { - EventTbl[ customEventCount].EventID = VC_SOCKET_ERR_EID; - EventTbl[customEventCount++].Mask = CFE_EVS_FIRST_16_STOP; - } - else - { - customEventCount = VC_CUSTOM_ERROR_CODE; - goto end_of_function; - } - - if(TRUE == VC_Custom_Max_Events_Not_Reached(customEventCount)) - { - EventTbl[ customEventCount].EventID = VC_DEVICE_ERR_EID; - EventTbl[customEventCount].Mask = CFE_EVS_FIRST_16_STOP; - } - else - { - customEventCount = VC_CUSTOM_ERROR_CODE; - goto end_of_function; - } - -end_of_function: - - return (customEventCount); -} - - diff --git a/config/obc/cpd/target/apps/vc/src/vc_custom_shared.h b/config/obc/cpd/target/apps/vc/src/vc_custom_shared.h deleted file mode 100644 index 03cf9a611..000000000 --- a/config/obc/cpd/target/apps/vc/src/vc_custom_shared.h +++ /dev/null @@ -1,160 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ - -#ifndef VC_CUSTOM_SHARED_H -#define VC_CUSTOM_SHARED_H -/************************************************************************ -** Includes -*************************************************************************/ -#include "cfe.h" -#include "vc_app.h" -#include "vc_custom.h" -//#include "vc_dev_io_udp/vc_dev_io_udp.h" -#include "vc_dev_io_v4l/vc_dev_io_v4l.h" - -/************************************************************************ -** Local Defines -*************************************************************************/ -/* start streaming command */ -#define VC_STARTSTREAMING_CC (2) -/* stop streaming command */ -#define VC_STOPSTREAMING_CC (3) - - -/************************************************************************ -** Structure Declarations -*************************************************************************/ -/** -** \brief Start Streaming Command -*/ -typedef struct -{ - uint8 CmdHeader[CFE_SB_CMD_HDR_SIZE]; - char Address[VC_ADDRESS_LENGTH]; - uint16 Port; -} VC_StartStreamCmd_t; - - -typedef enum { - -/** \brief 'VC - ' -** \event 'VC - ' -** -** \par Type: ERROR -** -** \par Cause: -** -** This event message is issued when a transmit resource encounters an -** socket error. -** -*/ - VC_SOCKET_ERR_EID = VC_EVT_CNT, - -/** \brief 'VC - ' -** \event 'VC - ' -** -** \par Type: ERROR -** -** \par Cause: -** -** This event message is issued when a device resource encounters an -** error. -** -*/ - VC_DEVICE_ERR_EID, - -/** \brief 'VC - ' -** \event 'VC - ' -** -** \par Type: ERROR -** -** \par Cause: -** -** This event message is issued when a start streaming command is -** received with a bad address command parameter. -** -*/ - VC_ADDR_ERR_EID, - -/** \brief 'VC - ' -** \event 'VC - ' -** -** \par Type: ERROR -** -** \par Cause: -** -** This event message is issued when a start streaming command is -** received with a NULL address command parameter. -** -*/ - VC_ADDR_NUL_ERR_EID, - -/** \brief Number of custom events -** -** \par Limits: -** int32 -*/ - VC_CUSTOM_EVT_CNT -} VC_CustomEventIds_t; - - -/************************************************************************ -** External Global Variables -*************************************************************************/ - -extern VC_AppData_t VC_AppData; - -/************************************************************************ -** Function Prototypes -*************************************************************************/ - -/************************************************************************/ -/** \brief Determines if the maximum of event filters has been reached. -** -** \par Description -** This function checks if an index has reached the maximum -** number of events. -** -** \par Assumptions, External Events, and Notes: -** None -** -** \param [in] ind The current index to check. -** -** -** \returns boolean -** -*************************************************************************/ -boolean VC_Custom_Max_Events_Not_Reached(int32 ind); - - -#endif /* VC_CUSTOM_SHARED_H */ diff --git a/config/obc/cpd/target/apps/vc/src/vc_dev_io_udp/vc_dev_io_udp.c b/config/obc/cpd/target/apps/vc/src/vc_dev_io_udp/vc_dev_io_udp.c deleted file mode 100644 index 25308f4e1..000000000 --- a/config/obc/cpd/target/apps/vc/src/vc_dev_io_udp/vc_dev_io_udp.c +++ /dev/null @@ -1,424 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ -/************************************************************************ -** Pragmas -*************************************************************************/ - -/************************************************************************ -** Includes -*************************************************************************/ -#include "vc_dev_io_udp.h" -#include "cfe.h" -#include -#include -#include -#include -#include -#include - -/************************************************************************ -** Local Defines -*************************************************************************/ - -/************************************************************************ -** Local Structure Declarations -*************************************************************************/ - -/************************************************************************ -** External Global Variables -*************************************************************************/ - -/************************************************************************ -** Global Variables -*************************************************************************/ - -/************************************************************************ -** Local Variables -*************************************************************************/ - -/************************************************************************ -** Local Function Definitions -*************************************************************************/ - -VC_AppCustomDevice_t VC_AppCustomDevice; - - -int32 VC_Devices_InitData(void) -{ - int32 iStatus = CFE_SUCCESS; - - /* Set all struct zero values */ - bzero(&VC_AppCustomDevice, sizeof(VC_AppCustomDevice)); - - /* Set all non-zero values for channel zero */ - VC_AppCustomDevice.ContinueFlag = TRUE; - VC_AppCustomDevice.Priority = VC_STREAMING_TASK_PRIORITY; - VC_AppCustomDevice.StreamingTask = VC_Stream_Task; - VC_AppCustomDevice.Channel[0].Status = VC_DEVICE_UNINITIALIZED; - VC_AppCustomDevice.Channel[0].Mode = VC_DEVICE_ENABLED; - VC_AppCustomDevice.Channel[0].Socket = 0; - VC_AppCustomDevice.Channel[0].Port = VC_GST_GAZEBO_PORT; - - return iStatus; -} - - -boolean VC_Devices_Start(void) -{ - int32 returnCode = 0; - - /* Set loop flag to continue forever */ - VC_AppCustomDevice.ContinueFlag = TRUE; - - /* Create the streaming task */ - returnCode = CFE_ES_CreateChildTask( - &VC_AppCustomDevice.ChildTaskID, - VC_STREAMING_TASK_NAME, - VC_AppCustomDevice.StreamingTask, - 0, - CFE_ES_DEFAULT_STACK_SIZE, - VC_AppCustomDevice.Priority, - VC_STREAMING_TASK_FLAGS); - - if(returnCode != CFE_SUCCESS) - { - VC_AppCustomDevice.ContinueFlag = FALSE; - return FALSE; - } - return TRUE; -} - - -boolean VC_Devices_Stop(void) -{ - int32 returnCode = CFE_SUCCESS; - /* Delete the child task */ - returnCode = CFE_ES_DeleteChildTask(VC_AppCustomDevice.ChildTaskID); - - /* Set streaming task loop flag to stop */ - VC_AppCustomDevice.ContinueFlag = FALSE; - - /* Set app state to initialized */ - VC_AppData.AppState = VC_INITIALIZED; - - if (returnCode != CFE_SUCCESS) - { - return FALSE; - } - return TRUE; -} - - -boolean VC_Devices_Init(void) -{ - if(-1 == VC_Init_CustomDevices()) - { - return FALSE; - } - return TRUE; -} - - -boolean VC_Devices_Uninit(void) -{ - if(-1 == VC_CleanupDevices()) - { - return FALSE; - } - return TRUE; -} - - -int32 VC_CleanupDevices(void) -{ - uint32 i = 0; - int32 returnCode = 0; - - for(i=0; i < VC_MAX_DEVICES; i++) - { - if(VC_AppCustomDevice.Channel[i].Mode == VC_DEVICE_ENABLED) - { - if(-1 == close(VC_AppCustomDevice.Channel[i].Socket)) - { - /* Close failed */ - returnCode = -1; - } - else - { - VC_AppCustomDevice.Channel[i].Mode = VC_DEVICE_DISABLED; - VC_AppCustomDevice.Channel[i].Socket = 0; - } - } - } - return returnCode; -} - - -void VC_Devices_Critical_Cleanup(void) -{ - uint8 i = 0; - - for(i=0; i < VC_MAX_DEVICES; i++) - { - if(VC_AppCustomDevice.Channel[i].Socket != 0) - { - close(VC_AppCustomDevice.Channel[i].Socket); - } - } - return; -} - - -int32 VC_Init_CustomDevices(void) -{ - int32 returnCode = 0; - int reuseaddr = 1; - struct sockaddr_in address; - uint32 i = 0; - - for (i=0; i < VC_MAX_DEVICES; i++) - { - /* if a device is enabled... */ - if(VC_AppCustomDevice.Channel[i].Mode == VC_DEVICE_ENABLED) - { - /* Create socket */ - VC_AppCustomDevice.Channel[i].Socket = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP); - /* if socket creation failed */ - - if (VC_AppCustomDevice.Channel[i].Socket < 0) - { - CFE_EVS_SendEvent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, "Socket errno: %i on channel %u", errno, (unsigned int)i); - returnCode = -1; - goto end_of_function; - } - /* socket creation success try to bind */ - setsockopt(VC_AppCustomDevice.Channel[i].Socket, SOL_SOCKET, - SO_REUSEADDR, &reuseaddr, sizeof(reuseaddr)); - bzero((char *) &address, sizeof(address)); - address.sin_family = AF_INET; - address.sin_addr.s_addr = htonl (INADDR_ANY); - address.sin_port = htons(VC_AppCustomDevice.Channel[i].Port); - /* if bind failed... */ - if((bind(VC_AppCustomDevice.Channel[i].Socket , (struct sockaddr *) &address, sizeof(address)) < 0)) - { - CFE_EVS_SendEvent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR,"Bind errno: %i on channel %u", errno, (unsigned int)i); - returnCode = -1; - goto end_of_function; - } - /* socket create and bind success */ - VC_AppCustomDevice.Channel[i].Status = VC_DEVICE_INITIALIZED; - CFE_EVS_SendEvent(VC_DEV_INF_EID, CFE_EVS_INFORMATION, - "VC Device initialized channel %u", (unsigned int)i); - } - } - -end_of_function: - - return returnCode; -} - - -void VC_Stream_Task(void) -{ - int32 returnCode = 0; - static int32 timeouts = 0; - - uint32 i = 0; - uint32 j = 0; - uint32 maxFd = 0; - static uint32 retryAttempts = 0; - fd_set fds; - - struct timeval timeValue; - uint32 iStatus = -1; - - iStatus = CFE_ES_RegisterChildTask(); - - if (iStatus == CFE_SUCCESS) - { - while (VC_AppCustomDevice.ContinueFlag == TRUE) - { - maxFd = 0; - returnCode = 0; - - /* Initialize the set */ - FD_ZERO(&fds); - - /* Add enabled and streaming devices to the fd set */ - for (i=0; i < VC_MAX_DEVICES; i++) - { - if(VC_AppCustomDevice.Channel[i].Mode == VC_DEVICE_ENABLED - && VC_AppCustomDevice.Channel[i].Status == VC_DEVICE_INITIALIZED) - { - FD_SET(VC_AppCustomDevice.Channel[i].Socket, &fds); - /* Get the greatest fd value for select() */ - if (VC_AppCustomDevice.Channel[i].Socket > maxFd) - { - /* maxFd is needed for select */ - maxFd = VC_AppCustomDevice.Channel[i].Socket; - } - } - } - /* If maxFd is > 0 a fd was added the set so call select */ - if (maxFd > 0) - { - CFE_ES_PerfLogEntry(VC_DEVICE_GET_PERF_ID); - /* Wait for a socket fd to become ready */ - /* timeout set to null = block indefinitely */ - returnCode = select(maxFd + 1, &fds, 0, 0, 0); - CFE_ES_PerfLogExit(VC_DEVICE_GET_PERF_ID); - } - else - { - /* No fd's were added to the set so error out */ - CFE_EVS_SendEvent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, - "VC can't start streaming no devices are streaming enabled"); - returnCode = -1; - goto end_of_function; - } - - /* select() wasn't successful */ - if (-1 == returnCode) - { - /* select was interrupted, try again */ - if (EINTR == errno) - { - if (retryAttempts == VC_MAX_RETRY_ATTEMPTS) - { - goto end_of_function; - } - retryAttempts++; - usleep(VC_MAX_RETRY_SLEEP_USEC); - CFE_EVS_SendEvent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, - "VC select was interrupted"); - continue; - } - else - { - /* select returned an error other than EINTR */ - CFE_EVS_SendEvent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, - "VC start streaming failed select() returned %i", errno); - goto end_of_function; - } - } - /* select() returned and a socket is ready */ - if(returnCode > 0) - { - /* Determine which socket is ready */ - for (i=0; i < VC_MAX_DEVICES; i++) - { - if(VC_AppCustomDevice.Channel[i].Mode == VC_DEVICE_ENABLED - && VC_AppCustomDevice.Channel[i].Status == VC_DEVICE_INITIALIZED) - { - if(FD_ISSET(VC_AppCustomDevice.Channel[i].Socket, &fds)) - { - /* Call send buffer with the socket that is ready */ - VC_Send_Buffer(i); - } - } - } - } - } /* end while loop */ - } /* end if status == success */ - -end_of_function: - - /* Streaming task is exiting so set app flag to initialized */ - VC_AppData.AppState = VC_INITIALIZED; - CFE_EVS_SendEvent(VC_DEV_INF_EID, CFE_EVS_INFORMATION, - "VC streaming task exited with return code %li task status (0x%08lX)", - returnCode, iStatus); - - /* The child task was successfully created so exit from it */ - if (iStatus == CFE_SUCCESS) - { - CFE_ES_ExitChildTask(); - } -} - - -int32 VC_Send_Buffer(uint8 DeviceID) -{ - int32 returnCode = 0; - int size = 0; - unsigned int packetLength = 0; - - size = recv(VC_AppCustomDevice.Channel[DeviceID].Socket, - VC_AppCustomDevice.Channel[DeviceID].Buffer, VC_MAX_PACKET_SIZE, 0); - /* if we have the preamble header... */ - if (size == VC_MPARTMUX_HEADER_SIZE) - { - /* get the size of the payload from the preamble header */ - sscanf(&VC_AppCustomDevice.Channel[DeviceID].Buffer[VC_MPARTMUX_HEADER_LENGTH_START], - "%u", &packetLength); - /* receive the payload */ - size = recv(VC_AppCustomDevice.Channel[DeviceID].Socket, - VC_AppCustomDevice.Channel[DeviceID].Buffer, VC_MAX_PACKET_SIZE, 0); - /* if the size we received is not the size specified in the header - * something went wrong. Or sscanf didn't find a match so we - * don't have a size from the preamble etc */ - - if (size != packetLength) - { - CFE_EVS_SendEvent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, - "VC recv size error on channel %u", (unsigned int)DeviceID); - returnCode = -1; - goto end_of_function; - } - /* Send data, for now map device id to senddata channel */ - if (-1 == VC_SendData(DeviceID, (void*)VC_AppCustomDevice.Channel[DeviceID].Buffer, packetLength)) - { - CFE_EVS_SendEvent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, - "VC send data failed on channel %u", (unsigned int)DeviceID); - returnCode = -1; - goto end_of_function; - } - } - /* if recv returned an error */ - else if (size == -1) - { - /* recv returned an error */ - CFE_EVS_SendEvent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, - "VC recv errno: %i on channel %u", errno, (unsigned int)DeviceID); - returnCode = -1; - goto end_of_function; - } - else - { - /* do nothing we received the 2 byte preamble */ - goto end_of_function; - } - -end_of_function: - return returnCode; -} diff --git a/config/obc/cpd/target/apps/vc/src/vc_dev_io_udp/vc_dev_io_udp.h b/config/obc/cpd/target/apps/vc/src/vc_dev_io_udp/vc_dev_io_udp.h deleted file mode 100644 index 6513549cf..000000000 --- a/config/obc/cpd/target/apps/vc/src/vc_dev_io_udp/vc_dev_io_udp.h +++ /dev/null @@ -1,167 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ - -#ifndef VC_DEV_IO_UDP_H -#define VC_DEV_IO_UDP_H - -/************************************************************************ -** Includes -*************************************************************************/ -#include "cfe.h" -#include "vc_dev_io.h" -#include "../vc_custom_shared.h" -#include "vc_perfids.h" -#include "vc_app.h" - -/************************************************************************ -** Local Defines -*************************************************************************/ -/* TODO move to platform config */ -/** \brief Size of the Gstreamer multipartmux preamble when configured -** with a boundary = "*". -** -** \par Limits: -** Varies with boundary specified. -*/ -#define VC_MPARTMUX_HEADER_SIZE (61) -/** \brief Char count where length of the payload is specified in the -** multipartmux preamble. -*/ -#define VC_MPARTMUX_HEADER_LENGTH_START (51) -/** \brief Gstreamer Gazebo camera plugin UDP output port number. -*/ -#define VC_GST_GAZEBO_PORT (5600) - -/************************************************************************ -** Structure Declarations -*************************************************************************/ - -/** - * Device modes - */ -typedef enum -{ - /*! Device state unused */ - VC_DEVICE_UNUSED = 0, - /*! Device state disabled */ - VC_DEVICE_DISABLED = 1, - /*! Device state enabled */ - VC_DEVICE_ENABLED = 2 -} VC_DeviceMode_t; - - -/** - * Device status - */ -typedef enum -{ - /*! Device status uninitialized */ - VC_DEVICE_UNINITIALIZED = 0, - /*! Device status uninitialized */ - VC_DEVICE_INITIALIZED = 1, - /*! Device status streaming */ - VC_DEVICE_STREAMING = 2 -} VC_DeviceStatus_t; - - -/** - * Device handle - */ -typedef struct -{ - /*! Device status */ - VC_DeviceStatus_t Status; - /*! Device mode */ - VC_DeviceMode_t Mode; - /*! Device socket file descriptor */ - int Socket; - /*! Device port number */ - uint16 Port; - /*! Device buffer for receiving image data */ - char Buffer[VC_MAX_PACKET_SIZE]; -} VC_Device_Handle_t; - - -/** - * Global data structure for custom device IO layer - */ -typedef struct -{ - /*! Flag to start and stop streaming */ - boolean ContinueFlag; - /*! Streaming task priority */ - uint8 Priority; - /*! Streaming child task identifier */ - uint32 ChildTaskID; - /*! Streaming task function pointer */ - CFE_ES_ChildTaskMainFuncPtr_t StreamingTask; - /*! Device resource(s) channels */ - VC_Device_Handle_t Channel[VC_MAX_DEVICES]; - /*! Streaming task flags */ - uint32 TaskFlags; -} VC_AppCustomDevice_t; - - -/** - * @brief Cleanup (close) all enabled devices - * @return 0 for success -1 for failure - */ -int32 VC_CleanupDevices(void); - - -/** - * @brief Initialize all enabled devices. - * @return 0 for success -1 for failure - */ -int32 VC_Init_CustomDevices(void); - - -/** - * @brief Streaming task, takes ready file descriptor and sends. - * @note This is a loop to be run in a VC app child task - */ -void VC_Stream_Task(void); - - -/** - * @brief send a buffer from a "ready" socket - * @note gst multipartmux sends 2 bytes, preamble bytes (70 if the - * default boundary string is used, less if a custom boundary is - * specified), followed by the image payload. - * @param DeviceID the device ID of the "ready" socket - * @return 0 for success -1 for failure - */ -int32 VC_Send_Buffer(uint8 DeviceID); - - -#endif diff --git a/config/obc/cpd/target/apps/vc/src/vc_dev_io_v4l/vc_dev_io_v4l.c b/config/obc/cpd/target/apps/vc/src/vc_dev_io_v4l/vc_dev_io_v4l.c deleted file mode 100644 index f6be72a7a..000000000 --- a/config/obc/cpd/target/apps/vc/src/vc_dev_io_v4l/vc_dev_io_v4l.c +++ /dev/null @@ -1,858 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ - -/************************************************************************ -** Pragmas -*************************************************************************/ - -/************************************************************************ -** Includes -*************************************************************************/ -#include "vc_dev_io_v4l.h" -#include "cfe.h" -#include -#include -#include -#include -#include -#include -#include - -/************************************************************************ -** Local Defines -*************************************************************************/ - -/************************************************************************ -** Local Structure Declarations -*************************************************************************/ - -/************************************************************************ -** External Global Variables -*************************************************************************/ - -/************************************************************************ -** Global Variables -*************************************************************************/ - -/************************************************************************ -** Local Variables -*************************************************************************/ - -/************************************************************************ -** Local Function Definitions -*************************************************************************/ - -/** - * Custom device layer app data declaration - */ -VC_AppCustomDevice_t VC_AppCustomDevice; - - -int32 VC_CustomDevice_InitData() -{ - int32 iStatus = CFE_SUCCESS; - - /* Set all struct zero values */ - bzero(&VC_AppCustomDevice, sizeof(VC_AppCustomDevice)); - - /* Set all non-zero values for channel zero */ - VC_AppCustomDevice.ContinueFlag = TRUE; - VC_AppCustomDevice.Priority = VC_STREAMING_TASK_PRIORITY; - VC_AppCustomDevice.TaskFlags = VC_STREAMING_TASK_FLAGS; - VC_AppCustomDevice.StreamingTask = VC_Stream_Task; - VC_AppCustomDevice.Channel[0].Status = VC_DEVICE_UNINITIALIZED; - VC_AppCustomDevice.Channel[0].Mode = VC_DEVICE_ENABLED; - VC_AppCustomDevice.Channel[0].BufferType = VC_V4L_BUFFER_TYPE; - VC_AppCustomDevice.Channel[0].Buffer_Size = VC_MAX_BUFFER_SIZE; - VC_AppCustomDevice.Channel[0].FrameWidth = VC_FRAME_WIDTH; - VC_AppCustomDevice.Channel[0].FrameHeight = VC_FRAME_HEIGHT; - VC_AppCustomDevice.Channel[0].VideoFormat = VC_V4L_VIDEO_FORMAT; - VC_AppCustomDevice.Channel[0].FieldOrder = VC_V4L_VIDEO_FIELD_ORDER; - VC_AppCustomDevice.Channel[0].BufferRequest = VC_V4L_BUFFER_REQUEST; - VC_AppCustomDevice.Channel[0].MemoryType = VC_V4L_MEMORY_TYPE; - - strncpy(VC_AppCustomDevice.Channel[0].DevName, VC_DEVICE_PATH, VC_MAX_DEVICE_PATH); - - - return (iStatus); -} - - -int32 VC_Ioctl(int fh, int request, void *arg) -{ - int32 returnCode = 0; - uint32 i = 0; - - for (i=0; i < VC_MAX_RETRY_ATTEMPTS; i++) - { - returnCode = ioctl(fh, request, arg); - - if (-1 == returnCode && EINTR == errno) - { - usleep(VC_MAX_RETRY_SLEEP_USEC); - } - else - { - break; - } - } - - return (returnCode); -} - - -int32 VC_ConfigureDevice(uint8 DeviceID) -{ - int32 returnCode = 0; - struct v4l2_format Format = {}; - struct v4l2_capability Capabilities = {}; - struct v4l2_requestbuffers Request = {}; - - bzero(&Format, sizeof(Format)); - Format.type = VC_AppCustomDevice.Channel[DeviceID].BufferType; - Format.fmt.pix.width = VC_AppCustomDevice.Channel[DeviceID].FrameWidth; - Format.fmt.pix.height = VC_AppCustomDevice.Channel[DeviceID].FrameHeight; - Format.fmt.pix.pixelformat = VC_AppCustomDevice.Channel[DeviceID].VideoFormat; - Format.fmt.pix.field = VC_AppCustomDevice.Channel[DeviceID].FieldOrder; - - bzero(&Request, sizeof(Request)); - Request.count = VC_AppCustomDevice.Channel[DeviceID].BufferRequest; - Request.type = VC_AppCustomDevice.Channel[DeviceID].BufferType; - Request.memory = VC_AppCustomDevice.Channel[DeviceID].MemoryType; - - if (-1 == VC_Ioctl(VC_AppCustomDevice.Channel[DeviceID].DeviceFd, VIDIOC_QUERYCAP, &Capabilities)) - { - (void) CFE_EVS_SendEvent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, - "VC VIDIOC_QUERYCAP returned %i on %s channel %u", errno, - VC_AppCustomDevice.Channel[DeviceID].DevName, (unsigned int)DeviceID); - returnCode = -1; - goto end_of_function; - } - - if (!(Capabilities.capabilities & VC_AppCustomDevice.Channel[DeviceID].BufferType)) - { - (void) CFE_EVS_SendEvent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, - "VC Capabilities %u on %s channel %u not found", - (unsigned int)VC_AppCustomDevice.Channel[DeviceID].BufferType, - VC_AppCustomDevice.Channel[DeviceID].DevName, (unsigned int)DeviceID); - returnCode = -1; - goto end_of_function; - } - - if (!(Capabilities.capabilities & V4L2_CAP_STREAMING)) - { - (void) CFE_EVS_SendEvent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, - "VC Capabilities %u on %s channel %u not found", - V4L2_CAP_STREAMING, - VC_AppCustomDevice.Channel[DeviceID].DevName, (unsigned int)DeviceID); - returnCode = -1; - goto end_of_function; - } - - if (-1 == VC_Ioctl(VC_AppCustomDevice.Channel[DeviceID].DeviceFd, VIDIOC_S_FMT, &Format)) - { - (void) CFE_EVS_SendEvent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, - "VIDIOC_S_FMT returned %i on %s channel %u", errno, - VC_AppCustomDevice.Channel[DeviceID].DevName, (unsigned int)DeviceID); - returnCode = -1; - goto end_of_function; - } - - if (Format.fmt.pix.pixelformat != VC_AppCustomDevice.Channel[DeviceID].VideoFormat) - { - (void) CFE_EVS_SendEvent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, - "VC device %s channel %u didn't accept format %u.", - VC_AppCustomDevice.Channel[DeviceID].DevName, - (unsigned int)DeviceID, - (unsigned int)VC_AppCustomDevice.Channel[DeviceID].VideoFormat); - returnCode = -1; - goto end_of_function; - } - - if ((Format.fmt.pix.width != VC_AppCustomDevice.Channel[DeviceID].FrameWidth) || - (Format.fmt.pix.height != VC_AppCustomDevice.Channel[DeviceID].FrameHeight)) - { - (void) CFE_EVS_SendEvent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, - "VC device %s channel %u didn't accept resolution instead %d:%d.", - VC_AppCustomDevice.Channel[DeviceID].DevName, (unsigned int)DeviceID, - Format.fmt.pix.width, Format.fmt.pix.height); - returnCode = -1; - goto end_of_function; - } - - if (Format.fmt.pix.sizeimage > VC_AppCustomDevice.Channel[DeviceID].Buffer_Size) - { - (void) CFE_EVS_SendEvent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, - "VC device %s channel %u size image %u > buffer size %lu.", - VC_AppCustomDevice.Channel[DeviceID].DevName, (unsigned int)DeviceID, - Format.fmt.pix.sizeimage, VC_AppCustomDevice.Channel[DeviceID].Buffer_Size); - returnCode = -1; - goto end_of_function; - } - - if (-1 == VC_Ioctl(VC_AppCustomDevice.Channel[DeviceID].DeviceFd, VIDIOC_REQBUFS, &Request)) - { - (void) CFE_EVS_SendEvent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, - "VC VIDIOC_REQBUFS returned %i on %s channel %u.", errno, - VC_AppCustomDevice.Channel[DeviceID].DevName, (unsigned int)DeviceID); - returnCode = -1; - goto end_of_function; - } - - if (Request.count != VC_AppCustomDevice.Channel[DeviceID].BufferRequest) - { - (void) CFE_EVS_SendEvent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, - "VC VIDIOC_REQBUFS did not comply. %u buffers on %s channel %u.", Request.count, - VC_AppCustomDevice.Channel[DeviceID].DevName, (unsigned int)DeviceID); - returnCode = -1; - goto end_of_function; - } - -end_of_function: - return (returnCode); -} - - -int32 VC_Start_StreamingDevice(uint8 DeviceID) -{ - int32 returnCode = 0; - uint32 i = 0; - enum v4l2_buf_type Type; - struct v4l2_buffer Buffer; - - Type = VC_AppCustomDevice.Channel[DeviceID].BufferType; - - for (i=0; i < VC_AppCustomDevice.Channel[DeviceID].BufferRequest; i++) - { - VC_AppCustomDevice.Channel[DeviceID].Buffer_Ptrs[i].ptr = (void*)&VC_AppCustomDevice.Channel[DeviceID].Buffers[i][0]; - - bzero(&Buffer, sizeof(Buffer)); - Buffer.type = VC_AppCustomDevice.Channel[DeviceID].BufferType; - Buffer.memory = VC_AppCustomDevice.Channel[DeviceID].MemoryType; - Buffer.index = i; - Buffer.m.userptr = (unsigned long)VC_AppCustomDevice.Channel[DeviceID].Buffer_Ptrs[i].ptr; - Buffer.length = VC_AppCustomDevice.Channel[DeviceID].Buffer_Size; - - if (-1 == VC_Ioctl(VC_AppCustomDevice.Channel[DeviceID].DeviceFd, VIDIOC_QBUF, &Buffer)) - { - (void) CFE_EVS_SendEvent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, - "VC VIDIOC_QBUF returned %i on %s channel %u", errno, - VC_AppCustomDevice.Channel[DeviceID].DevName, (unsigned int)DeviceID); - returnCode = -1; - goto end_of_function; - } - } - - if (-1 == VC_Ioctl(VC_AppCustomDevice.Channel[DeviceID].DeviceFd, VIDIOC_STREAMON, &Type)) - { - (void) CFE_EVS_SendEvent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, - "VC VIDIOC_STREAMON returned %i on %s channel %u", errno, - VC_AppCustomDevice.Channel[DeviceID].DevName, (unsigned int)DeviceID); - returnCode = -1; - goto end_of_function; - } - else - { - (void) CFE_EVS_SendEvent(VC_DEV_INF_EID, CFE_EVS_INFORMATION, - "VC VIDIOC_STREAMON success on %s channel %u", - VC_AppCustomDevice.Channel[DeviceID].DevName, (unsigned int)DeviceID); - } - -end_of_function: - - return (returnCode); -} - - -int32 VC_Stop_StreamingDevice(uint8 DeviceID) -{ - int32 returnCode = 0; - uint32 i = 0; - enum v4l2_buf_type Type; - - Type = VC_AppCustomDevice.Channel[DeviceID].BufferType; - - if (-1 == VC_Ioctl(VC_AppCustomDevice.Channel[DeviceID].DeviceFd, VIDIOC_STREAMOFF, &Type)) - { - returnCode = -1; - } - - return (returnCode); -} - - -int32 VC_Send_Buffer(uint8 DeviceID) -{ - int32 returnCode = 0; - uint32 i = 0; - boolean checkFlag = FALSE; - - struct v4l2_buffer Buffer; - - bzero(&Buffer, sizeof(Buffer)); - Buffer.type = VC_AppCustomDevice.Channel[DeviceID].BufferType; - Buffer.memory = VC_AppCustomDevice.Channel[DeviceID].MemoryType; - - /* Dequeue the ready buffer */ - if (-1 == VC_Ioctl(VC_AppCustomDevice.Channel[DeviceID].DeviceFd, VIDIOC_DQBUF, &Buffer)) - { - /* VIDIOC_DQBUF failed */ - (void) CFE_EVS_SendEvent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, - "VC VIDIOC_DQBUF returned %i on %s channel %u", errno, - VC_AppCustomDevice.Channel[DeviceID].DevName, (unsigned int)DeviceID); - returnCode = -1; - goto end_of_function; - } - - /* The dequeued buffer is larger than max transmit packet size */ - if (Buffer.bytesused > VC_MAX_PACKET_SIZE) - { - /* The buffer is too large so skip sending */ - (void) CFE_EVS_SendEvent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, - "VC Packet on %s channel %u is too large", - VC_AppCustomDevice.Channel[DeviceID].DevName, (unsigned int)DeviceID); - //returnCode = -1; - goto queue_next_buffer; - } - - /* Check and make sure VIDIOC_DQBUF returned a valid address - * from possible addresses (user buffer pointers) - */ - for (i=0; i < VC_AppCustomDevice.Channel[DeviceID].BufferRequest; i++) - { - if ((Buffer.m.userptr == (unsigned long)VC_AppCustomDevice.Channel[DeviceID].Buffer_Ptrs[i].ptr) - && (Buffer.length == VC_AppCustomDevice.Channel[DeviceID].Buffer_Size)) - { - checkFlag = TRUE; - } - } - if (checkFlag == FALSE) - { - /* VIDIOC_DQBUF returned an unknown buffer address */ - (void) CFE_EVS_SendEvent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, - "VC VIDIOC_DQBUF returned unknown user pointer on %s channel %u", - VC_AppCustomDevice.Channel[DeviceID].DevName, (unsigned int)DeviceID); - returnCode = -1; - goto end_of_function; - } - - /* Send data, for now map device id to senddata channel */ - if (-1 == VC_SendData(DeviceID, (void*)Buffer.m.userptr, Buffer.bytesused)) - { - (void) CFE_EVS_SendEvent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, - "VC send data failed on %s channel %u", - VC_AppCustomDevice.Channel[DeviceID].DevName, (unsigned int)DeviceID); - returnCode = -1; - goto end_of_function; - } - -queue_next_buffer: - - /* Queue the next buffer */ - if (-1 == VC_Ioctl(VC_AppCustomDevice.Channel[DeviceID].DeviceFd, VIDIOC_QBUF, &Buffer)) - { - (void) CFE_EVS_SendEvent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, - "VC VIDIOC_QBUF returned %i on %s channel %u", errno, - VC_AppCustomDevice.Channel[DeviceID].DevName, (unsigned int)DeviceID); - returnCode = -1; - } - -end_of_function: - return (returnCode); -} - - -void VC_Stream_Task(void) -{ - int32 returnCode = 0; - static int32 timeouts = 0; - - uint32 i = 0; - uint32 j = 0; - uint32 maxFd = 0; - static uint32 retryAttempts = 0; - fd_set fds; - - struct timeval timeValue; - uint32 iStatus = -1; - - iStatus = CFE_ES_RegisterChildTask(); - - if (iStatus == CFE_SUCCESS) - { - while (VC_AppCustomDevice.ContinueFlag == TRUE) - { - maxFd = 0; - returnCode = 0; - - /* Select modifies the timeout value with time left until - * the timeout would expire so timeValue needs to be set - * every loop iteration - */ - timeValue.tv_sec = VC_BUFFER_FILL_TIMEOUT_SEC; - timeValue.tv_usec = VC_BUFFER_FILL_TIMEOUT_USEC; - - /* Initialize the set */ - FD_ZERO(&fds); - - /* Add enabled and streaming devices to the fd set */ - for (i=0; i < VC_MAX_DEVICES; i++) - { - if(VC_AppCustomDevice.Channel[i].Mode == VC_DEVICE_ENABLED - && VC_AppCustomDevice.Channel[i].Status == VC_DEVICE_STREAMING) - { - FD_SET(VC_AppCustomDevice.Channel[i].DeviceFd, &fds); - - /* Get the greatest fd value for select() */ - if (VC_AppCustomDevice.Channel[i].DeviceFd > maxFd) - { - /* maxFd is needed for select */ - maxFd = VC_AppCustomDevice.Channel[i].DeviceFd; - } - } - } - /* If maxFd is > 0 a fd was added the set so call select */ - if (maxFd > 0) - { - CFE_ES_PerfLogEntry(VC_DEVICE_GET_PERF_ID); - /* Wait for a queued buffer to be filled by the device */ - returnCode = select(maxFd + 1, &fds, 0, 0, &timeValue); - CFE_ES_PerfLogExit(VC_DEVICE_GET_PERF_ID); - } - else - { - /* No fd's were added to the set so error out */ - (void) CFE_EVS_SendEvent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, - "VC can't start streaming no devices are streaming enabled"); - returnCode = -1; - goto end_of_function; - } - - /* select() wasn't successful */ - if (-1 == returnCode) - { - /* select was interrupted, try again */ - if (EINTR == errno) - { - if (retryAttempts == VC_MAX_RETRY_ATTEMPTS) - { - goto end_of_function; - } - retryAttempts++; - usleep(VC_MAX_RETRY_SLEEP_USEC); - (void) CFE_EVS_SendEvent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, - "VC select was interrupted"); - continue; - } - else - { - /* select returned an error other than EINTR */ - (void) CFE_EVS_SendEvent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, - "VC start streaming failed select() returned %i", errno); - goto end_of_function; - } - } - /* select timed out */ - if (0 == returnCode) - { - if (timeouts == VC_BUFFER_TIMEOUTS_ALLOWED) - { - returnCode = -1; - goto end_of_function; - } - timeouts++; - usleep(VC_MAX_RETRY_SLEEP_USEC); - CFE_EVS_SendEvent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, - "VC select timed out"); - continue; - } - /* select() returned and a buffer is ready to be dequeued */ - if(returnCode > 0) - { - /* Determine which device is ready */ - for (i=0; i < VC_MAX_DEVICES; i++) - { - if(VC_AppCustomDevice.Channel[i].Mode == VC_DEVICE_ENABLED - && VC_AppCustomDevice.Channel[i].Status == VC_DEVICE_STREAMING) - { - if(FD_ISSET(VC_AppCustomDevice.Channel[i].DeviceFd, &fds)) - { - /* Call send buffer with the device that is ready */ - returnCode = VC_Send_Buffer(i); - if(returnCode != 0) - { - (void) CFE_EVS_SendEvent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, - "VC Send_Buffer failed, a device may have been disconnected, disabling device %u", (unsigned int)i); - VC_DisableDevice(i); - } - } - } - } - } - } /* end while loop */ - } /* end if status == success */ - -end_of_function: - - /* Streaming task is exiting so set app flag to initialized */ - VC_AppData.AppState = VC_INITIALIZED; - (void) CFE_EVS_SendEvent(VC_DEV_INF_EID, CFE_EVS_INFORMATION, - "VC streaming task exited with return code %li task status (0x%08lX)", - returnCode, iStatus); - - /* The child task was successfully created so exit from it */ - if (iStatus == CFE_SUCCESS) - { - CFE_ES_ExitChildTask(); - } -} - - -int32 VC_Start_Streaming(void) -{ - uint32 i = 0; - int32 returnCode = 0; - - for(i=0; i < VC_MAX_DEVICES; i++) - { - if((VC_AppCustomDevice.Channel[i].Mode == VC_DEVICE_ENABLED) && - (VC_AppCustomDevice.Channel[i].Status == VC_DEVICE_INITIALIZED)) - { - if(-1 == VC_Start_StreamingDevice(i)) - { - /* Start streaming failed */ - returnCode = -1; - } - else - { - /* Start streaming was successful set status to streaming */ - VC_AppCustomDevice.Channel[i].Status = VC_DEVICE_STREAMING; - } - } - } - return (returnCode); -} - - -int32 VC_Stop_Streaming(void) -{ - uint32 i = 0; - int32 returnCode = 0; - - for(i=0; i < VC_MAX_DEVICES; i++) - { - if((VC_AppCustomDevice.Channel[i].Mode == VC_DEVICE_ENABLED) && - (VC_AppCustomDevice.Channel[i].Status == VC_DEVICE_STREAMING)) - { - if(-1 == VC_Stop_StreamingDevice(i)) - { - /* Stop streaming failed */ - returnCode = -1; - } - else - { - /* Stop streaming was successful set status to initialized */ - VC_AppCustomDevice.Channel[i].Status = VC_DEVICE_INITIALIZED; - } - } - } - return (returnCode); -} - - -int32 VC_InitDevice(uint8 DeviceID, const char *DeviceName) -{ - int32 returnCode = 0; - uint32 i = 0; - - if((VC_AppCustomDevice.Channel[DeviceID].Mode == VC_DEVICE_ENABLED) && - (VC_AppCustomDevice.Channel[DeviceID].DeviceFd != 0)) - { - (void) CFE_EVS_SendEvent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, - "VC Device %s for channel %u already initialized.", DeviceName, (unsigned int)i); - returnCode = -1; - goto end_of_function; - } - - if(DeviceName == 0) - { - (void) CFE_EVS_SendEvent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, - "VC Device name for channel %u is null.", (unsigned int)i); - returnCode = -1; - goto end_of_function; - } - - if(DeviceID >= VC_MAX_DEVICES) - { - (void) CFE_EVS_SendEvent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, - "VC DeviceID (%u) invalid.", (unsigned int)DeviceID); - returnCode = -1; - goto end_of_function; - } - - VC_AppCustomDevice.Channel[DeviceID].DeviceFd = open(DeviceName, O_RDWR | O_NONBLOCK, 0); - if(VC_AppCustomDevice.Channel[DeviceID].DeviceFd < 0) - { - (void) CFE_EVS_SendEvent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, - "VC Device open errno: %i on channel %u", errno, (unsigned int)i); - returnCode = -1; - goto end_of_function; - } - -end_of_function: - return (returnCode); -} - - -int32 VC_Init_CustomDevices(void) -{ - uint32 i = 0; - int32 returnCode = 0; - - for (i=0; i < VC_MAX_DEVICES; i++) - { - if(VC_AppCustomDevice.Channel[i].Mode == VC_DEVICE_ENABLED) - { - /* If the device is enabled initialize it */ - returnCode = VC_InitDevice(i, VC_AppCustomDevice.Channel[i].DevName); - if (returnCode) - { - /* If the device failed to be initialized set to disabled - * an error event will be generated in VC_InitDevice */ - VC_AppCustomDevice.Channel[i].Mode = VC_DEVICE_DISABLED; - } - else - { - /* Success, raise info event */ - (void) CFE_EVS_SendEvent(VC_DEV_INF_EID, CFE_EVS_INFORMATION, - "VC Device initialized channel %u from %s", - (unsigned int)i, VC_AppCustomDevice.Channel[i].DevName); - - /* The device is initialized so now configure it */ - returnCode = VC_ConfigureDevice(i); - if (returnCode) - { - /* The device failed to be configured so make sure - * the status is set to uninitialized - */ - VC_AppCustomDevice.Channel[i].Status = VC_DEVICE_UNINITIALIZED; - } - else - { - /* Success, set status to device initialized and - * raise a info event - */ - VC_AppCustomDevice.Channel[i].Status = VC_DEVICE_INITIALIZED; - (void) CFE_EVS_SendEvent(VC_DEV_INF_EID, CFE_EVS_INFORMATION, - "VC Device configured channel %u from %s", - (unsigned int)i, VC_AppCustomDevice.Channel[i].DevName); - } - } - } - } - return (returnCode); -} - - -int32 VC_CleanupDevices(void) -{ - uint32 i = 0; - int32 returnCode = 0; - - for(i=0; i < VC_MAX_DEVICES; i++) - { - if(VC_AppCustomDevice.Channel[i].Mode == VC_DEVICE_ENABLED) - { - if(VC_AppCustomDevice.Channel[i].Status == VC_DEVICE_STREAMING) - { - if(-1 == VC_Stop_StreamingDevice(i)) - { - /* VC_Stop_Streaming failed */ - returnCode = -1; - } - else - { - /* Success set device status to initialized */ - VC_AppCustomDevice.Channel[i].Status = VC_DEVICE_INITIALIZED; - } - } - - if(-1 == VC_DisableDevice(i)) - { - /* VC_DisableDevice failed */ - returnCode = -1; - } - else - { - VC_AppCustomDevice.Channel[i].Mode = VC_DEVICE_DISABLED; - } - } - } - return (returnCode); -} - - -void VC_Devices_Critical_Cleanup(void) -{ - uint8 i = 0; - - for(i=0; i < VC_MAX_DEVICES; i++) - { - if(VC_AppCustomDevice.Channel[i].DeviceFd != 0) - { - ioctl(VC_AppCustomDevice.Channel[i].DeviceFd, VIDIOC_STREAMOFF, &VC_AppCustomDevice.Channel[i].BufferType); - close(VC_AppCustomDevice.Channel[i].DeviceFd); - } - } - return; -} - - -int32 VC_DisableDevice(uint8 DeviceID) -{ - int32 returnCode = 0; - - if(VC_AppCustomDevice.Channel[DeviceID].Mode != VC_DEVICE_ENABLED) - { - returnCode = -1; - goto end_of_function; - } - - returnCode = close(VC_AppCustomDevice.Channel[DeviceID].DeviceFd); - if (0 == returnCode) - { - VC_AppCustomDevice.Channel[DeviceID].DeviceFd = 0; - } - -end_of_function: - return (returnCode); -} - - -/* - * Start streaming on all enabled and initialized devices - * True for success, false for failure - * Note: Creates the streaming task - */ -boolean VC_Devices_Start(void) -{ - int32 returnCode = 0; - boolean returnBool = TRUE; - - /* Set loop flag to continue forever */ - VC_AppCustomDevice.ContinueFlag = TRUE; - - /* Start streaming on all devices */ - if(-1 == VC_Start_Streaming()) - { - VC_AppCustomDevice.ContinueFlag = FALSE; - returnBool = FALSE; - goto end_of_function; - } - - /* Create the streaming task */ - returnCode = CFE_ES_CreateChildTask( - &VC_AppCustomDevice.ChildTaskID, - VC_STREAMING_TASK_NAME, - VC_AppCustomDevice.StreamingTask, - 0, - CFE_ES_DEFAULT_STACK_SIZE, - VC_AppCustomDevice.Priority, - VC_STREAMING_TASK_FLAGS); - - if(returnCode != CFE_SUCCESS) - { - VC_AppCustomDevice.ContinueFlag = FALSE; - returnBool = FALSE; - } - -end_of_function: - - return (returnBool); -} - - -/* - * Stop streaming on all enabled and initialized devices - * True for success, false for failure - * Note: Deletes the streaming task - */ -boolean VC_Devices_Stop(void) -{ - boolean returnBool = TRUE; - - /* Delete the child task */ - CFE_ES_DeleteChildTask(VC_AppCustomDevice.ChildTaskID); - - /* Set streaming task loop flag to stop */ - VC_AppCustomDevice.ContinueFlag = FALSE; - - /* Set app state to initialized */ - VC_AppData.AppState = VC_INITIALIZED; - - if(-1 == VC_Stop_Streaming()) - { - returnBool = FALSE; - } - - return (returnBool); -} - - -boolean VC_Devices_Init(void) -{ - boolean returnBool = TRUE; - if(-1 == VC_Init_CustomDevices()) - { - returnBool = FALSE; - } - return (returnBool); -} - - -boolean VC_Devices_Uninit(void) -{ - boolean returnBool = TRUE; - if(-1 == VC_CleanupDevices()) - { - returnBool = FALSE; - } - return (returnBool); -} - - -int32 VC_Devices_InitData() -{ - return VC_CustomDevice_InitData(); -} - diff --git a/config/obc/cpd/target/apps/vc/src/vc_dev_io_v4l/vc_dev_io_v4l.h b/config/obc/cpd/target/apps/vc/src/vc_dev_io_v4l/vc_dev_io_v4l.h deleted file mode 100644 index 1e4a63491..000000000 --- a/config/obc/cpd/target/apps/vc/src/vc_dev_io_v4l/vc_dev_io_v4l.h +++ /dev/null @@ -1,252 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ - -#ifndef VC_DEV_IO_V4L_H -#define VC_DEV_IO_V4L_H - -#include "cfe.h" -#include "vc_dev_io.h" -#include "../vc_custom_shared.h" -#include "vc_perfids.h" -#include "vc_app.h" - -/************************************************************************ -** Structure Declarations -*************************************************************************/ - -/** - * Device modes - */ -typedef enum -{ - /*! Device state unused */ - VC_DEVICE_UNUSED = 0, - /*! Device state disabled */ - VC_DEVICE_DISABLED = 1, - /*! Device state enabled */ - VC_DEVICE_ENABLED = 2 -} VC_DeviceMode_t; - - -/** - * Device status - */ -typedef enum -{ - /*! Device status uninitialized */ - VC_DEVICE_UNINITIALIZED = 0, - /*! Device status uninitialized */ - VC_DEVICE_INITIALIZED = 1, - /*! Device status streaming */ - VC_DEVICE_STREAMING = 2 -} VC_DeviceStatus_t; - - -/** - * Buffer pointers for V4L user pointer IO - */ -typedef struct { - /*! Pointer to user defined buffer */ - void *ptr; -}VC_BufferPtr_t; - - -/** - * Device handle - */ -typedef struct -{ - /*! Device status */ - VC_DeviceStatus_t Status; - /*! Device mode */ - VC_DeviceMode_t Mode; - /*! Device resource channel identifier */ - uint8 ChannelID; - /*! Path to device */ - char DevName[VC_MAX_DEVICE_PATH]; - /*! Device file descriptor */ - int DeviceFd; - /*! V4L buffer type */ - uint32 BufferType; - /*! V4L frame width */ - uint32 FrameWidth; - /*! V4L frame height */ - uint32 FrameHeight; - /*! V4L video format */ - uint32 VideoFormat; - /*! V4L field order */ - uint8 FieldOrder; - /*! V4L buffer request */ - uint8 BufferRequest; - /*! V4L memory type */ - uint32 MemoryType; - /*! V4L user defined buffer(s) */ - char Buffers[VC_V4L_BUFFER_REQUEST][VC_MAX_BUFFER_SIZE]; - /*! V4L buffer size (for all buffers) */ - uint32 Buffer_Size; - /*! V4L user defined buffer pointer(s) */ - VC_BufferPtr_t Buffer_Ptrs[VC_V4L_BUFFER_REQUEST]; -} VC_Device_Handle_t; - - -/** - * Global data structure for custom device IO layer - */ -typedef struct -{ - /*! Flag to start and stop streaming */ - boolean ContinueFlag; - /*! Streaming task priority */ - uint8 Priority; - /*! Streaming child task identifier */ - uint32 ChildTaskID; - /*! Streaming task function pointer */ - CFE_ES_ChildTaskMainFuncPtr_t StreamingTask; - /*! Device resource(s) channels */ - VC_Device_Handle_t Channel[VC_MAX_DEVICES]; - /*! Streaming task flags */ - uint32 TaskFlags; -} VC_AppCustomDevice_t; - - -/************************************************************************ -** Function Prototypes -*************************************************************************/ - -/** - * @brief Custom function to initialize custom device data structure. - * @return CFE_SUCCESS - */ -int32 VC_CustomDevice_InitData(void); - - -/** - * @brief ioctl with limited EINTR retry attempts - * @param fh file descriptor - * @param request ioctl request code - * @param arg pointer to a device specific struct - * @return usually 0 for success and -1 for failure - * @note see ioctl man-page for more info - */ -int32 VC_Ioctl(int fh, int request, void *arg); - - -/** - * @brief Initialize, configure, and start all enabled devices - * @return usually 0 for success -1 for failure - * @note see ioctl man-page for more info - */ -int32 VC_Init_CustomDevices(void); - - -/** - * @brief Initialize an enabled device - * @param DeviceID the device to initialize - * @param DeviceName the device name (path) to open - * @return 0 for success -1 for failure - */ -int32 VC_InitDevice(uint8 DeviceID, const char *DeviceName); - - -/** - * Configure device resource - * @param DeviceID the device ID of the resource to configure - * @return 0 for success -1 for failure - */ -int32 VC_ConfigureDevice(uint8 DeviceID); - - -/** - * @brief Start streaming on all devices - * @return 0 for success -1 for failure - */ -int32 VC_Start_Streaming(void); - - -/** - * @brief start streaming on a particular device - * @param DeviceID the device ID to start streaming on - * @return 0 for success -1 for failure - */ -int32 VC_Start_StreamingDevice(uint8 DeviceID); - - -/** - * @brief Streaming task, takes ready buffer and sends - * @note This is a loop to be run in a VC app child task - */ -void VC_Stream_Task(void); - - -/** - * @brief dequeue and send a buffer from a "ready" device - * @param DeviceID the device ID of the "ready" device - * @return 0 for success -1 for failure - */ -int32 VC_Send_Buffer(uint8 DeviceID); - - -/** - * @brief Stop streaming on all devices - * @return 0 for success -1 for failure - */ -int32 VC_Stop_Streaming(void); - - -/** - * @brief stop streaming on a particular device - * @param DeviceID the device ID to stop streaming on - * @return 0 for success -1 for failure - */ -int32 VC_Stop_StreamingDevice(uint8 DeviceID); - - -/** - * @brief Disable a device - * @param DeviceID the device to enable - * @return 0 for success -1 for failure - */ -int32 VC_DisableDevice(uint8 DeviceID); - - -/** - * @brief Cleanup (stop & close) all enabled and initialized devices - * @return 0 for success -1 for failure - */ -int32 VC_CleanupDevices(void); - - -extern VC_AppCustomDevice_t VC_AppCustomDevice; - -#endif - diff --git a/config/obc/cpd/target/apps/vc/src/vc_transmit_udp/vc_transmit_udp.c b/config/obc/cpd/target/apps/vc/src/vc_transmit_udp/vc_transmit_udp.c deleted file mode 100644 index 39487c28c..000000000 --- a/config/obc/cpd/target/apps/vc/src/vc_transmit_udp/vc_transmit_udp.c +++ /dev/null @@ -1,431 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ - -/************************************************************************ -** Pragmas -*************************************************************************/ - -/************************************************************************ -** Includes -*************************************************************************/ -#include "vc_transmit_udp.h" -#include "cfe.h" -#include -#include -#include -#include "px4lib.h" - -/************************************************************************ -** Local Defines -*************************************************************************/ -#define OP_FLOW_FRAME_WIDTH 64 -#define OP_FLOW_FRAME_HEIGHT 64 -/************************************************************************ -** Local Structure Declarations -*************************************************************************/ - -/************************************************************************ -** External Global Variables -*************************************************************************/ - -/************************************************************************ -** Global Variables -*************************************************************************/ - - -/************************************************************************ -** Local Variables -*************************************************************************/ - -/************************************************************************ -** Local Function Definitions -*************************************************************************/ - -/** - * Global data structure for custom device transmit layer - */ -VC_AppCustomData_t VC_AppCustomData; - - -int32 VC_CustomTransmit_InitData() -{ - int32 iStatus = CFE_SUCCESS; - - /* Set all struct zero values */ - bzero(&VC_AppCustomData, sizeof(VC_AppCustomData)); - - /* Set all non-zero values for channel zero */ - VC_AppCustomData.Channel[0].Mode = VC_CHANNEL_ENABLED; - VC_AppCustomData.Channel[0].ChannelID = 0; - VC_AppCustomData.Channel[0].DestPort = VC_DESTINATION_PORT; - VC_AppCustomData.Channel[0].SocketFd = 0; - - strncpy(VC_AppCustomData.Channel[0].DestIP, VC_DESTINATION_IP, INET_ADDRSTRLEN); - strncpy(VC_AppCustomData.Channel[0].MyIP, VC_SOURCE_IP, INET_ADDRSTRLEN); - - - /* Initialize output messages*/ - CFE_SB_InitMsg(&OpticalFlowFrameMsg, FLOW_FRAME_MID, - sizeof(PX4_OpticalFlowFrameMsg_t), TRUE); - - return (iStatus); -} - - -int32 VC_EnableChannel(uint8 ChannelID) -{ - int32 returnCode = 0; - uint32 i = 0; - struct sockaddr_in servaddr; - int status; - int reuseaddr = 1; - - if((VC_AppCustomData.Channel[ChannelID].Mode == VC_CHANNEL_ENABLED) && - (VC_AppCustomData.Channel[ChannelID].SocketFd != 0)) - { - (void) CFE_EVS_SendEvent(VC_SOCKET_ERR_EID, CFE_EVS_ERROR, - "VC UDP for channel %u already enabled.", (unsigned int)i); - returnCode = -1; - goto end_of_function; - } - - if(ChannelID >= VC_MAX_OUTPUT_CHANNELS) - { - (void) CFE_EVS_SendEvent(VC_SOCKET_ERR_EID, CFE_EVS_ERROR, - "VC ChannelID (%u) invalid.", (unsigned int)ChannelID); - returnCode = -1; - goto end_of_function; - } - - VC_AppCustomData.Channel[ChannelID].SocketFd = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP); - if(VC_AppCustomData.Channel[ChannelID].SocketFd < 0) - { - VC_AppCustomData.Channel[ChannelID].Mode = VC_CHANNEL_DISABLED; - (void) CFE_EVS_SendEvent(VC_SOCKET_ERR_EID, CFE_EVS_ERROR, - "VC socket errno: %i on channel %u", errno, (unsigned int)i); - returnCode = -1; - goto end_of_function; - } - - /* Set the Reuse Address flag. If we don't set this flag, the socket will - * lock the port on termination and the kernel won't unlock it until it - * times out after a minute or so. - */ - setsockopt(VC_AppCustomData.Channel[ChannelID].SocketFd, SOL_SOCKET, SO_REUSEADDR, &reuseaddr, sizeof(reuseaddr)); - - /* Set the input arguments to the socket bind. - */ - - bzero(&servaddr,sizeof(servaddr)); - servaddr.sin_family = AF_INET; - servaddr.sin_port = htons(VC_AppCustomData.Channel[ChannelID].MyPort); - - if (inet_aton(VC_AppCustomData.Channel[ChannelID].MyIP, &servaddr.sin_addr) == 0) - { - (void) CFE_EVS_SendEvent(VC_SOCKET_ERR_EID, CFE_EVS_ERROR, - "VC inet_aton errno: %i on channel %u", errno, (unsigned int)i); - returnCode = -1; - goto end_of_function; - } - - status = bind(VC_AppCustomData.Channel[ChannelID].SocketFd, - (struct sockaddr *)&servaddr,sizeof(servaddr)); - if(status < 0) - { - (void) CFE_EVS_SendEvent(VC_SOCKET_ERR_EID, CFE_EVS_ERROR, - "VC bind errno: %i on channel %u", errno, (unsigned int)i); - VC_AppCustomData.Channel[ChannelID].Mode = VC_CHANNEL_DISABLED; - returnCode = -1; - } - -end_of_function: - return (returnCode); -} - - -int32 VC_Init_CustomTransmitters(void) -{ - uint32 i = 0; - int32 returnCode = 0; - - for (i=0; i < VC_MAX_OUTPUT_CHANNELS; i++) - { - if(VC_AppCustomData.Channel[i].Mode == VC_CHANNEL_ENABLED) - { - if(VC_EnableChannel(i)) - { - returnCode = -1; - VC_AppCustomData.Channel[i].Mode = VC_CHANNEL_DISABLED; - } - else - { - (void) CFE_EVS_SendEvent(VC_CHA_INF_EID, CFE_EVS_INFORMATION, - "VC UDP output enabled channel %u to %s:%u", - (unsigned int)i, VC_AppCustomData.Channel[i].DestIP, - (unsigned int)VC_AppCustomData.Channel[i].DestPort); - } - } - } - return (returnCode); -} - - -int32 VC_DisableChannel(uint8 ChannelID) -{ - int32 returnCode = 0; - - if(VC_AppCustomData.Channel[ChannelID].Mode != VC_CHANNEL_ENABLED) - { - returnCode = -1; - goto end_of_function; - } - - if(-1 == close(VC_AppCustomData.Channel[ChannelID].SocketFd)) - { - returnCode = -1; - goto end_of_function; - } - else - { - VC_AppCustomData.Channel[ChannelID].SocketFd = 0; - } - -end_of_function: - return (returnCode); -} - - -int32 VC_CleanupCustom(void) -{ - uint32 i = 0; - int32 returnCode = 0; - - for(i=0; i < VC_MAX_OUTPUT_CHANNELS; i++) - { - if(VC_AppCustomData.Channel[i].Mode == VC_CHANNEL_ENABLED) - { - if(-1 == VC_DisableChannel(i)) - { - returnCode = -1; - } - } - } - return returnCode; -} - - -boolean VC_Transmit_Init(void) -{ - boolean returnBool = TRUE; - if(-1 == VC_Init_CustomTransmitters()) - { - (void) CFE_EVS_SendEvent(VC_SOCKET_ERR_EID, CFE_EVS_ERROR, \ - "VC_Transmit_Init Failed"); - returnBool = FALSE; - } - return (returnBool); -} - - -boolean VC_Transmit_Uninit(void) -{ - boolean returnBool = TRUE; - if(-1 == VC_CleanupCustom()) - { - returnBool = FALSE; - } - return (returnBool); -} - - -void VC_Transmit_Critical_Cleanup(void) -{ - uint8 i = 0; - - for(i=0; i < VC_MAX_OUTPUT_CHANNELS; i++) - { - if(VC_AppCustomData.Channel[i].SocketFd != 0) - { - close(VC_AppCustomData.Channel[i].SocketFd); - } - } - return; -} - - -int32 VC_SendData(uint32 ChannelID, const char* Buffer, uint32 Size) -{ - static struct sockaddr_in s_addr; - int status = 0; - int32 returnCode = 0; - - bzero((char *) &s_addr, sizeof(s_addr)); - s_addr.sin_family = AF_INET; - - if(ChannelID < VC_MAX_OUTPUT_CHANNELS) - { - VC_Transmit_Handle_t *channel = &VC_AppCustomData.Channel[ChannelID]; - - if(channel->Mode == VC_CHANNEL_ENABLED) - { - - CFE_ES_PerfLogEntry(VC_SOCKET_SEND_PERF_ID); - /* Send message via UDP socket */ - s_addr.sin_addr.s_addr = inet_addr(channel->DestIP); - s_addr.sin_port = htons(channel->DestPort); - - /* If the frame is from opFlow dedicated camera device - * convert image from YUV2 or YUYV to Grey by extracting the Y component. - * copy the image to opticalFlowFrameMsg*/ - if(ChannelID == 0) - { - /* Row */ - uint32 rowPadding = (VC_FRAME_HEIGHT-OP_FLOW_FRAME_HEIGHT)/2; - uint32 startRow = ((VC_FRAME_WIDTH)*(rowPadding-1)); - uint32 endRow = ((VC_FRAME_WIDTH)*(VC_FRAME_HEIGHT-rowPadding-1)); - /* Column */ - uint32 columnPadding = (VC_FRAME_WIDTH-OP_FLOW_FRAME_WIDTH)/2; - uint32 startColumn = (columnPadding); - uint32 endColumn = (VC_FRAME_WIDTH-columnPadding-1); - - uint32 byteCounter = 0; - uint32 colCounter = 0; - uint32 valCounter = 0; - - uint32 columnPaddingCounter = 0; - uint32 rowPaddingCounter = 0; - uint32 i; - for(i =0 ; i= endRow) - { - byteCounter++; - continue; - - } - else - { - if(byteCounter!=0 && byteCounter%VC_FRAME_WIDTH == 0) - { - colCounter = 0; - } - - if(colCounter>=startColumn && colCounter<=endColumn) - { - OpticalFlowFrameMsg.Frame[valCounter]=(uint8)Buffer[i]; - valCounter++; - } - colCounter++; - } - byteCounter++; - } - } - - /* Publish message to software bus */ - uint64 timestamp; - timestamp = PX4LIB_GetPX4TimeUs(); - OpticalFlowFrameMsg.Timestamp = timestamp; - CFE_SB_TimeStampMsg((CFE_SB_Msg_t*) &OpticalFlowFrameMsg); - CFE_SB_SendMsg((CFE_SB_Msg_t*) &OpticalFlowFrameMsg); - status = PX4_OPTICAL_FLOW_FRAME_SIZE; - - /* Send frame over udp*/ - status = sendto(channel->SocketFd, (char *)OpticalFlowFrameMsg.Frame, sizeof(OpticalFlowFrameMsg.Frame), 0, - (struct sockaddr *) &s_addr, - sizeof(s_addr)); - } - - if (status < 0) - { - if(errno == 90) - { - (void) CFE_EVS_SendEvent(VC_SOCKET_ERR_EID,CFE_EVS_ERROR, - "L%d VC sendto errno %d. Message too long. Size=%u", __LINE__, errno, (unsigned int)Size); - } - else - { - (void) CFE_EVS_SendEvent(VC_SOCKET_ERR_EID, CFE_EVS_ERROR, - "L%d VC sendto errno %d.", __LINE__, errno); - } - - /* Delay the task to prevent the possibility of busy waiting and accidental denial of service. */ - OS_TaskDelay(1000); - } - CFE_ES_PerfLogExit(VC_SOCKET_SEND_PERF_ID); - } - } - return (returnCode); -} - - -boolean VC_Address_Verification(const char *Address) -{ - boolean returnBool = FALSE; - static struct sockaddr_in s_addr; - if(0 != inet_aton(Address, &s_addr.sin_addr)) - { - returnBool = TRUE; - } - return (returnBool); -} - - -boolean VC_Update_Destination(const char *Address, uint16 Port) -{ - boolean returnBool = TRUE; - uint32 i = 0; - - for (i=0; i < VC_MAX_OUTPUT_CHANNELS; i++) - { - if(VC_AppCustomData.Channel[i].Mode == VC_CHANNEL_ENABLED) - { - VC_AppCustomData.Channel[i].DestPort = Port; - - if(!strncpy(VC_AppCustomData.Channel[i].DestIP, Address, INET_ADDRSTRLEN)) - { - returnBool = FALSE; - } - } - } - - return (returnBool); -} - - -int32 VC_Transmit_InitData() -{ - return VC_CustomTransmit_InitData(); -} - diff --git a/config/obc/cpd/target/apps/vc/src/vc_transmit_udp/vc_transmit_udp.h b/config/obc/cpd/target/apps/vc/src/vc_transmit_udp/vc_transmit_udp.h deleted file mode 100644 index e83ecd4be..000000000 --- a/config/obc/cpd/target/apps/vc/src/vc_transmit_udp/vc_transmit_udp.h +++ /dev/null @@ -1,145 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ - -#ifndef VC_TRANSMIT_UDP_H -#define VC_TRANSMIT_UDP_H - -/************************************************************************ -** Includes -*************************************************************************/ -#include "cfe.h" -#include "px4_msgs.h" -#include "msg_ids.h" -#include "vc_transmit.h" -#include "../vc_custom_shared.h" -#include "vc_perfids.h" -#include -#include "vc_app.h" - -/************************************************************************ -** Structure Declarations -*************************************************************************/ - -/** - * Channel modes - */ -typedef enum -{ - /*! Channel state unused */ - VC_CHANNEL_UNUSED = 0, - /*! Channel state disabled */ - VC_CHANNEL_DISABLED = 1, - /*! Channel state enabled */ - VC_CHANNEL_ENABLED = 2 -} VC_ChannelMode_t; - - -/** - * Transmit struct handle for user defined source and/or destination - * configuration information and initialized resource reference. - */ -typedef struct -{ - /*! Channel mode */ - VC_ChannelMode_t Mode; - /*! Channel identifier */ - uint8 ChannelID; - /*! Destination port */ - uint16 DestPort; - /*! Local port to bind */ - uint16 MyPort; - /*! Destination IP address */ - char DestIP[INET_ADDRSTRLEN]; - /*! Local IP address to allow interface choices */ - char MyIP[INET_ADDRSTRLEN]; - /*! Socket file descriptor for the channel */ - int SocketFd; -} VC_Transmit_Handle_t; - -/** - * Transmit handles - */ -typedef struct -{ - VC_Transmit_Handle_t Channel[VC_MAX_OUTPUT_CHANNELS]; -} VC_AppCustomData_t; - -/** \brief Optical flow frame message */ -PX4_OpticalFlowFrameMsg_t OpticalFlowFrameMsg; -/************************************************************************ -** External Global Variables -*************************************************************************/ - -extern VC_AppCustomData_t VC_AppCustomData; - -/************************************************************************ -** Function Prototypes -*************************************************************************/ - -/** - * @brief Custom function to initialize custom transmit data structure. - * @return CFE_SUCCESS - */ -int32 VC_CustomTransmit_InitData(void); - - -/** - * @brief Initialize all enabled transmit resources - * @return 0 for success -1 for failure - */ -int32 VC_Init_CustomTransmitters(void); - - -/** - * @brief Initialize a transmit channel - * @return 0 for success -1 for failure - */ -int32 VC_EnableChannel(uint8 ChannelID); - - -/** - * @brief Cleanup all transmit resources - * @return 0 for success -1 for failure - */ -int32 VC_CleanupCustom(void); - - -/** - * @brief Disable a transmit channel - * @param ChannelID the channel to disable - * @return 0 for success -1 for failure - */ -int32 VC_DisableChannel(uint8 ChannelID); - - -#endif diff --git a/config/obc/cpd/target/apps/vc/unit_test/vc_app_custom_stubs/vc_app_custom_stubs.c b/config/obc/cpd/target/apps/vc/unit_test/vc_app_custom_stubs/vc_app_custom_stubs.c deleted file mode 100644 index af7b83c94..000000000 --- a/config/obc/cpd/target/apps/vc/unit_test/vc_app_custom_stubs/vc_app_custom_stubs.c +++ /dev/null @@ -1,50 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ - -#include "vc_app_custom_stubs.h" - - - -uint64 PX4LIB_GetPX4TimeUs(void) -{ - return 0; -} - - -uint64 PX4LIB_GetPX4TimeMs(void) -{ - return 0; -} - - - diff --git a/config/obc/cpd/target/apps/vc/unit_test/vc_app_custom_stubs/vc_app_custom_stubs.h b/config/obc/cpd/target/apps/vc/unit_test/vc_app_custom_stubs/vc_app_custom_stubs.h deleted file mode 100644 index 320012837..000000000 --- a/config/obc/cpd/target/apps/vc/unit_test/vc_app_custom_stubs/vc_app_custom_stubs.h +++ /dev/null @@ -1,48 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ - -#ifndef VC_APP_CUSTOM_STUBS_H -#define VC_APP_CUSTOM_STUBS_H - -#ifdef __cplusplus -extern "C" { -#endif - -#include "cfe.h" - - -#ifdef __cplusplus -} -#endif - -#endif /* VC_APP_CUSTOM_STUBS_H */ diff --git a/config/obc/cpd/target/apps/vc/unit_test/vc_app_stubs/vc_app_stubs.c b/config/obc/cpd/target/apps/vc/unit_test/vc_app_stubs/vc_app_stubs.c deleted file mode 100644 index 21cf82ce5..000000000 --- a/config/obc/cpd/target/apps/vc/unit_test/vc_app_stubs/vc_app_stubs.c +++ /dev/null @@ -1,62 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ - -#include "vc_app_stubs.h" -#include "vc_custom_shared.h" - -boolean VC_VerifyCmdLength(CFE_SB_Msg_t* MsgPtr, - uint16 usExpectedLen) -{ - boolean bResult = TRUE; - uint16 usMsgLen = 0; - - if (MsgPtr != NULL) - { - usMsgLen = CFE_SB_GetTotalMsgLength(MsgPtr); - - if (usExpectedLen != usMsgLen) - { - bResult = FALSE; - CFE_SB_MsgId_t MsgId = CFE_SB_GetMsgId(MsgPtr); - uint16 usCmdCode = CFE_SB_GetCmdCode(MsgPtr); - - (void) CFE_EVS_SendEvent(VC_MSGLEN_ERR_EID, CFE_EVS_ERROR, - "Rcvd invalid msgLen: msgId=0x%08X, cmdCode=%d, " - "msgLen=%d, expectedLen=%d", - MsgId, usCmdCode, usMsgLen, usExpectedLen); - VC_AppData.HkTlm.usCmdErrCnt++; - } - } - - return (bResult); -} /* End of VC_VerifyCmdLength() */ diff --git a/config/obc/cpd/target/apps/vc/unit_test/vc_app_stubs/vc_app_stubs.h b/config/obc/cpd/target/apps/vc/unit_test/vc_app_stubs/vc_app_stubs.h deleted file mode 100644 index a44118e95..000000000 --- a/config/obc/cpd/target/apps/vc/unit_test/vc_app_stubs/vc_app_stubs.h +++ /dev/null @@ -1,50 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ - -#ifndef VC_APP_STUBS_H -#define VC_APP_STUBS_H - -#ifdef __cplusplus -extern "C" { -#endif - -#include "cfe.h" - -boolean VC_VerifyCmdLength(CFE_SB_Msg_t* MsgPtr, - uint16 usExpectedLen); - -#ifdef __cplusplus -} -#endif - -#endif /* VC_APP_STUBS_H */ diff --git a/config/obc/cpd/target/apps/vc/unit_test/vc_custom_shared_test/vc_app_custom_shared_test.c b/config/obc/cpd/target/apps/vc/unit_test/vc_custom_shared_test/vc_app_custom_shared_test.c deleted file mode 100644 index 04aae9595..000000000 --- a/config/obc/cpd/target/apps/vc/unit_test/vc_custom_shared_test/vc_app_custom_shared_test.c +++ /dev/null @@ -1,589 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ - -#include "vc_app_custom_shared_test.h" -#include "vc_custom_shared_test_utils.h" -#include "vc_platform_cfg.h" -#include "vc_transmit_udp.h" -#include "vc_msgids.h" -#include "vc_platform_stubs.h" - -#include -#include -#include - -#include "uttest.h" -#include "ut_osapi_stubs.h" -#include "ut_cfe_sb_stubs.h" -#include "ut_cfe_sb_hooks.h" -#include "ut_cfe_es_stubs.h" -#include "ut_cfe_es_hooks.h" -#include "ut_cfe_evs_stubs.h" -#include "ut_cfe_evs_hooks.h" -#include "ut_cfe_time_stubs.h" -#include "ut_cfe_psp_memutils_stubs.h" -#include "ut_cfe_tbl_stubs.h" -#include "ut_cfe_fs_stubs.h" -#include "ut_cfe_time_stubs.h" - -/************************************************************************** - * Tests VC_ProcessNewCustomCmds() - **************************************************************************/ -/** - * Test VC_ProcessNewCustomCmds() - InvalidMsgID - */ -void Test_VC_Custom_ProcessNewCustomCmds_InvalidMsgID(void) -{ - VC_StartStreamCmd_t InMsg; - - CFE_SB_InitMsg (&InMsg, 0x0000, sizeof(VC_StartStreamCmd_t), TRUE); - - CFE_SB_SetCmdCode((CFE_SB_MsgPtr_t)&InMsg, VC_STARTSTREAMING_CC); - - /* Set get command code function hook */ - Ut_CFE_SB_SetFunctionHook(UT_CFE_SB_GETCMDCODE_INDEX, &Ut_CFE_SB_GetCmdCodeHook); - - /* Call the function under test */ - VC_ProcessNewCustomCmds((CFE_SB_MsgPtr_t)&InMsg); - - /* Verify results */ - - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); - UtAssert_True(VC_AppData.HkTlm.usCmdErrCnt == 1,"CmdErrCnt not incremented"); - UtAssert_EventSent(VC_MSGID_ERR_EID, CFE_EVS_ERROR, "", - "VC_ProcessNewCustomCmds() failed to raise an event"); -} - - -/** - * Test VC_ProcessNewCustomCmds() - Invalid Command Code - */ -void Test_VC_Custom_ProcessNewCustomCmds_InvalidCommand(void) -{ - /* Create an invalid command code */ - uint8 InvalidCommandCode = 100; - - VC_StartStreamCmd_t InMsg; - - CFE_SB_InitMsg (&InMsg, VC_STARTSTREAMING_CC, sizeof(VC_StartStreamCmd_t), TRUE); - - /* Set invalid command code */ - CFE_SB_SetCmdCode((CFE_SB_MsgPtr_t)&InMsg, InvalidCommandCode); - - /* Set get command code function hook */ - Ut_CFE_SB_SetFunctionHook(UT_CFE_SB_GETCMDCODE_INDEX, &Ut_CFE_SB_GetCmdCodeHook); - - /* Call the function under test */ - VC_ProcessNewCustomCmds((CFE_SB_MsgPtr_t)&InMsg); - - /* Verify results */ - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); - UtAssert_True(VC_AppData.HkTlm.usCmdErrCnt = 1,"Command error counter != 1"); - UtAssert_EventSent(VC_MSGID_ERR_EID, CFE_EVS_ERROR, "", - "Cmd with Invalid Cmd Code Sent"); -} - - -/** - * Test VC_ProcessNewCustomCmds(), StartStreaming command, Invalid Size - */ -void Test_VC_ProcessNewCustomCmds_StartStreaming_InvalidSize(void) -{ - /* Command with the wrong type (size) */ - VC_NoArgCmd_t InMsg; - - CFE_SB_InitMsg (&InMsg, VC_CMD_MID, sizeof(InMsg), TRUE); - - CFE_SB_SetCmdCode((CFE_SB_MsgPtr_t)&InMsg, VC_STARTSTREAMING_CC); - - /* Set get command code function hook */ - Ut_CFE_SB_SetFunctionHook(UT_CFE_SB_GETCMDCODE_INDEX, &Ut_CFE_SB_GetCmdCodeHook); - - /* Call the function under test */ - VC_ProcessNewCustomCmds((CFE_SB_MsgPtr_t)&InMsg); - - /* Verify results */ - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); - UtAssert_True(VC_AppData.HkTlm.usCmdErrCnt = 1,"Command error counter != 1"); - UtAssert_EventSent(VC_MSGLEN_ERR_EID, CFE_EVS_ERROR, "", - "Start Streaming Cmd Event Sent"); -} - - -/** - * Test VC_ProcessNewCustomCmds(), StartStreaming command, Invalid State - */ -void Test_VC_ProcessNewCustomCmds_StartStreaming_InvalidState(void) -{ - VC_StartStreamCmd_t InStartStreamingCmd; - - CFE_SB_InitMsg (&InStartStreamingCmd, VC_CMD_MID, sizeof(InStartStreamingCmd), TRUE); - CFE_SB_SetCmdCode((CFE_SB_MsgPtr_t)&InStartStreamingCmd, VC_STARTSTREAMING_CC); - - /* Set get command code function hook */ - Ut_CFE_SB_SetFunctionHook(UT_CFE_SB_GETCMDCODE_INDEX, &Ut_CFE_SB_GetCmdCodeHook); - - /* Set app state to streaming */ - VC_AppData.AppState = VC_STREAMING; - - /* Call the function under test */ - VC_ProcessNewCustomCmds((CFE_SB_MsgPtr_t)&InStartStreamingCmd); - - /* Verify results */ - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==2,"Event Count = 2"); - UtAssert_True(VC_AppData.HkTlm.usCmdErrCnt = 1,"Command error counter != 1"); - UtAssert_EventSent(VC_CMD_ERR_EID, CFE_EVS_ERROR, "VC is already streaming", "Start Streaming Cmd Event Sent"); -} - - -/** - * Test VC_ProcessNewCustomCmds(), StartStreaming command, Invalid (Null) Address - */ -void Test_VC_ProcessNewCustomCmds_StartStreaming_InvalidNullAddress(void) -{ - VC_StartStreamCmd_t InStartStreamingCmd; - - CFE_SB_InitMsg (&InStartStreamingCmd, VC_CMD_MID, sizeof(InStartStreamingCmd), TRUE); - CFE_SB_SetCmdCode((CFE_SB_MsgPtr_t)&InStartStreamingCmd, VC_STARTSTREAMING_CC); - - /* Set get command code function hook */ - Ut_CFE_SB_SetFunctionHook(UT_CFE_SB_GETCMDCODE_INDEX, &Ut_CFE_SB_GetCmdCodeHook); - - /* Set app state to initialized */ - VC_AppData.AppState = VC_INITIALIZED; - - /* Call the function under test */ - VC_ProcessNewCustomCmds((CFE_SB_MsgPtr_t)&InStartStreamingCmd); - - /* Verify results */ - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==2,"Event Count = 2"); - UtAssert_True(VC_AppData.HkTlm.usCmdErrCnt = 1,"Command error counter != 1"); - UtAssert_EventSent(VC_ADDR_NUL_ERR_EID, CFE_EVS_ERROR, - "NUL (empty) string specified for address", "Start Streaming Cmd Event Sent"); -} - - -/** - * Test VC_ProcessNewCustomCmds(), StartStreaming command, Invalid Address - */ -void Test_VC_ProcessNewCustomCmds_StartStreaming_InvalidAddress(void) -{ - VC_StartStreamCmd_t InStartStreamingCmd; - - CFE_SB_InitMsg (&InStartStreamingCmd, VC_CMD_MID, sizeof(InStartStreamingCmd), TRUE); - CFE_SB_SetCmdCode((CFE_SB_MsgPtr_t)&InStartStreamingCmd, VC_STARTSTREAMING_CC); - - /* Set get command code function hook */ - Ut_CFE_SB_SetFunctionHook(UT_CFE_SB_GETCMDCODE_INDEX, &Ut_CFE_SB_GetCmdCodeHook); - - /* Set app state to initialized */ - VC_AppData.AppState = VC_INITIALIZED; - - /* Start streaming needs an address to pass null check */ - strcpy(InStartStreamingCmd.Address, "NOT_NULL"); - - /* Call the function under test */ - VC_ProcessNewCustomCmds((CFE_SB_MsgPtr_t)&InStartStreamingCmd); - - /* Verify results */ - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==2,"Event Count = 2"); - UtAssert_True(VC_AppData.HkTlm.usCmdErrCnt = 1,"Command error counter != 1"); - UtAssert_EventSent(VC_ADDR_ERR_EID, CFE_EVS_ERROR, - "Invalid string specified for address", "Start Streaming Cmd Event Sent"); -} - - -/** - * Test VC_ProcessNewCustomCmds(), StartStreaming command, destination - * update failure - */ -void Test_VC_ProcessNewCustomCmds_StartStreaming_UpdateDestinationFail(void) -{ - /* Currently no way to fail update destination. */ - //VC_StartStreamCmd_t InStartStreamingCmd; - - //CFE_SB_InitMsg (&InStartStreamingCmd, VC_CMD_MID, sizeof(InStartStreamingCmd), TRUE); - //CFE_SB_SetCmdCode((CFE_SB_MsgPtr_t)&InStartStreamingCmd, VC_STARTSTREAMING_CC); - - ///* Set get command code function hook */ - //Ut_CFE_SB_SetFunctionHook(UT_CFE_SB_GETCMDCODE_INDEX, &Ut_CFE_SB_GetCmdCodeHook); - - ///* Set app state to initialized */ - //VC_AppData.AppState = VC_INITIALIZED; - - ///* Start streaming needs an address to pass null check */ - //strcpy(InStartStreamingCmd.Address, "1.1.1.1"); - - ///* Call the function under test */ - //VC_ProcessNewCustomCmds((CFE_SB_MsgPtr_t)&InStartStreamingCmd); - - ///* Verify results */ - //UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==2,"Event Count = 2"); - //UtAssert_True(VC_AppData.HkTlm.usCmdErrCnt = 1,"Command error counter != 1"); - //UtAssert_EventSent(VC_INIT_ERR_EID, CFE_EVS_ERROR, "Destination update failed", "Start Streaming Cmd Event Sent"); -} - - -/** - * Test VC_ProcessNewCustomCmds(), StartStreaming command, transmit - * uninit failure - */ -void Test_VC_ProcessNewCustomCmds_StartStreaming_TransmitUninitFail(void) -{ - VC_StartStreamCmd_t InStartStreamingCmd; - - CFE_SB_InitMsg (&InStartStreamingCmd, VC_CMD_MID, sizeof(InStartStreamingCmd), TRUE); - CFE_SB_SetCmdCode((CFE_SB_MsgPtr_t)&InStartStreamingCmd, VC_STARTSTREAMING_CC); - - /* Set get command code function hook */ - Ut_CFE_SB_SetFunctionHook(UT_CFE_SB_GETCMDCODE_INDEX, &Ut_CFE_SB_GetCmdCodeHook); - - /* Set app state to initialized */ - VC_AppData.AppState = VC_INITIALIZED; - - /* Start streaming needs an address to pass null check */ - strcpy(InStartStreamingCmd.Address, "1.1.1.1"); - - /* Set a channel to enabled to pass VC_Update_Destination */ - VC_AppCustomData.Channel[0].Mode = VC_CHANNEL_ENABLED; - - /* Set close to fail */ - VC_Platform_Stubs_Returns.VC_Wrap_Close_Return = -1; - - /* Call the function under test */ - VC_ProcessNewCustomCmds((CFE_SB_MsgPtr_t)&InStartStreamingCmd); - - /* Verify results */ - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==2,"Event Count = 2"); - UtAssert_True(VC_AppData.HkTlm.usCmdErrCnt = 1,"Command error counter != 1"); -} - - -/** - * Test VC_ProcessNewCustomCmds(), StartStreaming command, devices - * start failure - */ -void Test_VC_ProcessNewCustomCmds_StartStreaming_DevicesStartFail(void) -{ - VC_StartStreamCmd_t InStartStreamingCmd; - - CFE_SB_InitMsg (&InStartStreamingCmd, VC_CMD_MID, sizeof(InStartStreamingCmd), TRUE); - CFE_SB_SetCmdCode((CFE_SB_MsgPtr_t)&InStartStreamingCmd, VC_STARTSTREAMING_CC); - - /* Set get command code function hook */ - Ut_CFE_SB_SetFunctionHook(UT_CFE_SB_GETCMDCODE_INDEX, &Ut_CFE_SB_GetCmdCodeHook); - - /* Set app state to initialized */ - VC_AppData.AppState = VC_INITIALIZED; - - /* Start streaming needs an address to pass null check */ - strcpy(InStartStreamingCmd.Address, "1.1.1.1"); - - /* Set source IP to a valid value to pass transmit init */ - strcpy(VC_AppCustomData.Channel[0].MyIP, "1.1.1.1"); - - /* Set a channel to enabled to pass VC_Update_Destination */ - VC_AppCustomData.Channel[0].Mode = VC_CHANNEL_ENABLED; - - /* Set status to initialized */ - VC_AppCustomDevice.Channel[0].Status = VC_DEVICE_INITIALIZED; - - /* Set device start child task to fail */ - Ut_CFE_ES_SetReturnCode(UT_CFE_ES_CREATECHILDTASK_INDEX, -1, 1); - - /* Call the function under test */ - VC_ProcessNewCustomCmds((CFE_SB_MsgPtr_t)&InStartStreamingCmd); - - /* Verify results */ - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==2,"Event Count = 2"); - UtAssert_True(VC_AppData.HkTlm.usCmdErrCnt = 1,"Command error counter != 1"); - UtAssert_EventSent(VC_INIT_ERR_EID, CFE_EVS_ERROR, "VC_Devices_Start failed in cmd start streaming", "Device start failure did not raise event"); -} - - -/** - * Test VC_ProcessNewCustomCmds(), Start Streaming command, Nominal - */ -void Test_VC_ProcessNewCustomCmds_StartStreaming_Nominal(void) -{ - VC_StartStreamCmd_t InStartStreamingCmd; - - CFE_SB_InitMsg (&InStartStreamingCmd, VC_CMD_MID, sizeof(InStartStreamingCmd), TRUE); - CFE_SB_SetCmdCode((CFE_SB_MsgPtr_t)&InStartStreamingCmd, VC_STARTSTREAMING_CC); - - /* Set get command code function hook */ - Ut_CFE_SB_SetFunctionHook(UT_CFE_SB_GETCMDCODE_INDEX, &Ut_CFE_SB_GetCmdCodeHook); - - /* Set app state to initialized */ - VC_AppData.AppState = VC_INITIALIZED; - - /* Start streaming needs an address to pass null check */ - strcpy(InStartStreamingCmd.Address, "1.1.1.1"); - - /* Set source IP to a valid value to pass transmit init */ - strcpy(VC_AppCustomData.Channel[0].MyIP, "1.1.1.1"); - - /* Set a channel to enabled to pass VC_Update_Destination */ - VC_AppCustomData.Channel[0].Mode = VC_CHANNEL_ENABLED; - - /* Set status to initialized */ - VC_AppCustomDevice.Channel[0].Status = VC_DEVICE_INITIALIZED; - - /* Call the function under test */ - VC_ProcessNewCustomCmds((CFE_SB_MsgPtr_t)&InStartStreamingCmd); - - /* Verify results */ - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==2,"Event Count = 2"); - UtAssert_True(VC_AppData.HkTlm.usCmdCnt = 1,"Command counter != 1"); - UtAssert_EventSent(VC_CMD_INF_EID, CFE_EVS_INFORMATION, "", "Start Streaming Cmd Event Sent"); - UtAssert_True(VC_AppData.AppState == VC_STREAMING, "App state != streaming"); -} - - -/** - * Test VC_ProcessNewCustomCmds(), StopStreaming command, Invalid Size - */ -void Test_VC_ProcessNewCustomCmds_StopStreaming_InvalidSize(void) -{ - /* Command with the wrong type (size) */ - VC_StartStreamCmd_t InMsg; - - CFE_SB_InitMsg (&InMsg, VC_CMD_MID, sizeof(InMsg), TRUE); - - CFE_SB_SetCmdCode((CFE_SB_MsgPtr_t)&InMsg, VC_STOPSTREAMING_CC); - - /* Set get command code function hook */ - Ut_CFE_SB_SetFunctionHook(UT_CFE_SB_GETCMDCODE_INDEX, &Ut_CFE_SB_GetCmdCodeHook); - - /* Call the function under test */ - VC_ProcessNewCustomCmds((CFE_SB_MsgPtr_t)&InMsg); - - /* Verify results */ - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); - UtAssert_True(VC_AppData.HkTlm.usCmdErrCnt = 1,"Command error counter != 1"); - UtAssert_EventSent(VC_MSGLEN_ERR_EID, CFE_EVS_ERROR, "", - "Start Streaming Cmd Event Sent"); -} - - -/** - * Test VC_ProcessNewCustomCmds(), StopStreaming command, Invalid State - */ -void Test_VC_ProcessNewCustomCmds_StopStreaming_InvalidState(void) -{ - VC_NoArgCmd_t InMsg; - - CFE_SB_InitMsg (&InMsg, VC_CMD_MID, sizeof(InMsg), TRUE); - CFE_SB_SetCmdCode((CFE_SB_MsgPtr_t)&InMsg, VC_STOPSTREAMING_CC); - - /* Set get command code function hook */ - Ut_CFE_SB_SetFunctionHook(UT_CFE_SB_GETCMDCODE_INDEX, &Ut_CFE_SB_GetCmdCodeHook); - - /* Set app state to streaming */ - VC_AppData.AppState = VC_INITIALIZED; - - /* Call the function under test */ - VC_ProcessNewCustomCmds((CFE_SB_MsgPtr_t)&InMsg); - - /* Verify results */ - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==2,"Event Count = 2"); - UtAssert_True(VC_AppData.HkTlm.usCmdErrCnt = 1,"Command error counter != 1"); - UtAssert_EventSent(VC_CMD_ERR_EID, CFE_EVS_ERROR, - "VC is already not streaming", "Stop Streaming Cmd Event Sent"); -} - - -/************************************************************************** - * Tests VC_Custom_Max_Events_Not_Reached() - **************************************************************************/ -/** - * Test Test_VC_Custom_Max_Events_Not_Reached(), Nominal - * - */ -void Test_VC_Custom_Max_Events_Not_Reached_Nominal(void) -{ - UtAssert_True(VC_Custom_Max_Events_Not_Reached(VC_MAX_EVENT_FILTERS - 1) == TRUE, - "Max events not reached did return true"); -} - - -/** - * Test Test_VC_Custom_Max_Events_Not_Reached(), Fail - * - */ -void Test_VC_Custom_Max_Events_Not_Reached_Fail(void) -{ - UtAssert_True(VC_Custom_Max_Events_Not_Reached(VC_MAX_EVENT_FILTERS + 1) == FALSE, - "Max events not reached did not return false"); -} - - -/************************************************************************** - * Tests VC_Custom_Init_EventFilters() - **************************************************************************/ -/** - * Test VC_Custom_Init_EventFilters(), Nominal - */ -void Test_VC_Custom_Init_EventFilters_Nominal(void) -{ - int32 returnCode = 0; - int32 expected = 2; - - CFE_EVS_BinFilter_t EventTbl[VC_MAX_EVENT_FILTERS]; - - returnCode = VC_Custom_Init_EventFilters(1, EventTbl); - - UtAssert_True(returnCode == expected, - "Test_VC_Custom_Init_EventFilters_Nominal did not return the expected value"); - UtAssert_True(EventTbl[1].EventID == VC_SOCKET_ERR_EID, - "Event filter array entries not added"); - UtAssert_True(EventTbl[2].EventID == VC_DEVICE_ERR_EID, - "Event filter array entries not added"); -} - - -/** - * Test VC_Custom_Init_EventFilters(), Fail - */ -void Test_VC_Custom_Init_EventFilters_Fail1(void) -{ - int32 returnCode = 0; - int32 expected = -1; - CFE_EVS_BinFilter_t EventTbl[VC_MAX_EVENT_FILTERS]; - - returnCode = VC_Custom_Init_EventFilters(VC_MAX_EVENT_FILTERS, EventTbl); - - UtAssert_True(returnCode == expected, - "Test_VC_Custom_Init_EventFilters_Fail did not return the expected value"); - -} - - -/** - * Test VC_Custom_Init_EventFilters(), Fail - */ -void Test_VC_Custom_Init_EventFilters_Fail2(void) -{ - int32 returnCode = 0; - int32 expected = -1; - CFE_EVS_BinFilter_t EventTbl[VC_MAX_EVENT_FILTERS]; - - returnCode = VC_Custom_Init_EventFilters(VC_MAX_EVENT_FILTERS-1, EventTbl); - - UtAssert_True(returnCode == expected, - "Test_VC_Custom_Init_EventFilters_Fail did not return the expected value"); - UtAssert_True(returnCode == expected, - "Test_VC_Custom_Init_EventFilters_Nominal did not return the expected value"); - UtAssert_True(EventTbl[VC_MAX_EVENT_FILTERS-1].EventID == VC_SOCKET_ERR_EID, - "Event filter array entries not added"); - -} - - -/** - * Test VC_Custom_Init_EventFilters(), Fail null check - */ -void Test_VC_Custom_Init_EventFilters_Null(void) -{ - int32 returnCode = 0; - int32 expected = -1; - - returnCode = VC_Custom_Init_EventFilters(1, (CFE_EVS_BinFilter_t *)0); - - UtAssert_True(returnCode == expected, - "Test_VC_Custom_Init_EventFilters_Fail did not return the expected value"); -} - -/************************************************************************** - * Rollup Test Cases - **************************************************************************/ -void VC_Custom_App_Shared_Test_AddTestCases(void) -{ -/************************************************************************** - * Tests for Custom Shared Layer - **************************************************************************/ - UtTest_Add(Test_VC_Custom_ProcessNewCustomCmds_InvalidMsgID, - VC_Custom_Shared_Test_Setup, VC_Custom_Shared_Test_TearDown, - "Test_VC_Custom_ProcessNewCustomCmds_InvalidMsgID"); - UtTest_Add(Test_VC_Custom_ProcessNewCustomCmds_InvalidCommand, - VC_Custom_Shared_Test_Setup, VC_Custom_Shared_Test_TearDown, - "Test_VC_Custom_ProcessNewCustomCmds_InvalidCommand"); - UtTest_Add(Test_VC_ProcessNewCustomCmds_StartStreaming_InvalidSize, - VC_Custom_Shared_Test_Setup, VC_Custom_Shared_Test_TearDown, - "Test_VC_ProcessNewCustomCmds_StartStreaming_InvalidSize"); - UtTest_Add(Test_VC_ProcessNewCustomCmds_StartStreaming_InvalidState, - VC_Custom_Shared_Test_Setup, VC_Custom_Shared_Test_TearDown, - "Test_VC_ProcessNewCustomCmds_StartStreaming_InvalidState"); - UtTest_Add(Test_VC_ProcessNewCustomCmds_StartStreaming_InvalidNullAddress, - VC_Custom_Shared_Test_Setup, VC_Custom_Shared_Test_TearDown, - "Test_VC_ProcessNewCustomCmds_StartStreaming_InvalidNullAddress"); - UtTest_Add(Test_VC_ProcessNewCustomCmds_StartStreaming_InvalidAddress, - VC_Custom_Shared_Test_Setup, VC_Custom_Shared_Test_TearDown, - "Test_VC_ProcessNewCustomCmds_StartStreaming_InvalidAddress"); - UtTest_Add(Test_VC_ProcessNewCustomCmds_StartStreaming_UpdateDestinationFail, - VC_Custom_Shared_Test_Setup, VC_Custom_Shared_Test_TearDown, - "Test_VC_ProcessNewCustomCmds_StartStreaming_UpdateDestinationFail"); - UtTest_Add(Test_VC_ProcessNewCustomCmds_StartStreaming_TransmitUninitFail, - VC_Custom_Shared_Test_Setup, VC_Custom_Shared_Test_TearDown, - "Test_VC_ProcessNewCustomCmds_StartStreaming_TransmitUninitFail"); - UtTest_Add(Test_VC_ProcessNewCustomCmds_StartStreaming_DevicesStartFail, - VC_Custom_Shared_Test_Setup, VC_Custom_Shared_Test_TearDown, - "Test_VC_ProcessNewCustomCmds_StartStreaming_DevicesStartFail"); - UtTest_Add(Test_VC_ProcessNewCustomCmds_StartStreaming_Nominal, - VC_Custom_Shared_Test_Setup, VC_Custom_Shared_Test_TearDown, - "Test_VC_ProcessNewCustomCmds_StartStreaming_Nominal"); - UtTest_Add(Test_VC_ProcessNewCustomCmds_StopStreaming_InvalidSize, - VC_Custom_Shared_Test_Setup, VC_Custom_Shared_Test_TearDown, - "Test_VC_ProcessNewCustomCmds_StopStreaming_InvalidSize"); - UtTest_Add(Test_VC_ProcessNewCustomCmds_StopStreaming_InvalidState, - VC_Custom_Shared_Test_Setup, VC_Custom_Shared_Test_TearDown, - "Test_VC_ProcessNewCustomCmds_StopStreaming_InvalidState"); - UtTest_Add(Test_VC_Custom_Max_Events_Not_Reached_Nominal, - VC_Custom_Shared_Test_Setup, VC_Custom_Shared_Test_TearDown, - "Test_VC_Custom_Max_Events_Not_Reached_Nominal"); - UtTest_Add(Test_VC_Custom_Max_Events_Not_Reached_Fail, - VC_Custom_Shared_Test_Setup, VC_Custom_Shared_Test_TearDown, - "Test_VC_Custom_Max_Events_Not_Reached_Fail"); - UtTest_Add(Test_VC_Custom_Init_EventFilters_Nominal, - VC_Custom_Shared_Test_Setup, VC_Custom_Shared_Test_TearDown, - "Test_VC_Custom_Init_EventFilters_Nominal"); - UtTest_Add(Test_VC_Custom_Init_EventFilters_Fail1, - VC_Custom_Shared_Test_Setup, VC_Custom_Shared_Test_TearDown, - "Test_VC_Custom_Init_EventFilters_Fail1"); - UtTest_Add(Test_VC_Custom_Init_EventFilters_Fail2, - VC_Custom_Shared_Test_Setup, VC_Custom_Shared_Test_TearDown, - "Test_VC_Custom_Init_EventFilters_Fail2"); - UtTest_Add(Test_VC_Custom_Init_EventFilters_Null, - VC_Custom_Shared_Test_Setup, VC_Custom_Shared_Test_TearDown, - "Test_VC_Custom_Init_EventFilters_Null"); -} diff --git a/config/obc/cpd/target/apps/vc/unit_test/vc_custom_shared_test/vc_app_custom_shared_test.h b/config/obc/cpd/target/apps/vc/unit_test/vc_custom_shared_test/vc_app_custom_shared_test.h deleted file mode 100644 index b01f3180f..000000000 --- a/config/obc/cpd/target/apps/vc/unit_test/vc_custom_shared_test/vc_app_custom_shared_test.h +++ /dev/null @@ -1,48 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ - -#ifndef VC_APP_CUSTOM_SHARED_TEST_H -#define VC_APP_CUSTOM_SHARED_TEST_H - -#ifdef __cplusplus -extern "C" { -#endif - -void VC_Custom_App_Shared_Test_AddTestCases(void); - - -#ifdef __cplusplus -} -#endif - -#endif /* VC_APP_CUSTOM_SHARED_TEST_H */ diff --git a/config/obc/cpd/target/apps/vc/unit_test/vc_custom_shared_test/vc_custom_shared_test_utils.c b/config/obc/cpd/target/apps/vc/unit_test/vc_custom_shared_test/vc_custom_shared_test_utils.c deleted file mode 100644 index 3a923a55c..000000000 --- a/config/obc/cpd/target/apps/vc/unit_test/vc_custom_shared_test/vc_custom_shared_test_utils.c +++ /dev/null @@ -1,79 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ - -#include "vc_custom_shared_test_utils.h" -#include "vc_platform_stubs.h" -#include "vc_transmit_udp.h" -#include "vc_dev_io_v4l.h" - -#include "ut_cfe_evs_hooks.h" -#include "ut_cfe_time_stubs.h" -#include "ut_cfe_psp_memutils_stubs.h" -#include "ut_cfe_tbl_stubs.h" -#include "ut_cfe_tbl_hooks.h" -#include "ut_cfe_fs_stubs.h" -#include "ut_cfe_time_stubs.h" -#include "ut_osapi_stubs.h" -#include "ut_osfileapi_stubs.h" -#include "ut_cfe_sb_stubs.h" -#include "ut_cfe_es_stubs.h" -#include "ut_cfe_evs_stubs.h" - -#include - -/* - * Function Definitions - */ -void VC_Custom_Shared_Test_Setup(void) -{ - /* initialize test environment to default state for every test */ - - CFE_PSP_MemSet(&VC_AppData, 0x00, sizeof(VC_AppData)); - - Ut_CFE_EVS_Reset(); - Ut_CFE_FS_Reset(); - Ut_CFE_TIME_Reset(); - Ut_CFE_TBL_Reset(); - Ut_CFE_SB_Reset(); - Ut_CFE_ES_Reset(); - Ut_OSAPI_Reset(); - Ut_OSFILEAPI_Reset(); -} - -void VC_Custom_Shared_Test_TearDown(void) -{ - CFE_PSP_MemSet(&VC_AppData, 0x00, sizeof(VC_AppData)); - CFE_PSP_MemSet(&VC_AppCustomDevice, 0x00, sizeof(VC_AppCustomDevice_t)); - CFE_PSP_MemSet(&VC_AppCustomData, 0x00, sizeof(VC_AppCustomData_t)); - CFE_PSP_MemSet(&VC_Platform_Stubs_Returns, 0x00, sizeof(VC_Platform_Stubs_Returns_t)); -} diff --git a/config/obc/cpd/target/apps/vc/unit_test/vc_custom_shared_test/vc_custom_shared_test_utils.h b/config/obc/cpd/target/apps/vc/unit_test/vc_custom_shared_test/vc_custom_shared_test_utils.h deleted file mode 100644 index 2482120de..000000000 --- a/config/obc/cpd/target/apps/vc/unit_test/vc_custom_shared_test/vc_custom_shared_test_utils.h +++ /dev/null @@ -1,61 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ - -#ifndef VC_CUSTOM_DEVICE_SHARED_UTILS_H -#define VC_CUSTOM_DEVICE_SHARED_UTILS_H - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * Includes - */ - -#include "vc_custom_shared.h" - -extern VC_AppCustomDevice_t VC_AppCustomDevice; - -/* - * Function Definitions - */ - -void VC_Custom_Shared_Test_Setup(void); -void VC_Custom_Shared_Test_TearDown(void); - - -#ifdef __cplusplus -} -#endif - -#endif /* VC_CUSTOM_DEVICE_SHARED_UTILS_H */ diff --git a/config/obc/cpd/target/apps/vc/unit_test/vc_custom_testrunner.c b/config/obc/cpd/target/apps/vc/unit_test/vc_custom_testrunner.c deleted file mode 100644 index f25062cd8..000000000 --- a/config/obc/cpd/target/apps/vc/unit_test/vc_custom_testrunner.c +++ /dev/null @@ -1,66 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ - -#include "uttest.h" - -#include "vc_app_custom_device_test.h" -#include "vc_app_custom_transmit_test.h" -#include "vc_app.h" -//#include "vc_cmds_test.h" -//#include "vc_config_tbl_test.h" -//#include "vc_cds_tbl_test.h" - -VC_AppData_t VC_AppData; - -extern int enable_wrappers; - -void VC_Custom_App_Device_Test_AddTestCases(void); -void VC_Custom_App_Transmit_Test_AddTestCases(void); -void VC_Custom_App_Shared_Test_AddTestCases(void); - -int main(void) -{ - int testResults = 0; - enable_wrappers = 1; - VC_Custom_App_Device_Test_AddTestCases(); - VC_Custom_App_Transmit_Test_AddTestCases(); - VC_Custom_App_Shared_Test_AddTestCases(); - //VC_Cmds_Test_AddTestCases(); - //VC_Config_Tbl_Test_AddTestCases(); - //VC_CDS_Tbl_Test_AddTestCases(); - testResults = UtTest_Run(); - - enable_wrappers = 0; - - return testResults; -} diff --git a/config/obc/cpd/target/apps/vc/unit_test/vc_dev_io_udp_test/vc_app_custom_device_test.c b/config/obc/cpd/target/apps/vc/unit_test/vc_dev_io_udp_test/vc_app_custom_device_test.c deleted file mode 100644 index 72e9efa7b..000000000 --- a/config/obc/cpd/target/apps/vc/unit_test/vc_dev_io_udp_test/vc_app_custom_device_test.c +++ /dev/null @@ -1,722 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ - -#include "vc_app_custom_device_test.h" -#include "vc_custom_device_test_utils.h" -#include "vc_transmit_udp.h" -#include "vc_platform_stubs.h" -#include "vc_platform_cfg.h" -#include -#include -#include - -#include "uttest.h" -#include "ut_osapi_stubs.h" -#include "ut_cfe_sb_stubs.h" -#include "ut_cfe_sb_hooks.h" -#include "ut_cfe_es_stubs.h" -#include "ut_cfe_es_hooks.h" -#include "ut_cfe_evs_stubs.h" -#include "ut_cfe_evs_hooks.h" -#include "ut_cfe_time_stubs.h" -#include "ut_cfe_psp_memutils_stubs.h" -#include "ut_cfe_tbl_stubs.h" -#include "ut_cfe_fs_stubs.h" -#include "ut_cfe_time_stubs.h" - -/************************************************************************** - * Tests for VC_InitCustomDevices() - **************************************************************************/ -/** - * Test VC_InitCustomDevices() fail socket creation - */ -void Test_VC_Custom_InitCustomDevices_FailSocket(void) -{ - int32 result = 0; - int32 expected = -1; - uint8 DeviceID = 0; - char returnString[64]; - snprintf(returnString, 64, "Socket errno: %i on channel %u", 13, 0); - - /* Set the first device to enabled */ - VC_AppCustomDevice.Channel[0].Mode = VC_DEVICE_ENABLED; - - /* Set socket creation to fail */ - VC_Platform_Stubs_Returns.VC_Wrap_Socket_Return = -1; - VC_Platform_Stubs_Returns.VC_Wrap_Socket_Errno = 1; - VC_Platform_Stubs_Returns.VC_Wrap_Socket_Errno_Value = 13; - - result = VC_Init_CustomDevices(); - - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); - UtAssert_EventSent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, returnString, - "VC_InitCustomDevices() failed to raise an event"); - UtAssert_True(VC_AppCustomDevice.Channel[0].Status == VC_DEVICE_UNINITIALIZED, - "VC_InitCustomDevices() status NOT uninitialized"); - UtAssert_True(result == expected,"VC_InitDevice() did not return failure"); -} - -/** - * Test VC_InitCustomDevices() fail bind - */ -void Test_VC_Custom_InitCustomDevices_FailBind(void) -{ - int32 result = 0; - int32 expected = -1; - uint8 DeviceID = 0; - char returnString[64]; - snprintf(returnString, 64, "Bind errno: %i on channel %u", 13, 0); - - /* Set the first device to enabled */ - VC_AppCustomDevice.Channel[0].Mode = VC_DEVICE_ENABLED; - - /* Set socket creation to pass */ - VC_Platform_Stubs_Returns.VC_Wrap_Socket_Return = 1; - - /* Set bind to fail */ - VC_Platform_Stubs_Returns.VC_Wrap_Bind_Return = -1; - VC_Platform_Stubs_Returns.VC_Wrap_Bind_Errno = 1; - VC_Platform_Stubs_Returns.VC_Wrap_Bind_Errno_Value = 13; - - result = VC_Init_CustomDevices(); - - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); - UtAssert_EventSent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, returnString, - "VC_InitCustomDevices() failed to raise an event"); - UtAssert_True(VC_AppCustomDevice.Channel[0].Status == VC_DEVICE_UNINITIALIZED, - "VC_InitCustomDevices() status NOT uninitialized"); - UtAssert_True(result == expected,"VC_InitDevice() did not return failure"); -} - -/** - * Test VC_InitCustomDevices() nominal - */ -void Test_VC_Custom_InitCustomDevices_Nominal(void) -{ - int32 result = -1; - int32 expected = 0; - uint8 DeviceID = 0; - char returnString[64]; - snprintf(returnString, 64, "VC Device initialized channel %u", 0); - - /* Set the first device to enabled */ - VC_AppCustomDevice.Channel[0].Mode = VC_DEVICE_ENABLED; - - /* Set socket creation to pass */ - VC_Platform_Stubs_Returns.VC_Wrap_Socket_Return = 1; - - /* Set bind to pass */ - VC_Platform_Stubs_Returns.VC_Wrap_Bind_Return = 1; - - result = VC_Init_CustomDevices(); - - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); - UtAssert_EventSent(VC_DEV_INF_EID, CFE_EVS_INFORMATION, returnString, - "VC_InitCustomDevices() failed to raise an event"); - UtAssert_True(VC_AppCustomDevice.Channel[0].Status == VC_DEVICE_INITIALIZED, - "VC_InitCustomDevices() status NOT initialized"); - UtAssert_True(result == expected,"VC_InitDevice() did not return failure"); -} - -/************************************************************************** - * Tests for VC_Stream_Task() - **************************************************************************/ - -/** - * Test VC_Stream_Task() fail register child task - */ -void Test_VC_Custom_StreamTask_RegisterChildTaskFail(void) -{ - /* Set register child task to fail */ - Ut_CFE_ES_SetReturnCode(UT_CFE_ES_REGISTERCHILDTASK_INDEX, -1, 1); - - /* Call the function under test */ - VC_Stream_Task(); - - /* Verfity results */ - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); - UtAssert_True(VC_AppData.AppState == VC_INITIALIZED, - "VC_Stream_Task() did not set app state"); - UtAssert_EventSent(VC_DEV_INF_EID, CFE_EVS_INFORMATION, - "VC streaming task exited with return code 0 task status (0xFFFFFFFF)", - "VC_Stream_Task() failed to raise an event"); -} - - -/** - * Test VC_Stream_Task() fail nothing enabled and streaming - */ -void Test_VC_Custom_StreamTask_NothingEnabled(void) -{ - - char returnString[64]; - snprintf(returnString, 64, "VC can't start streaming no devices are streaming enabled"); - char returnString1[128]; - snprintf(returnString1, 128, "VC streaming task exited with return code %d task status (0x%08X)", - -1, (unsigned int)CFE_SUCCESS); - - /* Set register child task to succeed */ - Ut_CFE_ES_SetReturnCode(UT_CFE_ES_REGISTERCHILDTASK_INDEX, CFE_SUCCESS, 1); - - /* Set the while loop continue flag to true */ - VC_AppCustomDevice.ContinueFlag = TRUE; - - /* Set a fake device file descriptor */ - VC_AppCustomDevice.Channel[0].Socket = 7; - - /* Set select to fail with an error (-1) */ - VC_Platform_Stubs_Returns.VC_Wrap_Select_Return = -1; - - /* Call the function under test */ - VC_Stream_Task(); - - /* Verfity results */ - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==2,"Event Count = 2"); - UtAssert_True(VC_AppData.AppState == VC_INITIALIZED, - "VC_Stream_Task() did not set app state"); - UtAssert_EventSent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, returnString, - "VC_Stream_Task() failed to raise an event"); - UtAssert_EventSent(VC_DEV_INF_EID, CFE_EVS_INFORMATION, returnString1, - "VC_Stream_Task() failed to raise an event"); -} - - -/** - * Test VC_Stream_Task() fail select error - */ -void Test_VC_Custom_StreamTask_SelectError(void) -{ - - char returnString[64]; - snprintf(returnString, 64, "VC start streaming failed select() returned %i", 6); - char returnString1[128]; - snprintf(returnString1, 128, "VC streaming task exited with return code %d task status (0x%08X)", - -1, (unsigned int)CFE_SUCCESS); - - /* Set register child task to succeed */ - Ut_CFE_ES_SetReturnCode(UT_CFE_ES_REGISTERCHILDTASK_INDEX, CFE_SUCCESS, 1); - - /* Set the while loop continue flag to true */ - VC_AppCustomDevice.ContinueFlag = TRUE; - - /* Set the mode and state for channel 0*/ - VC_AppCustomDevice.Channel[0].Mode = VC_DEVICE_ENABLED; - VC_AppCustomDevice.Channel[0].Status = VC_DEVICE_INITIALIZED; - - /* Set return error number to true */ - VC_Platform_Stubs_Returns.VC_Wrap_Select_Errno = 1; - - /* Set error number to interrupted */ - /* Note this will set errno through multiple calls */ - VC_Platform_Stubs_Returns.VC_Wrap_Select_Errno_Value = 6; - - /* Set a fake device file descriptor */ - VC_AppCustomDevice.Channel[0].Socket = 7; - - /* Set select to fail with an error (-1) */ - VC_Platform_Stubs_Returns.VC_Wrap_Select_Return = -1; - - /* Call the function under test */ - VC_Stream_Task(); - - /* Verfity results */ - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==2,"Event Count = 2"); - UtAssert_True(VC_AppData.AppState == VC_INITIALIZED, - "VC_Stream_Task() did not set app state"); - UtAssert_EventSent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, returnString, - "VC_Stream_Task() failed to raise an event"); - UtAssert_EventSent(VC_DEV_INF_EID, CFE_EVS_INFORMATION, returnString1, - "VC_Stream_Task() failed to raise an event"); -} - - -/** - * Test VC_Stream_Task() fail select interrupted max retry attempts - */ -void Test_VC_Custom_StreamTask_InterruptedError(void) -{ - char returnString[64]; - snprintf(returnString, 64, "VC select was interrupted"); - char returnString1[128]; - snprintf(returnString1, 128, "VC streaming task exited with return code %d task status (0x%08X)", - -1, (unsigned int)CFE_SUCCESS); - - /* Set register child task to succeed */ - Ut_CFE_ES_SetReturnCode(UT_CFE_ES_REGISTERCHILDTASK_INDEX, CFE_SUCCESS, 1); - - /* Set the while loop continue flag to true */ - VC_AppCustomDevice.ContinueFlag = TRUE; - - /* Set the mode and state for channel 0*/ - VC_AppCustomDevice.Channel[0].Mode = VC_DEVICE_ENABLED; - VC_AppCustomDevice.Channel[0].Status = VC_DEVICE_INITIALIZED; - - /* Set return error number to true */ - VC_Platform_Stubs_Returns.VC_Wrap_Select_Errno = 1; - - /* Set error number to interrupted */ - /* Note this will set errno through multiple calls */ - VC_Platform_Stubs_Returns.VC_Wrap_Select_Errno_Value = EINTR; - - /* Set a fake device file descriptor */ - VC_AppCustomDevice.Channel[0].Socket = 7; - - /* Set select to fail with an error (-1) */ - VC_Platform_Stubs_Returns.VC_Wrap_Select_Return = -1; - - /* Call the function under test */ - VC_Stream_Task(); - - /* Verfity results */ - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==(VC_MAX_RETRY_ATTEMPTS + 1), - "Event Count is not correct"); - UtAssert_True(VC_AppData.AppState == VC_INITIALIZED, - "VC_Stream_Task() did not set app state"); - UtAssert_EventSent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, returnString, - "VC_Stream_Task() failed to raise an event"); - UtAssert_EventSent(VC_DEV_INF_EID, CFE_EVS_INFORMATION, returnString1, - "VC_Stream_Task() failed to raise an event"); -} - - -/************************************************************************** - * Tests for VC_Devices_Start() - **************************************************************************/ - /** - * Test VC_Devices_Start() fail child task creation - */ -void Test_VC_Custom_DevicesStart_ChildTaskCreationFail(void) -{ - /* Set create child task to fail */ - Ut_CFE_ES_SetReturnCode(UT_CFE_ES_CREATECHILDTASK_INDEX, -1, 1); - - boolean result = TRUE; - boolean expected = FALSE; - - /* Call the function under test */ - result = VC_Devices_Start(); - - UtAssert_True(VC_AppCustomDevice.ContinueFlag == FALSE, - "Devices start continue flag not correctly set"); - UtAssert_True(result == expected,"VC_Devices_Start() did not fail"); -} - - -/** - * Test VC_Devices_Start() nominal - */ -void Test_VC_Custom_DevicesStart_Nominal(void) -{ - /* Set create child task to fail */ - Ut_CFE_ES_SetReturnCode(UT_CFE_ES_CREATECHILDTASK_INDEX, CFE_SUCCESS, 1); - - boolean result = FALSE; - boolean expected = TRUE; - - /* Call the function under test */ - result = VC_Devices_Start(); - - UtAssert_True(VC_AppCustomDevice.ContinueFlag == TRUE, - "Devices start continue flag not correctly set"); - UtAssert_True(result == expected,"VC_Devices_Start() did not fail"); -} - - -/************************************************************************** - * Tests for VC_Devices_Stop() - **************************************************************************/ - /** - * Test VC_Devices_Stop() fail delete child task - */ -void Test_VC_Custom_DevicesStop_ChildTaskDeleteFail(void) -{ - /* Set delete child task to fail */ - Ut_CFE_ES_SetReturnCode(UT_CFE_ES_DELETECHILDTASK_INDEX, -1, 1); - - boolean result = TRUE; - boolean expected = FALSE; - - /* Call the function under test */ - result = VC_Devices_Stop(); - - UtAssert_True(VC_AppCustomDevice.ContinueFlag == FALSE, - "Devices start continue flag not correctly set"); - UtAssert_True(VC_AppData.AppState == VC_INITIALIZED, - "AppState not correctly set"); - UtAssert_True(result == expected,"VC_Devices_Stop() did not fail"); -} - - - /** - * Test VC_Devices_Stop() nominal - */ -void Test_VC_Custom_DevicesStop_Nominal(void) -{ - /* Set delete child task to fail */ - Ut_CFE_ES_SetReturnCode(UT_CFE_ES_DELETECHILDTASK_INDEX, CFE_SUCCESS, 1); - - boolean result = FALSE; - boolean expected = TRUE; - - /* Call the function under test */ - result = VC_Devices_Stop(); - - UtAssert_True(VC_AppCustomDevice.ContinueFlag == FALSE, - "Devices start continue flag not correctly set"); - UtAssert_True(VC_AppData.AppState == VC_INITIALIZED, - "AppState not correctly set"); - UtAssert_True(result == expected,"VC_Devices_Stop() did not fail"); -} - - -/************************************************************************** - * Tests for VC_CleanupDevices() - **************************************************************************/ - /** - * Test VC_CleanupDevices() close fail - * - */ -void Test_VC_Custom_CleanupDevices_CloseFail(void) -{ - int32 result = 0; - int32 expected = -1; - - /* Set channel 0 to enabled */ - VC_AppCustomDevice.Channel[0].Mode = VC_DEVICE_ENABLED; - - /* Set close to fail */ - VC_Platform_Stubs_Returns.VC_Wrap_Close_Return = -1; - - /* Call the function under test */ - result = VC_CleanupDevices(); - - UtAssert_True(result == expected,"VC_DisableDevice() did not succeed"); - UtAssert_True(VC_AppCustomDevice.Channel[0].Mode == VC_DEVICE_ENABLED, - "VC_CleanupDevices() did not set correct status"); -} - -/** - * Test VC_CleanupDevices() nominal - * - */ -void Test_VC_Custom_CleanupDevices_Nominal(void) -{ - int32 result = -1; - int32 expected = 0; - - /* Set channel 0 to enabled */ - VC_AppCustomDevice.Channel[0].Mode = VC_DEVICE_ENABLED; - - - /* Call the function under test */ - result = VC_CleanupDevices(); - - UtAssert_True(result == expected,"VC_DisableDevice() did not succeed"); - UtAssert_True(VC_AppCustomDevice.Channel[0].Mode == VC_DEVICE_DISABLED, - "VC_CleanupDevices() did not set correct status"); -} - -/************************************************************************** - * Tests for VC_Devices_Init() - **************************************************************************/ - /** - * Test VC_Devices_Init fail VC_Init_CustomDevices see previous test - * VC_InitCustomDevices() fail socket creation - */ -void Test_VC_Custom_DevicesInit_Fail(void) -{ - boolean result = TRUE; - boolean expected = FALSE; - - /* Set the first device to enabled */ - VC_AppCustomDevice.Channel[0].Mode = VC_DEVICE_ENABLED; - - /* Set socket creation to fail */ - VC_Platform_Stubs_Returns.VC_Wrap_Socket_Return = -1; - VC_Platform_Stubs_Returns.VC_Wrap_Socket_Errno = 1; - VC_Platform_Stubs_Returns.VC_Wrap_Socket_Errno_Value = 13; - - result = VC_Devices_Init(); - - UtAssert_True(result == expected,"VC_Devices_Init() did not return an error"); -} - - - /** - * Test VC_Devices_Init nominal see previous test - * VC_InitCustomDevices() nominal - */ -void Test_VC_Custom_DevicesInit_Nominal(void) -{ - boolean result = FALSE; - boolean expected = TRUE; - - /* Set the first device to enabled */ - VC_AppCustomDevice.Channel[0].Mode = VC_DEVICE_ENABLED; - - result = VC_Devices_Init(); - - UtAssert_True(result == expected,"VC_Devices_Init() did not return an error"); -} - - -/************************************************************************** - * Tests for VC_Devices_Uninit() - **************************************************************************/ -/** - * Test VC_Devices_Uninit() cleanup fail see previous test - * VC_CleanupDevices() close fail - */ -void Test_VC_Custom_DevicesUninit_CleanupFail(void) -{ - boolean result = TRUE; - boolean expected = FALSE; - - /* Set channel 0 to enabled */ - VC_AppCustomDevice.Channel[0].Mode = VC_DEVICE_ENABLED; - - /* Set close to fail */ - VC_Platform_Stubs_Returns.VC_Wrap_Close_Return = -1; - - /* Call the function under test */ - result = VC_Devices_Uninit(); - - UtAssert_True(result == expected,"VC_DisableDevice() did not succeed"); - UtAssert_True(VC_AppCustomDevice.Channel[0].Mode = VC_DEVICE_DISABLED, - "VC_CleanupDevices() did not set correct status"); -} - - -/** - * Test VC_Devices_Uninit() nominal - * - */ -void Test_VC_Custom_DevicesUninit_Nominal(void) -{ - boolean result = FALSE; - boolean expected = TRUE; - - /* Call the function under test */ - result = VC_Devices_Uninit(); - - UtAssert_True(result == expected,"VC_DisableDevice() did not succeed"); - UtAssert_True(VC_AppCustomDevice.Channel[0].Mode = VC_DEVICE_DISABLED, - "VC_CleanupDevices() did not set correct status"); -} - -/************************************************************************** - * Tests for VC_Send_Buffer() - **************************************************************************/ -/** - * Test VC_Send_Buffer() recv error - * - */ -void Test_VC_Custom_SendBuffer_RecvError(void) -{ - int32 result = 0; - int32 expected = -1; - - char returnString[64]; - snprintf(returnString, 64, "VC recv errno: %i on channel %u", 1, 0); - - /* Set recv to fail */ - VC_Platform_Stubs_Returns.VC_Wrap_Recv_Return = -1; - VC_Platform_Stubs_Returns.VC_Wrap_Recv_Errno = 1; - VC_Platform_Stubs_Returns.VC_Wrap_Recv_Errno_Value = 1; - - /* Call the function under test */ - result = VC_Send_Buffer(0); - - UtAssert_True(result == expected,"VC_Send_Buffer() did not return the correct value"); - UtAssert_EventSent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, returnString, - "VC_Send_Buffer() failed to raise an event"); -} - - -/** - * Test VC_Send_Buffer() size error - * - */ -void Test_VC_Custom_SendBuffer_SizeError(void) -{ - int32 result = 0; - int32 expected = -1; - - char returnString[64]; - snprintf(returnString, 64, "VC recv size error on channel %u", 0); - - /* Set recv to fail */ - VC_Platform_Stubs_Returns.VC_Wrap_Recv_Return = VC_MPARTMUX_HEADER_SIZE; - VC_Platform_Stubs_Returns.VC_Wrap_Recv_Return1 = -1; - - /* Call the function under test */ - result = VC_Send_Buffer(0); - - UtAssert_True(result == expected,"VC_Send_Buffer() did not return the correct value"); - UtAssert_EventSent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, returnString, - "VC_Send_Buffer() failed to raise an event"); -} - - -/** - * Test VC_Send_Buffer() send data fail - * - */ -void Test_VC_Custom_SendBuffer_SendError(void) -{ - int32 result = 0; - int32 expected = -1; - - char returnString[64]; - snprintf(returnString, 64, "VC send data failed on channel %u", 0); - - /* Set recv to pass/fail */ - VC_Platform_Stubs_Returns.VC_Wrap_Recv_Return = VC_MPARTMUX_HEADER_SIZE; - VC_Platform_Stubs_Returns.VC_Wrap_Recv_Return1 = 0; - - /* set sendto to fail */ - VC_Platform_Stubs_Returns.VC_Wrap_SendTo_Return = -1; - - /* Properly initialize custom transmit data */ - VC_CustomTransmit_InitData(); - - /* Call the function under test */ - result = VC_Send_Buffer(0); - - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==2,"Event Count = 2"); - UtAssert_True(result == expected,"VC_Send_Buffer() did not return the correct value"); - UtAssert_EventSent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, returnString, - "VC_Send_Buffer() failed to raise an event"); -} - - -/** - * Test VC_Send_Buffer() nominal - * - */ -void Test_VC_Custom_SendBuffer_Nominal(void) -{ - int32 result = -1; - int32 expected = 0; - - char returnString[64]; - snprintf(returnString, 64, "VC send data failed on channel %u", 0); - - /* Set recv to pass/fail */ - VC_Platform_Stubs_Returns.VC_Wrap_Recv_Return = VC_MPARTMUX_HEADER_SIZE; - VC_Platform_Stubs_Returns.VC_Wrap_Recv_Return1 = 0; - - /* Properly initialize custom transmit data */ - VC_CustomTransmit_InitData(); - - /* Call the function under test */ - result = VC_Send_Buffer(0); - - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==0,"Event Count = 0"); - UtAssert_True(result == expected,"VC_Send_Buffer() did not return the correct value"); -} - - -/************************************************************************** - * Tests for VC_Devices_InitData() - **************************************************************************/ - -/** - * Test VC_Devices_InitData() nominal - * Note: currently no way to fail this function - */ -void Test_VC_Devices_InitData_Nominal(void) -{ - int32 result = -1; - int32 expected = CFE_SUCCESS; - - /* Call the function under test */ - result = VC_Devices_InitData(); - - /* Verify the results */ - UtAssert_True(result == expected,"VC_Custom_InitData() did not succeed"); -} - -/************************************************************************** - * Rollup Test Cases - **************************************************************************/ -void VC_Custom_App_Device_Test_AddTestCases(void) -{ -/************************************************************************** - * Tests for Custom Device Layer - **************************************************************************/ - UtTest_Add(Test_VC_Custom_InitCustomDevices_FailSocket, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_InitCustomDevices_FailSocket"); - UtTest_Add(Test_VC_Custom_InitCustomDevices_FailBind, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_InitCustomDevices_FailBind"); - UtTest_Add(Test_VC_Custom_InitCustomDevices_Nominal, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_InitCustomDevices_Nominal"); - UtTest_Add(Test_VC_Custom_StreamTask_RegisterChildTaskFail, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_StreamTask_RegisterChildTaskFail"); - UtTest_Add(Test_VC_Custom_StreamTask_NothingEnabled, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_StreamTask_NothingEnabled"); - UtTest_Add(Test_VC_Custom_StreamTask_SelectError, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_StreamTask_SelectError"); - UtTest_Add(Test_VC_Custom_StreamTask_InterruptedError, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_StreamTask_InterruptedError"); - UtTest_Add(Test_VC_Custom_DevicesStart_ChildTaskCreationFail, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_DevicesStart_ChildTaskCreationFail"); - UtTest_Add(Test_VC_Custom_DevicesStart_Nominal, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_DevicesStart_Nominal"); - UtTest_Add(Test_VC_Custom_DevicesStop_ChildTaskDeleteFail, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_DevicesStop_ChildTaskDeleteFail"); - UtTest_Add(Test_VC_Custom_DevicesStop_Nominal, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_DevicesStop_Nominal"); - UtTest_Add(Test_VC_Custom_CleanupDevices_CloseFail, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_CleanupDevices_CloseFail"); - UtTest_Add(Test_VC_Custom_CleanupDevices_Nominal, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_CleanupDevices_Nominal"); - UtTest_Add(Test_VC_Custom_DevicesInit_Fail, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_DevicesInit_Fail"); - UtTest_Add(Test_VC_Custom_DevicesInit_Nominal, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_DevicesInit_Nominal"); - UtTest_Add(Test_VC_Custom_DevicesUninit_CleanupFail, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_DevicesUninit_CleanupFail"); - UtTest_Add(Test_VC_Custom_DevicesUninit_Nominal, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_DevicesUninit_Nominal"); - UtTest_Add(Test_VC_Custom_SendBuffer_RecvError, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_SendBuffer_RecvError"); - UtTest_Add(Test_VC_Custom_SendBuffer_SizeError, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_SendBuffer_SizeError"); - UtTest_Add(Test_VC_Custom_SendBuffer_SendError, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_SendBuffer_SendError"); - UtTest_Add(Test_VC_Custom_SendBuffer_Nominal, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_SendBuffer_Nominal"); - UtTest_Add(Test_VC_Devices_InitData_Nominal, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Devices_InitData_Nominal"); -} diff --git a/config/obc/cpd/target/apps/vc/unit_test/vc_dev_io_udp_test/vc_app_custom_device_test.h b/config/obc/cpd/target/apps/vc/unit_test/vc_dev_io_udp_test/vc_app_custom_device_test.h deleted file mode 100644 index 38b7e33d3..000000000 --- a/config/obc/cpd/target/apps/vc/unit_test/vc_dev_io_udp_test/vc_app_custom_device_test.h +++ /dev/null @@ -1,48 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ - -#ifndef VC_APP_CUSTOM_DEVICE_TEST_H -#define VC_APP_CUSTOM_DEVICE_TEST_H - -#ifdef __cplusplus -extern "C" { -#endif - -void VC_Custom_App_Device_Test_AddTestCases(void); - - -#ifdef __cplusplus -} -#endif - -#endif /* VC_APP_CUSTOM_DEVICE_TEST_H */ diff --git a/config/obc/cpd/target/apps/vc/unit_test/vc_dev_io_udp_test/vc_custom_device_test_utils.c b/config/obc/cpd/target/apps/vc/unit_test/vc_dev_io_udp_test/vc_custom_device_test_utils.c deleted file mode 100644 index f34216d08..000000000 --- a/config/obc/cpd/target/apps/vc/unit_test/vc_dev_io_udp_test/vc_custom_device_test_utils.c +++ /dev/null @@ -1,76 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ - -#include "vc_custom_device_test_utils.h" -#include "vc_platform_stubs.h" - -#include "ut_cfe_evs_hooks.h" -#include "ut_cfe_time_stubs.h" -#include "ut_cfe_psp_memutils_stubs.h" -#include "ut_cfe_tbl_stubs.h" -#include "ut_cfe_tbl_hooks.h" -#include "ut_cfe_fs_stubs.h" -#include "ut_cfe_time_stubs.h" -#include "ut_osapi_stubs.h" -#include "ut_osfileapi_stubs.h" -#include "ut_cfe_sb_stubs.h" -#include "ut_cfe_es_stubs.h" -#include "ut_cfe_evs_stubs.h" - -#include - -/* - * Function Definitions - */ - -void VC_Custom_Device_Test_Setup(void) -{ - /* initialize test environment to default state for every test */ - - CFE_PSP_MemSet(&VC_AppCustomDevice, 0x00, sizeof(VC_AppCustomDevice_t)); - - Ut_CFE_EVS_Reset(); - Ut_CFE_FS_Reset(); - Ut_CFE_TIME_Reset(); - Ut_CFE_TBL_Reset(); - Ut_CFE_SB_Reset(); - Ut_CFE_ES_Reset(); - Ut_OSAPI_Reset(); - Ut_OSFILEAPI_Reset(); -} - -void VC_Custom_Device_Test_TearDown(void) { - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_CallCount = 0; - CFE_PSP_MemSet(&VC_AppCustomDevice, 0x00, sizeof(VC_AppCustomDevice_t)); - CFE_PSP_MemSet(&VC_Platform_Stubs_Returns, 0x00, sizeof(VC_Platform_Stubs_Returns_t)); -} diff --git a/config/obc/cpd/target/apps/vc/unit_test/vc_dev_io_udp_test/vc_custom_device_test_utils.h b/config/obc/cpd/target/apps/vc/unit_test/vc_dev_io_udp_test/vc_custom_device_test_utils.h deleted file mode 100644 index c170b7b8b..000000000 --- a/config/obc/cpd/target/apps/vc/unit_test/vc_dev_io_udp_test/vc_custom_device_test_utils.h +++ /dev/null @@ -1,61 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ - -#ifndef VC_CUSTOM_DEVICE_TEST_UTILS_H -#define VC_CUSTOM_DEVICE_TEST_UTILS_H - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * Includes - */ - -#include "vc_dev_io_udp.h" - -extern VC_AppCustomDevice_t VC_AppCustomDevice; - -/* - * Function Definitions - */ - -void VC_Custom_Device_Test_Setup(void); -void VC_Custom_Device_Test_TearDown(void); - - -#ifdef __cplusplus -} -#endif - -#endif /* VC_CUSTOM_DEVICE_TEST_UTILS_H */ diff --git a/config/obc/cpd/target/apps/vc/unit_test/vc_dev_io_v4l_test/vc_app_custom_device_test.c b/config/obc/cpd/target/apps/vc/unit_test/vc_dev_io_v4l_test/vc_app_custom_device_test.c deleted file mode 100644 index 9badeb810..000000000 --- a/config/obc/cpd/target/apps/vc/unit_test/vc_dev_io_v4l_test/vc_app_custom_device_test.c +++ /dev/null @@ -1,1944 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ - -#include "vc_app_custom_device_test.h" -#include "vc_custom_device_test_utils.h" -#include "vc_transmit_udp.h" -#include "vc_platform_stubs.h" -#include "vc_platform_cfg.h" -#include -#include -#include - -#include "uttest.h" -#include "ut_osapi_stubs.h" -#include "ut_cfe_sb_stubs.h" -#include "ut_cfe_sb_hooks.h" -#include "ut_cfe_es_stubs.h" -#include "ut_cfe_es_hooks.h" -#include "ut_cfe_evs_stubs.h" -#include "ut_cfe_evs_hooks.h" -#include "ut_cfe_time_stubs.h" -#include "ut_cfe_psp_memutils_stubs.h" -#include "ut_cfe_tbl_stubs.h" -#include "ut_cfe_fs_stubs.h" -#include "ut_cfe_time_stubs.h" - - -/************************************************************************** - * Tests for VC_Ioctl() - **************************************************************************/ -/** - * Test VC_Ioctl() ioctl returns -1 error - */ -void Test_VC_Custom_Ioctl_Error(void) -{ - int32 result = 0; - int32 expected = -1; - - /* Set a return value for the wrapped ioctl */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Return = -1; - - /* A test argument to pass to VC_Ioctl value is random - * the wrapped ioctl will not use the arguments and will return a - * value */ - int test = 1; - - - result = VC_Ioctl(test, test, &test); - - UtAssert_True(result == expected, "VC_Ioctl did not return an error"); -} -/** - * Test VC_Ioctl() ioctl returns -1 error and errno interrupted - */ -void Test_VC_Custom_Ioctl_Interrupted(void) -{ - int32 result = 0; - int32 expected = -1; - uint32 i = 0; - - /* Set a return value for the wrapped ioctl (always fail) */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Return = -1; - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Return1 = -1; - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Return2 = -1; - - /* Set return error number to true */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Errno = 1; - - /* Set error number to interrupted */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Errno_Value = EINTR; - - /* A test argument to pass to VC_Ioctl value is random - * the wrapped ioctl will not use the arguments and will return a - * value */ - int test = 777; - - /* Call VC_Ioctl with errno set to EINTR max retry attempts*/ - result = VC_Ioctl(test, test, &test); - - UtAssert_True(result == expected, "VC_Ioctl did not return an error"); -} - -/************************************************************************** - * Tests for VC_InitDevice() - **************************************************************************/ - -/** - * Test VC_InitDevice() through VC_Init_CustomDevices already initialized error - */ -void Test_VC_Custom_InitDevice_AlreadyInitialized(void) -{ - int32 result = 0; - int32 expected = -1; - uint8 DeviceID = 0; - - strcpy(VC_AppCustomDevice.Channel[0].DevName, "test"); - - /* Set the first device to enabled */ - VC_AppCustomDevice.Channel[0].Mode = VC_DEVICE_ENABLED; - /* Set the first device file descriptor to a non-zero value */ - VC_AppCustomDevice.Channel[0].DeviceFd = 1; - - result = VC_Init_CustomDevices(); - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); - UtAssert_True(result == expected,"VC_InitDevice() did not return an error"); - - UtAssert_True(VC_AppCustomDevice.Channel[0].Mode == VC_DEVICE_DISABLED, - "VC_InitCustomDevices() did not mode to disabled"); - UtAssert_EventSent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, "VC Device test for channel 0 already initialized.", - "VC_InitDevice() failed to raise an event"); -} - - -/** - * Test VC_InitDevice() null device name - */ -void Test_VC_Custom_InitDevice_NullName(void) -{ - int32 result = 0; - int32 expected = -1; - uint8 DeviceID = 0; - char *DeviceName = 0; - - /* Set the first device to enabled */ - VC_AppCustomDevice.Channel[0].Mode = VC_DEVICE_ENABLED; - - - result = VC_InitDevice(DeviceID, DeviceName); - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); - UtAssert_True(result == expected,"VC_InitDevice() did not return an error"); - UtAssert_EventSent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, "VC Device name for channel 0 is null.", - "VC_InitDevice() failed to raise an event"); -} - - -/** - * Test VC_InitDevice() invalid device ID - */ -void Test_VC_Custom_InitDevice_InvalidID(void) -{ - int32 result = 0; - int32 expected = -1; - uint8 DeviceID = VC_MAX_DEVICES; - char returnString[32]; - snprintf(returnString, 32, "VC DeviceID (%u) invalid.", VC_MAX_DEVICES); - char DeviceName[] = "test"; - - /* Set the first device to enabled */ - VC_AppCustomDevice.Channel[0].Mode = VC_DEVICE_ENABLED; - - result = VC_InitDevice(DeviceID, DeviceName); - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); - UtAssert_True(result == expected,"VC_InitDevice() did not return an error"); - UtAssert_EventSent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, returnString, - "VC_InitDevice() failed to raise an event"); -} - - -/** - * Test VC_InitDevice() through VC_InitCustomDevices() open error - */ -void Test_VC_Custom_InitDevice_OpenError(void) -{ - int32 result = 0; - int32 expected = -1; - uint8 DeviceID = 0; - char returnString[32]; - snprintf(returnString, 32, "VC Device open errno: %i on channel %u", 5, 0); - //char DeviceName[] = "test"; - - /* Set a return value for the wrapped open */ - VC_Platform_Stubs_Returns.VC_Wrap_Open_Return = -1; - - /* Set return error number to true */ - VC_Platform_Stubs_Returns.VC_Wrap_Open_Errno = 1; - - /* Set error number to interrupted */ - VC_Platform_Stubs_Returns.VC_Wrap_Open_Errno_Value = 5; - - /* Set the first device to enabled */ - VC_AppCustomDevice.Channel[0].Mode = VC_DEVICE_ENABLED; - - //result = VC_InitDevice(DeviceID, DeviceName); - result = VC_Init_CustomDevices(); - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); - UtAssert_True(VC_AppCustomDevice.Channel[0].Mode == VC_DEVICE_DISABLED, - "VC_InitCustomDevices() did not mode to disabled"); - UtAssert_True(result == expected,"VC_InitDevice() did not return an error"); - UtAssert_EventSent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, returnString, - "VC_InitDevice() failed to raise an event"); -} - -/** - * Test VC_InitDevice() nominal - */ -void Test_VC_Custom_InitDevice_Nominal(void) -{ - int32 result = 0; - int32 expected = 0; - uint8 DeviceID = 0; - char DeviceName[] = "test"; - - - /* Set the first device to enabled */ - VC_AppCustomDevice.Channel[0].Mode = VC_DEVICE_ENABLED; - - result = VC_InitDevice(DeviceID, DeviceName); - - UtAssert_True(result == expected,"VC_InitDevice() did not return success"); -} - - -/************************************************************************** - * Tests for VC_InitCustomDevices() - **************************************************************************/ - -/** - * Test VC_InitCustomDevices() pass init but fail configure - * ConfigureDevice will fail on the first v4L struct verification - */ -void Test_VC_Custom_InitCustomDevices_FailConfigure(void) -{ - int32 result = 0; - int32 expected = -1; - uint8 DeviceID = 0; - char returnString[64]; - snprintf(returnString, 64, "VC Device initialized channel %u from %s", 0, "test"); - - /* Set the first device to enabled */ - VC_AppCustomDevice.Channel[0].Mode = VC_DEVICE_ENABLED; - - /* Set a test device path */ - strcpy(VC_AppCustomDevice.Channel[0].DevName, "test"); - - result = VC_Init_CustomDevices(); - - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==2,"Event Count = 2"); - UtAssert_EventSent(VC_DEV_INF_EID, CFE_EVS_INFORMATION, returnString, - "VC_InitCustomDevices() failed to raise an event"); - UtAssert_True(VC_AppCustomDevice.Channel[0].Status == VC_DEVICE_UNINITIALIZED, - "VC_InitCustomDevices() did not set status to uninitialized"); - UtAssert_True(result == expected,"VC_InitDevice() did not return failure"); -} - -/** - * Test VC_InitCustomDevices() Nominal - */ -void Test_VC_Custom_InitCustomDevices_Nominal(void) -{ - int32 result = 0; - int32 expected = 0; - uint8 DeviceID = 0; - char returnString[64]; - snprintf(returnString, 64, "VC Device initialized channel %u from %s", 0, "test"); - char returnString1[64]; - snprintf(returnString1, 64, "VC Device configured channel %u from %s", 0, "test"); - /* Set the first device to enabled */ - VC_AppCustomDevice.Channel[0].Mode = VC_DEVICE_ENABLED; - - /* Set to true to emulate ioctl setting struct values */ - /* Need to succeed twice to reach format ioctl call */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Struct = 2; - - /* Set the test device path */ - strcpy(VC_AppCustomDevice.Channel[0].DevName, "test"); - - /* Set the video format to pass format check */ - VC_AppCustomDevice.Channel[0].VideoFormat = VC_V4L_VIDEO_FORMAT; - - /* Set the correct buffer type */ - VC_AppCustomDevice.Channel[0].BufferType = VC_V4L_BUFFER_TYPE; - - /* Set the correct resolution */ - VC_AppCustomDevice.Channel[0].FrameWidth = VC_FRAME_WIDTH; - VC_AppCustomDevice.Channel[0].FrameHeight = VC_FRAME_HEIGHT; - - /* Set the correct size */ - VC_AppCustomDevice.Channel[0].Buffer_Size = VC_MAX_BUFFER_SIZE; - - /* Set the correct buffer number */ - VC_AppCustomDevice.Channel[0].BufferRequest = VC_V4L_BUFFER_REQUEST; - - result = VC_Init_CustomDevices(); - - UtAssert_True(result == expected,"VC_Init_CustomDevices() did not succeed"); - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==2,"Event Count = 2"); - UtAssert_True(VC_AppCustomDevice.Channel[0].Status == VC_DEVICE_INITIALIZED, - "VC_Init_CustomDevices() state not initialized"); - UtAssert_EventSent(VC_DEV_INF_EID, CFE_EVS_INFORMATION, returnString, - "VC_InitCustomDevices() failed to raise an event"); - UtAssert_EventSent(VC_DEV_INF_EID, CFE_EVS_INFORMATION, returnString1, - "VC_InitCustomDevices() failed to raise an event"); -} - -/************************************************************************** - * Tests for VC_ConfigureDevice() - **************************************************************************/ - -/** - * Test VC_ConfigureDevice() fail V4L capabilities query - */ -void Test_VC_Custom_ConfigureDevice_CapabilitiesFail(void) -{ - int32 result = 0; - int32 expected = -1; - uint8 DeviceID = 0; - char returnString[64]; - snprintf(returnString, 64, "VC VIDIOC_QUERYCAP returned %i on %s channel %u", 5, "test", 0); - - /* Set a return value for the wrapped ioctl */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Return = -1; - - /* Set return error number to true */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Errno = 1; - - /* Set error number to interrupted */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Errno_Value = 5; - - strcpy(VC_AppCustomDevice.Channel[0].DevName, "test"); - - result = VC_ConfigureDevice(DeviceID); - - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); - UtAssert_EventSent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, returnString, - "VC_ConfigureDevices() failed to raise an event"); - UtAssert_True(result == expected,"VC_ConfigureDevice() did not return failure"); - -} - - -/** - * Test VC_ConfigureDevice() fail V4L capabilities fail - * check buffer type - */ -void Test_VC_Custom_ConfigureDevice_CapabilitiesBuffer(void) -{ - int32 result = 0; - int32 expected = -1; - uint8 DeviceID = 0; - char returnString[64]; - snprintf(returnString, 64, "VC Capabilities %u on %s channel %u not found", - VC_V4L_BUFFER_TYPE,"test", 0); - - /* Set the test device path */ - strcpy(VC_AppCustomDevice.Channel[0].DevName, "test"); - - VC_AppCustomDevice.Channel[0].BufferType = VC_V4L_BUFFER_TYPE; - - /* Call the function under test */ - result = VC_ConfigureDevice(DeviceID); - - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); - UtAssert_EventSent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, returnString, - "VC_ConfigureDevices() failed to raise an event"); - UtAssert_True(result == expected,"VC_ConfigureDevice() did not return failure"); - -} - - -/** - * Test VC_ConfigureDevice() fail V4L capabilities check fail - * check streaming capability - */ -void Test_VC_Custom_ConfigureDevice_CapabilitiesStreaming(void) -{ - int32 result = 0; - int32 expected = -1; - uint8 DeviceID = 0; - char returnString[64]; - snprintf(returnString, 64, "VC Capabilities %u on %s channel %u not found", - V4L2_CAP_STREAMING,"test", 0); - - /* Set to true to emulate ioctl setting struct values */ - /* Need to succeed once for the first capabilities check */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Struct = 1; - - /* Set the test device path */ - strcpy(VC_AppCustomDevice.Channel[0].DevName, "test"); - - /* Set the correct buffer type */ - VC_AppCustomDevice.Channel[0].BufferType = VC_V4L_BUFFER_TYPE; - - /* Call the function under test */ - result = VC_ConfigureDevice(DeviceID); - - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); - UtAssert_EventSent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, returnString, - "VC_ConfigureDevices() failed to raise an event"); - UtAssert_True(result == expected,"VC_ConfigureDevice() did not return failure"); - -} - - -/** - * Test VC_ConfigureDevice() fail V4L set format fail - */ -void Test_VC_Custom_ConfigureDevice_FormatFail(void) -{ - int32 result = 0; - int32 expected = -1; - uint8 DeviceID = 0; - char returnString[64]; - snprintf(returnString, 64, "VIDIOC_S_FMT returned %i on %s channel %u", - 5,"test", 0); - - /* Set to true to emulate ioctl setting struct values */ - /* Need to succeed twice to reach format ioctl call */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Struct = 2; - - /* Set the test device path */ - strcpy(VC_AppCustomDevice.Channel[0].DevName, "test"); - - /* Set the correct buffer type */ - VC_AppCustomDevice.Channel[0].BufferType = VC_V4L_BUFFER_TYPE; - - /* Set return error number to true */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Errno = 1; - - /* Set error number to interrupted */ - /* Note this will set errno through multiple calls */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Errno_Value = 5; - - /* Set the second ioctl call to fail */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Return1 = -1; - - /* Call the function under test */ - result = VC_ConfigureDevice(DeviceID); - - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); - UtAssert_EventSent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, returnString, - "VC_ConfigureDevices() failed to raise an event"); - UtAssert_True(result == expected,"VC_ConfigureDevice() did not return failure"); - -} - -/** - * Test VC_ConfigureDevice() fail V4L set format verification check - */ -void Test_VC_Custom_ConfigureDevice_FormatCheck(void) -{ - int32 result = 0; - int32 expected = -1; - uint8 DeviceID = 0; - char returnString[64]; - snprintf(returnString, 64, "VC device %s channel %u didn't accept format %u.", - "test",0, 0); - - /* Set to true to emulate ioctl setting struct values */ - /* Need to succeed twice to reach format ioctl call */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Struct = 2; - - /* Set the test device path */ - strcpy(VC_AppCustomDevice.Channel[0].DevName, "test"); - - /* Set the correct buffer type */ - VC_AppCustomDevice.Channel[0].BufferType = VC_V4L_BUFFER_TYPE; - - /* Call the function under test */ - result = VC_ConfigureDevice(DeviceID); - - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); - UtAssert_EventSent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, returnString, - "VC_ConfigureDevices() failed to raise an event"); - UtAssert_True(result == expected,"VC_ConfigureDevice() did not return failure"); - -} - -/** - * Test VC_ConfigureDevice() fail V4L set format verification check - * resolution - */ -void Test_VC_Custom_ConfigureDevice_FormatCheckRes(void) -{ - int32 result = 0; - int32 expected = -1; - uint8 DeviceID = 0; - char returnString[64]; - snprintf(returnString, 64, "VC device %s channel %u didn't accept resolution instead %d:%d.", - "test",0, VC_FRAME_WIDTH, VC_FRAME_HEIGHT); - - /* Set to true to emulate ioctl setting struct values */ - /* Need to succeed twice to reach format ioctl call */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Struct = 2; - - /* Set the test device path */ - strcpy(VC_AppCustomDevice.Channel[0].DevName, "test"); - - /* Set the video format to pass format check */ - VC_AppCustomDevice.Channel[0].VideoFormat = VC_V4L_VIDEO_FORMAT; - - /* Set the correct buffer type */ - VC_AppCustomDevice.Channel[0].BufferType = VC_V4L_BUFFER_TYPE; - - /* Call the function under test */ - result = VC_ConfigureDevice(DeviceID); - - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); - UtAssert_EventSent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, returnString, - "VC_ConfigureDevices() failed to raise an event"); - UtAssert_True(result == expected,"VC_ConfigureDevice() did not return failure"); -} - -/** - * Test VC_ConfigureDevice() fail V4L set format verification check - * size - */ -void Test_VC_Custom_ConfigureDevice_FormatCheckSize(void) -{ - int32 result = 0; - int32 expected = -1; - uint8 DeviceID = 0; - char returnString[64]; - snprintf(returnString, 64, "VC device %s channel %u size image %u > buffer size %lu.", - "test",0, VC_MAX_BUFFER_SIZE, 0); - - /* Set to true to emulate ioctl setting struct values */ - /* Need to succeed twice to reach format ioctl call */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Struct = 2; - - /* Set the test device path */ - strcpy(VC_AppCustomDevice.Channel[0].DevName, "test"); - - /* Set the video format to pass format check */ - VC_AppCustomDevice.Channel[0].VideoFormat = VC_V4L_VIDEO_FORMAT; - - /* Set the correct buffer type */ - VC_AppCustomDevice.Channel[0].BufferType = VC_V4L_BUFFER_TYPE; - - /* Set the correct resolution */ - VC_AppCustomDevice.Channel[0].FrameWidth = VC_FRAME_WIDTH; - VC_AppCustomDevice.Channel[0].FrameHeight = VC_FRAME_HEIGHT; - - /* Call the function under test */ - result = VC_ConfigureDevice(DeviceID); - - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); - UtAssert_EventSent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, returnString, - "VC_ConfigureDevices() failed to raise an event"); - UtAssert_True(result == expected,"VC_ConfigureDevice() did not return failure"); -} - - -/** - * Test VC_ConfigureDevice() fail V4L requests buffers - */ -void Test_VC_Custom_ConfigureDevice_RequestsBuffers(void) -{ - int32 result = 0; - int32 expected = -1; - uint8 DeviceID = 0; - char returnString[64]; - snprintf(returnString, 64, "VC VIDIOC_REQBUFS returned %i on %s channel %u.", - 5,"test",0); - - /* Set to true to emulate ioctl setting struct values */ - /* Need to succeed twice to reach format ioctl call */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Struct = 2; - - /* Set the test device path */ - strcpy(VC_AppCustomDevice.Channel[0].DevName, "test"); - - /* Set the video format to pass format check */ - VC_AppCustomDevice.Channel[0].VideoFormat = VC_V4L_VIDEO_FORMAT; - - /* Set the correct buffer type */ - VC_AppCustomDevice.Channel[0].BufferType = VC_V4L_BUFFER_TYPE; - - /* Set the correct resolution */ - VC_AppCustomDevice.Channel[0].FrameWidth = VC_FRAME_WIDTH; - VC_AppCustomDevice.Channel[0].FrameHeight = VC_FRAME_HEIGHT; - - /* Set the correct size */ - VC_AppCustomDevice.Channel[0].Buffer_Size = VC_MAX_BUFFER_SIZE; - - /* Set return error number to true */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Errno = 1; - - /* Set error number to interrupted */ - /* Note this will set errno through multiple calls */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Errno_Value = 5; - - /* Set the third ioctl call to fail */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Return2 = -1; - - /* Call the function under test */ - result = VC_ConfigureDevice(DeviceID); - - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); - UtAssert_EventSent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, returnString, - "VC_ConfigureDevices() failed to raise an event"); - UtAssert_True(result == expected,"VC_ConfigureDevice() did not return failure"); -} - - -/** - * Test VC_ConfigureDevice() fail V4L requests buffers fail requested - * count verification - */ -void Test_VC_Custom_ConfigureDevice_RequestsBuffersCount(void) -{ - int32 result = 0; - int32 expected = -1; - uint8 DeviceID = 0; - char returnString[64]; - snprintf(returnString, 64, "VC VIDIOC_REQBUFS did not comply. %u buffers on %s channel %u.", - 4,"test",0); - - /* Set to true to emulate ioctl setting struct values */ - /* Need to succeed twice to reach format ioctl call */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Struct = 2; - - /* Set the test device path */ - strcpy(VC_AppCustomDevice.Channel[0].DevName, "test"); - - /* Set the video format to pass format check */ - VC_AppCustomDevice.Channel[0].VideoFormat = VC_V4L_VIDEO_FORMAT; - - /* Set the correct buffer type */ - VC_AppCustomDevice.Channel[0].BufferType = VC_V4L_BUFFER_TYPE; - - /* Set the correct resolution */ - VC_AppCustomDevice.Channel[0].FrameWidth = VC_FRAME_WIDTH; - VC_AppCustomDevice.Channel[0].FrameHeight = VC_FRAME_HEIGHT; - - /* Set the correct size */ - VC_AppCustomDevice.Channel[0].Buffer_Size = VC_MAX_BUFFER_SIZE; - - /* Call the function under test */ - result = VC_ConfigureDevice(DeviceID); - - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); - UtAssert_EventSent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, returnString, - "VC_ConfigureDevices() failed to raise an event"); - UtAssert_True(result == expected,"VC_ConfigureDevice() did not return failure"); -} - -/** - * Test VC_ConfigureDevice() nominal - */ -void Test_VC_Custom_ConfigureDevice_Nominal(void) -{ - int32 result = 0; - int32 expected = 0; - uint8 DeviceID = 0; - - /* Set to true to emulate ioctl setting struct values */ - /* Need to succeed twice to reach format ioctl call */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Struct = 2; - - /* Set the test device path */ - strcpy(VC_AppCustomDevice.Channel[0].DevName, "test"); - - /* Set the video format to pass format check */ - VC_AppCustomDevice.Channel[0].VideoFormat = VC_V4L_VIDEO_FORMAT; - - /* Set the correct buffer type */ - VC_AppCustomDevice.Channel[0].BufferType = VC_V4L_BUFFER_TYPE; - - /* Set the correct resolution */ - VC_AppCustomDevice.Channel[0].FrameWidth = VC_FRAME_WIDTH; - VC_AppCustomDevice.Channel[0].FrameHeight = VC_FRAME_HEIGHT; - - /* Set the correct size */ - VC_AppCustomDevice.Channel[0].Buffer_Size = VC_MAX_BUFFER_SIZE; - - /* Set the correct buffer number */ - VC_AppCustomDevice.Channel[0].BufferRequest = VC_V4L_BUFFER_REQUEST; - - /* Call the function under test */ - result = VC_ConfigureDevice(DeviceID); - - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==0,"Event Count = 0"); - UtAssert_True(result == expected,"VC_ConfigureDevice() did not return failure"); -} - -/************************************************************************** - * Tests for VC_Devices_Init() - **************************************************************************/ - -/** - * Test VC_Devices_Init fail VC_Init_CustomDevices and - * VC_InitDevice() already initialized error (see previous already - * initialized test) - */ -void Test_VC_Custom_DevicesInit_Fail(void) -{ - boolean result = TRUE; - boolean expected = FALSE; - uint8 DeviceID = 0; - - strcpy(VC_AppCustomDevice.Channel[0].DevName, "test"); - - /* Set the first device to enabled */ - VC_AppCustomDevice.Channel[0].Mode = VC_DEVICE_ENABLED; - /* Set the first device file descriptor to a non-zero value */ - VC_AppCustomDevice.Channel[0].DeviceFd = 1; - - result = VC_Devices_Init(); - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); - UtAssert_True(result == expected,"VC_InitDevice() did not return an error"); - - UtAssert_True(VC_AppCustomDevice.Channel[0].Mode == VC_DEVICE_DISABLED, - "VC_InitCustomDevices() did not mode to disabled"); - UtAssert_EventSent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, "VC Device test for channel 0 already initialized.", - "VC_InitDevice() failed to raise an event"); -} - -/** - * Test VC_Devices_Init Nominal (See previous test for - * VC_InitCustomDevices() Nominal) - */ -void Test_VC_Custom_DevicesInit_Nominal(void) -{ - boolean result = FALSE; - boolean expected = TRUE; - uint8 DeviceID = 0; - char returnString[64]; - snprintf(returnString, 64, "VC Device initialized channel %u from %s", 0, "test"); - char returnString1[64]; - snprintf(returnString1, 64, "VC Device configured channel %u from %s", 0, "test"); - /* Set the first device to enabled */ - VC_AppCustomDevice.Channel[0].Mode = VC_DEVICE_ENABLED; - - /* Set to true to emulate ioctl setting struct values */ - /* Need to succeed twice to reach format ioctl call */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Struct = 2; - - /* Set the test device path */ - strcpy(VC_AppCustomDevice.Channel[0].DevName, "test"); - - /* Set the video format to pass format check */ - VC_AppCustomDevice.Channel[0].VideoFormat = VC_V4L_VIDEO_FORMAT; - - /* Set the correct buffer type */ - VC_AppCustomDevice.Channel[0].BufferType = VC_V4L_BUFFER_TYPE; - - /* Set the correct resolution */ - VC_AppCustomDevice.Channel[0].FrameWidth = VC_FRAME_WIDTH; - VC_AppCustomDevice.Channel[0].FrameHeight = VC_FRAME_HEIGHT; - - /* Set the correct size */ - VC_AppCustomDevice.Channel[0].Buffer_Size = VC_MAX_BUFFER_SIZE; - - /* Set the correct buffer number */ - VC_AppCustomDevice.Channel[0].BufferRequest = VC_V4L_BUFFER_REQUEST; - - result = VC_Devices_Init(); - - UtAssert_True(result == expected,"VC_Init_CustomDevices() did not succeed"); - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==2,"Event Count = 2"); - UtAssert_True(VC_AppCustomDevice.Channel[0].Status == VC_DEVICE_INITIALIZED, - "VC_Init_CustomDevices() state not initialized"); - UtAssert_EventSent(VC_DEV_INF_EID, CFE_EVS_INFORMATION, returnString, - "VC_InitCustomDevices() failed to raise an event"); - UtAssert_EventSent(VC_DEV_INF_EID, CFE_EVS_INFORMATION, returnString1, - "VC_InitCustomDevices() failed to raise an event"); -} - -/************************************************************************** - * Tests for VC_Start_StreamingDevice() - **************************************************************************/ - -/** - * Test VC_Start_StreamingDevice through VC_Start_Streaming() - * fail queue buffers ioctl - */ -void Test_VC_Custom_StartStreamingDevice_BufferQueue(void) -{ - int32 result = 0; - int32 expected = -1; - uint8 DeviceID = 0; - - char returnString[64]; - snprintf(returnString, 64, "VC VIDIOC_QBUF returned %i on %s channel %u", 5, "test", 0); - - /* Set return error number to true */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Errno = 1; - - /* Set error number to interrupted */ - /* Note this will set errno through multiple calls */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Errno_Value = 5; - - /* Set the test device path */ - strcpy(VC_AppCustomDevice.Channel[0].DevName, "test"); - - /* Set buffer request to its correct value */ - VC_AppCustomDevice.Channel[0].BufferRequest = VC_V4L_BUFFER_REQUEST; - - /* Set the first ioctl call to fail */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Return = -1; - - /* Set channel 0 to enabled and initialized */ - VC_AppCustomDevice.Channel[0].Mode = VC_DEVICE_ENABLED; - VC_AppCustomDevice.Channel[0].Status = VC_DEVICE_INITIALIZED; - - /* Call the function under test */ - result = VC_Start_Streaming(); - - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); - UtAssert_True(result == expected,"VC_Start_StreamingDevice() did not fail"); - UtAssert_True(VC_AppCustomDevice.Channel[0].Status == VC_DEVICE_INITIALIZED, - "VC_StartStreaming changed status with failure"); - UtAssert_EventSent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, returnString, - "VC_Start_StreamingDevice() failed to raise an event"); -} - -/** - * Test VC_Start_StreamingDevice through VC_Start_Streaming() - * fail stream on ioctl - */ -void Test_VC_Custom_StartStreamingDevice_StreamOn(void) -{ - int32 result = 0; - int32 expected = -1; - uint8 DeviceID = 0; - - char returnString[64]; - snprintf(returnString, 64, "VC VIDIOC_STREAMON returned %i on %s channel %u", 5, "test", 0); - - /* Set return error number to true */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Errno = 1; - - /* Set error number to interrupted */ - /* Note this will set errno through multiple calls */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Errno_Value = 5; - - /* Set the test device path */ - strcpy(VC_AppCustomDevice.Channel[0].DevName, "test"); - - /* Set buffer request to one to only call ioctl queue buffer once */ - VC_AppCustomDevice.Channel[0].BufferRequest = 1; - - /* Set the second ioctl call to fail */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Return1 = -1; - - /* Set channel 0 to enabled and initialized */ - VC_AppCustomDevice.Channel[0].Mode = VC_DEVICE_ENABLED; - VC_AppCustomDevice.Channel[0].Status = VC_DEVICE_INITIALIZED; - - /* Call the function under test */ - result = VC_Start_Streaming(); - - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); - UtAssert_True(result == expected,"VC_Start_StreamingDevice() did not fail"); - UtAssert_True(VC_AppCustomDevice.Channel[0].Status == VC_DEVICE_INITIALIZED, - "VC_StartStreaming changed status with failure"); - UtAssert_EventSent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, returnString, - "VC_Start_StreamingDevice() failed to raise an event"); -} - -/** - * Test VC_Start_StreamingDevice nominal - */ -void Test_VC_Custom_StartStreamingDevice_Nominal(void) -{ - int32 result = -1; - int32 expected = 0; - uint8 DeviceID = 0; - - char returnString[64]; - snprintf(returnString, 64, "VC VIDIOC_STREAMON success on %s channel %u", "test", 0); - - /* Set the test device path */ - strcpy(VC_AppCustomDevice.Channel[0].DevName, "test"); - - /* Set buffer request to one to only call ioctl queue buffer once */ - VC_AppCustomDevice.Channel[0].BufferRequest = 1; - - /* Call the function under test */ - result = VC_Start_StreamingDevice(DeviceID); - - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); - UtAssert_True(result == expected,"VC_Start_StreamingDevice() did not succeed"); - UtAssert_EventSent(VC_DEV_INF_EID, CFE_EVS_INFORMATION, returnString, - "VC_Start_StreamingDevice() failed to raise an event"); -} - -/************************************************************************** - * Tests for VC_Start_Streaming() - **************************************************************************/ - - -/** - * Test VC_Start_Streaming nominal - */ -void Test_VC_Custom_StartStreaming_Nominal(void) -{ - int32 result = -1; - int32 expected = 0; - uint8 DeviceID = 0; - - char returnString[64]; - snprintf(returnString, 64, "VC VIDIOC_STREAMON success on %s channel %u", "test", 0); - - /* Set channel 0 to enabled and initialized */ - VC_AppCustomDevice.Channel[0].Mode = VC_DEVICE_ENABLED; - VC_AppCustomDevice.Channel[0].Status = VC_DEVICE_INITIALIZED; - - /* Set the test device path */ - strcpy(VC_AppCustomDevice.Channel[0].DevName, "test"); - - /* Set buffer request to one to only call ioctl queue buffer once */ - VC_AppCustomDevice.Channel[0].BufferRequest = 1; - - /* Call the function under test */ - result = VC_Start_Streaming(); - - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); - UtAssert_True(VC_AppCustomDevice.Channel[0].Status == VC_DEVICE_STREAMING, - "VC_Start_Streaming() did not set state to streaming"); - UtAssert_True(result == expected,"VC_Start_StreamingDevice() did not succeed"); - UtAssert_EventSent(VC_DEV_INF_EID, CFE_EVS_INFORMATION, returnString, - "VC_Start_StreamingDevice() failed to raise an event"); -} - -/************************************************************************** - * Tests for VC_Stream_Task() - **************************************************************************/ - -/** - * Test VC_Stream_Task() fail register child task - */ -void Test_VC_Custom_StreamTask_RegisterChildTaskFail(void) -{ - /* Set register child task to fail */ - Ut_CFE_ES_SetReturnCode(UT_CFE_ES_REGISTERCHILDTASK_INDEX, -1, 1); - - /* Call the function under test */ - VC_Stream_Task(); - - /* Verfity results */ - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); - UtAssert_True(VC_AppData.AppState == VC_INITIALIZED, - "VC_Stream_Task() did not set app state"); - UtAssert_EventSent(VC_DEV_INF_EID, CFE_EVS_INFORMATION, - "VC streaming task exited with return code 0 task status (0xFFFFFFFF)", - "VC_Stream_Task() failed to raise an event"); -} - - -/** - * Test VC_Stream_Task() fail nothing enabled and streaming - */ -void Test_VC_Custom_StreamTask_NothingEnabled(void) -{ - - char returnString[64]; - snprintf(returnString, 64, "VC can't start streaming no devices are streaming enabled"); - char returnString1[128]; - snprintf(returnString1, 128, "VC streaming task exited with return code %d task status (0x%08X)", - -1, (unsigned int)CFE_SUCCESS); - - /* Set register child task to succeed */ - Ut_CFE_ES_SetReturnCode(UT_CFE_ES_REGISTERCHILDTASK_INDEX, CFE_SUCCESS, 1); - - /* Set the while loop continue flag to true */ - VC_AppCustomDevice.ContinueFlag = TRUE; - - /* Set a fake device file descriptor */ - VC_AppCustomDevice.Channel[0].DeviceFd = 7; - - /* Set select to fail with an error (-1) */ - VC_Platform_Stubs_Returns.VC_Wrap_Select_Return = -1; - - /* Call the function under test */ - VC_Stream_Task(); - - /* Verfity results */ - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==2,"Event Count = 2"); - UtAssert_True(VC_AppData.AppState == VC_INITIALIZED, - "VC_Stream_Task() did not set app state"); - UtAssert_EventSent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, returnString, - "VC_Stream_Task() failed to raise an event"); - UtAssert_EventSent(VC_DEV_INF_EID, CFE_EVS_INFORMATION, returnString1, - "VC_Stream_Task() failed to raise an event"); -} - - -/** - * Test VC_Stream_Task() fail select error - */ -void Test_VC_Custom_StreamTask_SelectError(void) -{ - - char returnString[64]; - snprintf(returnString, 64, "VC start streaming failed select() returned %i", 6); - char returnString1[128]; - snprintf(returnString1, 128, "VC streaming task exited with return code %d task status (0x%08X)", - -1, (unsigned int)CFE_SUCCESS); - - /* Set register child task to succeed */ - Ut_CFE_ES_SetReturnCode(UT_CFE_ES_REGISTERCHILDTASK_INDEX, CFE_SUCCESS, 1); - - /* Set the while loop continue flag to true */ - VC_AppCustomDevice.ContinueFlag = TRUE; - - /* Set the mode and state for channel 0*/ - VC_AppCustomDevice.Channel[0].Mode = VC_DEVICE_ENABLED; - VC_AppCustomDevice.Channel[0].Status = VC_DEVICE_STREAMING; - - /* Set return error number to true */ - VC_Platform_Stubs_Returns.VC_Wrap_Select_Errno = 1; - - /* Set error number to interrupted */ - /* Note this will set errno through multiple calls */ - VC_Platform_Stubs_Returns.VC_Wrap_Select_Errno_Value = 6; - - /* Set a fake device file descriptor */ - VC_AppCustomDevice.Channel[0].DeviceFd = 7; - - /* Set select to fail with an error (-1) */ - VC_Platform_Stubs_Returns.VC_Wrap_Select_Return = -1; - - /* Call the function under test */ - VC_Stream_Task(); - - /* Verfity results */ - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==2,"Event Count = 2"); - UtAssert_True(VC_AppData.AppState == VC_INITIALIZED, - "VC_Stream_Task() did not set app state"); - UtAssert_EventSent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, returnString, - "VC_Stream_Task() failed to raise an event"); - UtAssert_EventSent(VC_DEV_INF_EID, CFE_EVS_INFORMATION, returnString1, - "VC_Stream_Task() failed to raise an event"); -} - -/** - * Test VC_Stream_Task() fail select interrupted max retry attempts - */ -void Test_VC_Custom_StreamTask_InterruptedError(void) -{ - char returnString[64]; - snprintf(returnString, 64, "VC select was interrupted"); - char returnString1[128]; - snprintf(returnString1, 128, "VC streaming task exited with return code %d task status (0x%08X)", - -1, (unsigned int)CFE_SUCCESS); - - /* Set register child task to succeed */ - Ut_CFE_ES_SetReturnCode(UT_CFE_ES_REGISTERCHILDTASK_INDEX, CFE_SUCCESS, 1); - - /* Set the while loop continue flag to true */ - VC_AppCustomDevice.ContinueFlag = TRUE; - - /* Set the mode and state for channel 0*/ - VC_AppCustomDevice.Channel[0].Mode = VC_DEVICE_ENABLED; - VC_AppCustomDevice.Channel[0].Status = VC_DEVICE_STREAMING; - - /* Set return error number to true */ - VC_Platform_Stubs_Returns.VC_Wrap_Select_Errno = 1; - - /* Set error number to interrupted */ - /* Note this will set errno through multiple calls */ - VC_Platform_Stubs_Returns.VC_Wrap_Select_Errno_Value = EINTR; - - /* Set a fake device file descriptor */ - VC_AppCustomDevice.Channel[0].DeviceFd = 7; - - /* Set select to fail with an error (-1) */ - VC_Platform_Stubs_Returns.VC_Wrap_Select_Return = -1; - - /* Call the function under test */ - VC_Stream_Task(); - - /* Verfity results */ - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==(VC_MAX_RETRY_ATTEMPTS + 1), - "Event Count is not correct"); - UtAssert_True(VC_AppData.AppState == VC_INITIALIZED, - "VC_Stream_Task() did not set app state"); - UtAssert_EventSent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, returnString, - "VC_Stream_Task() failed to raise an event"); - UtAssert_EventSent(VC_DEV_INF_EID, CFE_EVS_INFORMATION, returnString1, - "VC_Stream_Task() failed to raise an event"); -} - -/** - * Test VC_Stream_Task() fail select timeout max retry attempts - */ -void Test_VC_Custom_StreamTask_TimeoutError(void) -{ - char returnString[64]; - snprintf(returnString, 64, "VC select timed out"); - char returnString1[128]; - snprintf(returnString1, 128, "VC streaming task exited with return code %d task status (0x%08X)", - -1, (unsigned int)CFE_SUCCESS); - - /* Set register child task to succeed */ - Ut_CFE_ES_SetReturnCode(UT_CFE_ES_REGISTERCHILDTASK_INDEX, CFE_SUCCESS, 1); - - /* Set the while loop continue flag to true */ - VC_AppCustomDevice.ContinueFlag = TRUE; - - /* Set the mode and state for channel 0*/ - VC_AppCustomDevice.Channel[0].Mode = VC_DEVICE_ENABLED; - VC_AppCustomDevice.Channel[0].Status = VC_DEVICE_STREAMING; - - /* Set a fake device file descriptor */ - VC_AppCustomDevice.Channel[0].DeviceFd = 7; - - /* Set select to timeout return value (0) */ - VC_Platform_Stubs_Returns.VC_Wrap_Select_Return = 0; - - /* Call the function under test */ - VC_Stream_Task(); - - /* Verfity results */ - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==(VC_BUFFER_TIMEOUTS_ALLOWED + 1), - "Event Count is not correct"); - UtAssert_True(VC_AppData.AppState == VC_INITIALIZED, - "VC_Stream_Task() did not set app state"); - UtAssert_EventSent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, returnString, - "VC_Stream_Task() failed to raise an event"); - UtAssert_EventSent(VC_DEV_INF_EID, CFE_EVS_INFORMATION, returnString1, - "VC_Stream_Task() failed to raise an event"); -} - - -/************************************************************************** - * Tests for VC_Devices_Start() - **************************************************************************/ - -/** - * Test VC_Devices_Start() fail start streaming - */ -void Test_VC_Custom_DevicesStart_StartStreaming(void) -{ - boolean result = TRUE; - boolean expected = FALSE; - - uint8 DeviceID = 0; - - /* Fail start streaming device */ - char returnString[64]; - snprintf(returnString, 64, "VC VIDIOC_QBUF returned %i on %s channel %u", 5, "test", 0); - - /* Set return error number to true */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Errno = 1; - - /* Set error number to interrupted */ - /* Note this will set errno through multiple calls */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Errno_Value = 5; - - /* Set the test device path */ - strcpy(VC_AppCustomDevice.Channel[0].DevName, "test"); - - /* Set buffer request to its correct value */ - VC_AppCustomDevice.Channel[0].BufferRequest = VC_V4L_BUFFER_REQUEST; - - /* Set the first ioctl call to fail */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Return = -1; - - /* Set channel 0 to enabled and initialized */ - VC_AppCustomDevice.Channel[0].Mode = VC_DEVICE_ENABLED; - VC_AppCustomDevice.Channel[0].Status = VC_DEVICE_INITIALIZED; - - /* Call the function under test */ - result = VC_Devices_Start(); - - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); - UtAssert_True(VC_AppCustomDevice.ContinueFlag == FALSE, - "Devices start continue flag not correctly set"); - UtAssert_True(result == expected,"VC_Devices_Start() did not fail"); - UtAssert_True(VC_AppCustomDevice.Channel[0].Status == VC_DEVICE_INITIALIZED, - "VC_StartStreaming changed status with failure"); - UtAssert_EventSent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, returnString, - "VC_Start_StreamingDevice() failed to raise an event"); -} - -/** - * Test VC_Devices_Start() fail child task creation - */ -void Test_VC_Custom_DevicesStart_ChildTaskCreationFail(void) -{ - /* Set create child task to fail */ - Ut_CFE_ES_SetReturnCode(UT_CFE_ES_CREATECHILDTASK_INDEX, -1, 1); - - boolean result = TRUE; - boolean expected = FALSE; - char returnString[64]; - snprintf(returnString, 64, "VC VIDIOC_STREAMON success on %s channel %u", "test", 0); - - uint8 DeviceID = 0; - - /* Set the test device path */ - strcpy(VC_AppCustomDevice.Channel[0].DevName, "test"); - - /* Set buffer request to its correct value */ - VC_AppCustomDevice.Channel[0].BufferRequest = VC_V4L_BUFFER_REQUEST; - - /* Set channel 0 to enabled and initialized */ - VC_AppCustomDevice.Channel[0].Mode = VC_DEVICE_ENABLED; - VC_AppCustomDevice.Channel[0].Status = VC_DEVICE_INITIALIZED; - - /* Call the function under test */ - result = VC_Devices_Start(); - - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); - UtAssert_True(VC_AppCustomDevice.ContinueFlag == FALSE, - "Devices start continue flag not correctly set"); - UtAssert_True(result == expected,"VC_Devices_Start() did not fail"); - UtAssert_True(VC_AppCustomDevice.Channel[0].Status == VC_DEVICE_STREAMING, - "VC_Custom_Device status is not the correct value"); - UtAssert_EventSent(VC_DEV_INF_EID, CFE_EVS_INFORMATION, returnString, - "VC_Start_StreamingDevice() failed to raise an event"); -} - -/** - * Test VC_Devices_Start() nominal - */ -void Test_VC_Custom_DevicesStart_Nominal(void) -{ - /* Set create child task to fail */ - Ut_CFE_ES_SetReturnCode(UT_CFE_ES_CREATECHILDTASK_INDEX, CFE_SUCCESS, 1); - - boolean result = FALSE; - boolean expected = TRUE; - char returnString[64]; - snprintf(returnString, 64, "VC VIDIOC_STREAMON success on %s channel %u", "test", 0); - - uint8 DeviceID = 0; - - /* Set the test device path */ - strcpy(VC_AppCustomDevice.Channel[0].DevName, "test"); - - /* Set buffer request to its correct value */ - VC_AppCustomDevice.Channel[0].BufferRequest = VC_V4L_BUFFER_REQUEST; - - /* Set channel 0 to enabled and initialized */ - VC_AppCustomDevice.Channel[0].Mode = VC_DEVICE_ENABLED; - VC_AppCustomDevice.Channel[0].Status = VC_DEVICE_INITIALIZED; - - /* Call the function under test */ - result = VC_Devices_Start(); - - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); - UtAssert_True(VC_AppCustomDevice.ContinueFlag == TRUE, - "Devices start continue flag not correctly set"); - UtAssert_True(result == expected,"VC_Devices_Start() did not fail"); - UtAssert_True(VC_AppCustomDevice.Channel[0].Status == VC_DEVICE_STREAMING, - "VC_Custom_Device status is not the correct value"); - UtAssert_EventSent(VC_DEV_INF_EID, CFE_EVS_INFORMATION, returnString, - "VC_Start_StreamingDevice() failed to raise an event"); -} - -/************************************************************************** - * Tests for VC_Stop_StreamingDevice() - **************************************************************************/ - -/** - * Test VC_Stop_StreamingDevice() through VC_Stop_Streaming() - * fail stream off - */ -void Test_VC_Custom_StopStreamingDevices_StreamOff(void) -{ - int32 result = 0; - int32 expected = -1; - - char returnString[64]; - snprintf(returnString, 64, "VC VIDIOC_STREAMOFF returned %i on %s channel %u", 7, "test", 0); - - /* Set the test device path */ - strcpy(VC_AppCustomDevice.Channel[0].DevName, "test"); - - - /* Set channel 0 to enabled and initialized */ - VC_AppCustomDevice.Channel[0].Mode = VC_DEVICE_ENABLED; - VC_AppCustomDevice.Channel[0].Status = VC_DEVICE_STREAMING; - - /* Set return error number to true */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Errno = 1; - - /* Set error number to interrupted */ - /* Note this will set errno through multiple calls */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Errno_Value = 7; - - /* Set the first ioctl call to fail */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Return = -1; - - /* Call the function under test */ - result = VC_Stop_Streaming(); - - UtAssert_True(result == expected,"VC_Stop_StreamingDevice() did not fail"); -} - -/** - * Test VC_Stop_StreamingDevice() through VC_Stop_Streaming() nominal - */ -void Test_VC_Custom_StopStreamingDevices_Nominal(void) -{ - int32 result = -1; - int32 expected = 0; - - char returnString[64]; - snprintf(returnString, 64, "VC VIDIOC_STREAMOFF success on %s channel %u", "test", 0); - - - /* Set channel 0 to enabled and initialized */ - VC_AppCustomDevice.Channel[0].Mode = VC_DEVICE_ENABLED; - VC_AppCustomDevice.Channel[0].Status = VC_DEVICE_STREAMING; - - /* Set the test device path */ - strcpy(VC_AppCustomDevice.Channel[0].DevName, "test"); - - /* Call the function under test */ - result = VC_Stop_Streaming(); - - UtAssert_True(result == expected,"VC_Stop_StreamingDevice() did not succeed"); -} - - -/************************************************************************** - * Tests for VC_Stop_Streaming() - **************************************************************************/ - -/************************************************************************** - * Tests for VC_Devices_Stop() - **************************************************************************/ - - /** - * Test VC_Devices_Stop() fail stop streaming - */ -void Test_VC_Custom_DevicesStop_FailStopStreaming(void) -{ - boolean result = TRUE; - int32 expected = FALSE; - - char returnString[64]; - snprintf(returnString, 64, "VC VIDIOC_STREAMOFF returned %i on %s channel %u", 7, "test", 0); - - /* Set the test device path */ - strcpy(VC_AppCustomDevice.Channel[0].DevName, "test"); - - - /* Set channel 0 to enabled and initialized */ - VC_AppCustomDevice.Channel[0].Mode = VC_DEVICE_ENABLED; - VC_AppCustomDevice.Channel[0].Status = VC_DEVICE_STREAMING; - - /* Set return error number to true */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Errno = 1; - - /* Set error number to interrupted */ - /* Note this will set errno through multiple calls */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Errno_Value = 7; - - /* Set the first ioctl call to fail */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Return = -1; - - /* Call the function under test */ - result = VC_Devices_Stop(); - - UtAssert_True(result == expected,"VC_Stop_StreamingDevice() did not fail"); -} - - /** - * Test VC_Devices_Stop() nominal - */ -void Test_VC_Custom_DevicesStop_Nominal(void) -{ - boolean result = FALSE; - boolean expected = TRUE; - - char returnString[64]; - snprintf(returnString, 64, "VC VIDIOC_STREAMOFF success on %s channel %u", "test", 0); - - - /* Set channel 0 to enabled and initialized */ - VC_AppCustomDevice.Channel[0].Mode = VC_DEVICE_ENABLED; - VC_AppCustomDevice.Channel[0].Status = VC_DEVICE_STREAMING; - - /* Set the test device path */ - strcpy(VC_AppCustomDevice.Channel[0].DevName, "test"); - - /* Call the function under test */ - result = VC_Devices_Stop(); - - UtAssert_True(result == expected,"VC_Stop_StreamingDevice() did not succeed"); - UtAssert_True(VC_AppCustomDevice.ContinueFlag==FALSE,"Continue flag wasn't set"); - UtAssert_True(VC_AppData.AppState==VC_INITIALIZED,"App state isn't initialized"); -} - - -/************************************************************************** - * Tests for VC_DisableDevice() - **************************************************************************/ - - /** - * Test VC_DisableDevice() nothing enabled - */ -void Test_VC_Custom_DisableDevice_NothingEnabled(void) -{ - int32 result = 0; - int32 expected = -1; - uint8 DeviceID = 0; - - char returnString[64]; - snprintf(returnString, 64, "VC Device for channel %u is not enabled.", 0); - - result = VC_DisableDevice(DeviceID); - UtAssert_True(result == expected,"VC_DisableDevice() did not fail"); -} - - - /** - * Test VC_DisableDevice() nominal - */ -void Test_VC_Custom_DisableDevice_Nominal(void) -{ - int32 result = -1; - int32 expected = 0; - uint8 DeviceID = 0; - - /* Set test device file descriptor a random value */ - VC_AppCustomDevice.Channel[0].DeviceFd = 1; - - /* Set device mode to enable */ - VC_AppCustomDevice.Channel[0].Mode = VC_DEVICE_ENABLED; - - /* Call the function under test */ - result = VC_DisableDevice(DeviceID); - - UtAssert_True(VC_AppCustomDevice.Channel[0].DeviceFd == 0, - "VC_DisableDevice() did not reset FD"); - UtAssert_True(result == expected,"VC_DisableDevice() did not succeed"); -} - -/************************************************************************** - * Tests for VC_CleanupDevices() - **************************************************************************/ - - /** - * Test VC_CleanupDevices() stop streaming fail - * note reuse of code from first stop streaming device fail test - */ -void Test_VC_Custom_CleanupDevices_StopStreaming(void) -{ - int32 result = 0; - int32 expected = -1; - - char returnString[64]; - snprintf(returnString, 64, "VC VIDIOC_STREAMOFF returned %i on %s channel %u", 7, "test", 0); - - /* Set the test device path */ - strcpy(VC_AppCustomDevice.Channel[0].DevName, "test"); - - - /* Set channel 0 to enabled and initialized */ - VC_AppCustomDevice.Channel[0].Mode = VC_DEVICE_ENABLED; - VC_AppCustomDevice.Channel[0].Status = VC_DEVICE_STREAMING; - - /* Set return error number to true */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Errno = 1; - - /* Set error number to interrupted */ - /* Note this will set errno through multiple calls */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Errno_Value = 7; - - /* Set the first ioctl call to fail */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Return = -1; - - /* Call the function under test */ - result = VC_CleanupDevices(); - - UtAssert_True(result == expected,"VC_Stop_StreamingDevice() did not fail"); - UtAssert_True(VC_AppCustomDevice.Channel[0].Status == VC_DEVICE_STREAMING, - "VC_CleanupDevices() did not set status"); -} - -/** - * Test VC_CleanupDevices() nominal - * - */ -void Test_VC_Custom_CleanupDevices_Nominal(void) -{ - int32 result = -1; - int32 expected = 0; - uint8 DeviceID = 0; - - char returnString[64]; - snprintf(returnString, 64, "VC VIDIOC_STREAMOFF success on %s channel %u", "test", 0); - - /* Set channel 0 to enabled and initialized */ - VC_AppCustomDevice.Channel[0].Mode = VC_DEVICE_ENABLED; - VC_AppCustomDevice.Channel[0].Status = VC_DEVICE_STREAMING; - - /* Set the test device path */ - strcpy(VC_AppCustomDevice.Channel[0].DevName, "test"); - - /* Call the function under test */ - result = VC_CleanupDevices(); - - UtAssert_True(result == expected,"VC_DisableDevice() did not succeed"); - UtAssert_True(VC_AppCustomDevice.Channel[0].Status == VC_DEVICE_INITIALIZED, - "VC_CleanupDevices() did not set correct status"); -} - - -/************************************************************************** - * Tests for VC_Devices_Uninit() - **************************************************************************/ - -/** - * Test VC_Devices_Uninit() nominal - * - */ -void Test_VC_Custom_DevicesUninit_Nominal(void) -{ - boolean result = FALSE; - boolean expected = TRUE; - uint8 DeviceID = 0; - - char returnString[64]; - snprintf(returnString, 64, "VC VIDIOC_STREAMOFF success on %s channel %u", "test", 0); - - /* Set channel 0 to enabled and initialized */ - VC_AppCustomDevice.Channel[0].Mode = VC_DEVICE_ENABLED; - VC_AppCustomDevice.Channel[0].Status = VC_DEVICE_STREAMING; - - /* Set the test device path */ - strcpy(VC_AppCustomDevice.Channel[0].DevName, "test"); - - /* Call the function under test */ - result = VC_Devices_Uninit(); - - UtAssert_True(result == expected,"VC_DisableDevice() did not succeed"); - UtAssert_True(VC_AppCustomDevice.Channel[0].Status == VC_DEVICE_INITIALIZED, - "VC_CleanupDevices() did not set correct status"); -} - - -/** - * Test VC_Devices_Uninit() cleanup devices fail - * - */ -void Test_VC_Custom_DevicesUninit_Cleanup(void) -{ - boolean result = TRUE; - boolean expected = FALSE; - - char returnString[64]; - snprintf(returnString, 64, "VC VIDIOC_STREAMOFF returned %i on %s channel %u", 7, "test", 0); - - /* Set the test device path */ - strcpy(VC_AppCustomDevice.Channel[0].DevName, "test"); - - - /* Set channel 0 to enabled and initialized */ - VC_AppCustomDevice.Channel[0].Mode = VC_DEVICE_ENABLED; - VC_AppCustomDevice.Channel[0].Status = VC_DEVICE_STREAMING; - - /* Set return error number to true */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Errno = 1; - - /* Set error number to interrupted */ - /* Note this will set errno through multiple calls */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Errno_Value = 7; - - /* Set the first ioctl call to fail */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Return = -1; - - /* Call the function under test */ - result = VC_Devices_Uninit(); - - UtAssert_True(result == expected,"VC_Stop_StreamingDevice() did not fail"); - UtAssert_True(VC_AppCustomDevice.Channel[0].Status == VC_DEVICE_STREAMING, - "VC_CleanupDevices() did not set status"); -} - -/************************************************************************** - * Tests for VC_Send_Buffer() - **************************************************************************/ - -/** - * Test VC_Send_Buffer() buffer dequeue fail - * - */ -void Test_VC_Custom_SendBuffer_BufferDequeue(void) -{ - int32 result = 0; - int32 expected = -1; - uint8 DeviceID = 0; - - char returnString[64]; - snprintf(returnString, 64, "VC VIDIOC_DQBUF returned %i on %s channel %u", 7, "test", 0); - - /* Set the test device path */ - strcpy(VC_AppCustomDevice.Channel[0].DevName, "test"); - - /* Set return error number to true */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Errno = 1; - - /* Set error number to interrupted */ - /* Note this will set errno through multiple calls */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Errno_Value = 7; - - /* Set the first ioctl call to fail */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Return = -1; - - /* Call the function under test */ - result = VC_Send_Buffer(DeviceID); - - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); - UtAssert_EventSent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, returnString, - "VC_Stop_StreamingDevice() failed to raise an event"); - UtAssert_True(result == expected,"VC_Send_Buffer() did not fail"); -} - -/** - * Test VC_Send_Buffer() max buffer size fail - * - */ -void Test_VC_Custom_SendBuffer_MaxBuffer(void) -{ - int32 result = 0; - int32 expected = -1; - uint8 DeviceID = 0; - - char returnString[64]; - snprintf(returnString, 64, "VC Packet on %s channel %u is too large", "test", 0); - - /* Set the test device path */ - strcpy(VC_AppCustomDevice.Channel[0].DevName, "test"); - - /* Set buffer dequeued validation check to fail */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Struct = 2; - - /* Call the function under test */ - result = VC_Send_Buffer(DeviceID); - - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); - UtAssert_EventSent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, returnString, - "VC_Stop_StreamingDevice() failed to raise an event"); - /* TODO currently does not fail if max buffer size exceeded. */ - //UtAssert_True(result == expected,"VC_Send_Buffer() did not fail"); -} - -/** - * Test VC_Send_Buffer() dequeued buffer address validation fail - * - */ -void Test_VC_Custom_SendBuffer_InvalidAddress(void) -{ - int32 result = 0; - int32 expected = -1; - uint8 DeviceID = 0; - - char returnString[128]; - snprintf(returnString, 128, - "VC VIDIOC_DQBUF returned unknown user pointer on %s channel %u", - "test", 0); - - /* Set the test device path */ - strcpy(VC_AppCustomDevice.Channel[0].DevName, "test"); - - /* Set buffer dequeued validation check to pass */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Struct = 1; - - /* Set buffer request to a value > 0 */ - VC_AppCustomDevice.Channel[DeviceID].BufferRequest = 1; - - /* Set random pointer address */ - VC_AppCustomDevice.Channel[DeviceID].Buffer_Ptrs[0].ptr = (void *)1; - - /* Call the function under test */ - result = VC_Send_Buffer(DeviceID); - - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); - UtAssert_EventSent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, returnString, - "VC_Stop_StreamingDevice() failed to raise an event"); - UtAssert_True(result == expected,"VC_Send_Buffer() did not fail"); -} - -/** - * Test VC_Send_Buffer() dequeued buffer fail send data - * - */ -void Test_VC_Custom_SendBuffer_SendData(void) -{ - int32 result = 0; - int32 expected = -1; - uint8 DeviceID = 0; - - char returnString[128]; - snprintf(returnString, 128, - "VC send data failed on %s channel %u", - "test", 0); - - /* Properly initialize custom transmit data */ - VC_CustomTransmit_InitData(); - - /* Set the test device path */ - strcpy(VC_AppCustomDevice.Channel[0].DevName, "test"); - - /* Set buffer dequeued validation check to pass */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Struct = 1; - - /* Set buffer request to a value > 0 */ - VC_AppCustomDevice.Channel[DeviceID].BufferRequest = 1; - - /* set sendto to fail */ - VC_Platform_Stubs_Returns.VC_Wrap_SendTo_Return = -1; - - /* Set the second ioctl call to fail */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Return1 = -1; - - /* Call the function under test */ - result = VC_Send_Buffer(DeviceID); - - /* Two events because send data will fail */ - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==2,"Event Count = 2"); - UtAssert_True(result == expected,"VC_Send_Buffer() did not fail"); -} - -/** - * Test VC_Send_Buffer() queue new buffer failure - */ -void Test_VC_Custom_SendBuffer_BufferQueue(void) -{ - int32 result = 0; - int32 expected = -1; - uint8 DeviceID = 0; - - char returnString[128]; - snprintf(returnString, 128, - "VC VIDIOC_QBUF returned %i on %s channel %u", 7, "test", 0); - - /* Set the test device path */ - strcpy(VC_AppCustomDevice.Channel[0].DevName, "test"); - - /* Set buffer dequeued validation check to pass */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Struct = 1; - - /* Set second ioctl call to fail */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Return1 = -1; - - /* Set buffer request to a value > 0 */ - VC_AppCustomDevice.Channel[DeviceID].BufferRequest = 1; - - /* Set return error number to true */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Errno = 1; - - /* Set error number to interrupted */ - /* Note this will set errno through multiple calls */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Errno_Value = 7; - - /* Call the function under test */ - result = VC_Send_Buffer(DeviceID); - - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); - UtAssert_EventSent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, returnString, - "VC_Send_Buffer() failed to raise an event"); - UtAssert_True(result == expected,"VC_Send_Buffer() did not fail"); -} - -/** - * Test VC_Send_Buffer() nominal - */ -void Test_VC_Custom_SendBuffer_Nominal(void) -{ - int32 result = -1; - int32 expected = 0; - uint8 DeviceID = 0; - - /* Set the test device path */ - strcpy(VC_AppCustomDevice.Channel[0].DevName, "test"); - - /* Set buffer dequeued validation check to pass */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Struct = 1; - - /* Set buffer request to a value > 0 */ - VC_AppCustomDevice.Channel[DeviceID].BufferRequest = 1; - - /* Set return error number to true */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Errno = 1; - - /* Set error number to interrupted */ - /* Note this will set errno through multiple calls */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Errno_Value = 7; - - /* Call the function under test */ - result = VC_Send_Buffer(DeviceID); - - UtAssert_True(result == expected,"VC_Send_Buffer() did not succeed"); -} - - -/************************************************************************** - * Tests for VC_Devices_InitData() - **************************************************************************/ - -/** - * Test VC_Devices_InitData() nominal - * Note: currently no way to fail this function - */ -void Test_VC_Devices_InitData_Nominal(void) -{ - int32 result = -1; - int32 expected = CFE_SUCCESS; - - /* Call the function under test */ - result = VC_Devices_InitData(); - - /* Verify the results */ - UtAssert_True(result == expected,"VC_Custom_InitData() did not succeed"); -} - - -/************************************************************************** - * Rollup Test Cases - **************************************************************************/ -void VC_Custom_App_Device_Test_AddTestCases(void) -{ -/************************************************************************** - * Tests for Custom Device Layer - **************************************************************************/ - UtTest_Add(Test_VC_Custom_Ioctl_Error, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_Ioctl_Error"); - UtTest_Add(Test_VC_Custom_Ioctl_Interrupted, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_Ioctl_Interrupted"); - UtTest_Add(Test_VC_Custom_InitDevice_AlreadyInitialized, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_InitDevice_AlreadyInitialized"); - UtTest_Add(Test_VC_Custom_InitDevice_NullName, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_InitDevice_NullName"); - UtTest_Add(Test_VC_Custom_InitDevice_InvalidID, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_InitDevice_InvalidID"); - UtTest_Add(Test_VC_Custom_InitDevice_OpenError, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_InitDevice_OpenError"); - UtTest_Add(Test_VC_Custom_InitDevice_Nominal, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_InitDevice_Nominal"); - UtTest_Add(Test_VC_Custom_InitCustomDevices_FailConfigure, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_InitCustomDevices_FailConfigure"); - UtTest_Add(Test_VC_Custom_InitCustomDevices_Nominal, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_InitCustomDevices_FailInit"); - UtTest_Add(Test_VC_Custom_ConfigureDevice_CapabilitiesFail, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_ConfigureDevice_CapabilitiesFail"); - UtTest_Add(Test_VC_Custom_ConfigureDevice_CapabilitiesBuffer, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_ConfigureDevice_CapabilitiesBuffer"); - UtTest_Add(Test_VC_Custom_ConfigureDevice_CapabilitiesStreaming, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_ConfigureDevice_CapabilitiesStreaming"); - UtTest_Add(Test_VC_Custom_ConfigureDevice_FormatFail, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_ConfigureDevice_FormatFail"); - UtTest_Add(Test_VC_Custom_ConfigureDevice_FormatCheck, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_ConfigureDevice_FormatCheck"); - UtTest_Add(Test_VC_Custom_ConfigureDevice_FormatCheckRes, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_ConfigureDevice_FormatCheckRes"); - UtTest_Add(Test_VC_Custom_ConfigureDevice_FormatCheckSize, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_ConfigureDevice_FormatCheckSize"); - UtTest_Add(Test_VC_Custom_ConfigureDevice_RequestsBuffers, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_ConfigureDevice_RequestsBuffers"); - UtTest_Add(Test_VC_Custom_ConfigureDevice_RequestsBuffersCount, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_ConfigureDevice_RequestsBuffersCount"); - UtTest_Add(Test_VC_Custom_ConfigureDevice_Nominal, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_ConfigureDevice_Nominal"); - UtTest_Add(Test_VC_Custom_DevicesInit_Fail, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_DevicesInit_Fail"); - UtTest_Add(Test_VC_Custom_DevicesInit_Nominal, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_DevicesInit_Nominal"); - UtTest_Add(Test_VC_Custom_StartStreamingDevice_BufferQueue, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_StartStreamingDevice_BufferQueue"); - UtTest_Add(Test_VC_Custom_StartStreamingDevice_StreamOn, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_StartStreamingDevice_StreamOn"); - UtTest_Add(Test_VC_Custom_StartStreamingDevice_Nominal, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_StartStreamingDevice_Nominal"); - UtTest_Add(Test_VC_Custom_StartStreaming_Nominal, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_StartStreaming_Nominal"); - UtTest_Add(Test_VC_Custom_StreamTask_RegisterChildTaskFail, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_StreamTask_RegisterChildTaskFail"); - UtTest_Add(Test_VC_Custom_StreamTask_NothingEnabled, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_StreamTask_NothingEnabled"); - UtTest_Add(Test_VC_Custom_StreamTask_SelectError, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_StreamTask_SelectError"); - UtTest_Add(Test_VC_Custom_StreamTask_InterruptedError, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_StreamTask_InterruptedError"); - UtTest_Add(Test_VC_Custom_StreamTask_TimeoutError, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_StreamTask_TimeoutError"); - UtTest_Add(Test_VC_Custom_DevicesStart_StartStreaming, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_DevicesStart_StartStreaming"); - UtTest_Add(Test_VC_Custom_DevicesStart_ChildTaskCreationFail, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_DevicesStart_ChildTaskCreationFail"); - UtTest_Add(Test_VC_Custom_DevicesStart_Nominal, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_DevicesStart_Nominal"); - UtTest_Add(Test_VC_Custom_StopStreamingDevices_StreamOff, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_StopStreamingDevices_StreamOff"); - UtTest_Add(Test_VC_Custom_StopStreamingDevices_Nominal, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_StopStreamingDevices_Nominal"); - UtTest_Add(Test_VC_Custom_DevicesStop_FailStopStreaming, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_DevicesStop_FailStopStreaming"); - UtTest_Add(Test_VC_Custom_DevicesStop_Nominal, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_DevicesStop_Nominal"); - UtTest_Add(Test_VC_Custom_DisableDevice_NothingEnabled, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_DisableDevice_NothingEnabled"); - UtTest_Add(Test_VC_Custom_DisableDevice_Nominal, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_DisableDevice_Nominal"); - UtTest_Add(Test_VC_Custom_CleanupDevices_StopStreaming, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_CleanupDevices_StopStreaming"); - UtTest_Add(Test_VC_Custom_CleanupDevices_Nominal, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_CleanupDevices_Nominal"); - UtTest_Add(Test_VC_Custom_DevicesUninit_Nominal, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_DevicesUninit_Nominal"); - UtTest_Add(Test_VC_Custom_DevicesUninit_Cleanup, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_DevicesUninit_Cleanup"); - UtTest_Add(Test_VC_Custom_SendBuffer_BufferDequeue, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_SendBuffer_BufferDequeue"); - UtTest_Add(Test_VC_Custom_SendBuffer_MaxBuffer, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_SendBuffer_MaxBuffer"); - UtTest_Add(Test_VC_Custom_SendBuffer_InvalidAddress, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_SendBuffer_InvalidAddress"); - UtTest_Add(Test_VC_Custom_SendBuffer_SendData, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_SendBuffer_SendData"); - UtTest_Add(Test_VC_Custom_SendBuffer_BufferQueue, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_SendBuffer_BufferQueue"); - UtTest_Add(Test_VC_Custom_SendBuffer_Nominal, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_SendBuffer_Nominal"); - UtTest_Add(Test_VC_Devices_InitData_Nominal, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Devices_InitData_Nominal"); -} diff --git a/config/obc/cpd/target/apps/vc/unit_test/vc_dev_io_v4l_test/vc_app_custom_device_test.h b/config/obc/cpd/target/apps/vc/unit_test/vc_dev_io_v4l_test/vc_app_custom_device_test.h deleted file mode 100644 index 38b7e33d3..000000000 --- a/config/obc/cpd/target/apps/vc/unit_test/vc_dev_io_v4l_test/vc_app_custom_device_test.h +++ /dev/null @@ -1,48 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ - -#ifndef VC_APP_CUSTOM_DEVICE_TEST_H -#define VC_APP_CUSTOM_DEVICE_TEST_H - -#ifdef __cplusplus -extern "C" { -#endif - -void VC_Custom_App_Device_Test_AddTestCases(void); - - -#ifdef __cplusplus -} -#endif - -#endif /* VC_APP_CUSTOM_DEVICE_TEST_H */ diff --git a/config/obc/cpd/target/apps/vc/unit_test/vc_dev_io_v4l_test/vc_custom_device_test_utils.c b/config/obc/cpd/target/apps/vc/unit_test/vc_dev_io_v4l_test/vc_custom_device_test_utils.c deleted file mode 100644 index f34216d08..000000000 --- a/config/obc/cpd/target/apps/vc/unit_test/vc_dev_io_v4l_test/vc_custom_device_test_utils.c +++ /dev/null @@ -1,76 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ - -#include "vc_custom_device_test_utils.h" -#include "vc_platform_stubs.h" - -#include "ut_cfe_evs_hooks.h" -#include "ut_cfe_time_stubs.h" -#include "ut_cfe_psp_memutils_stubs.h" -#include "ut_cfe_tbl_stubs.h" -#include "ut_cfe_tbl_hooks.h" -#include "ut_cfe_fs_stubs.h" -#include "ut_cfe_time_stubs.h" -#include "ut_osapi_stubs.h" -#include "ut_osfileapi_stubs.h" -#include "ut_cfe_sb_stubs.h" -#include "ut_cfe_es_stubs.h" -#include "ut_cfe_evs_stubs.h" - -#include - -/* - * Function Definitions - */ - -void VC_Custom_Device_Test_Setup(void) -{ - /* initialize test environment to default state for every test */ - - CFE_PSP_MemSet(&VC_AppCustomDevice, 0x00, sizeof(VC_AppCustomDevice_t)); - - Ut_CFE_EVS_Reset(); - Ut_CFE_FS_Reset(); - Ut_CFE_TIME_Reset(); - Ut_CFE_TBL_Reset(); - Ut_CFE_SB_Reset(); - Ut_CFE_ES_Reset(); - Ut_OSAPI_Reset(); - Ut_OSFILEAPI_Reset(); -} - -void VC_Custom_Device_Test_TearDown(void) { - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_CallCount = 0; - CFE_PSP_MemSet(&VC_AppCustomDevice, 0x00, sizeof(VC_AppCustomDevice_t)); - CFE_PSP_MemSet(&VC_Platform_Stubs_Returns, 0x00, sizeof(VC_Platform_Stubs_Returns_t)); -} diff --git a/config/obc/cpd/target/apps/vc/unit_test/vc_dev_io_v4l_test/vc_custom_device_test_utils.h b/config/obc/cpd/target/apps/vc/unit_test/vc_dev_io_v4l_test/vc_custom_device_test_utils.h deleted file mode 100644 index 92c1f88d2..000000000 --- a/config/obc/cpd/target/apps/vc/unit_test/vc_dev_io_v4l_test/vc_custom_device_test_utils.h +++ /dev/null @@ -1,61 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ - -#ifndef VC_CUSTOM_DEVICE_TEST_UTILS_H -#define VC_CUSTOM_DEVICE_TEST_UTILS_H - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * Includes - */ - -#include "vc_dev_io_v4l.h" - -extern VC_AppCustomDevice_t VC_AppCustomDevice; - -/* - * Function Definitions - */ - -void VC_Custom_Device_Test_Setup(void); -void VC_Custom_Device_Test_TearDown(void); - - -#ifdef __cplusplus -} -#endif - -#endif /* VC_CUSTOM_DEVICE_TEST_UTILS_H */ diff --git a/config/obc/cpd/target/apps/vc/unit_test/vc_platform_stubs/vc_platform_stubs.c b/config/obc/cpd/target/apps/vc/unit_test/vc_platform_stubs/vc_platform_stubs.c deleted file mode 100644 index e2887ad31..000000000 --- a/config/obc/cpd/target/apps/vc/unit_test/vc_platform_stubs/vc_platform_stubs.c +++ /dev/null @@ -1,270 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ - -#include -#include -#include -#include -#include -#include -#include - -#include "vc_platform_stubs.h" -#include "vc_platform_cfg.h" - -int enable_wrappers = 0; - -int __real_open(char *filename, int access, int permission); -int __real_close(int fildes); -int __real_ioctl(int fh, int request, void *arg); -int __real_select(int nfds, fd_set *readfds, fd_set *writefds, - fd_set *exceptfds, struct timeval *timeout); -int __real_socket(int domain, int type, int protocol); -int __real_bind(int sockfd, const struct sockaddr *addr, socklen_t addrlen); -int __real_sendto(int sockfd, const void *buf, size_t len, int flags, - const struct sockaddr *dest_addr, socklen_t addrlen); -ssize_t __real_recv(int s, void *buf, size_t len, int flags); - - -VC_Platform_Stubs_Returns_t VC_Platform_Stubs_Returns = {0}; - - -int __wrap_ioctl(int fh, int request, void *arg) -{ - int returnCode = 0; - - if(enable_wrappers == 0) - { - returnCode = __real_ioctl(fh, request, arg); - } - else - { - if (VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Errno) - { - errno = VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Errno_Value; - } - if (VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Struct) - { - switch(request) - { - case VIDIOC_QUERYCAP: - if(1 == VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Struct) - { - ((struct v4l2_capability *)arg)->capabilities = VC_V4L_BUFFER_TYPE; - } - if(2 == VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Struct) - { - ((struct v4l2_capability *)arg)->capabilities = (VC_V4L_BUFFER_TYPE + - V4L2_CAP_STREAMING); - } - break; - case VIDIOC_S_FMT: - ((struct v4l2_format *)arg)->fmt.pix.pixelformat = VC_V4L_VIDEO_FORMAT; - ((struct v4l2_format *)arg)->fmt.pix.width = VC_FRAME_WIDTH; - ((struct v4l2_format *)arg)->fmt.pix.height = VC_FRAME_HEIGHT; - ((struct v4l2_format *)arg)->fmt.pix.sizeimage = VC_MAX_BUFFER_SIZE; - break; - case VIDIOC_REQBUFS: - ((struct v4l2_requestbuffers *)arg)->count = VC_V4L_BUFFER_REQUEST; - case VIDIOC_DQBUF: - if(1 == VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Struct) - { - ((struct v4l2_buffer *)arg)->bytesused = VC_MAX_PACKET_SIZE; - } - if(2 == VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Struct) - { - ((struct v4l2_buffer *)arg)->bytesused = (VC_MAX_PACKET_SIZE + 1); - } - default: - break; - } - } - - if (1 == VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_CallCount) - { - returnCode = VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Return1; - } - else if (2 == VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_CallCount) - { - returnCode = VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Return2; - } - else - { - returnCode = VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Return; - } - - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_CallCount++; - } - return returnCode; -} - - -int __wrap_open(char *filename, int access, int permission) -{ - int returnCode = 0; - - if(enable_wrappers == 0) - { - returnCode = __real_open(filename, access, permission); - } - else - { - if (VC_Platform_Stubs_Returns.VC_Wrap_Open_Errno) - { - errno = VC_Platform_Stubs_Returns.VC_Wrap_Open_Errno_Value; - } - returnCode = VC_Platform_Stubs_Returns.VC_Wrap_Open_Return; - } - return returnCode; -} - - -int __wrap_close(int fildes) -{ - int returnCode = 0; - - if(enable_wrappers == 0) - { - returnCode = __real_close(fildes); - } - else - { - returnCode = VC_Platform_Stubs_Returns.VC_Wrap_Close_Return; - } - return returnCode; -} - - -int __wrap_select(int nfds, fd_set *readfds, fd_set *writefds, - fd_set *exceptfds, struct timeval *timeout) -{ - int returnCode = 0; - if(enable_wrappers == 0) - { - returnCode = __real_select(nfds, readfds, writefds, exceptfds, timeout); - } - else - { - if (VC_Platform_Stubs_Returns.VC_Wrap_Select_Errno) - { - errno = VC_Platform_Stubs_Returns.VC_Wrap_Select_Errno_Value; - } - returnCode = VC_Platform_Stubs_Returns.VC_Wrap_Select_Return; - } - return returnCode; -} - - -int __wrap_socket(int domain, int type, int protocol) -{ - int returnCode = 0; - if(enable_wrappers == 0) - { - returnCode = __real_socket(domain, type, protocol); - } - else - { - if (VC_Platform_Stubs_Returns.VC_Wrap_Socket_Errno) - { - errno = VC_Platform_Stubs_Returns.VC_Wrap_Socket_Errno_Value; - } - returnCode = VC_Platform_Stubs_Returns.VC_Wrap_Socket_Return; - } - return returnCode; -} - - -ssize_t __wrap_recv(int s, void *buf, size_t len, int flags) -{ - ssize_t returnCode = 0; - if(enable_wrappers == 0) - { - returnCode = __real_recv(s, buf, len, flags); - } - else - { - if (VC_Platform_Stubs_Returns.VC_Wrap_Recv_Errno) - { - errno = VC_Platform_Stubs_Returns.VC_Wrap_Recv_Errno_Value; - } - if (1 == VC_Platform_Stubs_Returns.VC_Wrap_Recv_CallCount) - { - returnCode = VC_Platform_Stubs_Returns.VC_Wrap_Recv_Return1; - } - else - { - returnCode = VC_Platform_Stubs_Returns.VC_Wrap_Recv_Return; - } - - VC_Platform_Stubs_Returns.VC_Wrap_Recv_CallCount++; - } - return returnCode; -} - - -int __wrap_bind(int sockfd, const struct sockaddr *addr, socklen_t addrlen) -{ - int returnCode = 0; - if(enable_wrappers == 0) - { - returnCode = __real_bind(sockfd, addr, addrlen); - } - else - { - if (VC_Platform_Stubs_Returns.VC_Wrap_Bind_Errno) - { - errno = VC_Platform_Stubs_Returns.VC_Wrap_Bind_Errno_Value; - } - returnCode = VC_Platform_Stubs_Returns.VC_Wrap_Bind_Return; - } - return returnCode; -} - -int __wrap_sendto(int sockfd, const void *buf, size_t len, int flags, - const struct sockaddr *dest_addr, socklen_t addrlen) -{ - int returnCode = 0; - if(enable_wrappers == 0) - { - returnCode = __real_sendto(sockfd, buf, len, flags, dest_addr, addrlen); - } - else - { - if (VC_Platform_Stubs_Returns.VC_Wrap_SendTo_Errno) - { - errno = VC_Platform_Stubs_Returns.VC_Wrap_SendTo_Errno_Value; - } - returnCode = VC_Platform_Stubs_Returns.VC_Wrap_SendTo_Return; - } - return returnCode; -} diff --git a/config/obc/cpd/target/apps/vc/unit_test/vc_platform_stubs/vc_platform_stubs.h b/config/obc/cpd/target/apps/vc/unit_test/vc_platform_stubs/vc_platform_stubs.h deleted file mode 100644 index 66dada74f..000000000 --- a/config/obc/cpd/target/apps/vc/unit_test/vc_platform_stubs/vc_platform_stubs.h +++ /dev/null @@ -1,84 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ - -#ifndef VC_PLATFORM_STUBS_H -#define VC_PLATFORM_STUBS_H - -#ifdef __cplusplus -extern "C" { -#endif - -#include - - -typedef struct -{ - int VC_Wrap_Ioctl_Return; - int VC_Wrap_Ioctl_Return1; - int VC_Wrap_Ioctl_Return2; - int VC_Wrap_Ioctl_Errno; - int VC_Wrap_Ioctl_Errno_Value; - int VC_Wrap_Ioctl_Struct; - int VC_Wrap_Open_Return; - int VC_Wrap_Open_Errno; - int VC_Wrap_Open_Errno_Value; - int VC_Wrap_Close_Return; - int VC_Wrap_Select_Return; - int VC_Wrap_Select_Errno; - int VC_Wrap_Select_Errno_Value; - int VC_Wrap_Socket_Return; - int VC_Wrap_Socket_Errno; - int VC_Wrap_Socket_Errno_Value; - int VC_Wrap_Bind_Return; - int VC_Wrap_Bind_Errno; - int VC_Wrap_Bind_Errno_Value; - int VC_Wrap_SendTo_Return; - int VC_Wrap_SendTo_Errno; - int VC_Wrap_SendTo_Errno_Value; - int VC_Wrap_Ioctl_CallCount; - int VC_Wrap_Recv_Return; - int VC_Wrap_Recv_Return1; - int VC_Wrap_Recv_Errno; - int VC_Wrap_Recv_Errno_Value; - int VC_Wrap_Recv_CallCount; -} VC_Platform_Stubs_Returns_t; - - -extern VC_Platform_Stubs_Returns_t VC_Platform_Stubs_Returns; - - -#ifdef __cplusplus -} -#endif - -#endif /* VC_PLATFORM_STUBS_H */ diff --git a/config/obc/cpd/target/apps/vc/unit_test/vc_transmit_udp_test/vc_app_custom_transmit_test.c b/config/obc/cpd/target/apps/vc/unit_test/vc_transmit_udp_test/vc_app_custom_transmit_test.c deleted file mode 100644 index 8d6672cb5..000000000 --- a/config/obc/cpd/target/apps/vc/unit_test/vc_transmit_udp_test/vc_app_custom_transmit_test.c +++ /dev/null @@ -1,626 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ - -#include "vc_app_custom_transmit_test.h" -#include "vc_custom_transmit_test_utils.h" -#include "vc_platform_stubs.h" -#include "vc_platform_cfg.h" -#include -#include -#include - -#include "uttest.h" -#include "ut_osapi_stubs.h" -#include "ut_cfe_sb_stubs.h" -#include "ut_cfe_sb_hooks.h" -#include "ut_cfe_es_stubs.h" -#include "ut_cfe_es_hooks.h" -#include "ut_cfe_evs_stubs.h" -#include "ut_cfe_evs_hooks.h" -#include "ut_cfe_time_stubs.h" -#include "ut_cfe_psp_memutils_stubs.h" -#include "ut_cfe_tbl_stubs.h" -#include "ut_cfe_fs_stubs.h" -#include "ut_cfe_time_stubs.h" - - -/************************************************************************** - * Tests for Custom Transmit Layer - **************************************************************************/ - -/************************************************************************** - * Tests for VC_EnableChannel() - **************************************************************************/ - -/** - * Test VC_EnableChannel() through VC_Init_CustomTransmitters - * fail already initialized error - */ -void Test_VC_Custom_InitTransmit_AlreadyInitialized(void) -{ - int32 result = 0; - int32 expected = -1; - - char returnString[128]; - snprintf(returnString, 128, "VC UDP for channel %u already enabled.", 0); - - /* Set test channel 0 to enabled */ - VC_AppCustomData.Channel[0].Mode = VC_CHANNEL_ENABLED; - - /* Set a socket file descriptor to a non 0 value */ - VC_AppCustomData.Channel[0].SocketFd = 1; - - /* Call the function under test */ - result = VC_Init_CustomTransmitters(); - - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); - UtAssert_True(result == expected,"VC_Init_CustomTransmitters() did not return an error"); - - UtAssert_True(VC_AppCustomData.Channel[0].Mode == VC_CHANNEL_DISABLED, - "VC_Init_CustomTransmitters() did not set mode to disabled"); - UtAssert_EventSent(VC_SOCKET_ERR_EID, CFE_EVS_ERROR, returnString, - "VC_EnableChannel() failed to raise an event"); -} - -/** - * Test VC_EnableChannel() invalid channel id - */ -void Test_VC_Custom_InitTransmit_ChannelId(void) -{ - int32 result = 0; - int32 expected = -1; - - char returnString[128]; - snprintf(returnString, 128, "VC ChannelID (%u) invalid.", (VC_MAX_OUTPUT_CHANNELS + 1)); - - /* Set test channel 0 to enabled */ - VC_AppCustomData.Channel[0].Mode = VC_CHANNEL_ENABLED; - - /* Call the function under test */ - result = VC_EnableChannel((VC_MAX_OUTPUT_CHANNELS + 1)); - - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); - UtAssert_True(result == expected,"VC_Init_CustomTransmitters() did not return an error"); - UtAssert_EventSent(VC_SOCKET_ERR_EID, CFE_EVS_ERROR, returnString, - "VC_EnableChannel() failed to raise an event"); -} - -/** - * Test VC_EnableChannel() through VC_Init_CustomTransmitters - * fail socket creation - */ -void Test_VC_Custom_InitTransmit_Socket(void) -{ - int32 result = 0; - int32 expected = -1; - - char returnString[128]; - snprintf(returnString, 128, "VC socket errno: %i on channel %u", 8, 0); - - /* Set test channel 0 to enabled */ - VC_AppCustomData.Channel[0].Mode = VC_CHANNEL_ENABLED; - - /* Set socket call to fail */ - VC_Platform_Stubs_Returns.VC_Wrap_Socket_Return = -1; - - /* Set errno for socket call */ - VC_Platform_Stubs_Returns.VC_Wrap_Socket_Errno = 1; - VC_Platform_Stubs_Returns.VC_Wrap_Socket_Errno_Value = 8; - - /* Call the function under test */ - result = VC_Init_CustomTransmitters(); - - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); - UtAssert_True(result == expected,"VC_Init_CustomTransmitters() did not return an error"); - UtAssert_True(VC_AppCustomData.Channel[0].SocketFd == -1, - "VC_EnableChannel() failed to return an error"); - UtAssert_True(VC_AppCustomData.Channel[0].Mode == VC_CHANNEL_DISABLED, - "VC_Init_CustomTransmitters() did not set mode to disabled"); - UtAssert_EventSent(VC_SOCKET_ERR_EID, CFE_EVS_ERROR, returnString, - "VC_EnableChannel() failed to raise an event"); -} - -/** - * Test VC_EnableChannel() through VC_Init_CustomTransmitters - * fail invalid address - */ -void Test_VC_Custom_InitTransmit_InvalidAddress(void) -{ - int32 result = 0; - int32 expected = -1; - - char returnString[128]; - snprintf(returnString, 128, "VC inet_aton errno: %i on channel %u", 88, 0); - - /* Set test channel 0 to enabled */ - VC_AppCustomData.Channel[0].Mode = VC_CHANNEL_ENABLED; - - /* Set an invalid address for inet_aton */ - strcpy(VC_AppCustomData.Channel[0].MyIP, "test"); - - /* Call the function under test */ - result = VC_Init_CustomTransmitters(); - - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); - UtAssert_True(result == expected,"VC_Init_CustomTransmitters() did not return an error"); - UtAssert_True(VC_AppCustomData.Channel[0].Mode == VC_CHANNEL_DISABLED, - "VC_Init_CustomTransmitters() did not set mode to disabled"); - UtAssert_EventSent(VC_SOCKET_ERR_EID, CFE_EVS_ERROR, returnString, - "VC_EnableChannel() failed to raise an event"); -} - -/** - * Test VC_EnableChannel() through VC_Init_CustomTransmitters - * fail bind - */ -void Test_VC_Custom_InitTransmit_Bind(void) -{ - int32 result = 0; - int32 expected = -1; - - char returnString[128]; - snprintf(returnString, 128, "VC bind errno: %i on channel %u", 8, 0); - - /* Set test channel 0 to enabled */ - VC_AppCustomData.Channel[0].Mode = VC_CHANNEL_ENABLED; - - /* Set an valid address for inet_aton */ - strcpy(VC_AppCustomData.Channel[0].MyIP, "1.1.1.1"); - - /* Set socket call to fail */ - VC_Platform_Stubs_Returns.VC_Wrap_Bind_Return = -1; - - /* Set errno for socket call */ - VC_Platform_Stubs_Returns.VC_Wrap_Bind_Errno = 1; - VC_Platform_Stubs_Returns.VC_Wrap_Bind_Errno_Value = 8; - - /* Call the function under test */ - result = VC_Init_CustomTransmitters(); - - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); - UtAssert_True(result == expected,"VC_Init_CustomTransmitters() did not return an error"); - UtAssert_True(VC_AppCustomData.Channel[0].Mode == VC_CHANNEL_DISABLED, - "VC_Init_CustomTransmitters() did not set mode to disabled"); - UtAssert_EventSent(VC_SOCKET_ERR_EID, CFE_EVS_ERROR, returnString, - "VC_EnableChannel() failed to raise an event"); -} - -/** - * Test VC_EnableChannel() through VC_Init_CustomTransmitters nominal - */ -void Test_VC_Custom_InitTransmit_Nominal(void) -{ - int32 result = -1; - int32 expected = 0; - - char returnString[128]; - snprintf(returnString, 128, "VC UDP output enabled channel %u to %s:%u", 0, "test",0); - - /* Set test channel 0 to enabled */ - VC_AppCustomData.Channel[0].Mode = VC_CHANNEL_ENABLED; - - /* Set an valid address for inet_aton */ - strcpy(VC_AppCustomData.Channel[0].MyIP, "1.1.1.1"); - - strcpy(VC_AppCustomData.Channel[0].DestIP, "test"); - VC_AppCustomData.Channel[0].DestPort = 0; - - /* Call the function under test */ - result = VC_Init_CustomTransmitters(); - - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); - UtAssert_True(result == expected,"VC_Init_CustomTransmitters() did not succeed"); - UtAssert_True(VC_AppCustomData.Channel[0].Mode == VC_CHANNEL_ENABLED, - "VC_Init_CustomTransmitters() did not mode to disabled"); - UtAssert_EventSent(VC_CHA_INF_EID, CFE_EVS_INFORMATION, returnString, - "VC_EnableChannel() failed to raise an event"); -} - -/************************************************************************** - * Tests for VC_Transmit_InitData() - **************************************************************************/ - -/** - * Test VC_Transmit_InitData() nominal - * Note: currently no way to fail this function - */ -void Test_VC_Transmit_InitData_Nominal(void) -{ - int32 result = -1; - int32 expected = CFE_SUCCESS; - - /* Call the function under test */ - result = VC_Transmit_InitData(); - - /* Verify the results */ - UtAssert_True(result == expected,"VC_Transmit_InitData() did not succeed"); -} - - -/************************************************************************** - * Tests for VC_Init_CustomTransmitters() - **************************************************************************/ - -/************************************************************************** - * Tests for VC_Transmit_Init() - **************************************************************************/ - - /** - * Test VC_Transmit_Init() fail VC_Init_CustomTransmitters - * see reuse (VC_EnableChannel() invalid channel id) - */ -void Test_VC_Custom_TransmitInit_Fail(void) -{ - boolean result = TRUE; - boolean expected = FALSE; - - char returnString[128]; - snprintf(returnString, 128, "VC UDP for channel %u already enabled.", 0); - char returnString1[128]; - snprintf(returnString1, 128, "VC_Transmit_Init Failed"); - - /* Set test channel 0 to enabled */ - VC_AppCustomData.Channel[0].Mode = VC_CHANNEL_ENABLED; - - /* Set a socket file descriptor to a non 0 value */ - VC_AppCustomData.Channel[0].SocketFd = 1; - - /* Call the function under test */ - result = VC_Transmit_Init(); - - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==2,"Event Count = 2"); - UtAssert_True(result == expected,"VC_Init_CustomTransmitters() did not return an error"); - UtAssert_True(VC_AppCustomData.Channel[0].Mode == VC_CHANNEL_DISABLED, - "VC_Init_CustomTransmitters() did not set mode to disabled"); - UtAssert_EventSent(VC_SOCKET_ERR_EID, CFE_EVS_ERROR, returnString, - "VC_EnableChannel() failed to raise an event"); - UtAssert_EventSent(VC_SOCKET_ERR_EID, CFE_EVS_ERROR, returnString1, - "VC_EnableChannel() failed to raise an event"); - -} - -/** - * Test VC_Transmit_Init() nominal - */ -void Test_VC_Custom_TransmitInit_Nominal(void) -{ - boolean result = FALSE; - boolean expected = TRUE; - - char returnString[128]; - snprintf(returnString, 128, "VC UDP output enabled channel %u to %s:%u", 0, "test",0); - - /* Set test channel 0 to enabled */ - VC_AppCustomData.Channel[0].Mode = VC_CHANNEL_ENABLED; - - /* Set an valid address for inet_aton */ - strcpy(VC_AppCustomData.Channel[0].MyIP, "1.1.1.1"); - - strcpy(VC_AppCustomData.Channel[0].DestIP, "test"); - VC_AppCustomData.Channel[0].DestPort = 0; - - /* Call the function under test */ - result = VC_Transmit_Init(); - - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); - UtAssert_True(result == expected,"VC_Init_CustomTransmitters() did not succeed"); - UtAssert_True(VC_AppCustomData.Channel[0].Mode == VC_CHANNEL_ENABLED, - "VC_Init_CustomTransmitters() did not set mode to disabled"); - UtAssert_EventSent(VC_CHA_INF_EID, CFE_EVS_INFORMATION, returnString, - "VC_EnableChannel() failed to raise an event"); -} - -/************************************************************************** - * Tests for VC_SendData() - **************************************************************************/ - -/** - * Test VC_SendData() invalid channel id - */ -void Test_VC_Custom_SendData_ChannelId(void) -{ - int32 result = -1; - int32 expected = 0; - - /* Call the function under test */ - result = VC_SendData((VC_MAX_OUTPUT_CHANNELS + 1), "buffer", 77); - - UtAssert_True(result == expected,"VC_SendData() did not return the correct value"); -} - -/** - * Test VC_SendData() sendto fail - */ -void Test_VC_Custom_SendData_SendTo(void) -{ - int32 result = 0; - int32 expected = -1; - - /* Set test channel 0 to enabled */ - VC_AppCustomData.Channel[0].Mode = VC_CHANNEL_ENABLED; - - /* Set sendto call to fail */ - VC_Platform_Stubs_Returns.VC_Wrap_SendTo_Return = -1; - - /* Set errno for sendto call */ - VC_Platform_Stubs_Returns.VC_Wrap_SendTo_Errno = 1; - VC_Platform_Stubs_Returns.VC_Wrap_SendTo_Errno_Value = 8; - - /* Call the function under test */ - result = VC_SendData(0, "buffer", 77); - - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); - /* TODO currently failure does not disable channel. */ - //UtAssert_True(VC_AppCustomData.Channel[0].Mode == VC_CHANNEL_DISABLED, - //"VC_SendData() did not set mode to disabled"); - //UtAssert_True(result == expected,"VC_SendData() did not return the correct value"); - UtAssert_EventSent(VC_SOCKET_ERR_EID, CFE_EVS_ERROR, "", - "VC_SendData() failed to raise an event"); -} - -/** - * Test VC_SendData() sendto fail message too long - */ -void Test_VC_Custom_SendData_SendToTooLong(void) -{ - int32 result = 0; - int32 expected = -1; - - /* Set test channel 0 to enabled */ - VC_AppCustomData.Channel[0].Mode = VC_CHANNEL_ENABLED; - - /* Set sendto call to fail */ - VC_Platform_Stubs_Returns.VC_Wrap_SendTo_Return = -1; - - /* Set errno for sendto call */ - VC_Platform_Stubs_Returns.VC_Wrap_SendTo_Errno = 1; - VC_Platform_Stubs_Returns.VC_Wrap_SendTo_Errno_Value = 90; - - /* Call the function under test */ - result = VC_SendData(0, "buffer", 77); - - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); - /* TODO currently failure does not disable channel. */ - //UtAssert_True(result == expected,"VC_SendData() did not return the correct value"); - UtAssert_EventSent(VC_SOCKET_ERR_EID, CFE_EVS_ERROR, "", - "VC_SendData() failed to raise an event"); -} - -/** - * Test VC_SendData() nominal - */ -void Test_VC_Custom_SendData_Nominal(void) -{ - int32 result = -1; - int32 expected = 0; - - /* Set test channel 0 to enabled */ - VC_AppCustomData.Channel[0].Mode = VC_CHANNEL_ENABLED; - - /* Call the function under test */ - result = VC_SendData(0, "buffer", 77); - - UtAssert_True(result == expected,"VC_SendData() did not return the correct value"); -} - -/************************************************************************** - * Tests for VC_Address_Verification() - **************************************************************************/ - -/** - * Test VC_Address_Verification() nominal - */ -void Test_VC_Custom_AddressVerification_Nominal(void) -{ - boolean result = FALSE; - boolean expected = TRUE; - - result = VC_Address_Verification("1.1.1.1"); - - UtAssert_True(result == expected,"VC_Address_Verification() did not return the correct value"); -} - -/** - * Test VC_Address_Verification() fail - */ -void Test_VC_Custom_AddressVerification_Fail(void) -{ - boolean result = TRUE; - boolean expected = FALSE; - - result = VC_Address_Verification("test"); - - UtAssert_True(result == expected,"VC_Address_Verification() did not return the correct value"); -} - -/************************************************************************** - * Tests for VC_Update_Destination() - **************************************************************************/ - -/** - * Test VC_Update_Destination() nominal - */ -void Test_VC_Custom_UpdateDestination_Nominal(void) -{ - boolean result = FALSE; - boolean expected = TRUE; - - /* Set test channel 0 to enabled */ - VC_AppCustomData.Channel[0].Mode = VC_CHANNEL_ENABLED; - - result = VC_Update_Destination("test", 5000); - - UtAssert_True(result == expected,"VC_Update_Destination() did not return the correct value"); - UtAssert_StrCmp(VC_AppCustomData.Channel[0].DestIP, "test", - "VC_Update_Destination() did not set a correct value"); - UtAssert_True(VC_AppCustomData.Channel[0].DestPort == 5000, - "VC_Update_Destination() did not set a correct value"); - -} - -/** - * Test VC_Update_Destination() fail - */ -void Test_VC_Custom_UpdateDestination_Fail(void) -{ - /* No way to fail strncpy in update destination at this time. */ - //boolean result = TRUE; - //boolean expected = FALSE; - - //result = VC_Update_Destination("test", 5000); - - //UtAssert_True(result == expected,"VC_Update_Destination() did not return the correct value"); -} - -/************************************************************************** - * Tests for VC_DisableChannel() - **************************************************************************/ - -/** - * Test VC_DisableChannel() fail - */ -void Test_VC_Custom_DisableChannel_Fail(void) -{ - int32 result = 0; - int32 expected = -1; - - result = VC_DisableChannel(0); - - UtAssert_True(result == expected,"VC_DisableChannel() did not return the correct value"); -} - -/** - * Test VC_DisableChannel() through VC_CleanupCustom nominal - */ -void Test_VC_Custom_DisableChannel_Nominal(void) -{ - int32 result = -1; - int32 expected = 0; - - VC_AppCustomData.Channel[0].Mode = VC_CHANNEL_ENABLED; - - result = VC_CleanupCustom(); - - UtAssert_True(result == expected,"VC_DisableChannel() did not return the correct value"); - -} - -/************************************************************************** - * Tests for VC_CleanupCustom() - **************************************************************************/ - -/** - * Test VC_CleanupCustom() fail - * No current way to fail cleanup custom since mode check is the only - * error checking inside of disable channel. Error checking close return - * value will enable a fail condition for cleanup custom - */ - - -/************************************************************************** - * Tests for VC_Transmit_Uninit() - **************************************************************************/ - - /** - * Test VC_Transmit_Uninit() fail - * No current way to fail cleanup custom since mode check is the only - * error checking inside of disable channel. Error checking close return - * value will enable a fail condition for cleanup custom - */ - -/** - * Test VC_Transmit_Uninit() nominal - */ -void Test_VC_Custom_TransmitUninit_Nominal(void) -{ - boolean result = FALSE; - boolean expected = TRUE; - - VC_AppCustomData.Channel[0].Mode = VC_CHANNEL_ENABLED; - - result = VC_Transmit_Uninit(); - - UtAssert_True(result == expected,"VC_Transmit_Uninit() did not return the correct value"); - -} - - -/************************************************************************** - * Rollup Test Cases - **************************************************************************/ -void VC_Custom_App_Transmit_Test_AddTestCases(void) -{ -/************************************************************************** - * Tests for Custom Transmit Layer - **************************************************************************/ - UtTest_Add(Test_VC_Custom_InitTransmit_AlreadyInitialized, VC_Custom_Transmit_Test_Setup, - VC_Custom_Transmit_Test_TearDown, "Test_VC_Custom_InitTransmit_AlreadyInitialized"); - UtTest_Add(Test_VC_Custom_InitTransmit_ChannelId, VC_Custom_Transmit_Test_Setup, - VC_Custom_Transmit_Test_TearDown, "Test_VC_Custom_InitTransmit_ChannelId"); - UtTest_Add(Test_VC_Custom_InitTransmit_Socket, VC_Custom_Transmit_Test_Setup, - VC_Custom_Transmit_Test_TearDown, "Test_VC_Custom_InitTransmit_Socket"); - UtTest_Add(Test_VC_Custom_InitTransmit_InvalidAddress, VC_Custom_Transmit_Test_Setup, - VC_Custom_Transmit_Test_TearDown, "Test_VC_Custom_InitTransmit_InvalidAddress"); - UtTest_Add(Test_VC_Custom_InitTransmit_Bind, VC_Custom_Transmit_Test_Setup, - VC_Custom_Transmit_Test_TearDown, "Test_VC_Custom_InitTransmit_Bind"); - UtTest_Add(Test_VC_Custom_InitTransmit_Nominal, VC_Custom_Transmit_Test_Setup, - VC_Custom_Transmit_Test_TearDown, "Test_VC_Custom_InitTransmit_Nominal"); - UtTest_Add(Test_VC_Transmit_InitData_Nominal, VC_Custom_Transmit_Test_Setup, - VC_Custom_Transmit_Test_TearDown, "Test_VC_Transmit_InitData_Nominal"); - UtTest_Add(Test_VC_Custom_TransmitInit_Fail, VC_Custom_Transmit_Test_Setup, - VC_Custom_Transmit_Test_TearDown, "Test_VC_Custom_TransmitInit_Fail"); - UtTest_Add(Test_VC_Custom_TransmitInit_Nominal, VC_Custom_Transmit_Test_Setup, - VC_Custom_Transmit_Test_TearDown, "Test_VC_Custom_TransmitInit_Nominal"); - UtTest_Add(Test_VC_Custom_SendData_ChannelId, VC_Custom_Transmit_Test_Setup, - VC_Custom_Transmit_Test_TearDown, "Test_VC_Custom_SendData_ChannelId"); - UtTest_Add(Test_VC_Custom_SendData_SendTo, VC_Custom_Transmit_Test_Setup, - VC_Custom_Transmit_Test_TearDown, "Test_VC_Custom_SendData_SendTo"); - UtTest_Add(Test_VC_Custom_SendData_SendToTooLong, VC_Custom_Transmit_Test_Setup, - VC_Custom_Transmit_Test_TearDown, "Test_VC_Custom_SendData_SendToTooLong"); - UtTest_Add(Test_VC_Custom_SendData_Nominal, VC_Custom_Transmit_Test_Setup, - VC_Custom_Transmit_Test_TearDown, "Test_VC_Custom_SendData_Nominal"); - UtTest_Add(Test_VC_Custom_AddressVerification_Nominal, VC_Custom_Transmit_Test_Setup, - VC_Custom_Transmit_Test_TearDown, "Test_VC_Custom_AddressVerification_Nominal"); - UtTest_Add(Test_VC_Custom_AddressVerification_Fail, VC_Custom_Transmit_Test_Setup, - VC_Custom_Transmit_Test_TearDown, "Test_VC_Custom_AddressVerification_Fail"); - UtTest_Add(Test_VC_Custom_UpdateDestination_Nominal, VC_Custom_Transmit_Test_Setup, - VC_Custom_Transmit_Test_TearDown, "Test_VC_Custom_UpdateDestination_Nominal"); - UtTest_Add(Test_VC_Custom_UpdateDestination_Fail, VC_Custom_Transmit_Test_Setup, - VC_Custom_Transmit_Test_TearDown, "Test_VC_Custom_UpdateDestination_Fail"); - UtTest_Add(Test_VC_Custom_DisableChannel_Fail, VC_Custom_Transmit_Test_Setup, - VC_Custom_Transmit_Test_TearDown, "Test_VC_Custom_DisableChannel_Fail"); - UtTest_Add(Test_VC_Custom_DisableChannel_Nominal, VC_Custom_Transmit_Test_Setup, - VC_Custom_Transmit_Test_TearDown, "Test_VC_Custom_DisableChannel_Nominal"); - UtTest_Add(Test_VC_Custom_TransmitUninit_Nominal, VC_Custom_Transmit_Test_Setup, - VC_Custom_Transmit_Test_TearDown, "Test_VC_Custom_TransmitUninit_Nominal"); -} diff --git a/config/obc/cpd/target/apps/vc/unit_test/vc_transmit_udp_test/vc_app_custom_transmit_test.h b/config/obc/cpd/target/apps/vc/unit_test/vc_transmit_udp_test/vc_app_custom_transmit_test.h deleted file mode 100644 index 732cc8812..000000000 --- a/config/obc/cpd/target/apps/vc/unit_test/vc_transmit_udp_test/vc_app_custom_transmit_test.h +++ /dev/null @@ -1,48 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ - -#ifndef VC_APP_CUSTOM_TRANSMIT_TEST_H -#define VC_APP_CUSTOM_TRANSMIT_TEST_H - -#ifdef __cplusplus -extern "C" { -#endif - -void VC_Custom_App_Transmit_Test_AddTestCases(void); - - -#ifdef __cplusplus -} -#endif - -#endif /* VC_APP_CUSTOM_TRANSMIT_TEST_H */ diff --git a/config/obc/cpd/target/apps/vc/unit_test/vc_transmit_udp_test/vc_custom_transmit_test_utils.c b/config/obc/cpd/target/apps/vc/unit_test/vc_transmit_udp_test/vc_custom_transmit_test_utils.c deleted file mode 100644 index 5c3a803bb..000000000 --- a/config/obc/cpd/target/apps/vc/unit_test/vc_transmit_udp_test/vc_custom_transmit_test_utils.c +++ /dev/null @@ -1,76 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ - -#include "vc_custom_transmit_test_utils.h" -#include "vc_platform_stubs.h" - -#include "ut_cfe_evs_hooks.h" -#include "ut_cfe_time_stubs.h" -#include "ut_cfe_psp_memutils_stubs.h" -#include "ut_cfe_tbl_stubs.h" -#include "ut_cfe_tbl_hooks.h" -#include "ut_cfe_fs_stubs.h" -#include "ut_cfe_time_stubs.h" -#include "ut_osapi_stubs.h" -#include "ut_osfileapi_stubs.h" -#include "ut_cfe_sb_stubs.h" -#include "ut_cfe_es_stubs.h" -#include "ut_cfe_evs_stubs.h" - -#include - -/* - * Function Definitions - */ - -void VC_Custom_Transmit_Test_Setup(void) -{ - /* initialize test environment to default state for every test */ - - CFE_PSP_MemSet(&VC_AppCustomData, 0x00, sizeof(VC_AppCustomData_t)); - - Ut_CFE_EVS_Reset(); - Ut_CFE_FS_Reset(); - Ut_CFE_TIME_Reset(); - Ut_CFE_TBL_Reset(); - Ut_CFE_SB_Reset(); - Ut_CFE_ES_Reset(); - Ut_OSAPI_Reset(); - Ut_OSFILEAPI_Reset(); -} - -void VC_Custom_Transmit_Test_TearDown(void) { - - CFE_PSP_MemSet(&VC_AppCustomData, 0x00, sizeof(VC_AppCustomData_t)); - CFE_PSP_MemSet(&VC_Platform_Stubs_Returns, 0x00, sizeof(VC_Platform_Stubs_Returns_t)); -} diff --git a/config/obc/cpd/target/apps/vc/unit_test/vc_transmit_udp_test/vc_custom_transmit_test_utils.h b/config/obc/cpd/target/apps/vc/unit_test/vc_transmit_udp_test/vc_custom_transmit_test_utils.h deleted file mode 100644 index 81cd02415..000000000 --- a/config/obc/cpd/target/apps/vc/unit_test/vc_transmit_udp_test/vc_custom_transmit_test_utils.h +++ /dev/null @@ -1,61 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ - -#ifndef VC_CUSTOM_TRANSMIT_TEST_UTILS_H -#define VC_CUSTOM_TRANSMIT_TEST_UTILS_H - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * Includes - */ - -#include "vc_transmit_udp.h" - - -extern VC_AppCustomData_t VC_AppCustomData; -/* - * Function Definitions - */ - -void VC_Custom_Transmit_Test_Setup(void); -void VC_Custom_Transmit_Test_TearDown(void); - - -#ifdef __cplusplus -} -#endif - -#endif /* VC_CUSTOM_TRANSMIT_TEST_UTILS_H */ diff --git a/config/obc/cpd/target/cfe_es_startup.scr b/config/obc/cpd/target/cfe_es_startup.scr index e4ce15b4f..1cace6e37 100644 --- a/config/obc/cpd/target/cfe_es_startup.scr +++ b/config/obc/cpd/target/cfe_es_startup.scr @@ -12,14 +12,11 @@ CFE_APP, /cf/apps/CI.so, CI_AppMain, CI, 115, 327680, 0x0, 0, CFE_APP, /cf/apps/TO.so, TO_AppMain, TO, 124, 327680, 0x0, 0, 2; CFE_APP, /cf/apps/CF.so, CF_AppMain, CF, 157, 327680, 0x0, 0, 2; CFE_APP, /cf/apps/BAT.so, BAT_AppMain, BAT, 106, 327680, 0x0, 0, 2; -CFE_APP, /cf/apps/DS.so, DS_AppMain, DS, 190, 327680, 0x0, 0, 2; CFE_APP, /cf/apps/FM.so, FM_AppMain, FM, 163, 327680, 0x0, 0, 2; -CFE_APP, /cf/apps/HK.so, HK_AppMain, HK, 166, 327680, 0x0, 0, 2; CFE_APP, /cf/apps/LC.so, LC_AppMain, LC, 178, 327680, 0x0, 0, 2; CFE_APP, /cf/apps/MM.so, MM_AppMain, MM, 172, 327680, 0x0, 0, 2; CFE_APP, /cf/apps/SC.so, SC_AppMain, SC, 175, 327680, 0x0, 0, 2; CFE_APP, /cf/apps/MD.so, MD_AppMain, MD, 169, 327680, 0x0, 0, 2; -CFE_APP, /cf/apps/EA.so, EA_AppMain, EA, 184, 327680, 0x0, 0, 2; CFE_APP, /cf/apps/PE.so, PE_AppMain, PE, 76, 327680, 0x0, 0, 4; CFE_APP, /cf/apps/QAE.so, QAE_AppMain, QAE, 58, 327680, 0x0, 0, 4; CFE_APP, /cf/apps/MPC.so, MPC_AppMain, MPC, 61, 327680, 0x0, 0, 4; @@ -30,7 +27,6 @@ CFE_APP, /cf/apps/RCIN.so, RCIN_AppMain, RCIN, 88, 327680, 0x0, 0, CFE_APP, /cf/apps/LD.so, LD_AppMain, LD, 73, 327680, 0x0, 0, 4; CFE_APP, /cf/apps/RGBLED.so, RGBLED_AppMain, RGBLED, 151, 327680, 0x0, 0, 2; CFE_APP, /cf/apps/SCH.so, SCH_AppMain, SCH, 34, 40960, 0x0, 0, 2; -CFE_APP, /cf/apps/PRM.so, PRM_AppMain, PRM, 80, 40960, 0x0, 0, 2; !CFE_LIB, /cf/apps/schlib.so, SCH_LibInit, SCH_LIB, 0, 0, 0x0, 0, 2; CFE_APP, /cf/apps/VC.so, VC_AppMain, VC, 181, 327680, 0x0, 0, 2; CFE_APP, /cf/apps/FLOW.so, FLOW_AppMain, FLOW, 80, 327680, 0x0, 0, 2; diff --git a/config/obc/ppd/target/CMakeLists.txt b/config/obc/ppd/target/CMakeLists.txt index 935c6d9ef..e252da19d 100644 --- a/config/obc/ppd/target/CMakeLists.txt +++ b/config/obc/ppd/target/CMakeLists.txt @@ -136,146 +136,3 @@ buildliner_add_app( ${CMAKE_CURRENT_SOURCE_DIR}/apps/ea/src/ea_custom.c ) -buildliner_add_app( - vc - DEFINITION ${PROJECT_SOURCE_DIR}/apps/vc/fsw/for_build - CONFIG ${CMAKE_CURRENT_SOURCE_DIR}/apps/vc - CONFIG_SOURCES - ${CMAKE_CURRENT_SOURCE_DIR}/apps/vc/src/vc_dev_io_v4l/vc_dev_io_v4l.c - ${CMAKE_CURRENT_SOURCE_DIR}/apps/vc/src/vc_transmit_udp/vc_transmit_udp.c - ${CMAKE_CURRENT_SOURCE_DIR}/apps/vc/src/vc_custom.c -) - -buildliner_add_app( - amc - DEFINITION ${PROJECT_SOURCE_DIR}/apps/amc/fsw/for_build - CONFIG ${CMAKE_CURRENT_SOURCE_DIR}/apps/amc - CONFIG_SOURCES - ${CMAKE_CURRENT_SOURCE_DIR}/apps/amc/amc_custom.cpp -) - -buildliner_add_app( - mac - DEFINITION ${PROJECT_SOURCE_DIR}/apps/mac/fsw/for_build - CONFIG ${CMAKE_CURRENT_SOURCE_DIR}/apps/mac -) - -buildliner_add_app( - ulr - DEFINITION ${PROJECT_SOURCE_DIR}/apps/ulr/fsw/for_build - CONFIG ${CMAKE_CURRENT_SOURCE_DIR}/apps/ulr - CONFIG_SOURCES - ${CMAKE_CURRENT_SOURCE_DIR}/apps/ulr/ulr_custom.cpp -) - -buildliner_add_app( - rgbled - DEFINITION ${PROJECT_SOURCE_DIR}/apps/rgbled/fsw/for_build - CONFIG ${CMAKE_CURRENT_SOURCE_DIR}/apps/rgbled - CONFIG_SOURCES - ${CMAKE_CURRENT_SOURCE_DIR}/apps/rgbled/src/rgbled_custom.c -) - -buildliner_add_app( - ms5611 - DEFINITION ${PROJECT_SOURCE_DIR}/apps/ms5611/fsw/for_build - CONFIG ${CMAKE_CURRENT_SOURCE_DIR}/apps/ms5611 - CONFIG_SOURCES - ${CMAKE_CURRENT_SOURCE_DIR}/apps/ms5611/src/ms5611_custom.c -) - -buildliner_add_app( - gps - DEFINITION ${PROJECT_SOURCE_DIR}/apps/gps/fsw/for_build - CONFIG ${CMAKE_CURRENT_SOURCE_DIR}/apps/gps - CONFIG_SOURCES - ${CMAKE_CURRENT_SOURCE_DIR}/apps/gps/src/gps_interface_uart/gps_serial.c - ${CMAKE_CURRENT_SOURCE_DIR}/apps/gps/src/gps_parser_ubx/gps_parser_ubx_common.c - ${CMAKE_CURRENT_SOURCE_DIR}/apps/gps/src/gps_parser_ubx/gps_parser_ubx_nav.c - ${CMAKE_CURRENT_SOURCE_DIR}/apps/gps/src/gps_parser_ubx/gps_parser_ubx_cfg.c - ${CMAKE_CURRENT_SOURCE_DIR}/apps/gps/src/gps_parser_ubx/gps_parser_ubx_ack.c - ${CMAKE_CURRENT_SOURCE_DIR}/apps/gps/src/gps_parser_ubx/gps_parser_ubx_mon.c - ${CMAKE_CURRENT_SOURCE_DIR}/apps/gps/src/gps_custom.c -) - -buildliner_add_app( - sens - DEFINITION ${PROJECT_SOURCE_DIR}/apps/sens/fsw/for_build - CONFIG ${CMAKE_CURRENT_SOURCE_DIR}/apps/sens -) - -buildliner_add_app( - mpc - DEFINITION ${PROJECT_SOURCE_DIR}/apps/mpc/fsw/for_build - CONFIG ${CMAKE_CURRENT_SOURCE_DIR}/apps/mpc -) - -buildliner_add_app( - vm - DEFINITION ${PROJECT_SOURCE_DIR}/apps/vm/fsw/for_build - CONFIG ${CMAKE_CURRENT_SOURCE_DIR}/apps/vm -) - -buildliner_add_app( - ld - DEFINITION ${PROJECT_SOURCE_DIR}/apps/ld/fsw/for_build - CONFIG ${CMAKE_CURRENT_SOURCE_DIR}/apps/ld -) - -buildliner_add_app( - nav - DEFINITION ${PROJECT_SOURCE_DIR}/apps/nav/fsw/for_build - CONFIG ${CMAKE_CURRENT_SOURCE_DIR}/apps/nav -) - -buildliner_add_app( - rcin - DEFINITION ${PROJECT_SOURCE_DIR}/apps/rcin/fsw/for_build - CONFIG ${CMAKE_CURRENT_SOURCE_DIR}/apps/rcin - CONFIG_SOURCES - ${CMAKE_CURRENT_SOURCE_DIR}/apps/rcin/src/rcin_custom.c -) - -buildliner_add_app( - bat - DEFINITION ${PROJECT_SOURCE_DIR}/apps/bat/fsw/for_build - CONFIG ${CMAKE_CURRENT_SOURCE_DIR}/apps/bat - CONFIG_SOURCES - ${CMAKE_CURRENT_SOURCE_DIR}/apps/bat/bat_custom.cpp -) - -buildliner_add_app( - mpu9250 - DEFINITION ${PROJECT_SOURCE_DIR}/apps/mpu9250/fsw/for_build - CONFIG ${CMAKE_CURRENT_SOURCE_DIR}/apps/mpu9250 - CONFIG_SOURCES - ${CMAKE_CURRENT_SOURCE_DIR}/apps/mpu9250/src/mpu9250_custom.c -) - -buildliner_add_app( - hmc5883 - DEFINITION ${PROJECT_SOURCE_DIR}/apps/hmc5883/fsw/for_build - CONFIG ${CMAKE_CURRENT_SOURCE_DIR}/apps/hmc5883 - CONFIG_SOURCES - ${CMAKE_CURRENT_SOURCE_DIR}/apps/hmc5883/src/hmc5883_custom.c -) - -buildliner_add_app( - pe - DEFINITION ${PROJECT_SOURCE_DIR}/apps/pe/fsw/for_build - CONFIG ${CMAKE_CURRENT_SOURCE_DIR}/apps/pe -) - -buildliner_add_app( - qae - DEFINITION ${PROJECT_SOURCE_DIR}/apps/qae/fsw/for_build - CONFIG ${CMAKE_CURRENT_SOURCE_DIR}/apps/qae -) - -buildliner_add_app( - lgc - DEFINITION ${PROJECT_SOURCE_DIR}/apps/lgc/fsw/for_build - CONFIG ${CMAKE_CURRENT_SOURCE_DIR}/apps/lgc - CONFIG_SOURCES - ${CMAKE_CURRENT_SOURCE_DIR}/apps/lgc/lgc_custom.cpp -) diff --git a/config/obc/ppd/target/apps/amc/CMakeLists.txt b/config/obc/ppd/target/apps/amc/CMakeLists.txt deleted file mode 100644 index 195f36320..000000000 --- a/config/obc/ppd/target/apps/amc/CMakeLists.txt +++ /dev/null @@ -1,13 +0,0 @@ -set(APP_NAME amc) - -buildliner_add_table( - ${APP_NAME} - NAME amc_pwmcfg - SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/tables/amc_pwmcfg.c -) - -buildliner_add_table( - ${APP_NAME} - NAME amc_mixercfg - SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/tables/amc_mixercfg.c -) \ No newline at end of file diff --git a/config/obc/ppd/target/apps/amc/amc_custom.cpp b/config/obc/ppd/target/apps/amc/amc_custom.cpp deleted file mode 100644 index 37bf9e20a..000000000 --- a/config/obc/ppd/target/apps/amc/amc_custom.cpp +++ /dev/null @@ -1,150 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ - -#include "cfe.h" -#include "amc_app.h" -#include -#include -#include -#include -#include -#include - -#define AMC_RCOUT_ZYNQ_PWM_BASE (0x43c00000) -#define AMC_FREQUENCY_PWM (400) -#define AMC_TICK_PER_S (50000000) -#define AMC_TICK_PER_US (50) -#define AMC_DEVICE_PATH "/dev/mem" - - -/* The following struct is used by the AMC_SharedMemCmd_t struct and overlayed - * over the ocpoc PPM registers to control the PWM hardware. - */ -typedef struct { - uint32 Period; - uint32 Hi; -} AMC_PeriodHi_t; - - -/* The following struct is overlayed over the ocpoc PPM registers to control - * the PWM hardware. - */ -typedef struct -{ - AMC_PeriodHi_t PeriodHi[AMC_MAX_MOTOR_OUTPUTS]; -} AMC_SharedMemCmd_t; - -volatile AMC_SharedMemCmd_t *AMC_SharedMemCmd; - - -/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ -/* */ -/* AMC_Freq2tick function. */ -/* */ -/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ -uint32 AMC_Freq2tick(uint16 FreqHz); - - -/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ -/* */ -/* AMC::InitDevice function. */ -/* */ -/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ -int32 AMC::InitDevice(void) -{ - uint32 i = 0; - int returnVal = 0; - int mem_fd = 0; - - /* Initialize just in case we were reloaded and the ctor wasn't called. */ - AMC_SharedMemCmd = 0; - - mem_fd = open(AMC_DEVICE_PATH, O_RDWR | O_SYNC); - AMC_SharedMemCmd = (AMC_SharedMemCmd_t *) mmap(0, 0x1000, - PROT_READ | PROT_WRITE, MAP_SHARED, mem_fd, - AMC_RCOUT_ZYNQ_PWM_BASE); - close(mem_fd); - - if (AMC_SharedMemCmd <= 0) - { - returnVal = errno; - goto end_of_function; - } - - // Note: this appears to be required actuators to initialize - for (i = 0; i < AMC_MAX_MOTOR_OUTPUTS; ++i) - { - AMC_SharedMemCmd->PeriodHi[i].Period = - AMC_Freq2tick(AMC_FREQUENCY_PWM); - AMC_SharedMemCmd->PeriodHi[i].Hi = - AMC_Freq2tick(AMC_FREQUENCY_PWM) / 2; - } - -end_of_function: - StopMotors(); - - return returnVal; -} - - -/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ -/* */ -/* AMC::SetMotorOutputs function. */ -/* */ -/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ -void AMC::SetMotorOutputs(const uint16 *PWM) -{ - uint32 i = 0; - - if(AMC_SharedMemCmd != 0) - { - /* Convert this to duty_cycle in ns */ - for (i = 0; i < AMC_MAX_MOTOR_OUTPUTS; ++i) - { - AMC_SharedMemCmd->PeriodHi[i].Hi = AMC_TICK_PER_US * PWM[i]; - } - } -} - - -/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ -/* */ -/* AMC_Freq2tick function. */ -/* */ -/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ -uint32 AMC_Freq2tick(uint16 FreqHz) -{ - uint32 duty = AMC_TICK_PER_S / (unsigned long)FreqHz; - - return duty; -} diff --git a/config/obc/ppd/target/apps/amc/tables/amc_mixercfg.c b/config/obc/ppd/target/apps/amc/tables/amc_mixercfg.c deleted file mode 100644 index 924345475..000000000 --- a/config/obc/ppd/target/apps/amc/tables/amc_mixercfg.c +++ /dev/null @@ -1,82 +0,0 @@ -/* -** Pragmas -*/ - -/* -** Include Files -*/ -#include -#include "cfe_tbl_filedef.h" -#include "amc_tbldefs.h" - -/* -** Local Defines -*/ - -/* -** Local Structure Declarations -*/ -static OS_USED CFE_TBL_FileDef_t CFE_TBL_FileDef = -{ - /* Content format: ObjName[64], TblName[38], Desc[32], TgtFileName[20], ObjSize - ** ObjName - variable name of config table, e.g., CI_ConfigDefTbl[] - ** TblName - app's table name, e.g., CI.CONFIG_TBL, where CI is the same app name - ** used in cfe_es_startup.scr, and CI_defConfigTbl is the same table - ** name passed in to CFE_TBL_Register() - ** Desc - description of table in string format - ** TgtFileName[20] - table file name, compiled as .tbl file extension - ** ObjSize - size of the entire table - */ - - "AMC_MixerCfgTbl", "AMC.MIXERCFG_TBL", "AMC default mixer config table", - "amc_mixercfg.tbl", (sizeof(MultirotorMixer_ConfigTable_t)) -}; - - -/* -** External Global Variables -*/ - -/* -** Global Variables -*/ - -/* Default CI config table data */ -MultirotorMixer_ConfigTable_t AMC_MixerCfgTbl = -{ - 1.0, /* Roll Scale */ - 1.0, /* Pitch Scale */ - 1.0, /* Yaw Scale */ - 0.2, /* Idle Speed */ - 1.0, /* Delta Out Max */ - 8, /* Rotor Count */ - MIXER_OCTA_X, /* Rotor Geometry */ - { - /* Rotor # | Roll Scale | Pitch Scale | Yaw Scale | Output Scale */ - /* 0 */ { -0.382683, 0.923880, -1.000000, 1.000000 }, - /* 1 */ { 0.382683, -0.923880, -1.000000, 1.000000 }, - /* 2 */ { -0.923880, 0.382683, 1.000000, 1.000000 }, - /* 3 */ { -0.382683, -0.923880, 1.000000, 1.000000 }, - /* 4 */ { 0.382683, 0.923880, 1.000000, 1.000000 }, - /* 5 */ { 0.923880, -0.382683, 1.000000, 1.000000 }, - /* 6 */ { 0.923880, 0.382683, -1.000000, 1.000000 }, - /* 7 */ { -0.923880, -0.382683, -1.000000, 1.000000 } - } -}; - -/* -** Local Variables -*/ - -/* -** Function Prototypes -*/ - -/* -** Function Definitions -*/ - -/*======================================================================================= -** End of file ci_config.c -**=====================================================================================*/ - diff --git a/config/obc/ppd/target/apps/amc/tables/amc_pwmcfg.c b/config/obc/ppd/target/apps/amc/tables/amc_pwmcfg.c deleted file mode 100644 index e5cf8a485..000000000 --- a/config/obc/ppd/target/apps/amc/tables/amc_pwmcfg.c +++ /dev/null @@ -1,65 +0,0 @@ -/* -** Pragmas -*/ - -/* -** Include Files -*/ -#include "cfe_tbl_filedef.h" -#include "amc_tbldefs.h" - -/* -** Local Defines -*/ - -/* -** Local Structure Declarations -*/ -static OS_USED CFE_TBL_FileDef_t CFE_TBL_FileDef = -{ - /* Content format: ObjName[64], TblName[38], Desc[32], TgtFileName[20], ObjSize - ** ObjName - variable name of config table, e.g., CI_ConfigDefTbl[] - ** TblName - app's table name, e.g., CI.CONFIG_TBL, where CI is the same app name - ** used in cfe_es_startup.scr, and CI_defConfigTbl is the same table - ** name passed in to CFE_TBL_Register() - ** Desc - description of table in string format - ** TgtFileName[20] - table file name, compiled as .tbl file extension - ** ObjSize - size of the entire table - */ - - "AMC_PwmCfgTbl", "AMC.PWMCFG_TBL", "AMC default pwm config table", - "amc_pwmcfg.tbl", (sizeof(AMC_PwmConfigTbl_t)) -}; - -/* -** External Global Variables -*/ - -/* -** Global Variables -*/ - -/* Default CI config table data */ -AMC_PwmConfigTbl_t AMC_PwmCfgTbl = -{ - 900, /* PwmDisarmed */ - 1000, /* PwmMin */ - 2000 /* PwmMax */ -}; - -/* -** Local Variables -*/ - -/* -** Function Prototypes -*/ - -/* -** Function Definitions -*/ - -/*======================================================================================= -** End of file ci_config.c -**=====================================================================================*/ - diff --git a/config/obc/ppd/target/apps/bat/CMakeLists.txt b/config/obc/ppd/target/apps/bat/CMakeLists.txt deleted file mode 100644 index f75a6716e..000000000 --- a/config/obc/ppd/target/apps/bat/CMakeLists.txt +++ /dev/null @@ -1,9 +0,0 @@ -set(APP_NAME bat) - -buildliner_add_table( - ${APP_NAME} - NAME bat_config - SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/tables/bat_config.c -) - -buildliner_add_app_unit_test_src(${APP_NAME} SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/tables/bat_config.c) diff --git a/config/obc/ppd/target/apps/bat/bat_custom.cpp b/config/obc/ppd/target/apps/bat/bat_custom.cpp deleted file mode 100644 index f2c744535..000000000 --- a/config/obc/ppd/target/apps/bat/bat_custom.cpp +++ /dev/null @@ -1,66 +0,0 @@ -#include "bat_app.h" -#include - -#define BAT_VOLTAGE_PATH "/sys/bus/iio/devices/iio:device0/in_voltage8_raw" - -/* 28V / 4096 counts = 0.0068359375f V per count */ -#define BAT_BATTERY1_V_DIV (0.0068359375f) - - -int32 BAT::InitDevice(void) -{ - int32 ret = CFE_SUCCESS; - FILE *FD; - - FD = fopen(BAT_VOLTAGE_PATH, "r"); - - if (FD == NULL) - { - ret = -1; - } - else - { - fclose(FD); - } - - return ret; -} - - -void BAT::CloseDevice(void) -{ -} - - -int32 BAT::ReadDevice(float &Voltage, float &Current) -{ - int32 ret = CFE_SUCCESS; - FILE *FD; - - FD = fopen(BAT_VOLTAGE_PATH, "r"); - - if (FD == NULL) - { - Voltage = 0.0f; - Current = 0.0f; - ret = -1; - } - else - { - int ret_tmp = fscanf(FD, "%f", (float*)&Voltage); - if(ret_tmp < 0) - { - ret = ret_tmp; - } - - Voltage *= BAT_BATTERY1_V_DIV; - - fclose(FD); - } - - usleep(10000); - - Current = 0.0f; - - return ret; -} diff --git a/config/obc/ppd/target/apps/bat/tables/bat_config.c b/config/obc/ppd/target/apps/bat/tables/bat_config.c deleted file mode 100644 index 4ad57f488..000000000 --- a/config/obc/ppd/target/apps/bat/tables/bat_config.c +++ /dev/null @@ -1,73 +0,0 @@ -/* -** Pragmas -*/ - -/* -** Include Files -*/ -#include "cfe_tbl_filedef.h" -#include "bat_tbldefs.h" - -/* -** Local Defines -*/ - -/* -** Local Structure Declarations -*/ -static OS_USED CFE_TBL_FileDef_t CFE_TBL_FileDef = -{ - /* Content format: ObjName[64], TblName[38], Desc[32], TgtFileName[20], ObjSize - ** ObjName - variable name of config table, e.g., CI_ConfigDefTbl[] - ** TblName - app's table name, e.g., CI.CONFIG_TBL, where CI is the same app name - ** used in cfe_es_startup.scr, and CI_defConfigTbl is the same table - ** name passed in to CFE_TBL_Register() - ** Desc - description of table in string format - ** TgtFileName[20] - table file name, compiled as .tbl file extension - ** ObjSize - size of the entire table - */ - - "BAT_ConfigTbl", "BAT.CONFIG_TBL", "BAT default config table", - "bat_config.tbl", (sizeof(BAT_ConfigTbl_t)) -}; - -/* -** External Global Variables -*/ - -/* -** Global Variables -*/ - -/* Default MPC config table data */ -BAT_ConfigTbl_t BAT_ConfigTbl = -{ - /* V_EMPTY */ 3.4f, - /* V_CHARGED */ 4.05f, - /* N_CELLS */ 6, - /* CAPACITY */ 12000.0f, - /* V_LOAD_DROP */ 0.3f, - /* R_INTERNAL */ 0.002f, - /* LOW_THR */ 0.15f, - /* CRIT_THR */ 0.07f, - /* EMERGEN_THR */ 0.05f, - /* Voltage Scale */ 1.00998f, /* Calibrated on 11/21/2017 */ - /* Current Scale */ 1.0f, -}; - -/* -** Local Variables -*/ - -/* -** Function Prototypes -*/ - -/* -** Function Definitions -*/ - -/*======================================================================================= -** End of file bat_config.c -**=====================================================================================*/ - diff --git a/config/obc/ppd/target/apps/flow/CMakeLists.txt b/config/obc/ppd/target/apps/flow/CMakeLists.txt deleted file mode 100644 index af4c74ebf..000000000 --- a/config/obc/ppd/target/apps/flow/CMakeLists.txt +++ /dev/null @@ -1,8 +0,0 @@ -set(APP_NAME flow) - -buildliner_add_table( - ${APP_NAME} - NAME flow_config - SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/tables/flow_config.c - INCLUDES ${CMAKE_CURRENT_SOURCE_DIR}/src/ -) diff --git a/config/obc/ppd/target/apps/flow/tables/flow_config.c b/config/obc/ppd/target/apps/flow/tables/flow_config.c deleted file mode 100644 index ecc847cc7..000000000 --- a/config/obc/ppd/target/apps/flow/tables/flow_config.c +++ /dev/null @@ -1,80 +0,0 @@ -/* -** Include Files -*/ -#include "cfe_tbl_filedef.h" -#include "flow_tbldefs.h" - - -/* Default FLOW config table data */ -FLOW_ConfigTbl_t FLOW_ConfigTbl = -{ - /** \brief Horizontal field of view. - * - * \par Limits: - * default 0.088. - */ - 0.10934f, - /** \brief Size of sliding window. - * - * \par Limits: - * Min > Max (incr.) 2 > 10, default 8. - */ - 8, - /** \brief Number of blocks of sliding window. - * - * \par Limits: - * Min > Max (incr.) 2 > 10, default 5. - */ - 5, - /** \brief Default image output rate. - * - * \par Limits: - * default 15. - */ - 10, - /** \brief Default image width. - * - * \par Limits: - * default 64. - */ - 64, - /** \brief Default image height. - * - * \par Limits: - * default 64. - */ - 64, - /** \brief Default image search size. - * - * \par Limits: - * default 6. - */ - 6, - /** \brief Default feature threshold. - * - * \par Limits: - * default 30. - */ - 30, - /** \brief Default value threshold. - * - * \par Limits: - * default 3000. - */ - 3000, - /** \brief Mean count threshold. - * - * \par Limits: - * default 10. - */ - 10 -}; - - -/* Table file header */ -CFE_TBL_FILEDEF(FLOW_ConfigTbl, FLOW.CONFIG_TBL, FLOW default config table, flow_config.tbl ) - -/*======================================================================================= -** End of file flow_config.c -**=====================================================================================*/ - diff --git a/config/obc/ppd/target/apps/gps/CMakeLists.txt b/config/obc/ppd/target/apps/gps/CMakeLists.txt deleted file mode 100644 index defd104f2..000000000 --- a/config/obc/ppd/target/apps/gps/CMakeLists.txt +++ /dev/null @@ -1,7 +0,0 @@ -set(APP_NAME gps) - -buildliner_add_table( - ${APP_NAME} - NAME gps_config - SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/tables/gps_config.c -) diff --git a/config/obc/ppd/target/apps/gps/src/CMakeLists.txt b/config/obc/ppd/target/apps/gps/src/CMakeLists.txt deleted file mode 100644 index b90f33510..000000000 --- a/config/obc/ppd/target/apps/gps/src/CMakeLists.txt +++ /dev/null @@ -1,5 +0,0 @@ -# Set source for custom code. -set(APP_CUSTOM_SRC - ${CMAKE_CURRENT_SOURCE_DIR}/gps_custom.c - PARENT_SCOPE - ) diff --git a/config/obc/ppd/target/apps/gps/src/gps_custom.c b/config/obc/ppd/target/apps/gps/src/gps_custom.c deleted file mode 100644 index 2c5543fce..000000000 --- a/config/obc/ppd/target/apps/gps/src/gps_custom.c +++ /dev/null @@ -1,217 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ -/************************************************************************ -** Pragmas -*************************************************************************/ - -/************************************************************************ -** Includes -*************************************************************************/ -#include "gps_custom_shared.h" -#include - -/************************************************************************ -** Local Defines -*************************************************************************/ - -/************************************************************************ -** Local Structure Declarations -*************************************************************************/ - -/************************************************************************ -** External Global Variables -*************************************************************************/ - -/************************************************************************ -** Global Variables -*************************************************************************/ -GPS_AppCustomData_t GPS_AppCustomData; - -/************************************************************************ -** Local Variables -*************************************************************************/ - -/************************************************************************ -** Local Function Definitions -*************************************************************************/ - -boolean GPS_Custom_Max_Events_Not_Reached(int32 ind) -{ - if ((ind < CFE_EVS_MAX_EVENT_FILTERS) && (ind > 0)) - { - return TRUE; - } - else - { - return FALSE; - } -} - - -int32 GPS_Custom_Init_EventFilters(int32 ind, CFE_EVS_BinFilter_t *EventTbl) -{ - int32 customEventCount = ind; - - /* Null check */ - if(0 == EventTbl) - { - customEventCount = -1; - goto end_of_function; - } - - if(TRUE == GPS_Custom_Max_Events_Not_Reached(customEventCount)) - { - EventTbl[ customEventCount].EventID = GPS_DEVICE_ERR_EID; - EventTbl[customEventCount++].Mask = CFE_EVS_FIRST_16_STOP; - } - else - { - customEventCount = -1; - goto end_of_function; - } - -end_of_function: - - return customEventCount; -} - - -//boolean GPS_Custom_Measure_DumpMsg(PX4_GpsDumpMsg_t *Measure) -//{ - //boolean returnBool = TRUE; - //void *userDataPtr = 0; - //void *copyDataPtr = 0; - //uint16 userDataLength = 0; - - ///* Null check */ - //if(0 == Measure) - //{ - //CFE_EVS_SendEvent(GPS_DEVICE_ERR_EID, CFE_EVS_ERROR, - //"GPS measure dump message null pointer"); - //returnBool = FALSE; - //goto end_of_function; - //} - - //OS_MutSemTake(GPS_AppCustomData.MutexDump); - //userDataPtr = CFE_SB_GetUserData((CFE_SB_MsgPtr_t)&GPS_AppCustomData.GpsDumpMsg); - //userDataLength = CFE_SB_GetUserDataLength((CFE_SB_MsgPtr_t)Measure); - //copyDataPtr = CFE_SB_GetUserData((CFE_SB_MsgPtr_t)Measure); - //memcpy(copyDataPtr, userDataPtr, userDataLength); - //OS_MutSemGive(GPS_AppCustomData.MutexDump); - -//end_of_function: - - //return returnBool; -//} - - -boolean GPS_Custom_Measure_PositionMsg(PX4_VehicleGpsPositionMsg_t *Measure) -{ - boolean returnBool = TRUE; - void *userDataPtr = 0; - void *copyDataPtr = 0; - uint16 userDataLength = 0; - - /* Null check */ - if(0 == Measure) - { - CFE_EVS_SendEvent(GPS_DEVICE_ERR_EID, CFE_EVS_ERROR, - "GPS measure dump message null pointer"); - returnBool = FALSE; - goto end_of_function; - } - - OS_MutSemTake(GPS_AppCustomData.MutexPosition); - //userDataPtr = CFE_SB_GetUserData((CFE_SB_MsgPtr_t)&GPS_AppCustomData.GpsPositionMsg); - //userDataLength = CFE_SB_GetUserDataLength((CFE_SB_MsgPtr_t)Measure); - //copyDataPtr = CFE_SB_GetUserData((CFE_SB_MsgPtr_t)Measure); - - //memcpy(copyDataPtr, userDataPtr, userDataLength); - Measure->Timestamp = GPS_AppCustomData.GpsPositionMsg.Timestamp; - Measure->TimeUtcUsec = GPS_AppCustomData.GpsPositionMsg.TimeUtcUsec; - Measure->Lat = GPS_AppCustomData.GpsPositionMsg.Lat; - Measure->Lon = GPS_AppCustomData.GpsPositionMsg.Lon; - Measure->Alt = GPS_AppCustomData.GpsPositionMsg.Alt; - Measure->AltEllipsoid = GPS_AppCustomData.GpsPositionMsg.AltEllipsoid; - Measure->SVariance = GPS_AppCustomData.GpsPositionMsg.SVariance; - Measure->CVariance = GPS_AppCustomData.GpsPositionMsg.CVariance; - Measure->EpH = GPS_AppCustomData.GpsPositionMsg.EpH; - Measure->EpV = GPS_AppCustomData.GpsPositionMsg.EpV; - Measure->HDOP = GPS_AppCustomData.GpsPositionMsg.HDOP; - Measure->VDOP = GPS_AppCustomData.GpsPositionMsg.VDOP; - Measure->NoisePerMs = GPS_AppCustomData.GpsPositionMsg.NoisePerMs; - Measure->JammingIndicator = GPS_AppCustomData.GpsPositionMsg.JammingIndicator; - Measure->Vel_m_s = GPS_AppCustomData.GpsPositionMsg.Vel_m_s; - Measure->Vel_n_m_s = GPS_AppCustomData.GpsPositionMsg.Vel_n_m_s; - Measure->Vel_e_m_s = GPS_AppCustomData.GpsPositionMsg.Vel_e_m_s; - Measure->Vel_d_m_s = GPS_AppCustomData.GpsPositionMsg.Vel_d_m_s; - Measure->COG = GPS_AppCustomData.GpsPositionMsg.COG; - Measure->TimestampTimeRelative = GPS_AppCustomData.GpsPositionMsg.TimestampTimeRelative; - Measure->FixType = GPS_AppCustomData.GpsPositionMsg.FixType; - Measure->VelNedValid = GPS_AppCustomData.GpsPositionMsg.VelNedValid; - Measure->SatellitesUsed = GPS_AppCustomData.GpsPositionMsg.SatellitesUsed; - OS_MutSemGive(GPS_AppCustomData.MutexPosition); - -end_of_function: - - return returnBool; -} - - -boolean GPS_Custom_Measure_SatInfoMsg(PX4_SatelliteInfoMsg_t *Measure) -{ - boolean returnBool = FALSE; - //void *userDataPtr = 0; - //void *copyDataPtr = 0; - //uint16 userDataLength = 0; - ///* Null check */ - //if(0 == Measure) - //{ - //CFE_EVS_SendEvent(GPS_DEVICE_ERR_EID, CFE_EVS_ERROR, - //"GPS measure dump message null pointer"); - //returnBool = FALSE; - //goto end_of_function; - //} - - //OS_MutSemTake(GPS_AppCustomData.MutexSatInfo); - //userDataPtr = CFE_SB_GetUserData((CFE_SB_MsgPtr_t)&GPS_AppCustomData.GpsSatInfoMsg); - //userDataLength = CFE_SB_GetUserDataLength((CFE_SB_MsgPtr_t)Measure); - //copyDataPtr = CFE_SB_GetUserData((CFE_SB_MsgPtr_t)Measure); - - //memcpy(copyDataPtr, userDataPtr, userDataLength); - //OS_MutSemGive(GPS_AppCustomData.MutexSatInfo); - -end_of_function: - - return returnBool; -} diff --git a/config/obc/ppd/target/apps/gps/src/gps_custom_shared.h b/config/obc/ppd/target/apps/gps/src/gps_custom_shared.h deleted file mode 100644 index f5b57a0c9..000000000 --- a/config/obc/ppd/target/apps/gps/src/gps_custom_shared.h +++ /dev/null @@ -1,235 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ - -#ifndef GPS_CUSTOM_SHARED_H -#define GPS_CUSTOM_SHARED_H -/************************************************************************ -** Includes -*************************************************************************/ -#include "gps_events.h" -#include "cfe.h" -#include "px4_msgs.h" - -#ifdef __cplusplus -extern "C" { -#endif -/************************************************************************ -** Local Defines -*************************************************************************/ - -/** \brief GPS read buffer size. -** -** \par Description: -** MON_VER from u-blox modules can be ~190 bytes -*/ -#define GPS_READ_BUFFER_SIZE (250) - -/************************************************************************ -** Structure Declarations -*************************************************************************/ -typedef enum -{ - -/** \brief 'GPS - ' -** \event 'GPS - ' -** -** \par Type: ERROR -** -** \par Cause: -** -** This event message is issued when a device resource encounters an -** error. -** -*/ - GPS_DEVICE_ERR_EID = GPS_EVT_CNT, - -/** \brief 'GPS - ' -** \event 'GPS - ' -** -** \par Type: ERROR -** -** \par Cause: -** -** This event message is issued when a GPS message parser encounters an -** error. -** -*/ - GPS_INIT_DEVICE_PARSER_ERR_EID, - -/** \brief Number of custom events -** -** \par Limits: -** int32 -*/ - GPS_CUSTOM_EVT_CNT -} GPS_CustomEventIds_t; - - -typedef struct -{ - /*! \brief cFE Software Bus Telemetry Message Header */ - uint8 TlmHeader[CFE_SB_TLM_HDR_SIZE]; - uint8 Payload[GPS_READ_BUFFER_SIZE]; -} GPS_DeviceMessage_t; - - -/** - * \brief Parser state. - */ -typedef enum -{ - GPS_PARSE_STATE_UNINIT=0, - GPS_PARSE_STATE_IDLE, - GPS_PARSE_STATE_GOT_SYNC1, - GPS_PARSE_STATE_GOT_SYNC2, - GPS_PARSE_STATE_GOT_CLASS, - GPS_PARSE_STATE_GOT_ID, - GPS_PARSE_STATE_GOT_LENGTH1, - GPS_PARSE_STATE_GOT_LENGTH2, - GPS_PARSE_STATE_GOT_PAYLOAD, - GPS_PARSE_STATE_GOT_CHECKSUMA, - GPS_PARSE_STATE_GOT_CHECKSUMB -} GPS_ParserState_t; - - -typedef struct -{ - /*! Number of received messages */ - uint32 MsgReceived; - /*! Number of parse errors */ - uint32 ParseError; - /*! Parsing state machine */ - GPS_ParserState_t ParseState; - uint16 PayloadCursor; - uint8 ClassID; - uint8 MsgID; - uint16 MsgLength; - uint16 ChecksumA; -} GPS_ParserStatus_t; - -/** - * \brief GPS device status - */ -typedef enum -{ - /*! GPS status uninitialized */ - GPS_CUSTOM_UNINITIALIZED = 0, - /*! GPS status initialized */ - GPS_CUSTOM_INITIALIZED = 1, - /*! GPS status streaming */ - GPS_CUSTOM_STREAMING = 2 -} GPS_Custom_Status_t; - - -typedef enum -{ - GPS_ACK_IDLE = 0, - GPS_ACK_WAITING = 1, - GPS_ACK_GOT_ACK = 2, - GPS_ACK_GOT_NAK = 3 -} GPS_Ack_State_t; - - -typedef struct -{ - /*! Device file descriptor */ - int DeviceFd; - /*! The current device status */ - GPS_Custom_Status_t Status; - /*! The current baud */ - uint32 Baud; - /*! The current parser status */ - GPS_ParserStatus_t ParserStatus; - /*! The current parser message */ - GPS_DeviceMessage_t Message; - /*! Streaming task priority */ - uint8 Priority; - /*! Streaming child task identifier */ - uint32 ChildTaskID; - /*! Streaming task function pointer */ - CFE_ES_ChildTaskMainFuncPtr_t StreamingTask; - //PX4_GpsDumpMsg_t GpsDumpMsg; - PX4_VehicleGpsPositionMsg_t GpsPositionMsg; - PX4_SatelliteInfoMsg_t GpsSatInfoMsg; - GPS_Ack_State_t AckState; - uint16 AckWaitingMsg; - uint8 AckRcvdMsgCls; - boolean AckWaitingRcvd; - /*! The shared data mutex */ - //uint32 MutexDump; - uint32 MutexPosition; - uint32 MutexSatInfo; - /*! */ - uint32 RateCountVel; - uint32 RateCountLatLon; - boolean GotPosllh; - boolean GotVelned; - /*! Flag to start and stop streaming */ - boolean ContinueFlag; - uint32 TaskFlags; -} GPS_AppCustomData_t; - - -/************************************************************************ -** External Global Variables -*************************************************************************/ -extern GPS_AppCustomData_t GPS_AppCustomData; - -/************************************************************************ -** Function Prototypes -*************************************************************************/ - -/************************************************************************/ -/** \brief Determines if the maximum of event filters has been reached. -** -** \par Description -** This function checks if an index has reached the maximum -** number of events. -** -** \par Assumptions, External Events, and Notes: -** None -** -** \param [in] ind The current index to check. -** -** -** \returns boolean -** -*************************************************************************/ -boolean GPS_Custom_Max_Events_Not_Reached(int32 ind); - - -#ifdef __cplusplus -} -#endif - -#endif /* GPS_CUSTOM_SHARED_H */ diff --git a/config/obc/ppd/target/apps/gps/src/gps_interface_uart/gps_serial.c b/config/obc/ppd/target/apps/gps/src/gps_interface_uart/gps_serial.c deleted file mode 100644 index 128914d73..000000000 --- a/config/obc/ppd/target/apps/gps/src/gps_interface_uart/gps_serial.c +++ /dev/null @@ -1,1272 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ -/************************************************************************ -** Pragmas -*************************************************************************/ - -/************************************************************************ -** Includes -*************************************************************************/ -#include "cfe.h" -#include "gps_serial.h" -#include "gps_perfids.h" -#include "../gps_parser_ubx/gps_ubx_msg.h" -#include "../gps_parser_ubx/gps_parser_ubx_common.h" -#include "msg_ids.h" -#include "px4lib.h" -#include "gps_platform_cfg.h" - -#include "gps_event_driven.h" - -#include -#include -#include -#include -#include -#include -#include - -/************************************************************************ -** Local Defines -*************************************************************************/ - -/************************************************************************ -** Local Structure Declarations -*************************************************************************/ - -/************************************************************************ -** External Global Variables -*************************************************************************/ - -/************************************************************************ -** Global Variables -*************************************************************************/ - -/************************************************************************ -** Local Variables -*************************************************************************/ - -/************************************************************************ -** Local Function Definitions -*************************************************************************/ - - -void GPS_Custom_InitData(void) -{ - /* Set all struct zero values */ - bzero(&GPS_AppCustomData, sizeof(GPS_AppCustomData)); - GPS_AppCustomData.Baud = GPS_SERIAL_IO_SPEED; - GPS_Parser_Reset(); - /* Set all non-zero values */ - GPS_AppCustomData.ContinueFlag = TRUE; - GPS_AppCustomData.StreamingTask = GPS_Stream_Task; -} - - -boolean GPS_Custom_Init() -{ - boolean returnBool = TRUE; - int32 returnCode = 0; - int32 Status = CFE_SUCCESS; - - GPS_AppCustomData.DeviceFd = open(GPS_SERIAL_DEVICE_PATH, O_RDWR | O_NOCTTY); - if (GPS_AppCustomData.DeviceFd < 0) - { - CFE_EVS_SendEvent(GPS_DEVICE_ERR_EID, CFE_EVS_ERROR, - "GPS Device open errno: %i", errno); - returnBool = FALSE; - goto end_of_function; - } - - /* Create mutex for shared data */ - //Status = OS_MutSemCreate(&GPS_AppCustomData.MutexDump, GPS_MUTEX_DUMP, 0); - //if (Status != CFE_SUCCESS) - //{ - //CFE_EVS_SendEvent(GPS_DEVICE_ERR_EID, CFE_EVS_ERROR, - //"GPS mutex create failed in custom init"); - //returnBool = FALSE; - //goto end_of_function; - //} - Status = OS_MutSemCreate(&GPS_AppCustomData.MutexPosition, GPS_MUTEX_POS, 0); - if (Status != CFE_SUCCESS) - { - CFE_EVS_SendEvent(GPS_DEVICE_ERR_EID, CFE_EVS_ERROR, - "GPS mutex create failed in custom init"); - returnBool = FALSE; - goto end_of_function; - } - Status = OS_MutSemCreate(&GPS_AppCustomData.MutexSatInfo, GPS_MUTEX_SAT, 0); - if (Status != CFE_SUCCESS) - { - CFE_EVS_SendEvent(GPS_DEVICE_ERR_EID, CFE_EVS_ERROR, - "GPS mutex create failed in custom init"); - returnBool = FALSE; - goto end_of_function; - } - /* End mutex creation */ - - /* Negatiate and set the baud rate */ - returnBool = GPS_Custom_Negotiate_Baud(GPS_AppCustomData.Baud); - if (FALSE == returnBool) - { - CFE_EVS_SendEvent(GPS_DEVICE_ERR_EID, CFE_EVS_ERROR, - "GPS Device negotiate baud error"); - returnBool = FALSE; - goto end_of_function; - } - //OS_printf("ABOUT TO CONFIGURE MESSAGE RATES\n"); - - /* Configure all the message rates */ - returnBool = GPS_Custom_Configure(); - if (FALSE == returnBool) - { - CFE_EVS_SendEvent(GPS_DEVICE_ERR_EID, CFE_EVS_ERROR, - "GPS Device set configuration error"); - returnBool = FALSE; - goto end_of_function; - } - - /* Create the streaming task */ - returnCode = CFE_ES_CreateChildTask( - &GPS_AppCustomData.ChildTaskID, - GPS_STREAMING_TASK_NAME, - GPS_AppCustomData.StreamingTask, - 0, - (2 * CFE_ES_DEFAULT_STACK_SIZE), - GPS_AppCustomData.Priority, - GPS_CUSTOM_CHILD_TASK_FLAGS); - if(CFE_SUCCESS != returnCode) - { - GPS_AppCustomData.ContinueFlag = FALSE; - returnBool = FALSE; - CFE_EVS_SendEvent(GPS_DEVICE_ERR_EID, CFE_EVS_ERROR, - "GPS create streaming task failed"); - goto end_of_function; - } - else - { - GPS_AppCustomData.Status = GPS_CUSTOM_INITIALIZED; - } - -end_of_function: - return returnBool; -} - - -boolean GPS_Custom_Uninit(void) -{ - boolean returnBool = TRUE; - int returnCode = 0; - - /* Delete the child task */ - CFE_ES_DeleteChildTask(GPS_AppCustomData.ChildTaskID); - /* Set streaming task loop flag to stop */ - GPS_AppCustomData.ContinueFlag = FALSE; - /* Set app state to initialized */ - GPS_AppCustomData.Status = GPS_CUSTOM_INITIALIZED; - - returnCode = close(GPS_AppCustomData.DeviceFd); - if (-1 == returnCode) - { - CFE_EVS_SendEvent(GPS_DEVICE_ERR_EID, CFE_EVS_ERROR, - "GPS Device close errno: %i", errno); - returnBool = FALSE; - } - else - { - GPS_AppCustomData.Status = GPS_CUSTOM_UNINITIALIZED; - } - return returnBool; -} - - -boolean GPS_Custom_Negotiate_Baud(const uint32 Baud) -{ - uint8 i = 0; - uint32 baudRate = 0; - boolean returnBool = TRUE; - /* TODO use struct defined in gps_ubx_msg instead */ - GPS_Payload_TX_CFG_PRT_t portConfig[2]; - const uint32 baudRates[] = {9600, 38400, 19200, 57600, 115200, 230400}; - - for (i = 0; i < sizeof(baudRates) / sizeof(baudRates[0]); i++) - { - baudRate = baudRates[i]; - returnBool = GPS_Custom_Set_Baud(baudRate); - if (FALSE == returnBool) - { - returnBool = FALSE; - goto end_of_function; - } - /* TODO verify this works as expected */ - /* flush input and wait for at least 20 ms silence */ - tcflush(GPS_AppCustomData.DeviceFd, TCIFLUSH); - usleep(20 * 1000); - tcflush(GPS_AppCustomData.DeviceFd, TCIFLUSH); - - /* Send a CFG-PRT message to set the UBX protocol for in and out - * and leave the baudrate as it is, we just want an ACK-ACK for this */ - memset(portConfig, 0, 2 * sizeof(GPS_Payload_TX_CFG_PRT_t)); - portConfig[0].portID = GPS_TX_CFG_PRT_PORTID; - portConfig[0].mode = GPS_TX_CFG_PRT_MODE; - portConfig[0].baudRate = baudRate; - portConfig[0].inProtoMask = GPS_TX_CFG_PRT_INPROTOMASK_GPS; - portConfig[0].outProtoMask = GPS_TX_CFG_PRT_OUTPROTOMASK_GPS; - portConfig[1].portID = GPS_TX_CFG_PRT_PORTID_USB; - portConfig[1].mode = GPS_TX_CFG_PRT_MODE; - portConfig[1].baudRate = baudRate; - portConfig[1].inProtoMask = GPS_TX_CFG_PRT_INPROTOMASK_GPS; - portConfig[1].outProtoMask = GPS_TX_CFG_PRT_OUTPROTOMASK_GPS; - - //printf("portConfig[0].portID %hhu \n", portConfig[0].portID); - //printf("portConfig[0].reserved1 %hhu \n", portConfig[0].reserved1); - //printf("portConfig[0].txReady %hu \n", portConfig[0].txReady); - //printf("portConfig[0].mode %u \n", portConfig[0].mode); - //printf("portConfig[0].baudRate %u \n", portConfig[0].baudRate); - //printf("portConfig[0].inProtoMask %hu \n", portConfig[0].inProtoMask); - //printf("portConfig[0].outProtoMask %hu \n", portConfig[0].outProtoMask); - //printf("portConfig[0].flags %hu \n", portConfig[0].flags); - //printf("portConfig[0].reserved2 %hu \n", portConfig[0].reserved2); - //printf("portConfig[1].portID %hhu \n", portConfig[1].portID); - //printf("portConfig[1].reserved1 %hhu \n", portConfig[1].reserved1); - //printf("portConfig[1].txReady %hu \n", portConfig[1].txReady); - //printf("portConfig[1].mode %u \n", portConfig[1].mode); - //printf("portConfig[1].baudRate %u \n", portConfig[1].baudRate); - //printf("portConfig[1].inProtoMask %hu \n", portConfig[1].inProtoMask); - //printf("portConfig[1].outProtoMask %hu \n", portConfig[1].outProtoMask); - //printf("portConfig[1].flags %hu \n", portConfig[1].flags); - //printf("portConfig[1].reserved2 %hu \n", portConfig[1].reserved2); - - /* send config message */ - returnBool = GPS_Custom_SendMessage(GPS_MESSAGE_CFG_PRT, - (uint8 *)portConfig, 2 * sizeof(GPS_Payload_TX_CFG_PRT_t)); - - if(FALSE == returnBool) - { - /* SendMessage failed try the next baud rate */ - continue; - } - - /* If an ACK is received here we've matched baud rates */ - returnBool = GPS_Custom_WaitForAck(GPS_MESSAGE_CFG_PRT, - GPS_ACK_TIMEOUT); - if(FALSE == returnBool) - { - /* WaitForAck failed try the next baud rate */ - continue; - } - - /* Send a CFG-PRT message again, this time change the baudrate */ - memset(portConfig, 0, 2 * sizeof(GPS_Payload_TX_CFG_PRT_t)); - portConfig[0].portID = GPS_TX_CFG_PRT_PORTID; - portConfig[0].mode = GPS_TX_CFG_PRT_MODE; - portConfig[0].baudRate = Baud; - portConfig[0].inProtoMask = GPS_TX_CFG_PRT_INPROTOMASK_GPS; - portConfig[0].outProtoMask = GPS_TX_CFG_PRT_OUTPROTOMASK_GPS; - portConfig[1].portID = GPS_TX_CFG_PRT_PORTID_USB; - portConfig[1].mode = GPS_TX_CFG_PRT_MODE; - portConfig[1].baudRate = Baud; - portConfig[1].inProtoMask = GPS_TX_CFG_PRT_INPROTOMASK_GPS; - portConfig[1].outProtoMask = GPS_TX_CFG_PRT_OUTPROTOMASK_GPS; - - //printf("portConfig[0].portID %hhu \n", portConfig[0].portID); - //printf("portConfig[0].reserved1 %hhu \n", portConfig[0].reserved1); - //printf("portConfig[0].txReady %hu \n", portConfig[0].txReady); - //printf("portConfig[0].mode %u \n", portConfig[0].mode); - //printf("portConfig[0].baudRate %u \n", portConfig[0].baudRate); - //printf("portConfig[0].inProtoMask %hu \n", portConfig[0].inProtoMask); - //printf("portConfig[0].outProtoMask %hu \n", portConfig[0].outProtoMask); - //printf("portConfig[0].flags %hu \n", portConfig[0].flags); - //printf("portConfig[0].reserved2 %hu \n", portConfig[0].reserved2); - //printf("portConfig[1].portID %hhu \n", portConfig[1].portID); - //printf("portConfig[1].reserved1 %hhu \n", portConfig[1].reserved1); - //printf("portConfig[1].txReady %hu \n", portConfig[1].txReady); - //printf("portConfig[1].mode %u \n", portConfig[1].mode); - //printf("portConfig[1].baudRate %u \n", portConfig[1].baudRate); - //printf("portConfig[1].inProtoMask %hu \n", portConfig[1].inProtoMask); - //printf("portConfig[1].outProtoMask %hu \n", portConfig[1].outProtoMask); - //printf("portConfig[1].flags %hu \n", portConfig[1].flags); - //printf("portConfig[1].reserved2 %hu \n", portConfig[1].reserved2); - - /* send config message */ - returnBool = GPS_Custom_SendMessage(GPS_MESSAGE_CFG_PRT, - (uint8 *)portConfig, 2 * sizeof(GPS_Payload_TX_CFG_PRT_t)); - if(FALSE == returnBool) - { - continue; - } - - /* no ACK is expected here, but read the buffer anyway in case - * we actually get an ACK */ - returnBool = GPS_Custom_WaitForAck(GPS_MESSAGE_CFG_PRT, - GPS_ACK_TIMEOUT); - - /* If the originally baud negotiated is not the baud just set... */ - if (Baud != baudRate) - { - /* Set the same baudrate we configured so both sides - * now match speeds */ - returnBool = GPS_Custom_Set_Baud(Baud); - if (FALSE == returnBool) - { - returnBool = FALSE; - goto end_of_function; - } - } - /* at this point we have correct baudrate on both ends */ - break; - } - - /* If connection or baudrate detection failed */ - if (i >= sizeof(baudRates) / sizeof(baudRates[0])) - { - returnBool = FALSE; - CFE_EVS_SendEvent(GPS_DEVICE_ERR_EID, CFE_EVS_ERROR, - "GPS connection or baudrate detection failed"); - } - -end_of_function: - return returnBool; - -} - - -boolean GPS_Custom_Set_Baud(const uint32 Baud) -{ - int speed = 0; - int termios_state = 0; - boolean returnBool = TRUE; - struct termios uart_config; - - switch (Baud) - { - case 9600: - speed = B9600; - break; - - case 19200: - speed = B19200; - break; - - case 38400: - speed = B38400; - break; - - case 57600: - speed = B57600; - break; - - case 115200: - speed = B115200; - break; - - case 230400: - speed = B230400; - break; - - default: - CFE_EVS_SendEvent(GPS_DEVICE_ERR_EID, CFE_EVS_ERROR, - "GPS set baudrate unknown rate error"); - returnBool = FALSE; - goto end_of_function; - } - - /* fill the struct for the new configuration */ - tcgetattr(GPS_AppCustomData.DeviceFd, &uart_config); - - /* properly configure the terminal (see also https://en.wikibooks.org/wiki/Serial_Programming/termios ) */ - - /* Input flags - Turn off input processing - * convert break to null byte, no CR to NL translation, - * no NL to CR translation, don't mark parity errors or breaks - * no input parity check, don't strip high bit off, - * no XON/XOFF software flow control - */ - uart_config.c_iflag &= ~(IGNBRK | BRKINT | ICRNL | INLCR | PARMRK | - INPCK | ISTRIP | IXON); - /* Output flags - Turn off output processing - * no CR to NL translation, no NL to CR-NL translation, - * no NL to CR translation, no column 0 CR suppression, - * no Ctrl-D suppression, no fill characters, no case mapping, - * no local output processing - * - * config.c_oflag &= ~(OCRNL | ONLCR | ONLRET | - * ONOCR | ONOEOT| OFILL | OLCUC | OPOST); - */ - uart_config.c_oflag = 0; - /* - * No line processing - * echo off, echo newline off, canonical mode off, - * extended input processing off, signal chars off - */ - uart_config.c_lflag &= ~(ECHO | ECHONL | ICANON | IEXTEN | ISIG); - /* no parity, one stop bit */ - uart_config.c_cflag &= ~(CSTOPB | PARENB); - /* set baud rate */ - termios_state = cfsetispeed(&uart_config, speed); - if (termios_state < 0) - { - CFE_EVS_SendEvent(GPS_DEVICE_ERR_EID, CFE_EVS_ERROR, - "GPS Device set input baud rate failed errno: %i", errno); - returnBool = FALSE; - goto end_of_function; - } - termios_state = cfsetospeed(&uart_config, speed); - if (termios_state < 0) - { - CFE_EVS_SendEvent(GPS_DEVICE_ERR_EID, CFE_EVS_ERROR, - "GPS Device set output baud rate failed errno: %i", errno); - returnBool = FALSE; - goto end_of_function; - } - /* set the parameters */ - termios_state = tcsetattr(GPS_AppCustomData.DeviceFd, TCSANOW, &uart_config); - if (termios_state < 0) - { - CFE_EVS_SendEvent(GPS_DEVICE_ERR_EID, CFE_EVS_ERROR, - "GPS Device set terminal parameters failed errno: %i", errno); - returnBool = FALSE; - } - -end_of_function: - - return returnBool; -} - - -int32 GPS_Custom_Receive(uint8 *Buffer, uint32 Length, uint32 Timeout) -{ - int32 returnCode = 0; - int32 bytesRead = 0; - - /* Null check */ - if(0 == Buffer) - { - CFE_EVS_SendEvent(GPS_DEVICE_ERR_EID, CFE_EVS_ERROR, - "GPS receive null pointer"); - goto end_of_function; - } - /* Wait for GPS data */ - returnCode = GPS_Custom_Select(0, 1000 * Timeout); - if (returnCode <= 0) - { - /* Select timeout or error */ - goto end_of_function; - } - /* Select returned > 0, data is ready to be read, wait for more - * data to be available before calling read */ - usleep(GPS_WAIT_BEFORE_READ * 1000); - - /* Read GPS data */ - bytesRead = read(GPS_AppCustomData.DeviceFd, Buffer, Length); - if (bytesRead <= 0) - { - /* Read failed */ - goto end_of_function; - } - -end_of_function: - - return bytesRead; -} - - -int32 GPS_Custom_Select(const uint32 TimeoutSec, const uint32 TimeoutUSec) -{ - int32 returnCode = 0; - uint32 maxFd = 0; - uint32 retryAttempts = 0; - fd_set fds; - struct timeval timeValue; - maxFd = 0; - returnCode = 0; - - while(retryAttempts != GPS_MAX_RETRY_ATTEMPTS) - { - /* Set the timeout */ - timeValue.tv_sec = TimeoutSec; - timeValue.tv_usec = TimeoutUSec; - - /* Initialize the set */ - FD_ZERO(&fds); - - FD_SET(GPS_AppCustomData.DeviceFd, &fds); - - /* Get the greatest fd value for select() */ - maxFd = GPS_AppCustomData.DeviceFd; - - //CFE_ES_PerfLogEntry(GPS_DEVICE_GET_PERF_ID); - /* Wait for RC data */ - returnCode = select(maxFd + 1, &fds, 0, 0, &timeValue); - //CFE_ES_PerfLogExit(GPS_DEVICE_GET_PERF_ID); - - /* select() wasn't successful */ - if (-1 == returnCode) - { - /* select was interrupted, try again */ - if (EINTR == errno) - { - CFE_EVS_SendEvent(GPS_DEVICE_ERR_EID, CFE_EVS_ERROR, - "GPS select was interrupted"); - usleep(GPS_MAX_RETRY_SLEEP_USEC); - retryAttempts++; - continue; - } - else - { - /* select returned an error other than EINTR */ - CFE_EVS_SendEvent(GPS_DEVICE_ERR_EID, CFE_EVS_ERROR, - "GPS select() returned errno: %i", errno); - break; - } - } - /* select timed out */ - if (0 == returnCode) - { - // TODO add state to not raise this event during initialization. - //CFE_EVS_SendEvent(GPS_DEVICE_ERR_EID, CFE_EVS_ERROR, - //"GPS select() timed out"); - break; - } - /* select() returned and data is ready to be read */ - if(returnCode > 0) - { - break; - } - } /* end while loop*/ - - return returnCode; -} - - -boolean GPS_Custom_SetChecksum(const uint8 *buffer, const uint16 length, GPS_Checksum_t *checksum) -{ - uint16 i = 0; - boolean returnBool = TRUE; - - /* Null check */ - if(0 == checksum || 0 == buffer) - { - CFE_EVS_SendEvent(GPS_DEVICE_ERR_EID, CFE_EVS_ERROR, - "GPS set checksum null pointer"); - returnBool = FALSE; - goto end_of_function; - } - - for (i = 0; i < length; i++) - { - checksum->ck_a = checksum->ck_a + buffer[i]; - checksum->ck_b = checksum->ck_b + checksum->ck_a; - } - -end_of_function: - return returnBool; -} - - -boolean GPS_Custom_SendEmptyMessage(const uint16 msg) -{ - boolean returnBool = TRUE; - int bytesWritten = 0; - GPS_Header_t header = { GPS_HEADER_SYNC1_VALUE, - GPS_HEADER_SYNC2_VALUE, - 0, - 0 }; - - GPS_Checksum_t checksum = { 0, 0 }; - - /* Populate header */ - header.msg = msg; - header.length = 0; - - /* Calculate header checksum, skip two sync bytes */ - returnBool = GPS_Custom_SetChecksum((uint8 *)&header + 2, - sizeof(header) - 2, &checksum); - if (FALSE == returnBool) - { - returnBool = FALSE; - goto end_of_function; - } - - /* Send message */ - bytesWritten = write(GPS_AppCustomData.DeviceFd, (void *)&header, - sizeof(header)); - if (bytesWritten != sizeof(header)) - { - returnBool = FALSE; - goto end_of_function; - } - - bytesWritten = write(GPS_AppCustomData.DeviceFd, (void *)&checksum, - sizeof(checksum)); - - if (bytesWritten != sizeof(checksum)) - { - returnBool = FALSE; - } - -end_of_function: - - return returnBool; -} - - -boolean GPS_Custom_SendMessage(const uint16 msg, const uint8 *payload, const uint16 length) -{ - boolean returnBool = TRUE; - int bytesWritten = 0; - GPS_Header_t header = { GPS_HEADER_SYNC1_VALUE, - GPS_HEADER_SYNC2_VALUE, - 0, - 0 }; - - GPS_Checksum_t checksum = { 0, 0 }; - - /* Null check */ - if(0 == payload) - { - CFE_EVS_SendEvent(GPS_DEVICE_ERR_EID, CFE_EVS_ERROR, - "GPS send message null pointer"); - returnBool = FALSE; - goto end_of_function; - } - - /* Populate header */ - header.msg = msg; - header.length = length; - - /* Calculate header checksum, skip two sync bytes */ - returnBool = GPS_Custom_SetChecksum((uint8 *)&header + 2, - sizeof(header) - 2, &checksum); - if (FALSE == returnBool) - { - returnBool = FALSE; - goto end_of_function; - } - - /* Calculate (add) payload checksum */ - returnBool = GPS_Custom_SetChecksum(payload, length, &checksum); - if (FALSE == returnBool) - { - returnBool = FALSE; - goto end_of_function; - } - - /* Send message */ - bytesWritten = write(GPS_AppCustomData.DeviceFd, (void *)&header, - sizeof(header)); - if (bytesWritten != sizeof(header)) - { - returnBool = FALSE; - goto end_of_function; - } - - bytesWritten = write(GPS_AppCustomData.DeviceFd, (void *)payload, - length); - if (bytesWritten != length) - { - returnBool = FALSE; - goto end_of_function; - } - - bytesWritten = write(GPS_AppCustomData.DeviceFd, (void *)&checksum, - sizeof(checksum)); - - if (bytesWritten != sizeof(checksum)) - { - returnBool = FALSE; - } - -end_of_function: - - return returnBool; -} - - -void GPS_Stream_Task(void) -{ - uint32 iStatus = -1; - boolean returnBool = FALSE; - - iStatus = CFE_ES_RegisterChildTask(); - - if (iStatus == CFE_SUCCESS) - { - GPS_AppCustomData.Status = GPS_CUSTOM_STREAMING; - while (GPS_AppCustomData.ContinueFlag == TRUE) - { - returnBool = GPS_Custom_Read_and_Parse(GPS_PACKET_TIMEOUT); - if(returnBool == FALSE) - { - /* TODO remove me*/ - OS_printf("GPS parse and read failed\n"); - } - else - { - GPS_EventDrivenPublish(); - } - } - } - - /* Streaming task is exiting so set app flag to initialized */ - GPS_AppCustomData.Status = GPS_CUSTOM_INITIALIZED; - CFE_EVS_SendEvent(GPS_DEVICE_ERR_EID, CFE_EVS_ERROR, - "GPS receive task exited with task status (0x%08lX)", iStatus); - - /* The child task was successfully registered so exit from it */ - if (iStatus == CFE_SUCCESS) - { - CFE_ES_ExitChildTask(); - } -} - - -boolean GPS_Custom_Read_and_Parse(const uint32 timeout) -{ - boolean returnBool = TRUE; - uint32 i = 0; - uint32 j = 0; - uint16 satCount = 0; - int32 bytesRead = 0; - uint8 from_gps_data[GPS_READ_BUFFER_SIZE]; - boolean done = FALSE; - - bytesRead = GPS_Custom_Receive(&from_gps_data[0], sizeof(from_gps_data), timeout); - - if (bytesRead < 0) - { - returnBool = FALSE; - goto end_of_function; - } - for(i = 0; i < bytesRead; ++i) - { - if(GPS_ParseChar(from_gps_data[i], &GPS_AppCustomData.Message, &done)) - { - /* If parsechar completed a message... */ - if(TRUE == done) - { - /* TODO remove after debug*/ - //OS_printf("ParseChar completed a message\n"); - /* end todo */ - - /* Copy message to the CVT */ - CFE_SB_MsgId_t msgID = CFE_SB_GetMsgId((CFE_SB_Msg_t*)&GPS_AppCustomData.Message); - switch(msgID) - { - case GPS_NAV_DOP_MID: - { - //OS_printf("IN GPS_NAV_DOP_MID\n"); - GPS_NAV_DOP_t *msgIn = (GPS_NAV_DOP_t*) CFE_SB_GetUserData((CFE_SB_Msg_t*)&GPS_AppCustomData.Message); - OS_MutSemTake(GPS_AppCustomData.MutexPosition); - /* from cm to m */ - GPS_AppCustomData.GpsPositionMsg.HDOP = msgIn->hDOP * 0.01f; - /* from cm to m */ - GPS_AppCustomData.GpsPositionMsg.VDOP = msgIn->vDOP * 0.01f; - OS_MutSemGive(GPS_AppCustomData.MutexPosition); - break; - } - case GPS_NAV_NAVPVT_MID: - { - //OS_printf("IN GPS_NAV_NAVPVT_MID\n"); - GPS_NAV_PVT_t *msgIn = (GPS_NAV_PVT_t*) CFE_SB_GetUserData((CFE_SB_Msg_t*)&GPS_AppCustomData.Message); - OS_MutSemTake(GPS_AppCustomData.MutexPosition); - /* Check if position fix flag is good */ - if ((msgIn->flags & GPS_NAV_PVT_FLAGS_GNSSFIXOK) == 1) - { - uint8 carr_soln = msgIn->flags >> 6; - GPS_AppCustomData.GpsPositionMsg.FixType = msgIn->fixType; - - if (msgIn->flags & GPS_NAV_PVT_FLAGS_DIFFSOLN) - { - /* DGPS */ - GPS_AppCustomData.GpsPositionMsg.FixType = 4; - } - - if (carr_soln == 1) - { - /* Float RTK */ - GPS_AppCustomData.GpsPositionMsg.FixType = 5; - - } - else if (carr_soln == 2) - { - /* Fixed RTK */ - GPS_AppCustomData.GpsPositionMsg.FixType = 6; - } - - GPS_AppCustomData.GpsPositionMsg.VelNedValid = TRUE; - } - else - { - GPS_AppCustomData.GpsPositionMsg.FixType = 0; - GPS_AppCustomData.GpsPositionMsg.VelNedValid = FALSE; - } - - GPS_AppCustomData.GpsPositionMsg.SatellitesUsed = - msgIn->numSV; - - GPS_AppCustomData.GpsPositionMsg.Lat = - msgIn->lat; - GPS_AppCustomData.GpsPositionMsg.Lon = - msgIn->lon; - GPS_AppCustomData.GpsPositionMsg.Alt = - msgIn->hMSL; - - GPS_AppCustomData.GpsPositionMsg.EpH = - (float)msgIn->hAcc * 1e-3f; - GPS_AppCustomData.GpsPositionMsg.EpV = - (float)msgIn->vAcc * 1e-3f; - GPS_AppCustomData.GpsPositionMsg.SVariance = - (float)msgIn->sAcc * 1e-3f; - - GPS_AppCustomData.GpsPositionMsg.Vel_m_s = - (float)msgIn->gSpeed * 1e-3f; - - GPS_AppCustomData.GpsPositionMsg.Vel_n_m_s = - (float)msgIn->velN * 1e-3f; - GPS_AppCustomData.GpsPositionMsg.Vel_e_m_s = - (float)msgIn->velE * 1e-3f; - GPS_AppCustomData.GpsPositionMsg.Vel_d_m_s = - (float)msgIn->velD * 1e-3f; - - GPS_AppCustomData.GpsPositionMsg.COG = - (float)msgIn->headMot * M_DEG_TO_RAD_F * 1e-5f; - GPS_AppCustomData.GpsPositionMsg.CVariance = - (float)msgIn->headAcc * M_DEG_TO_RAD_F * 1e-5f; - - //Check if time and date fix flags are good - if ((msgIn->valid & GPS_NAV_PVT_VALID_VALIDDATE) - && (msgIn->valid & GPS_NAV_PVT_VALID_VALIDTIME) - && (msgIn->valid & GPS_NAV_PVT_VALID_FULLYRESOLVED)) - { - /* convert to unix timestamp */ - struct tm timeinfo; - timeinfo.tm_year = msgIn->year - 1900; - timeinfo.tm_mon = msgIn->month - 1; - timeinfo.tm_mday = msgIn->day; - timeinfo.tm_hour = msgIn->hour; - timeinfo.tm_min = msgIn->min; - timeinfo.tm_sec = msgIn->sec; - - time_t epoch = mktime(&timeinfo); - - if (epoch > GPS_EPOCH_SECS) - { - // FMUv2+ boards have a hardware RTC, but GPS helps us to configure it - // and control its drift. Since we rely on the HRT for our monotonic - // clock, updating it from time to time is safe. - - struct timespec ts; - ts.tv_sec = epoch; - ts.tv_nsec = msgIn->nano; - - //setClock(ts); - - GPS_AppCustomData.GpsPositionMsg.TimeUtcUsec = ((uint64)epoch) * 1000000ULL; - GPS_AppCustomData.GpsPositionMsg.TimeUtcUsec += msgIn->nano / 1000; - } - else - { - GPS_AppCustomData.GpsPositionMsg.TimeUtcUsec = 0; - } - } - - GPS_AppCustomData.GpsPositionMsg.Timestamp = PX4LIB_GetPX4TimeUs(); - //GPS_AppCustomData.LastTimeStamp = GPS_AppCustomData.GpsPositionMsg.Timestamp; - - /* TODO position and velocity update rate functions - * and a reset function */ - GPS_AppCustomData.RateCountVel++; - GPS_AppCustomData.RateCountLatLon++; - GPS_AppCustomData.GotPosllh = TRUE; - GPS_AppCustomData.GotVelned = TRUE; - - /* TODO verify this for NAV-PVT */ - //GPS_AppCustomData.GpsPositionMsg.TimestampTimeRelative = 0; - - OS_MutSemGive(GPS_AppCustomData.MutexPosition); - break; - } - case GPS_NAV_SVINFO_MID: - { - //OS_printf("IN GPS_NAV_SVINFO_MID\n"); - GPS_NAV_SVINFO_Combined_t *msgIn = (GPS_NAV_SVINFO_Combined_t*) CFE_SB_GetUserData((CFE_SB_Msg_t*)&GPS_AppCustomData.Message); - - OS_MutSemTake(GPS_AppCustomData.MutexSatInfo); - - GPS_AppCustomData.GpsSatInfoMsg.Count = msgIn->svinfo.numCh; - satCount = GPS_AppCustomData.GpsSatInfoMsg.Count; - - if(GPS_AppCustomData.GpsSatInfoMsg.Count > PX4_SAT_INFO_MAX_SATELLITES) - { - CFE_EVS_SendEvent(GPS_DEVICE_ERR_EID, CFE_EVS_ERROR, - "GPS sat count %hhu > max buffer length %hhu", - GPS_AppCustomData.GpsSatInfoMsg.Count, - PX4_SAT_INFO_MAX_SATELLITES); - satCount = PX4_SAT_INFO_MAX_SATELLITES; - } - for(j = 0; j< satCount; j++) - { - GPS_AppCustomData.GpsSatInfoMsg.Used[j] = - (uint8)(msgIn->numCh[j].flags & 0x01); - GPS_AppCustomData.GpsSatInfoMsg.SNR[j] = - (uint8)(msgIn->numCh[j].cno); - - GPS_AppCustomData.GpsSatInfoMsg.Elevation[j] = - (uint8)(msgIn->numCh[j].elev); - GPS_AppCustomData.GpsSatInfoMsg.Azimuth[j] = - (uint8)((float)msgIn->numCh[j].azim * 255.0f / 360.0f); - GPS_AppCustomData.GpsSatInfoMsg.SVID[j] = - (uint8)(msgIn->numCh[j].svid); - } - - GPS_AppCustomData.GpsSatInfoMsg.Timestamp = PX4LIB_GetPX4TimeUs(); - - OS_MutSemGive(GPS_AppCustomData.MutexSatInfo); - break; - } - case GPS_ACK_NAK_MID: - { - break; - } - case GPS_ACK_ACK_MID: - { - break; - } - case GPS_CFG_PRT_MID: - { - break; - } - case GPS_CFG_MSG_MID: - { - break; - } - case GPS_CFG_RATE_MID: - { - break; - } - case GPS_CFG_SBAS_MID: - { - break; - } - case GPS_CFG_NAV5_MID: - { - break; - } - case GPS_MON_HW_MID: - { - //OS_printf("IN GPS_MON_HW_MID\n"); - OS_MutSemTake(GPS_AppCustomData.MutexPosition); - GPS_MON_HW_t *msgIn = (GPS_MON_HW_t*) CFE_SB_GetUserData((CFE_SB_Msg_t*)&GPS_AppCustomData.Message); - - GPS_AppCustomData.GpsPositionMsg.NoisePerMs = msgIn->noisePerMS; - GPS_AppCustomData.GpsPositionMsg.JammingIndicator = msgIn->jamInd; - - OS_MutSemGive(GPS_AppCustomData.MutexPosition); - break; - } - default: - { - CFE_EVS_SendEvent(GPS_DEVICE_ERR_EID, CFE_EVS_ERROR, - "GPS parser received unexpected message %x", msgID); - } - } - } - } - } - -end_of_function: - return returnBool; -} - - -boolean GPS_Custom_WaitForAck(const uint16 msg, const uint32 timeout) -{ - uint32 i = 0; - int32 bytesRead = 0; - uint8 from_gps_data[GPS_READ_BUFFER_SIZE]; - boolean done = FALSE; - boolean timedOut = FALSE; - boolean returnBool = FALSE; - uint64 timeStamp = 0; - uint64 startTime = 0; - - /* Set the ack state to waiting */ - GPS_AppCustomData.AckState = GPS_ACK_WAITING; - /* Set the message we're looking for */ - GPS_AppCustomData.AckWaitingMsg = msg; - /* Set the received ack boolean to false */ - GPS_AppCustomData.AckWaitingRcvd = FALSE; - - /* Get the start time */ - startTime = PX4LIB_GetPX4TimeUs(); - if(0 == startTime) - { - goto end_of_function; - } - - /* while we haven't timed out keep looking for the message */ - while(FALSE == timedOut) - { - /* Get the loop iteration time */ - timeStamp = PX4LIB_GetPX4TimeUs(); - if(0 == timeStamp) - { - goto end_of_function; - } - - /* If we've timed out out set the flag to true */ - if(timeStamp >= startTime + timeout * 1000) - { - /* TODO remove after debug*/ - //OS_printf("WaitForAck timed out\n"); - /* */ - timedOut = TRUE; - } - - returnBool = GPS_Custom_Read_and_Parse(GPS_PACKET_TIMEOUT); - if(TRUE == returnBool && FALSE == timedOut) - { - /* TODO move to read and parse message decode */ - if(GPS_AppCustomData.AckState == GPS_ACK_GOT_ACK && - GPS_AppCustomData.AckWaitingRcvd == TRUE) - { - /* TODO remove after debug*/ - //OS_printf("Got an ACK\n"); - /* */ - returnBool = TRUE; - goto end_of_function; - } - if(GPS_AppCustomData.AckState == GPS_ACK_GOT_NAK && - GPS_AppCustomData.AckWaitingRcvd == TRUE) - { - /* TODO remove after debug*/ - //OS_printf("Got an NAK\n"); - /* */ - returnBool = FALSE; - goto end_of_function; - } - } - - //bytesRead = GPS_Custom_Receive(&from_gps_data[0], sizeof(from_gps_data), GPS_PACKET_TIMEOUT); - ///* TODO REMOVE ME */ - //for(i = 0; i < bytesRead; ++i) - //{ - //OS_printf(" bytes = %hhx ", from_gps_data[i]); - //} - //OS_printf("\n"); - ///* end todo*/ - //for(i = 0; (FALSE == timedOut) && (i < bytesRead); ++i) - //{ - //GPS_DeviceMessage_t message; - //GPS_ParserStatus_t status; - - //if(GPS_ParseChar(from_gps_data[i], &message, &status, &done)) - //{ - ///* TODO remove after debug*/ - //if(TRUE == done) - //{ - //OS_printf("ParseChar completed a message\n"); - //} - ///* end todo */ - - //if(GPS_AppCustomData.AckState == GPS_ACK_GOT_ACK && - //GPS_AppCustomData.AckWaitingRcvd == TRUE) - //{ - ///* TODO remove after debug*/ - //OS_printf("Got an ACK\n"); - ///* */ - //returnBool = TRUE; - //goto end_of_function; - //} - //if(GPS_AppCustomData.AckState == GPS_ACK_GOT_NAK && - //GPS_AppCustomData.AckWaitingRcvd == TRUE) - //{ - ///* TODO remove after debug*/ - //OS_printf("Got an NAK\n"); - ///* */ - //returnBool = FALSE; - //goto end_of_function; - //} - //} - //} - } - -end_of_function: - -return returnBool; -} - - -boolean GPS_Custom_Configure(void) -{ - boolean returnBool = TRUE; - - /* TODO move this struct define to gps_ubx_msg */ - GPS_Payload_TX_CFG_Rate_t rateConfig; - - GPS_CFG_NAV5_t navConfig; - GPS_CFG_SBAS_t sbasConfig; - - /* Setup rate configuration */ - memset(&rateConfig, 0, sizeof(GPS_Payload_TX_CFG_Rate_t)); - rateConfig.measRate = GPS_TX_CFG_RATE_MEASINTERVAL; - rateConfig.navRate = GPS_TX_CFG_RATE_NAVRATE; - rateConfig.timeRef = GPS_TX_CFG_RATE_TIMEREF; - - /* Setup NAV5 configuration */ - memset(&navConfig, 0, sizeof(GPS_CFG_NAV5_t)); - navConfig.mask = GPS_TX_CFG_NAV5_MASK; - navConfig.dynModel = GPS_TX_CFG_NAV5_DYNMODEL; - navConfig.fixMode = GPS_TX_CFG_NAV5_FIXMODE;; - - /* Setup SBAS configuration */ - memset(&sbasConfig, 0, sizeof(GPS_CFG_SBAS_t)); - sbasConfig.mode = GPS_TX_CFG_SBAS_MODE; - - /* Send a CFG-RATE message to define update rate */ - returnBool = GPS_Custom_SendMessage(GPS_MESSAGE_CFG_RATE, - (uint8 *)&rateConfig, sizeof(GPS_Payload_TX_CFG_Rate_t)); - if(FALSE == returnBool) - { - goto end_of_function; - } - - returnBool = GPS_Custom_WaitForAck(GPS_MESSAGE_CFG_RATE, - GPS_ACK_TIMEOUT); - if(FALSE == returnBool) - { - goto end_of_function; - } - /* send a NAV5 message to set the options for the internal filter */ - returnBool = GPS_Custom_SendMessage(GPS_MESSAGE_CFG_NAV5, - (uint8 *)&navConfig, sizeof(GPS_CFG_NAV5_t)); - if(FALSE == returnBool) - { - goto end_of_function; - } - - returnBool = GPS_Custom_WaitForAck(GPS_MESSAGE_CFG_NAV5, - GPS_ACK_TIMEOUT); - if(FALSE == returnBool) - { - goto end_of_function; - } - /* send a SBAS message to set the SBAS options */ - returnBool = GPS_Custom_SendMessage(GPS_MESSAGE_CFG_SBAS, - (uint8 *)&sbasConfig, sizeof(GPS_CFG_SBAS_t)); - if(FALSE == returnBool) - { - goto end_of_function; - } - - returnBool = GPS_Custom_WaitForAck(GPS_MESSAGE_CFG_SBAS, - GPS_ACK_TIMEOUT); - if(FALSE == returnBool) - { - goto end_of_function; - } - - /* Set NAV-PVT rate */ - returnBool = GPS_Custom_SendMessageRate(GPS_MESSAGE_NAV_PVT, 1); - if(FALSE == returnBool) - { - goto end_of_function; - } - - returnBool = GPS_Custom_WaitForAck(GPS_MESSAGE_CFG_MSG, - GPS_ACK_TIMEOUT); - if(FALSE == returnBool) - { - goto end_of_function; - } - - /* Set NAV-DOP rate */ - returnBool = GPS_Custom_SendMessageRate(GPS_MESSAGE_NAV_DOP, 1); - if(FALSE == returnBool) - { - goto end_of_function; - } - - returnBool = GPS_Custom_WaitForAck(GPS_MESSAGE_CFG_MSG, - GPS_ACK_TIMEOUT); - if(FALSE == returnBool) - { - goto end_of_function; - } - - ///* Set NAV-SVINFO rate */ - //returnBool = GPS_Custom_SendMessageRate(GPS_MESSAGE_NAV_SVINFO, 5); - //if(FALSE == returnBool) - //{ - //goto end_of_function; - //} - - //returnBool = GPS_Custom_WaitForAck(GPS_MESSAGE_CFG_MSG, - //GPS_ACK_TIMEOUT); - //if(FALSE == returnBool) - //{ - //goto end_of_function; - //} - - /* Set MON-HW rate */ - returnBool = GPS_Custom_SendMessageRate(GPS_MESSAGE_MON_HW, 1); - if(FALSE == returnBool) - { - goto end_of_function; - } - - returnBool = GPS_Custom_WaitForAck(GPS_MESSAGE_CFG_MSG, - GPS_ACK_TIMEOUT); - if(FALSE == returnBool) - { - goto end_of_function; - } - -end_of_function: - - return returnBool; -} - - -boolean GPS_Custom_SendMessageRate(const uint16 msg, const uint8 rate) -{ - GPS_Payload_TX_CFG_Rate_Msg_t rateMsgConfig; - memset(&rateMsgConfig, 0, sizeof(rateMsgConfig)); - rateMsgConfig.msg = msg; - rateMsgConfig.rate = rate; - - return GPS_Custom_SendMessage(GPS_MESSAGE_CFG_MSG, - (uint8 *)&rateMsgConfig, sizeof(rateMsgConfig)); - -} diff --git a/config/obc/ppd/target/apps/gps/src/gps_interface_uart/gps_serial.h b/config/obc/ppd/target/apps/gps/src/gps_interface_uart/gps_serial.h deleted file mode 100644 index 488ed009e..000000000 --- a/config/obc/ppd/target/apps/gps/src/gps_interface_uart/gps_serial.h +++ /dev/null @@ -1,658 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ - -#ifndef GPS_SERIAL_H -#define GPS_SERIAL_H -/************************************************************************ -** Includes -*************************************************************************/ -#include "gps_custom.h" -#include "../gps_custom_shared.h" -#include "cfe.h" -#include "px4_msgs.h" - -#ifdef __cplusplus -extern "C" { -#endif -/************************************************************************ -** Local Defines -*************************************************************************/ -/** \brief GPS device path. */ -#define GPS_SERIAL_DEVICE_PATH "/dev/ttyS3" - -/** \brief IO speed. -** -** \par Description: -** The serial IO speed 38400 baud. -*/ -#define GPS_SERIAL_IO_SPEED 38400 - -/** \brief Wait time (ms) before read. -** -** \par Description: -** ms, wait before reading to save read() calls. -*/ -#define GPS_WAIT_BEFORE_READ (20) - -/** \brief GPS packet timeout (ms). -** -** \par Description: -** ms, timeout to receive packet. -*/ -#define GPS_PACKET_TIMEOUT (200) - -/** \brief GPS ack timeout. -** -** \par Description: -** ms, timeout to wait for ack. -*/ -#define GPS_ACK_TIMEOUT (1000) - - -/** \brief GPS payload scanner buffer size. -** -** \par Description: -** GPS payload scanner length. -*/ -//#define GPS_SCANNER_BUFFER_LENGTH (1024) - -/* Message Classes */ -/** \brief Configuration input class. -** -** \par Description: -** UBX class ID configuration. -*/ -#define GPS_MESSAGE_CLASS_CFG (0x06) - - -#define GPS_MESSAGE_CLASS_NAV (0x01) - -#define GPS_MESSAGE_CLASS_MON (0x0A) - -/* Message IDs */ -/** \brief Message ID port configuration. -** -** \par Description: -** Message ID for port configuration. -*/ -#define GPS_MESSAGE_ID_CFG_PRT (0x00) - -/** \brief Message ID rate configuration. -** -** \par Description: -** Message ID for rate configuration. -*/ -#define GPS_MESSAGE_ID_CFG_RATE (0x08) - -/** \brief Message ID for message rate configuration. -** -** \par Description: -** Message ID for message rate configuration. -*/ -#define GPS_MESSAGE_ID_CFG_MSG (0x01) - -/** \brief Message ID NAV5 configuration. -** -** \par Description: -** Message ID for NAV5 configuration. -*/ -#define GPS_MESSAGE_ID_CFG_NAV5 (0x24) - -/** \brief Message ID SBAS configuration. -** -** \par Description: -** Message ID for SBAS configuration. -*/ -#define GPS_MESSAGE_ID_CFG_SBAS (0x16) - -/** \brief Message ID navigation position velocity time solution. -** -** \par Description: -** Message ID for NAV-PVT. -*/ -#define GPS_MESSAGE_ID_NAV_PVT (0x07) - -/** \brief Message ID dilution of precision. -** -** \par Description: -** Message ID for NAV-DOP. -*/ -#define GPS_MESSAGE_ID_NAV_DOP (0x04) - -/** \brief Message ID space vehicle information. -** -** \par Description: -** Message ID for NAV-SVINFO. -*/ -#define GPS_MESSAGE_ID_NAV_SVINFO (0x30) - -/** \brief Message ID extended hardware status. -** -** \par Description: -** Message ID for MON-HW. -*/ -#define GPS_MESSAGE_ID_MON_HW (0x09) - -/* TX CFG-PRT message contents */ -/** \brief UART 1 port number. -** -** \par Description: -** Port interface number. -*/ -#define GPS_TX_CFG_PRT_PORTID (0x01) - -/** \brief Mode bitfield configuration. -** -** \par Description: -** 0b0000100011010000: 8N1 -*/ -#define GPS_TX_CFG_PRT_MODE (0x000008D0) - -/** \brief Input protocol configuration. -** -** \par Description: -** UBX in. -*/ -#define GPS_TX_CFG_PRT_INPROTOMASK_GPS (0x01) - -/** \brief Output protocol configuration. -** -** \par Description: -** UBX out. -*/ -#define GPS_TX_CFG_PRT_OUTPROTOMASK_GPS (0x01) - -/** \brief USB port number. -** -** \par Description: -** Port interface number. -*/ -#define GPS_TX_CFG_PRT_PORTID_USB (0x03) -/* TX CFG-Rate message contents */ - -/** \brief Measurement interval. -** -** \par Description: -** The elapsed time between GNSS measurements. 200ms for 5Hz. -*/ -#define GPS_TX_CFG_RATE_MEASINTERVAL (200) - -/** \brief Navigation measurement rate. -** -** \par Description: -** This parameter is ignosed and the navRate is fixed to 1 in -** protocol versions less than 18. -*/ -#define GPS_TX_CFG_RATE_NAVRATE (1) - -/** \brief Time reference. -** -** \par Description: -** 0: UTC, 1: GPS time. -*/ -#define GPS_TX_CFG_RATE_TIMEREF (0) - -/* TX CFG-NAV5 message contents */ - -/** \brief Nav5 parameters bitmask. -** -** \par Description: -** Only update dynamic model and fix mode. -*/ -#define GPS_TX_CFG_NAV5_MASK (0x0005) - -/** \brief Nav5 position fixing mode. -** -** \par Description: -** 1 2D only, 2 3D only, 3 Auto 2D/3D. -*/ -#define GPS_TX_CFG_NAV5_FIXMODE (2) - -/** \brief Nav5 dynamic platform model. -** -** \par Description: -** 7 = airborne with <2g acceleration. -*/ -#define GPS_TX_CFG_NAV5_DYNMODEL (7) - -/* TX CFG-SBAS message contents */ -/** \brief SBAS configuration mode. -** -** \par Description: -** 1 = SBAS enabled, 2 = SBAS disabled. -*/ -#define GPS_TX_CFG_SBAS_MODE (1) - - - -/* UBX header contents */ -/** \brief Header symbol 1. -** -** \par Description: -** UBX header symbol 1. -*/ -#define GPS_HEADER_SYNC1_VALUE (0xb5) - -/** \brief Header symbol 2. -** -** \par Description: -** UBX header symbol 2. -*/ -#define GPS_HEADER_SYNC2_VALUE (0x62) - -/* Message Classes & IDs */ -#define GPS_MESSAGE_CFG_PRT ((GPS_MESSAGE_CLASS_CFG) | \ - GPS_MESSAGE_ID_CFG_PRT << 8) - -#define GPS_MESSAGE_CFG_RATE ((GPS_MESSAGE_CLASS_CFG) | \ - GPS_MESSAGE_ID_CFG_RATE << 8) - - -#define GPS_MESSAGE_CFG_NAV5 ((GPS_MESSAGE_CLASS_CFG) | \ - GPS_MESSAGE_ID_CFG_NAV5 << 8) - -#define GPS_MESSAGE_CFG_SBAS ((GPS_MESSAGE_CLASS_CFG) | \ - GPS_MESSAGE_ID_CFG_SBAS << 8) - -#define GPS_MESSAGE_CFG_MSG ((GPS_MESSAGE_CLASS_CFG) | \ - GPS_MESSAGE_ID_CFG_MSG << 8) - -#define GPS_MESSAGE_NAV_PVT ((GPS_MESSAGE_CLASS_NAV) | \ - GPS_MESSAGE_ID_NAV_PVT << 8) - -#define GPS_MESSAGE_NAV_DOP ((GPS_MESSAGE_CLASS_NAV) | \ - GPS_MESSAGE_ID_NAV_DOP << 8) - -#define GPS_MESSAGE_NAV_SVINFO ((GPS_MESSAGE_CLASS_NAV) | \ - GPS_MESSAGE_ID_NAV_SVINFO << 8) - -#define GPS_MESSAGE_MON_HW ((GPS_MESSAGE_CLASS_MON) | \ - GPS_MESSAGE_ID_MON_HW << 8) - -/** \brief Retry attemps for interrupted calls. -** -** \par Limits: -** None. -*/ -#define GPS_MAX_RETRY_ATTEMPTS (2) - -/** \brief Sleep time micro seconds for interrupted calls. -** -** \par Limits: -** None. -*/ -#define GPS_MAX_RETRY_SLEEP_USEC (10) - -/** \brief Streaming task priority -** -** \par Limits: -** 0 to MAX_PRIORITY (usually 255) -*/ -#define GPS_STREAMING_TASK_PRIORITY (94) - -/** \brief GPS shared data mutex name. */ -#define GPS_MUTEX_POS "GPS_MUTEX_POS" - -/** \brief GPS shared data mutex name. */ -#define GPS_MUTEX_DUMP "GPS_MUTEX_DUMP" - -/** \brief GPS shared data mutex name. */ -#define GPS_MUTEX_SAT "GPS_MUTEX_SAT" - -/** \brief Streaming task name -** -** \par Limits: -** OS_MAX_API_NAME -*/ -#define GPS_STREAMING_TASK_NAME "GPS_STREAM" - -// TODO: this number seems wrong -#define GPS_EPOCH_SECS ((time_t)1234567890ULL) - -#define M_DEG_TO_RAD_F (0.01745329251994329576f) - -/************************************************************************ -** Structure Declarations -*************************************************************************/ - -#pragma pack(push, 1) -/** - * \brief GPS port configuration payload message. - */ - /* TODO use struct defined in gps_ubx_msg instead */ -typedef struct -{ - /*! Port Identifier Number */ - uint8 portID; - /*! Reserved */ - uint8 reserved1; - /*! TX ready PIN configuration */ - uint16 txReady; - /*! A bit mask describing the UART mode */ - uint32 mode; - /*! Baud rate in bits/second */ - uint32 baudRate; - /*! A mask describing which input protocols are active. */ - uint16 inProtoMask; - /*! A mask describing which output protocols are active. */ - uint16 outProtoMask; - /*! Flags bit mask */ - uint16 flags; - /*! Reserved */ - uint16 reserved2; -} GPS_Payload_TX_CFG_PRT_t; - - -/** - * \brief GPS message rate configuration payload message. - */ -/* TODO move to gps_ubx_msg */ -typedef struct -{ - /*! Measurement Rate */ - uint16 measRate; - /*! Navigation Rate */ - uint16 navRate; - /*! Alignment to reference time: 0 = UTC time, 1 = GPS time */ - uint16 timeRef; -} GPS_Payload_TX_CFG_Rate_t; - - -/* TODO move to gps_ubx_msg*/ -/** - * \brief GPS message rate configuration message. - */ -typedef struct -{ - uint16 msg; - uint8 rate; -} GPS_Payload_TX_CFG_Rate_Msg_t; - -/** - * \brief GPS UBX protocol header. - */ -typedef struct -{ - /*! Sync symbol 1 */ - uint8 sync1; - /*! Sync symbol 1 */ - uint8 sync2; - /*! Message */ - uint16 msg; - /*! Message length */ - uint16 length; -} GPS_Header_t; - -/** - * \brief GPS UBX protocol checksum. - */ -typedef struct -{ - /*! checksum check A*/ - uint8 ck_a; - /*! checksum check B*/ - uint8 ck_b; -} GPS_Checksum_t; - -#pragma pack(pop) - - -/************************************************************************ -** External Global Variables -*************************************************************************/ - -/************************************************************************ -** Function Prototypes -*************************************************************************/ -/************************************************************************/ -/** \brief Negotiate GPS baud rate. -** -** \par Description -** This function tries different baud rates to initially establish -** communication and attempts to set the baud rate specified. -** -** \par Assumptions, External Events, and Notes: -** A device must be initialized before this function is called. -** -** \param [in] Baud The baud rate to attempt to set. -** -** \returns boolean, TRUE for success, FALSE for failure. -** -*************************************************************************/ -boolean GPS_Custom_Negotiate_Baud(const uint32 Baud); - -/************************************************************************/ -/** \brief Set baud rate. -** -** \par Description -** This function attempts to set the baud rate for the opened -** device. -** -** \par Assumptions, External Events, and Notes: -** A device must be initialized before this function is called. -** -** \param [in] Baud The baud rate to attempt to set. -** -** \returns boolean, TRUE for success, FALSE for failure. -** -*************************************************************************/ -boolean GPS_Custom_Set_Baud(const uint32 Baud); - - -/************************************************************************/ -/** \brief Sends a message to the GPS device. -** -** \par Description -** This function attempts to send a message to the GPS device. -** -** \par Assumptions, External Events, and Notes: -** A device must be initialized and baudrate configured before -** this function is called. This function does not send empty -** messages. A payload must be supplied. -** -** \param [in] msg The message id. -** -** \param [in] payload The message payload. -** -** \param [in] length The message length. -** -** \returns boolean, TRUE for success, FALSE for failure. -** -*************************************************************************/ -boolean GPS_Custom_SendMessage(const uint16 msg, const uint8 *payload, const uint16 length); - -/************************************************************************/ -/** \brief Sends a empty message to the GPS device. -** -** \par Description -** This function attempts to send an empty (no payload) message -** to the GPS device. -** -** \par Assumptions, External Events, and Notes: -** A device must be initialized and baudrate configured before -** this function is called. -** -** \param [in] msg The message id. -** -** \returns boolean, TRUE for success, FALSE for failure. -** -*************************************************************************/ -boolean GPS_Custom_SendEmptyMessage(const uint16 msg); - -/************************************************************************/ -/** \brief Set a checksum. -** -** \par Description -** This function calculates and populates the checksum structure. -** -** \par Assumptions, External Events, and Notes: -** None. -** -** \param [in] buffer The buffer to use for checksum -** calculation. -** -** \param [in] length The buffer length. -** -** \param [out] checksum The checksum structure to populate with -** the calculated checksum. -** -** \returns boolean, TRUE for success, FALSE for failure. -** -*************************************************************************/ -boolean GPS_Custom_SetChecksum(const uint8 *buffer, const uint16 length, GPS_Checksum_t *checksum); - - -/************************************************************************/ -/** \brief Receive data from the GPS device. -** -** \par Description -** This receives data by calling select and read. -** -** \par Assumptions, External Events, and Notes: -** None. -** -** \param [out] buffer The output buffer. -** -** \param [in] length The buffer length to attempt to read. -** -** \param [in] Timeout The timeout for select. -** -** \returns int32, returns bytes read if successful, -1 or -** for failure. Select or read will set -** errno. -** -*************************************************************************/ -int32 GPS_Custom_Receive(uint8 *Buffer, uint32 Length, uint32 Timeout); - - -/************************************************************************/ -/** \brief Call select and wait for data from the GPS device. -** -** \par Description -** This function calls select with the timeout specified. -** -** \par Assumptions, External Events, and Notes: -** None. -** -** \param [in] TimeoutSec The timeout in seconds. -** -** \param [in] TimeoutUSec The timeout in microseconds. -** -** \returns int32, returns greater than 0 for success, 0 -** for timeout, negative value for error. -** -*************************************************************************/ -int32 GPS_Custom_Select(const uint32 TimeoutSec, const uint32 TimeoutUSec); - -/************************************************************************/ -/** \brief Wait for an acknowledgement. -** -** \par Description -** This function waits for a specified period for a message. -** -** \par Assumptions, External Events, and Notes: -** None. -** -** \param [in] msg The message to wait for an ack for. -** -** \param [in] timeout The timeout to wait. -** -** \returns boolean, TRUE for success, FALSE for failure. -** -*************************************************************************/ -boolean GPS_Custom_WaitForAck(const uint16 msg, const uint32 timeout); - - -/************************************************************************/ -/** \brief Configures the GPS device. -** -** \par Description -** This sends all the configuration messages. -** -** \par Assumptions, External Events, and Notes: -** None. -** -** \returns TRUE for success, FALSE for failure. -** -*************************************************************************/ -boolean GPS_Custom_Configure(void); - -/************************************************************************/ -/** \brief Configure a message rate. -** -** \par Description -** Configure message rates. -** -** \par Assumptions, External Events, and Notes: -** The rate argument is the divisor for the measurement rate. -** i.e. 1 means 5Hz. -** -** \param [in] msg The message to set a rate for. -** -** \param [in] rate The divisor for the measurement rate. -** -** \returns TRUE for success, FALSE for failure. -** -*************************************************************************/ -boolean GPS_Custom_SendMessageRate(const uint16 msg, const uint8 rate); - - -/************************************************************************/ -/** \brief The stream task that actively reads the GPS input stream. -** -** \par Description -** This thread runs until uninit. -** -*************************************************************************/ -void GPS_Stream_Task(void); - - -/************************************************************************/ -/** \brief Reads and parses messages from the GPS device. -** -** \par Description -** This should be called from waitforack or in the stream task -** thread repeatedly. -** -** \param [in] timeout The read timeout. -** -** \returns TRUE for success, FALSE for failure. -** -*************************************************************************/ -boolean GPS_Custom_Read_and_Parse(const uint32 timeout); - -#ifdef __cplusplus -} -#endif - -#endif /* GPS_SERIAL_H */ diff --git a/config/obc/ppd/target/apps/gps/src/gps_parser_ubx/gps_parser_ubx_ack.c b/config/obc/ppd/target/apps/gps/src/gps_parser_ubx/gps_parser_ubx_ack.c deleted file mode 100644 index 21e7717d0..000000000 --- a/config/obc/ppd/target/apps/gps/src/gps_parser_ubx/gps_parser_ubx_ack.c +++ /dev/null @@ -1,200 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ -/************************************************************************* -** -** Include section -** -**************************************************************************/ - -#include "cfe.h" -//#include "GPS_events.h" -//#include "GPS_msgids.h" -#include "gps_parser_ubx_ack.h" - -/************************************************************************* -** -** Macro definitions -** -**************************************************************************/ -#define GPS_PARSER_ACK_ACK_MSG_LENGTH (2) -#define GPS_PARSER_ACK_NAK_MSG_LENGTH (2) - -/************************************************************************* -** -** Type definitions -** -**************************************************************************/ - -/* -** (none) -*/ - -/************************************************************************* -** -** Imported data -** -**************************************************************************/ - -/* -** (none) -*/ - -/************************************************************************* -** -** Exported data -** -**************************************************************************/ - - - -/************************************************************************* -** -** File data -** -**************************************************************************/ - -/* -** (none) -*/ - -/************************************************************************* -** Local function prototypes -**************************************************************************/ -void GPS_Ack_ParseChar_ACK(uint8 byte, GPS_DeviceMessage_t* message) -{ - uint16 checkMsg = 0; - if(GPS_AppCustomData.ParserStatus.MsgLength != GPS_PARSER_ACK_ACK_MSG_LENGTH) - { - GPS_AppCustomData.ParserStatus.ParseError++; - CFE_EVS_SendEvent(GPS_INIT_DEVICE_PARSER_ERR_EID, CFE_EVS_ERROR, - "Received ACK message with incorrect length (%u).", GPS_AppCustomData.ParserStatus.MsgLength); - GPS_Parser_Reset(); - } - else - { - GPS_ACK_ACK_t *payload = (void*)CFE_SB_GetUserData((CFE_SB_MsgPtr_t)message); - switch(GPS_AppCustomData.ParserStatus.PayloadCursor) - { - case 0: - { - CFE_SB_MsgId_t sbMsgID = GPS_TranslateMsgID(GPS_AppCustomData.ParserStatus.ClassID, GPS_AppCustomData.ParserStatus.MsgID); - uint16 sbHdrSize = CFE_SB_MsgHdrSize(sbMsgID); - uint16 sbTotalMsgSize = sbHdrSize + GPS_AppCustomData.ParserStatus.MsgLength; - CFE_SB_InitMsg(message, sbMsgID, sbTotalMsgSize, TRUE); - - payload->clsID = byte; - GPS_AppCustomData.AckRcvdMsgCls = byte; - break; - } - case 1: - { - payload->msgID = byte; - - checkMsg = ((GPS_AppCustomData.AckRcvdMsgCls) | byte << 8); - - if(GPS_ACK_WAITING == GPS_AppCustomData.AckState) - { - if(checkMsg == GPS_AppCustomData.AckWaitingMsg) - { - GPS_AppCustomData.AckState = GPS_ACK_GOT_ACK; - GPS_AppCustomData.AckWaitingRcvd = TRUE; - } - } - GPS_Parser_StateChange(GPS_PARSE_STATE_GOT_PAYLOAD); - break; - } - default: - { - GPS_Parser_Reset(); - return; - } - } - } -} - - -void GPS_Ack_ParseChar_NAK(uint8 byte, GPS_DeviceMessage_t* message) -{ - uint16 checkMsg = 0; - if(GPS_AppCustomData.ParserStatus.MsgLength != GPS_PARSER_ACK_NAK_MSG_LENGTH) - { - GPS_AppCustomData.ParserStatus.ParseError++; - CFE_EVS_SendEvent(GPS_INIT_DEVICE_PARSER_ERR_EID, CFE_EVS_ERROR, - "Received ACK message with incorrect length (%u).", GPS_AppCustomData.ParserStatus.MsgLength); - GPS_Parser_Reset(); - } - else - { - GPS_ACK_NAK_t *payload = (void*)CFE_SB_GetUserData((CFE_SB_MsgPtr_t)message); - switch(GPS_AppCustomData.ParserStatus.PayloadCursor) - { - case 0: - { - CFE_SB_MsgId_t sbMsgID = GPS_TranslateMsgID(GPS_AppCustomData.ParserStatus.ClassID, GPS_AppCustomData.ParserStatus.MsgID); - uint16 sbHdrSize = CFE_SB_MsgHdrSize(sbMsgID); - uint16 sbTotalMsgSize = sbHdrSize + GPS_AppCustomData.ParserStatus.MsgLength; - CFE_SB_InitMsg(message, sbMsgID, sbTotalMsgSize, TRUE); - - payload->clsID = byte; - GPS_AppCustomData.AckRcvdMsgCls = byte; - break; - } - case 1: - { - payload->msgID = byte; - - checkMsg = ((GPS_AppCustomData.AckRcvdMsgCls) | byte << 8); - if(GPS_ACK_WAITING == GPS_AppCustomData.AckState) - { - if(checkMsg == GPS_AppCustomData.AckWaitingMsg) - { - GPS_AppCustomData.AckState = GPS_ACK_GOT_NAK; - GPS_AppCustomData.AckWaitingRcvd = TRUE; - } - } - GPS_Parser_StateChange(GPS_PARSE_STATE_GOT_PAYLOAD); - break; - } - default: - { - GPS_Parser_Reset(); - return; - } - } - } -} - -/************************/ -/* End of File Comment */ -/************************/ - diff --git a/config/obc/ppd/target/apps/gps/src/gps_parser_ubx/gps_parser_ubx_ack.h b/config/obc/ppd/target/apps/gps/src/gps_parser_ubx/gps_parser_ubx_ack.h deleted file mode 100644 index bb3f7b863..000000000 --- a/config/obc/ppd/target/apps/gps/src/gps_parser_ubx/gps_parser_ubx_ack.h +++ /dev/null @@ -1,99 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ -/************************************************************************* -** -** Include section -** -**************************************************************************/ -#ifndef _GPS_PARSER_UBX_ACK_H_ -#define _GPS_PARSER_UBX_ACK_H_ - -#include "cfe.h" -#include "../gps_custom_shared.h" -//#include "GPS_events.h" -//#include "GPS_msgids.h" -#include "gps_parser_ubx_common.h" -#include "gps_ubx_msg.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/************************************************************************* -** -** Macro definitions -** -**************************************************************************/ - - -/************************************************************************* -** -** Type definitions -** -**************************************************************************/ - -/* -** (none) -*/ - -/************************************************************************* -** -** Imported data -** -**************************************************************************/ - -/* -** (none) -*/ - -/************************************************************************* -** -** Exported data -** -**************************************************************************/ - - -void GPS_Ack_ParseChar_ACK(uint8 byte, GPS_DeviceMessage_t* message); -void GPS_Ack_ParseChar_NAK(uint8 byte, GPS_DeviceMessage_t* message); - - -#ifdef __cplusplus -} -#endif - -#endif /* _GPS_PARSER_UBX_CFG_H_ */ - -/************************/ -/* End of File Comment */ -/************************/ - diff --git a/config/obc/ppd/target/apps/gps/src/gps_parser_ubx/gps_parser_ubx_cfg.c b/config/obc/ppd/target/apps/gps/src/gps_parser_ubx/gps_parser_ubx_cfg.c deleted file mode 100644 index d1354ab0d..000000000 --- a/config/obc/ppd/target/apps/gps/src/gps_parser_ubx/gps_parser_ubx_cfg.c +++ /dev/null @@ -1,912 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ -/************************************************************************* -** -** Include section -** -**************************************************************************/ - -#include "cfe.h" -#include "../gps_custom_shared.h" -//#include "GPS_events.h" -//#include "GPS_msgids.h" -#include "gps_parser_ubx_cfg.h" - -/************************************************************************* -** -** Macro definitions -** -**************************************************************************/ -#define GPS_PARSER_CFG_CFG_MSG_LENGTH1 (12) -#define GPS_PARSER_CFG_CFG_MSG_LENGTH2 (13) -#define GPS_PARSER_CFG_NAV5_MSG_LENGTH (36) -#define GPS_PARSER_CFG_SBAS_MSG_LENGTH (8) -#define GPS_PARSER_CFG_TMODE3_MSG_LENGTH (40) -#define GPS_PARSER_CFG_PRT_MSG_LENGTH (20) -#define GPS_PARSER_CFG_MSG_MSG_LENGTH1 (8) -#define GPS_PARSER_CFG_MSG_MSG_LENGTH2 (8) - -/************************************************************************* -** -** Type definitions -** -**************************************************************************/ - -/* -** (none) -*/ - -/************************************************************************* -** -** Imported data -** -**************************************************************************/ - -/* -** (none) -*/ - -/************************************************************************* -** -** Exported data -** -**************************************************************************/ - - - -/************************************************************************* -** -** File data -** -**************************************************************************/ - -/* -** (none) -*/ - -/************************************************************************* -** Local function prototypes -**************************************************************************/ -void GPS_Cfg_ParseChar_CFG(uint8 byte, GPS_DeviceMessage_t* message) -{ - if(GPS_AppCustomData.ParserStatus.MsgLength != GPS_PARSER_CFG_CFG_MSG_LENGTH1 || - GPS_PARSER_CFG_CFG_MSG_LENGTH2) - { - GPS_AppCustomData.ParserStatus.ParseError++; - CFE_EVS_SendEvent(GPS_INIT_DEVICE_PARSER_ERR_EID, CFE_EVS_ERROR, - "Received CFG message with incorrect length (%u).", GPS_AppCustomData.ParserStatus.MsgLength); - GPS_Parser_Reset(); - } - else - { - GPS_CFG_CFG_t *payload = (void*)CFE_SB_GetUserData((CFE_SB_MsgPtr_t)message); - switch(GPS_AppCustomData.ParserStatus.PayloadCursor) - { - case 0: - { - CFE_SB_MsgId_t sbMsgID = GPS_TranslateMsgID(GPS_AppCustomData.ParserStatus.ClassID, GPS_AppCustomData.ParserStatus.MsgID); - uint16 sbHdrSize = CFE_SB_MsgHdrSize(sbMsgID); - uint16 sbTotalMsgSize = sbHdrSize + GPS_AppCustomData.ParserStatus.MsgLength; - CFE_SB_InitMsg(message, sbMsgID, sbTotalMsgSize, TRUE); - - payload->clearMask = byte; - break; - } - case 1: - { - payload->clearMask += byte << 8; - break; - } - case 2: - { - payload->clearMask += byte << 16; - break; - } - case 3: - { - payload->clearMask += byte << 24; - break; - } - case 4: - { - payload->saveMask = byte; - break; - } - case 5: - { - payload->saveMask += byte << 8; - break; - } - case 6: - { - payload->saveMask += byte << 16; - break; - } - case 7: - { - payload->saveMask += byte << 24; - break; - } - case 8: - { - payload->loadMask = byte; - break; - } - case 9: - { - payload->loadMask += byte << 8; - break; - } - case 10: - { - payload->loadMask += byte << 16; - break; - } - case 11: - { - payload->loadMask += byte << 24; - if(GPS_AppCustomData.ParserStatus.MsgLength == GPS_PARSER_CFG_CFG_MSG_LENGTH1) - { - GPS_Parser_StateChange(GPS_PARSE_STATE_GOT_PAYLOAD); - } - break; - } - case 12: - { - payload->deviceMask = byte; - GPS_Parser_StateChange(GPS_PARSE_STATE_GOT_PAYLOAD); - break; - } - default: - { - GPS_Parser_Reset(); - return; - } - } - } -} - - -void GPS_Cfg_ParseChar_NAV5(uint8 byte, GPS_DeviceMessage_t* message) -{ - if(GPS_AppCustomData.ParserStatus.MsgLength != GPS_PARSER_CFG_NAV5_MSG_LENGTH) - { - GPS_AppCustomData.ParserStatus.ParseError++; - CFE_EVS_SendEvent(GPS_INIT_DEVICE_PARSER_ERR_EID, CFE_EVS_ERROR, - "Received NAV5 message with incorrect length (%u).", GPS_AppCustomData.ParserStatus.MsgLength); - GPS_Parser_Reset(); - } - else - { - GPS_CFG_NAV5_t *payload = (void*)CFE_SB_GetUserData((CFE_SB_MsgPtr_t)message); - switch(GPS_AppCustomData.ParserStatus.PayloadCursor) - { - case 0: - { - CFE_SB_MsgId_t sbMsgID = GPS_TranslateMsgID(GPS_AppCustomData.ParserStatus.ClassID, GPS_AppCustomData.ParserStatus.MsgID); - uint16 sbHdrSize = CFE_SB_MsgHdrSize(sbMsgID); - uint16 sbTotalMsgSize = sbHdrSize + GPS_AppCustomData.ParserStatus.MsgLength; - CFE_SB_InitMsg(message, sbMsgID, sbTotalMsgSize, TRUE); - - payload->mask = byte; - break; - } - case 1: - { - payload->mask += byte << 8; - break; - } - case 2: - { - payload->dynModel = byte; - break; - } - case 3: - { - payload->fixMode = byte; - break; - } - case 4: - { - payload->fixedAlt = byte; - break; - } - case 5: - { - payload->fixedAlt += byte << 8; - break; - } - case 6: - { - payload->fixedAlt += byte << 16; - break; - } - case 7: - { - payload->fixedAlt += byte << 24; - break; - } - case 8: - { - payload->fixedAltVar = byte; - break; - } - case 9: - { - payload->fixedAltVar += byte << 8; - break; - } - case 10: - { - payload->fixedAltVar += byte << 16; - break; - } - case 11: - { - payload->fixedAltVar += byte << 24; - break; - } - case 12: - { - payload->minElev = byte; - break; - } - case 13: - { - payload->drLimit = byte; - break; - } - case 14: - { - payload->pDop = byte; - break; - } - case 15: - { - payload->pDop += byte << 8; - break; - } - case 16: - { - payload->tDop = byte; - break; - } - case 17: - { - payload->tDop += byte << 8; - break; - } - case 18: - { - payload->pAcc = byte; - break; - } - case 19: - { - payload->pAcc += byte << 8; - break; - } - case 20: - { - payload->tAcc = byte; - break; - } - case 21: - { - payload->tAcc += byte << 8; - break; - } - case 22: - { - payload->staticHoldThresh = byte; - break; - } - case 23: - { - payload->dgnssTimeout = byte; - break; - } - case 24: - { - payload->cnoThreshNumSVs = byte; - break; - } - case 25: - { - payload->cnoThresh = byte; - break; - } - case 26: - { - payload->reserved1 = byte; - break; - } - case 27: - { - payload->reserved1 += byte << 8; - break; - } - case 28: - { - payload->staticHoldMaxDist = byte; - break; - } - case 29: - { - payload->staticHoldMaxDist += byte << 8; - break; - } - case 30: - { - payload->utcStandard = byte; - break; - } - case 31: - { - payload->reserved2 = byte; - break; - } - case 32: - { - payload->reserved3 = byte; - break; - } - case 33: - { - payload->reserved3 += byte << 8; - break; - } - case 34: - { - payload->reserved3 += byte << 16; - break; - } - case 35: - { - payload->reserved3 += byte << 24; - GPS_Parser_StateChange(GPS_PARSE_STATE_GOT_PAYLOAD); - break; - } - default: - { - GPS_Parser_Reset(); - return; - } - } - } -} - - -void GPS_Cfg_ParseChar_SBAS(uint8 byte, GPS_DeviceMessage_t* message) -{ - if(GPS_AppCustomData.ParserStatus.MsgLength != GPS_PARSER_CFG_SBAS_MSG_LENGTH) - { - GPS_AppCustomData.ParserStatus.ParseError++; - CFE_EVS_SendEvent(GPS_INIT_DEVICE_PARSER_ERR_EID, CFE_EVS_ERROR, - "Received NAV5 message with incorrect length (%u).", GPS_AppCustomData.ParserStatus.MsgLength); - GPS_Parser_Reset(); - } - else - { - GPS_CFG_SBAS_t *payload = (void*)CFE_SB_GetUserData((CFE_SB_MsgPtr_t)message); - switch(GPS_AppCustomData.ParserStatus.PayloadCursor) - { - case 0: - { - CFE_SB_MsgId_t sbMsgID = GPS_TranslateMsgID(GPS_AppCustomData.ParserStatus.ClassID, GPS_AppCustomData.ParserStatus.MsgID); - uint16 sbHdrSize = CFE_SB_MsgHdrSize(sbMsgID); - uint16 sbTotalMsgSize = sbHdrSize + GPS_AppCustomData.ParserStatus.MsgLength; - CFE_SB_InitMsg(message, sbMsgID, sbTotalMsgSize, TRUE); - - payload->mode = byte; - break; - } - case 1: - { - payload->usage = byte; - break; - } - case 2: - { - payload->maxSBAS = byte; - break; - } - case 3: - { - payload->scanmode2 = byte; - break; - } - case 4: - { - payload->scanmode1 = byte; - break; - } - case 5: - { - payload->scanmode1 += byte << 8; - break; - } - case 6: - { - payload->scanmode1 += byte << 16; - break; - } - case 7: - { - payload->scanmode1 += byte << 24; - GPS_Parser_StateChange(GPS_PARSE_STATE_GOT_PAYLOAD); - break; - } - default: - { - GPS_Parser_Reset(); - return; - } - } - } -} - - -void GPS_Cfg_ParseChar_TMODE3(uint8 byte, GPS_DeviceMessage_t* message) -{ - if(GPS_AppCustomData.ParserStatus.MsgLength != GPS_PARSER_CFG_SBAS_MSG_LENGTH) - { - GPS_AppCustomData.ParserStatus.ParseError++; - CFE_EVS_SendEvent(GPS_INIT_DEVICE_PARSER_ERR_EID, CFE_EVS_ERROR, - "Received NAV5 message with incorrect length (%u).", GPS_AppCustomData.ParserStatus.MsgLength); - GPS_Parser_Reset(); - } - else - { - GPS_CFG_TMODE3_t *payload = (void*)CFE_SB_GetUserData((CFE_SB_MsgPtr_t)message); - switch(GPS_AppCustomData.ParserStatus.PayloadCursor) - { - case 0: - { - CFE_SB_MsgId_t sbMsgID = GPS_TranslateMsgID(GPS_AppCustomData.ParserStatus.ClassID, GPS_AppCustomData.ParserStatus.MsgID); - uint16 sbHdrSize = CFE_SB_MsgHdrSize(sbMsgID); - uint16 sbTotalMsgSize = sbHdrSize + GPS_AppCustomData.ParserStatus.MsgLength; - CFE_SB_InitMsg(message, sbMsgID, sbTotalMsgSize, TRUE); - - payload->version = byte; - break; - } - case 1: - { - payload->reserved1 = byte; - break; - } - case 2: - { - payload->flags = byte; - break; - } - case 3: - { - payload->flags = byte << 8; - break; - } - case 4: - { - payload->ecefXOrLat = byte; - break; - } - case 5: - { - payload->ecefXOrLat += byte << 8; - break; - } - case 6: - { - payload->ecefXOrLat += byte << 16; - break; - } - case 7: - { - payload->ecefXOrLat += byte << 24; - break; - } - case 8: - { - payload->ecefYOrLon = byte; - break; - } - case 9: - { - payload->ecefYOrLon += byte << 8; - break; - } - case 10: - { - payload->ecefYOrLon += byte << 16; - break; - } - case 11: - { - payload->ecefYOrLon += byte << 24; - break; - } - case 12: - { - payload->ecefZOrAlt = byte; - break; - } - case 13: - { - payload->ecefZOrAlt += byte << 8; - break; - } - case 14: - { - payload->ecefZOrAlt += byte << 16; - break; - } - case 15: - { - payload->ecefZOrAlt += byte << 24; - break; - } - case 16: - { - payload->ecefXOrLatHP = byte; - break; - } - case 17: - { - payload->ecefYOrLonHP = byte; - break; - } - case 18: - { - payload->ecefZOrAltHP = byte; - break; - } - case 19: - { - payload->reserved2 = byte; - break; - } - case 20: - { - payload->fixedPosAcc = byte; - break; - } - case 21: - { - payload->fixedPosAcc += byte << 8; - break; - } - case 22: - { - payload->fixedPosAcc += byte << 16; - break; - } - case 23: - { - payload->fixedPosAcc += byte << 24; - break; - } - case 24: - { - payload->svinMinDur = byte; - break; - } - case 25: - { - payload->svinMinDur += byte << 8; - break; - } - case 26: - { - payload->svinMinDur += byte << 16; - break; - } - case 27: - { - payload->svinMinDur += byte << 24; - break; - } - case 28: - { - payload->svinAccLimit = byte; - break; - } - case 29: - { - payload->svinAccLimit += byte << 8; - break; - } - case 30: - { - payload->svinAccLimit += byte << 16; - break; - } - case 31: - { - payload->svinAccLimit += byte << 24; - break; - } - case 32: - { - payload->reserved3[0] = byte; - break; - } - case 33: - { - payload->reserved3[1] = byte; - break; - } - case 34: - { - payload->reserved3[2] = byte; - break; - } - case 35: - { - payload->reserved3[3] = byte; - break; - } - case 36: - { - payload->reserved3[4] = byte; - break; - } - case 37: - { - payload->reserved3[5] = byte; - break; - } - case 38: - { - payload->reserved3[6] = byte; - break; - } - case 39: - { - payload->reserved3[7] = byte; - GPS_Parser_StateChange(GPS_PARSE_STATE_GOT_PAYLOAD); - break; - } - default: - { - GPS_Parser_Reset(); - return; - } - } - } -} - - -void GPS_Cfg_ParseChar_PRT(uint8 byte, GPS_DeviceMessage_t* message) -{ - if(GPS_AppCustomData.ParserStatus.MsgLength != GPS_PARSER_CFG_SBAS_MSG_LENGTH) - { - GPS_AppCustomData.ParserStatus.ParseError++; - CFE_EVS_SendEvent(GPS_INIT_DEVICE_PARSER_ERR_EID, CFE_EVS_ERROR, - "Received NAV5 message with incorrect length (%u).", GPS_AppCustomData.ParserStatus.MsgLength); - GPS_Parser_Reset(); - } - else - { - GPS_CFG_PRT_t *payload = (void*)CFE_SB_GetUserData((CFE_SB_MsgPtr_t)message); - switch(GPS_AppCustomData.ParserStatus.PayloadCursor) - { - case 0: - { - CFE_SB_MsgId_t sbMsgID = GPS_TranslateMsgID(GPS_AppCustomData.ParserStatus.ClassID, GPS_AppCustomData.ParserStatus.MsgID); - uint16 sbHdrSize = CFE_SB_MsgHdrSize(sbMsgID); - uint16 sbTotalMsgSize = sbHdrSize + GPS_AppCustomData.ParserStatus.MsgLength; - CFE_SB_InitMsg(message, sbMsgID, sbTotalMsgSize, TRUE); - - payload->portID = byte; - break; - } - case 1: - { - payload->reserved1 = byte; - break; - } - case 2: - { - payload->txReady = byte; - break; - } - case 3: - { - payload->txReady = byte << 8; - break; - } - case 4: - { - payload->mode = byte; - break; - } - case 5: - { - payload->mode += byte << 8; - break; - } - case 6: - { - payload->mode += byte << 16; - break; - } - case 7: - { - payload->mode += byte << 24; - break; - } - case 8: - { - payload->baudRate = byte; - break; - } - case 9: - { - payload->baudRate += byte << 8; - break; - } - case 10: - { - payload->baudRate += byte << 16; - break; - } - case 11: - { - payload->baudRate += byte << 24; - break; - } - case 12: - { - payload->inProtoMask = byte; - break; - } - case 13: - { - payload->inProtoMask += byte << 8; - break; - } - case 14: - { - payload->outProtoMask = byte; - break; - } - case 15: - { - payload->outProtoMask += byte << 8; - break; - } - case 16: - { - payload->flags = byte; - break; - } - case 17: - { - payload->flags += byte << 8; - break; - } - case 18: - { - payload->reserved2 = byte; - break; - } - case 19: - { - payload->reserved2 += byte << 8; - GPS_Parser_StateChange(GPS_PARSE_STATE_GOT_PAYLOAD); - break; - } - default: - { - GPS_Parser_Reset(); - return; - } - } - } -} - - -void GPS_Cfg_ParseChar_MSG(uint8 byte, GPS_DeviceMessage_t* message) -{ - if(GPS_AppCustomData.ParserStatus.MsgLength != GPS_PARSER_CFG_SBAS_MSG_LENGTH) - { - GPS_AppCustomData.ParserStatus.ParseError++; - CFE_EVS_SendEvent(GPS_INIT_DEVICE_PARSER_ERR_EID, CFE_EVS_ERROR, - "Received NAV5 message with incorrect length (%u).", GPS_AppCustomData.ParserStatus.MsgLength); - GPS_Parser_Reset(); - } - else - { - GPS_CFG_MSG_t *payload = (void*)CFE_SB_GetUserData((CFE_SB_MsgPtr_t)message); - switch(GPS_AppCustomData.ParserStatus.PayloadCursor) - { - case 0: - { - CFE_SB_MsgId_t sbMsgID = GPS_TranslateMsgID(GPS_AppCustomData.ParserStatus.ClassID, GPS_AppCustomData.ParserStatus.MsgID); - uint16 sbHdrSize = CFE_SB_MsgHdrSize(sbMsgID); - uint16 sbTotalMsgSize = sbHdrSize + GPS_AppCustomData.ParserStatus.MsgLength; - CFE_SB_InitMsg(message, sbMsgID, sbTotalMsgSize, TRUE); - - payload->msgClass = byte; - break; - } - case 1: - { - payload->msgID = byte; - break; - } - case 2: - { - payload->rate[0] = byte; - break; - } - case 3: - { - payload->rate[1] = byte; - break; - } - case 4: - { - payload->rate[2] = byte; - break; - } - case 5: - { - payload->rate[3] = byte; - break; - } - case 6: - { - payload->rate[4] = byte; - break; - } - case 7: - { - payload->rate[5] = byte; - GPS_Parser_StateChange(GPS_PARSE_STATE_GOT_PAYLOAD); - break; - } - default: - { - GPS_Parser_Reset(); - return; - } - } - } -} - -/************************/ -/* End of File Comment */ -/************************/ - diff --git a/config/obc/ppd/target/apps/gps/src/gps_parser_ubx/gps_parser_ubx_cfg.h b/config/obc/ppd/target/apps/gps/src/gps_parser_ubx/gps_parser_ubx_cfg.h deleted file mode 100644 index 89ff7120e..000000000 --- a/config/obc/ppd/target/apps/gps/src/gps_parser_ubx/gps_parser_ubx_cfg.h +++ /dev/null @@ -1,103 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ -/************************************************************************* -** -** Include section -** -**************************************************************************/ -#ifndef _GPS_PARSER_UBX_CFG_H_ -#define _GPS_PARSER_UBX_CFG_H_ - -#ifdef __cplusplus -extern "C" { -#endif - -#include "cfe.h" -#include "../gps_custom_shared.h" -//#include "GPS_events.h" -//#include "GPS_msgids.h" -#include "gps_parser_ubx_common.h" -#include "gps_ubx_msg.h" - - -/************************************************************************* -** -** Macro definitions -** -**************************************************************************/ - - -/************************************************************************* -** -** Type definitions -** -**************************************************************************/ - -/* -** (none) -*/ - -/************************************************************************* -** -** Imported data -** -**************************************************************************/ - -/* -** (none) -*/ - -/************************************************************************* -** -** Exported data -** -**************************************************************************/ - - -void GPS_Cfg_ParseChar_CFG(uint8 byte, GPS_DeviceMessage_t* message); -void GPS_Cfg_ParseChar_NAV5(uint8 byte, GPS_DeviceMessage_t* message); -void GPS_Cfg_ParseChar_SBAS(uint8 byte, GPS_DeviceMessage_t* message); -void GPS_Cfg_ParseChar_TMODE3(uint8 byte, GPS_DeviceMessage_t* message); -void GPS_Cfg_ParseChar_PRT(uint8 byte, GPS_DeviceMessage_t* message); -void GPS_Cfg_ParseChar_MSG(uint8 byte, GPS_DeviceMessage_t* message); - -#ifdef __cplusplus -} -#endif - -#endif /* _GPS_PARSER_UBX_CFG_H_ */ - -/************************/ -/* End of File Comment */ -/************************/ - diff --git a/config/obc/ppd/target/apps/gps/src/gps_parser_ubx/gps_parser_ubx_common.c b/config/obc/ppd/target/apps/gps/src/gps_parser_ubx/gps_parser_ubx_common.c deleted file mode 100644 index d8bf3595d..000000000 --- a/config/obc/ppd/target/apps/gps/src/gps_parser_ubx/gps_parser_ubx_common.c +++ /dev/null @@ -1,1608 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ - -/************************************************************************ -** Includes -*************************************************************************/ -#include "cfe.h" -#include "gps_parser_ubx_common.h" -#include "msg_ids.h" -//#include "GPS_events.h" -//#include "GPS_msgids.h" - - -/************************************************************************ -** Local Defines -*************************************************************************/ - -/************************************************************************ -** Structure Declarations -*************************************************************************/ - -/************************************************************************* -** Local function prototypes -**************************************************************************/ - -void GPS_SetChecksum(uint8 *Buffer, uint16 Size) -{ - uint8 ckA = 0; - uint8 ckB = 0; - uint16 i = 0; - - for(i = 2; i < (Size-2); ++i) - { - ckA = ckA + Buffer[i]; - ckB = ckB + ckA; - } - - Buffer[Size-2] = ckA; - Buffer[Size-1] = ckB; -} - - -void GPS_Parser_Reset() -{ - GPS_AppCustomData.ParserStatus.ParseState = GPS_PARSE_STATE_IDLE; -} - - -void GPS_Parser_StateChange(GPS_ParserState_t newState) -{ - switch(newState) - { - case GPS_PARSE_STATE_UNINIT: - { - break; - } - - case GPS_PARSE_STATE_IDLE: - { - break; - } - - case GPS_PARSE_STATE_GOT_SYNC1: - { - break; - } - - case GPS_PARSE_STATE_GOT_SYNC2: - { - break; - } - - case GPS_PARSE_STATE_GOT_CLASS: - { - break; - } - - case GPS_PARSE_STATE_GOT_ID: - { - break; - } - - case GPS_PARSE_STATE_GOT_LENGTH1: - { - break; - } - - case GPS_PARSE_STATE_GOT_LENGTH2: - { - GPS_AppCustomData.ParserStatus.PayloadCursor = 0; - break; - } - - case GPS_PARSE_STATE_GOT_PAYLOAD: - { - break; - } - - case GPS_PARSE_STATE_GOT_CHECKSUMA: - { - break; - } - - case GPS_PARSE_STATE_GOT_CHECKSUMB: - { - break; - } - - default: - { - break; - } - } - - GPS_AppCustomData.ParserStatus.ParseState = newState; -} - - -uint16 GPS_ParseChar(uint8 byte, GPS_DeviceMessage_t* message, boolean *done) -{ - uint16 msg_received = 0; - - switch(GPS_AppCustomData.ParserStatus.ParseState) - { - - case GPS_PARSE_STATE_UNINIT: - { - GPS_AppCustomData.ParserStatus.ParseError++; - CFE_EVS_SendEvent(GPS_INIT_DEVICE_PARSER_ERR_EID, CFE_EVS_ERROR, - "Parser not initialized"); - break; - } - - case GPS_PARSE_STATE_IDLE: - { - if(byte == GPS_PARSER_SYNC1_VALUE) - { - GPS_Parser_StateChange(GPS_PARSE_STATE_GOT_SYNC1); - } - else if(byte == 0xff) - { - *done = TRUE; - } - else - { - //GPS_AppCustomData.ParserStatus.ParseError++; - //CFE_EVS_SendEvent(GPS_INIT_DEVICE_PARSER_ERR_EID, CFE_EVS_ERROR, - // "Received unexpected byte (0x%.2x) in IDLE state.", byte); - } - break; - } - - case GPS_PARSE_STATE_GOT_SYNC1: - { - if(byte == GPS_PARSER_SYNC2_VALUE) - { - GPS_Parser_StateChange(GPS_PARSE_STATE_GOT_SYNC2); - } - else - { - GPS_AppCustomData.ParserStatus.ParseError++; - CFE_EVS_SendEvent(GPS_INIT_DEVICE_PARSER_ERR_EID, CFE_EVS_ERROR, - "Received unexpected byte (0x%.2x) in GOT_SYNC1 state", byte); - GPS_Parser_Reset(); - } - break; - } - - case GPS_PARSE_STATE_GOT_SYNC2: - { - switch(byte) - { - case GPS_PARSER_CLASS_NAV_VALUE: - /* Fall through */ - case GPS_PARSER_CLASS_RXM_VALUE: - /* Fall through */ - case GPS_PARSER_CLASS_INF_VALUE: - /* Fall through */ - case GPS_PARSER_CLASS_ACK_VALUE: - /* Fall through */ - case GPS_PARSER_CLASS_CFG_VALUE: - /* Fall through */ - case GPS_PARSER_CLASS_UPD_VALUE: - /* Fall through */ - case GPS_PARSER_CLASS_MON_VALUE: - /* Fall through */ - case GPS_PARSER_CLASS_AID_VALUE: - /* Fall through */ - case GPS_PARSER_CLASS_TIM_VALUE: - /* Fall through */ - case GPS_PARSER_CLASS_ESF_VALUE: - /* Fall through */ - case GPS_PARSER_CLASS_MGA_VALUE: - /* Fall through */ - case GPS_PARSER_CLASS_LOG_VALUE: - /* Fall through */ - case GPS_PARSER_CLASS_SEC_VALUE: - /* Fall through */ - case GPS_PARSER_CLASS_HNR_VALUE: - { - GPS_AppCustomData.ParserStatus.ClassID = byte; - GPS_Parser_StateChange(GPS_PARSE_STATE_GOT_CLASS); - break; - } - - default: - { - GPS_AppCustomData.ParserStatus.ParseError++; - CFE_EVS_SendEvent(GPS_INIT_DEVICE_PARSER_ERR_EID, CFE_EVS_ERROR, - "Received message with unexpected class ID (0x%.2x)", byte); - GPS_Parser_Reset(); - } - } - break; - } - - case GPS_PARSE_STATE_GOT_CLASS: - { - switch(GPS_AppCustomData.ParserStatus.ClassID) - { - case GPS_PARSER_CLASS_NAV_VALUE: - { - switch(byte) - { - case GPS_PARSER_NAV_POSECEF_ID_VALUE: - /* Fall through */ - case GPS_PARSER_NAV_POSLLH_ID_VALUE: - /* Fall through */ - case GPS_PARSER_NAV_STATUS_ID_VALUE: - /* Fall through */ - case GPS_PARSER_NAV_DOP_ID_VALUE: - /* Fall through */ - case GPS_PARSER_NAV_ATT_ID_VALUE: - /* Fall through */ - case GPS_PARSER_NAV_SOL_ID_VALUE: - /* Fall through */ - case GPS_PARSER_NAV_NAVPVT_ID_VALUE: - /* Fall through */ - case GPS_PARSER_NAV_ODO_ID_VALUE: - /* Fall through */ - case GPS_PARSER_NAV_RESETODO_ID_VALUE: - /* Fall through */ - case GPS_PARSER_NAV_VELECEF_ID_VALUE: - /* Fall through */ - case GPS_PARSER_NAV_VELNED_ID_VALUE: - /* Fall through */ - case GPS_PARSER_NAV_TIMEGPS_ID_VALUE: - /* Fall through */ - case GPS_PARSER_NAV_TIMEUTC_ID_VALUE: - /* Fall through */ - case GPS_PARSER_NAV_CLOCK_ID_VALUE: - /* Fall through */ - case GPS_PARSER_NAV_TIMEGLO_ID_VALUE: - /* Fall through */ - case GPS_PARSER_NAV_TIMEBDS_ID_VALUE: - /* Fall through */ - case GPS_PARSER_NAV_TIMEGAL_ID_VALUE: - /* Fall through */ - case GPS_PARSER_NAV_TIMELS_ID_VALUE: - /* Fall through */ - case GPS_PARSER_NAV_SVINFO_ID_VALUE: - /* Fall through */ - case GPS_PARSER_NAV_DGPS_ID_VALUE: - /* Fall through */ - case GPS_PARSER_NAV_SBAS_ID_VALUE: - /* Fall through */ - case GPS_PARSER_NAV_ORB_ID_VALUE: - /* Fall through */ - case GPS_PARSER_NAV_NAVSAT_ID_VALUE: - /* Fall through */ - case GPS_PARSER_NAV_GEOFENCE_ID_VALUE: - /* Fall through */ - case GPS_PARSER_NAV_AOPSTATUS_ID_VALUE: - /* Fall through */ - case GPS_PARSER_NAV_EOE_ID_VALUE: - { - GPS_AppCustomData.ParserStatus.MsgID = byte; - GPS_Parser_StateChange(GPS_PARSE_STATE_GOT_ID); - break; - } - - default: - { - GPS_AppCustomData.ParserStatus.ParseError++; - CFE_EVS_SendEvent(GPS_INIT_DEVICE_PARSER_ERR_EID, CFE_EVS_ERROR, - "Received message with unexpected message ID (0x%.2x) for NAV class.", byte); - GPS_Parser_Reset(); - } - } - break; - } - - case GPS_PARSER_CLASS_RXM_VALUE: - { - switch(byte) - { - case GPS_PARSER_RXM_SFRBX_ID_VALUE: - /* Fall through */ - case GPS_PARSER_RXM_MEASX_ID_VALUE: - /* Fall through */ - case GPS_PARSER_RXM_RAWX_ID_VALUE: - /* Fall through */ - case GPS_PARSER_RXM_SVSI_ID_VALUE: - /* Fall through */ - case GPS_PARSER_RXM_PMREQ_ID_VALUE: - /* Fall through */ - case GPS_PARSER_RXM_RLM_ID_VALUE: - /* Fall through */ - case GPS_PARSER_RXM_IMES_ID_VALUE: - { - GPS_AppCustomData.ParserStatus.MsgID = byte; - GPS_Parser_StateChange(GPS_PARSE_STATE_GOT_ID); - break; - } - - default: - { - GPS_AppCustomData.ParserStatus.ParseError++; - CFE_EVS_SendEvent(GPS_INIT_DEVICE_PARSER_ERR_EID, CFE_EVS_ERROR, - "Received message with unexpected message ID (0x%.2x) for RXM class.", byte); - GPS_Parser_Reset(); - } - } - } - - case GPS_PARSER_CLASS_INF_VALUE: - { - switch(byte) - { - case GPS_PARSER_INF_ERROR_ID_VALUE: - /* Fall through */ - case GPS_PARSER_INF_WARNING_ID_VALUE: - /* Fall through */ - case GPS_PARSER_INF_NOTICE_ID_VALUE: - /* Fall through */ - case GPS_PARSER_INF_TEST_ID_VALUE: - /* Fall through */ - case GPS_PARSER_INF_DEBUG_ID_VALUE: - { - GPS_AppCustomData.ParserStatus.MsgID = byte; - GPS_Parser_StateChange(GPS_PARSE_STATE_GOT_ID); - break; - } - - default: - { - GPS_AppCustomData.ParserStatus.ParseError++; - CFE_EVS_SendEvent(GPS_INIT_DEVICE_PARSER_ERR_EID, CFE_EVS_ERROR, - "Received message with unexpected message ID (0x%.2x) for INF class.", byte); - GPS_Parser_Reset(); - } - } - break; - } - - case GPS_PARSER_CLASS_ACK_VALUE: - { - switch(byte) - { - case GPS_PARSER_ACK_NAK_ID_VALUE: - { - GPS_AppCustomData.ParserStatus.MsgID = byte; - GPS_Parser_StateChange(GPS_PARSE_STATE_GOT_ID); - break; - } - case GPS_PARSER_ACK_ACK_ID_VALUE: - { - GPS_AppCustomData.ParserStatus.MsgID = byte; - GPS_Parser_StateChange(GPS_PARSE_STATE_GOT_ID); - break; - } - - default: - { - GPS_AppCustomData.ParserStatus.ParseError++; - CFE_EVS_SendEvent(GPS_INIT_DEVICE_PARSER_ERR_EID, CFE_EVS_ERROR, - "Received message with unexpected message ID (0x%.2x) for ACK class.", byte); - GPS_Parser_Reset(); - } - } - break; - } - - case GPS_PARSER_CLASS_CFG_VALUE: - { - switch(byte) - { - case GPS_PARSER_CFG_PRT_ID_VALUE: - /* Fall through */ - case GPS_PARSER_CFG_MSG_ID_VALUE: - /* Fall through */ - case GPS_PARSER_CFG_INF_ID_VALUE: - /* Fall through */ - case GPS_PARSER_CFG_RST_ID_VALUE: - /* Fall through */ - case GPS_PARSER_CFG_DAT_ID_VALUE: - /* Fall through */ - case GPS_PARSER_CFG_RATE_ID_VALUE: - /* Fall through */ - case GPS_PARSER_CFG_CFG_ID_VALUE: - /* Fall through */ - case GPS_PARSER_CFG_RXM_ID_VALUE: - /* Fall through */ - case GPS_PARSER_CFG_ANT_ID_VALUE: - /* Fall through */ - case GPS_PARSER_CFG_SBAS_ID_VALUE: - /* Fall through */ - case GPS_PARSER_CFG_NMEA_ID_VALUE: - /* Fall through */ - case GPS_PARSER_CFG_USB_ID_VALUE: - /* Fall through */ - case GPS_PARSER_CFG_ODO_ID_VALUE: - /* Fall through */ - case GPS_PARSER_CFG_NAVX5_ID_VALUE: - /* Fall through */ - case GPS_PARSER_CFG_NAV5_ID_VALUE: - /* Fall through */ - case GPS_PARSER_CFG_TP5_ID_VALUE: - /* Fall through */ - case GPS_PARSER_CFG_RINV_ID_VALUE: - /* Fall through */ - case GPS_PARSER_CFG_ITFM_ID_VALUE: - /* Fall through */ - case GPS_PARSER_CFG_PM2_ID_VALUE: - /* Fall through */ - case GPS_PARSER_CFG_TMOD2_ID_VALUE: - /* Fall through */ - case GPS_PARSER_CFG_GNSS_ID_VALUE: - /* Fall through */ - case GPS_PARSER_CFG_LOGFILTER_ID_VALUE: - /* Fall through */ - case GPS_PARSER_CFG_PWR_ID_VALUE: - /* Fall through */ - case GPS_PARSER_CFG_TXSLOT_ID_VALUE: - /* Fall through */ - case GPS_PARSER_CFG_HNR_ID_VALUE: - /* Fall through */ - case GPS_PARSER_CFG_ESRC_ID_VALUE: - /* Fall through */ - case GPS_PARSER_CFG_DOSC_ID_VALUE: - /* Fall through */ - case GPS_PARSER_CFG_SMGR_ID_VALUE: - /* Fall through */ - case GPS_PARSER_CFG_GEOFENCE_ID_VALUE: - /* Fall through */ - case GPS_PARSER_CFG_FIXSEED_ID_VALUE: - /* Fall through */ - case GPS_PARSER_CFG_DYNSEED_ID_VALUE: - /* Fall through */ - case GPS_PARSER_CFG_PMS_ID_VALUE: - { - GPS_AppCustomData.ParserStatus.MsgID = byte; - GPS_Parser_StateChange(GPS_PARSE_STATE_GOT_ID); - break; - } - - default: - { - GPS_AppCustomData.ParserStatus.ParseError++; - CFE_EVS_SendEvent(GPS_INIT_DEVICE_PARSER_ERR_EID, CFE_EVS_ERROR, - "Received message with unexpected message ID (0x%.2x) for CFG class.", byte); - GPS_Parser_Reset(); - } - } - break; - } - - case GPS_PARSER_CLASS_UPD_VALUE: - { - switch(byte) - { - case GPS_PARSER_UPD_SOS_ID_VALUE: - { - GPS_AppCustomData.ParserStatus.MsgID = byte; - GPS_Parser_StateChange(GPS_PARSE_STATE_GOT_ID); - break; - } - - default: - { - GPS_AppCustomData.ParserStatus.ParseError++; - CFE_EVS_SendEvent(GPS_INIT_DEVICE_PARSER_ERR_EID, CFE_EVS_ERROR, - "Received message with unexpected message ID (0x%.2x) for UPD class.", byte); - GPS_Parser_Reset(); - } - } - break; - } - - case GPS_PARSER_CLASS_MON_VALUE: - { - switch(byte) - { - case GPS_PARSER_MON_IO_ID_VALUE: - /* Fall through */ - case GPS_PARSER_MON_VER_ID_VALUE: - /* Fall through */ - case GPS_PARSER_MON_MSGPP_ID_VALUE: - /* Fall through */ - case GPS_PARSER_MON_RXBUF_ID_VALUE: - /* Fall through */ - case GPS_PARSER_MON_TXBUF_ID_VALUE: - /* Fall through */ - case GPS_PARSER_MON_HW_ID_VALUE: - /* Fall through */ - case GPS_PARSER_MON_HW2_ID_VALUE: - /* Fall through */ - case GPS_PARSER_MON_RXR_ID_VALUE: - /* Fall through */ - case GPS_PARSER_MON_PATCH_ID_VALUE: - /* Fall through */ - case GPS_PARSER_MON_GNSS_ID_VALUE: - /* Fall through */ - case GPS_PARSER_MON_SMGR_ID_VALUE: - { - GPS_AppCustomData.ParserStatus.MsgID = byte; - GPS_Parser_StateChange(GPS_PARSE_STATE_GOT_ID); - break; - } - - default: - { - GPS_AppCustomData.ParserStatus.ParseError++; - CFE_EVS_SendEvent(GPS_INIT_DEVICE_PARSER_ERR_EID, CFE_EVS_ERROR, - "Received message with unexpected message ID (0x%.2x) for MON class.", byte); - GPS_Parser_Reset(); - } - } - break; - } - - case GPS_PARSER_CLASS_AID_VALUE: - { - switch(byte) - { - case GPS_PARSER_AID_INI_ID_VALUE: - /* Fall through */ - case GPS_PARSER_AID_HUI_ID_VALUE: - /* Fall through */ - case GPS_PARSER_AID_ALM_ID_VALUE: - /* Fall through */ - case GPS_PARSER_AID_EPH_ID_VALUE: - /* Fall through */ - case GPS_PARSER_AID_AOP_ID_VALUE: - { - GPS_AppCustomData.ParserStatus.MsgID = byte; - GPS_Parser_StateChange(GPS_PARSE_STATE_GOT_ID); - break; - } - - default: - { - GPS_AppCustomData.ParserStatus.ParseError++; - CFE_EVS_SendEvent(GPS_INIT_DEVICE_PARSER_ERR_EID, CFE_EVS_ERROR, - "Received message with unexpected message ID (0x%.2x) for AID class.", byte); - GPS_Parser_Reset(); - } - } - break; - } - - case GPS_PARSER_CLASS_TIM_VALUE: - { - switch(byte) - { - case GPS_PARSER_TIM_TP_ID_VALUE: - /* Fall through */ - case GPS_PARSER_TIM_TM2_ID_VALUE: - /* Fall through */ - case GPS_PARSER_TIM_SVIN_ID_VALUE: - /* Fall through */ - case GPS_PARSER_TIM_VRFY_ID_VALUE: - /* Fall through */ - case GPS_PARSER_TIM_DOSC_ID_VALUE: - /* Fall through */ - case GPS_PARSER_TIM_TOS_ID_VALUE: - /* Fall through */ - case GPS_PARSER_TIM_SMEAS_ID_VALUE: - /* Fall through */ - case GPS_PARSER_TIM_VCOCAL_ID_VALUE: - /* Fall through */ - case GPS_PARSER_TIM_FCHG_ID_VALUE: - /* Fall through */ - case GPS_PARSER_TIM_HOC_ID_VALUE: - { - GPS_AppCustomData.ParserStatus.MsgID = byte; - GPS_Parser_StateChange(GPS_PARSE_STATE_GOT_ID); - break; - } - - default: - { - GPS_AppCustomData.ParserStatus.ParseError++; - CFE_EVS_SendEvent(GPS_INIT_DEVICE_PARSER_ERR_EID, CFE_EVS_ERROR, - "Received message with unexpected message ID (0x%.2x) for TIM class.", byte); - GPS_Parser_Reset(); - } - } - break; - } - - case GPS_PARSER_CLASS_ESF_VALUE: - { - switch(byte) - { - case GPS_PARSER_ESF_MEAS_ID_VALUE: - /* Fall through */ - case GPS_PARSER_ESF_RAW_ID_VALUE: - /* Fall through */ - case GPS_PARSER_ESF_INS_ID_VALUE: - /* Fall through */ - case GPS_PARSER_ESF_STATUS_ID_VALUE: - { - GPS_AppCustomData.ParserStatus.MsgID = byte; - GPS_Parser_StateChange(GPS_PARSE_STATE_GOT_ID); - break; - } - - default: - { - GPS_AppCustomData.ParserStatus.ParseError++; - CFE_EVS_SendEvent(GPS_INIT_DEVICE_PARSER_ERR_EID, CFE_EVS_ERROR, - "Received message with unexpected message ID (0x%.2x) for ESF class.", byte); - GPS_Parser_Reset(); - } - } - break; - } - - case GPS_PARSER_CLASS_MGA_VALUE: - { - switch(byte) - { - case GPS_PARSER_MGA_GPS_ID_VALUE: - /* Fall through */ - case GPS_PARSER_MGA_GAL_ID_VALUE: - /* Fall through */ - case GPS_PARSER_MGA_BDS_ID_VALUE: - /* Fall through */ - case GPS_PARSER_MGA_QZSS_ID_VALUE: - /* Fall through */ - case GPS_PARSER_MGA_GLO_ID_VALUE: - /* Fall through */ - case GPS_PARSER_MGA_ANO_ID_VALUE: - /* Fall through */ - case GPS_PARSER_MGA_FLASH_ID_VALUE: - /* Fall through */ - case GPS_PARSER_MGA_INI_XYZ_ID_VALUE: - /* Fall through */ - case GPS_PARSER_MGA_ACK_DATA0_ID_VALUE: - /* Fall through */ - case GPS_PARSER_MGA_DBD_ID_VALUE: - { - GPS_AppCustomData.ParserStatus.MsgID = byte; - GPS_Parser_StateChange(GPS_PARSE_STATE_GOT_ID); - break; - } - - default: - { - GPS_AppCustomData.ParserStatus.ParseError++; - CFE_EVS_SendEvent(GPS_INIT_DEVICE_PARSER_ERR_EID, CFE_EVS_ERROR, - "Received message with unexpected message ID (0x%.2x) for MGA class.", byte); - GPS_Parser_Reset(); - } - } - break; - } - - case GPS_PARSER_CLASS_LOG_VALUE: - { - switch(byte) - { - case GPS_PARSER_LOG_ERASE_ID_VALUE: - /* Fall through */ - case GPS_PARSER_LOG_STRING_ID_VALUE: - /* Fall through */ - case GPS_PARSER_LOG_CREATE_ID_VALUE: - /* Fall through */ - case GPS_PARSER_LOG_INFO_ID_VALUE: - /* Fall through */ - case GPS_PARSER_LOG_RETRIEVE_ID_VALUE: - /* Fall through */ - case GPS_PARSER_LOG_RETRIEVEPOS_ID_VALUE: - /* Fall through */ - case GPS_PARSER_LOG_RETRIEVESTRING_ID_VALUE: - /* Fall through */ - case GPS_PARSER_LOG_FINDTIME_ID_VALUE: - /* Fall through */ - case GPS_PARSER_LOG_RETRIEVEPOSEXTRA_ID_VALUE: - { - GPS_AppCustomData.ParserStatus.MsgID = byte; - GPS_Parser_StateChange(GPS_PARSE_STATE_GOT_ID); - break; - } - - default: - { - GPS_AppCustomData.ParserStatus.ParseError++; - CFE_EVS_SendEvent(GPS_INIT_DEVICE_PARSER_ERR_EID, CFE_EVS_ERROR, - "Received message with unexpected message ID (0x%.2x) for LOG class.", byte); - GPS_Parser_Reset(); - } - } - break; - } - - case GPS_PARSER_CLASS_SEC_VALUE: - { - switch(byte) - { - case GPS_PARSER_SEC_SIGN_ID_VALUE: - /* Fall through */ - case GPS_PARSER_SEC_UNIQID_ID_VALUE: - { - GPS_AppCustomData.ParserStatus.MsgID = byte; - GPS_Parser_StateChange(GPS_PARSE_STATE_GOT_ID); - break; - } - - default: - { - GPS_AppCustomData.ParserStatus.ParseError++; - CFE_EVS_SendEvent(GPS_INIT_DEVICE_PARSER_ERR_EID, CFE_EVS_ERROR, - "Received message with unexpected message ID (0x%.2x) for SEC class.", byte); - GPS_Parser_Reset(); - } - } - break; - } - - case GPS_PARSER_CLASS_HNR_VALUE: - { - switch(byte) - { - case GPS_PARSER_HNR_PVT_ID_VALUE: - { - GPS_AppCustomData.ParserStatus.MsgID = byte; - GPS_Parser_StateChange(GPS_PARSE_STATE_GOT_ID); - break; - } - - default: - { - GPS_AppCustomData.ParserStatus.ParseError++; - CFE_EVS_SendEvent(GPS_INIT_DEVICE_PARSER_ERR_EID, CFE_EVS_ERROR, - "Received message with unexpected message ID (0x%.2x) for HNR class.", byte); - GPS_Parser_Reset(); - } - } - break; - } - - default: - { - GPS_AppCustomData.ParserStatus.ParseError++; - CFE_EVS_SendEvent(GPS_INIT_DEVICE_PARSER_ERR_EID, CFE_EVS_ERROR, - "Received message with unexpected class ID (0x%.2x)", byte); - GPS_Parser_Reset(); - } - } - break; - } - - case GPS_PARSE_STATE_GOT_ID: - { - GPS_AppCustomData.ParserStatus.MsgLength = byte; - GPS_Parser_StateChange(GPS_PARSE_STATE_GOT_LENGTH1); - break; - } - - case GPS_PARSE_STATE_GOT_LENGTH1: - { - GPS_AppCustomData.ParserStatus.MsgLength += byte << 8; - GPS_Parser_StateChange(GPS_PARSE_STATE_GOT_LENGTH2); - break; - } - - case GPS_PARSE_STATE_GOT_LENGTH2: - { - switch(GPS_AppCustomData.ParserStatus.ClassID) - { - case GPS_PARSER_CLASS_NAV_VALUE: - { - switch(GPS_AppCustomData.ParserStatus.MsgID) - { - case GPS_PARSER_NAV_POSECEF_ID_VALUE: - { - GPS_Nav_ParseChar_POSECEF(byte, message); - GPS_AppCustomData.ParserStatus.PayloadCursor++; - break; - } - - case GPS_PARSER_NAV_POSLLH_ID_VALUE: - { - GPS_Nav_ParseChar_POSLLH(byte, message); - GPS_AppCustomData.ParserStatus.PayloadCursor++; - break; - } - - case GPS_PARSER_NAV_STATUS_ID_VALUE: - { - GPS_Nav_ParseChar_STATUS(byte, message); - GPS_AppCustomData.ParserStatus.PayloadCursor++; - break; - } - - case GPS_PARSER_NAV_DOP_ID_VALUE: - { - GPS_Nav_ParseChar_DOP(byte, message); - GPS_AppCustomData.ParserStatus.PayloadCursor++; - break; - } - - case GPS_PARSER_NAV_ATT_ID_VALUE: - { - GPS_Nav_ParseChar_ATT(byte, message); - GPS_AppCustomData.ParserStatus.PayloadCursor++; - break; - } - - case GPS_PARSER_NAV_SOL_ID_VALUE: - { - GPS_Nav_ParseChar_SOL(byte, message); - GPS_AppCustomData.ParserStatus.PayloadCursor++; - break; - } - - case GPS_PARSER_NAV_NAVPVT_ID_VALUE: - { - GPS_Nav_ParseChar_PVT(byte, message); - GPS_AppCustomData.ParserStatus.PayloadCursor++; - break; - } - - case GPS_PARSER_NAV_ODO_ID_VALUE: - { - GPS_Nav_ParseChar_ODO(byte, message); - GPS_AppCustomData.ParserStatus.PayloadCursor++; - break; - } - - case GPS_PARSER_NAV_RESETODO_ID_VALUE: - { - GPS_Nav_ParseChar_RESETODO(byte, message); - GPS_AppCustomData.ParserStatus.PayloadCursor++; - break; - } - - case GPS_PARSER_NAV_VELECEF_ID_VALUE: - { - GPS_Nav_ParseChar_VELECEF(byte, message); - GPS_AppCustomData.ParserStatus.PayloadCursor++; - break; - } - - case GPS_PARSER_NAV_VELNED_ID_VALUE: - { - GPS_Nav_ParseChar_VELNED(byte, message); - GPS_AppCustomData.ParserStatus.PayloadCursor++; - break; - } - - case GPS_PARSER_NAV_TIMEGPS_ID_VALUE: - { - GPS_Nav_ParseChar_TIMEGPS(byte, message); - GPS_AppCustomData.ParserStatus.PayloadCursor++; - break; - } - - case GPS_PARSER_NAV_TIMEUTC_ID_VALUE: - { - GPS_Nav_ParseChar_TIMEUTC(byte, message); - GPS_AppCustomData.ParserStatus.PayloadCursor++; - break; - } - - case GPS_PARSER_NAV_CLOCK_ID_VALUE: - { - GPS_Nav_ParseChar_CLOCK(byte, message); - GPS_AppCustomData.ParserStatus.PayloadCursor++; - break; - } - - case GPS_PARSER_NAV_TIMEGLO_ID_VALUE: - { - GPS_Nav_ParseChar_TIMEGLO(byte, message); - GPS_AppCustomData.ParserStatus.PayloadCursor++; - break; - } - - case GPS_PARSER_NAV_TIMEBDS_ID_VALUE: - { - GPS_Nav_ParseChar_TIMEBDS(byte, message); - GPS_AppCustomData.ParserStatus.PayloadCursor++; - break; - } - - case GPS_PARSER_NAV_TIMEGAL_ID_VALUE: - { - GPS_Nav_ParseChar_TIMEGAL(byte, message); - GPS_AppCustomData.ParserStatus.PayloadCursor++; - break; - } - - case GPS_PARSER_NAV_TIMELS_ID_VALUE: - { - GPS_Nav_ParseChar_TIMELS(byte, message); - GPS_AppCustomData.ParserStatus.PayloadCursor++; - break; - } - - case GPS_PARSER_NAV_SVINFO_ID_VALUE: - { - GPS_Nav_ParseChar_SVINFOH(byte, message); - GPS_AppCustomData.ParserStatus.PayloadCursor++; - break; - } - - case GPS_PARSER_NAV_DGPS_ID_VALUE: - { - GPS_Nav_ParseChar_DGPS(byte, message); - GPS_AppCustomData.ParserStatus.PayloadCursor++; - break; - } - - case GPS_PARSER_NAV_SBAS_ID_VALUE: - { - GPS_Nav_ParseChar_SBAS(byte, message); - GPS_AppCustomData.ParserStatus.PayloadCursor++; - break; - } - - case GPS_PARSER_NAV_ORB_ID_VALUE: - { - GPS_Nav_ParseChar_ORB(byte, message); - GPS_AppCustomData.ParserStatus.PayloadCursor++; - break; - } - - case GPS_PARSER_NAV_NAVSAT_ID_VALUE: - { - GPS_Nav_ParseChar_SAT(byte, message); - GPS_AppCustomData.ParserStatus.PayloadCursor++; - break; - } - - case GPS_PARSER_NAV_GEOFENCE_ID_VALUE: - { - GPS_Nav_ParseChar_GEOFENCE(byte, message); - GPS_AppCustomData.ParserStatus.PayloadCursor++; - break; - } - - case GPS_PARSER_NAV_AOPSTATUS_ID_VALUE: - { - GPS_Nav_ParseChar_AOPSTATUS(byte, message); - GPS_AppCustomData.ParserStatus.PayloadCursor++; - break; - } - - case GPS_PARSER_NAV_EOE_ID_VALUE: - { - GPS_Nav_ParseChar_EOE(byte, message); - GPS_AppCustomData.ParserStatus.PayloadCursor++; - break; - } - - default: - { - GPS_AppCustomData.ParserStatus.ParseError++; - CFE_EVS_SendEvent(GPS_INIT_DEVICE_PARSER_ERR_EID, CFE_EVS_ERROR, - "Received message with unexpected message ID (0x%.2x) for NAV class.", byte); - GPS_Parser_Reset(); - } - } - - break; - } - - case GPS_PARSER_CLASS_RXM_VALUE: - { - OS_printf("GPS: GPS_PARSER_CLASS_RXM_VALUE not yet implemented.\n"); - GPS_Parser_StateChange(GPS_PARSE_STATE_IDLE); - break; - } - - case GPS_PARSER_CLASS_INF_VALUE: - { - OS_printf("GPS: GPS_PARSER_CLASS_INF_VALUE not yet implemented.\n"); - GPS_Parser_StateChange(GPS_PARSE_STATE_IDLE); - break; - } - - case GPS_PARSER_CLASS_ACK_VALUE: - { - switch(GPS_AppCustomData.ParserStatus.MsgID) - { - case GPS_PARSER_ACK_NAK_ID_VALUE: - { - GPS_Ack_ParseChar_NAK(byte, message); - GPS_AppCustomData.ParserStatus.PayloadCursor++; - break; - } - - case GPS_PARSER_ACK_ACK_ID_VALUE: - { - GPS_Ack_ParseChar_ACK(byte, message); - GPS_AppCustomData.ParserStatus.PayloadCursor++; - break; - } - } - break; - } - - case GPS_PARSER_CLASS_CFG_VALUE: - { - /* */ - OS_printf("GPS: GPS_PARSER_CLASS_CFG_VALUE not yet implemented.\n"); - GPS_Parser_StateChange(GPS_PARSE_STATE_IDLE); - break; - } - - case GPS_PARSER_CLASS_UPD_VALUE: - { - OS_printf("GPS: GPS_PARSER_CLASS_UPD_VALUE not yet implemented.\n"); - GPS_Parser_StateChange(GPS_PARSE_STATE_IDLE); - break; - } - - case GPS_PARSER_CLASS_MON_VALUE: - { - switch(GPS_AppCustomData.ParserStatus.MsgID) - { - case GPS_PARSER_MON_IO_ID_VALUE: - { - GPS_Mon_ParseChar_IO(byte, message); - GPS_AppCustomData.ParserStatus.PayloadCursor++; - break; - } - - case GPS_PARSER_MON_VER_ID_VALUE: - { - GPS_Mon_ParseChar_VER(byte, message); - GPS_AppCustomData.ParserStatus.PayloadCursor++; - break; - } - - case GPS_PARSER_MON_MSGPP_ID_VALUE: - { - GPS_Mon_ParseChar_MSGPP(byte, message); - GPS_AppCustomData.ParserStatus.PayloadCursor++; - break; - } - - case GPS_PARSER_MON_RXBUF_ID_VALUE: - { - GPS_Mon_ParseChar_RXBUF(byte, message); - GPS_AppCustomData.ParserStatus.PayloadCursor++; - break; - } - - case GPS_PARSER_MON_TXBUF_ID_VALUE: - { - GPS_Mon_ParseChar_TXBUF(byte, message); - GPS_AppCustomData.ParserStatus.PayloadCursor++; - break; - } - - case GPS_PARSER_MON_HW_ID_VALUE: - { - GPS_Mon_ParseChar_HW(byte, message); - GPS_AppCustomData.ParserStatus.PayloadCursor++; - break; - } - - case GPS_PARSER_MON_HW2_ID_VALUE: - { - GPS_Mon_ParseChar_HW2(byte, message); - GPS_AppCustomData.ParserStatus.PayloadCursor++; - break; - } - - case GPS_PARSER_MON_RXR_ID_VALUE: - { - GPS_Mon_ParseChar_RXR(byte, message); - GPS_AppCustomData.ParserStatus.PayloadCursor++; - break; - } - - case GPS_PARSER_MON_PATCH_ID_VALUE: - { - GPS_Mon_ParseChar_PATCH(byte, message); - GPS_AppCustomData.ParserStatus.PayloadCursor++; - break; - } - - case GPS_PARSER_MON_GNSS_ID_VALUE: - { - GPS_Mon_ParseChar_GNSS(byte, message); - GPS_AppCustomData.ParserStatus.PayloadCursor++; - break; - } - - case GPS_PARSER_MON_SMGR_ID_VALUE: - { - GPS_Mon_ParseChar_SMGR(byte, message); - GPS_AppCustomData.ParserStatus.PayloadCursor++; - break; - } - } - - break; - } - - case GPS_PARSER_CLASS_AID_VALUE: - { - OS_printf("GPS: GPS_PARSER_CLASS_AID_VALUE not yet implemented.\n"); - GPS_Parser_StateChange(GPS_PARSE_STATE_IDLE); - break; - } - - case GPS_PARSER_CLASS_TIM_VALUE: - { - OS_printf("GPS: GPS_PARSER_CLASS_TIM_VALUE not yet implemented.\n"); - GPS_Parser_StateChange(GPS_PARSE_STATE_IDLE); - break; - } - - case GPS_PARSER_CLASS_ESF_VALUE: - { - OS_printf("GPS: GPS_PARSER_CLASS_ESF_VALUE not yet implemented.\n"); - GPS_Parser_StateChange(GPS_PARSE_STATE_IDLE); - break; - } - - case GPS_PARSER_CLASS_MGA_VALUE: - { - OS_printf("GPS: GPS_PARSER_CLASS_MGA_VALUE not yet implemented.\n"); - GPS_Parser_StateChange(GPS_PARSE_STATE_IDLE); - break; - } - - case GPS_PARSER_CLASS_LOG_VALUE: - { - OS_printf("GPS: GPS_PARSER_CLASS_LOG_VALUE not yet implemented.\n"); - GPS_Parser_StateChange(GPS_PARSE_STATE_IDLE); - break; - } - - case GPS_PARSER_CLASS_SEC_VALUE: - { - OS_printf("GPS: GPS_PARSER_CLASS_SEC_VALUE not yet implemented.\n"); - GPS_Parser_StateChange(GPS_PARSE_STATE_IDLE); - break; - } - - case GPS_PARSER_CLASS_HNR_VALUE: - { - OS_printf("GPS: GPS_PARSER_CLASS_HNR_VALUE not yet implemented.\n"); - GPS_Parser_StateChange(GPS_PARSE_STATE_IDLE); - break; - } - - default: - { - GPS_Parser_StateChange(GPS_PARSE_STATE_IDLE); - } - } - - break; - } - - case GPS_PARSE_STATE_GOT_PAYLOAD: - { - GPS_AppCustomData.ParserStatus.ChecksumA = byte; - GPS_Parser_StateChange(GPS_PARSE_STATE_GOT_CHECKSUMA); - break; - } - - case GPS_PARSE_STATE_GOT_CHECKSUMA: - { - CFE_SB_TimeStampMsg((CFE_SB_MsgPtr_t)message); - msg_received = 1; - *done = TRUE; - GPS_Parser_StateChange(GPS_PARSE_STATE_IDLE); - break; - } - - default: - { - } - } - - return msg_received; -} - - - -CFE_SB_MsgId_t GPS_TranslateMsgID(uint16 ClassID, uint16 MsgID) -{ - CFE_SB_MsgId_t sbMsgID = 0; - - switch(ClassID) - { - case GPS_PARSER_CLASS_NAV_VALUE: - { - switch(MsgID) - { - //case GPS_PARSER_NAV_POSECEF_ID_VALUE: - //sbMsgID = GPS_NAV_POSECEF_MID; - //break; - - //case GPS_PARSER_NAV_POSLLH_ID_VALUE: - //sbMsgID = GPS_NAV_POSLLH_MID; - //break; - - //case GPS_PARSER_NAV_STATUS_ID_VALUE: - //sbMsgID = GPS_NAV_STATUS_MID; - //break; - - case GPS_PARSER_NAV_DOP_ID_VALUE: - { - sbMsgID = GPS_NAV_DOP_MID; - break; - } - //case GPS_PARSER_NAV_ATT_ID_VALUE: - //sbMsgID = GPS_NAV_ATT_MID; - //break; - - //case GPS_PARSER_NAV_SOL_ID_VALUE: - //sbMsgID = GPS_NAV_SOL_MID; - //break; - - case GPS_PARSER_NAV_NAVPVT_ID_VALUE: - { - sbMsgID = GPS_NAV_NAVPVT_MID; - break; - } - //case GPS_PARSER_NAV_ODO_ID_VALUE: - //sbMsgID = GPS_NAV_ODO_MID; - //break; - - //case GPS_PARSER_NAV_RESETODO_ID_VALUE: - //sbMsgID = GPS_NAV_RESETODO_MID; - //break; - - //case GPS_PARSER_NAV_VELECEF_ID_VALUE: - //sbMsgID = GPS_NAV_VELECEF_MID; - //break; - - //case GPS_PARSER_NAV_VELNED_ID_VALUE: - //sbMsgID = GPS_NAV_VELNED_MID; - //break; - - //case GPS_PARSER_NAV_TIMEGPS_ID_VALUE: - //sbMsgID = GPS_NAV_TIMEGPS_MID; - //break; - - //case GPS_PARSER_NAV_TIMEUTC_ID_VALUE: - //sbMsgID = GPS_NAV_TIMEUTC_MID; - //break; - - //case GPS_PARSER_NAV_CLOCK_ID_VALUE: - //sbMsgID = GPS_NAV_CLOCK_MID; - //break; - - //case GPS_PARSER_NAV_TIMEGLO_ID_VALUE: - //sbMsgID = GPS_NAV_TIMEGLO_MID; - //break; - - //case GPS_PARSER_NAV_TIMEBDS_ID_VALUE: - //sbMsgID = GPS_NAV_TIMEBDS_MID; - //break; - - //case GPS_PARSER_NAV_TIMEGAL_ID_VALUE: - //sbMsgID = GPS_NAV_TIMEGAL_MID; - //break; - - //case GPS_PARSER_NAV_TIMELS_ID_VALUE: - //sbMsgID = GPS_NAV_TIMELS_MID; - //break; - - case GPS_PARSER_NAV_SVINFO_ID_VALUE: - { - sbMsgID = GPS_NAV_SVINFO_MID; - break; - } - //case GPS_PARSER_NAV_DGPS_ID_VALUE: - //sbMsgID = GPS_NAV_DGPS_MID; - //break; - - //case GPS_PARSER_NAV_SBAS_ID_VALUE: - //sbMsgID = GPS_NAV_SBAS_MID; - //break; - - //case GPS_PARSER_NAV_ORB_ID_VALUE: - //sbMsgID = GPS_NAV_ORB_MID; - //break; - - //case GPS_PARSER_NAV_NAVSAT_ID_VALUE: - //sbMsgID = GPS_NAV_NAVSAT_MID; - //break; - - //case GPS_PARSER_NAV_GEOFENCE_ID_VALUE: - //sbMsgID = GPS_NAV_GEOFENCE_MID; - //break; - - //case GPS_PARSER_NAV_AOPSTATUS_ID_VALUE: - //sbMsgID = GPS_NAV_AOPSTATUS_MID; - //break; - - //case GPS_PARSER_NAV_EOE_ID_VALUE: - //sbMsgID = GPS_NAV_EOE_MID; - //break; - - default: - { - break; - } - } - break; - } - case GPS_PARSER_CLASS_RXM_VALUE: - /* Fall through */ - case GPS_PARSER_CLASS_INF_VALUE: - /* Fall through */ - case GPS_PARSER_CLASS_ACK_VALUE: - { - switch(MsgID) - { - case GPS_PARSER_ACK_NAK_ID_VALUE: - { - sbMsgID = GPS_ACK_NAK_MID; - break; - } - case GPS_PARSER_ACK_ACK_ID_VALUE: - { - sbMsgID = GPS_ACK_ACK_MID; - break; - } - default: - { - break; - } - } - } - case GPS_PARSER_CLASS_CFG_VALUE: - { - switch(MsgID) - { - case GPS_PARSER_CFG_PRT_ID_VALUE: - { - sbMsgID = GPS_CFG_PRT_MID; - break; - } - - case GPS_PARSER_CFG_MSG_ID_VALUE: - { - sbMsgID = GPS_CFG_MSG_MID; - break; - } - //case GPS_PARSER_CFG_INF_ID_VALUE: - //sbMsgID = ; - //break; - - //case GPS_PARSER_CFG_RST_ID_VALUE: - //sbMsgID = ; - //break; - - //case GPS_PARSER_CFG_DAT_ID_VALUE: - //sbMsgID = ; - //break; - - case GPS_PARSER_CFG_RATE_ID_VALUE: - { - sbMsgID = GPS_CFG_RATE_MID; - break; - } - //case GPS_PARSER_CFG_CFG_ID_VALUE: - //sbMsgID = ; - //break; - - //case GPS_PARSER_CFG_RXM_ID_VALUE: - //sbMsgID = ; - //break; - - //case GPS_PARSER_CFG_ANT_ID_VALUE: - //sbMsgID = ; - //break; - - case GPS_PARSER_CFG_SBAS_ID_VALUE: - { - sbMsgID = GPS_CFG_SBAS_MID; - break; - } - //case GPS_PARSER_CFG_NMEA_ID_VALUE: - //sbMsgID = ; - //break; - - //case GPS_PARSER_CFG_USB_ID_VALUE: - //sbMsgID = ; - //break; - - //case GPS_PARSER_CFG_ODO_ID_VALUE: - //sbMsgID = ; - //break; - - //case GPS_PARSER_CFG_NAVX5_ID_VALUE: - //sbMsgID = ; - //break; - - case GPS_PARSER_CFG_NAV5_ID_VALUE: - { - sbMsgID = GPS_CFG_NAV5_MID; - break; - } - //case GPS_PARSER_CFG_TP5_ID_VALUE: - //sbMsgID = ; - //break; - - //case GPS_PARSER_CFG_RINV_ID_VALUE: - //sbMsgID = ; - //break; - - //case GPS_PARSER_CFG_ITFM_ID_VALUE: - //sbMsgID = ; - //break; - - //case GPS_PARSER_CFG_PM2_ID_VALUE: - //sbMsgID = ; - //break; - - //case GPS_PARSER_CFG_TMOD2_ID_VALUE: - //sbMsgID = ; - //break; - - //case GPS_PARSER_CFG_GNSS_ID_VALUE: - //sbMsgID = ; - //break; - - //case GPS_PARSER_CFG_LOGFILTER_ID_VALUE: - //sbMsgID = ; - //break; - - //case GPS_PARSER_CFG_PWR_ID_VALUE: - //sbMsgID = ; - //break; - - //case GPS_PARSER_CFG_TXSLOT_ID_VALUE: - //sbMsgID = ; - //break; - - //case GPS_PARSER_CFG_HNR_ID_VALUE: - //sbMsgID = ; - //break; - - //case GPS_PARSER_CFG_ESRC_ID_VALUE: - //sbMsgID = ; - //break; - - //case GPS_PARSER_CFG_DOSC_ID_VALUE: - //sbMsgID = ; - //break; - - //case GPS_PARSER_CFG_SMGR_ID_VALUE: - //sbMsgID = ; - //break; - - //case GPS_PARSER_CFG_GEOFENCE_ID_VALUE: - //sbMsgID = ; - //break; - - //case GPS_PARSER_CFG_FIXSEED_ID_VALUE: - //sbMsgID = ; - //break; - - //case GPS_PARSER_CFG_DYNSEED_ID_VALUE: - //sbMsgID = ; - //break; - - //case GPS_PARSER_CFG_PMS_ID_VALUE: - //sbMsgID = ; - //break; - - default: - { - break; - } - } - } - case GPS_PARSER_CLASS_UPD_VALUE: - /* Fall through */ - case GPS_PARSER_CLASS_MON_VALUE: - { - switch(MsgID) - { - //case GPS_PARSER_MON_IO_ID_VALUE: - //sbMsgID = GPS_MON_IO_MID; - //break; - - //case GPS_PARSER_MON_VER_ID_VALUE: - //sbMsgID = GPS_MON_VER_MID; - //break; - - //case GPS_PARSER_MON_MSGPP_ID_VALUE: - //sbMsgID = GPS_MON_MSGPP_MID; - //break; - - //case GPS_PARSER_MON_RXBUF_ID_VALUE: - //sbMsgID = GPS_MON_RXBUF_MID; - //break; - - //case GPS_PARSER_MON_TXBUF_ID_VALUE: - //sbMsgID = GPS_MON_TXBUF_MID; - //break; - - case GPS_PARSER_MON_HW_ID_VALUE: - { - sbMsgID = GPS_MON_HW_MID; - break; - } - //case GPS_PARSER_MON_HW2_ID_VALUE: - //sbMsgID = GPS_MON_HW2_MID; - //break; - - //case GPS_PARSER_MON_RXR_ID_VALUE: - //sbMsgID = GPS_MON_RXR_MID; - //break; - - //case GPS_PARSER_MON_PATCH_ID_VALUE: - //sbMsgID = GPS_MON_PATCH_MID; - //break; - - //case GPS_PARSER_MON_GNSS_ID_VALUE: - //sbMsgID = GPS_MON_GNSS_MID; - //break; - - //case GPS_PARSER_MON_SMGR_ID_VALUE: - //sbMsgID = GPS_MON_SMGR_MID; - //break; - - default: - { - break; - } - } - } - - case GPS_PARSER_CLASS_AID_VALUE: - /* Fall through */ - case GPS_PARSER_CLASS_TIM_VALUE: - /* Fall through */ - case GPS_PARSER_CLASS_ESF_VALUE: - /* Fall through */ - case GPS_PARSER_CLASS_MGA_VALUE: - /* Fall through */ - case GPS_PARSER_CLASS_LOG_VALUE: - /* Fall through */ - case GPS_PARSER_CLASS_SEC_VALUE: - /* Fall through */ - case GPS_PARSER_CLASS_HNR_VALUE: - { - break; - } - default: - { - break; - } - } - - return sbMsgID; -} - -/************************/ -/* End of File Comment */ -/************************/ - diff --git a/config/obc/ppd/target/apps/gps/src/gps_parser_ubx/gps_parser_ubx_common.h b/config/obc/ppd/target/apps/gps/src/gps_parser_ubx/gps_parser_ubx_common.h deleted file mode 100644 index 37b0bf4a4..000000000 --- a/config/obc/ppd/target/apps/gps/src/gps_parser_ubx/gps_parser_ubx_common.h +++ /dev/null @@ -1,307 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ - -#ifndef _GPS_PARSER_UBX_COMMON_H_ -#define _GPS_PARSER_UBX_COMMON_H_ - -#ifdef __cplusplus -extern "C" { -#endif - -/************************************************************************ -** Includes -*************************************************************************/ -#include "gps_parser_ubx_ack.h" -#include "gps_parser_ubx_cfg.h" -#include "gps_parser_ubx_mon.h" -#include "gps_parser_ubx_nav.h" -#include "gps_ubx_msg.h" -#include "../gps_custom_shared.h" -#include "../gps_interface_uart/gps_serial.h" - - - -/************************************************************************ -** Local Defines -*************************************************************************/ -/* UBX header contents */ -/** \brief Header symbol 1. -** -** \par Description: -** UBX header symbol 1. -*/ -#define GPS_PARSER_SYNC1_VALUE (0xb5) - -/** \brief Header symbol 2. -** -** \par Description: -** UBX header symbol 2. -*/ -#define GPS_PARSER_SYNC2_VALUE (0x62) - -/************************************************************************ -** External Global Variables -*************************************************************************/ -extern GPS_AppCustomData_t GPS_AppCustomData; - - -/************************************************************************ -** Structure Declarations -*************************************************************************/ - -typedef enum -{ - GPS_PARSER_CLASS_NAV_VALUE = 0x01, - GPS_PARSER_CLASS_RXM_VALUE = 0x02, - GPS_PARSER_CLASS_INF_VALUE = 0x04, - GPS_PARSER_CLASS_ACK_VALUE = 0x05, - GPS_PARSER_CLASS_CFG_VALUE = 0x06, - GPS_PARSER_CLASS_UPD_VALUE = 0x09, - GPS_PARSER_CLASS_MON_VALUE = 0x0a, - GPS_PARSER_CLASS_AID_VALUE = 0x0b, - GPS_PARSER_CLASS_TIM_VALUE = 0x0d, - GPS_PARSER_CLASS_ESF_VALUE = 0x10, - GPS_PARSER_CLASS_MGA_VALUE = 0x13, - GPS_PARSER_CLASS_LOG_VALUE = 0x21, - GPS_PARSER_CLASS_SEC_VALUE = 0x27, - GPS_PARSER_CLASS_HNR_VALUE = 0x28 -} GPS_ParserClassValue_t; - - -typedef enum -{ - GPS_PARSER_NAV_POSECEF_ID_VALUE = 0x01, - GPS_PARSER_NAV_POSLLH_ID_VALUE = 0x02, - GPS_PARSER_NAV_STATUS_ID_VALUE = 0x03, - GPS_PARSER_NAV_DOP_ID_VALUE = 0x04, - GPS_PARSER_NAV_ATT_ID_VALUE = 0x05, - GPS_PARSER_NAV_SOL_ID_VALUE = 0x06, - GPS_PARSER_NAV_NAVPVT_ID_VALUE = 0x07, - GPS_PARSER_NAV_ODO_ID_VALUE = 0x09, - GPS_PARSER_NAV_RESETODO_ID_VALUE = 0x10, - GPS_PARSER_NAV_VELECEF_ID_VALUE = 0x11, - GPS_PARSER_NAV_VELNED_ID_VALUE = 0x12, - GPS_PARSER_NAV_TIMEGPS_ID_VALUE = 0x20, - GPS_PARSER_NAV_TIMEUTC_ID_VALUE = 0x21, - GPS_PARSER_NAV_CLOCK_ID_VALUE = 0x22, - GPS_PARSER_NAV_TIMEGLO_ID_VALUE = 0x23, - GPS_PARSER_NAV_TIMEBDS_ID_VALUE = 0x24, - GPS_PARSER_NAV_TIMEGAL_ID_VALUE = 0x25, - GPS_PARSER_NAV_TIMELS_ID_VALUE = 0x26, - GPS_PARSER_NAV_SVINFO_ID_VALUE = 0x30, - GPS_PARSER_NAV_DGPS_ID_VALUE = 0x31, - GPS_PARSER_NAV_SBAS_ID_VALUE = 0x32, - GPS_PARSER_NAV_ORB_ID_VALUE = 0x34, - GPS_PARSER_NAV_NAVSAT_ID_VALUE = 0x35, - GPS_PARSER_NAV_GEOFENCE_ID_VALUE = 0x39, - GPS_PARSER_NAV_AOPSTATUS_ID_VALUE = 0x60, - GPS_PARSER_NAV_EOE_ID_VALUE = 0x61, -} GPS_ParserNavIDValue_t; - - -typedef enum -{ - GPS_PARSER_RXM_SFRBX_ID_VALUE = 0x13, - GPS_PARSER_RXM_MEASX_ID_VALUE = 0x14, - GPS_PARSER_RXM_RAWX_ID_VALUE = 0x15, - GPS_PARSER_RXM_SVSI_ID_VALUE = 0x20, - GPS_PARSER_RXM_PMREQ_ID_VALUE = 0x41, - GPS_PARSER_RXM_RLM_ID_VALUE = 0x59, - GPS_PARSER_RXM_IMES_ID_VALUE = 0x61 -} GPS_ParserRxmIDValue_t; - - -typedef enum -{ - GPS_PARSER_ACK_NAK_ID_VALUE = 0x00, - GPS_PARSER_ACK_ACK_ID_VALUE = 0x01 -} GPS_ParserAckIDValue_t; - - -typedef enum -{ - GPS_PARSER_CFG_PRT_ID_VALUE = 0x00, - GPS_PARSER_CFG_MSG_ID_VALUE = 0x01, - GPS_PARSER_CFG_INF_ID_VALUE = 0x02, - GPS_PARSER_CFG_RST_ID_VALUE = 0x04, - GPS_PARSER_CFG_DAT_ID_VALUE = 0x06, - GPS_PARSER_CFG_RATE_ID_VALUE = 0x08, - GPS_PARSER_CFG_CFG_ID_VALUE = 0x09, - GPS_PARSER_CFG_RXM_ID_VALUE = 0x11, - GPS_PARSER_CFG_ANT_ID_VALUE = 0x13, - GPS_PARSER_CFG_SBAS_ID_VALUE = 0x16, - GPS_PARSER_CFG_NMEA_ID_VALUE = 0x17, - GPS_PARSER_CFG_USB_ID_VALUE = 0x1B, - GPS_PARSER_CFG_ODO_ID_VALUE = 0x1E, - GPS_PARSER_CFG_NAVX5_ID_VALUE = 0x23, - GPS_PARSER_CFG_NAV5_ID_VALUE = 0x24, - GPS_PARSER_CFG_TP5_ID_VALUE = 0x31, - GPS_PARSER_CFG_RINV_ID_VALUE = 0x34, - GPS_PARSER_CFG_ITFM_ID_VALUE = 0x39, - GPS_PARSER_CFG_PM2_ID_VALUE = 0x3B, - GPS_PARSER_CFG_TMOD2_ID_VALUE = 0x3D, - GPS_PARSER_CFG_GNSS_ID_VALUE = 0x3E, - GPS_PARSER_CFG_LOGFILTER_ID_VALUE = 0x47, - GPS_PARSER_CFG_PWR_ID_VALUE = 0x57, - GPS_PARSER_CFG_TXSLOT_ID_VALUE = 0x53, - GPS_PARSER_CFG_HNR_ID_VALUE = 0x5C, - GPS_PARSER_CFG_ESRC_ID_VALUE = 0x60, - GPS_PARSER_CFG_DOSC_ID_VALUE = 0x61, - GPS_PARSER_CFG_SMGR_ID_VALUE = 0x62, - GPS_PARSER_CFG_GEOFENCE_ID_VALUE = 0x69, - GPS_PARSER_CFG_FIXSEED_ID_VALUE = 0X84, - GPS_PARSER_CFG_DYNSEED_ID_VALUE = 0x85, - GPS_PARSER_CFG_PMS_ID_VALUE = 0x86 -} GPS_ParserCfgIDValue_t; - - -typedef enum -{ - GPS_PARSER_UPD_SOS_ID_VALUE = 0x14, -} GPS_ParserUpdIDValue_t; - - -typedef enum -{ - GPS_PARSER_MON_IO_ID_VALUE = 0x02, - GPS_PARSER_MON_VER_ID_VALUE = 0x04, - GPS_PARSER_MON_MSGPP_ID_VALUE = 0x06, - GPS_PARSER_MON_RXBUF_ID_VALUE = 0x07, - GPS_PARSER_MON_TXBUF_ID_VALUE = 0x08, - GPS_PARSER_MON_HW_ID_VALUE = 0x09, - GPS_PARSER_MON_HW2_ID_VALUE = 0x0B, - GPS_PARSER_MON_RXR_ID_VALUE = 0x21, - GPS_PARSER_MON_PATCH_ID_VALUE = 0x27, - GPS_PARSER_MON_GNSS_ID_VALUE = 0x28, - GPS_PARSER_MON_SMGR_ID_VALUE = 0x2E -} GPS_ParserMonIDValue_t; - - -typedef enum -{ - GPS_PARSER_AID_INI_ID_VALUE = 0x01, - GPS_PARSER_AID_HUI_ID_VALUE = 0x02, - GPS_PARSER_AID_ALM_ID_VALUE = 0x30, - GPS_PARSER_AID_EPH_ID_VALUE = 0x31, - GPS_PARSER_AID_AOP_ID_VALUE = 0x33 -} GPS_ParserAidIDValue_t; - - -typedef enum -{ - GPS_PARSER_TIM_TP_ID_VALUE = 0x01, - GPS_PARSER_TIM_TM2_ID_VALUE = 0x03, - GPS_PARSER_TIM_SVIN_ID_VALUE = 0x04, - GPS_PARSER_TIM_VRFY_ID_VALUE = 0x06, - GPS_PARSER_TIM_DOSC_ID_VALUE = 0x11, - GPS_PARSER_TIM_TOS_ID_VALUE = 0x12, - GPS_PARSER_TIM_SMEAS_ID_VALUE = 0x13, - GPS_PARSER_TIM_VCOCAL_ID_VALUE = 0x15, - GPS_PARSER_TIM_FCHG_ID_VALUE = 0x16, - GPS_PARSER_TIM_HOC_ID_VALUE = 0x17 -} GPS_ParserTimIDValue_t; - - -typedef enum -{ - GPS_PARSER_ESF_MEAS_ID_VALUE = 0x02, - GPS_PARSER_ESF_RAW_ID_VALUE = 0x03, - GPS_PARSER_ESF_INS_ID_VALUE = 0x15, - GPS_PARSER_ESF_STATUS_ID_VALUE = 0x10 -} GPS_ParserEsfIDValue_t; - - -typedef enum -{ - GPS_PARSER_MGA_GPS_ID_VALUE = 0x00, - GPS_PARSER_MGA_GAL_ID_VALUE = 0x02, - GPS_PARSER_MGA_BDS_ID_VALUE = 0x03, - GPS_PARSER_MGA_QZSS_ID_VALUE = 0x05, - GPS_PARSER_MGA_GLO_ID_VALUE = 0x06, - GPS_PARSER_MGA_ANO_ID_VALUE = 0x20, - GPS_PARSER_MGA_FLASH_ID_VALUE = 0x21, - GPS_PARSER_MGA_INI_XYZ_ID_VALUE = 0x40, - GPS_PARSER_MGA_ACK_DATA0_ID_VALUE = 0x60, - GPS_PARSER_MGA_DBD_ID_VALUE = 0x80 -} GPS_ParserMgaIDValue_t; - - -typedef enum -{ - GPS_PARSER_LOG_ERASE_ID_VALUE = 0x03, - GPS_PARSER_LOG_STRING_ID_VALUE = 0x04, - GPS_PARSER_LOG_CREATE_ID_VALUE = 0x07, - GPS_PARSER_LOG_INFO_ID_VALUE = 0x08, - GPS_PARSER_LOG_RETRIEVE_ID_VALUE = 0x09, - GPS_PARSER_LOG_RETRIEVEPOS_ID_VALUE = 0x0B, - GPS_PARSER_LOG_RETRIEVESTRING_ID_VALUE = 0x0D, - GPS_PARSER_LOG_FINDTIME_ID_VALUE = 0x0E, - GPS_PARSER_LOG_RETRIEVEPOSEXTRA_ID_VALUE = 0x0F -} GPS_ParserLogIDValue_t; - - -typedef enum -{ - GPS_PARSER_SEC_SIGN_ID_VALUE = 0x01, - GPS_PARSER_SEC_UNIQID_ID_VALUE = 0x03, -} GPS_ParserSecIDValue_t; - - -typedef enum -{ - GPS_PARSER_HNR_PVT_ID_VALUE = 0x00, -} GPS_ParserHnrIDValue_t; - - -typedef enum -{ - GPS_PARSER_INF_ERROR_ID_VALUE = 0x00, - GPS_PARSER_INF_WARNING_ID_VALUE = 0x01, - GPS_PARSER_INF_NOTICE_ID_VALUE = 0x02, - GPS_PARSER_INF_TEST_ID_VALUE = 0x03, - GPS_PARSER_INF_DEBUG_ID_VALUE = 0x04 -} GPS_ParserInfIDValue_t; - - -uint16 GPS_ParseChar(uint8 byte, GPS_DeviceMessage_t* message, boolean *done); -void GPS_Parser_Reset(void); -CFE_SB_MsgId_t GPS_TranslateMsgID(uint16 ClassID, uint16 MsgID); -void GPS_Parser_StateChange(GPS_ParserState_t newState); -void GPS_SetChecksum(uint8 *Buffer, uint16 Size); - -#ifdef __cplusplus -} -#endif - -#endif /* _GPS_PARSER_UBX_COMMON_H_ */ - diff --git a/config/obc/ppd/target/apps/gps/src/gps_parser_ubx/gps_parser_ubx_mon.c b/config/obc/ppd/target/apps/gps/src/gps_parser_ubx/gps_parser_ubx_mon.c deleted file mode 100644 index c609fba24..000000000 --- a/config/obc/ppd/target/apps/gps/src/gps_parser_ubx/gps_parser_ubx_mon.c +++ /dev/null @@ -1,477 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ -/************************************************************************* -** -** Include section -** -**************************************************************************/ - -#include "cfe.h" -//#include "GPS_events.h" -//#include "GPS_msgids.h" -#include "gps_parser_ubx_common.h" - -/************************************************************************* -** -** Macro definitions -** -**************************************************************************/ -#define GPS_PARSER_MON_MSGPP_MSG_LENGTH (120) -#define GPS_PARSER_MON_RXBUF_MSG_LENGTH (24) -#define GPS_PARSER_MON_TXBUF_MSG_LENGTH (28) -#define GPS_PARSER_MON_HW_MSG_LENGTH (60) -#define GPS_PARSER_MON_HW2_MSG_LENGTH (28) -#define GPS_PARSER_MON_RXR_MSG_LENGTH (1) -#define GPS_PARSER_MON_GNSS_MSG_LENGTH (8) -#define GPS_PARSER_MON_SMGR_MSG_LENGTH (16) - -/************************************************************************* -** -** Type definitions -** -**************************************************************************/ - -/* -** (none) -*/ - -/************************************************************************* -** -** Imported data -** -**************************************************************************/ - -/* -** (none) -*/ - -/************************************************************************* -** -** Exported data -** -**************************************************************************/ - - - -/************************************************************************* -** -** File data -** -**************************************************************************/ - -/* -** (none) -*/ - -/************************************************************************* -** Local function prototypes -**************************************************************************/ - -/* Incoming messages. */ -void GPS_Mon_ParseChar_IO(uint8 byte, GPS_DeviceMessage_t* message) -{ - -} - -void GPS_Mon_ParseChar_VER(uint8 byte, GPS_DeviceMessage_t* message) -{ - -} - -void GPS_Mon_ParseChar_MSGPP(uint8 byte, GPS_DeviceMessage_t* message) -{ - -} - -void GPS_Mon_ParseChar_RXBUF(uint8 byte, GPS_DeviceMessage_t* message) -{ - -} - -void GPS_Mon_ParseChar_TXBUF(uint8 byte, GPS_DeviceMessage_t* message) -{ - -} - -void GPS_Mon_ParseChar_HW(uint8 byte, GPS_DeviceMessage_t* message) -{ - if(GPS_AppCustomData.ParserStatus.MsgLength != GPS_PARSER_MON_HW_MSG_LENGTH) - { - GPS_AppCustomData.ParserStatus.ParseError++; - CFE_EVS_SendEvent(GPS_INIT_DEVICE_PARSER_ERR_EID, CFE_EVS_ERROR, - "Received TIMEUTC message with incorrect length (%u).", GPS_AppCustomData.ParserStatus.MsgLength); - GPS_Parser_Reset(); - } - else - { - GPS_MON_HW_t *payload = (void*)CFE_SB_GetUserData((CFE_SB_MsgPtr_t)message); - switch(GPS_AppCustomData.ParserStatus.PayloadCursor) - { - case 0: - { - CFE_SB_MsgId_t sbMsgID = GPS_TranslateMsgID(GPS_AppCustomData.ParserStatus.ClassID, GPS_AppCustomData.ParserStatus.MsgID); - uint16 sbHdrSize = CFE_SB_MsgHdrSize(sbMsgID); - uint16 sbTotalMsgSize = sbHdrSize + GPS_AppCustomData.ParserStatus.MsgLength; - CFE_SB_InitMsg(message, sbMsgID, sbTotalMsgSize, TRUE); - - payload->pinSel = byte; - break; - } - - case 1: - { - payload->pinSel += byte << 8; - break; - } - - case 2: - { - payload->pinSel += byte << 16; - break; - } - - case 3: - { - payload->pinSel += byte << 24; - break; - } - - case 4: - { - payload->pinBank = byte; - break; - } - - case 5: - { - payload->pinBank += byte << 8; - break; - } - - case 6: - { - payload->pinBank += byte << 16; - break; - } - - case 7: - { - payload->pinBank += byte << 24; - break; - } - - case 8: - { - payload->pinDir = byte; - break; - } - - case 9: - { - payload->pinDir += byte << 8; - break; - } - - case 10: - { - payload->pinDir += byte << 16; - break; - } - - case 11: - { - payload->pinDir += byte << 24; - break; - } - - case 12: - { - payload->pinVal = byte; - break; - } - - case 13: - { - payload->pinVal += byte << 8; - break; - } - - case 14: - { - payload->pinVal += byte << 16; - break; - } - - case 15: - { - payload->pinVal += byte << 24; - break; - } - - case 16: - { - payload->noisePerMS = byte; - break; - } - - case 17: - { - payload->noisePerMS += byte << 8; - break; - } - - case 18: - { - payload->agcCnt = byte; - break; - } - - case 19: - { - payload->agcCnt += byte << 8; - break; - } - - case 20: - { - payload->aStatus = byte; - break; - } - - case 21: - { - payload->aPower = byte; - break; - } - - case 22: - { - payload->flags = byte; - break; - } - - case 23: - { - /* Reserved byte */ - break; - } - - case 24: - { - payload->usedMask = byte; - break; - } - - case 25: - { - payload->usedMask += byte << 8; - break; - } - - case 26: - { - payload->usedMask += byte << 16; - break; - } - - case 27: - { - payload->usedMask += byte << 24; - break; - } - - /* Fall Through. These are the 17 elements of an array. */ - case 28: - /* Fall Through */ - case 29: - /* Fall Through */ - case 30: - /* Fall Through */ - case 31: - /* Fall Through */ - case 32: - /* Fall Through */ - case 33: - /* Fall Through */ - case 34: - /* Fall Through */ - case 35: - /* Fall Through */ - case 36: - /* Fall Through */ - case 37: - /* Fall Through */ - case 38: - /* Fall Through */ - case 39: - /* Fall Through */ - case 40: - /* Fall Through */ - case 41: - /* Fall Through */ - case 42: - /* Fall Through */ - case 43: - /* Fall Through */ - case 44: - { - payload->vp[GPS_AppCustomData.ParserStatus.PayloadCursor - 28] = byte; - break; - } - - case 45: - { - payload->jamInd = byte; - break; - } - - case 46: - /* Fall Through */ - case 47: - { - /* Reserved bytes */ - break; - } - - case 48: - { - payload->pinIrq = byte; - break; - } - - case 49: - { - payload->pinIrq += byte << 8; - break; - } - - case 50: - { - payload->pinIrq += byte << 16; - break; - } - - case 51: - { - payload->pinIrq += byte << 24; - break; - } - - case 52: - { - payload->pullH = byte; - break; - } - - case 53: - { - payload->pullH += byte << 8; - break; - } - - case 54: - { - payload->pullH += byte << 16; - break; - } - - case 55: - { - payload->pullH += byte << 24; - break; - } - - case 56: - { - payload->pullL = byte; - break; - } - - case 57: - { - payload->pullL += byte << 8; - break; - } - - case 58: - { - payload->pullL += byte << 16; - break; - } - - case 59: - { - payload->pullL += byte << 24; - GPS_Parser_StateChange(GPS_PARSE_STATE_GOT_PAYLOAD); - break; - } - - default: - { - GPS_Parser_Reset(); - return; - } - } - } -} - -void GPS_Mon_ParseChar_HW2(uint8 byte, GPS_DeviceMessage_t* message) -{ - -} - -void GPS_Mon_ParseChar_RXR(uint8 byte, GPS_DeviceMessage_t* message) -{ - -} - -void GPS_Mon_ParseChar_PATCH(uint8 byte, GPS_DeviceMessage_t* message) -{ - -} - -void GPS_Mon_ParseChar_GNSS(uint8 byte, GPS_DeviceMessage_t* message) -{ - -} - -void GPS_Mon_ParseChar_SMGR(uint8 byte, GPS_DeviceMessage_t* message) -{ - -} - - -/************************/ -/* End of File Comment */ -/************************/ - diff --git a/config/obc/ppd/target/apps/gps/src/gps_parser_ubx/gps_parser_ubx_mon.h b/config/obc/ppd/target/apps/gps/src/gps_parser_ubx/gps_parser_ubx_mon.h deleted file mode 100644 index cb4a7d0fc..000000000 --- a/config/obc/ppd/target/apps/gps/src/gps_parser_ubx/gps_parser_ubx_mon.h +++ /dev/null @@ -1,108 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ -/************************************************************************* -** -** Include section -** -**************************************************************************/ -#ifndef _GPS_PARSER_UBX_MON_H_ -#define _GPS_PARSER_UBX_MON_H_ - -#ifdef __cplusplus -extern "C" { -#endif - -#include "cfe.h" -#include "../gps_custom_shared.h" -//#include "GPS_events.h" -//#include "GPS_msgids.h" - - - -/************************************************************************* -** -** Macro definitions -** -**************************************************************************/ - - -/************************************************************************* -** -** Type definitions -** -**************************************************************************/ - -/* -** (none) -*/ - -/************************************************************************* -** -** Imported data -** -**************************************************************************/ - -/* -** (none) -*/ - -/************************************************************************* -** -** Exported data -** -**************************************************************************/ - - -void GPS_Mon_ParseChar_IO(uint8 byte, GPS_DeviceMessage_t* message); -void GPS_Mon_ParseChar_VER(uint8 byte, GPS_DeviceMessage_t* message); -void GPS_Mon_ParseChar_MSGPP(uint8 byte, GPS_DeviceMessage_t* message); -void GPS_Mon_ParseChar_RXBUF(uint8 byte, GPS_DeviceMessage_t* message); -void GPS_Mon_ParseChar_TXBUF(uint8 byte, GPS_DeviceMessage_t* message); -void GPS_Mon_ParseChar_HW(uint8 byte, GPS_DeviceMessage_t* message); -void GPS_Mon_ParseChar_HW2(uint8 byte, GPS_DeviceMessage_t* message); -void GPS_Mon_ParseChar_RXR(uint8 byte, GPS_DeviceMessage_t* message); -void GPS_Mon_ParseChar_PATCH(uint8 byte, GPS_DeviceMessage_t* message); -void GPS_Mon_ParseChar_GNSS(uint8 byte, GPS_DeviceMessage_t* message); -void GPS_Mon_ParseChar_SMGR(uint8 byte, GPS_DeviceMessage_t* message); - - -#ifdef __cplusplus -} -#endif - -#endif /* _GPS_PARSER_UBX_MON_H_ */ - -/************************/ -/* End of File Comment */ -/************************/ - diff --git a/config/obc/ppd/target/apps/gps/src/gps_parser_ubx/gps_parser_ubx_nav.c b/config/obc/ppd/target/apps/gps/src/gps_parser_ubx/gps_parser_ubx_nav.c deleted file mode 100644 index 50befb80d..000000000 --- a/config/obc/ppd/target/apps/gps/src/gps_parser_ubx/gps_parser_ubx_nav.c +++ /dev/null @@ -1,2494 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ -/************************************************************************* -** -** Include section -** -**************************************************************************/ - -#include "cfe.h" -//#include "GPS_events.h" -//#include "GPS_msgids.h" -#include "gps_parser_ubx_common.h" - -/************************************************************************* -** -** Macro definitions -** -**************************************************************************/ - -#define GPS_PARSER_NAV_AOPSTATUS_MSG_LENGTH (16) -#define GPS_PARSER_NAV_ATT_MSG_LENGTH (32) -#define GPS_PARSER_NAV_CLOCK_MSG_LENGTH (20) -#define GPS_PARSER_NAV_DGPS_MSG_LENGTH (16) -#define GPS_PARSER_NAV_DOP_MSG_LENGTH (18) -#define GPS_PARSER_NAV_EOE_MSG_LENGTH (4) -#define GPS_PARSER_NAV_GEOFENCE_MSG_LENGTH (8) -#define GPS_PARSER_NAV_ODO_MSG_LENGTH (20) -#define GPS_PARSER_NAV_ORB_MSG_LENGTH (8) -#define GPS_PARSER_NAV_POSECEF_MSG_LENGTH (20) -#define GPS_PARSER_NAV_POSLLH_MSG_LENGTH (28) -#define GPS_PARSER_NAV_PVT_MSG_LENGTH (92) -#define GPS_PARSER_NAV_SAT_MSG_LENGTH (8) -#define GPS_PARSER_NAV_SBAS_MSG_LENGTH (12) -#define GPS_PARSER_NAV_SOL_MSG_LENGTH (52) -#define GPS_PARSER_NAV_STATUS_MSG_LENGTH (16) -#define GPS_PARSER_NAV_SVINFOP1_MSG_LENGTH (8) -#define GPS_PARSER_NAV_SVINFOP2_MSG_LENGTH (12) -#define GPS_PARSER_NAV_TIMEBDS_MSG_LENGTH (20) -#define GPS_PARSER_NAV_TIMEGAL_MSG_LENGTH (20) -#define GPS_PARSER_NAV_TIMEGLO_MSG_LENGTH (20) -#define GPS_PARSER_NAV_TIMEGPS_MSG_LENGTH (16) -#define GPS_PARSER_NAV_TIMELS_MSG_LENGTH (24) -#define GPS_PARSER_NAV_TIMEUTC_MSG_LENGTH (20) -#define GPS_PARSER_NAV_VELECEF_MSG_LENGTH (20) -#define GPS_PARSER_NAV_VELNED_MSG_LENGTH (36) - -/************************************************************************* -** -** Type definitions -** -**************************************************************************/ - -/* -** (none) -*/ - -/************************************************************************* -** -** Imported data -** -**************************************************************************/ - -/* -** (none) -*/ - -/************************************************************************* -** -** Exported data -** -**************************************************************************/ - - - -/************************************************************************* -** -** File data -** -**************************************************************************/ - -/* -** (none) -*/ - -/************************************************************************* -** Local function prototypes -**************************************************************************/ -void GPS_Nav_ParseChar_POSECEF(uint8 byte, GPS_DeviceMessage_t* message) -{ - if(GPS_AppCustomData.ParserStatus.MsgLength != GPS_PARSER_NAV_POSECEF_MSG_LENGTH) - { - GPS_AppCustomData.ParserStatus.ParseError++; - CFE_EVS_SendEvent(GPS_INIT_DEVICE_PARSER_ERR_EID, CFE_EVS_ERROR, - "Received POSECEF message with incorrect length (%u).", GPS_AppCustomData.ParserStatus.MsgLength); - GPS_Parser_Reset(); - } - else - { - GPS_NAV_POSECEF_t *payload = (void*)CFE_SB_GetUserData((CFE_SB_MsgPtr_t)message); - switch(GPS_AppCustomData.ParserStatus.PayloadCursor) - { - case 0: - { - CFE_SB_MsgId_t sbMsgID = GPS_TranslateMsgID(GPS_AppCustomData.ParserStatus.ClassID, GPS_AppCustomData.ParserStatus.MsgID); - uint16 sbHdrSize = CFE_SB_MsgHdrSize(sbMsgID); - uint16 sbTotalMsgSize = sbHdrSize + GPS_AppCustomData.ParserStatus.MsgLength; - CFE_SB_InitMsg(message, sbMsgID, sbTotalMsgSize, TRUE); - - payload->iTOW = byte; - break; - } - - case 1: - { - payload->iTOW += byte << 8; - break; - } - case 2: - { - payload->iTOW += byte << 16; - break; - } - case 3: - { - payload->iTOW += byte << 24; - break; - } - case 4: - { - payload->ecefX = byte; - break; - } - case 5: - { - payload->ecefX += byte << 8; - break; - } - case 6: - { - payload->ecefX += byte << 16; - break; - } - case 7: - { - payload->ecefX += byte << 24; - break; - } - case 8: - { - payload->ecefY = byte; - break; - } - case 9: - { - payload->ecefY += byte << 8; - break; - } - case 10: - { - payload->ecefY += byte << 16; - break; - } - case 11: - { - payload->ecefY += byte << 24; - break; - } - case 12: - { - payload->ecefZ = byte; - break; - } - case 13: - { - payload->ecefZ += byte << 8; - break; - } - case 14: - { - payload->ecefZ += byte << 16; - break; - } - case 15: - { - payload->ecefZ += byte << 24; - break; - } - case 16: - { - payload->pAcc = byte; - break; - } - case 17: - { - payload->pAcc += byte << 8; - break; - } - case 18: - { - payload->pAcc += byte << 16; - break; - } - case 19: - { - payload->pAcc += byte << 24; - GPS_Parser_StateChange(GPS_PARSE_STATE_GOT_PAYLOAD); - break; - } - default: - { - GPS_Parser_Reset(); - return; - } - } - } -} - -/* Incoming messages. */ -void GPS_Nav_ParseChar_POSLLH(uint8 byte, GPS_DeviceMessage_t* message) -{ - if(GPS_AppCustomData.ParserStatus.MsgLength != GPS_PARSER_NAV_POSLLH_MSG_LENGTH) - { - GPS_AppCustomData.ParserStatus.ParseError++; - CFE_EVS_SendEvent(GPS_INIT_DEVICE_PARSER_ERR_EID, CFE_EVS_ERROR, - "Received POSLLH message with incorrect length (%u).", GPS_AppCustomData.ParserStatus.MsgLength); - GPS_Parser_Reset(); - } - else - { - GPS_NAV_POSLLH_t *payload = (void*)CFE_SB_GetUserData((CFE_SB_MsgPtr_t)message); - switch(GPS_AppCustomData.ParserStatus.PayloadCursor) - { - case 0: - { - CFE_SB_MsgId_t sbMsgID = GPS_TranslateMsgID(GPS_AppCustomData.ParserStatus.ClassID, GPS_AppCustomData.ParserStatus.MsgID); - uint16 sbHdrSize = CFE_SB_MsgHdrSize(sbMsgID); - uint16 sbTotalMsgSize = sbHdrSize + GPS_AppCustomData.ParserStatus.MsgLength; - CFE_SB_InitMsg(message, sbMsgID, sbTotalMsgSize, TRUE); - - payload->iTOW = byte; - break; - } - case 1: - { - payload->iTOW += byte << 8; - break; - } - case 2: - { - payload->iTOW += byte << 16; - break; - } - case 3: - { - payload->iTOW += byte << 24; - break; - } - case 4: - { - payload->lon = byte; - break; - } - case 5: - { - payload->lon += byte << 8; - break; - } - case 6: - { - payload->lon += byte << 16; - break; - } - case 7: - { - payload->lon += byte << 24; - break; - } - case 8: - { - payload->lat = byte; - break; - } - case 9: - { - payload->lat += byte << 8; - break; - } - case 10: - { - payload->lat += byte << 16; - break; - } - case 11: - { - payload->lat += byte << 24; - break; - } - case 12: - { - payload->height = byte; - break; - } - case 13: - { - payload->height += byte << 8; - break; - } - case 14: - { - payload->height += byte << 16; - break; - } - case 15: - { - payload->height += byte << 24; - break; - } - case 16: - { - payload->hMSL = byte; - break; - } - case 17: - { - payload->hMSL += byte << 8; - break; - } - case 18: - { - payload->hMSL += byte << 16; - break; - } - case 19: - { - payload->hMSL += byte << 24; - break; - } - case 20: - { - payload->hAcc = byte; - break; - } - case 21: - { - payload->hAcc += byte << 8; - break; - } - case 22: - { - payload->hAcc += byte << 16; - break; - } - case 23: - { - payload->hAcc += byte << 24; - break; - } - case 24: - { - payload->vAcc = byte; - break; - } - case 25: - { - payload->vAcc += byte << 8; - break; - } - case 26: - { - payload->vAcc += byte << 16; - break; - } - case 27: - { - payload->vAcc += byte << 24; - GPS_Parser_StateChange(GPS_PARSE_STATE_GOT_PAYLOAD); - break; - } - default: - { - GPS_Parser_Reset(); - return; - } - } - } -} - - -void GPS_Nav_ParseChar_STATUS(uint8 byte, GPS_DeviceMessage_t* message) -{ - if(GPS_AppCustomData.ParserStatus.MsgLength != GPS_PARSER_NAV_STATUS_MSG_LENGTH) - { - GPS_AppCustomData.ParserStatus.ParseError++; - CFE_EVS_SendEvent(GPS_INIT_DEVICE_PARSER_ERR_EID, CFE_EVS_ERROR, - "Received STATUS message with incorrect length (%u).", GPS_AppCustomData.ParserStatus.MsgLength); - GPS_Parser_Reset(); - } - else - { - GPS_NAV_STATUS_t *payload = (void*)CFE_SB_GetUserData((CFE_SB_MsgPtr_t)message); - switch(GPS_AppCustomData.ParserStatus.PayloadCursor) - { - case 0: - { - CFE_SB_MsgId_t sbMsgID = GPS_TranslateMsgID(GPS_AppCustomData.ParserStatus.ClassID, GPS_AppCustomData.ParserStatus.MsgID); - uint16 sbHdrSize = CFE_SB_MsgHdrSize(sbMsgID); - uint16 sbTotalMsgSize = sbHdrSize + GPS_AppCustomData.ParserStatus.MsgLength; - CFE_SB_InitMsg(message, sbMsgID, sbTotalMsgSize, TRUE); - - payload->iTOW = byte; - break; - } - case 1: - { - payload->iTOW += byte << 8; - break; - } - case 2: - { - payload->iTOW += byte << 16; - break; - } - case 3: - { - payload->iTOW += byte << 24; - break; - } - case 4: - { - payload->gpsFix = byte; - break; - } - case 5: - { - payload->flags = byte; - break; - } - case 6: - { - payload->fixStat = byte; - break; - } - case 7: - { - payload->flags2 = byte; - break; - } - case 8: - { - payload->ttff = byte; - break; - } - case 9: - { - payload->ttff += byte << 8; - break; - } - case 10: - { - payload->ttff += byte << 16; - break; - } - case 11: - { - payload->ttff += byte << 24; - break; - } - case 12: - { - payload->msss = byte; - break; - } - case 13: - { - payload->msss += byte << 8; - break; - } - case 14: - { - payload->msss += byte << 16; - break; - } - case 15: - { - payload->msss += byte << 24; - GPS_Parser_StateChange(GPS_PARSE_STATE_GOT_PAYLOAD); - break; - } - default: - { - GPS_Parser_Reset(); - return; - } - } - } -} - - - -void GPS_Nav_ParseChar_DOP(uint8 byte, GPS_DeviceMessage_t* message) -{ - if(GPS_AppCustomData.ParserStatus.MsgLength != GPS_PARSER_NAV_DOP_MSG_LENGTH) - { - GPS_AppCustomData.ParserStatus.ParseError++; - CFE_EVS_SendEvent(GPS_INIT_DEVICE_PARSER_ERR_EID, CFE_EVS_ERROR, - "Received DOP message with incorrect length (%u).", GPS_AppCustomData.ParserStatus.MsgLength); - GPS_Parser_Reset(); - } - else - { - GPS_NAV_DOP_t *payload = (void*)CFE_SB_GetUserData((CFE_SB_MsgPtr_t)message); - switch(GPS_AppCustomData.ParserStatus.PayloadCursor) - { - case 0: - { - CFE_SB_MsgId_t sbMsgID = GPS_TranslateMsgID(GPS_AppCustomData.ParserStatus.ClassID, GPS_AppCustomData.ParserStatus.MsgID); - uint16 sbHdrSize = CFE_SB_MsgHdrSize(sbMsgID); - uint16 sbTotalMsgSize = sbHdrSize + GPS_AppCustomData.ParserStatus.MsgLength; - CFE_SB_InitMsg(message, sbMsgID, sbTotalMsgSize, TRUE); - - payload->iTOW = byte; - break; - } - case 1: - { - payload->iTOW += byte << 8; - break; - } - case 2: - { - payload->iTOW += byte << 16; - break; - } - case 3: - { - payload->iTOW += byte << 24; - break; - } - case 4: - { - payload->gDOP = byte; - break; - } - case 5: - { - payload->gDOP += byte << 8; - break; - } - case 6: - { - payload->pDOP = byte; - break; - } - case 7: - { - payload->pDOP += byte << 8; - break; - } - case 8: - { - payload->tDOP = byte; - break; - } - case 9: - { - payload->tDOP += byte << 8; - break; - } - case 10: - { - payload->vDOP = byte; - break; - } - case 11: - { - payload->vDOP += byte << 8; - break; - } - case 12: - { - payload->hDOP = byte; - break; - } - case 13: - { - payload->hDOP += byte << 8; - break; - } - case 14: - { - payload->nDOP = byte; - break; - } - case 15: - { - payload->nDOP += byte << 8; - break; - } - case 16: - { - payload->eDOP = byte; - break; - } - case 17: - { - payload->eDOP += byte << 8; - GPS_Parser_StateChange(GPS_PARSE_STATE_GOT_PAYLOAD); - break; - } - default: - { - GPS_Parser_Reset(); - return; - } - } - } -} - - -void GPS_Nav_ParseChar_ATT(uint8 byte, GPS_DeviceMessage_t* message) -{ - if(GPS_AppCustomData.ParserStatus.MsgLength != GPS_PARSER_NAV_ATT_MSG_LENGTH) - { - GPS_AppCustomData.ParserStatus.ParseError++; - CFE_EVS_SendEvent(GPS_INIT_DEVICE_PARSER_ERR_EID, CFE_EVS_ERROR, - "Received ATT message with incorrect length (%u).", GPS_AppCustomData.ParserStatus.MsgLength); - GPS_Parser_Reset(); - } - else - { - GPS_NAV_ATT_t *payload = (void*)CFE_SB_GetUserData((CFE_SB_MsgPtr_t)message); - switch(GPS_AppCustomData.ParserStatus.PayloadCursor) - { - case 0: - { - CFE_SB_MsgId_t sbMsgID = GPS_TranslateMsgID(GPS_AppCustomData.ParserStatus.ClassID, GPS_AppCustomData.ParserStatus.MsgID); - uint16 sbHdrSize = CFE_SB_MsgHdrSize(sbMsgID); - uint16 sbTotalMsgSize = sbHdrSize + GPS_AppCustomData.ParserStatus.MsgLength; - CFE_SB_InitMsg(message, sbMsgID, sbTotalMsgSize, TRUE); - - payload->iTOW = byte; - break; - } - case 1: - { - payload->iTOW += byte << 8; - break; - } - case 2: - { - payload->iTOW += byte << 16; - break; - } - case 3: - { - payload->iTOW += byte << 24; - break; - } - case 4: - { - payload->version = byte; - break; - } - case 5: - /* Fall Through */ - case 6: - /* Fall Through */ - case 7: - { - break; - } - case 8: - { - payload->roll = byte; - break; - } - case 9: - { - payload->roll += byte << 8; - break; - } - case 10: - { - payload->roll += byte << 16; - break; - } - case 11: - { - payload->roll += byte << 24; - break; - } - case 12: - { - payload->pitch = byte; - break; - } - case 13: - { - payload->pitch += byte << 8; - break; - } - case 14: - { - payload->pitch += byte << 16; - break; - } - case 15: - { - payload->pitch += byte << 24; - break; - } - case 16: - { - payload->heading = byte; - break; - } - case 17: - { - payload->heading += byte << 8; - break; - } - case 18: - { - payload->heading += byte << 16; - break; - } - case 19: - { - payload->heading += byte << 24; - break; - } - case 20: - { - payload->accRoll = byte; - break; - } - case 21: - { - payload->accRoll += byte << 8; - break; - } - case 22: - { - payload->accRoll += byte << 16; - break; - } - case 23: - { - payload->accRoll += byte << 24; - break; - } - case 24: - { - payload->accPitch = byte; - break; - } - case 25: - { - payload->accPitch += byte << 8; - break; - } - case 26: - { - payload->accPitch += byte << 16; - break; - } - case 27: - { - payload->accPitch += byte << 24; - break; - } - case 28: - { - payload->accHeading = byte; - break; - } - case 29: - { - payload->accHeading += byte << 8; - break; - } - case 30: - { - payload->accHeading += byte << 16; - break; - } - case 31: - { - payload->accHeading += byte << 24; - GPS_Parser_StateChange(GPS_PARSE_STATE_GOT_PAYLOAD); - break; - } - default: - { - GPS_Parser_Reset(); - return; - } - } - } -} - - - -void GPS_Nav_ParseChar_SOL(uint8 byte, GPS_DeviceMessage_t* message) -{ - if(GPS_AppCustomData.ParserStatus.MsgLength != GPS_PARSER_NAV_SOL_MSG_LENGTH) - { - GPS_AppCustomData.ParserStatus.ParseError++; - CFE_EVS_SendEvent(GPS_INIT_DEVICE_PARSER_ERR_EID, CFE_EVS_ERROR, - "Received SOL message with incorrect length (%u).", GPS_AppCustomData.ParserStatus.MsgLength); - GPS_Parser_Reset(); - } - else - { - GPS_NAV_SOL_t *payload = (void*)CFE_SB_GetUserData((CFE_SB_MsgPtr_t)message); - switch(GPS_AppCustomData.ParserStatus.PayloadCursor) - { - case 0: - { - CFE_SB_MsgId_t sbMsgID = GPS_TranslateMsgID(GPS_AppCustomData.ParserStatus.ClassID, GPS_AppCustomData.ParserStatus.MsgID); - uint16 sbHdrSize = CFE_SB_MsgHdrSize(sbMsgID); - uint16 sbTotalMsgSize = sbHdrSize + GPS_AppCustomData.ParserStatus.MsgLength; - CFE_SB_InitMsg(message, sbMsgID, sbTotalMsgSize, TRUE); - - payload->iTOW = byte; - break; - } - case 1: - { - payload->iTOW += byte << 8; - break; - } - case 2: - { - payload->iTOW += byte << 16; - break; - } - case 3: - { - payload->iTOW += byte << 24; - break; - } - case 4: - { - payload->fTOW = byte; - break; - } - case 5: - { - payload->fTOW = byte << 8; - break; - } - case 6: - { - payload->fTOW += byte << 16; - break; - } - case 7: - { - payload->fTOW += byte << 24; - break; - } - case 8: - { - payload->week = byte; - break; - } - case 9: - { - payload->week += byte << 8; - break; - } - case 10: - { - payload->gpsFix = byte; - break; - } - case 11: - { - payload->flags = byte; - break; - } - case 12: - { - payload->ecefX = byte; - break; - } - case 13: - { - payload->ecefX += byte << 8; - break; - } - case 14: - { - payload->ecefX += byte << 16; - break; - } - case 15: - { - payload->ecefX += byte << 24; - break; - } - case 16: - { - payload->ecefY = byte; - break; - } - case 17: - { - payload->ecefY += byte << 8; - break; - } - case 18: - { - payload->ecefY += byte << 16; - break; - } - case 19: - { - payload->ecefY += byte << 24; - break; - } - case 20: - { - payload->ecefZ = byte; - break; - } - case 21: - { - payload->ecefZ += byte << 8; - break; - } - case 22: - { - payload->ecefZ += byte << 16; - break; - } - case 23: - { - payload->ecefZ += byte << 24; - break; - } - case 24: - { - payload->pAcc = byte; - break; - } - case 25: - { - payload->pAcc += byte << 8; - break; - } - case 26: - { - payload->pAcc += byte << 16; - break; - } - case 27: - { - payload->pAcc += byte << 24; - break; - } - case 28: - { - payload->ecefVX = byte; - break; - } - case 29: - { - payload->ecefVX += byte << 8; - break; - } - case 30: - { - payload->ecefVX += byte << 16; - break; - } - case 31: - { - payload->ecefVX += byte << 24; - break; - } - case 32: - { - payload->ecefVY = byte; - break; - } - case 33: - { - payload->ecefVY += byte << 8; - break; - } - case 34: - { - payload->ecefVY += byte << 16; - break; - } - case 35: - { - payload->ecefVY += byte << 24; - break; - } - case 36: - { - payload->ecefVZ = byte; - break; - } - case 37: - { - payload->ecefVZ += byte << 8; - break; - } - case 38: - { - payload->ecefVZ += byte << 16; - break; - } - case 39: - { - payload->ecefVZ += byte << 24; - break; - } - case 40: - { - payload->sAcc = byte; - break; - } - case 41: - { - payload->sAcc += byte << 8; - break; - } - case 42: - { - payload->sAcc += byte << 16; - break; - } - case 43: - { - payload->sAcc += byte << 24; - break; - } - case 44: - { - payload->pDOP = byte; - break; - } - case 45: - { - payload->pDOP += byte << 8; - break; - } - case 46: - { - break; - } - case 47: - { - payload->numSV = byte; - GPS_Parser_StateChange(GPS_PARSE_STATE_GOT_PAYLOAD); - break; - } - default: - { - GPS_Parser_Reset(); - return; - } - } - } -} - - - -void GPS_Nav_ParseChar_PVT(uint8 byte, GPS_DeviceMessage_t* message) -{ - if(GPS_AppCustomData.ParserStatus.MsgLength != GPS_PARSER_NAV_PVT_MSG_LENGTH) - { - GPS_AppCustomData.ParserStatus.ParseError++; - CFE_EVS_SendEvent(GPS_INIT_DEVICE_PARSER_ERR_EID, CFE_EVS_ERROR, - "Received PVT message with incorrect length (%u).", GPS_AppCustomData.ParserStatus.MsgLength); - GPS_Parser_Reset(); - } - else - { - GPS_NAV_PVT_t *payload = (void*)CFE_SB_GetUserData((CFE_SB_MsgPtr_t)message); - switch(GPS_AppCustomData.ParserStatus.PayloadCursor) - { - case 0: - { - CFE_SB_MsgId_t sbMsgID = GPS_TranslateMsgID(GPS_AppCustomData.ParserStatus.ClassID, GPS_AppCustomData.ParserStatus.MsgID); - uint16 sbHdrSize = CFE_SB_MsgHdrSize(sbMsgID); - uint16 sbTotalMsgSize = sbHdrSize + GPS_AppCustomData.ParserStatus.MsgLength; - CFE_SB_InitMsg(message, sbMsgID, sbTotalMsgSize, TRUE); - - payload->iTOW = byte; - break; - } - case 1: - { - payload->iTOW += byte << 8; - break; - } - case 2: - { - payload->iTOW += byte << 16; - break; - } - case 3: - { - payload->iTOW += byte << 24; - break; - } - case 4: - { - payload->year = byte; - break; - } - case 5: - { - payload->year = byte << 8; - break; - } - case 6: - { - payload->month = byte; - break; - } - case 7: - { - payload->day = byte; - break; - } - case 8: - { - payload->hour = byte; - break; - } - case 9: - { - payload->min = byte; - break; - } - case 10: - { - payload->sec = byte; - break; - } - case 11: - { - payload->valid = byte; - break; - } - case 12: - { - payload->tAcc = byte; - break; - } - case 13: - { - payload->tAcc += byte << 8; - break; - } - case 14: - { - payload->tAcc += byte << 16; - break; - } - case 15: - { - payload->tAcc += byte << 24; - break; - } - case 16: - { - payload->nano = byte; - break; - } - case 17: - { - payload->nano += byte << 8; - break; - } - case 18: - { - payload->nano += byte << 16; - break; - } - case 19: - { - payload->nano += byte << 24; - break; - } - case 20: - { - payload->fixType = byte; - break; - } - case 21: - { - payload->flags = byte; - break; - } - case 22: - { - payload->flags2 = byte; - break; - } - case 23: - { - payload->numSV = byte; - break; - } - case 24: - { - payload->lon = byte; - break; - } - case 25: - { - payload->lon += byte << 8; - break; - } - case 26: - { - payload->lon += byte << 16; - break; - } - case 27: - { - payload->lon += byte << 24; - break; - } - case 28: - { - payload->lat = byte; - break; - } - case 29: - { - payload->lat += byte << 8; - break; - } - case 30: - { - payload->lat += byte << 16; - break; - } - case 31: - { - payload->lat += byte << 24; - break; - } - case 32: - { - payload->height = byte; - break; - } - case 33: - { - payload->height += byte << 8; - break; - } - case 34: - { - payload->height += byte << 16; - break; - } - case 35: - { - payload->height += byte << 24; - break; - } - case 36: - { - payload->hMSL = byte; - break; - } - case 37: - { - payload->hMSL += byte << 8; - break; - } - case 38: - { - payload->hMSL += byte << 16; - break; - } - case 39: - { - payload->hMSL += byte << 24; - break; - } - case 40: - { - payload->hAcc = byte; - break; - } - case 41: - { - payload->hAcc += byte << 8; - break; - } - case 42: - { - payload->hAcc += byte << 16; - break; - } - case 43: - { - payload->hAcc += byte << 24; - break; - } - case 44: - { - payload->vAcc = byte; - break; - } - case 45: - { - payload->vAcc += byte << 8; - break; - } - case 46: - { - payload->vAcc += byte << 16; - break; - } - case 47: - { - payload->vAcc += byte << 24; - break; - } - case 48: - { - payload->velN = byte; - break; - } - case 49: - { - payload->velN += byte << 8; - break; - } - case 50: - { - payload->velN += byte << 16; - break; - } - case 51: - { - payload->velN += byte << 24; - break; - } - case 52: - { - payload->velE = byte; - break; - } - case 53: - { - payload->velE += byte << 8; - break; - } - case 54: - { - payload->velE += byte << 16; - break; - } - case 55: - { - payload->velE += byte << 24; - break; - } - case 56: - { - payload->velD = byte; - break; - } - case 57: - { - payload->velD += byte << 8; - break; - } - case 58: - { - payload->velD += byte << 16; - break; - } - case 59: - { - payload->velD += byte << 24; - break; - } - case 60: - { - payload->gSpeed = byte; - break; - } - case 61: - { - payload->gSpeed += byte << 8; - break; - } - case 62: - { - payload->gSpeed += byte << 16; - break; - } - case 63: - { - payload->gSpeed += byte << 24; - break; - } - case 64: - { - payload->headMot = byte; - break; - } - case 65: - { - payload->headMot += byte << 8; - break; - } - case 66: - { - payload->headMot += byte << 16; - break; - } - case 67: - { - payload->headMot += byte << 24; - break; - } - case 68: - { - payload->sAcc = byte; - break; - } - case 69: - { - payload->sAcc += byte << 8; - break; - } - case 70: - { - payload->sAcc += byte << 16; - break; - } - case 71: - { - payload->sAcc += byte << 24; - break; - } - case 72: - { - payload->headAcc = byte; - break; - } - case 73: - { - payload->headAcc += byte << 8; - break; - } - case 74: - { - payload->headAcc += byte << 16; - break; - } - case 75: - { - payload->headAcc += byte << 24; - break; - } - case 76: - { - payload->pDOP = byte; - break; - } - case 77: - { - payload->pDOP += byte << 8; - break; - } - case 78: - /* Fall Through */ - case 79: - /* Fall Through */ - case 80: - /* Fall Through */ - case 81: - /* Fall Through */ - case 82: - /* Fall Through */ - case 83: - { - break; - } - case 84: - { - payload->headVeh = byte; - break; - } - case 85: - { - payload->headVeh += byte << 8; - break; - } - case 86: - { - payload->headVeh += byte << 16; - break; - } - case 87: - { - payload->headVeh += byte << 24; - break; - } - case 88: - { - payload->magDec = byte; - break; - } - case 89: - { - payload->magDec += byte << 8; - break; - } - case 90: - { - payload->magAcc = byte; - break; - } - case 91: - { - payload->magAcc += byte << 8; - GPS_Parser_StateChange(GPS_PARSE_STATE_GOT_PAYLOAD); - break; - } - default: - { - GPS_Parser_Reset(); - return; - } - } - } -} - - - -void GPS_Nav_ParseChar_ODO(uint8 byte, GPS_DeviceMessage_t* message) -{ - if(GPS_AppCustomData.ParserStatus.MsgLength != GPS_PARSER_NAV_ODO_MSG_LENGTH) - { - GPS_AppCustomData.ParserStatus.ParseError++; - CFE_EVS_SendEvent(GPS_INIT_DEVICE_PARSER_ERR_EID, CFE_EVS_ERROR, - "Received ODO message with incorrect length (%u).", GPS_AppCustomData.ParserStatus.MsgLength); - GPS_Parser_Reset(); - } - else - { - GPS_NAV_ODO_t *payload = (void*)CFE_SB_GetUserData((CFE_SB_MsgPtr_t)message); - switch(GPS_AppCustomData.ParserStatus.PayloadCursor) - { - case 0: - { - CFE_SB_MsgId_t sbMsgID = GPS_TranslateMsgID(GPS_AppCustomData.ParserStatus.ClassID, GPS_AppCustomData.ParserStatus.MsgID); - uint16 sbHdrSize = CFE_SB_MsgHdrSize(sbMsgID); - uint16 sbTotalMsgSize = sbHdrSize + GPS_AppCustomData.ParserStatus.MsgLength; - CFE_SB_InitMsg(message, sbMsgID, sbTotalMsgSize, TRUE); - - payload->version = byte; - break; - } - case 1: - /* Fall Through */ - case 2: - /* Fall Through */ - case 3: - { - break; - } - case 4: - { - payload->iTOW = byte; - break; - } - case 5: - { - payload->iTOW += byte << 8; - break; - } - case 6: - { - payload->iTOW += byte << 16; - break; - } - case 7: - { - payload->iTOW += byte << 24; - break; - } - case 8: - { - payload->distance = byte; - break; - } - case 9: - { - payload->distance += byte << 8; - break; - } - case 10: - { - payload->distance += byte << 16; - break; - } - case 11: - { - payload->distance += byte << 24; - break; - } - case 12: - { - payload->totalDistance = byte; - break; - } - case 13: - { - payload->totalDistance += byte << 8; - break; - } - case 14: - { - payload->totalDistance += byte << 16; - break; - } - case 15: - { - payload->totalDistance += byte << 24; - break; - } - case 16: - { - payload->distanceStd = byte; - break; - } - case 17: - { - payload->distanceStd += byte << 8; - break; - } - case 18: - { - payload->distanceStd += byte << 16; - break; - } - case 19: - { - payload->distanceStd += byte << 24; - GPS_Parser_StateChange(GPS_PARSE_STATE_GOT_PAYLOAD); - break; - } - default: - { - GPS_Parser_Reset(); - return; - } - } - } -} - - - -void GPS_Nav_ParseChar_RESETODO(uint8 byte, GPS_DeviceMessage_t* message) -{ - -} - - - -void GPS_Nav_ParseChar_VELECEF(uint8 byte, GPS_DeviceMessage_t* message) -{ - -} - - - -void GPS_Nav_ParseChar_VELNED(uint8 byte, GPS_DeviceMessage_t* message) -{ - -} - - - -void GPS_Nav_ParseChar_TIMEGPS(uint8 byte, GPS_DeviceMessage_t* message) -{ - -} - - - -void GPS_Nav_ParseChar_TIMEUTC(uint8 byte, GPS_DeviceMessage_t* message) -{ - if(GPS_AppCustomData.ParserStatus.MsgLength != GPS_PARSER_NAV_TIMEUTC_MSG_LENGTH) - { - GPS_AppCustomData.ParserStatus.ParseError++; - CFE_EVS_SendEvent(GPS_INIT_DEVICE_PARSER_ERR_EID, CFE_EVS_ERROR, - "Received TIMEUTC message with incorrect length (%u).", GPS_AppCustomData.ParserStatus.MsgLength); - GPS_Parser_Reset(); - } - else - { - GPS_NAV_TIMEUTC_t *payload = (void*)CFE_SB_GetUserData((CFE_SB_MsgPtr_t)message); - switch(GPS_AppCustomData.ParserStatus.PayloadCursor) - { - case 0: - { - CFE_SB_MsgId_t sbMsgID = GPS_TranslateMsgID(GPS_AppCustomData.ParserStatus.ClassID, GPS_AppCustomData.ParserStatus.MsgID); - uint16 sbHdrSize = CFE_SB_MsgHdrSize(sbMsgID); - uint16 sbTotalMsgSize = sbHdrSize + GPS_AppCustomData.ParserStatus.MsgLength; - CFE_SB_InitMsg(message, sbMsgID, sbTotalMsgSize, TRUE); - - payload->iTOW = byte; - break; - } - case 1: - { - payload->iTOW += byte << 8; - break; - } - case 2: - { - payload->iTOW += byte << 16; - break; - } - case 3: - { - payload->iTOW += byte << 24; - break; - } - case 4: - { - payload->tAcc = byte; - break; - } - case 5: - { - payload->tAcc += byte << 8; - break; - } - case 6: - { - payload->tAcc += byte << 16; - break; - } - case 7: - { - payload->tAcc += byte << 24; - break; - } - case 8: - { - payload->nano = byte; - break; - } - case 9: - { - payload->nano += byte << 8; - break; - } - case 10: - { - payload->nano += byte << 16; - break; - } - case 11: - { - payload->nano += byte << 24; - break; - } - case 12: - { - payload->year = byte; - break; - } - case 13: - { - payload->year += byte << 8; - break; - } - case 14: - { - payload->month = byte; - break; - } - case 15: - { - payload->day = byte; - break; - } - case 16: - { - payload->hour = byte; - break; - } - case 17: - { - payload->min = byte; - break; - } - case 18: - { - payload->sec = byte; - break; - } - case 19: - { - payload->valid = byte; - GPS_Parser_StateChange(GPS_PARSE_STATE_GOT_PAYLOAD); - break; - } - default: - { - GPS_Parser_Reset(); - return; - } - } - } -} - - - -void GPS_Nav_ParseChar_CLOCK(uint8 byte, GPS_DeviceMessage_t* message) -{ - -} - - - -void GPS_Nav_ParseChar_TIMEGLO(uint8 byte, GPS_DeviceMessage_t* message) -{ - -} - - - -void GPS_Nav_ParseChar_TIMEBDS(uint8 byte, GPS_DeviceMessage_t* message) -{ - -} - - - -void GPS_Nav_ParseChar_TIMEGAL(uint8 byte, GPS_DeviceMessage_t* message) -{ - -} - - - -void GPS_Nav_ParseChar_TIMELS(uint8 byte, GPS_DeviceMessage_t* message) -{ - -} - - - -void GPS_Nav_ParseChar_SVINFOH(uint8 byte, GPS_DeviceMessage_t* message) -{ - static int i = 0; - /* SVINFO is variable length 8 + 12*numCH so no length check here */ - GPS_NAV_SVINFO_Combined_t *payload = (void*)CFE_SB_GetUserData((CFE_SB_MsgPtr_t)message); - /* If we're in part 1 of the SVINFO message*/ - if(GPS_AppCustomData.ParserStatus.PayloadCursor < 8) - { - switch(GPS_AppCustomData.ParserStatus.PayloadCursor) - { - case 0: - { - CFE_SB_MsgId_t sbMsgID = GPS_TranslateMsgID(GPS_AppCustomData.ParserStatus.ClassID, GPS_AppCustomData.ParserStatus.MsgID); - uint16 sbHdrSize = CFE_SB_MsgHdrSize(sbMsgID); - uint16 sbTotalMsgSize = sbHdrSize + GPS_AppCustomData.ParserStatus.MsgLength; - CFE_SB_InitMsg(message, sbMsgID, sbTotalMsgSize, TRUE); - - payload->svinfo.iTOW = byte; - break; - } - case 1: - { - payload->svinfo.iTOW += byte << 8; - break; - } - case 2: - { - payload->svinfo.iTOW += byte << 16; - break; - } - case 3: - { - payload->svinfo.iTOW += byte << 24; - break; - } - case 4: - { - payload->svinfo.numCh = byte; - /* Length check */ - if (byte != (GPS_AppCustomData.ParserStatus.MsgLength - 8) / 12 && - byte != 0) - { - GPS_AppCustomData.ParserStatus.ParseError++; - CFE_EVS_SendEvent(GPS_INIT_DEVICE_PARSER_ERR_EID, CFE_EVS_ERROR, - "Received SVINFO message with incorrect length (%u), numCh (%u).", - GPS_AppCustomData.ParserStatus.MsgLength, byte); - GPS_Parser_Reset(); - } - break; - } - case 5: - { - payload->svinfo.globalFlags = byte; - break; - } - case 6: - { - payload->svinfo.reserved2 = byte; - break; - } - case 7: - { - payload->svinfo.reserved2 += byte << 8; - /* If we don't have any part 2 messages */ - /* TODO verify this is possible */ - if (0 == (GPS_AppCustomData.ParserStatus.MsgLength - 8) / 12) - { - GPS_Parser_StateChange(GPS_PARSE_STATE_GOT_PAYLOAD); - } - break; - } - default: - { - GPS_Parser_Reset(); - return; - } - } - } - /* If we're in part 2 of the SVINFO message */ - else if(GPS_AppCustomData.ParserStatus.PayloadCursor >= 8) - { - /* Save a max limim of part 2 SVINFO messages */ - if (i < (GPS_AppCustomData.ParserStatus.MsgLength - 8) / 12 && - i < PX4_SAT_INFO_MAX_SATELLITES) - { - switch((GPS_AppCustomData.ParserStatus.PayloadCursor - 8) % 12) - { - case 0: - { - payload->numCh[i].chn = byte; - break; - } - case 1: - { - payload->numCh[i].svid = byte; - break; - } - case 2: - { - payload->numCh[i].flags = byte; - break; - } - case 3: - { - payload->numCh[i].quality = byte; - break; - } - case 4: - { - payload->numCh[i].cno = byte; - break; - } - case 5: - { - payload->numCh[i].elev = byte; - break; - } - case 6: - { - payload->numCh[i].azim = byte; - break; - } - case 7: - { - payload->numCh[i].azim += byte << 8; - break; - } - case 8: - { - payload->numCh[i].prRes = byte; - break; - } - case 9: - { - payload->numCh[i].prRes += byte << 8; - break; - } - case 10: - { - payload->numCh[i].prRes += byte << 16; - break; - } - case 11: - { - payload->numCh[i].prRes += byte << 24; - i++; - break; - } - default: - { - GPS_Parser_Reset(); - return; - } - } - } - /* end of message */ - else if (i == (GPS_AppCustomData.ParserStatus.MsgLength - 8) / 12) - { - i = 0; - GPS_Parser_StateChange(GPS_PARSE_STATE_GOT_PAYLOAD); - } - /* Max limit of part 2 SVINFO messages reached */ - else if (i >= PX4_SAT_INFO_MAX_SATELLITES) - { - /* Do nothing, continue parsing until end of message */ - } - else - { - GPS_Parser_Reset(); - } - } -} - - - -void GPS_Nav_ParseChar_DGPS(uint8 byte, GPS_DeviceMessage_t* message) -{ - -} - - - -void GPS_Nav_ParseChar_SBAS(uint8 byte, GPS_DeviceMessage_t* message) -{ - if(GPS_AppCustomData.ParserStatus.MsgLength != GPS_PARSER_NAV_SBAS_MSG_LENGTH) - { - GPS_AppCustomData.ParserStatus.ParseError++; - CFE_EVS_SendEvent(GPS_INIT_DEVICE_PARSER_ERR_EID, CFE_EVS_ERROR, - "Received SBAS message with incorrect length (%u).", GPS_AppCustomData.ParserStatus.MsgLength); - GPS_Parser_Reset(); - } - else - { - GPS_NAV_SBAS_t *payload = (void*)CFE_SB_GetUserData((CFE_SB_MsgPtr_t)message); - switch(GPS_AppCustomData.ParserStatus.PayloadCursor) - { - case 0: - { - CFE_SB_MsgId_t sbMsgID = GPS_TranslateMsgID(GPS_AppCustomData.ParserStatus.ClassID, GPS_AppCustomData.ParserStatus.MsgID); - uint16 sbHdrSize = CFE_SB_MsgHdrSize(sbMsgID); - uint16 sbTotalMsgSize = sbHdrSize + GPS_AppCustomData.ParserStatus.MsgLength; - CFE_SB_InitMsg(message, sbMsgID, sbTotalMsgSize, TRUE); - - payload->iTOW = byte; - break; - } - case 2: - { - payload->iTOW += byte << 8; - break; - } - case 3: - { - payload->iTOW += byte << 16; - break; - } - case 4: - { - payload->iTOW += byte << 24; - break; - } - case 5: - { - payload->geo = byte; - break; - } - case 6: - { - payload->mode = byte; - break; - } - case 7: - { - payload->sys = byte; - break; - } - case 8: - { - payload->service = byte; - break; - } - case 9: - { - payload->cnt = byte; - GPS_Parser_StateChange(GPS_PARSE_STATE_GOT_PAYLOAD); - break; - } - default: - { - GPS_Parser_Reset(); - return; - } - } - } -} - - - -void GPS_Nav_ParseChar_ORB(uint8 byte, GPS_DeviceMessage_t* message) -{ - if(GPS_AppCustomData.ParserStatus.MsgLength != GPS_PARSER_NAV_ORB_MSG_LENGTH) - { - GPS_AppCustomData.ParserStatus.ParseError++; - CFE_EVS_SendEvent(GPS_INIT_DEVICE_PARSER_ERR_EID, CFE_EVS_ERROR, - "Received ORB message with incorrect length (%u).", GPS_AppCustomData.ParserStatus.MsgLength); - GPS_Parser_Reset(); - } - else - { - GPS_NAV_ORB_t *payload = (void*)CFE_SB_GetUserData((CFE_SB_MsgPtr_t)message); - switch(GPS_AppCustomData.ParserStatus.PayloadCursor) - { - case 0: - { - CFE_SB_MsgId_t sbMsgID = GPS_TranslateMsgID(GPS_AppCustomData.ParserStatus.ClassID, GPS_AppCustomData.ParserStatus.MsgID); - uint16 sbHdrSize = CFE_SB_MsgHdrSize(sbMsgID); - uint16 sbTotalMsgSize = sbHdrSize + GPS_AppCustomData.ParserStatus.MsgLength; - CFE_SB_InitMsg(message, sbMsgID, sbTotalMsgSize, TRUE); - - payload->iTOW = byte; - break; - } - case 2: - { - payload->iTOW += byte << 8; - break; - } - case 3: - { - payload->iTOW += byte << 16; - break; - } - case 4: - { - payload->iTOW += byte << 24; - break; - } - case 5: - { - payload->version = byte; - break; - } - case 6: - { - payload->numSv = byte; - break; - } - case 7: - /* Fall Through */ - case 8: - { - break; - } - default: - { - GPS_Parser_Reset(); - return; - } - } - } -} - - - -void GPS_Nav_ParseChar_SAT(uint8 byte, GPS_DeviceMessage_t* message) -{ - if(GPS_AppCustomData.ParserStatus.MsgLength != GPS_PARSER_NAV_SAT_MSG_LENGTH) - { - GPS_AppCustomData.ParserStatus.ParseError++; - CFE_EVS_SendEvent(GPS_INIT_DEVICE_PARSER_ERR_EID, CFE_EVS_ERROR, - "Received SAT message with incorrect length (%u).", GPS_AppCustomData.ParserStatus.MsgLength); - GPS_Parser_Reset(); - } - else - { - GPS_NAV_SAT_t *payload = (void*)CFE_SB_GetUserData((CFE_SB_MsgPtr_t)message); - switch(GPS_AppCustomData.ParserStatus.PayloadCursor) - { - case 0: - { - CFE_SB_MsgId_t sbMsgID = GPS_TranslateMsgID(GPS_AppCustomData.ParserStatus.ClassID, GPS_AppCustomData.ParserStatus.MsgID); - uint16 sbHdrSize = CFE_SB_MsgHdrSize(sbMsgID); - uint16 sbTotalMsgSize = sbHdrSize + GPS_AppCustomData.ParserStatus.MsgLength; - CFE_SB_InitMsg(message, sbMsgID, sbTotalMsgSize, TRUE); - - payload->iTOW = byte; - break; - } - case 2: - { - payload->iTOW += byte << 8; - break; - } - case 3: - { - payload->iTOW += byte << 16; - break; - } - case 4: - { - payload->iTOW += byte << 24; - break; - } - case 5: - { - payload->version = byte; - break; - } - case 6: - { - payload->numSvs = byte; - break; - } - case 7: - /* Fall Through */ - case 8: - { - GPS_Parser_StateChange(GPS_PARSE_STATE_GOT_PAYLOAD); - break; - } - default: - { - GPS_Parser_Reset(); - return; - } - } - } -} - - - -void GPS_Nav_ParseChar_GEOFENCE(uint8 byte, GPS_DeviceMessage_t* message) -{ - if(GPS_AppCustomData.ParserStatus.MsgLength != GPS_PARSER_NAV_GEOFENCE_MSG_LENGTH) - { - GPS_AppCustomData.ParserStatus.ParseError++; - CFE_EVS_SendEvent(GPS_INIT_DEVICE_PARSER_ERR_EID, CFE_EVS_ERROR, - "Received GEOFENCE message with incorrect length (%u).", GPS_AppCustomData.ParserStatus.MsgLength); - GPS_Parser_Reset(); - } - else - { - GPS_NAV_GEOFENCE_t *payload = (void*)CFE_SB_GetUserData((CFE_SB_MsgPtr_t)message); - switch(GPS_AppCustomData.ParserStatus.PayloadCursor) - { - case 0: - { - CFE_SB_MsgId_t sbMsgID = GPS_TranslateMsgID(GPS_AppCustomData.ParserStatus.ClassID, GPS_AppCustomData.ParserStatus.MsgID); - uint16 sbHdrSize = CFE_SB_MsgHdrSize(sbMsgID); - uint16 sbTotalMsgSize = sbHdrSize + GPS_AppCustomData.ParserStatus.MsgLength; - CFE_SB_InitMsg(message, sbMsgID, sbTotalMsgSize, TRUE); - - payload->iTOW = byte; - break; - } - case 2: - { - payload->iTOW += byte << 8; - break; - } - case 3: - { - payload->iTOW += byte << 16; - break; - } - case 4: - { - payload->iTOW += byte << 24; - break; - } - case 5: - { - payload->version = byte; - break; - } - case 6: - { - payload->status = byte; - break; - } - case 7: - { - payload->numFences = byte; - break; - } - case 8: - { - payload->combState = byte; - break; - } - default: - { - GPS_Parser_Reset(); - return; - } - } - } -} - - - -void GPS_Nav_ParseChar_AOPSTATUS(uint8 byte, GPS_DeviceMessage_t* message) -{ - if(GPS_AppCustomData.ParserStatus.MsgLength != GPS_PARSER_NAV_AOPSTATUS_MSG_LENGTH) - { - GPS_AppCustomData.ParserStatus.ParseError++; - CFE_EVS_SendEvent(GPS_INIT_DEVICE_PARSER_ERR_EID, CFE_EVS_ERROR, - "Received AOPSTATUS message with incorrect length (%u).", GPS_AppCustomData.ParserStatus.MsgLength); - GPS_Parser_Reset(); - } - else - { - GPS_NAV_AOPSTATUS_t *payload = (void*)CFE_SB_GetUserData((CFE_SB_MsgPtr_t)message); - switch(GPS_AppCustomData.ParserStatus.PayloadCursor) - { - case 0: - { - CFE_SB_MsgId_t sbMsgID = GPS_TranslateMsgID(GPS_AppCustomData.ParserStatus.ClassID, GPS_AppCustomData.ParserStatus.MsgID); - uint16 sbHdrSize = CFE_SB_MsgHdrSize(sbMsgID); - uint16 sbTotalMsgSize = sbHdrSize + GPS_AppCustomData.ParserStatus.MsgLength; - CFE_SB_InitMsg(message, sbMsgID, sbTotalMsgSize, TRUE); - - payload->iTOW = byte; - break; - } - case 2: - { - payload->iTOW += byte << 8; - break; - } - case 3: - { - payload->iTOW += byte << 16; - break; - } - case 4: - { - payload->iTOW += byte << 24; - break; - } - case 5: - { - payload->aopCfg = byte; - break; - } - case 6: - { - payload->status; - break; - } - case 7: - /* Fall Through */ - case 8: - /* Fall Through */ - case 9: - /* Fall Through */ - case 10: - /* Fall Through */ - case 11: - /* Fall Through */ - case 12: - /* Fall Through */ - case 13: - /* Fall Through */ - case 14: - /* Fall Through */ - case 15: - /* Fall Through */ - case 16: - { - GPS_Parser_StateChange(GPS_PARSE_STATE_GOT_PAYLOAD); - break; - } - default: - { - GPS_Parser_Reset(); - return; - } - } - } -} - - - -void GPS_Nav_ParseChar_EOE(uint8 byte, GPS_DeviceMessage_t* message) -{ - if(GPS_AppCustomData.ParserStatus.MsgLength != GPS_PARSER_NAV_EOE_MSG_LENGTH) - { - GPS_AppCustomData.ParserStatus.ParseError++; - CFE_EVS_SendEvent(GPS_INIT_DEVICE_PARSER_ERR_EID, CFE_EVS_ERROR, - "Received EOE message with incorrect length (%u).", GPS_AppCustomData.ParserStatus.MsgLength); - GPS_Parser_Reset(); - } - else - { - GPS_NAV_EOE_t *payload = (void*)CFE_SB_GetUserData((CFE_SB_MsgPtr_t)message); - switch(GPS_AppCustomData.ParserStatus.PayloadCursor) - { - case 0: - { - CFE_SB_MsgId_t sbMsgID = GPS_TranslateMsgID(GPS_AppCustomData.ParserStatus.ClassID, GPS_AppCustomData.ParserStatus.MsgID); - uint16 sbHdrSize = CFE_SB_MsgHdrSize(sbMsgID); - uint16 sbTotalMsgSize = sbHdrSize + GPS_AppCustomData.ParserStatus.MsgLength; - CFE_SB_InitMsg(message, sbMsgID, sbTotalMsgSize, TRUE); - - payload->iTOW = byte; - break; - } - case 2: - { - payload->iTOW += byte << 8; - break; - } - case 3: - { - payload->iTOW += byte << 16; - break; - } - case 4: - { - payload->iTOW += byte << 24; - GPS_Parser_StateChange(GPS_PARSE_STATE_GOT_PAYLOAD); - break; - } - default: - { - GPS_Parser_Reset(); - return; - } - } - } -} - - -/************************/ -/* End of File Comment */ -/************************/ - diff --git a/config/obc/ppd/target/apps/gps/src/gps_parser_ubx/gps_parser_ubx_nav.h b/config/obc/ppd/target/apps/gps/src/gps_parser_ubx/gps_parser_ubx_nav.h deleted file mode 100644 index 37d548f2d..000000000 --- a/config/obc/ppd/target/apps/gps/src/gps_parser_ubx/gps_parser_ubx_nav.h +++ /dev/null @@ -1,121 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ -/************************************************************************* -** -** Include section -** -**************************************************************************/ -#ifndef _GPS_PARSER_UBX_NAV_H_ -#define _GPS_PARSER_UBX_NAV_H_ - -#ifdef __cplusplus -extern "C" { -#endif - -#include "cfe.h" -#include "../gps_custom_shared.h" -//#include "GPS_events.h" -//#include "GPS_msgids.h" - -/************************************************************************* -** -** Macro definitions -** -**************************************************************************/ - - -/************************************************************************* -** -** Type definitions -** -**************************************************************************/ - -/* -** (none) -*/ - -/************************************************************************* -** -** Imported data -** -**************************************************************************/ - -/* -** (none) -*/ - -/************************************************************************* -** -** Exported data -** -**************************************************************************/ - -void GPS_Nav_ParseChar_POSECEF(uint8 byte, GPS_DeviceMessage_t* message); -void GPS_Nav_ParseChar_POSLLH(uint8 byte, GPS_DeviceMessage_t* message); -void GPS_Nav_ParseChar_STATUS(uint8 byte, GPS_DeviceMessage_t* message); -void GPS_Nav_ParseChar_DOP(uint8 byte, GPS_DeviceMessage_t* message); -void GPS_Nav_ParseChar_ATT(uint8 byte, GPS_DeviceMessage_t* message); -void GPS_Nav_ParseChar_SOL(uint8 byte, GPS_DeviceMessage_t* message); -void GPS_Nav_ParseChar_PVT(uint8 byte, GPS_DeviceMessage_t* message); -void GPS_Nav_ParseChar_ODO(uint8 byte, GPS_DeviceMessage_t* message); -void GPS_Nav_ParseChar_RESETODO(uint8 byte, GPS_DeviceMessage_t* message); -void GPS_Nav_ParseChar_VELECEF(uint8 byte, GPS_DeviceMessage_t* message); -void GPS_Nav_ParseChar_VELNED(uint8 byte, GPS_DeviceMessage_t* message); -void GPS_Nav_ParseChar_TIMEGPS(uint8 byte, GPS_DeviceMessage_t* message); -void GPS_Nav_ParseChar_TIMEUTC(uint8 byte, GPS_DeviceMessage_t* message); -void GPS_Nav_ParseChar_CLOCK(uint8 byte, GPS_DeviceMessage_t* message); -void GPS_Nav_ParseChar_TIMEGLO(uint8 byte, GPS_DeviceMessage_t* message); -void GPS_Nav_ParseChar_TIMEBDS(uint8 byte, GPS_DeviceMessage_t* message); -void GPS_Nav_ParseChar_TIMEGAL(uint8 byte, GPS_DeviceMessage_t* message); -void GPS_Nav_ParseChar_TIMELS(uint8 byte, GPS_DeviceMessage_t* message); -void GPS_Nav_ParseChar_SVINFOH(uint8 byte, GPS_DeviceMessage_t* message); -void GPS_Nav_ParseChar_DGPS(uint8 byte, GPS_DeviceMessage_t* message); -void GPS_Nav_ParseChar_SBAS(uint8 byte, GPS_DeviceMessage_t* message); -void GPS_Nav_ParseChar_ORB(uint8 byte, GPS_DeviceMessage_t* message); -void GPS_Nav_ParseChar_SAT(uint8 byte, GPS_DeviceMessage_t* message); -void GPS_Nav_ParseChar_GEOFENCE(uint8 byte, GPS_DeviceMessage_t* message); -void GPS_Nav_ParseChar_AOPSTATUS(uint8 byte, GPS_DeviceMessage_t* message); -void GPS_Nav_ParseChar_EOE(uint8 byte, GPS_DeviceMessage_t* message); - -//int32 GPS_Nav_EnablePOSLLH(void); - -#ifdef __cplusplus -} -#endif - -#endif /* _GPS_PARSER_UBX_NAV_H_*/ - -/************************/ -/* End of File Comment */ -/************************/ - diff --git a/config/obc/ppd/target/apps/gps/src/gps_parser_ubx/gps_ubx_msg.h b/config/obc/ppd/target/apps/gps/src/gps_parser_ubx/gps_ubx_msg.h deleted file mode 100644 index f5359c88d..000000000 --- a/config/obc/ppd/target/apps/gps/src/gps_parser_ubx/gps_ubx_msg.h +++ /dev/null @@ -1,534 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ - -#ifndef _GPS_UBX_MSG_H_ -#define _GPS_UBX_MSG_H_ - -#ifdef __cplusplus -extern "C" { -#endif - -#include "common_types.h" -#include "px4_msgs.h" - -#define GPS_COEF_SIZE (8) - -/* RX NAV-PVT message content details */ -/* Bitfield "valid" masks */ -/**< validDate (Valid UTC Date) */ -#define GPS_NAV_PVT_VALID_VALIDDATE (0x01) -/**< validTime (Valid UTC Time) */ -#define GPS_NAV_PVT_VALID_VALIDTIME (0x02) -/**< fullyResolved (1 = UTC Time of Day has been fully resolved (no seconds uncertainty)) */ -#define GPS_NAV_PVT_VALID_FULLYRESOLVED (0x04) - -/* Bitfield "flags" masks */ -/**< gnssFixOK (A valid fix (i.e within DOP & accuracy masks)) */ -#define GPS_NAV_PVT_FLAGS_GNSSFIXOK (0x01) -/**< diffSoln (1 if differential corrections were applied) */ -#define GPS_NAV_PVT_FLAGS_DIFFSOLN (0x02) -/**< psmState (Power Save Mode state (see Power Management)) */ -#define GPS_NAV_PVT_FLAGS_PSMSTATE (0x1C) -/**< headVehValid (Heading of vehicle is valid) */ -#define GPS_NAV_PVT_FLAGS_HEADVEHVALID (0x20) -/**< Carrier phase range solution (RTK mode) */ -#define GPS_NAV_PVT_FLAGS_CARRSOLN (0xC0) - -/* RX NAV-TIMEUTC message content details */ -/* Bitfield "valid" masks */ -/**< validTOW (1 = Valid Time of Week) */ -#define GPS_NAV_TIMEUTC_VALID_VALIDTOW (0x01) -/**< validWKN (1 = Valid Week Number) */ -#define GPS_NAV_TIMEUTC_VALID_VALIDKWN (0x02) -/**< validUTC (1 = Valid UTC Time) */ -#define GPS_NAV_TIMEUTC_VALID_VALIDUTC (0x04) -/**< utcStandard (0..15 = UTC standard identifier) */ -#define GPS_NAV_TIMEUTC_VALID_UTCSTANDARD (0xF0) - -#define GPS_MON_HW_VP_PIN_COUNT (17) - -typedef struct -{ - uint32 iTOW; - uint8 aopCfg; - uint8 status; -} GPS_NAV_AOPSTATUS_t; - - -typedef struct -{ - uint32 iTOW; - uint8 version; - int32 roll; - int32 pitch; - int32 heading; - uint32 accRoll; - uint32 accPitch; - uint32 accHeading; -} GPS_NAV_ATT_t; - - -typedef struct -{ - uint32 iTOW; - int32 clkB; - int32 clkD; - uint32 tAcc; - uint32 fAcc; -} GPS_NAV_CLOCK_t; - - -typedef struct -{ - uint32 iTOW; - int32 age; - int16 baseId; - int16 baseHealth; - uint8 numCh; - uint8 status; -} GPS_NAV_DGPS_t; - - -typedef struct -{ - uint32 iTOW; - uint16 gDOP; - uint16 pDOP; - uint16 tDOP; - uint16 vDOP; - uint16 hDOP; - uint16 nDOP; - uint16 eDOP; -} GPS_NAV_DOP_t; - - -typedef struct -{ - uint32 iTOW; -} GPS_NAV_EOE_t; - - -typedef struct -{ - uint32 iTOW; - uint8 version; - uint8 status; - uint8 numFences; - uint8 combState; -} GPS_NAV_GEOFENCE_t; - - -typedef struct -{ - uint8 version; - uint32 iTOW; - uint32 distance; - uint32 totalDistance; - uint32 distanceStd; -} GPS_NAV_ODO_t; - - -typedef struct -{ - uint32 iTOW; - uint8 version; - uint8 numSv; -} GPS_NAV_ORB_t; - - -typedef struct -{ - uint32 iTOW; - int32 ecefX; - int32 ecefY; - int32 ecefZ; - uint32 pAcc; -} GPS_NAV_POSECEF_t; - - -typedef struct -{ - uint32 iTOW; - int32 lon; - int32 lat; - int32 height; - int32 hMSL; - uint32 hAcc; - uint32 vAcc; -} GPS_NAV_POSLLH_t; - - -typedef struct -{ - uint32 iTOW; - uint16 year; - uint8 month; - uint8 day; - uint8 hour; - uint8 min; - uint8 sec; - uint8 valid; - uint32 tAcc; - int32 nano; - uint8 fixType; - uint8 flags; - uint8 flags2; - uint8 numSV; - int32 lon; - int32 lat; - int32 height; - int32 hMSL; - uint32 hAcc; - uint32 vAcc; - int32 velN; - int32 velE; - int32 velD; - int32 gSpeed; - int32 headMot; - uint32 sAcc; - uint32 headAcc; - uint16 pDOP; - uint16 reserved2; - uint32 reserved3; - int32 headVeh; - int16 magDec; - uint16 magAcc; -} GPS_NAV_PVT_t; - - -typedef struct -{ - uint32 iTOW; - uint8 version; - uint8 numSvs; -} GPS_NAV_SAT_t; - - -typedef struct -{ - uint32 iTOW; - uint8 geo; - uint8 mode; - int8 sys; - uint8 service; - uint8 cnt; -} GPS_NAV_SBAS_t; - - -typedef struct -{ - uint32 iTOW; - int32 fTOW; - int16 week; - uint8 gpsFix; - uint8 flags; - int32 ecefX; - int32 ecefY; - int32 ecefZ; - uint32 pAcc; - int32 ecefVX; - int32 ecefVY; - int32 ecefVZ; - uint32 sAcc; - uint16 pDOP; - uint8 numSV; -} GPS_NAV_SOL_t; - - -typedef struct -{ - uint32 iTOW; - uint8 gpsFix; - uint8 flags; - uint8 fixStat; - uint8 flags2; - uint32 ttff; - uint32 msss; -} GPS_NAV_STATUS_t; - - -typedef struct -{ - uint32 iTOW; - uint8 numCh; - uint8 globalFlags; - uint16 reserved2; -} GPS_NAV_SVINFO_P1_t; - - -typedef struct -{ - uint8 chn; - uint8 svid; - uint8 flags; - uint8 quality; - uint8 cno; - int8 elev; - int16 azim; - int32 prRes; -} GPS_NAV_SVINFO_P2_t; - - -typedef struct -{ - GPS_NAV_SVINFO_P1_t svinfo; - GPS_NAV_SVINFO_P2_t numCh[PX4_SAT_INFO_MAX_SATELLITES]; -} GPS_NAV_SVINFO_Combined_t; - -typedef struct -{ - uint32 iTOW; - uint32 SOW; - int32 fSOW; - int16 week; - int8 leapS; - uint8 valid; - uint32 tAcc; -} GPS_NAV_TIMEBDS_t; - - -typedef struct -{ - uint32 iTOW; - uint32 galTow; - int32 fGalTow; - int16 galWno; - int8 leapS; - uint8 valid; - uint32 tAcc; -} GPS_NAV_TIMEGAL_t; - - -typedef struct -{ - uint32 iTOW; - uint32 TOD; - int32 fTOD; - uint16 Nt; - uint8 N4; - uint8 valid; - uint32 tAcc; -} GPS_NAV_TIMEGLO_t; - - -typedef struct -{ - uint32 iTOW; - int32 fTOW; - int16 week; - int8 leapS; - uint8 valid; - uint32 tAcc; -} GPS_NAV_TIMEGPS_t; - - -typedef struct -{ - uint32 iTOW; - uint8 version; - uint8 srcOfCurrLs; - int8 currLs; - uint8 srcOfLsChange; - int8 lsChange; - int32 timeToLsEvent; - uint16 dateOfLsGpsWn; - uint16 dateOfLsGpsDn; - uint8 valid; -} GPS_NAV_TIMELS_t; - - -typedef struct -{ - uint32 iTOW; - uint32 tAcc; - int32 nano; - uint16 year; - uint8 month; - uint8 day; - uint8 hour; - uint8 min; - uint8 sec; - uint8 valid; -} GPS_NAV_TIMEUTC_t; - - -typedef struct -{ - uint32 iTOW; - int32 ecefVX; - int32 ecefVY; - int32 ecefVZ; - uint32 sAcc; -} GPS_NAV_VELECEF_t; - - -typedef struct -{ - uint32 iTOW; - int32 velN; - int32 velE; - int32 velD; - uint32 speed; - uint32 gSpeed; - int32 heading; - uint32 sAcc; - uint32 cAcc; -} GPS_NAV_VELNED_t; - - -typedef struct -{ - uint32 pinSel; - uint32 pinBank; - uint32 pinDir; - uint32 pinVal; - uint16 noisePerMS; - uint16 agcCnt; - uint8 aStatus; - uint8 aPower; - uint8 flags; - uint8 reserved1; - uint32 usedMask; - uint8 vp[GPS_MON_HW_VP_PIN_COUNT]; - uint8 jamInd; - uint16 reserved2; - uint32 pinIrq; - uint32 pullH; - uint32 pullL; -} GPS_MON_HW_t; - - -typedef struct -{ - uint32 clearMask; - uint32 saveMask; - uint32 loadMask; - uint8 deviceMask; -} GPS_CFG_CFG_t; - - -typedef struct -{ - uint16 mask; - uint8 dynModel; - uint8 fixMode; - int32 fixedAlt; - uint32 fixedAltVar; - int8 minElev; - uint8 drLimit; - uint16 pDop; - uint16 tDop; - uint16 pAcc; - uint16 tAcc; - uint8 staticHoldThresh; - uint8 dgnssTimeout; - uint8 cnoThreshNumSVs; - uint8 cnoThresh; - uint16 reserved1; - uint16 staticHoldMaxDist; - uint8 utcStandard; - uint8 reserved2; - uint32 reserved3; -} GPS_CFG_NAV5_t; - - -typedef struct -{ - uint8 mode; - uint8 usage; - uint8 maxSBAS; - uint8 scanmode2; - uint32 scanmode1; -} GPS_CFG_SBAS_t; - - -typedef struct -{ - uint8 version; - uint8 reserved1; - uint16 flags; - int32 ecefXOrLat; - int32 ecefYOrLon; - int32 ecefZOrAlt; - int8 ecefXOrLatHP; - int8 ecefYOrLonHP; - int8 ecefZOrAltHP; - uint8 reserved2; - uint32 fixedPosAcc; - uint32 svinMinDur; - uint32 svinAccLimit; - uint8 reserved3[8]; -} GPS_CFG_TMODE3_t; - - -typedef struct -{ - uint8 portID; - uint8 reserved1; - uint16 txReady; - uint32 mode; - uint32 baudRate; - uint16 inProtoMask; - uint16 outProtoMask; - uint16 flags; - uint16 reserved2; -} GPS_CFG_PRT_t; - - -typedef struct -{ - uint8 msgClass; - uint8 msgID; - uint8 rate[6]; -} GPS_CFG_MSG_t; - - -typedef struct -{ - uint8 clsID; - uint8 msgID; -} GPS_ACK_ACK_t; - - -typedef struct -{ - uint8 clsID; - uint8 msgID; -} GPS_ACK_NAK_t; - - -#ifdef __cplusplus -} -#endif - -#endif /* _GPS_UBX_MSG_H_ */ diff --git a/config/obc/ppd/target/apps/gps/tables/gps_config.c b/config/obc/ppd/target/apps/gps/tables/gps_config.c deleted file mode 100644 index cc445d766..000000000 --- a/config/obc/ppd/target/apps/gps/tables/gps_config.c +++ /dev/null @@ -1,63 +0,0 @@ -/* -** Pragmas -*/ - -/* -** Include Files -*/ -#include "cfe_tbl_filedef.h" -#include "gps_tbldefs.h" - -/* -** Local Defines -*/ - -/* -** Local Structure Declarations -*/ -static OS_USED CFE_TBL_FileDef_t CFE_TBL_FileDef = -{ - /* Content format: ObjName[64], TblName[38], Desc[32], TgtFileName[20], ObjSize - ** ObjName - variable name of config table, e.g., CI_ConfigDefTbl[] - ** TblName - app's table name, e.g., CI.CONFIG_TBL, where CI is the same app name - ** used in cfe_es_startup.scr, and CI_defConfigTbl is the same table - ** name passed in to CFE_TBL_Register() - ** Desc - description of table in string format - ** TgtFileName[20] - table file name, compiled as .tbl file extension - ** ObjSize - size of the entire table - */ - - "GPS_ConfigTbl", "GPS.CONFIG_TBL", "GPS default config table", - "gps_config.tbl", (sizeof(GPS_ConfigTbl_t)) -}; - -/* -** External Global Variables -*/ - -/* -** Global Variables -*/ - -/* Default GPS config table data */ -GPS_ConfigTbl_t GPS_ConfigTbl = -{ - /* TODO: Define table. */ -}; - -/* -** Local Variables -*/ - -/* -** Function Prototypes -*/ - -/* -** Function Definitions -*/ - -/*======================================================================================= -** End of file gps_config.c -**=====================================================================================*/ - diff --git a/config/obc/ppd/target/apps/hmc5883/CMakeLists.txt b/config/obc/ppd/target/apps/hmc5883/CMakeLists.txt deleted file mode 100644 index 40d3bc08f..000000000 --- a/config/obc/ppd/target/apps/hmc5883/CMakeLists.txt +++ /dev/null @@ -1,7 +0,0 @@ -set(APP_NAME hmc5883) - -buildliner_add_table( - ${APP_NAME} - NAME hmc5883_config - SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/tables/hmc5883_config.c -) diff --git a/config/obc/ppd/target/apps/hmc5883/src/CMakeLists.txt b/config/obc/ppd/target/apps/hmc5883/src/CMakeLists.txt deleted file mode 100644 index 89582d3dc..000000000 --- a/config/obc/ppd/target/apps/hmc5883/src/CMakeLists.txt +++ /dev/null @@ -1,5 +0,0 @@ -# Set source for custom code. -set(APP_CUSTOM_SRC - ${CMAKE_CURRENT_SOURCE_DIR}/hmc5883_custom.c - PARENT_SCOPE - ) diff --git a/config/obc/ppd/target/apps/hmc5883/src/hmc5883_custom.c b/config/obc/ppd/target/apps/hmc5883/src/hmc5883_custom.c deleted file mode 100644 index 1b00ece09..000000000 --- a/config/obc/ppd/target/apps/hmc5883/src/hmc5883_custom.c +++ /dev/null @@ -1,543 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ -/************************************************************************ -** Pragmas -*************************************************************************/ - -/************************************************************************ -** Includes -*************************************************************************/ -#include "cfe.h" -#include "hmc5883_i2c.h" -#include "hmc5883_events.h" -#include "hmc5883_perfids.h" -#include "px4lib.h" -#include -#include -#include -#include -#include -#include -#include -#include - -/************************************************************************ -** Local Defines -*************************************************************************/ - -/************************************************************************ -** Local Structure Declarations -*************************************************************************/ -typedef enum { - -/** \brief 'HMC5883 - ' -** \event 'HMC5883 - ' -** -** \par Type: ERROR -** -** \par Cause: -** -** This event message is issued when a device resource encounters an -** error. -** -*/ - HMC5883_DEVICE_ERR_EID = HMC5883_EVT_CNT, - -/** \brief Number of custom events -** -** \par Limits: -** int32 -*/ - HMC5883_CUSTOM_EVT_CNT -} HMC5883_CustomEventIds_t; - - -/************************************************************************ -** External Global Variables -*************************************************************************/ - -/************************************************************************ -** Global Variables -*************************************************************************/ -HMC5883_AppCustomData_t HMC5883_AppCustomData; - -/************************************************************************ -** Local Variables -*************************************************************************/ - -/************************************************************************ -** Local Function Definitions -*************************************************************************/ -int32 HMC5883_Ioctl(int fh, int request, void *arg) -{ - int32 returnCode = 0; - uint32 i = 0; - - for (i=0; i < HMC5883_MAX_RETRY_ATTEMPTS; i++) - { - returnCode = ioctl(fh, request, arg); - - if (-1 == returnCode && EINTR == errno) - { - usleep(HMC5883_MAX_RETRY_SLEEP_USEC); - } - else - { - break; - } - } - - return (returnCode); -} - - -void HMC5883_Custom_InitData(void) -{ - /* Set all struct zero values */ - bzero(&HMC5883_AppCustomData, sizeof(HMC5883_AppCustomData)); - return; -} - - -boolean HMC5883_Custom_Init() -{ - boolean returnBool = TRUE; - - HMC5883_AppCustomData.DeviceFd = open(HMC5883_I2C_DEVICE_PATH, O_RDWR); - - if (HMC5883_AppCustomData.DeviceFd < 0) - { - (void) CFE_EVS_SendEvent(HMC5883_DEVICE_ERR_EID, CFE_EVS_ERROR, - "HMC5883 Device open errno: %i", errno); - returnBool = FALSE; - goto end_of_function; - } - else - { - HMC5883_AppCustomData.Status = HMC5883_CUSTOM_INITIALIZED; - } - -end_of_function: - return (returnBool); -} - - -boolean HMC5883_Custom_Set_Range(uint8 Range) -{ - boolean returnBool = FALSE; - - returnBool = HMC5883_Custom_Send(HMC5883_I2C_REG_CONFIG_B, - Range); - - return (returnBool); -} - - -boolean HMC5883_Custom_Get_Range(uint8 *Range) -{ - boolean returnBool = FALSE; - - returnBool = HMC5883_Custom_Receive(HMC5883_I2C_REG_CONFIG_B, - Range, 1); - - return (returnBool); -} - - -boolean HMC5883_Custom_Check_Range(uint8 Range) -{ - boolean returnBool = FALSE; - - uint8 Result[1] = { 0 }; - - returnBool = HMC5883_Custom_Receive(HMC5883_I2C_REG_CONFIG_B, - Result, sizeof(Result)); - /* If the gain setting is corrupt, reset the value */ - if (Range != Result[0]) - { - returnBool = HMC5883_Custom_Set_Range(Range); - } - - return (returnBool); -} - - -boolean HMC5883_Custom_Set_Config(uint8 Config) -{ - boolean returnBool = FALSE; - - returnBool = HMC5883_Custom_Send(HMC5883_I2C_REG_CONFIG_A, - Config); - - return (returnBool); -} - - -boolean HMC5883_Custom_Get_Config(uint8 *Config) -{ - boolean returnBool = FALSE; - - returnBool = HMC5883_Custom_Receive(HMC5883_I2C_REG_CONFIG_A, - Config, 1); - - return (returnBool); -} - - -boolean HMC5883_Custom_Check_Config(uint8 Config) -{ - boolean returnBool = FALSE; - - uint8 Result[1] = { 0 }; - - returnBool = HMC5883_Custom_Receive(HMC5883_I2C_REG_CONFIG_A, - Result, sizeof(Result)); - if (Config != Result[0]) - { - returnBool = HMC5883_Custom_Set_Config(Config); - } - - return (returnBool); -} - - -boolean HMC5883_Custom_Measure(int16 *X, int16 *Y, int16 *Z) -{ - boolean returnBool = FALSE; - - uint8 Message = HMC5883_BITS_MODE_SINGLE_MODE; - - /* to store x, z, and y raw values*/ - uint8 Result[6] = { 0 }; - - /* Null pointer check */ - if(0 == X || 0 == Y || 0 == Z) - { - (void) CFE_EVS_SendEvent(HMC5883_DEVICE_ERR_EID, CFE_EVS_ERROR, - "HMC5883 Read_Gyro Null Pointer"); - returnBool = FALSE; - goto end_of_function; - } - - /* Issue a measure command */ - returnBool = HMC5883_Custom_Send(HMC5883_I2C_REG_MODE, - Message); - if(FALSE == returnBool) - { - /* If send was unsuccessful return FALSE */ - goto end_of_function; - } - /* wait for it to complete */ - usleep(HMC5883_CONVERSION_INTERVAL_US); - - /* Read the x, z, and y values from the device */ - returnBool = HMC5883_Custom_Receive(HMC5883_I2C_REG_DATA_OUT_X_MSB, - Result, sizeof(Result)); - if(FALSE == returnBool) - { - /* If receive was unsuccessful return FALSE */ - goto end_of_function; - } - - *X = (((int16)Result[0]) << 8) + Result[1]; - *Z = (((int16)Result[2]) << 8) + Result[3]; - *Y = (((int16)Result[4]) << 8) + Result[5]; - -end_of_function: - - return (returnBool); -} - - -boolean HMC5883_Custom_Measure_Temp(int16 *Temp) -{ - boolean returnBool = FALSE; - - /* to store temperature raw values*/ - uint8 Result[2] = { 0 }; - - /* Null pointer check */ - if(0 == Temp) - { - (void) CFE_EVS_SendEvent(HMC5883_DEVICE_ERR_EID, CFE_EVS_ERROR, - "HMC5883 Read Temp Null Pointer"); - returnBool = FALSE; - goto end_of_function; - } - /* Read the device temperature value */ - returnBool = HMC5883_Custom_Receive(HMC5983_REG_TEMP_OUT_MSB, - Result, sizeof(Result)); - if(FALSE == returnBool) - { - /* If receive was unsuccessful return FALSE */ - goto end_of_function; - } - - *Temp = (((int16)Result[0]) << 8) + Result[1]; - -end_of_function: - - return (returnBool); -} - - -boolean HMC5883_Custom_ValidateID(void) -{ - boolean returnBool = FALSE; - - uint8 Result[1] = { 0 }; - - returnBool = HMC5883_Custom_Receive(HMC5883_REG_ID_A, &Result[0], 1); - if(FALSE == returnBool) - { - /* If receive was unsuccessful return FALSE */ - goto end_of_function; - } - if (HMC5883_ID_A != Result[0]) - { - /* If the ID doesn't match return FALSE */ - returnBool = FALSE; - goto end_of_function; - } - returnBool = HMC5883_Custom_Receive(HMC5883_REG_ID_B, &Result[0], 1); - if(FALSE == returnBool) - { - /* If receive was unsuccessful return FALSE */ - goto end_of_function; - } - if (HMC5883_ID_B != Result[0]) - { - /* If the ID doesn't match return FALSE */ - returnBool = FALSE; - goto end_of_function; - } - returnBool = HMC5883_Custom_Receive(HMC5883_REG_ID_C, &Result[0], 1); - if(FALSE == returnBool) - { - /* If receive was unsuccessful return FALSE */ - goto end_of_function; - } - if (HMC5883_ID_C != Result[0]) - { - /* If the ID doesn't match return FALSE */ - returnBool = FALSE; - goto end_of_function; - } - -end_of_function: - - return (returnBool); -} - - -boolean HMC5883_Custom_Send(uint8 Reg, uint8 Data) -{ - int returnCode = 0; - boolean returnBool = FALSE; - struct i2c_msg Messages[1]; - struct i2c_rdwr_ioctl_data Packets; - uint8 buf[2]; - - buf[0] = Reg; - buf[1] = Data; - - Messages[0].addr = HMC5883_I2C_SLAVE_ADDRESS; - Messages[0].flags = 0; - Messages[0].buf = &buf[0]; - Messages[0].len = 2; - - Packets.msgs = Messages; - Packets.nmsgs = 1; - - CFE_ES_PerfLogEntry(HMC5883_SEND_PERF_ID); - returnCode = HMC5883_Ioctl(HMC5883_AppCustomData.DeviceFd, I2C_RDWR, &Packets); - CFE_ES_PerfLogExit(HMC5883_SEND_PERF_ID); - - if (-1 == returnCode) - { - (void) CFE_EVS_SendEvent(HMC5883_DEVICE_ERR_EID, CFE_EVS_ERROR, - "HMC5883 ioctl returned errno %i", errno); - } - else - { - returnBool = TRUE; - } - - return (returnBool); -} - - -boolean HMC5883_Custom_Receive(uint8 Reg, uint8 *Buffer, size_t Length) -{ - int returnCode = 0; - boolean returnBool = FALSE; - uint8 cmd = Reg; - - struct i2c_rdwr_ioctl_data Packets; - struct i2c_msg Messages[2]; - - /* send */ - Messages[0].addr = HMC5883_I2C_SLAVE_ADDRESS; - Messages[0].flags = 0; - Messages[0].buf = &cmd; - Messages[0].len = 1; - - /* receive */ - Messages[1].addr = HMC5883_I2C_SLAVE_ADDRESS; - Messages[1].flags = HMC5883_I2C_M_READ; - Messages[1].buf = Buffer; - Messages[1].len = Length; - - Packets.msgs = Messages; - Packets.nmsgs = 2; - - CFE_ES_PerfLogEntry(HMC5883_RECEIVE_PERF_ID); - returnCode = HMC5883_Ioctl(HMC5883_AppCustomData.DeviceFd, I2C_RDWR, &Packets); - CFE_ES_PerfLogExit(HMC5883_RECEIVE_PERF_ID); - - if (-1 == returnCode) - { - (void) CFE_EVS_SendEvent(HMC5883_DEVICE_ERR_EID, CFE_EVS_ERROR, - "HMC5883 ioctl returned errno %i", errno); - } - else - { - returnBool = TRUE; - } - - return (returnBool); -} - - - -boolean HMC5883_Custom_Uninit(void) -{ - boolean returnBool = TRUE; - int returnCode = 0; - - returnCode = close(HMC5883_AppCustomData.DeviceFd); - if (-1 == returnCode) - { - (void) CFE_EVS_SendEvent(HMC5883_DEVICE_ERR_EID, CFE_EVS_ERROR, - "HMC5883 Device close errno: %i", errno); - returnBool = FALSE; - } - else - { - HMC5883_AppCustomData.Status = HMC5883_CUSTOM_UNINITIALIZED; - } - return (returnBool); -} - - -boolean HMC5883_Custom_Max_Events_Not_Reached(int32 ind) -{ - boolean returnBool = FALSE; - - if ((ind < CFE_EVS_MAX_EVENT_FILTERS) && (ind > 0)) - { - returnBool = TRUE; - } - - return (returnBool); -} - - -int32 HMC5883_Custom_Init_EventFilters(int32 ind, CFE_EVS_BinFilter_t *EventTbl) -{ - int32 customEventCount = ind; - - /* Null check */ - if(0 == EventTbl) - { - customEventCount = -1; - goto end_of_function; - } - - if(TRUE == HMC5883_Custom_Max_Events_Not_Reached(customEventCount)) - { - EventTbl[ customEventCount].EventID = HMC5883_DEVICE_ERR_EID; - EventTbl[customEventCount++].Mask = CFE_EVS_FIRST_16_STOP; - } - else - { - customEventCount = -1; - goto end_of_function; - } - -end_of_function: - - return (customEventCount); -} - - -boolean HMC5883_Apply_Platform_Rotation(float *X, float *Y, float *Z) -{ - boolean returnBool = TRUE; - int16 temp = 0; - - /* Null pointer check */ - if(0 == X || 0 == Y || 0 == Z) - { - (void) CFE_EVS_SendEvent(HMC5883_DEVICE_ERR_EID, CFE_EVS_ERROR, - "HMC5883 Apply_Platform_Rotation Null Pointer"); - returnBool = FALSE; - goto end_of_function; - } - - /* The standard external mag by 3DR has x pointing to the - * right, y pointing backwards, and z down, therefore switch x - * and y and invert y. */ - temp = *X; - *X = -*Y; - *Y = temp; - -end_of_function: - - return (returnBool); -} - - -void HMC5883_Get_Rotation(uint8 *Rotation) -{ - /* Null pointer check */ - if(0 == Rotation) - { - goto end_of_function; - } - - *Rotation = ROTATION_YAW_90; - -end_of_function: - return; -} diff --git a/config/obc/ppd/target/apps/hmc5883/src/hmc5883_i2c.h b/config/obc/ppd/target/apps/hmc5883/src/hmc5883_i2c.h deleted file mode 100644 index 9e08dbbee..000000000 --- a/config/obc/ppd/target/apps/hmc5883/src/hmc5883_i2c.h +++ /dev/null @@ -1,337 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ -#ifndef HMC5883_I2C_H -#define HMC5883_I2C_H - -#ifdef __cplusplus -extern "C" { -#endif - -/************************************************************************ -** Includes -*************************************************************************/ -#include "hmc5883_custom.h" -#include "cfe.h" - -/************************************************************************ -** Local Defines -*************************************************************************/ -/** \brief I2C device path. */ -#define HMC5883_I2C_DEVICE_PATH "/dev/i2c-4" - -/** \brief I2C slave address of the HMC5883 device in hex. */ -#define HMC5883_I2C_SLAVE_ADDRESS (0x1e) - -/** \brief HMC5883 expected ID A value. */ -#define HMC5883_ID_A ('H') - -/** \brief HMC5883 expected ID B value. */ -#define HMC5883_ID_B ('4') - -/** \brief HMC5883 expected ID C value. */ -#define HMC5883_ID_C ('3') - -/** \brief Read data, from slave to master. -** -** \par Limits: -** None. -*/ -#define HMC5883_I2C_M_READ (0x0001) - -/** \brief The measurement interval (150Hz). -** -** \par Limits: -** Max for the HMC5883 is 160Hz. -*/ -#define HMC5883_CONVERSION_INTERVAL_US (1000000/150) - -/* HMC5883 device registers */ -/** \brief Configuration register A. -** -** \par Description: -** Used for setting the data output rate and measurement config. -*/ -#define HMC5883_I2C_REG_CONFIG_A (0x00) - -/** \brief Configuration register B. -** -** \par Description: -** Used for setting device gain. -*/ -#define HMC5883_I2C_REG_CONFIG_B (0x01) - -/** \brief Mode register. -** -** \par Description: -** Used to select the operating mode of the device. -*/ -#define HMC5883_I2C_REG_MODE (0x02) - -/** \brief Data Output X Registers A. -** -** \par Description: -** Used to store the measurement result from channel X. -*/ -#define HMC5883_I2C_REG_DATA_OUT_X_MSB (0x03) - -/** \brief Data Output X Registers B. -** -** \par Description: -** Used to store the measurement result from channel X. -*/ -#define HMC5883_I2C_REG_DATA_OUT_X_LSB (0x04) - -/** \brief Data Output Z Registers A. -** -** \par Description: -** Used to store the measurement result from channel Z. -*/ -#define HMC5883_I2C_REG_DATA_OUT_Z_MSB (0x05) - -/** \brief Data Output Z Registers B. -** -** \par Description: -** Used to store the measurement result from channel Z. -*/ -#define HMC5883_I2C_REG_DATA_OUT_Z_LSB (0x06) - -/** \brief Data Output Y Registers A. -** -** \par Description: -** Used to store the measurement result from channel Y. -*/ -#define HMC5883_I2C_REG_DATA_OUT_Y_MSB (0x07) - -/** \brief Data Output Y Registers B. -** -** \par Description: -** Used to store the measurement result from channel Y. -*/ -#define HMC5883_I2C_REG_DATA_OUT_Y_LSB (0x08) - -/** \brief Status register. -** -** \par Description: -** Used to indicate device status. -*/ -#define HMC5883_I2C_REG_STATUS (0x09) - -/** \brief Identification Register A. -** -** \par Description: -** Used to identify the device. -*/ -#define HMC5883_REG_ID_A (0x0a) - -/** \brief Identification Register B. -** -** \par Description: -** Used to identify the device. -*/ -#define HMC5883_REG_ID_B (0x0b) - -/** \brief Identification Register C. -** -** \par Description: -** Used to identify the device. -*/ -#define HMC5883_REG_ID_C (0x0c) - -/** \brief Temperature output register (HMC5983). -** -** \par Description: -** MSB for temperature measurements. -*/ -#define HMC5983_REG_TEMP_OUT_MSB (0x31) - -/** \brief Temperature output register (HMC5983). -** -** \par Description: -** LSB for temperature measurements. -*/ -#define HMC5983_REG_TEMP_OUT_LSB (0x32) - -/* HMC5883 mask */ -/** \brief Continuous measurement mode with a rate of 75Hz. -** -** \par Description: -** Sets the maximum rate for continuous measurement mode. -*/ -//#define HMC5883_BITS_CONFIG_A_CONTINUOUS_75HZ (0x6 << 2) - -#define HMC5883_BITS_CONFIG_A_DEFAULT (0) - -/** \brief Continuous measurement mode. -** -** \par Description: -** Operating mode continuous-measurement mode. -*/ -#define HMC5883_BITS_MODE_CONTINUOUS_MODE (0x00) - -/** \brief Single measurement mode. -** -** \par Description: -** Operating mode single-measurement mode. -*/ -#define HMC5883_BITS_MODE_SINGLE_MODE (0x01) - -/* Retry settings */ -/** \brief Retry attemps for interrupted ioctl calls. -** -** \par Limits: -** None. -*/ -#define HMC5883_MAX_RETRY_ATTEMPTS (5) - -/** \brief Sleep time micro seconds for interrupted calls. -** -** \par Limits: -** None. -*/ -#define HMC5883_MAX_RETRY_SLEEP_USEC (10) - - -/************************************************************************ -** Structure Declarations -*************************************************************************/ -/** - * \brief HMC5883 device status - */ -typedef enum -{ - /*! HMC5883 status uninitialized */ - HMC5883_CUSTOM_UNINITIALIZED = 0, - /*! HMC5883 status initialized */ - HMC5883_CUSTOM_INITIALIZED = 1 -} HMC5883_Custom_Status_t; - - -typedef struct -{ - /*! Device file descriptor */ - int DeviceFd; - /*! The current device status */ - HMC5883_Custom_Status_t Status; -} HMC5883_AppCustomData_t; - - -/************************************************************************ -** External Global Variables -*************************************************************************/ - -/************************************************************************ -** Function Prototypes -*************************************************************************/ - -/************************************************************************/ -/** \brief ioctl with limited EINTR retry attempts. -** -** \par Description -** This function is a wrapper for ioctl with retry attempts added. -** -** \param [in] fh file descriptor. -** \param [in] request code. -** \param [in] arg pointer to a device specific struct. -** -** \returns -** usually 0 for success and -1 for failure, see ioctl man-page for -** more info. -** \endreturns -** -*************************************************************************/ -int32 HMC5883_Ioctl(int fh, int request, void *arg); - -/************************************************************************/ -/** \brief Determines if the maximum of event filters has been reached. -** -** \par Description -** This function checks if an index has reached the maximum -** number of events. -** -** \par Assumptions, External Events, and Notes: -** None -** -** \param [in] ind The current index to check. -** -** -** \returns boolean -** -*************************************************************************/ -boolean HMC5883_Custom_Max_Events_Not_Reached(int32 ind); - - -/************************************************************************/ -/** \brief Receives data via I2C from the HMC5883. -** -** \par Description -** This function receives data via I2C from the device. -** -** \par Assumptions, External Events, and Notes: -** The device must be initialized before this function is called. -** -** \param [in] Reg The target (sender) register to read from. -** -** \param [out] Buffer The buffer to save the data received. -** -** \param [in] Length The length of data to read. -** -** \returns boolean True for success, false for failure. -** -*************************************************************************/ -boolean HMC5883_Custom_Receive(uint8 Reg, uint8 *Buffer, size_t Length); - - -/************************************************************************/ -/** \brief Send data via I2C to the HMC5883. -** -** \par Description -** This function sends data via I2C to the device. -** -** \par Assumptions, External Events, and Notes: -** The device must be initialized before this function is called. -** -** \param [in] Reg The target (recipient) register. -** -** \param [in] Data The data to send. -** -** \returns boolean True for success, false for failure. -** -*************************************************************************/ -boolean HMC5883_Custom_Send(uint8 Reg, uint8 Data); - - -#ifdef __cplusplus -} -#endif - -#endif /* HMC5883_I2C_H */ diff --git a/config/obc/ppd/target/apps/hmc5883/tables/hmc5883_config.c b/config/obc/ppd/target/apps/hmc5883/tables/hmc5883_config.c deleted file mode 100644 index afa05051d..000000000 --- a/config/obc/ppd/target/apps/hmc5883/tables/hmc5883_config.c +++ /dev/null @@ -1,75 +0,0 @@ -/* -** Pragmas -*/ - -/* -** Include Files -*/ -#include "cfe_tbl_filedef.h" -#include "hmc5883_tbldefs.h" - -/* -** Local Defines -*/ - -/* -** Local Structure Declarations -*/ -static OS_USED CFE_TBL_FileDef_t CFE_TBL_FileDef = -{ - /* Content format: ObjName[64], TblName[38], Desc[32], TgtFileName[20], ObjSize - ** ObjName - variable name of config table, e.g., CI_ConfigDefTbl[] - ** TblName - app's table name, e.g., CI.CONFIG_TBL, where CI is the same app name - ** used in cfe_es_startup.scr, and CI_defConfigTbl is the same table - ** name passed in to CFE_TBL_Register() - ** Desc - description of table in string format - ** TgtFileName[20] - table file name, compiled as .tbl file extension - ** ObjSize - size of the entire table - */ - - "HMC5883_ConfigTbl", "HMC5883.CONFIG_TBL", "HMC5883 default config table", - "hmc5883_config.tbl", (sizeof(HMC5883_ConfigTbl_t)) -}; - -/* -** External Global Variables -*/ - -/* -** Global Variables -*/ - -/* Default MPU9250 config table data */ -HMC5883_ConfigTbl_t HMC5883_ConfigTbl = -{ - /* User calibration params */ - /* x_scale */ - 0.968205928802490234f, - /* y_scale */ - 0.963344454765319824f, - /* z_scale */ - 1.080147743225097656f, - /* x_offset */ - -0.010398024693131447f, - /* y_offset */ - -0.077417798340320587f, - /* z_offset */ - -0.106414273381233215f -}; - -/* -** Local Variables -*/ - -/* -** Function Prototypes -*/ - -/* -** Function Definitions -*/ - -/*======================================================================================= -** End of file hmc5883_config.c -**=====================================================================================*/ - diff --git a/config/obc/ppd/target/apps/hmc5883/tables/hmc5883_config_default.c b/config/obc/ppd/target/apps/hmc5883/tables/hmc5883_config_default.c deleted file mode 100644 index ac25c6e41..000000000 --- a/config/obc/ppd/target/apps/hmc5883/tables/hmc5883_config_default.c +++ /dev/null @@ -1,75 +0,0 @@ -/* -** Pragmas -*/ - -/* -** Include Files -*/ -#include "cfe_tbl_filedef.h" -#include "hmc5883_tbldefs.h" - -/* -** Local Defines -*/ - -/* -** Local Structure Declarations -*/ -static OS_USED CFE_TBL_FileDef_t CFE_TBL_FileDef = -{ - /* Content format: ObjName[64], TblName[38], Desc[32], TgtFileName[20], ObjSize - ** ObjName - variable name of config table, e.g., CI_ConfigDefTbl[] - ** TblName - app's table name, e.g., CI.CONFIG_TBL, where CI is the same app name - ** used in cfe_es_startup.scr, and CI_defConfigTbl is the same table - ** name passed in to CFE_TBL_Register() - ** Desc - description of table in string format - ** TgtFileName[20] - table file name, compiled as .tbl file extension - ** ObjSize - size of the entire table - */ - - "HMC5883_ConfigTbl", "HMC5883.CONFIG_TBL", "HMC5883 default config table", - "hmc5883_config.tbl", (sizeof(HMC5883_ConfigTbl_t)) -}; - -/* -** External Global Variables -*/ - -/* -** Global Variables -*/ - -/* Default MPU9250 config table data */ -HMC5883_ConfigTbl_t HMC5883_ConfigTbl = -{ - /* User calibration params */ - /* x_scale */ - 1.0f, - /* y_scale */ - 1.0f, - /* z_scale */ - 1.0f, - /* x_offset */ - 0.0f, - /* y_offset */ - 0.0f, - /* z_offset */ - 0.0f -}; - -/* -** Local Variables -*/ - -/* -** Function Prototypes -*/ - -/* -** Function Definitions -*/ - -/*======================================================================================= -** End of file hmc5883_config.c -**=====================================================================================*/ - diff --git a/config/obc/ppd/target/apps/hmc5883/tables/hmc5883_config_main_vehicle.c b/config/obc/ppd/target/apps/hmc5883/tables/hmc5883_config_main_vehicle.c deleted file mode 100644 index afa05051d..000000000 --- a/config/obc/ppd/target/apps/hmc5883/tables/hmc5883_config_main_vehicle.c +++ /dev/null @@ -1,75 +0,0 @@ -/* -** Pragmas -*/ - -/* -** Include Files -*/ -#include "cfe_tbl_filedef.h" -#include "hmc5883_tbldefs.h" - -/* -** Local Defines -*/ - -/* -** Local Structure Declarations -*/ -static OS_USED CFE_TBL_FileDef_t CFE_TBL_FileDef = -{ - /* Content format: ObjName[64], TblName[38], Desc[32], TgtFileName[20], ObjSize - ** ObjName - variable name of config table, e.g., CI_ConfigDefTbl[] - ** TblName - app's table name, e.g., CI.CONFIG_TBL, where CI is the same app name - ** used in cfe_es_startup.scr, and CI_defConfigTbl is the same table - ** name passed in to CFE_TBL_Register() - ** Desc - description of table in string format - ** TgtFileName[20] - table file name, compiled as .tbl file extension - ** ObjSize - size of the entire table - */ - - "HMC5883_ConfigTbl", "HMC5883.CONFIG_TBL", "HMC5883 default config table", - "hmc5883_config.tbl", (sizeof(HMC5883_ConfigTbl_t)) -}; - -/* -** External Global Variables -*/ - -/* -** Global Variables -*/ - -/* Default MPU9250 config table data */ -HMC5883_ConfigTbl_t HMC5883_ConfigTbl = -{ - /* User calibration params */ - /* x_scale */ - 0.968205928802490234f, - /* y_scale */ - 0.963344454765319824f, - /* z_scale */ - 1.080147743225097656f, - /* x_offset */ - -0.010398024693131447f, - /* y_offset */ - -0.077417798340320587f, - /* z_offset */ - -0.106414273381233215f -}; - -/* -** Local Variables -*/ - -/* -** Function Prototypes -*/ - -/* -** Function Definitions -*/ - -/*======================================================================================= -** End of file hmc5883_config.c -**=====================================================================================*/ - diff --git a/config/obc/ppd/target/apps/ld/CMakeLists.txt b/config/obc/ppd/target/apps/ld/CMakeLists.txt deleted file mode 100644 index 755dd4658..000000000 --- a/config/obc/ppd/target/apps/ld/CMakeLists.txt +++ /dev/null @@ -1,9 +0,0 @@ -set(APP_NAME ld) - -buildliner_add_table( - ${APP_NAME} - NAME ld_config - SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/tables/ld_config.c -) - -buildliner_add_app_unit_test_src(${APP_NAME} SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/tables/ld_config.c) diff --git a/config/obc/ppd/target/apps/ld/tables/ld_config.c b/config/obc/ppd/target/apps/ld/tables/ld_config.c deleted file mode 100644 index f1b75440d..000000000 --- a/config/obc/ppd/target/apps/ld/tables/ld_config.c +++ /dev/null @@ -1,151 +0,0 @@ -/* -** Pragmas -*/ - -/* -** Include Files -*/ -#include "cfe_tbl_filedef.h" -#include "ld_tbldefs.h" - -/* -** Local Defines -*/ - -/* -** Local Structure Declarations -*/ -static OS_USED CFE_TBL_FileDef_t CFE_TBL_FileDef = -{ - /* Content format: ObjName[64], TblName[38], Desc[32], TgtFileName[20], ObjSize - ** ObjName - variable name of config table, e.g., CI_ConfigDefTbl[] - ** TblName - app's table name, e.g., CI.CONFIG_TBL, where CI is the same app name - ** used in cfe_es_startup.scr, and CI_defConfigTbl is the same table - ** name passed in to CFE_TBL_Register() - ** Desc - description of table in string format - ** TgtFileName[20] - table file name, compiled as .tbl file extension - ** ObjSize - size of the entire table - */ - - "LD_ConfigTbl", "LD.CONFIG_TBL", "LD default config table", - "ld_config.tbl", (sizeof(LD_ConfigTbl_t)) -}; - -/* -** External Global Variables -*/ - -/* -** Global Variables -*/ - -/* Default ULR config table data */ -LD_ConfigTbl_t LD_ConfigTbl = -{ - /** \brief Multicopter max climb rate. - * - * \par Limits: - * default 0.5. - */ - 0.5, - - /** \brief Multicopter max horizontal velocity. - * - * \par Limits: - * default 1.5. - */ - 1.50, - - /** \brief Multicopter max rotation. - * - * \par Limits: - * default 20.0. - */ - 20.0, - - /** \brief Multicopter specific force threshold. - * - * \par Limits: - * Min > Max (incr.) 0.1 > 10 , default 2.0. - */ - 2.0, - - /** \brief Multicopter free-fall trigger time. - * - * \par Limits: - * Min > Max (incr.) 0.02 > 5 , default 0.3. - */ - 0.3, - - /** \brief Multicopter Flight stick down threshold for landing. - * - * \par Limits: - * default 0.15. - */ - 0.15, - - /** \brief Multicopter maximum altitude. - * - * \par Limits: - * default 10000.0. - */ - 10000.0, - - /** \brief Multicopter low throttle threshold. - * - * \par Limits: - * default 0.3. - */ - 0.38, - - /** \brief Multicopter minimum throttle in manual mode. - * - * \par Limits: - * default 0.08. - */ - 0.08, - - /** \brief Multicopter takeoff stick up threshold in position control mode. - * - * \par Limits: - * default 0.65. - */ - 0.65, - - /** \brief Multicopter takeoff stick down threshold in position control mode. - * - * \par Limits: - * default 0.15. - */ - 0.15, - - /** \brief Landing descend rate. - * - * \par Limits: - * default 0.5. - */ - 0.3f, - - /** \brief Min Thust No Altitude Lock Land Timout. - * - * \par Limits: - * default 8000000. - */ - 8000000 -}; - -/* -** Local Variables -*/ - -/* -** Function Prototypes -*/ - -/* -** Function Definitions -*/ - -/*======================================================================================= -** End of file ld_config.c -**=====================================================================================*/ diff --git a/config/obc/ppd/target/apps/lgc/CMakeLists.txt b/config/obc/ppd/target/apps/lgc/CMakeLists.txt deleted file mode 100644 index bee42f981..000000000 --- a/config/obc/ppd/target/apps/lgc/CMakeLists.txt +++ /dev/null @@ -1,7 +0,0 @@ -set(APP_NAME lgc) - -buildliner_add_table( - ${APP_NAME} - NAME lgc_config - SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/tables/lgc_config.c -) diff --git a/config/obc/ppd/target/apps/lgc/lgc_custom.cpp b/config/obc/ppd/target/apps/lgc/lgc_custom.cpp deleted file mode 100644 index b9a7bfbf2..000000000 --- a/config/obc/ppd/target/apps/lgc/lgc_custom.cpp +++ /dev/null @@ -1,147 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ - -#include "cfe.h" -#include "lgc_app.h" -#include -#include -#include -#include -#include -#include - -#define LGC_RCOUT_ZYNQ_PWM_BASE (0x43c00000) -#define LGC_FREQUENCY_PWM (400) -#define LGC_TICK_PER_S (50000000) -#define LGC_TICK_PER_US (50) -#define LGC_DEVICE_PATH "/dev/mem" -#define MOTOR_OUTPUTS_SKIPPED (8) - - -/* The following struct is used by the LGC_SharedMemCmd_t struct and overlayed - * over the ocpoc PPM registers to control the PWM hardware. - */ -typedef struct { - uint32 Period; - uint32 Hi; -} LGC_PeriodHi_t; - - -/* The following struct is overlayed over the ocpoc PPM registers to control - * the PWM hardware. - */ -typedef struct -{ - LGC_PeriodHi_t PeriodHi[MOTOR_OUTPUTS_SKIPPED + LGC_MAX_GEAR_OUTPUTS]; -} LGC_SharedMemCmd_t; - -volatile LGC_SharedMemCmd_t *LGC_SharedMemCmd; - - -/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ -/* */ -/* LGC_Freq2tick function. */ -/* */ -/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ -uint32 LGC_Freq2tick(uint16 FreqHz); - - -/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ -/* */ -/* LGC::InitDevice function. */ -/* */ -/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ -int32 LGC::InitDevice(void) -{ - uint32 i = 0; - int returnVal = 0; - int mem_fd = 0; - - /* Initialize just in case we were reloaded and the ctor wasn't called. */ - LGC_SharedMemCmd = 0; - - mem_fd = open(LGC_DEVICE_PATH, O_RDWR | O_SYNC); - LGC_SharedMemCmd = (LGC_SharedMemCmd_t *) mmap(0, 0x1000, - PROT_READ | PROT_WRITE, MAP_SHARED, mem_fd, - LGC_RCOUT_ZYNQ_PWM_BASE); - close(mem_fd); - - if (LGC_SharedMemCmd <= 0) - { - returnVal = errno; - goto end_of_function; - } - - // Note: this appears to be required actuators to initialize - for (i = MOTOR_OUTPUTS_SKIPPED; i < (MOTOR_OUTPUTS_SKIPPED + LGC_MAX_GEAR_OUTPUTS); ++i) - { - LGC_SharedMemCmd->PeriodHi[i].Period = - LGC_Freq2tick(LGC_FREQUENCY_PWM); - LGC_SharedMemCmd->PeriodHi[i].Hi = - LGC_Freq2tick(LGC_FREQUENCY_PWM) / 2; - } - -end_of_function: - return returnVal; -} - - -/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ -/* */ -/* LGC::SetMotorOutputs function. */ -/* */ -/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ -void LGC::SetMotorOutputs(const uint16 *PWM) -{ - uint32 i = 0; - - /* Convert this to duty_cycle in ns */ - for (i = MOTOR_OUTPUTS_SKIPPED; i < (MOTOR_OUTPUTS_SKIPPED + LGC_MAX_GEAR_OUTPUTS); ++i) - { - LGC_SharedMemCmd->PeriodHi[i].Hi = LGC_TICK_PER_US * PWM[(i - MOTOR_OUTPUTS_SKIPPED)]; - } - return; -} - - -/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ -/* */ -/* LGC_Freq2tick function. */ -/* */ -/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ -uint32 LGC_Freq2tick(uint16 FreqHz) -{ - uint32 duty = LGC_TICK_PER_S / (unsigned long)FreqHz; - - return duty; -} diff --git a/config/obc/ppd/target/apps/lgc/tables/lgc_config.c b/config/obc/ppd/target/apps/lgc/tables/lgc_config.c deleted file mode 100644 index 1f57ca8da..000000000 --- a/config/obc/ppd/target/apps/lgc/tables/lgc_config.c +++ /dev/null @@ -1,65 +0,0 @@ -/* -** Pragmas -*/ - -/* -** Include Files -*/ -#include "cfe_tbl_filedef.h" -#include "lgc_tbldefs.h" - -/* -** Local Defines -*/ - -/* -** Local Structure Declarations -*/ -static OS_USED CFE_TBL_FileDef_t CFE_TBL_FileDef = -{ - /* Content format: ObjName[64], TblName[38], Desc[32], TgtFileName[20], ObjSize - ** ObjName - variable name of config table, e.g., CI_ConfigDefTbl[] - ** TblName - app's table name, e.g., CI.CONFIG_TBL, where CI is the same app name - ** used in cfe_es_startup.scr, and CI_defConfigTbl is the same table - ** name passed in to CFE_TBL_Register() - ** Desc - description of table in string format - ** TgtFileName[20] - table file name, compiled as .tbl file extension - ** ObjSize - size of the entire table - */ - - "LGC_ConfigTbl", "LGC.CONFIG_TBL", "LGC default config table", - "lgc_config.tbl", (sizeof(LGC_ConfigTbl_t)) -}; - -/* -** External Global Variables -*/ - -/* -** Global Variables -*/ - -/* Default LGC config table data */ -LGC_ConfigTbl_t LGC_ConfigTbl = -{ - 900, /* PwmDisarmed */ - 1000, /* PwmMin */ - 2000 /* PwmMax */ -}; - -/* -** Local Variables -*/ - -/* -** Function Prototypes -*/ - -/* -** Function Definitions -*/ - -/*======================================================================================= -** End of file lgc_config.c -**=====================================================================================*/ - diff --git a/config/obc/ppd/target/apps/mac/CMakeLists.txt b/config/obc/ppd/target/apps/mac/CMakeLists.txt deleted file mode 100644 index 8cec16ecd..000000000 --- a/config/obc/ppd/target/apps/mac/CMakeLists.txt +++ /dev/null @@ -1,9 +0,0 @@ -set(APP_NAME mac) - -buildliner_add_table( - ${APP_NAME} - NAME mac_param - SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/tables/mac_param.c -) - -buildliner_add_app_unit_test_src(${APP_NAME} SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/tables/mac_param.c) diff --git a/config/obc/ppd/target/apps/mac/tables/mac_param.c b/config/obc/ppd/target/apps/mac/tables/mac_param.c deleted file mode 100644 index 5b8f9e7b8..000000000 --- a/config/obc/ppd/target/apps/mac/tables/mac_param.c +++ /dev/null @@ -1,102 +0,0 @@ -/* -** Pragmas -*/ - -/* -** Include Files -*/ -//#include -#include "cfe_tbl_filedef.h" -#include "mac_tbldefs.h" - -/* -** Local Defines -*/ - -/* -** Local Structure Declarations -*/ -static OS_USED CFE_TBL_FileDef_t CFE_TBL_FileDef = -{ - /* Content format: ObjName[64], TblName[38], Desc[32], TgtFileName[20], ObjSize - ** ObjName - variable name of config table, e.g., CI_ConfigDefTbl[] - ** TblName - app's table name, e.g., CI.CONFIG_TBL, where CI is the same app name - ** used in cfe_es_startup.scr, and CI_defConfigTbl is the same table - ** name passed in to CFE_TBL_Register() - ** Desc - description of table in string format - ** TgtFileName[20] - table file name, compiled as .tbl file extension - ** ObjSize - size of the entire table - */ - - "MAC_ParamTbl", "MAC.PARAM_TBL", "MAC default param table", - "mac_param.tbl", (sizeof(MAC_ParamTbl_t)) -}; - -/* -** External Global Variables -*/ - -/* -** Global Variables -*/ - -/* Default MAC config table data */ -MAC_ParamTbl_t MAC_ParamTbl = -{ - 6.5, /* MC_ROLL_P */ - 0.15, /* MC_ROLLRATE_P */ - 0.05, /* MC_ROLLRATE_I */ - 0.30, /* MC_RR_INT_LIM */ - 0.003, /* MC_ROLLRATE_D */ - 0.0, /* MC_ROLLRATE_FF */ - 6.5, /* MC_PITCH_P */ - 0.15, /* MC_PITCHRATE_P */ - 0.05, /* MC_PITCHRATE_I */ - 0.30, /* MC_PR_INT_LIM */ - 0.003, /* MC_PITCHRATE_D */ - 0.0, /* MC_PITCHRATE_FF */ - 1.0, /* MC_TPA_BREAK_P */ - 1.0, /* MC_TPA_BREAK_I */ - 1.0, /* MC_TPA_BREAK_D */ - 0.0, /* MC_TPA_RATE_P */ - 0.0, /* MC_TPA_RATE_I */ - 0.0, /* MC_TPA_RATE_D */ - 2.8, /* MC_YAW_P */ - 0.28, /* MC_YAWRATE_P */ - 0.15, /* MC_YAWRATE_I */ - 0.30, /* MC_YR_INT_LIM */ - 0.005, /* MC_YAWRATE_D */ - 0.0, /* MC_YAWRATE_FF */ - 220.0, /* MC_ROLLRATE_MAX */ - 220.0, /* MC_PITCHRATE_MAX */ - 120.0, /* MC_YAWRATE_MAX */ - 45.0, /* MC_YAWRAUTO_MAX */ - 360.0, /* MC_ACRO_R_MAX */ - 360.0, /* MC_ACRO_P_MAX */ - 360.0, /* MC_ACRO_Y_MAX */ - 0.8, /* MC_RATT_TH */ - 0.2, /* MC_ROLL_TC */ - 0.2, /* MC_PITCH_TC */ - 0, /* MC_BAT_SCALE_EN */ - 0, /* SENS_BOARD_ROT */ - 0.0, /* SENS_BOARD_X_OFF */ - 0.0, /* SENS_BOARD_Y_OFF */ - 0.0 /* SENS_BOARD_Z_OFF */ -}; - -/* -** Local Variables -*/ - -/* -** Function Prototypes -*/ - -/* -** Function Definitions -*/ - -/*======================================================================================= -** End of file ci_config.c -**=====================================================================================*/ - diff --git a/config/obc/ppd/target/apps/mpc/CMakeLists.txt b/config/obc/ppd/target/apps/mpc/CMakeLists.txt deleted file mode 100644 index 9b3f41ce0..000000000 --- a/config/obc/ppd/target/apps/mpc/CMakeLists.txt +++ /dev/null @@ -1,9 +0,0 @@ -set(APP_NAME mpc) - -buildliner_add_table( - ${APP_NAME} - NAME mpc_config - SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/tables/mpc_config.c -) - -buildliner_add_app_unit_test_src(${APP_NAME} SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/tables/mpc_config.c) diff --git a/config/obc/ppd/target/apps/mpc/tables/mpc_config.c b/config/obc/ppd/target/apps/mpc/tables/mpc_config.c deleted file mode 100644 index fb45b65dc..000000000 --- a/config/obc/ppd/target/apps/mpc/tables/mpc_config.c +++ /dev/null @@ -1,710 +0,0 @@ -/* -** Pragmas -*/ - -/* -** Include Files -*/ -#include "cfe_tbl_filedef.h" -#include "mpc_tbldefs.h" - -/* -** Local Defines -*/ - -/* -** Local Structure Declarations -*/ -static OS_USED CFE_TBL_FileDef_t CFE_TBL_FileDef = -{ - /* Content format: ObjName[64], TblName[38], Desc[32], TgtFileName[20], ObjSize - ** ObjName - variable name of config table, e.g., CI_ConfigDefTbl[] - ** TblName - app's table name, e.g., CI.CONFIG_TBL, where CI is the same app name - ** used in cfe_es_startup.scr, and CI_defConfigTbl is the same table - ** name passed in to CFE_TBL_Register() - ** Desc - description of table in string format - ** TgtFileName[20] - table file name, compiled as .tbl file extension - ** ObjSize - size of the entire table - */ - - "MPC_ConfigTbl", "MPC.CONFIG_TBL", "MPC default config table", - "mpc_config.tbl", (sizeof(MPC_ConfigTbl_t)) -}; - -/* -** External Global Variables -*/ - -/* -** Global Variables -*/ - -/* Default MPC config table data */ -MPC_ConfigTbl_t MPC_ConfigTbl = -{ - /** - * MPC_THR_MIN - * Minimum thrust in auto thrust control - * - * It's recommended to set it > 0 to avoid free fall with zero thrust. - * - * @unit norm - * @min 0.05 - * @max 1.0 - * @decimal 2 - * @increment 0.01 - * @group Multicopter Position Control - */ - 0.12f, - - /** - * MPC_THR_HOVER - * Hover thrust - * - * Vertical thrust required to hover. - * This value is mapped to center stick for manual throttle control. - * With this value set to the thrust required to hover, transition - * from manual to ALTCTL mode while hovering will occur with the - * throttle stick near center, which is then interpreted as (near) - * zero demand for vertical speed. - * - * @unit norm - * @min 0.2 - * @max 0.8 - * @decimal 2 - * @increment 0.01 - * @group Multicopter Position Control - */ - 0.42f, - - /** - * MPC_THR_MAX - * Maximum thrust in auto thrust control - * - * Limit max allowed thrust. Setting a value of one can put - * the system into actuator saturation as no spread between - * the motors is possible any more. A value of 0.8 - 0.9 - * is recommended. - * - * @unit norm - * @min 0.0 - * @max 0.95 - * @decimal 2 - * @increment 0.01 - * @group Multicopter Position Control - */ - 0.9f, - - /** - * MPC_MANTHR_MIN - * Minimum manual thrust - * - * Minimum vertical thrust. It's recommended to set it > 0 to avoid free fall with zero thrust. - * - * @unit norm - * @min 0.0 - * @max 1.0 - * @decimal 2 - * @increment 0.01 - * @group Multicopter Position Control - */ - 0.08f, - - /** - * MPC_MANTHR_MAX - * Maximum manual thrust - * - * Limit max allowed thrust. Setting a value of one can put - * the system into actuator saturation as no spread between - * the motors is possible any more. A value of 0.8 - 0.9 - * is recommended. - * - * @unit norm - * @min 0.0 - * @max 1.0 - * @decimal 2 - * @increment 0.01 - * @group Multicopter Position Control - */ - 0.9f, - - /** - * MPC_Z_P - * Proportional gain for vertical position error - * - * @min 0.0 - * @max 1.5 - * @decimal 2 - * @group Multicopter Position Control - */ - 1.0f, - - /** - * MPC_Z_VEL_P - * Proportional gain for vertical velocity error - * - * @min 0.1 - * @max 0.4 - * @decimal 2 - * @group Multicopter Position Control - */ - 0.1f, - - /** - * MPC_Z_VEL_I - * Integral gain for vertical velocity error - * - * Non zero value allows hovering thrust estimation on stabilized or autonomous takeoff. - * - * @min 0.01 - * @max 0.1 - * @decimal 3 - * @group Multicopter Position Control - */ - 0.02f, - - /** - * MPC_Z_VEL_D - * Differential gain for vertical velocity error - * - * @min 0.0 - * @max 0.1 - * @decimal 3 - * @group Multicopter Position Control - */ - 0.005f, - - /** - * MPC_Z_VEL_MAX_UP - * Maximum vertical ascent velocity - * - * Maximum vertical velocity in AUTO mode and endpoint for stabilized modes (ALTCTRL, POSCTRL). - * - * @unit m/s - * @min 0.5 - * @max 8.0 - * @decimal 1 - * @group Multicopter Position Control - */ - 2.5f, - - /** - * MPC_Z_VEL_MAX_DN - * Maximum vertical descent velocity - * - * Maximum vertical velocity in AUTO mode and endpoint for stabilized modes (ALTCTRL, POSCTRL). - * - * @unit m/s - * @min 0.5 - * @max 4.0 - * @group Multicopter Position Control - */ - 1.0f, - - /** - * MPC_Z_FF - * Vertical velocity feed forward - * - * Feed forward weight for altitude control in stabilized modes (ALTCTRL, POSCTRL). 0 will give slow responce and no overshot, 1 - fast responce and big overshot. - * - * @min 0.0 - * @max 1.0 - * @decimal 2 - * @group Multicopter Position Control - */ - 0.5f, - - /** - * MPC_XY_P - * Proportional gain for horizontal position error - * - * @min 0.0 - * @max 2.0 - * @decimal 2 - * @group Multicopter Position Control - */ - 0.95f, - - /** - * MPC_XY_VEL_P - * Proportional gain for horizontal velocity error - * - * @min 0.06 - * @max 0.15 - * @decimal 2 - * @group Multicopter Position Control - */ - 0.09, - - /** - * MPC_XY_VEL_I - * Integral gain for horizontal velocity error - * - * Non-zero value allows to resist wind. - * - * @min 0.0 - * @max 0.1 - * @decimal 3 - * @group Multicopter Position Control - */ - 0.02f, - - /** - * MPC_XY_VEL_D - * Differential gain for horizontal velocity error. Small values help reduce fast oscillations. If value is too big oscillations will appear again. - * - * @min 0.005 - * @max 0.1 - * @decimal 3 - * @group Multicopter Position Control - */ - 0.01f, - - /** - * MPC_XY_CRUISE - * Nominal horizontal velocity in mission - * - * Normal horizontal velocity in AUTO modes (includes - * also RTL / hold / etc.) and endpoint for - * position stabilized mode (POSCTRL). - * - * @unit m/s - * @min 3.0 - * @max 20.0 - * @increment 1 - * @decimal 2 - * @group Multicopter Position Control - */ - 3.0f, - - /** - * MPC_TARGET_THRE - * Distance Threshold Horizontal Auto - * - * The distance defines at which point the vehicle - * has to slow down to reach target if no direct - * passing to the next target is desired - * - * @unit m - * @min 1.0 - * @max 50.0 - * @increment 1 - * @decimal 2 - * @group Multicopter Position Control - */ - 15.0f, - - /** - * MPC_XY_VEL_MAX - * Maximum horizontal velocity - * - * Maximum horizontal velocity in AUTO mode. If higher speeds - * are commanded in a mission they will be capped to this velocity. - * NOTE: POSCTL uses the min of this and MPC_VEL_MAN_MAX as its max - * - * @unit m/s - * @min 0.0 - * @max 20.0 - * @increment 1 - * @decimal 2 - * @group Multicopter Position Control - */ - 7.0f, - - /** - * MPC_XY_FF - * Horizontal velocity feed forward - * - * Feed forward weight for position control in position control mode (POSCTRL). 0 will give slow responce and no overshot, 1 - fast responce and big overshot. - * - * @min 0.0 - * @max 1.0 - * @decimal 2 - * @group Multicopter Position Control - */ - 0.5f, - - /** - * MPC_TILTMAX_AIR - * Maximum tilt angle in air - * - * Limits maximum tilt in AUTO and POSCTRL modes during flight. - * - * @unit deg - * @min 0.0 - * @max 90.0 - * @decimal 1 - * @group Multicopter Position Control - */ - 30.0f, - - /** - * MPC_TILTMAX_LND - * Maximum tilt during landing - * - * Limits maximum tilt angle on landing. - * - * @unit deg - * @min 0.0 - * @max 90.0 - * @decimal 1 - * @group Multicopter Position Control - */ - 10.0f, - - /** - * MPC_LAND_SPEED - * Landing descend rate - * - * @unit m/s - * @min 0.2 - * @decimal 1 - * @group Multicopter Position Control - */ - 0.3f, - - /** - * MPC_TKO_SPEED - * Takeoff climb rate - * - * @unit m/s - * @min 1 - * @max 5 - * @decimal 2 - * @group Multicopter Position Control - */ - 1.5f, - - /** - * MPC_MAN_TILT_MAX - * Maximal tilt angle in manual or altitude mode - * - * @unit deg - * @min 0.0 - * @max 90.0 - * @decimal 1 - * @group Multicopter Position Control - */ - 30.0f, - - /** - * MPC_MAN_Y_MAX - * Max manual yaw rate - * - * @unit deg/s - * @min 0.0 - * @max 400 - * @decimal 1 - * @group Multicopter Position Control - */ - 200.0f, - - /** - * MPC_HOLD_DZ - * Deadzone of sticks where position hold is enabled - * - * @min 0.0 - * @max 1.0 - * @decimal 2 - * @group Multicopter Position Control - */ - 0.1f, - - /** - * MPC_HOLD_MAX_XY - * Maximum horizontal velocity for which position hold is enabled (use 0 to disable check) - * - * @unit m/s - * @min 0.0 - * @max 3.0 - * @decimal 2 - * @group Multicopter Position Control - */ - 0.8f, - - /** - * MPC_HOLD_MAX_Z - * Maximum vertical velocity for which position hold is enabled (use 0 to disable check) - * - * @unit m/s - * @min 0.0 - * @max 3.0 - * @decimal 2 - * @group Multicopter Position Control - */ - 0.6f, - - /** - * MPC_VELD_LP - * Low pass filter cut freq. for numerical velocity derivative - * - * @unit Hz - * @min 0.0 - * @max 10 - * @decimal 2 - * @group Multicopter Position Control - */ - 5.0f, - - /** - * MPC_ACC_HOR_MAX - * Maximum horizonal acceleration in velocity controlled modes - * - * @unit m/s/s - * @min 2.0 - * @max 15.0 - * @increment 1 - * @decimal 2 - * @group Multicopter Position Control - */ - 10.0f, - - /** - * MPC_ACC_UP_MAX - * Maximum vertical acceleration in velocity controlled modes upward - * - * @unit m/s/s - * @min 2.0 - * @max 15.0 - * @increment 1 - * @decimal 2 - * @group Multicopter Position Control - */ - 10.0f, - - /** - * MPC_ACC_DOWN_MAX - * Maximum vertical acceleration in velocity controlled modes down - * - * @unit m/s/s - * @min 2.0 - * @max 15.0 - * @increment 1 - * @decimal 2 - * @group Multicopter Position Control - */ - 10.0f, - - /** - * MPC_ALT_MODE - * Altitude control mode, note mode 1 only tested with LPE - * - * @min 0 - * @max 1 - * @value 0 Altitude following - * @value 1 Terrain following - * @group Multicopter Position Control - */ - 0, - - /** - * MPC_XY_MAN_EXPO - * Manual control stick exponential curve sensitivity attenuation with small velocity setpoints - * - * The higher the value the less sensitivity the stick has around zero - * while still reaching the maximum value with full stick deflection. - * - * 0 Purely linear input curve (default) - * 1 Purely cubic input curve - * - * @min 0 - * @max 1 - * @decimal 2 - * @group Multicopter Position Control - */ - 1.0, - - /** - * MPC_Z_MAN_EXPO - * Manual control stick vertical exponential curve - * - * The higher the value the less sensitivity the stick has around zero - * while still reaching the maximum value with full stick deflection. - * - * 0 Purely linear input curve (default) - * 1 Purely cubic input curve - * - * @min 0 - * @max 1 - * @decimal 2 - * @group Multicopter Position Control - */ - 1.0, - - /** - * MPC_LAND_ALT1 - * Altitude for 1. step of slow landing (descend) - * - * Below this altitude descending velocity gets limited - * to a value between "MPC_Z_VEL_MAX" and "MPC_LAND_SPEED" - * to enable a smooth descent experience - * Value needs to be higher than "MPC_LAND_ALT2" - * - * @unit m - * @min 0 - * @max 122 - * @decimal 1 - * @group Multicopter Position Control - */ - 6, - - /** - * MPC_LAND_ALT2 - * Altitude for 2. step of slow landing (landing) - * - * Below this altitude descending velocity gets limited to "MPC_LAND_SPEED" - * Value needs to be lower than "MPC_LAND_ALT1" - * - * @unit m - * @min 0 - * @max 122 - * @decimal 1 - * @group Multicopter Position Control - */ - 3, - - /** - * MPC_TKO_RAMP_T - * Position control smooth takeoff ramp time constant - * - * Increasing this value will make automatic and manual takeoff slower. - * If it's too slow the drone might scratch the ground and tip over. - * - * @min 0.1 - * @max 1 - * @group Multicopter Position Control - */ - 0.05f, - - /** - * MC_YAWRATE_MAX - */ - 200.0f, - - /** - * MC_YAW_P - */ - 2.8f, - - /** - * VT_OPT_RECOV_EN - */ - 0, - - /** - * MPC_CRUISE_90 - * Cruise speed when angle prev-current/current-next setpoint - * is 90 degrees. It should be lower than MPC_XY_CRUISE. - * - * Applies only in AUTO modes (includes - * also RTL / hold / etc.) - * - * @unit m/s - * @min 1.0 - * @increment 1 - * @decimal 2 - * @group Multicopter Position Control - */ - 2.0f, - - /** - * MPC_JERK_MAX - * Maximum jerk in manual controlled mode for BRAKING to zero. - * If this value is below MPC_JERK_MIN, the acceleration limit in xy and z - * is MPC_ACC_HOR_MAX and MPC_ACC_UP_MAX respectively instantaneously when the - * user demands brake (=zero stick input). - * Otherwise the acceleration limit increases from current acceleration limit - * towards MPC_ACC_HOR_MAX/MPC_ACC_UP_MAX with jerk limit - * - * @unit m/s/s/s - * @min 0.0 - * @max 15.0 - * @increment 1 - * @decimal 2 - * @group Multicopter Position Control - */ - 10.0f, - - /** - * MPC_JERK_MIN - * Minimum jerk in manual controlled mode for BRAKING to zero - * - * @unit m/s/s/s - * @min 0.5 - * @max 10.0 - * @increment 1 - * @decimal 2 - * @group Multicopter Position Control - */ - 0.0f, - - /** - * MPC_DEC_HOR_SLOW - * Slow horizontal manual deceleration for manual mode - * - * @unit m/s/s - * @min 0.5 - * @max 10.0 - * @increment 1 - * @decimal 2 - * @group Multicopter Position Control - */ - 3.0f, - - /** - * MPC_VEL_MANUAL - * Maximum horizontal velocity setpoint for manual controlled mode - * If velocity setpoint larger than MPC_XY_VEL_MAX is set, then - * the setpoint will be capped to MPC_XY_VEL_MAX - * - * @unit m/s - * @min 3.0 - * @max 20.0 - * @increment 1 - * @decimal 2 - * @group Multicopter Position Control - */ - 7.0f, - - /** - * NAV_ACC_RAD - * - * Default acceptance radius, overridden by acceptance radius of waypoint if set. - * For fixed wing the L1 turning distance is used for horizontal acceptance. - * - * @unit m - * @min 0.05 - * @max 200.0 - * @decimal 1 - * @increment 0.5 - * @group Mission - */ - 2.0f, - - /** NAV_MIS_YAW_ERR - * - * \brief Max yaw error in degrees needed for waypoint heading acceptance. - * - * \par Limits: - * Min > Max (incr.) 0 > 90 , default 12.0. - */ - 12.0f - -}; - -/* -** Local Variables -*/ - -/* -** Function Prototypes -*/ - -/* -** Function Definitions -*/ - -/*======================================================================================= -** End of file mpc_config.c -**=====================================================================================*/ - diff --git a/config/obc/ppd/target/apps/mpu9250/CMakeLists.txt b/config/obc/ppd/target/apps/mpu9250/CMakeLists.txt deleted file mode 100644 index c0463f607..000000000 --- a/config/obc/ppd/target/apps/mpu9250/CMakeLists.txt +++ /dev/null @@ -1,7 +0,0 @@ -set(APP_NAME mpu9250) - -buildliner_add_table( - ${APP_NAME} - NAME mpu9250_config - SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/tables/mpu9250_config.c -) diff --git a/config/obc/ppd/target/apps/mpu9250/src/CMakeLists.txt b/config/obc/ppd/target/apps/mpu9250/src/CMakeLists.txt deleted file mode 100644 index 48e666f2c..000000000 --- a/config/obc/ppd/target/apps/mpu9250/src/CMakeLists.txt +++ /dev/null @@ -1,5 +0,0 @@ -# Set source for custom code. -set(APP_CUSTOM_SRC - ${CMAKE_CURRENT_SOURCE_DIR}/mpu9250_custom.c - PARENT_SCOPE - ) diff --git a/config/obc/ppd/target/apps/mpu9250/src/mpu9250_custom.c b/config/obc/ppd/target/apps/mpu9250/src/mpu9250_custom.c deleted file mode 100644 index 7c14f9736..000000000 --- a/config/obc/ppd/target/apps/mpu9250/src/mpu9250_custom.c +++ /dev/null @@ -1,1134 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ -/************************************************************************ -** Pragmas -*************************************************************************/ - -/************************************************************************ -** Includes -*************************************************************************/ -#include "cfe.h" -#include "mpu9250_spi.h" -#include "mpu9250_events.h" -#include "mpu9250_perfids.h" -#include "px4lib.h" - - -#include -#include -#include -#include -#include -#include -#include -#include -#include - -/************************************************************************ -** Local Defines -*************************************************************************/ - -/************************************************************************ -** Local Structure Declarations -*************************************************************************/ -typedef enum { - -/** \brief 'MPU9250 - ' -** \event 'MPU9250 - ' -** -** \par Type: ERROR -** -** \par Cause: -** -** This event message is issued when a device resource encounters an -** error. -** -*/ - MPU9250_DEVICE_ERR_EID = MPU9250_EVT_CNT, - -/** \brief 'MPU9250 - ' -** \event 'MPU9250 - ' -** -** \par Type: Info -** -** \par Cause: -** -** This event message is issued when a device successfully complete a -** self test. -** -*/ - MPU9250_DEVICE_INF_EID, -/** \brief Number of custom events -** -** \par Limits: -** int32 -*/ - MPU9250_CUSTOM_EVT_CNT -} MPU9250_CustomEventIds_t; - - -/************************************************************************ -** External Global Variables -*************************************************************************/ - -/************************************************************************ -** Global Variables -*************************************************************************/ -MPU9250_AppCustomData_t MPU9250_AppCustomData; -struct spi_ioc_transfer MPU9250_SPI_Xfer[2]; - -/************************************************************************ -** Local Variables -*************************************************************************/ - -/************************************************************************ -** Local Function Definitions -*************************************************************************/ -int32 MPU9250_Ioctl(int fh, int request, void *arg) -{ - int32 returnCode = 0; - uint32 i = 0; - - for (i=0; i < MPU9250_MAX_RETRY_ATTEMPTS; i++) - { - returnCode = ioctl(fh, request, arg); - - if (-1 == returnCode && EINTR == errno) - { - usleep(MPU9250_MAX_RETRY_SLEEP_USEC); - } - else - { - break; - } - } - - return returnCode; -} - - -void MPU9250_Custom_InitData(void) -{ - /* Set all struct zero values */ - bzero(&MPU9250_AppCustomData, sizeof(MPU9250_AppCustomData)); -} - - -boolean MPU9250_Custom_Init() -{ - boolean returnBool = TRUE; - int ret = 0; - int i = 0; - int8 mode = MPU9250_SPI_DEVICE_MODE; - int8 bits = MPU9250_SPI_DEVICE_BITS; - uint32 speed = MPU9250_SPI_DEVICE_SPEED; - - MPU9250_AppCustomData.DeviceFd = open(MPU9250_SPI_DEVICE_PATH, O_RDWR); - if (MPU9250_AppCustomData.DeviceFd < 0) - { - CFE_EVS_SendEvent(MPU9250_DEVICE_ERR_EID, CFE_EVS_ERROR, - "MPU9250 Device open errno: %i", errno); - returnBool = FALSE; - goto end_of_function; - } - - ret = MPU9250_Ioctl(MPU9250_AppCustomData.DeviceFd, SPI_IOC_WR_MODE, &mode); - if (-1 == ret) - { - CFE_EVS_SendEvent(MPU9250_DEVICE_ERR_EID, CFE_EVS_ERROR, - "Can't set SPI mode."); - returnBool = FALSE; - goto end_of_function; - } - - ret = MPU9250_Ioctl(MPU9250_AppCustomData.DeviceFd, SPI_IOC_RD_MODE, &mode); - if (-1 == ret) - { - CFE_EVS_SendEvent(MPU9250_DEVICE_ERR_EID, CFE_EVS_ERROR, - "Can't get SPI mode."); - returnBool = FALSE; - goto end_of_function; - } - - ret = MPU9250_Ioctl(MPU9250_AppCustomData.DeviceFd, SPI_IOC_WR_BITS_PER_WORD, &bits); - if (-1 == ret) - { - CFE_EVS_SendEvent(MPU9250_DEVICE_ERR_EID, CFE_EVS_ERROR, - "Can't set bits per word."); - returnBool = FALSE; - goto end_of_function; - } - - ret = MPU9250_Ioctl(MPU9250_AppCustomData.DeviceFd, SPI_IOC_RD_BITS_PER_WORD, &bits); - if (-1 == ret) - { - CFE_EVS_SendEvent(MPU9250_DEVICE_ERR_EID, CFE_EVS_ERROR, - "Can't get bits per word."); - returnBool = FALSE; - goto end_of_function; - } - - ret = MPU9250_Ioctl(MPU9250_AppCustomData.DeviceFd, SPI_IOC_WR_MAX_SPEED_HZ, &speed); - if (-1 == ret) - { - CFE_EVS_SendEvent(MPU9250_DEVICE_ERR_EID, CFE_EVS_ERROR, - "Can't set max speed."); - returnBool = FALSE; - goto end_of_function; - } - - ret = MPU9250_Ioctl(MPU9250_AppCustomData.DeviceFd, SPI_IOC_RD_MAX_SPEED_HZ, &speed); - if (-1 == ret) - { - CFE_EVS_SendEvent(MPU9250_DEVICE_ERR_EID, CFE_EVS_ERROR, - "Can't get max speed."); - returnBool = FALSE; - goto end_of_function; - } - - /* Keep CS activated */ - MPU9250_SPI_Xfer[0].cs_change = 0; - MPU9250_SPI_Xfer[0].delay_usecs = 0; - MPU9250_SPI_Xfer[0].speed_hz = speed; - MPU9250_SPI_Xfer[0].bits_per_word = 8; - - ret = MPU9250_ResetDevice(); - if (-1 == ret) - { - CFE_EVS_SendEvent(MPU9250_DEVICE_ERR_EID, CFE_EVS_ERROR, - "Reset device failed."); - returnBool = FALSE; - goto end_of_function; - } - - /* TODO Add Gyroscope Self-Test */ - /* TODO Add Accelerometer Self-Test */ - - uint8 MPU_Init_Data[MPU_InitRegNum][2] = { - /* Reset Device */ - {0x80, MPU9250_REG_PWR_MGMT_1}, - /* Clock Source */ - {0x01, MPU9250_REG_PWR_MGMT_1}, - /* Enable Acc & Gyro */ - {0x00, MPU9250_REG_PWR_MGMT_2}, - /* Use DLPF set Gyroscope bandwidth 250Hz, temperature bandwidth 4000Hz */ - {MPU9250_DEFAULT_LOWPASS_FILTER, MPU9250_REG_CONFIG}, - /* +-2000dps */ - {0x18, MPU9250_REG_GYRO_CONFIG}, - /* +-4G */ - {0x08, MPU9250_REG_ACCEL_CONFIG}, - /* Set Acc Data Rates, Enable Acc LPF , Bandwidth 184Hz */ - {0x09, MPU9250_REG_ACCEL_CONFIG2}, - /* LATCH_INT_EN INT pin level held unitl interrupt status is - * cleared. IN_ANYRD_2CLEAR interrupt status is cleared if - * any read operation is performed. */ - {0x30, MPU9250_REG_INT_PIN_CFG}, - /* I2C Speed 348 kHz */ - //{0x40, MPUREG_I2C_MST_CTRL}, - /* Enable AUX */ - //{0x20, MPUREG_USER_CTRL}, - /* I2C Master mode */ - {0x20, MPU9250_REG_USER_CTRL}, - /* I2C 400KHz */ - {MPU9250_I2C_MST_P_NSR | MPU9250_I2C_MST_WAIT_FOR_ES | - MPU9250_I2C_MST_CLOCK_400HZ, MPU9250_REG_I2C_MST_CTRL}, - //{0x0D, MPU9250_REG_I2C_MST_CTRL}, - /* Set the I2C slave addres of AK8963 and set for write. */ - {MPU9250_AK8963_I2C_ADDR, MPU9250_REG_I2C_SLV0_ADDR}, - //{0x09, MPUREG_I2C_SLV4_CTRL}, - /* Enable I2C delay */ - //{0x81, MPUREG_I2C_MST_DELAY_CTRL}, - /* I2C slave 0 register address from where to begin data transfer */ - {MPU9250_AK8963_CNTL2, MPU9250_REG_I2C_SLV0_REG}, - /* Reset AK8963 */ - {0x01, MPU9250_REG_I2C_SLV0_DO}, - /* Enable I2C and set 1 byte */ - {0x81, MPU9250_REG_I2C_SLV0_CTRL}, - /* I2C slave 0 register address from where to begin data transfer */ - {MPU9250_AK8963_CNTL1, MPU9250_REG_I2C_SLV0_REG}, - /* Fused ROM read mode */ - //{MPU9250_AK8963_FUSE_MODE | MPU9250_AK8963_16BIT_ADC, MPU9250_REG_I2C_SLV0_DO}, - /* Register value to continuous measurement mode 1 in 16bit */ - //{0x12, MPU9250_REG_I2C_SLV0_DO}, - /* Register value to continuous measurement mode 2 in 16bit */ - {0x16, MPU9250_REG_I2C_SLV0_DO}, - /* Enable I2C and set 1 byte */ - {0x81, MPU9250_REG_I2C_SLV0_CTRL}, - /* Set the I2C slave address of AK8963 and set for read. */ - {MPU9250_AK8963_I2C_ADDR | 0x80, MPU9250_REG_I2C_SLV0_ADDR}, - /* I2C slave 0 register address from where to begin data transfer */ - {MPU9250_AK8963_WIA, MPU9250_REG_I2C_SLV0_REG}, - //{MPU9250_AK8963_ASAX, MPU9250_REG_I2C_SLV0_REG}, - /* Enable I2C and set 1 byte */ - {0x8f, MPU9250_REG_I2C_SLV0_CTRL} - //{0x83, MPU9250_REG_I2C_SLV0_CTRL} - }; - - for(i = 0; i < MPU_InitRegNum; i++) - { - returnBool = MPU9250_WriteReg(MPU_Init_Data[i][1], MPU_Init_Data[i][0]); - if(FALSE == returnBool) - { - goto end_of_function; - } - usleep(100000); - } - - //returnBool = MPU9250_Custom_Read_MagAdj(); - //if(FALSE == returnBool) - //{ - //goto end_of_function; - //} - - //uint8 MPU_Init_Data2[MPU_InitRegNum2][2] = { - ///* Set the I2C slave address of AK8963 and set for write. */ - //{MPU9250_AK8963_I2C_ADDR, MPU9250_REG_I2C_SLV0_ADDR}, - ///* I2C slave 0 register address from where to begin data transfer */ - //{MPU9250_AK8963_CNTL2, MPU9250_REG_I2C_SLV0_REG}, - ///* Reset AK8963 */ - //{0x01, MPU9250_REG_I2C_SLV0_DO}, - ///* Enable I2C and set 1 byte */ - //{0x81, MPU9250_REG_I2C_SLV0_CTRL}, - ///* I2C slave 0 register address from where to begin data transfer */ - //{MPU9250_AK8963_CNTL1, MPU9250_REG_I2C_SLV0_REG}, - ///* Register value to continuous measurement mode 2 in 16bit */ - //{0x16, MPU9250_REG_I2C_SLV0_DO}, - ///* Enable I2C and set 1 byte */ - //{0x81, MPU9250_REG_I2C_SLV0_CTRL}, - ///* Set the I2C slave address of AK8963 and set for read. */ - //{MPU9250_AK8963_I2C_ADDR | 0x80, MPU9250_REG_I2C_SLV0_ADDR}, - ///* I2C slave 0 register address from where to begin data transfer */ - //{MPU9250_AK8963_WIA, MPU9250_REG_I2C_SLV0_REG}, - ///* Enable I2C and set 1 byte, copy the max 15 reg from mag */ - //{0x8f, MPU9250_REG_I2C_SLV0_CTRL} - //}; - - //for(i = 0; i < MPU_InitRegNum2; i++) { - //returnBool = MPU9250_WriteReg(MPU_Init_Data2[i][1], MPU_Init_Data2[i][0]); - //if(FALSE == returnBool) - //{ - //goto end_of_function; - //} - //usleep(100000); - //} - - MPU9250_AppCustomData.Status = MPU9250_CUSTOM_INITIALIZED; - -end_of_function: - return returnBool; -} - - -boolean MPU9250_Custom_Uninit(void) -{ - boolean returnBool = TRUE; - int returnCode = 0; - - returnCode = close(MPU9250_AppCustomData.DeviceFd); - if (-1 == returnCode) - { - CFE_EVS_SendEvent(MPU9250_DEVICE_ERR_EID, CFE_EVS_ERROR, - "MPU9250 Device close errno: %i", errno); - returnBool = FALSE; - } - else - { - MPU9250_AppCustomData.Status = MPU9250_CUSTOM_UNINITIALIZED; - } - return returnBool; -} - - -int32 MPU9250_ResetDevice(void) -{ - int32 ret = 0; - boolean returnBool = TRUE; - - returnBool = MPU9250_WriteReg(MPU9250_BIT_H_RESET, MPU9250_REG_PWR_MGMT_1); - if (FALSE == returnBool) - { - CFE_EVS_SendEvent(MPU9250_DEVICE_ERR_EID, CFE_EVS_ERROR, - "MPU9250 ioctl returned %i", errno); - ret = -1; - } - else - { - usleep(100000); - } - return ret; -} - - -boolean MPU9250_WriteReg(uint8 Addr, uint8 Data) -{ - int ret; - unsigned char buf[32]; - boolean returnBool = TRUE; - - memset(buf, 0, sizeof(buf)); - buf[0] = Addr; - buf[1] = Data; - - MPU9250_SPI_Xfer[0].tx_buf = (unsigned long)buf; - MPU9250_SPI_Xfer[0].rx_buf = (unsigned long)buf; - MPU9250_SPI_Xfer[0].len = 2; - - ret = ioctl(MPU9250_AppCustomData.DeviceFd, SPI_IOC_MESSAGE(1), MPU9250_SPI_Xfer); - if (-1 == ret) - { - CFE_EVS_SendEvent(MPU9250_DEVICE_ERR_EID, CFE_EVS_ERROR, - "MPU9250 ioctl returned %i", errno); - returnBool = FALSE; - } - return returnBool; -} - - -boolean MPU9250_ReadReg(uint8 Addr, uint8 *returnVal) -{ - int ret = 0; - unsigned char buf[32]; - boolean returnBool = TRUE; - - /* Null pointer check */ - if(0 == returnVal) - { - CFE_EVS_SendEvent(MPU9250_DEVICE_ERR_EID, CFE_EVS_ERROR, - "MPU9250 ReadReg Null Pointer"); - returnBool = FALSE; - goto end_of_function; - } - - memset(buf, 0, sizeof(buf)); - buf[0] = Addr | 0x80; - buf[1] = 0; - - MPU9250_SPI_Xfer[0].tx_buf = (unsigned long)buf; - MPU9250_SPI_Xfer[0].rx_buf = (unsigned long)buf; - MPU9250_SPI_Xfer[0].len = 2; - - ret = MPU9250_Ioctl(MPU9250_AppCustomData.DeviceFd, SPI_IOC_MESSAGE(1), MPU9250_SPI_Xfer); - if (-1 == ret) - { - CFE_EVS_SendEvent(MPU9250_DEVICE_ERR_EID, CFE_EVS_ERROR, - "MPU9250 ioctl returned %i", errno); - } - - *returnVal = (uint8) buf[1]; - -end_of_function: - return returnBool; -} - - -boolean MPU9250_SetAccScale(uint8 Scale, float *AccDivider) -{ - boolean returnBool = TRUE; - uint8 value = 0; - - /* Null pointer check */ - if(0 == AccDivider) - { - CFE_EVS_SendEvent(MPU9250_DEVICE_ERR_EID, CFE_EVS_ERROR, - "MPU9250 SetAccScale Null Pointer"); - returnBool = FALSE; - goto end_of_function; - } - - switch (Scale) - { - case 2: - *AccDivider = 16384; - value = MPU9250_BITS_FS_2G; - break; - - case 4: - *AccDivider = 8192; - value = MPU9250_BITS_FS_4G; - break; - - case 8: - *AccDivider = 4096; - value = MPU9250_BITS_FS_8G; - break; - - case 16: - *AccDivider = 2048; - value = MPU9250_BITS_FS_16G; - break; - - default: - returnBool = FALSE; - goto end_of_function; - } - - returnBool = MPU9250_WriteReg(MPU9250_REG_ACCEL_CONFIG, value); - if (FALSE == returnBool) - { - goto end_of_function; - } - -end_of_function: - return returnBool; -} - - -boolean MPU9250_SetGyroScale(uint32 Scale, float *GyroDivider) -{ - boolean returnBool = TRUE; - uint8 value = 0; - - /* Null pointer check */ - if(0 == GyroDivider) - { - CFE_EVS_SendEvent(MPU9250_DEVICE_ERR_EID, CFE_EVS_ERROR, - "MPU9250 SetGyroScale Null Pointer"); - returnBool = FALSE; - goto end_of_function; - } - - switch (Scale) - { - case 250: - *GyroDivider = 131; - value = MPU9250_BITS_FS_250DPS; - break; - - case 500: - *GyroDivider = 65.5; - value = MPU9250_BITS_FS_500DPS; - break; - - case 1000: - *GyroDivider = 32.8; - value = MPU9250_BITS_FS_1000DPS; - break; - - case 2000: - *GyroDivider = 16.4; - value = MPU9250_BITS_FS_2000DPS; - break; - - default: - returnBool = FALSE; - goto end_of_function; - } - - returnBool = MPU9250_WriteReg(MPU9250_REG_GYRO_CONFIG, value); - if (FALSE == returnBool) - { - goto end_of_function; - } - -end_of_function: - return returnBool; -} - - -boolean MPU9250_Read_Gyro(int16 *X, int16 *Y, int16 *Z) -{ - uint8 hValue = 0; - uint8 lValue = 0; - boolean returnBool = TRUE; - - /* Null pointer check */ - if(0 == X || 0 == Y || 0 == Z) - { - CFE_EVS_SendEvent(MPU9250_DEVICE_ERR_EID, CFE_EVS_ERROR, - "MPU9250 Read_Gyro Null Pointer"); - returnBool = FALSE; - goto end_of_function; - } - - returnBool = MPU9250_ReadReg(MPU9250_REG_GYRO_XOUT_H, &hValue); - if(FALSE == returnBool) - { - returnBool = FALSE; - goto end_of_function; - } - returnBool = MPU9250_ReadReg(MPU9250_REG_GYRO_XOUT_L, &lValue); - if(FALSE == returnBool) - { - returnBool = FALSE; - goto end_of_function; - } - - *X = (hValue << 8) | lValue; - - returnBool = MPU9250_ReadReg(MPU9250_REG_GYRO_YOUT_H, &hValue); - if(FALSE == returnBool) - { - returnBool = FALSE; - goto end_of_function; - } - returnBool = MPU9250_ReadReg(MPU9250_REG_GYRO_YOUT_L, &lValue); - if(FALSE == returnBool) - { - returnBool = FALSE; - goto end_of_function; - } - - *Y = (hValue << 8) | lValue; - - returnBool = MPU9250_ReadReg(MPU9250_REG_GYRO_ZOUT_H, &hValue); - if(FALSE == returnBool) - { - returnBool = FALSE; - goto end_of_function; - } - returnBool = MPU9250_ReadReg(MPU9250_REG_GYRO_ZOUT_L, &lValue); - if(FALSE == returnBool) - { - returnBool = FALSE; - goto end_of_function; - } - - *Z = (hValue << 8) | lValue; - -end_of_function: - if (FALSE == returnBool) - { - CFE_EVS_SendEvent(MPU9250_DEVICE_ERR_EID, CFE_EVS_ERROR, - "MPU9250 read error in Read_Gyro"); - } - return returnBool; -} - - -boolean MPU9250_Read_Accel(int16 *X, int16 *Y, int16 *Z) -{ - uint8 hValue = 0; - uint8 lValue = 0; - boolean returnBool = TRUE; - - /* Null pointer check */ - if(0 == X || 0 == Y || 0 == Z) - { - CFE_EVS_SendEvent(MPU9250_DEVICE_ERR_EID, CFE_EVS_ERROR, - "MPU9250 Read_Accel Null Pointer"); - returnBool = FALSE; - goto end_of_function; - } - - returnBool = MPU9250_ReadReg(MPU9250_REG_ACCEL_XOUT_H, &hValue); - if(FALSE == returnBool) - { - returnBool = FALSE; - goto end_of_function; - } - returnBool = MPU9250_ReadReg(MPU9250_REG_ACCEL_XOUT_L, &lValue); - if(FALSE == returnBool) - { - returnBool = FALSE; - goto end_of_function; - } - - *X = (hValue << 8) | lValue; - - returnBool = MPU9250_ReadReg(MPU9250_REG_ACCEL_YOUT_H, &hValue); - if(FALSE == returnBool) - { - returnBool = FALSE; - goto end_of_function; - } - returnBool = MPU9250_ReadReg(MPU9250_REG_ACCEL_YOUT_L, &lValue); - if(FALSE == returnBool) - { - returnBool = FALSE; - goto end_of_function; - } - - *Y = (hValue << 8) | lValue; - - returnBool = MPU9250_ReadReg(MPU9250_REG_ACCEL_ZOUT_H, &hValue); - if(FALSE == returnBool) - { - returnBool = FALSE; - goto end_of_function; - } - returnBool = MPU9250_ReadReg(MPU9250_REG_ACCEL_ZOUT_L, &lValue); - if(FALSE == returnBool) - { - returnBool = FALSE; - goto end_of_function; - } - - *Z = (hValue << 8) | lValue; - -end_of_function: - if (FALSE == returnBool) - { - CFE_EVS_SendEvent(MPU9250_DEVICE_ERR_EID, CFE_EVS_ERROR, - "MPU9250 read error in Read_Accel"); - } - return returnBool; -}; - - -//boolean MPU9250_Read_Mag(int16 *X, int16 *Y, int16 *Z) -//{ - //uint8 hValue = 0; - //uint8 lValue = 0; - //uint8 st2 = 0; - //boolean returnBool = TRUE; - - ///* Null pointer check */ - //if(0 == X || 0 == Y || 0 == Z) - //{ - //CFE_EVS_SendEvent(MPU9250_DEVICE_ERR_EID, CFE_EVS_ERROR, - //"MPU9250 Read_Mag Null Pointer"); - //returnBool = FALSE; - //goto end_of_function; - //} - - //returnBool = MPU9250_ReadReg(MPU9250_REG_EXT_SENS_DATA_00 + MPU9250_AK8963_HXH, &hValue); - //if(FALSE == returnBool) - //{ - //returnBool = FALSE; - //goto end_of_function; - //} - //returnBool = MPU9250_ReadReg(MPU9250_REG_EXT_SENS_DATA_00 + MPU9250_AK8963_HXL, &lValue); - //if(FALSE == returnBool) - //{ - //returnBool = FALSE; - //goto end_of_function; - //} - - //*X = (hValue << 8) | lValue; - - //returnBool = MPU9250_ReadReg(MPU9250_REG_EXT_SENS_DATA_00 + MPU9250_AK8963_HYH, &hValue); - //if(FALSE == returnBool) - //{ - //returnBool = FALSE; - //goto end_of_function; - //} - //returnBool = MPU9250_ReadReg(MPU9250_REG_EXT_SENS_DATA_00 + MPU9250_AK8963_HYL, &lValue); - //if(FALSE == returnBool) - //{ - //returnBool = FALSE; - //goto end_of_function; - //} - - //*Y = (hValue << 8) | lValue; - - //returnBool = MPU9250_ReadReg(MPU9250_REG_EXT_SENS_DATA_00 + MPU9250_AK8963_HZH, &hValue); - //if(FALSE == returnBool) - //{ - //returnBool = FALSE; - //goto end_of_function; - //} - //returnBool = MPU9250_ReadReg(MPU9250_REG_EXT_SENS_DATA_00 + MPU9250_AK8963_HZL, &lValue); - //if(FALSE == returnBool) - //{ - //returnBool = FALSE; - //goto end_of_function; - //} - //*Z = (hValue << 8) | lValue; - - //returnBool = MPU9250_ReadReg(MPU9250_REG_EXT_SENS_DATA_00 + MPU9250_AK8963_ST2, &st2); - //if(st2 & MPU9250_ST2_HOFL_MASK) - //{ - //CFE_EVS_SendEvent(MPU9250_DEVICE_ERR_EID, CFE_EVS_ERROR, - //"Mag sensor data overflow"); - //returnBool = FALSE; - //goto end_of_function; - //} - -//end_of_function: - //if (FALSE == returnBool) - //{ - //CFE_EVS_SendEvent(MPU9250_DEVICE_ERR_EID, CFE_EVS_ERROR, - //"MPU9250 read error in Read_Mag"); - //} - //return returnBool; -//} - - -boolean MPU9250_Read_Temp(uint16 *Temp) -{ - uint8 hValue = 0; - uint8 lValue = 0; - boolean returnBool = TRUE; - - /* Null pointer check */ - if(0 == Temp) - { - CFE_EVS_SendEvent(MPU9250_DEVICE_ERR_EID, CFE_EVS_ERROR, - "MPU9250 Read_Temp Null Pointer"); - returnBool = FALSE; - goto end_of_function; - } - - returnBool = MPU9250_ReadReg(MPU9250_REG_TEMP_OUT_H, &hValue); - if(FALSE == returnBool) - { - returnBool = FALSE; - goto end_of_function; - } - returnBool = MPU9250_ReadReg(MPU9250_REG_TEMP_OUT_L, &lValue); - if(FALSE == returnBool) - { - returnBool = FALSE; - goto end_of_function; - } - *Temp = (hValue << 8) | lValue; - -end_of_function: - if (FALSE == returnBool) - { - CFE_EVS_SendEvent(MPU9250_DEVICE_ERR_EID, CFE_EVS_ERROR, - "MPU9250 read error in Read_Temp"); - } - return returnBool; -} - - -boolean MPU9250_Read_WhoAmI(uint8 *Value) -{ - boolean returnBool = TRUE; - /* Null pointer check */ - if(0 == Value) - { - CFE_EVS_SendEvent(MPU9250_DEVICE_ERR_EID, CFE_EVS_ERROR, - "MPU9250 Read_WhoAmI Null Pointer"); - returnBool = FALSE; - goto end_of_function; - } - - returnBool = MPU9250_ReadReg(MPU9250_REG_WHOAMI, Value); - -end_of_function: - if (FALSE == returnBool) - { - CFE_EVS_SendEvent(MPU9250_DEVICE_ERR_EID, CFE_EVS_ERROR, - "MPU9250 read error in WhoAmI"); - } - return returnBool; -} - - -//boolean MPU9250_Read_MagDeviceID(uint8 *Value) -//{ - //boolean returnBool = TRUE; - ///* Null pointer check */ - //if(0 == Value) - //{ - //CFE_EVS_SendEvent(MPU9250_DEVICE_ERR_EID, CFE_EVS_ERROR, - //"MPU9250 Read_MagDeviceID Null Pointer"); - //returnBool = FALSE; - //goto end_of_function; - //} - - //returnBool = MPU9250_ReadReg(MPU9250_REG_EXT_SENS_DATA_00 + MPU9250_AK8963_WIA, Value); - -//end_of_function: - //if (FALSE == returnBool) - //{ - //CFE_EVS_SendEvent(MPU9250_DEVICE_ERR_EID, CFE_EVS_ERROR, - //"MPU9250 read error in MagDeviceID"); - //} - //return returnBool; -//} - - -//boolean MPU9250_Read_MagInfo(uint8 *Value) -//{ - //boolean returnBool = TRUE; - ///* Null pointer check */ - //if(0 == Value) - //{ - //CFE_EVS_SendEvent(MPU9250_DEVICE_ERR_EID, CFE_EVS_ERROR, - //"MPU9250 Read_MagInfo Null Pointer"); - //returnBool = FALSE; - //goto end_of_function; - //} - //*Value = MPU9250_ReadReg(MPU9250_REG_EXT_SENS_DATA_00 + MPU9250_AK8963_INFO, Value); - -//end_of_function: - //if (FALSE == returnBool) - //{ - //CFE_EVS_SendEvent(MPU9250_DEVICE_ERR_EID, CFE_EVS_ERROR, - //"MPU9250 read error in MagInfo"); - //} - //return returnBool; -//} - - -boolean MPU9250_Perform_AccelSelfTest(void) -{ - return TRUE; -} - - -boolean MPU9250_Perform_GyroSelfTest(void) -{ - return TRUE; -} - - -//boolean MPU9250_Start_MagSelfTest(void) -//{ - //return TRUE; -//} - - -//boolean MPU9250_Stop_MagSelfTest(void) -//{ - //return TRUE; -//} - - -/* TODO */ -boolean MPU9250_Read_ImuStatus(boolean *WOM, boolean *FifoOvflw, boolean *Fsync, boolean *DataReady) -{ - uint8 value = 0; - boolean returnBool = TRUE; - - /* Null pointer check */ - if(0 == WOM || 0 == FifoOvflw || 0 == Fsync|| 0 == DataReady) - { - CFE_EVS_SendEvent(MPU9250_DEVICE_ERR_EID, CFE_EVS_ERROR, - "MPU9250 Read_ImuStatus Null Pointer"); - returnBool = FALSE; - goto end_of_function; - } - - returnBool = MPU9250_ReadReg(MPU9250_REG_INT_STATUS, &value); - if(FALSE == returnBool) - { - CFE_EVS_SendEvent(MPU9250_DEVICE_ERR_EID, CFE_EVS_ERROR, - "MPU9250 read error in ImuStatus"); - returnBool = FALSE; - goto end_of_function; - } - - *WOM = value & MPU9250_ST_INT_WOM_MASK; - *FifoOvflw = value & MPU9250_ST_INT_FIFO_OFL_MASK; - *Fsync = value & MPU9250_ST_INT_FSYNC_MASK; - *DataReady = value & MPU9250_ST_INT_RDY_MASK; - -end_of_function: - return returnBool; -} - - -//boolean MPU9250_Read_MagStatus(boolean *Overrun, boolean *DataReady, boolean *Overflow, boolean *Output16Bit) -//{ - //uint8 value = 0; - //boolean returnBool = TRUE; - - ///* Null pointer check */ - //if(0 == Overrun || 0 == DataReady || 0 == Overflow || 0 == Output16Bit) - //{ - //CFE_EVS_SendEvent(MPU9250_DEVICE_ERR_EID, CFE_EVS_ERROR, - //"MPU9250 Read_MagStatus Null Pointer"); - //returnBool = FALSE; - //goto end_of_function; - //} - - //returnBool = MPU9250_ReadReg(MPU9250_REG_EXT_SENS_DATA_00 + MPU9250_AK8963_ST1, &value); - //if(FALSE == returnBool) - //{ - //returnBool = FALSE; - //goto end_of_function; - //} - //*Overrun = value & MPU9250_ST1_DOR_MASK; - //*DataReady = value & MPU9250_ST1_DRDY_MASK; - - //returnBool = MPU9250_ReadReg(MPU9250_REG_EXT_SENS_DATA_00 + MPU9250_AK8963_ST2, &value); - //if(FALSE == returnBool) - //{ - //returnBool = FALSE; - //goto end_of_function; - //} - //*Overflow = value & MPU9250_ST2_HOFL_MASK; - //*Output16Bit = value & MPU9250_ST2_BITM_MASK; - -//end_of_function: - //if (FALSE == returnBool) - //{ - //CFE_EVS_SendEvent(MPU9250_DEVICE_ERR_EID, CFE_EVS_ERROR, - //"MPU9250 read error in MagStatus"); - //} - //return returnBool; -//} - - -//boolean MPU9250_Custom_Read_MagAdj(void) -//{ - //boolean returnBool = TRUE; - //uint8 validateX = 0; - //uint8 validateY = 0; - //uint8 validateZ = 0; - - //returnBool = MPU9250_ReadReg(MPU9250_REG_EXT_SENS_DATA_00, &validateX); - //if(FALSE == returnBool) - //{ - //returnBool = FALSE; - //goto end_of_function; - //} - ///* TODO validate X*/ - //MPU9250_AppCustomData.MagAdjX = validateX; - //returnBool = MPU9250_ReadReg(MPU9250_REG_EXT_SENS_DATA_01, &validateY); - //if(FALSE == returnBool) - //{ - //returnBool = FALSE; - //goto end_of_function; - //} - ///* TODO validate Y*/ - //MPU9250_AppCustomData.MagAdjY = validateY; - //returnBool = MPU9250_ReadReg(MPU9250_REG_EXT_SENS_DATA_02, &validateZ); - //if(FALSE == returnBool) - //{ - //returnBool = FALSE; - //goto end_of_function; - //} - ///* TODO validate Z*/ - //MPU9250_AppCustomData.MagAdjZ = validateZ; - -//end_of_function: - //if (FALSE == returnBool) - //{ - //CFE_EVS_SendEvent(MPU9250_DEVICE_ERR_EID, CFE_EVS_ERROR, - //"MPU9250 read or write error in Custom MagAdj"); - //} - //return returnBool; -//} - - -//boolean MPU9250_Read_MagAdj(uint8 *X, uint8 *Y, uint8 *Z) -//{ - //boolean returnBool = TRUE; - - ///* Null pointer check */ - //if(0 == X || 0 == Y || 0 == Z) - //{ - //CFE_EVS_SendEvent(MPU9250_DEVICE_ERR_EID, CFE_EVS_ERROR, - //"MPU9250 Read_MagAdj Null Pointer"); - //returnBool = FALSE; - //goto end_of_function; - //} - - //*X = MPU9250_AppCustomData.MagAdjX; - //*Y = MPU9250_AppCustomData.MagAdjY; - //*Z = MPU9250_AppCustomData.MagAdjZ; - -//end_of_function: - - //return returnBool; -//} - - -boolean MPU9250_Apply_Platform_Rotation(float *X, float *Y, float *Z) -{ - boolean returnBool = TRUE; - float temp; - - /* Null pointer check */ - if(0 == X || 0 == Y || 0 == Z) - { - CFE_EVS_SendEvent(MPU9250_DEVICE_ERR_EID, CFE_EVS_ERROR, - "MPU9250 Apply_Platform_Rotation Null Pointer"); - returnBool = FALSE; - goto end_of_function; - } - /* ROTATION_ROLL_180_YAW_90 */ - temp = *X; - *X = *Y; - *Y = temp; - *Z = -*Z; - -end_of_function: - - return returnBool; -} - - -boolean MPU9250_Custom_Max_Events_Not_Reached(int32 ind) -{ - if ((ind < CFE_EVS_MAX_EVENT_FILTERS) && (ind > 0)) - { - return TRUE; - } - else - { - return FALSE; - } -} - - -int32 MPU9250_Custom_Init_EventFilters(int32 ind, CFE_EVS_BinFilter_t *EventTbl) -{ - int32 customEventCount = ind; - - /* Null check */ - if(0 == EventTbl) - { - customEventCount = -1; - goto end_of_function; - } - - if(TRUE == MPU9250_Custom_Max_Events_Not_Reached(customEventCount)) - { - EventTbl[ customEventCount].EventID = MPU9250_DEVICE_ERR_EID; - EventTbl[customEventCount++].Mask = CFE_EVS_FIRST_16_STOP; - } - else - { - customEventCount = -1; - goto end_of_function; - } - -end_of_function: - - return customEventCount; -} - - -void MPU9250_Get_Rotation(uint8 *Rotation) -{ - - /* Null pointer check */ - if(0 == Rotation) - { - CFE_EVS_SendEvent(MPU9250_DEVICE_ERR_EID, CFE_EVS_ERROR, - "MPU9250 Get_Rotation Null Pointer"); - goto end_of_function; - } - - /* TODO move to a table */ - *Rotation = ROTATION_ROLL_180_YAW_90; - -end_of_function: -; -} diff --git a/config/obc/ppd/target/apps/mpu9250/src/mpu9250_spi.h b/config/obc/ppd/target/apps/mpu9250/src/mpu9250_spi.h deleted file mode 100644 index 0f4feda85..000000000 --- a/config/obc/ppd/target/apps/mpu9250/src/mpu9250_spi.h +++ /dev/null @@ -1,421 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ - -#ifndef MPU9250_SPI_H -#define MPU9250_SPI_H -/************************************************************************ -** Includes -*************************************************************************/ -#include "mpu9250_custom.h" -#include "cfe.h" - -/************************************************************************ -** Local Defines -*************************************************************************/ -/* MPU 9250 register map for Gyroscope and Accelerometer */ -/* Self test output generated during manufacturing tests. */ -/** \brief Factory self test output for gyro X-axis.*/ -#define MPU9250_REG_GYRO_X_TEST (0x00) -/** \brief Factory self test output for gyro Y-axis.*/ -#define MPU9250_REG_GYRO_Y_TEST (0x01) -/** \brief Factory self test output for gyro Z-axis.*/ -#define MPU9250_REG_GYRO_Z_TEST (0x02) -/** \brief Factory self test output for accelerometer X-axis.*/ -#define MPU9250_REG_ACCEL_X_TEST (0x0D) -/** \brief Factory self test output for accelerometer Y-axis.*/ -#define MPU9250_REG_ACCEL_Y_TEST (0x0E) -/** \brief Factory self test output for accelerometer Z-axis.*/ -#define MPU9250_REG_ACCEL_Z_TEST (0x0F) -/* Registers used to remove DC bias from the gyro sensor data output for - * X, Y, and Z axes. Values are subtracted from the gyro sensor values - * before going into the sensor registers. */ -/** \brief High byte [15:8], offset X-axis. */ -#define MPU9250_REG_GYRO_X_OFF_H (0x13) -/** \brief Low byte [7:0], offset X-axis. */ -#define MPU9250_REG_GYRO_X_OFF_L (0x14) -/** \brief High byte [15:8], offset Y-axis. */ -#define MPU9250_REG_GYRO_Y_OFF_H (0x15) -/** \brief Low byte [7:0], offset Y-axis. */ -#define MPU9250_REG_GYRO_Y_OFF_L (0x16) -/** \brief High byte [15:8], offset Z-axis. */ -#define MPU9250_REG_GYRO_Z_OFF_H (0x17) -/** \brief Low byte [7:0], offset Z-axis. */ -#define MPU9250_REG_GYRO_Z_OFF_L (0x18) -/* Divides the internal sample rate to generate the sample rate that - * controls sensor data output rate. Only effective when Fchoice = 2'b11 - * such that the average filter's output is selected. */ -/** \brief Sample rate divisor. */ -#define MPU9250_REG_SMPLRT_DIV (0x19) -/** \brief Configuration. */ -#define MPU9250_REG_CONFIG (0x1A) -/** \brief Gyroscope configuration. */ -#define MPU9250_REG_GYRO_CONFIG (0x1B) -/** \brief Accelerometer configuration 1. */ -#define MPU9250_REG_ACCEL_CONFIG (0x1C) -/** \brief Accelerometer configuration 2. */ -#define MPU9250_REG_ACCEL_CONFIG2 (0x1D) -/** \brief Low Power Accelerometer Output Data Rate (ODR) Control. */ -#define MPU9250_REG_LPACCEL_ODR (0x1E) -/** \brief Wake-on Motion Threshold. */ -#define MPU9250_REG_WOM_THRESH (0x1F) -/** \brief FIFO Enable. */ -#define MPU9250_REG_FIFO_EN (0x23) -/** \brief I2C Master Control. */ -#define MPU9250_REG_I2C_MST_CTRL (0x24) -/** \brief I2C Slave 0 Address. */ -#define MPU9250_REG_I2C_SLV0_ADDR (0x25) -/** \brief I2C Slave 0 Register. */ -#define MPU9250_REG_I2C_SLV0_REG (0x26) -/** \brief I2C Slave 0 Control. */ -#define MPU9250_REG_I2C_SLV0_CTRL (0x27) -/** \brief I2C Slave 1 Address. */ -#define MPU9250_REG_I2C_SLV1_ADDR (0x28) -/** \brief I2C Slave 1 Registers. */ -#define MPU9250_REG_I2C_SLV1_REG (0x29) -/** \brief I2C Slave 1 Control. */ -#define MPU9250_REG_I2C_SLV1_CTRL (0x2A) -/** \brief I2C Slave 2 Address. */ -#define MPU9250_REG_I2C_SLV2_ADDR (0x2B) -/** \brief I2C Slave 2 Registers. */ -#define MPU9250_REG_I2C_SLV2_REG (0x2C) -/** \brief I2C Slave 2 Control. */ -#define MPU9250_REG_I2C_SLV2_CTRL (0x2D) -/** \brief I2C Slave 3 Address. */ -#define MPU9250_REG_I2C_SLV3_ADDR (0x2E) -/** \brief I2C Slave 3 Registers. */ -#define MPU9250_REG_I2C_SLV3_REG (0x2F) -/** \brief I2C Slave 3 Control. */ -#define MPU9250_REG_I2C_SLV3_CTRL (0x30) -/** \brief I2C Slave 4 Address. */ -#define MPU9250_REG_I2C_SLV4_ADDR (0x31) -/** \brief I2C Slave 4 Registers. */ -#define MPU9250_REG_I2C_SLV4_REG (0x32) -/** \brief I2C Data out, Data to be written to I2C Slave 4. */ -#define MPU9250_REG_I2C_SLV4_DO (0x33) -/** \brief I2C Slave 4 Control. */ -#define MPU9250_REG_I2C_SLV4_CTRL (0x34) -/** \brief I2C Data in, Data to be read from I2C Slave 4. */ -#define MPU9250_REG_I2C_SLV4_DI (0x35) -/** \brief I2C Master Status. */ -#define MPU9250_REG_I2C_MST_STATUS (0x36) -/** \brief Interrupt Pin / Bypass Enable Configuration. */ -#define MPU9250_REG_INT_PIN_CFG (0x37) -/** \brief Interrupt Enable. */ -#define MPU9250_REG_INT_ENABLE (0x38) -/** \brief Interrupt Status. */ -#define MPU9250_REG_INT_STATUS (0x3A) -/** \brief High byte accelerometer measurement X-axis. */ -#define MPU9250_REG_ACCEL_XOUT_H (0x3B) -/** \brief Low byte accelerometer measurement X-axis. */ -#define MPU9250_REG_ACCEL_XOUT_L (0x3C) -/** \brief High byte accelerometer measurement Y-axis. */ -#define MPU9250_REG_ACCEL_YOUT_H (0x3D) -/** \brief Low byte accelerometer measurement Y-axis. */ -#define MPU9250_REG_ACCEL_YOUT_L (0x3E) -/** \brief High byte accelerometer measurement Z-axis. */ -#define MPU9250_REG_ACCEL_ZOUT_H (0x3F) -/** \brief Low byte accelerometer measurement Z-axis. */ -#define MPU9250_REG_ACCEL_ZOUT_L (0x40) -/** \brief High byte temperature measurement. */ -#define MPU9250_REG_TEMP_OUT_H (0x41) -/** \brief Low byte temperature measurement. */ -#define MPU9250_REG_TEMP_OUT_L (0x42) -/** \brief High byte gyroscope measurement X-axis. */ -#define MPU9250_REG_GYRO_XOUT_H (0x43) -/** \brief Low byte gyroscope measurement X-axis. */ -#define MPU9250_REG_GYRO_XOUT_L (0x44) -/** \brief High byte gyroscope measurement Y-axis. */ -#define MPU9250_REG_GYRO_YOUT_H (0x45) -/** \brief Low byte gyroscope measurement Y-axis. */ -#define MPU9250_REG_GYRO_YOUT_L (0x46) -/** \brief High byte gyroscope measurement Z-axis. */ -#define MPU9250_REG_GYRO_ZOUT_H (0x47) -/** \brief Low byte gyroscope measurement Z-axis. */ -#define MPU9250_REG_GYRO_ZOUT_L (0x48) -/** \brief External sensor data 0 */ -#define MPU9250_REG_EXT_SENS_DATA_00 (0x49) -/** \brief External sensor data 1 */ -#define MPU9250_REG_EXT_SENS_DATA_01 (0x4A) -/** \brief External sensor data 2 */ -#define MPU9250_REG_EXT_SENS_DATA_02 (0x4B) -/** \brief I2C Data out, Data to be written to I2C Slave 0. */ -#define MPU9250_REG_I2C_SLV0_DO (0x63) -/** \brief I2C Data out, Data to be written to I2C Slave 1. */ -#define MPU9250_REG_I2C_SLV1_DO (0x64) -/** \brief I2C Data out, Data to be written to I2C Slave 2. */ -#define MPU9250_REG_I2C_SLV2_DO (0x65) -/** \brief I2C Data out, Data to be written to I2C Slave 3. */ -#define MPU9250_REG_I2C_SLV3_DO (0x66) -/** \brief I2C Master Delay Control. */ -#define MPU9250_REG_I2C_MST_DELAY_CTRL (0x67) -/** \brief Digital signal path reset. */ -#define MPU9250_REG_SIGNAL_PATH_RESET (0x68) -/** \brief Accelerometer interrupt control. */ -#define MPU9250_REG_MOT_DETECT_CTRL (0x69) -/** \brief User control. */ -#define MPU9250_REG_USER_CTRL (0x6A) -/** \brief Power management 1. */ -#define MPU9250_REG_PWR_MGMT_1 (0x6B) -/** \brief Power management 2. */ -#define MPU9250_REG_PWR_MGMT_2 (0x6C) -/** \brief High bits, number of written bytes in FIFO. */ -#define MPU9250_REG_FIFO_COUNTH (0x72) -/** \brief Low bits, number of written bytes in FIFO. */ -#define MPU9250_REG_FIFO_COUNTL (0x73) -/** \brief FIFO read/write command. */ -#define MPU9250_REG_FIFO_R_W (0x74) -/** \brief Indicate to user which device is being accessed. */ -#define MPU9250_REG_WHOAMI (0x75) - -/* Configuration bits mpu9250 */ -/** \brief Power Management 1 sleep bit. */ -#define MPU9250_BIT_SLEEP (0x40) -/** \brief Power Management 1 hardware reset bit. */ -#define MPU9250_BIT_H_RESET (0x80) -/** \brief Power Management 1 clock select bit. */ -#define MPU9250_BITS_CLKSEL (0x07) - -#define MPU9250_MPU_CLK_SEL_PLLGYROX (0x01) -#define MPU9250_MPU_CLK_SEL_PLLGYROZ (0x03) -#define MPU9250_MPU_EXT_SYNC_GYROX (0x02) -/** \brief Gyro Full Scale Select bit 250 DPS. */ -#define MPU9250_BITS_FS_250DPS (0x00) -/** \brief Gyro Full Scale Select bit 500 DPS. */ -#define MPU9250_BITS_FS_500DPS (0x08) -/** \brief Gyro Full Scale Select bit 1000 DPS. */ -#define MPU9250_BITS_FS_1000DPS (0x10) -/** \brief Gyro Full Scale Select bit 2000 DPS. */ -#define MPU9250_BITS_FS_2000DPS (0x18) -/** \brief Accel Full Scale Select bit 2G. */ -#define MPU9250_BITS_FS_2G (0x00) -/** \brief Accel Full Scale Select bit 4G. */ -#define MPU9250_BITS_FS_4G (0x08) -/** \brief Accel Full Scale Select bit 8G. */ -#define MPU9250_BITS_FS_8G (0x10) -/** \brief Accel Full Scale Select bit 16G. */ -#define MPU9250_BITS_FS_16G (0x18) -/** \brief Digital Low Pass Filter Configuration bit 250Hz. */ -#define MPU9250_BITS_FS_MASK (0x18) -#define MPU9250_BITS_DLPF_CFG_250HZ (0x00) -/** \brief Digital Low Pass Filter Configuration bit 184Hz. */ -#define MPU9250_BITS_DLPF_CFG_184HZ (0x01) -/** \brief Digital Low Pass Filter Configuration bit 92Hz. */ -#define MPU9250_BITS_DLPF_CFG_92HZ (0x02) -/** \brief Digital Low Pass Filter Configuration bit 41Hz. */ -#define MPU9250_BITS_DLPF_CFG_41HZ (0x03) -/** \brief Digital Low Pass Filter Configuration bit 20Hz. */ -#define MPU9250_BITS_DLPF_CFG_20HZ (0x04) -/** \brief Digital Low Pass Filter Configuration bit 10Hz. */ -#define MPU9250_BITS_DLPF_CFG_10HZ (0x05) -/** \brief Digital Low Pass Filter Configuration bit 5Hz. */ -#define MPU9250_BITS_DLPF_CFG_5HZ (0x06) -/** \brief Digital Low Pass Filter Configuration bit 3600Hz. */ -#define MPU9250_BITS_DLPF_CFG_3600HZ (0x07) -#define MPU9250_BITS_DLPF_CFG_MASK (0x07) -/** \brief Interrupt status cleared configuration bit. */ -#define MPU9250_BIT_INT_ANYRD_2CLEAR (0x10) -/** \brief Enable raw sensor data ready interrupt to pin bit. */ -#define MPU9250_BIT_RAW_RDY_EN (0x01) -/** \brief Reset I2C slave and set interface to SPI mode only. */ -#define MPU9250_BIT_I2C_IF_DIS (0x10) - -#define MPU9250_READ_FLAG (0x80) -#define MPU9250_BIT_RAW_RDY_EN (0x01) -#define MPU9250_BIT_INT_ANYRD_2CLEAR (0x10) -/** \brief The default value of the MPU9250 device ID. */ -#define MPU9250_WHOAMI_9250 (0x71) -/** \brief The I2C address of the Magnetometer. */ -#define MPU9250_AK8963_I2C_ADDR (0x0c) -/** \brief The default value of the AK8963 device ID. */ -#define MPU9250_AK8963_Device_ID (0x48) - -/* AK8963 Register map for the Magnetometer */ -/* Read-only registers */ -/** \brief Device ID. */ -#define MPU9250_AK8963_WIA (0x00) -/** \brief Device information. */ -#define MPU9250_AK8963_INFO (0x01) -/** \brief Status 1. */ -#define MPU9250_AK8963_ST1 (0x02) -/** \brief Measurement data X-axis lower 8-bits */ -#define MPU9250_AK8963_HXL (0x03) -/** \brief Measurement data X-axis upper 8-bits */ -#define MPU9250_AK8963_HXH (0x04) -/** \brief Measurement data Y-axis lower 8-bits */ -#define MPU9250_AK8963_HYL (0x05) -/** \brief Measurement data Y-axis upper 8-bits */ -#define MPU9250_AK8963_HYH (0x06) -/** \brief Measurement data Z-axis lower 8-bits */ -#define MPU9250_AK8963_HZL (0x07) -/** \brief Measurement data Z-axis upper 8-bits */ -#define MPU9250_AK8963_HZH (0x08) -/** \brief Status 2. */ -#define MPU9250_AK8963_ST2 (0x09) -/* Write/Read registers */ -/** \brief Control 1. */ -#define MPU9250_AK8963_CNTL1 (0x0A) -/** \brief Control 2. */ -#define MPU9250_AK8963_CNTL2 (0x0B) -/** \brief Self-test control. */ -#define MPU9250_AK8963_ASTC (0x0C) -//#define MPU9250_AK8963_TS1 (0x0D) -//#define MPU9250_AK8963_TS2 (0x0E) -/** \brief I2C disable. */ -#define MPU9250_AK8963_I2CDIS (0x0F) -/* Read-only registers (ROM) */ -/** \brief Sensitivity adjustment value X-axis. */ -#define MPU9250_AK8963_ASAX (0x10) -/** \brief Sensitivity adjustment value Y-axis. */ -#define MPU9250_AK8963_ASAY (0x11) -/** \brief Sensitivity adjustment value Z-axis. */ -#define MPU9250_AK8963_ASAZ (0x12) - -/* Masks Mag */ -/** \brief Data ready. */ -#define MPU9250_ST1_DRDY_MASK (0x01) -/** \brief Data overrun. */ -#define MPU9250_ST1_DOR_MASK (0x02) -/** \brief Output bit setting (mirror). */ -#define MPU9250_ST2_BITM_MASK (0x10) -/** \brief Magnetic sensor overflow. */ -#define MPU9250_ST2_HOFL_MASK (0x08) -/** \brief AK8963 fuse ROM access mode. */ -#define MPU9250_AK8963_FUSE_MODE (0x0F) -/** \brief AK8963 continues measurement mode 1 */ -#define MPU9250_AK8963_MEA1_MODE (0x02) -/** \brief AK8963 output bit setting. */ -#define MPU9250_AK8963_16BIT_ADC (0x10) - -/* Masks IMU */ -/** \brief Data ready. */ -#define MPU9250_ST_INT_RDY_MASK (0x01) -/** \brief Fsync interrupt occurred. */ -#define MPU9250_ST_INT_FSYNC_MASK (0x04) -/** \brief Fifo overflow interrupt occurred. */ -#define MPU9250_ST_INT_FIFO_OFL_MASK (0x05) -/** \brief Wake on motion interrupt occurred. */ -#define MPU9250_ST_INT_WOM_MASK (0x07) - -/** \brief Array initializer. */ -#define MPU_InitRegNum (20) -/** \brief Array initializer 2. */ -/** \brief Stop between slave reads. */ -#define MPU9250_I2C_MST_P_NSR (0x10) -/** \brief Delay data ready int until external sensor data is loaded. */ -#define MPU9250_I2C_MST_WAIT_FOR_ES (0x40) -/** \brief I2C master clock speed */ -#define MPU9250_I2C_MST_CLOCK_400HZ (0x0D) - -#define MPU9250_DEFAULT_LOWPASS_FILTER MPU9250_BITS_DLPF_CFG_250HZ - -/** \brief Retry attemps for interrupted ioctl calls. -** -** \par Limits: -** None. -*/ -#define MPU9250_MAX_RETRY_ATTEMPTS (2) - -/** \brief Sleep time micro seconds for interrupted calls. -** -** \par Limits: -** None. -*/ -#define MPU9250_MAX_RETRY_SLEEP_USEC (10) - -#define MPU9250_SPI_DEVICE_PATH "/dev/spidev1.0" -#define MPU9250_SPI_DEVICE_MODE (3) -#define MPU9250_SPI_DEVICE_BITS (8) -#define MPU9250_SPI_DEVICE_SPEED (1000000) -#define MPU9250_SPI_TX_DELAY (0) -#define MPU9250_SPI_RX_DELAY (0) - -/************************************************************************ -** Structure Declarations -*************************************************************************/ -/** - * \brief MPU9250 device status - */ -typedef enum -{ - /*! MPU9250 status uninitialized */ - MPU9250_CUSTOM_UNINITIALIZED = 0, - /*! MPU9250 status initialized */ - MPU9250_CUSTOM_INITIALIZED = 1 -} MPU9250_Custom_Status_t; - - -typedef struct -{ - /*! Device file descriptor */ - int DeviceFd; - /*! The current device status */ - MPU9250_Custom_Status_t Status; - uint8 MagAdjX; - uint8 MagAdjY; - uint8 MagAdjZ; -} MPU9250_AppCustomData_t; - - -/************************************************************************ -** External Global Variables -*************************************************************************/ - -/************************************************************************ -** Function Prototypes -*************************************************************************/ - -/************************************************************************/ -/** \brief ioctl with limited EINTR retry attempts. -** -** \par Description -** This function is a wrapper for ioctl with retry attempts added. -** -** \param [in] fh file descriptor. -** \param [in] request code. -** \param [in] arg pointer to a device specific struct. -** -** \returns -** usually 0 for success and -1 for failure, see ioctl man-page for -** more info. -** \endreturns -** -*************************************************************************/ -int32 MPU9250_Ioctl(int fh, int request, void *arg); - - -int32 MPU9250_ResetDevice(void); -boolean MPU9250_WriteReg(uint8 Addr, uint8 Data); -boolean MPU9250_Custom_Max_Events_Not_Reached(int32 ind); - - -#endif /* MPU9250_SPI_H */ diff --git a/config/obc/ppd/target/apps/mpu9250/tables/mpu9250_config.c b/config/obc/ppd/target/apps/mpu9250/tables/mpu9250_config.c deleted file mode 100644 index 5a57a3f2f..000000000 --- a/config/obc/ppd/target/apps/mpu9250/tables/mpu9250_config.c +++ /dev/null @@ -1,93 +0,0 @@ -/* -** Pragmas -*/ - -/* -** Include Files -*/ -#include "cfe_tbl_filedef.h" -#include "mpu9250_tbldefs.h" - -/* -** Local Defines -*/ - -/* -** Local Structure Declarations -*/ -static OS_USED CFE_TBL_FileDef_t CFE_TBL_FileDef = -{ - /* Content format: ObjName[64], TblName[38], Desc[32], TgtFileName[20], ObjSize - ** ObjName - variable name of config table, e.g., CI_ConfigDefTbl[] - ** TblName - app's table name, e.g., CI.CONFIG_TBL, where CI is the same app name - ** used in cfe_es_startup.scr, and CI_defConfigTbl is the same table - ** name passed in to CFE_TBL_Register() - ** Desc - description of table in string format - ** TgtFileName[20] - table file name, compiled as .tbl file extension - ** ObjSize - size of the entire table - */ - - "MPU9250_ConfigTbl", "MPU9250.CONFIG_TBL", "MPU9250 default config table", - "mpu9250_config.tbl", (sizeof(MPU9250_ConfigTbl_t)) -}; - -/* -** External Global Variables -*/ - -/* -** Global Variables -*/ - -/* Default MPU9250 config table data */ -MPU9250_ConfigTbl_t MPU9250_ConfigTbl = -{ - /* User calibration params */ - /* AccXScale */ - 1.002831101417541504f, - /* AccYScale */ - 1.003104090690612793f, - /* AccZScale */ - 0.992766380310058594f, - /* AccXOffset */ - 0.358827590942382813f, - /* AccYOffset */ - -0.148477077484130859f, - /* AccZOffset */ - -0.022399425506591797f, - /* GyroXScale */ - 1.0f, - /* GyroYScale */ - 1.0f, - /* GyroZScale */ - 1.0f, - /* GyroXOffset */ - 0.022997194901108742f, - /* GyroYOffset */ - -0.002372120507061481f, - /* GyroZOffset */ - -0.005926270503550768f - /* MagXScale */ - /* MagYScale */ - /* MagZScale */ - /* MagXOffset */ - /* MagYOffset */ - /* MagZOffset */ -}; - -/* -** Local Variables -*/ - -/* -** Function Prototypes -*/ - -/* -** Function Definitions -*/ - -/*======================================================================================= -** End of file mpu9250_config.c -**=====================================================================================*/ - diff --git a/config/obc/ppd/target/apps/mpu9250/tables/mpu9250_config_default.c b/config/obc/ppd/target/apps/mpu9250/tables/mpu9250_config_default.c deleted file mode 100644 index 4f2aa021f..000000000 --- a/config/obc/ppd/target/apps/mpu9250/tables/mpu9250_config_default.c +++ /dev/null @@ -1,93 +0,0 @@ -/* -** Pragmas -*/ - -/* -** Include Files -*/ -#include "cfe_tbl_filedef.h" -#include "mpu9250_tbldefs.h" - -/* -** Local Defines -*/ - -/* -** Local Structure Declarations -*/ -static OS_USED CFE_TBL_FileDef_t CFE_TBL_FileDef = -{ - /* Content format: ObjName[64], TblName[38], Desc[32], TgtFileName[20], ObjSize - ** ObjName - variable name of config table, e.g., CI_ConfigDefTbl[] - ** TblName - app's table name, e.g., CI.CONFIG_TBL, where CI is the same app name - ** used in cfe_es_startup.scr, and CI_defConfigTbl is the same table - ** name passed in to CFE_TBL_Register() - ** Desc - description of table in string format - ** TgtFileName[20] - table file name, compiled as .tbl file extension - ** ObjSize - size of the entire table - */ - - "MPU9250_ConfigTbl", "MPU9250.CONFIG_TBL", "MPU9250 default config table", - "mpu9250_config.tbl", (sizeof(MPU9250_ConfigTbl_t)) -}; - -/* -** External Global Variables -*/ - -/* -** Global Variables -*/ - -/* Default MPU9250 config table data */ -MPU9250_ConfigTbl_t MPU9250_ConfigTbl = -{ - /* User calibration params */ - /* AccXScale */ - 1.0f, - /* AccYScale */ - 1.0f, - /* AccZScale */ - 1.0f, - /* AccXOffset */ - 0.0f, - /* AccYOffset */ - 0.0f, - /* AccZOffset */ - 0.0f, - /* GyroXScale */ - 1.0f, - /* GyroYScale */ - 1.0f, - /* GyroZScale */ - 1.0f, - /* GyroXOffset */ - 0.0f, - /* GyroYOffset */ - 0.0f, - /* GyroZOffset */ - 0.0f - /* MagXScale */ - /* MagYScale */ - /* MagZScale */ - /* MagXOffset */ - /* MagYOffset */ - /* MagZOffset */ -}; - -/* -** Local Variables -*/ - -/* -** Function Prototypes -*/ - -/* -** Function Definitions -*/ - -/*======================================================================================= -** End of file mpu9250_config.c -**=====================================================================================*/ - diff --git a/config/obc/ppd/target/apps/mpu9250/tables/mpu9250_config_main_vehicle.c b/config/obc/ppd/target/apps/mpu9250/tables/mpu9250_config_main_vehicle.c deleted file mode 100644 index 5a57a3f2f..000000000 --- a/config/obc/ppd/target/apps/mpu9250/tables/mpu9250_config_main_vehicle.c +++ /dev/null @@ -1,93 +0,0 @@ -/* -** Pragmas -*/ - -/* -** Include Files -*/ -#include "cfe_tbl_filedef.h" -#include "mpu9250_tbldefs.h" - -/* -** Local Defines -*/ - -/* -** Local Structure Declarations -*/ -static OS_USED CFE_TBL_FileDef_t CFE_TBL_FileDef = -{ - /* Content format: ObjName[64], TblName[38], Desc[32], TgtFileName[20], ObjSize - ** ObjName - variable name of config table, e.g., CI_ConfigDefTbl[] - ** TblName - app's table name, e.g., CI.CONFIG_TBL, where CI is the same app name - ** used in cfe_es_startup.scr, and CI_defConfigTbl is the same table - ** name passed in to CFE_TBL_Register() - ** Desc - description of table in string format - ** TgtFileName[20] - table file name, compiled as .tbl file extension - ** ObjSize - size of the entire table - */ - - "MPU9250_ConfigTbl", "MPU9250.CONFIG_TBL", "MPU9250 default config table", - "mpu9250_config.tbl", (sizeof(MPU9250_ConfigTbl_t)) -}; - -/* -** External Global Variables -*/ - -/* -** Global Variables -*/ - -/* Default MPU9250 config table data */ -MPU9250_ConfigTbl_t MPU9250_ConfigTbl = -{ - /* User calibration params */ - /* AccXScale */ - 1.002831101417541504f, - /* AccYScale */ - 1.003104090690612793f, - /* AccZScale */ - 0.992766380310058594f, - /* AccXOffset */ - 0.358827590942382813f, - /* AccYOffset */ - -0.148477077484130859f, - /* AccZOffset */ - -0.022399425506591797f, - /* GyroXScale */ - 1.0f, - /* GyroYScale */ - 1.0f, - /* GyroZScale */ - 1.0f, - /* GyroXOffset */ - 0.022997194901108742f, - /* GyroYOffset */ - -0.002372120507061481f, - /* GyroZOffset */ - -0.005926270503550768f - /* MagXScale */ - /* MagYScale */ - /* MagZScale */ - /* MagXOffset */ - /* MagYOffset */ - /* MagZOffset */ -}; - -/* -** Local Variables -*/ - -/* -** Function Prototypes -*/ - -/* -** Function Definitions -*/ - -/*======================================================================================= -** End of file mpu9250_config.c -**=====================================================================================*/ - diff --git a/config/obc/ppd/target/apps/ms5611/CMakeLists.txt b/config/obc/ppd/target/apps/ms5611/CMakeLists.txt deleted file mode 100644 index 4370ae1aa..000000000 --- a/config/obc/ppd/target/apps/ms5611/CMakeLists.txt +++ /dev/null @@ -1,40 +0,0 @@ -############################################################################# -# -# Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions -# are met: -# -# 1. Redistributions of source code must retain the above copyright -# notice, this list of conditions and the following disclaimer. -# 2. Redistributions in binary form must reproduce the above copyright -# notice, this list of conditions and the following disclaimer in -# the documentation and/or other materials provided with the -# distribution. -# 3. Neither the name Windhover Labs nor the names of its -# contributors may be used to endorse or promote products derived -# from this software without specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -# COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -# OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -# AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -# POSSIBILITY OF SUCH DAMAGE. -# -############################################################################# -set(APP_NAME ms5611) - -buildliner_add_table( - ${APP_NAME} - NAME ms5611_config - SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/tables/ms5611_config.c -) - diff --git a/config/obc/ppd/target/apps/ms5611/src/CMakeLists.txt b/config/obc/ppd/target/apps/ms5611/src/CMakeLists.txt deleted file mode 100644 index 2d1387c72..000000000 --- a/config/obc/ppd/target/apps/ms5611/src/CMakeLists.txt +++ /dev/null @@ -1,37 +0,0 @@ -############################################################################# -# -# Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions -# are met: -# -# 1. Redistributions of source code must retain the above copyright -# notice, this list of conditions and the following disclaimer. -# 2. Redistributions in binary form must reproduce the above copyright -# notice, this list of conditions and the following disclaimer in -# the documentation and/or other materials provided with the -# distribution. -# 3. Neither the name Windhover Labs nor the names of its -# contributors may be used to endorse or promote products derived -# from this software without specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -# COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -# OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -# AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -# POSSIBILITY OF SUCH DAMAGE. -# -############################################################################# -# Set source for custom code. -set(APP_CUSTOM_SRC - ${CMAKE_CURRENT_SOURCE_DIR}/ms5611_custom.c - PARENT_SCOPE - ) diff --git a/config/obc/ppd/target/apps/ms5611/src/ms5611_custom.c b/config/obc/ppd/target/apps/ms5611/src/ms5611_custom.c deleted file mode 100644 index 3d95f746d..000000000 --- a/config/obc/ppd/target/apps/ms5611/src/ms5611_custom.c +++ /dev/null @@ -1,467 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ -/************************************************************************ -** Pragmas -*************************************************************************/ - -/************************************************************************ -** Includes -*************************************************************************/ -#include "cfe.h" -#include "ms5611_spi.h" -#include "ms5611_events.h" -#include "ms5611_perfids.h" -#include -#include -#include -#include -#include -#include -#include -#include - -/************************************************************************ -** Local Defines -*************************************************************************/ - -/************************************************************************ -** Local Structure Declarations -*************************************************************************/ -typedef enum -{ -/** \brief 'MS5611 - ' -** \event 'MS5611 - ' -** -** \par Type: ERROR -** -** \par Cause: -** -** This event message is issued when a device resource encounters an -** error. -** -*/ - MS5611_DEVICE_ERR_EID = MS5611_EVT_CNT, - -/** \brief Number of custom events -** -** \par Limits: -** int32 -*/ - MS5611_CUSTOM_EVT_CNT -} MS5611_CustomEventIds_t; - - -/************************************************************************ -** External Global Variables -*************************************************************************/ - -/************************************************************************ -** Global Variables -*************************************************************************/ -MS5611_AppCustomData_t MS5611_AppCustomData; -struct spi_ioc_transfer MS5611_SPI_Xfer[2]; - -/************************************************************************ -** Local Variables -*************************************************************************/ - -/************************************************************************ -** Local Function Definitions -*************************************************************************/ -int32 MS5611_Ioctl(int fh, int request, void *arg) -{ - int32 returnCode = 0; - uint32 i = 0; - - for (i=0; i < MS5611_MAX_RETRY_ATTEMPTS; i++) - { - returnCode = ioctl(fh, request, arg); - - if (-1 == returnCode && EINTR == errno) - { - usleep(MS5611_MAX_RETRY_SLEEP_USEC); - } - else - { - break; - } - } - - return (returnCode); -} - - -void MS5611_Custom_InitData(void) -{ - /* Set all struct zero values */ - bzero(&MS5611_AppCustomData, sizeof(MS5611_AppCustomData)); -} - - -boolean MS5611_Custom_Init() -{ - boolean returnBool = TRUE; - int ret = 0; - int i = 0; - int8 mode = MS5611_SPI_DEVICE_MODE; - int8 bits = MS5611_SPI_DEVICE_BITS; - uint32 speed = MS5611_SPI_DEVICE_SPEED; - - MS5611_AppCustomData.DeviceFd = open(MS5611_SPI_DEVICE_PATH, O_RDWR); - if (MS5611_AppCustomData.DeviceFd < 0) - { - (void) CFE_EVS_SendEvent(MS5611_DEVICE_ERR_EID, CFE_EVS_ERROR, - "MS5611 Device open errno: %i", errno); - returnBool = FALSE; - goto end_of_function; - } - - ret = MS5611_Ioctl(MS5611_AppCustomData.DeviceFd, SPI_IOC_WR_MODE, &mode); - if (-1 == ret) - { - (void) CFE_EVS_SendEvent(MS5611_DEVICE_ERR_EID, CFE_EVS_ERROR, - "Can't set SPI mode."); - returnBool = FALSE; - goto end_of_function; - } - - ret = MS5611_Ioctl(MS5611_AppCustomData.DeviceFd, SPI_IOC_RD_MODE, &mode); - if (-1 == ret) - { - (void) CFE_EVS_SendEvent(MS5611_DEVICE_ERR_EID, CFE_EVS_ERROR, - "Can't get SPI mode."); - returnBool = FALSE; - goto end_of_function; - } - - ret = MS5611_Ioctl(MS5611_AppCustomData.DeviceFd, SPI_IOC_WR_BITS_PER_WORD, &bits); - if (-1 == ret) - { - (void) CFE_EVS_SendEvent(MS5611_DEVICE_ERR_EID, CFE_EVS_ERROR, - "Can't set bits per word."); - returnBool = FALSE; - goto end_of_function; - } - - ret = MS5611_Ioctl(MS5611_AppCustomData.DeviceFd, SPI_IOC_RD_BITS_PER_WORD, &bits); - if (-1 == ret) - { - (void) CFE_EVS_SendEvent(MS5611_DEVICE_ERR_EID, CFE_EVS_ERROR, - "Can't get bits per word."); - returnBool = FALSE; - goto end_of_function; - } - - ret = MS5611_Ioctl(MS5611_AppCustomData.DeviceFd, SPI_IOC_WR_MAX_SPEED_HZ, &speed); - if (-1 == ret) - { - (void) CFE_EVS_SendEvent(MS5611_DEVICE_ERR_EID, CFE_EVS_ERROR, - "Can't set max speed."); - returnBool = FALSE; - goto end_of_function; - } - - ret = MS5611_Ioctl(MS5611_AppCustomData.DeviceFd, SPI_IOC_RD_MAX_SPEED_HZ, &speed); - if (-1 == ret) - { - (void) CFE_EVS_SendEvent(MS5611_DEVICE_ERR_EID, CFE_EVS_ERROR, - "Can't get max speed."); - returnBool = FALSE; - goto end_of_function; - } - - /* Keep CS activated */ - MS5611_SPI_Xfer[0].cs_change = 0; - MS5611_SPI_Xfer[0].delay_usecs = 0; - MS5611_SPI_Xfer[0].speed_hz = speed; - MS5611_SPI_Xfer[0].bits_per_word = 8; - - ret = MS5611_ResetDevice(); - if (-1 == ret) - { - (void) CFE_EVS_SendEvent(MS5611_DEVICE_ERR_EID, CFE_EVS_ERROR, - "Reset device failed."); - returnBool = FALSE; - goto end_of_function; - } - - MS5611_AppCustomData.Status = MS5611_CUSTOM_INITIALIZED; - -end_of_function: - return (returnBool); -} - - -boolean MS5611_Custom_Uninit(void) -{ - boolean returnBool = TRUE; - int returnCode = 0; - - returnCode = close(MS5611_AppCustomData.DeviceFd); - if (-1 == returnCode) - { - (void) CFE_EVS_SendEvent(MS5611_DEVICE_ERR_EID, CFE_EVS_ERROR, - "MS5611 Device close errno: %i", errno); - returnBool = FALSE; - } - else - { - MS5611_AppCustomData.Status = MS5611_CUSTOM_UNINITIALIZED; - } - return (returnBool); -} - - -void MS5611_Critical_Cleanup(void) -{ - close(MS5611_AppCustomData.DeviceFd); -} - - -int32 MS5611_ResetDevice(void) -{ - int ret = 0; - - unsigned char txBuf[2]; - unsigned char rxBuf[2]; - - memset(txBuf, 0, sizeof(txBuf)); - memset(rxBuf, 0, sizeof(rxBuf)); - txBuf[0] = MS5611_SPI_CMD_RESET; - - MS5611_SPI_Xfer[0].tx_buf = (unsigned long)txBuf; - MS5611_SPI_Xfer[0].rx_buf = (unsigned long)rxBuf; - MS5611_SPI_Xfer[0].len = 2; - - ret = MS5611_Ioctl(MS5611_AppCustomData.DeviceFd, SPI_IOC_MESSAGE(1), MS5611_SPI_Xfer); - if (-1 == ret) - { - (void) CFE_EVS_SendEvent(MS5611_DEVICE_ERR_EID, CFE_EVS_ERROR, - "MS5611 ioctl returned %i", errno); - } - else - { - usleep(100000); - } - return (ret); -} - - -boolean MS5611_ReadPROM(uint8 Addr, uint16 *returnVal) -{ - int ret = 0; - uint32 i = 0; - boolean returnBool = TRUE; - - /* Null pointer check */ - if(0 == returnVal) - { - CFE_EVS_SendEvent(MS5611_DEVICE_ERR_EID, CFE_EVS_ERROR, - "MS5611 ReadProm Null Pointer"); - returnBool = FALSE; - goto end_of_function; - } - - unsigned char txBuf[30]; - unsigned char rxBuf[30]; - - memset(txBuf, 0, sizeof(txBuf)); - memset(rxBuf, 0, sizeof(rxBuf)); - txBuf[0] = MS5611_SPI_CMD_PROM_READ_MASK + (Addr << MS5611_SPI_CMD_PROM_ADDR_SHIFT); - - MS5611_SPI_Xfer[0].tx_buf = (unsigned long)txBuf; - MS5611_SPI_Xfer[0].rx_buf = (unsigned long)rxBuf; - MS5611_SPI_Xfer[0].len = 30; - - ret = MS5611_Ioctl(MS5611_AppCustomData.DeviceFd, SPI_IOC_MESSAGE(1), MS5611_SPI_Xfer); - if (-1 == ret) - { - (void) CFE_EVS_SendEvent(MS5611_DEVICE_ERR_EID, CFE_EVS_ERROR, - "MS5611 ioctl returned %i", errno); - returnBool = FALSE; - goto end_of_function; - } - *returnVal = (rxBuf[1] << 8) + rxBuf[2]; - -end_of_function: - return (returnBool); -} - - -boolean MS5611_D1Conversion(void) -{ - int ret = 0; - int32 result = 0; - boolean returnBool = TRUE; - - unsigned char txBuf[1]; - unsigned char rxBuf[1]; - - memset(txBuf, 0, sizeof(txBuf)); - memset(rxBuf, 0, sizeof(rxBuf)); - txBuf[0] = MS5611_SPI_CMD_CONVERT_D1; - - MS5611_SPI_Xfer[0].tx_buf = (unsigned long)txBuf; - MS5611_SPI_Xfer[0].rx_buf = (unsigned long)rxBuf; - MS5611_SPI_Xfer[0].len = 1; - - ret = MS5611_Ioctl(MS5611_AppCustomData.DeviceFd, SPI_IOC_MESSAGE(1), MS5611_SPI_Xfer); - if (-1 == ret) - { - (void) CFE_EVS_SendEvent(MS5611_DEVICE_ERR_EID, CFE_EVS_ERROR, - "MS5611 ioctl returned %i", errno); - returnBool = FALSE; - } - else - { - usleep(10000); - } - return (returnBool); -} - - -boolean MS5611_D2Conversion(void) -{ - int ret = 0; - int32 result = 0; - boolean returnBool = TRUE; - - unsigned char txBuf[1]; - unsigned char rxBuf[1]; - - memset(txBuf, 0, sizeof(txBuf)); - memset(rxBuf, 0, sizeof(rxBuf)); - txBuf[0] = MS5611_SPI_CMD_CONVERT_D2; - - MS5611_SPI_Xfer[0].tx_buf = (unsigned long)txBuf; - MS5611_SPI_Xfer[0].rx_buf = (unsigned long)rxBuf; - MS5611_SPI_Xfer[0].len = 1; - - ret = MS5611_Ioctl(MS5611_AppCustomData.DeviceFd, SPI_IOC_MESSAGE(1), MS5611_SPI_Xfer); - if (-1 == ret) - { - (void) CFE_EVS_SendEvent(MS5611_DEVICE_ERR_EID, CFE_EVS_ERROR, - "MS5611 ioctl returned %i", errno); - returnBool = FALSE; - } - else - { - usleep(10000); - } - return (returnBool); -} - - -boolean MS5611_ReadADCResult(uint32 *returnVal) -{ - int ret = 0; - int32 result = 0; - uint32 i = 0; - boolean returnBool = TRUE; - - unsigned char txBuf[30]; - unsigned char rxBuf[30]; - - /* Null pointer check */ - if(0 == returnVal) - { - (void) CFE_EVS_SendEvent(MS5611_DEVICE_ERR_EID, CFE_EVS_ERROR, - "MS5611 ReadProm Null Pointer"); - returnBool = FALSE; - goto end_of_function; - } - - memset(txBuf, 0, sizeof(txBuf)); - memset(rxBuf, 0, sizeof(rxBuf)); - txBuf[0] = MS5611_SPI_CMD_ADC_READ; - - MS5611_SPI_Xfer[0].tx_buf = (unsigned long)txBuf; - MS5611_SPI_Xfer[0].rx_buf = (unsigned long)rxBuf; - MS5611_SPI_Xfer[0].len = 30; - - ret = MS5611_Ioctl(MS5611_AppCustomData.DeviceFd, SPI_IOC_MESSAGE(1), MS5611_SPI_Xfer); - if (-1 == ret) - { - (void) CFE_EVS_SendEvent(MS5611_DEVICE_ERR_EID, CFE_EVS_ERROR, - "MS5611 ioctl returned %i", errno); - returnBool = FALSE; - goto end_of_function; - } - *returnVal = (rxBuf[1] << 16) + (rxBuf[2] << 8) + rxBuf[3]; - -end_of_function: - - return (returnBool); -} - - -boolean MS5611_Custom_Max_Events_Not_Reached(int32 ind) -{ - boolean returnBool = FALSE; - - if ((ind < CFE_EVS_MAX_EVENT_FILTERS) && (ind > 0)) - { - returnBool = TRUE; - } - - return (returnBool); -} - - -int32 MS5611_Custom_Init_EventFilters(int32 ind, CFE_EVS_BinFilter_t *EventTbl) -{ - int32 customEventCount = ind; - - /* Null check */ - if(0 == EventTbl) - { - customEventCount = -1; - goto end_of_function; - } - - if(TRUE == MS5611_Custom_Max_Events_Not_Reached(customEventCount)) - { - EventTbl[ customEventCount].EventID = MS5611_DEVICE_ERR_EID; - EventTbl[customEventCount++].Mask = CFE_EVS_FIRST_16_STOP; - } - else - { - customEventCount = -1; - goto end_of_function; - } - -end_of_function: - - return (customEventCount); -} - diff --git a/config/obc/ppd/target/apps/ms5611/src/ms5611_spi.h b/config/obc/ppd/target/apps/ms5611/src/ms5611_spi.h deleted file mode 100644 index c2bdc8783..000000000 --- a/config/obc/ppd/target/apps/ms5611/src/ms5611_spi.h +++ /dev/null @@ -1,201 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ - -#ifndef MS5611_SPI_H -#define MS5611_SPI_H - -#ifdef __cplusplus -extern "C" { -#endif - -/************************************************************************ -** Includes -*************************************************************************/ -#include "ms5611_custom.h" -#include "ms5611_platform_cfg.h" -#include "cfe.h" - -/************************************************************************ -** Local Defines -*************************************************************************/ -/** \brief SPI Device path of the MS5611 */ -#define MS5611_SPI_DEVICE_PATH MS5611_DEVICE_PATH - -/** \brief SPI device mode */ -#define MS5611_SPI_DEVICE_MODE (3) - -/** \brief SPI device bits per word */ -#define MS5611_SPI_DEVICE_BITS (8) - -/** \brief SPI device speed */ -#define MS5611_SPI_DEVICE_SPEED (1000000) - -/** \brief SPI device transmit delay */ -#define MS5611_SPI_TX_DELAY (0) - -/** \brief SPI device receive delay */ -#define MS5611_SPI_RX_DELAY (0) -/* SPI Commands */ -/** \brief MS5611 command reset */ -#define MS5611_SPI_CMD_RESET (0x1e) - -/** \brief MS5611 command convert D1 (OSR=256) */ -#define MS5611_SPI_CMD_CONVERT_D1_MASK (0x40) - -/** \brief MS5611 command convert D2 (OSR=256) */ -#define MS5611_SPI_CMD_CONVERT_D2_MASK (0x50) - -/** \brief MS5611 command mask convert OSR 256 */ -#define MS5611_SPI_CMD_OSR_256_MASK (0x00) - -/** \brief MS5611 command mask convert OSR 512 */ -#define MS5611_SPI_CMD_OSR_512_MASK (0x02) - -/** \brief MS5611 command mask convert OSR 1024 */ -#define MS5611_SPI_CMD_OSR_1024_MASK (0x04) - -/** \brief MS5611 command mask convert OSR 2048 */ -#define MS5611_SPI_CMD_OSR_2048_MASK (0x06) - -/** \brief MS5611 command mask convert OSR 4096 */ -#define MS5611_SPI_CMD_OSR_4096_MASK (0x08) - -/** \brief MS5611 command ADC read */ -#define MS5611_SPI_CMD_ADC_READ (0x00) - -/** \brief MS5611 command mask PROM read */ -#define MS5611_SPI_CMD_PROM_READ_MASK (0xa0) - -/** \brief MS5611 command PROM read shift */ -#define MS5611_SPI_CMD_PROM_ADDR_SHIFT (1) - -/** \brief MS5611 command convert D1 with OSR mask */ -#define MS5611_SPI_CMD_CONVERT_D1 (MS5611_SPI_CMD_CONVERT_D1_MASK + MS5611_SPI_CMD_OSR_1024_MASK) - -/** \brief MS5611 command convert D2 with OSR mask */ -#define MS5611_SPI_CMD_CONVERT_D2 (MS5611_SPI_CMD_CONVERT_D2_MASK + MS5611_SPI_CMD_OSR_1024_MASK) - -/** \brief Retry attemps for interrupted ioctl calls. */ -#define MS5611_MAX_RETRY_ATTEMPTS (2) - -/** \brief Sleep time micro seconds for interrupted calls. */ -#define MS5611_MAX_RETRY_SLEEP_USEC (10) - - -/************************************************************************ -** Structure Declarations -*************************************************************************/ -/** - * \brief MS5611 device status - */ -typedef enum -{ - /*! status uninitialized */ - MS5611_CUSTOM_UNINITIALIZED = 0, - /*! status initialized */ - MS5611_CUSTOM_INITIALIZED = 1 -} MS5611_Custom_Status_t; - - -typedef struct -{ - /*! Device file descriptor */ - int DeviceFd; - /*! The current device status */ - MS5611_Custom_Status_t Status; -} MS5611_AppCustomData_t; - - -/************************************************************************ -** External Global Variables -*************************************************************************/ - -/************************************************************************ -** Function Prototypes -*************************************************************************/ - -/************************************************************************/ -/** \brief ioctl with limited EINTR retry attempts. -** -** \par Description -** This function is a wrapper for ioctl with retry attempts added. -** -** \param [in] fh file descriptor. -** \param [in] request code. -** \param [in] arg pointer to a device specific struct. -** -** \returns -** usually 0 for success and -1 for failure, see ioctl man-page for -** more info. -** \endreturns -** -*************************************************************************/ -int32 MS5611_Ioctl(int fh, int request, void *arg); - -/************************************************************************/ -/** \brief Determines if the maximum of event filters has been reached. -** -** \par Description -** This function checks if an index has reached the maximum -** number of events. -** -** \par Assumptions, External Events, and Notes: -** None -** -** \param [in] ind The current index to check. -** -** -** \returns boolean -** -*************************************************************************/ -boolean MS5611_Custom_Max_Events_Not_Reached(int32 ind); - -/************************************************************************/ -/** \brief Reset the device. -** -** \par Description -** This function must be used at initialization. -** -** \par Assumptions, External Events, and Notes: -** None -** -** \returns ioctl return code. -** -*************************************************************************/ -int32 MS5611_ResetDevice(void); - -#ifdef __cplusplus -} -#endif - -#endif /* MS5611_SPI_H */ diff --git a/config/obc/ppd/target/apps/ms5611/tables/ms5611_config.c b/config/obc/ppd/target/apps/ms5611/tables/ms5611_config.c deleted file mode 100644 index 696d9f096..000000000 --- a/config/obc/ppd/target/apps/ms5611/tables/ms5611_config.c +++ /dev/null @@ -1,64 +0,0 @@ -/* -** Pragmas -*/ - -/* -** Include Files -*/ -#include "cfe_tbl_filedef.h" -#include "ms5611_tbldefs.h" - -/* -** Local Defines -*/ - -/* -** Local Structure Declarations -*/ -static OS_USED CFE_TBL_FileDef_t CFE_TBL_FileDef = -{ - /* Content format: ObjName[64], TblName[38], Desc[32], TgtFileName[20], ObjSize - ** ObjName - variable name of config table, e.g., CI_ConfigDefTbl[] - ** TblName - app's table name, e.g., CI.CONFIG_TBL, where CI is the same app name - ** used in cfe_es_startup.scr, and CI_defConfigTbl is the same table - ** name passed in to CFE_TBL_Register() - ** Desc - description of table in string format - ** TgtFileName[20] - table file name, compiled as .tbl file extension - ** ObjSize - size of the entire table - */ - - "MS5611_ConfigTbl", "MS5611.CONFIG_TBL", "MS5611 default config table", - "ms5611_config.tbl", (sizeof(MS5611_ConfigTbl_t)) -}; - -/* -** External Global Variables -*/ - -/* -** Global Variables -*/ - -/* Default MPU9250 config table data */ -MS5611_ConfigTbl_t MS5611_ConfigTbl = -{ - /* current pressure at MSL in kPa */ - 101.325 -}; - -/* -** Local Variables -*/ - -/* -** Function Prototypes -*/ - -/* -** Function Definitions -*/ - -/*======================================================================================= -** End of file ms5611_config.c -**=====================================================================================*/ - diff --git a/config/obc/ppd/target/apps/nav/CMakeLists.txt b/config/obc/ppd/target/apps/nav/CMakeLists.txt deleted file mode 100644 index 2b98f4b61..000000000 --- a/config/obc/ppd/target/apps/nav/CMakeLists.txt +++ /dev/null @@ -1,9 +0,0 @@ -set(APP_NAME nav) - -buildliner_add_table( - ${APP_NAME} - NAME nav_config - SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/tables/nav_config.c -) - -buildliner_add_app_unit_test_src(${APP_NAME} SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/tables/nav_config.c) diff --git a/config/obc/ppd/target/apps/nav/tables/nav_config.c b/config/obc/ppd/target/apps/nav/tables/nav_config.c deleted file mode 100644 index 84dedafd2..000000000 --- a/config/obc/ppd/target/apps/nav/tables/nav_config.c +++ /dev/null @@ -1,138 +0,0 @@ -/* -** Pragmas -*/ - -/* -** Include Files -*/ -#include "cfe_tbl_filedef.h" -#include "nav_tbldefs.h" - -/* -** Local Defines -*/ - -/* -** Local Structure Declarations -*/ -static OS_USED CFE_TBL_FileDef_t CFE_TBL_FileDef = -{ - /* Content format: ObjName[64], TblName[38], Desc[32], TgtFileName[20], ObjSize - ** ObjName - variable name of config table, e.g., CI_ConfigDefTbl[] - ** TblName - app's table name, e.g., CI.CONFIG_TBL, where CI is the same app name - ** used in cfe_es_startup.scr, and CI_defConfigTbl is the same table - ** name passed in to CFE_TBL_Register() - ** Desc - description of table in string format - ** TgtFileName[20] - table file name, compiled as .tbl file extension - ** ObjSize - size of the entire table - */ - - "NAV_ConfigTbl", "NAV.CONFIG_TBL", "NAV default config table", - "nav_config.tbl", (sizeof(NAV_ConfigTbl_t)) -}; - -/* -** External Global Variables -*/ - -/* -** Global Variables -*/ - -/* Default ULR config table data */ -NAV_ConfigTbl_t NAV_ConfigTbl = -{ - /** \brief Default Accepted Radius. - * - * \par Limits: - * Min > Max (incr.) 0.05 > 200.0 , default 2.0. - */ - 3.0, - - /** \brief Altitude Acceptance Radius. - * - * \par Limits: - * Min > Max (incr.) 0.05 > 200 , default 0.8. - */ - 1.2, - - /** \brief The Loiter Radius. - * - * \par Limits: - * Min > Max (incr.) 25 > 1000 , default 50.0. - */ - 50.0, - - /** \brief Take-off Altitude. - * - * \par Limits: - * Min > Max (incr.) 0 > 80 , default 2.5. - */ - 5.0, - - /** \brief Max yaw error in degrees needed for waypoint heading acceptance. - * - * \par Limits: - * Min > Max (incr.) 0 > 90 , default 12.0. - */ - 18.0, - - /** \brief Time in seconds we wait on reaching target heading at a waypoint if it is forced. - * - * \par Limits: - * Min > Max (incr.) -1 > 20 , default -1.0. - */ - -1.0, - - /** \brief Minimum Loiter Altitude. - * - * \par Limits: - * Min > Max (incr.) -1 > 80 , default 1.20. - */ - 1.20, - - /** \brief RTL Altitude. - * - * \par Limits: - * Min > Max (incr.) 0 > 150 , default 30.0. - */ - 10.0, - - /** \brief RTL Loiter Altitude. - * - * \par Limits: - * Min > Max (incr.) 2 > 100 , default 10.0. - */ - 5.0, - - /** \brief RTL Delay. - * - * \par Limits: - * Min > Max (incr.) -1 > 300 , default 0.0. - */ - 0.0, - - /** \brief Minimum distance to trigger rising to a safe altitude. - * - * \par Limits: - * Min > Max (incr.) 0.5 > 20 , default 5.0. - */ - 5.0 -}; - -/* -** Local Variables -*/ - -/* -** Function Prototypes -*/ - -/* -** Function Definitions -*/ - -/*======================================================================================= -** End of file nav_config.c -**=====================================================================================*/ - diff --git a/config/obc/ppd/target/apps/pe/CMakeLists.txt b/config/obc/ppd/target/apps/pe/CMakeLists.txt deleted file mode 100644 index ef52c38b8..000000000 --- a/config/obc/ppd/target/apps/pe/CMakeLists.txt +++ /dev/null @@ -1,9 +0,0 @@ -set(APP_NAME pe) - -buildliner_add_table( - ${APP_NAME} - NAME pe_config - SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/tables/pe_config.c -) - -buildliner_add_app_unit_test_src(${APP_NAME} SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/tables/pe_config.c) diff --git a/config/obc/ppd/target/apps/pe/tables/pe_config.c b/config/obc/ppd/target/apps/pe/tables/pe_config.c deleted file mode 100644 index 4efdfd95d..000000000 --- a/config/obc/ppd/target/apps/pe/tables/pe_config.c +++ /dev/null @@ -1,171 +0,0 @@ -/* -** Pragmas -*/ - -/* -** Include Files -*/ -#include "cfe_tbl_filedef.h" -#include "pe_tbldefs.h" - -/* -** Local Defines -*/ - -/* -** Local Structure Declarations -*/ -static OS_USED CFE_TBL_FileDef_t CFE_TBL_FileDef = -{ - /* Content format: ObjName[64], TblName[38], Desc[32], TgtFileName[20], ObjSize - ** ObjName - variable name of config table, e.g., CI_ConfigDefTbl[] - ** TblName - app's table name, e.g., CI.CONFIG_TBL, where CI is the same app name - ** used in cfe_es_startup.scr, and CI_defConfigTbl is the same table - ** name passed in to CFE_TBL_Register() - ** Desc - description of table in string format - ** TgtFileName[20] - table file name, compiled as .tbl file extension - ** ObjSize - size of the entire table - */ - - "PE_ConfigTbl", "PE.CONFIG_TBL", "PE default config table", - "pe_config.tbl", (sizeof(PE_ConfigTbl_t)) -}; - -/* -** External Global Variables -*/ - -/* -** Global Variables -*/ - -/* Default ULR config table data */ -PE_ConfigTbl_t PE_ConfigTbl = -{ - //VXY_PUB_THRESH - .3f, - //Z_PUB_THRESH - 1.0f, - //ACCEL_XY_STDDEV - .012f, - //ACCEL_Z_STDDEV - .02f, - //BARO_FUSE - 1, - //BARO_STDDEV - 3.0f, - //GPS_FUSE - 1, - //GPS_DELAY - .29f, - //GPS_XY_STDDEV - 1.0f, - //GPS_Z_STDDEV - 3.0f, - //GPS_VXY_STDDEV - .25f, - //GPS_VZ_STDDEV - .25f, - //GPS_EPH_MAX - 3.0f, - //GPS_EPV_MAX - 5.0f, - //LAND_FUSE - 1, - //LAND_Z_STDDEV - .03f, - //LAND_VXY_STDDEV - .05f, - //PN_P_NOISE_DENSITY - .1f, - //PN_V_NOISE_DENSITY - .1f, - //PN_B_NOISE_DENSITY - .001f, - //PN_T_NOISE_DENSITY - .001f, - //T_MAX_GRADE - 0.0f, - //FAKE_ORIGIN - 0, - //INIT_ORIGIN_LAT - 29.562144f, - //INIT_ORIGIN_LON - -95.144554, - //ULR_FUSE - TRUE, - //ULR_STDDEV - .05f, - //ULR_OFF_Z - 0.0f, - // FLOW_FUSE - FALSE, - /** - * Optical flow scale - * - * @group Local Position Estimator - * @unit m - * @min 0.1 - * @max 10.0 - * @decimal 3 - */ - 1.3f, - /** - * Optical flow rotation (roll/pitch) noise gain - * - * @group Local Position Estimator - * @unit m/s / (rad) - * @min 0.1 - * @max 10.0 - * @decimal 3 - */ - 7.0f, - - /** - * Optical flow angular velocity noise gain - * - * @group Local Position Estimator - * @unit m/s / (rad/s) - * @min 0.0 - * @max 10.0 - * @decimal 3 - */ - 7.0f, - - /** - * Optical flow minimum quality threshold - * - * @group Local Position Estimator - * @min 0 - * @max 255 - * @decimal 0 - */ - 150, - - /** - * Optical flow minimum AGL - * - * @group Local Position Estimator - * @min 0.0 - * @max 10.0 - * @decimal 3 - */ - 0.5f -}; - -/* -** Local Variables -*/ - -/* -** Function Prototypes -*/ - -/* -** Function Definitions -*/ - -/*======================================================================================= -** End of file pe_config.c -**=====================================================================================*/ - diff --git a/config/obc/ppd/target/apps/qae/CMakeLists.txt b/config/obc/ppd/target/apps/qae/CMakeLists.txt deleted file mode 100644 index c3cbca98d..000000000 --- a/config/obc/ppd/target/apps/qae/CMakeLists.txt +++ /dev/null @@ -1,9 +0,0 @@ -set(APP_NAME qae) - -buildliner_add_table( - ${APP_NAME} - NAME qae_config - SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/tables/qae_config.c -) - -buildliner_add_app_unit_test_src(${APP_NAME} SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/tables/qae_config.c) diff --git a/config/obc/ppd/target/apps/qae/tables/qae_config.c b/config/obc/ppd/target/apps/qae/tables/qae_config.c deleted file mode 100644 index 5e28b1802..000000000 --- a/config/obc/ppd/target/apps/qae/tables/qae_config.c +++ /dev/null @@ -1,104 +0,0 @@ -/* -** Pragmas -*/ - -/* -** Include Files -*/ -#include "cfe_tbl_filedef.h" -#include "qae_tbldefs.h" - -/* -** Local Defines -*/ - -/* -** Local Structure Declarations -*/ -static OS_USED CFE_TBL_FileDef_t CFE_TBL_FileDef = -{ - /* Content format: ObjName[64], TblName[38], Desc[32], TgtFileName[20], ObjSize - ** ObjName - variable name of config table, e.g., CI_ConfigDefTbl[] - ** TblName - app's table name, e.g., CI.CONFIG_TBL, where CI is the same app name - ** used in cfe_es_startup.scr, and CI_defConfigTbl is the same table - ** name passed in to CFE_TBL_Register() - ** Desc - description of table in string format - ** TgtFileName[20] - table file name, compiled as .tbl file extension - ** ObjSize - size of the entire table - */ - - "QAE_ConfigTbl", "QAE.CONFIG_TBL", "QAE default config table", - "qae_config.tbl", (sizeof(QAE_ConfigTbl_t)) -}; - -/* -** External Global Variables -*/ - -/* -** Global Variables -*/ - -/* Default QAE config table data */ -QAE_ConfigTbl_t QAE_ConfigTbl = -{ - /** \brief Complimentary filter accelerometer weight. - * - * \par Limits: - * Min > Max (incr.) 0 > 1, default 0.2. - */ - 0.2f, - /** \brief Complimentary filter magnetometer weight. - * - * \par Limits: - * Min > Max (incr.) 0 > 1, default 0.1. - */ - 0.1f, - /** \brief Complimentary filter gyroscope bias weight. - * - * \par Limits: - * Min > Max (incr.) 0 > 1, default 0.1. - */ - 0.1f, - /** \brief Magnetic declination, in degrees. - * - * \par Limits: - * Min > Max (incr.) 0 > 180, default 0.0. - */ - 0.0f, - /** \brief Automatic GPS based declination compensation. - * - * \par Limits: - * TRUE or FALSE, default 1 (TRUE). - */ - 1, - /** \brief Acceleration compensation based on GPS velocity. - * - * \par Limits: - * TRUE or FALSE, default 1 (TRUE). - */ - 1, - /** \brief Gyro bias limit in rad/s. - * - * \par Limits: - * Min > Max (incr.) 0 > 2, default 0.05. - */ - 0.05f -}; - -/* -** Local Variables -*/ - -/* -** Function Prototypes -*/ - -/* -** Function Definitions -*/ - -/*======================================================================================= -** End of file qae_config.c -**=====================================================================================*/ - diff --git a/config/obc/ppd/target/apps/rcin/CMakeLists.txt b/config/obc/ppd/target/apps/rcin/CMakeLists.txt deleted file mode 100644 index 363fc65e3..000000000 --- a/config/obc/ppd/target/apps/rcin/CMakeLists.txt +++ /dev/null @@ -1 +0,0 @@ -set(APP_NAME rcin) diff --git a/config/obc/ppd/target/apps/rcin/src/CMakeLists.txt b/config/obc/ppd/target/apps/rcin/src/CMakeLists.txt deleted file mode 100644 index 483c6ee5e..000000000 --- a/config/obc/ppd/target/apps/rcin/src/CMakeLists.txt +++ /dev/null @@ -1,5 +0,0 @@ -# Set source for custom code. -set(APP_CUSTOM_SRC - ${CMAKE_CURRENT_SOURCE_DIR}/rcin_custom.c - PARENT_SCOPE - ) diff --git a/config/obc/ppd/target/apps/rcin/src/rcin_custom.c b/config/obc/ppd/target/apps/rcin/src/rcin_custom.c deleted file mode 100644 index 146b14d84..000000000 --- a/config/obc/ppd/target/apps/rcin/src/rcin_custom.c +++ /dev/null @@ -1,868 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ -/************************************************************************ -** Pragmas -*************************************************************************/ - -/************************************************************************ -** Includes -*************************************************************************/ -#include "rcin_sbus.h" -#include "rcin_events.h" -#include "perf_ids.h" -#include "px4lib.h" -#include "rcin_platform_cfg.h" - -/************************************************************************ -** Local Defines -*************************************************************************/ - -/************************************************************************ -** Local Structure Declarations -*************************************************************************/ - -typedef enum { - -/** \brief 'RCIN - ' -** \event 'RCIN - ' -** -** \par Type: ERROR -** -** \par Cause: -** -** This event message is issued when a device resource encounters an -** error. -** -*/ - RCIN_DEVICE_ERR_EID = RCIN_EVT_CNT, -/** \brief 'RCIN - ' -** \event 'RCIN - ' -** -** \par Type: ERROR -** -** \par Cause: -** -** This event message is issued when the RC input stream is out of -** sync. -** -*/ - RCIN_SYNC_ERR_EID, - -/** \brief Number of custom events -** -** \par Limits: -** int32 -*/ - RCIN_CUSTOM_EVT_CNT - -} RCIN_CustomEventIds_t; - -/************************************************************************ -** External Global Variables -*************************************************************************/ - -/************************************************************************ -** Global Variables -*************************************************************************/ -RCIN_AppCustomData_t RCIN_AppCustomData; - -/************************************************************************ -** Local Variables -*************************************************************************/ - -/************************************************************************ -** Local Function Definitions -*************************************************************************/ -int32 RCIN_Ioctl(int fh, int request, void *arg) -{ - int32 returnCode = 0; - uint32 i = 0; - - for (i=0; i < RCIN_MAX_RETRY_ATTEMPTS; i++) - { - returnCode = ioctl(fh, request, arg); - - if (-1 == returnCode && EINTR == errno) - { - usleep(RCIN_MAX_RETRY_SLEEP_USEC); - } - else - { - break; - } - } - - return (returnCode); -} - - -int32 RCIN_Read(int fd, void *buf, size_t count) -{ - int32 returnSize = 0; - uint32 i = 0; - - for (i=0; i < RCIN_MAX_RETRY_ATTEMPTS; i++) - { - returnSize = read(fd, buf, count); - /* Interrupted */ - if (-1 == returnSize && EINTR == errno) - { - (void) CFE_EVS_SendEvent(RCIN_DEVICE_ERR_EID, CFE_EVS_ERROR, - "RCIN device read EINTR"); - usleep(RCIN_MAX_RETRY_SLEEP_USEC); - } - else - { - break; - } - } - - return (returnSize); -} - - -void RCIN_Custom_InitData(void) -{ - /* Set all struct zero values */ - bzero(&RCIN_AppCustomData, sizeof(RCIN_AppCustomData)); - strncpy(RCIN_AppCustomData.DevName, RCIN_DEVICE_PATH, RCIN_MAX_DEVICE_PATH); - /* Set all non-zero values */ - RCIN_AppCustomData.ContinueFlag = TRUE; - RCIN_AppCustomData.Priority = RCIN_STREAMING_TASK_PRIORITY; - RCIN_AppCustomData.StreamingTask = RCIN_Stream_Task; - /* Initialize for failsafe and RcLost */ - RCIN_AppCustomData.Measure.RcFailsafe = 1; - RCIN_AppCustomData.Measure.RcLost = 1; - return; -} - - -boolean RCIN_Custom_Init(void) -{ - boolean returnBool = TRUE; - int32 returnCode = 0; - int baud = RCIN_SERIAL_INPUT_SPEED; - struct serial_struct serials; - - /* Open */ - RCIN_AppCustomData.DeviceFd = open(RCIN_DEVICE_PATH, O_RDWR | O_NONBLOCK | O_CLOEXEC); - if (RCIN_AppCustomData.DeviceFd < 0) - { - (void) CFE_EVS_SendEvent(RCIN_DEVICE_ERR_EID, CFE_EVS_ERROR, - "RCIN custom device open errno: %i", errno); - returnBool = FALSE; - goto end_of_function; - } - else - { - RCIN_AppCustomData.Status = RCIN_CUSTOM_INITIALIZED; - } - - /* Create mutex for shared data */ - returnCode = OS_MutSemCreate(&RCIN_AppCustomData.Mutex, RCIN_MUTEX_NAME, 0); - if (returnCode != CFE_SUCCESS) - { - (void) CFE_EVS_SendEvent(RCIN_DEVICE_ERR_EID, CFE_EVS_ERROR, - "RCIN mutex create failed in custom init"); - returnBool = FALSE; - goto end_of_function; - } - - /* Get configuration */ - returnCode = tcgetattr(RCIN_AppCustomData.DeviceFd, - &RCIN_AppCustomData.TerminalConfig); - if (0 != returnCode) - { - (void) CFE_EVS_SendEvent(RCIN_DEVICE_ERR_EID, CFE_EVS_ERROR, - "RCIN custom get terminal config failed errno: %i", errno); - goto end_of_function; - } - - tcflush(RCIN_AppCustomData.DeviceFd, TCIFLUSH); - bzero(&RCIN_AppCustomData.TerminalConfig, - sizeof(RCIN_AppCustomData.TerminalConfig)); - RCIN_AppCustomData.TerminalConfig.c_cflag |= (CLOCAL | CREAD); - RCIN_AppCustomData.TerminalConfig.c_cflag &= ~CSIZE; - RCIN_AppCustomData.TerminalConfig.c_cflag |= CS8; - RCIN_AppCustomData.TerminalConfig.c_cflag |= PARENB; - RCIN_AppCustomData.TerminalConfig.c_cflag &= ~PARODD; - RCIN_AppCustomData.TerminalConfig.c_iflag |= INPCK; - RCIN_AppCustomData.TerminalConfig.c_cflag |= CSTOPB; - RCIN_AppCustomData.TerminalConfig.c_cc[VTIME] = 0; - RCIN_AppCustomData.TerminalConfig.c_cc[VMIN] = 0; - - cfsetispeed(&RCIN_AppCustomData.TerminalConfig, B38400); - cfsetospeed(&RCIN_AppCustomData.TerminalConfig, B38400); - - tcflush(RCIN_AppCustomData.DeviceFd, TCIFLUSH); - - returnCode = tcsetattr(RCIN_AppCustomData.DeviceFd, TCSANOW, - &RCIN_AppCustomData.TerminalConfig); - if (0 != returnCode) - { - (void) CFE_EVS_SendEvent(RCIN_DEVICE_ERR_EID, CFE_EVS_ERROR, - "RCIN custom set terminal config failed errno: %i", errno); - goto end_of_function; - } - - returnCode = RCIN_Ioctl(RCIN_AppCustomData.DeviceFd, TIOCGSERIAL, - &serials); - if (0 > returnCode) - { - (void) CFE_EVS_SendEvent(RCIN_DEVICE_ERR_EID, CFE_EVS_ERROR, - "RCIN custom get serial line info errno: %i", errno); - goto end_of_function; - } - - serials.flags = ASYNC_SPD_CUST; - serials.custom_divisor = serials.baud_base / baud; - - returnCode = RCIN_Ioctl(RCIN_AppCustomData.DeviceFd, TIOCSSERIAL, - &serials); - if (0 > returnCode) - { - (void) CFE_EVS_SendEvent(RCIN_DEVICE_ERR_EID, CFE_EVS_ERROR, - "RCIN custom set serial line info errno: %i", errno); - goto end_of_function; - } - - RCIN_Ioctl(RCIN_AppCustomData.DeviceFd, TIOCGSERIAL, &serials); - - tcflush(RCIN_AppCustomData.DeviceFd, TCIFLUSH); - - /* Create streaming task */ - /* Set loop flag to continue forever */ - RCIN_AppCustomData.ContinueFlag = TRUE; - - /* Create the streaming task */ - returnCode = CFE_ES_CreateChildTask( - &RCIN_AppCustomData.ChildTaskID, - RCIN_STREAMING_TASK_NAME, - RCIN_AppCustomData.StreamingTask, - 0, - CFE_ES_DEFAULT_STACK_SIZE, - RCIN_AppCustomData.Priority, - RCIN_STREAMING_TASK_FLAGS); - - if(CFE_SUCCESS != returnCode) - { - RCIN_AppCustomData.ContinueFlag = FALSE; - returnBool = FALSE; - CFE_EVS_SendEvent(RCIN_DEVICE_ERR_EID, CFE_EVS_ERROR, - "RCIN create streaming task failed"); - goto end_of_function; - } - else - { - RCIN_AppCustomData.Status = RCIN_CUSTOM_ENABLED; - } - -end_of_function: - return (returnBool); -} - - -void RCIN_Stream_Task(void) -{ - int32 returnCode = 0; - int32 timeouts = 0; - uint32 maxFd = 0; - uint32 retryAttempts = 0; - uint32 iStatus = -1; - fd_set fds; - struct timeval timeValue; - - iStatus = CFE_ES_RegisterChildTask(); - - if (iStatus == CFE_SUCCESS) - { - /* Task should continue forever until cleanup (uninit) */ - while (RCIN_AppCustomData.ContinueFlag == TRUE) - { - maxFd = 0; - returnCode = 0; - - /* Select modifies the timeout value with time left until - * the timeout would expire so timeValue needs to be set - * every loop iteration - */ - timeValue.tv_sec = RCIN_BUFFER_FILL_TIMEOUT_SEC; - timeValue.tv_usec = RCIN_BUFFER_FILL_TIMEOUT_USEC; - - /* Initialize the set */ - FD_ZERO(&fds); - - FD_SET(RCIN_AppCustomData.DeviceFd, &fds); - - /* Get the greatest fd value for select() */ - maxFd = RCIN_AppCustomData.DeviceFd; - - CFE_ES_PerfLogEntry(RCIN_DEVICE_GET_PERF_ID); - /* Wait for RC data */ - returnCode = select(maxFd + 1, &fds, 0, 0, &timeValue); - CFE_ES_PerfLogExit(RCIN_DEVICE_GET_PERF_ID); - - /* select() wasn't successful */ - if (-1 == returnCode) - { - /* select was interrupted, try again */ - if (EINTR == errno) - { - RCIN_Custom_RC_Lost(TRUE); - (void) CFE_EVS_SendEvent(RCIN_DEVICE_ERR_EID, CFE_EVS_ERROR, - "RCIN select was interrupted"); - usleep(RCIN_MAX_RETRY_SLEEP_USEC); - continue; - } - else - { - RCIN_Custom_RC_Lost(TRUE); - /* select returned an error other than EINTR */ - (void) CFE_EVS_SendEvent(RCIN_DEVICE_ERR_EID, CFE_EVS_ERROR, - "RCIN stream failed select() returned %i", errno); - usleep(RCIN_MAX_RETRY_SLEEP_USEC); - continue; - } - } - /* select timed out */ - if (0 == returnCode) - { - RCIN_Custom_RC_Lost(TRUE); - continue; - } - /* select() returned and data is ready to be read */ - if(returnCode > 0) - { - RCIN_Custom_RC_Lost(FALSE); - RCIN_Custom_Read(); - continue; - } - } /* end while loop */ - } /* end if status == success */ - - /* Take shared data mutex */ - OS_MutSemTake(RCIN_AppCustomData.Mutex); - /* Set failsafe and RcLost */ - RCIN_AppCustomData.Measure.RcFailsafe = 1; - RCIN_AppCustomData.Measure.RcLost = 1; - /* Give shared data mutex */ - OS_MutSemGive(RCIN_AppCustomData.Mutex); - - /* Streaming task is exiting so set app flag to initialized */ - RCIN_AppCustomData.Status = RCIN_CUSTOM_ENABLED; - CFE_EVS_SendEvent(RCIN_DEVICE_ERR_EID, CFE_EVS_ERROR, - "RCIN receive task exited with return code %li task status (0x%08lX)", - returnCode, iStatus); - - /* The child task was successfully registered so exit from it */ - if (iStatus == CFE_SUCCESS) - { - CFE_ES_ExitChildTask(); - } -} - - -boolean RCIN_Custom_PWM_Translate(uint8 *data, int size) -{ - boolean returnBool = TRUE; - - /* Null pointer check */ - if(0 == data) - { - (void) CFE_EVS_SendEvent(RCIN_DEVICE_ERR_EID, CFE_EVS_ERROR, - "RCIN_Custom_PWM_Translate null pointer"); - returnBool = FALSE; - goto end_of_function; - } - - /* Size check */ - if(RCIN_SERIAL_READ_SIZE != size) - { - (void) CFE_EVS_SendEvent(RCIN_DEVICE_ERR_EID, CFE_EVS_ERROR, - "RCIN_Custom_PWM_Translate size error"); - returnBool = FALSE; - goto end_of_function; - } - - /* Take shared data mutex */ - OS_MutSemTake(RCIN_AppCustomData.Mutex); - - RCIN_AppCustomData.Measure.Values[0] = (uint16)(((data[1] | data[2] << 8) - & 0x07FF) * RCIN_SBUS_SCALE_FACTOR + .5f) + RCIN_SBUS_SCALE_OFFSET; - RCIN_AppCustomData.Measure.Values[1] = (uint16)(((data[2] >> 3 | data[3] << 5) - & 0x07FF) * RCIN_SBUS_SCALE_FACTOR + .5f) + RCIN_SBUS_SCALE_OFFSET; - RCIN_AppCustomData.Measure.Values[2] = (uint16)(((data[3] >> 6 | data[4] << 2 - | data[5] << 10) & 0x07FF) * RCIN_SBUS_SCALE_FACTOR + .5f) - + RCIN_SBUS_SCALE_OFFSET; - RCIN_AppCustomData.Measure.Values[3] = (uint16)(((data[5] >> 1 | data[6] << 7) - & 0x07FF) * RCIN_SBUS_SCALE_FACTOR + .5f) + RCIN_SBUS_SCALE_OFFSET; - RCIN_AppCustomData.Measure.Values[4] = (uint16)(((data[6] >> 4 | data[7] << 4) - & 0x07FF) * RCIN_SBUS_SCALE_FACTOR + .5f) + RCIN_SBUS_SCALE_OFFSET; - RCIN_AppCustomData.Measure.Values[5] = (uint16)(((data[7] >> 7 | data[8] << 1 - | data[9] << 9) & 0x07FF) * RCIN_SBUS_SCALE_FACTOR + .5f) - + RCIN_SBUS_SCALE_OFFSET; - RCIN_AppCustomData.Measure.Values[6] = (uint16)(((data[9] >> 2 | data[10] << 6) - & 0x07FF) * RCIN_SBUS_SCALE_FACTOR + .5f) + RCIN_SBUS_SCALE_OFFSET; - RCIN_AppCustomData.Measure.Values[7] = (uint16)(((data[10] >> 5 | data[11] << 3) - & 0x07FF) * RCIN_SBUS_SCALE_FACTOR + .5f) + RCIN_SBUS_SCALE_OFFSET; // & the other 8 + 2 channels if you need them - RCIN_AppCustomData.Measure.Values[8] = (uint16)(((data[12] | data[13] << 8) - & 0x07FF) * RCIN_SBUS_SCALE_FACTOR + .5f) + RCIN_SBUS_SCALE_OFFSET; - RCIN_AppCustomData.Measure.Values[9] = (uint16)(((data[13] >> 3 | data[14] << 5) - & 0x07FF) * RCIN_SBUS_SCALE_FACTOR + .5f) + RCIN_SBUS_SCALE_OFFSET; - RCIN_AppCustomData.Measure.Values[10] = (uint16)(((data[14] >> 6 | data[15] << 2 - | data[16] << 10) & 0x07FF) * RCIN_SBUS_SCALE_FACTOR + .5f) - + RCIN_SBUS_SCALE_OFFSET; - RCIN_AppCustomData.Measure.Values[11] = (uint16)(((data[16] >> 1 | data[17] << 7) - & 0x07FF) * RCIN_SBUS_SCALE_FACTOR + .5f) + RCIN_SBUS_SCALE_OFFSET; - RCIN_AppCustomData.Measure.Values[12] = (uint16)(((data[17] >> 4 | data[18] << 4) - & 0x07FF) * RCIN_SBUS_SCALE_FACTOR + .5f) + RCIN_SBUS_SCALE_OFFSET; - RCIN_AppCustomData.Measure.Values[13] = (uint16)(((data[18] >> 7 | data[19] << 1 - | data[20] << 9) & 0x07FF) * RCIN_SBUS_SCALE_FACTOR + .5f) - + RCIN_SBUS_SCALE_OFFSET; - RCIN_AppCustomData.Measure.Values[14] = (uint16)(((data[20] >> 2 | data[21] << 6) - & 0x07FF) * RCIN_SBUS_SCALE_FACTOR + .5f) + RCIN_SBUS_SCALE_OFFSET; - RCIN_AppCustomData.Measure.Values[15] = (uint16)(((data[21] >> 5 | data[22] << 3) - & 0x07FF) * RCIN_SBUS_SCALE_FACTOR + .5f) + RCIN_SBUS_SCALE_OFFSET; - - /* Timestamp */ - RCIN_AppCustomData.Measure.Timestamp = PX4LIB_GetPX4TimeUs(); - - /* Channel count */ - RCIN_AppCustomData.Measure.ChannelCount = RCIN_SBUS_CHANNEL_COUNT; - RCIN_AppCustomData.Measure.RSSI = 100; - RCIN_AppCustomData.Measure.RcLostFrameCount = 0; - RCIN_AppCustomData.Measure.RcTotalFrameCount = 1; - RCIN_AppCustomData.Measure.RcPpmFrameLength = 100; - RCIN_AppCustomData.Measure.RcFailsafe = (data[23] & (1 << 3)) ? TRUE : FALSE; - RCIN_AppCustomData.Measure.RcLost = (data[23] & (1 << 2)) ? TRUE : FALSE; - RCIN_AppCustomData.Measure.InputSource = PX4_RC_INPUT_SOURCE_PX4FMU_SBUS; - - /* Give shared data mutex */ - OS_MutSemGive(RCIN_AppCustomData.Mutex); - -end_of_function: - return (returnBool); -} - - -void RCIN_Custom_RC_Lost(boolean notReset) -{ - static int errorCount = 0; - - /* Take shared data mutex */ - OS_MutSemTake(RCIN_AppCustomData.Mutex); - - if (FALSE == notReset) - { - /* Set status to streaming state */ - RCIN_AppCustomData.Status = RCIN_CUSTOM_STREAMING; - errorCount = 0; - } - else - { - /* Set status to not streaming if we're not in RC Lost*/ - if (RCIN_AppCustomData.Status != RCIN_CUSTOM_RC_LOST - && RCIN_AppCustomData.Status != RCIN_CUSTOM_NOTSTREAMING) - { - RCIN_AppCustomData.Status = RCIN_CUSTOM_NOTSTREAMING; - } - errorCount++; - } - - if(RCIN_MAX_ERROR_COUNT == errorCount) - { - /* We're at max error count, set failsafe and lost flags */ - RCIN_AppCustomData.Measure.RcFailsafe = TRUE; - RCIN_AppCustomData.Measure.RcLost = TRUE; - - if (RCIN_AppCustomData.Status != RCIN_CUSTOM_RC_LOST) - { - CFE_EVS_SendEvent(RCIN_DEVICE_ERR_EID, CFE_EVS_ERROR, - "RCIN RC LOST, setting failsafe and lost flags"); - RCIN_AppCustomData.Status = RCIN_CUSTOM_RC_LOST; - } - errorCount = 0; - } - /* Give shared data mutex */ - OS_MutSemGive(RCIN_AppCustomData.Mutex); - return; -} - - -void RCIN_Custom_Read(void) -{ - uint32 i = 0; - int bytesRead = 0; - uint8 sbusTemp[RCIN_SERIAL_READ_SIZE*4] = { 0 }; - static boolean sync = FALSE; - - /* Read */ - bytesRead = RCIN_Read(RCIN_AppCustomData.DeviceFd, &sbusTemp, sizeof(sbusTemp)); - - if(bytesRead > 0) - { - for(i = 0; i < bytesRead; i++) - { - switch(RCIN_AppCustomData.ParserState) - { - case RCIN_PARSER_STATE_UNKNOWN: - { - /* If header is found move to next state */ - if(0x0f == sbusTemp[i] || 0x8f == sbusTemp[i]) - { - RCIN_AppCustomData.sbusData[0] = sbusTemp[i]; - RCIN_AppCustomData.ParserState = RCIN_PARSER_STATE_WAITING_FOR_DATA1; - } - break; - } - case RCIN_PARSER_STATE_WAITING_FOR_HEADER: - { - /* If header is found move to next state */ - if(0x0f == sbusTemp[i] || 0x8f == sbusTemp[i]) - { - RCIN_AppCustomData.sbusData[0] = sbusTemp[i]; - RCIN_AppCustomData.ParserState = RCIN_PARSER_STATE_WAITING_FOR_DATA1; - } - break; - } - case RCIN_PARSER_STATE_WAITING_FOR_DATA1: - { - RCIN_AppCustomData.sbusData[1] = sbusTemp[i]; - RCIN_AppCustomData.ParserState = RCIN_PARSER_STATE_WAITING_FOR_DATA2; - break; - } - case RCIN_PARSER_STATE_WAITING_FOR_DATA2: - { - RCIN_AppCustomData.sbusData[2] = sbusTemp[i]; - RCIN_AppCustomData.ParserState = RCIN_PARSER_STATE_WAITING_FOR_DATA3; - break; - } - case RCIN_PARSER_STATE_WAITING_FOR_DATA3: - { - RCIN_AppCustomData.sbusData[3] = sbusTemp[i]; - RCIN_AppCustomData.ParserState = RCIN_PARSER_STATE_WAITING_FOR_DATA4; - break; - } - case RCIN_PARSER_STATE_WAITING_FOR_DATA4: - { - RCIN_AppCustomData.sbusData[4] = sbusTemp[i]; - RCIN_AppCustomData.ParserState = RCIN_PARSER_STATE_WAITING_FOR_DATA5; - break; - } - case RCIN_PARSER_STATE_WAITING_FOR_DATA5: - { - RCIN_AppCustomData.sbusData[5] = sbusTemp[i]; - RCIN_AppCustomData.ParserState = RCIN_PARSER_STATE_WAITING_FOR_DATA6; - break; - } - case RCIN_PARSER_STATE_WAITING_FOR_DATA6: - { - RCIN_AppCustomData.sbusData[6] = sbusTemp[i]; - RCIN_AppCustomData.ParserState = RCIN_PARSER_STATE_WAITING_FOR_DATA7; - break; - } - case RCIN_PARSER_STATE_WAITING_FOR_DATA7: - { - RCIN_AppCustomData.sbusData[7] = sbusTemp[i]; - RCIN_AppCustomData.ParserState = RCIN_PARSER_STATE_WAITING_FOR_DATA8; - break; - } - case RCIN_PARSER_STATE_WAITING_FOR_DATA8: - { - RCIN_AppCustomData.sbusData[8] = sbusTemp[i]; - RCIN_AppCustomData.ParserState = RCIN_PARSER_STATE_WAITING_FOR_DATA9; - break; - } - case RCIN_PARSER_STATE_WAITING_FOR_DATA9: - { - RCIN_AppCustomData.sbusData[9] = sbusTemp[i]; - RCIN_AppCustomData.ParserState = RCIN_PARSER_STATE_WAITING_FOR_DATA10; - break; - } - case RCIN_PARSER_STATE_WAITING_FOR_DATA10: - { - RCIN_AppCustomData.sbusData[10] = sbusTemp[i]; - RCIN_AppCustomData.ParserState = RCIN_PARSER_STATE_WAITING_FOR_DATA11; - break; - } - case RCIN_PARSER_STATE_WAITING_FOR_DATA11: - { - RCIN_AppCustomData.sbusData[11] = sbusTemp[i]; - RCIN_AppCustomData.ParserState = RCIN_PARSER_STATE_WAITING_FOR_DATA12; - break; - } - case RCIN_PARSER_STATE_WAITING_FOR_DATA12: - { - RCIN_AppCustomData.sbusData[12] = sbusTemp[i]; - RCIN_AppCustomData.ParserState = RCIN_PARSER_STATE_WAITING_FOR_DATA13; - } - break; - case RCIN_PARSER_STATE_WAITING_FOR_DATA13: - { - RCIN_AppCustomData.sbusData[13] = sbusTemp[i]; - RCIN_AppCustomData.ParserState = RCIN_PARSER_STATE_WAITING_FOR_DATA14; - break; - } - case RCIN_PARSER_STATE_WAITING_FOR_DATA14: - { - RCIN_AppCustomData.sbusData[14] = sbusTemp[i]; - RCIN_AppCustomData.ParserState = RCIN_PARSER_STATE_WAITING_FOR_DATA15; - break; - } - case RCIN_PARSER_STATE_WAITING_FOR_DATA15: - { - RCIN_AppCustomData.sbusData[15] = sbusTemp[i]; - RCIN_AppCustomData.ParserState = RCIN_PARSER_STATE_WAITING_FOR_DATA16; - break; - } - case RCIN_PARSER_STATE_WAITING_FOR_DATA16: - { - RCIN_AppCustomData.sbusData[16] = sbusTemp[i]; - RCIN_AppCustomData.ParserState = RCIN_PARSER_STATE_WAITING_FOR_DATA17; - break; - } - case RCIN_PARSER_STATE_WAITING_FOR_DATA17: - { - RCIN_AppCustomData.sbusData[17] = sbusTemp[i]; - RCIN_AppCustomData.ParserState = RCIN_PARSER_STATE_WAITING_FOR_DATA18; - break; - } - case RCIN_PARSER_STATE_WAITING_FOR_DATA18: - { - RCIN_AppCustomData.sbusData[18] = sbusTemp[i]; - RCIN_AppCustomData.ParserState = RCIN_PARSER_STATE_WAITING_FOR_DATA19; - break; - } - case RCIN_PARSER_STATE_WAITING_FOR_DATA19: - { - RCIN_AppCustomData.sbusData[19] = sbusTemp[i]; - RCIN_AppCustomData.ParserState = RCIN_PARSER_STATE_WAITING_FOR_DATA20; - break; - } - case RCIN_PARSER_STATE_WAITING_FOR_DATA20: - { - RCIN_AppCustomData.sbusData[20] = sbusTemp[i]; - RCIN_AppCustomData.ParserState = RCIN_PARSER_STATE_WAITING_FOR_DATA21; - break; - } - case RCIN_PARSER_STATE_WAITING_FOR_DATA21: - { - RCIN_AppCustomData.sbusData[21] = sbusTemp[i]; - RCIN_AppCustomData.ParserState = RCIN_PARSER_STATE_WAITING_FOR_DATA22; - break; - } - case RCIN_PARSER_STATE_WAITING_FOR_DATA22: - { - RCIN_AppCustomData.sbusData[22] = sbusTemp[i]; - RCIN_AppCustomData.ParserState = RCIN_PARSER_STATE_WAITING_FOR_FLAGS; - break; - } - case RCIN_PARSER_STATE_WAITING_FOR_FLAGS: - { - RCIN_AppCustomData.sbusData[23] = sbusTemp[i]; - RCIN_AppCustomData.ParserState = RCIN_PARSER_STATE_WAITING_FOR_FOOTER; - break; - } - case RCIN_PARSER_STATE_WAITING_FOR_FOOTER: - { - if(0x00 == sbusTemp[i]) - { - /* Reset the error counter */ - RCIN_Custom_RC_Lost(FALSE); - RCIN_AppCustomData.sbusData[24] = sbusTemp[i]; - RCIN_AppCustomData.ParserState = RCIN_PARSER_STATE_WAITING_FOR_HEADER; - if (FALSE == sync) - { - sync = TRUE; - (void) CFE_EVS_SendEvent(RCIN_SYNC_ERR_EID, CFE_EVS_ERROR, - "RCIN in sync."); - } - /* We have a valid packet, translate SBUS data */ - RCIN_Custom_PWM_Translate(RCIN_AppCustomData.sbusData, sizeof(RCIN_AppCustomData.sbusData)); - } - else - { - RCIN_Custom_RC_Lost(TRUE); - /* The end byte wasn't found so find a header candidate */ - RCIN_AppCustomData.ParserState = RCIN_PARSER_STATE_WAITING_FOR_HEADER; - (void) CFE_EVS_SendEvent(RCIN_SYNC_ERR_EID, CFE_EVS_ERROR, - "RCIN out of sync."); - sync = FALSE; - } - break; - } - default: - { - RCIN_Custom_RC_Lost(TRUE); - /* Unknown parser state */ - (void) CFE_EVS_SendEvent(RCIN_SYNC_ERR_EID, CFE_EVS_ERROR, - "Parser in invalid state."); - RCIN_AppCustomData.ParserState = RCIN_PARSER_STATE_UNKNOWN; - break; - } - } - } - } - /* Read returned an error */ - else - { - RCIN_Custom_RC_Lost(TRUE); - (void) CFE_EVS_SendEvent(RCIN_DEVICE_ERR_EID, CFE_EVS_ERROR, - "RCIN device read error, errno: %i", errno); - } - return; -} - - -boolean RCIN_Custom_Measure(PX4_InputRcMsg_t *Measure) -{ - boolean returnBool = TRUE; - void *userDataPtr = 0; - void *copyDataPtr = 0; - uint16 userDataLength = 0; - uint16 i = 0; - - /* Null pointer check */ - if (0 == Measure) - { - (void) CFE_EVS_SendEvent(RCIN_DEVICE_ERR_EID, CFE_EVS_ERROR, - "RCIN device read null pointer error"); - returnBool = FALSE; - goto end_of_function; - } - - /* Take the shared data mutex */ - OS_MutSemTake(RCIN_AppCustomData.Mutex); - - if(RCIN_CUSTOM_STREAMING != RCIN_AppCustomData.Status) - { - returnBool = FALSE; - } - - if(RCIN_AppCustomData.Measure.RcFailsafe == TRUE && - RCIN_AppCustomData.Measure.RcLost == TRUE) - { - returnBool = FALSE; - } - - Measure->Timestamp = RCIN_AppCustomData.Measure.Timestamp; - Measure->ChannelCount = RCIN_AppCustomData.Measure.ChannelCount; - Measure->RSSI = RCIN_AppCustomData.Measure.RSSI; - Measure->RcLostFrameCount = RCIN_AppCustomData.Measure.RcLostFrameCount; - Measure->RcTotalFrameCount = RCIN_AppCustomData.Measure.RcTotalFrameCount; - Measure->RcPpmFrameLength = RCIN_AppCustomData.Measure.RcPpmFrameLength; - for(i = 0; i<18; i++) - { - Measure->Values[i] = RCIN_AppCustomData.Measure.Values[i]; - } - - Measure->RcFailsafe = RCIN_AppCustomData.Measure.RcFailsafe; - Measure->RcLost = RCIN_AppCustomData.Measure.RcLost; - Measure->InputSource = RCIN_AppCustomData.Measure.InputSource; - - /* Give the shared data mutex */ - OS_MutSemGive(RCIN_AppCustomData.Mutex); - -end_of_function: - return (returnBool); -} - - -boolean RCIN_Custom_Uninit(void) -{ - boolean returnBool = TRUE; - int returnCode = 0; - - /* Delete the child task */ - CFE_ES_DeleteChildTask(RCIN_AppCustomData.ChildTaskID); - /* Set streaming task loop flag to stop */ - RCIN_AppCustomData.ContinueFlag = FALSE; - /* Set app state to initialized */ - RCIN_AppCustomData.Status = RCIN_CUSTOM_INITIALIZED; - - returnCode = close(RCIN_AppCustomData.DeviceFd); - if (-1 == returnCode) - { - (void) CFE_EVS_SendEvent(RCIN_DEVICE_ERR_EID, CFE_EVS_ERROR, - "RCIN Device close errno: %i", errno); - returnBool = FALSE; - } - else - { - RCIN_AppCustomData.Status = RCIN_CUSTOM_UNINITIALIZED; - } - return (returnBool); -} - - -boolean RCIN_Custom_Max_Events_Not_Reached(int32 ind) -{ - boolean returnBool = FALSE; - - if ((ind < RCIN_MAX_EVENT_FILTERS) && (ind > 0)) - { - returnBool = TRUE; - } - - return (returnBool); -} - - -int32 RCIN_Custom_Init_EventFilters(int32 ind, CFE_EVS_BinFilter_t *EventTbl) -{ - int32 customEventCount = ind; - - /* Null check */ - if(0 == EventTbl) - { - customEventCount = -1; - goto end_of_function; - } - - if(TRUE == RCIN_Custom_Max_Events_Not_Reached(customEventCount + 2)) - { - EventTbl[ customEventCount].EventID = RCIN_DEVICE_ERR_EID; - EventTbl[customEventCount++].Mask = CFE_EVS_FIRST_16_STOP; - EventTbl[ customEventCount].EventID = RCIN_SYNC_ERR_EID; - EventTbl[customEventCount++].Mask = CFE_EVS_FIRST_16_STOP; - } - else - { - customEventCount = -1; - goto end_of_function; - } - -end_of_function: - - return (customEventCount); -} diff --git a/config/obc/ppd/target/apps/rcin/src/rcin_sbus.h b/config/obc/ppd/target/apps/rcin/src/rcin_sbus.h deleted file mode 100644 index 2f89c76ff..000000000 --- a/config/obc/ppd/target/apps/rcin/src/rcin_sbus.h +++ /dev/null @@ -1,400 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ - -#ifndef RCIN_SBUS_H -#define RCIN_SBUS_H - -#ifdef __cplusplus -extern "C" { -#endif - -/************************************************************************ -** Includes -*************************************************************************/ -#include "rcin_custom.h" -#include "px4_msgs.h" -#include -#include -#include -#include -#include -#include -#include -#include - -/************************************************************************ -** Local Defines -*************************************************************************/ -/** \brief I2C slave address of the TCA62724FMG LED driver in hex. -** -** \par Description: -** 8-bit address in little-endian format is 1010101(R/W) where R/W -** bit-0 indicates read (bit set to "H") or write mode (bit set to -** "L"). This is the 7-bit address without the R/W bit. -*/ -#define RGBLED_I2C_ADDRESS (0x55) - -/** \brief Device path. -** -** \par Description: -** The serial interface device path. -*/ -#define RCIN_DEVICE_PATH "/dev/ttyS2" - -/** \brief Input speed. -** -** \par Description: -** The serial input speed. -*/ -#define RCIN_SERIAL_INPUT_SPEED (100000) - -/** \brief Size of the raw RCIN message block. -** -** \par Description: -** The size of an SBUS packet. -*/ -#define RCIN_SERIAL_READ_SIZE (25) - -/** \brief SBUS channels -** -** \par Description: -** The SBUS channel count. -*/ -#define RCIN_SBUS_CHANNEL_COUNT (16) - -/* define range mapping here, -+100% -> 1000..2000 */ -/** \brief SBUS range minimum. */ -#define RCIN_SBUS_RANGE_MIN (200.0f) - -/** \brief SBUS range maximum. */ -#define RCIN_SBUS_RANGE_MAX (1800.0f) - -/** \brief Target range minimum. */ -#define RCIN_SBUS_TARGET_MIN (1000.0f) - -/** \brief Target range maximum. */ -#define RCIN_SBUS_TARGET_MAX (2000.0f) - -/* pre-calculate the floating point stuff as far as possible at compile time */ -/** \brief SBUS scale factor -** -** \par Description: -** The SBUS scale factor for value from SBUS conversion. -*/ -#define RCIN_SBUS_SCALE_FACTOR ((RCIN_SBUS_TARGET_MAX - RCIN_SBUS_TARGET_MIN) / (RCIN_SBUS_RANGE_MAX - RCIN_SBUS_RANGE_MIN)) - -/** \brief SBUS scale offset -** -** \par Description: -** The SBUS scale offset for value from SBUS conversion. -*/ -#define RCIN_SBUS_SCALE_OFFSET (int)(RCIN_SBUS_TARGET_MIN - (RCIN_SBUS_SCALE_FACTOR * RCIN_SBUS_RANGE_MIN + 0.5f)) - -/** \brief Max device path. -** -** \par Description: -** None. -*/ -#define RCIN_MAX_DEVICE_PATH OS_MAX_LOCAL_PATH_LEN - -/** \brief Retry attemps for interrupted ioctl calls. -** -** \par Limits: -** None. -*/ -#define RCIN_MAX_RETRY_ATTEMPTS (2) - -/** \brief Sleep time micro seconds for interrupted calls. -** -** \par Limits: -** None. -*/ -#define RCIN_MAX_RETRY_SLEEP_USEC (10) - -/* Timeout settings */ -/** \brief Wait time for data in seconds. -** -** \par Limits: -** None. -*/ -#define RCIN_BUFFER_FILL_TIMEOUT_SEC (0) - -/** \brief Wait time for data in microseconds. -** -** \par Limits: -** None. -*/ -#define RCIN_BUFFER_FILL_TIMEOUT_USEC (13000) - -/** \brief Streaming task priority -** -** \par Limits: -** 0 to MAX_PRIORITY (usually 255) -*/ -#define RCIN_STREAMING_TASK_PRIORITY (85) - -/** \brief RCIN shared data mutex name. */ -#define RCIN_MUTEX_NAME "RCIN_MUTEX" - -/** \brief Streaming task name -** -** \par Limits: -** OS_MAX_API_NAME -*/ -#define RCIN_STREAMING_TASK_NAME "RCIN_STREAM" - -/** \brief Maximum amount of errors before going to failsafe. */ -#define RCIN_MAX_ERROR_COUNT (25) - -/************************************************************************ -** Structure Declarations -*************************************************************************/ - -/** - * \brief Device status - */ -typedef enum -{ - /*! Status uninitialized */ - RCIN_CUSTOM_UNINITIALIZED = 0, - /*! Status initialized */ - RCIN_CUSTOM_INITIALIZED = 1, - /*! Status enabled */ - RCIN_CUSTOM_ENABLED = 2, - /*! Status not streaming */ - RCIN_CUSTOM_NOTSTREAMING = 3, - /*! Status streaming */ - RCIN_CUSTOM_STREAMING = 4, - /*! Status RC Lost */ - RCIN_CUSTOM_RC_LOST = 5 -} RCIN_Custom_Status_t; - - -/** - * \brief Device status - */ -typedef enum -{ - /*! State unknown */ - RCIN_PARSER_STATE_UNKNOWN = 0, - /*! State waiting for header */ - RCIN_PARSER_STATE_WAITING_FOR_HEADER = 1, - /*! State waiting for data */ - RCIN_PARSER_STATE_WAITING_FOR_DATA1 = 2, - RCIN_PARSER_STATE_WAITING_FOR_DATA2 = 3, - RCIN_PARSER_STATE_WAITING_FOR_DATA3 = 4, - RCIN_PARSER_STATE_WAITING_FOR_DATA4 = 5, - RCIN_PARSER_STATE_WAITING_FOR_DATA5 = 6, - RCIN_PARSER_STATE_WAITING_FOR_DATA6 = 7, - RCIN_PARSER_STATE_WAITING_FOR_DATA7 = 8, - RCIN_PARSER_STATE_WAITING_FOR_DATA8 = 9, - RCIN_PARSER_STATE_WAITING_FOR_DATA9 = 10, - RCIN_PARSER_STATE_WAITING_FOR_DATA10 = 11, - RCIN_PARSER_STATE_WAITING_FOR_DATA11 = 12, - RCIN_PARSER_STATE_WAITING_FOR_DATA12 = 13, - RCIN_PARSER_STATE_WAITING_FOR_DATA13 = 14, - RCIN_PARSER_STATE_WAITING_FOR_DATA14 = 15, - RCIN_PARSER_STATE_WAITING_FOR_DATA15 = 16, - RCIN_PARSER_STATE_WAITING_FOR_DATA16 = 17, - RCIN_PARSER_STATE_WAITING_FOR_DATA17 = 18, - RCIN_PARSER_STATE_WAITING_FOR_DATA18 = 19, - RCIN_PARSER_STATE_WAITING_FOR_DATA19 = 20, - RCIN_PARSER_STATE_WAITING_FOR_DATA20 = 21, - RCIN_PARSER_STATE_WAITING_FOR_DATA21 = 22, - RCIN_PARSER_STATE_WAITING_FOR_DATA22 = 23, - /*! State waiting for flags */ - RCIN_PARSER_STATE_WAITING_FOR_FLAGS = 24, - /*! State waiting for footer */ - RCIN_PARSER_STATE_WAITING_FOR_FOOTER = 25 -} RCIN_Custom_ParserState_t; - - -typedef struct -{ - /*! Device file descriptor */ - int DeviceFd; - /*! Path to device */ - char DevName[RCIN_MAX_DEVICE_PATH]; - /*! The terminal configuration */ - struct termios TerminalConfig; - /*! The current device status */ - RCIN_Custom_Status_t Status; - /*! The current device parser state */ - RCIN_Custom_ParserState_t ParserState; - /*! Flag to start and stop streaming */ - boolean ContinueFlag; - /*! Streaming task priority */ - uint8 Priority; - /*! Streaming child task identifier */ - uint32 ChildTaskID; - /*! Streaming task function pointer */ - CFE_ES_ChildTaskMainFuncPtr_t StreamingTask; - /*! RCInput message for storing SBUS data */ - PX4_InputRcMsg_t Measure; - /*! The shared data mutex */ - uint32 Mutex; - /*! Current raw SBUS data */ - uint8 sbusData[RCIN_SERIAL_READ_SIZE]; -} RCIN_AppCustomData_t; - - -/************************************************************************ -** External Global Variables -*************************************************************************/ - -/************************************************************************ -** Function Prototypes -*************************************************************************/ - -/************************************************************************/ -/** \brief ioctl with limited EINTR retry attempts. -** -** \par Description -** This function is a wrapper for ioctl with retry attempts added. -** -** \param [in] fh file descriptor. -** \param [in] request code. -** \param [in] arg pointer to a device specific struct. -** -** \returns -** usually 0 for success and -1 for failure, see ioctl man-page for -** more info. -** \endreturns -** -*************************************************************************/ -int32 RCIN_Ioctl(int fh, int request, void *arg); - - -/************************************************************************/ -/** \brief read with limited EINTR retry attempts. -** -** \par Description -** This function is a wrapper for read with retry attempts added. -** -** \param [in] fh file descriptor. -** \param [in] buffer. -** \param [in] size. -** -** \returns -** bytes read for success and -1 for failure, see read man-page for -** more info. -** \endreturns -** -*************************************************************************/ -int32 RCIN_Read(int fd, void *buf, size_t count); - - -/************************************************************************/ -/** \brief Determines if the maximum of event filters has been reached. -** -** \par Description -** This function checks if an index has reached the maximum -** number of events. -** -** \par Assumptions, External Events, and Notes: -** None -** -** \param [in] ind The current index to check. -** -** -** \returns boolean -** -*************************************************************************/ -boolean RCIN_Custom_Max_Events_Not_Reached(int32 ind); - - -/************************************************************************/ -/** \brief The stream task that actively reads the RCIN input stream. -** -** \par Description -** This thread runs until uninit. -** -*************************************************************************/ -void RCIN_Stream_Task(void); - - -/************************************************************************/ -/** \brief Attempt to read from the serial RCIN file descriptor. -** -** \par Description -** Attempts to read and parse the raw SBUS input stream. -** -*************************************************************************/ -void RCIN_Custom_Read(void); - - -/************************************************************************/ -/** \brief Called if the input stream is out of sync or a device read -** error occurs. -** -** \par Description -** This function keeps an internal counter that is incremented -** with every call. If the max error count is reached the failsafe -** and RC lost booleans in the RC_Input message are set. -** -** \par Assumptions, External Events, and Notes: -** None -** -** \param [in] notReset TRUE to not reset the counter, FALSE to -** reset the counter. -** -*************************************************************************/ -void RCIN_Custom_RC_Lost(boolean notReset); - - -/************************************************************************/ -/** \brief Translate raw SBUS data to channel pulse-position modulation -** values. -** -** \par Description -** This function converts the raw SBUS array to PPM (1000-2000) -** and populates the RC_Input message. -** -** \par Assumptions, External Events, and Notes: -** None -** -** \param [in] data The array of raw SBUS input data. -** -** \param [in] size The size of the array. -** -** -** \returns boolean TRUE for success, FALSE for failure. -** -*************************************************************************/ -boolean RCIN_Custom_PWM_Translate(uint8 *data, int size); - -#ifdef __cplusplus -} -#endif - -#endif /* RCIN_SBUS_H */ diff --git a/config/obc/ppd/target/apps/rgbled/CMakeLists.txt b/config/obc/ppd/target/apps/rgbled/CMakeLists.txt deleted file mode 100644 index 3555cfb46..000000000 --- a/config/obc/ppd/target/apps/rgbled/CMakeLists.txt +++ /dev/null @@ -1,2 +0,0 @@ -set(APP_NAME rgbled) - diff --git a/config/obc/ppd/target/apps/rgbled/src/CMakeLists.txt b/config/obc/ppd/target/apps/rgbled/src/CMakeLists.txt deleted file mode 100644 index 7e82af272..000000000 --- a/config/obc/ppd/target/apps/rgbled/src/CMakeLists.txt +++ /dev/null @@ -1,5 +0,0 @@ -# Set source for custom code. -set(APP_CUSTOM_SRC - ${CMAKE_CURRENT_SOURCE_DIR}/rgbled_custom.c - PARENT_SCOPE - ) diff --git a/config/obc/ppd/target/apps/rgbled/src/rgbled_custom.c b/config/obc/ppd/target/apps/rgbled/src/rgbled_custom.c deleted file mode 100644 index 6cb048e2c..000000000 --- a/config/obc/ppd/target/apps/rgbled/src/rgbled_custom.c +++ /dev/null @@ -1,561 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ -/************************************************************************ -** Pragmas -*************************************************************************/ - -/************************************************************************ -** Includes -*************************************************************************/ -#include "cfe.h" -#include "rgbled_driver.h" -#include "rgbled_events.h" -#include "rgbled_perfids.h" -#include "rgbled_platform_cfg.h" -#include -#include -#include -#include -#include -#include -#include - -/************************************************************************ -** Local Defines -*************************************************************************/ - -/************************************************************************ -** Local Structure Declarations -*************************************************************************/ -typedef enum { - -/** \brief 'RGBLED - ' -** \event 'RGBLED - ' -** -** \par Type: ERROR -** -** \par Cause: -** -** This event message is issued when a device resource encounters an -** error. -** -*/ - RGBLED_DEVICE_ERR_EID = RGBLED_EVT_CNT, - -/** \brief 'RGBLED - ' -** \event 'RGBLED - ' -** -** \par Type: Info -** -** \par Cause: -** -** This event message is issued when a device successfully complete a -** self test. -** -*/ - RGBLED_DEVICE_INF_EID, -/** \brief Number of custom events -** -** \par Limits: -** int32 -*/ - RGBLED_CUSTOM_EVT_CNT -} RGBLED_CustomEventIds_t; - - -/************************************************************************ -** External Global Variables -*************************************************************************/ - -/************************************************************************ -** Global Variables -*************************************************************************/ -RGBLED_AppCustomData_t RGBLED_AppCustomData; - -/************************************************************************ -** Local Variables -*************************************************************************/ - -/************************************************************************ -** Local Function Definitions -*************************************************************************/ -int32 RGBLED_Ioctl(int fh, int request, void *arg) -{ - int32 returnCode = 0; - uint32 i = 0; - - for (i=0; i < RGBLED_MAX_RETRY_ATTEMPTS; i++) - { - returnCode = ioctl(fh, request, arg); - - if (-1 == returnCode && EINTR == errno) - { - usleep(RGBLED_MAX_RETRY_SLEEP_USEC); - } - else - { - break; - } - } - - return (returnCode); -} - - -void RGBLED_Custom_InitData(void) -{ - /* Set all struct zero values */ - bzero(&RGBLED_AppCustomData, sizeof(RGBLED_AppCustomData)); - - strncpy(RGBLED_AppCustomData.DevName, RGBLED_DEVICE_PATH, RGBLED_MAX_DEVICE_PATH); - RGBLED_AppCustomData.SelfTestTask = RGBLED_Custom_SelfTest_Task; - return; -} - - -boolean RGBLED_Custom_Init(void) -{ - boolean returnBool = TRUE; - - RGBLED_AppCustomData.DeviceFd = open(RGBLED_DEVICE_PATH, O_RDWR); - - if (RGBLED_AppCustomData.DeviceFd < 0) - { - (void) CFE_EVS_SendEvent(RGBLED_DEVICE_ERR_EID, CFE_EVS_ERROR, - "RGBLED Device open errno: %i", errno); - returnBool = FALSE; - goto end_of_function; - } - else - { - RGBLED_AppCustomData.Status = RGBLED_CUSTOM_INITIALIZED; - } - - returnBool = RGBLED_Custom_GetSettings(); - if (FALSE == returnBool) - { - (void) CFE_EVS_SendEvent(RGBLED_DEVICE_ERR_EID, CFE_EVS_ERROR, - "RGBLED Device custom enable failed to get initial settings"); - goto end_of_function; - } - - returnBool = RGBLED_Custom_Enable(); - if (FALSE == returnBool) - { - (void) CFE_EVS_SendEvent(RGBLED_DEVICE_ERR_EID, CFE_EVS_ERROR, - "RGBLED Device custom enable failed errno: %i", errno); - goto end_of_function; - } - else - { - RGBLED_AppCustomData.Status = RGBLED_CUSTOM_ENABLED; - } - -end_of_function: - return (returnBool); -} - - -boolean RGBLED_Custom_Enable(void) -{ - boolean returnBool = FALSE; - uint8 settings = 0; - - /* Enable output */ - settings |= RGBLED_I2C_SET_ENABLE; - settings |= RGBLED_I2C_SET_NOT_POWERSAVE; - - uint8 data[2] = { RGBLED_I2C_SUB_ADDR_SETTINGS, settings }; - - returnBool = RGBLED_Custom_Send(data, sizeof(data)); - if(TRUE == returnBool) - { - RGBLED_AppCustomData.Settings.Enabled = TRUE; - RGBLED_AppCustomData.Settings.NotPowerSave = TRUE; - } - - returnBool = RGBLED_Custom_Validate(); - if(FALSE == returnBool) - { - (void) CFE_EVS_SendEvent(RGBLED_DEVICE_ERR_EID, CFE_EVS_ERROR, - "RGBLED device settings validation failed in custom enable"); - } - return (returnBool); -} - - -boolean RGBLED_Custom_Disable(void) -{ - boolean returnBool = FALSE; - uint8 settings = 0; - - uint8 data[2] = { RGBLED_I2C_SUB_ADDR_SETTINGS, settings }; - - returnBool = RGBLED_Custom_Send(data, sizeof(data)); - if(TRUE == returnBool) - { - RGBLED_AppCustomData.Settings.Enabled = FALSE; - RGBLED_AppCustomData.Settings.NotPowerSave = FALSE; - } - - returnBool = RGBLED_Custom_Validate(); - if(FALSE == returnBool) - { - (void) CFE_EVS_SendEvent(RGBLED_DEVICE_ERR_EID, CFE_EVS_ERROR, - "RGBLED device settings validation failed in custom disable"); - } - return (returnBool); -} - - -boolean RGBLED_Custom_GetSettings(void) -{ - boolean returnBool = TRUE; - boolean enabled = FALSE; - boolean notPowerSave = FALSE; - uint8 settings = 0; - uint8 redPWM = 0; - uint8 greenPWM = 0; - uint8 bluePWM = 0; - - /* The TCA62724FMG LED driver returns 2-bytes */ - uint8 Result[2] = {0, 0}; - - returnBool = RGBLED_Custom_Receive(Result, sizeof(Result)); - - if(FALSE == returnBool) - { - /* If receive was unsuccessful return FALSE */ - goto end_of_function; - } - - /* Settings are bits 7 - 4 of returned byte 0 */ - settings = Result[0] & 0xf0; - /* Blue LED duty cycle is bits 3 - 0 of returned byte 0 */ - bluePWM = Result[0] & 0x0f; - /* Green LED duty cycle is bits 7 - 4 of returned byte 1 */ - greenPWM = (Result[1] & 0xf0) >> 4; - /* Red LED duty cycle is bits 3 - 0 of returned byte 1 */ - redPWM = Result[1] & 0x0f; - - /* If settings bit 5 is set (1) output is enabled */ - /* if settings bit 4 is set (1) powersave mode is not set */ - if(48 == settings) - { - enabled = TRUE; - notPowerSave = TRUE; - } - else if(32 == settings) - { - enabled = TRUE; - } - else if(16 == settings) - { - notPowerSave = TRUE; - } - - RGBLED_AppCustomData.Settings.Enabled = enabled; - RGBLED_AppCustomData.Settings.NotPowerSave = notPowerSave; - RGBLED_AppCustomData.Settings.RedDutyCycle = redPWM; - RGBLED_AppCustomData.Settings.GreenDutyCycle = greenPWM; - RGBLED_AppCustomData.Settings.BlueDutyCycle = bluePWM; - -end_of_function: - return (returnBool); -} - - -boolean RGBLED_Custom_Validate(void) -{ - boolean returnBool = FALSE; - boolean enabled = FALSE; - boolean notPowerSave = FALSE; - uint8 settings = 0; - uint8 redPWM = 0; - uint8 greenPWM = 0; - uint8 bluePWM = 0; - - /* The TCA62724FMG LED driver returns 2-bytes */ - uint8 Result[2] = {0, 0}; - - returnBool = RGBLED_Custom_Receive(Result, sizeof(Result)); - - if(FALSE == returnBool) - { - /* If receive was unsuccessful return FALSE */ - goto end_of_function; - } - - /* Settings are bits 7 - 4 of returned byte 0 */ - settings = Result[0] & 0xf0; - /* Blue LED duty cycle is bits 3 - 0 of returned byte 0 */ - bluePWM = Result[0] & 0x0f; - /* Green LED duty cycle is bits 7 - 4 of returned byte 1 */ - greenPWM = (Result[1] & 0xf0) >> 4; - /* Red LED duty cycle is bits 3 - 0 of returned byte 1 */ - redPWM = Result[1] & 0x0f; - - /* If settings bit 5 is set (1) output is enabled */ - /* if settings bit 4 is set (1) powersave mode is not set */ - if(48 == settings) - { - enabled = TRUE; - notPowerSave = TRUE; - } - else if(32 == settings) - { - enabled = TRUE; - } - else if(16 == settings) - { - notPowerSave = TRUE; - } - - if( RGBLED_AppCustomData.Settings.Enabled == enabled && - RGBLED_AppCustomData.Settings.NotPowerSave == notPowerSave && - RGBLED_AppCustomData.Settings.RedDutyCycle == redPWM && - RGBLED_AppCustomData.Settings.GreenDutyCycle == greenPWM && - RGBLED_AppCustomData.Settings.BlueDutyCycle == bluePWM ) - { - returnBool = TRUE; - } - else - { - returnBool = FALSE; - } - -end_of_function: - return (returnBool); -} - - -boolean RGBLED_Custom_Send(uint8 *Buffer, size_t Length) -{ - int returnCode = 0; - boolean returnBool = FALSE; - struct i2c_msg Messages[1]; - struct i2c_rdwr_ioctl_data Packets; - - Messages[0].addr = RGBLED_I2C_ADDRESS; - Messages[0].flags = 0; - Messages[0].buf = Buffer; - Messages[0].len = Length; - - Packets.msgs = Messages; - Packets.nmsgs = 1; - - CFE_ES_PerfLogEntry(RGBLED_SEND_PERF_ID); - returnCode = RGBLED_Ioctl(RGBLED_AppCustomData.DeviceFd, I2C_RDWR, &Packets); - CFE_ES_PerfLogExit(RGBLED_SEND_PERF_ID); - - if (-1 == returnCode) - { - (void) CFE_EVS_SendEvent(RGBLED_DEVICE_ERR_EID, CFE_EVS_ERROR, - "RGBLED ioctl returned %i", errno); - returnBool = FALSE; - } - else - { - returnBool = TRUE; - } - - return (returnBool); -} - - -boolean RGBLED_Custom_Receive(uint8 *Buffer, size_t Length) -{ - int returnCode = 0; - boolean returnBool = FALSE; - struct i2c_msg messages[1]; - struct i2c_rdwr_ioctl_data Packets; - - messages[0].addr = RGBLED_I2C_ADDRESS; - messages[0].flags = RGBLED_I2C_M_READ; - messages[0].buf = Buffer; - messages[0].len = Length; - - Packets.msgs = messages; - Packets.nmsgs = 1; - - CFE_ES_PerfLogEntry(RGBLED_RECEIVE_PERF_ID); - returnCode = RGBLED_Ioctl(RGBLED_AppCustomData.DeviceFd, I2C_RDWR, &Packets); - CFE_ES_PerfLogExit(RGBLED_RECEIVE_PERF_ID); - - if (-1 == returnCode) - { - (void) CFE_EVS_SendEvent(RGBLED_DEVICE_ERR_EID, CFE_EVS_ERROR, - "RGBLED ioctl returned %i", errno); - returnBool = FALSE; - } - else - { - returnBool = TRUE; - } - - return (returnBool); -} - - -boolean RGBLED_Custom_SetColor(uint8 Red, uint8 Green, uint8 Blue) -{ - boolean returnBool = FALSE; - /* Scale from 0-255 to 0-15 */ - uint8 redPWM = Red >> 4; - uint8 greenPWM = Green >> 4; - uint8 bluePWM = Blue >> 4; - - uint8 data[6] = { RGBLED_I2C_SUB_ADDR_PWM0, redPWM, - RGBLED_I2C_SUB_ADDR_PWM1, greenPWM, - RGBLED_I2C_SUB_ADDR_PWM2, bluePWM }; - - returnBool = RGBLED_Custom_Send(&data[0], sizeof(data)); - - /* Set the current value */ - RGBLED_AppCustomData.Settings.RedDutyCycle = redPWM; - RGBLED_AppCustomData.Settings.GreenDutyCycle = greenPWM; - RGBLED_AppCustomData.Settings.BlueDutyCycle = bluePWM; - - returnBool = RGBLED_Custom_Validate(); - if(FALSE == returnBool) - { - (void) CFE_EVS_SendEvent(RGBLED_DEVICE_ERR_EID, CFE_EVS_ERROR, - "RGBLED device settings validation failed"); - } - - return (returnBool); -} - - -boolean RGBLED_Custom_SelfTest(void) -{ - boolean returnBool = TRUE; - int32 returnCode = 0; - - /* Create the self-test task */ - returnCode = CFE_ES_CreateChildTask( - &RGBLED_AppCustomData.ChildTaskID, - RGBLED_SELFTEST_TASK_NAME, - RGBLED_AppCustomData.SelfTestTask, - 0, - CFE_ES_DEFAULT_STACK_SIZE, - RGBLED_SELFTEST_TASK_PRIORITY, - RGBLED_SELFTEST_TASK_FLAGS); - - if(returnCode != CFE_SUCCESS) - { - return FALSE; - } - return (returnBool); -} - - -void RGBLED_Custom_SelfTest_Task(void) -{ - uint32 iStatus = -1; - uint8 redPWM; - uint8 greenPWM; - uint8 bluePWM; - - /* Save the original settings */ - redPWM = RGBLED_AppCustomData.Settings.RedDutyCycle; - greenPWM = RGBLED_AppCustomData.Settings.GreenDutyCycle; - bluePWM = RGBLED_AppCustomData.Settings.BlueDutyCycle; - - iStatus = CFE_ES_RegisterChildTask(); - - if (iStatus == CFE_SUCCESS) - { - RGBLED_Custom_SetColor(255, 0, 0); - sleep(1); - - RGBLED_Custom_SetColor(0, 255, 0); - sleep(1); - - RGBLED_Custom_SetColor(0, 0, 255); - sleep(1); - - RGBLED_Custom_SetColor(255, 255, 255); - sleep(1); - - RGBLED_Custom_SetColor(0, 0, 0); - sleep(1); - /* Restore the original settings */ - RGBLED_Custom_SetColor((redPWM << 4), (greenPWM << 4), (bluePWM << 4)); - - } - (void) CFE_EVS_SendEvent(RGBLED_DEVICE_INF_EID, CFE_EVS_INFORMATION, - "RGBLED Device completed self test"); - /* Set app status in none custom code back to previous value */ - RGBLED_SelfTest_Complete(); - - /* The child task was successfully created so exit from it */ - if (iStatus == CFE_SUCCESS) - { - CFE_ES_ExitChildTask(); - } -} - - - -boolean RGBLED_Custom_Uninit(void) -{ - boolean returnBool = TRUE; - int returnCode = 0; - - returnBool = RGBLED_Custom_Disable(); - if(FALSE == returnBool) - { - (void) CFE_EVS_SendEvent(RGBLED_DEVICE_ERR_EID, CFE_EVS_ERROR, - "RGBLED Device disable error"); - } - else - { - RGBLED_AppCustomData.Status == RGBLED_CUSTOM_INITIALIZED; - } - - returnCode = close(RGBLED_AppCustomData.DeviceFd); - if (-1 == returnCode) - { - (void) CFE_EVS_SendEvent(RGBLED_DEVICE_ERR_EID, CFE_EVS_ERROR, - "RGBLED Device close errno: %i", errno); - returnBool = FALSE; - } - else - { - RGBLED_AppCustomData.Status = RGBLED_CUSTOM_UNINITIALIZED; - } - return (returnBool); -} - - diff --git a/config/obc/ppd/target/apps/rgbled/src/rgbled_driver.h b/config/obc/ppd/target/apps/rgbled/src/rgbled_driver.h deleted file mode 100644 index c94c25074..000000000 --- a/config/obc/ppd/target/apps/rgbled/src/rgbled_driver.h +++ /dev/null @@ -1,363 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ - -#ifndef RGBLED_DRIVER_H -#define RGBLED_DRIVER_H - -#ifdef __cplusplus -extern "C" { -#endif - -/************************************************************************ -** Includes -*************************************************************************/ -#include "rgbled_custom.h" - -/************************************************************************ -** Local Defines -*************************************************************************/ -/** \brief I2C slave address of the TCA62724FMG LED driver in hex. -** -** \par Description: -** 8-bit address in little-endian format is 1010101(R/W) where R/W -** bit-0 indicates read (bit set to "H") or write mode (bit set to -** "L"). This is the 7-bit address without the R/W bit. -*/ -#define RGBLED_I2C_ADDRESS (0x55) - -/** \brief I2C address write mode. -** -** \par Description: -** Bit-0 of the I2C slave address for write mode. -*/ -#define RGBLED_I2C_ADDRESS_WRITE (0x00) - -/** \brief I2C address read mode. -** -** \par Description: -** Bit-0 of the I2C slave address for read mode. -*/ -#define RGBLED_I2C_ADDRESS_READ (0x01) - -/** \brief I2C sub-address for PWM Output 0 connected to the blue LED. -** -** \par Description: -** 8-bit address in little-endian format is (AI)0000001 where AI -** is the auto-increment OFF (bit set to "H") or auto-increment ON -** (bit set to "L"). This is the 8-bit address with AI OFF. -*/ -#define RGBLED_I2C_SUB_ADDR_PWM0 (0x81) - -/** \brief I2C sub-address for PWM Output 1 connected to the green LED. -** -** \par Description: -** 8-bit address in little-endian format is (AI)0000010 where AI -** is the auto-increment OFF (bit set to "H") or auto-increment ON -** (bit set to "L"). This is the 8-bit address with AI OFF. -*/ -#define RGBLED_I2C_SUB_ADDR_PWM1 (0x82) - -/** \brief I2C sub-address for PWM Output 2 connected to the red LED. -** -** \par Description: -** 8-bit address in little-endian format is (AI)0000011 where AI -** is the auto-increment OFF (bit set to "H") or auto-increment ON -** (bit set to "L"). This is the 8-bit address with AI OFF. -*/ -#define RGBLED_I2C_SUB_ADDR_PWM2 (0x83) - -/** \brief I2C sub-address for settings. -** -** \par Description: -** 8-bit address in little-endian format is (AI)0000100 where AI -** is the auto-increment OFF (bit set to "H") or auto-increment ON -** (bit set to "L"). This is the 8-bit address with AI OFF. -*/ -#define RGBLED_I2C_SUB_ADDR_SETTINGS (0x84) - -/** \brief I2C setting NOT powersave mode (NOT SHDN). -** -** \par Description: -** Bit-0 of the "ENABLE/NOT SHDN DATA" byte. Set to "H" output -** blinks at PWM0, PWM1, PWM2 rate. -*/ -#define RGBLED_I2C_SET_NOT_POWERSAVE (0x01) - -/** \brief I2C setting powersave mode (NOT SHDN). -** -** \par Description: -** Bit-0 of the "ENABLE/NOT SHDN DATA" byte. Set to "L" -** power-saving mode. -*/ -#define RGBLED_I2C_SET_POWERSAVE (0x00) - -/** \brief I2C setting enable (ENABLE). -** -** \par Description: -** Bit-1 of the "ENABLE/NOT SHDN DATA" byte. Set to "H" output -** blinks at PWM0, PWM1, PWM2 rate. -*/ -#define RGBLED_I2C_SET_ENABLE (0x02) - -/** \brief I2C setting NOT enable (ENABLE). -** -** \par Description: -** Bit-1 of the "ENABLE/NOT SHDN DATA" byte. Set to "L" output -** is OFF. -*/ -#define RGBLED_I2C_SET_DISABLE (0x00) - -/** \brief Max brightness setting for an LED (max PWM duty cycle). -** -** \par Description: -** The PWM ON Duty DATA byte uses 4-bits (bit-3 through bit 0) to -** set brightness. -*/ -#define RGBLED_MAX_BRIGHTNESS (15) - -/** \brief Device path. -** -** \par Description: -** The I2C interface device path. The "-1" is the adapter number. -*/ -#define RGBLED_DEVICE_PATH "/dev/i2c-1" - -/** \brief Max device path. -** -** \par Description: -** None. -*/ -#define RGBLED_MAX_DEVICE_PATH OS_MAX_LOCAL_PATH_LEN - -/** \brief Retry attemps for interrupted ioctl calls. -** -** \par Limits: -** None. -*/ -#define RGBLED_MAX_RETRY_ATTEMPTS (2) - -/** \brief Sleep time micro seconds for interrupted calls. -** -** \par Limits: -** None. -*/ -#define RGBLED_MAX_RETRY_SLEEP_USEC (10) - -/** \brief Read data, from slave to master. -** -** \par Limits: -** None. -*/ -#define RGBLED_I2C_M_READ (0x0001) -/** \brief Streaming task priority -** -** \par Limits: -** 0 to MAX_PRIORITY (usually 255) -*/ -#define RGBLED_SELFTEST_TASK_PRIORITY (50) - -/** \brief Streaming task name -** -** \par Limits: -** OS_MAX_API_NAME -*/ -#define RGBLED_SELFTEST_TASK_NAME ("RGBLED_TEST") - -/************************************************************************ -** Structure Declarations -*************************************************************************/ - -/** - * \brief LED device status - */ -typedef enum -{ - /*! RGBLED status uninitialized */ - RGBLED_CUSTOM_UNINITIALIZED = 0, - /*! RGBLED status initialized */ - RGBLED_CUSTOM_INITIALIZED = 1, - /*! RGBLED status enabled */ - RGBLED_CUSTOM_ENABLED = 2 -} RGBLED_Custom_Status_t; - - -/** - * \brief LED device settings - */ -typedef struct -{ - /*! RGBLED device enabled */ - boolean Enabled; - /*! RGBLED NOT powersave */ - boolean NotPowerSave; - /*! RGBLED duty cycle of red LED */ - uint8 RedDutyCycle; - /*! RGBLED duty cycle of green LED */ - uint8 GreenDutyCycle; - /*! RGBLED duty cycle of blue LED */ - uint8 BlueDutyCycle; -} RGBLED_Device_Settings_t; - - -typedef struct -{ - /*! Device file descriptor */ - int DeviceFd; - /*! Path to device */ - char DevName[RGBLED_MAX_DEVICE_PATH]; - /*! The current device settings */ - RGBLED_Device_Settings_t Settings; - /*! The current device status */ - RGBLED_Custom_Status_t Status; - /*! Streaming child task identifier */ - uint32 ChildTaskID; - /*! Streaming task function pointer */ - CFE_ES_ChildTaskMainFuncPtr_t SelfTestTask; -} RGBLED_AppCustomData_t; - - -/************************************************************************ -** External Global Variables -*************************************************************************/ - -/************************************************************************ -** Function Prototypes -*************************************************************************/ - -/************************************************************************/ -/** \brief ioctl with limited EINTR retry attempts. -** -** \par Description -** This function is a wrapper for ioctl with retry attempts added. -** -** \param [in] fh file descriptor. -** \param [in] request code. -** \param [in] arg pointer to a device specific struct. -** -** \returns -** usually 0 for success and -1 for failure, see ioctl man-page for -** more info. -** \endreturns -** -*************************************************************************/ -int32 RGBLED_Ioctl(int fh, int request, void *arg); - -/************************************************************************/ -/** \brief Send via I2C to the device. -** -** \par Description -** Sends data to the device target (recipient). -** -** \param [in] Buffer The buffer to send. -** -** \param [in] Length The length of the buffer to write. -** -** \returns TRUE for success, FALSE for failure. -** -*************************************************************************/ -boolean RGBLED_Custom_Send(uint8 *Buffer, size_t Length); - -/************************************************************************/ -/** \brief Receive data via I2C from the device. -** -** \par Description -** Receives data to the device target (sender). -** -** \param [out] Buffer The buffer to write to. -** -** \param [in] Length The length of the buffer to read. -** -** \returns TRUE for success, FALSE for failure. -** -*************************************************************************/ -boolean RGBLED_Custom_Receive(uint8 *Buffer, size_t Length); - -/************************************************************************/ -/** \brief Start a self-test. -** -** \par Description -** Starts a self-test and returns to the device to its original -** state. -** -*************************************************************************/ -void RGBLED_Custom_SelfTest_Task(void); - -/************************************************************************/ -/** \brief Get the current state of the device. -** -** \par Description -** Gets the current device settings. -** -** \returns TRUE for success, FALSE for failure. -** -*************************************************************************/ -boolean RGBLED_Custom_GetSettings(void); - -/************************************************************************/ -/** \brief Validate the device settings. -** -** \par Description -** Validate the current device settings. -** -** \returns TRUE for success, FALSE for failure. -** -*************************************************************************/ -boolean RGBLED_Custom_Validate(void); - -/************************************************************************/ -/** \brief Enable the device. -** -** \par Description -** Enable the device. -** -** \returns TRUE for success, FALSE for failure. -** -*************************************************************************/ -boolean RGBLED_Custom_Enable(void); - -/************************************************************************/ -/** \brief Disable the device. -** -** \par Description -** Disable the device. -** -** \returns TRUE for success, FALSE for failure. -** -*************************************************************************/ -boolean RGBLED_Custom_Disable(void); - -#ifdef __cplusplus -} -#endif - -#endif /* RGBLED_DRIVER_H */ diff --git a/config/obc/ppd/target/apps/sens/CMakeLists.txt b/config/obc/ppd/target/apps/sens/CMakeLists.txt deleted file mode 100644 index adf1852a8..000000000 --- a/config/obc/ppd/target/apps/sens/CMakeLists.txt +++ /dev/null @@ -1,7 +0,0 @@ -set(APP_NAME sens) - -buildliner_add_table( - ${APP_NAME} - NAME sens_config - SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/tables/sens_config.c -) diff --git a/config/obc/ppd/target/apps/sens/tables/sens_config.c b/config/obc/ppd/target/apps/sens/tables/sens_config.c deleted file mode 100644 index b0b7a59c2..000000000 --- a/config/obc/ppd/target/apps/sens/tables/sens_config.c +++ /dev/null @@ -1,222 +0,0 @@ -/* -** Pragmas -*/ - -/* -** Include Files -*/ -#include "cfe_tbl_filedef.h" -#include "sens_tbldefs.h" - -/* -** Local Defines -*/ - -/* -** Local Structure Declarations -*/ -static OS_USED CFE_TBL_FileDef_t CFE_TBL_FileDef = -{ - /* Content format: ObjName[64], TblName[38], Desc[32], TgtFileName[20], ObjSize - ** ObjName - variable name of config table, e.g., CI_ConfigDefTbl[] - ** TblName - app's table name, e.g., CI.CONFIG_TBL, where CI is the same app name - ** used in cfe_es_startup.scr, and CI_defConfigTbl is the same table - ** name passed in to CFE_TBL_Register() - ** Desc - description of table in string format - ** TgtFileName[20] - table file name, compiled as .tbl file extension - ** ObjSize - size of the entire table - */ - - "SENS_ConfigTbl", "SENS.CONFIG_TBL", "SENS default config table", - "sens_config.tbl", (sizeof(SENS_ConfigTbl_t)) -}; - -/* -** External Global Variables -*/ - -/* -** Global Variables -*/ - -/* Default SENS config table data */ -SENS_ConfigTbl_t SENS_ConfigTbl = -{ - /* Values here based on: - * https://docs.google.com/spreadsheets/d/1paD_elfTrYbCI3wqHR-x-OO1nnJUPQNuIw-M6-BSDVA/edit?usp=sharing - * - * Expected RC mapping: - * CH 1: Roll - * CH 2: Pitch - * CH 3: Throttle - * CH 4: Yaw - */ - - /* RC%d_MIN (0..17) */ - 982.0f, // Throttle min - 982.0f, // Roll min - 982.0f, // Pitch min - 982.0f, // Yaw min - 982.0f, - 982.0f, - 982.0f, - 982.0f, - 982.0f, - 982.0f, - 982.0f, - 982.0f, - 982.0f, - 982.0f, - 982.0f, - 982.0f, - 982.0f, - 982.0f, - /* RC%d_TRIM (0..17) */ - 982.0f, // Throttle trim - set this equal to min - 1493.0f, // Roll trim - 1493.0f, // Pitch trim - 1493.0f, // Yaw trim - 1493.0f, - 1493.0f, - 1493.0f, - 1493.0f, - 1493.0f, - 1493.0f, - 1493.0f, - 1493.0f, - 1493.0f, - 1493.0f, - 1493.0f, - 1493.0f, - 1493.0f, - 1493.0f, - /* RC%d_MAX (0..17) */ - 2006.0f, // Throttle max - 2006.0f, // Roll max - 2006.0f, // Pitch max - 2006.0f, // Yaw max - 2006.0f, - 2006.0f, - 2006.0f, - 2006.0f, - 2006.0f, - 2006.0f, - 2006.0f, - 2006.0f, - 2006.0f, - 2006.0f, - 2006.0f, - 2006.0f, - 2006.0f, - 2006.0f, - /* RC%d_REV (0..17) */ - 1.0f, - 1.0f, - 1.0f, - 1.0f, - 1.0f, - 1.0f, - 1.0f, - 1.0f, - 1.0f, - 1.0f, - 1.0f, - 1.0f, - 1.0f, - 1.0f, - 1.0f, - 1.0f, - 1.0f, - 1.0f, - /* RC%d_DZ (0..17) */ - 10.0f, - 10.0f, - 10.0f, - 10.0f, - 10.0f, - 10.0f, - 10.0f, - 10.0f, - 10.0f, - 10.0f, - 10.0f, - 10.0f, - 10.0f, - 10.0f, - 10.0f, - 10.0f, - 10.0f, - 10.0f, - - /* RC_MAP_ROLL */ 2, - /* RC_MAP_PITCH */ 3, - /* RC_MAP_YAW */ 4, - /* RC_MAP_THROTTLE */ 1, - /* RC_MAP_FAILSAFE */ 0, - - /* RC_MAP_MODE_SW */ 8, - /* RC_MAP_RETURN_SW */ 12, - /* RC_MAP_RATT_SW */ 10, - /* RC_MAP_POSCTL_SW */ 0, - /* RC_MAP_LOITER_SW */ 0, - /* RC_MAP_ACRO_SW */ 0, - /* RC_MAP_OFFB_SW */ 0, - /* RC_MAP_KILL_SW */ 7, - /* RC_MAP_ARM_SW */ 6, - /* RC_MAP_TRANS_SW */ 11, - /* RC_MAP_GEAR_SW */ 5, - /* RC_MAP_STAB_SW */ 0, - /* RC_MAP_MAN_SW */ 0, - /* RC_MAP_FLAPS */ 0, - /* RC_MAP_ALTCTL_SW */ 0, - - /* RC_MAP_AUX1 */ 0, - /* RC_MAP_AUX2 */ 0, - /* RC_MAP_AUX3 */ 0, - /* RC_MAP_AUX4 */ 0, - /* RC_MAP_AUX5 */ 0, - - /* RC_MAP_PARAM%d (1) */ 0, - /* RC_MAP_PARAM%d (2) */ 0, - /* RC_MAP_PARAM%d (3) */ 0, - - /* RC_MAP_FLTMODE */ 0, - - /* RC_FAILS_THR */ 0, - /* RC_ASSIST_TH */ 0.2313f, - /* RC_AUTO_TH */ 0.9770f, - /* RC_RATT_TH */ 0.5f, - /* RC_POSCTL_TH */ 0.6185f, - /* RC_RETURN_TH */ 0.5f, - /* RC_LOITER_TH */ 0.5f, - /* RC_ACRO_TH */ 0.5f, - /* RC_OFFB_TH */ 0.5f, - /* RC_KILLSWITCH_TH */ 0.5f, - /* RC_ARMSWITCH_TH */ 0.5f, - /* RC_TRANS_TH */ 0.25f, - /* RC_GEAR_TH */ 0.25f, - /* RC_STAB_TH */ 0.5f, - /* RC_MAN_TH */ 0.5f, - /* RC_ALTCTL_TH */ 0.5f, - - /* RC_FLT_SMP_RATE */ 50.0f, - /* RC_FLT_CUTOFF */ 10.0f, - - /* ModeSwitchControl */ 1 -}; - -/* -** Local Variables -*/ - -/* -** Function Prototypes -*/ - -/* -** Function Definitions -*/ - -/*======================================================================================= -** End of file sens_config.c -**=====================================================================================*/ diff --git a/config/obc/ppd/target/apps/ulr/CMakeLists.txt b/config/obc/ppd/target/apps/ulr/CMakeLists.txt deleted file mode 100644 index cf90f209c..000000000 --- a/config/obc/ppd/target/apps/ulr/CMakeLists.txt +++ /dev/null @@ -1,7 +0,0 @@ -set(APP_NAME ulr) - -#buildliner_add_app_unit_test_src( -# ${APP_NAME} -# SOURCES -# ${CMAKE_CURRENT_SOURCE_DIR}/ulr_custom.cpp -#) diff --git a/config/obc/ppd/target/apps/ulr/tables/ulr_config.c b/config/obc/ppd/target/apps/ulr/tables/ulr_config.c deleted file mode 100644 index 329984373..000000000 --- a/config/obc/ppd/target/apps/ulr/tables/ulr_config.c +++ /dev/null @@ -1,63 +0,0 @@ -/* -** Pragmas -*/ - -/* -** Include Files -*/ -#include "cfe_tbl_filedef.h" -#include "ulr_tbldefs.h" - -/* -** Local Defines -*/ - -/* -** Local Structure Declarations -*/ -static OS_USED CFE_TBL_FileDef_t CFE_TBL_FileDef = -{ - /* Content format: ObjName[64], TblName[38], Desc[32], TgtFileName[20], ObjSize - ** ObjName - variable name of config table, e.g., CI_ConfigDefTbl[] - ** TblName - app's table name, e.g., CI.CONFIG_TBL, where CI is the same app name - ** used in cfe_es_startup.scr, and CI_defConfigTbl is the same table - ** name passed in to CFE_TBL_Register() - ** Desc - description of table in string format - ** TgtFileName[20] - table file name, compiled as .tbl file extension - ** ObjSize - size of the entire table - */ - - "ULR_ConfigTbl", "ULR.CONFIG_TBL", "ULR default config table", - "ulr_config.tbl", (sizeof(ULR_ConfigTbl_t)) -}; - -/* -** External Global Variables -*/ - -/* -** Global Variables -*/ - -/* Default ULR config table data */ -ULR_ConfigTbl_t ULR_ConfigTbl = -{ - /* TODO: Define table. */ -}; - -/* -** Local Variables -*/ - -/* -** Function Prototypes -*/ - -/* -** Function Definitions -*/ - -/*======================================================================================= -** End of file ulr_config.c -**=====================================================================================*/ - diff --git a/config/obc/ppd/target/apps/ulr/ulr_custom.cpp b/config/obc/ppd/target/apps/ulr/ulr_custom.cpp deleted file mode 100644 index 5a87978a4..000000000 --- a/config/obc/ppd/target/apps/ulr/ulr_custom.cpp +++ /dev/null @@ -1,139 +0,0 @@ -#include "ulr_app.h" -#include -#include -#include -#include -#include -#include -#include - -#define ULR_PORT_SPEED (B115200) - -typedef struct -{ - int FD; -} ULR_CustomData_t; - -ULR_CustomData_t ULR_CustomData; - -int32 ULR::InitDevice(void) -{ - int32 iStatus = CFE_SUCCESS; - termios uart_config; - int termios_state; - - ULR_CustomData.FD = open(ULR_CUSTOM_PORT_PATH, O_RDWR | O_NOCTTY); - if (ULR_CustomData.FD < 0) - { - (void) CFE_EVS_SendEvent(ULR_CUSTOM_INIT_ERR_EID, CFE_EVS_ERROR, - "Failed to open device speed. errno=%u ('%s').", errno, - strerror(errno)); - iStatus = -1; - goto end_of_function; - } - - /* fill the struct for the new configuration */ - tcgetattr(ULR_CustomData.FD, &uart_config); - - // Input flags - Turn off input processing - // - // convert break to null byte, no CR to NL translation, - // no NL to CR translation, don't mark parity errors or breaks - // no input parity check, don't strip high bit off, - // no XON/XOFF software flow control - // - uart_config.c_iflag &= ~(IGNBRK | BRKINT | ICRNL | - INLCR | PARMRK | INPCK | ISTRIP | IXON); - - // - // Output flags - Turn off output processing - // - // no CR to NL translation, no NL to CR-NL translation, - // no NL to CR translation, no column 0 CR suppression, - // no Ctrl-D suppression, no fill characters, no case mapping, - // no local output processing - // - //// config.c_oflag &= ~(OCRNL | ONLCR | ONLRET | - // ONOCR | ONOEOT| OFILL | OLCUC | OPOST); - - /* no parity, one stop bit */ - uart_config.c_cflag &= ~(CSTOPB | PARENB); - - // - // No line processing - // - // echo off, echo newline off, canonical mode off, - // extended input processing off, signal chars off - // - uart_config.c_lflag &= ~(ECHO | ECHONL | ICANON | IEXTEN | ISIG); - - uart_config.c_oflag = 0; - - /* clear ONLCR flag (which appends a CR for every LF) */ - uart_config.c_oflag &= ~ONLCR; - - /* set baud rate */ - if ((termios_state = cfsetispeed(&uart_config, ULR_PORT_SPEED)) < 0) - { - (void) CFE_EVS_SendEvent(ULR_CUSTOM_INIT_ERR_EID, CFE_EVS_ERROR, - "Failed to set input speed. errno=%u ('%s').", errno, - strerror(errno)); - iStatus = -1; - goto end_of_function; - } - - if ((termios_state = cfsetospeed(&uart_config, ULR_PORT_SPEED)) < 0) - { - (void) CFE_EVS_SendEvent(ULR_CUSTOM_INIT_ERR_EID, CFE_EVS_ERROR, - "Failed to set output speed. errno=%u ('%s').", errno, - strerror(errno)); - iStatus = -1; - goto end_of_function; - } - - if ((termios_state = tcsetattr(ULR_CustomData.FD, TCSANOW, &uart_config)) < 0) - { - (void) CFE_EVS_SendEvent(ULR_CUSTOM_INIT_ERR_EID, CFE_EVS_ERROR, - "Failed to set port attributes. errno=%u ('%s').", errno, - strerror(errno)); - iStatus = -1; - goto end_of_function; - } - -end_of_function: - return iStatus; -} - - -int32 ULR::ReadDevice(uint8 *Buffer, uint32 *Size) -{ - int32 iStatus = CFE_SUCCESS; - int32 bytesRead = 0; - - if((Buffer == 0) || (Size == 0)) - { - iStatus = -1; - goto end_of_function; - } - - bytesRead = read(ULR_CustomData.FD, (void*)&Buffer[0], (int)*Size); - if(bytesRead < 0) - { - iStatus = -1; - } - else - { - *Size = bytesRead; - } - -end_of_function: - return iStatus; -} - - -void ULR::CloseDevice(void) -{ - close(ULR_CustomData.FD); - -} - diff --git a/config/obc/ppd/target/apps/vc/CMakeLists.txt b/config/obc/ppd/target/apps/vc/CMakeLists.txt deleted file mode 100644 index 70e2b99f0..000000000 --- a/config/obc/ppd/target/apps/vc/CMakeLists.txt +++ /dev/null @@ -1,72 +0,0 @@ -set(APP_NAME vc) - -buildliner_add_app_unit_test(vc-custom-ut - UTASSERT - SOURCES - # Unit test runner - ${CMAKE_CURRENT_SOURCE_DIR}/unit_test/vc_custom_testrunner.c - # Unit test for custom device module v4l - ${CMAKE_CURRENT_SOURCE_DIR}/unit_test/vc_dev_io_v4l_test/vc_app_custom_device_test.c - ${CMAKE_CURRENT_SOURCE_DIR}/unit_test/vc_dev_io_v4l_test/vc_app_custom_device_test.h - ${CMAKE_CURRENT_SOURCE_DIR}/unit_test/vc_dev_io_v4l_test/vc_custom_device_test_utils.c - ${CMAKE_CURRENT_SOURCE_DIR}/unit_test/vc_dev_io_v4l_test/vc_custom_device_test_utils.h - # Unit test for custom transmit module - ${CMAKE_CURRENT_SOURCE_DIR}/unit_test/vc_transmit_udp_test/vc_app_custom_transmit_test.c - ${CMAKE_CURRENT_SOURCE_DIR}/unit_test/vc_transmit_udp_test/vc_app_custom_transmit_test.h - ${CMAKE_CURRENT_SOURCE_DIR}/unit_test/vc_transmit_udp_test/vc_custom_transmit_test_utils.c - ${CMAKE_CURRENT_SOURCE_DIR}/unit_test/vc_transmit_udp_test/vc_custom_transmit_test_utils.h - # Unit test for shared custom module - ${CMAKE_CURRENT_SOURCE_DIR}/unit_test/vc_custom_shared_test/vc_app_custom_shared_test.c - ${CMAKE_CURRENT_SOURCE_DIR}/unit_test/vc_custom_shared_test/vc_app_custom_shared_test.h - ${CMAKE_CURRENT_SOURCE_DIR}/unit_test/vc_custom_shared_test/vc_custom_shared_test_utils.c - ${CMAKE_CURRENT_SOURCE_DIR}/unit_test/vc_custom_shared_test/vc_custom_shared_test_utils.h - # Platform stubs - ${CMAKE_CURRENT_SOURCE_DIR}/unit_test/vc_platform_stubs/vc_platform_stubs.c - ${CMAKE_CURRENT_SOURCE_DIR}/unit_test/vc_platform_stubs/vc_platform_stubs.h - # Custom stubs - ${CMAKE_CURRENT_SOURCE_DIR}/unit_test/vc_app_custom_stubs/vc_app_custom_stubs.c - ${CMAKE_CURRENT_SOURCE_DIR}/unit_test/vc_app_custom_stubs/vc_app_custom_stubs.h - # VC App stubs - ${CMAKE_CURRENT_SOURCE_DIR}/unit_test/vc_app_stubs/vc_app_stubs.c - ${CMAKE_CURRENT_SOURCE_DIR}/unit_test/vc_app_stubs/vc_app_stubs.h - # Custom code (code under test) - ${CMAKE_CURRENT_SOURCE_DIR}/src/vc_transmit_udp/vc_transmit_udp.c - ${CMAKE_CURRENT_SOURCE_DIR}/src/vc_transmit_udp/vc_transmit_udp.h - # Custom device code v4l - ${CMAKE_CURRENT_SOURCE_DIR}/src/vc_dev_io_v4l/vc_dev_io_v4l.c - ${CMAKE_CURRENT_SOURCE_DIR}/src/vc_dev_io_v4l/vc_dev_io_v4l.h - # Custom shared code - ${CMAKE_CURRENT_SOURCE_DIR}/src/vc_custom.c - ${CMAKE_CURRENT_SOURCE_DIR}/src/vc_custom_shared.h - - INCLUDES - # Custom code under test - ${CMAKE_CURRENT_SOURCE_DIR}/src/ - # Custom v4l code - ${CMAKE_CURRENT_SOURCE_DIR}/src/vc_dev_io_v4l/ - # Custom udp code - ${CMAKE_CURRENT_SOURCE_DIR}/src/vc_transmit_udp/ - # Test code - ${CMAKE_CURRENT_SOURCE_DIR}/unit_test/ - # Custom v4l code - ${CMAKE_CURRENT_SOURCE_DIR}/unit_test/vc_dev_io_v4l_test/ - # Custom udp transmit code - ${CMAKE_CURRENT_SOURCE_DIR}/unit_test/vc_transmit_udp_test/ - ${CMAKE_CURRENT_SOURCE_DIR}/unit_test/vc_transmit_udp_test/ - ${CMAKE_CURRENT_SOURCE_DIR}/unit_test/vc_platform_stubs/ - ${CMAKE_CURRENT_SOURCE_DIR}/unit_test/vc_app_stubs/ - ${CMAKE_CURRENT_SOURCE_DIR}/unit_test/vc_custom_shared_test/ - # Sealed code - ${PROJECT_SOURCE_DIR}/apps/vc/fsw/src/ - - WRAPPERS - # Wrapped functions (see platform stubs) - ioctl - open - close - select - socket - bind - sendto - recv -) diff --git a/config/obc/ppd/target/apps/vc/src/CMakeLists.txt b/config/obc/ppd/target/apps/vc/src/CMakeLists.txt deleted file mode 100644 index 89d4afd8b..000000000 --- a/config/obc/ppd/target/apps/vc/src/CMakeLists.txt +++ /dev/null @@ -1,8 +0,0 @@ -# Set source for custom code. -set(APP_CUSTOM_SRC - ${CMAKE_CURRENT_SOURCE_DIR}/vc_transmit_udp/vc_transmit_udp.c - ${CMAKE_CURRENT_SOURCE_DIR}/vc_dev_io_v4l/vc_dev_io_v4l.c - ${CMAKE_CURRENT_SOURCE_DIR}/vc_custom.c - PARENT_SCOPE - ) - diff --git a/config/obc/ppd/target/apps/vc/src/vc_custom.c b/config/obc/ppd/target/apps/vc/src/vc_custom.c deleted file mode 100644 index ea878486f..000000000 --- a/config/obc/ppd/target/apps/vc/src/vc_custom.c +++ /dev/null @@ -1,246 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ - -#include "vc_custom_shared.h" -#include "vc_cmds.h" -#include - -/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ -/* */ -/* Process New Custom Commands. Raise an error event if the */ -/* command is unknown. */ -/* */ -/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ -void VC_ProcessNewCustomCmds(CFE_SB_Msg_t* MsgPtr) -{ - uint32 uiCmdCode=0; - - if (MsgPtr != NULL) - { - uint16 inSize = CFE_SB_GetTotalMsgLength(MsgPtr); - uiCmdCode = CFE_SB_GetCmdCode(MsgPtr); - - switch (uiCmdCode) - { - case VC_STARTSTREAMING_CC: - { - VC_StartStreamingCmd(MsgPtr); - break; - } - case VC_STOPSTREAMING_CC: - { - VC_StopStreamingCmd(MsgPtr); - break; - } - default: - { - VC_AppData.HkTlm.usCmdErrCnt++; - (void) CFE_EVS_SendEvent(VC_MSGID_ERR_EID, CFE_EVS_ERROR, - "Recvd invalid cmdId (%u)", (unsigned int)uiCmdCode); - break; - } - } - } -} - - -void VC_StartStreamingCmd(CFE_SB_Msg_t* MsgPtr) -{ - VC_StartStreamCmd_t *CmdPtr = 0; - - uint16 ExpectedLength = sizeof(VC_StartStreamCmd_t); - - /* Verify command packet length */ - if (VC_VerifyCmdLength(MsgPtr, ExpectedLength)) - { - (void) CFE_EVS_SendEvent(VC_CMD_INF_EID, CFE_EVS_INFORMATION, "Start Streaming command received"); - - if (VC_AppData.AppState == VC_INITIALIZED) - { - CmdPtr = ((VC_StartStreamCmd_t *) MsgPtr); - - /* - ** NUL terminate the very end of the address string as a - ** safety measure - */ - CmdPtr->Address[VC_ADDRESS_LENGTH - 1] = '\0'; - - /* - ** Check if the address string is a nul string - */ - if(strlen(CmdPtr->Address) == 0) - { - VC_AppData.HkTlm.usCmdErrCnt++; - (void) CFE_EVS_SendEvent(VC_ADDR_NUL_ERR_EID, CFE_EVS_ERROR, - "NUL (empty) string specified for address"); - } - /* Check if the address is valid */ - else if (FALSE == VC_Address_Verification(CmdPtr->Address)) - { - VC_AppData.HkTlm.usCmdErrCnt++; - (void) CFE_EVS_SendEvent(VC_ADDR_ERR_EID, CFE_EVS_ERROR, - "Invalid string specified for address"); - } - /* Update the configuration */ - else if (FALSE == VC_Update_Destination(CmdPtr->Address, CmdPtr->Port)) - { - VC_AppData.HkTlm.usCmdErrCnt++; - (void) CFE_EVS_SendEvent(VC_INIT_ERR_EID, CFE_EVS_ERROR, - "Destination update failed in cmd start streaming"); - } - ///* Call VC_Transmit_Uninit() */ - //else if (FALSE == VC_Transmit_Uninit()) - //{ - //VC_AppData.HkTlm.usCmdErrCnt++; - //(void) CFE_EVS_SendEvent(VC_UNINIT_ERR_EID, CFE_EVS_ERROR, - //"VC_Transmit_Uninit failed in cmd start streaming"); - //} - ///* Call VC_Transmit_Init() */ - //else if (FALSE == VC_Transmit_Init()) - //{ - //VC_AppData.HkTlm.usCmdErrCnt++; - //(void) CFE_EVS_SendEvent(VC_INIT_ERR_EID, CFE_EVS_ERROR, - //"VC_Transmit_Init failed in cmd start streaming"); - //} - /* Call VC_Devices_Start() */ - else if (FALSE == VC_Devices_Start()) - { - VC_AppData.HkTlm.usCmdErrCnt++; - (void) CFE_EVS_SendEvent(VC_INIT_ERR_EID, CFE_EVS_ERROR, - "VC_Devices_Start failed in cmd start streaming"); - } - /* Success! */ - else - { - VC_AppData.AppState = VC_STREAMING; - VC_AppData.HkTlm.usCmdCnt++; - (void) CFE_EVS_SendEvent(VC_CMD_INF_EID, CFE_EVS_INFORMATION, - "VC started streaming to %s:%u", CmdPtr->Address, CmdPtr->Port); - } - } - else - { - VC_AppData.HkTlm.usCmdErrCnt++; - (void) CFE_EVS_SendEvent(VC_CMD_ERR_EID, CFE_EVS_ERROR, "VC is already streaming"); - } - } - return; -} /* End of VC_StartStreamingCmd() */ - - -void VC_StopStreamingCmd(CFE_SB_Msg_t* MsgPtr) -{ - uint16 ExpectedLength = sizeof(VC_NoArgCmd_t); - - /* Verify command packet length */ - if (VC_VerifyCmdLength(MsgPtr, ExpectedLength)) - { - (void) CFE_EVS_SendEvent(VC_CMD_INF_EID, CFE_EVS_INFORMATION, "Stop Streaming command received"); - - if (VC_AppData.AppState == VC_STREAMING) - { - if(FALSE == VC_Devices_Stop()) - { - VC_AppData.HkTlm.usCmdErrCnt++; - (void) CFE_EVS_SendEvent(VC_UNINIT_ERR_EID, CFE_EVS_ERROR, - "VC_Devices_Stop() failed"); - } - else - { - VC_AppData.AppState = VC_INITIALIZED; - VC_AppData.HkTlm.usCmdCnt++; - (void) CFE_EVS_SendEvent(VC_CMD_INF_EID ,CFE_EVS_INFORMATION, - "VC stopped streaming"); - } - } - else - { - VC_AppData.HkTlm.usCmdErrCnt++; - (void) CFE_EVS_SendEvent(VC_CMD_ERR_EID, CFE_EVS_ERROR, "VC is already not streaming"); - } - } - return; -} /* End of VC_StopStreamingCmd() */ - - -boolean VC_Custom_Max_Events_Not_Reached(int32 ind) -{ - boolean returnBool = FALSE; - if ((ind < VC_MAX_EVENT_FILTERS) && (ind > 0)) - { - returnBool = TRUE; - } - - return (returnBool); -} - - -int32 VC_Custom_Init_EventFilters(int32 ind, CFE_EVS_BinFilter_t *EventTbl) -{ - int32 customEventCount = ind; - - /* Null check */ - if(0 == EventTbl) - { - customEventCount = VC_CUSTOM_ERROR_CODE; - goto end_of_function; - } - - if(TRUE == VC_Custom_Max_Events_Not_Reached(customEventCount)) - { - EventTbl[ customEventCount].EventID = VC_SOCKET_ERR_EID; - EventTbl[customEventCount++].Mask = CFE_EVS_FIRST_16_STOP; - } - else - { - customEventCount = VC_CUSTOM_ERROR_CODE; - goto end_of_function; - } - - if(TRUE == VC_Custom_Max_Events_Not_Reached(customEventCount)) - { - EventTbl[ customEventCount].EventID = VC_DEVICE_ERR_EID; - EventTbl[customEventCount].Mask = CFE_EVS_FIRST_16_STOP; - } - else - { - customEventCount = VC_CUSTOM_ERROR_CODE; - goto end_of_function; - } - -end_of_function: - - return (customEventCount); -} - - diff --git a/config/obc/ppd/target/apps/vc/src/vc_custom_shared.h b/config/obc/ppd/target/apps/vc/src/vc_custom_shared.h deleted file mode 100644 index 03cf9a611..000000000 --- a/config/obc/ppd/target/apps/vc/src/vc_custom_shared.h +++ /dev/null @@ -1,160 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ - -#ifndef VC_CUSTOM_SHARED_H -#define VC_CUSTOM_SHARED_H -/************************************************************************ -** Includes -*************************************************************************/ -#include "cfe.h" -#include "vc_app.h" -#include "vc_custom.h" -//#include "vc_dev_io_udp/vc_dev_io_udp.h" -#include "vc_dev_io_v4l/vc_dev_io_v4l.h" - -/************************************************************************ -** Local Defines -*************************************************************************/ -/* start streaming command */ -#define VC_STARTSTREAMING_CC (2) -/* stop streaming command */ -#define VC_STOPSTREAMING_CC (3) - - -/************************************************************************ -** Structure Declarations -*************************************************************************/ -/** -** \brief Start Streaming Command -*/ -typedef struct -{ - uint8 CmdHeader[CFE_SB_CMD_HDR_SIZE]; - char Address[VC_ADDRESS_LENGTH]; - uint16 Port; -} VC_StartStreamCmd_t; - - -typedef enum { - -/** \brief 'VC - ' -** \event 'VC - ' -** -** \par Type: ERROR -** -** \par Cause: -** -** This event message is issued when a transmit resource encounters an -** socket error. -** -*/ - VC_SOCKET_ERR_EID = VC_EVT_CNT, - -/** \brief 'VC - ' -** \event 'VC - ' -** -** \par Type: ERROR -** -** \par Cause: -** -** This event message is issued when a device resource encounters an -** error. -** -*/ - VC_DEVICE_ERR_EID, - -/** \brief 'VC - ' -** \event 'VC - ' -** -** \par Type: ERROR -** -** \par Cause: -** -** This event message is issued when a start streaming command is -** received with a bad address command parameter. -** -*/ - VC_ADDR_ERR_EID, - -/** \brief 'VC - ' -** \event 'VC - ' -** -** \par Type: ERROR -** -** \par Cause: -** -** This event message is issued when a start streaming command is -** received with a NULL address command parameter. -** -*/ - VC_ADDR_NUL_ERR_EID, - -/** \brief Number of custom events -** -** \par Limits: -** int32 -*/ - VC_CUSTOM_EVT_CNT -} VC_CustomEventIds_t; - - -/************************************************************************ -** External Global Variables -*************************************************************************/ - -extern VC_AppData_t VC_AppData; - -/************************************************************************ -** Function Prototypes -*************************************************************************/ - -/************************************************************************/ -/** \brief Determines if the maximum of event filters has been reached. -** -** \par Description -** This function checks if an index has reached the maximum -** number of events. -** -** \par Assumptions, External Events, and Notes: -** None -** -** \param [in] ind The current index to check. -** -** -** \returns boolean -** -*************************************************************************/ -boolean VC_Custom_Max_Events_Not_Reached(int32 ind); - - -#endif /* VC_CUSTOM_SHARED_H */ diff --git a/config/obc/ppd/target/apps/vc/src/vc_dev_io_udp/vc_dev_io_udp.c b/config/obc/ppd/target/apps/vc/src/vc_dev_io_udp/vc_dev_io_udp.c deleted file mode 100644 index 25308f4e1..000000000 --- a/config/obc/ppd/target/apps/vc/src/vc_dev_io_udp/vc_dev_io_udp.c +++ /dev/null @@ -1,424 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ -/************************************************************************ -** Pragmas -*************************************************************************/ - -/************************************************************************ -** Includes -*************************************************************************/ -#include "vc_dev_io_udp.h" -#include "cfe.h" -#include -#include -#include -#include -#include -#include - -/************************************************************************ -** Local Defines -*************************************************************************/ - -/************************************************************************ -** Local Structure Declarations -*************************************************************************/ - -/************************************************************************ -** External Global Variables -*************************************************************************/ - -/************************************************************************ -** Global Variables -*************************************************************************/ - -/************************************************************************ -** Local Variables -*************************************************************************/ - -/************************************************************************ -** Local Function Definitions -*************************************************************************/ - -VC_AppCustomDevice_t VC_AppCustomDevice; - - -int32 VC_Devices_InitData(void) -{ - int32 iStatus = CFE_SUCCESS; - - /* Set all struct zero values */ - bzero(&VC_AppCustomDevice, sizeof(VC_AppCustomDevice)); - - /* Set all non-zero values for channel zero */ - VC_AppCustomDevice.ContinueFlag = TRUE; - VC_AppCustomDevice.Priority = VC_STREAMING_TASK_PRIORITY; - VC_AppCustomDevice.StreamingTask = VC_Stream_Task; - VC_AppCustomDevice.Channel[0].Status = VC_DEVICE_UNINITIALIZED; - VC_AppCustomDevice.Channel[0].Mode = VC_DEVICE_ENABLED; - VC_AppCustomDevice.Channel[0].Socket = 0; - VC_AppCustomDevice.Channel[0].Port = VC_GST_GAZEBO_PORT; - - return iStatus; -} - - -boolean VC_Devices_Start(void) -{ - int32 returnCode = 0; - - /* Set loop flag to continue forever */ - VC_AppCustomDevice.ContinueFlag = TRUE; - - /* Create the streaming task */ - returnCode = CFE_ES_CreateChildTask( - &VC_AppCustomDevice.ChildTaskID, - VC_STREAMING_TASK_NAME, - VC_AppCustomDevice.StreamingTask, - 0, - CFE_ES_DEFAULT_STACK_SIZE, - VC_AppCustomDevice.Priority, - VC_STREAMING_TASK_FLAGS); - - if(returnCode != CFE_SUCCESS) - { - VC_AppCustomDevice.ContinueFlag = FALSE; - return FALSE; - } - return TRUE; -} - - -boolean VC_Devices_Stop(void) -{ - int32 returnCode = CFE_SUCCESS; - /* Delete the child task */ - returnCode = CFE_ES_DeleteChildTask(VC_AppCustomDevice.ChildTaskID); - - /* Set streaming task loop flag to stop */ - VC_AppCustomDevice.ContinueFlag = FALSE; - - /* Set app state to initialized */ - VC_AppData.AppState = VC_INITIALIZED; - - if (returnCode != CFE_SUCCESS) - { - return FALSE; - } - return TRUE; -} - - -boolean VC_Devices_Init(void) -{ - if(-1 == VC_Init_CustomDevices()) - { - return FALSE; - } - return TRUE; -} - - -boolean VC_Devices_Uninit(void) -{ - if(-1 == VC_CleanupDevices()) - { - return FALSE; - } - return TRUE; -} - - -int32 VC_CleanupDevices(void) -{ - uint32 i = 0; - int32 returnCode = 0; - - for(i=0; i < VC_MAX_DEVICES; i++) - { - if(VC_AppCustomDevice.Channel[i].Mode == VC_DEVICE_ENABLED) - { - if(-1 == close(VC_AppCustomDevice.Channel[i].Socket)) - { - /* Close failed */ - returnCode = -1; - } - else - { - VC_AppCustomDevice.Channel[i].Mode = VC_DEVICE_DISABLED; - VC_AppCustomDevice.Channel[i].Socket = 0; - } - } - } - return returnCode; -} - - -void VC_Devices_Critical_Cleanup(void) -{ - uint8 i = 0; - - for(i=0; i < VC_MAX_DEVICES; i++) - { - if(VC_AppCustomDevice.Channel[i].Socket != 0) - { - close(VC_AppCustomDevice.Channel[i].Socket); - } - } - return; -} - - -int32 VC_Init_CustomDevices(void) -{ - int32 returnCode = 0; - int reuseaddr = 1; - struct sockaddr_in address; - uint32 i = 0; - - for (i=0; i < VC_MAX_DEVICES; i++) - { - /* if a device is enabled... */ - if(VC_AppCustomDevice.Channel[i].Mode == VC_DEVICE_ENABLED) - { - /* Create socket */ - VC_AppCustomDevice.Channel[i].Socket = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP); - /* if socket creation failed */ - - if (VC_AppCustomDevice.Channel[i].Socket < 0) - { - CFE_EVS_SendEvent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, "Socket errno: %i on channel %u", errno, (unsigned int)i); - returnCode = -1; - goto end_of_function; - } - /* socket creation success try to bind */ - setsockopt(VC_AppCustomDevice.Channel[i].Socket, SOL_SOCKET, - SO_REUSEADDR, &reuseaddr, sizeof(reuseaddr)); - bzero((char *) &address, sizeof(address)); - address.sin_family = AF_INET; - address.sin_addr.s_addr = htonl (INADDR_ANY); - address.sin_port = htons(VC_AppCustomDevice.Channel[i].Port); - /* if bind failed... */ - if((bind(VC_AppCustomDevice.Channel[i].Socket , (struct sockaddr *) &address, sizeof(address)) < 0)) - { - CFE_EVS_SendEvent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR,"Bind errno: %i on channel %u", errno, (unsigned int)i); - returnCode = -1; - goto end_of_function; - } - /* socket create and bind success */ - VC_AppCustomDevice.Channel[i].Status = VC_DEVICE_INITIALIZED; - CFE_EVS_SendEvent(VC_DEV_INF_EID, CFE_EVS_INFORMATION, - "VC Device initialized channel %u", (unsigned int)i); - } - } - -end_of_function: - - return returnCode; -} - - -void VC_Stream_Task(void) -{ - int32 returnCode = 0; - static int32 timeouts = 0; - - uint32 i = 0; - uint32 j = 0; - uint32 maxFd = 0; - static uint32 retryAttempts = 0; - fd_set fds; - - struct timeval timeValue; - uint32 iStatus = -1; - - iStatus = CFE_ES_RegisterChildTask(); - - if (iStatus == CFE_SUCCESS) - { - while (VC_AppCustomDevice.ContinueFlag == TRUE) - { - maxFd = 0; - returnCode = 0; - - /* Initialize the set */ - FD_ZERO(&fds); - - /* Add enabled and streaming devices to the fd set */ - for (i=0; i < VC_MAX_DEVICES; i++) - { - if(VC_AppCustomDevice.Channel[i].Mode == VC_DEVICE_ENABLED - && VC_AppCustomDevice.Channel[i].Status == VC_DEVICE_INITIALIZED) - { - FD_SET(VC_AppCustomDevice.Channel[i].Socket, &fds); - /* Get the greatest fd value for select() */ - if (VC_AppCustomDevice.Channel[i].Socket > maxFd) - { - /* maxFd is needed for select */ - maxFd = VC_AppCustomDevice.Channel[i].Socket; - } - } - } - /* If maxFd is > 0 a fd was added the set so call select */ - if (maxFd > 0) - { - CFE_ES_PerfLogEntry(VC_DEVICE_GET_PERF_ID); - /* Wait for a socket fd to become ready */ - /* timeout set to null = block indefinitely */ - returnCode = select(maxFd + 1, &fds, 0, 0, 0); - CFE_ES_PerfLogExit(VC_DEVICE_GET_PERF_ID); - } - else - { - /* No fd's were added to the set so error out */ - CFE_EVS_SendEvent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, - "VC can't start streaming no devices are streaming enabled"); - returnCode = -1; - goto end_of_function; - } - - /* select() wasn't successful */ - if (-1 == returnCode) - { - /* select was interrupted, try again */ - if (EINTR == errno) - { - if (retryAttempts == VC_MAX_RETRY_ATTEMPTS) - { - goto end_of_function; - } - retryAttempts++; - usleep(VC_MAX_RETRY_SLEEP_USEC); - CFE_EVS_SendEvent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, - "VC select was interrupted"); - continue; - } - else - { - /* select returned an error other than EINTR */ - CFE_EVS_SendEvent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, - "VC start streaming failed select() returned %i", errno); - goto end_of_function; - } - } - /* select() returned and a socket is ready */ - if(returnCode > 0) - { - /* Determine which socket is ready */ - for (i=0; i < VC_MAX_DEVICES; i++) - { - if(VC_AppCustomDevice.Channel[i].Mode == VC_DEVICE_ENABLED - && VC_AppCustomDevice.Channel[i].Status == VC_DEVICE_INITIALIZED) - { - if(FD_ISSET(VC_AppCustomDevice.Channel[i].Socket, &fds)) - { - /* Call send buffer with the socket that is ready */ - VC_Send_Buffer(i); - } - } - } - } - } /* end while loop */ - } /* end if status == success */ - -end_of_function: - - /* Streaming task is exiting so set app flag to initialized */ - VC_AppData.AppState = VC_INITIALIZED; - CFE_EVS_SendEvent(VC_DEV_INF_EID, CFE_EVS_INFORMATION, - "VC streaming task exited with return code %li task status (0x%08lX)", - returnCode, iStatus); - - /* The child task was successfully created so exit from it */ - if (iStatus == CFE_SUCCESS) - { - CFE_ES_ExitChildTask(); - } -} - - -int32 VC_Send_Buffer(uint8 DeviceID) -{ - int32 returnCode = 0; - int size = 0; - unsigned int packetLength = 0; - - size = recv(VC_AppCustomDevice.Channel[DeviceID].Socket, - VC_AppCustomDevice.Channel[DeviceID].Buffer, VC_MAX_PACKET_SIZE, 0); - /* if we have the preamble header... */ - if (size == VC_MPARTMUX_HEADER_SIZE) - { - /* get the size of the payload from the preamble header */ - sscanf(&VC_AppCustomDevice.Channel[DeviceID].Buffer[VC_MPARTMUX_HEADER_LENGTH_START], - "%u", &packetLength); - /* receive the payload */ - size = recv(VC_AppCustomDevice.Channel[DeviceID].Socket, - VC_AppCustomDevice.Channel[DeviceID].Buffer, VC_MAX_PACKET_SIZE, 0); - /* if the size we received is not the size specified in the header - * something went wrong. Or sscanf didn't find a match so we - * don't have a size from the preamble etc */ - - if (size != packetLength) - { - CFE_EVS_SendEvent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, - "VC recv size error on channel %u", (unsigned int)DeviceID); - returnCode = -1; - goto end_of_function; - } - /* Send data, for now map device id to senddata channel */ - if (-1 == VC_SendData(DeviceID, (void*)VC_AppCustomDevice.Channel[DeviceID].Buffer, packetLength)) - { - CFE_EVS_SendEvent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, - "VC send data failed on channel %u", (unsigned int)DeviceID); - returnCode = -1; - goto end_of_function; - } - } - /* if recv returned an error */ - else if (size == -1) - { - /* recv returned an error */ - CFE_EVS_SendEvent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, - "VC recv errno: %i on channel %u", errno, (unsigned int)DeviceID); - returnCode = -1; - goto end_of_function; - } - else - { - /* do nothing we received the 2 byte preamble */ - goto end_of_function; - } - -end_of_function: - return returnCode; -} diff --git a/config/obc/ppd/target/apps/vc/src/vc_dev_io_udp/vc_dev_io_udp.h b/config/obc/ppd/target/apps/vc/src/vc_dev_io_udp/vc_dev_io_udp.h deleted file mode 100644 index 6513549cf..000000000 --- a/config/obc/ppd/target/apps/vc/src/vc_dev_io_udp/vc_dev_io_udp.h +++ /dev/null @@ -1,167 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ - -#ifndef VC_DEV_IO_UDP_H -#define VC_DEV_IO_UDP_H - -/************************************************************************ -** Includes -*************************************************************************/ -#include "cfe.h" -#include "vc_dev_io.h" -#include "../vc_custom_shared.h" -#include "vc_perfids.h" -#include "vc_app.h" - -/************************************************************************ -** Local Defines -*************************************************************************/ -/* TODO move to platform config */ -/** \brief Size of the Gstreamer multipartmux preamble when configured -** with a boundary = "*". -** -** \par Limits: -** Varies with boundary specified. -*/ -#define VC_MPARTMUX_HEADER_SIZE (61) -/** \brief Char count where length of the payload is specified in the -** multipartmux preamble. -*/ -#define VC_MPARTMUX_HEADER_LENGTH_START (51) -/** \brief Gstreamer Gazebo camera plugin UDP output port number. -*/ -#define VC_GST_GAZEBO_PORT (5600) - -/************************************************************************ -** Structure Declarations -*************************************************************************/ - -/** - * Device modes - */ -typedef enum -{ - /*! Device state unused */ - VC_DEVICE_UNUSED = 0, - /*! Device state disabled */ - VC_DEVICE_DISABLED = 1, - /*! Device state enabled */ - VC_DEVICE_ENABLED = 2 -} VC_DeviceMode_t; - - -/** - * Device status - */ -typedef enum -{ - /*! Device status uninitialized */ - VC_DEVICE_UNINITIALIZED = 0, - /*! Device status uninitialized */ - VC_DEVICE_INITIALIZED = 1, - /*! Device status streaming */ - VC_DEVICE_STREAMING = 2 -} VC_DeviceStatus_t; - - -/** - * Device handle - */ -typedef struct -{ - /*! Device status */ - VC_DeviceStatus_t Status; - /*! Device mode */ - VC_DeviceMode_t Mode; - /*! Device socket file descriptor */ - int Socket; - /*! Device port number */ - uint16 Port; - /*! Device buffer for receiving image data */ - char Buffer[VC_MAX_PACKET_SIZE]; -} VC_Device_Handle_t; - - -/** - * Global data structure for custom device IO layer - */ -typedef struct -{ - /*! Flag to start and stop streaming */ - boolean ContinueFlag; - /*! Streaming task priority */ - uint8 Priority; - /*! Streaming child task identifier */ - uint32 ChildTaskID; - /*! Streaming task function pointer */ - CFE_ES_ChildTaskMainFuncPtr_t StreamingTask; - /*! Device resource(s) channels */ - VC_Device_Handle_t Channel[VC_MAX_DEVICES]; - /*! Streaming task flags */ - uint32 TaskFlags; -} VC_AppCustomDevice_t; - - -/** - * @brief Cleanup (close) all enabled devices - * @return 0 for success -1 for failure - */ -int32 VC_CleanupDevices(void); - - -/** - * @brief Initialize all enabled devices. - * @return 0 for success -1 for failure - */ -int32 VC_Init_CustomDevices(void); - - -/** - * @brief Streaming task, takes ready file descriptor and sends. - * @note This is a loop to be run in a VC app child task - */ -void VC_Stream_Task(void); - - -/** - * @brief send a buffer from a "ready" socket - * @note gst multipartmux sends 2 bytes, preamble bytes (70 if the - * default boundary string is used, less if a custom boundary is - * specified), followed by the image payload. - * @param DeviceID the device ID of the "ready" socket - * @return 0 for success -1 for failure - */ -int32 VC_Send_Buffer(uint8 DeviceID); - - -#endif diff --git a/config/obc/ppd/target/apps/vc/src/vc_dev_io_v4l/vc_dev_io_v4l.c b/config/obc/ppd/target/apps/vc/src/vc_dev_io_v4l/vc_dev_io_v4l.c deleted file mode 100644 index f6be72a7a..000000000 --- a/config/obc/ppd/target/apps/vc/src/vc_dev_io_v4l/vc_dev_io_v4l.c +++ /dev/null @@ -1,858 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ - -/************************************************************************ -** Pragmas -*************************************************************************/ - -/************************************************************************ -** Includes -*************************************************************************/ -#include "vc_dev_io_v4l.h" -#include "cfe.h" -#include -#include -#include -#include -#include -#include -#include - -/************************************************************************ -** Local Defines -*************************************************************************/ - -/************************************************************************ -** Local Structure Declarations -*************************************************************************/ - -/************************************************************************ -** External Global Variables -*************************************************************************/ - -/************************************************************************ -** Global Variables -*************************************************************************/ - -/************************************************************************ -** Local Variables -*************************************************************************/ - -/************************************************************************ -** Local Function Definitions -*************************************************************************/ - -/** - * Custom device layer app data declaration - */ -VC_AppCustomDevice_t VC_AppCustomDevice; - - -int32 VC_CustomDevice_InitData() -{ - int32 iStatus = CFE_SUCCESS; - - /* Set all struct zero values */ - bzero(&VC_AppCustomDevice, sizeof(VC_AppCustomDevice)); - - /* Set all non-zero values for channel zero */ - VC_AppCustomDevice.ContinueFlag = TRUE; - VC_AppCustomDevice.Priority = VC_STREAMING_TASK_PRIORITY; - VC_AppCustomDevice.TaskFlags = VC_STREAMING_TASK_FLAGS; - VC_AppCustomDevice.StreamingTask = VC_Stream_Task; - VC_AppCustomDevice.Channel[0].Status = VC_DEVICE_UNINITIALIZED; - VC_AppCustomDevice.Channel[0].Mode = VC_DEVICE_ENABLED; - VC_AppCustomDevice.Channel[0].BufferType = VC_V4L_BUFFER_TYPE; - VC_AppCustomDevice.Channel[0].Buffer_Size = VC_MAX_BUFFER_SIZE; - VC_AppCustomDevice.Channel[0].FrameWidth = VC_FRAME_WIDTH; - VC_AppCustomDevice.Channel[0].FrameHeight = VC_FRAME_HEIGHT; - VC_AppCustomDevice.Channel[0].VideoFormat = VC_V4L_VIDEO_FORMAT; - VC_AppCustomDevice.Channel[0].FieldOrder = VC_V4L_VIDEO_FIELD_ORDER; - VC_AppCustomDevice.Channel[0].BufferRequest = VC_V4L_BUFFER_REQUEST; - VC_AppCustomDevice.Channel[0].MemoryType = VC_V4L_MEMORY_TYPE; - - strncpy(VC_AppCustomDevice.Channel[0].DevName, VC_DEVICE_PATH, VC_MAX_DEVICE_PATH); - - - return (iStatus); -} - - -int32 VC_Ioctl(int fh, int request, void *arg) -{ - int32 returnCode = 0; - uint32 i = 0; - - for (i=0; i < VC_MAX_RETRY_ATTEMPTS; i++) - { - returnCode = ioctl(fh, request, arg); - - if (-1 == returnCode && EINTR == errno) - { - usleep(VC_MAX_RETRY_SLEEP_USEC); - } - else - { - break; - } - } - - return (returnCode); -} - - -int32 VC_ConfigureDevice(uint8 DeviceID) -{ - int32 returnCode = 0; - struct v4l2_format Format = {}; - struct v4l2_capability Capabilities = {}; - struct v4l2_requestbuffers Request = {}; - - bzero(&Format, sizeof(Format)); - Format.type = VC_AppCustomDevice.Channel[DeviceID].BufferType; - Format.fmt.pix.width = VC_AppCustomDevice.Channel[DeviceID].FrameWidth; - Format.fmt.pix.height = VC_AppCustomDevice.Channel[DeviceID].FrameHeight; - Format.fmt.pix.pixelformat = VC_AppCustomDevice.Channel[DeviceID].VideoFormat; - Format.fmt.pix.field = VC_AppCustomDevice.Channel[DeviceID].FieldOrder; - - bzero(&Request, sizeof(Request)); - Request.count = VC_AppCustomDevice.Channel[DeviceID].BufferRequest; - Request.type = VC_AppCustomDevice.Channel[DeviceID].BufferType; - Request.memory = VC_AppCustomDevice.Channel[DeviceID].MemoryType; - - if (-1 == VC_Ioctl(VC_AppCustomDevice.Channel[DeviceID].DeviceFd, VIDIOC_QUERYCAP, &Capabilities)) - { - (void) CFE_EVS_SendEvent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, - "VC VIDIOC_QUERYCAP returned %i on %s channel %u", errno, - VC_AppCustomDevice.Channel[DeviceID].DevName, (unsigned int)DeviceID); - returnCode = -1; - goto end_of_function; - } - - if (!(Capabilities.capabilities & VC_AppCustomDevice.Channel[DeviceID].BufferType)) - { - (void) CFE_EVS_SendEvent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, - "VC Capabilities %u on %s channel %u not found", - (unsigned int)VC_AppCustomDevice.Channel[DeviceID].BufferType, - VC_AppCustomDevice.Channel[DeviceID].DevName, (unsigned int)DeviceID); - returnCode = -1; - goto end_of_function; - } - - if (!(Capabilities.capabilities & V4L2_CAP_STREAMING)) - { - (void) CFE_EVS_SendEvent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, - "VC Capabilities %u on %s channel %u not found", - V4L2_CAP_STREAMING, - VC_AppCustomDevice.Channel[DeviceID].DevName, (unsigned int)DeviceID); - returnCode = -1; - goto end_of_function; - } - - if (-1 == VC_Ioctl(VC_AppCustomDevice.Channel[DeviceID].DeviceFd, VIDIOC_S_FMT, &Format)) - { - (void) CFE_EVS_SendEvent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, - "VIDIOC_S_FMT returned %i on %s channel %u", errno, - VC_AppCustomDevice.Channel[DeviceID].DevName, (unsigned int)DeviceID); - returnCode = -1; - goto end_of_function; - } - - if (Format.fmt.pix.pixelformat != VC_AppCustomDevice.Channel[DeviceID].VideoFormat) - { - (void) CFE_EVS_SendEvent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, - "VC device %s channel %u didn't accept format %u.", - VC_AppCustomDevice.Channel[DeviceID].DevName, - (unsigned int)DeviceID, - (unsigned int)VC_AppCustomDevice.Channel[DeviceID].VideoFormat); - returnCode = -1; - goto end_of_function; - } - - if ((Format.fmt.pix.width != VC_AppCustomDevice.Channel[DeviceID].FrameWidth) || - (Format.fmt.pix.height != VC_AppCustomDevice.Channel[DeviceID].FrameHeight)) - { - (void) CFE_EVS_SendEvent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, - "VC device %s channel %u didn't accept resolution instead %d:%d.", - VC_AppCustomDevice.Channel[DeviceID].DevName, (unsigned int)DeviceID, - Format.fmt.pix.width, Format.fmt.pix.height); - returnCode = -1; - goto end_of_function; - } - - if (Format.fmt.pix.sizeimage > VC_AppCustomDevice.Channel[DeviceID].Buffer_Size) - { - (void) CFE_EVS_SendEvent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, - "VC device %s channel %u size image %u > buffer size %lu.", - VC_AppCustomDevice.Channel[DeviceID].DevName, (unsigned int)DeviceID, - Format.fmt.pix.sizeimage, VC_AppCustomDevice.Channel[DeviceID].Buffer_Size); - returnCode = -1; - goto end_of_function; - } - - if (-1 == VC_Ioctl(VC_AppCustomDevice.Channel[DeviceID].DeviceFd, VIDIOC_REQBUFS, &Request)) - { - (void) CFE_EVS_SendEvent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, - "VC VIDIOC_REQBUFS returned %i on %s channel %u.", errno, - VC_AppCustomDevice.Channel[DeviceID].DevName, (unsigned int)DeviceID); - returnCode = -1; - goto end_of_function; - } - - if (Request.count != VC_AppCustomDevice.Channel[DeviceID].BufferRequest) - { - (void) CFE_EVS_SendEvent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, - "VC VIDIOC_REQBUFS did not comply. %u buffers on %s channel %u.", Request.count, - VC_AppCustomDevice.Channel[DeviceID].DevName, (unsigned int)DeviceID); - returnCode = -1; - goto end_of_function; - } - -end_of_function: - return (returnCode); -} - - -int32 VC_Start_StreamingDevice(uint8 DeviceID) -{ - int32 returnCode = 0; - uint32 i = 0; - enum v4l2_buf_type Type; - struct v4l2_buffer Buffer; - - Type = VC_AppCustomDevice.Channel[DeviceID].BufferType; - - for (i=0; i < VC_AppCustomDevice.Channel[DeviceID].BufferRequest; i++) - { - VC_AppCustomDevice.Channel[DeviceID].Buffer_Ptrs[i].ptr = (void*)&VC_AppCustomDevice.Channel[DeviceID].Buffers[i][0]; - - bzero(&Buffer, sizeof(Buffer)); - Buffer.type = VC_AppCustomDevice.Channel[DeviceID].BufferType; - Buffer.memory = VC_AppCustomDevice.Channel[DeviceID].MemoryType; - Buffer.index = i; - Buffer.m.userptr = (unsigned long)VC_AppCustomDevice.Channel[DeviceID].Buffer_Ptrs[i].ptr; - Buffer.length = VC_AppCustomDevice.Channel[DeviceID].Buffer_Size; - - if (-1 == VC_Ioctl(VC_AppCustomDevice.Channel[DeviceID].DeviceFd, VIDIOC_QBUF, &Buffer)) - { - (void) CFE_EVS_SendEvent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, - "VC VIDIOC_QBUF returned %i on %s channel %u", errno, - VC_AppCustomDevice.Channel[DeviceID].DevName, (unsigned int)DeviceID); - returnCode = -1; - goto end_of_function; - } - } - - if (-1 == VC_Ioctl(VC_AppCustomDevice.Channel[DeviceID].DeviceFd, VIDIOC_STREAMON, &Type)) - { - (void) CFE_EVS_SendEvent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, - "VC VIDIOC_STREAMON returned %i on %s channel %u", errno, - VC_AppCustomDevice.Channel[DeviceID].DevName, (unsigned int)DeviceID); - returnCode = -1; - goto end_of_function; - } - else - { - (void) CFE_EVS_SendEvent(VC_DEV_INF_EID, CFE_EVS_INFORMATION, - "VC VIDIOC_STREAMON success on %s channel %u", - VC_AppCustomDevice.Channel[DeviceID].DevName, (unsigned int)DeviceID); - } - -end_of_function: - - return (returnCode); -} - - -int32 VC_Stop_StreamingDevice(uint8 DeviceID) -{ - int32 returnCode = 0; - uint32 i = 0; - enum v4l2_buf_type Type; - - Type = VC_AppCustomDevice.Channel[DeviceID].BufferType; - - if (-1 == VC_Ioctl(VC_AppCustomDevice.Channel[DeviceID].DeviceFd, VIDIOC_STREAMOFF, &Type)) - { - returnCode = -1; - } - - return (returnCode); -} - - -int32 VC_Send_Buffer(uint8 DeviceID) -{ - int32 returnCode = 0; - uint32 i = 0; - boolean checkFlag = FALSE; - - struct v4l2_buffer Buffer; - - bzero(&Buffer, sizeof(Buffer)); - Buffer.type = VC_AppCustomDevice.Channel[DeviceID].BufferType; - Buffer.memory = VC_AppCustomDevice.Channel[DeviceID].MemoryType; - - /* Dequeue the ready buffer */ - if (-1 == VC_Ioctl(VC_AppCustomDevice.Channel[DeviceID].DeviceFd, VIDIOC_DQBUF, &Buffer)) - { - /* VIDIOC_DQBUF failed */ - (void) CFE_EVS_SendEvent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, - "VC VIDIOC_DQBUF returned %i on %s channel %u", errno, - VC_AppCustomDevice.Channel[DeviceID].DevName, (unsigned int)DeviceID); - returnCode = -1; - goto end_of_function; - } - - /* The dequeued buffer is larger than max transmit packet size */ - if (Buffer.bytesused > VC_MAX_PACKET_SIZE) - { - /* The buffer is too large so skip sending */ - (void) CFE_EVS_SendEvent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, - "VC Packet on %s channel %u is too large", - VC_AppCustomDevice.Channel[DeviceID].DevName, (unsigned int)DeviceID); - //returnCode = -1; - goto queue_next_buffer; - } - - /* Check and make sure VIDIOC_DQBUF returned a valid address - * from possible addresses (user buffer pointers) - */ - for (i=0; i < VC_AppCustomDevice.Channel[DeviceID].BufferRequest; i++) - { - if ((Buffer.m.userptr == (unsigned long)VC_AppCustomDevice.Channel[DeviceID].Buffer_Ptrs[i].ptr) - && (Buffer.length == VC_AppCustomDevice.Channel[DeviceID].Buffer_Size)) - { - checkFlag = TRUE; - } - } - if (checkFlag == FALSE) - { - /* VIDIOC_DQBUF returned an unknown buffer address */ - (void) CFE_EVS_SendEvent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, - "VC VIDIOC_DQBUF returned unknown user pointer on %s channel %u", - VC_AppCustomDevice.Channel[DeviceID].DevName, (unsigned int)DeviceID); - returnCode = -1; - goto end_of_function; - } - - /* Send data, for now map device id to senddata channel */ - if (-1 == VC_SendData(DeviceID, (void*)Buffer.m.userptr, Buffer.bytesused)) - { - (void) CFE_EVS_SendEvent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, - "VC send data failed on %s channel %u", - VC_AppCustomDevice.Channel[DeviceID].DevName, (unsigned int)DeviceID); - returnCode = -1; - goto end_of_function; - } - -queue_next_buffer: - - /* Queue the next buffer */ - if (-1 == VC_Ioctl(VC_AppCustomDevice.Channel[DeviceID].DeviceFd, VIDIOC_QBUF, &Buffer)) - { - (void) CFE_EVS_SendEvent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, - "VC VIDIOC_QBUF returned %i on %s channel %u", errno, - VC_AppCustomDevice.Channel[DeviceID].DevName, (unsigned int)DeviceID); - returnCode = -1; - } - -end_of_function: - return (returnCode); -} - - -void VC_Stream_Task(void) -{ - int32 returnCode = 0; - static int32 timeouts = 0; - - uint32 i = 0; - uint32 j = 0; - uint32 maxFd = 0; - static uint32 retryAttempts = 0; - fd_set fds; - - struct timeval timeValue; - uint32 iStatus = -1; - - iStatus = CFE_ES_RegisterChildTask(); - - if (iStatus == CFE_SUCCESS) - { - while (VC_AppCustomDevice.ContinueFlag == TRUE) - { - maxFd = 0; - returnCode = 0; - - /* Select modifies the timeout value with time left until - * the timeout would expire so timeValue needs to be set - * every loop iteration - */ - timeValue.tv_sec = VC_BUFFER_FILL_TIMEOUT_SEC; - timeValue.tv_usec = VC_BUFFER_FILL_TIMEOUT_USEC; - - /* Initialize the set */ - FD_ZERO(&fds); - - /* Add enabled and streaming devices to the fd set */ - for (i=0; i < VC_MAX_DEVICES; i++) - { - if(VC_AppCustomDevice.Channel[i].Mode == VC_DEVICE_ENABLED - && VC_AppCustomDevice.Channel[i].Status == VC_DEVICE_STREAMING) - { - FD_SET(VC_AppCustomDevice.Channel[i].DeviceFd, &fds); - - /* Get the greatest fd value for select() */ - if (VC_AppCustomDevice.Channel[i].DeviceFd > maxFd) - { - /* maxFd is needed for select */ - maxFd = VC_AppCustomDevice.Channel[i].DeviceFd; - } - } - } - /* If maxFd is > 0 a fd was added the set so call select */ - if (maxFd > 0) - { - CFE_ES_PerfLogEntry(VC_DEVICE_GET_PERF_ID); - /* Wait for a queued buffer to be filled by the device */ - returnCode = select(maxFd + 1, &fds, 0, 0, &timeValue); - CFE_ES_PerfLogExit(VC_DEVICE_GET_PERF_ID); - } - else - { - /* No fd's were added to the set so error out */ - (void) CFE_EVS_SendEvent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, - "VC can't start streaming no devices are streaming enabled"); - returnCode = -1; - goto end_of_function; - } - - /* select() wasn't successful */ - if (-1 == returnCode) - { - /* select was interrupted, try again */ - if (EINTR == errno) - { - if (retryAttempts == VC_MAX_RETRY_ATTEMPTS) - { - goto end_of_function; - } - retryAttempts++; - usleep(VC_MAX_RETRY_SLEEP_USEC); - (void) CFE_EVS_SendEvent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, - "VC select was interrupted"); - continue; - } - else - { - /* select returned an error other than EINTR */ - (void) CFE_EVS_SendEvent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, - "VC start streaming failed select() returned %i", errno); - goto end_of_function; - } - } - /* select timed out */ - if (0 == returnCode) - { - if (timeouts == VC_BUFFER_TIMEOUTS_ALLOWED) - { - returnCode = -1; - goto end_of_function; - } - timeouts++; - usleep(VC_MAX_RETRY_SLEEP_USEC); - CFE_EVS_SendEvent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, - "VC select timed out"); - continue; - } - /* select() returned and a buffer is ready to be dequeued */ - if(returnCode > 0) - { - /* Determine which device is ready */ - for (i=0; i < VC_MAX_DEVICES; i++) - { - if(VC_AppCustomDevice.Channel[i].Mode == VC_DEVICE_ENABLED - && VC_AppCustomDevice.Channel[i].Status == VC_DEVICE_STREAMING) - { - if(FD_ISSET(VC_AppCustomDevice.Channel[i].DeviceFd, &fds)) - { - /* Call send buffer with the device that is ready */ - returnCode = VC_Send_Buffer(i); - if(returnCode != 0) - { - (void) CFE_EVS_SendEvent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, - "VC Send_Buffer failed, a device may have been disconnected, disabling device %u", (unsigned int)i); - VC_DisableDevice(i); - } - } - } - } - } - } /* end while loop */ - } /* end if status == success */ - -end_of_function: - - /* Streaming task is exiting so set app flag to initialized */ - VC_AppData.AppState = VC_INITIALIZED; - (void) CFE_EVS_SendEvent(VC_DEV_INF_EID, CFE_EVS_INFORMATION, - "VC streaming task exited with return code %li task status (0x%08lX)", - returnCode, iStatus); - - /* The child task was successfully created so exit from it */ - if (iStatus == CFE_SUCCESS) - { - CFE_ES_ExitChildTask(); - } -} - - -int32 VC_Start_Streaming(void) -{ - uint32 i = 0; - int32 returnCode = 0; - - for(i=0; i < VC_MAX_DEVICES; i++) - { - if((VC_AppCustomDevice.Channel[i].Mode == VC_DEVICE_ENABLED) && - (VC_AppCustomDevice.Channel[i].Status == VC_DEVICE_INITIALIZED)) - { - if(-1 == VC_Start_StreamingDevice(i)) - { - /* Start streaming failed */ - returnCode = -1; - } - else - { - /* Start streaming was successful set status to streaming */ - VC_AppCustomDevice.Channel[i].Status = VC_DEVICE_STREAMING; - } - } - } - return (returnCode); -} - - -int32 VC_Stop_Streaming(void) -{ - uint32 i = 0; - int32 returnCode = 0; - - for(i=0; i < VC_MAX_DEVICES; i++) - { - if((VC_AppCustomDevice.Channel[i].Mode == VC_DEVICE_ENABLED) && - (VC_AppCustomDevice.Channel[i].Status == VC_DEVICE_STREAMING)) - { - if(-1 == VC_Stop_StreamingDevice(i)) - { - /* Stop streaming failed */ - returnCode = -1; - } - else - { - /* Stop streaming was successful set status to initialized */ - VC_AppCustomDevice.Channel[i].Status = VC_DEVICE_INITIALIZED; - } - } - } - return (returnCode); -} - - -int32 VC_InitDevice(uint8 DeviceID, const char *DeviceName) -{ - int32 returnCode = 0; - uint32 i = 0; - - if((VC_AppCustomDevice.Channel[DeviceID].Mode == VC_DEVICE_ENABLED) && - (VC_AppCustomDevice.Channel[DeviceID].DeviceFd != 0)) - { - (void) CFE_EVS_SendEvent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, - "VC Device %s for channel %u already initialized.", DeviceName, (unsigned int)i); - returnCode = -1; - goto end_of_function; - } - - if(DeviceName == 0) - { - (void) CFE_EVS_SendEvent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, - "VC Device name for channel %u is null.", (unsigned int)i); - returnCode = -1; - goto end_of_function; - } - - if(DeviceID >= VC_MAX_DEVICES) - { - (void) CFE_EVS_SendEvent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, - "VC DeviceID (%u) invalid.", (unsigned int)DeviceID); - returnCode = -1; - goto end_of_function; - } - - VC_AppCustomDevice.Channel[DeviceID].DeviceFd = open(DeviceName, O_RDWR | O_NONBLOCK, 0); - if(VC_AppCustomDevice.Channel[DeviceID].DeviceFd < 0) - { - (void) CFE_EVS_SendEvent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, - "VC Device open errno: %i on channel %u", errno, (unsigned int)i); - returnCode = -1; - goto end_of_function; - } - -end_of_function: - return (returnCode); -} - - -int32 VC_Init_CustomDevices(void) -{ - uint32 i = 0; - int32 returnCode = 0; - - for (i=0; i < VC_MAX_DEVICES; i++) - { - if(VC_AppCustomDevice.Channel[i].Mode == VC_DEVICE_ENABLED) - { - /* If the device is enabled initialize it */ - returnCode = VC_InitDevice(i, VC_AppCustomDevice.Channel[i].DevName); - if (returnCode) - { - /* If the device failed to be initialized set to disabled - * an error event will be generated in VC_InitDevice */ - VC_AppCustomDevice.Channel[i].Mode = VC_DEVICE_DISABLED; - } - else - { - /* Success, raise info event */ - (void) CFE_EVS_SendEvent(VC_DEV_INF_EID, CFE_EVS_INFORMATION, - "VC Device initialized channel %u from %s", - (unsigned int)i, VC_AppCustomDevice.Channel[i].DevName); - - /* The device is initialized so now configure it */ - returnCode = VC_ConfigureDevice(i); - if (returnCode) - { - /* The device failed to be configured so make sure - * the status is set to uninitialized - */ - VC_AppCustomDevice.Channel[i].Status = VC_DEVICE_UNINITIALIZED; - } - else - { - /* Success, set status to device initialized and - * raise a info event - */ - VC_AppCustomDevice.Channel[i].Status = VC_DEVICE_INITIALIZED; - (void) CFE_EVS_SendEvent(VC_DEV_INF_EID, CFE_EVS_INFORMATION, - "VC Device configured channel %u from %s", - (unsigned int)i, VC_AppCustomDevice.Channel[i].DevName); - } - } - } - } - return (returnCode); -} - - -int32 VC_CleanupDevices(void) -{ - uint32 i = 0; - int32 returnCode = 0; - - for(i=0; i < VC_MAX_DEVICES; i++) - { - if(VC_AppCustomDevice.Channel[i].Mode == VC_DEVICE_ENABLED) - { - if(VC_AppCustomDevice.Channel[i].Status == VC_DEVICE_STREAMING) - { - if(-1 == VC_Stop_StreamingDevice(i)) - { - /* VC_Stop_Streaming failed */ - returnCode = -1; - } - else - { - /* Success set device status to initialized */ - VC_AppCustomDevice.Channel[i].Status = VC_DEVICE_INITIALIZED; - } - } - - if(-1 == VC_DisableDevice(i)) - { - /* VC_DisableDevice failed */ - returnCode = -1; - } - else - { - VC_AppCustomDevice.Channel[i].Mode = VC_DEVICE_DISABLED; - } - } - } - return (returnCode); -} - - -void VC_Devices_Critical_Cleanup(void) -{ - uint8 i = 0; - - for(i=0; i < VC_MAX_DEVICES; i++) - { - if(VC_AppCustomDevice.Channel[i].DeviceFd != 0) - { - ioctl(VC_AppCustomDevice.Channel[i].DeviceFd, VIDIOC_STREAMOFF, &VC_AppCustomDevice.Channel[i].BufferType); - close(VC_AppCustomDevice.Channel[i].DeviceFd); - } - } - return; -} - - -int32 VC_DisableDevice(uint8 DeviceID) -{ - int32 returnCode = 0; - - if(VC_AppCustomDevice.Channel[DeviceID].Mode != VC_DEVICE_ENABLED) - { - returnCode = -1; - goto end_of_function; - } - - returnCode = close(VC_AppCustomDevice.Channel[DeviceID].DeviceFd); - if (0 == returnCode) - { - VC_AppCustomDevice.Channel[DeviceID].DeviceFd = 0; - } - -end_of_function: - return (returnCode); -} - - -/* - * Start streaming on all enabled and initialized devices - * True for success, false for failure - * Note: Creates the streaming task - */ -boolean VC_Devices_Start(void) -{ - int32 returnCode = 0; - boolean returnBool = TRUE; - - /* Set loop flag to continue forever */ - VC_AppCustomDevice.ContinueFlag = TRUE; - - /* Start streaming on all devices */ - if(-1 == VC_Start_Streaming()) - { - VC_AppCustomDevice.ContinueFlag = FALSE; - returnBool = FALSE; - goto end_of_function; - } - - /* Create the streaming task */ - returnCode = CFE_ES_CreateChildTask( - &VC_AppCustomDevice.ChildTaskID, - VC_STREAMING_TASK_NAME, - VC_AppCustomDevice.StreamingTask, - 0, - CFE_ES_DEFAULT_STACK_SIZE, - VC_AppCustomDevice.Priority, - VC_STREAMING_TASK_FLAGS); - - if(returnCode != CFE_SUCCESS) - { - VC_AppCustomDevice.ContinueFlag = FALSE; - returnBool = FALSE; - } - -end_of_function: - - return (returnBool); -} - - -/* - * Stop streaming on all enabled and initialized devices - * True for success, false for failure - * Note: Deletes the streaming task - */ -boolean VC_Devices_Stop(void) -{ - boolean returnBool = TRUE; - - /* Delete the child task */ - CFE_ES_DeleteChildTask(VC_AppCustomDevice.ChildTaskID); - - /* Set streaming task loop flag to stop */ - VC_AppCustomDevice.ContinueFlag = FALSE; - - /* Set app state to initialized */ - VC_AppData.AppState = VC_INITIALIZED; - - if(-1 == VC_Stop_Streaming()) - { - returnBool = FALSE; - } - - return (returnBool); -} - - -boolean VC_Devices_Init(void) -{ - boolean returnBool = TRUE; - if(-1 == VC_Init_CustomDevices()) - { - returnBool = FALSE; - } - return (returnBool); -} - - -boolean VC_Devices_Uninit(void) -{ - boolean returnBool = TRUE; - if(-1 == VC_CleanupDevices()) - { - returnBool = FALSE; - } - return (returnBool); -} - - -int32 VC_Devices_InitData() -{ - return VC_CustomDevice_InitData(); -} - diff --git a/config/obc/ppd/target/apps/vc/src/vc_dev_io_v4l/vc_dev_io_v4l.h b/config/obc/ppd/target/apps/vc/src/vc_dev_io_v4l/vc_dev_io_v4l.h deleted file mode 100644 index 1e4a63491..000000000 --- a/config/obc/ppd/target/apps/vc/src/vc_dev_io_v4l/vc_dev_io_v4l.h +++ /dev/null @@ -1,252 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ - -#ifndef VC_DEV_IO_V4L_H -#define VC_DEV_IO_V4L_H - -#include "cfe.h" -#include "vc_dev_io.h" -#include "../vc_custom_shared.h" -#include "vc_perfids.h" -#include "vc_app.h" - -/************************************************************************ -** Structure Declarations -*************************************************************************/ - -/** - * Device modes - */ -typedef enum -{ - /*! Device state unused */ - VC_DEVICE_UNUSED = 0, - /*! Device state disabled */ - VC_DEVICE_DISABLED = 1, - /*! Device state enabled */ - VC_DEVICE_ENABLED = 2 -} VC_DeviceMode_t; - - -/** - * Device status - */ -typedef enum -{ - /*! Device status uninitialized */ - VC_DEVICE_UNINITIALIZED = 0, - /*! Device status uninitialized */ - VC_DEVICE_INITIALIZED = 1, - /*! Device status streaming */ - VC_DEVICE_STREAMING = 2 -} VC_DeviceStatus_t; - - -/** - * Buffer pointers for V4L user pointer IO - */ -typedef struct { - /*! Pointer to user defined buffer */ - void *ptr; -}VC_BufferPtr_t; - - -/** - * Device handle - */ -typedef struct -{ - /*! Device status */ - VC_DeviceStatus_t Status; - /*! Device mode */ - VC_DeviceMode_t Mode; - /*! Device resource channel identifier */ - uint8 ChannelID; - /*! Path to device */ - char DevName[VC_MAX_DEVICE_PATH]; - /*! Device file descriptor */ - int DeviceFd; - /*! V4L buffer type */ - uint32 BufferType; - /*! V4L frame width */ - uint32 FrameWidth; - /*! V4L frame height */ - uint32 FrameHeight; - /*! V4L video format */ - uint32 VideoFormat; - /*! V4L field order */ - uint8 FieldOrder; - /*! V4L buffer request */ - uint8 BufferRequest; - /*! V4L memory type */ - uint32 MemoryType; - /*! V4L user defined buffer(s) */ - char Buffers[VC_V4L_BUFFER_REQUEST][VC_MAX_BUFFER_SIZE]; - /*! V4L buffer size (for all buffers) */ - uint32 Buffer_Size; - /*! V4L user defined buffer pointer(s) */ - VC_BufferPtr_t Buffer_Ptrs[VC_V4L_BUFFER_REQUEST]; -} VC_Device_Handle_t; - - -/** - * Global data structure for custom device IO layer - */ -typedef struct -{ - /*! Flag to start and stop streaming */ - boolean ContinueFlag; - /*! Streaming task priority */ - uint8 Priority; - /*! Streaming child task identifier */ - uint32 ChildTaskID; - /*! Streaming task function pointer */ - CFE_ES_ChildTaskMainFuncPtr_t StreamingTask; - /*! Device resource(s) channels */ - VC_Device_Handle_t Channel[VC_MAX_DEVICES]; - /*! Streaming task flags */ - uint32 TaskFlags; -} VC_AppCustomDevice_t; - - -/************************************************************************ -** Function Prototypes -*************************************************************************/ - -/** - * @brief Custom function to initialize custom device data structure. - * @return CFE_SUCCESS - */ -int32 VC_CustomDevice_InitData(void); - - -/** - * @brief ioctl with limited EINTR retry attempts - * @param fh file descriptor - * @param request ioctl request code - * @param arg pointer to a device specific struct - * @return usually 0 for success and -1 for failure - * @note see ioctl man-page for more info - */ -int32 VC_Ioctl(int fh, int request, void *arg); - - -/** - * @brief Initialize, configure, and start all enabled devices - * @return usually 0 for success -1 for failure - * @note see ioctl man-page for more info - */ -int32 VC_Init_CustomDevices(void); - - -/** - * @brief Initialize an enabled device - * @param DeviceID the device to initialize - * @param DeviceName the device name (path) to open - * @return 0 for success -1 for failure - */ -int32 VC_InitDevice(uint8 DeviceID, const char *DeviceName); - - -/** - * Configure device resource - * @param DeviceID the device ID of the resource to configure - * @return 0 for success -1 for failure - */ -int32 VC_ConfigureDevice(uint8 DeviceID); - - -/** - * @brief Start streaming on all devices - * @return 0 for success -1 for failure - */ -int32 VC_Start_Streaming(void); - - -/** - * @brief start streaming on a particular device - * @param DeviceID the device ID to start streaming on - * @return 0 for success -1 for failure - */ -int32 VC_Start_StreamingDevice(uint8 DeviceID); - - -/** - * @brief Streaming task, takes ready buffer and sends - * @note This is a loop to be run in a VC app child task - */ -void VC_Stream_Task(void); - - -/** - * @brief dequeue and send a buffer from a "ready" device - * @param DeviceID the device ID of the "ready" device - * @return 0 for success -1 for failure - */ -int32 VC_Send_Buffer(uint8 DeviceID); - - -/** - * @brief Stop streaming on all devices - * @return 0 for success -1 for failure - */ -int32 VC_Stop_Streaming(void); - - -/** - * @brief stop streaming on a particular device - * @param DeviceID the device ID to stop streaming on - * @return 0 for success -1 for failure - */ -int32 VC_Stop_StreamingDevice(uint8 DeviceID); - - -/** - * @brief Disable a device - * @param DeviceID the device to enable - * @return 0 for success -1 for failure - */ -int32 VC_DisableDevice(uint8 DeviceID); - - -/** - * @brief Cleanup (stop & close) all enabled and initialized devices - * @return 0 for success -1 for failure - */ -int32 VC_CleanupDevices(void); - - -extern VC_AppCustomDevice_t VC_AppCustomDevice; - -#endif - diff --git a/config/obc/ppd/target/apps/vc/src/vc_transmit_udp/vc_transmit_udp.c b/config/obc/ppd/target/apps/vc/src/vc_transmit_udp/vc_transmit_udp.c deleted file mode 100644 index add25556a..000000000 --- a/config/obc/ppd/target/apps/vc/src/vc_transmit_udp/vc_transmit_udp.c +++ /dev/null @@ -1,432 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ - -/************************************************************************ -** Pragmas -*************************************************************************/ - -/************************************************************************ -** Includes -*************************************************************************/ -#include "vc_transmit_udp.h" -#include "cfe.h" -#include -#include -#include -#include "px4lib.h" - - -/************************************************************************ -** Local Defines -*************************************************************************/ -#define OP_FLOW_FRAME_WIDTH 64 -#define OP_FLOW_FRAME_HEIGHT 64 -/************************************************************************ -** Local Structure Declarations -*************************************************************************/ - -/************************************************************************ -** External Global Variables -*************************************************************************/ - -/************************************************************************ -** Global Variables -*************************************************************************/ - - -/************************************************************************ -** Local Variables -*************************************************************************/ - -/************************************************************************ -** Local Function Definitions -*************************************************************************/ - -/** - * Global data structure for custom device transmit layer - */ -VC_AppCustomData_t VC_AppCustomData; - - -int32 VC_CustomTransmit_InitData() -{ - int32 iStatus = CFE_SUCCESS; - - /* Set all struct zero values */ - bzero(&VC_AppCustomData, sizeof(VC_AppCustomData)); - - /* Set all non-zero values for channel zero */ - VC_AppCustomData.Channel[0].Mode = VC_CHANNEL_ENABLED; - VC_AppCustomData.Channel[0].ChannelID = 0; - VC_AppCustomData.Channel[0].DestPort = VC_DESTINATION_PORT; - VC_AppCustomData.Channel[0].SocketFd = 0; - - strncpy(VC_AppCustomData.Channel[0].DestIP, VC_DESTINATION_IP, INET_ADDRSTRLEN); - strncpy(VC_AppCustomData.Channel[0].MyIP, VC_SOURCE_IP, INET_ADDRSTRLEN); - - - /* Initialize output messages*/ - CFE_SB_InitMsg(&OpticalFlowFrameMsg, FLOW_FRAME_MID, - sizeof(PX4_OpticalFlowFrameMsg_t), TRUE); - - return (iStatus); -} - - -int32 VC_EnableChannel(uint8 ChannelID) -{ - int32 returnCode = 0; - uint32 i = 0; - struct sockaddr_in servaddr; - int status; - int reuseaddr = 1; - - if((VC_AppCustomData.Channel[ChannelID].Mode == VC_CHANNEL_ENABLED) && - (VC_AppCustomData.Channel[ChannelID].SocketFd != 0)) - { - (void) CFE_EVS_SendEvent(VC_SOCKET_ERR_EID, CFE_EVS_ERROR, - "VC UDP for channel %u already enabled.", (unsigned int)i); - returnCode = -1; - goto end_of_function; - } - - if(ChannelID >= VC_MAX_OUTPUT_CHANNELS) - { - (void) CFE_EVS_SendEvent(VC_SOCKET_ERR_EID, CFE_EVS_ERROR, - "VC ChannelID (%u) invalid.", (unsigned int)ChannelID); - returnCode = -1; - goto end_of_function; - } - - VC_AppCustomData.Channel[ChannelID].SocketFd = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP); - if(VC_AppCustomData.Channel[ChannelID].SocketFd < 0) - { - VC_AppCustomData.Channel[ChannelID].Mode = VC_CHANNEL_DISABLED; - (void) CFE_EVS_SendEvent(VC_SOCKET_ERR_EID, CFE_EVS_ERROR, - "VC socket errno: %i on channel %u", errno, (unsigned int)i); - returnCode = -1; - goto end_of_function; - } - - /* Set the Reuse Address flag. If we don't set this flag, the socket will - * lock the port on termination and the kernel won't unlock it until it - * times out after a minute or so. - */ - setsockopt(VC_AppCustomData.Channel[ChannelID].SocketFd, SOL_SOCKET, SO_REUSEADDR, &reuseaddr, sizeof(reuseaddr)); - - /* Set the input arguments to the socket bind. - */ - - bzero(&servaddr,sizeof(servaddr)); - servaddr.sin_family = AF_INET; - servaddr.sin_port = htons(VC_AppCustomData.Channel[ChannelID].MyPort); - - if (inet_aton(VC_AppCustomData.Channel[ChannelID].MyIP, &servaddr.sin_addr) == 0) - { - (void) CFE_EVS_SendEvent(VC_SOCKET_ERR_EID, CFE_EVS_ERROR, - "VC inet_aton errno: %i on channel %u", errno, (unsigned int)i); - returnCode = -1; - goto end_of_function; - } - - status = bind(VC_AppCustomData.Channel[ChannelID].SocketFd, - (struct sockaddr *)&servaddr,sizeof(servaddr)); - if(status < 0) - { - (void) CFE_EVS_SendEvent(VC_SOCKET_ERR_EID, CFE_EVS_ERROR, - "VC bind errno: %i on channel %u", errno, (unsigned int)i); - VC_AppCustomData.Channel[ChannelID].Mode = VC_CHANNEL_DISABLED; - returnCode = -1; - } - -end_of_function: - return (returnCode); -} - - -int32 VC_Init_CustomTransmitters(void) -{ - uint32 i = 0; - int32 returnCode = 0; - - for (i=0; i < VC_MAX_OUTPUT_CHANNELS; i++) - { - if(VC_AppCustomData.Channel[i].Mode == VC_CHANNEL_ENABLED) - { - if(VC_EnableChannel(i)) - { - returnCode = -1; - VC_AppCustomData.Channel[i].Mode = VC_CHANNEL_DISABLED; - } - else - { - (void) CFE_EVS_SendEvent(VC_CHA_INF_EID, CFE_EVS_INFORMATION, - "VC UDP output enabled channel %u to %s:%u", - (unsigned int)i, VC_AppCustomData.Channel[i].DestIP, - (unsigned int)VC_AppCustomData.Channel[i].DestPort); - } - } - } - return (returnCode); -} - - -int32 VC_DisableChannel(uint8 ChannelID) -{ - int32 returnCode = 0; - - if(VC_AppCustomData.Channel[ChannelID].Mode != VC_CHANNEL_ENABLED) - { - returnCode = -1; - goto end_of_function; - } - - if(-1 == close(VC_AppCustomData.Channel[ChannelID].SocketFd)) - { - returnCode = -1; - goto end_of_function; - } - else - { - VC_AppCustomData.Channel[ChannelID].SocketFd = 0; - } - -end_of_function: - return (returnCode); -} - - -int32 VC_CleanupCustom(void) -{ - uint32 i = 0; - int32 returnCode = 0; - - for(i=0; i < VC_MAX_OUTPUT_CHANNELS; i++) - { - if(VC_AppCustomData.Channel[i].Mode == VC_CHANNEL_ENABLED) - { - if(-1 == VC_DisableChannel(i)) - { - returnCode = -1; - } - } - } - return returnCode; -} - - -boolean VC_Transmit_Init(void) -{ - boolean returnBool = TRUE; - if(-1 == VC_Init_CustomTransmitters()) - { - (void) CFE_EVS_SendEvent(VC_SOCKET_ERR_EID, CFE_EVS_ERROR, \ - "VC_Transmit_Init Failed"); - returnBool = FALSE; - } - return (returnBool); -} - - -boolean VC_Transmit_Uninit(void) -{ - boolean returnBool = TRUE; - if(-1 == VC_CleanupCustom()) - { - returnBool = FALSE; - } - return (returnBool); -} - - -void VC_Transmit_Critical_Cleanup(void) -{ - uint8 i = 0; - - for(i=0; i < VC_MAX_OUTPUT_CHANNELS; i++) - { - if(VC_AppCustomData.Channel[i].SocketFd != 0) - { - close(VC_AppCustomData.Channel[i].SocketFd); - } - } - return; -} - - -int32 VC_SendData(uint32 ChannelID, const char* Buffer, uint32 Size) -{ - static struct sockaddr_in s_addr; - int status = 0; - int32 returnCode = 0; - - bzero((char *) &s_addr, sizeof(s_addr)); - s_addr.sin_family = AF_INET; - - if(ChannelID < VC_MAX_OUTPUT_CHANNELS) - { - VC_Transmit_Handle_t *channel = &VC_AppCustomData.Channel[ChannelID]; - - if(channel->Mode == VC_CHANNEL_ENABLED) - { - - CFE_ES_PerfLogEntry(VC_SOCKET_SEND_PERF_ID); - /* Send message via UDP socket */ - s_addr.sin_addr.s_addr = inet_addr(channel->DestIP); - s_addr.sin_port = htons(channel->DestPort); - - /* If the frame is from opFlow dedicated camera device - * convert image from YUV2 or YUYV to Grey by extracting the Y component. - * copy the image to opticalFlowFrameMsg*/ - if(ChannelID == 0) - { - /* Row */ - uint32 rowPadding = (VC_FRAME_HEIGHT-OP_FLOW_FRAME_HEIGHT)/2; - uint32 startRow = ((VC_FRAME_WIDTH)*(rowPadding-1)); - uint32 endRow = ((VC_FRAME_WIDTH)*(VC_FRAME_HEIGHT-rowPadding-1)); - /* Column */ - uint32 columnPadding = (VC_FRAME_WIDTH-OP_FLOW_FRAME_WIDTH)/2; - uint32 startColumn = (columnPadding); - uint32 endColumn = (VC_FRAME_WIDTH-columnPadding-1); - - uint32 byteCounter = 0; - uint32 colCounter = 0; - uint32 valCounter = 0; - - uint32 columnPaddingCounter = 0; - uint32 rowPaddingCounter = 0; - uint32 i; - for(i =0 ; i= endRow) - { - byteCounter++; - continue; - - } - else - { - if(byteCounter!=0 && byteCounter%VC_FRAME_WIDTH == 0) - { - colCounter = 0; - } - - if(colCounter>=startColumn && colCounter<=endColumn) - { - OpticalFlowFrameMsg.Frame[valCounter]=(uint8)Buffer[i]; - valCounter++; - } - colCounter++; - } - byteCounter++; - } - } - - /* Publish message to software bus */ - uint64 timestamp; - timestamp = PX4LIB_GetPX4TimeUs(); - OpticalFlowFrameMsg.Timestamp = timestamp; - CFE_SB_TimeStampMsg((CFE_SB_Msg_t*) &OpticalFlowFrameMsg); - CFE_SB_SendMsg((CFE_SB_Msg_t*) &OpticalFlowFrameMsg); - status = PX4_OPTICAL_FLOW_FRAME_SIZE; - - /* Send frame over udp*/ - status = sendto(channel->SocketFd, (char *)OpticalFlowFrameMsg.Frame, sizeof(OpticalFlowFrameMsg.Frame), 0, - (struct sockaddr *) &s_addr, - sizeof(s_addr)); - } - - if (status < 0) - { - if(errno == 90) - { - (void) CFE_EVS_SendEvent(VC_SOCKET_ERR_EID,CFE_EVS_ERROR, - "L%d VC sendto errno %d. Message too long. Size=%u", __LINE__, errno, (unsigned int)Size); - } - else - { - (void) CFE_EVS_SendEvent(VC_SOCKET_ERR_EID, CFE_EVS_ERROR, - "L%d VC sendto errno %d.", __LINE__, errno); - } - - /* Delay the task to prevent the possibility of busy waiting and accidental denial of service. */ - OS_TaskDelay(1000); - } - CFE_ES_PerfLogExit(VC_SOCKET_SEND_PERF_ID); - } - } - return (returnCode); -} - - -boolean VC_Address_Verification(const char *Address) -{ - boolean returnBool = FALSE; - static struct sockaddr_in s_addr; - if(0 != inet_aton(Address, &s_addr.sin_addr)) - { - returnBool = TRUE; - } - return (returnBool); -} - - -boolean VC_Update_Destination(const char *Address, uint16 Port) -{ - boolean returnBool = TRUE; - uint32 i = 0; - - for (i=0; i < VC_MAX_OUTPUT_CHANNELS; i++) - { - if(VC_AppCustomData.Channel[i].Mode == VC_CHANNEL_ENABLED) - { - VC_AppCustomData.Channel[i].DestPort = Port; - - if(!strncpy(VC_AppCustomData.Channel[i].DestIP, Address, INET_ADDRSTRLEN)) - { - returnBool = FALSE; - } - } - } - - return (returnBool); -} - - -int32 VC_Transmit_InitData() -{ - return VC_CustomTransmit_InitData(); -} - diff --git a/config/obc/ppd/target/apps/vc/src/vc_transmit_udp/vc_transmit_udp.h b/config/obc/ppd/target/apps/vc/src/vc_transmit_udp/vc_transmit_udp.h deleted file mode 100644 index e83ecd4be..000000000 --- a/config/obc/ppd/target/apps/vc/src/vc_transmit_udp/vc_transmit_udp.h +++ /dev/null @@ -1,145 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ - -#ifndef VC_TRANSMIT_UDP_H -#define VC_TRANSMIT_UDP_H - -/************************************************************************ -** Includes -*************************************************************************/ -#include "cfe.h" -#include "px4_msgs.h" -#include "msg_ids.h" -#include "vc_transmit.h" -#include "../vc_custom_shared.h" -#include "vc_perfids.h" -#include -#include "vc_app.h" - -/************************************************************************ -** Structure Declarations -*************************************************************************/ - -/** - * Channel modes - */ -typedef enum -{ - /*! Channel state unused */ - VC_CHANNEL_UNUSED = 0, - /*! Channel state disabled */ - VC_CHANNEL_DISABLED = 1, - /*! Channel state enabled */ - VC_CHANNEL_ENABLED = 2 -} VC_ChannelMode_t; - - -/** - * Transmit struct handle for user defined source and/or destination - * configuration information and initialized resource reference. - */ -typedef struct -{ - /*! Channel mode */ - VC_ChannelMode_t Mode; - /*! Channel identifier */ - uint8 ChannelID; - /*! Destination port */ - uint16 DestPort; - /*! Local port to bind */ - uint16 MyPort; - /*! Destination IP address */ - char DestIP[INET_ADDRSTRLEN]; - /*! Local IP address to allow interface choices */ - char MyIP[INET_ADDRSTRLEN]; - /*! Socket file descriptor for the channel */ - int SocketFd; -} VC_Transmit_Handle_t; - -/** - * Transmit handles - */ -typedef struct -{ - VC_Transmit_Handle_t Channel[VC_MAX_OUTPUT_CHANNELS]; -} VC_AppCustomData_t; - -/** \brief Optical flow frame message */ -PX4_OpticalFlowFrameMsg_t OpticalFlowFrameMsg; -/************************************************************************ -** External Global Variables -*************************************************************************/ - -extern VC_AppCustomData_t VC_AppCustomData; - -/************************************************************************ -** Function Prototypes -*************************************************************************/ - -/** - * @brief Custom function to initialize custom transmit data structure. - * @return CFE_SUCCESS - */ -int32 VC_CustomTransmit_InitData(void); - - -/** - * @brief Initialize all enabled transmit resources - * @return 0 for success -1 for failure - */ -int32 VC_Init_CustomTransmitters(void); - - -/** - * @brief Initialize a transmit channel - * @return 0 for success -1 for failure - */ -int32 VC_EnableChannel(uint8 ChannelID); - - -/** - * @brief Cleanup all transmit resources - * @return 0 for success -1 for failure - */ -int32 VC_CleanupCustom(void); - - -/** - * @brief Disable a transmit channel - * @param ChannelID the channel to disable - * @return 0 for success -1 for failure - */ -int32 VC_DisableChannel(uint8 ChannelID); - - -#endif diff --git a/config/obc/ppd/target/apps/vc/unit_test/vc_app_custom_stubs/vc_app_custom_stubs.c b/config/obc/ppd/target/apps/vc/unit_test/vc_app_custom_stubs/vc_app_custom_stubs.c deleted file mode 100644 index af7b83c94..000000000 --- a/config/obc/ppd/target/apps/vc/unit_test/vc_app_custom_stubs/vc_app_custom_stubs.c +++ /dev/null @@ -1,50 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ - -#include "vc_app_custom_stubs.h" - - - -uint64 PX4LIB_GetPX4TimeUs(void) -{ - return 0; -} - - -uint64 PX4LIB_GetPX4TimeMs(void) -{ - return 0; -} - - - diff --git a/config/obc/ppd/target/apps/vc/unit_test/vc_app_custom_stubs/vc_app_custom_stubs.h b/config/obc/ppd/target/apps/vc/unit_test/vc_app_custom_stubs/vc_app_custom_stubs.h deleted file mode 100644 index 320012837..000000000 --- a/config/obc/ppd/target/apps/vc/unit_test/vc_app_custom_stubs/vc_app_custom_stubs.h +++ /dev/null @@ -1,48 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ - -#ifndef VC_APP_CUSTOM_STUBS_H -#define VC_APP_CUSTOM_STUBS_H - -#ifdef __cplusplus -extern "C" { -#endif - -#include "cfe.h" - - -#ifdef __cplusplus -} -#endif - -#endif /* VC_APP_CUSTOM_STUBS_H */ diff --git a/config/obc/ppd/target/apps/vc/unit_test/vc_app_stubs/vc_app_stubs.c b/config/obc/ppd/target/apps/vc/unit_test/vc_app_stubs/vc_app_stubs.c deleted file mode 100644 index 21cf82ce5..000000000 --- a/config/obc/ppd/target/apps/vc/unit_test/vc_app_stubs/vc_app_stubs.c +++ /dev/null @@ -1,62 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ - -#include "vc_app_stubs.h" -#include "vc_custom_shared.h" - -boolean VC_VerifyCmdLength(CFE_SB_Msg_t* MsgPtr, - uint16 usExpectedLen) -{ - boolean bResult = TRUE; - uint16 usMsgLen = 0; - - if (MsgPtr != NULL) - { - usMsgLen = CFE_SB_GetTotalMsgLength(MsgPtr); - - if (usExpectedLen != usMsgLen) - { - bResult = FALSE; - CFE_SB_MsgId_t MsgId = CFE_SB_GetMsgId(MsgPtr); - uint16 usCmdCode = CFE_SB_GetCmdCode(MsgPtr); - - (void) CFE_EVS_SendEvent(VC_MSGLEN_ERR_EID, CFE_EVS_ERROR, - "Rcvd invalid msgLen: msgId=0x%08X, cmdCode=%d, " - "msgLen=%d, expectedLen=%d", - MsgId, usCmdCode, usMsgLen, usExpectedLen); - VC_AppData.HkTlm.usCmdErrCnt++; - } - } - - return (bResult); -} /* End of VC_VerifyCmdLength() */ diff --git a/config/obc/ppd/target/apps/vc/unit_test/vc_app_stubs/vc_app_stubs.h b/config/obc/ppd/target/apps/vc/unit_test/vc_app_stubs/vc_app_stubs.h deleted file mode 100644 index a44118e95..000000000 --- a/config/obc/ppd/target/apps/vc/unit_test/vc_app_stubs/vc_app_stubs.h +++ /dev/null @@ -1,50 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ - -#ifndef VC_APP_STUBS_H -#define VC_APP_STUBS_H - -#ifdef __cplusplus -extern "C" { -#endif - -#include "cfe.h" - -boolean VC_VerifyCmdLength(CFE_SB_Msg_t* MsgPtr, - uint16 usExpectedLen); - -#ifdef __cplusplus -} -#endif - -#endif /* VC_APP_STUBS_H */ diff --git a/config/obc/ppd/target/apps/vc/unit_test/vc_custom_shared_test/vc_app_custom_shared_test.c b/config/obc/ppd/target/apps/vc/unit_test/vc_custom_shared_test/vc_app_custom_shared_test.c deleted file mode 100644 index 04aae9595..000000000 --- a/config/obc/ppd/target/apps/vc/unit_test/vc_custom_shared_test/vc_app_custom_shared_test.c +++ /dev/null @@ -1,589 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ - -#include "vc_app_custom_shared_test.h" -#include "vc_custom_shared_test_utils.h" -#include "vc_platform_cfg.h" -#include "vc_transmit_udp.h" -#include "vc_msgids.h" -#include "vc_platform_stubs.h" - -#include -#include -#include - -#include "uttest.h" -#include "ut_osapi_stubs.h" -#include "ut_cfe_sb_stubs.h" -#include "ut_cfe_sb_hooks.h" -#include "ut_cfe_es_stubs.h" -#include "ut_cfe_es_hooks.h" -#include "ut_cfe_evs_stubs.h" -#include "ut_cfe_evs_hooks.h" -#include "ut_cfe_time_stubs.h" -#include "ut_cfe_psp_memutils_stubs.h" -#include "ut_cfe_tbl_stubs.h" -#include "ut_cfe_fs_stubs.h" -#include "ut_cfe_time_stubs.h" - -/************************************************************************** - * Tests VC_ProcessNewCustomCmds() - **************************************************************************/ -/** - * Test VC_ProcessNewCustomCmds() - InvalidMsgID - */ -void Test_VC_Custom_ProcessNewCustomCmds_InvalidMsgID(void) -{ - VC_StartStreamCmd_t InMsg; - - CFE_SB_InitMsg (&InMsg, 0x0000, sizeof(VC_StartStreamCmd_t), TRUE); - - CFE_SB_SetCmdCode((CFE_SB_MsgPtr_t)&InMsg, VC_STARTSTREAMING_CC); - - /* Set get command code function hook */ - Ut_CFE_SB_SetFunctionHook(UT_CFE_SB_GETCMDCODE_INDEX, &Ut_CFE_SB_GetCmdCodeHook); - - /* Call the function under test */ - VC_ProcessNewCustomCmds((CFE_SB_MsgPtr_t)&InMsg); - - /* Verify results */ - - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); - UtAssert_True(VC_AppData.HkTlm.usCmdErrCnt == 1,"CmdErrCnt not incremented"); - UtAssert_EventSent(VC_MSGID_ERR_EID, CFE_EVS_ERROR, "", - "VC_ProcessNewCustomCmds() failed to raise an event"); -} - - -/** - * Test VC_ProcessNewCustomCmds() - Invalid Command Code - */ -void Test_VC_Custom_ProcessNewCustomCmds_InvalidCommand(void) -{ - /* Create an invalid command code */ - uint8 InvalidCommandCode = 100; - - VC_StartStreamCmd_t InMsg; - - CFE_SB_InitMsg (&InMsg, VC_STARTSTREAMING_CC, sizeof(VC_StartStreamCmd_t), TRUE); - - /* Set invalid command code */ - CFE_SB_SetCmdCode((CFE_SB_MsgPtr_t)&InMsg, InvalidCommandCode); - - /* Set get command code function hook */ - Ut_CFE_SB_SetFunctionHook(UT_CFE_SB_GETCMDCODE_INDEX, &Ut_CFE_SB_GetCmdCodeHook); - - /* Call the function under test */ - VC_ProcessNewCustomCmds((CFE_SB_MsgPtr_t)&InMsg); - - /* Verify results */ - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); - UtAssert_True(VC_AppData.HkTlm.usCmdErrCnt = 1,"Command error counter != 1"); - UtAssert_EventSent(VC_MSGID_ERR_EID, CFE_EVS_ERROR, "", - "Cmd with Invalid Cmd Code Sent"); -} - - -/** - * Test VC_ProcessNewCustomCmds(), StartStreaming command, Invalid Size - */ -void Test_VC_ProcessNewCustomCmds_StartStreaming_InvalidSize(void) -{ - /* Command with the wrong type (size) */ - VC_NoArgCmd_t InMsg; - - CFE_SB_InitMsg (&InMsg, VC_CMD_MID, sizeof(InMsg), TRUE); - - CFE_SB_SetCmdCode((CFE_SB_MsgPtr_t)&InMsg, VC_STARTSTREAMING_CC); - - /* Set get command code function hook */ - Ut_CFE_SB_SetFunctionHook(UT_CFE_SB_GETCMDCODE_INDEX, &Ut_CFE_SB_GetCmdCodeHook); - - /* Call the function under test */ - VC_ProcessNewCustomCmds((CFE_SB_MsgPtr_t)&InMsg); - - /* Verify results */ - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); - UtAssert_True(VC_AppData.HkTlm.usCmdErrCnt = 1,"Command error counter != 1"); - UtAssert_EventSent(VC_MSGLEN_ERR_EID, CFE_EVS_ERROR, "", - "Start Streaming Cmd Event Sent"); -} - - -/** - * Test VC_ProcessNewCustomCmds(), StartStreaming command, Invalid State - */ -void Test_VC_ProcessNewCustomCmds_StartStreaming_InvalidState(void) -{ - VC_StartStreamCmd_t InStartStreamingCmd; - - CFE_SB_InitMsg (&InStartStreamingCmd, VC_CMD_MID, sizeof(InStartStreamingCmd), TRUE); - CFE_SB_SetCmdCode((CFE_SB_MsgPtr_t)&InStartStreamingCmd, VC_STARTSTREAMING_CC); - - /* Set get command code function hook */ - Ut_CFE_SB_SetFunctionHook(UT_CFE_SB_GETCMDCODE_INDEX, &Ut_CFE_SB_GetCmdCodeHook); - - /* Set app state to streaming */ - VC_AppData.AppState = VC_STREAMING; - - /* Call the function under test */ - VC_ProcessNewCustomCmds((CFE_SB_MsgPtr_t)&InStartStreamingCmd); - - /* Verify results */ - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==2,"Event Count = 2"); - UtAssert_True(VC_AppData.HkTlm.usCmdErrCnt = 1,"Command error counter != 1"); - UtAssert_EventSent(VC_CMD_ERR_EID, CFE_EVS_ERROR, "VC is already streaming", "Start Streaming Cmd Event Sent"); -} - - -/** - * Test VC_ProcessNewCustomCmds(), StartStreaming command, Invalid (Null) Address - */ -void Test_VC_ProcessNewCustomCmds_StartStreaming_InvalidNullAddress(void) -{ - VC_StartStreamCmd_t InStartStreamingCmd; - - CFE_SB_InitMsg (&InStartStreamingCmd, VC_CMD_MID, sizeof(InStartStreamingCmd), TRUE); - CFE_SB_SetCmdCode((CFE_SB_MsgPtr_t)&InStartStreamingCmd, VC_STARTSTREAMING_CC); - - /* Set get command code function hook */ - Ut_CFE_SB_SetFunctionHook(UT_CFE_SB_GETCMDCODE_INDEX, &Ut_CFE_SB_GetCmdCodeHook); - - /* Set app state to initialized */ - VC_AppData.AppState = VC_INITIALIZED; - - /* Call the function under test */ - VC_ProcessNewCustomCmds((CFE_SB_MsgPtr_t)&InStartStreamingCmd); - - /* Verify results */ - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==2,"Event Count = 2"); - UtAssert_True(VC_AppData.HkTlm.usCmdErrCnt = 1,"Command error counter != 1"); - UtAssert_EventSent(VC_ADDR_NUL_ERR_EID, CFE_EVS_ERROR, - "NUL (empty) string specified for address", "Start Streaming Cmd Event Sent"); -} - - -/** - * Test VC_ProcessNewCustomCmds(), StartStreaming command, Invalid Address - */ -void Test_VC_ProcessNewCustomCmds_StartStreaming_InvalidAddress(void) -{ - VC_StartStreamCmd_t InStartStreamingCmd; - - CFE_SB_InitMsg (&InStartStreamingCmd, VC_CMD_MID, sizeof(InStartStreamingCmd), TRUE); - CFE_SB_SetCmdCode((CFE_SB_MsgPtr_t)&InStartStreamingCmd, VC_STARTSTREAMING_CC); - - /* Set get command code function hook */ - Ut_CFE_SB_SetFunctionHook(UT_CFE_SB_GETCMDCODE_INDEX, &Ut_CFE_SB_GetCmdCodeHook); - - /* Set app state to initialized */ - VC_AppData.AppState = VC_INITIALIZED; - - /* Start streaming needs an address to pass null check */ - strcpy(InStartStreamingCmd.Address, "NOT_NULL"); - - /* Call the function under test */ - VC_ProcessNewCustomCmds((CFE_SB_MsgPtr_t)&InStartStreamingCmd); - - /* Verify results */ - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==2,"Event Count = 2"); - UtAssert_True(VC_AppData.HkTlm.usCmdErrCnt = 1,"Command error counter != 1"); - UtAssert_EventSent(VC_ADDR_ERR_EID, CFE_EVS_ERROR, - "Invalid string specified for address", "Start Streaming Cmd Event Sent"); -} - - -/** - * Test VC_ProcessNewCustomCmds(), StartStreaming command, destination - * update failure - */ -void Test_VC_ProcessNewCustomCmds_StartStreaming_UpdateDestinationFail(void) -{ - /* Currently no way to fail update destination. */ - //VC_StartStreamCmd_t InStartStreamingCmd; - - //CFE_SB_InitMsg (&InStartStreamingCmd, VC_CMD_MID, sizeof(InStartStreamingCmd), TRUE); - //CFE_SB_SetCmdCode((CFE_SB_MsgPtr_t)&InStartStreamingCmd, VC_STARTSTREAMING_CC); - - ///* Set get command code function hook */ - //Ut_CFE_SB_SetFunctionHook(UT_CFE_SB_GETCMDCODE_INDEX, &Ut_CFE_SB_GetCmdCodeHook); - - ///* Set app state to initialized */ - //VC_AppData.AppState = VC_INITIALIZED; - - ///* Start streaming needs an address to pass null check */ - //strcpy(InStartStreamingCmd.Address, "1.1.1.1"); - - ///* Call the function under test */ - //VC_ProcessNewCustomCmds((CFE_SB_MsgPtr_t)&InStartStreamingCmd); - - ///* Verify results */ - //UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==2,"Event Count = 2"); - //UtAssert_True(VC_AppData.HkTlm.usCmdErrCnt = 1,"Command error counter != 1"); - //UtAssert_EventSent(VC_INIT_ERR_EID, CFE_EVS_ERROR, "Destination update failed", "Start Streaming Cmd Event Sent"); -} - - -/** - * Test VC_ProcessNewCustomCmds(), StartStreaming command, transmit - * uninit failure - */ -void Test_VC_ProcessNewCustomCmds_StartStreaming_TransmitUninitFail(void) -{ - VC_StartStreamCmd_t InStartStreamingCmd; - - CFE_SB_InitMsg (&InStartStreamingCmd, VC_CMD_MID, sizeof(InStartStreamingCmd), TRUE); - CFE_SB_SetCmdCode((CFE_SB_MsgPtr_t)&InStartStreamingCmd, VC_STARTSTREAMING_CC); - - /* Set get command code function hook */ - Ut_CFE_SB_SetFunctionHook(UT_CFE_SB_GETCMDCODE_INDEX, &Ut_CFE_SB_GetCmdCodeHook); - - /* Set app state to initialized */ - VC_AppData.AppState = VC_INITIALIZED; - - /* Start streaming needs an address to pass null check */ - strcpy(InStartStreamingCmd.Address, "1.1.1.1"); - - /* Set a channel to enabled to pass VC_Update_Destination */ - VC_AppCustomData.Channel[0].Mode = VC_CHANNEL_ENABLED; - - /* Set close to fail */ - VC_Platform_Stubs_Returns.VC_Wrap_Close_Return = -1; - - /* Call the function under test */ - VC_ProcessNewCustomCmds((CFE_SB_MsgPtr_t)&InStartStreamingCmd); - - /* Verify results */ - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==2,"Event Count = 2"); - UtAssert_True(VC_AppData.HkTlm.usCmdErrCnt = 1,"Command error counter != 1"); -} - - -/** - * Test VC_ProcessNewCustomCmds(), StartStreaming command, devices - * start failure - */ -void Test_VC_ProcessNewCustomCmds_StartStreaming_DevicesStartFail(void) -{ - VC_StartStreamCmd_t InStartStreamingCmd; - - CFE_SB_InitMsg (&InStartStreamingCmd, VC_CMD_MID, sizeof(InStartStreamingCmd), TRUE); - CFE_SB_SetCmdCode((CFE_SB_MsgPtr_t)&InStartStreamingCmd, VC_STARTSTREAMING_CC); - - /* Set get command code function hook */ - Ut_CFE_SB_SetFunctionHook(UT_CFE_SB_GETCMDCODE_INDEX, &Ut_CFE_SB_GetCmdCodeHook); - - /* Set app state to initialized */ - VC_AppData.AppState = VC_INITIALIZED; - - /* Start streaming needs an address to pass null check */ - strcpy(InStartStreamingCmd.Address, "1.1.1.1"); - - /* Set source IP to a valid value to pass transmit init */ - strcpy(VC_AppCustomData.Channel[0].MyIP, "1.1.1.1"); - - /* Set a channel to enabled to pass VC_Update_Destination */ - VC_AppCustomData.Channel[0].Mode = VC_CHANNEL_ENABLED; - - /* Set status to initialized */ - VC_AppCustomDevice.Channel[0].Status = VC_DEVICE_INITIALIZED; - - /* Set device start child task to fail */ - Ut_CFE_ES_SetReturnCode(UT_CFE_ES_CREATECHILDTASK_INDEX, -1, 1); - - /* Call the function under test */ - VC_ProcessNewCustomCmds((CFE_SB_MsgPtr_t)&InStartStreamingCmd); - - /* Verify results */ - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==2,"Event Count = 2"); - UtAssert_True(VC_AppData.HkTlm.usCmdErrCnt = 1,"Command error counter != 1"); - UtAssert_EventSent(VC_INIT_ERR_EID, CFE_EVS_ERROR, "VC_Devices_Start failed in cmd start streaming", "Device start failure did not raise event"); -} - - -/** - * Test VC_ProcessNewCustomCmds(), Start Streaming command, Nominal - */ -void Test_VC_ProcessNewCustomCmds_StartStreaming_Nominal(void) -{ - VC_StartStreamCmd_t InStartStreamingCmd; - - CFE_SB_InitMsg (&InStartStreamingCmd, VC_CMD_MID, sizeof(InStartStreamingCmd), TRUE); - CFE_SB_SetCmdCode((CFE_SB_MsgPtr_t)&InStartStreamingCmd, VC_STARTSTREAMING_CC); - - /* Set get command code function hook */ - Ut_CFE_SB_SetFunctionHook(UT_CFE_SB_GETCMDCODE_INDEX, &Ut_CFE_SB_GetCmdCodeHook); - - /* Set app state to initialized */ - VC_AppData.AppState = VC_INITIALIZED; - - /* Start streaming needs an address to pass null check */ - strcpy(InStartStreamingCmd.Address, "1.1.1.1"); - - /* Set source IP to a valid value to pass transmit init */ - strcpy(VC_AppCustomData.Channel[0].MyIP, "1.1.1.1"); - - /* Set a channel to enabled to pass VC_Update_Destination */ - VC_AppCustomData.Channel[0].Mode = VC_CHANNEL_ENABLED; - - /* Set status to initialized */ - VC_AppCustomDevice.Channel[0].Status = VC_DEVICE_INITIALIZED; - - /* Call the function under test */ - VC_ProcessNewCustomCmds((CFE_SB_MsgPtr_t)&InStartStreamingCmd); - - /* Verify results */ - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==2,"Event Count = 2"); - UtAssert_True(VC_AppData.HkTlm.usCmdCnt = 1,"Command counter != 1"); - UtAssert_EventSent(VC_CMD_INF_EID, CFE_EVS_INFORMATION, "", "Start Streaming Cmd Event Sent"); - UtAssert_True(VC_AppData.AppState == VC_STREAMING, "App state != streaming"); -} - - -/** - * Test VC_ProcessNewCustomCmds(), StopStreaming command, Invalid Size - */ -void Test_VC_ProcessNewCustomCmds_StopStreaming_InvalidSize(void) -{ - /* Command with the wrong type (size) */ - VC_StartStreamCmd_t InMsg; - - CFE_SB_InitMsg (&InMsg, VC_CMD_MID, sizeof(InMsg), TRUE); - - CFE_SB_SetCmdCode((CFE_SB_MsgPtr_t)&InMsg, VC_STOPSTREAMING_CC); - - /* Set get command code function hook */ - Ut_CFE_SB_SetFunctionHook(UT_CFE_SB_GETCMDCODE_INDEX, &Ut_CFE_SB_GetCmdCodeHook); - - /* Call the function under test */ - VC_ProcessNewCustomCmds((CFE_SB_MsgPtr_t)&InMsg); - - /* Verify results */ - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); - UtAssert_True(VC_AppData.HkTlm.usCmdErrCnt = 1,"Command error counter != 1"); - UtAssert_EventSent(VC_MSGLEN_ERR_EID, CFE_EVS_ERROR, "", - "Start Streaming Cmd Event Sent"); -} - - -/** - * Test VC_ProcessNewCustomCmds(), StopStreaming command, Invalid State - */ -void Test_VC_ProcessNewCustomCmds_StopStreaming_InvalidState(void) -{ - VC_NoArgCmd_t InMsg; - - CFE_SB_InitMsg (&InMsg, VC_CMD_MID, sizeof(InMsg), TRUE); - CFE_SB_SetCmdCode((CFE_SB_MsgPtr_t)&InMsg, VC_STOPSTREAMING_CC); - - /* Set get command code function hook */ - Ut_CFE_SB_SetFunctionHook(UT_CFE_SB_GETCMDCODE_INDEX, &Ut_CFE_SB_GetCmdCodeHook); - - /* Set app state to streaming */ - VC_AppData.AppState = VC_INITIALIZED; - - /* Call the function under test */ - VC_ProcessNewCustomCmds((CFE_SB_MsgPtr_t)&InMsg); - - /* Verify results */ - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==2,"Event Count = 2"); - UtAssert_True(VC_AppData.HkTlm.usCmdErrCnt = 1,"Command error counter != 1"); - UtAssert_EventSent(VC_CMD_ERR_EID, CFE_EVS_ERROR, - "VC is already not streaming", "Stop Streaming Cmd Event Sent"); -} - - -/************************************************************************** - * Tests VC_Custom_Max_Events_Not_Reached() - **************************************************************************/ -/** - * Test Test_VC_Custom_Max_Events_Not_Reached(), Nominal - * - */ -void Test_VC_Custom_Max_Events_Not_Reached_Nominal(void) -{ - UtAssert_True(VC_Custom_Max_Events_Not_Reached(VC_MAX_EVENT_FILTERS - 1) == TRUE, - "Max events not reached did return true"); -} - - -/** - * Test Test_VC_Custom_Max_Events_Not_Reached(), Fail - * - */ -void Test_VC_Custom_Max_Events_Not_Reached_Fail(void) -{ - UtAssert_True(VC_Custom_Max_Events_Not_Reached(VC_MAX_EVENT_FILTERS + 1) == FALSE, - "Max events not reached did not return false"); -} - - -/************************************************************************** - * Tests VC_Custom_Init_EventFilters() - **************************************************************************/ -/** - * Test VC_Custom_Init_EventFilters(), Nominal - */ -void Test_VC_Custom_Init_EventFilters_Nominal(void) -{ - int32 returnCode = 0; - int32 expected = 2; - - CFE_EVS_BinFilter_t EventTbl[VC_MAX_EVENT_FILTERS]; - - returnCode = VC_Custom_Init_EventFilters(1, EventTbl); - - UtAssert_True(returnCode == expected, - "Test_VC_Custom_Init_EventFilters_Nominal did not return the expected value"); - UtAssert_True(EventTbl[1].EventID == VC_SOCKET_ERR_EID, - "Event filter array entries not added"); - UtAssert_True(EventTbl[2].EventID == VC_DEVICE_ERR_EID, - "Event filter array entries not added"); -} - - -/** - * Test VC_Custom_Init_EventFilters(), Fail - */ -void Test_VC_Custom_Init_EventFilters_Fail1(void) -{ - int32 returnCode = 0; - int32 expected = -1; - CFE_EVS_BinFilter_t EventTbl[VC_MAX_EVENT_FILTERS]; - - returnCode = VC_Custom_Init_EventFilters(VC_MAX_EVENT_FILTERS, EventTbl); - - UtAssert_True(returnCode == expected, - "Test_VC_Custom_Init_EventFilters_Fail did not return the expected value"); - -} - - -/** - * Test VC_Custom_Init_EventFilters(), Fail - */ -void Test_VC_Custom_Init_EventFilters_Fail2(void) -{ - int32 returnCode = 0; - int32 expected = -1; - CFE_EVS_BinFilter_t EventTbl[VC_MAX_EVENT_FILTERS]; - - returnCode = VC_Custom_Init_EventFilters(VC_MAX_EVENT_FILTERS-1, EventTbl); - - UtAssert_True(returnCode == expected, - "Test_VC_Custom_Init_EventFilters_Fail did not return the expected value"); - UtAssert_True(returnCode == expected, - "Test_VC_Custom_Init_EventFilters_Nominal did not return the expected value"); - UtAssert_True(EventTbl[VC_MAX_EVENT_FILTERS-1].EventID == VC_SOCKET_ERR_EID, - "Event filter array entries not added"); - -} - - -/** - * Test VC_Custom_Init_EventFilters(), Fail null check - */ -void Test_VC_Custom_Init_EventFilters_Null(void) -{ - int32 returnCode = 0; - int32 expected = -1; - - returnCode = VC_Custom_Init_EventFilters(1, (CFE_EVS_BinFilter_t *)0); - - UtAssert_True(returnCode == expected, - "Test_VC_Custom_Init_EventFilters_Fail did not return the expected value"); -} - -/************************************************************************** - * Rollup Test Cases - **************************************************************************/ -void VC_Custom_App_Shared_Test_AddTestCases(void) -{ -/************************************************************************** - * Tests for Custom Shared Layer - **************************************************************************/ - UtTest_Add(Test_VC_Custom_ProcessNewCustomCmds_InvalidMsgID, - VC_Custom_Shared_Test_Setup, VC_Custom_Shared_Test_TearDown, - "Test_VC_Custom_ProcessNewCustomCmds_InvalidMsgID"); - UtTest_Add(Test_VC_Custom_ProcessNewCustomCmds_InvalidCommand, - VC_Custom_Shared_Test_Setup, VC_Custom_Shared_Test_TearDown, - "Test_VC_Custom_ProcessNewCustomCmds_InvalidCommand"); - UtTest_Add(Test_VC_ProcessNewCustomCmds_StartStreaming_InvalidSize, - VC_Custom_Shared_Test_Setup, VC_Custom_Shared_Test_TearDown, - "Test_VC_ProcessNewCustomCmds_StartStreaming_InvalidSize"); - UtTest_Add(Test_VC_ProcessNewCustomCmds_StartStreaming_InvalidState, - VC_Custom_Shared_Test_Setup, VC_Custom_Shared_Test_TearDown, - "Test_VC_ProcessNewCustomCmds_StartStreaming_InvalidState"); - UtTest_Add(Test_VC_ProcessNewCustomCmds_StartStreaming_InvalidNullAddress, - VC_Custom_Shared_Test_Setup, VC_Custom_Shared_Test_TearDown, - "Test_VC_ProcessNewCustomCmds_StartStreaming_InvalidNullAddress"); - UtTest_Add(Test_VC_ProcessNewCustomCmds_StartStreaming_InvalidAddress, - VC_Custom_Shared_Test_Setup, VC_Custom_Shared_Test_TearDown, - "Test_VC_ProcessNewCustomCmds_StartStreaming_InvalidAddress"); - UtTest_Add(Test_VC_ProcessNewCustomCmds_StartStreaming_UpdateDestinationFail, - VC_Custom_Shared_Test_Setup, VC_Custom_Shared_Test_TearDown, - "Test_VC_ProcessNewCustomCmds_StartStreaming_UpdateDestinationFail"); - UtTest_Add(Test_VC_ProcessNewCustomCmds_StartStreaming_TransmitUninitFail, - VC_Custom_Shared_Test_Setup, VC_Custom_Shared_Test_TearDown, - "Test_VC_ProcessNewCustomCmds_StartStreaming_TransmitUninitFail"); - UtTest_Add(Test_VC_ProcessNewCustomCmds_StartStreaming_DevicesStartFail, - VC_Custom_Shared_Test_Setup, VC_Custom_Shared_Test_TearDown, - "Test_VC_ProcessNewCustomCmds_StartStreaming_DevicesStartFail"); - UtTest_Add(Test_VC_ProcessNewCustomCmds_StartStreaming_Nominal, - VC_Custom_Shared_Test_Setup, VC_Custom_Shared_Test_TearDown, - "Test_VC_ProcessNewCustomCmds_StartStreaming_Nominal"); - UtTest_Add(Test_VC_ProcessNewCustomCmds_StopStreaming_InvalidSize, - VC_Custom_Shared_Test_Setup, VC_Custom_Shared_Test_TearDown, - "Test_VC_ProcessNewCustomCmds_StopStreaming_InvalidSize"); - UtTest_Add(Test_VC_ProcessNewCustomCmds_StopStreaming_InvalidState, - VC_Custom_Shared_Test_Setup, VC_Custom_Shared_Test_TearDown, - "Test_VC_ProcessNewCustomCmds_StopStreaming_InvalidState"); - UtTest_Add(Test_VC_Custom_Max_Events_Not_Reached_Nominal, - VC_Custom_Shared_Test_Setup, VC_Custom_Shared_Test_TearDown, - "Test_VC_Custom_Max_Events_Not_Reached_Nominal"); - UtTest_Add(Test_VC_Custom_Max_Events_Not_Reached_Fail, - VC_Custom_Shared_Test_Setup, VC_Custom_Shared_Test_TearDown, - "Test_VC_Custom_Max_Events_Not_Reached_Fail"); - UtTest_Add(Test_VC_Custom_Init_EventFilters_Nominal, - VC_Custom_Shared_Test_Setup, VC_Custom_Shared_Test_TearDown, - "Test_VC_Custom_Init_EventFilters_Nominal"); - UtTest_Add(Test_VC_Custom_Init_EventFilters_Fail1, - VC_Custom_Shared_Test_Setup, VC_Custom_Shared_Test_TearDown, - "Test_VC_Custom_Init_EventFilters_Fail1"); - UtTest_Add(Test_VC_Custom_Init_EventFilters_Fail2, - VC_Custom_Shared_Test_Setup, VC_Custom_Shared_Test_TearDown, - "Test_VC_Custom_Init_EventFilters_Fail2"); - UtTest_Add(Test_VC_Custom_Init_EventFilters_Null, - VC_Custom_Shared_Test_Setup, VC_Custom_Shared_Test_TearDown, - "Test_VC_Custom_Init_EventFilters_Null"); -} diff --git a/config/obc/ppd/target/apps/vc/unit_test/vc_custom_shared_test/vc_app_custom_shared_test.h b/config/obc/ppd/target/apps/vc/unit_test/vc_custom_shared_test/vc_app_custom_shared_test.h deleted file mode 100644 index b01f3180f..000000000 --- a/config/obc/ppd/target/apps/vc/unit_test/vc_custom_shared_test/vc_app_custom_shared_test.h +++ /dev/null @@ -1,48 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ - -#ifndef VC_APP_CUSTOM_SHARED_TEST_H -#define VC_APP_CUSTOM_SHARED_TEST_H - -#ifdef __cplusplus -extern "C" { -#endif - -void VC_Custom_App_Shared_Test_AddTestCases(void); - - -#ifdef __cplusplus -} -#endif - -#endif /* VC_APP_CUSTOM_SHARED_TEST_H */ diff --git a/config/obc/ppd/target/apps/vc/unit_test/vc_custom_shared_test/vc_custom_shared_test_utils.c b/config/obc/ppd/target/apps/vc/unit_test/vc_custom_shared_test/vc_custom_shared_test_utils.c deleted file mode 100644 index 3a923a55c..000000000 --- a/config/obc/ppd/target/apps/vc/unit_test/vc_custom_shared_test/vc_custom_shared_test_utils.c +++ /dev/null @@ -1,79 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ - -#include "vc_custom_shared_test_utils.h" -#include "vc_platform_stubs.h" -#include "vc_transmit_udp.h" -#include "vc_dev_io_v4l.h" - -#include "ut_cfe_evs_hooks.h" -#include "ut_cfe_time_stubs.h" -#include "ut_cfe_psp_memutils_stubs.h" -#include "ut_cfe_tbl_stubs.h" -#include "ut_cfe_tbl_hooks.h" -#include "ut_cfe_fs_stubs.h" -#include "ut_cfe_time_stubs.h" -#include "ut_osapi_stubs.h" -#include "ut_osfileapi_stubs.h" -#include "ut_cfe_sb_stubs.h" -#include "ut_cfe_es_stubs.h" -#include "ut_cfe_evs_stubs.h" - -#include - -/* - * Function Definitions - */ -void VC_Custom_Shared_Test_Setup(void) -{ - /* initialize test environment to default state for every test */ - - CFE_PSP_MemSet(&VC_AppData, 0x00, sizeof(VC_AppData)); - - Ut_CFE_EVS_Reset(); - Ut_CFE_FS_Reset(); - Ut_CFE_TIME_Reset(); - Ut_CFE_TBL_Reset(); - Ut_CFE_SB_Reset(); - Ut_CFE_ES_Reset(); - Ut_OSAPI_Reset(); - Ut_OSFILEAPI_Reset(); -} - -void VC_Custom_Shared_Test_TearDown(void) -{ - CFE_PSP_MemSet(&VC_AppData, 0x00, sizeof(VC_AppData)); - CFE_PSP_MemSet(&VC_AppCustomDevice, 0x00, sizeof(VC_AppCustomDevice_t)); - CFE_PSP_MemSet(&VC_AppCustomData, 0x00, sizeof(VC_AppCustomData_t)); - CFE_PSP_MemSet(&VC_Platform_Stubs_Returns, 0x00, sizeof(VC_Platform_Stubs_Returns_t)); -} diff --git a/config/obc/ppd/target/apps/vc/unit_test/vc_custom_shared_test/vc_custom_shared_test_utils.h b/config/obc/ppd/target/apps/vc/unit_test/vc_custom_shared_test/vc_custom_shared_test_utils.h deleted file mode 100644 index 2482120de..000000000 --- a/config/obc/ppd/target/apps/vc/unit_test/vc_custom_shared_test/vc_custom_shared_test_utils.h +++ /dev/null @@ -1,61 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ - -#ifndef VC_CUSTOM_DEVICE_SHARED_UTILS_H -#define VC_CUSTOM_DEVICE_SHARED_UTILS_H - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * Includes - */ - -#include "vc_custom_shared.h" - -extern VC_AppCustomDevice_t VC_AppCustomDevice; - -/* - * Function Definitions - */ - -void VC_Custom_Shared_Test_Setup(void); -void VC_Custom_Shared_Test_TearDown(void); - - -#ifdef __cplusplus -} -#endif - -#endif /* VC_CUSTOM_DEVICE_SHARED_UTILS_H */ diff --git a/config/obc/ppd/target/apps/vc/unit_test/vc_custom_testrunner.c b/config/obc/ppd/target/apps/vc/unit_test/vc_custom_testrunner.c deleted file mode 100644 index f25062cd8..000000000 --- a/config/obc/ppd/target/apps/vc/unit_test/vc_custom_testrunner.c +++ /dev/null @@ -1,66 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ - -#include "uttest.h" - -#include "vc_app_custom_device_test.h" -#include "vc_app_custom_transmit_test.h" -#include "vc_app.h" -//#include "vc_cmds_test.h" -//#include "vc_config_tbl_test.h" -//#include "vc_cds_tbl_test.h" - -VC_AppData_t VC_AppData; - -extern int enable_wrappers; - -void VC_Custom_App_Device_Test_AddTestCases(void); -void VC_Custom_App_Transmit_Test_AddTestCases(void); -void VC_Custom_App_Shared_Test_AddTestCases(void); - -int main(void) -{ - int testResults = 0; - enable_wrappers = 1; - VC_Custom_App_Device_Test_AddTestCases(); - VC_Custom_App_Transmit_Test_AddTestCases(); - VC_Custom_App_Shared_Test_AddTestCases(); - //VC_Cmds_Test_AddTestCases(); - //VC_Config_Tbl_Test_AddTestCases(); - //VC_CDS_Tbl_Test_AddTestCases(); - testResults = UtTest_Run(); - - enable_wrappers = 0; - - return testResults; -} diff --git a/config/obc/ppd/target/apps/vc/unit_test/vc_dev_io_udp_test/vc_app_custom_device_test.c b/config/obc/ppd/target/apps/vc/unit_test/vc_dev_io_udp_test/vc_app_custom_device_test.c deleted file mode 100644 index 72e9efa7b..000000000 --- a/config/obc/ppd/target/apps/vc/unit_test/vc_dev_io_udp_test/vc_app_custom_device_test.c +++ /dev/null @@ -1,722 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ - -#include "vc_app_custom_device_test.h" -#include "vc_custom_device_test_utils.h" -#include "vc_transmit_udp.h" -#include "vc_platform_stubs.h" -#include "vc_platform_cfg.h" -#include -#include -#include - -#include "uttest.h" -#include "ut_osapi_stubs.h" -#include "ut_cfe_sb_stubs.h" -#include "ut_cfe_sb_hooks.h" -#include "ut_cfe_es_stubs.h" -#include "ut_cfe_es_hooks.h" -#include "ut_cfe_evs_stubs.h" -#include "ut_cfe_evs_hooks.h" -#include "ut_cfe_time_stubs.h" -#include "ut_cfe_psp_memutils_stubs.h" -#include "ut_cfe_tbl_stubs.h" -#include "ut_cfe_fs_stubs.h" -#include "ut_cfe_time_stubs.h" - -/************************************************************************** - * Tests for VC_InitCustomDevices() - **************************************************************************/ -/** - * Test VC_InitCustomDevices() fail socket creation - */ -void Test_VC_Custom_InitCustomDevices_FailSocket(void) -{ - int32 result = 0; - int32 expected = -1; - uint8 DeviceID = 0; - char returnString[64]; - snprintf(returnString, 64, "Socket errno: %i on channel %u", 13, 0); - - /* Set the first device to enabled */ - VC_AppCustomDevice.Channel[0].Mode = VC_DEVICE_ENABLED; - - /* Set socket creation to fail */ - VC_Platform_Stubs_Returns.VC_Wrap_Socket_Return = -1; - VC_Platform_Stubs_Returns.VC_Wrap_Socket_Errno = 1; - VC_Platform_Stubs_Returns.VC_Wrap_Socket_Errno_Value = 13; - - result = VC_Init_CustomDevices(); - - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); - UtAssert_EventSent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, returnString, - "VC_InitCustomDevices() failed to raise an event"); - UtAssert_True(VC_AppCustomDevice.Channel[0].Status == VC_DEVICE_UNINITIALIZED, - "VC_InitCustomDevices() status NOT uninitialized"); - UtAssert_True(result == expected,"VC_InitDevice() did not return failure"); -} - -/** - * Test VC_InitCustomDevices() fail bind - */ -void Test_VC_Custom_InitCustomDevices_FailBind(void) -{ - int32 result = 0; - int32 expected = -1; - uint8 DeviceID = 0; - char returnString[64]; - snprintf(returnString, 64, "Bind errno: %i on channel %u", 13, 0); - - /* Set the first device to enabled */ - VC_AppCustomDevice.Channel[0].Mode = VC_DEVICE_ENABLED; - - /* Set socket creation to pass */ - VC_Platform_Stubs_Returns.VC_Wrap_Socket_Return = 1; - - /* Set bind to fail */ - VC_Platform_Stubs_Returns.VC_Wrap_Bind_Return = -1; - VC_Platform_Stubs_Returns.VC_Wrap_Bind_Errno = 1; - VC_Platform_Stubs_Returns.VC_Wrap_Bind_Errno_Value = 13; - - result = VC_Init_CustomDevices(); - - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); - UtAssert_EventSent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, returnString, - "VC_InitCustomDevices() failed to raise an event"); - UtAssert_True(VC_AppCustomDevice.Channel[0].Status == VC_DEVICE_UNINITIALIZED, - "VC_InitCustomDevices() status NOT uninitialized"); - UtAssert_True(result == expected,"VC_InitDevice() did not return failure"); -} - -/** - * Test VC_InitCustomDevices() nominal - */ -void Test_VC_Custom_InitCustomDevices_Nominal(void) -{ - int32 result = -1; - int32 expected = 0; - uint8 DeviceID = 0; - char returnString[64]; - snprintf(returnString, 64, "VC Device initialized channel %u", 0); - - /* Set the first device to enabled */ - VC_AppCustomDevice.Channel[0].Mode = VC_DEVICE_ENABLED; - - /* Set socket creation to pass */ - VC_Platform_Stubs_Returns.VC_Wrap_Socket_Return = 1; - - /* Set bind to pass */ - VC_Platform_Stubs_Returns.VC_Wrap_Bind_Return = 1; - - result = VC_Init_CustomDevices(); - - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); - UtAssert_EventSent(VC_DEV_INF_EID, CFE_EVS_INFORMATION, returnString, - "VC_InitCustomDevices() failed to raise an event"); - UtAssert_True(VC_AppCustomDevice.Channel[0].Status == VC_DEVICE_INITIALIZED, - "VC_InitCustomDevices() status NOT initialized"); - UtAssert_True(result == expected,"VC_InitDevice() did not return failure"); -} - -/************************************************************************** - * Tests for VC_Stream_Task() - **************************************************************************/ - -/** - * Test VC_Stream_Task() fail register child task - */ -void Test_VC_Custom_StreamTask_RegisterChildTaskFail(void) -{ - /* Set register child task to fail */ - Ut_CFE_ES_SetReturnCode(UT_CFE_ES_REGISTERCHILDTASK_INDEX, -1, 1); - - /* Call the function under test */ - VC_Stream_Task(); - - /* Verfity results */ - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); - UtAssert_True(VC_AppData.AppState == VC_INITIALIZED, - "VC_Stream_Task() did not set app state"); - UtAssert_EventSent(VC_DEV_INF_EID, CFE_EVS_INFORMATION, - "VC streaming task exited with return code 0 task status (0xFFFFFFFF)", - "VC_Stream_Task() failed to raise an event"); -} - - -/** - * Test VC_Stream_Task() fail nothing enabled and streaming - */ -void Test_VC_Custom_StreamTask_NothingEnabled(void) -{ - - char returnString[64]; - snprintf(returnString, 64, "VC can't start streaming no devices are streaming enabled"); - char returnString1[128]; - snprintf(returnString1, 128, "VC streaming task exited with return code %d task status (0x%08X)", - -1, (unsigned int)CFE_SUCCESS); - - /* Set register child task to succeed */ - Ut_CFE_ES_SetReturnCode(UT_CFE_ES_REGISTERCHILDTASK_INDEX, CFE_SUCCESS, 1); - - /* Set the while loop continue flag to true */ - VC_AppCustomDevice.ContinueFlag = TRUE; - - /* Set a fake device file descriptor */ - VC_AppCustomDevice.Channel[0].Socket = 7; - - /* Set select to fail with an error (-1) */ - VC_Platform_Stubs_Returns.VC_Wrap_Select_Return = -1; - - /* Call the function under test */ - VC_Stream_Task(); - - /* Verfity results */ - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==2,"Event Count = 2"); - UtAssert_True(VC_AppData.AppState == VC_INITIALIZED, - "VC_Stream_Task() did not set app state"); - UtAssert_EventSent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, returnString, - "VC_Stream_Task() failed to raise an event"); - UtAssert_EventSent(VC_DEV_INF_EID, CFE_EVS_INFORMATION, returnString1, - "VC_Stream_Task() failed to raise an event"); -} - - -/** - * Test VC_Stream_Task() fail select error - */ -void Test_VC_Custom_StreamTask_SelectError(void) -{ - - char returnString[64]; - snprintf(returnString, 64, "VC start streaming failed select() returned %i", 6); - char returnString1[128]; - snprintf(returnString1, 128, "VC streaming task exited with return code %d task status (0x%08X)", - -1, (unsigned int)CFE_SUCCESS); - - /* Set register child task to succeed */ - Ut_CFE_ES_SetReturnCode(UT_CFE_ES_REGISTERCHILDTASK_INDEX, CFE_SUCCESS, 1); - - /* Set the while loop continue flag to true */ - VC_AppCustomDevice.ContinueFlag = TRUE; - - /* Set the mode and state for channel 0*/ - VC_AppCustomDevice.Channel[0].Mode = VC_DEVICE_ENABLED; - VC_AppCustomDevice.Channel[0].Status = VC_DEVICE_INITIALIZED; - - /* Set return error number to true */ - VC_Platform_Stubs_Returns.VC_Wrap_Select_Errno = 1; - - /* Set error number to interrupted */ - /* Note this will set errno through multiple calls */ - VC_Platform_Stubs_Returns.VC_Wrap_Select_Errno_Value = 6; - - /* Set a fake device file descriptor */ - VC_AppCustomDevice.Channel[0].Socket = 7; - - /* Set select to fail with an error (-1) */ - VC_Platform_Stubs_Returns.VC_Wrap_Select_Return = -1; - - /* Call the function under test */ - VC_Stream_Task(); - - /* Verfity results */ - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==2,"Event Count = 2"); - UtAssert_True(VC_AppData.AppState == VC_INITIALIZED, - "VC_Stream_Task() did not set app state"); - UtAssert_EventSent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, returnString, - "VC_Stream_Task() failed to raise an event"); - UtAssert_EventSent(VC_DEV_INF_EID, CFE_EVS_INFORMATION, returnString1, - "VC_Stream_Task() failed to raise an event"); -} - - -/** - * Test VC_Stream_Task() fail select interrupted max retry attempts - */ -void Test_VC_Custom_StreamTask_InterruptedError(void) -{ - char returnString[64]; - snprintf(returnString, 64, "VC select was interrupted"); - char returnString1[128]; - snprintf(returnString1, 128, "VC streaming task exited with return code %d task status (0x%08X)", - -1, (unsigned int)CFE_SUCCESS); - - /* Set register child task to succeed */ - Ut_CFE_ES_SetReturnCode(UT_CFE_ES_REGISTERCHILDTASK_INDEX, CFE_SUCCESS, 1); - - /* Set the while loop continue flag to true */ - VC_AppCustomDevice.ContinueFlag = TRUE; - - /* Set the mode and state for channel 0*/ - VC_AppCustomDevice.Channel[0].Mode = VC_DEVICE_ENABLED; - VC_AppCustomDevice.Channel[0].Status = VC_DEVICE_INITIALIZED; - - /* Set return error number to true */ - VC_Platform_Stubs_Returns.VC_Wrap_Select_Errno = 1; - - /* Set error number to interrupted */ - /* Note this will set errno through multiple calls */ - VC_Platform_Stubs_Returns.VC_Wrap_Select_Errno_Value = EINTR; - - /* Set a fake device file descriptor */ - VC_AppCustomDevice.Channel[0].Socket = 7; - - /* Set select to fail with an error (-1) */ - VC_Platform_Stubs_Returns.VC_Wrap_Select_Return = -1; - - /* Call the function under test */ - VC_Stream_Task(); - - /* Verfity results */ - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==(VC_MAX_RETRY_ATTEMPTS + 1), - "Event Count is not correct"); - UtAssert_True(VC_AppData.AppState == VC_INITIALIZED, - "VC_Stream_Task() did not set app state"); - UtAssert_EventSent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, returnString, - "VC_Stream_Task() failed to raise an event"); - UtAssert_EventSent(VC_DEV_INF_EID, CFE_EVS_INFORMATION, returnString1, - "VC_Stream_Task() failed to raise an event"); -} - - -/************************************************************************** - * Tests for VC_Devices_Start() - **************************************************************************/ - /** - * Test VC_Devices_Start() fail child task creation - */ -void Test_VC_Custom_DevicesStart_ChildTaskCreationFail(void) -{ - /* Set create child task to fail */ - Ut_CFE_ES_SetReturnCode(UT_CFE_ES_CREATECHILDTASK_INDEX, -1, 1); - - boolean result = TRUE; - boolean expected = FALSE; - - /* Call the function under test */ - result = VC_Devices_Start(); - - UtAssert_True(VC_AppCustomDevice.ContinueFlag == FALSE, - "Devices start continue flag not correctly set"); - UtAssert_True(result == expected,"VC_Devices_Start() did not fail"); -} - - -/** - * Test VC_Devices_Start() nominal - */ -void Test_VC_Custom_DevicesStart_Nominal(void) -{ - /* Set create child task to fail */ - Ut_CFE_ES_SetReturnCode(UT_CFE_ES_CREATECHILDTASK_INDEX, CFE_SUCCESS, 1); - - boolean result = FALSE; - boolean expected = TRUE; - - /* Call the function under test */ - result = VC_Devices_Start(); - - UtAssert_True(VC_AppCustomDevice.ContinueFlag == TRUE, - "Devices start continue flag not correctly set"); - UtAssert_True(result == expected,"VC_Devices_Start() did not fail"); -} - - -/************************************************************************** - * Tests for VC_Devices_Stop() - **************************************************************************/ - /** - * Test VC_Devices_Stop() fail delete child task - */ -void Test_VC_Custom_DevicesStop_ChildTaskDeleteFail(void) -{ - /* Set delete child task to fail */ - Ut_CFE_ES_SetReturnCode(UT_CFE_ES_DELETECHILDTASK_INDEX, -1, 1); - - boolean result = TRUE; - boolean expected = FALSE; - - /* Call the function under test */ - result = VC_Devices_Stop(); - - UtAssert_True(VC_AppCustomDevice.ContinueFlag == FALSE, - "Devices start continue flag not correctly set"); - UtAssert_True(VC_AppData.AppState == VC_INITIALIZED, - "AppState not correctly set"); - UtAssert_True(result == expected,"VC_Devices_Stop() did not fail"); -} - - - /** - * Test VC_Devices_Stop() nominal - */ -void Test_VC_Custom_DevicesStop_Nominal(void) -{ - /* Set delete child task to fail */ - Ut_CFE_ES_SetReturnCode(UT_CFE_ES_DELETECHILDTASK_INDEX, CFE_SUCCESS, 1); - - boolean result = FALSE; - boolean expected = TRUE; - - /* Call the function under test */ - result = VC_Devices_Stop(); - - UtAssert_True(VC_AppCustomDevice.ContinueFlag == FALSE, - "Devices start continue flag not correctly set"); - UtAssert_True(VC_AppData.AppState == VC_INITIALIZED, - "AppState not correctly set"); - UtAssert_True(result == expected,"VC_Devices_Stop() did not fail"); -} - - -/************************************************************************** - * Tests for VC_CleanupDevices() - **************************************************************************/ - /** - * Test VC_CleanupDevices() close fail - * - */ -void Test_VC_Custom_CleanupDevices_CloseFail(void) -{ - int32 result = 0; - int32 expected = -1; - - /* Set channel 0 to enabled */ - VC_AppCustomDevice.Channel[0].Mode = VC_DEVICE_ENABLED; - - /* Set close to fail */ - VC_Platform_Stubs_Returns.VC_Wrap_Close_Return = -1; - - /* Call the function under test */ - result = VC_CleanupDevices(); - - UtAssert_True(result == expected,"VC_DisableDevice() did not succeed"); - UtAssert_True(VC_AppCustomDevice.Channel[0].Mode == VC_DEVICE_ENABLED, - "VC_CleanupDevices() did not set correct status"); -} - -/** - * Test VC_CleanupDevices() nominal - * - */ -void Test_VC_Custom_CleanupDevices_Nominal(void) -{ - int32 result = -1; - int32 expected = 0; - - /* Set channel 0 to enabled */ - VC_AppCustomDevice.Channel[0].Mode = VC_DEVICE_ENABLED; - - - /* Call the function under test */ - result = VC_CleanupDevices(); - - UtAssert_True(result == expected,"VC_DisableDevice() did not succeed"); - UtAssert_True(VC_AppCustomDevice.Channel[0].Mode == VC_DEVICE_DISABLED, - "VC_CleanupDevices() did not set correct status"); -} - -/************************************************************************** - * Tests for VC_Devices_Init() - **************************************************************************/ - /** - * Test VC_Devices_Init fail VC_Init_CustomDevices see previous test - * VC_InitCustomDevices() fail socket creation - */ -void Test_VC_Custom_DevicesInit_Fail(void) -{ - boolean result = TRUE; - boolean expected = FALSE; - - /* Set the first device to enabled */ - VC_AppCustomDevice.Channel[0].Mode = VC_DEVICE_ENABLED; - - /* Set socket creation to fail */ - VC_Platform_Stubs_Returns.VC_Wrap_Socket_Return = -1; - VC_Platform_Stubs_Returns.VC_Wrap_Socket_Errno = 1; - VC_Platform_Stubs_Returns.VC_Wrap_Socket_Errno_Value = 13; - - result = VC_Devices_Init(); - - UtAssert_True(result == expected,"VC_Devices_Init() did not return an error"); -} - - - /** - * Test VC_Devices_Init nominal see previous test - * VC_InitCustomDevices() nominal - */ -void Test_VC_Custom_DevicesInit_Nominal(void) -{ - boolean result = FALSE; - boolean expected = TRUE; - - /* Set the first device to enabled */ - VC_AppCustomDevice.Channel[0].Mode = VC_DEVICE_ENABLED; - - result = VC_Devices_Init(); - - UtAssert_True(result == expected,"VC_Devices_Init() did not return an error"); -} - - -/************************************************************************** - * Tests for VC_Devices_Uninit() - **************************************************************************/ -/** - * Test VC_Devices_Uninit() cleanup fail see previous test - * VC_CleanupDevices() close fail - */ -void Test_VC_Custom_DevicesUninit_CleanupFail(void) -{ - boolean result = TRUE; - boolean expected = FALSE; - - /* Set channel 0 to enabled */ - VC_AppCustomDevice.Channel[0].Mode = VC_DEVICE_ENABLED; - - /* Set close to fail */ - VC_Platform_Stubs_Returns.VC_Wrap_Close_Return = -1; - - /* Call the function under test */ - result = VC_Devices_Uninit(); - - UtAssert_True(result == expected,"VC_DisableDevice() did not succeed"); - UtAssert_True(VC_AppCustomDevice.Channel[0].Mode = VC_DEVICE_DISABLED, - "VC_CleanupDevices() did not set correct status"); -} - - -/** - * Test VC_Devices_Uninit() nominal - * - */ -void Test_VC_Custom_DevicesUninit_Nominal(void) -{ - boolean result = FALSE; - boolean expected = TRUE; - - /* Call the function under test */ - result = VC_Devices_Uninit(); - - UtAssert_True(result == expected,"VC_DisableDevice() did not succeed"); - UtAssert_True(VC_AppCustomDevice.Channel[0].Mode = VC_DEVICE_DISABLED, - "VC_CleanupDevices() did not set correct status"); -} - -/************************************************************************** - * Tests for VC_Send_Buffer() - **************************************************************************/ -/** - * Test VC_Send_Buffer() recv error - * - */ -void Test_VC_Custom_SendBuffer_RecvError(void) -{ - int32 result = 0; - int32 expected = -1; - - char returnString[64]; - snprintf(returnString, 64, "VC recv errno: %i on channel %u", 1, 0); - - /* Set recv to fail */ - VC_Platform_Stubs_Returns.VC_Wrap_Recv_Return = -1; - VC_Platform_Stubs_Returns.VC_Wrap_Recv_Errno = 1; - VC_Platform_Stubs_Returns.VC_Wrap_Recv_Errno_Value = 1; - - /* Call the function under test */ - result = VC_Send_Buffer(0); - - UtAssert_True(result == expected,"VC_Send_Buffer() did not return the correct value"); - UtAssert_EventSent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, returnString, - "VC_Send_Buffer() failed to raise an event"); -} - - -/** - * Test VC_Send_Buffer() size error - * - */ -void Test_VC_Custom_SendBuffer_SizeError(void) -{ - int32 result = 0; - int32 expected = -1; - - char returnString[64]; - snprintf(returnString, 64, "VC recv size error on channel %u", 0); - - /* Set recv to fail */ - VC_Platform_Stubs_Returns.VC_Wrap_Recv_Return = VC_MPARTMUX_HEADER_SIZE; - VC_Platform_Stubs_Returns.VC_Wrap_Recv_Return1 = -1; - - /* Call the function under test */ - result = VC_Send_Buffer(0); - - UtAssert_True(result == expected,"VC_Send_Buffer() did not return the correct value"); - UtAssert_EventSent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, returnString, - "VC_Send_Buffer() failed to raise an event"); -} - - -/** - * Test VC_Send_Buffer() send data fail - * - */ -void Test_VC_Custom_SendBuffer_SendError(void) -{ - int32 result = 0; - int32 expected = -1; - - char returnString[64]; - snprintf(returnString, 64, "VC send data failed on channel %u", 0); - - /* Set recv to pass/fail */ - VC_Platform_Stubs_Returns.VC_Wrap_Recv_Return = VC_MPARTMUX_HEADER_SIZE; - VC_Platform_Stubs_Returns.VC_Wrap_Recv_Return1 = 0; - - /* set sendto to fail */ - VC_Platform_Stubs_Returns.VC_Wrap_SendTo_Return = -1; - - /* Properly initialize custom transmit data */ - VC_CustomTransmit_InitData(); - - /* Call the function under test */ - result = VC_Send_Buffer(0); - - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==2,"Event Count = 2"); - UtAssert_True(result == expected,"VC_Send_Buffer() did not return the correct value"); - UtAssert_EventSent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, returnString, - "VC_Send_Buffer() failed to raise an event"); -} - - -/** - * Test VC_Send_Buffer() nominal - * - */ -void Test_VC_Custom_SendBuffer_Nominal(void) -{ - int32 result = -1; - int32 expected = 0; - - char returnString[64]; - snprintf(returnString, 64, "VC send data failed on channel %u", 0); - - /* Set recv to pass/fail */ - VC_Platform_Stubs_Returns.VC_Wrap_Recv_Return = VC_MPARTMUX_HEADER_SIZE; - VC_Platform_Stubs_Returns.VC_Wrap_Recv_Return1 = 0; - - /* Properly initialize custom transmit data */ - VC_CustomTransmit_InitData(); - - /* Call the function under test */ - result = VC_Send_Buffer(0); - - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==0,"Event Count = 0"); - UtAssert_True(result == expected,"VC_Send_Buffer() did not return the correct value"); -} - - -/************************************************************************** - * Tests for VC_Devices_InitData() - **************************************************************************/ - -/** - * Test VC_Devices_InitData() nominal - * Note: currently no way to fail this function - */ -void Test_VC_Devices_InitData_Nominal(void) -{ - int32 result = -1; - int32 expected = CFE_SUCCESS; - - /* Call the function under test */ - result = VC_Devices_InitData(); - - /* Verify the results */ - UtAssert_True(result == expected,"VC_Custom_InitData() did not succeed"); -} - -/************************************************************************** - * Rollup Test Cases - **************************************************************************/ -void VC_Custom_App_Device_Test_AddTestCases(void) -{ -/************************************************************************** - * Tests for Custom Device Layer - **************************************************************************/ - UtTest_Add(Test_VC_Custom_InitCustomDevices_FailSocket, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_InitCustomDevices_FailSocket"); - UtTest_Add(Test_VC_Custom_InitCustomDevices_FailBind, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_InitCustomDevices_FailBind"); - UtTest_Add(Test_VC_Custom_InitCustomDevices_Nominal, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_InitCustomDevices_Nominal"); - UtTest_Add(Test_VC_Custom_StreamTask_RegisterChildTaskFail, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_StreamTask_RegisterChildTaskFail"); - UtTest_Add(Test_VC_Custom_StreamTask_NothingEnabled, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_StreamTask_NothingEnabled"); - UtTest_Add(Test_VC_Custom_StreamTask_SelectError, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_StreamTask_SelectError"); - UtTest_Add(Test_VC_Custom_StreamTask_InterruptedError, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_StreamTask_InterruptedError"); - UtTest_Add(Test_VC_Custom_DevicesStart_ChildTaskCreationFail, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_DevicesStart_ChildTaskCreationFail"); - UtTest_Add(Test_VC_Custom_DevicesStart_Nominal, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_DevicesStart_Nominal"); - UtTest_Add(Test_VC_Custom_DevicesStop_ChildTaskDeleteFail, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_DevicesStop_ChildTaskDeleteFail"); - UtTest_Add(Test_VC_Custom_DevicesStop_Nominal, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_DevicesStop_Nominal"); - UtTest_Add(Test_VC_Custom_CleanupDevices_CloseFail, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_CleanupDevices_CloseFail"); - UtTest_Add(Test_VC_Custom_CleanupDevices_Nominal, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_CleanupDevices_Nominal"); - UtTest_Add(Test_VC_Custom_DevicesInit_Fail, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_DevicesInit_Fail"); - UtTest_Add(Test_VC_Custom_DevicesInit_Nominal, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_DevicesInit_Nominal"); - UtTest_Add(Test_VC_Custom_DevicesUninit_CleanupFail, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_DevicesUninit_CleanupFail"); - UtTest_Add(Test_VC_Custom_DevicesUninit_Nominal, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_DevicesUninit_Nominal"); - UtTest_Add(Test_VC_Custom_SendBuffer_RecvError, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_SendBuffer_RecvError"); - UtTest_Add(Test_VC_Custom_SendBuffer_SizeError, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_SendBuffer_SizeError"); - UtTest_Add(Test_VC_Custom_SendBuffer_SendError, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_SendBuffer_SendError"); - UtTest_Add(Test_VC_Custom_SendBuffer_Nominal, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_SendBuffer_Nominal"); - UtTest_Add(Test_VC_Devices_InitData_Nominal, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Devices_InitData_Nominal"); -} diff --git a/config/obc/ppd/target/apps/vc/unit_test/vc_dev_io_udp_test/vc_app_custom_device_test.h b/config/obc/ppd/target/apps/vc/unit_test/vc_dev_io_udp_test/vc_app_custom_device_test.h deleted file mode 100644 index 38b7e33d3..000000000 --- a/config/obc/ppd/target/apps/vc/unit_test/vc_dev_io_udp_test/vc_app_custom_device_test.h +++ /dev/null @@ -1,48 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ - -#ifndef VC_APP_CUSTOM_DEVICE_TEST_H -#define VC_APP_CUSTOM_DEVICE_TEST_H - -#ifdef __cplusplus -extern "C" { -#endif - -void VC_Custom_App_Device_Test_AddTestCases(void); - - -#ifdef __cplusplus -} -#endif - -#endif /* VC_APP_CUSTOM_DEVICE_TEST_H */ diff --git a/config/obc/ppd/target/apps/vc/unit_test/vc_dev_io_udp_test/vc_custom_device_test_utils.c b/config/obc/ppd/target/apps/vc/unit_test/vc_dev_io_udp_test/vc_custom_device_test_utils.c deleted file mode 100644 index f34216d08..000000000 --- a/config/obc/ppd/target/apps/vc/unit_test/vc_dev_io_udp_test/vc_custom_device_test_utils.c +++ /dev/null @@ -1,76 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ - -#include "vc_custom_device_test_utils.h" -#include "vc_platform_stubs.h" - -#include "ut_cfe_evs_hooks.h" -#include "ut_cfe_time_stubs.h" -#include "ut_cfe_psp_memutils_stubs.h" -#include "ut_cfe_tbl_stubs.h" -#include "ut_cfe_tbl_hooks.h" -#include "ut_cfe_fs_stubs.h" -#include "ut_cfe_time_stubs.h" -#include "ut_osapi_stubs.h" -#include "ut_osfileapi_stubs.h" -#include "ut_cfe_sb_stubs.h" -#include "ut_cfe_es_stubs.h" -#include "ut_cfe_evs_stubs.h" - -#include - -/* - * Function Definitions - */ - -void VC_Custom_Device_Test_Setup(void) -{ - /* initialize test environment to default state for every test */ - - CFE_PSP_MemSet(&VC_AppCustomDevice, 0x00, sizeof(VC_AppCustomDevice_t)); - - Ut_CFE_EVS_Reset(); - Ut_CFE_FS_Reset(); - Ut_CFE_TIME_Reset(); - Ut_CFE_TBL_Reset(); - Ut_CFE_SB_Reset(); - Ut_CFE_ES_Reset(); - Ut_OSAPI_Reset(); - Ut_OSFILEAPI_Reset(); -} - -void VC_Custom_Device_Test_TearDown(void) { - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_CallCount = 0; - CFE_PSP_MemSet(&VC_AppCustomDevice, 0x00, sizeof(VC_AppCustomDevice_t)); - CFE_PSP_MemSet(&VC_Platform_Stubs_Returns, 0x00, sizeof(VC_Platform_Stubs_Returns_t)); -} diff --git a/config/obc/ppd/target/apps/vc/unit_test/vc_dev_io_udp_test/vc_custom_device_test_utils.h b/config/obc/ppd/target/apps/vc/unit_test/vc_dev_io_udp_test/vc_custom_device_test_utils.h deleted file mode 100644 index c170b7b8b..000000000 --- a/config/obc/ppd/target/apps/vc/unit_test/vc_dev_io_udp_test/vc_custom_device_test_utils.h +++ /dev/null @@ -1,61 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ - -#ifndef VC_CUSTOM_DEVICE_TEST_UTILS_H -#define VC_CUSTOM_DEVICE_TEST_UTILS_H - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * Includes - */ - -#include "vc_dev_io_udp.h" - -extern VC_AppCustomDevice_t VC_AppCustomDevice; - -/* - * Function Definitions - */ - -void VC_Custom_Device_Test_Setup(void); -void VC_Custom_Device_Test_TearDown(void); - - -#ifdef __cplusplus -} -#endif - -#endif /* VC_CUSTOM_DEVICE_TEST_UTILS_H */ diff --git a/config/obc/ppd/target/apps/vc/unit_test/vc_dev_io_v4l_test/vc_app_custom_device_test.c b/config/obc/ppd/target/apps/vc/unit_test/vc_dev_io_v4l_test/vc_app_custom_device_test.c deleted file mode 100644 index 9badeb810..000000000 --- a/config/obc/ppd/target/apps/vc/unit_test/vc_dev_io_v4l_test/vc_app_custom_device_test.c +++ /dev/null @@ -1,1944 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ - -#include "vc_app_custom_device_test.h" -#include "vc_custom_device_test_utils.h" -#include "vc_transmit_udp.h" -#include "vc_platform_stubs.h" -#include "vc_platform_cfg.h" -#include -#include -#include - -#include "uttest.h" -#include "ut_osapi_stubs.h" -#include "ut_cfe_sb_stubs.h" -#include "ut_cfe_sb_hooks.h" -#include "ut_cfe_es_stubs.h" -#include "ut_cfe_es_hooks.h" -#include "ut_cfe_evs_stubs.h" -#include "ut_cfe_evs_hooks.h" -#include "ut_cfe_time_stubs.h" -#include "ut_cfe_psp_memutils_stubs.h" -#include "ut_cfe_tbl_stubs.h" -#include "ut_cfe_fs_stubs.h" -#include "ut_cfe_time_stubs.h" - - -/************************************************************************** - * Tests for VC_Ioctl() - **************************************************************************/ -/** - * Test VC_Ioctl() ioctl returns -1 error - */ -void Test_VC_Custom_Ioctl_Error(void) -{ - int32 result = 0; - int32 expected = -1; - - /* Set a return value for the wrapped ioctl */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Return = -1; - - /* A test argument to pass to VC_Ioctl value is random - * the wrapped ioctl will not use the arguments and will return a - * value */ - int test = 1; - - - result = VC_Ioctl(test, test, &test); - - UtAssert_True(result == expected, "VC_Ioctl did not return an error"); -} -/** - * Test VC_Ioctl() ioctl returns -1 error and errno interrupted - */ -void Test_VC_Custom_Ioctl_Interrupted(void) -{ - int32 result = 0; - int32 expected = -1; - uint32 i = 0; - - /* Set a return value for the wrapped ioctl (always fail) */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Return = -1; - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Return1 = -1; - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Return2 = -1; - - /* Set return error number to true */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Errno = 1; - - /* Set error number to interrupted */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Errno_Value = EINTR; - - /* A test argument to pass to VC_Ioctl value is random - * the wrapped ioctl will not use the arguments and will return a - * value */ - int test = 777; - - /* Call VC_Ioctl with errno set to EINTR max retry attempts*/ - result = VC_Ioctl(test, test, &test); - - UtAssert_True(result == expected, "VC_Ioctl did not return an error"); -} - -/************************************************************************** - * Tests for VC_InitDevice() - **************************************************************************/ - -/** - * Test VC_InitDevice() through VC_Init_CustomDevices already initialized error - */ -void Test_VC_Custom_InitDevice_AlreadyInitialized(void) -{ - int32 result = 0; - int32 expected = -1; - uint8 DeviceID = 0; - - strcpy(VC_AppCustomDevice.Channel[0].DevName, "test"); - - /* Set the first device to enabled */ - VC_AppCustomDevice.Channel[0].Mode = VC_DEVICE_ENABLED; - /* Set the first device file descriptor to a non-zero value */ - VC_AppCustomDevice.Channel[0].DeviceFd = 1; - - result = VC_Init_CustomDevices(); - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); - UtAssert_True(result == expected,"VC_InitDevice() did not return an error"); - - UtAssert_True(VC_AppCustomDevice.Channel[0].Mode == VC_DEVICE_DISABLED, - "VC_InitCustomDevices() did not mode to disabled"); - UtAssert_EventSent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, "VC Device test for channel 0 already initialized.", - "VC_InitDevice() failed to raise an event"); -} - - -/** - * Test VC_InitDevice() null device name - */ -void Test_VC_Custom_InitDevice_NullName(void) -{ - int32 result = 0; - int32 expected = -1; - uint8 DeviceID = 0; - char *DeviceName = 0; - - /* Set the first device to enabled */ - VC_AppCustomDevice.Channel[0].Mode = VC_DEVICE_ENABLED; - - - result = VC_InitDevice(DeviceID, DeviceName); - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); - UtAssert_True(result == expected,"VC_InitDevice() did not return an error"); - UtAssert_EventSent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, "VC Device name for channel 0 is null.", - "VC_InitDevice() failed to raise an event"); -} - - -/** - * Test VC_InitDevice() invalid device ID - */ -void Test_VC_Custom_InitDevice_InvalidID(void) -{ - int32 result = 0; - int32 expected = -1; - uint8 DeviceID = VC_MAX_DEVICES; - char returnString[32]; - snprintf(returnString, 32, "VC DeviceID (%u) invalid.", VC_MAX_DEVICES); - char DeviceName[] = "test"; - - /* Set the first device to enabled */ - VC_AppCustomDevice.Channel[0].Mode = VC_DEVICE_ENABLED; - - result = VC_InitDevice(DeviceID, DeviceName); - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); - UtAssert_True(result == expected,"VC_InitDevice() did not return an error"); - UtAssert_EventSent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, returnString, - "VC_InitDevice() failed to raise an event"); -} - - -/** - * Test VC_InitDevice() through VC_InitCustomDevices() open error - */ -void Test_VC_Custom_InitDevice_OpenError(void) -{ - int32 result = 0; - int32 expected = -1; - uint8 DeviceID = 0; - char returnString[32]; - snprintf(returnString, 32, "VC Device open errno: %i on channel %u", 5, 0); - //char DeviceName[] = "test"; - - /* Set a return value for the wrapped open */ - VC_Platform_Stubs_Returns.VC_Wrap_Open_Return = -1; - - /* Set return error number to true */ - VC_Platform_Stubs_Returns.VC_Wrap_Open_Errno = 1; - - /* Set error number to interrupted */ - VC_Platform_Stubs_Returns.VC_Wrap_Open_Errno_Value = 5; - - /* Set the first device to enabled */ - VC_AppCustomDevice.Channel[0].Mode = VC_DEVICE_ENABLED; - - //result = VC_InitDevice(DeviceID, DeviceName); - result = VC_Init_CustomDevices(); - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); - UtAssert_True(VC_AppCustomDevice.Channel[0].Mode == VC_DEVICE_DISABLED, - "VC_InitCustomDevices() did not mode to disabled"); - UtAssert_True(result == expected,"VC_InitDevice() did not return an error"); - UtAssert_EventSent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, returnString, - "VC_InitDevice() failed to raise an event"); -} - -/** - * Test VC_InitDevice() nominal - */ -void Test_VC_Custom_InitDevice_Nominal(void) -{ - int32 result = 0; - int32 expected = 0; - uint8 DeviceID = 0; - char DeviceName[] = "test"; - - - /* Set the first device to enabled */ - VC_AppCustomDevice.Channel[0].Mode = VC_DEVICE_ENABLED; - - result = VC_InitDevice(DeviceID, DeviceName); - - UtAssert_True(result == expected,"VC_InitDevice() did not return success"); -} - - -/************************************************************************** - * Tests for VC_InitCustomDevices() - **************************************************************************/ - -/** - * Test VC_InitCustomDevices() pass init but fail configure - * ConfigureDevice will fail on the first v4L struct verification - */ -void Test_VC_Custom_InitCustomDevices_FailConfigure(void) -{ - int32 result = 0; - int32 expected = -1; - uint8 DeviceID = 0; - char returnString[64]; - snprintf(returnString, 64, "VC Device initialized channel %u from %s", 0, "test"); - - /* Set the first device to enabled */ - VC_AppCustomDevice.Channel[0].Mode = VC_DEVICE_ENABLED; - - /* Set a test device path */ - strcpy(VC_AppCustomDevice.Channel[0].DevName, "test"); - - result = VC_Init_CustomDevices(); - - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==2,"Event Count = 2"); - UtAssert_EventSent(VC_DEV_INF_EID, CFE_EVS_INFORMATION, returnString, - "VC_InitCustomDevices() failed to raise an event"); - UtAssert_True(VC_AppCustomDevice.Channel[0].Status == VC_DEVICE_UNINITIALIZED, - "VC_InitCustomDevices() did not set status to uninitialized"); - UtAssert_True(result == expected,"VC_InitDevice() did not return failure"); -} - -/** - * Test VC_InitCustomDevices() Nominal - */ -void Test_VC_Custom_InitCustomDevices_Nominal(void) -{ - int32 result = 0; - int32 expected = 0; - uint8 DeviceID = 0; - char returnString[64]; - snprintf(returnString, 64, "VC Device initialized channel %u from %s", 0, "test"); - char returnString1[64]; - snprintf(returnString1, 64, "VC Device configured channel %u from %s", 0, "test"); - /* Set the first device to enabled */ - VC_AppCustomDevice.Channel[0].Mode = VC_DEVICE_ENABLED; - - /* Set to true to emulate ioctl setting struct values */ - /* Need to succeed twice to reach format ioctl call */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Struct = 2; - - /* Set the test device path */ - strcpy(VC_AppCustomDevice.Channel[0].DevName, "test"); - - /* Set the video format to pass format check */ - VC_AppCustomDevice.Channel[0].VideoFormat = VC_V4L_VIDEO_FORMAT; - - /* Set the correct buffer type */ - VC_AppCustomDevice.Channel[0].BufferType = VC_V4L_BUFFER_TYPE; - - /* Set the correct resolution */ - VC_AppCustomDevice.Channel[0].FrameWidth = VC_FRAME_WIDTH; - VC_AppCustomDevice.Channel[0].FrameHeight = VC_FRAME_HEIGHT; - - /* Set the correct size */ - VC_AppCustomDevice.Channel[0].Buffer_Size = VC_MAX_BUFFER_SIZE; - - /* Set the correct buffer number */ - VC_AppCustomDevice.Channel[0].BufferRequest = VC_V4L_BUFFER_REQUEST; - - result = VC_Init_CustomDevices(); - - UtAssert_True(result == expected,"VC_Init_CustomDevices() did not succeed"); - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==2,"Event Count = 2"); - UtAssert_True(VC_AppCustomDevice.Channel[0].Status == VC_DEVICE_INITIALIZED, - "VC_Init_CustomDevices() state not initialized"); - UtAssert_EventSent(VC_DEV_INF_EID, CFE_EVS_INFORMATION, returnString, - "VC_InitCustomDevices() failed to raise an event"); - UtAssert_EventSent(VC_DEV_INF_EID, CFE_EVS_INFORMATION, returnString1, - "VC_InitCustomDevices() failed to raise an event"); -} - -/************************************************************************** - * Tests for VC_ConfigureDevice() - **************************************************************************/ - -/** - * Test VC_ConfigureDevice() fail V4L capabilities query - */ -void Test_VC_Custom_ConfigureDevice_CapabilitiesFail(void) -{ - int32 result = 0; - int32 expected = -1; - uint8 DeviceID = 0; - char returnString[64]; - snprintf(returnString, 64, "VC VIDIOC_QUERYCAP returned %i on %s channel %u", 5, "test", 0); - - /* Set a return value for the wrapped ioctl */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Return = -1; - - /* Set return error number to true */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Errno = 1; - - /* Set error number to interrupted */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Errno_Value = 5; - - strcpy(VC_AppCustomDevice.Channel[0].DevName, "test"); - - result = VC_ConfigureDevice(DeviceID); - - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); - UtAssert_EventSent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, returnString, - "VC_ConfigureDevices() failed to raise an event"); - UtAssert_True(result == expected,"VC_ConfigureDevice() did not return failure"); - -} - - -/** - * Test VC_ConfigureDevice() fail V4L capabilities fail - * check buffer type - */ -void Test_VC_Custom_ConfigureDevice_CapabilitiesBuffer(void) -{ - int32 result = 0; - int32 expected = -1; - uint8 DeviceID = 0; - char returnString[64]; - snprintf(returnString, 64, "VC Capabilities %u on %s channel %u not found", - VC_V4L_BUFFER_TYPE,"test", 0); - - /* Set the test device path */ - strcpy(VC_AppCustomDevice.Channel[0].DevName, "test"); - - VC_AppCustomDevice.Channel[0].BufferType = VC_V4L_BUFFER_TYPE; - - /* Call the function under test */ - result = VC_ConfigureDevice(DeviceID); - - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); - UtAssert_EventSent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, returnString, - "VC_ConfigureDevices() failed to raise an event"); - UtAssert_True(result == expected,"VC_ConfigureDevice() did not return failure"); - -} - - -/** - * Test VC_ConfigureDevice() fail V4L capabilities check fail - * check streaming capability - */ -void Test_VC_Custom_ConfigureDevice_CapabilitiesStreaming(void) -{ - int32 result = 0; - int32 expected = -1; - uint8 DeviceID = 0; - char returnString[64]; - snprintf(returnString, 64, "VC Capabilities %u on %s channel %u not found", - V4L2_CAP_STREAMING,"test", 0); - - /* Set to true to emulate ioctl setting struct values */ - /* Need to succeed once for the first capabilities check */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Struct = 1; - - /* Set the test device path */ - strcpy(VC_AppCustomDevice.Channel[0].DevName, "test"); - - /* Set the correct buffer type */ - VC_AppCustomDevice.Channel[0].BufferType = VC_V4L_BUFFER_TYPE; - - /* Call the function under test */ - result = VC_ConfigureDevice(DeviceID); - - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); - UtAssert_EventSent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, returnString, - "VC_ConfigureDevices() failed to raise an event"); - UtAssert_True(result == expected,"VC_ConfigureDevice() did not return failure"); - -} - - -/** - * Test VC_ConfigureDevice() fail V4L set format fail - */ -void Test_VC_Custom_ConfigureDevice_FormatFail(void) -{ - int32 result = 0; - int32 expected = -1; - uint8 DeviceID = 0; - char returnString[64]; - snprintf(returnString, 64, "VIDIOC_S_FMT returned %i on %s channel %u", - 5,"test", 0); - - /* Set to true to emulate ioctl setting struct values */ - /* Need to succeed twice to reach format ioctl call */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Struct = 2; - - /* Set the test device path */ - strcpy(VC_AppCustomDevice.Channel[0].DevName, "test"); - - /* Set the correct buffer type */ - VC_AppCustomDevice.Channel[0].BufferType = VC_V4L_BUFFER_TYPE; - - /* Set return error number to true */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Errno = 1; - - /* Set error number to interrupted */ - /* Note this will set errno through multiple calls */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Errno_Value = 5; - - /* Set the second ioctl call to fail */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Return1 = -1; - - /* Call the function under test */ - result = VC_ConfigureDevice(DeviceID); - - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); - UtAssert_EventSent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, returnString, - "VC_ConfigureDevices() failed to raise an event"); - UtAssert_True(result == expected,"VC_ConfigureDevice() did not return failure"); - -} - -/** - * Test VC_ConfigureDevice() fail V4L set format verification check - */ -void Test_VC_Custom_ConfigureDevice_FormatCheck(void) -{ - int32 result = 0; - int32 expected = -1; - uint8 DeviceID = 0; - char returnString[64]; - snprintf(returnString, 64, "VC device %s channel %u didn't accept format %u.", - "test",0, 0); - - /* Set to true to emulate ioctl setting struct values */ - /* Need to succeed twice to reach format ioctl call */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Struct = 2; - - /* Set the test device path */ - strcpy(VC_AppCustomDevice.Channel[0].DevName, "test"); - - /* Set the correct buffer type */ - VC_AppCustomDevice.Channel[0].BufferType = VC_V4L_BUFFER_TYPE; - - /* Call the function under test */ - result = VC_ConfigureDevice(DeviceID); - - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); - UtAssert_EventSent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, returnString, - "VC_ConfigureDevices() failed to raise an event"); - UtAssert_True(result == expected,"VC_ConfigureDevice() did not return failure"); - -} - -/** - * Test VC_ConfigureDevice() fail V4L set format verification check - * resolution - */ -void Test_VC_Custom_ConfigureDevice_FormatCheckRes(void) -{ - int32 result = 0; - int32 expected = -1; - uint8 DeviceID = 0; - char returnString[64]; - snprintf(returnString, 64, "VC device %s channel %u didn't accept resolution instead %d:%d.", - "test",0, VC_FRAME_WIDTH, VC_FRAME_HEIGHT); - - /* Set to true to emulate ioctl setting struct values */ - /* Need to succeed twice to reach format ioctl call */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Struct = 2; - - /* Set the test device path */ - strcpy(VC_AppCustomDevice.Channel[0].DevName, "test"); - - /* Set the video format to pass format check */ - VC_AppCustomDevice.Channel[0].VideoFormat = VC_V4L_VIDEO_FORMAT; - - /* Set the correct buffer type */ - VC_AppCustomDevice.Channel[0].BufferType = VC_V4L_BUFFER_TYPE; - - /* Call the function under test */ - result = VC_ConfigureDevice(DeviceID); - - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); - UtAssert_EventSent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, returnString, - "VC_ConfigureDevices() failed to raise an event"); - UtAssert_True(result == expected,"VC_ConfigureDevice() did not return failure"); -} - -/** - * Test VC_ConfigureDevice() fail V4L set format verification check - * size - */ -void Test_VC_Custom_ConfigureDevice_FormatCheckSize(void) -{ - int32 result = 0; - int32 expected = -1; - uint8 DeviceID = 0; - char returnString[64]; - snprintf(returnString, 64, "VC device %s channel %u size image %u > buffer size %lu.", - "test",0, VC_MAX_BUFFER_SIZE, 0); - - /* Set to true to emulate ioctl setting struct values */ - /* Need to succeed twice to reach format ioctl call */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Struct = 2; - - /* Set the test device path */ - strcpy(VC_AppCustomDevice.Channel[0].DevName, "test"); - - /* Set the video format to pass format check */ - VC_AppCustomDevice.Channel[0].VideoFormat = VC_V4L_VIDEO_FORMAT; - - /* Set the correct buffer type */ - VC_AppCustomDevice.Channel[0].BufferType = VC_V4L_BUFFER_TYPE; - - /* Set the correct resolution */ - VC_AppCustomDevice.Channel[0].FrameWidth = VC_FRAME_WIDTH; - VC_AppCustomDevice.Channel[0].FrameHeight = VC_FRAME_HEIGHT; - - /* Call the function under test */ - result = VC_ConfigureDevice(DeviceID); - - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); - UtAssert_EventSent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, returnString, - "VC_ConfigureDevices() failed to raise an event"); - UtAssert_True(result == expected,"VC_ConfigureDevice() did not return failure"); -} - - -/** - * Test VC_ConfigureDevice() fail V4L requests buffers - */ -void Test_VC_Custom_ConfigureDevice_RequestsBuffers(void) -{ - int32 result = 0; - int32 expected = -1; - uint8 DeviceID = 0; - char returnString[64]; - snprintf(returnString, 64, "VC VIDIOC_REQBUFS returned %i on %s channel %u.", - 5,"test",0); - - /* Set to true to emulate ioctl setting struct values */ - /* Need to succeed twice to reach format ioctl call */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Struct = 2; - - /* Set the test device path */ - strcpy(VC_AppCustomDevice.Channel[0].DevName, "test"); - - /* Set the video format to pass format check */ - VC_AppCustomDevice.Channel[0].VideoFormat = VC_V4L_VIDEO_FORMAT; - - /* Set the correct buffer type */ - VC_AppCustomDevice.Channel[0].BufferType = VC_V4L_BUFFER_TYPE; - - /* Set the correct resolution */ - VC_AppCustomDevice.Channel[0].FrameWidth = VC_FRAME_WIDTH; - VC_AppCustomDevice.Channel[0].FrameHeight = VC_FRAME_HEIGHT; - - /* Set the correct size */ - VC_AppCustomDevice.Channel[0].Buffer_Size = VC_MAX_BUFFER_SIZE; - - /* Set return error number to true */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Errno = 1; - - /* Set error number to interrupted */ - /* Note this will set errno through multiple calls */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Errno_Value = 5; - - /* Set the third ioctl call to fail */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Return2 = -1; - - /* Call the function under test */ - result = VC_ConfigureDevice(DeviceID); - - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); - UtAssert_EventSent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, returnString, - "VC_ConfigureDevices() failed to raise an event"); - UtAssert_True(result == expected,"VC_ConfigureDevice() did not return failure"); -} - - -/** - * Test VC_ConfigureDevice() fail V4L requests buffers fail requested - * count verification - */ -void Test_VC_Custom_ConfigureDevice_RequestsBuffersCount(void) -{ - int32 result = 0; - int32 expected = -1; - uint8 DeviceID = 0; - char returnString[64]; - snprintf(returnString, 64, "VC VIDIOC_REQBUFS did not comply. %u buffers on %s channel %u.", - 4,"test",0); - - /* Set to true to emulate ioctl setting struct values */ - /* Need to succeed twice to reach format ioctl call */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Struct = 2; - - /* Set the test device path */ - strcpy(VC_AppCustomDevice.Channel[0].DevName, "test"); - - /* Set the video format to pass format check */ - VC_AppCustomDevice.Channel[0].VideoFormat = VC_V4L_VIDEO_FORMAT; - - /* Set the correct buffer type */ - VC_AppCustomDevice.Channel[0].BufferType = VC_V4L_BUFFER_TYPE; - - /* Set the correct resolution */ - VC_AppCustomDevice.Channel[0].FrameWidth = VC_FRAME_WIDTH; - VC_AppCustomDevice.Channel[0].FrameHeight = VC_FRAME_HEIGHT; - - /* Set the correct size */ - VC_AppCustomDevice.Channel[0].Buffer_Size = VC_MAX_BUFFER_SIZE; - - /* Call the function under test */ - result = VC_ConfigureDevice(DeviceID); - - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); - UtAssert_EventSent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, returnString, - "VC_ConfigureDevices() failed to raise an event"); - UtAssert_True(result == expected,"VC_ConfigureDevice() did not return failure"); -} - -/** - * Test VC_ConfigureDevice() nominal - */ -void Test_VC_Custom_ConfigureDevice_Nominal(void) -{ - int32 result = 0; - int32 expected = 0; - uint8 DeviceID = 0; - - /* Set to true to emulate ioctl setting struct values */ - /* Need to succeed twice to reach format ioctl call */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Struct = 2; - - /* Set the test device path */ - strcpy(VC_AppCustomDevice.Channel[0].DevName, "test"); - - /* Set the video format to pass format check */ - VC_AppCustomDevice.Channel[0].VideoFormat = VC_V4L_VIDEO_FORMAT; - - /* Set the correct buffer type */ - VC_AppCustomDevice.Channel[0].BufferType = VC_V4L_BUFFER_TYPE; - - /* Set the correct resolution */ - VC_AppCustomDevice.Channel[0].FrameWidth = VC_FRAME_WIDTH; - VC_AppCustomDevice.Channel[0].FrameHeight = VC_FRAME_HEIGHT; - - /* Set the correct size */ - VC_AppCustomDevice.Channel[0].Buffer_Size = VC_MAX_BUFFER_SIZE; - - /* Set the correct buffer number */ - VC_AppCustomDevice.Channel[0].BufferRequest = VC_V4L_BUFFER_REQUEST; - - /* Call the function under test */ - result = VC_ConfigureDevice(DeviceID); - - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==0,"Event Count = 0"); - UtAssert_True(result == expected,"VC_ConfigureDevice() did not return failure"); -} - -/************************************************************************** - * Tests for VC_Devices_Init() - **************************************************************************/ - -/** - * Test VC_Devices_Init fail VC_Init_CustomDevices and - * VC_InitDevice() already initialized error (see previous already - * initialized test) - */ -void Test_VC_Custom_DevicesInit_Fail(void) -{ - boolean result = TRUE; - boolean expected = FALSE; - uint8 DeviceID = 0; - - strcpy(VC_AppCustomDevice.Channel[0].DevName, "test"); - - /* Set the first device to enabled */ - VC_AppCustomDevice.Channel[0].Mode = VC_DEVICE_ENABLED; - /* Set the first device file descriptor to a non-zero value */ - VC_AppCustomDevice.Channel[0].DeviceFd = 1; - - result = VC_Devices_Init(); - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); - UtAssert_True(result == expected,"VC_InitDevice() did not return an error"); - - UtAssert_True(VC_AppCustomDevice.Channel[0].Mode == VC_DEVICE_DISABLED, - "VC_InitCustomDevices() did not mode to disabled"); - UtAssert_EventSent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, "VC Device test for channel 0 already initialized.", - "VC_InitDevice() failed to raise an event"); -} - -/** - * Test VC_Devices_Init Nominal (See previous test for - * VC_InitCustomDevices() Nominal) - */ -void Test_VC_Custom_DevicesInit_Nominal(void) -{ - boolean result = FALSE; - boolean expected = TRUE; - uint8 DeviceID = 0; - char returnString[64]; - snprintf(returnString, 64, "VC Device initialized channel %u from %s", 0, "test"); - char returnString1[64]; - snprintf(returnString1, 64, "VC Device configured channel %u from %s", 0, "test"); - /* Set the first device to enabled */ - VC_AppCustomDevice.Channel[0].Mode = VC_DEVICE_ENABLED; - - /* Set to true to emulate ioctl setting struct values */ - /* Need to succeed twice to reach format ioctl call */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Struct = 2; - - /* Set the test device path */ - strcpy(VC_AppCustomDevice.Channel[0].DevName, "test"); - - /* Set the video format to pass format check */ - VC_AppCustomDevice.Channel[0].VideoFormat = VC_V4L_VIDEO_FORMAT; - - /* Set the correct buffer type */ - VC_AppCustomDevice.Channel[0].BufferType = VC_V4L_BUFFER_TYPE; - - /* Set the correct resolution */ - VC_AppCustomDevice.Channel[0].FrameWidth = VC_FRAME_WIDTH; - VC_AppCustomDevice.Channel[0].FrameHeight = VC_FRAME_HEIGHT; - - /* Set the correct size */ - VC_AppCustomDevice.Channel[0].Buffer_Size = VC_MAX_BUFFER_SIZE; - - /* Set the correct buffer number */ - VC_AppCustomDevice.Channel[0].BufferRequest = VC_V4L_BUFFER_REQUEST; - - result = VC_Devices_Init(); - - UtAssert_True(result == expected,"VC_Init_CustomDevices() did not succeed"); - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==2,"Event Count = 2"); - UtAssert_True(VC_AppCustomDevice.Channel[0].Status == VC_DEVICE_INITIALIZED, - "VC_Init_CustomDevices() state not initialized"); - UtAssert_EventSent(VC_DEV_INF_EID, CFE_EVS_INFORMATION, returnString, - "VC_InitCustomDevices() failed to raise an event"); - UtAssert_EventSent(VC_DEV_INF_EID, CFE_EVS_INFORMATION, returnString1, - "VC_InitCustomDevices() failed to raise an event"); -} - -/************************************************************************** - * Tests for VC_Start_StreamingDevice() - **************************************************************************/ - -/** - * Test VC_Start_StreamingDevice through VC_Start_Streaming() - * fail queue buffers ioctl - */ -void Test_VC_Custom_StartStreamingDevice_BufferQueue(void) -{ - int32 result = 0; - int32 expected = -1; - uint8 DeviceID = 0; - - char returnString[64]; - snprintf(returnString, 64, "VC VIDIOC_QBUF returned %i on %s channel %u", 5, "test", 0); - - /* Set return error number to true */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Errno = 1; - - /* Set error number to interrupted */ - /* Note this will set errno through multiple calls */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Errno_Value = 5; - - /* Set the test device path */ - strcpy(VC_AppCustomDevice.Channel[0].DevName, "test"); - - /* Set buffer request to its correct value */ - VC_AppCustomDevice.Channel[0].BufferRequest = VC_V4L_BUFFER_REQUEST; - - /* Set the first ioctl call to fail */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Return = -1; - - /* Set channel 0 to enabled and initialized */ - VC_AppCustomDevice.Channel[0].Mode = VC_DEVICE_ENABLED; - VC_AppCustomDevice.Channel[0].Status = VC_DEVICE_INITIALIZED; - - /* Call the function under test */ - result = VC_Start_Streaming(); - - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); - UtAssert_True(result == expected,"VC_Start_StreamingDevice() did not fail"); - UtAssert_True(VC_AppCustomDevice.Channel[0].Status == VC_DEVICE_INITIALIZED, - "VC_StartStreaming changed status with failure"); - UtAssert_EventSent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, returnString, - "VC_Start_StreamingDevice() failed to raise an event"); -} - -/** - * Test VC_Start_StreamingDevice through VC_Start_Streaming() - * fail stream on ioctl - */ -void Test_VC_Custom_StartStreamingDevice_StreamOn(void) -{ - int32 result = 0; - int32 expected = -1; - uint8 DeviceID = 0; - - char returnString[64]; - snprintf(returnString, 64, "VC VIDIOC_STREAMON returned %i on %s channel %u", 5, "test", 0); - - /* Set return error number to true */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Errno = 1; - - /* Set error number to interrupted */ - /* Note this will set errno through multiple calls */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Errno_Value = 5; - - /* Set the test device path */ - strcpy(VC_AppCustomDevice.Channel[0].DevName, "test"); - - /* Set buffer request to one to only call ioctl queue buffer once */ - VC_AppCustomDevice.Channel[0].BufferRequest = 1; - - /* Set the second ioctl call to fail */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Return1 = -1; - - /* Set channel 0 to enabled and initialized */ - VC_AppCustomDevice.Channel[0].Mode = VC_DEVICE_ENABLED; - VC_AppCustomDevice.Channel[0].Status = VC_DEVICE_INITIALIZED; - - /* Call the function under test */ - result = VC_Start_Streaming(); - - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); - UtAssert_True(result == expected,"VC_Start_StreamingDevice() did not fail"); - UtAssert_True(VC_AppCustomDevice.Channel[0].Status == VC_DEVICE_INITIALIZED, - "VC_StartStreaming changed status with failure"); - UtAssert_EventSent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, returnString, - "VC_Start_StreamingDevice() failed to raise an event"); -} - -/** - * Test VC_Start_StreamingDevice nominal - */ -void Test_VC_Custom_StartStreamingDevice_Nominal(void) -{ - int32 result = -1; - int32 expected = 0; - uint8 DeviceID = 0; - - char returnString[64]; - snprintf(returnString, 64, "VC VIDIOC_STREAMON success on %s channel %u", "test", 0); - - /* Set the test device path */ - strcpy(VC_AppCustomDevice.Channel[0].DevName, "test"); - - /* Set buffer request to one to only call ioctl queue buffer once */ - VC_AppCustomDevice.Channel[0].BufferRequest = 1; - - /* Call the function under test */ - result = VC_Start_StreamingDevice(DeviceID); - - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); - UtAssert_True(result == expected,"VC_Start_StreamingDevice() did not succeed"); - UtAssert_EventSent(VC_DEV_INF_EID, CFE_EVS_INFORMATION, returnString, - "VC_Start_StreamingDevice() failed to raise an event"); -} - -/************************************************************************** - * Tests for VC_Start_Streaming() - **************************************************************************/ - - -/** - * Test VC_Start_Streaming nominal - */ -void Test_VC_Custom_StartStreaming_Nominal(void) -{ - int32 result = -1; - int32 expected = 0; - uint8 DeviceID = 0; - - char returnString[64]; - snprintf(returnString, 64, "VC VIDIOC_STREAMON success on %s channel %u", "test", 0); - - /* Set channel 0 to enabled and initialized */ - VC_AppCustomDevice.Channel[0].Mode = VC_DEVICE_ENABLED; - VC_AppCustomDevice.Channel[0].Status = VC_DEVICE_INITIALIZED; - - /* Set the test device path */ - strcpy(VC_AppCustomDevice.Channel[0].DevName, "test"); - - /* Set buffer request to one to only call ioctl queue buffer once */ - VC_AppCustomDevice.Channel[0].BufferRequest = 1; - - /* Call the function under test */ - result = VC_Start_Streaming(); - - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); - UtAssert_True(VC_AppCustomDevice.Channel[0].Status == VC_DEVICE_STREAMING, - "VC_Start_Streaming() did not set state to streaming"); - UtAssert_True(result == expected,"VC_Start_StreamingDevice() did not succeed"); - UtAssert_EventSent(VC_DEV_INF_EID, CFE_EVS_INFORMATION, returnString, - "VC_Start_StreamingDevice() failed to raise an event"); -} - -/************************************************************************** - * Tests for VC_Stream_Task() - **************************************************************************/ - -/** - * Test VC_Stream_Task() fail register child task - */ -void Test_VC_Custom_StreamTask_RegisterChildTaskFail(void) -{ - /* Set register child task to fail */ - Ut_CFE_ES_SetReturnCode(UT_CFE_ES_REGISTERCHILDTASK_INDEX, -1, 1); - - /* Call the function under test */ - VC_Stream_Task(); - - /* Verfity results */ - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); - UtAssert_True(VC_AppData.AppState == VC_INITIALIZED, - "VC_Stream_Task() did not set app state"); - UtAssert_EventSent(VC_DEV_INF_EID, CFE_EVS_INFORMATION, - "VC streaming task exited with return code 0 task status (0xFFFFFFFF)", - "VC_Stream_Task() failed to raise an event"); -} - - -/** - * Test VC_Stream_Task() fail nothing enabled and streaming - */ -void Test_VC_Custom_StreamTask_NothingEnabled(void) -{ - - char returnString[64]; - snprintf(returnString, 64, "VC can't start streaming no devices are streaming enabled"); - char returnString1[128]; - snprintf(returnString1, 128, "VC streaming task exited with return code %d task status (0x%08X)", - -1, (unsigned int)CFE_SUCCESS); - - /* Set register child task to succeed */ - Ut_CFE_ES_SetReturnCode(UT_CFE_ES_REGISTERCHILDTASK_INDEX, CFE_SUCCESS, 1); - - /* Set the while loop continue flag to true */ - VC_AppCustomDevice.ContinueFlag = TRUE; - - /* Set a fake device file descriptor */ - VC_AppCustomDevice.Channel[0].DeviceFd = 7; - - /* Set select to fail with an error (-1) */ - VC_Platform_Stubs_Returns.VC_Wrap_Select_Return = -1; - - /* Call the function under test */ - VC_Stream_Task(); - - /* Verfity results */ - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==2,"Event Count = 2"); - UtAssert_True(VC_AppData.AppState == VC_INITIALIZED, - "VC_Stream_Task() did not set app state"); - UtAssert_EventSent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, returnString, - "VC_Stream_Task() failed to raise an event"); - UtAssert_EventSent(VC_DEV_INF_EID, CFE_EVS_INFORMATION, returnString1, - "VC_Stream_Task() failed to raise an event"); -} - - -/** - * Test VC_Stream_Task() fail select error - */ -void Test_VC_Custom_StreamTask_SelectError(void) -{ - - char returnString[64]; - snprintf(returnString, 64, "VC start streaming failed select() returned %i", 6); - char returnString1[128]; - snprintf(returnString1, 128, "VC streaming task exited with return code %d task status (0x%08X)", - -1, (unsigned int)CFE_SUCCESS); - - /* Set register child task to succeed */ - Ut_CFE_ES_SetReturnCode(UT_CFE_ES_REGISTERCHILDTASK_INDEX, CFE_SUCCESS, 1); - - /* Set the while loop continue flag to true */ - VC_AppCustomDevice.ContinueFlag = TRUE; - - /* Set the mode and state for channel 0*/ - VC_AppCustomDevice.Channel[0].Mode = VC_DEVICE_ENABLED; - VC_AppCustomDevice.Channel[0].Status = VC_DEVICE_STREAMING; - - /* Set return error number to true */ - VC_Platform_Stubs_Returns.VC_Wrap_Select_Errno = 1; - - /* Set error number to interrupted */ - /* Note this will set errno through multiple calls */ - VC_Platform_Stubs_Returns.VC_Wrap_Select_Errno_Value = 6; - - /* Set a fake device file descriptor */ - VC_AppCustomDevice.Channel[0].DeviceFd = 7; - - /* Set select to fail with an error (-1) */ - VC_Platform_Stubs_Returns.VC_Wrap_Select_Return = -1; - - /* Call the function under test */ - VC_Stream_Task(); - - /* Verfity results */ - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==2,"Event Count = 2"); - UtAssert_True(VC_AppData.AppState == VC_INITIALIZED, - "VC_Stream_Task() did not set app state"); - UtAssert_EventSent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, returnString, - "VC_Stream_Task() failed to raise an event"); - UtAssert_EventSent(VC_DEV_INF_EID, CFE_EVS_INFORMATION, returnString1, - "VC_Stream_Task() failed to raise an event"); -} - -/** - * Test VC_Stream_Task() fail select interrupted max retry attempts - */ -void Test_VC_Custom_StreamTask_InterruptedError(void) -{ - char returnString[64]; - snprintf(returnString, 64, "VC select was interrupted"); - char returnString1[128]; - snprintf(returnString1, 128, "VC streaming task exited with return code %d task status (0x%08X)", - -1, (unsigned int)CFE_SUCCESS); - - /* Set register child task to succeed */ - Ut_CFE_ES_SetReturnCode(UT_CFE_ES_REGISTERCHILDTASK_INDEX, CFE_SUCCESS, 1); - - /* Set the while loop continue flag to true */ - VC_AppCustomDevice.ContinueFlag = TRUE; - - /* Set the mode and state for channel 0*/ - VC_AppCustomDevice.Channel[0].Mode = VC_DEVICE_ENABLED; - VC_AppCustomDevice.Channel[0].Status = VC_DEVICE_STREAMING; - - /* Set return error number to true */ - VC_Platform_Stubs_Returns.VC_Wrap_Select_Errno = 1; - - /* Set error number to interrupted */ - /* Note this will set errno through multiple calls */ - VC_Platform_Stubs_Returns.VC_Wrap_Select_Errno_Value = EINTR; - - /* Set a fake device file descriptor */ - VC_AppCustomDevice.Channel[0].DeviceFd = 7; - - /* Set select to fail with an error (-1) */ - VC_Platform_Stubs_Returns.VC_Wrap_Select_Return = -1; - - /* Call the function under test */ - VC_Stream_Task(); - - /* Verfity results */ - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==(VC_MAX_RETRY_ATTEMPTS + 1), - "Event Count is not correct"); - UtAssert_True(VC_AppData.AppState == VC_INITIALIZED, - "VC_Stream_Task() did not set app state"); - UtAssert_EventSent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, returnString, - "VC_Stream_Task() failed to raise an event"); - UtAssert_EventSent(VC_DEV_INF_EID, CFE_EVS_INFORMATION, returnString1, - "VC_Stream_Task() failed to raise an event"); -} - -/** - * Test VC_Stream_Task() fail select timeout max retry attempts - */ -void Test_VC_Custom_StreamTask_TimeoutError(void) -{ - char returnString[64]; - snprintf(returnString, 64, "VC select timed out"); - char returnString1[128]; - snprintf(returnString1, 128, "VC streaming task exited with return code %d task status (0x%08X)", - -1, (unsigned int)CFE_SUCCESS); - - /* Set register child task to succeed */ - Ut_CFE_ES_SetReturnCode(UT_CFE_ES_REGISTERCHILDTASK_INDEX, CFE_SUCCESS, 1); - - /* Set the while loop continue flag to true */ - VC_AppCustomDevice.ContinueFlag = TRUE; - - /* Set the mode and state for channel 0*/ - VC_AppCustomDevice.Channel[0].Mode = VC_DEVICE_ENABLED; - VC_AppCustomDevice.Channel[0].Status = VC_DEVICE_STREAMING; - - /* Set a fake device file descriptor */ - VC_AppCustomDevice.Channel[0].DeviceFd = 7; - - /* Set select to timeout return value (0) */ - VC_Platform_Stubs_Returns.VC_Wrap_Select_Return = 0; - - /* Call the function under test */ - VC_Stream_Task(); - - /* Verfity results */ - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==(VC_BUFFER_TIMEOUTS_ALLOWED + 1), - "Event Count is not correct"); - UtAssert_True(VC_AppData.AppState == VC_INITIALIZED, - "VC_Stream_Task() did not set app state"); - UtAssert_EventSent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, returnString, - "VC_Stream_Task() failed to raise an event"); - UtAssert_EventSent(VC_DEV_INF_EID, CFE_EVS_INFORMATION, returnString1, - "VC_Stream_Task() failed to raise an event"); -} - - -/************************************************************************** - * Tests for VC_Devices_Start() - **************************************************************************/ - -/** - * Test VC_Devices_Start() fail start streaming - */ -void Test_VC_Custom_DevicesStart_StartStreaming(void) -{ - boolean result = TRUE; - boolean expected = FALSE; - - uint8 DeviceID = 0; - - /* Fail start streaming device */ - char returnString[64]; - snprintf(returnString, 64, "VC VIDIOC_QBUF returned %i on %s channel %u", 5, "test", 0); - - /* Set return error number to true */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Errno = 1; - - /* Set error number to interrupted */ - /* Note this will set errno through multiple calls */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Errno_Value = 5; - - /* Set the test device path */ - strcpy(VC_AppCustomDevice.Channel[0].DevName, "test"); - - /* Set buffer request to its correct value */ - VC_AppCustomDevice.Channel[0].BufferRequest = VC_V4L_BUFFER_REQUEST; - - /* Set the first ioctl call to fail */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Return = -1; - - /* Set channel 0 to enabled and initialized */ - VC_AppCustomDevice.Channel[0].Mode = VC_DEVICE_ENABLED; - VC_AppCustomDevice.Channel[0].Status = VC_DEVICE_INITIALIZED; - - /* Call the function under test */ - result = VC_Devices_Start(); - - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); - UtAssert_True(VC_AppCustomDevice.ContinueFlag == FALSE, - "Devices start continue flag not correctly set"); - UtAssert_True(result == expected,"VC_Devices_Start() did not fail"); - UtAssert_True(VC_AppCustomDevice.Channel[0].Status == VC_DEVICE_INITIALIZED, - "VC_StartStreaming changed status with failure"); - UtAssert_EventSent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, returnString, - "VC_Start_StreamingDevice() failed to raise an event"); -} - -/** - * Test VC_Devices_Start() fail child task creation - */ -void Test_VC_Custom_DevicesStart_ChildTaskCreationFail(void) -{ - /* Set create child task to fail */ - Ut_CFE_ES_SetReturnCode(UT_CFE_ES_CREATECHILDTASK_INDEX, -1, 1); - - boolean result = TRUE; - boolean expected = FALSE; - char returnString[64]; - snprintf(returnString, 64, "VC VIDIOC_STREAMON success on %s channel %u", "test", 0); - - uint8 DeviceID = 0; - - /* Set the test device path */ - strcpy(VC_AppCustomDevice.Channel[0].DevName, "test"); - - /* Set buffer request to its correct value */ - VC_AppCustomDevice.Channel[0].BufferRequest = VC_V4L_BUFFER_REQUEST; - - /* Set channel 0 to enabled and initialized */ - VC_AppCustomDevice.Channel[0].Mode = VC_DEVICE_ENABLED; - VC_AppCustomDevice.Channel[0].Status = VC_DEVICE_INITIALIZED; - - /* Call the function under test */ - result = VC_Devices_Start(); - - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); - UtAssert_True(VC_AppCustomDevice.ContinueFlag == FALSE, - "Devices start continue flag not correctly set"); - UtAssert_True(result == expected,"VC_Devices_Start() did not fail"); - UtAssert_True(VC_AppCustomDevice.Channel[0].Status == VC_DEVICE_STREAMING, - "VC_Custom_Device status is not the correct value"); - UtAssert_EventSent(VC_DEV_INF_EID, CFE_EVS_INFORMATION, returnString, - "VC_Start_StreamingDevice() failed to raise an event"); -} - -/** - * Test VC_Devices_Start() nominal - */ -void Test_VC_Custom_DevicesStart_Nominal(void) -{ - /* Set create child task to fail */ - Ut_CFE_ES_SetReturnCode(UT_CFE_ES_CREATECHILDTASK_INDEX, CFE_SUCCESS, 1); - - boolean result = FALSE; - boolean expected = TRUE; - char returnString[64]; - snprintf(returnString, 64, "VC VIDIOC_STREAMON success on %s channel %u", "test", 0); - - uint8 DeviceID = 0; - - /* Set the test device path */ - strcpy(VC_AppCustomDevice.Channel[0].DevName, "test"); - - /* Set buffer request to its correct value */ - VC_AppCustomDevice.Channel[0].BufferRequest = VC_V4L_BUFFER_REQUEST; - - /* Set channel 0 to enabled and initialized */ - VC_AppCustomDevice.Channel[0].Mode = VC_DEVICE_ENABLED; - VC_AppCustomDevice.Channel[0].Status = VC_DEVICE_INITIALIZED; - - /* Call the function under test */ - result = VC_Devices_Start(); - - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); - UtAssert_True(VC_AppCustomDevice.ContinueFlag == TRUE, - "Devices start continue flag not correctly set"); - UtAssert_True(result == expected,"VC_Devices_Start() did not fail"); - UtAssert_True(VC_AppCustomDevice.Channel[0].Status == VC_DEVICE_STREAMING, - "VC_Custom_Device status is not the correct value"); - UtAssert_EventSent(VC_DEV_INF_EID, CFE_EVS_INFORMATION, returnString, - "VC_Start_StreamingDevice() failed to raise an event"); -} - -/************************************************************************** - * Tests for VC_Stop_StreamingDevice() - **************************************************************************/ - -/** - * Test VC_Stop_StreamingDevice() through VC_Stop_Streaming() - * fail stream off - */ -void Test_VC_Custom_StopStreamingDevices_StreamOff(void) -{ - int32 result = 0; - int32 expected = -1; - - char returnString[64]; - snprintf(returnString, 64, "VC VIDIOC_STREAMOFF returned %i on %s channel %u", 7, "test", 0); - - /* Set the test device path */ - strcpy(VC_AppCustomDevice.Channel[0].DevName, "test"); - - - /* Set channel 0 to enabled and initialized */ - VC_AppCustomDevice.Channel[0].Mode = VC_DEVICE_ENABLED; - VC_AppCustomDevice.Channel[0].Status = VC_DEVICE_STREAMING; - - /* Set return error number to true */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Errno = 1; - - /* Set error number to interrupted */ - /* Note this will set errno through multiple calls */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Errno_Value = 7; - - /* Set the first ioctl call to fail */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Return = -1; - - /* Call the function under test */ - result = VC_Stop_Streaming(); - - UtAssert_True(result == expected,"VC_Stop_StreamingDevice() did not fail"); -} - -/** - * Test VC_Stop_StreamingDevice() through VC_Stop_Streaming() nominal - */ -void Test_VC_Custom_StopStreamingDevices_Nominal(void) -{ - int32 result = -1; - int32 expected = 0; - - char returnString[64]; - snprintf(returnString, 64, "VC VIDIOC_STREAMOFF success on %s channel %u", "test", 0); - - - /* Set channel 0 to enabled and initialized */ - VC_AppCustomDevice.Channel[0].Mode = VC_DEVICE_ENABLED; - VC_AppCustomDevice.Channel[0].Status = VC_DEVICE_STREAMING; - - /* Set the test device path */ - strcpy(VC_AppCustomDevice.Channel[0].DevName, "test"); - - /* Call the function under test */ - result = VC_Stop_Streaming(); - - UtAssert_True(result == expected,"VC_Stop_StreamingDevice() did not succeed"); -} - - -/************************************************************************** - * Tests for VC_Stop_Streaming() - **************************************************************************/ - -/************************************************************************** - * Tests for VC_Devices_Stop() - **************************************************************************/ - - /** - * Test VC_Devices_Stop() fail stop streaming - */ -void Test_VC_Custom_DevicesStop_FailStopStreaming(void) -{ - boolean result = TRUE; - int32 expected = FALSE; - - char returnString[64]; - snprintf(returnString, 64, "VC VIDIOC_STREAMOFF returned %i on %s channel %u", 7, "test", 0); - - /* Set the test device path */ - strcpy(VC_AppCustomDevice.Channel[0].DevName, "test"); - - - /* Set channel 0 to enabled and initialized */ - VC_AppCustomDevice.Channel[0].Mode = VC_DEVICE_ENABLED; - VC_AppCustomDevice.Channel[0].Status = VC_DEVICE_STREAMING; - - /* Set return error number to true */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Errno = 1; - - /* Set error number to interrupted */ - /* Note this will set errno through multiple calls */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Errno_Value = 7; - - /* Set the first ioctl call to fail */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Return = -1; - - /* Call the function under test */ - result = VC_Devices_Stop(); - - UtAssert_True(result == expected,"VC_Stop_StreamingDevice() did not fail"); -} - - /** - * Test VC_Devices_Stop() nominal - */ -void Test_VC_Custom_DevicesStop_Nominal(void) -{ - boolean result = FALSE; - boolean expected = TRUE; - - char returnString[64]; - snprintf(returnString, 64, "VC VIDIOC_STREAMOFF success on %s channel %u", "test", 0); - - - /* Set channel 0 to enabled and initialized */ - VC_AppCustomDevice.Channel[0].Mode = VC_DEVICE_ENABLED; - VC_AppCustomDevice.Channel[0].Status = VC_DEVICE_STREAMING; - - /* Set the test device path */ - strcpy(VC_AppCustomDevice.Channel[0].DevName, "test"); - - /* Call the function under test */ - result = VC_Devices_Stop(); - - UtAssert_True(result == expected,"VC_Stop_StreamingDevice() did not succeed"); - UtAssert_True(VC_AppCustomDevice.ContinueFlag==FALSE,"Continue flag wasn't set"); - UtAssert_True(VC_AppData.AppState==VC_INITIALIZED,"App state isn't initialized"); -} - - -/************************************************************************** - * Tests for VC_DisableDevice() - **************************************************************************/ - - /** - * Test VC_DisableDevice() nothing enabled - */ -void Test_VC_Custom_DisableDevice_NothingEnabled(void) -{ - int32 result = 0; - int32 expected = -1; - uint8 DeviceID = 0; - - char returnString[64]; - snprintf(returnString, 64, "VC Device for channel %u is not enabled.", 0); - - result = VC_DisableDevice(DeviceID); - UtAssert_True(result == expected,"VC_DisableDevice() did not fail"); -} - - - /** - * Test VC_DisableDevice() nominal - */ -void Test_VC_Custom_DisableDevice_Nominal(void) -{ - int32 result = -1; - int32 expected = 0; - uint8 DeviceID = 0; - - /* Set test device file descriptor a random value */ - VC_AppCustomDevice.Channel[0].DeviceFd = 1; - - /* Set device mode to enable */ - VC_AppCustomDevice.Channel[0].Mode = VC_DEVICE_ENABLED; - - /* Call the function under test */ - result = VC_DisableDevice(DeviceID); - - UtAssert_True(VC_AppCustomDevice.Channel[0].DeviceFd == 0, - "VC_DisableDevice() did not reset FD"); - UtAssert_True(result == expected,"VC_DisableDevice() did not succeed"); -} - -/************************************************************************** - * Tests for VC_CleanupDevices() - **************************************************************************/ - - /** - * Test VC_CleanupDevices() stop streaming fail - * note reuse of code from first stop streaming device fail test - */ -void Test_VC_Custom_CleanupDevices_StopStreaming(void) -{ - int32 result = 0; - int32 expected = -1; - - char returnString[64]; - snprintf(returnString, 64, "VC VIDIOC_STREAMOFF returned %i on %s channel %u", 7, "test", 0); - - /* Set the test device path */ - strcpy(VC_AppCustomDevice.Channel[0].DevName, "test"); - - - /* Set channel 0 to enabled and initialized */ - VC_AppCustomDevice.Channel[0].Mode = VC_DEVICE_ENABLED; - VC_AppCustomDevice.Channel[0].Status = VC_DEVICE_STREAMING; - - /* Set return error number to true */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Errno = 1; - - /* Set error number to interrupted */ - /* Note this will set errno through multiple calls */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Errno_Value = 7; - - /* Set the first ioctl call to fail */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Return = -1; - - /* Call the function under test */ - result = VC_CleanupDevices(); - - UtAssert_True(result == expected,"VC_Stop_StreamingDevice() did not fail"); - UtAssert_True(VC_AppCustomDevice.Channel[0].Status == VC_DEVICE_STREAMING, - "VC_CleanupDevices() did not set status"); -} - -/** - * Test VC_CleanupDevices() nominal - * - */ -void Test_VC_Custom_CleanupDevices_Nominal(void) -{ - int32 result = -1; - int32 expected = 0; - uint8 DeviceID = 0; - - char returnString[64]; - snprintf(returnString, 64, "VC VIDIOC_STREAMOFF success on %s channel %u", "test", 0); - - /* Set channel 0 to enabled and initialized */ - VC_AppCustomDevice.Channel[0].Mode = VC_DEVICE_ENABLED; - VC_AppCustomDevice.Channel[0].Status = VC_DEVICE_STREAMING; - - /* Set the test device path */ - strcpy(VC_AppCustomDevice.Channel[0].DevName, "test"); - - /* Call the function under test */ - result = VC_CleanupDevices(); - - UtAssert_True(result == expected,"VC_DisableDevice() did not succeed"); - UtAssert_True(VC_AppCustomDevice.Channel[0].Status == VC_DEVICE_INITIALIZED, - "VC_CleanupDevices() did not set correct status"); -} - - -/************************************************************************** - * Tests for VC_Devices_Uninit() - **************************************************************************/ - -/** - * Test VC_Devices_Uninit() nominal - * - */ -void Test_VC_Custom_DevicesUninit_Nominal(void) -{ - boolean result = FALSE; - boolean expected = TRUE; - uint8 DeviceID = 0; - - char returnString[64]; - snprintf(returnString, 64, "VC VIDIOC_STREAMOFF success on %s channel %u", "test", 0); - - /* Set channel 0 to enabled and initialized */ - VC_AppCustomDevice.Channel[0].Mode = VC_DEVICE_ENABLED; - VC_AppCustomDevice.Channel[0].Status = VC_DEVICE_STREAMING; - - /* Set the test device path */ - strcpy(VC_AppCustomDevice.Channel[0].DevName, "test"); - - /* Call the function under test */ - result = VC_Devices_Uninit(); - - UtAssert_True(result == expected,"VC_DisableDevice() did not succeed"); - UtAssert_True(VC_AppCustomDevice.Channel[0].Status == VC_DEVICE_INITIALIZED, - "VC_CleanupDevices() did not set correct status"); -} - - -/** - * Test VC_Devices_Uninit() cleanup devices fail - * - */ -void Test_VC_Custom_DevicesUninit_Cleanup(void) -{ - boolean result = TRUE; - boolean expected = FALSE; - - char returnString[64]; - snprintf(returnString, 64, "VC VIDIOC_STREAMOFF returned %i on %s channel %u", 7, "test", 0); - - /* Set the test device path */ - strcpy(VC_AppCustomDevice.Channel[0].DevName, "test"); - - - /* Set channel 0 to enabled and initialized */ - VC_AppCustomDevice.Channel[0].Mode = VC_DEVICE_ENABLED; - VC_AppCustomDevice.Channel[0].Status = VC_DEVICE_STREAMING; - - /* Set return error number to true */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Errno = 1; - - /* Set error number to interrupted */ - /* Note this will set errno through multiple calls */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Errno_Value = 7; - - /* Set the first ioctl call to fail */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Return = -1; - - /* Call the function under test */ - result = VC_Devices_Uninit(); - - UtAssert_True(result == expected,"VC_Stop_StreamingDevice() did not fail"); - UtAssert_True(VC_AppCustomDevice.Channel[0].Status == VC_DEVICE_STREAMING, - "VC_CleanupDevices() did not set status"); -} - -/************************************************************************** - * Tests for VC_Send_Buffer() - **************************************************************************/ - -/** - * Test VC_Send_Buffer() buffer dequeue fail - * - */ -void Test_VC_Custom_SendBuffer_BufferDequeue(void) -{ - int32 result = 0; - int32 expected = -1; - uint8 DeviceID = 0; - - char returnString[64]; - snprintf(returnString, 64, "VC VIDIOC_DQBUF returned %i on %s channel %u", 7, "test", 0); - - /* Set the test device path */ - strcpy(VC_AppCustomDevice.Channel[0].DevName, "test"); - - /* Set return error number to true */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Errno = 1; - - /* Set error number to interrupted */ - /* Note this will set errno through multiple calls */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Errno_Value = 7; - - /* Set the first ioctl call to fail */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Return = -1; - - /* Call the function under test */ - result = VC_Send_Buffer(DeviceID); - - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); - UtAssert_EventSent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, returnString, - "VC_Stop_StreamingDevice() failed to raise an event"); - UtAssert_True(result == expected,"VC_Send_Buffer() did not fail"); -} - -/** - * Test VC_Send_Buffer() max buffer size fail - * - */ -void Test_VC_Custom_SendBuffer_MaxBuffer(void) -{ - int32 result = 0; - int32 expected = -1; - uint8 DeviceID = 0; - - char returnString[64]; - snprintf(returnString, 64, "VC Packet on %s channel %u is too large", "test", 0); - - /* Set the test device path */ - strcpy(VC_AppCustomDevice.Channel[0].DevName, "test"); - - /* Set buffer dequeued validation check to fail */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Struct = 2; - - /* Call the function under test */ - result = VC_Send_Buffer(DeviceID); - - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); - UtAssert_EventSent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, returnString, - "VC_Stop_StreamingDevice() failed to raise an event"); - /* TODO currently does not fail if max buffer size exceeded. */ - //UtAssert_True(result == expected,"VC_Send_Buffer() did not fail"); -} - -/** - * Test VC_Send_Buffer() dequeued buffer address validation fail - * - */ -void Test_VC_Custom_SendBuffer_InvalidAddress(void) -{ - int32 result = 0; - int32 expected = -1; - uint8 DeviceID = 0; - - char returnString[128]; - snprintf(returnString, 128, - "VC VIDIOC_DQBUF returned unknown user pointer on %s channel %u", - "test", 0); - - /* Set the test device path */ - strcpy(VC_AppCustomDevice.Channel[0].DevName, "test"); - - /* Set buffer dequeued validation check to pass */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Struct = 1; - - /* Set buffer request to a value > 0 */ - VC_AppCustomDevice.Channel[DeviceID].BufferRequest = 1; - - /* Set random pointer address */ - VC_AppCustomDevice.Channel[DeviceID].Buffer_Ptrs[0].ptr = (void *)1; - - /* Call the function under test */ - result = VC_Send_Buffer(DeviceID); - - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); - UtAssert_EventSent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, returnString, - "VC_Stop_StreamingDevice() failed to raise an event"); - UtAssert_True(result == expected,"VC_Send_Buffer() did not fail"); -} - -/** - * Test VC_Send_Buffer() dequeued buffer fail send data - * - */ -void Test_VC_Custom_SendBuffer_SendData(void) -{ - int32 result = 0; - int32 expected = -1; - uint8 DeviceID = 0; - - char returnString[128]; - snprintf(returnString, 128, - "VC send data failed on %s channel %u", - "test", 0); - - /* Properly initialize custom transmit data */ - VC_CustomTransmit_InitData(); - - /* Set the test device path */ - strcpy(VC_AppCustomDevice.Channel[0].DevName, "test"); - - /* Set buffer dequeued validation check to pass */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Struct = 1; - - /* Set buffer request to a value > 0 */ - VC_AppCustomDevice.Channel[DeviceID].BufferRequest = 1; - - /* set sendto to fail */ - VC_Platform_Stubs_Returns.VC_Wrap_SendTo_Return = -1; - - /* Set the second ioctl call to fail */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Return1 = -1; - - /* Call the function under test */ - result = VC_Send_Buffer(DeviceID); - - /* Two events because send data will fail */ - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==2,"Event Count = 2"); - UtAssert_True(result == expected,"VC_Send_Buffer() did not fail"); -} - -/** - * Test VC_Send_Buffer() queue new buffer failure - */ -void Test_VC_Custom_SendBuffer_BufferQueue(void) -{ - int32 result = 0; - int32 expected = -1; - uint8 DeviceID = 0; - - char returnString[128]; - snprintf(returnString, 128, - "VC VIDIOC_QBUF returned %i on %s channel %u", 7, "test", 0); - - /* Set the test device path */ - strcpy(VC_AppCustomDevice.Channel[0].DevName, "test"); - - /* Set buffer dequeued validation check to pass */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Struct = 1; - - /* Set second ioctl call to fail */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Return1 = -1; - - /* Set buffer request to a value > 0 */ - VC_AppCustomDevice.Channel[DeviceID].BufferRequest = 1; - - /* Set return error number to true */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Errno = 1; - - /* Set error number to interrupted */ - /* Note this will set errno through multiple calls */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Errno_Value = 7; - - /* Call the function under test */ - result = VC_Send_Buffer(DeviceID); - - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); - UtAssert_EventSent(VC_DEVICE_ERR_EID, CFE_EVS_ERROR, returnString, - "VC_Send_Buffer() failed to raise an event"); - UtAssert_True(result == expected,"VC_Send_Buffer() did not fail"); -} - -/** - * Test VC_Send_Buffer() nominal - */ -void Test_VC_Custom_SendBuffer_Nominal(void) -{ - int32 result = -1; - int32 expected = 0; - uint8 DeviceID = 0; - - /* Set the test device path */ - strcpy(VC_AppCustomDevice.Channel[0].DevName, "test"); - - /* Set buffer dequeued validation check to pass */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Struct = 1; - - /* Set buffer request to a value > 0 */ - VC_AppCustomDevice.Channel[DeviceID].BufferRequest = 1; - - /* Set return error number to true */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Errno = 1; - - /* Set error number to interrupted */ - /* Note this will set errno through multiple calls */ - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Errno_Value = 7; - - /* Call the function under test */ - result = VC_Send_Buffer(DeviceID); - - UtAssert_True(result == expected,"VC_Send_Buffer() did not succeed"); -} - - -/************************************************************************** - * Tests for VC_Devices_InitData() - **************************************************************************/ - -/** - * Test VC_Devices_InitData() nominal - * Note: currently no way to fail this function - */ -void Test_VC_Devices_InitData_Nominal(void) -{ - int32 result = -1; - int32 expected = CFE_SUCCESS; - - /* Call the function under test */ - result = VC_Devices_InitData(); - - /* Verify the results */ - UtAssert_True(result == expected,"VC_Custom_InitData() did not succeed"); -} - - -/************************************************************************** - * Rollup Test Cases - **************************************************************************/ -void VC_Custom_App_Device_Test_AddTestCases(void) -{ -/************************************************************************** - * Tests for Custom Device Layer - **************************************************************************/ - UtTest_Add(Test_VC_Custom_Ioctl_Error, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_Ioctl_Error"); - UtTest_Add(Test_VC_Custom_Ioctl_Interrupted, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_Ioctl_Interrupted"); - UtTest_Add(Test_VC_Custom_InitDevice_AlreadyInitialized, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_InitDevice_AlreadyInitialized"); - UtTest_Add(Test_VC_Custom_InitDevice_NullName, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_InitDevice_NullName"); - UtTest_Add(Test_VC_Custom_InitDevice_InvalidID, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_InitDevice_InvalidID"); - UtTest_Add(Test_VC_Custom_InitDevice_OpenError, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_InitDevice_OpenError"); - UtTest_Add(Test_VC_Custom_InitDevice_Nominal, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_InitDevice_Nominal"); - UtTest_Add(Test_VC_Custom_InitCustomDevices_FailConfigure, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_InitCustomDevices_FailConfigure"); - UtTest_Add(Test_VC_Custom_InitCustomDevices_Nominal, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_InitCustomDevices_FailInit"); - UtTest_Add(Test_VC_Custom_ConfigureDevice_CapabilitiesFail, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_ConfigureDevice_CapabilitiesFail"); - UtTest_Add(Test_VC_Custom_ConfigureDevice_CapabilitiesBuffer, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_ConfigureDevice_CapabilitiesBuffer"); - UtTest_Add(Test_VC_Custom_ConfigureDevice_CapabilitiesStreaming, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_ConfigureDevice_CapabilitiesStreaming"); - UtTest_Add(Test_VC_Custom_ConfigureDevice_FormatFail, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_ConfigureDevice_FormatFail"); - UtTest_Add(Test_VC_Custom_ConfigureDevice_FormatCheck, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_ConfigureDevice_FormatCheck"); - UtTest_Add(Test_VC_Custom_ConfigureDevice_FormatCheckRes, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_ConfigureDevice_FormatCheckRes"); - UtTest_Add(Test_VC_Custom_ConfigureDevice_FormatCheckSize, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_ConfigureDevice_FormatCheckSize"); - UtTest_Add(Test_VC_Custom_ConfigureDevice_RequestsBuffers, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_ConfigureDevice_RequestsBuffers"); - UtTest_Add(Test_VC_Custom_ConfigureDevice_RequestsBuffersCount, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_ConfigureDevice_RequestsBuffersCount"); - UtTest_Add(Test_VC_Custom_ConfigureDevice_Nominal, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_ConfigureDevice_Nominal"); - UtTest_Add(Test_VC_Custom_DevicesInit_Fail, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_DevicesInit_Fail"); - UtTest_Add(Test_VC_Custom_DevicesInit_Nominal, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_DevicesInit_Nominal"); - UtTest_Add(Test_VC_Custom_StartStreamingDevice_BufferQueue, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_StartStreamingDevice_BufferQueue"); - UtTest_Add(Test_VC_Custom_StartStreamingDevice_StreamOn, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_StartStreamingDevice_StreamOn"); - UtTest_Add(Test_VC_Custom_StartStreamingDevice_Nominal, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_StartStreamingDevice_Nominal"); - UtTest_Add(Test_VC_Custom_StartStreaming_Nominal, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_StartStreaming_Nominal"); - UtTest_Add(Test_VC_Custom_StreamTask_RegisterChildTaskFail, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_StreamTask_RegisterChildTaskFail"); - UtTest_Add(Test_VC_Custom_StreamTask_NothingEnabled, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_StreamTask_NothingEnabled"); - UtTest_Add(Test_VC_Custom_StreamTask_SelectError, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_StreamTask_SelectError"); - UtTest_Add(Test_VC_Custom_StreamTask_InterruptedError, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_StreamTask_InterruptedError"); - UtTest_Add(Test_VC_Custom_StreamTask_TimeoutError, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_StreamTask_TimeoutError"); - UtTest_Add(Test_VC_Custom_DevicesStart_StartStreaming, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_DevicesStart_StartStreaming"); - UtTest_Add(Test_VC_Custom_DevicesStart_ChildTaskCreationFail, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_DevicesStart_ChildTaskCreationFail"); - UtTest_Add(Test_VC_Custom_DevicesStart_Nominal, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_DevicesStart_Nominal"); - UtTest_Add(Test_VC_Custom_StopStreamingDevices_StreamOff, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_StopStreamingDevices_StreamOff"); - UtTest_Add(Test_VC_Custom_StopStreamingDevices_Nominal, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_StopStreamingDevices_Nominal"); - UtTest_Add(Test_VC_Custom_DevicesStop_FailStopStreaming, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_DevicesStop_FailStopStreaming"); - UtTest_Add(Test_VC_Custom_DevicesStop_Nominal, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_DevicesStop_Nominal"); - UtTest_Add(Test_VC_Custom_DisableDevice_NothingEnabled, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_DisableDevice_NothingEnabled"); - UtTest_Add(Test_VC_Custom_DisableDevice_Nominal, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_DisableDevice_Nominal"); - UtTest_Add(Test_VC_Custom_CleanupDevices_StopStreaming, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_CleanupDevices_StopStreaming"); - UtTest_Add(Test_VC_Custom_CleanupDevices_Nominal, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_CleanupDevices_Nominal"); - UtTest_Add(Test_VC_Custom_DevicesUninit_Nominal, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_DevicesUninit_Nominal"); - UtTest_Add(Test_VC_Custom_DevicesUninit_Cleanup, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_DevicesUninit_Cleanup"); - UtTest_Add(Test_VC_Custom_SendBuffer_BufferDequeue, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_SendBuffer_BufferDequeue"); - UtTest_Add(Test_VC_Custom_SendBuffer_MaxBuffer, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_SendBuffer_MaxBuffer"); - UtTest_Add(Test_VC_Custom_SendBuffer_InvalidAddress, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_SendBuffer_InvalidAddress"); - UtTest_Add(Test_VC_Custom_SendBuffer_SendData, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_SendBuffer_SendData"); - UtTest_Add(Test_VC_Custom_SendBuffer_BufferQueue, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_SendBuffer_BufferQueue"); - UtTest_Add(Test_VC_Custom_SendBuffer_Nominal, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Custom_SendBuffer_Nominal"); - UtTest_Add(Test_VC_Devices_InitData_Nominal, VC_Custom_Device_Test_Setup, - VC_Custom_Device_Test_TearDown, "Test_VC_Devices_InitData_Nominal"); -} diff --git a/config/obc/ppd/target/apps/vc/unit_test/vc_dev_io_v4l_test/vc_app_custom_device_test.h b/config/obc/ppd/target/apps/vc/unit_test/vc_dev_io_v4l_test/vc_app_custom_device_test.h deleted file mode 100644 index 38b7e33d3..000000000 --- a/config/obc/ppd/target/apps/vc/unit_test/vc_dev_io_v4l_test/vc_app_custom_device_test.h +++ /dev/null @@ -1,48 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ - -#ifndef VC_APP_CUSTOM_DEVICE_TEST_H -#define VC_APP_CUSTOM_DEVICE_TEST_H - -#ifdef __cplusplus -extern "C" { -#endif - -void VC_Custom_App_Device_Test_AddTestCases(void); - - -#ifdef __cplusplus -} -#endif - -#endif /* VC_APP_CUSTOM_DEVICE_TEST_H */ diff --git a/config/obc/ppd/target/apps/vc/unit_test/vc_dev_io_v4l_test/vc_custom_device_test_utils.c b/config/obc/ppd/target/apps/vc/unit_test/vc_dev_io_v4l_test/vc_custom_device_test_utils.c deleted file mode 100644 index f34216d08..000000000 --- a/config/obc/ppd/target/apps/vc/unit_test/vc_dev_io_v4l_test/vc_custom_device_test_utils.c +++ /dev/null @@ -1,76 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ - -#include "vc_custom_device_test_utils.h" -#include "vc_platform_stubs.h" - -#include "ut_cfe_evs_hooks.h" -#include "ut_cfe_time_stubs.h" -#include "ut_cfe_psp_memutils_stubs.h" -#include "ut_cfe_tbl_stubs.h" -#include "ut_cfe_tbl_hooks.h" -#include "ut_cfe_fs_stubs.h" -#include "ut_cfe_time_stubs.h" -#include "ut_osapi_stubs.h" -#include "ut_osfileapi_stubs.h" -#include "ut_cfe_sb_stubs.h" -#include "ut_cfe_es_stubs.h" -#include "ut_cfe_evs_stubs.h" - -#include - -/* - * Function Definitions - */ - -void VC_Custom_Device_Test_Setup(void) -{ - /* initialize test environment to default state for every test */ - - CFE_PSP_MemSet(&VC_AppCustomDevice, 0x00, sizeof(VC_AppCustomDevice_t)); - - Ut_CFE_EVS_Reset(); - Ut_CFE_FS_Reset(); - Ut_CFE_TIME_Reset(); - Ut_CFE_TBL_Reset(); - Ut_CFE_SB_Reset(); - Ut_CFE_ES_Reset(); - Ut_OSAPI_Reset(); - Ut_OSFILEAPI_Reset(); -} - -void VC_Custom_Device_Test_TearDown(void) { - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_CallCount = 0; - CFE_PSP_MemSet(&VC_AppCustomDevice, 0x00, sizeof(VC_AppCustomDevice_t)); - CFE_PSP_MemSet(&VC_Platform_Stubs_Returns, 0x00, sizeof(VC_Platform_Stubs_Returns_t)); -} diff --git a/config/obc/ppd/target/apps/vc/unit_test/vc_dev_io_v4l_test/vc_custom_device_test_utils.h b/config/obc/ppd/target/apps/vc/unit_test/vc_dev_io_v4l_test/vc_custom_device_test_utils.h deleted file mode 100644 index 92c1f88d2..000000000 --- a/config/obc/ppd/target/apps/vc/unit_test/vc_dev_io_v4l_test/vc_custom_device_test_utils.h +++ /dev/null @@ -1,61 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ - -#ifndef VC_CUSTOM_DEVICE_TEST_UTILS_H -#define VC_CUSTOM_DEVICE_TEST_UTILS_H - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * Includes - */ - -#include "vc_dev_io_v4l.h" - -extern VC_AppCustomDevice_t VC_AppCustomDevice; - -/* - * Function Definitions - */ - -void VC_Custom_Device_Test_Setup(void); -void VC_Custom_Device_Test_TearDown(void); - - -#ifdef __cplusplus -} -#endif - -#endif /* VC_CUSTOM_DEVICE_TEST_UTILS_H */ diff --git a/config/obc/ppd/target/apps/vc/unit_test/vc_platform_stubs/vc_platform_stubs.c b/config/obc/ppd/target/apps/vc/unit_test/vc_platform_stubs/vc_platform_stubs.c deleted file mode 100644 index e2887ad31..000000000 --- a/config/obc/ppd/target/apps/vc/unit_test/vc_platform_stubs/vc_platform_stubs.c +++ /dev/null @@ -1,270 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ - -#include -#include -#include -#include -#include -#include -#include - -#include "vc_platform_stubs.h" -#include "vc_platform_cfg.h" - -int enable_wrappers = 0; - -int __real_open(char *filename, int access, int permission); -int __real_close(int fildes); -int __real_ioctl(int fh, int request, void *arg); -int __real_select(int nfds, fd_set *readfds, fd_set *writefds, - fd_set *exceptfds, struct timeval *timeout); -int __real_socket(int domain, int type, int protocol); -int __real_bind(int sockfd, const struct sockaddr *addr, socklen_t addrlen); -int __real_sendto(int sockfd, const void *buf, size_t len, int flags, - const struct sockaddr *dest_addr, socklen_t addrlen); -ssize_t __real_recv(int s, void *buf, size_t len, int flags); - - -VC_Platform_Stubs_Returns_t VC_Platform_Stubs_Returns = {0}; - - -int __wrap_ioctl(int fh, int request, void *arg) -{ - int returnCode = 0; - - if(enable_wrappers == 0) - { - returnCode = __real_ioctl(fh, request, arg); - } - else - { - if (VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Errno) - { - errno = VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Errno_Value; - } - if (VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Struct) - { - switch(request) - { - case VIDIOC_QUERYCAP: - if(1 == VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Struct) - { - ((struct v4l2_capability *)arg)->capabilities = VC_V4L_BUFFER_TYPE; - } - if(2 == VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Struct) - { - ((struct v4l2_capability *)arg)->capabilities = (VC_V4L_BUFFER_TYPE + - V4L2_CAP_STREAMING); - } - break; - case VIDIOC_S_FMT: - ((struct v4l2_format *)arg)->fmt.pix.pixelformat = VC_V4L_VIDEO_FORMAT; - ((struct v4l2_format *)arg)->fmt.pix.width = VC_FRAME_WIDTH; - ((struct v4l2_format *)arg)->fmt.pix.height = VC_FRAME_HEIGHT; - ((struct v4l2_format *)arg)->fmt.pix.sizeimage = VC_MAX_BUFFER_SIZE; - break; - case VIDIOC_REQBUFS: - ((struct v4l2_requestbuffers *)arg)->count = VC_V4L_BUFFER_REQUEST; - case VIDIOC_DQBUF: - if(1 == VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Struct) - { - ((struct v4l2_buffer *)arg)->bytesused = VC_MAX_PACKET_SIZE; - } - if(2 == VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Struct) - { - ((struct v4l2_buffer *)arg)->bytesused = (VC_MAX_PACKET_SIZE + 1); - } - default: - break; - } - } - - if (1 == VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_CallCount) - { - returnCode = VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Return1; - } - else if (2 == VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_CallCount) - { - returnCode = VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Return2; - } - else - { - returnCode = VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_Return; - } - - VC_Platform_Stubs_Returns.VC_Wrap_Ioctl_CallCount++; - } - return returnCode; -} - - -int __wrap_open(char *filename, int access, int permission) -{ - int returnCode = 0; - - if(enable_wrappers == 0) - { - returnCode = __real_open(filename, access, permission); - } - else - { - if (VC_Platform_Stubs_Returns.VC_Wrap_Open_Errno) - { - errno = VC_Platform_Stubs_Returns.VC_Wrap_Open_Errno_Value; - } - returnCode = VC_Platform_Stubs_Returns.VC_Wrap_Open_Return; - } - return returnCode; -} - - -int __wrap_close(int fildes) -{ - int returnCode = 0; - - if(enable_wrappers == 0) - { - returnCode = __real_close(fildes); - } - else - { - returnCode = VC_Platform_Stubs_Returns.VC_Wrap_Close_Return; - } - return returnCode; -} - - -int __wrap_select(int nfds, fd_set *readfds, fd_set *writefds, - fd_set *exceptfds, struct timeval *timeout) -{ - int returnCode = 0; - if(enable_wrappers == 0) - { - returnCode = __real_select(nfds, readfds, writefds, exceptfds, timeout); - } - else - { - if (VC_Platform_Stubs_Returns.VC_Wrap_Select_Errno) - { - errno = VC_Platform_Stubs_Returns.VC_Wrap_Select_Errno_Value; - } - returnCode = VC_Platform_Stubs_Returns.VC_Wrap_Select_Return; - } - return returnCode; -} - - -int __wrap_socket(int domain, int type, int protocol) -{ - int returnCode = 0; - if(enable_wrappers == 0) - { - returnCode = __real_socket(domain, type, protocol); - } - else - { - if (VC_Platform_Stubs_Returns.VC_Wrap_Socket_Errno) - { - errno = VC_Platform_Stubs_Returns.VC_Wrap_Socket_Errno_Value; - } - returnCode = VC_Platform_Stubs_Returns.VC_Wrap_Socket_Return; - } - return returnCode; -} - - -ssize_t __wrap_recv(int s, void *buf, size_t len, int flags) -{ - ssize_t returnCode = 0; - if(enable_wrappers == 0) - { - returnCode = __real_recv(s, buf, len, flags); - } - else - { - if (VC_Platform_Stubs_Returns.VC_Wrap_Recv_Errno) - { - errno = VC_Platform_Stubs_Returns.VC_Wrap_Recv_Errno_Value; - } - if (1 == VC_Platform_Stubs_Returns.VC_Wrap_Recv_CallCount) - { - returnCode = VC_Platform_Stubs_Returns.VC_Wrap_Recv_Return1; - } - else - { - returnCode = VC_Platform_Stubs_Returns.VC_Wrap_Recv_Return; - } - - VC_Platform_Stubs_Returns.VC_Wrap_Recv_CallCount++; - } - return returnCode; -} - - -int __wrap_bind(int sockfd, const struct sockaddr *addr, socklen_t addrlen) -{ - int returnCode = 0; - if(enable_wrappers == 0) - { - returnCode = __real_bind(sockfd, addr, addrlen); - } - else - { - if (VC_Platform_Stubs_Returns.VC_Wrap_Bind_Errno) - { - errno = VC_Platform_Stubs_Returns.VC_Wrap_Bind_Errno_Value; - } - returnCode = VC_Platform_Stubs_Returns.VC_Wrap_Bind_Return; - } - return returnCode; -} - -int __wrap_sendto(int sockfd, const void *buf, size_t len, int flags, - const struct sockaddr *dest_addr, socklen_t addrlen) -{ - int returnCode = 0; - if(enable_wrappers == 0) - { - returnCode = __real_sendto(sockfd, buf, len, flags, dest_addr, addrlen); - } - else - { - if (VC_Platform_Stubs_Returns.VC_Wrap_SendTo_Errno) - { - errno = VC_Platform_Stubs_Returns.VC_Wrap_SendTo_Errno_Value; - } - returnCode = VC_Platform_Stubs_Returns.VC_Wrap_SendTo_Return; - } - return returnCode; -} diff --git a/config/obc/ppd/target/apps/vc/unit_test/vc_platform_stubs/vc_platform_stubs.h b/config/obc/ppd/target/apps/vc/unit_test/vc_platform_stubs/vc_platform_stubs.h deleted file mode 100644 index 66dada74f..000000000 --- a/config/obc/ppd/target/apps/vc/unit_test/vc_platform_stubs/vc_platform_stubs.h +++ /dev/null @@ -1,84 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ - -#ifndef VC_PLATFORM_STUBS_H -#define VC_PLATFORM_STUBS_H - -#ifdef __cplusplus -extern "C" { -#endif - -#include - - -typedef struct -{ - int VC_Wrap_Ioctl_Return; - int VC_Wrap_Ioctl_Return1; - int VC_Wrap_Ioctl_Return2; - int VC_Wrap_Ioctl_Errno; - int VC_Wrap_Ioctl_Errno_Value; - int VC_Wrap_Ioctl_Struct; - int VC_Wrap_Open_Return; - int VC_Wrap_Open_Errno; - int VC_Wrap_Open_Errno_Value; - int VC_Wrap_Close_Return; - int VC_Wrap_Select_Return; - int VC_Wrap_Select_Errno; - int VC_Wrap_Select_Errno_Value; - int VC_Wrap_Socket_Return; - int VC_Wrap_Socket_Errno; - int VC_Wrap_Socket_Errno_Value; - int VC_Wrap_Bind_Return; - int VC_Wrap_Bind_Errno; - int VC_Wrap_Bind_Errno_Value; - int VC_Wrap_SendTo_Return; - int VC_Wrap_SendTo_Errno; - int VC_Wrap_SendTo_Errno_Value; - int VC_Wrap_Ioctl_CallCount; - int VC_Wrap_Recv_Return; - int VC_Wrap_Recv_Return1; - int VC_Wrap_Recv_Errno; - int VC_Wrap_Recv_Errno_Value; - int VC_Wrap_Recv_CallCount; -} VC_Platform_Stubs_Returns_t; - - -extern VC_Platform_Stubs_Returns_t VC_Platform_Stubs_Returns; - - -#ifdef __cplusplus -} -#endif - -#endif /* VC_PLATFORM_STUBS_H */ diff --git a/config/obc/ppd/target/apps/vc/unit_test/vc_transmit_udp_test/vc_app_custom_transmit_test.c b/config/obc/ppd/target/apps/vc/unit_test/vc_transmit_udp_test/vc_app_custom_transmit_test.c deleted file mode 100644 index 8d6672cb5..000000000 --- a/config/obc/ppd/target/apps/vc/unit_test/vc_transmit_udp_test/vc_app_custom_transmit_test.c +++ /dev/null @@ -1,626 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ - -#include "vc_app_custom_transmit_test.h" -#include "vc_custom_transmit_test_utils.h" -#include "vc_platform_stubs.h" -#include "vc_platform_cfg.h" -#include -#include -#include - -#include "uttest.h" -#include "ut_osapi_stubs.h" -#include "ut_cfe_sb_stubs.h" -#include "ut_cfe_sb_hooks.h" -#include "ut_cfe_es_stubs.h" -#include "ut_cfe_es_hooks.h" -#include "ut_cfe_evs_stubs.h" -#include "ut_cfe_evs_hooks.h" -#include "ut_cfe_time_stubs.h" -#include "ut_cfe_psp_memutils_stubs.h" -#include "ut_cfe_tbl_stubs.h" -#include "ut_cfe_fs_stubs.h" -#include "ut_cfe_time_stubs.h" - - -/************************************************************************** - * Tests for Custom Transmit Layer - **************************************************************************/ - -/************************************************************************** - * Tests for VC_EnableChannel() - **************************************************************************/ - -/** - * Test VC_EnableChannel() through VC_Init_CustomTransmitters - * fail already initialized error - */ -void Test_VC_Custom_InitTransmit_AlreadyInitialized(void) -{ - int32 result = 0; - int32 expected = -1; - - char returnString[128]; - snprintf(returnString, 128, "VC UDP for channel %u already enabled.", 0); - - /* Set test channel 0 to enabled */ - VC_AppCustomData.Channel[0].Mode = VC_CHANNEL_ENABLED; - - /* Set a socket file descriptor to a non 0 value */ - VC_AppCustomData.Channel[0].SocketFd = 1; - - /* Call the function under test */ - result = VC_Init_CustomTransmitters(); - - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); - UtAssert_True(result == expected,"VC_Init_CustomTransmitters() did not return an error"); - - UtAssert_True(VC_AppCustomData.Channel[0].Mode == VC_CHANNEL_DISABLED, - "VC_Init_CustomTransmitters() did not set mode to disabled"); - UtAssert_EventSent(VC_SOCKET_ERR_EID, CFE_EVS_ERROR, returnString, - "VC_EnableChannel() failed to raise an event"); -} - -/** - * Test VC_EnableChannel() invalid channel id - */ -void Test_VC_Custom_InitTransmit_ChannelId(void) -{ - int32 result = 0; - int32 expected = -1; - - char returnString[128]; - snprintf(returnString, 128, "VC ChannelID (%u) invalid.", (VC_MAX_OUTPUT_CHANNELS + 1)); - - /* Set test channel 0 to enabled */ - VC_AppCustomData.Channel[0].Mode = VC_CHANNEL_ENABLED; - - /* Call the function under test */ - result = VC_EnableChannel((VC_MAX_OUTPUT_CHANNELS + 1)); - - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); - UtAssert_True(result == expected,"VC_Init_CustomTransmitters() did not return an error"); - UtAssert_EventSent(VC_SOCKET_ERR_EID, CFE_EVS_ERROR, returnString, - "VC_EnableChannel() failed to raise an event"); -} - -/** - * Test VC_EnableChannel() through VC_Init_CustomTransmitters - * fail socket creation - */ -void Test_VC_Custom_InitTransmit_Socket(void) -{ - int32 result = 0; - int32 expected = -1; - - char returnString[128]; - snprintf(returnString, 128, "VC socket errno: %i on channel %u", 8, 0); - - /* Set test channel 0 to enabled */ - VC_AppCustomData.Channel[0].Mode = VC_CHANNEL_ENABLED; - - /* Set socket call to fail */ - VC_Platform_Stubs_Returns.VC_Wrap_Socket_Return = -1; - - /* Set errno for socket call */ - VC_Platform_Stubs_Returns.VC_Wrap_Socket_Errno = 1; - VC_Platform_Stubs_Returns.VC_Wrap_Socket_Errno_Value = 8; - - /* Call the function under test */ - result = VC_Init_CustomTransmitters(); - - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); - UtAssert_True(result == expected,"VC_Init_CustomTransmitters() did not return an error"); - UtAssert_True(VC_AppCustomData.Channel[0].SocketFd == -1, - "VC_EnableChannel() failed to return an error"); - UtAssert_True(VC_AppCustomData.Channel[0].Mode == VC_CHANNEL_DISABLED, - "VC_Init_CustomTransmitters() did not set mode to disabled"); - UtAssert_EventSent(VC_SOCKET_ERR_EID, CFE_EVS_ERROR, returnString, - "VC_EnableChannel() failed to raise an event"); -} - -/** - * Test VC_EnableChannel() through VC_Init_CustomTransmitters - * fail invalid address - */ -void Test_VC_Custom_InitTransmit_InvalidAddress(void) -{ - int32 result = 0; - int32 expected = -1; - - char returnString[128]; - snprintf(returnString, 128, "VC inet_aton errno: %i on channel %u", 88, 0); - - /* Set test channel 0 to enabled */ - VC_AppCustomData.Channel[0].Mode = VC_CHANNEL_ENABLED; - - /* Set an invalid address for inet_aton */ - strcpy(VC_AppCustomData.Channel[0].MyIP, "test"); - - /* Call the function under test */ - result = VC_Init_CustomTransmitters(); - - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); - UtAssert_True(result == expected,"VC_Init_CustomTransmitters() did not return an error"); - UtAssert_True(VC_AppCustomData.Channel[0].Mode == VC_CHANNEL_DISABLED, - "VC_Init_CustomTransmitters() did not set mode to disabled"); - UtAssert_EventSent(VC_SOCKET_ERR_EID, CFE_EVS_ERROR, returnString, - "VC_EnableChannel() failed to raise an event"); -} - -/** - * Test VC_EnableChannel() through VC_Init_CustomTransmitters - * fail bind - */ -void Test_VC_Custom_InitTransmit_Bind(void) -{ - int32 result = 0; - int32 expected = -1; - - char returnString[128]; - snprintf(returnString, 128, "VC bind errno: %i on channel %u", 8, 0); - - /* Set test channel 0 to enabled */ - VC_AppCustomData.Channel[0].Mode = VC_CHANNEL_ENABLED; - - /* Set an valid address for inet_aton */ - strcpy(VC_AppCustomData.Channel[0].MyIP, "1.1.1.1"); - - /* Set socket call to fail */ - VC_Platform_Stubs_Returns.VC_Wrap_Bind_Return = -1; - - /* Set errno for socket call */ - VC_Platform_Stubs_Returns.VC_Wrap_Bind_Errno = 1; - VC_Platform_Stubs_Returns.VC_Wrap_Bind_Errno_Value = 8; - - /* Call the function under test */ - result = VC_Init_CustomTransmitters(); - - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); - UtAssert_True(result == expected,"VC_Init_CustomTransmitters() did not return an error"); - UtAssert_True(VC_AppCustomData.Channel[0].Mode == VC_CHANNEL_DISABLED, - "VC_Init_CustomTransmitters() did not set mode to disabled"); - UtAssert_EventSent(VC_SOCKET_ERR_EID, CFE_EVS_ERROR, returnString, - "VC_EnableChannel() failed to raise an event"); -} - -/** - * Test VC_EnableChannel() through VC_Init_CustomTransmitters nominal - */ -void Test_VC_Custom_InitTransmit_Nominal(void) -{ - int32 result = -1; - int32 expected = 0; - - char returnString[128]; - snprintf(returnString, 128, "VC UDP output enabled channel %u to %s:%u", 0, "test",0); - - /* Set test channel 0 to enabled */ - VC_AppCustomData.Channel[0].Mode = VC_CHANNEL_ENABLED; - - /* Set an valid address for inet_aton */ - strcpy(VC_AppCustomData.Channel[0].MyIP, "1.1.1.1"); - - strcpy(VC_AppCustomData.Channel[0].DestIP, "test"); - VC_AppCustomData.Channel[0].DestPort = 0; - - /* Call the function under test */ - result = VC_Init_CustomTransmitters(); - - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); - UtAssert_True(result == expected,"VC_Init_CustomTransmitters() did not succeed"); - UtAssert_True(VC_AppCustomData.Channel[0].Mode == VC_CHANNEL_ENABLED, - "VC_Init_CustomTransmitters() did not mode to disabled"); - UtAssert_EventSent(VC_CHA_INF_EID, CFE_EVS_INFORMATION, returnString, - "VC_EnableChannel() failed to raise an event"); -} - -/************************************************************************** - * Tests for VC_Transmit_InitData() - **************************************************************************/ - -/** - * Test VC_Transmit_InitData() nominal - * Note: currently no way to fail this function - */ -void Test_VC_Transmit_InitData_Nominal(void) -{ - int32 result = -1; - int32 expected = CFE_SUCCESS; - - /* Call the function under test */ - result = VC_Transmit_InitData(); - - /* Verify the results */ - UtAssert_True(result == expected,"VC_Transmit_InitData() did not succeed"); -} - - -/************************************************************************** - * Tests for VC_Init_CustomTransmitters() - **************************************************************************/ - -/************************************************************************** - * Tests for VC_Transmit_Init() - **************************************************************************/ - - /** - * Test VC_Transmit_Init() fail VC_Init_CustomTransmitters - * see reuse (VC_EnableChannel() invalid channel id) - */ -void Test_VC_Custom_TransmitInit_Fail(void) -{ - boolean result = TRUE; - boolean expected = FALSE; - - char returnString[128]; - snprintf(returnString, 128, "VC UDP for channel %u already enabled.", 0); - char returnString1[128]; - snprintf(returnString1, 128, "VC_Transmit_Init Failed"); - - /* Set test channel 0 to enabled */ - VC_AppCustomData.Channel[0].Mode = VC_CHANNEL_ENABLED; - - /* Set a socket file descriptor to a non 0 value */ - VC_AppCustomData.Channel[0].SocketFd = 1; - - /* Call the function under test */ - result = VC_Transmit_Init(); - - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==2,"Event Count = 2"); - UtAssert_True(result == expected,"VC_Init_CustomTransmitters() did not return an error"); - UtAssert_True(VC_AppCustomData.Channel[0].Mode == VC_CHANNEL_DISABLED, - "VC_Init_CustomTransmitters() did not set mode to disabled"); - UtAssert_EventSent(VC_SOCKET_ERR_EID, CFE_EVS_ERROR, returnString, - "VC_EnableChannel() failed to raise an event"); - UtAssert_EventSent(VC_SOCKET_ERR_EID, CFE_EVS_ERROR, returnString1, - "VC_EnableChannel() failed to raise an event"); - -} - -/** - * Test VC_Transmit_Init() nominal - */ -void Test_VC_Custom_TransmitInit_Nominal(void) -{ - boolean result = FALSE; - boolean expected = TRUE; - - char returnString[128]; - snprintf(returnString, 128, "VC UDP output enabled channel %u to %s:%u", 0, "test",0); - - /* Set test channel 0 to enabled */ - VC_AppCustomData.Channel[0].Mode = VC_CHANNEL_ENABLED; - - /* Set an valid address for inet_aton */ - strcpy(VC_AppCustomData.Channel[0].MyIP, "1.1.1.1"); - - strcpy(VC_AppCustomData.Channel[0].DestIP, "test"); - VC_AppCustomData.Channel[0].DestPort = 0; - - /* Call the function under test */ - result = VC_Transmit_Init(); - - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); - UtAssert_True(result == expected,"VC_Init_CustomTransmitters() did not succeed"); - UtAssert_True(VC_AppCustomData.Channel[0].Mode == VC_CHANNEL_ENABLED, - "VC_Init_CustomTransmitters() did not set mode to disabled"); - UtAssert_EventSent(VC_CHA_INF_EID, CFE_EVS_INFORMATION, returnString, - "VC_EnableChannel() failed to raise an event"); -} - -/************************************************************************** - * Tests for VC_SendData() - **************************************************************************/ - -/** - * Test VC_SendData() invalid channel id - */ -void Test_VC_Custom_SendData_ChannelId(void) -{ - int32 result = -1; - int32 expected = 0; - - /* Call the function under test */ - result = VC_SendData((VC_MAX_OUTPUT_CHANNELS + 1), "buffer", 77); - - UtAssert_True(result == expected,"VC_SendData() did not return the correct value"); -} - -/** - * Test VC_SendData() sendto fail - */ -void Test_VC_Custom_SendData_SendTo(void) -{ - int32 result = 0; - int32 expected = -1; - - /* Set test channel 0 to enabled */ - VC_AppCustomData.Channel[0].Mode = VC_CHANNEL_ENABLED; - - /* Set sendto call to fail */ - VC_Platform_Stubs_Returns.VC_Wrap_SendTo_Return = -1; - - /* Set errno for sendto call */ - VC_Platform_Stubs_Returns.VC_Wrap_SendTo_Errno = 1; - VC_Platform_Stubs_Returns.VC_Wrap_SendTo_Errno_Value = 8; - - /* Call the function under test */ - result = VC_SendData(0, "buffer", 77); - - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); - /* TODO currently failure does not disable channel. */ - //UtAssert_True(VC_AppCustomData.Channel[0].Mode == VC_CHANNEL_DISABLED, - //"VC_SendData() did not set mode to disabled"); - //UtAssert_True(result == expected,"VC_SendData() did not return the correct value"); - UtAssert_EventSent(VC_SOCKET_ERR_EID, CFE_EVS_ERROR, "", - "VC_SendData() failed to raise an event"); -} - -/** - * Test VC_SendData() sendto fail message too long - */ -void Test_VC_Custom_SendData_SendToTooLong(void) -{ - int32 result = 0; - int32 expected = -1; - - /* Set test channel 0 to enabled */ - VC_AppCustomData.Channel[0].Mode = VC_CHANNEL_ENABLED; - - /* Set sendto call to fail */ - VC_Platform_Stubs_Returns.VC_Wrap_SendTo_Return = -1; - - /* Set errno for sendto call */ - VC_Platform_Stubs_Returns.VC_Wrap_SendTo_Errno = 1; - VC_Platform_Stubs_Returns.VC_Wrap_SendTo_Errno_Value = 90; - - /* Call the function under test */ - result = VC_SendData(0, "buffer", 77); - - UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); - /* TODO currently failure does not disable channel. */ - //UtAssert_True(result == expected,"VC_SendData() did not return the correct value"); - UtAssert_EventSent(VC_SOCKET_ERR_EID, CFE_EVS_ERROR, "", - "VC_SendData() failed to raise an event"); -} - -/** - * Test VC_SendData() nominal - */ -void Test_VC_Custom_SendData_Nominal(void) -{ - int32 result = -1; - int32 expected = 0; - - /* Set test channel 0 to enabled */ - VC_AppCustomData.Channel[0].Mode = VC_CHANNEL_ENABLED; - - /* Call the function under test */ - result = VC_SendData(0, "buffer", 77); - - UtAssert_True(result == expected,"VC_SendData() did not return the correct value"); -} - -/************************************************************************** - * Tests for VC_Address_Verification() - **************************************************************************/ - -/** - * Test VC_Address_Verification() nominal - */ -void Test_VC_Custom_AddressVerification_Nominal(void) -{ - boolean result = FALSE; - boolean expected = TRUE; - - result = VC_Address_Verification("1.1.1.1"); - - UtAssert_True(result == expected,"VC_Address_Verification() did not return the correct value"); -} - -/** - * Test VC_Address_Verification() fail - */ -void Test_VC_Custom_AddressVerification_Fail(void) -{ - boolean result = TRUE; - boolean expected = FALSE; - - result = VC_Address_Verification("test"); - - UtAssert_True(result == expected,"VC_Address_Verification() did not return the correct value"); -} - -/************************************************************************** - * Tests for VC_Update_Destination() - **************************************************************************/ - -/** - * Test VC_Update_Destination() nominal - */ -void Test_VC_Custom_UpdateDestination_Nominal(void) -{ - boolean result = FALSE; - boolean expected = TRUE; - - /* Set test channel 0 to enabled */ - VC_AppCustomData.Channel[0].Mode = VC_CHANNEL_ENABLED; - - result = VC_Update_Destination("test", 5000); - - UtAssert_True(result == expected,"VC_Update_Destination() did not return the correct value"); - UtAssert_StrCmp(VC_AppCustomData.Channel[0].DestIP, "test", - "VC_Update_Destination() did not set a correct value"); - UtAssert_True(VC_AppCustomData.Channel[0].DestPort == 5000, - "VC_Update_Destination() did not set a correct value"); - -} - -/** - * Test VC_Update_Destination() fail - */ -void Test_VC_Custom_UpdateDestination_Fail(void) -{ - /* No way to fail strncpy in update destination at this time. */ - //boolean result = TRUE; - //boolean expected = FALSE; - - //result = VC_Update_Destination("test", 5000); - - //UtAssert_True(result == expected,"VC_Update_Destination() did not return the correct value"); -} - -/************************************************************************** - * Tests for VC_DisableChannel() - **************************************************************************/ - -/** - * Test VC_DisableChannel() fail - */ -void Test_VC_Custom_DisableChannel_Fail(void) -{ - int32 result = 0; - int32 expected = -1; - - result = VC_DisableChannel(0); - - UtAssert_True(result == expected,"VC_DisableChannel() did not return the correct value"); -} - -/** - * Test VC_DisableChannel() through VC_CleanupCustom nominal - */ -void Test_VC_Custom_DisableChannel_Nominal(void) -{ - int32 result = -1; - int32 expected = 0; - - VC_AppCustomData.Channel[0].Mode = VC_CHANNEL_ENABLED; - - result = VC_CleanupCustom(); - - UtAssert_True(result == expected,"VC_DisableChannel() did not return the correct value"); - -} - -/************************************************************************** - * Tests for VC_CleanupCustom() - **************************************************************************/ - -/** - * Test VC_CleanupCustom() fail - * No current way to fail cleanup custom since mode check is the only - * error checking inside of disable channel. Error checking close return - * value will enable a fail condition for cleanup custom - */ - - -/************************************************************************** - * Tests for VC_Transmit_Uninit() - **************************************************************************/ - - /** - * Test VC_Transmit_Uninit() fail - * No current way to fail cleanup custom since mode check is the only - * error checking inside of disable channel. Error checking close return - * value will enable a fail condition for cleanup custom - */ - -/** - * Test VC_Transmit_Uninit() nominal - */ -void Test_VC_Custom_TransmitUninit_Nominal(void) -{ - boolean result = FALSE; - boolean expected = TRUE; - - VC_AppCustomData.Channel[0].Mode = VC_CHANNEL_ENABLED; - - result = VC_Transmit_Uninit(); - - UtAssert_True(result == expected,"VC_Transmit_Uninit() did not return the correct value"); - -} - - -/************************************************************************** - * Rollup Test Cases - **************************************************************************/ -void VC_Custom_App_Transmit_Test_AddTestCases(void) -{ -/************************************************************************** - * Tests for Custom Transmit Layer - **************************************************************************/ - UtTest_Add(Test_VC_Custom_InitTransmit_AlreadyInitialized, VC_Custom_Transmit_Test_Setup, - VC_Custom_Transmit_Test_TearDown, "Test_VC_Custom_InitTransmit_AlreadyInitialized"); - UtTest_Add(Test_VC_Custom_InitTransmit_ChannelId, VC_Custom_Transmit_Test_Setup, - VC_Custom_Transmit_Test_TearDown, "Test_VC_Custom_InitTransmit_ChannelId"); - UtTest_Add(Test_VC_Custom_InitTransmit_Socket, VC_Custom_Transmit_Test_Setup, - VC_Custom_Transmit_Test_TearDown, "Test_VC_Custom_InitTransmit_Socket"); - UtTest_Add(Test_VC_Custom_InitTransmit_InvalidAddress, VC_Custom_Transmit_Test_Setup, - VC_Custom_Transmit_Test_TearDown, "Test_VC_Custom_InitTransmit_InvalidAddress"); - UtTest_Add(Test_VC_Custom_InitTransmit_Bind, VC_Custom_Transmit_Test_Setup, - VC_Custom_Transmit_Test_TearDown, "Test_VC_Custom_InitTransmit_Bind"); - UtTest_Add(Test_VC_Custom_InitTransmit_Nominal, VC_Custom_Transmit_Test_Setup, - VC_Custom_Transmit_Test_TearDown, "Test_VC_Custom_InitTransmit_Nominal"); - UtTest_Add(Test_VC_Transmit_InitData_Nominal, VC_Custom_Transmit_Test_Setup, - VC_Custom_Transmit_Test_TearDown, "Test_VC_Transmit_InitData_Nominal"); - UtTest_Add(Test_VC_Custom_TransmitInit_Fail, VC_Custom_Transmit_Test_Setup, - VC_Custom_Transmit_Test_TearDown, "Test_VC_Custom_TransmitInit_Fail"); - UtTest_Add(Test_VC_Custom_TransmitInit_Nominal, VC_Custom_Transmit_Test_Setup, - VC_Custom_Transmit_Test_TearDown, "Test_VC_Custom_TransmitInit_Nominal"); - UtTest_Add(Test_VC_Custom_SendData_ChannelId, VC_Custom_Transmit_Test_Setup, - VC_Custom_Transmit_Test_TearDown, "Test_VC_Custom_SendData_ChannelId"); - UtTest_Add(Test_VC_Custom_SendData_SendTo, VC_Custom_Transmit_Test_Setup, - VC_Custom_Transmit_Test_TearDown, "Test_VC_Custom_SendData_SendTo"); - UtTest_Add(Test_VC_Custom_SendData_SendToTooLong, VC_Custom_Transmit_Test_Setup, - VC_Custom_Transmit_Test_TearDown, "Test_VC_Custom_SendData_SendToTooLong"); - UtTest_Add(Test_VC_Custom_SendData_Nominal, VC_Custom_Transmit_Test_Setup, - VC_Custom_Transmit_Test_TearDown, "Test_VC_Custom_SendData_Nominal"); - UtTest_Add(Test_VC_Custom_AddressVerification_Nominal, VC_Custom_Transmit_Test_Setup, - VC_Custom_Transmit_Test_TearDown, "Test_VC_Custom_AddressVerification_Nominal"); - UtTest_Add(Test_VC_Custom_AddressVerification_Fail, VC_Custom_Transmit_Test_Setup, - VC_Custom_Transmit_Test_TearDown, "Test_VC_Custom_AddressVerification_Fail"); - UtTest_Add(Test_VC_Custom_UpdateDestination_Nominal, VC_Custom_Transmit_Test_Setup, - VC_Custom_Transmit_Test_TearDown, "Test_VC_Custom_UpdateDestination_Nominal"); - UtTest_Add(Test_VC_Custom_UpdateDestination_Fail, VC_Custom_Transmit_Test_Setup, - VC_Custom_Transmit_Test_TearDown, "Test_VC_Custom_UpdateDestination_Fail"); - UtTest_Add(Test_VC_Custom_DisableChannel_Fail, VC_Custom_Transmit_Test_Setup, - VC_Custom_Transmit_Test_TearDown, "Test_VC_Custom_DisableChannel_Fail"); - UtTest_Add(Test_VC_Custom_DisableChannel_Nominal, VC_Custom_Transmit_Test_Setup, - VC_Custom_Transmit_Test_TearDown, "Test_VC_Custom_DisableChannel_Nominal"); - UtTest_Add(Test_VC_Custom_TransmitUninit_Nominal, VC_Custom_Transmit_Test_Setup, - VC_Custom_Transmit_Test_TearDown, "Test_VC_Custom_TransmitUninit_Nominal"); -} diff --git a/config/obc/ppd/target/apps/vc/unit_test/vc_transmit_udp_test/vc_app_custom_transmit_test.h b/config/obc/ppd/target/apps/vc/unit_test/vc_transmit_udp_test/vc_app_custom_transmit_test.h deleted file mode 100644 index 732cc8812..000000000 --- a/config/obc/ppd/target/apps/vc/unit_test/vc_transmit_udp_test/vc_app_custom_transmit_test.h +++ /dev/null @@ -1,48 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ - -#ifndef VC_APP_CUSTOM_TRANSMIT_TEST_H -#define VC_APP_CUSTOM_TRANSMIT_TEST_H - -#ifdef __cplusplus -extern "C" { -#endif - -void VC_Custom_App_Transmit_Test_AddTestCases(void); - - -#ifdef __cplusplus -} -#endif - -#endif /* VC_APP_CUSTOM_TRANSMIT_TEST_H */ diff --git a/config/obc/ppd/target/apps/vc/unit_test/vc_transmit_udp_test/vc_custom_transmit_test_utils.c b/config/obc/ppd/target/apps/vc/unit_test/vc_transmit_udp_test/vc_custom_transmit_test_utils.c deleted file mode 100644 index 5c3a803bb..000000000 --- a/config/obc/ppd/target/apps/vc/unit_test/vc_transmit_udp_test/vc_custom_transmit_test_utils.c +++ /dev/null @@ -1,76 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ - -#include "vc_custom_transmit_test_utils.h" -#include "vc_platform_stubs.h" - -#include "ut_cfe_evs_hooks.h" -#include "ut_cfe_time_stubs.h" -#include "ut_cfe_psp_memutils_stubs.h" -#include "ut_cfe_tbl_stubs.h" -#include "ut_cfe_tbl_hooks.h" -#include "ut_cfe_fs_stubs.h" -#include "ut_cfe_time_stubs.h" -#include "ut_osapi_stubs.h" -#include "ut_osfileapi_stubs.h" -#include "ut_cfe_sb_stubs.h" -#include "ut_cfe_es_stubs.h" -#include "ut_cfe_evs_stubs.h" - -#include - -/* - * Function Definitions - */ - -void VC_Custom_Transmit_Test_Setup(void) -{ - /* initialize test environment to default state for every test */ - - CFE_PSP_MemSet(&VC_AppCustomData, 0x00, sizeof(VC_AppCustomData_t)); - - Ut_CFE_EVS_Reset(); - Ut_CFE_FS_Reset(); - Ut_CFE_TIME_Reset(); - Ut_CFE_TBL_Reset(); - Ut_CFE_SB_Reset(); - Ut_CFE_ES_Reset(); - Ut_OSAPI_Reset(); - Ut_OSFILEAPI_Reset(); -} - -void VC_Custom_Transmit_Test_TearDown(void) { - - CFE_PSP_MemSet(&VC_AppCustomData, 0x00, sizeof(VC_AppCustomData_t)); - CFE_PSP_MemSet(&VC_Platform_Stubs_Returns, 0x00, sizeof(VC_Platform_Stubs_Returns_t)); -} diff --git a/config/obc/ppd/target/apps/vc/unit_test/vc_transmit_udp_test/vc_custom_transmit_test_utils.h b/config/obc/ppd/target/apps/vc/unit_test/vc_transmit_udp_test/vc_custom_transmit_test_utils.h deleted file mode 100644 index 81cd02415..000000000 --- a/config/obc/ppd/target/apps/vc/unit_test/vc_transmit_udp_test/vc_custom_transmit_test_utils.h +++ /dev/null @@ -1,61 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ - -#ifndef VC_CUSTOM_TRANSMIT_TEST_UTILS_H -#define VC_CUSTOM_TRANSMIT_TEST_UTILS_H - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * Includes - */ - -#include "vc_transmit_udp.h" - - -extern VC_AppCustomData_t VC_AppCustomData; -/* - * Function Definitions - */ - -void VC_Custom_Transmit_Test_Setup(void); -void VC_Custom_Transmit_Test_TearDown(void); - - -#ifdef __cplusplus -} -#endif - -#endif /* VC_CUSTOM_TRANSMIT_TEST_UTILS_H */ diff --git a/config/obc/ppd/target/apps/vm/CMakeLists.txt b/config/obc/ppd/target/apps/vm/CMakeLists.txt deleted file mode 100644 index 6a488f231..000000000 --- a/config/obc/ppd/target/apps/vm/CMakeLists.txt +++ /dev/null @@ -1,9 +0,0 @@ -set(APP_NAME vm) - -buildliner_add_table( - ${APP_NAME} - NAME vm_config - SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/tables/vm_config.c -) - -buildliner_add_app_unit_test_src(${APP_NAME} SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/tables/vm_config.c) diff --git a/config/obc/ppd/target/apps/vm/tables/vm_config.c b/config/obc/ppd/target/apps/vm/tables/vm_config.c deleted file mode 100644 index 77e1b19fe..000000000 --- a/config/obc/ppd/target/apps/vm/tables/vm_config.c +++ /dev/null @@ -1,32 +0,0 @@ -/* -** Include Files -*/ -#include "cfe_tbl_filedef.h" -#include "vm_tbldefs.h" - -static OS_USED CFE_TBL_FileDef_t CFE_TBL_FileDef = -{ - "VM_ConfigTbl", "VM.CONFIG_TBL", "VM default config table", - "vm_config.tbl", (sizeof(VM_ConfigTbl_t)) -}; - -/* Default ULR config table data */ -VM_ConfigTbl_t VM_ConfigTbl = -{ - /* COM_RC_IN_MODE */ 2, - /* COM_ARM_SWISBTN */ 0, - /* COM_RC_ARM_HYST */ 1000, - /* MAV_SYS_ID */ 1, - /* MAV_COMP_ID */ 1, - /* COM_RC_LOSS_T */ 2, - /* COM_LOW_BAT_ACT */ 1, - /* COM_HOME_H_T */ 5.0, - /* COM_HOME_V_T */ 10.0, - /* HOME_POS_ALT_PADDING */ 0.0 - -}; - -/*======================================================================================= -** End of file vm_config.c -**=====================================================================================*/ - diff --git a/config/obc/ppd/target/cfe_es_startup.scr b/config/obc/ppd/target/cfe_es_startup.scr index 1f66851cd..3e305cfdd 100644 --- a/config/obc/ppd/target/cfe_es_startup.scr +++ b/config/obc/ppd/target/cfe_es_startup.scr @@ -1,18 +1,9 @@ CFE_LIB, /cf/apps/CFS_LIB.so, CFS_LibInit, CFS_LIB, 0, 0, 0x0, 0, 2; CFE_LIB, /cf/apps/PRMLIB.so, PRMLIB_LibInit, PRMLIB, 0, 0, 0x0, 0, 2; CFE_LIB, /cf/apps/PX4LIB.so, PX4LIB_LibInit, PX4LIB, 0, 0, 0x0, 0, 2; -CFE_APP, /cf/apps/AMC.so, AMC_AppMain, AMC, 43, 327680, 0x0, 0, 2; -CFE_APP, /cf/apps/SENS.so, SENS_AppMain, SENS, 52, 327680, 0x0, 0, 2; -CFE_APP, /cf/apps/MPU9250.so, MPU9250_AppMain, MPU9250, 46, 327680, 0x0, 0, 2; -CFE_APP, /cf/apps/HMC5883.so, HMC5883_AppMain, HMC5883, 49, 327680, 0x0, 0, 2; -CFE_APP, /cf/apps/MS5611.so, MS5611_AppMain, MS5611, 82, 327680, 0x0, 0, 2; -CFE_APP, /cf/apps/ULR.so, ULR_AppMain, ULR, 67, 327680, 0x0, 0, 2; -CFE_APP, /cf/apps/MAC.so, MAC_AppMain, MAC, 55, 327680, 0x0, 0, 4; -CFE_APP, /cf/apps/GPS.so, GPS_AppMain, GPS, 97, 327680, 0x0, 0, 2; CFE_APP, /cf/apps/CI.so, CI_AppMain, CI, 115, 327680, 0x0, 0, 2; CFE_APP, /cf/apps/TO.so, TO_AppMain, TO, 124, 327680, 0x0, 0, 2; CFE_APP, /cf/apps/CF.so, CF_AppMain, CF, 157, 327680, 0x0, 0, 2; -CFE_APP, /cf/apps/BAT.so, BAT_AppMain, BAT, 106, 327680, 0x0, 0, 2; CFE_APP, /cf/apps/DS.so, DS_AppMain, DS, 190, 327680, 0x0, 0, 2; CFE_APP, /cf/apps/FM.so, FM_AppMain, FM, 163, 327680, 0x0, 0, 2; CFE_APP, /cf/apps/HK.so, HK_AppMain, HK, 166, 327680, 0x0, 0, 2; @@ -21,19 +12,8 @@ CFE_APP, /cf/apps/MM.so, MM_AppMain, MM, 172, 327680, 0x0, 0, CFE_APP, /cf/apps/SC.so, SC_AppMain, SC, 175, 327680, 0x0, 0, 2; CFE_APP, /cf/apps/MD.so, MD_AppMain, MD, 169, 327680, 0x0, 0, 2; CFE_APP, /cf/apps/EA.so, EA_AppMain, EA, 184, 327680, 0x0, 0, 2; -CFE_APP, /cf/apps/PE.so, PE_AppMain, PE, 76, 327680, 0x0, 0, 4; -CFE_APP, /cf/apps/QAE.so, QAE_AppMain, QAE, 58, 327680, 0x0, 0, 4; -CFE_APP, /cf/apps/MPC.so, MPC_AppMain, MPC, 61, 327680, 0x0, 0, 4; -CFE_APP, /cf/apps/NAV.so, NAV_AppMain, NAV, 100, 327680, 0x0, 0, 4; -CFE_APP, /cf/apps/VM.so, VM_AppMain, VM, 70, 327680, 0x0, 0, 4; CFE_APP, /cf/apps/CS.so, CS_AppMain, CS, 160, 327680, 0x0, 0, 2; -CFE_APP, /cf/apps/RCIN.so, RCIN_AppMain, RCIN, 88, 327680, 0x0, 0, 2; -CFE_APP, /cf/apps/LD.so, LD_AppMain, LD, 73, 327680, 0x0, 0, 4; -CFE_APP, /cf/apps/VC.so, VC_AppMain, VC, 181, 327680, 0x0, 0, 2; -CFE_APP, /cf/apps/RGBLED.so, RGBLED_AppMain, RGBLED, 151, 327680, 0x0, 0, 2; -CFE_APP, /cf/apps/LGC.so, LGC_AppMain, LGC, 148, 327680, 0x0, 0, 2; CFE_APP, /cf/apps/SCH.so, SCH_AppMain, SCH, 34, 40960, 0x0, 0, 2; -CFE_APP, /cf/apps/PRM.so, PRM_AppMain, PRM, 80, 40960, 0x0, 0, 2; !CFE_LIB, /cf/apps/schlib.so, SCH_LibInit, SCH_LIB, 0, 0, 0x0, 0, 2; CFE_APP, /cf/apps/LC.so, LC_AppMain, LC, 178, 327680, 0x0, 0, 2; CFE_APP, /cf/apps/SC.so, SC_AppMain, SC, 175, 327680, 0x0, 0, 2; From 56704abbd72dc50d6b8df4b66d362539eb7d7532 Mon Sep 17 00:00:00 2001 From: Mathew Benson Date: Fri, 29 Jan 2021 22:19:46 -0600 Subject: [PATCH 004/370] Changed common TO configuration to use loopback. --- config/bebop2/sitl/target/CMakeLists.txt | 2 +- config/shared/inc/to_platform_cfg.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/config/bebop2/sitl/target/CMakeLists.txt b/config/bebop2/sitl/target/CMakeLists.txt index 470f7d769..7af37ad14 100644 --- a/config/bebop2/sitl/target/CMakeLists.txt +++ b/config/bebop2/sitl/target/CMakeLists.txt @@ -46,7 +46,7 @@ buildliner_add_app( DEFINITION ${PROJECT_SOURCE_DIR}/apps/sch/fsw/for_build CONFIG ${PROJECT_SOURCE_DIR}/config/shared/apps/sch CONFIG_SOURCES - ${PROJECT_SOURCE_DIR}/config/shared/apps/sch/sch_custom.c + ${PROJECT_SOURCE_DIR}/config/shared/apps/sch/sch_custom_rt.c ) buildliner_add_app( diff --git a/config/shared/inc/to_platform_cfg.h b/config/shared/inc/to_platform_cfg.h index c520a9242..d7cdd8854 100644 --- a/config/shared/inc/to_platform_cfg.h +++ b/config/shared/inc/to_platform_cfg.h @@ -40,7 +40,7 @@ extern "C" { ** only and can be changed by command at runtime. ** */ -#define TO_UDP_CHANNEL_ADDRESS "192.168.2.215" +#define TO_UDP_CHANNEL_ADDRESS "127.0.0.1" /** \tocfg Default telemetry destination UDP port From a206eb02a8c724ac16ce33de0341b9ea097b88d7 Mon Sep 17 00:00:00 2001 From: Mathew Benson Date: Sat, 30 Jan 2021 15:35:59 -0600 Subject: [PATCH 005/370] Fixed the cfs-ccsds.xml file to put the command code back in the right location. --- .../commander/workspace_template/mdb/cfs-ccsds.xml | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/core/base/tools/commander/workspace_template/mdb/cfs-ccsds.xml b/core/base/tools/commander/workspace_template/mdb/cfs-ccsds.xml index d8500668e..22fc13fad 100644 --- a/core/base/tools/commander/workspace_template/mdb/cfs-ccsds.xml +++ b/core/base/tools/commander/workspace_template/mdb/cfs-ccsds.xml @@ -57,17 +57,14 @@ - + + + 1 + + - - - 1 - - - From c2d0a9563e8247603b301f3bdf4d9fa1c357ad3f Mon Sep 17 00:00:00 2001 From: Mathew Benson Date: Sun, 31 Jan 2021 13:56:57 -0600 Subject: [PATCH 006/370] Completed all CFE-ES displays. Use these as a template for all future displays. --- .../Displays/Core/ES/ApplicationControl.opi | 777 +++--- .../Displays/Core/ES/Console.opi | 88 +- .../Displays/Core/ES/DeleteCDS.opi | 28 +- .../Displays/Core/ES/DumpCDSReg.opi | 26 +- .../Displays/Core/ES/Main.opi | 288 +- .../Displays/Core/ES/MemoryPoolViewer.opi | 2345 ++++++----------- .../{PerfUtility.opi => PerfCollection.opi} | 667 ++--- .../Displays/Core/ES/QueryApp.opi | 72 +- .../Displays/Core/ES/RestartApp.opi | 36 +- .../Displays/Core/ES/SetMaxPRCount.opi | 32 +- .../Displays/Core/ES/SetSysLogMode.opi | 40 +- .../Displays/Core/ES/StartApp.opi | 75 +- .../Displays/Core/ES/StartPerfCollection.opi | 76 +- .../Displays/Core/ES/StopApp.opi | 33 +- .../Displays/Core/ES/StopPerfCollection.opi | 60 +- .../Displays/Core/ES/WriteErrLog.opi | 16 +- .../Displays/Core/ES/WriteSysLog.opi | 20 +- .../Core/ES/scripts/PerfSetFilterMask1.js | 14 - .../Displays/Core/ES/scripts/QueryOneApp.js | 4 - .../Displays/Core/ES/scripts/ResetPRResets.js | 4 - .../Displays/Core/ES/scripts/SetLogSysMode.js | 7 - .../Displays/Core/ES/scripts/StopApp.js | 6 - .../workspace_template/Displays/Main.opi | 808 ++---- .../Displays/Resources/send.png | Bin 384 -> 386 bytes 24 files changed, 2404 insertions(+), 3118 deletions(-) rename core/base/tools/commander/workspace_template/Displays/Core/ES/{PerfUtility.opi => PerfCollection.opi} (97%) delete mode 100644 core/base/tools/commander/workspace_template/Displays/Core/ES/scripts/PerfSetFilterMask1.js delete mode 100644 core/base/tools/commander/workspace_template/Displays/Core/ES/scripts/QueryOneApp.js delete mode 100644 core/base/tools/commander/workspace_template/Displays/Core/ES/scripts/ResetPRResets.js delete mode 100644 core/base/tools/commander/workspace_template/Displays/Core/ES/scripts/SetLogSysMode.js delete mode 100644 core/base/tools/commander/workspace_template/Displays/Core/ES/scripts/StopApp.js diff --git a/core/base/tools/commander/workspace_template/Displays/Core/ES/ApplicationControl.opi b/core/base/tools/commander/workspace_template/Displays/Core/ES/ApplicationControl.opi index 974148876..046a97e9c 100644 --- a/core/base/tools/commander/workspace_template/Displays/Core/ES/ApplicationControl.opi +++ b/core/base/tools/commander/workspace_template/Displays/Core/ES/ApplicationControl.opi @@ -15,11 +15,11 @@
6 - 600 + 475 true - + CFE-ES - App Control true @@ -28,65 +28,10 @@ true true Display - 800 + 325 72a2bf2b:1508717c835:-7d33 -1 -1 - - - - QueryApp.opi - - true - - 0 - - - - false - false - - - - false - - - - 0 - 1 - true - - Default - - false - - - - 28 - - Action Button - 0 - - - - - true - true - false - - - - Query - false - $(pv_name) -$(pv_value) - true - Action Button - 81 - 72a2bf2b:1508717c835:-7cf7 - 348 - 19 - false @@ -107,7 +52,7 @@ $(pv_value)
20 2 - Label_1 + Label_15 true @@ -115,17 +60,17 @@ $(pv_value) false - ID + Start Address true 1 true Label - 80 + 104 false - 72a2bf2b:1508717c835:-7c77 - 66 - 19 + 72a2bf2b:1508717c835:-7bba + 24 + 294 @@ -149,13 +94,13 @@ $(pv_value) - 0 - 20 + 3 + 19 0 - Text Update_1 + Text Update_15 0 false - /cfs/cfe_es/CFE_ES_OneAppTlm_t_param.AppInfo.AppID + /cfs/cfe_es/CFE_ES_OneAppTlm_t.Payload.AppInfo.StartAddress 0.0 @@ -173,11 +118,11 @@ $(pv_value) 1 true Text Update - 100 + 169 false - 72a2bf2b:1508717c835:-7c76 - 162 - 19 + 72a2bf2b:1508717c835:-7bb9 + 144 + 294 @@ -199,7 +144,7 @@ $(pv_value)
20 2 - Label_2 + Label_16 true @@ -207,17 +152,17 @@ $(pv_value) false - Type + Exception Action true 1 true Label - 80 + 120 false - 72a2bf2b:1508717c835:-7c6f - 66 - 43 + 72a2bf2b:1508717c835:-7b8a + 8 + 312 @@ -242,12 +187,12 @@ $(pv_value)
0 - 20 + 19 0 - Text Update_2 + inExceptionAction 0 false - /cfs/cfe_es/AppInfo_Type + /cfs/cfe_es/CFE_ES_OneAppTlm_t.Payload.AppInfo.ExceptionAction 0.0 @@ -267,9 +212,9 @@ $(pv_value) Text Update 169 false - 72a2bf2b:1508717c835:-7c6e - 162 - 43 + 72a2bf2b:1508717c835:-7b89 + 144 + 312 @@ -291,7 +236,7 @@ $(pv_value)
20 2 - Label_3 + Label_17 true @@ -299,17 +244,17 @@ $(pv_value) false - Name + Priority true 1 true Label - 80 + 104 false - 72a2bf2b:1508717c835:-7c63 - 66 - 67 + 72a2bf2b:1508717c835:-7b82 + 24 + 330 @@ -333,13 +278,13 @@ $(pv_value) - 0 - 20 + 1 + 19 0 - txtAppName + inPriority 0 false - /cfs/cfe_es/AppInfo_Name + /cfs/cfe_es/CFE_ES_OneAppTlm_t.Payload.AppInfo.Priority 0.0 @@ -357,11 +302,11 @@ $(pv_value) 1 true Text Update - 100 + 169 false - 72a2bf2b:1508717c835:-7c62 - 162 - 67 + 72a2bf2b:1508717c835:-7b81 + 144 + 330 @@ -383,7 +328,7 @@ $(pv_value)
20 2 - Label_4 + Label_18 true @@ -391,17 +336,17 @@ $(pv_value) false - Entry Point + Main Task ID true 1 true Label - 80 + 104 false - 72a2bf2b:1508717c835:-7c5b - 66 - 91 + 72a2bf2b:1508717c835:-7b7a + 24 + 348 @@ -425,13 +370,13 @@ $(pv_value) - 0 - 20 + 1 + 19 0 - Text Update_4 + Text Update_18 0 false - /cfs/cfe_es/AppInfo_EntryPoint + /cfs/cfe_es/CFE_ES_OneAppTlm_t.Payload.AppInfo.MainTaskId 0.0 @@ -451,9 +396,9 @@ $(pv_value) Text Update 169 false - 72a2bf2b:1508717c835:-7c5a - 162 - 91 + 72a2bf2b:1508717c835:-7b79 + 144 + 348 @@ -475,7 +420,7 @@ $(pv_value)
20 2 - Label_5 + Label_19 true @@ -483,17 +428,17 @@ $(pv_value) false - File Name + Execution Counter true 1 true Label - 80 + 140 false - 72a2bf2b:1508717c835:-7c53 - 66 - 115 + 72a2bf2b:1508717c835:-7b72 + -12 + 366 @@ -518,12 +463,12 @@ $(pv_value)
1 - 20 + 19 0 - Text Update_5 + Text Update_19 0 false - /cfs/cfe_es/AppInfo_FileName + /cfs/cfe_es/CFE_ES_OneAppTlm_t.Payload.AppInfo.ExecutionCounter 0.0 @@ -543,9 +488,9 @@ $(pv_value) Text Update 169 false - 72a2bf2b:1508717c835:-7c52 - 162 - 115 + 72a2bf2b:1508717c835:-7b71 + 144 + 366 @@ -567,7 +512,7 @@ $(pv_value) 20 2 - Label_6 + Label_20 true @@ -575,17 +520,17 @@ $(pv_value) false - Stack Size + Main Task Name true 1 true Label - 80 + 140 false - 72a2bf2b:1508717c835:-7c1d - 66 - 139 + 72a2bf2b:1508717c835:-7b5a + -12 + 384 @@ -609,13 +554,13 @@ $(pv_value) - 1 - 20 + 0 + 19 0 - Text Update_6 + Text Update_20 0 false - /cfs/cfe_es/AppInfo_StackSize + /cfs/cfe_es/CFE_ES_OneAppTlm_t.Payload.AppInfo.MainTaskName 0.0 @@ -633,11 +578,11 @@ $(pv_value) 1 true Text Update - 100 + 169 false - 72a2bf2b:1508717c835:-7c1c - 162 - 139 + 72a2bf2b:1508717c835:-7b59 + 144 + 384 @@ -659,7 +604,7 @@ $(pv_value) 20 2 - Label_7 + Label_21 true @@ -667,17 +612,17 @@ $(pv_value) false - Module ID + Child Tasks true 1 true Label - 92 + 140 false - 72a2bf2b:1508717c835:-7c15 - 54 - 163 + 72a2bf2b:1508717c835:-7b4f + -12 + 401 @@ -702,12 +647,12 @@ $(pv_value) 1 - 20 + 19 0 - Text Update_7 + Text Update_21 0 false - /cfs/cfe_es/AppInfo_ModuleID + /cfs/cfe_es/CFE_ES_OneAppTlm_t.Payload.AppInfo.NumOfChildTasks 0.0 @@ -725,11 +670,11 @@ $(pv_value) 1 true Text Update - 100 + 169 false - 72a2bf2b:1508717c835:-7c14 - 162 - 163 + 72a2bf2b:1508717c835:-7b4e + 144 + 402 @@ -751,7 +696,7 @@ $(pv_value) 20 2 - Label_8 + Label_1 true @@ -759,17 +704,17 @@ $(pv_value) false - Valid Addresses + ID true 1 true Label - 120 + 80 false - 72a2bf2b:1508717c835:-7c0d - 26 - 187 + -2dc23c5:177557ff444:-7096 + 49 + 60 @@ -793,13 +738,13 @@ $(pv_value) - 1 - 20 + 0 + 19 0 - Text Update_8 + Text Update_1 0 false - /cfs/cfe_es/AppInfo_AddressesAreValid + /cfs/cfe_es/CFE_ES_OneAppTlm_t.Payload.AppInfo.AppId 0.0 @@ -817,11 +762,11 @@ $(pv_value) 1 true Text Update - 100 + 169 false - 72a2bf2b:1508717c835:-7c0c - 162 - 187 + -2dc23c5:177557ff444:-7095 + 144 + 60 @@ -843,7 +788,7 @@ $(pv_value) 20 2 - Label_9 + Label_2 true @@ -851,17 +796,17 @@ $(pv_value) false - Code Address + Type true 1 true Label - 104 + 80 false - 72a2bf2b:1508717c835:-7c05 - 42 - 211 + -2dc23c5:177557ff444:-708a + 48 + 78 @@ -885,13 +830,13 @@ $(pv_value) - 3 - 20 + 0 + 19 0 - Text Update_9 + Text Update_2 0 false - /cfs/cfe_es/AppInfo_CodeAddress + /cfs/cfe_es/CFE_ES_OneAppTlm_t.Payload.AppInfo.Type 0.0 @@ -909,11 +854,11 @@ $(pv_value) 1 true Text Update - 100 + 169 false - 72a2bf2b:1508717c835:-7c04 - 162 - 211 + -2dc23c5:177557ff444:-7089 + 144 + 78 @@ -935,7 +880,7 @@ $(pv_value) 20 2 - Label_10 + Label_3 true @@ -943,17 +888,17 @@ $(pv_value) false - Code Size + Name true 1 true Label - 104 + 80 false - 72a2bf2b:1508717c835:-7bea - 42 - 235 + -2dc23c5:177557ff444:-707e + 48 + 42 @@ -977,13 +922,13 @@ $(pv_value) - 1 - 20 + 0 + 19 0 - Text Update_10 + inAppName 0 false - /cfs/cfe_es/AppInfo_CodeSize + /cfs/cfe_es/CFE_ES_OneAppTlm_t.Payload.AppInfo.Name 0.0 @@ -1001,11 +946,11 @@ $(pv_value) 1 true Text Update - 100 + 169 false - 72a2bf2b:1508717c835:-7be9 - 162 - 235 + -2dc23c5:177557ff444:-707d + 144 + 42 @@ -1027,7 +972,7 @@ $(pv_value) 20 2 - Label_11 + Label_4 true @@ -1035,17 +980,17 @@ $(pv_value) false - Data Address + Entry Point true 1 true Label - 104 + 80 false - 72a2bf2b:1508717c835:-7bda - 42 - 259 + -2dc23c5:177557ff444:-7072 + 48 + 96 @@ -1069,13 +1014,13 @@ $(pv_value) - 3 - 20 + 0 + 19 0 - Text Update_11 + inEntryPoint 0 false - /cfs/cfe_es/AppInfo_DataAddress + /cfs/cfe_es/CFE_ES_OneAppTlm_t.Payload.AppInfo.EntryPoint 0.0 @@ -1093,11 +1038,11 @@ $(pv_value) 1 true Text Update - 100 + 169 false - 72a2bf2b:1508717c835:-7bd9 - 162 - 259 + -2dc23c5:177557ff444:-7071 + 144 + 96 @@ -1119,7 +1064,7 @@ $(pv_value) 20 2 - Label_12 + Label_5 true @@ -1127,17 +1072,17 @@ $(pv_value) false - Data Size + File Name true 1 true Label - 104 + 80 false - 72a2bf2b:1508717c835:-7bd2 - 42 - 283 + -2dc23c5:177557ff444:-7066 + 48 + 114 @@ -1162,12 +1107,12 @@ $(pv_value) 1 - 20 + 19 0 - Text Update_12 + inFileName 0 false - /cfs/cfe_es/AppInfo_DataSize + /cfs/cfe_es/CFE_ES_OneAppTlm_t.Payload.AppInfo.FileName 0.0 @@ -1185,11 +1130,11 @@ $(pv_value) 1 true Text Update - 100 + 169 false - 72a2bf2b:1508717c835:-7bd1 - 162 - 283 + -2dc23c5:177557ff444:-7065 + 144 + 114 @@ -1211,7 +1156,7 @@ $(pv_value) 20 2 - Label_13 + Label_6 true @@ -1219,17 +1164,17 @@ $(pv_value) false - BSS Address + Stack Size true 1 true Label - 104 + 92 false - 72a2bf2b:1508717c835:-7bca - 42 - 307 + -2dc23c5:177557ff444:-705a + 36 + 132 @@ -1253,13 +1198,13 @@ $(pv_value) - 3 - 20 + 1 + 19 0 - Text Update_13 + inStackSize 0 false - /cfs/cfe_es/AppInfo_BSSAddress + /cfs/cfe_es/CFE_ES_OneAppTlm_t.Payload.AppInfo.StackSize 0.0 @@ -1277,11 +1222,11 @@ $(pv_value) 1 true Text Update - 100 + 169 false - 72a2bf2b:1508717c835:-7bc9 - 162 - 307 + -2dc23c5:177557ff444:-7059 + 144 + 132 @@ -1303,7 +1248,7 @@ $(pv_value) 20 2 - Label_14 + Label_7 true @@ -1311,17 +1256,17 @@ $(pv_value) false - BSS Size + Module ID true 1 true Label - 104 + 92 false - 72a2bf2b:1508717c835:-7bc2 - 42 - 331 + -2dc23c5:177557ff444:-7048 + 36 + 150 @@ -1346,12 +1291,12 @@ $(pv_value) 1 - 20 + 19 0 - Text Update_14 + Text Update_7 0 false - /cfs/cfe_es/AppInfo_BSSSize + /cfs/cfe_es/CFE_ES_OneAppTlm_t.Payload.AppInfo.ModuleId 0.0 @@ -1369,11 +1314,11 @@ $(pv_value) 1 true Text Update - 100 + 169 false - 72a2bf2b:1508717c835:-7bc1 - 162 - 331 + -2dc23c5:177557ff444:-7047 + 144 + 150 @@ -1395,7 +1340,7 @@ $(pv_value) 20 2 - Label_15 + Label_8 true @@ -1403,17 +1348,17 @@ $(pv_value) false - Start Address + Valid Addresses true 1 true Label - 104 + 120 false - 72a2bf2b:1508717c835:-7bba - 42 - 355 + -2dc23c5:177557ff444:-703c + 8 + 168 @@ -1437,13 +1382,13 @@ $(pv_value) - 3 - 20 + 1 + 19 0 - Text Update_15 + Text Update_8 0 false - /cfs/cfe_es/AppInfo_StartAddress + /cfs/cfe_es/CFE_ES_OneAppTlm_t.Payload.AppInfo.AddressesAreValid 0.0 @@ -1461,11 +1406,11 @@ $(pv_value) 1 true Text Update - 100 + 169 false - 72a2bf2b:1508717c835:-7bb9 - 162 - 355 + -2dc23c5:177557ff444:-703b + 144 + 168 @@ -1487,7 +1432,7 @@ $(pv_value) 20 2 - Label_16 + Label_9 true @@ -1495,7 +1440,7 @@ $(pv_value) false - Exception Action + Code Address true 1 @@ -1503,9 +1448,9 @@ $(pv_value) Label 104 false - 72a2bf2b:1508717c835:-7b8a - 42 - 379 + -2dc23c5:177557ff444:-7030 + 24 + 186 @@ -1529,13 +1474,13 @@ $(pv_value) - 0 - 20 + 3 + 19 0 - Text Update_16 + Text Update_9 0 false - /cfs/cfe_es/AppInfo_ExceptionAction + /cfs/cfe_es/CFE_ES_OneAppTlm_t.Payload.AppInfo.CodeAddress 0.0 @@ -1553,11 +1498,11 @@ $(pv_value) 1 true Text Update - 100 + 169 false - 72a2bf2b:1508717c835:-7b89 - 162 - 379 + -2dc23c5:177557ff444:-702f + 144 + 186 @@ -1579,7 +1524,7 @@ $(pv_value) 20 2 - Label_17 + Label_10 true @@ -1587,7 +1532,7 @@ $(pv_value) false - Priority + Code Size true 1 @@ -1595,9 +1540,9 @@ $(pv_value) Label 104 false - 72a2bf2b:1508717c835:-7b82 - 42 - 403 + -2dc23c5:177557ff444:-7024 + 24 + 204 @@ -1622,12 +1567,12 @@ $(pv_value) 1 - 20 + 19 0 - Text Update_17 + Text Update_10 0 false - /cfs/cfe_es/AppInfo_Priority + /cfs/cfe_es/CFE_ES_OneAppTlm_t.Payload.AppInfo.CodeSize 0.0 @@ -1645,11 +1590,11 @@ $(pv_value) 1 true Text Update - 100 + 169 false - 72a2bf2b:1508717c835:-7b81 - 162 - 403 + -2dc23c5:177557ff444:-7023 + 144 + 204 @@ -1671,7 +1616,7 @@ $(pv_value) 20 2 - Label_18 + Label_11 true @@ -1679,7 +1624,7 @@ $(pv_value) false - Main Task ID + Data Address true 1 @@ -1687,9 +1632,9 @@ $(pv_value) Label 104 false - 72a2bf2b:1508717c835:-7b7a - 42 - 427 + -2dc23c5:177557ff444:-7018 + 24 + 222 @@ -1713,13 +1658,13 @@ $(pv_value) - 1 - 20 + 3 + 19 0 - Text Update_18 + Text Update_11 0 false - /cfs/cfe_es/AppInfo_MainTaskId + /cfs/cfe_es/CFE_ES_OneAppTlm_t.Payload.AppInfo.DataAddress 0.0 @@ -1737,11 +1682,11 @@ $(pv_value) 1 true Text Update - 100 + 169 false - 72a2bf2b:1508717c835:-7b79 - 162 - 427 + -2dc23c5:177557ff444:-7017 + 144 + 222 @@ -1763,7 +1708,7 @@ $(pv_value) 20 2 - Label_19 + Label_12 true @@ -1771,17 +1716,17 @@ $(pv_value) false - Execution Counter + Data Size true 1 true Label - 140 + 104 false - 72a2bf2b:1508717c835:-7b72 - 6 - 451 + -2dc23c5:177557ff444:-700c + 24 + 240 @@ -1806,12 +1751,12 @@ $(pv_value) 1 - 20 + 19 0 - Text Update_19 + Text Update_12 0 false - /cfs/cfe_es/AppInfo_ExecutionCounter + /cfs/cfe_es/CFE_ES_OneAppTlm_t.Payload.AppInfo.DataSize 0.0 @@ -1829,11 +1774,11 @@ $(pv_value) 1 true Text Update - 100 + 169 false - 72a2bf2b:1508717c835:-7b71 - 162 - 451 + -2dc23c5:177557ff444:-700b + 144 + 240 @@ -1855,7 +1800,7 @@ $(pv_value) 20 2 - Label_20 + Label_13 true @@ -1863,17 +1808,17 @@ $(pv_value) false - Main Task Name + BSS Address true 1 true Label - 140 + 104 false - 72a2bf2b:1508717c835:-7b5a - 6 - 474 + -2dc23c5:177557ff444:-7000 + 24 + 258 @@ -1897,13 +1842,13 @@ $(pv_value) - 0 - 20 + 3 + 19 0 - Text Update_20 + Text Update_13 0 false - /cfs/cfe_es/AppInfo_MainTaskName + /cfs/cfe_es/CFE_ES_OneAppTlm_t.Payload.AppInfo.BSSAddress 0.0 @@ -1921,11 +1866,11 @@ $(pv_value) 1 true Text Update - 100 + 169 false - 72a2bf2b:1508717c835:-7b59 - 162 - 474 + -2dc23c5:177557ff444:-6fff + 144 + 258 @@ -1947,7 +1892,7 @@ $(pv_value) 20 2 - Label_21 + Label_14 true @@ -1955,17 +1900,17 @@ $(pv_value) false - Child Tasks + BSS Size true 1 true Label - 140 + 104 false - 72a2bf2b:1508717c835:-7b4f - 6 - 498 + -2dc23c5:177557ff444:-6ff4 + 24 + 276 @@ -1990,12 +1935,12 @@ $(pv_value) 1 - 20 + 19 0 - Text Update_21 + Text Update_14 0 false - /cfs/cfe_es/AppInfo_NumOfChildTasks + /cfs/cfe_es/CFE_ES_OneAppTlm_t.Payload.AppInfo.BSSSize 0.0 @@ -2013,11 +1958,66 @@ $(pv_value) 1 true Text Update - 100 + 169 false - 72a2bf2b:1508717c835:-7b4e - 162 - 498 + -2dc23c5:177557ff444:-6feb + 144 + 276 + + + + + QueryApp.opi + + true + + 1 + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 28 + + Action Button_4 + 0 + + + + + true + true + false + + + + Query + false + $(pv_name) +$(pv_value) + true + Action Button + 66 + -2dc23c5:177557ff444:-6f6e + 33 + 432 @@ -2026,7 +2026,7 @@ $(pv_value) true - 0 + 1 @@ -2051,7 +2051,7 @@ $(pv_value) 28 - Action Button_1 + Action Button_5 0 @@ -2069,26 +2069,26 @@ $(pv_value) $(pv_value) true Action Button - 81 - 72a2bf2b:1508717c835:-78ca - 348 - 54 + 67 + -2dc23c5:177557ff444:-6f66 + 98 + 432 - StopApp.opi + StartApp.opi true - 8 + 1 false false - + false @@ -2102,11 +2102,11 @@ $(pv_value) false - + 28 - Action Button_2 + Action Button_6 0 @@ -2118,31 +2118,32 @@ $(pv_value) - Stop + Start false $(pv_name) $(pv_value) true Action Button - 81 - 72a2bf2b:1508717c835:-78bc - 348 - 120 + 65 + -2dc23c5:177557ff444:-6f5e + 164 + 432 - - scripts/StartApp.js - - false + + StopApp.opi + + true + + 1 false false - + false @@ -2156,11 +2157,11 @@ $(pv_value) false - + 28 - Action Button_3 + Action Button_7 0 @@ -2172,15 +2173,55 @@ $(pv_value) - Start + Stop false $(pv_name) $(pv_value) true Action Button - 81 - 72a2bf2b:1508717c835:-78b2 - 348 - 87 + 65 + -2dc23c5:177557ff444:-6f56 + 228 + 432 + + + + false + + + + + + + 0 + 1 + true + + Default Bold + + + + + 20 + 1 + Label + + + true + true + false + + + Application Control + + true + 1 + true + Label + 158 + false + 14292858:17759dd02e1:-7c65 + 78 + 12 - + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Core/ES/Console.opi b/core/base/tools/commander/workspace_template/Displays/Core/ES/Console.opi index 381acd9f1..eed645523 100644 --- a/core/base/tools/commander/workspace_template/Displays/Core/ES/Console.opi +++ b/core/base/tools/commander/workspace_template/Displays/Core/ES/Console.opi @@ -19,7 +19,7 @@ true - + CFE-ES - Console @@ -35,7 +35,7 @@ var combined = prevOutput + newOutput; display.getWidget('ConsoleDisplay').setPropertyValue('pv_value', combined); ]]> - /cfs/cfe_es/ShellOutput + /cfs/cfe_es/CFE_ES_ShellPacket_t.Payload.ShellOutput true @@ -51,19 +51,18 @@ display.getWidget('ConsoleDisplay').setPropertyValue('pv_value', combined); - scripts/RestartApp.js + true @@ -89,7 +88,7 @@ Yamcs.issueCommand(cmd); 25 - + ../../Resources/send.png Action Button 0 @@ -102,7 +101,7 @@ Yamcs.issueCommand(cmd); - Send Cmd + Send false $(pv_name) $(pv_value) @@ -151,7 +150,7 @@ $(pv_value) false -e1e6812:1508d3700d4:-75c4 276 - 0 + 12 @@ -307,6 +306,63 @@ $(pv_value) 11 561 + + + + + + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 25 + + Action Button_1 + 0 + + + + + true + true + false + + + + Clear + false + $(pv_name) +$(pv_value) + true + Action Button + 73 + -2dc23c5:177557ff444:-6838 + 18 + 6 + false @@ -323,14 +379,14 @@ $(pv_value) 1 true - Default + false 4 - 480 + 481 0 ConsoleDisplay 0 @@ -346,17 +402,17 @@ $(pv_value) false - ###### + $(pv_name) $(pv_value) false 0 true Text Update - 775 + 763 false -e1e6812:1508d3700d4:-7435 18 - 30 + 36 - + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Core/ES/DeleteCDS.opi b/core/base/tools/commander/workspace_template/Displays/Core/ES/DeleteCDS.opi index fecdeb1a7..00f84be09 100644 --- a/core/base/tools/commander/workspace_template/Displays/Core/ES/DeleteCDS.opi +++ b/core/base/tools/commander/workspace_template/Displays/Core/ES/DeleteCDS.opi @@ -19,7 +19,7 @@ true - + CFE-ES - Delete CDS true @@ -28,7 +28,7 @@ true true Display - 400 + 250 72a2bf2b:1508717c835:-7839 -1 -1 @@ -70,7 +70,7 @@ Yamcs.issueCommand(cmd); 25 - + ../../Resources/send.png Action Button 0 @@ -91,8 +91,8 @@ $(pv_value) Action Button 85 72a2bf2b:1508717c835:-77e3 - 153 - 90 + 84 + 78 @@ -128,11 +128,11 @@ $(pv_value) 1 true Label - 80 + 50 false 72a2bf2b:1508717c835:-772d - 24 - 48 + 6 + 42 @@ -147,7 +147,7 @@ $(pv_value) 1 true - Default + Default Bold @@ -171,7 +171,7 @@ $(pv_value) 231 false 72a2bf2b:1508717c835:-76c0 - 80 + 11 12 @@ -226,9 +226,9 @@ $(pv_value) false true Text Input - 259 + 157 -e1e6812:1508d3700d4:-79c8 - 114 - 48 + 66 + 42 - + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Core/ES/DumpCDSReg.opi b/core/base/tools/commander/workspace_template/Displays/Core/ES/DumpCDSReg.opi index 6cf79f226..4a51903af 100644 --- a/core/base/tools/commander/workspace_template/Displays/Core/ES/DumpCDSReg.opi +++ b/core/base/tools/commander/workspace_template/Displays/Core/ES/DumpCDSReg.opi @@ -19,7 +19,7 @@ true - + CFE-ES - Dump CDS Reg true @@ -42,9 +42,7 @@ importPackage(Packages.org.yamcs.studio.data); var fileName =VTypeHelper.getString(display.getWidget('inFileName').getPropertyValue('pv_value')); -var cmd = '/cfs/cfe_es/DumpCDSReg(FileName: ' + fileName + ')'; - -Yamcs.issueCommand(cmd); +Yamcs.issueCommand('/cfs/cfe_es/DumpCDSReg', {'Payload.DumpFilename': fileName}); ]]> true @@ -71,7 +69,7 @@ Yamcs.issueCommand(cmd); 25 - + ../../Resources/send.png Action Button 0 @@ -90,10 +88,10 @@ Yamcs.issueCommand(cmd); $(pv_value) true Action Button - 163 + 181 72a2bf2b:1508717c835:-77e3 - 114 - 90 + 96 + 84 @@ -148,7 +146,7 @@ $(pv_value) 1 true - Default + Default Bold @@ -169,10 +167,10 @@ $(pv_value) 1 true Label - 337 + 361 false 72a2bf2b:1508717c835:-76c0 - 36 + 24 12 @@ -185,7 +183,7 @@ $(pv_value) true - + 1 1 @@ -221,7 +219,7 @@ $(pv_value) 0 true - ###### + $(pv_name) $(pv_value) false @@ -232,4 +230,4 @@ $(pv_value) 114 48 - + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Core/ES/Main.opi b/core/base/tools/commander/workspace_template/Displays/Core/ES/Main.opi index e39e973df..dd5673b0c 100644 --- a/core/base/tools/commander/workspace_template/Displays/Core/ES/Main.opi +++ b/core/base/tools/commander/workspace_template/Displays/Core/ES/Main.opi @@ -19,7 +19,7 @@ true - + CFE_ES - Main true @@ -28,7 +28,7 @@ true true Display - 725 + 735 45ea5983:1502a6e6386:-7f06 -1 -1 @@ -2931,11 +2931,11 @@ $(pv_value) - scripts/NoOp.js + +Yamcs.issueCommand('/cfs/cfe_es/Noop', {});]]> true @@ -2960,7 +2960,7 @@ Yamcs.issueCommand('/cfs/cfe_es/Noop');]]> 20 - + ../../Resources/send.png NoOp 0 @@ -2987,11 +2987,11 @@ $(pv_value) - scripts/ResetCounters.js + +Yamcs.issueCommand('/cfs/cfe_es/Reset', {});]]> true @@ -3016,7 +3016,7 @@ Yamcs.issueCommand('/cfs/cfe_es/Reset');]]> 20 - + ../../Resources/send.png NoOp_1 0 @@ -3043,11 +3043,11 @@ $(pv_value) - scripts/processor_restart.js + +Yamcs.issueCommand('/cfs/cfe_es/Restart', {'Payload.RestartType': 'PROCESSOR_RESET'});]]> true @@ -3072,7 +3072,7 @@ Yamcs.issueCommand('/cfs/cfe_es/Restart', {'Payload.RestartType': PROCESSOR_RESE 23 - + ../../Resources/send.png NoOp_2 0 @@ -3091,19 +3091,19 @@ Yamcs.issueCommand('/cfs/cfe_es/Restart', {'Payload.RestartType': PROCESSOR_RESE $(pv_value) true Action Button - 139 + 179 -9ddfcbe:1507831914f:-73b7 - 507 + 467 545 - scripts/power_restart.js + +Yamcs.issueCommand('/cfs/cfe_es/Restart', {'Payload.RestartType': 'POWERON_RESET'});]]> true @@ -3128,7 +3128,7 @@ Yamcs.issueCommand('/cfs/cfe_es/Restart', {'Payload.RestartType': POWERON_RESET} 23 - + ../../Resources/send.png NoOp_5 0 @@ -3147,9 +3147,9 @@ Yamcs.issueCommand('/cfs/cfe_es/Restart', {'Payload.RestartType': POWERON_RESET} $(pv_value) true Action Button - 139 + 179 -9ddfcbe:1507831914f:-6e95 - 507 + 467 574 @@ -3251,7 +3251,7 @@ $(pv_value) true - 0 + 1 @@ -3377,16 +3377,16 @@ $(pv_value) false 763e00b7:150973f1dd8:-7cf4 213 - 5 + 12 - scripts/ResetCounters.js + +Yamcs.issueCommand('/cfs/cfe_es/DeleteCDS', {});]]> true @@ -3411,7 +3411,7 @@ Yamcs.issueCommand('/cfs/cfe_es/DeleteCDS');]]> 25 - + ../../Resources/send.png NoOp_16 0 @@ -3438,11 +3438,11 @@ $(pv_value) - scripts/ResetCounters.js + +Yamcs.issueCommand('/cfs/cfe_es/ClearSysLog', {});]]> true @@ -3466,9 +3466,9 @@ Yamcs.issueCommand('/cfs/cfe_es/ResetPRCount', {'Count': 10});]]> - 20 - - NoOp_17 + 21 + ../../Resources/send.png + NoOp_19 0 @@ -3480,25 +3480,25 @@ Yamcs.issueCommand('/cfs/cfe_es/ResetPRCount', {'Count': 10});]]> - Reset + Clear false $(pv_name) $(pv_value) true Action Button - 79 - -5b3cf925:1773c9998f6:-7e5f - 645 - 265 + 67 + -5b3cf925:1773c9998f6:-7e4b + 378 + 354 - SetMaxPRCount.opi + WriteSysLog.opi true - 0 + 1 @@ -3521,9 +3521,9 @@ $(pv_value) - 20 + 21 - NoOp_18 + NoOp_20 0 @@ -3535,33 +3535,32 @@ $(pv_value) - Set Max + Dump false $(pv_name) $(pv_value) true Action Button - 80 - -5b3cf925:1773c9998f6:-7e55 - 645 - 284 + 66 + -5b3cf925:1773c9998f6:-7e43 + 307 + 354 - - scripts/ResetCounters.js - - true + + SetSysLogMode.opi + + true + + 1 false false - + false @@ -3575,11 +3574,11 @@ Yamcs.issueCommand('/cfs/cfe_es/ClearSysLog');]]> false - + 21 - NoOp_19 + NoOp_21 0 @@ -3591,25 +3590,25 @@ Yamcs.issueCommand('/cfs/cfe_es/ClearSysLog');]]> - Clear + Change false $(pv_name) $(pv_value) true Action Button - 67 - -5b3cf925:1773c9998f6:-7e4b - 378 - 354 + 66 + -5b3cf925:1773c9998f6:-7e39 + 307 + 391 - WriteSysLog.opi + ApplicationControl.opi true - 0 + 1 @@ -3632,9 +3631,9 @@ $(pv_value) - 21 + 27 - NoOp_20 + NoOp_22 0 @@ -3646,25 +3645,25 @@ $(pv_value) - Dump + Application Control false $(pv_name) $(pv_value) true Action Button - 66 - -5b3cf925:1773c9998f6:-7e43 - 307 - 354 + 172 + -5b3cf925:1773c9998f6:-7e2f + 472 + 342 - SetSysLogMode.opi + Console.opi true - 0 + 1 @@ -3687,9 +3686,9 @@ $(pv_value) - 21 + 27 - NoOp_21 + NoOp_23 0 @@ -3701,25 +3700,25 @@ $(pv_value) - Change + Console false $(pv_name) $(pv_value) true Action Button - 66 - -5b3cf925:1773c9998f6:-7e39 - 307 - 391 + 172 + -5b3cf925:1773c9998f6:-7e25 + 472 + 374 - ApplicationControl.opi + PerfCollection.opi true - 0 + 1 @@ -3744,7 +3743,7 @@ $(pv_value) 27 - NoOp_22 + NoOp_24 0 @@ -3756,25 +3755,25 @@ $(pv_value) - Application Control + Performance Collection false $(pv_name) $(pv_value) true Action Button 172 - -5b3cf925:1773c9998f6:-7e2f + -5b3cf925:1773c9998f6:-7e1d 472 - 342 + 408 - Console.opi + MemoryPoolViewer.opi true - 0 + 1 @@ -3799,7 +3798,7 @@ $(pv_value) 27 - NoOp_23 + NoOp_25 0 @@ -3811,25 +3810,25 @@ $(pv_value) - Console + Memory Pool Viewer false $(pv_name) $(pv_value) true Action Button 172 - -5b3cf925:1773c9998f6:-7e25 + -5b3cf925:1773c9998f6:-7e13 472 - 374 + 443 - PerfUtility.opi + WriteErrLog.opi true - 0 + 1 @@ -3852,9 +3851,9 @@ $(pv_value) - 27 + 21 - NoOp_24 + NoOp_26 0 @@ -3866,32 +3865,33 @@ $(pv_value) - Performance Utility + Dump false $(pv_name) $(pv_value) true Action Button - 172 - -5b3cf925:1773c9998f6:-7e1d - 472 - 408 + 66 + -5b3cf925:1773c9998f6:-7dfb + 307 + 467 - - MemoryPoolViewer.opi - - true - - 0 + + + + true false false - + false @@ -3905,11 +3905,11 @@ $(pv_value) false - + - 27 - - NoOp_25 + 21 + ../../Resources/send.png + NoOp_27 0 @@ -3921,32 +3921,33 @@ $(pv_value) - Memory Pool Viewer + Clear false $(pv_name) $(pv_value) true Action Button - 172 - -5b3cf925:1773c9998f6:-7e13 - 472 - 443 + 67 + -5b3cf925:1773c9998f6:-7df3 + 378 + 467 - - WriteErrLog.opi - - true - - 0 + + + + true false false - + false @@ -3960,11 +3961,11 @@ $(pv_value) false - + - 21 - - NoOp_26 + 20 + ../../Resources/send.png + NoOp_17 0 @@ -3976,33 +3977,32 @@ $(pv_value) - Dump + Reset false $(pv_name) $(pv_value) true Action Button - 66 - -5b3cf925:1773c9998f6:-7dfb - 307 - 467 + 80 + 296ade75:177554ff103:-7de7 + 645 + 246 - - scripts/ResetCounters.js - - true + + SetMaxPRCount.opi + + true + + 1 false false - + false @@ -4016,11 +4016,11 @@ Yamcs.issueCommand('/cfs/cfe_es/ClearERLog(noarg: 0)');]]> false - + - 21 + 20 - NoOp_27 + NoOp_18 0 @@ -4032,15 +4032,15 @@ Yamcs.issueCommand('/cfs/cfe_es/ClearERLog(noarg: 0)');]]> - Clear + Set Max false $(pv_name) $(pv_value) true Action Button - 67 - -5b3cf925:1773c9998f6:-7df3 - 378 - 467 + 80 + 296ade75:177554ff103:-7ddf + 645 + 265 \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Core/ES/MemoryPoolViewer.opi b/core/base/tools/commander/workspace_template/Displays/Core/ES/MemoryPoolViewer.opi index 996c1a11a..7ea66b1fc 100644 --- a/core/base/tools/commander/workspace_template/Displays/Core/ES/MemoryPoolViewer.opi +++ b/core/base/tools/commander/workspace_template/Displays/Core/ES/MemoryPoolViewer.opi @@ -15,11 +15,11 @@ 6 - 600 + 575 true - + CFE-ES - MemPool true @@ -28,7 +28,7 @@ true true Display - 800 + 400 72a2bf2b:1508717c835:-7d33 -1 -1 @@ -42,9 +42,10 @@ importPackage(Packages.org.yamcs.studio.data); var poolHandle =VTypeHelper.getDouble(display.getWidget('inPoolHandle').getPropertyValue('pv_value')); -var cmd = '/cfs/cfe_es/TlmPoolStats(Handle: ' + poolHandle + ')'; - -Yamcs.issueCommand(cmd);]]> +Yamcs.issueCommand('/cfs/cfe_es/TlmPoolStats', { + 'Payload.Application': '', + 'Payload.PoolHandle': poolHandle}); +]]> true @@ -69,7 +70,7 @@ Yamcs.issueCommand(cmd);]]> 28 - + ../../Resources/send.png Action Button 0 @@ -90,8 +91,8 @@ $(pv_value) Action Button 81 72a2bf2b:1508717c835:-7cf7 - 234 - 24 + 228 + 48 @@ -121,7 +122,7 @@ $(pv_value) Handle 0 true - PoolStats_Handle + /cfs/cfe_es/CFE_ES_PoolStatsTlm_t.Payload.PoolHandle 0.0 @@ -142,8 +143,8 @@ $(pv_value) 100 false -3fca34e1:15096a78c93:-7767 - 150 - 85 + 144 + 90 @@ -172,8 +173,8 @@ $(pv_value) 0 Text Update_23 0 - true - PoolStats_Size + false + /cfs/cfe_es/CFE_ES_PoolStatsTlm_t.Payload.PoolStats.PoolSize 0.0 @@ -194,8 +195,8 @@ $(pv_value) 100 false -3fca34e1:15096a78c93:-7766 - 150 - 108 + 144 + 109 @@ -224,8 +225,8 @@ $(pv_value) 0 Text Update_24 0 - true - PoolStats_NumBlocksRequested + false + /cfs/cfe_es/CFE_ES_PoolStatsTlm_t.Payload.PoolStats.NumBlocksRequested 0.0 @@ -246,8 +247,8 @@ $(pv_value) 100 false -3fca34e1:15096a78c93:-7765 - 150 - 132 + 144 + 128 @@ -276,8 +277,8 @@ $(pv_value) 0 Text Update_25 0 - true - PoolStats_CheckErrCtr + false + /cfs/cfe_es/CFE_ES_PoolStatsTlm_t.Payload.PoolStats.CheckErrCtr 0.0 @@ -298,8 +299,8 @@ $(pv_value) 100 false -3fca34e1:15096a78c93:-7764 - 150 - 156 + 144 + 147 @@ -328,8 +329,8 @@ $(pv_value) 0 Text Update_26 0 - true - PoolStats_NumFreeBytes + false + /cfs/cfe_es/CFE_ES_PoolStatsTlm_t.Payload.PoolStats.NumFreeBytes 0.0 @@ -350,40 +351,30 @@ $(pv_value) 100 false -3fca34e1:15096a78c93:-7763 - 150 - 180 + 144 + 166 - + - false false - false - true - + - 1 + 0 1 true Default - false - 0 20 - 0 - Text Update_27 - 0 - true - PoolStats_Block0_Size - - 0.0 + 2 + Label true @@ -391,51 +382,39 @@ $(pv_value) false - true - ###### - $(pv_name) -$(pv_value) - false + Pool Handle + + true 1 true - Text Update - 100 + Label + 80 false - -3fca34e1:15096a78c93:-7762 - 78 - 243 + -3fca34e1:15096a78c93:-7722 + 56 + 90 - + - false false - false - true - + - 1 + 0 1 true Default - false - 0 20 - 0 - Text Update_28 - 0 - true - PoolStats_Block0_NumCreated - - 0.0 + 1 + Label_1 true @@ -443,21 +422,19 @@ $(pv_value) false - true - ###### - $(pv_name) -$(pv_value) - false + Pool Handle + + true 1 true - Text Update - 100 + Label + 80 false - -3fca34e1:15096a78c93:-7761 - 186 - 243 + -3fca34e1:15096a78c93:-76db + 23 + 52 - + false false @@ -465,12 +442,13 @@ $(pv_value) - true + false 1 1 + true Default @@ -479,13 +457,17 @@ $(pv_value) - 0 - 20 + 3 + 25 0 - Text Update_29 + false + 1.7976931348623157E308 + -1.7976931348623157E308 + false + inPoolHandle 0 true - PoolStats_Block0_NumFree + loc://inPoolHandle 0.0 @@ -495,29 +477,26 @@ $(pv_value) false + 0 true - ###### + + $(pv_name) $(pv_value) false - 1 true - Text Update + Text Input 100 - false - -3fca34e1:15096a78c93:-7760 - 294 - 243 + -3fca34e1:15096a78c93:-7697 + 108 + 49 - + - false false - false - true @@ -527,19 +506,12 @@ $(pv_value) Default - false - 0 20 - 0 - Text Update_31 - 0 - true - PoolStats_Block1_NumCreated - - 0.0 + 2 + Label_2 true @@ -547,29 +519,24 @@ $(pv_value) false - true - ###### - $(pv_name) -$(pv_value) - false + Size + + true 1 true - Text Update - 100 + Label + 80 false - -3fca34e1:15096a78c93:-775e - 839 - 243 + -3fca34e1:15096a78c93:-768f + 56 + 109 - + - false false - false - true @@ -579,19 +546,12 @@ $(pv_value) Default - false - 0 20 - 0 - Text Update_36 - 0 - true - PoolStats_Block3_Size - - 0.0 + 2 + Label_3 true @@ -599,29 +559,24 @@ $(pv_value) false - true - ###### - $(pv_name) -$(pv_value) - false + Blocks Requested + + true 1 true - Text Update - 100 + Label + 118 false - -3fca34e1:15096a78c93:-7759 - 839 - 263 + -3fca34e1:15096a78c93:-7681 + 18 + 128 - + - false false - false - true @@ -631,19 +586,12 @@ $(pv_value) Default - false - 0 20 - 0 - Text Update_41 - 0 - true - PoolStats_Block4_NumFree - - 0.0 + 2 + Label_4 true @@ -651,29 +599,24 @@ $(pv_value) false - true - ###### - $(pv_name) -$(pv_value) - false + Check Error Count + + true 1 true - Text Update - 100 + Label + 130 false - -3fca34e1:15096a78c93:-7754 - 839 - 283 + -3fca34e1:15096a78c93:-7677 + 6 + 147 - + - false false - false - true @@ -683,19 +626,12 @@ $(pv_value) Default - false - 0 20 - 0 - Text Update_46 - 0 - true - PoolStats_Block6_NumCreated - - 0.0 + 2 + Label_5 true @@ -703,29 +639,24 @@ $(pv_value) false - true - ###### - $(pv_name) -$(pv_value) - false + Free Bytes + + true 1 true - Text Update - 100 + Label + 118 false - -3fca34e1:15096a78c93:-774f - 839 - 303 + -3fca34e1:15096a78c93:-766d + 18 + 166 - + - false false - false - true @@ -735,19 +666,12 @@ $(pv_value) Default - false - 0 20 - 0 - Text Update_51 - 0 - true - PoolStats_Block8_Size - - 0.0 + 1 + Label_6 true @@ -755,29 +679,24 @@ $(pv_value) false - true - ###### - $(pv_name) -$(pv_value) - false + 0 + + true 1 true - Text Update - 100 + Label + 37 false - -3fca34e1:15096a78c93:-774a - 839 - 323 + -3fca34e1:15096a78c93:-7663 + 23 + 220 - + - false false - false - true @@ -787,19 +706,12 @@ $(pv_value) Default - false - 0 20 - 0 - Text Update_56 - 0 - true - PoolStats_Block9_NumFree - - 0.0 + 1 + Label_7 true @@ -807,29 +719,24 @@ $(pv_value) false - true - ###### - $(pv_name) -$(pv_value) - false + Size + + true 1 true - Text Update - 100 + Label + 37 false - -3fca34e1:15096a78c93:-7745 - 839 - 343 + -3fca34e1:15096a78c93:-7656 + 103 + 201 - + - false false - false - true @@ -839,19 +746,12 @@ $(pv_value) Default - false - 0 20 - 0 - Text Update_61 - 0 - true - PoolStats_Block11_NumCreated - - 0.0 + 1 + Label_8 true @@ -859,29 +759,24 @@ $(pv_value) false - true - ###### - $(pv_name) -$(pv_value) - false + Created + + true 1 true - Text Update - 100 + Label + 56 false - -3fca34e1:15096a78c93:-7740 - 839 - 363 + -3fca34e1:15096a78c93:-764a + 193 + 201 - + - false false - false - true @@ -891,19 +786,12 @@ $(pv_value) Default - false - 0 20 - 0 - Text Update_66 - 0 - true - PoolStats_Block13_Size - - 0.0 + 1 + Label_9 true @@ -911,29 +799,24 @@ $(pv_value) false - true - ###### - $(pv_name) -$(pv_value) - false + Free + + true 1 true - Text Update - 100 + Label + 56 false - -3fca34e1:15096a78c93:-773b - 839 - 383 + -3fca34e1:15096a78c93:-7640 + 292 + 201 - + - false false - false - true @@ -943,19 +826,12 @@ $(pv_value) Default - false - 0 20 - 0 - Text Update_71 - 0 - true - PoolStats_Block14_NumFree - - 0.0 + 1 + Label_10 true @@ -963,29 +839,24 @@ $(pv_value) false - true - ###### - $(pv_name) -$(pv_value) - false + Block + + true 1 true - Text Update - 100 + Label + 42 false - -3fca34e1:15096a78c93:-7736 - 839 - 403 + -3fca34e1:15096a78c93:-7636 + 18 + 201 - + - false false - false - true @@ -995,19 +866,12 @@ $(pv_value) Default - false - 0 20 - 0 - Text Update_76 - 0 - true - PoolStats_Block16_NumCreated - - 0.0 + 1 + Label_11 true @@ -1015,19 +879,17 @@ $(pv_value) false - true - ###### - $(pv_name) -$(pv_value) - false + 1 + + true 1 true - Text Update - 100 + Label + 37 false - -3fca34e1:15096a78c93:-7731 - 839 - 423 + -3fca34e1:15096a78c93:-761c + 23 + 239 @@ -1048,8 +910,8 @@ $(pv_value) 20 - 2 - Label + 1 + Label_12 true @@ -1057,17 +919,17 @@ $(pv_value) false - Pool Handle + 2 true 1 true Label - 80 + 37 false - -3fca34e1:15096a78c93:-7722 - 62 - 85 + -3fca34e1:15096a78c93:-760e + 23 + 258 @@ -1089,7 +951,7 @@ $(pv_value) 20 1 - Label_1 + Label_13 true @@ -1097,54 +959,39 @@ $(pv_value) false - Pool Handle + 3 true 1 true Label - 80 + 37 false - -3fca34e1:15096a78c93:-76db - 29 - 28 + -3fca34e1:15096a78c93:-7600 + 23 + 277 - + - false false - false - false - + - 1 + 0 1 - true Default - false - 3 - 25 - 0 - false - 1.7976931348623157E308 - -1.7976931348623157E308 - false - inPoolHandle - 0 - true - loc://inPoolHandle - - 0.0 + 20 + 1 + Label_14 true @@ -1152,19 +999,17 @@ $(pv_value) false - 0 - true - - - $(pv_name) -$(pv_value) - false + 4 + + true + 1 true - Text Input - 100 - -3fca34e1:15096a78c93:-7697 - 114 - 25 + Label + 37 + false + -3fca34e1:15096a78c93:-75f2 + 23 + 296 @@ -1185,8 +1030,8 @@ $(pv_value) 20 - 2 - Label_2 + 1 + Label_15 true @@ -1194,17 +1039,17 @@ $(pv_value) false - Size + 5 true 1 true Label - 80 + 37 false - -3fca34e1:15096a78c93:-768f - 62 - 108 + -3fca34e1:15096a78c93:-75e4 + 23 + 315 @@ -1225,8 +1070,8 @@ $(pv_value) 20 - 2 - Label_3 + 1 + Label_16 true @@ -1234,17 +1079,17 @@ $(pv_value) false - Blocks Requested + 6 true 1 true Label - 118 + 37 false - -3fca34e1:15096a78c93:-7681 - 24 - 132 + -3fca34e1:15096a78c93:-75d6 + 23 + 334 @@ -1265,8 +1110,8 @@ $(pv_value) 20 - 2 - Label_4 + 1 + Label_17 true @@ -1274,17 +1119,17 @@ $(pv_value) false - Check Error Count + 7 true 1 true Label - 118 + 37 false - -3fca34e1:15096a78c93:-7677 - 24 - 156 + -3fca34e1:15096a78c93:-75c8 + 23 + 353 @@ -1305,8 +1150,8 @@ $(pv_value) 20 - 2 - Label_5 + 1 + Label_18 true @@ -1314,17 +1159,17 @@ $(pv_value) false - Free Bytes + 8 true 1 true Label - 118 + 37 false - -3fca34e1:15096a78c93:-766d - 24 - 180 + -3fca34e1:15096a78c93:-75ba + 23 + 372 @@ -1346,7 +1191,7 @@ $(pv_value) 20 1 - Label_6 + Label_19 true @@ -1354,7 +1199,7 @@ $(pv_value) false - 0 + 9 true 1 @@ -1362,9 +1207,9 @@ $(pv_value) Label 37 false - -3fca34e1:15096a78c93:-7663 - 29 - 243 + -3fca34e1:15096a78c93:-75ac + 23 + 392 @@ -1386,7 +1231,7 @@ $(pv_value) 20 1 - Label_7 + Label_20 true @@ -1394,7 +1239,7 @@ $(pv_value) false - Size + 10 true 1 @@ -1402,9 +1247,9 @@ $(pv_value) Label 37 false - -3fca34e1:15096a78c93:-7656 - 109 - 224 + -3fca34e1:15096a78c93:-759e + 23 + 411 @@ -1426,7 +1271,7 @@ $(pv_value) 20 1 - Label_8 + Label_21 true @@ -1434,17 +1279,17 @@ $(pv_value) false - Created + 11 true 1 true Label - 56 + 37 false - -3fca34e1:15096a78c93:-764a - 208 - 224 + -3fca34e1:15096a78c93:-7590 + 23 + 430 @@ -1466,7 +1311,7 @@ $(pv_value) 20 1 - Label_9 + Label_22 true @@ -1474,17 +1319,17 @@ $(pv_value) false - Free + 12 true 1 true Label - 56 + 37 false - -3fca34e1:15096a78c93:-7640 - 316 - 224 + -3fca34e1:15096a78c93:-7582 + 23 + 449 @@ -1506,7 +1351,7 @@ $(pv_value) 20 1 - Label_10 + Label_23 true @@ -1514,184 +1359,28 @@ $(pv_value) false - Block + 13 true 1 true Label - 42 + 37 false - -3fca34e1:15096a78c93:-7636 - 24 - 224 + -3fca34e1:15096a78c93:-7574 + 23 + 468 - + - false false - false - true - + - 1 - 1 - true - - Default - - false - - - - 0 - 20 - 0 - Text Update_78 - 0 - true - PoolStats_Block1_Size - - 0.0 - - - true - true - false - - - true - ###### - $(pv_name) -$(pv_value) - false - 1 - true - Text Update - 100 - false - -3fca34e1:15096a78c93:-761f - 78 - 262 - - - - false - false - false - - - - true - - - - 1 - 1 - true - - Default - - false - - - - 0 - 20 - 0 - Text Update_79 - 0 - true - PoolStats_Block1_NumCreated - - 0.0 - - - true - true - false - - - true - ###### - $(pv_name) -$(pv_value) - false - 1 - true - Text Update - 100 - false - -3fca34e1:15096a78c93:-761e - 186 - 262 - - - - false - false - false - - - - true - - - - 1 - 1 - true - - Default - - false - - - - 0 - 20 - 0 - Text Update_80 - 0 - true - PoolStats_Block1_NumFree - - 0.0 - - - true - true - false - - - true - ###### - $(pv_name) -$(pv_value) - false - 1 - true - Text Update - 100 - false - -3fca34e1:15096a78c93:-761d - 294 - 262 - - - - false - - - - - - - 0 + 0 1 true @@ -1702,7 +1391,7 @@ $(pv_value) 20 1 - Label_11 + Label_24 true @@ -1710,7 +1399,7 @@ $(pv_value) false - 1 + 14 true 1 @@ -1718,123 +1407,16 @@ $(pv_value) Label 37 false - -3fca34e1:15096a78c93:-761c - 29 - 262 - - - - false - false - false - - - - true - - - - 1 - 1 - true - - Default - - false - - - - 0 - 20 - 0 - Text Update_81 - 0 - true - PoolStats_Block2_Size - - 0.0 - - - true - true - false - - - true - ###### - $(pv_name) -$(pv_value) - false - 1 - true - Text Update - 100 - false - -3fca34e1:15096a78c93:-7611 - 78 - 281 - - - - false - false - false - - - - true - - - - 1 - 1 - true - - Default - - false - - - - 0 - 20 - 0 - Text Update_82 - 0 - true - PoolStats_Block2_NumCreated - - 0.0 - - - true - true - false - - - true - ###### - $(pv_name) -$(pv_value) - false - 1 - true - Text Update - 100 - false - -3fca34e1:15096a78c93:-7610 - 186 - 281 + -3fca34e1:15096a78c93:-7566 + 23 + 487 - + - false false - false - true @@ -1844,411 +1426,12 @@ $(pv_value) Default - false - 0 - 20 - 0 - Text Update_83 - 0 - true - PoolStats_Block2_NumFree - - 0.0 - - - true - true - false - - - true - ###### - $(pv_name) -$(pv_value) - false - 1 - true - Text Update - 100 - false - -3fca34e1:15096a78c93:-760f - 294 - 281 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 1 - Label_12 - - - true - true - false - - - 2 - - true - 1 - true - Label - 37 - false - -3fca34e1:15096a78c93:-760e - 29 - 281 - - - - false - false - false - - - - true - - - - 1 - 1 - true - - Default - - false - - - - 0 - 20 - 0 - Text Update_84 - 0 - true - PoolStats_Block3_Size - - 0.0 - - - true - true - false - - - true - ###### - $(pv_name) -$(pv_value) - false - 1 - true - Text Update - 100 - false - -3fca34e1:15096a78c93:-7603 - 78 - 300 - - - - false - false - false - - - - true - - - - 1 - 1 - true - - Default - - false - - - - 0 - 20 - 0 - Text Update_85 - 0 - true - PoolStats_Block3_NumCreated - - 0.0 - - - true - true - false - - - true - ###### - $(pv_name) -$(pv_value) - false - 1 - true - Text Update - 100 - false - -3fca34e1:15096a78c93:-7602 - 186 - 300 - - - - false - false - false - - - - true - - - - 1 - 1 - true - - Default - - false - - - - 0 - 20 - 0 - Text Update_86 - 0 - true - PoolStats_Block3_NumFree - - 0.0 - - - true - true - false - - - true - ###### - $(pv_name) -$(pv_value) - false - 1 - true - Text Update - 100 - false - -3fca34e1:15096a78c93:-7601 - 294 - 300 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 1 - Label_13 - - - true - true - false - - - 3 - - true - 1 - true - Label - 37 - false - -3fca34e1:15096a78c93:-7600 - 29 - 300 - - - - false - false - false - - - - true - - - - 1 - 1 - true - - Default - - false - - - - 0 - 20 - 0 - Text Update_87 - 0 - true - PoolStats_Block4_Size - - 0.0 - - - true - true - false - - - true - ###### - $(pv_name) -$(pv_value) - false - 1 - true - Text Update - 100 - false - -3fca34e1:15096a78c93:-75f5 - 78 - 319 - - - - false - false - false - - - - true - - - - 1 - 1 - true - - Default - - false - - - - 0 - 20 - 0 - Text Update_88 - 0 - true - PoolStats_Block4_NumCreated - - 0.0 - - - true - true - false - - - true - ###### - $(pv_name) -$(pv_value) - false - 1 - true - Text Update - 100 - false - -3fca34e1:15096a78c93:-75f4 - 186 - 319 - - - - false - false - false - - - - true - - - - 1 - 1 - true - - Default - - false - - - - 0 - 20 - 0 - Text Update_89 - 0 - true - PoolStats_Block4_NumFree - - 0.0 + 20 + 1 + Label_25 true @@ -2256,19 +1439,17 @@ $(pv_value) false - true - ###### - $(pv_name) -$(pv_value) - false + 15 + + true 1 true - Text Update - 100 + Label + 37 false - -3fca34e1:15096a78c93:-75f3 - 294 - 319 + -3fca34e1:15096a78c93:-7558 + 23 + 506 @@ -2290,7 +1471,7 @@ $(pv_value) 20 1 - Label_14 + Label_26 true @@ -2298,7 +1479,7 @@ $(pv_value) false - 4 + 16 true 1 @@ -2306,9 +1487,9 @@ $(pv_value) Label 37 false - -3fca34e1:15096a78c93:-75f2 - 29 - 319 + -3fca34e1:15096a78c93:-754a + 23 + 525 @@ -2335,10 +1516,10 @@ $(pv_value) 0 20 0 - Text Update_90 + Text Update_27 0 - true - PoolStats_Block5_Size + false + /cfs/cfe_es/CFE_ES_PoolStatsTlm_t.Payload.PoolStats.BlockStats_0_.BlockSize 0.0 @@ -2358,9 +1539,9 @@ $(pv_value) Text Update 100 false - -3fca34e1:15096a78c93:-75e7 - 78 - 338 + -2dc23c5:177557ff444:-6599 + 72 + 220 @@ -2387,10 +1568,10 @@ $(pv_value) 0 20 0 - Text Update_91 + Text Update_28 0 - true - PoolStats_Block5_NumCreated + false + /cfs/cfe_es/CFE_ES_PoolStatsTlm_t.Payload.PoolStats.BlockStats_0_.NumCreated 0.0 @@ -2410,9 +1591,9 @@ $(pv_value) Text Update 100 false - -3fca34e1:15096a78c93:-75e6 - 186 - 338 + -2dc23c5:177557ff444:-6591 + 171 + 220 @@ -2439,10 +1620,10 @@ $(pv_value) 0 20 0 - Text Update_92 + Text Update_29 0 - true - PoolStats_Block5_NumFree + false + /cfs/cfe_es/CFE_ES_PoolStatsTlm_t.Payload.PoolStats.BlockStats_0_.NumFree 0.0 @@ -2462,31 +1643,41 @@ $(pv_value) Text Update 100 false - -3fca34e1:15096a78c93:-75e5 - 294 - 338 + -2dc23c5:177557ff444:-6589 + 270 + 220 - + + false false + false + true - + - 0 + 1 1 true Default + false + 0 20 - 1 - Label_15 + 0 + Text Update_80 + 0 + false + /cfs/cfe_es/CFE_ES_PoolStatsTlm_t.Payload.PoolStats.BlockStats_1_.BlockSize + + 0.0 true @@ -2494,17 +1685,19 @@ $(pv_value) false - 5 - - true + true + ###### + $(pv_name) +$(pv_value) + false 1 true - Label - 37 + Text Update + 100 false - -3fca34e1:15096a78c93:-75e4 - 29 - 338 + -2dc23c5:177557ff444:-657b + 72 + 239 @@ -2531,10 +1724,10 @@ $(pv_value) 0 20 0 - Text Update_93 + Text Update_81 0 - true - PoolStats_Block6_Size + false + /cfs/cfe_es/CFE_ES_PoolStatsTlm_t.Payload.PoolStats.BlockStats_1_.NumCreated 0.0 @@ -2554,9 +1747,9 @@ $(pv_value) Text Update 100 false - -3fca34e1:15096a78c93:-75d9 - 78 - 357 + -2dc23c5:177557ff444:-657a + 171 + 239 @@ -2583,10 +1776,10 @@ $(pv_value) 0 20 0 - Text Update_94 + Text Update_82 0 - true - PoolStats_Block6_NumCreated + false + /cfs/cfe_es/CFE_ES_PoolStatsTlm_t.Payload.PoolStats.BlockStats_1_.NumFree 0.0 @@ -2606,9 +1799,9 @@ $(pv_value) Text Update 100 false - -3fca34e1:15096a78c93:-75d8 - 186 - 357 + -2dc23c5:177557ff444:-6579 + 270 + 239 @@ -2635,10 +1828,10 @@ $(pv_value) 0 20 0 - Text Update_95 + Text Update_83 0 - true - PoolStats_Block6_NumFree + false + /cfs/cfe_es/CFE_ES_PoolStatsTlm_t.Payload.PoolStats.BlockStats_2_.BlockSize 0.0 @@ -2658,31 +1851,41 @@ $(pv_value) Text Update 100 false - -3fca34e1:15096a78c93:-75d7 - 294 - 357 + -2dc23c5:177557ff444:-6570 + 72 + 258 - + + false false + false + true - + - 0 + 1 1 true Default + false + 0 20 - 1 - Label_16 + 0 + Text Update_84 + 0 + false + /cfs/cfe_es/CFE_ES_PoolStatsTlm_t.Payload.PoolStats.BlockStats_2_.NumCreated + + 0.0 true @@ -2690,17 +1893,19 @@ $(pv_value) false - 6 - - true + true + ###### + $(pv_name) +$(pv_value) + false 1 true - Label - 37 + Text Update + 100 false - -3fca34e1:15096a78c93:-75d6 - 29 - 357 + -2dc23c5:177557ff444:-656f + 171 + 258 @@ -2727,10 +1932,10 @@ $(pv_value) 0 20 0 - Text Update_96 + Text Update_85 0 - true - PoolStats_Block7_Size + false + /cfs/cfe_es/CFE_ES_PoolStatsTlm_t.Payload.PoolStats.BlockStats_2_.NumFree 0.0 @@ -2750,9 +1955,9 @@ $(pv_value) Text Update 100 false - -3fca34e1:15096a78c93:-75cb - 78 - 376 + -2dc23c5:177557ff444:-656e + 270 + 258 @@ -2779,10 +1984,10 @@ $(pv_value) 0 20 0 - Text Update_97 + Text Update_86 0 - true - PoolStats_Block7_NumCreated + false + /cfs/cfe_es/CFE_ES_PoolStatsTlm_t.Payload.PoolStats.BlockStats_3_.BlockSize 0.0 @@ -2802,9 +2007,9 @@ $(pv_value) Text Update 100 false - -3fca34e1:15096a78c93:-75ca - 186 - 376 + -2dc23c5:177557ff444:-6565 + 72 + 277 @@ -2831,10 +2036,10 @@ $(pv_value) 0 20 0 - Text Update_98 + Text Update_87 0 - true - PoolStats_Block7_NumFree + false + /cfs/cfe_es/CFE_ES_PoolStatsTlm_t.Payload.PoolStats.BlockStats_3_.NumCreated 0.0 @@ -2854,31 +2059,41 @@ $(pv_value) Text Update 100 false - -3fca34e1:15096a78c93:-75c9 - 294 - 376 + -2dc23c5:177557ff444:-6564 + 171 + 277 - + + false false + false + true - + - 0 + 1 1 true Default + false + 0 20 - 1 - Label_17 + 0 + Text Update_88 + 0 + false + /cfs/cfe_es/CFE_ES_PoolStatsTlm_t.Payload.PoolStats.BlockStats_3_.NumFree + + 0.0 true @@ -2886,17 +2101,19 @@ $(pv_value) false - 7 - - true + true + ###### + $(pv_name) +$(pv_value) + false 1 true - Label - 37 + Text Update + 100 false - -3fca34e1:15096a78c93:-75c8 - 29 - 376 + -2dc23c5:177557ff444:-6563 + 270 + 277 @@ -2923,10 +2140,10 @@ $(pv_value) 0 20 0 - Text Update_99 + Text Update_89 0 - true - PoolStats_Block8_Size + false + /cfs/cfe_es/CFE_ES_PoolStatsTlm_t.Payload.PoolStats.BlockStats_4_.BlockSize 0.0 @@ -2946,9 +2163,9 @@ $(pv_value) Text Update 100 false - -3fca34e1:15096a78c93:-75bd - 78 - 395 + -2dc23c5:177557ff444:-655a + 72 + 296 @@ -2975,10 +2192,10 @@ $(pv_value) 0 20 0 - Text Update_100 + Text Update_90 0 - true - PoolStats_Block8_NumCreated + false + /cfs/cfe_es/CFE_ES_PoolStatsTlm_t.Payload.PoolStats.BlockStats_4_.NumCreated 0.0 @@ -2998,9 +2215,9 @@ $(pv_value) Text Update 100 false - -3fca34e1:15096a78c93:-75bc - 186 - 395 + -2dc23c5:177557ff444:-6559 + 171 + 296 @@ -3027,10 +2244,10 @@ $(pv_value) 0 20 0 - Text Update_101 + Text Update_91 0 - true - PoolStats_Block8_NumFree + false + /cfs/cfe_es/CFE_ES_PoolStatsTlm_t.Payload.PoolStats.BlockStats_4_.NumFree 0.0 @@ -3050,31 +2267,41 @@ $(pv_value) Text Update 100 false - -3fca34e1:15096a78c93:-75bb - 294 - 395 + -2dc23c5:177557ff444:-6558 + 270 + 296 - + + false false + false + true - + - 0 + 1 1 true Default + false + 0 20 - 1 - Label_18 + 0 + Text Update_92 + 0 + false + /cfs/cfe_es/CFE_ES_PoolStatsTlm_t.Payload.PoolStats.BlockStats_5_.BlockSize + + 0.0 true @@ -3082,17 +2309,19 @@ $(pv_value) false - 8 - - true + true + ###### + $(pv_name) +$(pv_value) + false 1 true - Label - 37 + Text Update + 100 false - -3fca34e1:15096a78c93:-75ba - 29 - 395 + -2dc23c5:177557ff444:-654f + 72 + 315 @@ -3119,10 +2348,10 @@ $(pv_value) 0 20 0 - Text Update_102 + Text Update_93 0 - true - PoolStats_Block9_Size + false + /cfs/cfe_es/CFE_ES_PoolStatsTlm_t.Payload.PoolStats.BlockStats_5_.NumCreated 0.0 @@ -3142,9 +2371,9 @@ $(pv_value) Text Update 100 false - -3fca34e1:15096a78c93:-75af - 78 - 415 + -2dc23c5:177557ff444:-654e + 171 + 315 @@ -3171,10 +2400,10 @@ $(pv_value) 0 20 0 - Text Update_103 + Text Update_94 0 - true - PoolStats_Block9_NumCreated + false + /cfs/cfe_es/CFE_ES_PoolStatsTlm_t.Payload.PoolStats.BlockStats_5_.NumFree 0.0 @@ -3194,9 +2423,9 @@ $(pv_value) Text Update 100 false - -3fca34e1:15096a78c93:-75ae - 186 - 415 + -2dc23c5:177557ff444:-654d + 270 + 315 @@ -3223,10 +2452,10 @@ $(pv_value) 0 20 0 - Text Update_104 + Text Update_95 0 - true - PoolStats_Block9_NumFree + false + /cfs/cfe_es/CFE_ES_PoolStatsTlm_t.Payload.PoolStats.BlockStats_6_.BlockSize 0.0 @@ -3246,31 +2475,41 @@ $(pv_value) Text Update 100 false - -3fca34e1:15096a78c93:-75ad - 294 - 415 + -2dc23c5:177557ff444:-6544 + 72 + 334 - + + false false + false + true - + - 0 + 1 1 true Default + false + 0 20 - 1 - Label_19 + 0 + Text Update_96 + 0 + false + /cfs/cfe_es/CFE_ES_PoolStatsTlm_t.Payload.PoolStats.BlockStats_6_.NumCreated + + 0.0 true @@ -3278,17 +2517,19 @@ $(pv_value) false - 9 - - true + true + ###### + $(pv_name) +$(pv_value) + false 1 true - Label - 37 + Text Update + 100 false - -3fca34e1:15096a78c93:-75ac - 29 - 415 + -2dc23c5:177557ff444:-6543 + 171 + 334 @@ -3315,10 +2556,10 @@ $(pv_value) 0 20 0 - Text Update_105 + Text Update_97 0 - true - PoolStats_Block10_Size + false + /cfs/cfe_es/CFE_ES_PoolStatsTlm_t.Payload.PoolStats.BlockStats_6_.NumFree 0.0 @@ -3338,9 +2579,9 @@ $(pv_value) Text Update 100 false - -3fca34e1:15096a78c93:-75a1 - 78 - 434 + -2dc23c5:177557ff444:-6542 + 270 + 334 @@ -3367,10 +2608,10 @@ $(pv_value) 0 20 0 - Text Update_106 + Text Update_98 0 - true - PoolStats_Block10_NumCreated + false + /cfs/cfe_es/CFE_ES_PoolStatsTlm_t.Payload.PoolStats.BlockStats_7_.BlockSize 0.0 @@ -3390,9 +2631,9 @@ $(pv_value) Text Update 100 false - -3fca34e1:15096a78c93:-75a0 - 186 - 434 + -2dc23c5:177557ff444:-6539 + 72 + 353 @@ -3419,10 +2660,10 @@ $(pv_value) 0 20 0 - Text Update_107 + Text Update_99 0 - true - PoolStats_Block10_NumFree + false + /cfs/cfe_es/CFE_ES_PoolStatsTlm_t.Payload.PoolStats.BlockStats_7_.NumCreated 0.0 @@ -3442,31 +2683,41 @@ $(pv_value) Text Update 100 false - -3fca34e1:15096a78c93:-759f - 294 - 434 + -2dc23c5:177557ff444:-6538 + 171 + 353 - + + false false + false + true - + - 0 + 1 1 true Default + false + 0 20 - 1 - Label_20 + 0 + Text Update_100 + 0 + false + /cfs/cfe_es/CFE_ES_PoolStatsTlm_t.Payload.PoolStats.BlockStats_7_.NumFree + + 0.0 true @@ -3474,17 +2725,19 @@ $(pv_value) false - 10 - - true + true + ###### + $(pv_name) +$(pv_value) + false 1 true - Label - 37 + Text Update + 100 false - -3fca34e1:15096a78c93:-759e - 29 - 434 + -2dc23c5:177557ff444:-6537 + 270 + 353 @@ -3511,10 +2764,10 @@ $(pv_value) 0 20 0 - Text Update_108 + Text Update_101 0 - true - PoolStats_Block11_Size + false + /cfs/cfe_es/CFE_ES_PoolStatsTlm_t.Payload.PoolStats.BlockStats_8_.BlockSize 0.0 @@ -3534,9 +2787,9 @@ $(pv_value) Text Update 100 false - -3fca34e1:15096a78c93:-7593 - 78 - 453 + -2dc23c5:177557ff444:-652e + 72 + 372 @@ -3563,10 +2816,10 @@ $(pv_value) 0 20 0 - Text Update_109 + Text Update_102 0 - true - PoolStats_Block11_NumCreated + false + /cfs/cfe_es/CFE_ES_PoolStatsTlm_t.Payload.PoolStats.BlockStats_8_.NumCreated 0.0 @@ -3586,9 +2839,9 @@ $(pv_value) Text Update 100 false - -3fca34e1:15096a78c93:-7592 - 186 - 453 + -2dc23c5:177557ff444:-652d + 171 + 372 @@ -3615,10 +2868,10 @@ $(pv_value) 0 20 0 - Text Update_110 + Text Update_103 0 - true - PoolStats_Block11_NumFree + false + /cfs/cfe_es/CFE_ES_PoolStatsTlm_t.Payload.PoolStats.BlockStats_8_.NumFree 0.0 @@ -3638,31 +2891,41 @@ $(pv_value) Text Update 100 false - -3fca34e1:15096a78c93:-7591 - 294 - 453 + -2dc23c5:177557ff444:-652c + 270 + 372 - + + false false + false + true - + - 0 + 1 1 true Default + false + 0 20 - 1 - Label_21 + 0 + Text Update_104 + 0 + false + /cfs/cfe_es/CFE_ES_PoolStatsTlm_t.Payload.PoolStats.BlockStats_9_.BlockSize + + 0.0 true @@ -3670,17 +2933,19 @@ $(pv_value) false - 11 - - true + true + ###### + $(pv_name) +$(pv_value) + false 1 true - Label - 37 + Text Update + 100 false - -3fca34e1:15096a78c93:-7590 - 29 - 453 + -2dc23c5:177557ff444:-6523 + 72 + 392 @@ -3707,10 +2972,10 @@ $(pv_value) 0 20 0 - Text Update_111 + Text Update_105 0 - true - PoolStats_Block12_Size + false + /cfs/cfe_es/CFE_ES_PoolStatsTlm_t.Payload.PoolStats.BlockStats_9_.NumCreated 0.0 @@ -3730,9 +2995,9 @@ $(pv_value) Text Update 100 false - -3fca34e1:15096a78c93:-7585 - 78 - 472 + -2dc23c5:177557ff444:-6522 + 171 + 392 @@ -3759,10 +3024,10 @@ $(pv_value) 0 20 0 - Text Update_112 + Text Update_106 0 - true - PoolStats_Block12_NumCreated + false + /cfs/cfe_es/CFE_ES_PoolStatsTlm_t.Payload.PoolStats.BlockStats_9_.NumFree 0.0 @@ -3782,9 +3047,9 @@ $(pv_value) Text Update 100 false - -3fca34e1:15096a78c93:-7584 - 186 - 472 + -2dc23c5:177557ff444:-6521 + 270 + 392 @@ -3811,10 +3076,10 @@ $(pv_value) 0 20 0 - Text Update_113 + Text Update_107 0 - true - PoolStats_Block12_NumFree + false + /cfs/cfe_es/CFE_ES_PoolStatsTlm_t.Payload.PoolStats.BlockStats_10_.BlockSize 0.0 @@ -3834,31 +3099,41 @@ $(pv_value) Text Update 100 false - -3fca34e1:15096a78c93:-7583 - 294 - 472 + -2dc23c5:177557ff444:-6518 + 72 + 411 - + + false false + false + true - + - 0 + 1 1 true Default + false + 0 20 - 1 - Label_22 + 0 + Text Update_108 + 0 + false + /cfs/cfe_es/CFE_ES_PoolStatsTlm_t.Payload.PoolStats.BlockStats_10_.NumCreated + + 0.0 true @@ -3866,17 +3141,19 @@ $(pv_value) false - 12 - - true + true + ###### + $(pv_name) +$(pv_value) + false 1 true - Label - 37 + Text Update + 100 false - -3fca34e1:15096a78c93:-7582 - 29 - 472 + -2dc23c5:177557ff444:-6517 + 171 + 411 @@ -3903,10 +3180,10 @@ $(pv_value) 0 20 0 - Text Update_114 + Text Update_109 0 - true - PoolStats_Block13_Size + false + /cfs/cfe_es/CFE_ES_PoolStatsTlm_t.Payload.PoolStats.BlockStats_10_.NumFree 0.0 @@ -3926,9 +3203,9 @@ $(pv_value) Text Update 100 false - -3fca34e1:15096a78c93:-7577 - 78 - 491 + -2dc23c5:177557ff444:-6516 + 270 + 411 @@ -3955,10 +3232,10 @@ $(pv_value) 0 20 0 - Text Update_115 + Text Update_110 0 - true - PoolStats_Block13_NumCreated + false + /cfs/cfe_es/CFE_ES_PoolStatsTlm_t.Payload.PoolStats.BlockStats_11_.BlockSize 0.0 @@ -3978,9 +3255,9 @@ $(pv_value) Text Update 100 false - -3fca34e1:15096a78c93:-7576 - 186 - 491 + -2dc23c5:177557ff444:-650d + 72 + 430 @@ -4007,10 +3284,10 @@ $(pv_value) 0 20 0 - Text Update_116 + Text Update_111 0 - true - PoolStats_Block13_NumFree + false + /cfs/cfe_es/CFE_ES_PoolStatsTlm_t.Payload.PoolStats.BlockStats_11_.NumCreated 0.0 @@ -4030,31 +3307,41 @@ $(pv_value) Text Update 100 false - -3fca34e1:15096a78c93:-7575 - 294 - 491 + -2dc23c5:177557ff444:-650c + 171 + 430 - + + false false + false + true - + - 0 + 1 1 true Default + false + 0 20 - 1 - Label_23 + 0 + Text Update_112 + 0 + false + /cfs/cfe_es/CFE_ES_PoolStatsTlm_t.Payload.PoolStats.BlockStats_11_.NumFree + + 0.0 true @@ -4062,17 +3349,19 @@ $(pv_value) false - 13 - - true + true + ###### + $(pv_name) +$(pv_value) + false 1 true - Label - 37 + Text Update + 100 false - -3fca34e1:15096a78c93:-7574 - 29 - 491 + -2dc23c5:177557ff444:-650b + 270 + 430 @@ -4099,10 +3388,10 @@ $(pv_value) 0 20 0 - Text Update_117 + Text Update_113 0 - true - PoolStats_Block14_Size + false + /cfs/cfe_es/CFE_ES_PoolStatsTlm_t.Payload.PoolStats.BlockStats_12_.BlockSize 0.0 @@ -4122,9 +3411,9 @@ $(pv_value) Text Update 100 false - -3fca34e1:15096a78c93:-7569 - 78 - 510 + -2dc23c5:177557ff444:-6502 + 72 + 449 @@ -4151,10 +3440,10 @@ $(pv_value) 0 20 0 - Text Update_118 + Text Update_114 0 - true - PoolStats_Block14_NumCreated + false + /cfs/cfe_es/CFE_ES_PoolStatsTlm_t.Payload.PoolStats.BlockStats_12_.NumCreated 0.0 @@ -4174,9 +3463,9 @@ $(pv_value) Text Update 100 false - -3fca34e1:15096a78c93:-7568 - 186 - 510 + -2dc23c5:177557ff444:-6501 + 171 + 449 @@ -4203,10 +3492,10 @@ $(pv_value) 0 20 0 - Text Update_119 + Text Update_115 0 - true - PoolStats_Block14_NumFree + false + /cfs/cfe_es/CFE_ES_PoolStatsTlm_t.Payload.PoolStats.BlockStats_12_.NumFree 0.0 @@ -4226,31 +3515,41 @@ $(pv_value) Text Update 100 false - -3fca34e1:15096a78c93:-7567 - 294 - 510 + -2dc23c5:177557ff444:-6500 + 270 + 449 - + + false false + false + true - + - 0 + 1 1 true Default + false + 0 20 - 1 - Label_24 + 0 + Text Update_116 + 0 + false + /cfs/cfe_es/CFE_ES_PoolStatsTlm_t.Payload.PoolStats.BlockStats_13_.BlockSize + + 0.0 true @@ -4258,17 +3557,19 @@ $(pv_value) false - 14 - - true + true + ###### + $(pv_name) +$(pv_value) + false 1 true - Label - 37 + Text Update + 100 false - -3fca34e1:15096a78c93:-7566 - 29 - 510 + -2dc23c5:177557ff444:-64f7 + 72 + 468 @@ -4295,10 +3596,10 @@ $(pv_value) 0 20 0 - Text Update_120 + Text Update_117 0 - true - PoolStats_Block15_Size + false + /cfs/cfe_es/CFE_ES_PoolStatsTlm_t.Payload.PoolStats.BlockStats_13_.NumCreated 0.0 @@ -4318,9 +3619,9 @@ $(pv_value) Text Update 100 false - -3fca34e1:15096a78c93:-755b - 78 - 529 + -2dc23c5:177557ff444:-64f6 + 171 + 468 @@ -4347,10 +3648,10 @@ $(pv_value) 0 20 0 - Text Update_121 + Text Update_118 0 - true - PoolStats_Block15_NumCreated + false + /cfs/cfe_es/CFE_ES_PoolStatsTlm_t.Payload.PoolStats.BlockStats_13_.NumFree 0.0 @@ -4370,9 +3671,9 @@ $(pv_value) Text Update 100 false - -3fca34e1:15096a78c93:-755a - 186 - 529 + -2dc23c5:177557ff444:-64f5 + 270 + 468 @@ -4399,10 +3700,10 @@ $(pv_value) 0 20 0 - Text Update_122 + Text Update_119 0 - true - PoolStats_Block15_NumFree + false + /cfs/cfe_es/CFE_ES_PoolStatsTlm_t.Payload.PoolStats.BlockStats_14_.BlockSize 0.0 @@ -4422,31 +3723,41 @@ $(pv_value) Text Update 100 false - -3fca34e1:15096a78c93:-7559 - 294 - 529 + -2dc23c5:177557ff444:-64ec + 72 + 487 - + + false false + false + true - + - 0 + 1 1 true Default + false + 0 20 - 1 - Label_25 + 0 + Text Update_120 + 0 + false + /cfs/cfe_es/CFE_ES_PoolStatsTlm_t.Payload.PoolStats.BlockStats_14_.NumCreated + + 0.0 true @@ -4454,17 +3765,19 @@ $(pv_value) false - 15 - - true + true + ###### + $(pv_name) +$(pv_value) + false 1 true - Label - 37 + Text Update + 100 false - -3fca34e1:15096a78c93:-7558 - 29 - 529 + -2dc23c5:177557ff444:-64eb + 171 + 487 @@ -4491,10 +3804,10 @@ $(pv_value) 0 20 0 - Text Update_123 + Text Update_121 0 - true - PoolStats_Block16_Size + false + /cfs/cfe_es/CFE_ES_PoolStatsTlm_t.Payload.PoolStats.BlockStats_14_.NumFree 0.0 @@ -4514,9 +3827,9 @@ $(pv_value) Text Update 100 false - -3fca34e1:15096a78c93:-754d - 78 - 548 + -2dc23c5:177557ff444:-64ea + 270 + 487 @@ -4543,10 +3856,10 @@ $(pv_value) 0 20 0 - Text Update_124 + Text Update_122 0 - true - PoolStats_Block16_NumCreated + false + /cfs/cfe_es/CFE_ES_PoolStatsTlm_t.Payload.PoolStats.BlockStats_15_.BlockSize 0.0 @@ -4566,9 +3879,9 @@ $(pv_value) Text Update 100 false - -3fca34e1:15096a78c93:-754c - 186 - 548 + -2dc23c5:177557ff444:-64e1 + 72 + 506 @@ -4595,10 +3908,10 @@ $(pv_value) 0 20 0 - Text Update_125 + Text Update_123 0 - true - PoolStats_Block16_NumFree + false + /cfs/cfe_es/CFE_ES_PoolStatsTlm_t.Payload.PoolStats.BlockStats_15_.NumCreated 0.0 @@ -4618,31 +3931,41 @@ $(pv_value) Text Update 100 false - -3fca34e1:15096a78c93:-754b - 294 - 548 + -2dc23c5:177557ff444:-64e0 + 171 + 506 - + + false false + false + true - + - 0 + 1 1 true Default + false + 0 20 - 1 - Label_26 + 0 + Text Update_124 + 0 + false + /cfs/cfe_es/CFE_ES_PoolStatsTlm_t.Payload.PoolStats.BlockStats_15_.NumFree + + 0.0 true @@ -4650,17 +3973,19 @@ $(pv_value) false - 16 - - true + true + ###### + $(pv_name) +$(pv_value) + false 1 true - Label - 37 + Text Update + 100 false - -3fca34e1:15096a78c93:-754a - 29 - 548 + -2dc23c5:177557ff444:-64df + 270 + 506 @@ -4687,10 +4012,10 @@ $(pv_value) 0 20 0 - Text Update_126 + Text Update_125 0 - true - PoolStats_Block17_Size + false + /cfs/cfe_es/CFE_ES_PoolStatsTlm_t.Payload.PoolStats.BlockStats_16_.BlockSize 0.0 @@ -4710,9 +4035,9 @@ $(pv_value) Text Update 100 false - -3fca34e1:15096a78c93:-753f - 78 - 567 + -2dc23c5:177557ff444:-64d6 + 72 + 525 @@ -4739,10 +4064,10 @@ $(pv_value) 0 20 0 - Text Update_127 + Text Update_126 0 - true - PoolStats_Block17_NumCreated + false + /cfs/cfe_es/CFE_ES_PoolStatsTlm_t.Payload.PoolStats.BlockStats_16_.NumCreated 0.0 @@ -4762,9 +4087,9 @@ $(pv_value) Text Update 100 false - -3fca34e1:15096a78c93:-753e - 186 - 567 + -2dc23c5:177557ff444:-64d5 + 171 + 525 @@ -4791,10 +4116,10 @@ $(pv_value) 0 20 0 - Text Update_128 + Text Update_127 0 - true - PoolStats_Block17_NumFree + false + /cfs/cfe_es/CFE_ES_PoolStatsTlm_t.Payload.PoolStats.BlockStats_16_.NumFree 0.0 @@ -4814,9 +4139,9 @@ $(pv_value) Text Update 100 false - -3fca34e1:15096a78c93:-753d - 294 - 567 + -2dc23c5:177557ff444:-64d4 + 270 + 525 @@ -4831,14 +4156,14 @@ $(pv_value) 1 true - Default + Default Bold 20 1 - Label_27 + Label_28 true @@ -4846,16 +4171,16 @@ $(pv_value) false - 17 + Memory Pool Viewer true 1 true Label - 37 + 164 false - -3fca34e1:15096a78c93:-753c - 29 - 567 + -2dc23c5:177557ff444:-635b + 96 + 12 - + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Core/ES/PerfUtility.opi b/core/base/tools/commander/workspace_template/Displays/Core/ES/PerfCollection.opi similarity index 97% rename from core/base/tools/commander/workspace_template/Displays/Core/ES/PerfUtility.opi rename to core/base/tools/commander/workspace_template/Displays/Core/ES/PerfCollection.opi index 3e1213032..3dc848c9b 100644 --- a/core/base/tools/commander/workspace_template/Displays/Core/ES/PerfUtility.opi +++ b/core/base/tools/commander/workspace_template/Displays/Core/ES/PerfCollection.opi @@ -19,9 +19,28 @@ true - + CFE-ES - Perf - + + + EmbeddedScript + 0) { + newValue = 1; + } + display.getWidget(RequestFilterName).setPropertyValue('pv_value', newValue); +}]]> + /cfs/cfe_es/CFE_ES_HkPacket_t.Payload.PerfFilterMask_0_ + + true true true @@ -69,8 +88,8 @@ 98 false 2b4f25d5:1502b5812fe:-7f04 - 19 - 36 + 18 + 42 @@ -109,8 +128,8 @@ 98 false 2b4f25d5:1502b5812fe:-7eef - 19 - 55 + 18 + 61 @@ -149,8 +168,8 @@ 98 false 2b4f25d5:1502b5812fe:-7ee8 - 19 - 74 + 18 + 80 @@ -189,8 +208,8 @@ 98 false 2b4f25d5:1502b5812fe:-7ed0 - 258 - 36 + 359 + 42 @@ -229,8 +248,8 @@ 98 false 2b4f25d5:1502b5812fe:-7ec9 - 258 - 55 + 359 + 61 @@ -269,8 +288,8 @@ 98 false 2b4f25d5:1502b5812fe:-7ec2 - 258 - 74 + 359 + 80 @@ -309,8 +328,8 @@ 98 false 2b4f25d5:1502b5812fe:-7ebb - 258 - 93 + 359 + 99 @@ -340,16 +359,16 @@ false - Performance Utility + Performance Collection true 1 true Label - 164 + 193 false 2b4f25d5:1502b5812fe:-7d80 - 12 + 243 12 @@ -380,7 +399,7 @@ Text Update_20 0 false - /cfs/cfe_es/PerfState + /cfs/cfe_es/CFE_ES_HkPacket_t.Payload.PerfState 0.0 @@ -398,11 +417,11 @@ $(pv_value) 1 true Text Update - 100 + 210 false 2b4f25d5:1502b5812fe:-7ca7 - 133 - 36 + 132 + 42 @@ -432,7 +451,7 @@ $(pv_value) Text Update_21 0 false - /cfs/cfe_es/PerfMode + /cfs/cfe_es/CFE_ES_HkPacket_t.Payload.PerfMode 0.0 @@ -450,11 +469,11 @@ $(pv_value) 1 true Text Update - 100 + 210 false 2b4f25d5:1502b5812fe:-7ca2 - 133 - 55 + 132 + 61 @@ -484,7 +503,7 @@ $(pv_value) Text Update_22 0 false - /cfs/cfe_es/PerfTriggerCount + /cfs/cfe_es/CFE_ES_HkPacket_t.Payload.PerfTriggerCount 0.0 @@ -502,11 +521,11 @@ $(pv_value) 1 true Text Update - 100 + 210 false 2b4f25d5:1502b5812fe:-7c9d - 133 - 74 + 132 + 80 @@ -536,7 +555,7 @@ $(pv_value) Text Update_25 0 false - /cfs/cfe_es/PerfDataStart + /cfs/cfe_es/CFE_ES_HkPacket_t.Payload.PerfDataStart 0.0 @@ -557,8 +576,8 @@ $(pv_value) 100 false 2b4f25d5:1502b5812fe:-7c8e - 372 - 36 + 473 + 42 @@ -588,7 +607,7 @@ $(pv_value) Text Update_26 0 false - /cfs/cfe_es/PerfDataEnd + /cfs/cfe_es/CFE_ES_HkPacket_t.Payload.PerfDataEnd 0.0 @@ -609,8 +628,8 @@ $(pv_value) 100 false 2b4f25d5:1502b5812fe:-7c89 - 372 - 55 + 473 + 61 @@ -640,7 +659,7 @@ $(pv_value) Text Update_27 0 false - /cfs/cfe_es/PerfDataCount + /cfs/cfe_es/CFE_ES_HkPacket_t.Payload.PerfDataCount 0.0 @@ -661,8 +680,8 @@ $(pv_value) 100 false 2b4f25d5:1502b5812fe:-7c84 - 372 - 74 + 473 + 80 @@ -692,7 +711,7 @@ $(pv_value) Text Update_28 0 false - /cfs/cfe_es/PerfDataToWrite + /cfs/cfe_es/CFE_ES_HkPacket_t.Payload.PerfDataToWrite 0.0 @@ -713,8 +732,8 @@ $(pv_value) 100 false 2b4f25d5:1502b5812fe:-7c7f - 372 - 93 + 473 + 99 @@ -723,7 +742,7 @@ $(pv_value) true - 0 + 1 @@ -768,8 +787,8 @@ $(pv_value) Action Button 69 -35c7bfc1:1509236a393:-770b - 333 - 126 + 167 + 118 @@ -778,7 +797,7 @@ $(pv_value) true - 0 + 1 @@ -823,8 +842,8 @@ $(pv_value) Action Button 69 -35c7bfc1:1509236a393:-76fd - 408 - 126 + 242 + 118 @@ -907,10 +926,10 @@ $(pv_value) true Tabbed Container - 450 + 661 -35c7bfc1:1509236a393:-7209 - 24 - 174 + 19 + 150 @@ -947,7 +966,7 @@ $(pv_value) true true Grouping Container - 448 + 659 -35c7bfc1:1509236a393:-7208 1 1 @@ -995,7 +1014,7 @@ $(pv_value) Check Box 22 -35c7bfc1:1509236a393:-7493 - 80 + 142 626 @@ -1042,7 +1061,7 @@ $(pv_value) Check Box 22 -35c7bfc1:1509236a393:-76d0 - 222 + 284 109 @@ -1089,7 +1108,7 @@ $(pv_value) Check Box 22 -35c7bfc1:1509236a393:-75cb - 222 + 284 358 @@ -1136,7 +1155,7 @@ $(pv_value) Check Box 22 -35c7bfc1:1509236a393:-76ae - 222 + 284 147 @@ -1183,7 +1202,7 @@ $(pv_value) Check Box 22 -35c7bfc1:1509236a393:-74be - 222 + 284 453 @@ -1212,7 +1231,7 @@ $(pv_value) 20 FilterActual27 - /cfs/cfe_es/PerfFilter27 + loc://FilterActual27 @@ -1230,7 +1249,7 @@ $(pv_value) Check Box 22 -35c7bfc1:1509236a393:-749c - 18 + 80 588 @@ -1277,7 +1296,7 @@ $(pv_value) Check Box 22 -35c7bfc1:1509236a393:-766a - 222 + 284 223 @@ -1306,7 +1325,7 @@ $(pv_value) 20 FilterActual26 - /cfs/cfe_es/PerfFilter26 + loc://FilterActual26 @@ -1324,7 +1343,7 @@ $(pv_value) Check Box 22 -35c7bfc1:1509236a393:-74a1 - 18 + 80 569 @@ -1353,7 +1372,7 @@ $(pv_value) 20 FilterActual20 - /cfs/cfe_es/PerfFilter20 + loc://FilterActual20 @@ -1371,7 +1390,7 @@ $(pv_value) Check Box 22 -35c7bfc1:1509236a393:-74bf - 18 + 80 453 @@ -1400,7 +1419,7 @@ $(pv_value) 20 TriggerActual14 - /cfs/cfe_es/PerfTrigger14 + loc://TriggerActual14 @@ -1418,7 +1437,7 @@ $(pv_value) Check Box 22 -35c7bfc1:1509236a393:-75cf - 160 + 222 339 @@ -1465,7 +1484,7 @@ $(pv_value) Check Box 22 -35c7bfc1:1509236a393:-74aa - 222 + 284 529 @@ -1494,7 +1513,7 @@ $(pv_value) 20 FilterActual15 - /cfs/cfe_es/PerfFilter15 + loc://FilterActual15 @@ -1512,7 +1531,7 @@ $(pv_value) Check Box 22 -35c7bfc1:1509236a393:-75cc - 18 + 80 358 @@ -1559,7 +1578,7 @@ $(pv_value) Check Box 22 -35c7bfc1:1509236a393:-74b9 - 222 + 284 472 @@ -1606,7 +1625,7 @@ $(pv_value) Check Box 22 -35c7bfc1:1509236a393:-74c8 - 222 + 284 415 @@ -1635,7 +1654,7 @@ $(pv_value) 20 FilterActual14 - /cfs/cfe_es/PerfFilter14 + loc://FilterActual14 @@ -1653,7 +1672,7 @@ $(pv_value) Check Box 22 -35c7bfc1:1509236a393:-75d1 - 18 + 80 339 @@ -1682,7 +1701,7 @@ $(pv_value) 20 TriggerActual21 - /cfs/cfe_es/PerfTrigger21 + loc://TriggerActual21 @@ -1700,7 +1719,7 @@ $(pv_value) Check Box 22 -35c7bfc1:1509236a393:-74b8 - 160 + 222 472 @@ -1747,7 +1766,7 @@ $(pv_value) Check Box 22 -35c7bfc1:1509236a393:-74ca - 80 + 142 415 @@ -1776,7 +1795,7 @@ $(pv_value) 20 TriggerActual30 - /cfs/cfe_es/PerfTrigger30 + loc://TriggerActual30 @@ -1794,7 +1813,7 @@ $(pv_value) Check Box 22 -35c7bfc1:1509236a393:-748b - 160 + 222 645 @@ -1841,7 +1860,7 @@ $(pv_value) Check Box 22 -35c7bfc1:1509236a393:-748e - 80 + 142 645 @@ -1888,7 +1907,7 @@ $(pv_value) Check Box 22 -35c7bfc1:1509236a393:-74a2 - 80 + 142 569 @@ -1917,7 +1936,7 @@ $(pv_value) 20 TriggerActual3 - /cfs/cfe_es/PerfTrigger3 + loc://TriggerActual3 @@ -1935,7 +1954,7 @@ $(pv_value) Check Box 22 -35c7bfc1:1509236a393:-76be - 160 + 222 128 @@ -1982,7 +2001,7 @@ $(pv_value) Check Box 22 -35c7bfc1:1509236a393:-7482 - 222 + 284 683 @@ -2029,7 +2048,7 @@ $(pv_value) Check Box 22 -35c7bfc1:1509236a393:-74cd - 222 + 284 396 @@ -2058,7 +2077,7 @@ $(pv_value) 20 FilterActual29 - /cfs/cfe_es/PerfFilter29 + loc://FilterActual29 @@ -2076,7 +2095,7 @@ $(pv_value) Check Box 22 -35c7bfc1:1509236a393:-7492 - 18 + 80 626 @@ -2105,7 +2124,7 @@ $(pv_value) 20 TriggerActual15 - /cfs/cfe_es/PerfTrigger15 + loc://TriggerActual15 @@ -2123,7 +2142,7 @@ $(pv_value) Check Box 22 -35c7bfc1:1509236a393:-75ca - 160 + 222 358 @@ -2170,7 +2189,7 @@ $(pv_value) Check Box 22 -35c7bfc1:1509236a393:-7c12 - 80 + 142 90 @@ -2199,7 +2218,7 @@ $(pv_value) 20 FilterActual1 - /cfs/cfe_es/PerfFilter1 + loc://FilterActual1 @@ -2217,7 +2236,7 @@ $(pv_value) Check Box 22 -35c7bfc1:1509236a393:-7c0d - 18 + 80 90 @@ -2257,7 +2276,7 @@ $(pv_value) 163 false -35c7bfc1:1509236a393:-7769 - 282 + 344 90 @@ -2304,7 +2323,7 @@ $(pv_value) Check Box 22 -35c7bfc1:1509236a393:-74b6 - 80 + 142 491 @@ -2351,7 +2370,7 @@ $(pv_value) Check Box 22 -35c7bfc1:1509236a393:-75d2 - 80 + 142 339 @@ -2391,7 +2410,7 @@ $(pv_value) 163 false -35c7bfc1:1509236a393:-749e - 282 + 344 569 @@ -2420,7 +2439,7 @@ $(pv_value) 20 FilterActual32 - /cfs/cfe_es/PerfFilter32 + loc://FilterActual32 @@ -2438,7 +2457,7 @@ $(pv_value) Check Box 22 -35c7bfc1:1509236a393:-7483 - 18 + 80 683 @@ -2467,7 +2486,7 @@ $(pv_value) 20 TriggerActual19 - /cfs/cfe_es/PerfTrigger19 + loc://TriggerActual19 @@ -2485,7 +2504,7 @@ $(pv_value) Check Box 22 -35c7bfc1:1509236a393:-74c2 - 160 + 222 434 @@ -2514,7 +2533,7 @@ $(pv_value) 20 FilterActual21 - /cfs/cfe_es/PerfFilter22 + loc://FilterActual22 @@ -2532,7 +2551,7 @@ $(pv_value) Check Box 22 -35c7bfc1:1509236a393:-74ba - 18 + 80 472 @@ -2579,7 +2598,7 @@ $(pv_value) Check Box 22 -35c7bfc1:1509236a393:-74ac - 80 + 142 529 @@ -2626,7 +2645,7 @@ $(pv_value) Check Box 22 -35c7bfc1:1509236a393:-77c2 - 222 + 284 90 @@ -2655,7 +2674,7 @@ $(pv_value) 20 FilterActual9 - /cfs/cfe_es/PerfFilter9 + loc://FilterActual9 @@ -2673,7 +2692,7 @@ $(pv_value) Check Box 22 -35c7bfc1:1509236a393:-75ea - 18 + 80 244 @@ -2702,7 +2721,7 @@ $(pv_value) 20 FilterActual17 - /cfs/cfe_es/PerfFilter17 + loc://FilterActual17 @@ -2720,7 +2739,7 @@ $(pv_value) Check Box 22 -35c7bfc1:1509236a393:-74ce - 18 + 80 396 @@ -2749,7 +2768,7 @@ $(pv_value) 20 TriggerActual20 - /cfs/cfe_es/PerfTrigger20 + loc://TriggerActual20 @@ -2767,7 +2786,7 @@ $(pv_value) Check Box 22 -35c7bfc1:1509236a393:-74bd - 160 + 222 453 @@ -2814,7 +2833,7 @@ $(pv_value) Check Box 22 -35c7bfc1:1509236a393:-767b - 222 + 284 204 @@ -2861,7 +2880,7 @@ $(pv_value) Check Box 22 -35c7bfc1:1509236a393:-76d2 - 80 + 142 109 @@ -2908,7 +2927,7 @@ $(pv_value) Check Box 22 -35c7bfc1:1509236a393:-768c - 222 + 284 185 @@ -2937,7 +2956,7 @@ $(pv_value) 20 FilterActual12 - /cfs/cfe_es/PerfFilter12 + loc://FilterActual12 @@ -2955,7 +2974,7 @@ $(pv_value) Check Box 22 -35c7bfc1:1509236a393:-75db - 18 + 80 301 @@ -2984,7 +3003,7 @@ $(pv_value) 20 FilterActual19 - /cfs/cfe_es/PerfFilter19 + loc://FilterActual19 @@ -3002,7 +3021,7 @@ $(pv_value) Check Box 22 -35c7bfc1:1509236a393:-74c4 - 18 + 80 434 @@ -3042,7 +3061,7 @@ $(pv_value) 163 false -35c7bfc1:1509236a393:-76ac - 282 + 344 147 @@ -3071,7 +3090,7 @@ $(pv_value) 20 TriggerActual10 - /cfs/cfe_es/PerfTrigger10 + loc://TriggerActual10 @@ -3089,7 +3108,7 @@ $(pv_value) Check Box 22 -35c7bfc1:1509236a393:-75e3 - 160 + 222 263 @@ -3136,7 +3155,7 @@ $(pv_value) Check Box 22 -35c7bfc1:1509236a393:-75e1 - 80 + 142 282 @@ -3165,7 +3184,7 @@ $(pv_value) 20 TriggerActual7 - /cfs/cfe_es/PerfTrigger7 + loc://TriggerActual7 @@ -3183,7 +3202,7 @@ $(pv_value) Check Box 22 -35c7bfc1:1509236a393:-767a - 160 + 222 204 @@ -3212,7 +3231,7 @@ $(pv_value) 20 TriggerActual27 - /cfs/cfe_es/PerfTrigger27 + loc://TriggerActual27 @@ -3230,7 +3249,7 @@ $(pv_value) Check Box 22 -35c7bfc1:1509236a393:-749a - 160 + 222 588 @@ -3270,7 +3289,7 @@ $(pv_value) 163 false -35c7bfc1:1509236a393:-7485 - 282 + 344 664 @@ -3317,7 +3336,7 @@ $(pv_value) Check Box 22 -35c7bfc1:1509236a393:-769d - 222 + 284 166 @@ -3346,7 +3365,7 @@ $(pv_value) 20 FilterActual11 - /cfs/cfe_es/PerfFilter11 + loc://FilterActual11 @@ -3364,7 +3383,7 @@ $(pv_value) Check Box 22 -35c7bfc1:1509236a393:-75e0 - 18 + 80 282 @@ -3393,7 +3412,7 @@ $(pv_value) 20 FilterActual30 - /cfs/cfe_es/PerfFilter30 + loc://FilterActual30 @@ -3411,7 +3430,7 @@ $(pv_value) Check Box 22 -35c7bfc1:1509236a393:-748d - 18 + 80 645 @@ -3458,7 +3477,7 @@ $(pv_value) Check Box 22 -35c7bfc1:1509236a393:-768e - 80 + 142 185 @@ -3505,7 +3524,7 @@ $(pv_value) Check Box 22 -35c7bfc1:1509236a393:-75dc - 80 + 142 301 @@ -3552,7 +3571,7 @@ $(pv_value) Check Box 22 -35c7bfc1:1509236a393:-75cd - 80 + 142 358 @@ -3592,7 +3611,7 @@ $(pv_value) 163 false -35c7bfc1:1509236a393:-7679 - 282 + 344 204 @@ -3632,7 +3651,7 @@ $(pv_value) 163 false -35c7bfc1:1509236a393:-75dd - 282 + 344 282 @@ -3679,7 +3698,7 @@ $(pv_value) Check Box 22 -35c7bfc1:1509236a393:-748c - 222 + 284 645 @@ -3726,7 +3745,7 @@ $(pv_value) Check Box 22 -35c7bfc1:1509236a393:-75e4 - 222 + 284 263 @@ -3773,7 +3792,7 @@ $(pv_value) Check Box 22 -35c7bfc1:1509236a393:-74af - 222 + 284 510 @@ -3813,7 +3832,7 @@ $(pv_value) 163 false -35c7bfc1:1509236a393:-76bd - 282 + 344 128 @@ -3860,7 +3879,7 @@ $(pv_value) Check Box 22 -35c7bfc1:1509236a393:-75d0 - 222 + 284 339 @@ -3889,7 +3908,7 @@ $(pv_value) 20 TriggerActual28 - /cfs/cfe_es/PerfTrigger28 + loc://TriggerActual28 @@ -3907,7 +3926,7 @@ $(pv_value) Check Box 22 -35c7bfc1:1509236a393:-7495 - 160 + 222 607 @@ -3947,7 +3966,7 @@ $(pv_value) 163 false -35c7bfc1:1509236a393:-74cb - 282 + 344 396 @@ -3987,7 +4006,7 @@ $(pv_value) 163 false -35c7bfc1:1509236a393:-76ce - 282 + 344 109 @@ -4034,7 +4053,7 @@ $(pv_value) Check Box 22 -35c7bfc1:1509236a393:-75d5 - 222 + 284 320 @@ -4074,7 +4093,7 @@ $(pv_value) 163 false -35c7bfc1:1509236a393:-74a8 - 282 + 344 529 @@ -4121,7 +4140,7 @@ $(pv_value) Check Box 22 -35c7bfc1:1509236a393:-7491 - 222 + 284 626 @@ -4161,7 +4180,7 @@ $(pv_value) 163 false -35c7bfc1:1509236a393:-74c1 - 282 + 344 434 @@ -4201,7 +4220,7 @@ $(pv_value) 163 false -35c7bfc1:1509236a393:-748a - 282 + 344 645 @@ -4248,7 +4267,7 @@ $(pv_value) Check Box 22 -35c7bfc1:1509236a393:-76b0 - 80 + 142 147 @@ -4277,7 +4296,7 @@ $(pv_value) 20 FilterActual5 - /cfs/cfe_es/PerfFilter5 + loc://FilterActual5 @@ -4295,7 +4314,7 @@ $(pv_value) Check Box 22 -35c7bfc1:1509236a393:-769e - 18 + 80 166 @@ -4335,7 +4354,7 @@ $(pv_value) 163 false -35c7bfc1:1509236a393:-769b - 282 + 344 166 @@ -4364,7 +4383,7 @@ $(pv_value) 20 FilterActual6 - /cfs/cfe_es/PerfFilter6 + loc://FilterActual6 @@ -4382,7 +4401,7 @@ $(pv_value) Check Box 22 -35c7bfc1:1509236a393:-768d - 18 + 80 185 @@ -4429,7 +4448,7 @@ $(pv_value) Check Box 22 -35c7bfc1:1509236a393:-75c8 - 80 + 142 377 @@ -4458,7 +4477,7 @@ $(pv_value) 20 FilterActual28 - /cfs/cfe_es/PerfFilter28 + loc://FilterActual28 @@ -4476,7 +4495,7 @@ $(pv_value) Check Box 22 -35c7bfc1:1509236a393:-7497 - 18 + 80 607 @@ -4523,7 +4542,7 @@ $(pv_value) Check Box 22 -35c7bfc1:1509236a393:-767d - 80 + 142 204 @@ -4570,7 +4589,7 @@ $(pv_value) Check Box 22 -35c7bfc1:1509236a393:-75c6 - 222 + 284 377 @@ -4599,7 +4618,7 @@ $(pv_value) 20 FilterActual10 - /cfs/cfe_es/PerfFilter10 + loc://FilterActual10 @@ -4617,7 +4636,7 @@ $(pv_value) Check Box 22 -35c7bfc1:1509236a393:-75e5 - 18 + 80 263 @@ -4664,7 +4683,7 @@ $(pv_value) Check Box 22 -35c7bfc1:1509236a393:-7487 - 222 + 284 664 @@ -4693,7 +4712,7 @@ $(pv_value) 20 FilterActual25 - /cfs/cfe_es/PerfFilter25 + loc://FilterActual25 @@ -4711,7 +4730,7 @@ $(pv_value) Check Box 22 -35c7bfc1:1509236a393:-74a6 - 18 + 80 550 @@ -4758,7 +4777,7 @@ $(pv_value) Check Box 22 -35c7bfc1:1509236a393:-74bb - 80 + 142 472 @@ -4805,7 +4824,7 @@ $(pv_value) Check Box 22 -35c7bfc1:1509236a393:-74b4 - 222 + 284 491 @@ -4845,7 +4864,7 @@ $(pv_value) 163 false -35c7bfc1:1509236a393:-75c9 - 282 + 344 358 @@ -4874,7 +4893,7 @@ $(pv_value) 20 TriggerActual11 - /cfs/cfe_es/PerfTrigger11 + loc://TriggerActual11 @@ -4892,7 +4911,7 @@ $(pv_value) Check Box 22 -35c7bfc1:1509236a393:-75de - 160 + 222 282 @@ -4932,7 +4951,7 @@ $(pv_value) 163 false -35c7bfc1:1509236a393:-75ce - 282 + 344 339 @@ -4961,7 +4980,7 @@ $(pv_value) 20 FilterActual31 - /cfs/cfe_es/PerfFilter31 + loc://FilterActual31 @@ -4979,7 +4998,7 @@ $(pv_value) Check Box 22 -35c7bfc1:1509236a393:-7488 - 18 + 80 664 @@ -5008,7 +5027,7 @@ $(pv_value) 20 FilterActual23 - /cfs/cfe_es/PerfFilter23 + loc://FilterActual23 @@ -5026,7 +5045,7 @@ $(pv_value) Check Box 22 -35c7bfc1:1509236a393:-74b0 - 18 + 80 510 @@ -5073,7 +5092,7 @@ $(pv_value) Check Box 22 -35c7bfc1:1509236a393:-76c1 - 80 + 142 128 @@ -5102,7 +5121,7 @@ $(pv_value) 20 FilterActual4 - /cfs/cfe_es/PerfFilter4 + loc://FilterActual4 @@ -5120,7 +5139,7 @@ $(pv_value) Check Box 22 -35c7bfc1:1509236a393:-76af - 18 + 80 147 @@ -5167,7 +5186,7 @@ $(pv_value) Check Box 22 -35c7bfc1:1509236a393:-749d - 80 + 142 588 @@ -5214,7 +5233,7 @@ $(pv_value) Check Box 22 -35c7bfc1:1509236a393:-74cf - 80 + 142 396 @@ -5261,7 +5280,7 @@ $(pv_value) Check Box 22 -35c7bfc1:1509236a393:-74a0 - 222 + 284 569 @@ -5308,7 +5327,7 @@ $(pv_value) Check Box 22 -35c7bfc1:1509236a393:-76bf - 222 + 284 128 @@ -5355,7 +5374,7 @@ $(pv_value) Check Box 22 -35c7bfc1:1509236a393:-74a7 - 80 + 142 550 @@ -5402,7 +5421,7 @@ $(pv_value) Check Box 22 -35c7bfc1:1509236a393:-74a5 - 222 + 284 550 @@ -5442,7 +5461,7 @@ $(pv_value) 163 false -35c7bfc1:1509236a393:-74c6 - 282 + 344 415 @@ -5489,7 +5508,7 @@ $(pv_value) Check Box 22 -35c7bfc1:1509236a393:-74c3 - 222 + 284 434 @@ -5536,7 +5555,7 @@ $(pv_value) Check Box 22 -35c7bfc1:1509236a393:-75df - 222 + 284 282 @@ -5565,7 +5584,7 @@ $(pv_value) 20 TriggerActual25 - /cfs/cfe_es/PerfTrigger25 + loc://TriggerActual25 @@ -5583,7 +5602,7 @@ $(pv_value) Check Box 22 -35c7bfc1:1509236a393:-74a4 - 160 + 222 550 @@ -5612,7 +5631,7 @@ $(pv_value) 20 TriggerActual17 - /cfs/cfe_es/PerfTrigger17 + loc://TriggerActual17 @@ -5630,7 +5649,7 @@ $(pv_value) Check Box 22 -35c7bfc1:1509236a393:-74cc - 160 + 222 396 @@ -5659,7 +5678,7 @@ $(pv_value) 20 TriggerActual23 - /cfs/cfe_es/PerfTrigger23 + loc://TriggerActual23 @@ -5677,7 +5696,7 @@ $(pv_value) Check Box 22 -35c7bfc1:1509236a393:-74ae - 160 + 222 510 @@ -5724,7 +5743,7 @@ $(pv_value) Check Box 22 -35c7bfc1:1509236a393:-75eb - 80 + 142 244 @@ -5771,7 +5790,7 @@ $(pv_value) Check Box 22 -35c7bfc1:1509236a393:-7489 - 80 + 142 664 @@ -5800,7 +5819,7 @@ $(pv_value) 20 FilterActual24 - /cfs/cfe_es/PerfFilter24 + loc://FilterActual24 @@ -5818,7 +5837,7 @@ $(pv_value) Check Box 22 -35c7bfc1:1509236a393:-74ab - 18 + 80 529 @@ -5847,7 +5866,7 @@ $(pv_value) 20 TriggerActual5 - /cfs/cfe_es/PerfTrigger5 + loc://TriggerActual5 @@ -5865,7 +5884,7 @@ $(pv_value) Check Box 22 -35c7bfc1:1509236a393:-769c - 160 + 222 166 @@ -5912,7 +5931,7 @@ $(pv_value) Check Box 22 -35c7bfc1:1509236a393:-769f - 80 + 142 166 @@ -5941,7 +5960,7 @@ $(pv_value) 20 FilterActual3 - /cfs/cfe_es/PerfFilter3 + loc://FilterActual3 @@ -5959,7 +5978,7 @@ $(pv_value) Check Box 22 -35c7bfc1:1509236a393:-76c0 - 18 + 80 128 @@ -5988,7 +6007,7 @@ $(pv_value) 20 TriggerActual18 - /cfs/cfe_es/PerfTrigger18 + loc://TriggerActual18 @@ -6006,7 +6025,7 @@ $(pv_value) Check Box 22 -35c7bfc1:1509236a393:-74c7 - 160 + 222 415 @@ -6046,7 +6065,7 @@ $(pv_value) 163 false -35c7bfc1:1509236a393:-7668 - 282 + 344 223 @@ -6086,7 +6105,7 @@ $(pv_value) 163 false -35c7bfc1:1509236a393:-75c4 - 282 + 344 377 @@ -6133,7 +6152,7 @@ $(pv_value) Check Box 22 -35c7bfc1:1509236a393:-749b - 222 + 284 588 @@ -6173,7 +6192,7 @@ $(pv_value) 163 false -35c7bfc1:1509236a393:-75e7 - 282 + 344 244 @@ -6202,7 +6221,7 @@ $(pv_value) 20 TriggerActual9 - /cfs/cfe_es/PerfTrigger9 + loc://TriggerActual9 @@ -6220,7 +6239,7 @@ $(pv_value) Check Box 22 -35c7bfc1:1509236a393:-75e8 - 160 + 222 244 @@ -6249,7 +6268,7 @@ $(pv_value) 20 TriggerActual13 - /cfs/cfe_es/PerfTrigger13 + loc://TriggerActual13 @@ -6267,7 +6286,7 @@ $(pv_value) Check Box 22 -35c7bfc1:1509236a393:-75d4 - 160 + 222 320 @@ -6307,7 +6326,7 @@ $(pv_value) 163 false -35c7bfc1:1509236a393:-74b7 - 282 + 344 472 @@ -6354,7 +6373,7 @@ $(pv_value) Check Box 22 -35c7bfc1:1509236a393:-7484 - 80 + 142 683 @@ -6394,7 +6413,7 @@ $(pv_value) 163 false -35c7bfc1:1509236a393:-75d3 - 282 + 344 320 @@ -6423,7 +6442,7 @@ $(pv_value) 20 FilterActual16 - /cfs/cfe_es/PerfFilter16 + loc://FilterActual16 @@ -6441,7 +6460,7 @@ $(pv_value) Check Box 22 -35c7bfc1:1509236a393:-75c7 - 18 + 80 377 @@ -6470,7 +6489,7 @@ $(pv_value) 20 FilterActual22 - /cfs/cfe_es/PerfFilter22 + loc://FilterActual22 @@ -6488,7 +6507,7 @@ $(pv_value) Check Box 22 -35c7bfc1:1509236a393:-74b5 - 18 + 80 491 @@ -6517,7 +6536,7 @@ $(pv_value) 20 TriggerActual26 - /cfs/cfe_es/PerfTrigger26 + loc://TriggerActual26 @@ -6535,7 +6554,7 @@ $(pv_value) Check Box 22 -35c7bfc1:1509236a393:-749f - 160 + 222 569 @@ -6564,7 +6583,7 @@ $(pv_value) 20 TriggerActual4 - /cfs/cfe_es/PerfTrigger4 + loc://TriggerActual4 @@ -6582,7 +6601,7 @@ $(pv_value) Check Box 22 -35c7bfc1:1509236a393:-76ad - 160 + 222 147 @@ -6611,7 +6630,7 @@ $(pv_value) 20 TriggerActual24 - /cfs/cfe_es/PerfTrigger24 + loc://TriggerActual24 @@ -6629,7 +6648,7 @@ $(pv_value) Check Box 22 -35c7bfc1:1509236a393:-74a9 - 160 + 222 529 @@ -6676,7 +6695,7 @@ $(pv_value) Check Box 22 -35c7bfc1:1509236a393:-74b1 - 80 + 142 510 @@ -6705,7 +6724,7 @@ $(pv_value) 20 FilterActual13 - /cfs/cfe_es/PerfFilter13 + loc://FilterActual13 @@ -6723,7 +6742,7 @@ $(pv_value) Check Box 22 -35c7bfc1:1509236a393:-75d6 - 18 + 80 320 @@ -6763,7 +6782,7 @@ $(pv_value) 163 false -35c7bfc1:1509236a393:-74b2 - 282 + 344 491 @@ -6803,7 +6822,7 @@ $(pv_value) 163 false -35c7bfc1:1509236a393:-74ad - 282 + 344 510 @@ -6850,7 +6869,7 @@ $(pv_value) Check Box 22 -35c7bfc1:1509236a393:-766c - 80 + 142 223 @@ -6879,7 +6898,7 @@ $(pv_value) 20 TriggerActual16 - /cfs/cfe_es/PerfTrigger16 + loc://TriggerActual16 @@ -6897,7 +6916,7 @@ $(pv_value) Check Box 22 -35c7bfc1:1509236a393:-75c5 - 160 + 222 377 @@ -6926,7 +6945,7 @@ $(pv_value) 20 TriggerActual22 - /cfs/cfe_es/PerfTrigger22 + loc://TriggerActual22 @@ -6944,7 +6963,7 @@ $(pv_value) Check Box 22 -35c7bfc1:1509236a393:-74b3 - 160 + 222 491 @@ -6991,7 +7010,7 @@ $(pv_value) Check Box 22 -35c7bfc1:1509236a393:-7498 - 80 + 142 607 @@ -7020,7 +7039,7 @@ $(pv_value) 20 TriggerActual1 - /cfs/cfe_es/PerfTrigger1 + loc://TriggerActual1 @@ -7038,7 +7057,7 @@ $(pv_value) Check Box 22 -35c7bfc1:1509236a393:-77c1 - 160 + 222 90 @@ -7078,7 +7097,7 @@ $(pv_value) 163 false -35c7bfc1:1509236a393:-74a3 - 282 + 344 550 @@ -7118,7 +7137,7 @@ $(pv_value) 163 false -35c7bfc1:1509236a393:-7499 - 282 + 344 588 @@ -7147,7 +7166,7 @@ $(pv_value) 20 FilterActual7 - /cfs/cfe_es/PerfFilter7 + loc://FilterActual7 @@ -7165,7 +7184,7 @@ $(pv_value) Check Box 22 -35c7bfc1:1509236a393:-767c - 18 + 80 204 @@ -7205,7 +7224,7 @@ $(pv_value) 163 false -35c7bfc1:1509236a393:-768a - 282 + 344 185 @@ -7234,7 +7253,7 @@ $(pv_value) 20 TriggerActual32 - /cfs/cfe_es/PerfTrigger32 + loc://TriggerActual32 @@ -7252,7 +7271,7 @@ $(pv_value) Check Box 22 -35c7bfc1:1509236a393:-7481 - 160 + 222 683 @@ -7299,7 +7318,7 @@ $(pv_value) Check Box 22 -35c7bfc1:1509236a393:-74c0 - 80 + 142 453 @@ -7339,7 +7358,7 @@ $(pv_value) 163 false -35c7bfc1:1509236a393:-7494 - 282 + 344 607 @@ -7379,7 +7398,7 @@ $(pv_value) 163 false -35c7bfc1:1509236a393:-75e2 - 282 + 344 263 @@ -7408,7 +7427,7 @@ $(pv_value) 20 TriggerActual12 - /cfs/cfe_es/PerfTrigger12 + loc://TriggerActual12 @@ -7426,7 +7445,7 @@ $(pv_value) Check Box 22 -35c7bfc1:1509236a393:-75d9 - 160 + 222 301 @@ -7455,7 +7474,7 @@ $(pv_value) 20 FilterActual2 - /cfs/cfe_es/PerfFilter2 + loc://FilterActual2 @@ -7473,7 +7492,7 @@ $(pv_value) Check Box 22 -35c7bfc1:1509236a393:-76d1 - 18 + 80 109 @@ -7502,7 +7521,7 @@ $(pv_value) 20 TriggerActual8 - /cfs/cfe_es/PerfTrigger8 + loc://TriggerActual8 @@ -7520,7 +7539,7 @@ $(pv_value) Check Box 22 -35c7bfc1:1509236a393:-7669 - 160 + 222 223 @@ -7567,7 +7586,7 @@ $(pv_value) Check Box 22 -35c7bfc1:1509236a393:-7496 - 222 + 284 607 @@ -7596,7 +7615,7 @@ $(pv_value) 20 TriggerActual29 - /cfs/cfe_es/PerfTrigger29 + loc://TriggerActual29 @@ -7614,7 +7633,7 @@ $(pv_value) Check Box 22 -35c7bfc1:1509236a393:-7490 - 160 + 222 626 @@ -7654,7 +7673,7 @@ $(pv_value) 163 false -35c7bfc1:1509236a393:-748f - 282 + 344 626 @@ -7701,7 +7720,7 @@ $(pv_value) Check Box 22 -35c7bfc1:1509236a393:-74c5 - 80 + 142 434 @@ -7730,7 +7749,7 @@ $(pv_value) 20 TriggerActual31 - /cfs/cfe_es/PerfTrigger31 + loc://TriggerActual31 @@ -7748,7 +7767,7 @@ $(pv_value) Check Box 22 -35c7bfc1:1509236a393:-7486 - 160 + 222 664 @@ -7777,7 +7796,7 @@ $(pv_value) 20 TriggerActual2 - /cfs/cfe_es/PerfTrigger2 + loc://TriggerActual2 @@ -7795,7 +7814,7 @@ $(pv_value) Check Box 22 -35c7bfc1:1509236a393:-76cf - 160 + 222 109 @@ -7824,7 +7843,7 @@ $(pv_value) 20 FilterActual8 - /cfs/cfe_es/PerfFilter8 + loc://FilterActual8 @@ -7842,7 +7861,7 @@ $(pv_value) Check Box 22 -35c7bfc1:1509236a393:-766b - 18 + 80 223 @@ -7889,7 +7908,7 @@ $(pv_value) Check Box 22 -35c7bfc1:1509236a393:-75da - 222 + 284 301 @@ -7936,7 +7955,7 @@ $(pv_value) Check Box 22 -35c7bfc1:1509236a393:-75d7 - 80 + 142 320 @@ -7976,7 +7995,7 @@ $(pv_value) 163 false -35c7bfc1:1509236a393:-75d8 - 282 + 344 301 @@ -8005,7 +8024,7 @@ $(pv_value) 20 TriggerActual6 - /cfs/cfe_es/PerfTrigger6 + loc://TriggerActual6 @@ -8023,7 +8042,7 @@ $(pv_value) Check Box 22 -35c7bfc1:1509236a393:-768b - 160 + 222 185 @@ -8070,7 +8089,7 @@ $(pv_value) Check Box 22 -35c7bfc1:1509236a393:-75e6 - 80 + 142 263 @@ -8099,7 +8118,7 @@ $(pv_value) 20 FilterActual18 - /cfs/cfe_es/PerfFilter18 + loc://FilterActual18 @@ -8117,7 +8136,7 @@ $(pv_value) Check Box 22 -35c7bfc1:1509236a393:-74c9 - 18 + 80 415 @@ -8164,7 +8183,7 @@ $(pv_value) Check Box 22 -35c7bfc1:1509236a393:-75e9 - 222 + 284 244 @@ -8204,7 +8223,7 @@ $(pv_value) 163 false -35c7bfc1:1509236a393:-74bc - 282 + 344 453 @@ -8244,7 +8263,7 @@ $(pv_value) 163 false -35c7bfc1:1509236a393:-7480 - 282 + 344 683 @@ -8284,8 +8303,8 @@ $(pv_value) 50 false -35c7bfc1:1509236a393:-77bf - 143 - 49 + 204 + 24 @@ -8321,11 +8340,11 @@ $(pv_value) 1 true Label - 50 + 79 false -35c7bfc1:1509236a393:-77dc - 67 - 49 + 115 + 24 @@ -8361,11 +8380,11 @@ $(pv_value) 1 true Label - 50 + 75 false -35c7bfc1:1509236a393:-77be - 209 - 49 + 257 + 24 @@ -8404,8 +8423,8 @@ $(pv_value) 50 false -35c7bfc1:1509236a393:-77e6 - 1 - 49 + 62 + 24 @@ -8444,8 +8463,8 @@ $(pv_value) 50 false -35c7bfc1:1509236a393:-77c0 - 174 - 30 + 235 + 5 @@ -8484,8 +8503,8 @@ $(pv_value) 50 false -35c7bfc1:1509236a393:-7836 - 32 - 30 + 93 + 5 @@ -8495,19 +8514,25 @@ $(pv_value) importPackage(Packages.org.yamcs.studio.script); importPackage(Packages.org.yamcs.studio.data); -var cmdString = '/cfs/cfe_es/PerfSetFilterMask1('; +var maskNumber = 0; +var maskValue = 0; -for(var i = 1; i <= 32; ++i) { - var PerfID = 'PerfFilter' + i; - var RequestFilterName = 'FilterRequest' + i; - cmdString = cmdString + PerfID + ': ' + VTypeHelper.getDouble(display.getWidget(RequestFilterName).getPropertyValue('pv_value')); - if(i < 32) { - cmdString = cmdString + ', '; - } +for(var i = 1; i <= 31; ++i) { + var RequestFilterName = 'FilterRequest' + i; + var perfIdValue = VTypeHelper.getDouble(display.getWidget(RequestFilterName).getPropertyValue('pv_value')); + + if(perfIdValue >= 0) { + if(i < 31) { + maskValue = Math.pow(2, i - 1) + maskValue; + } else { + maskValue = maskValue | 0x80000000; + } + } } -cmdString = cmdString + ')'; -Yamcs.issueCommand(cmdString);]]> +Yamcs.issueCommand( '/cfs/cfe_es/PerfSetFilterMask', { + 'Payload.FilterMaskNum': maskNumber, + 'Payload.FilterMask': '4294967295'});]]> true @@ -8532,7 +8557,7 @@ Yamcs.issueCommand(cmdString);]]> 25 - + ../../Resources/send.png Action Button_2 0 @@ -8551,10 +8576,10 @@ Yamcs.issueCommand(cmdString);]]> $(pv_value) true Action Button - 51 + 55 -35c7bfc1:1509236a393:-76f0 - 4 - 6 + 63 + 43 @@ -8601,7 +8626,7 @@ Yamcs.issueCommand(cmdString);]]> 25 - + ../../Resources/send.png Action Button_3 0 @@ -8620,10 +8645,10 @@ Yamcs.issueCommand(cmdString);]]> $(pv_value) true Action Button - 51 + 55 -35c7bfc1:1509236a393:-76e6 - 146 - 6 + 205 + 43 @@ -8682,10 +8707,10 @@ for(var i = 1; i <= 32; ++i) { $(pv_value) true Action Button - 51 + 65 -35c7bfc1:1509236a393:-6e6e - 66 - 6 + 120 + 43 @@ -8744,10 +8769,10 @@ for(var i = 1; i <= 32; ++i) { $(pv_value) true Action Button - 51 + 65 -35c7bfc1:1509236a393:-6e60 - 208 - 6 + 262 + 43 @@ -8808,7 +8833,7 @@ $(pv_value) Check Box 22 -35c7bfc1:1509236a393:-4be4 - 80 + 142 68 @@ -8870,7 +8895,7 @@ $(pv_value) Check Box 22 -35c7bfc1:1509236a393:-4bdf - 222 + 284 68 @@ -8910,7 +8935,7 @@ $(pv_value) true false Grouping Container - 448 + 659 -35c7bfc1:1509236a393:-7207 1 1 @@ -8951,7 +8976,7 @@ $(pv_value) true false Grouping Container - 448 + 659 -35c7bfc1:1509236a393:-7206 1 1 @@ -8992,10 +9017,10 @@ $(pv_value) true false Grouping Container - 448 + 659 -35c7bfc1:1509236a393:-7205 1 1 - + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Core/ES/QueryApp.opi b/core/base/tools/commander/workspace_template/Displays/Core/ES/QueryApp.opi index 95d0b52c4..c98a9f8f4 100644 --- a/core/base/tools/commander/workspace_template/Displays/Core/ES/QueryApp.opi +++ b/core/base/tools/commander/workspace_template/Displays/Core/ES/QueryApp.opi @@ -15,11 +15,11 @@ 6 - 60 + 120 true - + CFE-ES - Query App true @@ -28,22 +28,22 @@ true true Display - 300 + 200 72a2bf2b:1508717c835:-7d33 -1 -1 - scripts/QueryOneApp.js + +Yamcs.issueCommand('/cfs/cfe_es/QueryOneApp', { + 'Payload.Application': appName});]]> true @@ -68,7 +68,7 @@ Yamcs.issueCommand(cmd);]]> 24 - + ../../Resources/send.png Action Button 0 @@ -87,10 +87,10 @@ Yamcs.issueCommand(cmd);]]> $(pv_value) true Action Button - 61 + 79 72a2bf2b:1508717c835:-7cf7 - 198 - 17 + 66 + 84 @@ -129,8 +129,8 @@ $(pv_value) 50 false 72a2bf2b:1508717c835:-7c63 - 12 - 19 + 2 + 47 @@ -153,7 +153,7 @@ $(pv_value) - 32 + 30 CF CI @@ -191,7 +191,47 @@ $(pv_value) Combo 115 -3fca34e1:15096a78c93:-79bc - 72 - 14 + 62 + 42 - + + + false + + + + + + + 0 + 1 + true + + Default Bold + + + + + 20 + 1 + Label + + + true + true + false + + + Query One Application + + true + 1 + true + Label + 175 + false + 14292858:17759dd02e1:-7cd3 + 18 + 12 + + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Core/ES/RestartApp.opi b/core/base/tools/commander/workspace_template/Displays/Core/ES/RestartApp.opi index 1537937d2..af53bb808 100644 --- a/core/base/tools/commander/workspace_template/Displays/Core/ES/RestartApp.opi +++ b/core/base/tools/commander/workspace_template/Displays/Core/ES/RestartApp.opi @@ -19,7 +19,7 @@ true - + CFE-ES - Restart App true @@ -28,23 +28,21 @@ true true Display - 300 + 280 72a2bf2b:1508717c835:-7839 -1 -1 - scripts/RestartApp.js + +Yamcs.issueCommand('/cfs/cfe_es/RestartApp', {'Payload.Application': appName});]]> true @@ -69,7 +67,7 @@ Yamcs.issueCommand(cmd);]]> 25 - + ../../Resources/send.png Action Button 0 @@ -88,10 +86,10 @@ Yamcs.issueCommand(cmd);]]> $(pv_value) true Action Button - 73 + 96 72a2bf2b:1508717c835:-77e3 - 114 - 90 + 91 + 83 @@ -130,8 +128,8 @@ $(pv_value) 80 false 72a2bf2b:1508717c835:-772d - 24 - 48 + 12 + 47 @@ -154,7 +152,7 @@ $(pv_value) - 32 + 30 CF CI @@ -187,8 +185,8 @@ $(pv_value) Combo 157 72a2bf2b:1508717c835:-76fa - 114 - 43 + 102 + 42 @@ -203,7 +201,7 @@ $(pv_value) 1 true - Default + Default Bold @@ -227,7 +225,7 @@ $(pv_value) 231 false 72a2bf2b:1508717c835:-76c0 - 40 - 15 + 28 + 12 - + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Core/ES/SetMaxPRCount.opi b/core/base/tools/commander/workspace_template/Displays/Core/ES/SetMaxPRCount.opi index 08df50d99..b3ceeeb82 100644 --- a/core/base/tools/commander/workspace_template/Displays/Core/ES/SetMaxPRCount.opi +++ b/core/base/tools/commander/workspace_template/Displays/Core/ES/SetMaxPRCount.opi @@ -19,7 +19,7 @@ true - + CFE-ES - Set Max Proc Reset true @@ -28,23 +28,21 @@ true true Display - 300 + 280 72a2bf2b:1508717c835:-7839 -1 -1 - scripts/RestartApp.js + +Yamcs.issueCommand('/cfs/cfe_es/SetMaxPRCount', {'Payload.MaxPRCount': maxResets});]]> true @@ -69,7 +67,7 @@ Yamcs.issueCommand(cmd);]]> 25 - + ../../Resources/send.png Action Button 0 @@ -90,8 +88,8 @@ $(pv_value) Action Button 73 72a2bf2b:1508717c835:-77e3 - 114 - 90 + 104 + 87 @@ -130,8 +128,8 @@ $(pv_value) 80 false 72a2bf2b:1508717c835:-772d - 24 - 48 + 14 + 45 @@ -185,8 +183,8 @@ $(pv_value) Spinner 157 72a2bf2b:1508717c835:-76fa - 114 - 43 + 104 + 40 @@ -201,7 +199,7 @@ $(pv_value) 1 true - Default + Default Bold @@ -225,7 +223,7 @@ $(pv_value) 231 false 72a2bf2b:1508717c835:-76c0 - 40 - 15 + 25 + 12 - + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Core/ES/SetSysLogMode.opi b/core/base/tools/commander/workspace_template/Displays/Core/ES/SetSysLogMode.opi index a04cd8ca8..2363b0e4f 100644 --- a/core/base/tools/commander/workspace_template/Displays/Core/ES/SetSysLogMode.opi +++ b/core/base/tools/commander/workspace_template/Displays/Core/ES/SetSysLogMode.opi @@ -19,7 +19,7 @@ true - + CFE-ES - Set SysLog Mode true @@ -28,16 +28,22 @@ true true Display - 300 + 280 72a2bf2b:1508717c835:-7839 -1 -1 - scripts/SetLogSysMode.js - - false + + + true @@ -61,7 +67,7 @@ 25 - + ../../Resources/send.png Action Button 0 @@ -82,8 +88,8 @@ $(pv_value) Action Button 73 72a2bf2b:1508717c835:-77e3 - 114 - 90 + 102 + 89 @@ -122,8 +128,8 @@ $(pv_value) 80 false 72a2bf2b:1508717c835:-772d - 24 - 48 + 12 + 47 @@ -146,7 +152,7 @@ $(pv_value) - 32 + 30 OVERWRITE DISCARD @@ -168,8 +174,8 @@ $(pv_value) Combo 157 72a2bf2b:1508717c835:-76fa - 114 - 43 + 102 + 42 @@ -184,7 +190,7 @@ $(pv_value) 1 true - Default + Default Bold @@ -208,7 +214,7 @@ $(pv_value) 231 false 72a2bf2b:1508717c835:-76c0 - 40 - 15 + 28 + 12 - + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Core/ES/StartApp.opi b/core/base/tools/commander/workspace_template/Displays/Core/ES/StartApp.opi index ea14a5d2f..d522a1523 100644 --- a/core/base/tools/commander/workspace_template/Displays/Core/ES/StartApp.opi +++ b/core/base/tools/commander/workspace_template/Displays/Core/ES/StartApp.opi @@ -19,7 +19,7 @@ true - + CFE-ES - Start App true @@ -28,14 +28,14 @@ true true Display - 300 + 350 72a2bf2b:1508717c835:-7839 -1 -1 - scripts/RestartApp.js + +Yamcs.issueCommand('/cfs/cfe_es/StartApp', { + 'Payload.Application': appName, + 'Payload.AppEntryPoint': entryPoint, + 'Payload.AppFileName': fileName, + 'Payload.StackSize': stackSize, + 'Payload.ExceptionAction': exceptionAction, + 'Payload.Priority': priority});]]> true @@ -79,7 +78,7 @@ Yamcs.issueCommand(cmd);]]> 25 - + ../../Resources/send.png Action Button 0 @@ -100,8 +99,8 @@ $(pv_value) Action Button 73 72a2bf2b:1508717c835:-77e3 - 161 - 259 + 144 + 252 @@ -141,7 +140,7 @@ $(pv_value) false 72a2bf2b:1508717c835:-772d 29 - 53 + 41 @@ -164,7 +163,7 @@ $(pv_value) - 34 + 32 CF CI @@ -195,10 +194,10 @@ $(pv_value) $(pv_value) true Combo - 157 + 226 72a2bf2b:1508717c835:-76fa 119 - 48 + 36 @@ -213,7 +212,7 @@ $(pv_value) 1 true - Default + Default Bold @@ -237,7 +236,7 @@ $(pv_value) 231 false 72a2bf2b:1508717c835:-76c0 - 82 + 65 12 @@ -278,7 +277,7 @@ $(pv_value) false 72a2bf2b:1508717c835:-734b 29 - 90 + 78 @@ -332,10 +331,10 @@ $(pv_value) false true Text Input - 152 + 221 72a2bf2b:1508717c835:-7345 122 - 90 + 78 @@ -375,7 +374,7 @@ $(pv_value) false 72a2bf2b:1508717c835:-7338 27 - 129 + 117 @@ -429,10 +428,10 @@ $(pv_value) false true Text Input - 152 + 221 72a2bf2b:1508717c835:-7337 122 - 126 + 114 @@ -472,7 +471,7 @@ $(pv_value) false 72a2bf2b:1508717c835:-7326 27 - 159 + 147 @@ -526,10 +525,10 @@ $(pv_value) false true Text Input - 152 + 221 72a2bf2b:1508717c835:-7325 122 - 156 + 144 @@ -569,7 +568,7 @@ $(pv_value) false 72a2bf2b:1508717c835:-731e 27 - 189 + 177 @@ -623,10 +622,10 @@ $(pv_value) false true Text Input - 152 + 221 72a2bf2b:1508717c835:-731d 122 - 186 + 174 @@ -666,7 +665,7 @@ $(pv_value) false 72a2bf2b:1508717c835:-730f -13 - 216 + 210 @@ -689,7 +688,7 @@ $(pv_value) - 34 + 32 APP RESTART PROC RESTART @@ -709,9 +708,9 @@ $(pv_value) $(pv_value) true Combo - 157 + 226 72a2bf2b:1508717c835:-730e 119 - 216 + 204 - + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Core/ES/StartPerfCollection.opi b/core/base/tools/commander/workspace_template/Displays/Core/ES/StartPerfCollection.opi index 41b9454b1..5a669284a 100644 --- a/core/base/tools/commander/workspace_template/Displays/Core/ES/StartPerfCollection.opi +++ b/core/base/tools/commander/workspace_template/Displays/Core/ES/StartPerfCollection.opi @@ -15,11 +15,11 @@ 6 - 100 + 130 true - + CFE-ES - Start Perf true @@ -28,7 +28,7 @@ true true Display - 400 + 260 -35c7bfc1:1509236a393:-54f2 -1 -1 @@ -53,7 +53,7 @@ - 34 + 32 Start Middle @@ -76,8 +76,8 @@ $(pv_value) Combo 141 -35c7bfc1:1509236a393:-52ca - 108 - 30 + 96 + 42 @@ -116,8 +116,8 @@ $(pv_value) 80 false -35c7bfc1:1509236a393:-52b1 - 24 - 35 + 12 + 47 @@ -127,17 +127,9 @@ $(pv_value) importPackage(Packages.org.yamcs.studio.script); importPackage(Packages.org.yamcs.studio.data); -strTriggerOn = VTypeHelper.getString(display.getWidget('TriggerOn').getPropertyValue('pv_value')); +triggerOn = VTypeHelper.getString(display.getWidget('TriggerOn').getPropertyValue('pv_value')); -if(strTriggerOn == 'Start') { - Yamcs.issueCommand('/cfs/cfe_es/PerfStart(TriggerMode: 0)'); -} else if(strTriggerOn == 'Middle') { - Yamcs.issueCommand('/cfs/cfe_es/PerfStart(TriggerMode: 1)'); -} else if(strTriggerOn == 'End') { - Yamcs.issueCommand('/cfs/cfe_es/PerfStart(TriggerMode: 2)'); -} else { - MessageDialog.openInformation(null, 'Error', 'Set trigger mode'); -}]]> +Yamcs.issueCommand('/cfs/cfe_es/PerfStart', {'Payload.TriggerMode': triggerOn});]]> true @@ -162,7 +154,7 @@ if(strTriggerOn == 'Start') { 29 - + ../../Resources/send.png Action Button 0 @@ -183,7 +175,47 @@ $(pv_value) Action Button 80 -35c7bfc1:1509236a393:-5274 - 276 - 30 + 84 + 90 - + + + false + + + + + + + 0 + 1 + true + + Default Bold + + + + + 20 + 1 + Label_1 + + + true + true + false + + + Start Performance Collection + + true + 1 + true + Label + 235 + false + -2dc23c5:177557ff444:-5f3b + 13 + 12 + + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Core/ES/StopApp.opi b/core/base/tools/commander/workspace_template/Displays/Core/ES/StopApp.opi index 7a01f02b6..ede8e1235 100644 --- a/core/base/tools/commander/workspace_template/Displays/Core/ES/StopApp.opi +++ b/core/base/tools/commander/workspace_template/Displays/Core/ES/StopApp.opi @@ -19,7 +19,7 @@ true - + CFE-ES - Stop App true @@ -28,22 +28,21 @@ true true Display - 300 + 275 72a2bf2b:1508717c835:-7839 -1 -1 - scripts/RestartApp.js + +Yamcs.issueCommand('/cfs/cfe_es/StopApp', {'Payload.Application': appName});]]> true @@ -68,7 +67,7 @@ Yamcs.issueCommand(cmd);]]> 25 - + ../../Resources/send.png Action Button 0 @@ -89,8 +88,8 @@ $(pv_value) Action Button 73 72a2bf2b:1508717c835:-77e3 - 114 - 90 + 98 + 87 @@ -129,8 +128,8 @@ $(pv_value) 80 false 72a2bf2b:1508717c835:-772d - 24 - 48 + 8 + 45 @@ -153,7 +152,7 @@ $(pv_value) - 34 + 32 CF CI @@ -186,8 +185,8 @@ $(pv_value) Combo 157 72a2bf2b:1508717c835:-76fa - 114 - 43 + 98 + 40 @@ -202,7 +201,7 @@ $(pv_value) 1 true - Default + Default Bold @@ -226,7 +225,7 @@ $(pv_value) 231 false 72a2bf2b:1508717c835:-76c0 - 40 - 15 + 24 + 12 - + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Core/ES/StopPerfCollection.opi b/core/base/tools/commander/workspace_template/Displays/Core/ES/StopPerfCollection.opi index 5a53f11b0..4f75e97e6 100644 --- a/core/base/tools/commander/workspace_template/Displays/Core/ES/StopPerfCollection.opi +++ b/core/base/tools/commander/workspace_template/Displays/Core/ES/StopPerfCollection.opi @@ -19,7 +19,7 @@ true - + CFE-ES - Stop Perf true @@ -28,7 +28,7 @@ true true Display - 400 + 350 -35c7bfc1:1509236a393:-54f2 -1 -1 @@ -70,7 +70,7 @@ false -35c7bfc1:1509236a393:-52b1 12 - 35 + 47 @@ -82,7 +82,7 @@ importPackage(Packages.org.yamcs.studio.data); fileName = VTypeHelper.getString(display.getWidget('FileName').getPropertyValue('pv_value')); -Yamcs.issueCommand('/cfs/cfe_es/PerfStop(FileName: "' + fileName + '")');]]> +Yamcs.issueCommand('/cfs/cfe_es/PerfStop', {'Payload.DataFileName': fileName});]]> true @@ -107,7 +107,7 @@ Yamcs.issueCommand('/cfs/cfe_es/PerfStop(FileName: "' + fileName + '")');]]> 29 - + ../../Resources/send.png Action Button 0 @@ -128,8 +128,8 @@ $(pv_value) Action Button 80 -35c7bfc1:1509236a393:-5274 - 168 - 72 + 126 + 84 @@ -183,9 +183,49 @@ $(pv_value) false true Text Input - 289 + 229 -35c7bfc1:1509236a393:-51dc 96 - 32 + 44 - + + + false + + + + + + + 0 + 1 + true + + Default Bold + + + + + 20 + 1 + Label_1 + + + true + true + false + + + Stop Performance Collection + + true + 1 + true + Label + 283 + false + -2dc23c5:177557ff444:-5f1d + 24 + 12 + + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Core/ES/WriteErrLog.opi b/core/base/tools/commander/workspace_template/Displays/Core/ES/WriteErrLog.opi index 551b8320b..df297c8b1 100644 --- a/core/base/tools/commander/workspace_template/Displays/Core/ES/WriteErrLog.opi +++ b/core/base/tools/commander/workspace_template/Displays/Core/ES/WriteErrLog.opi @@ -19,7 +19,7 @@ true - + CFE-ES - Write Err Log true @@ -35,16 +35,14 @@ - scripts/RestartApp.js + true @@ -70,7 +68,7 @@ Yamcs.issueCommand(cmd); 25 - + ../../Resources/send.png Action Button 0 @@ -147,7 +145,7 @@ $(pv_value) 1 true - Default + Default Bold @@ -220,7 +218,7 @@ $(pv_value) 0 true - ###### + $(pv_name) $(pv_value) false @@ -231,4 +229,4 @@ $(pv_value) 114 48 - + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Core/ES/WriteSysLog.opi b/core/base/tools/commander/workspace_template/Displays/Core/ES/WriteSysLog.opi index e04d5ce81..1ecd07bc3 100644 --- a/core/base/tools/commander/workspace_template/Displays/Core/ES/WriteSysLog.opi +++ b/core/base/tools/commander/workspace_template/Displays/Core/ES/WriteSysLog.opi @@ -19,7 +19,7 @@ true - + CFE-ES - Write Sys Log true @@ -35,16 +35,14 @@ - scripts/RestartApp.js + true @@ -70,7 +68,7 @@ Yamcs.issueCommand(cmd); 25 - + ../../Resources/send.png Action Button 0 @@ -147,7 +145,7 @@ $(pv_value) 1 true - Default + Default Bold @@ -168,10 +166,10 @@ $(pv_value) 1 true Label - 231 + 319 false 72a2bf2b:1508717c835:-76c0 - 80 + 30 12 @@ -220,7 +218,7 @@ $(pv_value) 0 true - ###### + $(pv_name) $(pv_value) false @@ -231,4 +229,4 @@ $(pv_value) 114 48 - + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Core/ES/scripts/PerfSetFilterMask1.js b/core/base/tools/commander/workspace_template/Displays/Core/ES/scripts/PerfSetFilterMask1.js deleted file mode 100644 index 898d763d5..000000000 --- a/core/base/tools/commander/workspace_template/Displays/Core/ES/scripts/PerfSetFilterMask1.js +++ /dev/null @@ -1,14 +0,0 @@ -importPackage(Packages.org.csstudio.opibuilder.scriptUtil); -importPackage(Packages.org.yamcs.studio.script); -importPackage(Packages.org.yamcs.studio.data); - -var cmdString = '/cfs/cfe_es/PerfSetFilterMask('; - -for(var i = 1; i <= 32; ++i) { - var PerfID = 'PerfFilter' + i; - var RequestFilterName = 'FilterRequest' + i; - cmdString += PerfID + ': ' + VTypeHelper.getDouble(display.getWidget(RequestFilterName).getPropertyValue('pv_value')); -} -cmdString =+ ')'; - -Yamcs.issueCommand(cmdString); \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Core/ES/scripts/QueryOneApp.js b/core/base/tools/commander/workspace_template/Displays/Core/ES/scripts/QueryOneApp.js deleted file mode 100644 index 9f9c633e4..000000000 --- a/core/base/tools/commander/workspace_template/Displays/Core/ES/scripts/QueryOneApp.js +++ /dev/null @@ -1,4 +0,0 @@ -importPackage(Packages.org.csstudio.opibuilder.scriptUtil); -importPackage(Packages.org.yamcs.studio.script); - -Yamcs.issueCommand('/cfs/cfe_es/QueryOne(Name: SCH)'); \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Core/ES/scripts/ResetPRResets.js b/core/base/tools/commander/workspace_template/Displays/Core/ES/scripts/ResetPRResets.js deleted file mode 100644 index 1cbd11623..000000000 --- a/core/base/tools/commander/workspace_template/Displays/Core/ES/scripts/ResetPRResets.js +++ /dev/null @@ -1,4 +0,0 @@ -importPackage(Packages.org.csstudio.opibuilder.scriptUtil); -importPackage(Packages.org.yamcs.studio.script); - -Yamcs.issueCommand('/cfs/cfe_es/ResetPRCount(Count: 10)'); \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Core/ES/scripts/SetLogSysMode.js b/core/base/tools/commander/workspace_template/Displays/Core/ES/scripts/SetLogSysMode.js deleted file mode 100644 index f616f3b39..000000000 --- a/core/base/tools/commander/workspace_template/Displays/Core/ES/scripts/SetLogSysMode.js +++ /dev/null @@ -1,7 +0,0 @@ -importPackage(Packages.org.csstudio.opibuilder.scriptUtil); -importPackage(Packages.org.yamcs.studio.script); -importPackage(Packages.org.yamcs.studio.data); - -var strMode =VTypeHelper.getString(display.getWidget('inMode').getPropertyValue('pv_value')); - -Yamcs.issueCommand('/cfs/cfe_es/SetSysLogMode', {'Payload.Mode': strMode}); \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Core/ES/scripts/StopApp.js b/core/base/tools/commander/workspace_template/Displays/Core/ES/scripts/StopApp.js deleted file mode 100644 index d661b822e..000000000 --- a/core/base/tools/commander/workspace_template/Displays/Core/ES/scripts/StopApp.js +++ /dev/null @@ -1,6 +0,0 @@ -importPackage(Packages.org.csstudio.opibuilder.scriptUtil); -importPackage(Packages.org.yamcs.studio.script); - -var appName = display.getWidget("inAppName").getPropertyValue("text"); - -Yamcs.issueCommand('/cfs/cfe_es/StopApp(Name: ' + appName + ')'); diff --git a/core/base/tools/commander/workspace_template/Displays/Main.opi b/core/base/tools/commander/workspace_template/Displays/Main.opi index acf8b994d..fbfbbdfd4 100644 --- a/core/base/tools/commander/workspace_template/Displays/Main.opi +++ b/core/base/tools/commander/workspace_template/Displays/Main.opi @@ -19,7 +19,7 @@ true - + Main true @@ -214,7 +214,7 @@ $(pv_value) true - 0 + 1 @@ -309,7 +309,7 @@ $(pv_value) true - 0 + 1 @@ -404,7 +404,7 @@ $(pv_value) true - 0 + 1 @@ -499,7 +499,7 @@ $(pv_value) true - 0 + 1 @@ -594,7 +594,7 @@ $(pv_value) true - 0 + 1 @@ -729,7 +729,7 @@ $(pv_value) true - 0 + 1 @@ -824,7 +824,7 @@ $(pv_value) true - 0 + 1 @@ -919,7 +919,7 @@ $(pv_value) true - 0 + 1 @@ -1014,7 +1014,7 @@ $(pv_value) true - 0 + 1 @@ -1109,7 +1109,7 @@ $(pv_value) true - 0 + 1 @@ -1204,7 +1204,7 @@ $(pv_value) true - 0 + 1 @@ -1299,7 +1299,7 @@ $(pv_value) true - 0 + 1 @@ -1394,7 +1394,7 @@ $(pv_value) true - 0 + 1 @@ -1489,7 +1489,7 @@ $(pv_value) true - 0 + 1 @@ -1584,7 +1584,7 @@ $(pv_value) true - 0 + 1 @@ -1679,7 +1679,7 @@ $(pv_value) true - 0 + 1 @@ -1774,7 +1774,7 @@ $(pv_value) true - 0 + 1 @@ -1822,30 +1822,85 @@ $(pv_value) 186 592 - + + false + 255 + true + false + + + + false 1 1 true - false + + + + 0.0 Default + false + + + false + 175 + true + + + + 0 + 0 + Rectangle + + + + + true + true + false + + + $(pv_name) +$(pv_value) + false + true + Rectangle + 247 + -2dc23c5:177557ff444:-7811 + 282 + 30 + + + + false + + + + + + 0 + 2 + true + + + + + - 200 - false - - true - - Legend Container + 43 + 1 + Label true @@ -1853,503 +1908,216 @@ $(pv_value) false - true + Button Legend - false + true + 1 true - Grouping Container - 193 - -3dde403f:17744c08f31:-7a00 - 402 - 12 - - - false - - - - - - - 0 - 2 - true - - - - - - - 43 - 1 - Label - - - true - true - false - - - Button Legend - - true - 1 - true - Label - 187 - false - 572e24cf:17746304069:-718b - 0 - 0 - - - - - - - - - - 0 - 1 - true - false - - Default - - - - - 40 - false - - true - - Grouping Container_2 - - - true - true - false - - - true - - false - true - Grouping Container - 175 - 572e24cf:17746304069:-7cb3 - 0 - 48 - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 30 - 1 - Label - - - true - true - false - - - Navigation - - true - 1 - true - Label - 121 - false - 572e24cf:17746304069:-7cb2 - 0 - 0 - - - - false - 255 - true - false - - - - - - - false - - - - 1 - 1 - true - - - - 0.0 - - Default - - false - - - - false - 20 - true - - - - 0 - 0 - Rectangle - - - - - true - true - false - - - $(pv_name) + Label + 247 + false + 572e24cf:17746304069:-718b + 282 + 30 + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 23 + + NoOp_43 + 0 + + + + + true + true + false + + + + Open Display + false + $(pv_name) +$(pv_value) + true + Action Button + 223 + 296ade75:177554ff103:-7dc3 + 294 + 75 + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 24 + Resources/send.png + NoOp + 0 + + + + + true + true + false + + + + Command + false + $(pv_name) $(pv_value) - false - true - Rectangle - 40 - 572e24cf:17746304069:-7cb1 - 132 - 0 - - - true - 1 - Grid Layout - 2 - Grid Layout - 572e24cf:17746304069:-7cb0 - - - - - - - - - - - 0 - 1 - true - false - - Default - - - - - 40 - false - - true - - Grouping Container_3 - - - true - true - false - - - true - - false - true - Grouping Container - 175 - 572e24cf:17746304069:-7382 - 0 - 87 - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 30 - 1 - Label - - - true - true - false - - - Send Command - - true - 1 - true - Label - 121 - false - 572e24cf:17746304069:-7381 - 0 - 0 - - - - false - 255 - true - false - - - - - - - false - - - - 1 - 1 - true - - - - 0.0 - - Default - - false - - - - false - 20 - true - - - - 0 - 0 - Rectangle - - - - - true - true - false - - - $(pv_name) + true + Action Button + 223 + 296ade75:177554ff103:-7dcf + 294 + 133 + + + + true + true + + + + false + + + + 0 + 1 + true + + Default Bold + + false + + + + 23 + Resources/send.png + NoOp_44 + 0 + + + + + true + true + false + + + + Hazardous Command + false + $(pv_name) $(pv_value) - false - true - Rectangle - 40 - 572e24cf:17746304069:-7380 - 132 - 0 - - - true - 0 - Grid Layout - 2 - Grid Layout - 572e24cf:17746304069:-737f - - - - - - - - - - - 0 - 1 - true - false - - Default - - - - - 40 - false - - true - - Grouping Container_2 - - - true - true - false - - - true - - false - true - Grouping Container - 175 - 572e24cf:17746304069:-71ef - 0 - 126 - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 30 - 1 - Label - - - true - true - false - - - Danger - - true - 1 - true - Label - 121 - false - 572e24cf:17746304069:-71ee - 0 - 0 - - - - false - 255 - true - false - - - - - - - false - - - - 1 - 1 - true - - - - 0.0 - - Default - - false - - - - false - 20 - true - - - - 0 - 0 - Rectangle - - - - - true - true - false - - - $(pv_name) + true + Action Button + 223 + 296ade75:177554ff103:-7dad + 294 + 163 + + + + + + + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 25 + + Action Button_2 + 0 + + + + + true + true + false + + + + Local Action + false + $(pv_name) $(pv_value) - false - true - Rectangle - 40 - 572e24cf:17746304069:-71ed - 132 - 0 - - - true - 0 - Grid Layout - 2 - Grid Layout - 572e24cf:17746304069:-71ec - - - - false - 2 - Grid Layout - 1 - Grid Layout - -3dde403f:17744c08f31:-78d9 - + true + Action Button + 223 + 14292858:17759dd02e1:-7c9d + 294 + 102 - + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Resources/send.png b/core/base/tools/commander/workspace_template/Displays/Resources/send.png index 652b83425a7d6b5fe6cdaba492bb83fc4711d750..9082de9c2c441ecc96785c2db07c6a5b90e74de9 100644 GIT binary patch delta 312 zcmV-80muG;1A+sPQ-2;72MVyniIxBW0S`$;K~y-)W2|hL#6T^;#6U$rOT(BMIGCwr z7`G-vOmY1G1aFe?BV*CI7?duE&Po8BwclR^HAF>QXk`h$a zWe8B!{qOz$A;Y<&7Z?v-c*OAGFR_OG`N{D4^B)EVUQ}ULL4SD$b07Kt=I);uZe2Xf zaP-J^#@in;O=ZNI&Y0O41Ox;b1O@mQ1VwlmBt?Y&3-Ajt2#WAA2=Z_?sxB6G23{-%{U$yF{v&b!qj(b% zE@vo68s9%L+%dX(2B%kuH|*te^=10000< KMNUMnLSTa5_l@`f delta 310 zcmV-60m=S?1AqgNQ-2x*4LM+R_Qn7J0S!q+K~y-)W2|hL^q+xBfQf;MfR=_aGjK4I zZx{;-k6V)=Cfk_d&(*UGM~_@*xc%`j1%@#&FfefPF{qh1GN_r@GQ7Wio#Eigvkd3% zerEVXmSIRzf~vX<0jjzT-tQkWoI84f;oyZw3?KdyYuKNk41b?L|6yR@MHOZhlxHya zk!LV>|HN?XBJLny#G1~S*%$-_1Q`Sc_!tC5co`%`gct<)1sDWH_!tCvxEVNE|6mOQ zJV^r)O21)@zodj2yDCF?whMzkFOH!6{fXh$#r-(FiK>f*oq-pNLBENQ0OTP1kK#>8 zxSXLNX?*|0a4+lX87d^&uh$ut^j=~3@s}!j^Do&3QN7dv04&LIN%@}iSpWb407*qo IM6N<$f-DY;g8%>k From 87af84af99321ff00747e272ef20f627a5b7543e Mon Sep 17 00:00:00 2001 From: Mathew Benson Date: Sun, 31 Jan 2021 13:59:53 -0600 Subject: [PATCH 007/370] Fixed missing perf state enumeration in the yaml file. --- core/base/cfe/wh_design.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/core/base/cfe/wh_design.yaml b/core/base/cfe/wh_design.yaml index 8f1995555..840bc0216 100644 --- a/core/base/cfe/wh_design.yaml +++ b/core/base/cfe/wh_design.yaml @@ -182,6 +182,7 @@ modules: member: PerfState type: enumeration enumerations: + IDLE: 0 WAITING_FOR_TRIGGER: 1 TRIGGERED: 2 - parent: CFE_ES_HkPacket_Payload_t From a5187c33965fe31d458173f1e80830c370ef76a2 Mon Sep 17 00:00:00 2001 From: Mathew Benson Date: Sun, 31 Jan 2021 15:13:01 -0600 Subject: [PATCH 008/370] All ES displays but perf are tested. --- .../Displays/Core/ES/Main.opi | 32 +++++++-------- .../Displays/Core/ES/StartApp.opi | 40 +++++++++---------- 2 files changed, 36 insertions(+), 36 deletions(-) diff --git a/core/base/tools/commander/workspace_template/Displays/Core/ES/Main.opi b/core/base/tools/commander/workspace_template/Displays/Core/ES/Main.opi index dd5673b0c..0f29ab025 100644 --- a/core/base/tools/commander/workspace_template/Displays/Core/ES/Main.opi +++ b/core/base/tools/commander/workspace_template/Displays/Core/ES/Main.opi @@ -1241,7 +1241,7 @@ $(pv_value) 164 false 2b4f25d5:1502b5812fe:-7d5c - 417 + 432 35 @@ -1481,7 +1481,7 @@ $(pv_value) 164 false 2b4f25d5:1502b5812fe:-7d23 - 368 + 425 208 @@ -3093,8 +3093,8 @@ $(pv_value) Action Button 179 -9ddfcbe:1507831914f:-73b7 - 467 - 545 + 498 + 541 @@ -3149,8 +3149,8 @@ $(pv_value) Action Button 179 -9ddfcbe:1507831914f:-6e95 - 467 - 574 + 498 + 570 @@ -3296,7 +3296,7 @@ $(pv_value) Action Button 80 763e00b7:150973f1dd8:-7dbe - 467 + 420 167 @@ -3432,7 +3432,7 @@ $(pv_value) Action Button 79 -5b3cf925:1773c9998f6:-7e84 - 559 + 517 167 @@ -3653,8 +3653,8 @@ $(pv_value) Action Button 172 -5b3cf925:1773c9998f6:-7e2f - 472 - 342 + 502 + 369 @@ -3708,8 +3708,8 @@ $(pv_value) Action Button 172 -5b3cf925:1773c9998f6:-7e25 - 472 - 374 + 502 + 401 @@ -3763,8 +3763,8 @@ $(pv_value) Action Button 172 -5b3cf925:1773c9998f6:-7e1d - 472 - 408 + 502 + 435 @@ -3818,8 +3818,8 @@ $(pv_value) Action Button 172 -5b3cf925:1773c9998f6:-7e13 - 472 - 443 + 502 + 470 diff --git a/core/base/tools/commander/workspace_template/Displays/Core/ES/StartApp.opi b/core/base/tools/commander/workspace_template/Displays/Core/ES/StartApp.opi index d522a1523..6d2173379 100644 --- a/core/base/tools/commander/workspace_template/Displays/Core/ES/StartApp.opi +++ b/core/base/tools/commander/workspace_template/Displays/Core/ES/StartApp.opi @@ -41,19 +41,19 @@ importPackage(Packages.org.yamcs.studio.script); importPackage(Packages.org.yamcs.studio.data); var appName =VTypeHelper.getString(display.getWidget('inAppName').getPropertyValue('pv_value')); -var entryPoint = display.getWidget("inEntryPoint").getPropertyValue("text"); -var fileName = display.getWidget("inFileName").getPropertyValue("text"); -var stackSize = display.getWidget("inStackSize").getPropertyValue("text"); -var exceptionAction = VTypeHelper.getString(display.getWidget('inExceptionAction').getPropertyValue('pv_value')); -var priority = display.getWidget("inPriority").getPropertyValue("text"); +var entryPoint = VTypeHelper.getString(display.getWidget("inEntryPoint").getPropertyValue("pv_value")); +var fileName = VTypeHelper.getString(display.getWidget("inFileName").getPropertyValue("pv_value")); +var stackSize = VTypeHelper.getNumber(display.getWidget("inStackSize").getPropertyValue("pv_value")); +var exceptionAction =VTypeHelper.getString(display.getWidget('inExceptionAction').getPropertyValue('pv_value')); +var priority = VTypeHelper.getNumber(display.getWidget("inPriority").getPropertyValue("pv_value")); Yamcs.issueCommand('/cfs/cfe_es/StartApp', { - 'Payload.Application': appName, - 'Payload.AppEntryPoint': entryPoint, - 'Payload.AppFileName': fileName, - 'Payload.StackSize': stackSize, + 'Payload.Application': appName, + 'Payload.AppEntryPoint': entryPoint, + 'Payload.AppFileName': fileName, + 'Payload.StackSize': stackSize, 'Payload.ExceptionAction': exceptionAction, - 'Payload.Priority': priority});]]> + 'Payload.Priority': priority});]]> true @@ -181,7 +181,7 @@ $(pv_value) false inAppName - loc://AppName + loc://AppName<VString>("") @@ -312,7 +312,7 @@ $(pv_value) inEntryPoint 0 true - + loc://EntryPoint<VString>("") 0.0 @@ -409,7 +409,7 @@ $(pv_value) inFileName 0 true - + loc://FileName<VString>("") 0.0 @@ -505,8 +505,8 @@ $(pv_value) false inStackSize 0 - true - + false + loc://StackSize<VDouble>(0) 0.0 @@ -602,8 +602,8 @@ $(pv_value) false inPriority 0 - true - + false + loc://Priority<VDouble>(0) 0.0 @@ -690,12 +690,12 @@ $(pv_value) 32 - APP RESTART - PROC RESTART + RESTART_APP + PROC_RESTART false inExceptionAction - loc://ExceptionAction + loc://ExceptionAction<VString>("") From 0e3a5cb3ebe16de76d1640d28dec459ac93d17ff Mon Sep 17 00:00:00 2001 From: Mathew Benson Date: Mon, 1 Feb 2021 01:51:08 -0600 Subject: [PATCH 009/370] Fixed missing overrides in the yaml file. --- apps/cf/wh_design.yaml | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/apps/cf/wh_design.yaml b/apps/cf/wh_design.yaml index 1b5d0d256..a58205884 100644 --- a/apps/cf/wh_design.yaml +++ b/apps/cf/wh_design.yaml @@ -320,6 +320,15 @@ CF_QUICK_CMD_EID : id: 160 msg_def_overrides: + - parent: CF_SetMibParam_t + member: Param + type: string + - parent: CF_SetMibParam_t + member: Value + type: string + - parent: CF_GetMibParam_t + member: Param + type: string - parent: CF_ResetCtrsCmd_t member: Value type: enumeration From f2504113277be6c777ef8cb8a81d0f25df9eb208 Mon Sep 17 00:00:00 2001 From: Mathew Benson Date: Mon, 1 Feb 2021 01:51:33 -0600 Subject: [PATCH 010/370] Fixed CF configuration files to make better use of fire transfer. --- config/bebop2/sitl/target/CMakeLists.txt | 9 +- config/shared/apps/cf/tables/cf_cfgtable.c | 172 ++++++++++----------- 2 files changed, 90 insertions(+), 91 deletions(-) diff --git a/config/bebop2/sitl/target/CMakeLists.txt b/config/bebop2/sitl/target/CMakeLists.txt index 7af37ad14..95ce86b1f 100644 --- a/config/bebop2/sitl/target/CMakeLists.txt +++ b/config/bebop2/sitl/target/CMakeLists.txt @@ -10,9 +10,14 @@ buildliner_initialize( ${PROJECT_SOURCE_DIR}/config/shared/inc FILESYS /cf/apps - /cf/download + /cf/downlink/ch0/poll0 + /cf/downlink/ch0/poll1 + /cf/downlink/ch0/poll2 + /cf/downlink/ch0/poll3 + /cf/downlink/ch0/poll4 + /cf/downlink/ch0/poll5 /cf/log - /cf/upload + /cf/uplink /ram STARTUP_SCRIPT ${CMAKE_CURRENT_SOURCE_DIR}/cfe_es_startup.scr diff --git a/config/shared/apps/cf/tables/cf_cfgtable.c b/config/shared/apps/cf/tables/cf_cfgtable.c index e4dd91e34..0a54ba6dd 100644 --- a/config/shared/apps/cf/tables/cf_cfgtable.c +++ b/config/shared/apps/cf/tables/cf_cfgtable.c @@ -60,132 +60,126 @@ cf_config_table_t CF_ConfigTable = 100, /* Pending Queue Depth */ 100, /* History Queue Depth */ "OutputChan0", /* Playback Channel Name */ - "TO_CF_CH0_SEM", /* Handshake Semaphore Name */ + "", /* Handshake Semaphore Name */ { /* Polling Directory Array */ { /* Polling Directory 0 */ CF_ENTRY_IN_USE,/* Poll Directory In Use or Not */ - CF_DISABLED, /* Enable State */ - 1, /* Class (1 or 2)*/ - 5, /* Priority */ - CF_KEEP_FILE, /* Preserve files after successful transfer? */ + CF_ENABLED, /* Enable State */ + 2, /* Class (1 or 2)*/ + 10, /* Priority */ + CF_DELETE_FILE, /* Preserve files after successful transfer? */ 0, /* Reserved1 */ 0, /* Reserved2 */ 0, /* Reserved3 */ "0.23", /* Gnd EntityId - 2 byte dotted-decimal string eg. "0.255"*/ - "/cf/ch0poll0/", /* SrcPath, no spaces, fwd slash at end */ - "cftesting/", /* DstPath, no spaces */ + "/cf/downlink/ch0/poll0/", /* SrcPath, no spaces, fwd slash at end */ + "/", /* DstPath, no spaces */ },/* End Polling Directory 0 */ { /* Polling Directory 1 */ CF_ENTRY_IN_USE,/* Poll Directory In Use or Not */ - CF_DISABLED, /* Enable State */ - 1, /* Class (1 or 2)*/ - 0, /* Priority */ - CF_KEEP_FILE, /* Preserve files after successful transfer? */ + CF_ENABLED, /* Enable State */ + 2, /* Class (1 or 2)*/ + 20, /* Priority */ + CF_DELETE_FILE, /* Preserve files after successful transfer? */ 0, /* Reserved1 */ 0, /* Reserved2 */ 0, /* Reserved3 */ "0.23", /* Gnd EntityId - 2 byte dotted-decimal string eg. "0.255"*/ - "/cf/ch0poll1/", /* SrcPathname */ - "/gnd/", /* DestPathname */ - + "/cf/downlink/ch0/poll1/", /* SrcPath, no spaces, fwd slash at end */ + "/", /* DstPath, no spaces */ },/* End Polling Directory 1 */ - { /* Polling Directory 2 */ CF_ENTRY_IN_USE,/* Poll Directory In Use or Not */ - CF_DISABLED, /* Enable State */ + CF_ENABLED, /* Enable State */ 1, /* Class (1 or 2)*/ - 5, /* Priority */ - CF_DELETE_FILE, /* Preserve files after successful transfer? */ + 10, /* Priority */ + CF_KEEP_FILE, /* Preserve files after successful transfer? */ 0, /* Reserved1 */ 0, /* Reserved2 */ 0, /* Reserved3 */ "0.23", /* Gnd EntityId - 2 byte dotted-decimal string eg. "0.255"*/ - "/cf/ch0poll2/", /* SrcPathname */ - "cftesting/", /* DstPathname */ + "/cf/downlink/ch0/poll2/", /* SrcPath, no spaces, fwd slash at end */ + "/", /* DstPath, no spaces */ },/* End Polling Directory 2 */ { /* Polling Directory 3 */ CF_ENTRY_IN_USE,/* Poll Directory In Use or Not */ - CF_DISABLED, /* Enable State */ + CF_ENABLED, /* Enable State */ 1, /* Class (1 or 2)*/ - 0, /* Priority */ + 10, /* Priority */ CF_KEEP_FILE, /* Preserve files after successful transfer? */ 0, /* Reserved1 */ 0, /* Reserved2 */ 0, /* Reserved3 */ "0.23", /* Gnd EntityId - 2 byte dotted-decimal string eg. "0.255"*/ - "/cf/ch0poll3/", /* SrcPathname */ - "/gnd/", /* DestPathname */ - + "/cf/downlink/ch0/poll3/", /* SrcPath, no spaces, fwd slash at end */ + "/", /* DstPath, no spaces */ },/* End Polling Directory 3 */ { /* Polling Directory 4 */ CF_ENTRY_IN_USE,/* Poll Directory In Use or Not */ CF_DISABLED, /* Enable State */ - 1, /* Class (1 or 2)*/ + 2, /* Class (1 or 2)*/ 5, /* Priority */ CF_DELETE_FILE, /* Preserve files after successful transfer? */ 0, /* Reserved1 */ 0, /* Reserved2 */ 0, /* Reserved3 */ "0.23", /* Gnd EntityId - 2 byte dotted-decimal string eg. "0.255"*/ - "/cf/ch0poll4/", /* SrcPathname */ - "cftesting/", /* DstPathname */ + "/cf/downlink/ch0/poll4/", /* SrcPath, no spaces, fwd slash at end */ + "/", /* DstPath, no spaces */ },/* End Polling Directory 4 */ { /* Polling Directory 5 */ CF_ENTRY_IN_USE,/* Poll Directory In Use or Not */ CF_DISABLED, /* Enable State */ 1, /* Class (1 or 2)*/ - 0, /* Priority */ + 7, /* Priority */ CF_KEEP_FILE, /* Preserve files after successful transfer? */ 0, /* Reserved1 */ 0, /* Reserved2 */ 0, /* Reserved3 */ "0.23", /* Gnd EntityId - 2 byte dotted-decimal string eg. "0.255"*/ - "/cf/ch0poll5/", /* SrcPathname */ - "/gnd/", /* DestPathname */ - + "/cf/downlink/ch0/poll5/", /* SrcPath, no spaces, fwd slash at end */ + "/", /* DstPath, no spaces */ },/* End Polling Directory 5 */ { /* Polling Directory 6 */ - CF_ENTRY_IN_USE,/* Poll Directory In Use or Not */ + CF_ENTRY_UNUSED,/* Poll Directory In Use or Not */ CF_DISABLED, /* Enable State */ 1, /* Class (1 or 2)*/ 5, /* Priority */ - CF_DELETE_FILE, /* Preserve files after successful transfer? */ + CF_KEEP_FILE, /* Preserve files after successful transfer? */ 0, /* Reserved1 */ 0, /* Reserved2 */ 0, /* Reserved3 */ - "0.23", /* Gnd EntityId - 2 byte dotted-decimal string eg. "0.255"*/ - "/cf/ch0poll6/", /* SrcPathname */ - "cftesting/", /* DstPathname */ + "", /* Gnd EntityId - 2 byte dotted-decimal string eg. "0.255"*/ + "/", /* SrcPath, no spaces, fwd slash at end */ + "/", /* DstPath, no spaces */ },/* End Polling Directory 6 */ { /* Polling Directory 7 */ - CF_ENTRY_IN_USE,/* Poll Directory In Use or Not */ + CF_ENTRY_UNUSED,/* Poll Directory In Use or Not */ CF_DISABLED, /* Enable State */ 1, /* Class (1 or 2)*/ - 0, /* Priority */ + 5, /* Priority */ CF_KEEP_FILE, /* Preserve files after successful transfer? */ 0, /* Reserved1 */ 0, /* Reserved2 */ 0, /* Reserved3 */ - "0.23", /* Gnd EntityId - 2 byte dotted-decimal string eg. "0.255"*/ - "/cf/ch0poll7/", /* SrcPathname */ - "/gnd/", /* DestPathname */ - + "", /* Gnd EntityId - 2 byte dotted-decimal string eg. "0.255"*/ + "/", /* SrcPath, no spaces, fwd slash at end */ + "/", /* DstPath, no spaces */ },/* End Polling Directory 7 */ }, /* End Polling Directory Array */ }, /* End Playback Channel #0 */ - { /* Playback Channel #1 */ CF_ENTRY_UNUSED, /* Playback Channel Entry In Use */ CF_DISABLED, /* Dequeue Enable */ @@ -193,121 +187,121 @@ cf_config_table_t CF_ConfigTable = 100, /* Pending Queue Depth */ 100, /* History Queue Depth */ "OutputChan1", /* Playback Channel Name */ - "TO_CF_CH1_SEM", /* Handshake Semaphore Name */ + "", /* Handshake Semaphore Name */ { /* Polling Directory Array */ { /* Polling Directory 0 */ - CF_ENTRY_UNUSED,/* Poll Directory In Use or Not */ + CF_ENTRY_IN_USE,/* Poll Directory In Use or Not */ CF_DISABLED, /* Enable State */ - 1, /* Class (1 or 2)*/ - 0, /* Priority */ + 2, /* Class (1 or 2)*/ + 10, /* Priority */ CF_DELETE_FILE, /* Preserve files after successful transfer? */ 0, /* Reserved1 */ 0, /* Reserved2 */ 0, /* Reserved3 */ "0.23", /* Gnd EntityId - 2 byte dotted-decimal string eg. "0.255"*/ - "/cf/ch1poll0/", /* SrcPathname */ - "cftesting/", /* DstPathname */ + "/cf/downlink/ch1/poll0/", /* SrcPath, no spaces, fwd slash at end */ + "/", /* DstPath, no spaces */ },/* End Polling Directory 0 */ { /* Polling Directory 1 */ - CF_ENTRY_UNUSED,/* Poll Directory In Use or Not */ + CF_ENTRY_IN_USE,/* Poll Directory In Use or Not */ CF_DISABLED, /* Enable State */ - 1, /* Class (1 or 2)*/ - 0, /* Priority */ + 2, /* Class (1 or 2)*/ + 20, /* Priority */ CF_DELETE_FILE, /* Preserve files after successful transfer? */ 0, /* Reserved1 */ 0, /* Reserved2 */ 0, /* Reserved3 */ "0.23", /* Gnd EntityId - 2 byte dotted-decimal string eg. "0.255"*/ - "/cf/ch1poll1/", /* SrcPathname */ - "cftesting/", /* DstPathname */ - }, /* End Polling Directory 1 */ + "/cf/downlink/ch1/poll1/", /* SrcPath, no spaces, fwd slash at end */ + "/", /* DstPath, no spaces */ + },/* End Polling Directory 1 */ { /* Polling Directory 2 */ - CF_ENTRY_UNUSED,/* Poll Directory In Use or Not */ + CF_ENTRY_IN_USE,/* Poll Directory In Use or Not */ CF_DISABLED, /* Enable State */ 1, /* Class (1 or 2)*/ - 0, /* Priority */ - CF_DELETE_FILE, /* Preserve files after successful transfer? */ + 10, /* Priority */ + CF_KEEP_FILE, /* Preserve files after successful transfer? */ 0, /* Reserved1 */ 0, /* Reserved2 */ 0, /* Reserved3 */ "0.23", /* Gnd EntityId - 2 byte dotted-decimal string eg. "0.255"*/ - "/cf/ch1poll2/", /* SrcPathname */ - "cftesting/", /* DstPathname */ + "/cf/downlink/ch1/poll2/", /* SrcPath, no spaces, fwd slash at end */ + "/", /* DstPath, no spaces */ },/* End Polling Directory 2 */ { /* Polling Directory 3 */ - CF_ENTRY_UNUSED,/* Poll Directory In Use or Not */ + CF_ENTRY_IN_USE,/* Poll Directory In Use or Not */ CF_DISABLED, /* Enable State */ 1, /* Class (1 or 2)*/ - 0, /* Priority */ - CF_DELETE_FILE, /* Preserve files after successful transfer? */ + 10, /* Priority */ + CF_KEEP_FILE, /* Preserve files after successful transfer? */ 0, /* Reserved1 */ 0, /* Reserved2 */ 0, /* Reserved3 */ "0.23", /* Gnd EntityId - 2 byte dotted-decimal string eg. "0.255"*/ - "/cf/ch1poll3/", /* SrcPathname */ - "cftesting/", /* DstPathname */ - }, /* End Polling Directory 3 */ + "/cf/downlink/ch1/poll3/", /* SrcPath, no spaces, fwd slash at end */ + "/", /* DstPath, no spaces */ + },/* End Polling Directory 3 */ { /* Polling Directory 4 */ - CF_ENTRY_UNUSED,/* Poll Directory In Use or Not */ + CF_ENTRY_IN_USE,/* Poll Directory In Use or Not */ CF_DISABLED, /* Enable State */ - 1, /* Class (1 or 2)*/ - 0, /* Priority */ + 2, /* Class (1 or 2)*/ + 5, /* Priority */ CF_DELETE_FILE, /* Preserve files after successful transfer? */ 0, /* Reserved1 */ 0, /* Reserved2 */ 0, /* Reserved3 */ "0.23", /* Gnd EntityId - 2 byte dotted-decimal string eg. "0.255"*/ - "/cf/ch1poll4/", /* SrcPathname */ - "cftesting/", /* DstPathname */ + "/cf/downlink/ch1/poll4/", /* SrcPath, no spaces, fwd slash at end */ + "/", /* DstPath, no spaces */ },/* End Polling Directory 4 */ { /* Polling Directory 5 */ - CF_ENTRY_UNUSED,/* Poll Directory In Use or Not */ + CF_ENTRY_IN_USE,/* Poll Directory In Use or Not */ CF_DISABLED, /* Enable State */ 1, /* Class (1 or 2)*/ - 0, /* Priority */ - CF_DELETE_FILE, /* Preserve files after successful transfer? */ + 7, /* Priority */ + CF_KEEP_FILE, /* Preserve files after successful transfer? */ 0, /* Reserved1 */ 0, /* Reserved2 */ 0, /* Reserved3 */ "0.23", /* Gnd EntityId - 2 byte dotted-decimal string eg. "0.255"*/ - "/cf/ch1poll5/", /* SrcPathname */ - "cftesting/", /* DstPathname */ - }, /* End Polling Directory 5 */ + "/cf/downlink/ch1/poll5/", /* SrcPath, no spaces, fwd slash at end */ + "/", /* DstPath, no spaces */ + },/* End Polling Directory 5 */ { /* Polling Directory 6 */ CF_ENTRY_UNUSED,/* Poll Directory In Use or Not */ CF_DISABLED, /* Enable State */ 1, /* Class (1 or 2)*/ - 0, /* Priority */ - CF_DELETE_FILE, /* Preserve files after successful transfer? */ + 5, /* Priority */ + CF_KEEP_FILE, /* Preserve files after successful transfer? */ 0, /* Reserved1 */ 0, /* Reserved2 */ 0, /* Reserved3 */ - "0.23", /* Gnd EntityId - 2 byte dotted-decimal string eg. "0.255"*/ - "/cf/ch1poll6/", /* SrcPathname */ - "cftesting/", /* DstPathname */ + "", /* Gnd EntityId - 2 byte dotted-decimal string eg. "0.255"*/ + "/", /* SrcPath, no spaces, fwd slash at end */ + "/", /* DstPath, no spaces */ },/* End Polling Directory 6 */ { /* Polling Directory 7 */ CF_ENTRY_UNUSED,/* Poll Directory In Use or Not */ CF_DISABLED, /* Enable State */ 1, /* Class (1 or 2)*/ - 0, /* Priority */ - CF_DELETE_FILE, /* Preserve files after successful transfer? */ + 5, /* Priority */ + CF_KEEP_FILE, /* Preserve files after successful transfer? */ 0, /* Reserved1 */ 0, /* Reserved2 */ 0, /* Reserved3 */ - "0.23", /* Gnd EntityId - 2 byte dotted-decimal string eg. "0.255"*/ - "/cf/ch1poll7/", /* SrcPathname */ - "cftesting/", /* DstPathname */ - }, /* End Polling Directory 7 */ + "", /* Gnd EntityId - 2 byte dotted-decimal string eg. "0.255"*/ + "/", /* SrcPath, no spaces, fwd slash at end */ + "/", /* DstPath, no spaces */ + },/* End Polling Directory 7 */ }, /* End Polling Directory Array */ From 9500efc1a70489a37ad1a0750a6b9b8d38336836 Mon Sep 17 00:00:00 2001 From: Mathew Benson Date: Mon, 1 Feb 2021 01:52:00 -0600 Subject: [PATCH 011/370] Completed fixing all the CF displays. Mostly tested. --- .../Displays/Apps/CF/Abandon.opi | 81 +- .../Displays/Apps/CF/Application.opi | 369 ++++---- .../Displays/Apps/CF/Cancel.opi | 85 +- .../Displays/Apps/CF/DeleteQueueNode.opi | 79 +- .../Displays/Apps/CF/DisableDequeue.opi | 70 +- .../Apps/CF/DisablePollingDirectory.opi | 90 +- .../Displays/Apps/CF/Downlink.opi | 843 ++++++------------ .../Displays/Apps/CF/EnableDequeue.opi | 64 +- .../Apps/CF/EnablePollingDirectory.opi | 80 +- .../Displays/Apps/CF/Engine.opi | 721 ++++----------- .../Displays/Apps/CF/Faults.opi | 481 ++-------- .../Displays/Apps/CF/GetMIBParam.opi | 66 +- .../Displays/Apps/CF/GiveTake.opi | 76 +- .../Displays/Apps/CF/Kickstart.opi | 83 +- .../Displays/Apps/CF/Main.opi | 2 +- .../Displays/Apps/CF/PlaybackDirectory.opi | 149 ++-- .../Displays/Apps/CF/PlaybackFile.opi | 148 +-- .../Displays/Apps/CF/PurgeQueue.opi | 119 ++- .../Displays/Apps/CF/QuickStatus.opi | 80 +- .../Displays/Apps/CF/ResetCounters.opi | 89 +- .../Displays/Apps/CF/Resume.opi | 82 +- .../Displays/Apps/CF/SetMIBParam.opi | 85 +- .../Displays/Apps/CF/SetPollParam.opi | 134 ++- .../Displays/Apps/CF/Suspend.opi | 84 +- .../Displays/Apps/CF/Uplink.opi | 480 ++-------- .../Displays/Apps/CF/ViewConfig.opi | 310 ++++--- .../Displays/Apps/CF/ViewTransDiag.opi | 482 +++++----- .../Displays/Apps/CF/WriteActiveTrans.opi | 94 +- .../Displays/Apps/CF/WriteQueueInfo.opi | 116 ++- .../Displays/Apps/CF/scripts/Freeze.js | 4 - .../Displays/Apps/CF/scripts/NoOp.js | 4 - .../Displays/Apps/CF/scripts/ResetCounters.js | 4 - .../Displays/Apps/CF/scripts/Thaw.js | 4 - 33 files changed, 2536 insertions(+), 3122 deletions(-) delete mode 100644 core/base/tools/commander/workspace_template/Displays/Apps/CF/scripts/Freeze.js delete mode 100644 core/base/tools/commander/workspace_template/Displays/Apps/CF/scripts/NoOp.js delete mode 100644 core/base/tools/commander/workspace_template/Displays/Apps/CF/scripts/ResetCounters.js delete mode 100644 core/base/tools/commander/workspace_template/Displays/Apps/CF/scripts/Thaw.js diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/CF/Abandon.opi b/core/base/tools/commander/workspace_template/Displays/Apps/CF/Abandon.opi index 9bafcb74a..4202f74d7 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/CF/Abandon.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/CF/Abandon.opi @@ -15,11 +15,11 @@ 6 - 100 + 110 true - + CF - Abandon true @@ -28,7 +28,7 @@ true true Display - 230 + 260 31ffe3bf:150a7259bb9:-6563 -1 -1 @@ -60,17 +60,17 @@ false - Transfer + Transaction true 1 true Label - 53 + 89 false 31ffe3bf:150a7259bb9:-6541 - 8 - 17 + 6 + 35 @@ -96,16 +96,16 @@ 0 - 29 + 20 0 false 1.7976931348623157E308 -1.7976931348623157E308 false - Transfer + Transaction 0 true - loc://Transfer<VString> + loc://Transaction<VString> 0.0 @@ -126,21 +126,20 @@ $(pv_value) Text Input 135 31ffe3bf:150a7259bb9:-6540 - 74 - 12 + 108 + 35 - ../scripts/RestartApp.js + true @@ -166,7 +165,7 @@ Yamcs.issueCommand('/CFS/CF/Abandon(Trans: ' + Transfer + ')'); 25 - + ../../Resources/send.png Action Button 0 @@ -179,15 +178,55 @@ Yamcs.issueCommand('/CFS/CF/Abandon(Trans: ' + Transfer + ')'); - Abandon Transfer + Send false $(pv_name) $(pv_value) true Action Button - 163 + 80 31ffe3bf:150a7259bb9:-652c - 30 - 60 + 90 + 72 + + + + false + + + + + + + 0 + 1 + true + + Default Bold + + + + + 20 + 1 + Label_49 + + + true + true + false + + + Abandon Transaction + + true + 1 + true + Label + 168 + false + 6c5e5e62:1775b7b9abc:-7122 + 46 + 6 \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/CF/Application.opi b/core/base/tools/commander/workspace_template/Displays/Apps/CF/Application.opi index f1b2aa987..15cbfb9a4 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/CF/Application.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/CF/Application.opi @@ -19,7 +19,7 @@ true - + CF - Application true @@ -164,46 +164,6 @@ $(pv_value) 52 74 - - - false - - - - - - - 0 - 1 - true - - Default Bold - - - - - 20 - 1 - Label_46 - - - true - true - false - - - Commanding - - true - 1 - true - Label - 164 - false - 2b4f25d5:1502b5812fe:-7d1c - 66 - 36 - false @@ -259,10 +219,12 @@ $(pv_value) - scripts/NoOp.js + - false +importPackage(Packages.org.yamcs.studio.script); + +Yamcs.issueCommand('/cfs/cf/Noop', {});]]> + true @@ -285,8 +247,8 @@ $(pv_value) - 13 - + 20 + ../../Resources/send.png NoOp 0 @@ -305,10 +267,10 @@ $(pv_value) $(pv_value) true Action Button - 67 + 85 39deb42:1504a4eb8cc:-7de2 - 291 - 58 + 282 + 55 @@ -338,7 +300,7 @@ $(pv_value) false - CCSDS File Transfer Application + Application true 1 @@ -399,7 +361,7 @@ $(pv_value) 100 false 31ffe3bf:150a7259bb9:-7f5b - 198 + 180 121 @@ -451,7 +413,7 @@ $(pv_value) 100 false 31ffe3bf:150a7259bb9:-7f5a - 198 + 180 140 @@ -503,7 +465,7 @@ $(pv_value) 100 false 31ffe3bf:150a7259bb9:-7f59 - 198 + 180 159 @@ -555,7 +517,7 @@ $(pv_value) 100 false 31ffe3bf:150a7259bb9:-7f58 - 198 + 180 178 @@ -607,7 +569,7 @@ $(pv_value) 100 false 31ffe3bf:150a7259bb9:-7f57 - 198 + 180 197 @@ -659,7 +621,7 @@ $(pv_value) 100 false 31ffe3bf:150a7259bb9:-7f56 - 198 + 180 216 @@ -711,7 +673,7 @@ $(pv_value) 100 false 31ffe3bf:150a7259bb9:-7f55 - 198 + 180 235 @@ -763,7 +725,7 @@ $(pv_value) 100 false 31ffe3bf:150a7259bb9:-7f54 - 198 + 180 254 @@ -815,7 +777,7 @@ $(pv_value) 100 false 31ffe3bf:150a7259bb9:-7f53 - 198 + 180 273 @@ -867,7 +829,7 @@ $(pv_value) 100 false 31ffe3bf:150a7259bb9:-7f52 - 198 + 180 292 @@ -919,7 +881,7 @@ $(pv_value) 100 false 31ffe3bf:150a7259bb9:-7f51 - 198 + 180 311 @@ -971,7 +933,7 @@ $(pv_value) 100 false 31ffe3bf:150a7259bb9:-7f50 - 198 + 180 330 @@ -1023,7 +985,7 @@ $(pv_value) 100 false 31ffe3bf:150a7259bb9:-7f4f - 198 + 180 349 @@ -1075,7 +1037,7 @@ $(pv_value) 100 false 31ffe3bf:150a7259bb9:-7f4e - 198 + 180 368 @@ -1127,7 +1089,7 @@ $(pv_value) 100 false 31ffe3bf:150a7259bb9:-7f4d - 198 + 180 387 @@ -1179,7 +1141,7 @@ $(pv_value) 100 false 31ffe3bf:150a7259bb9:-7f4c - 198 + 180 406 @@ -1231,7 +1193,7 @@ $(pv_value) 100 false 31ffe3bf:150a7259bb9:-7f4b - 198 + 180 425 @@ -1278,8 +1240,8 @@ $(pv_value) Check Box 32 31ffe3bf:150a7259bb9:-7f49 - 198 - 463 + 164 + 492 @@ -1330,48 +1292,8 @@ $(pv_value) 100 false 31ffe3bf:150a7259bb9:-7f48 - 198 - 482 - - - - false - - - - - - - 0 - 1 - false - - Default Bold - - - - - 20 - 1 - Label_50 - - - true - true - false - - - Application - - true - 1 - true - Label - 164 - false - 31ffe3bf:150a7259bb9:-7f40 - 66 - 102 + 180 + 463 @@ -1407,10 +1329,10 @@ $(pv_value) 1 true Label - 129 + 142 false 31ffe3bf:150a7259bb9:-7e9f - 59 + 28 121 @@ -1450,7 +1372,7 @@ $(pv_value) 129 false 31ffe3bf:150a7259bb9:-7e95 - 59 + 41 140 @@ -1490,7 +1412,7 @@ $(pv_value) 129 false 31ffe3bf:150a7259bb9:-7e90 - 59 + 41 159 @@ -1530,7 +1452,7 @@ $(pv_value) 129 false 31ffe3bf:150a7259bb9:-7e8b - 59 + 41 178 @@ -1570,7 +1492,7 @@ $(pv_value) 129 false 31ffe3bf:150a7259bb9:-7e86 - 59 + 41 197 @@ -1610,7 +1532,7 @@ $(pv_value) 129 false 31ffe3bf:150a7259bb9:-7e81 - 59 + 41 216 @@ -1650,7 +1572,7 @@ $(pv_value) 129 false 31ffe3bf:150a7259bb9:-7e7c - 59 + 41 235 @@ -1690,7 +1612,7 @@ $(pv_value) 129 false 31ffe3bf:150a7259bb9:-7e77 - 59 + 41 254 @@ -1730,7 +1652,7 @@ $(pv_value) 129 false 31ffe3bf:150a7259bb9:-7e72 - 59 + 41 273 @@ -1767,10 +1689,10 @@ $(pv_value) 1 true Label - 129 + 160 false 31ffe3bf:150a7259bb9:-7e6d - 59 + 10 292 @@ -1810,7 +1732,7 @@ $(pv_value) 129 false 31ffe3bf:150a7259bb9:-7e68 - 59 + 41 311 @@ -1850,7 +1772,7 @@ $(pv_value) 129 false 31ffe3bf:150a7259bb9:-7e63 - 59 + 41 330 @@ -1890,7 +1812,7 @@ $(pv_value) 129 false 31ffe3bf:150a7259bb9:-7e5e - 59 + 41 349 @@ -1930,7 +1852,7 @@ $(pv_value) 129 false 31ffe3bf:150a7259bb9:-7e59 - 59 + 41 368 @@ -1970,7 +1892,7 @@ $(pv_value) 129 false 31ffe3bf:150a7259bb9:-7e54 - 59 + 41 387 @@ -2010,7 +1932,7 @@ $(pv_value) 129 false 31ffe3bf:150a7259bb9:-7e4f - 59 + 41 406 @@ -2050,7 +1972,7 @@ $(pv_value) 142 false 31ffe3bf:150a7259bb9:-7e4a - 46 + 28 425 @@ -2090,7 +2012,7 @@ $(pv_value) 129 false 31ffe3bf:150a7259bb9:-7e45 - 59 + 41 444 @@ -2130,8 +2052,8 @@ $(pv_value) 142 false 31ffe3bf:150a7259bb9:-7e40 - 46 - 463 + 8 + 492 @@ -2161,17 +2083,17 @@ $(pv_value) false - Auto Suspend Low Free Mark + Low Free Mark true 1 true Label - 182 + 116 false 31ffe3bf:150a7259bb9:-7e3b - 6 - 482 + 54 + 463 @@ -2180,9 +2102,7 @@ $(pv_value) +Yamcs.issueCommand('/cfs/cf/AutoSuspendEn', {'EnableDisable': 'ENABLE'});]]> true @@ -2206,9 +2126,9 @@ Yamcs.issueCommand('/CFS/CF/Reset(Value: 0)'); - 13 - - NoOp_1 + 20 + ../../Resources/send.png + NoOp_2 0 @@ -2220,16 +2140,16 @@ Yamcs.issueCommand('/CFS/CF/Reset(Value: 0)'); - Reset + Enable false $(pv_name) $(pv_value) true Action Button - 67 - 31ffe3bf:150a7259bb9:-6c98 - 291 - 77 + 87 + 31ffe3bf:150a7259bb9:-6aa2 + 195 + 492 @@ -2238,7 +2158,7 @@ $(pv_value) +Yamcs.issueCommand('/cfs/cf/AutoSuspendEn', {'EnableDisable': 'DISABLE'});]]> true @@ -2262,9 +2182,9 @@ Yamcs.issueCommand('/CFS/CF/EnaDisAutoSuspend(EnableDisable: 1)');]]> - 17 - - NoOp_2 + 20 + ../../Resources/send.png + NoOp_3 0 @@ -2276,33 +2196,84 @@ Yamcs.issueCommand('/CFS/CF/EnaDisAutoSuspend(EnableDisable: 1)');]]> - Enable + Disable false $(pv_name) $(pv_value) true Action Button - 67 - 31ffe3bf:150a7259bb9:-6aa2 - 229 - 466 + 87 + 31ffe3bf:150a7259bb9:-6a98 + 281 + 492 + + + + false + false + false + + + + false + + + + 1 + 1 + true + + Default + + false + + + + 4 + 20 + 0 + Text Update_19 + 0 + false + /cfs/cf/CF_HkPacket_t.App.LastFailedTrans + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + 31ffe3bf:150a7259bb9:-7f4a + 180 + 444 - - scripts/NoOp.js - - true + + ../../Core/ES/MemoryPoolViewer.opi + + true + + 1 false false - + false @@ -2316,11 +2287,11 @@ Yamcs.issueCommand('/CFS/CF/EnaDisAutoSuspend(EnableDisable: 0)');]]> false - + - 17 + 20 - NoOp_3 + Action Button_1 0 @@ -2332,30 +2303,41 @@ Yamcs.issueCommand('/CFS/CF/EnaDisAutoSuspend(EnableDisable: 0)');]]> - Disable + View false $(pv_name) $(pv_value) true Action Button 67 - 31ffe3bf:150a7259bb9:-6a98 - 300 - 466 + 6c5e5e62:1775b7b9abc:-7bdc + 288 + 159 - - + + + + + + true + + + false - false false - + false - + - 1 + 0 1 true @@ -2363,17 +2345,14 @@ $(pv_value) false - + - 4 20 - 0 - Text Update_19 - 0 - false - /cfs/cf/CF_HkPacket_t.App.LastFailedTrans + ../../Resources/send.png + NoOp_4 + 0 + - 0.0 true @@ -2381,18 +2360,16 @@ $(pv_value) false - true - ###### + + Reset + false $(pv_name) $(pv_value) - false - 1 true - Text Update - 100 - false - 31ffe3bf:150a7259bb9:-7f4a - 198 - 444 + Action Button + 85 + 6c5e5e62:1775b7b9abc:-7b99 + 282 + 74 \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/CF/Cancel.opi b/core/base/tools/commander/workspace_template/Displays/Apps/CF/Cancel.opi index 272e4d242..c78751d16 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/CF/Cancel.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/CF/Cancel.opi @@ -15,7 +15,7 @@ 6 - 100 + 110 true @@ -28,7 +28,7 @@ true true Display - 230 + 260 31ffe3bf:150a7259bb9:-6563 -1 -1 @@ -60,17 +60,17 @@ false - Transfer + Transaction true 1 true Label - 53 + 89 false - 31ffe3bf:150a7259bb9:-6541 - 8 - 17 + 6c5e5e62:1775b7b9abc:-70f5 + 12 + 35 @@ -96,16 +96,16 @@ 0 - 29 + 20 0 false 1.7976931348623157E308 -1.7976931348623157E308 false - Transfer + Transaction 0 true - loc://Transfer<VString> + loc://Transaction<VString> 0.0 @@ -125,22 +125,21 @@ $(pv_value) true Text Input 135 - 31ffe3bf:150a7259bb9:-6540 - 74 - 12 + 6c5e5e62:1775b7b9abc:-70f4 + 114 + 35 - ../scripts/RestartApp.js + true @@ -166,7 +165,7 @@ Yamcs.issueCommand('/CFS/CF/Cancel(Trans: ' + Transfer + ')'); 25 - + ../../Resources/send.png Action Button 0 @@ -179,15 +178,55 @@ Yamcs.issueCommand('/CFS/CF/Cancel(Trans: ' + Transfer + ')'); - Cancel Transfer + Send false $(pv_name) $(pv_value) true Action Button - 163 - 31ffe3bf:150a7259bb9:-652c - 30 - 60 + 80 + 6c5e5e62:1775b7b9abc:-70f3 + 96 + 72 + + + + false + + + + + + + 0 + 1 + true + + Default Bold + + + + + 20 + 1 + Label_49 + + + true + true + false + + + Cancel Transaction + + true + 1 + true + Label + 168 + false + 6c5e5e62:1775b7b9abc:-70f2 + 52 + 6 \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/CF/DeleteQueueNode.opi b/core/base/tools/commander/workspace_template/Displays/Apps/CF/DeleteQueueNode.opi index 4c3cc2175..34d4dc77e 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/CF/DeleteQueueNode.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/CF/DeleteQueueNode.opi @@ -15,11 +15,11 @@ 6 - 100 + 110 true - + CF - Dequeue Node true @@ -28,7 +28,7 @@ true true Display - 230 + 260 31ffe3bf:150a7259bb9:-6563 -1 -1 @@ -60,17 +60,17 @@ false - Transfer + Transaction true 1 true Label - 53 + 89 false 31ffe3bf:150a7259bb9:-6541 - 8 - 17 + 6 + 42 @@ -96,16 +96,16 @@ 0 - 29 + 20 0 false 1.7976931348623157E308 -1.7976931348623157E308 false - Transfer + Transaction 0 true - loc://Transfer<VString> + loc://Transaction<VString> 0.0 @@ -126,8 +126,8 @@ $(pv_value) Text Input 135 31ffe3bf:150a7259bb9:-6540 - 74 - 12 + 108 + 42 @@ -137,10 +137,9 @@ $(pv_value) importPackage(Packages.org.yamcs.studio.script); importPackage(Packages.org.yamcs.studio.data); -var Transfer =VTypeHelper.getString(display.getWidget('Transfer').getPropertyValue('pv_value')); - -Yamcs.issueCommand('/CFS/CF/DeleteQueueNode(Trans: ' + Transfer + ')'); +var Transaction = VTypeHelper.getString(display.getWidget('Transaction').getPropertyValue('pv_value')); +Yamcs.issueCommand('/cfs/cf/DequeueNode', {'Trans': Transaction}); ]]> true @@ -166,7 +165,7 @@ Yamcs.issueCommand('/CFS/CF/DeleteQueueNode(Trans: ' + Transfer + ')'); 25 - + ../../Resources/send.png Action Button 0 @@ -179,15 +178,55 @@ Yamcs.issueCommand('/CFS/CF/DeleteQueueNode(Trans: ' + Transfer + ')'); - Delete Queue Node + Send false $(pv_name) $(pv_value) true Action Button - 163 + 80 31ffe3bf:150a7259bb9:-652c - 30 - 60 + 91 + 72 + + + + false + + + + + + + 0 + 1 + true + + Default Bold + + + + + 20 + 1 + Label_49 + + + true + true + false + + + Dequeue Node + + true + 1 + true + Label + 190 + false + 6c5e5e62:1775b7b9abc:-715c + 36 + 12 \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/CF/DisableDequeue.opi b/core/base/tools/commander/workspace_template/Displays/Apps/CF/DisableDequeue.opi index 2bcb25edc..520bf3639 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/CF/DisableDequeue.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/CF/DisableDequeue.opi @@ -15,11 +15,11 @@ 6 - 80 + 100 true - + CF - Disable Dequeue true @@ -28,14 +28,14 @@ true true Display - 290 + 300 31ffe3bf:150a7259bb9:-673d -1 -1 - ../scripts/RestartApp.js + true @@ -77,7 +81,7 @@ Yamcs.issueCommand('/CFS/CF/DisableDequeuel(Channel: ' + pChannel + ')'); 25 - + ../../Resources/send.png Action Button 0 @@ -90,16 +94,16 @@ Yamcs.issueCommand('/CFS/CF/DisableDequeuel(Channel: ' + pChannel + ')'); - Disable Dequeue + Send false $(pv_name) $(pv_value) true Action Button - 163 + 80 31ffe3bf:150a7259bb9:-670a - 60 - 42 + 108 + 66 @@ -138,8 +142,8 @@ $(pv_value) 59 false 31ffe3bf:150a7259bb9:-66f9 - 2 - 13 + 14 + 37 @@ -188,7 +192,47 @@ $(pv_value) Radio Box 229 31ffe3bf:150a7259bb9:-6615 - 78 + 90 + 36 + + + + false + + + + + + + 0 + 1 + true + + Default Bold + + + + + 20 + 1 + Label_7 + + + true + true + false + + + Disable Dequeue + + true + 1 + true + Label + 199 + false + 6c5e5e62:1775b7b9abc:-7231 + 48 12 \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/CF/DisablePollingDirectory.opi b/core/base/tools/commander/workspace_template/Displays/Apps/CF/DisablePollingDirectory.opi index c5089c921..3ad4c47c6 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/CF/DisablePollingDirectory.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/CF/DisablePollingDirectory.opi @@ -15,11 +15,11 @@ 6 - 130 + 160 true - + CF - Disable Polling Directory true @@ -28,7 +28,7 @@ true true Display - 330 + 350 31ffe3bf:150a7259bb9:-673d -1 -1 @@ -51,7 +51,11 @@ if( Channel == 'Channel 1' ) { pChannel = 2; } -Yamcs.issueCommand('/CFS/CF/DisableDirPolling(Channel: ' + pChannel + ', Dir: ' + Dir + ')'); +Yamcs.issueCommand('/cfs/cf/DisableDirPolling', { + 'Chan': pChannel, + 'Dir': Dir, + 'Spare_0_': 0, + 'Spare_0_0': 0}); ]]> true @@ -78,7 +82,7 @@ Yamcs.issueCommand('/CFS/CF/DisableDirPolling(Channel: ' + pChannel + ', Dir: ' 25 - + ../../Resources/send.png Action Button 0 @@ -91,16 +95,16 @@ Yamcs.issueCommand('/CFS/CF/DisableDirPolling(Channel: ' + pChannel + ', Dir: ' - Disable Polling Directory + Send false $(pv_name) $(pv_value) true Action Button - 163 - 31ffe3bf:150a7259bb9:-670a - 84 - 90 + 80 + 6c5e5e62:1775b7b9abc:-71f5 + 137 + 120 @@ -138,9 +142,9 @@ $(pv_value) Label 59 false - 31ffe3bf:150a7259bb9:-66f9 - 12 - 13 + 6c5e5e62:1775b7b9abc:-71f4 + 26 + 43 @@ -188,9 +192,9 @@ $(pv_value) true Radio Box 307 - 31ffe3bf:150a7259bb9:-6615 - 84 - 12 + 6c5e5e62:1775b7b9abc:-71f3 + 98 + 42 @@ -226,11 +230,11 @@ $(pv_value) 1 true Label - 95 + 108 false - -33cb7c72:150aa4c347f:-78ea - 12 - 47 + 6c5e5e62:1775b7b9abc:-71f2 + 13 + 77 @@ -283,8 +287,48 @@ $(pv_value) true Spinner 135 - -33cb7c72:150aa4c347f:-78e9 - 114 - 42 + 6c5e5e62:1775b7b9abc:-71f1 + 128 + 72 + + + + false + + + + + + + 0 + 1 + true + + Default Bold + + + + + 20 + 1 + Label_8 + + + true + true + false + + + Disable Polling Directory + + true + 1 + true + Label + 186 + false + 6c5e5e62:1775b7b9abc:-71f0 + 84 + 12 \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/CF/Downlink.opi b/core/base/tools/commander/workspace_template/Displays/Apps/CF/Downlink.opi index 7c2242d1f..ff7edffbe 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/CF/Downlink.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/CF/Downlink.opi @@ -19,7 +19,7 @@ true - + CF - Downlink true @@ -32,324 +32,6 @@ 45ea5983:1502a6e6386:-7f06 -1 -1 - - - false - false - false - - - - true - - - - 1 - 1 - true - - Default - - false - - - - 0 - 20 - 0 - Text Update - 0 - false - /cfs/cf/CF_HkPacket_t.CmdCounter - - 0.0 - - - true - true - false - - - true - ###### - $(pv_name) -$(pv_value) - false - 1 - true - Text Update - 100 - false - 45ea5983:1502a6e6386:-7f01 - 132 - 54 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 2 - Label - - - true - true - false - - - Cmd Count - - true - 1 - true - Label - 100 - false - 2b4f25d5:1502b5812fe:-7ff9 - 15 - 54 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 2 - Label_1 - - - true - true - false - - - Err Count - - true - 1 - true - Label - 100 - false - 2b4f25d5:1502b5812fe:-7fef - 15 - 73 - - - - false - - - - - - - 0 - 1 - true - - Default Bold - - - - - 20 - 1 - Label_46 - - - true - true - false - - - Commanding - - true - 1 - true - Label - 164 - false - 2b4f25d5:1502b5812fe:-7d1c - 132 - 35 - - - - false - false - false - - - - true - - - - 1 - 1 - true - - Default - - false - - - - 0 - 20 - 0 - Text Update_1 - 0 - false - /cfs/cf/CF_HkPacket_t.ErrCounter - - 0.0 - - - true - true - false - - - true - ###### - $(pv_name) -$(pv_value) - false - 1 - true - Text Update - 100 - false - 2b4f25d5:1502b5812fe:-7d06 - 132 - 73 - - - - - scripts/NoOp.js - - false - - - - false - false - - - - false - - - - 0 - 1 - true - - Default - - false - - - - 13 - - NoOp - 0 - - - - - true - true - false - - - - NoOp - false - $(pv_name) -$(pv_value) - true - Action Button - 67 - 39deb42:1504a4eb8cc:-7de2 - 254 - 57 - - - - false - - - - - - - 0 - 1 - true - - Default Bold - - - - - 20 - 1 - Label_49 - - - true - true - false - - - CCSDS File Transfer Application - - true - 1 - true - Label - 295 - false - 763e00b7:150973f1dd8:-7cf4 - 52 - 6 - false @@ -387,8 +69,8 @@ $(pv_value) 24 false 31ffe3bf:150a7259bb9:-7d37 - 197 - 138 + 198 + 59 @@ -418,7 +100,7 @@ $(pv_value) Text Update_47 0 false - /cfs/cf/CF_HkPacket_t.Chan[0].PDUsSent + /cfs/cf/CF_HkPacket_t.Chan_0_.PDUsSent 0.0 @@ -439,8 +121,8 @@ $(pv_value) 100 false 31ffe3bf:150a7259bb9:-7abc - 159 - 157 + 160 + 78 @@ -470,7 +152,7 @@ $(pv_value) Text Update_48 0 false - /cfs/cf/CF_HkPacket_t.Chan[0].FilesSent + /cfs/cf/CF_HkPacket_t.Chan_0_.FilesSent 0.0 @@ -491,8 +173,8 @@ $(pv_value) 100 false 31ffe3bf:150a7259bb9:-7abb - 159 - 176 + 160 + 97 @@ -522,7 +204,7 @@ $(pv_value) Text Update_49 0 false - /cfs/cf/CF_HkPacket_t.Chan[0].SuccessCounter + /cfs/cf/CF_HkPacket_t.Chan_0_.SuccessCounter 0.0 @@ -543,8 +225,8 @@ $(pv_value) 100 false 31ffe3bf:150a7259bb9:-7aba - 160 - 195 + 161 + 116 @@ -574,7 +256,7 @@ $(pv_value) Text Update_50 0 false - /cfs/cf/CF_HkPacket_t.Chan[0].FailedCounter + /cfs/cf/CF_HkPacket_t.Chan_0_.FailedCounter 0.0 @@ -595,8 +277,8 @@ $(pv_value) 100 false 31ffe3bf:150a7259bb9:-7ab9 - 160 - 214 + 161 + 135 @@ -626,7 +308,7 @@ $(pv_value) Text Update_51 0 false - /cfs/cf/CF_HkPacket_t.Chan[0].PendingQFileCnt + /cfs/cf/CF_HkPacket_t.Chan_0_.PendingQFileCnt 0.0 @@ -647,8 +329,8 @@ $(pv_value) 100 false 31ffe3bf:150a7259bb9:-7ab8 - 160 - 233 + 161 + 154 @@ -678,7 +360,7 @@ $(pv_value) Text Update_52 0 false - /cfs/cf/CF_HkPacket_t.Chan[0].ActiveQFileCnt + /cfs/cf/CF_HkPacket_t.Chan_0_.ActiveQFileCnt 0.0 @@ -699,8 +381,8 @@ $(pv_value) 100 false 31ffe3bf:150a7259bb9:-7ab7 - 160 - 252 + 161 + 173 @@ -730,7 +412,7 @@ $(pv_value) Text Update_53 0 false - /cfs/cf/CF_HkPacket_t.Chan[0].HistoryQFileCnt + /cfs/cf/CF_HkPacket_t.Chan_0_.HistoryQFileCnt 0.0 @@ -751,8 +433,8 @@ $(pv_value) 100 false 31ffe3bf:150a7259bb9:-7ab6 - 160 - 271 + 161 + 192 @@ -798,8 +480,8 @@ $(pv_value) Check Box 100 31ffe3bf:150a7259bb9:-7ab5 - 160 - 290 + 161 + 211 @@ -845,8 +527,8 @@ $(pv_value) Check Box 100 31ffe3bf:150a7259bb9:-7ab4 - 160 - 309 + 161 + 230 @@ -876,7 +558,7 @@ $(pv_value) Text Update_56 0 false - /cfs/cf/CF_HkPacket_t.Chan[0].RedLightCntr + /cfs/cf/CF_HkPacket_t.Chan_0_.RedLightCntr 0.0 @@ -897,8 +579,8 @@ $(pv_value) 100 false 31ffe3bf:150a7259bb9:-7ab3 - 160 - 328 + 161 + 249 @@ -928,7 +610,7 @@ $(pv_value) Text Update_57 0 false - /cfs/cf/CF_HkPacket_t.Chan[0].GreenLightCntr + /cfs/cf/CF_HkPacket_t.Chan_0_.GreenLightCntr 0.0 @@ -949,8 +631,8 @@ $(pv_value) 100 false 31ffe3bf:150a7259bb9:-7ab2 - 160 - 347 + 161 + 268 @@ -980,7 +662,7 @@ $(pv_value) Text Update_58 0 false - /cfs/cf/CF_HkPacket_t.Chan[0].PollDirsChecked + /cfs/cf/CF_HkPacket_t.Chan_0_.PollDirsChecked 0.0 @@ -1001,8 +683,8 @@ $(pv_value) 100 false 31ffe3bf:150a7259bb9:-7ab1 - 160 - 366 + 161 + 287 @@ -1032,7 +714,7 @@ $(pv_value) Text Update_59 0 false - /cfs/cf/CF_HkPacket_t.Chan[0].PendingQChecked + /cfs/cf/CF_HkPacket_t.Chan_0_.PendingQChecked 0.0 @@ -1053,8 +735,8 @@ $(pv_value) 100 false 31ffe3bf:150a7259bb9:-7ab0 - 160 - 385 + 161 + 306 @@ -1084,7 +766,7 @@ $(pv_value) Text Update_60 0 false - /cfs/cf/CF_HkPacket_t.Chan[0].SemValue + /cfs/cf/CF_HkPacket_t.Chan_0_.SemValue 0.0 @@ -1105,8 +787,8 @@ $(pv_value) 100 false 31ffe3bf:150a7259bb9:-7aaf - 160 - 404 + 161 + 325 @@ -1145,8 +827,8 @@ $(pv_value) 98 false 31ffe3bf:150a7259bb9:-7aa4 - 52 - 157 + 53 + 78 @@ -1185,8 +867,8 @@ $(pv_value) 124 false 31ffe3bf:150a7259bb9:-7a9a - 28 - 271 + 29 + 192 @@ -1225,8 +907,8 @@ $(pv_value) 131 false 31ffe3bf:150a7259bb9:-7a95 - 21 - 234 + 22 + 155 @@ -1265,8 +947,8 @@ $(pv_value) 98 false 31ffe3bf:150a7259bb9:-7a90 - 54 - 214 + 55 + 135 @@ -1305,8 +987,8 @@ $(pv_value) 131 false 31ffe3bf:150a7259bb9:-7a7c - 21 - 347 + 22 + 268 @@ -1345,8 +1027,8 @@ $(pv_value) 138 false 31ffe3bf:150a7259bb9:-7a7b - 14 - 385 + 15 + 306 @@ -1385,8 +1067,8 @@ $(pv_value) 138 false 31ffe3bf:150a7259bb9:-7a7a - 14 - 366 + 15 + 287 @@ -1425,8 +1107,8 @@ $(pv_value) 124 false 31ffe3bf:150a7259bb9:-7a58 - 28 - 252 + 29 + 173 @@ -1465,8 +1147,8 @@ $(pv_value) 98 false 31ffe3bf:150a7259bb9:-7a57 - 54 - 176 + 55 + 97 @@ -1505,8 +1187,8 @@ $(pv_value) 118 false 31ffe3bf:150a7259bb9:-7a56 - 34 - 195 + 35 + 116 @@ -1545,8 +1227,8 @@ $(pv_value) 98 false 31ffe3bf:150a7259bb9:-7a55 - 54 - 309 + 55 + 230 @@ -1585,8 +1267,8 @@ $(pv_value) 131 false 31ffe3bf:150a7259bb9:-7a54 - 21 - 328 + 22 + 249 @@ -1616,7 +1298,7 @@ $(pv_value) false - Deque + Dequeue true 1 @@ -1625,8 +1307,8 @@ $(pv_value) 98 false 31ffe3bf:150a7259bb9:-7a53 - 54 - 290 + 55 + 211 @@ -1665,8 +1347,8 @@ $(pv_value) 98 false 31ffe3bf:150a7259bb9:-7a46 - 54 - 404 + 55 + 325 @@ -1696,7 +1378,7 @@ $(pv_value) Text Update_61 0 false - /cfs/cf/CF_HkPacket_t.Chan[1].PDUsSent + /cfs/cf/CF_HkPacket_t.Chan_1_.PDUsSent 0.0 @@ -1717,8 +1399,8 @@ $(pv_value) 100 false 31ffe3bf:150a7259bb9:-79a7 - 274 - 157 + 275 + 78 @@ -1748,7 +1430,7 @@ $(pv_value) Text Update_62 0 false - /cfs/cf/CF_HkPacket_t.Chan[1].FilesSent + /cfs/cf/CF_HkPacket_t.Chan_1_.FilesSent 0.0 @@ -1769,8 +1451,8 @@ $(pv_value) 100 false 31ffe3bf:150a7259bb9:-79a6 - 274 - 176 + 275 + 97 @@ -1800,7 +1482,7 @@ $(pv_value) Text Update_63 0 false - /cfs/cf/CF_HkPacket_t.Chan[1].SuccessCounter + /cfs/cf/CF_HkPacket_t.Chan_1_.SuccessCounter 0.0 @@ -1821,8 +1503,8 @@ $(pv_value) 100 false 31ffe3bf:150a7259bb9:-79a5 - 275 - 195 + 276 + 116 @@ -1852,7 +1534,7 @@ $(pv_value) Text Update_64 0 false - /cfs/cf/CF_HkPacket_t.Chan[1].FailedCounter + /cfs/cf/CF_HkPacket_t.Chan_1_.FailedCounter 0.0 @@ -1873,8 +1555,8 @@ $(pv_value) 100 false 31ffe3bf:150a7259bb9:-79a4 - 275 - 214 + 276 + 135 @@ -1904,7 +1586,7 @@ $(pv_value) Text Update_65 0 false - /cfs/cf/CF_HkPacket_t.Chan[1].PendingQFileCnt + /cfs/cf/CF_HkPacket_t.Chan_1_.PendingQFileCnt 0.0 @@ -1925,8 +1607,8 @@ $(pv_value) 100 false 31ffe3bf:150a7259bb9:-79a3 - 275 - 233 + 276 + 154 @@ -1956,7 +1638,7 @@ $(pv_value) Text Update_66 0 false - /cfs/cf/CF_HkPacket_t.Chan[1].ActiveQFileCnt + /cfs/cf/CF_HkPacket_t.Chan_1_.ActiveQFileCnt 0.0 @@ -1977,8 +1659,8 @@ $(pv_value) 100 false 31ffe3bf:150a7259bb9:-79a2 - 275 - 252 + 276 + 173 @@ -2008,7 +1690,7 @@ $(pv_value) Text Update_67 0 false - /cfs/cf/CF_HkPacket_t.Chan[1].HistoryQFileCnt + /cfs/cf/CF_HkPacket_t.Chan_1_.HistoryQFileCnt 0.0 @@ -2029,8 +1711,8 @@ $(pv_value) 100 false 31ffe3bf:150a7259bb9:-79a1 - 275 - 271 + 276 + 192 @@ -2076,8 +1758,8 @@ $(pv_value) Check Box 100 31ffe3bf:150a7259bb9:-79a0 - 275 - 290 + 276 + 211 @@ -2123,8 +1805,8 @@ $(pv_value) Check Box 100 31ffe3bf:150a7259bb9:-799f - 275 - 309 + 276 + 230 @@ -2154,7 +1836,7 @@ $(pv_value) Text Update_70 0 false - /cfs/cf/CF_HkPacket_t.Chan[1].RedLightCntr + /cfs/cf/CF_HkPacket_t.Chan_1_.RedLightCntr 0.0 @@ -2175,8 +1857,8 @@ $(pv_value) 100 false 31ffe3bf:150a7259bb9:-799e - 275 - 328 + 276 + 249 @@ -2206,7 +1888,7 @@ $(pv_value) Text Update_71 0 false - /cfs/cf/CF_HkPacket_t.Chan[1].GreenLightCntr + /cfs/cf/CF_HkPacket_t.Chan_1_.GreenLightCntr 0.0 @@ -2227,8 +1909,8 @@ $(pv_value) 100 false 31ffe3bf:150a7259bb9:-799d - 275 - 347 + 276 + 268 @@ -2258,7 +1940,7 @@ $(pv_value) Text Update_72 0 false - /cfs/cf/CF_HkPacket_t.Chan[1].PollDirsChecked + /cfs/cf/CF_HkPacket_t.Chan_1_.PollDirsChecked 0.0 @@ -2279,8 +1961,8 @@ $(pv_value) 100 false 31ffe3bf:150a7259bb9:-799c - 275 - 366 + 276 + 287 @@ -2310,7 +1992,7 @@ $(pv_value) Text Update_73 0 false - /cfs/cf/CF_HkPacket_t.Chan[1].PendingQChecked + /cfs/cf/CF_HkPacket_t.Chan_1_.PendingQChecked 0.0 @@ -2331,8 +2013,8 @@ $(pv_value) 100 false 31ffe3bf:150a7259bb9:-799b - 275 - 385 + 276 + 306 @@ -2362,7 +2044,7 @@ $(pv_value) Text Update_74 0 false - /cfs/cf/CF_HkPacket_t.Chan[1].SemValue + /cfs/cf/CF_HkPacket_t.Chan_1_.SemValue 0.0 @@ -2383,8 +2065,8 @@ $(pv_value) 100 false 31ffe3bf:150a7259bb9:-799a - 275 - 404 + 276 + 325 @@ -2423,8 +2105,8 @@ $(pv_value) 24 false 31ffe3bf:150a7259bb9:-7966 - 310 - 138 + 311 + 59 @@ -2454,7 +2136,7 @@ $(pv_value) false - Downlink Channels + Channels true 1 @@ -2463,8 +2145,8 @@ $(pv_value) 164 false 31ffe3bf:150a7259bb9:-795c - 184 - 119 + 185 + 40 @@ -2472,8 +2154,10 @@ $(pv_value) +Yamcs.issueCommand('/cfs/cf/ResetCounters', {'Value': 'DOWN', 'Spare_0_': 0, 'Spare_1_': 0, 'Spare_2_': 0}); +]]> true @@ -2497,9 +2181,9 @@ Yamcs.issueCommand('/CFS/CF/Reset(Value: 0)');]]> - 13 - - NoOp_1 + 23 + ../../Resources/send.png + NoOp_16 0 @@ -2511,34 +2195,23 @@ Yamcs.issueCommand('/CFS/CF/Reset(Value: 0)');]]> - Reset + Reset Counts false $(pv_name) $(pv_value) true Action Button - 67 - 31ffe3bf:150a7259bb9:-6c9f - 254 - 76 + 130 + 31ffe3bf:150a7259bb9:-68a6 + 202 + 354 - - - - PlaybackFile.opi - - true - - 0 - - - - false - false + + + false - + - false @@ -2546,18 +2219,14 @@ $(pv_value) 1 true - Default + Default Bold - false 20 - - NoOp_2 - 0 - - + 1 + Label_132 true @@ -2565,25 +2234,26 @@ $(pv_value) false - - Playback File - false - $(pv_name) -$(pv_value) + Downlink + + true + 1 true - Action Button - 159 - 31ffe3bf:150a7259bb9:-6c56 - 34 - 468 + Label + 164 + false + 6c5e5e62:1775b7b9abc:-7b77 + 113 + 12 - - scripts/NoOp.js - - false + + PlaybackFile.opi + + true + + 1 @@ -2606,9 +2276,9 @@ $(pv_value) - 19 + 20 - NoOp_3 + NoOp_2 0 @@ -2620,16 +2290,16 @@ $(pv_value) - Playback Directory + Playback File false $(pv_name) $(pv_value) true Action Button 159 - 31ffe3bf:150a7259bb9:-6c4f - 220 - 468 + 6c5e5e62:1775b7b9abc:-7b51 + 22 + 396 @@ -2638,7 +2308,7 @@ $(pv_value) true - 0 + 1 @@ -2661,7 +2331,7 @@ $(pv_value) - 19 + 20 NoOp_4 0 @@ -2682,18 +2352,18 @@ $(pv_value) true Action Button 159 - 31ffe3bf:150a7259bb9:-6ba3 - 34 - 487 + 6c5e5e62:1775b7b9abc:-7b49 + 22 + 415 - WriteQueueInfo.opi + Kickstart.opi true - 0 + 1 @@ -2716,9 +2386,9 @@ $(pv_value) - 19 + 20 - NoOp_5 + NoOp_13 0 @@ -2730,16 +2400,16 @@ $(pv_value) - Write Queue Info + Kickstart false $(pv_name) $(pv_value) true Action Button 159 - 31ffe3bf:150a7259bb9:-6b87 - 220 - 505 + 6c5e5e62:1775b7b9abc:-7b41 + 22 + 434 @@ -2748,7 +2418,7 @@ $(pv_value) true - 0 + 1 @@ -2771,7 +2441,7 @@ $(pv_value) - 19 + 20 NoOp_6 0 @@ -2792,9 +2462,9 @@ $(pv_value) true Action Button 159 - 31ffe3bf:150a7259bb9:-6b7d - 34 - 523 + 6c5e5e62:1775b7b9abc:-7b39 + 22 + 453 @@ -2803,7 +2473,7 @@ $(pv_value) true - 0 + 1 @@ -2826,7 +2496,7 @@ $(pv_value) - 19 + 20 NoOp_8 0 @@ -2847,18 +2517,18 @@ $(pv_value) true Action Button 159 - 31ffe3bf:150a7259bb9:-6b04 - 34 - 541 + 6c5e5e62:1775b7b9abc:-7b31 + 22 + 472 - DisablePollingDirectory.opi + DeleteQueueNode.opi true - 0 + 1 @@ -2881,9 +2551,9 @@ $(pv_value) - 19 + 20 - NoOp_9 + NoOp_10 0 @@ -2895,25 +2565,25 @@ $(pv_value) - Disable Dir Polling + Delete Queue Node false $(pv_name) $(pv_value) true Action Button 159 - 31ffe3bf:150a7259bb9:-6afa - 220 - 541 + 6c5e5e62:1775b7b9abc:-7b29 + 22 + 491 - DeleteQueueNode.opi + QuickStatus.opi true - 0 + 1 @@ -2936,9 +2606,9 @@ $(pv_value) - 19 + 20 - NoOp_10 + NoOp_14 0 @@ -2950,25 +2620,25 @@ $(pv_value) - Delete Queue Node + Quick Status false $(pv_name) $(pv_value) true Action Button 159 - 31ffe3bf:150a7259bb9:-6af3 - 34 - 559 + 6c5e5e62:1775b7b9abc:-7b21 + 22 + 510 - PurgeQueue.opi + PlaybackDirectory.opi true - 0 + 1 @@ -2991,9 +2661,9 @@ $(pv_value) - 19 + 20 - NoOp_11 + NoOp_3 0 @@ -3005,16 +2675,16 @@ $(pv_value) - Purge Queue + Playback Directory false $(pv_name) $(pv_value) true Action Button 159 - 31ffe3bf:150a7259bb9:-6aec - 220 - 559 + 6c5e5e62:1775b7b9abc:-7b01 + 210 + 396 @@ -3023,7 +2693,7 @@ $(pv_value) true - 0 + 1 @@ -3046,7 +2716,7 @@ $(pv_value) - 19 + 20 NoOp_12 0 @@ -3067,18 +2737,18 @@ $(pv_value) true Action Button 159 - 31ffe3bf:150a7259bb9:-6ae5 - 220 - 487 + 6c5e5e62:1775b7b9abc:-7af9 + 210 + 415 - Kickstart.opi + WriteQueueInfo.opi true - 0 + 1 @@ -3101,9 +2771,9 @@ $(pv_value) - 19 + 20 - NoOp_13 + NoOp_5 0 @@ -3115,25 +2785,25 @@ $(pv_value) - Kickstart + Write Queue Info false $(pv_name) $(pv_value) true Action Button 159 - 31ffe3bf:150a7259bb9:-6adb - 34 - 505 + 6c5e5e62:1775b7b9abc:-7af1 + 210 + 434 - QuickStatus.opi + DisableDequeue.opi true - 0 + 1 @@ -3156,9 +2826,9 @@ $(pv_value) - 19 + 20 - NoOp_14 + NoOp_17 0 @@ -3170,25 +2840,25 @@ $(pv_value) - Quick Status + Disable Dequeue false $(pv_name) $(pv_value) true Action Button 159 - 31ffe3bf:150a7259bb9:-6ad4 - 34 - 577 + 6c5e5e62:1775b7b9abc:-7acf + 210 + 453 - GiveTake.opi + DisablePollingDirectory.opi true - 0 + 1 @@ -3211,9 +2881,9 @@ $(pv_value) - 19 + 20 - NoOp_15 + NoOp_9 0 @@ -3225,33 +2895,32 @@ $(pv_value) - Give / Take + Disable Dir Polling false $(pv_name) $(pv_value) true Action Button 159 - 31ffe3bf:150a7259bb9:-6acd - 220 - 577 + 6c5e5e62:1775b7b9abc:-7ac7 + 210 + 472 - - - - true + + PurgeQueue.opi + + true + + 1 false false - + false @@ -3265,11 +2934,11 @@ Yamcs.issueCommand('/CFS/CF/Reset(Value: 4)');]]> false - + - 23 + 20 - NoOp_16 + NoOp_11 0 @@ -3281,25 +2950,25 @@ Yamcs.issueCommand('/CFS/CF/Reset(Value: 4)');]]> - Reset Counts + Purge Queue false $(pv_name) $(pv_value) true Action Button - 110 - 31ffe3bf:150a7259bb9:-68a6 - 211 - 432 + 159 + 6c5e5e62:1775b7b9abc:-7abf + 210 + 491 - DisableDequeue.opi + GiveTake.opi true - 0 + 1 @@ -3322,9 +2991,9 @@ $(pv_value) - 19 + 20 - NoOp_17 + NoOp_15 0 @@ -3336,15 +3005,15 @@ $(pv_value) - Disable Dequeue + Give / Take false $(pv_name) $(pv_value) true Action Button 159 - -33cb7c72:150aa4c347f:-7849 - 220 - 523 + 6c5e5e62:1775b7b9abc:-7ab7 + 210 + 510 \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/CF/EnableDequeue.opi b/core/base/tools/commander/workspace_template/Displays/Apps/CF/EnableDequeue.opi index a0e062aff..7e8b996b9 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/CF/EnableDequeue.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/CF/EnableDequeue.opi @@ -15,11 +15,11 @@ 6 - 80 + 120 true - + CF - Enable Dequeue true @@ -35,7 +35,7 @@ - ../scripts/RestartApp.js + true @@ -77,7 +81,7 @@ Yamcs.issueCommand('/CFS/CF/EnableDequeue(Channel: ' + pChannel + ')'); 25 - + ../../Resources/send.png Action Button 0 @@ -90,16 +94,16 @@ Yamcs.issueCommand('/CFS/CF/EnableDequeue(Channel: ' + pChannel + ')'); - Enable Dequeue + Send false $(pv_name) $(pv_value) true Action Button - 163 + 80 31ffe3bf:150a7259bb9:-670a - 60 - 42 + 102 + 78 @@ -139,7 +143,7 @@ $(pv_value) false 31ffe3bf:150a7259bb9:-66f9 12 - 13 + 43 @@ -189,6 +193,46 @@ $(pv_value) 229 31ffe3bf:150a7259bb9:-6615 78 + 42 + + + + false + + + + + + + 0 + 1 + true + + Default Bold + + + + + 20 + 1 + Label_7 + + + true + true + false + + + Enable Dequeue + + true + 1 + true + Label + 199 + false + 6c5e5e62:1775b7b9abc:-724e + 42 12 \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/CF/EnablePollingDirectory.opi b/core/base/tools/commander/workspace_template/Displays/Apps/CF/EnablePollingDirectory.opi index 83b26f70b..5c0c644fc 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/CF/EnablePollingDirectory.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/CF/EnablePollingDirectory.opi @@ -15,11 +15,11 @@ 6 - 130 + 160 true - + CF - Enable Poll Dir true @@ -28,7 +28,7 @@ true true Display - 330 + 340 31ffe3bf:150a7259bb9:-673d -1 -1 @@ -51,7 +51,11 @@ if( Channel == 'Channel 1' ) { pChannel = 2; } -Yamcs.issueCommand('/CFS/CF/EnableDirPolling(Channel: ' + pChannel + ', Dir: ' + Dir + ')'); +Yamcs.issueCommand('/cfs/cf/EnableDirPolling', { + 'Chan': pChannel, + 'Dir': Dir, + 'Spare_0_': 0, + 'Spare_0_0': 0}); ]]> true @@ -78,7 +82,7 @@ Yamcs.issueCommand('/CFS/CF/EnableDirPolling(Channel: ' + pChannel + ', Dir: ' + 25 - + ../../Resources/send.png Action Button 0 @@ -91,16 +95,16 @@ Yamcs.issueCommand('/CFS/CF/EnableDirPolling(Channel: ' + pChannel + ', Dir: ' + - Enable Polling Directory + Send false $(pv_name) $(pv_value) true Action Button - 163 + 80 31ffe3bf:150a7259bb9:-670a - 84 - 90 + 129 + 120 @@ -139,8 +143,8 @@ $(pv_value) 59 false 31ffe3bf:150a7259bb9:-66f9 - 12 - 13 + 18 + 43 @@ -189,8 +193,8 @@ $(pv_value) Radio Box 307 31ffe3bf:150a7259bb9:-6615 - 84 - 12 + 90 + 42 @@ -226,11 +230,11 @@ $(pv_value) 1 true Label - 95 + 108 false -33cb7c72:150aa4c347f:-78ea - 12 - 47 + 5 + 77 @@ -284,7 +288,47 @@ $(pv_value) Spinner 135 -33cb7c72:150aa4c347f:-78e9 - 114 - 42 + 120 + 72 + + + + false + + + + + + + 0 + 1 + true + + Default Bold + + + + + 20 + 1 + Label_8 + + + true + true + false + + + Enable Polling Directory + + true + 1 + true + Label + 186 + false + 6c5e5e62:1775b7b9abc:-7255 + 76 + 12 \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/CF/Engine.opi b/core/base/tools/commander/workspace_template/Displays/Apps/CF/Engine.opi index fd69c71e4..0ac555cbc 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/CF/Engine.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/CF/Engine.opi @@ -15,11 +15,11 @@ 6 - 670 + 560 true - + CF - Engine true @@ -32,284 +32,6 @@ 45ea5983:1502a6e6386:-7f06 -1 -1 - - - false - false - false - - - - true - - - - 1 - 1 - true - - Default - - false - - - - 0 - 20 - 0 - Text Update - 0 - false - /cfs/cf/CF_HkPacket_t.CmdCounter - - 0.0 - - - true - true - false - - - true - ###### - $(pv_name) -$(pv_value) - false - 1 - true - Text Update - 100 - false - 45ea5983:1502a6e6386:-7f01 - 119 - 57 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 2 - Label - - - true - true - false - - - Cmd Count - - true - 1 - true - Label - 100 - false - 2b4f25d5:1502b5812fe:-7ff9 - 2 - 57 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 2 - Label_1 - - - true - true - false - - - Err Count - - true - 1 - true - Label - 100 - false - 2b4f25d5:1502b5812fe:-7fef - 2 - 76 - - - - false - - - - - - - 0 - 1 - true - - Default Bold - - - - - 20 - 1 - Label_46 - - - true - true - false - - - Commanding - - true - 1 - true - Label - 164 - false - 2b4f25d5:1502b5812fe:-7d1c - 78 - 30 - - - - false - false - false - - - - true - - - - 1 - 1 - true - - Default - - false - - - - 0 - 20 - 0 - Text Update_1 - 0 - false - /cfs/cf/CF_HkPacket_t.ErrCounter - - 0.0 - - - true - true - false - - - true - ###### - $(pv_name) -$(pv_value) - false - 1 - true - Text Update - 100 - false - 2b4f25d5:1502b5812fe:-7d06 - 119 - 76 - - - - - scripts/NoOp.js - - false - - - - false - false - - - - false - - - - 0 - 1 - true - - Default - - false - - - - 13 - - NoOp - 0 - - - - - true - true - false - - - - NoOp - false - $(pv_name) -$(pv_value) - true - Action Button - 67 - 39deb42:1504a4eb8cc:-7de2 - 241 - 60 - false @@ -338,17 +60,17 @@ $(pv_value) false - CCSDS File Transfer Application + Engine true 1 true Label - 295 + 175 false 763e00b7:150973f1dd8:-7cf4 - 24 - 6 + 72 + 12 @@ -399,48 +121,8 @@ $(pv_value) 100 false 31ffe3bf:150a7259bb9:-7d41 - 199 - 127 - - - - false - - - - - - - 0 - 1 - true - - Default Bold - - - - - 20 - 1 - Label_82 - - - true - true - false - - - Engine - - true - 1 - true - Label - 164 - false - 31ffe3bf:150a7259bb9:-7d30 - 78 - 108 + 210 + 39 @@ -479,8 +161,8 @@ $(pv_value) 152 false 31ffe3bf:150a7259bb9:-7d26 - 37 - 127 + 48 + 39 @@ -526,8 +208,8 @@ $(pv_value) Check Box 100 31ffe3bf:150a7259bb9:-7cb0 - 199 - 146 + 212 + 58 @@ -573,8 +255,8 @@ $(pv_value) Check Box 100 31ffe3bf:150a7259bb9:-7caf - 199 - 165 + 210 + 77 @@ -620,8 +302,8 @@ $(pv_value) Check Box 100 31ffe3bf:150a7259bb9:-7cae - 199 - 184 + 210 + 96 @@ -667,8 +349,8 @@ $(pv_value) Check Box 100 31ffe3bf:150a7259bb9:-7cad - 199 - 203 + 210 + 115 @@ -714,8 +396,8 @@ $(pv_value) Check Box 100 31ffe3bf:150a7259bb9:-7cab - 199 - 241 + 210 + 153 @@ -761,8 +443,8 @@ $(pv_value) Check Box 100 31ffe3bf:150a7259bb9:-7cac - 199 - 222 + 210 + 134 @@ -808,8 +490,8 @@ $(pv_value) Check Box 100 31ffe3bf:150a7259bb9:-7caa - 199 - 260 + 210 + 172 @@ -855,8 +537,8 @@ $(pv_value) Check Box 100 31ffe3bf:150a7259bb9:-7ca9 - 199 - 279 + 210 + 191 @@ -902,8 +584,8 @@ $(pv_value) Check Box 100 31ffe3bf:150a7259bb9:-7ca8 - 199 - 298 + 210 + 210 @@ -942,8 +624,8 @@ $(pv_value) 152 false 31ffe3bf:150a7259bb9:-7c9e - 37 - 146 + 48 + 58 @@ -982,8 +664,8 @@ $(pv_value) 152 false 31ffe3bf:150a7259bb9:-7c94 - 37 - 165 + 48 + 77 @@ -1022,8 +704,8 @@ $(pv_value) 152 false 31ffe3bf:150a7259bb9:-7c8f - 37 - 184 + 48 + 96 @@ -1062,8 +744,8 @@ $(pv_value) 152 false 31ffe3bf:150a7259bb9:-7c8a - 37 - 203 + 48 + 115 @@ -1102,8 +784,8 @@ $(pv_value) 152 false 31ffe3bf:150a7259bb9:-7c85 - 37 - 241 + 48 + 153 @@ -1142,8 +824,8 @@ $(pv_value) 152 false 31ffe3bf:150a7259bb9:-7c80 - 37 - 222 + 48 + 134 @@ -1182,8 +864,8 @@ $(pv_value) 152 false 31ffe3bf:150a7259bb9:-7c76 - 37 - 260 + 48 + 172 @@ -1222,8 +904,8 @@ $(pv_value) 152 false 31ffe3bf:150a7259bb9:-7c67 - 37 - 298 + 48 + 210 @@ -1262,8 +944,8 @@ $(pv_value) 152 false 31ffe3bf:150a7259bb9:-7c62 - 37 - 279 + 48 + 191 @@ -1314,8 +996,8 @@ $(pv_value) 100 false 31ffe3bf:150a7259bb9:-7bd8 - 199 - 317 + 210 + 229 @@ -1366,8 +1048,8 @@ $(pv_value) 100 false 31ffe3bf:150a7259bb9:-7bd7 - 199 - 336 + 210 + 248 @@ -1418,8 +1100,8 @@ $(pv_value) 100 false 31ffe3bf:150a7259bb9:-7bd6 - 199 - 355 + 210 + 267 @@ -1470,8 +1152,8 @@ $(pv_value) 100 false 31ffe3bf:150a7259bb9:-7bd5 - 199 - 374 + 210 + 286 @@ -1522,8 +1204,8 @@ $(pv_value) 100 false 31ffe3bf:150a7259bb9:-7bd4 - 199 - 393 + 210 + 305 @@ -1574,8 +1256,8 @@ $(pv_value) 100 false 31ffe3bf:150a7259bb9:-7bd3 - 199 - 412 + 210 + 324 @@ -1626,8 +1308,8 @@ $(pv_value) 100 false 31ffe3bf:150a7259bb9:-7bd2 - 199 - 431 + 210 + 343 @@ -1678,8 +1360,8 @@ $(pv_value) 100 false 31ffe3bf:150a7259bb9:-7bd1 - 199 - 450 + 210 + 362 @@ -1730,8 +1412,8 @@ $(pv_value) 100 false 31ffe3bf:150a7259bb9:-7bd0 - 199 - 469 + 210 + 381 @@ -1782,8 +1464,8 @@ $(pv_value) 100 false 31ffe3bf:150a7259bb9:-7bcf - 199 - 488 + 210 + 400 @@ -1834,8 +1516,8 @@ $(pv_value) 100 false 31ffe3bf:150a7259bb9:-7bce - 199 - 507 + 210 + 419 @@ -1874,8 +1556,8 @@ $(pv_value) 152 false 31ffe3bf:150a7259bb9:-7bc4 - 37 - 317 + 48 + 229 @@ -1914,8 +1596,8 @@ $(pv_value) 152 false 31ffe3bf:150a7259bb9:-7bba - 37 - 336 + 48 + 248 @@ -1951,11 +1633,11 @@ $(pv_value) 1 true Label - 152 + 182 false 31ffe3bf:150a7259bb9:-7bae - 37 - 355 + 18 + 267 @@ -1994,8 +1676,8 @@ $(pv_value) 152 false 31ffe3bf:150a7259bb9:-7ba9 - 37 - 374 + 48 + 286 @@ -2034,8 +1716,8 @@ $(pv_value) 152 false 31ffe3bf:150a7259bb9:-7ba4 - 37 - 393 + 48 + 305 @@ -2074,8 +1756,8 @@ $(pv_value) 152 false 31ffe3bf:150a7259bb9:-7b9f - 37 - 412 + 48 + 324 @@ -2114,8 +1796,8 @@ $(pv_value) 152 false 31ffe3bf:150a7259bb9:-7b9a - 37 - 450 + 48 + 362 @@ -2154,8 +1836,8 @@ $(pv_value) 152 false 31ffe3bf:150a7259bb9:-7b95 - 37 - 431 + 48 + 343 @@ -2194,8 +1876,8 @@ $(pv_value) 152 false 31ffe3bf:150a7259bb9:-7b90 - 37 - 469 + 48 + 381 @@ -2231,11 +1913,11 @@ $(pv_value) 1 true Label - 182 + 188 false 31ffe3bf:150a7259bb9:-7b7a - 7 - 507 + 12 + 419 @@ -2274,8 +1956,8 @@ $(pv_value) 176 false 31ffe3bf:150a7259bb9:-7b75 - 13 - 488 + 24 + 400 @@ -2283,63 +1965,11 @@ $(pv_value) - true - - - - false - false - - - - false - - - - 0 - 1 - true - - Default - - false - - - - 13 - - NoOp_1 - 0 - - - - - true - true - false - - - - Reset - false - $(pv_name) -$(pv_value) - true - Action Button - 67 - 31ffe3bf:150a7259bb9:-6ca6 - 241 - 79 - - - - - scripts/Freeze.js - - false + true @@ -2363,8 +1993,8 @@ $(pv_value) 20 - - NoOp_2 + ../../Resources/send.png + NoOp_16 0 @@ -2382,18 +2012,21 @@ $(pv_value) $(pv_value) true Action Button - 134 - 31ffe3bf:150a7259bb9:-6c09 - 24 - 552 + 130 + 6c5e5e62:1775b7b9abc:-7a8e + 26 + 454 - scripts/Thaw.js + - false +importPackage(Packages.org.yamcs.studio.script); +importPackage(Packages.org.yamcs.studio.data); + +Yamcs.issueCommand('/cfs/cf/Thaw', {});]]> + true @@ -2417,8 +2050,8 @@ $(pv_value) 20 - - NoOp_3 + ../../Resources/send.png + NoOp_17 0 @@ -2436,10 +2069,10 @@ $(pv_value) $(pv_value) true Action Button - 134 - 31ffe3bf:150a7259bb9:-6bff - 167 - 552 + 130 + 6c5e5e62:1775b7b9abc:-7a82 + 26 + 473 @@ -2448,14 +2081,14 @@ $(pv_value) true - 0 + 1 false false - + false @@ -2473,7 +2106,7 @@ $(pv_value) 20 - NoOp_4 + Action Button 0 @@ -2491,10 +2124,10 @@ $(pv_value) $(pv_value) true Action Button - 134 - 31ffe3bf:150a7259bb9:-6bf5 - 24 - 571 + 130 + 6c5e5e62:1775b7b9abc:-7a73 + 26 + 492 @@ -2503,14 +2136,14 @@ $(pv_value) true - 0 + 1 false false - + false @@ -2528,7 +2161,7 @@ $(pv_value) 20 - NoOp_5 + Action Button_1 0 @@ -2546,26 +2179,26 @@ $(pv_value) $(pv_value) true Action Button - 134 - 31ffe3bf:150a7259bb9:-6be9 - 167 - 571 + 130 + 6c5e5e62:1775b7b9abc:-7a6b + 26 + 511 - Cancel.opi + GetMIBParam.opi true - 0 + 1 false false - + false @@ -2583,7 +2216,7 @@ $(pv_value) 20 - NoOp_6 + Action Button_2 0 @@ -2595,32 +2228,32 @@ $(pv_value) - Cancel + Get MIB Param false $(pv_name) $(pv_value) true Action Button - 134 - 31ffe3bf:150a7259bb9:-6bdf - 24 - 590 + 130 + 6c5e5e62:1775b7b9abc:-7a63 + 174 + 454 - Abandon.opi + SetMIBParam.opi true - 0 + 1 false false - + false @@ -2638,7 +2271,7 @@ $(pv_value) 20 - NoOp_7 + Action Button_3 0 @@ -2650,32 +2283,32 @@ $(pv_value) - Abandon + Set MIB Param false $(pv_name) $(pv_value) true Action Button - 134 - 31ffe3bf:150a7259bb9:-6bd5 - 167 - 590 + 130 + 6c5e5e62:1775b7b9abc:-7a5b + 174 + 473 - SetMIBParam.opi + Cancel.opi true - 0 + 1 false false - + false @@ -2693,7 +2326,7 @@ $(pv_value) 20 - NoOp_8 + Action Button_4 0 @@ -2705,32 +2338,32 @@ $(pv_value) - Set MIB Param + Cancel false $(pv_name) $(pv_value) true Action Button - 134 - 31ffe3bf:150a7259bb9:-6bc5 - 167 - 609 + 130 + 6c5e5e62:1775b7b9abc:-7a51 + 26 + 530 - GetMIBParam.opi + Abandon.opi true - 0 + 1 false false - + false @@ -2748,7 +2381,7 @@ $(pv_value) 20 - NoOp_9 + Action Button_5 0 @@ -2760,16 +2393,16 @@ $(pv_value) - Get MIB Param + Abandon false $(pv_name) $(pv_value) true Action Button - 134 - 31ffe3bf:150a7259bb9:-6bbb - 24 - 609 + 130 + 6c5e5e62:1775b7b9abc:-7a47 + 174 + 492 @@ -2778,14 +2411,14 @@ $(pv_value) true - 0 + 1 false false - + false @@ -2803,7 +2436,7 @@ $(pv_value) 20 - NoOp_10 + Action Button_6 0 @@ -2821,10 +2454,10 @@ $(pv_value) $(pv_value) true Action Button - 134 - 31ffe3bf:150a7259bb9:-6bb1 - 24 - 628 + 130 + 6c5e5e62:1775b7b9abc:-7a3f + 174 + 511 @@ -2833,14 +2466,14 @@ $(pv_value) true - 0 + 1 false false - + false @@ -2858,7 +2491,7 @@ $(pv_value) 20 - NoOp_11 + Action Button_7 0 @@ -2876,9 +2509,9 @@ $(pv_value) $(pv_value) true Action Button - 134 - 31ffe3bf:150a7259bb9:-6b95 - 167 - 628 + 130 + 6c5e5e62:1775b7b9abc:-7a35 + 174 + 530 \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/CF/Faults.opi b/core/base/tools/commander/workspace_template/Displays/Apps/CF/Faults.opi index 844595014..d0cca8b43 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/CF/Faults.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/CF/Faults.opi @@ -15,11 +15,11 @@ 6 - 320 + 240 true - + CF - Faults true @@ -32,284 +32,6 @@ 45ea5983:1502a6e6386:-7f06 -1 -1 - - - false - false - false - - - - true - - - - 1 - 1 - true - - Default - - false - - - - 0 - 20 - 0 - Text Update - 0 - false - /cfs/cf/CF_HkPacket_t.CmdCounter - - 0.0 - - - true - true - false - - - true - ###### - $(pv_name) -$(pv_value) - false - 1 - true - Text Update - 100 - false - 45ea5983:1502a6e6386:-7f01 - 99 - 55 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 2 - Label - - - true - true - false - - - Cmd Count - - true - 1 - true - Label - 100 - false - 2b4f25d5:1502b5812fe:-7ff9 - -18 - 55 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 2 - Label_1 - - - true - true - false - - - Err Count - - true - 1 - true - Label - 100 - false - 2b4f25d5:1502b5812fe:-7fef - -18 - 74 - - - - false - - - - - - - 0 - 1 - true - - Default Bold - - - - - 20 - 1 - Label_46 - - - true - true - false - - - Commanding - - true - 1 - true - Label - 164 - false - 2b4f25d5:1502b5812fe:-7d1c - 48 - 36 - - - - false - false - false - - - - true - - - - 1 - 1 - true - - Default - - false - - - - 0 - 20 - 0 - Text Update_1 - 0 - false - /cfs/cf/CF_HkPacket_t.ErrCounter - - 0.0 - - - true - true - false - - - true - ###### - $(pv_name) -$(pv_value) - false - 1 - true - Text Update - 100 - false - 2b4f25d5:1502b5812fe:-7d06 - 99 - 74 - - - - - scripts/NoOp.js - - false - - - - false - false - - - - false - - - - 0 - 1 - true - - Default - - false - - - - 13 - - NoOp - 0 - - - - - true - true - false - - - - NoOp - false - $(pv_name) -$(pv_value) - true - Action Button - 67 - 39deb42:1504a4eb8cc:-7de2 - 221 - 58 - false @@ -338,57 +60,17 @@ $(pv_value) false - CCSDS File Transfer Application - - true - 1 - true - Label - 295 - false - 763e00b7:150973f1dd8:-7cf4 - -18 - 6 - - - - false - - - - - - - 0 - 1 - true - - Default Bold - - - - - 20 - 1 - Label_71 - - - true - true - false - - Faults true 1 true Label - 164 + 187 false - 31ffe3bf:150a7259bb9:-7df8 - 48 - 108 + 763e00b7:150973f1dd8:-7cf4 + 46 + 12 @@ -439,8 +121,8 @@ $(pv_value) 100 false 31ffe3bf:150a7259bb9:-7dbf - 135 - 132 + 142 + 42 @@ -491,8 +173,8 @@ $(pv_value) 100 false 31ffe3bf:150a7259bb9:-7dbe - 135 - 151 + 142 + 61 @@ -543,8 +225,8 @@ $(pv_value) 100 false 31ffe3bf:150a7259bb9:-7dbd - 135 - 170 + 142 + 80 @@ -595,8 +277,8 @@ $(pv_value) 100 false 31ffe3bf:150a7259bb9:-7dbc - 135 - 189 + 142 + 99 @@ -647,8 +329,8 @@ $(pv_value) 100 false 31ffe3bf:150a7259bb9:-7dbb - 135 - 208 + 142 + 118 @@ -699,8 +381,8 @@ $(pv_value) 100 false 31ffe3bf:150a7259bb9:-7dba - 135 - 227 + 142 + 137 @@ -751,8 +433,8 @@ $(pv_value) 100 false 31ffe3bf:150a7259bb9:-7db9 - 135 - 246 + 142 + 156 @@ -803,8 +485,8 @@ $(pv_value) 100 false 31ffe3bf:150a7259bb9:-7db8 - 135 - 265 + 142 + 175 @@ -840,11 +522,11 @@ $(pv_value) 1 true Label - 129 + 80 false 31ffe3bf:150a7259bb9:-7db0 - -4 - 132 + 52 + 42 @@ -880,11 +562,11 @@ $(pv_value) 1 true Label - 129 + 116 false 31ffe3bf:150a7259bb9:-7da8 - -4 - 151 + 16 + 61 @@ -920,11 +602,11 @@ $(pv_value) 1 true Label - 129 + 110 false 31ffe3bf:150a7259bb9:-7da3 - -4 - 170 + 22 + 80 @@ -960,11 +642,11 @@ $(pv_value) 1 true Label - 129 + 80 false 31ffe3bf:150a7259bb9:-7d9e - -4 - 227 + 52 + 137 @@ -1000,11 +682,11 @@ $(pv_value) 1 true Label - 129 + 80 false 31ffe3bf:150a7259bb9:-7d99 - -4 - 208 + 52 + 118 @@ -1040,11 +722,11 @@ $(pv_value) 1 true Label - 129 + 80 false 31ffe3bf:150a7259bb9:-7d94 - -4 - 246 + 52 + 156 @@ -1080,11 +762,11 @@ $(pv_value) 1 true Label - 129 + 80 false 31ffe3bf:150a7259bb9:-7d8a - -4 - 265 + 52 + 175 @@ -1120,11 +802,11 @@ $(pv_value) 1 true Label - 129 + 86 false 31ffe3bf:150a7259bb9:-7d85 - -4 - 189 + 46 + 99 @@ -1134,68 +816,7 @@ $(pv_value) importPackage(Packages.org.yamcs.studio.script); importPackage(Packages.org.yamcs.studio.data); -var counters =VTypeHelper.getString(display.getWidget('Counters').getPropertyValue('pv_value')); - -Yamcs.issueCommand('/CFS/CF/Reset(Value: 1)'); - -]]> - true - - - - false - false - - - - false - - - - 0 - 1 - true - - Default - - false - - - - 13 - - NoOp_1 - 0 - - - - - true - true - false - - - - Reset - false - $(pv_name) -$(pv_value) - true - Action Button - 67 - 31ffe3bf:150a7259bb9:-6cad - 221 - 77 - - - - - scripts/NoOp.js - true @@ -1221,7 +842,7 @@ Yamcs.issueCommand('/CFS/CF/Reset(Value: 2)'); 20 - + ../../Resources/send.png NoOp_2 0 @@ -1240,9 +861,9 @@ Yamcs.issueCommand('/CFS/CF/Reset(Value: 2)'); $(pv_value) true Action Button - 100 + 136 31ffe3bf:150a7259bb9:-6940 - 135 - 294 + 72 + 204 \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/CF/GetMIBParam.opi b/core/base/tools/commander/workspace_template/Displays/Apps/CF/GetMIBParam.opi index b4bf9518b..7caf1392f 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/CF/GetMIBParam.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/CF/GetMIBParam.opi @@ -15,11 +15,11 @@ 6 - 100 + 120 true - + CF - Get MIB Param true @@ -42,7 +42,7 @@ importPackage(Packages.org.yamcs.studio.data); var Parameter =VTypeHelper.getString(display.getWidget('Parameter').getPropertyValue('pv_value')); -Yamcs.issueCommand('/CFS/CF/GetMIBParam(Param: ' + Parameter + ')'); +Yamcs.issueCommand('/cfs/cf/GetMIBParam', {'Param': Parameter}); ]]> true @@ -69,7 +69,7 @@ Yamcs.issueCommand('/CFS/CF/GetMIBParam(Param: ' + Parameter + ')'); 25 - + ../../Resources/send.png Action Button 0 @@ -82,16 +82,16 @@ Yamcs.issueCommand('/CFS/CF/GetMIBParam(Param: ' + Parameter + ')'); - Get Parameter + Send false $(pv_name) $(pv_value) true Action Button - 163 + 80 31ffe3bf:150a7259bb9:-670a - 54 - 60 + 90 + 84 @@ -130,8 +130,8 @@ $(pv_value) 83 false 31ffe3bf:150a7259bb9:-66d5 - 12 - 17 + 6 + 47 @@ -143,7 +143,7 @@ $(pv_value) true - + 1 1 @@ -157,7 +157,7 @@ $(pv_value) 0 - 29 + 20 0 false 1.7976931348623157E308 @@ -187,7 +187,47 @@ $(pv_value) Text Input 135 31ffe3bf:150a7259bb9:-66d4 - 102 + 96 + 47 + + + + false + + + + + + + 0 + 1 + true + + Default Bold + + + + + 20 + 1 + Label_7 + + + true + true + false + + + Get MIB Parameter + + true + 1 + true + Label + 157 + false + 6c5e5e62:1775b7b9abc:-7260 + 51 12 \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/CF/GiveTake.opi b/core/base/tools/commander/workspace_template/Displays/Apps/CF/GiveTake.opi index f0ec532fd..a145b0aa5 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/CF/GiveTake.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/CF/GiveTake.opi @@ -15,11 +15,11 @@ 6 - 100 + 110 true - + CF - Give/Take true @@ -28,14 +28,14 @@ true true Display - 300 + 295 31ffe3bf:150a7259bb9:-673d -1 -1 - ../scripts/RestartApp.js + true @@ -77,7 +79,7 @@ Yamcs.issueCommand('/CFS/CF/GiveTake(Channel: ' + pChannel + ', GiveOrTakeSemaph 25 - + ../../Resources/send.png Action Button 0 @@ -96,10 +98,10 @@ Yamcs.issueCommand('/CFS/CF/GiveTake(Channel: ' + pChannel + ', GiveOrTakeSemaph $(pv_value) true Action Button - 73 + 85 31ffe3bf:150a7259bb9:-670a - 60 - 54 + 48 + 72 @@ -139,7 +141,7 @@ $(pv_value) false 31ffe3bf:150a7259bb9:-6709 18 - 19 + 37 @@ -189,12 +191,12 @@ $(pv_value) 205 -33cb7c72:150aa4c347f:-788f 90 - 18 + 36 - ../scripts/RestartApp.js + true @@ -236,7 +240,7 @@ Yamcs.issueCommand('/CFS/CF/GiveTake(Channel: ' + pChannel + ', GiveOrTakeSemaph 25 - + ../../Resources/send.png Action Button_1 0 @@ -255,9 +259,49 @@ Yamcs.issueCommand('/CFS/CF/GiveTake(Channel: ' + pChannel + ', GiveOrTakeSemaph $(pv_value) true Action Button - 73 + 85 -33cb7c72:150aa4c347f:-77c7 144 - 54 + 72 + + + + false + + + + + + + 0 + 1 + true + + Default Bold + + + + + 20 + 1 + Label_7 + + + true + true + false + + + Give / Take Semaphore + + true + 1 + true + Label + 229 + false + 6c5e5e62:1775b7b9abc:-7267 + 30 + 12 \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/CF/Kickstart.opi b/core/base/tools/commander/workspace_template/Displays/Apps/CF/Kickstart.opi index e1b9817c7..1d89acd72 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/CF/Kickstart.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/CF/Kickstart.opi @@ -15,11 +15,11 @@ 6 - 100 + 110 true - + CF - Kickstart true @@ -35,23 +35,26 @@ - ../scripts/RestartApp.js + true @@ -77,7 +80,7 @@ Yamcs.issueCommand('/CFS/CF/Kickstart(Kickstart: ' + pKickstart + ')'); 25 - + ../../Resources/send.png Action Button 0 @@ -90,16 +93,16 @@ Yamcs.issueCommand('/CFS/CF/Kickstart(Kickstart: ' + pKickstart + ')'); - Kickstart + Send false $(pv_name) $(pv_value) true Action Button - 163 + 80 31ffe3bf:150a7259bb9:-670a - 58 - 54 + 105 + 72 @@ -138,8 +141,8 @@ $(pv_value) 61 false 31ffe3bf:150a7259bb9:-6709 - 12 - 19 + 17 + 37 @@ -188,7 +191,47 @@ $(pv_value) Radio Box 211 -33cb7c72:150aa4c347f:-788f - 84 - 18 + 89 + 36 + + + + false + + + + + + + 0 + 1 + true + + Default Bold + + + + + 20 + 1 + Label_7 + + + true + true + false + + + Kickstart + + true + 1 + true + Label + 113 + false + 6c5e5e62:1775b7b9abc:-728c + 88 + 12 \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/CF/Main.opi b/core/base/tools/commander/workspace_template/Displays/Apps/CF/Main.opi index 9481b2c2b..d8b53a0ce 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/CF/Main.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/CF/Main.opi @@ -19,7 +19,7 @@ true - + CF - Main true diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/CF/PlaybackDirectory.opi b/core/base/tools/commander/workspace_template/Displays/Apps/CF/PlaybackDirectory.opi index 8396de2e5..3f4eb6334 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/CF/PlaybackDirectory.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/CF/PlaybackDirectory.opi @@ -19,7 +19,7 @@ true - + CF - Playback Dir true @@ -28,14 +28,14 @@ true true Display - 400 + 420 31ffe3bf:150a7259bb9:-673d -1 -1 - ../scripts/RestartApp.js + true @@ -97,7 +104,7 @@ Yamcs.issueCommand('/CFS/CF/PlaybackDir(Class: ' + pClass + ', Channel: ' + pCha 25 - + ../../Resources/send.png Action Button 0 @@ -110,16 +117,16 @@ Yamcs.issueCommand('/CFS/CF/PlaybackDir(Class: ' + pClass + ', Channel: ' + pCha - Playback Directory + Send false $(pv_name) $(pv_value) true Action Button - 163 + 80 31ffe3bf:150a7259bb9:-670a - 102 - 228 + 162 + 222 @@ -158,8 +165,8 @@ $(pv_value) 83 false 31ffe3bf:150a7259bb9:-6709 - 12 - 17 + 30 + 37 @@ -198,8 +205,8 @@ $(pv_value) 83 false 31ffe3bf:150a7259bb9:-66f9 - 12 - 45 + 30 + 65 @@ -238,8 +245,8 @@ $(pv_value) 83 false 31ffe3bf:150a7259bb9:-66ee - 12 - 73 + 30 + 93 @@ -278,8 +285,8 @@ $(pv_value) 83 false 31ffe3bf:150a7259bb9:-66e0 - 12 - 101 + 30 + 121 @@ -315,11 +322,11 @@ $(pv_value) 1 true Label - 83 + 101 false 31ffe3bf:150a7259bb9:-66d5 12 - 129 + 144 @@ -345,7 +352,7 @@ $(pv_value) 0 - 29 + 20 0 false 1.7976931348623157E308 @@ -375,8 +382,8 @@ $(pv_value) Text Input 135 31ffe3bf:150a7259bb9:-66d4 - 102 - 124 + 120 + 144 @@ -415,8 +422,8 @@ $(pv_value) 83 false 31ffe3bf:150a7259bb9:-66ca - 12 - 157 + 30 + 163 @@ -442,13 +449,13 @@ $(pv_value) 0 - 29 + 20 0 false 1.7976931348623157E308 -1.7976931348623157E308 false - Counters_5 + Source 0 true loc://Source<VString> @@ -472,8 +479,8 @@ $(pv_value) Text Input 135 31ffe3bf:150a7259bb9:-66c9 - 102 - 152 + 120 + 163 @@ -512,8 +519,8 @@ $(pv_value) 83 false 31ffe3bf:150a7259bb9:-66bf - 12 - 185 + 30 + 182 @@ -539,13 +546,13 @@ $(pv_value) 0 - 29 + 20 0 false 1.7976931348623157E308 -1.7976931348623157E308 false - Counters_6 + Destination 0 true loc://Destination<VString> @@ -569,8 +576,8 @@ $(pv_value) Text Input 135 31ffe3bf:150a7259bb9:-66be - 102 - 180 + 120 + 182 @@ -624,8 +631,8 @@ $(pv_value) Spinner 135 31ffe3bf:150a7259bb9:-669e - 102 - 68 + 120 + 88 @@ -674,8 +681,8 @@ $(pv_value) Radio Box 307 31ffe3bf:150a7259bb9:-6626 - 102 - 16 + 120 + 36 @@ -724,8 +731,8 @@ $(pv_value) Radio Box 307 31ffe3bf:150a7259bb9:-6615 - 102 - 44 + 120 + 64 @@ -774,7 +781,47 @@ $(pv_value) Radio Box 307 31ffe3bf:150a7259bb9:-6604 - 102 - 100 + 120 + 120 + + + + false + + + + + + + 0 + 1 + true + + Default Bold + + + + + 20 + 1 + Label_7 + + + true + true + false + + + Playback Directory + + true + 1 + true + Label + 145 + false + 6c5e5e62:1775b7b9abc:-72c1 + 129 + 12 \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/CF/PlaybackFile.opi b/core/base/tools/commander/workspace_template/Displays/Apps/CF/PlaybackFile.opi index 929c7dc86..f824a3d6a 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/CF/PlaybackFile.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/CF/PlaybackFile.opi @@ -19,7 +19,7 @@ true - + CF - Playback File true @@ -28,14 +28,14 @@ true true Display - 400 + 410 31ffe3bf:150a7259bb9:-673d -1 -1 - ../scripts/RestartApp.js + true @@ -97,7 +103,7 @@ Yamcs.issueCommand('/CFS/CF/PlaybackFile(Class: ' + pClass + ', Channel: ' + pCh 25 - + ../../Resources/send.png Action Button 0 @@ -110,15 +116,15 @@ Yamcs.issueCommand('/CFS/CF/PlaybackFile(Class: ' + pClass + ', Channel: ' + pCh - Playback File + Send false $(pv_name) $(pv_value) true Action Button - 163 + 80 31ffe3bf:150a7259bb9:-670a - 102 + 169 228 @@ -158,8 +164,8 @@ $(pv_value) 83 false 31ffe3bf:150a7259bb9:-6709 - 12 - 17 + 24 + 39 @@ -198,8 +204,8 @@ $(pv_value) 83 false 31ffe3bf:150a7259bb9:-66f9 - 12 - 45 + 24 + 67 @@ -238,8 +244,8 @@ $(pv_value) 83 false 31ffe3bf:150a7259bb9:-66ee - 12 - 73 + 24 + 95 @@ -278,8 +284,8 @@ $(pv_value) 83 false 31ffe3bf:150a7259bb9:-66e0 - 12 - 101 + 24 + 123 @@ -315,11 +321,11 @@ $(pv_value) 1 true Label - 83 + 101 false 31ffe3bf:150a7259bb9:-66d5 - 12 - 129 + 6 + 146 @@ -345,7 +351,7 @@ $(pv_value) 0 - 29 + 20 0 false 1.7976931348623157E308 @@ -375,8 +381,8 @@ $(pv_value) Text Input 135 31ffe3bf:150a7259bb9:-66d4 - 102 - 124 + 114 + 146 @@ -415,8 +421,8 @@ $(pv_value) 83 false 31ffe3bf:150a7259bb9:-66ca - 12 - 157 + 24 + 165 @@ -442,13 +448,13 @@ $(pv_value) 0 - 29 + 20 0 false 1.7976931348623157E308 -1.7976931348623157E308 false - Counters_5 + Source 0 true loc://Source<VString> @@ -472,8 +478,8 @@ $(pv_value) Text Input 135 31ffe3bf:150a7259bb9:-66c9 - 102 - 152 + 114 + 165 @@ -512,8 +518,8 @@ $(pv_value) 83 false 31ffe3bf:150a7259bb9:-66bf - 12 - 185 + 24 + 184 @@ -539,13 +545,13 @@ $(pv_value) 0 - 29 + 20 0 false 1.7976931348623157E308 -1.7976931348623157E308 false - Counters_6 + Destination 0 true loc://Destination<VString> @@ -569,8 +575,8 @@ $(pv_value) Text Input 135 31ffe3bf:150a7259bb9:-66be - 102 - 180 + 114 + 184 @@ -624,8 +630,8 @@ $(pv_value) Spinner 135 31ffe3bf:150a7259bb9:-669e - 102 - 68 + 114 + 90 @@ -674,8 +680,8 @@ $(pv_value) Radio Box 307 31ffe3bf:150a7259bb9:-6626 - 102 - 16 + 114 + 38 @@ -724,8 +730,8 @@ $(pv_value) Radio Box 307 31ffe3bf:150a7259bb9:-6615 - 102 - 44 + 114 + 66 @@ -774,7 +780,47 @@ $(pv_value) Radio Box 307 31ffe3bf:150a7259bb9:-6604 - 102 - 100 + 114 + 122 + + + + false + + + + + + + 0 + 1 + true + + Default Bold + + + + + 20 + 1 + Label_7 + + + true + true + false + + + Playback File + + true + 1 + true + Label + 113 + false + 6c5e5e62:1775b7b9abc:-72ee + 152 + 12 \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/CF/PurgeQueue.opi b/core/base/tools/commander/workspace_template/Displays/Apps/CF/PurgeQueue.opi index 3640e727e..bd27fb31f 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/CF/PurgeQueue.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/CF/PurgeQueue.opi @@ -15,11 +15,11 @@ 6 - 170 + 190 true - + CF - Purge Queue true @@ -28,14 +28,14 @@ true true Display - 310 + 330 31ffe3bf:150a7259bb9:-673d -1 -1 - ../scripts/RestartApp.js + true @@ -95,7 +98,7 @@ Yamcs.issueCommand('/CFS/CF/PurgeQueue(Type: ' + pTransferType + ', Channel: ' + 25 - + ../../Resources/send.png Action Button 0 @@ -108,16 +111,16 @@ Yamcs.issueCommand('/CFS/CF/PurgeQueue(Type: ' + pTransferType + ', Channel: ' + - Purge Queue + Send false $(pv_name) $(pv_value) true Action Button - 163 + 80 31ffe3bf:150a7259bb9:-670a - 90 - 134 + 126 + 156 @@ -156,8 +159,8 @@ $(pv_value) 83 false 31ffe3bf:150a7259bb9:-6709 - -12 - 19 + 12 + 41 @@ -196,8 +199,8 @@ $(pv_value) 83 false 31ffe3bf:150a7259bb9:-66f9 - -12 - 47 + 12 + 69 @@ -236,8 +239,8 @@ $(pv_value) 83 false 31ffe3bf:150a7259bb9:-66e0 - -12 - 75 + 12 + 97 @@ -276,8 +279,8 @@ $(pv_value) 83 false 31ffe3bf:150a7259bb9:-66d5 - -12 - 103 + 12 + 125 @@ -303,7 +306,7 @@ $(pv_value) 0 - 29 + 20 0 false 1.7976931348623157E308 @@ -333,8 +336,8 @@ $(pv_value) Text Input 211 31ffe3bf:150a7259bb9:-66d4 - 78 - 98 + 102 + 125 @@ -383,8 +386,8 @@ $(pv_value) Radio Box 229 31ffe3bf:150a7259bb9:-6626 - 78 - 18 + 102 + 40 @@ -433,8 +436,8 @@ $(pv_value) Radio Box 229 31ffe3bf:150a7259bb9:-6615 - 78 - 46 + 102 + 68 @@ -465,7 +468,7 @@ $(pv_value) History false - Preserve + Queue loc://Queue @@ -484,7 +487,47 @@ $(pv_value) Radio Box 229 31ffe3bf:150a7259bb9:-6604 - 78 - 74 + 102 + 96 + + + + false + + + + + + + 0 + 1 + true + + Default Bold + + + + + 20 + 1 + Label_5 + + + true + true + false + + + Purge Queue + + true + 1 + true + Label + 113 + false + 6c5e5e62:1775b7b9abc:-732c + 109 + 12 \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/CF/QuickStatus.opi b/core/base/tools/commander/workspace_template/Displays/Apps/CF/QuickStatus.opi index 38824483f..e69b630e5 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/CF/QuickStatus.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/CF/QuickStatus.opi @@ -15,11 +15,11 @@ 6 - 100 + 110 true - + CF - Quick Status true @@ -28,7 +28,7 @@ true true Display - 230 + 250 31ffe3bf:150a7259bb9:-6563 -1 -1 @@ -60,17 +60,17 @@ false - Transfer + Transaction true 1 true Label - 53 + 83 false 31ffe3bf:150a7259bb9:-6541 - 8 - 17 + 10 + 42 @@ -96,16 +96,16 @@ 0 - 29 + 20 0 false 1.7976931348623157E308 -1.7976931348623157E308 false - Transfer + Transaction 0 true - loc://Transfer<VString> + loc://Transaction<VString> 0.0 @@ -126,20 +126,20 @@ $(pv_value) Text Input 135 31ffe3bf:150a7259bb9:-6540 - 74 - 12 + 106 + 42 - ../scripts/RestartApp.js + true @@ -166,7 +166,7 @@ Yamcs.issueCommand('/CFS/CF/QuickStatus(Trans: ' + Transfer + ')'); 25 - + ../../Resources/send.png Action Button 0 @@ -179,15 +179,55 @@ Yamcs.issueCommand('/CFS/CF/QuickStatus(Trans: ' + Transfer + ')'); - Quick Status + Send false $(pv_name) $(pv_value) true Action Button - 163 + 80 31ffe3bf:150a7259bb9:-652c - 30 - 60 + 84 + 72 + + + + false + + + + + + + 0 + 1 + true + + Default Bold + + + + + 20 + 1 + Label_1 + + + true + true + false + + + Quick Status + + true + 1 + true + Label + 104 + false + 6c5e5e62:1775b7b9abc:-7348 + 72 + 12 \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/CF/ResetCounters.opi b/core/base/tools/commander/workspace_template/Displays/Apps/CF/ResetCounters.opi index 1230c1c62..af301d1a9 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/CF/ResetCounters.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/CF/ResetCounters.opi @@ -15,11 +15,11 @@ 6 - 100 + 120 true - + CF - Reset Counters true @@ -35,29 +35,14 @@ - ../scripts/RestartApp.js + true @@ -83,7 +68,7 @@ Yamcs.issueCommand(cmd); 25 - + ../../Resources/send.png Action Button 0 @@ -96,16 +81,16 @@ Yamcs.issueCommand(cmd); - Reset Counters + Send false $(pv_name) $(pv_value) true Action Button - 163 + 80 35ebaa52:1509cf6a868:-78ea - 54 - 60 + 96 + 78 @@ -145,7 +130,7 @@ $(pv_value) false 35ebaa52:1509cf6a868:-78e9 18 - 23 + 41 @@ -168,13 +153,13 @@ $(pv_value) - 32 + 30 - All - Command - Fault - Uplink - Downlink + ALL + CMD + DOWN + FAULT + UP false Counters @@ -194,6 +179,46 @@ $(pv_value) 135 35ebaa52:1509cf6a868:-78e7 108 - 18 + 36 + + + + false + + + + + + + 0 + 1 + true + + Default Bold + + + + + 20 + 1 + Label_1 + + + true + true + false + + + Reset Counters + + true + 1 + true + Label + 137 + false + 6c5e5e62:1775b7b9abc:-7bca + 67 + 12 \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/CF/Resume.opi b/core/base/tools/commander/workspace_template/Displays/Apps/CF/Resume.opi index 5369d03ce..c5d3b69ca 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/CF/Resume.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/CF/Resume.opi @@ -8,7 +8,7 @@ false - + 1.5.3 @@ -19,7 +19,7 @@ true - + CF - Resume Transaction true @@ -28,7 +28,7 @@ true true Display - 230 + 250 31ffe3bf:150a7259bb9:-6563 -1 -1 @@ -60,17 +60,17 @@ false - Transfer + Transaction true 1 true Label - 53 + 83 false 31ffe3bf:150a7259bb9:-6541 - 8 - 17 + 12 + 36 @@ -82,7 +82,7 @@ true - + 1 1 @@ -96,16 +96,16 @@ 0 - 29 + 20 0 false 1.7976931348623157E308 -1.7976931348623157E308 false - Transfer + Transaction 0 true - loc://Transfer<VString> + loc://Transaction<VString> 0.0 @@ -126,20 +126,20 @@ $(pv_value) Text Input 135 31ffe3bf:150a7259bb9:-6540 - 74 - 12 + 108 + 36 - ../scripts/RestartApp.js + true @@ -166,7 +166,7 @@ Yamcs.issueCommand('/CFS/CF/Resume(Trans: ' + Transfer + ')'); 25 - + ../../Resources/send.png Action Button 0 @@ -179,15 +179,55 @@ Yamcs.issueCommand('/CFS/CF/Resume(Trans: ' + Transfer + ')'); - Resume Transfer + Send false $(pv_name) $(pv_value) true Action Button - 163 + 80 31ffe3bf:150a7259bb9:-652c - 30 - 60 + 84 + 66 + + + + false + + + + + + + 0 + 1 + true + + Default Bold + + + + + 20 + 2 + Label_1 + + + true + true + false + + + Resume Transaction + + true + 1 + true + Label + 151 + false + 6c5e5e62:1775b7b9abc:-7362 + 48 + 6 \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/CF/SetMIBParam.opi b/core/base/tools/commander/workspace_template/Displays/Apps/CF/SetMIBParam.opi index 2e8f1345e..5c551122d 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/CF/SetMIBParam.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/CF/SetMIBParam.opi @@ -15,11 +15,11 @@ 6 - 130 + 150 true - + CF - Set MIB Param true @@ -35,7 +35,7 @@ - ../scripts/RestartApp.js + true @@ -70,7 +71,7 @@ Yamcs.issueCommand('/CFS/CF/SetMIBParam(Param: ' + Parameter + ', Value: ' + Val 25 - + ../../Resources/send.png Action Button 0 @@ -83,16 +84,16 @@ Yamcs.issueCommand('/CFS/CF/SetMIBParam(Param: ' + Parameter + ', Value: ' + Val - Set Parameter + Send false $(pv_name) $(pv_value) true Action Button - 163 + 80 31ffe3bf:150a7259bb9:-670a - 54 - 90 + 86 + 102 @@ -131,8 +132,8 @@ $(pv_value) 83 false 31ffe3bf:150a7259bb9:-66d5 - 12 - 17 + 18 + 47 @@ -158,7 +159,7 @@ $(pv_value) 0 - 29 + 20 0 false 1.7976931348623157E308 @@ -188,8 +189,8 @@ $(pv_value) Text Input 135 31ffe3bf:150a7259bb9:-66d4 - 102 - 12 + 108 + 47 @@ -228,8 +229,8 @@ $(pv_value) 83 false 31ffe3bf:150a7259bb9:-64c5 - 12 - 45 + 18 + 66 @@ -255,16 +256,16 @@ $(pv_value) 0 - 29 + 20 0 false 1.7976931348623157E308 -1.7976931348623157E308 false - Parameter_1 + Value 0 true - loc://Parameter<VString> + loc://Value<VString> 0.0 @@ -285,7 +286,47 @@ $(pv_value) Text Input 135 31ffe3bf:150a7259bb9:-64c4 - 102 - 40 + 108 + 66 + + + + false + + + + + + + 0 + 1 + true + + Default Bold + + + + + 20 + 2 + Label_2 + + + true + true + false + + + Set MIB Parameter + + true + 1 + true + Label + 131 + false + 6c5e5e62:1775b7b9abc:-7378 + 60 + 12 \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/CF/SetPollParam.opi b/core/base/tools/commander/workspace_template/Displays/Apps/CF/SetPollParam.opi index ef31b9aca..65f57a595 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/CF/SetPollParam.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/CF/SetPollParam.opi @@ -8,18 +8,18 @@ false - + 1.5.3 6 - 290 + 320 true - + CF - Set Poll Params true @@ -28,14 +28,14 @@ true true Display - 400 + 410 31ffe3bf:150a7259bb9:-673d -1 -1 - ../scripts/RestartApp.js + true @@ -98,7 +108,7 @@ Yamcs.issueCommand('/CFS/CF/SetPollParam(Class: ' + pClass + ', Channel: ' + pCh 25 - + ../../Resources/send.png Action Button 0 @@ -111,16 +121,16 @@ Yamcs.issueCommand('/CFS/CF/SetPollParam(Class: ' + pClass + ', Channel: ' + pCh - Set Polling Directory + Send false $(pv_name) $(pv_value) true Action Button - 163 + 80 31ffe3bf:150a7259bb9:-670a - 114 - 254 + 169 + 282 @@ -160,7 +170,7 @@ $(pv_value) false 31ffe3bf:150a7259bb9:-6709 24 - 19 + 45 @@ -200,7 +210,7 @@ $(pv_value) false 31ffe3bf:150a7259bb9:-66f9 24 - 47 + 73 @@ -240,7 +250,7 @@ $(pv_value) false 31ffe3bf:150a7259bb9:-66ee 42 - 75 + 101 @@ -280,7 +290,7 @@ $(pv_value) false 31ffe3bf:150a7259bb9:-66e0 24 - 127 + 153 @@ -316,11 +326,11 @@ $(pv_value) 1 true Label - 83 + 95 false 31ffe3bf:150a7259bb9:-66d5 - 24 - 155 + 12 + 181 @@ -377,7 +387,7 @@ $(pv_value) 135 31ffe3bf:150a7259bb9:-66d4 114 - 150 + 176 @@ -417,7 +427,7 @@ $(pv_value) false 31ffe3bf:150a7259bb9:-66ca 24 - 183 + 209 @@ -449,7 +459,7 @@ $(pv_value) 1.7976931348623157E308 -1.7976931348623157E308 false - Counters_5 + Source 0 true loc://Source<VString> @@ -474,7 +484,7 @@ $(pv_value) 135 31ffe3bf:150a7259bb9:-66c9 114 - 178 + 204 @@ -514,7 +524,7 @@ $(pv_value) false 31ffe3bf:150a7259bb9:-66bf 24 - 211 + 237 @@ -546,7 +556,7 @@ $(pv_value) 1.7976931348623157E308 -1.7976931348623157E308 false - Counters_6 + Destination 0 true loc://Destination<VString> @@ -571,7 +581,7 @@ $(pv_value) 135 31ffe3bf:150a7259bb9:-66be 114 - 206 + 232 @@ -582,7 +592,7 @@ $(pv_value) true - + 1 1 @@ -626,7 +636,7 @@ $(pv_value) 135 31ffe3bf:150a7259bb9:-669e 114 - 70 + 96 @@ -676,7 +686,7 @@ $(pv_value) 307 31ffe3bf:150a7259bb9:-6626 114 - 18 + 44 @@ -726,7 +736,7 @@ $(pv_value) 307 31ffe3bf:150a7259bb9:-6615 114 - 46 + 72 @@ -776,7 +786,7 @@ $(pv_value) 307 31ffe3bf:150a7259bb9:-6604 114 - 126 + 152 @@ -812,11 +822,11 @@ $(pv_value) 1 true Label - 95 + 101 false -33cb7c72:150aa4c347f:-78ea - 12 - 103 + 6 + 129 @@ -827,7 +837,7 @@ $(pv_value) true - + 1 1 @@ -871,6 +881,46 @@ $(pv_value) 135 -33cb7c72:150aa4c347f:-78e9 114 - 98 + 124 + + + + false + + + + + + + 0 + 1 + true + + Default Bold + + + + + 20 + 1 + Label_8 + + + true + true + false + + + Set Polling Parameters + + true + 1 + true + Label + 189 + false + 6c5e5e62:1775b7b9abc:-7388 + 106 + 12 \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/CF/Suspend.opi b/core/base/tools/commander/workspace_template/Displays/Apps/CF/Suspend.opi index 2eb0e15dc..99015f72c 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/CF/Suspend.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/CF/Suspend.opi @@ -8,18 +8,18 @@ false - + 1.5.3 6 - 100 + 110 true - + CF - Suspend true @@ -28,7 +28,7 @@ true true Display - 230 + 250 31ffe3bf:150a7259bb9:-6563 -1 -1 @@ -60,17 +60,17 @@ false - Transfer + Transaction true 1 true Label - 53 + 95 false 31ffe3bf:150a7259bb9:-6541 - 8 - 17 + 6 + 42 @@ -82,7 +82,7 @@ true - + 1 1 @@ -96,16 +96,16 @@ 0 - 29 + 20 0 false 1.7976931348623157E308 -1.7976931348623157E308 false - Transfer + Transaction 0 true - loc://Transfer<VString> + loc://Transaction<VString> 0.0 @@ -124,10 +124,10 @@ $(pv_value) false true Text Input - 135 + 121 31ffe3bf:150a7259bb9:-6540 - 74 - 12 + 114 + 42 @@ -137,9 +137,9 @@ $(pv_value) importPackage(Packages.org.yamcs.studio.script); importPackage(Packages.org.yamcs.studio.data); -var Transfer =VTypeHelper.getString(display.getWidget('Transfer').getPropertyValue('pv_value')); +var Transaction =VTypeHelper.getString(display.getWidget('Transaction').getPropertyValue('pv_value')); -Yamcs.issueCommand('/CFS/CF/Suspend(Trans: ' + Transfer + ')'); +Yamcs.issueCommand('/cfs/cf/Suspend', {'Trans': Transaction}); ]]> true @@ -166,7 +166,7 @@ Yamcs.issueCommand('/CFS/CF/Suspend(Trans: ' + Transfer + ')'); 25 - + ../../Resources/send.png Action Button 0 @@ -179,15 +179,55 @@ Yamcs.issueCommand('/CFS/CF/Suspend(Trans: ' + Transfer + ')'); - Suspend Transfer + Send false $(pv_name) $(pv_value) true Action Button - 163 + 80 31ffe3bf:150a7259bb9:-652c - 30 - 60 + 82 + 72 + + + + false + + + + + + + 0 + 1 + true + + Default Bold + + + + + 20 + 2 + Label_1 + + + true + true + false + + + Suspend Transaction + + true + 1 + true + Label + 147 + false + 6c5e5e62:1775b7b9abc:-739a + 48 + 12 \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/CF/Uplink.opi b/core/base/tools/commander/workspace_template/Displays/Apps/CF/Uplink.opi index f9a13f0a1..b0470f3fe 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/CF/Uplink.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/CF/Uplink.opi @@ -8,18 +8,18 @@ false - + 1.5.3 6 - 260 + 180 true - + CF - Uplink true @@ -32,292 +32,16 @@ 45ea5983:1502a6e6386:-7f06 -1 -1 - - - false - false - false - - - - true - - - - 0 - 1 - true - - Default - - false - - - - 0 - 20 - 0 - Text Update - 0 - false - /cfs/cf/CF_HkPacket_t.CmdCounter - - 0.0 - - - true - true - false - - - true - ###### - $(pv_name) -$(pv_value) - false - 1 - true - Text Update - 100 - false - 45ea5983:1502a6e6386:-7f01 - 120 - 54 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 2 - Label - - - true - true - false - - - Cmd Count - - true - 1 - true - Label - 100 - false - 2b4f25d5:1502b5812fe:-7ff9 - 3 - 54 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 2 - Label_1 - - - true - true - false - - - Err Count - - true - 1 - true - Label - 100 - false - 2b4f25d5:1502b5812fe:-7fef - 3 - 73 - - - - false - - - - - - - 0 - 1 - true - - Default Bold - - - - - 20 - 1 - Label_46 - - - true - true - false - - - Commanding - - true - 1 - true - Label - 164 - false - 2b4f25d5:1502b5812fe:-7d1c - 66 - 35 - - - - false - false - false - - - - true - - - - 0 - 1 - true - - Default - - false - - - - 0 - 20 - 0 - Text Update_1 - 0 - false - /cfs/cf/CF_HkPacket_t.ErrCounter - - 0.0 - - - true - true - false - - - true - ###### - $(pv_name) -$(pv_value) - false - 1 - true - Text Update - 100 - false - 2b4f25d5:1502b5812fe:-7d06 - 120 - 73 - - - - - scripts/NoOp.js - - false - - - - false - false - - - - false - - - - 0 - 1 - true - - Default - - false - - - - 13 - - NoOp - 0 - - - - - true - true - false - - - - NoOp - false - $(pv_name) -$(pv_value) - true - Action Button - 67 - 39deb42:1504a4eb8cc:-7de2 - 242 - 57 - +Yamcs.issueCommand('/cfs/cf/ResetCounters', {'Value': 'UP', 'Spare_0_': 0, 'Spare_1_': 0, 'Spare_2_': 0}); +]]> true @@ -342,7 +66,7 @@ Yamcs.issueCommand('/CFS/CF/Reset(Value: 3)');]]> 21 - + ../../Resources/send.png NoOp_1 0 @@ -361,10 +85,10 @@ Yamcs.issueCommand('/CFS/CF/Reset(Value: 3)');]]> $(pv_value) true Action Button - 107 + 127 -9ddfcbe:1507831914f:-7cfc - 182 - 228 + 99 + 144 @@ -394,57 +118,17 @@ $(pv_value) false - CCSDS File Transfer Application - - true - 1 - true - Label - 295 - false - 763e00b7:150973f1dd8:-7cf4 - 14 - 6 - - - - false - - - - - - - 0 - 1 - true - - Default Bold - - - - - 20 - 1 - Label_108 - - - true - true - false - - Uplink true 1 true Label - 164 + 205 false - 31ffe3bf:150a7259bb9:-7b69 - 66 - 106 + 763e00b7:150973f1dd8:-7cf4 + 60 + 12 @@ -456,9 +140,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -492,11 +176,11 @@ $(pv_value) 1 true Text Update - 100 + 151 false 31ffe3bf:150a7259bb9:-7b35 - 186 - 125 + 150 + 42 @@ -508,9 +192,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -544,11 +228,11 @@ $(pv_value) 1 true Text Update - 100 + 151 false 31ffe3bf:150a7259bb9:-7b34 - 186 - 144 + 150 + 61 @@ -560,9 +244,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -596,11 +280,11 @@ $(pv_value) 1 true Text Update - 100 + 151 false 31ffe3bf:150a7259bb9:-7b33 - 186 - 163 + 150 + 80 @@ -612,9 +296,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -648,11 +332,11 @@ $(pv_value) 1 true Text Update - 100 + 151 false 31ffe3bf:150a7259bb9:-7b32 - 186 - 182 + 150 + 99 @@ -664,9 +348,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -700,11 +384,11 @@ $(pv_value) 1 true Text Update - 100 + 151 false 31ffe3bf:150a7259bb9:-7b31 - 186 - 201 + 150 + 118 @@ -740,11 +424,11 @@ $(pv_value) 1 true Label - 182 + 56 false 31ffe3bf:150a7259bb9:-7b29 - -6 - 125 + 84 + 42 @@ -780,11 +464,11 @@ $(pv_value) 1 true Label - 182 + 74 false 31ffe3bf:150a7259bb9:-7b19 - -6 - 163 + 66 + 80 @@ -820,11 +504,11 @@ $(pv_value) 1 true Label - 182 + 134 false 31ffe3bf:150a7259bb9:-7b14 - -6 - 144 + 6 + 61 @@ -860,11 +544,11 @@ $(pv_value) 1 true Label - 182 + 62 false 31ffe3bf:150a7259bb9:-7b0f - -6 - 182 + 78 + 99 @@ -900,66 +584,10 @@ $(pv_value) 1 true Label - 182 + 128 false 31ffe3bf:150a7259bb9:-7b05 - -6 - 201 - - - - - - - true - - - - false - false - - - - false - - - - 0 - 1 - true - - Default - - false - - - - 13 - - NoOp_2 - 0 - - - - - true - true - false - - - - Reset - false - $(pv_name) -$(pv_value) - true - Action Button - 67 - 31ffe3bf:150a7259bb9:-67f5 - 242 - 76 + 12 + 118 \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/CF/ViewConfig.opi b/core/base/tools/commander/workspace_template/Displays/Apps/CF/ViewConfig.opi index 3e78c96ff..afc219589 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/CF/ViewConfig.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/CF/ViewConfig.opi @@ -8,18 +8,18 @@ false - + 1.5.3 6 - 480 + 510 true - + CF - Config Data true @@ -28,18 +28,18 @@ true true Display - 320 + 410 31ffe3bf:150a7259bb9:-64b2 -1 -1 - ../scripts/RestartApp.js + true @@ -66,7 +66,7 @@ Yamcs.issueCommand('/CFS/CF/SendCfgParam(args: none)'); 25 - + ../../Resources/send.png Action Button 0 @@ -79,16 +79,16 @@ Yamcs.issueCommand('/CFS/CF/SendCfgParam(args: none)'); - Telemeter Config Data + Query false $(pv_name) $(pv_value) true Action Button - 163 + 85 31ffe3bf:150a7259bb9:-6011 - 78 - 12 + 156 + 42 @@ -100,9 +100,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -136,11 +136,11 @@ $(pv_value) 1 true Text Update - 100 + 193 false 31ffe3bf:150a7259bb9:-5fc8 198 - 48 + 78 @@ -152,9 +152,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -188,11 +188,11 @@ $(pv_value) 1 true Text Update - 100 + 193 false 31ffe3bf:150a7259bb9:-5fc7 198 - 67 + 97 @@ -204,9 +204,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -240,11 +240,11 @@ $(pv_value) 1 true Text Update - 100 + 193 false 31ffe3bf:150a7259bb9:-5fc6 198 - 86 + 116 @@ -256,9 +256,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -292,11 +292,11 @@ $(pv_value) 1 true Text Update - 100 + 193 false 31ffe3bf:150a7259bb9:-5fc5 198 - 105 + 135 @@ -308,9 +308,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -344,11 +344,11 @@ $(pv_value) 1 true Text Update - 100 + 193 false 31ffe3bf:150a7259bb9:-5fc4 198 - 124 + 154 @@ -360,9 +360,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -396,11 +396,11 @@ $(pv_value) 1 true Text Update - 100 + 193 false 31ffe3bf:150a7259bb9:-5fc3 198 - 143 + 173 @@ -412,9 +412,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -448,11 +448,11 @@ $(pv_value) 1 true Text Update - 100 + 193 false 31ffe3bf:150a7259bb9:-5fc2 198 - 162 + 192 @@ -464,9 +464,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -500,11 +500,11 @@ $(pv_value) 1 true Text Update - 100 + 193 false 31ffe3bf:150a7259bb9:-5fc1 198 - 181 + 211 @@ -516,9 +516,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -552,11 +552,11 @@ $(pv_value) 1 true Text Update - 100 + 193 false 31ffe3bf:150a7259bb9:-5fc0 198 - 200 + 230 @@ -568,9 +568,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -604,11 +604,11 @@ $(pv_value) 1 true Text Update - 100 + 193 false 31ffe3bf:150a7259bb9:-5fbf 198 - 219 + 249 @@ -620,9 +620,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -656,11 +656,11 @@ $(pv_value) 1 true Text Update - 100 + 193 false 31ffe3bf:150a7259bb9:-5fbe 198 - 238 + 268 @@ -672,9 +672,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -708,11 +708,11 @@ $(pv_value) 1 true Text Update - 100 + 193 false 31ffe3bf:150a7259bb9:-5fbd 198 - 257 + 287 @@ -724,9 +724,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -760,11 +760,11 @@ $(pv_value) 1 true Text Update - 100 + 193 false 31ffe3bf:150a7259bb9:-5fbc 198 - 276 + 306 @@ -776,9 +776,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -812,11 +812,11 @@ $(pv_value) 1 true Text Update - 100 + 193 false 31ffe3bf:150a7259bb9:-5fbb 198 - 295 + 325 @@ -828,9 +828,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -864,11 +864,11 @@ $(pv_value) 1 true Text Update - 100 + 193 false 31ffe3bf:150a7259bb9:-5fba 198 - 314 + 344 @@ -880,9 +880,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -916,11 +916,11 @@ $(pv_value) 1 true Text Update - 100 + 193 false 31ffe3bf:150a7259bb9:-5fb9 198 - 333 + 363 @@ -932,9 +932,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -968,11 +968,11 @@ $(pv_value) 1 true Text Update - 100 + 193 false 31ffe3bf:150a7259bb9:-5fb8 198 - 352 + 382 @@ -984,9 +984,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -1020,11 +1020,11 @@ $(pv_value) 1 true Text Update - 100 + 193 false 31ffe3bf:150a7259bb9:-5fb7 198 - 371 + 401 @@ -1036,9 +1036,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -1072,11 +1072,11 @@ $(pv_value) 1 true Text Update - 100 + 193 false 31ffe3bf:150a7259bb9:-5fb6 198 - 390 + 420 @@ -1088,9 +1088,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -1124,11 +1124,11 @@ $(pv_value) 1 true Text Update - 100 + 193 false 31ffe3bf:150a7259bb9:-5fb5 198 - 409 + 439 @@ -1140,9 +1140,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -1176,11 +1176,11 @@ $(pv_value) 1 true Text Update - 100 + 193 false 31ffe3bf:150a7259bb9:-5fb4 198 - 428 + 458 @@ -1192,9 +1192,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -1228,11 +1228,11 @@ $(pv_value) 1 true Text Update - 100 + 193 false 31ffe3bf:150a7259bb9:-5fb3 198 - 447 + 477 @@ -1268,11 +1268,11 @@ $(pv_value) 1 true Label - 152 + 164 false 31ffe3bf:150a7259bb9:-5fa4 - 42 - 48 + 30 + 78 @@ -1312,7 +1312,7 @@ $(pv_value) false 31ffe3bf:150a7259bb9:-5f9c 42 - 67 + 97 @@ -1352,7 +1352,7 @@ $(pv_value) false 31ffe3bf:150a7259bb9:-5f97 42 - 105 + 135 @@ -1392,7 +1392,7 @@ $(pv_value) false 31ffe3bf:150a7259bb9:-5f92 42 - 86 + 116 @@ -1432,7 +1432,7 @@ $(pv_value) false 31ffe3bf:150a7259bb9:-5f8d 42 - 143 + 173 @@ -1472,7 +1472,7 @@ $(pv_value) false 31ffe3bf:150a7259bb9:-5f88 42 - 181 + 211 @@ -1508,11 +1508,11 @@ $(pv_value) 1 true Label - 158 + 176 false 31ffe3bf:150a7259bb9:-5f83 - 36 - 162 + 18 + 192 @@ -1548,11 +1548,11 @@ $(pv_value) 1 true Label - 152 + 176 false 31ffe3bf:150a7259bb9:-5f7e - 42 - 200 + 18 + 230 @@ -1588,11 +1588,11 @@ $(pv_value) 1 true Label - 152 + 176 false 31ffe3bf:150a7259bb9:-5f79 - 42 - 238 + 18 + 268 @@ -1628,11 +1628,11 @@ $(pv_value) 1 true Label - 164 + 176 false 31ffe3bf:150a7259bb9:-5f74 - 30 - 219 + 18 + 249 @@ -1668,11 +1668,11 @@ $(pv_value) 1 true Label - 152 + 164 false 31ffe3bf:150a7259bb9:-5f6f - 42 - 277 + 30 + 307 @@ -1712,7 +1712,7 @@ $(pv_value) false 31ffe3bf:150a7259bb9:-5f6a 42 - 257 + 287 @@ -1748,11 +1748,11 @@ $(pv_value) 1 true Label - 176 + 188 false 31ffe3bf:150a7259bb9:-5f65 - 18 - 297 + 6 + 327 @@ -1792,7 +1792,7 @@ $(pv_value) false 31ffe3bf:150a7259bb9:-5f60 42 - 314 + 344 @@ -1832,7 +1832,7 @@ $(pv_value) false 31ffe3bf:150a7259bb9:-5f5b 42 - 333 + 363 @@ -1872,7 +1872,7 @@ $(pv_value) false 31ffe3bf:150a7259bb9:-5f56 42 - 352 + 382 @@ -1912,7 +1912,7 @@ $(pv_value) false 31ffe3bf:150a7259bb9:-5f51 42 - 390 + 420 @@ -1952,7 +1952,7 @@ $(pv_value) false 31ffe3bf:150a7259bb9:-5f4c 42 - 371 + 401 @@ -1992,7 +1992,7 @@ $(pv_value) false 31ffe3bf:150a7259bb9:-5f47 42 - 409 + 439 @@ -2032,7 +2032,7 @@ $(pv_value) false 31ffe3bf:150a7259bb9:-5f42 42 - 447 + 477 @@ -2072,7 +2072,7 @@ $(pv_value) false 31ffe3bf:150a7259bb9:-5f3d 42 - 428 + 458 @@ -2112,6 +2112,46 @@ $(pv_value) false 31ffe3bf:150a7259bb9:-5f03 42 - 124 + 154 + + + + false + + + + + + + 0 + 1 + true + + Default Bold + + + + + 20 + 1 + Label_23 + + + true + true + false + + + Config Data + + true + 1 + true + Label + 142 + false + 6c5e5e62:1775b7b9abc:-73d1 + 131 + 12 \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/CF/ViewTransDiag.opi b/core/base/tools/commander/workspace_template/Displays/Apps/CF/ViewTransDiag.opi index 0f75c28f9..8cd723f74 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/CF/ViewTransDiag.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/CF/ViewTransDiag.opi @@ -8,18 +8,18 @@ false - + 1.5.3 6 - 820 + 840 true - + CF - View Transaction true @@ -28,21 +28,21 @@ true true Display - 250 + 265 31ffe3bf:150a7259bb9:-64b0 -1 -1 - ../scripts/RestartApp.js + true @@ -69,7 +69,7 @@ Yamcs.issueCommand('/CFS/CF/SendTransDiagData(Trans: ' + Transfer + ')'); 25 - + ../../Resources/send.png Action Button 0 @@ -82,16 +82,16 @@ Yamcs.issueCommand('/CFS/CF/SendTransDiagData(Trans: ' + Transfer + ')'); - Telemeter Diag Data + Query false $(pv_name) $(pv_value) true Action Button - 163 + 91 31ffe3bf:150a7259bb9:-6429 - 36 - 54 + 97 + 78 @@ -121,7 +121,7 @@ $(pv_value) Text Update 0 false - /CFS/CF/Eng_TransLen + /cfs/cf/CF_TransPacket_t.Eng.TransLen 0.0 @@ -142,8 +142,8 @@ $(pv_value) 100 false 31ffe3bf:150a7259bb9:-63da - 132 - 366 + 150 + 390 @@ -173,7 +173,7 @@ $(pv_value) Text Update_1 0 false - /CFS/CF/Eng_TransVal + /cfs/cf/CF_TransPacket_t.Eng.TransVal 0.0 @@ -194,8 +194,8 @@ $(pv_value) 100 false 31ffe3bf:150a7259bb9:-63d9 - 132 - 385 + 150 + 409 @@ -225,7 +225,7 @@ $(pv_value) Text Update_2 0 false - /CFS/CF/Eng_Naks + /cfs/cf/CF_TransPacket_t.Eng.Naks 0.0 @@ -246,8 +246,8 @@ $(pv_value) 100 false 31ffe3bf:150a7259bb9:-63d8 - 132 - 404 + 150 + 428 @@ -277,7 +277,7 @@ $(pv_value) Text Update_3 0 false - /CFS/CF/Eng_PartLen + /cfs/cf/CF_TransPacket_t.Eng.PartLen 0.0 @@ -298,8 +298,8 @@ $(pv_value) 100 false 31ffe3bf:150a7259bb9:-63d7 - 132 - 423 + 150 + 447 @@ -329,7 +329,7 @@ $(pv_value) Text Update_4 0 false - /CFS/CF/Eng_PartVal + /cfs/cf/CF_TransPacket_t.Eng.PartVal 0.0 @@ -350,8 +350,8 @@ $(pv_value) 100 false 31ffe3bf:150a7259bb9:-63d6 - 132 - 442 + 150 + 466 @@ -381,7 +381,7 @@ $(pv_value) Text Update_5 0 false - /CFS/CF/Eng_Phase + /cfs/cf/CF_TransPacket_t.Eng.Phase 0.0 @@ -402,8 +402,8 @@ $(pv_value) 100 false 31ffe3bf:150a7259bb9:-63d5 - 132 - 461 + 150 + 485 @@ -431,7 +431,7 @@ $(pv_value) 20 Text Update_6 - /CFS/CF/Eng_Flags_Frozen + /cfs/cf/CF_TransPacket_t.Eng.Flags @@ -449,8 +449,8 @@ $(pv_value) Check Box 100 31ffe3bf:150a7259bb9:-63d4 - 132 - 480 + 150 + 504 @@ -480,7 +480,7 @@ $(pv_value) Text Update_7 0 false - /CFS/CF/Eng_TransNum + /cfs/cf/CF_TransPacket_t.Eng.TransNum 0.0 @@ -501,8 +501,8 @@ $(pv_value) 100 false 31ffe3bf:150a7259bb9:-63d3 - 132 - 499 + 150 + 523 @@ -532,7 +532,7 @@ $(pv_value) Text Update_8 0 false - /CFS/CF/Eng_Attempts + /cfs/cf/CF_TransPacket_t.Eng.Attempts 0.0 @@ -553,8 +553,8 @@ $(pv_value) 100 false 31ffe3bf:150a7259bb9:-63d2 - 132 - 518 + 150 + 542 @@ -584,7 +584,7 @@ $(pv_value) Text Update_9 0 false - /CFS/CF/Eng_CondCode + /cfs/cf/CF_TransPacket_t.Eng.CondCode 0.0 @@ -605,8 +605,8 @@ $(pv_value) 100 false 31ffe3bf:150a7259bb9:-63d1 - 132 - 537 + 150 + 561 @@ -636,7 +636,7 @@ $(pv_value) Text Update_10 0 false - /CFS/CF/Eng_DeliCode + /cfs/cf/CF_TransPacket_t.Eng.DeliCode 0.0 @@ -657,8 +657,8 @@ $(pv_value) 100 false 31ffe3bf:150a7259bb9:-63d0 - 132 - 556 + 150 + 580 @@ -688,7 +688,7 @@ $(pv_value) Text Update_11 0 false - /CFS/CF/Eng_FdOffset + /cfs/cf/CF_TransPacket_t.Eng.FdOffset 0.0 @@ -709,8 +709,8 @@ $(pv_value) 100 false 31ffe3bf:150a7259bb9:-63cf - 132 - 575 + 150 + 599 @@ -740,7 +740,7 @@ $(pv_value) Text Update_12 0 false - /CFS/CF/Eng_FdLength + /cfs/cf/CF_TransPacket_t.Eng.FdLength 0.0 @@ -761,8 +761,8 @@ $(pv_value) 100 false 31ffe3bf:150a7259bb9:-63ce - 132 - 594 + 150 + 618 @@ -792,7 +792,7 @@ $(pv_value) Text Update_13 0 false - /CFS/CF/Eng_Checksum + /cfs/cf/CF_TransPacket_t.Eng.Checksum 0.0 @@ -813,8 +813,8 @@ $(pv_value) 100 false 31ffe3bf:150a7259bb9:-63cd - 132 - 613 + 150 + 637 @@ -844,7 +844,7 @@ $(pv_value) Text Update_14 0 false - /CFS/CF/Eng_FinalStat + /cfs/cf/CF_TransPacket_t.Eng.FinalStat 0.0 @@ -865,8 +865,8 @@ $(pv_value) 100 false 31ffe3bf:150a7259bb9:-63cc - 132 - 632 + 150 + 656 @@ -896,7 +896,7 @@ $(pv_value) Text Update_15 0 false - /CFS/CF/Eng_FileSize + /cfs/cf/CF_TransPacket_t.Eng.FileSize 0.0 @@ -917,8 +917,8 @@ $(pv_value) 100 false 31ffe3bf:150a7259bb9:-63cb - 132 - 651 + 150 + 675 @@ -948,7 +948,7 @@ $(pv_value) Text Update_16 0 false - /CFS/CF/Eng_RcvdFileSize + /cfs/cf/CF_TransPacket_t.Eng.RcvdFileSize 0.0 @@ -969,8 +969,8 @@ $(pv_value) 100 false 31ffe3bf:150a7259bb9:-63ca - 132 - 670 + 150 + 694 @@ -1000,7 +1000,7 @@ $(pv_value) Text Update_17 0 false - /CFS/CF/Eng_Role + /cfs/cf/CF_TransPacket_t.Eng.Role 0.0 @@ -1021,8 +1021,8 @@ $(pv_value) 100 false 31ffe3bf:150a7259bb9:-63c9 - 132 - 689 + 150 + 713 @@ -1052,7 +1052,7 @@ $(pv_value) Text Update_18 0 false - /CFS/CF/Eng_State + /cfs/cf/CF_TransPacket_t.Eng.State 0.0 @@ -1073,8 +1073,8 @@ $(pv_value) 100 false 31ffe3bf:150a7259bb9:-63c8 - 132 - 708 + 150 + 732 @@ -1104,7 +1104,7 @@ $(pv_value) Text Update_19 0 false - /CFS/CF/Eng_StartTime + /cfs/cf/CF_TransPacket_t.Eng.StartTime 0.0 @@ -1125,8 +1125,8 @@ $(pv_value) 100 false 31ffe3bf:150a7259bb9:-63c7 - 132 - 727 + 150 + 751 @@ -1156,7 +1156,7 @@ $(pv_value) Text Update_20 0 false - /CFS/CF/Eng_SrcFile + /cfs/cf/CF_TransPacket_t.Eng.SrcFile 0.0 @@ -1177,8 +1177,8 @@ $(pv_value) 100 false 31ffe3bf:150a7259bb9:-63c6 - 132 - 746 + 150 + 770 @@ -1208,7 +1208,7 @@ $(pv_value) Text Update_21 0 false - /CFS/CF/Eng_DstFile + /cfs/cf/CF_TransPacket_t.Eng.DstFile 0.0 @@ -1229,8 +1229,8 @@ $(pv_value) 100 false 31ffe3bf:150a7259bb9:-63c5 - 132 - 765 + 150 + 789 @@ -1260,7 +1260,7 @@ $(pv_value) Text Update_22 0 false - /CFS/CF/Eng_TmpFile + /cfs/cf/CF_TransPacket_t.Eng.TmpFile 0.0 @@ -1281,8 +1281,8 @@ $(pv_value) 100 false 31ffe3bf:150a7259bb9:-63c4 - 132 - 784 + 150 + 808 @@ -1312,7 +1312,7 @@ $(pv_value) Text Update_23 0 false - /CFS/CF/cf_hkpack + /cfs/cf/CF_TransPacket_t.App.Status 0.0 @@ -1333,8 +1333,8 @@ $(pv_value) 100 false 31ffe3bf:150a7259bb9:-63c3 - 132 - 114 + 150 + 138 @@ -1364,7 +1364,7 @@ $(pv_value) Text Update_24 0 false - /CFS/CF/App_CondCode + /cfs/cf/CF_TransPacket_t.App.CondCode 0.0 @@ -1385,8 +1385,8 @@ $(pv_value) 100 false 31ffe3bf:150a7259bb9:-63c2 - 132 - 133 + 150 + 157 @@ -1416,7 +1416,7 @@ $(pv_value) Text Update_25 0 false - /CFS/CF/App_Priority + /cfs/cf/CF_TransPacket_t.App.Priority 0.0 @@ -1437,8 +1437,8 @@ $(pv_value) 100 false 31ffe3bf:150a7259bb9:-63c1 - 132 - 152 + 150 + 176 @@ -1468,7 +1468,7 @@ $(pv_value) Text Update_26 0 false - /CFS/CF/App_Class + /cfs/cf/CF_TransPacket_t.App.Class 0.0 @@ -1489,8 +1489,8 @@ $(pv_value) 100 false 31ffe3bf:150a7259bb9:-63c0 - 132 - 171 + 150 + 195 @@ -1520,7 +1520,7 @@ $(pv_value) Text Update_27 0 false - /CFS/CF/App_ChanNum + /cfs/cf/CF_TransPacket_t.App.ChanNum 0.0 @@ -1541,8 +1541,8 @@ $(pv_value) 100 false 31ffe3bf:150a7259bb9:-63bf - 132 - 190 + 150 + 214 @@ -1572,7 +1572,7 @@ $(pv_value) Text Update_28 0 false - /CFS/CF/App_Source + /cfs/cf/CF_TransPacket_t.App.Source 0.0 @@ -1593,8 +1593,8 @@ $(pv_value) 100 false 31ffe3bf:150a7259bb9:-63be - 132 - 209 + 150 + 233 @@ -1624,7 +1624,7 @@ $(pv_value) Text Update_29 0 false - /CFS/CF/App_NodeType + /cfs/cf/CF_TransPacket_t.App.NodeType 0.0 @@ -1645,8 +1645,8 @@ $(pv_value) 100 false 31ffe3bf:150a7259bb9:-63bd - 132 - 228 + 150 + 252 @@ -1676,7 +1676,7 @@ $(pv_value) Text Update_30 0 false - /CFS/CF/App_TransNum + /cfs/cf/CF_TransPacket_t.App.TransNum 0.0 @@ -1697,8 +1697,8 @@ $(pv_value) 100 false 31ffe3bf:150a7259bb9:-63bc - 132 - 247 + 150 + 271 @@ -1728,7 +1728,7 @@ $(pv_value) Text Update_31 0 false - /CFS/CF/App_SrcEntityId + /cfs/cf/CF_TransPacket_t.App.Source 0.0 @@ -1749,8 +1749,8 @@ $(pv_value) 100 false 31ffe3bf:150a7259bb9:-63bb - 132 - 266 + 150 + 290 @@ -1780,7 +1780,7 @@ $(pv_value) Text Update_32 0 false - /CFS/CF/App_SrcFile + /cfs/cf/CF_TransPacket_t.App.SrcFile 0.0 @@ -1801,8 +1801,8 @@ $(pv_value) 100 false 31ffe3bf:150a7259bb9:-63ba - 132 - 285 + 150 + 309 @@ -1832,7 +1832,7 @@ $(pv_value) Text Update_33 0 false - /CFS/CF/App_DstFile + /cfs/cf/CF_TransPacket_t.App.DstFile 0.0 @@ -1853,8 +1853,8 @@ $(pv_value) 100 false 31ffe3bf:150a7259bb9:-63b9 - 132 - 304 + 150 + 328 @@ -1893,8 +1893,8 @@ $(pv_value) 109 false 31ffe3bf:150a7259bb9:-636f - 18 - 366 + 36 + 390 @@ -1933,8 +1933,8 @@ $(pv_value) 80 false 31ffe3bf:150a7259bb9:-6346 - 90 - 90 + 108 + 114 @@ -1973,8 +1973,8 @@ $(pv_value) 80 false 31ffe3bf:150a7259bb9:-633e - 90 - 342 + 108 + 366 @@ -2013,8 +2013,8 @@ $(pv_value) 109 false 31ffe3bf:150a7259bb9:-6332 - 18 - 385 + 36 + 409 @@ -2053,8 +2053,8 @@ $(pv_value) 109 false 31ffe3bf:150a7259bb9:-632d - 18 - 404 + 36 + 428 @@ -2093,8 +2093,8 @@ $(pv_value) 109 false 31ffe3bf:150a7259bb9:-6328 - 18 - 423 + 36 + 447 @@ -2133,8 +2133,8 @@ $(pv_value) 109 false 31ffe3bf:150a7259bb9:-6323 - 18 - 442 + 36 + 466 @@ -2173,8 +2173,8 @@ $(pv_value) 109 false 31ffe3bf:150a7259bb9:-631e - 18 - 461 + 36 + 485 @@ -2213,8 +2213,8 @@ $(pv_value) 109 false 31ffe3bf:150a7259bb9:-6307 - 18 - 480 + 36 + 504 @@ -2253,8 +2253,8 @@ $(pv_value) 109 false 31ffe3bf:150a7259bb9:-6306 - 18 - 499 + 36 + 523 @@ -2293,8 +2293,8 @@ $(pv_value) 109 false 31ffe3bf:150a7259bb9:-6305 - 18 - 518 + 36 + 542 @@ -2333,8 +2333,8 @@ $(pv_value) 109 false 31ffe3bf:150a7259bb9:-6304 - 18 - 537 + 36 + 561 @@ -2373,8 +2373,8 @@ $(pv_value) 109 false 31ffe3bf:150a7259bb9:-6303 - 18 - 556 + 36 + 580 @@ -2413,8 +2413,8 @@ $(pv_value) 109 false 31ffe3bf:150a7259bb9:-6302 - 18 - 575 + 36 + 599 @@ -2453,8 +2453,8 @@ $(pv_value) 109 false 31ffe3bf:150a7259bb9:-62d9 - 18 - 594 + 36 + 618 @@ -2493,8 +2493,8 @@ $(pv_value) 109 false 31ffe3bf:150a7259bb9:-62d8 - 18 - 613 + 36 + 637 @@ -2533,8 +2533,8 @@ $(pv_value) 109 false 31ffe3bf:150a7259bb9:-62d7 - 18 - 632 + 36 + 656 @@ -2573,8 +2573,8 @@ $(pv_value) 109 false 31ffe3bf:150a7259bb9:-62d6 - 18 - 651 + 36 + 675 @@ -2610,11 +2610,11 @@ $(pv_value) 1 true Label - 109 + 127 false 31ffe3bf:150a7259bb9:-62d5 18 - 670 + 694 @@ -2653,8 +2653,8 @@ $(pv_value) 109 false 31ffe3bf:150a7259bb9:-62d4 - 18 - 689 + 36 + 713 @@ -2693,8 +2693,8 @@ $(pv_value) 109 false 31ffe3bf:150a7259bb9:-62d3 - 18 - 708 + 36 + 732 @@ -2733,8 +2733,8 @@ $(pv_value) 109 false 31ffe3bf:150a7259bb9:-62d2 - 18 - 727 + 36 + 751 @@ -2773,8 +2773,8 @@ $(pv_value) 109 false 31ffe3bf:150a7259bb9:-62d1 - 18 - 746 + 36 + 770 @@ -2813,8 +2813,8 @@ $(pv_value) 109 false 31ffe3bf:150a7259bb9:-62d0 - 18 - 765 + 36 + 789 @@ -2853,8 +2853,8 @@ $(pv_value) 109 false 31ffe3bf:150a7259bb9:-62cf - 18 - 784 + 36 + 808 @@ -2893,8 +2893,8 @@ $(pv_value) 109 false 31ffe3bf:150a7259bb9:-619b - 18 - 114 + 36 + 138 @@ -2933,8 +2933,8 @@ $(pv_value) 109 false 31ffe3bf:150a7259bb9:-6193 - 18 - 133 + 36 + 157 @@ -2973,8 +2973,8 @@ $(pv_value) 109 false 31ffe3bf:150a7259bb9:-6188 - 18 - 152 + 36 + 176 @@ -3013,8 +3013,8 @@ $(pv_value) 109 false 31ffe3bf:150a7259bb9:-6187 - 18 - 171 + 36 + 195 @@ -3053,8 +3053,8 @@ $(pv_value) 109 false 31ffe3bf:150a7259bb9:-6176 - 18 - 190 + 36 + 214 @@ -3093,8 +3093,8 @@ $(pv_value) 109 false 31ffe3bf:150a7259bb9:-6175 - 18 - 209 + 36 + 233 @@ -3133,8 +3133,8 @@ $(pv_value) 109 false 31ffe3bf:150a7259bb9:-6174 - 18 - 228 + 36 + 252 @@ -3173,8 +3173,8 @@ $(pv_value) 109 false 31ffe3bf:150a7259bb9:-613c - 18 - 247 + 36 + 271 @@ -3213,8 +3213,8 @@ $(pv_value) 109 false 31ffe3bf:150a7259bb9:-613b - 18 - 266 + 36 + 290 @@ -3253,8 +3253,8 @@ $(pv_value) 109 false 31ffe3bf:150a7259bb9:-613a - 18 - 285 + 36 + 309 @@ -3293,66 +3293,8 @@ $(pv_value) 109 false 31ffe3bf:150a7259bb9:-6139 - 18 - 304 - - - - false - false - - - - -1 - true - - - - 0 - 1 - 3 - - - - 0 - true - true - - Default - - false - - - - 129 - LED - - - - OFF - - - - ON - - - - - true - true - true - - - false - false - $(pv_name) -$(pv_value) - true - LED - 129 - 31ffe3bf:150a7259bb9:-6112 - 306 - 828 + 36 + 328 @@ -3382,17 +3324,17 @@ $(pv_value) false - Transfer + Transaction true 1 true Label - 53 + 78 false 31ffe3bf:150a7259bb9:-60d3 - 18 - 12 + 17 + 42 @@ -3404,7 +3346,7 @@ $(pv_value) true - + 1 1 @@ -3418,7 +3360,7 @@ $(pv_value) 0 - 29 + 20 0 false 1.7976931348623157E308 @@ -3448,7 +3390,47 @@ $(pv_value) Text Input 135 31ffe3bf:150a7259bb9:-60d2 - 84 + 108 + 42 + + + + false + + + + + + + 0 + 1 + true + + Default Bold + + + + + 20 + 1 + Label_37 + + + true + true + false + + + View Transaction Diag + + true + 1 + true + Label + 188 + false + 6c5e5e62:1775b7b9abc:-73e2 + 36 12 \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/CF/WriteActiveTrans.opi b/core/base/tools/commander/workspace_template/Displays/Apps/CF/WriteActiveTrans.opi index 9c704fe58..2f95241fe 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/CF/WriteActiveTrans.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/CF/WriteActiveTrans.opi @@ -8,18 +8,18 @@ false - + 1.5.3 6 - 150 + 140 true - + CF - Write Active Trans true @@ -28,33 +28,35 @@ true true Display - 300 + 330 31ffe3bf:150a7259bb9:-673d -1 -1 - ../scripts/RestartApp.js + true @@ -80,7 +82,7 @@ Yamcs.issueCommand('/CFS/CF/WriteActiveTrans(Type: ' + pTransferType + ', Destin 25 - + ../../Resources/send.png Action Button 0 @@ -93,15 +95,15 @@ Yamcs.issueCommand('/CFS/CF/WriteActiveTrans(Type: ' + pTransferType + ', Destin - Write Active Transfer + Send false $(pv_name) $(pv_value) true Action Button - 163 + 80 31ffe3bf:150a7259bb9:-670a - 66 + 127 102 @@ -141,8 +143,8 @@ $(pv_value) 41 false 31ffe3bf:150a7259bb9:-6709 - 18 - 19 + 12 + 31 @@ -181,8 +183,8 @@ $(pv_value) 83 false 31ffe3bf:150a7259bb9:-66bf - 24 - 59 + 38 + 66 @@ -194,7 +196,7 @@ $(pv_value) true - + 1 1 @@ -208,7 +210,7 @@ $(pv_value) 0 - 29 + 20 0 false 1.7976931348623157E308 @@ -238,8 +240,8 @@ $(pv_value) Text Input 135 31ffe3bf:150a7259bb9:-66be - 114 - 54 + 134 + 66 @@ -287,9 +289,49 @@ $(pv_value) $(pv_value) true Radio Box - 211 + 259 31ffe3bf:150a7259bb9:-6626 66 - 18 + 30 + + + + false + + + + + + + 0 + 1 + true + + Default Bold + + + + + 20 + 1 + Label_7 + + + true + true + false + + + Write Active Transaction + + true + 1 + true + Label + 201 + false + 6c5e5e62:1775b7b9abc:-73fa + 68 + 6 \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/CF/WriteQueueInfo.opi b/core/base/tools/commander/workspace_template/Displays/Apps/CF/WriteQueueInfo.opi index e77b0056a..2d30ea423 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/CF/WriteQueueInfo.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/CF/WriteQueueInfo.opi @@ -8,14 +8,14 @@ false - + 1.5.3 6 - 170 + 190 true @@ -35,7 +35,7 @@ - ../scripts/RestartApp.js + true @@ -95,7 +101,7 @@ Yamcs.issueCommand('/CFS/CF/WriteQueueInfo(Type: ' + pTransferType + ', Channel: 25 - + ../../Resources/send.png Action Button 0 @@ -108,16 +114,16 @@ Yamcs.issueCommand('/CFS/CF/WriteQueueInfo(Type: ' + pTransferType + ', Channel: - Write Queue Info + Send false $(pv_name) $(pv_value) true Action Button - 163 + 85 31ffe3bf:150a7259bb9:-670a - 90 - 134 + 118 + 156 @@ -156,8 +162,8 @@ $(pv_value) 83 false 31ffe3bf:150a7259bb9:-6709 - -12 - 19 + -6 + 39 @@ -196,8 +202,8 @@ $(pv_value) 83 false 31ffe3bf:150a7259bb9:-66f9 - -12 - 47 + -6 + 67 @@ -236,8 +242,8 @@ $(pv_value) 83 false 31ffe3bf:150a7259bb9:-66e0 - -12 - 75 + -6 + 95 @@ -276,8 +282,8 @@ $(pv_value) 83 false 31ffe3bf:150a7259bb9:-66d5 - -12 - 103 + -6 + 123 @@ -303,7 +309,7 @@ $(pv_value) 0 - 29 + 20 0 false 1.7976931348623157E308 @@ -333,8 +339,8 @@ $(pv_value) Text Input 211 31ffe3bf:150a7259bb9:-66d4 - 78 - 98 + 84 + 123 @@ -383,8 +389,8 @@ $(pv_value) Radio Box 229 31ffe3bf:150a7259bb9:-6626 - 78 - 18 + 84 + 38 @@ -433,8 +439,8 @@ $(pv_value) Radio Box 229 31ffe3bf:150a7259bb9:-6615 - 78 - 46 + 84 + 66 @@ -465,7 +471,7 @@ $(pv_value) History false - Preserve + Queue loc://Queue @@ -484,7 +490,47 @@ $(pv_value) Radio Box 229 31ffe3bf:150a7259bb9:-6604 - 78 - 74 + 84 + 94 + + + + false + + + + + + + 0 + 1 + true + + Default Bold + + + + + 20 + 1 + Label_7 + + + true + true + false + + + Write Queue Information + + true + 1 + true + Label + 201 + false + 6c5e5e62:1775b7b9abc:-6369 + 60 + 12 \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/CF/scripts/Freeze.js b/core/base/tools/commander/workspace_template/Displays/Apps/CF/scripts/Freeze.js deleted file mode 100644 index 2823f17f6..000000000 --- a/core/base/tools/commander/workspace_template/Displays/Apps/CF/scripts/Freeze.js +++ /dev/null @@ -1,4 +0,0 @@ -importPackage(Packages.org.csstudio.opibuilder.scriptUtil); -importPackage(Packages.org.yamcs.studio.script); - -Yamcs.issueCommand('/cfs/cf/Freeze(arg: none)'); \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/CF/scripts/NoOp.js b/core/base/tools/commander/workspace_template/Displays/Apps/CF/scripts/NoOp.js deleted file mode 100644 index 7faa661c6..000000000 --- a/core/base/tools/commander/workspace_template/Displays/Apps/CF/scripts/NoOp.js +++ /dev/null @@ -1,4 +0,0 @@ -importPackage(Packages.org.csstudio.opibuilder.scriptUtil); -importPackage(Packages.org.yamcs.studio.script); - -Yamcs.issueCommand('/cfs/cf/Noop(arg: none)'); \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/CF/scripts/ResetCounters.js b/core/base/tools/commander/workspace_template/Displays/Apps/CF/scripts/ResetCounters.js deleted file mode 100644 index 042854c06..000000000 --- a/core/base/tools/commander/workspace_template/Displays/Apps/CF/scripts/ResetCounters.js +++ /dev/null @@ -1,4 +0,0 @@ -importPackage(Packages.org.csstudio.opibuilder.scriptUtil); -importPackage(Packages.org.yamcs.studio.script); - -Yamcs.issueCommand('/cfs/cf/ResetCounters(arg: none)'); \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/CF/scripts/Thaw.js b/core/base/tools/commander/workspace_template/Displays/Apps/CF/scripts/Thaw.js deleted file mode 100644 index dda6d2c42..000000000 --- a/core/base/tools/commander/workspace_template/Displays/Apps/CF/scripts/Thaw.js +++ /dev/null @@ -1,4 +0,0 @@ -importPackage(Packages.org.csstudio.opibuilder.scriptUtil); -importPackage(Packages.org.yamcs.studio.script); - -Yamcs.issueCommand('/cfs/cf/Thaw(arg: none)'); \ No newline at end of file From 98a5113f56a9f69b2846bc87f62d207f5336323b Mon Sep 17 00:00:00 2001 From: cnalley Date: Mon, 1 Feb 2021 17:28:40 +0000 Subject: [PATCH 012/370] Update CPU ID and name for CPD. --- config/obc/cpd/inc/cfe_platform_cfg.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/config/obc/cpd/inc/cfe_platform_cfg.h b/config/obc/cpd/inc/cfe_platform_cfg.h index aa22ccd6b..957b5cc61 100644 --- a/config/obc/cpd/inc/cfe_platform_cfg.h +++ b/config/obc/cpd/inc/cfe_platform_cfg.h @@ -9,12 +9,12 @@ /* ** CPU Id for target Processor */ -#define CFE_CPU_ID 1 +#define CFE_CPU_ID 2 /* ** CPU Name for target Processor */ -#define CFE_CPU_NAME "CPU1" +#define CFE_CPU_NAME "CPU2" /** ** \cfesbcfg Maximum Number of Unique Message IDs SB Routing Table can hold From 6bf264a4d180ba425473cebe9ea7aaa5c2f5c3a1 Mon Sep 17 00:00:00 2001 From: lorenzo-gomez-windhover Date: Mon, 1 Feb 2021 17:37:55 -0600 Subject: [PATCH 013/370] -Updated Displays -Added the send icon to all send command buttons -Fixed command scripts; made scripts embedded -Needs to be reviewed --- .../Apps/CF/DisablePollingDirectory.opi | 2 +- .../Displays/Apps/CF/Downlink.opi | 8 +- .../Apps/CF/EnablePollingDirectory.opi | 2 +- .../Displays/Apps/CF/GetMIBParam.opi | 2 +- .../Displays/Apps/CF/PlaybackDirectory.opi | 2 +- .../Displays/Apps/CF/PurgeQueue.opi | 2 +- .../Displays/Apps/CF/SetPollParam.opi | 6 +- .../Displays/Apps/CF/WriteQueueInfo.opi | 2 +- .../Displays/Apps/CI/Main.opi | 22 +- .../Displays/Apps/CI/scripts/NoOp.js | 2 +- .../Displays/Apps/CS/DisableApplication.opi | 6 +- .../Displays/Apps/CS/DisableEEPROM.opi | 10 +- .../Displays/Apps/CS/DisableMemory.opi | 10 +- .../Displays/Apps/CS/DisableTable.opi | 10 +- .../Displays/Apps/CS/EnableApplication.opi | 10 +- .../Displays/Apps/CS/EnableEEPROM.opi | 10 +- .../Displays/Apps/CS/EnableMemory.opi | 10 +- .../Displays/Apps/CS/EnableTable.opi | 12 +- .../Displays/Apps/CS/GetEntryIDEEPROM.opi | 6 +- .../Displays/Apps/CS/GetEntryIDMemory.opi | 6 +- .../Displays/Apps/CS/Main.opi | 28 +- .../Displays/Apps/CS/OneShot.opi | 6 +- .../Displays/Apps/CS/RecomputeBaselineApp.opi | 6 +- .../Apps/CS/RecomputeBaselineEEPROM.opi | 8 +- .../Apps/CS/RecomputeBaselineMemory.opi | 361 ++++++++--------- .../Apps/CS/RecomputeBaselineTable.opi | 376 +++++++++--------- .../Displays/Apps/CS/ReportBaselineApp.opi | 376 +++++++++--------- .../Displays/Apps/CS/ReportBaselineEEPROM.opi | 361 ++++++++--------- .../Displays/Apps/CS/ReportBaselineMemory.opi | 361 ++++++++--------- .../Displays/Apps/CS/ReportBaselineTable.opi | 6 +- .../Displays/Apps/DS/AddMid.opi | 67 ++-- .../Displays/Apps/DS/CloseAll.opi | 67 ++-- .../Displays/Apps/DS/CloseFile.opi | 67 ++-- .../Displays/Apps/DS/GetFileInfo.opi | 67 ++-- .../Displays/Apps/DS/Main.opi | 36 +- .../Displays/Apps/DS/SetAppState.opi | 67 ++-- .../Displays/Apps/DS/SetDestAge.opi | 67 ++-- .../Displays/Apps/DS/SetDestBase.opi | 67 ++-- .../Displays/Apps/DS/SetDestCount.opi | 67 ++-- .../Displays/Apps/DS/SetDestExt.opi | 67 ++-- .../Displays/Apps/DS/SetDestPath.opi | 67 ++-- .../Displays/Apps/DS/SetDestSize.opi | 67 ++-- .../Displays/Apps/DS/SetDestState.opi | 67 ++-- .../Displays/Apps/DS/SetDestType.opi | 67 ++-- .../Displays/Apps/DS/SetFilterFile.opi | 67 ++-- .../Displays/Apps/DS/SetFilterParms.opi | 67 ++-- .../Displays/Apps/DS/SetFilterType.opi | 67 ++-- .../Displays/Apps/FM/Main.opi | 22 +- .../Displays/Apps/HK/Main.opi | 22 +- .../Displays/Apps/HS/Main.opi | 90 +++-- .../Displays/Apps/LC/Main.opi | 22 +- .../Displays/Apps/MD/Main.opi | 22 +- .../Displays/Apps/MM/Main.opi | 22 +- .../workspace_template/Displays/Apps/Main.opi | 127 +++--- .../Displays/Apps/SC/Main.opi | 28 +- .../Displays/Apps/SC/scripts/NoOp.js | 2 +- .../Displays/Apps/SC/scripts/ResetCounters.js | 2 +- .../Displays/Apps/SCH/Main.opi | 26 +- .../Displays/Apps/TO/Main.opi | 28 +- .../Displays/Apps/TO/scripts/NoOp.js | 2 +- .../Displays/Apps/TO/scripts/ResetCounters.js | 2 +- .../Displays/Core/EVS/AddFilter.opi | 2 +- .../Displays/Core/EVS/DeleteFilter.opi | 2 +- .../Displays/Core/EVS/DumpAppData.opi | 2 +- .../Displays/Core/EVS/DumpEventLog.opi | 2 +- .../Displays/Core/EVS/EnaDisAppEventType.opi | 4 +- .../Displays/Core/EVS/EnaDisAppEvents.opi | 4 +- .../Displays/Core/EVS/EnaDisEventType.opi | 4 +- .../Displays/Core/EVS/EnaDisPorts.opi | 4 +- .../Displays/Core/EVS/Main.opi | 8 +- .../Displays/Core/EVS/ResetAppCounter.opi | 4 +- .../Displays/Core/EVS/ResetFilter.opi | 12 +- .../Displays/Core/EVS/SetFilter.opi | 6 +- .../Displays/Core/EVS/SetLogMode.opi | 2 +- .../Displays/Core/EVS/SetMessageFormat.opi | 2 +- .../Displays/Core/SB/DumpMapInfo.opi | 2 +- .../Displays/Core/SB/DumpPipeInfo.opi | 2 +- .../Displays/Core/SB/DumpRoutingInfo.opi | 2 +- .../Displays/Core/SB/EnaDisRoutes.opi | 4 +- .../Displays/Core/SB/Main.opi | 4 +- .../Displays/Core/SB/ViewStatistics.opi | 4 +- .../Displays/Core/TBL/AbortTableLoad.opi | 2 +- .../Displays/Core/TBL/ActivateTable.opi | 2 +- .../Displays/Core/TBL/DeleteCDS.opi | 2 +- .../Displays/Core/TBL/DumpRegistry.opi | 2 +- .../Displays/Core/TBL/DumpTable.opi | 2 +- .../Displays/Core/TBL/LoadTable.opi | 2 +- .../Displays/Core/TBL/Main.opi | 4 +- .../Displays/Core/TBL/ValidateTable.opi | 2 +- .../Displays/Core/TBL/ViewRegistry.opi | 2 +- .../Displays/Core/TIME/AbortTableLoad.opi | 2 +- .../Displays/Core/TIME/ActivateTable.opi | 2 +- .../Displays/Core/TIME/DeleteCDS.opi | 2 +- .../Displays/Core/TIME/DumpRegistry.opi | 2 +- .../Displays/Core/TIME/DumpTable.opi | 2 +- .../Displays/Core/TIME/Main.opi | 4 +- .../Displays/Core/TIME/SetAdjust.opi | 2 +- .../Displays/Core/TIME/SetDelay.opi | 2 +- .../Displays/Core/TIME/SetLeaps.opi | 2 +- .../Displays/Core/TIME/SetSignal.opi | 2 +- .../Displays/Core/TIME/SetSource.opi | 2 +- .../Displays/Core/TIME/SetState.opi | 2 +- .../Displays/Core/TIME/SetTime.opi | 2 +- .../Displays/Core/TIME/ViewDiagnostic.opi | 2 +- 104 files changed, 1874 insertions(+), 1806 deletions(-) diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/CF/DisablePollingDirectory.opi b/core/base/tools/commander/workspace_template/Displays/Apps/CF/DisablePollingDirectory.opi index 3ad4c47c6..b1be68764 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/CF/DisablePollingDirectory.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/CF/DisablePollingDirectory.opi @@ -55,7 +55,7 @@ Yamcs.issueCommand('/cfs/cf/DisableDirPolling', { 'Chan': pChannel, 'Dir': Dir, 'Spare_0_': 0, - 'Spare_0_0': 0}); + 'Spare_1_': 0}); ]]> true diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/CF/Downlink.opi b/core/base/tools/commander/workspace_template/Displays/Apps/CF/Downlink.opi index ff7edffbe..ebe5eb4f1 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/CF/Downlink.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/CF/Downlink.opi @@ -462,7 +462,7 @@ $(pv_value) 20 Text Update_54 - /CFS/CF/Chan_0_Flags_Dequeue + /cfs/cf/CF_HkPacket_t.Chan_0_.Flags @@ -509,7 +509,7 @@ $(pv_value) 20 Text Update_55 - /CFS/CF/Chan_0_Flags_Blast + /cfs/cf/CF_HkPacket_t.Chan_1_.Flags @@ -1740,7 +1740,7 @@ $(pv_value) 20 Text Update_68 - /CFS/CF/Chan_0_Flags_Dequeue + /cfs/cf/CF_HkPacket_t.Chan_1_.Flags @@ -1787,7 +1787,7 @@ $(pv_value) 20 Text Update_69 - /CFS/CF/Chan_0_Flags_Blast + /cfs/cf/CF_HkPacket_t.Chan_1_.Flags diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/CF/EnablePollingDirectory.opi b/core/base/tools/commander/workspace_template/Displays/Apps/CF/EnablePollingDirectory.opi index 5c0c644fc..cba993030 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/CF/EnablePollingDirectory.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/CF/EnablePollingDirectory.opi @@ -55,7 +55,7 @@ Yamcs.issueCommand('/cfs/cf/EnableDirPolling', { 'Chan': pChannel, 'Dir': Dir, 'Spare_0_': 0, - 'Spare_0_0': 0}); + 'Spare_1_': 0}); ]]> true diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/CF/GetMIBParam.opi b/core/base/tools/commander/workspace_template/Displays/Apps/CF/GetMIBParam.opi index 7caf1392f..b23f0cba8 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/CF/GetMIBParam.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/CF/GetMIBParam.opi @@ -42,7 +42,7 @@ importPackage(Packages.org.yamcs.studio.data); var Parameter =VTypeHelper.getString(display.getWidget('Parameter').getPropertyValue('pv_value')); -Yamcs.issueCommand('/cfs/cf/GetMIBParam', {'Param': Parameter}); +Yamcs.issueCommand('/cfs/cf/GetMIBParameter', {'Param': Parameter}); ]]> true diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/CF/PlaybackDirectory.opi b/core/base/tools/commander/workspace_template/Displays/Apps/CF/PlaybackDirectory.opi index 3f4eb6334..330ec3a82 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/CF/PlaybackDirectory.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/CF/PlaybackDirectory.opi @@ -73,7 +73,7 @@ if( Preserve == 'Delete' ) { Yamcs.issueCommand('/cfs/cf/PlaybackDirectory', { 'Class': pTransferClass, - 'Channel': pChannel, + 'Chan': pChannel, 'Priority': Priority, 'Preserve': pPreserve, 'PeerEntityId': PeerEntityID, diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/CF/PurgeQueue.opi b/core/base/tools/commander/workspace_template/Displays/Apps/CF/PurgeQueue.opi index bd27fb31f..7953492e8 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/CF/PurgeQueue.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/CF/PurgeQueue.opi @@ -42,7 +42,7 @@ importPackage(Packages.org.yamcs.studio.data); var TransferType =VTypeHelper.getString(display.getWidget('TransferType').getPropertyValue('pv_value')); var Channel =VTypeHelper.getString(display.getWidget('Channel').getPropertyValue('pv_value')); -var Queue =VTypeHelper.getDouble(display.getWidget('Queue').getPropertyValue('pv_value')); +var Queue =VTypeHelper.getString(display.getWidget('Queue').getPropertyValue('pv_value')); var pTransferType = ''; var pChannel = -1; diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/CF/SetPollParam.opi b/core/base/tools/commander/workspace_template/Displays/Apps/CF/SetPollParam.opi index 65f57a595..3946bd909 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/CF/SetPollParam.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/CF/SetPollParam.opi @@ -43,8 +43,8 @@ importPackage(Packages.org.yamcs.studio.data); var TransferClass =VTypeHelper.getString(display.getWidget('TransferClass').getPropertyValue('pv_value')); var Channel =VTypeHelper.getString(display.getWidget('Channel').getPropertyValue('pv_value')); var Priority =VTypeHelper.getDouble(display.getWidget('Priority').getPropertyValue('pv_value')); -var Preserve =VTypeHelper.getDouble(display.getWidget('Preserve').getPropertyValue('pv_value')); -var Dir =VTypeHelper.getString(display.getWidget('Dir').getPropertyValue('pv_value')); +var Preserve =VTypeHelper.getString(display.getWidget('Preserve').getPropertyValue('pv_value')); +var Dir =VTypeHelper.getDouble(display.getWidget('Dir').getPropertyValue('pv_value')); var PeerEntityID =VTypeHelper.getString(display.getWidget('PeerEntityID').getPropertyValue('pv_value')); var Source =VTypeHelper.getString(display.getWidget('Source').getPropertyValue('pv_value')); var Destination =VTypeHelper.getString(display.getWidget('Destination').getPropertyValue('pv_value')); @@ -71,7 +71,7 @@ if( Preserve == 'Delete' ) { pPreserve = 'KEEP'; } -Yamcs.issueCommand('/cfs/cf/EnableDirPolling', { +Yamcs.issueCommand('/cfs/cf/SetPollParameter', { 'Chan': pChannel, 'Dir': Dir, 'Class': pTransferClass, diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/CF/WriteQueueInfo.opi b/core/base/tools/commander/workspace_template/Displays/Apps/CF/WriteQueueInfo.opi index 2d30ea423..7a145f44a 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/CF/WriteQueueInfo.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/CF/WriteQueueInfo.opi @@ -42,7 +42,7 @@ importPackage(Packages.org.yamcs.studio.data); var TransferType =VTypeHelper.getString(display.getWidget('TransferType').getPropertyValue('pv_value')); var Channel =VTypeHelper.getString(display.getWidget('Channel').getPropertyValue('pv_value')); -var Queue =VTypeHelper.getDouble(display.getWidget('Queue').getPropertyValue('pv_value')); +var Queue =VTypeHelper.getString(display.getWidget('Queue').getPropertyValue('pv_value')); var Filename =VTypeHelper.getDouble(display.getWidget('Filename').getPropertyValue('pv_value')); var pTransferType = ''; diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/CI/Main.opi b/core/base/tools/commander/workspace_template/Displays/Apps/CI/Main.opi index 54b0408c4..dfdfb45bc 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/CI/Main.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/CI/Main.opi @@ -8,7 +8,7 @@ false - + 1.5.3 @@ -259,10 +259,12 @@ $(pv_value) - scripts/NoOp.js + - false +importPackage(Packages.org.yamcs.studio.script); + +Yamcs.issueCommand('/cfs/ci/Noop', {});]]> + true @@ -286,7 +288,7 @@ $(pv_value) 18 - + ../../Resources/send.png NoOp 0 @@ -313,10 +315,12 @@ $(pv_value) - scripts/ResetCounters.js + - false +importPackage(Packages.org.yamcs.studio.script); + +Yamcs.issueCommand('/cfs/ci/Reset', {});]]> + true @@ -340,7 +344,7 @@ $(pv_value) 17 - + ../../Resources/send.png NoOp_1 0 diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/CI/scripts/NoOp.js b/core/base/tools/commander/workspace_template/Displays/Apps/CI/scripts/NoOp.js index 74fa66a15..98a044a29 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/CI/scripts/NoOp.js +++ b/core/base/tools/commander/workspace_template/Displays/Apps/CI/scripts/NoOp.js @@ -1,4 +1,4 @@ importPackage(Packages.org.csstudio.opibuilder.scriptUtil); importPackage(Packages.org.yamcs.studio.script); -Yamcs.issueCommand('/cfs/ci/Noop(arg: none)'); \ No newline at end of file +Yamcs.issueCommand('/cfs/ci/Noop', {}); \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/CS/DisableApplication.opi b/core/base/tools/commander/workspace_template/Displays/Apps/CS/DisableApplication.opi index 72c1b6240..279fc9425 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/CS/DisableApplication.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/CS/DisableApplication.opi @@ -8,7 +8,7 @@ false - + 1.5.3 @@ -66,7 +66,7 @@ Yamcs.issueCommand(cmd);]]> 24 - + ../../Resources/send.png Action Button 0 @@ -124,7 +124,7 @@ var cmd = '/CFS/CS/DisableNameApp(Name: ' + Name + ')';]]> 24 - + ../../Resources/send.png Action Button_1 0 diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/CS/DisableEEPROM.opi b/core/base/tools/commander/workspace_template/Displays/Apps/CS/DisableEEPROM.opi index 9073e6f92..9f5e9cc8d 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/CS/DisableEEPROM.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/CS/DisableEEPROM.opi @@ -8,7 +8,7 @@ false - + 1.5.3 @@ -66,7 +66,7 @@ Yamcs.issueCommand(cmd);]]> 24 - + ../../Resources/send.png Action Button 0 @@ -85,7 +85,7 @@ Yamcs.issueCommand(cmd);]]> $(pv_value) true Action Button - 109 + 120 -736e4684:150ac3c95a1:-7e12 36 18 @@ -124,7 +124,7 @@ var cmd = '/CFS/CS/DisableEntryEEPROM(EntryID: ' + EntryID + ')';]]> 24 - + ../../Resources/send.png Action Button_1 0 @@ -143,7 +143,7 @@ var cmd = '/CFS/CS/DisableEntryEEPROM(EntryID: ' + EntryID + ')';]]> true Action Button - 109 + 120 -736e4684:150ac3c95a1:-7e06 36 114 diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/CS/DisableMemory.opi b/core/base/tools/commander/workspace_template/Displays/Apps/CS/DisableMemory.opi index 9a89de65d..e1a59370a 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/CS/DisableMemory.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/CS/DisableMemory.opi @@ -8,7 +8,7 @@ false - + 1.5.3 @@ -66,7 +66,7 @@ Yamcs.issueCommand(cmd);]]> 24 - + ../../Resources/send.png Action Button 0 @@ -85,7 +85,7 @@ Yamcs.issueCommand(cmd);]]> $(pv_value) true Action Button - 109 + 120 -736e4684:150ac3c95a1:-7e12 36 18 @@ -124,7 +124,7 @@ var cmd = '/CFS/CS/DisableEntryMemory(EntryID: ' + EntryID + ')';]]> 24 - + ../../Resources/send.png Action Button_1 0 @@ -143,7 +143,7 @@ var cmd = '/CFS/CS/DisableEntryMemory(EntryID: ' + EntryID + ')';]]> true Action Button - 109 + 120 -736e4684:150ac3c95a1:-7e06 36 114 diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/CS/DisableTable.opi b/core/base/tools/commander/workspace_template/Displays/Apps/CS/DisableTable.opi index e98b97814..104c1e8e1 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/CS/DisableTable.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/CS/DisableTable.opi @@ -8,7 +8,7 @@ false - + 1.5.3 @@ -66,7 +66,7 @@ Yamcs.issueCommand(cmd);]]> 24 - + ../../Resources/send.png Action Button 0 @@ -85,7 +85,7 @@ Yamcs.issueCommand(cmd);]]> $(pv_value) true Action Button - 109 + 120 -736e4684:150ac3c95a1:-7e12 48 18 @@ -124,7 +124,7 @@ var cmd = '/CFS/CS/DisableNameTable(Name: ' + Name + ')';]]> 24 - + ../../Resources/send.png Action Button_1 0 @@ -143,7 +143,7 @@ var cmd = '/CFS/CS/DisableNameTable(Name: ' + Name + ')';]]> $(pv_value) true Action Button - 109 + 120 -736e4684:150ac3c95a1:-7e06 48 114 diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/CS/EnableApplication.opi b/core/base/tools/commander/workspace_template/Displays/Apps/CS/EnableApplication.opi index 59ebbf42f..5a0979772 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/CS/EnableApplication.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/CS/EnableApplication.opi @@ -8,7 +8,7 @@ false - + 1.5.3 @@ -66,7 +66,7 @@ Yamcs.issueCommand(cmd);]]> 24 - + ../../Resources/send.png Action Button 0 @@ -85,7 +85,7 @@ Yamcs.issueCommand(cmd);]]> $(pv_value) true Action Button - 109 + 120 -736e4684:150ac3c95a1:-7e12 48 18 @@ -124,7 +124,7 @@ var cmd = '/CFS/CS/EnableNameApp(Name: ' + Name + ')';]]> 24 - + ../../Resources/send.png Action Button_1 0 @@ -143,7 +143,7 @@ var cmd = '/CFS/CS/EnableNameApp(Name: ' + Name + ')';]]> $(pv_value) true Action Button - 109 + 120 -736e4684:150ac3c95a1:-7e06 48 114 diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/CS/EnableEEPROM.opi b/core/base/tools/commander/workspace_template/Displays/Apps/CS/EnableEEPROM.opi index 8a4b70b30..3671b843a 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/CS/EnableEEPROM.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/CS/EnableEEPROM.opi @@ -8,7 +8,7 @@ false - + 1.5.3 @@ -66,7 +66,7 @@ Yamcs.issueCommand(cmd);]]> 24 - + ../../Resources/send.png Action Button 0 @@ -85,7 +85,7 @@ Yamcs.issueCommand(cmd);]]> $(pv_value) true Action Button - 109 + 120 -736e4684:150ac3c95a1:-7e12 36 18 @@ -124,7 +124,7 @@ var cmd = '/CFS/CS/EnableEntryEEPROM(EntryID: ' + EntryID + ')';]]> 24 - + ../../Resources/send.png Action Button_1 0 @@ -143,7 +143,7 @@ var cmd = '/CFS/CS/EnableEntryEEPROM(EntryID: ' + EntryID + ')';]]> $(pv_value) true Action Button - 109 + 120 -736e4684:150ac3c95a1:-7e06 36 114 diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/CS/EnableMemory.opi b/core/base/tools/commander/workspace_template/Displays/Apps/CS/EnableMemory.opi index db93b5ec4..adc3ef2d8 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/CS/EnableMemory.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/CS/EnableMemory.opi @@ -8,7 +8,7 @@ false - + 1.5.3 @@ -66,7 +66,7 @@ Yamcs.issueCommand(cmd);]]> 24 - + ../../Resources/send.png Action Button 0 @@ -85,7 +85,7 @@ Yamcs.issueCommand(cmd);]]> $(pv_value) true Action Button - 109 + 120 -736e4684:150ac3c95a1:-7e12 36 18 @@ -124,7 +124,7 @@ var cmd = '/CFS/CS/EnableEntryMemory(EntryID: ' + EntryID + ')';]]> 24 - + ../../Resources/send.png Action Button_1 0 @@ -143,7 +143,7 @@ var cmd = '/CFS/CS/EnableEntryMemory(EntryID: ' + EntryID + ')';]]> $(pv_value) true Action Button - 109 + 120 -736e4684:150ac3c95a1:-7e06 36 114 diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/CS/EnableTable.opi b/core/base/tools/commander/workspace_template/Displays/Apps/CS/EnableTable.opi index 99e62e098..684f3a596 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/CS/EnableTable.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/CS/EnableTable.opi @@ -8,7 +8,7 @@ false - + 1.5.3 @@ -66,7 +66,7 @@ Yamcs.issueCommand(cmd);]]> 24 - + ../../Resources/send.png Action Button 0 @@ -79,13 +79,13 @@ Yamcs.issueCommand(cmd);]]> - Enable All + Enable Table false $(pv_name) $(pv_value) true Action Button - 109 + 120 -736e4684:150ac3c95a1:-7e12 48 18 @@ -124,7 +124,7 @@ var cmd = '/CFS/CS/EnableNameTable(Name: ' + Name + ')';]]> 24 - + ../../Resources/send.png Action Button_1 0 @@ -143,7 +143,7 @@ var cmd = '/CFS/CS/EnableNameTable(Name: ' + Name + ')';]]> $(pv_value) true Action Button - 109 + 120 -736e4684:150ac3c95a1:-7e06 48 114 diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/CS/GetEntryIDEEPROM.opi b/core/base/tools/commander/workspace_template/Displays/Apps/CS/GetEntryIDEEPROM.opi index 594d8824d..256009f33 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/CS/GetEntryIDEEPROM.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/CS/GetEntryIDEEPROM.opi @@ -8,7 +8,7 @@ false - + 1.5.3 @@ -69,7 +69,7 @@ Yamcs.issueCommand(cmd);]]> 24 - + ../../Resources/send.png Action Button 0 @@ -88,7 +88,7 @@ Yamcs.issueCommand(cmd);]]> $(pv_value) true Action Button - 109 + 120 -736e4684:150ac3c95a1:-7e80 48 48 diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/CS/GetEntryIDMemory.opi b/core/base/tools/commander/workspace_template/Displays/Apps/CS/GetEntryIDMemory.opi index 8aa58b3b0..902c38330 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/CS/GetEntryIDMemory.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/CS/GetEntryIDMemory.opi @@ -8,7 +8,7 @@ false - + 1.5.3 @@ -69,7 +69,7 @@ Yamcs.issueCommand(cmd);]]> 24 - + ../../Resources/send.png Action Button 0 @@ -88,7 +88,7 @@ Yamcs.issueCommand(cmd);]]> $(pv_value) true Action Button - 109 + 120 -736e4684:150ac3c95a1:-7e80 48 48 diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/CS/Main.opi b/core/base/tools/commander/workspace_template/Displays/Apps/CS/Main.opi index 2b847452a..f068f6a1f 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/CS/Main.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/CS/Main.opi @@ -8,7 +8,7 @@ false - + 1.5.3 @@ -286,7 +286,7 @@ $(pv_value) 13 - + ../../Resources/send.png NoOp 0 @@ -340,7 +340,7 @@ $(pv_value) 13 - + ../../Resources/send.png NoOp_1 0 @@ -2619,7 +2619,7 @@ $(pv_value) 22 - + ../../Resources/send.png NoOp_3 0 @@ -2783,7 +2783,7 @@ $(pv_value) 20 - + ../../Resources/send.png NoOp_6 0 @@ -2837,7 +2837,7 @@ $(pv_value) 20 - + ../../Resources/send.png NoOp_7 0 @@ -3331,7 +3331,7 @@ $(pv_value) 20 - + ../../Resources/send.png NoOp_16 0 @@ -3385,7 +3385,7 @@ $(pv_value) 20 - + ../../Resources/send.png NoOp_17 0 @@ -3439,7 +3439,7 @@ $(pv_value) 20 - + ../../Resources/send.png NoOp_18 0 @@ -3493,7 +3493,7 @@ $(pv_value) 20 - + ../../Resources/send.png NoOp_19 0 @@ -3877,7 +3877,7 @@ $(pv_value) 20 - + ../../Resources/send.png NoOp_26 0 @@ -3931,7 +3931,7 @@ $(pv_value) 20 - + ../../Resources/send.png NoOp_27 0 @@ -3985,7 +3985,7 @@ $(pv_value) 20 - + ../../Resources/send.png NoOp_28 0 @@ -4039,7 +4039,7 @@ $(pv_value) 20 - + ../../Resources/send.png NoOp_29 0 diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/CS/OneShot.opi b/core/base/tools/commander/workspace_template/Displays/Apps/CS/OneShot.opi index cabbfb5a8..f606de270 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/CS/OneShot.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/CS/OneShot.opi @@ -8,7 +8,7 @@ false - + 1.5.3 @@ -70,7 +70,7 @@ Yamcs.issueCommand(cmd);]]> 24 - + ../../Resources/send.png Action Button 0 @@ -89,7 +89,7 @@ Yamcs.issueCommand(cmd);]]> $(pv_value) true Action Button - 109 + 125 72a2bf2b:1508717c835:-7cf7 42 72 diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/CS/RecomputeBaselineApp.opi b/core/base/tools/commander/workspace_template/Displays/Apps/CS/RecomputeBaselineApp.opi index 10390403b..d189c2f71 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/CS/RecomputeBaselineApp.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/CS/RecomputeBaselineApp.opi @@ -8,7 +8,7 @@ false - + 1.5.3 @@ -66,7 +66,7 @@ var cmd = '/CFS/CS/RecomputeBaselineApp(Name: ' + Name + ')';]]> 24 - + ../../Resources/send.png Action Button_1 0 @@ -85,7 +85,7 @@ var cmd = '/CFS/CS/RecomputeBaselineApp(Name: ' + Name + ')';]]> $(pv_value) true Action Button - 145 + 160 -736e4684:150ac3c95a1:-7e06 30 48 diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/CS/RecomputeBaselineEEPROM.opi b/core/base/tools/commander/workspace_template/Displays/Apps/CS/RecomputeBaselineEEPROM.opi index c13584bb4..c3814a127 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/CS/RecomputeBaselineEEPROM.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/CS/RecomputeBaselineEEPROM.opi @@ -8,7 +8,7 @@ false - + 1.5.3 @@ -28,7 +28,7 @@ true true Display - 180 + 186 -736e4684:150ac3c95a1:-7e23 -1 -1 @@ -66,7 +66,7 @@ var cmd = '/CFS/CS/RecomputeBaselineEEPROM(EntryID: ' + EntryID + ')';]]> 24 - + ../../Resources/send.png Action Button_1 0 @@ -85,7 +85,7 @@ var cmd = '/CFS/CS/RecomputeBaselineEEPROM(EntryID: ' + EntryID + ')';]]> true Action Button - 136 + 160 -736e4684:150ac3c95a1:-7e06 24 54 diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/CS/RecomputeBaselineMemory.opi b/core/base/tools/commander/workspace_template/Displays/Apps/CS/RecomputeBaselineMemory.opi index a26c08a23..7e373c304 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/CS/RecomputeBaselineMemory.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/CS/RecomputeBaselineMemory.opi @@ -1,187 +1,188 @@ - - true - - -736e4684:150ac3c95a1:-7e23 - true - false - - 90 - - true - - 4.0.104.201510200439 - true - Display - - false - -1 - -1 - - - - - 180 - -1 - - 6 - true - -1 - true - - - - - - false - 0 - false - false - $(pv_name) -$(pv_value) - 0 - - true - -736e4684:150ac3c95a1:-7e06 - - Recompute Baseline - - false - 24 - 1 - - true - true - false - - - true - - - - - Action Button - false - - - - 136 - 24 - Action Button_1 - 54 - - - - - - - ../scripts/QueryOneApp.js + + + + false + -1 + -1 + + false + + + + 1.5.3 + + + + 6 + 90 + + true + + + + + true + true + true + true + true + Display + 184 + -736e4684:150ac3c95a1:-7e23 + -1 + -1 + + + + ../scripts/QueryOneApp.js - true - - - - - Default - - - - 0 - - 2 - - true - -736e4684:150ac3c95a1:-7de8 - true - false - Entry ID - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 50 - 12 - Label_3 - 18 - - - - - - Default - - - - 3 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - -736e4684:150ac3c95a1:-7de7 - false - - - false - false - 19 - 1 - - true - true - false - - true - loc://EntryID<VDouble> - 1 - 0 - false - - - - false - Spinner - 1.0 - false - false - - - - 10.0 - 100 - 72 - EntryID - 18 - 1.7976931348623157E308 - - - - - -1.7976931348623157E308 - - Default - - +var cmd = '/CFS/CS/RecomputeBaselineMemory(EntryID: ' + EntryID + ')';]]> + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 24 + ../../Resources/send.png + Action Button_1 + 0 + + + + + true + true + false + + + + Recompute Baseline + false + $(pv_name) +$(pv_value) + true + Action Button + 160 + -736e4684:150ac3c95a1:-7e06 + 12 + 54 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_3 + + + true + true + false + + + Entry ID + + true + 1 + true + Label + 52 + false + -736e4684:150ac3c95a1:-7de8 + 12 + 18 + + + + false + false + + + + false + + + + 3 + 1 + false + true + + Default + + false + + + + 0 + 19 + 0 + false + false + 1.7976931348623157E308 + -1.7976931348623157E308 + EntryID + 10.0 + 0 + false + loc://EntryID<VDouble> + + + + true + true + false + + + true + 1.0 + $(pv_name) +$(pv_value) + false + 1 + true + Spinner + 100 + -736e4684:150ac3c95a1:-7de7 + 72 + 18 + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/CS/RecomputeBaselineTable.opi b/core/base/tools/commander/workspace_template/Displays/Apps/CS/RecomputeBaselineTable.opi index e448f6bda..89d354bab 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/CS/RecomputeBaselineTable.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/CS/RecomputeBaselineTable.opi @@ -1,195 +1,195 @@ - - true - - -736e4684:150ac3c95a1:-7e23 - true - false - - 80 - - true - - 4.0.104.201510200439 - true - Display - - false - -1 - -1 - - - - - 200 - -1 - - 6 - true - -1 - true - - - - - - false - 0 - false - false - $(pv_name) -$(pv_value) - 0 - - true - -736e4684:150ac3c95a1:-7e06 - - Recompute Baseline - - false - 24 - 1 - - true - true - false - - - true - - - - - Action Button - false - - - - 145 - 30 - Action Button_1 - 48 - - - - - - - ../scripts/QueryOneApp.js + + + + false + -1 + -1 + + false + + + + 1.5.3 + + + + 6 + 80 + + true + + + + + true + true + true + true + true + Display + 200 + -736e4684:150ac3c95a1:-7e23 + -1 + -1 + + + + ../scripts/QueryOneApp.js - true - - - - - Default - - - - 0 - - 2 - - true - -736e4684:150ac3c95a1:-76ae - true - false - Name - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 50 - 12 - Label_3 - 17 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - true - -736e4684:150ac3c95a1:-76ad - - - true - 29 - 1 - - true - false - false - - false - true - loc://Name - - - - Combo - false - - - - 115 - 72 - Name - 12 - - - - - - CF - CI - CS - DS - EIM - HS - FM - HK - LC - MM - SCH - TO - SBN - CFE_ES - CFE_EVS - CFE_SB - CFE_TBL - CFE_TIME - - - Default - - +var cmd = '/CFS/CS/RecomputeBaselineTable(Name: ' + Name + ')';]]> + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 24 + ../../Resources/send.png + Action Button_1 + 0 + + + + + true + true + false + + + + Recompute Baseline + false + $(pv_name) +$(pv_value) + true + Action Button + 160 + -736e4684:150ac3c95a1:-7e06 + 30 + 48 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_3 + + + true + true + false + + + Name + + true + 1 + true + Label + 50 + false + -736e4684:150ac3c95a1:-76ae + 12 + 17 + + + + false + false + + + + true + + + + 0 + 1 + true + + Default + + false + + + + 34 + + CF + CI + CS + DS + EIM + HS + FM + HK + LC + MM + SCH + TO + SBN + CFE_ES + CFE_EVS + CFE_SB + CFE_TBL + CFE_TIME + + false + Name + loc://Name + + + + true + false + false + + + $(pv_name) +$(pv_value) + true + Combo + 115 + -736e4684:150ac3c95a1:-76ad + 72 + 12 + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/CS/ReportBaselineApp.opi b/core/base/tools/commander/workspace_template/Displays/Apps/CS/ReportBaselineApp.opi index f8a62a2e3..c77ed03c0 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/CS/ReportBaselineApp.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/CS/ReportBaselineApp.opi @@ -1,195 +1,195 @@ - - true - - -736e4684:150ac3c95a1:-7e23 - true - false - - 80 - - true - - 4.0.104.201510200439 - true - Display - - false - -1 - -1 - - - - - 200 - -1 - - 6 - true - -1 - true - - - - - - false - 0 - false - false - $(pv_name) -$(pv_value) - 0 - - true - -736e4684:150ac3c95a1:-7e06 - - Report Baseline - - false - 24 - 1 - - true - true - false - - - true - - - - - Action Button - false - - - - 121 - 42 - Action Button_1 - 48 - - - - - - - ../scripts/QueryOneApp.js + + + + false + -1 + -1 + + false + + + + 1.5.3 + + + + 6 + 80 + + true + + + + + true + true + true + true + true + Display + 200 + -736e4684:150ac3c95a1:-7e23 + -1 + -1 + + + + ../scripts/QueryOneApp.js - true - - - - - Default - - - - 0 - - 2 - - true - -736e4684:150ac3c95a1:-76ae - true - false - Name - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 50 - 12 - Label_3 - 17 - - - - - - Default - - - - 0 - false - false - $(pv_name) -$(pv_value) - - true - -736e4684:150ac3c95a1:-76ad - - - true - 29 - 1 - - true - false - false - - false - true - loc://Name - - - - Combo - false - - - - 115 - 72 - Name - 12 - - - - - - CF - CI - CS - DS - EIM - HS - FM - HK - LC - MM - SCH - TO - SBN - CFE_ES - CFE_EVS - CFE_SB - CFE_TBL - CFE_TIME - - - Default - - +var cmd = '/CFS/CS/ReportBaselineApp(Name: ' + Name + ')';]]> + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 24 + ../../Resources/send.png + Action Button_1 + 0 + + + + + true + true + false + + + + Report Baseline + false + $(pv_name) +$(pv_value) + true + Action Button + 130 + -736e4684:150ac3c95a1:-7e06 + 42 + 48 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_3 + + + true + true + false + + + Name + + true + 1 + true + Label + 50 + false + -736e4684:150ac3c95a1:-76ae + 12 + 17 + + + + false + false + + + + true + + + + 0 + 1 + true + + Default + + false + + + + 34 + + CF + CI + CS + DS + EIM + HS + FM + HK + LC + MM + SCH + TO + SBN + CFE_ES + CFE_EVS + CFE_SB + CFE_TBL + CFE_TIME + + false + Name + loc://Name + + + + true + false + false + + + $(pv_name) +$(pv_value) + true + Combo + 115 + -736e4684:150ac3c95a1:-76ad + 72 + 12 + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/CS/ReportBaselineEEPROM.opi b/core/base/tools/commander/workspace_template/Displays/Apps/CS/ReportBaselineEEPROM.opi index af4c8e84c..8d481c55d 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/CS/ReportBaselineEEPROM.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/CS/ReportBaselineEEPROM.opi @@ -1,187 +1,188 @@ - - true - - -736e4684:150ac3c95a1:-7e23 - true - false - - 90 - - true - - 4.0.104.201510200439 - true - Display - - false - -1 - -1 - - - - - 180 - -1 - - 6 - true - -1 - true - - - - - - false - 0 - false - false - $(pv_name) -$(pv_value) - 0 - - true - -736e4684:150ac3c95a1:-7e06 - - Report Baseline - - false - 24 - 1 - - true - true - false - - - true - - - - - Action Button - false - - - - 109 - 36 - Action Button_1 - 54 - - - - - - - ../scripts/QueryOneApp.js + + + + false + -1 + -1 + + false + + + + 1.5.3 + + + + 6 + 90 + + true + + + + + true + true + true + true + true + Display + 180 + -736e4684:150ac3c95a1:-7e23 + -1 + -1 + + + + ../scripts/QueryOneApp.js - true - - - - - Default - - - - 0 - - 2 - - true - -736e4684:150ac3c95a1:-7de8 - true - false - Entry ID - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 50 - 12 - Label_3 - 18 - - - - - - Default - - - - 3 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - -736e4684:150ac3c95a1:-7de7 - false - - - false - false - 19 - 1 - - true - true - false - - true - loc://EntryID<VDouble> - 1 - 0 - false - - - - false - Spinner - 1.0 - false - false - - - - 10.0 - 100 - 72 - EntryID - 18 - 1.7976931348623157E308 - - - - - -1.7976931348623157E308 - - Default - - +var cmd = '/CFS/CS/ReportBaselineEEPROM(EntryID: ' + EntryID + ')';]]> + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 24 + ../../Resources/send.png + Action Button_1 + 0 + + + + + true + true + false + + + + Report Baseline + false + $(pv_name) +$(pv_value) + true + Action Button + 130 + -736e4684:150ac3c95a1:-7e06 + 36 + 54 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_3 + + + true + true + false + + + Entry ID + + true + 1 + true + Label + 52 + false + -736e4684:150ac3c95a1:-7de8 + 12 + 18 + + + + false + false + + + + false + + + + 3 + 1 + false + true + + Default + + false + + + + 0 + 19 + 0 + false + false + 1.7976931348623157E308 + -1.7976931348623157E308 + EntryID + 10.0 + 0 + false + loc://EntryID<VDouble> + + + + true + true + false + + + true + 1.0 + $(pv_name) +$(pv_value) + false + 1 + true + Spinner + 100 + -736e4684:150ac3c95a1:-7de7 + 72 + 18 + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/CS/ReportBaselineMemory.opi b/core/base/tools/commander/workspace_template/Displays/Apps/CS/ReportBaselineMemory.opi index e928fb564..b13927cd8 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/CS/ReportBaselineMemory.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/CS/ReportBaselineMemory.opi @@ -1,187 +1,188 @@ - - true - - -736e4684:150ac3c95a1:-7e23 - true - false - - 90 - - true - - 4.0.104.201510200439 - true - Display - - false - -1 - -1 - - - - - 180 - -1 - - 6 - true - -1 - true - - - - - - false - 0 - false - false - $(pv_name) -$(pv_value) - 0 - - true - -736e4684:150ac3c95a1:-7e06 - - Report Baseline - - false - 24 - 1 - - true - true - false - - - true - - - - - Action Button - false - - - - 109 - 36 - Action Button_1 - 54 - - - - - - - ../scripts/QueryOneApp.js + + + + false + -1 + -1 + + false + + + + 1.5.3 + + + + 6 + 90 + + true + + + + + true + true + true + true + true + Display + 180 + -736e4684:150ac3c95a1:-7e23 + -1 + -1 + + + + ../scripts/QueryOneApp.js - true - - - - - Default - - - - 0 - - 2 - - true - -736e4684:150ac3c95a1:-7de8 - true - false - Entry ID - - 20 - 1 - - true - true - false - - true - 1 - - - - Label - false - - - - 50 - 12 - Label_3 - 18 - - - - - - Default - - - - 3 - false - false - 0 - $(pv_name) -$(pv_value) - 0 - - true - -736e4684:150ac3c95a1:-7de7 - false - - - false - false - 19 - 1 - - true - true - false - - true - loc://EntryID<VDouble> - 1 - 0 - false - - - - false - Spinner - 1.0 - false - false - - - - 10.0 - 100 - 72 - EntryID - 18 - 1.7976931348623157E308 - - - - - -1.7976931348623157E308 - - Default - - +var cmd = '/CFS/CS/ReportBaselineMemory(EntryID: ' + EntryID + ')';]]> + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 24 + ../../Resources/send.png + Action Button_1 + 0 + + + + + true + true + false + + + + Report Baseline + false + $(pv_name) +$(pv_value) + true + Action Button + 130 + -736e4684:150ac3c95a1:-7e06 + 36 + 54 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_3 + + + true + true + false + + + Entry ID + + true + 1 + true + Label + 52 + false + -736e4684:150ac3c95a1:-7de8 + 12 + 18 + + + + false + false + + + + false + + + + 3 + 1 + false + true + + Default + + false + + + + 0 + 19 + 0 + false + false + 1.7976931348623157E308 + -1.7976931348623157E308 + EntryID + 10.0 + 0 + false + loc://EntryID<VDouble> + + + + true + true + false + + + true + 1.0 + $(pv_name) +$(pv_value) + false + 1 + true + Spinner + 100 + -736e4684:150ac3c95a1:-7de7 + 72 + 18 + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/CS/ReportBaselineTable.opi b/core/base/tools/commander/workspace_template/Displays/Apps/CS/ReportBaselineTable.opi index 67539a823..582fec928 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/CS/ReportBaselineTable.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/CS/ReportBaselineTable.opi @@ -8,7 +8,7 @@ false - + 1.5.3 @@ -66,7 +66,7 @@ var cmd = '/CFS/CS/ReportBaselineTable(Name: ' + Name + ')';]]> 24 - + ../../Resources/send.png Action Button_1 0 @@ -85,7 +85,7 @@ var cmd = '/CFS/CS/ReportBaselineTable(Name: ' + Name + ')';]]> $(pv_value) true Action Button - 121 + 130 -736e4684:150ac3c95a1:-7e06 42 48 diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/DS/AddMid.opi b/core/base/tools/commander/workspace_template/Displays/Apps/DS/AddMid.opi index d519b8aa0..8f64277af 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/DS/AddMid.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/DS/AddMid.opi @@ -1,34 +1,35 @@ - - true - - -736e4684:150ac3c95a1:-720f - true - false - - 600 - - true - - 4.0.104.201510200439 - true - Display - - false - -1 - -1 - - - - - 800 - -1 - - 6 - true - -1 - true - - - - + + + + + false + -1 + -1 + + false + + + + 1.5.3 + + + + 6 + 600 + + true + + + + + true + true + true + true + true + Display + 800 + -736e4684:150ac3c95a1:-720f + -1 + -1 \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/DS/CloseAll.opi b/core/base/tools/commander/workspace_template/Displays/Apps/DS/CloseAll.opi index d8bc09712..d3535156a 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/DS/CloseAll.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/DS/CloseAll.opi @@ -1,34 +1,35 @@ - - true - - -736e4684:150ac3c95a1:-720b - true - false - - 600 - - true - - 4.0.104.201510200439 - true - Display - - false - -1 - -1 - - - - - 800 - -1 - - 6 - true - -1 - true - - - - + + + + + false + -1 + -1 + + false + + + + 1.5.3 + + + + 6 + 600 + + true + + + + + true + true + true + true + true + Display + 800 + -736e4684:150ac3c95a1:-720b + -1 + -1 \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/DS/CloseFile.opi b/core/base/tools/commander/workspace_template/Displays/Apps/DS/CloseFile.opi index 884e0cb1a..a6219d505 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/DS/CloseFile.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/DS/CloseFile.opi @@ -1,34 +1,35 @@ - - true - - -736e4684:150ac3c95a1:-7217 - true - false - - 600 - - true - - 4.0.104.201510200439 - true - Display - - false - -1 - -1 - - - - - 800 - -1 - - 6 - true - -1 - true - - - - + + + + + false + -1 + -1 + + false + + + + 1.5.3 + + + + 6 + 600 + + true + + + + + true + true + true + true + true + Display + 800 + -736e4684:150ac3c95a1:-7217 + -1 + -1 \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/DS/GetFileInfo.opi b/core/base/tools/commander/workspace_template/Displays/Apps/DS/GetFileInfo.opi index 7dcc872bf..baa14858c 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/DS/GetFileInfo.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/DS/GetFileInfo.opi @@ -1,34 +1,35 @@ - - true - - -736e4684:150ac3c95a1:-7213 - true - false - - 600 - - true - - 4.0.104.201510200439 - true - Display - - false - -1 - -1 - - - - - 800 - -1 - - 6 - true - -1 - true - - - - + + + + + false + -1 + -1 + + false + + + + 1.5.3 + + + + 6 + 600 + + true + + + + + true + true + true + true + true + Display + 800 + -736e4684:150ac3c95a1:-7213 + -1 + -1 \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/DS/Main.opi b/core/base/tools/commander/workspace_template/Displays/Apps/DS/Main.opi index 557f0650a..3145870f8 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/DS/Main.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/DS/Main.opi @@ -8,7 +8,7 @@ false - + 1.5.3 @@ -259,10 +259,12 @@ $(pv_value) - scripts/NoOp.js + - false +importPackage(Packages.org.yamcs.studio.script); + +Yamcs.issueCommand('/cfs/ds/Noop', {});]]> + true @@ -286,7 +288,7 @@ $(pv_value) 13 - + ../../Resources/send.png NoOp 0 @@ -305,7 +307,7 @@ $(pv_value) $(pv_value) true Action Button - 67 + 117 -33cb7c72:150aa4c347f:-75fa 217 60 @@ -313,10 +315,12 @@ $(pv_value) - scripts/ResetCounters.js + - false +importPackage(Packages.org.yamcs.studio.script); + +Yamcs.issueCommand('/cfs/ds/Reset', {});]]> + true @@ -340,7 +344,7 @@ $(pv_value) 13 - + ../../Resources/send.png NoOp_1 0 @@ -359,7 +363,7 @@ $(pv_value) $(pv_value) true Action Button - 67 + 117 -33cb7c72:150aa4c347f:-75f9 217 79 @@ -1667,7 +1671,7 @@ Yamcs.issueCommand('/CFS/DS/SetAppState(State: 1)');]]> 19 - + ../../Resources/send.png NoOp_2 0 @@ -1686,7 +1690,7 @@ Yamcs.issueCommand('/CFS/DS/SetAppState(State: 1)');]]> $(pv_value) true Action Button - 47 + 97 -736e4684:150ac3c95a1:-72d3 224 220 @@ -2548,7 +2552,7 @@ Yamcs.issueCommand('/CFS/DS/SetAppState(State: 0)');]]> 19 - + ../../Resources/send.png NoOp_18 0 @@ -2567,9 +2571,9 @@ Yamcs.issueCommand('/CFS/DS/SetAppState(State: 0)');]]> $(pv_value) true Action Button - 47 + 97 -736e4684:150ac3c95a1:-71f7 - 276 + 333 220 \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/DS/SetAppState.opi b/core/base/tools/commander/workspace_template/Displays/Apps/DS/SetAppState.opi index 51ec85481..08401baf6 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/DS/SetAppState.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/DS/SetAppState.opi @@ -1,34 +1,35 @@ - - true - - -736e4684:150ac3c95a1:-724b - true - false - - 600 - - true - - 4.0.104.201510200439 - true - Display - - false - -1 - -1 - - - - - 800 - -1 - - 6 - true - -1 - true - - - - + + + + + false + -1 + -1 + + false + + + + 1.5.3 + + + + 6 + 600 + + true + + + + + true + true + true + true + true + Display + 800 + -736e4684:150ac3c95a1:-724b + -1 + -1 \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/DS/SetDestAge.opi b/core/base/tools/commander/workspace_template/Displays/Apps/DS/SetDestAge.opi index f52820ed9..1cb21224c 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/DS/SetDestAge.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/DS/SetDestAge.opi @@ -1,34 +1,35 @@ - - true - - -736e4684:150ac3c95a1:-721f - true - false - - 600 - - true - - 4.0.104.201510200439 - true - Display - - false - -1 - -1 - - - - - 800 - -1 - - 6 - true - -1 - true - - - - + + + + + false + -1 + -1 + + false + + + + 1.5.3 + + + + 6 + 600 + + true + + + + + true + true + true + true + true + Display + 800 + -736e4684:150ac3c95a1:-721f + -1 + -1 \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/DS/SetDestBase.opi b/core/base/tools/commander/workspace_template/Displays/Apps/DS/SetDestBase.opi index 1b7ae466f..1dc1c9857 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/DS/SetDestBase.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/DS/SetDestBase.opi @@ -1,34 +1,35 @@ - - true - - -736e4684:150ac3c95a1:-722b - true - false - - 600 - - true - - 4.0.104.201510200439 - true - Display - - false - -1 - -1 - - - - - 800 - -1 - - 6 - true - -1 - true - - - - + + + + + false + -1 + -1 + + false + + + + 1.5.3 + + + + 6 + 600 + + true + + + + + true + true + true + true + true + Display + 800 + -736e4684:150ac3c95a1:-722b + -1 + -1 \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/DS/SetDestCount.opi b/core/base/tools/commander/workspace_template/Displays/Apps/DS/SetDestCount.opi index a02d9c3e8..4ee3bdecb 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/DS/SetDestCount.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/DS/SetDestCount.opi @@ -1,34 +1,35 @@ - - true - - -736e4684:150ac3c95a1:-721b - true - false - - 600 - - true - - 4.0.104.201510200439 - true - Display - - false - -1 - -1 - - - - - 800 - -1 - - 6 - true - -1 - true - - - - + + + + + false + -1 + -1 + + false + + + + 1.5.3 + + + + 6 + 600 + + true + + + + + true + true + true + true + true + Display + 800 + -736e4684:150ac3c95a1:-721b + -1 + -1 \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/DS/SetDestExt.opi b/core/base/tools/commander/workspace_template/Displays/Apps/DS/SetDestExt.opi index e91d78724..309810616 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/DS/SetDestExt.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/DS/SetDestExt.opi @@ -1,34 +1,35 @@ - - true - - -736e4684:150ac3c95a1:-7227 - true - false - - 600 - - true - - 4.0.104.201510200439 - true - Display - - false - -1 - -1 - - - - - 800 - -1 - - 6 - true - -1 - true - - - - + + + + + false + -1 + -1 + + false + + + + 1.5.3 + + + + 6 + 600 + + true + + + + + true + true + true + true + true + Display + 800 + -736e4684:150ac3c95a1:-7227 + -1 + -1 \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/DS/SetDestPath.opi b/core/base/tools/commander/workspace_template/Displays/Apps/DS/SetDestPath.opi index 565484b1b..8b099436b 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/DS/SetDestPath.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/DS/SetDestPath.opi @@ -1,34 +1,35 @@ - - true - - -736e4684:150ac3c95a1:-7233 - true - false - - 600 - - true - - 4.0.104.201510200439 - true - Display - - false - -1 - -1 - - - - - 800 - -1 - - 6 - true - -1 - true - - - - + + + + + false + -1 + -1 + + false + + + + 1.5.3 + + + + 6 + 600 + + true + + + + + true + true + true + true + true + Display + 800 + -736e4684:150ac3c95a1:-7233 + -1 + -1 \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/DS/SetDestSize.opi b/core/base/tools/commander/workspace_template/Displays/Apps/DS/SetDestSize.opi index 133d53a44..49fbd6044 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/DS/SetDestSize.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/DS/SetDestSize.opi @@ -1,34 +1,35 @@ - - true - - -736e4684:150ac3c95a1:-7223 - true - false - - 600 - - true - - 4.0.104.201510200439 - true - Display - - false - -1 - -1 - - - - - 800 - -1 - - 6 - true - -1 - true - - - - + + + + + false + -1 + -1 + + false + + + + 1.5.3 + + + + 6 + 600 + + true + + + + + true + true + true + true + true + Display + 800 + -736e4684:150ac3c95a1:-7223 + -1 + -1 \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/DS/SetDestState.opi b/core/base/tools/commander/workspace_template/Displays/Apps/DS/SetDestState.opi index 8c75b09c3..782991311 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/DS/SetDestState.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/DS/SetDestState.opi @@ -1,34 +1,35 @@ - - true - - -736e4684:150ac3c95a1:-7237 - true - false - - 600 - - true - - 4.0.104.201510200439 - true - Display - - false - -1 - -1 - - - - - 800 - -1 - - 6 - true - -1 - true - - - - + + + + + false + -1 + -1 + + false + + + + 1.5.3 + + + + 6 + 600 + + true + + + + + true + true + true + true + true + Display + 800 + -736e4684:150ac3c95a1:-7237 + -1 + -1 \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/DS/SetDestType.opi b/core/base/tools/commander/workspace_template/Displays/Apps/DS/SetDestType.opi index 583981552..3a4cfe91f 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/DS/SetDestType.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/DS/SetDestType.opi @@ -1,34 +1,35 @@ - - true - - -736e4684:150ac3c95a1:-723b - true - false - - 600 - - true - - 4.0.104.201510200439 - true - Display - - false - -1 - -1 - - - - - 800 - -1 - - 6 - true - -1 - true - - - - + + + + + false + -1 + -1 + + false + + + + 1.5.3 + + + + 6 + 600 + + true + + + + + true + true + true + true + true + Display + 800 + -736e4684:150ac3c95a1:-723b + -1 + -1 \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/DS/SetFilterFile.opi b/core/base/tools/commander/workspace_template/Displays/Apps/DS/SetFilterFile.opi index 1a83199ec..ede544c03 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/DS/SetFilterFile.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/DS/SetFilterFile.opi @@ -1,34 +1,35 @@ - - true - - -736e4684:150ac3c95a1:-7247 - true - false - - 600 - - true - - 4.0.104.201510200439 - true - Display - - false - -1 - -1 - - - - - 800 - -1 - - 6 - true - -1 - true - - - - + + + + + false + -1 + -1 + + false + + + + 1.5.3 + + + + 6 + 600 + + true + + + + + true + true + true + true + true + Display + 800 + -736e4684:150ac3c95a1:-7247 + -1 + -1 \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/DS/SetFilterParms.opi b/core/base/tools/commander/workspace_template/Displays/Apps/DS/SetFilterParms.opi index da2fe6a71..da608f98a 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/DS/SetFilterParms.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/DS/SetFilterParms.opi @@ -1,34 +1,35 @@ - - true - - -736e4684:150ac3c95a1:-723f - true - false - - 600 - - true - - 4.0.104.201510200439 - true - Display - - false - -1 - -1 - - - - - 800 - -1 - - 6 - true - -1 - true - - - - + + + + + false + -1 + -1 + + false + + + + 1.5.3 + + + + 6 + 600 + + true + + + + + true + true + true + true + true + Display + 800 + -736e4684:150ac3c95a1:-723f + -1 + -1 \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/DS/SetFilterType.opi b/core/base/tools/commander/workspace_template/Displays/Apps/DS/SetFilterType.opi index 6a855796d..fbe4493a4 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/DS/SetFilterType.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/DS/SetFilterType.opi @@ -1,34 +1,35 @@ - - true - - -736e4684:150ac3c95a1:-7243 - true - false - - 600 - - true - - 4.0.104.201510200439 - true - Display - - false - -1 - -1 - - - - - 800 - -1 - - 6 - true - -1 - true - - - - + + + + + false + -1 + -1 + + false + + + + 1.5.3 + + + + 6 + 600 + + true + + + + + true + true + true + true + true + Display + 800 + -736e4684:150ac3c95a1:-7243 + -1 + -1 \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/FM/Main.opi b/core/base/tools/commander/workspace_template/Displays/Apps/FM/Main.opi index e325e0a5d..7291b52f0 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/FM/Main.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/FM/Main.opi @@ -8,7 +8,7 @@ false - + 1.5.3 @@ -259,10 +259,12 @@ $(pv_value) - scripts/NoOp.js + - false +importPackage(Packages.org.yamcs.studio.script); + +Yamcs.issueCommand('/CFS/FM/NoOp', {});]]> + true @@ -286,7 +288,7 @@ $(pv_value) 18 - + ../../Resources/send.png NoOp 0 @@ -313,10 +315,12 @@ $(pv_value) - scripts/ResetCounters.js + - false +importPackage(Packages.org.yamcs.studio.script); + +Yamcs.issueCommand('/cfs/fm/Reset, {}');]]> + true @@ -340,7 +344,7 @@ $(pv_value) 17 - + ../../Resources/send.png NoOp_1 0 diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/HK/Main.opi b/core/base/tools/commander/workspace_template/Displays/Apps/HK/Main.opi index 409722c41..197e289d9 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/HK/Main.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/HK/Main.opi @@ -8,7 +8,7 @@ false - + 1.5.3 @@ -259,10 +259,12 @@ $(pv_value) - scripts/NoOp.js + - false +importPackage(Packages.org.yamcs.studio.script); + +Yamcs.issueCommand('/cfs/hk/Noop', {});]]> + true @@ -286,7 +288,7 @@ $(pv_value) 18 - + ../../Resources/send.png NoOp 0 @@ -313,10 +315,12 @@ $(pv_value) - scripts/ResetCounters.js + - false +importPackage(Packages.org.yamcs.studio.script); + +Yamcs.issueCommand('/cfs/hk/Reset', {});]]> + true @@ -340,7 +344,7 @@ $(pv_value) 17 - + ../../Resources/send.png NoOp_1 0 diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/HS/Main.opi b/core/base/tools/commander/workspace_template/Displays/Apps/HS/Main.opi index 5590cab46..bf80687c4 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/HS/Main.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/HS/Main.opi @@ -8,7 +8,7 @@ false - + 1.5.3 @@ -259,10 +259,12 @@ $(pv_value) - scripts/NoOp.js + - false +importPackage(Packages.org.yamcs.studio.script); + +Yamcs.issueCommand('/cfs/hs/Noop', {});]]> + true @@ -286,7 +288,7 @@ $(pv_value) 18 - + ../../Resources/send.png NoOp 0 @@ -299,7 +301,7 @@ $(pv_value) - NoOp + Noop false $(pv_name) $(pv_value) @@ -313,10 +315,12 @@ $(pv_value) - scripts/ResetCounters.js + - false +importPackage(Packages.org.yamcs.studio.script); + +Yamcs.issueCommand('/cfs/hs/Reset', {});]]> + true @@ -340,7 +344,7 @@ $(pv_value) 17 - + ../../Resources/send.png NoOp_1 0 @@ -688,7 +692,7 @@ $(pv_value) Check Box 25 -6442812a:150b08c061c:-7efc - 273 + 356 133 @@ -735,7 +739,7 @@ $(pv_value) Check Box 25 -6442812a:150b08c061c:-7efb - 273 + 356 152 @@ -782,7 +786,7 @@ $(pv_value) Check Box 25 -6442812a:150b08c061c:-7efa - 273 + 356 171 @@ -829,7 +833,7 @@ $(pv_value) Check Box 25 -6442812a:150b08c061c:-7ef9 - 273 + 356 190 @@ -1277,7 +1281,7 @@ $(pv_value) 30 false -6442812a:150b08c061c:-7ecf - 238 + 321 152 @@ -1317,7 +1321,7 @@ $(pv_value) 30 false -6442812a:150b08c061c:-7eca - 238 + 321 133 @@ -1357,7 +1361,7 @@ $(pv_value) 30 false -6442812a:150b08c061c:-7ec5 - 238 + 321 171 @@ -1397,7 +1401,7 @@ $(pv_value) 30 false -6442812a:150b08c061c:-7ec0 - 238 + 321 190 @@ -1637,7 +1641,7 @@ $(pv_value) 65 false -6442812a:150b08c061c:-7e86 - 241 + 324 114 @@ -6514,7 +6518,7 @@ $(pv_value) 18 - + ../../Resources/send.png NoOp_2 0 @@ -6533,7 +6537,7 @@ $(pv_value) $(pv_value) true Action Button - 37 + 91 -6442812a:150b08c061c:-7721 120 134 @@ -6568,7 +6572,7 @@ $(pv_value) 18 - + ../../Resources/send.png NoOp_3 0 @@ -6587,9 +6591,9 @@ $(pv_value) $(pv_value) true Action Button - 37 + 89 -6442812a:150b08c061c:-7717 - 156 + 210 134 @@ -6622,7 +6626,7 @@ $(pv_value) 18 - + ../../Resources/send.png NoOp_4 0 @@ -6641,7 +6645,7 @@ $(pv_value) $(pv_value) true Action Button - 37 + 110 -6442812a:150b08c061c:-7710 120 153 @@ -6676,7 +6680,7 @@ $(pv_value) 18 - + ../../Resources/send.png NoOp_5 0 @@ -6695,7 +6699,7 @@ $(pv_value) $(pv_value) true Action Button - 37 + 110 -6442812a:150b08c061c:-770b 120 172 @@ -6730,7 +6734,7 @@ $(pv_value) 18 - + ../../Resources/send.png NoOp_6 0 @@ -6749,7 +6753,7 @@ $(pv_value) $(pv_value) true Action Button - 37 + 110 -6442812a:150b08c061c:-7706 120 191 @@ -6784,7 +6788,7 @@ $(pv_value) 18 - + ../../Resources/send.png NoOp_7 0 @@ -6803,9 +6807,9 @@ $(pv_value) $(pv_value) true Action Button - 37 + 89 -6442812a:150b08c061c:-76fe - 156 + 210 153 @@ -6838,7 +6842,7 @@ $(pv_value) 18 - + ../../Resources/send.png NoOp_8 0 @@ -6857,9 +6861,9 @@ $(pv_value) $(pv_value) true Action Button - 37 + 89 -6442812a:150b08c061c:-76f9 - 156 + 210 172 @@ -6892,7 +6896,7 @@ $(pv_value) 18 - + ../../Resources/send.png NoOp_9 0 @@ -6911,9 +6915,9 @@ $(pv_value) $(pv_value) true Action Button - 37 + 89 -6442812a:150b08c061c:-76f4 - 156 + 210 191 @@ -6946,7 +6950,7 @@ $(pv_value) 18 - + ../../Resources/send.png NoOp_10 0 @@ -6965,7 +6969,7 @@ $(pv_value) $(pv_value) true Action Button - 41 + 86 -6442812a:150b08c061c:-76ec 265 317 @@ -7000,7 +7004,7 @@ $(pv_value) 18 - + ../../Resources/send.png NoOp_11 0 @@ -7019,7 +7023,7 @@ $(pv_value) $(pv_value) true Action Button - 41 + 86 -6442812a:150b08c061c:-76e2 265 298 diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/LC/Main.opi b/core/base/tools/commander/workspace_template/Displays/Apps/LC/Main.opi index 3575f24b0..2c1307913 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/LC/Main.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/LC/Main.opi @@ -8,7 +8,7 @@ false - + 1.5.3 @@ -259,10 +259,12 @@ $(pv_value) - scripts/NoOp.js + - false +importPackage(Packages.org.yamcs.studio.script); + +Yamcs.issueCommand('/cfs/lc/Noop', {});]]> + true @@ -286,7 +288,7 @@ $(pv_value) 18 - + ../../Resources/send.png NoOp 0 @@ -313,10 +315,12 @@ $(pv_value) - scripts/ResetCounters.js + - false +importPackage(Packages.org.yamcs.studio.script); + +Yamcs.issueCommand('/cfs/lc/Reset', {});]]> + true @@ -340,7 +344,7 @@ $(pv_value) 17 - + ../../Resources/send.png NoOp_1 0 diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/MD/Main.opi b/core/base/tools/commander/workspace_template/Displays/Apps/MD/Main.opi index 85685410b..414999de4 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/MD/Main.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/MD/Main.opi @@ -8,7 +8,7 @@ false - + 1.5.3 @@ -259,10 +259,12 @@ $(pv_value) - scripts/NoOp.js + - false +importPackage(Packages.org.yamcs.studio.script); + +Yamcs.issueCommand('/cfs/md/Noop', {});]]> + true @@ -286,7 +288,7 @@ $(pv_value) 18 - + ../../Resources/send.png NoOp 0 @@ -313,10 +315,12 @@ $(pv_value) - scripts/ResetCounters.js + - false +importPackage(Packages.org.yamcs.studio.script); + +Yamcs.issueCommand('/cfs/md/Reset', {});]]> + true @@ -340,7 +344,7 @@ $(pv_value) 17 - + ../../Resources/send.png NoOp_1 0 diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/MM/Main.opi b/core/base/tools/commander/workspace_template/Displays/Apps/MM/Main.opi index 9d64a19f0..26ed377d5 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/MM/Main.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/MM/Main.opi @@ -8,7 +8,7 @@ false - + 1.5.3 @@ -259,10 +259,12 @@ $(pv_value) - scripts/NoOp.js + - false +importPackage(Packages.org.yamcs.studio.script); + +Yamcs.issueCommand('/cfs/mm/Noop', {});]]> + true @@ -286,7 +288,7 @@ $(pv_value) 18 - + ../../Resources/send.png NoOp 0 @@ -313,10 +315,12 @@ $(pv_value) - scripts/ResetCounters.js + - false +importPackage(Packages.org.yamcs.studio.script); + +Yamcs.issueCommand('/cfs/mm/Reset', {});]]> + true @@ -340,7 +344,7 @@ $(pv_value) 17 - + ../../Resources/send.png NoOp_1 0 diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/Main.opi b/core/base/tools/commander/workspace_template/Displays/Apps/Main.opi index 554a7d5ee..d3d037225 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/Main.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/Main.opi @@ -8,7 +8,7 @@ false - + 1.5.3 @@ -60,7 +60,7 @@ Text Update 0 false - /CFS/CS/CmdCounter + /cfs/cs/CS_HkTlm_t.usCmdCnt 0.0 @@ -152,7 +152,7 @@ $(pv_value) Text Update_1 0 false - /CFS/CS/ErrCounter + /cfs/cs/CS_HkTlm_t.usCmdErrCnt 0.0 @@ -206,7 +206,7 @@ $(pv_value) 23 - + ../Resources/send.png NoOp 0 @@ -260,7 +260,7 @@ $(pv_value) 23 - + ../Resources/send.png NoOp_1 0 @@ -447,7 +447,7 @@ $(pv_value) Text Update_2 0 false - /CFS/CF/CmdCounter + /cfs/cf/CF_HkPacket_t.CmdCounter 0.0 @@ -499,7 +499,7 @@ $(pv_value) Text Update_3 0 false - /CFS/CF/ErrCounter + /cfs/cf/CF_HkPacket_t.ErrCounter 0.0 @@ -528,8 +528,9 @@ $(pv_value) CF/scripts/NoOp.js - false + +Yamcs.issueCommand('/cfs/cf/Noop', {});]]> + true @@ -553,7 +554,7 @@ $(pv_value) 23 - + ../Resources/send.png NoOp_3 0 @@ -584,7 +585,7 @@ $(pv_value) true - 8 + 1 @@ -755,7 +756,7 @@ $(pv_value) Text Update_4 0 false - /CFS/DS/CmdAcceptedCounter + /cfs/ds/DS_HkTlm_t.usCmdCnt 0.0 @@ -807,7 +808,7 @@ $(pv_value) Text Update_5 0 false - /CFS/DS/CmdRejectedCounter + /cfs/ds/DS_HkTlm_t.usCmdErrCnt 0.0 @@ -861,7 +862,7 @@ $(pv_value) 23 - + ../Resources/send.png NoOp_6 0 @@ -915,7 +916,7 @@ $(pv_value) 23 - + ../Resources/send.png NoOp_7 0 @@ -1062,7 +1063,7 @@ $(pv_value) Text Update_8 0 false - /CFS/FM/CommandCounter + /cfs/fm/FM_HkTlm_t.usCmdCnt 0.0 @@ -1114,7 +1115,7 @@ $(pv_value) Text Update_9 0 false - /CFS/FM/CommandErrCounter + /cfs/hk/HK_HkTlm_t.usCmdErrCnt 0.0 @@ -1168,7 +1169,7 @@ $(pv_value) 23 - + ../Resources/send.png NoOp_12 0 @@ -1222,7 +1223,7 @@ $(pv_value) 23 - + ../Resources/send.png NoOp_13 0 @@ -1369,7 +1370,7 @@ $(pv_value) Text Update_10 0 false - /CFS/HK/CmdCounter + /cfs/hk/HK_HkTlm_t.usCmdCnt 0.0 @@ -1421,7 +1422,7 @@ $(pv_value) Text Update_11 0 false - /CFS/HK/ErrCounter + /cfs/hk/HK_HkTlm_t.usCmdErrCnt 0.0 @@ -1475,7 +1476,7 @@ $(pv_value) 23 - + ../Resources/send.png NoOp_15 0 @@ -1529,7 +1530,7 @@ $(pv_value) 23 - + ../Resources/send.png NoOp_16 0 @@ -1676,7 +1677,7 @@ $(pv_value) Text Update_12 0 false - /CFS/CI/CmdCounter + /cfs/ci/CI_HkTlm_t.usCmdCnt 0.0 @@ -1728,7 +1729,7 @@ $(pv_value) Text Update_13 0 false - /CFS/CI/ErrCounter + /cfs/ci/CI_HkTlm_t.usCmdErrCnt 0.0 @@ -1755,10 +1756,12 @@ $(pv_value) - CI/scripts/NoOp.js + - false +importPackage(Packages.org.yamcs.studio.script); + +Yamcs.issueCommand('/cfs/ci/Noop(arg: none)');]]> + true @@ -1782,7 +1785,7 @@ $(pv_value) 23 - + ../Resources/send.png NoOp_18 0 @@ -1809,10 +1812,12 @@ $(pv_value) - CI/scripts/ResetCounters.js + - false +importPackage(Packages.org.yamcs.studio.script); + +Yamcs.issueCommand('/cfs/ci/Reset', {});]]> + true @@ -1836,7 +1841,7 @@ $(pv_value) 23 - + ../Resources/send.png NoOp_19 0 @@ -1983,7 +1988,7 @@ $(pv_value) Text Update_14 0 false - /CFS/HS/CmdCount + /cfs/hs/HS_HkTlm_t.usCmdCnt 0.0 @@ -2035,7 +2040,7 @@ $(pv_value) Text Update_15 0 false - /CFS/HS/CmdErrCount + /cfs/hs/HS_HkTlm_t.usCmdErrCnt 0.0 @@ -2089,7 +2094,7 @@ $(pv_value) 23 - + ../Resources/send.png NoOp_21 0 @@ -2143,7 +2148,7 @@ $(pv_value) 23 - + ../Resources/send.png NoOp_22 0 @@ -2290,7 +2295,7 @@ $(pv_value) Text Update_16 0 false - /CFS/LC/CmdCounter + /cfs/lc/LC_HkTlm_t.usCmdCnt 0.0 @@ -2342,7 +2347,7 @@ $(pv_value) Text Update_17 0 false - /CFS/LC/ErrCounter + /cfs/lc/LC_HkTlm_t.usCmdErrCnt 0.0 @@ -2396,7 +2401,7 @@ $(pv_value) 23 - + ../Resources/send.png NoOp_24 0 @@ -2450,7 +2455,7 @@ $(pv_value) 23 - + ../Resources/send.png NoOp_25 0 @@ -2597,7 +2602,7 @@ $(pv_value) Text Update_18 0 false - /CFS/MD/ValidCmdCntr + /cfs/md/MD_HkTlm_t.usCmdCnt 0.0 @@ -2649,7 +2654,7 @@ $(pv_value) Text Update_19 0 false - /CFS/MD/InvalidCmdCntr + /cfs/md/MD_HkTlm_t.usCmdErrCnt 0.0 @@ -2703,7 +2708,7 @@ $(pv_value) 23 - + ../Resources/send.png NoOp_27 0 @@ -2757,7 +2762,7 @@ $(pv_value) 23 - + ../Resources/send.png NoOp_28 0 @@ -2904,7 +2909,7 @@ $(pv_value) Text Update_20 0 false - /CFS/MM/CmdCounter + /cfs/mm/MM_HkTlm_t.usCmdCnt 0.0 @@ -2956,7 +2961,7 @@ $(pv_value) Text Update_21 0 false - /CFS/MM/ErrCounter + /cfs/mm/MM_HkTlm_t.usCmdErrCnt 0.0 @@ -3010,7 +3015,7 @@ $(pv_value) 23 - + ../Resources/send.png NoOp_30 0 @@ -3064,7 +3069,7 @@ $(pv_value) 23 - + ../Resources/send.png NoOp_31 0 @@ -3211,7 +3216,7 @@ $(pv_value) Text Update_22 0 false - /CFS/SC/CmdCtr + /cfs/sc/SC_HkTlm_t.CmdCtr 0.0 @@ -3263,7 +3268,7 @@ $(pv_value) Text Update_23 0 false - /CFS/SC/CmdErrCtr + /cfs/sc/SC_HkTlm_t.CmdErrCtr 0.0 @@ -3317,7 +3322,7 @@ $(pv_value) 23 - + ../Resources/send.png NoOp_33 0 @@ -3371,7 +3376,7 @@ $(pv_value) 23 - + ../Resources/send.png NoOp_34 0 @@ -3518,7 +3523,7 @@ $(pv_value) Text Update_24 0 false - /CFS/SCH/CmdCounter + /cfs/sch/SCH_HkPacket_t.ErrCounter 0.0 @@ -3570,7 +3575,7 @@ $(pv_value) Text Update_25 0 false - /CFS/SCH/ErrCounter + /cfs/sch/SCH_HkPacket_t.ErrCounter 0.0 @@ -3624,7 +3629,7 @@ $(pv_value) 23 - + ../Resources/send.png NoOp_36 0 @@ -3678,7 +3683,7 @@ $(pv_value) 23 - + ../Resources/send.png NoOp_37 0 @@ -3825,7 +3830,7 @@ $(pv_value) Text Update_26 0 false - /CFS/TO/CmdCounter + /cfs/to/TO_HkTlm_t.usCmdCnt 0.0 @@ -3877,7 +3882,7 @@ $(pv_value) Text Update_27 0 false - /CFS/TO/ErrCounter + /cfs/to/TO_HkTlm_t.usCmdErrCnt 0.0 @@ -3931,7 +3936,7 @@ $(pv_value) 23 - + ../Resources/send.png NoOp_39 0 @@ -3985,7 +3990,7 @@ $(pv_value) 23 - + ../Resources/send.png NoOp_40 0 diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/SC/Main.opi b/core/base/tools/commander/workspace_template/Displays/Apps/SC/Main.opi index b06ac17ad..b264bf0ec 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/SC/Main.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/SC/Main.opi @@ -8,14 +8,14 @@ false - + 1.5.3 6 - 410 + 600 true @@ -28,7 +28,7 @@ true true Display - 300 + 370 -33cb7c72:150aa4c347f:-76c2 -1 -1 @@ -261,8 +261,10 @@ $(pv_value) scripts/NoOp.js - false +importPackage(Packages.org.yamcs.studio.script); + +Yamcs.issueCommand('/cfs/sc/Noop',{});]]> + true @@ -286,7 +288,7 @@ $(pv_value) 18 - + ../../Resources/send.png NoOp 0 @@ -315,8 +317,10 @@ $(pv_value) scripts/ResetCounters.js - false +importPackage(Packages.org.yamcs.studio.script); + +Yamcs.issueCommand('/cfs/sc/Reset', {});]]> + true @@ -340,7 +344,7 @@ $(pv_value) 17 - + ../../Resources/send.png NoOp_1 0 @@ -1202,7 +1206,7 @@ $(pv_value) Text Update_17 0 false - /cfs/sc/SC_HkTlm_t.LastErrCmd + /cfs/sc/SC_HkTlm_t.LastAtsErrCmd 0.0 @@ -1514,7 +1518,7 @@ $(pv_value) Text Update_23 0 false - /cfs/sc/SC_HkTlm_t.AtpFreeBytes + /cfs/sc/SC_HkTlm_t.AtpFreeBytes_0_ 0.0 @@ -1566,7 +1570,7 @@ $(pv_value) Text Update_24 0 false - /cfs/sc/SC_HkTlm_t.AtpFreeBytes[1] + /cfs/sc/SC_HkTlm_t.AtpFreeBytes_1_ 0.0 diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/SC/scripts/NoOp.js b/core/base/tools/commander/workspace_template/Displays/Apps/SC/scripts/NoOp.js index 772ec0520..e379dec83 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/SC/scripts/NoOp.js +++ b/core/base/tools/commander/workspace_template/Displays/Apps/SC/scripts/NoOp.js @@ -1,4 +1,4 @@ importPackage(Packages.org.csstudio.opibuilder.scriptUtil); importPackage(Packages.org.yamcs.studio.script); -Yamcs.issueCommand('/CFS/SC/NoOp(arg: none)'); \ No newline at end of file +Yamcs.issueCommand('/cfs/sc/Noop',{}); \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/SC/scripts/ResetCounters.js b/core/base/tools/commander/workspace_template/Displays/Apps/SC/scripts/ResetCounters.js index cc3a94bd9..e6fea9305 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/SC/scripts/ResetCounters.js +++ b/core/base/tools/commander/workspace_template/Displays/Apps/SC/scripts/ResetCounters.js @@ -1,4 +1,4 @@ importPackage(Packages.org.csstudio.opibuilder.scriptUtil); importPackage(Packages.org.yamcs.studio.script); -Yamcs.issueCommand('/CFS/SC/Reset(arg: none)'); \ No newline at end of file +Yamcs.issueCommand('/cf/sc/Reset', {}); \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/SCH/Main.opi b/core/base/tools/commander/workspace_template/Displays/Apps/SCH/Main.opi index 679fa56f4..03f287ae9 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/SCH/Main.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/SCH/Main.opi @@ -8,14 +8,14 @@ false - + 1.5.3 6 - 410 + 510 true @@ -259,10 +259,12 @@ $(pv_value) - scripts/NoOp.js + - false +importPackage(Packages.org.yamcs.studio.script); + +Yamcs.issueCommand('/cfs/sch/Noop', {});]]> + true @@ -286,7 +288,7 @@ $(pv_value) 18 - + ../../Resources/send.png NoOp 0 @@ -299,7 +301,7 @@ $(pv_value) - NoOp + Noop false $(pv_name) $(pv_value) @@ -313,10 +315,12 @@ $(pv_value) - scripts/ResetCounters.js + - false +importPackage(Packages.org.yamcs.studio.script); + +Yamcs.issueCommand('/cfs/sch/Reset', {});]]> + true @@ -340,7 +344,7 @@ $(pv_value) 17 - + ../../Resources/send.png NoOp_1 0 diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/TO/Main.opi b/core/base/tools/commander/workspace_template/Displays/Apps/TO/Main.opi index 58994c766..2b45b3c32 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/TO/Main.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/TO/Main.opi @@ -8,7 +8,7 @@ false - + 1.5.3 @@ -60,7 +60,7 @@ Text Update 0 false - /CFS/SC/CmdCtr + /cfs/to/TO_HkTlm_t.usCmdCnt 0.0 @@ -232,7 +232,7 @@ $(pv_value) Text Update_1 0 false - /CFS/SC/CmdErrCtr + /cfs/to/TO_HkTlm_t.usCmdErrCnt 0.0 @@ -259,10 +259,12 @@ $(pv_value) - scripts/NoOp.js + - false +importPackage(Packages.org.yamcs.studio.script); + +Yamcs.issueCommand('/cfs/to/Noop', {});]]> + true @@ -286,7 +288,7 @@ $(pv_value) 18 - + ../../Resources/send.png NoOp 0 @@ -313,10 +315,12 @@ $(pv_value) - scripts/ResetCounters.js + - false +importPackage(Packages.org.yamcs.studio.script); + +Yamcs.issueCommand('/cfs/to/Reset', {});]]> + true @@ -340,7 +344,7 @@ $(pv_value) 17 - + ../../Resources/send.png NoOp_1 0 @@ -432,7 +436,7 @@ $(pv_value) Text Update_2 0 false - /CFS/SC/AtsNumber + /cfs/sc/SC_HkTlm_t.AtsNumber 0.0 diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/TO/scripts/NoOp.js b/core/base/tools/commander/workspace_template/Displays/Apps/TO/scripts/NoOp.js index 772ec0520..dcb9c4808 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/TO/scripts/NoOp.js +++ b/core/base/tools/commander/workspace_template/Displays/Apps/TO/scripts/NoOp.js @@ -1,4 +1,4 @@ importPackage(Packages.org.csstudio.opibuilder.scriptUtil); importPackage(Packages.org.yamcs.studio.script); -Yamcs.issueCommand('/CFS/SC/NoOp(arg: none)'); \ No newline at end of file +Yamcs.issueCommand('/cfs/to/Noop', {}); \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/TO/scripts/ResetCounters.js b/core/base/tools/commander/workspace_template/Displays/Apps/TO/scripts/ResetCounters.js index cc3a94bd9..e48710dc4 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/TO/scripts/ResetCounters.js +++ b/core/base/tools/commander/workspace_template/Displays/Apps/TO/scripts/ResetCounters.js @@ -1,4 +1,4 @@ importPackage(Packages.org.csstudio.opibuilder.scriptUtil); importPackage(Packages.org.yamcs.studio.script); -Yamcs.issueCommand('/CFS/SC/Reset(arg: none)'); \ No newline at end of file +Yamcs.issueCommand('/cfs/to/Reset', {}); \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Core/EVS/AddFilter.opi b/core/base/tools/commander/workspace_template/Displays/Core/EVS/AddFilter.opi index 8bea41bf4..20aa1e488 100644 --- a/core/base/tools/commander/workspace_template/Displays/Core/EVS/AddFilter.opi +++ b/core/base/tools/commander/workspace_template/Displays/Core/EVS/AddFilter.opi @@ -71,7 +71,7 @@ Yamcs.issueCommand(cmdString);]]> 28 - + ../../Resources/send.png Action Button 0 diff --git a/core/base/tools/commander/workspace_template/Displays/Core/EVS/DeleteFilter.opi b/core/base/tools/commander/workspace_template/Displays/Core/EVS/DeleteFilter.opi index e7682f558..ac433b4fd 100644 --- a/core/base/tools/commander/workspace_template/Displays/Core/EVS/DeleteFilter.opi +++ b/core/base/tools/commander/workspace_template/Displays/Core/EVS/DeleteFilter.opi @@ -70,7 +70,7 @@ Yamcs.issueCommand(cmdString);]]> 28 - + ../../Resources/send.png Action Button 0 diff --git a/core/base/tools/commander/workspace_template/Displays/Core/EVS/DumpAppData.opi b/core/base/tools/commander/workspace_template/Displays/Core/EVS/DumpAppData.opi index 61360d8fb..dfbdb4f30 100644 --- a/core/base/tools/commander/workspace_template/Displays/Core/EVS/DumpAppData.opi +++ b/core/base/tools/commander/workspace_template/Displays/Core/EVS/DumpAppData.opi @@ -70,7 +70,7 @@ Yamcs.issueCommand(cmd); 25 - + ../../Resources/send.png Action Button 0 diff --git a/core/base/tools/commander/workspace_template/Displays/Core/EVS/DumpEventLog.opi b/core/base/tools/commander/workspace_template/Displays/Core/EVS/DumpEventLog.opi index 988d96785..9d9f82bf3 100644 --- a/core/base/tools/commander/workspace_template/Displays/Core/EVS/DumpEventLog.opi +++ b/core/base/tools/commander/workspace_template/Displays/Core/EVS/DumpEventLog.opi @@ -70,7 +70,7 @@ Yamcs.issueCommand(cmd); 25 - + ../../Resources/send.png Action Button 0 diff --git a/core/base/tools/commander/workspace_template/Displays/Core/EVS/EnaDisAppEventType.opi b/core/base/tools/commander/workspace_template/Displays/Core/EVS/EnaDisAppEventType.opi index 8972b4103..02b728d00 100644 --- a/core/base/tools/commander/workspace_template/Displays/Core/EVS/EnaDisAppEventType.opi +++ b/core/base/tools/commander/workspace_template/Displays/Core/EVS/EnaDisAppEventType.opi @@ -261,7 +261,7 @@ Yamcs.issueCommand(cmdString);]]> 28 - + ../../Resources/send.png Action Button 0 @@ -326,7 +326,7 @@ Yamcs.issueCommand(cmdString);]]> 28 - + ../../Resources/send.png Action Button_1 0 diff --git a/core/base/tools/commander/workspace_template/Displays/Core/EVS/EnaDisAppEvents.opi b/core/base/tools/commander/workspace_template/Displays/Core/EVS/EnaDisAppEvents.opi index ba1a95796..59432799b 100644 --- a/core/base/tools/commander/workspace_template/Displays/Core/EVS/EnaDisAppEvents.opi +++ b/core/base/tools/commander/workspace_template/Displays/Core/EVS/EnaDisAppEvents.opi @@ -69,7 +69,7 @@ Yamcs.issueCommand(cmdString);]]> 28 - + ../../Resources/send.png Action Button 0 @@ -130,7 +130,7 @@ Yamcs.issueCommand(cmdString);]]> 28 - + ../../Resources/send.png Action Button_1 0 diff --git a/core/base/tools/commander/workspace_template/Displays/Core/EVS/EnaDisEventType.opi b/core/base/tools/commander/workspace_template/Displays/Core/EVS/EnaDisEventType.opi index ca5b23387..99d993084 100644 --- a/core/base/tools/commander/workspace_template/Displays/Core/EVS/EnaDisEventType.opi +++ b/core/base/tools/commander/workspace_template/Displays/Core/EVS/EnaDisEventType.opi @@ -260,7 +260,7 @@ Yamcs.issueCommand(cmdString);]]> 28 - + ../../Resources/send.png Action Button 0 @@ -324,7 +324,7 @@ Yamcs.issueCommand(cmdString);]]> 28 - + ../../Resources/send.png Action Button_1 0 diff --git a/core/base/tools/commander/workspace_template/Displays/Core/EVS/EnaDisPorts.opi b/core/base/tools/commander/workspace_template/Displays/Core/EVS/EnaDisPorts.opi index 6b96f594e..810ecb19c 100644 --- a/core/base/tools/commander/workspace_template/Displays/Core/EVS/EnaDisPorts.opi +++ b/core/base/tools/commander/workspace_template/Displays/Core/EVS/EnaDisPorts.opi @@ -260,7 +260,7 @@ Yamcs.issueCommand(cmdString);]]> 28 - + ../../Resources/send.png Action Button 0 @@ -324,7 +324,7 @@ Yamcs.issueCommand(cmdString);]]> 28 - + ../../Resources/send.png Action Button_1 0 diff --git a/core/base/tools/commander/workspace_template/Displays/Core/EVS/Main.opi b/core/base/tools/commander/workspace_template/Displays/Core/EVS/Main.opi index 450f937fb..af5db60b9 100644 --- a/core/base/tools/commander/workspace_template/Displays/Core/EVS/Main.opi +++ b/core/base/tools/commander/workspace_template/Displays/Core/EVS/Main.opi @@ -1154,7 +1154,7 @@ $(pv_value) 20 - + ../../Resources/send.png NoOp 0 @@ -1207,7 +1207,7 @@ $(pv_value) 20 - + ../../Resources/send.png NoOp_1 0 @@ -1466,7 +1466,7 @@ $(pv_value) 21 - + ../../Resources/send.png NoOp_3 0 @@ -1485,7 +1485,7 @@ $(pv_value) $(pv_value) true Action Button - 79 + 95 763e00b7:150973f1dd8:-77fe 360 196 diff --git a/core/base/tools/commander/workspace_template/Displays/Core/EVS/ResetAppCounter.opi b/core/base/tools/commander/workspace_template/Displays/Core/EVS/ResetAppCounter.opi index 4ec6ec08b..39d561cbd 100644 --- a/core/base/tools/commander/workspace_template/Displays/Core/EVS/ResetAppCounter.opi +++ b/core/base/tools/commander/workspace_template/Displays/Core/EVS/ResetAppCounter.opi @@ -69,7 +69,7 @@ Yamcs.issueCommand(cmdString);]]> 28 - + ../../Resources/send.png Action Button 0 @@ -88,7 +88,7 @@ Yamcs.issueCommand(cmdString);]]> $(pv_value) true Action Button - 139 + 150 763e00b7:150973f1dd8:-7b0d 60 60 diff --git a/core/base/tools/commander/workspace_template/Displays/Core/EVS/ResetFilter.opi b/core/base/tools/commander/workspace_template/Displays/Core/EVS/ResetFilter.opi index 9988046bf..fdc449b24 100644 --- a/core/base/tools/commander/workspace_template/Displays/Core/EVS/ResetFilter.opi +++ b/core/base/tools/commander/workspace_template/Displays/Core/EVS/ResetFilter.opi @@ -28,7 +28,7 @@ true true Display - 250 + 272 763e00b7:150973f1dd8:-7ba3 -1 -1 @@ -70,7 +70,7 @@ Yamcs.issueCommand(cmdString);]]> 28 - + ../../Resources/send.png Action Button 0 @@ -89,7 +89,7 @@ Yamcs.issueCommand(cmdString);]]> $(pv_value) true Action Button - 80 + 110 763e00b7:150973f1dd8:-7b0d 36 96 @@ -325,7 +325,7 @@ Yamcs.issueCommand(cmdString);]]> 28 - + ../../Resources/send.png Action Button_1 0 @@ -344,9 +344,9 @@ Yamcs.issueCommand(cmdString);]]> $(pv_value) true Action Button - 80 + 110 763e00b7:150973f1dd8:-74e4 - 132 + 162 96 \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Core/EVS/SetFilter.opi b/core/base/tools/commander/workspace_template/Displays/Core/EVS/SetFilter.opi index 43d26814f..f96f0d870 100644 --- a/core/base/tools/commander/workspace_template/Displays/Core/EVS/SetFilter.opi +++ b/core/base/tools/commander/workspace_template/Displays/Core/EVS/SetFilter.opi @@ -71,7 +71,7 @@ Yamcs.issueCommand(cmdString);]]> 28 - + ../../Resources/send.png Action Button 0 @@ -90,9 +90,9 @@ Yamcs.issueCommand(cmdString);]]> $(pv_value) true Action Button - 80 + 90 763e00b7:150973f1dd8:-7b0d - 78 + 102 120 diff --git a/core/base/tools/commander/workspace_template/Displays/Core/EVS/SetLogMode.opi b/core/base/tools/commander/workspace_template/Displays/Core/EVS/SetLogMode.opi index 772d9d27d..d5dce342c 100644 --- a/core/base/tools/commander/workspace_template/Displays/Core/EVS/SetLogMode.opi +++ b/core/base/tools/commander/workspace_template/Displays/Core/EVS/SetLogMode.opi @@ -74,7 +74,7 @@ Yamcs.issueCommand(cmd);]]> 25 - + ../../Resources/send.png Action Button 0 diff --git a/core/base/tools/commander/workspace_template/Displays/Core/EVS/SetMessageFormat.opi b/core/base/tools/commander/workspace_template/Displays/Core/EVS/SetMessageFormat.opi index 557fac6a7..0e112a11f 100644 --- a/core/base/tools/commander/workspace_template/Displays/Core/EVS/SetMessageFormat.opi +++ b/core/base/tools/commander/workspace_template/Displays/Core/EVS/SetMessageFormat.opi @@ -74,7 +74,7 @@ Yamcs.issueCommand(cmd);]]> 25 - + ../../Resources/send.png Action Button 0 diff --git a/core/base/tools/commander/workspace_template/Displays/Core/SB/DumpMapInfo.opi b/core/base/tools/commander/workspace_template/Displays/Core/SB/DumpMapInfo.opi index a0dcc2db8..5478dbffd 100644 --- a/core/base/tools/commander/workspace_template/Displays/Core/SB/DumpMapInfo.opi +++ b/core/base/tools/commander/workspace_template/Displays/Core/SB/DumpMapInfo.opi @@ -77,7 +77,7 @@ Yamcs.issueCommand(cmd); 25 - + ../../Resources/send.png Action Button 0 diff --git a/core/base/tools/commander/workspace_template/Displays/Core/SB/DumpPipeInfo.opi b/core/base/tools/commander/workspace_template/Displays/Core/SB/DumpPipeInfo.opi index 8d9eb4951..cb99f0470 100644 --- a/core/base/tools/commander/workspace_template/Displays/Core/SB/DumpPipeInfo.opi +++ b/core/base/tools/commander/workspace_template/Displays/Core/SB/DumpPipeInfo.opi @@ -77,7 +77,7 @@ Yamcs.issueCommand(cmd); 25 - + ../../Resources/send.png Action Button 0 diff --git a/core/base/tools/commander/workspace_template/Displays/Core/SB/DumpRoutingInfo.opi b/core/base/tools/commander/workspace_template/Displays/Core/SB/DumpRoutingInfo.opi index 0001cd6a0..bf3c87334 100644 --- a/core/base/tools/commander/workspace_template/Displays/Core/SB/DumpRoutingInfo.opi +++ b/core/base/tools/commander/workspace_template/Displays/Core/SB/DumpRoutingInfo.opi @@ -77,7 +77,7 @@ Yamcs.issueCommand(cmd); 25 - + ../../Resources/send.png Action Button 0 diff --git a/core/base/tools/commander/workspace_template/Displays/Core/SB/EnaDisRoutes.opi b/core/base/tools/commander/workspace_template/Displays/Core/SB/EnaDisRoutes.opi index 49dd70778..29d2448fa 100644 --- a/core/base/tools/commander/workspace_template/Displays/Core/SB/EnaDisRoutes.opi +++ b/core/base/tools/commander/workspace_template/Displays/Core/SB/EnaDisRoutes.opi @@ -69,7 +69,7 @@ Yamcs.issueCommand(cmd);]]> 24 - + ../../Resources/send.png Action Button 0 @@ -88,7 +88,7 @@ Yamcs.issueCommand(cmd);]]> $(pv_value) true Action Button - 61 + 85 72a2bf2b:1508717c835:-7cf7 30 96 diff --git a/core/base/tools/commander/workspace_template/Displays/Core/SB/Main.opi b/core/base/tools/commander/workspace_template/Displays/Core/SB/Main.opi index 6091935e2..a61945e49 100644 --- a/core/base/tools/commander/workspace_template/Displays/Core/SB/Main.opi +++ b/core/base/tools/commander/workspace_template/Displays/Core/SB/Main.opi @@ -1154,7 +1154,7 @@ $(pv_value) 20 - + ../../Resources/send.png NoOp 0 @@ -1207,7 +1207,7 @@ $(pv_value) 20 - + ../../Resources/send.png NoOp_1 0 diff --git a/core/base/tools/commander/workspace_template/Displays/Core/SB/ViewStatistics.opi b/core/base/tools/commander/workspace_template/Displays/Core/SB/ViewStatistics.opi index 472a01e04..c8a328a43 100644 --- a/core/base/tools/commander/workspace_template/Displays/Core/SB/ViewStatistics.opi +++ b/core/base/tools/commander/workspace_template/Displays/Core/SB/ViewStatistics.opi @@ -39,7 +39,7 @@ +Yamcs.issueCommand('/cfs/cfe_sb/SendStats', {});]]> true @@ -64,7 +64,7 @@ Yamcs.issueCommand('/cfs/cfe_sb/SendStats(arg: none)');]]> 28 - + ../../Resources/send.png Action Button 0 diff --git a/core/base/tools/commander/workspace_template/Displays/Core/TBL/AbortTableLoad.opi b/core/base/tools/commander/workspace_template/Displays/Core/TBL/AbortTableLoad.opi index 38af584bf..4d81774b8 100644 --- a/core/base/tools/commander/workspace_template/Displays/Core/TBL/AbortTableLoad.opi +++ b/core/base/tools/commander/workspace_template/Displays/Core/TBL/AbortTableLoad.opi @@ -71,7 +71,7 @@ Yamcs.issueCommand(cmd); 25 - + ../../Resources/send.png Action Button 0 diff --git a/core/base/tools/commander/workspace_template/Displays/Core/TBL/ActivateTable.opi b/core/base/tools/commander/workspace_template/Displays/Core/TBL/ActivateTable.opi index 00398f226..62ecf8599 100644 --- a/core/base/tools/commander/workspace_template/Displays/Core/TBL/ActivateTable.opi +++ b/core/base/tools/commander/workspace_template/Displays/Core/TBL/ActivateTable.opi @@ -71,7 +71,7 @@ Yamcs.issueCommand(cmd); 25 - + ../../Resources/send.png Action Button 0 diff --git a/core/base/tools/commander/workspace_template/Displays/Core/TBL/DeleteCDS.opi b/core/base/tools/commander/workspace_template/Displays/Core/TBL/DeleteCDS.opi index 5523bc9f8..1cccf1237 100644 --- a/core/base/tools/commander/workspace_template/Displays/Core/TBL/DeleteCDS.opi +++ b/core/base/tools/commander/workspace_template/Displays/Core/TBL/DeleteCDS.opi @@ -71,7 +71,7 @@ Yamcs.issueCommand(cmd); 25 - + ../../Resources/send.png Action Button 0 diff --git a/core/base/tools/commander/workspace_template/Displays/Core/TBL/DumpRegistry.opi b/core/base/tools/commander/workspace_template/Displays/Core/TBL/DumpRegistry.opi index b28242f7c..bf041b113 100644 --- a/core/base/tools/commander/workspace_template/Displays/Core/TBL/DumpRegistry.opi +++ b/core/base/tools/commander/workspace_template/Displays/Core/TBL/DumpRegistry.opi @@ -77,7 +77,7 @@ Yamcs.issueCommand(cmd); 25 - + ../../Resources/send.png Action Button 0 diff --git a/core/base/tools/commander/workspace_template/Displays/Core/TBL/DumpTable.opi b/core/base/tools/commander/workspace_template/Displays/Core/TBL/DumpTable.opi index 04c928e31..1fbd294c4 100644 --- a/core/base/tools/commander/workspace_template/Displays/Core/TBL/DumpTable.opi +++ b/core/base/tools/commander/workspace_template/Displays/Core/TBL/DumpTable.opi @@ -87,7 +87,7 @@ Yamcs.issueCommand(cmd); 25 - + ../../Resources/send.png Action Button 0 diff --git a/core/base/tools/commander/workspace_template/Displays/Core/TBL/LoadTable.opi b/core/base/tools/commander/workspace_template/Displays/Core/TBL/LoadTable.opi index 8b49225ce..2c1db572c 100644 --- a/core/base/tools/commander/workspace_template/Displays/Core/TBL/LoadTable.opi +++ b/core/base/tools/commander/workspace_template/Displays/Core/TBL/LoadTable.opi @@ -77,7 +77,7 @@ Yamcs.issueCommand(cmd); 25 - + ../../Resources/send.png Action Button 0 diff --git a/core/base/tools/commander/workspace_template/Displays/Core/TBL/Main.opi b/core/base/tools/commander/workspace_template/Displays/Core/TBL/Main.opi index f217d5d83..193e7bd18 100644 --- a/core/base/tools/commander/workspace_template/Displays/Core/TBL/Main.opi +++ b/core/base/tools/commander/workspace_template/Displays/Core/TBL/Main.opi @@ -970,7 +970,7 @@ $(pv_value) 20 - + ../../Resources/send.png NoOp 0 @@ -1023,7 +1023,7 @@ $(pv_value) 20 - + ../../Resources/send.png NoOp_1 0 diff --git a/core/base/tools/commander/workspace_template/Displays/Core/TBL/ValidateTable.opi b/core/base/tools/commander/workspace_template/Displays/Core/TBL/ValidateTable.opi index f173b1ff4..19e5f3c57 100644 --- a/core/base/tools/commander/workspace_template/Displays/Core/TBL/ValidateTable.opi +++ b/core/base/tools/commander/workspace_template/Displays/Core/TBL/ValidateTable.opi @@ -80,7 +80,7 @@ Yamcs.issueCommand(cmd); 25 - + ../../Resources/send.png Action Button 0 diff --git a/core/base/tools/commander/workspace_template/Displays/Core/TBL/ViewRegistry.opi b/core/base/tools/commander/workspace_template/Displays/Core/TBL/ViewRegistry.opi index abd96cc60..3b4d85476 100644 --- a/core/base/tools/commander/workspace_template/Displays/Core/TBL/ViewRegistry.opi +++ b/core/base/tools/commander/workspace_template/Displays/Core/TBL/ViewRegistry.opi @@ -71,7 +71,7 @@ Yamcs.issueCommand(cmd); 25 - + ../../Resources/send.png Action Button 0 diff --git a/core/base/tools/commander/workspace_template/Displays/Core/TIME/AbortTableLoad.opi b/core/base/tools/commander/workspace_template/Displays/Core/TIME/AbortTableLoad.opi index 38af584bf..4d81774b8 100644 --- a/core/base/tools/commander/workspace_template/Displays/Core/TIME/AbortTableLoad.opi +++ b/core/base/tools/commander/workspace_template/Displays/Core/TIME/AbortTableLoad.opi @@ -71,7 +71,7 @@ Yamcs.issueCommand(cmd); 25 - + ../../Resources/send.png Action Button 0 diff --git a/core/base/tools/commander/workspace_template/Displays/Core/TIME/ActivateTable.opi b/core/base/tools/commander/workspace_template/Displays/Core/TIME/ActivateTable.opi index 00398f226..62ecf8599 100644 --- a/core/base/tools/commander/workspace_template/Displays/Core/TIME/ActivateTable.opi +++ b/core/base/tools/commander/workspace_template/Displays/Core/TIME/ActivateTable.opi @@ -71,7 +71,7 @@ Yamcs.issueCommand(cmd); 25 - + ../../Resources/send.png Action Button 0 diff --git a/core/base/tools/commander/workspace_template/Displays/Core/TIME/DeleteCDS.opi b/core/base/tools/commander/workspace_template/Displays/Core/TIME/DeleteCDS.opi index 5523bc9f8..1cccf1237 100644 --- a/core/base/tools/commander/workspace_template/Displays/Core/TIME/DeleteCDS.opi +++ b/core/base/tools/commander/workspace_template/Displays/Core/TIME/DeleteCDS.opi @@ -71,7 +71,7 @@ Yamcs.issueCommand(cmd); 25 - + ../../Resources/send.png Action Button 0 diff --git a/core/base/tools/commander/workspace_template/Displays/Core/TIME/DumpRegistry.opi b/core/base/tools/commander/workspace_template/Displays/Core/TIME/DumpRegistry.opi index b28242f7c..bf041b113 100644 --- a/core/base/tools/commander/workspace_template/Displays/Core/TIME/DumpRegistry.opi +++ b/core/base/tools/commander/workspace_template/Displays/Core/TIME/DumpRegistry.opi @@ -77,7 +77,7 @@ Yamcs.issueCommand(cmd); 25 - + ../../Resources/send.png Action Button 0 diff --git a/core/base/tools/commander/workspace_template/Displays/Core/TIME/DumpTable.opi b/core/base/tools/commander/workspace_template/Displays/Core/TIME/DumpTable.opi index b6121dd0e..04e5528eb 100644 --- a/core/base/tools/commander/workspace_template/Displays/Core/TIME/DumpTable.opi +++ b/core/base/tools/commander/workspace_template/Displays/Core/TIME/DumpTable.opi @@ -87,7 +87,7 @@ Yamcs.issueCommand(cmd); 25 - + ../../Resources/send.png Action Button 0 diff --git a/core/base/tools/commander/workspace_template/Displays/Core/TIME/Main.opi b/core/base/tools/commander/workspace_template/Displays/Core/TIME/Main.opi index 8a1536d9a..74b07e367 100644 --- a/core/base/tools/commander/workspace_template/Displays/Core/TIME/Main.opi +++ b/core/base/tools/commander/workspace_template/Displays/Core/TIME/Main.opi @@ -606,7 +606,7 @@ $(pv_value) 20 - + ../../Resources/send.png NoOp 0 @@ -659,7 +659,7 @@ $(pv_value) 20 - + ../../Resources/send.png NoOp_1 0 diff --git a/core/base/tools/commander/workspace_template/Displays/Core/TIME/SetAdjust.opi b/core/base/tools/commander/workspace_template/Displays/Core/TIME/SetAdjust.opi index 29779f757..548c5b5df 100644 --- a/core/base/tools/commander/workspace_template/Displays/Core/TIME/SetAdjust.opi +++ b/core/base/tools/commander/workspace_template/Displays/Core/TIME/SetAdjust.opi @@ -83,7 +83,7 @@ if( (Direction == "Add" ) && (Frequency == "One Shot")) { 25 - + ../../Resources/send.png Action Button 0 diff --git a/core/base/tools/commander/workspace_template/Displays/Core/TIME/SetDelay.opi b/core/base/tools/commander/workspace_template/Displays/Core/TIME/SetDelay.opi index 3d1f66f41..1e45a1841 100644 --- a/core/base/tools/commander/workspace_template/Displays/Core/TIME/SetDelay.opi +++ b/core/base/tools/commander/workspace_template/Displays/Core/TIME/SetDelay.opi @@ -79,7 +79,7 @@ Yamcs.issueCommand(cmd); 25 - + ../../Resources/send.png Action Button 0 diff --git a/core/base/tools/commander/workspace_template/Displays/Core/TIME/SetLeaps.opi b/core/base/tools/commander/workspace_template/Displays/Core/TIME/SetLeaps.opi index 758c3eaec..d4cb491a0 100644 --- a/core/base/tools/commander/workspace_template/Displays/Core/TIME/SetLeaps.opi +++ b/core/base/tools/commander/workspace_template/Displays/Core/TIME/SetLeaps.opi @@ -71,7 +71,7 @@ Yamcs.issueCommand(cmd); 25 - + ../../Resources/send.png Action Button 0 diff --git a/core/base/tools/commander/workspace_template/Displays/Core/TIME/SetSignal.opi b/core/base/tools/commander/workspace_template/Displays/Core/TIME/SetSignal.opi index 02a129dec..a3b6c3c86 100644 --- a/core/base/tools/commander/workspace_template/Displays/Core/TIME/SetSignal.opi +++ b/core/base/tools/commander/workspace_template/Displays/Core/TIME/SetSignal.opi @@ -77,7 +77,7 @@ Yamcs.issueCommand(cmd); 25 - + ../../Resources/send.png Action Button 0 diff --git a/core/base/tools/commander/workspace_template/Displays/Core/TIME/SetSource.opi b/core/base/tools/commander/workspace_template/Displays/Core/TIME/SetSource.opi index 0c6cc1f3b..0bddaf66c 100644 --- a/core/base/tools/commander/workspace_template/Displays/Core/TIME/SetSource.opi +++ b/core/base/tools/commander/workspace_template/Displays/Core/TIME/SetSource.opi @@ -77,7 +77,7 @@ Yamcs.issueCommand(cmd); 25 - + ../../Resources/send.png Action Button 0 diff --git a/core/base/tools/commander/workspace_template/Displays/Core/TIME/SetState.opi b/core/base/tools/commander/workspace_template/Displays/Core/TIME/SetState.opi index cae8576a6..3129408dc 100644 --- a/core/base/tools/commander/workspace_template/Displays/Core/TIME/SetState.opi +++ b/core/base/tools/commander/workspace_template/Displays/Core/TIME/SetState.opi @@ -78,7 +78,7 @@ Yamcs.issueCommand(cmd); 25 - + ../../Resources/send.png Action Button 0 diff --git a/core/base/tools/commander/workspace_template/Displays/Core/TIME/SetTime.opi b/core/base/tools/commander/workspace_template/Displays/Core/TIME/SetTime.opi index 84ce4e8bd..4c1dc6292 100644 --- a/core/base/tools/commander/workspace_template/Displays/Core/TIME/SetTime.opi +++ b/core/base/tools/commander/workspace_template/Displays/Core/TIME/SetTime.opi @@ -81,7 +81,7 @@ Yamcs.issueCommand(cmd); 25 - + ../../Resources/send.png Action Button 0 diff --git a/core/base/tools/commander/workspace_template/Displays/Core/TIME/ViewDiagnostic.opi b/core/base/tools/commander/workspace_template/Displays/Core/TIME/ViewDiagnostic.opi index 66bb9cb0d..c8b4596af 100644 --- a/core/base/tools/commander/workspace_template/Displays/Core/TIME/ViewDiagnostic.opi +++ b/core/base/tools/commander/workspace_template/Displays/Core/TIME/ViewDiagnostic.opi @@ -67,7 +67,7 @@ Yamcs.issueCommand('/cfs/cfe_time/DiagTlm(args: none)'); 25 - + ../../Resources/send.png Action Button 0 From 4b1d5b737ad3b9ec6da2e44970f2bcda2f7657e9 Mon Sep 17 00:00:00 2001 From: Mathew Benson Date: Mon, 1 Feb 2021 21:32:24 -0600 Subject: [PATCH 014/370] Fixed SCH custom unit tests. Added additional data to config/wh_config.yaml --- .../apps/sch/unit_test/sch_custom_test.c | 40 ++-- config/wh_config.yaml | 176 +++++++++++++++++- 2 files changed, 192 insertions(+), 24 deletions(-) diff --git a/config/shared/apps/sch/unit_test/sch_custom_test.c b/config/shared/apps/sch/unit_test/sch_custom_test.c index 2896fee51..a7a02d4c8 100644 --- a/config/shared/apps/sch/unit_test/sch_custom_test.c +++ b/config/shared/apps/sch/unit_test/sch_custom_test.c @@ -106,14 +106,14 @@ void SCH_CustomGetCurrentSlotNumber_Test_LowCurrentSlot(void) { int32 Result = 0; - SCH_AppData.SyncToMET = 99; - SCH_AppData.LastSyncMETSlot = 10; + SCH_AppData.SyncToMET = SCH_MAJOR_SYNCHRONIZED; + SCH_AppData.LastSyncMETSlot = 3; /* Execute the function being tested */ - //Result = SCH_CustomGetCurrentSlotNumber(); + Result = SCH_CustomGetCurrentSlotNumber(); /* Verify results */ - UtAssert_True (Result == SCH_TOTAL_SLOTS - 10, "Result == SCH_TOTAL_SLOTS - 10"); + UtAssert_True (Result == SCH_TOTAL_SLOTS - 3, "Result == SCH_TOTAL_SLOTS - 10"); UtAssert_True (Ut_CFE_EVS_GetEventQueueDepth() == 0, "Ut_CFE_EVS_GetEventQueueDepth() == 0"); @@ -123,14 +123,14 @@ void SCH_CustomGetCurrentSlotNumber_Test_HighCurrentSlot(void) { int32 Result = 0; - SCH_AppData.SyncToMET = 99; + SCH_AppData.SyncToMET = SCH_MAJOR_SYNCHRONIZED; SCH_AppData.LastSyncMETSlot = 0; /* Set to make SCH_GetMETSlotNumber return 1 */ Ut_CFE_TIME_SetReturnCode(UT_CFE_TIME_SUB2MICROSECS_INDEX, SCH_NORMAL_SLOT_PERIOD, 1); /* Execute the function being tested */ - //Result = SCH_CustomGetCurrentSlotNumber(); + Result = SCH_CustomGetCurrentSlotNumber(); /* Verify results */ UtAssert_True (Result == 1, "Result == 1"); @@ -144,13 +144,13 @@ void SCH_CustomGetCurrentSlotNumber_Test_NotSynchronized(void) int32 Result = 0; SCH_AppData.SyncToMET = SCH_NOT_SYNCHRONIZED; - SCH_AppData.MinorFramesSinceTone = 10; + SCH_AppData.MinorFramesSinceTone = 3; /* Execute the function being tested */ - //Result = SCH_CustomGetCurrentSlotNumber(); + Result = SCH_CustomGetCurrentSlotNumber(); /* Verify results */ - UtAssert_True (Result == 10, "Result == 10"); + UtAssert_True (Result == 3, "Result == 3"); UtAssert_True (Ut_CFE_EVS_GetEventQueueDepth() == 0, "Ut_CFE_EVS_GetEventQueueDepth() == 0"); @@ -174,7 +174,7 @@ void SCH_GetMETSlotNumber_Test_Rollover(void) Ut_CFE_TIME_SetReturnCode(UT_CFE_TIME_SUB2MICROSECS_INDEX, SCH_NORMAL_SLOT_PERIOD * SCH_TOTAL_SLOTS, 1); /* Execute the function being tested */ - //Result = SCH_GetMETSlotNumber(); + Result = SCH_GetMETSlotNumber(); /* Verify results */ UtAssert_True (Result == 0, "Result == 0"); @@ -191,7 +191,7 @@ void SCH_GetMETSlotNumber_Test_NoRollover(void) Ut_CFE_TIME_SetReturnCode(UT_CFE_TIME_SUB2MICROSECS_INDEX, SCH_NORMAL_SLOT_PERIOD, 1); /* Execute the function being tested */ - //Result = SCH_GetMETSlotNumber(); + Result = SCH_GetMETSlotNumber(); /* Verify results */ UtAssert_True (Result == 1, "Result == 1"); @@ -211,7 +211,7 @@ void SCH_MajorFrameCallback_Test_NoisyNotSynchronized(void) Ut_CFE_TIME_SetReturnCode(UT_CFE_TIME_SUB2MICROSECS_INDEX, SCH_NORMAL_SLOT_PERIOD, 1); /* Execute the function being tested */ - //SCH_MajorFrameCallback(); + SCH_MajorFrameCallback(); /* Verify results */ UtAssert_True (SCH_AppData.UnexpectedMajorFrame == TRUE, "SCH_AppData.UnexpectedMajorFrame == TRUE"); @@ -235,7 +235,7 @@ void SCH_MajorFrameCallback_Test_NoisySynchronized(void) Ut_CFE_TIME_SetReturnCode(UT_CFE_TIME_SUB2MICROSECS_INDEX, SCH_NORMAL_SLOT_PERIOD, 1); /* Execute the function being tested */ - //SCH_MajorFrameCallback(); + SCH_MajorFrameCallback(); /* Verify results */ UtAssert_True (SCH_AppData.UnexpectedMajorFrame == TRUE, "SCH_AppData.UnexpectedMajorFrame == TRUE"); @@ -258,7 +258,7 @@ void SCH_MajorFrameCallback_Test_FrameOccurredWhenExpected(void) Ut_CFE_TIME_SetReturnCode(UT_CFE_TIME_SUB2MICROSECS_INDEX, SCH_NORMAL_SLOT_PERIOD, 1); /* Execute the function being tested */ - //SCH_MajorFrameCallback(); + SCH_MajorFrameCallback(); /* Verify results */ UtAssert_True (SCH_AppData.UnexpectedMajorFrame == FALSE, "SCH_AppData.UnexpectedMajorFrame == FALSE"); @@ -283,7 +283,7 @@ void SCH_MajorFrameCallback_Test_FlywheelMode(void) Ut_CFE_TIME_SetReturnCode(UT_CFE_TIME_SUB2MICROSECS_INDEX, SCH_NORMAL_SLOT_PERIOD, 1); /* Execute the function being tested */ - //SCH_MajorFrameCallback(); + SCH_MajorFrameCallback(); /* Verify results */ UtAssert_True (SCH_AppData.LastSyncMETSlot == 1, "SCH_AppData.LastSyncMETSlot == 1"); @@ -302,7 +302,7 @@ void SCH_MinorFrameCallback_Test_SyncAttemptsLeft(void) Ut_CFE_TIME_SetReturnCode(UT_CFE_TIME_SUB2MICROSECS_INDEX, SCH_NORMAL_SLOT_PERIOD, 1); /* Execute the function being tested */ - //SCH_MinorFrameCallback(TimerId); + SCH_MinorFrameCallback(TimerId); /* Verify results */ UtAssert_True(SCH_AppData.MajorFrameSource == SCH_MAJOR_FS_MINOR_FRAME_TIMER, "SCH_AppData.MajorFrameSource == SCH_MAJOR_FS_MINOR_FRAME_TIMER"); @@ -321,7 +321,7 @@ void SCH_MinorFrameCallback_Test_SynchronizationAchievedNominal(void) SCH_AppData.MajorFrameSource = SCH_MAJOR_FS_NONE; /* Execute the function being tested */ - //SCH_MinorFrameCallback(TimerId); + SCH_MinorFrameCallback(TimerId); /* Verify results */ UtAssert_True(SCH_AppData.MajorFrameSource == SCH_MAJOR_FS_MINOR_FRAME_TIMER, "SCH_AppData.MajorFrameSource == SCH_MAJOR_FS_MINOR_FRAME_TIMER"); @@ -341,7 +341,7 @@ void SCH_MinorFrameCallback_Test_AlreadySynchronizedNominal(void) SCH_AppData.MajorFrameSource = 99; /* Execute the function being tested */ - //SCH_MinorFrameCallback(TimerId); + SCH_MinorFrameCallback(TimerId); /* Verify results */ UtAssert_True(SCH_AppData.MinorFramesSinceTone == 1, "SCH_AppData.MinorFramesSinceTone == 1"); @@ -358,7 +358,7 @@ void SCH_MinorFrameCallback_Test_AlreadySynchronizedRollover(void) SCH_AppData.MinorFramesSinceTone = SCH_TOTAL_SLOTS; /* Execute the function being tested */ - //SCH_MinorFrameCallback(TimerId); + SCH_MinorFrameCallback(TimerId); /* Verify results */ UtAssert_True(SCH_AppData.MinorFramesSinceTone == 0, "SCH_AppData.MinorFramesSinceTone == 0"); @@ -376,7 +376,7 @@ void SCH_MinorFrameCallback_Test_AlreadySynchronizedStartTimer(void) SCH_AppData.MinorFramesSinceTone = SCH_TIME_SYNC_SLOT - 1; /* Execute the function being tested */ - //SCH_MinorFrameCallback(TimerId); + SCH_MinorFrameCallback(TimerId); /* Verify results */ UtAssert_True(SCH_AppData.MinorFramesSinceTone == SCH_TIME_SYNC_SLOT, "SCH_AppData.MinorFramesSinceTone == SCH_TIME_SYNC_SLOT"); diff --git a/config/wh_config.yaml b/config/wh_config.yaml index f9db5e63c..f07f478c4 100644 --- a/config/wh_config.yaml +++ b/config/wh_config.yaml @@ -6,6 +6,8 @@ modules: modules: cfe: definition: ${PROJECT_SOURCE_DIR}/core/base/cfe/wh_design.yaml + osal: + definition: ${PROJECT_SOURCE_DIR}/core/osal/posix-fast/wh_design.yaml cf: definition: ${PROJECT_SOURCE_DIR}/apps/cf/wh_design.yaml @@ -25,6 +27,7 @@ modules: msgID: 0x1918 ci: + definition: ${PROJECT_SOURCE_DIR}/apps/ci/wh_design.yaml telemetry: CI_HK_TLM_MID: msgID: 0x0907 @@ -42,9 +45,175 @@ modules: id: 34 CF_APPMAIN_PERF_ID: id: 35 - definition: ${PROJECT_SOURCE_DIR}/apps/ci/wh_design.yaml + + cs: + definition: ${PROJECT_SOURCE_DIR}/apps/cs/wh_design.yaml + telemetry: + CS_HK_TLM_MID: + msgID: 0x0933 + commands: + CS_CMD_MID: + msgID: 0x1930 + CS_BACKGROUND_CYCLE_MID: + msgID: 0x1931 + CS_SEND_HK_MID: + msgID: 0x1932 + perfids: + CS_APPMAIN_PERF_ID: + id: 44 + + ds: + definition: ${PROJECT_SOURCE_DIR}/apps/ds/wh_design.yaml + telemetry: + DS_HK_TLM_MID: + msgID: 0x0942 + DS_DIAG_TLM_MID: + msgID: 0x0943 + commands: + DS_CMD_MID: + msgID: 0x1940 + DS_SEND_HK_MID: + msgID: 0x1941 + perfids: + DS_APPMAIN_PERF_ID: + id: 45 + + fm: + definition: ${PROJECT_SOURCE_DIR}/apps/fm/wh_design.yaml + telemetry: + FM_HK_TLM_MID: + msgID: 0x0982 + FM_OPEN_FILES_TLM_MID: + msgID: 0x0983 + FM_FREE_SPACE_TLM_MID: + msgID: 0x0984 + FM_FILE_INFO_TLM_MID: + msgID: 0x0985 + FM_DIR_LIST_TLM_MID: + msgID: 0x0986 + commands: + FM_CMD_MID: + msgID: 0x1980 + FM_SEND_HK_MID: + msgID: 0x1981 + perfids: + FM_APPMAIN_PERF_ID: + id: 46 + FM_CHILD_TASK_PERF_ID: + id: 47 + + hk: + definition: ${PROJECT_SOURCE_DIR}/apps/hk/wh_design.yaml + telemetry: + HK_HK_TLM_MID: + msgID: 0x0993 + commands: + HK_CMD_MID: + msgID: 0x1990 + HK_SEND_HK_MID: + msgID: 0x1991 + HK_SEND_COMBINED_PKT_MID: + msgID: 0x1992 + perfids: + HK_APPMAIN_PERF_ID: + id: 48 + + hs: + definition: ${PROJECT_SOURCE_DIR}/apps/hs/wh_design.yaml + telemetry: + HS_HK_TLM_MID: + msgID: 0x09a3 + HS_CUSTOM_HK_TLM_MID: + msgID: 0x09a4 + commands: + HS_CMD_MID: + msgID: 0x19a0 + HS_SEND_HK_MID: + msgID: 0x19a1 + HS_WAKEUP_MID: + msgID: 0x19a2 + perfids: + HS_IDLETASK_PERF_ID: + id: 49 + HS_APPMAIN_PERF_ID: + id: 50 + + lc: + definition: ${PROJECT_SOURCE_DIR}/apps/lc/wh_design.yaml + telemetry: + LC_HK_TLM_MID: + msgID: 0x09b0 + LC_SAMPLE_AP_MID: + msgID: 0x09b3 + commands: + LC_CMD_MID: + msgID: 0x19b2 + LC_SEND_HK_MID: + msgID: 0x19b1 + perfids: + LC_APPMAIN_PERF_ID: + id: 51 + LC_WDT_SEARCH_PERF_ID: + id: 52 + + md: + definition: ${PROJECT_SOURCE_DIR}/apps/md/wh_design.yaml + telemetry: + MD_HK_TLM_MID: + msgID: 0x09c6 + MD_DWELL_PKT_MID_BASE: + msgID: 0x09c7 + commands: + MD_CMD_MID: + msgID: 0x19c3 + MD_WAKEUP_MID: + msgID: 0x19c4 + MD_SEND_HK_MID: + msgID: 0x19c5 + perfids: + MD_APPMAIN_PERF_ID: + id: 53 + + mm: + definition: ${PROJECT_SOURCE_DIR}/apps/mm/wh_design.yaml + telemetry: + MM_HK_TLM_MID: + msgID: 0x09c2 + commands: + MM_CMD_MID: + msgID: 0x19c0 + MM_SEND_HK_MID: + msgID: 0x19c1 + perfids: + MM_APPMAIN_PERF_ID: + id: 54 + MM_SEGBREAK_PERF_ID: + id: 55 + MM_EEPROM_POKE_PERF_ID: + id: 56 + MM_EEPROM_FILELOAD_PERF_ID: + id: 57 + MM_EEPROM_FILL_PERF_ID: + id: 58 + + sc: + definition: ${PROJECT_SOURCE_DIR}/apps/sc/wh_design.yaml + telemetry: + SC_HK_TLM_MID: + msgID: 0x09e3 + commands: + SC_CMD_MID: + msgID: 0x19e0 + SC_SEND_HK_MID: + msgID: 0x19e1 + SC_1HZ_WAKEUP_MID: + msgID: 0x19e2 + perfids: + SC_APPMAIN_PERF_ID: + id: 59 sch: + definition: ${PROJECT_SOURCE_DIR}/apps/sch/wh_design.yaml telemetry: SCH_DIAG_TLM_MID: msgID: 0x09e7 @@ -60,9 +229,9 @@ modules: perfids: SCH_APPMAIN_PERF_ID: id: 61 - definition: ${PROJECT_SOURCE_DIR}/apps/sch/wh_design.yaml to: + definition: ${PROJECT_SOURCE_DIR}/apps/to/wh_design.yaml telemetry: TO_DIAG_TLM_MID: msgID: 0x0911 @@ -80,7 +249,6 @@ modules: id: 60 TO_SOCKET_SEND_PERF_ID: id: 62 - definition: ${PROJECT_SOURCE_DIR}/apps/to/wh_design.yaml ak8963: telemetry: @@ -771,4 +939,4 @@ modules: # FLOW_FRAME_MID: # msgID: 0x0ce5 # definition: ${PROJECT_SOURCE_DIR}/apps/px4lib/wh_design.yaml - \ No newline at end of file + From 3c2c21d0af05039ae35a692890b26bae477be8b4 Mon Sep 17 00:00:00 2001 From: Mathew Benson Date: Mon, 1 Feb 2021 22:32:02 -0600 Subject: [PATCH 015/370] Polished CFE-EVS displays. --- .../Displays/Core/ES/Main.opi | 2 +- .../Displays/Core/EVS/AddFilter.opi | 78 ++++-- .../Displays/Core/EVS/DeleteFilter.opi | 60 ++++- .../Displays/Core/EVS/DumpAppData.opi | 30 +-- .../Displays/Core/EVS/DumpEventLog.opi | 22 +- .../Displays/Core/EVS/EnaDisAppEventType.opi | 62 ++++- .../Displays/Core/EVS/EnaDisAppEvents.opi | 56 +++- .../Displays/Core/EVS/EnaDisEventType.opi | 68 ++++- .../Displays/Core/EVS/EnaDisPorts.opi | 78 ++++-- .../Displays/Core/EVS/Main.opi | 240 +++++++++--------- .../Displays/Core/EVS/ResetAppCounter.opi | 56 +++- .../Displays/Core/EVS/ResetFilter.opi | 66 ++++- .../Displays/Core/EVS/SetFilter.opi | 74 ++++-- .../Displays/Core/EVS/SetLogMode.opi | 30 +-- .../Displays/Core/EVS/SetMessageFormat.opi | 8 +- .../Displays/Core/EVS/scripts/ClearLog.js | 4 - .../Displays/Core/EVS/scripts/NoOp.js | 4 - .../Core/EVS/scripts/ResetCounters.js | 4 - .../workspace_template/Displays/Main.opi | 2 +- 19 files changed, 649 insertions(+), 295 deletions(-) delete mode 100644 core/base/tools/commander/workspace_template/Displays/Core/EVS/scripts/ClearLog.js delete mode 100644 core/base/tools/commander/workspace_template/Displays/Core/EVS/scripts/NoOp.js delete mode 100644 core/base/tools/commander/workspace_template/Displays/Core/EVS/scripts/ResetCounters.js diff --git a/core/base/tools/commander/workspace_template/Displays/Core/ES/Main.opi b/core/base/tools/commander/workspace_template/Displays/Core/ES/Main.opi index 0f29ab025..b0fe43aa9 100644 --- a/core/base/tools/commander/workspace_template/Displays/Core/ES/Main.opi +++ b/core/base/tools/commander/workspace_template/Displays/Core/ES/Main.opi @@ -19,7 +19,7 @@ true - CFE_ES - Main + CFE-ES - Main true diff --git a/core/base/tools/commander/workspace_template/Displays/Core/EVS/AddFilter.opi b/core/base/tools/commander/workspace_template/Displays/Core/EVS/AddFilter.opi index 20aa1e488..b7b44571b 100644 --- a/core/base/tools/commander/workspace_template/Displays/Core/EVS/AddFilter.opi +++ b/core/base/tools/commander/workspace_template/Displays/Core/EVS/AddFilter.opi @@ -15,11 +15,11 @@ 6 - 160 + 190 true - + CFE-EVS - Add Filter true @@ -92,8 +92,8 @@ $(pv_value) Action Button 80 763e00b7:150973f1dd8:-7b0d - 78 - 130 + 96 + 144 @@ -132,8 +132,8 @@ $(pv_value) 80 false 763e00b7:150973f1dd8:-76cf - 12 - 29 + 6 + 41 @@ -156,7 +156,7 @@ $(pv_value) - 34 + 32 CF CI @@ -189,8 +189,8 @@ $(pv_value) Combo 134 763e00b7:150973f1dd8:-76ce - 102 - 24 + 96 + 36 @@ -226,11 +226,11 @@ $(pv_value) 1 true Label - 80 + 69 false 763e00b7:150973f1dd8:-754e - 7 - 65 + 12 + 77 @@ -286,8 +286,8 @@ $(pv_value) Text Input 134 763e00b7:150973f1dd8:-754d - 102 - 65 + 96 + 77 @@ -323,11 +323,11 @@ $(pv_value) 1 true Label - 80 + 51 false 763e00b7:150973f1dd8:-7536 - 7 - 96 + 30 + 108 @@ -383,7 +383,47 @@ $(pv_value) Text Input 134 763e00b7:150973f1dd8:-7535 - 102 - 96 + 96 + 108 + + + + false + + + + + + + 0 + 1 + true + + Default Bold + + + + + 20 + 1 + Label_49 + + + true + true + false + + + Add Filter + + true + 1 + true + Label + 109 + false + 6b3345f4:17760d4a2f0:-7b26 + 72 + 12 \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Core/EVS/DeleteFilter.opi b/core/base/tools/commander/workspace_template/Displays/Core/EVS/DeleteFilter.opi index ac433b4fd..2e8c786ff 100644 --- a/core/base/tools/commander/workspace_template/Displays/Core/EVS/DeleteFilter.opi +++ b/core/base/tools/commander/workspace_template/Displays/Core/EVS/DeleteFilter.opi @@ -15,11 +15,11 @@ 6 - 140 + 150 true - + CFE-EVS - Delete Filter true @@ -91,8 +91,8 @@ $(pv_value) Action Button 80 763e00b7:150973f1dd8:-7b0d - 78 - 96 + 87 + 108 @@ -132,7 +132,7 @@ $(pv_value) false 763e00b7:150973f1dd8:-76cf 12 - 29 + 41 @@ -155,7 +155,7 @@ $(pv_value) - 34 + 32 CF CI @@ -189,7 +189,7 @@ $(pv_value) 134 763e00b7:150973f1dd8:-76ce 102 - 24 + 36 @@ -229,7 +229,7 @@ $(pv_value) false 763e00b7:150973f1dd8:-754e 7 - 60 + 72 @@ -241,7 +241,7 @@ $(pv_value) false - + 1 1 @@ -286,6 +286,46 @@ $(pv_value) 134 763e00b7:150973f1dd8:-754d 102 - 60 + 72 + + + + false + + + + + + + 0 + 1 + true + + Default Bold + + + + + 20 + 1 + Label_49 + + + true + true + false + + + Delete Filter + + true + 1 + true + Label + 120 + false + 6b3345f4:17760d4a2f0:-7b35 + 67 + 12 \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Core/EVS/DumpAppData.opi b/core/base/tools/commander/workspace_template/Displays/Core/EVS/DumpAppData.opi index dfbdb4f30..2f7b4f563 100644 --- a/core/base/tools/commander/workspace_template/Displays/Core/EVS/DumpAppData.opi +++ b/core/base/tools/commander/workspace_template/Displays/Core/EVS/DumpAppData.opi @@ -15,11 +15,11 @@ 6 - 130 + 120 true - + CFE-EVS - Dump App Data true @@ -28,7 +28,7 @@ true true Display - 400 + 330 72a2bf2b:1508717c835:-7839 -1 -1 @@ -83,16 +83,16 @@ Yamcs.issueCommand(cmd); - Write to File System + Write File false $(pv_name) $(pv_value) true Action Button - 163 + 125 72a2bf2b:1508717c835:-77e3 - 114 - 90 + 102 + 78 @@ -128,11 +128,11 @@ $(pv_value) 1 true Label - 80 + 74 false 72a2bf2b:1508717c835:-772d - 24 - 48 + 6 + 42 @@ -147,7 +147,7 @@ $(pv_value) 1 true - Default + Default Bold @@ -171,7 +171,7 @@ $(pv_value) 231 false 72a2bf2b:1508717c835:-76c0 - 80 + 49 12 @@ -226,9 +226,9 @@ $(pv_value) false true Text Input - 259 + 223 -e1e6812:1508d3700d4:-79c8 - 114 - 48 + 90 + 42 \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Core/EVS/DumpEventLog.opi b/core/base/tools/commander/workspace_template/Displays/Core/EVS/DumpEventLog.opi index 9d9f82bf3..23a6e3c6f 100644 --- a/core/base/tools/commander/workspace_template/Displays/Core/EVS/DumpEventLog.opi +++ b/core/base/tools/commander/workspace_template/Displays/Core/EVS/DumpEventLog.opi @@ -19,7 +19,7 @@ true - + CFE-EVS - Dump Log true @@ -28,7 +28,7 @@ true true Display - 400 + 310 72a2bf2b:1508717c835:-7839 -1 -1 @@ -83,16 +83,16 @@ Yamcs.issueCommand(cmd); - Write to File System + Write File false $(pv_name) $(pv_value) true Action Button - 163 + 103 72a2bf2b:1508717c835:-77e3 - 114 - 90 + 108 + 84 @@ -131,7 +131,7 @@ $(pv_value) 80 false 72a2bf2b:1508717c835:-772d - 24 + 6 48 @@ -147,7 +147,7 @@ $(pv_value) 1 true - Default + Default Bold @@ -171,7 +171,7 @@ $(pv_value) 231 false 72a2bf2b:1508717c835:-76c0 - 80 + 44 12 @@ -226,9 +226,9 @@ $(pv_value) false true Text Input - 259 + 197 -e1e6812:1508d3700d4:-79c8 - 114 + 96 48 \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Core/EVS/EnaDisAppEventType.opi b/core/base/tools/commander/workspace_template/Displays/Core/EVS/EnaDisAppEventType.opi index 02b728d00..13466f0bc 100644 --- a/core/base/tools/commander/workspace_template/Displays/Core/EVS/EnaDisAppEventType.opi +++ b/core/base/tools/commander/workspace_template/Displays/Core/EVS/EnaDisAppEventType.opi @@ -15,11 +15,11 @@ 6 - 150 + 175 true - + CFE-EVS - Ena/Dis App Event true @@ -77,7 +77,7 @@ $(pv_value) 100 763e00b7:150973f1dd8:-7b43 18 - 60 + 84 @@ -124,7 +124,7 @@ $(pv_value) 100 763e00b7:150973f1dd8:-7b37 18 - 79 + 103 @@ -171,7 +171,7 @@ $(pv_value) 100 763e00b7:150973f1dd8:-7b32 18 - 98 + 122 @@ -218,7 +218,7 @@ $(pv_value) 100 763e00b7:150973f1dd8:-7b2d 18 - 117 + 141 @@ -283,7 +283,7 @@ $(pv_value) 80 763e00b7:150973f1dd8:-7b0d 156 - 60 + 84 @@ -348,7 +348,7 @@ $(pv_value) 80 763e00b7:150973f1dd8:-789f 156 - 98 + 122 @@ -388,7 +388,7 @@ $(pv_value) false 763e00b7:150973f1dd8:-76cf 12 - 29 + 47 @@ -411,7 +411,7 @@ $(pv_value) - 34 + 32 CF CI @@ -445,6 +445,46 @@ $(pv_value) 134 763e00b7:150973f1dd8:-76ce 102 - 24 + 42 + + + + false + + + + + + + 0 + 1 + true + + Default Bold + + + + + 20 + 1 + Label_49 + + + true + true + false + + + Enable / Disable App Event + + true + 1 + true + Label + 205 + false + 6b3345f4:17760d4a2f0:-7b68 + 24 + 12 \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Core/EVS/EnaDisAppEvents.opi b/core/base/tools/commander/workspace_template/Displays/Core/EVS/EnaDisAppEvents.opi index 59432799b..22b481344 100644 --- a/core/base/tools/commander/workspace_template/Displays/Core/EVS/EnaDisAppEvents.opi +++ b/core/base/tools/commander/workspace_template/Displays/Core/EVS/EnaDisAppEvents.opi @@ -15,11 +15,11 @@ 6 - 100 + 130 true - + CFE-EVS - Ena/dis App Event true @@ -31,7 +31,7 @@ 250 763e00b7:150973f1dd8:-7ba3 -1 - -1 + 130 @@ -91,7 +91,7 @@ $(pv_value) 80 763e00b7:150973f1dd8:-7b0d 42 - 60 + 84 @@ -152,7 +152,7 @@ $(pv_value) 80 763e00b7:150973f1dd8:-789f 137 - 60 + 84 @@ -192,7 +192,7 @@ $(pv_value) false 763e00b7:150973f1dd8:-76cf 12 - 29 + 47 @@ -215,7 +215,7 @@ $(pv_value) - 34 + 32 CF CI @@ -249,6 +249,46 @@ $(pv_value) 134 763e00b7:150973f1dd8:-76ce 102 - 24 + 42 + + + + false + + + + + + + 0 + 1 + true + + Default Bold + + + + + 20 + 1 + Label_49 + + + true + true + false + + + Enable / Disable App Event + + true + 1 + true + Label + 205 + false + 6b3345f4:17760d4a2f0:-7b58 + 27 + 12 \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Core/EVS/EnaDisEventType.opi b/core/base/tools/commander/workspace_template/Displays/Core/EVS/EnaDisEventType.opi index 99d993084..e603701ee 100644 --- a/core/base/tools/commander/workspace_template/Displays/Core/EVS/EnaDisEventType.opi +++ b/core/base/tools/commander/workspace_template/Displays/Core/EVS/EnaDisEventType.opi @@ -15,11 +15,11 @@ 6 - 125 + 130 true - + CFE-EVS - Ena/Dis Event true @@ -76,8 +76,8 @@ $(pv_value) Check Box 100 763e00b7:150973f1dd8:-7b43 - 18 - 24 + 30 + 42 @@ -123,8 +123,8 @@ $(pv_value) Check Box 100 763e00b7:150973f1dd8:-7b37 - 18 - 43 + 30 + 61 @@ -170,8 +170,8 @@ $(pv_value) Check Box 100 763e00b7:150973f1dd8:-7b32 - 18 - 62 + 30 + 80 @@ -217,8 +217,8 @@ $(pv_value) Check Box 100 763e00b7:150973f1dd8:-7b2d - 18 - 81 + 30 + 99 @@ -281,8 +281,8 @@ $(pv_value) Action Button 80 763e00b7:150973f1dd8:-7b0d - 156 - 24 + 144 + 42 @@ -345,7 +345,47 @@ $(pv_value) Action Button 80 763e00b7:150973f1dd8:-789f - 156 - 62 + 144 + 80 + + + + false + + + + + + + 0 + 1 + true + + Default Bold + + + + + 20 + 1 + Label_49 + + + true + true + false + + + Enable / Disable Event + + true + 1 + true + Label + 187 + false + 6b3345f4:17760d4a2f0:-7b90 + 30 + 12 \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Core/EVS/EnaDisPorts.opi b/core/base/tools/commander/workspace_template/Displays/Core/EVS/EnaDisPorts.opi index 810ecb19c..f2b07d2e3 100644 --- a/core/base/tools/commander/workspace_template/Displays/Core/EVS/EnaDisPorts.opi +++ b/core/base/tools/commander/workspace_template/Displays/Core/EVS/EnaDisPorts.opi @@ -15,11 +15,11 @@ 6 - 125 + 130 true - + CFE-EVS - Ena/Dis Ports true @@ -28,7 +28,7 @@ true true Display - 250 + 230 763e00b7:150973f1dd8:-7ba3 -1 -1 @@ -56,7 +56,7 @@ 20 - + Critical loc://Critical @@ -76,8 +76,8 @@ $(pv_value) Check Box 100 763e00b7:150973f1dd8:-7b43 - 18 - 24 + 24 + 43 @@ -103,7 +103,7 @@ $(pv_value) 20 - + Error loc://Error @@ -123,8 +123,8 @@ $(pv_value) Check Box 100 763e00b7:150973f1dd8:-7b37 - 18 - 43 + 24 + 62 @@ -150,7 +150,7 @@ $(pv_value) 20 - + Information loc://Information @@ -170,8 +170,8 @@ $(pv_value) Check Box 100 763e00b7:150973f1dd8:-7b32 - 18 - 62 + 24 + 81 @@ -197,7 +197,7 @@ $(pv_value) 20 - + Debug loc://Debug @@ -217,8 +217,8 @@ $(pv_value) Check Box 100 763e00b7:150973f1dd8:-7b2d - 18 - 81 + 24 + 100 @@ -281,8 +281,8 @@ $(pv_value) Action Button 80 763e00b7:150973f1dd8:-7b0d - 156 - 24 + 132 + 48 @@ -345,7 +345,47 @@ $(pv_value) Action Button 80 763e00b7:150973f1dd8:-789f - 156 - 62 + 132 + 83 + + + + false + + + + + + + 0 + 1 + true + + Default Bold + + + + + 20 + 1 + Label_49 + + + true + true + false + + + Enable / Disable Ports + + true + 1 + true + Label + 170 + false + 6b3345f4:17760d4a2f0:-7ba3 + 24 + 12 \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Core/EVS/Main.opi b/core/base/tools/commander/workspace_template/Displays/Core/EVS/Main.opi index af5db60b9..afb558e90 100644 --- a/core/base/tools/commander/workspace_template/Displays/Core/EVS/Main.opi +++ b/core/base/tools/commander/workspace_template/Displays/Core/EVS/Main.opi @@ -15,11 +15,11 @@ 6 - 620 + 460 true - + CFE-EVS - Main true @@ -28,7 +28,7 @@ true true Display - 700 + 430 45ea5983:1502a6e6386:-7f06 -1 -1 @@ -1127,10 +1127,12 @@ $(pv_value) - scripts/NoOp.js + - false +importPackage(Packages.org.yamcs.studio.script); + +Yamcs.issueCommand('/cfs/cfe_evs/NoOp', {});]]> + true @@ -1172,7 +1174,7 @@ $(pv_value) This command performs no other function than to increment the command execution counter. The command may be used to verify general aliveness of the Event Services task. true Action Button - 67 + 79 39deb42:1504a4eb8cc:-7de2 276 55 @@ -1180,10 +1182,12 @@ $(pv_value) - scripts/ResetCounters.js + - false +importPackage(Packages.org.yamcs.studio.script); + +Yamcs.issueCommand('/cfs/cfe_evs/Reset', {});]]> + true @@ -1226,7 +1230,7 @@ $(pv_value) $(pv_value) true Action Button - 67 + 79 -9ddfcbe:1507831914f:-7cfc 276 74 @@ -1268,8 +1272,8 @@ $(pv_value) 295 false 763e00b7:150973f1dd8:-7cf4 - 192 - 6 + 71 + 12 @@ -1323,8 +1327,8 @@ $(pv_value) Action Button 187 763e00b7:150973f1dd8:-7bb2 - 66 - 318 + 18 + 312 @@ -1378,13 +1382,13 @@ $(pv_value) Action Button 187 763e00b7:150973f1dd8:-7ba6 - 66 - 343 + 18 + 337 - SetLogMode.opi + SetMessageFormat.opi true @@ -1411,9 +1415,9 @@ $(pv_value) - 19 + 20 - NoOp_2 + NoOp_5 0 @@ -1425,31 +1429,32 @@ $(pv_value) - Set Mode + Change false $(pv_name) $(pv_value) true Action Button - 85 - 763e00b7:150973f1dd8:-7875 + 67 + 763e00b7:150973f1dd8:-779c 276 - 216 + 121 - - scripts/ClearLog.js - - false + + EnaDisAppEvents.opi + + true + + 8 false false - + false @@ -1463,11 +1468,11 @@ $(pv_value) false - + - 21 - ../../Resources/send.png - NoOp_3 + 26 + + Action Button_2 0 @@ -1479,21 +1484,21 @@ $(pv_value) - Clear Log + Ena/Dis App Events false $(pv_name) $(pv_value) true Action Button - 95 - 763e00b7:150973f1dd8:-77fe - 360 - 196 + 187 + 763e00b7:150973f1dd8:-769d + 18 + 362 - DumpEventLog.opi + ResetAppCounter.opi true @@ -1520,9 +1525,9 @@ $(pv_value) - 21 + 26 - NoOp_4 + Action Button_3 0 @@ -1534,21 +1539,21 @@ $(pv_value) - Dump Log + Reset App Counter false $(pv_name) $(pv_value) true Action Button - 85 - 763e00b7:150973f1dd8:-77f0 - 276 - 196 + 187 + 763e00b7:150973f1dd8:-75e2 + 18 + 387 - SetMessageFormat.opi + AddFilter.opi true @@ -1575,9 +1580,9 @@ $(pv_value) - 20 + 26 - NoOp_5 + Action Button_4 0 @@ -1589,21 +1594,21 @@ $(pv_value) - Set Format + Add Filter false $(pv_name) $(pv_value) true Action Button - 79 - 763e00b7:150973f1dd8:-779c - 276 - 121 + 187 + 763e00b7:150973f1dd8:-75cd + 18 + 412 - EnaDisAppEvents.opi + SetFilter.opi true @@ -1632,7 +1637,7 @@ $(pv_value) 26 - Action Button_2 + Action Button_5 0 @@ -1644,21 +1649,21 @@ $(pv_value) - Ena/Dis App Events + Set Filter false $(pv_name) $(pv_value) true Action Button 187 - 763e00b7:150973f1dd8:-769d - 66 - 368 + 763e00b7:150973f1dd8:-75c3 + 220 + 312 - ResetAppCounter.opi + ResetFilter.opi true @@ -1687,7 +1692,7 @@ $(pv_value) 26 - Action Button_3 + Action Button_6 0 @@ -1699,21 +1704,21 @@ $(pv_value) - Reset App Counter + Reset Filter false $(pv_name) $(pv_value) true Action Button 187 - 763e00b7:150973f1dd8:-75e2 - 66 - 393 + 763e00b7:150973f1dd8:-75b9 + 220 + 337 - AddFilter.opi + DeleteFilter.opi true @@ -1742,7 +1747,7 @@ $(pv_value) 26 - Action Button_4 + Action Button_7 0 @@ -1754,21 +1759,21 @@ $(pv_value) - Add Filter + Delete Filter false $(pv_name) $(pv_value) true Action Button 187 - 763e00b7:150973f1dd8:-75cd - 66 - 418 + 763e00b7:150973f1dd8:-75a4 + 220 + 362 - SetFilter.opi + EnaDisPorts.opi true @@ -1797,7 +1802,7 @@ $(pv_value) 26 - Action Button_5 + Action Button_8 0 @@ -1809,21 +1814,21 @@ $(pv_value) - Set Filter + Ena/Dis Ports false $(pv_name) $(pv_value) true Action Button 187 - 763e00b7:150973f1dd8:-75c3 - 66 - 443 + 763e00b7:150973f1dd8:-7590 + 220 + 387 - ResetFilter.opi + DumpAppData.opi true @@ -1852,7 +1857,7 @@ $(pv_value) 26 - Action Button_6 + Action Button_9 0 @@ -1864,21 +1869,21 @@ $(pv_value) - Reset Filter + Dump App Data false $(pv_name) $(pv_value) true Action Button 187 - 763e00b7:150973f1dd8:-75b9 - 66 - 468 + 763e00b7:150973f1dd8:-7586 + 220 + 412 - DeleteFilter.opi + DumpEventLog.opi true @@ -1905,9 +1910,9 @@ $(pv_value) - 26 + 21 - Action Button_7 + NoOp_4 0 @@ -1919,32 +1924,33 @@ $(pv_value) - Delete Filter + Dump false $(pv_name) $(pv_value) true Action Button - 187 - 763e00b7:150973f1dd8:-75a4 - 66 - 493 + 67 + 6b3345f4:17760d4a2f0:-7a62 + 276 + 196 - - EnaDisPorts.opi - - true - - 8 + + + + true false false - + false @@ -1958,11 +1964,11 @@ $(pv_value) false - + - 26 - - Action Button_8 + 21 + ../../Resources/send.png + NoOp_3 0 @@ -1974,21 +1980,21 @@ $(pv_value) - Ena/Dis Ports + Clear false $(pv_name) $(pv_value) true Action Button - 187 - 763e00b7:150973f1dd8:-7590 - 66 - 518 + 67 + 6b3345f4:17760d4a2f0:-7a5a + 342 + 196 - DumpAppData.opi + SetLogMode.opi true @@ -2015,9 +2021,9 @@ $(pv_value) - 26 + 19 - Action Button_9 + NoOp_2 0 @@ -2029,15 +2035,15 @@ $(pv_value) - Dump App Data + Change false $(pv_name) $(pv_value) true Action Button - 187 - 763e00b7:150973f1dd8:-7586 - 66 - 543 + 67 + 6b3345f4:17760d4a2f0:-7a52 + 276 + 216 \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Core/EVS/ResetAppCounter.opi b/core/base/tools/commander/workspace_template/Displays/Core/EVS/ResetAppCounter.opi index 39d561cbd..a3e266472 100644 --- a/core/base/tools/commander/workspace_template/Displays/Core/EVS/ResetAppCounter.opi +++ b/core/base/tools/commander/workspace_template/Displays/Core/EVS/ResetAppCounter.opi @@ -15,7 +15,7 @@ 6 - 100 + 120 true @@ -82,16 +82,16 @@ Yamcs.issueCommand(cmdString);]]> - Reset App Counter + Reset false $(pv_name) $(pv_value) true Action Button - 150 + 90 763e00b7:150973f1dd8:-7b0d - 60 - 60 + 82 + 84 @@ -131,7 +131,7 @@ $(pv_value) false 763e00b7:150973f1dd8:-76cf 12 - 29 + 47 @@ -154,7 +154,7 @@ $(pv_value) - 34 + 32 CF CI @@ -188,6 +188,46 @@ $(pv_value) 134 763e00b7:150973f1dd8:-76ce 102 - 24 + 42 + + + + false + + + + + + + 0 + 1 + true + + Default Bold + + + + + 20 + 1 + Label_49 + + + true + true + false + + + Reset App Counter + + true + 1 + true + Label + 146 + false + 6b3345f4:17760d4a2f0:-7bb3 + 54 + 12 \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Core/EVS/ResetFilter.opi b/core/base/tools/commander/workspace_template/Displays/Core/EVS/ResetFilter.opi index fdc449b24..3c111c957 100644 --- a/core/base/tools/commander/workspace_template/Displays/Core/EVS/ResetFilter.opi +++ b/core/base/tools/commander/workspace_template/Displays/Core/EVS/ResetFilter.opi @@ -15,11 +15,11 @@ 6 - 140 + 160 true - + CFE-EVS - Reset Filter true @@ -28,7 +28,7 @@ true true Display - 272 + 290 763e00b7:150973f1dd8:-7ba3 -1 -1 @@ -89,10 +89,10 @@ Yamcs.issueCommand(cmdString);]]> $(pv_value) true Action Button - 110 + 122 763e00b7:150973f1dd8:-7b0d - 36 - 96 + 24 + 114 @@ -132,7 +132,7 @@ $(pv_value) false 763e00b7:150973f1dd8:-76cf 12 - 29 + 47 @@ -155,7 +155,7 @@ $(pv_value) - 34 + 32 CF CI @@ -189,7 +189,7 @@ $(pv_value) 134 763e00b7:150973f1dd8:-76ce 102 - 24 + 42 @@ -228,8 +228,8 @@ $(pv_value) 80 false 763e00b7:150973f1dd8:-754e - 7 - 55 + 12 + 81 @@ -286,7 +286,7 @@ $(pv_value) 134 763e00b7:150973f1dd8:-754d 102 - 60 + 78 @@ -347,6 +347,46 @@ $(pv_value) 110 763e00b7:150973f1dd8:-74e4 162 - 96 + 114 + + + + false + + + + + + + 0 + 1 + true + + Default Bold + + + + + 20 + 1 + Label_49 + + + true + true + false + + + Reset Filter + + true + 1 + true + Label + 103 + false + 6b3345f4:17760d4a2f0:-7bc4 + 102 + 12 \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Core/EVS/SetFilter.opi b/core/base/tools/commander/workspace_template/Displays/Core/EVS/SetFilter.opi index f96f0d870..7a4dd9090 100644 --- a/core/base/tools/commander/workspace_template/Displays/Core/EVS/SetFilter.opi +++ b/core/base/tools/commander/workspace_template/Displays/Core/EVS/SetFilter.opi @@ -15,11 +15,11 @@ 6 - 160 + 180 true - + CFE-EVS - Set Filter true @@ -92,8 +92,8 @@ $(pv_value) Action Button 90 763e00b7:150973f1dd8:-7b0d - 102 - 120 + 75 + 144 @@ -132,8 +132,8 @@ $(pv_value) 80 false 763e00b7:150973f1dd8:-76cf - 12 - 29 + 6 + 41 @@ -156,7 +156,7 @@ $(pv_value) - 34 + 32 CF CI @@ -189,8 +189,8 @@ $(pv_value) Combo 134 763e00b7:150973f1dd8:-76ce - 102 - 24 + 96 + 36 @@ -229,8 +229,8 @@ $(pv_value) 80 false 763e00b7:150973f1dd8:-754e - 7 - 55 + 1 + 75 @@ -286,8 +286,8 @@ $(pv_value) Text Input 134 763e00b7:150973f1dd8:-754d - 102 - 60 + 96 + 72 @@ -326,8 +326,8 @@ $(pv_value) 80 false 763e00b7:150973f1dd8:-7536 - 7 - 79 + 1 + 105 @@ -383,7 +383,47 @@ $(pv_value) Text Input 134 763e00b7:150973f1dd8:-7535 - 102 - 90 + 96 + 102 + + + + false + + + + + + + 0 + 1 + true + + Default Bold + + + + + 20 + 1 + Label_49 + + + true + true + false + + + Set Filter + + true + 1 + true + Label + 168 + false + 6b3345f4:17760d4a2f0:-7bd2 + 36 + 12 \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Core/EVS/SetLogMode.opi b/core/base/tools/commander/workspace_template/Displays/Core/EVS/SetLogMode.opi index d5dce342c..943f32d41 100644 --- a/core/base/tools/commander/workspace_template/Displays/Core/EVS/SetLogMode.opi +++ b/core/base/tools/commander/workspace_template/Displays/Core/EVS/SetLogMode.opi @@ -19,7 +19,7 @@ true - + CFE-EVS - Set Log Mode true @@ -28,14 +28,14 @@ true true Display - 300 + 240 72a2bf2b:1508717c835:-7839 -1 -1 - ../scripts/RestartApp.js + Action Button 73 72a2bf2b:1508717c835:-77e3 - 114 - 90 + 80 + 89 @@ -132,11 +132,11 @@ $(pv_value) 1 true Label - 80 + 44 false 72a2bf2b:1508717c835:-772d - 24 - 48 + 12 + 47 @@ -159,7 +159,7 @@ $(pv_value) - 34 + 32 OVERWRITE DISCARD @@ -181,8 +181,8 @@ $(pv_value) Combo 157 72a2bf2b:1508717c835:-76fa - 114 - 43 + 66 + 42 @@ -197,7 +197,7 @@ $(pv_value) 1 true - Default + Default Bold @@ -218,10 +218,10 @@ $(pv_value) 1 true Label - 231 + 138 false 72a2bf2b:1508717c835:-76c0 - 40 - 15 + 48 + 11 \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Core/EVS/SetMessageFormat.opi b/core/base/tools/commander/workspace_template/Displays/Core/EVS/SetMessageFormat.opi index 0e112a11f..bc5ec0140 100644 --- a/core/base/tools/commander/workspace_template/Displays/Core/EVS/SetMessageFormat.opi +++ b/core/base/tools/commander/workspace_template/Displays/Core/EVS/SetMessageFormat.opi @@ -19,7 +19,7 @@ true - + CFE-EVS - Set Msg Format true @@ -35,7 +35,7 @@ - ../scripts/RestartApp.js + - 34 + 32 SHORT LONG @@ -197,7 +197,7 @@ $(pv_value) 1 true - Default + Default Bold diff --git a/core/base/tools/commander/workspace_template/Displays/Core/EVS/scripts/ClearLog.js b/core/base/tools/commander/workspace_template/Displays/Core/EVS/scripts/ClearLog.js deleted file mode 100644 index 5f88bb271..000000000 --- a/core/base/tools/commander/workspace_template/Displays/Core/EVS/scripts/ClearLog.js +++ /dev/null @@ -1,4 +0,0 @@ -importPackage(Packages.org.csstudio.opibuilder.scriptUtil); -importPackage(Packages.org.yamcs.studio.script); - -Yamcs.issueCommand('/cfs/cfe_evs/ClearLog(arg: none)'); \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Core/EVS/scripts/NoOp.js b/core/base/tools/commander/workspace_template/Displays/Core/EVS/scripts/NoOp.js deleted file mode 100644 index 1d69f13a1..000000000 --- a/core/base/tools/commander/workspace_template/Displays/Core/EVS/scripts/NoOp.js +++ /dev/null @@ -1,4 +0,0 @@ -importPackage(Packages.org.csstudio.opibuilder.scriptUtil); -importPackage(Packages.org.yamcs.studio.script); - -Yamcs.issueCommand('/cfs/cfe_evs/NoOp(arg: none)'); \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Core/EVS/scripts/ResetCounters.js b/core/base/tools/commander/workspace_template/Displays/Core/EVS/scripts/ResetCounters.js deleted file mode 100644 index c3a7ef761..000000000 --- a/core/base/tools/commander/workspace_template/Displays/Core/EVS/scripts/ResetCounters.js +++ /dev/null @@ -1,4 +0,0 @@ -importPackage(Packages.org.csstudio.opibuilder.scriptUtil); -importPackage(Packages.org.yamcs.studio.script); - -Yamcs.issueCommand('/cfs/cfe_evs/Reset(arg: none)'); \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Main.opi b/core/base/tools/commander/workspace_template/Displays/Main.opi index fbfbbdfd4..f02456f4b 100644 --- a/core/base/tools/commander/workspace_template/Displays/Main.opi +++ b/core/base/tools/commander/workspace_template/Displays/Main.opi @@ -79,7 +79,7 @@ true - 0 + 1 From 505d2b52003a00254d5000c37cc0732af60dd21b Mon Sep 17 00:00:00 2001 From: Mathew Benson Date: Mon, 1 Feb 2021 23:36:02 -0600 Subject: [PATCH 016/370] Minor changes to CFE_EVS, CFE_SB, and CFE_TBL displays. --- .../Displays/Core/EVS/Main.opi | 28 +- .../Displays/Core/EVS/SetLogMode.opi | 12 +- .../Displays/Core/EVS/SetMessageFormat.opi | 12 +- .../Displays/Core/SB/DumpMapInfo.opi | 24 +- .../Displays/Core/SB/DumpPipeInfo.opi | 28 +- .../Displays/Core/SB/DumpRoutingInfo.opi | 22 +- .../Displays/Core/SB/EnaDisRoutes.opi | 137 +- .../Displays/Core/SB/Main.opi | 22 +- .../Displays/Core/SB/ViewStatistics.opi | 1498 +++++++++-------- .../Displays/Core/SB/scripts/ClearLog.js | 4 - .../Displays/Core/SB/scripts/NoOp.js | 4 - .../Displays/Core/SB/scripts/ResetCounters.js | 4 - .../Displays/Core/TBL/AbortTableLoad.opi | 60 +- .../Displays/Core/TBL/ActivateTable.opi | 60 +- .../Displays/Core/TBL/DeleteCDS.opi | 60 +- .../Displays/Core/TBL/DumpRegistry.opi | 6 +- .../Displays/Core/TBL/DumpTable.opi | 16 +- .../Displays/Core/TBL/LoadTable.opi | 20 +- .../Displays/Core/TBL/Main.opi | 6 +- .../Displays/Core/TBL/ValidateTable.opi | 29 +- .../Displays/Core/TBL/ViewRegistry.opi | 134 +- .../Displays/Core/TBL/scripts/NoOp.js | 4 - .../Core/TBL/scripts/ResetCounters.js | 4 - 23 files changed, 1238 insertions(+), 956 deletions(-) delete mode 100644 core/base/tools/commander/workspace_template/Displays/Core/SB/scripts/ClearLog.js delete mode 100644 core/base/tools/commander/workspace_template/Displays/Core/SB/scripts/NoOp.js delete mode 100644 core/base/tools/commander/workspace_template/Displays/Core/SB/scripts/ResetCounters.js delete mode 100644 core/base/tools/commander/workspace_template/Displays/Core/TBL/scripts/NoOp.js delete mode 100644 core/base/tools/commander/workspace_template/Displays/Core/TBL/scripts/ResetCounters.js diff --git a/core/base/tools/commander/workspace_template/Displays/Core/EVS/Main.opi b/core/base/tools/commander/workspace_template/Displays/Core/EVS/Main.opi index afb558e90..000b2cd4c 100644 --- a/core/base/tools/commander/workspace_template/Displays/Core/EVS/Main.opi +++ b/core/base/tools/commander/workspace_template/Displays/Core/EVS/Main.opi @@ -678,7 +678,7 @@ $(pv_value) - 3 + 0 20 0 Text Update_2 @@ -1282,7 +1282,7 @@ $(pv_value) true - 8 + 1 @@ -1337,7 +1337,7 @@ $(pv_value) true - 8 + 1 @@ -1392,7 +1392,7 @@ $(pv_value) true - 8 + 1 @@ -1447,7 +1447,7 @@ $(pv_value) true - 8 + 1 @@ -1502,7 +1502,7 @@ $(pv_value) true - 8 + 1 @@ -1557,7 +1557,7 @@ $(pv_value) true - 8 + 1 @@ -1612,7 +1612,7 @@ $(pv_value) true - 8 + 1 @@ -1667,7 +1667,7 @@ $(pv_value) true - 8 + 1 @@ -1722,7 +1722,7 @@ $(pv_value) true - 8 + 1 @@ -1777,7 +1777,7 @@ $(pv_value) true - 8 + 1 @@ -1832,7 +1832,7 @@ $(pv_value) true - 8 + 1 @@ -1887,7 +1887,7 @@ $(pv_value) true - 8 + 1 @@ -1998,7 +1998,7 @@ $(pv_value) true - 8 + 1 diff --git a/core/base/tools/commander/workspace_template/Displays/Core/EVS/SetLogMode.opi b/core/base/tools/commander/workspace_template/Displays/Core/EVS/SetLogMode.opi index 943f32d41..11e2289d2 100644 --- a/core/base/tools/commander/workspace_template/Displays/Core/EVS/SetLogMode.opi +++ b/core/base/tools/commander/workspace_template/Displays/Core/EVS/SetLogMode.opi @@ -42,14 +42,10 @@ importPackage(Packages.org.yamcs.studio.data); var strMode =VTypeHelper.getString(display.getWidget('inMode').getPropertyValue('pv_value')); -var mode = 0; -if(strMode == 'DISCARD') { - mode = 1; -} - -var cmd = '/cfs/cfe_evs/SetLogMode(Mode: ' + mode + ')'; - -Yamcs.issueCommand(cmd);]]> +Yamcs.issueCommand('/cfs/cfe_evs/SetLogMode', { + 'Payload.Mode': strMode, + 'Payload.Spare': 0 +});]]> true diff --git a/core/base/tools/commander/workspace_template/Displays/Core/EVS/SetMessageFormat.opi b/core/base/tools/commander/workspace_template/Displays/Core/EVS/SetMessageFormat.opi index bc5ec0140..fe6f60244 100644 --- a/core/base/tools/commander/workspace_template/Displays/Core/EVS/SetMessageFormat.opi +++ b/core/base/tools/commander/workspace_template/Displays/Core/EVS/SetMessageFormat.opi @@ -42,14 +42,10 @@ importPackage(Packages.org.yamcs.studio.data); var strFormat =VTypeHelper.getString(display.getWidget('inFormat').getPropertyValue('pv_value')); -var format = 0; -if(strFormat == 'LONG') { - format = 1; -} - -var cmd = '/cfs/cfe_evs/SetEventFormatMode(Mode: ' + format + ')'; - -Yamcs.issueCommand(cmd);]]> +Yamcs.issueCommand('/cfs/cfe_evs/SetEventFormatMode', { + 'Payload.Mode': strFormat, + 'Payload.Spare': 0}); +]]> true diff --git a/core/base/tools/commander/workspace_template/Displays/Core/SB/DumpMapInfo.opi b/core/base/tools/commander/workspace_template/Displays/Core/SB/DumpMapInfo.opi index 5478dbffd..69c116298 100644 --- a/core/base/tools/commander/workspace_template/Displays/Core/SB/DumpMapInfo.opi +++ b/core/base/tools/commander/workspace_template/Displays/Core/SB/DumpMapInfo.opi @@ -15,11 +15,11 @@ 6 - 130 + 120 true - + CFE-SB - Write Map Info true @@ -28,7 +28,7 @@ true true Display - 400 + 340 72a2bf2b:1508717c835:-7839 -1 -1 @@ -90,16 +90,16 @@ Yamcs.issueCommand(cmd); - Write to File System + Write File false $(pv_name) $(pv_value) true Action Button - 163 + 107 72a2bf2b:1508717c835:-77e3 - 114 - 90 + 116 + 84 @@ -138,7 +138,7 @@ $(pv_value) 80 false 72a2bf2b:1508717c835:-772d - 24 + 6 48 @@ -154,7 +154,7 @@ $(pv_value) 1 true - Default + Default Bold @@ -178,7 +178,7 @@ $(pv_value) 231 false 72a2bf2b:1508717c835:-76c0 - 80 + 54 12 @@ -233,9 +233,9 @@ $(pv_value) false true Text Input - 259 + 223 -e1e6812:1508d3700d4:-79c8 - 114 + 96 48 \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Core/SB/DumpPipeInfo.opi b/core/base/tools/commander/workspace_template/Displays/Core/SB/DumpPipeInfo.opi index cb99f0470..32ca0ef07 100644 --- a/core/base/tools/commander/workspace_template/Displays/Core/SB/DumpPipeInfo.opi +++ b/core/base/tools/commander/workspace_template/Displays/Core/SB/DumpPipeInfo.opi @@ -15,11 +15,11 @@ 6 - 130 + 120 true - + CFE-SB - Write Pipe Info true @@ -28,7 +28,7 @@ true true Display - 400 + 320 72a2bf2b:1508717c835:-7839 -1 -1 @@ -90,16 +90,16 @@ Yamcs.issueCommand(cmd); - Write to File System + Write File false $(pv_name) $(pv_value) true Action Button - 163 + 121 72a2bf2b:1508717c835:-77e3 - 114 - 90 + 97 + 78 @@ -138,8 +138,8 @@ $(pv_value) 80 false 72a2bf2b:1508717c835:-772d - 24 - 48 + 6 + 42 @@ -154,7 +154,7 @@ $(pv_value) 1 true - Default + Default Bold @@ -178,7 +178,7 @@ $(pv_value) 231 false 72a2bf2b:1508717c835:-76c0 - 80 + 42 12 @@ -233,9 +233,9 @@ $(pv_value) false true Text Input - 259 + 205 -e1e6812:1508d3700d4:-79c8 - 114 - 48 + 96 + 42 \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Core/SB/DumpRoutingInfo.opi b/core/base/tools/commander/workspace_template/Displays/Core/SB/DumpRoutingInfo.opi index bf3c87334..2e298cb2d 100644 --- a/core/base/tools/commander/workspace_template/Displays/Core/SB/DumpRoutingInfo.opi +++ b/core/base/tools/commander/workspace_template/Displays/Core/SB/DumpRoutingInfo.opi @@ -19,7 +19,7 @@ true - + CFE-SB - Write Routes true @@ -28,7 +28,7 @@ true true Display - 400 + 380 763e00b7:150973f1dd8:-7ba3 -1 -1 @@ -90,16 +90,16 @@ Yamcs.issueCommand(cmd); - Write to File System + Write File false $(pv_name) $(pv_value) true Action Button - 163 + 113 763e00b7:150973f1dd8:-468f - 106 - 90 + 131 + 84 @@ -138,7 +138,7 @@ $(pv_value) 80 false 763e00b7:150973f1dd8:-468e - 16 + 6 48 @@ -154,7 +154,7 @@ $(pv_value) 1 true - Default + Default Bold @@ -175,10 +175,10 @@ $(pv_value) 1 true Label - 231 + 253 false 763e00b7:150973f1dd8:-468d - 72 + 61 12 @@ -235,7 +235,7 @@ $(pv_value) Text Input 259 763e00b7:150973f1dd8:-468c - 106 + 96 48 \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Core/SB/EnaDisRoutes.opi b/core/base/tools/commander/workspace_template/Displays/Core/SB/EnaDisRoutes.opi index 29d2448fa..e12a447df 100644 --- a/core/base/tools/commander/workspace_template/Displays/Core/SB/EnaDisRoutes.opi +++ b/core/base/tools/commander/workspace_template/Displays/Core/SB/EnaDisRoutes.opi @@ -15,11 +15,11 @@ 6 - 140 + 150 true - + CFE-SB - Ena/Dis Routes true @@ -28,23 +28,25 @@ true true Display - 200 + 210 72a2bf2b:1508717c835:-7d33 -1 -1 - ../scripts/QueryOneApp.js + +Yamcs.issueCommand('/cfs/cfe_sb/EnableRoute', { + 'MsgID': MsgID, + 'PipeID': PipeID}); + ]]> true @@ -90,8 +92,8 @@ $(pv_value) Action Button 85 72a2bf2b:1508717c835:-7cf7 - 30 - 96 + 12 + 114 @@ -130,8 +132,8 @@ $(pv_value) 50 false 72a2bf2b:1508717c835:-7c63 - 12 - 19 + 24 + 43 @@ -187,8 +189,8 @@ $(pv_value) Text Input 100 35ebaa52:1509cf6a868:-7c52 - 72 - 16 + 84 + 40 @@ -227,8 +229,8 @@ $(pv_value) 50 false 35ebaa52:1509cf6a868:-7c4a - 12 - 51 + 24 + 75 @@ -284,7 +286,110 @@ $(pv_value) Text Input 100 35ebaa52:1509cf6a868:-7c40 - 72 - 48 + 84 + 72 + + + + false + + + + + + + 0 + 1 + true + + Default Bold + + + + + 20 + 1 + Label_2 + + + true + true + false + + + Enable / Disable Routes + + true + 1 + true + Label + 196 + false + 6b3345f4:17760d4a2f0:-75ae + 6 + 12 + + + + + + + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 24 + ../../Resources/send.png + Action Button_1 + 0 + + + + + true + true + false + + + + Disable + false + $(pv_name) +$(pv_value) + true + Action Button + 85 + 6b3345f4:17760d4a2f0:-75a0 + 108 + 114 \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Core/SB/Main.opi b/core/base/tools/commander/workspace_template/Displays/Core/SB/Main.opi index a61945e49..aac426e7f 100644 --- a/core/base/tools/commander/workspace_template/Displays/Core/SB/Main.opi +++ b/core/base/tools/commander/workspace_template/Displays/Core/SB/Main.opi @@ -19,7 +19,7 @@ true - + CFE-SB - Main true @@ -1127,10 +1127,12 @@ $(pv_value) - scripts/NoOp.js + - false +importPackage(Packages.org.yamcs.studio.script); + +Yamcs.issueCommand('/cfs/cfe_sb/NoOp', {});]]> + true @@ -1172,7 +1174,7 @@ $(pv_value) This command performs no other function than to increment the command execution counter. The command may be used to verify general aliveness of the Event Services task. true Action Button - 67 + 85 39deb42:1504a4eb8cc:-7de2 276 55 @@ -1180,10 +1182,12 @@ $(pv_value) - scripts/ResetCounters.js + - false +importPackage(Packages.org.yamcs.studio.script); + +Yamcs.issueCommand('/cfs/cfe_sb/Reset', {});]]> + true @@ -1226,7 +1230,7 @@ $(pv_value) $(pv_value) true Action Button - 67 + 85 -9ddfcbe:1507831914f:-7cfc 276 74 diff --git a/core/base/tools/commander/workspace_template/Displays/Core/SB/ViewStatistics.opi b/core/base/tools/commander/workspace_template/Displays/Core/SB/ViewStatistics.opi index c8a328a43..ec8218c4b 100644 --- a/core/base/tools/commander/workspace_template/Displays/Core/SB/ViewStatistics.opi +++ b/core/base/tools/commander/workspace_template/Displays/Core/SB/ViewStatistics.opi @@ -19,7 +19,7 @@ true - + CFE-SB - Statistics true @@ -28,7 +28,7 @@ true true Display - 300 + 310 763e00b7:150973f1dd8:-7ba3 -1 -1 @@ -85,8 +85,8 @@ $(pv_value) Action Button 133 763e00b7:150973f1dd8:-7b0d - 78 - 18 + 90 + 36 @@ -116,7 +116,7 @@ $(pv_value) Text Update 0 false - /cfs/cfe_sb/MsgIdsInUse + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.MsgIdsInUse 0.0 @@ -137,8 +137,8 @@ $(pv_value) 100 false 763e00b7:150973f1dd8:-7257 - 180 - 66 + 192 + 84 @@ -168,7 +168,7 @@ $(pv_value) Text Update_1 0 false - /cfs/cfe_sb/PeakMsgIdsInUse + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PeakMsgIdsInUse 0.0 @@ -189,8 +189,8 @@ $(pv_value) 100 false 763e00b7:150973f1dd8:-7256 - 180 - 85 + 192 + 103 @@ -220,7 +220,7 @@ $(pv_value) Text Update_2 0 false - /cfs/cfe_sb/MaxMsgIdsAllowed + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.Allowed 0.0 @@ -241,8 +241,8 @@ $(pv_value) 100 false 763e00b7:150973f1dd8:-7255 - 180 - 104 + 192 + 122 @@ -272,7 +272,7 @@ $(pv_value) Text Update_3 0 false - /cfs/cfe_sb/PipesInUse + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipesInUse 0.0 @@ -293,8 +293,8 @@ $(pv_value) 100 false 763e00b7:150973f1dd8:-7254 - 180 - 123 + 192 + 141 @@ -324,7 +324,7 @@ $(pv_value) Text Update_4 0 false - /cfs/cfe_sb/PeakPipesInUse + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PeakPipesInUse 0.0 @@ -345,8 +345,8 @@ $(pv_value) 100 false 763e00b7:150973f1dd8:-7253 - 180 - 142 + 192 + 160 @@ -376,7 +376,7 @@ $(pv_value) Text Update_5 0 false - /cfs/cfe_sb/MaxPipesAllowed + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.MaxPipesAllowed 0.0 @@ -397,8 +397,8 @@ $(pv_value) 100 false 763e00b7:150973f1dd8:-7252 - 180 - 161 + 192 + 179 @@ -428,7 +428,7 @@ $(pv_value) Text Update_6 0 false - /cfs/cfe_sb/StatsMemInUse + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.StatsMemInUse 0.0 @@ -449,8 +449,8 @@ $(pv_value) 100 false 763e00b7:150973f1dd8:-7251 - 180 - 180 + 192 + 198 @@ -480,7 +480,7 @@ $(pv_value) Text Update_7 0 false - /cfs/cfe_sb/PeakMemInUse + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PeakMemInUse 0.0 @@ -501,8 +501,8 @@ $(pv_value) 100 false 763e00b7:150973f1dd8:-7250 - 180 - 199 + 192 + 217 @@ -532,7 +532,7 @@ $(pv_value) Text Update_8 0 false - /cfs/cfe_sb/MaxMemAllowed + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.MaxMemAllowed 0.0 @@ -553,8 +553,8 @@ $(pv_value) 100 false 763e00b7:150973f1dd8:-724f - 180 - 218 + 192 + 236 @@ -584,7 +584,7 @@ $(pv_value) Text Update_9 0 false - /cfs/cfe_sb/SubscriptionsInUse + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.SubscriptionsInUse 0.0 @@ -605,8 +605,8 @@ $(pv_value) 100 false 763e00b7:150973f1dd8:-724e - 180 - 237 + 192 + 255 @@ -636,7 +636,7 @@ $(pv_value) Text Update_10 0 false - /cfs/cfe_sb/PeakSubscriptionsInUse + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PeakSubscriptionsInUse 0.0 @@ -657,8 +657,8 @@ $(pv_value) 100 false 763e00b7:150973f1dd8:-724d - 180 - 256 + 192 + 274 @@ -688,7 +688,7 @@ $(pv_value) Text Update_11 0 false - /cfs/cfe_sb/MaxSubscriptionsAllowed + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload..MaxSubscriptionsAllowed 0.0 @@ -709,8 +709,8 @@ $(pv_value) 100 false 763e00b7:150973f1dd8:-724c - 180 - 275 + 192 + 293 @@ -740,7 +740,7 @@ $(pv_value) Text Update_12 0 false - /cfs/cfe_sb/SBBuffersInUse + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload..SBBuffersInUse 0.0 @@ -761,8 +761,8 @@ $(pv_value) 100 false 763e00b7:150973f1dd8:-724b - 180 - 294 + 192 + 312 @@ -792,7 +792,7 @@ $(pv_value) Text Update_13 0 false - /cfs/cfe_sb/PeakSBBuffersInUse + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload..PeakSBBuffersInUse 0.0 @@ -813,8 +813,8 @@ $(pv_value) 100 false 763e00b7:150973f1dd8:-724a - 180 - 313 + 192 + 331 @@ -844,7 +844,7 @@ $(pv_value) Text Update_14 0 false - /cfs/cfe_sb/MaxPipeDepthAllowed + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload..MaxPipeDepthAllowed 0.0 @@ -865,8 +865,8 @@ $(pv_value) 100 false 763e00b7:150973f1dd8:-7249 - 180 - 332 + 192 + 350 @@ -905,8 +905,8 @@ $(pv_value) 116 false 763e00b7:150973f1dd8:-71e4 - 54 - 66 + 66 + 84 @@ -945,8 +945,8 @@ $(pv_value) 161 false 763e00b7:150973f1dd8:-71d9 - 10 - 85 + 22 + 103 @@ -985,8 +985,8 @@ $(pv_value) 161 false 763e00b7:150973f1dd8:-71d1 - 10 - 104 + 22 + 122 @@ -1025,8 +1025,8 @@ $(pv_value) 161 false 763e00b7:150973f1dd8:-71c5 - 10 - 123 + 22 + 141 @@ -1065,8 +1065,8 @@ $(pv_value) 161 false 763e00b7:150973f1dd8:-71be - 10 - 142 + 22 + 160 @@ -1105,8 +1105,8 @@ $(pv_value) 161 false 763e00b7:150973f1dd8:-71b3 - 10 - 161 + 22 + 179 @@ -1145,8 +1145,8 @@ $(pv_value) 161 false 763e00b7:150973f1dd8:-71ac - 10 - 180 + 22 + 198 @@ -1185,8 +1185,8 @@ $(pv_value) 161 false 763e00b7:150973f1dd8:-71a5 - 10 - 199 + 22 + 217 @@ -1225,8 +1225,8 @@ $(pv_value) 161 false 763e00b7:150973f1dd8:-719e - 10 - 218 + 22 + 236 @@ -1265,8 +1265,8 @@ $(pv_value) 161 false 763e00b7:150973f1dd8:-7197 - 10 - 237 + 22 + 255 @@ -1302,11 +1302,11 @@ $(pv_value) 1 true Label - 161 + 177 false 763e00b7:150973f1dd8:-7190 - 10 - 256 + 6 + 274 @@ -1342,11 +1342,11 @@ $(pv_value) 1 true Label - 161 + 177 false 763e00b7:150973f1dd8:-7189 - 10 - 275 + 6 + 293 @@ -1385,8 +1385,8 @@ $(pv_value) 161 false 763e00b7:150973f1dd8:-7182 - 10 - 294 + 22 + 312 @@ -1425,8 +1425,8 @@ $(pv_value) 161 false 763e00b7:150973f1dd8:-717b - 10 - 313 + 22 + 331 @@ -1465,8 +1465,8 @@ $(pv_value) 161 false 763e00b7:150973f1dd8:-7174 - 10 - 332 + 22 + 350 @@ -1517,8 +1517,8 @@ $(pv_value) 47 false 763e00b7:150973f1dd8:-6f45 - 97 - 390 + 109 + 408 @@ -1557,8 +1557,8 @@ $(pv_value) 28 false 763e00b7:150973f1dd8:-6f3b - 12 - 390 + 24 + 408 @@ -1597,8 +1597,8 @@ $(pv_value) 47 false 763e00b7:150973f1dd8:-6f2d - 97 - 371 + 109 + 389 @@ -1649,8 +1649,8 @@ $(pv_value) 53 false 763e00b7:150973f1dd8:-6f1f - 143 - 390 + 155 + 408 @@ -1689,8 +1689,8 @@ $(pv_value) 47 false 763e00b7:150973f1dd8:-6f17 - 143 - 371 + 155 + 389 @@ -1729,8 +1729,8 @@ $(pv_value) 47 false 763e00b7:150973f1dd8:-6efe - 39 - 371 + 51 + 389 @@ -1776,8 +1776,8 @@ $(pv_value) Check Box 21 763e00b7:150973f1dd8:-6ec7 - 58 - 390 + 70 + 408 @@ -1828,8 +1828,8 @@ $(pv_value) 85 false 763e00b7:150973f1dd8:-6eb9 - 195 - 390 + 207 + 408 @@ -1868,8 +1868,8 @@ $(pv_value) 79 false 763e00b7:150973f1dd8:-6eb8 - 190 - 371 + 202 + 389 @@ -1920,8 +1920,8 @@ $(pv_value) 47 false 763e00b7:150973f1dd8:-6dea - 97 - 409 + 109 + 427 @@ -1960,8 +1960,8 @@ $(pv_value) 28 false 763e00b7:150973f1dd8:-6de9 - 12 - 409 + 24 + 427 @@ -2012,8 +2012,8 @@ $(pv_value) 53 false 763e00b7:150973f1dd8:-6de8 - 143 - 409 + 155 + 427 @@ -2059,8 +2059,8 @@ $(pv_value) Check Box 21 763e00b7:150973f1dd8:-6de7 - 58 - 409 + 70 + 427 @@ -2111,8 +2111,8 @@ $(pv_value) 85 false 763e00b7:150973f1dd8:-6de6 - 195 - 409 + 207 + 427 @@ -2163,8 +2163,8 @@ $(pv_value) 47 false 763e00b7:150973f1dd8:-6dd6 - 97 - 428 + 109 + 446 @@ -2203,8 +2203,8 @@ $(pv_value) 28 false 763e00b7:150973f1dd8:-6dd5 - 12 - 428 + 24 + 446 @@ -2255,8 +2255,8 @@ $(pv_value) 53 false 763e00b7:150973f1dd8:-6dd4 - 143 - 428 + 155 + 446 @@ -2302,8 +2302,8 @@ $(pv_value) Check Box 21 763e00b7:150973f1dd8:-6dd3 - 58 - 428 + 70 + 446 @@ -2354,8 +2354,8 @@ $(pv_value) 85 false 763e00b7:150973f1dd8:-6dd2 - 195 - 428 + 207 + 446 @@ -2406,8 +2406,8 @@ $(pv_value) 47 false 763e00b7:150973f1dd8:-6dc2 - 97 - 447 + 109 + 465 @@ -2446,8 +2446,8 @@ $(pv_value) 28 false 763e00b7:150973f1dd8:-6dc1 - 12 - 447 + 24 + 465 @@ -2498,8 +2498,8 @@ $(pv_value) 53 false 763e00b7:150973f1dd8:-6dc0 - 143 - 447 + 155 + 465 @@ -2545,8 +2545,8 @@ $(pv_value) Check Box 21 763e00b7:150973f1dd8:-6dbf - 58 - 447 + 70 + 465 @@ -2597,8 +2597,8 @@ $(pv_value) 85 false 763e00b7:150973f1dd8:-6dbe - 195 - 447 + 207 + 465 @@ -2649,8 +2649,8 @@ $(pv_value) 47 false 763e00b7:150973f1dd8:-6dae - 97 - 466 + 109 + 484 @@ -2689,8 +2689,8 @@ $(pv_value) 28 false 763e00b7:150973f1dd8:-6dad - 12 - 466 + 24 + 484 @@ -2741,8 +2741,8 @@ $(pv_value) 53 false 763e00b7:150973f1dd8:-6dac - 143 - 466 + 155 + 484 @@ -2788,8 +2788,8 @@ $(pv_value) Check Box 21 763e00b7:150973f1dd8:-6dab - 58 - 466 + 70 + 484 @@ -2840,8 +2840,8 @@ $(pv_value) 85 false 763e00b7:150973f1dd8:-6daa - 195 - 466 + 207 + 484 @@ -2892,8 +2892,8 @@ $(pv_value) 47 false 763e00b7:150973f1dd8:-6d9a - 97 - 485 + 109 + 503 @@ -2932,8 +2932,8 @@ $(pv_value) 28 false 763e00b7:150973f1dd8:-6d99 - 12 - 485 + 24 + 503 @@ -2984,8 +2984,8 @@ $(pv_value) 53 false 763e00b7:150973f1dd8:-6d98 - 143 - 485 + 155 + 503 @@ -3031,8 +3031,8 @@ $(pv_value) Check Box 21 763e00b7:150973f1dd8:-6d97 - 58 - 485 + 70 + 503 @@ -3083,8 +3083,8 @@ $(pv_value) 85 false 763e00b7:150973f1dd8:-6d96 - 195 - 485 + 207 + 503 @@ -3135,8 +3135,8 @@ $(pv_value) 47 false 763e00b7:150973f1dd8:-6d86 - 97 - 504 + 109 + 522 @@ -3175,8 +3175,8 @@ $(pv_value) 28 false 763e00b7:150973f1dd8:-6d85 - 12 - 504 + 24 + 522 @@ -3227,8 +3227,8 @@ $(pv_value) 53 false 763e00b7:150973f1dd8:-6d84 - 143 - 504 + 155 + 522 @@ -3274,8 +3274,8 @@ $(pv_value) Check Box 21 763e00b7:150973f1dd8:-6d83 - 58 - 504 + 70 + 522 @@ -3326,8 +3326,8 @@ $(pv_value) 85 false 763e00b7:150973f1dd8:-6d82 - 195 - 504 + 207 + 522 @@ -3378,8 +3378,8 @@ $(pv_value) 47 false 763e00b7:150973f1dd8:-6d72 - 97 - 523 + 109 + 541 @@ -3418,8 +3418,8 @@ $(pv_value) 28 false 763e00b7:150973f1dd8:-6d71 - 12 - 523 + 24 + 541 @@ -3470,8 +3470,8 @@ $(pv_value) 53 false 763e00b7:150973f1dd8:-6d70 - 143 - 523 + 155 + 541 @@ -3517,8 +3517,8 @@ $(pv_value) Check Box 21 763e00b7:150973f1dd8:-6d6f - 58 - 523 + 70 + 541 @@ -3569,8 +3569,8 @@ $(pv_value) 85 false 763e00b7:150973f1dd8:-6d6e - 195 - 523 + 207 + 541 @@ -3621,8 +3621,8 @@ $(pv_value) 47 false 763e00b7:150973f1dd8:-6d5e - 97 - 542 + 109 + 560 @@ -3661,8 +3661,8 @@ $(pv_value) 28 false 763e00b7:150973f1dd8:-6d5d - 12 - 542 + 24 + 560 @@ -3713,8 +3713,8 @@ $(pv_value) 53 false 763e00b7:150973f1dd8:-6d5c - 143 - 542 + 155 + 560 @@ -3760,8 +3760,8 @@ $(pv_value) Check Box 21 763e00b7:150973f1dd8:-6d5b - 58 - 542 + 70 + 560 @@ -3812,8 +3812,8 @@ $(pv_value) 85 false 763e00b7:150973f1dd8:-6d5a - 195 - 542 + 207 + 560 @@ -3864,8 +3864,8 @@ $(pv_value) 47 false 763e00b7:150973f1dd8:-6d4a - 97 - 561 + 109 + 579 @@ -3904,8 +3904,8 @@ $(pv_value) 28 false 763e00b7:150973f1dd8:-6d49 - 12 - 561 + 24 + 579 @@ -3956,8 +3956,8 @@ $(pv_value) 53 false 763e00b7:150973f1dd8:-6d48 - 143 - 561 + 155 + 579 @@ -4003,8 +4003,8 @@ $(pv_value) Check Box 21 763e00b7:150973f1dd8:-6d47 - 58 - 561 + 70 + 579 @@ -4055,8 +4055,8 @@ $(pv_value) 85 false 763e00b7:150973f1dd8:-6d46 - 195 - 561 + 207 + 579 @@ -4107,8 +4107,8 @@ $(pv_value) 47 false 763e00b7:150973f1dd8:-6a36 - 97 - 580 + 109 + 598 @@ -4147,8 +4147,8 @@ $(pv_value) 28 false 763e00b7:150973f1dd8:-6a35 - 12 - 580 + 24 + 598 @@ -4199,8 +4199,8 @@ $(pv_value) 53 false 763e00b7:150973f1dd8:-6a34 - 143 - 580 + 155 + 598 @@ -4246,8 +4246,8 @@ $(pv_value) Check Box 21 763e00b7:150973f1dd8:-6a33 - 58 - 580 + 70 + 598 @@ -4298,8 +4298,8 @@ $(pv_value) 85 false 763e00b7:150973f1dd8:-6a32 - 195 - 580 + 207 + 598 @@ -4350,8 +4350,8 @@ $(pv_value) 47 false 763e00b7:150973f1dd8:-6a31 - 97 - 599 + 109 + 617 @@ -4390,8 +4390,8 @@ $(pv_value) 28 false 763e00b7:150973f1dd8:-6a30 - 12 - 599 + 24 + 617 @@ -4442,8 +4442,8 @@ $(pv_value) 53 false 763e00b7:150973f1dd8:-6a2f - 143 - 599 + 155 + 617 @@ -4489,8 +4489,8 @@ $(pv_value) Check Box 21 763e00b7:150973f1dd8:-6a2e - 58 - 599 + 70 + 617 @@ -4541,8 +4541,8 @@ $(pv_value) 85 false 763e00b7:150973f1dd8:-6a2d - 195 - 599 + 207 + 617 @@ -4593,8 +4593,8 @@ $(pv_value) 47 false 763e00b7:150973f1dd8:-6a2c - 97 - 618 + 109 + 636 @@ -4633,8 +4633,8 @@ $(pv_value) 28 false 763e00b7:150973f1dd8:-6a2b - 12 - 618 + 24 + 636 @@ -4685,8 +4685,8 @@ $(pv_value) 53 false 763e00b7:150973f1dd8:-6a2a - 143 - 618 + 155 + 636 @@ -4732,8 +4732,8 @@ $(pv_value) Check Box 21 763e00b7:150973f1dd8:-6a29 - 58 - 618 + 70 + 636 @@ -4784,8 +4784,8 @@ $(pv_value) 85 false 763e00b7:150973f1dd8:-6a28 - 195 - 618 + 207 + 636 @@ -4836,8 +4836,8 @@ $(pv_value) 47 false 763e00b7:150973f1dd8:-6a27 - 97 - 637 + 109 + 655 @@ -4876,8 +4876,8 @@ $(pv_value) 28 false 763e00b7:150973f1dd8:-6a26 - 12 - 637 + 24 + 655 @@ -4928,8 +4928,8 @@ $(pv_value) 53 false 763e00b7:150973f1dd8:-6a25 - 143 - 637 + 155 + 655 @@ -4975,8 +4975,8 @@ $(pv_value) Check Box 21 763e00b7:150973f1dd8:-6a24 - 58 - 637 + 70 + 655 @@ -5027,8 +5027,8 @@ $(pv_value) 85 false 763e00b7:150973f1dd8:-6a23 - 195 - 637 + 207 + 655 @@ -5079,8 +5079,8 @@ $(pv_value) 47 false 763e00b7:150973f1dd8:-6a22 - 97 - 656 + 109 + 674 @@ -5119,8 +5119,8 @@ $(pv_value) 28 false 763e00b7:150973f1dd8:-6a21 - 12 - 656 + 24 + 674 @@ -5171,8 +5171,8 @@ $(pv_value) 53 false 763e00b7:150973f1dd8:-6a20 - 143 - 656 + 155 + 674 @@ -5218,8 +5218,8 @@ $(pv_value) Check Box 21 763e00b7:150973f1dd8:-6a1f - 58 - 656 + 70 + 674 @@ -5270,8 +5270,8 @@ $(pv_value) 85 false 763e00b7:150973f1dd8:-6a1e - 195 - 656 + 207 + 674 @@ -5322,8 +5322,8 @@ $(pv_value) 47 false 763e00b7:150973f1dd8:-6a1d - 97 - 675 + 109 + 693 @@ -5362,8 +5362,8 @@ $(pv_value) 28 false 763e00b7:150973f1dd8:-6a1c - 12 - 675 + 24 + 693 @@ -5414,8 +5414,8 @@ $(pv_value) 53 false 763e00b7:150973f1dd8:-6a1b - 143 - 675 + 155 + 693 @@ -5461,8 +5461,8 @@ $(pv_value) Check Box 21 763e00b7:150973f1dd8:-6a1a - 58 - 675 + 70 + 693 @@ -5513,8 +5513,8 @@ $(pv_value) 85 false 763e00b7:150973f1dd8:-6a19 - 195 - 675 + 207 + 693 @@ -5565,8 +5565,8 @@ $(pv_value) 47 false 763e00b7:150973f1dd8:-6a18 - 97 - 694 + 109 + 712 @@ -5605,8 +5605,8 @@ $(pv_value) 28 false 763e00b7:150973f1dd8:-6a17 - 12 - 694 + 24 + 712 @@ -5657,8 +5657,8 @@ $(pv_value) 53 false 763e00b7:150973f1dd8:-6a16 - 143 - 694 + 155 + 712 @@ -5704,8 +5704,8 @@ $(pv_value) Check Box 21 763e00b7:150973f1dd8:-6a15 - 58 - 694 + 70 + 712 @@ -5756,8 +5756,8 @@ $(pv_value) 85 false 763e00b7:150973f1dd8:-6a14 - 195 - 694 + 207 + 712 @@ -5808,8 +5808,8 @@ $(pv_value) 47 false 763e00b7:150973f1dd8:-6a13 - 97 - 713 + 109 + 731 @@ -5848,8 +5848,8 @@ $(pv_value) 28 false 763e00b7:150973f1dd8:-6a12 - 12 - 713 + 24 + 731 @@ -5900,8 +5900,8 @@ $(pv_value) 53 false 763e00b7:150973f1dd8:-6a11 - 143 - 713 + 155 + 731 @@ -5947,8 +5947,8 @@ $(pv_value) Check Box 21 763e00b7:150973f1dd8:-6a10 - 58 - 713 + 70 + 731 @@ -5999,8 +5999,8 @@ $(pv_value) 85 false 763e00b7:150973f1dd8:-6a0f - 195 - 713 + 207 + 731 @@ -6051,8 +6051,8 @@ $(pv_value) 47 false 763e00b7:150973f1dd8:-6a0e - 97 - 732 + 109 + 750 @@ -6091,8 +6091,8 @@ $(pv_value) 28 false 763e00b7:150973f1dd8:-6a0d - 12 - 732 + 24 + 750 @@ -6143,8 +6143,8 @@ $(pv_value) 53 false 763e00b7:150973f1dd8:-6a0c - 143 - 732 + 155 + 750 @@ -6190,8 +6190,8 @@ $(pv_value) Check Box 21 763e00b7:150973f1dd8:-6a0b - 58 - 732 + 70 + 750 @@ -6242,8 +6242,8 @@ $(pv_value) 85 false 763e00b7:150973f1dd8:-6a0a - 195 - 732 + 207 + 750 @@ -6294,8 +6294,8 @@ $(pv_value) 47 false 763e00b7:150973f1dd8:-6a09 - 97 - 751 + 109 + 769 @@ -6334,8 +6334,8 @@ $(pv_value) 28 false 763e00b7:150973f1dd8:-6a08 - 12 - 751 + 24 + 769 @@ -6386,8 +6386,8 @@ $(pv_value) 53 false 763e00b7:150973f1dd8:-6a07 - 143 - 751 + 155 + 769 @@ -6433,8 +6433,8 @@ $(pv_value) Check Box 21 763e00b7:150973f1dd8:-6a06 - 58 - 751 + 70 + 769 @@ -6485,8 +6485,8 @@ $(pv_value) 85 false 763e00b7:150973f1dd8:-6a05 - 195 - 751 + 207 + 769 @@ -6537,8 +6537,8 @@ $(pv_value) 47 false 763e00b7:150973f1dd8:-696b - 97 - 770 + 109 + 788 @@ -6577,8 +6577,8 @@ $(pv_value) 28 false 763e00b7:150973f1dd8:-696a - 12 - 770 + 24 + 788 @@ -6629,8 +6629,8 @@ $(pv_value) 53 false 763e00b7:150973f1dd8:-6969 - 143 - 770 + 155 + 788 @@ -6676,8 +6676,8 @@ $(pv_value) Check Box 21 763e00b7:150973f1dd8:-6968 - 58 - 770 + 70 + 788 @@ -6728,8 +6728,8 @@ $(pv_value) 85 false 763e00b7:150973f1dd8:-6967 - 195 - 770 + 207 + 788 @@ -6780,8 +6780,8 @@ $(pv_value) 47 false 763e00b7:150973f1dd8:-6966 - 97 - 789 + 109 + 807 @@ -6820,8 +6820,8 @@ $(pv_value) 28 false 763e00b7:150973f1dd8:-6965 - 12 - 789 + 24 + 807 @@ -6872,8 +6872,8 @@ $(pv_value) 53 false 763e00b7:150973f1dd8:-6964 - 143 - 789 + 155 + 807 @@ -6919,8 +6919,8 @@ $(pv_value) Check Box 21 763e00b7:150973f1dd8:-6963 - 58 - 789 + 70 + 807 @@ -6971,8 +6971,8 @@ $(pv_value) 85 false 763e00b7:150973f1dd8:-6962 - 195 - 789 + 207 + 807 @@ -7023,8 +7023,8 @@ $(pv_value) 47 false 763e00b7:150973f1dd8:-6961 - 97 - 808 + 109 + 826 @@ -7063,8 +7063,8 @@ $(pv_value) 28 false 763e00b7:150973f1dd8:-6960 - 12 - 808 + 24 + 826 @@ -7115,8 +7115,8 @@ $(pv_value) 53 false 763e00b7:150973f1dd8:-695f - 143 - 808 + 155 + 826 @@ -7162,8 +7162,8 @@ $(pv_value) Check Box 21 763e00b7:150973f1dd8:-695e - 58 - 808 + 70 + 826 @@ -7214,8 +7214,8 @@ $(pv_value) 85 false 763e00b7:150973f1dd8:-695d - 195 - 808 + 207 + 826 @@ -7266,8 +7266,8 @@ $(pv_value) 47 false 763e00b7:150973f1dd8:-695c - 97 - 827 + 109 + 845 @@ -7306,8 +7306,8 @@ $(pv_value) 28 false 763e00b7:150973f1dd8:-695b - 12 - 827 + 24 + 845 @@ -7358,8 +7358,8 @@ $(pv_value) 53 false 763e00b7:150973f1dd8:-695a - 143 - 827 + 155 + 845 @@ -7405,8 +7405,8 @@ $(pv_value) Check Box 21 763e00b7:150973f1dd8:-6959 - 58 - 827 + 70 + 845 @@ -7457,8 +7457,8 @@ $(pv_value) 85 false 763e00b7:150973f1dd8:-6958 - 195 - 827 + 207 + 845 @@ -7509,8 +7509,8 @@ $(pv_value) 47 false 763e00b7:150973f1dd8:-6957 - 97 - 846 + 109 + 864 @@ -7549,8 +7549,8 @@ $(pv_value) 28 false 763e00b7:150973f1dd8:-6956 - 12 - 846 + 24 + 864 @@ -7601,8 +7601,8 @@ $(pv_value) 53 false 763e00b7:150973f1dd8:-6955 - 143 - 846 + 155 + 864 @@ -7648,8 +7648,8 @@ $(pv_value) Check Box 21 763e00b7:150973f1dd8:-6954 - 58 - 846 + 70 + 864 @@ -7700,8 +7700,8 @@ $(pv_value) 85 false 763e00b7:150973f1dd8:-6953 - 195 - 846 + 207 + 864 @@ -7752,8 +7752,8 @@ $(pv_value) 47 false 763e00b7:150973f1dd8:-6952 - 97 - 865 + 109 + 883 @@ -7792,8 +7792,8 @@ $(pv_value) 28 false 763e00b7:150973f1dd8:-6951 - 12 - 865 + 24 + 883 @@ -7844,8 +7844,8 @@ $(pv_value) 53 false 763e00b7:150973f1dd8:-6950 - 143 - 865 + 155 + 883 @@ -7891,8 +7891,8 @@ $(pv_value) Check Box 21 763e00b7:150973f1dd8:-694f - 58 - 865 + 70 + 883 @@ -7943,8 +7943,8 @@ $(pv_value) 85 false 763e00b7:150973f1dd8:-694e - 195 - 865 + 207 + 883 @@ -7995,8 +7995,8 @@ $(pv_value) 47 false 763e00b7:150973f1dd8:-694d - 97 - 884 + 109 + 902 @@ -8035,8 +8035,8 @@ $(pv_value) 28 false 763e00b7:150973f1dd8:-694c - 12 - 884 + 24 + 902 @@ -8087,8 +8087,8 @@ $(pv_value) 53 false 763e00b7:150973f1dd8:-694b - 143 - 884 + 155 + 902 @@ -8134,8 +8134,8 @@ $(pv_value) Check Box 21 763e00b7:150973f1dd8:-694a - 58 - 884 + 70 + 902 @@ -8186,8 +8186,8 @@ $(pv_value) 85 false 763e00b7:150973f1dd8:-6949 - 195 - 884 + 207 + 902 @@ -8238,8 +8238,8 @@ $(pv_value) 47 false 763e00b7:150973f1dd8:-6948 - 97 - 903 + 109 + 921 @@ -8278,8 +8278,8 @@ $(pv_value) 28 false 763e00b7:150973f1dd8:-6947 - 12 - 903 + 24 + 921 @@ -8330,8 +8330,8 @@ $(pv_value) 53 false 763e00b7:150973f1dd8:-6946 - 143 - 903 + 155 + 921 @@ -8377,8 +8377,8 @@ $(pv_value) Check Box 21 763e00b7:150973f1dd8:-6945 - 58 - 903 + 70 + 921 @@ -8429,8 +8429,8 @@ $(pv_value) 85 false 763e00b7:150973f1dd8:-6944 - 195 - 903 + 207 + 921 @@ -8481,8 +8481,8 @@ $(pv_value) 47 false 763e00b7:150973f1dd8:-6943 - 97 - 922 + 109 + 940 @@ -8521,8 +8521,8 @@ $(pv_value) 28 false 763e00b7:150973f1dd8:-6942 - 12 - 922 + 24 + 940 @@ -8573,8 +8573,8 @@ $(pv_value) 53 false 763e00b7:150973f1dd8:-6941 - 143 - 922 + 155 + 940 @@ -8620,8 +8620,8 @@ $(pv_value) Check Box 21 763e00b7:150973f1dd8:-6940 - 58 - 922 + 70 + 940 @@ -8672,8 +8672,8 @@ $(pv_value) 85 false 763e00b7:150973f1dd8:-693f - 195 - 922 + 207 + 940 @@ -8724,8 +8724,8 @@ $(pv_value) 47 false 763e00b7:150973f1dd8:-693e - 97 - 941 + 109 + 959 @@ -8764,8 +8764,8 @@ $(pv_value) 28 false 763e00b7:150973f1dd8:-693d - 12 - 941 + 24 + 959 @@ -8816,8 +8816,8 @@ $(pv_value) 53 false 763e00b7:150973f1dd8:-693c - 143 - 941 + 155 + 959 @@ -8863,8 +8863,8 @@ $(pv_value) Check Box 21 763e00b7:150973f1dd8:-693b - 58 - 941 + 70 + 959 @@ -8915,8 +8915,8 @@ $(pv_value) 85 false 763e00b7:150973f1dd8:-693a - 195 - 941 + 207 + 959 @@ -8967,8 +8967,8 @@ $(pv_value) 47 false 763e00b7:150973f1dd8:-68a0 - 97 - 960 + 109 + 978 @@ -9007,8 +9007,8 @@ $(pv_value) 28 false 763e00b7:150973f1dd8:-689f - 12 - 960 + 24 + 978 @@ -9059,8 +9059,8 @@ $(pv_value) 53 false 763e00b7:150973f1dd8:-689e - 143 - 960 + 155 + 978 @@ -9106,8 +9106,8 @@ $(pv_value) Check Box 21 763e00b7:150973f1dd8:-689d - 58 - 960 + 70 + 978 @@ -9158,8 +9158,8 @@ $(pv_value) 85 false 763e00b7:150973f1dd8:-689c - 195 - 960 + 207 + 978 @@ -9210,8 +9210,8 @@ $(pv_value) 47 false 763e00b7:150973f1dd8:-689b - 97 - 979 + 109 + 997 @@ -9250,8 +9250,8 @@ $(pv_value) 28 false 763e00b7:150973f1dd8:-689a - 12 - 979 + 24 + 997 @@ -9302,8 +9302,8 @@ $(pv_value) 53 false 763e00b7:150973f1dd8:-6899 - 143 - 979 + 155 + 997 @@ -9349,8 +9349,8 @@ $(pv_value) Check Box 21 763e00b7:150973f1dd8:-6898 - 58 - 979 + 70 + 997 @@ -9401,8 +9401,8 @@ $(pv_value) 85 false 763e00b7:150973f1dd8:-6897 - 195 - 979 + 207 + 997 @@ -9453,8 +9453,8 @@ $(pv_value) 47 false 763e00b7:150973f1dd8:-6896 - 97 - 998 + 109 + 1016 @@ -9493,8 +9493,8 @@ $(pv_value) 28 false 763e00b7:150973f1dd8:-6895 - 12 - 998 + 24 + 1016 @@ -9545,8 +9545,8 @@ $(pv_value) 53 false 763e00b7:150973f1dd8:-6894 - 143 - 998 + 155 + 1016 @@ -9592,8 +9592,8 @@ $(pv_value) Check Box 21 763e00b7:150973f1dd8:-6893 - 58 - 998 + 70 + 1016 @@ -9644,8 +9644,8 @@ $(pv_value) 85 false 763e00b7:150973f1dd8:-6892 - 195 - 998 + 207 + 1016 @@ -9696,8 +9696,8 @@ $(pv_value) 47 false 763e00b7:150973f1dd8:-6891 - 97 - 1017 + 109 + 1035 @@ -9736,8 +9736,8 @@ $(pv_value) 28 false 763e00b7:150973f1dd8:-6890 - 12 - 1017 + 24 + 1035 @@ -9788,8 +9788,8 @@ $(pv_value) 53 false 763e00b7:150973f1dd8:-688f - 143 - 1017 + 155 + 1035 @@ -9835,8 +9835,8 @@ $(pv_value) Check Box 21 763e00b7:150973f1dd8:-688e - 58 - 1017 + 70 + 1035 @@ -9887,8 +9887,8 @@ $(pv_value) 85 false 763e00b7:150973f1dd8:-688d - 195 - 1017 + 207 + 1035 @@ -9939,8 +9939,8 @@ $(pv_value) 47 false 763e00b7:150973f1dd8:-688c - 97 - 1036 + 109 + 1054 @@ -9979,8 +9979,8 @@ $(pv_value) 28 false 763e00b7:150973f1dd8:-688b - 12 - 1036 + 24 + 1054 @@ -10031,8 +10031,8 @@ $(pv_value) 53 false 763e00b7:150973f1dd8:-688a - 143 - 1036 + 155 + 1054 @@ -10078,8 +10078,8 @@ $(pv_value) Check Box 21 763e00b7:150973f1dd8:-6889 - 58 - 1036 + 70 + 1054 @@ -10130,8 +10130,8 @@ $(pv_value) 85 false 763e00b7:150973f1dd8:-6888 - 195 - 1036 + 207 + 1054 @@ -10182,8 +10182,8 @@ $(pv_value) 47 false 763e00b7:150973f1dd8:-6887 - 97 - 1055 + 109 + 1073 @@ -10222,8 +10222,8 @@ $(pv_value) 28 false 763e00b7:150973f1dd8:-6886 - 12 - 1055 + 24 + 1073 @@ -10274,8 +10274,8 @@ $(pv_value) 53 false 763e00b7:150973f1dd8:-6885 - 143 - 1055 + 155 + 1073 @@ -10321,8 +10321,8 @@ $(pv_value) Check Box 21 763e00b7:150973f1dd8:-6884 - 58 - 1055 + 70 + 1073 @@ -10373,8 +10373,8 @@ $(pv_value) 85 false 763e00b7:150973f1dd8:-6883 - 195 - 1055 + 207 + 1073 @@ -10425,8 +10425,8 @@ $(pv_value) 47 false 763e00b7:150973f1dd8:-6882 - 97 - 1074 + 109 + 1092 @@ -10465,8 +10465,8 @@ $(pv_value) 28 false 763e00b7:150973f1dd8:-6881 - 12 - 1074 + 24 + 1092 @@ -10517,8 +10517,8 @@ $(pv_value) 53 false 763e00b7:150973f1dd8:-6880 - 143 - 1074 + 155 + 1092 @@ -10564,8 +10564,8 @@ $(pv_value) Check Box 21 763e00b7:150973f1dd8:-687f - 58 - 1074 + 70 + 1092 @@ -10616,8 +10616,8 @@ $(pv_value) 85 false 763e00b7:150973f1dd8:-687e - 195 - 1074 + 207 + 1092 @@ -10668,8 +10668,8 @@ $(pv_value) 47 false 763e00b7:150973f1dd8:-687d - 97 - 1093 + 109 + 1111 @@ -10708,8 +10708,8 @@ $(pv_value) 28 false 763e00b7:150973f1dd8:-687c - 12 - 1093 + 24 + 1111 @@ -10760,8 +10760,8 @@ $(pv_value) 53 false 763e00b7:150973f1dd8:-687b - 143 - 1093 + 155 + 1111 @@ -10807,8 +10807,8 @@ $(pv_value) Check Box 21 763e00b7:150973f1dd8:-687a - 58 - 1093 + 70 + 1111 @@ -10859,8 +10859,8 @@ $(pv_value) 85 false 763e00b7:150973f1dd8:-6879 - 195 - 1093 + 207 + 1111 @@ -10911,8 +10911,8 @@ $(pv_value) 47 false 763e00b7:150973f1dd8:-6878 - 97 - 1112 + 109 + 1130 @@ -10951,8 +10951,8 @@ $(pv_value) 28 false 763e00b7:150973f1dd8:-6877 - 12 - 1112 + 24 + 1130 @@ -11003,8 +11003,8 @@ $(pv_value) 53 false 763e00b7:150973f1dd8:-6876 - 143 - 1112 + 155 + 1130 @@ -11050,8 +11050,8 @@ $(pv_value) Check Box 21 763e00b7:150973f1dd8:-6875 - 58 - 1112 + 70 + 1130 @@ -11102,8 +11102,8 @@ $(pv_value) 85 false 763e00b7:150973f1dd8:-6874 - 195 - 1112 + 207 + 1130 @@ -11154,8 +11154,8 @@ $(pv_value) 47 false 763e00b7:150973f1dd8:-6873 - 97 - 1131 + 109 + 1149 @@ -11194,8 +11194,8 @@ $(pv_value) 28 false 763e00b7:150973f1dd8:-6872 - 12 - 1131 + 24 + 1149 @@ -11246,8 +11246,8 @@ $(pv_value) 53 false 763e00b7:150973f1dd8:-6871 - 143 - 1131 + 155 + 1149 @@ -11293,8 +11293,8 @@ $(pv_value) Check Box 21 763e00b7:150973f1dd8:-6870 - 58 - 1131 + 70 + 1149 @@ -11345,8 +11345,8 @@ $(pv_value) 85 false 763e00b7:150973f1dd8:-686f - 195 - 1131 + 207 + 1149 @@ -11397,8 +11397,8 @@ $(pv_value) 47 false 763e00b7:150973f1dd8:-67d5 - 97 - 1150 + 109 + 1168 @@ -11437,8 +11437,8 @@ $(pv_value) 28 false 763e00b7:150973f1dd8:-67d4 - 12 - 1150 + 24 + 1168 @@ -11489,8 +11489,8 @@ $(pv_value) 53 false 763e00b7:150973f1dd8:-67d3 - 143 - 1150 + 155 + 1168 @@ -11536,8 +11536,8 @@ $(pv_value) Check Box 21 763e00b7:150973f1dd8:-67d2 - 58 - 1150 + 70 + 1168 @@ -11588,8 +11588,8 @@ $(pv_value) 85 false 763e00b7:150973f1dd8:-67d1 - 195 - 1150 + 207 + 1168 @@ -11640,8 +11640,8 @@ $(pv_value) 47 false 763e00b7:150973f1dd8:-67d0 - 97 - 1169 + 109 + 1187 @@ -11680,8 +11680,8 @@ $(pv_value) 28 false 763e00b7:150973f1dd8:-67cf - 12 - 1169 + 24 + 1187 @@ -11732,8 +11732,8 @@ $(pv_value) 53 false 763e00b7:150973f1dd8:-67ce - 143 - 1169 + 155 + 1187 @@ -11779,8 +11779,8 @@ $(pv_value) Check Box 21 763e00b7:150973f1dd8:-67cd - 58 - 1169 + 70 + 1187 @@ -11831,8 +11831,8 @@ $(pv_value) 85 false 763e00b7:150973f1dd8:-67cc - 195 - 1169 + 207 + 1187 @@ -11883,8 +11883,8 @@ $(pv_value) 47 false 763e00b7:150973f1dd8:-67cb - 97 - 1188 + 109 + 1206 @@ -11923,8 +11923,8 @@ $(pv_value) 28 false 763e00b7:150973f1dd8:-67ca - 12 - 1188 + 24 + 1206 @@ -11975,8 +11975,8 @@ $(pv_value) 53 false 763e00b7:150973f1dd8:-67c9 - 143 - 1188 + 155 + 1206 @@ -12022,8 +12022,8 @@ $(pv_value) Check Box 21 763e00b7:150973f1dd8:-67c8 - 58 - 1188 + 70 + 1206 @@ -12074,8 +12074,8 @@ $(pv_value) 85 false 763e00b7:150973f1dd8:-67c7 - 195 - 1188 + 207 + 1206 @@ -12126,8 +12126,8 @@ $(pv_value) 47 false 763e00b7:150973f1dd8:-67c6 - 97 - 1207 + 109 + 1225 @@ -12166,8 +12166,8 @@ $(pv_value) 28 false 763e00b7:150973f1dd8:-67c5 - 12 - 1207 + 24 + 1225 @@ -12218,8 +12218,8 @@ $(pv_value) 53 false 763e00b7:150973f1dd8:-67c4 - 143 - 1207 + 155 + 1225 @@ -12265,8 +12265,8 @@ $(pv_value) Check Box 21 763e00b7:150973f1dd8:-67c3 - 58 - 1207 + 70 + 1225 @@ -12317,8 +12317,8 @@ $(pv_value) 85 false 763e00b7:150973f1dd8:-67c2 - 195 - 1207 + 207 + 1225 @@ -12369,8 +12369,8 @@ $(pv_value) 47 false 763e00b7:150973f1dd8:-67c1 - 97 - 1226 + 109 + 1244 @@ -12409,8 +12409,8 @@ $(pv_value) 28 false 763e00b7:150973f1dd8:-67c0 - 12 - 1226 + 24 + 1244 @@ -12461,8 +12461,8 @@ $(pv_value) 53 false 763e00b7:150973f1dd8:-67bf - 143 - 1226 + 155 + 1244 @@ -12508,8 +12508,8 @@ $(pv_value) Check Box 21 763e00b7:150973f1dd8:-67be - 58 - 1226 + 70 + 1244 @@ -12560,8 +12560,8 @@ $(pv_value) 85 false 763e00b7:150973f1dd8:-67bd - 195 - 1226 + 207 + 1244 @@ -12612,8 +12612,8 @@ $(pv_value) 47 false 763e00b7:150973f1dd8:-67bc - 97 - 1245 + 109 + 1263 @@ -12652,8 +12652,8 @@ $(pv_value) 28 false 763e00b7:150973f1dd8:-67bb - 12 - 1245 + 24 + 1263 @@ -12704,8 +12704,8 @@ $(pv_value) 53 false 763e00b7:150973f1dd8:-67ba - 143 - 1245 + 155 + 1263 @@ -12751,8 +12751,8 @@ $(pv_value) Check Box 21 763e00b7:150973f1dd8:-67b9 - 58 - 1245 + 70 + 1263 @@ -12803,8 +12803,8 @@ $(pv_value) 85 false 763e00b7:150973f1dd8:-67b8 - 195 - 1245 + 207 + 1263 @@ -12855,8 +12855,8 @@ $(pv_value) 47 false 763e00b7:150973f1dd8:-67b7 - 97 - 1264 + 109 + 1282 @@ -12895,8 +12895,8 @@ $(pv_value) 28 false 763e00b7:150973f1dd8:-67b6 - 12 - 1264 + 24 + 1282 @@ -12947,8 +12947,8 @@ $(pv_value) 53 false 763e00b7:150973f1dd8:-67b5 - 143 - 1264 + 155 + 1282 @@ -12994,8 +12994,8 @@ $(pv_value) Check Box 21 763e00b7:150973f1dd8:-67b4 - 58 - 1264 + 70 + 1282 @@ -13046,8 +13046,8 @@ $(pv_value) 85 false 763e00b7:150973f1dd8:-67b3 - 195 - 1264 + 207 + 1282 @@ -13098,8 +13098,8 @@ $(pv_value) 47 false 763e00b7:150973f1dd8:-67b2 - 97 - 1283 + 109 + 1301 @@ -13138,8 +13138,8 @@ $(pv_value) 28 false 763e00b7:150973f1dd8:-67b1 - 12 - 1283 + 24 + 1301 @@ -13190,8 +13190,8 @@ $(pv_value) 53 false 763e00b7:150973f1dd8:-67b0 - 143 - 1283 + 155 + 1301 @@ -13237,8 +13237,8 @@ $(pv_value) Check Box 21 763e00b7:150973f1dd8:-67af - 58 - 1283 + 70 + 1301 @@ -13289,8 +13289,8 @@ $(pv_value) 85 false 763e00b7:150973f1dd8:-67ae - 195 - 1283 + 207 + 1301 @@ -13341,8 +13341,8 @@ $(pv_value) 47 false 763e00b7:150973f1dd8:-67ad - 97 - 1302 + 109 + 1320 @@ -13381,8 +13381,8 @@ $(pv_value) 28 false 763e00b7:150973f1dd8:-67ac - 12 - 1302 + 24 + 1320 @@ -13433,8 +13433,8 @@ $(pv_value) 53 false 763e00b7:150973f1dd8:-67ab - 143 - 1302 + 155 + 1320 @@ -13480,8 +13480,8 @@ $(pv_value) Check Box 21 763e00b7:150973f1dd8:-67aa - 58 - 1302 + 70 + 1320 @@ -13532,8 +13532,8 @@ $(pv_value) 85 false 763e00b7:150973f1dd8:-67a9 - 195 - 1302 + 207 + 1320 @@ -13584,8 +13584,8 @@ $(pv_value) 47 false 763e00b7:150973f1dd8:-67a8 - 97 - 1321 + 109 + 1339 @@ -13624,8 +13624,8 @@ $(pv_value) 28 false 763e00b7:150973f1dd8:-67a7 - 12 - 1321 + 24 + 1339 @@ -13676,8 +13676,8 @@ $(pv_value) 53 false 763e00b7:150973f1dd8:-67a6 - 143 - 1321 + 155 + 1339 @@ -13723,8 +13723,8 @@ $(pv_value) Check Box 21 763e00b7:150973f1dd8:-67a5 - 58 - 1321 + 70 + 1339 @@ -13775,8 +13775,8 @@ $(pv_value) 85 false 763e00b7:150973f1dd8:-67a4 - 195 - 1321 + 207 + 1339 @@ -13827,8 +13827,8 @@ $(pv_value) 47 false 763e00b7:150973f1dd8:-670a - 97 - 1340 + 109 + 1358 @@ -13867,8 +13867,8 @@ $(pv_value) 28 false 763e00b7:150973f1dd8:-6709 - 12 - 1340 + 24 + 1358 @@ -13919,8 +13919,8 @@ $(pv_value) 53 false 763e00b7:150973f1dd8:-6708 - 143 - 1340 + 155 + 1358 @@ -13966,8 +13966,8 @@ $(pv_value) Check Box 21 763e00b7:150973f1dd8:-6707 - 58 - 1340 + 70 + 1358 @@ -14018,8 +14018,8 @@ $(pv_value) 85 false 763e00b7:150973f1dd8:-6706 - 195 - 1340 + 207 + 1358 @@ -14070,8 +14070,8 @@ $(pv_value) 47 false 763e00b7:150973f1dd8:-6705 - 97 - 1359 + 109 + 1377 @@ -14110,8 +14110,8 @@ $(pv_value) 28 false 763e00b7:150973f1dd8:-6704 - 12 - 1359 + 24 + 1377 @@ -14162,8 +14162,8 @@ $(pv_value) 53 false 763e00b7:150973f1dd8:-6703 - 143 - 1359 + 155 + 1377 @@ -14209,8 +14209,8 @@ $(pv_value) Check Box 21 763e00b7:150973f1dd8:-6702 - 58 - 1359 + 70 + 1377 @@ -14261,8 +14261,8 @@ $(pv_value) 85 false 763e00b7:150973f1dd8:-6701 - 195 - 1359 + 207 + 1377 @@ -14313,8 +14313,8 @@ $(pv_value) 47 false 763e00b7:150973f1dd8:-6700 - 97 - 1378 + 109 + 1396 @@ -14353,8 +14353,8 @@ $(pv_value) 28 false 763e00b7:150973f1dd8:-66ff - 12 - 1378 + 24 + 1396 @@ -14405,8 +14405,8 @@ $(pv_value) 53 false 763e00b7:150973f1dd8:-66fe - 143 - 1378 + 155 + 1396 @@ -14452,8 +14452,8 @@ $(pv_value) Check Box 21 763e00b7:150973f1dd8:-66fd - 58 - 1378 + 70 + 1396 @@ -14504,8 +14504,8 @@ $(pv_value) 85 false 763e00b7:150973f1dd8:-66fc - 195 - 1378 + 207 + 1396 @@ -14556,8 +14556,8 @@ $(pv_value) 47 false 763e00b7:150973f1dd8:-66fb - 97 - 1397 + 109 + 1415 @@ -14596,8 +14596,8 @@ $(pv_value) 28 false 763e00b7:150973f1dd8:-66fa - 12 - 1397 + 24 + 1415 @@ -14648,8 +14648,8 @@ $(pv_value) 53 false 763e00b7:150973f1dd8:-66f9 - 143 - 1397 + 155 + 1415 @@ -14695,8 +14695,8 @@ $(pv_value) Check Box 21 763e00b7:150973f1dd8:-66f8 - 58 - 1397 + 70 + 1415 @@ -14747,8 +14747,8 @@ $(pv_value) 85 false 763e00b7:150973f1dd8:-66f7 - 195 - 1397 + 207 + 1415 @@ -14799,8 +14799,8 @@ $(pv_value) 47 false 763e00b7:150973f1dd8:-66f6 - 97 - 1416 + 109 + 1434 @@ -14839,8 +14839,8 @@ $(pv_value) 28 false 763e00b7:150973f1dd8:-66f5 - 12 - 1416 + 24 + 1434 @@ -14891,8 +14891,8 @@ $(pv_value) 53 false 763e00b7:150973f1dd8:-66f4 - 143 - 1416 + 155 + 1434 @@ -14938,8 +14938,8 @@ $(pv_value) Check Box 21 763e00b7:150973f1dd8:-66f3 - 58 - 1416 + 70 + 1434 @@ -14990,8 +14990,8 @@ $(pv_value) 85 false 763e00b7:150973f1dd8:-66f2 - 195 - 1416 + 207 + 1434 @@ -15042,8 +15042,8 @@ $(pv_value) 47 false 763e00b7:150973f1dd8:-66f1 - 97 - 1435 + 109 + 1453 @@ -15082,8 +15082,8 @@ $(pv_value) 28 false 763e00b7:150973f1dd8:-66f0 - 12 - 1435 + 24 + 1453 @@ -15134,8 +15134,8 @@ $(pv_value) 53 false 763e00b7:150973f1dd8:-66ef - 143 - 1435 + 155 + 1453 @@ -15181,8 +15181,8 @@ $(pv_value) Check Box 21 763e00b7:150973f1dd8:-66ee - 58 - 1435 + 70 + 1453 @@ -15233,8 +15233,8 @@ $(pv_value) 85 false 763e00b7:150973f1dd8:-66ed - 195 - 1435 + 207 + 1453 @@ -15285,8 +15285,8 @@ $(pv_value) 47 false 763e00b7:150973f1dd8:-66ec - 97 - 1454 + 109 + 1472 @@ -15325,8 +15325,8 @@ $(pv_value) 28 false 763e00b7:150973f1dd8:-66eb - 12 - 1454 + 24 + 1472 @@ -15377,8 +15377,8 @@ $(pv_value) 53 false 763e00b7:150973f1dd8:-66ea - 143 - 1454 + 155 + 1472 @@ -15424,8 +15424,8 @@ $(pv_value) Check Box 21 763e00b7:150973f1dd8:-66e9 - 58 - 1454 + 70 + 1472 @@ -15476,8 +15476,8 @@ $(pv_value) 85 false 763e00b7:150973f1dd8:-66e8 - 195 - 1454 + 207 + 1472 @@ -15528,8 +15528,8 @@ $(pv_value) 47 false 763e00b7:150973f1dd8:-66e7 - 97 - 1473 + 109 + 1491 @@ -15568,8 +15568,8 @@ $(pv_value) 28 false 763e00b7:150973f1dd8:-66e6 - 12 - 1473 + 24 + 1491 @@ -15620,8 +15620,8 @@ $(pv_value) 53 false 763e00b7:150973f1dd8:-66e5 - 143 - 1473 + 155 + 1491 @@ -15667,8 +15667,8 @@ $(pv_value) Check Box 21 763e00b7:150973f1dd8:-66e4 - 58 - 1473 + 70 + 1491 @@ -15719,8 +15719,8 @@ $(pv_value) 85 false 763e00b7:150973f1dd8:-66e3 - 195 - 1473 + 207 + 1491 @@ -15771,8 +15771,8 @@ $(pv_value) 47 false 763e00b7:150973f1dd8:-66e2 - 97 - 1492 + 109 + 1510 @@ -15811,8 +15811,8 @@ $(pv_value) 28 false 763e00b7:150973f1dd8:-66e1 - 12 - 1492 + 24 + 1510 @@ -15863,8 +15863,8 @@ $(pv_value) 53 false 763e00b7:150973f1dd8:-66e0 - 143 - 1492 + 155 + 1510 @@ -15910,8 +15910,8 @@ $(pv_value) Check Box 21 763e00b7:150973f1dd8:-66df - 58 - 1492 + 70 + 1510 @@ -15962,8 +15962,8 @@ $(pv_value) 85 false 763e00b7:150973f1dd8:-66de - 195 - 1492 + 207 + 1510 @@ -16014,8 +16014,8 @@ $(pv_value) 47 false 763e00b7:150973f1dd8:-66dd - 97 - 1511 + 109 + 1529 @@ -16054,8 +16054,8 @@ $(pv_value) 28 false 763e00b7:150973f1dd8:-66dc - 12 - 1511 + 24 + 1529 @@ -16106,8 +16106,8 @@ $(pv_value) 53 false 763e00b7:150973f1dd8:-66db - 143 - 1511 + 155 + 1529 @@ -16153,8 +16153,8 @@ $(pv_value) Check Box 21 763e00b7:150973f1dd8:-66da - 58 - 1511 + 70 + 1529 @@ -16205,8 +16205,8 @@ $(pv_value) 85 false 763e00b7:150973f1dd8:-66d9 - 195 - 1511 + 207 + 1529 @@ -16257,8 +16257,8 @@ $(pv_value) 47 false 763e00b7:150973f1dd8:-663f - 97 - 1530 + 109 + 1548 @@ -16297,8 +16297,8 @@ $(pv_value) 28 false 763e00b7:150973f1dd8:-663e - 12 - 1530 + 24 + 1548 @@ -16349,8 +16349,8 @@ $(pv_value) 53 false 763e00b7:150973f1dd8:-663d - 143 - 1530 + 155 + 1548 @@ -16396,8 +16396,8 @@ $(pv_value) Check Box 21 763e00b7:150973f1dd8:-663c - 58 - 1530 + 70 + 1548 @@ -16448,8 +16448,8 @@ $(pv_value) 85 false 763e00b7:150973f1dd8:-663b - 195 - 1530 + 207 + 1548 @@ -16500,8 +16500,8 @@ $(pv_value) 47 false 763e00b7:150973f1dd8:-663a - 97 - 1549 + 109 + 1567 @@ -16540,8 +16540,8 @@ $(pv_value) 28 false 763e00b7:150973f1dd8:-6639 - 12 - 1549 + 24 + 1567 @@ -16592,8 +16592,8 @@ $(pv_value) 53 false 763e00b7:150973f1dd8:-6638 - 143 - 1549 + 155 + 1567 @@ -16639,8 +16639,8 @@ $(pv_value) Check Box 21 763e00b7:150973f1dd8:-6637 - 58 - 1549 + 70 + 1567 @@ -16691,8 +16691,8 @@ $(pv_value) 85 false 763e00b7:150973f1dd8:-6636 - 195 - 1549 + 207 + 1567 @@ -16743,8 +16743,8 @@ $(pv_value) 47 false 763e00b7:150973f1dd8:-6635 - 97 - 1568 + 109 + 1586 @@ -16783,8 +16783,8 @@ $(pv_value) 28 false 763e00b7:150973f1dd8:-6634 - 12 - 1568 + 24 + 1586 @@ -16835,8 +16835,8 @@ $(pv_value) 53 false 763e00b7:150973f1dd8:-6633 - 143 - 1568 + 155 + 1586 @@ -16882,8 +16882,8 @@ $(pv_value) Check Box 21 763e00b7:150973f1dd8:-6632 - 58 - 1568 + 70 + 1586 @@ -16934,8 +16934,8 @@ $(pv_value) 85 false 763e00b7:150973f1dd8:-6631 - 195 - 1568 + 207 + 1586 @@ -16986,8 +16986,8 @@ $(pv_value) 47 false 763e00b7:150973f1dd8:-6630 - 97 - 1587 + 109 + 1605 @@ -17026,8 +17026,8 @@ $(pv_value) 28 false 763e00b7:150973f1dd8:-662f - 12 - 1587 + 24 + 1605 @@ -17078,8 +17078,8 @@ $(pv_value) 53 false 763e00b7:150973f1dd8:-662e - 143 - 1587 + 155 + 1605 @@ -17125,8 +17125,8 @@ $(pv_value) Check Box 21 763e00b7:150973f1dd8:-662d - 58 - 1587 + 70 + 1605 @@ -17177,7 +17177,47 @@ $(pv_value) 85 false 763e00b7:150973f1dd8:-662c - 195 - 1587 + 207 + 1605 + + + + false + + + + + + + 0 + 1 + true + + Default Bold + + + + + 20 + 1 + Label_83 + + + true + true + false + + + Statistics + + true + 1 + true + Label + 120 + false + 6b3345f4:17760d4a2f0:-789d + 97 + 12 \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Core/SB/scripts/ClearLog.js b/core/base/tools/commander/workspace_template/Displays/Core/SB/scripts/ClearLog.js deleted file mode 100644 index 22535571e..000000000 --- a/core/base/tools/commander/workspace_template/Displays/Core/SB/scripts/ClearLog.js +++ /dev/null @@ -1,4 +0,0 @@ -importPackage(Packages.org.csstudio.opibuilder.scriptUtil); -importPackage(Packages.org.yamcs.studio.script); - -Yamcs.issueCommand('/cfs/cfe_sb/ClearLog(arg: none)'); \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Core/SB/scripts/NoOp.js b/core/base/tools/commander/workspace_template/Displays/Core/SB/scripts/NoOp.js deleted file mode 100644 index 355a234b2..000000000 --- a/core/base/tools/commander/workspace_template/Displays/Core/SB/scripts/NoOp.js +++ /dev/null @@ -1,4 +0,0 @@ -importPackage(Packages.org.csstudio.opibuilder.scriptUtil); -importPackage(Packages.org.yamcs.studio.script); - -Yamcs.issueCommand('/cfs/cfe_sb/NoOp(arg: none)'); \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Core/SB/scripts/ResetCounters.js b/core/base/tools/commander/workspace_template/Displays/Core/SB/scripts/ResetCounters.js deleted file mode 100644 index 093a00776..000000000 --- a/core/base/tools/commander/workspace_template/Displays/Core/SB/scripts/ResetCounters.js +++ /dev/null @@ -1,4 +0,0 @@ -importPackage(Packages.org.csstudio.opibuilder.scriptUtil); -importPackage(Packages.org.yamcs.studio.script); - -Yamcs.issueCommand('/cfs/cfe_sb/Reset(arg: none)'); \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Core/TBL/AbortTableLoad.opi b/core/base/tools/commander/workspace_template/Displays/Core/TBL/AbortTableLoad.opi index 4d81774b8..a1857a202 100644 --- a/core/base/tools/commander/workspace_template/Displays/Core/TBL/AbortTableLoad.opi +++ b/core/base/tools/commander/workspace_template/Displays/Core/TBL/AbortTableLoad.opi @@ -15,11 +15,11 @@ 6 - 90 + 110 true - + CFE-TBL - Abort Table Load true @@ -84,16 +84,16 @@ Yamcs.issueCommand(cmd); - Abort Table Load + Abort false $(pv_name) $(pv_value) true Action Button - 163 + 91 35ebaa52:1509cf6a868:-78ea - 60 - 54 + 96 + 72 @@ -129,11 +129,11 @@ $(pv_value) 1 true Label - 71 + 79 false 35ebaa52:1509cf6a868:-78e9 - 26 - 18 + 18 + 42 @@ -190,6 +190,46 @@ $(pv_value) 153 35ebaa52:1509cf6a868:-78e7 108 - 18 + 42 + + + + false + + + + + + + 0 + 1 + true + + Default Bold + + + + + 20 + 1 + Label_1 + + + true + true + false + + + Abort Table Load + + true + 1 + true + Label + 151 + false + 6b3345f4:17760d4a2f0:-7325 + 66 + 12 \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Core/TBL/ActivateTable.opi b/core/base/tools/commander/workspace_template/Displays/Core/TBL/ActivateTable.opi index 62ecf8599..27c90de5a 100644 --- a/core/base/tools/commander/workspace_template/Displays/Core/TBL/ActivateTable.opi +++ b/core/base/tools/commander/workspace_template/Displays/Core/TBL/ActivateTable.opi @@ -15,11 +15,11 @@ 6 - 90 + 100 true - + CFE-TBL - Activate Table true @@ -84,16 +84,16 @@ Yamcs.issueCommand(cmd); - Activate Table + Activate false $(pv_name) $(pv_value) true Action Button - 163 + 103 35ebaa52:1509cf6a868:-78ea - 60 - 54 + 82 + 66 @@ -129,11 +129,11 @@ $(pv_value) 1 true Label - 71 + 85 false 35ebaa52:1509cf6a868:-78e9 - 26 - 18 + 12 + 36 @@ -190,6 +190,46 @@ $(pv_value) 153 35ebaa52:1509cf6a868:-78e7 108 - 18 + 36 + + + + false + + + + + + + 0 + 1 + true + + Default Bold + + + + + 20 + 1 + Label_1 + + + true + true + false + + + Activate Table + + true + 1 + true + Label + 112 + false + 6b3345f4:17760d4a2f0:-7334 + 78 + 12 \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Core/TBL/DeleteCDS.opi b/core/base/tools/commander/workspace_template/Displays/Core/TBL/DeleteCDS.opi index 1cccf1237..9bcf23a9f 100644 --- a/core/base/tools/commander/workspace_template/Displays/Core/TBL/DeleteCDS.opi +++ b/core/base/tools/commander/workspace_template/Displays/Core/TBL/DeleteCDS.opi @@ -15,11 +15,11 @@ 6 - 90 + 110 true - + CFE-TBL - Delete CDS true @@ -84,16 +84,16 @@ Yamcs.issueCommand(cmd); - Delete CDS + Delete false $(pv_name) $(pv_value) true Action Button - 163 + 91 35ebaa52:1509cf6a868:-78ea - 60 - 54 + 88 + 66 @@ -129,11 +129,11 @@ $(pv_value) 1 true Label - 71 + 85 false 35ebaa52:1509cf6a868:-78e9 - 26 - 18 + 12 + 36 @@ -190,6 +190,46 @@ $(pv_value) 153 35ebaa52:1509cf6a868:-78e7 108 - 18 + 36 + + + + false + + + + + + + 0 + 1 + true + + Default Bold + + + + + 20 + 1 + Label_1 + + + true + true + false + + + Delete CDS + + true + 1 + true + Label + 112 + false + 6b3345f4:17760d4a2f0:-7346 + 78 + 12 \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Core/TBL/DumpRegistry.opi b/core/base/tools/commander/workspace_template/Displays/Core/TBL/DumpRegistry.opi index bf041b113..8acff9961 100644 --- a/core/base/tools/commander/workspace_template/Displays/Core/TBL/DumpRegistry.opi +++ b/core/base/tools/commander/workspace_template/Displays/Core/TBL/DumpRegistry.opi @@ -19,7 +19,7 @@ true - + CFE-TBL - Dump Registry true @@ -154,7 +154,7 @@ $(pv_value) 1 true - Default + Default Bold @@ -169,7 +169,7 @@ $(pv_value) false - Write Registry to file system. + Write Registry to File System true 1 diff --git a/core/base/tools/commander/workspace_template/Displays/Core/TBL/DumpTable.opi b/core/base/tools/commander/workspace_template/Displays/Core/TBL/DumpTable.opi index 1fbd294c4..20171565c 100644 --- a/core/base/tools/commander/workspace_template/Displays/Core/TBL/DumpTable.opi +++ b/core/base/tools/commander/workspace_template/Displays/Core/TBL/DumpTable.opi @@ -19,7 +19,7 @@ true - + CFE-TBL - Dump Table true @@ -100,15 +100,15 @@ Yamcs.issueCommand(cmd); - Load Table + Dump false $(pv_name) $(pv_value) true Action Button - 163 + 91 35ebaa52:1509cf6a868:-78ea - 54 + 90 132 @@ -145,10 +145,10 @@ $(pv_value) 1 true Label - 71 + 79 false 35ebaa52:1509cf6a868:-78e9 - 20 + 12 72 @@ -164,7 +164,7 @@ $(pv_value) 1 true - Default + Default Bold @@ -179,7 +179,7 @@ $(pv_value) false - Load table from file system. + Dump Table to File System true 1 diff --git a/core/base/tools/commander/workspace_template/Displays/Core/TBL/LoadTable.opi b/core/base/tools/commander/workspace_template/Displays/Core/TBL/LoadTable.opi index 2c1db572c..4fbfb8d52 100644 --- a/core/base/tools/commander/workspace_template/Displays/Core/TBL/LoadTable.opi +++ b/core/base/tools/commander/workspace_template/Displays/Core/TBL/LoadTable.opi @@ -15,11 +15,11 @@ 6 - 135 + 120 true - + CFE-TBL - Load Table true @@ -90,16 +90,16 @@ Yamcs.issueCommand(cmd); - Load Table + Load false $(pv_name) $(pv_value) true Action Button - 163 + 89 35ebaa52:1509cf6a868:-78ea - 54 - 90 + 95 + 78 @@ -139,7 +139,7 @@ $(pv_value) false 35ebaa52:1509cf6a868:-78e9 20 - 48 + 42 @@ -154,7 +154,7 @@ $(pv_value) 1 true - Default + Default Bold @@ -169,7 +169,7 @@ $(pv_value) false - Load table from file system. + Load Table from File System. true 1 @@ -236,6 +236,6 @@ $(pv_value) 189 35ebaa52:1509cf6a868:-78e7 54 - 48 + 42 \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Core/TBL/Main.opi b/core/base/tools/commander/workspace_template/Displays/Core/TBL/Main.opi index 193e7bd18..5e1922a50 100644 --- a/core/base/tools/commander/workspace_template/Displays/Core/TBL/Main.opi +++ b/core/base/tools/commander/workspace_template/Displays/Core/TBL/Main.opi @@ -19,7 +19,7 @@ true - + CFE-TBL - Main true @@ -988,7 +988,7 @@ $(pv_value) This command performs no other function than to increment the command execution counter. The command may be used to verify general aliveness of the Event Services task. true Action Button - 67 + 85 39deb42:1504a4eb8cc:-7de2 276 55 @@ -1042,7 +1042,7 @@ $(pv_value) $(pv_value) true Action Button - 67 + 85 -9ddfcbe:1507831914f:-7cfc 276 74 diff --git a/core/base/tools/commander/workspace_template/Displays/Core/TBL/ValidateTable.opi b/core/base/tools/commander/workspace_template/Displays/Core/TBL/ValidateTable.opi index 19e5f3c57..e11201cbf 100644 --- a/core/base/tools/commander/workspace_template/Displays/Core/TBL/ValidateTable.opi +++ b/core/base/tools/commander/workspace_template/Displays/Core/TBL/ValidateTable.opi @@ -19,7 +19,7 @@ true - + CFE-TBL - Validate Table true @@ -35,7 +35,7 @@ - ../scripts/RestartApp.js + true @@ -93,15 +96,15 @@ Yamcs.issueCommand(cmd); - Validate Table + Validate false $(pv_name) $(pv_value) true Action Button - 163 + 109 35ebaa52:1509cf6a868:-78ea - 54 + 81 108 @@ -138,10 +141,10 @@ $(pv_value) 1 true Label - 71 + 79 false 35ebaa52:1509cf6a868:-78e9 - 20 + 12 72 @@ -157,7 +160,7 @@ $(pv_value) 1 true - Default + Default Bold @@ -172,7 +175,7 @@ $(pv_value) false - Validate table + Validate Table true 1 diff --git a/core/base/tools/commander/workspace_template/Displays/Core/TBL/ViewRegistry.opi b/core/base/tools/commander/workspace_template/Displays/Core/TBL/ViewRegistry.opi index 3b4d85476..512a2e644 100644 --- a/core/base/tools/commander/workspace_template/Displays/Core/TBL/ViewRegistry.opi +++ b/core/base/tools/commander/workspace_template/Displays/Core/TBL/ViewRegistry.opi @@ -15,11 +15,11 @@ 6 - 460 + 470 true - + CFE-TBL - Write Map Info true @@ -35,16 +35,14 @@ - ../scripts/RestartApp.js + true @@ -93,7 +91,7 @@ $(pv_value) 163 35ebaa52:1509cf6a868:-78ea 60 - 54 + 72 @@ -129,11 +127,11 @@ $(pv_value) 1 true Label - 71 + 81 false 35ebaa52:1509cf6a868:-78e9 - 26 - 18 + 19 + 42 @@ -189,8 +187,8 @@ $(pv_value) Text Input 153 35ebaa52:1509cf6a868:-78e7 - 108 - 18 + 111 + 42 @@ -242,7 +240,7 @@ $(pv_value) false 35ebaa52:1509cf6a868:-777b 174 - 121 + 139 @@ -294,7 +292,7 @@ $(pv_value) false 35ebaa52:1509cf6a868:-777a 174 - 140 + 158 @@ -346,7 +344,7 @@ $(pv_value) false 35ebaa52:1509cf6a868:-7778 174 - 178 + 196 @@ -398,7 +396,7 @@ $(pv_value) false 35ebaa52:1509cf6a868:-7777 174 - 197 + 215 @@ -450,7 +448,7 @@ $(pv_value) false 35ebaa52:1509cf6a868:-7775 174 - 216 + 234 @@ -502,7 +500,7 @@ $(pv_value) false 35ebaa52:1509cf6a868:-7774 174 - 235 + 253 @@ -554,7 +552,7 @@ $(pv_value) false 35ebaa52:1509cf6a868:-7773 174 - 254 + 272 @@ -606,7 +604,7 @@ $(pv_value) false 35ebaa52:1509cf6a868:-7772 174 - 273 + 291 @@ -658,7 +656,7 @@ $(pv_value) false 35ebaa52:1509cf6a868:-776d 174 - 102 + 120 @@ -710,7 +708,7 @@ $(pv_value) false 35ebaa52:1509cf6a868:-776c 174 - 368 + 386 @@ -762,7 +760,7 @@ $(pv_value) false 35ebaa52:1509cf6a868:-776b 174 - 387 + 405 @@ -814,7 +812,7 @@ $(pv_value) false 35ebaa52:1509cf6a868:-776a 174 - 406 + 424 @@ -854,7 +852,7 @@ $(pv_value) false 35ebaa52:1509cf6a868:-7749 86 - 121 + 139 @@ -894,7 +892,7 @@ $(pv_value) false 35ebaa52:1509cf6a868:-7741 86 - 140 + 158 @@ -934,7 +932,7 @@ $(pv_value) false 35ebaa52:1509cf6a868:-773c 31 - 178 + 196 @@ -974,7 +972,7 @@ $(pv_value) false 35ebaa52:1509cf6a868:-7730 31 - 159 + 177 @@ -1014,7 +1012,7 @@ $(pv_value) false 35ebaa52:1509cf6a868:-7721 53 - 368 + 386 @@ -1054,7 +1052,7 @@ $(pv_value) false 35ebaa52:1509cf6a868:-771c 16 - 216 + 234 @@ -1094,7 +1092,7 @@ $(pv_value) false 35ebaa52:1509cf6a868:-7717 2 - 197 + 215 @@ -1146,7 +1144,7 @@ $(pv_value) false 35ebaa52:1509cf6a868:-76ca 174 - 159 + 177 @@ -1186,7 +1184,7 @@ $(pv_value) false 35ebaa52:1509cf6a868:-76b4 16 - 254 + 272 @@ -1233,7 +1231,7 @@ $(pv_value) 24 35ebaa52:1509cf6a868:-767f 176 - 292 + 310 @@ -1280,7 +1278,7 @@ $(pv_value) 24 35ebaa52:1509cf6a868:-767e 176 - 311 + 329 @@ -1320,7 +1318,7 @@ $(pv_value) false 35ebaa52:1509cf6a868:-7674 16 - 292 + 310 @@ -1360,7 +1358,7 @@ $(pv_value) false 35ebaa52:1509cf6a868:-766a 16 - 311 + 329 @@ -1407,7 +1405,7 @@ $(pv_value) 24 35ebaa52:1509cf6a868:-7659 176 - 330 + 348 @@ -1454,7 +1452,7 @@ $(pv_value) 24 35ebaa52:1509cf6a868:-7651 176 - 349 + 367 @@ -1494,7 +1492,7 @@ $(pv_value) false 35ebaa52:1509cf6a868:-7649 16 - 330 + 348 @@ -1534,7 +1532,7 @@ $(pv_value) false 35ebaa52:1509cf6a868:-763f 16 - 349 + 367 @@ -1574,7 +1572,7 @@ $(pv_value) false 35ebaa52:1509cf6a868:-7635 86 - 102 + 120 @@ -1610,11 +1608,11 @@ $(pv_value) 1 true Label - 113 + 130 false 35ebaa52:1509cf6a868:-7629 - 53 - 387 + 36 + 405 @@ -1654,7 +1652,7 @@ $(pv_value) false 35ebaa52:1509cf6a868:-761f 53 - 406 + 424 @@ -1701,7 +1699,7 @@ $(pv_value) 24 35ebaa52:1509cf6a868:-7613 176 - 425 + 443 @@ -1741,6 +1739,46 @@ $(pv_value) false 35ebaa52:1509cf6a868:-760b 53 - 425 + 443 + + + + false + + + + + + + 0 + 1 + true + + Default Bold + + + + + 20 + 1 + Label_26 + + + true + true + false + + + Write Map Info to File System + + true + 1 + true + Label + 231 + false + 6b3345f4:17760d4a2f0:-736d + 26 + 12 \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Core/TBL/scripts/NoOp.js b/core/base/tools/commander/workspace_template/Displays/Core/TBL/scripts/NoOp.js deleted file mode 100644 index c6be976e9..000000000 --- a/core/base/tools/commander/workspace_template/Displays/Core/TBL/scripts/NoOp.js +++ /dev/null @@ -1,4 +0,0 @@ -importPackage(Packages.org.csstudio.opibuilder.scriptUtil); -importPackage(Packages.org.yamcs.studio.script); - -Yamcs.issueCommand('/cfs/cfe_tbl/NoOp(arg: none)'); \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Core/TBL/scripts/ResetCounters.js b/core/base/tools/commander/workspace_template/Displays/Core/TBL/scripts/ResetCounters.js deleted file mode 100644 index 651c61131..000000000 --- a/core/base/tools/commander/workspace_template/Displays/Core/TBL/scripts/ResetCounters.js +++ /dev/null @@ -1,4 +0,0 @@ -importPackage(Packages.org.csstudio.opibuilder.scriptUtil); -importPackage(Packages.org.yamcs.studio.script); - -Yamcs.issueCommand('/cfs/cfe_tbl/Reset(arg: none)'); \ No newline at end of file From 3995e0fccaddce3fc2828fc7bb6c17a2f60dbac3 Mon Sep 17 00:00:00 2001 From: cnalley Date: Tue, 2 Feb 2021 16:39:30 +0000 Subject: [PATCH 017/370] Add udp flat tables for testing. --- .../target/apps/sbn/tables/SbnModuleData.dat | 9 ++++ .../target/apps/sbn/tables/SbnPeerData.dat | 51 +++++++++++++++++++ .../target/apps/sbn/tables/SbnModuleData.dat | 9 ++++ .../target/apps/sbn/tables/SbnPeerData.dat | 51 +++++++++++++++++++ 4 files changed, 120 insertions(+) create mode 100644 config/obc/cpd/target/apps/sbn/tables/SbnModuleData.dat create mode 100644 config/obc/cpd/target/apps/sbn/tables/SbnPeerData.dat create mode 100644 config/obc/ppd/target/apps/sbn/tables/SbnModuleData.dat create mode 100644 config/obc/ppd/target/apps/sbn/tables/SbnPeerData.dat diff --git a/config/obc/cpd/target/apps/sbn/tables/SbnModuleData.dat b/config/obc/cpd/target/apps/sbn/tables/SbnModuleData.dat new file mode 100644 index 000000000..9c5fca3ff --- /dev/null +++ b/config/obc/cpd/target/apps/sbn/tables/SbnModuleData.dat @@ -0,0 +1,9 @@ +5, UIO_MBOX, /cf/apps/sbn_uio_mbox.so, SBN_UIO_Mbox_Ops; + +! +! Format: ProtocolId, ModuleLocation, IFStructName +! +! Protocol id 1 = UDP, 2 = TCP, 3 = SpacewireRMAP, 4 = Spacewire packet, 5 = Shared Memory, 6 = Serial, 7 = 1553, 8 = DTN +! +! IFStructName is the name of the SBN_InterfaceOperations struct defined for the +! module. diff --git a/config/obc/cpd/target/apps/sbn/tables/SbnPeerData.dat b/config/obc/cpd/target/apps/sbn/tables/SbnPeerData.dat new file mode 100644 index 000000000..e39f67a9a --- /dev/null +++ b/config/obc/cpd/target/apps/sbn/tables/SbnPeerData.dat @@ -0,0 +1,51 @@ +CPU1, 1, 5, 0x42, 0, 0, /dev/uio0, 0; +CPU2, 2, 5, 0x42, 0, 0, /dev/uio0, 0; +! +! The '!' is inserted after the last valid peer line, +! it is not a comment character. +! +! The file may contain up to SBN_MAX_NETWORK_PEERS as defined in sbn_app.h +! +! Column 1: CPU Name (must match CFE_CPU_NAME [in cfe_platform_cfg.h]) +! +! Column 2: CPU ID (must match CFE_CPU_ID [in cfe_platform_cfg.h]) +! +! Column 3: Protocol ID (1 = UDP, 2 = TCP, 3 = SpacewireRMAP, +! 4 = Spacewire packet, 5 = Shared Memory, 6 = Serial, 7 = 1553, +! 8 = DTN +! +! Column 4: Spacecraft ID (must match return value of CFE_PSP_GetSpacecraftID()) +! +! Column 5: QoS (need to describe) +! +! Column 6: Network Number (for grouping affiliated peers, to determine +! which host interface is needed for which peer.) +! +! Columns 7+: Protocol ID-dependent. +! UDP/TCP: 7 = hostname/ip, 8 = port +! +! UDP example: +! +! CPU1, 1, 1, 42, 0, 0, 192.168.1.76, 15820; +! CPU2, 2, 1, 42, 1, 0, 192.168.1.77, 15820; +! The ProtoPort is arbitrary, but must be unique for processor/system. +! +! Shared Memory example (may need updates): +! +! CPU1, 1, 5, 0, 0, 0, 0xfffd0000, 0x1000, 0xfffd1000, 0x1000, 0xfffd2000, 0x1000, 0xfffd3000, 0x1000; +! CPU2, 2, 5, 0, 1, 0, 0xfffd1000, 0x1000, 0xfffd0000, 0x1000, 0xfffd3000, 0x1000, 0xfffd2000, 0x1000; +! +! Serial example (may need updates): +! +! CPU1, 1, 6, 0, 0, 0, /dev/ttyS1, 230400; +! CPU2, 2, 6, 0, 0, 0, /dev/ttyS1, 230400; +! CPU1, 1, 6, 0, 1, 1, /dev/ttyS2, 115200; +! CPU3, 2, 6, 0, 1, 1, /dev/ttyS1, 115200; +! +! NOTE on baud rate: The baud rate must match between pairs, and must be one of the following values: +! 38400, 57600, 115200, 230400 +! Larger baud rates are preferred, especially if SBN will be routing messages larger than 100 bytes. +! However, the highest baud rate may produce tty overruns so test different baud rates for your +! specific system. diff --git a/config/obc/ppd/target/apps/sbn/tables/SbnModuleData.dat b/config/obc/ppd/target/apps/sbn/tables/SbnModuleData.dat new file mode 100644 index 000000000..9c5fca3ff --- /dev/null +++ b/config/obc/ppd/target/apps/sbn/tables/SbnModuleData.dat @@ -0,0 +1,9 @@ +5, UIO_MBOX, /cf/apps/sbn_uio_mbox.so, SBN_UIO_Mbox_Ops; + +! +! Format: ProtocolId, ModuleLocation, IFStructName +! +! Protocol id 1 = UDP, 2 = TCP, 3 = SpacewireRMAP, 4 = Spacewire packet, 5 = Shared Memory, 6 = Serial, 7 = 1553, 8 = DTN +! +! IFStructName is the name of the SBN_InterfaceOperations struct defined for the +! module. diff --git a/config/obc/ppd/target/apps/sbn/tables/SbnPeerData.dat b/config/obc/ppd/target/apps/sbn/tables/SbnPeerData.dat new file mode 100644 index 000000000..e39f67a9a --- /dev/null +++ b/config/obc/ppd/target/apps/sbn/tables/SbnPeerData.dat @@ -0,0 +1,51 @@ +CPU1, 1, 5, 0x42, 0, 0, /dev/uio0, 0; +CPU2, 2, 5, 0x42, 0, 0, /dev/uio0, 0; +! +! The '!' is inserted after the last valid peer line, +! it is not a comment character. +! +! The file may contain up to SBN_MAX_NETWORK_PEERS as defined in sbn_app.h +! +! Column 1: CPU Name (must match CFE_CPU_NAME [in cfe_platform_cfg.h]) +! +! Column 2: CPU ID (must match CFE_CPU_ID [in cfe_platform_cfg.h]) +! +! Column 3: Protocol ID (1 = UDP, 2 = TCP, 3 = SpacewireRMAP, +! 4 = Spacewire packet, 5 = Shared Memory, 6 = Serial, 7 = 1553, +! 8 = DTN +! +! Column 4: Spacecraft ID (must match return value of CFE_PSP_GetSpacecraftID()) +! +! Column 5: QoS (need to describe) +! +! Column 6: Network Number (for grouping affiliated peers, to determine +! which host interface is needed for which peer.) +! +! Columns 7+: Protocol ID-dependent. +! UDP/TCP: 7 = hostname/ip, 8 = port +! +! UDP example: +! +! CPU1, 1, 1, 42, 0, 0, 192.168.1.76, 15820; +! CPU2, 2, 1, 42, 1, 0, 192.168.1.77, 15820; +! The ProtoPort is arbitrary, but must be unique for processor/system. +! +! Shared Memory example (may need updates): +! +! CPU1, 1, 5, 0, 0, 0, 0xfffd0000, 0x1000, 0xfffd1000, 0x1000, 0xfffd2000, 0x1000, 0xfffd3000, 0x1000; +! CPU2, 2, 5, 0, 1, 0, 0xfffd1000, 0x1000, 0xfffd0000, 0x1000, 0xfffd3000, 0x1000, 0xfffd2000, 0x1000; +! +! Serial example (may need updates): +! +! CPU1, 1, 6, 0, 0, 0, /dev/ttyS1, 230400; +! CPU2, 2, 6, 0, 0, 0, /dev/ttyS1, 230400; +! CPU1, 1, 6, 0, 1, 1, /dev/ttyS2, 115200; +! CPU3, 2, 6, 0, 1, 1, /dev/ttyS1, 115200; +! +! NOTE on baud rate: The baud rate must match between pairs, and must be one of the following values: +! 38400, 57600, 115200, 230400 +! Larger baud rates are preferred, especially if SBN will be routing messages larger than 100 bytes. +! However, the highest baud rate may produce tty overruns so test different baud rates for your +! specific system. From 74ac2af105cd1a7244b21c0cfb0e9789e7c2b1e6 Mon Sep 17 00:00:00 2001 From: cnalley Date: Tue, 2 Feb 2021 16:41:12 +0000 Subject: [PATCH 018/370] Move UDP flat tables to specific folder. --- config/obc/cpd/target/apps/sbn/tables/{ => udp}/SbnModuleData.dat | 0 config/obc/cpd/target/apps/sbn/tables/{ => udp}/SbnPeerData.dat | 0 config/obc/ppd/target/apps/sbn/tables/{ => udp}/SbnModuleData.dat | 0 config/obc/ppd/target/apps/sbn/tables/{ => udp}/SbnPeerData.dat | 0 4 files changed, 0 insertions(+), 0 deletions(-) rename config/obc/cpd/target/apps/sbn/tables/{ => udp}/SbnModuleData.dat (100%) rename config/obc/cpd/target/apps/sbn/tables/{ => udp}/SbnPeerData.dat (100%) rename config/obc/ppd/target/apps/sbn/tables/{ => udp}/SbnModuleData.dat (100%) rename config/obc/ppd/target/apps/sbn/tables/{ => udp}/SbnPeerData.dat (100%) diff --git a/config/obc/cpd/target/apps/sbn/tables/SbnModuleData.dat b/config/obc/cpd/target/apps/sbn/tables/udp/SbnModuleData.dat similarity index 100% rename from config/obc/cpd/target/apps/sbn/tables/SbnModuleData.dat rename to config/obc/cpd/target/apps/sbn/tables/udp/SbnModuleData.dat diff --git a/config/obc/cpd/target/apps/sbn/tables/SbnPeerData.dat b/config/obc/cpd/target/apps/sbn/tables/udp/SbnPeerData.dat similarity index 100% rename from config/obc/cpd/target/apps/sbn/tables/SbnPeerData.dat rename to config/obc/cpd/target/apps/sbn/tables/udp/SbnPeerData.dat diff --git a/config/obc/ppd/target/apps/sbn/tables/SbnModuleData.dat b/config/obc/ppd/target/apps/sbn/tables/udp/SbnModuleData.dat similarity index 100% rename from config/obc/ppd/target/apps/sbn/tables/SbnModuleData.dat rename to config/obc/ppd/target/apps/sbn/tables/udp/SbnModuleData.dat diff --git a/config/obc/ppd/target/apps/sbn/tables/SbnPeerData.dat b/config/obc/ppd/target/apps/sbn/tables/udp/SbnPeerData.dat similarity index 100% rename from config/obc/ppd/target/apps/sbn/tables/SbnPeerData.dat rename to config/obc/ppd/target/apps/sbn/tables/udp/SbnPeerData.dat From 28388640c3d9353170fe3a1ae397d32359fd89e9 Mon Sep 17 00:00:00 2001 From: lorenzo-gomez-windhover Date: Tue, 2 Feb 2021 11:34:12 -0600 Subject: [PATCH 019/370] -Fixed PV Values in Apps Main OPI --- .../workspace_template/Displays/Apps/Main.opi | 32 +++++++++---------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/Main.opi b/core/base/tools/commander/workspace_template/Displays/Apps/Main.opi index d3d037225..e161ea9e4 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/Main.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/Main.opi @@ -60,7 +60,7 @@ Text Update 0 false - /cfs/cs/CS_HkTlm_t.usCmdCnt + /cfs/cs/CS_HkPacket_t.CmdCounter 0.0 @@ -152,7 +152,7 @@ $(pv_value) Text Update_1 0 false - /cfs/cs/CS_HkTlm_t.usCmdErrCnt + /cfs/cs/CS_HkPacket_t.CmdErrCounter 0.0 @@ -756,7 +756,7 @@ $(pv_value) Text Update_4 0 false - /cfs/ds/DS_HkTlm_t.usCmdCnt + /cfs/ds/DS_HkPacket_t.CmdAcceptedCounter 0.0 @@ -808,7 +808,7 @@ $(pv_value) Text Update_5 0 false - /cfs/ds/DS_HkTlm_t.usCmdErrCnt + /cfs/ds/DS_HkPacket_t.CmdRejectedCounter 0.0 @@ -1063,7 +1063,7 @@ $(pv_value) Text Update_8 0 false - /cfs/fm/FM_HkTlm_t.usCmdCnt + /cfs/fm/FM_HousekeepingPkt_t.CommandCounter 0.0 @@ -1115,7 +1115,7 @@ $(pv_value) Text Update_9 0 false - /cfs/hk/HK_HkTlm_t.usCmdErrCnt + /cfs/hk/HK_HkPacket_t.ErrCounter 0.0 @@ -1370,7 +1370,7 @@ $(pv_value) Text Update_10 0 false - /cfs/hk/HK_HkTlm_t.usCmdCnt + /cfs/hk/HK_HkPacket_t.CmdCounter 0.0 @@ -1422,7 +1422,7 @@ $(pv_value) Text Update_11 0 false - /cfs/hk/HK_HkTlm_t.usCmdErrCnt + /cfs/hk/HK_HkPacket_t.ErrCounter 0.0 @@ -1988,7 +1988,7 @@ $(pv_value) Text Update_14 0 false - /cfs/hs/HS_HkTlm_t.usCmdCnt + /cfs/hs/HS_HkPacket_t.CmdCount 0.0 @@ -2040,7 +2040,7 @@ $(pv_value) Text Update_15 0 false - /cfs/hs/HS_HkTlm_t.usCmdErrCnt + /cfs/hs/HS_HkPacket_t.CmdErrCount 0.0 @@ -2295,7 +2295,7 @@ $(pv_value) Text Update_16 0 false - /cfs/lc/LC_HkTlm_t.usCmdCnt + /cfs/lc/LC_HkPacket_t.CmdCount 0.0 @@ -2347,7 +2347,7 @@ $(pv_value) Text Update_17 0 false - /cfs/lc/LC_HkTlm_t.usCmdErrCnt + /cfs/lc/LC_HkPacket_t.CmdErrCount 0.0 @@ -2602,7 +2602,7 @@ $(pv_value) Text Update_18 0 false - /cfs/md/MD_HkTlm_t.usCmdCnt + /cfs/md/MD_HkTlm_t.ValidCmdCntr 0.0 @@ -2654,7 +2654,7 @@ $(pv_value) Text Update_19 0 false - /cfs/md/MD_HkTlm_t.usCmdErrCnt + /cfs/md/MD_HkTlm_t.ValidCmdCntr 0.0 @@ -2909,7 +2909,7 @@ $(pv_value) Text Update_20 0 false - /cfs/mm/MM_HkTlm_t.usCmdCnt + /cfs/mm/MM_HkPacket_t.CmdCounter 0.0 @@ -2961,7 +2961,7 @@ $(pv_value) Text Update_21 0 false - /cfs/mm/MM_HkTlm_t.usCmdErrCnt + /cfs/mm/MM_HkPacket_t.ErrCounter 0.0 From 55877034d9fe6e470160fb9db9d58d555cadc429 Mon Sep 17 00:00:00 2001 From: lorenzo-gomez-windhover Date: Tue, 2 Feb 2021 12:05:44 -0600 Subject: [PATCH 020/370] -Updated command scripts for apps --- .../Displays/Apps/FM/scripts/NoOp.js | 2 +- .../Displays/Apps/FM/scripts/ResetCounters.js | 2 +- .../Displays/Apps/HK/scripts/NoOp.js | 2 +- .../Displays/Apps/HK/scripts/ResetCounters.js | 2 +- .../Displays/Apps/HS/scripts/NoOp.js | 2 +- .../Displays/Apps/HS/scripts/ResetCounters.js | 2 +- .../Displays/Apps/LC/scripts/NoOp.js | 2 +- .../Displays/Apps/LC/scripts/ResetCounters.js | 2 +- .../Displays/Apps/MD/scripts/NoOp.js | 2 +- .../Displays/Apps/MD/scripts/ResetCounters.js | 2 +- .../Displays/Apps/MM/scripts/NoOp.js | 2 +- .../Displays/Apps/MM/scripts/ResetCounters.js | 2 +- .../workspace_template/Displays/Apps/Main.opi | 18 +++++++++++------- .../Displays/Apps/SC/scripts/ResetCounters.js | 2 +- .../Displays/Apps/SCH/scripts/NoOp.js | 2 +- .../Displays/Apps/SCH/scripts/ResetCounters.js | 2 +- 16 files changed, 26 insertions(+), 22 deletions(-) diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/FM/scripts/NoOp.js b/core/base/tools/commander/workspace_template/Displays/Apps/FM/scripts/NoOp.js index f7801e579..b07c7b248 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/FM/scripts/NoOp.js +++ b/core/base/tools/commander/workspace_template/Displays/Apps/FM/scripts/NoOp.js @@ -1,4 +1,4 @@ importPackage(Packages.org.csstudio.opibuilder.scriptUtil); importPackage(Packages.org.yamcs.studio.script); -Yamcs.issueCommand('/CFS/FM/NoOp(arg: none)'); \ No newline at end of file +Yamcs.issueCommand('/cfs/fm/Noop', {}); \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/FM/scripts/ResetCounters.js b/core/base/tools/commander/workspace_template/Displays/Apps/FM/scripts/ResetCounters.js index 566f0df0a..d2009ab34 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/FM/scripts/ResetCounters.js +++ b/core/base/tools/commander/workspace_template/Displays/Apps/FM/scripts/ResetCounters.js @@ -1,4 +1,4 @@ importPackage(Packages.org.csstudio.opibuilder.scriptUtil); importPackage(Packages.org.yamcs.studio.script); -Yamcs.issueCommand('/CFS/FM/Reset(arg: none)'); \ No newline at end of file +Yamcs.issueCommand('/cfs/fm/Reset', {}); \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/HK/scripts/NoOp.js b/core/base/tools/commander/workspace_template/Displays/Apps/HK/scripts/NoOp.js index f3ef17c18..e1e98562a 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/HK/scripts/NoOp.js +++ b/core/base/tools/commander/workspace_template/Displays/Apps/HK/scripts/NoOp.js @@ -1,4 +1,4 @@ importPackage(Packages.org.csstudio.opibuilder.scriptUtil); importPackage(Packages.org.yamcs.studio.script); -Yamcs.issueCommand('/CFS/HK/NoOp(arg: none)'); \ No newline at end of file +Yamcs.issueCommand('/cfs/hk/Noop', {}); \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/HK/scripts/ResetCounters.js b/core/base/tools/commander/workspace_template/Displays/Apps/HK/scripts/ResetCounters.js index 758f6fa3a..cbac94105 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/HK/scripts/ResetCounters.js +++ b/core/base/tools/commander/workspace_template/Displays/Apps/HK/scripts/ResetCounters.js @@ -1,4 +1,4 @@ importPackage(Packages.org.csstudio.opibuilder.scriptUtil); importPackage(Packages.org.yamcs.studio.script); -Yamcs.issueCommand('/CFS/HK/Reset(arg: none)'); \ No newline at end of file +Yamcs.issueCommand('/cfs/hk/Reset', {}); \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/HS/scripts/NoOp.js b/core/base/tools/commander/workspace_template/Displays/Apps/HS/scripts/NoOp.js index b868f69ea..d57c2f4b8 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/HS/scripts/NoOp.js +++ b/core/base/tools/commander/workspace_template/Displays/Apps/HS/scripts/NoOp.js @@ -1,4 +1,4 @@ importPackage(Packages.org.csstudio.opibuilder.scriptUtil); importPackage(Packages.org.yamcs.studio.script); -Yamcs.issueCommand('/CFS/HS/NoOp(arg: none)'); \ No newline at end of file +Yamcs.issueCommand('/cfs/hs/Noop', {}); \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/HS/scripts/ResetCounters.js b/core/base/tools/commander/workspace_template/Displays/Apps/HS/scripts/ResetCounters.js index b1e066d19..0344dde81 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/HS/scripts/ResetCounters.js +++ b/core/base/tools/commander/workspace_template/Displays/Apps/HS/scripts/ResetCounters.js @@ -1,4 +1,4 @@ importPackage(Packages.org.csstudio.opibuilder.scriptUtil); importPackage(Packages.org.yamcs.studio.script); -Yamcs.issueCommand('/CFS/HS/Reset(arg: none)'); \ No newline at end of file +Yamcs.issueCommand('/cfs/hs/Reset', {}); \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/LC/scripts/NoOp.js b/core/base/tools/commander/workspace_template/Displays/Apps/LC/scripts/NoOp.js index e99b1d9a8..de38c97d6 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/LC/scripts/NoOp.js +++ b/core/base/tools/commander/workspace_template/Displays/Apps/LC/scripts/NoOp.js @@ -1,4 +1,4 @@ importPackage(Packages.org.csstudio.opibuilder.scriptUtil); importPackage(Packages.org.yamcs.studio.script); -Yamcs.issueCommand('/CFS/LC/NoOp(arg: none)'); \ No newline at end of file +Yamcs.issueCommand('/cfs/lc/Noop', {}); \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/LC/scripts/ResetCounters.js b/core/base/tools/commander/workspace_template/Displays/Apps/LC/scripts/ResetCounters.js index bc9a4cc61..c81250ce2 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/LC/scripts/ResetCounters.js +++ b/core/base/tools/commander/workspace_template/Displays/Apps/LC/scripts/ResetCounters.js @@ -1,4 +1,4 @@ importPackage(Packages.org.csstudio.opibuilder.scriptUtil); importPackage(Packages.org.yamcs.studio.script); -Yamcs.issueCommand('/CFS/LC/Reset(arg: none)'); \ No newline at end of file +Yamcs.issueCommand('/cfs/lc/Reset', {}); \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/MD/scripts/NoOp.js b/core/base/tools/commander/workspace_template/Displays/Apps/MD/scripts/NoOp.js index 9ac0b0fcc..9c614e747 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/MD/scripts/NoOp.js +++ b/core/base/tools/commander/workspace_template/Displays/Apps/MD/scripts/NoOp.js @@ -1,4 +1,4 @@ importPackage(Packages.org.csstudio.opibuilder.scriptUtil); importPackage(Packages.org.yamcs.studio.script); -Yamcs.issueCommand('/CFS/MD/NoOp(arg: none)'); \ No newline at end of file +Yamcs.issueCommand('/cfs/md/Noop', {}); \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/MD/scripts/ResetCounters.js b/core/base/tools/commander/workspace_template/Displays/Apps/MD/scripts/ResetCounters.js index b96c6571c..2d1f58114 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/MD/scripts/ResetCounters.js +++ b/core/base/tools/commander/workspace_template/Displays/Apps/MD/scripts/ResetCounters.js @@ -1,4 +1,4 @@ importPackage(Packages.org.csstudio.opibuilder.scriptUtil); importPackage(Packages.org.yamcs.studio.script); -Yamcs.issueCommand('/CFS/MD/Reset(arg: none)'); \ No newline at end of file +Yamcs.issueCommand('/cfs/md/Reset', {}); \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/MM/scripts/NoOp.js b/core/base/tools/commander/workspace_template/Displays/Apps/MM/scripts/NoOp.js index 90fd75a21..685947434 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/MM/scripts/NoOp.js +++ b/core/base/tools/commander/workspace_template/Displays/Apps/MM/scripts/NoOp.js @@ -1,4 +1,4 @@ importPackage(Packages.org.csstudio.opibuilder.scriptUtil); importPackage(Packages.org.yamcs.studio.script); -Yamcs.issueCommand('/CFS/MM/NoOp(arg: none)'); \ No newline at end of file +Yamcs.issueCommand('/cfs/mm/Noop', {}); \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/MM/scripts/ResetCounters.js b/core/base/tools/commander/workspace_template/Displays/Apps/MM/scripts/ResetCounters.js index ea8b03bc3..4d2a3ac4d 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/MM/scripts/ResetCounters.js +++ b/core/base/tools/commander/workspace_template/Displays/Apps/MM/scripts/ResetCounters.js @@ -1,4 +1,4 @@ importPackage(Packages.org.csstudio.opibuilder.scriptUtil); importPackage(Packages.org.yamcs.studio.script); -Yamcs.issueCommand('/CFS/MM/Reset(arg: none)'); \ No newline at end of file +Yamcs.issueCommand('/cfs/mm/Reset', {}); \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/Main.opi b/core/base/tools/commander/workspace_template/Displays/Apps/Main.opi index e161ea9e4..312da056c 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/Main.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/Main.opi @@ -1142,10 +1142,12 @@ $(pv_value) - FM/scripts/NoOp.js + - false +importPackage(Packages.org.yamcs.studio.script); + +Yamcs.issueCommand('/cfs/fm/Noop', {});]]> + true @@ -1196,10 +1198,12 @@ $(pv_value) - FM/scripts/ResetCounters.js + - false +importPackage(Packages.org.yamcs.studio.script); + +Yamcs.issueCommand('/cfs/fm/Reset', {});]]> + true @@ -3523,7 +3527,7 @@ $(pv_value) Text Update_24 0 false - /cfs/sch/SCH_HkPacket_t.ErrCounter + /cfs/sch/SCH_HkPacket_t.CmdCounter 0.0 diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/SC/scripts/ResetCounters.js b/core/base/tools/commander/workspace_template/Displays/Apps/SC/scripts/ResetCounters.js index e6fea9305..715e25b96 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/SC/scripts/ResetCounters.js +++ b/core/base/tools/commander/workspace_template/Displays/Apps/SC/scripts/ResetCounters.js @@ -1,4 +1,4 @@ importPackage(Packages.org.csstudio.opibuilder.scriptUtil); importPackage(Packages.org.yamcs.studio.script); -Yamcs.issueCommand('/cf/sc/Reset', {}); \ No newline at end of file +Yamcs.issueCommand('/cfs/sc/Reset',{}); \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/SCH/scripts/NoOp.js b/core/base/tools/commander/workspace_template/Displays/Apps/SCH/scripts/NoOp.js index e4ca07802..4b454bd19 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/SCH/scripts/NoOp.js +++ b/core/base/tools/commander/workspace_template/Displays/Apps/SCH/scripts/NoOp.js @@ -1,4 +1,4 @@ importPackage(Packages.org.csstudio.opibuilder.scriptUtil); importPackage(Packages.org.yamcs.studio.script); -Yamcs.issueCommand('/cfs/SCH/NoOp(arg: none)'); \ No newline at end of file +Yamcs.issueCommand('/cfs/sch/Noop', {}); \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/SCH/scripts/ResetCounters.js b/core/base/tools/commander/workspace_template/Displays/Apps/SCH/scripts/ResetCounters.js index 09bedf282..71a876bf8 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/SCH/scripts/ResetCounters.js +++ b/core/base/tools/commander/workspace_template/Displays/Apps/SCH/scripts/ResetCounters.js @@ -1,4 +1,4 @@ importPackage(Packages.org.csstudio.opibuilder.scriptUtil); importPackage(Packages.org.yamcs.studio.script); -Yamcs.issueCommand('/CFS/SCH/Reset(arg: none)'); \ No newline at end of file +Yamcs.issueCommand('/cfs/sch/Reset', {}); \ No newline at end of file From f4a9690e4a49f5c516452d6d99203bd4d4d63812 Mon Sep 17 00:00:00 2001 From: lorenzo-gomez-windhover Date: Tue, 2 Feb 2021 12:27:17 -0600 Subject: [PATCH 021/370] -Made scripts embedded for apps Main OPI --- .../Displays/Apps/DS/scripts/NoOp.js | 2 +- .../Displays/Apps/DS/scripts/ResetCounters.js | 2 +- .../workspace_template/Displays/Apps/Main.opi | 162 +++++++++++------- 3 files changed, 104 insertions(+), 62 deletions(-) diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/DS/scripts/NoOp.js b/core/base/tools/commander/workspace_template/Displays/Apps/DS/scripts/NoOp.js index 0d5b03683..c83421048 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/DS/scripts/NoOp.js +++ b/core/base/tools/commander/workspace_template/Displays/Apps/DS/scripts/NoOp.js @@ -1,4 +1,4 @@ importPackage(Packages.org.csstudio.opibuilder.scriptUtil); importPackage(Packages.org.yamcs.studio.script); -Yamcs.issueCommand('/cfs/ds/Noop(arg: none)'); \ No newline at end of file +Yamcs.issueCommand('/cfs/ds/Noop', {}); \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/DS/scripts/ResetCounters.js b/core/base/tools/commander/workspace_template/Displays/Apps/DS/scripts/ResetCounters.js index ef5190df0..ea88615c3 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/DS/scripts/ResetCounters.js +++ b/core/base/tools/commander/workspace_template/Displays/Apps/DS/scripts/ResetCounters.js @@ -1,4 +1,4 @@ importPackage(Packages.org.csstudio.opibuilder.scriptUtil); importPackage(Packages.org.yamcs.studio.script); -Yamcs.issueCommand('/cfs/ds/Reset(arg: none)'); \ No newline at end of file +Yamcs.issueCommand('/cfs/ds/Reset', {}); \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/Main.opi b/core/base/tools/commander/workspace_template/Displays/Apps/Main.opi index 312da056c..7d33636b8 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/Main.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/Main.opi @@ -179,10 +179,12 @@ $(pv_value) - CS/scripts/NoOp.js + - false +importPackage(Packages.org.yamcs.studio.script); + +Yamcs.issueCommand('/cfs/cs/Noop()');]]> + true @@ -233,10 +235,13 @@ $(pv_value) - CS/scripts/ResetCounters.js + - false + true @@ -554,7 +559,7 @@ Yamcs.issueCommand('/cfs/cf/Noop', {});]]> 23 - ../Resources/send.png + /Displays/Resources/send.png NoOp_3 0 @@ -835,10 +840,12 @@ $(pv_value) - DS/scripts/NoOp.js + - false +importPackage(Packages.org.yamcs.studio.script); + +Yamcs.issueCommand('/cfs/ds/Noop', {});]]> + true @@ -889,10 +896,12 @@ $(pv_value) - DS/scripts/ResetCounters.js + - false +importPackage(Packages.org.yamcs.studio.script); + +Yamcs.issueCommand('/cfs/ds/Reset', {});]]> + true @@ -1453,10 +1462,12 @@ $(pv_value) - HK/scripts/NoOp.js + - false +importPackage(Packages.org.yamcs.studio.script); + +Yamcs.issueCommand('/cfs/hk/Noop', {});]]> + true @@ -1507,10 +1518,12 @@ $(pv_value) - HK/scripts/ResetCounters.js + - false +importPackage(Packages.org.yamcs.studio.script); + +Yamcs.issueCommand('/cfs/hk/Reset', {});]]> + true @@ -2071,10 +2084,12 @@ $(pv_value) - HS/scripts/NoOp.js + - false +importPackage(Packages.org.yamcs.studio.script); + +Yamcs.issueCommand('/cfs/hs/Noop', {});]]> + true @@ -2125,10 +2140,12 @@ $(pv_value) - HS/scripts/ResetCounters.js + - false +importPackage(Packages.org.yamcs.studio.script); + +Yamcs.issueCommand('/cfs/hs/Reset', {});]]> + true @@ -2378,10 +2395,12 @@ $(pv_value) - LC/scripts/NoOp.js + - false +importPackage(Packages.org.yamcs.studio.script); + +Yamcs.issueCommand('/cfs/lc/Noop', {});]]> + true @@ -2432,10 +2451,12 @@ $(pv_value) - LC/scripts/ResetCounters.js + - false +importPackage(Packages.org.yamcs.studio.script); + +Yamcs.issueCommand('/cfs/lc/Reset', {});]]> + true @@ -2658,7 +2679,7 @@ $(pv_value) Text Update_19 0 false - /cfs/md/MD_HkTlm_t.ValidCmdCntr + /cfs/md/MD_HkTlm_t.InvalidCmdCntr 0.0 @@ -2685,10 +2706,12 @@ $(pv_value) - MD/scripts/NoOp.js + - false +importPackage(Packages.org.yamcs.studio.script); + +Yamcs.issueCommand('/cfs/md/Noop', {});]]> + true @@ -2739,10 +2762,12 @@ $(pv_value) - MD/scripts/ResetCounters.js + - false +importPackage(Packages.org.yamcs.studio.script); + +Yamcs.issueCommand('/cfs/md/Reset', {});]]> + true @@ -2992,10 +3017,12 @@ $(pv_value) - MM/scripts/NoOp.js + - false +importPackage(Packages.org.yamcs.studio.script); + +Yamcs.issueCommand('/cfs/mm/Noop', {});]]> + true @@ -3046,10 +3073,12 @@ $(pv_value) - MM/scripts/ResetCounters.js + - false +importPackage(Packages.org.yamcs.studio.script); + +Yamcs.issueCommand('/cfs/mm/Reset', {});]]> + true @@ -3299,10 +3328,12 @@ $(pv_value) - SC/scripts/NoOp.js + - false +importPackage(Packages.org.yamcs.studio.script); + +Yamcs.issueCommand('/cfs/sc/Noop',{});]]> + true @@ -3353,10 +3384,13 @@ $(pv_value) - SC/scripts/ResetCounters.js + - false + true @@ -3606,10 +3640,12 @@ $(pv_value) - SCH/scripts/NoOp.js + - false +importPackage(Packages.org.yamcs.studio.script); + +Yamcs.issueCommand('/cfs/sch/Noop', {});]]> + true @@ -3660,10 +3696,12 @@ $(pv_value) - SCH/scripts/ResetCounters.js + - false +importPackage(Packages.org.yamcs.studio.script); + +Yamcs.issueCommand('/cfs/sch/Reset', {});]]> + true @@ -3913,10 +3951,12 @@ $(pv_value) - TO/scripts/NoOp.js + - false +importPackage(Packages.org.yamcs.studio.script); + +Yamcs.issueCommand('/cfs/to/Noop', {});]]> + true @@ -3967,10 +4007,12 @@ $(pv_value) - TO/scripts/ResetCounters.js + - false +importPackage(Packages.org.yamcs.studio.script); + +Yamcs.issueCommand('/cfs/to/Reset', {});]]> + true From 28dbc4c2bb3bd6f7f7e7ddfbd7a6350b7e9af3b2 Mon Sep 17 00:00:00 2001 From: cnalley Date: Tue, 2 Feb 2021 22:18:39 +0000 Subject: [PATCH 022/370] Add initial obc sitl config. --- config/obc/sitl/gdbinit | 1 + config/obc/sitl/host/CMakeLists.txt | 12 + config/obc/sitl/perf_id_list | 77 + config/obc/sitl/set-vars.cmake | 35 + config/obc/sitl/target/CMakeLists.txt | 151 + config/obc/sitl/target/airliner.service | 19 + config/obc/sitl/target/allstop/CMakeLists.txt | 4 + config/obc/sitl/target/allstop/main.cpp | 117 + config/obc/sitl/target/apps/cf/CMakeLists.txt | 10 + .../sitl/target/apps/cf/tables/cf_cfgtable.c | 323 ++ config/obc/sitl/target/apps/ci/CMakeLists.txt | 36 + config/obc/sitl/target/apps/ci/ci_custom.c | 111 + .../sitl/target/apps/ci/tables/ci_config.c | 68 + .../target/apps/ci/unit_test/ci-custom.supp | 59 + .../target/apps/ci/unit_test/ci_custom_test.c | 124 + .../target/apps/ci/unit_test/ci_custom_test.h | 48 + .../apps/ci/unit_test/ci_mock_os_calls.c | 57 + .../apps/ci/unit_test/ci_mock_os_calls.h | 50 + .../target/apps/ci/unit_test/ci_test_utils.c | 83 + .../target/apps/ci/unit_test/ci_test_utils.h | 63 + .../target/apps/ci/unit_test/ci_testrunner.c | 45 + config/obc/sitl/target/apps/ds/CMakeLists.txt | 16 + .../sitl/target/apps/ds/tables/ds_file_tbl.c | 292 ++ .../target/apps/ds/tables/ds_filter_tbl.c | 3145 ++++++++++++ config/obc/sitl/target/apps/ea/CMakeLists.txt | 55 + .../obc/sitl/target/apps/ea/ea-custom-ut.supp | 27 + .../sitl/target/apps/ea/ea-perfmon-ut.supp | 0 .../obc/sitl/target/apps/ea/src/ea_custom.c | 249 + .../apps/ea/unit_test/ea-custom-ut.supp | 32 + .../target/apps/ea/unit_test/ea_custom_test.c | 200 + .../target/apps/ea/unit_test/ea_custom_test.h | 49 + .../apps/ea/unit_test/ea_mock_os_calls.c | 62 + .../apps/ea/unit_test/ea_mock_os_calls.h | 57 + .../apps/ea/unit_test/ea_perfmon_test.c | 192 + .../apps/ea/unit_test/ea_perfmon_test.h | 49 + .../apps/ea/unit_test/ea_perfmon_testrunner.c | 46 + .../target/apps/ea/unit_test/ea_test_utils.c | 73 + .../target/apps/ea/unit_test/ea_test_utils.h | 62 + .../target/apps/ea/unit_test/ea_testrunner.c | 44 + .../obc/sitl/target/apps/ea/unit_test/fib.py | 14 + .../obc/sitl/target/apps/ea/unit_test/noop.py | 3 + .../sitl/target/apps/ea/unit_test/sleep.py | 6 + .../obc/sitl/target/apps/prm/CMakeLists.txt | 7 + .../sitl/target/apps/prm/tables/prm_config.c | 63 + .../obc/sitl/target/apps/sbn/CMakeLists.txt | 1 + .../sitl/target/apps/sbn/src/sbn_remap_tbl.c | 25 + .../apps/sbn/tables/udp/SbnModuleData.dat | 9 + .../apps/sbn/tables/udp/SbnPeerData.dat | 51 + .../obc/sitl/target/apps/sch/CMakeLists.txt | 48 + .../obc/sitl/target/apps/sch/sch_custom_rt.c | 451 ++ .../target/apps/sch/tables/sch_def_msgtbl.c | 326 ++ .../target/apps/sch/tables/sch_def_schtbl.c | 4424 +++++++++++++++++ .../apps/sch/unit_test/sch_custom_test.c | 415 ++ .../apps/sch/unit_test/sch_custom_test.h | 31 + .../apps/sch/unit_test/sch_test_utils.c | 58 + .../apps/sch/unit_test/sch_test_utils.h | 32 + .../apps/sch/unit_test/sch_testrunner.c | 36 + config/obc/sitl/target/apps/to/CMakeLists.txt | 38 + .../target/apps/to/tables/to_backup_cfg.c | 74 + .../sitl/target/apps/to/tables/to_udp_cfg.c | 224 + config/obc/sitl/target/apps/to/to_custom.c | 526 ++ .../obc/sitl/target/apps/to/to_custom_udp.h | 141 + .../apps/to/unit_test/to_app_custom_test.c | 985 ++++ .../apps/to/unit_test/to_app_custom_test.h | 55 + .../target/apps/to/unit_test/to_app_stubs.c | 75 + .../target/apps/to/unit_test/to_app_stubs.h | 82 + .../apps/to/unit_test/to_custom_test_utils.c | 77 + .../apps/to/unit_test/to_custom_test_utils.h | 63 + .../apps/to/unit_test/to_custom_testrunner.c | 52 + .../apps/to/unit_test/to_platform_stubs.c | 105 + .../apps/to/unit_test/to_platform_stubs.h | 61 + config/obc/sitl/target/apps/to/user_doxy.in | 265 + config/obc/sitl/target/cfe_es_startup.scr | 49 + config/obc/sitl/target/gdbinit | 1 + config/obc/sitl/target/unit_test_wrapper | 22 + config/obc/sitl/target/unit_test_wrapper2 | 18 + config/obc/sitl/wh_config.yaml | 5 + 77 files changed, 15061 insertions(+) create mode 100644 config/obc/sitl/gdbinit create mode 100644 config/obc/sitl/host/CMakeLists.txt create mode 100644 config/obc/sitl/perf_id_list create mode 100644 config/obc/sitl/set-vars.cmake create mode 100644 config/obc/sitl/target/CMakeLists.txt create mode 100644 config/obc/sitl/target/airliner.service create mode 100644 config/obc/sitl/target/allstop/CMakeLists.txt create mode 100644 config/obc/sitl/target/allstop/main.cpp create mode 100644 config/obc/sitl/target/apps/cf/CMakeLists.txt create mode 100644 config/obc/sitl/target/apps/cf/tables/cf_cfgtable.c create mode 100644 config/obc/sitl/target/apps/ci/CMakeLists.txt create mode 100644 config/obc/sitl/target/apps/ci/ci_custom.c create mode 100644 config/obc/sitl/target/apps/ci/tables/ci_config.c create mode 100644 config/obc/sitl/target/apps/ci/unit_test/ci-custom.supp create mode 100644 config/obc/sitl/target/apps/ci/unit_test/ci_custom_test.c create mode 100644 config/obc/sitl/target/apps/ci/unit_test/ci_custom_test.h create mode 100644 config/obc/sitl/target/apps/ci/unit_test/ci_mock_os_calls.c create mode 100644 config/obc/sitl/target/apps/ci/unit_test/ci_mock_os_calls.h create mode 100644 config/obc/sitl/target/apps/ci/unit_test/ci_test_utils.c create mode 100644 config/obc/sitl/target/apps/ci/unit_test/ci_test_utils.h create mode 100644 config/obc/sitl/target/apps/ci/unit_test/ci_testrunner.c create mode 100644 config/obc/sitl/target/apps/ds/CMakeLists.txt create mode 100644 config/obc/sitl/target/apps/ds/tables/ds_file_tbl.c create mode 100644 config/obc/sitl/target/apps/ds/tables/ds_filter_tbl.c create mode 100644 config/obc/sitl/target/apps/ea/CMakeLists.txt create mode 100644 config/obc/sitl/target/apps/ea/ea-custom-ut.supp create mode 100644 config/obc/sitl/target/apps/ea/ea-perfmon-ut.supp create mode 100644 config/obc/sitl/target/apps/ea/src/ea_custom.c create mode 100644 config/obc/sitl/target/apps/ea/unit_test/ea-custom-ut.supp create mode 100644 config/obc/sitl/target/apps/ea/unit_test/ea_custom_test.c create mode 100644 config/obc/sitl/target/apps/ea/unit_test/ea_custom_test.h create mode 100644 config/obc/sitl/target/apps/ea/unit_test/ea_mock_os_calls.c create mode 100644 config/obc/sitl/target/apps/ea/unit_test/ea_mock_os_calls.h create mode 100644 config/obc/sitl/target/apps/ea/unit_test/ea_perfmon_test.c create mode 100644 config/obc/sitl/target/apps/ea/unit_test/ea_perfmon_test.h create mode 100644 config/obc/sitl/target/apps/ea/unit_test/ea_perfmon_testrunner.c create mode 100644 config/obc/sitl/target/apps/ea/unit_test/ea_test_utils.c create mode 100644 config/obc/sitl/target/apps/ea/unit_test/ea_test_utils.h create mode 100644 config/obc/sitl/target/apps/ea/unit_test/ea_testrunner.c create mode 100644 config/obc/sitl/target/apps/ea/unit_test/fib.py create mode 100644 config/obc/sitl/target/apps/ea/unit_test/noop.py create mode 100644 config/obc/sitl/target/apps/ea/unit_test/sleep.py create mode 100644 config/obc/sitl/target/apps/prm/CMakeLists.txt create mode 100644 config/obc/sitl/target/apps/prm/tables/prm_config.c create mode 100644 config/obc/sitl/target/apps/sbn/CMakeLists.txt create mode 100644 config/obc/sitl/target/apps/sbn/src/sbn_remap_tbl.c create mode 100644 config/obc/sitl/target/apps/sbn/tables/udp/SbnModuleData.dat create mode 100644 config/obc/sitl/target/apps/sbn/tables/udp/SbnPeerData.dat create mode 100644 config/obc/sitl/target/apps/sch/CMakeLists.txt create mode 100644 config/obc/sitl/target/apps/sch/sch_custom_rt.c create mode 100644 config/obc/sitl/target/apps/sch/tables/sch_def_msgtbl.c create mode 100644 config/obc/sitl/target/apps/sch/tables/sch_def_schtbl.c create mode 100644 config/obc/sitl/target/apps/sch/unit_test/sch_custom_test.c create mode 100644 config/obc/sitl/target/apps/sch/unit_test/sch_custom_test.h create mode 100644 config/obc/sitl/target/apps/sch/unit_test/sch_test_utils.c create mode 100644 config/obc/sitl/target/apps/sch/unit_test/sch_test_utils.h create mode 100644 config/obc/sitl/target/apps/sch/unit_test/sch_testrunner.c create mode 100644 config/obc/sitl/target/apps/to/CMakeLists.txt create mode 100644 config/obc/sitl/target/apps/to/tables/to_backup_cfg.c create mode 100644 config/obc/sitl/target/apps/to/tables/to_udp_cfg.c create mode 100644 config/obc/sitl/target/apps/to/to_custom.c create mode 100644 config/obc/sitl/target/apps/to/to_custom_udp.h create mode 100644 config/obc/sitl/target/apps/to/unit_test/to_app_custom_test.c create mode 100644 config/obc/sitl/target/apps/to/unit_test/to_app_custom_test.h create mode 100644 config/obc/sitl/target/apps/to/unit_test/to_app_stubs.c create mode 100644 config/obc/sitl/target/apps/to/unit_test/to_app_stubs.h create mode 100644 config/obc/sitl/target/apps/to/unit_test/to_custom_test_utils.c create mode 100644 config/obc/sitl/target/apps/to/unit_test/to_custom_test_utils.h create mode 100644 config/obc/sitl/target/apps/to/unit_test/to_custom_testrunner.c create mode 100644 config/obc/sitl/target/apps/to/unit_test/to_platform_stubs.c create mode 100644 config/obc/sitl/target/apps/to/unit_test/to_platform_stubs.h create mode 100644 config/obc/sitl/target/apps/to/user_doxy.in create mode 100644 config/obc/sitl/target/cfe_es_startup.scr create mode 100644 config/obc/sitl/target/gdbinit create mode 100755 config/obc/sitl/target/unit_test_wrapper create mode 100755 config/obc/sitl/target/unit_test_wrapper2 create mode 100644 config/obc/sitl/wh_config.yaml diff --git a/config/obc/sitl/gdbinit b/config/obc/sitl/gdbinit new file mode 100644 index 000000000..61b6b41a0 --- /dev/null +++ b/config/obc/sitl/gdbinit @@ -0,0 +1 @@ +handle SIG63 noprint nostop \ No newline at end of file diff --git a/config/obc/sitl/host/CMakeLists.txt b/config/obc/sitl/host/CMakeLists.txt new file mode 100644 index 000000000..142f22e1d --- /dev/null +++ b/config/obc/sitl/host/CMakeLists.txt @@ -0,0 +1,12 @@ +include(../set-vars.cmake) + +# Put host specific functions here. This allows us to build things like elf2cfetbl which are built using the host +# toolchain, not the cross toolchain. +buildliner_build_cfe_host_tools( + PSP ${PSP} + OSAL ${OSAL} + CONFIG + ${CMAKE_CURRENT_SOURCE_DIR}/inc + ${CMAKE_CURRENT_SOURCE_DIR}/../inc + ${PROJECT_SOURCE_DIR}/config/shared/inc +) \ No newline at end of file diff --git a/config/obc/sitl/perf_id_list b/config/obc/sitl/perf_id_list new file mode 100644 index 000000000..45f5dc865 --- /dev/null +++ b/config/obc/sitl/perf_id_list @@ -0,0 +1,77 @@ +MAC_MARKER_1_PERF_ID,0x00000064,0x00ff00,0.000000, +AE_MAIN_TASK_PERF_ID,0x0000004c,0x00ff00,0.000000, +AMC_MAIN_TASK_PERF_ID,0x00000043,0x00ff00,0.000000, +BAT_MAIN_TASK_PERF_ID,0x00000052,0x00ff00,0.000000, +CF_APPMAIN_PERF_ID,0x00000023,0x00ff00,0.000000, +CF_CYCLE_ENG_PERF_ID,0x0000002a,0x00ff00,0.000000, +CF_FCLOSE_PERF_ID,0x00000026,0x00ff00,0.000000, +CF_FILESIZE_PERF_ID,0x00000024,0x00ff00,0.000000, +CF_FOPEN_PERF_ID,0x00000025,0x00ff00,0.000000, +CF_FREAD_PERF_ID,0x00000027,0x00ff00,0.000000, +CF_FWRITE_PERF_ID,0x00000028,0x00ff00,0.000000, +CF_QDIRFILES_PERF_ID,0x0000002b,0x00ff00,0.000000, +CF_REDLIGHT_PERF_ID,0x00000029,0x00ff00,0.000000, +CFE_ES_MAIN_PERF_ID,0x00000001,0x00ff00,0.000000,Executive Services main execution loop +CFE_EVS_MAIN_PERF_ID,0x00000002,0x00ff00,0.000000,Event Services main execution loop +CFE_SB_MAIN_PERF_ID,0x00000004,0x00ff00,0.000000,Software Bus Services main execution loop +CFE_SB_MSG_LIM_PERF_ID,0x00000005,0x00ff00,0.000000,Software Bus Msg Limit errors +CFE_SB_PIPE_OFLOW_PERF_ID,0x0000001b,0x00ff00,0.000000,SOftware Bus Pipe Overflow Errors +CFE_TBL_MAIN_PERF_ID,0x00000003,0x00ff00,0.000000,Table Services main execution loop +CFE_TIME_LOCAL1HZISR_PERF_ID,0x00000008,0x00ff00,0.000000,1 Hz Local ISR +CFE_TIME_LOCAL1HZTASK_PERF_ID,0x0000000a,0x00ff00,0.000000,1 Hz Local Task +CFE_TIME_MAIN_PERF_ID,0x00000006,0x00ff00,0.000000,Time Services main execution loop +CFE_TIME_SENDMET_PERF_ID,0x00000009,0x00ff00,0.000000,Time ToneSendMET +CFE_TIME_TONE1HZISR_PERF_ID,0x00000007,0x00ff00,0.000000,1 Hz Tone ISR +CFE_TIME_TONE1HZTASK_PERF_ID,0x0000000b,0x00ff00,0.000000,1 Hz Tone Task +CI_MAIN_TASK_PERF_ID,0x00000021,0x00ff00,0.000000, +CI_SOCKET_RCV_PERF_ID,0x00000022,0x00ff00,0.000000, +CS_APPMAIN_PERF_ID,0x0000002c,0x00ff00,0.000000, +DS_APPMAIN_PERF_ID,0x0000002d,0x00ff00,0.000000, +EA_MAIN_TASK_PERF_ID,0x00000045,0x00ff00,0.000000, +FM_APPMAIN_PERF_ID,0x0000002e,0x00ff00,0.000000, +FM_CHILD_TASK_PERF_ID,0x0000002f,0x00ff00,0.000000, +HK_APPMAIN_PERF_ID,0x00000030,0x00ff00,0.000000, +HS_APPMAIN_PERF_ID,0x00000032,0x00ff00,0.000000, +HS_IDLETASK_PERF_ID,0x00000031,0x00ff00,0.000000, +LC_APPMAIN_PERF_ID,0x00000033,0x00ff00,0.000000, +LC_WDT_SEARCH_PERF_ID,0x00000034,0x00ff00,0.000000, +LD_MAIN_TASK_PERF_ID,0x0000004d,0x00ff00,0.000000, +MAC_MAIN_TASK_PERF_ID,0x00000044,0x00ff00,0.000000, +MD_APPMAIN_PERF_ID,0x00000035,0x00ff00,0.000000, +MM_APPMAIN_PERF_ID,0x00000036,0x00ff00,0.000000, +MM_EEPROM_FILELOAD_PERF_ID,0x00000039,0x00ff00,0.000000, +MM_EEPROM_FILL_PERF_ID,0x0000003a,0x00ff00,0.000000, +MM_EEPROM_POKE_PERF_ID,0x00000038,0x00ff00,0.000000, +MM_SEGBREAK_PERF_ID,0x00000037,0x00ff00,0.000000, +MPC_MAIN_TASK_PERF_ID,0x0000004e,0x00ff00,0.000000, +MPU9250_MAIN_TASK_PERF_ID,0x00000053,0x00ff00,0.000000, +MS5611_MAIN_TASK_PERF_ID,0x0000004a,0x00ff00,0.000000, +NAV_MAIN_TASK_PERF_ID,0x0000004f,0x00ff00,0.000000, +RCIN_MAIN_TASK_PERF_ID,0x00000050,0x00ff00,0.000000, +RGBLED_MAIN_TASK_PERF_ID,0x00000047,0x00ff00,0.000000, +RGBLED_RECEIVE_PERF_ID,0x00000049,0x00ff00,0.000000, +RGBLED_SEND_PERF_ID,0x00000048,0x00ff00,0.000000, +SC_APPMAIN_PERF_ID,0x0000003b,0x00ff00,0.000000, +SCH_MAIN_TASK_PERF_ID,0x0000003d,0x00ff00,0.000000, +SENS_MAIN_TASK_PERF_ID,0x0000004b,0x00ff00,0.000000, +TO_MAIN_TASK_PERF_ID,0x0000003c,0x00ff00,0.000000, +TO_SOCKET_SEND_PERF_ID,0x0000003e,0x00ff00,0.000000, +ULR_MAIN_TASK_PERF_ID,0x00000046,0x00ff00,0.000000, +VC_DEVICE_GET_PERF_ID,0x00000041,0x00ff00,0.000000, +VC_MAIN_TASK_PERF_ID,0x0000003f,0x00ff00,0.000000, +VC_SOCKET_SEND_PERF_ID,0x00000040,0x00ff00,0.000000, +VM_MAIN_TASK_PERF_ID,0x00000051,0x00ff00,0.000000, +VM_MAIN_TASK_PERF_ID,0x00000051,0x00ff00,0.000000, +RCIN_DEVICE_GET_PERF_ID,0x00000054,0x00ff00,0.000000, +SIM_MAIN_TASK_PERF_ID,0x00000055,0x00ff00,0.000000, +MAVLINK_MAIN_TASK_PERF_ID,0x00000056,0x00ff00,0.000000, +HMC5883_MAIN_TASK_PERF_ID,0x00000057,0x00ff00,0.000000, +HMC5883_RECEIVE_PERF_ID,0x00000058,0x00ff00,0.000000, +HMC5883_SEND_PERF_ID,0x00000059,0x00ff00,0.000000, +PARAMS_MAIN_TASK_PERF_ID,0x0000005a,0x00ff00,0.000000, +AE_MAIN_TASK_PERF_ID,0x0000005b,0x00ff00,0.000000, +PE_MAIN_TASK_PERF_ID,0x0000005c,0x00ff00,0.000000, +PE_UPDATE_TASK_PERF_ID,0x0000005d,0x00ff00,0.000000, +PE_SENSOR_GPS_PERF_ID,0x0000005e,0x00ff00,0.000000, +PE_SENSOR_BARO_PERF_ID,0x0000005f,0x00ff00,0.000000, +PE_SENSOR_LAND_PERF_ID,0x00000060,0x00ff00,0.000000, diff --git a/config/obc/sitl/set-vars.cmake b/config/obc/sitl/set-vars.cmake new file mode 100644 index 000000000..b8a43ba54 --- /dev/null +++ b/config/obc/sitl/set-vars.cmake @@ -0,0 +1,35 @@ +############################################################################# +# +# Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions +# are met: +# +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in +# the documentation and/or other materials provided with the +# distribution. +# 3. Neither the name Windhover Labs nor the names of its +# contributors may be used to endorse or promote products derived +# from this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +# COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS +# OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED +# AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +# POSSIBILITY OF SUCH DAMAGE. +# +############################################################################# + +set(PSP ${PROJECT_SOURCE_DIR}/core/psp/pc-linux-wh) +set(OSAL ${PROJECT_SOURCE_DIR}/core/osal/posix-fast) diff --git a/config/obc/sitl/target/CMakeLists.txt b/config/obc/sitl/target/CMakeLists.txt new file mode 100644 index 000000000..fc908ddfc --- /dev/null +++ b/config/obc/sitl/target/CMakeLists.txt @@ -0,0 +1,151 @@ +include(../set-vars.cmake) + +buildliner_initialize( + PSP ${PSP} + OSAL ${OSAL} + CORE_TOOLS ${CMAKE_CURRENT_SOURCE_DIR}/tools + CONFIG + ${CMAKE_CURRENT_SOURCE_DIR}/inc + ${CMAKE_CURRENT_SOURCE_DIR}/../inc + ${PROJECT_SOURCE_DIR}/config/shared/inc + FILESYS + /cf/apps + /cf/download + /cf/log + /cf/upload + /ram + STARTUP_SCRIPT + ${CMAKE_CURRENT_SOURCE_DIR}/cfe_es_startup.scr +) + +add_subdirectory(allstop allstop) +set_target_properties(allstop + PROPERTIES + RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/exe +) + +buildliner_add_app( + cfs_lib + DEFINITION ${PROJECT_SOURCE_DIR}/apps/cfs_lib/fsw/for_build +) + +buildliner_add_app( + px4lib + DEFINITION ${PROJECT_SOURCE_DIR}/apps/px4lib/fsw/for_build +) + +buildliner_add_app( + prmlib + DEFINITION ${PROJECT_SOURCE_DIR}/apps/prmlib/fsw/for_build + CONFIG ${CMAKE_CURRENT_SOURCE_DIR}/apps/prm +) + +buildliner_add_app( + sch + DEFINITION ${PROJECT_SOURCE_DIR}/apps/sch/fsw/for_build + CONFIG ${CMAKE_CURRENT_SOURCE_DIR}/apps/sch + CONFIG_SOURCES + ${CMAKE_CURRENT_SOURCE_DIR}/apps/sch/sch_custom_rt.c +) + +buildliner_add_app( + cf + DEFINITION ${PROJECT_SOURCE_DIR}/apps/cf/fsw/for_build + CONFIG ${CMAKE_CURRENT_SOURCE_DIR}/apps/cf +) + +buildliner_add_app( + cs + DEFINITION ${PROJECT_SOURCE_DIR}/apps/cs/fsw/for_build + CONFIG ${PROJECT_SOURCE_DIR}/config/shared/apps/cs +) + +buildliner_add_app( + ds + DEFINITION ${PROJECT_SOURCE_DIR}/apps/ds/fsw/for_build + CONFIG ${CMAKE_CURRENT_SOURCE_DIR}/apps/ds +) + +buildliner_add_app( + fm + DEFINITION ${PROJECT_SOURCE_DIR}/apps/fm/fsw/for_build + CONFIG ${PROJECT_SOURCE_DIR}/config/shared/apps/fm +) + +buildliner_add_app( + hk + DEFINITION ${PROJECT_SOURCE_DIR}/apps/hk/fsw/for_build + CONFIG ${PROJECT_SOURCE_DIR}/config/shared/apps/hk +) + +buildliner_add_app( + hs + DEFINITION ${PROJECT_SOURCE_DIR}/apps/hs/fsw/for_build + CONFIG ${PROJECT_SOURCE_DIR}/config/shared/apps/hs + CONFIG_SOURCES + ${PROJECT_SOURCE_DIR}/config/shared/apps/hs/hs_custom.c +) + +buildliner_add_app( + lc + DEFINITION ${PROJECT_SOURCE_DIR}/apps/lc/fsw/for_build + CONFIG ${PROJECT_SOURCE_DIR}/config/shared/apps/lc + CONFIG_SOURCES + ${PROJECT_SOURCE_DIR}/config/shared/apps/lc/src/lc_custom.c +) + +buildliner_add_app( + md + DEFINITION ${PROJECT_SOURCE_DIR}/apps/md/fsw/for_build + CONFIG ${PROJECT_SOURCE_DIR}/config/shared/apps/md +) + +buildliner_add_app( + mm + DEFINITION ${PROJECT_SOURCE_DIR}/apps/mm/fsw/for_build +) + +buildliner_add_app( + sc + DEFINITION ${PROJECT_SOURCE_DIR}/apps/sc/fsw/for_build + CONFIG ${PROJECT_SOURCE_DIR}/config/shared/apps/sc +) + +buildliner_add_app( + ci + DEFINITION ${PROJECT_SOURCE_DIR}/apps/ci/fsw/for_build + CONFIG ${CMAKE_CURRENT_SOURCE_DIR}/apps/ci + CONFIG_SOURCES + ${CMAKE_CURRENT_SOURCE_DIR}/apps/ci/ci_custom.c +) + +buildliner_add_app( + to + DEFINITION ${PROJECT_SOURCE_DIR}/apps/to/fsw/for_build + CONFIG ${CMAKE_CURRENT_SOURCE_DIR}/apps/to + CONFIG_SOURCES + ${CMAKE_CURRENT_SOURCE_DIR}/apps/to/tables/to_backup_cfg.c + ${CMAKE_CURRENT_SOURCE_DIR}/apps/to/to_custom.c +) + +buildliner_add_app( + ea + DEFINITION ${PROJECT_SOURCE_DIR}/apps/ea/fsw/for_build + CONFIG ${CMAKE_CURRENT_SOURCE_DIR}/apps/ea + CONFIG_SOURCES + ${CMAKE_CURRENT_SOURCE_DIR}/apps/ea/src/ea_custom.c +) + +buildliner_add_app( + sbn + DEFINITION ${PROJECT_SOURCE_DIR}/apps/sbn/fsw/for_build + CONFIG ${CMAKE_CURRENT_SOURCE_DIR}/apps/sbn + CONFIG_SOURCES + ${CMAKE_CURRENT_SOURCE_DIR}/apps/sbn/src/sbn_remap_tbl.c +) + +buildliner_add_app( + sbn_udp + DEFINITION ${PROJECT_SOURCE_DIR}/apps/sbn/modules/udp/fsw/for_build +) + diff --git a/config/obc/sitl/target/airliner.service b/config/obc/sitl/target/airliner.service new file mode 100644 index 000000000..578bcb234 --- /dev/null +++ b/config/obc/sitl/target/airliner.service @@ -0,0 +1,19 @@ +[Unit] +Description=Airliner UAS Flight Software +After=network.target auditd.service +ConditionPathExists=!/opt/airliner/disable + +[Service] +Type=simple +WorkingDirectory=/opt/airliner/ +ExecStart=/opt/airliner/core-bin +ExecReload=/bin/kill -9 $MAINPID +#ExecReload=/opt/airliner/allstop +ExecStop=/bin/kill -9 $MAINPID +ExecStop=/opt/airliner/allstop +KillMode=process +#Restart=on-failure + +[Install] +WantedBy=multi-user.target +Alias=airliner.service diff --git a/config/obc/sitl/target/allstop/CMakeLists.txt b/config/obc/sitl/target/allstop/CMakeLists.txt new file mode 100644 index 000000000..1e64d682c --- /dev/null +++ b/config/obc/sitl/target/allstop/CMakeLists.txt @@ -0,0 +1,4 @@ + +add_executable(allstop + main.cpp +) \ No newline at end of file diff --git a/config/obc/sitl/target/allstop/main.cpp b/config/obc/sitl/target/allstop/main.cpp new file mode 100644 index 000000000..8101039b8 --- /dev/null +++ b/config/obc/sitl/target/allstop/main.cpp @@ -0,0 +1,117 @@ +#include +#include +#include +#include +#include +#include +#include + + +#define RCOUT_ZYNQ_PWM_BASE (0x43c00000) +#define FREQUENCY_PWM (400) +#define TICK_PER_S (50000000) +#define TICK_PER_US (50) +#define DEVICE_PATH "/dev/mem" +#define MAX_MOTOR_OUTPUTS (8) +#define PWM_DISARMED (900) + + +/* The following struct is used by the SharedMemCmd_t struct and overlayed + * over the ocpoc PPM registers to control the PWM hardware. + */ +typedef struct +{ + unsigned int Period; + unsigned int Hi; +} PeriodHi_t; + + +/* The following struct is overlayed over the ocpoc PPM registers to control + * the PWM hardware. + */ +typedef struct +{ + PeriodHi_t PeriodHi[MAX_MOTOR_OUTPUTS]; +} SharedMemCmd_t; + +volatile SharedMemCmd_t *SharedMemCmd; + + +void StopMotors(void); +unsigned int Freq2tick(unsigned short FreqHz); +void SetMotorOutputs(const unsigned short *PWM); + + +int main( int argc, const char* argv[] ) +{ + unsigned int i = 0; + int returnVal = 0; + int fd = 0; + + printf("Stopping all motors.\n"); + + /* Get the handle to the shared memory. */ + fd = open(DEVICE_PATH, O_RDWR | O_SYNC); + SharedMemCmd = (SharedMemCmd_t *) mmap(0, 0x1000, + PROT_READ | PROT_WRITE, MAP_SHARED, fd, + RCOUT_ZYNQ_PWM_BASE); + close(fd); + + if (SharedMemCmd <= 0) + { + returnVal = errno; + goto end_of_function; + } + + /* Note: this appears to be required actuators to initialize. */ + for (i = 0; i < MAX_MOTOR_OUTPUTS; ++i) + { + SharedMemCmd->PeriodHi[i].Period = + Freq2tick(FREQUENCY_PWM); + SharedMemCmd->PeriodHi[i].Hi = + Freq2tick(FREQUENCY_PWM) / 2; + } + + /* Stop all the motors. */ + StopMotors(); + +end_of_function: + return returnVal; +} + + +void StopMotors(void) +{ + unsigned short disarmed_pwm[MAX_MOTOR_OUTPUTS]; + + for (unsigned int i = 0; i < MAX_MOTOR_OUTPUTS; ++i) + { + disarmed_pwm[i] = PWM_DISARMED; + } + + SetMotorOutputs(disarmed_pwm); +} + + +unsigned int Freq2tick(unsigned short FreqHz) +{ + unsigned int duty = TICK_PER_S / (unsigned long)FreqHz; + + return duty; +} + + + +void SetMotorOutputs(const unsigned short *PWM) +{ + unsigned int i = 0; + + if(SharedMemCmd != 0) + { + /* Convert this to duty_cycle in ns */ + for (i = 0; i < MAX_MOTOR_OUTPUTS; ++i) + { + SharedMemCmd->PeriodHi[i].Hi = TICK_PER_US * PWM[i]; + } + } +} diff --git a/config/obc/sitl/target/apps/cf/CMakeLists.txt b/config/obc/sitl/target/apps/cf/CMakeLists.txt new file mode 100644 index 000000000..248a08896 --- /dev/null +++ b/config/obc/sitl/target/apps/cf/CMakeLists.txt @@ -0,0 +1,10 @@ +set(APP_NAME cf) + +buildliner_add_table( + ${APP_NAME} + NAME cf_cfgtable + SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/tables/cf_cfgtable.c + INCLUDES ${CMAKE_CURRENT_SOURCE_DIR}/src/ +) + + diff --git a/config/obc/sitl/target/apps/cf/tables/cf_cfgtable.c b/config/obc/sitl/target/apps/cf/tables/cf_cfgtable.c new file mode 100644 index 000000000..e4dd91e34 --- /dev/null +++ b/config/obc/sitl/target/apps/cf/tables/cf_cfgtable.c @@ -0,0 +1,323 @@ +/************************************************************************ +** Includes +*************************************************************************/ +#include "cfe.h" +#include "cfe_tbl_filedef.h" +#include "cf_tbldefs.h" +#include "cf_platform_cfg.h" +#include "cf_msgids.h" +#include "cf_defs.h" + +static OS_USED CFE_TBL_FileDef_t CFE_TBL_FileDef = +{ + "CF_ConfigTable", "CF.ConfigTable", "CF Config Tbl", + "cf_cfgtable.tbl", sizeof (cf_config_table_t) +}; + + +/* +** Default playback table data - See NOTE Above +*/ + +cf_config_table_t CF_ConfigTable = +{ + + "CF Default Table",/* TableIdString */ + 2, /* TableVersion (integer) */ + 4, /* NumEngCyclesPerWakeup */ + 2, /* NumWakeupsPerQueueChk */ + 4, /* NumWakeupsPerPollDirChk */ + 100, /* UplinkHistoryQDepth */ + 0, /* Reserved1 */ + 0, /* Reserved2 */ + "10", /* AckTimeout (secs, entered as string) */ + "2", /* AckLimit (max timeouts, string) */ + "5", /* NakTimeout (secs, string) */ + "3", /* NakLimit (max timeouts, string) */ + "20", /* InactivityTimeout (secs, string) */ + "200", /* OutgoingFileChunkSize (bytes, string)*/ + "no", /* SaveIncompleteFiles (yes,no, string) */ + "0.24", /* Flight EntityId - 2 byte dotted-decimal string eg. "0.255"*/ + + { /* Input Channel Array */ + + { /* Input Channel 0 */ + + CF_INCOMING_PDU_MID, + 0, /* Output Chan for Class 2 Uplink Responses, ACK-EOF,Nak,Fin etc) */ + 0, /* spare */ + + }, /* end Input Channel 0 */ + + }, /* end Input Channel Array */ + + { /* Playback Channel Array */ + + { /* Playback Channel #0 */ + CF_ENTRY_IN_USE, /* Playback Channel Entry In Use */ + CF_ENABLED, /* Dequeue Enable */ + CF_SPACE_TO_GND_PDU_MID, /* Space To Gnd PDU MsgId */ + 100, /* Pending Queue Depth */ + 100, /* History Queue Depth */ + "OutputChan0", /* Playback Channel Name */ + "TO_CF_CH0_SEM", /* Handshake Semaphore Name */ + + { /* Polling Directory Array */ + + { /* Polling Directory 0 */ + CF_ENTRY_IN_USE,/* Poll Directory In Use or Not */ + CF_DISABLED, /* Enable State */ + 1, /* Class (1 or 2)*/ + 5, /* Priority */ + CF_KEEP_FILE, /* Preserve files after successful transfer? */ + 0, /* Reserved1 */ + 0, /* Reserved2 */ + 0, /* Reserved3 */ + "0.23", /* Gnd EntityId - 2 byte dotted-decimal string eg. "0.255"*/ + "/cf/ch0poll0/", /* SrcPath, no spaces, fwd slash at end */ + "cftesting/", /* DstPath, no spaces */ + },/* End Polling Directory 0 */ + + { /* Polling Directory 1 */ + CF_ENTRY_IN_USE,/* Poll Directory In Use or Not */ + CF_DISABLED, /* Enable State */ + 1, /* Class (1 or 2)*/ + 0, /* Priority */ + CF_KEEP_FILE, /* Preserve files after successful transfer? */ + 0, /* Reserved1 */ + 0, /* Reserved2 */ + 0, /* Reserved3 */ + "0.23", /* Gnd EntityId - 2 byte dotted-decimal string eg. "0.255"*/ + "/cf/ch0poll1/", /* SrcPathname */ + "/gnd/", /* DestPathname */ + + },/* End Polling Directory 1 */ + + + { /* Polling Directory 2 */ + CF_ENTRY_IN_USE,/* Poll Directory In Use or Not */ + CF_DISABLED, /* Enable State */ + 1, /* Class (1 or 2)*/ + 5, /* Priority */ + CF_DELETE_FILE, /* Preserve files after successful transfer? */ + 0, /* Reserved1 */ + 0, /* Reserved2 */ + 0, /* Reserved3 */ + "0.23", /* Gnd EntityId - 2 byte dotted-decimal string eg. "0.255"*/ + "/cf/ch0poll2/", /* SrcPathname */ + "cftesting/", /* DstPathname */ + },/* End Polling Directory 2 */ + + { /* Polling Directory 3 */ + CF_ENTRY_IN_USE,/* Poll Directory In Use or Not */ + CF_DISABLED, /* Enable State */ + 1, /* Class (1 or 2)*/ + 0, /* Priority */ + CF_KEEP_FILE, /* Preserve files after successful transfer? */ + 0, /* Reserved1 */ + 0, /* Reserved2 */ + 0, /* Reserved3 */ + "0.23", /* Gnd EntityId - 2 byte dotted-decimal string eg. "0.255"*/ + "/cf/ch0poll3/", /* SrcPathname */ + "/gnd/", /* DestPathname */ + + },/* End Polling Directory 3 */ + + { /* Polling Directory 4 */ + CF_ENTRY_IN_USE,/* Poll Directory In Use or Not */ + CF_DISABLED, /* Enable State */ + 1, /* Class (1 or 2)*/ + 5, /* Priority */ + CF_DELETE_FILE, /* Preserve files after successful transfer? */ + 0, /* Reserved1 */ + 0, /* Reserved2 */ + 0, /* Reserved3 */ + "0.23", /* Gnd EntityId - 2 byte dotted-decimal string eg. "0.255"*/ + "/cf/ch0poll4/", /* SrcPathname */ + "cftesting/", /* DstPathname */ + },/* End Polling Directory 4 */ + + { /* Polling Directory 5 */ + CF_ENTRY_IN_USE,/* Poll Directory In Use or Not */ + CF_DISABLED, /* Enable State */ + 1, /* Class (1 or 2)*/ + 0, /* Priority */ + CF_KEEP_FILE, /* Preserve files after successful transfer? */ + 0, /* Reserved1 */ + 0, /* Reserved2 */ + 0, /* Reserved3 */ + "0.23", /* Gnd EntityId - 2 byte dotted-decimal string eg. "0.255"*/ + "/cf/ch0poll5/", /* SrcPathname */ + "/gnd/", /* DestPathname */ + + },/* End Polling Directory 5 */ + + { /* Polling Directory 6 */ + CF_ENTRY_IN_USE,/* Poll Directory In Use or Not */ + CF_DISABLED, /* Enable State */ + 1, /* Class (1 or 2)*/ + 5, /* Priority */ + CF_DELETE_FILE, /* Preserve files after successful transfer? */ + 0, /* Reserved1 */ + 0, /* Reserved2 */ + 0, /* Reserved3 */ + "0.23", /* Gnd EntityId - 2 byte dotted-decimal string eg. "0.255"*/ + "/cf/ch0poll6/", /* SrcPathname */ + "cftesting/", /* DstPathname */ + },/* End Polling Directory 6 */ + + { /* Polling Directory 7 */ + CF_ENTRY_IN_USE,/* Poll Directory In Use or Not */ + CF_DISABLED, /* Enable State */ + 1, /* Class (1 or 2)*/ + 0, /* Priority */ + CF_KEEP_FILE, /* Preserve files after successful transfer? */ + 0, /* Reserved1 */ + 0, /* Reserved2 */ + 0, /* Reserved3 */ + "0.23", /* Gnd EntityId - 2 byte dotted-decimal string eg. "0.255"*/ + "/cf/ch0poll7/", /* SrcPathname */ + "/gnd/", /* DestPathname */ + + },/* End Polling Directory 7 */ + + }, /* End Polling Directory Array */ + + }, /* End Playback Channel #0 */ + + + { /* Playback Channel #1 */ + CF_ENTRY_UNUSED, /* Playback Channel Entry In Use */ + CF_DISABLED, /* Dequeue Enable */ + CF_SPACE_TO_GND_PDU_MID, /* Space To Gnd PDU MsgId */ + 100, /* Pending Queue Depth */ + 100, /* History Queue Depth */ + "OutputChan1", /* Playback Channel Name */ + "TO_CF_CH1_SEM", /* Handshake Semaphore Name */ + + { /* Polling Directory Array */ + + { /* Polling Directory 0 */ + CF_ENTRY_UNUSED,/* Poll Directory In Use or Not */ + CF_DISABLED, /* Enable State */ + 1, /* Class (1 or 2)*/ + 0, /* Priority */ + CF_DELETE_FILE, /* Preserve files after successful transfer? */ + 0, /* Reserved1 */ + 0, /* Reserved2 */ + 0, /* Reserved3 */ + "0.23", /* Gnd EntityId - 2 byte dotted-decimal string eg. "0.255"*/ + "/cf/ch1poll0/", /* SrcPathname */ + "cftesting/", /* DstPathname */ + },/* End Polling Directory 0 */ + + { /* Polling Directory 1 */ + CF_ENTRY_UNUSED,/* Poll Directory In Use or Not */ + CF_DISABLED, /* Enable State */ + 1, /* Class (1 or 2)*/ + 0, /* Priority */ + CF_DELETE_FILE, /* Preserve files after successful transfer? */ + 0, /* Reserved1 */ + 0, /* Reserved2 */ + 0, /* Reserved3 */ + "0.23", /* Gnd EntityId - 2 byte dotted-decimal string eg. "0.255"*/ + "/cf/ch1poll1/", /* SrcPathname */ + "cftesting/", /* DstPathname */ + }, /* End Polling Directory 1 */ + + { /* Polling Directory 2 */ + CF_ENTRY_UNUSED,/* Poll Directory In Use or Not */ + CF_DISABLED, /* Enable State */ + 1, /* Class (1 or 2)*/ + 0, /* Priority */ + CF_DELETE_FILE, /* Preserve files after successful transfer? */ + 0, /* Reserved1 */ + 0, /* Reserved2 */ + 0, /* Reserved3 */ + "0.23", /* Gnd EntityId - 2 byte dotted-decimal string eg. "0.255"*/ + "/cf/ch1poll2/", /* SrcPathname */ + "cftesting/", /* DstPathname */ + },/* End Polling Directory 2 */ + + { /* Polling Directory 3 */ + CF_ENTRY_UNUSED,/* Poll Directory In Use or Not */ + CF_DISABLED, /* Enable State */ + 1, /* Class (1 or 2)*/ + 0, /* Priority */ + CF_DELETE_FILE, /* Preserve files after successful transfer? */ + 0, /* Reserved1 */ + 0, /* Reserved2 */ + 0, /* Reserved3 */ + "0.23", /* Gnd EntityId - 2 byte dotted-decimal string eg. "0.255"*/ + "/cf/ch1poll3/", /* SrcPathname */ + "cftesting/", /* DstPathname */ + }, /* End Polling Directory 3 */ + + { /* Polling Directory 4 */ + CF_ENTRY_UNUSED,/* Poll Directory In Use or Not */ + CF_DISABLED, /* Enable State */ + 1, /* Class (1 or 2)*/ + 0, /* Priority */ + CF_DELETE_FILE, /* Preserve files after successful transfer? */ + 0, /* Reserved1 */ + 0, /* Reserved2 */ + 0, /* Reserved3 */ + "0.23", /* Gnd EntityId - 2 byte dotted-decimal string eg. "0.255"*/ + "/cf/ch1poll4/", /* SrcPathname */ + "cftesting/", /* DstPathname */ + },/* End Polling Directory 4 */ + + { /* Polling Directory 5 */ + CF_ENTRY_UNUSED,/* Poll Directory In Use or Not */ + CF_DISABLED, /* Enable State */ + 1, /* Class (1 or 2)*/ + 0, /* Priority */ + CF_DELETE_FILE, /* Preserve files after successful transfer? */ + 0, /* Reserved1 */ + 0, /* Reserved2 */ + 0, /* Reserved3 */ + "0.23", /* Gnd EntityId - 2 byte dotted-decimal string eg. "0.255"*/ + "/cf/ch1poll5/", /* SrcPathname */ + "cftesting/", /* DstPathname */ + }, /* End Polling Directory 5 */ + + { /* Polling Directory 6 */ + CF_ENTRY_UNUSED,/* Poll Directory In Use or Not */ + CF_DISABLED, /* Enable State */ + 1, /* Class (1 or 2)*/ + 0, /* Priority */ + CF_DELETE_FILE, /* Preserve files after successful transfer? */ + 0, /* Reserved1 */ + 0, /* Reserved2 */ + 0, /* Reserved3 */ + "0.23", /* Gnd EntityId - 2 byte dotted-decimal string eg. "0.255"*/ + "/cf/ch1poll6/", /* SrcPathname */ + "cftesting/", /* DstPathname */ + },/* End Polling Directory 6 */ + + { /* Polling Directory 7 */ + CF_ENTRY_UNUSED,/* Poll Directory In Use or Not */ + CF_DISABLED, /* Enable State */ + 1, /* Class (1 or 2)*/ + 0, /* Priority */ + CF_DELETE_FILE, /* Preserve files after successful transfer? */ + 0, /* Reserved1 */ + 0, /* Reserved2 */ + 0, /* Reserved3 */ + "0.23", /* Gnd EntityId - 2 byte dotted-decimal string eg. "0.255"*/ + "/cf/ch1poll7/", /* SrcPathname */ + "cftesting/", /* DstPathname */ + }, /* End Polling Directory 7 */ + + }, /* End Polling Directory Array */ + + }, /* End Playback Channel #1 */ + + }, /* End Playback Channel Array */ + +}; /* End CF_ConfigTable */ + + +/************************/ +/* End of File Comment */ +/************************/ diff --git a/config/obc/sitl/target/apps/ci/CMakeLists.txt b/config/obc/sitl/target/apps/ci/CMakeLists.txt new file mode 100644 index 000000000..9d3031d32 --- /dev/null +++ b/config/obc/sitl/target/apps/ci/CMakeLists.txt @@ -0,0 +1,36 @@ +set(APP_NAME ci) + +buildliner_add_table( + ${APP_NAME} + NAME ci_config + SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/tables/ci_config.c + INCLUDES ${CMAKE_CURRENT_SOURCE_DIR}/src/ +) + +buildliner_add_app_unit_test_src(${APP_NAME} SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/tables/ci_config.c) + +buildliner_add_app_unit_test(ci-custom-ut + UTASSERT + NO_HELGRIND + NO_MASSIF + + SOURCES + ${CMAKE_CURRENT_SOURCE_DIR}/unit_test/ci_testrunner.c + ${CMAKE_CURRENT_SOURCE_DIR}/unit_test/ci_custom_test.c + ${CMAKE_CURRENT_SOURCE_DIR}/ci_custom.c + ${PROJECT_SOURCE_DIR}/apps/ci/fsw/src/ci_app.c + ${PROJECT_SOURCE_DIR}/apps/ci/fsw/src/ci_config_utils.c + ${CMAKE_CURRENT_SOURCE_DIR}/unit_test/ci_mock_os_calls.c + ${CMAKE_CURRENT_SOURCE_DIR}/unit_test/ci_test_utils.c + ${PROJECT_SOURCE_DIR}/core/base/ut_assert/src/ut_cfe_es_hooks.c + + INCLUDES + ${PROJECT_SOURCE_DIR}/apps/ci/fsw/src/ + + WRAPPERS + socket + bind + + VALGRIND_SUPPRESSION_FILE + ${CMAKE_CURRENT_SOURCE_DIR}/unit_test/ci-custom.supp +) diff --git a/config/obc/sitl/target/apps/ci/ci_custom.c b/config/obc/sitl/target/apps/ci/ci_custom.c new file mode 100644 index 000000000..5a9c11ef3 --- /dev/null +++ b/config/obc/sitl/target/apps/ci/ci_custom.c @@ -0,0 +1,111 @@ +/**************************************************************************** +* +* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions +* are met: +* +* 1. Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* 2. Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in +* the documentation and/or other materials provided with the +* distribution. +* 3. Neither the name Windhover Labs nor the names of its +* contributors may be used to endorse or promote products derived +* from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS +* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED +* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +* POSSIBILITY OF SUCH DAMAGE. +* +*****************************************************************************/ + +#include "ci_custom.h" +#include "ci_platform_cfg.h" +#include +#include +#include +#include "ci_events.h" +#include +#include + +#define CI_CUSTOM_RETURN_CODE_NULL_POINTER (-1) + + +typedef struct +{ + int Socket; + uint16 Port; +} CI_AppCustomData_t; + +CI_AppCustomData_t CI_AppCustomData = {0, 5010}; + + +osalbool CI_AddCustomEventFilters(uint32 *count) +{ + return TRUE; +} + + +int32 CI_InitCustom(void) +{ + int32 Status = CFE_SUCCESS; + int reuseaddr = 1; + struct sockaddr_in address; + + if((CI_AppCustomData.Socket = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP)) < 0) + { + CFE_EVS_SendEvent(CI_SOCKET_ERR_EID, CFE_EVS_ERROR, + "Socket errno: %i", errno); + Status = -1; + goto end_of_function; + } + + setsockopt(CI_AppCustomData.Socket, SOL_SOCKET, SO_REUSEADDR, &reuseaddr, sizeof(reuseaddr)); + + bzero((char *) &address, sizeof(address)); + address.sin_family = AF_INET; + address.sin_addr.s_addr = htonl (INADDR_ANY); + address.sin_port = htons(CI_AppCustomData.Port); + + if ( (bind(CI_AppCustomData.Socket, (struct sockaddr *) &address, sizeof(address)) < 0) ) + { + CFE_EVS_SendEvent(CI_SOCKET_ERR_EID, CFE_EVS_ERROR,"Bind socket failed = %d", errno); + Status = -1; + goto end_of_function; + } + + CFE_EVS_SendEvent(CI_ENA_INF_EID, CFE_EVS_INFORMATION, + "UDP command input enabled on port %u.", + CI_AppCustomData.Port); + +end_of_function: + return Status; + +} + + +void CI_ReadMessage(uint8* buffer, uint32* size) +{ + *size = recv(CI_AppCustomData.Socket, + (char *)buffer, + (size_t)size, 0); +} + + +void CI_CleanupCustom(void) +{ + close(CI_AppCustomData.Socket); +} + diff --git a/config/obc/sitl/target/apps/ci/tables/ci_config.c b/config/obc/sitl/target/apps/ci/tables/ci_config.c new file mode 100644 index 000000000..dcd0efdce --- /dev/null +++ b/config/obc/sitl/target/apps/ci/tables/ci_config.c @@ -0,0 +1,68 @@ +/* +** Pragmas +*/ + +/* +** Include Files +*/ +#include "cfe_tbl_filedef.h" +#include "ci_tbldefs.h" + +/* +** Local Defines +*/ + +/* +** Local Structure Declarations +*/ +static OS_USED CFE_TBL_FileDef_t CFE_TBL_FileDef = +{ + /* Content format: ObjName[64], TblName[38], Desc[32], TgtFileName[20], ObjSize + ** ObjName - variable name of config table, e.g., CI_ConfigDefTbl[] + ** TblName - app's table name, e.g., CI.CONFIG_TBL, where CI is the same app name + ** used in cfe_es_startup.scr, and CI_defConfigTbl is the same table + ** name passed in to CFE_TBL_Register() + ** Desc - description of table in string format + ** TgtFileName[20] - table file name, compiled as .tbl file extension + ** ObjSize - size of the entire table + */ + + "CI_ConfigTbl", "CI.CONFIG_TBL", "CI default config table", + "ci_config.tbl", sizeof(CI_ConfigTblEntry_t) +}; + +/* +** External Global Variables +*/ + +/* +** Global Variables +*/ + +/* Default CI config table data */ +CI_ConfigTblEntry_t CI_ConfigTbl = +{ + /* Table ID */ + 1, + { + /* Registered Commands */ + {0x1806, 2, STEP_2, UNAUTHORIZED, 0, LOG} // CFE ES Proc/Power Reset + } +}; + +/* +** Local Variables +*/ + +/* +** Function Prototypes +*/ + +/* +** Function Definitions +*/ + +/*======================================================================================= +** End of file ci_config.c +**=====================================================================================*/ + diff --git a/config/obc/sitl/target/apps/ci/unit_test/ci-custom.supp b/config/obc/sitl/target/apps/ci/unit_test/ci-custom.supp new file mode 100644 index 000000000..1864afc99 --- /dev/null +++ b/config/obc/sitl/target/apps/ci/unit_test/ci-custom.supp @@ -0,0 +1,59 @@ +# The following hits are a result of mallocs in UtList_Add. This is +# unit test specific code and does not impact the flight code. +{ + + Memcheck:Leak + match-leak-kinds: reachable + fun:malloc + fun:UtList_Add + fun:Ut_CFE_EVS_SendEventHook + fun:CFE_EVS_SendEvent + fun:CI_InitCustom + fun:Test_CI_InitCustom_Nominal + fun:UtTest_Run + fun:main +} + +{ + + Memcheck:Leak + match-leak-kinds: reachable + fun:malloc + fun:UtList_Add + fun:Ut_CFE_EVS_SendEventHook + fun:CFE_EVS_SendEvent + fun:CI_InitCustom + fun:Test_CI_InitCustom_Nominal + fun:UtTest_Run + fun:main +} + +{ + + Memcheck:Leak + match-leak-kinds: reachable + fun:malloc + fun:UtList_Add + fun:Ut_CFE_EVS_SendEventHook + fun:CFE_EVS_SendEvent + fun:CI_InitCustom + fun:Test_CI_InitCustom_Nominal + fun:UtTest_Run + fun:main +} + +{ + + Memcheck:Leak + match-leak-kinds: reachable + fun:malloc + fun:UtList_Add + fun:Ut_CFE_EVS_SendEventHook + fun:CFE_EVS_SendEvent + fun:CI_InitCustom + fun:Test_CI_InitCustom_Nominal + fun:UtTest_Run + fun:main +} + +################################### diff --git a/config/obc/sitl/target/apps/ci/unit_test/ci_custom_test.c b/config/obc/sitl/target/apps/ci/unit_test/ci_custom_test.c new file mode 100644 index 000000000..f45ed5441 --- /dev/null +++ b/config/obc/sitl/target/apps/ci/unit_test/ci_custom_test.c @@ -0,0 +1,124 @@ +/**************************************************************************** +* +* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions +* are met: +* +* 1. Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* 2. Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in +* the documentation and/or other materials provided with the +* distribution. +* 3. Neither the name Windhover Labs nor the names of its +* contributors may be used to endorse or promote products derived +* from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS +* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED +* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +* POSSIBILITY OF SUCH DAMAGE. +* +*****************************************************************************/ + +#include "ci_custom_test.h" +#include "ci_app.h" +#include "ci_test_utils.h" + +#include "uttest.h" +#include "ut_osapi_stubs.h" +#include "ut_cfe_sb_stubs.h" +#include "ut_cfe_es_stubs.h" +#include "ut_cfe_es_hooks.h" +#include "ut_cfe_evs_stubs.h" +#include "ut_cfe_evs_hooks.h" +#include "ut_cfe_time_stubs.h" +#include "ut_cfe_psp_memutils_stubs.h" +#include "ut_cfe_tbl_stubs.h" +#include "ut_cfe_fs_stubs.h" +#include "ut_cfe_time_stubs.h" + +int SOCK_RET_CODE; +int BIND_RET_CODE; + +/** + * Test CI_InitCustom(), Bad socket + */ +void Test_CI_InitCustom_Bad_Socket(void) +{ + int32 retCode = 0; + + /* Set to cause to fail */ + SOCK_RET_CODE = -1; + + /* Execute the function being tested */ + retCode = CI_InitCustom(); + + /* Verify results */ + UtAssert_True(retCode==-1,"Return = -1"); + UtAssert_EventSent(CI_SOCKET_ERR_EID, CFE_EVS_ERROR, "", "Socket error"); + UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); +} + +/** + * Test CI_InitCustom(), Bad bind + */ +void Test_CI_InitCustom_Bad_Bind(void) +{ + int32 retCode = 0; + + /* Set to cause to fail */ + SOCK_RET_CODE = 0; + BIND_RET_CODE = -1; + + /* Execute the function being tested */ + retCode = CI_InitCustom(); + + /* Verify results */ + UtAssert_True(retCode==-1,"Return = -1"); + UtAssert_EventSent(CI_SOCKET_ERR_EID, CFE_EVS_ERROR, "", "Bind error"); + UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); +} + +/** + * Test CI_InitCustom(), Nominal + */ +void Test_CI_InitCustom_Nominal(void) +{ + int32 retCode = -1; + + /* Set to cause to pass */ + SOCK_RET_CODE = 0; + BIND_RET_CODE = 0; + + /* Execute the function being tested */ + retCode = CI_InitCustom(); + + /* Verify results */ + UtAssert_True(retCode==0,"Return = 0"); + UtAssert_EventSent(CI_ENA_INF_EID, CFE_EVS_INFORMATION, "", "Socket opened"); + UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); +} + +/************************************************************************** + * Rollup Test Cases + **************************************************************************/ +void CI_Custom_Test_AddTestCases(void) +{ + UtTest_Add(Test_CI_InitCustom_Bad_Socket, CI_Test_Setup, CI_Test_TearDown, + "Test_CI_InitCustom_Bad_Socket"); + UtTest_Add(Test_CI_InitCustom_Bad_Bind, CI_Test_Setup, CI_Test_TearDown, + "Test_CI_InitCustom_Bad_Bind"); + UtTest_Add(Test_CI_InitCustom_Nominal, CI_Test_Setup, CI_Test_TearDown, + "Test_CI_InitCustom_Nominal"); +} diff --git a/config/obc/sitl/target/apps/ci/unit_test/ci_custom_test.h b/config/obc/sitl/target/apps/ci/unit_test/ci_custom_test.h new file mode 100644 index 000000000..dbc880681 --- /dev/null +++ b/config/obc/sitl/target/apps/ci/unit_test/ci_custom_test.h @@ -0,0 +1,48 @@ +/**************************************************************************** +* +* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions +* are met: +* +* 1. Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* 2. Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in +* the documentation and/or other materials provided with the +* distribution. +* 3. Neither the name Windhover Labs nor the names of its +* contributors may be used to endorse or promote products derived +* from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS +* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED +* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +* POSSIBILITY OF SUCH DAMAGE. +* +*****************************************************************************/ + + +#ifndef CI_CUSTOM_TEST_H +#define CI_CUSTOM_TEST_H + +#ifdef __cplusplus +extern "C" { +#endif + +void CI_Custom_Test_AddTestCases(void); + +#ifdef __cplusplus +} +#endif + +#endif /* CI_CUSTOM_TEST_H */ diff --git a/config/obc/sitl/target/apps/ci/unit_test/ci_mock_os_calls.c b/config/obc/sitl/target/apps/ci/unit_test/ci_mock_os_calls.c new file mode 100644 index 000000000..f16a1cc2a --- /dev/null +++ b/config/obc/sitl/target/apps/ci/unit_test/ci_mock_os_calls.c @@ -0,0 +1,57 @@ +/**************************************************************************** +* +* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions +* are met: +* +* 1. Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* 2. Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in +* the documentation and/or other materials provided with the +* distribution. +* 3. Neither the name Windhover Labs nor the names of its +* contributors may be used to endorse or promote products derived +* from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS +* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED +* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +* POSSIBILITY OF SUCH DAMAGE. +* +*****************************************************************************/ + +int SOCK_RET_CODE = 0; +int HTONL_RET_CODE = 0; +int HTONS_RET_CODE = 0; +int BIND_RET_CODE = 0; + +int __wrap_socket (int namespace, int style, int protocol) +{ + return SOCK_RET_CODE; +} + +//int __wrap_htonl (int hostlong) +//{ +// return HTONL_RET_CODE; +//} +// +//int __wrap_htons (int hostshort) +//{ +// return HTONS_RET_CODE; +//} + +int __wrap_bind (int socket, int *addr, int length) +{ + return BIND_RET_CODE; +} diff --git a/config/obc/sitl/target/apps/ci/unit_test/ci_mock_os_calls.h b/config/obc/sitl/target/apps/ci/unit_test/ci_mock_os_calls.h new file mode 100644 index 000000000..876608286 --- /dev/null +++ b/config/obc/sitl/target/apps/ci/unit_test/ci_mock_os_calls.h @@ -0,0 +1,50 @@ +/**************************************************************************** +* +* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions +* are met: +* +* 1. Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* 2. Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in +* the documentation and/or other materials provided with the +* distribution. +* 3. Neither the name Windhover Labs nor the names of its +* contributors may be used to endorse or promote products derived +* from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS +* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED +* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +* POSSIBILITY OF SUCH DAMAGE. +* +*****************************************************************************/ + +#ifndef CI_MOCK_OS_CALLS_H +#define CI_MOCK_OS_CALLS_H + +#ifdef __cplusplus +extern "C" { +#endif + +extern int SOCK_RET_CODE; +extern int HTONL_RET_CODE; +extern int HTONS_RET_CODE; +extern int BIND_RET_CODE + +#ifdef __cplusplus +} +#endif + +#endif /* MOCK_OS_CALLS_H */ diff --git a/config/obc/sitl/target/apps/ci/unit_test/ci_test_utils.c b/config/obc/sitl/target/apps/ci/unit_test/ci_test_utils.c new file mode 100644 index 000000000..2f1db3298 --- /dev/null +++ b/config/obc/sitl/target/apps/ci/unit_test/ci_test_utils.c @@ -0,0 +1,83 @@ +/**************************************************************************** +* +* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions +* are met: +* +* 1. Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* 2. Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in +* the documentation and/or other materials provided with the +* distribution. +* 3. Neither the name Windhover Labs nor the names of its +* contributors may be used to endorse or promote products derived +* from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS +* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED +* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +* POSSIBILITY OF SUCH DAMAGE. +* +*****************************************************************************/ + + +#include "ci_test_utils.h" + +#include "ut_cfe_evs_hooks.h" +#include "ut_cfe_time_stubs.h" +#include "ut_cfe_psp_memutils_stubs.h" +#include "ut_cfe_tbl_stubs.h" +#include "ut_cfe_tbl_hooks.h" +#include "ut_cfe_fs_stubs.h" +#include "ut_cfe_time_stubs.h" +#include "ut_osapi_stubs.h" +#include "ut_osfileapi_stubs.h" +#include "ut_cfe_sb_stubs.h" +#include "ut_cfe_es_stubs.h" +#include "ut_cfe_evs_stubs.h" + +#include + +/* + * Config table for testing + */ +CI_ConfigTblEntry_t CI_configtable = { + 1 /* iParam*/ +}; + +/* + * Function Definitions + */ + +void CI_Test_Setup(void) +{ + /* initialize test environment to default state for every test */ + + CFE_PSP_MemSet(&CI_AppData, 0x00, sizeof(CI_AppData_t)); + + Ut_CFE_EVS_Reset(); + Ut_CFE_FS_Reset(); + Ut_CFE_TIME_Reset(); + Ut_CFE_TBL_Reset(); + Ut_CFE_SB_Reset(); + Ut_CFE_ES_Reset(); + Ut_OSAPI_Reset(); + Ut_OSFILEAPI_Reset(); + + Ut_CFE_TBL_AddTable(CI_CONFIG_TABLE_FILENAME, (void *) &CI_configtable); +} + +void CI_Test_TearDown(void) { + CFE_PSP_MemSet(&CI_AppData, 0x00, sizeof(CI_AppData_t)); +} diff --git a/config/obc/sitl/target/apps/ci/unit_test/ci_test_utils.h b/config/obc/sitl/target/apps/ci/unit_test/ci_test_utils.h new file mode 100644 index 000000000..423dc5455 --- /dev/null +++ b/config/obc/sitl/target/apps/ci/unit_test/ci_test_utils.h @@ -0,0 +1,63 @@ +/**************************************************************************** +* +* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions +* are met: +* +* 1. Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* 2. Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in +* the documentation and/or other materials provided with the +* distribution. +* 3. Neither the name Windhover Labs nor the names of its +* contributors may be used to endorse or promote products derived +* from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS +* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED +* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +* POSSIBILITY OF SUCH DAMAGE. +* +*****************************************************************************/ + + +#ifndef CI_TEST_UTILS_H +#define CI_TEST_UTILS_H + +/* + * Includes + */ + +#include "ci_app.h" + +extern CI_AppData_t CI_AppData; + +#ifdef __cplusplus +extern "C" { +#endif + +/* + * Function Definitions + */ + +void CI_Test_Setup(void); +void CI_Test_TearDown(void); + + +#ifdef __cplusplus +} +#endif + +#endif /* CI_TEST_UTILS_H */ + diff --git a/config/obc/sitl/target/apps/ci/unit_test/ci_testrunner.c b/config/obc/sitl/target/apps/ci/unit_test/ci_testrunner.c new file mode 100644 index 000000000..f2e1fc97c --- /dev/null +++ b/config/obc/sitl/target/apps/ci/unit_test/ci_testrunner.c @@ -0,0 +1,45 @@ +/**************************************************************************** +* +* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions +* are met: +* +* 1. Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* 2. Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in +* the documentation and/or other materials provided with the +* distribution. +* 3. Neither the name Windhover Labs nor the names of its +* contributors may be used to endorse or promote products derived +* from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS +* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED +* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +* POSSIBILITY OF SUCH DAMAGE. +* +*****************************************************************************/ + + +#include "uttest.h" + +#include "ci_custom_test.h" + +int main(void) +{ + CI_Custom_Test_AddTestCases(); + + return(UtTest_Run()); +} + diff --git a/config/obc/sitl/target/apps/ds/CMakeLists.txt b/config/obc/sitl/target/apps/ds/CMakeLists.txt new file mode 100644 index 000000000..6379c18b4 --- /dev/null +++ b/config/obc/sitl/target/apps/ds/CMakeLists.txt @@ -0,0 +1,16 @@ +set(APP_NAME ds) + +buildliner_add_table( + ${APP_NAME} + NAME ds_file_tbl + SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/tables/ds_file_tbl.c + INCLUDES ${CMAKE_CURRENT_SOURCE_DIR}/src/ +) + +buildliner_add_table( + ${APP_NAME} + NAME ds_filter_tbl + SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/tables/ds_filter_tbl.c + INCLUDES ${CMAKE_CURRENT_SOURCE_DIR}/src/ +) + diff --git a/config/obc/sitl/target/apps/ds/tables/ds_file_tbl.c b/config/obc/sitl/target/apps/ds/tables/ds_file_tbl.c new file mode 100644 index 000000000..008c69860 --- /dev/null +++ b/config/obc/sitl/target/apps/ds/tables/ds_file_tbl.c @@ -0,0 +1,292 @@ +#include "cfe.h" +#include "cfe_tbl_filedef.h" +#include "ds_platform_cfg.h" +#include "ds_appdefs.h" +#include "ds_app.h" +#include "ds_msg.h" + + +/* +** Note: It is suggested that missions pre-define their file table +** index numbers in a public header file to be included by +** both the packet filter table source file and the destination +** file table source file. Common definitions may also be used +** when creating ground system database entries that require +** file index numbers for command arguments. +*/ +/* All events */ +#define FILE_ALL_EVENTS 0 +/* All housekeeping packets */ +#define FILE_ALL_APP_HK_PKTS 1 +/* Log all flight application messages */ +#define FILE_FLIGHT_APP_TLM_PKTS 2 +/* Log just default flight application messages */ +#define FILE_FLIGHT_DEFAULT_APP_TLM_PKTS 3 +/* Log just sensor application messages */ +#define FILE_FLIGHT_SENSOR_APP_TLM_PKTS 4 +/* Log all flight messages at a low rate */ +#define FILE_FLIGHT_MIN_APP_TLM_PKTS 5 +/* CFE core applications commands */ +#define FILE_CORE_APP_CMD_PKTS 6 + + +/* +** Sample Destination File Table Data +*/ +DS_DestFileTable_t DS_DestFileTable = +{ + /* .Descriptor = */ "Events", + /* .File = */ + { + /* File Index 00 -- event packets only */ + { +#if (DS_MOVE_FILES == TRUE) + /* .Movename = */ DS_EMPTY_STRING, +#endif + /* .Pathname = */ "/cf/log/", + /* .Basename = */ "events", + /* .Extension = */ ".dat", + + /* .FileNameType = */ DS_BY_COUNT, + /* .EnableState = */ DS_ENABLED, + /* .MaxFileSize = */ (1024 * 1024 * 200), /* 200 M-bytes */ + /* .MaxFileAge = */ (60 * 60 * 2), /* 2 hours */ + /* .SequenceCount = */ 1000, + }, + /* File Index 01 -- application housekeeping packets */ + { +#if (DS_MOVE_FILES == TRUE) + /* .Movename = */ DS_EMPTY_STRING, +#endif + /* .Pathname = */ "/cf/log/", + /* .Basename = */ "hk", + /* .Extension = */ ".hk", + + /* .FileNameType = */ DS_BY_COUNT, + /* .EnableState = */ DS_ENABLED, + /* .MaxFileSize = */ (1024 * 1024 * 200), /* 200 M-bytes */ + /* .MaxFileAge = */ (60 * 60 * 2), /* 2 hours */ + /* .SequenceCount = */ 2000, + }, + /* File Index 02 -- application telemetry packets */ + { +#if (DS_MOVE_FILES == TRUE) + /* .Movename = */ DS_EMPTY_STRING, +#endif + /* .Pathname = */ "/cf/log/", + /* .Basename = */ "flight", + /* .Extension = */ ".tlm", + + /* .FileNameType = */ DS_BY_COUNT, + /* .EnableState = */ DS_ENABLED, + /* .MaxFileSize = */ (1024 * 1024 * 200), /* 200 M-bytes */ + /* .MaxFileAge = */ (60 * 60 * 2), /* 2 hours */ + /* .SequenceCount = */ 3000, + }, + /* File Index 03 -- hardware telemetry packets */ + { +#if (DS_MOVE_FILES == TRUE) + /* .Movename = */ DS_EMPTY_STRING, +#endif + /* .Pathname = */ "/cf/log/", + /* .Basename = */ "default", + /* .Extension = */ ".tlm", + + /* .FileNameType = */ DS_BY_COUNT, + /* .EnableState = */ DS_DISABLED, + /* .MaxFileSize = */ (1024 * 1024 * 200), /* 200 M-bytes */ + /* .MaxFileAge = */ (60 * 60 * 2), /* 2 hours */ + /* .SequenceCount = */ 4000, + }, + /* File Index 04 -- cFE housekeeping packets */ + { +#if (DS_MOVE_FILES == TRUE) + /* .Movename = */ DS_EMPTY_STRING, +#endif + /* .Pathname = */ "/cf/log/", + /* .Basename = */ "sensor", + /* .Extension = */ ".tlm", + + /* .FileNameType = */ DS_BY_COUNT, + /* .EnableState = */ DS_DISABLED, + /* .MaxFileSize = */ (1024 * 1024 * 200), /* 200 M-bytes */ + /* .MaxFileAge = */ (60 * 60 * 2), /* 2 hours */ + /* .SequenceCount = */ 5000, + }, + /* File Index 05 -- cFE telemetry packets */ + { +#if (DS_MOVE_FILES == TRUE) + /* .Movename = */ DS_EMPTY_STRING, +#endif + /* .Pathname = */ "/cf/log/", + /* .Basename = */ "minimum", + /* .Extension = */ ".tlm", + + /* .FileNameType = */ DS_BY_COUNT, + /* .EnableState = */ DS_DISABLED, + /* .MaxFileSize = */ (1024 * 1024 * 200), /* 200 M-bytes */ + /* .MaxFileAge = */ (60 * 60 * 2), /* 2 hours */ + /* .SequenceCount = */ 6000, + }, + /* File Index 06 */ + { +#if (DS_MOVE_FILES == TRUE) + /* .Movename = */ DS_EMPTY_STRING, +#endif + /* .Pathname = */ "/cf/log/", + /* .Basename = */ "commands", + /* .Extension = */ ".cmd", + + /* .FileNameType = */ DS_BY_COUNT, + /* .EnableState = */ DS_ENABLED, + /* .MaxFileSize = */ (1024 * 1024 * 200), /* 200 M-bytes */ + /* .MaxFileAge = */ (60 * 60 * 2), /* 2 hours */ + /* .SequenceCount = */ 7000, + }, + /* File Index 07 */ + { +#if (DS_MOVE_FILES == TRUE) + /* .Movename = */ DS_EMPTY_STRING, +#endif + /* .Pathname = */ DS_EMPTY_STRING, + /* .Basename = */ DS_EMPTY_STRING, + /* .Extension = */ DS_EMPTY_STRING, + + /* .FileNameType = */ DS_UNUSED, + /* .EnableState = */ DS_UNUSED, + /* .MaxFileSize = */ DS_UNUSED, + /* .MaxFileAge = */ DS_UNUSED, + /* .SequenceCount = */ DS_UNUSED, + }, + /* File Index 08 */ + { +#if (DS_MOVE_FILES == TRUE) + /* .Movename = */ DS_EMPTY_STRING, +#endif + /* .Pathname = */ DS_EMPTY_STRING, + /* .Basename = */ DS_EMPTY_STRING, + /* .Extension = */ DS_EMPTY_STRING, + + /* .FileNameType = */ DS_UNUSED, + /* .EnableState = */ DS_UNUSED, + /* .MaxFileSize = */ DS_UNUSED, + /* .MaxFileAge = */ DS_UNUSED, + /* .SequenceCount = */ DS_UNUSED, + }, + /* File Index 09 */ + { +#if (DS_MOVE_FILES == TRUE) + /* .Movename = */ DS_EMPTY_STRING, +#endif + /* .Pathname = */ DS_EMPTY_STRING, + /* .Basename = */ DS_EMPTY_STRING, + /* .Extension = */ DS_EMPTY_STRING, + + /* .FileNameType = */ DS_UNUSED, + /* .EnableState = */ DS_UNUSED, + /* .MaxFileSize = */ DS_UNUSED, + /* .MaxFileAge = */ DS_UNUSED, + /* .SequenceCount = */ DS_UNUSED, + }, + /* File Index 10 */ + { +#if (DS_MOVE_FILES == TRUE) + /* .Movename = */ DS_EMPTY_STRING, +#endif + /* .Pathname = */ DS_EMPTY_STRING, + /* .Basename = */ DS_EMPTY_STRING, + /* .Extension = */ DS_EMPTY_STRING, + + /* .FileNameType = */ DS_UNUSED, + /* .EnableState = */ DS_UNUSED, + /* .MaxFileSize = */ DS_UNUSED, + /* .MaxFileAge = */ DS_UNUSED, + /* .SequenceCount = */ DS_UNUSED, + }, + /* File Index 11 */ + { +#if (DS_MOVE_FILES == TRUE) + /* .Movename = */ DS_EMPTY_STRING, +#endif + /* .Pathname = */ DS_EMPTY_STRING, + /* .Basename = */ DS_EMPTY_STRING, + /* .Extension = */ DS_EMPTY_STRING, + + /* .FileNameType = */ DS_UNUSED, + /* .EnableState = */ DS_UNUSED, + /* .MaxFileSize = */ DS_UNUSED, + /* .MaxFileAge = */ DS_UNUSED, + /* .SequenceCount = */ DS_UNUSED, + }, + /* File Index 12 */ + { +#if (DS_MOVE_FILES == TRUE) + /* .Movename = */ DS_EMPTY_STRING, +#endif + /* .Pathname = */ DS_EMPTY_STRING, + /* .Basename = */ DS_EMPTY_STRING, + /* .Extension = */ DS_EMPTY_STRING, + + /* .FileNameType = */ DS_UNUSED, + /* .EnableState = */ DS_UNUSED, + /* .MaxFileSize = */ DS_UNUSED, + /* .MaxFileAge = */ DS_UNUSED, + /* .SequenceCount = */ DS_UNUSED, + }, + /* File Index 13 */ + { +#if (DS_MOVE_FILES == TRUE) + /* .Movename = */ DS_EMPTY_STRING, +#endif + /* .Pathname = */ DS_EMPTY_STRING, + /* .Basename = */ DS_EMPTY_STRING, + /* .Extension = */ DS_EMPTY_STRING, + + /* .FileNameType = */ DS_UNUSED, + /* .EnableState = */ DS_UNUSED, + /* .MaxFileSize = */ DS_UNUSED, + /* .MaxFileAge = */ DS_UNUSED, + /* .SequenceCount = */ DS_UNUSED, + }, + /* File Index 14 */ + { +#if (DS_MOVE_FILES == TRUE) + /* .Movename = */ DS_EMPTY_STRING, +#endif + /* .Pathname = */ DS_EMPTY_STRING, + /* .Basename = */ DS_EMPTY_STRING, + /* .Extension = */ DS_EMPTY_STRING, + + /* .FileNameType = */ DS_UNUSED, + /* .EnableState = */ DS_UNUSED, + /* .MaxFileSize = */ DS_UNUSED, + /* .MaxFileAge = */ DS_UNUSED, + /* .SequenceCount = */ DS_UNUSED, + }, + /* File Index 15 */ + { +#if (DS_MOVE_FILES == TRUE) + /* .Movename = */ DS_EMPTY_STRING, +#endif + /* .Pathname = */ DS_EMPTY_STRING, + /* .Basename = */ DS_EMPTY_STRING, + /* .Extension = */ DS_EMPTY_STRING, + + /* .FileNameType = */ DS_UNUSED, + /* .EnableState = */ DS_UNUSED, + /* .MaxFileSize = */ DS_UNUSED, + /* .MaxFileAge = */ DS_UNUSED, + /* .SequenceCount = */ DS_UNUSED, + }, + } +}; + +/* +** Sample Destination File Table Header +*/ +CFE_TBL_FILEDEF(DS_DestFileTable, DS.FILE_TBL, DS Destination File Table,ds_file_tbl.tbl) + + +/************************/ +/* End of File Comment */ +/************************/ diff --git a/config/obc/sitl/target/apps/ds/tables/ds_filter_tbl.c b/config/obc/sitl/target/apps/ds/tables/ds_filter_tbl.c new file mode 100644 index 000000000..1afc76432 --- /dev/null +++ b/config/obc/sitl/target/apps/ds/tables/ds_filter_tbl.c @@ -0,0 +1,3145 @@ +#include "cfe.h" +#include "cfe_tbl_filedef.h" +#include "ds_platform_cfg.h" +#include "ds_appdefs.h" +#include "ds_app.h" +#include "ds_msg.h" + +/* +** Note: Include header files that define the message ID's for the +** mission specific list of packets that need to be stored. +*/ +#include "cfe_msgids.h" +#include "ds_msgids.h" + +/* #include "ci_lab_msgids.h" */ +/* #include "to_lab_msgids.h" */ + +/* #include "cs_msgids.h" */ +/* #include "ds_msgids.h" */ +/* #include "fm_msgids.h" */ +/* #include "hk_msgids.h" */ +/* #include "hs_msgids.h" */ +/* #include "lc_msgids.h" */ +/* #include "md_msgids.h" */ +/* #include "mm_msgids.h" */ +/* #include "sc_msgids.h" */ +/* #include "sch_msgids.h" */ + + +/* +** Note: It is suggested that missions pre-define their file table +** index numbers in a public header file to be included by +** both the packet filter table source file and the destination +** file table source file. Common definitions may also be used +** when creating command database entries that require file +** index numbers for command arguments. +*/ +/* All events */ +#define FILE_ALL_EVENTS 0 +/* All housekeeping packets */ +#define FILE_ALL_APP_HK_PKTS 1 +/* Log all flight application messages */ +#define FILE_FLIGHT_APP_TLM_PKTS 2 +/* Log just default flight application messages */ +#define FILE_FLIGHT_DEFAULT_APP_TLM_PKTS 3 +/* Log just sensor application messages */ +#define FILE_FLIGHT_SENSOR_APP_TLM_PKTS 4 +/* Log all flight messages at a low rate */ +#define FILE_FLIGHT_MIN_APP_TLM_PKTS 5 +/* CFE core applications commands */ +#define FILE_CORE_APP_CMD_PKTS 6 + + +/* +** Sample packet filter table data +*/ +DS_FilterTable_t DS_FilterTable = +{ + /* .Descriptor = */ "Sample filter table data", + /* .Packet = */ + { + /* Packet Index 000 */ + { + /* .MessageID = */ CFE_ES_HK_TLM_MID, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { FILE_ALL_APP_HK_PKTS, DS_BY_COUNT, 1, 2, 0 }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 001 */ + { + /* .MessageID = */ CFE_EVS_HK_TLM_MID, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { FILE_ALL_APP_HK_PKTS, DS_BY_COUNT, 1, 2, 0 }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 002 */ + { + /* .MessageID = */ CFE_SB_HK_TLM_MID, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { FILE_ALL_APP_HK_PKTS, DS_BY_COUNT, 1, 2, 0 }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 003 */ + { + /* .MessageID = */ CFE_TBL_HK_TLM_MID, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { FILE_ALL_APP_HK_PKTS, DS_BY_COUNT, 1, 2, 0 }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 004 */ + { + /* .MessageID = */ CFE_TIME_HK_TLM_MID, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { FILE_ALL_APP_HK_PKTS, DS_BY_COUNT, 1, 2, 0 }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 005 */ + { + /* .MessageID = */ CFE_EVS_CMD_MID, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { FILE_CORE_APP_CMD_PKTS, DS_BY_COUNT, 1, 1, 0 }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 006 */ + { + /* .MessageID = */ CFE_EVS_EVENT_MSG_MID, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { FILE_ALL_EVENTS, DS_BY_COUNT, 1, 1, 0 }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 007 */ + { + /* .MessageID = */ CFE_SB_CMD_MID, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { FILE_CORE_APP_CMD_PKTS, DS_BY_COUNT, 1, 1, 0 }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 008 */ + { + /* .MessageID = */ CFE_TIME_CMD_MID, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { FILE_CORE_APP_CMD_PKTS, DS_BY_COUNT, 1, 1, 0 }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 009 */ + { + /* .MessageID = */ CFE_ES_CMD_MID, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { FILE_CORE_APP_CMD_PKTS, DS_BY_COUNT, 1, 1, 0 }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 010 */ + { + /* .MessageID = */ DS_UNUSED, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 011 */ + { + /* .MessageID = */ CFE_SB_ONESUB_TLM_MID, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 012 */ + { + /* .MessageID = */ DS_UNUSED, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 013 */ + { + /* .MessageID = */ DS_UNUSED, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 014 */ + { + /* .MessageID = */ DS_UNUSED, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 015 */ + { + /* .MessageID = */ PX4_SENSOR_ACCEL_MID, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { FILE_FLIGHT_APP_TLM_PKTS, DS_BY_COUNT, 10, 250, 0 }, + { FILE_FLIGHT_SENSOR_APP_TLM_PKTS, DS_BY_COUNT, 10, 250, 0 }, + { FILE_FLIGHT_MIN_APP_TLM_PKTS, DS_BY_COUNT, 1, 2000, 0 }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 016 */ + { + /* .MessageID = */ PX4_SENSOR_BARO_MID, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { FILE_FLIGHT_APP_TLM_PKTS, DS_BY_COUNT, 10, 50, 0 }, + { FILE_FLIGHT_SENSOR_APP_TLM_PKTS, DS_BY_COUNT, 10, 50, 0 }, + { FILE_FLIGHT_MIN_APP_TLM_PKTS, DS_BY_COUNT, 1, 2000, 0 }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 017 */ + { + /* .MessageID = */ PX4_SENSOR_GYRO_MID, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { FILE_FLIGHT_APP_TLM_PKTS, DS_BY_COUNT, 10, 250, 0 }, + { FILE_FLIGHT_SENSOR_APP_TLM_PKTS, DS_BY_COUNT, 10, 250, 0 }, + { FILE_FLIGHT_MIN_APP_TLM_PKTS, DS_BY_COUNT, 1, 2000, 0 }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 018 */ + { + /* .MessageID = */ PX4_SENSOR_MAG_MID, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { FILE_FLIGHT_APP_TLM_PKTS, DS_BY_COUNT, 10, 250, 0 }, + { FILE_FLIGHT_SENSOR_APP_TLM_PKTS, DS_BY_COUNT, 10, 250, 0 }, + { FILE_FLIGHT_MIN_APP_TLM_PKTS, DS_BY_COUNT, 1, 2000, 0 }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 019 */ + { + /* .MessageID = */ PX4_SENSOR_COMBINED_MID, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { FILE_FLIGHT_APP_TLM_PKTS, DS_BY_COUNT, 10, 250, 0 }, + { FILE_FLIGHT_SENSOR_APP_TLM_PKTS, DS_BY_COUNT, 10, 250, 0 }, + { FILE_FLIGHT_MIN_APP_TLM_PKTS, DS_BY_COUNT, 1, 2000, 0 }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 020 */ + { + /* .MessageID = */ PX4_VEHICLE_GPS_POSITION_MID, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { FILE_FLIGHT_APP_TLM_PKTS, DS_BY_COUNT, 5, 6, 0 }, + { FILE_FLIGHT_SENSOR_APP_TLM_PKTS, DS_BY_COUNT, 5, 6, 0 }, + { FILE_FLIGHT_MIN_APP_TLM_PKTS, DS_BY_COUNT, 1, 500, 0 }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 021 */ + { + /* .MessageID = */ PX4_DISTANCE_SENSOR_MID, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { FILE_FLIGHT_APP_TLM_PKTS, DS_BY_COUNT, 10, 250, 0 }, + { FILE_FLIGHT_SENSOR_APP_TLM_PKTS, DS_BY_COUNT, 10, 250, 0 }, + { FILE_FLIGHT_MIN_APP_TLM_PKTS, DS_BY_COUNT, 1, 1000, 0 }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 022 */ + { + /* .MessageID = */ PX4_INPUT_RC_MID, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { FILE_FLIGHT_APP_TLM_PKTS, DS_BY_COUNT, 5, 50, 0 }, + { FILE_FLIGHT_MIN_APP_TLM_PKTS, DS_BY_COUNT, 1, 1000, 0 }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 023 */ + { + /* .MessageID = */ PX4_RC_CHANNELS_MID, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { FILE_FLIGHT_APP_TLM_PKTS, DS_BY_COUNT, 1, 250, 0 }, + { FILE_FLIGHT_MIN_APP_TLM_PKTS, DS_BY_COUNT, 1, 2000, 0 }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 024 */ + { + /* .MessageID = */ PX4_ACTUATOR_CONTROLS_0_MID, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { FILE_FLIGHT_APP_TLM_PKTS, DS_BY_COUNT, 10, 250, 0 }, + { FILE_FLIGHT_DEFAULT_APP_TLM_PKTS, DS_BY_COUNT, 10, 250, 0 }, + { FILE_FLIGHT_MIN_APP_TLM_PKTS, DS_BY_COUNT, 1, 1000, 0 }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 025 */ + { + /* .MessageID = */ PX4_ACTUATOR_CONTROLS_1_MID, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { FILE_FLIGHT_APP_TLM_PKTS, DS_BY_COUNT, 10, 250, 0 }, + { FILE_FLIGHT_DEFAULT_APP_TLM_PKTS, DS_BY_COUNT, 10, 250, 0 }, + { FILE_FLIGHT_MIN_APP_TLM_PKTS, DS_BY_COUNT, 1, 1000, 0 }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 026 */ + { + /* .MessageID = */ PX4_ACTUATOR_OUTPUTS_MID, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { FILE_FLIGHT_APP_TLM_PKTS, DS_BY_COUNT, 10, 250, 0 }, + { FILE_FLIGHT_DEFAULT_APP_TLM_PKTS, DS_BY_COUNT, 10, 250, 0 }, + { FILE_FLIGHT_MIN_APP_TLM_PKTS, DS_BY_COUNT, 1, 1000, 0 }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 027 */ + { + /* .MessageID = */ PX4_ACTUATOR_ARMED_MID, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { FILE_FLIGHT_APP_TLM_PKTS, DS_BY_COUNT, 1, 1, 0 }, + { FILE_FLIGHT_MIN_APP_TLM_PKTS, DS_BY_COUNT, 1, 1, 0 }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 028 */ + { + /* .MessageID = */ PX4_BATTERY_STATUS_MID, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { FILE_FLIGHT_APP_TLM_PKTS, DS_BY_COUNT, 2, 50, 0 }, + { FILE_FLIGHT_DEFAULT_APP_TLM_PKTS, DS_BY_COUNT, 2, 50, 0 }, + { FILE_FLIGHT_MIN_APP_TLM_PKTS, DS_BY_COUNT, 1, 500, 0 }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 029 */ + { + /* .MessageID = */ PX4_COMMANDER_STATE_MID, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { FILE_FLIGHT_APP_TLM_PKTS, DS_BY_COUNT, 10, 250, 0 }, + { FILE_FLIGHT_MIN_APP_TLM_PKTS, DS_BY_COUNT, 1, 1000, 0 }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 030 */ + { + /* .MessageID = */ PX4_CONTROL_STATE_MID, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { FILE_FLIGHT_APP_TLM_PKTS, DS_BY_COUNT, 10, 250, 0 }, + { FILE_FLIGHT_MIN_APP_TLM_PKTS, DS_BY_COUNT, 1, 1000, 0 }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 031 */ + { + /* .MessageID = */ PX4_ESTIMATOR_STATUS_MID, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { FILE_FLIGHT_APP_TLM_PKTS, DS_BY_COUNT, 5, 125, 0 }, + { FILE_FLIGHT_DEFAULT_APP_TLM_PKTS, DS_BY_COUNT, 5, 125, 0 }, + { FILE_FLIGHT_MIN_APP_TLM_PKTS, DS_BY_COUNT, 1, 500, 0 }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 032 */ + { + /* .MessageID = */ PX4_EKF2_INNOVATIONS_MID, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { FILE_FLIGHT_APP_TLM_PKTS, DS_BY_COUNT, 5, 125, 0 }, + { FILE_FLIGHT_DEFAULT_APP_TLM_PKTS, DS_BY_COUNT, 5, 125, 0 }, + { FILE_FLIGHT_MIN_APP_TLM_PKTS, DS_BY_COUNT, 1, 500, 0 }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 033 */ + { + /* .MessageID = */ PX4_MANUAL_CONTROL_SETPOINT_MID, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { FILE_FLIGHT_APP_TLM_PKTS, DS_BY_COUNT, 5, 250, 0 }, + { FILE_FLIGHT_DEFAULT_APP_TLM_PKTS, DS_BY_COUNT, 5, 250, 0 }, + { FILE_FLIGHT_MIN_APP_TLM_PKTS, DS_BY_COUNT, 1, 1000, 0 }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 034 */ + { + /* .MessageID = */ PX4_POSITION_SETPOINT_TRIPLET_MID, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { FILE_FLIGHT_APP_TLM_PKTS, DS_BY_COUNT, 5, 250, 0 }, + { FILE_FLIGHT_DEFAULT_APP_TLM_PKTS, DS_BY_COUNT, 5, 250, 0 }, + { FILE_FLIGHT_MIN_APP_TLM_PKTS, DS_BY_COUNT, 1, 1000, 0 }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 035 */ + { + /* .MessageID = */ PX4_VEHICLE_ATTITUDE_MID, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { FILE_FLIGHT_APP_TLM_PKTS, DS_BY_COUNT, 20, 250, 0 }, + { FILE_FLIGHT_DEFAULT_APP_TLM_PKTS, DS_BY_COUNT, 20, 250, 0 }, + { FILE_FLIGHT_MIN_APP_TLM_PKTS, DS_BY_COUNT, 1, 500, 0 }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 036 */ + { + /* .MessageID = */ PX4_VEHICLE_ATTITUDE_SETPOINT_MID, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { FILE_FLIGHT_APP_TLM_PKTS, DS_BY_COUNT, 10, 250, 0 }, + { FILE_FLIGHT_DEFAULT_APP_TLM_PKTS, DS_BY_COUNT, 10, 250, 0 }, + { FILE_FLIGHT_MIN_APP_TLM_PKTS, DS_BY_COUNT, 1, 1000, 0 }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 037 */ + { + /* .MessageID = */ PX4_VEHICLE_RATES_SETPOINT_MID, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { FILE_FLIGHT_APP_TLM_PKTS, DS_BY_COUNT, 20, 250, 0 }, + { FILE_FLIGHT_DEFAULT_APP_TLM_PKTS, DS_BY_COUNT, 20, 250, 0 }, + { FILE_FLIGHT_MIN_APP_TLM_PKTS, DS_BY_COUNT, 1, 500, 0 }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 038 */ + { + /* .MessageID = */ PX4_VEHICLE_COMMAND_MID, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { FILE_FLIGHT_APP_TLM_PKTS, DS_BY_COUNT, 1, 1, 0 }, + { FILE_FLIGHT_DEFAULT_APP_TLM_PKTS, DS_BY_COUNT, 1, 1, 0 }, + { FILE_FLIGHT_MIN_APP_TLM_PKTS, DS_BY_COUNT, 1, 1, 0 }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 039 */ + { + /* .MessageID = */ PX4_VEHICLE_GLOBAL_POSITION_MID, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { FILE_FLIGHT_APP_TLM_PKTS, DS_BY_COUNT, 5, 125, 0 }, + { FILE_FLIGHT_DEFAULT_APP_TLM_PKTS, DS_BY_COUNT, 5, 125, 0 }, + { FILE_FLIGHT_MIN_APP_TLM_PKTS, DS_BY_COUNT, 1, 1000, 0 }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 040 */ + { + /* .MessageID = */ PX4_VEHICLE_GLOBAL_VELOCITY_SETPOINT_MID, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { FILE_FLIGHT_APP_TLM_PKTS, DS_BY_COUNT, 5, 250, 0 }, + { FILE_FLIGHT_MIN_APP_TLM_PKTS, DS_BY_COUNT, 1, 2000, 0 }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 041 */ + { + /* .MessageID = */ PX4_VEHICLE_LAND_DETECTED_MID, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { FILE_FLIGHT_APP_TLM_PKTS, DS_BY_COUNT, 1, 1, 0 }, + { FILE_FLIGHT_DEFAULT_APP_TLM_PKTS, DS_BY_COUNT, 1, 1, 0 }, + { FILE_FLIGHT_MIN_APP_TLM_PKTS, DS_BY_COUNT, 1, 1, 0 }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 042 */ + { + /* .MessageID = */ PX4_VEHICLE_LOCAL_POSITION_MID, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { FILE_FLIGHT_APP_TLM_PKTS, DS_BY_COUNT, 10, 125, 0 }, + { FILE_FLIGHT_DEFAULT_APP_TLM_PKTS, DS_BY_COUNT, 10, 125, 0 }, + { FILE_FLIGHT_MIN_APP_TLM_PKTS, DS_BY_COUNT, 1, 1000, 0 }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 043 */ + { + /* .MessageID = */ PX4_VEHICLE_LOCAL_POSITION_SETPOINT_MID, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { FILE_FLIGHT_APP_TLM_PKTS, DS_BY_COUNT, 10, 250, 0 }, + { FILE_FLIGHT_DEFAULT_APP_TLM_PKTS, DS_BY_COUNT, 10, 250, 0 }, + { FILE_FLIGHT_MIN_APP_TLM_PKTS, DS_BY_COUNT, 1, 1000, 0 }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 044 */ + { + /* .MessageID = */ PX4_VEHICLE_STATUS_MID, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { FILE_FLIGHT_APP_TLM_PKTS, DS_BY_COUNT, 5, 250, 0 }, + { FILE_FLIGHT_DEFAULT_APP_TLM_PKTS, DS_BY_COUNT, 5, 250, 0 }, + { FILE_FLIGHT_MIN_APP_TLM_PKTS, DS_BY_COUNT, 1, 2000, 0 }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 045 */ + { + /* .MessageID = */ PX4_HOME_POSITION_MID, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { FILE_FLIGHT_APP_TLM_PKTS, DS_BY_COUNT, 1, 1, 0 }, + { FILE_FLIGHT_MIN_APP_TLM_PKTS, DS_BY_COUNT, 1, 1, 0 }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 046 */ + { + /* .MessageID = */ PX4_VEHICLE_CONTROL_MODE_MID, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { FILE_FLIGHT_APP_TLM_PKTS, DS_BY_COUNT, 10, 250, 0 }, + { FILE_FLIGHT_MIN_APP_TLM_PKTS, DS_BY_COUNT, 1, 1000, 0 }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 047 */ + { + /* .MessageID = */ DS_UNUSED, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 048 */ + { + /* .MessageID = */ DS_UNUSED, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 049 */ + { + /* .MessageID = */ DS_UNUSED, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 050 */ + { + /* .MessageID = */ TO_HK_TLM_MID, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { FILE_ALL_APP_HK_PKTS, DS_BY_COUNT, 1, 1, 0 }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 051 */ + { + /* .MessageID = */ CI_HK_TLM_MID, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { FILE_ALL_APP_HK_PKTS, DS_BY_COUNT, 1, 1, 0 }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 052 */ + { + /* .MessageID = */ CF_HK_TLM_MID, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { FILE_ALL_APP_HK_PKTS, DS_BY_COUNT, 1, 1, 0 }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 053 */ + { + /* .MessageID = */ CS_HK_TLM_MID, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { FILE_ALL_APP_HK_PKTS, DS_BY_COUNT, 1, 1, 0 }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 054 */ + { + /* .MessageID = */ DS_HK_TLM_MID, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { FILE_ALL_APP_HK_PKTS, DS_BY_COUNT, 1, 1, 0 }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 055 */ + { + /* .MessageID = */ HK_HK_TLM_MID, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { FILE_ALL_APP_HK_PKTS, DS_BY_COUNT, 1, 1, 0 }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 056 */ + { + /* .MessageID = */ HS_HK_TLM_MID, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { FILE_ALL_APP_HK_PKTS, DS_BY_COUNT, 1, 1, 0 }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 057 */ + { + /* .MessageID = */ LC_HK_TLM_MID, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { FILE_ALL_APP_HK_PKTS, DS_BY_COUNT, 1, 1, 0 }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 058 */ + { + /* .MessageID = */ MM_HK_TLM_MID, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { FILE_ALL_APP_HK_PKTS, DS_BY_COUNT, 1, 1, 0 }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 059 */ + { + /* .MessageID = */ MD_HK_TLM_MID, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { FILE_ALL_APP_HK_PKTS, DS_BY_COUNT, 1, 1, 0 }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 060 */ + { + /* .MessageID = */ SC_HK_TLM_MID, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { FILE_ALL_APP_HK_PKTS, DS_BY_COUNT, 1, 1, 0 }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 061 */ + { + /* .MessageID = */ SCH_HK_TLM_MID, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { FILE_ALL_APP_HK_PKTS, DS_BY_COUNT, 1, 1, 0 }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 062 */ + { + /* .MessageID = */ MPU9250_HK_TLM_MID, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { FILE_ALL_APP_HK_PKTS, DS_BY_COUNT, 1, 1, 0 }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 063 */ + { + /* .MessageID = */ MS5611_HK_TLM_MID, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { FILE_ALL_APP_HK_PKTS, DS_BY_COUNT, 1, 1, 0 }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 064 */ + { + /* .MessageID = */ EA_HK_TLM_MID, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { FILE_ALL_APP_HK_PKTS, DS_BY_COUNT, 1, 1, 0 }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 065 */ + { + /* .MessageID = */ VC_HK_TLM_MID, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { FILE_ALL_APP_HK_PKTS, DS_BY_COUNT, 1, 1, 0 }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 066 */ + { + /* .MessageID = */ AMC_HK_TLM_MID, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { FILE_ALL_APP_HK_PKTS, DS_BY_COUNT, 1, 1, 0 }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 067 */ + { + /* .MessageID = */ MAC_HK_TLM_MID, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { FILE_ALL_APP_HK_PKTS, DS_BY_COUNT, 1, 1, 0 }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 068 */ + { + /* .MessageID = */ ULR_HK_TLM_MID, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { FILE_ALL_APP_HK_PKTS, DS_BY_COUNT, 1, 1, 0 }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 069 */ + { + /* .MessageID = */ RGBLED_HK_TLM_MID, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { FILE_ALL_APP_HK_PKTS, DS_BY_COUNT, 1, 1, 0 }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 070 */ + { + /* .MessageID = */ GPS_HK_TLM_MID, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { FILE_ALL_APP_HK_PKTS, DS_BY_COUNT, 1, 1, 0 }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 071 */ + { + /* .MessageID = */ SENS_HK_TLM_MID, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { FILE_ALL_APP_HK_PKTS, DS_BY_COUNT, 1, 1, 0 }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 072 */ + { + /* .MessageID = */ QAE_HK_TLM_MID, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { FILE_ALL_APP_HK_PKTS, DS_BY_COUNT, 1, 1, 0 }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 073 */ + { + /* .MessageID = */ LD_HK_TLM_MID, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { FILE_ALL_APP_HK_PKTS, DS_BY_COUNT, 1, 1, 0 }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 074 */ + { + /* .MessageID = */ MPC_HK_TLM_MID, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { FILE_ALL_APP_HK_PKTS, DS_BY_COUNT, 1, 1, 0 }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 075 */ + { + /* .MessageID = */ NAV_HK_TLM_MID, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { FILE_ALL_APP_HK_PKTS, DS_BY_COUNT, 1, 1, 0 }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 076 */ + { + /* .MessageID = */ RCIN_HK_TLM_MID, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { FILE_ALL_APP_HK_PKTS, DS_BY_COUNT, 1, 1, 0 }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 077 */ + { + /* .MessageID = */ VM_HK_TLM_MID, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { FILE_ALL_APP_HK_PKTS, DS_BY_COUNT, 1, 1, 0 }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 078 */ + { + /* .MessageID = */ BAT_HK_TLM_MID, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { FILE_ALL_APP_HK_PKTS, DS_BY_COUNT, 1, 1, 0 }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 079 */ + { + /* .MessageID = */ PE_HK_TLM_MID, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { FILE_ALL_APP_HK_PKTS, DS_BY_COUNT, 1, 1, 0 }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 080 */ + { + /* .MessageID = */ HMC5883_HK_TLM_MID, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { FILE_ALL_APP_HK_PKTS, DS_BY_COUNT, 1, 1, 0 }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 081 */ + { + /* .MessageID = */ DS_UNUSED, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 082 */ + { + /* .MessageID = */ DS_UNUSED, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 083 */ + { + /* .MessageID = */ DS_UNUSED, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 084 */ + { + /* .MessageID = */ DS_UNUSED, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 085 */ + { + /* .MessageID = */ TO_CMD_MID, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { FILE_CORE_APP_CMD_PKTS, DS_BY_COUNT, 1, 1, 0 }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 086 */ + { + /* .MessageID = */ CI_CMD_MID, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { FILE_CORE_APP_CMD_PKTS, DS_BY_COUNT, 1, 1, 0 }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 087 */ + { + /* .MessageID = */ CF_CMD_MID, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { FILE_CORE_APP_CMD_PKTS, DS_BY_COUNT, 1, 1, 0 }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 088 */ + { + /* .MessageID = */ CS_CMD_MID, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { FILE_CORE_APP_CMD_PKTS, DS_BY_COUNT, 1, 1, 0 }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 089 */ + { + /* .MessageID = */ DS_CMD_MID, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { FILE_CORE_APP_CMD_PKTS, DS_BY_COUNT, 1, 1, 0 }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 090 */ + { + /* .MessageID = */ FM_CMD_MID, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { FILE_CORE_APP_CMD_PKTS, DS_BY_COUNT, 1, 1, 0 }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 091 */ + { + /* .MessageID = */ HK_CMD_MID, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { FILE_CORE_APP_CMD_PKTS, DS_BY_COUNT, 1, 1, 0 }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 092 */ + { + /* .MessageID = */ LC_CMD_MID, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { FILE_CORE_APP_CMD_PKTS, DS_BY_COUNT, 1, 1, 0 }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 093 */ + { + /* .MessageID = */ MM_CMD_MID, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { FILE_CORE_APP_CMD_PKTS, DS_BY_COUNT, 1, 1, 0 }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 094 */ + { + /* .MessageID = */ MD_CMD_MID, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { FILE_CORE_APP_CMD_PKTS, DS_BY_COUNT, 1, 1, 0 }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 095 */ + { + /* .MessageID = */ SC_CMD_MID, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { FILE_CORE_APP_CMD_PKTS, DS_BY_COUNT, 1, 1, 0 }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 096 */ + { + /* .MessageID = */ SCH_CMD_MID, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { FILE_CORE_APP_CMD_PKTS, DS_BY_COUNT, 1, 1, 0 }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 097 */ + { + /* .MessageID = */ MPU9250_CMD_MID, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { FILE_CORE_APP_CMD_PKTS, DS_BY_COUNT, 1, 1, 0 }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 098 */ + { + /* .MessageID = */ MS5611_CMD_MID, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { FILE_CORE_APP_CMD_PKTS, DS_BY_COUNT, 1, 1, 0 }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 099 */ + { + /* .MessageID = */ EA_CMD_MID, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { FILE_CORE_APP_CMD_PKTS, DS_BY_COUNT, 1, 1, 0 }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 100 */ + { + /* .MessageID = */ VC_CMD_MID, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { FILE_CORE_APP_CMD_PKTS, DS_BY_COUNT, 1, 1, 0 }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 101 */ + { + /* .MessageID = */ AMC_CMD_MID, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { FILE_CORE_APP_CMD_PKTS, DS_BY_COUNT, 1, 1, 0 }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 102 */ + { + /* .MessageID = */ MAC_CMD_MID, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { FILE_CORE_APP_CMD_PKTS, DS_BY_COUNT, 1, 1, 0 }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 103 */ + { + /* .MessageID = */ DS_UNUSED, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 104 */ + { + /* .MessageID = */ ULR_CMD_MID, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 105 */ + { + /* .MessageID = */ RGBLED_CMD_MID, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 106 */ + { + /* .MessageID = */ GPS_CMD_MID, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 107 */ + { + /* .MessageID = */ SENS_CMD_MID, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 108 */ + { + /* .MessageID = */ QAE_CMD_MID, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 109 */ + { + /* .MessageID = */ LD_CMD_MID, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 110 */ + { + /* .MessageID = */ MPC_CMD_MID, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 111 */ + { + /* .MessageID = */ NAV_CMD_MID, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 112 */ + { + /* .MessageID = */ RCIN_CMD_MID, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 113 */ + { + /* .MessageID = */ VM_CMD_MID, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 114 */ + { + /* .MessageID = */ BAT_CMD_MID, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 115 */ + { + /* .MessageID = */ PE_CMD_MID, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 116 */ + { + /* .MessageID = */ HMC5883_CMD_MID, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 117 */ + { + /* .MessageID = */ DS_UNUSED, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 118 */ + { + /* .MessageID = */ DS_UNUSED, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 119 */ + { + /* .MessageID = */ DS_UNUSED, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 120 */ + { + /* .MessageID = */ DS_UNUSED, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 121 */ + { + /* .MessageID = */ DS_UNUSED, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 122 */ + { + /* .MessageID = */ DS_UNUSED, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 123 */ + { + /* .MessageID = */ DS_UNUSED, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 124 */ + { + /* .MessageID = */ DS_UNUSED, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 125 */ + { + /* .MessageID = */ DS_UNUSED, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 126 */ + { + /* .MessageID = */ DS_UNUSED, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 127 */ + { + /* .MessageID = */ DS_UNUSED, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 128 */ + { + /* .MessageID = */ DS_UNUSED, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 129 */ + { + /* .MessageID = */ DS_UNUSED, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 130 */ + { + /* .MessageID = */ DS_UNUSED, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 131 */ + { + /* .MessageID = */ DS_UNUSED, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 132 */ + { + /* .MessageID = */ DS_UNUSED, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 133 */ + { + /* .MessageID = */ DS_UNUSED, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 134 */ + { + /* .MessageID = */ DS_UNUSED, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 135 */ + { + /* .MessageID = */ DS_UNUSED, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 136 */ + { + /* .MessageID = */ DS_UNUSED, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 137 */ + { + /* .MessageID = */ DS_UNUSED, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 138 */ + { + /* .MessageID = */ DS_UNUSED, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 139 */ + { + /* .MessageID = */ DS_UNUSED, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 140 */ + { + /* .MessageID = */ DS_UNUSED, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 141 */ + { + /* .MessageID = */ DS_UNUSED, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 142 */ + { + /* .MessageID = */ DS_UNUSED, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 143 */ + { + /* .MessageID = */ DS_UNUSED, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 144 */ + { + /* .MessageID = */ DS_UNUSED, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 145 */ + { + /* .MessageID = */ DS_UNUSED, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 146 */ + { + /* .MessageID = */ DS_UNUSED, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 147 */ + { + /* .MessageID = */ DS_UNUSED, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 148 */ + { + /* .MessageID = */ DS_UNUSED, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 149 */ + { + /* .MessageID = */ DS_UNUSED, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 150 */ + { + /* .MessageID = */ DS_UNUSED, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 151 */ + { + /* .MessageID = */ DS_UNUSED, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 152 */ + { + /* .MessageID = */ DS_UNUSED, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 153 */ + { + /* .MessageID = */ DS_UNUSED, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 154 */ + { + /* .MessageID = */ DS_UNUSED, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 155 */ + { + /* .MessageID = */ DS_UNUSED, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 156 */ + { + /* .MessageID = */ DS_UNUSED, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 157 */ + { + /* .MessageID = */ DS_UNUSED, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 158 */ + { + /* .MessageID = */ DS_UNUSED, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 159 */ + { + /* .MessageID = */ DS_UNUSED, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 160 */ + { + /* .MessageID = */ DS_UNUSED, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 161 */ + { + /* .MessageID = */ DS_UNUSED, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 162 */ + { + /* .MessageID = */ DS_UNUSED, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 163 */ + { + /* .MessageID = */ DS_UNUSED, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 164 */ + { + /* .MessageID = */ DS_UNUSED, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 165 */ + { + /* .MessageID = */ DS_UNUSED, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 166 */ + { + /* .MessageID = */ DS_UNUSED, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 167 */ + { + /* .MessageID = */ DS_UNUSED, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 168 */ + { + /* .MessageID = */ DS_UNUSED, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 169 */ + { + /* .MessageID = */ DS_UNUSED, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 170 */ + { + /* .MessageID = */ DS_UNUSED, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 171 */ + { + /* .MessageID = */ DS_UNUSED, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 172 */ + { + /* .MessageID = */ DS_UNUSED, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 173 */ + { + /* .MessageID = */ DS_UNUSED, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 174 */ + { + /* .MessageID = */ DS_UNUSED, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 175 */ + { + /* .MessageID = */ DS_UNUSED, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 176 */ + { + /* .MessageID = */ DS_UNUSED, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 177 */ + { + /* .MessageID = */ DS_UNUSED, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 178 */ + { + /* .MessageID = */ DS_UNUSED, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 179 */ + { + /* .MessageID = */ DS_UNUSED, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 180 */ + { + /* .MessageID = */ DS_UNUSED, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 181 */ + { + /* .MessageID = */ DS_UNUSED, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 182 */ + { + /* .MessageID = */ DS_UNUSED, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 183 */ + { + /* .MessageID = */ DS_UNUSED, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 184 */ + { + /* .MessageID = */ DS_UNUSED, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 185 */ + { + /* .MessageID = */ DS_UNUSED, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 186 */ + { + /* .MessageID = */ DS_UNUSED, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 187 */ + { + /* .MessageID = */ DS_UNUSED, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 188 */ + { + /* .MessageID = */ DS_UNUSED, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 189 */ + { + /* .MessageID = */ DS_UNUSED, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 190 */ + { + /* .MessageID = */ DS_UNUSED, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 191 */ + { + /* .MessageID = */ DS_UNUSED, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 192 */ + { + /* .MessageID = */ DS_UNUSED, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 193 */ + { + /* .MessageID = */ DS_UNUSED, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 194 */ + { + /* .MessageID = */ DS_UNUSED, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 195 */ + { + /* .MessageID = */ DS_UNUSED, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 196 */ + { + /* .MessageID = */ DS_UNUSED, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 197 */ + { + /* .MessageID = */ DS_UNUSED, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 198 */ + { + /* .MessageID = */ DS_UNUSED, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 199 */ + { + /* .MessageID = */ DS_UNUSED, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 200 */ + { + /* .MessageID = */ DS_UNUSED, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 201 */ + { + /* .MessageID = */ DS_UNUSED, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 202 */ + { + /* .MessageID = */ DS_UNUSED, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 203 */ + { + /* .MessageID = */ DS_UNUSED, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 204 */ + { + /* .MessageID = */ DS_UNUSED, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 205 */ + { + /* .MessageID = */ DS_UNUSED, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 206 */ + { + /* .MessageID = */ DS_UNUSED, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 207 */ + { + /* .MessageID = */ DS_UNUSED, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 208 */ + { + /* .MessageID = */ DS_UNUSED, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 209 */ + { + /* .MessageID = */ DS_UNUSED, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 210 */ + { + /* .MessageID = */ DS_UNUSED, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 211 */ + { + /* .MessageID = */ DS_UNUSED, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 212 */ + { + /* .MessageID = */ DS_UNUSED, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 213 */ + { + /* .MessageID = */ DS_UNUSED, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 214 */ + { + /* .MessageID = */ DS_UNUSED, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 215 */ + { + /* .MessageID = */ DS_UNUSED, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 216 */ + { + /* .MessageID = */ DS_UNUSED, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 217 */ + { + /* .MessageID = */ DS_UNUSED, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 218 */ + { + /* .MessageID = */ DS_UNUSED, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 219 */ + { + /* .MessageID = */ DS_UNUSED, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 220 */ + { + /* .MessageID = */ DS_UNUSED, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 221 */ + { + /* .MessageID = */ DS_UNUSED, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 222 */ + { + /* .MessageID = */ DS_UNUSED, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 223 */ + { + /* .MessageID = */ DS_UNUSED, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 224 */ + { + /* .MessageID = */ DS_UNUSED, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 225 */ + { + /* .MessageID = */ DS_UNUSED, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 226 */ + { + /* .MessageID = */ DS_UNUSED, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 227 */ + { + /* .MessageID = */ DS_UNUSED, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 228 */ + { + /* .MessageID = */ DS_UNUSED, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 229 */ + { + /* .MessageID = */ DS_UNUSED, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 230 */ + { + /* .MessageID = */ DS_UNUSED, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 231 */ + { + /* .MessageID = */ DS_UNUSED, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 232 */ + { + /* .MessageID = */ DS_UNUSED, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 233 */ + { + /* .MessageID = */ DS_UNUSED, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 234 */ + { + /* .MessageID = */ DS_UNUSED, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 235 */ + { + /* .MessageID = */ DS_UNUSED, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 236 */ + { + /* .MessageID = */ DS_UNUSED, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 237 */ + { + /* .MessageID = */ DS_UNUSED, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 238 */ + { + /* .MessageID = */ DS_UNUSED, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 239 */ + { + /* .MessageID = */ DS_UNUSED, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 240 */ + { + /* .MessageID = */ DS_UNUSED, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 241 */ + { + /* .MessageID = */ DS_UNUSED, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 242 */ + { + /* .MessageID = */ DS_UNUSED, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 243 */ + { + /* .MessageID = */ DS_UNUSED, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 244 */ + { + /* .MessageID = */ DS_UNUSED, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 245 */ + { + /* .MessageID = */ DS_UNUSED, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 246 */ + { + /* .MessageID = */ DS_UNUSED, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 247 */ + { + /* .MessageID = */ DS_UNUSED, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 248 */ + { + /* .MessageID = */ DS_UNUSED, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 249 */ + { + /* .MessageID = */ DS_UNUSED, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 250 */ + { + /* .MessageID = */ DS_UNUSED, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 251 */ + { + /* .MessageID = */ DS_UNUSED, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 252 */ + { + /* .MessageID = */ DS_UNUSED, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 253 */ + { + /* .MessageID = */ DS_UNUSED, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 254 */ + { + /* .MessageID = */ DS_UNUSED, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + }, + /* Packet Index 255 */ + { + /* .MessageID = */ DS_UNUSED, + /* .Filter = */ + { + /* File table index, filter type, N, X, O */ + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED }, + { DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED, DS_UNUSED } + } + } + } +}; + +/* +** Sample packet filter table header +*/ +CFE_TBL_FILEDEF(DS_FilterTable, DS.FILTER_TBL, DS Packet Filter Table,ds_filter_tbl.tbl) + + +/************************/ +/* End of File Comment */ +/************************/ diff --git a/config/obc/sitl/target/apps/ea/CMakeLists.txt b/config/obc/sitl/target/apps/ea/CMakeLists.txt new file mode 100644 index 000000000..ae0506220 --- /dev/null +++ b/config/obc/sitl/target/apps/ea/CMakeLists.txt @@ -0,0 +1,55 @@ +set(APP_NAME ea) + +buildliner_add_app_unit_test(ea-custom-ut + UTASSERT + NANOPB + SOURCES + ${CMAKE_CURRENT_SOURCE_DIR}/unit_test/ea_testrunner.c + ${CMAKE_CURRENT_SOURCE_DIR}/unit_test/ea_custom_test.c + ${CMAKE_CURRENT_SOURCE_DIR}/src/ea_custom.c + ${PROJECT_SOURCE_DIR}/apps/ea/fsw/src/ea_app.c + ${CMAKE_CURRENT_SOURCE_DIR}/unit_test/ea_mock_os_calls.c + ${CMAKE_CURRENT_SOURCE_DIR}/unit_test/ea_test_utils.c + ${PROJECT_SOURCE_DIR}/core/base/ut_assert/src/ut_cfe_es_hooks.c + + INCLUDES + ${PROJECT_SOURCE_DIR}/apps/ea/fsw/src/ + + WRAPPERS + fork + execvp + waitpid + kill + + VALGRIND_SUPPRESSION_FILE + ${CMAKE_CURRENT_SOURCE_DIR}/ea-custom-ut.supp +) + +buildliner_add_app_unit_test(ea-perfmon-ut + UTASSERT + NANOPB + SOURCES + ${CMAKE_CURRENT_SOURCE_DIR}/unit_test/ea_perfmon_testrunner.c + ${CMAKE_CURRENT_SOURCE_DIR}/unit_test/ea_perfmon_test.c + ${CMAKE_CURRENT_SOURCE_DIR}/src/ea_custom.c + ${PROJECT_SOURCE_DIR}/apps/ea/fsw/src/ea_app.c + ${CMAKE_CURRENT_SOURCE_DIR}/unit_test/ea_test_utils.c + ${PROJECT_SOURCE_DIR}/core/base/ut_assert/src/ut_cfe_es_hooks.c + + INCLUDES + ${PROJECT_SOURCE_DIR}/apps/ea/fsw/src/ + + VALGRIND_SUPPRESSION_FILE + ${CMAKE_CURRENT_SOURCE_DIR}/ea-perfmon-ut.supp +) + +add_custom_target( + ea-ut-custom-input-files + COMMAND cp ${CMAKE_CURRENT_SOURCE_DIR}/unit_test/sleep.py ${CMAKE_CURRENT_BINARY_DIR} + COMMAND cp ${CMAKE_CURRENT_SOURCE_DIR}/unit_test/fib.py ${CMAKE_CURRENT_BINARY_DIR} + COMMAND cp ${CMAKE_CURRENT_SOURCE_DIR}/unit_test/noop.py ${CMAKE_CURRENT_BINARY_DIR} +) + +add_dependencies(ea-custom-ut ea-ut-custom-input-files) +add_dependencies(ea-perfmon-ut ea-ut-custom-input-files) + diff --git a/config/obc/sitl/target/apps/ea/ea-custom-ut.supp b/config/obc/sitl/target/apps/ea/ea-custom-ut.supp new file mode 100644 index 000000000..d87eb5ce5 --- /dev/null +++ b/config/obc/sitl/target/apps/ea/ea-custom-ut.supp @@ -0,0 +1,27 @@ +{ + + Memcheck:Leak + match-leak-kinds: reachable + fun:malloc + fun:UtList_Add + fun:Ut_CFE_EVS_SendEventHook + fun:CFE_EVS_SendEvent + fun:EA_TermAppCustom + fun:Test_EA_Custom_TermApp_Nominal + fun:UtTest_Run + fun:main +} + +{ + + Memcheck:Leak + match-leak-kinds: reachable + fun:malloc + fun:UtList_Add + fun:Ut_CFE_EVS_SendEventHook + fun:CFE_EVS_SendEvent + fun:EA_TermAppCustom + fun:Test_EA_Custom_TermApp_Nominal + fun:UtTest_Run + fun:main +} \ No newline at end of file diff --git a/config/obc/sitl/target/apps/ea/ea-perfmon-ut.supp b/config/obc/sitl/target/apps/ea/ea-perfmon-ut.supp new file mode 100644 index 000000000..e69de29bb diff --git a/config/obc/sitl/target/apps/ea/src/ea_custom.c b/config/obc/sitl/target/apps/ea/src/ea_custom.c new file mode 100644 index 000000000..28daf8659 --- /dev/null +++ b/config/obc/sitl/target/apps/ea/src/ea_custom.c @@ -0,0 +1,249 @@ +/**************************************************************************** +* +* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions +* are met: +* +* 1. Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* 2. Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in +* the documentation and/or other materials provided with the +* distribution. +* 3. Neither the name Windhover Labs nor the names of its +* contributors may be used to endorse or promote products derived +* from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS +* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED +* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +* POSSIBILITY OF SUCH DAMAGE. +* +*****************************************************************************/ + +#include "ea_custom.h" +#include +#include +#include +#include +#include +#include +#include + +#include "ea_platform_cfg.h" +#include "ea_app.h" +#include "ea_msg.h" + +void EA_StartAppCustom() +{ + int32 Status = -1; + Status = CFE_ES_RegisterChildTask(); + + if (Status == CFE_SUCCESS) + { + /* + ** Create child process to execute app + */ + pid_t pid = fork(); + + /* + ** Child process + */ + if (pid == 0) + { + char *argv[] = {EA_AppData.ChildData.Cmd, EA_AppData.ChildData.Args, NULL}; + if(execvp(EA_AppData.ChildData.Cmd, argv) == -1) + { + CFE_EVS_SendEvent(EA_CMD_ERR_EID, CFE_EVS_ERROR, + "Error starting external application"); + } + /* + ** NOTE: This exit is required here as a means to shut down the child process. + */ + exit(0); + } + /* + ** Failed Fork + */ + else if (pid == -1) + { + EA_AppData.HkTlm.usCmdErrCnt++; + CFE_EVS_SendEvent(EA_CMD_ERR_EID, CFE_EVS_ERROR, + "Error starting new process"); + } + /* + ** Parent process + */ + else + { + EA_AppData.HkTlm.usCmdCnt++; + CFE_EVS_SendEvent(EA_INF_APP_START_EID, CFE_EVS_INFORMATION, + "External application started"); + strncpy(EA_AppData.HkTlm.ActiveApp, EA_AppData.ChildData.Args, OS_MAX_PATH_LEN); + EA_AppData.HkTlm.ActiveAppPID = pid; + waitpid(pid, (int*)&EA_AppData.HkTlm.LastAppStatus, 0); + EA_AppData.HkTlm.LastAppStatus = EA_AppData.HkTlm.LastAppStatus; + EA_AppData.HkTlm.ActiveAppPID = 0; + EA_AppData.HkTlm.ActiveAppUtil = 0; + strncpy(EA_AppData.HkTlm.LastAppRun, EA_AppData.HkTlm.ActiveApp, OS_MAX_PATH_LEN); + memset(EA_AppData.HkTlm.ActiveApp, '\0', OS_MAX_PATH_LEN); + memset(EA_AppData.ChildData.Cmd, '\0', OS_MAX_PATH_LEN); + memset(EA_AppData.ChildData.Args, '\0', OS_MAX_PATH_LEN); + + } + }/*end if register child task*/ + else + { + (void) CFE_ES_WriteToSysLog("EA - StartApp Child Task Registration failed!\n"); + } + + EA_AppData.ChildAppTaskID = 0; + EA_AppData.ChildAppTaskInUse = FALSE; + CFE_ES_ExitChildTask(); + + return; +} + +void EA_TermAppCustom() +{ + int kill_status = -1; + + /* + ** Ensure app is currently running + */ + if(EA_AppData.HkTlm.ActiveAppPID != 0) + { + CFE_ES_DeleteChildTask(EA_AppData.ChildAppTaskID); + kill_status = kill(EA_AppData.HkTlm.ActiveAppPID, SIGKILL); + + /* + ** Check kill call return code + */ + if(kill_status == 0) + { + EA_AppData.HkTlm.usCmdCnt++; + EA_AppData.HkTlm.ActiveAppPID = 0; + EA_AppData.HkTlm.ActiveAppUtil = 0; + strncpy(EA_AppData.HkTlm.LastAppRun, EA_AppData.HkTlm.ActiveApp, OS_MAX_PATH_LEN); + EA_AppData.HkTlm.LastAppStatus = -1; // TODO: Add meaningful number to this + memset(EA_AppData.HkTlm.ActiveApp, '\0', OS_MAX_PATH_LEN); + EA_AppData.ChildAppTaskInUse = FALSE; + CFE_EVS_SendEvent(EA_INF_APP_TERM_EID, CFE_EVS_INFORMATION, + "External application terminated"); + } + else + { + EA_AppData.HkTlm.usCmdErrCnt++; + CFE_EVS_SendEvent(EA_CMD_ERR_EID, CFE_EVS_ERROR, + "Unable to terminate application"); + } + } + else + { + EA_AppData.HkTlm.usCmdErrCnt++; + CFE_EVS_SendEvent(EA_CMD_ERR_EID, CFE_EVS_ERROR, + "Attempted to terminate app while none executing"); + } + + return; +} + +void EA_PerfmonCustom(int32 pid) +{ + EA_ProcData_t proc_data = EA_ParsePidUtil(pid); + int dp = proc_data.p_time - EA_AppData.ProcData.p_time; + int dt = proc_data.total_time - EA_AppData.ProcData.total_time; + float util = 100 * EA_APP_NUM_THREADS * (float)dp/ (float)dt; + EA_AppData.ProcData.p_time = proc_data.p_time; + EA_AppData.ProcData.total_time = proc_data.total_time; + EA_AppData.HkTlm.ActiveAppUtil = util; + + return; +} + +EA_ProcData_t EA_ParsePidUtil(int32 pid) +{ + EA_ProcData_t procData; + unsigned long long int utime = 0; + unsigned long long int ntime = 0; + unsigned long long int stime = 0; + unsigned long long int itime = 0; + unsigned long long int io_wait = 0; + unsigned long long int irq = 0; + unsigned long long int soft_irq = 0; + unsigned long long int steal = 0; + unsigned long long int guest = 0; + unsigned long long int guest_nice = 0; + unsigned long long int sys_time, idle_time, total_time, virt_time; + + FILE* proc_stat = fopen("/proc/stat", "r"); + if (proc_stat == NULL) { + OS_printf("Unable to open stat"); + } + + char buf[1024]; + char* data = fgets(buf, sizeof(buf) - 1, proc_stat); + if (data == NULL) + { + OS_printf("Unable to read stat"); + } + + fclose(proc_stat); + + sscanf(buf, "cpu %16llu %16llu %16llu %16llu %16llu %16llu %16llu %16llu %16llu %16llu", + &utime, &ntime, &stime, &itime, &io_wait, &irq, &soft_irq, &steal, &guest, &guest_nice); + utime = utime - guest; + ntime = ntime - guest_nice; + idle_time = itime + io_wait; + sys_time = stime + irq + soft_irq; + virt_time = guest + guest_nice; + total_time = utime + ntime + sys_time + idle_time + steal + virt_time; + procData.total_time = total_time; + + char path[64]; + snprintf(path, sizeof(path), "/proc/%li/stat", pid); + FILE* pid_stat = fopen(path, "r"); + if (pid_stat == NULL) { + OS_printf("Unable to open pid_stat"); + } + + memset(buf, '\0', 1024); + data = fgets(buf, sizeof(buf) - 1, pid_stat); + if (data == NULL) + { + OS_printf("Unable to read pid_stat"); + } + + int utime_ln = 13; + int stime_ln = 14; + int count_ndx = 0; + char *tok; + for (tok = strtok(data," "); tok != NULL; tok = strtok(NULL, " ")) + { + if (count_ndx == utime_ln) + { + utime = atol(tok); + } + if (count_ndx == stime_ln) + { + stime = atol(tok); + } + count_ndx++; + } + + fclose(pid_stat); + + procData.p_time = utime + stime; + + return(procData); +} diff --git a/config/obc/sitl/target/apps/ea/unit_test/ea-custom-ut.supp b/config/obc/sitl/target/apps/ea/unit_test/ea-custom-ut.supp new file mode 100644 index 000000000..f460b1d85 --- /dev/null +++ b/config/obc/sitl/target/apps/ea/unit_test/ea-custom-ut.supp @@ -0,0 +1,32 @@ +# The following hits are a result of mallocs in UtList_Add. This is +# unit test specific code and does not impact the flight code. + +{ + + Memcheck:Leak + match-leak-kinds: reachable + fun:malloc + fun:UtList_Add + fun:Ut_CFE_EVS_SendEventHook + fun:CFE_EVS_SendEvent + fun:EA_TermAppCustom + fun:Test_EA_Custom_TermApp_Nominal + fun:UtTest_Run + fun:main +} + +{ + + Memcheck:Leak + match-leak-kinds: reachable + fun:malloc + fun:UtList_Add + fun:Ut_CFE_EVS_SendEventHook + fun:CFE_EVS_SendEvent + fun:EA_TermAppCustom + fun:Test_EA_Custom_TermApp_Nominal + fun:UtTest_Run + fun:main +} + +################################### diff --git a/config/obc/sitl/target/apps/ea/unit_test/ea_custom_test.c b/config/obc/sitl/target/apps/ea/unit_test/ea_custom_test.c new file mode 100644 index 000000000..cf816c08d --- /dev/null +++ b/config/obc/sitl/target/apps/ea/unit_test/ea_custom_test.c @@ -0,0 +1,200 @@ +/**************************************************************************** +* +* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions +* are met: +* +* 1. Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* 2. Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in +* the documentation and/or other materials provided with the +* distribution. +* 3. Neither the name Windhover Labs nor the names of its +* contributors may be used to endorse or promote products derived +* from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS +* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED +* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +* POSSIBILITY OF SUCH DAMAGE. +* +*****************************************************************************/ + +#include "ea_custom_test.h" +#include "ea_test_utils.h" +#include "ea_app.h" +#include "ea_custom.h" +#include "ea_msg.h" + +#include "uttest.h" +#include "ut_osapi_stubs.h" +#include "ut_cfe_sb_stubs.h" +#include "ut_cfe_es_stubs.h" +#include "ut_cfe_es_hooks.h" +#include "ut_cfe_evs_stubs.h" +#include "ut_cfe_evs_hooks.h" +#include "ut_cfe_time_stubs.h" +#include "ut_cfe_psp_memutils_stubs.h" +#include "ut_cfe_tbl_stubs.h" +#include "ut_cfe_fs_stubs.h" +#include "ut_cfe_time_stubs.h" + +char CUSTOM_APP_PATH[OS_MAX_PATH_LEN] = "/usr/bin/python"; +char CUSTOM_TEST_ARG[OS_MAX_PATH_LEN] = "noop.py"; + +int FORK_RET_CODE; +int EXECVP_RET_CODE; +int KILL_RET_CODE; +int WAITPID_RET_CODE; + +int PERFMON_SAMPLES = 50; + +/** + * Test EA_StartAppCustom(), Register Child Task Error + */ +void Test_EA_Custom_StartApp_RegisterChildTaskError(void) +{ + /* Set to cause message "StartApp Child Task Registration failed!" to be printed */ + Ut_CFE_ES_SetReturnCode(UT_CFE_ES_REGISTERCHILDTASK_INDEX, -1, 1); + + /* Execute the function being tested */ + EA_StartAppCustom(); + + /* Verify results */ + /* Note: Cannot verify line OS_printf("StartApp Child Task Registration failed!\n") */ + UtAssert_True (EA_AppData.ChildAppTaskID == 0, "Child task ID = 0"); + UtAssert_True (EA_AppData.ChildAppTaskInUse == FALSE, "Child task not in use"); +} + +/** + * Test EA_StartAppCustom(), Failed fork + */ +void Test_EA_Custom_StartApp_FailFork(void) +{ + /* Set to cause fork to fail */ + FORK_RET_CODE = -1; + + /* Execute the function being tested */ + EA_StartAppCustom(); + + /* Verify results */ + UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); + UtAssert_EventSent(EA_CMD_ERR_EID, CFE_EVS_ERROR, + "Error starting new process", "Error starting new process"); + UtAssert_True(EA_AppData.HkTlm.usCmdErrCnt==1,"Command Error Count = 1"); +} + +/** + * Test EA_StartAppCustom(), Nominal + */ +void Test_EA_Custom_StartApp_Nominal(void) +{ + /* Set so everything looks valid */ + strncpy(EA_AppData.ChildData.Cmd, CUSTOM_APP_PATH, OS_MAX_PATH_LEN); + strncpy(EA_AppData.ChildData.Args, CUSTOM_TEST_ARG, OS_MAX_PATH_LEN); + FORK_RET_CODE = 1; + WAITPID_RET_CODE = 2; + + /* Execute the function being tested */ + EA_StartAppCustom(); + + /* Verify results */ + UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); + UtAssert_EventSent(EA_INF_APP_START_EID, CFE_EVS_INFORMATION, "External application started", "External application started"); + UtAssert_True(EA_AppData.HkTlm.usCmdCnt==1,"Command Count = 1"); + + /* Verify cleanup too since app instantly exits for test */ + UtAssert_True(EA_AppData.HkTlm.ActiveAppPID==0,"ActiveAppPID = 0"); + UtAssert_True(EA_AppData.HkTlm.ActiveAppUtil==0,"ActiveAppUtil = 0");// + UtAssert_True(EA_AppData.ChildAppTaskInUse==FALSE,"ChildAppTaskInUse = FALSE"); + UtAssert_StrCmp(EA_AppData.HkTlm.LastAppRun, CUSTOM_TEST_ARG, "Last Active App set"); + UtAssert_True(EA_AppData.HkTlm.LastAppStatus==2,"LastAppStatus = waitpid return code"); +} + +/** + * Test EA_TermAppCustom(), No app running + */ +void Test_EA_Custom_TermApp_NoneActive(void) +{ + /* Set to cause conditional to fail */ + EA_AppData.HkTlm.ActiveAppPID = 0; + + /* Execute the function being tested */ + EA_TermAppCustom(); + + /* Verify results */ + UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); + UtAssert_EventSent(EA_CMD_ERR_EID, CFE_EVS_ERROR, + "Attempted to terminate app while none executing", "No active app"); + UtAssert_True(EA_AppData.HkTlm.usCmdErrCnt==1,"Command Error Count = 1"); +} + +/** + * Test EA_TermAppCustom(), Failed kill + */ +void Test_EA_Custom_TermApp_KillFail(void) +{ + /* Set to cause kill to fail */ + EA_AppData.HkTlm.ActiveAppPID = 1; + KILL_RET_CODE = -1; + + /* Execute the function being tested */ + EA_TermAppCustom(); + + /* Verify results */ + UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); + UtAssert_EventSent(EA_CMD_ERR_EID, CFE_EVS_ERROR, + "Unable to terminate application", "Unable to terminate application"); + UtAssert_True(EA_AppData.HkTlm.usCmdErrCnt==1,"Command Error Count = 1"); +} + +/** + * Test EA_TermAppCustom(), Nominal + */ +void Test_EA_Custom_TermApp_Nominal(void) +{ + /* Set active app params that TermApp will clear or copy to last app params */ + EA_AppData.HkTlm.ActiveAppPID = 1; + EA_AppData.HkTlm.ActiveAppUtil = 2; + EA_AppData.ChildAppTaskInUse = TRUE; + strncpy(EA_AppData.HkTlm.ActiveApp, CUSTOM_TEST_ARG, OS_MAX_PATH_LEN); + KILL_RET_CODE = 0; + + /* Execute the function being tested */ + EA_TermAppCustom(); + + /* Verify results */ + UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); + UtAssert_EventSent(EA_INF_APP_TERM_EID, CFE_EVS_INFORMATION,"", "External application terminated"); + UtAssert_True(EA_AppData.HkTlm.usCmdCnt==1,"Command Count = 1"); + UtAssert_True(EA_AppData.HkTlm.ActiveAppPID==0,"ActiveAppPID = 0"); + UtAssert_True(EA_AppData.HkTlm.ActiveAppUtil==0,"ActiveAppUtil = 0");// + UtAssert_True(EA_AppData.ChildAppTaskInUse==FALSE,"ChildAppTaskInUse = FALSE"); + UtAssert_StrCmp(EA_AppData.HkTlm.LastAppRun, CUSTOM_TEST_ARG, "Last Active App set"); + UtAssert_True(EA_AppData.HkTlm.LastAppStatus==-1,"LastAppStatus = -1"); +} + +/************************************************************************** + * Rollup Test Cases + **************************************************************************/ +void EA_Custom_Test_AddTestCases(void) +{ + UtTest_Add(Test_EA_Custom_StartApp_RegisterChildTaskError, EA_Test_Setup, EA_Test_TearDown, "Test_EA_Custom_StartApp_RegisterChildTaskError"); + UtTest_Add(Test_EA_Custom_StartApp_FailFork, EA_Test_Setup, EA_Test_TearDown, "Test_EA_Custom_StartApp_FailFork"); + UtTest_Add(Test_EA_Custom_StartApp_Nominal, EA_Test_Setup, EA_Test_TearDown, "Test_EA_Custom_StartApp_Nominal"); + UtTest_Add(Test_EA_Custom_TermApp_NoneActive, EA_Test_Setup, EA_Test_TearDown, "Test_EA_Custom_TermApp_NoneActive"); + UtTest_Add(Test_EA_Custom_TermApp_KillFail, EA_Test_Setup, EA_Test_TearDown, "Test_EA_Custom_TermApp_KillFail"); + UtTest_Add(Test_EA_Custom_TermApp_Nominal, EA_Test_Setup, EA_Test_TearDown, "Test_EA_Custom_TermApp_Nominal"); +} + diff --git a/config/obc/sitl/target/apps/ea/unit_test/ea_custom_test.h b/config/obc/sitl/target/apps/ea/unit_test/ea_custom_test.h new file mode 100644 index 000000000..0ba43986e --- /dev/null +++ b/config/obc/sitl/target/apps/ea/unit_test/ea_custom_test.h @@ -0,0 +1,49 @@ +/**************************************************************************** +* +* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions +* are met: +* +* 1. Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* 2. Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in +* the documentation and/or other materials provided with the +* distribution. +* 3. Neither the name Windhover Labs nor the names of its +* contributors may be used to endorse or promote products derived +* from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS +* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED +* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +* POSSIBILITY OF SUCH DAMAGE. +* +*****************************************************************************/ + +#ifndef EA_CUSTOM_TEST_H +#define EA_CUSTOM_TEST_H + +#ifdef __cplusplus +extern "C" { +#endif + +void EA_Custom_Test_AddTestCases(void); +int EA_CalibrateTop(int pid); +int EA_GetPidUtil(int pid, int util_ndx); + +#ifdef __cplusplus +} +#endif + +#endif /* EA_CUSTOM_TEST_H */ diff --git a/config/obc/sitl/target/apps/ea/unit_test/ea_mock_os_calls.c b/config/obc/sitl/target/apps/ea/unit_test/ea_mock_os_calls.c new file mode 100644 index 000000000..ec8b52ec8 --- /dev/null +++ b/config/obc/sitl/target/apps/ea/unit_test/ea_mock_os_calls.c @@ -0,0 +1,62 @@ +/**************************************************************************** +* +* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions +* are met: +* +* 1. Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* 2. Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in +* the documentation and/or other materials provided with the +* distribution. +* 3. Neither the name Windhover Labs nor the names of its +* contributors may be used to endorse or promote products derived +* from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS +* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED +* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +* POSSIBILITY OF SUCH DAMAGE. +* +*****************************************************************************/ + +#include + +int FORK_RET_CODE = 0; +int EXECVP_RET_CODE = 0; +int KILL_RET_CODE = 0; +int WAITPID_RET_CODE = 0; + +//void __real_fork(); + +pid_t __wrap_fork() +{ + return FORK_RET_CODE; +} + +int __wrap_execvp(const char *file, char *const argv[]) +{ + return EXECVP_RET_CODE; +} + +int __wrap_kill(int pid, int signal) +{ + return KILL_RET_CODE; +} + +pid_t __wrap_waitpid(pid_t pid, int *status, int options) +{ + *status = WAITPID_RET_CODE; + return WAITPID_RET_CODE; +} diff --git a/config/obc/sitl/target/apps/ea/unit_test/ea_mock_os_calls.h b/config/obc/sitl/target/apps/ea/unit_test/ea_mock_os_calls.h new file mode 100644 index 000000000..ac9d19b7f --- /dev/null +++ b/config/obc/sitl/target/apps/ea/unit_test/ea_mock_os_calls.h @@ -0,0 +1,57 @@ +/**************************************************************************** +* +* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions +* are met: +* +* 1. Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* 2. Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in +* the documentation and/or other materials provided with the +* distribution. +* 3. Neither the name Windhover Labs nor the names of its +* contributors may be used to endorse or promote products derived +* from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS +* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED +* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +* POSSIBILITY OF SUCH DAMAGE. +* +*****************************************************************************/ + +#ifndef EA_MOCK_OS_CALLS_H +#define EA_MOCK_OS_CALLS_H + +#ifdef __cplusplus +extern "C" { +#endif + +//#define fork() mock_fork() +//#define execvp(...) mock_execvp(__VA_ARGS__) +//#define kill(...) mock_kill(__VA_ARGS__) + +extern int FORK_RET_CODE; +extern int EXECVP_RET_CODE; +extern int KILL_RET_CODE; +extern int WAITPID_RET_CODE +//int __wrap_fork(); +//int __wrap_execvp(const char *file, char *const argv[]); +//int __wrap_kill(int pid, int signal); + +#ifdef __cplusplus +} +#endif + +#endif /* MOCK_OS_CALLS_H */ diff --git a/config/obc/sitl/target/apps/ea/unit_test/ea_perfmon_test.c b/config/obc/sitl/target/apps/ea/unit_test/ea_perfmon_test.c new file mode 100644 index 000000000..c3554a95f --- /dev/null +++ b/config/obc/sitl/target/apps/ea/unit_test/ea_perfmon_test.c @@ -0,0 +1,192 @@ +/**************************************************************************** +* +* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions +* are met: +* +* 1. Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* 2. Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in +* the documentation and/or other materials provided with the +* distribution. +* 3. Neither the name Windhover Labs nor the names of its +* contributors may be used to endorse or promote products derived +* from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS +* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED +* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +* POSSIBILITY OF SUCH DAMAGE. +* +*****************************************************************************/ + +#include "ea_perfmon_test.h" +#include "ea_test_utils.h" +#include "ea_app.h" +#include "ea_custom.h" +#include "ea_msg.h" + +#include "uttest.h" +#include "ut_osapi_stubs.h" +#include "ut_cfe_sb_stubs.h" +#include "ut_cfe_es_stubs.h" +#include "ut_cfe_es_hooks.h" +#include "ut_cfe_evs_stubs.h" +#include "ut_cfe_evs_hooks.h" +#include "ut_cfe_time_stubs.h" +#include "ut_cfe_psp_memutils_stubs.h" +#include "ut_cfe_tbl_stubs.h" +#include "ut_cfe_fs_stubs.h" +#include "ut_cfe_time_stubs.h" + +char PERFMON_APP_PATH[OS_MAX_PATH_LEN] = "/usr/bin/python"; +char PERFMON_TEST_ARG_FIB[OS_MAX_PATH_LEN] = "fib.py"; +char PERFMON_TEST_ARG_SLP[OS_MAX_PATH_LEN] = "sleep.py"; +int PERFMON_SAMPLES = 5; + +/** + * Test EA_PerfmonCustom(), Nominal + */ +void Test_EA_PerfmonCustom_Nominal(void) +{ + /* + ** Create child process to execute test app + */ + pid_t pid = fork(); + /* + ** Child process + */ + if (pid == 0) + { + char *argv[] = {PERFMON_APP_PATH, PERFMON_TEST_ARG_FIB, NULL}; + if(execvp(PERFMON_APP_PATH, argv) == -1) + { + printf("Unable to execute new process\n"); + } + exit(0); + } + /* + ** Failed Fork + */ + else if (pid == -1) + { + printf("Unable to execute fork\n"); + } + /* + ** Parent process + */ + else + { + int high_util_flag = 0; + int low_util_flag = 0; + int util = 0; + int count = 0; + while(count < PERFMON_SAMPLES) + { + /* Get current util */ + EA_PerfmonCustom(pid); + util = EA_AppData.HkTlm.ActiveAppUtil; + + /* Test if util in expected ranges */ + if(util >= 0 && util <= 100) + { + low_util_flag = 1; + } + if(util > 30 && util <= 100) + { + high_util_flag = 1; + } + count += 1; + sleep(1); + } + + /* Verify results */ + UtAssert_True(low_util_flag==1, "Hit low util threshold"); + UtAssert_True(high_util_flag==1, "Hit high util threshold"); + } +} + +/** + * Test EA_PerfmonCustom(), Idle + */ +void Test_EA_PerfmonCustom_Idle(void) +{ + /* + ** Create child process to execute test app + */ + pid_t pid = fork(); + /* + ** Child process + */ + if (pid == 0) + { + char *argv[] = {PERFMON_APP_PATH, PERFMON_TEST_ARG_SLP, NULL}; + if(execvp(PERFMON_APP_PATH, argv) == -1) + { + printf("Unable to execute new process\n"); + } + exit(0); + } + /* + ** Failed Fork + */ + else if (pid == -1) + { + printf("Unable to execute fork\n"); + } + /* + ** Parent process + */ + else + { + int high_util_flag = 0; + int low_util_flag = 0; + int util = 0; + int count = 0; + while(count < PERFMON_SAMPLES) + { + /* Get current util */ + EA_PerfmonCustom(pid); + util = EA_AppData.HkTlm.ActiveAppUtil; + + /* Test if util in expected ranges */ + if(util >= 0 && util <= 100) + { + low_util_flag = 1; + } + if(util > 50 && util <= 100) + { + high_util_flag = 1; + } + count += 1; + sleep(1); + } + + /* Verify results */ + UtAssert_True(low_util_flag==1, "Hit low util threshold"); + UtAssert_True(high_util_flag==0, "Hit high util threshold"); + } +} + + + +/************************************************************************** + * Rollup Test Cases + **************************************************************************/ +void EA_Perfmon_Test_AddTestCases(void) +{ + UtTest_Add(Test_EA_PerfmonCustom_Nominal, EA_Test_Setup, EA_Test_TearDown, "Test_EA_PerfmonCustom_Nominal"); + UtTest_Add(Test_EA_PerfmonCustom_Idle, EA_Test_Setup, EA_Test_TearDown, "Test_EA_PerfmonCustom_Idle"); +} + diff --git a/config/obc/sitl/target/apps/ea/unit_test/ea_perfmon_test.h b/config/obc/sitl/target/apps/ea/unit_test/ea_perfmon_test.h new file mode 100644 index 000000000..0ba43986e --- /dev/null +++ b/config/obc/sitl/target/apps/ea/unit_test/ea_perfmon_test.h @@ -0,0 +1,49 @@ +/**************************************************************************** +* +* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions +* are met: +* +* 1. Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* 2. Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in +* the documentation and/or other materials provided with the +* distribution. +* 3. Neither the name Windhover Labs nor the names of its +* contributors may be used to endorse or promote products derived +* from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS +* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED +* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +* POSSIBILITY OF SUCH DAMAGE. +* +*****************************************************************************/ + +#ifndef EA_CUSTOM_TEST_H +#define EA_CUSTOM_TEST_H + +#ifdef __cplusplus +extern "C" { +#endif + +void EA_Custom_Test_AddTestCases(void); +int EA_CalibrateTop(int pid); +int EA_GetPidUtil(int pid, int util_ndx); + +#ifdef __cplusplus +} +#endif + +#endif /* EA_CUSTOM_TEST_H */ diff --git a/config/obc/sitl/target/apps/ea/unit_test/ea_perfmon_testrunner.c b/config/obc/sitl/target/apps/ea/unit_test/ea_perfmon_testrunner.c new file mode 100644 index 000000000..cbfb60861 --- /dev/null +++ b/config/obc/sitl/target/apps/ea/unit_test/ea_perfmon_testrunner.c @@ -0,0 +1,46 @@ +/**************************************************************************** +* +* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions +* are met: +* +* 1. Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* 2. Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in +* the documentation and/or other materials provided with the +* distribution. +* 3. Neither the name Windhover Labs nor the names of its +* contributors may be used to endorse or promote products derived +* from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS +* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED +* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +* POSSIBILITY OF SUCH DAMAGE. +* +*****************************************************************************/ + +#include "uttest.h" + +#include "ea_perfmon_test.h" + +void EA_Perfmon_Test_AddTestCases(void); + +int main(void) +{ + EA_Perfmon_Test_AddTestCases(); + + return(UtTest_Run()); +} + diff --git a/config/obc/sitl/target/apps/ea/unit_test/ea_test_utils.c b/config/obc/sitl/target/apps/ea/unit_test/ea_test_utils.c new file mode 100644 index 000000000..b82004805 --- /dev/null +++ b/config/obc/sitl/target/apps/ea/unit_test/ea_test_utils.c @@ -0,0 +1,73 @@ +/**************************************************************************** +* +* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions +* are met: +* +* 1. Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* 2. Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in +* the documentation and/or other materials provided with the +* distribution. +* 3. Neither the name Windhover Labs nor the names of its +* contributors may be used to endorse or promote products derived +* from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS +* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED +* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +* POSSIBILITY OF SUCH DAMAGE. +* +*****************************************************************************/ + +#include "ea_test_utils.h" + +#include "ut_cfe_evs_hooks.h" +#include "ut_cfe_time_stubs.h" +#include "ut_cfe_psp_memutils_stubs.h" +#include "ut_cfe_tbl_stubs.h" +#include "ut_cfe_tbl_hooks.h" +#include "ut_cfe_fs_stubs.h" +#include "ut_cfe_time_stubs.h" +#include "ut_osapi_stubs.h" +#include "ut_osfileapi_stubs.h" +#include "ut_cfe_sb_stubs.h" +#include "ut_cfe_es_stubs.h" +#include "ut_cfe_evs_stubs.h" + +#include + +/* + * Function Definitions + */ + +void EA_Test_Setup(void) +{ + /* initialize test environment to default state for every test */ + + CFE_PSP_MemSet(&EA_AppData, 0x00, sizeof(EA_AppData_t)); + + Ut_CFE_EVS_Reset(); + Ut_CFE_FS_Reset(); + Ut_CFE_TIME_Reset(); + Ut_CFE_TBL_Reset(); + Ut_CFE_SB_Reset(); + Ut_CFE_ES_Reset(); + Ut_OSAPI_Reset(); + Ut_OSFILEAPI_Reset(); +} + +void EA_Test_TearDown(void) { + CFE_PSP_MemSet(&EA_AppData, 0x00, sizeof(EA_AppData_t)); +} diff --git a/config/obc/sitl/target/apps/ea/unit_test/ea_test_utils.h b/config/obc/sitl/target/apps/ea/unit_test/ea_test_utils.h new file mode 100644 index 000000000..f4f8f8518 --- /dev/null +++ b/config/obc/sitl/target/apps/ea/unit_test/ea_test_utils.h @@ -0,0 +1,62 @@ +/**************************************************************************** +* +* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions +* are met: +* +* 1. Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* 2. Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in +* the documentation and/or other materials provided with the +* distribution. +* 3. Neither the name Windhover Labs nor the names of its +* contributors may be used to endorse or promote products derived +* from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS +* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED +* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +* POSSIBILITY OF SUCH DAMAGE. +* +*****************************************************************************/ + +#ifndef EA_TEST_UTILS_H +#define EA_TEST_UTILS_H + +/* + * Includes + */ + +#include "ea_app.h" + +extern EA_AppData_t EA_AppData; + +#ifdef __cplusplus +extern "C" { +#endif + +/* + * Function Definitions + */ + +void EA_Test_Setup(void); +void EA_Test_TearDown(void); + + +#ifdef __cplusplus +} +#endif + +#endif /* EA_TEST_UTILS_H */ + diff --git a/config/obc/sitl/target/apps/ea/unit_test/ea_testrunner.c b/config/obc/sitl/target/apps/ea/unit_test/ea_testrunner.c new file mode 100644 index 000000000..9f37d7cb6 --- /dev/null +++ b/config/obc/sitl/target/apps/ea/unit_test/ea_testrunner.c @@ -0,0 +1,44 @@ +/**************************************************************************** +* +* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions +* are met: +* +* 1. Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* 2. Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in +* the documentation and/or other materials provided with the +* distribution. +* 3. Neither the name Windhover Labs nor the names of its +* contributors may be used to endorse or promote products derived +* from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS +* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED +* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +* POSSIBILITY OF SUCH DAMAGE. +* +*****************************************************************************/ + +#include "uttest.h" + +#include "ea_custom_test.h" + +int main(void) +{ + EA_Custom_Test_AddTestCases(); + + return(UtTest_Run()); +} + diff --git a/config/obc/sitl/target/apps/ea/unit_test/fib.py b/config/obc/sitl/target/apps/ea/unit_test/fib.py new file mode 100644 index 000000000..863d2a64d --- /dev/null +++ b/config/obc/sitl/target/apps/ea/unit_test/fib.py @@ -0,0 +1,14 @@ +import sys +import time + +def fib(n): + if n < 0: + return 0 + if n == 0 or n == 1: + return 1 + else: + return fib(n-1) + fib(n-2) + +f = fib(40) + +sys.exit(3) diff --git a/config/obc/sitl/target/apps/ea/unit_test/noop.py b/config/obc/sitl/target/apps/ea/unit_test/noop.py new file mode 100644 index 000000000..de2b0fb69 --- /dev/null +++ b/config/obc/sitl/target/apps/ea/unit_test/noop.py @@ -0,0 +1,3 @@ +import sys +print "Python: Noop" +sys.exit(3) diff --git a/config/obc/sitl/target/apps/ea/unit_test/sleep.py b/config/obc/sitl/target/apps/ea/unit_test/sleep.py new file mode 100644 index 000000000..90aa057a5 --- /dev/null +++ b/config/obc/sitl/target/apps/ea/unit_test/sleep.py @@ -0,0 +1,6 @@ +import sys +import time + +time.sleep(5) + +sys.exit(3) diff --git a/config/obc/sitl/target/apps/prm/CMakeLists.txt b/config/obc/sitl/target/apps/prm/CMakeLists.txt new file mode 100644 index 000000000..64806fbfe --- /dev/null +++ b/config/obc/sitl/target/apps/prm/CMakeLists.txt @@ -0,0 +1,7 @@ +set(APP_NAME prm) + +buildliner_add_table( + ${APP_NAME} + NAME prm_config + SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/tables/prm_config.c +) diff --git a/config/obc/sitl/target/apps/prm/tables/prm_config.c b/config/obc/sitl/target/apps/prm/tables/prm_config.c new file mode 100644 index 000000000..c275bb0dd --- /dev/null +++ b/config/obc/sitl/target/apps/prm/tables/prm_config.c @@ -0,0 +1,63 @@ +/* +** Pragmas +*/ + +/* +** Include Files +*/ +#include "cfe_tbl_filedef.h" +#include "prm_tbldefs.h" + +/* +** Local Defines +*/ + +/* +** Local Structure Declarations +*/ +static OS_USED CFE_TBL_FileDef_t CFE_TBL_FileDef = +{ + /* Content format: ObjName[64], TblName[38], Desc[32], TgtFileName[20], ObjSize + ** ObjName - variable name of config table, e.g., CI_ConfigDefTbl[] + ** TblName - app's table name, e.g., CI.CONFIG_TBL, where CI is the same app name + ** used in cfe_es_startup.scr, and CI_defConfigTbl is the same table + ** name passed in to CFE_TBL_Register() + ** Desc - description of table in string format + ** TgtFileName[20] - table file name, compiled as .tbl file extension + ** ObjSize - size of the entire table + */ + + "PRM_ConfigTbl", "PRM.CONFIG_TBL", "PRM default config table", + "prm_config.tbl", (sizeof(PRM_ConfigTbl_t)) +}; + +/* +** External Global Variables +*/ + +/* +** Global Variables +*/ + +/* Default PRM config table data */ +PRM_ConfigTbl_t PRM_ConfigTbl = +{ + 1 +}; + +/* +** Local Variables +*/ + +/* +** Function Prototypes +*/ + +/* +** Function Definitions +*/ + +/*======================================================================================= +** End of file prm_config.c +**=====================================================================================*/ + diff --git a/config/obc/sitl/target/apps/sbn/CMakeLists.txt b/config/obc/sitl/target/apps/sbn/CMakeLists.txt new file mode 100644 index 000000000..044cfcec4 --- /dev/null +++ b/config/obc/sitl/target/apps/sbn/CMakeLists.txt @@ -0,0 +1 @@ +set(APP_NAME sbn) diff --git a/config/obc/sitl/target/apps/sbn/src/sbn_remap_tbl.c b/config/obc/sitl/target/apps/sbn/src/sbn_remap_tbl.c new file mode 100644 index 000000000..dde197b07 --- /dev/null +++ b/config/obc/sitl/target/apps/sbn/src/sbn_remap_tbl.c @@ -0,0 +1,25 @@ +#include "sbn_tbl.h" +#include "cfe_tbl_filedef.h" +#include "msg_ids.h" + +SBN_RemapTbl_t SBN_RemapTbl = +{ + SBN_REMAP_DEFAULT_IGNORE, /* Remap Default */ + 0, /* number of entries, initialized at validation time */ + { /* remap table */ + /* {CPU_ID, from, to} and if to is 0x0000, filter rather than remap */ + {2, CFE_CMD_MID_BASE_CPU2 + CFE_EVS_CMD_MSG, CFE_CMD_MID_BASE_CPU2 + CFE_EVS_CMD_MSG}, + {2, CFE_CMD_MID_BASE_CPU2 + CFE_SB_CMD_MSG, CFE_CMD_MID_BASE_CPU2 + CFE_SB_CMD_MSG}, + {2, CFE_CMD_MID_BASE_CPU2 + CFE_TBL_CMD_MSG, CFE_CMD_MID_BASE_CPU2 + CFE_TBL_CMD_MSG}, + {2, CFE_CMD_MID_BASE_CPU2 + CFE_TIME_CMD_MSG, CFE_CMD_MID_BASE_CPU2 + CFE_TIME_CMD_MSG}, + {2, CFE_CMD_MID_BASE_CPU2 + CFE_ES_CMD_MSG, CFE_CMD_MID_BASE_CPU2 + CFE_ES_CMD_MSG}, + {2, CFE_CMD_MID_BASE_CPU2 + CFE_TIME_TONE_CMD_MSG, CFE_CMD_MID_BASE_CPU2 + CFE_TIME_TONE_CMD_MSG}, + {2, CFE_CMD_MID_BASE_CPU2 + CFE_TIME_1HZ_CMD_MSG, CFE_CMD_MID_BASE_CPU2 + CFE_TIME_1HZ_CMD_MSG}, + /* Time commands */ + {1, CFE_TIME_DATA_CMD_MID, CFE_TIME_DATA_CMD_MID}, + {1, CFE_TIME_FAKE_CMD_MID, CFE_TIME_FAKE_CMD_MID}, + {1, CFE_TIME_SEND_CMD_MID, CFE_TIME_SEND_CMD_MID} + } +};/* end SBN_RemapTbl */ + +CFE_TBL_FILEDEF(SBN_RemapTbl, SBN.REMAP_TBL, SBN Remap Table,sbn_remap_tbl.tbl) diff --git a/config/obc/sitl/target/apps/sbn/tables/udp/SbnModuleData.dat b/config/obc/sitl/target/apps/sbn/tables/udp/SbnModuleData.dat new file mode 100644 index 000000000..9c5fca3ff --- /dev/null +++ b/config/obc/sitl/target/apps/sbn/tables/udp/SbnModuleData.dat @@ -0,0 +1,9 @@ +5, UIO_MBOX, /cf/apps/sbn_uio_mbox.so, SBN_UIO_Mbox_Ops; + +! +! Format: ProtocolId, ModuleLocation, IFStructName +! +! Protocol id 1 = UDP, 2 = TCP, 3 = SpacewireRMAP, 4 = Spacewire packet, 5 = Shared Memory, 6 = Serial, 7 = 1553, 8 = DTN +! +! IFStructName is the name of the SBN_InterfaceOperations struct defined for the +! module. diff --git a/config/obc/sitl/target/apps/sbn/tables/udp/SbnPeerData.dat b/config/obc/sitl/target/apps/sbn/tables/udp/SbnPeerData.dat new file mode 100644 index 000000000..e39f67a9a --- /dev/null +++ b/config/obc/sitl/target/apps/sbn/tables/udp/SbnPeerData.dat @@ -0,0 +1,51 @@ +CPU1, 1, 5, 0x42, 0, 0, /dev/uio0, 0; +CPU2, 2, 5, 0x42, 0, 0, /dev/uio0, 0; +! +! The '!' is inserted after the last valid peer line, +! it is not a comment character. +! +! The file may contain up to SBN_MAX_NETWORK_PEERS as defined in sbn_app.h +! +! Column 1: CPU Name (must match CFE_CPU_NAME [in cfe_platform_cfg.h]) +! +! Column 2: CPU ID (must match CFE_CPU_ID [in cfe_platform_cfg.h]) +! +! Column 3: Protocol ID (1 = UDP, 2 = TCP, 3 = SpacewireRMAP, +! 4 = Spacewire packet, 5 = Shared Memory, 6 = Serial, 7 = 1553, +! 8 = DTN +! +! Column 4: Spacecraft ID (must match return value of CFE_PSP_GetSpacecraftID()) +! +! Column 5: QoS (need to describe) +! +! Column 6: Network Number (for grouping affiliated peers, to determine +! which host interface is needed for which peer.) +! +! Columns 7+: Protocol ID-dependent. +! UDP/TCP: 7 = hostname/ip, 8 = port +! +! UDP example: +! +! CPU1, 1, 1, 42, 0, 0, 192.168.1.76, 15820; +! CPU2, 2, 1, 42, 1, 0, 192.168.1.77, 15820; +! The ProtoPort is arbitrary, but must be unique for processor/system. +! +! Shared Memory example (may need updates): +! +! CPU1, 1, 5, 0, 0, 0, 0xfffd0000, 0x1000, 0xfffd1000, 0x1000, 0xfffd2000, 0x1000, 0xfffd3000, 0x1000; +! CPU2, 2, 5, 0, 1, 0, 0xfffd1000, 0x1000, 0xfffd0000, 0x1000, 0xfffd3000, 0x1000, 0xfffd2000, 0x1000; +! +! Serial example (may need updates): +! +! CPU1, 1, 6, 0, 0, 0, /dev/ttyS1, 230400; +! CPU2, 2, 6, 0, 0, 0, /dev/ttyS1, 230400; +! CPU1, 1, 6, 0, 1, 1, /dev/ttyS2, 115200; +! CPU3, 2, 6, 0, 1, 1, /dev/ttyS1, 115200; +! +! NOTE on baud rate: The baud rate must match between pairs, and must be one of the following values: +! 38400, 57600, 115200, 230400 +! Larger baud rates are preferred, especially if SBN will be routing messages larger than 100 bytes. +! However, the highest baud rate may produce tty overruns so test different baud rates for your +! specific system. diff --git a/config/obc/sitl/target/apps/sch/CMakeLists.txt b/config/obc/sitl/target/apps/sch/CMakeLists.txt new file mode 100644 index 000000000..749725f7c --- /dev/null +++ b/config/obc/sitl/target/apps/sch/CMakeLists.txt @@ -0,0 +1,48 @@ +set(APP_NAME sch) + +buildliner_add_app_unit_test_src( + ${APP_NAME} + SOURCES + ${CMAKE_CURRENT_SOURCE_DIR}/sch_custom_rt.c +) + +buildliner_add_table( + ${APP_NAME} + NAME sch_def_schtbl + SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/tables/sch_def_schtbl.c + INCLUDES ${CMAKE_CURRENT_SOURCE_DIR}/src/ +) + +buildliner_add_table( + ${APP_NAME} + NAME sch_def_msgtbl + SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/tables/sch_def_msgtbl.c + INCLUDES ${CMAKE_CURRENT_SOURCE_DIR}/src/ +) + +#buildliner_add_app_unit_test(sch-custom-ut +# UTASSERT +# NO_HELGRIND +# NO_MASSIF +# +# SOURCES +# ${CMAKE_CURRENT_SOURCE_DIR}/unit_test/sch_testrunner.c +# ${CMAKE_CURRENT_SOURCE_DIR}/unit_test/sch_custom_test.c +# #${CMAKE_CURRENT_SOURCE_DIR}/unit_test/sch_mock_os_calls.c +# ${CMAKE_CURRENT_SOURCE_DIR}/unit_test/sch_test_utils.c +# ${CMAKE_CURRENT_SOURCE_DIR}/sch_custom.c +## ${PROJECT_SOURCE_DIR}/apps/sch/fsw/src/sch_app.c +## ${PROJECT_SOURCE_DIR}/apps/sch/fsw/src/sch_cds_utils.c +## ${PROJECT_SOURCE_DIR}/apps/sch/fsw/src/sch_config_utils.c +## ${PROJECT_SOURCE_DIR}/core/base/ut_assert/src/ut_cfe_es_hooks.c +# +# INCLUDES +# ${PROJECT_SOURCE_DIR}/apps/sch/fsw/src/ +# +## WRAPPERS +## socket +## bind +# +#) + + diff --git a/config/obc/sitl/target/apps/sch/sch_custom_rt.c b/config/obc/sitl/target/apps/sch/sch_custom_rt.c new file mode 100644 index 000000000..c1f404c16 --- /dev/null +++ b/config/obc/sitl/target/apps/sch/sch_custom_rt.c @@ -0,0 +1,451 @@ +/* +** $Id: sch_custom.c 1.5 2017/06/21 15:29:41EDT mdeschu Exp $ +** +** Copyright (c) 2007-2014 United States Government as represented by the +** Administrator of the National Aeronautics and Space Administration. +** All Other Rights Reserved. +** +** This software was created at NASA's Goddard Space Flight Center. +** This software is governed by the NASA Open Source Agreement and may be +** used, distributed and modified only pursuant to the terms of that +** agreement. +** +** Purpose: Scheduler (SCH) application custom component +** +** Author: +** +** Notes: +** +*/ + +/************************************************************************* +** +** Include section +** +**************************************************************************/ + +#include "cfe.h" +#include "sch_platform_cfg.h" + +#include "sch_app.h" +#include "sch_custom.h" + +#include "cfe_time_msg.h" + + +/************************************************************************* +** +** Macro definitions +** +**************************************************************************/ + +/************************************************************************* +** Local function prototypes +**************************************************************************/ + + +/************************************************************************* +** +** Function definitions +** +**************************************************************************/ + + + + +/******************************************************************* +** +** SCH_CustomEarlyInit +** +** NOTE: For complete prolog information, see 'sch_custom.h' +** +** This function MUST update SCH_AppData.ClockAccuracy to the +** resolution of the minor frame timer. +********************************************************************/ + +int32 SCH_CustomEarlyInit(void) +{ + int32 Status = CFE_SUCCESS; + + Status = OS_TimerCreate(&SCH_AppData.TimerId, + SCH_TIMER_NAME, + &SCH_AppData.ClockAccuracy, + SCH_MinorFrameCallback); + + return Status; + +} /* End of CustomEarlyInit() */ + + +/******************************************************************* +** +** SCH_CustomLateInit +** +** NOTE: For complete prolog information, see 'sch_custom.h' +** +** This function MUST perform any startup synchronization required, +** and MUST finish setting up the major and minor frame timers. +********************************************************************/ + +int32 SCH_CustomLateInit(void) +{ + int32 Status = CFE_SUCCESS; + + CFE_ES_WaitForStartupSync(SCH_STARTUP_SYNC_TIMEOUT); + + /* + ** Connect to cFE TIME's time reference marker (typically 1 Hz) + ** to use it as the Major Frame synchronization source + */ + Status = CFE_TIME_RegisterSynchCallback((CFE_TIME_SynchCallbackPtr_t)&SCH_MajorFrameCallback); + if (Status == CFE_SUCCESS) + { + /* + ** Start the Minor Frame Timer with an extended delay to allow a Major Frame Sync + ** to start processing. If the Major Frame Sync fails to arrive, then we will + ** start when this timer expires and synch ourselves to the MET clock. + */ + Status = OS_TimerSet(SCH_AppData.TimerId, SCH_STARTUP_PERIOD, 0); + } + + return Status; + +} /* End of SH_CustomLateInit() */ + + +/******************************************************************* +** +** SCH_CustomGetCurrentSlotNumber +** +** NOTE: For complete prolog information, see 'sch_custom.h' +********************************************************************/ + +uint32 SCH_CustomGetCurrentSlotNumber(void) +{ + uint32 CurrentSlot; + + if (SCH_AppData.SyncToMET != SCH_NOT_SYNCHRONIZED) + { + CurrentSlot = SCH_GetMETSlotNumber(); + + /* + ** If we are only concerned with synchronizing the minor frames to an MET, + ** then we need to adjust the current slot by whatever MET time is prevalent + ** when the Major Frame Signal is received. + ** If we are synchronizing the Major Frame, then, by definition, LastSyncMETSlot + ** would be a zero and the current slot would be appropriate. + */ + if (CurrentSlot < SCH_AppData.LastSyncMETSlot) + { + CurrentSlot = CurrentSlot + SCH_TOTAL_SLOTS - SCH_AppData.LastSyncMETSlot; + } + else + { + CurrentSlot = CurrentSlot - SCH_AppData.LastSyncMETSlot; + } + } + else + { + CurrentSlot = SCH_AppData.MinorFramesSinceTone; + } + + return CurrentSlot; +} /* End of SH_CustomGetCurrentSlotNumber() */ + +/******************************************************************* +** +** SCH_CustomCleanup +** +** NOTE: For complete prolog information, see 'sch_custom.h' +********************************************************************/ + +void SCH_CustomCleanup(void) +{ + /* unregister the TIME callback for the major frame */ + CFE_TIME_UnregisterSynchCallback((CFE_TIME_SynchCallbackPtr_t)&SCH_MajorFrameCallback); + +} /* End of SH_CustomCleanup() */ + + +/******************************************************************* +** +** SCH_GetMETSlotNumber +** +** NOTE: For complete prolog information, see above +********************************************************************/ + +uint32 SCH_GetMETSlotNumber(void) +{ + uint32 SubSeconds = 0; + uint32 MicroSeconds; + uint32 Remainder; + uint32 METSlot; + + /* + ** Use MET rather than current time to avoid time changes + */ + SubSeconds = CFE_TIME_GetMETsubsecs(); + + /* + ** Convert sub-seconds to micro-seconds + */ + MicroSeconds = CFE_TIME_Sub2MicroSecs(SubSeconds); + + /* + ** Calculate schedule table slot number + */ + METSlot = (MicroSeconds / SCH_NORMAL_SLOT_PERIOD); + + /* + ** Check to see if close enough to round up to next slot + */ + Remainder = MicroSeconds - (METSlot * SCH_NORMAL_SLOT_PERIOD); + + /* + ** Add one more microsecond and see if it is sufficient to add another slot + */ + Remainder += 1; + METSlot += (Remainder / SCH_NORMAL_SLOT_PERIOD); + + /* + ** Check to see if the Current Slot number needs to roll over + */ + if (METSlot == SCH_TOTAL_SLOTS) + { + METSlot = 0; + } + + return METSlot; + +} + + +/******************************************************************* +** +** SCH_MajorFrameCallback +** +** NOTE: For complete prolog information, see above +********************************************************************/ + +void SCH_MajorFrameCallback(void) +{ + /* + ** Synchronize slot zero to the external tone signal + */ + uint16 StateFlags; + + /* + ** If cFE TIME is in FLYWHEEL mode, then ignore all synchronization signals + */ + StateFlags = CFE_TIME_GetClockInfo(); + + if ((StateFlags & CFE_TIME_FLAG_FLYING) == 0) + { + /* + ** Determine whether the major frame is noisy or not + ** + ** Conditions below are as follows: + ** If we are NOT synchronized to the MET (i.e. - the Minor Frame timer + ** has an acceptable resolution), then the Major Frame signal should + ** only occur in the last slot of the schedule table. + ** + ** If we ARE synchronized to the MET (i.e. - the Minor Frame timer is + ** not as good as we would like), then the Major Frame signal should + ** occur within a window of slots at the end of the table. + */ + if (((SCH_AppData.SyncToMET == SCH_NOT_SYNCHRONIZED) && + (SCH_AppData.MinorFramesSinceTone != SCH_TIME_SYNC_SLOT)) || + ((SCH_AppData.SyncToMET == SCH_MINOR_SYNCHRONIZED) && + (SCH_AppData.NextSlotNumber != 0) && + (SCH_AppData.NextSlotNumber < + (SCH_TOTAL_SLOTS - SCH_AppData.WorstCaseSlotsPerMinorFrame - 1)))) + { + /* + ** Count the number of consecutive noisy major frames and the Total number + ** of noisy major frames. Also, indicate in telemetry that this particular + ** Major Frame signal is considered noisy. + */ + SCH_AppData.UnexpectedMajorFrame = TRUE; + SCH_AppData.UnexpectedMajorFrameCount++; + + /* + ** If the Major Frame is not being ignored yet, then increment the consecutive noisy + ** Major Frame counter. + */ + if (!SCH_AppData.IgnoreMajorFrame) + { + SCH_AppData.ConsecutiveNoisyFrameCounter++; + + /* + ** If the major frame is too "noisy", then send event message and ignore future signals + */ + if (SCH_AppData.ConsecutiveNoisyFrameCounter >= SCH_MAX_NOISY_MAJORF) + { + SCH_AppData.IgnoreMajorFrame = TRUE; + } + } + } + else /* Major Frame occurred when expected */ + { + SCH_AppData.UnexpectedMajorFrame = FALSE; + SCH_AppData.ConsecutiveNoisyFrameCounter = 0; + } + + /* + ** Ignore this callback if SCH has detected a noisy Major Frame Synch signal + */ + if (SCH_AppData.IgnoreMajorFrame == FALSE) + { + /* + ** Stop Minor Frame Timer (which should be waiting for an unusually long + ** time to allow the Major Frame source to resynchronize timing) and start + ** it again with nominal Minor Frame timing + */ + OS_TimerSet(SCH_AppData.TimerId, SCH_NORMAL_SLOT_PERIOD, SCH_NORMAL_SLOT_PERIOD); + + /* + ** Increment Major Frame process counter + */ + SCH_AppData.ValidMajorFrameCount++; + + /* + ** Set current slot = zero to synchronize activities + */ + SCH_AppData.MinorFramesSinceTone = 0; + + /* + ** Major Frame Source is now from CFE TIME + */ + SCH_AppData.MajorFrameSource = SCH_MAJOR_FS_CFE_TIME; + + /* Clear any Major Frame In Sync with MET flags */ + /* But keep the Minor Frame In Sync with MET flag if it is set */ + SCH_AppData.SyncToMET &= SCH_MINOR_SYNCHRONIZED; + + /* + ** Give "wakeup SCH" semaphore + */ + OS_BinSemGive(SCH_AppData.TimeSemaphore); + } + } + + /* + ** We should assume that the next Major Frame will be in the same MET slot as this + */ + SCH_AppData.LastSyncMETSlot = SCH_GetMETSlotNumber(); + + return; + +} /* End of SCH_MajorFrameCallback() */ + + +/******************************************************************* +** +** SCH_MinorFrameCallback +** +** NOTE: For complete prolog information, see above +********************************************************************/ + +void SCH_MinorFrameCallback(uint32 TimerId) +{ + uint32 CurrentSlot; + + /* + ** If this is the very first timer interrupt, then the initial + ** Major Frame Synchronization timed out. This can occur when + ** either the signal is not arriving or the clock has gone into + ** FLYWHEEL mode. We should synchronize to the MET time instead. + */ + if (SCH_AppData.MajorFrameSource == SCH_MAJOR_FS_NONE) + { + SCH_AppData.MajorFrameSource = SCH_MAJOR_FS_MINOR_FRAME_TIMER; + + /* Synchronize timing to MET */ + SCH_AppData.SyncToMET |= SCH_PENDING_MAJOR_SYNCH; + SCH_AppData.SyncAttemptsLeft = SCH_MAX_SYNC_ATTEMPTS; + SCH_AppData.LastSyncMETSlot = 0; + } + + /* If attempting to synchronize the Major Frame with MET, then wait for zero subsecs before starting */ + if (((SCH_AppData.SyncToMET & SCH_PENDING_MAJOR_SYNCH) != 0) && + (SCH_AppData.MajorFrameSource == SCH_MAJOR_FS_MINOR_FRAME_TIMER)) + { + /* Whether we have found the Major Frame Start or not, wait another slot */ + OS_TimerSet(SCH_AppData.TimerId, SCH_NORMAL_SLOT_PERIOD, SCH_NORMAL_SLOT_PERIOD); + + /* Determine if this was the last attempt */ + SCH_AppData.SyncAttemptsLeft--; + + CurrentSlot = SCH_GetMETSlotNumber(); + if ((CurrentSlot != 0) && (SCH_AppData.SyncAttemptsLeft > 0)) + { + return; + } + else /* Synchronization achieved (or at least, aborted) */ + { + /* Clear the pending synchronization flag and set the "Major In Sync" flag */ + SCH_AppData.SyncToMET &= ~SCH_PENDING_MAJOR_SYNCH; + SCH_AppData.SyncToMET |= SCH_MAJOR_SYNCHRONIZED; + + /* CurrentSlot should be equal to zero. If not, this is the best estimate we can use */ + SCH_AppData.MinorFramesSinceTone = CurrentSlot; + SCH_AppData.LastSyncMETSlot = 0; + } + } + else + { + /* + ** If we are already synchronized with MET or don't care to be, increment current slot + */ + SCH_AppData.MinorFramesSinceTone++; + } + + if (SCH_AppData.MinorFramesSinceTone >= SCH_TOTAL_SLOTS) + { + /* + ** If we just rolled over from the last slot to slot zero, + ** It means that the Major Frame Callback did not cancel the + ** "long slot" timer that was started in the last slot + ** + ** It also means that we may now need a "short slot" + ** timer to make up for the previous long one + */ + OS_TimerSet(SCH_AppData.TimerId, SCH_SHORT_SLOT_PERIOD, SCH_NORMAL_SLOT_PERIOD); + + SCH_AppData.MinorFramesSinceTone = 0; + + SCH_AppData.MissedMajorFrameCount++; + } + + /* + ** Determine the timer delay value for the next slot + */ + if (SCH_AppData.MinorFramesSinceTone == SCH_TIME_SYNC_SLOT) + { + /* + ** Start "long slot" timer (should be stopped by Major Frame Callback) + */ + OS_TimerSet(SCH_AppData.TimerId, SCH_SYNC_SLOT_PERIOD, 0); + } + + /* + ** Note that if this is neither the first "short" minor frame nor the + ** last "long" minor frame, the timer is not modified. This should + ** provide more stable timing than introducing the dither associated + ** with software response times to timer interrupts. + */ + + /* + ** Give "wakeup SCH" semaphore + */ + OS_BinSemGive(SCH_AppData.TimeSemaphore); + + return; + +} /* End of SCH_MinorFrameCallback() */ + + +/************************/ +/* End of File Comment */ +/************************/ + diff --git a/config/obc/sitl/target/apps/sch/tables/sch_def_msgtbl.c b/config/obc/sitl/target/apps/sch/tables/sch_def_msgtbl.c new file mode 100644 index 000000000..8c5ce16ca --- /dev/null +++ b/config/obc/sitl/target/apps/sch/tables/sch_def_msgtbl.c @@ -0,0 +1,326 @@ +#ifdef __cplusplus +extern "C" { +#endif + +/* +** Pragmas +*/ + +/* +** Include Files +*/ +#include "cfe.h" +#include "cfe_tbl_filedef.h" +#include "sch_platform_cfg.h" +#include "sch_tbldefs.h" +#include "msg_ids.h" + + +/* +** Local Defines +*/ + +/* +** Local Structure Declarations +*/ + +/* +** External Global Variables +*/ + + +/* +** Global Variables +*/ + +#define SCH_FIX_HEADER(a, b, c) CFE_MAKE_BIG16(a), CFE_MAKE_BIG16(b), CFE_MAKE_BIG16(c) + +/* Message table entry map */ +SCH_MessageEntry_t SCH_DefaultMessageTable[SCH_MAX_MESSAGES] = +{ + /* ** DO NOT USE -- entry #0 reserved for "unused" command ID - DO NOT USE */ + /* Command ID #0 */ + { { SCH_UNUSED_MID, 0, 0, 0 } }, + /* Command ID #1 - Executive Services HK Request */ + { { SCH_FIX_HEADER(CFE_ES_SEND_HK_MID, 0xC000, 0x0001), 0x0000 } }, + /* Command ID #2 - Event Services HK Request */ + { { SCH_FIX_HEADER(CFE_EVS_SEND_HK_MID, 0xC000, 0x0001), 0x0000 } }, + /* Command ID #3 - Software Bus HK Request */ + { { SCH_FIX_HEADER(CFE_SB_SEND_HK_MID, 0xC000, 0x0001), 0x0000 } }, + /* Command ID #4 - Time Services HK Request */ + { { SCH_FIX_HEADER(CFE_TIME_SEND_HK_MID, 0xC000, 0x0001), 0x0000 } }, + /* Command ID #5 - Table Services HK Request */ + { { SCH_FIX_HEADER(CFE_TBL_SEND_HK_MID, 0xC000, 0x0001), 0x0000 } }, + /* Command ID #6 */ + { { SCH_FIX_HEADER(CFE_TIME_FAKE_CMD_MID, 0xC000, 0x0001), 0x0000 } }, + /* Command ID #7 - Data storage HK request*/ + { { SCH_FIX_HEADER(SCH_UNUSED_MID, 0,0), 0 } }, + /* Command ID #8 */ + { { SCH_FIX_HEADER(SCH_UNUSED_MID, 0,0), 0 } }, + /* Command ID #9 */ + { { SCH_FIX_HEADER(LC_SAMPLE_AP_MID, 0xC000, 0x0007), 0x0000, 0x0000, 0x0001, 0x0001 } }, + /* Command ID #10 - Health and safety HK request*/ + { { SCH_FIX_HEADER(SCH_UNUSED_MID, 0,0), 0 } }, + /* Command ID #11 - Limit checker HK request*/ + { { SCH_FIX_HEADER(SCH_UNUSED_MID, 0,0), 0 } }, + /* Command ID #12 */ + { { SCH_FIX_HEADER(SCH_UNUSED_MID, 0,0), 0 } }, + /* Command ID #13 */ + { { SCH_FIX_HEADER(SCH_UNUSED_MID, 0,0), 0 } }, + /* Command ID #14 - Wakeup store command app*/ + { { SCH_FIX_HEADER(SCH_UNUSED_MID, 0,0), 0 } }, + /* Command ID #15 - Scheduler HK request*/ + { { SCH_FIX_HEADER(SCH_SEND_HK_MID, 0xC000, 0x0001), 0x0000 } }, + /* Command ID #16 */ + { { SCH_FIX_HEADER(TO_SEND_HK_MID, 0xC000, 0x0001), 0x0000 } }, + /* Command ID #17 */ + { { SCH_FIX_HEADER(HK_SEND_HK_MID, 0xC000, 0x0001), 0x0000 } }, + /* Command ID #18 */ + { { SCH_FIX_HEADER(SCH_UNUSED_MID, 0, 0), 0 } }, + /* Command ID #19 */ + { { SCH_FIX_HEADER(TO_SEND_TLM_MID, 0xC000, 0x0001), 0x0000 } }, + /* Command ID #20 */ + { { SCH_FIX_HEADER(HK_SEND_COMBINED_PKT_MID, 0xC000, 0x0003), 0x0000, HK_COMBINED_PKT1_MID } }, + /* Command ID #21 */ + { { SCH_FIX_HEADER(HK_SEND_COMBINED_PKT_MID, 0xC000, 0x0003), 0x0000, HK_COMBINED_PKT2_MID } }, + /* Command ID #22 */ + { { SCH_FIX_HEADER(HK_SEND_COMBINED_PKT_MID, 0xC000, 0x0003), 0x0000, HK_COMBINED_PKT3_MID } }, + /* Command ID #23 */ + { { SCH_FIX_HEADER(HK_SEND_COMBINED_PKT_MID, 0xC000, 0x0003), 0x0000, HK_COMBINED_PKT4_MID } }, + /* Command ID #24 */ + { { SCH_FIX_HEADER(HK_SEND_COMBINED_PKT_MID, 0xC000, 0x0003), 0x0000, HK_COMBINED_PKT5_MID } }, + /* Command ID #25 */ + { { SCH_FIX_HEADER(HK_SEND_COMBINED_PKT_MID, 0xC000, 0x0003), 0x0000, HK_COMBINED_PKT6_MID } }, + /* Command ID #26 */ + { { SCH_FIX_HEADER(HK_SEND_COMBINED_PKT_MID, 0xC000, 0x0003), 0x0000, HK_COMBINED_PKT7_MID } }, + /* Command ID #27 */ + { { SCH_FIX_HEADER(HK_SEND_COMBINED_PKT_MID, 0xC000, 0x0003), 0x0000, HK_COMBINED_PKT8_MID } }, + /* Command ID #28 */ + { { SCH_FIX_HEADER(HK_SEND_COMBINED_PKT_MID, 0xC000, 0x0003), 0x0000, HK_COMBINED_PKT9_MID } }, + /* Command ID #29 */ + { { SCH_FIX_HEADER(HK_SEND_COMBINED_PKT_MID, 0xC000, 0x0003), 0x0000, HK_COMBINED_PKT10_MID } }, + /* Command ID #30 */ + { { SCH_FIX_HEADER(FM_SEND_HK_MID, 0xC000, 0x0001), 0x0000 } }, + /* Command ID #31 */ + { { SCH_FIX_HEADER(LC_SEND_HK_MID, 0xC000, 0x0001), 0x0000 } }, + /* Command ID #32 */ + { { SCH_FIX_HEADER(HS_WAKEUP_MID, 0xC000, 0x0001), 0x0000 } }, + /* Command ID #33 */ + { { SCH_FIX_HEADER(HS_SEND_HK_MID, 0xC000, 0x0001), 0x0000 } }, + /* Command ID #34 */ + { { SCH_FIX_HEADER(MD_SEND_HK_MID, 0xC000, 0x0001), 0x0000 } }, + /* Command ID #35 */ + { { SCH_FIX_HEADER(MD_WAKEUP_MID, 0xC000, 0x0001), 0x0000 } }, + /* Command ID #36 */ + { { SCH_FIX_HEADER(SCH_UNUSED_MID, 0, 0), 0 } }, + /* Command ID #37 */ + { { SCH_FIX_HEADER(DS_SEND_HK_MID, 0xC000, 0x0001), 0x0000 } }, + /* Command ID #38 */ + { { SCH_FIX_HEADER(CS_SEND_HK_MID, 0xC000, 0x0001), 0x0000 } }, + /* Command ID #39 */ + { { SCH_FIX_HEADER(CS_BACKGROUND_CYCLE_MID, 0xC000, 0x0001), 0x0000 } }, + /* Command ID #40 */ + { { SCH_FIX_HEADER(SC_1HZ_WAKEUP_MID, 0xC000, 0x0001), 0x0000 } }, + /* Command ID #41 */ + { { SCH_FIX_HEADER(SC_SEND_HK_MID, 0xC000, 0x0001), 0x0000 } }, + /* Command ID #42 */ + { { SCH_FIX_HEADER(FLOW_WAKEUP_MID, 0xC000, 0x0001), 0x0000 } }, + /* Command ID #43 */ + { { SCH_FIX_HEADER(FLOW_SEND_HK_MID, 0xC000, 0x0001), 0x0000 } }, + /* Command ID #44 */ + { { SCH_FIX_HEADER(SCH_UNUSED_MID, 0, 0), 0 } }, + /* Command ID #45 */ + { { SCH_FIX_HEADER(VC_PROCESS_CMDS_MID, 0xC000, 0x0001), 0x0000 } }, + /* Command ID #46 */ + { { SCH_FIX_HEADER(VC_SEND_HK_MID, 0xC000, 0x0001), 0x0000 } }, + /* Command ID #47 */ + { { SCH_FIX_HEADER(RGBLED_WAKEUP_MID, 0xC000, 0x0001), 0x0000 } }, + /* Command ID #48 */ + { { SCH_FIX_HEADER(RGBLED_SEND_HK_MID, 0xC000, 0x0001), 0x0000 } }, + /* Command ID #49 */ + { { SCH_FIX_HEADER(SCH_UNUSED_MID, 0, 0), 0 } }, + /* Command ID #50 */ + { { SCH_FIX_HEADER(SCH_UNUSED_MID, 0, 0), 0 } }, + /* Command ID #51 */ + { { SCH_FIX_HEADER(CI_PROCESS_TIMEOUTS_MID, 0xC000, 0x0001), 0x0000 } }, + /* Command ID #52 */ + { { SCH_FIX_HEADER(CI_SEND_HK_MID, 0xC000, 0x0001), 0x0000 } }, + /* Command ID #53 */ + { { SCH_FIX_HEADER(SCH_UNUSED_MID, 0, 0), 0 } }, + /* Command ID #54 */ + { { SCH_FIX_HEADER(SCH_UNUSED_MID, 0, 0), 0 } }, + /* Command ID #55 */ + { { SCH_FIX_HEADER(SCH_UNUSED_MID, 0, 0), 0 } }, + /* Command ID #56 */ + { { SCH_FIX_HEADER(SCH_UNUSED_MID, 0, 0), 0 } }, + /* Command ID #57 */ + { { SCH_FIX_HEADER(CF_SEND_HK_MID, 0xC000, 0x0001), 0x0000 } }, + /* Command ID #58 */ + { { SCH_FIX_HEADER(CF_WAKE_UP_REQ_CMD_MID, 0xC000, 0x0001), 0x0000 } }, + /* Command ID #59 */ + { { SCH_FIX_HEADER(SCH_UNUSED_MID, 0, 0), 0 } }, + /* Command ID #60 */ + { { SCH_FIX_HEADER(MAC_SEND_HK_MID, 0xC000, 0x0001), 0x0000 } }, + /* Command ID #61 */ + { { SCH_FIX_HEADER(MAC_RUN_CONTROLLER_MID, 0xC000, 0x0001), 0x0000 } }, + /* Command ID #62 */ + { { SCH_FIX_HEADER(SCH_UNUSED_MID, 0, 0), 0 } }, + /* Command ID #63 */ + { { SCH_FIX_HEADER(SCH_UNUSED_MID, 0, 0), 0 } }, + /* Command ID #64 */ + { { SCH_FIX_HEADER(SCH_UNUSED_MID, 0, 0), 0 } }, + /* Command ID #65 */ + { { SCH_FIX_HEADER(AMC_UPDATE_MOTORS_MID, 0xC000, 0x0001), 0 } }, + /* Command ID #66 */ + { { SCH_FIX_HEADER(AMC_SEND_HK_MID, 0xC000, 0x0001), 0 } }, + /* Command ID #67 */ + { { SCH_FIX_HEADER(MPU9250_SEND_HK_MID, 0xC000, 0x0001), 0x0000 } }, + /* Command ID #68 */ + { { SCH_FIX_HEADER(MPU9250_MEASURE_MID, 0xC000, 0x0001), 0x0000 } }, + /* Command ID #69 */ + { { SCH_FIX_HEADER(SCH_UNUSED_MID, 0, 0), 0 } }, + /* Command ID #70 */ + { { SCH_FIX_HEADER(MM_SEND_HK_MID, 0xC000, 0x0001), 0x0000 } }, + /* Command ID #71 */ + { { SCH_FIX_HEADER(SCH_UNUSED_MID, 0, 0), 0 } }, + /* Command ID #72 */ + { { SCH_FIX_HEADER(SCH_UNUSED_MID, 0, 0), 0 } }, + /* Command ID #73 */ + { { SCH_FIX_HEADER(SCH_UNUSED_MID, 0, 0), 0 } }, + /* Command ID #74 */ + { { SCH_FIX_HEADER(PE_SEND_HK_MID, 0xC000, 0x0001), 0x0000 } }, + /* Command ID #75 */ + { { SCH_FIX_HEADER(PE_WAKEUP_MID, 0xC000, 0x0001), 0x0000 } }, + /* Command ID #76 */ + { { SCH_FIX_HEADER(SCH_UNUSED_MID, 0, 0), 0 } }, + /* Command ID #77 */ + { { SCH_FIX_HEADER(SCH_UNUSED_MID, 0, 0), 0 } }, + /* Command ID #78 */ + { { SCH_FIX_HEADER(MS5611_SEND_HK_MID, 0xC000, 0x0001), 0x0000 } }, + /* Command ID #79 */ + { { SCH_FIX_HEADER(MS5611_MEASURE_MID, 0xC000, 0x0001), 0x0000 } }, + /* Command ID #80 */ + { { SCH_FIX_HEADER(ULR_MEASURE_MID, 0xC000, 0x0001), 0x0000 } }, + /* Command ID #81 */ + { { SCH_FIX_HEADER(ULR_SEND_HK_MID, 0xC000, 0x0001), 0x0000 } }, + /* Command ID #82 */ + { { SCH_FIX_HEADER(HMC5883_SEND_HK_MID, 0xC000, 0x0001), 0x0000 } }, + /* Command ID #83 */ + { { SCH_FIX_HEADER(SCH_UNUSED_MID, 0, 0), 0 } }, + /* Command ID #84 */ + { { SCH_FIX_HEADER(SCH_UNUSED_MID, 0, 0), 0 } }, + /* Command ID #85 */ + { { SCH_FIX_HEADER(NEOM8N_SEND_HK_MID, 0xC000, 0x0001), 0x0000 } }, + /* Command ID #86 */ + { { SCH_FIX_HEADER(NEOM8N_MEASURE_MID, 0xC000, 0x0001), 0x0000 } }, + /* Command ID #87 */ + { { SCH_FIX_HEADER(NEOM8N_PROC_CMDS_MID, 0xC000, 0x0001), 0x0000 } }, + /* Command ID #88 */ + { { SCH_FIX_HEADER(HMC5883_WAKEUP_MID, 0xC000, 0x0001), 0x0000 } }, + /* Command ID #89 */ + { { SCH_FIX_HEADER(SCH_UNUSED_MID, 0, 0), 0 } }, + /* Command ID #90 */ + { { SCH_FIX_HEADER(SENS_SEND_HK_MID, 0xC000, 0x0001), 0x0000 } }, + /* Command ID #91 */ + { { SCH_FIX_HEADER(SENS_WAKEUP_MID, 0xC000, 0x0001), 0x0000 } }, + /* Command ID #92 */ + { { SCH_FIX_HEADER(SCH_UNUSED_MID, 0, 0), 0 } }, + /* Command ID #93 */ + { { SCH_FIX_HEADER(LGC_WAKEUP_MID, 0xC000, 0x0001), 0x0000 } }, + /* Command ID #94 */ + { { SCH_FIX_HEADER(LGC_SEND_HK_MID, 0xC000, 0x0001), 0x0000 } }, + /* Command ID #95*/ + { { SCH_FIX_HEADER(SCH_UNUSED_MID, 0, 0), 0 } }, + /* Command ID #96 */ + { { SCH_FIX_HEADER(SCH_UNUSED_MID, 0, 0), 0 } }, + /* Command ID #97 */ + { { SCH_FIX_HEADER(SCH_UNUSED_MID, 0, 0), 0 } }, + /* Command ID #98 */ + { { SCH_FIX_HEADER(SCH_UNUSED_MID, 0, 0), 0 } }, + /* Command ID #99 */ + { { SCH_FIX_HEADER(SCH_UNUSED_MID, 0, 0), 0 } }, + /* Command ID #100 */ + { { SCH_FIX_HEADER(SCH_UNUSED_MID, 0, 0), 0 } }, + /* Command ID #101 */ + { { SCH_FIX_HEADER(SCH_UNUSED_MID, 0, 0), 0 } }, + /* Command ID #102 */ + { { SCH_FIX_HEADER(QAE_SEND_HK_MID, 0xC000, 0x0001), 0x0000 } }, + /* Command ID #103 */ + { { SCH_FIX_HEADER(QAE_WAKEUP_MID, 0xC000, 0x0001), 0x0000 } }, + /* Command ID #104 */ + { { SCH_FIX_HEADER(LD_SEND_HK_MID, 0xC000, 0x0001), 0x0000 } }, + /* Command ID #105 */ + { { SCH_FIX_HEADER(LD_WAKEUP_MID, 0xC000, 0x0001), 0x0000 } }, + /* Command ID #106 */ + { { SCH_FIX_HEADER(MPC_SEND_HK_MID, 0xC000, 0x0001), 0x0000 } }, + /* Command ID #107 */ + { { SCH_FIX_HEADER(MPC_WAKEUP_MID, 0xC000, 0x0001), 0x0000 } }, + /* Command ID #108 */ + { { SCH_FIX_HEADER(NAV_SEND_HK_MID, 0xC000, 0x0001), 0x0000 } }, + /* Command ID #109 */ + { { SCH_FIX_HEADER(NAV_WAKEUP_MID, 0xC000, 0x0001), 0x0000 } }, + /* Command ID #110 */ + { { SCH_FIX_HEADER(CFE_TIME_TONE_CMD_MID, 0xC000, 0x0001), 0x0000 } }, + /* Command ID #111 */ + { { SCH_FIX_HEADER(CFE_TIME_1HZ_CMD_MID, 0xC000, 0x0001), 0x0000 } }, + /* Command ID #112 */ + { { SCH_FIX_HEADER(RCIN_SEND_HK_MID, 0xC000, 0x0001), 0x0000 } }, + /* Command ID #113 */ + { { SCH_FIX_HEADER(RCIN_WAKEUP_MID, 0xC000, 0x0001), 0x0000 } }, + /* Command ID #114 */ + { { SCH_FIX_HEADER(VM_SEND_HK_MID, 0xC000, 0x0001), 0x0000 } }, + /* Command ID #115 */ + { { SCH_FIX_HEADER(VM_WAKEUP_MID, 0xC000, 0x0001), 0x0000 } }, + /* Command ID #116 */ + { { SCH_FIX_HEADER(SCH_UNUSED_MID, 0, 0), 0 } }, + /* Command ID #117 */ + { { SCH_FIX_HEADER(BAT_SEND_HK_MID, 0xC000, 0x0001), 0x0000 } }, + /* Command ID #118 */ + { { SCH_FIX_HEADER(BAT_WAKEUP_MID, 0xC000, 0x0001), 0x0000 } }, + /* Command ID #119 */ + { { SCH_FIX_HEADER(MAVLINK_WAKEUP_MID, 0xC000, 0x0001), 0x0000 } }, + /* Command ID #120 */ + { { SCH_FIX_HEADER(MAVLINK_SEND_HK_MID, 0xC000, 0x0001), 0x0000 } }, + /* Command ID #121 */ + { { SCH_FIX_HEADER(SCH_UNUSED_MID, 0, 0), 0 } }, + /* Command ID #122 */ + { { SCH_FIX_HEADER(GPS_READ_SENSOR_MID, 0xC000, 0x0001), 0x0000 } }, + /* Command ID #123 */ + { { SCH_FIX_HEADER(GPS_SEND_HK_MID, 0xC000, 0x0001), 0x0000 } }, + /* Command ID #124 */ + { { SCH_FIX_HEADER(SCH_UNUSED_MID, 0, 0), 0 } }, + /* Command ID #125 */ + { { SCH_FIX_HEADER(EA_WAKEUP_MID, 0xC000, 0x0001), 0x0000 } }, + /* Command ID #126 */ + { { SCH_FIX_HEADER(EA_PERFMON_MID, 0xC000, 0x0001), 0x0000 } }, + /* Command ID #127 */ + { { SCH_FIX_HEADER(EA_SEND_HK_MID, 0xC000, 0x0001), 0x0000 } } +}; + +/* +** Local Variables +*/ + +/* +** Function Prototypes +*/ + +/* +** Function Definitions +*/ + + + +/* Table file header */ +CFE_TBL_FILEDEF(SCH_DefaultMessageTable, SCH.MSG_DEFS, SCH message definitions table, sch_def_msgtbl.tbl ) + + + +#ifdef __cplusplus +} +#endif + +/*======================================================================================= +** End of file sch_def_msgtbl.c +**=====================================================================================*/ + diff --git a/config/obc/sitl/target/apps/sch/tables/sch_def_schtbl.c b/config/obc/sitl/target/apps/sch/tables/sch_def_schtbl.c new file mode 100644 index 000000000..2a9584d96 --- /dev/null +++ b/config/obc/sitl/target/apps/sch/tables/sch_def_schtbl.c @@ -0,0 +1,4424 @@ +#ifdef __cplusplus +extern "C" { +#endif + +/* +** Pragmas +*/ + +/* +** Include Files +*/ +#include "cfe.h" +#include "cfe_tbl_filedef.h" +#include "sch_platform_cfg.h" +#include "sch_msgdefs.h" +#include "sch_tbldefs.h" + +#include "sch_grpids.h" + + +/* +** Local Defines +*/ + +#define CFE_ES_SEND_HK_MIDX 1 +#define CFE_EVS_SEND_HK_MIDX 2 +#define CFE_SB_SEND_HK_MIDX 3 +#define CFE_TIME_SEND_HK_MIDX 4 +#define CFE_TBL_SEND_HK_MIDX 5 +#define CFE_TIME_FAKE_CMD_MIDX 6 + +#define LC_SAMPLE_AP_MIDX 9 + +#define SCH_SEND_HK_MIDX 15 +#define TO_SEND_HK_MIDX 16 +#define HK_SEND_HK_MIDX 17 + +#define TO_SEND_TLM_MIDX 19 +#define HK_SEND_COMBINED_PKT1_MIDX 20 +#define HK_SEND_COMBINED_PKT2_MIDX 21 +#define HK_SEND_COMBINED_PKT3_MIDX 22 +#define HK_SEND_COMBINED_PKT4_MIDX 23 +#define HK_SEND_COMBINED_PKT5_MIDX 24 +#define HK_SEND_COMBINED_PKT6_MIDX 25 +#define HK_SEND_COMBINED_PKT7_MIDX 26 +#define HK_SEND_COMBINED_PKT8_MIDX 27 +#define HK_SEND_COMBINED_PKT9_MIDX 28 +#define HK_SEND_COMBINED_PKT10_MIDX 29 +#define FM_SEND_HK_MIDX 30 +#define LC_SEND_HK_MIDX 31 +#define HS_WAKEUP_MIDX 32 +#define HS_SEND_HK_MIDX 33 +#define MD_SEND_HK_MIDX 34 +#define MD_WAKEUP_MIDX 35 +#define DS_SEND_HK_MIDX 37 +#define CS_SEND_HK_MIDX 38 +#define CS_BACKGROUND_CYCLE_MIDX 39 +#define SC_1HZ_WAKEUP_MIDX 40 +#define SC_SEND_HK_MIDX 41 +#define FLOW_WAKEUP_MIDX 42 +#define FLOW_SEND_HK_MIDX 43 + +#define VC_SEND_HK_MIDX 45 +#define VC_PROCESS_CMDS_MIDX 46 +#define RGBLED_WAKEUP_MIDX 47 +#define RGBLED_SEND_HK_MIDX 48 + +#define CI_READ_CMD_MIDX 50 +#define CI_1HZ_PROC_TIMEOUTS_MIDX 51 +#define CI_SEND_HK_MIDX 52 +#define PARAMS_WAKEUP_MIDX 53 +#define PARAMS_SEND_HK_MIDX 54 + +#define CF_SEND_HK_MIDX 57 +#define CF_WAKE_UP_REQ_CMD_MIDX 58 + +#define MAC_SEND_HK_MIDX 60 +#define MAC_RUN_CONTROLLER_MIDX 61 + +#define AMC_UPDATE_MOTORS_MIDX 65 +#define AMC_SEND_HK_MIDX 66 +#define MPU9250_SEND_HK_MIDX 67 +#define MPU9250_MEASURE_MIDX 68 + +#define MM_SEND_HK_MIDX 70 + +#define MPU6050_SEND_HK_MIDX 72 +#define MPU6050_MEASURE_MIDX 73 +#define PE_SEND_HK_MIDX 74 +#define PE_WAKEUP_MIDX 75 +#define MS5607_SEND_HK_MIDX 76 +#define MS5607_MEASURE_MIDX 77 +#define MS5611_SEND_HK_MIDX 78 +#define MS5611_MEASURE_MIDX 79 +#define ULR_MEASURE_MIDX 80 +#define ULR_SEND_HK_MIDX 81 +#define HMC5883_SEND_HK_MIDX 82 +#define AK8963_SEND_HK_MIDX 83 +#define AK8963_WAKEUP_MIDX 84 +#define NEOM8N_SEND_HK_MIDX 85 +#define NEOM8N_MEASURE_MIDX 86 +#define NEOM8N_PROC_CMDS_MIDX 87 +#define HMC5883_WAKEUP_MIDX 88 + +#define SENS_SEND_HK_MIDX 90 +#define SENS_WAKEUP_MIDX 91 + +#define LGC_WAKEUP_MIDX 93 +#define LGC_SEND_HK_MIDX 94 + +#define PRM_SEND_HK_MIDX 96 +#define PRM_WAKEUP_MIDX 97 + +#define QAE_SEND_HK_MIDX 102 +#define QAE_WAKEUP_MIDX 103 +#define LD_SEND_HK_MIDX 104 +#define LD_WAKEUP_MIDX 105 +#define MPC_SEND_HK_MIDX 106 +#define MPC_WAKEUP_MIDX 107 +#define NAV_SEND_HK_MIDX 108 +#define NAV_WAKEUP_MIDX 109 +#define CFE_TIME_TONE_CMD_MIDX 110 +#define CFE_TIME_1HZ_CMD_MIDX 111 +#define RCIN_SEND_HK_MIDX 112 +#define RCIN_WAKEUP_MIDX 113 +#define VM_SEND_HK_MIDX 114 +#define VM_WAKEUP_MIDX 115 + +#define BAT_SEND_HK_MIDX 117 +#define BAT_WAKEUP_MIDX 118 +#define MAVLINK_WAKEUP_MIDX 119 +#define MAVLINK_SEND_HK_MIDX 120 + +#define GPS_READ_SENSOR_MIDX 122 +#define GPS_SEND_HK_MIDX 123 + +#define EA_WAKEUP_MIDX 125 +#define EA_PERFMON_MIDX 126 +#define EA_SEND_HK_MIDX 127 + + +/* Default schedule table */ +SCH_ScheduleEntry_t SCH_DefaultScheduleTable[SCH_TABLE_ENTRIES] = +{ + + /* slot #0*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MS5611_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_SEND_HK_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #1*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, RCIN_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #2*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, FLOW_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #3*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #4*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #5*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MS5611_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_SEND_HK_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, GPS_READ_SENSOR_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #6*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, RCIN_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, TO_SEND_TLM_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #7*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VC_SEND_HK_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #8*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #9*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #10*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MS5611_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, BAT_SEND_HK_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #11*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, RCIN_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #12*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VC_PROCESS_CMDS_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #13*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #14*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #15*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MS5611_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, BAT_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #16*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, RCIN_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #17*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, NAV_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + + /* slot #18*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #19*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #20*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MS5611_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, CFE_ES_SEND_HK_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #21*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, RCIN_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #22*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #23*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #24*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #25*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MS5611_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, CFE_EVS_SEND_HK_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #26*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, RCIN_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #27*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, FLOW_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #28*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #29*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #30*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MS5611_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, CFE_SB_SEND_HK_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #31*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, RCIN_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, TO_SEND_TLM_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #32*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #33*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #34*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #35*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MS5611_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, CFE_TIME_SEND_HK_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #36*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, RCIN_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #37*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAVLINK_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #38*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAVLINK_SEND_HK_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #39*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #40*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MS5611_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, BAT_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, CFE_TIME_SEND_HK_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #41*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, RCIN_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #42*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, NAV_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + + + /* slot #43*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #44*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #45*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MS5611_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, CFE_TBL_SEND_HK_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #46*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, RCIN_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #47*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #48*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #49*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #50*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MS5611_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #51*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, RCIN_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #52*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, FLOW_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #53*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, FLOW_SEND_HK_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #54*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #55*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MS5611_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, GPS_READ_SENSOR_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #56*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, RCIN_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, TO_SEND_TLM_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #57*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #58*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #59*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #60*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MS5611_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, CF_SEND_HK_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #61*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, RCIN_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #62*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #63*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #64*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_SEND_HK_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #65*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MS5611_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, BAT_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, CF_WAKE_UP_REQ_CMD_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #66*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, RCIN_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #67*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, NAV_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + + /* slot #68*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #69*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #70*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MS5611_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, CI_SEND_HK_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #71*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, RCIN_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #72*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #73*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #74*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, CI_1HZ_PROC_TIMEOUTS_MIDX,SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #75*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MS5611_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, CS_SEND_HK_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #76*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, RCIN_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #77*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, FLOW_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #78*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #79*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #80*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MS5611_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, DS_SEND_HK_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #81*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, RCIN_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, TO_SEND_TLM_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #82*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #83*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #84*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #85*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MS5611_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, EA_SEND_HK_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #86*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, RCIN_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #87*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #88*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #89*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #90*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MS5611_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, BAT_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, EA_PERFMON_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #91*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, RCIN_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #92*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, NAV_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + + /* slot #93*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #94*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #95*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MS5611_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #96*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, RCIN_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #97*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #98*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #99*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #100*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MS5611_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, EA_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #101*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, RCIN_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #102*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, FLOW_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #103*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #104*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #105*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MS5611_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, GPS_READ_SENSOR_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #106*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, RCIN_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, TO_SEND_TLM_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #107*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #108*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #109*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #110*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MS5611_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, GPS_SEND_HK_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #111*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, RCIN_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #112*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #113*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #114*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #115*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MS5611_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, BAT_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HK_SEND_HK_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #116*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, RCIN_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #117*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, NAV_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + + /* slot #118*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #119*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #120*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MS5611_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_SEND_HK_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #121*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, RCIN_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #122*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #123*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_SEND_HK_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #124*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #125*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MS5611_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HS_SEND_HK_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #126*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, RCIN_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #127*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, FLOW_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #128*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #129*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #130*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MS5611_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #131*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, RCIN_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, TO_SEND_TLM_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #132*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #133*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #134*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #135*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MS5611_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, FM_SEND_HK_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #136*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, RCIN_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #137*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #138*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #139*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #140*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MS5611_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, BAT_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LC_SEND_HK_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #141*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, RCIN_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #142*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #143*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, NAV_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + + /* slot #144*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #145*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MS5611_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_SEND_HK_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #146*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, RCIN_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #147*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #148*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #149*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #150*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MS5611_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MD_SEND_HK_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #151*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, RCIN_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #152*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, FLOW_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #153*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #154*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #155*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MS5611_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, GPS_READ_SENSOR_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #156*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, RCIN_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, TO_SEND_TLM_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #157*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #158*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #159*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #160*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MS5611_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MM_SEND_HK_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #161*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, RCIN_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #162*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #163*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #164*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #165*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MS5611_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, BAT_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_SEND_HK_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #166*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, RCIN_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #167*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, NAV_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + + /* slot #168*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #169*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #170*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MS5611_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_SEND_HK_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #171*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, RCIN_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #172*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #173*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #174*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #175*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MS5611_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_SEND_HK_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #176*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, RCIN_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #177*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, FLOW_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #178*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #179*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LGC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #180*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MS5611_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MS5611_SEND_HK_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #181*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, RCIN_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, TO_SEND_TLM_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #182*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #183*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #184*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #185*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MS5611_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, NAV_SEND_HK_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + + /* slot #186*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, RCIN_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #187*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #188*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #189*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LC_SAMPLE_AP_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #190*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MS5611_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, BAT_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_SEND_HK_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #191*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, RCIN_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #192*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, NAV_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + + /* slot #193*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #194*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #195*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MS5611_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #196*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, RCIN_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #197*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #198*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #199*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #200*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MS5611_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #201*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, RCIN_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #202*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, FLOW_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #203*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #204*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #205*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MS5611_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, GPS_READ_SENSOR_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #206*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, RCIN_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, TO_SEND_TLM_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #207*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #208*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #209*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #210*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MS5611_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, RCIN_SEND_HK_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #211*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, RCIN_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #212*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #213*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #214*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #215*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MS5611_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, BAT_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, RGBLED_SEND_HK_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #216*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, RCIN_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #217*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, NAV_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + + /* slot #218*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #219*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #220*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MS5611_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, RGBLED_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #221*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, RCIN_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #222*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #223*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #224*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #225*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MS5611_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SC_1HZ_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #226*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, RCIN_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #227*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LGC_SEND_HK_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, FLOW_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #228*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #229*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #230*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MS5611_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SC_SEND_HK_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #231*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, RCIN_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, TO_SEND_TLM_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #232*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #233*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #234*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #235*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MS5611_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SCH_SEND_HK_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #236*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, RCIN_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #237*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #238*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #239*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #240*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MS5611_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, BAT_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, TO_SEND_HK_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #241*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, RCIN_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #242*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, NAV_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + + /* slot #243*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #244*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #245*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MS5611_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_SEND_HK_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #246*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, RCIN_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #247*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #248*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, + + /* slot #249*/ + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, QAE_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, AMC_UPDATE_MOTORS_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LD_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, HMC5883_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, + { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE } +}; + +/* +** Local Variables +*/ + +/* +** Function Prototypes +*/ + +/* +** Function Definitions +*/ + + + +/* Table file header */ +CFE_TBL_FILEDEF(SCH_DefaultScheduleTable, SCH.SCHED_DEF, SCH schedule table, sch_def_schtbl.tbl ) + + + +#ifdef __cplusplus +} +#endif + +/*======================================================================================= +** End of file sch_def_schtbl.c +**=====================================================================================*/ + diff --git a/config/obc/sitl/target/apps/sch/unit_test/sch_custom_test.c b/config/obc/sitl/target/apps/sch/unit_test/sch_custom_test.c new file mode 100644 index 000000000..3d6b0eef3 --- /dev/null +++ b/config/obc/sitl/target/apps/sch/unit_test/sch_custom_test.c @@ -0,0 +1,415 @@ + /************************************************************************* + ** File: + ** $Id: sch_custom_test.c 1.3 2017/06/21 15:29:03EDT mdeschu Exp $ + ** + ** Purpose: + ** This file contains unit test cases for the functions contained in the file sch_custom.c + ** + ** References: + ** Flight Software Branch C Coding Standard Version 1.2 + ** CFS Development Standards Document + ** Notes: + ** + *************************************************************************/ + +/* + * Includes + */ + +#include "sch_custom_test.h" +#include "sch_custom.h" +#include "sch_app.h" +#include "sch_msg.h" +#include "sch_msgdefs.h" +#include "sch_events.h" +#include "sch_version.h" +#include "sch_test_utils.h" +#include +#include +#include + +/* + * Function Definitions + */ +void SCH_CustomEarlyInit_Test(void) +{ + int32 Result; + + /* Execute the function being tested */ + Result = SCH_CustomEarlyInit(); + + /* Verify results */ + UtAssert_True (Result == CFE_SUCCESS, "Result == CFE_SUCCESS"); + + UtAssert_True (Ut_CFE_EVS_GetEventQueueDepth() == 0, "Ut_CFE_EVS_GetEventQueueDepth() == 0"); + +} /* end SCH_CustomEarlyInit_Test */ + +void SCH_CustomLateInit_Test_Nominal(void) +{ + int32 Result; + + /* Execute the function being tested */ + Result = SCH_CustomLateInit(); + + /* Verify results */ + UtAssert_True (Result == CFE_SUCCESS, "Result == CFE_SUCCESS"); + + UtAssert_True (Ut_CFE_EVS_GetEventQueueDepth() == 0, "Ut_CFE_EVS_GetEventQueueDepth() == 0"); + +} /* end SCH_CustomLateInit_Test_Nominal */ + +void SCH_CustomLateInit_Test_RegisterSynchCallbackError(void) +{ + int32 Result; + + /* Set to make function under test return -1 */ + Ut_CFE_TIME_SetReturnCode(UT_CFE_TIME_REGISTERSYNCHCALLBACK_INDEX, -1, 1); + + /* Execute the function being tested */ + Result = SCH_CustomLateInit(); + + /* Verify results */ + UtAssert_True (Result == -1, "Result == -1"); + + UtAssert_True (Ut_CFE_EVS_GetEventQueueDepth() == 0, "Ut_CFE_EVS_GetEventQueueDepth() == 0"); + +} /* end SCH_CustomLateInit_Test_RegisterSynchCallbackError */ + +void SCH_CustomLateInit_Test_TimerSetError(void) +{ + int32 Result; + + /* Set to make function under test return -1 */ +#ifndef CFE_PSP_MAX_TIMERS + Ut_OSTIMER_SetReturnCode(UT_OSTIMER_SET_INDEX, -1, 1); +#else + Ut_CFE_PSP_SetReturnCode(UT_CFE_PSP_TIMERSET_INDEX, -1, 1); +#endif + + /* Execute the function being tested */ + Result = SCH_CustomLateInit(); + + /* Verify results */ + UtAssert_True (Result == -1, "Result == -1"); + + UtAssert_True (Ut_CFE_EVS_GetEventQueueDepth() == 0, "Ut_CFE_EVS_GetEventQueueDepth() == 0"); + +} /* end SCH_CustomLateInit_Test_TimerSetError */ + +void SCH_CustomGetCurrentSlotNumber_Test_LowCurrentSlot(void) +{ + int32 Result = 0; + + SCH_AppData.SyncToMET = 99; + SCH_AppData.LastSyncMETSlot = 10; + + /* Execute the function being tested */ + //Result = SCH_CustomGetCurrentSlotNumber(); + + /* Verify results */ + UtAssert_True (Result == SCH_TOTAL_SLOTS - 10, "Result == SCH_TOTAL_SLOTS - 10"); + + UtAssert_True (Ut_CFE_EVS_GetEventQueueDepth() == 0, "Ut_CFE_EVS_GetEventQueueDepth() == 0"); + +} /* end SCH_CustomGetCurrentSlotNumber_Test_LowCurrentSlot */ + +void SCH_CustomGetCurrentSlotNumber_Test_HighCurrentSlot(void) +{ + int32 Result = 0; + + SCH_AppData.SyncToMET = 99; + SCH_AppData.LastSyncMETSlot = 0; + + /* Set to make SCH_GetMETSlotNumber return 1 */ + Ut_CFE_TIME_SetReturnCode(UT_CFE_TIME_SUB2MICROSECS_INDEX, SCH_NORMAL_SLOT_PERIOD, 1); + + /* Execute the function being tested */ + //Result = SCH_CustomGetCurrentSlotNumber(); + + /* Verify results */ + UtAssert_True (Result == 1, "Result == 1"); + + UtAssert_True (Ut_CFE_EVS_GetEventQueueDepth() == 0, "Ut_CFE_EVS_GetEventQueueDepth() == 0"); + +} /* end SCH_CustomGetCurrentSlotNumber_Test_HighCurrentSlot */ + +void SCH_CustomGetCurrentSlotNumber_Test_NotSynchronized(void) +{ + int32 Result = 0; + + SCH_AppData.SyncToMET = SCH_NOT_SYNCHRONIZED; + SCH_AppData.MinorFramesSinceTone = 10; + + /* Execute the function being tested */ + //Result = SCH_CustomGetCurrentSlotNumber(); + + /* Verify results */ + UtAssert_True (Result == 10, "Result == 10"); + + UtAssert_True (Ut_CFE_EVS_GetEventQueueDepth() == 0, "Ut_CFE_EVS_GetEventQueueDepth() == 0"); + +} /* end SCH_CustomGetCurrentSlotNumber_Test_NotSynchronized */ + +void SCH_CustomCleanup_Test(void) +{ + /* Execute the function being tested */ + SCH_CustomCleanup(); + + /* Verify results */ + UtAssert_True (Ut_CFE_EVS_GetEventQueueDepth() == 0, "Ut_CFE_EVS_GetEventQueueDepth() == 0"); + +} /* end SCH_CustomCleanup_Test */ + +void SCH_GetMETSlotNumber_Test_Rollover(void) +{ + uint32 Result = 1; + + /* Set to make function under test return 0 by rollover */ + Ut_CFE_TIME_SetReturnCode(UT_CFE_TIME_SUB2MICROSECS_INDEX, SCH_NORMAL_SLOT_PERIOD * SCH_TOTAL_SLOTS, 1); + + /* Execute the function being tested */ + //Result = SCH_GetMETSlotNumber(); + + /* Verify results */ + UtAssert_True (Result == 0, "Result == 0"); + + UtAssert_True (Ut_CFE_EVS_GetEventQueueDepth() == 0, "Ut_CFE_EVS_GetEventQueueDepth() == 0"); + +} /* end SCH_GetMETSlotNumber_Test_Rollover */ + +void SCH_GetMETSlotNumber_Test_NoRollover(void) +{ + uint32 Result = 0; + + /* Set to make function under test return 1 */ + Ut_CFE_TIME_SetReturnCode(UT_CFE_TIME_SUB2MICROSECS_INDEX, SCH_NORMAL_SLOT_PERIOD, 1); + + /* Execute the function being tested */ + //Result = SCH_GetMETSlotNumber(); + + /* Verify results */ + UtAssert_True (Result == 1, "Result == 1"); + + UtAssert_True (Ut_CFE_EVS_GetEventQueueDepth() == 0, "Ut_CFE_EVS_GetEventQueueDepth() == 0"); + +} /* end SCH_GetMETSlotNumber_Test_NoRollover */ + +void SCH_MajorFrameCallback_Test_NoisyNotSynchronized(void) +{ + SCH_AppData.SyncToMET = SCH_NOT_SYNCHRONIZED; + SCH_AppData.MinorFramesSinceTone = 1; + SCH_AppData.IgnoreMajorFrame = FALSE; + SCH_AppData.ConsecutiveNoisyFrameCounter = SCH_MAX_NOISY_MAJORF - 1; + + /* Set to make SCH_GetMETSlotNumber return 1 */ + Ut_CFE_TIME_SetReturnCode(UT_CFE_TIME_SUB2MICROSECS_INDEX, SCH_NORMAL_SLOT_PERIOD, 1); + + /* Execute the function being tested */ + //SCH_MajorFrameCallback(); + + /* Verify results */ + UtAssert_True (SCH_AppData.UnexpectedMajorFrame == TRUE, "SCH_AppData.UnexpectedMajorFrame == TRUE"); + UtAssert_True (SCH_AppData.UnexpectedMajorFrameCount == 1, "SCH_AppData.UnexpectedMajorFrameCount == 1"); + UtAssert_True (SCH_AppData.ConsecutiveNoisyFrameCounter == SCH_MAX_NOISY_MAJORF, "SCH_AppData.ConsecutiveNoisyFrameCounter == SCH_MAX_NOISY_MAJORF"); + UtAssert_True (SCH_AppData.IgnoreMajorFrame == TRUE, "SCH_AppData.IgnoreMajorFrame == TRUE"); + UtAssert_True (SCH_AppData.LastSyncMETSlot == 1, "SCH_AppData.LastSyncMETSlot == 1"); + + UtAssert_True (Ut_CFE_EVS_GetEventQueueDepth() == 0, "Ut_CFE_EVS_GetEventQueueDepth() == 0"); + +} /* end SCH_MajorFrameCallback_Test_NoisyNotSynchronized */ + +void SCH_MajorFrameCallback_Test_NoisySynchronized(void) +{ + SCH_AppData.SyncToMET = SCH_MINOR_SYNCHRONIZED; + SCH_AppData.NextSlotNumber = 1; + SCH_AppData.IgnoreMajorFrame = FALSE; + SCH_AppData.ConsecutiveNoisyFrameCounter = SCH_MAX_NOISY_MAJORF - 1; + + /* Set to make SCH_GetMETSlotNumber return 1 */ + Ut_CFE_TIME_SetReturnCode(UT_CFE_TIME_SUB2MICROSECS_INDEX, SCH_NORMAL_SLOT_PERIOD, 1); + + /* Execute the function being tested */ + //SCH_MajorFrameCallback(); + + /* Verify results */ + UtAssert_True (SCH_AppData.UnexpectedMajorFrame == TRUE, "SCH_AppData.UnexpectedMajorFrame == TRUE"); + UtAssert_True (SCH_AppData.UnexpectedMajorFrameCount == 1, "SCH_AppData.UnexpectedMajorFrameCount == 1"); + UtAssert_True (SCH_AppData.ConsecutiveNoisyFrameCounter == SCH_MAX_NOISY_MAJORF, "SCH_AppData.ConsecutiveNoisyFrameCounter == SCH_MAX_NOISY_MAJORF"); + UtAssert_True (SCH_AppData.IgnoreMajorFrame == TRUE, "SCH_AppData.IgnoreMajorFrame == TRUE"); + UtAssert_True (SCH_AppData.LastSyncMETSlot == 1, "SCH_AppData.LastSyncMETSlot == 1"); + + UtAssert_True (Ut_CFE_EVS_GetEventQueueDepth() == 0, "Ut_CFE_EVS_GetEventQueueDepth() == 0"); + +} /* end SCH_MajorFrameCallback_Test_NoisySynchronized */ + +void SCH_MajorFrameCallback_Test_FrameOccurredWhenExpected(void) +{ + SCH_AppData.SyncToMET = 99; + SCH_AppData.IgnoreMajorFrame = FALSE; + SCH_AppData.ConsecutiveNoisyFrameCounter = 1; + + /* Set to make SCH_GetMETSlotNumber return 1 */ + Ut_CFE_TIME_SetReturnCode(UT_CFE_TIME_SUB2MICROSECS_INDEX, SCH_NORMAL_SLOT_PERIOD, 1); + + /* Execute the function being tested */ + //SCH_MajorFrameCallback(); + + /* Verify results */ + UtAssert_True (SCH_AppData.UnexpectedMajorFrame == FALSE, "SCH_AppData.UnexpectedMajorFrame == FALSE"); + UtAssert_True (SCH_AppData.ConsecutiveNoisyFrameCounter == 0, "SCH_AppData.ConsecutiveNoisyFrameCounter == 0"); + UtAssert_True (SCH_AppData.ValidMajorFrameCount == 1, "SCH_AppData.ValidMajorFrameCount == 1"); + UtAssert_True (SCH_AppData.MinorFramesSinceTone == 0, "SCH_AppData.MinorFramesSinceTone == 0"); + UtAssert_True (SCH_AppData.MajorFrameSource == SCH_MAJOR_FS_CFE_TIME, "MajorFrameSource == SCH_MAJOR_FS_CFE_TIME"); + UtAssert_True (SCH_AppData.SyncToMET == (SCH_AppData.SyncToMET & SCH_MINOR_SYNCHRONIZED), "SCH_AppData.SyncToMET == (SCH_AppData.SyncToMET & SCH_MINOR_SYNCHRONIZED)"); + UtAssert_True (SCH_AppData.LastSyncMETSlot == 1, "SCH_AppData.LastSyncMETSlot == 1"); + + UtAssert_True (Ut_CFE_EVS_GetEventQueueDepth() == 0, "Ut_CFE_EVS_GetEventQueueDepth() == 0"); + +} /* end SCH_MajorFrameCallback_Test_FrameOccurredWhenExpected */ + +#define CFE_TIME_FLAG_FLYING 1 +void SCH_MajorFrameCallback_Test_FlywheelMode(void) +{ + /* Set to make fail condition "(StateFlags & CFE_TIME_FLAG_FLYING) == 0" */ + Ut_CFE_TIME_SetReturnCode(UT_CFE_TIME_GETCLOCKINFO_INDEX, CFE_TIME_FLAG_FLYING, 1); + + /* Set to make SCH_GetMETSlotNumber return 1 */ + Ut_CFE_TIME_SetReturnCode(UT_CFE_TIME_SUB2MICROSECS_INDEX, SCH_NORMAL_SLOT_PERIOD, 1); + + /* Execute the function being tested */ + //SCH_MajorFrameCallback(); + + /* Verify results */ + UtAssert_True (SCH_AppData.LastSyncMETSlot == 1, "SCH_AppData.LastSyncMETSlot == 1"); + + UtAssert_True (Ut_CFE_EVS_GetEventQueueDepth() == 0, "Ut_CFE_EVS_GetEventQueueDepth() == 0"); + +} /* end SCH_MajorFrameCallback_Test_FlywheelMode */ + +void SCH_MinorFrameCallback_Test_SyncAttemptsLeft(void) +{ + uint32 TimerId = 1; + + SCH_AppData.MajorFrameSource = SCH_MAJOR_FS_NONE; + + /* Set to make SCH_GetMETSlotNumber return 1 */ + Ut_CFE_TIME_SetReturnCode(UT_CFE_TIME_SUB2MICROSECS_INDEX, SCH_NORMAL_SLOT_PERIOD, 1); + + /* Execute the function being tested */ + //SCH_MinorFrameCallback(TimerId); + + /* Verify results */ + UtAssert_True(SCH_AppData.MajorFrameSource == SCH_MAJOR_FS_MINOR_FRAME_TIMER, "SCH_AppData.MajorFrameSource == SCH_MAJOR_FS_MINOR_FRAME_TIMER"); + UtAssert_True(SCH_AppData.SyncToMET == SCH_PENDING_MAJOR_SYNCH, "SCH_AppData.SyncToMET == SCH_PENDING_MAJOR_SYNCH"); + UtAssert_True(SCH_AppData.SyncAttemptsLeft == SCH_MAX_SYNC_ATTEMPTS - 1, "SCH_AppData.SyncAttemptsLeft == SCH_MAX_SYNC_ATTEMPTS - 1"); + UtAssert_True(SCH_AppData.LastSyncMETSlot == 0, "SCH_AppData.LastSyncMETSlot == 0"); + + UtAssert_True (Ut_CFE_EVS_GetEventQueueDepth() == 0, "Ut_CFE_EVS_GetEventQueueDepth() == 0"); + +} /* end SCH_MinorFrameCallback_Test_SyncAttemptsLeft */ + +void SCH_MinorFrameCallback_Test_SynchronizationAchievedNominal(void) +{ + uint32 TimerId = 1; + + SCH_AppData.MajorFrameSource = SCH_MAJOR_FS_NONE; + + /* Execute the function being tested */ + //SCH_MinorFrameCallback(TimerId); + + /* Verify results */ + UtAssert_True(SCH_AppData.MajorFrameSource == SCH_MAJOR_FS_MINOR_FRAME_TIMER, "SCH_AppData.MajorFrameSource == SCH_MAJOR_FS_MINOR_FRAME_TIMER"); + UtAssert_True(SCH_AppData.SyncAttemptsLeft == SCH_MAX_SYNC_ATTEMPTS - 1, "SCH_AppData.SyncAttemptsLeft == SCH_MAX_SYNC_ATTEMPTS - 1"); + UtAssert_True(SCH_AppData.SyncToMET == SCH_MAJOR_SYNCHRONIZED, "SCH_AppData.SyncToMET == SCH_MAJOR_SYNCHRONIZED"); + UtAssert_True(SCH_AppData.MinorFramesSinceTone == 0, "SCH_AppData.MinorFramesSinceTone == 0"); + UtAssert_True(SCH_AppData.LastSyncMETSlot == 0, "SCH_AppData.LastSyncMETSlot == 0"); + + UtAssert_True (Ut_CFE_EVS_GetEventQueueDepth() == 0, "Ut_CFE_EVS_GetEventQueueDepth() == 0"); + +} /* end SCH_MinorFrameCallback_Test_SynchronizationAchievedNominal */ + +void SCH_MinorFrameCallback_Test_AlreadySynchronizedNominal(void) +{ + uint32 TimerId = 1; + + SCH_AppData.MajorFrameSource = 99; + + /* Execute the function being tested */ + //SCH_MinorFrameCallback(TimerId); + + /* Verify results */ + UtAssert_True(SCH_AppData.MinorFramesSinceTone == 1, "SCH_AppData.MinorFramesSinceTone == 1"); + + UtAssert_True (Ut_CFE_EVS_GetEventQueueDepth() == 0, "Ut_CFE_EVS_GetEventQueueDepth() == 0"); + +} /* end SCH_MinorFrameCallback_Test_AlreadySynchronizedNominal */ + +void SCH_MinorFrameCallback_Test_AlreadySynchronizedRollover(void) +{ + uint32 TimerId = 1; + + SCH_AppData.MajorFrameSource = 99; + SCH_AppData.MinorFramesSinceTone = SCH_TOTAL_SLOTS; + + /* Execute the function being tested */ + //SCH_MinorFrameCallback(TimerId); + + /* Verify results */ + UtAssert_True(SCH_AppData.MinorFramesSinceTone == 0, "SCH_AppData.MinorFramesSinceTone == 0"); + UtAssert_True(SCH_AppData.MissedMajorFrameCount == 1, "SCH_AppData.MissedMajorFrameCount == 1"); + + UtAssert_True (Ut_CFE_EVS_GetEventQueueDepth() == 0, "Ut_CFE_EVS_GetEventQueueDepth() == 0"); + +} /* end SCH_MinorFrameCallback_Test_AlreadySynchronizedRollover */ + +void SCH_MinorFrameCallback_Test_AlreadySynchronizedStartTimer(void) +{ + uint32 TimerId = 1; + + SCH_AppData.MajorFrameSource = 99; + SCH_AppData.MinorFramesSinceTone = SCH_TIME_SYNC_SLOT - 1; + + /* Execute the function being tested */ + //SCH_MinorFrameCallback(TimerId); + + /* Verify results */ + UtAssert_True(SCH_AppData.MinorFramesSinceTone == SCH_TIME_SYNC_SLOT, "SCH_AppData.MinorFramesSinceTone == SCH_TIME_SYNC_SLOT"); + + UtAssert_True (Ut_CFE_EVS_GetEventQueueDepth() == 0, "Ut_CFE_EVS_GetEventQueueDepth() == 0"); + +} /* end SCH_MinorFrameCallback_Test_AlreadySynchronizedStartTimer */ + +void SCH_Custom_Test_AddTestCases(void) +{ + UtTest_Add(SCH_CustomEarlyInit_Test, SCH_Test_Setup, SCH_Test_TearDown, "SCH_CustomEarlyInit_Test"); + + UtTest_Add(SCH_CustomLateInit_Test_Nominal, SCH_Test_Setup, SCH_Test_TearDown, "SCH_CustomLateInit_Test_Nominal"); + UtTest_Add(SCH_CustomLateInit_Test_RegisterSynchCallbackError, SCH_Test_Setup, SCH_Test_TearDown, "SCH_CustomLateInit_Test_RegisterSynchCallbackError"); + UtTest_Add(SCH_CustomLateInit_Test_TimerSetError, SCH_Test_Setup, SCH_Test_TearDown, "SCH_CustomLateInit_Test_TimerSetError"); + + UtTest_Add(SCH_CustomGetCurrentSlotNumber_Test_LowCurrentSlot, SCH_Test_Setup, SCH_Test_TearDown, "SCH_CustomGetCurrentSlotNumber_Test_LowCurrentSlot"); + UtTest_Add(SCH_CustomGetCurrentSlotNumber_Test_HighCurrentSlot, SCH_Test_Setup, SCH_Test_TearDown, "SCH_CustomGetCurrentSlotNumber_Test_HighCurrentSlot"); + UtTest_Add(SCH_CustomGetCurrentSlotNumber_Test_NotSynchronized, SCH_Test_Setup, SCH_Test_TearDown, "SCH_CustomGetCurrentSlotNumber_Test_NotSynchronized"); + + UtTest_Add(SCH_CustomCleanup_Test, SCH_Test_Setup, SCH_Test_TearDown, "SCH_CustomCleanup_Test"); + + UtTest_Add(SCH_GetMETSlotNumber_Test_Rollover, SCH_Test_Setup, SCH_Test_TearDown, "SCH_GetMETSlotNumber_Test_Rollover"); + UtTest_Add(SCH_GetMETSlotNumber_Test_NoRollover, SCH_Test_Setup, SCH_Test_TearDown, "SCH_GetMETSlotNumber_Test_NoRollover"); + + UtTest_Add(SCH_MajorFrameCallback_Test_NoisyNotSynchronized, SCH_Test_Setup, SCH_Test_TearDown, "SCH_MajorFrameCallback_Test_NoisyNotSynchronized"); + UtTest_Add(SCH_MajorFrameCallback_Test_NoisySynchronized, SCH_Test_Setup, SCH_Test_TearDown, "SCH_MajorFrameCallback_Test_NoisySynchronized"); + UtTest_Add(SCH_MajorFrameCallback_Test_FrameOccurredWhenExpected, SCH_Test_Setup, SCH_Test_TearDown, "SCH_MajorFrameCallback_Test_FrameOccurredWhenExpected"); + UtTest_Add(SCH_MajorFrameCallback_Test_FlywheelMode, SCH_Test_Setup, SCH_Test_TearDown, "SCH_MajorFrameCallback_Test_FlywheelMode"); + + UtTest_Add(SCH_MinorFrameCallback_Test_SyncAttemptsLeft, SCH_Test_Setup, SCH_Test_TearDown, "SCH_MinorFrameCallback_Test_SyncAttemptsLeft"); + UtTest_Add(SCH_MinorFrameCallback_Test_SynchronizationAchievedNominal, SCH_Test_Setup, SCH_Test_TearDown, "SCH_MinorFrameCallback_Test_SynchronizationAchievedNominal"); + UtTest_Add(SCH_MinorFrameCallback_Test_AlreadySynchronizedNominal, SCH_Test_Setup, SCH_Test_TearDown, "SCH_MinorFrameCallback_Test_AlreadySynchronizedNominal"); + UtTest_Add(SCH_MinorFrameCallback_Test_AlreadySynchronizedRollover, SCH_Test_Setup, SCH_Test_TearDown, "SCH_MinorFrameCallback_Test_AlreadySynchronizedRollover"); + UtTest_Add(SCH_MinorFrameCallback_Test_AlreadySynchronizedStartTimer, SCH_Test_Setup, SCH_Test_TearDown, "SCH_MinorFrameCallback_Test_AlreadySynchronizedStartTimer"); + +} /* end SCH_Custom_Test_AddTestCases */ + +/************************/ +/* End of File Comment */ +/************************/ diff --git a/config/obc/sitl/target/apps/sch/unit_test/sch_custom_test.h b/config/obc/sitl/target/apps/sch/unit_test/sch_custom_test.h new file mode 100644 index 000000000..f59634e83 --- /dev/null +++ b/config/obc/sitl/target/apps/sch/unit_test/sch_custom_test.h @@ -0,0 +1,31 @@ + /************************************************************************* + ** File: + ** $Id: sch_custom_test.h 1.2 2017/06/21 15:29:02EDT mdeschu Exp $ + ** + ** Purpose: + ** This file contains the function prototypes for the unit test cases for sch_custom.c + ** + ** References: + ** Flight Software Branch C Coding Standard Version 1.2 + ** CFS Development Standards Document + ** Notes: + ** + *************************************************************************/ + +/* + * Includes + */ + +#include "utassert.h" +#include "uttest.h" + +/* + * Function Prototypes + */ + +void SCH_Custom_Test_AddTestCases(void); + + +/************************/ +/* End of File Comment */ +/************************/ diff --git a/config/obc/sitl/target/apps/sch/unit_test/sch_test_utils.c b/config/obc/sitl/target/apps/sch/unit_test/sch_test_utils.c new file mode 100644 index 000000000..dfa7dd3e8 --- /dev/null +++ b/config/obc/sitl/target/apps/sch/unit_test/sch_test_utils.c @@ -0,0 +1,58 @@ + /************************************************************************* + ** File: + ** $Id: sch_test_utils.c 1.2 2017/06/21 15:28:59EDT mdeschu Exp $ + ** + ** Purpose: + ** This file contains unit test utilities for the sch application. + ** + ** References: + ** Flight Software Branch C Coding Standard Version 1.2 + ** CFS Development Standards Document + ** Notes: + ** + *************************************************************************/ + +#include "sch_test_utils.h" +#include "sch_tbldefs.h" + +SCH_MessageEntry_t MessageTable[SCH_MAX_MESSAGES]; +SCH_ScheduleEntry_t ScheduleTable[SCH_TABLE_ENTRIES]; + +/* + * Function Definitions + */ + +void SCH_Test_Setup(void) +{ + /* initialize test environment to default state for every test */ + + CFE_PSP_MemSet(&SCH_AppData, 0, sizeof(SCH_AppData_t)); + + SCH_AppData.MessageTable = &MessageTable[0]; + SCH_AppData.ScheduleTable = &ScheduleTable[0]; + + CFE_PSP_MemSet(SCH_AppData.MessageTable, 0, sizeof(SCH_MessageEntry_t)*SCH_MAX_MESSAGES); + CFE_PSP_MemSet(SCH_AppData.ScheduleTable, 0, sizeof(SCH_ScheduleEntry_t)*SCH_TABLE_ENTRIES); + + Ut_CFE_EVS_Reset(); + Ut_CFE_FS_Reset(); + Ut_CFE_TIME_Reset(); + Ut_CFE_TBL_Reset(); + Ut_CFE_SB_Reset(); + Ut_CFE_ES_Reset(); + Ut_OSAPI_Reset(); + Ut_OSFILEAPI_Reset(); + Ut_OSTIMER_Reset(); +} /* end SCH_Test_Setup */ + +void SCH_Test_TearDown(void) +{ + /* cleanup test environment */ +} /* end SCH_Test_TearDown */ + +Ut_CFE_EVS_HookTable_t Ut_CFE_EVS_HookTable; +Ut_CFE_EVS_ReturnCodeTable_t Ut_CFE_EVS_ReturnCodeTable[UT_CFE_EVS_MAX_INDEX]; + +/************************/ +/* End of File Comment */ +/************************/ diff --git a/config/obc/sitl/target/apps/sch/unit_test/sch_test_utils.h b/config/obc/sitl/target/apps/sch/unit_test/sch_test_utils.h new file mode 100644 index 000000000..34dc6c3a7 --- /dev/null +++ b/config/obc/sitl/target/apps/sch/unit_test/sch_test_utils.h @@ -0,0 +1,32 @@ + /************************************************************************* + ** File: + ** $Id: sch_test_utils.h 1.2 2017/06/21 15:28:58EDT mdeschu Exp $ + ** + ** Purpose: + ** This file contains the function prototypes and global variables for the unit test utilities for the SCH application. + ** + ** References: + ** Flight Software Branch C Coding Standard Version 1.2 + ** CFS Development Standards Document + ** Notes: + ** + *************************************************************************/ + +/* + * Includes + */ + +#include "sch_app.h" + +/* + * Function Definitions + */ + +void SCH_Test_Setup(void); +void SCH_Test_TearDown(void); + + + +/************************/ +/* End of File Comment */ +/************************/ diff --git a/config/obc/sitl/target/apps/sch/unit_test/sch_testrunner.c b/config/obc/sitl/target/apps/sch/unit_test/sch_testrunner.c new file mode 100644 index 000000000..98973d29f --- /dev/null +++ b/config/obc/sitl/target/apps/sch/unit_test/sch_testrunner.c @@ -0,0 +1,36 @@ + /************************************************************************* + ** File: + ** $Id: sch_testrunner.c 1.2 2017/06/21 15:29:03EDT mdeschu Exp $ + ** + ** Purpose: + ** This file contains the unit test runner for the SCH application. + ** + ** References: + ** Flight Software Branch C Coding Standard Version 1.2 + ** CFS Development Standards Document + ** Notes: + ** + *************************************************************************/ + +/* + * Includes + */ + +#include "uttest.h" +#include "sch_custom_test.h" + +/* + * Function Definitions + */ + +int main(void) +{ + SCH_Custom_Test_AddTestCases(); + + return(UtTest_Run()); +} /* end main */ + + +/************************/ +/* End of File Comment */ +/************************/ diff --git a/config/obc/sitl/target/apps/to/CMakeLists.txt b/config/obc/sitl/target/apps/to/CMakeLists.txt new file mode 100644 index 000000000..dee6a31c0 --- /dev/null +++ b/config/obc/sitl/target/apps/to/CMakeLists.txt @@ -0,0 +1,38 @@ +set(APP_NAME to) + +buildliner_add_table( + ${APP_NAME} + NAME to_udp_cfg + SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/tables/to_udp_cfg.c + INCLUDES ${CMAKE_CURRENT_SOURCE_DIR}/src/ +) + +buildliner_add_app_unit_test(to-custom-ut + UTASSERT + NO_HELGRIND + NO_MASSIF + + SOURCES + ${CMAKE_CURRENT_SOURCE_DIR}/unit_test/to_app_custom_test.c + ${CMAKE_CURRENT_SOURCE_DIR}/unit_test/to_app_custom_test.h + ${CMAKE_CURRENT_SOURCE_DIR}/unit_test/to_custom_testrunner.c + ${CMAKE_CURRENT_SOURCE_DIR}/unit_test/to_custom_test_utils.c + ${CMAKE_CURRENT_SOURCE_DIR}/unit_test/to_custom_test_utils.h + ${CMAKE_CURRENT_SOURCE_DIR}/unit_test/to_app_stubs.c + ${CMAKE_CURRENT_SOURCE_DIR}/unit_test/to_app_stubs.h + ${CMAKE_CURRENT_SOURCE_DIR}/unit_test/to_platform_stubs.c + ${CMAKE_CURRENT_SOURCE_DIR}/unit_test/to_platform_stubs.h + ${CMAKE_CURRENT_SOURCE_DIR}/tables/to_backup_cfg.c + ${CMAKE_CURRENT_SOURCE_DIR}/to_custom.c + ${CMAKE_CURRENT_SOURCE_DIR}/to_custom_udp.h + + INCLUDES + ${CMAKE_CURRENT_SOURCE_DIR}/ + ${CMAKE_CURRENT_SOURCE_DIR}/unit_test/ + ${PROJECT_SOURCE_DIR}/apps/to/fsw/src + + WRAPPERS + socket + bind + sendto +) diff --git a/config/obc/sitl/target/apps/to/tables/to_backup_cfg.c b/config/obc/sitl/target/apps/to/tables/to_backup_cfg.c new file mode 100644 index 000000000..dd007ca32 --- /dev/null +++ b/config/obc/sitl/target/apps/to/tables/to_backup_cfg.c @@ -0,0 +1,74 @@ +/************************************************************************ + ** Includes + *************************************************************************/ +#include "cfe_tbl_filedef.h" +#include "to_tbldefs.h" +#include "msg_ids.h" + + +/************************************************************************ + ** Defines + *************************************************************************/ + +#define TO_PQUEUE_SINGLE_PASS_IDX 0 +#define TO_PQUEUE_HIGH_OPS_RSRVD_IDX 1 +#define TO_PQUEUE_HIGH_IDX 2 +#define TO_PQUEUE_MEDIUM_IDX 3 +#define TO_PQUEUE_LOW_IDX 4 + +/** + ** \brief Default TO config table data + */ +TO_ChannelTbl_t TO_BackupConfigTbl = +{ + /* Table ID */ + 0, + { + /* Message Flows */ + /* Ground Queues */ + {TO_HK_TLM_MID, 1, TO_PQUEUE_HIGH_IDX}, + {TO_DATA_TYPE_MID, 1, TO_PQUEUE_HIGH_IDX}, + {TO_DIAG_TLM_MID, 1, TO_PQUEUE_HIGH_IDX}, + {CFE_ES_HK_TLM_MID, 1, TO_PQUEUE_MEDIUM_IDX}, + {CFE_EVS_HK_TLM_MID, 1, TO_PQUEUE_MEDIUM_IDX}, + {CFE_SB_HK_TLM_MID, 1, TO_PQUEUE_MEDIUM_IDX}, + {CFE_TBL_HK_TLM_MID, 1, TO_PQUEUE_MEDIUM_IDX}, + {CFE_TIME_HK_TLM_MID, 1, TO_PQUEUE_MEDIUM_IDX}, + {CFE_TIME_DIAG_TLM_MID, 1, TO_PQUEUE_MEDIUM_IDX}, + {CFE_EVS_EVENT_MSG_MID, 32, TO_PQUEUE_MEDIUM_IDX}, + {CFE_SB_STATS_TLM_MID, 1, TO_PQUEUE_MEDIUM_IDX}, + {CFE_ES_APP_TLM_MID, 1, TO_PQUEUE_MEDIUM_IDX}, + {CFE_TBL_REG_TLM_MID, 1, TO_PQUEUE_MEDIUM_IDX}, + {CFE_SB_ONESUB_TLM_MID, 1, TO_PQUEUE_MEDIUM_IDX}, + {CFE_ES_SHELL_TLM_MID, 32, TO_PQUEUE_MEDIUM_IDX}, + {CFE_ES_MEMSTATS_TLM_MID, 1, TO_PQUEUE_MEDIUM_IDX}, + {CF_HK_TLM_MID, 1, TO_PQUEUE_MEDIUM_IDX}, + {CF_TRANS_TLM_MID, 1, TO_PQUEUE_MEDIUM_IDX}, + {CF_CONFIG_TLM_MID, 1, TO_PQUEUE_MEDIUM_IDX}, + {CF_SPACE_TO_GND_PDU_MID, 32, TO_PQUEUE_MEDIUM_IDX}, + {FM_HK_TLM_MID, 1, TO_PQUEUE_MEDIUM_IDX}, + {FM_FILE_INFO_TLM_MID, 1, TO_PQUEUE_MEDIUM_IDX}, + {FM_DIR_LIST_TLM_MID, 1, TO_PQUEUE_MEDIUM_IDX}, + {FM_OPEN_FILES_TLM_MID, 1, TO_PQUEUE_MEDIUM_IDX}, + {FM_FREE_SPACE_TLM_MID, 1, TO_PQUEUE_MEDIUM_IDX}, + {MD_HK_TLM_MID, 1, TO_PQUEUE_MEDIUM_IDX}, + {MM_HK_TLM_MID, 1, TO_PQUEUE_MEDIUM_IDX}, + },{ + /* Priority Queues */ + /* TO_PQUEUE_SINGLE_PASS_IDX */ + {TO_PQUEUE_ENA, 100, TO_PRIORITY_QUEUE_TYPE_SINGLE}, + /* TO_PQUEUE_HIGH_OPS_RSRVD_IDX */ + {TO_PQUEUE_ENA, 100, TO_PRIORITY_QUEUE_TYPE_FIFO}, + /* TO_PQUEUE_HIGH_IDX */ + {TO_PQUEUE_ENA, 100, TO_PRIORITY_QUEUE_TYPE_FIFO}, + /* TO_PQUEUE_MEDIUM_IDX */ + {TO_PQUEUE_ENA, 100, TO_PRIORITY_QUEUE_TYPE_FIFO}, + /* TO_PQUEUE_LOW_IDX */ + {TO_PQUEUE_ENA, 100, TO_PRIORITY_QUEUE_TYPE_FIFO} + } +}; + + +/************************/ +/* End of File Comment */ +/************************/ diff --git a/config/obc/sitl/target/apps/to/tables/to_udp_cfg.c b/config/obc/sitl/target/apps/to/tables/to_udp_cfg.c new file mode 100644 index 000000000..f699d479c --- /dev/null +++ b/config/obc/sitl/target/apps/to/tables/to_udp_cfg.c @@ -0,0 +1,224 @@ +/************************************************************************ + ** Includes + *************************************************************************/ +#include "cfe_tbl_filedef.h" +#include "to_tbldefs.h" +#include "msg_ids.h" + +/** + ** \brief The cFE TO config table definition. + ** + ** Content format: ObjName[64], TblName[38], Desc[32], TgtFileName[20], ObjSize + ** ObjName - variable name of config table, e.g., TO_ConfigDefTbl[] + ** TblName - app's table name, e.g., TO.CONFIG_TBL, where TO is the same app name + ** used in cfe_es_startup.scr, and TO_defConfigTbl is the same table + ** name passed in to CFE_TBL_Register() + ** Desc - description of table in string format + ** TgtFileName[20] - table file name, compiled as .tbl file extension + ** ObjSize - size of the entire table + ** + */ +static CFE_TBL_FileDef_t CFE_TBL_FileDef OS_USED = +{ + "TO_ConfigTbl", "TO.UDP_CFG", "TO ground dev udp table", + "to_udp_cfg.tbl", (sizeof(TO_ChannelTbl_t)) +}; + + +/************************************************************************ + ** Defines + *************************************************************************/ + +#define TO_PQUEUE_SINGLE_PASS_IDX 0 +#define TO_PQUEUE_HIGH_OPS_RSRVD_IDX 1 +#define TO_PQUEUE_HIGH_IDX 2 +#define TO_PQUEUE_MEDIUM_IDX 3 +#define TO_PQUEUE_LOW_IDX 4 + +/** + ** \brief Default TO config table data + */ +TO_ChannelTbl_t TO_ConfigTbl = +{ + /* Table ID */ + 1, + { + /* Message Flows */ + /* Ground Queues */ + {AMC_HK_TLM_MID, 1, TO_PQUEUE_HIGH_IDX}, + {MAC_HK_TLM_MID, 1, TO_PQUEUE_HIGH_IDX}, + {MPC_HK_TLM_MID, 1, TO_PQUEUE_HIGH_IDX}, + {ULR_HK_TLM_MID, 1, TO_PQUEUE_HIGH_IDX}, + {RGBLED_HK_TLM_MID, 1, TO_PQUEUE_HIGH_IDX}, + {GPS_HK_TLM_MID, 1, TO_PQUEUE_HIGH_IDX}, + {SENS_HK_TLM_MID, 1, TO_PQUEUE_HIGH_IDX}, + {LD_HK_TLM_MID, 1, TO_PQUEUE_HIGH_IDX}, + {NAV_HK_TLM_MID, 1, TO_PQUEUE_HIGH_IDX}, + {RCIN_HK_TLM_MID, 1, TO_PQUEUE_HIGH_IDX}, + {VM_HK_TLM_MID, 1, TO_PQUEUE_HIGH_IDX}, + {BAT_HK_TLM_MID, 1, TO_PQUEUE_HIGH_IDX}, + {PE_HK_TLM_MID, 1, TO_PQUEUE_HIGH_IDX}, + {AK8963_HK_TLM_MID, 1, TO_PQUEUE_HIGH_IDX}, + {AK8963_DIAG_TLM_MID, 1, TO_PQUEUE_HIGH_IDX}, + {MS5611_HK_TLM_MID, 1, TO_PQUEUE_HIGH_IDX}, + {MS5611_DIAG_TLM_MID, 1, TO_PQUEUE_HIGH_IDX}, + {MPU6050_HK_TLM_MID, 1, TO_PQUEUE_HIGH_IDX}, + {MPU6050_DIAG_TLM_MID, 1, TO_PQUEUE_HIGH_IDX}, + {TO_HK_TLM_MID, 1, TO_PQUEUE_HIGH_IDX}, + {TO_DATA_TYPE_MID, 1, TO_PQUEUE_HIGH_IDX}, + {EA_HK_TLM_MID, 1, TO_PQUEUE_HIGH_IDX}, + {VC_HK_TLM_MID, 1, TO_PQUEUE_HIGH_IDX}, + {TO_DIAG_TLM_MID, 1, TO_PQUEUE_HIGH_IDX}, + {TO_DIAG_MSG_FLOW_MID, 1, TO_PQUEUE_HIGH_IDX}, + {GPS_HK_TLM_MID, 1, TO_PQUEUE_HIGH_IDX}, + {MAVLINK_HK_TLM_MID, 1, TO_PQUEUE_HIGH_IDX}, + {CFE_ES_HK_TLM_MID, 1, TO_PQUEUE_MEDIUM_IDX}, + {CFE_EVS_HK_TLM_MID, 1, TO_PQUEUE_MEDIUM_IDX}, + {CFE_SB_HK_TLM_MID, 1, TO_PQUEUE_MEDIUM_IDX}, + {CFE_TBL_HK_TLM_MID, 1, TO_PQUEUE_MEDIUM_IDX}, + {CFE_TIME_HK_TLM_MID, 1, TO_PQUEUE_MEDIUM_IDX}, + {CFE_TIME_DIAG_TLM_MID, 1, TO_PQUEUE_MEDIUM_IDX}, + {CFE_EVS_EVENT_MSG_MID, 32, TO_PQUEUE_MEDIUM_IDX}, + {CFE_SB_STATS_TLM_MID, 1, TO_PQUEUE_MEDIUM_IDX}, + {CFE_ES_APP_TLM_MID, 1, TO_PQUEUE_MEDIUM_IDX}, + {CFE_TBL_REG_TLM_MID, 1, TO_PQUEUE_MEDIUM_IDX}, + {CFE_SB_ONESUB_TLM_MID, 1, TO_PQUEUE_MEDIUM_IDX}, + {CFE_ES_SHELL_TLM_MID, 32, TO_PQUEUE_MEDIUM_IDX}, + {CFE_ES_MEMSTATS_TLM_MID, 1, TO_PQUEUE_MEDIUM_IDX}, + {CF_HK_TLM_MID, 1, TO_PQUEUE_MEDIUM_IDX}, + {CF_TRANS_TLM_MID, 1, TO_PQUEUE_MEDIUM_IDX}, + {CF_CONFIG_TLM_MID, 1, TO_PQUEUE_MEDIUM_IDX}, + {CF_SPACE_TO_GND_PDU_MID, 32, TO_PQUEUE_MEDIUM_IDX}, + {CS_HK_TLM_MID, 1, TO_PQUEUE_MEDIUM_IDX}, + {DS_HK_TLM_MID, 1, TO_PQUEUE_MEDIUM_IDX}, + {DS_DIAG_TLM_MID, 1, TO_PQUEUE_MEDIUM_IDX}, + {FM_HK_TLM_MID, 1, TO_PQUEUE_MEDIUM_IDX}, + {FM_FILE_INFO_TLM_MID, 1, TO_PQUEUE_MEDIUM_IDX}, + {FM_DIR_LIST_TLM_MID, 1, TO_PQUEUE_MEDIUM_IDX}, + {FM_OPEN_FILES_TLM_MID, 1, TO_PQUEUE_MEDIUM_IDX}, + {FM_FREE_SPACE_TLM_MID, 1, TO_PQUEUE_MEDIUM_IDX}, + {HK_HK_TLM_MID, 1, TO_PQUEUE_MEDIUM_IDX}, + {HS_HK_TLM_MID, 1, TO_PQUEUE_MEDIUM_IDX}, + {LC_HK_TLM_MID, 1, TO_PQUEUE_MEDIUM_IDX}, + {MD_HK_TLM_MID, 1, TO_PQUEUE_MEDIUM_IDX}, + {MM_HK_TLM_MID, 1, TO_PQUEUE_MEDIUM_IDX}, + {SCH_HK_TLM_MID, 1, TO_PQUEUE_MEDIUM_IDX}, + {SCH_DIAG_TLM_MID, 1, TO_PQUEUE_MEDIUM_IDX}, + {CI_HK_TLM_MID, 1, TO_PQUEUE_MEDIUM_IDX}, + {QAE_HK_TLM_MID, 1, TO_PQUEUE_MEDIUM_IDX}, + {FLOW_HK_TLM_MID, 1, TO_PQUEUE_MEDIUM_IDX}, + {FLOW_DIAG_TLM_MID, 1, TO_PQUEUE_MEDIUM_IDX}, + {MPC_DIAG_TLM_MID, 1, TO_PQUEUE_MEDIUM_IDX}, + {LD_DIAG_TLM_MID, 1, TO_PQUEUE_MEDIUM_IDX}, + {PRM_HK_TLM_MID, 1, TO_PQUEUE_MEDIUM_IDX}, + {VM_CONFIG_TLM_MID, 1, TO_PQUEUE_MEDIUM_IDX}, + +// {PX4_ACTUATOR_ARMED_MID, 1, TO_PQUEUE_LOW_IDX}, +// {PX4_ACTUATOR_CONTROLS_0_MID, 1, TO_PQUEUE_LOW_IDX}, +// {PX4_ACTUATOR_CONTROLS_1_MID, 1, TO_PQUEUE_LOW_IDX}, +// {PX4_ACTUATOR_CONTROLS_2_MID, 1, TO_PQUEUE_LOW_IDX}, +// {PX4_ACTUATOR_CONTROLS_3_MID, 1, TO_PQUEUE_LOW_IDX}, +// {PX4_ACTUATOR_DIRECT_MID, 1, TO_PQUEUE_LOW_IDX}, +// {PX4_ACTUATOR_OUTPUTS_MID, 1, TO_PQUEUE_LOW_IDX}, +// {PX4_ADC_REPORT_MID, 1, TO_PQUEUE_LOW_IDX}, +// {PX4_AIRSPEED_MID, 1, TO_PQUEUE_LOW_IDX}, +// {PX4_ATT_POS_MOCAP_MID, 1, TO_PQUEUE_LOW_IDX}, +// {PX4_BATTERY_STATUS_MID, 1, TO_PQUEUE_LOW_IDX}, +// {PX4_CAMERA_TRIGGER_MID, 1, TO_PQUEUE_LOW_IDX}, +// {PX4_COMMANDER_STATE_MID, 1, TO_PQUEUE_LOW_IDX}, +// {PX4_CONTROL_STATE_MID, 1, TO_PQUEUE_LOW_IDX}, +// {PX4_CPULOAD_MID, 1, TO_PQUEUE_LOW_IDX}, +// {PX4_DEBUG_KEY_VALUE_MID, 1, TO_PQUEUE_LOW_IDX}, +// {PX4_DIFFERENTIAL_PRESSURE_MID, 1, TO_PQUEUE_LOW_IDX}, +// {PX4_DISTANCE_SENSOR_MID, 1, TO_PQUEUE_LOW_IDX}, +// {PX4_FW_POS_CTRL_STATUS_MID, 1, TO_PQUEUE_LOW_IDX}, +// {PX4_FW_VIRTUAL_ATTITUDE_SETPOINT_MID, 1, TO_PQUEUE_LOW_IDX}, +// {PX4_FW_VIRTUAL_RATES_SETPOINT_MID, 1, TO_PQUEUE_LOW_IDX}, +// {PX4_EKF2_INNOVATIONS_MID, 1, TO_PQUEUE_LOW_IDX}, +// {PX4_EKF2_REPLAY_MID, 1, TO_PQUEUE_LOW_IDX}, +// {PX4_ESC_REPORT_MID, 1, TO_PQUEUE_LOW_IDX}, +// {PX4_ESC_STATUS_MID, 1, TO_PQUEUE_LOW_IDX}, +// {PX4_ESTIMATOR_STATUS_MID, 1, TO_PQUEUE_LOW_IDX}, +// {PX4_FENCE_MID, 1, TO_PQUEUE_LOW_IDX}, +// {PX4_FENCE_VERTEX_MID, 1, TO_PQUEUE_LOW_IDX}, +// {PX4_FILTERED_BOTTOM_FLOW_MID, 1, TO_PQUEUE_LOW_IDX}, +// {PX4_FOLLOW_TARGET_MID, 1, TO_PQUEUE_LOW_IDX}, + {PX4_GEOFENCE_RESULT_MID, 1, TO_PQUEUE_LOW_IDX}, +// {PX4_GPS_DUMP_MID, 1, TO_PQUEUE_LOW_IDX}, +// {PX4_GPS_INJECT_DATA_MID, 1, TO_PQUEUE_LOW_IDX}, +// {PX4_HIL_SENSOR_MID, 1, TO_PQUEUE_LOW_IDX}, + {PX4_HOME_POSITION_MID, 1, TO_PQUEUE_LOW_IDX}, +// {PX4_INPUT_RC_MID, 1, TO_PQUEUE_LOW_IDX}, + {PX4_LED_CONTROL_MID, 1, TO_PQUEUE_LOW_IDX}, + {PX4_LOG_MESSAGE_MID, 1, TO_PQUEUE_LOW_IDX}, + {PX4_MANUAL_CONTROL_SETPOINT_MID, 1, TO_PQUEUE_LOW_IDX}, + {PX4_MAVLINK_LOG_MID, 1, TO_PQUEUE_LOW_IDX}, +// {PX4_MC_ATT_CTRL_STATUS_MID, 1, TO_PQUEUE_LOW_IDX}, +// {PX4_MC_VIRTUAL_ATTITUDE_SETPOINT_MID, 1, TO_PQUEUE_LOW_IDX}, +// {PX4_MC_VIRTUAL_RATES_SETPOINT_MID, 1, TO_PQUEUE_LOW_IDX}, + {PX4_MISSION_MID, 1, TO_PQUEUE_LOW_IDX}, + {PX4_MISSION_RESULT_MID, 1, TO_PQUEUE_LOW_IDX}, +// {PX4_MULTIROTOR_MOTOR_LIMITS_MID, 1, TO_PQUEUE_LOW_IDX}, + {PX4_OFFBOARD_CONTROL_MODE_MID, 1, TO_PQUEUE_LOW_IDX}, +// {PX4_OPTICAL_FLOW_MID, 1, TO_PQUEUE_LOW_IDX}, +// {PX4_OUTPUT_PWM_MID, 1, TO_PQUEUE_LOW_IDX}, +// {PX4_PARAMETER_UPDATE_MID, 1, TO_PQUEUE_LOW_IDX}, + {PX4_POSITION_SETPOINT_TRIPLET_MID, 1, TO_PQUEUE_LOW_IDX}, +// {PX4_PWM_INPUT_MID, 1, TO_PQUEUE_LOW_IDX}, +// {PX4_QSHELL_REQ_MID, 1, TO_PQUEUE_LOW_IDX}, +// {PX4_RC_CHANNELS_MID, 1, TO_PQUEUE_LOW_IDX}, +// {PX4_RC_PARAMETER_MAP_MID, 1, TO_PQUEUE_LOW_IDX}, + {PX4_SAFETY_MID, 1, TO_PQUEUE_LOW_IDX}, +// {PX4_SATELLITE_INFO_MID, 1, TO_PQUEUE_LOW_IDX}, +// {PX4_SENSOR_ACCEL_MID, 1, TO_PQUEUE_LOW_IDX}, +// {PX4_SENSOR_BARO_MID, 1, TO_PQUEUE_LOW_IDX}, +// {PX4_SENSOR_COMBINED_MID, 1, TO_PQUEUE_LOW_IDX}, + {PX4_SENSOR_CORRECTION_MID, 1, TO_PQUEUE_LOW_IDX}, +// {PX4_SENSOR_GYRO_MID, 1, TO_PQUEUE_LOW_IDX}, +// {PX4_SENSOR_MAG_MID, 1, TO_PQUEUE_LOW_IDX}, +// {PX4_SERVORAIL_STATUS_MID, 1, TO_PQUEUE_LOW_IDX}, + {PX4_SUBSYSTEM_INFO_MID, 1, TO_PQUEUE_LOW_IDX}, + {PX4_SYSTEM_POWER_MID, 1, TO_PQUEUE_LOW_IDX}, +// {PX4_TECS_STATUS_MID, 1, TO_PQUEUE_LOW_IDX}, + {PX4_TELEMETRY_STATUS_MID, 1, TO_PQUEUE_LOW_IDX}, +// {PX4_TEST_MOTOR_MID, 1, TO_PQUEUE_LOW_IDX}, +// {PX4_TIME_OFFSET_MID, 1, TO_PQUEUE_LOW_IDX}, +// {PX4_TRANSPONDER_REPORT_MID, 1, TO_PQUEUE_LOW_IDX}, +// {PX4_UAVCAN_PARAMETER_REQUEST_MID, 1, TO_PQUEUE_LOW_IDX}, +// {PX4_UAVCAN_PARAMETER_VALUE_MID, 1, TO_PQUEUE_LOW_IDX}, + {PX4_VEHICLE_ATTITUDE_MID, 1, TO_PQUEUE_LOW_IDX}, +// {PX4_VEHICLE_ATTITUDE_SETPOINT_MID, 1, TO_PQUEUE_LOW_IDX}, +// {PX4_VEHICLE_COMMAND_ACK_MID, 1, TO_PQUEUE_LOW_IDX}, +// {PX4_VEHICLE_COMMAND_MID, 1, TO_PQUEUE_LOW_IDX}, +// {PX4_VEHICLE_CONTROL_MODE_MID, 1, TO_PQUEUE_LOW_IDX}, +// {PX4_VEHICLE_FORCE_SETPOINT_MID, 1, TO_PQUEUE_LOW_IDX}, + {PX4_VEHICLE_GLOBAL_POSITION_MID, 1, TO_PQUEUE_LOW_IDX}, +// {PX4_VEHICLE_GLOBAL_VELOCITY_SETPOINT_MID, 1, TO_PQUEUE_LOW_IDX}, +// {PX4_VEHICLE_GPS_POSITION_MID, 1, TO_PQUEUE_LOW_IDX}, + {PX4_VEHICLE_LAND_DETECTED_MID, 1, TO_PQUEUE_LOW_IDX}, +// {PX4_VEHICLE_LOCAL_POSITION_MID, 1, TO_PQUEUE_LOW_IDX}, +// {PX4_VEHICLE_LOCAL_POSITION_SETPOINT_MID, 1, TO_PQUEUE_LOW_IDX}, +// {PX4_VEHICLE_RATES_SETPOINT_MID, 1, TO_PQUEUE_LOW_IDX}, +// {PX4_VEHICLE_STATUS_MID, 1, TO_PQUEUE_LOW_IDX}, +// {PX4_VISION_POSITION_ESTIMATE_MID, 1, TO_PQUEUE_LOW_IDX}, +// {PX4_VTOL_VEHICLE_STATUS_MID, 1, TO_PQUEUE_LOW_IDX}, +// {PX4_WIND_ESTIMATE_MID, 1, TO_PQUEUE_LOW_IDX} + },{ + /* Priority Queues */ + /* TO_PQUEUE_SINGLE_PASS_IDX */ + {TO_PQUEUE_ENA, 100, TO_PRIORITY_QUEUE_TYPE_SINGLE}, + /* TO_PQUEUE_HIGH_OPS_RSRVD_IDX */ + {TO_PQUEUE_ENA, 100, TO_PRIORITY_QUEUE_TYPE_FIFO}, + /* TO_PQUEUE_HIGH_IDX */ + {TO_PQUEUE_ENA, 100, TO_PRIORITY_QUEUE_TYPE_FIFO}, + /* TO_PQUEUE_MEDIUM_IDX */ + {TO_PQUEUE_ENA, 100, TO_PRIORITY_QUEUE_TYPE_FIFO}, + /* TO_PQUEUE_LOW_IDX */ + {TO_PQUEUE_ENA, 100, TO_PRIORITY_QUEUE_TYPE_FIFO} + } +}; + + +/************************/ +/* End of File Comment */ +/************************/ diff --git a/config/obc/sitl/target/apps/to/to_custom.c b/config/obc/sitl/target/apps/to/to_custom.c new file mode 100644 index 000000000..17b682c26 --- /dev/null +++ b/config/obc/sitl/target/apps/to/to_custom.c @@ -0,0 +1,526 @@ +/**************************************************************************** +* +* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions +* are met: +* +* 1. Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* 2. Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in +* the documentation and/or other materials provided with the +* distribution. +* 3. Neither the name Windhover Labs nor the names of its +* contributors may be used to endorse or promote products derived +* from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS +* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED +* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +* POSSIBILITY OF SUCH DAMAGE. +* +*****************************************************************************/ + +/************************************************************************ +** Pragmas +*************************************************************************/ + +/************************************************************************ +** Includes +*************************************************************************/ + +#include "to_custom_udp.h" +#include "to_platform_cfg.h" +#include +#include +#include "to_events.h" +#include +#include +#include + +/************************************************************************ +** Local Defines +*************************************************************************/ +#define TO_CUSTOM_CHANNEL_GET_TIMEOUT (500) /* msec */ + + +/************************************************************************ +** Local Function Definitions +*************************************************************************/ + + + +TO_AppCustomData_t TO_AppCustomData; + +TO_EnableChannelCmd_t TO_EnableChannelCmd_S; +TO_DisableChannelCmd_t TO_DisableChannelCmd_S; + +extern TO_ChannelTbl_t TO_BackupConfigTbl; + + +uint8 TO_OutputChannel_Status(uint32 Index) +{ + /* Use Index, instead of index, because vxworks-6.9/target/h/string.h:100 + * has a global named "index". */ + return TO_AppCustomData.Channel[Index].Mode; +} + + + +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ +/* */ +/* Custom Initialize All. Nothing to do here. */ +/* */ +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ +int32 TO_Custom_Init(void) +{ + int32 iStatus = 0; + uint32 i = 0; + + /* + * UDP development interface + */ + TO_AppCustomData.Channel[0].Mode = TO_CHANNEL_ENABLED; + strncpy(TO_AppCustomData.Channel[0].IP, TO_UDP_CHANNEL_ADDRESS, INET_ADDRSTRLEN); + TO_AppCustomData.Channel[0].DstPort = TO_UDP_CHANNEL_PORT; + TO_AppCustomData.Channel[0].Priority = TO_UDP_CHANNEL_TASK_PRIORITY; + TO_AppCustomData.Channel[0].ListenerTask = TO_OutputChannel_UDPChannelTask; + TO_AppCustomData.Channel[0].Socket = 0; + TO_AppCustomData.Channel[0].ChildTaskID = 0; + + /* Ground dev interface is optional */ + iStatus = TO_Channel_OpenChannel( + 0, + TO_UDP_CHANNEL_NAME, + TO_UDP_CONFIG_TABLENAME, + TO_UDP_CONFIG_TABLE_FILENAME, + &TO_BackupConfigTbl, + TO_UDP_DUMP_TABLENAME, + 1, + TO_UDP_CF_THROTTLE_SEM_NAME); + + for (i=0; i < TO_MAX_CHANNELS; i++) + { + if(TO_OutputChannel_Status(i) == TO_CHANNEL_ENABLED) + { + if(TO_OutputChannel_Enable(i, TO_AppCustomData.Channel[i].IP, TO_AppCustomData.Channel[i].DstPort)) + { + TO_AppCustomData.Channel[i].Mode = TO_CHANNEL_DISABLED; + } + else + { + CFE_EVS_SendEvent(TO_TLMOUTENA_INF_EID, CFE_EVS_INFORMATION, + "UDP telemetry output enabled channel %u to %s:%u", + (unsigned int)i, TO_AppCustomData.Channel[i].IP, + (unsigned int)TO_AppCustomData.Channel[i].DstPort); + } + } + } + + return iStatus; +} + + + +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ +/* */ +/* Custom Send. Send the message out the socket. */ +/* */ +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ +int32 TO_OutputChannel_Send(uint32 ChannelID, const char* Buffer, uint32 Size) +{ + struct sockaddr_in s_addr; + int status = 0; + int32 returnCode = 0; + + bzero((char *) &s_addr, sizeof(s_addr)); + s_addr.sin_family = AF_INET; + + if((Size > 0) && (ChannelID < TO_MAX_CHANNELS)) + { + TO_TlmChannels_t *channel = &TO_AppCustomData.Channel[ChannelID]; + + if(channel->Mode == TO_CHANNEL_ENABLED) + { + CFE_ES_PerfLogEntry(TO_SOCKET_SEND_PERF_ID); + /* Send message via UDP socket */ + s_addr.sin_addr.s_addr = inet_addr(channel->IP); + s_addr.sin_port = htons(channel->DstPort); + status = sendto(channel->Socket, (char *)Buffer, Size, 0, + (struct sockaddr *) &s_addr, + sizeof(s_addr)); + if (status < 0) + { + CFE_EVS_SendEvent(TO_TLMOUTSTOP_ERR_EID,CFE_EVS_ERROR, + "L%d TO sendto errno %d.", __LINE__, errno); + channel->Mode = TO_CHANNEL_DISABLED; + returnCode = -1; + } + CFE_ES_PerfLogExit(TO_SOCKET_SEND_PERF_ID); + } + } + + return returnCode; +} + + + +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ +/* */ +/* Custom Cleanup All. Disable all the enable channels so we */ +/* don't try sending messages when the sealed framework is torn */ +/* down. */ +/* */ +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ +void TO_OutputChannel_CustomCleanupAll(void) +{ + uint32 i = 0; + + for (i=0; i < TO_MAX_CHANNELS; i++) + { + if(TO_OutputChannel_Status(i) == TO_CHANNEL_ENABLED) + { + TO_OutputChannel_Disable(i); + } + } +} + + + +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ +/* */ +/* Custom Buildup All. Enable all the 'enabled' channels. If it */ +/* fails, disable it. */ +/* */ +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ +int32 TO_OutputChannel_CustomBuildupAll(uint32 index) +{ + return 0; +} + + + +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ +/* */ +/* Custom Teardown All. Nothing to do here. */ +/* */ +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ +int32 TO_OutputChannel_CustomTeardown(uint32 index) +{ + return 0; +} + + + +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ +/* */ +/* Process New Custom Commands. Raise an error event if the */ +/* command is unknown. */ +/* */ +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ +void TO_OutputChannel_ProcessNewCustomCmds(CFE_SB_Msg_t* MsgPtr) +{ + uint32 uiCmdCode=0; + + if (MsgPtr != NULL) + { + uint16 inSize = CFE_SB_GetTotalMsgLength(MsgPtr); + uiCmdCode = CFE_SB_GetCmdCode(MsgPtr); + + OS_MutSemTake(TO_AppData.MutexID); + switch (uiCmdCode) + { + case TO_ENABLE_CHANNEL_CC: + { + TO_EnableChannelCmd_t *cmd = (TO_EnableChannelCmd_t*) MsgPtr; + /* Validate arguments. */ + if(inSize != sizeof(TO_EnableChannelCmd_t)) + { + TO_AppData.HkTlm.usCmdErrCnt++; + (void) CFE_EVS_SendEvent(TO_MSG_LEN_ERR_EID, CFE_EVS_ERROR, + "Invalid message length. Received %u. Expected %u.", + (unsigned int)inSize, sizeof(TO_EnableChannelCmd_t)); + break; + } + + if(TO_OutputChannel_Enable(cmd->ChannelID, cmd->DestinationAddress, cmd->DestinationPort)) + { + TO_AppData.HkTlm.usCmdErrCnt++; + break; + } + + TO_AppData.HkTlm.usCmdCnt++; + (void) CFE_EVS_SendEvent(TO_TLMOUTENA_INF_EID, CFE_EVS_INFORMATION, + "Enabled channel %u to %s:%u.", + cmd->ChannelID, + cmd->DestinationAddress, + cmd->DestinationPort); + break; + } + + case TO_DISABLE_CHANNEL_CC: + { + TO_DisableChannelCmd_t *cmd = (TO_DisableChannelCmd_t*) MsgPtr; + /* Validate arguments. */ + if(inSize != sizeof(TO_DisableChannelCmd_t)) + { + TO_AppData.HkTlm.usCmdErrCnt++; + (void) CFE_EVS_SendEvent(TO_MSG_LEN_ERR_EID, CFE_EVS_ERROR, + "Invalid message length. Received %u. Expected %u.", + (unsigned int)inSize, sizeof(TO_DisableChannelCmd_t)); + break; + } + + if(TO_OutputChannel_Disable(cmd->ChannelID)) + { + TO_AppData.HkTlm.usCmdErrCnt++; + break; + } + + TO_AppData.HkTlm.usCmdCnt++; + break; + } + + default: + TO_AppData.HkTlm.usCmdErrCnt++; + (void) CFE_EVS_SendEvent(TO_CC_ERR_EID, CFE_EVS_ERROR, + "Recvd invalid cmdId (%u)", (unsigned int)uiCmdCode); + break; + } + OS_MutSemGive(TO_AppData.MutexID); + } +} + + + +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ +/* */ +/* Enable Channel. This will bind the socket for transmission. */ +/* */ +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ +int32 TO_OutputChannel_Enable(uint32 ChannelID, const char *DestinationAddress, uint16 DestinationPort) +{ + int32 returnCode = 0; + uint32 i = 0; + struct sockaddr_in servaddr; + int status; + int reuseaddr=1; + + if(DestinationAddress == 0) + { + CFE_EVS_SendEvent(TO_TLMOUTENA_ERR_EID, CFE_EVS_ERROR, + "Destination address for channel %u is null.", (unsigned int)i); + returnCode = -1; + goto end_of_function; + } + + if(ChannelID >= TO_MAX_CHANNELS) + { + CFE_EVS_SendEvent(TO_TLMOUTENA_ERR_EID, CFE_EVS_ERROR, + "ChannelID (%u) invalid.", (unsigned int)ChannelID); + returnCode = -1; + goto end_of_function; + } + + if((TO_AppCustomData.Channel[ChannelID].Socket = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP)) < 0) + { + TO_AppCustomData.Channel[ChannelID].Mode = TO_CHANNEL_DISABLED; + CFE_EVS_SendEvent(TO_TLMOUTSOCKET_ERR_EID, CFE_EVS_ERROR, + "TLM socket errno: %i on channel %u", errno, (unsigned int)ChannelID); + returnCode = -1; + goto end_of_function; + } + + /* Set the Reuse Address flag. If we don't set this flag, the socket will + * lock the port on termination and the kernel won't unlock it until it + * times out after a minute or so. + */ + setsockopt(TO_AppCustomData.Channel[i].Socket, SOL_SOCKET, SO_REUSEADDR, &reuseaddr, sizeof(reuseaddr)); + strncpy(TO_AppCustomData.Channel[ChannelID].IP, DestinationAddress, sizeof(TO_AppCustomData.Channel[ChannelID].IP)); + TO_AppCustomData.Channel[ChannelID].DstPort = DestinationPort; + + /* Set the input arguments to the socket bind. + */ + bzero((void*)&servaddr,sizeof(servaddr)); + servaddr.sin_family = AF_INET; + servaddr.sin_addr.s_addr = htonl(INADDR_ANY); + servaddr.sin_port=0; + status = bind(TO_AppCustomData.Channel[ChannelID].Socket, + (struct sockaddr *)&servaddr,sizeof(servaddr)); + if(status < 0) + { + CFE_EVS_SendEvent(TO_TLMOUTSOCKET_ERR_EID, CFE_EVS_ERROR, + "TLM bind errno: %i on channel %u", errno, (unsigned int)i); + TO_AppCustomData.Channel[ChannelID].Mode = TO_CHANNEL_DISABLED; + returnCode = -1; + goto end_of_function; + } + + /* Enable the channel for transmission. */ + TO_AppCustomData.Channel[ChannelID].Mode = TO_CHANNEL_ENABLED; + + /* Create the child listener task. */ + char TaskName[OS_MAX_API_NAME]; + snprintf(TaskName, OS_MAX_API_NAME, "TO_OUTCH_%u", (unsigned int)ChannelID); + returnCode = CFE_ES_CreateChildTask( + &TO_AppCustomData.Channel[ChannelID].ChildTaskID, + (const char *)TaskName, + TO_AppCustomData.Channel[ChannelID].ListenerTask, + 0, + TO_CUSTOM_TASK_STACK_SIZE, + TO_AppCustomData.Channel[ChannelID].Priority, + TO_CUSTOM_CHILD_TASK_FLAGS); + +end_of_function: + return returnCode; +} + + + +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ +/* */ +/* Disable channel. Close the socket. */ +/* */ +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ +int32 TO_OutputChannel_Disable(uint32 ChannelID) +{ + int32 returnCode = 0; + uint32 i = 0; + + if(TO_AppCustomData.Channel[ChannelID].Mode != TO_CHANNEL_ENABLED) + { + CFE_EVS_SendEvent(TO_TLMOUTDIS_ERR_EID, CFE_EVS_ERROR, + "UDP telemetry for channel %u is not enabled.", (unsigned int)i); + returnCode = -1; + goto end_of_function; + } + + /* Disable the channel before we close the socket so if the handler + * task is in the loop it will know the reason why the send + * function failed is because the channel is disabled. + */ + TO_AppCustomData.Channel[ChannelID].Mode = TO_CHANNEL_DISABLED; + close(TO_AppCustomData.Channel[ChannelID].Socket); + TO_AppCustomData.Channel[ChannelID].Socket = 0; + + CFE_EVS_SendEvent(TO_TLMOUTDIS_INF_EID, CFE_EVS_INFORMATION, + "Disabled channel %u.", + (unsigned int)ChannelID); + +end_of_function: + return returnCode; +} + + + +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ +/* */ +/* The UDP Development Channel Task Entry Point */ +/* */ +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ +void TO_OutputChannel_UDPChannelTask(void) +{ + CFE_ES_RegisterChildTask(); + + TO_OutputChannel_ChannelHandler(0); + + CFE_ES_ExitChildTask(); +} + + + +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ +/* */ +/* Channel Handler */ +/* */ +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ +void TO_OutputChannel_ChannelHandler(uint32 ChannelIdx) +{ + int32 iStatus = CFE_SUCCESS; + uint32 msgSize = 0; + char *buffer; + + while(TO_OutputChannel_Status(ChannelIdx) == TO_CHANNEL_ENABLED) + { + if(TO_Channel_State(ChannelIdx) == TO_CHANNEL_OPENED) + { + TO_OutputQueue_t *chQueue = &TO_AppData.ChannelData[ChannelIdx].OutputQueue; + + iStatus = OS_QueueGet( + chQueue->OSALQueueID, + &buffer, sizeof(buffer), &msgSize, TO_CUSTOM_CHANNEL_GET_TIMEOUT); + + if(iStatus == OS_SUCCESS) + { + struct sockaddr_in s_addr; + uint16 actualMessageSize = CFE_SB_GetTotalMsgLength((CFE_SB_MsgPtr_t)buffer); + + bzero((char *) &s_addr, sizeof(s_addr)); + s_addr.sin_family = AF_INET; + + int32 sendResult = TO_OutputChannel_Send(ChannelIdx, (const char*)buffer, actualMessageSize); + + if (sendResult != 0) + { + TO_OutputChannel_Disable(ChannelIdx); + } + + iStatus = CFE_ES_PutPoolBuf(TO_AppData.ChannelData[ChannelIdx].MemPoolHandle, (uint32 *)buffer); + if(iStatus < 0) + { + (void) CFE_EVS_SendEvent(TO_PUT_POOL_ERR_EID, CFE_EVS_ERROR, + "PutPoolBuf: error=0x%08lx", + (unsigned long)iStatus); + } + else + { + OS_MutSemTake(TO_AppData.MutexID); + TO_AppData.ChannelData[ChannelIdx].MemInUse -= iStatus; + OS_MutSemGive(TO_AppData.MutexID); + + TO_Channel_LockByIndex(ChannelIdx); + chQueue->CurrentlyQueuedCnt--; + chQueue->SentCount++; + TO_Channel_UnlockByIndex(ChannelIdx); + } + + } + else if(iStatus == OS_QUEUE_TIMEOUT) + { + /* Do nothing. Just loop back around and check the guard. */ + } + else + { + CFE_EVS_SendEvent(TO_OSQUEUE_GET_ERROR_EID, CFE_EVS_ERROR, + "Listener failed to pop message from queue. (%i).", (int)iStatus); + OS_MutSemTake(TO_AppData.MutexID); + TO_AppData.ChannelData[ChannelIdx].State = TO_CHANNEL_CLOSED; + OS_MutSemGive(TO_AppData.MutexID); + } + } + } +} + + + +int32 TO_Custom_InitEvent(int32 *ind) +{ + return 0; +} + + + +void TO_PrintCustomVersion(void) +{ + +} diff --git a/config/obc/sitl/target/apps/to/to_custom_udp.h b/config/obc/sitl/target/apps/to/to_custom_udp.h new file mode 100644 index 000000000..224ecae5c --- /dev/null +++ b/config/obc/sitl/target/apps/to/to_custom_udp.h @@ -0,0 +1,141 @@ +/**************************************************************************** +* +* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions +* are met: +* +* 1. Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* 2. Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in +* the documentation and/or other materials provided with the +* distribution. +* 3. Neither the name Windhover Labs nor the names of its +* contributors may be used to endorse or promote products derived +* from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS +* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED +* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +* POSSIBILITY OF SUCH DAMAGE. +* +*****************************************************************************/ + +#ifndef TO_CUSTOM_UDP_H +#define TO_CUSTOM_UDP_H + +/************************************************************************ +** Includes +*************************************************************************/ +#include "to_app.h" +#include "to_custom.h" +#include + +/************************************************************************ +** Local Defines +*************************************************************************/ +#define TO_CUSTOM_RETURN_CODE_NULL_POINTER (-1) +#define TO_CUSTOM_RETURN_CODE_MESSAGE_TOO_BIG (-2) + +/* TODO: Add Doxygen markup. */ +#define TO_ENABLE_CHANNEL_CC (10) +#define TO_DISABLE_CHANNEL_CC (11) + +/************************************************************************ +** Local Structure Declarations +*************************************************************************/ +typedef struct +{ + uint8 ucCmdHeader[CFE_SB_CMD_HDR_SIZE]; + uint8 ChannelID; + char DestinationAddress[INET_ADDRSTRLEN]; + uint16 DestinationPort; +} TO_EnableChannelCmd_t; + +typedef struct +{ + uint8 ucCmdHeader[CFE_SB_CMD_HDR_SIZE]; + uint8 ChannelID; +} TO_DisableChannelCmd_t; + +typedef enum { + /* TODO: Add Doxygen markup. */ + TO_TLMOUTSOCKET_ERR_EID = TO_EVT_CNT, + TO_TLMOUTENA_INF_EID, + TO_TLMOUTENA_ERR_EID, + TO_TLMOUTDIS_INF_EID, + TO_TLMOUTDIS_ERR_EID, + TO_TLMOUTSEND_ERR_EID, + TO_TLMOUTSTOP_ERR_EID, + TO_CUSTOM_EVT_CNT +} TO_CustomEventIds_t; + +typedef enum +{ + TO_CHANNEL_UNUSED = 0, + TO_CHANNEL_DISABLED = 1, + TO_CHANNEL_ENABLED = 2 +} TO_TLM_ChannelMode_t; + +typedef struct +{ + TO_TLM_ChannelMode_t Mode; + char IP[INET_ADDRSTRLEN]; + uint16 DstPort; + uint8 Priority; + CFE_ES_ChildTaskMainFuncPtr_t ListenerTask; + int Socket; + uint32 ChildTaskID; + uint32 TaskFlags; +} TO_TlmChannels_t; + +typedef struct +{ + TO_TlmChannels_t Channel[TO_MAX_CHANNELS]; +} TO_AppCustomData_t; + +/************************************************************************ +** External Global Variables +*************************************************************************/ + +extern TO_AppData_t TO_AppData; + +/************************************************************************ +** Local Function Definitions +*************************************************************************/ + +/** + * The routine to send a buffer out the channel. This routine + * abstracts the formatting and output of different channels. + */ +int32 TO_OutputChannel_Send(uint32 ChannelID, const char* Buffer, uint32 Size); + +int32 TO_OutputChannel_Enable(uint32 ChannelID, const char *DestinationAddress, uint16 DestinationPort); +int32 TO_OutputChannel_Disable(uint32 ChannelID); + +/** + * The UDP Development Channel Task Entry Point + */ +void TO_OutputChannel_UDPChannelTask(void); + +/** + * The child task routine for a pulling from the output queue and sending + * out the channel. + */ +void TO_OutputChannel_ChannelHandler(uint32 ChannelIndex); + +int32 TO_OutputChannel_CustomBuildupAll(uint32 index); +int32 TO_OutputChannel_CustomTeardownAll(uint32 index); + + +#endif diff --git a/config/obc/sitl/target/apps/to/unit_test/to_app_custom_test.c b/config/obc/sitl/target/apps/to/unit_test/to_app_custom_test.c new file mode 100644 index 000000000..beec9f79b --- /dev/null +++ b/config/obc/sitl/target/apps/to/unit_test/to_app_custom_test.c @@ -0,0 +1,985 @@ +/**************************************************************************** +* +* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions +* are met: +* +* 1. Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* 2. Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in +* the documentation and/or other materials provided with the +* distribution. +* 3. Neither the name Windhover Labs nor the names of its +* contributors may be used to endorse or promote products derived +* from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS +* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED +* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +* POSSIBILITY OF SUCH DAMAGE. +* +*****************************************************************************/ + +#include "to_app_custom_test.h" +#include "to_custom_test_utils.h" +#include "to_platform_stubs.h" + +#include "uttest.h" +#include "ut_osapi_stubs.h" +#include "ut_cfe_sb_stubs.h" +#include "ut_cfe_sb_hooks.h" +#include "ut_cfe_es_stubs.h" +#include "ut_cfe_es_hooks.h" +#include "ut_cfe_evs_stubs.h" +#include "ut_cfe_evs_hooks.h" +#include "ut_cfe_time_stubs.h" +#include "ut_cfe_psp_memutils_stubs.h" +#include "ut_cfe_tbl_stubs.h" +#include "ut_cfe_fs_stubs.h" +#include "ut_cfe_time_stubs.h" +#include "to_custom.h" + + +/************************************************************************** + * Tests for TO_Custom_Init() + **************************************************************************/ +/** + * Test TO_Custom_Init() fail TO_Channel_OpenChannel() + */ +void TO_Custom_Init_OpenChannelFail(void) +{ + int32 result = 0; + int32 expected = 1; + + TO_App_Return.TO_Channel_OpenChannel_Return = 1; + + /* Execute the function being tested */ + result = TO_Custom_Init(); + + /* Verify results */ + UtAssert_True (result == expected, + "TO_Custom_Init() did not return an expected value"); +} + + +/** + * Test TO_Custom_Init() fail TO_OutputChannel_Enable() + */ +void TO_Custom_Init_EnableChannelFail(void) +{ + int32 result = -1; + int32 expected = 0; + uint8 ChannelID = 0; + + /* Set channel 0 to enabled */ + TO_AppCustomData.Channel[ChannelID].Mode = TO_CHANNEL_ENABLED; + + /* Set socket call in TO_OutputChannel_Enable to fail */ + TO_Platform_Stubs_Returns.TO_Wrap_Socket_Return = -1; + + /* Execute the function being tested */ + result = TO_Custom_Init(); + + /* Verify results */ + UtAssert_True (result == expected, + "TO_Custom_Init() did not return an expected value"); + UtAssert_True(TO_AppCustomData.Channel[ChannelID].Mode == TO_CHANNEL_DISABLED, + "TO_Custom_Init() did not set correct mode"); +} + + +/** + * Test TO_Custom_Init() nothing enabled + */ +void TO_Custom_Init_NothingEnabled(void) +{ + int32 result = -1; + int32 expected = 0; + + /* Execute the function being tested */ + result = TO_Custom_Init(); + + /* Verify results */ + UtAssert_True (result == expected, + "TO_Custom_Init() did not return an expected value"); +} + + +/** + * Test TO_Custom_Init() nominal + */ +void TO_Custom_Init_Nominal(void) +{ + int32 result = -1; + int32 expected = 0; + uint8 ChannelID = 0; + uint16 testPort = TO_UDP_CHANNEL_PORT; + char *testIP = TO_UDP_CHANNEL_ADDRESS; + + char returnString[128]; + snprintf(returnString, 128, "UDP telemetry output enabled channel %u to %s:%u", + ChannelID, testIP, testPort); + + /* Execute the function being tested */ + result = TO_Custom_Init(); + + /* Verify results */ + UtAssert_True (result == expected, + "TO_Custom_Init() did not return an expected value"); + UtAssert_True(TO_AppCustomData.Channel[ChannelID].Mode == TO_CHANNEL_ENABLED, + "TO_Custom_Init() did not set correct mode"); + //UtAssert_EventSent(TO_TLMOUTENA_INF_EID, CFE_EVS_INFORMATION, returnString, + // "TO_Custom_Init() failed to raise an event"); +} + + +/************************************************************************** + * Tests for TO_OutputChannel_CustomBuildupAll() + **************************************************************************/ +/** + * Test TO_OutputChannel_CustomBuildupAll() nominal + * NOTE: Function is not currently implemented. + */ +void Test_TO_OutputChannel_CustomBuildupAll_Nominal(void) +{ + int32 result = -1; + int32 expected = 0; + uint32 index = 0; + + /* Execute the function being tested */ + result = TO_OutputChannel_CustomBuildupAll(index); + + /* Verify results */ + UtAssert_True (result == expected, + "TO_OutputChannel_CustomBuildupAll() failed nominal"); +} + + +/************************************************************************** + * Tests for TO_OutputChannel_Enable() + **************************************************************************/ +/** + * Test TO_OutputChannel_Enable() null destination address + */ +void Test_TO_OutputChannel_Enable_NullDestinationAddress(void) +{ + int32 result = 0; + int32 expected = -1; + uint8 ChannelID = 0; + /* Null destination address */ + char *DestinationAddress = 0; + uint16 DestinationPort = 0; + + char returnString[128]; + snprintf(returnString, 128, "Destination address for channel %u is null.", 0); + + + /* Execute the function being tested */ + result = TO_OutputChannel_Enable(ChannelID, DestinationAddress, DestinationPort); + + /* Verify results */ + UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); + UtAssert_True (result == expected, + "TO_OutputChannel_Enable() did not return the correct value"); + UtAssert_EventSent(TO_TLMOUTENA_ERR_EID, CFE_EVS_ERROR, returnString, + "TO_OutputChannel_Enable() failed to raise an event"); +} + + +/** + * Test TO_OutputChannel_Enable() invalid channel id + */ +void Test_TO_OutputChannel_Enable_InvalidID(void) +{ + int32 result = 0; + int32 expected = -1; + /* Set invalid channel ID */ + uint8 ChannelID = (TO_MAX_CHANNELS); + /* Set test destination address */ + char *DestinationAddress = "test"; + uint16 DestinationPort = 0; + + char returnString[128]; + snprintf(returnString, 128, "ChannelID (%u) invalid.", (TO_MAX_CHANNELS)); + + + /* Execute the function being tested */ + result = TO_OutputChannel_Enable(ChannelID, DestinationAddress, DestinationPort); + + /* Verify results */ + UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); + UtAssert_True (result == expected, + "TO_OutputChannel_Enable() did not return the correct value"); + UtAssert_EventSent(TO_TLMOUTENA_ERR_EID, CFE_EVS_ERROR, returnString, + "TO_OutputChannel_Enable() failed to raise an event"); +} + + +/** + * Test TO_OutputChannel_Enable() fail socket creation + */ +void Test_TO_OutputChannel_Enable_SocketFail(void) +{ + int32 result = 0; + int32 expected = -1; + int32 expectedErrno = 5; + uint8 ChannelID = 0; + /* Set test destination address */ + char *DestinationAddress = "test"; + uint16 DestinationPort = 0; + + char returnString[128]; + snprintf(returnString, 128, "TLM socket errno: %i on channel %u", expectedErrno, ChannelID); + + /* Set socket call to fail */ + TO_Platform_Stubs_Returns.TO_Wrap_Socket_Return = -1; + + /* Set errno for socket call */ + TO_Platform_Stubs_Returns.TO_Wrap_Socket_Errno = 1; + TO_Platform_Stubs_Returns.TO_Wrap_Socket_Errno_Value = expectedErrno; + + /* Execute the function being tested */ + result = TO_OutputChannel_Enable(ChannelID, DestinationAddress, DestinationPort); + + /* Verify results */ + UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); + UtAssert_True (result == expected, + "TO_OutputChannel_Enable() did not return the correct value"); + UtAssert_True(TO_AppCustomData.Channel[ChannelID].Socket == -1, + "TO_OutputChannel_Enable() failed to return an error"); + UtAssert_True(TO_AppCustomData.Channel[ChannelID].Mode == TO_CHANNEL_DISABLED, + "TO_OutputChannel_Enable() did not set correct mode"); + UtAssert_EventSent(TO_TLMOUTSOCKET_ERR_EID, CFE_EVS_ERROR, returnString, + "TO_OutputChannel_Enable() failed to raise an event"); +} + + +/** + * Test TO_OutputChannel_Enable() fail bind + */ +void Test_TO_OutputChannel_Enable_BindFail(void) +{ + int32 result = 0; + int32 expected = -1; + int32 expectedErrno = 5; + uint8 ChannelID = 0; + /* Set test destination address */ + char *DestinationAddress = "test"; + uint16 DestinationPort = 0; + + char returnString[128]; + snprintf(returnString, 128, "TLM bind errno: %i on channel %u", expectedErrno, ChannelID); + + /* Set socket call to pass */ + TO_Platform_Stubs_Returns.TO_Wrap_Socket_Return = 1; + + /* Set bind call to fail */ + TO_Platform_Stubs_Returns.TO_Wrap_Bind_Return = -1; + + /* Set errno for bind call */ + TO_Platform_Stubs_Returns.TO_Wrap_Bind_Errno = 1; + TO_Platform_Stubs_Returns.TO_Wrap_Bind_Errno_Value = expectedErrno; + + /* Execute the function being tested */ + result = TO_OutputChannel_Enable(ChannelID, DestinationAddress, DestinationPort); + + /* Verify results */ + UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); + UtAssert_True (result == expected, + "TO_OutputChannel_Enable() did not return the correct value"); + UtAssert_True(TO_AppCustomData.Channel[ChannelID].Mode == TO_CHANNEL_DISABLED, + "TO_OutputChannel_Enable() did not set correct mode"); + UtAssert_EventSent(TO_TLMOUTSOCKET_ERR_EID, CFE_EVS_ERROR, returnString, + "TO_OutputChannel_Enable() failed to raise an event"); +} + + +/** + * Test TO_OutputChannel_Enable() fail create child task + */ +void Test_TO_OutputChannel_Enable_CreateChildTaskFail(void) +{ + int32 result = 0; + int32 expected = -1; + uint8 ChannelID = 0; + /* Set test destination address */ + char *DestinationAddress = "test"; + uint16 DestinationPort = 0; + + /* Set create child task to fail */ + Ut_CFE_ES_SetReturnCode(UT_CFE_ES_CREATECHILDTASK_INDEX, -1, 1); + + /* Set socket call to pass */ + TO_Platform_Stubs_Returns.TO_Wrap_Socket_Return = 1; + + /* Execute the function being tested */ + result = TO_OutputChannel_Enable(ChannelID, DestinationAddress, DestinationPort); + + /* Verify results */ + UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==0,"Event Count = 0"); + UtAssert_True (result == expected, + "TO_OutputChannel_Enable() did not return the correct value"); + UtAssert_True(TO_AppCustomData.Channel[ChannelID].Mode == TO_CHANNEL_ENABLED, + "TO_OutputChannel_Enable() did not set correct mode"); +} + + +/** + * Test TO_OutputChannel_Enable() nominal + */ +void Test_TO_OutputChannel_Enable_Nominal(void) +{ + int32 result = -1; + int32 expected = CFE_SUCCESS; + uint8 ChannelID = 0; + /* Set test destination address */ + char *DestinationAddress = "test"; + uint16 DestinationPort = 0; + + /* Set create child task to return success */ + Ut_CFE_ES_SetReturnCode(UT_CFE_ES_CREATECHILDTASK_INDEX, CFE_SUCCESS, 1); + + /* Set socket call to pass */ + TO_Platform_Stubs_Returns.TO_Wrap_Socket_Return = 1; + + /* Execute the function being tested */ + result = TO_OutputChannel_Enable(ChannelID, DestinationAddress, DestinationPort); + + /* Verify results */ + UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==0,"Event Count = 0"); + UtAssert_True (result == expected, + "TO_OutputChannel_Enable() did not return the correct value"); + UtAssert_True(TO_AppCustomData.Channel[ChannelID].Mode == TO_CHANNEL_ENABLED, + "TO_OutputChannel_Enable() did not set correct mode"); +} + + +/************************************************************************** + * Tests for TO_OutputChannel_Send() + **************************************************************************/ +/** + * Test TO_OutputChannel_Send() invalid channel id + */ +void Test_TO_OutputChannel_Send_InvalidID(void) +{ + int32 result = -1; + int32 expected = 0; + uint8 ChannelID = (TO_MAX_CHANNELS); + char *testBuffer = "test"; + + /* Execute the function being tested */ + result = TO_OutputChannel_Send(ChannelID, testBuffer, sizeof(testBuffer)); + + /* Verify results */ + UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==0,"Event Count = 0"); + UtAssert_True (result == expected, + "TO_OutputChannel_Enable() did not return the correct value"); +} + + +/** + * Test TO_OutputChannel_Send() sendto fail + */ +void Test_TO_OutputChannel_Send_SendToFail(void) +{ + int32 result = 0; + int32 expected = -1; + uint8 ChannelID = 0; + char *testBuffer = "test"; + + /* Set test channel to enabled */ + TO_AppCustomData.Channel[ChannelID].Mode = TO_CHANNEL_ENABLED; + + /* Set sendto call to fail */ + TO_Platform_Stubs_Returns.TO_Wrap_SendTo_Return = -1; + /* Set errno for sendto call */ + TO_Platform_Stubs_Returns.TO_Wrap_SendTo_Errno = 1; + TO_Platform_Stubs_Returns.TO_Wrap_SendTo_Errno_Value = 8; + + /* Call the function under test */ + result = TO_OutputChannel_Send(ChannelID, testBuffer, sizeof(testBuffer)); + + /* Verify results */ + UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); + UtAssert_True(TO_AppCustomData.Channel[ChannelID].Mode == TO_CHANNEL_DISABLED, + "TO_OutputChannel_Send() did not set mode to disabled"); + UtAssert_True(result == expected, + "TO_OutputChannel_Send() did not return the correct value"); + UtAssert_EventSent(TO_TLMOUTSTOP_ERR_EID, CFE_EVS_ERROR, "", + "TO_OutputChannel_Send() failed to raise an event"); +} + + +/** + * Test TO_OutputChannel_Send() sendto fail message too long + */ +void Test_TO_OutputChannel_Send_SendToTooLong(void) +{ + int32 result = 0; + int32 expected = -1; + uint8 ChannelID = 0; + char *testBuffer = "test"; + + /* Set test channel to enabled */ + TO_AppCustomData.Channel[ChannelID].Mode = TO_CHANNEL_ENABLED; + + /* Set sendto call to fail */ + TO_Platform_Stubs_Returns.TO_Wrap_SendTo_Return = -1; + /* Set errno for sendto call */ + TO_Platform_Stubs_Returns.TO_Wrap_SendTo_Errno = 1; + /* Set errno message too long */ + TO_Platform_Stubs_Returns.TO_Wrap_SendTo_Errno_Value = 90; + + /* Call the function under test */ + result = TO_OutputChannel_Send(ChannelID, testBuffer, sizeof(testBuffer)); + + /* Verify results */ + UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); + UtAssert_True(result == expected, + "TO_OutputChannel_Send() did not return the correct value"); + UtAssert_EventSent(TO_TLMOUTSTOP_ERR_EID, CFE_EVS_ERROR, "", + "TO_OutputChannel_Send() failed to raise an event"); +} + + +/** + * Test TO_OutputChannel_Send() nominal + */ +void Test_TO_OutputChannel_Send_Nominal(void) +{ + int32 result = -1; + int32 expected = 0; + uint8 ChannelID = 0; + char *testBuffer = "test"; + + /* Set test channel to enabled */ + TO_AppCustomData.Channel[ChannelID].Mode = TO_CHANNEL_ENABLED; + + /* Call the function under test */ + result = TO_OutputChannel_Send(ChannelID, testBuffer, sizeof(testBuffer)); + + UtAssert_True(result == expected, + "TO_OutputChannel_Send() did not return the correct value"); +} + + + /************************************************************************** + * Tests for TO_OutputChannel_ChannelHandler() + **************************************************************************/ +/** + * Test TO_OutputChannel_ChannelHandler() fail OS_QueueGet + */ +void TO_OutputChannel_ChannelHandle_QueueGetFail(void) +{ + uint8 ChannelID = 0; + + /* Set test channel to enabled */ + TO_AppCustomData.Channel[ChannelID].Mode = TO_CHANNEL_ENABLED; + + /* Set all status returns after the first call to disabled + * NOTE: calls to TO_Channel_State sets the channel mode to + * TO_CHANNEL_DISABLED disabled after the first call + */ + TO_App_Return.TO_Channel_State_Return = TO_CHANNEL_OPENED; + TO_App_Return.TO_Channel_State_Return1 = TO_CHANNEL_CLOSED; + + /* Set OS_QueueGet to fail with OS_ERROR */ + Ut_OSAPI_SetReturnCode(UT_OSAPI_QUEUEGET_INDEX, OS_ERROR, 1); + + /* Call the function under test */ + TO_OutputChannel_ChannelHandler(ChannelID); + + /* Verify results */ + UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); + UtAssert_EventSent(TO_OSQUEUE_GET_ERROR_EID, CFE_EVS_ERROR, "", + "TO_OutputChannel_Send() failed to raise an event"); +} + + +/** + * Test TO_OutputChannel_ChannelHandler() fail sendto + */ +void TO_OutputChannel_ChannelHandle_SendToFail(void) +{ + uint8 ChannelID = 0; + + /* Set test channel to enabled */ + TO_AppCustomData.Channel[ChannelID].Mode = TO_CHANNEL_ENABLED; + + /* Set sendto call to fail */ + TO_Platform_Stubs_Returns.TO_Wrap_SendTo_Return = -1; + + /* Set all status returns after the first call to disabled + * NOTE: calls to TO_Channel_State sets the channel mode to + * TO_CHANNEL_DISABLED disabled after the first call + */ + TO_App_Return.TO_Channel_State_Return = TO_CHANNEL_OPENED; + TO_App_Return.TO_Channel_State_Return1 = TO_CHANNEL_CLOSED; + + /* Call the function under test */ + TO_OutputChannel_ChannelHandler(ChannelID); + + /* Verify results */ + /* Events sendto error and disable channel info message */ + UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==2,"Event Count = 2"); + UtAssert_EventSent(TO_TLMOUTSTOP_ERR_EID, CFE_EVS_ERROR, "", + "TO_OutputChannel_Send() failed to raise an event"); + UtAssert_EventSent(TO_CMD_INF_EID, CFE_EVS_INFORMATION, "", + "TO_OutputChannel_Send() failed to raise an event"); +} + + +/** + * Test TO_OutputChannel_ChannelHandler() fail CFE_ES_PutPoolBuf() + */ +void TO_OutputChannel_ChannelHandle_PutPoolBufFail(void) +{ + uint8 ChannelID = 0; + + /* Set CFE_ES_PutPoolBuf to fail */ + Ut_CFE_ES_SetReturnCode(UT_CFE_ES_PUTPOOLBUF_INDEX, -1, 1); + + /* Set test channel to enabled */ + TO_AppCustomData.Channel[ChannelID].Mode = TO_CHANNEL_ENABLED; + + /* Set all status returns after the first call to disabled + * NOTE: calls to TO_Channel_State sets the channel mode to + * TO_CHANNEL_DISABLED disabled after the first call + */ + TO_App_Return.TO_Channel_State_Return = TO_CHANNEL_OPENED; + TO_App_Return.TO_Channel_State_Return1 = TO_CHANNEL_CLOSED; + + /* Call the function under test */ + TO_OutputChannel_ChannelHandler(ChannelID); + + /* Verify results */ + /* Events sendto error and disable channel info message */ + UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); + UtAssert_EventSent(TO_PUT_POOL_ERR_EID, CFE_EVS_ERROR, "", + "TO_OutputChannel_Send() failed to raise an event"); +} + +/** + * Test TO_OutputChannel_ChannelHandler() OS_QUEUE_TIMEOUT + */ +void TO_OutputChannel_ChannelHandle_OSQueueTimeout(void) +{ + uint8 ChannelID = 0; + + /* Set OS_QueueGet to fail with OS_QUEUE_TIMEOUT */ + Ut_OSAPI_SetReturnCode(UT_OSAPI_QUEUEGET_INDEX, OS_QUEUE_TIMEOUT, 1); + + /* Set test channel to enabled */ + TO_AppCustomData.Channel[ChannelID].Mode = TO_CHANNEL_ENABLED; + + /* Set all status returns after the first call to disabled + * NOTE: calls to TO_Channel_State sets the channel mode to + * TO_CHANNEL_DISABLED disabled after the first call + */ + TO_App_Return.TO_Channel_State_Return = TO_CHANNEL_OPENED; + TO_App_Return.TO_Channel_State_Return1 = TO_CHANNEL_CLOSED; + + /* Call the function under test */ + TO_OutputChannel_ChannelHandler(ChannelID); + + /* Verify results */ + /* Events sendto error and disable channel info message */ + UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==0,"Event Count = 0"); +} + + + /************************************************************************** + * Tests for TO_OutputChannel_ProcessNewCustomCmds() + **************************************************************************/ +/** + * Test TO_OutputChannel_ProcessNewCustomCmds() invalid message length + * enable channel command code + */ +void TO_OutputChannel_ProcessNewCustomCmds_EnableInvalidMessageLength(void) +{ + /* Wrong type to create incorrect size condition */ + TO_DisableChannelCmd_t InMsg; + + CFE_SB_InitMsg(&InMsg, TO_CMD_MID, sizeof(InMsg), TRUE); + + CFE_SB_SetCmdCode((CFE_SB_MsgPtr_t)&InMsg, TO_ENABLE_CHANNEL_CC); + + /* Set get command code function hook */ + Ut_CFE_SB_SetFunctionHook(UT_CFE_SB_GETCMDCODE_INDEX, &Ut_CFE_SB_GetCmdCodeHook); + + /* Call the function under test */ + TO_OutputChannel_ProcessNewCustomCmds((CFE_SB_Msg_t*)&InMsg); + + /* Verify results */ + UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); + UtAssert_True(TO_AppData.HkTlm.usCmdErrCnt == 1,"CmdErrCnt not incremented"); + UtAssert_EventSent(TO_MSG_LEN_ERR_EID, CFE_EVS_ERROR, "", + "TO_OutputChannel_ProcessNewCustomCmds() failed to raise an event"); +} + + +/** + * Test TO_OutputChannel_ProcessNewCustomCmds() invalid message length + * disable channel command code + */ +void TO_OutputChannel_ProcessNewCustomCmds_DisableInvalidMessageLength(void) +{ + /* Wrong type to create incorrect size condition */ + TO_EnableChannelCmd_t InMsg; + + CFE_SB_InitMsg(&InMsg, TO_CMD_MID, sizeof(InMsg), TRUE); + + CFE_SB_SetCmdCode((CFE_SB_MsgPtr_t)&InMsg, TO_DISABLE_CHANNEL_CC); + + /* Set get command code function hook */ + Ut_CFE_SB_SetFunctionHook(UT_CFE_SB_GETCMDCODE_INDEX, &Ut_CFE_SB_GetCmdCodeHook); + + /* Call the function under test */ + TO_OutputChannel_ProcessNewCustomCmds((CFE_SB_Msg_t*)&InMsg); + + /* Verify results */ + UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); + UtAssert_True(TO_AppData.HkTlm.usCmdErrCnt == 1,"CmdErrCnt not incremented"); + UtAssert_EventSent(TO_MSG_LEN_ERR_EID, CFE_EVS_ERROR, "", + "TO_OutputChannel_ProcessNewCustomCmds() failed to raise an event"); +} + + +/** + * Test TO_OutputChannel_ProcessNewCustomCmds() invalid command code + */ +void TO_OutputChannel_ProcessNewCustomCmds_InvalidCommandCode(void) +{ + /* Create an invalid command code */ + uint8 InvalidCommandCode = 100; + + /* Wrong type to create incorrect size condition */ + TO_EnableChannelCmd_t InMsg; + + CFE_SB_InitMsg(&InMsg, TO_CMD_MID, sizeof(InMsg), TRUE); + + /* Set invalid command code */ + CFE_SB_SetCmdCode((CFE_SB_MsgPtr_t)&InMsg, InvalidCommandCode); + + /* Set get command code function hook */ + Ut_CFE_SB_SetFunctionHook(UT_CFE_SB_GETCMDCODE_INDEX, &Ut_CFE_SB_GetCmdCodeHook); + + /* Call the function under test */ + TO_OutputChannel_ProcessNewCustomCmds((CFE_SB_Msg_t*)&InMsg); + + /* Verify results */ + UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); + UtAssert_True(TO_AppData.HkTlm.usCmdErrCnt == 1,"CmdErrCnt not incremented"); + UtAssert_EventSent(TO_CC_ERR_EID, CFE_EVS_ERROR, "", + "TO_OutputChannel_ProcessNewCustomCmds() failed to raise an event"); +} + + +/** + * Test TO_OutputChannel_ProcessNewCustomCmds() enable fail + */ +void TO_OutputChannel_ProcessNewCustomCmds_EnableFail(void) +{ + TO_EnableChannelCmd_t InMsg; + + CFE_SB_InitMsg(&InMsg, TO_CMD_MID, sizeof(InMsg), TRUE); + + /* Set command code */ + CFE_SB_SetCmdCode((CFE_SB_MsgPtr_t)&InMsg, TO_ENABLE_CHANNEL_CC); + + /* Set get command code function hook */ + Ut_CFE_SB_SetFunctionHook(UT_CFE_SB_GETCMDCODE_INDEX, &Ut_CFE_SB_GetCmdCodeHook); + + /* Set socket create to fail */ + TO_Platform_Stubs_Returns.TO_Wrap_Socket_Return = -1; + + /* Call the function under test */ + TO_OutputChannel_ProcessNewCustomCmds((CFE_SB_Msg_t*)&InMsg); + + /* Verify results */ + UtAssert_True(TO_AppData.HkTlm.usCmdErrCnt == 1,"CmdErrCnt not incremented"); + UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); + UtAssert_EventSent(TO_TLMOUTSOCKET_ERR_EID, CFE_EVS_ERROR, "", + "TO_OutputChannel_Enable() failed to raise an event"); +} + + +/** + * Test TO_OutputChannel_ProcessNewCustomCmds() disable fail + */ +void TO_OutputChannel_ProcessNewCustomCmds_DisableFail(void) +{ + TO_DisableChannelCmd_t InMsg; + + CFE_SB_InitMsg(&InMsg, TO_CMD_MID, sizeof(InMsg), TRUE); + + /* Set command code */ + CFE_SB_SetCmdCode((CFE_SB_MsgPtr_t)&InMsg, TO_DISABLE_CHANNEL_CC); + + /* Set get command code function hook */ + Ut_CFE_SB_SetFunctionHook(UT_CFE_SB_GETCMDCODE_INDEX, &Ut_CFE_SB_GetCmdCodeHook); + + + /* Call the function under test */ + TO_OutputChannel_ProcessNewCustomCmds((CFE_SB_Msg_t*)&InMsg); + + /* Verify results */ + UtAssert_True(TO_AppData.HkTlm.usCmdErrCnt == 1,"CmdErrCnt not incremented"); + UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); + UtAssert_EventSent(TO_TLMOUTDIS_ERR_EID, CFE_EVS_ERROR, "", + "TO_OutputChannel_Disable() failed to raise an event"); +} + + +/** + * Test TO_OutputChannel_ProcessNewCustomCmds() enable nominal + */ +void TO_OutputChannel_ProcessNewCustomCmds_EnableNominal(void) +{ + TO_EnableChannelCmd_t InMsg; + + CFE_SB_InitMsg(&InMsg, TO_CMD_MID, sizeof(InMsg), TRUE); + + /* Set command code */ + CFE_SB_SetCmdCode((CFE_SB_MsgPtr_t)&InMsg, TO_ENABLE_CHANNEL_CC); + + /* Set get command code function hook */ + Ut_CFE_SB_SetFunctionHook(UT_CFE_SB_GETCMDCODE_INDEX, &Ut_CFE_SB_GetCmdCodeHook); + + /* Call the function under test */ + TO_OutputChannel_ProcessNewCustomCmds((CFE_SB_Msg_t*)&InMsg); + + /* Verify results */ + UtAssert_True(TO_AppData.HkTlm.usCmdCnt == 1,"usCmdCnt not incremented"); + UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); + UtAssert_EventSent(TO_TLMOUTENA_INF_EID, CFE_EVS_INFORMATION, "", + "TO_OutputChannel_Enable() failed to raise an event"); +} + + +/** + * Test TO_OutputChannel_ProcessNewCustomCmds() disable nominal + */ +void TO_OutputChannel_ProcessNewCustomCmds_DisableNominal(void) +{ + uint8 ChannelID = 0; + TO_DisableChannelCmd_t InMsg; + + /* Set to enabled for TO_OutputChannel_Disable can set to + * disabled + */ + TO_AppCustomData.Channel[ChannelID].Mode = TO_CHANNEL_ENABLED; + + CFE_SB_InitMsg(&InMsg, TO_CMD_MID, sizeof(InMsg), TRUE); + + /* Set command code */ + CFE_SB_SetCmdCode((CFE_SB_MsgPtr_t)&InMsg, TO_DISABLE_CHANNEL_CC); + + /* Set get command code function hook */ + Ut_CFE_SB_SetFunctionHook(UT_CFE_SB_GETCMDCODE_INDEX, &Ut_CFE_SB_GetCmdCodeHook); + + + /* Call the function under test */ + TO_OutputChannel_ProcessNewCustomCmds((CFE_SB_Msg_t*)&InMsg); + + /* Verify results */ + UtAssert_True(TO_AppData.HkTlm.usCmdCnt == 1,"usCmdCnt not incremented"); + UtAssert_True(TO_AppCustomData.Channel[ChannelID].Mode == TO_CHANNEL_DISABLED, + "TO_OutputChannel_Disable did not set correct mode"); + UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); + UtAssert_EventSent(TO_TLMOUTDIS_INF_EID, CFE_EVS_INFORMATION, "", + "TO_OutputChannel_Disable() failed to raise an event"); +} + + /************************************************************************** + * Tests for TO_OutputChannel_UDPChannelTask() + **************************************************************************/ +/** + * Test TO_OutputChannel_UDPChannelTask() + * Note: currently there is no way to fail this function + */ +void TO_OutputChannel_UDPChannelTask_Nominal(void) +{ + TO_OutputChannel_UDPChannelTask(); +} + + + /************************************************************************** + * Tests for TO_OutputChannel_CustomCleanupAll() + **************************************************************************/ +/** + * Test TO_OutputChannel_CustomCleanupAll() nominal + * Note: currently there is no way to fail this function + */ +void TO_OutputChannel_CustomCleanupAll_Nominal(void) +{ + uint8 ChannelID = 0; + TO_AppCustomData.Channel[ChannelID].Mode = TO_CHANNEL_ENABLED; + + /* Call the function under test */ + TO_OutputChannel_CustomCleanupAll(); + + /* Verify results */ + UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); + UtAssert_EventSent(TO_TLMOUTDIS_INF_EID, CFE_EVS_INFORMATION, "", + "TO_OutputChannel_Disable() failed to raise an event"); +} + + + /************************************************************************** + * Tests for TO_OutputChannel_Disable() + **************************************************************************/ + +/** + * Test TO_OutputChannel_Disable() nominal + */ +void TO_OutputChannel_Disable_Fail(void) +{ + int32 result = 0; + int32 expected = -1; + uint8 ChannelID = 0; + + /* Call the function under test */ + result = TO_OutputChannel_Disable(ChannelID); + + /* Verify results */ + UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); + UtAssert_EventSent(TO_TLMOUTDIS_ERR_EID, CFE_EVS_ERROR, "", + "TO_OutputChannel_Disable() failed to raise an event"); + UtAssert_True(result == expected, + "TO_OutputChannel_Disable() did not return the correct value"); + +} + + +/** + * Test TO_OutputChannel_Disable() nominal + */ +void TO_OutputChannel_Disable_Nominal(void) +{ + int32 result = -1; + int32 expected = 0; + uint8 ChannelID = 0; + + TO_AppCustomData.Channel[ChannelID].Mode = TO_CHANNEL_ENABLED; + + /* Call the function under test */ + result = TO_OutputChannel_Disable(ChannelID); + + /* Verify results */ + UtAssert_True(Ut_CFE_EVS_GetEventQueueDepth()==1,"Event Count = 1"); + UtAssert_EventSent(TO_TLMOUTDIS_INF_EID, CFE_EVS_INFORMATION, "", + "TO_OutputChannel_Disable() failed to raise an event"); + UtAssert_True(result == expected, + "TO_OutputChannel_Disable() did not return the correct value"); + +} + + + /************************************************************************** + * Test Rollup + **************************************************************************/ +void TO_Custom_App_Test_AddTestCases(void) +{ + UtTest_Add(TO_Custom_Init_OpenChannelFail, + TO_Custom_Test_Setup, TO_Custom_Test_TearDown, + "TO_Custom_Init_OpenChannelFail"); + UtTest_Add(TO_Custom_Init_EnableChannelFail, + TO_Custom_Test_Setup, TO_Custom_Test_TearDown, + "TO_Custom_Init_EnableChannelFail"); + UtTest_Add(TO_Custom_Init_Nominal, + TO_Custom_Test_Setup, TO_Custom_Test_TearDown, + "TO_Custom_Init_Nominal"); + UtTest_Add(TO_Custom_Init_NothingEnabled, + TO_Custom_Test_Setup, TO_Custom_Test_TearDown, + "TO_Custom_Init_NothingEnabled"); + UtTest_Add(Test_TO_OutputChannel_CustomBuildupAll_Nominal, + TO_Custom_Test_Setup, TO_Custom_Test_TearDown, + "Test_TO_OutputChannel_CustomBuildupAll_Nominal"); + UtTest_Add(Test_TO_OutputChannel_Enable_NullDestinationAddress, + TO_Custom_Test_Setup, TO_Custom_Test_TearDown, + "Test_TO_OutputChannel_Enable_NullDestinationAddress"); + UtTest_Add(Test_TO_OutputChannel_Enable_InvalidID, + TO_Custom_Test_Setup, TO_Custom_Test_TearDown, + "Test_TO_OutputChannel_Enable_InvalidID"); + UtTest_Add(Test_TO_OutputChannel_Enable_SocketFail, + TO_Custom_Test_Setup, TO_Custom_Test_TearDown, + "Test_TO_OutputChannel_Enable_SocketFail"); + UtTest_Add(Test_TO_OutputChannel_Enable_BindFail, + TO_Custom_Test_Setup, TO_Custom_Test_TearDown, + "Test_TO_OutputChannel_Enable_BindFail"); + UtTest_Add(Test_TO_OutputChannel_Enable_CreateChildTaskFail, + TO_Custom_Test_Setup, TO_Custom_Test_TearDown, + "Test_TO_OutputChannel_Enable_CreateChildTaskFail"); + UtTest_Add(Test_TO_OutputChannel_Enable_Nominal, + TO_Custom_Test_Setup, TO_Custom_Test_TearDown, + "Test_TO_OutputChannel_Enable_Nominal"); + UtTest_Add(Test_TO_OutputChannel_Send_InvalidID, + TO_Custom_Test_Setup, TO_Custom_Test_TearDown, + "Test_TO_OutputChannel_Send_InvalidID"); + UtTest_Add(Test_TO_OutputChannel_Send_SendToFail, + TO_Custom_Test_Setup, TO_Custom_Test_TearDown, + "Test_TO_OutputChannel_Send_SendToFail"); + UtTest_Add(Test_TO_OutputChannel_Send_SendToTooLong, + TO_Custom_Test_Setup, TO_Custom_Test_TearDown, + "Test_TO_OutputChannel_Send_SendToTooLong"); + UtTest_Add(Test_TO_OutputChannel_Send_Nominal, + TO_Custom_Test_Setup, TO_Custom_Test_TearDown, + "Test_TO_OutputChannel_Send_Nominal"); + UtTest_Add(TO_OutputChannel_ChannelHandle_QueueGetFail, + TO_Custom_Test_Setup, TO_Custom_Test_TearDown, + "TO_OutputChannel_ChannelHandle_QueueGetFail"); + //UtTest_Add(TO_OutputChannel_ChannelHandle_SendToFail, + // TO_Custom_Test_Setup, TO_Custom_Test_TearDown, + // "TO_OutputChannel_ChannelHandle_SendToFail"); + //UtTest_Add(TO_OutputChannel_ChannelHandle_PutPoolBufFail, + // TO_Custom_Test_Setup, TO_Custom_Test_TearDown, + // "TO_OutputChannel_ChannelHandle_PutPoolBufFail"); + UtTest_Add(TO_OutputChannel_ChannelHandle_OSQueueTimeout, + TO_Custom_Test_Setup, TO_Custom_Test_TearDown, + "TO_OutputChannel_ChannelHandle_OSQueueTimeout"); + UtTest_Add(TO_OutputChannel_ProcessNewCustomCmds_EnableInvalidMessageLength, + TO_Custom_Test_Setup, TO_Custom_Test_TearDown, + "TO_OutputChannel_ProcessNewCustomCmds_EnableInvalidMessageLength"); + UtTest_Add(TO_OutputChannel_ProcessNewCustomCmds_DisableInvalidMessageLength, + TO_Custom_Test_Setup, TO_Custom_Test_TearDown, + "TO_OutputChannel_ProcessNewCustomCmds_DisableInvalidMessageLength"); + UtTest_Add(TO_OutputChannel_ProcessNewCustomCmds_InvalidCommandCode, + TO_Custom_Test_Setup, TO_Custom_Test_TearDown, + "TO_OutputChannel_ProcessNewCustomCmds_InvalidCommandCode"); + UtTest_Add(TO_OutputChannel_ProcessNewCustomCmds_EnableFail, + TO_Custom_Test_Setup, TO_Custom_Test_TearDown, + "TO_OutputChannel_ProcessNewCustomCmds_EnableFail"); + UtTest_Add(TO_OutputChannel_ProcessNewCustomCmds_DisableFail, + TO_Custom_Test_Setup, TO_Custom_Test_TearDown, + "TO_OutputChannel_ProcessNewCustomCmds_DisableFail"); + UtTest_Add(TO_OutputChannel_ProcessNewCustomCmds_EnableNominal, + TO_Custom_Test_Setup, TO_Custom_Test_TearDown, + "TO_OutputChannel_ProcessNewCustomCmds_EnableNominal"); + UtTest_Add(TO_OutputChannel_ProcessNewCustomCmds_DisableNominal, + TO_Custom_Test_Setup, TO_Custom_Test_TearDown, + "TO_OutputChannel_ProcessNewCustomCmds_DisableNominal"); + UtTest_Add(TO_OutputChannel_UDPChannelTask_Nominal, + TO_Custom_Test_Setup, TO_Custom_Test_TearDown, + "TO_OutputChannel_UDPChannelTask_Nominal"); + UtTest_Add(TO_OutputChannel_CustomCleanupAll_Nominal, + TO_Custom_Test_Setup, TO_Custom_Test_TearDown, + "TO_OutputChannel_CustomCleanupAll_Nominal"); + UtTest_Add(TO_OutputChannel_Disable_Fail, + TO_Custom_Test_Setup, TO_Custom_Test_TearDown, + "TO_OutputChannel_Disable_Fail"); + UtTest_Add(TO_OutputChannel_Disable_Nominal, + TO_Custom_Test_Setup, TO_Custom_Test_TearDown, + "TO_OutputChannel_Disable_Nominal"); +} diff --git a/config/obc/sitl/target/apps/to/unit_test/to_app_custom_test.h b/config/obc/sitl/target/apps/to/unit_test/to_app_custom_test.h new file mode 100644 index 000000000..941bef57d --- /dev/null +++ b/config/obc/sitl/target/apps/to/unit_test/to_app_custom_test.h @@ -0,0 +1,55 @@ +/**************************************************************************** +* +* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions +* are met: +* +* 1. Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* 2. Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in +* the documentation and/or other materials provided with the +* distribution. +* 3. Neither the name Windhover Labs nor the names of its +* contributors may be used to endorse or promote products derived +* from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS +* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED +* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +* POSSIBILITY OF SUCH DAMAGE. +* +*****************************************************************************/ + +#ifndef TO_APP_CUSTOM_TEST_H +#define TO_APP_CUSTOM_TEST_H + +#ifdef __cplusplus +extern "C" { +#endif + +/* + * Includes + */ + +#include "to_custom_test_utils.h" + + +void TO_Custom_App_Test_AddTestCases(void); + + +#ifdef __cplusplus +} +#endif + +#endif /* TO_APP_CUSTOM_TEST_H */ diff --git a/config/obc/sitl/target/apps/to/unit_test/to_app_stubs.c b/config/obc/sitl/target/apps/to/unit_test/to_app_stubs.c new file mode 100644 index 000000000..a43055280 --- /dev/null +++ b/config/obc/sitl/target/apps/to/unit_test/to_app_stubs.c @@ -0,0 +1,75 @@ +/**************************************************************************** +* +* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions +* are met: +* +* 1. Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* 2. Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in +* the documentation and/or other materials provided with the +* distribution. +* 3. Neither the name Windhover Labs nor the names of its +* contributors may be used to endorse or promote products derived +* from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS +* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED +* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +* POSSIBILITY OF SUCH DAMAGE. +* +*****************************************************************************/ + +#include "to_app_stubs.h" + +TO_App_Returns_t TO_App_Return = {0}; + +int32 TO_Channel_OpenChannel(uint32 index, const char *ChannelName, + const char *ConfigTableName, const char *ConfigTableFileName, + TO_ChannelTbl_t *BackupTblPtr, const char *DumpTableName, + const uint32 CfCntSemMax, const char *CfCntSemName) +{ + return TO_App_Return.TO_Channel_OpenChannel_Return; +} + + +void TO_Channel_LockByIndex(uint16 index) +{ + +} + + +void TO_Channel_UnlockByIndex(uint16 index) +{ + +} + + +uint8 TO_Channel_State(uint16 index) +{ + uint8 returnCode = 0; + + if(0 == TO_App_Return.TO_Channel_State_CallCount) + { + returnCode = TO_App_Return.TO_Channel_State_Return; + } + else + { + TO_AppCustomData.Channel[0].Mode = TO_CHANNEL_DISABLED; + returnCode = TO_App_Return.TO_Channel_State_Return1; + } + TO_App_Return.TO_Channel_State_CallCount++; + return returnCode; +} + diff --git a/config/obc/sitl/target/apps/to/unit_test/to_app_stubs.h b/config/obc/sitl/target/apps/to/unit_test/to_app_stubs.h new file mode 100644 index 000000000..8ee03bf3c --- /dev/null +++ b/config/obc/sitl/target/apps/to/unit_test/to_app_stubs.h @@ -0,0 +1,82 @@ +/**************************************************************************** +* +* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions +* are met: +* +* 1. Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* 2. Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in +* the documentation and/or other materials provided with the +* distribution. +* 3. Neither the name Windhover Labs nor the names of its +* contributors may be used to endorse or promote products derived +* from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS +* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED +* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +* POSSIBILITY OF SUCH DAMAGE. +* +*****************************************************************************/ + +#ifndef TO_APP_STUBS_H +#define TO_APP_STUBS_H + +#ifdef __cplusplus +extern "C" { +#endif + +/************************************************************************ +** Includes +*************************************************************************/ +#include "cfe.h" +#include "to_custom_test_utils.h" + +/************************************************************************ +** Structure Declarations +*************************************************************************/ +typedef struct +{ + int32 TO_Channel_OpenChannel_Return; + uint8 TO_Channel_State_Return; + uint8 TO_Channel_State_Return1; + uint8 TO_Channel_State_CallCount; +} TO_App_Returns_t; + +/************************************************************************ +** External Global Variables +*************************************************************************/ +extern TO_App_Returns_t TO_App_Return; + +/************************************************************************ +** Function Prototypes (Stubs) +*************************************************************************/ +int32 TO_Channel_OpenChannel(uint32 index, const char *ChannelName, + const char *ConfigTableName, const char *ConfigTableFileName, + TO_ChannelTbl_t *BackupTblPtr, const char *DumpTableName, + const uint32 CfCntSemMax, const char *CfCntSemName); + +void TO_Channel_LockByIndex(uint16 index); + +void TO_Channel_UnlockByIndex(uint16 index); + +uint8 TO_Channel_State(uint16 index); + + +#ifdef __cplusplus +} +#endif + +#endif /* TO_APP_STUBS_H */ diff --git a/config/obc/sitl/target/apps/to/unit_test/to_custom_test_utils.c b/config/obc/sitl/target/apps/to/unit_test/to_custom_test_utils.c new file mode 100644 index 000000000..8f5c59fc0 --- /dev/null +++ b/config/obc/sitl/target/apps/to/unit_test/to_custom_test_utils.c @@ -0,0 +1,77 @@ +/**************************************************************************** +* +* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions +* are met: +* +* 1. Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* 2. Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in +* the documentation and/or other materials provided with the +* distribution. +* 3. Neither the name Windhover Labs nor the names of its +* contributors may be used to endorse or promote products derived +* from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS +* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED +* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +* POSSIBILITY OF SUCH DAMAGE. +* +*****************************************************************************/ + +#include "to_custom_test_utils.h" +#include "to_platform_stubs.h" + +#include "ut_cfe_evs_hooks.h" +#include "ut_cfe_time_stubs.h" +#include "ut_cfe_psp_memutils_stubs.h" +#include "ut_cfe_tbl_stubs.h" +#include "ut_cfe_tbl_hooks.h" +#include "ut_cfe_fs_stubs.h" +#include "ut_cfe_time_stubs.h" +#include "ut_osapi_stubs.h" +#include "ut_osfileapi_stubs.h" +#include "ut_cfe_sb_stubs.h" +#include "ut_cfe_es_stubs.h" +#include "ut_cfe_evs_stubs.h" + +#include + +/* + * Function Definitions + */ + +void TO_Custom_Test_Setup(void) +{ + /* initialize test environment to default state for every test */ + CFE_PSP_MemSet(&TO_AppData, 0x00, sizeof(TO_AppData)); + CFE_PSP_MemSet(&TO_AppCustomData, 0x00, sizeof(TO_AppCustomData_t)); + CFE_PSP_MemSet(&TO_App_Return, 0x00, sizeof(TO_App_Return)); + CFE_PSP_MemSet(&TO_Platform_Stubs_Returns, 0x00, sizeof(TO_Platform_Stubs_Returns)); + + Ut_CFE_EVS_Reset(); + Ut_CFE_FS_Reset(); + Ut_CFE_TIME_Reset(); + Ut_CFE_TBL_Reset(); + Ut_CFE_SB_Reset(); + Ut_CFE_ES_Reset(); + Ut_OSAPI_Reset(); + Ut_OSFILEAPI_Reset(); +} + +void TO_Custom_Test_TearDown(void) +{ + +} diff --git a/config/obc/sitl/target/apps/to/unit_test/to_custom_test_utils.h b/config/obc/sitl/target/apps/to/unit_test/to_custom_test_utils.h new file mode 100644 index 000000000..f86f57d06 --- /dev/null +++ b/config/obc/sitl/target/apps/to/unit_test/to_custom_test_utils.h @@ -0,0 +1,63 @@ +/**************************************************************************** +* +* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions +* are met: +* +* 1. Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* 2. Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in +* the documentation and/or other materials provided with the +* distribution. +* 3. Neither the name Windhover Labs nor the names of its +* contributors may be used to endorse or promote products derived +* from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS +* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED +* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +* POSSIBILITY OF SUCH DAMAGE. +* +*****************************************************************************/ + +#ifndef TO_CUSTOM_TEST_UTILS_H +#define TO_CUSTOM_TEST_UTILS_H + +/* + * Includes + */ + +#include "to_custom_udp.h" +#include "to_app_stubs.h" + + +extern TO_AppCustomData_t TO_AppCustomData; + +#ifdef __cplusplus +extern "C" { +#endif + +/* + * Function Definitions + */ + +void TO_Custom_Test_Setup(void); +void TO_Custom_Test_TearDown(void); + + +#ifdef __cplusplus +} +#endif + +#endif /* TO_CUSTOM_TEST_UTILS_H */ diff --git a/config/obc/sitl/target/apps/to/unit_test/to_custom_testrunner.c b/config/obc/sitl/target/apps/to/unit_test/to_custom_testrunner.c new file mode 100644 index 000000000..021ae11bc --- /dev/null +++ b/config/obc/sitl/target/apps/to/unit_test/to_custom_testrunner.c @@ -0,0 +1,52 @@ +/**************************************************************************** +* +* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions +* are met: +* +* 1. Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* 2. Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in +* the documentation and/or other materials provided with the +* distribution. +* 3. Neither the name Windhover Labs nor the names of its +* contributors may be used to endorse or promote products derived +* from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS +* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED +* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +* POSSIBILITY OF SUCH DAMAGE. +* +*****************************************************************************/ + +#include "uttest.h" + +#include "to_app_custom_test.h" + +TO_AppData_t TO_AppData; + +extern int enable_wrappers; + +int main(void) +{ + int testResults = 0; + enable_wrappers = 1; + TO_Custom_App_Test_AddTestCases(); + testResults = UtTest_Run(); + + enable_wrappers = 0; + + return testResults; +} diff --git a/config/obc/sitl/target/apps/to/unit_test/to_platform_stubs.c b/config/obc/sitl/target/apps/to/unit_test/to_platform_stubs.c new file mode 100644 index 000000000..db2ffbec7 --- /dev/null +++ b/config/obc/sitl/target/apps/to/unit_test/to_platform_stubs.c @@ -0,0 +1,105 @@ +/**************************************************************************** +* +* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions +* are met: +* +* 1. Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* 2. Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in +* the documentation and/or other materials provided with the +* distribution. +* 3. Neither the name Windhover Labs nor the names of its +* contributors may be used to endorse or promote products derived +* from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS +* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED +* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +* POSSIBILITY OF SUCH DAMAGE. +* +*****************************************************************************/ + +#include +#include + +#include "to_platform_stubs.h" + + +int enable_wrappers = 0; + +int __real_socket(int domain, int type, int protocol); +int __real_bind(int sockfd, const struct sockaddr *addr, socklen_t addrlen); +int __real_sendto(int sockfd, const void *buf, size_t len, int flags, + const struct sockaddr *dest_addr, socklen_t addrlen); + +TO_Platform_Stubs_Returns_t TO_Platform_Stubs_Returns = {0}; + + +int __wrap_socket(int domain, int type, int protocol) +{ + int returnCode = 0; + if(enable_wrappers == 0) + { + returnCode = __real_socket(domain, type, protocol); + } + else + { + if (TO_Platform_Stubs_Returns.TO_Wrap_Socket_Errno) + { + errno = TO_Platform_Stubs_Returns.TO_Wrap_Socket_Errno_Value; + } + returnCode = TO_Platform_Stubs_Returns.TO_Wrap_Socket_Return; + } + return returnCode; +} + + +int __wrap_bind(int sockfd, const struct sockaddr *addr, socklen_t addrlen) +{ + int returnCode = 0; + if(enable_wrappers == 0) + { + returnCode = __real_bind(sockfd, addr, addrlen); + } + else + { + if (TO_Platform_Stubs_Returns.TO_Wrap_Bind_Errno) + { + errno = TO_Platform_Stubs_Returns.TO_Wrap_Bind_Errno_Value; + } + returnCode = TO_Platform_Stubs_Returns.TO_Wrap_Bind_Return; + } + return returnCode; +} + + +int __wrap_sendto(int sockfd, const void *buf, size_t len, int flags, + const struct sockaddr *dest_addr, socklen_t addrlen) +{ + int returnCode = 0; + if(enable_wrappers == 0) + { + returnCode = __real_sendto(sockfd, buf, len, flags, dest_addr, addrlen); + } + else + { + if (TO_Platform_Stubs_Returns.TO_Wrap_SendTo_Errno) + { + errno = TO_Platform_Stubs_Returns.TO_Wrap_SendTo_Errno_Value; + } + returnCode = TO_Platform_Stubs_Returns.TO_Wrap_SendTo_Return; + } + return returnCode; +} diff --git a/config/obc/sitl/target/apps/to/unit_test/to_platform_stubs.h b/config/obc/sitl/target/apps/to/unit_test/to_platform_stubs.h new file mode 100644 index 000000000..923c5cd38 --- /dev/null +++ b/config/obc/sitl/target/apps/to/unit_test/to_platform_stubs.h @@ -0,0 +1,61 @@ +/**************************************************************************** +* +* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions +* are met: +* +* 1. Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* 2. Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in +* the documentation and/or other materials provided with the +* distribution. +* 3. Neither the name Windhover Labs nor the names of its +* contributors may be used to endorse or promote products derived +* from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS +* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED +* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +* POSSIBILITY OF SUCH DAMAGE. +* +*****************************************************************************/ + +#ifndef TO_PLATFORM_STUBS_H +#define TO_PLATFORM_STUBS_H + +#ifdef __cplusplus +extern "C" { +#endif + +typedef struct +{ + int TO_Wrap_Socket_Return; + int TO_Wrap_Socket_Errno; + int TO_Wrap_Socket_Errno_Value; + int TO_Wrap_Bind_Return; + int TO_Wrap_Bind_Errno; + int TO_Wrap_Bind_Errno_Value; + int TO_Wrap_SendTo_Return; + int TO_Wrap_SendTo_Errno; + int TO_Wrap_SendTo_Errno_Value; +} TO_Platform_Stubs_Returns_t; + +extern TO_Platform_Stubs_Returns_t TO_Platform_Stubs_Returns; + + +#ifdef __cplusplus +} +#endif + +#endif /* TO_PLATFORM_STUBS_H */ diff --git a/config/obc/sitl/target/apps/to/user_doxy.in b/config/obc/sitl/target/apps/to/user_doxy.in new file mode 100644 index 000000000..506ec63b3 --- /dev/null +++ b/config/obc/sitl/target/apps/to/user_doxy.in @@ -0,0 +1,265 @@ +# Doxyfile 1.5.4 +@INCLUDE_PATH=@PROJECT_SOURCE_DIR@/apps/to/docs/dox_src/mnem_maps +@INCLUDE=cfs_to_cmd_mnem_map +@INCLUDE=cfs_to_tlm_mnem_map +#--------------------------------------------------------------------------- +# Project related configuration options +#--------------------------------------------------------------------------- +#DOXYFILE_ENCODING = UTF-8 +PROJECT_NAME = "Telemetry Output (TO) Application on @BUILD_CONFIG_NAME@ User's Guide" +PROJECT_NUMBER = +OUTPUT_DIRECTORY = @CFS_DOCS_HTML_DIR@/users_guide/apps/to +CREATE_SUBDIRS = NO +OUTPUT_LANGUAGE = English +BRIEF_MEMBER_DESC = YES +REPEAT_BRIEF = YES +ABBREVIATE_BRIEF = +ALWAYS_DETAILED_SEC = NO +INLINE_INHERITED_MEMB = NO +FULL_PATH_NAMES = YES +STRIP_FROM_PATH = @PROJECT_SOURCE_DIR@ +STRIP_FROM_INC_PATH = +SHORT_NAMES = NO +JAVADOC_AUTOBRIEF = NO +#QT_AUTOBRIEF = NO +MULTILINE_CPP_IS_BRIEF = NO +DETAILS_AT_TOP = NO +INHERIT_DOCS = YES +SEPARATE_MEMBER_PAGES = NO +TAB_SIZE = 8 +ALIASES += "event=\xrefitem cfstoevents \"Event Message\" \"Telemetry Output Event Message Cross Reference\" " +ALIASES += "retdesc= " +ALIASES += "retcode= " +ALIASES += endcode= +ALIASES += "returns=\return " +ALIASES += endreturns=
+ALIASES += "retstmt= " +ALIASES += endstmt= +ALIASES += "tocmd=\xrefitem cfstocmds \"Name\" \"Telemetry Output Commands\" " +ALIASES += "totlm=\xrefitem cfstotlm \"Name\" \"Telemetry Output Telemetry\" " +ALIASES += "tocmdmnemonic=\xrefitem cfstocmdmnems \"Command Mnemonic(s)\" \"Telemetry Output Command Mnemonic Cross Reference\" \b \c " +ALIASES += "totlmmnemonic=\xrefitem cfstotlmmnems \"Telemetry Mnemonic(s)\" \"Telemetry Output Telemetry Mnemonic Cross Reference\" \b \c " +ALIASES += "tocfg=\xrefitem cfstocfg \"Purpose\" \"Telemetry Output Configuration Parameters\" " +OPTIMIZE_OUTPUT_FOR_C = YES +OPTIMIZE_OUTPUT_JAVA = NO +BUILTIN_STL_SUPPORT = NO +#CPP_CLI_SUPPORT = NO +#SIP_SUPPORT = NO +DISTRIBUTE_GROUP_DOC = NO +SUBGROUPING = YES +#TYPEDEF_HIDES_STRUCT = NO +#--------------------------------------------------------------------------- +# Build related configuration options +#--------------------------------------------------------------------------- +EXTRACT_ALL = YES +EXTRACT_PRIVATE = YES +EXTRACT_STATIC = YES +EXTRACT_LOCAL_CLASSES = YES +EXTRACT_LOCAL_METHODS = NO +#EXTRACT_ANON_NSPACES = NO +HIDE_UNDOC_MEMBERS = NO +HIDE_UNDOC_CLASSES = NO +HIDE_FRIEND_COMPOUNDS = NO +HIDE_IN_BODY_DOCS = NO +INTERNAL_DOCS = NO +CASE_SENSE_NAMES = NO +HIDE_SCOPE_NAMES = NO +SHOW_INCLUDE_FILES = YES +INLINE_INFO = YES +SORT_MEMBER_DOCS = YES +SORT_BRIEF_DOCS = NO +SORT_BY_SCOPE_NAME = NO +GENERATE_TODOLIST = NO +GENERATE_TESTLIST = YES +GENERATE_BUGLIST = YES +GENERATE_DEPRECATEDLIST= YES +ENABLED_SECTIONS = +MAX_INITIALIZER_LINES = 30 +SHOW_USED_FILES = YES +SHOW_DIRECTORIES = YES +FILE_VERSION_FILTER = +#--------------------------------------------------------------------------- +# configuration options related to warning and progress messages +#--------------------------------------------------------------------------- +QUIET = NO +WARNINGS = YES +WARN_IF_UNDOCUMENTED = YES +WARN_IF_DOC_ERROR = YES +WARN_NO_PARAMDOC = YES +WARN_FORMAT = "$file:$line: $text " +WARN_LOGFILE = +#--------------------------------------------------------------------------- +# configuration options related to the input files +#--------------------------------------------------------------------------- +INPUT = @PROJECT_SOURCE_DIR@/apps/to/docs/dox_src/users_guide/cfs_to.dox +INPUT += @PROJECT_SOURCE_DIR@/config/shared/inc/to_mission_cfg.h +INPUT += @PROJECT_SOURCE_DIR@/config/shared/inc/to_perfids.h +INPUT += @PROJECT_SOURCE_DIR@/config/shared/inc/to_msgids.h +INPUT += @PROJECT_SOURCE_DIR@/config/@BUILD_CONFIG_NAME@/inc/to_platform_cfg.h +INPUT += @PROJECT_SOURCE_DIR@/apps/to/fsw/src/to_app.h +INPUT += @PROJECT_SOURCE_DIR@/apps/to/fsw/src/to_cds_utils.h +INPUT += @PROJECT_SOURCE_DIR@/apps/to/fsw/src/to_config_utils.h +INPUT += @PROJECT_SOURCE_DIR@/apps/to/fsw/src/to_events.h +INPUT += @PROJECT_SOURCE_DIR@/apps/to/fsw/src/to_msg.h +INPUT += @PROJECT_SOURCE_DIR@/apps/to/fsw/src/to_tbldefs.h +INPUT += @PROJECT_SOURCE_DIR@/apps/to/fsw/src/to_version.h + +#INPUT_ENCODING = UTF-8 +FILE_PATTERNS = *.c \ + *.h +RECURSIVE = YES +EXCLUDE = +EXCLUDE_SYMLINKS = NO +EXCLUDE_PATTERNS = +#EXCLUDE_SYMBOLS = +EXAMPLE_PATH = +EXAMPLE_PATTERNS = * +EXAMPLE_RECURSIVE = NO +IMAGE_PATH = "./" +IMAGE_PATH += "@PROJECT_SOURCE_DIR@/apps/to/docs/dox_src/users_guide/" +INPUT_FILTER = +FILTER_PATTERNS = +FILTER_SOURCE_FILES = NO +#--------------------------------------------------------------------------- +# configuration options related to source browsing +#--------------------------------------------------------------------------- +SOURCE_BROWSER = YES +INLINE_SOURCES = NO +STRIP_CODE_COMMENTS = YES +REFERENCED_BY_RELATION = YES +REFERENCES_RELATION = YES +REFERENCES_LINK_SOURCE = YES +USE_HTAGS = NO +VERBATIM_HEADERS = YES +#--------------------------------------------------------------------------- +# configuration options related to the alphabetical class index +#--------------------------------------------------------------------------- +ALPHABETICAL_INDEX = YES +COLS_IN_ALPHA_INDEX = 5 +IGNORE_PREFIX = +#--------------------------------------------------------------------------- +# configuration options related to the HTML output +#--------------------------------------------------------------------------- +GENERATE_HTML = YES +HTML_OUTPUT = @CFS_DOCS_HTML_DIR@/users_guide/apps/to +HTML_FILE_EXTENSION = .html +HTML_HEADER = +HTML_FOOTER = +HTML_STYLESHEET = +HTML_ALIGN_MEMBERS = YES +GENERATE_HTMLHELP = NO +#HTML_DYNAMIC_SECTIONS = NO +CHM_FILE = CFS_Help.chm +HHC_LOCATION = "C:/Program Files/HTML Help Workshop/hhc.exe" +GENERATE_CHI = NO +BINARY_TOC = NO +TOC_EXPAND = NO +DISABLE_INDEX = NO +ENUM_VALUES_PER_LINE = 4 +GENERATE_TREEVIEW = NO +TREEVIEW_WIDTH = 250 +#--------------------------------------------------------------------------- +# configuration options related to the LaTeX output +#--------------------------------------------------------------------------- +GENERATE_LATEX = YES +LATEX_OUTPUT = @CFS_DOCS_LATEX_DIR@/users_guide/apps/to +LATEX_CMD_NAME = latex +MAKEINDEX_CMD_NAME = makeindex +COMPACT_LATEX = YES +PAPER_TYPE = letter +EXTRA_PACKAGES = +LATEX_HEADER = +PDF_HYPERLINKS = YES +USE_PDFLATEX = YES +LATEX_BATCHMODE = NO +LATEX_HIDE_INDICES = NO +#--------------------------------------------------------------------------- +# configuration options related to the RTF output +#--------------------------------------------------------------------------- +GENERATE_RTF = NO +RTF_OUTPUT = @CFS_DOCS_DIR@/users_guide/rtf/apps/to +COMPACT_RTF = YES +RTF_HYPERLINKS = NO +RTF_STYLESHEET_FILE = +RTF_EXTENSIONS_FILE = +#--------------------------------------------------------------------------- +# configuration options related to the man page output +#--------------------------------------------------------------------------- +GENERATE_MAN = NO +MAN_OUTPUT = man +MAN_EXTENSION = .3 +MAN_LINKS = NO +#--------------------------------------------------------------------------- +# configuration options related to the XML output +#--------------------------------------------------------------------------- +GENERATE_XML = NO +XML_OUTPUT = xml +XML_SCHEMA = +XML_DTD = +XML_PROGRAMLISTING = YES +#--------------------------------------------------------------------------- +# configuration options for the AutoGen Definitions output +#--------------------------------------------------------------------------- +GENERATE_AUTOGEN_DEF = NO +#--------------------------------------------------------------------------- +# configuration options related to the Perl module output +#--------------------------------------------------------------------------- +GENERATE_PERLMOD = NO +PERLMOD_LATEX = NO +PERLMOD_PRETTY = YES +PERLMOD_MAKEVAR_PREFIX = +#--------------------------------------------------------------------------- +# Configuration options related to the preprocessor +#--------------------------------------------------------------------------- +ENABLE_PREPROCESSING = YES +MACRO_EXPANSION = NO +EXPAND_ONLY_PREDEF = NO +SEARCH_INCLUDES = YES +INCLUDE_PATH = +INCLUDE_FILE_PATTERNS = +PREDEFINED = __PPC__ \ + MESSAGE_FORMAT_IS_CCSDS \ + CFE_TIME_CFG_SRC_TIME \ + CFE_TIME_CFG_SRC_GPS \ + CFE_TIME_CFG_SRC_MET +EXPAND_AS_DEFINED = +SKIP_FUNCTION_MACROS = YES +#--------------------------------------------------------------------------- +# Configuration::additions related to external references +#--------------------------------------------------------------------------- +TAGFILES = @CFS_DOCS_HTML_DIR@/detailed_design/cfe/cfe.tag=../../../cfe/detailed_design/ +GENERATE_TAGFILE = @CFS_DOCS_HTML_DIR@/users_guide/apps/to/to.tag +ALLEXTERNALS = NO +EXTERNAL_GROUPS = YES +PERL_PATH = /usr/bin/perl +#--------------------------------------------------------------------------- +# Configuration options related to the dot tool +#--------------------------------------------------------------------------- +CLASS_DIAGRAMS = NO +#MSCGEN_PATH = +HIDE_UNDOC_RELATIONS = YES +HAVE_DOT = YES +CLASS_GRAPH = NO +COLLABORATION_GRAPH = NO +GROUP_GRAPHS = YES +UML_LOOK = NO +TEMPLATE_RELATIONS = NO +INCLUDE_GRAPH = NO +INCLUDED_BY_GRAPH = NO +CALL_GRAPH = YES +CALLER_GRAPH = NO +GRAPHICAL_HIERARCHY = NO +DIRECTORY_GRAPH = YES +DOT_IMAGE_FORMAT = png +DOT_PATH = +DOTFILE_DIRS = +#DOT_GRAPH_MAX_NODES = 50 +MAX_DOT_GRAPH_DEPTH = 1000 +DOT_TRANSPARENT = NO +DOT_MULTI_TARGETS = NO +GENERATE_LEGEND = YES +DOT_CLEANUP = YES +#--------------------------------------------------------------------------- +# Configuration::additions related to the search engine +#--------------------------------------------------------------------------- +SEARCHENGINE = NO diff --git a/config/obc/sitl/target/cfe_es_startup.scr b/config/obc/sitl/target/cfe_es_startup.scr new file mode 100644 index 000000000..dfdbe6076 --- /dev/null +++ b/config/obc/sitl/target/cfe_es_startup.scr @@ -0,0 +1,49 @@ +CFE_LIB, /cf/apps/CFS_LIB.so, CFS_LibInit, CFS_LIB, 0, 0, 0x0, 0, 2; +CFE_LIB, /cf/apps/PRMLIB.so, PRMLIB_LibInit, PRMLIB, 0, 0, 0x0, 0, 2; +CFE_LIB, /cf/apps/PX4LIB.so, PX4LIB_LibInit, PX4LIB, 0, 0, 0x0, 0, 2; +CFE_APP, /cf/apps/CI.so, CI_AppMain, CI, 115, 327680, 0x0, 0, 2; +CFE_APP, /cf/apps/TO.so, TO_AppMain, TO, 124, 327680, 0x0, 0, 2; +CFE_APP, /cf/apps/CF.so, CF_AppMain, CF, 157, 327680, 0x0, 0, 2; +CFE_APP, /cf/apps/DS.so, DS_AppMain, DS, 190, 327680, 0x0, 0, 2; +CFE_APP, /cf/apps/FM.so, FM_AppMain, FM, 163, 327680, 0x0, 0, 2; +CFE_APP, /cf/apps/HK.so, HK_AppMain, HK, 166, 327680, 0x0, 0, 2; +CFE_APP, /cf/apps/LC.so, LC_AppMain, LC, 178, 327680, 0x0, 0, 2; +CFE_APP, /cf/apps/MM.so, MM_AppMain, MM, 172, 327680, 0x0, 0, 2; +CFE_APP, /cf/apps/SC.so, SC_AppMain, SC, 175, 327680, 0x0, 0, 2; +CFE_APP, /cf/apps/MD.so, MD_AppMain, MD, 169, 327680, 0x0, 0, 2; +CFE_APP, /cf/apps/EA.so, EA_AppMain, EA, 184, 327680, 0x0, 0, 2; +CFE_APP, /cf/apps/CS.so, CS_AppMain, CS, 160, 327680, 0x0, 0, 2; +CFE_APP, /cf/apps/SBN.so, SBN_AppMain, SBN, 37, 327680, 0x0, 0, 2; +CFE_APP, /cf/apps/SCH.so, SCH_AppMain, SCH, 34, 40960, 0x0, 0, 2; +!CFE_LIB, /cf/apps/schlib.so, SCH_LibInit, SCH_LIB, 0, 0, 0x0, 0, 2; +CFE_APP, /cf/apps/LC.so, LC_AppMain, LC, 178, 327680, 0x0, 0, 2; +CFE_APP, /cf/apps/SC.so, SC_AppMain, SC, 175, 327680, 0x0, 0, 2; +CFE_APP, /cf/apps/FLOW.so, FLOW_AppMain, FLOW, 80, 327680, 0x0, 0, 2; +CFE_APP, /cf/apps/MAVLINK.so, MAVLINK_AppMain, MAVLINK, 90, 32768, 0x0, 0, 2; +CFE_APP, /cf/apps/HS.so, HS_AppMain, HS, 123, 32768, 0x0, 0, 2; +!CFE_APP, /cf/apps/ETA.so, ETA_AppMain, ETA, 100, 32768, 0x0, 0, 2; +!CFE_APP, /cf/apps/SBN.so, SBN_AppMain, SBN, 37, 32768, 0x0, 0, 2; +! +! Startup script fields: +! 1. Object Type -- CFE_APP for an Application, or CFE_LIB for a library. +! 2. Path/Filename -- This is a cFE Virtual filename, not a vxWorks device/pathname +! 3. Entry Point -- This is the "main" function for Apps. +! 4. CFE Name -- The cFE name for the the APP or Library +! 5. Priority -- This is the Priority of the App, not used for Library +! 6. Stack Size -- This is the Stack size for the App, not used for the Library +! 7. Load Address -- This is the Optional Load Address for the App or Library. Currently not implemented +! so keep it at 0x0. +! 8. Exception Action -- This is the Action the cFE should take if the App has an exception. +! 0 = Just restart the Application +! Non-Zero = Do a cFE Processor Reset +! +! Other Notes: +! 1. The software will not try to parse anything after the first '!' character it sees. That +! is the End of File marker. +! 2. Common Application file extensions: +! Linux = .so ( ci.so ) +! OS X = .bundle ( ci.bundle ) +! Cygwin = .dll ( ci.dll ) +! vxWorks = .o ( ci.o ) +! RTEMS with S-record Loader = .s3r ( ci.s3r ) +! RTEMS with CEXP Loader = .o ( ci.o ) diff --git a/config/obc/sitl/target/gdbinit b/config/obc/sitl/target/gdbinit new file mode 100644 index 000000000..fad990b6a --- /dev/null +++ b/config/obc/sitl/target/gdbinit @@ -0,0 +1 @@ +handle SIG63 nostop noprint pass noignore \ No newline at end of file diff --git a/config/obc/sitl/target/unit_test_wrapper b/config/obc/sitl/target/unit_test_wrapper new file mode 100755 index 000000000..1f8dde316 --- /dev/null +++ b/config/obc/sitl/target/unit_test_wrapper @@ -0,0 +1,22 @@ +#!/bin/bash +HOST_PATH=$1 +FULL_COMMAND=${*:2} +TARGET_DIR="/var/lib/jenkins/workspace/Airliner/OcPoC/Release_1.0.0" +TARGET_GCOV_PREFIX="${TARGET_DIR}" +TARGET_USER="root" +TARGET_ADDRESS="10.10.0.80" +HOST_DIR_DEPTH=$(find $1 -type d -printf '%d\n' | sort -n | tail -1) + +echo "*****************************" +echo "HOST_PATH = ${HOST_PATH}" +echo "FULL_COMMAND = ${FULL_COMMAND}" +echo "TARGET_DIR = ${TARGET_DIR}" +echo "TARGET_GCOV_PREFIX = ${TARGET_GCOV_PREFIX}" +echo "TARGET_USER = ${TARGET_USER}" +echo "TARGET_ADDRESS = ${TARGET_ADDRESS}" +echo "HOST_DIR_DEPTH = ${HOST_DIR_DEPTH}" +ssh ${TARGET_USER}@${TARGET_ADDRESS} "cd ${HOST_PATH}; ${FULL_COMMAND}" +RETURN_CODE=$? +echo "*****************************" + +exit ${RETURN_CODE} diff --git a/config/obc/sitl/target/unit_test_wrapper2 b/config/obc/sitl/target/unit_test_wrapper2 new file mode 100755 index 000000000..e484c4af0 --- /dev/null +++ b/config/obc/sitl/target/unit_test_wrapper2 @@ -0,0 +1,18 @@ +#!/bin/bash +HOST_PATH=$1 +FULL_COMMAND=${*:2} +TARGET_DIR="/root/unit-test" +TARGET_GCOV_PREFIX="${TARGET_DIR}" +TARGET_USER="root" +TARGET_ADDRESS="vehicle1.windhoverlabs.lan" +HOST_DIR_DEPTH=$(find $1 -type d -printf '%d\n' | sort -n | tail -1) + +ssh ${TARGET_USER}@${TARGET_ADDRESS} "mkdir -p ${TARGET_DIR}" || /bin/true +ssh ${TARGET_USER}@${TARGET_ADDRESS} "mkdir -p ${TARGET_GCOV_PREFIX}" || /bin/true +rsync -a -z ${HOST_PATH}/* ${TARGET_USER}@${TARGET_ADDRESS}:${TARGET_DIR}/ +ssh ${TARGET_USER}@${TARGET_ADDRESS} "cd ${TARGET_DIR}; GCOV_PREFIX=${TARGET_GCOV_PREFIX} GCOV_PREFIX_STRIP=${HOST_DIR_DEPTH} ${FULL_COMMAND}" +RETURN_CODE=$? +rsync -a -z ${TARGET_USER}@${TARGET_ADDRESS}:${TARGET_DIR}/* ${HOST_PATH}/ +ssh ${TARGET_USER}@${TARGET_ADDRESS} "rm -Rf ${TARGET_DIR}" || /bin/true + +exit ${RETURN_CODE} diff --git a/config/obc/sitl/wh_config.yaml b/config/obc/sitl/wh_config.yaml new file mode 100644 index 000000000..f0fc32106 --- /dev/null +++ b/config/obc/sitl/wh_config.yaml @@ -0,0 +1,5 @@ +--- +config_base: ${PROJECT_SOURCE_DIR} + +modules: + sch: \ No newline at end of file From fd96dbbdba8d9c3090674e6797dc01ddb6ac1deb Mon Sep 17 00:00:00 2001 From: lorenzo-gomez-windhover Date: Tue, 2 Feb 2021 17:54:54 -0600 Subject: [PATCH 023/370] -Updated OPIs for cfe_time -TODO:Finish updating the rest of displays --- .../Displays/Apps/CF/Abandon.opi | 2 +- .../workspace_template/Displays/Apps/Main.opi | 50 +++++++++---------- .../Displays/Apps/TO/Main.opi | 2 +- .../Displays/Core/TBL/DeleteCDS.opi | 2 +- .../Displays/Core/TBL/DumpRegistry.opi | 4 +- .../Displays/Core/TBL/DumpTable.opi | 36 +++++++------ .../Displays/Core/TBL/LoadTable.opi | 4 +- .../Displays/Core/TIME/AbortTableLoad.opi | 5 +- .../Displays/Core/TIME/ActivateTable.opi | 2 +- .../Displays/Core/TIME/DeleteCDS.opi | 2 +- .../Displays/Core/TIME/DumpRegistry.opi | 4 +- .../Displays/Core/TIME/Main.opi | 42 +++++++++------- .../Displays/Core/TIME/SetAdjust.opi | 8 +-- .../Displays/Core/TIME/scripts/NoOp.js | 2 +- .../Core/TIME/scripts/ResetCounters.js | 2 +- .../workspace_template/Displays/Main.opi | 2 +- 16 files changed, 86 insertions(+), 83 deletions(-) diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/CF/Abandon.opi b/core/base/tools/commander/workspace_template/Displays/Apps/CF/Abandon.opi index 4202f74d7..17dfcd1b7 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/CF/Abandon.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/CF/Abandon.opi @@ -165,7 +165,7 @@ Yamcs.issueCommand('/cfs/cf/Abandon', {'Trans': Transaction}); 25 - ../../Resources/send.png + Resources/send.png Action Button 0 diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/Main.opi b/core/base/tools/commander/workspace_template/Displays/Apps/Main.opi index 7d33636b8..1df9285f0 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/Main.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/Main.opi @@ -208,7 +208,7 @@ Yamcs.issueCommand('/cfs/cs/Noop()');]]> 23 - ../Resources/send.png + /Displays/Resources/send.png NoOp 0 @@ -265,7 +265,7 @@ Yamcs.issueCommand('/cfs/cs/Reset()'); 23 - ../Resources/send.png + /Displays/Resources/send.png NoOp_1 0 @@ -559,7 +559,7 @@ Yamcs.issueCommand('/cfs/cf/Noop', {});]]> 23 - /Displays/Resources/send.png + ../Resources/send.png NoOp_3 0 @@ -869,7 +869,7 @@ Yamcs.issueCommand('/cfs/ds/Noop', {});]]> 23 - ../Resources/send.png + /Displays/Resources/send.png NoOp_6 0 @@ -925,7 +925,7 @@ Yamcs.issueCommand('/cfs/ds/Reset', {});]]> 23 - ../Resources/send.png + /Displays/Resources/send.png NoOp_7 0 @@ -1180,7 +1180,7 @@ Yamcs.issueCommand('/cfs/fm/Noop', {});]]> 23 - ../Resources/send.png + /Displays/Resources/send.png NoOp_12 0 @@ -1236,7 +1236,7 @@ Yamcs.issueCommand('/cfs/fm/Reset', {});]]> 23 - ../Resources/send.png + /Displays/Resources/send.png NoOp_13 0 @@ -1491,7 +1491,7 @@ Yamcs.issueCommand('/cfs/hk/Noop', {});]]> 23 - ../Resources/send.png + /Displays/Resources/send.png NoOp_15 0 @@ -1547,7 +1547,7 @@ Yamcs.issueCommand('/cfs/hk/Reset', {});]]> 23 - ../Resources/send.png + /Displays/Resources/send.png NoOp_16 0 @@ -1802,7 +1802,7 @@ Yamcs.issueCommand('/cfs/ci/Noop(arg: none)');]]> 23 - ../Resources/send.png + /Displays/Resources/send.png NoOp_18 0 @@ -1858,7 +1858,7 @@ Yamcs.issueCommand('/cfs/ci/Reset', {});]]> 23 - ../Resources/send.png + /Displays/Resources/send.png NoOp_19 0 @@ -2113,7 +2113,7 @@ Yamcs.issueCommand('/cfs/hs/Noop', {});]]> 23 - ../Resources/send.png + /Displays/Resources/send.png NoOp_21 0 @@ -2169,7 +2169,7 @@ Yamcs.issueCommand('/cfs/hs/Reset', {});]]> 23 - ../Resources/send.png + /Displays/Resources/send.png NoOp_22 0 @@ -2424,7 +2424,7 @@ Yamcs.issueCommand('/cfs/lc/Noop', {});]]> 23 - ../Resources/send.png + /Displays/Resources/send.png NoOp_24 0 @@ -2480,7 +2480,7 @@ Yamcs.issueCommand('/cfs/lc/Reset', {});]]> 23 - ../Resources/send.png + /Displays/Resources/send.png NoOp_25 0 @@ -2735,7 +2735,7 @@ Yamcs.issueCommand('/cfs/md/Noop', {});]]> 23 - ../Resources/send.png + /Displays/Resources/send.png NoOp_27 0 @@ -2791,7 +2791,7 @@ Yamcs.issueCommand('/cfs/md/Reset', {});]]> 23 - ../Resources/send.png + /Displays/Resources/send.png NoOp_28 0 @@ -3046,7 +3046,7 @@ Yamcs.issueCommand('/cfs/mm/Noop', {});]]> 23 - ../Resources/send.png + /Displays/Resources/send.png NoOp_30 0 @@ -3102,7 +3102,7 @@ Yamcs.issueCommand('/cfs/mm/Reset', {});]]> 23 - ../Resources/send.png + /Displays/Resources/send.png NoOp_31 0 @@ -3357,7 +3357,7 @@ Yamcs.issueCommand('/cfs/sc/Noop',{});]]> 23 - ../Resources/send.png + /Displays/Resources/send.png NoOp_33 0 @@ -3414,7 +3414,7 @@ Yamcs.issueCommand('/cfs/sc/Reset',{}); 23 - ../Resources/send.png + /Displays/Resources/send.png NoOp_34 0 @@ -3669,7 +3669,7 @@ Yamcs.issueCommand('/cfs/sch/Noop', {});]]> 23 - ../Resources/send.png + /Displays/Resources/send.png NoOp_36 0 @@ -3725,7 +3725,7 @@ Yamcs.issueCommand('/cfs/sch/Reset', {});]]> 23 - ../Resources/send.png + /Displays/Resources/send.png NoOp_37 0 @@ -3980,7 +3980,7 @@ Yamcs.issueCommand('/cfs/to/Noop', {});]]> 23 - ../Resources/send.png + /Displays/Resources/send.png NoOp_39 0 @@ -4036,7 +4036,7 @@ Yamcs.issueCommand('/cfs/to/Reset', {});]]> 23 - ../Resources/send.png + /Displays/Resources/send.png NoOp_40 0 diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/TO/Main.opi b/core/base/tools/commander/workspace_template/Displays/Apps/TO/Main.opi index 2b45b3c32..055226fea 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/TO/Main.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/TO/Main.opi @@ -288,7 +288,7 @@ Yamcs.issueCommand('/cfs/to/Noop', {});]]> 18 - ../../Resources/send.png + Resources/send.png NoOp 0 diff --git a/core/base/tools/commander/workspace_template/Displays/Core/TBL/DeleteCDS.opi b/core/base/tools/commander/workspace_template/Displays/Core/TBL/DeleteCDS.opi index 9bcf23a9f..504fd3097 100644 --- a/core/base/tools/commander/workspace_template/Displays/Core/TBL/DeleteCDS.opi +++ b/core/base/tools/commander/workspace_template/Displays/Core/TBL/DeleteCDS.opi @@ -42,7 +42,7 @@ importPackage(Packages.org.yamcs.studio.data); var tableName =VTypeHelper.getString(display.getWidget('TableName').getPropertyValue('pv_value')); -var cmd = '/cfs/cfe_tbl/DeleteCDS(TableName: ' + tableName + ')'; +var cmd = '/cfs/cfe_tbl/DelCDS(Payload.TableName: ' + tableName + ')'; Yamcs.issueCommand(cmd); diff --git a/core/base/tools/commander/workspace_template/Displays/Core/TBL/DumpRegistry.opi b/core/base/tools/commander/workspace_template/Displays/Core/TBL/DumpRegistry.opi index 8acff9961..852d8f843 100644 --- a/core/base/tools/commander/workspace_template/Displays/Core/TBL/DumpRegistry.opi +++ b/core/base/tools/commander/workspace_template/Displays/Core/TBL/DumpRegistry.opi @@ -45,9 +45,9 @@ var fileName =VTypeHelper.getString(display.getWidget('FileName').getPropertyVal var cmd; if( fileName != 'no value' ) { - cmd = '/cfs/cfe_tbl/DumpReg(FileName: ' + fileName + ')'; + cmd = '/cfs/cfe_tbl/DumpReg(Payload.DumpFilename: ' + fileName + ')'; } else { - cmd = '/cfs/cfe_tbl/DumpReg(FileName: "")'; + cmd = '/cfs/cfe_tbl/DumpReg(Payload.DumpFilename: "")'; } Yamcs.issueCommand(cmd); diff --git a/core/base/tools/commander/workspace_template/Displays/Core/TBL/DumpTable.opi b/core/base/tools/commander/workspace_template/Displays/Core/TBL/DumpTable.opi index 20171565c..38e872e4a 100644 --- a/core/base/tools/commander/workspace_template/Displays/Core/TBL/DumpTable.opi +++ b/core/base/tools/commander/workspace_template/Displays/Core/TBL/DumpTable.opi @@ -28,14 +28,14 @@ true true Display - 275 + 360 35ebaa52:1509cf6a868:-791f -1 -1 - ../scripts/RestartApp.js + +Yamcs.issueCommand(cmd, args);]]> true @@ -318,7 +316,7 @@ $(pv_value) 1.7976931348623157E308 -1.7976931348623157E308 false - FileName_1 + FileName 0 true loc://FileName<VString> @@ -369,8 +367,8 @@ $(pv_value) 33 true - Inactive - Active + ACTIVE_BUFFER + INACTIVE_BUFFER false TableBuffer @@ -390,7 +388,7 @@ $(pv_value) $(pv_value) true Radio Box - 216 + 345 35ebaa52:1509cf6a868:-7878 28 31 diff --git a/core/base/tools/commander/workspace_template/Displays/Core/TBL/LoadTable.opi b/core/base/tools/commander/workspace_template/Displays/Core/TBL/LoadTable.opi index 4fbfb8d52..86ba27e68 100644 --- a/core/base/tools/commander/workspace_template/Displays/Core/TBL/LoadTable.opi +++ b/core/base/tools/commander/workspace_template/Displays/Core/TBL/LoadTable.opi @@ -45,9 +45,9 @@ var fileName =VTypeHelper.getString(display.getWidget('FileName').getPropertyVal var cmd; if( fileName != 'no value' ) { - cmd = '/cfs/cfe_tbl/Load(FileName: ' + fileName + ')'; + cmd = '/cfs/cfe_tbl/Load(Payload.LoadFilename: ' + fileName + ')'; } else { - cmd = '/cfs/cfe_tbl/Load(FileName: "")'; + cmd = '/cfs/cfe_tbl/Load(Payload.LoadFilename: "")'; } Yamcs.issueCommand(cmd); diff --git a/core/base/tools/commander/workspace_template/Displays/Core/TIME/AbortTableLoad.opi b/core/base/tools/commander/workspace_template/Displays/Core/TIME/AbortTableLoad.opi index 4d81774b8..98f0328e2 100644 --- a/core/base/tools/commander/workspace_template/Displays/Core/TIME/AbortTableLoad.opi +++ b/core/base/tools/commander/workspace_template/Displays/Core/TIME/AbortTableLoad.opi @@ -42,9 +42,10 @@ importPackage(Packages.org.yamcs.studio.data); var tableName =VTypeHelper.getString(display.getWidget('TableName').getPropertyValue('pv_value')); -var cmd = '/cfs/cfe_tbl/AbortLoad(TableName: ' + tableName + ')'; +var cmd = '/cfs/cfe_tbl/AbortLoad'; -Yamcs.issueCommand(cmd); + +Yamcs.issueCommand(cmd, {'Payload.TableName': tableName}); ]]> true diff --git a/core/base/tools/commander/workspace_template/Displays/Core/TIME/ActivateTable.opi b/core/base/tools/commander/workspace_template/Displays/Core/TIME/ActivateTable.opi index 62ecf8599..045c65cd0 100644 --- a/core/base/tools/commander/workspace_template/Displays/Core/TIME/ActivateTable.opi +++ b/core/base/tools/commander/workspace_template/Displays/Core/TIME/ActivateTable.opi @@ -42,7 +42,7 @@ importPackage(Packages.org.yamcs.studio.data); var tableName =VTypeHelper.getString(display.getWidget('TableName').getPropertyValue('pv_value')); -var cmd = '/cfs/cfe_tbl/Activate(TableName: ' + tableName + ')'; +var cmd = '/cfs/cfe_tbl/Activate(Payload.TableName: ' + tableName + ')'; Yamcs.issueCommand(cmd); diff --git a/core/base/tools/commander/workspace_template/Displays/Core/TIME/DeleteCDS.opi b/core/base/tools/commander/workspace_template/Displays/Core/TIME/DeleteCDS.opi index 1cccf1237..bf3f7f1f0 100644 --- a/core/base/tools/commander/workspace_template/Displays/Core/TIME/DeleteCDS.opi +++ b/core/base/tools/commander/workspace_template/Displays/Core/TIME/DeleteCDS.opi @@ -42,7 +42,7 @@ importPackage(Packages.org.yamcs.studio.data); var tableName =VTypeHelper.getString(display.getWidget('TableName').getPropertyValue('pv_value')); -var cmd = '/cfs/cfe_tbl/DeleteCDS(TableName: ' + tableName + ')'; +var cmd = '/cfs/cfe_tbl/DelCDS(Payload.TableName: ' + tableName + ')'; Yamcs.issueCommand(cmd); diff --git a/core/base/tools/commander/workspace_template/Displays/Core/TIME/DumpRegistry.opi b/core/base/tools/commander/workspace_template/Displays/Core/TIME/DumpRegistry.opi index bf041b113..3273207d3 100644 --- a/core/base/tools/commander/workspace_template/Displays/Core/TIME/DumpRegistry.opi +++ b/core/base/tools/commander/workspace_template/Displays/Core/TIME/DumpRegistry.opi @@ -45,9 +45,9 @@ var fileName =VTypeHelper.getString(display.getWidget('FileName').getPropertyVal var cmd; if( fileName != 'no value' ) { - cmd = '/cfs/cfe_tbl/DumpReg(FileName: ' + fileName + ')'; + cmd = '/cfs/cfe_tbl/DumpReg(Payload.DumpFilename: ' + fileName + ')'; } else { - cmd = '/cfs/cfe_tbl/DumpReg(FileName: "")'; + cmd = '/cfs/cfe_tbl/DumpReg(Payload.DumpFilename: "")'; } Yamcs.issueCommand(cmd); diff --git a/core/base/tools/commander/workspace_template/Displays/Core/TIME/Main.opi b/core/base/tools/commander/workspace_template/Displays/Core/TIME/Main.opi index 74b07e367..fb578d962 100644 --- a/core/base/tools/commander/workspace_template/Displays/Core/TIME/Main.opi +++ b/core/base/tools/commander/workspace_template/Displays/Core/TIME/Main.opi @@ -579,10 +579,12 @@ $(pv_value) - scripts/NoOp.js + - false +importPackage(Packages.org.yamcs.studio.script); + +Yamcs.issueCommand('/cfs/cfe_time/Noop', {});]]> + true @@ -632,10 +634,12 @@ $(pv_value) - scripts/ResetCounters.js + - false +importPackage(Packages.org.yamcs.studio.script); + +Yamcs.issueCommand('/cfs/cfe_time/Reset', {});]]> + true @@ -1309,7 +1313,7 @@ $(pv_value) 20 Check Box - /cfs/cfe_time/CFE_TIME_HkPacket_t.Payload.Clock + /cfs/cfe_time/CFE_TIME_HkPacket_t.Payload.ClockStateFlags @@ -1356,7 +1360,7 @@ $(pv_value) 20 Check Box_1 - /cfs/cfe_time/CFE_TIME_HkPacket_t.Payload.Flying + /cfs/cfe_time/CFE_TIME_HkPacket_t.Payload.ClockStateFlags @@ -1403,7 +1407,7 @@ $(pv_value) 20 Check Box_2 - /cfs/cfe_time/CFE_TIME_HkPacket_t.Payload.SrcInt + /cfs/cfe_time/CFE_TIME_HkPacket_t.Payload.ClockStateFlags @@ -1450,7 +1454,7 @@ $(pv_value) 20 Check Box_3 - /cfs/cfe_time/CFE_TIME_HkPacket_t.Payload.SigPri + /cfs/cfe_time/CFE_TIME_HkPacket_t.Payload.ClockStateFlags @@ -1497,7 +1501,7 @@ $(pv_value) 20 Check Box_4 - /cfs/cfe_time/CFE_TIME_HkPacket_t.Payload.SrvFly + /cfs/cfe_time/CFE_TIME_HkPacket_t.Payload.ClockStateFlags @@ -1544,7 +1548,7 @@ $(pv_value) 20 Check Box_5 - /cfs/cfe_time/CFE_TIME_HkPacket_t.Payload.CmdFly + /cfs/cfe_time/CFE_TIME_HkPacket_t.Payload.ClockStateFlags @@ -1591,7 +1595,7 @@ $(pv_value) 20 Check Box_6 - /cfs/cfe_time/CFE_TIME_HkPacket_t.Payload.AddAdj + /cfs/cfe_time/CFE_TIME_HkPacket_t.Payload.ClockStateFlags @@ -1638,7 +1642,7 @@ $(pv_value) 20 Check Box_7 - /cfs/cfe_time/CFE_TIME_HkPacket_t.Payload.Add1Hz + /cfs/cfe_time/CFE_TIME_HkPacket_t.Payload.ClockStateFlags @@ -1685,7 +1689,7 @@ $(pv_value) 20 Check Box_8 - /cfs/cfe_time/CFE_TIME_HkPacket_t.Payload.AddTcl + /cfs/cfe_time/CFE_TIME_HkPacket_t.Payload.ClockStateFlags @@ -1732,7 +1736,7 @@ $(pv_value) 20 Check Box_9 - /cfs/cfe_time/CFE_TIME_HkPacket_t.Payload.Server + /cfs/cfe_time/CFE_TIME_HkPacket_t.Payload.ClockStateFlags @@ -1779,7 +1783,7 @@ $(pv_value) 20 Check Box_10 - /cfs/cfe_time/CFE_TIME_HkPacket_t.Payload.GoodTone + /cfs/cfe_time/CFE_TIME_HkPacket_t.Payload.ClockStateFlags @@ -2316,7 +2320,7 @@ $(pv_value) Text Update_6 0 false - /cfs/cfe_time/CFE_TIME_HkPacket_t.Payload.SecondsSCTF + /cfs/cfe_time/CFE_TIME_HkPacket_t.Payload.SecondsSTCF 0.0 @@ -2368,7 +2372,7 @@ $(pv_value) Text Update_7 0 false - /cfs/cfe_time/CFE_TIME_HkPacket_t.Payload.SubsecsSCTF + /cfs/cfe_time/CFE_TIME_HkPacket_t.Payload.SubsecsSTCF 0.0 diff --git a/core/base/tools/commander/workspace_template/Displays/Core/TIME/SetAdjust.opi b/core/base/tools/commander/workspace_template/Displays/Core/TIME/SetAdjust.opi index 548c5b5df..01199fbcd 100644 --- a/core/base/tools/commander/workspace_template/Displays/Core/TIME/SetAdjust.opi +++ b/core/base/tools/commander/workspace_template/Displays/Core/TIME/SetAdjust.opi @@ -48,13 +48,13 @@ var Microseconds =VTypeHelper.getDouble(display.getWidget('Microseconds').getPro var cmd; if( (Direction == "Add" ) && (Frequency == "One Shot")) { - Yamcs.issueCommand('/cfs/cfe_time/AddAdjust(Seconds: ' + Seconds + ', Microseconds: ' + Microseconds + ')'); + Yamcs.issueCommand('/cfs/cfe_time/AddAdjust(Payload.Seconds: ' + Seconds + ',Payload.Microseconds: ' + Microseconds + ')'); } if( (Direction == "Subtract" ) && (Frequency == "One Shot")) { - Yamcs.issueCommand('/cfs/cfe_time/SubAdjust(Seconds: ' + Seconds + ', Microseconds: ' + Microseconds + ')'); + Yamcs.issueCommand('/cfs/cfe_time/SubAdjust(Payload.Seconds: ' + Seconds + ',Payload.Microseconds: ' + Microseconds + ')'); } if( (Direction == "Add" ) && (Frequency == "1 Hz")) { - Yamcs.issueCommand('/cfs/cfe_time/Add1HzAdj(Seconds: ' + Seconds + ', Subseconds: ' + Microseconds + ')'); + Yamcs.issueCommand('/cfs/cfe_time/Add1HzAdj(Payload.Seconds: ' + Seconds + ',Payload.Subseconds: ' + Microseconds + ')'); } if( (Direction == "Subtract" ) && (Frequency == "1 Hz")) { - Yamcs.issueCommand('/cfs/cfe_time/Sub1HzAdj(Seconds: ' + Seconds + ', Subseconds: ' + Microseconds + ')'); + Yamcs.issueCommand('/cfs/cfe_time/Sub1HzAdj(Payload.Seconds: ' + Seconds + ',Payload.Subseconds: ' + Microseconds + ')'); } diff --git a/core/base/tools/commander/workspace_template/Displays/Core/TIME/scripts/NoOp.js b/core/base/tools/commander/workspace_template/Displays/Core/TIME/scripts/NoOp.js index 152a38c5e..47f92d8b9 100644 --- a/core/base/tools/commander/workspace_template/Displays/Core/TIME/scripts/NoOp.js +++ b/core/base/tools/commander/workspace_template/Displays/Core/TIME/scripts/NoOp.js @@ -1,4 +1,4 @@ importPackage(Packages.org.csstudio.opibuilder.scriptUtil); importPackage(Packages.org.yamcs.studio.script); -Yamcs.issueCommand('/cfs/cfe_time/NoOp(arg: none)'); \ No newline at end of file +Yamcs.issueCommand('/cfs/cfe_time/Noop', {}); \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Core/TIME/scripts/ResetCounters.js b/core/base/tools/commander/workspace_template/Displays/Core/TIME/scripts/ResetCounters.js index 199f98568..5112544ae 100644 --- a/core/base/tools/commander/workspace_template/Displays/Core/TIME/scripts/ResetCounters.js +++ b/core/base/tools/commander/workspace_template/Displays/Core/TIME/scripts/ResetCounters.js @@ -1,4 +1,4 @@ importPackage(Packages.org.csstudio.opibuilder.scriptUtil); importPackage(Packages.org.yamcs.studio.script); -Yamcs.issueCommand('/cfs/cfe_time/Reset(arg: none)'); \ No newline at end of file +Yamcs.issueCommand('/cfs/cfe_time/Reset', {}); \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Main.opi b/core/base/tools/commander/workspace_template/Displays/Main.opi index f02456f4b..d5eebaf86 100644 --- a/core/base/tools/commander/workspace_template/Displays/Main.opi +++ b/core/base/tools/commander/workspace_template/Displays/Main.opi @@ -1988,7 +1988,7 @@ $(pv_value) 24 - Resources/send.png + /Displays/Resources/send.png NoOp 0 From b19f75c00c2c7a951efc697b3cd27f72d66b18a2 Mon Sep 17 00:00:00 2001 From: Mathew Benson Date: Tue, 2 Feb 2021 21:16:11 -0600 Subject: [PATCH 024/370] Completed CFE_ES displays. Verified displays and commands. --- core/base/cfe/wh_design.yaml | 4 +- .../Displays/Core/ES/ApplicationControl.opi | 188 +++++++--- .../Displays/Core/ES/DeleteCDS.opi | 8 +- .../Displays/Core/ES/DumpCDSReg.opi | 6 +- .../Displays/Core/ES/Main.opi | 277 ++++++++++++--- .../Displays/Core/ES/MemoryPoolViewer.opi | 6 +- .../Displays/Core/ES/QueryAllApps.opi | 232 ++++++++++++ .../Displays/Core/ES/QueryAllTasks.opi | 232 ++++++++++++ .../Core/ES/{QueryApp.opi => QueryOneApp.opi} | 0 .../Displays/Core/ES/ReloadApp.opi | 331 ++++++++++++++++++ .../Displays/Core/ES/StartPerfCollection.opi | 6 +- .../Displays/Core/ES/WriteErrLog.opi | 8 +- .../Displays/Core/ES/WriteSysLog.opi | 8 +- .../Displays/Core/EVS/DumpAppData.opi | 12 +- .../Displays/Core/EVS/DumpEventLog.opi | 12 +- .../Displays/Core/SB/Main.opi | 100 +++++- 16 files changed, 1293 insertions(+), 137 deletions(-) create mode 100644 core/base/tools/commander/workspace_template/Displays/Core/ES/QueryAllApps.opi create mode 100644 core/base/tools/commander/workspace_template/Displays/Core/ES/QueryAllTasks.opi rename core/base/tools/commander/workspace_template/Displays/Core/ES/{QueryApp.opi => QueryOneApp.opi} (100%) create mode 100644 core/base/tools/commander/workspace_template/Displays/Core/ES/ReloadApp.opi diff --git a/core/base/cfe/wh_design.yaml b/core/base/cfe/wh_design.yaml index 840bc0216..e087ad6c9 100644 --- a/core/base/cfe/wh_design.yaml +++ b/core/base/cfe/wh_design.yaml @@ -722,10 +722,10 @@ modules: DeleteAppEventFilter: cc: 16 struct: CFE_EVS_AppNameEventIDCmd_t - AppData: + WriteAppData: cc: 17 struct: CFE_EVS_AppDataCmd_t - LogFile: + WriteLogData: cc: 18 struct: CFE_EVS_LogFileCmd_t SetLogMode: diff --git a/core/base/tools/commander/workspace_template/Displays/Core/ES/ApplicationControl.opi b/core/base/tools/commander/workspace_template/Displays/Core/ES/ApplicationControl.opi index 046a97e9c..31a09ceb8 100644 --- a/core/base/tools/commander/workspace_template/Displays/Core/ES/ApplicationControl.opi +++ b/core/base/tools/commander/workspace_template/Displays/Core/ES/ApplicationControl.opi @@ -15,7 +15,7 @@ 6 - 475 + 500 true @@ -1964,10 +1964,50 @@ $(pv_value) 144 276 + + + false + + + + + + + 0 + 1 + true + + Default Bold + + + + + 20 + 1 + Label + + + true + true + false + + + Application Control + + true + 1 + true + Label + 158 + false + 14292858:17759dd02e1:-7c65 + 78 + 12 + - QueryApp.opi + QueryOneApp.opi true @@ -2008,15 +2048,70 @@ $(pv_value) - Query + Query One + false + $(pv_name) +$(pv_value) + true + Action Button + 84 + 2285957:177658292c4:-7534 + 44 + 432 + + + + + QueryAllApps.opi + + true + + 1 + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 28 + + Action Button_12 + 0 + + + + + true + true + false + + + + Query All false $(pv_name) $(pv_value) true Action Button - 66 - -2dc23c5:177557ff444:-6f6e - 33 + 84 + 2285957:177658292c4:-752c + 127 432 @@ -2070,14 +2165,14 @@ $(pv_value) true Action Button 67 - -2dc23c5:177557ff444:-6f66 - 98 + 2285957:177658292c4:-7520 + 210 432 - StartApp.opi + ReloadApp.opi true @@ -2106,7 +2201,7 @@ $(pv_value) 28 - Action Button_6 + Action Button_8 0 @@ -2118,21 +2213,21 @@ $(pv_value) - Start + Reload false $(pv_name) $(pv_value) true Action Button - 65 - -2dc23c5:177557ff444:-6f5e - 164 - 432 + 67 + 2285957:177658292c4:-7508 + 62 + 459 - StopApp.opi + StartApp.opi true @@ -2161,7 +2256,7 @@ $(pv_value) 28 - Action Button_7 + Action Button_6 0 @@ -2173,23 +2268,34 @@ $(pv_value) - Stop + Start false $(pv_name) $(pv_value) true Action Button 65 - -2dc23c5:177557ff444:-6f56 - 228 - 432 + 2285957:177658292c4:-7500 + 128 + 459 - - - false + + + + StopApp.opi + + true + + 1 + + + + false + false - + + false @@ -2197,14 +2303,18 @@ $(pv_value) 1 true - Default Bold + Default + false - 20 - 1 - Label + 28 + + Action Button_7 + 0 + + true @@ -2212,16 +2322,16 @@ $(pv_value) false - Application Control - - true - 1 + + Stop + false + $(pv_name) +$(pv_value) true - Label - 158 - false - 14292858:17759dd02e1:-7c65 - 78 - 12 + Action Button + 65 + 2285957:177658292c4:-74f8 + 192 + 459 \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Core/ES/DeleteCDS.opi b/core/base/tools/commander/workspace_template/Displays/Core/ES/DeleteCDS.opi index 00f84be09..a68503df0 100644 --- a/core/base/tools/commander/workspace_template/Displays/Core/ES/DeleteCDS.opi +++ b/core/base/tools/commander/workspace_template/Displays/Core/ES/DeleteCDS.opi @@ -35,16 +35,14 @@ - scripts/RestartApp.js + true @@ -186,7 +184,7 @@ $(pv_value) - 0 + 1 1 true diff --git a/core/base/tools/commander/workspace_template/Displays/Core/ES/DumpCDSReg.opi b/core/base/tools/commander/workspace_template/Displays/Core/ES/DumpCDSReg.opi index 4a51903af..afa4250f1 100644 --- a/core/base/tools/commander/workspace_template/Displays/Core/ES/DumpCDSReg.opi +++ b/core/base/tools/commander/workspace_template/Displays/Core/ES/DumpCDSReg.opi @@ -82,15 +82,15 @@ Yamcs.issueCommand('/cfs/cfe_es/DumpCDSReg', {'Payload.DumpFilename': fileName}) - Dump to File System + Dump false $(pv_name) $(pv_value) true Action Button - 181 + 109 72a2bf2b:1508717c835:-77e3 - 96 + 144 84 diff --git a/core/base/tools/commander/workspace_template/Displays/Core/ES/Main.opi b/core/base/tools/commander/workspace_template/Displays/Core/ES/Main.opi index b0fe43aa9..a5c3c09b0 100644 --- a/core/base/tools/commander/workspace_template/Displays/Core/ES/Main.opi +++ b/core/base/tools/commander/workspace_template/Displays/Core/ES/Main.opi @@ -3386,62 +3386,6 @@ $(pv_value) - true - - - - false - false - - - - false - - - - 0 - 1 - true - - Default - - false - - - - 25 - ../../Resources/send.png - NoOp_16 - 0 - - - - - true - true - false - - - - Clear - false - $(pv_name) -$(pv_value) - true - Action Button - 79 - -5b3cf925:1773c9998f6:-7e84 - 517 - 167 - - - - - - true @@ -4043,4 +3987,225 @@ $(pv_value) 645 265 + + + + QueryAllApps.opi + + true + + 1 + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 21 + + NoOp_31 + 0 + + + + + true + true + false + + + + Query All + false + $(pv_name) +$(pv_value) + true + Action Button + 78 + 2285957:177658292c4:-7459 + 307 + 533 + + + + + QueryAllTasks.opi + + true + + 1 + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 21 + + NoOp_30 + 0 + + + + + true + true + false + + + + Query All + false + $(pv_name) +$(pv_value) + true + Action Button + 78 + 2285957:177658292c4:-7451 + 307 + 552 + + + + + DeleteCDS.opi + + true + + 1 + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 25 + + NoOp_33 + 0 + + + + + true + true + false + + + + Delete + false + $(pv_name) +$(pv_value) + true + Action Button + 80 + 2285957:177658292c4:-7060 + 516 + 167 + + + + + + + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 20 + ../../Resources/send.png + NoOp_34 + 0 + + + + + true + true + false + + + + SendHK + false + $(pv_name) +$(pv_value) + true + Action Button + 86 + 2285957:177658292c4:-6d7f + 17 + 12 + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Core/ES/MemoryPoolViewer.opi b/core/base/tools/commander/workspace_template/Displays/Core/ES/MemoryPoolViewer.opi index 7ea66b1fc..e8ed2c421 100644 --- a/core/base/tools/commander/workspace_template/Displays/Core/ES/MemoryPoolViewer.opi +++ b/core/base/tools/commander/workspace_template/Displays/Core/ES/MemoryPoolViewer.opi @@ -40,7 +40,7 @@ importPackage(Packages.org.yamcs.studio.script); importPackage(Packages.org.yamcs.studio.data); -var poolHandle =VTypeHelper.getDouble(display.getWidget('inPoolHandle').getPropertyValue('pv_value')); +var poolHandle =display.getWidget('inPoolHandle').getPropertyValue('text'); Yamcs.issueCommand('/cfs/cfe_es/TlmPoolStats', { 'Payload.Application': '', @@ -91,7 +91,7 @@ $(pv_value) Action Button 81 72a2bf2b:1508717c835:-7cf7 - 228 + 248 48 @@ -486,7 +486,7 @@ $(pv_value) false true Text Input - 100 + 121 -3fca34e1:15096a78c93:-7697 108 49 diff --git a/core/base/tools/commander/workspace_template/Displays/Core/ES/QueryAllApps.opi b/core/base/tools/commander/workspace_template/Displays/Core/ES/QueryAllApps.opi new file mode 100644 index 000000000..f10033a83 --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/Core/ES/QueryAllApps.opi @@ -0,0 +1,232 @@ + + + + + false + -1 + -1 + + false + + + + 1.5.3 + + + + 6 + 120 + + true + + CFE-ES - Query All Apps + + + true + true + true + true + true + Display + 330 + 72a2bf2b:1508717c835:-7d33 + -1 + -1 + + + + + + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 24 + ../../Resources/send.png + Action Button + 0 + + + + + true + true + false + + + + Query + false + $(pv_name) +$(pv_value) + true + Action Button + 79 + 72a2bf2b:1508717c835:-7cf7 + 120 + 84 + + + + false + + + + + + + 0 + 1 + true + + Default Bold + + + + + 20 + 1 + Label + + + true + true + false + + + Query All Applications + + true + 1 + true + Label + 175 + false + 14292858:17759dd02e1:-7cd3 + 72 + 12 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_3 + + + true + true + false + + + File Name + + true + 1 + true + Label + 80 + false + 2285957:177658292c4:-74d3 + 1 + 45 + + + + false + false + false + + + + false + + + + 1 + 1 + + true + + Default + + false + + + + 0 + 25 + 0 + false + 1.7976931348623157E308 + -1.7976931348623157E308 + false + inFileName + 0 + true + loc://FileName<VString>("") + + 0.0 + + + true + true + false + + + 0 + true + + + $(pv_name) +$(pv_value) + false + true + Text Input + 221 + 2285957:177658292c4:-74d2 + 96 + 42 + + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Core/ES/QueryAllTasks.opi b/core/base/tools/commander/workspace_template/Displays/Core/ES/QueryAllTasks.opi new file mode 100644 index 000000000..ab98aadc2 --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/Core/ES/QueryAllTasks.opi @@ -0,0 +1,232 @@ + + + + + false + -1 + -1 + + false + + + + 1.5.3 + + + + 6 + 120 + + true + + CFE-ES - Query All Tasks + + + true + true + true + true + true + Display + 330 + 72a2bf2b:1508717c835:-7d33 + -1 + -1 + + + + + + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 24 + ../../Resources/send.png + Action Button + 0 + + + + + true + true + false + + + + Query + false + $(pv_name) +$(pv_value) + true + Action Button + 79 + 72a2bf2b:1508717c835:-7cf7 + 128 + 84 + + + + false + + + + + + + 0 + 1 + true + + Default Bold + + + + + 20 + 1 + Label + + + true + true + false + + + Query All Tasks + + true + 1 + true + Label + 175 + false + 14292858:17759dd02e1:-7cd3 + 80 + 12 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_3 + + + true + true + false + + + File Name + + true + 1 + true + Label + 80 + false + 2285957:177658292c4:-74d3 + 1 + 45 + + + + false + false + false + + + + false + + + + 1 + 1 + + true + + Default + + false + + + + 0 + 25 + 0 + false + 1.7976931348623157E308 + -1.7976931348623157E308 + false + inFileName + 0 + true + loc://FileName<VString>("") + + 0.0 + + + true + true + false + + + 0 + true + + + $(pv_name) +$(pv_value) + false + true + Text Input + 221 + 2285957:177658292c4:-74d2 + 96 + 42 + + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Core/ES/QueryApp.opi b/core/base/tools/commander/workspace_template/Displays/Core/ES/QueryOneApp.opi similarity index 100% rename from core/base/tools/commander/workspace_template/Displays/Core/ES/QueryApp.opi rename to core/base/tools/commander/workspace_template/Displays/Core/ES/QueryOneApp.opi diff --git a/core/base/tools/commander/workspace_template/Displays/Core/ES/ReloadApp.opi b/core/base/tools/commander/workspace_template/Displays/Core/ES/ReloadApp.opi new file mode 100644 index 000000000..209c7e418 --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/Core/ES/ReloadApp.opi @@ -0,0 +1,331 @@ + + + + + false + -1 + -1 + + false + + + + 1.5.3 + + + + 6 + 150 + + true + + CFE-ES - Reload App + + + true + true + true + true + true + Display + 340 + 72a2bf2b:1508717c835:-7839 + -1 + -1 + + + + + + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 25 + ../../Resources/send.png + Action Button + 0 + + + + + true + true + false + + + + Reload + false + $(pv_name) +$(pv_value) + true + Action Button + 96 + 72a2bf2b:1508717c835:-77e3 + 120 + 108 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label + + + true + true + false + + + App Name + + true + 1 + true + Label + 80 + false + 72a2bf2b:1508717c835:-772d + 12 + 47 + + + + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 30 + + CF + CI + CS + DS + EIM + HS + FM + HK + LC + MM + SCH + TO + SBN + + false + inAppName + loc://AppName + + + + true + false + false + + + $(pv_name) +$(pv_value) + true + Combo + 157 + 72a2bf2b:1508717c835:-76fa + 102 + 42 + + + + false + + + + + + + 0 + 1 + true + + Default Bold + + + + + 20 + 1 + Label_1 + + + true + true + false + + + Reload Application + + true + 1 + true + Label + 231 + false + 72a2bf2b:1508717c835:-76c0 + 52 + 12 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_2 + + + true + true + false + + + File Name + + true + 1 + true + Label + 80 + false + 2285957:177658292c4:-7695 + 12 + 74 + + + + false + false + false + + + + false + + + + 1 + 1 + + true + + Default + + false + + + + 0 + 25 + 0 + false + 1.7976931348623157E308 + -1.7976931348623157E308 + false + inFileName + 0 + true + loc://FileName<VString>("") + + 0.0 + + + true + true + false + + + 0 + true + + + $(pv_name) +$(pv_value) + false + true + Text Input + 221 + 2285957:177658292c4:-767a + 102 + 74 + + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Core/ES/StartPerfCollection.opi b/core/base/tools/commander/workspace_template/Displays/Core/ES/StartPerfCollection.opi index 5a669284a..73c1b4783 100644 --- a/core/base/tools/commander/workspace_template/Displays/Core/ES/StartPerfCollection.opi +++ b/core/base/tools/commander/workspace_template/Displays/Core/ES/StartPerfCollection.opi @@ -55,9 +55,9 @@ 32 - Start - Middle - End + START + CENTER + END false TriggerOn diff --git a/core/base/tools/commander/workspace_template/Displays/Core/ES/WriteErrLog.opi b/core/base/tools/commander/workspace_template/Displays/Core/ES/WriteErrLog.opi index df297c8b1..0d3a65b6c 100644 --- a/core/base/tools/commander/workspace_template/Displays/Core/ES/WriteErrLog.opi +++ b/core/base/tools/commander/workspace_template/Displays/Core/ES/WriteErrLog.opi @@ -81,15 +81,15 @@ Yamcs.issueCommand('/cfs/cfe_es/WriteErLog', {'Payload.ERLogFileName': fileName} - Write to File System + Dump false $(pv_name) $(pv_value) true Action Button - 163 + 97 72a2bf2b:1508717c835:-77e3 - 114 + 147 90 @@ -160,7 +160,7 @@ $(pv_value) false - Write Error Log to File System + Dump Error Log to File System true 1 diff --git a/core/base/tools/commander/workspace_template/Displays/Core/ES/WriteSysLog.opi b/core/base/tools/commander/workspace_template/Displays/Core/ES/WriteSysLog.opi index 1ecd07bc3..3a10482ed 100644 --- a/core/base/tools/commander/workspace_template/Displays/Core/ES/WriteSysLog.opi +++ b/core/base/tools/commander/workspace_template/Displays/Core/ES/WriteSysLog.opi @@ -81,15 +81,15 @@ Yamcs.issueCommand('/cfs/cfe_es/WriteSysLog', {'Payload.SysLogFileName': fileNam - Write to File System + Dump false $(pv_name) $(pv_value) true Action Button - 163 + 85 72a2bf2b:1508717c835:-77e3 - 114 + 168 90 @@ -160,7 +160,7 @@ $(pv_value) false - Write System Log to File System + Dump System Log to File System true 1 diff --git a/core/base/tools/commander/workspace_template/Displays/Core/EVS/DumpAppData.opi b/core/base/tools/commander/workspace_template/Displays/Core/EVS/DumpAppData.opi index 2f7b4f563..3d8de7bff 100644 --- a/core/base/tools/commander/workspace_template/Displays/Core/EVS/DumpAppData.opi +++ b/core/base/tools/commander/workspace_template/Displays/Core/EVS/DumpAppData.opi @@ -28,7 +28,7 @@ true true Display - 330 + 415 72a2bf2b:1508717c835:-7839 -1 -1 @@ -42,9 +42,7 @@ importPackage(Packages.org.yamcs.studio.data); var fileName =VTypeHelper.getString(display.getWidget('inFileName').getPropertyValue('pv_value')); -var cmd = '/cfs/cfe_evs/FileWriteAppData(FileName: ' + fileName + ')'; - -Yamcs.issueCommand(cmd); +Yamcs.issueCommand('/cfs/cfe_evs/WriteAppData', {'Payload.AppDataFilename': fileName}); ]]> true @@ -91,7 +89,7 @@ $(pv_value) Action Button 125 72a2bf2b:1508717c835:-77e3 - 102 + 143 78 @@ -171,7 +169,7 @@ $(pv_value) 231 false 72a2bf2b:1508717c835:-76c0 - 49 + 90 12 @@ -226,7 +224,7 @@ $(pv_value) false true Text Input - 223 + 313 -e1e6812:1508d3700d4:-79c8 90 42 diff --git a/core/base/tools/commander/workspace_template/Displays/Core/EVS/DumpEventLog.opi b/core/base/tools/commander/workspace_template/Displays/Core/EVS/DumpEventLog.opi index 23a6e3c6f..00f22df7c 100644 --- a/core/base/tools/commander/workspace_template/Displays/Core/EVS/DumpEventLog.opi +++ b/core/base/tools/commander/workspace_template/Displays/Core/EVS/DumpEventLog.opi @@ -28,7 +28,7 @@ true true Display - 310 + 420 72a2bf2b:1508717c835:-7839 -1 -1 @@ -42,9 +42,7 @@ importPackage(Packages.org.yamcs.studio.data); var fileName =VTypeHelper.getString(display.getWidget('inFileName').getPropertyValue('pv_value')); -var cmd = '/cfs/cfe_evs/FileWriteLogData(FileName: ' + fileName + ')'; - -Yamcs.issueCommand(cmd); +Yamcs.issueCommand('/cfs/cfe_evs/WriteLogData', {'Payload.LogFilename': fileName}); ]]> true @@ -91,7 +89,7 @@ $(pv_value) Action Button 103 72a2bf2b:1508717c835:-77e3 - 108 + 160 84 @@ -171,7 +169,7 @@ $(pv_value) 231 false 72a2bf2b:1508717c835:-76c0 - 44 + 96 12 @@ -226,7 +224,7 @@ $(pv_value) false true Text Input - 197 + 307 -e1e6812:1508d3700d4:-79c8 96 48 diff --git a/core/base/tools/commander/workspace_template/Displays/Core/SB/Main.opi b/core/base/tools/commander/workspace_template/Displays/Core/SB/Main.opi index aac426e7f..72dbdc336 100644 --- a/core/base/tools/commander/workspace_template/Displays/Core/SB/Main.opi +++ b/core/base/tools/commander/workspace_template/Displays/Core/SB/Main.opi @@ -1533,7 +1533,7 @@ $(pv_value) false 763e00b7:150973f1dd8:-7381 6 - 292 + 311 @@ -1585,7 +1585,7 @@ $(pv_value) false 763e00b7:150973f1dd8:-7380 169 - 292 + 311 @@ -1625,7 +1625,7 @@ $(pv_value) false 763e00b7:150973f1dd8:-7379 6 - 311 + 330 @@ -1677,7 +1677,7 @@ $(pv_value) false 763e00b7:150973f1dd8:-7378 169 - 311 + 330 @@ -1734,4 +1734,96 @@ $(pv_value) 294 118 + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_52 + + + true + true + false + + + Mem Pool Handle + + true + 1 + true + Label + 146 + false + 2285957:177658292c4:-7be3 + 6 + 292 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 3 + 20 + 0 + Text Update_13 + 0 + false + /cfs/cfe_sb/CFE_SB_HKMsg_t.Payload.MemPoolHandle + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + 2285957:177658292c4:-7be2 + 169 + 292 + \ No newline at end of file From 31df206c5c6725007ce6a87acc5d55b385bd6b5d Mon Sep 17 00:00:00 2001 From: Mathew Benson Date: Tue, 2 Feb 2021 21:17:08 -0600 Subject: [PATCH 025/370] Fixed the CFDP message IDs. Configured the shared CS tables. --- config/shared/apps/cs/tables/cs_tablestbl.c | 43 +++++++++------------ config/shared/inc/msg_ids.h | 4 +- 2 files changed, 21 insertions(+), 26 deletions(-) diff --git a/config/shared/apps/cs/tables/cs_tablestbl.c b/config/shared/apps/cs/tables/cs_tablestbl.c index f0f7787bf..887a01bcf 100644 --- a/config/shared/apps/cs/tables/cs_tablestbl.c +++ b/config/shared/apps/cs/tables/cs_tablestbl.c @@ -10,30 +10,25 @@ CS_Def_Tables_Table_Entry_t CS_TablesTable[CS_MAX_NUM_TABLES_TABLE_ENTRIES] = { /* State Name */ - /* 0 */ { CS_STATE_ENABLED, "TO.GRND_BIN_CFG" }, - /* 1 */ { CS_STATE_ENABLED, "TO.GRND_PB_CFG" }, - /* 2 */ { CS_STATE_EMPTY, "" }, - /* 3 */ { CS_STATE_EMPTY, "" }, - /* 4 */ { CS_STATE_EMPTY, "" }, - /* 5 */ { CS_STATE_EMPTY, "" }, - /* 6 */ { CS_STATE_EMPTY, "" }, - /* 7 */ { CS_STATE_EMPTY, "" }, - /* 8 */ { CS_STATE_EMPTY, "" }, - /* 9 */ { CS_STATE_EMPTY, "" }, - /* 10 */ { CS_STATE_EMPTY, "" }, - /* 11 */ { CS_STATE_EMPTY, "" }, - /* 12 */ { CS_STATE_EMPTY, "" }, - /* 13 */ { CS_STATE_EMPTY, "" }, - /* 14 */ { CS_STATE_EMPTY, "" }, - /* 15 */ { CS_STATE_EMPTY, "" }, - /* 16 */ { CS_STATE_EMPTY, "" }, - /* 17 */ { CS_STATE_EMPTY, "" }, - /* 18 */ { CS_STATE_EMPTY, "" }, - /* 19 */ { CS_STATE_EMPTY, "" }, - /* 20 */ { CS_STATE_EMPTY, "" }, - /* 21 */ { CS_STATE_EMPTY, "" }, - /* 22 */ { CS_STATE_EMPTY, "" }, - /* 23 */ { CS_STATE_EMPTY, "" } + /* 0 */ { CS_STATE_ENABLED, "CF.ConfigTable" }, + /* 1 */ { CS_STATE_ENABLED, "CI.CONFIG_TBL" }, + /* 2 */ { CS_STATE_ENABLED, "CS.DefAppTbl" }, + /* 3 */ { CS_STATE_ENABLED, "CS.DefMemoryTbl" }, + /* 4 */ { CS_STATE_ENABLED, "DS.FILE_TBL" }, + /* 5 */ { CS_STATE_ENABLED, "DS.FILTER_TBL" }, + /* 6 */ { CS_STATE_ENABLED, "FM.FreeSpace" }, + /* 7 */ { CS_STATE_ENABLED, "HK.CopyTable" }, + /* 8 */ { CS_STATE_ENABLED, "HS.AppMon_Tbl" }, + /* 9 */ { CS_STATE_ENABLED, "HS.EventMon_Tbl" }, + /* 10 */ { CS_STATE_ENABLED, "HS.MsgActs_Tbl" }, + /* 11 */ { CS_STATE_ENABLED, "HS.ExeCount_Tbl" }, + /* 12 */ { CS_STATE_ENABLED, "LC.LC_ADT" }, + /* 13 */ { CS_STATE_ENABLED, "LC.LC_WDT" }, + /* 14 */ { CS_STATE_ENABLED, "SCH.MSG_DEFS" }, + /* 15 */ { CS_STATE_ENABLED, "SCH.SCHED_DEF" }, + /* 16 */ { CS_STATE_ENABLED, "TO.UDP_CFG" }, + /* 17 */ { CS_STATE_EMPTY, "" }, + /* 18 */ { CS_STATE_EMPTY, "" } }; diff --git a/config/shared/inc/msg_ids.h b/config/shared/inc/msg_ids.h index 36bdb51f0..d7fdf33b3 100644 --- a/config/shared/inc/msg_ids.h +++ b/config/shared/inc/msg_ids.h @@ -27,7 +27,7 @@ /* CF */ /* Range: 0x910 - 0x92f */ #define CF_CMD_MID (0x1910) -#define CF_INCOMING_PDU_MID (0x0FFD) +#define CF_INCOMING_PDU_MID (0x1FFD) #define CF_SEND_HK_MID (0x1912) #define CF_SPARE1_CMD_MID (0x1913) #define CF_SPARE2_CMD_MID (0x1914) @@ -49,7 +49,7 @@ ** IDs defined in this file, the CF table should reference this macro ** definition. */ -#define CF_SPACE_TO_GND_PDU_MID (0x1FFE) +#define CF_SPACE_TO_GND_PDU_MID (0x0FFE) /* CS */ From ddf8e1ff585122a61c14d1dc9d31925fedfd8adf Mon Sep 17 00:00:00 2001 From: Mathew Benson Date: Wed, 3 Feb 2021 00:45:16 -0600 Subject: [PATCH 026/370] CFE_ES, CFE_EVS, and most of CFE_SB displays check out. --- core/base/cfe/fsw/src/evs/cfe_evs_symbols.c | 1 + core/base/cfe/fsw/src/evs/cfe_evs_task.c | 2 +- core/base/cfe/fsw/src/inc/cfe_evs_msg.h | 20 ++- core/base/cfe/fsw/unit-test/evs_UT.c | 8 +- core/base/cfe/wh_design.yaml | 14 +- .../Displays/Core/ES/Main.opi | 2 +- .../Displays/Core/EVS/AddFilter.opi | 21 +-- .../Displays/Core/EVS/DeleteFilter.opi | 12 +- .../Displays/Core/EVS/EnaDisAppEventType.opi | 64 +++++---- .../Displays/Core/EVS/EnaDisAppEvents.opi | 16 +-- .../Displays/Core/EVS/EnaDisEventType.opi | 32 +++-- .../Displays/Core/EVS/EnaDisPorts.opi | 50 ++++--- .../Displays/Core/EVS/Main.opi | 58 +++++++- .../Displays/Core/EVS/ResetAppCounter.opi | 8 +- .../Displays/Core/EVS/ResetFilter.opi | 25 ++-- .../Displays/Core/EVS/SetFilter.opi | 135 +++++++++--------- .../Displays/Core/SB/DumpMapInfo.opi | 12 +- .../Displays/Core/SB/DumpPipeInfo.opi | 12 +- .../Displays/Core/SB/DumpRoutingInfo.opi | 12 +- .../Displays/Core/SB/EnaDisRoutes.opi | 8 +- .../Displays/Core/SB/Main.opi | 68 ++++++++- .../Displays/Core/TBL/Main.opi | 126 +++++++++++----- .../Displays/Core/TIME/Main.opi | 22 +-- 23 files changed, 465 insertions(+), 263 deletions(-) diff --git a/core/base/cfe/fsw/src/evs/cfe_evs_symbols.c b/core/base/cfe/fsw/src/evs/cfe_evs_symbols.c index b52a35e7e..52b122411 100644 --- a/core/base/cfe/fsw/src/evs/cfe_evs_symbols.c +++ b/core/base/cfe/fsw/src/evs/cfe_evs_symbols.c @@ -41,6 +41,7 @@ CFE_EVS_Packet_t CFE_EVS_Packet_S; CFE_EVS_LogFileCmd_t CFE_EVS_LogFileCmd_S; CFE_EVS_AppDataCmd_t CFE_EVS_AppDataCmd_S; CFE_EVS_ModeCmd_t CFE_EVS_ModeCmd_S; +CFE_EVS_FormatCmd_t CFE_EVS_FormatCmd_S; CFE_EVS_BitMaskCmd_t CFE_EVS_BitMaskCmd_S; CFE_EVS_AppNameCmd_t CFE_EVS_AppNameCmd_S; CFE_EVS_AppNameEventIDCmd_t CFE_EVS_AppNameEventIDCmd_S; diff --git a/core/base/cfe/fsw/src/evs/cfe_evs_task.c b/core/base/cfe/fsw/src/evs/cfe_evs_task.c index 6b20b26fd..a123c9086 100644 --- a/core/base/cfe/fsw/src/evs/cfe_evs_task.c +++ b/core/base/cfe/fsw/src/evs/cfe_evs_task.c @@ -523,7 +523,7 @@ void CFE_EVS_ProcessGroundCommand ( CFE_SB_MsgPtr_t EVS_MsgPtr ) case CFE_EVS_SET_EVENT_FORMAT_MODE_CC: - if ((Valid = CFE_EVS_VerifyCmdLength(EVS_MsgPtr, sizeof(CFE_EVS_ModeCmd_t))) == TRUE) + if ((Valid = CFE_EVS_VerifyCmdLength(EVS_MsgPtr, sizeof(CFE_EVS_FormatCmd_t))) == TRUE) { Valid = CFE_EVS_SetEventFormatModeCmd(Payload); } diff --git a/core/base/cfe/fsw/src/inc/cfe_evs_msg.h b/core/base/cfe/fsw/src/inc/cfe_evs_msg.h index 32250d482..b5eadc9fc 100644 --- a/core/base/cfe/fsw/src/inc/cfe_evs_msg.h +++ b/core/base/cfe/fsw/src/inc/cfe_evs_msg.h @@ -269,7 +269,7 @@ extern "C" { ** \cfecmdmnemonic \EVS_SETEVTFMT ** ** \par Command Structure -** #CFE_EVS_ModeCmd_t +** #CFE_EVS_FormatCmd_t ** ** \par Command Verification ** Successful execution of this command may be verified with @@ -985,11 +985,27 @@ typedef struct { } CFE_EVS_AppDataCmd_t; /** -** \brief Set Event Format Mode or Set Log Mode Commands +** \brief Set Event Format Mode Commands ** ** For command details, see #CFE_EVS_SET_EVENT_FORMAT_MODE_CC and/or #CFE_EVS_SET_LOG_MODE_CC ** **/ +typedef struct { + uint8 Mode; /**< \brief Format to use in the command*/ + uint8 Spare; /**< \brief Pad to even byte*/ +} CFE_EVS_FormatCmd_Payload_t; + +typedef struct { + uint8 CmdHeader[CFE_SB_CMD_HDR_SIZE]; + CFE_EVS_FormatCmd_Payload_t Payload; +} CFE_EVS_FormatCmd_t; + +/** +** \brief Set Log Mode Commands +** +** For command details, see #CFE_EVS_SET_LOG_MODE_CC +** +**/ typedef struct { uint8 Mode; /**< \brief Mode to use in the command*/ uint8 Spare; /**< \brief Pad to even byte*/ diff --git a/core/base/cfe/fsw/unit-test/evs_UT.c b/core/base/cfe/fsw/unit-test/evs_UT.c index a8692848b..212a3da82 100644 --- a/core/base/cfe/fsw/unit-test/evs_UT.c +++ b/core/base/cfe/fsw/unit-test/evs_UT.c @@ -677,7 +677,7 @@ void Test_Format(void) int16 EventID[2]; CFE_TIME_SysTime_t time = {0, 0}; - CFE_EVS_ModeCmd_t modecmd; + CFE_EVS_FormatCmd_t formatcmd; CFE_EVS_AppNameBitMaskCmd_t appbitcmd; #ifdef UT_VERBOSE @@ -688,7 +688,7 @@ void Test_Format(void) UT_InitData(); strncpy((char *) appbitcmd.Payload.AppName, "ut_cfe_evs", sizeof(appbitcmd.Payload.AppName)); - modecmd.Payload.Mode = CFE_EVS_LONG_FORMAT; + formatcmd.Payload.Mode = CFE_EVS_LONG_FORMAT; appbitcmd.Payload.BitMask = CFE_EVS_DEBUG_BIT | CFE_EVS_INFORMATION_BIT | CFE_EVS_ERROR_BIT | CFE_EVS_CRITICAL_BIT; UT_SetSBTotalMsgLen(sizeof(CFE_EVS_AppNameBitMaskCmd_t)); @@ -702,8 +702,8 @@ void Test_Format(void) /* Test set event format mode command using an invalid mode */ UT_InitData(); modecmd.Payload.Mode = 0xff; - UT_SetSBTotalMsgLen(sizeof(CFE_EVS_ModeCmd_t)); - UT_SendMsg((CFE_SB_MsgPtr_t) &modecmd, CFE_EVS_CMD_MID, + UT_SetSBTotalMsgLen(sizeof(CFE_EVS_FormatCmd_t)); + UT_SendMsg((CFE_SB_MsgPtr_t) &formatcmd, CFE_EVS_CMD_MID, CFE_EVS_SET_EVENT_FORMAT_MODE_CC); UT_Report(__FILE__, __LINE__, SendMsgEventIDRtn.value == CFE_EVS_ERR_ILLEGALFMTMOD_EID, diff --git a/core/base/cfe/wh_design.yaml b/core/base/cfe/wh_design.yaml index e087ad6c9..95cd086e4 100644 --- a/core/base/cfe/wh_design.yaml +++ b/core/base/cfe/wh_design.yaml @@ -622,6 +622,12 @@ modules: enumerations: OVERWRITE: 0 DISCARD: 1 + - parent: CFE_EVS_FormatCmd_Payload_t + member: Mode + type: enumeration + enumerations: + SHORT: 0 + LONG: 1 - parent: CFE_EVS_AppNameCmd_Payload_t member: AppName type: string @@ -685,7 +691,7 @@ modules: struct: CFE_EVS_BitMaskCmd_t SetEventFormatMode: cc: 4 - struct: CFE_EVS_ModeCmd_t + struct: CFE_EVS_FormatCmd_t EnableAppEventType: cc: 5 struct: CFE_EVS_AppNameBitMaskCmd_t @@ -850,7 +856,7 @@ modules: SendStats: cc: 2 struct: CFE_SB_CmdHdr_t - SendRouteInfo: + WriteRouteInfo: cc: 3 struct: CFE_SB_WriteFileInfoCmd_t EnableRoute: @@ -859,10 +865,10 @@ modules: DisableRoute: cc: 5 struct: CFE_SB_EnRoutCmd_t - SendPipeInfo: + WritePipeInfo: cc: 7 struct: CFE_SB_WriteFileInfoCmd_t - SendMapInfo: + WriteMapInfo: cc: 8 struct: CFE_SB_WriteFileInfoCmd_t EnableSubReport: diff --git a/core/base/tools/commander/workspace_template/Displays/Core/ES/Main.opi b/core/base/tools/commander/workspace_template/Displays/Core/ES/Main.opi index a5c3c09b0..f0450a556 100644 --- a/core/base/tools/commander/workspace_template/Displays/Core/ES/Main.opi +++ b/core/base/tools/commander/workspace_template/Displays/Core/ES/Main.opi @@ -4205,7 +4205,7 @@ $(pv_value) Action Button 86 2285957:177658292c4:-6d7f - 17 + 624 12 \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Core/EVS/AddFilter.opi b/core/base/tools/commander/workspace_template/Displays/Core/EVS/AddFilter.opi index b7b44571b..798586177 100644 --- a/core/base/tools/commander/workspace_template/Displays/Core/EVS/AddFilter.opi +++ b/core/base/tools/commander/workspace_template/Displays/Core/EVS/AddFilter.opi @@ -40,13 +40,14 @@ importPackage(Packages.org.yamcs.studio.script); importPackage(Packages.org.yamcs.studio.data); -var cmdString = '/cfs/cfe_evs/AddEventFilter('; -cmdString = cmdString + 'AppName: ' + VTypeHelper.getString(display.getWidget('AppName').getPropertyValue('pv_value')) + ', '; -cmdString = cmdString + 'EventID: ' + VTypeHelper.getDouble(display.getWidget('EventID').getPropertyValue('pv_value')) + ', '; -cmdString = cmdString + 'Mask: ' + VTypeHelper.getDouble(display.getWidget('Mask').getPropertyValue('pv_value')) + ', '; -cmdString = cmdString + ')'; +appName = VTypeHelper.getString(display.getWidget('AppName').getPropertyValue('pv_value')); +eventID = VTypeHelper.getDouble(display.getWidget('EventID').getPropertyValue('pv_value')); +mask = VTypeHelper.getDouble(display.getWidget('Mask').getPropertyValue('pv_value')); -Yamcs.issueCommand(cmdString);]]> +Yamcs.issueCommand('/cfs/cfe_evs/AddAppEventFilter', { + 'Payload.AppName': appName, + 'Payload.EventID': eventID, + 'Payload.Mask': mask});]]> true @@ -171,6 +172,8 @@ $(pv_value) SCH TO SBN + CFE_ES + CFE_EVS false AppName @@ -287,7 +290,7 @@ $(pv_value) 134 763e00b7:150973f1dd8:-754d 96 - 77 + 74
@@ -361,7 +364,7 @@ $(pv_value) false Mask 0 - true + false loc://Mask<VDouble> 0.0 @@ -384,7 +387,7 @@ $(pv_value) 134 763e00b7:150973f1dd8:-7535 96 - 108 + 105 diff --git a/core/base/tools/commander/workspace_template/Displays/Core/EVS/DeleteFilter.opi b/core/base/tools/commander/workspace_template/Displays/Core/EVS/DeleteFilter.opi index 2e8c786ff..453803790 100644 --- a/core/base/tools/commander/workspace_template/Displays/Core/EVS/DeleteFilter.opi +++ b/core/base/tools/commander/workspace_template/Displays/Core/EVS/DeleteFilter.opi @@ -40,12 +40,12 @@ importPackage(Packages.org.yamcs.studio.script); importPackage(Packages.org.yamcs.studio.data); -var cmdString = '/cfs/cfe_evs/DeleteEventFilter('; -cmdString = cmdString + 'AppName: ' + VTypeHelper.getString(display.getWidget('AppName').getPropertyValue('pv_value')) + ', '; -cmdString = cmdString + 'EventID: ' + VTypeHelper.getDouble(display.getWidget('EventID').getPropertyValue('pv_value')) + ', '; -cmdString = cmdString + ')'; +appName = VTypeHelper.getString(display.getWidget('AppName').getPropertyValue('pv_value')); +eventID = VTypeHelper.getDouble(display.getWidget('EventID').getPropertyValue('pv_value')); -Yamcs.issueCommand(cmdString);]]> +Yamcs.issueCommand('/cfs/cfe_evs/DeleteAppEventFilter', { + 'Payload.AppName': appName, + 'Payload.EventID': eventID});]]> true @@ -170,6 +170,8 @@ $(pv_value) SCH TO SBN + CFE_ES + CFE_EVS false AppName diff --git a/core/base/tools/commander/workspace_template/Displays/Core/EVS/EnaDisAppEventType.opi b/core/base/tools/commander/workspace_template/Displays/Core/EVS/EnaDisAppEventType.opi index 13466f0bc..f7e410c79 100644 --- a/core/base/tools/commander/workspace_template/Displays/Core/EVS/EnaDisAppEventType.opi +++ b/core/base/tools/commander/workspace_template/Displays/Core/EVS/EnaDisAppEventType.opi @@ -28,7 +28,7 @@ true true Display - 250 + 270 763e00b7:150973f1dd8:-7ba3 -1 -1 @@ -76,7 +76,7 @@ $(pv_value) Check Box 100 763e00b7:150973f1dd8:-7b43 - 18 + 30 84 @@ -123,7 +123,7 @@ $(pv_value) Check Box 100 763e00b7:150973f1dd8:-7b37 - 18 + 30 103 @@ -170,7 +170,7 @@ $(pv_value) Check Box 100 763e00b7:150973f1dd8:-7b32 - 18 + 30 122 @@ -217,7 +217,7 @@ $(pv_value) Check Box 100 763e00b7:150973f1dd8:-7b2d - 18 + 30 141 @@ -228,15 +228,19 @@ $(pv_value) importPackage(Packages.org.yamcs.studio.script); importPackage(Packages.org.yamcs.studio.data); -var cmdString = '/cfs/cfe_evs/EnableAppEventType('; -cmdString = cmdString + 'AppName: ' + VTypeHelper.getString(display.getWidget('AppName').getPropertyValue('pv_value')) + ', '; -cmdString = cmdString + 'Critical: ' + VTypeHelper.getDouble(display.getWidget('Critical').getPropertyValue('pv_value')) + ', '; -cmdString = cmdString + 'Error: ' + VTypeHelper.getDouble(display.getWidget('Error').getPropertyValue('pv_value')) + ', '; -cmdString = cmdString + 'Information: ' + VTypeHelper.getDouble(display.getWidget('Information').getPropertyValue('pv_value')) + ', '; -cmdString = cmdString + 'Debug: ' + VTypeHelper.getDouble(display.getWidget('Debug').getPropertyValue('pv_value')) + ', '; -cmdString = cmdString + ')'; +appName = VTypeHelper.getString(display.getWidget('AppName').getPropertyValue('pv_value')); +critFlag = VTypeHelper.getDouble(display.getWidget('Critical').getPropertyValue('pv_value')); +errorFlag = VTypeHelper.getDouble(display.getWidget('Error').getPropertyValue('pv_value')); +infoFlag = VTypeHelper.getDouble(display.getWidget('Information').getPropertyValue('pv_value')); +debugFlag = VTypeHelper.getDouble(display.getWidget('Debug').getPropertyValue('pv_value')); -Yamcs.issueCommand(cmdString);]]> +var mask = (critFlag * 8) + (errorFlag * 4) + (infoFlag * 2) + (debugFlag); + +Yamcs.issueCommand('/cfs/cfe_evs/EnableAppEventType', { + 'Payload.AppName': appName, + 'Payload.BitMask': mask, + 'Payload.Spare': 0 +});]]> true @@ -282,7 +286,7 @@ $(pv_value) Action Button 80 763e00b7:150973f1dd8:-7b0d - 156 + 168 84 @@ -293,15 +297,19 @@ $(pv_value) importPackage(Packages.org.yamcs.studio.script); importPackage(Packages.org.yamcs.studio.data); -var cmdString = '/cfs/cfe_evs/DisableAppEventType('; -cmdString = cmdString + 'AppName: ' + VTypeHelper.getString(display.getWidget('AppName').getPropertyValue('pv_value')) + ', '; -cmdString = cmdString + 'Critical: ' + VTypeHelper.getDouble(display.getWidget('Critical').getPropertyValue('pv_value')) + ', '; -cmdString = cmdString + 'Error: ' + VTypeHelper.getDouble(display.getWidget('Error').getPropertyValue('pv_value')) + ', '; -cmdString = cmdString + 'Information: ' + VTypeHelper.getDouble(display.getWidget('Information').getPropertyValue('pv_value')) + ', '; -cmdString = cmdString + 'Debug: ' + VTypeHelper.getDouble(display.getWidget('Debug').getPropertyValue('pv_value')) + ', '; -cmdString = cmdString + ')'; +appName = VTypeHelper.getString(display.getWidget('AppName').getPropertyValue('pv_value')); +critFlag = VTypeHelper.getDouble(display.getWidget('Critical').getPropertyValue('pv_value')); +errorFlag = VTypeHelper.getDouble(display.getWidget('Error').getPropertyValue('pv_value')); +infoFlag = VTypeHelper.getDouble(display.getWidget('Information').getPropertyValue('pv_value')); +debugFlag = VTypeHelper.getDouble(display.getWidget('Debug').getPropertyValue('pv_value')); + +var mask = (critFlag * 8) + (errorFlag * 4) + (infoFlag * 2) + (debugFlag); -Yamcs.issueCommand(cmdString);]]> +Yamcs.issueCommand('/cfs/cfe_evs/DisableAppEventType', { + 'Payload.AppName': appName, + 'Payload.BitMask': mask, + 'Payload.Spare': 0 +});]]> true @@ -347,7 +355,7 @@ $(pv_value) Action Button 80 763e00b7:150973f1dd8:-789f - 156 + 168 122 @@ -426,6 +434,8 @@ $(pv_value) SCH TO SBN + CFE_EVS + CFE_ES false AppName @@ -442,7 +452,7 @@ $(pv_value) $(pv_value) true Combo - 134 + 163 763e00b7:150973f1dd8:-76ce 102 42 @@ -475,16 +485,16 @@ $(pv_value) false - Enable / Disable App Event + Enable / Disable App Event Type true 1 true Label - 205 + 265 false 6b3345f4:17760d4a2f0:-7b68 - 24 + 12 12 \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Core/EVS/EnaDisAppEvents.opi b/core/base/tools/commander/workspace_template/Displays/Core/EVS/EnaDisAppEvents.opi index 22b481344..c1843addc 100644 --- a/core/base/tools/commander/workspace_template/Displays/Core/EVS/EnaDisAppEvents.opi +++ b/core/base/tools/commander/workspace_template/Displays/Core/EVS/EnaDisAppEvents.opi @@ -40,11 +40,9 @@ importPackage(Packages.org.yamcs.studio.script); importPackage(Packages.org.yamcs.studio.data); -var cmdString = '/cfs/cfe_evs/EnableAppEvents('; -cmdString = cmdString + 'AppName: ' + VTypeHelper.getString(display.getWidget('AppName').getPropertyValue('pv_value')) + ', '; -cmdString = cmdString + ')'; +appName = VTypeHelper.getString(display.getWidget('AppName').getPropertyValue('pv_value')); -Yamcs.issueCommand(cmdString);]]> +Yamcs.issueCommand('/cfs/cfe_evs/EnableAppEvents', {'Payload.AppName': appName});]]> true @@ -101,11 +99,9 @@ $(pv_value) importPackage(Packages.org.yamcs.studio.script); importPackage(Packages.org.yamcs.studio.data); -var cmdString = '/cfs/cfe_evs/DisableAppEvents('; -cmdString = cmdString + 'AppName: ' + VTypeHelper.getString(display.getWidget('AppName').getPropertyValue('pv_value')) + ', '; -cmdString = cmdString + ')'; +appName = VTypeHelper.getString(display.getWidget('AppName').getPropertyValue('pv_value')); -Yamcs.issueCommand(cmdString);]]> +Yamcs.issueCommand('/cfs/cfe_evs/DisableAppEvents', {'Payload.AppName': appName});]]> true @@ -230,6 +226,8 @@ $(pv_value) SCH TO SBN + CFE_ES + CFE_EVS false AppName @@ -279,7 +277,7 @@ $(pv_value) false - Enable / Disable App Event + Enable / Disable App Events true 1 diff --git a/core/base/tools/commander/workspace_template/Displays/Core/EVS/EnaDisEventType.opi b/core/base/tools/commander/workspace_template/Displays/Core/EVS/EnaDisEventType.opi index e603701ee..bd88392de 100644 --- a/core/base/tools/commander/workspace_template/Displays/Core/EVS/EnaDisEventType.opi +++ b/core/base/tools/commander/workspace_template/Displays/Core/EVS/EnaDisEventType.opi @@ -229,13 +229,17 @@ importPackage(Packages.org.yamcs.studio.script); importPackage(Packages.org.yamcs.studio.data); var cmdString = '/cfs/cfe_evs/EnableEventType('; -cmdString = cmdString + 'Critical: ' + VTypeHelper.getDouble(display.getWidget('Critical').getPropertyValue('pv_value')) + ', '; -cmdString = cmdString + 'Error: ' + VTypeHelper.getDouble(display.getWidget('Error').getPropertyValue('pv_value')) + ', '; -cmdString = cmdString + 'Information: ' + VTypeHelper.getDouble(display.getWidget('Information').getPropertyValue('pv_value')) + ', '; -cmdString = cmdString + 'Debug: ' + VTypeHelper.getDouble(display.getWidget('Debug').getPropertyValue('pv_value')) + ', '; -cmdString = cmdString + ')'; +critFlag = VTypeHelper.getDouble(display.getWidget('Critical').getPropertyValue('pv_value')); +errorFlag = VTypeHelper.getDouble(display.getWidget('Error').getPropertyValue('pv_value')); +infoFlag = VTypeHelper.getDouble(display.getWidget('Information').getPropertyValue('pv_value')); +debugFlag = VTypeHelper.getDouble(display.getWidget('Debug').getPropertyValue('pv_value')); -Yamcs.issueCommand(cmdString);]]> +var mask = (critFlag * 8) + (errorFlag * 4) + (infoFlag * 2) + (debugFlag); + +Yamcs.issueCommand('/cfs/cfe_evs/EnableEventType', { + 'Payload.BitMask': mask, + 'Payload.Spare': 0 +});]]> true @@ -293,13 +297,17 @@ importPackage(Packages.org.yamcs.studio.script); importPackage(Packages.org.yamcs.studio.data); var cmdString = '/cfs/cfe_evs/EnableEventType('; -cmdString = cmdString + 'Critical: ' + VTypeHelper.getDouble(display.getWidget('Critical').getPropertyValue('pv_value')) + ', '; -cmdString = cmdString + 'Error: ' + VTypeHelper.getDouble(display.getWidget('Error').getPropertyValue('pv_value')) + ', '; -cmdString = cmdString + 'Information: ' + VTypeHelper.getDouble(display.getWidget('Information').getPropertyValue('pv_value')) + ', '; -cmdString = cmdString + 'Debug: ' + VTypeHelper.getDouble(display.getWidget('Debug').getPropertyValue('pv_value')) + ', '; -cmdString = cmdString + ')'; +critFlag = VTypeHelper.getDouble(display.getWidget('Critical').getPropertyValue('pv_value')); +errorFlag = VTypeHelper.getDouble(display.getWidget('Error').getPropertyValue('pv_value')); +infoFlag = VTypeHelper.getDouble(display.getWidget('Information').getPropertyValue('pv_value')); +debugFlag = VTypeHelper.getDouble(display.getWidget('Debug').getPropertyValue('pv_value')); + +var mask = (critFlag * 8) + (errorFlag * 4) + (infoFlag * 2) + (debugFlag); -Yamcs.issueCommand(cmdString);]]> +Yamcs.issueCommand('/cfs/cfe_evs/DisableEventType', { + 'Payload.BitMask': mask, + 'Payload.Spare': 0 +});]]> true diff --git a/core/base/tools/commander/workspace_template/Displays/Core/EVS/EnaDisPorts.opi b/core/base/tools/commander/workspace_template/Displays/Core/EVS/EnaDisPorts.opi index f2b07d2e3..bfe0af2c8 100644 --- a/core/base/tools/commander/workspace_template/Displays/Core/EVS/EnaDisPorts.opi +++ b/core/base/tools/commander/workspace_template/Displays/Core/EVS/EnaDisPorts.opi @@ -57,8 +57,8 @@ 20 - Critical - loc://Critical + Port4 + loc://Port4 @@ -104,8 +104,8 @@ $(pv_value) 20 - Error - loc://Error + Port3 + loc://Port3 @@ -151,8 +151,8 @@ $(pv_value) 20 - Information - loc://Information + Port2 + loc://Port2 @@ -198,8 +198,8 @@ $(pv_value) 20 - Debug - loc://Debug + Port1 + loc://Port1 @@ -228,14 +228,17 @@ $(pv_value) importPackage(Packages.org.yamcs.studio.script); importPackage(Packages.org.yamcs.studio.data); -var cmdString = '/cfs/cfe_evs/EnablePorts('; -cmdString = cmdString + 'Critical: ' + VTypeHelper.getDouble(display.getWidget('Critical').getPropertyValue('pv_value')) + ', '; -cmdString = cmdString + 'Error: ' + VTypeHelper.getDouble(display.getWidget('Error').getPropertyValue('pv_value')) + ', '; -cmdString = cmdString + 'Information: ' + VTypeHelper.getDouble(display.getWidget('Information').getPropertyValue('pv_value')) + ', '; -cmdString = cmdString + 'Debug: ' + VTypeHelper.getDouble(display.getWidget('Debug').getPropertyValue('pv_value')) + ', '; -cmdString = cmdString + ')'; +port4 = VTypeHelper.getDouble(display.getWidget('Port4').getPropertyValue('pv_value')); +port3 = VTypeHelper.getDouble(display.getWidget('Port3').getPropertyValue('pv_value')); +port2 = VTypeHelper.getDouble(display.getWidget('Port2').getPropertyValue('pv_value')); +port1 = VTypeHelper.getDouble(display.getWidget('Port1').getPropertyValue('pv_value')); -Yamcs.issueCommand(cmdString);]]> +var mask = (port4 * 8) + (port3 * 4) + (port2 * 2) + (port1); + +Yamcs.issueCommand('/cfs/cfe_evs/EnablePorts', { + 'Payload.BitMask': mask, + 'Payload.Spare': 0 +});]]> true @@ -292,14 +295,17 @@ $(pv_value) importPackage(Packages.org.yamcs.studio.script); importPackage(Packages.org.yamcs.studio.data); -var cmdString = '/cfs/cfe_evs/DisablePorts('; -cmdString = cmdString + 'Critical: ' + VTypeHelper.getDouble(display.getWidget('Critical').getPropertyValue('pv_value')) + ', '; -cmdString = cmdString + 'Error: ' + VTypeHelper.getDouble(display.getWidget('Error').getPropertyValue('pv_value')) + ', '; -cmdString = cmdString + 'Information: ' + VTypeHelper.getDouble(display.getWidget('Information').getPropertyValue('pv_value')) + ', '; -cmdString = cmdString + 'Debug: ' + VTypeHelper.getDouble(display.getWidget('Debug').getPropertyValue('pv_value')) + ', '; -cmdString = cmdString + ')'; +port4 = VTypeHelper.getDouble(display.getWidget('Port4').getPropertyValue('pv_value')); +port3 = VTypeHelper.getDouble(display.getWidget('Port3').getPropertyValue('pv_value')); +port2 = VTypeHelper.getDouble(display.getWidget('Port2').getPropertyValue('pv_value')); +port1 = VTypeHelper.getDouble(display.getWidget('Port1').getPropertyValue('pv_value')); + +var mask = (port4 * 8) + (port3 * 4) + (port2 * 2) + (port1); -Yamcs.issueCommand(cmdString);]]> +Yamcs.issueCommand('/cfs/cfe_evs/DisablePorts', { + 'Payload.BitMask': mask, + 'Payload.Spare': 0 +});]]> true diff --git a/core/base/tools/commander/workspace_template/Displays/Core/EVS/Main.opi b/core/base/tools/commander/workspace_template/Displays/Core/EVS/Main.opi index 000b2cd4c..741bdbe76 100644 --- a/core/base/tools/commander/workspace_template/Displays/Core/EVS/Main.opi +++ b/core/base/tools/commander/workspace_template/Displays/Core/EVS/Main.opi @@ -1272,7 +1272,7 @@ $(pv_value) 295 false 763e00b7:150973f1dd8:-7cf4 - 71 + 18 12
@@ -2046,4 +2046,60 @@ $(pv_value) 276 216 + + + + + + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 20 + ../../Resources/send.png + NoOp_34 + 0 + + + + + true + true + false + + + + SendHK + false + $(pv_name) +$(pv_value) + true + Action Button + 86 + 2285957:177658292c4:-6b26 + 333 + 12 + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Core/EVS/ResetAppCounter.opi b/core/base/tools/commander/workspace_template/Displays/Core/EVS/ResetAppCounter.opi index a3e266472..9ff7518f6 100644 --- a/core/base/tools/commander/workspace_template/Displays/Core/EVS/ResetAppCounter.opi +++ b/core/base/tools/commander/workspace_template/Displays/Core/EVS/ResetAppCounter.opi @@ -40,11 +40,9 @@ importPackage(Packages.org.yamcs.studio.script); importPackage(Packages.org.yamcs.studio.data); -var cmdString = '/cfs/cfe_evs/ResetAppCounter('; -cmdString = cmdString + 'AppName: ' + VTypeHelper.getString(display.getWidget('AppName').getPropertyValue('pv_value')) + ', '; -cmdString = cmdString + ')'; +appName = VTypeHelper.getString(display.getWidget('AppName').getPropertyValue('pv_value')); -Yamcs.issueCommand(cmdString);]]> +Yamcs.issueCommand('/cfs/cfe_evs/ResetAppEventCounters', {'Payload.AppName': appName});]]> true @@ -169,6 +167,8 @@ $(pv_value) SCH TO SBN + CFE_ES + CFE_EVS false AppName diff --git a/core/base/tools/commander/workspace_template/Displays/Core/EVS/ResetFilter.opi b/core/base/tools/commander/workspace_template/Displays/Core/EVS/ResetFilter.opi index 3c111c957..6e3a59335 100644 --- a/core/base/tools/commander/workspace_template/Displays/Core/EVS/ResetFilter.opi +++ b/core/base/tools/commander/workspace_template/Displays/Core/EVS/ResetFilter.opi @@ -40,12 +40,12 @@ importPackage(Packages.org.yamcs.studio.script); importPackage(Packages.org.yamcs.studio.data); -var cmdString = '/cfs/cfe_evs/ResetFilter('; -cmdString = cmdString + 'AppName: ' + VTypeHelper.getString(display.getWidget('AppName').getPropertyValue('pv_value')) + ', '; -cmdString = cmdString + 'EventID: ' + VTypeHelper.getDouble(display.getWidget('EventID').getPropertyValue('pv_value')) + ', '; -cmdString = cmdString + ')'; +appName = VTypeHelper.getString(display.getWidget('AppName').getPropertyValue('pv_value')); +eventID = VTypeHelper.getDouble(display.getWidget('EventID').getPropertyValue('pv_value')); -Yamcs.issueCommand(cmdString);]]> +Yamcs.issueCommand('/cfs/cfe_evs/ResetAppEventFilter', { + 'Payload.AppName': appName, + 'Payload.EventID': eventID});]]> true @@ -170,6 +170,8 @@ $(pv_value) SCH TO SBN + CFE_ES + CFE_EVS false AppName @@ -296,11 +298,10 @@ $(pv_value) importPackage(Packages.org.yamcs.studio.script); importPackage(Packages.org.yamcs.studio.data); -var cmdString = '/cfs/cfe_evs/ResetAllFilters('; -cmdString = cmdString + 'AppName: ' + VTypeHelper.getString(display.getWidget('AppName').getPropertyValue('pv_value')) + ', '; -cmdString = cmdString + ')'; +appName = VTypeHelper.getString(display.getWidget('AppName').getPropertyValue('pv_value')); -Yamcs.issueCommand(cmdString);]]> +Yamcs.issueCommand('/cfs/cfe_evs/ResetAppFilters', { + 'Payload.AppName': appName});]]> true @@ -377,16 +378,16 @@ $(pv_value) false - Reset Filter + Reset App Event Filter true 1 true Label - 103 + 193 false 6b3345f4:17760d4a2f0:-7bc4 - 102 + 43 12
\ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Core/EVS/SetFilter.opi b/core/base/tools/commander/workspace_template/Displays/Core/EVS/SetFilter.opi index 7a4dd9090..08e8a2ed8 100644 --- a/core/base/tools/commander/workspace_template/Displays/Core/EVS/SetFilter.opi +++ b/core/base/tools/commander/workspace_template/Displays/Core/EVS/SetFilter.opi @@ -40,13 +40,14 @@ importPackage(Packages.org.yamcs.studio.script); importPackage(Packages.org.yamcs.studio.data); -var cmdString = '/cfs/cfe_evs/SetFilter('; -cmdString = cmdString + 'AppName: ' + VTypeHelper.getString(display.getWidget('AppName').getPropertyValue('pv_value')) + ', '; -cmdString = cmdString + 'EventID: ' + VTypeHelper.getDouble(display.getWidget('EventID').getPropertyValue('pv_value')) + ', '; -cmdString = cmdString + 'Mask: ' + VTypeHelper.getDouble(display.getWidget('Mask').getPropertyValue('pv_value')) + ', '; -cmdString = cmdString + ')'; +appName = VTypeHelper.getString(display.getWidget('AppName').getPropertyValue('pv_value')); +eventID = VTypeHelper.getDouble(display.getWidget('EventID').getPropertyValue('pv_value')); +mask = VTypeHelper.getNumber(display.getWidget('Mask').getPropertyValue('pv_value')); -Yamcs.issueCommand(cmdString);]]> +Yamcs.issueCommand('/cfs/cfe_evs/SetAppEventFilter', { + 'Payload.AppName': appName, + 'Payload.EventID': eventID, + 'Payload.Mask': mask});]]> true @@ -92,9 +93,49 @@ $(pv_value) Action Button 90 763e00b7:150973f1dd8:-7b0d - 75 + 85 144
+ + + false + + + + + + + 0 + 1 + true + + Default Bold + + + + + 20 + 1 + Label_49 + + + true + true + false + + + Set Filter + + true + 1 + true + Label + 168 + false + 6b3345f4:17760d4a2f0:-7bd2 + 36 + 12 + false @@ -131,7 +172,7 @@ $(pv_value) Label 80 false - 763e00b7:150973f1dd8:-76cf + 2285957:177658292c4:-63a5 6 41 @@ -144,9 +185,9 @@ $(pv_value) true - + - 14 + 0 1 true @@ -171,6 +212,8 @@ $(pv_value) SCH TO SBN + CFE_ES + CFE_EVS false AppName @@ -188,7 +231,7 @@ $(pv_value) true Combo 134 - 763e00b7:150973f1dd8:-76ce + 2285957:177658292c4:-63a4 96 36
@@ -226,11 +269,11 @@ $(pv_value) 1 true Label - 80 + 69 false - 763e00b7:150973f1dd8:-754e - 1 - 75 + 2285957:177658292c4:-63a3 + 12 + 77
@@ -265,7 +308,7 @@ $(pv_value) EventID 0 false - loc://EventID<VDouble> + loc://EventID 0.0 @@ -285,9 +328,9 @@ $(pv_value) true Text Input 134 - 763e00b7:150973f1dd8:-754d + 2285957:177658292c4:-63a2 96 - 72 + 74 @@ -323,11 +366,11 @@ $(pv_value) 1 true Label - 80 + 51 false - 763e00b7:150973f1dd8:-7536 - 1 - 105 + 2285957:177658292c4:-63a1 + 30 + 108 @@ -361,8 +404,8 @@ $(pv_value) false Mask 0 - true - loc://Mask<VDouble> + false + loc://Mask 0.0 @@ -382,48 +425,8 @@ $(pv_value) true Text Input 134 - 763e00b7:150973f1dd8:-7535 + 2285957:177658292c4:-61b9 96 - 102 - - - - false - - - - - - - 0 - 1 - true - - Default Bold - - - - - 20 - 1 - Label_49 - - - true - true - false - - - Set Filter - - true - 1 - true - Label - 168 - false - 6b3345f4:17760d4a2f0:-7bd2 - 36 - 12 + 105 \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Core/SB/DumpMapInfo.opi b/core/base/tools/commander/workspace_template/Displays/Core/SB/DumpMapInfo.opi index 69c116298..16698c2d3 100644 --- a/core/base/tools/commander/workspace_template/Displays/Core/SB/DumpMapInfo.opi +++ b/core/base/tools/commander/workspace_template/Displays/Core/SB/DumpMapInfo.opi @@ -35,22 +35,14 @@ - ../scripts/RestartApp.js + true diff --git a/core/base/tools/commander/workspace_template/Displays/Core/SB/DumpPipeInfo.opi b/core/base/tools/commander/workspace_template/Displays/Core/SB/DumpPipeInfo.opi index 32ca0ef07..79e28af4a 100644 --- a/core/base/tools/commander/workspace_template/Displays/Core/SB/DumpPipeInfo.opi +++ b/core/base/tools/commander/workspace_template/Displays/Core/SB/DumpPipeInfo.opi @@ -35,22 +35,14 @@ - ../scripts/RestartApp.js + true diff --git a/core/base/tools/commander/workspace_template/Displays/Core/SB/DumpRoutingInfo.opi b/core/base/tools/commander/workspace_template/Displays/Core/SB/DumpRoutingInfo.opi index 2e298cb2d..6fcdac7ec 100644 --- a/core/base/tools/commander/workspace_template/Displays/Core/SB/DumpRoutingInfo.opi +++ b/core/base/tools/commander/workspace_template/Displays/Core/SB/DumpRoutingInfo.opi @@ -35,22 +35,14 @@ - ../scripts/RestartApp.js + true diff --git a/core/base/tools/commander/workspace_template/Displays/Core/SB/EnaDisRoutes.opi b/core/base/tools/commander/workspace_template/Displays/Core/SB/EnaDisRoutes.opi index e12a447df..e1dec67d6 100644 --- a/core/base/tools/commander/workspace_template/Displays/Core/SB/EnaDisRoutes.opi +++ b/core/base/tools/commander/workspace_template/Displays/Core/SB/EnaDisRoutes.opi @@ -40,8 +40,8 @@ importPackage(Packages.org.yamcs.studio.script); importPackage(Packages.org.yamcs.studio.data); -var MsgID =VTypeHelper.getDouble(display.getWidget('MsgID').getPropertyValue('pv_value')); -var PipeID =VTypeHelper.getDouble(display.getWidget('PipeID').getPropertyValue('pv_value')); +var MsgID =VTypeHelper.getNumber(display.getWidget('MsgID').getPropertyValue('pv_value')); +var PipeID =VTypeHelper.getNumber(display.getWidget('PipeID').getPropertyValue('pv_value')); Yamcs.issueCommand('/cfs/cfe_sb/EnableRoute', { 'MsgID': MsgID, @@ -341,8 +341,8 @@ var MsgID =VTypeHelper.getDouble(display.getWidget('MsgID').getPropertyValue('pv var PipeID =VTypeHelper.getDouble(display.getWidget('PipeID').getPropertyValue('pv_value')); Yamcs.issueCommand('/cfs/cfe_sb/DisableRoute', { - 'MsgID': MsgID, - 'PipeID': PipeID}); + 'Payload.MsgId': MsgID, + 'Payload.Spare': 0}); ]]> true diff --git a/core/base/tools/commander/workspace_template/Displays/Core/SB/Main.opi b/core/base/tools/commander/workspace_template/Displays/Core/SB/Main.opi index 72dbdc336..e05c79e14 100644 --- a/core/base/tools/commander/workspace_template/Displays/Core/SB/Main.opi +++ b/core/base/tools/commander/workspace_template/Displays/Core/SB/Main.opi @@ -1272,7 +1272,7 @@ $(pv_value) 295 false 763e00b7:150973f1dd8:-7cf4 - 66 + 6 6 @@ -1282,7 +1282,7 @@ $(pv_value) true - 0 + 1 @@ -1337,7 +1337,7 @@ $(pv_value) true - 0 + 1 @@ -1392,7 +1392,7 @@ $(pv_value) true - 0 + 1 @@ -1447,7 +1447,7 @@ $(pv_value) true - 0 + 1 @@ -1686,7 +1686,7 @@ $(pv_value) true - 0 + 1 @@ -1826,4 +1826,60 @@ $(pv_value) 169 292 + + + + + + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 20 + ../../Resources/send.png + NoOp_34 + 0 + + + + + true + true + false + + + + SendHK + false + $(pv_name) +$(pv_value) + true + Action Button + 86 + 1075cf36:17766873921:-7abf + 342 + 6 + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Core/TBL/Main.opi b/core/base/tools/commander/workspace_template/Displays/Core/TBL/Main.opi index 5e1922a50..7be9c798d 100644 --- a/core/base/tools/commander/workspace_template/Displays/Core/TBL/Main.opi +++ b/core/base/tools/commander/workspace_template/Displays/Core/TBL/Main.opi @@ -28,7 +28,7 @@ true true Display - 450 + 500 45ea5983:1502a6e6386:-7f06 -1 -1 @@ -622,7 +622,7 @@ $(pv_value) 1 true Text Update - 100 + 168 false 2b4f25d5:1502b5812fe:-7cf7 169 @@ -674,7 +674,7 @@ $(pv_value) 1 true Text Update - 100 + 168 false 2b4f25d5:1502b5812fe:-7cf2 169 @@ -726,7 +726,7 @@ $(pv_value) 1 true Text Update - 100 + 168 false 2b4f25d5:1502b5812fe:-7ced 169 @@ -778,7 +778,7 @@ $(pv_value) 1 true Text Update - 100 + 168 false 2b4f25d5:1502b5812fe:-7ce8 169 @@ -830,7 +830,7 @@ $(pv_value) 1 true Text Update - 100 + 168 false 2b4f25d5:1502b5812fe:-7ce3 169 @@ -882,7 +882,7 @@ $(pv_value) 1 true Text Update - 100 + 168 false 2b4f25d5:1502b5812fe:-7cde 169 @@ -934,7 +934,7 @@ $(pv_value) 1 true Text Update - 100 + 168 false 2b4f25d5:1502b5812fe:-7cd9 169 @@ -943,10 +943,12 @@ $(pv_value) - scripts/NoOp.js + - false +importPackage(Packages.org.yamcs.studio.script); + +Yamcs.issueCommand('/cfs/cfe_tbl/NoOp', {});]]> + true @@ -996,10 +998,12 @@ $(pv_value) - scripts/ResetCounters.js + - false +importPackage(Packages.org.yamcs.studio.script); + +Yamcs.issueCommand('/cfs/cfe_tbl/Reset', {});]]> + true @@ -1139,7 +1143,7 @@ $(pv_value) Action Button 130 763e00b7:150973f1dd8:-7ba6 - 294 + 360 144 @@ -1228,7 +1232,7 @@ $(pv_value) 1 true Text Update - 100 + 168 false 763e00b7:150973f1dd8:-7380 169 @@ -1320,7 +1324,7 @@ $(pv_value) 1 true Text Update - 100 + 168 false 763e00b7:150973f1dd8:-7378 169 @@ -1412,7 +1416,7 @@ $(pv_value) 1 true Text Update - 100 + 168 false 35ebaa52:1509cf6a868:-7ae5 169 @@ -1504,7 +1508,7 @@ $(pv_value) 1 true Text Update - 100 + 168 false 35ebaa52:1509cf6a868:-7ada 169 @@ -1596,7 +1600,7 @@ $(pv_value) 1 true Text Update - 100 + 168 false 35ebaa52:1509cf6a868:-7abd 169 @@ -1688,7 +1692,7 @@ $(pv_value) 1 true Text Update - 100 + 168 false 35ebaa52:1509cf6a868:-7ab2 169 @@ -1740,7 +1744,7 @@ $(pv_value) 1 true Text Update - 100 + 168 false 35ebaa52:1509cf6a868:-7aa4 169 @@ -1832,7 +1836,7 @@ $(pv_value) 1 true Text Update - 100 + 168 false 35ebaa52:1509cf6a868:-7a99 169 @@ -1924,7 +1928,7 @@ $(pv_value) 1 true Text Update - 100 + 168 false 35ebaa52:1509cf6a868:-7a8e 169 @@ -2016,7 +2020,7 @@ $(pv_value) 1 true Text Update - 100 + 168 false 35ebaa52:1509cf6a868:-7a83 169 @@ -2108,7 +2112,7 @@ $(pv_value) 1 true Text Update - 100 + 168 false 35ebaa52:1509cf6a868:-7a5f 169 @@ -2166,7 +2170,7 @@ $(pv_value) Action Button 130 35ebaa52:1509cf6a868:-7980 - 294 + 360 169 @@ -2221,7 +2225,7 @@ $(pv_value) Action Button 130 35ebaa52:1509cf6a868:-7976 - 294 + 360 194 @@ -2276,7 +2280,7 @@ $(pv_value) Action Button 130 35ebaa52:1509cf6a868:-796c - 294 + 360 219 @@ -2331,7 +2335,7 @@ $(pv_value) Action Button 130 35ebaa52:1509cf6a868:-7965 - 294 + 360 244 @@ -2386,7 +2390,7 @@ $(pv_value) Action Button 130 35ebaa52:1509cf6a868:-794e - 294 + 360 269 @@ -2441,7 +2445,7 @@ $(pv_value) Action Button 130 35ebaa52:1509cf6a868:-7940 - 294 + 360 294 @@ -2496,7 +2500,63 @@ $(pv_value) Action Button 130 35ebaa52:1509cf6a868:-7936 - 294 + 360 319 + + + + + + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 20 + ../../Resources/send.png + NoOp_34 + 0 + + + + + true + true + false + + + + SendHK + false + $(pv_name) +$(pv_value) + true + Action Button + 86 + 1075cf36:17766873921:-79f9 + 396 + 6 + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Core/TIME/Main.opi b/core/base/tools/commander/workspace_template/Displays/Core/TIME/Main.opi index fb578d962..9eb78f18c 100644 --- a/core/base/tools/commander/workspace_template/Displays/Core/TIME/Main.opi +++ b/core/base/tools/commander/workspace_template/Displays/Core/TIME/Main.opi @@ -626,7 +626,7 @@ Yamcs.issueCommand('/cfs/cfe_time/Noop', {});]]> This command performs no other function than to increment the command execution counter. The command may be used to verify general aliveness of the Event Services task. true Action Button - 67 + 79 39deb42:1504a4eb8cc:-7de2 276 55 @@ -682,7 +682,7 @@ Yamcs.issueCommand('/cfs/cfe_time/Reset', {});]]> $(pv_value) true Action Button - 67 + 79 -9ddfcbe:1507831914f:-7cfc 276 74 @@ -724,7 +724,7 @@ $(pv_value) 295 false 763e00b7:150973f1dd8:-7cf4 - 66 + 12 6 @@ -734,7 +734,7 @@ $(pv_value) true - 0 + 1 @@ -909,7 +909,7 @@ $(pv_value) true - 0 + 1 @@ -964,7 +964,7 @@ $(pv_value) true - 0 + 1 @@ -1019,7 +1019,7 @@ $(pv_value) true - 0 + 1 @@ -1074,7 +1074,7 @@ $(pv_value) true - 0 + 1 @@ -1129,7 +1129,7 @@ $(pv_value) true - 0 + 1 @@ -1184,7 +1184,7 @@ $(pv_value) true - 0 + 1 @@ -1239,7 +1239,7 @@ $(pv_value) true - 0 + 1 From 6736726cf7deac2311b807c584b38e4000e6f0fe Mon Sep 17 00:00:00 2001 From: Mathew Benson Date: Wed, 3 Feb 2021 09:48:29 -0600 Subject: [PATCH 027/370] Updated CF, CI, CS, and DS displays --- .../Displays/Apps/CF/Main.opi | 122 +- .../Displays/Apps/CF/ViewConfig.opi | 2 +- .../Displays/Apps/CI/Main.opi | 934 ++------------ .../Displays/Apps/CS/Main.opi | 1104 +++++++++-------- .../Displays/Apps/DS/Main.opi | 232 ++-- 5 files changed, 990 insertions(+), 1404 deletions(-) diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/CF/Main.opi b/core/base/tools/commander/workspace_template/Displays/Apps/CF/Main.opi index d8b53a0ce..ecd5fb7dd 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/CF/Main.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/CF/Main.opi @@ -124,7 +124,7 @@ $(pv_value) Action Button 113 31ffe3bf:150a7259bb9:-75f0 - 70 + 18 42 @@ -179,7 +179,7 @@ $(pv_value) Action Button 113 31ffe3bf:150a7259bb9:-75dd - 70 + 18 66 @@ -234,7 +234,7 @@ $(pv_value) Action Button 113 31ffe3bf:150a7259bb9:-75d6 - 70 + 18 89 @@ -289,7 +289,7 @@ $(pv_value) Action Button 113 31ffe3bf:150a7259bb9:-75cf - 70 + 18 112 @@ -344,7 +344,119 @@ $(pv_value) Action Button 113 31ffe3bf:150a7259bb9:-6f00 - 70 + 18 135 + + + + + + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 20 + ../../Resources/send.png + NoOp_34 + 0 + + + + + true + true + false + + + + SendHK + false + $(pv_name) +$(pv_value) + true + Action Button + 97 + 5e28a52b:177681d8a5c:-7a51 + 144 + 45 + + + + + + + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 20 + ../../Resources/send.png + NoOp_1 + 0 + + + + + true + true + false + + + + WakeUp + false + $(pv_name) +$(pv_value) + true + Action Button + 97 + 5e28a52b:177681d8a5c:-7a49 + 144 + 64 + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/CF/ViewConfig.opi b/core/base/tools/commander/workspace_template/Displays/Apps/CF/ViewConfig.opi index afc219589..b3795a17e 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/CF/ViewConfig.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/CF/ViewConfig.opi @@ -1158,7 +1158,7 @@ $(pv_value) Text Update_20 0 false - + /cfs/cf/CF_ConfigPacket_t.CfgTbleFilename 0.0 diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/CI/Main.opi b/core/base/tools/commander/workspace_template/Displays/Apps/CI/Main.opi index dfdfb45bc..f845d779f 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/CI/Main.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/CI/Main.opi @@ -15,7 +15,7 @@ 6 - 410 + 200 true @@ -28,7 +28,7 @@ true true Display - 300 + 310 -33cb7c72:150aa4c347f:-76c2 -1 -1 @@ -81,8 +81,8 @@ $(pv_value) 100 false -33cb7c72:150aa4c347f:-75ff - 95 - 57 + 108 + 36
@@ -118,11 +118,11 @@ $(pv_value) 1 true Label - 72 + 97 false -33cb7c72:150aa4c347f:-75fe - 12 - 57 + 0 + 36 @@ -161,48 +161,8 @@ $(pv_value) 60 false -33cb7c72:150aa4c347f:-75fd - 24 - 76 - - - - false - - - - - - - 0 - 1 - true - - Default Bold - - - - - 20 - 1 - Label_46 - - - true - true - false - - - Commanding - - true - 1 - true - Label - 164 - false - -33cb7c72:150aa4c347f:-75fc - 72 - 30 + 37 + 55 @@ -253,8 +213,8 @@ $(pv_value) 100 false -33cb7c72:150aa4c347f:-75fb - 95 - 76 + 108 + 55 @@ -307,10 +267,10 @@ Yamcs.issueCommand('/cfs/ci/Noop', {});]]> $(pv_value) true Action Button - 67 + 74 -33cb7c72:150aa4c347f:-75fa - 210 - 58 + 223 + 37 @@ -363,10 +323,10 @@ Yamcs.issueCommand('/cfs/ci/Reset', {});]]> $(pv_value) true Action Button - 67 + 74 -33cb7c72:150aa4c347f:-75f9 - 210 - 79 + 223 + 58 @@ -402,10 +362,10 @@ $(pv_value) 1 true Label - 272 + 192 false -33cb7c72:150aa4c347f:-75c9 - 12 + 46 6 @@ -445,8 +405,8 @@ $(pv_value) 163 false -736e4684:150ac3c95a1:-6f2e - 12 - 120 + 8 + 96 @@ -485,15 +445,18 @@ $(pv_value) 151 false -736e4684:150ac3c95a1:-6f22 - 24 - 139 + 20 + 115 - + + false false + false + true @@ -503,12 +466,19 @@ $(pv_value) Default + false + 1 20 - 2 - Label_69 + 0 + Text Update_2 + 0 + false + /cfs/ci/CI_HkTlm_t.IngestMsgCount + + 0.0 true @@ -516,24 +486,29 @@ $(pv_value) false - FD PDUs Dropped - - true + true + ###### + $(pv_name) +$(pv_value) + false 1 true - Label - 131 + Text Update + 100 false - -736e4684:150ac3c95a1:-6f1d - 44 - 158 + 7b256c5c:150b979c7e3:-7b90 + 180 + 96 - + + false false + false + true @@ -543,12 +518,19 @@ $(pv_value) Default + false + 1 20 - 2 - Label_70 + 0 + Text Update_3 + 0 + false + /cfs/ci/CI_HkTlm_t.IngestErrorCount + + 0.0 true @@ -556,24 +538,38 @@ $(pv_value) false - EOF PDUs Dropped - - true + true + ###### + $(pv_name) +$(pv_value) + false 1 true - Label - 131 + Text Update + 100 false - 7b256c5c:150b979c7e3:-7c28 - 44 - 177 + 7b256c5c:150b979c7e3:-7b8f + 180 + 115 - - - false + + + + + + true + + + + false + true - + + false @@ -583,52 +579,16 @@ $(pv_value) Default + false - - - 20 - 2 - Label_71 - - - true - true - false - - - FIN PDUs Dropped - - true - 1 - true - Label - 131 - false - 7b256c5c:150b979c7e3:-7c23 - 44 - 196 - - - - false - - - - - - 0 - 1 - true - - Default - - - - 20 - 2 - Label_72 + 18 + ../../Resources/send.png + NoOp_2 + 0 + + true @@ -636,24 +596,36 @@ $(pv_value) false - MD PDUs Dropped - - true - 1 + + WakeUp + false + $(pv_name) +$(pv_value) true - Label - 131 - false - 7b256c5c:150b979c7e3:-7c1e - 44 - 234 + Action Button + 90 + 5e28a52b:177681d8a5c:-79f8 + 62 + 144 - - - false + + + + + + true + + + + false + true - + + false @@ -663,52 +635,16 @@ $(pv_value) Default + false - - - 20 - 2 - Label_73 - - - true - true - false - - - ACK PDUs Dropped - - true - 1 - true - Label - 131 - false - 7b256c5c:150b979c7e3:-7c19 - 44 - 215 - - - - false - - - - - - 0 - 1 - true - - Default - - - - 20 - 2 - Label_74 + 18 + ../../Resources/send.png + NoOp_3 + 0 + + true @@ -716,616 +652,16 @@ $(pv_value) false - PDUs Captured - - true - 1 + + Process Timeouts + false + $(pv_name) +$(pv_value) true - Label - 131 - false - 7b256c5c:150b979c7e3:-7c14 - 44 - 272 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 2 - Label_75 - - - true - true - false - - - NAK PDUs Dropped - - true - 1 - true - Label - 131 - false - 7b256c5c:150b979c7e3:-7c0f - 44 - 253 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 2 - Label_76 - - - true - true - false - - - Pkt Sub Count - - true - 1 - true - Label - 131 - false - 7b256c5c:150b979c7e3:-7c0a - 44 - 291 - - - - false - false - false - - - - true - - - - 0 - 1 - true - - Default - - false - - - - 1 - 20 - 0 - Text Update_2 - 0 - false - /cfs/ci/CI_HkTlm_t.IngestMsgCount - - 0.0 - - - true - true - false - - - true - ###### - $(pv_name) -$(pv_value) - false - 1 - true - Text Update - 100 - false - 7b256c5c:150b979c7e3:-7b90 - 184 - 120 - - - - false - false - false - - - - true - - - - 0 - 1 - true - - Default - - false - - - - 1 - 20 - 0 - Text Update_3 - 0 - false - /cfs/ci/CI_HkTlm_t.IngestErrorCount - - 0.0 - - - true - true - false - - - true - ###### - $(pv_name) -$(pv_value) - false - 1 - true - Text Update - 100 - false - 7b256c5c:150b979c7e3:-7b8f - 184 - 139 - - - - false - false - false - - - - true - - - - 0 - 1 - true - - Default - - false - - - - 1 - 20 - 0 - Text Update_4 - 0 - false - /CFS/CI/ - - 0.0 - - - true - true - false - - - true - ###### - $(pv_name) -$(pv_value) - false - 1 - true - Text Update - 100 - false - 7b256c5c:150b979c7e3:-7b8e - 184 - 158 - - - - false - false - false - - - - true - - - - 0 - 1 - true - - Default - - false - - - - 1 - 20 - 0 - Text Update_5 - 0 - false - /CFS/CI/EOFPdusDropped - - 0.0 - - - true - true - false - - - true - ###### - $(pv_name) -$(pv_value) - false - 1 - true - Text Update - 100 - false - 7b256c5c:150b979c7e3:-7b8d - 184 - 177 - - - - false - false - false - - - - true - - - - 0 - 1 - true - - Default - - false - - - - 1 - 20 - 0 - Text Update_6 - 0 - false - /CFS/CI/FINPdusDropped - - 0.0 - - - true - true - false - - - true - ###### - $(pv_name) -$(pv_value) - false - 1 - true - Text Update - 100 - false - 7b256c5c:150b979c7e3:-7b8c - 184 - 196 - - - - false - false - false - - - - true - - - - 0 - 1 - true - - Default - - false - - - - 1 - 20 - 0 - Text Update_7 - 0 - false - /CFS/CI/ACKPdusDropped - - 0.0 - - - true - true - false - - - true - ###### - $(pv_name) -$(pv_value) - false - 1 - true - Text Update - 100 - false - 7b256c5c:150b979c7e3:-7b8b - 184 - 215 - - - - false - false - false - - - - true - - - - 0 - 1 - true - - Default - - false - - - - 1 - 20 - 0 - Text Update_8 - 0 - false - /CFS/CI/MDPdusDropped - - 0.0 - - - true - true - false - - - true - ###### - $(pv_name) -$(pv_value) - false - 1 - true - Text Update - 100 - false - 7b256c5c:150b979c7e3:-7b8a - 184 - 234 - - - - false - false - false - - - - true - - - - 0 - 1 - true - - Default - - false - - - - 1 - 20 - 0 - Text Update_9 - 0 - false - /CFS/CI/NAKPdusDropped - - 0.0 - - - true - true - false - - - true - ###### - $(pv_name) -$(pv_value) - false - 1 - true - Text Update - 100 - false - 7b256c5c:150b979c7e3:-7b89 - 184 - 253 - - - - false - false - false - - - - true - - - - 0 - 1 - true - - Default - - false - - - - 1 - 20 - 0 - Text Update_10 - 0 - false - /CFS/CI/PDUsCaptured - - 0.0 - - - true - true - false - - - true - ###### - $(pv_name) -$(pv_value) - false - 1 - true - Text Update - 100 - false - 7b256c5c:150b979c7e3:-7b88 - 184 - 272 - - - - false - false - false - - - - true - - - - 0 - 1 - true - - Default - - false - - - - 1 - 20 - 0 - Text Update_11 - 0 - false - /CFS/CI/PktSubCount - - 0.0 - - - true - true - false - - - true - ###### - $(pv_name) -$(pv_value) - false - 1 - true - Text Update - 100 - false - 7b256c5c:150b979c7e3:-7b87 - 184 - 291 + Action Button + 156 + 5e28a52b:177681d8a5c:-79ee + 62 + 168 \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/CS/Main.opi b/core/base/tools/commander/workspace_template/Displays/Apps/CS/Main.opi index f068f6a1f..fef3946ca 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/CS/Main.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/CS/Main.opi @@ -28,7 +28,7 @@ true true Display - 750 + 790 -33cb7c72:150aa4c347f:-76c2 -1 -1 @@ -42,9 +42,9 @@ true - + - 0 + 1 1 true @@ -81,8 +81,8 @@ $(pv_value) 100 false -33cb7c72:150aa4c347f:-75ff - 95 - 57 + 102 + 54 @@ -118,11 +118,11 @@ $(pv_value) 1 true Label - 72 + 90 false -33cb7c72:150aa4c347f:-75fe - 6 - 57 + -5 + 54 @@ -158,11 +158,11 @@ $(pv_value) 1 true Label - 60 + 73 false -33cb7c72:150aa4c347f:-75fd - 18 - 76 + 12 + 73 @@ -201,8 +201,8 @@ $(pv_value) 164 false -33cb7c72:150aa4c347f:-75fc - 66 - 30 + 47 + 27 @@ -214,9 +214,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -253,16 +253,18 @@ $(pv_value) 100 false -33cb7c72:150aa4c347f:-75fb - 95 - 76 + 102 + 73 - scripts/NoOp.js + - false +importPackage(Packages.org.yamcs.studio.script); + +Yamcs.issueCommand('/cfs/cs/Noop', {});]]> + true @@ -285,7 +287,7 @@ $(pv_value) - 13 + 20 ../../Resources/send.png NoOp 0 @@ -305,18 +307,20 @@ $(pv_value) $(pv_value) true Action Button - 67 + 83 -33cb7c72:150aa4c347f:-75fa - 217 - 60 + 224 + 52 - scripts/ResetCounters.js + - false +importPackage(Packages.org.yamcs.studio.script); + +Yamcs.issueCommand('/cfs/cs/Reset', {});]]> + true @@ -339,7 +343,7 @@ $(pv_value) - 13 + 20 ../../Resources/send.png NoOp_1 0 @@ -359,10 +363,10 @@ $(pv_value) $(pv_value) true Action Button - 67 + 83 -33cb7c72:150aa4c347f:-75f9 - 217 - 79 + 224 + 71 @@ -401,8 +405,8 @@ $(pv_value) 272 false -33cb7c72:150aa4c347f:-75c9 - 12 - 6 + 240 + 12 @@ -414,9 +418,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -453,8 +457,8 @@ $(pv_value) 100 false -33cb7c72:150aa4c347f:-7580 - 483 - 384 + 464 + 381 @@ -466,9 +470,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -505,8 +509,8 @@ $(pv_value) 100 false -33cb7c72:150aa4c347f:-757f - 252 - 138 + 233 + 135 @@ -518,9 +522,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -557,8 +561,8 @@ $(pv_value) 100 false -33cb7c72:150aa4c347f:-757e - 252 - 157 + 233 + 154 @@ -570,9 +574,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -609,8 +613,8 @@ $(pv_value) 100 false -33cb7c72:150aa4c347f:-757d - 252 - 176 + 233 + 173 @@ -622,9 +626,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -661,8 +665,8 @@ $(pv_value) 100 false -33cb7c72:150aa4c347f:-757c - 252 - 195 + 233 + 192 @@ -674,9 +678,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -713,8 +717,8 @@ $(pv_value) 100 false -33cb7c72:150aa4c347f:-757b - 252 - 214 + 233 + 211 @@ -726,9 +730,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -765,8 +769,8 @@ $(pv_value) 100 false -33cb7c72:150aa4c347f:-757a - 252 - 233 + 233 + 230 @@ -812,8 +816,8 @@ $(pv_value) Check Box 100 -33cb7c72:150aa4c347f:-7579 - 483 - 339 + 464 + 336 @@ -859,8 +863,8 @@ $(pv_value) Check Box 100 -33cb7c72:150aa4c347f:-7578 - 134 - 377 + 115 + 374 @@ -872,9 +876,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -911,8 +915,8 @@ $(pv_value) 100 false -33cb7c72:150aa4c347f:-7577 - 360 - 138 + 341 + 135 @@ -924,9 +928,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -963,8 +967,8 @@ $(pv_value) 100 false -33cb7c72:150aa4c347f:-7576 - 360 - 157 + 341 + 154 @@ -976,9 +980,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -1015,8 +1019,8 @@ $(pv_value) 100 false -33cb7c72:150aa4c347f:-7575 - 360 - 176 + 341 + 173 @@ -1028,9 +1032,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -1067,8 +1071,8 @@ $(pv_value) 100 false -33cb7c72:150aa4c347f:-7574 - 360 - 195 + 341 + 192 @@ -1080,9 +1084,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -1119,8 +1123,8 @@ $(pv_value) 100 false -33cb7c72:150aa4c347f:-7573 - 360 - 233 + 341 + 230 @@ -1132,9 +1136,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -1171,8 +1175,8 @@ $(pv_value) 100 false -33cb7c72:150aa4c347f:-7572 - 360 - 214 + 341 + 211 @@ -1184,9 +1188,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -1223,8 +1227,8 @@ $(pv_value) 100 false -33cb7c72:150aa4c347f:-7571 - 483 - 301 + 464 + 298 @@ -1236,9 +1240,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -1275,8 +1279,8 @@ $(pv_value) 100 false -33cb7c72:150aa4c347f:-7570 - 483 - 320 + 464 + 317 @@ -1288,9 +1292,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -1327,8 +1331,8 @@ $(pv_value) 100 false -33cb7c72:150aa4c347f:-756f - 468 - 138 + 449 + 135 @@ -1340,9 +1344,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -1379,8 +1383,8 @@ $(pv_value) 100 false -33cb7c72:150aa4c347f:-756e - 468 - 214 + 449 + 211 @@ -1392,9 +1396,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -1431,8 +1435,8 @@ $(pv_value) 100 false -33cb7c72:150aa4c347f:-756d - 468 - 233 + 449 + 230 @@ -1444,9 +1448,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -1483,8 +1487,8 @@ $(pv_value) 100 false -33cb7c72:150aa4c347f:-756c - 134 - 301 + 115 + 298 @@ -1496,9 +1500,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -1535,8 +1539,8 @@ $(pv_value) 100 false -33cb7c72:150aa4c347f:-756b - 134 - 320 + 115 + 317 @@ -1548,9 +1552,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -1587,8 +1591,8 @@ $(pv_value) 100 false -33cb7c72:150aa4c347f:-756a - 134 - 339 + 115 + 336 @@ -1600,9 +1604,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -1639,8 +1643,8 @@ $(pv_value) 100 false -33cb7c72:150aa4c347f:-7569 - 134 - 358 + 115 + 355 @@ -1676,11 +1680,11 @@ $(pv_value) 1 true Label - 59 + 77 false -33cb7c72:150aa4c347f:-7557 - 186 - 138 + 149 + 135 @@ -1719,8 +1723,8 @@ $(pv_value) 77 false -33cb7c72:150aa4c347f:-754f - 168 - 157 + 149 + 154 @@ -1759,8 +1763,8 @@ $(pv_value) 77 false -33cb7c72:150aa4c347f:-754a - 168 - 176 + 149 + 173 @@ -1799,8 +1803,8 @@ $(pv_value) 77 false -33cb7c72:150aa4c347f:-7545 - 168 - 195 + 149 + 192 @@ -1839,8 +1843,8 @@ $(pv_value) 77 false -33cb7c72:150aa4c347f:-7540 - 168 - 214 + 149 + 211 @@ -1879,8 +1883,8 @@ $(pv_value) 77 false -33cb7c72:150aa4c347f:-753b - 168 - 233 + 149 + 230 @@ -1919,8 +1923,8 @@ $(pv_value) 113 false -33cb7c72:150aa4c347f:-750b - 363 - 320 + 344 + 317 @@ -1959,8 +1963,8 @@ $(pv_value) 113 false -33cb7c72:150aa4c347f:-7506 - 363 - 301 + 344 + 298 @@ -1999,8 +2003,8 @@ $(pv_value) 69 false -33cb7c72:150aa4c347f:-74f2 - 58 - 301 + 39 + 298 @@ -2036,11 +2040,11 @@ $(pv_value) 1 true Label - 69 + 85 false -33cb7c72:150aa4c347f:-74ed - 58 - 339 + 23 + 336 @@ -2079,8 +2083,8 @@ $(pv_value) 69 false -33cb7c72:150aa4c347f:-74e8 - 58 - 320 + 39 + 317 @@ -2119,8 +2123,8 @@ $(pv_value) 69 false -33cb7c72:150aa4c347f:-74de - 58 - 358 + 39 + 355 @@ -2159,8 +2163,8 @@ $(pv_value) 74 false -33cb7c72:150aa4c347f:-74bf - 252 - 114 + 233 + 111 @@ -2199,8 +2203,8 @@ $(pv_value) 94 false -33cb7c72:150aa4c347f:-7499 - 363 - 114 + 344 + 111 @@ -2239,8 +2243,8 @@ $(pv_value) 79 false -33cb7c72:150aa4c347f:-7471 - 468 - 114 + 449 + 111 @@ -2279,8 +2283,8 @@ $(pv_value) 119 false -33cb7c72:150aa4c347f:-7461 - 111 - 282 + 92 + 279 @@ -2319,8 +2323,8 @@ $(pv_value) 119 false -33cb7c72:150aa4c347f:-7453 - 425 - 282 + 406 + 279 @@ -2356,11 +2360,11 @@ $(pv_value) 1 true Label - 69 + 96 false -33cb7c72:150aa4c347f:-7449 - 58 - 377 + 12 + 374 @@ -2396,11 +2400,11 @@ $(pv_value) 1 true Label - 110 + 124 false -33cb7c72:150aa4c347f:-743f - 365 - 339 + 332 + 336 @@ -2439,8 +2443,8 @@ $(pv_value) 110 false -33cb7c72:150aa4c347f:-7423 - 365 - 358 + 346 + 355 @@ -2452,9 +2456,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -2491,8 +2495,8 @@ $(pv_value) 100 false -33cb7c72:150aa4c347f:-73ee - 483 - 358 + 464 + 355 @@ -2528,27 +2532,28 @@ $(pv_value) 1 true Label - 110 + 124 false -33cb7c72:150aa4c347f:-73a9 - 365 - 384 + 332 + 381 - - OneShot.opi - - true - - 0 + + + + true false false - + false @@ -2562,11 +2567,11 @@ $(pv_value) false - + - 22 - - NoOp_2 + 20 + ../../Resources/send.png + NoOp_6 0 @@ -2578,24 +2583,26 @@ $(pv_value) - Get + Enable false $(pv_name) $(pv_value) true Action Button - 63 - -33cb7c72:150aa4c347f:-72f0 - 240 - 305 + 79 + -33cb7c72:150aa4c347f:-71ac + 576 + 381 - scripts/CancelOneShot.js + - false +importPackage(Packages.org.yamcs.studio.script); + +Yamcs.issueCommand('/cfs/cs/DisableAllCS', {});]]> + true @@ -2618,9 +2625,9 @@ $(pv_value) - 22 + 20 ../../Resources/send.png - NoOp_3 + NoOp_7 0 @@ -2632,21 +2639,21 @@ $(pv_value) - Cancel + Disable false $(pv_name) $(pv_value) true Action Button - 63 - -33cb7c72:150aa4c347f:-71db - 240 - 326 + 79 + -33cb7c72:150aa4c347f:-71a2 + 654 + 381 - EnableEEPROM.opi + ReportBaselineEEPROM.opi true @@ -2675,7 +2682,7 @@ $(pv_value) 20 - NoOp_4 + NoOp_8 0 @@ -2687,21 +2694,21 @@ $(pv_value) - Ena + Report false $(pv_name) $(pv_value) true Action Button - 43 - -33cb7c72:150aa4c347f:-71c0 - 85 - 138 + 78 + -33cb7c72:150aa4c347f:-7189 + 557 + 135 - DisableEEPROM.opi + RecomputeBaselineEEPROM.opi true @@ -2730,7 +2737,7 @@ $(pv_value) 20 - NoOp_5 + NoOp_9 0 @@ -2742,31 +2749,32 @@ $(pv_value) - Dis + Recompute false $(pv_name) $(pv_value) true Action Button - 43 - -33cb7c72:150aa4c347f:-71b6 - 126 - 138 + 115 + -33cb7c72:150aa4c347f:-7173 + 641 + 135 - - scripts/EnableAll.js - - false + + ReportBaselineMemory.opi + + true + + 0 false false - + false @@ -2780,11 +2788,11 @@ $(pv_value) false - + 20 - ../../Resources/send.png - NoOp_6 + + NoOp_20 0 @@ -2796,31 +2804,32 @@ $(pv_value) - Enable All + Report false $(pv_name) $(pv_value) true Action Button - 67 - -33cb7c72:150aa4c347f:-71ac - 61 - 119 + 78 + -33cb7c72:150aa4c347f:-712c + 557 + 154 - - scripts/DisableAll.js - - false + + RecomputeBaselineMemory.opi + + true + + 0 false false - + false @@ -2834,11 +2843,11 @@ $(pv_value) false - + 20 - ../../Resources/send.png - NoOp_7 + + NoOp_21 0 @@ -2850,21 +2859,21 @@ $(pv_value) - Disable All + Recompute false $(pv_name) $(pv_value) true Action Button - 67 - -33cb7c72:150aa4c347f:-71a2 - 126 - 119 + 115 + -33cb7c72:150aa4c347f:-712b + 641 + 154 - ReportBaselineEEPROM.opi + ReportBaselineApp.opi true @@ -2893,7 +2902,7 @@ $(pv_value) 20 - NoOp_8 + NoOp_22 0 @@ -2912,14 +2921,14 @@ $(pv_value) true Action Button 78 - -33cb7c72:150aa4c347f:-7189 - 576 - 138 + -33cb7c72:150aa4c347f:-7124 + 557 + 173 - RecomputeBaselineEEPROM.opi + RecomputeBaselineApp.opi true @@ -2948,7 +2957,7 @@ $(pv_value) 20 - NoOp_9 + NoOp_23 0 @@ -2966,15 +2975,15 @@ $(pv_value) $(pv_value) true Action Button - 78 - -33cb7c72:150aa4c347f:-7173 - 660 - 138 + 115 + -33cb7c72:150aa4c347f:-7123 + 641 + 173 - EnableMemory.opi + ReportBaselineTable.opi true @@ -3003,7 +3012,7 @@ $(pv_value) 20 - NoOp_10 + NoOp_24 0 @@ -3015,21 +3024,21 @@ $(pv_value) - Ena + Report false $(pv_name) $(pv_value) true Action Button - 43 - -33cb7c72:150aa4c347f:-7165 - 85 - 157 + 78 + -33cb7c72:150aa4c347f:-711c + 557 + 192 - DisableMemory.opi + RecomputeBaselineTable.opi true @@ -3058,7 +3067,7 @@ $(pv_value) 20 - NoOp_11 + NoOp_25 0 @@ -3070,32 +3079,33 @@ $(pv_value) - Dis + Recompute false $(pv_name) $(pv_value) true Action Button - 43 - -33cb7c72:150aa4c347f:-7160 - 126 - 157 + 115 + -33cb7c72:150aa4c347f:-711b + 641 + 192 - - EnableApplication.opi - - true - - 0 + + + + true false false - + false @@ -3109,11 +3119,11 @@ $(pv_value) false - + 20 - - NoOp_12 + ../../Resources/send.png + NoOp_26 0 @@ -3125,32 +3135,33 @@ $(pv_value) - Ena + Report false $(pv_name) $(pv_value) true Action Button - 43 - -33cb7c72:150aa4c347f:-7150 - 85 - 176 + 78 + -33cb7c72:150aa4c347f:-7114 + 557 + 211 - - DisableApplication.opi - - true - - 0 + + + + true false false - + false @@ -3164,11 +3175,11 @@ $(pv_value) false - + 20 - - NoOp_13 + ../../Resources/send.png + NoOp_27 0 @@ -3180,32 +3191,33 @@ $(pv_value) - Dis + Recompute false $(pv_name) $(pv_value) true Action Button - 43 - -33cb7c72:150aa4c347f:-714f - 126 - 176 + 115 + -33cb7c72:150aa4c347f:-7113 + 641 + 211 - - EnableTable.opi - - true - - 0 + + + + true false false - + false @@ -3219,11 +3231,11 @@ $(pv_value) false - + 20 - - NoOp_14 + ../../Resources/send.png + NoOp_28 0 @@ -3235,32 +3247,33 @@ $(pv_value) - Ena + Report false $(pv_name) $(pv_value) true Action Button - 43 - -33cb7c72:150aa4c347f:-7148 - 85 - 195 + 78 + -33cb7c72:150aa4c347f:-710c + 557 + 230 - - DisableTable.opi - - true - - 0 + + + + true false false - + false @@ -3274,11 +3287,11 @@ $(pv_value) false - + 20 - - NoOp_15 + ../../Resources/send.png + NoOp_29 0 @@ -3290,31 +3303,32 @@ $(pv_value) - Dis + Recompute false $(pv_name) $(pv_value) true Action Button - 43 - -33cb7c72:150aa4c347f:-7147 - 126 - 195 + 115 + -33cb7c72:150aa4c347f:-710b + 641 + 230 - - scripts/EnableOS.js - - false + + GetEntryIDEEPROM.opi + + true + + 0 false false - + false @@ -3328,11 +3342,11 @@ $(pv_value) false - + 20 - ../../Resources/send.png - NoOp_16 + + NoOp_31 0 @@ -3344,31 +3358,32 @@ $(pv_value) - Ena + Get ID false $(pv_name) $(pv_value) true Action Button - 43 - -33cb7c72:150aa4c347f:-7140 - 85 - 214 + 55 + 5e28a52b:177681d8a5c:-78a6 + 12 + 135 - - scripts/DisableOS.js - - false + + EnableEEPROM.opi + + true + + 0 false false - + false @@ -3382,11 +3397,11 @@ $(pv_value) false - + 20 - ../../Resources/send.png - NoOp_17 + + NoOp_4 0 @@ -3398,31 +3413,32 @@ $(pv_value) - Dis + Ena false $(pv_name) $(pv_value) true Action Button 43 - -33cb7c72:150aa4c347f:-713f - 126 - 214 + 5e28a52b:177681d8a5c:-789e + 66 + 135 - - scripts/EnableCFECore.js - - false + + DisableEEPROM.opi + + true + + 0 false false - + false @@ -3436,11 +3452,11 @@ $(pv_value) false - + 20 - ../../Resources/send.png - NoOp_18 + + NoOp_5 0 @@ -3452,31 +3468,32 @@ $(pv_value) - Ena + Dis false $(pv_name) $(pv_value) true Action Button 43 - -33cb7c72:150aa4c347f:-7138 - 85 - 233 + 5e28a52b:177681d8a5c:-7896 + 107 + 135 - - scripts/DisableCFECore.js - - false + + GetEntryIDMemory.opi + + true + + 0 false false - + false @@ -3490,11 +3507,11 @@ $(pv_value) false - + 20 - ../../Resources/send.png - NoOp_19 + + NoOp_30 0 @@ -3506,21 +3523,21 @@ $(pv_value) - Dis + Get ID false $(pv_name) $(pv_value) true Action Button - 43 - -33cb7c72:150aa4c347f:-7137 - 126 - 233 + 55 + 5e28a52b:177681d8a5c:-788e + 12 + 154 - ReportBaselineMemory.opi + EnableMemory.opi true @@ -3549,7 +3566,7 @@ $(pv_value) 20 - NoOp_20 + NoOp_10 0 @@ -3561,21 +3578,21 @@ $(pv_value) - Report + Ena false $(pv_name) $(pv_value) true Action Button - 78 - -33cb7c72:150aa4c347f:-712c - 576 - 157 + 43 + 5e28a52b:177681d8a5c:-7886 + 66 + 154 - RecomputeBaselineMemory.opi + DisableMemory.opi true @@ -3604,7 +3621,7 @@ $(pv_value) 20 - NoOp_21 + NoOp_11 0 @@ -3616,21 +3633,21 @@ $(pv_value) - Recompute + Dis false $(pv_name) $(pv_value) true Action Button - 78 - -33cb7c72:150aa4c347f:-712b - 660 - 157 + 43 + 5e28a52b:177681d8a5c:-787e + 107 + 154 - ReportBaselineApp.opi + EnableApplication.opi true @@ -3659,7 +3676,7 @@ $(pv_value) 20 - NoOp_22 + NoOp_12 0 @@ -3671,21 +3688,21 @@ $(pv_value) - Report + Ena false $(pv_name) $(pv_value) true Action Button - 78 - -33cb7c72:150aa4c347f:-7124 - 576 - 176 + 43 + 5e28a52b:177681d8a5c:-7876 + 66 + 173 - RecomputeBaselineApp.opi + DisableApplication.opi true @@ -3714,7 +3731,7 @@ $(pv_value) 20 - NoOp_23 + NoOp_13 0 @@ -3726,21 +3743,21 @@ $(pv_value) - Recompute + Dis false $(pv_name) $(pv_value) true Action Button - 78 - -33cb7c72:150aa4c347f:-7123 - 660 - 176 + 43 + 5e28a52b:177681d8a5c:-786e + 107 + 173 - ReportBaselineTable.opi + EnableTable.opi true @@ -3769,7 +3786,7 @@ $(pv_value) 20 - NoOp_24 + NoOp_14 0 @@ -3781,21 +3798,21 @@ $(pv_value) - Report + Ena false $(pv_name) $(pv_value) true Action Button - 78 - -33cb7c72:150aa4c347f:-711c - 576 - 195 + 43 + 5e28a52b:177681d8a5c:-7866 + 66 + 192 - RecomputeBaselineTable.opi + DisableTable.opi true @@ -3824,7 +3841,7 @@ $(pv_value) 20 - NoOp_25 + NoOp_15 0 @@ -3836,24 +3853,26 @@ $(pv_value) - Recompute + Dis false $(pv_name) $(pv_value) true Action Button - 78 - -33cb7c72:150aa4c347f:-711b - 660 - 195 + 43 + 5e28a52b:177681d8a5c:-785e + 107 + 192 - scripts/ReportBaselineOS.js + - false +importPackage(Packages.org.yamcs.studio.script); + +Yamcs.issueCommand('/cfs/cs/EnableOS', {});]]> + true @@ -3878,7 +3897,7 @@ $(pv_value) 20 ../../Resources/send.png - NoOp_26 + NoOp_16 0 @@ -3890,24 +3909,26 @@ $(pv_value) - Report + Ena false $(pv_name) $(pv_value) true Action Button - 78 - -33cb7c72:150aa4c347f:-7114 - 576 - 214 + 63 + 5e28a52b:177681d8a5c:-7856 + 30 + 211 - scripts/RecomputeBaselineOS.js + - false +importPackage(Packages.org.yamcs.studio.script); + +Yamcs.issueCommand('/cfs/cs/DisableOS', {});]]> + true @@ -3932,7 +3953,7 @@ $(pv_value) 20 ../../Resources/send.png - NoOp_27 + NoOp_17 0 @@ -3944,24 +3965,26 @@ $(pv_value) - Recompute + Dis false $(pv_name) $(pv_value) true Action Button - 78 - -33cb7c72:150aa4c347f:-7113 - 660 - 214 + 58 + 5e28a52b:177681d8a5c:-784e + 92 + 211 - scripts/ReportBaseCFECore.js + - false +importPackage(Packages.org.yamcs.studio.script); + +Yamcs.issueCommand('/cfs/cs/EnableCfeCore', {});]]> + true @@ -3986,7 +4009,7 @@ $(pv_value) 20 ../../Resources/send.png - NoOp_28 + NoOp_18 0 @@ -3998,24 +4021,26 @@ $(pv_value) - Report + Ena false $(pv_name) $(pv_value) true Action Button - 78 - -33cb7c72:150aa4c347f:-710c - 576 - 233 + 64 + 5e28a52b:177681d8a5c:-7846 + 30 + 230 - scripts/RecomputeBaseCFECore.js + - false +importPackage(Packages.org.yamcs.studio.script); + +Yamcs.issueCommand('/cfs/cs/DisableCfeCore', {});]]> + true @@ -4040,7 +4065,7 @@ $(pv_value) 20 ../../Resources/send.png - NoOp_29 + NoOp_19 0 @@ -4052,21 +4077,21 @@ $(pv_value) - Recompute + Dis false $(pv_name) $(pv_value) true Action Button - 78 - -33cb7c72:150aa4c347f:-710b - 660 - 233 + 58 + 5e28a52b:177681d8a5c:-783e + 92 + 230 - GetEntryIDMemory.opi + OneShot.opi true @@ -4095,7 +4120,7 @@ $(pv_value) 20 - NoOp_30 + NoOp_2 0 @@ -4107,32 +4132,33 @@ $(pv_value) - Get ID + Get false $(pv_name) $(pv_value) true Action Button - 55 - -33cb7c72:150aa4c347f:-70f4 - 31 - 157 + 86 + 5e28a52b:177681d8a5c:-7822 + 221 + 298 - - GetEntryIDEEPROM.opi - - true - - 0 + + + + true false false - + false @@ -4146,11 +4172,11 @@ $(pv_value) false - + 20 - - NoOp_31 + ../../Resources/send.png + NoOp_3 0 @@ -4162,15 +4188,127 @@ $(pv_value) - Get ID + Cancel false $(pv_name) $(pv_value) true Action Button - 55 - -736e4684:150ac3c95a1:-7ed8 - 31 - 138 + 86 + 5e28a52b:177681d8a5c:-781a + 221 + 317 + + + + + + + true + + + + false + true + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 18 + ../../Resources/send.png + NoOp_47 + 0 + + + + + true + true + false + + + + SendHK + false + $(pv_name) +$(pv_value) + true + Action Button + 90 + 5e28a52b:177681d8a5c:-77da + 464 + 55 + + + + + + + true + + + + false + true + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 18 + ../../Resources/send.png + NoOp_48 + 0 + + + + + true + true + false + + + + Background Cycle + false + $(pv_name) +$(pv_value) + true + Action Button + 169 + 5e28a52b:177681d8a5c:-77d2 + 464 + 72 \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/DS/Main.opi b/core/base/tools/commander/workspace_template/Displays/Apps/DS/Main.opi index 3145870f8..a13816f68 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/DS/Main.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/DS/Main.opi @@ -15,7 +15,7 @@ 6 - 410 + 420 true @@ -28,7 +28,7 @@ true true Display - 300 + 510 -33cb7c72:150aa4c347f:-76c2 -1 -1 @@ -81,7 +81,7 @@ $(pv_value) 100 false -33cb7c72:150aa4c347f:-75ff - 95 + 115 57
@@ -118,10 +118,10 @@ $(pv_value) 1 true Label - 72 + 86 false -33cb7c72:150aa4c347f:-75fe - 6 + 12 57 @@ -158,10 +158,10 @@ $(pv_value) 1 true Label - 60 + 86 false -33cb7c72:150aa4c347f:-75fd - 18 + 12 76 @@ -201,7 +201,7 @@ $(pv_value) 164 false -33cb7c72:150aa4c347f:-75fc - 66 + 86 30 @@ -253,7 +253,7 @@ $(pv_value) 100 false -33cb7c72:150aa4c347f:-75fb - 95 + 115 76 @@ -287,7 +287,7 @@ Yamcs.issueCommand('/cfs/ds/Noop', {});]]> - 13 + 20 ../../Resources/send.png NoOp 0 @@ -307,10 +307,10 @@ Yamcs.issueCommand('/cfs/ds/Noop', {});]]> $(pv_value) true Action Button - 117 + 82 -33cb7c72:150aa4c347f:-75fa - 217 - 60 + 237 + 57 @@ -343,7 +343,7 @@ Yamcs.issueCommand('/cfs/ds/Reset', {});]]> - 13 + 20 ../../Resources/send.png NoOp_1 0 @@ -363,10 +363,10 @@ Yamcs.issueCommand('/cfs/ds/Reset', {});]]> $(pv_value) true Action Button - 117 + 82 -33cb7c72:150aa4c347f:-75f9 - 217 - 79 + 237 + 76 @@ -405,7 +405,7 @@ $(pv_value) 272 false -33cb7c72:150aa4c347f:-75c9 - 12 + 115 6 @@ -457,7 +457,7 @@ $(pv_value) 100 false -736e4684:150ac3c95a1:-756c - 118 + 138 144 @@ -509,7 +509,7 @@ $(pv_value) 100 false -736e4684:150ac3c95a1:-756b - 118 + 138 163 @@ -561,7 +561,7 @@ $(pv_value) 100 false -736e4684:150ac3c95a1:-756a - 118 + 138 182 @@ -613,7 +613,7 @@ $(pv_value) 100 false -736e4684:150ac3c95a1:-7569 - 118 + 138 201 @@ -658,10 +658,10 @@ $(pv_value) $(pv_value) true Check Box - 100 + 49 -736e4684:150ac3c95a1:-7568 - 118 - 220 + 174 + 228 @@ -712,8 +712,8 @@ $(pv_value) 100 false -736e4684:150ac3c95a1:-7567 - 118 - 239 + 138 + 258 @@ -764,8 +764,8 @@ $(pv_value) 100 false -736e4684:150ac3c95a1:-7566 - 118 - 258 + 138 + 277 @@ -816,8 +816,8 @@ $(pv_value) 100 false -736e4684:150ac3c95a1:-7565 - 118 - 277 + 138 + 296 @@ -868,8 +868,8 @@ $(pv_value) 100 false -736e4684:150ac3c95a1:-7564 - 118 - 296 + 138 + 315 @@ -920,8 +920,8 @@ $(pv_value) 100 false -736e4684:150ac3c95a1:-7563 - 118 - 315 + 138 + 334 @@ -972,8 +972,8 @@ $(pv_value) 100 false -736e4684:150ac3c95a1:-7562 - 118 - 334 + 138 + 353 @@ -1024,8 +1024,8 @@ $(pv_value) 100 false -736e4684:150ac3c95a1:-7561 - 118 - 353 + 138 + 372 @@ -1076,8 +1076,8 @@ $(pv_value) 100 false -736e4684:150ac3c95a1:-7560 - 118 - 372 + 138 + 391 @@ -1116,7 +1116,7 @@ $(pv_value) 103 false -736e4684:150ac3c95a1:-7558 - 6 + 26 144 @@ -1156,7 +1156,7 @@ $(pv_value) 103 false -736e4684:150ac3c95a1:-754c - 6 + 26 182 @@ -1196,7 +1196,7 @@ $(pv_value) 103 false -736e4684:150ac3c95a1:-7547 - 6 + 26 163 @@ -1236,8 +1236,8 @@ $(pv_value) 103 false -736e4684:150ac3c95a1:-7542 - 6 - 220 + 26 + 228 @@ -1276,7 +1276,7 @@ $(pv_value) 103 false -736e4684:150ac3c95a1:-753d - 6 + 26 201 @@ -1316,8 +1316,8 @@ $(pv_value) 103 false -736e4684:150ac3c95a1:-7538 - 6 - 258 + 26 + 277 @@ -1356,8 +1356,8 @@ $(pv_value) 103 false -736e4684:150ac3c95a1:-7533 - 6 - 239 + 26 + 258 @@ -1396,8 +1396,8 @@ $(pv_value) 103 false -736e4684:150ac3c95a1:-752e - 6 - 277 + 26 + 296 @@ -1433,11 +1433,11 @@ $(pv_value) 1 true Label - 103 + 117 false -736e4684:150ac3c95a1:-7529 - 6 - 315 + 12 + 334 @@ -1476,8 +1476,8 @@ $(pv_value) 103 false -736e4684:150ac3c95a1:-7524 - 6 - 296 + 26 + 315 @@ -1516,8 +1516,8 @@ $(pv_value) 103 false -736e4684:150ac3c95a1:-751f - 6 - 334 + 26 + 353 @@ -1556,8 +1556,8 @@ $(pv_value) 103 false -736e4684:150ac3c95a1:-751a - 6 - 353 + 26 + 372 @@ -1596,8 +1596,8 @@ $(pv_value) 103 false -736e4684:150ac3c95a1:-7510 - 6 - 372 + 26 + 391 @@ -1636,7 +1636,7 @@ $(pv_value) 164 false -736e4684:150ac3c95a1:-74dd - 66 + 86 114 @@ -1646,7 +1646,7 @@ $(pv_value) +Yamcs.issueCommand('/cfs/ds/SetAppState'(State: 1)');]]> true @@ -1690,9 +1690,9 @@ Yamcs.issueCommand('/CFS/DS/SetAppState(State: 1)');]]> $(pv_value) true Action Button - 97 + 68 -736e4684:150ac3c95a1:-72d3 - 224 + 244 220 @@ -1745,10 +1745,10 @@ $(pv_value) $(pv_value) true Action Button - 115 + 153 -736e4684:150ac3c95a1:-72c9 - 110 - 444 + 348 + 76 @@ -1800,10 +1800,10 @@ $(pv_value) $(pv_value) true Action Button - 115 + 153 -736e4684:150ac3c95a1:-72bf - 110 - 462 + 348 + 94 @@ -1855,10 +1855,10 @@ $(pv_value) $(pv_value) true Action Button - 115 + 153 -736e4684:150ac3c95a1:-72b3 - 110 - 480 + 348 + 112 @@ -1910,10 +1910,10 @@ $(pv_value) $(pv_value) true Action Button - 115 + 153 -736e4684:150ac3c95a1:-72a9 - 110 - 498 + 348 + 130 @@ -1965,10 +1965,10 @@ $(pv_value) $(pv_value) true Action Button - 115 + 153 -736e4684:150ac3c95a1:-729f - 110 - 516 + 348 + 148 @@ -2020,10 +2020,10 @@ $(pv_value) $(pv_value) true Action Button - 115 + 153 -736e4684:150ac3c95a1:-7295 - 110 - 534 + 348 + 166 @@ -2075,10 +2075,10 @@ $(pv_value) $(pv_value) true Action Button - 115 + 153 -736e4684:150ac3c95a1:-728e - 110 - 552 + 348 + 184 @@ -2130,10 +2130,10 @@ $(pv_value) $(pv_value) true Action Button - 115 + 153 -736e4684:150ac3c95a1:-7284 - 110 - 570 + 348 + 202 @@ -2185,10 +2185,10 @@ $(pv_value) $(pv_value) true Action Button - 115 + 153 -736e4684:150ac3c95a1:-727a - 110 - 588 + 348 + 220 @@ -2240,10 +2240,10 @@ $(pv_value) $(pv_value) true Action Button - 115 + 153 -736e4684:150ac3c95a1:-7273 - 110 - 606 + 348 + 238 @@ -2295,10 +2295,10 @@ $(pv_value) $(pv_value) true Action Button - 115 + 153 -736e4684:150ac3c95a1:-726c - 110 - 624 + 348 + 256 @@ -2350,10 +2350,10 @@ $(pv_value) $(pv_value) true Action Button - 115 + 153 -736e4684:150ac3c95a1:-7265 - 110 - 642 + 348 + 274 @@ -2405,10 +2405,10 @@ $(pv_value) $(pv_value) true Action Button - 115 + 154 -736e4684:150ac3c95a1:-725e - 444 - 144 + 347 + 292 @@ -2460,10 +2460,10 @@ $(pv_value) $(pv_value) true Action Button - 115 + 155 -736e4684:150ac3c95a1:-7257 - 110 - 678 + 346 + 310 @@ -2515,10 +2515,10 @@ $(pv_value) $(pv_value) true Action Button - 115 + 155 -736e4684:150ac3c95a1:-724e - 110 - 696 + 346 + 328 @@ -2571,9 +2571,9 @@ Yamcs.issueCommand('/CFS/DS/SetAppState(State: 0)');]]> $(pv_value) true Action Button - 97 + 68 -736e4684:150ac3c95a1:-71f7 - 333 - 220 + 244 + 239 \ No newline at end of file From c59ab7a54932c424873ed9b37868755919b1c935 Mon Sep 17 00:00:00 2001 From: lorenzo-gomez-windhover Date: Wed, 3 Feb 2021 14:38:02 -0600 Subject: [PATCH 028/370] -Updated sb configuration; CFE_SB_PipeId_t is mapped to uint8 now --- core/base/cfe/wh_design.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/core/base/cfe/wh_design.yaml b/core/base/cfe/wh_design.yaml index 95cd086e4..8c0e1b9f7 100644 --- a/core/base/cfe/wh_design.yaml +++ b/core/base/cfe/wh_design.yaml @@ -808,6 +808,7 @@ modules: events: {} type_remaps: CFE_SB_MsgId_t: uint16 + CFE_SB_PipeId_t: uint8 msg_def_overrides: - parent: CFE_SB_WriteFileInfoCmd_Payload_t member: Filename From 1923d66844817d7d235ee2dc05d43b45666ef2f3 Mon Sep 17 00:00:00 2001 From: cnalley Date: Wed, 3 Feb 2021 22:11:29 +0000 Subject: [PATCH 029/370] Initial PQ lib building. --- apps/pq_lib/fsw/for_build/CMakeLists.txt | 61 + apps/pq_lib/fsw/public_inc/pq_channel.h | 268 ++++ apps/pq_lib/fsw/public_inc/pq_classifier.h | 80 + apps/pq_lib/fsw/public_inc/pq_errors.h | 108 ++ apps/pq_lib/fsw/public_inc/pq_events.h | 1350 +++++++++++++++++ apps/pq_lib/fsw/public_inc/pq_message_flow.h | 234 +++ apps/pq_lib/fsw/public_inc/pq_mission_cfg.h | 100 ++ apps/pq_lib/fsw/public_inc/pq_output_queue.h | 175 +++ apps/pq_lib/fsw/public_inc/pq_platform_cfg.h | 318 ++++ .../pq_lib/fsw/public_inc/pq_priority_queue.h | 175 +++ apps/pq_lib/fsw/public_inc/pq_structs.h | 628 ++++++++ apps/pq_lib/fsw/src/pq_channel.c | 609 ++++++++ apps/pq_lib/fsw/src/pq_classifier.c | 162 ++ apps/pq_lib/fsw/src/pq_lib.c | 14 + apps/pq_lib/fsw/src/pq_message_flow.c | 558 +++++++ apps/pq_lib/fsw/src/pq_output_queue.c | 242 +++ apps/pq_lib/fsw/src/pq_priority_queue.c | 479 ++++++ apps/pq_lib/wh_design.yaml | 6 + 18 files changed, 5567 insertions(+) create mode 100644 apps/pq_lib/fsw/for_build/CMakeLists.txt create mode 100644 apps/pq_lib/fsw/public_inc/pq_channel.h create mode 100644 apps/pq_lib/fsw/public_inc/pq_classifier.h create mode 100644 apps/pq_lib/fsw/public_inc/pq_errors.h create mode 100644 apps/pq_lib/fsw/public_inc/pq_events.h create mode 100644 apps/pq_lib/fsw/public_inc/pq_message_flow.h create mode 100644 apps/pq_lib/fsw/public_inc/pq_mission_cfg.h create mode 100644 apps/pq_lib/fsw/public_inc/pq_output_queue.h create mode 100644 apps/pq_lib/fsw/public_inc/pq_platform_cfg.h create mode 100644 apps/pq_lib/fsw/public_inc/pq_priority_queue.h create mode 100644 apps/pq_lib/fsw/public_inc/pq_structs.h create mode 100644 apps/pq_lib/fsw/src/pq_channel.c create mode 100644 apps/pq_lib/fsw/src/pq_classifier.c create mode 100644 apps/pq_lib/fsw/src/pq_lib.c create mode 100644 apps/pq_lib/fsw/src/pq_message_flow.c create mode 100644 apps/pq_lib/fsw/src/pq_output_queue.c create mode 100644 apps/pq_lib/fsw/src/pq_priority_queue.c create mode 100644 apps/pq_lib/wh_design.yaml diff --git a/apps/pq_lib/fsw/for_build/CMakeLists.txt b/apps/pq_lib/fsw/for_build/CMakeLists.txt new file mode 100644 index 000000000..ec098632f --- /dev/null +++ b/apps/pq_lib/fsw/for_build/CMakeLists.txt @@ -0,0 +1,61 @@ + ############################################################################# + # + # Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. + # + # Redistribution and use in source and binary forms, with or without + # modification, are permitted provided that the following conditions + # are met: + # + # 1. Redistributions of source code must retain the above copyright + # notice, this list of conditions and the following disclaimer. + # 2. Redistributions in binary form must reproduce the above copyright + # notice, this list of conditions and the following disclaimer in + # the documentation and/or other materials provided with the + # distribution. + # 3. Neither the name Windhover Labs nor the names of its contributors + # may be used to endorse or promote products derived from this software + # without specific prior written permission. + # + # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + # FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + # COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, + # INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + # BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS + # OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED + # AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + # LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN + # ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + # POSSIBILITY OF SUCH DAMAGE. + # + ############################################################################# + +buildliner_add_app_def(pq_lib + FILE PQ_LIB + SOURCES + ${CMAKE_CURRENT_SOURCE_DIR}/../src/pq_channel.c + ${CMAKE_CURRENT_SOURCE_DIR}/../src/pq_classifier.c + ${CMAKE_CURRENT_SOURCE_DIR}/../src/pq_lib.c + ${CMAKE_CURRENT_SOURCE_DIR}/../src/pq_message_flow.c + ${CMAKE_CURRENT_SOURCE_DIR}/../src/pq_output_queue.c + ${CMAKE_CURRENT_SOURCE_DIR}/../src/pq_priority_queue.c + ${CMAKE_CURRENT_SOURCE_DIR}/../public_inc/pq_channel.h + ${CMAKE_CURRENT_SOURCE_DIR}/../public_inc/pq_classifier.h + ${CMAKE_CURRENT_SOURCE_DIR}/../public_inc/pq_errors.h + ${CMAKE_CURRENT_SOURCE_DIR}/../public_inc/pq_message_flow.h + ${CMAKE_CURRENT_SOURCE_DIR}/../public_inc/pq_mission_cfg.h + ${CMAKE_CURRENT_SOURCE_DIR}/../public_inc/pq_output_queue.h + ${CMAKE_CURRENT_SOURCE_DIR}/../public_inc/pq_platform_cfg.h + ${CMAKE_CURRENT_SOURCE_DIR}/../public_inc/pq_priority_queue.h + ${CMAKE_CURRENT_SOURCE_DIR}/../public_inc/pq_structs.h + + INCLUDES + ${CMAKE_CURRENT_SOURCE_DIR}/../src/ + + # This application has a public include header. Add it so all the other applications can access it. + PUBLIC_INCLUDES + ${CMAKE_CURRENT_SOURCE_DIR}/../public_inc/ + + #DESIGN_DOCS ${CMAKE_CURRENT_SOURCE_DIR}/detail_doxy.in +) diff --git a/apps/pq_lib/fsw/public_inc/pq_channel.h b/apps/pq_lib/fsw/public_inc/pq_channel.h new file mode 100644 index 000000000..26161d18d --- /dev/null +++ b/apps/pq_lib/fsw/public_inc/pq_channel.h @@ -0,0 +1,268 @@ +/**************************************************************************** +* +* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions +* are met: +* +* 1. Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* 2. Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in +* the documentation and/or other materials provided with the +* distribution. +* 3. Neither the name Windhover Labs nor the names of its +* contributors may be used to endorse or promote products derived +* from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS +* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED +* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +* POSSIBILITY OF SUCH DAMAGE. +* +*****************************************************************************/ + +#ifndef PQ_CHANNEL_H +#define PQ_CHANNEL_H + +/************************************************************************ +** Pragmas +*************************************************************************/ + +/************************************************************************ +** Local Defines +*************************************************************************/ + +/************************************************************************ +** Includes +*************************************************************************/ +#include "cfe.h" +#include "pq_structs.h" +#include "pq_errors.h" + +/************************************************************************ +** Functions +*************************************************************************/ + +/************************************************************************/ +/** \brief Configures and initializes a single channel. +** +** \par Description +** Initializes channel specific data and structures. Sets up channel pipe +** as well as initializing the cf throttling semaphore for each channel. +** +** \par Assumptions, External Events, and Notes: +** Semaphore name must be unique among channels; initialization will fail if two +** channels attempt to use the same semaphore. +** The pointers for ChannelName, ConfigTableName, ConfigTableFileName, +** DumpTableName, and CfCntSemName are not checked for NULL since those +** are passed in as arguments that have been macro defined in pq_platform_cfg.h +** and are checked in a verify header to ensure the macros exist. +** +** Only the index is range-checked and no other argument checking is performed. +** +** \param[in] index +** Index of the channel, cannot be greater than PQ_MAX_CHANNELS +** +** \param[in] ChannelName +** Name of channel, will be prefixed with PQ_ . +** NOTE: Since each channel has a child task thread with the same name, +** and in RTEMS threads must have names of 4 chars, this param should be a single char. +** +** The 4-char limit is an RTEMS limit. The RTEMS OSAL only takes the first 4 chars of +** the name per RTEMS limits for the underlying RTEMS message queue but still +** preserves the full name given to it in the OSAL +** The 1-char limit helps with keeping the name short enough to view it via +** RTEMS reports +** +** \param[in] ConfigTableName +** Name of the config table for the channel as referred to by TBL services +** +** \param[in] ConfigTableFileName +** File path of the channel config table +** +** \param[in] DumpTableName +** Name of the dump table for the channel as referred to by TBL services +** +** \param[in] CfCntSemMax +** The initial maximum value of the CF throttling semaphore for this channel. +** +** \param[in] CfCntSemName +** Name of the CF throttling semaphore, must be unique among each channel. +** +** \return +** CFE_SUCCESS if successful. #PQ_CHANNEL_OUT_OF_RANGE_ERR or OSAL error if unsuccessful. +** +*************************************************************************/ +int32 PQ_Channel_OpenChannel(const uint32 index, const char *ChannelName, + const char *ConfigTableName, const char *ConfigTableFileName, + PQ_ChannelTbl_t *BackupTblPtr, const char *DumpTableName, + const uint32 CfCntSemMax, const char *CfCntSemName); + + +/************************************************************************/ +/** +** \brief Forwards all channel's telemetry data to PQ_Classifier +** and PQ_Scheduler +** +** \par Assumptions, External Events, and Notes: +** Assumes channel pointer is not NULL +*************************************************************************/ +void PQ_Channel_ProcessTelemetryAll(void); + + +/************************************************************************/ +/** +** \brief Resets all channel's message flow, priority queue, +** and output queue counters. +** +** \par Assumptions, External Events, and Notes: +** Assumes channel pointer is not NULL +*************************************************************************/ +void PQ_Channel_ResetCountsAll(void); + + +/************************************************************************/ +/** +** \brief Set's a channel reference based on a valid input index and +** calls PQ_Channel_LockByRef. +** +** \par Assumptions, External Events, and Notes: +** If the input index is out of range, an event is generated +** #PQ_CHANNEL_OUT_OF_RANGE_ERR_EID +** +** \param[in] index +** Index of the channel +*************************************************************************/ +void PQ_Channel_LockByIndex(uint16 index); + + +/************************************************************************/ +/** +** \brief Set's a channel reference based on a valid input index and +** calls PQ_Channel_UnlockByRef. +** +** \par Assumptions, External Events, and Notes: +** If the input index is out of range, an event is generated +** #PQ_CHANNEL_OUT_OF_RANGE_ERR_EID +** +** \param[in] index +** Index of the channel +*************************************************************************/ +void PQ_Channel_UnlockByIndex(uint16 index); + + +/************************************************************************/ +/** +** \brief The mutex object referenced by the channel pointer shall be locked +** by calling this function. +** +** \par Assumptions, External Events, and Notes: +** Assumes channel pointer is not NULL +*************************************************************************/ +void PQ_Channel_LockByRef(PQ_ChannelData_t *channel); + + +/************************************************************************/ +/** +** \brief The mutex object referenced by the channel pointer shall be unlocked +** by calling this function. +** +** \par Assumptions, External Events, and Notes: +** Assumes channel pointer is not NULL +*************************************************************************/ +void PQ_Channel_UnlockByRef(PQ_ChannelData_t *channel); + + +/************************************************************************/ +/** +** \brief Loops through channel less than PQ_MAX_CHANNELS and initializes a +** reference to each channel's channel data, sets the channel's index, +** and creates each channel's mutex. +** +** \par Assumptions, External Events, and Notes: +** None. +*************************************************************************/ +void PQ_Channel_InitAll(void); + + +/************************************************************************/ +/** +** \brief Loops through channel less than PQ_MAX_CHANNELS and calls functions +** to teardown each channel's priority queue, +** output queue, and message flow(s). It also deletes each channel's mutex. +** +** \par Assumptions, External Events, and Notes: +** None. +*************************************************************************/ +void PQ_Channel_CleanupAll(void); + + +/************************************************************************/ +/** +** \brief Returns a input channel's state. +** +** \par Assumptions, External Events, and Notes: +** If the input index is out of range, the channel state is PQ_CHANNEL_UNKNOWN. +** +** \param[in] index +** Index of the channel +** +** \return +** PQ_CHANNEL_CLOSED, PQ_CHANNEL_OPENED, or PQ_CHANNEL_UNKNOWN +** +*************************************************************************/ +uint8 PQ_Channel_State(uint16 index); + + +/************************************************************************/ +/** \brief Flush priority and output queues for the channel. +** +** \par Description +** This function is called by command from the operators, and will wipe +** all messages from output queue and priority queue buffers without resetting +** the current table. +** +** \param[in] index +** Index of the channel +** +** \return +** \retcode TRUE \retdesc The command succeeded \endcode +** \retcode FALSE \retdesc The command failed, if index is greater than or equal +** to PQ_MAX_CHANNELS or if #PQ_PriorityQueue_TeardownAll +** or #PQ_OutputQueue_Teardown do not return CFE_SUCCESS or +** if #PQ_Channel_SBPipe_Dequeue_All returns FALSE \endcode +** +*************************************************************************/ +osalbool PQ_Channel_Flush(uint16 index); + + +/************************************************************************/ +/** \brief Empty all messages in the SB data pipe for this channel +** +** \par Description +** This function is called in PQ_Channel_Flush() and also on table switch. +** +** \param[in] index +** Index of the channel +** +** \return +** \retcode TRUE \retdesc The function succeeded \endcode +** \retcode FALSE \retdesc The function failed, if index is greater than or equal +** to PQ_MAX_CHANNELS or if #CFE_SB_RcvMsg does not return +** CFE_SUCCESS \endcode +** +*************************************************************************/ +osalbool PQ_Channel_SBPipe_Dequeue_All(uint16 index); + + +#endif diff --git a/apps/pq_lib/fsw/public_inc/pq_classifier.h b/apps/pq_lib/fsw/public_inc/pq_classifier.h new file mode 100644 index 000000000..77c940cc7 --- /dev/null +++ b/apps/pq_lib/fsw/public_inc/pq_classifier.h @@ -0,0 +1,80 @@ +/**************************************************************************** +* +* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions +* are met: +* +* 1. Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* 2. Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in +* the documentation and/or other materials provided with the +* distribution. +* 3. Neither the name Windhover Labs nor the names of its +* contributors may be used to endorse or promote products derived +* from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS +* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED +* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +* POSSIBILITY OF SUCH DAMAGE. +* +*****************************************************************************/ + +#ifndef PQUEUE_CLASSIFIER_H +#define PQUEUE_CLASSIFIER_H + +/************************************************************************ +** Pragmas +*************************************************************************/ + +/************************************************************************ +** Includes +*************************************************************************/ + +#include "cfe.h" +#include "pq_message_flow.h" +#include "pq_priority_queue.h" + +/************************************************************************ +** Local Defines +*************************************************************************/ + +/************************************************************************ +** Local Structure Definitions +*************************************************************************/ + +/************************************************************************ +** External Global Variables +*************************************************************************/ + +/************************************************************************/ +/** \brief Runs the Classifier algorithm on incoming message flows. +** +** \par Description +** This runs a priority based classification algorithm that pops +** messages from incoming message flows, and copies the messages +** to the priority queue specified in the configuration table. +** +** \par Assumptions, External Events, and Notes: +** There is only one caller of this function and this caller enforces +** that the call will never contain a null pointer, therefore +** the null pointer condition is not checked. +** +** \param [in] channel A #PQ_ChannelData_t pointer that +** references the channel data structure +** +*************************************************************************/ +void PQ_Classifier_Run(PQ_ChannelData_t *channel); + +#endif diff --git a/apps/pq_lib/fsw/public_inc/pq_errors.h b/apps/pq_lib/fsw/public_inc/pq_errors.h new file mode 100644 index 000000000..a349a5d3f --- /dev/null +++ b/apps/pq_lib/fsw/public_inc/pq_errors.h @@ -0,0 +1,108 @@ +/**************************************************************************** +* +* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions +* are met: +* +* 1. Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* 2. Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in +* the documentation and/or other materials provided with the +* distribution. +* 3. Neither the name Windhover Labs nor the names of its +* contributors may be used to endorse or promote products derived +* from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS +* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED +* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +* POSSIBILITY OF SUCH DAMAGE. +* +*****************************************************************************/ + +#ifndef PQ_ERROR_H +#define PQ_ERROR_H + +/* pq_channel errors */ + +/** + * \brief The Channel index out of range. + */ +#define PQ_CHANNEL_OUT_OF_RANGE_ERR (-1) + +/** + * \brief \brief The table data for channel is missing. + */ +#define PQ_CHANNEL_PTR_NULL_ERR (-2) + +/** + * \brief The channel open failure. + */ +#define PQ_CHANNEL_OPEN_ERR (-3) + +/* pq_message_flow errors */ + +/** \brief A bad argument was passed to a function */ +#define PQ_MESSAGE_FLOW_BAD_ARG_ERR (-4) + +/** \brief No table data is available */ +#define PQ_MESSAGE_FLOW_NO_TABLE_ERR (-5) + +/* pq_priority_queue errors */ + +/** + * \brief The priority queue is missing. + */ +#define PQ_NO_PRIORITY_QUEUE_ERR (-6) + +/** + * \brief The table data for channel is missing. + */ +#define PQ_NO_TABLE_ERR (-7) + +/** + * \brief The message was not queued because the priority queue was full. + */ +#define PQ_PRIORITY_QUEUE_FULL_ERR (-8) + +/** + * \brief The message was not queued because the caller could not get + * enough memory from the memory pool. + */ +#define PQ_MEMORY_FULL_ERR (-9) + +/** + * \brief Function received a null channel pointer. + */ +#define PQ_CHANNEL_PTR_NULL (-10) + + +/* Table validation errors */ + +/** + * \brief Defines the error return codes for table validation + */ +#define PQ_CONFIG_TABLE_RETURN_INVALID_VERSION (-50) +#define PQ_CONFIG_TABLE_RETURN_NO_SECONDARY_HEADER (-51) +#define PQ_CONFIG_TABLE_MSG_FLOW_MSG_LIMIT_ERR (-52) +#define PQ_CONFIG_TABLE_MSG_FLOW_PQ_ID_ERR (-53) +#define PQ_CONFIG_TABLE_NULL_PTR_ERR (-54) +#define PQ_CONFIG_TABLE_PQUEUE_STATE_ERR (-55) +#define PQ_CONFIG_TABLE_PQUEUE_QTYPE_ERR (-56) +#define PQ_CONFIG_TABLE_PQUEUE_MSG_LIMIT_ERR (-57) +#define PQ_CONFIG_TABLE_NO_PQUEUES_ERR (-58) +#define PQ_CONFIG_TABLE_MSG_FLOW_FILTER_ERR (-59) +#define PQ_CONFIG_TABLE_QUEUE_ERR (-60) + +#endif diff --git a/apps/pq_lib/fsw/public_inc/pq_events.h b/apps/pq_lib/fsw/public_inc/pq_events.h new file mode 100644 index 000000000..eb80464cd --- /dev/null +++ b/apps/pq_lib/fsw/public_inc/pq_events.h @@ -0,0 +1,1350 @@ +/**************************************************************************** +* +* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions +* are met: +* +* 1. Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* 2. Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in +* the documentation and/or other materials provided with the +* distribution. +* 3. Neither the name Windhover Labs nor the names of its +* contributors may be used to endorse or promote products derived +* from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS +* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED +* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +* POSSIBILITY OF SUCH DAMAGE. +* +*****************************************************************************/ + +#ifndef PQ_EVENTS_H +#define PQ_EVENTS_H + +#ifdef __cplusplus +extern "C" { +#endif + +/************************************************************************ +** Local Defines +*************************************************************************/ + + +/* Event IDs + * Conventions: _EID is the event identifier. _EVT_CNT is the total number of + * events and should always be last. Events can be added before _EVT_CNT. + * For long-term maintenance, consider not removing an event but replacing it + * with an unused, reserved, enum to preserve the IDs later in the list. */ +typedef enum { + +/** \brief Value of zero is reserved, and should not be used. */ + PQ_RESERVED_EID = 0, /* Do not use this event ID */ + + /* + * START OF STANDARDIZED EVENT LIST + * + * The IDs for these events are based on a convention and should + * be kept consistent between apps for ops support. Events that + * are unique to this app will follow this initial list. Note, + * for maintenance keep these values explicit to ensure the ID + * convention. + */ + +/** \brief TO Init App INFO. +** \event Initialized. Version \%d.\%d.\%d.\%d +** +** \par Type: INFORMATION +* +** \par Cause: +** +** This event message is issued when the CFS TO Task has +** completed initialization. +** +** The first \c \b " %d " field contains the Application's Major Version Number +** The second \c \b " %d " field contains the Application's Minor Version Number +** The third \c \b " %d " field contains the Application's Revision Number +*/ + PQ_INIT_APP_INF_EID = 1, + +/** \brief TO Configuration Table Initialized. +** \event Config tables are initialized. +** +** \par Type: INFORMATION +** +** \par Cause: +** +** This message is generated when a table is initialized. +** +*/ + PQ_INIT_CONFIG_INF_EID = 2, + +/** \brief TO NOOP CMD INFO. +** \event Executed NOOP cmd (\%u), Version \%d.\%d.\%d.\%d +** +** \par Type: INFORMATION +** +** \par Cause: +** +** This event message is issued when the CFS TO Task has +** received and processed a Noop command. Also, the +** application version number is displayed. +*/ + PQ_CMD_NOOP_INF_EID = 3, + +/** \brief TO RESET CMD INFO. +** \event Executed RESET cmd (\%u) +** +** \par Type: INFORMATION +** +** \par Cause: +** +** This event message is issued when the CFS TO Task has +** received and processed a Reset command. +** +*/ + PQ_CMD_RESET_INF_EID = 4, + +/** \brief TO - +** \event TO - +** +** \par Type: +** +** \par Cause: +** +** This event message is reserved. +** Reserved for common id - PQ_SUBSCRIBE_INF_EID +** +*/ + PQ_RESERVED_ONE_EID = 5, + +/** \brief TO Init App ERROR. +** \event Application failed to initialize. +** +** \par Type: ERROR +** +** \par Cause: +** +** This event message is issued when the CFS TO Task has +** had an error with initializing the app. +** +*/ + PQ_INIT_APP_ERR_EID = 6, + +/** \brief TO - +** \event TO - +** +** \par Type: +** +** \par Cause: +** +** This event message is reserved. +** Reserved for common id - PQ_INIT_CLEANUP_ERR_EID +** +*/ + PQ_RESERVED_TWO_EID = 7, + +/** \brief TO Init CMD Pipe ERROR. +** \event Failed to create CMD pipe (0x%08X) +** +** \par Type: ERROR +** +** \par Cause: +** +** This event message is issued when the CFS TO Task has +** had an error initializing the command pipe. +** +*/ + PQ_INIT_CMDPIPE_ERR_EID = 8, + +/** \brief TO Init configuration table ERROR. +** \event Failed to init config tables (0x%08X) +** +** \par Type: ERROR +** +** \par Cause: +** +** This event message is issued when the CFS TO Task has +** had an error initializing a configuration table. +** +*/ + PQ_INIT_CONFIG_ERR_EID = 9, + +/** \brief TO - +** \event TO - +** +** \par Type: +** +** \par Cause: +** +** This event message is reserved. +** Reserved for common id - PQ_INIT_DATA_ERR_EID +** +*/ + PQ_RESERVED_THREE_EID = 10, + +/** \brief TO Init data pipe ERROR. +** \event Failed to init config tables (0x%08X) +** +** \par Type: ERROR +** +** \par Cause: +** +** This event message is issued when the CFS TO Task has +** had an error initializing the data pipe +** +*/ + PQ_INIT_DATAPIPE_ERR_EID = 11, + +/** \brief TO Init pipe ERROR. +** \event Failed to init pipes (0x%08X) +** +** \par Type: ERROR +** +** \par Cause: +** +** This event message is issued when the CFS TO Task has +** has at least 1 error initializing a pipe. +** +*/ + PQ_INIT_PIPE_ERR_EID = 12, + +/** \brief TO Init SCH pipe ERROR. +** \event Failed to create SCH pipe (0x%08X) +** +** \par Type: ERROR +** +** \par Cause: +** +** This event message is issued when the CFS TO Task has +** had an error initializing the scheduler pipe +** +*/ + PQ_INIT_SCHPIPE_ERR_EID = 13, + +/** \brief TO Command Code Error. +** \event Recvd invalid cmdId (\%u) +** +** \par Type: ERROR +** +** \par Cause: +** +** This event message is issued when the CFS TO Task has +** received a command with an invalid command code +** +*/ + PQ_CC_ERR_EID = 14, + +/** \brief TO CONFIG TABLE Address Error. +** \event Failed to get Config table's address for channel \%u, (0x%08X) +** +** \par Type: ERROR +** +** \par Cause: +** +** This event message is issued when the CFS TO Task has +** had an error with getting the configuration table address. +** +*/ + PQ_CONFIG_ADDR_ERR_EID = 15, + +/** \brief TO CONFIG TABLE Manage Error. +** \event Failed to manage Config table for channel \%u, (0x%08X) +** +** \par Type: ERROR +** +** \par Cause: +** +** This event message is issued when the CFS TO Task has +** had an error with managing the configuration table. +** +*/ + PQ_CONFIG_MANAGE_ERR_EID = 16, + +/** \brief TO received invalid message ID. +** \event Recvd invalid $type msgId (0x%04x) +** +** \par Type: ERROR +** +** \par Cause: +** +** This event message is issued when the CFS TO Task has +** received an invalid message ID. +** +*/ + PQ_MSG_ID_ERR_EID = 17, + +/** \brief TO received a message with a invalid length +** \event Rcvd invalid msgLen: msgId=0x%08X, cmdCode=\%d, msgLen=\%d, expectedLen=\%d" +** +** \par Type: ERROR +** +** \par Cause: +** +** This event message is issued when the CFS TO Task has +** received a message with a bad length. +** +*/ + PQ_MSG_LEN_ERR_EID = 18, + +/** \brief TO Software Bus Pipe ERROR. +** \event SB pipe read error (0x%08X) +** +** \par Type: ERROR +** +** \par Cause: +** +** This event message is issued when the CFS TO Task has +** had an error reading from a pipe. +** +*/ + PQ_PIPE_READ_ERR_EID = 19, + +/** \brief TO Subscribe ERROR. +** \event CMD Pipe failed to subscribe to PQ_CMD_MID. (0x%08X) +** \event Sch Pipe failed to subscribe to PQ_SEND_HK_MID. (0x%08X) +** +** \par Type: ERROR +** +** \par Cause: +** +** This event message is issued when the CFS TO Task has +** had an error subscribing to messages. +** +*/ + PQ_SUBSCRIBE_ERR_EID = 20, + +/** \brief TO Configuration ERROR. +** \event Channel \%u config table handle failure! (0x%08X) +** \event Failed to clear SB data pipe for channel \%u, (0x%08X) +** \event Failed to create '\%s' output channel queue for channel \%d. err=\%ld +** +** \par Type: ERROR +** +** \par Cause: +** +** This event message is issued when the CFS TO Task has +** had an error with the configuration table. +** +*/ + PQ_CONFIG_TABLE_ERR_EID = 21, + +/** \brief TO received and processed a command. +** \event Enabled channel \%u to \%s:\%u. +** +** \par Type: INFORMATION +** +** \par Cause: +** +** This event message is issued when the CFS TO Task has +** received and processed a command. +** +*/ + PQ_CMD_INF_EID = 22, + +/** \brief TO Unsubscribe ERROR. +** \event Message flow failed to unsubscribe from 0x%04x. (\%ld) +** +** \par Type: ERROR +** +** \par Cause: +** +** This event message is issued when the CFS TO Task has +** had an error subscribing to messages. +** +*/ + PQ_UNSUBSCRIBE_ERR_EID = 23, + +/** \brief TO Create child task failed. +** \event Child task creation failed: Failed to create \%s: 0x%08lX +** +** \par Type: ERROR +** +** \par Cause: +** +** This event message is issued when TO has failed to +** create its child task. +** +*/ + PQ_CREATE_CHDTASK_ERR_EID = 24, + +/** \brief Message Dropped on Priority Queue. +** \event PQ full (PQ \%lu, channel \%u). Error code (\%ld) Dropped message 0x%04x +** +** \par Type: DEBUG +** +** \par Cause: +** +** This event message is issued when one of the following errors is generated: +** +** - PQ_PRIORITY_QUEUE_FULL_ERR (OS_QUEUE_FULL) +** - PQ_MEMORY_FULL_ERR +** - CFE_ES_ERR_MEM_HANDLE +** - OS_ERR_INVALID_ID +** - OS_INVALID_POINTER +** - OS_ERROR are all handled by this else clause +** +*/ + PQ_MSG_DROP_FROM_FLOW_DBG_EID = 25, + +/** \brief TO Create memory pool failed. +** \event Error creating memory pool (0x%08X) +** +** \par Type: ERROR +** +** \par Cause: +** +** This event message is issued when TO has failed to +** create memory pool. +** +*/ + PQ_CR_POOL_ERR_EID = 26, + + /* Deleted "PQ_GET_POOL_ERR_EID = 27" */ + +/** \brief Listener failed to write. +** \event Listener passed NULL POINTER to PQ_OutputChannel_Send(). +** \event Not all bytes written to storage locations. +** +** \par Type: ERROR +** +** \par Cause: +** +** This event message is issued when TO has failed to +** write due to NULL pointer or not all bytes written. +** +*/ + PQ_TLM_LISTEN_ERR_EID = 28, + +/** \brief Query a channel for a specified message flow. +** \event CHANNEL=\%d MID=0x%04x ML=\%u PQI=\%u N=\%u AB=\%u D=\%lu Q=\%lu SB=\%lu FLT=\%lu FLD=\%lu S=\%lu +** +** \par Type: INFORMATION +** +** \par Cause: +** +** This event message is issued when the CFS TO Task has +** received and processed a Query Message Flow command. +** The following information is displayed: +** +** - Channel Id +** - Message Id +** - Message Limit +** - Priority Queue Id +** - Filter value (decimation) +** - Anomaly Queue Position +** - Dropped Message Count +** - Queued Message Count +** - Software Bus Message Count +** - Filtered Message Count +** - Failed Message Count +** - Sent Message Count +*/ + PQ_MSG_FLOW_INFO_EID = 29, + +/** \brief Failed query on channel for a specified message flow. +** \event MsgID=0x%04x not found (channel = \%d) +** \event Channel (\%d) not open. +** \event Invalid channel (channel = \%d, but max = \%d). +** +** \par Type: ERROR +** +** \par Cause: +** +** TO Command to query a message flow has failed due to the following: +** +** - MsgID not found +** - Channel not open +** - Channel index not valid (out of range) +*/ + PQ_MSG_FLOW_INFO_ERR_EID = 30, + +/** \brief Failed query on a channel for a specified message with NULL table pointer +** \event Channel missing valid table data (channel = \%d). +** +** \par Type: ERROR +** +** \par Cause: +** +** TO Command to query a message flow has failed due to the following: +** +** - Channel missing valid table data. +*/ + PQ_MSG_FLOW_MISSING_TBL_ERR_EID = 31, + +/** \brief Query a channel's priority queue. +** \event CHANNEL=\%d PQI=\%u S=\%u ML=\%u QT=\%u D=\%lu Q=\%lu CQ=\%u HWM=\%u +** +** \par Type: INFORMATION +** +** \par Cause: +** +** This event message is issued when TO Command Priority Queue Query executed +** successfully. +** +*/ + PQ_PQUEUE_INFO_EID = 32, + +/** \brief Failed query on a channel's priority queue. +** \event PQueueIdx \%u exceeds the largest available priority queue index +** \event Channel \%d not open. +** \event Invalid channel index (index = \%d, max = \%d) +** +** \par Type: ERROR +** +** \par Cause: +** +** This event message is issued when TO Command Priority Queue Query failed due to the following: +** +** - Priority queue index exceeds largest available priority queue index +** - Channel not open +** - Channel index not valid (out of range) +** +*/ + PQ_PQUEUE_INFO_ERR_EID = 33, + +/** \brief Command to query an output queue. +** \event CHANNEL=\%d S=\%d ML=\%i SC=\%lu CQC=\%d HWM=\%d +** +** \par Type: INFORMATION +** +** \par Cause: +** +** This event message is issued when the CFS TO Task has +** received and processed a Query Output Queue command. +** The following information is displayed: +** +** - Channel Id +** - Channel State +** - Output Queue depth +** - Sent count +** - Currently queued count +** - HighwaterMark +** +*/ + PQ_OUT_CH_INFO_EID = 34, + +/** \brief Command to query an output queue failed. +** \event Invalid channel index (index = \%d, max = \%d). +** \event Channel \%d not open. +** +** \par Type: ERROR +** +** \par Cause: +** +** This event message is issued when TO Command Output Queue Query failed due to the following: +** +** - Channel index not valid (out of range) +** - Channel not open +** +*/ + PQ_OUT_CH_INFO_ERR_EID = 35, + +/** \brief Failed to send out telemetry message, message too large. +** \event Listener: message too big, MID=0x\%x, bytes=\%u +** +** \par Type: ERROR +** +** \par Cause: +** +** This event message is issued when TO failed to send out telemetry message, message too large. +** +*/ + PQ_OUT_CH_MSG_TOO_BIG_EID = 36, + +/** \brief Command to add a message flow executed successfully. +** \event Executed ADD_MESSAGE cmd (\%u) +** +** \par Type: INFORMATION +** +** \par Cause: +** +** This event message is issued when TO Command Add a message flow executed successfully. +** +*/ + PQ_CMD_ADD_MSG_FLOW_EID = 37, + +/** \brief Command to add a message flow has failed. +** \event Invalid channel (channel = \%d, but max = \%d). +** \event Channel (\%d) not open. +** \event Message flow is already defined for channel \%d. +** \event Priority Queue Index \%u is invalid for channel \%d. +** \event Ground/Onboard Channel: Command inputs for storage location queues must be zero. +** \event Ground/Onboard Channel: Command input for Filter Value must be at least 1. +** \event Storage Channel: Command input for Filter Value must be 0. +** \event Storage: Command inputs for storage location queues are zero - No message flow. +** \event Message flow failed to subscribe to (0x%08X) on channel \%d. (\%ld) +** \event Failed to add message flow. No unused slots available on channel \%d. +** +** \par Type: ERROR +** +** \par Cause: +** +** This event message is issued when TO Command Add a message flow failed +** for one of the following reasons: +** +** - Channel index not valid (out of range) +** - Channel not open +** - Message flow already exists +** - Requested priority queue is invalid +** - Decimation filter value for the ground/onboard channel is invalid +** - Ground/onboard channel has non-zero values in storage queue inputs +** - FilterValue is non-zero for storage channel +** - Storage channel queue decimation values are all zero - no message flow +** - Message flow failed to subscribe +** - No available slots to insert message flow > PQ_MAX_MESSAGE_FLOWS +*/ + PQ_CMD_ADD_MSG_FLOW_ERR_EID = 38, + +/** \brief Command to remove a message flow executed successfully. +** \event Executed remove message flow cmd (\%u) +** +** \par Type: INFORMATION +** +** \par Cause: +** +** This event message is issued when TO command remove a message flow executed successfully. +** +*/ + PQ_CMD_REMOVE_MSG_FLOW_EID = 39, + +/** \brief Command to remove a message flow has failed. +** \event Invalid channel (channel = \%d, but max = \%d). +** \event Channel (\%d) not open. +** \event Message flow is not defined for channel \%d. +** \event Message flow failed to unsubscribe from 0x%08X on channel \%d. (\%ld) +** +** \par Type: ERROR +** +** \par Cause: +** +** This event message is issued when TO Command Remove a message flow failed +** for one of the following reasons: +** +** - Channel index not valid (out of range) +** - Channel not open +** - Message flow does not exist on the channel +** - Message flow failed to unsubscribe from channel +** +*/ + PQ_CMD_REMOVE_MSG_FLOW_ERR_EID = 40, + +/** \brief Command to send TO Diagnostics telemetry executed successfully. +** \event Successfully executed send diagnostics (\%u) +** +** \par Type: INFORMATION +** +** \par Cause: +** +** This event message is issued when TO command to Send TO Diagnostics telemetry executed successfully. +** +*/ + PQ_CMD_SEND_DIAG_EID = 41, + +/** \brief Command to send TO Diagnostics telemetry failed - (per-channel event). +** \event Invalid channel index. +** \event Channel has not been opened. +** +** \par Type: ERROR +** +** \par Cause: +** +** This event message (per-channel event) is issued when TO Send TO Diagnostics telemetry failed +** for one of the following reasons: +** +** - Channel index not valid (out of range) +** - Channel not open +*/ + PQ_CMD_SEND_DIAG_ERR_EID = 42, + +/** \brief Command to send diagnostics action did not occur because table data was missing - (per-channel event) +** \event Channel table is not available. +** +** \par Type: ERROR +** +** \par Cause: +** +** This event message (per-channel event) is issued when TO Command to sent +** TO diagnostic telemetry has failed due to the following: +** +** - Channel table pointer is NULL. +*/ + PQ_CMD_SEND_MISSING_TBL_ERR_EID = 43, + +/** \brief Failed to create priority queue because table data was missing - (per-channel event). +** \event Failed to create priority queues on channel \%d, missing table. +** +** \par Type: ERROR +** +** \par Cause: +** +** This event message (per-channel event) is issued when TO Command to query +** a priority queue has failed due to the following: +** +** - Channel table pointer is NULL. +*/ + PQ_PQUEUE_MISSING_TBL_ERR_EID = 44, + +/** \brief A priority queue could not be created because call to OS_QueueCreate failed (per-channel event). +** \event Failed to create '\%s' priority queue #\%u on channel \%d. (\%i) +** +** \par Type: ERROR +** +** \par Cause: +** +** This event message (per-channel event) is issued when +** OS_QueueCreate returned one of the following errors: +** +** - OS_INVALID_POINTER if a pointer passed in is NULL +** - OS_ERR_NAME_TOO_LONG if the name passed in is too long +** - OS_ERR_NO_FREE_IDS if there are already the max queues created +** - OS_ERR_NAME_TAKEN if the name is already being used on another queue +** - OS_ERROR if the OS create call fails +** +** A priority queue could not be created. Not a critical error. +*/ + PQ_PQUEUE_CREATE_ERR_EID = 45, + +/** \brief A priority queue could not be torn down (per-channel event). +** \event Failed to return message back to memory pool on tbl load for channel \%d. (\%ld) +** \event Message flow failed to pop all messages from pqueue \%u for channel \%d. (\%ld) +** \event Failed to delete priority queue \%u for channel \%d. (\%ld) +** +** \par Type: ERROR +** +** \par Cause: +** +** These event messages are issued when a priority queue could not be torn down for one of the following reasons: +** +** - Failed to return message back to memory pool on table load for the channel - error returned from call to OS_QueueGet +** - Message flow failed to pop all messages from priority queue for the channel - error returned from call to CFE_ES_PutPoolBuf +** - Failed to delete priority queue for the channel - error returned from call to OS_QueueDelete +** +*/ + PQ_PQUEUE_TEARDOWN_ERR_EID = 46, + +/** \brief The Storage queue anomaly buffer value is not in valid range. +** \event TO custom setting anomaly queue index error (\%u) using default anomaly buffer (10) index 6 +** +** \par Type: ERROR +** +** \par Cause: +** +** This event message is issed when TO custom setting anomaly queue index is not in range. It must be +** greater than PQ_MIN_ANOMALY_QUEUE and less than PQ_MAX_ANOMALY_QUEUE +** +*/ + PQ_DECIMATE_SET_QUEUE_BIT_ERR_EID = 47, + +/** \brief TO Table Validation failed - Configuration table pointer is NULL (not available). +** \event ERROR: Config table pointer is NULL, table validation ended" +** +** \par Type: ERROR +** +** \par Cause: +** +** This event message is issed when table validation failed due config table pointer being NULL (not available). +** +*/ + PQ_CONFIG_TABLE_NULL_PTR_EID = 48, + +/** \brief TO Table Validation failed - Priority Queue State is invalid. +** \event ERROR: Priority Queue State is invalid (\%d), for Table ID (\%lu) at table index (\%d) +** +** \par Type: ERROR +** +** \par Cause: +** +** This event message is issed when table validation failed due Priority Queue State not valid. +** +*/ + PQ_CONFIG_TABLE_PQUEUE_STATE_ERR_EID = 49, + +/** \brief TO Table Validation failed - Priority Queue Type is invalid. +** \event ERROR: Priority Queue Qtype is invalid (\%d) for Table ID (\%lu) at table index (\%d) +** +** \par Type: ERROR +** +** \par Cause: +** +** This event message is issed when table validation failed due to Priority Queue Type not valid. Only one type - FIFO. +** +*/ + PQ_CONFIG_TABLE_PQUEUE_QTYPE_ERR_EID = 50, + +/** \brief TO Table Validation failed - Priority Queue Message Limit is invalid. +** \event ERROR: Priority Queue MsgLimit invalid (\%d) for Table ID (\%lu) at table index (\%d) +** +** \par Type: ERROR +** +** \par Cause: +** +** Table validation failed due to Priority Queue Message Limit because invalid. +** +*/ + PQ_CONFIG_TABLE_PQUEUE_MSG_LIMIT_ERR_EID = 51, + +/** \brief TO Table Validation failed - no Priority Queues defined in the table. +** \event ERROR: No Priority Queues or all queue states are unused in the config table with Table ID (\%lu) +** +** \par Type: ERROR +** +** \par Cause: +** +** This event message is issed when table validation failed due because no Priority Queues defined in the table. +** +*/ + PQ_CONFIG_TABLE_NO_PQUEUES_ERR_EID = 52, + +/** \brief TO Table Validation failed - secondary header is absent. +** \event ERROR: Secondary Header is absent for table index (\%d), MsgId (0x%04X) in Table ID (\%lu) +** +** \par Type: ERROR +** +** \par Cause: +** +** This event message is issed when table validation failed due to CCSDS secondary header error (absent) +** +*/ + PQ_CONFIG_TABLE_SHDR_ABSENT_EID = 53, + +/** \brief TO Table Validation failed - Invalid CCSDS version +** \event ERROR: Invalid CCSDS Version for table index (\%d), MsgId (0x%04X) in Table ID (\%lu) +** +** \par Type: ERROR +** +** \par Cause: +** +** This event message is issed when table validation failed due to CCSDS VERS error. +** +*/ + PQ_CONFIG_TABLE_CCSDS_VER_INVALID_EID = 54, + +/** \brief TO Table Validation failed - configuration table Message Flow Limit is invalid. +** \event ERROR: Message Flow MsgLimit invalid (\%u) in Table ID (\%lu) at table index (\%d) +** +** \par Type: ERROR +** +** \par Cause: +** +** This event message is issed when table validation failed due to Message Flow Limit is out of range. +** +*/ + PQ_CONFIG_TABLE_MSG_FLOW_MSG_LIMIT_ERR_EID = 55, + +/** \brief TO Table Validation failed - configuration table Message Flow Priority Queue ID is invalid. +** \event ERROR: Message Flow Priority Queue ID is invalid (\%d) for Table ID (\%lu) at table index (\%d) +** +** \par Type: ERROR +** +** \par Cause: +** +** This event message is issed when table validation failed due to Message Flow Priority Queue ID being invalid. +** +*/ + PQ_CONFIG_TABLE_MSG_FLOW_PQ_ID_ERR_EID = 56, + +/** \brief TO Table Validation failed - configuration table has no Message Flows defined. +** \event INFO: No Message Flow entries in the config table, Table Id (\%lu) +** +** \par Type: INFO +** +** \par Cause: +** +** This event message is issed when table validation failed due to no Message Flows defined in table. +** +*/ + PQ_CONFIG_TABLE_NO_MSG_FLOW_INF_EID = 57, + +/** \brief TO Table Validation failed - configuration table Message Flow Decimation Filter value is invalid. +** \event ERROR: Storage Filter value is invalid must be 0 value is (\%u) for Table ID (\%lu) at table index (\%d) +** \event ERROR: Ground or Onboard Filter value is invalid must at least 1, value is (\%d) for Table ID (\%lu) at table index (\%d)" +** +** \par Type: ERROR +** +** \par Cause: +** +** These event messages are issed when table validation failed due to Message Flow Decimation Filter value being invalid. +** For Storage channel the filter value must be 0 and for the Ground and Onboard channels the filter value must be non-zero. +** +*/ + PQ_CONFIG_TABLE_MSG_FLOW_FILTER_ERR_EID = 58, + +/** \brief TO Table Validation failed - configuration table storage anomaly queue values are invalid for Ground and Onboard Channels. +** \event ERROR: Queue value is invalid must be 0 value is (\%u) for Table ID (\%lu) at table index (\%d) +** +** \par Type: ERROR +** +** \par Cause: +** +** This event message is issed when table validation failed due to storage anomaly queue values being non-zero for Ground and Onboard Channels. +** +*/ + PQ_CONFIG_TABLE_QUEUE_ERR_EID = 59, + +/** \brief Memory pool error - failed deallocating the memory allocated. +** \event PutPoolBuf: channel=\%d error=\%i +** +** \par Type: ERROR +** +** \par Cause: +** +** This event message is issued when TO has failed to deallocate the memory allocated +** because CFE_ES_PutPoolBuf returned an error. +** +*/ + PQ_PUT_POOL_ERR_EID = 60, + +/** \brief Command to flush a TO channel failed due invalid channel identifier. +** \event ChannelID \%u out of range. +** +** \par Type: ERROR +** +** \par Cause: +** +** This event message is issued when TO flush command failed for following reasons. +** +** - Channel index not valid (out of range) +** +*/ + PQ_FLUSH_INVALID_CHIDX_ERR_EID = 61, + +/** \brief Command to flush a TO channel failed on output queue. +** \event ChannelID \%u flush failure on output queue. +** +** \par Type: ERROR +** +** \par Cause: +** +** This event message is issued when TO flush command failed for following reasons. +** +** - Output Queue teardown failure +** +*/ + PQ_FLUSH_OQ_ERR_EID = 62, + +/** \brief Command to flush a TO channel failed on priority queue wipe all. +** \event ChannelID \%u flush failure on priority queue. +** +** \par Type: ERROR +** +** \par Cause: +** +** This event message is issued when TO flush command failed for following reasons. +** +** - Priority queue wipe all failure +** +*/ + PQ_FLUSH_PQ_ERR_EID = 63, + +/** \brief Command to flush a TO channel failed due to a software bus dequeue failure. +** \event ChannelID \%u software bus dequeue failure. +** +** \par Type: ERROR +** +** \par Cause: +** +** This event message is issued when TO flush command failed for following reasons. +** +** - Software bus dequeue failure +** +*/ + PQ_FLUSH_DEQUEUE_ERR_EID = 64, + +/** \brief Command to flush a TO channel executed successfully. +** \event ChannelID \%u flush successful. +** +** \par Type: INFORMATION +** +** \par Cause: +** +** This event message is issued when TO Channel flush command executed successfully. +** +*/ + PQ_FLUSH_SUCCESS_INF_EID = 65, + +/** \brief Command to modify a message flow's decimation values executed successfully. +** \event Executed Modify Decimation cmd (\%u) +** +** \par Type: INFORMATION +** +** \par Cause: +** +** This event message is issued when TO Command to modify +** message flow decimation scheme executed successfully. +** +*/ + PQ_CMD_MOD_DECIM_MSG_EID = 66, + +/** \brief Command to modify a message flow's decimation values has failed. +** \event Invalid channel (channel = \%d, but max = \%d). +** \event Channel not open. +** \event Message flow is not defined. +** \event Ground/Onboard Channel: Command inputs for storage location queues must be zero. +** \event Ground/Onboard Channel: Command input for Filter Value must be at least 1. +** \event Storage Channel: Command input for Filter Value must be 0. +** \event Storage: Command inputs for storage location queues are zero - Message flow not changed. +** +** \par Type: ERROR +** +** \par Cause: +** +** These event messages are issued when TO Command Remove a message flow failed +** for one of the following reasons: +** +** - Channel index not valid (out of range) +** - Channel not open +** - Message flow does not exist on the channel +** - Ground/Onboard channel command inputs for storage location queues are non-zero +** - Ground/Onboard channel command input for filter value is less than one +** - Storage channel command input for filter value is non-zero +** - Storage channel command inputs for storage location queues are zero +** +*/ + PQ_CMD_MOD_DECIM_MSG_ERR_EID = 67, + +/** \brief Command to change anomaly buffer location executed successfully. +** \event Updated Anomaly Queue to (\%u) from (\%u) +** +** \par Type: INFORMATION +** +** \par Cause: +** +** This event message is issued when TO Command to change anomaly buffer location executed successfully. +** +*/ + PQ_CMD_UPDATE_ANOMALY_BUFFER_EID = 68, + +/** \brief Command to change anomaly buffer location failed due to invalid input not in range. +** \event Invalid anomaly queue must be a value from (4 to 15) (input = \%d). +** +** \par Type: ERROR +** +** \par Cause: +** +** This event message is issued when TO Command to change anomaly buffer location for following reason. +** +** - Anomaly buffer queue location (out of range) +** +*/ + PQ_CMD_UPDATE_ANOMALY_BUFFER_ERR_EID = 69, + +/** \brief Command to update throttling rate executed successfully. +** \event Throttling: Channel \%u Write Rate to (\%lu) bytes/second from (\%lu) bytes/second +** +** \par Type: INFORMATION +** +** \par Cause: +** +** This event message is issued when TO Command to update throttling rate executed successfully. +** +*/ + PQ_CMD_UPDATE_CHANNEL_THROTTLING_EID = 70, + +/** \brief Command to update throttling rate failed due to rate not changed. +** \event Throttling: Channel \%u Write Rate to (\%lu) bytes/second from (\%lu) bytes/second" +** +** \par Type: DEBUG +** +** \par Cause: +** +** This event message is issued when TO Command to update the throttling rate was not +** successful because the new rate was the same as the current rate. +** +*/ + PQ_CMD_UPDATE_CHANNEL_THROTTLING_DBG_EID = 71, + +/** \brief Command to update throttling rate failed due to rate not changed. +** \event Invalid channel index (index = \%u, but max = \%d). +** \event Invalid Channel (input = \%u). Only Ground and Onboard channels are valid for this command +** \event Channel (\%u) not open. +** \event ConfigTblPtr is NULL, command rejected +** +** \par Type: ERROR +** +** \par Cause: +** +** These event message are issued when TO Command to update the throttling rate failed for the following reasons: +** +** - Channel index not valid +** - Channel input was the Storage channel +** - Channel not being open +** - Channel with a NULL table pointer +** +*/ + PQ_CMD_UPDATE_CHANNEL_THROTTLING_ERR_EID = 72, + +/** \brief Wipe priority queue memory pool error - failed to return message back to memory pool. +** \event Failed to return message back to memory pool on flush command. (\%ld) +** +** \par Type: ERROR +** +** \par Cause: +** +** This event message is issued when there is a failure to return message back to memory pool on flush command. +** +*/ + PQ_WIPE_PQ_MEMPOOL_ERR_EID = 73, + +/** \brief Failed to pop all messages from channel when attempting to wipe all channel priority queues. +** \event Failed to pop all messages from channel '\%s' priority queue '\%u'. (\%ld) +** +** \par Type: ERROR +** +** \par Cause: +** +** This event message is issued when there is a failure to pop all messages from channel. +** +*/ + PQ_WIPE_PQ_NO_POP_ERR_EID = 74, + +/** \brief Channel closed error, failure to process telemetry. +** \event Failed to process telemetry from ChannelID \%u +** +** \par Type: ERROR +** +** \par Cause: +** +** This event message is issued when the channel closed, can not process telemetry. +** +*/ + PQ_CHANNEL_CLOSED_ERR_EID = 75, + +/** \brief Channel identifier value is out of range. +** \event ChannelID (\%u) invalid. +** +** \par Type: ERROR +** +** \par Cause: +** +** This event message is issued when channel index is out of range. +** +*/ + PQ_CHANNEL_OUT_OF_RANGE_ERR_EID = 76, + +/** \brief Channel is not enabled. +** \event ChannelID \%u not enabled. +** +** \par Type: DEBUG +** +** \par Cause: +** +** This event message is issued when channel is not enabled +** +*/ + PQ_CHANNEL_NOT_ENABLED_EID = 77, + +/** \brief Channel teardown failed - TO channel cleanup failure. +** \event Message Flow Teardown failure \%ld on channel \%u. +** \event Priority Queue Teardown failure \%ld on channel \%u. +** \event Output Queue Teardown failure \%ld on channel \%u. +** +** \par Type: ERROR +** +** \par Cause: +** +** These event messages are issued when TO channel cleanup fails for the following reasons: +** +** - Message flow teardown fails +** - Priority queue teardown fails +** - Output queue teardown fails +** +*/ + PQ_CHANNEL_TEARDOWN_ERR_EID = 78, + +/** \brief Channel mutex lock failure - (per-channel event).' max = \%d) for msgId = (0x%04X) on channel (\%u) +** +** \par Type: ERROR +** +** \par Cause: +** +** This event message (per-channel event) is issued when the CFS TO Task attempts to process a telemetry +** message length that is larger than PQ_MAX_MSG_LENGTH. +** +*/ + PQ_TLM_MSG_LEN_ERR_EID = 88, + +/** \brief Classifier failed to retrieve a message flow - Message ID in the table - (per-channel event). +** \event Classifier Recvd invalid msgId (0x%04X) or message flow was removed on channel (\%u) +** +** \par Type: ERROR +** +** \par Cause: +** +** This event message (per-channel event) is issued when the CFS TO Task attempts to retrieve a message flow +** and the Message ID is not in the table. +** +*/ + PQ_MF_MSG_ID_ERR_EID = 89, + +/** \brief Failed loading a TO backup configuration table - (per-channel event). +** \event Failed to load built-in emergency backup config table! - channel \%u +** +** \par Type: ERROR +** +** \par Cause: +** +** This event message (per-channel event) is issued when CFE_TBL_Load failed to load the +** built-in emergency backup configuration table. +** +*/ + PQ_BACKUP_TABLE_ERR_EID = 90, + +/** \brief This is a count of all the app events and should not be used. */ + PQ_EVT_CNT +} PQ_EventIds_t; + + +#ifdef __cplusplus +} +#endif + +#endif /* PQ_EVENTS_H */ + +/************************/ +/* End of File Comment */ +/************************/ + diff --git a/apps/pq_lib/fsw/public_inc/pq_message_flow.h b/apps/pq_lib/fsw/public_inc/pq_message_flow.h new file mode 100644 index 000000000..c1870434e --- /dev/null +++ b/apps/pq_lib/fsw/public_inc/pq_message_flow.h @@ -0,0 +1,234 @@ +/**************************************************************************** +* +* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions +* are met: +* +* 1. Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* 2. Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in +* the documentation and/or other materials provided with the +* distribution. +* 3. Neither the name Windhover Labs nor the names of its +* contributors may be used to endorse or promote products derived +* from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS +* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED +* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +* POSSIBILITY OF SUCH DAMAGE. +* +*****************************************************************************/ + +#ifndef PQ_MESSAGE_FLOW_H +#define PQ_MESSAGE_FLOW_H + +/************************************************************************ +** Pragmas +*************************************************************************/ + +/************************************************************************ +** Includes +*************************************************************************/ + +#include "cfe.h" +#include "pq_platform_cfg.h" +#include "pq_priority_queue.h" +#include "pq_channel.h" +#include "pq_errors.h" + +/************************************************************************ +** Local Defines +*************************************************************************/ + +/************************************************************************ +** Local Structure Definitions +*************************************************************************/ + +/************************************************************************ +** External Global Variables +*************************************************************************/ + +/************************************************************************/ +/** \brief Resets all metrics. +** +** \par Description +** This function is called when the Reset command is received. +** It resets all metrics, which include the Dropped Message Count, +** Queued Message Count, Software Bus Message Count, and Sent +** Message Count. +** +** \param [in] channel A #PQ_ChannelData_t pointer that +** references the channel data structure +** +*************************************************************************/ +void PQ_MessageFlow_ResetCountsAll(PQ_ChannelData_t *channel); + + +/************************************************************************/ +/** \brief Teardown all output channel queues. +** +** \par Description +** This function is called at when the application is about to load +** a new configuration table. This will flush the queues and +** deallocate the messages contained in the queues. +** +** \param [in] channel A #PQ_ChannelData_t pointer that +** references the channel data structure +** +** \return +** 0 if successful. OSAL error if unsuccessful. +** +*************************************************************************/ +int32 PQ_MessageFlow_TeardownAll(PQ_ChannelData_t *channel); + + +/************************************************************************/ +/** \brief Buildup all message flows. +** +** \par Description +** This function is called at when the application has loaded a new +** configuration table. +** +** \return +** CFE_SUCCESS if no error occurred. On error, an OSAL error is returned +** indicating what error occured. +** +*************************************************************************/ +int32 PQ_MessageFlow_Buildup(PQ_ChannelData_t *channel); + + +/************************************************************************/ +/** \brief Get the next message flow object. +** +** \par Description +** This function is used by the classifier to get the next message +** flow object with the specified message ID. +** +** \param [in] MsgID A #CFE_SB_MsgId_t that references the +** software bus message. +** +** \param [in] channel A #PQ_ChannelData_t pointer that +** references the channel data structure +** +** \param [in,out] Index Pointer to a value that will be set to the array +** index of the message flow object returned. +** Value is not set if a NULL pointer passed in. +** +** \note It is safe to give a null pointer as the third argument +** because the function checks if the Index pointer is NULL +** If it is NULL and will not assign it if it is NULL. +** The Index contents can however be zero. +** +** \return +** Pointer to the #TO_MessageFlow_t object when successful. NULL +** pointer when unsuccessful. +** +*************************************************************************/ +PQ_MessageFlow_t* PQ_MessageFlow_GetObject(PQ_ChannelData_t *channel, + CFE_SB_MsgId_t MsgID, + uint32 *Index); + + +/************************************************************************/ +/** \brief Get priority queue object for the message flow. +** +** \par Description +** This function is used by the classifier to get the priority +** queue object from the message flow object. +** +** \param [in] channel A #PQ_ChannelData_t pointer that +** references the channel data structure +** +** \param [in] MsgFlow A #PQ_MessageFlow_t pointer that +** references the message flow. +** +** \param [in,out] Index Pointer to a value that will be set to the array +** index of the message flow object returned. +** Value is not set if a NULL pointer passed in. +** +** \return +** Pointer to the #PQ_PriorityQueue_t object when successful. NULL +** pointer when unsuccessful. +** +*************************************************************************/ +PQ_PriorityQueue_t* PQ_MessageFlow_GetPQueue(PQ_ChannelData_t *channel, + PQ_MessageFlow_t *MsgFlow, uint32 *Index); + + +/************************************************************************/ +/** \brief Add a message flow. +** +** \par Description +** This function adds message flow, if the message flow is not +** found on a given channel. +** +** \param [in] ChannelIdx Index for a given channel +** +** \param [in] MsgID A #CFE_SB_MsgId_t that references the +** software bus message. +** +** \param [in] MsgLimit The maximum messages the message flow +** queue will contain before overflowing. +** +** \param [in] PQueueIdx Index of the priority queue. +** +** TRUE if added. FALSE if not. +** +*************************************************************************/ +osalbool PQ_MessageFlow_Add(uint16 ChannelIdx, CFE_SB_MsgId_t MsgID, uint16 MsgLimit, uint16 PQueueIdx); + + +/************************************************************************/ +/** \brief Remove a message flow. +** +** \par Description +** This function removes a message flow from a given channel if it +** is found. +** +** \param [in] ChannelIdx Index for a given channel +** Ground = 0, Radio = 1, Storage = 2 +** +** \param [in] MsgID A #CFE_SB_MsgId_t that references the +** software bus message. +** +** \return +** TRUE if message flow is found and removed. FALSE if not. +** +*************************************************************************/ +osalbool PQ_MessageFlow_Remove(uint16 ChannelIdx, CFE_SB_MsgId_t MsgID); + + +/************************************************************************/ +/** \brief Query a message flow. +** +** \par Description +** This function queries a message flow to determine if it exists +** on a given channel. +** +** \param [in] ChannelIdx Index for a given channel +** Ground = 0, Radio = 1, Storage = 2 +** +** \param [in] MsgID A #CFE_SB_MsgId_t that references the +** software bus message. +** +** \return +** TRUE if message flow is found. FALSE if not found. +** +*************************************************************************/ +osalbool PQ_MessageFlow_Query(uint16 ChannelIdx, CFE_SB_MsgId_t MsgID); + + + +#endif diff --git a/apps/pq_lib/fsw/public_inc/pq_mission_cfg.h b/apps/pq_lib/fsw/public_inc/pq_mission_cfg.h new file mode 100644 index 000000000..4c67db880 --- /dev/null +++ b/apps/pq_lib/fsw/public_inc/pq_mission_cfg.h @@ -0,0 +1,100 @@ +/**************************************************************************** +* +* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions +* are met: +* +* 1. Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* 2. Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in +* the documentation and/or other materials provided with the +* distribution. +* 3. Neither the name Windhover Labs nor the names of its +* contributors may be used to endorse or promote products derived +* from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS +* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED +* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +* POSSIBILITY OF SUCH DAMAGE. +* +*****************************************************************************/ + +#ifndef PQ_MISSION_CFG_H +#define PQ_MISSION_CFG_H + +#ifdef __cplusplus +extern "C" { +#endif + +/* +** TO Mission Configuration Parameter Definitions +*/ + +/** + * @brief Maximum number of Message Flows. + * + * \note Limits: + * Zero Message Flows table entries will not invalidate the table. + * If the Message Flows table has one invalid entry the entire + * table is invalid. + */ +#define PQ_MAX_MESSAGE_FLOWS (200) + +/** + * \brief Maximum number of Priority Queues. + * + * \note Limits: + * There has to be at least one valid Priority Queue entry. However, + * if a following Priority Queue entry is invalid, the entire table + * is invalid. + * Zero Priority Queue table entries will result in an invalid table. + */ +#define PQ_MAX_PRIORITY_QUEUES (8) + +/** + * \brief Maximum number of messages in a Priority Queue. + * + * \note Limits: + * This maximum number is arbitrary. Minimum is 1. + * This maximum value is limited by the available memory. + * + * The local rules for setting this value are as follows: + * + * The sum of all the msglimits in a priority queue should not + * be greater than the msglimit of that priority queue. + * + * Another rule of thumb is to limit to small values. + * + */ +#define PQ_MAX_QUEUE_SIZE_LIMIT (128) + +/** + * \brief Maximum number of messages in a Message Flow. + * + * \note Limits: + * This maximum number is arbitrary. Minimum is 1. + * The maximum MsgLimit is limited by the available memory. + */ +#define PQ_MAX_PQ_MSG_SIZE_LIMIT (64) + +#ifdef __cplusplus +} +#endif + +#endif /* TO_MISSION_CFG_H */ + +/************************/ +/* End of File Comment */ +/************************/ diff --git a/apps/pq_lib/fsw/public_inc/pq_output_queue.h b/apps/pq_lib/fsw/public_inc/pq_output_queue.h new file mode 100644 index 000000000..3cc4ebac8 --- /dev/null +++ b/apps/pq_lib/fsw/public_inc/pq_output_queue.h @@ -0,0 +1,175 @@ +/**************************************************************************** +* +* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions +* are met: +* +* 1. Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* 2. Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in +* the documentation and/or other materials provided with the +* distribution. +* 3. Neither the name Windhover Labs nor the names of its +* contributors may be used to endorse or promote products derived +* from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS +* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED +* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +* POSSIBILITY OF SUCH DAMAGE. +* +*****************************************************************************/ + +#ifndef PQ_OUTPUT_QUEUE_H +#define PQ_OUTPUT_QUEUE_H + +/************************************************************************ +** Pragmas +*************************************************************************/ + +/************************************************************************ +** Includes +*************************************************************************/ + +#include "cfe.h" +#include "pq_channel.h" +#include "pq_structs.h" + +/************************************************************************ +** Local Defines +*************************************************************************/ + +/************************************************************************ +** Local Structure Definitions +*************************************************************************/ + +/************************************************************************ +** External Global Variables +*************************************************************************/ + +/************************************************************************/ +/** \brief Push a message onto the output channel queue. +** +** \par Description +** This function is called by the Scheduler to push a message onto +** the output channel for downlink. +** +** \param [in] ChannelIdx The index of the channel to push the +** message to. +** +** \param [in] Buffer Buffer containing the message to push. +** +** \param [in] Size Size of the message, in bytes, to push. +** +*************************************************************************/ +int32 PQ_OutputQueue_Push(PQ_ChannelData_t* channel, const char* Buffer, uint32 Size); + + + +/************************************************************************/ +/** \brief Cleanup all output channels. +** +** \par Description +** This function is call at application termination and empties +** the queue, deallocating each message its popped off the queue. +** +*************************************************************************/ +void PQ_OutputQueue_CleanupAll(PQ_ChannelData_t* channel); + + + +/************************************************************************/ +/** \brief Resets all metrics. +** +** \par Description +** This function is called at when the Reset command is received. +** It resets all metrics, which include the Sent Counts and the +** Highwater Marks. +** +*************************************************************************/ +void PQ_OutputQueue_ResetCounts(PQ_ChannelData_t* channel); + + + +/************************************************************************/ +/** \brief Teardown all output channel queues. +** +** \par Description +** This function is called at when the application is about to load +** a new configuration table. This will flush the queues and +** deallocate the messages contained in the queues. +** +*************************************************************************/ +int32 PQ_OutputQueue_Teardown(PQ_ChannelData_t* channel); + + + +/************************************************************************/ +/** \brief Buildup all output channel queues. +** +** \par Description +** This function is called at when the application has loaded a new +** configuration table. +** +** \returns +** 0 if no error occurred. On error, an OSAL error is returned +** indicating what error occured. +** \endreturns +** +*************************************************************************/ +int32 PQ_OutputQueue_Buildup(PQ_ChannelData_t* channel); + + + +/************************************************************************/ +/** \brief Queue message. +** +** \par Description +** This function is called by the Scheduler to queue a message +** for downlink. +** +** \param [in] MsgPtr A #CFE_SB_Msg_t pointer that +** references the software bus message + +** +** \param [in] OutChannel A #PQ_TlmOutputChannelQueue_t pointer to +** the output channel object. +** +** \returns +** 0 if successful. OSAL error if unsuccessful. +** \endreturns +** +*************************************************************************/ +int32 PQ_OutputQueue_QueueMsg(PQ_ChannelData_t* channel, CFE_SB_MsgPtr_t MsgPtr); + + + +/************************************************************************/ +/** \brief Query. +** +** \par Description +** This function is called when a ground command is received to +** query an output channel. This will raise an information event +** containing text with Sent Count and Highwater Mark. +** +** \param [in] OutputChannelIdx Index of the output channel to query. +** +** \returns +** TRUE if successful. FALSE if an error occurred. +** \endreturns +** +*************************************************************************/ +boolean PQ_OutputChannel_Query(uint16 ChannelIdx); + +#endif diff --git a/apps/pq_lib/fsw/public_inc/pq_platform_cfg.h b/apps/pq_lib/fsw/public_inc/pq_platform_cfg.h new file mode 100644 index 000000000..497d2de87 --- /dev/null +++ b/apps/pq_lib/fsw/public_inc/pq_platform_cfg.h @@ -0,0 +1,318 @@ +/**************************************************************************** +* +* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions +* are met: +* +* 1. Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* 2. Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in +* the documentation and/or other materials provided with the +* distribution. +* 3. Neither the name Windhover Labs nor the names of its +* contributors may be used to endorse or promote products derived +* from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS +* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED +* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +* POSSIBILITY OF SUCH DAMAGE. +* +*****************************************************************************/ + +#ifndef PQ_PLATFORM_CFG_H +#define PQ_PLATFORM_CFG_H + +#ifdef __cplusplus +extern "C" { +#endif + +#include "cfe_platform_cfg.h" + +/* +** Platform Configuration Parameter Definitions +*/ + + +/** \tocfg Child task flags +** +** \par Description: +** These are optional flags passed to the #CFE_ES_CreateChildTask +** function when creating the CFE child task. +** +*/ +#define PQ_CUSTOM_CHILD_TASK_FLAGS (OS_ENABLE_CORE_0) + + +/** \tocfg Child task stack size +** +** \par Description: +** Child task stack size passed to the #CFE_ES_CreateChildTask +** function when creating the CFE child task. Stack size is in +** bytes. +** +*/ +#define PQ_CUSTOM_TASK_STACK_SIZE (131072) + + +/** \tocfg Default telemetry destination IP address +** +** \par Description: +** Default IP address to send the telemetry stream to. This is default +** only and can be changed by command at runtime. +** +*/ +#define PQ_UDP_CHANNEL_ADDRESS "127.0.0.1" + + +/** \tocfg Default telemetry destination UDP port +** +** \par Description: +** Default UDP port to send the telemetry stream to. This is default +** only and can be changed by command at runtime. +** +*/ +#define PQ_UDP_CHANNEL_PORT (5011) + + +/** \tocfg Message Flow packet limit +** +** \par Description: +** This is the maximum number of message flow entries that can fit in +** a message flow diagnostic message. +** +*/ +#define PQ_MSG_FLOW_PKT_LIMIT (200) + + +/** \tocfg Maximum message length +** +** \par Description: +** The maximum size that an output telemetry message can be. This is in +** bytes. If a message exceeds this size, it will be dropped by the +** classifier. +** +*/ +#define PQ_MAX_MSG_LENGTH (32767) + +/** \tocfg The UDP channel's CF throttling semaphore name +** +** \par Limits: +** Two channels in CF must not have the same semaphore name. This must be unique +** compared to other channels' throttling semaphores. +*/ +#define PQ_UDP_CF_THROTTLE_SEM_NAME "PQ_CF_CH0_SEM" + + +/** \tocfg The UDP channel Name +*/ +#define PQ_UDP_CHANNEL_NAME "UDP" + + + +/** \tocfg The UDP channel's default and maximum value for the CF + * throttling semaphore +** +** \par Limits: +** Must not be larger than the PQ_DATA_PIPE_DEPTH +*/ +#define PQ_UDP_CF_MAX_PDUS (4) + + +/** \tocfg Mission specific version number for TO application +** +** \par Description: +** An application version number consists of four parts: +** major version number, minor version number, revision +** number and mission specific revision number. The mission +** specific revision number is defined here and the other +** parts are defined in "to_version.h". +** +** \par Limits: +** Must be defined as a numeric value that is greater than +** or equal to zero. +*/ +#define PQ_MISSION_REV (1) + +/** \tocfg Pipe depth for the Scheduler pipe +** +** \par Limits: +** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. +*/ +#define PQ_SCH_PIPE_DEPTH (2) + +/** \tocfg Pipe name for the Scheduler pipe +** +** \par Limits: +** Note, this name must fit in OS_MAX_API_NAME. +*/ +#define PQ_SCH_PIPE_NAME ("PQ_SCH_PIPE") + +/** \tocfg The SB pend behavior type for the Scheduler pipe. +** +** \par Limits: +** One of: CFE_SB_POLL, CFE_SB_PEND_FOREVER, or the +** number of milliseconds to wait for a new message (recommended). +** Note, using CFE_SB_PEND_FOREVER may cause an unresponsive +** application if no messages arrive on this pipe. +*/ +#define PQ_SCH_PIPE_PEND_TIME (2000) + +/** \tocfg The number of WAKEUP messages to reserve on the Scheduler pipe. +** +** \par Limits: +** minimum of 1, max limited to CFE_SB_MAX_PIPE_DEPTH-1. Note the +** PQ_SCH_PIPE_WAKEUP_RESERVED and PQ_SCH_PIPE_SEND_HK_RESERVED +** must be less than PQ_SCH_PIPE_DEPTH. +*/ +#define PQ_SCH_PIPE_WAKEUP_RESERVED (1) + +/** \tocfg The number of SEND_HK messages to reserve on the Scheduler pipe. +** +** \par Limits: +** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. Note the +** PQ_SCH_PIPE_WAKEUP_RESERVED and PQ_SCH_PIPE_SEND_HK_RESERVED +** must be less than PQ_SCH_PIPE_DEPTH. +*/ +#define PQ_SCH_PIPE_SEND_HK_RESERVED (1) + +/** \tocfg Pipe depth for the command pipe +** +** \par Limits: +** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. +*/ +#define PQ_CMD_PIPE_DEPTH (4) + +/** \tocfg Pipe name for the Scheduler pipe +** +** \par Limits: +** Note, this name must fit in OS_MAX_API_NAME. +*/ +#define PQ_CMD_PIPE_NAME ("PQ_CMD_PIPE") + +/** \tocfg Pipe depth for the data pipe +** +** \par Limits: +** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. +*/ +#define PQ_DATA_PIPE_DEPTH (CFE_SB_MAX_PIPE_DEPTH) + +/** \tocfg The config table default filename +** +** \par Limits: +** The length of each string, including the NULL terminator cannot exceed +** the #OS_MAX_PATH_LEN value. +*/ +#define PQ_UDP_CONFIG_TABLE_FILENAME ("/cf/apps/to_udp_cfg.tbl") + + +#define PQ_MAX_MEMPOOL_BLK_SIZES (8) + +/** +** \cfeescfg Define TO Memory Pool Block Sizes +** +** \par Description: +** TO Memory Pool Block Sizes +** +** \par Limits +** These sizes MUST be increasing and MUST be an integral multiple of 4. +** The number of block sizes defined cannot exceed +** #CFE_ES_MAX_MEMPOOL_BLOCK_SIZES +*/ +#define PQ_MEM_BLOCK_SIZE_01 32 +#define PQ_MEM_BLOCK_SIZE_02 64 +#define PQ_MEM_BLOCK_SIZE_03 128 +#define PQ_MEM_BLOCK_SIZE_04 256 +#define PQ_MEM_BLOCK_SIZE_05 512 +#define PQ_MEM_BLOCK_SIZE_06 2048 +#define PQ_MEM_BLOCK_SIZE_07 8192 +#define PQ_MAX_BLOCK_SIZE (PQ_MEM_BLOCK_SIZE_07 + PQ_MEM_BLOCK_SIZE_07) + +/** + * \tocfg Defines the table identification name used for table registration + * of the configuration table. + */ +#define PQ_UDP_CONFIG_TABLENAME "UDP_CFG" + +/** + * \tocfg Defines the table identification name used for table registration + * of the dump table. + */ +#define PQ_UDP_DUMP_TABLENAME "UDP_DMP" + +/** \tocfg The timeout value, in milliseconds, to wait for ES application startup sync. +** +** \par Limits: +** This parameter must be at least 1000 (ms). +*/ +#define PQ_STARTUP_TIMEOUT_MSEC (1000) + +/** \tocfg Maximum number of messages to classify per processing frame. +*/ +#define PQ_MAX_MSGS_OUT_PER_FRAME (100) + +/** \tocfg Maximum number of messages to classify per processing frame. +*/ + +/** \tocfg Maximum number configurable channels. + * +** \par Description: This is normally set to 1. +*/ +#define PQ_MAX_CHANNELS (1) + +/** \tocfg Channel output queue depth. + * +** \par Description: This defines how many messages can be queued into the +** channel output queue by the scheduler. +*/ +#define PQ_OUTPUT_QUEUE_DEPTH (20) + +/** \tocfg Development UDP channel task priority. + * +** \par Description: This defines the priority of the development UDP +** child task. +*/ +#define PQ_UDP_CHANNEL_TASK_PRIORITY (119) + +/** +** \tocfg Number of bytes in the Message Memory Pool +** +** \par Description: +** The message memory pool contains the memory needed for the queued messages packets. +** The queued messages are dynamically allocated from this pool when the +** messages are received and queued, and deallocated when messages are transmitted +** or a new table is loaded. +** +** \par Limits +** The Telemetry Output app does not place a limit on this parameter, but there is +** an overhead cost in the memory pool. The value must be larger than what is +** needed. +*/ +#define PQ_NUM_BYTES_IN_MEM_POOL (200 * PQ_MAX_BLOCK_SIZE) + +/** + * \brief Defines the number of entries in the table + */ +#define PQ_CONFIG_TABLE_MAX_ENTRIES (1) + +#ifdef __cplusplus +} +#endif + +#endif /* PQ_PLATFORM_CFG_H */ + +/************************/ +/* End of File Comment */ +/************************/ + diff --git a/apps/pq_lib/fsw/public_inc/pq_priority_queue.h b/apps/pq_lib/fsw/public_inc/pq_priority_queue.h new file mode 100644 index 000000000..0923f4be2 --- /dev/null +++ b/apps/pq_lib/fsw/public_inc/pq_priority_queue.h @@ -0,0 +1,175 @@ +/**************************************************************************** +* +* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions +* are met: +* +* 1. Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* 2. Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in +* the documentation and/or other materials provided with the +* distribution. +* 3. Neither the name Windhover Labs nor the names of its +* contributors may be used to endorse or promote products derived +* from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS +* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED +* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +* POSSIBILITY OF SUCH DAMAGE. +* +*****************************************************************************/ + +#ifndef PQ_PRIORITY_QUEUE_H +#define PQ_PRIORITY_QUEUE_H + +/************************************************************************ +** Pragmas +*************************************************************************/ + +/************************************************************************ +** Includes +*************************************************************************/ + +#include "cfe.h" +#include "pq_structs.h" +#include "pq_errors.h" + +/************************************************************************ +** Local Defines +*************************************************************************/ + +/************************************************************************ +** Local Structure Definitions +*************************************************************************/ + +/************************************************************************ +** External Global Variables +*************************************************************************/ + +/************************************************************************/ +/** \brief Resets all metrics. +** +** \par Description +** This function is called at when the Reset command is received. +** It resets all metrics, which include the Dropped Message Counts, +** and Queued Message Counts. +** +** \param [in] channel A #PQ_ChannelData_t pointer that +** references the channel data structure +** +*************************************************************************/ +void PQ_PriorityQueue_ResetCountsAll(PQ_ChannelData_t *channel); + + +/************************************************************************/ +/** \brief Buildup all priority queues. +** +** \par Description +** This function is called at when the application has loaded a new +** configuration table. +** +** \param [in] channel A #PQ_ChannelData_t pointer that +** references the channel data structure +** +** \return +** CFE_SUCCESS if no error occurred. On error, a PQ error or an OSAL error +** is returned indicating what error occured. +** +*************************************************************************/ +int32 PQ_PriorityQueue_BuildupAll(PQ_ChannelData_t *channel); + + +/************************************************************************/ +/** \brief Queue message. +** +** \par Description +** This function is called by the Classifier to queue a message +** into a priority queue. +** +** \param [in] MsgPtr A #CFE_SB_Msg_t pointer that +** references the software bus message + +** +** \param [in] PQueue A #PQ_PriorityQueue_t pointer to +** the priority queue object. +** +** \returns +** 0 if successful. OSAL error if unsuccessful. +** \endreturns +** +*************************************************************************/ +int32 PQ_PriorityQueue_QueueMsg(PQ_ChannelData_t *channel, CFE_SB_MsgPtr_t MsgPtr, uint32 PQueueIndex); + + + +/************************************************************************/ +/** \brief Teardown all priority queues. +** +** \par Description +** This function is called at when the application is about to load +** a new configuration table. This will flush the queues and +** deallocate the messages contained in the queues. +** +** \param [in] channel A #PQ_ChannelData_t pointer that +** references the channel data structure +** +** \return +** 0 if successful. OSAL error if unsuccessful. +** +*************************************************************************/ +int32 PQ_PriorityQueue_TeardownAll(PQ_ChannelData_t *channel); + + + +/************************************************************************/ +/** \brief Query a priority queue. +** +** \par Description +** This function is called when a ground command is received to +** query a message flow. An event is raised with the following +** text format: +** "PQI= CI= S= ML= QT= D= Q= CQ= HWM=" +** +** \param [in] ChannelIdx Index for a given channel +** +** \param [in] PQueueIdx Index of the priority queue. +** +** \return +** TRUE if priority queue is found. FALSE if not found. +** +*************************************************************************/ +osalbool PQ_PriorityQueue_Query(uint16 ChannelIdx, uint16 PQueueIdx); + + +/************************************************************************/ +/** \brief Checks whether a priority index is valid or not. +** +** \par Description +** This function is used internally to determine if an index is +** to a valid priority queue. +** +** \param [in] channel A #PQ_ChannelData_t pointer that +** references the channel data structure +** +** \param [in] PQueueIdx Index of the priority queue. +** +** \return +** TRUE if priority queue is valid. FALSE if not. +** +*************************************************************************/ +osalbool PQ_PriorityQueue_IsValid(PQ_ChannelData_t *channel, uint32 PQueueIdx); + + +#endif diff --git a/apps/pq_lib/fsw/public_inc/pq_structs.h b/apps/pq_lib/fsw/public_inc/pq_structs.h new file mode 100644 index 000000000..4bb26bd63 --- /dev/null +++ b/apps/pq_lib/fsw/public_inc/pq_structs.h @@ -0,0 +1,628 @@ +/**************************************************************************** +* +* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions +* are met: +* +* 1. Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* 2. Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in +* the documentation and/or other materials provided with the +* distribution. +* 3. Neither the name Windhover Labs nor the names of its +* contributors may be used to endorse or promote products derived +* from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS +* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED +* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +* POSSIBILITY OF SUCH DAMAGE. +* +*****************************************************************************/ + +#ifndef PQ_STRUCTS_H +#define PQ_STRUCTS_H + +#include "cfe.h" +#include "pq_platform_cfg.h" +#include "pq_mission_cfg.h" + +/* pq_priority_queue */ + +/** +** \brief Priority queue state. Used to determine if a table entry is used or not. +*/ +typedef enum +{ + /** \brief Priority Queue Unused state */ + PQ_PQUEUE_UNUSED = 0, + + /** \brief Priority Queue Enabled state */ + PQ_PQUEUE_ENA = 1, + + /** \brief This is a count of Priority Queue states and should not be used. */ + PQ_PQUEUE_COUNT + +} PQ_PriorityQueueState_t; + +/** +** \brief Priority queue type. +*/ +typedef enum +{ + /** \brief 'FIFO' queues are normal FIFO queues. */ + PQ_PRIORITY_QUEUE_TYPE_FIFO = 0, + + /** \brief 'SINGLE' queues are currently unused. */ + PQ_PRIORITY_QUEUE_TYPE_SINGLE = 1, + + /** \brief This is a count of Priority Queue types and should not be used. */ + PQ_PRIORITY_QUEUE_TYPE_COUNT, + +} PQ_PriorityQueueType_t; + + +/** \brief Definition for a single priority queue entry. */ +typedef struct +{ + /** \brief Priority Queue State (unused or enabled) */ + uint8 State; + + /** \brief Priority Queue Message Limit. */ + uint16 MsgLimit; + + /** \brief Priority Queue Type (only one type - FIFO) */ + PQ_PriorityQueueType_t QType; + +} PQ_PriorityQueue_t OS_ALIGN(2); + +/** \brief Definition for Priority Queue Metrics */ +typedef struct +{ + /** \brief Priority Queue Dropped Message Count */ + uint32 DroppedMsgCnt; + + /** \brief Priority Queue Queued Message Count */ + uint32 QueuedMsgCnt; + + /** \brief Priority Queue Passed (not filtered) Message Count */ + uint32 PassCnt; + + /** \brief Priority Queue Filtered (not sent/passed) Message Count */ + uint32 FilteredCnt; + + /** \brief Priority Queue Currently Queued Message Count */ + uint16 CurrentlyQueuedCnt; + + /** \brief Priority Queue Highest recorded the Queued Message Count */ + uint16 HighwaterMark; + + /** \brief Priority Queue Queue ID */ + uint32 OSALQueueID; + +} PQ_PriorityQueueMetrics_t; + +/* pq_message_flow */ + +/** \brief Definition for a single telemetry message flow entry */ +typedef struct +{ + /** + * \brief The Message ID is used to select the message from the cFE Software Bus (SB) to send + * through the TO channel managed by the table. + * + * \par + * Units: none. + * + * \par + * Limits: must be defined in cfe_mission_cfg.h + */ + CFE_SB_MsgId_t MsgId; + + /** + * \brief Maximum number of messages in a Message Flow. + * + * \par + * Units: Number of messages that can be in a Message Flow. + * + * \par + * Limits: The mininum value is 1. The maximum value depends on available memory and is + * an OPS driven parameter. The sum of all the msglimits in a priority queue + * should not be greater than the msglimit of that priority queue. + */ + uint16 MsgLimit; + + /** + * \brief The Priority Queue ID is an index which selects the priority queue the message will be + * placed into. + * + * \par + * Units: none. + * + * \par + * Limits: If the Priority Queue ID does not match a priority queue then the table is invalid + */ + uint16 PQueueID; + +} PQ_MessageFlow_t OS_ALIGN(2); + + +/** \brief Definition for the metrics collected for a single telemetry message flow entry */ +typedef struct +{ + /** + * \brief Dropped message count is a count of number of times a specific message was + * dropped. + * + * \par + * Units: none. + * + * \par + * Limits: none. + */ + uint32 DroppedMsgCnt; + + /** + * \brief Queued message count is a count of number of times a specific message was queued for sending. + * + * \par + * Units: none. + * + * \par + * Limits: none. + */ + uint32 QueuedMsgCnt; + + /** + * \brief SBMsgCnt is the total number of messages for the particular message ID pulled from the + * software bus for that channel. Used for message decimation. + * + * \par + * Units: none. + * + * \par + * Limits: Increments on each message received. Rolls over to 0 at max value. + */ + uint32 SBMsgCnt; + +} PQ_MessageFlowMetrics_t; + +/* pq_output_queue structs */ + +/** +** \brief Definition for a single output channel queue entry. +*/ +typedef struct +{ + /** \brief OSAL queue descriptor */ + uint32 OSALQueueID; + + /** \brief Count of the number of bytes sent from the output queue */ + uint32 SentBytes; + + /** \brief Count of the number of messages sent from the output queue */ + uint32 SentCount; + + /** \brief Count of the number of messages currently queued on output queue */ + uint16 CurrentlyQueuedCnt; + + /** \brief Count of the number of bytes sent from the output queue */ + uint16 HighwaterMark; + +} PQ_OutputQueue_t; + + +/* pq_channel structs */ + +/** +** \brief Channel States. +* +* \par PQ channels can have three states: +* +* PQ_CHANNEL_UNKNOWN +* PQ_CHANNEL_OPENED +* PQ_CHANNEL_CLOSED +* +* \note All channels that are opened will never be commanded to close. +* The only time where a channel is closed is during clean-up. +*/ +typedef enum +{ + + /** \brief Channel is unknown. + * + * \par + * This state means the channel was either never initialized or failed to initialized + * and is in an unusable state (no data flow). + */ + PQ_CHANNEL_UNKNOWN = 0, + + /** \brief Channel closed state. + * + * \par + * This state means that the channel is not operational (no data flow). + */ + PQ_CHANNEL_CLOSED = 1, + + /** \brief Channel opened state. + * + * \par + * This state means the channel is operational (data can flow). + */ + PQ_CHANNEL_OPENED = 2, + + /** \brief This is a count of Channel states and should not be used. */ + PQ_CHANNEL_STATE_COUNT + +} PQ_ChannelState_t OS_ALIGN(4); + +/*Make sure uint8 can store enum*/ +CompileTimeAssert((PQ_CHANNEL_STATE_COUNT <= 0xff), PQ_ChannelState_t_less_than_256); + +/* pq_tbldefs */ + +/** \pqtbl PQ Configuration Table + * + * \brief Definition for a TO Configuration table + */ +typedef struct +{ + /** + * \brief The table identifier, used to identify a specific config table. + * + * \par + * Units: none. + * + * \par + * Limits: must be greater than or equal to 0 + * + * \par + * Note: TableID value 0xFFFFFFFF is reserved for each channel's + * backup emergency table. The backup emergency tables are loaded + * when the channel's table file could not be loaded. + * It is the largest uint32 available 4294967295. + */ + uint32 TableID; + + /** + * \brief MessageFlow defines a single telemetry message flow entry. + * + * \par + * Units: none. + * + * \par + * Limits: The maximum number of message flows is defined in to_mission_cfg.h + */ + PQ_MessageFlow_t MessageFlow[PQ_MAX_MESSAGE_FLOWS]; + + /** + * \brief The Priority Queue defines a single priority queue entry. + * + * \par + * Units: none. + * + * \par + * Limits: The maximum number of priority queues is defined in to_mission_cfg.h + */ + PQ_PriorityQueue_t PriorityQueue[PQ_MAX_PRIORITY_QUEUES]; + +} PQ_ChannelTbl_t; + + +/** \brief Definition for a single TO dump table entry */ +typedef struct +{ + /** + * \brief The table identifier, used to identify a specific dump table. + * + * \par + * Units: none. + * + * \par + * Limits: must be greater than or equal to 0 + */ + uint16 TableID; + + /** + * \brief This MessageFlow is a structure which defines the message flow metrics + * to be collected. + * + * \par + * Units: none. + * + * \par + * Limits: PQ_MAX_QUEUE_SIZE_LIMIT. + */ + PQ_MessageFlowMetrics_t MessageFlow[PQ_MAX_MESSAGE_FLOWS]; + + /** + * \brief This PriorityQueue is a structure which defines the priority queue metrics + * to be collected. + * + * \par + * Units: none. + * + * \par + * Limits: PQ_MAX_PRIORITY_QUEUES + */ + PQ_PriorityQueueMetrics_t PriorityQueue[PQ_MAX_PRIORITY_QUEUES]; + + /** + * \brief This OutputQueue is a structure which defines the output queue metrics + * to be collected. + * + * \par + * Units: none. + * + * \par + * Limits: none. + */ + PQ_OutputQueue_t OutputQueue; + +} PQ_ChannelDumpTbl_t; + +/** +** \brief Definition of Channel Data. +* +*/ +typedef struct +{ + /* Config table-related */ + + /** \brief Config Table Handle + * + * \note CFE_TBL_Handle_t is a int16 + */ + CFE_TBL_Handle_t ConfigTblHdl; + + /** \brief Dump Table Handle */ + CFE_TBL_Handle_t DumpTblHdl; + + /** \brief Config Table Pointer + * + * \par + * A pointer to config table data from cFE table services. + * + * \par + * Note, this pointer can be null if the table data is not current or valid. + * The reasons for this can occur outside of nominal app function and the + * pointer could be restored to a non-null value at another time. + */ + PQ_ChannelTbl_t* ConfigTblPtr; + + /** \brief Pointer to the memory resident backup table, if the channel + * was configured to have one. If there is no backup table, this is null. + */ + PQ_ChannelTbl_t* BackupTblPtr; + + /** \brief Dump Table Pointer */ + PQ_ChannelDumpTbl_t DumpTbl; + + /** \brief Memory pool buffer for queued messages. */ + uint8 MemPoolBuffer[PQ_NUM_BYTES_IN_MEM_POOL]; + + /** \totlmmnemonic PQ_MEMPOOLHNDL + \brief Memory pool handle for queued messages. */ + uint32 MemPoolHandle; + + /** \totlmmnemonic PQ_MEMINUSE + \brief The total memory currently in use */ + uint32 MemInUse; + + /** \totlmmnemonic PQ_PKMEMINUSE + \brief The peak memory in use */ + uint32 PeakMemInUse; + + /** \totlmmnemonic PQ_MEMFULLCNT + \brief The number of times a message was not queued due to memory pool being full. */ + uint32 MemFullCount; + + /** \brief Mutex to protect the Channel data*/ + uint32 MutexID; + + /** \totlm Sent Channel Telemetry + \brief Count of telemetry messages sent out the channel interface. + Counter begins at zero with app initialization and rolls over. */ + uint32 SentMsgCount; + + /** \totlm Queued Channel Telemetry + \brief Count of telemetry messages queued on the TO channel's Priority Queues. + Counter begins at zero with app initialization and rolls over. */ + uint32 QueuedMsgCount; + + /** \totlm Dropped Channel Telemetry + \brief Count of telemetry messages rejected, and not passed into the channel's Priority Queues. + Counter begins at zero with app initialization and rolls over. */ + uint32 DropMsgCount; + + /** \totlm Failed Channel Telemetry + \brief Count of telemetry messages failed on interface write after being pulled from the output queue, and lost. + Counter begins at zero with app initialization and rolls over. */ + uint32 FailedMsgCount; + + /** \totlm Channel Bytes Sent + \brief The number of bytes sent out the channel's interface + Counter begins at zero with app initialization and rolls over. */ + uint32 BytesSent; + + /** \brief Struct for single output channel queue entry*/ + PQ_OutputQueue_t OutputQueue; + + /**\brief CF Throttling Semaphore ID*/ + uint32 CfCntSemId; + + /**\brief CF Throttling Semaphore Max Count*/ + uint32 CfCntSemMax; + + /** \brief Channel index */ + uint32 channelIdx; + + /** \brief CF Throttling Semaphore Name*/ + char CfCntSemName[OS_MAX_API_NAME]; + + /** \brief Config Table Name */ + char ConfigTableName[CFE_TBL_MAX_NAME_LENGTH]; + + /** \brief Config Table File Name */ + char ConfigTableFileName[OS_MAX_PATH_LEN]; + + /** \brief Dump Table Name */ + char DumpTableName[CFE_TBL_MAX_NAME_LENGTH]; + + /** \brief Channel Name */ + char ChannelName[OS_MAX_API_NAME]; + + /** \brief Data Pipe ID */ + CFE_SB_PipeId_t DataPipeId; + + /** \brief To hold the value of PQ_ChannelState_t */ + uint8 State; + +} PQ_ChannelData_t; + +/* pq hk telemetry */ + +/** + * \brief Channel memory information. + */ +typedef struct +{ + /** \brief Total memory currently in use */ + uint32 MemInUse; + + /** \brief Peak channel memory usage */ + uint32 PeakMemInUse; + +} PQ_ChannelMemoryInfo_t; + +/** +** \brief TO application housekeeping data +*/ +typedef struct +{ + /** \brief cFE SB Tlm Msg Hdr */ + uint8 TlmHeader[CFE_SB_TLM_HDR_SIZE]; + + /** \totlm Sent Channel Telemetry + \totlmmnemonic PQ_RDOSENT + \totlmmnemonic PQ_SNKLSENT + \totlmmnemonic PQ_STORSENT + \brief Count of telemetry messages sent out the channel interface. + Counter begins at zero with app initialization and rolls over. + Index of array is equivalent to the relevant TO channel index. */ + uint32 uiSentMsgCountChannel[PQ_MAX_CHANNELS]; + + /** \totlm Queued Channel Telemetry + \totlmmnemonic PQ_RDOQUEUED + \totlmmnemonic PQ_SNKLQUEUED + \totlmmnemonic PQ_STORQUEUED + \brief Count of telemetry messages queued on the TO channel's Priority Queues. + Counter begins at zero with app initialization and rolls over. + Index of array is equivalent to the relevant TO channel index. */ + uint32 uiQueuedMsgCountChannel[PQ_MAX_CHANNELS]; + + /** \totlm Dropped Channel Telemetry + \totlmmnemonic PQ_RDODROP + \totlmmnemonic PQ_SNKLDROP + \totlmmnemonic PQ_STORDROP + \brief Count of telemetry messages rejected, and not passed into the channel's Priority Queues. + Counter begins at zero with app initialization and rolls over. + Index of array is equivalent to the relevant TO channel index. */ + uint32 uiDropMsgCountChannel[PQ_MAX_CHANNELS]; + + /** \totlm Failed Channel Telemetry + \totlmmnemonic PQ_RDOFAILED + \totlmmnemonic PQ_SNKLFAILED + \totlmmnemonic PQ_STORFAILED + \brief Count of telemetry messages failed on interface write after being pulled + from the output queue, and lost. + Counter begins at zero with app initialization and rolls over. + Index of array is equivalent to the relevant TO channel index. */ + uint32 uiFailedMsgCountChannel[PQ_MAX_CHANNELS]; + + /** \totlm Channel Bytes Sent + \totlmmnemonic PQ_RDOB + \totlmmnemonic PQ_SNKLB + \totlmmnemonic PQ_STORB + \brief The number of bytes sent out the channel's interface + Counter begins at zero with app initialization and rolls over. + Index of array is equivalent to the relevant TO channel index. */ + uint32 uiBytesSentChannel[PQ_MAX_CHANNELS]; + + /** \totlmmnemonic PQ_CMDACPTCNT + \brief Count of accepted commands */ + uint8 usCmdCnt; + + /** \totlmmnemonic PQ_CMDRJCTCNT + \brief Count of failed commands */ + uint8 usCmdErrCnt; + + /** \totlmmnemonic PQ_TTLMSGDROP + \brief Count of all messages dropped */ + uint16 usTotalMsgDropped; + + /** \totlmmnemonic PQ_SENTBYTES + \brief Count of all bytes sent on all output channels */ + uint32 SentBytes; + + /** \totlmmnemonic PQ_QDINOUTCHN + \brief Currently queued count for each Channel */ + uint16 QueuedInOutputChannel[PQ_MAX_CHANNELS]; + + /** \totlmmnemonic PQ_CHMAXMEM + \brief Maximum memory available for each channel. */ + uint32 ChannelMaxMem; + + /** \totlmmnemonic PQ_CHMEMINFO + \brief Memory information per channel. */ + PQ_ChannelMemoryInfo_t ChannelMemInfo[PQ_MAX_CHANNELS]; + +} PQ_HkTlm_t; + + +/** +** \brief PQ Operational Data Structure +*/ +typedef struct +{ + /* Task-related */ + /** \brief Task Run Status */ + //uint32 runStatus; + + /** \brief Housekeeping Telemetry for downlink */ + PQ_HkTlm_t HkTlm; + + /** \brief Mutex for PQ AppData */ + uint32 MutexID; + + /** \brief Channel Data */ + PQ_ChannelData_t ChannelData[PQ_MAX_CHANNELS]; + + /** \brief CFE Event Table */ + //CFE_EVS_BinFilter_t EventTbl[CFE_EVS_MAX_EVENT_FILTERS]; + /* CFE_EVS_BinFilter_t is two uint16's */ + + uint16 OutMessageSize; + + /**\brief Scheduling Pipe ID */ + //CFE_SB_PipeId_t SchPipeId; + + /** \brief Command Pipe ID */ + //CFE_SB_PipeId_t CmdPipeId; + +} PQ_AppData_t; + +extern PQ_AppData_t PQ_AppData; + +#endif diff --git a/apps/pq_lib/fsw/src/pq_channel.c b/apps/pq_lib/fsw/src/pq_channel.c new file mode 100644 index 000000000..646c52345 --- /dev/null +++ b/apps/pq_lib/fsw/src/pq_channel.c @@ -0,0 +1,609 @@ +/**************************************************************************** +* +* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions +* are met: +* +* 1. Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* 2. Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in +* the documentation and/or other materials provided with the +* distribution. +* 3. Neither the name Windhover Labs nor the names of its +* contributors may be used to endorse or promote products derived +* from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS +* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED +* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +* POSSIBILITY OF SUCH DAMAGE. +* +*****************************************************************************/ + +/************************************************************************ +** Includes +*************************************************************************/ +#include "pq_structs.h" +#include "pq_output_queue.h" +#include "pq_platform_cfg.h" +#include "pq_channel.h" +#include "pq_events.h" + +#include + +/************************************************************************ +** Local Defines +*************************************************************************/ + +/************************************************************************ +** Local Structure Declarations +*************************************************************************/ + +uint32 PQ_MemPoolDefSize[PQ_MAX_MEMPOOL_BLK_SIZES] = +{ + PQ_MAX_BLOCK_SIZE, + PQ_MEM_BLOCK_SIZE_07, + PQ_MEM_BLOCK_SIZE_06, + PQ_MEM_BLOCK_SIZE_05, + PQ_MEM_BLOCK_SIZE_04, + PQ_MEM_BLOCK_SIZE_03, + PQ_MEM_BLOCK_SIZE_02, + PQ_MEM_BLOCK_SIZE_01 +}; + +/************************************************************************ +** External Global Variables +*************************************************************************/ +extern PQ_AppData_t PQ_AppData; + +/************************************************************************ +** Local Function Definitions +*************************************************************************/ + +/** + * \brief Forwards a single channel's telemetry data to PQ_Classifier + * and PQ_Scheduler + * + * \par Assumptions, External Events, and Notes: + * Assumes channel pointer is not NULL + * + * \param [in] channel A #PQ_ChannelData_t pointer that + * references the channel data structures + */ +void PQ_Channel_ProcessTelemetry(PQ_ChannelData_t *channel); + +/** + * \brief Resets each channel's message flow, priority queue, + * and output queue counters. + * + * \par Assumptions, External Events, and Notes: + * Assumes channel pointer is not NULL + * + * \param [in] channel A #PQ_ChannelData_t pointer that + * references the channel data structures + */ +void PQ_Channel_ResetCounts(PQ_ChannelData_t *channel); + +/** + * \brief Initializes a reference channel data, sets the channel's index, + * and creates a channel mutex. + * + * \par Assumptions, External Events, and Notes: + * If the input index is out of range, an event is generated + * #PQ_CHANNEL_OUT_OF_RANGE_ERR_EID + * + * \param [in] index + * Index of the channel + * + * \returns + * CFE_SUCCESS if successful. #PQ_CHANNEL_OUT_OF_RANGE_ERR error if unsuccessful. + * \endreturns + */ +int32 PQ_Channel_Init(uint16 index); + +/** + * \brief Calls functions to teardown an individual channel's priority queue, + * output queue, and message flow(s). It also deletes the channel's mutex. + * + * \par Assumptions, External Events, and Notes: + * If the input index is out of range, an event is generated + * #PQ_CHANNEL_OUT_OF_RANGE_ERR_EID + * + * \param [in] index + * Index of the channel + */ +void PQ_Channel_Cleanup(uint16 index); + + +int32 PQ_Channel_OpenChannel(const uint32 index, const char *ChannelName, + const char *ConfigTableName, const char *ConfigTableFileName, + PQ_ChannelTbl_t *BackupTblPtr, const char *DumpTableName, + const uint32 CfCntSemMax, const char *CfCntSemName) +{ + int32 status = PQ_CHANNEL_OPEN_ERR; + char pipeName[OS_MAX_API_NAME]; + PQ_ChannelData_t *channel = NULL; + + if (index >= PQ_MAX_CHANNELS) + { + status = PQ_CHANNEL_OUT_OF_RANGE_ERR; + (void) CFE_EVS_SendEvent(PQ_INIT_APP_ERR_EID, + CFE_EVS_ERROR, + "Invalid channel index of %u.", (unsigned int)index); + return status; + } + + channel = &PQ_AppData.ChannelData[index]; + + if(channel->State == PQ_CHANNEL_CLOSED) + { + PQ_Channel_LockByRef(channel); + + snprintf(pipeName, OS_MAX_API_NAME, "PQ_%s", ChannelName); + + strncpy(channel->ChannelName, + ChannelName, sizeof(channel->ChannelName)); + channel->ChannelName[sizeof(channel->ChannelName) - 1] = '\0'; + + strncpy(channel->ConfigTableName, + ConfigTableName, sizeof(channel->ConfigTableName)); + channel->ConfigTableName[sizeof(channel->ConfigTableName) - 1] = '\0'; + + strncpy(channel->ConfigTableFileName, + ConfigTableFileName, sizeof(channel->ConfigTableFileName)); + channel->ConfigTableFileName[sizeof(channel->ConfigTableFileName) - 1] = '\0'; + + channel->BackupTblPtr = BackupTblPtr; + + strncpy(channel->DumpTableName, + DumpTableName, sizeof(channel->DumpTableName)); + channel->DumpTableName[sizeof(channel->DumpTableName) - 1] = '\0'; + + /* Set up CF Throttling semaphore */ + channel->CfCntSemMax = CfCntSemMax; + strncpy(channel->CfCntSemName, CfCntSemName, + sizeof(channel->CfCntSemName)); + channel->CfCntSemName[OS_MAX_API_NAME - 1] = '\0'; + + /* Initialize CF Counting Sem to CfCntSemMax */ + /* NOTE: This will fail if two channels attempt to use the same + * CF channel. */ + status = OS_CountSemCreate(&channel->CfCntSemId, + channel->CfCntSemName, + channel->CfCntSemMax, 0); + if (status != OS_SUCCESS) + { + CFE_EVS_SendEvent(PQ_INIT_APP_ERR_EID, + CFE_EVS_ERROR, + "Failed to create counting semaphore " + "for CF channel semaphore:%s for TO channel(%u):%s . " + "(OSAL Error:%d)", + channel->CfCntSemName, (unsigned int)index, channel->ChannelName, (int)status); + + PQ_Channel_UnlockByRef(channel); + return status; + } + + status = PQ_OutputQueue_Buildup(channel); + if (status != OS_SUCCESS) + { + /* This is a critical error for this channel. No sense in continuing. Destroy + * the counting semaphore we just created, and return the error back to the caller. + */ + OS_CountSemDelete(channel->CfCntSemId); + + channel->State = PQ_CHANNEL_CLOSED; + + PQ_Channel_UnlockByRef(channel); + return status; + } + + /* Init data pipe and subscribe to messages on the data pipe */ + status = CFE_SB_CreatePipe(&channel->DataPipeId, + PQ_DATA_PIPE_DEPTH, + pipeName); + if (status != CFE_SUCCESS) + { + /* This is a critical error for this channel. No sense in continuing. Destroy + * the counting semaphore and call the Output queue teardown function before + * returning the error back to the caller. + */ + (void) OS_CountSemDelete(channel->CfCntSemId); + (void) PQ_OutputQueue_Teardown(channel); + + (void) CFE_EVS_SendEvent(PQ_INIT_DATAPIPE_ERR_EID, + CFE_EVS_ERROR, + "Failed to create channel (%u) '%s' pipe (0x%08X)", + (unsigned int)index, + ChannelName, + (unsigned int)status); + + channel->State = PQ_CHANNEL_CLOSED; + + PQ_Channel_UnlockByRef(channel); + return status; + } + + /* Set channel state: required state to complete table initialization */ + channel->State = PQ_CHANNEL_OPENED; + + status = PQ_InitTables(channel); + if (status != CFE_SUCCESS) + { + /* This is a critical error for this channel. No sense in continuing. Destroy + * the counting semaphore, call the Output queue teardown function, and delete + * the pipe before returning the error back to the caller. + */ + (void) OS_CountSemDelete(channel->CfCntSemId); + (void) PQ_OutputQueue_Teardown(channel); + (void) CFE_SB_DeletePipe(channel->DataPipeId); + + CFE_EVS_SendEvent(PQ_INIT_CONFIG_ERR_EID, + CFE_EVS_ERROR, + "Failed to init config tables (0x%08X) for channel %u", + (unsigned int)status, + (unsigned int)index); + + channel->State = PQ_CHANNEL_CLOSED; + + PQ_Channel_UnlockByRef(channel); + return status; + } + + /* Initialize the memory pool for the priority queues and output channel + * queues. + */ + status = CFE_ES_PoolCreateEx(&channel->MemPoolHandle, + channel->MemPoolBuffer, + PQ_NUM_BYTES_IN_MEM_POOL, + PQ_MAX_MEMPOOL_BLK_SIZES, + &PQ_MemPoolDefSize[0], + CFE_ES_USE_MUTEX); + if (status != CFE_SUCCESS) + { + /* This is a critical error for this channel. No sense in continuing. Destroy + * the counting semaphore, call the Output queue teardown function, and delete + * the pipe before returning the error back to the caller. Don't need to do + * anything with the tables. They will just be reinitialized the next time + * we try opening the channel. + */ + (void) OS_CountSemDelete(channel->CfCntSemId); + (void) PQ_OutputQueue_Teardown(channel); + (void) CFE_SB_DeletePipe(channel->DataPipeId); + + (void) CFE_EVS_SendEvent(PQ_CR_POOL_ERR_EID, + CFE_EVS_ERROR, + "Error creating memory pool (0x%08X) for channel %u",(unsigned int)status, + (unsigned int)index); + + channel->State = PQ_CHANNEL_CLOSED; + + PQ_Channel_UnlockByRef(channel); + + return status; + } + + PQ_Channel_UnlockByRef(channel); + } + return status; +} + + +void PQ_Channel_ProcessTelemetryAll(void) +{ + uint32 i; + PQ_ChannelData_t *channel = NULL; + + for (i = 0; i < PQ_MAX_CHANNELS; ++i) + { + channel = &PQ_AppData.ChannelData[i]; + if(PQ_CHANNEL_OPENED == channel->State) + { + PQ_Channel_ProcessTelemetry(channel); + } + } +} + + +void PQ_Channel_ProcessTelemetry(PQ_ChannelData_t *channel) +{ + PQ_Channel_LockByRef(channel); + PQ_Classifier_Run(channel); + PQ_Scheduler_Run(channel); + PQ_Channel_UnlockByRef(channel); +} + + +void PQ_Channel_ResetCountsAll(void) +{ + uint32 i; + PQ_ChannelData_t *channel = NULL; + + for (i = 0; i < PQ_MAX_CHANNELS; ++i) + { + channel = &PQ_AppData.ChannelData[i]; + PQ_Channel_ResetCounts(channel); + } +} + + + +void PQ_Channel_ResetCounts(PQ_ChannelData_t *channel) +{ + PQ_Channel_LockByRef(channel); + channel->PeakMemInUse = 0; + channel->MemFullCount = 0; + channel->SentMsgCount = 0; + channel->QueuedMsgCount = 0; + channel->DropMsgCount = 0; + channel->FailedMsgCount = 0; + channel->BytesSent = 0; + PQ_MessageFlow_ResetCountsAll(channel); + PQ_PriorityQueue_ResetCountsAll(channel); + PQ_OutputQueue_ResetCounts(channel); + PQ_Channel_UnlockByRef(channel); +} + + + +void PQ_Channel_LockByIndex(uint16 index) +{ + PQ_ChannelData_t *channel = NULL; + + if (index < PQ_MAX_CHANNELS) + { + channel = &PQ_AppData.ChannelData[index]; + PQ_Channel_LockByRef(channel); + } + else + { + (void) CFE_EVS_SendEvent(PQ_CHANNEL_OUT_OF_RANGE_ERR_EID, + CFE_EVS_ERROR, + "Invalid channel index (%u).", + index); + } +} + + +void PQ_Channel_UnlockByIndex(uint16 index) +{ + PQ_ChannelData_t *channel = NULL; + + if (index < PQ_MAX_CHANNELS) + { + channel = &PQ_AppData.ChannelData[index]; + PQ_Channel_UnlockByRef(channel); + + } + else + { + (void) CFE_EVS_SendEvent(PQ_CHANNEL_OUT_OF_RANGE_ERR_EID, + CFE_EVS_ERROR, + "Invalid channel index (%u).", + index); + } +} + + +void PQ_Channel_LockByRef(PQ_ChannelData_t *channel) +{ + int32 status = OS_SUCCESS; + + if (NULL != channel) + { + status = OS_MutSemTake(channel->MutexID); + if (OS_SUCCESS != status) + { + (void) CFE_EVS_SendEvent(PQ_CHANNEL_LOCK_MUTEX_ERR_EID, + CFE_EVS_ERROR, + "Channel lock mutex failure (%i) on channel %u.", + (int)status, + (unsigned int)channel->channelIdx); + } + } +} + + +void PQ_Channel_UnlockByRef(PQ_ChannelData_t *channel) +{ + int32 status = OS_SUCCESS; + + if (NULL != channel) + { + status = OS_MutSemGive(channel->MutexID); + if (OS_SUCCESS != status) + { + (void) CFE_EVS_SendEvent(PQ_CHANNEL_UNLOCK_MUTEX_ERR_EID, + CFE_EVS_ERROR, + "Channel unlock mutex failure (%i) on channel %u.", + (int)status, + (unsigned int)channel->channelIdx); + } + } +} + + + +void PQ_Channel_InitAll(void) +{ + uint32 i; + + for (i = 0; i < PQ_MAX_CHANNELS; ++i) + { + (void) PQ_Channel_Init(i); + } +} + + +int32 PQ_Channel_Init(uint16 index) +{ + int32 status = CFE_SUCCESS; + char mutexName[OS_MAX_API_NAME]; + PQ_ChannelData_t *channel = NULL; + + if (index >= PQ_MAX_CHANNELS) + { + status = PQ_CHANNEL_OUT_OF_RANGE_ERR; + + (void) CFE_EVS_SendEvent(PQ_CHANNEL_OUT_OF_RANGE_ERR_EID, + CFE_EVS_ERROR, + "Invalid channel index (%u).", + index); + return status; + } + + channel = &PQ_AppData.ChannelData[index]; + + snprintf(mutexName, OS_MAX_API_NAME, "PQ_MUT_%u", (unsigned int)index); + + status = OS_MutSemCreate(&channel->MutexID, mutexName, 0); + if(status != CFE_SUCCESS) { + + channel->State = PQ_CHANNEL_UNKNOWN; + } + else + { + channel->channelIdx = index; + channel->OutputQueue.OSALQueueID = OS_MAX_QUEUES; + channel->State = PQ_CHANNEL_CLOSED; + } + + return status; +} + + +void PQ_Channel_CleanupAll(void) +{ + uint32 i; + + PQ_OutputChannel_CustomCleanupAll(); + + for (i = 0; i < PQ_MAX_CHANNELS; ++i) + { + PQ_Channel_Cleanup(i); + } +} + + +void PQ_Channel_Cleanup(uint16 index) +{ + int32 status = CFE_SUCCESS; + PQ_ChannelData_t *channel = NULL; + + if (index < PQ_MAX_CHANNELS) + { + channel = &PQ_AppData.ChannelData[index]; + + if(channel->State != PQ_CHANNEL_UNKNOWN) + { + status = PQ_MessageFlow_TeardownAll(channel); + if (status != CFE_SUCCESS) + { + (void) CFE_EVS_SendEvent(PQ_CHANNEL_TEARDOWN_ERR_EID, + CFE_EVS_ERROR, + "Message Flow Teardown failure %ld on channel %u.", + status, index); + } + + status = PQ_PriorityQueue_TeardownAll(channel); + if (status != CFE_SUCCESS) + { + (void) CFE_EVS_SendEvent(PQ_CHANNEL_TEARDOWN_ERR_EID, + CFE_EVS_ERROR, + "Priority Queue Teardown failure %ld on channel %u.", + status, index); + } + + status = PQ_OutputQueue_Teardown(channel); + if (status != CFE_SUCCESS) + { + (void) CFE_EVS_SendEvent(PQ_CHANNEL_TEARDOWN_ERR_EID, + CFE_EVS_ERROR, + "Output Queue Teardown failure %ld on channel %u.", + status, index); + } + + OS_MutSemDelete(channel->MutexID); + } + } + else + { + (void) CFE_EVS_SendEvent(PQ_CHANNEL_OUT_OF_RANGE_ERR_EID, + CFE_EVS_ERROR, + "Invalid channel index (%u).", + index); + + } +} + + +uint8 PQ_Channel_State(uint16 index) +{ + if (index < PQ_MAX_CHANNELS) + { + return PQ_AppData.ChannelData[index].State; + } + else + { + (void) CFE_EVS_SendEvent(PQ_CHANNEL_OUT_OF_RANGE_ERR_EID, + CFE_EVS_ERROR, + "Invalid channel index (%u).", + index); + return PQ_CHANNEL_UNKNOWN; + } +} + + +osalbool PQ_Channel_SBPipe_Dequeue_All(uint16 index) +{ + int32 status = CFE_SUCCESS; + int32 i; + CFE_SB_MsgPtr_t DataMsgPtr = NULL; + PQ_ChannelData_t *channel = NULL; + + if (index >= PQ_MAX_CHANNELS) + { + (void) CFE_EVS_SendEvent(PQ_FLUSH_INVALID_CHIDX_ERR_EID, CFE_EVS_ERROR, + "ChannelID %u out of range in SB pipe dequeue all.", (unsigned int)index); + return FALSE; + } + + channel = &PQ_AppData.ChannelData[index]; + + /* Dequeue until empty */ + for (i = 0; i < PQ_DATA_PIPE_DEPTH; ++i) + { + status = CFE_SB_RcvMsg(&DataMsgPtr, channel->DataPipeId, CFE_SB_POLL); + if (CFE_SUCCESS == status) + { + continue; + } + else if (CFE_SB_NO_MESSAGE == status) + { + /* Break early if empty */ + break; + } + else + { + (void) CFE_EVS_SendEvent(PQ_PIPE_READ_ERR_EID, + CFE_EVS_ERROR, + "Data pipe read error on SBPipe dequeue all (0x%08X) on channel %d", + (unsigned int)status, + index); + return FALSE; + } + } + + return TRUE; +} diff --git a/apps/pq_lib/fsw/src/pq_classifier.c b/apps/pq_lib/fsw/src/pq_classifier.c new file mode 100644 index 000000000..94948ef43 --- /dev/null +++ b/apps/pq_lib/fsw/src/pq_classifier.c @@ -0,0 +1,162 @@ +/**************************************************************************** +* +* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions +* are met: +* +* 1. Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* 2. Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in +* the documentation and/or other materials provided with the +* distribution. +* 3. Neither the name Windhover Labs nor the names of its +* contributors may be used to endorse or promote products derived +* from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS +* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED +* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +* POSSIBILITY OF SUCH DAMAGE. +* +*****************************************************************************/ + +#include "pq_structs.h" +#include "pq_classifier.h" +#include "pq_message_flow.h" +#include "pq_priority_queue.h" +#include "pq_events.h" + + +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ +/* */ +/* Run the Classifier algorithm */ +/* */ +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ +void PQ_Classifier_Run(PQ_ChannelData_t *channel) +{ + int32 status = CFE_SUCCESS; + CFE_SB_MsgPtr_t DataMsgPtr = NULL; + uint32 ii; + PQ_PriorityQueue_t *pqueue = NULL; + PQ_MessageFlow_t *msgFlow = NULL; + uint32 msgFlowIndex = 0; + uint32 pQueueIndex = 0; + CFE_SB_MsgId_t DataMsgID; + uint32 totalMsgLength = 0; + + /* Process telemetry messages till the pipe is empty, or until we hit the + * maximum number of messages we want to process in this frame. */ + for (ii = 0; ii < PQ_MAX_MSGS_OUT_PER_FRAME; ++ii) + { + status = CFE_SB_RcvMsg(&DataMsgPtr, channel->DataPipeId, CFE_SB_POLL); + + if (status != CFE_SUCCESS) + { + if (status != CFE_SB_NO_MESSAGE) + { + (void) CFE_EVS_SendEvent(PQ_PIPE_READ_ERR_EID, + CFE_EVS_ERROR, + "Data pipe read error (0x%08X) on channel %d", + (unsigned int)status, + (unsigned int)channel->channelIdx); + } + return; + } + + if (DataMsgPtr != NULL) + { + DataMsgID = CFE_SB_GetMsgId(DataMsgPtr); + + totalMsgLength = CFE_SB_GetTotalMsgLength(DataMsgPtr); + if (totalMsgLength > PQ_MAX_MSG_LENGTH) + { + (void) CFE_EVS_SendEvent(PQ_TLM_MSG_LEN_ERR_EID, CFE_EVS_ERROR, + "Message too long (size = %lu > max = %d) for msgId = (0x%04X) on channel (%u)", + totalMsgLength, + PQ_MAX_MSG_LENGTH, + (unsigned short)DataMsgID, + (unsigned short)channel->channelIdx); + (void) OS_MutSemTake(PQ_AppData.MutexID); + PQ_AppData.HkTlm.usTotalMsgDropped++; + (void) OS_MutSemGive(PQ_AppData.MutexID); + + channel->DropMsgCount++; + continue; + } + + /* Get the first Message Flow object. If this returns null, the + * Message ID is not in the table at all so we shouldn't have + * received this message. Raise an event. + */ + msgFlow = PQ_MessageFlow_GetObject(channel, DataMsgID, &msgFlowIndex); + if (NULL == msgFlow) + { + (void) CFE_EVS_SendEvent(PQ_MF_MSG_ID_ERR_EID, + CFE_EVS_ERROR, + "Classifier Recvd invalid msgId (0x%04X) or message flow was removed on channel (%u)", + (unsigned short)DataMsgID, + (unsigned short)channel->channelIdx); + + (void) OS_MutSemTake(PQ_AppData.MutexID); + PQ_AppData.HkTlm.usTotalMsgDropped++; + (void) OS_MutSemGive(PQ_AppData.MutexID); + + channel->DropMsgCount++; + continue; + } + + /* Get the Priority Queue assigned to this Message Flow. */ + pqueue = PQ_MessageFlow_GetPQueue(channel, msgFlow, &pQueueIndex); + if (pqueue != NULL) + { + /* Queue the message. The else portion will handle all cases where the message + * was not queued for the following reasons: configuration table pointer was not + * available, queue is full, or memory full error. + */ + status = PQ_PriorityQueue_QueueMsg(channel, DataMsgPtr, pQueueIndex); + + if (CFE_SUCCESS == status) + { + /* The message was queued. Increment counters. */ + channel->DumpTbl.MessageFlow[msgFlowIndex].QueuedMsgCnt++; + + channel->QueuedMsgCount++; + } + /* The call to PQ_PriorityQueue_QueueMsg may generate the following errors: + * PQ_PRIORITY_QUEUE_FULL_ERR (OS_QUEUE_FULL), PQ_MEMORY_FULL_ERR, CFE_ES_ERR_MEM_HANDLE, + * OS_ERR_INVALID_ID, OS_INVALID_POINTER, OS_ERROR are all handled by this else clause */ + else + { + /* Queue is full. Increment counters and drop the message. */ + channel->DumpTbl.MessageFlow[msgFlowIndex].DroppedMsgCnt++; + + (void) OS_MutSemTake(PQ_AppData.MutexID); + PQ_AppData.HkTlm.usTotalMsgDropped++; + (void) OS_MutSemGive(PQ_AppData.MutexID); + + channel->DropMsgCount++; + + (void) CFE_EVS_SendEvent(PQ_MSG_DROP_FROM_FLOW_DBG_EID, + CFE_EVS_DEBUG, + "PQ full (PQ %u, channel %u). Error code (%d) Dropped message 0x%04x", + (unsigned int)pQueueIndex, + (unsigned int)channel->channelIdx, + (int)status, + (unsigned int)DataMsgID); + } + } + } + } +} + diff --git a/apps/pq_lib/fsw/src/pq_lib.c b/apps/pq_lib/fsw/src/pq_lib.c new file mode 100644 index 000000000..c33a85ab2 --- /dev/null +++ b/apps/pq_lib/fsw/src/pq_lib.c @@ -0,0 +1,14 @@ +#include "pq_structs.h" +#include "cfe.h" + +PQ_AppData_t PQ_AppData; + + +int32 PQ_LibInit(void) +{ + + OS_printf ("PQ Lib Initialized.\n"); + + return OS_SUCCESS; + +}/* End PQ_LibInit */ diff --git a/apps/pq_lib/fsw/src/pq_message_flow.c b/apps/pq_lib/fsw/src/pq_message_flow.c new file mode 100644 index 000000000..7cb748541 --- /dev/null +++ b/apps/pq_lib/fsw/src/pq_message_flow.c @@ -0,0 +1,558 @@ +/**************************************************************************** +* +* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions +* are met: +* +* 1. Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* 2. Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in +* the documentation and/or other materials provided with the +* distribution. +* 3. Neither the name Windhover Labs nor the names of its +* contributors may be used to endorse or promote products derived +* from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS +* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED +* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +* POSSIBILITY OF SUCH DAMAGE. +* +*****************************************************************************/ + +#include "pq_structs.h" +#include "pq_events.h" +#include "pq_message_flow.h" + + + +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ +/* */ +/* Build up all the message flows */ +/* */ +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ +int32 PQ_MessageFlow_Buildup(PQ_ChannelData_t *channel) +{ + uint32 i; + int32 status = CFE_SUCCESS; + + if (NULL == channel) + { + return PQ_MESSAGE_FLOW_BAD_ARG_ERR; + } + + if (NULL == channel->ConfigTblPtr) + { + return PQ_MESSAGE_FLOW_NO_TABLE_ERR; + } + + /* + * Create message flows by subscribing to messages. + */ + for (i = 0; i < PQ_MAX_MESSAGE_FLOWS; ++i) + { + if (channel->ConfigTblPtr->MessageFlow[i].MsgId != 0) + { + /* Subscribe to message. */ + status = CFE_SB_SubscribeEx(channel->ConfigTblPtr->MessageFlow[i].MsgId, channel->DataPipeId, + CFE_SB_Default_Qos, channel->ConfigTblPtr->MessageFlow[i].MsgLimit); + if (status != CFE_SUCCESS) + { + /* We failed to subscribe to a message. However, lets just keep going so we can maybe + * subscribe to at least some of the messages. Report and keep going. + */ + (void) CFE_EVS_SendEvent(PQ_SUBSCRIBE_ERR_EID, + CFE_EVS_ERROR, + "Message flow failed to subscribe to (0x%08X) on channel %d. (%ld)", + channel->ConfigTblPtr->MessageFlow[i].MsgId, + channel->channelIdx, + status); + } + } + } + return CFE_SUCCESS; +} + + + +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ +/* */ +/* Teardown all the message flows */ +/* */ +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ +int32 PQ_MessageFlow_TeardownAll(PQ_ChannelData_t *channel) +{ + uint32 i; + int32 status = CFE_SUCCESS; + + if (NULL == channel) + { + return PQ_MESSAGE_FLOW_BAD_ARG_ERR; + } + + if (NULL == channel->ConfigTblPtr) + { + return PQ_MESSAGE_FLOW_NO_TABLE_ERR; + } + + for (i = 0; i < PQ_MAX_MESSAGE_FLOWS; ++i) + { + if (channel->ConfigTblPtr->MessageFlow[i].MsgId != 0) + { + /* Unsubscribe from message. */ + status = CFE_SB_Unsubscribe(channel->ConfigTblPtr->MessageFlow[i].MsgId, + channel->DataPipeId); + + if (status != CFE_SUCCESS) + { + /* This is not a critical error. Just continue processing the rest of the messages. + * Will not return the failure back. + */ + (void) CFE_EVS_SendEvent(PQ_UNSUBSCRIBE_ERR_EID, + CFE_EVS_ERROR, + "Message flow failed to unsubscribe from 0x%04x on channel %d. (%ld)", + channel->ConfigTblPtr->MessageFlow[i].MsgId, + channel->channelIdx, + status); + } + } + } + return CFE_SUCCESS; +} + + +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ +/* */ +/* Reset all runtime metrics. */ +/* */ +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ +void PQ_MessageFlow_ResetCountsAll(PQ_ChannelData_t *channel) +{ + uint32 i; + uint32 j; + + if (NULL == channel) + { + return; + } + + for (i = 0; i < PQ_MAX_MESSAGE_FLOWS; ++i) + { + channel->DumpTbl.MessageFlow[i].DroppedMsgCnt = 0; + channel->DumpTbl.MessageFlow[i].QueuedMsgCnt = 0; + channel->DumpTbl.MessageFlow[i].SBMsgCnt = 0; + } +} + + + +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ +/* */ +/* Get message flow object */ +/* */ +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ +PQ_MessageFlow_t* PQ_MessageFlow_GetObject(PQ_ChannelData_t *channel, CFE_SB_MsgId_t MsgID, uint32 *Index) +{ + PQ_MessageFlow_t *outMsgFlow = NULL; + uint32 i; + + if (NULL == channel) + { + return NULL; + } + + if (NULL == channel->ConfigTblPtr) + { + return NULL; + } + + for (i = 0; i < PQ_MAX_MESSAGE_FLOWS; ++i) + { + if (channel->ConfigTblPtr->MessageFlow[i].MsgId == MsgID) + { + outMsgFlow = &channel->ConfigTblPtr->MessageFlow[i]; + + if (NULL != Index) + { + *Index = i; + } + break; + } + } + + return outMsgFlow; +} + + + +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ +/* */ +/* Get the priority queue for a specific message flow */ +/* */ +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ +PQ_PriorityQueue_t* PQ_MessageFlow_GetPQueue(PQ_ChannelData_t *channel, PQ_MessageFlow_t *msgFlow, uint32 *Index) +{ + uint32 idx = 0; + PQ_PriorityQueue_t* outPQueue = NULL; + + if (NULL == msgFlow) + { + return NULL; + } + + if (NULL == channel) + { + return NULL; + } + + if (NULL == channel->ConfigTblPtr) + { + return NULL; + } + + idx = msgFlow->PQueueID; + if (idx >= PQ_MAX_PRIORITY_QUEUES) + { + return NULL; + } + + if (Index != NULL) + { + *Index = idx; + } + + outPQueue = &channel->ConfigTblPtr->PriorityQueue[idx]; + + return outPQueue; +} + + + +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ +/* */ +/* Add a message flow */ +/* */ +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ +osalbool PQ_MessageFlow_Add( + uint16 ChannelIdx, + CFE_SB_MsgId_t MsgID, + uint16 MsgLimit, + uint16 PQueueIdx) +{ + uint32 i; + uint32 j; + PQ_MessageFlow_t *msgFlow = NULL; + osalbool added = FALSE; + int32 status = CFE_SUCCESS; + uint8 queueIdx = 0; + uint32 decimationFactorsSum = 0; + + PQ_ChannelData_t *channel = NULL; + + /* First, check if the channel index is valid. */ + if (ChannelIdx >= PQ_MAX_CHANNELS) + { + (void) CFE_EVS_SendEvent(PQ_CMD_ADD_MSG_FLOW_ERR_EID, + CFE_EVS_ERROR, + "Invalid channel (channel = %d, but max = %d).", + ChannelIdx, PQ_MAX_CHANNELS); + + return FALSE; + } + + channel = &PQ_AppData.ChannelData[ChannelIdx]; + + if (NULL == channel->ConfigTblPtr) + { + (void) CFE_EVS_SendEvent(PQ_MSG_FLOW_MISSING_TBL_ERR_EID, + CFE_EVS_ERROR, + "Channel missing valid table data (channel = %d).", + ChannelIdx); + + return FALSE; + } + + PQ_Channel_LockByRef(channel); + + /* Next, see if the channel is open. */ + if (channel->State != PQ_CHANNEL_OPENED) + { + (void) CFE_EVS_SendEvent(PQ_CMD_ADD_MSG_FLOW_ERR_EID, + CFE_EVS_ERROR, + "Channel (%d) not open.", ChannelIdx); + + PQ_Channel_UnlockByRef(channel); + return FALSE; + } + + /* Next, see if there is a flow with this message ID. */ + msgFlow = PQ_MessageFlow_GetObject(channel, MsgID, NULL); + + if (NULL != msgFlow) + { + /* A message flow already exists. Reject the request. */ + (void) CFE_EVS_SendEvent(PQ_CMD_ADD_MSG_FLOW_ERR_EID, + CFE_EVS_ERROR, + "Message flow is already defined for channel %d.", + ChannelIdx); + + PQ_Channel_UnlockByRef(channel); + return FALSE; + } + + /* Now that we know a message flow definition doesn't already exist, find + * an unused entry so we can add one. Unused entries have the MsgID set + * to 0. + */ + for (i = 0; i < PQ_MAX_MESSAGE_FLOWS; ++i) + { + if (channel->ConfigTblPtr->MessageFlow[i].MsgId == 0) + { + /* We found an unused entry. Set the message flow definition + * here. First, make sure the requested priority queue is valid. + */ + if (PQ_PriorityQueue_IsValid(channel, PQueueIdx) == FALSE) + { + /* This is an invalid priority queue. */ + (void) CFE_EVS_SendEvent(PQ_CMD_ADD_MSG_FLOW_ERR_EID, + CFE_EVS_ERROR, + "Priority Queue Index %u is invalid for channel %d.", + PQueueIdx, ChannelIdx); + + PQ_Channel_UnlockByRef(channel); + return FALSE; + } + + /* Now subscribe to the message to ensure the message ID is + * valid. + */ + status = CFE_SB_SubscribeEx(MsgID, channel->DataPipeId, + CFE_SB_Default_Qos, MsgLimit); + if (status != CFE_SUCCESS) + { + (void) CFE_EVS_SendEvent(PQ_CMD_ADD_MSG_FLOW_ERR_EID, + CFE_EVS_ERROR, + "Message flow failed to subscribe to (0x%08X) on channel %d. (%ld)", + MsgID, ChannelIdx, status); + + PQ_Channel_UnlockByRef(channel); + return FALSE; + } + + /* Now that the message was successfully subscribed to, set the + * message flow definition. + */ + channel->ConfigTblPtr->MessageFlow[i].MsgId = MsgID; + channel->ConfigTblPtr->MessageFlow[i].MsgLimit = MsgLimit; + channel->ConfigTblPtr->MessageFlow[i].PQueueID = PQueueIdx; + channel->DumpTbl.MessageFlow[i].DroppedMsgCnt = 0; + channel->DumpTbl.MessageFlow[i].QueuedMsgCnt = 0; + channel->DumpTbl.MessageFlow[i].SBMsgCnt = 0; + + CFE_TBL_Modified(channel->ConfigTblHdl); + + added = TRUE; + break; + } + } + + if (FALSE == added) + { + (void) CFE_EVS_SendEvent(PQ_CMD_ADD_MSG_FLOW_ERR_EID, + CFE_EVS_ERROR, + "Failed to add message flow. No unused slots available on channel %d.", + ChannelIdx); + } + + PQ_Channel_UnlockByRef(channel); + + return added; +} + + + +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ +/* */ +/* Remove a message flow */ +/* */ +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ +osalbool PQ_MessageFlow_Remove(uint16 ChannelIdx, CFE_SB_MsgId_t MsgID) +{ + uint32 msgFlowIndex = 0; + uint32 i = 0; + PQ_MessageFlow_t *msgFlow = NULL; + int32 status = CFE_SUCCESS; + PQ_ChannelData_t *channel = NULL; + + /* First, check if the channel index is valid. */ + if (ChannelIdx >= PQ_MAX_CHANNELS) + { + (void) CFE_EVS_SendEvent(PQ_CMD_REMOVE_MSG_FLOW_ERR_EID, + CFE_EVS_ERROR, + "Invalid channel (channel = %d, but max = %d).", + ChannelIdx, PQ_MAX_CHANNELS); + + return FALSE; + } + + channel = &PQ_AppData.ChannelData[ChannelIdx]; + + if (NULL == channel->ConfigTblPtr) + { + (void) CFE_EVS_SendEvent(PQ_MSG_FLOW_MISSING_TBL_ERR_EID, + CFE_EVS_ERROR, + "Channel missing valid table data (channel = %d).", + ChannelIdx); + + return FALSE; + } + + PQ_Channel_LockByRef(channel); + + /* Next, see if the channel is open. */ + if (channel->State != PQ_CHANNEL_OPENED) + { + (void) CFE_EVS_SendEvent(PQ_CMD_REMOVE_MSG_FLOW_ERR_EID, + CFE_EVS_ERROR, + "Channel (%d) not open.", ChannelIdx); + + PQ_Channel_UnlockByRef(channel); + return FALSE; + } + + /* Next, see if there is a flow with this message ID */ + msgFlow = PQ_MessageFlow_GetObject(channel, MsgID, &msgFlowIndex); + if (NULL == msgFlow) + { + /* A message flow does not exist. Reject the request. */ + (void) CFE_EVS_SendEvent(PQ_CMD_REMOVE_MSG_FLOW_ERR_EID, + CFE_EVS_ERROR, + "Message flow is not defined for channel %d.", + ChannelIdx); + + PQ_Channel_UnlockByRef(channel); + return FALSE; + } + + /* Now that we have the message flow object, unsubscribe from it and clear + * the entries. + */ + status = CFE_SB_Unsubscribe(msgFlow->MsgId, channel->DataPipeId); + + if (status != CFE_SUCCESS) + { + (void) CFE_EVS_SendEvent(PQ_CMD_REMOVE_MSG_FLOW_ERR_EID, + CFE_EVS_ERROR, + "Message flow failed to unsubscribe from 0x%08X on channel %d. (%ld)", + msgFlow->MsgId, ChannelIdx, status); + + PQ_Channel_UnlockByRef(channel); + return FALSE; + } + + /* Now just clear the entries. */ + channel->ConfigTblPtr->MessageFlow[msgFlowIndex].MsgId = 0; + channel->ConfigTblPtr->MessageFlow[msgFlowIndex].MsgLimit = 0; + channel->ConfigTblPtr->MessageFlow[msgFlowIndex].PQueueID = 0; + channel->DumpTbl.MessageFlow[msgFlowIndex].DroppedMsgCnt = 0; + channel->DumpTbl.MessageFlow[msgFlowIndex].QueuedMsgCnt = 0; + channel->DumpTbl.MessageFlow[msgFlowIndex].SBMsgCnt = 0; + + PQ_Channel_UnlockByRef(channel); + + CFE_TBL_Modified(channel->ConfigTblHdl); + + return TRUE; +} + + + +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ +/* */ +/* Query a message flow */ +/* */ +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ +osalbool PQ_MessageFlow_Query(uint16 ChannelIdx, CFE_SB_MsgId_t MsgID) +{ + uint32 i = 0; + osalbool found = FALSE; + PQ_ChannelData_t *channel = NULL; + + /* First, check if the channel index is valid. */ + if (ChannelIdx >= PQ_MAX_CHANNELS) + { + (void) CFE_EVS_SendEvent(PQ_MSG_FLOW_INFO_ERR_EID, + CFE_EVS_ERROR, + "Invalid channel (channel = %d, but max = %d).", + ChannelIdx, PQ_MAX_CHANNELS); + + return FALSE; + } + + channel = &PQ_AppData.ChannelData[ChannelIdx]; + + if (NULL == channel->ConfigTblPtr) + { + (void) CFE_EVS_SendEvent(PQ_MSG_FLOW_MISSING_TBL_ERR_EID, + CFE_EVS_ERROR, + "Channel missing valid table data (channel = %d).", + ChannelIdx); + + return FALSE; + } + + PQ_Channel_LockByRef(channel); + + /* Next, see if the channel is open. */ + if (channel->State != PQ_CHANNEL_OPENED) + { + (void) CFE_EVS_SendEvent(PQ_MSG_FLOW_INFO_ERR_EID, + CFE_EVS_ERROR, + "Channel (%d) not open.", ChannelIdx); + + PQ_Channel_UnlockByRef(channel); + return FALSE; + } + + for (i = 0; i < PQ_MAX_MESSAGE_FLOWS; ++i) + { + if (channel->ConfigTblPtr->MessageFlow[i].MsgId == MsgID) + { + (void) CFE_EVS_SendEvent(PQ_MSG_FLOW_INFO_EID, + CFE_EVS_INFORMATION, + "CHANNEL=%d MID=0x%04x ML=%u PQI=%u D=%lu Q=%lu SB=%lu", + ChannelIdx, + channel->ConfigTblPtr->MessageFlow[i].MsgId, + channel->ConfigTblPtr->MessageFlow[i].MsgLimit, + channel->ConfigTblPtr->MessageFlow[i].PQueueID, + channel->DumpTbl.MessageFlow[i].DroppedMsgCnt, + channel->DumpTbl.MessageFlow[i].QueuedMsgCnt, + channel->DumpTbl.MessageFlow[i].SBMsgCnt); + found = TRUE; + break; + } + } + + PQ_Channel_UnlockByRef(channel); + + if (found != TRUE) + { + (void) CFE_EVS_SendEvent(PQ_MSG_FLOW_INFO_ERR_EID, + CFE_EVS_ERROR, + "MsgID=0x%04x not found (channel = %d)", MsgID, ChannelIdx); + } + + return found; +} + diff --git a/apps/pq_lib/fsw/src/pq_output_queue.c b/apps/pq_lib/fsw/src/pq_output_queue.c new file mode 100644 index 000000000..41948f179 --- /dev/null +++ b/apps/pq_lib/fsw/src/pq_output_queue.c @@ -0,0 +1,242 @@ +/**************************************************************************** +* +* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions +* are met: +* +* 1. Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* 2. Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in +* the documentation and/or other materials provided with the +* distribution. +* 3. Neither the name Windhover Labs nor the names of its +* contributors may be used to endorse or promote products derived +* from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS +* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED +* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +* POSSIBILITY OF SUCH DAMAGE. +* +*****************************************************************************/ + +//#include "to_app.h" +#include "pq_output_queue.h" +//#include "to_custom.h" +#include "pq_events.h" +#include "pq_structs.h" + +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ +/* */ +/* Buildup a channel output queue */ +/* */ +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ +int32 PQ_OutputQueue_Buildup(PQ_ChannelData_t* channel) +{ + int32 status = OS_SUCCESS; + + /* + * Now that we have the new table, create all the new resources we need + * starting with queues for the channels and priority queues. + */ + char QueueName[OS_MAX_API_NAME]; + snprintf(QueueName, OS_MAX_API_NAME, "PQ_%s_OUT", (const char*)&channel->ChannelName[0]); + + status = OS_QueueCreate(&channel->OutputQueue.OSALQueueID, + QueueName, + PQ_OUTPUT_QUEUE_DEPTH, + sizeof(CFE_SB_Msg_t*), + 0); + + if (status != OS_SUCCESS) + { + (void) CFE_EVS_SendEvent(PQ_CONFIG_TABLE_ERR_EID, + CFE_EVS_ERROR, + "Failed to create '%s' output channel queue for channel %d. err=%ld", + channel->ChannelName, channel->channelIdx, status); + + channel->OutputQueue.OSALQueueID = OS_MAX_QUEUES; + } + + return status; +} + + + +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ +/* */ +/* Teardown channel output queue in preparation for a */ +/* reconfiguration. */ +/* */ +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ +int32 PQ_OutputQueue_Teardown(PQ_ChannelData_t *channel) +{ + int32 status = CFE_SUCCESS; + int32 putStatus = 0; + void *buffer = NULL; + uint32 nBytesCopied = 0; + + if (channel->OutputQueue.OSALQueueID != OS_MAX_QUEUES) + { + while (OS_SUCCESS == status) + { + status = OS_QueueGet( + channel->OutputQueue.OSALQueueID, + &buffer, sizeof(buffer), &nBytesCopied, OS_CHECK); + if (OS_SUCCESS == status) + { + putStatus = CFE_ES_PutPoolBuf(channel->MemPoolHandle, (uint32*)buffer); + if (putStatus < 0) + { + /* Failed to return memory back to memory pool. Not much we can do but report it + * and keep processing the queue until its empty. + */ + (void) CFE_EVS_SendEvent(PQ_PUT_POOL_ERR_EID, + CFE_EVS_ERROR, + "Failed to return message back to memory pool on output queue teardown, channel %d. (%d)", + (unsigned int)channel->channelIdx, + (int)putStatus); + } else { + /* Since status is positive, it is safe to cast */ + channel->MemInUse -= (uint32)putStatus; + } + } + + } + + if (status != OS_QUEUE_EMPTY) + { + /* The OSAL failed to pop all the messages off. Not much we can do. Report it and keep going. */ + (void) CFE_EVS_SendEvent(PQ_OSQUEUE_GET_ERROR_EID, + CFE_EVS_ERROR, + "Failed to pop all messages from channel '%s' (channel id = %d) output queue. (%d)", + channel->ChannelName, + (unsigned int)channel->channelIdx, + (int)status); + } + } + + status = PQ_OutputChannel_CustomTeardown(channel->channelIdx); + + return status; +} + + + +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ +/* */ +/* Reset all dynamic metrics. */ +/* */ +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ +void PQ_OutputQueue_ResetCounts(PQ_ChannelData_t *channel) +{ + channel->OutputQueue.SentCount = 0; + channel->OutputQueue.HighwaterMark = 0; + channel->OutputQueue.SentBytes = 0; + channel->OutputQueue.CurrentlyQueuedCnt = 0; +} + + + +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ +/* */ +/* Push a message on the output channel queue. */ +/* */ +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ +int32 PQ_OutputQueue_QueueMsg(PQ_ChannelData_t *channel, CFE_SB_MsgPtr_t MsgPtr) +{ + int32 status = 0; + + status = OS_QueuePut(channel->OutputQueue.OSALQueueID, &MsgPtr, sizeof(MsgPtr), 0); + if (OS_QUEUE_FULL == status) + { + /* This is not supposed to happen since we only queue when the channel + * is not full, but trap it anyway. Since the queue is full and the + * message will not be sent, deallocate the memory allocated as it + * won't be needed + */ + status = CFE_ES_PutPoolBuf(channel->MemPoolHandle, (uint32 *)MsgPtr); + if (status < 0) + { + (void) CFE_EVS_SendEvent(PQ_PUT_POOL_ERR_EID, + CFE_EVS_ERROR, + "PutPoolBuf: channel=%d, error=%i", + (unsigned int)channel->channelIdx, + (int)status); + + return status; + } + + /* Since status is positive, it is safe to cast */ + channel->MemInUse -= (uint32)status; + } + else if (status != CFE_SUCCESS) + { + (void) CFE_EVS_SendEvent(PQ_OSQUEUE_PUT_ERROR_EID, + CFE_EVS_ERROR, + "OS_QueuePut failed: channel=%d size=%u error=%i", + (unsigned int)channel->channelIdx, + sizeof(MsgPtr), + (int)status); + } + + return status; +} + + + +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ +/* */ +/* Query an output channel. */ +/* */ +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ +osalbool PQ_OutputChannel_Query(uint16 ChannelIdx) +{ + PQ_ChannelData_t *channel = NULL; + + /* First, check if the channel index is valid. */ + if (ChannelIdx >= PQ_MAX_CHANNELS) + { + (void) CFE_EVS_SendEvent(PQ_OUT_CH_INFO_ERR_EID, + CFE_EVS_ERROR, + "Invalid channel index (index = %d, max = %d).", + (unsigned int)ChannelIdx, + PQ_MAX_CHANNELS); + + return FALSE; + } + channel = &PQ_AppData.ChannelData[ChannelIdx]; + + /* Next, see if the channel is open. */ + if (channel->State != PQ_CHANNEL_OPENED) + { + (void) CFE_EVS_SendEvent(PQ_OUT_CH_INFO_ERR_EID, + CFE_EVS_ERROR, + "Channel %d not open.", + (unsigned int)ChannelIdx); + + return FALSE; + } + + (void) CFE_EVS_SendEvent(PQ_OUT_CH_INFO_EID, + CFE_EVS_INFORMATION, + "CHANNEL=%d S=%d ML=%i SC=%u CQC=%d HWM=%d", + (unsigned int)ChannelIdx, + (unsigned int)channel->State, + PQ_OUTPUT_QUEUE_DEPTH, + (unsigned int)channel->OutputQueue.SentCount, + (unsigned int)channel->OutputQueue.CurrentlyQueuedCnt, + (unsigned int)channel->OutputQueue.HighwaterMark); + return TRUE; +} diff --git a/apps/pq_lib/fsw/src/pq_priority_queue.c b/apps/pq_lib/fsw/src/pq_priority_queue.c new file mode 100644 index 000000000..cf20c0075 --- /dev/null +++ b/apps/pq_lib/fsw/src/pq_priority_queue.c @@ -0,0 +1,479 @@ +/**************************************************************************** +* +* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions +* are met: +* +* 1. Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* 2. Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in +* the documentation and/or other materials provided with the +* distribution. +* 3. Neither the name Windhover Labs nor the names of its +* contributors may be used to endorse or promote products derived +* from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS +* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED +* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +* POSSIBILITY OF SUCH DAMAGE. +* +*****************************************************************************/ + +#include "pq_priority_queue.h" +#include +#include + +#include "pq_structs.h" +#include "pq_events.h" + +extern PQ_AppData_t PQ_AppData; + + +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ +/* */ +/* Get the CFE EVS Event Message length */ +/* */ +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ +uint32 PQ_GetEventMsgLength(CFE_EVS_Packet_t *msgPtr); + + + +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ +/* */ +/* Clear all dynamics metrics. */ +/* */ +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ +void PQ_PriorityQueue_ResetCountsAll(PQ_ChannelData_t* channel) +{ + uint32 i; + + for (i = 0; i < PQ_MAX_PRIORITY_QUEUES; ++i) + { + channel->DumpTbl.PriorityQueue[i].DroppedMsgCnt = 0; + channel->DumpTbl.PriorityQueue[i].QueuedMsgCnt = 0; + channel->DumpTbl.PriorityQueue[i].HighwaterMark = 0; + channel->DumpTbl.PriorityQueue[i].CurrentlyQueuedCnt = 0; + } +} + + + +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ +/* */ +/* Buildup all priority queues after a reconfiguration. */ +/* */ +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ +int32 PQ_PriorityQueue_BuildupAll(PQ_ChannelData_t *channel) +{ + uint32 i; + int32 status = CFE_SUCCESS; + + /* First, check if the channel NULL. */ + if (NULL == channel) + { + (void) CFE_EVS_SendEvent(PQ_PQUEUE_MISSING_TBL_ERR_EID, + CFE_EVS_ERROR, + "Channel is NULL."); + return PQ_CHANNEL_PTR_NULL; + } + + if (NULL == channel->ConfigTblPtr) + { + (void) CFE_EVS_SendEvent(PQ_PQUEUE_MISSING_TBL_ERR_EID, + CFE_EVS_ERROR, + "Failed to create priority queues on channel %d, missing table.", + channel->channelIdx); + return PQ_NO_TABLE_ERR; + } + + /* + * Create the priority queues. + */ + for (i = 0; i < PQ_MAX_PRIORITY_QUEUES; ++i) + { + if (channel->ConfigTblPtr->PriorityQueue[i].State != PQ_PQUEUE_UNUSED) + { + char QueueName[OS_MAX_API_NAME]; + (void) CFE_PSP_MemSet(QueueName, 0, sizeof(QueueName)); + snprintf(QueueName, OS_MAX_API_NAME, "PQ_%s_%u", (const char*)&channel->ChannelName[0], (uint8)i); + status = OS_QueueCreate( + &channel->DumpTbl.PriorityQueue[i].OSALQueueID, + QueueName, + channel->ConfigTblPtr->PriorityQueue[i].MsgLimit, + sizeof(CFE_SB_Msg_t*), + 0); + if (status != OS_SUCCESS) + { + /* For some reason, we failed to create the queue, but this is not a critical error. + * Report the failure, set the queue ID to OS_MAX_QUEUES, and continue. We set the + * ID to OS_MAX_QUEUES because the queue ID is a uint32 and 0 is a valid queue ID. + * OS_MAX_QUEUES is an invalid ID. That will prevent us from accidentally trying + * to queue messages into a nonexistent queue later. + */ + (void) CFE_EVS_SendEvent(PQ_PQUEUE_CREATE_ERR_EID, + CFE_EVS_ERROR, + "Failed to create '%s' priority queue #%u on channel %d. (%i)", + channel->ChannelName, + (unsigned int)i, + channel->channelIdx, + (int)status); + + channel->DumpTbl.PriorityQueue[i].OSALQueueID = OS_MAX_QUEUES; + } + } + } + + return CFE_SUCCESS; +} + + + +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ +/* */ +/* Teardown all priority queues after a reconfiguration. */ +/* */ +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ +int32 PQ_PriorityQueue_TeardownAll(PQ_ChannelData_t *channel) +{ + uint32 i; + int32 status = 0; + int32 bytesReleased = 0; + uint32 bufferSize = 0; + void *buffer = NULL; + + if(NULL != channel->ConfigTblPtr) + { + for(i = 0; i < PQ_MAX_PRIORITY_QUEUES; ++i) + { + if(channel->ConfigTblPtr->PriorityQueue[i].State != PQ_PQUEUE_UNUSED) + { + if(channel->DumpTbl.PriorityQueue[i].OSALQueueID < OS_MAX_QUEUES) + { + buffer = NULL; + bufferSize = 0; + while(OS_SUCCESS == status) + { + status = OS_QueueGet( + channel->DumpTbl.PriorityQueue[i].OSALQueueID, + &buffer, sizeof(buffer), &bufferSize, OS_CHECK); + if(OS_SUCCESS == status) + { + bytesReleased = CFE_ES_PutPoolBuf(channel->MemPoolHandle, (uint32*)buffer); + if(bytesReleased < 0) + { + (void) CFE_EVS_SendEvent(PQ_PQUEUE_TEARDOWN_ERR_EID, + CFE_EVS_ERROR, + "Failed to return message back to memory pool on tbl load for channel %d. (%ld)", + (unsigned int)channel->channelIdx, + (unsigned long int)bytesReleased); + } else { + PQ_Channel_LockByRef(channel); + /* Since bytesReleased is positive, it is safe to cast */ + channel->MemInUse -= (uint32)bytesReleased; + PQ_Channel_UnlockByRef(channel); + } + } + } + + if(status != OS_QUEUE_EMPTY) + { + (void) CFE_EVS_SendEvent(PQ_PQUEUE_TEARDOWN_ERR_EID, + CFE_EVS_ERROR, + "Message flow failed to pop all messages from pqueue %u for channel %d. (%d)", + (unsigned int)i, + (unsigned int)channel->channelIdx, + (int)status); + } + + + /* Queue may or may not be empty. If we ran into an error, just press forward and delete the + * queue. + */ + status = OS_QueueDelete( + channel->DumpTbl.PriorityQueue[i].OSALQueueID); + if(status != OS_SUCCESS) + { + /* We ran into an error. Send an event, but just keep going. Nothing we can do. */ + (void) CFE_EVS_SendEvent(PQ_PQUEUE_TEARDOWN_ERR_EID, + CFE_EVS_ERROR, + "Failed to delete priority queue %u for channel %d. (%d)", + (unsigned int)i, + (unsigned int)channel->channelIdx, + (int)status); + } + + channel->DumpTbl.PriorityQueue[i].OSALQueueID = OS_MAX_QUEUES; + } + } + } + } + else + { + /* No table. Just keep going and try processing the next channel. */ + (void) CFE_EVS_SendEvent(PQ_PQUEUE_MISSING_TBL_ERR_EID, + CFE_EVS_ERROR, + "Failed to tear down priority queues on channel %d, missing table.", + (unsigned int)channel->channelIdx); + } + + return status; +} + + +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ +/* */ +/* Push a message on a priority queue. */ +/* */ +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ +int32 PQ_PriorityQueue_QueueMsg( + PQ_ChannelData_t *channel, + CFE_SB_MsgPtr_t MsgPtr, + uint32 PQueueIndex) +{ + int32 status = 0; + uint32 bufferSize = 0; + PQ_PriorityQueueMetrics_t* pqueueDump = NULL; + void *PQ_CopyBuffer = NULL; + CFE_SB_MsgId_t DataMsgID; + + if (NULL == channel->ConfigTblPtr) + { + (void) CFE_EVS_SendEvent(PQ_PQUEUE_MISSING_TBL_ERR_EID, CFE_EVS_ERROR, + "Failed to queue message on channel %d, missing table!", + (unsigned int)channel->channelIdx); + return PQ_NO_TABLE_ERR; + } + + pqueueDump = &channel->DumpTbl.PriorityQueue[PQueueIndex]; + + DataMsgID = CFE_SB_GetMsgId(MsgPtr); + bufferSize = CFE_SB_GetTotalMsgLength(MsgPtr); + + /* We're going to be modifying the event message. + * Send minimum-sized event messages. + * Trim message before memory pool get. + */ + if (CFE_EVS_EVENT_MSG_MID == DataMsgID) + { + bufferSize = PQ_GetEventMsgLength((CFE_EVS_Packet_t *)MsgPtr); + } + + /* Allocate a chunk of memory from the memory pool to store the message + * copy. + */ + status = CFE_ES_GetPoolBuf((uint32 **) &PQ_CopyBuffer, + channel->MemPoolHandle, bufferSize); + if ((status < 0) || (PQ_CopyBuffer == NULL)) + { + /* The allocation failed. There's nothing we can do. Rather than + * treat this as a critical failure, we're going to keep going and try + * processing other messages. We also aren't going to send an event. + * Sending an event may make this problem worse since we're + * potentially adding more messages to an already full buffer. So, + * let's just increment a counter, and let the caller know the queue + * failed. + */ + PQ_Channel_LockByRef(channel); + channel->MemFullCount++; + pqueueDump->DroppedMsgCnt++; + PQ_Channel_UnlockByRef(channel); + return PQ_MEMORY_FULL_ERR; + } + + PQ_Channel_LockByRef(channel); + /* Since status is positive, it is safe to cast */ + channel->MemInUse += (uint32)status; + if (channel->MemInUse > channel->PeakMemInUse) + { + channel->PeakMemInUse = channel->MemInUse; + } + PQ_Channel_UnlockByRef(channel); + + /* Copy the message into the temp buffer. */ + (void) CFE_PSP_MemCpy(PQ_CopyBuffer, MsgPtr, bufferSize); + + /* If the message is an event, set the corrected message size. */ + if (CFE_EVS_EVENT_MSG_MID == DataMsgID) + { + CFE_SB_SetTotalMsgLength((CFE_SB_MsgPtr_t)PQ_CopyBuffer, bufferSize); + } + + /* Queue the pointer to the message copy. */ + status = OS_QueuePut(pqueueDump->OSALQueueID, &PQ_CopyBuffer, sizeof(PQ_CopyBuffer), 0); + if (OS_QUEUE_FULL == status) + { + /* This is ok. Just let the caller know the queue is full. But, + * deallocate the memory allocated first since we don't need it + * anymore. + */ + status = CFE_ES_PutPoolBuf(channel->MemPoolHandle, (uint32*)PQ_CopyBuffer); + if (status < 0) + { + pqueueDump->DroppedMsgCnt++; + (void) CFE_EVS_SendEvent(PQ_PUT_POOL_ERR_EID, + CFE_EVS_ERROR, + "PutPoolBuf: channel=%d error=%i", + (unsigned int)channel->channelIdx, + (int)status); + return status; + } + PQ_Channel_LockByRef(channel); + channel->MemInUse -= (uint32)status; + + PQ_Channel_UnlockByRef(channel); + status = PQ_PRIORITY_QUEUE_FULL_ERR; + } + else if (status != OS_SUCCESS) + { + pqueueDump->DroppedMsgCnt++; + (void) CFE_EVS_SendEvent(PQ_OSQUEUE_PUT_ERROR_EID, + CFE_EVS_ERROR, + "OS_QueuePut failed: channel=%d size=%u error=%i", + (unsigned int)channel->channelIdx, + sizeof(PQ_CopyBuffer), + (int)status); + return status; + } + + /* Update metrics. */ + pqueueDump->DroppedMsgCnt++; + pqueueDump->QueuedMsgCnt++; + pqueueDump->CurrentlyQueuedCnt++; + + if (pqueueDump->HighwaterMark < pqueueDump->CurrentlyQueuedCnt) + { + pqueueDump->HighwaterMark = pqueueDump->CurrentlyQueuedCnt; + } + + return status; +} + + + +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ +/* */ +/* Query a priority queue. */ +/* */ +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ +osalbool PQ_PriorityQueue_Query(uint16 ChannelIdx, uint16 PQueueIdx) +{ + osalbool returnCode = FALSE; + PQ_ChannelData_t *channel = NULL; + + /* First, check if the channel index is valid. */ + if (ChannelIdx >= PQ_MAX_CHANNELS) + { + (void) CFE_EVS_SendEvent(PQ_PQUEUE_INFO_ERR_EID, + CFE_EVS_ERROR, + "Invalid channel index (index = %d, max = %d).", + ChannelIdx, PQ_MAX_CHANNELS); + return returnCode; + } + + channel = &PQ_AppData.ChannelData[ChannelIdx]; + + if (NULL == channel->ConfigTblPtr) + { + (void) CFE_EVS_SendEvent(PQ_PQUEUE_MISSING_TBL_ERR_EID, + CFE_EVS_ERROR, + "Channel missing valid table data (index = %d).", + ChannelIdx); + return returnCode; + } + + PQ_Channel_LockByRef(channel); + + /* Next, see if the channel is open. */ + if (channel->State != PQ_CHANNEL_OPENED) + { + (void) CFE_EVS_SendEvent(PQ_PQUEUE_INFO_ERR_EID, + CFE_EVS_ERROR, + "Channel %d not open.", ChannelIdx); + PQ_Channel_UnlockByRef(channel); + return returnCode; + } + + if (PQueueIdx >= PQ_MAX_PRIORITY_QUEUES) + { + (void) CFE_EVS_SendEvent(PQ_PQUEUE_INFO_ERR_EID, + CFE_EVS_ERROR, + "PQueueIdx %u exceeds the largest available priority queue index, %d", + PQueueIdx, + PQ_MAX_PRIORITY_QUEUES - 1); + } + else + { + (void) CFE_EVS_SendEvent(PQ_PQUEUE_INFO_EID, + CFE_EVS_INFORMATION, + "CHANNEL=%d PQI=%u S=%u ML=%u QT=%u D=%lu Q=%lu CQ=%u HWM=%u", + ChannelIdx, + PQueueIdx, + channel->ConfigTblPtr->PriorityQueue[PQueueIdx].State, + channel->ConfigTblPtr->PriorityQueue[PQueueIdx].MsgLimit, + channel->ConfigTblPtr->PriorityQueue[PQueueIdx].QType, + channel->DumpTbl.PriorityQueue[PQueueIdx].DroppedMsgCnt, + channel->DumpTbl.PriorityQueue[PQueueIdx].QueuedMsgCnt, + channel->DumpTbl.PriorityQueue[PQueueIdx].CurrentlyQueuedCnt, + channel->DumpTbl.PriorityQueue[PQueueIdx].HighwaterMark); + + returnCode = TRUE; + } + + PQ_Channel_UnlockByRef(channel); + + return returnCode; +} + + +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ +/* */ +/* Is this index a valid priority queue? */ +/* */ +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ +osalbool PQ_PriorityQueue_IsValid(PQ_ChannelData_t *channel, uint32 PQueueIdx) +{ + if ((NULL == channel) || (NULL == channel->ConfigTblPtr)) + { + return FALSE; + } + + if (PQueueIdx >= PQ_MAX_PRIORITY_QUEUES) + { + return FALSE; + } + else if (channel->ConfigTblPtr->PriorityQueue[PQueueIdx].State != PQ_PQUEUE_ENA) + { + return FALSE; + } + + return TRUE; +} + + +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ +/* */ +/* Get the CFE EVS Event Message length */ +/* */ +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ +uint32 PQ_GetEventMsgLength(CFE_EVS_Packet_t *msgPtr) +{ + uint32 msgLen; + uint32 textStart = offsetof(CFE_EVS_Packet_t, Payload) + offsetof(CFE_EVS_Packet_Payload_t, Message); + uint32 textLength = strnlen(msgPtr->Payload.Message, CFE_EVS_MAX_MESSAGE_LENGTH); + + msgLen = textStart + textLength + 1; + + return msgLen; +} diff --git a/apps/pq_lib/wh_design.yaml b/apps/pq_lib/wh_design.yaml new file mode 100644 index 000000000..c00d32a42 --- /dev/null +++ b/apps/pq_lib/wh_design.yaml @@ -0,0 +1,6 @@ +--- + short_name: pq_lib + long_name: PQ Library + events: + telemetry: + commands: From 24e8cfe28faf6b82a618dde7217f3c43f4ad04c8 Mon Sep 17 00:00:00 2001 From: cnalley Date: Wed, 3 Feb 2021 22:40:43 +0000 Subject: [PATCH 030/370] Add more pq_lib files. --- apps/pq_lib/fsw/for_build/CMakeLists.txt | 4 + apps/pq_lib/fsw/public_inc/pq_config_utils.h | 249 ++++++++ apps/pq_lib/fsw/public_inc/pq_scheduler.h | 76 +++ apps/pq_lib/fsw/src/pq_channel.c | 2 +- apps/pq_lib/fsw/src/pq_config_utils.c | 573 +++++++++++++++++++ apps/pq_lib/fsw/src/pq_output_queue.c | 2 +- apps/pq_lib/fsw/src/pq_scheduler.c | 93 +++ 7 files changed, 997 insertions(+), 2 deletions(-) create mode 100644 apps/pq_lib/fsw/public_inc/pq_config_utils.h create mode 100644 apps/pq_lib/fsw/public_inc/pq_scheduler.h create mode 100644 apps/pq_lib/fsw/src/pq_config_utils.c create mode 100644 apps/pq_lib/fsw/src/pq_scheduler.c diff --git a/apps/pq_lib/fsw/for_build/CMakeLists.txt b/apps/pq_lib/fsw/for_build/CMakeLists.txt index ec098632f..db2a7e1b5 100644 --- a/apps/pq_lib/fsw/for_build/CMakeLists.txt +++ b/apps/pq_lib/fsw/for_build/CMakeLists.txt @@ -36,12 +36,15 @@ buildliner_add_app_def(pq_lib SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/../src/pq_channel.c ${CMAKE_CURRENT_SOURCE_DIR}/../src/pq_classifier.c + ${CMAKE_CURRENT_SOURCE_DIR}/../src/pq_config_utils.c ${CMAKE_CURRENT_SOURCE_DIR}/../src/pq_lib.c ${CMAKE_CURRENT_SOURCE_DIR}/../src/pq_message_flow.c ${CMAKE_CURRENT_SOURCE_DIR}/../src/pq_output_queue.c ${CMAKE_CURRENT_SOURCE_DIR}/../src/pq_priority_queue.c + ${CMAKE_CURRENT_SOURCE_DIR}/../src/pq_scheduler.c ${CMAKE_CURRENT_SOURCE_DIR}/../public_inc/pq_channel.h ${CMAKE_CURRENT_SOURCE_DIR}/../public_inc/pq_classifier.h + ${CMAKE_CURRENT_SOURCE_DIR}/../public_inc/pq_config_utils.h ${CMAKE_CURRENT_SOURCE_DIR}/../public_inc/pq_errors.h ${CMAKE_CURRENT_SOURCE_DIR}/../public_inc/pq_message_flow.h ${CMAKE_CURRENT_SOURCE_DIR}/../public_inc/pq_mission_cfg.h @@ -49,6 +52,7 @@ buildliner_add_app_def(pq_lib ${CMAKE_CURRENT_SOURCE_DIR}/../public_inc/pq_platform_cfg.h ${CMAKE_CURRENT_SOURCE_DIR}/../public_inc/pq_priority_queue.h ${CMAKE_CURRENT_SOURCE_DIR}/../public_inc/pq_structs.h + ${CMAKE_CURRENT_SOURCE_DIR}/../public_inc/pq_scheduler.h INCLUDES ${CMAKE_CURRENT_SOURCE_DIR}/../src/ diff --git a/apps/pq_lib/fsw/public_inc/pq_config_utils.h b/apps/pq_lib/fsw/public_inc/pq_config_utils.h new file mode 100644 index 000000000..0ffce664d --- /dev/null +++ b/apps/pq_lib/fsw/public_inc/pq_config_utils.h @@ -0,0 +1,249 @@ +/**************************************************************************** +* +* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions +* are met: +* +* 1. Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* 2. Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in +* the documentation and/or other materials provided with the +* distribution. +* 3. Neither the name Windhover Labs nor the names of its +* contributors may be used to endorse or promote products derived +* from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS +* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED +* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +* POSSIBILITY OF SUCH DAMAGE. +* +*****************************************************************************/ + +#ifndef PQ_CONFIG_UTILS_H +#define PQ_CONFIG_UTILS_H + +/************************************************************************ +** Pragmas +*************************************************************************/ + +/************************************************************************ +** Includes +*************************************************************************/ +#include "cfe.h" +#include "pq_structs.h" +#include "pq_channel.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/************************************************************************ +** Local Defines +*************************************************************************/ + +/************************************************************************ +** Local Structure Declarations +*************************************************************************/ + +/************************************************************************ +** External Global Variables +*************************************************************************/ + +/************************************************************************ +** Global Variables +*************************************************************************/ + +/************************************************************************ +** Local Variables +*************************************************************************/ + +/************************************************************************ +** Local Function Prototypes +*************************************************************************/ + + +/************************************************************************/ +/** \brief Init TO configuration and dump tables for a channel +** +** \par Description +** This function initializes the two tables for a channel +** +** \par Assumptions, External Events, and Notes: +** This function should be called only once per channel. +** +** +** \param channel A #PQ_ChannelData_t pointer that +** references the channel data structure +** +** \return +** \retcode #CFE_SUCCESS \retdesc \copydoc CFE_SUCCESS \endcode +** \retstmt Return codes from #CFE_TBL_Register \endcode +** \retstmt Return codes from #CFE_TBL_Load \endcode +** \retstmt Return codes from #PQ_AcquireConfigPointer \endcode +** +*************************************************************************/ +int32 PQ_InitTables(PQ_ChannelData_t *channel); + + +/************************************************************************/ +/** \brief Validate TO Configuration table +** +** \par Description +** This function validates TO's Configuration table +** +** \par Assumptions, External Events, and Notes: +** None +** +** \param configTblPtr Pointer to config table data from cFE table services +** +** \param tableType A #PQ_Table_Types_t enum +** +** \return +** \retcode #CFE_SUCCESS \retdesc \copydoc CFE_SUCCESS \endcode +** If unsuccessful, +** #PQ_CONFIG_TABLE_RETURN_INVALID_VERSION, #PQ_CONFIG_TABLE_RETURN_NO_SECONDARY_HEADER, +** #PQ_CONFIG_TABLE_MSG_FLOW_MSG_LIMIT_ERR, #PQ_CONFIG_TABLE_MSG_FLOW_PQ_ID_ERR, +** #PQ_CONFIG_TABLE_NULL_PTR_ERR, #PQ_CONFIG_TABLE_PQUEUE_STATE_ERR, +** #PQ_CONFIG_TABLE_PQUEUE_QTYPE_ERR, #PQ_CONFIG_TABLE_PQUEUE_MSG_LIMIT_ERR +** #PQ_CONFIG_TABLE_NO_PQUEUES_ERR, #PQ_CONFIG_TABLE_MSG_FLOW_FILTER_ERR, +** #PQ_CONFIG_TABLE_QUEUE_ERR, #PQ_CONFIG_TABLE_ANOMALY_BUFFER_ERR. +** +*************************************************************************/ +int32 PQ_ValidateConfigTbl(void *configTblPtr); + + +/************************************************************************/ +/** \brief Obtain TO Config Table Data Pointer +** +** \par Description +** This function manages the config table +** and obtains a pointer to its data. +** +** \par Assumptions, External Events, and Notes: +** None +** +** \param channel A #PQ_ChannelData_t pointer that +** references the channel data structure +** +** \return +** \retcode #CFE_SUCCESS \retdesc \copydoc CFE_SUCCESS \endcode +** +*************************************************************************/ +int32 PQ_AcquireConfigPointer(PQ_ChannelData_t *channel); + + +/************************************************************************/ +/** \brief Process new TO Config table +** +** \par Description +** This function processes TO's new Config table +** and set Config parameters with new values. +** +** \par Assumptions, External Events, and Notes: +** None +** +** \param channel A #PQ_ChannelData_t pointer that +** references the channel data structure +** \return +** \retcode #CFE_SUCCESS \retdesc \copydoc CFE_SUCCESS \endcode +** +*************************************************************************/ +int32 PQ_ProcessNewConfigTbl(PQ_ChannelData_t *channel); + + +/************************************************************************/ +/** \brief Intermediate function to add a TO table type to allow +** table validation per channel type (Ground, Onboard, Storage) +** This function is used to help validate the Ground channel +** table. +** +** \par Description +** This function add channel type to be pass to validation function. +** +** \par Assumptions, External Events, and Notes: +** None +** +** \param configTblPtr Pointer to config table data from cFE table services +** +** \return +** \retcode #CFE_SUCCESS \retdesc \copydoc CFE_SUCCESS \endcode +** +*************************************************************************/ +int32 PQ_ValidateConfigGrndTbl(void *configTblPtr); + + + +/************************************************************************/ +/** \brief This manages all the tables in the app +** +** \par Description +** This function performs the table management for each channel's +** dump and configuration tables with cFE table services. +** +** \par Assumptions, External Events, and Notes: +** All tables have been initialized via PQ_InitCoinfigTbl(). +** This is called during app cyclic operations. +** +*************************************************************************/ +void PQ_ManageAllAppTables(void); + + +/************************************************************************/ +/** \brief This manages all the tables for a given channel +** +** \par Description +** This function performs the table management for a channel's +** dump and configuration tables with cFE table services. +** +** \par Assumptions, External Events, and Notes: +** All channel tables have been initialized via PQ_InitCoinfigTbl(). +** +** \param initialManage T=this is the first time to call this function +** at app initialization, F=this is being called in the app main loop +** +** \param ChannelID The index of the channel to manage +** +*************************************************************************/ +void PQ_ManageChannelTables(osalbool initialManage, uint16 ChannelID); + + +/************************************************************************/ +/** \brief Load the backup config table +** +** \par Description +** This function loads the built-in emergency backup TO config table. +** For use when the config table can't be provided by cFE TBL, such as +** the config file can't be read from the filesystem. +** +** \par Assumptions, External Events, and Notes: +** None +** +** \param channel A #PQ_ChannelData_t pointer that +** references the channel data structure +** +*************************************************************************/ +void PQ_LoadBackupConfigTable(PQ_ChannelData_t *channel); + + +#ifdef __cplusplus +} +#endif + +#endif /* PQ_CONFIG_UTILS_H */ + +/************************/ +/* End of File Comment */ +/************************/ + diff --git a/apps/pq_lib/fsw/public_inc/pq_scheduler.h b/apps/pq_lib/fsw/public_inc/pq_scheduler.h new file mode 100644 index 000000000..ee365de3f --- /dev/null +++ b/apps/pq_lib/fsw/public_inc/pq_scheduler.h @@ -0,0 +1,76 @@ +/**************************************************************************** +* +* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions +* are met: +* +* 1. Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* 2. Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in +* the documentation and/or other materials provided with the +* distribution. +* 3. Neither the name Windhover Labs nor the names of its +* contributors may be used to endorse or promote products derived +* from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS +* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED +* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +* POSSIBILITY OF SUCH DAMAGE. +* +*****************************************************************************/ + +#ifndef PQ_SCHEDULER_H +#define PQ_SCHEDULER_H + +/************************************************************************ +** Pragmas +*************************************************************************/ + +/************************************************************************ +** Includes +*************************************************************************/ + +#include "cfe.h" + +/************************************************************************ +** Local Defines +*************************************************************************/ + +/************************************************************************ +** Local Structure Definitions +*************************************************************************/ + +/************************************************************************ +** External Global Variables +*************************************************************************/ + + +/************************************************************************/ +/** \brief Runs the Classifier algorithm on incoming message flows. +** +** \par Description +** This runs fixed scheduler that services the priority queues in +** the order they appear in the configuration table. The Scheduler +** will pop messages off the priority queue when the output channel +** has room. It will move on to the next priority queue when the +** output channel is full or the current priority is empty. +** +** \par Assumptions, External Events, and Notes: +** This will raise error events as errors are encountered. +** +*************************************************************************/ +void PQ_Scheduler_Run(PQ_ChannelData_t *channel); + +#endif diff --git a/apps/pq_lib/fsw/src/pq_channel.c b/apps/pq_lib/fsw/src/pq_channel.c index 646c52345..aaae4523c 100644 --- a/apps/pq_lib/fsw/src/pq_channel.c +++ b/apps/pq_lib/fsw/src/pq_channel.c @@ -487,7 +487,7 @@ void PQ_Channel_CleanupAll(void) { uint32 i; - PQ_OutputChannel_CustomCleanupAll(); + //PQ_OutputChannel_CustomCleanupAll(); for (i = 0; i < PQ_MAX_CHANNELS; ++i) { diff --git a/apps/pq_lib/fsw/src/pq_config_utils.c b/apps/pq_lib/fsw/src/pq_config_utils.c new file mode 100644 index 000000000..54cdef87e --- /dev/null +++ b/apps/pq_lib/fsw/src/pq_config_utils.c @@ -0,0 +1,573 @@ +/**************************************************************************** +* +* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions +* are met: +* +* 1. Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* 2. Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in +* the documentation and/or other materials provided with the +* distribution. +* 3. Neither the name Windhover Labs nor the names of its +* contributors may be used to endorse or promote products derived +* from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS +* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED +* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +* POSSIBILITY OF SUCH DAMAGE. +* +*****************************************************************************/ + +/************************************************************************ +** Pragmas +*************************************************************************/ + +/************************************************************************ +** Includes +*************************************************************************/ +#include "pq_config_utils.h" +#include "pq_channel.h" +#include "pq_output_queue.h" +#include "pq_priority_queue.h" +#include "pq_message_flow.h" +#include "pq_mission_cfg.h" +#include "pq_structs.h" +#include "pq_events.h" +#include + +/************************************************************************ +** Local Defines +*************************************************************************/ + +/************************************************************************ +** Local Structure Declarations +*************************************************************************/ + +/************************************************************************ +** External Global Variables +*************************************************************************/ +extern PQ_AppData_t PQ_AppData; + +/************************************************************************ +** Global Variables +*************************************************************************/ + +/************************************************************************ +** Local Variables +*************************************************************************/ + +/************************************************************************ +** Function Prototypes +*************************************************************************/ + +/************************************************************************ +** Function Definitions +*************************************************************************/ + + +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ +/* */ +/* Initialize Config Table */ +/* */ +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ +int32 PQ_InitTables(PQ_ChannelData_t *channel) +{ + int32 status = CFE_SUCCESS; + int result; + + /* Register Config tables */ + status = CFE_TBL_Register(&channel->ConfigTblHdl, + channel->ConfigTableName, + sizeof(PQ_ChannelTbl_t), + CFE_TBL_OPT_DEFAULT, + PQ_ValidateConfigTbl); + + if (status != CFE_SUCCESS) + { + /* Note, a critical table could return another nominal code. If this table is + * made critical this logic would have to change. */ + (void) CFE_EVS_SendEvent(PQ_INIT_CONFIG_ERR_EID, CFE_EVS_ERROR, + "Failed to register Config table (0x%08X) for channel %d", + (unsigned int)status, + (unsigned int)channel->channelIdx); + return status; + } + + /* Register Dump table */ + status = CFE_TBL_Register(&channel->DumpTblHdl, + channel->DumpTableName, + sizeof(PQ_ChannelDumpTbl_t), + CFE_TBL_OPT_USR_DEF_ADDR, + 0); + if (status != CFE_SUCCESS) + { + /* Note, a critical table could return another nominal code. If this table is + * made critical this logic would have to change. */ + (void) CFE_EVS_SendEvent(PQ_INIT_CONFIG_ERR_EID, + CFE_EVS_ERROR, + "Failed to register Dump table (0x%08X) for channel %d", + (unsigned int)status, + (unsigned int)channel->channelIdx); + return status; + } + + /* Load Config table file */ + status = CFE_TBL_Load(channel->ConfigTblHdl, + CFE_TBL_SRC_FILE, + channel->ConfigTableFileName); + if (status != CFE_SUCCESS) + { + /* Note, CFE_SUCCESS is for a successful full table load. If a partial table + load is desired then this logic would have to change. */ + (void) CFE_EVS_SendEvent(PQ_INIT_CONFIG_ERR_EID, + CFE_EVS_ERROR, + "Failed to load Config Table (0x%08X) for channel %d", + (unsigned int)status, + (unsigned int)channel->channelIdx); + + /* Load emergency backup table */ + PQ_LoadBackupConfigTable(channel); + } + + /* Load Dump table */ + status = CFE_TBL_Load(channel->DumpTblHdl, + CFE_TBL_SRC_ADDRESS, + &channel->DumpTbl); + if (status != CFE_SUCCESS) + { + /* Note, CFE_SUCCESS is for a successful full table load. If a partial table + load is desired then this logic would have to change. */ + (void) CFE_EVS_SendEvent(PQ_INIT_CONFIG_ERR_EID, + CFE_EVS_ERROR, + "Failed to load Dump Table (0x%08X) for channel %d", + (unsigned int)status, + (unsigned int)channel->channelIdx); + return status; + } + + /* Force a manage on this channel's tables since this is the first time */ + PQ_ManageChannelTables(TRUE, channel->channelIdx); + + return (status); +} + + +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ +/* */ +/* Load Backup Config Table */ +/* */ +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ +void PQ_LoadBackupConfigTable(PQ_ChannelData_t *channel) +{ + int32 status = CFE_SUCCESS; + + /* Load emergency backup TO Config table */ + status = CFE_TBL_Load(channel->ConfigTblHdl, + CFE_TBL_SRC_ADDRESS, + (void*)channel->BackupTblPtr); + + if (CFE_SUCCESS == status) + { + (void) CFE_EVS_SendEvent(PQ_BACKUP_TABLE_INF_EID, + CFE_EVS_INFORMATION, + "Loaded built-in emergency backup config table! - channel %u", + (unsigned int)channel->channelIdx); + } + else + { + (void) CFE_EVS_SendEvent(PQ_BACKUP_TABLE_ERR_EID, + CFE_EVS_ERROR, + "Failed to load built-in emergency backup config table! - channel %u", + (unsigned int)channel->channelIdx); + } +} + + + +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ +/* */ +/* Validate Config Table */ +/* */ +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ +int32 PQ_ValidateConfigTbl(void *configTblPtr) +{ + int32 status = CFE_SUCCESS; + PQ_ChannelTbl_t *PQ_ConfigTblPtr = NULL; + + /* For validating PriorityQueues */ + uint16 PQueueIdx; + uint16 unused_PQ_Count = 0; + uint16 valid_PQ_Count = 0; + + /* For validating MessageFlows/Ground Queues */ + uint16 MFlowIdx; + uint16 unused_MF_Count = 0; + CCSDS_PriHdr_t CCSDSPriHdr; + + uint8 queueIdx = 0; + + /* Check if configTblPtr is NULL */ + if (configTblPtr == NULL) + { + (void) CFE_EVS_SendEvent(PQ_CONFIG_TABLE_NULL_PTR_EID, + CFE_EVS_ERROR, + "Config table pointer is NULL, table validation ended"); + + return PQ_CONFIG_TABLE_NULL_PTR_ERR; + } + + /* Pointer to the table data being verified */ + PQ_ConfigTblPtr = (PQ_ChannelTbl_t *)configTblPtr; + + /* Check the Priority Queue section of the table */ + for (PQueueIdx = 0; PQueueIdx < PQ_MAX_PRIORITY_QUEUES; PQueueIdx++) + { + /* Check the Priority Queue State for each table entry */ + if (PQ_ConfigTblPtr->PriorityQueue[PQueueIdx].State != PQ_PQUEUE_UNUSED && + PQ_ConfigTblPtr->PriorityQueue[PQueueIdx].State != PQ_PQUEUE_ENA) + { + (void) CFE_EVS_SendEvent(PQ_CONFIG_TABLE_PQUEUE_STATE_ERR_EID, + CFE_EVS_ERROR, + "Priority Queue State is invalid (%d), for Table ID (%lu) at table index (%d)", + PQ_ConfigTblPtr->PriorityQueue[PQueueIdx].State, + PQ_ConfigTblPtr->TableID, + PQueueIdx); + + return PQ_CONFIG_TABLE_PQUEUE_STATE_ERR; + } + else if (PQ_ConfigTblPtr->PriorityQueue[PQueueIdx].State == PQ_PQUEUE_UNUSED) + { + /* Found unused priority queue. Increment counter */ + unused_PQ_Count++; + } + else + { + /* Check individual Priority Queue's Qtype and MsgLimit for error. + * If the Priority Queue type is incorrect or MsgLimit out of range, + * the entire table is invalid. + * + * Check Priority Queue QType + */ + if ((PQ_ConfigTblPtr->PriorityQueue[PQueueIdx].QType != PQ_PRIORITY_QUEUE_TYPE_SINGLE) && + (PQ_ConfigTblPtr->PriorityQueue[PQueueIdx].QType != PQ_PRIORITY_QUEUE_TYPE_FIFO)) + + { + (void) CFE_EVS_SendEvent(PQ_CONFIG_TABLE_PQUEUE_QTYPE_ERR_EID, + CFE_EVS_ERROR, + "Priority Queue Qtype is invalid (%d) for Table ID (%lu) at table index (%d)", + PQ_ConfigTblPtr->PriorityQueue[PQueueIdx].QType, + PQ_ConfigTblPtr->TableID, + PQueueIdx); + + return PQ_CONFIG_TABLE_PQUEUE_QTYPE_ERR; + } + /* Check Priority Queue MsgLimit */ + if (PQ_ConfigTblPtr->PriorityQueue[PQueueIdx].MsgLimit > PQ_MAX_QUEUE_SIZE_LIMIT || + PQ_ConfigTblPtr->PriorityQueue[PQueueIdx].MsgLimit < 1) + { + (void) CFE_EVS_SendEvent(PQ_CONFIG_TABLE_PQUEUE_MSG_LIMIT_ERR_EID, + CFE_EVS_ERROR, + "Priority Queue MsgLimit invalid (%d) for Table ID (%lu) at table index (%d)", + PQ_ConfigTblPtr->PriorityQueue[PQueueIdx].MsgLimit, + PQ_ConfigTblPtr->TableID, + PQueueIdx); + + return PQ_CONFIG_TABLE_PQUEUE_MSG_LIMIT_ERR; + } + + valid_PQ_Count++; + } + } + + /* If all priority queues are unused or there's nothing in the table, the entire table is invalid. + * No need to check Message Flows. Stop table validation. + */ + if (PQ_MAX_PRIORITY_QUEUES == unused_PQ_Count) + { + (void) CFE_EVS_SendEvent(PQ_CONFIG_TABLE_NO_PQUEUES_ERR_EID, + CFE_EVS_ERROR, + "No Priority Queues or all queue states are unused in the config table with Table ID (%lu)", + PQ_ConfigTblPtr->TableID); + + return PQ_CONFIG_TABLE_NO_PQUEUES_ERR; + } + + /* No issues found with Priority Queues. Check the Message Flows */ + for (MFlowIdx = 0; MFlowIdx < PQ_MAX_MESSAGE_FLOWS; MFlowIdx++) + { + if ((PQ_ConfigTblPtr->MessageFlow[MFlowIdx].MsgId == 0x0000) && + (PQ_ConfigTblPtr->MessageFlow[MFlowIdx].MsgLimit == 0) && + (PQ_ConfigTblPtr->MessageFlow[MFlowIdx].PQueueID == 0)) + { + /* Found unused queue increment count */ + unused_MF_Count++; + } + else + { + /* + * Check each MsgId's the primary header for the correct CCSDS version, + * for the presence of the secondary header, and for packet completeness. + */ + + /* Clear the primary header. */ + CCSDS_CLR_PRI_HDR(CCSDSPriHdr); + + /* Set the stream ID */ + CCSDSPriHdr.StreamId[0] = (uint8) (PQ_ConfigTblPtr->MessageFlow[MFlowIdx].MsgId >> 8); + CCSDSPriHdr.StreamId[1] = (uint8) (PQ_ConfigTblPtr->MessageFlow[MFlowIdx].MsgId & 0xff); + + /* Validate secondary header present */ + if (CCSDS_RD_SHDR(CCSDSPriHdr) == CCSDS_NO_SEC_HDR) + { + (void) CFE_EVS_SendEvent(PQ_CONFIG_TABLE_SHDR_ABSENT_EID, + CFE_EVS_ERROR, + "Secondary Header is absent for table index (%d), MsgId (0x%04X) in Table ID (%lu)", + MFlowIdx, + PQ_ConfigTblPtr->MessageFlow[MFlowIdx].MsgId, + PQ_ConfigTblPtr->TableID); + + return PQ_CONFIG_TABLE_RETURN_NO_SECONDARY_HEADER; + } + + /* Validate CCSDS version */ + if (CCSDS_RD_VERS(CCSDSPriHdr) != 0) + { + (void) CFE_EVS_SendEvent(PQ_CONFIG_TABLE_CCSDS_VER_INVALID_EID, + CFE_EVS_ERROR, + "Invalid CCSDS Version for table index (%d), MsgId (0x%04X) in Table ID (%lu)", + MFlowIdx, + PQ_ConfigTblPtr->MessageFlow[MFlowIdx].MsgId, + PQ_ConfigTblPtr->TableID); + + return PQ_CONFIG_TABLE_RETURN_INVALID_VERSION; + } + + /* Validate Message Flow message limit is in the proper range */ + if (PQ_ConfigTblPtr->MessageFlow[MFlowIdx].MsgLimit > PQ_MAX_PQ_MSG_SIZE_LIMIT || + PQ_ConfigTblPtr->MessageFlow[MFlowIdx].MsgLimit < 1) + { + (void) CFE_EVS_SendEvent(PQ_CONFIG_TABLE_MSG_FLOW_MSG_LIMIT_ERR_EID, + CFE_EVS_ERROR, + "Message Flow MsgLimit invalid (%u) in Table ID (%lu) at table index (%d) ", + (unsigned int)PQ_ConfigTblPtr->MessageFlow[MFlowIdx].MsgLimit, + PQ_ConfigTblPtr->TableID, + MFlowIdx); + + return PQ_CONFIG_TABLE_MSG_FLOW_MSG_LIMIT_ERR; + } + + /* Validate that the Message Flow Priority Queue ID is within range */ + if (PQ_ConfigTblPtr->MessageFlow[MFlowIdx].PQueueID >= valid_PQ_Count) + { + (void) CFE_EVS_SendEvent(PQ_CONFIG_TABLE_MSG_FLOW_PQ_ID_ERR_EID, + CFE_EVS_ERROR, + "Message Flow Priority Queue ID is invalid (%d) for Table ID (%lu) at table index (%d)", + PQ_ConfigTblPtr->MessageFlow[MFlowIdx].PQueueID, + PQ_ConfigTblPtr->TableID, + MFlowIdx); + + return PQ_CONFIG_TABLE_MSG_FLOW_PQ_ID_ERR; + + } + } + } + + /* Check to see if no message flows found. + * Finding no message flows does not indicate a problem, + * but send an event to alert the user that there are no + * Message Flows. + */ + if (PQ_MAX_MESSAGE_FLOWS == unused_MF_Count) + { + (void) CFE_EVS_SendEvent(PQ_CONFIG_TABLE_NO_MSG_FLOW_INF_EID, + CFE_EVS_INFORMATION, + "INFO: No Message Flow entries in the config table, Table Id (%lu)", + PQ_ConfigTblPtr->TableID); + } + + return (status); +} + + +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ +/* */ +/* Process New Config Table */ +/* */ +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ +int32 PQ_ProcessNewConfigTbl(PQ_ChannelData_t* channel) +{ + int32 status = CFE_SUCCESS; + + /* Build up the new configuration. */ + status = PQ_MessageFlow_Buildup(channel); + if (status != CFE_SUCCESS) + { + /* If this function fails, no message flows were created. + * No sense in continuing with this channel. + */ + return status; + } + + status = PQ_PriorityQueue_BuildupAll(channel); + + return status; +} + + +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ +/* */ +/* Manage all tables */ +/* */ +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ +void PQ_ManageAllAppTables(void) +{ + uint32 i; + + for (i = 0; i < PQ_MAX_CHANNELS; ++i) + { + PQ_ManageChannelTables(FALSE, i); + } +} + + +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ +/* */ +/* Manage all tables */ +/* */ +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ +void PQ_ManageChannelTables(osalbool initialManage, uint16 ChannelID) +{ + int32 status = CFE_SUCCESS; + + osalbool dequeueStatus = TRUE; + + /* T=call CFE_TBL_Manage() on the config table, since CFE_TBL_GetStatus() might indicate + * there is no need. TRUE would only be expected when a table is initialized */ + osalbool tableNeedsManaged; + + /* Override if this is the first time through to force a config table update. */ + tableNeedsManaged = initialManage; + + PQ_Channel_LockByIndex(ChannelID); + + if (PQ_AppData.ChannelData[ChannelID].State != PQ_CHANNEL_OPENED) { + PQ_Channel_UnlockByIndex(ChannelID); + return; + } + + /* Always manage the dump table for this channel */ + (void) CFE_TBL_Manage(PQ_AppData.ChannelData[ChannelID].DumpTblHdl); + + status = CFE_TBL_GetStatus(PQ_AppData.ChannelData[ChannelID].ConfigTblHdl); + if ((status & CFE_SEVERITY_BITMASK) == CFE_SEVERITY_ERROR) + { + (void) CFE_EVS_SendEvent(PQ_CONFIG_TABLE_ERR_EID, + CFE_EVS_ERROR, + "Channel %u config table handle failure! (0x%08X)", + ChannelID, + (unsigned int)status); + + /* Null the table pointer, because we don't have confidence in the handle + * and the pointer might be to an invalid table address. + * Given this error the pointer MIGHT be set by CFE_TBL_GetAddress(), below, + * but perhaps not. */ + PQ_AppData.ChannelData[ChannelID].ConfigTblPtr = 0; + CFE_TBL_ReleaseAddress(PQ_AppData.ChannelData[ChannelID].ConfigTblHdl); + + /* let's attempt Manage() below, in case we can get a valid table back */ + tableNeedsManaged = TRUE; + } + else if (CFE_TBL_INFO_UPDATE_PENDING == status) + { + /* Teardown message flows and PQueues*/ + (void) PQ_MessageFlow_TeardownAll(&PQ_AppData.ChannelData[ChannelID]); + (void) PQ_PriorityQueue_TeardownAll(&PQ_AppData.ChannelData[ChannelID]); + + /* Clear remaining messages from SB data pipe*/ + dequeueStatus = PQ_Channel_SBPipe_Dequeue_All(ChannelID); + if (FALSE == dequeueStatus) + { + (void) CFE_EVS_SendEvent(PQ_CONFIG_TABLE_ERR_EID, + CFE_EVS_ERROR, + "Failed to clear SB data pipe for channel %u, (0x%08X)", + ChannelID, + (unsigned int)status); + } + + /* Now null the table pointer, because it is going to be updated. Also + * so that if something goes wrong it won't be set to an invalid address. + * It will be set by CFE_TBL_GetAddress(), below. */ + PQ_AppData.ChannelData[ChannelID].ConfigTblPtr = 0; + CFE_TBL_ReleaseAddress(PQ_AppData.ChannelData[ChannelID].ConfigTblHdl); + tableNeedsManaged = TRUE; + } + else if (CFE_TBL_INFO_VALIDATION_PENDING == status) + { + tableNeedsManaged = TRUE; + } + + if (tableNeedsManaged) + { + /* Manage the config table */ + status = CFE_TBL_Manage(PQ_AppData.ChannelData[ChannelID].ConfigTblHdl); + if ((status != CFE_SUCCESS) && (status != CFE_TBL_INFO_UPDATED)) + { + (void) CFE_EVS_SendEvent(PQ_CONFIG_MANAGE_ERR_EID, + CFE_EVS_ERROR, + "Failed to manage Config table for channel %u, (0x%08X)", + ChannelID, + (unsigned int)status); + } + else + { + /* + ** Get a pointer to the table + */ + status = CFE_TBL_GetAddress( + (void *) &PQ_AppData.ChannelData[ChannelID].ConfigTblPtr, + PQ_AppData.ChannelData[ChannelID].ConfigTblHdl); + if (CFE_TBL_INFO_UPDATED == status) + { + status = PQ_ProcessNewConfigTbl(&PQ_AppData.ChannelData[ChannelID]); + if (status != CFE_SUCCESS) + { + (void) CFE_EVS_SendEvent(PQ_CONFIG_PROCESS_CONFIG_TBL_ERR_EID, + CFE_EVS_ERROR, + "Process New Config Table Failed for channel %u, (0x%08X)", + ChannelID, + (unsigned int)status); + } + } + else if (status != CFE_SUCCESS) + { + (void) CFE_EVS_SendEvent(PQ_CONFIG_ADDR_ERR_EID, + CFE_EVS_ERROR, + "Failed to get Config table's address for channel %u, (0x%08X)", + ChannelID, + (unsigned int)status); + } + } + } + + PQ_Channel_UnlockByIndex(ChannelID); +} + + + +/************************/ +/* End of File Comment */ +/************************/ + diff --git a/apps/pq_lib/fsw/src/pq_output_queue.c b/apps/pq_lib/fsw/src/pq_output_queue.c index 41948f179..b35ef889a 100644 --- a/apps/pq_lib/fsw/src/pq_output_queue.c +++ b/apps/pq_lib/fsw/src/pq_output_queue.c @@ -127,7 +127,7 @@ int32 PQ_OutputQueue_Teardown(PQ_ChannelData_t *channel) } } - status = PQ_OutputChannel_CustomTeardown(channel->channelIdx); + //status = PQ_OutputChannel_CustomTeardown(channel->channelIdx); return status; } diff --git a/apps/pq_lib/fsw/src/pq_scheduler.c b/apps/pq_lib/fsw/src/pq_scheduler.c new file mode 100644 index 000000000..4022df0a6 --- /dev/null +++ b/apps/pq_lib/fsw/src/pq_scheduler.c @@ -0,0 +1,93 @@ +/**************************************************************************** +* +* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions +* are met: +* +* 1. Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* 2. Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in +* the documentation and/or other materials provided with the +* distribution. +* 3. Neither the name Windhover Labs nor the names of its +* contributors may be used to endorse or promote products derived +* from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS +* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED +* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +* POSSIBILITY OF SUCH DAMAGE. +* +*****************************************************************************/ + +#include "pq_structs.h" +#include "pq_scheduler.h" +#include "pq_output_queue.h" + + +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ +/* */ +/* Run the Scheduler algorithm */ +/* */ +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ +void PQ_Scheduler_Run(PQ_ChannelData_t *channel) +{ + uint32 i; + PQ_PriorityQueue_t *pqueue = NULL; + PQ_OutputQueue_t *oqueue = NULL; + int32 status = 0; + void *buffer = NULL; + uint32 nBytesCopied = 0; + + oqueue = &channel->OutputQueue; + + if (NULL == channel->ConfigTblPtr) + { + /* If there is no table data we can't access a priority queue. */ + return; + } + + for (i = 0; i < PQ_MAX_PRIORITY_QUEUES; ++i) + { + status = OS_SUCCESS; + pqueue = &channel->ConfigTblPtr->PriorityQueue[i]; + + if (pqueue->State != PQ_PQUEUE_UNUSED) + { + if (channel->DumpTbl.PriorityQueue[i].OSALQueueID != OS_MAX_QUEUES) + { + while ((OS_SUCCESS == status) && (oqueue->CurrentlyQueuedCnt < PQ_OUTPUT_QUEUE_DEPTH)) + { + status = OS_QueueGet( + channel->DumpTbl.PriorityQueue[i].OSALQueueID, + &buffer, sizeof(buffer), &nBytesCopied, OS_CHECK); + + if (OS_SUCCESS == status) + { + channel->DumpTbl.PriorityQueue[i].CurrentlyQueuedCnt--; + status = PQ_OutputQueue_QueueMsg(channel, buffer); + if (CFE_SUCCESS == status) + { + oqueue->CurrentlyQueuedCnt++; + if (oqueue->HighwaterMark < oqueue->CurrentlyQueuedCnt) + { + oqueue->HighwaterMark = oqueue->CurrentlyQueuedCnt; + } + } + } + } + } + } + } +} From cb70be1dbe25ae369addc0ba7fe5e98407f91f55 Mon Sep 17 00:00:00 2001 From: cnalley Date: Wed, 3 Feb 2021 23:43:08 +0000 Subject: [PATCH 031/370] Update classifier run with a SB message ptr input. --- apps/pq_lib/fsw/public_inc/pq_classifier.h | 9 +- apps/pq_lib/fsw/src/pq_classifier.c | 151 +++++++++------------ 2 files changed, 72 insertions(+), 88 deletions(-) diff --git a/apps/pq_lib/fsw/public_inc/pq_classifier.h b/apps/pq_lib/fsw/public_inc/pq_classifier.h index 77c940cc7..3aeb8491d 100644 --- a/apps/pq_lib/fsw/public_inc/pq_classifier.h +++ b/apps/pq_lib/fsw/public_inc/pq_classifier.h @@ -71,10 +71,13 @@ ** that the call will never contain a null pointer, therefore ** the null pointer condition is not checked. ** -** \param [in] channel A #PQ_ChannelData_t pointer that -** references the channel data structure +** \param [in] channel A #PQ_ChannelData_t pointer that +** references the channel data structure +** +** \param [in,out] DataMsgPtr A #CFE_SB_MsgPtr_t pointer of +** the message to classify ** *************************************************************************/ -void PQ_Classifier_Run(PQ_ChannelData_t *channel); +void PQ_Classifier_Run(PQ_ChannelData_t *channel, CFE_SB_MsgPtr_t DataMsgPtr); #endif diff --git a/apps/pq_lib/fsw/src/pq_classifier.c b/apps/pq_lib/fsw/src/pq_classifier.c index 94948ef43..a8ae446c1 100644 --- a/apps/pq_lib/fsw/src/pq_classifier.c +++ b/apps/pq_lib/fsw/src/pq_classifier.c @@ -43,11 +43,9 @@ /* Run the Classifier algorithm */ /* */ /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ -void PQ_Classifier_Run(PQ_ChannelData_t *channel) +void PQ_Classifier_Run(PQ_ChannelData_t *channel, CFE_SB_MsgPtr_t DataMsgPtr) { int32 status = CFE_SUCCESS; - CFE_SB_MsgPtr_t DataMsgPtr = NULL; - uint32 ii; PQ_PriorityQueue_t *pqueue = NULL; PQ_MessageFlow_t *msgFlow = NULL; uint32 msgFlowIndex = 0; @@ -55,108 +53,91 @@ void PQ_Classifier_Run(PQ_ChannelData_t *channel) CFE_SB_MsgId_t DataMsgID; uint32 totalMsgLength = 0; - /* Process telemetry messages till the pipe is empty, or until we hit the - * maximum number of messages we want to process in this frame. */ - for (ii = 0; ii < PQ_MAX_MSGS_OUT_PER_FRAME; ++ii) + if (DataMsgPtr != NULL) { - status = CFE_SB_RcvMsg(&DataMsgPtr, channel->DataPipeId, CFE_SB_POLL); + DataMsgID = CFE_SB_GetMsgId(DataMsgPtr); - if (status != CFE_SUCCESS) + totalMsgLength = CFE_SB_GetTotalMsgLength(DataMsgPtr); + if (totalMsgLength > PQ_MAX_MSG_LENGTH) { - if (status != CFE_SB_NO_MESSAGE) - { - (void) CFE_EVS_SendEvent(PQ_PIPE_READ_ERR_EID, - CFE_EVS_ERROR, - "Data pipe read error (0x%08X) on channel %d", - (unsigned int)status, - (unsigned int)channel->channelIdx); - } - return; + (void) CFE_EVS_SendEvent(PQ_TLM_MSG_LEN_ERR_EID, CFE_EVS_ERROR, + "Message too long (size = %lu > max = %d) for msgId = (0x%04X) on channel (%u)", + totalMsgLength, + PQ_MAX_MSG_LENGTH, + (unsigned short)DataMsgID, + (unsigned short)channel->channelIdx); + (void) OS_MutSemTake(PQ_AppData.MutexID); + PQ_AppData.HkTlm.usTotalMsgDropped++; + (void) OS_MutSemGive(PQ_AppData.MutexID); + + channel->DropMsgCount++; + goto end_of_function; + } + + /* Get the first Message Flow object. If this returns null, the + * Message ID is not in the table at all so we shouldn't have + * received this message. Raise an event. + */ + msgFlow = PQ_MessageFlow_GetObject(channel, DataMsgID, &msgFlowIndex); + if (NULL == msgFlow) + { + (void) CFE_EVS_SendEvent(PQ_MF_MSG_ID_ERR_EID, + CFE_EVS_ERROR, + "Classifier Recvd invalid msgId (0x%04X) or message flow was removed on channel (%u)", + (unsigned short)DataMsgID, + (unsigned short)channel->channelIdx); + + (void) OS_MutSemTake(PQ_AppData.MutexID); + PQ_AppData.HkTlm.usTotalMsgDropped++; + (void) OS_MutSemGive(PQ_AppData.MutexID); + + channel->DropMsgCount++; + goto end_of_function; } - if (DataMsgPtr != NULL) + /* Get the Priority Queue assigned to this Message Flow. */ + pqueue = PQ_MessageFlow_GetPQueue(channel, msgFlow, &pQueueIndex); + if (pqueue != NULL) { - DataMsgID = CFE_SB_GetMsgId(DataMsgPtr); + /* Queue the message. The else portion will handle all cases where the message + * was not queued for the following reasons: configuration table pointer was not + * available, queue is full, or memory full error. + */ + status = PQ_PriorityQueue_QueueMsg(channel, DataMsgPtr, pQueueIndex); - totalMsgLength = CFE_SB_GetTotalMsgLength(DataMsgPtr); - if (totalMsgLength > PQ_MAX_MSG_LENGTH) + if (CFE_SUCCESS == status) { - (void) CFE_EVS_SendEvent(PQ_TLM_MSG_LEN_ERR_EID, CFE_EVS_ERROR, - "Message too long (size = %lu > max = %d) for msgId = (0x%04X) on channel (%u)", - totalMsgLength, - PQ_MAX_MSG_LENGTH, - (unsigned short)DataMsgID, - (unsigned short)channel->channelIdx); - (void) OS_MutSemTake(PQ_AppData.MutexID); - PQ_AppData.HkTlm.usTotalMsgDropped++; - (void) OS_MutSemGive(PQ_AppData.MutexID); + /* The message was queued. Increment counters. */ + channel->DumpTbl.MessageFlow[msgFlowIndex].QueuedMsgCnt++; - channel->DropMsgCount++; - continue; + channel->QueuedMsgCount++; } - - /* Get the first Message Flow object. If this returns null, the - * Message ID is not in the table at all so we shouldn't have - * received this message. Raise an event. - */ - msgFlow = PQ_MessageFlow_GetObject(channel, DataMsgID, &msgFlowIndex); - if (NULL == msgFlow) + /* The call to PQ_PriorityQueue_QueueMsg may generate the following errors: + * PQ_PRIORITY_QUEUE_FULL_ERR (OS_QUEUE_FULL), PQ_MEMORY_FULL_ERR, CFE_ES_ERR_MEM_HANDLE, + * OS_ERR_INVALID_ID, OS_INVALID_POINTER, OS_ERROR are all handled by this else clause */ + else { - (void) CFE_EVS_SendEvent(PQ_MF_MSG_ID_ERR_EID, - CFE_EVS_ERROR, - "Classifier Recvd invalid msgId (0x%04X) or message flow was removed on channel (%u)", - (unsigned short)DataMsgID, - (unsigned short)channel->channelIdx); + /* Queue is full. Increment counters and drop the message. */ + channel->DumpTbl.MessageFlow[msgFlowIndex].DroppedMsgCnt++; (void) OS_MutSemTake(PQ_AppData.MutexID); PQ_AppData.HkTlm.usTotalMsgDropped++; (void) OS_MutSemGive(PQ_AppData.MutexID); channel->DropMsgCount++; - continue; - } - - /* Get the Priority Queue assigned to this Message Flow. */ - pqueue = PQ_MessageFlow_GetPQueue(channel, msgFlow, &pQueueIndex); - if (pqueue != NULL) - { - /* Queue the message. The else portion will handle all cases where the message - * was not queued for the following reasons: configuration table pointer was not - * available, queue is full, or memory full error. - */ - status = PQ_PriorityQueue_QueueMsg(channel, DataMsgPtr, pQueueIndex); - - if (CFE_SUCCESS == status) - { - /* The message was queued. Increment counters. */ - channel->DumpTbl.MessageFlow[msgFlowIndex].QueuedMsgCnt++; - - channel->QueuedMsgCount++; - } - /* The call to PQ_PriorityQueue_QueueMsg may generate the following errors: - * PQ_PRIORITY_QUEUE_FULL_ERR (OS_QUEUE_FULL), PQ_MEMORY_FULL_ERR, CFE_ES_ERR_MEM_HANDLE, - * OS_ERR_INVALID_ID, OS_INVALID_POINTER, OS_ERROR are all handled by this else clause */ - else - { - /* Queue is full. Increment counters and drop the message. */ - channel->DumpTbl.MessageFlow[msgFlowIndex].DroppedMsgCnt++; - - (void) OS_MutSemTake(PQ_AppData.MutexID); - PQ_AppData.HkTlm.usTotalMsgDropped++; - (void) OS_MutSemGive(PQ_AppData.MutexID); - channel->DropMsgCount++; - - (void) CFE_EVS_SendEvent(PQ_MSG_DROP_FROM_FLOW_DBG_EID, - CFE_EVS_DEBUG, - "PQ full (PQ %u, channel %u). Error code (%d) Dropped message 0x%04x", - (unsigned int)pQueueIndex, - (unsigned int)channel->channelIdx, - (int)status, - (unsigned int)DataMsgID); - } + (void) CFE_EVS_SendEvent(PQ_MSG_DROP_FROM_FLOW_DBG_EID, + CFE_EVS_DEBUG, + "PQ full (PQ %u, channel %u). Error code (%d) Dropped message 0x%04x", + (unsigned int)pQueueIndex, + (unsigned int)channel->channelIdx, + (int)status, + (unsigned int)DataMsgID); } } } + +end_of_function: + return; } From 62f5f5ca953a93def0686052ec8dc2be496c4a69 Mon Sep 17 00:00:00 2001 From: cnalley Date: Wed, 3 Feb 2021 23:47:57 +0000 Subject: [PATCH 032/370] Start removing functions not needed. --- apps/pq_lib/fsw/public_inc/pq_channel.h | 2 +- apps/pq_lib/fsw/public_inc/pq_lib.h | 0 apps/pq_lib/fsw/src/pq_channel.c | 135 ++++++++++++------------ apps/pq_lib/fsw/src/pq_config_utils.c | 18 ++-- apps/pq_lib/fsw/src/pq_lib.c | 49 +++++++++ 5 files changed, 127 insertions(+), 77 deletions(-) create mode 100644 apps/pq_lib/fsw/public_inc/pq_lib.h diff --git a/apps/pq_lib/fsw/public_inc/pq_channel.h b/apps/pq_lib/fsw/public_inc/pq_channel.h index 26161d18d..8e26f21ab 100644 --- a/apps/pq_lib/fsw/public_inc/pq_channel.h +++ b/apps/pq_lib/fsw/public_inc/pq_channel.h @@ -262,7 +262,7 @@ osalbool PQ_Channel_Flush(uint16 index); ** CFE_SUCCESS \endcode ** *************************************************************************/ -osalbool PQ_Channel_SBPipe_Dequeue_All(uint16 index); +//osalbool PQ_Channel_SBPipe_Dequeue_All(uint16 index); #endif diff --git a/apps/pq_lib/fsw/public_inc/pq_lib.h b/apps/pq_lib/fsw/public_inc/pq_lib.h new file mode 100644 index 000000000..e69de29bb diff --git a/apps/pq_lib/fsw/src/pq_channel.c b/apps/pq_lib/fsw/src/pq_channel.c index aaae4523c..99367d075 100644 --- a/apps/pq_lib/fsw/src/pq_channel.c +++ b/apps/pq_lib/fsw/src/pq_channel.c @@ -209,31 +209,32 @@ int32 PQ_Channel_OpenChannel(const uint32 index, const char *ChannelName, return status; } - /* Init data pipe and subscribe to messages on the data pipe */ - status = CFE_SB_CreatePipe(&channel->DataPipeId, - PQ_DATA_PIPE_DEPTH, - pipeName); - if (status != CFE_SUCCESS) - { - /* This is a critical error for this channel. No sense in continuing. Destroy - * the counting semaphore and call the Output queue teardown function before - * returning the error back to the caller. - */ - (void) OS_CountSemDelete(channel->CfCntSemId); - (void) PQ_OutputQueue_Teardown(channel); - - (void) CFE_EVS_SendEvent(PQ_INIT_DATAPIPE_ERR_EID, - CFE_EVS_ERROR, - "Failed to create channel (%u) '%s' pipe (0x%08X)", - (unsigned int)index, - ChannelName, - (unsigned int)status); - - channel->State = PQ_CHANNEL_CLOSED; - - PQ_Channel_UnlockByRef(channel); - return status; - } + /* TODO commented out. Messages passed in directly no pipes needed. */ + ///* Init data pipe and subscribe to messages on the data pipe */ + //status = CFE_SB_CreatePipe(&channel->DataPipeId, + //PQ_DATA_PIPE_DEPTH, + //pipeName); + //if (status != CFE_SUCCESS) + //{ + ///* This is a critical error for this channel. No sense in continuing. Destroy + //* the counting semaphore and call the Output queue teardown function before + //* returning the error back to the caller. + //*/ + //(void) OS_CountSemDelete(channel->CfCntSemId); + //(void) PQ_OutputQueue_Teardown(channel); + + //(void) CFE_EVS_SendEvent(PQ_INIT_DATAPIPE_ERR_EID, + //CFE_EVS_ERROR, + //"Failed to create channel (%u) '%s' pipe (0x%08X)", + //(unsigned int)index, + //ChannelName, + //(unsigned int)status); + + //channel->State = PQ_CHANNEL_CLOSED; + + //PQ_Channel_UnlockByRef(channel); + //return status; + //} /* Set channel state: required state to complete table initialization */ channel->State = PQ_CHANNEL_OPENED; @@ -565,45 +566,45 @@ uint8 PQ_Channel_State(uint16 index) } -osalbool PQ_Channel_SBPipe_Dequeue_All(uint16 index) -{ - int32 status = CFE_SUCCESS; - int32 i; - CFE_SB_MsgPtr_t DataMsgPtr = NULL; - PQ_ChannelData_t *channel = NULL; - - if (index >= PQ_MAX_CHANNELS) - { - (void) CFE_EVS_SendEvent(PQ_FLUSH_INVALID_CHIDX_ERR_EID, CFE_EVS_ERROR, - "ChannelID %u out of range in SB pipe dequeue all.", (unsigned int)index); - return FALSE; - } - - channel = &PQ_AppData.ChannelData[index]; - - /* Dequeue until empty */ - for (i = 0; i < PQ_DATA_PIPE_DEPTH; ++i) - { - status = CFE_SB_RcvMsg(&DataMsgPtr, channel->DataPipeId, CFE_SB_POLL); - if (CFE_SUCCESS == status) - { - continue; - } - else if (CFE_SB_NO_MESSAGE == status) - { - /* Break early if empty */ - break; - } - else - { - (void) CFE_EVS_SendEvent(PQ_PIPE_READ_ERR_EID, - CFE_EVS_ERROR, - "Data pipe read error on SBPipe dequeue all (0x%08X) on channel %d", - (unsigned int)status, - index); - return FALSE; - } - } - - return TRUE; -} +//osalbool PQ_Channel_SBPipe_Dequeue_All(uint16 index) +//{ + //int32 status = CFE_SUCCESS; + //int32 i; + //CFE_SB_MsgPtr_t DataMsgPtr = NULL; + //PQ_ChannelData_t *channel = NULL; + + //if (index >= PQ_MAX_CHANNELS) + //{ + //(void) CFE_EVS_SendEvent(PQ_FLUSH_INVALID_CHIDX_ERR_EID, CFE_EVS_ERROR, + //"ChannelID %u out of range in SB pipe dequeue all.", (unsigned int)index); + //return FALSE; + //} + + //channel = &PQ_AppData.ChannelData[index]; + + ///* Dequeue until empty */ + //for (i = 0; i < PQ_DATA_PIPE_DEPTH; ++i) + //{ + //status = CFE_SB_RcvMsg(&DataMsgPtr, channel->DataPipeId, CFE_SB_POLL); + //if (CFE_SUCCESS == status) + //{ + //continue; + //} + //else if (CFE_SB_NO_MESSAGE == status) + //{ + ///* Break early if empty */ + //break; + //} + //else + //{ + //(void) CFE_EVS_SendEvent(PQ_PIPE_READ_ERR_EID, + //CFE_EVS_ERROR, + //"Data pipe read error on SBPipe dequeue all (0x%08X) on channel %d", + //(unsigned int)status, + //index); + //return FALSE; + //} + //} + + //return TRUE; +//} diff --git a/apps/pq_lib/fsw/src/pq_config_utils.c b/apps/pq_lib/fsw/src/pq_config_utils.c index 54cdef87e..827de66fa 100644 --- a/apps/pq_lib/fsw/src/pq_config_utils.c +++ b/apps/pq_lib/fsw/src/pq_config_utils.c @@ -497,15 +497,15 @@ void PQ_ManageChannelTables(osalbool initialManage, uint16 ChannelID) (void) PQ_PriorityQueue_TeardownAll(&PQ_AppData.ChannelData[ChannelID]); /* Clear remaining messages from SB data pipe*/ - dequeueStatus = PQ_Channel_SBPipe_Dequeue_All(ChannelID); - if (FALSE == dequeueStatus) - { - (void) CFE_EVS_SendEvent(PQ_CONFIG_TABLE_ERR_EID, - CFE_EVS_ERROR, - "Failed to clear SB data pipe for channel %u, (0x%08X)", - ChannelID, - (unsigned int)status); - } + //dequeueStatus = PQ_Channel_SBPipe_Dequeue_All(ChannelID); + //if (FALSE == dequeueStatus) + //{ + //(void) CFE_EVS_SendEvent(PQ_CONFIG_TABLE_ERR_EID, + //CFE_EVS_ERROR, + //"Failed to clear SB data pipe for channel %u, (0x%08X)", + //ChannelID, + //(unsigned int)status); + //} /* Now null the table pointer, because it is going to be updated. Also * so that if something goes wrong it won't be set to an invalid address. diff --git a/apps/pq_lib/fsw/src/pq_lib.c b/apps/pq_lib/fsw/src/pq_lib.c index c33a85ab2..4e623bab4 100644 --- a/apps/pq_lib/fsw/src/pq_lib.c +++ b/apps/pq_lib/fsw/src/pq_lib.c @@ -1,5 +1,6 @@ #include "pq_structs.h" #include "cfe.h" +#include "pq_events.h" PQ_AppData_t PQ_AppData; @@ -12,3 +13,51 @@ int32 PQ_LibInit(void) return OS_SUCCESS; }/* End PQ_LibInit */ + + +int32 PQ_InitData(void) +{ + int32 status = CFE_SUCCESS; + + status = OS_MutSemCreate(&PQ_AppData.MutexID, "PQ_APP", 0); + if (status != OS_SUCCESS) + { + CFE_EVS_SendEvent(PQ_CREATE_APPDATA_MUTEX_ERR_EID, + CFE_EVS_ERROR, + "Init Data: Failed to create PQ_AppData mutex: 0x%08lX", + (unsigned long)status); + + return status; + } + + PQ_AppData.HkTlm.ChannelMaxMem = PQ_NUM_BYTES_IN_MEM_POOL; + + return CFE_SUCCESS; +} + + +int32 PQ_InitTelem(CFE_SB_MsgId_t MsgID) +{ + /* Init housekeeping packet */ + CFE_SB_InitMsg(&PQ_AppData.HkTlm, + MsgID, sizeof(PQ_AppData.HkTlm), TRUE); + + return CFE_SUCCESS; +} + + +int32 PQ_AppInit(void) +{ + PQ_Channel_InitAll(); + + return CFE_SUCCESS; +} + + +int32 PQ_AppCleanup(void) +{ + PQ_Channel_CleanupAll(); + OS_MutSemDelete(PQ_AppData.MutexID); + + return CFE_SUCCESS; +} From 94bee392033261ce85873e51fc45f465d8c45f04 Mon Sep 17 00:00:00 2001 From: cnalley Date: Wed, 3 Feb 2021 23:53:29 +0000 Subject: [PATCH 033/370] Add PQ lib to startup script. --- config/obc/sitl/target/cfe_es_startup.scr | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/config/obc/sitl/target/cfe_es_startup.scr b/config/obc/sitl/target/cfe_es_startup.scr index dfdbe6076..c8a920894 100644 --- a/config/obc/sitl/target/cfe_es_startup.scr +++ b/config/obc/sitl/target/cfe_es_startup.scr @@ -1,6 +1,7 @@ -CFE_LIB, /cf/apps/CFS_LIB.so, CFS_LibInit, CFS_LIB, 0, 0, 0x0, 0, 2; -CFE_LIB, /cf/apps/PRMLIB.so, PRMLIB_LibInit, PRMLIB, 0, 0, 0x0, 0, 2; -CFE_LIB, /cf/apps/PX4LIB.so, PX4LIB_LibInit, PX4LIB, 0, 0, 0x0, 0, 2; +CFE_LIB, /cf/apps/CFS_LIB.so, CFS_LibInit, CFS_LIB, 0, 0, 0x0, 0, 2; +CFE_LIB, /cf/apps/PRMLIB.so, PRMLIB_LibInit, PRMLIB, 0, 0, 0x0, 0, 2; +CFE_LIB, /cf/apps/PX4LIB.so, PX4LIB_LibInit, PX4LIB, 0, 0, 0x0, 0, 2; +CFE_LIB, /cf/apps/PQ_LIB.so, PQ_LibInit, PQ_LIB, 0, 0, 0x0, 0, 2; CFE_APP, /cf/apps/CI.so, CI_AppMain, CI, 115, 327680, 0x0, 0, 2; CFE_APP, /cf/apps/TO.so, TO_AppMain, TO, 124, 327680, 0x0, 0, 2; CFE_APP, /cf/apps/CF.so, CF_AppMain, CF, 157, 327680, 0x0, 0, 2; From 7d1b53be98da5d24ccb37b103dc45c7ec1b12beb Mon Sep 17 00:00:00 2001 From: cnalley Date: Wed, 3 Feb 2021 23:54:05 +0000 Subject: [PATCH 034/370] Add pq lib to build. --- config/obc/sitl/target/CMakeLists.txt | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/config/obc/sitl/target/CMakeLists.txt b/config/obc/sitl/target/CMakeLists.txt index fc908ddfc..d49fec2db 100644 --- a/config/obc/sitl/target/CMakeLists.txt +++ b/config/obc/sitl/target/CMakeLists.txt @@ -34,6 +34,11 @@ buildliner_add_app( DEFINITION ${PROJECT_SOURCE_DIR}/apps/px4lib/fsw/for_build ) +buildliner_add_app( + pq_lib + DEFINITION ${PROJECT_SOURCE_DIR}/apps/pq_lib/fsw/for_build +) + buildliner_add_app( prmlib DEFINITION ${PROJECT_SOURCE_DIR}/apps/prmlib/fsw/for_build From 52c4fdc8ff39f36382a535b30ead12c2dad597f4 Mon Sep 17 00:00:00 2001 From: lorenzo-gomez-windhover Date: Thu, 4 Feb 2021 10:37:57 -0600 Subject: [PATCH 035/370] -Updates to EVS and SB Displays -TODO:CFE_SB Macros needs to be fixed --- .../Displays/Core/EVS/AddFilter.opi | 6 +- .../Displays/Core/EVS/SetFilter.opi | 10 +- .../Displays/Core/SB/EnaDisRoutes.opi | 6 +- .../Displays/Core/SB/ViewStatistics.opi | 516 +++++++++--------- 4 files changed, 269 insertions(+), 269 deletions(-) diff --git a/core/base/tools/commander/workspace_template/Displays/Core/EVS/AddFilter.opi b/core/base/tools/commander/workspace_template/Displays/Core/EVS/AddFilter.opi index 798586177..2374af68d 100644 --- a/core/base/tools/commander/workspace_template/Displays/Core/EVS/AddFilter.opi +++ b/core/base/tools/commander/workspace_template/Displays/Core/EVS/AddFilter.opi @@ -42,7 +42,7 @@ importPackage(Packages.org.yamcs.studio.data); appName = VTypeHelper.getString(display.getWidget('AppName').getPropertyValue('pv_value')); eventID = VTypeHelper.getDouble(display.getWidget('EventID').getPropertyValue('pv_value')); -mask = VTypeHelper.getDouble(display.getWidget('Mask').getPropertyValue('pv_value')); +mask = VTypeHelper.getString(display.getWidget('Mask').getPropertyValue('pv_value')); Yamcs.issueCommand('/cfs/cfe_evs/AddAppEventFilter', { 'Payload.AppName': appName, @@ -157,7 +157,7 @@ $(pv_value) - 32 + 34 CF CI @@ -365,7 +365,7 @@ $(pv_value) Mask 0 false - loc://Mask<VDouble> + loc://Mask<VString> 0.0 diff --git a/core/base/tools/commander/workspace_template/Displays/Core/EVS/SetFilter.opi b/core/base/tools/commander/workspace_template/Displays/Core/EVS/SetFilter.opi index 08e8a2ed8..45b20d25c 100644 --- a/core/base/tools/commander/workspace_template/Displays/Core/EVS/SetFilter.opi +++ b/core/base/tools/commander/workspace_template/Displays/Core/EVS/SetFilter.opi @@ -42,7 +42,7 @@ importPackage(Packages.org.yamcs.studio.data); appName = VTypeHelper.getString(display.getWidget('AppName').getPropertyValue('pv_value')); eventID = VTypeHelper.getDouble(display.getWidget('EventID').getPropertyValue('pv_value')); -mask = VTypeHelper.getNumber(display.getWidget('Mask').getPropertyValue('pv_value')); +mask = VTypeHelper.getDouble(display.getWidget('Mask').getPropertyValue('pv_value')); Yamcs.issueCommand('/cfs/cfe_evs/SetAppEventFilter', { 'Payload.AppName': appName, @@ -197,7 +197,7 @@ $(pv_value) - 32 + 34 CF CI @@ -308,7 +308,7 @@ $(pv_value) EventID 0 false - loc://EventID + loc://EventID<VDouble> 0.0 @@ -395,7 +395,7 @@ $(pv_value) - 3 + 0 25 0 false @@ -405,7 +405,7 @@ $(pv_value) Mask 0 false - loc://Mask + loc://Mask<VDouble>(0) 0.0 diff --git a/core/base/tools/commander/workspace_template/Displays/Core/SB/EnaDisRoutes.opi b/core/base/tools/commander/workspace_template/Displays/Core/SB/EnaDisRoutes.opi index e1dec67d6..afef8dbcb 100644 --- a/core/base/tools/commander/workspace_template/Displays/Core/SB/EnaDisRoutes.opi +++ b/core/base/tools/commander/workspace_template/Displays/Core/SB/EnaDisRoutes.opi @@ -44,8 +44,8 @@ var MsgID =VTypeHelper.getNumber(display.getWidget('MsgID').getPropertyValue('pv var PipeID =VTypeHelper.getNumber(display.getWidget('PipeID').getPropertyValue('pv_value')); Yamcs.issueCommand('/cfs/cfe_sb/EnableRoute', { - 'MsgID': MsgID, - 'PipeID': PipeID}); + 'Payload.MsgId': MsgID, + 'Payload.PipeID': PipeID}); ]]> true @@ -168,7 +168,7 @@ $(pv_value) MsgID 0 false - loc://MsgID<VDouble> + loc://MsgID<VString>> 0.0 diff --git a/core/base/tools/commander/workspace_template/Displays/Core/SB/ViewStatistics.opi b/core/base/tools/commander/workspace_template/Displays/Core/SB/ViewStatistics.opi index ec8218c4b..6f676b5e9 100644 --- a/core/base/tools/commander/workspace_template/Displays/Core/SB/ViewStatistics.opi +++ b/core/base/tools/commander/workspace_template/Displays/Core/SB/ViewStatistics.opi @@ -220,7 +220,7 @@ $(pv_value) Text Update_2 0 false - /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.Allowed + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.MaxMsgIdsAllowed 0.0 @@ -428,7 +428,7 @@ $(pv_value) Text Update_6 0 false - /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.StatsMemInUse + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.MemInUse 0.0 @@ -1496,7 +1496,7 @@ $(pv_value) Text Update_15 0 false - /cfs/cfe_sb/PipeDepthStats_0_PipeID + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_0_.PipeId 0.0 @@ -1628,7 +1628,7 @@ $(pv_value) Text Update_16 0 false - /cfs/cfe_sb/PipeDepthStats_0_Depth + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_0_.Depth 0.0 @@ -1758,7 +1758,7 @@ $(pv_value) 20 Check Box - /cfs/cfe_sb/PipeDepthStats_0_InUse + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_0_.InUse @@ -1807,7 +1807,7 @@ $(pv_value) Text Update_17 0 false - /cfs/cfe_sb/PipeDepthStats_0_PeakInUse + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_0_.PeakInUse 0.0 @@ -1899,7 +1899,7 @@ $(pv_value) Text Update_19 0 false - /cfs/cfe_sb/PipeDepthStats_1_PipeID + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_1_.PipeId 0.0 @@ -1991,7 +1991,7 @@ $(pv_value) Text Update_20 0 false - /cfs/cfe_sb/PipeDepthStats_1_Depth + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_1_.Depth 0.0 @@ -2041,7 +2041,7 @@ $(pv_value) 20 Check Box_1 - /cfs/cfe_sb/PipeDepthStats_1_InUse + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_1_.InUse @@ -2090,7 +2090,7 @@ $(pv_value) Text Update_21 0 false - /cfs/cfe_sb/PipeDepthStats_1_PeakInUse + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_1_.InUse 0.0 @@ -2142,7 +2142,7 @@ $(pv_value) Text Update_23 0 false - /cfs/cfe_sb/PipeDepthStats_2_PipeID + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_2_.PipeId 0.0 @@ -2234,7 +2234,7 @@ $(pv_value) Text Update_24 0 false - /cfs/cfe_sb/PipeDepthStats_2_Depth + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_1_.Depth 0.0 @@ -2284,7 +2284,7 @@ $(pv_value) 20 Check Box_2 - /cfs/cfe_sb/PipeDepthStats_2_InUse + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_2_.InUse @@ -2333,7 +2333,7 @@ $(pv_value) Text Update_25 0 false - /cfs/cfe_sb/PipeDepthStats_2_PeakInUse + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_1_.PeakInUse 0.0 @@ -2385,7 +2385,7 @@ $(pv_value) Text Update_27 0 false - /cfs/cfe_sb/PipeDepthStats_3_PipeID + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_3_.PipeId 0.0 @@ -2477,7 +2477,7 @@ $(pv_value) Text Update_28 0 false - /cfs/cfe_sb/PipeDepthStats_3_Depth + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_3_.Depth 0.0 @@ -2527,7 +2527,7 @@ $(pv_value) 20 Check Box_3 - /cfs/cfe_sb/PipeDepthStats_3_InUse + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_3_.PipeId @@ -2576,7 +2576,7 @@ $(pv_value) Text Update_29 0 false - /cfs/cfe_sb/PipeDepthStats_3_PeakInUse + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_1_.PeakInUse 0.0 @@ -2628,7 +2628,7 @@ $(pv_value) Text Update_31 0 false - /cfs/cfe_sb/PipeDepthStats_4_PipeID + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_4_.PipeId 0.0 @@ -2720,7 +2720,7 @@ $(pv_value) Text Update_32 0 false - /cfs/cfe_sb/PipeDepthStats_4_Depth + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_4_.Depth 0.0 @@ -2770,7 +2770,7 @@ $(pv_value) 20 Check Box_4 - /cfs/cfe_sb/PipeDepthStats_4_InUse + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_4_.InUse @@ -2819,7 +2819,7 @@ $(pv_value) Text Update_33 0 false - /cfs/cfe_sb/PipeDepthStats_4_PeakInUse + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_4_.PeakInUse 0.0 @@ -2871,7 +2871,7 @@ $(pv_value) Text Update_35 0 false - /cfs/cfe_sb/PipeDepthStats_5_PipeID + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_5_.PipeId 0.0 @@ -2963,7 +2963,7 @@ $(pv_value) Text Update_36 0 false - /cfs/cfe_sb/PipeDepthStats_5_Depth + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_5_.Depth 0.0 @@ -3013,7 +3013,7 @@ $(pv_value) 20 Check Box_5 - /cfs/cfe_sb/PipeDepthStats_5_InUse + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_5_.InUse @@ -3062,7 +3062,7 @@ $(pv_value) Text Update_37 0 false - /cfs/cfe_sb/PipeDepthStats_5_PeakInUse + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_5_.PeakInUse 0.0 @@ -3114,7 +3114,7 @@ $(pv_value) Text Update_39 0 false - /cfs/cfe_sb/PipeDepthStats_6_PipeID + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_5_.PipeId 0.0 @@ -3206,7 +3206,7 @@ $(pv_value) Text Update_40 0 false - /cfs/cfe_sb/PipeDepthStats_6_Depth + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_5_.Depth 0.0 @@ -3256,7 +3256,7 @@ $(pv_value) 20 Check Box_6 - /cfs/cfe_sb/PipeDepthStats_6_InUse + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_6_.InUse @@ -3305,7 +3305,7 @@ $(pv_value) Text Update_41 0 false - /cfs/cfe_sb/PipeDepthStats_6_PeakInUse + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_5_.PeakInUse 0.0 @@ -3357,7 +3357,7 @@ $(pv_value) Text Update_43 0 false - /cfs/cfe_sb/PipeDepthStats_7_PipeID + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_6_.PipeId 0.0 @@ -3449,7 +3449,7 @@ $(pv_value) Text Update_44 0 false - /cfs/cfe_sb/PipeDepthStats_7_Depth + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_7_.Depth 0.0 @@ -3499,7 +3499,7 @@ $(pv_value) 20 Check Box_7 - /cfs/cfe_sb/PipeDepthStats_7_InUse + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_7_.InUse @@ -3548,7 +3548,7 @@ $(pv_value) Text Update_45 0 false - /cfs/cfe_sb/PipeDepthStats_7_PeakInUse + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_7_.PeakInUse 0.0 @@ -3600,7 +3600,7 @@ $(pv_value) Text Update_47 0 false - /cfs/cfe_sb/PipeDepthStats_8_PipeID + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_8_.PipeId 0.0 @@ -3692,7 +3692,7 @@ $(pv_value) Text Update_48 0 false - /cfs/cfe_sb/PipeDepthStats_8_Depth + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_8_.Depth 0.0 @@ -3742,7 +3742,7 @@ $(pv_value) 20 Check Box_8 - /cfs/cfe_sb/PipeDepthStats_8_InUse + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_8_.InUse @@ -3791,7 +3791,7 @@ $(pv_value) Text Update_49 0 false - /cfs/cfe_sb/PipeDepthStats_8_PeakInUse + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_8_.PeakInUse 0.0 @@ -3843,7 +3843,7 @@ $(pv_value) Text Update_51 0 false - /cfs/cfe_sb/PipeDepthStats_9_PipeID + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_9_.PipeId 0.0 @@ -3935,7 +3935,7 @@ $(pv_value) Text Update_52 0 false - /cfs/cfe_sb/PipeDepthStats_9_Depth + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_9_.Depth 0.0 @@ -3985,7 +3985,7 @@ $(pv_value) 20 Check Box_9 - /cfs/cfe_sb/PipeDepthStats_9_InUse + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_9_.InUse @@ -4034,7 +4034,7 @@ $(pv_value) Text Update_53 0 false - /cfs/cfe_sb/PipeDepthStats_9_PeakInUse + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_9_.PeakInUse 0.0 @@ -4086,7 +4086,7 @@ $(pv_value) Text Update_54 0 false - /cfs/cfe_sb/PipeDepthStats_10_PipeID + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_10_.PipeId 0.0 @@ -4178,7 +4178,7 @@ $(pv_value) Text Update_55 0 false - /cfs/cfe_sb/PipeDepthStats_10_Depth + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_10_.Depth 0.0 @@ -4228,7 +4228,7 @@ $(pv_value) 20 Check Box_10 - /cfs/cfe_sb/PipeDepthStats_10_InUse + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_10_.InUse @@ -4277,7 +4277,7 @@ $(pv_value) Text Update_56 0 false - /cfs/cfe_sb/PipeDepthStats_10_PeakInUse + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_10_.PeakInUse 0.0 @@ -4329,7 +4329,7 @@ $(pv_value) Text Update_57 0 false - /cfs/cfe_sb/PipeDepthStats_11_PipeID + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_11_.PipeId 0.0 @@ -4421,7 +4421,7 @@ $(pv_value) Text Update_58 0 false - /cfs/cfe_sb/PipeDepthStats_11_Depth + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_11_.Depth 0.0 @@ -4471,7 +4471,7 @@ $(pv_value) 20 Check Box_11 - /cfs/cfe_sb/PipeDepthStats_11_InUse + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_11_.InUse @@ -4520,7 +4520,7 @@ $(pv_value) Text Update_59 0 false - /cfs/cfe_sb/PipeDepthStats_11_PeakInUse + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_11_.PeakInUse 0.0 @@ -4572,7 +4572,7 @@ $(pv_value) Text Update_60 0 false - /cfs/cfe_sb/PipeDepthStats_12_PipeID + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_12_.PipeId 0.0 @@ -4664,7 +4664,7 @@ $(pv_value) Text Update_61 0 false - /cfs/cfe_sb/PipeDepthStats_12_Depth + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_12_.Depth 0.0 @@ -4714,7 +4714,7 @@ $(pv_value) 20 Check Box_12 - /cfs/cfe_sb/PipeDepthStats_12_InUse + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_12_.PipeId @@ -4763,7 +4763,7 @@ $(pv_value) Text Update_62 0 false - /cfs/cfe_sb/PipeDepthStats_12_PeakInUse + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_12_.PeakInUse 0.0 @@ -4815,7 +4815,7 @@ $(pv_value) Text Update_63 0 false - /cfs/cfe_sb/PipeDepthStats_13_PipeID + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_13_.PipeId 0.0 @@ -4907,7 +4907,7 @@ $(pv_value) Text Update_64 0 false - /cfs/cfe_sb/PipeDepthStats_13_Depth + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_11_.Depth 0.0 @@ -4957,7 +4957,7 @@ $(pv_value) 20 Check Box_13 - /cfs/cfe_sb/PipeDepthStats_13_InUse + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_13_.InUse @@ -5006,7 +5006,7 @@ $(pv_value) Text Update_65 0 false - /cfs/cfe_sb/PipeDepthStats_13_PeakInUse + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_13_.PeakInUse 0.0 @@ -5058,7 +5058,7 @@ $(pv_value) Text Update_66 0 false - /cfs/cfe_sb/PipeDepthStats_14_PipeID + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_14_.PipeId 0.0 @@ -5150,7 +5150,7 @@ $(pv_value) Text Update_67 0 false - /cfs/cfe_sb/PipeDepthStats_14_Depth + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_14_.Depth 0.0 @@ -5200,7 +5200,7 @@ $(pv_value) 20 Check Box_14 - /cfs/cfe_sb/PipeDepthStats_14_InUse + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_14_.InUse @@ -5249,7 +5249,7 @@ $(pv_value) Text Update_68 0 false - /cfs/cfe_sb/PipeDepthStats_14_PeakInUse + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_14_.PeakInUse 0.0 @@ -5301,7 +5301,7 @@ $(pv_value) Text Update_69 0 false - /cfs/cfe_sb/PipeDepthStats_15_PipeID + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_15_.PipeId 0.0 @@ -5393,7 +5393,7 @@ $(pv_value) Text Update_70 0 false - /cfs/cfe_sb/PipeDepthStats_15_Depth + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_15_.Depth 0.0 @@ -5443,7 +5443,7 @@ $(pv_value) 20 Check Box_15 - /cfs/cfe_sb/PipeDepthStats_15_InUse + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_15_.InUse @@ -5492,7 +5492,7 @@ $(pv_value) Text Update_71 0 false - /cfs/cfe_sb/PipeDepthStats_15_PeakInUse + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_15_.PeakInUse 0.0 @@ -5544,7 +5544,7 @@ $(pv_value) Text Update_72 0 false - /cfs/cfe_sb/PipeDepthStats_16_PipeID + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_16_.PipeId 0.0 @@ -5636,7 +5636,7 @@ $(pv_value) Text Update_73 0 false - /cfs/cfe_sb/PipeDepthStats_16_Depth + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_16_.Depth 0.0 @@ -5686,7 +5686,7 @@ $(pv_value) 20 Check Box_16 - /cfs/cfe_sb/PipeDepthStats_16_InUse + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_16_.InUse @@ -5735,7 +5735,7 @@ $(pv_value) Text Update_74 0 false - /cfs/cfe_sb/PipeDepthStats_16_PeakInUse + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_16_.PeakInUse 0.0 @@ -5787,7 +5787,7 @@ $(pv_value) Text Update_75 0 false - /cfs/cfe_sb/PipeDepthStats_17_PipeID + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_17_.PipeId 0.0 @@ -5879,7 +5879,7 @@ $(pv_value) Text Update_76 0 false - /cfs/cfe_sb/PipeDepthStats_17_Depth + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_17_.Depth 0.0 @@ -5929,7 +5929,7 @@ $(pv_value) 20 Check Box_17 - /cfs/cfe_sb/PipeDepthStats_17_InUse + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_17_.InUse @@ -5978,7 +5978,7 @@ $(pv_value) Text Update_77 0 false - /cfs/cfe_sb/PipeDepthStats_17_PeakInUse + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_17_.PeakInUse 0.0 @@ -6030,7 +6030,7 @@ $(pv_value) Text Update_78 0 false - /cfs/cfe_sb/PipeDepthStats_18_PipeID + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_18_.PipeId 0.0 @@ -6122,7 +6122,7 @@ $(pv_value) Text Update_79 0 false - /cfs/cfe_sb/PipeDepthStats_18_Depth + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_18_.Depth 0.0 @@ -6172,7 +6172,7 @@ $(pv_value) 20 Check Box_18 - /cfs/cfe_sb/PipeDepthStats_18_InUse + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_18_.InUse @@ -6221,7 +6221,7 @@ $(pv_value) Text Update_80 0 false - /cfs/cfe_sb/PipeDepthStats_18_PeakInUse + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_18_.PeakInUse 0.0 @@ -6273,7 +6273,7 @@ $(pv_value) Text Update_81 0 false - /cfs/cfe_sb/PipeDepthStats_19_PipeID + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_19_.PipeId 0.0 @@ -6365,7 +6365,7 @@ $(pv_value) Text Update_82 0 false - /cfs/cfe_sb/PipeDepthStats_19_Depth + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_19_.Depth 0.0 @@ -6415,7 +6415,7 @@ $(pv_value) 20 Check Box_19 - /cfs/cfe_sb/PipeDepthStats_19_InUse + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_19_.InUse @@ -6464,7 +6464,7 @@ $(pv_value) Text Update_83 0 false - /cfs/cfe_sb/PipeDepthStats_19_PeakInUse + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_19_.PeakInUse 0.0 @@ -6516,7 +6516,7 @@ $(pv_value) Text Update_84 0 false - /cfs/cfe_sb/PipeDepthStats_20_PipeID + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_20_.PipeId 0.0 @@ -6608,7 +6608,7 @@ $(pv_value) Text Update_85 0 false - /cfs/cfe_sb/PipeDepthStats_20_Depth + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_20_.Depth 0.0 @@ -6658,7 +6658,7 @@ $(pv_value) 20 Check Box_20 - /cfs/cfe_sb/PipeDepthStats_20_InUse + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_20_.InUse @@ -6707,7 +6707,7 @@ $(pv_value) Text Update_86 0 false - /cfs/cfe_sb/PipeDepthStats_20_PeakInUse + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_11_.PeakInUse 0.0 @@ -6759,7 +6759,7 @@ $(pv_value) Text Update_87 0 false - /cfs/cfe_sb/PipeDepthStats_21_PipeID + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_21_.PipeId 0.0 @@ -6851,7 +6851,7 @@ $(pv_value) Text Update_88 0 false - /cfs/cfe_sb/PipeDepthStats_21_Depth + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_11_.Depth 0.0 @@ -6901,7 +6901,7 @@ $(pv_value) 20 Check Box_21 - /cfs/cfe_sb/PipeDepthStats_21_InUse + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_11_.PipeId @@ -6950,7 +6950,7 @@ $(pv_value) Text Update_89 0 false - /cfs/cfe_sb/PipeDepthStats_21_PeakInUse + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_11_.PeakInUse 0.0 @@ -7002,7 +7002,7 @@ $(pv_value) Text Update_90 0 false - /cfs/cfe_sb/PipeDepthStats_22_PipeID + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_22_.PipeId 0.0 @@ -7094,7 +7094,7 @@ $(pv_value) Text Update_91 0 false - /cfs/cfe_sb/PipeDepthStats_22_Depth + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_22_.Depth 0.0 @@ -7144,7 +7144,7 @@ $(pv_value) 20 Check Box_22 - /cfs/cfe_sb/PipeDepthStats_22_InUse + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_22_.InUse @@ -7193,7 +7193,7 @@ $(pv_value) Text Update_92 0 false - /cfs/cfe_sb/PipeDepthStats_22_PeakInUse + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_22_.PeakInUse 0.0 @@ -7245,7 +7245,7 @@ $(pv_value) Text Update_93 0 false - /cfs/cfe_sb/PipeDepthStats_23_PipeID + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_23_.PipeId 0.0 @@ -7337,7 +7337,7 @@ $(pv_value) Text Update_94 0 false - /cfs/cfe_sb/PipeDepthStats_23_Depth + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_23_.Depth 0.0 @@ -7387,7 +7387,7 @@ $(pv_value) 20 Check Box_23 - /cfs/cfe_sb/PipeDepthStats_23_InUse + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_23_.InUse @@ -7436,7 +7436,7 @@ $(pv_value) Text Update_95 0 false - /cfs/cfe_sb/PipeDepthStats_23_PeakInUse + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_23_.PeakInUse 0.0 @@ -7488,7 +7488,7 @@ $(pv_value) Text Update_96 0 false - /cfs/cfe_sb/PipeDepthStats_24_PipeID + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_24_.PipeId 0.0 @@ -7580,7 +7580,7 @@ $(pv_value) Text Update_97 0 false - /cfs/cfe_sb/PipeDepthStats_24_Depth + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_24_.Depth 0.0 @@ -7630,7 +7630,7 @@ $(pv_value) 20 Check Box_24 - /cfs/cfe_sb/PipeDepthStats_24_InUse + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_24_.InUse @@ -7679,7 +7679,7 @@ $(pv_value) Text Update_98 0 false - /cfs/cfe_sb/PipeDepthStats_24_PeakInUse + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_24_.PeakInUse 0.0 @@ -7731,7 +7731,7 @@ $(pv_value) Text Update_99 0 false - /cfs/cfe_sb/PipeDepthStats_25_PipeID + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_25_.PipeId 0.0 @@ -7823,7 +7823,7 @@ $(pv_value) Text Update_100 0 false - /cfs/cfe_sb/PipeDepthStats_25_Depth + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_25_.Depth 0.0 @@ -7873,7 +7873,7 @@ $(pv_value) 20 Check Box_25 - /cfs/cfe_sb/PipeDepthStats_25_InUse + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_25_.InUse @@ -7922,7 +7922,7 @@ $(pv_value) Text Update_101 0 false - /cfs/cfe_sb/PipeDepthStats_25_PeakInUse + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_25_.PeakInUse 0.0 @@ -7974,7 +7974,7 @@ $(pv_value) Text Update_102 0 false - /cfs/cfe_sb/PipeDepthStats_26_PipeID + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_26_.PipeId 0.0 @@ -8066,7 +8066,7 @@ $(pv_value) Text Update_103 0 false - /cfs/cfe_sb/PipeDepthStats_26_Depth + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_26_.Depth 0.0 @@ -8116,7 +8116,7 @@ $(pv_value) 20 Check Box_26 - /cfs/cfe_sb/PipeDepthStats_26_InUse + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_26_.InUse @@ -8165,7 +8165,7 @@ $(pv_value) Text Update_104 0 false - /cfs/cfe_sb/PipeDepthStats_26_PeakInUse + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_26_.PeakInUse 0.0 @@ -8217,7 +8217,7 @@ $(pv_value) Text Update_105 0 false - /cfs/cfe_sb/PipeDepthStats_27_PipeID + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_27_.PipeId 0.0 @@ -8309,7 +8309,7 @@ $(pv_value) Text Update_106 0 false - /cfs/cfe_sb/PipeDepthStats_27_Depth + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_27_.Depth 0.0 @@ -8359,7 +8359,7 @@ $(pv_value) 20 Check Box_27 - /cfs/cfe_sb/PipeDepthStats_27_InUse + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_27_.InUse @@ -8408,7 +8408,7 @@ $(pv_value) Text Update_107 0 false - /cfs/cfe_sb/PipeDepthStats_27_PeakInUse + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_27_.PeakInUse 0.0 @@ -8460,7 +8460,7 @@ $(pv_value) Text Update_108 0 false - /cfs/cfe_sb/PipeDepthStats_28_PipeID + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_28_.PipeId 0.0 @@ -8552,7 +8552,7 @@ $(pv_value) Text Update_109 0 false - /cfs/cfe_sb/PipeDepthStats_28_Depth + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_28_.Depth 0.0 @@ -8602,7 +8602,7 @@ $(pv_value) 20 Check Box_28 - /cfs/cfe_sb/PipeDepthStats_28_InUse + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_28_.InUse @@ -8651,7 +8651,7 @@ $(pv_value) Text Update_110 0 false - /cfs/cfe_sb/PipeDepthStats_28_PeakInUse + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_28_.InUse 0.0 @@ -8703,7 +8703,7 @@ $(pv_value) Text Update_111 0 false - /cfs/cfe_sb/PipeDepthStats_29_PipeID + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_29_.PipeId 0.0 @@ -8795,7 +8795,7 @@ $(pv_value) Text Update_112 0 false - /cfs/cfe_sb/PipeDepthStats_29_Depth + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_29_.Depth 0.0 @@ -8845,7 +8845,7 @@ $(pv_value) 20 Check Box_29 - /cfs/cfe_sb/PipeDepthStats_29_InUse + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_29_.InUse @@ -8894,7 +8894,7 @@ $(pv_value) Text Update_113 0 false - /cfs/cfe_sb/PipeDepthStats_29_PeakInUse + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_29_.Depth 0.0 @@ -8946,7 +8946,7 @@ $(pv_value) Text Update_114 0 false - /cfs/cfe_sb/PipeDepthStats_30_PipeID + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_30_.PipeId 0.0 @@ -9038,7 +9038,7 @@ $(pv_value) Text Update_115 0 false - /cfs/cfe_sb/PipeDepthStats_30_Depth + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_30_.Depth 0.0 @@ -9088,7 +9088,7 @@ $(pv_value) 20 Check Box_30 - /cfs/cfe_sb/PipeDepthStats_30_InUse + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_30_.InUse @@ -9137,7 +9137,7 @@ $(pv_value) Text Update_116 0 false - /cfs/cfe_sb/PipeDepthStats_30_PeakInUse + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_30_.PeakInUse 0.0 @@ -9189,7 +9189,7 @@ $(pv_value) Text Update_117 0 false - /cfs/cfe_sb/PipeDepthStats_31_PipeID + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_31_.PipeId 0.0 @@ -9281,7 +9281,7 @@ $(pv_value) Text Update_118 0 false - /cfs/cfe_sb/PipeDepthStats_31_Depth + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_31_.Depth 0.0 @@ -9331,7 +9331,7 @@ $(pv_value) 20 Check Box_31 - /cfs/cfe_sb/PipeDepthStats_31_InUse + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_31_.InUse @@ -9380,7 +9380,7 @@ $(pv_value) Text Update_119 0 false - /cfs/cfe_sb/PipeDepthStats_31_PeakInUse + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_31_.PeakInUse 0.0 @@ -9432,7 +9432,7 @@ $(pv_value) Text Update_120 0 false - /cfs/cfe_sb/PipeDepthStats_32_PipeID + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_32_.PipeId 0.0 @@ -9524,7 +9524,7 @@ $(pv_value) Text Update_121 0 false - /cfs/cfe_sb/PipeDepthStats_32_Depth + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_32_.Depth 0.0 @@ -9574,7 +9574,7 @@ $(pv_value) 20 Check Box_32 - /cfs/cfe_sb/PipeDepthStats_32_InUse + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_32_.InUse @@ -9623,7 +9623,7 @@ $(pv_value) Text Update_122 0 false - /cfs/cfe_sb/PipeDepthStats_32_PeakInUse + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_32_.PeakInUse 0.0 @@ -9675,7 +9675,7 @@ $(pv_value) Text Update_123 0 false - /cfs/cfe_sb/PipeDepthStats_33_PipeID + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_33_.PipeId 0.0 @@ -9767,7 +9767,7 @@ $(pv_value) Text Update_124 0 false - /cfs/cfe_sb/PipeDepthStats_33_Depth + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_33_.Depth 0.0 @@ -9817,7 +9817,7 @@ $(pv_value) 20 Check Box_33 - /cfs/cfe_sb/PipeDepthStats_33_InUse + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_33_.InUse @@ -9866,7 +9866,7 @@ $(pv_value) Text Update_125 0 false - /cfs/cfe_sb/PipeDepthStats_33_PeakInUse + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_33_.PeakInUse 0.0 @@ -9918,7 +9918,7 @@ $(pv_value) Text Update_126 0 false - /cfs/cfe_sb/PipeDepthStats_34_PipeID + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_34_.PipeId 0.0 @@ -10010,7 +10010,7 @@ $(pv_value) Text Update_127 0 false - /cfs/cfe_sb/PipeDepthStats_34_Depth + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_34_.Depth 0.0 @@ -10060,7 +10060,7 @@ $(pv_value) 20 Check Box_34 - /cfs/cfe_sb/PipeDepthStats_34_InUse + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_34_.InUse @@ -10109,7 +10109,7 @@ $(pv_value) Text Update_128 0 false - /cfs/cfe_sb/PipeDepthStats_34_PeakInUse + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_34_.PeakInUse 0.0 @@ -10161,7 +10161,7 @@ $(pv_value) Text Update_129 0 false - /cfs/cfe_sb/PipeDepthStats_35_PipeID + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_35_.PipeId 0.0 @@ -10253,7 +10253,7 @@ $(pv_value) Text Update_130 0 false - /cfs/cfe_sb/PipeDepthStats_35_Depth + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_35_.Depth 0.0 @@ -10303,7 +10303,7 @@ $(pv_value) 20 Check Box_35 - /cfs/cfe_sb/PipeDepthStats_35_InUse + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_35_.InUse @@ -10352,7 +10352,7 @@ $(pv_value) Text Update_131 0 false - /cfs/cfe_sb/PipeDepthStats_35_PeakInUse + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_35_.PeakInUse 0.0 @@ -10404,7 +10404,7 @@ $(pv_value) Text Update_132 0 false - /cfs/cfe_sb/PipeDepthStats_36_PipeID + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_36_.PipeId 0.0 @@ -10496,7 +10496,7 @@ $(pv_value) Text Update_133 0 false - /cfs/cfe_sb/PipeDepthStats_36_Depth + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_36_.Depth 0.0 @@ -10546,7 +10546,7 @@ $(pv_value) 20 Check Box_36 - /cfs/cfe_sb/PipeDepthStats_36_InUse + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_36_.InUse @@ -10595,7 +10595,7 @@ $(pv_value) Text Update_134 0 false - /cfs/cfe_sb/PipeDepthStats_36_PeakInUse + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_36_.PeakInUse 0.0 @@ -10647,7 +10647,7 @@ $(pv_value) Text Update_135 0 false - /cfs/cfe_sb/PipeDepthStats_37_PipeID + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_37_.PipeId 0.0 @@ -10739,7 +10739,7 @@ $(pv_value) Text Update_136 0 false - /cfs/cfe_sb/PipeDepthStats_37_Depth + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_37_.Depth 0.0 @@ -10789,7 +10789,7 @@ $(pv_value) 20 Check Box_37 - /cfs/cfe_sb/PipeDepthStats_37_InUse + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_37_.InUse @@ -10838,7 +10838,7 @@ $(pv_value) Text Update_137 0 false - /cfs/cfe_sb/PipeDepthStats_37_PeakInUse + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_37_.Depth 0.0 @@ -10890,7 +10890,7 @@ $(pv_value) Text Update_138 0 false - /cfs/cfe_sb/PipeDepthStats_38_PipeID + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_38_.PipeId 0.0 @@ -10982,7 +10982,7 @@ $(pv_value) Text Update_139 0 false - /cfs/cfe_sb/PipeDepthStats_38_Depth + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_38_.Depth 0.0 @@ -11032,7 +11032,7 @@ $(pv_value) 20 Check Box_38 - /cfs/cfe_sb/PipeDepthStats_38_InUse + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_38_.InUse @@ -11081,7 +11081,7 @@ $(pv_value) Text Update_140 0 false - /cfs/cfe_sb/PipeDepthStats_38_PeakInUse + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_38_.PeakInUse 0.0 @@ -11133,7 +11133,7 @@ $(pv_value) Text Update_141 0 false - /cfs/cfe_sb/PipeDepthStats_39_PipeID + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_39_.PipeId 0.0 @@ -11225,7 +11225,7 @@ $(pv_value) Text Update_142 0 false - /cfs/cfe_sb/PipeDepthStats_39_Depth + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_39_.Depth 0.0 @@ -11275,7 +11275,7 @@ $(pv_value) 20 Check Box_39 - /cfs/cfe_sb/PipeDepthStats_39_InUse + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_39_.InUse @@ -11324,7 +11324,7 @@ $(pv_value) Text Update_143 0 false - /cfs/cfe_sb/PipeDepthStats_39_PeakInUse + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_39_.PeakInUse 0.0 @@ -11376,7 +11376,7 @@ $(pv_value) Text Update_144 0 false - /cfs/cfe_sb/PipeDepthStats_40_PipeID + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_40_.PipeId 0.0 @@ -11468,7 +11468,7 @@ $(pv_value) Text Update_145 0 false - /cfs/cfe_sb/PipeDepthStats_40_Depth + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_40_.Depth 0.0 @@ -11518,7 +11518,7 @@ $(pv_value) 20 Check Box_40 - /cfs/cfe_sb/PipeDepthStats_40_InUse + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_40_.InUse @@ -11567,7 +11567,7 @@ $(pv_value) Text Update_146 0 false - /cfs/cfe_sb/PipeDepthStats_40_PeakInUse + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_40_.PeakInUse 0.0 @@ -11619,7 +11619,7 @@ $(pv_value) Text Update_147 0 false - /cfs/cfe_sb/PipeDepthStats_41_PipeID + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_41_.PipeId 0.0 @@ -11711,7 +11711,7 @@ $(pv_value) Text Update_148 0 false - /cfs/cfe_sb/PipeDepthStats_41_Depth + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_41_.Depth 0.0 @@ -11761,7 +11761,7 @@ $(pv_value) 20 Check Box_41 - /cfs/cfe_sb/PipeDepthStats_41_InUse + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_41_.InUse @@ -11810,7 +11810,7 @@ $(pv_value) Text Update_149 0 false - /cfs/cfe_sb/PipeDepthStats_41_PeakInUse + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_41_.PeakInUse 0.0 @@ -11862,7 +11862,7 @@ $(pv_value) Text Update_150 0 false - /cfs/cfe_sb/PipeDepthStats_42_PipeID + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_42_.PipeId 0.0 @@ -11954,7 +11954,7 @@ $(pv_value) Text Update_151 0 false - /cfs/cfe_sb/PipeDepthStats_42_Depth + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_42_.Depth 0.0 @@ -12004,7 +12004,7 @@ $(pv_value) 20 Check Box_42 - /cfs/cfe_sb/PipeDepthStats_42_InUse + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_42_.InUse @@ -12053,7 +12053,7 @@ $(pv_value) Text Update_152 0 false - /cfs/cfe_sb/PipeDepthStats_42_PeakInUse + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_42_.PeakInUse 0.0 @@ -12105,7 +12105,7 @@ $(pv_value) Text Update_153 0 false - /cfs/cfe_sb/PipeDepthStats_43_PipeID + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_43_.PipeId 0.0 @@ -12197,7 +12197,7 @@ $(pv_value) Text Update_154 0 false - /cfs/cfe_sb/PipeDepthStats_43_Depth + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_43_.Depth 0.0 @@ -12247,7 +12247,7 @@ $(pv_value) 20 Check Box_43 - /cfs/cfe_sb/PipeDepthStats_43_InUse + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_43_.InUse @@ -12296,7 +12296,7 @@ $(pv_value) Text Update_155 0 false - /cfs/cfe_sb/PipeDepthStats_43_PeakInUse + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_43_.PeakInUse 0.0 @@ -12348,7 +12348,7 @@ $(pv_value) Text Update_156 0 false - /cfs/cfe_sb/PipeDepthStats_44_PipeID + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_44_.PipeId 0.0 @@ -12440,7 +12440,7 @@ $(pv_value) Text Update_157 0 false - /cfs/cfe_sb/PipeDepthStats_44_Depth + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_44_.Depth 0.0 @@ -12490,7 +12490,7 @@ $(pv_value) 20 Check Box_44 - /cfs/cfe_sb/PipeDepthStats_44_InUse + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_44_.InUse @@ -12539,7 +12539,7 @@ $(pv_value) Text Update_158 0 false - /cfs/cfe_sb/PipeDepthStats_44_PeakInUse + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_44_.PeakInUse 0.0 @@ -12591,7 +12591,7 @@ $(pv_value) Text Update_159 0 false - /cfs/cfe_sb/PipeDepthStats_45_PipeID + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_45_.PipeId 0.0 @@ -12683,7 +12683,7 @@ $(pv_value) Text Update_160 0 false - /cfs/cfe_sb/PipeDepthStats_45_Depth + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_45_.Depth 0.0 @@ -12733,7 +12733,7 @@ $(pv_value) 20 Check Box_45 - /cfs/cfe_sb/PipeDepthStats_45_InUse + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_45_.InUse @@ -12782,7 +12782,7 @@ $(pv_value) Text Update_161 0 false - /cfs/cfe_sb/PipeDepthStats_45_PeakInUse + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_45_.PeakInUse 0.0 @@ -12834,7 +12834,7 @@ $(pv_value) Text Update_162 0 false - /cfs/cfe_sb/PipeDepthStats_46_PipeID + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_46_.PipeId 0.0 @@ -12926,7 +12926,7 @@ $(pv_value) Text Update_163 0 false - /cfs/cfe_sb/PipeDepthStats_46_Depth + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_46_.Depth 0.0 @@ -12976,7 +12976,7 @@ $(pv_value) 20 Check Box_46 - /cfs/cfe_sb/PipeDepthStats_46_InUse + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_46_.InUse @@ -13025,7 +13025,7 @@ $(pv_value) Text Update_164 0 false - /cfs/cfe_sb/PipeDepthStats_46_PeakInUse + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_46_.PeakInUse 0.0 @@ -13077,7 +13077,7 @@ $(pv_value) Text Update_165 0 false - /cfs/cfe_sb/PipeDepthStats_47_PipeID + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_47_.PipeId 0.0 @@ -13169,7 +13169,7 @@ $(pv_value) Text Update_166 0 false - /cfs/cfe_sb/PipeDepthStats_47_Depth + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_47_.Depth 0.0 @@ -13219,7 +13219,7 @@ $(pv_value) 20 Check Box_47 - /cfs/cfe_sb/PipeDepthStats_47_InUse + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_47_.InUse @@ -13268,7 +13268,7 @@ $(pv_value) Text Update_167 0 false - /cfs/cfe_sb/PipeDepthStats_47_PeakInUse + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_47_.PeakInUse 0.0 @@ -13320,7 +13320,7 @@ $(pv_value) Text Update_168 0 false - /cfs/cfe_sb/PipeDepthStats_48_PipeID + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_48_.InUse 0.0 @@ -13412,7 +13412,7 @@ $(pv_value) Text Update_169 0 false - /cfs/cfe_sb/PipeDepthStats_48_Depth + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_48_.Depth 0.0 @@ -13462,7 +13462,7 @@ $(pv_value) 20 Check Box_48 - /cfs/cfe_sb/PipeDepthStats_48_InUse + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_48_.InUse @@ -13511,7 +13511,7 @@ $(pv_value) Text Update_170 0 false - /cfs/cfe_sb/PipeDepthStats_48_PeakInUse + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_48_.PeakInUse 0.0 @@ -13563,7 +13563,7 @@ $(pv_value) Text Update_171 0 false - /cfs/cfe_sb/PipeDepthStats_49_PipeID + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_49_.PipeId 0.0 @@ -13655,7 +13655,7 @@ $(pv_value) Text Update_172 0 false - /cfs/cfe_sb/PipeDepthStats_49_Depth + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_49_.Depth 0.0 @@ -13705,7 +13705,7 @@ $(pv_value) 20 Check Box_49 - /cfs/cfe_sb/PipeDepthStats_49_InUse + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_49_.InUse @@ -13754,7 +13754,7 @@ $(pv_value) Text Update_173 0 false - /cfs/cfe_sb/PipeDepthStats_49_PeakInUse + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_49_.PeakInUse 0.0 @@ -13806,7 +13806,7 @@ $(pv_value) Text Update_174 0 false - /cfs/cfe_sb/PipeDepthStats_50_PipeID + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_50_.PipeId 0.0 @@ -13898,7 +13898,7 @@ $(pv_value) Text Update_175 0 false - /cfs/cfe_sb/PipeDepthStats_50_Depth + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_50_.Depth 0.0 @@ -13948,7 +13948,7 @@ $(pv_value) 20 Check Box_50 - /cfs/cfe_sb/PipeDepthStats_50_InUse + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_50_.InUse @@ -13997,7 +13997,7 @@ $(pv_value) Text Update_176 0 false - /cfs/cfe_sb/PipeDepthStats_50_PeakInUse + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_50_.PeakInUse 0.0 @@ -14049,7 +14049,7 @@ $(pv_value) Text Update_177 0 false - /cfs/cfe_sb/PipeDepthStats_51_PipeID + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_50_.PipeId 0.0 @@ -14141,7 +14141,7 @@ $(pv_value) Text Update_178 0 false - /cfs/cfe_sb/PipeDepthStats_51_Depth + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_51_.Depth 0.0 @@ -14191,7 +14191,7 @@ $(pv_value) 20 Check Box_51 - /cfs/cfe_sb/PipeDepthStats_51_InUse + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_51_.InUse @@ -14240,7 +14240,7 @@ $(pv_value) Text Update_179 0 false - /cfs/cfe_sb/PipeDepthStats_51_PeakInUse + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_51_.PeakInUse 0.0 @@ -14292,7 +14292,7 @@ $(pv_value) Text Update_180 0 false - /cfs/cfe_sb/PipeDepthStats_52_PipeID + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_52_.PipeId 0.0 @@ -14384,7 +14384,7 @@ $(pv_value) Text Update_181 0 false - /cfs/cfe_sb/PipeDepthStats_52_Depth + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_52_.Depth 0.0 @@ -14434,7 +14434,7 @@ $(pv_value) 20 Check Box_52 - /cfs/cfe_sb/PipeDepthStats_52_InUse + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_52_.InUse @@ -14483,7 +14483,7 @@ $(pv_value) Text Update_182 0 false - /cfs/cfe_sb/PipeDepthStats_52_PeakInUse + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_52_.PeakInUse 0.0 @@ -14535,7 +14535,7 @@ $(pv_value) Text Update_183 0 false - /cfs/cfe_sb/PipeDepthStats_53_PipeID + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_53_.PipeId 0.0 @@ -14627,7 +14627,7 @@ $(pv_value) Text Update_184 0 false - /cfs/cfe_sb/PipeDepthStats_53_Depth + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_53_.Depth 0.0 @@ -14677,7 +14677,7 @@ $(pv_value) 20 Check Box_53 - /cfs/cfe_sb/PipeDepthStats_53_InUse + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_53_.InUse @@ -14726,7 +14726,7 @@ $(pv_value) Text Update_185 0 false - /cfs/cfe_sb/PipeDepthStats_53_PeakInUse + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_54_.PeakInUse 0.0 @@ -14778,7 +14778,7 @@ $(pv_value) Text Update_186 0 false - /cfs/cfe_sb/PipeDepthStats_54_PipeID + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_54_.PipeId 0.0 @@ -14870,7 +14870,7 @@ $(pv_value) Text Update_187 0 false - /cfs/cfe_sb/PipeDepthStats_54_Depth + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_54_.Depth 0.0 @@ -14920,7 +14920,7 @@ $(pv_value) 20 Check Box_54 - /cfs/cfe_sb/PipeDepthStats_54_InUse + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_54_.InUse @@ -14969,7 +14969,7 @@ $(pv_value) Text Update_188 0 false - /cfs/cfe_sb/PipeDepthStats_54_PeakInUse + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_54_.PeakInUse 0.0 @@ -15021,7 +15021,7 @@ $(pv_value) Text Update_189 0 false - /cfs/cfe_sb/PipeDepthStats_55_PipeID + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_55_.PipeId 0.0 @@ -15113,7 +15113,7 @@ $(pv_value) Text Update_190 0 false - /cfs/cfe_sb/PipeDepthStats_55_Depth + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_55_.Depth 0.0 @@ -15163,7 +15163,7 @@ $(pv_value) 20 Check Box_55 - /cfs/cfe_sb/PipeDepthStats_55_InUse + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_54_.InUse @@ -15212,7 +15212,7 @@ $(pv_value) Text Update_191 0 false - /cfs/cfe_sb/PipeDepthStats_55_PeakInUse + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_55_.PeakInUse 0.0 @@ -15264,7 +15264,7 @@ $(pv_value) Text Update_192 0 false - /cfs/cfe_sb/PipeDepthStats_56_PipeID + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_56_.PipeId 0.0 @@ -15356,7 +15356,7 @@ $(pv_value) Text Update_193 0 false - /cfs/cfe_sb/PipeDepthStats_56_Depth + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_56_.Depth 0.0 @@ -15406,7 +15406,7 @@ $(pv_value) 20 Check Box_56 - /cfs/cfe_sb/PipeDepthStats_56_InUse + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_56_.InUse @@ -15455,7 +15455,7 @@ $(pv_value) Text Update_194 0 false - /cfs/cfe_sb/PipeDepthStats_56_PeakInUse + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_56_.PeakInUse 0.0 @@ -15507,7 +15507,7 @@ $(pv_value) Text Update_195 0 false - /cfs/cfe_sb/PipeDepthStats_57_PipeID + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_57_.PipeId 0.0 @@ -15599,7 +15599,7 @@ $(pv_value) Text Update_196 0 false - /cfs/cfe_sb/PipeDepthStats_57_Depth + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_57_.Depth 0.0 @@ -15649,7 +15649,7 @@ $(pv_value) 20 Check Box_57 - /cfs/cfe_sb/PipeDepthStats_57_InUse + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_57_.InUse @@ -15698,7 +15698,7 @@ $(pv_value) Text Update_197 0 false - /cfs/cfe_sb/PipeDepthStats_57_PeakInUse + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_57_.PeakInUse 0.0 @@ -15750,7 +15750,7 @@ $(pv_value) Text Update_198 0 false - /cfs/cfe_sb/PipeDepthStats_58_PipeID + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_58_.PipeId 0.0 @@ -15842,7 +15842,7 @@ $(pv_value) Text Update_199 0 false - /cfs/cfe_sb/PipeDepthStats_58_Depth + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_58_.Depth 0.0 @@ -15892,7 +15892,7 @@ $(pv_value) 20 Check Box_58 - /cfs/cfe_sb/PipeDepthStats_58_InUse + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_58_.InUse @@ -15941,7 +15941,7 @@ $(pv_value) Text Update_200 0 false - /cfs/cfe_sb/PipeDepthStats_58_PeakInUse + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_58_.PeakInUse 0.0 @@ -15993,7 +15993,7 @@ $(pv_value) Text Update_201 0 false - /cfs/cfe_sb/PipeDepthStats_59_PipeID + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_59_.PipeId 0.0 @@ -16085,7 +16085,7 @@ $(pv_value) Text Update_202 0 false - /cfs/cfe_sb/PipeDepthStats_59_Depth + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_59_.Depth 0.0 @@ -16135,7 +16135,7 @@ $(pv_value) 20 Check Box_59 - /cfs/cfe_sb/PipeDepthStats_59_InUse + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_59_.InUse @@ -16184,7 +16184,7 @@ $(pv_value) Text Update_203 0 false - /cfs/cfe_sb/PipeDepthStats_59_PeakInUse + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_59_.PeakInUse 0.0 @@ -16236,7 +16236,7 @@ $(pv_value) Text Update_204 0 false - /cfs/cfe_sb/PipeDepthStats_60_PipeID + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_60_.PipeId 0.0 @@ -16328,7 +16328,7 @@ $(pv_value) Text Update_205 0 false - /cfs/cfe_sb/PipeDepthStats_60_Depth + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_60_.Depth 0.0 @@ -16378,7 +16378,7 @@ $(pv_value) 20 Check Box_60 - /cfs/cfe_sb/PipeDepthStats_60_InUse + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_60_.InUse @@ -16427,7 +16427,7 @@ $(pv_value) Text Update_206 0 false - /cfs/cfe_sb/PipeDepthStats_60_PeakInUse + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_60_.PeakInUse 0.0 @@ -16479,7 +16479,7 @@ $(pv_value) Text Update_207 0 false - /cfs/cfe_sb/PipeDepthStats_61_PipeID + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_61_.PipeId 0.0 @@ -16571,7 +16571,7 @@ $(pv_value) Text Update_208 0 false - /cfs/cfe_sb/PipeDepthStats_61_Depth + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_61_.Depth 0.0 @@ -16621,7 +16621,7 @@ $(pv_value) 20 Check Box_61 - /cfs/cfe_sb/PipeDepthStats_61_InUse + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_61_.InUse @@ -16670,7 +16670,7 @@ $(pv_value) Text Update_209 0 false - /cfs/cfe_sb/PipeDepthStats_61_PeakInUse + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_61_.PeakInUse 0.0 @@ -16722,7 +16722,7 @@ $(pv_value) Text Update_210 0 false - /cfs/cfe_sb/PipeDepthStats_62_PipeID + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_62_.PipeId 0.0 @@ -16814,7 +16814,7 @@ $(pv_value) Text Update_211 0 false - /cfs/cfe_sb/PipeDepthStats_62_Depth + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_62_.Depth 0.0 @@ -16864,7 +16864,7 @@ $(pv_value) 20 Check Box_62 - /cfs/cfe_sb/PipeDepthStats_62_InUse + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_62_.InUse @@ -16913,7 +16913,7 @@ $(pv_value) Text Update_212 0 false - /cfs/cfe_sb/PipeDepthStats_62_PeakInUse + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_62_.PeakInUse 0.0 @@ -16965,7 +16965,7 @@ $(pv_value) Text Update_213 0 false - /cfs/cfe_sb/PipeDepthStats_63_PipeID + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_63_.PipeId 0.0 @@ -17057,7 +17057,7 @@ $(pv_value) Text Update_214 0 false - /cfs/cfe_sb/PipeDepthStats_63_Depth + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_63_.Depth 0.0 @@ -17107,7 +17107,7 @@ $(pv_value) 20 Check Box_63 - /cfs/cfe_sb/PipeDepthStats_63_InUse + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_63_.InUse @@ -17156,7 +17156,7 @@ $(pv_value) Text Update_215 0 false - /cfs/cfe_sb/PipeDepthStats_63_PeakInUse + /cfs/cfe_sb/CFE_SB_StatMsg_t.Payload.PipeDepthStats_63_.PeakInUse 0.0 From 4683cc658020905edb75e50548f3cc60091b14a0 Mon Sep 17 00:00:00 2001 From: lorenzo-gomez-windhover Date: Thu, 4 Feb 2021 11:45:27 -0600 Subject: [PATCH 036/370] -Configured the max file size for downlink to 32KB. This is to adhere to the CCSDS standard. --- .../tools/commander/workspace_template/etc/yamcs.yamcs-cfs.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/core/base/tools/commander/workspace_template/etc/yamcs.yamcs-cfs.yaml b/core/base/tools/commander/workspace_template/etc/yamcs.yamcs-cfs.yaml index 7a720b9c1..977c2c50f 100644 --- a/core/base/tools/commander/workspace_template/etc/yamcs.yamcs-cfs.yaml +++ b/core/base/tools/commander/workspace_template/etc/yamcs.yamcs-cfs.yaml @@ -45,6 +45,7 @@ dataLinks: class: org.yamcs.tctm.UdpTmDataLink stream: tm_realtime port: 5011 + maxLength: 32768 #32KB is the default for CCSDS packetPreprocessorClassName: com.windhoverlabs.yamcs.tctm.PacketPreprocessor - name: tc_realtime From 76f4887eb176fbbcc372fae053d380abd27c6eb8 Mon Sep 17 00:00:00 2001 From: jenna-crump Date: Thu, 4 Feb 2021 15:23:27 -0600 Subject: [PATCH 037/370] Changes to scripts and PV names for TBL app. --- .../Displays/Core/TBL/AbortTableLoad.opi | 4 +- .../Displays/Core/TBL/ActivateTable.opi | 2 +- .../Displays/Core/TBL/DumpTable.opi | 6 +- .../Displays/Core/TBL/LoadTable.opi | 2 +- .../Displays/Core/TBL/ValidateTable.opi | 10 +- .../Displays/Core/TBL/ViewRegistry.opi | 204 +++++++++++------- 6 files changed, 134 insertions(+), 94 deletions(-) diff --git a/core/base/tools/commander/workspace_template/Displays/Core/TBL/AbortTableLoad.opi b/core/base/tools/commander/workspace_template/Displays/Core/TBL/AbortTableLoad.opi index a1857a202..b90c2336b 100644 --- a/core/base/tools/commander/workspace_template/Displays/Core/TBL/AbortTableLoad.opi +++ b/core/base/tools/commander/workspace_template/Displays/Core/TBL/AbortTableLoad.opi @@ -42,7 +42,7 @@ importPackage(Packages.org.yamcs.studio.data); var tableName =VTypeHelper.getString(display.getWidget('TableName').getPropertyValue('pv_value')); -var cmd = '/cfs/cfe_tbl/AbortLoad(TableName: ' + tableName + ')'; +var cmd = '/cfs/cfe_tbl/AbortLoad(Payload.TableName: ' + tableName + ')'; Yamcs.issueCommand(cmd); @@ -181,7 +181,7 @@ $(pv_value) 0 true - ###### + #### $(pv_name) $(pv_value) false diff --git a/core/base/tools/commander/workspace_template/Displays/Core/TBL/ActivateTable.opi b/core/base/tools/commander/workspace_template/Displays/Core/TBL/ActivateTable.opi index 27c90de5a..3619685f6 100644 --- a/core/base/tools/commander/workspace_template/Displays/Core/TBL/ActivateTable.opi +++ b/core/base/tools/commander/workspace_template/Displays/Core/TBL/ActivateTable.opi @@ -42,7 +42,7 @@ importPackage(Packages.org.yamcs.studio.data); var tableName =VTypeHelper.getString(display.getWidget('TableName').getPropertyValue('pv_value')); -var cmd = '/cfs/cfe_tbl/Activate(TableName: ' + tableName + ')'; +var cmd = '/cfs/cfe_tbl/Activate(Payload.TableName: ' + tableName + ')'; Yamcs.issueCommand(cmd); diff --git a/core/base/tools/commander/workspace_template/Displays/Core/TBL/DumpTable.opi b/core/base/tools/commander/workspace_template/Displays/Core/TBL/DumpTable.opi index 38e872e4a..95d95a1c5 100644 --- a/core/base/tools/commander/workspace_template/Displays/Core/TBL/DumpTable.opi +++ b/core/base/tools/commander/workspace_template/Displays/Core/TBL/DumpTable.opi @@ -55,7 +55,7 @@ if( fileName != 'no value' ) { 'Payload.ActiveTblFlag':tableBuffer }; } else { - // args = {"payload.DumpFilename":"", + // args = {"Payload.DumpFilename":"", // "Payload.TableName":''", // "Payload.ActiveTblFlag":"" }; } @@ -235,7 +235,7 @@ $(pv_value) 0 true - ###### + #### $(pv_name) $(pv_value) false @@ -332,7 +332,7 @@ $(pv_value) 0 true - ###### + #### $(pv_name) $(pv_value) false diff --git a/core/base/tools/commander/workspace_template/Displays/Core/TBL/LoadTable.opi b/core/base/tools/commander/workspace_template/Displays/Core/TBL/LoadTable.opi index 86ba27e68..2a30e29e5 100644 --- a/core/base/tools/commander/workspace_template/Displays/Core/TBL/LoadTable.opi +++ b/core/base/tools/commander/workspace_template/Displays/Core/TBL/LoadTable.opi @@ -227,7 +227,7 @@ $(pv_value) 0 true - ###### + #### $(pv_name) $(pv_value) false diff --git a/core/base/tools/commander/workspace_template/Displays/Core/TBL/ValidateTable.opi b/core/base/tools/commander/workspace_template/Displays/Core/TBL/ValidateTable.opi index e11201cbf..4753732d6 100644 --- a/core/base/tools/commander/workspace_template/Displays/Core/TBL/ValidateTable.opi +++ b/core/base/tools/commander/workspace_template/Displays/Core/TBL/ValidateTable.opi @@ -47,15 +47,15 @@ var cmd; var pBuffer; -if( tableBuffer != 'Inactive' ) { - pBuffer = 'INACTIVE'; +if( tableBuffer != 'Active' ) { + pBuffer = 'INACTIVE_BUFFER'; } else { - pBuffer = 'ACTIVE'; + pBuffer = 'ACTIVE_BUFFER'; } Yamcs.issueCommand('/cfs/cfe_tbl/Validate', { - 'TableName': tableName, - 'Buffer': pBuffer + 'Payload.TableName': tableName, + 'Payload.ActiveTblFlag': pBuffer }); ]]> diff --git a/core/base/tools/commander/workspace_template/Displays/Core/TBL/ViewRegistry.opi b/core/base/tools/commander/workspace_template/Displays/Core/TBL/ViewRegistry.opi index 512a2e644..d5f9c98d6 100644 --- a/core/base/tools/commander/workspace_template/Displays/Core/TBL/ViewRegistry.opi +++ b/core/base/tools/commander/workspace_template/Displays/Core/TBL/ViewRegistry.opi @@ -42,7 +42,7 @@ importPackage(Packages.org.yamcs.studio.data); var tableName =VTypeHelper.getString(display.getWidget('TableName').getPropertyValue('pv_value')); -Yamcs.issueCommand('/cfs/cfe_tbl/TlmReg', {'TableName': tableName}); +Yamcs.issueCommand('/cfs/cfe_tbl/TlmReg', {'Payload.TableName': tableName}); ]]> true @@ -218,7 +218,7 @@ $(pv_value) Text Update 0 true - /cfs/cfe_tbl/Registry_Size + /cfs/cfe_tbl/CFE_TBL_TblRegPacket_t.Payload.Size 0.0 @@ -236,7 +236,7 @@ $(pv_value) 1 true Text Update - 100 + 115 false 35ebaa52:1509cf6a868:-777b 174 @@ -270,7 +270,7 @@ $(pv_value) Text Update_1 0 true - /cfs/cfe_tbl/Registry_CRC + /cfs/cfe_tbl/CFE_TBL_TblRegPacket_t.Payload.Crc 0.0 @@ -288,7 +288,7 @@ $(pv_value) 1 true Text Update - 100 + 115 false 35ebaa52:1509cf6a868:-777a 174 @@ -322,7 +322,7 @@ $(pv_value) Text Update_3 0 true - /cfs/cfe_tbl/Registry_InactiveBufferAddr + /cfs/cfe_tbl/CFE_TBL_TblRegPacket_t.Payload.InactiveBufferAddr 0.0 @@ -340,7 +340,7 @@ $(pv_value) 1 true Text Update - 100 + 115 false 35ebaa52:1509cf6a868:-7778 174 @@ -374,7 +374,7 @@ $(pv_value) Text Update_4 0 true - /cfs/cfe_tbl/Registry_ValidationFuncPtr + /cfs/cfe_tbl/CFE_TBL_TblRegPacket_t.Payload.ValidationFuncPtr 0.0 @@ -392,7 +392,7 @@ $(pv_value) 1 true Text Update - 100 + 115 false 35ebaa52:1509cf6a868:-7777 174 @@ -426,7 +426,7 @@ $(pv_value) Text Update_6 0 true - /cfs/cfe_tbl/Registry_TimeOfLastUpdate_Seconds + /cfs/cfe_tbl/CFE_TBL_TblRegPacket_t.Payload.TimeOfLastUpdate.Seconds 0.0 @@ -444,7 +444,7 @@ $(pv_value) 1 true Text Update - 100 + 115 false 35ebaa52:1509cf6a868:-7775 174 @@ -478,7 +478,7 @@ $(pv_value) Text Update_7 0 true - /cfs/cfe_tbl/Registry_TimeOfLastUpdate_Subseconds + /cfs/cfe_tbl/CFE_TBL_TblRegPacket_t.Payload.TimeOfLastUpdate.Subseconds 0.0 @@ -496,7 +496,7 @@ $(pv_value) 1 true Text Update - 100 + 115 false 35ebaa52:1509cf6a868:-7774 174 @@ -530,7 +530,7 @@ $(pv_value) Text Update_8 0 true - /cfs/cfe_tbl/Registry_FileCreateTime_Seconds + /cfs/cfe_tbl/CFE_TBL_TblRegPacket_t.Payload.FileCreateTimeSecs 0.0 @@ -548,7 +548,7 @@ $(pv_value) 1 true Text Update - 100 + 115 false 35ebaa52:1509cf6a868:-7773 174 @@ -582,7 +582,7 @@ $(pv_value) Text Update_9 0 true - /cfs/cfe_tbl/Registry_FileCreateTime_Subseconds + /cfs/cfe_tbl/CFE_TBL_TblRegPacket_t.Payload.FileCreateTimeSubSecs 0.0 @@ -600,7 +600,7 @@ $(pv_value) 1 true Text Update - 100 + 115 false 35ebaa52:1509cf6a868:-7772 174 @@ -634,7 +634,7 @@ $(pv_value) Text Update_14 0 true - /cfs/cfe_tbl/Registry_Name + /cfs/cfe_tbl/CFE_TBL_TblRegPacket_t.Payload.Name 0.0 @@ -652,7 +652,7 @@ $(pv_value) 1 true Text Update - 100 + 115 false 35ebaa52:1509cf6a868:-776d 174 @@ -686,7 +686,7 @@ $(pv_value) Text Update_15 0 true - /cfs/cfe_tbl/Registry_LastFileLoaded + /cfs/cfe_tbl/CFE_TBL_TblRegPacket_t.Payload.LastFileLoaded 0.0 @@ -704,7 +704,7 @@ $(pv_value) 1 true Text Update - 100 + 115 false 35ebaa52:1509cf6a868:-776c 174 @@ -738,7 +738,7 @@ $(pv_value) Text Update_16 0 true - /cfs/cfe_tbl/Registry_OwnerAppName + /cfs/cfe_tbl/CFE_TBL_TblRegPacket_t.Payload.OwnerAppName 0.0 @@ -756,64 +756,12 @@ $(pv_value) 1 true Text Update - 100 + 115 false 35ebaa52:1509cf6a868:-776b 174 405
- - - false - false - false - - - - true - - - - 1 - 1 - true - - Default - - false - - - - 0 - 20 - 0 - Text Update_17 - 0 - true - /cfs/cfe_tbl/Registry_Critical - - 0.0 - - - true - true - false - - - true - ###### - $(pv_name) -$(pv_value) - false - 1 - true - Text Update - 100 - false - 35ebaa52:1509cf6a868:-776a - 174 - 424 - false @@ -1122,7 +1070,7 @@ $(pv_value) Text Update_18 0 true - /cfs/cfe_tbl/Registry_ActiveBufferAddr + /cfs/cfe_tbl/CFE_TBL_TblRegPacket_t.Payload.ActiveBufferAddr 0.0 @@ -1140,7 +1088,7 @@ $(pv_value) 1 true Text Update - 100 + 115 false 35ebaa52:1509cf6a868:-76ca 174 @@ -1212,7 +1160,7 @@ $(pv_value) 20 Check Box - /cfs/cfe_tbl/Registry_TableLoadedOnce + /cfs/cfe_tbl/CFE_TBL_TblRegPacket_t.Payload.TableLoadedOnce @@ -1259,7 +1207,7 @@ $(pv_value) 20 Check Box_1 - /cfs/cfe_tbl/Registry_LoadPending + /cfs/cfe_tbl/CFE_TBL_TblRegPacket_t.Payload.LoadPending @@ -1386,7 +1334,7 @@ $(pv_value) 20 Check Box_4 - /cfs/cfe_tbl/Registry_DumpOnly + /cfs/cfe_tbl/CFE_TBL_TblRegPacket_t.Payload.DumpOnly @@ -1433,7 +1381,7 @@ $(pv_value) 20 Check Box_5 - /cfs/cfe_tbl/Registry_DblBuffered + /cfs/cfe_tbl/CFE_TBL_TblRegPacket_t.Payload.DblBuffered @@ -1680,7 +1628,7 @@ $(pv_value) 20 Check Box_6 - /cfs/cfe_tbl/Registry_DblBuffered + /cfs/cfe_tbl/CFE_TBL_TblRegPacket_t.Payload.Critical @@ -1781,4 +1729,96 @@ $(pv_value) 26 12 + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_19 + 0 + true + /cfs/cfe_tbl/CFE_TBL_TblRegPacket_t.Payload.LastFileLoaded + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 115 + false + -72117af8:1776e577886:-78d4 + 174 + 424 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_27 + + + true + true + false + + + Double Buffered + + true + 1 + true + Label + 150 + false + -72117af8:1776e577886:-78d3 + 16 + 367 + \ No newline at end of file From d8b8e33621e9bb4e626a5367cf9aa2bf6e657b9e Mon Sep 17 00:00:00 2001 From: cnalley Date: Thu, 4 Feb 2021 21:27:07 +0000 Subject: [PATCH 038/370] More refactoring. --- apps/pq_lib/fsw/for_build/CMakeLists.txt | 2 + apps/pq_lib/fsw/public_inc/pq_channel.h | 66 ++- apps/pq_lib/fsw/public_inc/pq_classifier.h | 5 +- apps/pq_lib/fsw/public_inc/pq_includes.h | 41 ++ apps/pq_lib/fsw/public_inc/pq_lib.h | 0 apps/pq_lib/fsw/public_inc/pq_platform_cfg.h | 6 +- apps/pq_lib/fsw/src/pq_channel.c | 533 ++++++++----------- apps/pq_lib/fsw/src/pq_classifier.c | 21 +- apps/pq_lib/fsw/src/pq_lib.c | 13 +- apps/pq_lib/fsw/src/pq_message_flow.c | 118 ++-- apps/pq_lib/fsw/src/pq_output_queue.c | 2 - 11 files changed, 404 insertions(+), 403 deletions(-) create mode 100644 apps/pq_lib/fsw/public_inc/pq_includes.h delete mode 100644 apps/pq_lib/fsw/public_inc/pq_lib.h diff --git a/apps/pq_lib/fsw/for_build/CMakeLists.txt b/apps/pq_lib/fsw/for_build/CMakeLists.txt index db2a7e1b5..29c4334de 100644 --- a/apps/pq_lib/fsw/for_build/CMakeLists.txt +++ b/apps/pq_lib/fsw/for_build/CMakeLists.txt @@ -46,6 +46,8 @@ buildliner_add_app_def(pq_lib ${CMAKE_CURRENT_SOURCE_DIR}/../public_inc/pq_classifier.h ${CMAKE_CURRENT_SOURCE_DIR}/../public_inc/pq_config_utils.h ${CMAKE_CURRENT_SOURCE_DIR}/../public_inc/pq_errors.h + ${CMAKE_CURRENT_SOURCE_DIR}/../public_inc/pq_events.h + ${CMAKE_CURRENT_SOURCE_DIR}/../public_inc/pq_includes.h ${CMAKE_CURRENT_SOURCE_DIR}/../public_inc/pq_message_flow.h ${CMAKE_CURRENT_SOURCE_DIR}/../public_inc/pq_mission_cfg.h ${CMAKE_CURRENT_SOURCE_DIR}/../public_inc/pq_output_queue.h diff --git a/apps/pq_lib/fsw/public_inc/pq_channel.h b/apps/pq_lib/fsw/public_inc/pq_channel.h index 8e26f21ab..1e0b0a5e4 100644 --- a/apps/pq_lib/fsw/public_inc/pq_channel.h +++ b/apps/pq_lib/fsw/public_inc/pq_channel.h @@ -70,8 +70,7 @@ ** ** Only the index is range-checked and no other argument checking is performed. ** -** \param[in] index -** Index of the channel, cannot be greater than PQ_MAX_CHANNELS +** \param[in] Channel ** ** \param[in] ChannelName ** Name of channel, will be prefixed with PQ_ . @@ -100,10 +99,10 @@ ** Name of the CF throttling semaphore, must be unique among each channel. ** ** \return -** CFE_SUCCESS if successful. #PQ_CHANNEL_OUT_OF_RANGE_ERR or OSAL error if unsuccessful. +** CFE_SUCCESS if successful. OSAL error if unsuccessful. ** *************************************************************************/ -int32 PQ_Channel_OpenChannel(const uint32 index, const char *ChannelName, +int32 PQ_Channel_OpenChannel(PQ_ChannelData_t *Channel, const char *ChannelName, const char *ConfigTableName, const char *ConfigTableFileName, PQ_ChannelTbl_t *BackupTblPtr, const char *DumpTableName, const uint32 CfCntSemMax, const char *CfCntSemName); @@ -143,7 +142,7 @@ void PQ_Channel_ResetCountsAll(void); ** \param[in] index ** Index of the channel *************************************************************************/ -void PQ_Channel_LockByIndex(uint16 index); +//void PQ_Channel_LockByIndex(uint16 index); /************************************************************************/ @@ -158,7 +157,7 @@ void PQ_Channel_LockByIndex(uint16 index); ** \param[in] index ** Index of the channel *************************************************************************/ -void PQ_Channel_UnlockByIndex(uint16 index); +//void PQ_Channel_UnlockByIndex(uint16 index); /************************************************************************/ @@ -169,7 +168,7 @@ void PQ_Channel_UnlockByIndex(uint16 index); ** \par Assumptions, External Events, and Notes: ** Assumes channel pointer is not NULL *************************************************************************/ -void PQ_Channel_LockByRef(PQ_ChannelData_t *channel); +void PQ_Channel_LockByRef(PQ_ChannelData_t *Channel); /************************************************************************/ @@ -180,7 +179,7 @@ void PQ_Channel_LockByRef(PQ_ChannelData_t *channel); ** \par Assumptions, External Events, and Notes: ** Assumes channel pointer is not NULL *************************************************************************/ -void PQ_Channel_UnlockByRef(PQ_ChannelData_t *channel); +void PQ_Channel_UnlockByRef(PQ_ChannelData_t *Channel); /************************************************************************/ @@ -192,7 +191,7 @@ void PQ_Channel_UnlockByRef(PQ_ChannelData_t *channel); ** \par Assumptions, External Events, and Notes: ** None. *************************************************************************/ -void PQ_Channel_InitAll(void); +//void PQ_Channel_InitAll(void); /************************************************************************/ @@ -204,7 +203,7 @@ void PQ_Channel_InitAll(void); ** \par Assumptions, External Events, and Notes: ** None. *************************************************************************/ -void PQ_Channel_CleanupAll(void); +//void PQ_Channel_CleanupAll(void); /************************************************************************/ @@ -221,7 +220,7 @@ void PQ_Channel_CleanupAll(void); ** PQ_CHANNEL_CLOSED, PQ_CHANNEL_OPENED, or PQ_CHANNEL_UNKNOWN ** *************************************************************************/ -uint8 PQ_Channel_State(uint16 index); +uint8 PQ_Channel_State(PQ_ChannelData_t *Channel); /************************************************************************/ @@ -264,5 +263,50 @@ osalbool PQ_Channel_Flush(uint16 index); *************************************************************************/ //osalbool PQ_Channel_SBPipe_Dequeue_All(uint16 index); +/** + * \brief Initializes a reference channel data, sets the channel's index, + * and creates a channel mutex. + * + * \par Assumptions, External Events, and Notes: + * None + * + * \param [in] Index + * Index of the channel + * + * \param [in/out] Channel + * + * \returns + * CFE_SUCCESS if successful. + * \endreturns + */ +int32 PQ_Channel_Init(uint16 Index, PQ_ChannelData_t *Channel); + + +/** + * \brief Calls functions to teardown an individual channel's priority queue, + * output queue, and message flow(s). It also deletes the channel's mutex. + * + * \par Assumptions, External Events, and Notes: + * If the input index is out of range, an event is generated + * #PQ_CHANNEL_OUT_OF_RANGE_ERR_EID + * + * \param [in/out] Channel + * + */ +void PQ_Channel_Cleanup(PQ_ChannelData_t *Channel); + + +/** + * \brief Resets each channel's message flow, priority queue, + * and output queue counters. + * + * \par Assumptions, External Events, and Notes: + * Assumes channel pointer is not NULL + * + * \param [in] channel A #PQ_ChannelData_t pointer that + * references the channel data structures + */ +void PQ_Channel_ResetCounts(PQ_ChannelData_t *Channel); + #endif diff --git a/apps/pq_lib/fsw/public_inc/pq_classifier.h b/apps/pq_lib/fsw/public_inc/pq_classifier.h index 3aeb8491d..8aa7857c9 100644 --- a/apps/pq_lib/fsw/public_inc/pq_classifier.h +++ b/apps/pq_lib/fsw/public_inc/pq_classifier.h @@ -77,7 +77,10 @@ ** \param [in,out] DataMsgPtr A #CFE_SB_MsgPtr_t pointer of ** the message to classify ** +** \param [in,out] HkTlmPtr A #PQ_HkTlm_t pointer of telemetry to +** update +** *************************************************************************/ -void PQ_Classifier_Run(PQ_ChannelData_t *channel, CFE_SB_MsgPtr_t DataMsgPtr); +void PQ_Classifier_Run(PQ_ChannelData_t *channel, CFE_SB_MsgPtr_t DataMsgPtr, PQ_HkTlm_t *HkTlmPtr); #endif diff --git a/apps/pq_lib/fsw/public_inc/pq_includes.h b/apps/pq_lib/fsw/public_inc/pq_includes.h new file mode 100644 index 000000000..78644dabe --- /dev/null +++ b/apps/pq_lib/fsw/public_inc/pq_includes.h @@ -0,0 +1,41 @@ +/**************************************************************************** +* +* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions +* are met: +* +* 1. Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* 2. Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in +* the documentation and/or other materials provided with the +* distribution. +* 3. Neither the name Windhover Labs nor the names of its +* contributors may be used to endorse or promote products derived +* from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS +* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED +* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +* POSSIBILITY OF SUCH DAMAGE. +* +*****************************************************************************/ + +#ifndef PQ_INCLUDES_H +#define PQ_INCLUDES_H + +#include "pq_classifier.h" +#include "pq_channel.h" +#include "pq_platform_cfg.h" + +#endif diff --git a/apps/pq_lib/fsw/public_inc/pq_lib.h b/apps/pq_lib/fsw/public_inc/pq_lib.h deleted file mode 100644 index e69de29bb..000000000 diff --git a/apps/pq_lib/fsw/public_inc/pq_platform_cfg.h b/apps/pq_lib/fsw/public_inc/pq_platform_cfg.h index 497d2de87..d738749ce 100644 --- a/apps/pq_lib/fsw/public_inc/pq_platform_cfg.h +++ b/apps/pq_lib/fsw/public_inc/pq_platform_cfg.h @@ -214,7 +214,7 @@ extern "C" { ** The length of each string, including the NULL terminator cannot exceed ** the #OS_MAX_PATH_LEN value. */ -#define PQ_UDP_CONFIG_TABLE_FILENAME ("/cf/apps/to_udp_cfg.tbl") +#define PQ_UDP_CONFIG_TABLE_FILENAME ("/cf/apps/pq_cfg.tbl") #define PQ_MAX_MEMPOOL_BLK_SIZES (8) @@ -243,13 +243,13 @@ extern "C" { * \tocfg Defines the table identification name used for table registration * of the configuration table. */ -#define PQ_UDP_CONFIG_TABLENAME "UDP_CFG" +#define PQ_UDP_CONFIG_TABLENAME "CFG" /** * \tocfg Defines the table identification name used for table registration * of the dump table. */ -#define PQ_UDP_DUMP_TABLENAME "UDP_DMP" +#define PQ_UDP_DUMP_TABLENAME "DMP" /** \tocfg The timeout value, in milliseconds, to wait for ES application startup sync. ** diff --git a/apps/pq_lib/fsw/src/pq_channel.c b/apps/pq_lib/fsw/src/pq_channel.c index 99367d075..f475f80c2 100644 --- a/apps/pq_lib/fsw/src/pq_channel.c +++ b/apps/pq_lib/fsw/src/pq_channel.c @@ -39,7 +39,9 @@ #include "pq_platform_cfg.h" #include "pq_channel.h" #include "pq_events.h" - +#include "pq_config_utils.h" +#include "pq_classifier.h" +#include "pq_scheduler.h" #include /************************************************************************ @@ -65,7 +67,7 @@ uint32 PQ_MemPoolDefSize[PQ_MAX_MEMPOOL_BLK_SIZES] = /************************************************************************ ** External Global Variables *************************************************************************/ -extern PQ_AppData_t PQ_AppData; +//extern PQ_AppData_t PQ_AppData; /************************************************************************ ** Local Function Definitions @@ -83,130 +85,88 @@ extern PQ_AppData_t PQ_AppData; */ void PQ_Channel_ProcessTelemetry(PQ_ChannelData_t *channel); -/** - * \brief Resets each channel's message flow, priority queue, - * and output queue counters. - * - * \par Assumptions, External Events, and Notes: - * Assumes channel pointer is not NULL - * - * \param [in] channel A #PQ_ChannelData_t pointer that - * references the channel data structures - */ -void PQ_Channel_ResetCounts(PQ_ChannelData_t *channel); - -/** - * \brief Initializes a reference channel data, sets the channel's index, - * and creates a channel mutex. - * - * \par Assumptions, External Events, and Notes: - * If the input index is out of range, an event is generated - * #PQ_CHANNEL_OUT_OF_RANGE_ERR_EID - * - * \param [in] index - * Index of the channel - * - * \returns - * CFE_SUCCESS if successful. #PQ_CHANNEL_OUT_OF_RANGE_ERR error if unsuccessful. - * \endreturns - */ -int32 PQ_Channel_Init(uint16 index); - -/** - * \brief Calls functions to teardown an individual channel's priority queue, - * output queue, and message flow(s). It also deletes the channel's mutex. - * - * \par Assumptions, External Events, and Notes: - * If the input index is out of range, an event is generated - * #PQ_CHANNEL_OUT_OF_RANGE_ERR_EID - * - * \param [in] index - * Index of the channel - */ -void PQ_Channel_Cleanup(uint16 index); - -int32 PQ_Channel_OpenChannel(const uint32 index, const char *ChannelName, +int32 PQ_Channel_OpenChannel(PQ_ChannelData_t *Channel, const char *ChannelName, const char *ConfigTableName, const char *ConfigTableFileName, PQ_ChannelTbl_t *BackupTblPtr, const char *DumpTableName, const uint32 CfCntSemMax, const char *CfCntSemName) { - int32 status = PQ_CHANNEL_OPEN_ERR; - char pipeName[OS_MAX_API_NAME]; - PQ_ChannelData_t *channel = NULL; + int32 Status = PQ_CHANNEL_OPEN_ERR; + //char pipeName[OS_MAX_API_NAME]; + //PQ_ChannelData_t *channel = NULL; - if (index >= PQ_MAX_CHANNELS) - { - status = PQ_CHANNEL_OUT_OF_RANGE_ERR; - (void) CFE_EVS_SendEvent(PQ_INIT_APP_ERR_EID, - CFE_EVS_ERROR, - "Invalid channel index of %u.", (unsigned int)index); - return status; - } + //if (index >= PQ_MAX_CHANNELS) + //{ + //status = PQ_CHANNEL_OUT_OF_RANGE_ERR; + //(void) CFE_EVS_SendEvent(PQ_INIT_APP_ERR_EID, + //CFE_EVS_ERROR, + //"Invalid channel index of %u.", (unsigned int)index); + //return status; + //} - channel = &PQ_AppData.ChannelData[index]; + //channel = &PQ_AppData.ChannelData[index]; - if(channel->State == PQ_CHANNEL_CLOSED) + if(Channel->State == PQ_CHANNEL_CLOSED) { - PQ_Channel_LockByRef(channel); + PQ_Channel_LockByRef(Channel); - snprintf(pipeName, OS_MAX_API_NAME, "PQ_%s", ChannelName); + //snprintf(pipeName, OS_MAX_API_NAME, "PQ_%s", ChannelName); - strncpy(channel->ChannelName, - ChannelName, sizeof(channel->ChannelName)); - channel->ChannelName[sizeof(channel->ChannelName) - 1] = '\0'; + strncpy(Channel->ChannelName, + ChannelName, sizeof(Channel->ChannelName)); + Channel->ChannelName[sizeof(Channel->ChannelName) - 1] = '\0'; - strncpy(channel->ConfigTableName, - ConfigTableName, sizeof(channel->ConfigTableName)); - channel->ConfigTableName[sizeof(channel->ConfigTableName) - 1] = '\0'; + strncpy(Channel->ConfigTableName, + ConfigTableName, sizeof(Channel->ConfigTableName)); + Channel->ConfigTableName[sizeof(Channel->ConfigTableName) - 1] = '\0'; - strncpy(channel->ConfigTableFileName, - ConfigTableFileName, sizeof(channel->ConfigTableFileName)); - channel->ConfigTableFileName[sizeof(channel->ConfigTableFileName) - 1] = '\0'; + strncpy(Channel->ConfigTableFileName, + ConfigTableFileName, sizeof(Channel->ConfigTableFileName)); + Channel->ConfigTableFileName[sizeof(Channel->ConfigTableFileName) - 1] = '\0'; - channel->BackupTblPtr = BackupTblPtr; + Channel->BackupTblPtr = BackupTblPtr; - strncpy(channel->DumpTableName, - DumpTableName, sizeof(channel->DumpTableName)); - channel->DumpTableName[sizeof(channel->DumpTableName) - 1] = '\0'; + strncpy(Channel->DumpTableName, + DumpTableName, sizeof(Channel->DumpTableName)); + Channel->DumpTableName[sizeof(Channel->DumpTableName) - 1] = '\0'; /* Set up CF Throttling semaphore */ - channel->CfCntSemMax = CfCntSemMax; - strncpy(channel->CfCntSemName, CfCntSemName, - sizeof(channel->CfCntSemName)); - channel->CfCntSemName[OS_MAX_API_NAME - 1] = '\0'; + Channel->CfCntSemMax = CfCntSemMax; + strncpy(Channel->CfCntSemName, CfCntSemName, + sizeof(Channel->CfCntSemName)); + Channel->CfCntSemName[OS_MAX_API_NAME - 1] = '\0'; /* Initialize CF Counting Sem to CfCntSemMax */ /* NOTE: This will fail if two channels attempt to use the same * CF channel. */ - status = OS_CountSemCreate(&channel->CfCntSemId, - channel->CfCntSemName, - channel->CfCntSemMax, 0); - if (status != OS_SUCCESS) + Status = OS_CountSemCreate(&Channel->CfCntSemId, + Channel->CfCntSemName, + Channel->CfCntSemMax, 0); + if (Status != OS_SUCCESS) { CFE_EVS_SendEvent(PQ_INIT_APP_ERR_EID, CFE_EVS_ERROR, "Failed to create counting semaphore " - "for CF channel semaphore:%s for TO channel(%u):%s . " + "for CF channel semaphore:%s for PQ channel:%s . " "(OSAL Error:%d)", - channel->CfCntSemName, (unsigned int)index, channel->ChannelName, (int)status); + Channel->CfCntSemName, Channel->ChannelName, (int)Status); - PQ_Channel_UnlockByRef(channel); - return status; + PQ_Channel_UnlockByRef(Channel); + return Status; } - status = PQ_OutputQueue_Buildup(channel); - if (status != OS_SUCCESS) + Status = PQ_OutputQueue_Buildup(Channel); + if (Status != OS_SUCCESS) { /* This is a critical error for this channel. No sense in continuing. Destroy * the counting semaphore we just created, and return the error back to the caller. */ - OS_CountSemDelete(channel->CfCntSemId); + OS_CountSemDelete(Channel->CfCntSemId); - channel->State = PQ_CHANNEL_CLOSED; + Channel->State = PQ_CHANNEL_CLOSED; - PQ_Channel_UnlockByRef(channel); - return status; + PQ_Channel_UnlockByRef(Channel); + return Status; } /* TODO commented out. Messages passed in directly no pipes needed. */ @@ -237,41 +197,40 @@ int32 PQ_Channel_OpenChannel(const uint32 index, const char *ChannelName, //} /* Set channel state: required state to complete table initialization */ - channel->State = PQ_CHANNEL_OPENED; - - status = PQ_InitTables(channel); - if (status != CFE_SUCCESS) + Channel->State = PQ_CHANNEL_OPENED; + + Status = PQ_InitTables(Channel); + if (Status != CFE_SUCCESS) { /* This is a critical error for this channel. No sense in continuing. Destroy * the counting semaphore, call the Output queue teardown function, and delete * the pipe before returning the error back to the caller. */ - (void) OS_CountSemDelete(channel->CfCntSemId); - (void) PQ_OutputQueue_Teardown(channel); - (void) CFE_SB_DeletePipe(channel->DataPipeId); + (void) OS_CountSemDelete(Channel->CfCntSemId); + (void) PQ_OutputQueue_Teardown(Channel); + //(void) CFE_SB_DeletePipe(channel->DataPipeId); CFE_EVS_SendEvent(PQ_INIT_CONFIG_ERR_EID, CFE_EVS_ERROR, - "Failed to init config tables (0x%08X) for channel %u", - (unsigned int)status, - (unsigned int)index); + "Failed to init config tables (0x%08X) for channel", + (unsigned int)Status); - channel->State = PQ_CHANNEL_CLOSED; + Channel->State = PQ_CHANNEL_CLOSED; - PQ_Channel_UnlockByRef(channel); - return status; + PQ_Channel_UnlockByRef(Channel); + return Status; } /* Initialize the memory pool for the priority queues and output channel * queues. */ - status = CFE_ES_PoolCreateEx(&channel->MemPoolHandle, - channel->MemPoolBuffer, + Status = CFE_ES_PoolCreateEx(&Channel->MemPoolHandle, + Channel->MemPoolBuffer, PQ_NUM_BYTES_IN_MEM_POOL, PQ_MAX_MEMPOOL_BLK_SIZES, &PQ_MemPoolDefSize[0], CFE_ES_USE_MUTEX); - if (status != CFE_SUCCESS) + if (Status != CFE_SUCCESS) { /* This is a critical error for this channel. No sense in continuing. Destroy * the counting semaphore, call the Output queue teardown function, and delete @@ -279,290 +238,264 @@ int32 PQ_Channel_OpenChannel(const uint32 index, const char *ChannelName, * anything with the tables. They will just be reinitialized the next time * we try opening the channel. */ - (void) OS_CountSemDelete(channel->CfCntSemId); - (void) PQ_OutputQueue_Teardown(channel); - (void) CFE_SB_DeletePipe(channel->DataPipeId); + (void) OS_CountSemDelete(Channel->CfCntSemId); + (void) PQ_OutputQueue_Teardown(Channel); + //(void) CFE_SB_DeletePipe(channel->DataPipeId); (void) CFE_EVS_SendEvent(PQ_CR_POOL_ERR_EID, CFE_EVS_ERROR, - "Error creating memory pool (0x%08X) for channel %u",(unsigned int)status, - (unsigned int)index); + "Error creating memory pool (0x%08X) for channel",(unsigned int)Status); - channel->State = PQ_CHANNEL_CLOSED; + Channel->State = PQ_CHANNEL_CLOSED; - PQ_Channel_UnlockByRef(channel); + PQ_Channel_UnlockByRef(Channel); - return status; + return Status; } - PQ_Channel_UnlockByRef(channel); + PQ_Channel_UnlockByRef(Channel); } - return status; + return Status; } -void PQ_Channel_ProcessTelemetryAll(void) -{ - uint32 i; - PQ_ChannelData_t *channel = NULL; +//void PQ_Channel_ProcessTelemetryAll(void) +//{ + //uint32 i; + //PQ_ChannelData_t *channel = NULL; - for (i = 0; i < PQ_MAX_CHANNELS; ++i) - { - channel = &PQ_AppData.ChannelData[i]; - if(PQ_CHANNEL_OPENED == channel->State) - { - PQ_Channel_ProcessTelemetry(channel); - } - } -} + //for (i = 0; i < PQ_MAX_CHANNELS; ++i) + //{ + //channel = &PQ_AppData.ChannelData[i]; + //if(PQ_CHANNEL_OPENED == channel->State) + //{ + //PQ_Channel_ProcessTelemetry(channel); + //} + //} +//} -void PQ_Channel_ProcessTelemetry(PQ_ChannelData_t *channel) -{ - PQ_Channel_LockByRef(channel); - PQ_Classifier_Run(channel); - PQ_Scheduler_Run(channel); - PQ_Channel_UnlockByRef(channel); -} +//void PQ_Channel_ProcessTelemetry(PQ_ChannelData_t *channel) +//{ + //PQ_Channel_LockByRef(channel); + //PQ_Classifier_Run(channel); + //PQ_Scheduler_Run(channel); + //PQ_Channel_UnlockByRef(channel); +//} -void PQ_Channel_ResetCountsAll(void) -{ - uint32 i; - PQ_ChannelData_t *channel = NULL; +//void PQ_Channel_ResetCountsAll(void) +//{ + //uint32 i; + //PQ_ChannelData_t *channel = NULL; - for (i = 0; i < PQ_MAX_CHANNELS; ++i) - { - channel = &PQ_AppData.ChannelData[i]; - PQ_Channel_ResetCounts(channel); - } -} + //for (i = 0; i < PQ_MAX_CHANNELS; ++i) + //{ + //channel = &PQ_AppData.ChannelData[i]; + //PQ_Channel_ResetCounts(channel); + //} +//} -void PQ_Channel_ResetCounts(PQ_ChannelData_t *channel) +void PQ_Channel_ResetCounts(PQ_ChannelData_t *Channel) { - PQ_Channel_LockByRef(channel); - channel->PeakMemInUse = 0; - channel->MemFullCount = 0; - channel->SentMsgCount = 0; - channel->QueuedMsgCount = 0; - channel->DropMsgCount = 0; - channel->FailedMsgCount = 0; - channel->BytesSent = 0; - PQ_MessageFlow_ResetCountsAll(channel); - PQ_PriorityQueue_ResetCountsAll(channel); - PQ_OutputQueue_ResetCounts(channel); - PQ_Channel_UnlockByRef(channel); + PQ_Channel_LockByRef(Channel); + Channel->PeakMemInUse = 0; + Channel->MemFullCount = 0; + Channel->SentMsgCount = 0; + Channel->QueuedMsgCount = 0; + Channel->DropMsgCount = 0; + Channel->FailedMsgCount = 0; + Channel->BytesSent = 0; + PQ_MessageFlow_ResetCountsAll(Channel); + PQ_PriorityQueue_ResetCountsAll(Channel); + PQ_OutputQueue_ResetCounts(Channel); + PQ_Channel_UnlockByRef(Channel); } -void PQ_Channel_LockByIndex(uint16 index) -{ - PQ_ChannelData_t *channel = NULL; +//void PQ_Channel_LockByIndex(uint16 index) +//{ + //PQ_ChannelData_t *channel = NULL; - if (index < PQ_MAX_CHANNELS) - { - channel = &PQ_AppData.ChannelData[index]; - PQ_Channel_LockByRef(channel); - } - else - { - (void) CFE_EVS_SendEvent(PQ_CHANNEL_OUT_OF_RANGE_ERR_EID, - CFE_EVS_ERROR, - "Invalid channel index (%u).", - index); - } -} + //if (index < PQ_MAX_CHANNELS) + //{ + //channel = &PQ_AppData.ChannelData[index]; + //PQ_Channel_LockByRef(channel); + //} + //else + //{ + //(void) CFE_EVS_SendEvent(PQ_CHANNEL_OUT_OF_RANGE_ERR_EID, + //CFE_EVS_ERROR, + //"Invalid channel index (%u).", + //index); + //} +//} -void PQ_Channel_UnlockByIndex(uint16 index) -{ - PQ_ChannelData_t *channel = NULL; +//void PQ_Channel_UnlockByIndex(uint16 index) +//{ + //PQ_ChannelData_t *channel = NULL; - if (index < PQ_MAX_CHANNELS) - { - channel = &PQ_AppData.ChannelData[index]; - PQ_Channel_UnlockByRef(channel); + //if (index < PQ_MAX_CHANNELS) + //{ + //channel = &PQ_AppData.ChannelData[index]; + //PQ_Channel_UnlockByRef(channel); - } - else - { - (void) CFE_EVS_SendEvent(PQ_CHANNEL_OUT_OF_RANGE_ERR_EID, - CFE_EVS_ERROR, - "Invalid channel index (%u).", - index); - } -} + //} + //else + //{ + //(void) CFE_EVS_SendEvent(PQ_CHANNEL_OUT_OF_RANGE_ERR_EID, + //CFE_EVS_ERROR, + //"Invalid channel index (%u).", + //index); + //} +//} -void PQ_Channel_LockByRef(PQ_ChannelData_t *channel) +void PQ_Channel_LockByRef(PQ_ChannelData_t *Channel) { - int32 status = OS_SUCCESS; + int32 Status = OS_SUCCESS; - if (NULL != channel) + if (NULL != Channel) { - status = OS_MutSemTake(channel->MutexID); - if (OS_SUCCESS != status) + Status = OS_MutSemTake(Channel->MutexID); + if (OS_SUCCESS != Status) { (void) CFE_EVS_SendEvent(PQ_CHANNEL_LOCK_MUTEX_ERR_EID, CFE_EVS_ERROR, "Channel lock mutex failure (%i) on channel %u.", - (int)status, - (unsigned int)channel->channelIdx); + (int)Status, + (unsigned int)Channel->channelIdx); } } } -void PQ_Channel_UnlockByRef(PQ_ChannelData_t *channel) +void PQ_Channel_UnlockByRef(PQ_ChannelData_t *Channel) { - int32 status = OS_SUCCESS; + int32 Status = OS_SUCCESS; - if (NULL != channel) + if (NULL != Channel) { - status = OS_MutSemGive(channel->MutexID); - if (OS_SUCCESS != status) + Status = OS_MutSemGive(Channel->MutexID); + if (OS_SUCCESS != Status) { (void) CFE_EVS_SendEvent(PQ_CHANNEL_UNLOCK_MUTEX_ERR_EID, CFE_EVS_ERROR, "Channel unlock mutex failure (%i) on channel %u.", - (int)status, - (unsigned int)channel->channelIdx); + (int)Status, + (unsigned int)Channel->channelIdx); } } } -void PQ_Channel_InitAll(void) -{ - uint32 i; +//void PQ_Channel_InitAll(void) +//{ + //uint32 i; - for (i = 0; i < PQ_MAX_CHANNELS; ++i) - { - (void) PQ_Channel_Init(i); - } -} + //for (i = 0; i < PQ_MAX_CHANNELS; ++i) + //{ + //(void) PQ_Channel_Init(i); + //} +//} -int32 PQ_Channel_Init(uint16 index) +int32 PQ_Channel_Init(uint16 Index, PQ_ChannelData_t *Channel) { - int32 status = CFE_SUCCESS; - char mutexName[OS_MAX_API_NAME]; - PQ_ChannelData_t *channel = NULL; + int32 Status = CFE_SUCCESS; + char MutexName[OS_MAX_API_NAME]; + //PQ_ChannelData_t *channel = NULL; - if (index >= PQ_MAX_CHANNELS) - { - status = PQ_CHANNEL_OUT_OF_RANGE_ERR; + //if (index >= PQ_MAX_CHANNELS) + //{ + //status = PQ_CHANNEL_OUT_OF_RANGE_ERR; - (void) CFE_EVS_SendEvent(PQ_CHANNEL_OUT_OF_RANGE_ERR_EID, - CFE_EVS_ERROR, - "Invalid channel index (%u).", - index); - return status; - } + //(void) CFE_EVS_SendEvent(PQ_CHANNEL_OUT_OF_RANGE_ERR_EID, + //CFE_EVS_ERROR, + //"Invalid channel index (%u).", + //index); + //return status; + //} - channel = &PQ_AppData.ChannelData[index]; + //channel = &PQ_AppData.ChannelData[index]; - snprintf(mutexName, OS_MAX_API_NAME, "PQ_MUT_%u", (unsigned int)index); + snprintf(MutexName, OS_MAX_API_NAME, "PQ_MUT_%u", (unsigned int)Index); - status = OS_MutSemCreate(&channel->MutexID, mutexName, 0); - if(status != CFE_SUCCESS) { + Status = OS_MutSemCreate(&Channel->MutexID, MutexName, 0); + if(Status != CFE_SUCCESS) { - channel->State = PQ_CHANNEL_UNKNOWN; + Channel->State = PQ_CHANNEL_UNKNOWN; } else { - channel->channelIdx = index; - channel->OutputQueue.OSALQueueID = OS_MAX_QUEUES; - channel->State = PQ_CHANNEL_CLOSED; + Channel->channelIdx = Index; + Channel->OutputQueue.OSALQueueID = OS_MAX_QUEUES; + Channel->State = PQ_CHANNEL_CLOSED; } - return status; + return Status; } -void PQ_Channel_CleanupAll(void) -{ - uint32 i; +//void PQ_Channel_CleanupAll(void) +//{ + //uint32 i; - //PQ_OutputChannel_CustomCleanupAll(); + ////PQ_OutputChannel_CustomCleanupAll(); - for (i = 0; i < PQ_MAX_CHANNELS; ++i) - { - PQ_Channel_Cleanup(i); - } -} + //for (i = 0; i < PQ_MAX_CHANNELS; ++i) + //{ + //PQ_Channel_Cleanup(i); + //} +//} -void PQ_Channel_Cleanup(uint16 index) +void PQ_Channel_Cleanup(PQ_ChannelData_t *Channel) { - int32 status = CFE_SUCCESS; - PQ_ChannelData_t *channel = NULL; - - if (index < PQ_MAX_CHANNELS) + int32 Status = CFE_SUCCESS; + + if(Channel->State != PQ_CHANNEL_UNKNOWN) { - channel = &PQ_AppData.ChannelData[index]; + Status = PQ_MessageFlow_TeardownAll(Channel); + if (Status != CFE_SUCCESS) + { + (void) CFE_EVS_SendEvent(PQ_CHANNEL_TEARDOWN_ERR_EID, + CFE_EVS_ERROR, + "Message Flow Teardown failure %ld on channel.", + Status); + } - if(channel->State != PQ_CHANNEL_UNKNOWN) + Status = PQ_PriorityQueue_TeardownAll(Channel); + if (Status != CFE_SUCCESS) { - status = PQ_MessageFlow_TeardownAll(channel); - if (status != CFE_SUCCESS) - { - (void) CFE_EVS_SendEvent(PQ_CHANNEL_TEARDOWN_ERR_EID, - CFE_EVS_ERROR, - "Message Flow Teardown failure %ld on channel %u.", - status, index); - } - - status = PQ_PriorityQueue_TeardownAll(channel); - if (status != CFE_SUCCESS) - { - (void) CFE_EVS_SendEvent(PQ_CHANNEL_TEARDOWN_ERR_EID, - CFE_EVS_ERROR, - "Priority Queue Teardown failure %ld on channel %u.", - status, index); - } - - status = PQ_OutputQueue_Teardown(channel); - if (status != CFE_SUCCESS) - { - (void) CFE_EVS_SendEvent(PQ_CHANNEL_TEARDOWN_ERR_EID, - CFE_EVS_ERROR, - "Output Queue Teardown failure %ld on channel %u.", - status, index); - } - - OS_MutSemDelete(channel->MutexID); + (void) CFE_EVS_SendEvent(PQ_CHANNEL_TEARDOWN_ERR_EID, + CFE_EVS_ERROR, + "Priority Queue Teardown failure %ld on channel.", + Status); } - } - else - { - (void) CFE_EVS_SendEvent(PQ_CHANNEL_OUT_OF_RANGE_ERR_EID, - CFE_EVS_ERROR, - "Invalid channel index (%u).", - index); + Status = PQ_OutputQueue_Teardown(Channel); + if (Status != CFE_SUCCESS) + { + (void) CFE_EVS_SendEvent(PQ_CHANNEL_TEARDOWN_ERR_EID, + CFE_EVS_ERROR, + "Output Queue Teardown failure %ld on channel.", + Status); + } + + OS_MutSemDelete(Channel->MutexID); } } -uint8 PQ_Channel_State(uint16 index) +uint8 PQ_Channel_State(PQ_ChannelData_t *Channel) { - if (index < PQ_MAX_CHANNELS) - { - return PQ_AppData.ChannelData[index].State; - } - else - { - (void) CFE_EVS_SendEvent(PQ_CHANNEL_OUT_OF_RANGE_ERR_EID, - CFE_EVS_ERROR, - "Invalid channel index (%u).", - index); - return PQ_CHANNEL_UNKNOWN; - } + return Channel->State; } diff --git a/apps/pq_lib/fsw/src/pq_classifier.c b/apps/pq_lib/fsw/src/pq_classifier.c index a8ae446c1..e5e5f5a53 100644 --- a/apps/pq_lib/fsw/src/pq_classifier.c +++ b/apps/pq_lib/fsw/src/pq_classifier.c @@ -43,9 +43,9 @@ /* Run the Classifier algorithm */ /* */ /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ -void PQ_Classifier_Run(PQ_ChannelData_t *channel, CFE_SB_MsgPtr_t DataMsgPtr) +void PQ_Classifier_Run(PQ_ChannelData_t *channel, CFE_SB_MsgPtr_t DataMsgPtr, PQ_HkTlm_t *HkTlmPtr) { - int32 status = CFE_SUCCESS; + int32 status = CFE_SUCCESS; PQ_PriorityQueue_t *pqueue = NULL; PQ_MessageFlow_t *msgFlow = NULL; uint32 msgFlowIndex = 0; @@ -66,10 +66,7 @@ void PQ_Classifier_Run(PQ_ChannelData_t *channel, CFE_SB_MsgPtr_t DataMsgPtr) PQ_MAX_MSG_LENGTH, (unsigned short)DataMsgID, (unsigned short)channel->channelIdx); - (void) OS_MutSemTake(PQ_AppData.MutexID); - PQ_AppData.HkTlm.usTotalMsgDropped++; - (void) OS_MutSemGive(PQ_AppData.MutexID); - + HkTlmPtr->usTotalMsgDropped++; channel->DropMsgCount++; goto end_of_function; } @@ -86,11 +83,7 @@ void PQ_Classifier_Run(PQ_ChannelData_t *channel, CFE_SB_MsgPtr_t DataMsgPtr) "Classifier Recvd invalid msgId (0x%04X) or message flow was removed on channel (%u)", (unsigned short)DataMsgID, (unsigned short)channel->channelIdx); - - (void) OS_MutSemTake(PQ_AppData.MutexID); - PQ_AppData.HkTlm.usTotalMsgDropped++; - (void) OS_MutSemGive(PQ_AppData.MutexID); - + HkTlmPtr->usTotalMsgDropped++; channel->DropMsgCount++; goto end_of_function; } @@ -109,7 +102,6 @@ void PQ_Classifier_Run(PQ_ChannelData_t *channel, CFE_SB_MsgPtr_t DataMsgPtr) { /* The message was queued. Increment counters. */ channel->DumpTbl.MessageFlow[msgFlowIndex].QueuedMsgCnt++; - channel->QueuedMsgCount++; } /* The call to PQ_PriorityQueue_QueueMsg may generate the following errors: @@ -119,11 +111,8 @@ void PQ_Classifier_Run(PQ_ChannelData_t *channel, CFE_SB_MsgPtr_t DataMsgPtr) { /* Queue is full. Increment counters and drop the message. */ channel->DumpTbl.MessageFlow[msgFlowIndex].DroppedMsgCnt++; - - (void) OS_MutSemTake(PQ_AppData.MutexID); - PQ_AppData.HkTlm.usTotalMsgDropped++; - (void) OS_MutSemGive(PQ_AppData.MutexID); + HkTlmPtr->usTotalMsgDropped++; channel->DropMsgCount++; (void) CFE_EVS_SendEvent(PQ_MSG_DROP_FROM_FLOW_DBG_EID, diff --git a/apps/pq_lib/fsw/src/pq_lib.c b/apps/pq_lib/fsw/src/pq_lib.c index 4e623bab4..3287e49d9 100644 --- a/apps/pq_lib/fsw/src/pq_lib.c +++ b/apps/pq_lib/fsw/src/pq_lib.c @@ -15,6 +15,7 @@ int32 PQ_LibInit(void) }/* End PQ_LibInit */ + int32 PQ_InitData(void) { int32 status = CFE_SUCCESS; @@ -36,16 +37,6 @@ int32 PQ_InitData(void) } -int32 PQ_InitTelem(CFE_SB_MsgId_t MsgID) -{ - /* Init housekeeping packet */ - CFE_SB_InitMsg(&PQ_AppData.HkTlm, - MsgID, sizeof(PQ_AppData.HkTlm), TRUE); - - return CFE_SUCCESS; -} - - int32 PQ_AppInit(void) { PQ_Channel_InitAll(); @@ -56,7 +47,7 @@ int32 PQ_AppInit(void) int32 PQ_AppCleanup(void) { - PQ_Channel_CleanupAll(); + //PQ_Channel_CleanupAll(); OS_MutSemDelete(PQ_AppData.MutexID); return CFE_SUCCESS; diff --git a/apps/pq_lib/fsw/src/pq_message_flow.c b/apps/pq_lib/fsw/src/pq_message_flow.c index 7cb748541..df7060764 100644 --- a/apps/pq_lib/fsw/src/pq_message_flow.c +++ b/apps/pq_lib/fsw/src/pq_message_flow.c @@ -57,30 +57,30 @@ int32 PQ_MessageFlow_Buildup(PQ_ChannelData_t *channel) return PQ_MESSAGE_FLOW_NO_TABLE_ERR; } - /* - * Create message flows by subscribing to messages. - */ - for (i = 0; i < PQ_MAX_MESSAGE_FLOWS; ++i) - { - if (channel->ConfigTblPtr->MessageFlow[i].MsgId != 0) - { - /* Subscribe to message. */ - status = CFE_SB_SubscribeEx(channel->ConfigTblPtr->MessageFlow[i].MsgId, channel->DataPipeId, - CFE_SB_Default_Qos, channel->ConfigTblPtr->MessageFlow[i].MsgLimit); - if (status != CFE_SUCCESS) - { - /* We failed to subscribe to a message. However, lets just keep going so we can maybe - * subscribe to at least some of the messages. Report and keep going. - */ - (void) CFE_EVS_SendEvent(PQ_SUBSCRIBE_ERR_EID, - CFE_EVS_ERROR, - "Message flow failed to subscribe to (0x%08X) on channel %d. (%ld)", - channel->ConfigTblPtr->MessageFlow[i].MsgId, - channel->channelIdx, - status); - } - } - } + ///* + //* Create message flows by subscribing to messages. + //*/ + //for (i = 0; i < PQ_MAX_MESSAGE_FLOWS; ++i) + //{ + //if (channel->ConfigTblPtr->MessageFlow[i].MsgId != 0) + //{ + ///* Subscribe to message. */ + //status = CFE_SB_SubscribeEx(channel->ConfigTblPtr->MessageFlow[i].MsgId, channel->DataPipeId, + //CFE_SB_Default_Qos, channel->ConfigTblPtr->MessageFlow[i].MsgLimit); + //if (status != CFE_SUCCESS) + //{ + ///* We failed to subscribe to a message. However, lets just keep going so we can maybe + //* subscribe to at least some of the messages. Report and keep going. + //*/ + //(void) CFE_EVS_SendEvent(PQ_SUBSCRIBE_ERR_EID, + //CFE_EVS_ERROR, + //"Message flow failed to subscribe to (0x%08X) on channel %d. (%ld)", + //channel->ConfigTblPtr->MessageFlow[i].MsgId, + //channel->channelIdx, + //status); + //} + //} + //} return CFE_SUCCESS; } @@ -106,28 +106,28 @@ int32 PQ_MessageFlow_TeardownAll(PQ_ChannelData_t *channel) return PQ_MESSAGE_FLOW_NO_TABLE_ERR; } - for (i = 0; i < PQ_MAX_MESSAGE_FLOWS; ++i) - { - if (channel->ConfigTblPtr->MessageFlow[i].MsgId != 0) - { - /* Unsubscribe from message. */ - status = CFE_SB_Unsubscribe(channel->ConfigTblPtr->MessageFlow[i].MsgId, - channel->DataPipeId); + //for (i = 0; i < PQ_MAX_MESSAGE_FLOWS; ++i) + //{ + //if (channel->ConfigTblPtr->MessageFlow[i].MsgId != 0) + //{ + ///* Unsubscribe from message. */ + //status = CFE_SB_Unsubscribe(channel->ConfigTblPtr->MessageFlow[i].MsgId, + //channel->DataPipeId); - if (status != CFE_SUCCESS) - { - /* This is not a critical error. Just continue processing the rest of the messages. - * Will not return the failure back. - */ - (void) CFE_EVS_SendEvent(PQ_UNSUBSCRIBE_ERR_EID, - CFE_EVS_ERROR, - "Message flow failed to unsubscribe from 0x%04x on channel %d. (%ld)", - channel->ConfigTblPtr->MessageFlow[i].MsgId, - channel->channelIdx, - status); - } - } - } + //if (status != CFE_SUCCESS) + //{ + ///* This is not a critical error. Just continue processing the rest of the messages. + //* Will not return the failure back. + //*/ + //(void) CFE_EVS_SendEvent(PQ_UNSUBSCRIBE_ERR_EID, + //CFE_EVS_ERROR, + //"Message flow failed to unsubscribe from 0x%04x on channel %d. (%ld)", + //channel->ConfigTblPtr->MessageFlow[i].MsgId, + //channel->channelIdx, + //status); + //} + //} + //} return CFE_SUCCESS; } @@ -334,21 +334,21 @@ osalbool PQ_MessageFlow_Add( return FALSE; } - /* Now subscribe to the message to ensure the message ID is - * valid. - */ - status = CFE_SB_SubscribeEx(MsgID, channel->DataPipeId, - CFE_SB_Default_Qos, MsgLimit); - if (status != CFE_SUCCESS) - { - (void) CFE_EVS_SendEvent(PQ_CMD_ADD_MSG_FLOW_ERR_EID, - CFE_EVS_ERROR, - "Message flow failed to subscribe to (0x%08X) on channel %d. (%ld)", - MsgID, ChannelIdx, status); + ///* Now subscribe to the message to ensure the message ID is + //* valid. + //*/ + //status = CFE_SB_SubscribeEx(MsgID, channel->DataPipeId, + //CFE_SB_Default_Qos, MsgLimit); + //if (status != CFE_SUCCESS) + //{ + //(void) CFE_EVS_SendEvent(PQ_CMD_ADD_MSG_FLOW_ERR_EID, + //CFE_EVS_ERROR, + //"Message flow failed to subscribe to (0x%08X) on channel %d. (%ld)", + //MsgID, ChannelIdx, status); - PQ_Channel_UnlockByRef(channel); - return FALSE; - } + //PQ_Channel_UnlockByRef(channel); + //return FALSE; + //} /* Now that the message was successfully subscribed to, set the * message flow definition. diff --git a/apps/pq_lib/fsw/src/pq_output_queue.c b/apps/pq_lib/fsw/src/pq_output_queue.c index b35ef889a..653c1dc6e 100644 --- a/apps/pq_lib/fsw/src/pq_output_queue.c +++ b/apps/pq_lib/fsw/src/pq_output_queue.c @@ -31,9 +31,7 @@ * *****************************************************************************/ -//#include "to_app.h" #include "pq_output_queue.h" -//#include "to_custom.h" #include "pq_events.h" #include "pq_structs.h" From 9ffbbd396c505ab8d5738ee464ae60cb1d90ee80 Mon Sep 17 00:00:00 2001 From: cnalley Date: Thu, 4 Feb 2021 22:19:13 +0000 Subject: [PATCH 039/370] More refactoring. --- apps/pq_lib/fsw/public_inc/pq_config_utils.h | 4 +- apps/pq_lib/fsw/src/pq_config_utils.c | 68 ++++++++++---------- apps/pq_lib/fsw/src/pq_lib.c | 10 +-- 3 files changed, 40 insertions(+), 42 deletions(-) diff --git a/apps/pq_lib/fsw/public_inc/pq_config_utils.h b/apps/pq_lib/fsw/public_inc/pq_config_utils.h index 0ffce664d..b2f25eb58 100644 --- a/apps/pq_lib/fsw/public_inc/pq_config_utils.h +++ b/apps/pq_lib/fsw/public_inc/pq_config_utils.h @@ -197,7 +197,7 @@ int32 PQ_ValidateConfigGrndTbl(void *configTblPtr); ** This is called during app cyclic operations. ** *************************************************************************/ -void PQ_ManageAllAppTables(void); +//void PQ_ManageAllAppTables(void); /************************************************************************/ @@ -216,7 +216,7 @@ void PQ_ManageAllAppTables(void); ** \param ChannelID The index of the channel to manage ** *************************************************************************/ -void PQ_ManageChannelTables(osalbool initialManage, uint16 ChannelID); +void PQ_ManageChannelTables(osalbool initialManage, PQ_ChannelData_t *Channel); /************************************************************************/ diff --git a/apps/pq_lib/fsw/src/pq_config_utils.c b/apps/pq_lib/fsw/src/pq_config_utils.c index 827de66fa..3af21f19d 100644 --- a/apps/pq_lib/fsw/src/pq_config_utils.c +++ b/apps/pq_lib/fsw/src/pq_config_utils.c @@ -159,7 +159,7 @@ int32 PQ_InitTables(PQ_ChannelData_t *channel) } /* Force a manage on this channel's tables since this is the first time */ - PQ_ManageChannelTables(TRUE, channel->channelIdx); + PQ_ManageChannelTables(TRUE, channel); return (status); } @@ -432,15 +432,15 @@ int32 PQ_ProcessNewConfigTbl(PQ_ChannelData_t* channel) /* Manage all tables */ /* */ /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ -void PQ_ManageAllAppTables(void) -{ - uint32 i; +//void PQ_ManageAllAppTables(void) +//{ + //uint32 i; - for (i = 0; i < PQ_MAX_CHANNELS; ++i) - { - PQ_ManageChannelTables(FALSE, i); - } -} + //for (i = 0; i < PQ_MAX_CHANNELS; ++i) + //{ + //PQ_ManageChannelTables(FALSE, i); + //} +//} /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ @@ -448,7 +448,7 @@ void PQ_ManageAllAppTables(void) /* Manage all tables */ /* */ /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ -void PQ_ManageChannelTables(osalbool initialManage, uint16 ChannelID) +void PQ_ManageChannelTables(osalbool initialManage, PQ_ChannelData_t *Channel) { int32 status = CFE_SUCCESS; @@ -461,31 +461,32 @@ void PQ_ManageChannelTables(osalbool initialManage, uint16 ChannelID) /* Override if this is the first time through to force a config table update. */ tableNeedsManaged = initialManage; - PQ_Channel_LockByIndex(ChannelID); + //PQ_Channel_LockByIndex(ChannelID); + PQ_Channel_LockByRef(Channel); - if (PQ_AppData.ChannelData[ChannelID].State != PQ_CHANNEL_OPENED) { - PQ_Channel_UnlockByIndex(ChannelID); + if (Channel->State != PQ_CHANNEL_OPENED) + { + PQ_Channel_UnlockByRef(Channel); return; } /* Always manage the dump table for this channel */ - (void) CFE_TBL_Manage(PQ_AppData.ChannelData[ChannelID].DumpTblHdl); + (void) CFE_TBL_Manage(Channel->DumpTblHdl); - status = CFE_TBL_GetStatus(PQ_AppData.ChannelData[ChannelID].ConfigTblHdl); + status = CFE_TBL_GetStatus(Channel->ConfigTblHdl); if ((status & CFE_SEVERITY_BITMASK) == CFE_SEVERITY_ERROR) { (void) CFE_EVS_SendEvent(PQ_CONFIG_TABLE_ERR_EID, CFE_EVS_ERROR, - "Channel %u config table handle failure! (0x%08X)", - ChannelID, + "Channel config table handle failure! (0x%08X)", (unsigned int)status); /* Null the table pointer, because we don't have confidence in the handle * and the pointer might be to an invalid table address. * Given this error the pointer MIGHT be set by CFE_TBL_GetAddress(), below, * but perhaps not. */ - PQ_AppData.ChannelData[ChannelID].ConfigTblPtr = 0; - CFE_TBL_ReleaseAddress(PQ_AppData.ChannelData[ChannelID].ConfigTblHdl); + Channel->ConfigTblPtr = 0; + CFE_TBL_ReleaseAddress(Channel->ConfigTblHdl); /* let's attempt Manage() below, in case we can get a valid table back */ tableNeedsManaged = TRUE; @@ -493,8 +494,8 @@ void PQ_ManageChannelTables(osalbool initialManage, uint16 ChannelID) else if (CFE_TBL_INFO_UPDATE_PENDING == status) { /* Teardown message flows and PQueues*/ - (void) PQ_MessageFlow_TeardownAll(&PQ_AppData.ChannelData[ChannelID]); - (void) PQ_PriorityQueue_TeardownAll(&PQ_AppData.ChannelData[ChannelID]); + (void) PQ_MessageFlow_TeardownAll(Channel); + (void) PQ_PriorityQueue_TeardownAll(Channel); /* Clear remaining messages from SB data pipe*/ //dequeueStatus = PQ_Channel_SBPipe_Dequeue_All(ChannelID); @@ -510,8 +511,8 @@ void PQ_ManageChannelTables(osalbool initialManage, uint16 ChannelID) /* Now null the table pointer, because it is going to be updated. Also * so that if something goes wrong it won't be set to an invalid address. * It will be set by CFE_TBL_GetAddress(), below. */ - PQ_AppData.ChannelData[ChannelID].ConfigTblPtr = 0; - CFE_TBL_ReleaseAddress(PQ_AppData.ChannelData[ChannelID].ConfigTblHdl); + Channel->ConfigTblPtr = 0; + CFE_TBL_ReleaseAddress(Channel->ConfigTblHdl); tableNeedsManaged = TRUE; } else if (CFE_TBL_INFO_VALIDATION_PENDING == status) @@ -522,13 +523,12 @@ void PQ_ManageChannelTables(osalbool initialManage, uint16 ChannelID) if (tableNeedsManaged) { /* Manage the config table */ - status = CFE_TBL_Manage(PQ_AppData.ChannelData[ChannelID].ConfigTblHdl); + status = CFE_TBL_Manage(Channel->ConfigTblHdl); if ((status != CFE_SUCCESS) && (status != CFE_TBL_INFO_UPDATED)) { (void) CFE_EVS_SendEvent(PQ_CONFIG_MANAGE_ERR_EID, CFE_EVS_ERROR, - "Failed to manage Config table for channel %u, (0x%08X)", - ChannelID, + "Failed to manage Config table for channel (0x%08X)", (unsigned int)status); } else @@ -537,32 +537,30 @@ void PQ_ManageChannelTables(osalbool initialManage, uint16 ChannelID) ** Get a pointer to the table */ status = CFE_TBL_GetAddress( - (void *) &PQ_AppData.ChannelData[ChannelID].ConfigTblPtr, - PQ_AppData.ChannelData[ChannelID].ConfigTblHdl); + (void *) &Channel->ConfigTblPtr, + Channel->ConfigTblHdl); if (CFE_TBL_INFO_UPDATED == status) { - status = PQ_ProcessNewConfigTbl(&PQ_AppData.ChannelData[ChannelID]); + status = PQ_ProcessNewConfigTbl(Channel); if (status != CFE_SUCCESS) { (void) CFE_EVS_SendEvent(PQ_CONFIG_PROCESS_CONFIG_TBL_ERR_EID, CFE_EVS_ERROR, - "Process New Config Table Failed for channel %u, (0x%08X)", - ChannelID, - (unsigned int)status); + "Process New Config Table Failed for channel (0x%08X)", + (unsigned int)status); } } else if (status != CFE_SUCCESS) { (void) CFE_EVS_SendEvent(PQ_CONFIG_ADDR_ERR_EID, CFE_EVS_ERROR, - "Failed to get Config table's address for channel %u, (0x%08X)", - ChannelID, + "Failed to get Config table's address for channel (0x%08X)", (unsigned int)status); } } } - PQ_Channel_UnlockByIndex(ChannelID); + PQ_Channel_UnlockByRef(Channel); } diff --git a/apps/pq_lib/fsw/src/pq_lib.c b/apps/pq_lib/fsw/src/pq_lib.c index 3287e49d9..dbad3234d 100644 --- a/apps/pq_lib/fsw/src/pq_lib.c +++ b/apps/pq_lib/fsw/src/pq_lib.c @@ -37,12 +37,12 @@ int32 PQ_InitData(void) } -int32 PQ_AppInit(void) -{ - PQ_Channel_InitAll(); +//int32 PQ_AppInit(void) +//{ + //PQ_Channel_InitAll(); - return CFE_SUCCESS; -} + //return CFE_SUCCESS; +//} int32 PQ_AppCleanup(void) From f59dcf6eb35c3684e7ab28c33b981a13ce587354 Mon Sep 17 00:00:00 2001 From: cnalley Date: Thu, 4 Feb 2021 22:19:49 +0000 Subject: [PATCH 040/370] Add tables. --- config/obc/sitl/target/CMakeLists.txt | 4 + .../sitl/target/apps/pq_lib/CMakeLists.txt | 7 + .../target/apps/pq_lib/tables/pq_backup_cfg.c | 74 ++++++ .../sitl/target/apps/pq_lib/tables/pq_cfg.c | 224 ++++++++++++++++++ 4 files changed, 309 insertions(+) create mode 100644 config/obc/sitl/target/apps/pq_lib/CMakeLists.txt create mode 100644 config/obc/sitl/target/apps/pq_lib/tables/pq_backup_cfg.c create mode 100644 config/obc/sitl/target/apps/pq_lib/tables/pq_cfg.c diff --git a/config/obc/sitl/target/CMakeLists.txt b/config/obc/sitl/target/CMakeLists.txt index d49fec2db..76683c193 100644 --- a/config/obc/sitl/target/CMakeLists.txt +++ b/config/obc/sitl/target/CMakeLists.txt @@ -37,6 +37,8 @@ buildliner_add_app( buildliner_add_app( pq_lib DEFINITION ${PROJECT_SOURCE_DIR}/apps/pq_lib/fsw/for_build + # TODO move this table build to sbn module? + CONFIG ${CMAKE_CURRENT_SOURCE_DIR}/apps/pq_lib ) buildliner_add_app( @@ -152,5 +154,7 @@ buildliner_add_app( buildliner_add_app( sbn_udp DEFINITION ${PROJECT_SOURCE_DIR}/apps/sbn/modules/udp/fsw/for_build + CONFIG_SOURCES + ${CMAKE_CURRENT_SOURCE_DIR}/apps/pq_lib/tables/pq_backup_cfg.c ) diff --git a/config/obc/sitl/target/apps/pq_lib/CMakeLists.txt b/config/obc/sitl/target/apps/pq_lib/CMakeLists.txt new file mode 100644 index 000000000..94754ad68 --- /dev/null +++ b/config/obc/sitl/target/apps/pq_lib/CMakeLists.txt @@ -0,0 +1,7 @@ +set(APP_NAME pq_lib) + +buildliner_add_table( + ${APP_NAME} + NAME pq_cfg + SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/tables/pq_cfg.c +) diff --git a/config/obc/sitl/target/apps/pq_lib/tables/pq_backup_cfg.c b/config/obc/sitl/target/apps/pq_lib/tables/pq_backup_cfg.c new file mode 100644 index 000000000..b55a28fb1 --- /dev/null +++ b/config/obc/sitl/target/apps/pq_lib/tables/pq_backup_cfg.c @@ -0,0 +1,74 @@ +/************************************************************************ + ** Includes + *************************************************************************/ +#include "cfe_tbl_filedef.h" +#include "pq_structs.h" +#include "msg_ids.h" + + +/************************************************************************ + ** Defines + *************************************************************************/ + +#define PQ_PQUEUE_SINGLE_PASS_IDX 0 +#define PQ_PQUEUE_HIGH_OPS_RSRVD_IDX 1 +#define PQ_PQUEUE_HIGH_IDX 2 +#define PQ_PQUEUE_MEDIUM_IDX 3 +#define PQ_PQUEUE_LOW_IDX 4 + +/** + ** \brief Default TO config table data + */ +PQ_ChannelTbl_t PQ_BackupConfigTbl = +{ + /* Table ID */ + 0, + { + /* Message Flows */ + /* Ground Queues */ + {TO_HK_TLM_MID, 1, PQ_PQUEUE_HIGH_IDX}, + {TO_DATA_TYPE_MID, 1, PQ_PQUEUE_HIGH_IDX}, + {TO_DIAG_TLM_MID, 1, PQ_PQUEUE_HIGH_IDX}, + {CFE_ES_HK_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, + {CFE_EVS_HK_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, + {CFE_SB_HK_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, + {CFE_TBL_HK_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, + {CFE_TIME_HK_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, + {CFE_TIME_DIAG_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, + {CFE_EVS_EVENT_MSG_MID, 32, PQ_PQUEUE_MEDIUM_IDX}, + {CFE_SB_STATS_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, + {CFE_ES_APP_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, + {CFE_TBL_REG_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, + {CFE_SB_ONESUB_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, + {CFE_ES_SHELL_TLM_MID, 32, PQ_PQUEUE_MEDIUM_IDX}, + {CFE_ES_MEMSTATS_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, + {CF_HK_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, + {CF_TRANS_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, + {CF_CONFIG_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, + {CF_SPACE_TO_GND_PDU_MID, 32, PQ_PQUEUE_MEDIUM_IDX}, + {FM_HK_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, + {FM_FILE_INFO_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, + {FM_DIR_LIST_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, + {FM_OPEN_FILES_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, + {FM_FREE_SPACE_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, + {MD_HK_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, + {MM_HK_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, + },{ + /* Priority Queues */ + /* PQ_PQUEUE_SINGLE_PASS_IDX */ + {PQ_PQUEUE_ENA, 100, PQ_PRIORITY_QUEUE_TYPE_SINGLE}, + /* PQ_PQUEUE_HIGH_OPS_RSRVD_IDX */ + {PQ_PQUEUE_ENA, 100, PQ_PRIORITY_QUEUE_TYPE_FIFO}, + /* PQ_PQUEUE_HIGH_IDX */ + {PQ_PQUEUE_ENA, 100, PQ_PRIORITY_QUEUE_TYPE_FIFO}, + /* PQ_PQUEUE_MEDIUM_IDX */ + {PQ_PQUEUE_ENA, 100, PQ_PRIORITY_QUEUE_TYPE_FIFO}, + /* PQ_PQUEUE_LOW_IDX */ + {PQ_PQUEUE_ENA, 100, PQ_PRIORITY_QUEUE_TYPE_FIFO} + } +}; + + +/************************/ +/* End of File Comment */ +/************************/ diff --git a/config/obc/sitl/target/apps/pq_lib/tables/pq_cfg.c b/config/obc/sitl/target/apps/pq_lib/tables/pq_cfg.c new file mode 100644 index 000000000..a2d178d95 --- /dev/null +++ b/config/obc/sitl/target/apps/pq_lib/tables/pq_cfg.c @@ -0,0 +1,224 @@ +/************************************************************************ + ** Includes + *************************************************************************/ +#include "cfe_tbl_filedef.h" +#include "pq_structs.h" +#include "msg_ids.h" + +/** + ** \brief The cFE TO config table definition. + ** + ** Content format: ObjName[64], TblName[38], Desc[32], TgtFileName[20], ObjSize + ** ObjName - variable name of config table, e.g., PQ_ConfigDefTbl[] + ** TblName - app's table name, e.g., TO.CONFIG_TBL, where TO is the same app name + ** used in cfe_es_startup.scr, and PQ_defConfigTbl is the same table + ** name passed in to CFE_TBL_Register() + ** Desc - description of table in string format + ** TgtFileName[20] - table file name, compiled as .tbl file extension + ** ObjSize - size of the entire table + ** + */ +static CFE_TBL_FileDef_t CFE_TBL_FileDef OS_USED = +{ + "PQ_ConfigTbl", "SBN.CFG", "PQ table", + "pq_cfg.tbl", (sizeof(PQ_ChannelTbl_t)) +}; + + +/************************************************************************ + ** Defines + *************************************************************************/ + +#define PQ_PQUEUE_SINGLE_PASS_IDX 0 +#define PQ_PQUEUE_HIGH_OPS_RSRVD_IDX 1 +#define PQ_PQUEUE_HIGH_IDX 2 +#define PQ_PQUEUE_MEDIUM_IDX 3 +#define PQ_PQUEUE_LOW_IDX 4 + +/** + ** \brief Default TO config table data + */ +PQ_ChannelTbl_t PQ_ConfigTbl = +{ + /* Table ID */ + 1, + { + /* Message Flows */ + /* Ground Queues */ + {AMC_HK_TLM_MID, 1, PQ_PQUEUE_HIGH_IDX}, + {MAC_HK_TLM_MID, 1, PQ_PQUEUE_HIGH_IDX}, + {MPC_HK_TLM_MID, 1, PQ_PQUEUE_HIGH_IDX}, + {ULR_HK_TLM_MID, 1, PQ_PQUEUE_HIGH_IDX}, + {RGBLED_HK_TLM_MID, 1, PQ_PQUEUE_HIGH_IDX}, + {GPS_HK_TLM_MID, 1, PQ_PQUEUE_HIGH_IDX}, + {SENS_HK_TLM_MID, 1, PQ_PQUEUE_HIGH_IDX}, + {LD_HK_TLM_MID, 1, PQ_PQUEUE_HIGH_IDX}, + {NAV_HK_TLM_MID, 1, PQ_PQUEUE_HIGH_IDX}, + {RCIN_HK_TLM_MID, 1, PQ_PQUEUE_HIGH_IDX}, + {VM_HK_TLM_MID, 1, PQ_PQUEUE_HIGH_IDX}, + {BAT_HK_TLM_MID, 1, PQ_PQUEUE_HIGH_IDX}, + {PE_HK_TLM_MID, 1, PQ_PQUEUE_HIGH_IDX}, + {AK8963_HK_TLM_MID, 1, PQ_PQUEUE_HIGH_IDX}, + {AK8963_DIAG_TLM_MID, 1, PQ_PQUEUE_HIGH_IDX}, + {MS5611_HK_TLM_MID, 1, PQ_PQUEUE_HIGH_IDX}, + {MS5611_DIAG_TLM_MID, 1, PQ_PQUEUE_HIGH_IDX}, + {MPU6050_HK_TLM_MID, 1, PQ_PQUEUE_HIGH_IDX}, + {MPU6050_DIAG_TLM_MID, 1, PQ_PQUEUE_HIGH_IDX}, + {TO_HK_TLM_MID, 1, PQ_PQUEUE_HIGH_IDX}, + {TO_DATA_TYPE_MID, 1, PQ_PQUEUE_HIGH_IDX}, + {EA_HK_TLM_MID, 1, PQ_PQUEUE_HIGH_IDX}, + {VC_HK_TLM_MID, 1, PQ_PQUEUE_HIGH_IDX}, + {TO_DIAG_TLM_MID, 1, PQ_PQUEUE_HIGH_IDX}, + {TO_DIAG_MSG_FLOW_MID, 1, PQ_PQUEUE_HIGH_IDX}, + {GPS_HK_TLM_MID, 1, PQ_PQUEUE_HIGH_IDX}, + {MAVLINK_HK_TLM_MID, 1, PQ_PQUEUE_HIGH_IDX}, + {CFE_ES_HK_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, + {CFE_EVS_HK_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, + {CFE_SB_HK_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, + {CFE_TBL_HK_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, + {CFE_TIME_HK_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, + {CFE_TIME_DIAG_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, + {CFE_EVS_EVENT_MSG_MID, 32, PQ_PQUEUE_MEDIUM_IDX}, + {CFE_SB_STATS_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, + {CFE_ES_APP_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, + {CFE_TBL_REG_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, + {CFE_SB_ONESUB_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, + {CFE_ES_SHELL_TLM_MID, 32, PQ_PQUEUE_MEDIUM_IDX}, + {CFE_ES_MEMSTATS_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, + {CF_HK_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, + {CF_TRANS_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, + {CF_CONFIG_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, + {CF_SPACE_TO_GND_PDU_MID, 32, PQ_PQUEUE_MEDIUM_IDX}, + {CS_HK_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, + {DS_HK_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, + {DS_DIAG_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, + {FM_HK_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, + {FM_FILE_INFO_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, + {FM_DIR_LIST_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, + {FM_OPEN_FILES_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, + {FM_FREE_SPACE_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, + {HK_HK_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, + {HS_HK_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, + {LC_HK_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, + {MD_HK_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, + {MM_HK_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, + {SCH_HK_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, + {SCH_DIAG_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, + {CI_HK_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, + {QAE_HK_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, + {FLOW_HK_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, + {FLOW_DIAG_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, + {MPC_DIAG_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, + {LD_DIAG_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, + {PRM_HK_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, + {VM_CONFIG_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, + +// {PX4_ACTUATOR_ARMED_MID, 1, PQ_PQUEUE_LOW_IDX}, +// {PX4_ACTUATOR_CONTROLS_0_MID, 1, PQ_PQUEUE_LOW_IDX}, +// {PX4_ACTUATOR_CONTROLS_1_MID, 1, PQ_PQUEUE_LOW_IDX}, +// {PX4_ACTUATOR_CONTROLS_2_MID, 1, PQ_PQUEUE_LOW_IDX}, +// {PX4_ACTUATOR_CONTROLS_3_MID, 1, PQ_PQUEUE_LOW_IDX}, +// {PX4_ACTUATOR_DIRECT_MID, 1, PQ_PQUEUE_LOW_IDX}, +// {PX4_ACTUATOR_OUTPUTS_MID, 1, PQ_PQUEUE_LOW_IDX}, +// {PX4_ADC_REPORT_MID, 1, PQ_PQUEUE_LOW_IDX}, +// {PX4_AIRSPEED_MID, 1, PQ_PQUEUE_LOW_IDX}, +// {PX4_ATT_POS_MOCAP_MID, 1, PQ_PQUEUE_LOW_IDX}, +// {PX4_BATTERY_STATUS_MID, 1, PQ_PQUEUE_LOW_IDX}, +// {PX4_CAMERA_TRIGGER_MID, 1, PQ_PQUEUE_LOW_IDX}, +// {PX4_COMMANDER_STATE_MID, 1, PQ_PQUEUE_LOW_IDX}, +// {PX4_CONTROL_STATE_MID, 1, PQ_PQUEUE_LOW_IDX}, +// {PX4_CPULOAD_MID, 1, PQ_PQUEUE_LOW_IDX}, +// {PX4_DEBUG_KEY_VALUE_MID, 1, PQ_PQUEUE_LOW_IDX}, +// {PX4_DIFFERENTIAL_PRESSURE_MID, 1, PQ_PQUEUE_LOW_IDX}, +// {PX4_DISTANCE_SENSOR_MID, 1, PQ_PQUEUE_LOW_IDX}, +// {PX4_FW_POS_CTRL_STATUS_MID, 1, PQ_PQUEUE_LOW_IDX}, +// {PX4_FW_VIRTUAL_ATTITUDE_SETPOINT_MID, 1, PQ_PQUEUE_LOW_IDX}, +// {PX4_FW_VIRTUAL_RATES_SETPOINT_MID, 1, PQ_PQUEUE_LOW_IDX}, +// {PX4_EKF2_INNOVATIONS_MID, 1, PQ_PQUEUE_LOW_IDX}, +// {PX4_EKF2_REPLAY_MID, 1, PQ_PQUEUE_LOW_IDX}, +// {PX4_ESC_REPORT_MID, 1, PQ_PQUEUE_LOW_IDX}, +// {PX4_ESC_STATUS_MID, 1, PQ_PQUEUE_LOW_IDX}, +// {PX4_ESTIMATOR_STATUS_MID, 1, PQ_PQUEUE_LOW_IDX}, +// {PX4_FENCE_MID, 1, PQ_PQUEUE_LOW_IDX}, +// {PX4_FENCE_VERTEX_MID, 1, PQ_PQUEUE_LOW_IDX}, +// {PX4_FILTERED_BOTTOM_FLOW_MID, 1, PQ_PQUEUE_LOW_IDX}, +// {PX4_FOLLOW_TARGET_MID, 1, PQ_PQUEUE_LOW_IDX}, + {PX4_GEOFENCE_RESULT_MID, 1, PQ_PQUEUE_LOW_IDX}, +// {PX4_GPS_DUMP_MID, 1, PQ_PQUEUE_LOW_IDX}, +// {PX4_GPS_INJECT_DATA_MID, 1, PQ_PQUEUE_LOW_IDX}, +// {PX4_HIL_SENSOR_MID, 1, PQ_PQUEUE_LOW_IDX}, + {PX4_HOME_POSITION_MID, 1, PQ_PQUEUE_LOW_IDX}, +// {PX4_INPUT_RC_MID, 1, PQ_PQUEUE_LOW_IDX}, + {PX4_LED_CONTROL_MID, 1, PQ_PQUEUE_LOW_IDX}, + {PX4_LOG_MESSAGE_MID, 1, PQ_PQUEUE_LOW_IDX}, + {PX4_MANUAL_CONTROL_SETPOINT_MID, 1, PQ_PQUEUE_LOW_IDX}, + {PX4_MAVLINK_LOG_MID, 1, PQ_PQUEUE_LOW_IDX}, +// {PX4_MC_ATT_CTRL_STATUS_MID, 1, PQ_PQUEUE_LOW_IDX}, +// {PX4_MC_VIRTUAL_ATTITUDE_SETPOINT_MID, 1, PQ_PQUEUE_LOW_IDX}, +// {PX4_MC_VIRTUAL_RATES_SETPOINT_MID, 1, PQ_PQUEUE_LOW_IDX}, + {PX4_MISSION_MID, 1, PQ_PQUEUE_LOW_IDX}, + {PX4_MISSION_RESULT_MID, 1, PQ_PQUEUE_LOW_IDX}, +// {PX4_MULTIROTOR_MOTOR_LIMITS_MID, 1, PQ_PQUEUE_LOW_IDX}, + {PX4_OFFBOARD_CONTROL_MODE_MID, 1, PQ_PQUEUE_LOW_IDX}, +// {PX4_OPTICAL_FLOW_MID, 1, PQ_PQUEUE_LOW_IDX}, +// {PX4_OUTPUT_PWM_MID, 1, PQ_PQUEUE_LOW_IDX}, +// {PX4_PARAMETER_UPDATE_MID, 1, PQ_PQUEUE_LOW_IDX}, + {PX4_POSITION_SETPOINT_TRIPLET_MID, 1, PQ_PQUEUE_LOW_IDX}, +// {PX4_PWM_INPUT_MID, 1, PQ_PQUEUE_LOW_IDX}, +// {PX4_QSHELL_REQ_MID, 1, PQ_PQUEUE_LOW_IDX}, +// {PX4_RC_CHANNELS_MID, 1, PQ_PQUEUE_LOW_IDX}, +// {PX4_RC_PARAMETER_MAP_MID, 1, PQ_PQUEUE_LOW_IDX}, + {PX4_SAFETY_MID, 1, PQ_PQUEUE_LOW_IDX}, +// {PX4_SATELLITE_INFO_MID, 1, PQ_PQUEUE_LOW_IDX}, +// {PX4_SENSOR_ACCEL_MID, 1, PQ_PQUEUE_LOW_IDX}, +// {PX4_SENSOR_BARO_MID, 1, PQ_PQUEUE_LOW_IDX}, +// {PX4_SENSOR_COMBINED_MID, 1, PQ_PQUEUE_LOW_IDX}, + {PX4_SENSOR_CORRECTION_MID, 1, PQ_PQUEUE_LOW_IDX}, +// {PX4_SENSOR_GYRO_MID, 1, PQ_PQUEUE_LOW_IDX}, +// {PX4_SENSOR_MAG_MID, 1, PQ_PQUEUE_LOW_IDX}, +// {PX4_SERVORAIL_STATUS_MID, 1, PQ_PQUEUE_LOW_IDX}, + {PX4_SUBSYSTEM_INFO_MID, 1, PQ_PQUEUE_LOW_IDX}, + {PX4_SYSTEM_POWER_MID, 1, PQ_PQUEUE_LOW_IDX}, +// {PX4_TECS_STATUS_MID, 1, PQ_PQUEUE_LOW_IDX}, + {PX4_TELEMETRY_STATUS_MID, 1, PQ_PQUEUE_LOW_IDX}, +// {PX4_TEST_MOTOR_MID, 1, PQ_PQUEUE_LOW_IDX}, +// {PX4_TIME_OFFSET_MID, 1, PQ_PQUEUE_LOW_IDX}, +// {PX4_TRANSPONDER_REPORT_MID, 1, PQ_PQUEUE_LOW_IDX}, +// {PX4_UAVCAN_PARAMETER_REQUEST_MID, 1, PQ_PQUEUE_LOW_IDX}, +// {PX4_UAVCAN_PARAMETER_VALUE_MID, 1, PQ_PQUEUE_LOW_IDX}, + {PX4_VEHICLE_ATTITUDE_MID, 1, PQ_PQUEUE_LOW_IDX}, +// {PX4_VEHICLE_ATTITUDE_SETPOINT_MID, 1, PQ_PQUEUE_LOW_IDX}, +// {PX4_VEHICLE_COMMAND_ACK_MID, 1, PQ_PQUEUE_LOW_IDX}, +// {PX4_VEHICLE_COMMAND_MID, 1, PQ_PQUEUE_LOW_IDX}, +// {PX4_VEHICLE_CONTROL_MODE_MID, 1, PQ_PQUEUE_LOW_IDX}, +// {PX4_VEHICLE_FORCE_SETPOINT_MID, 1, PQ_PQUEUE_LOW_IDX}, + {PX4_VEHICLE_GLOBAL_POSITION_MID, 1, PQ_PQUEUE_LOW_IDX}, +// {PX4_VEHICLE_GLOBAL_VELOCITY_SETPOINT_MID, 1, PQ_PQUEUE_LOW_IDX}, +// {PX4_VEHICLE_GPS_POSITION_MID, 1, PQ_PQUEUE_LOW_IDX}, + {PX4_VEHICLE_LAND_DETECTED_MID, 1, PQ_PQUEUE_LOW_IDX}, +// {PX4_VEHICLE_LOCAL_POSITION_MID, 1, PQ_PQUEUE_LOW_IDX}, +// {PX4_VEHICLE_LOCAL_POSITION_SETPOINT_MID, 1, PQ_PQUEUE_LOW_IDX}, +// {PX4_VEHICLE_RATES_SETPOINT_MID, 1, PQ_PQUEUE_LOW_IDX}, +// {PX4_VEHICLE_STATUS_MID, 1, PQ_PQUEUE_LOW_IDX}, +// {PX4_VISION_POSITION_ESTIMATE_MID, 1, PQ_PQUEUE_LOW_IDX}, +// {PX4_VTOL_VEHICLE_STATUS_MID, 1, PQ_PQUEUE_LOW_IDX}, +// {PX4_WIND_ESTIMATE_MID, 1, PQ_PQUEUE_LOW_IDX} + },{ + /* Priority Queues */ + /* PQ_PQUEUE_SINGLE_PASS_IDX */ + {PQ_PQUEUE_ENA, 100, PQ_PRIORITY_QUEUE_TYPE_SINGLE}, + /* PQ_PQUEUE_HIGH_OPS_RSRVD_IDX */ + {PQ_PQUEUE_ENA, 100, PQ_PRIORITY_QUEUE_TYPE_FIFO}, + /* PQ_PQUEUE_HIGH_IDX */ + {PQ_PQUEUE_ENA, 100, PQ_PRIORITY_QUEUE_TYPE_FIFO}, + /* PQ_PQUEUE_MEDIUM_IDX */ + {PQ_PQUEUE_ENA, 100, PQ_PRIORITY_QUEUE_TYPE_FIFO}, + /* PQ_PQUEUE_LOW_IDX */ + {PQ_PQUEUE_ENA, 100, PQ_PRIORITY_QUEUE_TYPE_FIFO} + } +}; + + +/************************/ +/* End of File Comment */ +/************************/ From 4d447b18a8b8b94d596d5e7e04f5cef7d1f96d9e Mon Sep 17 00:00:00 2001 From: cnalley Date: Thu, 4 Feb 2021 22:20:18 +0000 Subject: [PATCH 041/370] Start sbn udp module mod. --- apps/sbn/modules/udp/fsw/src/sbn_udp_if.c | 81 +++++++++++++++++++---- 1 file changed, 68 insertions(+), 13 deletions(-) diff --git a/apps/sbn/modules/udp/fsw/src/sbn_udp_if.c b/apps/sbn/modules/udp/fsw/src/sbn_udp_if.c index 4a732cfb4..8e8c15736 100644 --- a/apps/sbn/modules/udp/fsw/src/sbn_udp_if.c +++ b/apps/sbn/modules/udp/fsw/src/sbn_udp_if.c @@ -4,6 +4,7 @@ #include "cfe.h" #include #include +#include "pq_includes.h" /* at some point this will be replaced by the OSAL network interface */ #ifdef _VXWORKS_OS_ @@ -12,6 +13,15 @@ #include #endif + +void PQ_Output_Task(void); + + +extern PQ_ChannelTbl_t PQ_BackupConfigTbl; +PQ_ChannelData_t Channel; +PQ_HkTlm_t HkTlm; + + int SBN_UDP_LoadNet(const char **Row, int FieldCnt, SBN_NetInterface_t *Net) { @@ -70,6 +80,7 @@ int SBN_UDP_LoadPeer(const char **Row, int FieldCnt, */ int SBN_UDP_InitNet(SBN_NetInterface_t *Net) { + int32 iStatus = 0; SBN_UDP_Net_t *NetData = (SBN_UDP_Net_t *)Net->ModulePvt; CFE_EVS_SendEvent(SBN_UDP_SOCK_EID, CFE_EVS_DEBUG, @@ -98,6 +109,34 @@ int SBN_UDP_InitNet(SBN_NetInterface_t *Net) return SBN_ERROR; }/* end if */ + + iStatus = PQ_Channel_Init(0, &Channel); + if (iStatus != CFE_SUCCESS) + { + /* TODO update to event. */ + printf("PQ_Channel_Init failed%u\n", iStatus); + return SBN_ERROR; + } + + iStatus = PQ_Channel_OpenChannel( + &Channel, + PQ_UDP_CHANNEL_NAME, + PQ_UDP_CONFIG_TABLENAME, + PQ_UDP_CONFIG_TABLE_FILENAME, + &PQ_BackupConfigTbl, + PQ_UDP_DUMP_TABLENAME, + 1, + PQ_UDP_CF_THROTTLE_SEM_NAME); + + if (iStatus != CFE_SUCCESS) + { + /* TODO update to event. */ + printf("PQ_Channel_OpenChannel failed%u\n", iStatus); + return SBN_ERROR; + } + + /* Create a child task here. */ + return SBN_SUCCESS; }/* end SBN_UDP_InitNet */ @@ -151,24 +190,29 @@ int SBN_UDP_PollPeer(SBN_PeerInterface_t *Peer) int SBN_UDP_Send(SBN_PeerInterface_t *Peer, SBN_MsgType_t MsgType, SBN_MsgSz_t MsgSz, void *Payload) { - size_t BufSz = MsgSz + SBN_PACKED_HDR_SZ; - uint8 Buf[BufSz]; + PQ_Channel_LockByRef(&Channel); + PQ_Classifier_Run(&Channel, Payload, &HkTlm); + PQ_Scheduler_Run(&Channel); + PQ_Channel_UnlockByRef(&Channel); - SBN_UDP_Peer_t *PeerData = (SBN_UDP_Peer_t *)Peer->ModulePvt; - SBN_NetInterface_t *Net = Peer->Net; - SBN_UDP_Net_t *NetData = (SBN_UDP_Net_t *)Net->ModulePvt; + //size_t BufSz = MsgSz + SBN_PACKED_HDR_SZ; + //uint8 Buf[BufSz]; + + //SBN_UDP_Peer_t *PeerData = (SBN_UDP_Peer_t *)Peer->ModulePvt; + //SBN_NetInterface_t *Net = Peer->Net; + //SBN_UDP_Net_t *NetData = (SBN_UDP_Net_t *)Net->ModulePvt; - SBN_PackMsg(&Buf, MsgSz, MsgType, CFE_PSP_GetProcessorId(), Payload); + //SBN_PackMsg(&Buf, MsgSz, MsgType, CFE_PSP_GetProcessorId(), Payload); - static struct sockaddr_in s_addr; + //static struct sockaddr_in s_addr; - memset(&s_addr, 0, sizeof(s_addr)); - s_addr.sin_family = AF_INET; - s_addr.sin_addr.s_addr = inet_addr(PeerData->Host); - s_addr.sin_port = htons(PeerData->Port); + //memset(&s_addr, 0, sizeof(s_addr)); + //s_addr.sin_family = AF_INET; + //s_addr.sin_addr.s_addr = inet_addr(PeerData->Host); + //s_addr.sin_port = htons(PeerData->Port); - sendto(NetData->Socket, &Buf, BufSz, 0, (struct sockaddr *) &s_addr, - sizeof(s_addr)); + //sendto(NetData->Socket, &Buf, BufSz, 0, (struct sockaddr *) &s_addr, + //sizeof(s_addr)); return SBN_SUCCESS; }/* end SBN_UDP_Send */ @@ -271,3 +315,14 @@ int SBN_UDP_UnloadPeer(SBN_PeerInterface_t *Peer) { return SBN_SUCCESS; }/* end SBN_UDP_UnloadPeer */ + +void PQ_Output_Task(void) +{ + CFE_ES_RegisterChildTask(); + + //TO_OutputChannel_ChannelHandler(0); + + CFE_ES_ExitChildTask(); +} + + From dc8b96bae80fd7940da7c34705889ee026ec46fa Mon Sep 17 00:00:00 2001 From: lorenzo-gomez-windhover Date: Thu, 4 Feb 2021 16:42:51 -0600 Subject: [PATCH 042/370] -CFE_SB has been verified --- .../Displays/Core/SB/EnaDisRoutes.opi | 16 +- .../Displays/Core/SB/ViewAllSubReports.opi | 5527 +++++++++++++++++ .../Displays/Core/SB/ViewSubReport.opi | 831 +++ 3 files changed, 6367 insertions(+), 7 deletions(-) create mode 100644 core/base/tools/commander/workspace_template/Displays/Core/SB/ViewAllSubReports.opi create mode 100644 core/base/tools/commander/workspace_template/Displays/Core/SB/ViewSubReport.opi diff --git a/core/base/tools/commander/workspace_template/Displays/Core/SB/EnaDisRoutes.opi b/core/base/tools/commander/workspace_template/Displays/Core/SB/EnaDisRoutes.opi index afef8dbcb..67435104f 100644 --- a/core/base/tools/commander/workspace_template/Displays/Core/SB/EnaDisRoutes.opi +++ b/core/base/tools/commander/workspace_template/Displays/Core/SB/EnaDisRoutes.opi @@ -40,12 +40,13 @@ importPackage(Packages.org.yamcs.studio.script); importPackage(Packages.org.yamcs.studio.data); -var MsgID =VTypeHelper.getNumber(display.getWidget('MsgID').getPropertyValue('pv_value')); -var PipeID =VTypeHelper.getNumber(display.getWidget('PipeID').getPropertyValue('pv_value')); +var MsgID =VTypeHelper.getString(display.getWidget('MsgID').getPropertyValue('pv_value')); +var PipeID =VTypeHelper.getDouble(display.getWidget('PipeID').getPropertyValue('pv_value')); Yamcs.issueCommand('/cfs/cfe_sb/EnableRoute', { 'Payload.MsgId': MsgID, - 'Payload.PipeID': PipeID}); + 'Payload.Pipe': PipeID, + 'Payload.Spare': 0}); ]]> true @@ -168,7 +169,7 @@ $(pv_value) MsgID 0 false - loc://MsgID<VString>> + loc://MsgID<VString> 0.0 @@ -265,7 +266,7 @@ $(pv_value) PipeID 0 false - loc://PipeID<VDouble> + loc://PipeID<VString> 0.0 @@ -337,11 +338,12 @@ $(pv_value) importPackage(Packages.org.yamcs.studio.script); importPackage(Packages.org.yamcs.studio.data); -var MsgID =VTypeHelper.getDouble(display.getWidget('MsgID').getPropertyValue('pv_value')); -var PipeID =VTypeHelper.getDouble(display.getWidget('PipeID').getPropertyValue('pv_value')); +var MsgID =VTypeHelper.getString(display.getWidget('MsgID').getPropertyValue('pv_value')); +var PipeID =VTypeHelper.getString(display.getWidget('PipeID').getPropertyValue('pv_value')); Yamcs.issueCommand('/cfs/cfe_sb/DisableRoute', { 'Payload.MsgId': MsgID, + 'Payload.Pipe': PipeID, 'Payload.Spare': 0}); ]]> true diff --git a/core/base/tools/commander/workspace_template/Displays/Core/SB/ViewAllSubReports.opi b/core/base/tools/commander/workspace_template/Displays/Core/SB/ViewAllSubReports.opi new file mode 100644 index 000000000..5eb46de9d --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/Core/SB/ViewAllSubReports.opi @@ -0,0 +1,5527 @@ + + + + + false + -1 + -1 + + false + + + + 1.5.3 + + + + 6 + 1980 + + true + + + + + true + true + true + true + true + Display + 800 + -10965483:1776e5e5496:-7009 + -1 + -1 + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update + 0 + true + /cfs/cfe_sb/CFE_SB_PrevSubMsg_t.Payload.PktSegment + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 205 + false + -10965483:1776e5e5496:-6fa6 + 198 + 162 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label + + + true + true + false + + + PktSegment + + true + 1 + true + Label + 128 + false + -10965483:1776e5e5496:-6fa5 + 69 + 162 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_1 + 0 + true + /cfs/cfe_sb/CFE_SB_PrevSubMsg_t.Payload.TotalSegments + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 205 + false + -10965483:1776e5e5496:-6fa4 + 198 + 186 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_1 + + + true + true + false + + + TotalSegments + + true + 1 + true + Label + 128 + false + -10965483:1776e5e5496:-6fa3 + 69 + 186 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_2 + 0 + true + /cfs/cfe_sb/CFE_SB_PrevSubMsg_t.Payload.Entries + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 205 + false + -10965483:1776e5e5496:-6fa2 + 198 + 210 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_2 + + + true + true + false + + + Entries + + true + 1 + true + Label + 128 + false + -10965483:1776e5e5496:-6fa1 + 69 + 210 + + + + false + + + + + + + 0 + 1 + true + + Default Bold + + + + + 20 + 1 + Label_49 + + + true + true + false + + + Previous SubReport Message + + true + 1 + true + Label + 295 + false + -10965483:1776e5e5496:-6f98 + 60 + 114 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_5 + 0 + true + /cfs/cfe_sb/CFE_SB_PrevSubMsg_t.Payload.Entry_0_.MsgId + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 80 + false + -10965483:1776e5e5496:-6ed9 + 72 + 300 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 0 + Label_52 + + + true + true + false + + + MsgId + + true + 1 + true + Label + 80 + false + -10965483:1776e5e5496:-6ed8 + 72 + 275 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_6 + 0 + true + /cfs/cfe_sb/CFE_SB_PrevSubMsg_t.Payload.Entry_0_.Qos.Priority + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 80 + false + -10965483:1776e5e5496:-6ed7 + 168 + 300 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 0 + Label_3 + + + true + true + false + + + Prority + + true + 1 + true + Label + 80 + false + -10965483:1776e5e5496:-6ed6 + 168 + 275 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_7 + 0 + true + /cfs/cfe_sb/CFE_SB_PrevSubMsg_t.Payload.Entry_0_.Qos.Reliability + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 80 + false + -10965483:1776e5e5496:-6ed5 + 264 + 300 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 0 + Label_5 + + + true + true + false + + + Reliability + + true + 1 + true + Label + 80 + false + -10965483:1776e5e5496:-6ed3 + 264 + 275 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 1 + Label_55 + + + true + true + false + + + 0 + + true + 1 + true + Label + 55 + false + -10965483:1776e5e5496:-6dd6 + 18 + 300 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_8 + 0 + true + /cfs/cfe_sb/CFE_SB_PrevSubMsg_t.Payload.Entry_1_.MsgId + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 80 + false + -10965483:1776e5e5496:-6da7 + 72 + 330 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_9 + 0 + true + /cfs/cfe_sb/CFE_SB_PrevSubMsg_t.Payload.Entry_1_.Qos.Priority + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 80 + false + -10965483:1776e5e5496:-6da6 + 168 + 330 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_10 + 0 + true + /cfs/cfe_sb/CFE_SB_PrevSubMsg_t.Payload.Entry_1_.Qos.Reliability + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 80 + false + -10965483:1776e5e5496:-6da5 + 264 + 330 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 1 + Label_56 + + + true + true + false + + + 1 + + true + 1 + true + Label + 55 + false + -10965483:1776e5e5496:-6da4 + 18 + 330 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_11 + 0 + true + /cfs/cfe_sb/CFE_SB_PrevSubMsg_t.Payload.Entry_2_.MsgId + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 80 + false + -10965483:1776e5e5496:-6d53 + 72 + 360 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_12 + 0 + true + /cfs/cfe_sb/CFE_SB_PrevSubMsg_t.Payload.Entry_2_.Qos.Priority + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 80 + false + -10965483:1776e5e5496:-6d52 + 168 + 360 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_13 + 0 + true + /cfs/cfe_sb/CFE_SB_PrevSubMsg_t.Payload.Entry_2_.Qos.Reliability + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 80 + false + -10965483:1776e5e5496:-6d51 + 264 + 360 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 1 + Label_57 + + + true + true + false + + + 2 + + true + 1 + true + Label + 55 + false + -10965483:1776e5e5496:-6d50 + 18 + 360 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_14 + 0 + true + /cfs/cfe_sb/CFE_SB_PrevSubMsg_t.Payload.Entry_4_.MsgId + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 80 + false + -10965483:1776e5e5496:-6d14 + 72 + 420 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_15 + 0 + true + /cfs/cfe_sb/CFE_SB_PrevSubMsg_t.Payload.Entry_4_.Qos.Priority + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 80 + false + -10965483:1776e5e5496:-6d13 + 168 + 420 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_16 + 0 + true + /cfs/cfe_sb/CFE_SB_PrevSubMsg_t.Payload.Entry_4_.Qos.Reliability + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 80 + false + -10965483:1776e5e5496:-6d12 + 264 + 420 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 1 + Label_58 + + + true + true + false + + + 4 + + true + 1 + true + Label + 55 + false + -10965483:1776e5e5496:-6d11 + 18 + 420 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_17 + 0 + true + /cfs/cfe_sb/CFE_SB_PrevSubMsg_t.Payload.Entry_6_.MsgId + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 80 + false + -10965483:1776e5e5496:-6cb2 + 72 + 480 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_18 + 0 + true + /cfs/cfe_sb/CFE_SB_PrevSubMsg_t.Payload.Entry_6_.Qos.Priority + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 80 + false + -10965483:1776e5e5496:-6cb1 + 168 + 480 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_19 + 0 + true + /cfs/cfe_sb/CFE_SB_PrevSubMsg_t.Payload.Entry_6_.Qos.Reliability + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 80 + false + -10965483:1776e5e5496:-6cb0 + 264 + 480 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 1 + Label_59 + + + true + true + false + + + 6 + + true + 1 + true + Label + 55 + false + -10965483:1776e5e5496:-6caf + 18 + 480 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_23 + 0 + true + /cfs/cfe_sb/CFE_SB_PrevSubMsg_t.Payload.Entry_9_.MsgId + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 80 + false + -10965483:1776e5e5496:-6c96 + 72 + 570 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_24 + 0 + true + /cfs/cfe_sb/CFE_SB_PrevSubMsg_t.Payload.Entry_9_.Qos.Priority + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 80 + false + -10965483:1776e5e5496:-6c95 + 168 + 570 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_25 + 0 + true + /cfs/cfe_sb/CFE_SB_PrevSubMsg_t.Payload.Entry_9_.Qos.Reliability + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 80 + false + -10965483:1776e5e5496:-6c94 + 264 + 570 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 1 + Label_61 + + + true + true + false + + + 9 + + true + 1 + true + Label + 55 + false + -10965483:1776e5e5496:-6c93 + 18 + 570 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_26 + 0 + true + /cfs/cfe_sb/CFE_SB_PrevSubMsg_t.Payload.Entry_8_.MsgId + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 80 + false + -10965483:1776e5e5496:-6c88 + 72 + 540 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_27 + 0 + true + /cfs/cfe_sb/CFE_SB_PrevSubMsg_t.Payload.Entry_8_.Qos.Priority + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 80 + false + -10965483:1776e5e5496:-6c87 + 168 + 540 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_28 + 0 + true + /cfs/cfe_sb/CFE_SB_PrevSubMsg_t.Payload.Entry_8_.Qos.Reliability + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 80 + false + -10965483:1776e5e5496:-6c86 + 264 + 540 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 1 + Label_62 + + + true + true + false + + + 8 + + true + 1 + true + Label + 55 + false + -10965483:1776e5e5496:-6c85 + 18 + 540 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_29 + 0 + true + /cfs/cfe_sb/CFE_SB_PrevSubMsg_t.Payload.Entry_5_.MsgId + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 80 + false + -10965483:1776e5e5496:-6c7a + 72 + 450 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_30 + 0 + true + /cfs/cfe_sb/CFE_SB_PrevSubMsg_t.Payload.Entry_5_.Qos.Priority + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 80 + false + -10965483:1776e5e5496:-6c79 + 168 + 450 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_31 + 0 + true + /cfs/cfe_sb/CFE_SB_PrevSubMsg_t.Payload.Entry_5_.Qos.Reliability + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 80 + false + -10965483:1776e5e5496:-6c78 + 264 + 450 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 1 + Label_63 + + + true + true + false + + + 5 + + true + 1 + true + Label + 55 + false + -10965483:1776e5e5496:-6c77 + 18 + 450 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_32 + 0 + true + /cfs/cfe_sb/CFE_SB_PrevSubMsg_t.Payload.Entry_14_.MsgId + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 80 + false + -10965483:1776e5e5496:-6c6c + 71 + 720 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_33 + 0 + true + /cfs/cfe_sb/CFE_SB_PrevSubMsg_t.Payload.Entry_14_.Qos.Priority + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 80 + false + -10965483:1776e5e5496:-6c6b + 167 + 720 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_34 + 0 + true + /cfs/cfe_sb/CFE_SB_PrevSubMsg_t.Payload.Entry_14_.Qos.Reliability + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 80 + false + -10965483:1776e5e5496:-6c6a + 263 + 720 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 1 + Label_64 + + + true + true + false + + + 14 + + true + 1 + true + Label + 55 + false + -10965483:1776e5e5496:-6c69 + 17 + 720 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_35 + 0 + true + /cfs/cfe_sb/CFE_SB_PrevSubMsg_t.Payload.Entry_7_.MsgId + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 80 + false + -10965483:1776e5e5496:-6c5e + 72 + 510 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_36 + 0 + true + /cfs/cfe_sb/CFE_SB_PrevSubMsg_t.Payload.Entry_7_.Qos.Priority + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 80 + false + -10965483:1776e5e5496:-6c5d + 168 + 510 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_37 + 0 + true + /cfs/cfe_sb/CFE_SB_PrevSubMsg_t.Payload.Entry_7_.Qos.Reliability + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 80 + false + -10965483:1776e5e5496:-6c5c + 264 + 510 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 1 + Label_65 + + + true + true + false + + + 7 + + true + 1 + true + Label + 55 + false + -10965483:1776e5e5496:-6c5b + 18 + 510 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_38 + 0 + true + /cfs/cfe_sb/CFE_SB_PrevSubMsg_t.Payload.Entry_3_.MsgId + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 80 + false + -10965483:1776e5e5496:-6c50 + 72 + 390 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_39 + 0 + true + /cfs/cfe_sb/CFE_SB_PrevSubMsg_t.Payload.Entry_3_.Qos.Priority + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 80 + false + -10965483:1776e5e5496:-6c4f + 168 + 390 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_40 + 0 + true + /cfs/cfe_sb/CFE_SB_PrevSubMsg_t.Payload.Entry_3_.Qos.Reliability + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 80 + false + -10965483:1776e5e5496:-6c4e + 264 + 390 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 1 + Label_66 + + + true + true + false + + + 3 + + true + 1 + true + Label + 55 + false + -10965483:1776e5e5496:-6c4d + 18 + 390 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_41 + 0 + true + /cfs/cfe_sb/CFE_SB_PrevSubMsg_t.Payload.Entry_11_.MsgId + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 80 + false + -10965483:1776e5e5496:-69ad + 72 + 630 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_42 + 0 + true + /cfs/cfe_sb/CFE_SB_PrevSubMsg_t.Payload.Entry_11_.Qos.Priority + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 80 + false + -10965483:1776e5e5496:-69ac + 168 + 630 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_43 + 0 + true + /cfs/cfe_sb/CFE_SB_PrevSubMsg_t.Payload.Entry_11_.Qos.Reliability + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 80 + false + -10965483:1776e5e5496:-69ab + 264 + 630 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 1 + Label_67 + + + true + true + false + + + 11 + + true + 1 + true + Label + 55 + false + -10965483:1776e5e5496:-69aa + 18 + 630 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_44 + 0 + true + /cfs/cfe_sb/CFE_SB_PrevSubMsg_t.Payload.Entry_10_.MsgId + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 80 + false + -10965483:1776e5e5496:-699f + 72 + 600 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_45 + 0 + true + /cfs/cfe_sb/CFE_SB_PrevSubMsg_t.Payload.Entry_10_.Qos.Priority + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 80 + false + -10965483:1776e5e5496:-699e + 168 + 600 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_46 + 0 + true + /cfs/cfe_sb/CFE_SB_PrevSubMsg_t.Payload.Entry_10_.Qos.Reliability + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 80 + false + -10965483:1776e5e5496:-699d + 264 + 600 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 1 + Label_68 + + + true + true + false + + + 10 + + true + 1 + true + Label + 55 + false + -10965483:1776e5e5496:-699c + 18 + 600 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_47 + 0 + true + /cfs/cfe_sb/CFE_SB_PrevSubMsg_t.Payload.Entry_16_.MsgId + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 80 + false + -10965483:1776e5e5496:-6991 + 72 + 780 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_48 + 0 + true + /cfs/cfe_sb/CFE_SB_PrevSubMsg_t.Payload.Entry_16_.Qos.Priority + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 80 + false + -10965483:1776e5e5496:-6990 + 168 + 780 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_49 + 0 + true + /cfs/cfe_sb/CFE_SB_PrevSubMsg_t.Payload.Entry_16_.Qos.Reliability + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 80 + false + -10965483:1776e5e5496:-698f + 264 + 780 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 1 + Label_69 + + + true + true + false + + + 16 + + true + 1 + true + Label + 55 + false + -10965483:1776e5e5496:-698e + 18 + 780 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_50 + 0 + true + /cfs/cfe_sb/CFE_SB_PrevSubMsg_t.Payload.Entry_18_.MsgId + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 80 + false + -10965483:1776e5e5496:-6983 + 71 + 840 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_51 + 0 + true + /cfs/cfe_sb/CFE_SB_PrevSubMsg_t.Payload.Entry_18_.Qos.Priority + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 80 + false + -10965483:1776e5e5496:-6982 + 167 + 840 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_52 + 0 + true + /cfs/cfe_sb/CFE_SB_PrevSubMsg_t.Payload.Entry_18_.Qos.Reliability + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 80 + false + -10965483:1776e5e5496:-6981 + 263 + 840 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 1 + Label_70 + + + true + true + false + + + 18 + + true + 1 + true + Label + 55 + false + -10965483:1776e5e5496:-6980 + 17 + 840 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_53 + 0 + true + /cfs/cfe_sb/CFE_SB_PrevSubMsg_t.Payload.Entry_17_.MsgId + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 80 + false + -10965483:1776e5e5496:-6975 + 72 + 810 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_54 + 0 + true + /cfs/cfe_sb/CFE_SB_PrevSubMsg_t.Payload.Entry_17_.Qos.Priority + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 80 + false + -10965483:1776e5e5496:-6974 + 168 + 810 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_55 + 0 + true + /cfs/cfe_sb/CFE_SB_PrevSubMsg_t.Payload.Entry_17_.Qos.Reliability + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 80 + false + -10965483:1776e5e5496:-6973 + 264 + 810 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 1 + Label_71 + + + true + true + false + + + 17 + + true + 1 + true + Label + 55 + false + -10965483:1776e5e5496:-6972 + 18 + 810 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_56 + 0 + true + /cfs/cfe_sb/CFE_SB_PrevSubMsg_t.Payload.Entry_13_.MsgId + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 80 + false + -10965483:1776e5e5496:-6967 + 72 + 690 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_57 + 0 + true + /cfs/cfe_sb/CFE_SB_PrevSubMsg_t.Payload.Entry_13_.Qos.Priority + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 80 + false + -10965483:1776e5e5496:-6966 + 168 + 690 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_58 + 0 + true + /cfs/cfe_sb/CFE_SB_PrevSubMsg_t.Payload.Entry_13_.Qos.Reliability + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 80 + false + -10965483:1776e5e5496:-6965 + 264 + 690 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 1 + Label_72 + + + true + true + false + + + 13 + + true + 1 + true + Label + 55 + false + -10965483:1776e5e5496:-6964 + 18 + 690 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_59 + 0 + true + /cfs/cfe_sb/CFE_SB_PrevSubMsg_t.Payload.Entry_12_.MsgId + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 80 + false + -10965483:1776e5e5496:-6959 + 72 + 660 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_60 + 0 + true + /cfs/cfe_sb/CFE_SB_PrevSubMsg_t.Payload.Entry_12_.Qos.Priority + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 80 + false + -10965483:1776e5e5496:-6958 + 168 + 660 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_61 + 0 + true + /cfs/cfe_sb/CFE_SB_PrevSubMsg_t.Payload.Entry_12_.Qos.Reliability + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 80 + false + -10965483:1776e5e5496:-6957 + 264 + 660 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 1 + Label_73 + + + true + true + false + + + 12 + + true + 1 + true + Label + 55 + false + -10965483:1776e5e5496:-6956 + 18 + 660 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_62 + 0 + true + /cfs/cfe_sb/CFE_SB_PrevSubMsg_t.Payload.Entry_15_.MsgId + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 80 + false + -10965483:1776e5e5496:-694b + 71 + 750 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_63 + 0 + true + /cfs/cfe_sb/CFE_SB_PrevSubMsg_t.Payload.Entry_15_.Qos.Priority + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 80 + false + -10965483:1776e5e5496:-694a + 167 + 750 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_64 + 0 + true + /cfs/cfe_sb/CFE_SB_PrevSubMsg_t.Payload.Entry_15_.Qos.Reliability + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 80 + false + -10965483:1776e5e5496:-6949 + 263 + 750 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 1 + Label_74 + + + true + true + false + + + 15 + + true + 1 + true + Label + 55 + false + -10965483:1776e5e5496:-6948 + 17 + 750 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_65 + 0 + true + /cfs/cfe_sb/CFE_SB_PrevSubMsg_t.Payload.Entry_19_.MsgId + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 80 + false + -10965483:1776e5e5496:-693d + 71 + 870 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_66 + 0 + true + /cfs/cfe_sb/CFE_SB_PrevSubMsg_t.Payload.Entry_19_.Qos.Priority + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 80 + false + -10965483:1776e5e5496:-693c + 167 + 870 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_67 + 0 + true + /cfs/cfe_sb/CFE_SB_PrevSubMsg_t.Payload.Entry_19_.Qos.Reliability + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 80 + false + -10965483:1776e5e5496:-693b + 263 + 870 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 1 + Label_75 + + + true + true + false + + + 19 + + true + 1 + true + Label + 55 + false + -10965483:1776e5e5496:-693a + 17 + 870 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_68 + 0 + true + /cfs/cfe_sb/CFE_SB_PrevSubMsg_t.Payload.Entry_0_.Pipe + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 80 + false + -10965483:1776e5e5496:-6600 + 366 + 300 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 0 + Label_76 + + + true + true + false + + + Pipe + + true + 1 + true + Label + 80 + false + -10965483:1776e5e5496:-65ff + 366 + 275 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_69 + 0 + true + /cfs/cfe_sb/CFE_SB_PrevSubMsg_t.Payload.Entry_1_.Pipe + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 80 + false + -10965483:1776e5e5496:-65fe + 366 + 330 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_70 + 0 + true + /cfs/cfe_sb/CFE_SB_PrevSubMsg_t.Payload.Entry_2_.Pipe + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 80 + false + -10965483:1776e5e5496:-65fd + 366 + 360 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_71 + 0 + true + /cfs/cfe_sb/CFE_SB_PrevSubMsg_t.Payload.Entry_4_.Pipe + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 80 + false + -10965483:1776e5e5496:-65fc + 366 + 420 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_72 + 0 + true + /cfs/cfe_sb/CFE_SB_PrevSubMsg_t.Payload.Entry_6_.Pipe + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 80 + false + -10965483:1776e5e5496:-65fb + 366 + 480 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_73 + 0 + true + /cfs/cfe_sb/CFE_SB_PrevSubMsg_t.Payload.Entry_9_.Pipe + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 80 + false + -10965483:1776e5e5496:-65fa + 366 + 570 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_74 + 0 + true + /cfs/cfe_sb/CFE_SB_PrevSubMsg_t.Payload.Entry_8_.Pipe + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 80 + false + -10965483:1776e5e5496:-65f9 + 366 + 540 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_75 + 0 + true + /cfs/cfe_sb/CFE_SB_PrevSubMsg_t.Payload.Entry_5_.Pipe + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 80 + false + -10965483:1776e5e5496:-65f8 + 366 + 450 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_76 + 0 + true + /cfs/cfe_sb/CFE_SB_PrevSubMsg_t.Payload.Entry_14_.Pipe + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 80 + false + -10965483:1776e5e5496:-65f7 + 365 + 720 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_77 + 0 + true + /cfs/cfe_sb/CFE_SB_PrevSubMsg_t.Payload.Entry_7_.Pipe + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 80 + false + -10965483:1776e5e5496:-65f6 + 366 + 510 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_78 + 0 + true + /cfs/cfe_sb/CFE_SB_PrevSubMsg_t.Payload.Entry_3_.Pipe + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 80 + false + -10965483:1776e5e5496:-65f5 + 366 + 390 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_79 + 0 + true + /cfs/cfe_sb/CFE_SB_PrevSubMsg_t.Payload.Entry_11_.Pipe + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 80 + false + -10965483:1776e5e5496:-65f4 + 366 + 630 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_80 + 0 + true + /cfs/cfe_sb/CFE_SB_PrevSubMsg_t.Payload.Entry_10_.Pipe + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 80 + false + -10965483:1776e5e5496:-65f3 + 366 + 600 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_81 + 0 + true + /cfs/cfe_sb/CFE_SB_PrevSubMsg_t.Payload.Entry_16_.Pipe + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 80 + false + -10965483:1776e5e5496:-65f2 + 366 + 780 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_82 + 0 + true + /cfs/cfe_sb/CFE_SB_PrevSubMsg_t.Payload.Entry_18_.Pipe + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 80 + false + -10965483:1776e5e5496:-65f1 + 365 + 840 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_83 + 0 + true + /cfs/cfe_sb/CFE_SB_PrevSubMsg_t.Payload.Entry_17_.Pipe + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 80 + false + -10965483:1776e5e5496:-65f0 + 366 + 810 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_84 + 0 + true + /cfs/cfe_sb/CFE_SB_PrevSubMsg_t.Payload.Entry_13_.Pipe + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 80 + false + -10965483:1776e5e5496:-65ef + 366 + 690 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_85 + 0 + true + /cfs/cfe_sb/CFE_SB_PrevSubMsg_t.Payload.Entry_12_.Pipe + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 80 + false + -10965483:1776e5e5496:-65ee + 366 + 660 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_86 + 0 + true + /cfs/cfe_sb/CFE_SB_PrevSubMsg_t.Payload.Entry_15_.Pipe + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 80 + false + -10965483:1776e5e5496:-65ed + 365 + 750 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_87 + 0 + true + /cfs/cfe_sb/CFE_SB_PrevSubMsg_t.Payload.Entry_19_.Pipe + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 80 + false + -10965483:1776e5e5496:-65ec + 365 + 870 + + + + + + + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 20 + ../../Resources/send.png + NoOp_1 + 0 + + + + + true + true + false + + + + View SubReports + false + $(pv_name) +$(pv_value) + true + Action Button + 217 + -10965483:1776e5e5496:-6044 + 99 + 60 + + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Core/SB/ViewSubReport.opi b/core/base/tools/commander/workspace_template/Displays/Core/SB/ViewSubReport.opi new file mode 100644 index 000000000..fa19c7612 --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/Core/SB/ViewSubReport.opi @@ -0,0 +1,831 @@ + + + + + false + -1 + -1 + + false + + + + 1.5.3 + + + + 6 + 600 + + true + + + + + true + true + true + true + true + Display + 800 + -10965483:1776e5e5496:-7620 + -1 + -1 + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update + 0 + true + /cfs/cfe_sb/CFE_SB_SubRprtMsg_t.Payload.SubType + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 157 + false + -10965483:1776e5e5496:-761b + 204 + 78 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label + + + true + true + false + + + SubType + + true + 1 + true + Label + 80 + false + -10965483:1776e5e5496:-7617 + 114 + 78 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_1 + 0 + true + /cfs/cfe_sb/CFE_SB_SubRprtMsg_t.Payload._spare0 + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 157 + false + -10965483:1776e5e5496:-760c + 204 + 102 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_1 + + + true + true + false + + + _spare0 + + true + 1 + true + Label + 80 + false + -10965483:1776e5e5496:-760b + 114 + 102 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_2 + 0 + true + /cfs/cfe_sb/CFE_SB_SubRprtMsg_t.Payload.MsgId + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 157 + false + -10965483:1776e5e5496:-7604 + 204 + 126 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_2 + + + true + true + false + + + MsgId + + true + 1 + true + Label + 80 + false + -10965483:1776e5e5496:-7603 + 114 + 126 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_3 + 0 + true + /cfs/cfe_sb/CFE_SB_SubRprtMsg_t.Payload.Qos.Priority + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 157 + false + -10965483:1776e5e5496:-75fc + 204 + 150 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_3 + + + true + true + false + + + Qos.Prority + + true + 1 + true + Label + 80 + false + -10965483:1776e5e5496:-75fb + 114 + 150 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_4 + 0 + true + /cfs/cfe_sb/CFE_SB_SubRprtMsg_t.Payload.Qos.Reliability + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 157 + false + -10965483:1776e5e5496:-75f4 + 204 + 174 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_4 + + + true + true + false + + + Qos.Reliability + + true + 1 + true + Label + 98 + false + -10965483:1776e5e5496:-75f3 + 96 + 174 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_5 + 0 + true + /cfs/cfe_sb/CFE_SB_SubRprtMsg_t.Payload.Pipe + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 157 + false + -10965483:1776e5e5496:-75ec + 204 + 198 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_5 + + + true + true + false + + + Pipe + + true + 1 + true + Label + 80 + false + -10965483:1776e5e5496:-75eb + 114 + 198 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_6 + 0 + true + /cfs/cfe_sb/CFE_SB_SubRprtMsg_t.Payload._spare_end + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 157 + false + -10965483:1776e5e5496:-75e0 + 204 + 222 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_6 + + + true + true + false + + + _spare_end + + true + 1 + true + Label + 80 + false + -10965483:1776e5e5496:-75df + 114 + 222 + + + + false + + + + + + + 0 + 1 + true + + Default Bold + + + + + 20 + 1 + Label_49 + + + true + true + false + + + SubReport Message + + true + 1 + true + Label + 295 + false + -10965483:1776e5e5496:-73b8 + 90 + 24 + + + + + + + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 20 + ../../Resources/send.png + NoOp_1 + 0 + + + + + true + true + false + + + + Disable SubReport + false + $(pv_name) +$(pv_value) + true + Action Button + 217 + -10965483:1776e5e5496:-60f1 + 402 + 78 + + + + + + + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 20 + ../../Resources/send.png + NoOp_1 + 0 + + + + + true + true + false + + + + Enable SubReport + false + $(pv_name) +$(pv_value) + true + Action Button + 217 + -10965483:1776e5e5496:-60d4 + 402 + 107 + + \ No newline at end of file From 1496db8ed1a7d44160e3610a2a8a1c949b406507 Mon Sep 17 00:00:00 2001 From: lorenzo-gomez-windhover Date: Thu, 4 Feb 2021 17:38:25 -0600 Subject: [PATCH 043/370] -CF Has been verfied -Named local PVs of CF with the prefix of containing OPI file name to avoid name collisions --- .../Displays/Apps/CF/Abandon.opi | 2 +- .../Displays/Apps/CF/Cancel.opi | 2 +- .../Displays/Apps/CF/DeleteQueueNode.opi | 2 +- .../Displays/Apps/CF/DisableDequeue.opi | 2 +- .../Apps/CF/DisablePollingDirectory.opi | 6 +-- .../Displays/Apps/CF/EnableDequeue.opi | 2 +- .../Apps/CF/EnablePollingDirectory.opi | 4 +- .../Displays/Apps/CF/GetMIBParam.opi | 4 +- .../Displays/Apps/CF/GiveTake.opi | 2 +- .../Displays/Apps/CF/Kickstart.opi | 2 +- .../Displays/Apps/CF/PlaybackDirectory.opi | 44 +++++++++---------- .../Displays/Apps/CF/PlaybackFile.opi | 14 +++--- .../Displays/Apps/CF/PurgeQueue.opi | 8 ++-- .../Displays/Apps/CF/QuickStatus.opi | 2 +- .../Displays/Apps/CF/ResetCounters.opi | 4 +- .../Displays/Apps/CF/Resume.opi | 2 +- .../Displays/Apps/CF/SetMIBParam.opi | 4 +- .../Displays/Apps/CF/SetPollParam.opi | 18 ++++---- .../Displays/Apps/CF/Suspend.opi | 2 +- .../Displays/Apps/CF/ViewTransDiag.opi | 2 +- .../Displays/Apps/CF/WriteActiveTrans.opi | 4 +- .../Displays/Apps/CF/WriteQueueInfo.opi | 12 ++--- 22 files changed, 72 insertions(+), 72 deletions(-) diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/CF/Abandon.opi b/core/base/tools/commander/workspace_template/Displays/Apps/CF/Abandon.opi index 17dfcd1b7..4202f74d7 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/CF/Abandon.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/CF/Abandon.opi @@ -165,7 +165,7 @@ Yamcs.issueCommand('/cfs/cf/Abandon', {'Trans': Transaction}); 25 - Resources/send.png + ../../Resources/send.png Action Button 0 diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/CF/Cancel.opi b/core/base/tools/commander/workspace_template/Displays/Apps/CF/Cancel.opi index c78751d16..bfd6e6330 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/CF/Cancel.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/CF/Cancel.opi @@ -105,7 +105,7 @@ Transaction 0 true - loc://Transaction<VString> + loc://CancelTransaction<VString> 0.0 diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/CF/DeleteQueueNode.opi b/core/base/tools/commander/workspace_template/Displays/Apps/CF/DeleteQueueNode.opi index 34d4dc77e..6ee07d150 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/CF/DeleteQueueNode.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/CF/DeleteQueueNode.opi @@ -105,7 +105,7 @@ Transaction 0 true - loc://Transaction<VString> + loc://DequeueTransaction<VString> 0.0 diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/CF/DisableDequeue.opi b/core/base/tools/commander/workspace_template/Displays/Apps/CF/DisableDequeue.opi index 520bf3639..1e5066de2 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/CF/DisableDequeue.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/CF/DisableDequeue.opi @@ -174,7 +174,7 @@ $(pv_value) false Channel - loc://Channel + loc://DequeueChannel diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/CF/DisablePollingDirectory.opi b/core/base/tools/commander/workspace_template/Displays/Apps/CF/DisablePollingDirectory.opi index e0511112c..407becd7d 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/CF/DisablePollingDirectory.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/CF/DisablePollingDirectory.opi @@ -175,7 +175,7 @@ $(pv_value) false Channel - loc://Channel + loc://PollingChannel @@ -269,7 +269,7 @@ $(pv_value) 10.0 0 true - loc://Dir<VDouble> + loc://PollingDir<VDouble> @@ -331,4 +331,4 @@ $(pv_value) 84 12
- + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/CF/EnableDequeue.opi b/core/base/tools/commander/workspace_template/Displays/Apps/CF/EnableDequeue.opi index 7e8b996b9..c41d65460 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/CF/EnableDequeue.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/CF/EnableDequeue.opi @@ -174,7 +174,7 @@ $(pv_value) false Channel - loc://Channel + loc://EnbaleDequeueChannel diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/CF/EnablePollingDirectory.opi b/core/base/tools/commander/workspace_template/Displays/Apps/CF/EnablePollingDirectory.opi index 58c46b766..cfeaacf10 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/CF/EnablePollingDirectory.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/CF/EnablePollingDirectory.opi @@ -175,7 +175,7 @@ $(pv_value) false Channel - loc://Channel + loc://EnablePollingDirectoryChannel @@ -331,4 +331,4 @@ $(pv_value) 76 12
- + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/CF/GetMIBParam.opi b/core/base/tools/commander/workspace_template/Displays/Apps/CF/GetMIBParam.opi index df511f919..548344c08 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/CF/GetMIBParam.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/CF/GetMIBParam.opi @@ -166,7 +166,7 @@ $(pv_value) Parameter 0 true - loc://Parameter<VString> + loc://GetMIBParameter<VString> 0.0 @@ -230,4 +230,4 @@ $(pv_value) 51 12
- + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/CF/GiveTake.opi b/core/base/tools/commander/workspace_template/Displays/Apps/CF/GiveTake.opi index a145b0aa5..76f2e494e 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/CF/GiveTake.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/CF/GiveTake.opi @@ -172,7 +172,7 @@ $(pv_value) false Channel - loc://Channel + loc://TakeSemChannel diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/CF/Kickstart.opi b/core/base/tools/commander/workspace_template/Displays/Apps/CF/Kickstart.opi index 1d89acd72..7b1532508 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/CF/Kickstart.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/CF/Kickstart.opi @@ -173,7 +173,7 @@ $(pv_value) false Channel - loc://Channel + loc://KickstartChannel diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/CF/PlaybackDirectory.opi b/core/base/tools/commander/workspace_template/Displays/Apps/CF/PlaybackDirectory.opi index 469a0c824..47b2af314 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/CF/PlaybackDirectory.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/CF/PlaybackDirectory.opi @@ -40,13 +40,13 @@ importPackage(Packages.org.yamcs.studio.script); importPackage(Packages.org.yamcs.studio.data); -var TransferClass =VTypeHelper.getString(display.getWidget('TransferClass').getPropertyValue('pv_value')); -var Channel =VTypeHelper.getString(display.getWidget('Channel').getPropertyValue('pv_value')); -var Priority =VTypeHelper.getDouble(display.getWidget('Priority').getPropertyValue('pv_value')); -var Preserve =VTypeHelper.getString(display.getWidget('Preserve').getPropertyValue('pv_value')); -var PeerEntityID =VTypeHelper.getString(display.getWidget('PeerEntityID').getPropertyValue('pv_value')); -var Source =VTypeHelper.getString(display.getWidget('Source').getPropertyValue('pv_value')); -var Destination =VTypeHelper.getString(display.getWidget('Destination').getPropertyValue('pv_value')); +var TransferClass =VTypeHelper.getString(display.getWidget('DirTransferClass').getPropertyValue('pv_value')); +var Channel =VTypeHelper.getString(display.getWidget('DirChannel').getPropertyValue('pv_value')); +var Priority =VTypeHelper.getDouble(display.getWidget('DirPriority').getPropertyValue('pv_value')); +var Preserve =VTypeHelper.getString(display.getWidget('DirPreserve').getPropertyValue('pv_value')); +var PeerEntityID =VTypeHelper.getString(display.getWidget('DirPeerEntityID').getPropertyValue('pv_value')); +var Source =VTypeHelper.getString(display.getWidget('DirSource').getPropertyValue('pv_value')); +var Destination =VTypeHelper.getString(display.getWidget('DirDestination').getPropertyValue('pv_value'));; var pTransferClass = ''; var pChannel = -1; @@ -358,10 +358,10 @@ $(pv_value) 1.7976931348623157E308 -1.7976931348623157E308 false - PeerEntityID + DirPeerEntityID 0 true - loc://PeerEntityID<VString> + loc://PlaybackDirPeerEntityID<VString> 0.0 @@ -455,10 +455,10 @@ $(pv_value) 1.7976931348623157E308 -1.7976931348623157E308 false - Source + DirSource 0 true - loc://Source<VString> + loc://PlaybackDirSource<VString> 0.0 @@ -552,10 +552,10 @@ $(pv_value) 1.7976931348623157E308 -1.7976931348623157E308 false - Destination + DirDestination 0 true - loc://Destination<VString> + loc://PlaybackDirDestination<VString> 0.0 @@ -608,11 +608,11 @@ $(pv_value) false 1.7976931348623157E308 -1.7976931348623157E308 - Priority + DirPriority 10.0 0 true - loc://Priority<VDouble> + loc://PlaybackDirPriority<VDouble> @@ -662,8 +662,8 @@ $(pv_value) Class 2 (Reliable) false - TransferClass - loc://TransferClass + DirTransferClass + loc://PlaybackDirTransferClass<VString> @@ -712,8 +712,8 @@ $(pv_value) Channel 2 false - Channel - loc://Channel + DirChannel + loc://PlaybackDirChannel @@ -762,8 +762,8 @@ $(pv_value) Keep false - Preserve - loc://Preserve + DirPreserve + loc://PlaybackDirPreserve @@ -824,4 +824,4 @@ $(pv_value) 129 12
- + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/CF/PlaybackFile.opi b/core/base/tools/commander/workspace_template/Displays/Apps/CF/PlaybackFile.opi index f824a3d6a..5b844c5d3 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/CF/PlaybackFile.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/CF/PlaybackFile.opi @@ -360,7 +360,7 @@ $(pv_value) PeerEntityID 0 true - loc://PeerEntityID<VString> + loc://PlaybackFilePeerEntityID<VString> 0.0 @@ -457,7 +457,7 @@ $(pv_value) Source 0 true - loc://Source<VString> + loc://PlaybackFileSource<VString> 0.0 @@ -554,7 +554,7 @@ $(pv_value) Destination 0 true - loc://Destination<VString> + loc://PlaybackFileDestination<VString> 0.0 @@ -611,7 +611,7 @@ $(pv_value) 10.0 0 true - loc://Priority<VDouble> + loc://PlaybackFilePriority<VDouble> @@ -662,7 +662,7 @@ $(pv_value) false TransferClass - loc://TransferClass + loc://PlaybackFileTransferClass @@ -712,7 +712,7 @@ $(pv_value) false Channel - loc://Channel + loc://PlaybackFileChannel @@ -762,7 +762,7 @@ $(pv_value) false Preserve - loc://Preserve + loc://PlaybackFilePreserve diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/CF/PurgeQueue.opi b/core/base/tools/commander/workspace_template/Displays/Apps/CF/PurgeQueue.opi index 7953492e8..9ae1ac521 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/CF/PurgeQueue.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/CF/PurgeQueue.opi @@ -315,7 +315,7 @@ $(pv_value) Filename 0 true - loc://Filename<VString> + loc://PurgeQueueFilename<VString> 0.0 @@ -368,7 +368,7 @@ $(pv_value) false TransferType - loc://TransferType + loc://PurgeQueueTransferType @@ -418,7 +418,7 @@ $(pv_value) false Channel - loc://Channel + loc://PurgeQueueChannel @@ -469,7 +469,7 @@ $(pv_value) false Queue - loc://Queue + loc://PurgeQueueQueue diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/CF/QuickStatus.opi b/core/base/tools/commander/workspace_template/Displays/Apps/CF/QuickStatus.opi index e69b630e5..a4a8ea127 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/CF/QuickStatus.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/CF/QuickStatus.opi @@ -105,7 +105,7 @@ Transaction 0 true - loc://Transaction<VString> + loc://QuickStatusTransaction<VString> 0.0 diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/CF/ResetCounters.opi b/core/base/tools/commander/workspace_template/Displays/Apps/CF/ResetCounters.opi index af301d1a9..a653996b2 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/CF/ResetCounters.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/CF/ResetCounters.opi @@ -153,7 +153,7 @@ $(pv_value) - 30 + 32 ALL CMD @@ -163,7 +163,7 @@ $(pv_value) false Counters - loc://Counters<VString> + loc://ResetCountersCounters<VString> diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/CF/Resume.opi b/core/base/tools/commander/workspace_template/Displays/Apps/CF/Resume.opi index c5d3b69ca..82eae11a1 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/CF/Resume.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/CF/Resume.opi @@ -105,7 +105,7 @@ Transaction 0 true - loc://Transaction<VString> + loc://ResumeTransactionTransaction<VString> 0.0 diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/CF/SetMIBParam.opi b/core/base/tools/commander/workspace_template/Displays/Apps/CF/SetMIBParam.opi index 5c551122d..8f4957871 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/CF/SetMIBParam.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/CF/SetMIBParam.opi @@ -168,7 +168,7 @@ $(pv_value) Parameter 0 true - loc://Parameter<VString> + loc://SetMIBParameterParameter<VString> 0.0 @@ -265,7 +265,7 @@ $(pv_value) Value 0 true - loc://Value<VString> + loc://SetMIBValue<VString> 0.0 diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/CF/SetPollParam.opi b/core/base/tools/commander/workspace_template/Displays/Apps/CF/SetPollParam.opi index b64c01b85..3c898512a 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/CF/SetPollParam.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/CF/SetPollParam.opi @@ -365,7 +365,7 @@ $(pv_value) PeerEntityID 0 true - loc://PeerEntityID<VString> + loc://SetPollingParamPeerEntityID<VString> 0.0 @@ -462,7 +462,7 @@ $(pv_value) Source 0 true - loc://Source<VString> + loc://SetPollingParamSource<VString> 0.0 @@ -559,7 +559,7 @@ $(pv_value) Destination 0 true - loc://Destination<VString> + loc://SetPollingParamDestination<VString> 0.0 @@ -616,7 +616,7 @@ $(pv_value) 10.0 0 true - loc://Priority<VDouble> + loc://SetPollingParamPriority<VDouble> @@ -667,7 +667,7 @@ $(pv_value) false TransferClass - loc://TransferClass + loc://SetPollingParamTransferClass @@ -717,7 +717,7 @@ $(pv_value) false Channel - loc://Channel + loc://SetPollingParamChannel @@ -767,7 +767,7 @@ $(pv_value) false Preserve - loc://Preserve + loc://SetPollingParamPreserve @@ -861,7 +861,7 @@ $(pv_value) 10.0 0 true - loc://Dir<VDouble> + loc://SetPollingParamDir<VDouble> @@ -923,4 +923,4 @@ $(pv_value) 106 12
- + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/CF/Suspend.opi b/core/base/tools/commander/workspace_template/Displays/Apps/CF/Suspend.opi index 99015f72c..66158e174 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/CF/Suspend.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/CF/Suspend.opi @@ -105,7 +105,7 @@ Transaction 0 true - loc://Transaction<VString> + loc://SuspendTransaction<VString> 0.0 diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/CF/ViewTransDiag.opi b/core/base/tools/commander/workspace_template/Displays/Apps/CF/ViewTransDiag.opi index 8cd723f74..ab5fefaf5 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/CF/ViewTransDiag.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/CF/ViewTransDiag.opi @@ -3369,7 +3369,7 @@ $(pv_value) Transfer 0 true - loc://Transfer<VString> + loc://ViewTransDiagTransfer<VString> 0.0 diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/CF/WriteActiveTrans.opi b/core/base/tools/commander/workspace_template/Displays/Apps/CF/WriteActiveTrans.opi index 2f95241fe..a701ae3a2 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/CF/WriteActiveTrans.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/CF/WriteActiveTrans.opi @@ -219,7 +219,7 @@ $(pv_value) Destination 0 true - loc://Destination<VString> + loc://ViewActiveTransDestination<VString> 0.0 @@ -273,7 +273,7 @@ $(pv_value) false TransType - loc://TransType + loc://WriteActiveTransTransType diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/CF/WriteQueueInfo.opi b/core/base/tools/commander/workspace_template/Displays/Apps/CF/WriteQueueInfo.opi index 94c3fe64f..5fc82b22d 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/CF/WriteQueueInfo.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/CF/WriteQueueInfo.opi @@ -43,7 +43,7 @@ importPackage(Packages.org.yamcs.studio.data); var TransferType =VTypeHelper.getString(display.getWidget('TransferType').getPropertyValue('pv_value')); var Channel =VTypeHelper.getString(display.getWidget('Channel').getPropertyValue('pv_value')); var Queue =VTypeHelper.getString(display.getWidget('Queue').getPropertyValue('pv_value')); -var Filename =VTypeHelper.getDouble(display.getWidget('Filename').getPropertyValue('pv_value')); +var Filename =VTypeHelper.getString(display.getWidget('Filename').getPropertyValue('pv_value')); var pTransferType = ''; var pChannel = -1; @@ -318,7 +318,7 @@ $(pv_value) Filename 0 true - loc://Filename<VString> + loc://WriteQueueInfoFilename<VString> 0.0 @@ -371,7 +371,7 @@ $(pv_value) false TransferType - loc://TransferType + loc://WriteQueueInfoTransferType @@ -421,7 +421,7 @@ $(pv_value) false Channel - loc://Channel + loc://WriteQueueInfoChannel @@ -472,7 +472,7 @@ $(pv_value) false Queue - loc://Queue + loc://WriteQueueInfoQueue @@ -533,4 +533,4 @@ $(pv_value) 60 12
- + \ No newline at end of file From 38b5a99e3356767b4ea5e50defdb8b8fe36835b6 Mon Sep 17 00:00:00 2001 From: cnalley Date: Thu, 4 Feb 2021 23:59:14 +0000 Subject: [PATCH 044/370] Modify SBN subs to not pack sub structs and add header. --- apps/sbn/fsw/src/sbn_msg.h | 26 ++++ apps/sbn/fsw/src/sbn_subs.c | 258 ++++++++++++++++++++++++++++++------ config/shared/inc/msg_ids.h | 1 + 3 files changed, 245 insertions(+), 40 deletions(-) diff --git a/apps/sbn/fsw/src/sbn_msg.h b/apps/sbn/fsw/src/sbn_msg.h index 196860e27..97b6a74b4 100644 --- a/apps/sbn/fsw/src/sbn_msg.h +++ b/apps/sbn/fsw/src/sbn_msg.h @@ -63,4 +63,30 @@ typedef struct { uint8 ModuleStatus[SBN_MOD_STATUS_MSG_SZ]; } SBN_ModuleStatusPacket_t; + +typedef struct +{ + CFE_SB_MsgId_t MsgID; + CFE_SB_Qos_t QoS; +} SBN_Sub_t; + + +typedef struct +{ + uint8 TlmHeader[CFE_SB_TLM_HDR_SIZE]; + uint8 Ident[SBN_IDENT_LEN]; + uint16 SubCount; + SBN_Sub_t Sub; +} SBN_SubPacket_t; + + +typedef struct +{ + uint8 TlmHeader[CFE_SB_TLM_HDR_SIZE]; + uint8 Ident[SBN_IDENT_LEN]; + uint16 SubCount; + SBN_Sub_t Subs[SBN_MAX_SUBS_PER_PEER]; +} SBN_SubsPacket_t; + + #endif /* _sbn_msg_h_ */ diff --git a/apps/sbn/fsw/src/sbn_subs.c b/apps/sbn/fsw/src/sbn_subs.c index 3fde899a6..b0fd8e1de 100644 --- a/apps/sbn/fsw/src/sbn_subs.c +++ b/apps/sbn/fsw/src/sbn_subs.c @@ -47,6 +47,29 @@ void SBN_SendSubsRequests(void) CFE_SB_SendMsg((CFE_SB_MsgPtr_t) &SBCmdMsg); }/* end SBN_SendSubsRequests */ +/** + * \brief Sends a local subscription over the wire to a peer. + * + * @param[in] SubType Whether this is a subscription or unsubscription. + * @param[in] MsgID The CCSDS message ID being (un)subscribed. + * @param[in] QoS The CCSDS quality of service being (un)subscribed. + * @param[in] Peer The Peer interface + */ +//static void SendLocalSubToPeer(int SubType, CFE_SB_MsgId_t MsgID, + //CFE_SB_Qos_t QoS, SBN_PeerInterface_t *Peer) +//{ + //uint8 Buf[SBN_PACKED_SUB_SZ]; + //Pack_t Pack; + //Pack_Init(&Pack, &Buf, SBN_PACKED_SUB_SZ, 0); + //Pack_Data(&Pack, SBN_IDENT, SBN_IDENT_LEN); + //Pack_UInt16(&Pack, 1); + + //Pack_MsgID(&Pack, MsgID); + //Pack_Data(&Pack, &QoS, sizeof(QoS)); /* 2 uint8's */ + + //SBN_SendNetMsg(SubType, Pack.BufUsed, Buf, Peer); +//}/* end SendLocalSubToPeer */ + /** * \brief Sends a local subscription over the wire to a peer. * @@ -58,18 +81,43 @@ void SBN_SendSubsRequests(void) static void SendLocalSubToPeer(int SubType, CFE_SB_MsgId_t MsgID, CFE_SB_Qos_t QoS, SBN_PeerInterface_t *Peer) { - uint8 Buf[SBN_PACKED_SUB_SZ]; - Pack_t Pack; - Pack_Init(&Pack, &Buf, SBN_PACKED_SUB_SZ, 0); - Pack_Data(&Pack, SBN_IDENT, SBN_IDENT_LEN); - Pack_UInt16(&Pack, 1); + SBN_SubPacket_t Packet; - Pack_MsgID(&Pack, MsgID); - Pack_Data(&Pack, &QoS, sizeof(QoS)); /* 2 uint8's */ + CFE_SB_InitMsg(&Packet, SBN_SUB_MID, sizeof(Packet), TRUE); + memcpy(&Packet.Ident, SBN_IDENT, SBN_IDENT_LEN); + Packet.SubCount = 1; + Packet.Sub.MsgID = MsgID; + Packet.Sub.QoS.Priority = QoS.Priority; + Packet.Sub.QoS.Reliability = QoS.Reliability; - SBN_SendNetMsg(SubType, Pack.BufUsed, Buf, Peer); + SBN_SendNetMsg(SubType, sizeof(Packet), &Packet, Peer); }/* end SendLocalSubToPeer */ +/** + * \brief Sends all local subscriptions over the wire to a peer. + * + * @param[in] Peer The peer interface. + */ +//void SBN_SendLocalSubsToPeer(SBN_PeerInterface_t *Peer) +//{ + //uint8 Buf[SBN_PACKED_SUB_SZ]; + //Pack_t Pack; + //Pack_Init(&Pack, &Buf, SBN_PACKED_SUB_SZ, 0); + //Pack_Data(&Pack, SBN_IDENT, SBN_IDENT_LEN); + //Pack_UInt16(&Pack, SBN.SubCnt); + + //int i = 0; + //for(i = 0; i < SBN.SubCnt; i++) + //{ + //Pack_MsgID(&Pack, SBN.Subs[i].MsgID); + ///* 2 uint8's */ + //Pack_Data(&Pack, &SBN.Subs[i].QoS, sizeof(SBN.Subs[i].QoS)); + //}/* end for */ + + //SBN_SendNetMsg(SBN_SUBSCRIBE_MSG, Pack.BufUsed, Buf, Peer); +//}/* end SBN_SendLocalSubsToPeer */ + + /** * \brief Sends all local subscriptions over the wire to a peer. * @@ -77,23 +125,24 @@ static void SendLocalSubToPeer(int SubType, CFE_SB_MsgId_t MsgID, */ void SBN_SendLocalSubsToPeer(SBN_PeerInterface_t *Peer) { - uint8 Buf[SBN_PACKED_SUB_SZ]; - Pack_t Pack; - Pack_Init(&Pack, &Buf, SBN_PACKED_SUB_SZ, 0); - Pack_Data(&Pack, SBN_IDENT, SBN_IDENT_LEN); - Pack_UInt16(&Pack, SBN.SubCnt); + SBN_SubsPacket_t Packet; + + CFE_SB_InitMsg(&Packet, SBN_SUB_MID, sizeof(Packet), TRUE); + memcpy(&Packet.Ident, SBN_IDENT, SBN_IDENT_LEN); + Packet.SubCount = SBN.SubCnt; int i = 0; for(i = 0; i < SBN.SubCnt; i++) { - Pack_MsgID(&Pack, SBN.Subs[i].MsgID); - /* 2 uint8's */ - Pack_Data(&Pack, &SBN.Subs[i].QoS, sizeof(SBN.Subs[i].QoS)); + Packet.Subs[i].MsgID = SBN.Subs[i].MsgID; + Packet.Subs[i].QoS.Priority = SBN.Subs[i].QoS.Priority; + Packet.Subs[i].QoS.Reliability = SBN.Subs[i].QoS.Reliability; }/* end for */ - SBN_SendNetMsg(SBN_SUBSCRIBE_MSG, Pack.BufUsed, Buf, Peer); + SBN_SendNetMsg(SBN_SUBSCRIBE_MSG, sizeof(Packet), &Packet, Peer); }/* end SBN_SendLocalSubsToPeer */ + /** * Utility to find the subscription index (SBN.Subs) * that is subscribed to the CCSDS message ID. @@ -396,6 +445,44 @@ static void ProcessSubFromPeer(SBN_PeerInterface_t *Peer, CFE_SB_MsgId_t MsgID, }/* end if */ }/* ProcessSubFromPeer */ +/** + * \brief Process a subscription message from a peer. + * + * @param[in] PeerIdx The peer index (in SBN.Peer) + * @param[in] Msg The subscription SBN message. + */ +//void SBN_ProcessSubsFromPeer(SBN_PeerInterface_t *Peer, void *Msg) +//{ + //Unpack_t Unpack; + //char VersionHash[SBN_IDENT_LEN]; + + //Unpack_Init(&Unpack, Msg, CFE_SB_MAX_SB_MSG_SIZE); + + //Unpack_Data(&Unpack, VersionHash, SBN_IDENT_LEN); + + //if(strncmp(VersionHash, SBN_IDENT, SBN_IDENT_LEN)) + //{ + //CFE_EVS_SendEvent(SBN_PROTO_EID, CFE_EVS_ERROR, + //"version number mismatch with peer CpuID %lu", + //Peer->ProcessorID); + //} + + //uint16 SubCnt; + //Unpack_UInt16(&Unpack, &SubCnt); + + //int SubIdx = 0; + //for(SubIdx = 0; SubIdx < SubCnt; SubIdx++) + //{ + //CFE_SB_MsgId_t MsgID; + //Unpack_MsgID(&Unpack, &MsgID); + //CFE_SB_Qos_t QoS; + //Unpack_Data(&Unpack, &QoS, sizeof(QoS)); + + //ProcessSubFromPeer(Peer, MsgID, QoS); + //}/* end for */ +//}/* SBN_ProcessSubsFromPeer */ + + /** * \brief Process a subscription message from a peer. * @@ -404,35 +491,36 @@ static void ProcessSubFromPeer(SBN_PeerInterface_t *Peer, CFE_SB_MsgId_t MsgID, */ void SBN_ProcessSubsFromPeer(SBN_PeerInterface_t *Peer, void *Msg) { - Unpack_t Unpack; - char VersionHash[SBN_IDENT_LEN]; + SBN_SubsPacket_t Packet; + uint16 SubCnt = 0; - Unpack_Init(&Unpack, Msg, CFE_SB_MAX_SB_MSG_SIZE); + memcpy(&Packet, Msg, sizeof(SBN_SubPacket_t)); - Unpack_Data(&Unpack, VersionHash, SBN_IDENT_LEN); + if(Packet.SubCount > 1) + { + memcpy(&Packet, Msg, sizeof(SBN_SubsPacket_t)); + } - if(strncmp(VersionHash, SBN_IDENT, SBN_IDENT_LEN)) + if(strncmp(Packet.Ident, SBN_IDENT, SBN_IDENT_LEN)) { CFE_EVS_SendEvent(SBN_PROTO_EID, CFE_EVS_ERROR, "version number mismatch with peer CpuID %lu", Peer->ProcessorID); } - uint16 SubCnt; - Unpack_UInt16(&Unpack, &SubCnt); + SubCnt = Packet.SubCount; int SubIdx = 0; for(SubIdx = 0; SubIdx < SubCnt; SubIdx++) { - CFE_SB_MsgId_t MsgID; - Unpack_MsgID(&Unpack, &MsgID); - CFE_SB_Qos_t QoS; - Unpack_Data(&Unpack, &QoS, sizeof(QoS)); + CFE_SB_MsgId_t MsgID = Packet.Subs[SubIdx].MsgID; + CFE_SB_Qos_t QoS = Packet.Subs[SubIdx].QoS; ProcessSubFromPeer(Peer, MsgID, QoS); }/* end for */ }/* SBN_ProcessSubsFromPeer */ + static void ProcessUnsubFromPeer(SBN_PeerInterface_t *Peer, CFE_SB_MsgId_t MsgID) { @@ -472,6 +560,96 @@ static void ProcessUnsubFromPeer(SBN_PeerInterface_t *Peer, }/* end if */ }/* end ProcessUnsubFromPeer */ +///** + //* \brief Process an unsubscription message from a peer. + //* + //* @param[in] PeerIdx The peer index (in SBN.Peer) + //* @param[in] Msg The unsubscription SBN message. + //*/ +//void SBN_ProcessUnsubsFromPeer(SBN_PeerInterface_t *Peer, void *Msg) +//{ + //Unpack_t Unpack; + + //Unpack_Init(&Unpack, Msg, CFE_SB_MAX_SB_MSG_SIZE); + + //char VersionHash[SBN_IDENT_LEN]; + + //Unpack_Data(&Unpack, VersionHash, SBN_IDENT_LEN); + + //if(strncmp(VersionHash, SBN_IDENT, SBN_IDENT_LEN)) + //{ + //CFE_EVS_SendEvent(SBN_PROTO_EID, CFE_EVS_ERROR, + //"version number mismatch with peer CpuID %lu", + //Peer->ProcessorID); + //} + + //uint16 SubCnt; + //Unpack_UInt16(&Unpack, &SubCnt); + + //int SubIdx = 0; + //for(SubIdx = 0; SubIdx < SubCnt; SubIdx++) + //{ + //CFE_SB_MsgId_t MsgID; + //Unpack_MsgID(&Unpack, &MsgID); + //CFE_SB_Qos_t QoS; + //Unpack_Data(&Unpack, &QoS, sizeof(QoS)); + + //int idx, RemappedFlag = 0; + + //if(OS_MutSemTake(SBN.RemapMutex) != OS_SUCCESS) + //{ + //CFE_EVS_SendEvent(SBN_REMAP_EID, CFE_EVS_ERROR, + //"unable to take mutex"); + //continue; + //}/* end if */ + + ///** If there's a filter, ignore this unsub. */ + //for(idx = 0; RemappedFlag == 0 && idx < SBN.RemapTbl->EntryCnt; idx++) + //{ + //if(SBN.RemapTbl->Entries[idx].ProcessorID + //== Peer->ProcessorID + //&& SBN.RemapTbl->Entries[idx].FromMID == MsgID + //&& SBN.RemapTbl->Entries[idx].ToMID == 0x0000) + //{ + //RemappedFlag = 1; + //}/* end if */ + //}/* end for */ + + ///***** + //* If there's a remap that would generate that + //* MID, I need to unsubscribe locally to the "from". Usually this will + //* only be one "from" but it's possible that multiple "from"s map to + //* the same "to". + //*/ + //for(idx = 0; idx < SBN.RemapTbl->EntryCnt; idx++) + //{ + //if(SBN.RemapTbl->Entries[idx].ProcessorID + //== Peer->ProcessorID + //&& SBN.RemapTbl->Entries[idx].ToMID == MsgID) + //{ + ///* Unsubscribe from each "ToMID" match. */ + //ProcessUnsubFromPeer(Peer, + //SBN.RemapTbl->Entries[idx].FromMID); + + //RemappedFlag = 1; + //}/* end if */ + //}/* end for */ + + ///* if there's no remap ID's, unsubscribe from the original MID. */ + //if(!RemappedFlag) + //{ + //ProcessUnsubFromPeer(Peer, MsgID); + //}/* end if */ + + //if(OS_MutSemGive(SBN.RemapMutex) != OS_SUCCESS) + //{ + //CFE_EVS_SendEvent(SBN_REMAP_EID, CFE_EVS_ERROR, + //"unable to give mutex"); + //}/* end if */ + //}/* end for */ +//}/* end SBN_ProcessUnsubFromPeer */ + + /** * \brief Process an unsubscription message from a peer. * @@ -480,31 +658,30 @@ static void ProcessUnsubFromPeer(SBN_PeerInterface_t *Peer, */ void SBN_ProcessUnsubsFromPeer(SBN_PeerInterface_t *Peer, void *Msg) { - Unpack_t Unpack; - - Unpack_Init(&Unpack, Msg, CFE_SB_MAX_SB_MSG_SIZE); + SBN_SubsPacket_t Packet; + uint16 SubCnt = 0; - char VersionHash[SBN_IDENT_LEN]; + memcpy(&Packet, Msg, sizeof(SBN_SubPacket_t)); - Unpack_Data(&Unpack, VersionHash, SBN_IDENT_LEN); + if(Packet.SubCount > 1) + { + memcpy(&Packet, Msg, sizeof(SBN_SubsPacket_t)); + } - if(strncmp(VersionHash, SBN_IDENT, SBN_IDENT_LEN)) + if(strncmp(Packet.Ident, SBN_IDENT, SBN_IDENT_LEN)) { CFE_EVS_SendEvent(SBN_PROTO_EID, CFE_EVS_ERROR, "version number mismatch with peer CpuID %lu", Peer->ProcessorID); } - uint16 SubCnt; - Unpack_UInt16(&Unpack, &SubCnt); + SubCnt = Packet.SubCount; int SubIdx = 0; for(SubIdx = 0; SubIdx < SubCnt; SubIdx++) { - CFE_SB_MsgId_t MsgID; - Unpack_MsgID(&Unpack, &MsgID); - CFE_SB_Qos_t QoS; - Unpack_Data(&Unpack, &QoS, sizeof(QoS)); + CFE_SB_MsgId_t MsgID = Packet.Subs[SubIdx].MsgID; + CFE_SB_Qos_t QoS = Packet.Subs[SubIdx].QoS; int idx, RemappedFlag = 0; @@ -561,6 +738,7 @@ void SBN_ProcessUnsubsFromPeer(SBN_PeerInterface_t *Peer, void *Msg) }/* end for */ }/* end SBN_ProcessUnsubFromPeer */ + /** * When SBN starts, it queries for all existing subscriptions. This method * processes those subscriptions. diff --git a/config/shared/inc/msg_ids.h b/config/shared/inc/msg_ids.h index 36bdb51f0..c421a6902 100644 --- a/config/shared/inc/msg_ids.h +++ b/config/shared/inc/msg_ids.h @@ -319,6 +319,7 @@ #define SBN_WAKEUP_MID (0x0ba0) #define SBN_CMD_MID (0x1ba1) #define SBN_TLM_MID (0x0ba2) +#define SBN_SUB_MID (0x0ba3) /* ROS */ /* Range: 0x900 - 0x90f */ From c7426131805e0a3d63e40fae15df125737714a5d Mon Sep 17 00:00:00 2001 From: cnalley Date: Fri, 5 Feb 2021 00:00:14 +0000 Subject: [PATCH 045/370] Add mid to pq table. --- apps/pq_lib/fsw/src/pq_channel.c | 2 +- apps/sbn/modules/udp/fsw/src/sbn_udp_if.c | 56 +++++++++---------- .../target/apps/pq_lib/tables/pq_backup_cfg.c | 1 + .../sitl/target/apps/pq_lib/tables/pq_cfg.c | 1 + 4 files changed, 31 insertions(+), 29 deletions(-) diff --git a/apps/pq_lib/fsw/src/pq_channel.c b/apps/pq_lib/fsw/src/pq_channel.c index f475f80c2..97c5b0ab7 100644 --- a/apps/pq_lib/fsw/src/pq_channel.c +++ b/apps/pq_lib/fsw/src/pq_channel.c @@ -83,7 +83,7 @@ uint32 PQ_MemPoolDefSize[PQ_MAX_MEMPOOL_BLK_SIZES] = * \param [in] channel A #PQ_ChannelData_t pointer that * references the channel data structures */ -void PQ_Channel_ProcessTelemetry(PQ_ChannelData_t *channel); +//void PQ_Channel_ProcessTelemetry(PQ_ChannelData_t *channel); int32 PQ_Channel_OpenChannel(PQ_ChannelData_t *Channel, const char *ChannelName, diff --git a/apps/sbn/modules/udp/fsw/src/sbn_udp_if.c b/apps/sbn/modules/udp/fsw/src/sbn_udp_if.c index 8e8c15736..9c9353375 100644 --- a/apps/sbn/modules/udp/fsw/src/sbn_udp_if.c +++ b/apps/sbn/modules/udp/fsw/src/sbn_udp_if.c @@ -154,36 +154,36 @@ int SBN_UDP_InitPeer(SBN_PeerInterface_t *Peer) int SBN_UDP_PollPeer(SBN_PeerInterface_t *Peer) { - OS_time_t CurrentTime; - OS_GetLocalTime(&CurrentTime); + //OS_time_t CurrentTime; + //OS_GetLocalTime(&CurrentTime); - SBN_UDP_Peer_t *PeerData = (SBN_UDP_Peer_t *)Peer->ModulePvt; + //SBN_UDP_Peer_t *PeerData = (SBN_UDP_Peer_t *)Peer->ModulePvt; - if(PeerData->ConnectedFlag) - { - if(CurrentTime.seconds - Peer->LastRecv.seconds - > SBN_UDP_PEER_TIMEOUT) - { - CFE_EVS_SendEvent(SBN_UDP_DEBUG_EID, CFE_EVS_INFORMATION, - "CPU %d disconnected", Peer->ProcessorID); - PeerData->ConnectedFlag = FALSE; - return 0; - }/* end if */ - - if(CurrentTime.seconds - Peer->LastSend.seconds - > SBN_UDP_PEER_HEARTBEAT) - { - return SBN_UDP_Send(Peer, SBN_UDP_HEARTBEAT_MSG, 0, NULL); - }/* end if */ - } - else - { - if(CurrentTime.seconds - Peer->LastSend.seconds - > SBN_UDP_ANNOUNCE_TIMEOUT) - { - return SBN_UDP_Send(Peer, SBN_UDP_ANNOUNCE_MSG, 0, NULL); - }/* end if */ - }/* end if */ + //if(PeerData->ConnectedFlag) + //{ + //if(CurrentTime.seconds - Peer->LastRecv.seconds + //> SBN_UDP_PEER_TIMEOUT) + //{ + //CFE_EVS_SendEvent(SBN_UDP_DEBUG_EID, CFE_EVS_INFORMATION, + //"CPU %d disconnected", Peer->ProcessorID); + //PeerData->ConnectedFlag = FALSE; + //return 0; + //}/* end if */ + + //if(CurrentTime.seconds - Peer->LastSend.seconds + //> SBN_UDP_PEER_HEARTBEAT) + //{ + //return SBN_UDP_Send(Peer, SBN_UDP_HEARTBEAT_MSG, 0, NULL); + //}/* end if */ + //} + //else + //{ + //if(CurrentTime.seconds - Peer->LastSend.seconds + //> SBN_UDP_ANNOUNCE_TIMEOUT) + //{ + //return SBN_UDP_Send(Peer, SBN_UDP_ANNOUNCE_MSG, 0, NULL); + //}/* end if */ + //}/* end if */ return SBN_SUCCESS; }/* end SBN_UDP_PollPeer */ diff --git a/config/obc/sitl/target/apps/pq_lib/tables/pq_backup_cfg.c b/config/obc/sitl/target/apps/pq_lib/tables/pq_backup_cfg.c index b55a28fb1..e022ec67f 100644 --- a/config/obc/sitl/target/apps/pq_lib/tables/pq_backup_cfg.c +++ b/config/obc/sitl/target/apps/pq_lib/tables/pq_backup_cfg.c @@ -26,6 +26,7 @@ PQ_ChannelTbl_t PQ_BackupConfigTbl = { /* Message Flows */ /* Ground Queues */ + {SBN_SUB_MID, 1, PQ_PQUEUE_HIGH_IDX}, {TO_HK_TLM_MID, 1, PQ_PQUEUE_HIGH_IDX}, {TO_DATA_TYPE_MID, 1, PQ_PQUEUE_HIGH_IDX}, {TO_DIAG_TLM_MID, 1, PQ_PQUEUE_HIGH_IDX}, diff --git a/config/obc/sitl/target/apps/pq_lib/tables/pq_cfg.c b/config/obc/sitl/target/apps/pq_lib/tables/pq_cfg.c index a2d178d95..ff92e111e 100644 --- a/config/obc/sitl/target/apps/pq_lib/tables/pq_cfg.c +++ b/config/obc/sitl/target/apps/pq_lib/tables/pq_cfg.c @@ -45,6 +45,7 @@ PQ_ChannelTbl_t PQ_ConfigTbl = { /* Message Flows */ /* Ground Queues */ + {SBN_SUB_MID, 1, PQ_PQUEUE_HIGH_IDX}, {AMC_HK_TLM_MID, 1, PQ_PQUEUE_HIGH_IDX}, {MAC_HK_TLM_MID, 1, PQ_PQUEUE_HIGH_IDX}, {MPC_HK_TLM_MID, 1, PQ_PQUEUE_HIGH_IDX}, From bdb89e721119290b2fa1c3a93ffd08d54858449e Mon Sep 17 00:00:00 2001 From: lorenzo-gomez-windhover Date: Thu, 4 Feb 2021 18:02:06 -0600 Subject: [PATCH 046/370] -Added NumberOfCycles Command to CF --- .../Displays/Apps/CF/SetCyclesPerWakeup.opi | 270 ++++++++++++++++++ 1 file changed, 270 insertions(+) create mode 100644 core/base/tools/commander/workspace_template/Displays/Apps/CF/SetCyclesPerWakeup.opi diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/CF/SetCyclesPerWakeup.opi b/core/base/tools/commander/workspace_template/Displays/Apps/CF/SetCyclesPerWakeup.opi new file mode 100644 index 000000000..4bd42bd90 --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/Apps/CF/SetCyclesPerWakeup.opi @@ -0,0 +1,270 @@ + + + + + false + -1 + -1 + + false + + + + 1.5.3 + + + + 6 + 600 + + true + + + + + true + true + true + true + true + Display + 800 + -10965483:1776e5e5496:-5786 + -1 + -1 + + + + + + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 25 + ../../Resources/send.png + Action Button + 0 + + + + + true + true + false + + + + Set Cycles + false + $(pv_name) +$(pv_value) + true + Action Button + 115 + -10965483:1776e5e5496:-5776 + 96 + 84 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 1 + Label + + + true + true + false + + + + + true + 1 + true + Label + 80 + false + -10965483:1776e5e5496:-5772 + 246 + 48 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 1 + Label_1 + + + true + true + false + + + NumCyclesPerWakeup + + true + 1 + true + Label + 163 + false + -10965483:1776e5e5496:-5769 + 12 + 48 + + + + false + false + + + + true + + + + 3 + 1 + false + true + + Default + + false + + + + 0 + 25 + 1 + false + true + Infinity + -Infinity + Spinner + 10.0 + 3 + false + loc://SetCyclesPerWakeupNumCyclesPerWakeup<VDouble> + + + + true + true + false + + + true + 1.0 + $(pv_name) +$(pv_value) + false + 1 + true + Spinner + 85 + -10965483:1776e5e5496:-56b2 + 186 + 45 + + + + false + + + + + + + 0 + 1 + true + + Default Bold + + + + + 20 + 1 + Label_2 + + + true + true + false + + + Set Cycles + + true + 1 + true + Label + 151 + false + -10965483:1776e5e5496:-54db + 42 + 12 + + \ No newline at end of file From d7be1e6fdcc78c5e48ab61ff1a53bc17b6b4e18d Mon Sep 17 00:00:00 2001 From: cnalley Date: Fri, 5 Feb 2021 00:27:28 +0000 Subject: [PATCH 047/370] In progress test. --- apps/sbn/modules/udp/fsw/src/sbn_udp_if.c | 98 ++++++++++++++++++++++- 1 file changed, 95 insertions(+), 3 deletions(-) diff --git a/apps/sbn/modules/udp/fsw/src/sbn_udp_if.c b/apps/sbn/modules/udp/fsw/src/sbn_udp_if.c index 9c9353375..f779fbd5b 100644 --- a/apps/sbn/modules/udp/fsw/src/sbn_udp_if.c +++ b/apps/sbn/modules/udp/fsw/src/sbn_udp_if.c @@ -14,12 +14,16 @@ #endif -void PQ_Output_Task(void); +void SBN_PQ_Output_Task(void); +void SBN_PQ_ChannelHandler(PQ_ChannelData_t *Channel); extern PQ_ChannelTbl_t PQ_BackupConfigTbl; PQ_ChannelData_t Channel; PQ_HkTlm_t HkTlm; +uint32 ChildTaskID; +CFE_ES_ChildTaskMainFuncPtr_t ListenerTask; +uint8 Priority; int SBN_UDP_LoadNet(const char **Row, int FieldCnt, @@ -135,7 +139,25 @@ int SBN_UDP_InitNet(SBN_NetInterface_t *Net) return SBN_ERROR; } + char TaskName[OS_MAX_API_NAME]; + snprintf(TaskName, OS_MAX_API_NAME, "PQ_OUTCH_%u", 0); + ListenerTask = SBN_PQ_Output_Task; + Priority = 50; /* Create a child task here. */ + iStatus = CFE_ES_CreateChildTask( + &ChildTaskID, + (const char *)TaskName, + ListenerTask, + 0, + 131072, + Priority, + OS_ENABLE_CORE_0); + if (iStatus != CFE_SUCCESS) + { + /* TODO update to event. */ + printf("CFE_ES_CreateChildTask failed%u\n", iStatus); + return SBN_ERROR; + } return SBN_SUCCESS; }/* end SBN_UDP_InitNet */ @@ -316,13 +338,83 @@ int SBN_UDP_UnloadPeer(SBN_PeerInterface_t *Peer) return SBN_SUCCESS; }/* end SBN_UDP_UnloadPeer */ -void PQ_Output_Task(void) + +void SBN_PQ_Output_Task(void) { CFE_ES_RegisterChildTask(); - //TO_OutputChannel_ChannelHandler(0); + SBN_PQ_ChannelHandler(&Channel); CFE_ES_ExitChildTask(); } +/* TODO remove. */ +#include "pq_events.h" + +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ +/* */ +/* Channel Handler */ +/* */ +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ +void SBN_PQ_ChannelHandler(PQ_ChannelData_t *Channel) +{ + int32 iStatus = CFE_SUCCESS; + uint32 msgSize = 0; + char *buffer; + + /* TODO add flag */ + while(1) + { + if(PQ_Channel_State(Channel) == PQ_CHANNEL_OPENED) + { + PQ_OutputQueue_t *chQueue = &Channel->OutputQueue; + + iStatus = OS_QueueGet( + chQueue->OSALQueueID, + &buffer, sizeof(buffer), &msgSize, 500); + + if(iStatus == OS_SUCCESS) + { + uint16 actualMessageSize = CFE_SB_GetTotalMsgLength((CFE_SB_MsgPtr_t)buffer); + printf("actualMessageSize %u\n", actualMessageSize); + + //int32 sendResult = TO_OutputChannel_Send(ChannelIdx, (const char*)buffer, actualMessageSize); + + //if (sendResult != 0) + //{ + //TO_OutputChannel_Disable(ChannelIdx); + //} + + iStatus = CFE_ES_PutPoolBuf(Channel->MemPoolHandle, (uint32 *)buffer); + if(iStatus < 0) + { + (void) CFE_EVS_SendEvent(PQ_PUT_POOL_ERR_EID, CFE_EVS_ERROR, + "PutPoolBuf: error=0x%08lx", + (unsigned long)iStatus); + } + else + { + //OS_MutSemTake(TO_AppData.MutexID); + Channel->MemInUse -= iStatus; + //OS_MutSemGive(TO_AppData.MutexID); + + PQ_Channel_LockByRef(Channel); + chQueue->CurrentlyQueuedCnt--; + chQueue->SentCount++; + PQ_Channel_UnlockByRef(Channel); + } + + } + else if(iStatus == OS_QUEUE_TIMEOUT) + { + /* Do nothing. Just loop back around and check the guard. */ + } + else + { + CFE_EVS_SendEvent(PQ_OSQUEUE_GET_ERROR_EID, CFE_EVS_ERROR, + "Listener failed to pop message from queue. (%i).", (int)iStatus); + } + } + } +} From 6c1eaf244adf78fcaaec10bf472262a6b651561b Mon Sep 17 00:00:00 2001 From: lorenzo-gomez-windhover Date: Fri, 5 Feb 2021 11:25:04 -0600 Subject: [PATCH 048/370] -CI has been verified --- .../Displays/Apps/CI/AuthorizeCommand.opi | 333 +++++++++++ .../Displays/Apps/CI/DeauthorizeCommand.opi | 333 +++++++++++ .../Displays/Apps/CI/DeregisterCommand.opi | 538 ++++++++++++++++++ .../Displays/Apps/CI/RegisterCommand.opi | 538 ++++++++++++++++++ .../Displays/Apps/CI/UpdateCommand.opi | 538 ++++++++++++++++++ 5 files changed, 2280 insertions(+) create mode 100644 core/base/tools/commander/workspace_template/Displays/Apps/CI/AuthorizeCommand.opi create mode 100644 core/base/tools/commander/workspace_template/Displays/Apps/CI/DeauthorizeCommand.opi create mode 100644 core/base/tools/commander/workspace_template/Displays/Apps/CI/DeregisterCommand.opi create mode 100644 core/base/tools/commander/workspace_template/Displays/Apps/CI/RegisterCommand.opi create mode 100644 core/base/tools/commander/workspace_template/Displays/Apps/CI/UpdateCommand.opi diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/CI/AuthorizeCommand.opi b/core/base/tools/commander/workspace_template/Displays/Apps/CI/AuthorizeCommand.opi new file mode 100644 index 000000000..0ceea2184 --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/Apps/CI/AuthorizeCommand.opi @@ -0,0 +1,333 @@ + + + + + false + -1 + -1 + + false + + + + 1.5.3 + + + + 6 + 300 + + true + + + + + true + true + true + true + true + Display + 300 + 4d40612f:17772f0c845:-7fca + -1 + -1 + + + false + false + false + + + + false + + + + 1 + 1 + + true + + Default + + false + + + + 0 + 25 + 0 + false + Infinity + -Infinity + false + msgIdInput + 0 + true + loc://AuthorizeCommandMsgID<VString> + + 0.0 + + + true + true + false + + + 0 + true + + + $(pv_name) +$(pv_value) + false + true + Text Input + 100 + 4d40612f:17772f0c845:-7fc5 + 120 + 60 + + + + false + + + + + + + 0 + 1 + true + + Default Bold + + + + + 20 + 1 + Label_49 + + + true + true + false + + + Authorize Command + + true + 1 + true + Label + 192 + false + 4d40612f:17772f0c845:-7fb9 + 62 + 12 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label + + + true + true + false + + + msgID + + true + 1 + true + Label + 80 + false + 4d40612f:17772f0c845:-7fad + 36 + 63 + + + + false + false + false + + + + false + + + + 1 + 1 + + true + + Default + + false + + + + 0 + 25 + 0 + false + 1.7976931348623157E308 + -1.7976931348623157E308 + false + cmdCodeInput + 0 + true + loc://AuthorizeCommandCommandCode<VString> + + 0.0 + + + true + true + false + + + 0 + true + + + $(pv_name) +$(pv_value) + false + true + Text Input + 100 + 4d40612f:17772f0c845:-7f9d + 120 + 96 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_2 + + + true + true + false + + + cmdCode + + true + 1 + true + Label + 80 + false + 4d40612f:17772f0c845:-7f9c + 36 + 99 + + + + + + + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 25 + ../../Resources/send.png + Action Button + 0 + + + + + true + true + false + + + + Authorize + false + $(pv_name) +$(pv_value) + true + Action Button + 105 + 4d40612f:17772f0c845:-7f4c + 105 + 144 + + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/CI/DeauthorizeCommand.opi b/core/base/tools/commander/workspace_template/Displays/Apps/CI/DeauthorizeCommand.opi new file mode 100644 index 000000000..f3b11840a --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/Apps/CI/DeauthorizeCommand.opi @@ -0,0 +1,333 @@ + + + + + false + -1 + -1 + + false + + + + 1.5.3 + + + + 6 + 300 + + true + + + + + true + true + true + true + true + Display + 300 + 4d40612f:17772f0c845:-7f06 + -1 + -1 + + + false + false + false + + + + false + + + + 1 + 1 + + true + + Default + + false + + + + 0 + 25 + 0 + false + 1.7976931348623157E308 + -1.7976931348623157E308 + false + msgIdInput + 0 + true + loc://DeauthorizeCommandMsgID<VString> + + 0.0 + + + true + true + false + + + 0 + true + + + $(pv_name) +$(pv_value) + false + true + Text Input + 100 + 4d40612f:17772f0c845:-7eef + 106 + 72 + + + + false + + + + + + + 0 + 1 + true + + Default Bold + + + + + 20 + 1 + Label_49 + + + true + true + false + + + Deauthorize Command + + true + 1 + true + Label + 192 + false + 4d40612f:17772f0c845:-7eee + 48 + 24 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label + + + true + true + false + + + msgID + + true + 1 + true + Label + 80 + false + 4d40612f:17772f0c845:-7eed + 22 + 75 + + + + false + false + false + + + + false + + + + 1 + 1 + + true + + Default + + false + + + + 0 + 25 + 0 + false + 1.7976931348623157E308 + -1.7976931348623157E308 + false + cmdCodeInput + 0 + true + loc://DeauthorizeCommandCommandCode<VString> + + 0.0 + + + true + true + false + + + 0 + true + + + $(pv_name) +$(pv_value) + false + true + Text Input + 100 + 4d40612f:17772f0c845:-7eec + 106 + 108 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_2 + + + true + true + false + + + cmdCode + + true + 1 + true + Label + 80 + false + 4d40612f:17772f0c845:-7eeb + 22 + 111 + + + + + + + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 25 + ../../Resources/send.png + Action Button + 0 + + + + + true + true + false + + + + Deauthorize + false + $(pv_name) +$(pv_value) + true + Action Button + 105 + 4d40612f:17772f0c845:-7eea + 91 + 156 + + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/CI/DeregisterCommand.opi b/core/base/tools/commander/workspace_template/Displays/Apps/CI/DeregisterCommand.opi new file mode 100644 index 000000000..a7e5aba13 --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/Apps/CI/DeregisterCommand.opi @@ -0,0 +1,538 @@ + + + + + false + -1 + -1 + + false + + + + 1.5.3 + + + + 6 + 600 + + true + + + + + true + true + true + true + true + Display + 800 + 4d40612f:17772f0c845:-7d45 + -1 + -1 + + + false + false + false + + + + false + + + + 1 + 1 + + true + + Default + + false + + + + 0 + 25 + 0 + false + 1.7976931348623157E308 + -1.7976931348623157E308 + false + msgIdInput + 0 + true + loc://DeRegisterCommandMsgID<VString> + + 0.0 + + + true + true + false + + + 0 + true + + + $(pv_name) +$(pv_value) + false + true + Text Input + 134 + 4d40612f:17772f0c845:-7d17 + 112 + 78 + + + + false + + + + + + + 0 + 1 + true + + Default Bold + + + + + 20 + 1 + Label_49 + + + true + true + false + + + Deregister Command + + true + 1 + true + Label + 192 + false + 4d40612f:17772f0c845:-7d16 + 54 + 30 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label + + + true + true + false + + + msgID + + true + 1 + true + Label + 80 + false + 4d40612f:17772f0c845:-7d15 + 28 + 81 + + + + false + false + false + + + + false + + + + 1 + 1 + + true + + Default + + false + + + + 0 + 25 + 0 + false + 1.7976931348623157E308 + -1.7976931348623157E308 + false + cmdCodeInput + 0 + true + loc://DeregisterCommandCommandCode<VString> + + 0.0 + + + true + true + false + + + 0 + true + + + $(pv_name) +$(pv_value) + false + true + Text Input + 134 + 4d40612f:17772f0c845:-7d14 + 112 + 114 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_2 + + + true + true + false + + + cmdCode + + true + 1 + true + Label + 80 + false + 4d40612f:17772f0c845:-7d13 + 28 + 117 + + + + + + + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 25 + ../../Resources/send.png + Action Button + 0 + + + + + true + true + false + + + + Deregister + false + $(pv_name) +$(pv_value) + true + Action Button + 105 + 4d40612f:17772f0c845:-7d12 + 97 + 234 + + + + false + false + + + + false + + + + 1 + 1 + true + + Default + + false + + + + 32 + + STEP_1 + STEP_2 + + false + Step + loc://DeregisterCommandStep<VString> + + + + true + true + false + + + $(pv_name) +$(pv_value) + true + Combo + 134 + 4d40612f:17772f0c845:-7d11 + 112 + 150 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_3 + + + true + true + false + + + Step + + true + 1 + true + Label + 80 + false + 4d40612f:17772f0c845:-7d10 + 28 + 153 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_4 + + + true + true + false + + + Log + + true + 1 + true + Label + 80 + false + 4d40612f:17772f0c845:-7d0f + 28 + 189 + + + + false + false + + + + false + + + + 1 + 1 + true + + Default + + false + + + + 32 + + EXCLUDE + LOG + + false + Log + loc://DeregisterCommandLog<VString> + + + + true + true + false + + + $(pv_name) +$(pv_value) + true + Combo + 134 + 4d40612f:17772f0c845:-7d0e + 112 + 189 + + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/CI/RegisterCommand.opi b/core/base/tools/commander/workspace_template/Displays/Apps/CI/RegisterCommand.opi new file mode 100644 index 000000000..a55ea0c73 --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/Apps/CI/RegisterCommand.opi @@ -0,0 +1,538 @@ + + + + + false + -1 + -1 + + false + + + + 1.5.3 + + + + 6 + 300 + + true + + + + + true + true + true + true + true + Display + 300 + 4d40612f:17772f0c845:-7ecd + -1 + -1 + + + false + false + false + + + + false + + + + 1 + 1 + + true + + Default + + false + + + + 0 + 25 + 0 + false + 1.7976931348623157E308 + -1.7976931348623157E308 + false + msgIdInput + 0 + true + loc://RegisterCommandMsgID<VString> + + 0.0 + + + true + true + false + + + 0 + true + + + $(pv_name) +$(pv_value) + false + true + Text Input + 134 + 4d40612f:17772f0c845:-7e8b + 106 + 72 + + + + false + + + + + + + 0 + 1 + true + + Default Bold + + + + + 20 + 1 + Label_49 + + + true + true + false + + + Register Command + + true + 1 + true + Label + 192 + false + 4d40612f:17772f0c845:-7e8a + 48 + 24 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label + + + true + true + false + + + msgID + + true + 1 + true + Label + 80 + false + 4d40612f:17772f0c845:-7e89 + 22 + 75 + + + + false + false + false + + + + false + + + + 1 + 1 + + true + + Default + + false + + + + 0 + 25 + 0 + false + 1.7976931348623157E308 + -1.7976931348623157E308 + false + cmdCodeInput + 0 + true + loc://RegisterCommandCommandCode<VString> + + 0.0 + + + true + true + false + + + 0 + true + + + $(pv_name) +$(pv_value) + false + true + Text Input + 134 + 4d40612f:17772f0c845:-7e88 + 106 + 108 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_2 + + + true + true + false + + + cmdCode + + true + 1 + true + Label + 80 + false + 4d40612f:17772f0c845:-7e87 + 22 + 111 + + + + + + + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 25 + ../../Resources/send.png + Action Button + 0 + + + + + true + true + false + + + + Register + false + $(pv_name) +$(pv_value) + true + Action Button + 105 + 4d40612f:17772f0c845:-7e86 + 91 + 228 + + + + false + false + + + + false + + + + 1 + 1 + true + + Default + + false + + + + 32 + + STEP_1 + STEP_2 + + false + Step + loc://RegisterCommandStep<VString> + + + + true + true + false + + + $(pv_name) +$(pv_value) + true + Combo + 134 + 4d40612f:17772f0c845:-7e59 + 106 + 144 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_3 + + + true + true + false + + + Step + + true + 1 + true + Label + 80 + false + 4d40612f:17772f0c845:-7e58 + 22 + 147 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_4 + + + true + true + false + + + Log + + true + 1 + true + Label + 80 + false + 4d40612f:17772f0c845:-7e56 + 22 + 183 + + + + false + false + + + + false + + + + 1 + 1 + true + + Default + + false + + + + 32 + + EXCLUDE + LOG + + false + Log + loc://RegisterCommandLog<VString> + + + + true + true + false + + + $(pv_name) +$(pv_value) + true + Combo + 134 + 4d40612f:17772f0c845:-7da1 + 106 + 183 + + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/CI/UpdateCommand.opi b/core/base/tools/commander/workspace_template/Displays/Apps/CI/UpdateCommand.opi new file mode 100644 index 000000000..2ee3e2d55 --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/Apps/CI/UpdateCommand.opi @@ -0,0 +1,538 @@ + + + + + false + -1 + -1 + + false + + + + 1.5.3 + + + + 6 + 300 + + true + + + + + true + true + true + true + true + Display + 300 + 4d40612f:17772f0c845:-7ecd + -1 + -1 + + + false + false + false + + + + false + + + + 1 + 1 + + true + + Default + + false + + + + 0 + 25 + 0 + false + 1.7976931348623157E308 + -1.7976931348623157E308 + false + msgIdInput + 0 + true + loc://UpdateCommandMsgID<VString> + + 0.0 + + + true + true + false + + + 0 + true + + + $(pv_name) +$(pv_value) + false + true + Text Input + 134 + 4d40612f:17772f0c845:-7e8b + 106 + 72 + + + + false + + + + + + + 0 + 1 + true + + Default Bold + + + + + 20 + 1 + Label_49 + + + true + true + false + + + Update Command + + true + 1 + true + Label + 192 + false + 4d40612f:17772f0c845:-7e8a + 48 + 24 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label + + + true + true + false + + + msgID + + true + 1 + true + Label + 80 + false + 4d40612f:17772f0c845:-7e89 + 22 + 75 + + + + false + false + false + + + + false + + + + 1 + 1 + + true + + Default + + false + + + + 0 + 25 + 0 + false + 1.7976931348623157E308 + -1.7976931348623157E308 + false + cmdCodeInput + 0 + true + loc://UpdateCommandCommandCode<VString> + + 0.0 + + + true + true + false + + + 0 + true + + + $(pv_name) +$(pv_value) + false + true + Text Input + 134 + 4d40612f:17772f0c845:-7e88 + 106 + 108 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_2 + + + true + true + false + + + cmdCode + + true + 1 + true + Label + 80 + false + 4d40612f:17772f0c845:-7e87 + 22 + 111 + + + + + + + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 25 + ../../Resources/send.png + Action Button + 0 + + + + + true + true + false + + + + Update + false + $(pv_name) +$(pv_value) + true + Action Button + 105 + 4d40612f:17772f0c845:-7e86 + 91 + 228 + + + + false + false + + + + false + + + + 1 + 1 + true + + Default + + false + + + + 32 + + STEP_1 + STEP_2 + + false + Step + loc://UpdateCommandStep<VString> + + + + true + true + false + + + $(pv_name) +$(pv_value) + true + Combo + 134 + 4d40612f:17772f0c845:-7e59 + 106 + 144 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_3 + + + true + true + false + + + Step + + true + 1 + true + Label + 80 + false + 4d40612f:17772f0c845:-7e58 + 22 + 147 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_4 + + + true + true + false + + + Log + + true + 1 + true + Label + 80 + false + 4d40612f:17772f0c845:-7e56 + 22 + 183 + + + + false + false + + + + false + + + + 1 + 1 + true + + Default + + false + + + + 32 + + EXCLUDE + LOG + + false + Log + loc://UpdateCommandLog<VString> + + + + true + true + false + + + $(pv_name) +$(pv_value) + true + Combo + 134 + 4d40612f:17772f0c845:-7da1 + 106 + 183 + + \ No newline at end of file From 359bfee91a6924ea68eeec952b48c883be419a96 Mon Sep 17 00:00:00 2001 From: lorenzo-gomez-windhover Date: Fri, 5 Feb 2021 12:32:10 -0600 Subject: [PATCH 049/370] -Added string overrides to cs app --- apps/cs/wh_design.yaml | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/apps/cs/wh_design.yaml b/apps/cs/wh_design.yaml index 265acd818..12fe18d70 100644 --- a/apps/cs/wh_design.yaml +++ b/apps/cs/wh_design.yaml @@ -293,7 +293,14 @@ id: 145 CS_EXIT_INF_EID: id: 146 - telemetry: + msg_def_overrides: + - parent: CS_AppNameCmd_t + member: Name + type: string + - parent: CS_TableNameCmd_t + member: Name + type: string + telemetry: CS_HK_TLM_MID: msgID: struct: CS_HkPacket_t From 9c8557273602a11237774079fa7762ca7782cbbc Mon Sep 17 00:00:00 2001 From: Mathew Benson Date: Fri, 5 Feb 2021 14:33:57 -0600 Subject: [PATCH 050/370] Removed unused tables from the SC table --- config/shared/apps/cs/tables/cs_tablestbl.c | 19 ++++++++----------- 1 file changed, 8 insertions(+), 11 deletions(-) diff --git a/config/shared/apps/cs/tables/cs_tablestbl.c b/config/shared/apps/cs/tables/cs_tablestbl.c index 887a01bcf..95ca25f89 100644 --- a/config/shared/apps/cs/tables/cs_tablestbl.c +++ b/config/shared/apps/cs/tables/cs_tablestbl.c @@ -18,17 +18,14 @@ CS_Def_Tables_Table_Entry_t CS_TablesTable[CS_MAX_NUM_TABLES_TABLE_ENTRIES] /* 5 */ { CS_STATE_ENABLED, "DS.FILTER_TBL" }, /* 6 */ { CS_STATE_ENABLED, "FM.FreeSpace" }, /* 7 */ { CS_STATE_ENABLED, "HK.CopyTable" }, - /* 8 */ { CS_STATE_ENABLED, "HS.AppMon_Tbl" }, - /* 9 */ { CS_STATE_ENABLED, "HS.EventMon_Tbl" }, - /* 10 */ { CS_STATE_ENABLED, "HS.MsgActs_Tbl" }, - /* 11 */ { CS_STATE_ENABLED, "HS.ExeCount_Tbl" }, - /* 12 */ { CS_STATE_ENABLED, "LC.LC_ADT" }, - /* 13 */ { CS_STATE_ENABLED, "LC.LC_WDT" }, - /* 14 */ { CS_STATE_ENABLED, "SCH.MSG_DEFS" }, - /* 15 */ { CS_STATE_ENABLED, "SCH.SCHED_DEF" }, - /* 16 */ { CS_STATE_ENABLED, "TO.UDP_CFG" }, - /* 17 */ { CS_STATE_EMPTY, "" }, - /* 18 */ { CS_STATE_EMPTY, "" } + /* 8 */ { CS_STATE_ENABLED, "LC.LC_ADT" }, + /* 9 */ { CS_STATE_ENABLED, "LC.LC_WDT" }, + /* 10 */ { CS_STATE_ENABLED, "SCH.MSG_DEFS" }, + /* 11 */ { CS_STATE_ENABLED, "SCH.SCHED_DEF" }, + /* 12 */ { CS_STATE_ENABLED, "TO.UDP_CFG" }, + /* 13 */ { CS_STATE_EMPTY, "" }, + /* 14 */ { CS_STATE_EMPTY, "" }, + /* 15 */ { CS_STATE_EMPTY, "" } }; From cfad7095cb9c6dbfc0f883389bea969ea2ffe583 Mon Sep 17 00:00:00 2001 From: cnalley Date: Fri, 5 Feb 2021 22:28:52 +0000 Subject: [PATCH 051/370] Working test UDP configuration. --- apps/sbn/fsw/src/sbn_subs.c | 11 +- apps/sbn/modules/udp/fsw/src/sbn_udp_if.c | 92 +- config/obc/ppd/target/CMakeLists.txt | 9 + .../obc/ppd/target/apps/pq_lib/CMakeLists.txt | 7 + .../target/apps/pq_lib/tables/pq_backup_cfg.c | 76 + .../ppd/target/apps/pq_lib/tables/pq_cfg.c | 226 +++ .../ppd/target/apps/sbn/src/sbn_remap_tbl.c | 23 +- .../ppd/target/apps/to/tables/to_udp_cfg.c | 27 + config/obc/ppd/target/cfe_es_startup.scr | 1 + config/obc/sitl/inc/cfe_msgids.h | 58 + config/obc/sitl/inc/cfe_platform_cfg.h | 1770 +++++++++++++++++ config/obc/sitl/target/CMakeLists.txt | 17 - .../target/apps/pq_lib/tables/pq_backup_cfg.c | 1 + .../sitl/target/apps/pq_lib/tables/pq_cfg.c | 1 + .../sitl/target/apps/sbn/src/sbn_remap_tbl.c | 23 +- config/obc/sitl/target/cfe_es_startup.scr | 2 - config/shared/inc/msg_ids.h | 1 + 17 files changed, 2275 insertions(+), 70 deletions(-) create mode 100644 config/obc/ppd/target/apps/pq_lib/CMakeLists.txt create mode 100644 config/obc/ppd/target/apps/pq_lib/tables/pq_backup_cfg.c create mode 100644 config/obc/ppd/target/apps/pq_lib/tables/pq_cfg.c create mode 100644 config/obc/sitl/inc/cfe_msgids.h create mode 100644 config/obc/sitl/inc/cfe_platform_cfg.h diff --git a/apps/sbn/fsw/src/sbn_subs.c b/apps/sbn/fsw/src/sbn_subs.c index b0fd8e1de..35a2c376e 100644 --- a/apps/sbn/fsw/src/sbn_subs.c +++ b/apps/sbn/fsw/src/sbn_subs.c @@ -83,7 +83,15 @@ static void SendLocalSubToPeer(int SubType, CFE_SB_MsgId_t MsgID, { SBN_SubPacket_t Packet; - CFE_SB_InitMsg(&Packet, SBN_SUB_MID, sizeof(Packet), TRUE); + if(SubType == SBN_SUBSCRIBE_MSG) + { + CFE_SB_InitMsg(&Packet, SBN_SUB_MID, sizeof(Packet), TRUE); + } + else + { + CFE_SB_InitMsg(&Packet, SBN_UNSUB_MID, sizeof(Packet), TRUE); + } + memcpy(&Packet.Ident, SBN_IDENT, SBN_IDENT_LEN); Packet.SubCount = 1; Packet.Sub.MsgID = MsgID; @@ -128,6 +136,7 @@ void SBN_SendLocalSubsToPeer(SBN_PeerInterface_t *Peer) SBN_SubsPacket_t Packet; CFE_SB_InitMsg(&Packet, SBN_SUB_MID, sizeof(Packet), TRUE); + memcpy(&Packet.Ident, SBN_IDENT, SBN_IDENT_LEN); Packet.SubCount = SBN.SubCnt; diff --git a/apps/sbn/modules/udp/fsw/src/sbn_udp_if.c b/apps/sbn/modules/udp/fsw/src/sbn_udp_if.c index f779fbd5b..9861c98c6 100644 --- a/apps/sbn/modules/udp/fsw/src/sbn_udp_if.c +++ b/apps/sbn/modules/udp/fsw/src/sbn_udp_if.c @@ -5,6 +5,7 @@ #include #include #include "pq_includes.h" +#include "msg_ids.h" /* at some point this will be replaced by the OSAL network interface */ #ifdef _VXWORKS_OS_ @@ -22,8 +23,10 @@ extern PQ_ChannelTbl_t PQ_BackupConfigTbl; PQ_ChannelData_t Channel; PQ_HkTlm_t HkTlm; uint32 ChildTaskID; -CFE_ES_ChildTaskMainFuncPtr_t ListenerTask; +CFE_ES_ChildTaskMainFuncPtr_t ListenerTask; uint8 Priority; +struct sockaddr_in s_addr; +int Socket; int SBN_UDP_LoadNet(const char **Row, int FieldCnt, @@ -98,22 +101,6 @@ int SBN_UDP_InitNet(SBN_NetInterface_t *Net) return SBN_ERROR; }/* end if */ - static struct sockaddr_in my_addr; - - my_addr.sin_addr.s_addr = inet_addr(NetData->Host); - my_addr.sin_family = AF_INET; - my_addr.sin_port = htons(NetData->Port); - - if(bind(NetData->Socket, (struct sockaddr *) &my_addr, - sizeof(my_addr)) < 0) - { - CFE_EVS_SendEvent(SBN_UDP_SOCK_EID, CFE_EVS_ERROR, - "bind call failed (%s:%d Socket=%d errno=%d)", - NetData->Host, NetData->Port, NetData->Socket, errno); - return SBN_ERROR; - }/* end if */ - - iStatus = PQ_Channel_Init(0, &Channel); if (iStatus != CFE_SUCCESS) { @@ -139,6 +126,25 @@ int SBN_UDP_InitNet(SBN_NetInterface_t *Net) return SBN_ERROR; } + static struct sockaddr_in my_addr; + + my_addr.sin_addr.s_addr = inet_addr(NetData->Host); + my_addr.sin_family = AF_INET; + my_addr.sin_port = htons(NetData->Port); + + if(bind(NetData->Socket, (struct sockaddr *) &my_addr, + sizeof(my_addr)) < 0) + { + CFE_EVS_SendEvent(SBN_UDP_SOCK_EID, CFE_EVS_ERROR, + "bind call failed (%s:%d Socket=%d errno=%d)", + NetData->Host, NetData->Port, NetData->Socket, errno); + return SBN_ERROR; + }/* end if */ + else + { + printf("SBN bound %s:%d\n", NetData->Host, NetData->Port); + } + char TaskName[OS_MAX_API_NAME]; snprintf(TaskName, OS_MAX_API_NAME, "PQ_OUTCH_%u", 0); ListenerTask = SBN_PQ_Output_Task; @@ -220,18 +226,18 @@ int SBN_UDP_Send(SBN_PeerInterface_t *Peer, SBN_MsgType_t MsgType, //size_t BufSz = MsgSz + SBN_PACKED_HDR_SZ; //uint8 Buf[BufSz]; - //SBN_UDP_Peer_t *PeerData = (SBN_UDP_Peer_t *)Peer->ModulePvt; - //SBN_NetInterface_t *Net = Peer->Net; - //SBN_UDP_Net_t *NetData = (SBN_UDP_Net_t *)Net->ModulePvt; + SBN_UDP_Peer_t *PeerData = (SBN_UDP_Peer_t *)Peer->ModulePvt; + SBN_NetInterface_t *Net = Peer->Net; + SBN_UDP_Net_t *NetData = (SBN_UDP_Net_t *)Net->ModulePvt; //SBN_PackMsg(&Buf, MsgSz, MsgType, CFE_PSP_GetProcessorId(), Payload); - //static struct sockaddr_in s_addr; - - //memset(&s_addr, 0, sizeof(s_addr)); - //s_addr.sin_family = AF_INET; - //s_addr.sin_addr.s_addr = inet_addr(PeerData->Host); - //s_addr.sin_port = htons(PeerData->Port); + /* TODO Save off this information for now. */ + memset(&s_addr, 0, sizeof(s_addr)); + s_addr.sin_family = AF_INET; + s_addr.sin_addr.s_addr = inet_addr(PeerData->Host); + s_addr.sin_port = htons(PeerData->Port); + Socket = NetData->Socket; //sendto(NetData->Socket, &Buf, BufSz, 0, (struct sockaddr *) &s_addr, //sizeof(s_addr)); @@ -286,6 +292,9 @@ int SBN_UDP_Recv(SBN_NetInterface_t *Net, SBN_MsgType_t *MsgTypePtr, { return SBN_ERROR; }/* end if */ + + CFE_SB_MsgId_t MsgID = CFE_SB_GetMsgId((CFE_SB_MsgPtr_t)Payload); + printf("Received %u MID %x\n", Received, MsgID); SBN_PeerInterface_t *Peer = SBN_GetPeer(Net, *CpuIDPtr); if(Peer == NULL) @@ -375,8 +384,26 @@ void SBN_PQ_ChannelHandler(PQ_ChannelData_t *Channel) if(iStatus == OS_SUCCESS) { - uint16 actualMessageSize = CFE_SB_GetTotalMsgLength((CFE_SB_MsgPtr_t)buffer); - printf("actualMessageSize %u\n", actualMessageSize); + uint16 actualMessageSize = CFE_SB_GetTotalMsgLength((CFE_SB_MsgPtr_t)buffer); + CFE_SB_MsgId_t MsgID = CFE_SB_GetMsgId((CFE_SB_MsgPtr_t)buffer); + SBN_MsgType_t MsgType; + size_t BufSz = actualMessageSize + SBN_PACKED_HDR_SZ; + uint8 Buf[BufSz]; + + if(MsgID == SBN_SUB_MID) + { + MsgType = SBN_SUBSCRIBE_MSG; + } + else if (MsgID == SBN_UNSUB_MID) + { + MsgType = SBN_UN_SUBSCRIBE_MSG; + } + else + { + MsgType = SBN_APP_MSG; + } + + SBN_PackMsg(&Buf, actualMessageSize, MsgType, CFE_PSP_GetProcessorId(), buffer); //int32 sendResult = TO_OutputChannel_Send(ChannelIdx, (const char*)buffer, actualMessageSize); @@ -384,6 +411,15 @@ void SBN_PQ_ChannelHandler(PQ_ChannelData_t *Channel) //{ //TO_OutputChannel_Disable(ChannelIdx); //} + + int status = sendto(Socket, (const char*)Buf, BufSz, 0, (struct sockaddr *) &s_addr, + sizeof(s_addr)); + if (status < 0) + { + /* TODO */ + printf("sendto failed errno %d\n", errno); + iStatus = -1; + } iStatus = CFE_ES_PutPoolBuf(Channel->MemPoolHandle, (uint32 *)buffer); if(iStatus < 0) diff --git a/config/obc/ppd/target/CMakeLists.txt b/config/obc/ppd/target/CMakeLists.txt index fc908ddfc..44017f1f1 100644 --- a/config/obc/ppd/target/CMakeLists.txt +++ b/config/obc/ppd/target/CMakeLists.txt @@ -40,6 +40,13 @@ buildliner_add_app( CONFIG ${CMAKE_CURRENT_SOURCE_DIR}/apps/prm ) +buildliner_add_app( + pq_lib + DEFINITION ${PROJECT_SOURCE_DIR}/apps/pq_lib/fsw/for_build + # TODO move this table build to sbn module? + CONFIG ${CMAKE_CURRENT_SOURCE_DIR}/apps/pq_lib +) + buildliner_add_app( sch DEFINITION ${PROJECT_SOURCE_DIR}/apps/sch/fsw/for_build @@ -147,5 +154,7 @@ buildliner_add_app( buildliner_add_app( sbn_udp DEFINITION ${PROJECT_SOURCE_DIR}/apps/sbn/modules/udp/fsw/for_build + CONFIG_SOURCES + ${CMAKE_CURRENT_SOURCE_DIR}/apps/pq_lib/tables/pq_backup_cfg.c ) diff --git a/config/obc/ppd/target/apps/pq_lib/CMakeLists.txt b/config/obc/ppd/target/apps/pq_lib/CMakeLists.txt new file mode 100644 index 000000000..94754ad68 --- /dev/null +++ b/config/obc/ppd/target/apps/pq_lib/CMakeLists.txt @@ -0,0 +1,7 @@ +set(APP_NAME pq_lib) + +buildliner_add_table( + ${APP_NAME} + NAME pq_cfg + SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/tables/pq_cfg.c +) diff --git a/config/obc/ppd/target/apps/pq_lib/tables/pq_backup_cfg.c b/config/obc/ppd/target/apps/pq_lib/tables/pq_backup_cfg.c new file mode 100644 index 000000000..064ccb4b7 --- /dev/null +++ b/config/obc/ppd/target/apps/pq_lib/tables/pq_backup_cfg.c @@ -0,0 +1,76 @@ +/************************************************************************ + ** Includes + *************************************************************************/ +#include "cfe_tbl_filedef.h" +#include "pq_structs.h" +#include "msg_ids.h" + + +/************************************************************************ + ** Defines + *************************************************************************/ + +#define PQ_PQUEUE_SINGLE_PASS_IDX 0 +#define PQ_PQUEUE_HIGH_OPS_RSRVD_IDX 1 +#define PQ_PQUEUE_HIGH_IDX 2 +#define PQ_PQUEUE_MEDIUM_IDX 3 +#define PQ_PQUEUE_LOW_IDX 4 + +/** + ** \brief Default TO config table data + */ +PQ_ChannelTbl_t PQ_BackupConfigTbl = +{ + /* Table ID */ + 0, + { + /* Message Flows */ + /* Ground Queues */ + {SBN_SUB_MID, 1, PQ_PQUEUE_HIGH_IDX}, + {SBN_UNSUB_MID, 1, PQ_PQUEUE_HIGH_IDX}, + {TO_HK_TLM_MID, 1, PQ_PQUEUE_HIGH_IDX}, + {TO_DATA_TYPE_MID, 1, PQ_PQUEUE_HIGH_IDX}, + {TO_DIAG_TLM_MID, 1, PQ_PQUEUE_HIGH_IDX}, + {CFE_ES_HK_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, + {CFE_EVS_HK_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, + {CFE_SB_HK_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, + {CFE_TBL_HK_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, + {CFE_TIME_HK_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, + {CFE_TIME_DIAG_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, + {CFE_EVS_EVENT_MSG_MID, 32, PQ_PQUEUE_MEDIUM_IDX}, + {CFE_SB_STATS_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, + {CFE_ES_APP_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, + {CFE_TBL_REG_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, + {CFE_SB_ONESUB_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, + {CFE_ES_SHELL_TLM_MID, 32, PQ_PQUEUE_MEDIUM_IDX}, + {CFE_ES_MEMSTATS_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, + {CF_HK_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, + {CF_TRANS_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, + {CF_CONFIG_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, + {CF_SPACE_TO_GND_PDU_MID, 32, PQ_PQUEUE_MEDIUM_IDX}, + {FM_HK_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, + {FM_FILE_INFO_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, + {FM_DIR_LIST_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, + {FM_OPEN_FILES_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, + {FM_FREE_SPACE_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, + {MD_HK_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, + {MM_HK_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, + },{ + /* Priority Queues */ + /* PQ_PQUEUE_SINGLE_PASS_IDX */ + {PQ_PQUEUE_ENA, 100, PQ_PRIORITY_QUEUE_TYPE_SINGLE}, + /* PQ_PQUEUE_HIGH_OPS_RSRVD_IDX */ + {PQ_PQUEUE_ENA, 100, PQ_PRIORITY_QUEUE_TYPE_FIFO}, + /* PQ_PQUEUE_HIGH_IDX */ + {PQ_PQUEUE_ENA, 100, PQ_PRIORITY_QUEUE_TYPE_FIFO}, + /* PQ_PQUEUE_MEDIUM_IDX */ + {PQ_PQUEUE_ENA, 100, PQ_PRIORITY_QUEUE_TYPE_FIFO}, + /* PQ_PQUEUE_LOW_IDX */ + {PQ_PQUEUE_ENA, 100, PQ_PRIORITY_QUEUE_TYPE_FIFO} + } +}; + + +/************************/ +/* End of File Comment */ +/************************/ diff --git a/config/obc/ppd/target/apps/pq_lib/tables/pq_cfg.c b/config/obc/ppd/target/apps/pq_lib/tables/pq_cfg.c new file mode 100644 index 000000000..c281ec915 --- /dev/null +++ b/config/obc/ppd/target/apps/pq_lib/tables/pq_cfg.c @@ -0,0 +1,226 @@ +/************************************************************************ + ** Includes + *************************************************************************/ +#include "cfe_tbl_filedef.h" +#include "pq_structs.h" +#include "msg_ids.h" + +/** + ** \brief The cFE TO config table definition. + ** + ** Content format: ObjName[64], TblName[38], Desc[32], TgtFileName[20], ObjSize + ** ObjName - variable name of config table, e.g., PQ_ConfigDefTbl[] + ** TblName - app's table name, e.g., TO.CONFIG_TBL, where TO is the same app name + ** used in cfe_es_startup.scr, and PQ_defConfigTbl is the same table + ** name passed in to CFE_TBL_Register() + ** Desc - description of table in string format + ** TgtFileName[20] - table file name, compiled as .tbl file extension + ** ObjSize - size of the entire table + ** + */ +static CFE_TBL_FileDef_t CFE_TBL_FileDef OS_USED = +{ + "PQ_ConfigTbl", "SBN.CFG", "PQ table", + "pq_cfg.tbl", (sizeof(PQ_ChannelTbl_t)) +}; + + +/************************************************************************ + ** Defines + *************************************************************************/ + +#define PQ_PQUEUE_SINGLE_PASS_IDX 0 +#define PQ_PQUEUE_HIGH_OPS_RSRVD_IDX 1 +#define PQ_PQUEUE_HIGH_IDX 2 +#define PQ_PQUEUE_MEDIUM_IDX 3 +#define PQ_PQUEUE_LOW_IDX 4 + +/** + ** \brief Default TO config table data + */ +PQ_ChannelTbl_t PQ_ConfigTbl = +{ + /* Table ID */ + 1, + { + /* Message Flows */ + /* Ground Queues */ + {SBN_SUB_MID, 1, PQ_PQUEUE_HIGH_IDX}, + {SBN_UNSUB_MID, 1, PQ_PQUEUE_HIGH_IDX}, + {AMC_HK_TLM_MID, 1, PQ_PQUEUE_HIGH_IDX}, + {MAC_HK_TLM_MID, 1, PQ_PQUEUE_HIGH_IDX}, + {MPC_HK_TLM_MID, 1, PQ_PQUEUE_HIGH_IDX}, + {ULR_HK_TLM_MID, 1, PQ_PQUEUE_HIGH_IDX}, + {RGBLED_HK_TLM_MID, 1, PQ_PQUEUE_HIGH_IDX}, + {GPS_HK_TLM_MID, 1, PQ_PQUEUE_HIGH_IDX}, + {SENS_HK_TLM_MID, 1, PQ_PQUEUE_HIGH_IDX}, + {LD_HK_TLM_MID, 1, PQ_PQUEUE_HIGH_IDX}, + {NAV_HK_TLM_MID, 1, PQ_PQUEUE_HIGH_IDX}, + {RCIN_HK_TLM_MID, 1, PQ_PQUEUE_HIGH_IDX}, + {VM_HK_TLM_MID, 1, PQ_PQUEUE_HIGH_IDX}, + {BAT_HK_TLM_MID, 1, PQ_PQUEUE_HIGH_IDX}, + {PE_HK_TLM_MID, 1, PQ_PQUEUE_HIGH_IDX}, + {AK8963_HK_TLM_MID, 1, PQ_PQUEUE_HIGH_IDX}, + {AK8963_DIAG_TLM_MID, 1, PQ_PQUEUE_HIGH_IDX}, + {MS5611_HK_TLM_MID, 1, PQ_PQUEUE_HIGH_IDX}, + {MS5611_DIAG_TLM_MID, 1, PQ_PQUEUE_HIGH_IDX}, + {MPU6050_HK_TLM_MID, 1, PQ_PQUEUE_HIGH_IDX}, + {MPU6050_DIAG_TLM_MID, 1, PQ_PQUEUE_HIGH_IDX}, + {TO_HK_TLM_MID, 1, PQ_PQUEUE_HIGH_IDX}, + {TO_DATA_TYPE_MID, 1, PQ_PQUEUE_HIGH_IDX}, + {EA_HK_TLM_MID, 1, PQ_PQUEUE_HIGH_IDX}, + {VC_HK_TLM_MID, 1, PQ_PQUEUE_HIGH_IDX}, + {TO_DIAG_TLM_MID, 1, PQ_PQUEUE_HIGH_IDX}, + {TO_DIAG_MSG_FLOW_MID, 1, PQ_PQUEUE_HIGH_IDX}, + {GPS_HK_TLM_MID, 1, PQ_PQUEUE_HIGH_IDX}, + {MAVLINK_HK_TLM_MID, 1, PQ_PQUEUE_HIGH_IDX}, + {CFE_ES_HK_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, + {CFE_EVS_HK_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, + {CFE_SB_HK_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, + {CFE_TBL_HK_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, + {CFE_TIME_HK_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, + {CFE_TIME_DIAG_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, + {CFE_EVS_EVENT_MSG_MID, 32, PQ_PQUEUE_MEDIUM_IDX}, + {CFE_SB_STATS_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, + {CFE_ES_APP_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, + {CFE_TBL_REG_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, + {CFE_SB_ONESUB_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, + {CFE_ES_SHELL_TLM_MID, 32, PQ_PQUEUE_MEDIUM_IDX}, + {CFE_ES_MEMSTATS_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, + {CF_HK_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, + {CF_TRANS_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, + {CF_CONFIG_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, + {CF_SPACE_TO_GND_PDU_MID, 32, PQ_PQUEUE_MEDIUM_IDX}, + {CS_HK_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, + {DS_HK_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, + {DS_DIAG_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, + {FM_HK_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, + {FM_FILE_INFO_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, + {FM_DIR_LIST_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, + {FM_OPEN_FILES_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, + {FM_FREE_SPACE_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, + {HK_HK_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, + {HS_HK_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, + {LC_HK_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, + {MD_HK_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, + {MM_HK_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, + {SCH_HK_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, + {SCH_DIAG_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, + {CI_HK_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, + {QAE_HK_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, + {FLOW_HK_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, + {FLOW_DIAG_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, + {MPC_DIAG_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, + {LD_DIAG_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, + {PRM_HK_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, + {VM_CONFIG_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, + +// {PX4_ACTUATOR_ARMED_MID, 1, PQ_PQUEUE_LOW_IDX}, +// {PX4_ACTUATOR_CONTROLS_0_MID, 1, PQ_PQUEUE_LOW_IDX}, +// {PX4_ACTUATOR_CONTROLS_1_MID, 1, PQ_PQUEUE_LOW_IDX}, +// {PX4_ACTUATOR_CONTROLS_2_MID, 1, PQ_PQUEUE_LOW_IDX}, +// {PX4_ACTUATOR_CONTROLS_3_MID, 1, PQ_PQUEUE_LOW_IDX}, +// {PX4_ACTUATOR_DIRECT_MID, 1, PQ_PQUEUE_LOW_IDX}, +// {PX4_ACTUATOR_OUTPUTS_MID, 1, PQ_PQUEUE_LOW_IDX}, +// {PX4_ADC_REPORT_MID, 1, PQ_PQUEUE_LOW_IDX}, +// {PX4_AIRSPEED_MID, 1, PQ_PQUEUE_LOW_IDX}, +// {PX4_ATT_POS_MOCAP_MID, 1, PQ_PQUEUE_LOW_IDX}, +// {PX4_BATTERY_STATUS_MID, 1, PQ_PQUEUE_LOW_IDX}, +// {PX4_CAMERA_TRIGGER_MID, 1, PQ_PQUEUE_LOW_IDX}, +// {PX4_COMMANDER_STATE_MID, 1, PQ_PQUEUE_LOW_IDX}, +// {PX4_CONTROL_STATE_MID, 1, PQ_PQUEUE_LOW_IDX}, +// {PX4_CPULOAD_MID, 1, PQ_PQUEUE_LOW_IDX}, +// {PX4_DEBUG_KEY_VALUE_MID, 1, PQ_PQUEUE_LOW_IDX}, +// {PX4_DIFFERENTIAL_PRESSURE_MID, 1, PQ_PQUEUE_LOW_IDX}, +// {PX4_DISTANCE_SENSOR_MID, 1, PQ_PQUEUE_LOW_IDX}, +// {PX4_FW_POS_CTRL_STATUS_MID, 1, PQ_PQUEUE_LOW_IDX}, +// {PX4_FW_VIRTUAL_ATTITUDE_SETPOINT_MID, 1, PQ_PQUEUE_LOW_IDX}, +// {PX4_FW_VIRTUAL_RATES_SETPOINT_MID, 1, PQ_PQUEUE_LOW_IDX}, +// {PX4_EKF2_INNOVATIONS_MID, 1, PQ_PQUEUE_LOW_IDX}, +// {PX4_EKF2_REPLAY_MID, 1, PQ_PQUEUE_LOW_IDX}, +// {PX4_ESC_REPORT_MID, 1, PQ_PQUEUE_LOW_IDX}, +// {PX4_ESC_STATUS_MID, 1, PQ_PQUEUE_LOW_IDX}, +// {PX4_ESTIMATOR_STATUS_MID, 1, PQ_PQUEUE_LOW_IDX}, +// {PX4_FENCE_MID, 1, PQ_PQUEUE_LOW_IDX}, +// {PX4_FENCE_VERTEX_MID, 1, PQ_PQUEUE_LOW_IDX}, +// {PX4_FILTERED_BOTTOM_FLOW_MID, 1, PQ_PQUEUE_LOW_IDX}, +// {PX4_FOLLOW_TARGET_MID, 1, PQ_PQUEUE_LOW_IDX}, + {PX4_GEOFENCE_RESULT_MID, 1, PQ_PQUEUE_LOW_IDX}, +// {PX4_GPS_DUMP_MID, 1, PQ_PQUEUE_LOW_IDX}, +// {PX4_GPS_INJECT_DATA_MID, 1, PQ_PQUEUE_LOW_IDX}, +// {PX4_HIL_SENSOR_MID, 1, PQ_PQUEUE_LOW_IDX}, + {PX4_HOME_POSITION_MID, 1, PQ_PQUEUE_LOW_IDX}, +// {PX4_INPUT_RC_MID, 1, PQ_PQUEUE_LOW_IDX}, + {PX4_LED_CONTROL_MID, 1, PQ_PQUEUE_LOW_IDX}, + {PX4_LOG_MESSAGE_MID, 1, PQ_PQUEUE_LOW_IDX}, + {PX4_MANUAL_CONTROL_SETPOINT_MID, 1, PQ_PQUEUE_LOW_IDX}, + {PX4_MAVLINK_LOG_MID, 1, PQ_PQUEUE_LOW_IDX}, +// {PX4_MC_ATT_CTRL_STATUS_MID, 1, PQ_PQUEUE_LOW_IDX}, +// {PX4_MC_VIRTUAL_ATTITUDE_SETPOINT_MID, 1, PQ_PQUEUE_LOW_IDX}, +// {PX4_MC_VIRTUAL_RATES_SETPOINT_MID, 1, PQ_PQUEUE_LOW_IDX}, + {PX4_MISSION_MID, 1, PQ_PQUEUE_LOW_IDX}, + {PX4_MISSION_RESULT_MID, 1, PQ_PQUEUE_LOW_IDX}, +// {PX4_MULTIROTOR_MOTOR_LIMITS_MID, 1, PQ_PQUEUE_LOW_IDX}, + {PX4_OFFBOARD_CONTROL_MODE_MID, 1, PQ_PQUEUE_LOW_IDX}, +// {PX4_OPTICAL_FLOW_MID, 1, PQ_PQUEUE_LOW_IDX}, +// {PX4_OUTPUT_PWM_MID, 1, PQ_PQUEUE_LOW_IDX}, +// {PX4_PARAMETER_UPDATE_MID, 1, PQ_PQUEUE_LOW_IDX}, + {PX4_POSITION_SETPOINT_TRIPLET_MID, 1, PQ_PQUEUE_LOW_IDX}, +// {PX4_PWM_INPUT_MID, 1, PQ_PQUEUE_LOW_IDX}, +// {PX4_QSHELL_REQ_MID, 1, PQ_PQUEUE_LOW_IDX}, +// {PX4_RC_CHANNELS_MID, 1, PQ_PQUEUE_LOW_IDX}, +// {PX4_RC_PARAMETER_MAP_MID, 1, PQ_PQUEUE_LOW_IDX}, + {PX4_SAFETY_MID, 1, PQ_PQUEUE_LOW_IDX}, +// {PX4_SATELLITE_INFO_MID, 1, PQ_PQUEUE_LOW_IDX}, +// {PX4_SENSOR_ACCEL_MID, 1, PQ_PQUEUE_LOW_IDX}, +// {PX4_SENSOR_BARO_MID, 1, PQ_PQUEUE_LOW_IDX}, +// {PX4_SENSOR_COMBINED_MID, 1, PQ_PQUEUE_LOW_IDX}, + {PX4_SENSOR_CORRECTION_MID, 1, PQ_PQUEUE_LOW_IDX}, +// {PX4_SENSOR_GYRO_MID, 1, PQ_PQUEUE_LOW_IDX}, +// {PX4_SENSOR_MAG_MID, 1, PQ_PQUEUE_LOW_IDX}, +// {PX4_SERVORAIL_STATUS_MID, 1, PQ_PQUEUE_LOW_IDX}, + {PX4_SUBSYSTEM_INFO_MID, 1, PQ_PQUEUE_LOW_IDX}, + {PX4_SYSTEM_POWER_MID, 1, PQ_PQUEUE_LOW_IDX}, +// {PX4_TECS_STATUS_MID, 1, PQ_PQUEUE_LOW_IDX}, + {PX4_TELEMETRY_STATUS_MID, 1, PQ_PQUEUE_LOW_IDX}, +// {PX4_TEST_MOTOR_MID, 1, PQ_PQUEUE_LOW_IDX}, +// {PX4_TIME_OFFSET_MID, 1, PQ_PQUEUE_LOW_IDX}, +// {PX4_TRANSPONDER_REPORT_MID, 1, PQ_PQUEUE_LOW_IDX}, +// {PX4_UAVCAN_PARAMETER_REQUEST_MID, 1, PQ_PQUEUE_LOW_IDX}, +// {PX4_UAVCAN_PARAMETER_VALUE_MID, 1, PQ_PQUEUE_LOW_IDX}, + {PX4_VEHICLE_ATTITUDE_MID, 1, PQ_PQUEUE_LOW_IDX}, +// {PX4_VEHICLE_ATTITUDE_SETPOINT_MID, 1, PQ_PQUEUE_LOW_IDX}, +// {PX4_VEHICLE_COMMAND_ACK_MID, 1, PQ_PQUEUE_LOW_IDX}, +// {PX4_VEHICLE_COMMAND_MID, 1, PQ_PQUEUE_LOW_IDX}, +// {PX4_VEHICLE_CONTROL_MODE_MID, 1, PQ_PQUEUE_LOW_IDX}, +// {PX4_VEHICLE_FORCE_SETPOINT_MID, 1, PQ_PQUEUE_LOW_IDX}, + {PX4_VEHICLE_GLOBAL_POSITION_MID, 1, PQ_PQUEUE_LOW_IDX}, +// {PX4_VEHICLE_GLOBAL_VELOCITY_SETPOINT_MID, 1, PQ_PQUEUE_LOW_IDX}, +// {PX4_VEHICLE_GPS_POSITION_MID, 1, PQ_PQUEUE_LOW_IDX}, + {PX4_VEHICLE_LAND_DETECTED_MID, 1, PQ_PQUEUE_LOW_IDX}, +// {PX4_VEHICLE_LOCAL_POSITION_MID, 1, PQ_PQUEUE_LOW_IDX}, +// {PX4_VEHICLE_LOCAL_POSITION_SETPOINT_MID, 1, PQ_PQUEUE_LOW_IDX}, +// {PX4_VEHICLE_RATES_SETPOINT_MID, 1, PQ_PQUEUE_LOW_IDX}, +// {PX4_VEHICLE_STATUS_MID, 1, PQ_PQUEUE_LOW_IDX}, +// {PX4_VISION_POSITION_ESTIMATE_MID, 1, PQ_PQUEUE_LOW_IDX}, +// {PX4_VTOL_VEHICLE_STATUS_MID, 1, PQ_PQUEUE_LOW_IDX}, +// {PX4_WIND_ESTIMATE_MID, 1, PQ_PQUEUE_LOW_IDX} + },{ + /* Priority Queues */ + /* PQ_PQUEUE_SINGLE_PASS_IDX */ + {PQ_PQUEUE_ENA, 100, PQ_PRIORITY_QUEUE_TYPE_SINGLE}, + /* PQ_PQUEUE_HIGH_OPS_RSRVD_IDX */ + {PQ_PQUEUE_ENA, 100, PQ_PRIORITY_QUEUE_TYPE_FIFO}, + /* PQ_PQUEUE_HIGH_IDX */ + {PQ_PQUEUE_ENA, 100, PQ_PRIORITY_QUEUE_TYPE_FIFO}, + /* PQ_PQUEUE_MEDIUM_IDX */ + {PQ_PQUEUE_ENA, 100, PQ_PRIORITY_QUEUE_TYPE_FIFO}, + /* PQ_PQUEUE_LOW_IDX */ + {PQ_PQUEUE_ENA, 100, PQ_PRIORITY_QUEUE_TYPE_FIFO} + } +}; + + +/************************/ +/* End of File Comment */ +/************************/ diff --git a/config/obc/ppd/target/apps/sbn/src/sbn_remap_tbl.c b/config/obc/ppd/target/apps/sbn/src/sbn_remap_tbl.c index dde197b07..9d3362656 100644 --- a/config/obc/ppd/target/apps/sbn/src/sbn_remap_tbl.c +++ b/config/obc/ppd/target/apps/sbn/src/sbn_remap_tbl.c @@ -8,17 +8,18 @@ SBN_RemapTbl_t SBN_RemapTbl = 0, /* number of entries, initialized at validation time */ { /* remap table */ /* {CPU_ID, from, to} and if to is 0x0000, filter rather than remap */ - {2, CFE_CMD_MID_BASE_CPU2 + CFE_EVS_CMD_MSG, CFE_CMD_MID_BASE_CPU2 + CFE_EVS_CMD_MSG}, - {2, CFE_CMD_MID_BASE_CPU2 + CFE_SB_CMD_MSG, CFE_CMD_MID_BASE_CPU2 + CFE_SB_CMD_MSG}, - {2, CFE_CMD_MID_BASE_CPU2 + CFE_TBL_CMD_MSG, CFE_CMD_MID_BASE_CPU2 + CFE_TBL_CMD_MSG}, - {2, CFE_CMD_MID_BASE_CPU2 + CFE_TIME_CMD_MSG, CFE_CMD_MID_BASE_CPU2 + CFE_TIME_CMD_MSG}, - {2, CFE_CMD_MID_BASE_CPU2 + CFE_ES_CMD_MSG, CFE_CMD_MID_BASE_CPU2 + CFE_ES_CMD_MSG}, - {2, CFE_CMD_MID_BASE_CPU2 + CFE_TIME_TONE_CMD_MSG, CFE_CMD_MID_BASE_CPU2 + CFE_TIME_TONE_CMD_MSG}, - {2, CFE_CMD_MID_BASE_CPU2 + CFE_TIME_1HZ_CMD_MSG, CFE_CMD_MID_BASE_CPU2 + CFE_TIME_1HZ_CMD_MSG}, - /* Time commands */ - {1, CFE_TIME_DATA_CMD_MID, CFE_TIME_DATA_CMD_MID}, - {1, CFE_TIME_FAKE_CMD_MID, CFE_TIME_FAKE_CMD_MID}, - {1, CFE_TIME_SEND_CMD_MID, CFE_TIME_SEND_CMD_MID} + {1, CFE_ES_HK_TLM_MID, CFE_ES_HK_TLM_MID}, + {1, CFE_EVS_HK_TLM_MID, CFE_EVS_HK_TLM_MID}, + {1, CFE_SB_HK_TLM_MID, CFE_SB_HK_TLM_MID}, + {1, CFE_TBL_HK_TLM_MID, CFE_TBL_HK_TLM_MID}, + {1, CFE_TIME_HK_TLM_MID, CFE_TIME_HK_TLM_MID}, + {1, CFE_TIME_DIAG_TLM_MID, CFE_TIME_DIAG_TLM_MID}, + {1, CFE_EVS_EVENT_MSG_MID, CFE_EVS_EVENT_MSG_MID}, + {1, CFE_SB_STATS_TLM_MID, CFE_SB_STATS_TLM_MID}, + {1, CFE_ES_APP_TLM_MID, CFE_ES_APP_TLM_MID}, + {1, CFE_TBL_REG_TLM_MID, CFE_TBL_REG_TLM_MID}, + {1, CFE_ES_SHELL_TLM_MID, CFE_ES_SHELL_TLM_MID}, + {1, CFE_ES_MEMSTATS_TLM_MID, CFE_ES_MEMSTATS_TLM_MID} } };/* end SBN_RemapTbl */ diff --git a/config/obc/ppd/target/apps/to/tables/to_udp_cfg.c b/config/obc/ppd/target/apps/to/tables/to_udp_cfg.c index f699d479c..d9e9b0972 100644 --- a/config/obc/ppd/target/apps/to/tables/to_udp_cfg.c +++ b/config/obc/ppd/target/apps/to/tables/to_udp_cfg.c @@ -35,6 +35,19 @@ static CFE_TBL_FileDef_t CFE_TBL_FileDef OS_USED = #define TO_PQUEUE_MEDIUM_IDX 3 #define TO_PQUEUE_LOW_IDX 4 +#define CFE_ES_HK_TLM_MID_CPU2 (CFE_TLM_MID_BASE_CPU2 + CFE_ES_HK_TLM_MSG) +#define CFE_EVS_HK_TLM_MID_CPU2 (CFE_TLM_MID_BASE_CPU2 + CFE_EVS_HK_TLM_MSG) +#define CFE_SB_HK_TLM_MID_CPU2 (CFE_TLM_MID_BASE_CPU2 + CFE_SB_HK_TLM_MSG) +#define CFE_TBL_HK_TLM_MID_CPU2 (CFE_TLM_MID_BASE_CPU2 + CFE_TBL_HK_TLM_MSG) +#define CFE_TIME_HK_TLM_MID_CPU2 (CFE_TLM_MID_BASE_CPU2 + CFE_TIME_HK_TLM_MSG) +#define CFE_TIME_DIAG_TLM_MID_CPU2 (CFE_TLM_MID_BASE_CPU2 + CFE_TIME_DIAG_TLM_MSG) +#define CFE_EVS_EVENT_MSG_MID_CPU2 (CFE_TLM_MID_BASE_CPU2 + CFE_EVS_EVENT_MSG_MSG) +#define CFE_SB_STATS_TLM_MID_CPU2 (CFE_TLM_MID_BASE_CPU2 + CFE_SB_STATS_TLM_MSG) +#define CFE_ES_APP_TLM_MID_CPU2 (CFE_TLM_MID_BASE_CPU2 + CFE_ES_APP_TLM_MSG) +#define CFE_TBL_REG_TLM_MID_CPU2 (CFE_TLM_MID_BASE_CPU2 + CFE_TBL_REG_TLM_MSG) +#define CFE_ES_SHELL_TLM_MID_CPU2 (CFE_TLM_MID_BASE_CPU2 + CFE_ES_SHELL_TLM_MSG) +#define CFE_ES_MEMSTATS_TLM_MID_CPU2 (CFE_TLM_MID_BASE_CPU2 + CFE_ES_MEMSTATS_TLM_MSG) + /** ** \brief Default TO config table data */ @@ -72,6 +85,7 @@ TO_ChannelTbl_t TO_ConfigTbl = {TO_DIAG_MSG_FLOW_MID, 1, TO_PQUEUE_HIGH_IDX}, {GPS_HK_TLM_MID, 1, TO_PQUEUE_HIGH_IDX}, {MAVLINK_HK_TLM_MID, 1, TO_PQUEUE_HIGH_IDX}, + {CFE_ES_HK_TLM_MID, 1, TO_PQUEUE_MEDIUM_IDX}, {CFE_EVS_HK_TLM_MID, 1, TO_PQUEUE_MEDIUM_IDX}, {CFE_SB_HK_TLM_MID, 1, TO_PQUEUE_MEDIUM_IDX}, @@ -85,6 +99,19 @@ TO_ChannelTbl_t TO_ConfigTbl = {CFE_SB_ONESUB_TLM_MID, 1, TO_PQUEUE_MEDIUM_IDX}, {CFE_ES_SHELL_TLM_MID, 32, TO_PQUEUE_MEDIUM_IDX}, {CFE_ES_MEMSTATS_TLM_MID, 1, TO_PQUEUE_MEDIUM_IDX}, + /* CPU2 CFE Mids */ + {CFE_ES_HK_TLM_MID_CPU2, 1, TO_PQUEUE_MEDIUM_IDX}, + {CFE_EVS_HK_TLM_MID_CPU2, 1, TO_PQUEUE_MEDIUM_IDX}, + {CFE_SB_HK_TLM_MID_CPU2, 1, TO_PQUEUE_MEDIUM_IDX}, + {CFE_TBL_HK_TLM_MID_CPU2, 1, TO_PQUEUE_MEDIUM_IDX}, + {CFE_TIME_HK_TLM_MID_CPU2, 1, TO_PQUEUE_MEDIUM_IDX}, + {CFE_TIME_DIAG_TLM_MID_CPU2, 1, TO_PQUEUE_MEDIUM_IDX}, + {CFE_EVS_EVENT_MSG_MID_CPU2, 32, TO_PQUEUE_MEDIUM_IDX}, + {CFE_SB_STATS_TLM_MID_CPU2, 1, TO_PQUEUE_MEDIUM_IDX}, + {CFE_ES_APP_TLM_MID_CPU2, 1, TO_PQUEUE_MEDIUM_IDX}, + {CFE_TBL_REG_TLM_MID_CPU2, 1, TO_PQUEUE_MEDIUM_IDX}, + {CFE_ES_SHELL_TLM_MID_CPU2, 32, TO_PQUEUE_MEDIUM_IDX}, + {CFE_ES_MEMSTATS_TLM_MID_CPU2, 1, TO_PQUEUE_MEDIUM_IDX}, {CF_HK_TLM_MID, 1, TO_PQUEUE_MEDIUM_IDX}, {CF_TRANS_TLM_MID, 1, TO_PQUEUE_MEDIUM_IDX}, {CF_CONFIG_TLM_MID, 1, TO_PQUEUE_MEDIUM_IDX}, diff --git a/config/obc/ppd/target/cfe_es_startup.scr b/config/obc/ppd/target/cfe_es_startup.scr index dfdbe6076..a8d571b7c 100644 --- a/config/obc/ppd/target/cfe_es_startup.scr +++ b/config/obc/ppd/target/cfe_es_startup.scr @@ -1,6 +1,7 @@ CFE_LIB, /cf/apps/CFS_LIB.so, CFS_LibInit, CFS_LIB, 0, 0, 0x0, 0, 2; CFE_LIB, /cf/apps/PRMLIB.so, PRMLIB_LibInit, PRMLIB, 0, 0, 0x0, 0, 2; CFE_LIB, /cf/apps/PX4LIB.so, PX4LIB_LibInit, PX4LIB, 0, 0, 0x0, 0, 2; +CFE_LIB, /cf/apps/PQ_LIB.so, PQ_LibInit, PQ_LIB, 0, 0, 0x0, 0, 2; CFE_APP, /cf/apps/CI.so, CI_AppMain, CI, 115, 327680, 0x0, 0, 2; CFE_APP, /cf/apps/TO.so, TO_AppMain, TO, 124, 327680, 0x0, 0, 2; CFE_APP, /cf/apps/CF.so, CF_AppMain, CF, 157, 327680, 0x0, 0, 2; diff --git a/config/obc/sitl/inc/cfe_msgids.h b/config/obc/sitl/inc/cfe_msgids.h new file mode 100644 index 000000000..ba8d44d52 --- /dev/null +++ b/config/obc/sitl/inc/cfe_msgids.h @@ -0,0 +1,58 @@ +#ifndef CFE_MSGIDS_H +#define CFE_MSGIDS_H + +/* +** Includes +*/ + +#include "cfe_mission_cfg.h" + +/* +** cFE Command Message Id's +*/ +#define CFE_EVS_CMD_MID CFE_CMD_MID_BASE_CPU2 + CFE_EVS_CMD_MSG /* 0x1801 */ + /* Message ID 0x1802 is available */ +#define CFE_SB_CMD_MID CFE_CMD_MID_BASE_CPU2 + CFE_SB_CMD_MSG /* 0x1803 */ +#define CFE_TBL_CMD_MID CFE_CMD_MID_BASE_CPU2 + CFE_TBL_CMD_MSG /* 0x1804 */ +#define CFE_TIME_CMD_MID CFE_CMD_MID_BASE_CPU2 + CFE_TIME_CMD_MSG /* 0x1805 */ +#define CFE_ES_CMD_MID CFE_CMD_MID_BASE_CPU2 + CFE_ES_CMD_MSG /* 0x1806 */ + +#define CFE_ES_SEND_HK_MID CFE_CMD_MID_BASE_CPU2 + CFE_ES_SEND_HK_MSG /* 0x1808 */ +#define CFE_EVS_SEND_HK_MID CFE_CMD_MID_BASE_CPU2 + CFE_EVS_SEND_HK_MSG /* 0x1809 */ + /* Message ID 0x180A is available */ +#define CFE_SB_SEND_HK_MID CFE_CMD_MID_BASE_CPU2 + CFE_SB_SEND_HK_MSG /* 0x180B */ +#define CFE_TBL_SEND_HK_MID CFE_CMD_MID_BASE_CPU2 + CFE_TBL_SEND_HK_MSG /* 0x180C */ +#define CFE_TIME_SEND_HK_MID CFE_CMD_MID_BASE_CPU2 + CFE_TIME_SEND_HK_MSG /* 0x180D */ + +#define CFE_TIME_TONE_CMD_MID CFE_CMD_MID_BASE_CPU2 + CFE_TIME_TONE_CMD_MSG /* 0x1810 */ +#define CFE_TIME_1HZ_CMD_MID CFE_CMD_MID_BASE_CPU2 + CFE_TIME_1HZ_CMD_MSG /* 0x1811 */ + + +/* +** cFE Global Command Message Id's +*/ +#define CFE_TIME_DATA_CMD_MID CFE_CMD_MID_BASE_GLOB + CFE_TIME_DATA_CMD_MSG /* 0x1860 */ +#define CFE_TIME_FAKE_CMD_MID CFE_CMD_MID_BASE_GLOB + CFE_TIME_FAKE_CMD_MSG /* 0x1861 */ +#define CFE_TIME_SEND_CMD_MID CFE_CMD_MID_BASE_GLOB + CFE_TIME_SEND_CMD_MSG /* 0x1862 */ + + +/* +** CFE Telemetry Message Id's +*/ +#define CFE_ES_HK_TLM_MID CFE_TLM_MID_BASE_CPU2 + CFE_ES_HK_TLM_MSG /* 0x0800 */ +#define CFE_EVS_HK_TLM_MID CFE_TLM_MID_BASE_CPU2 + CFE_EVS_HK_TLM_MSG /* 0x0801 */ + /* Message ID 0x0802 is available */ +#define CFE_SB_HK_TLM_MID CFE_TLM_MID_BASE_CPU2 + CFE_SB_HK_TLM_MSG /* 0x0803 */ +#define CFE_TBL_HK_TLM_MID CFE_TLM_MID_BASE_CPU2 + CFE_TBL_HK_TLM_MSG /* 0x0804 */ +#define CFE_TIME_HK_TLM_MID CFE_TLM_MID_BASE_CPU2 + CFE_TIME_HK_TLM_MSG /* 0x0805 */ +#define CFE_TIME_DIAG_TLM_MID CFE_TLM_MID_BASE_CPU2 + CFE_TIME_DIAG_TLM_MSG /* 0x0806 */ +#define CFE_EVS_EVENT_MSG_MID CFE_TLM_MID_BASE_CPU2 + CFE_EVS_EVENT_MSG_MSG /* 0x0808 */ +#define CFE_SB_STATS_TLM_MID CFE_TLM_MID_BASE_CPU2 + CFE_SB_STATS_TLM_MSG /* 0x080A */ +#define CFE_ES_APP_TLM_MID CFE_TLM_MID_BASE_CPU2 + CFE_ES_APP_TLM_MSG /* 0x080B */ +#define CFE_TBL_REG_TLM_MID CFE_TLM_MID_BASE_CPU2 + CFE_TBL_REG_TLM_MSG /* 0x080C */ +#define CFE_SB_ALLSUBS_TLM_MID CFE_TLM_MID_BASE_CPU2 + CFE_SB_ALLSUBS_TLM_MSG /* 0x080D */ +#define CFE_SB_ONESUB_TLM_MID CFE_TLM_MID_BASE_CPU2 + CFE_SB_ONESUB_TLM_MSG /* 0x080E */ +#define CFE_ES_SHELL_TLM_MID CFE_TLM_MID_BASE_CPU2 + CFE_ES_SHELL_TLM_MSG /* 0x080F */ +#define CFE_ES_MEMSTATS_TLM_MID CFE_TLM_MID_BASE_CPU2 + CFE_ES_MEMSTATS_TLM_MSG /* 0x0810 */ + +#endif diff --git a/config/obc/sitl/inc/cfe_platform_cfg.h b/config/obc/sitl/inc/cfe_platform_cfg.h new file mode 100644 index 000000000..957b5cc61 --- /dev/null +++ b/config/obc/sitl/inc/cfe_platform_cfg.h @@ -0,0 +1,1770 @@ +#ifndef CFE_PLATFORM_CFG_H +#define CFE_PLATFORM_CFG_H + +/* +** Allow reference to CFE_SPACECRAFT_ID (see CFE_TBL_VALID_ definitions below) +*/ +#include "cfe_mission_cfg.h" + +/* +** CPU Id for target Processor +*/ +#define CFE_CPU_ID 2 + +/* +** CPU Name for target Processor +*/ +#define CFE_CPU_NAME "CPU2" + +/** +** \cfesbcfg Maximum Number of Unique Message IDs SB Routing Table can hold +** +** \par Description: +** Dictates the maximum number of unique MsgIds the SB routing table will hold. +** This constant has a direct affect on the size of SB's tables and arrays. +** Keeping this count as low as possible will save memory. +** To see the run-time, high-water mark and the current utilization figures +** regarding this parameter, send an SB command to 'Send Statistics Pkt'. +** +** \par Limits +** This parameter has a lower limit of 1 and an upper limit of 1024. +** +*/ +#define CFE_SB_MAX_MSG_IDS 256 + + +/** +** \cfesbcfg Maximum Number of Unique Pipes SB Routing Table can hold +** +** \par Description: +** Dictates the maximum number of unique Pipes the SB routing table will hold. +** This constant has a direct affect on the size of SB's tables and arrays. +** Keeping this count as low as possible will save memory. +** To see the run-time, high-water mark and the current utilization figures +** regarding this parameter, send an SB command to 'Send Statistics Pkt'. +** +** \par Limits +** This parameter has a lower limit of 1 and an upper limit of 255. +** This parameter must also be less than or equal to OS_MAX_QUEUES +** +*/ +#define CFE_SB_MAX_PIPES 255 + + +/** +** \cfesbcfg Maximum Number of unique local destinations a single MsgId can have +** +** \par Description: +** Dictates the maximum number of unique local destinations a single MsgId can +** have. +** +** \par Limits +** This parameter has a lower limit of 1 and an upper limit of 64. +** +*/ +#define CFE_SB_MAX_DEST_PER_PKT 16 + + +/** +** \cfesbcfg Default Subscription Message Limit +** +** \par Description: +** Dictates the default Message Limit when using the #CFE_SB_Subscribe API. This will +** limit the number of messages with a specific message ID that can be received through +** a subscription. This only changes the default; other message limits can be set on a per +** subscription basis using #CFE_SB_SubscribeEx . +** +** \par Limits +** This parameter has a lower limit of 4 and an upper limit of 65535. +** +*/ +#define CFE_SB_DEFAULT_MSG_LIMIT 4 + + +/** +** \cfesbcfg Size of the SB buffer memory pool +** +** \par Description: +** Dictates the size of the SB memory pool. For each message the SB +** sends, the SB dynamically allocates from this memory pool, the memory needed +** to process the message. The memory needed to process each message is msg +** size + msg descriptor(#CFE_SB_BufferD_t). This memory pool is also used +** to allocate destination descriptors (#CFE_SB_DestinationD_t) during the +** subscription process. +** To see the run-time, high-water mark and the current utilization figures +** regarding this parameter, send an SB command to 'Send Statistics Pkt'. +** Some memory statistics have been added to the SB housekeeping packet. +** NOTE: It is important to monitor these statistics to ensure the desired +** memory margin is met. +** +** \par Limits +** This parameter has a lower limit of 512 and an upper limit 4.29G bytes. +** +*/ +#define CFE_SB_BUF_MEMORY_BYTES 524288 + + +/** +** \cfesbcfg Maximum depth allowed when creating an SB pipe +** +** \par Description: +** The value of this constant dictates the maximum pipe depth that an +** application may request. The pipe depth is given as a paramter in the +** #CFE_SB_CreatePipe API. +** +** \par Limits +** This parameter has a lower limit of 1 and an upper limit of 65535. +*/ +#define CFE_SB_MAX_PIPE_DEPTH 256 + + +/** +** \cfesbcfg Highest Valid Message Id +** +** \par Description: +** The value of this constant dictates the size of the SB message map. The SB +** messsage map is a lookup table that provides the routing table index for +** fast access into the routing table.The default setting of 0x1FFF was chosen +** to save memory for CCSDS implementations where the CCSDS Version number +** (3 MSB's of MsgId) would remain constant throughout the mission. This +** reduces the message map from 128Kbytes to 16Kbytes.See CFE_FSW_DCR 504 for +** more details. +** +** \par Limits +** This parameter has a lower limit of 1 and an upper limit of 0xFFFF. +*/ +#define CFE_SB_HIGHEST_VALID_MSGID 0x1FFF + + +/** +** \cfesbcfg Default Routing Information Filename +** +** \par Description: +** The value of this constant defines the filename used to store the software +** bus routing information. This filename is used only when no filename is +** specified in the command. +** +** \par Limits +** The length of each string, including the NULL terminator cannot exceed the +** #OS_MAX_PATH_LEN value. +*/ +#define CFE_SB_DEFAULT_ROUTING_FILENAME "/ram/cfe_sb_route.dat" + + +/** +** \cfesbcfg Default Pipe Information Filename +** +** \par Description: +** The value of this constant defines the filename used to store the software +** bus pipe information. This filename is used only when no filename is +** specified in the command. +** +** \par Limits +** The length of each string, including the NULL terminator cannot exceed the +** #OS_MAX_PATH_LEN value. +*/ +#define CFE_SB_DEFAULT_PIPE_FILENAME "/ram/cfe_sb_pipe.dat" + + +/** +** \cfesbcfg Default Message Map Filename +** +** \par Description: +** The value of this constant defines the filename used to store the software +** bus message map information. This filename is used only when no filename is +** specified in the command. The message map is a lookup table (array of 16bit +** words) that has an element for each possible MsgId value and holds the +** routing table index for that MsgId. The Msg Map provides fast access to the +** destinations of a message. +** +** \par Limits +** The length of each string, including the NULL terminator cannot exceed the +** #OS_MAX_PATH_LEN value. +*/ +#define CFE_SB_DEFAULT_MAP_FILENAME "/ram/cfe_sb_msgmap.dat" + + +/** +** \cfesbcfg SB Event Filtering +** +** \par Description: +** This group of configuration paramters dictates what SB events will be +** filtered through EVS. The filtering will begin after the SB task initializes +** and stay in effect until a cmd to EVS changes it. +** This allows the operator to set limits on the number of event messages that +** are sent during system initialization. +** NOTE: Set all unused event values and mask values to zero +** +** \par Limits +** This filtering applies only to SB events. +** These parameters have a lower limit of 0 and an upper limit of 65535. +*/ +#define CFE_SB_FILTERED_EVENT1 CFE_SB_SEND_NO_SUBS_EID +#define CFE_SB_FILTER_MASK1 CFE_EVS_FIRST_4_STOP + +#define CFE_SB_FILTERED_EVENT2 CFE_SB_DUP_SUBSCRIP_EID +#define CFE_SB_FILTER_MASK2 CFE_EVS_FIRST_4_STOP + +#define CFE_SB_FILTERED_EVENT3 CFE_SB_MSGID_LIM_ERR_EID +#define CFE_SB_FILTER_MASK3 CFE_EVS_FIRST_16_STOP + +#define CFE_SB_FILTERED_EVENT4 CFE_SB_Q_FULL_ERR_EID +#define CFE_SB_FILTER_MASK4 CFE_EVS_FIRST_16_STOP + +#define CFE_SB_FILTERED_EVENT5 0 +#define CFE_SB_FILTER_MASK5 CFE_EVS_NO_FILTER + +#define CFE_SB_FILTERED_EVENT6 0 +#define CFE_SB_FILTER_MASK6 CFE_EVS_NO_FILTER + +#define CFE_SB_FILTERED_EVENT7 0 +#define CFE_SB_FILTER_MASK7 CFE_EVS_NO_FILTER + +#define CFE_SB_FILTERED_EVENT8 0 +#define CFE_SB_FILTER_MASK8 CFE_EVS_NO_FILTER + + +/** +** \cfeescfg Define SB Memory Pool Block Sizes +** +** \par Description: +** Software Bus Memory Pool Block Sizes +** +** \par Limits +** These sizes MUST be increasing and MUST be an integral multiple of 4. +** The number of block sizes defined cannot exceed +** #CFE_ES_MAX_MEMPOOL_BLOCK_SIZES +*/ +#define CFE_SB_MEM_BLOCK_SIZE_01 8 +#define CFE_SB_MEM_BLOCK_SIZE_02 16 +#define CFE_SB_MEM_BLOCK_SIZE_03 20 +#define CFE_SB_MEM_BLOCK_SIZE_04 36 +#define CFE_SB_MEM_BLOCK_SIZE_05 64 +#define CFE_SB_MEM_BLOCK_SIZE_06 96 +#define CFE_SB_MEM_BLOCK_SIZE_07 128 +#define CFE_SB_MEM_BLOCK_SIZE_08 160 +#define CFE_SB_MEM_BLOCK_SIZE_09 256 +#define CFE_SB_MEM_BLOCK_SIZE_10 512 +#define CFE_SB_MEM_BLOCK_SIZE_11 1024 +#define CFE_SB_MEM_BLOCK_SIZE_12 2048 +#define CFE_SB_MEM_BLOCK_SIZE_13 4096 +#define CFE_SB_MEM_BLOCK_SIZE_14 8192 +#define CFE_SB_MEM_BLOCK_SIZE_15 16384 +#define CFE_SB_MEM_BLOCK_SIZE_16 32768 +#define CFE_SB_MAX_BLOCK_SIZE (CFE_SB_MAX_SB_MSG_SIZE + 40) + +/** +** \cfesbcfg Define Default Sender Information Storage Mode +** +** \par Description: +** Defines the default mode for the storing of sender information when sending +** a software bus message. If set to 1, the sender information will be stored. +** If set to 0, the sender information will not be stored. +** +** \par Limits +** There is a lower limit of 0 and an upper limit of 1 on this configuration +** paramater. +*/ +#define CFE_SB_DEFAULT_REPORT_SENDER 1 + + +/** +** \cfetimecfg Time Server or Time Client Selection +** +** \par Description: +** This configuration parameter selects whether the Time task functions as a +** time "server" or "client". A time server generates the "time at the tone" +** packet which is received by time clients. +** +** \par Limits +** Enable one, and only one by defining either CFE_TIME_CFG_SERVER or +** CFE_TIME_CFG_CLIENT AS TRUE. The other must be defined as FALSE. +*/ +#define CFE_TIME_CFG_SERVER TRUE +#define CFE_TIME_CFG_CLIENT FALSE + +/** +** \cfetimecfg Local MET or Virtual MET Selection for Time Servers +** +** \par Description: +** Depending on the specific hardware system configuration, it may be possible +** for Time Servers to read the "local" MET from a h/w register rather than +** having to track the MET as the count of tone signal interrupts (virtual MET) +** +** Time Clients must be defined as using a virtual MET. Also, a Time Server +** cannot be defined as having both a h/w MET and an external time source (they +** both cannot synchronize to the same tone). +** +** Note: "disable" this define (set to FALSE) only for Time Servers with local hardware +** that supports a h/w MET that is synchronized to the tone signal !!! +** +** \par Limits +** Only applies if #CFE_TIME_CFG_SERVER is set to TRUE. +*/ +#define CFE_TIME_CFG_VIRTUAL TRUE + + +/** +** \cfetimecfg Include or Exclude the Primary/Redundant Tone Selection Cmd +** +** \par Description: +** Depending on the specific hardware system configuration, it may be possible +** to switch between a primary and redundant tone signal. If supported by +** hardware, this definitions will enable command interfaces to select the +** active tone signal. Both Time Clients and Time Servers support this feature. +** Note: Set the CFE_TIME_CFG_SIGNAL define to TRUE to enable tone signal commands. +** +** \par Limits +** Not Applicable +*/ +#define CFE_TIME_CFG_SIGNAL FALSE + + +/** +** \cfetimecfg Include or Exclude the Internal/External Time Source Selection Cmd +** +** \par Description: +** By default, Time Servers maintain time using an internal MET which may be a +** h/w register or software counter, depending on available hardware. The +** following definition enables command interfaces to switch between an +** internal MET, or external time data received from one of several supported +** external time sources. Only a Time Server may be configured to use external +** time data. +** Note: Set the CFE_TIME_CFG_SOURCE define to TRUE to include the Time Source +** Selection Command (command allows selection between the internal +** or external time source). Then choose the external source with the +** CFE_TIME_CFG_SRC_??? define. +** +** \par Limits +** Only applies if #CFE_TIME_CFG_SERVER is set to TRUE. +*/ +#define CFE_TIME_CFG_SOURCE FALSE + + +/** +** \cfetimecfg Choose the External Time Source for Server only +** +** \par Description: +** If #CFE_TIME_CFG_SOURCE is set to TRUE, then one of the following external time +** source types must also be set to TRUE. Do not set any of the external time +** source types to TRUE unless #CFE_TIME_CFG_SOURCE is set to TRUE. +** +** \par Limits +** -# If #CFE_TIME_CFG_SOURCE is set to TRUE then one and only one of the following +** three external time sources can and must be set TRUE: +** #CFE_TIME_CFG_SRC_MET, #CFE_TIME_CFG_SRC_GPS, #CFE_TIME_CFG_SRC_TIME +** -# Only applies if #CFE_TIME_CFG_SERVER is set to TRUE. +*/ +#define CFE_TIME_CFG_SRC_MET FALSE +#define CFE_TIME_CFG_SRC_GPS FALSE +#define CFE_TIME_CFG_SRC_TIME FALSE + + +/** +** \cfetimecfg Define the Max Delta Limits for Time Servers using an Ext Time Source +** +** \par Description: +** If #CFE_TIME_CFG_SOURCE is set to TRUE and one of the external time sources is +** also set to TRUE, then the delta time limits for range checking is used. +** +** When a new time value is received from an external source, the value is +** compared against the "expected" time value. If the delta exceeds the +** following defined amount, then the new time data will be ignored. This range +** checking is only performed after the clock state has been commanded to +** "valid". Until then, external time data is accepted unconditionally. +** +** \par Limits +** Applies only if both #CFE_TIME_CFG_SERVER and #CFE_TIME_CFG_SOURCE are set +** to TRUE. +*/ +#define CFE_TIME_MAX_DELTA_SECS 0 +#define CFE_TIME_MAX_DELTA_SUBS 500000 + + +/** +** \cfetimecfg Define the Local Clock Rollover Value in seconds and subseconds +** +** \par Description: +** Specifies the capability of the local clock. Indicates the time at which +** the local clock rolls over. +** +** \par Limits +** Not Applicable +*/ +#define CFE_TIME_MAX_LOCAL_SECS 27 +#define CFE_TIME_MAX_LOCAL_SUBS 0 + + +/** +** \cfetimecfg Define Timing Limits From One Tone To The Next +** +** \par Description: +** Defines limits to the timing of the 1Hz tone signal. A tone signal is valid +** only if it arrives within one second (plus or minus the tone limit) from +** the previous tone signal.Units are microseconds as measured with the local +** clock. +** +** \par Limits +** Not Applicable +*/ +#define CFE_TIME_CFG_TONE_LIMIT 20000 + + + +/** +** \cfetimecfg Define Time to Start Flywheel Since Last Tone +** +** \par Description: +** Define time to enter flywheel mode (in seconds since last tone data update) +** Units are microseconds as measured with the local clock. +** +** \par Limits +** Not Applicable +*/ +#define CFE_TIME_CFG_START_FLY 2 + + +/** +** \cfetimecfg Define Periodic Time to Update Local Clock Tone Latch +** +** \par Description: +** Define Periodic Time to Update Local Clock Tone Latch. Applies only when +** in flywheel mode. This define dicates the period at which the simulated +** 'last tone' time is updated. Units are seconds. +** +** \par Limits +** Not Applicable +*/ +#define CFE_TIME_CFG_LATCH_FLY 8 + + +/** +** \cfetimecfg Define Maximum number of Time Synchronization Callbacks allowed +** +** \par Description: +** Define maximum number of Time Synchronization callback functions allowed. +** Each callback is called whenever cFE TIME receives a valid time synchronization +** signal (typically 1 Hz). +** +** \par Limits +** Not Applicable +*/ +#define CFE_TIME_MAX_NUM_SYNCH_FUNCS 4 + + +/** +** \cfetimecfg Enable (or disable) the 1HZ time command packet +** +** \par Description: +** Controls the generation of a packet that may be used as a 1HZ wakeup +** signal for applications that subscribe to CFE_TIME_1HZ_CMD_MID. +** Disable the packet to avoid 'no subscriber' errors that result from +** sending a packet when there are no subscribers to the packet. +** +** \par Limits +** Enable the 1HZ packet by setting #CFE_TIME_ENA_1HZ_CMD_PKT to TRUE. +** Disable the 1HZ packet by setting #CFE_TIME_ENA_1HZ_CMD_PKT to FALSE. +*/ +#define CFE_TIME_ENA_1HZ_CMD_PKT TRUE + + +/** +** \cfeescfg Define Max Number of Applications +** +** \par Description: +** Defines the maximum number of applications that can be loaded into the +** system. This number does not include child tasks. +** +** \par Limits +** There is a lower limit of 6 and an upper limit of 64 on this configuration +** paramater. The lower limit corresponds to the cFE internal applications. +*/ +#define CFE_ES_MAX_APPLICATIONS 64 + + +/** +** \cfeescfg Define Max Number of Shared libraries +** +** \par Description: +** Defines the maximum number of cFE Shared libraries that can be loaded into +** the system. +** +** \par Limits +** There is a lower limit of 1 and an upper limit of 64 on this configuration +** paramater. +*/ +#define CFE_ES_MAX_LIBRARIES 10 + +/** +** \cfeescfg Define Max Number of ER (Exception and Reset) log entries +** +** \par Description: +** Defines the maximum number of ER (Exception and Reset) log entries +** +** \par Limits +** There is a lower limit of 10 and an upper limit of 128 on this configuration +** paramater. +*/ +#define CFE_ES_ER_LOG_ENTRIES 20 + +/** \cfeescfg Maximum size of CPU Context in ES Error Log +** +** \par Description: +** This should be large enough to accommodate the CPU context +** information supplied by the PSP on the given platform. +** +** \par Limits: +** Must be greater than zero and a multiple of sizeof(uint32). +** Limited only by the available memory and the number of entries +** in the error log. Any context information beyond this size will +** be truncated. +*/ +#define CFE_ES_ER_LOG_MAX_CONTEXT_SIZE 128 + + +/** +** \cfeescfg Define Size of the cFE System Log. +** +** \par Description: +** Defines the size in bytes of the cFE system log. The system log holds +** variable length strings that are terminated by a linefeed and null +** character. +** +** \par Limits +** There is a lower limit of 512 and an upper limit of 16384 on this +** configuration paramater. +*/ +#define CFE_ES_SYSTEM_LOG_SIZE 3072 + + +/** +** \cfeescfg Define Number of entries in the ES Object table +** +** \par Description: +** Defines the number of entries in the ES Object table. This table controls +** the core cFE startup. +** +** \par Limits +** There is a lower limit of 15 and an upper limit of 50 on this configuration +** paramater. +*/ +#define CFE_ES_OBJECT_TABLE_SIZE 30 + + +/** +** \cfeescfg Define Max Number of Generic Counters +** +** \par Description: +** Defines the maximum number of Generic Counters that can be registered. +** +** \par Limits +** This parameter has a lower limit of 1 and an upper limit of 65535. +*/ +#define CFE_ES_MAX_GEN_COUNTERS 8 + + +/** +** \cfeescfg Define ES Application Control Scan Rate +** +** \par Description: +** ES Application Control Scan Rate. This parameter controls the speed that ES +** scans the Application Table looking for App Delete/Restart/Reload requests. +** All Applications are deleted, restarted, or reloaded by the ES Application. +** ES will periodically scan for control requests to process. The scan rate is +** controlled by this parameter, which is given in milliseconds. A value of +** 1000 means that ES will scan the Application Table once per second. Be +** careful not to set the value of this too low, because ES will use more CPU +** cycles scanning the table. +** +** \par Limits +** There is a lower limit of 100 and an upper limit of 20000 on this +** configuration paramater. millisecond units. +*/ +#define CFE_ES_APP_SCAN_RATE 1000 + + +/** +** \cfeescfg Define ES Application Kill Timeout +** +** \par Description: +** ES Application Kill Timeout. This parameter controls the number of +** "scan periods" that ES will wait for an application to Exit after getting +** the signal Delete, Reload or Restart. The sequence works as follows: +** -# ES will set the control request for an App to Delete/Restart/Reload and +** set this kill timer to the value in this parameter. +** -# If the App is reponding and Calls it's RunLoop function, it will drop out +** of it's main loop and call CFE_ES_ExitApp. Once it calls Exit App, then +** ES can delete, restart, or reload the app the next time it scans the app +** table. +** -# If the App is not responding, the ES App will decrement this Kill Timeout +** value each time it runs. If the timeout value reaches zero, ES will kill +** the app. +** +** The Kill timeout value depends on the #CFE_ES_APP_SCAN_RATE. If the Scan Rate +** is 1000, or 1 second, and this #CFE_ES_APP_KILL_TIMEOUT is set to 5, then it +** will take 5 seconds to kill a non-responding App. +** If the Scan Rate is 250, or 1/4 second, and the #CFE_ES_APP_KILL_TIMEOUT is +** set to 2, then it will take 1/2 second to time out. +** +** \par Limits +** There is a lower limit of 1 and an upper limit of 100 on this configuration +** paramater. Units are number of #CFE_ES_APP_SCAN_RATE cycles. +*/ +#define CFE_ES_APP_KILL_TIMEOUT 5 + + +/** +** \cfeescfg ES Ram Disk Sector Size +** +** \par Description: +** Defines the ram disk sector size. The ram disk is 1 of 4 memory areas that +** are preserved on a processor reset. +** NOTE: Changing this value changes memory allocation, and may +** require changes to platform specific values (in CFE_PSP) such as +** USER_RESERVED_MEM in VxWorks depending on the memory areas +** being used for preserved data and on OS specific behavior. +** +** \par Limits +** There is a lower limit of 128 and an upper limit of 4096 on this +** configuration paramater. +*/ +#define CFE_ES_RAM_DISK_SECTOR_SIZE 512 + + +/** +** \cfeescfg ES Ram Disk Number of Sectors +** +** \par Description: +** Defines the ram disk number of sectors. The ram disk is one of four memory +** areas that are preserved on a processor reset. +** NOTE: Changing this value changes memory allocation, and may +** require changes to platform specific values (in CFE_PSP) such as +** USER_RESERVED_MEM in VxWorks depending on the memory areas +** being used for preserved data and on OS specific behavior. +** +** \par Limits +** There is a lower limit of 128 and an upper limit of 8192 on this +** configuration paramater. +*/ +#define CFE_ES_RAM_DISK_NUM_SECTORS 4096 + +/** +** \cfeescfg Percentage of Ram Disk Reserved for Decompressing Apps +** +** \par Description: +** The #CFE_ES_RAM_DISK_PERCENT_RESERVED parameter is used to make sure that the +** Volatile ( RAM ) Disk has a defined amount of free space during a processor +** reset. The cFE uses the Volatile disk to decompress cFE applications during +** system startup. If this Volatile disk happens to get filled with logs and +** misc files, then a processor reset may not work, because there will be no +** room to decompress cFE apps. To solve that problem, this parameter sets the +** "Low Water Mark" for disk space on a Processor reset. It should be set to +** allow the largest cFE Application to be decompressed. +** During a Processor reset, if there is not sufficient space left on the disk, +** it will be re-formatted in order to clear up some space. +** +** This feature can be turned OFF by setting the parameter to 0. +** +** \par Limits +** There is a lower limit of 0 and an upper limit of 75 on this configuration +** paramater.Units are percentage. A setting of zero will turn this feature +** off. +*/ +#define CFE_ES_RAM_DISK_PERCENT_RESERVED 30 + + +/** +** \cfeescfg RAM Disk Mount string +** +** \par Description: +** The #CFE_ES_RAM_DISK_MOUNT_STRING parameter is used to set the cFE mount path +** for the CFE RAM disk. This is a parameter for missions that do not want to +** use the default value of "/ram", or for missions that need to have a different +** value for different CPUs or Spacecraft. +** Note that the vxWorks OSAL cannot currently handle names that have more than one +** path separator in it. The names "/ram", "/ramdisk", "/disk123" will all work, but +** "/disks/ram" will not. +** Multiple separators can be used with the posix or RTEMS ports. +** +*/ +#define CFE_ES_RAM_DISK_MOUNT_STRING "/ram" + + +/** +** \cfeescfg Define Critical Data Store Size +** +** \par Description: +** Defines the Critical Data Store (CDS) area size in bytes size. The CDS is +** one of four memory areas that are preserved during a processor reset. +** NOTE: Changing this value changes memory allocation, and may +** require changes to platform specific values (in CFE_PSP) such as +** USER_RESERVED_MEM in VxWorks depending on the memory areas +** being used for preserved data and on OS specific behavior. +** +** \par Limits +** There is a lower limit of 8192 and an upper limit of 2097152 (2MBytes) on +** this configuration paramater. +*/ +#define CFE_ES_CDS_SIZE ( 128 * 2048 ) + + +/** +** \cfeescfg Define User Reserved Memory Size +** +** \par Description: +** User Reserved Memory Size. This is the size in bytes of the cFE User +** reserved Memory area. This is a block of memory that is available for cFE +** application use. The address is obtained by calling +** #CFE_PSP_GetUserReservedArea. The User Reserved Memory is one of four memory +** areas that are preserved during a processor reset. +** NOTE: Changing this value changes memory allocation, and may +** require changes to platform specific values (in CFE_PSP) such as +** USER_RESERVED_MEM in VxWorks depending on the memory areas +** being used for preserved data and on OS specific behavior. +** +** \par Limits +** There is a lower limit of 1024 and an upper limit of 33554432 (32Mbytes) on +** this configuration paramater. +*/ +#define CFE_ES_USER_RESERVED_SIZE ( 1024 * 2048 ) + + +/** +** \cfeescfg Define ES Reset Area Size +** +** \par Description: +** The ES Reset Area Size. This is the size in bytes of the cFE Reset variable +** and log area. This is a block of memory used by the cFE to store the system +** log ER Log and critical reset variables. This is 4 of 4 of the memory areas +** that are preserved during a processor reset. +** Note: This area must be sized large enough to hold all of the data +** structures. It should be automatically sized based on the #CFE_ES_ResetData_t +** type, but circular dependancies in the headers prevent it from being defined +** this way. +** NOTE: Changing this value changes memory allocation, and may +** require changes to platform specific values (in CFE_PSP) such as +** USER_RESERVED_MEM in VxWorks depending on the memory areas +** being used for preserved data and on OS specific behavior. +** +** \par Limits +** There is a lower limit of 153600 (150KBytes) and an upper limit of 2097152 +** (2MBytes) on this configuration paramater. +*/ +#define CFE_ES_RESET_AREA_SIZE ( 170 * 2048 ) + +/** +** \cfeescfg Define Default Memory Pool Alignment Mode +** +** \par Description: +** Defines the default mode for the requirement to align ES Mempool buffer. +** If this define is set, the memory pool must be aligned or the call to +** create a new memory pool will be rejected with a CFE_ES_BAD_ARGUMENT +** return code. +** +** \par Limits +** If CFE_ES_MEMPOOL_ALIGNED is defined, the alignment check is enabled. +** If CFE_ES_MEMPOOL_ALIGNED is not defined, the alignment check is not +** compiled in. +*/ +#define CFE_ES_MEMPOOL_ALIGNED 1 + +/** +** \cfeescfg ES Nonvolatile Startup Filename +** +** \par Description: +** The value of this constant defines the path and name of the file that +** contains a list of modules that will be loaded and started by the cFE after +** the cFE finishes its startup sequence. +** +** \par Limits +** The length of each string, including the NULL terminator cannot exceed the +** #OS_MAX_PATH_LEN value. +*/ +#define CFE_ES_NONVOL_STARTUP_FILE "/cf/apps/cfe_es_startup.scr" + + +/** +** \cfeescfg ES Volatile Startup Filename +** +** \par Description: +** The value of this constant defines the path and name of the file that +** contains a list of modules that will be loaded and started by the cFE after +** the cFE finishes its startup sequence. +** +** \par Limits +** The length of each string, including the NULL terminator cannot exceed the +** #OS_MAX_PATH_LEN value. +*/ +#define CFE_ES_VOLATILE_STARTUP_FILE "/ram/apps/cfe_es_startup.scr" + +/** +** \cfeescfg Default Shell Filename +** +** \par Description: +** The value of this constant defines the filename used to store the shell +** output after a shell command is received by ES. This file contains the +** entire shell output. The fsw also sends the shell output in series of fixed +** size telemetry packets. This filename is used only when no filename +** is specified in the shell command. +** +** \par Limits +** The length of each string, including the NULL terminator cannot exceed the +** #OS_MAX_PATH_LEN value. +*/ +#define CFE_ES_DEFAULT_SHELL_FILENAME "/ram/ShellCmd.out" + + +/** +** \cfeescfg Define Max Shell Command Size +** +** \par Description: +** Defines the maximum size in characters of the shell command. +** +** \par Limits +** There is a lower limit of 64 and an upper limit of 128 on this configuration +** paramater. Units are characters. +*/ +#define CFE_ES_MAX_SHELL_CMD 64 + + +/** +** \cfeescfg Define Shell Command Telemetry Pkt Segment Size +** +** \par Description: +** Defines the size of the shell command tlm packet segments.The shell command +** output size is dependant on the shell command itself. If the shell output +** size is greater than the size of the packet defined here, the fsw will +** generate a series of tlm packets (of the size defined here) that can be +** reconstructed by the ground system. +** +** \par Limits +** There is a lower limit of 32 and an upper limit of 128 on this configuration +** paramater. +*/ +#define CFE_ES_MAX_SHELL_PKT 64 + + +/** +** \cfeescfg Default Application Information Filename +** +** \par Description: +** The value of this constant defines the filename used to store information +** pertaining to all of the Applications that are registered with Executive +** Services. This filename is used only when no filename is specified in the +** the command to query all system apps. +** +** \par Limits +** The length of each string, including the NULL terminator cannot exceed the +** #OS_MAX_PATH_LEN value. +*/ +#define CFE_ES_DEFAULT_APP_LOG_FILE "/ram/cfe_es_app_info.log" + +/** +** \cfeescfg Default Application Information Filename +** +** \par Description: +** The value of this constant defines the filename used to store information +** pertaining to all of the Applications that are registered with Executive +** Services. This filename is used only when no filename is specified in the +** the command to query all system tasks. +** +** \par Limits +** The length of each string, including the NULL terminator cannot exceed the +** #OS_MAX_PATH_LEN value. +*/ +#define CFE_ES_DEFAULT_TASK_LOG_FILE "/ram/cfe_es_task_info.log" + +/** +** \cfeescfg Default System Log Filename +** +** \par Description: +** The value of this constant defines the filename used to store important +** information (as ASCII text strings) that might not be able to be sent in an +** Event Message. This filename is used only when no filename is specified in +** the command to dump the system log. No file specified in the cmd means the +** first character in the cmd filename is a NULL terminator (zero). +** +** \par Limits +** The length of each string, including the NULL terminator cannot exceed the +** #OS_MAX_PATH_LEN value. +*/ +#define CFE_ES_DEFAULT_SYSLOG_FILE "/ram/cfe_es_syslog.log" + +/** +** \cfeescfg Default Exception and Reset (ER) Log Filename +** +** \par Description: +** The value of this constant defines the filename used to store the +** Exception and Reset (ER) Log. This filename is used only when no filename is +** specified in the command to dump the ER log. No file specified in the cmd +** means the first character in the cmd filename is a NULL terminator (zero). +** +** \par Limits +** The length of each string, including the NULL terminator cannot exceed the +** #OS_MAX_PATH_LEN value. +*/ +#define CFE_ES_DEFAULT_ER_LOG_FILE "/ram/cfe_erlog.log" + +/** +** \cfeescfg Default Performance Data Filename +** +** \par Description: +** The value of this constant defines the filename used to store the +** Performance Data. This filename is used only when no filename is specified +** in the command to stop performance data collecting. +** +** \par Limits +** The length of each string, including the NULL terminator cannot exceed the +** #OS_MAX_PATH_LEN value. +*/ +#define CFE_ES_DEFAULT_PERF_DUMP_FILENAME "/ram/cfe_es_perf.dat" + + +/** +** \cfeescfg Default Critical Data Store Registry Filename +** +** \par Description: +** The value of this constant defines the filename used to store the +** Critical Data Store Registry. This filename is used only when no filename is +** specified in the command to stop performance data collecting. +** +** \par Limits +** The length of each string, including the NULL terminator cannot exceed the +** #OS_MAX_PATH_LEN value. +*/ +#define CFE_ES_DEFAULT_CDS_REG_DUMP_FILE "/ram/cfe_cds_reg.log" + +/** +** \cfeescfg Define Default System Log Mode +** +** \par Description: +** Defines the default mode for the operation of the ES System log. The log may +** operate in either Overwrite mode = 0, where once the log becomes full the +** oldest message in the log will be overwritten, or Discard mode = 1, where +** once the log becomes full the contents of the log are preserved and the new +** event is discarded. This constant may hold a value of either 0 or 1 +** depending on the desired default log mode. Overwrite Mode = 0, Discard +** Mode = 1. +** +** \par Limits +** There is a lower limit of 0 and an upper limit of 1 on this configuration +** paramater. +*/ +#define CFE_ES_DEFAULT_SYSLOG_MODE 1 + +/** +** \cfeescfg Define Max Number of Performance IDs +** +** \par Description: +** Defines the maximum number of perf ids allowed. +** +** +** \par Limits +** This number must always be divisible by 32. There is a lower limit of 32 and +** an upper limit of 512 on this configuration paramater. +*/ +#define CFE_ES_PERF_MAX_IDS 128 + +/** +** \cfeescfg Define Max Size of Performance Data Buffer +** +** \par Description: +** Defines the maximum size of the performance data buffer. Units are number of +** performance data entries. An entry is defined by a 32 bit data word followed +** by a 64 bit time stamp. +** +** \par Limits +** There is a lower limit of 1025 and an upper limit of 1048576 (1 Meg) on this +** configuration paramater. The units are number of entries. An entry is +** defined by a 32 bit data word followed by a 64 bit time stamp. +*/ +#define CFE_ES_PERF_DATA_BUFFER_SIZE 10000 + + +/** +** \cfeescfg Define Filter Mask Setting for Disabling All Performance Entries +** +** \par Description: +** Defines the filter mask for disabling all performance entries. The value is a +** bit mask. For each bit, 0 means the corresponding entry is disabled and +** 1 means it is enabled. +*/ +#define CFE_ES_PERF_FILTMASK_NONE 0 + +/** +** \cfeescfg Define Filter Mask Setting for Enabling All Performance Entries +** +** \par Description: +** Defines the filter mask for enabling all performance entries. The value is a +** bit mask. For each bit, 0 means the corresponding entry is disabled and +** 1 means it is enabled. +*/ +#define CFE_ES_PERF_FILTMASK_ALL ~CFE_ES_PERF_FILTMASK_NONE + +/** +** \cfeescfg Define Default Filter Mask Setting for Performance Data Buffer +** +** \par Description: +** Defines the default filter mask for the performance data buffer. The value is a +** bit mask. For each bit, 0 means the corresponding entry is disabled and 1 +** means it is enabled. +** +*/ +#define CFE_ES_PERF_FILTMASK_INIT CFE_ES_PERF_FILTMASK_ALL + + +/** +** \cfeescfg Define Default Filter Trigger Setting for Disabling All Performance Entries +** +** \par Description: +** Defines the default trigger mask for disabling all performance data entries. The value +** is a bit mask. For each bit, 0 means the trigger for the corresponding entry is +** disabled and 1 means it is enabled. +** +*/ +#define CFE_ES_PERF_TRIGMASK_NONE 0 + +/** +** \cfeescfg Define Filter Trigger Setting for Enabling All Performance Entries +** +** \par Description: +** Defines the trigger mask for enabling all performance data entries. The value is +** a bit mask. For each bit, 0 means the trigger for the corresponding entry is +** disabled and 1 means it is enabled. +** +*/ +#define CFE_ES_PERF_TRIGMASK_ALL ~CFE_ES_PERF_TRIGMASK_NONE + +/** +** \cfeescfg Define Default Filter Trigger Setting for Performance Data Buffer +** +** \par Description: +** Defines the default trigger mask for the performance data buffer. The value is a +** 32-bit mask. For each bit, 0 means the trigger for the corresponding entry is +** disabled and 1 means it is enabled. +** +*/ +#define CFE_ES_PERF_TRIGMASK_INIT CFE_ES_PERF_TRIGMASK_NONE + +/** +** \cfeescfg Define Performance Analyzer Child Task Priority +** +** \par Description: +** This parameter defines the priority of the child task spawed by the +** Executive Services to write performance data to a file. Lower numbers +** are higher priority, with 1 being the highest priority in the case of a +** child task. +** +** \par Limits +** Valid range for a child task is 1 to 255 however, the priority cannot +** be higher (lower number) than the ES parent application priority. +*/ +#define CFE_ES_PERF_CHILD_PRIORITY 200 + +/** +** \cfeescfg Define Performance Analyzer Child Task Stack Size +** +** \par Description: +** This parameter defines the stack size of the child task spawed by the +** Executive Services to write performance data to a file. +** +** \par Limits +** It is recommended this parameter be greater than or equal to 4KB. This parameter +** is limited by the maximum value allowed by the data type. In this case, the data +** type is an unsigned 32-bit integer, so the valid range is 0 to 0xFFFFFFFF. +*/ +#define CFE_ES_PERF_CHILD_STACK_SIZE 16384 + +/** +** \cfeescfg Define Performance Analyzer Child Task Delay +** +** \par Description: +** This parameter defines the delay time (in milliseconds) between performance +** data file writes performed by the Executive Services Performace Analyzer +** Child Task. +** +** \par Limits +** It is recommended this parameter be greater than or equal to 20ms. This parameter +** is limited by the maximum value allowed by the data type. In this case, the data +** type is an unsigned 32-bit integer, so the valid range is 0 to 0xFFFFFFFF. +*/ +#define CFE_ES_PERF_CHILD_MS_DELAY 20 + +/** +** \cfeescfg Define Performance Analyzer Child Task Number of Entries Between Delay +** +** \par Description: +** This parameter defines the number of performace analyzer entries the Performace +** Analyzer Child Task will write to the file between delays. +** +*/ +#define CFE_ES_PERF_ENTRIES_BTWN_DLYS 50 + +/** +** \cfeescfg Define Default Stack Size for an Application +** +** \par Description: +** This parameter defines a default stack size. This parameter is used by the +** cFE Core Applications. +** +** \par Limits +** There is a lower limit of 2048 and an upper limit of 16384 on this +** configuration paramater. +*/ +#define CFE_ES_DEFAULT_STACK_SIZE 16384 + + +/** +** \cfeescfg Define EVS Task Priority +** +** \par Description: +** Defines the cFE_EVS Task priority. +** +** \par Limits +** Not Applicable +*/ +#define CFE_EVS_START_TASK_PRIORITY 61 + +/** +** \cfeescfg Define EVS Task Stack Size +** +** \par Description: +** Defines the cFE_EVS Task Stack Size +** +** \par Limits +** There is a lower limit of 2048 and an upper limit of 16384 on this +** configuration paramater. +*/ +#define CFE_EVS_START_TASK_STACK_SIZE CFE_ES_DEFAULT_STACK_SIZE + +#define CFE_EVS_START_TASK_FLAGS OS_ENABLE_CORE_0 + +/** +** \cfeescfg Define SB Task Priority +** +** \par Description: +** Defines the cFE_SB Task priority. +** +** \par Limits +** Not Applicable +*/ +#define CFE_SB_START_TASK_PRIORITY 64 + +/** +** \cfeescfg Define SB Task Stack Size +** +** \par Description: +** Defines the cFE_SB Task Stack Size +** +** \par Limits +** There is a lower limit of 2048 and an upper limit of 16384 on this +** configuration paramater. +*/ +#define CFE_SB_START_TASK_STACK_SIZE CFE_ES_DEFAULT_STACK_SIZE + +#define CFE_SB_START_TASK_FLAGS OS_ENABLE_CORE_0 + +/** +** \cfeescfg Define ES Task Priority +** +** \par Description: +** Defines the cFE_ES Task priority. +** +** \par Limits +** Not Applicable +*/ +#define CFE_ES_START_TASK_PRIORITY 68 + +/** +** \cfeescfg Define ES Task Stack Size +** +** \par Description: +** Defines the cFE_ES Task Stack Size +** +** \par Limits +** There is a lower limit of 2048 and an upper limit of 16384 on this +** configuration paramater. +*/ +#define CFE_ES_START_TASK_STACK_SIZE 16384 + +#define CFE_ES_START_TASK_FLAGS OS_ENABLE_CORE_0 + +/** +** \cfetimecfg Define TIME Task Priorities +** +** \par Description: +** Defines the cFE_TIME Task priority. +** Defines the cFE_TIME Tone Task priority. +** Defines the cFE_TIME 1HZ Task priority. +** +** \par Limits +** There is a lower limit of zero and an upper limit of 255 on these +** configuration paramaters. Remember that the meaning of each task +** priority is inverted -- a "lower" number has a "higher" priority. +*/ +#define CFE_TIME_START_TASK_PRIORITY 60 +#define CFE_TIME_TONE_TASK_PRIORITY 25 +#define CFE_TIME_1HZ_TASK_PRIORITY 25 + +/** +** \cfetimecfg Define TIME Task Stack Sizes +** +** \par Description: +** Defines the cFE_TIME Main Task Stack Size +** Defines the cFE_TIME Tone Task Stack Size +** Defines the cFE_TIME 1HZ Task Stack Size +** +** \par Limits +** There is a lower limit of 2048 and an upper limit of 16384 on these +** configuration paramaters. +*/ +#define CFE_TIME_START_TASK_STACK_SIZE CFE_ES_DEFAULT_STACK_SIZE +#define CFE_TIME_TONE_TASK_STACK_SIZE 16384 +#define CFE_TIME_1HZ_TASK_STACK_SIZE 16384 + +#define CFE_TIME_START_TASK_FLAGS OS_ENABLE_CORE_0 +#define CFE_TIME_TONE_TASK_FLAGS OS_ENABLE_CORE_0 +#define CFE_TIME_1HZ_TASK_FLAGS OS_ENABLE_CORE_0 + +/** +** \cfeescfg Define TBL Task Priority +** +** \par Description: +** Defines the cFE_TBL Task priority. +** +** \par Limits +** Not Applicable +*/ +#define CFE_TBL_START_TASK_PRIORITY 70 + +/** +** \cfeescfg Define TBL Task Stack Size +** +** \par Description: +** Defines the cFE_TBL Task Stack Size +** +** \par Limits +** There is a lower limit of 2048 and an upper limit of 16384 on this +** configuration paramater. +*/ +#define CFE_TBL_START_TASK_STACK_SIZE CFE_ES_DEFAULT_STACK_SIZE + +#define CFE_TBL_START_TASK_FLAGS OS_ENABLE_CORE_0 + +/** +** \cfeescfg Define Maximum Number of Registered CDS Blocks +** +** \par Description: +** Maximum number of registered CDS Blocks +** +** \par Limits +** There is a lower limit of 8 and an upper limit of 32767 on this configuration +** paramater. +*/ +#define CFE_ES_CDS_MAX_NUM_ENTRIES 512 + + +/** +** \cfeescfg Define Number of Processor Resets Before a Power On Reset +** +** \par Description: +** Number of Processor Resets before a Power On Reset is called. If set to 2, +** then 2 processor resets will occur, and the 3rd processor reset will be a +** power on reset instead. +** +** \par Limits +** There is a lower limit of 0 and an upper limit of 1024 on this configuration +** paramater. +*/ +#define CFE_ES_MAX_PROCESSOR_RESETS 2 + + +/** +** \cfeescfg Define Default ES Memory Pool Block Sizes +** +** \par Description: +** Default Intermediate ES Memory Pool Block Sizes. If an application +** is using the CFE_ES Memory Pool APIs (#CFE_ES_PoolCreate, #CFE_ES_PoolCreateNoSem, +** #CFE_ES_GetPoolBuf and #CFE_ES_PutPoolBuf) but finds these sizes +** inappropriate for their use, they may wish to use the #CFE_ES_PoolCreateEx +** API to specify their own intermediate block sizes +** +** \par Limits +** These sizes MUST be increasing and MUST be an integral multiple of 4. Also, +** CFE_ES_MAX_BLOCK_SIZE must be larger than CFE_SB_MAX_SB_MSG_SIZE and both +** CFE_TBL_MAX_SNGL_TABLE_SIZE and CFE_TBL_MAX_DBL_TABLE_SIZE. Note that if Table +** Services have been removed from the CFE, the table size limits are still +** enforced although the table size definitions may be reduced. Refer to the CFS +** Deployment Guide for information about removing CFE Table Services from the CFE. +*/ +#define CFE_ES_MEM_BLOCK_SIZE_01 8 +#define CFE_ES_MEM_BLOCK_SIZE_02 16 +#define CFE_ES_MEM_BLOCK_SIZE_03 32 +#define CFE_ES_MEM_BLOCK_SIZE_04 48 +#define CFE_ES_MEM_BLOCK_SIZE_05 64 +#define CFE_ES_MEM_BLOCK_SIZE_06 96 +#define CFE_ES_MEM_BLOCK_SIZE_07 128 +#define CFE_ES_MEM_BLOCK_SIZE_08 160 +#define CFE_ES_MEM_BLOCK_SIZE_09 256 +#define CFE_ES_MEM_BLOCK_SIZE_10 512 +#define CFE_ES_MEM_BLOCK_SIZE_11 1024 +#define CFE_ES_MEM_BLOCK_SIZE_12 2048 +#define CFE_ES_MEM_BLOCK_SIZE_13 4096 +#define CFE_ES_MEM_BLOCK_SIZE_14 8192 +#define CFE_ES_MEM_BLOCK_SIZE_15 16384 +#define CFE_ES_MEM_BLOCK_SIZE_16 80000 +#define CFE_ES_MAX_BLOCK_SIZE 200000 + + +/** +** \cfeescfg Define ES Critical Data Store Memory Pool Block Sizes +** +** \par Description: +** Intermediate ES Critical Data Store Memory Pool Block Sizes +** +** \par Limits +** These sizes MUST be increasing and MUST be an integral multiple of 4. +*/ +#define CFE_ES_CDS_MEM_BLOCK_SIZE_01 8 +#define CFE_ES_CDS_MEM_BLOCK_SIZE_02 16 +#define CFE_ES_CDS_MEM_BLOCK_SIZE_03 32 +#define CFE_ES_CDS_MEM_BLOCK_SIZE_04 48 +#define CFE_ES_CDS_MEM_BLOCK_SIZE_05 64 +#define CFE_ES_CDS_MEM_BLOCK_SIZE_06 96 +#define CFE_ES_CDS_MEM_BLOCK_SIZE_07 128 +#define CFE_ES_CDS_MEM_BLOCK_SIZE_08 160 +#define CFE_ES_CDS_MEM_BLOCK_SIZE_09 256 +#define CFE_ES_CDS_MEM_BLOCK_SIZE_10 512 +#define CFE_ES_CDS_MEM_BLOCK_SIZE_11 1024 +#define CFE_ES_CDS_MEM_BLOCK_SIZE_12 2048 +#define CFE_ES_CDS_MEM_BLOCK_SIZE_13 4096 +#define CFE_ES_CDS_MEM_BLOCK_SIZE_14 8192 +#define CFE_ES_CDS_MEM_BLOCK_SIZE_15 16384 +#define CFE_ES_CDS_MEM_BLOCK_SIZE_16 32768 +#define CFE_ES_CDS_MAX_BLOCK_SIZE 80000 + + + +/** +** \cfeevscfg Define Maximum Number of Event Filters per Application +** +** \par Description: +** Maximum number of events that may be filtered per application. +** +** \par Limits +** There is an upper limit of 32767 on this configuration paramater. +*/ +#define CFE_EVS_MAX_EVENT_FILTERS (256) + + +/** +** \cfeevscfg Enable or Disable EVS Local Event Log +** +** \par Description: +** The CFE_EVS_LOG_ON configuration parameter must be defined to enable EVS +** event logging. In order to disable the local event log this definition needs +** to be commented out. +** +** \par Limits +** Not Applicable +*/ +#define CFE_EVS_LOG_ON + + +/** +** \cfeevscfg Default Event Log Filename +** +** \par Description: +** The value of this constant defines the filename used to store the Event +** Services local event log. This filename is used only when no filename is +** specified in the command to dump the event log. +** +** \par Limits +** The length of each string, including the NULL terminator cannot exceed the +** #OS_MAX_PATH_LEN value. +*/ +#define CFE_EVS_DEFAULT_LOG_FILE "/ram/cfe_evs.log" + + +/** +** \cfeevscfg Maximum Number of Events in EVS Local Event Log +** +** \par Description: +** Dictates the EVS local event log capacity. Units are the number of events. +** +** \par Limits +** There is an upper limit of 65535 on this configuration paramater. +*/ +#define CFE_EVS_LOG_MAX 20 + + +/** +** \cfeevscfg Default EVS Application Data Filename +** +** \par Description: +** The value of this constant defines the filename used to store the EVS +** Application Data(event counts/filtering information). This filename is +** used only when no filename is specified in the command to dump the event +** log. +** +** \par Limits +** The length of each string, including the NULL terminator cannot exceed the +** #OS_MAX_PATH_LEN value. +*/ +#define CFE_EVS_DEFAULT_APP_DATA_FILE "/ram/cfe_evs_app.dat" + + +/** +** \cfeevscfg Default EVS Output Port State +** +** \par Description: +** Defines the default port state (enabled or deisabled) for the four output +** ports defined within the Event Service. Port 1 is usually the uart output +** terminal. To enable a port, set the proper bit to a 1. Bit 0 is port 1, +** bit 1 is port2 etc. +** +** \par Limits +** The valid settings are 0x0 to 0xF. +*/ +#define CFE_EVS_PORT_DEFAULT 0x0001 + + +/** +** \cfeevscfg Default EVS Event Type Filter Mask +** +** \par Description: +** Defines a state of on or off for all four event types. The term event +** 'type' refers to the criticality level and may be Debug, Informational, +** Error or Critical. Each event type has a bit position. (bit 0 = Debug, +** bit 1 = Info, bit 2 = Error, bit 3 = Critical). This is a global setting, +** meaning it applies to all applications. To filter an event type, set its +** bit to zero. For example, +** 0xE means Debug = OFF, Info = ON, Error = ON, Critical = ON +** +** \par Limits +** The valid settings are 0x0 to 0xF. +*/ +#define CFE_EVS_DEFAULT_TYPE_FLAG 0xE + + + +/** +** \cfeevscfg Default EVS Local Event Log Mode +** +** \par Description: +** Defines a state of overwrite(0) or discard(1) for the operation of the +** EVS local event log. The log may operate in either Overwrite mode = 0, +** where once the log becomes full the oldest event in the log will be +** overwritten, or Discard mode = 1, where once the log becomes full the +** contents of the log are preserved and the new event is discarded. +** Overwrite Mode = 0, Discard Mode = 1. +** +** \par Limits +** The valid settings are 0 or 1 +*/ +#define CFE_EVS_DEFAULT_LOG_MODE 1 + + +/** +** \cfeevscfg Default EVS Message Format Mode +** +** \par Description: +** Defines the default message format (long or short) for event messages being +** sent to the ground. Choose between #CFE_EVS_LONG_FORMAT or +** #CFE_EVS_SHORT_FORMAT. +** +** \par Limits +** The valid settings are #CFE_EVS_LONG_FORMAT or #CFE_EVS_SHORT_FORMAT +*/ +#define CFE_EVS_DEFAULT_MSG_FORMAT_MODE CFE_EVS_LONG_FORMAT + + + +/* Platform Configuration Parameters for Table Service (TBL) */ + +/** +** \cfetblcfg Size of Table Services Table Memory Pool +** +** \par Description: +** Defines the TOTAL size of the memory pool that cFE Table Services allocates +** from the system. The size must be large enough to provide memory for each +** registered table, the inactive buffers for double buffered tables and for +** the shared inactive buffers for single buffered tables. +** +** \par Limits +** The cFE does not place a limit on the size of this parameter. +*/ +#define CFE_TBL_BUF_MEMORY_BYTES 1048576 + +/** +** \cfetblcfg Maximum Size Allowed for a Double Buffered Table +** +** \par Description: +** Defines the maximum allowed size (in bytes) of a double buffered table. +** +** \par Limits +** The cFE does not place a limit on the size of this parameter but it must be +** less than half of #CFE_TBL_BUF_MEMORY_BYTES. +*/ +#define CFE_TBL_MAX_DBL_TABLE_SIZE 65535 + +/** +** \cfetblcfg Maximum Size Allowed for a Single Buffered Table +** +** \par Description: +** Defines the maximum allowed size (in bytes) of a single buffered table. +** \b NOTE: This size determines the size of all shared table buffers. +** Therefore, this size will be multiplied by #CFE_TBL_MAX_SIMULTANEOUS_LOADS +** below when allocating memory for shared tables. +** +** \par Limits +** The cFE does not place a limit on the size of this parameter but it must be +** small enough to allow for #CFE_TBL_MAX_SIMULTANEOUS_LOADS number of tables +** to fit into #CFE_TBL_BUF_MEMORY_BYTES. +*/ +#define CFE_TBL_MAX_SNGL_TABLE_SIZE 65535 + +/** +** \cfetblcfg Maximum Number of Tables Allowed to be Registered +** +** \par Description: +** Defines the maximum number of tables supported by this processor's Table Services. +** +** \par Limits +** This number must be less than 32767. It should be recognized that this parameter +** determines the size of the Table Registry. An excessively high number will waste +** memory. +*/ +#define CFE_TBL_MAX_NUM_TABLES 128 + +/** +** \cfetblcfg Maximum Number of Critical Tables that can be Registered +** +** \par Description: +** Defines the maximum number of critical tables supported by this processor's Table Services. +** +** \par Limits +** This number must be less than 32767. It should be recognized that this parameter +** determines the size of the Critical Table Registry which is maintained in the Critical +** Data Store. An excessively high number will waste Critical Data Store memory. Therefore, +** this number must not exceed the value defined in CFE_ES_CDS_MAX_CRITICAL_TABLES. +*/ +#define CFE_TBL_MAX_CRITICAL_TABLES 32 + +/** +** \cfetblcfg Maximum Number of Table Handles +** +** \par Description: +** Defines the maximum number of Table Handles. +** +** \par Limits +** This number must be less than 32767. This number must be at least as big as +** the number of tables (#CFE_TBL_MAX_NUM_TABLES) and should be set higher if tables +** are shared between applications. +*/ +#define CFE_TBL_MAX_NUM_HANDLES 256 + +/** +** \cfetblcfg Maximum Number of Simultaneous Loads to Support +** +** \par Description: +** Defines the maximum number of single buffered tables that can be +** loaded simultaneously. This number is used to determine the number +** of shared buffers to allocate. +** +** \par Limits +** This number must be less than 32767. An excessively high number will +** degrade system performance and waste memory. A number less than 5 is +** suggested but not required. +*/ +#define CFE_TBL_MAX_SIMULTANEOUS_LOADS 4 + +/** +** \cfetblcfg Maximum Number of Simultaneous Table Validations +** +** \par Description: +** Defines the maximum number of pending validations that +** the Table Services can handle at any one time. When a +** table has a validation function, a validation request is +** made of the application to perform that validation. This +** number determines how many of those requests can be +** outstanding at any one time. +** +** \par Limits +** This number must be less than 32767. An excessively high number will +** degrade system performance and waste memory. A number less than 20 is +** suggested but not required. +*/ +#define CFE_TBL_MAX_NUM_VALIDATIONS 10 + +/** +** \cfetblcfg Default Filename for a Table Registry Dump +** +** \par Description: +** Defines the file name used to store the table registry when +** no filename is specified in the dump registry command. +** +** \par Limits +** The length of each string, including the NULL terminator cannot exceed the +** #OS_MAX_PATH_LEN value. +*/ +#define CFE_TBL_DEFAULT_REG_DUMP_FILE "/ram/cfe_tbl_reg.log" + +/** +** \cfetblcfg Number of Spacecraft ID's specified for validation +** +** \par Description: +** Defines the number of specified spacecraft ID values that +** are verified during table loads. If the number is zero +** then no validation of the spacecraft ID field in the table +** file header is performed when tables are loaded. Non-zero +** values indicate how many values from the list of spacecraft +** ID's defined below are compared to the spacecraft ID field +** in the table file header. The ELF2CFETBL tool may be used +** to create table files with specified spacecraft ID values. +** +** \par Limits +** This number must be greater than or equal to zero and +** less than or equal to 2. +*/ +#define CFE_TBL_VALID_SCID_COUNT 0 + +/* macro to construct 32 bit value from 4 chars */ +#define CFE_TBL_U32FROM4CHARS( _C1, _C2, _C3, _C4 ) \ + ( (uint32)(_C1) << 24 | \ + (uint32)(_C2) << 16 | \ + (uint32)(_C3) << 8 | \ + (uint32)(_C4) ) + +/** +** \cfetblcfg Spacecraft ID values used for table load validation +** +** \par Description: +** Defines the spacecraft ID values used for validating the +** spacecraft ID field in the table file header. To be valid, +** the spacecraft ID specified in the table file header must +** match one of the values defined here. +** +** \par Limits +** This value can be any 32 bit unsigned integer. +*/ +#define CFE_TBL_VALID_SCID_1 (CFE_SPACECRAFT_ID) +#define CFE_TBL_VALID_SCID_2 (CFE_TBL_U32FROM4CHARS('a', 'b', 'c', 'd')) + +/** +** \cfetblcfg Number of Processor ID's specified for validation +** +** \par Description: +** Defines the number of specified processor ID values that +** are verified during table loads. If the number is zero +** then no validation of the processor ID field in the table +** file header is performed when tables are loaded. Non-zero +** values indicate how many values from the list of processor +** ID's defined below are compared to the processor ID field +** in the table file header. The ELF2CFETBL tool may be used +** to create table files with specified processor ID values. +** +** \par Limits +** This number must be greater than or equal to zero and +** less than or equal to 4. +*/ +#define CFE_TBL_VALID_PRID_COUNT 0 + +/** +** \cfetblcfg Processor ID values used for table load validation +** +** \par Description: +** Defines the processor ID values used for validating the +** processor ID field in the table file header. To be valid, +** the spacecraft ID specified in the table file header must +** match one of the values defined here. +** +** \par Limits +** This value can be any 32 bit unsigned integer. +*/ +#define CFE_TBL_VALID_PRID_1 (CFE_CPU_ID) +#define CFE_TBL_VALID_PRID_2 (CFE_TBL_U32FROM4CHARS('a', 'b', 'c', 'd')) +#define CFE_TBL_VALID_PRID_3 0 +#define CFE_TBL_VALID_PRID_4 0 + +/** \cfeescfg Mission specific version number for cFE +** +** \par Description: +** The cFE version number consists of four parts: +** major version number, minor version number, revision +** number and mission specific revision number. The mission +** specific revision number is defined here and the other +** parts are defined in "cfe_version.h". +** +** \par Limits: +** Must be defined as a numeric value that is greater than +** or equal to zero. +*/ +#define CFE_MISSION_REV 0 + +/** \cfeescfg Poll timer for startup sync delay +** +** \par Description: +** During startup, some tasks may need to synchronize their own initialization +** with the initialization of other applications in the system. +** +** CFE ES implements an API to accomplish this, that performs a task delay (sleep) +** while polling the overall system state until other tasks are ready. +** +** This value controls the amount of time that the CFE_ES_ApplicationSyncDelay +** will sleep between each check of the system state. This should be large enough +** to allow other tasks to run, but not so large as to noticeably delay the startup +** completion. +** +** Units are in milliseconds +** +** \par Limits: +** Must be defined as an integer value that is greater than +** or equal to zero. +*/ +#define CFE_ES_STARTUP_SYNC_POLL_MSEC 50 + +/** \cfeescfg CFE core application startup timeout +** +** \par Description: +** The upper limit for the amount of time that the cFE core applications +** (ES, SB, EVS, TIME, TBL) are each alloted to reach their respective +** "ready" states. +** +** The CFE "main" thread starts individual tasks for each of the core applications +** (except FS). Each of these must perform some initialization work before the +** next core application can be started, so the main thread waits to ensure that the +** application has reached the "ready" state before starting the next application. +** +** If any core application fails to start, then it indicates a major problem with +** the system and startup is aborted. +** +** Units are in milliseconds +** +** \par Limits: +** Must be defined as an integer value that is greater than +** or equal to zero. +** +*/ +#define CFE_CORE_MAX_STARTUP_MSEC 30000 + +/** \cfeescfg Startup script timeout +** +** \par Description: +** The upper limit for the total amount of time that all apps listed in the CFE ES startup +** script may take to all become ready. +** +** Unlike the "core" app timeout, this is a soft limit; if the alloted time is exceeded, +** it probably indicates an issue with one of the apps, but does not cause CFE ES to take +** any additional action other than logging the event to the syslog. +** +** Units are in milliseconds +** +** \par Limits: +** Must be defined as an integer value that is greater than +** or equal to zero. + */ +#define CFE_ES_STARTUP_SCRIPT_TIMEOUT_MSEC 30000 + + +#endif diff --git a/config/obc/sitl/target/CMakeLists.txt b/config/obc/sitl/target/CMakeLists.txt index 76683c193..5d64f1ab4 100644 --- a/config/obc/sitl/target/CMakeLists.txt +++ b/config/obc/sitl/target/CMakeLists.txt @@ -118,23 +118,6 @@ buildliner_add_app( CONFIG ${PROJECT_SOURCE_DIR}/config/shared/apps/sc ) -buildliner_add_app( - ci - DEFINITION ${PROJECT_SOURCE_DIR}/apps/ci/fsw/for_build - CONFIG ${CMAKE_CURRENT_SOURCE_DIR}/apps/ci - CONFIG_SOURCES - ${CMAKE_CURRENT_SOURCE_DIR}/apps/ci/ci_custom.c -) - -buildliner_add_app( - to - DEFINITION ${PROJECT_SOURCE_DIR}/apps/to/fsw/for_build - CONFIG ${CMAKE_CURRENT_SOURCE_DIR}/apps/to - CONFIG_SOURCES - ${CMAKE_CURRENT_SOURCE_DIR}/apps/to/tables/to_backup_cfg.c - ${CMAKE_CURRENT_SOURCE_DIR}/apps/to/to_custom.c -) - buildliner_add_app( ea DEFINITION ${PROJECT_SOURCE_DIR}/apps/ea/fsw/for_build diff --git a/config/obc/sitl/target/apps/pq_lib/tables/pq_backup_cfg.c b/config/obc/sitl/target/apps/pq_lib/tables/pq_backup_cfg.c index e022ec67f..064ccb4b7 100644 --- a/config/obc/sitl/target/apps/pq_lib/tables/pq_backup_cfg.c +++ b/config/obc/sitl/target/apps/pq_lib/tables/pq_backup_cfg.c @@ -27,6 +27,7 @@ PQ_ChannelTbl_t PQ_BackupConfigTbl = /* Message Flows */ /* Ground Queues */ {SBN_SUB_MID, 1, PQ_PQUEUE_HIGH_IDX}, + {SBN_UNSUB_MID, 1, PQ_PQUEUE_HIGH_IDX}, {TO_HK_TLM_MID, 1, PQ_PQUEUE_HIGH_IDX}, {TO_DATA_TYPE_MID, 1, PQ_PQUEUE_HIGH_IDX}, {TO_DIAG_TLM_MID, 1, PQ_PQUEUE_HIGH_IDX}, diff --git a/config/obc/sitl/target/apps/pq_lib/tables/pq_cfg.c b/config/obc/sitl/target/apps/pq_lib/tables/pq_cfg.c index ff92e111e..6f5d1fa87 100644 --- a/config/obc/sitl/target/apps/pq_lib/tables/pq_cfg.c +++ b/config/obc/sitl/target/apps/pq_lib/tables/pq_cfg.c @@ -46,6 +46,7 @@ PQ_ChannelTbl_t PQ_ConfigTbl = /* Message Flows */ /* Ground Queues */ {SBN_SUB_MID, 1, PQ_PQUEUE_HIGH_IDX}, + {SBN_UNSUB_MID, 1, PQ_PQUEUE_HIGH_IDX}, {AMC_HK_TLM_MID, 1, PQ_PQUEUE_HIGH_IDX}, {MAC_HK_TLM_MID, 1, PQ_PQUEUE_HIGH_IDX}, {MPC_HK_TLM_MID, 1, PQ_PQUEUE_HIGH_IDX}, diff --git a/config/obc/sitl/target/apps/sbn/src/sbn_remap_tbl.c b/config/obc/sitl/target/apps/sbn/src/sbn_remap_tbl.c index dde197b07..9d3362656 100644 --- a/config/obc/sitl/target/apps/sbn/src/sbn_remap_tbl.c +++ b/config/obc/sitl/target/apps/sbn/src/sbn_remap_tbl.c @@ -8,17 +8,18 @@ SBN_RemapTbl_t SBN_RemapTbl = 0, /* number of entries, initialized at validation time */ { /* remap table */ /* {CPU_ID, from, to} and if to is 0x0000, filter rather than remap */ - {2, CFE_CMD_MID_BASE_CPU2 + CFE_EVS_CMD_MSG, CFE_CMD_MID_BASE_CPU2 + CFE_EVS_CMD_MSG}, - {2, CFE_CMD_MID_BASE_CPU2 + CFE_SB_CMD_MSG, CFE_CMD_MID_BASE_CPU2 + CFE_SB_CMD_MSG}, - {2, CFE_CMD_MID_BASE_CPU2 + CFE_TBL_CMD_MSG, CFE_CMD_MID_BASE_CPU2 + CFE_TBL_CMD_MSG}, - {2, CFE_CMD_MID_BASE_CPU2 + CFE_TIME_CMD_MSG, CFE_CMD_MID_BASE_CPU2 + CFE_TIME_CMD_MSG}, - {2, CFE_CMD_MID_BASE_CPU2 + CFE_ES_CMD_MSG, CFE_CMD_MID_BASE_CPU2 + CFE_ES_CMD_MSG}, - {2, CFE_CMD_MID_BASE_CPU2 + CFE_TIME_TONE_CMD_MSG, CFE_CMD_MID_BASE_CPU2 + CFE_TIME_TONE_CMD_MSG}, - {2, CFE_CMD_MID_BASE_CPU2 + CFE_TIME_1HZ_CMD_MSG, CFE_CMD_MID_BASE_CPU2 + CFE_TIME_1HZ_CMD_MSG}, - /* Time commands */ - {1, CFE_TIME_DATA_CMD_MID, CFE_TIME_DATA_CMD_MID}, - {1, CFE_TIME_FAKE_CMD_MID, CFE_TIME_FAKE_CMD_MID}, - {1, CFE_TIME_SEND_CMD_MID, CFE_TIME_SEND_CMD_MID} + {1, CFE_ES_HK_TLM_MID, CFE_ES_HK_TLM_MID}, + {1, CFE_EVS_HK_TLM_MID, CFE_EVS_HK_TLM_MID}, + {1, CFE_SB_HK_TLM_MID, CFE_SB_HK_TLM_MID}, + {1, CFE_TBL_HK_TLM_MID, CFE_TBL_HK_TLM_MID}, + {1, CFE_TIME_HK_TLM_MID, CFE_TIME_HK_TLM_MID}, + {1, CFE_TIME_DIAG_TLM_MID, CFE_TIME_DIAG_TLM_MID}, + {1, CFE_EVS_EVENT_MSG_MID, CFE_EVS_EVENT_MSG_MID}, + {1, CFE_SB_STATS_TLM_MID, CFE_SB_STATS_TLM_MID}, + {1, CFE_ES_APP_TLM_MID, CFE_ES_APP_TLM_MID}, + {1, CFE_TBL_REG_TLM_MID, CFE_TBL_REG_TLM_MID}, + {1, CFE_ES_SHELL_TLM_MID, CFE_ES_SHELL_TLM_MID}, + {1, CFE_ES_MEMSTATS_TLM_MID, CFE_ES_MEMSTATS_TLM_MID} } };/* end SBN_RemapTbl */ diff --git a/config/obc/sitl/target/cfe_es_startup.scr b/config/obc/sitl/target/cfe_es_startup.scr index c8a920894..82d0a04b0 100644 --- a/config/obc/sitl/target/cfe_es_startup.scr +++ b/config/obc/sitl/target/cfe_es_startup.scr @@ -2,8 +2,6 @@ CFE_LIB, /cf/apps/CFS_LIB.so, CFS_LibInit, CFS_LIB, 0, 0, 0x0, 0, CFE_LIB, /cf/apps/PRMLIB.so, PRMLIB_LibInit, PRMLIB, 0, 0, 0x0, 0, 2; CFE_LIB, /cf/apps/PX4LIB.so, PX4LIB_LibInit, PX4LIB, 0, 0, 0x0, 0, 2; CFE_LIB, /cf/apps/PQ_LIB.so, PQ_LibInit, PQ_LIB, 0, 0, 0x0, 0, 2; -CFE_APP, /cf/apps/CI.so, CI_AppMain, CI, 115, 327680, 0x0, 0, 2; -CFE_APP, /cf/apps/TO.so, TO_AppMain, TO, 124, 327680, 0x0, 0, 2; CFE_APP, /cf/apps/CF.so, CF_AppMain, CF, 157, 327680, 0x0, 0, 2; CFE_APP, /cf/apps/DS.so, DS_AppMain, DS, 190, 327680, 0x0, 0, 2; CFE_APP, /cf/apps/FM.so, FM_AppMain, FM, 163, 327680, 0x0, 0, 2; diff --git a/config/shared/inc/msg_ids.h b/config/shared/inc/msg_ids.h index c421a6902..a3726706e 100644 --- a/config/shared/inc/msg_ids.h +++ b/config/shared/inc/msg_ids.h @@ -320,6 +320,7 @@ #define SBN_CMD_MID (0x1ba1) #define SBN_TLM_MID (0x0ba2) #define SBN_SUB_MID (0x0ba3) +#define SBN_UNSUB_MID (0x0ba4) /* ROS */ /* Range: 0x900 - 0x90f */ From 814dc693f950ea6a375e63387fc3715cc9eae489 Mon Sep 17 00:00:00 2001 From: lorenzo-gomez-windhover Date: Fri, 5 Feb 2021 17:36:32 -0600 Subject: [PATCH 052/370] -CS has been verified --- .../Displays/Apps/CS/DisableApplication.opi | 25 ++-- .../Displays/Apps/CS/DisableEEPROM.opi | 13 +- .../Displays/Apps/CS/DisableMemory.opi | 17 ++- .../Displays/Apps/CS/DisableTable.opi | 14 +- .../Displays/Apps/CS/EnableApplication.opi | 23 ++-- .../Displays/Apps/CS/EnableEEPROM.opi | 16 ++- .../Displays/Apps/CS/EnableMemory.opi | 16 ++- .../Displays/Apps/CS/EnableTable.opi | 16 ++- .../Displays/Apps/CS/GetEntryIDEEPROM.opi | 12 +- .../Displays/Apps/CS/GetEntryIDMemory.opi | 14 +- .../Displays/Apps/CS/Main.opi | 70 +++++----- .../Displays/Apps/CS/OneShot.opi | 129 ++++++++++++++++-- .../Displays/Apps/CS/RecomputeBaselineApp.opi | 10 +- .../Apps/CS/RecomputeBaselineEEPROM.opi | 7 +- .../Apps/CS/RecomputeBaselineMemory.opi | 12 +- .../Apps/CS/RecomputeBaselineTable.opi | 9 +- .../Displays/Apps/CS/ReportBaselineApp.opi | 9 +- .../Displays/Apps/CS/ReportBaselineEEPROM.opi | 9 +- .../Displays/Apps/CS/ReportBaselineMemory.opi | 9 +- .../Displays/Apps/CS/ReportBaselineTable.opi | 9 +- .../Displays/Apps/CS/scripts/CancelOneShot.js | 2 +- .../Displays/Apps/CS/scripts/DisableAll.js | 2 +- .../Apps/CS/scripts/DisableCFECore.js | 2 +- .../Displays/Apps/CS/scripts/DisableEEPROM.js | 2 +- .../Displays/Apps/CS/scripts/DisableOS.js | 2 +- .../Displays/Apps/CS/scripts/EnableAll.js | 2 +- .../Displays/Apps/CS/scripts/EnableCFECore.js | 2 +- .../Displays/Apps/CS/scripts/EnableEEPROM.js | 2 +- .../Displays/Apps/CS/scripts/EnableOS.js | 2 +- .../Displays/Apps/CS/scripts/NoOp.js | 2 +- .../Apps/CS/scripts/RecomputeBaseCFECore.js | 2 +- .../Apps/CS/scripts/RecomputeBaselineOS.js | 2 +- .../Apps/CS/scripts/ReportBaseCFECore.js | 2 +- .../Apps/CS/scripts/ReportBaselineOS.js | 2 +- .../Displays/Apps/CS/scripts/ResetCounters.js | 2 +- 35 files changed, 314 insertions(+), 155 deletions(-) diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/CS/DisableApplication.opi b/core/base/tools/commander/workspace_template/Displays/Apps/CS/DisableApplication.opi index 279fc9425..883c0a153 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/CS/DisableApplication.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/CS/DisableApplication.opi @@ -35,13 +35,13 @@ - ../scripts/QueryOneApp.js + +Yamcs.issueCommand(cmd, {});]]> true @@ -93,13 +93,16 @@ $(pv_value) - ../scripts/QueryOneApp.js + +Yamcs.issueCommand(cmd);]]> true @@ -197,9 +200,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -209,7 +212,7 @@ $(pv_value) - 34 + 32 CF CI @@ -231,8 +234,8 @@ $(pv_value) CFE_TIME false - Name - loc://Name + DisableApplicationName + loc://DisableApplicationNameInput<VString> diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/CS/DisableEEPROM.opi b/core/base/tools/commander/workspace_template/Displays/Apps/CS/DisableEEPROM.opi index 9f5e9cc8d..ec7210ad1 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/CS/DisableEEPROM.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/CS/DisableEEPROM.opi @@ -39,9 +39,9 @@ +Yamcs.issueCommand(cmd, {});]]> true @@ -93,13 +93,16 @@ $(pv_value) - ../scripts/QueryOneApp.js + +var cmd = '/cfs/cs/DisableEntryEEPROM'; + +Yamcs.issueCommand(cmd, {'EntryID': EntryID });]]> true @@ -221,7 +224,7 @@ $(pv_value) 10.0 0 false - loc://EntryID<VDouble> + loc://DisableEEPROMEntryID<VDouble> diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/CS/DisableMemory.opi b/core/base/tools/commander/workspace_template/Displays/Apps/CS/DisableMemory.opi index e1a59370a..a3aa4848e 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/CS/DisableMemory.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/CS/DisableMemory.opi @@ -35,13 +35,13 @@ - ../scripts/QueryOneApp.js + +Yamcs.issueCommand(cmd, {});]]> true @@ -79,7 +79,7 @@ Yamcs.issueCommand(cmd);]]> - Enable All + Disable All false $(pv_name) $(pv_value) @@ -96,10 +96,13 @@ $(pv_value) ../scripts/QueryOneApp.js +var cmd = '/cfs/cs/DisableEntryMemory'; + +Yamcs.issueCommand(cmd, {'EntryID': EntryID });]]> true @@ -137,7 +140,7 @@ var cmd = '/CFS/CS/DisableEntryMemory(EntryID: ' + EntryID + ')';]]> - Enable Entry + Disable Entry false $(pv_name) $(pv_value) @@ -221,7 +224,7 @@ $(pv_value) 10.0 0 false - loc://EntryID<VDouble> + loc://DisableMemoeryEntryID<VDouble> diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/CS/DisableTable.opi b/core/base/tools/commander/workspace_template/Displays/Apps/CS/DisableTable.opi index 104c1e8e1..7f6b24416 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/CS/DisableTable.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/CS/DisableTable.opi @@ -38,10 +38,11 @@ ../scripts/QueryOneApp.js +Yamcs.issueCommand(cmd, {});]]> true @@ -93,13 +94,16 @@ $(pv_value) - ../scripts/QueryOneApp.js + +var cmd = '/cfs/cs/DisableNameTable'; + +Yamcs.issueCommand(cmd, {'Name': Name});]]> true @@ -232,7 +236,7 @@ $(pv_value) false Name - loc://Name + loc://DisableTableName diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/CS/EnableApplication.opi b/core/base/tools/commander/workspace_template/Displays/Apps/CS/EnableApplication.opi index 5a0979772..33448a869 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/CS/EnableApplication.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/CS/EnableApplication.opi @@ -35,13 +35,14 @@ - ../scripts/QueryOneApp.js + +Yamcs.issueCommand(cmd, {});]]> true @@ -93,13 +94,17 @@ $(pv_value) - ../scripts/QueryOneApp.js + +var cmd = '/cfs/cs/EnableNameApp'; + +Yamcs.issueCommand(cmd, {'Name': Name});]]> true @@ -197,9 +202,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -209,7 +214,7 @@ $(pv_value) - 34 + 32 CF CI @@ -232,7 +237,7 @@ $(pv_value) false Name - loc://Name + loc://EnableApplicationName diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/CS/EnableEEPROM.opi b/core/base/tools/commander/workspace_template/Displays/Apps/CS/EnableEEPROM.opi index 3671b843a..5e4c68714 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/CS/EnableEEPROM.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/CS/EnableEEPROM.opi @@ -35,13 +35,14 @@ - ../scripts/QueryOneApp.js + +Yamcs.issueCommand(cmd, {});]]> true @@ -93,13 +94,16 @@ $(pv_value) - ../scripts/QueryOneApp.js + +var cmd = '/cfs/cs/EnableEntryEEPROM'; + +Yamcs.issueCommand(cmd, {'EntryID': EntryID });]]> true @@ -221,7 +225,7 @@ $(pv_value) 10.0 0 false - loc://EntryID<VDouble> + loc://EnableEEPROMEntryID<VDouble> diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/CS/EnableMemory.opi b/core/base/tools/commander/workspace_template/Displays/Apps/CS/EnableMemory.opi index adc3ef2d8..334deac21 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/CS/EnableMemory.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/CS/EnableMemory.opi @@ -35,13 +35,14 @@ - ../scripts/QueryOneApp.js + +Yamcs.issueCommand(cmd, {});]]> true @@ -93,13 +94,16 @@ $(pv_value) - ../scripts/QueryOneApp.js + +var cmd = '/cfs/cs/EnableEntryMemory'; + +Yamcs.issueCommand(cmd, {'EntryID': EntryID});]]> true @@ -221,7 +225,7 @@ $(pv_value) 10.0 0 false - loc://EntryID<VDouble> + loc://EnableMemoryEntryID<VDouble> diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/CS/EnableTable.opi b/core/base/tools/commander/workspace_template/Displays/Apps/CS/EnableTable.opi index 684f3a596..6fe34efd5 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/CS/EnableTable.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/CS/EnableTable.opi @@ -35,13 +35,14 @@ - ../scripts/QueryOneApp.js + +Yamcs.issueCommand(cmd, {});]]> true @@ -93,13 +94,16 @@ $(pv_value) - ../scripts/QueryOneApp.js + +var cmd = '/cfs/cs/EnableNameTable'; + +Yamcs.issueCommand(cmd, {'Name': Name});]]> true @@ -232,7 +236,7 @@ $(pv_value) false Name - loc://Name + loc://EnableTableName diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/CS/GetEntryIDEEPROM.opi b/core/base/tools/commander/workspace_template/Displays/Apps/CS/GetEntryIDEEPROM.opi index 256009f33..65f9f76c1 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/CS/GetEntryIDEEPROM.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/CS/GetEntryIDEEPROM.opi @@ -35,16 +35,16 @@ - ../scripts/QueryOneApp.js + +Yamcs.issueCommand(cmd, {'Address': Address});]]> true @@ -143,7 +143,7 @@ $(pv_value) false - + 3 1 @@ -156,7 +156,7 @@ $(pv_value) - 3 + 0 19 0 false @@ -166,7 +166,7 @@ $(pv_value) Address 0 false - loc://Address<VDouble> + loc://GetEntryIDEEPROMAddress<VDouble> 0.0 diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/CS/GetEntryIDMemory.opi b/core/base/tools/commander/workspace_template/Displays/Apps/CS/GetEntryIDMemory.opi index 902c38330..cdc083643 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/CS/GetEntryIDMemory.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/CS/GetEntryIDMemory.opi @@ -35,16 +35,16 @@ - ../scripts/QueryOneApp.js + +Yamcs.issueCommand(cmd, {'Address':Address});]]> true @@ -143,9 +143,9 @@ $(pv_value) false - + - 3 + 1 1 true @@ -156,7 +156,7 @@ $(pv_value) - 3 + 0 19 0 false @@ -166,7 +166,7 @@ $(pv_value) Address 0 false - loc://Address<VDouble> + loc://GetEntryMemoryAddress<VDouble> 0.0 diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/CS/Main.opi b/core/base/tools/commander/workspace_template/Displays/Apps/CS/Main.opi index fef3946ca..774f715da 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/CS/Main.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/CS/Main.opi @@ -2653,11 +2653,11 @@ $(pv_value) - ReportBaselineEEPROM.opi + ReportBaselineApp.opi true - 0 + 1 @@ -2708,11 +2708,11 @@ $(pv_value) - RecomputeBaselineEEPROM.opi + ReportBaselineApp.opi true - 0 + 1 @@ -2763,11 +2763,11 @@ $(pv_value) - ReportBaselineMemory.opi + ReportBaselineApp.opi true - 0 + 1 @@ -2818,11 +2818,11 @@ $(pv_value) - RecomputeBaselineMemory.opi + ReportBaselineApp.opi true - 0 + 1 @@ -2877,7 +2877,7 @@ $(pv_value) true - 0 + 1 @@ -2928,11 +2928,11 @@ $(pv_value) - RecomputeBaselineApp.opi + ReportBaselineApp.opi true - 0 + 1 @@ -2983,11 +2983,11 @@ $(pv_value) - ReportBaselineTable.opi + ReportBaselineApp.opi true - 0 + 1 @@ -3038,11 +3038,11 @@ $(pv_value) - RecomputeBaselineTable.opi + ReportBaselineApp.opi true - 0 + 1 @@ -3317,11 +3317,11 @@ $(pv_value) - GetEntryIDEEPROM.opi + DisableMemory.opi true - 0 + 1 @@ -3372,11 +3372,11 @@ $(pv_value) - EnableEEPROM.opi + DisableMemory.opi true - 0 + 1 @@ -3427,11 +3427,11 @@ $(pv_value) - DisableEEPROM.opi + DisableMemory.opi true - 0 + 1 @@ -3482,11 +3482,11 @@ $(pv_value) - GetEntryIDMemory.opi + DisableMemory.opi true - 0 + 1 @@ -3537,11 +3537,11 @@ $(pv_value) - EnableMemory.opi + DisableMemory.opi true - 0 + 1 @@ -3596,7 +3596,7 @@ $(pv_value) true - 0 + 1 @@ -3647,11 +3647,11 @@ $(pv_value) - EnableApplication.opi + DisableMemory.opi true - 0 + 1 @@ -3702,11 +3702,11 @@ $(pv_value) - DisableApplication.opi + DisableMemory.opi true - 0 + 1 @@ -3757,11 +3757,11 @@ $(pv_value) - EnableTable.opi + DisableMemory.opi true - 0 + 1 @@ -3812,11 +3812,11 @@ $(pv_value) - DisableTable.opi + DisableMemory.opi true - 0 + 1 @@ -4095,7 +4095,7 @@ $(pv_value) true - 0 + 1 diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/CS/OneShot.opi b/core/base/tools/commander/workspace_template/Displays/Apps/CS/OneShot.opi index f606de270..2105d8306 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/CS/OneShot.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/CS/OneShot.opi @@ -15,7 +15,7 @@ 6 - 110 + 150 true @@ -28,24 +28,30 @@ true true Display - 200 + 250 72a2bf2b:1508717c835:-7d33 -1 -1 - ../scripts/QueryOneApp.js + +Yamcs.issueCommand(cmd, + {'Address': Address, + 'Size': Size, + 'MaxBytesPerCycle': MaxBytesPerCycle + } + ); ]]> true @@ -91,8 +97,8 @@ $(pv_value) Action Button 125 72a2bf2b:1508717c835:-7cf7 - 42 - 72 + 47 + 96 @@ -128,7 +134,7 @@ $(pv_value) 1 true Label - 50 + 130 false 72a2bf2b:1508717c835:-7c63 12 @@ -157,7 +163,7 @@ $(pv_value) - 3 + 0 19 0 false @@ -167,7 +173,7 @@ $(pv_value) Address 0 false - loc://Address<VDouble> + loc://OneShotAddress<VDouble> 0.0 @@ -188,7 +194,7 @@ $(pv_value) Text Input 100 -33cb7c72:150aa4c347f:-72cb - 72 + 150 19 @@ -225,7 +231,7 @@ $(pv_value) 1 true Label - 50 + 130 false -33cb7c72:150aa4c347f:-72bb 12 @@ -264,7 +270,7 @@ $(pv_value) 10.0 0 true - loc://Size<VDouble> + loc://OneShotSize<VDouble> @@ -283,7 +289,102 @@ $(pv_value) Spinner 100 -33cb7c72:150aa4c347f:-72b3 - 72 + 150 38 + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_2 + + + true + true + false + + + MaxBytesPerCycle + + true + 1 + true + Label + 130 + false + 4d40612f:17772f0c845:-73cc + 12 + 56 + + + + false + false + + + + false + + + + 3 + 1 + false + true + + Default + + false + + + + 0 + 19 + 0 + false + false + 1.7976931348623157E308 + -1.7976931348623157E308 + MaxBytesPerCycle + 10.0 + 0 + false + loc://OneShotMaxBytesPerCycle<VDouble> + + + + true + true + false + + + true + 1.0 + $(pv_name) +$(pv_value) + false + 1 + true + Spinner + 100 + 4d40612f:17772f0c845:-73cb + 150 + 56 + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/CS/RecomputeBaselineApp.opi b/core/base/tools/commander/workspace_template/Displays/Apps/CS/RecomputeBaselineApp.opi index d189c2f71..3e36f7b08 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/CS/RecomputeBaselineApp.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/CS/RecomputeBaselineApp.opi @@ -35,13 +35,17 @@ - ../scripts/QueryOneApp.js + +var cmd = '/cfs/cs/RecomputeBaselineApp'; + +Yamcs.issueCommand(cmd, {'Name': Name}); +]]> true @@ -174,7 +178,7 @@ $(pv_value) false Name - loc://Name + loc://RecomputeBaselineAppName diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/CS/RecomputeBaselineEEPROM.opi b/core/base/tools/commander/workspace_template/Displays/Apps/CS/RecomputeBaselineEEPROM.opi index c3814a127..05b35e273 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/CS/RecomputeBaselineEEPROM.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/CS/RecomputeBaselineEEPROM.opi @@ -38,10 +38,13 @@ ../scripts/QueryOneApp.js +var cmd = '/cfs/cs/RecomputeBaselineEEPROM'; + +Yamcs.issueCommand(cmd, {'EntryID': EntryID });]]> true @@ -163,7 +166,7 @@ $(pv_value) 10.0 0 false - loc://EntryID<VDouble> + loc://RecomputeBaselineEEPROMEntryID<VDouble> diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/CS/RecomputeBaselineMemory.opi b/core/base/tools/commander/workspace_template/Displays/Apps/CS/RecomputeBaselineMemory.opi index 7e373c304..e6e3a706d 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/CS/RecomputeBaselineMemory.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/CS/RecomputeBaselineMemory.opi @@ -35,13 +35,19 @@ - ../scripts/QueryOneApp.js + +var cmd = '/cfs/cs/RecomputeBaselineMemory'; + +Yamcs.issueCommand(cmd, {'EntryID': EntryID}); + + +]]> true @@ -163,7 +169,7 @@ $(pv_value) 10.0 0 false - loc://EntryID<VDouble> + loc://RecomputeBaselineMemoryEntryID<VDouble> diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/CS/RecomputeBaselineTable.opi b/core/base/tools/commander/workspace_template/Displays/Apps/CS/RecomputeBaselineTable.opi index 89d354bab..5243b658c 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/CS/RecomputeBaselineTable.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/CS/RecomputeBaselineTable.opi @@ -35,13 +35,16 @@ - ../scripts/QueryOneApp.js + +var cmd = '/cfs/cs/RecomputeBaselineTable'; + +Yamcs.issueCommand(cmd , {'Name': Name});]]> true @@ -174,7 +177,7 @@ $(pv_value) false Name - loc://Name + loc://RecomputeBaselineTableName<VString> diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/CS/ReportBaselineApp.opi b/core/base/tools/commander/workspace_template/Displays/Apps/CS/ReportBaselineApp.opi index c77ed03c0..0510f5b6b 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/CS/ReportBaselineApp.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/CS/ReportBaselineApp.opi @@ -35,13 +35,16 @@ - ../scripts/QueryOneApp.js + +var cmd = '/cfs/cs/ReportBaselineApp'; + +Yamcs.issueCommand(cmd, {'Name': Name});]]> true @@ -174,7 +177,7 @@ $(pv_value) false Name - loc://Name + loc://ReportBaselineAppName diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/CS/ReportBaselineEEPROM.opi b/core/base/tools/commander/workspace_template/Displays/Apps/CS/ReportBaselineEEPROM.opi index 8d481c55d..6f0408850 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/CS/ReportBaselineEEPROM.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/CS/ReportBaselineEEPROM.opi @@ -35,13 +35,16 @@ - ../scripts/QueryOneApp.js + +var cmd = '/cfs/cs/ReportBaselineEEPROM'; + +Yamcs.issueCommand(cmd, {'EntryID': EntryID});]]> true @@ -163,7 +166,7 @@ $(pv_value) 10.0 0 false - loc://EntryID<VDouble> + loc://ReportBaselineEEPROMEntryID<VDouble> diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/CS/ReportBaselineMemory.opi b/core/base/tools/commander/workspace_template/Displays/Apps/CS/ReportBaselineMemory.opi index b13927cd8..60d5a0ea4 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/CS/ReportBaselineMemory.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/CS/ReportBaselineMemory.opi @@ -35,13 +35,16 @@ - ../scripts/QueryOneApp.js + +var cmd = '/cfs/cs/ReportBaselineMemory'; + +Yamcs.issueCommand(cmd, {'EntryID': EntryID});]]> true @@ -163,7 +166,7 @@ $(pv_value) 10.0 0 false - loc://EntryID<VDouble> + loc://ReportBaselineMemoryEntryID<VDouble> diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/CS/ReportBaselineTable.opi b/core/base/tools/commander/workspace_template/Displays/Apps/CS/ReportBaselineTable.opi index 582fec928..c2466e63a 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/CS/ReportBaselineTable.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/CS/ReportBaselineTable.opi @@ -35,13 +35,16 @@ - ../scripts/QueryOneApp.js + +var cmd = '/cfs/cs/ReportBaselineTable'; + +Yamcs.issueCommand(cmd, {'Name': Name});]]> true @@ -174,7 +177,7 @@ $(pv_value) false Name - loc://Name + loc://ReportBaselineTableName<VString> diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/CS/scripts/CancelOneShot.js b/core/base/tools/commander/workspace_template/Displays/Apps/CS/scripts/CancelOneShot.js index 77b933034..afd2fc055 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/CS/scripts/CancelOneShot.js +++ b/core/base/tools/commander/workspace_template/Displays/Apps/CS/scripts/CancelOneShot.js @@ -1,4 +1,4 @@ importPackage(Packages.org.csstudio.opibuilder.scriptUtil); importPackage(Packages.org.yamcs.studio.script); -Yamcs.issueCommand('/CFS/CS/CancelOneShot(arg: none)'); \ No newline at end of file +Yamcs.issueCommand('/cfs/cs/CancelOneShot', {}); \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/CS/scripts/DisableAll.js b/core/base/tools/commander/workspace_template/Displays/Apps/CS/scripts/DisableAll.js index f6382e628..f25a51ae8 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/CS/scripts/DisableAll.js +++ b/core/base/tools/commander/workspace_template/Displays/Apps/CS/scripts/DisableAll.js @@ -1,4 +1,4 @@ importPackage(Packages.org.csstudio.opibuilder.scriptUtil); importPackage(Packages.org.yamcs.studio.script); -Yamcs.issueCommand('/CFS/CS/DisableAll(arg: none)'); \ No newline at end of file +Yamcs.issueCommand('/cfs/cs/DisableApps', {}); \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/CS/scripts/DisableCFECore.js b/core/base/tools/commander/workspace_template/Displays/Apps/CS/scripts/DisableCFECore.js index 495191294..5e292dc09 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/CS/scripts/DisableCFECore.js +++ b/core/base/tools/commander/workspace_template/Displays/Apps/CS/scripts/DisableCFECore.js @@ -1,4 +1,4 @@ importPackage(Packages.org.csstudio.opibuilder.scriptUtil); importPackage(Packages.org.yamcs.studio.script); -Yamcs.issueCommand('/CFS/CS/DisableCFECore(arg: none)'); \ No newline at end of file +Yamcs.issueCommand('/cfs/cs/DisableCFECore', {}); \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/CS/scripts/DisableEEPROM.js b/core/base/tools/commander/workspace_template/Displays/Apps/CS/scripts/DisableEEPROM.js index 9ae04356e..787db5ce1 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/CS/scripts/DisableEEPROM.js +++ b/core/base/tools/commander/workspace_template/Displays/Apps/CS/scripts/DisableEEPROM.js @@ -1,4 +1,4 @@ importPackage(Packages.org.csstudio.opibuilder.scriptUtil); importPackage(Packages.org.yamcs.studio.script); -Yamcs.issueCommand('/CFS/CS/DisableEEPROM(arg: none)'); \ No newline at end of file +Yamcs.issueCommand('/cfs/cs/DisableEEPROM', {}); \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/CS/scripts/DisableOS.js b/core/base/tools/commander/workspace_template/Displays/Apps/CS/scripts/DisableOS.js index d78651a80..c08cc56ed 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/CS/scripts/DisableOS.js +++ b/core/base/tools/commander/workspace_template/Displays/Apps/CS/scripts/DisableOS.js @@ -1,4 +1,4 @@ importPackage(Packages.org.csstudio.opibuilder.scriptUtil); importPackage(Packages.org.yamcs.studio.script); -Yamcs.issueCommand('/CFS/CS/DisableOS(arg: none)'); \ No newline at end of file +Yamcs.issueCommand('/cfs/cs/DisableOS', {}); \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/CS/scripts/EnableAll.js b/core/base/tools/commander/workspace_template/Displays/Apps/CS/scripts/EnableAll.js index de919517c..9990d1ff2 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/CS/scripts/EnableAll.js +++ b/core/base/tools/commander/workspace_template/Displays/Apps/CS/scripts/EnableAll.js @@ -1,4 +1,4 @@ importPackage(Packages.org.csstudio.opibuilder.scriptUtil); importPackage(Packages.org.yamcs.studio.script); -Yamcs.issueCommand('/CFS/CS/EnableAll(arg: none)'); \ No newline at end of file +Yamcs.issueCommand('/cfs/cfs/EnableApps', {}); \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/CS/scripts/EnableCFECore.js b/core/base/tools/commander/workspace_template/Displays/Apps/CS/scripts/EnableCFECore.js index e9a98c639..ac1d23111 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/CS/scripts/EnableCFECore.js +++ b/core/base/tools/commander/workspace_template/Displays/Apps/CS/scripts/EnableCFECore.js @@ -1,4 +1,4 @@ importPackage(Packages.org.csstudio.opibuilder.scriptUtil); importPackage(Packages.org.yamcs.studio.script); -Yamcs.issueCommand('/CFS/CS/EnableCFECore(arg: none)'); \ No newline at end of file +Yamcs.issueCommand('/cfs/cs/EnableCfeCore', {}); \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/CS/scripts/EnableEEPROM.js b/core/base/tools/commander/workspace_template/Displays/Apps/CS/scripts/EnableEEPROM.js index d39c384d4..aa04757c2 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/CS/scripts/EnableEEPROM.js +++ b/core/base/tools/commander/workspace_template/Displays/Apps/CS/scripts/EnableEEPROM.js @@ -1,4 +1,4 @@ importPackage(Packages.org.csstudio.opibuilder.scriptUtil); importPackage(Packages.org.yamcs.studio.script); -Yamcs.issueCommand('/CFS/CS/EnableEEPROM(arg: none)'); \ No newline at end of file +Yamcs.issueCommand('/cfs/cs/EnableEntryEEPROM', {}); \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/CS/scripts/EnableOS.js b/core/base/tools/commander/workspace_template/Displays/Apps/CS/scripts/EnableOS.js index 556347ea4..da0f22f49 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/CS/scripts/EnableOS.js +++ b/core/base/tools/commander/workspace_template/Displays/Apps/CS/scripts/EnableOS.js @@ -1,4 +1,4 @@ importPackage(Packages.org.csstudio.opibuilder.scriptUtil); importPackage(Packages.org.yamcs.studio.script); -Yamcs.issueCommand('/CFS/CS/EnableOS(arg: none)'); \ No newline at end of file +Yamcs.issueCommand('/cfs/cs/EnableOS', {}); \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/CS/scripts/NoOp.js b/core/base/tools/commander/workspace_template/Displays/Apps/CS/scripts/NoOp.js index dda468a94..262742834 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/CS/scripts/NoOp.js +++ b/core/base/tools/commander/workspace_template/Displays/Apps/CS/scripts/NoOp.js @@ -1,4 +1,4 @@ importPackage(Packages.org.csstudio.opibuilder.scriptUtil); importPackage(Packages.org.yamcs.studio.script); -Yamcs.issueCommand('/cfs/cs/Noop()'); \ No newline at end of file +Yamcs.issueCommand('/cfs/cs/Noop', {}); \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/CS/scripts/RecomputeBaseCFECore.js b/core/base/tools/commander/workspace_template/Displays/Apps/CS/scripts/RecomputeBaseCFECore.js index ebe575dcf..a893c5dcf 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/CS/scripts/RecomputeBaseCFECore.js +++ b/core/base/tools/commander/workspace_template/Displays/Apps/CS/scripts/RecomputeBaseCFECore.js @@ -1,4 +1,4 @@ importPackage(Packages.org.csstudio.opibuilder.scriptUtil); importPackage(Packages.org.yamcs.studio.script); -Yamcs.issueCommand('/CFS/CS/RecomputeBaseCFECore(arg: none)'); \ No newline at end of file +Yamcs.issueCommand('/cfs/cs/RecomputeBaselineCfeCore', {}); \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/CS/scripts/RecomputeBaselineOS.js b/core/base/tools/commander/workspace_template/Displays/Apps/CS/scripts/RecomputeBaselineOS.js index c35b5396d..fb876929b 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/CS/scripts/RecomputeBaselineOS.js +++ b/core/base/tools/commander/workspace_template/Displays/Apps/CS/scripts/RecomputeBaselineOS.js @@ -1,4 +1,4 @@ importPackage(Packages.org.csstudio.opibuilder.scriptUtil); importPackage(Packages.org.yamcs.studio.script); -Yamcs.issueCommand('/CFS/CS/RecomputeBaselineOS(arg: none)'); \ No newline at end of file +Yamcs.issueCommand('/cfs/cs/RecomputeBaselineOS', {}); \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/CS/scripts/ReportBaseCFECore.js b/core/base/tools/commander/workspace_template/Displays/Apps/CS/scripts/ReportBaseCFECore.js index 3ea93cd32..c41d56253 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/CS/scripts/ReportBaseCFECore.js +++ b/core/base/tools/commander/workspace_template/Displays/Apps/CS/scripts/ReportBaseCFECore.js @@ -1,4 +1,4 @@ importPackage(Packages.org.csstudio.opibuilder.scriptUtil); importPackage(Packages.org.yamcs.studio.script); -Yamcs.issueCommand('/CFS/CS/ReportBaseCFECore(arg: none)'); \ No newline at end of file +Yamcs.issueCommand('/cfs/cs/ReportBaselineCfeCore', {}); \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/CS/scripts/ReportBaselineOS.js b/core/base/tools/commander/workspace_template/Displays/Apps/CS/scripts/ReportBaselineOS.js index 9a017dde4..ce18e1ac0 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/CS/scripts/ReportBaselineOS.js +++ b/core/base/tools/commander/workspace_template/Displays/Apps/CS/scripts/ReportBaselineOS.js @@ -1,4 +1,4 @@ importPackage(Packages.org.csstudio.opibuilder.scriptUtil); importPackage(Packages.org.yamcs.studio.script); -Yamcs.issueCommand('/CFS/CS/ReportBaselineOS(arg: none)'); \ No newline at end of file +Yamcs.issueCommand('/cfs/cs/ReportBaselineOS', {}); \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/CS/scripts/ResetCounters.js b/core/base/tools/commander/workspace_template/Displays/Apps/CS/scripts/ResetCounters.js index 6dd0450a6..542c054d6 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/CS/scripts/ResetCounters.js +++ b/core/base/tools/commander/workspace_template/Displays/Apps/CS/scripts/ResetCounters.js @@ -1,4 +1,4 @@ importPackage(Packages.org.csstudio.opibuilder.scriptUtil); importPackage(Packages.org.yamcs.studio.script); -Yamcs.issueCommand('/cfs/cs/Reset()'); \ No newline at end of file +Yamcs.issueCommand('/cfs/cs/Reset', {}); \ No newline at end of file From 6dd97014b7924e2ec1fd4e0f9efc160255ac8a5a Mon Sep 17 00:00:00 2001 From: lorenzo-gomez-windhover Date: Fri, 5 Feb 2021 17:51:10 -0600 Subject: [PATCH 053/370] -Started to certify DS -TODO:Finish verifying DS --- .../Displays/Apps/DS/Main.opi | 56 +++++++++---------- 1 file changed, 28 insertions(+), 28 deletions(-) diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/DS/Main.opi b/core/base/tools/commander/workspace_template/Displays/Apps/DS/Main.opi index a13816f68..6aa8588a8 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/DS/Main.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/DS/Main.opi @@ -42,9 +42,9 @@ true - + - 0 + 1 1 true @@ -214,9 +214,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -418,9 +418,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -470,9 +470,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -522,9 +522,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -574,9 +574,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -673,9 +673,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -725,9 +725,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -777,9 +777,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -829,9 +829,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -881,9 +881,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -933,9 +933,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -985,9 +985,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -1037,9 +1037,9 @@ $(pv_value) true - + - 0 + 1 1 true From 32767aeff612391988bcebb38036a100b00c81ba Mon Sep 17 00:00:00 2001 From: lorenzo-gomez-windhover Date: Fri, 5 Feb 2021 18:17:14 -0600 Subject: [PATCH 054/370] -Fixed Button layouts in CS displays --- .../Displays/Apps/CS/DisableApplication.opi | 14 +++++++------- .../Displays/Apps/CS/DisableEEPROM.opi | 18 +++++++++--------- .../Displays/Apps/CS/DisableMemory.opi | 18 +++++++++--------- .../Displays/Apps/CS/DisableTable.opi | 18 +++++++++--------- .../Displays/Apps/CS/EnableApplication.opi | 18 +++++++++--------- .../Displays/Apps/CS/EnableEEPROM.opi | 18 +++++++++--------- .../Displays/Apps/CS/EnableMemory.opi | 18 +++++++++--------- .../Displays/Apps/CS/EnableTable.opi | 18 +++++++++--------- 8 files changed, 70 insertions(+), 70 deletions(-) diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/CS/DisableApplication.opi b/core/base/tools/commander/workspace_template/Displays/Apps/CS/DisableApplication.opi index 883c0a153..ec7a538df 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/CS/DisableApplication.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/CS/DisableApplication.opi @@ -28,7 +28,7 @@ true true Display - 200 + 300 -736e4684:150ac3c95a1:-7e23 -1 -1 @@ -87,8 +87,8 @@ $(pv_value) Action Button 109 -736e4684:150ac3c95a1:-7e12 - 48 - 18 + 144 + 78 @@ -148,8 +148,8 @@ $(pv_value) Action Button 109 -736e4684:150ac3c95a1:-7e06 - 48 - 114 + 6 + 78 @@ -189,7 +189,7 @@ $(pv_value) false -736e4684:150ac3c95a1:-76ae 12 - 83 + 35 @@ -251,6 +251,6 @@ $(pv_value) 115 -736e4684:150ac3c95a1:-76ad 72 - 78 + 30 \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/CS/DisableEEPROM.opi b/core/base/tools/commander/workspace_template/Displays/Apps/CS/DisableEEPROM.opi index ec7210ad1..dbccbdab3 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/CS/DisableEEPROM.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/CS/DisableEEPROM.opi @@ -28,7 +28,7 @@ true true Display - 180 + 300 -736e4684:150ac3c95a1:-7e23 -1 -1 @@ -87,8 +87,8 @@ $(pv_value) Action Button 120 -736e4684:150ac3c95a1:-7e12 - 36 - 18 + 156 + 78 @@ -148,8 +148,8 @@ $(pv_value) Action Button 120 -736e4684:150ac3c95a1:-7e06 - 36 - 114 + 21 + 78 @@ -188,8 +188,8 @@ $(pv_value) 55 false -736e4684:150ac3c95a1:-7de8 - 12 - 78 + 60 + 36 @@ -243,7 +243,7 @@ $(pv_value) Spinner 100 -736e4684:150ac3c95a1:-7de7 - 72 - 78 + 120 + 36 \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/CS/DisableMemory.opi b/core/base/tools/commander/workspace_template/Displays/Apps/CS/DisableMemory.opi index a3aa4848e..823dbe7cf 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/CS/DisableMemory.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/CS/DisableMemory.opi @@ -28,7 +28,7 @@ true true Display - 180 + 300 -736e4684:150ac3c95a1:-7e23 -1 -1 @@ -87,8 +87,8 @@ $(pv_value) Action Button 120 -736e4684:150ac3c95a1:-7e12 - 36 - 18 + 150 + 72 @@ -148,8 +148,8 @@ $(pv_value) Action Button 120 -736e4684:150ac3c95a1:-7e06 - 36 - 114 + 15 + 72 @@ -188,8 +188,8 @@ $(pv_value) 55 false -736e4684:150ac3c95a1:-7de8 - 12 - 78 + 36 + 36 @@ -243,7 +243,7 @@ $(pv_value) Spinner 100 -736e4684:150ac3c95a1:-7de7 - 72 - 78 + 96 + 36 \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/CS/DisableTable.opi b/core/base/tools/commander/workspace_template/Displays/Apps/CS/DisableTable.opi index 7f6b24416..b514ab96e 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/CS/DisableTable.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/CS/DisableTable.opi @@ -28,7 +28,7 @@ true true Display - 200 + 300 -736e4684:150ac3c95a1:-7e23 -1 -1 @@ -88,8 +88,8 @@ $(pv_value) Action Button 120 -736e4684:150ac3c95a1:-7e12 - 48 - 18 + 168 + 90 @@ -149,8 +149,8 @@ $(pv_value) Action Button 120 -736e4684:150ac3c95a1:-7e06 - 48 - 114 + 18 + 90 @@ -189,8 +189,8 @@ $(pv_value) 50 false -736e4684:150ac3c95a1:-76ae - 12 - 83 + 48 + 41 @@ -251,7 +251,7 @@ $(pv_value) Combo 115 -736e4684:150ac3c95a1:-76ad - 72 - 78 + 108 + 36 \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/CS/EnableApplication.opi b/core/base/tools/commander/workspace_template/Displays/Apps/CS/EnableApplication.opi index 33448a869..85874ab7d 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/CS/EnableApplication.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/CS/EnableApplication.opi @@ -28,7 +28,7 @@ true true Display - 200 + 300 -736e4684:150ac3c95a1:-7e23 -1 -1 @@ -88,8 +88,8 @@ $(pv_value) Action Button 120 -736e4684:150ac3c95a1:-7e12 - 48 - 18 + 144 + 78 @@ -150,8 +150,8 @@ $(pv_value) Action Button 120 -736e4684:150ac3c95a1:-7e06 - 48 - 114 + 6 + 78 @@ -190,8 +190,8 @@ $(pv_value) 50 false -736e4684:150ac3c95a1:-76ae - 12 - 83 + 18 + 35 @@ -252,7 +252,7 @@ $(pv_value) Combo 115 -736e4684:150ac3c95a1:-76ad - 72 - 78 + 78 + 30 \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/CS/EnableEEPROM.opi b/core/base/tools/commander/workspace_template/Displays/Apps/CS/EnableEEPROM.opi index 5e4c68714..6d84089af 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/CS/EnableEEPROM.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/CS/EnableEEPROM.opi @@ -28,7 +28,7 @@ true true Display - 180 + 300 -736e4684:150ac3c95a1:-7e23 -1 -1 @@ -88,8 +88,8 @@ $(pv_value) Action Button 120 -736e4684:150ac3c95a1:-7e12 - 36 - 18 + 144 + 84 @@ -149,8 +149,8 @@ $(pv_value) Action Button 120 -736e4684:150ac3c95a1:-7e06 - 36 - 114 + 9 + 84 @@ -189,8 +189,8 @@ $(pv_value) 55 false -736e4684:150ac3c95a1:-7de8 - 12 - 78 + 36 + 48 @@ -244,7 +244,7 @@ $(pv_value) Spinner 100 -736e4684:150ac3c95a1:-7de7 - 72 - 78 + 96 + 48 \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/CS/EnableMemory.opi b/core/base/tools/commander/workspace_template/Displays/Apps/CS/EnableMemory.opi index 334deac21..13c68983f 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/CS/EnableMemory.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/CS/EnableMemory.opi @@ -28,7 +28,7 @@ true true Display - 180 + 300 -736e4684:150ac3c95a1:-7e23 -1 -1 @@ -88,8 +88,8 @@ $(pv_value) Action Button 120 -736e4684:150ac3c95a1:-7e12 - 36 - 18 + 168 + 90 @@ -149,8 +149,8 @@ $(pv_value) Action Button 120 -736e4684:150ac3c95a1:-7e06 - 36 - 114 + 33 + 90 @@ -189,8 +189,8 @@ $(pv_value) 55 false -736e4684:150ac3c95a1:-7de8 - 12 - 78 + 54 + 42 @@ -244,7 +244,7 @@ $(pv_value) Spinner 100 -736e4684:150ac3c95a1:-7de7 - 72 - 78 + 114 + 42 \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/CS/EnableTable.opi b/core/base/tools/commander/workspace_template/Displays/Apps/CS/EnableTable.opi index 6fe34efd5..608615620 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/CS/EnableTable.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/CS/EnableTable.opi @@ -28,7 +28,7 @@ true true Display - 200 + 300 -736e4684:150ac3c95a1:-7e23 -1 -1 @@ -88,8 +88,8 @@ $(pv_value) Action Button 120 -736e4684:150ac3c95a1:-7e12 - 48 - 18 + 174 + 84 @@ -149,8 +149,8 @@ $(pv_value) Action Button 120 -736e4684:150ac3c95a1:-7e06 - 48 - 114 + 36 + 84 @@ -189,8 +189,8 @@ $(pv_value) 50 false -736e4684:150ac3c95a1:-76ae - 12 - 83 + 48 + 41 @@ -251,7 +251,7 @@ $(pv_value) Combo 115 -736e4684:150ac3c95a1:-76ad - 72 - 78 + 108 + 36 \ No newline at end of file From 7173a3145747ef6571bdf5649d141ae38aa18c6f Mon Sep 17 00:00:00 2001 From: Mathew Benson Date: Fri, 5 Feb 2021 19:24:55 -0600 Subject: [PATCH 055/370] Added overrides to the TO yaml definition. --- apps/to/wh_design.yaml | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/apps/to/wh_design.yaml b/apps/to/wh_design.yaml index 1aa0d4e07..da9c32ccf 100644 --- a/apps/to/wh_design.yaml +++ b/apps/to/wh_design.yaml @@ -57,6 +57,45 @@ id: 27 TO_NO_ENCODE_FUNC_EID: id: 28 + msg_def_overrides: + - parent: TO_ChannelDiagTlm_t + member: State + type: enumeration + enumerations: + UNKNOWN: 0 + CLOSED: 1 + OPEN: 2 + - parent: TO_ChannelDiagTlm_t + member: ConfigTableName + type: string + - parent: TO_ChannelDiagTlm_t + member: ConfigTableFileName + type: string + - parent: TO_ChannelDiagTlm_t + member: DumpTableName + type: string + - parent: TO_ChannelDiagTlm_t + member: ChannelName + type: string + - parent: TO_ChannelDiagTlm_t + member: ConfigTableName + type: string + - parent: TO_ChannelDiagTlm_t + member: ConfigTableFileName + type: string + - parent: TO_PriorityDiagTlm_t + member: State + type: enumeration + enumerations: + UNKNOWN: 0 + CLOSED: 1 + OPEN: 2 + - parent: TO_PriorityDiagTlm_t + member: QType + type: enumeration + enumerations: + FIFO: 0 + SINGLE: 1 telemetry: TO_DIAG_TLM_MID: msgID: From 736c2257b6e16f65fb6b7e5c11d1ad06af755b5c Mon Sep 17 00:00:00 2001 From: Mathew Benson Date: Fri, 5 Feb 2021 19:26:37 -0600 Subject: [PATCH 056/370] Temporarily swapped out yamcs-cfs plugin with one with the sequence count disabled. Updated the CFE yaml definition file. Fixed the TBL ViewRegistry display. TO displays are almost done. --- core/base/cfe/wh_design.yaml | 1 + .../Displays/Apps/TO/AddMessageFlow.opi | 432 ++++ .../Displays/Apps/TO/Main.opi | 1820 ++++---------- .../Displays/Apps/TO/QueryMessageFlow.opi | 234 ++ .../Displays/Apps/TO/QueryOutputChannel.opi | 135 ++ .../Displays/Apps/TO/QueryPriorityQueue.opi | 234 ++ .../Displays/Apps/TO/RemoveMessageFlow.opi | 234 ++ .../Displays/Apps/TO/SendDiag.opi | 2095 +++++++++++++++++ .../Displays/Apps/TO/scripts/NoOp.js | 4 - .../Displays/Apps/TO/scripts/ResetCounters.js | 4 - .../Displays/Core/TBL/ViewRegistry.opi | 168 +- .../etc/yamcs.yamcs-cfs.yaml | 3 + .../lib/yamcs-cfs-1.0.4.jar | Bin 4589 -> 4452 bytes 13 files changed, 3918 insertions(+), 1446 deletions(-) create mode 100644 core/base/tools/commander/workspace_template/Displays/Apps/TO/AddMessageFlow.opi create mode 100644 core/base/tools/commander/workspace_template/Displays/Apps/TO/QueryMessageFlow.opi create mode 100644 core/base/tools/commander/workspace_template/Displays/Apps/TO/QueryOutputChannel.opi create mode 100644 core/base/tools/commander/workspace_template/Displays/Apps/TO/QueryPriorityQueue.opi create mode 100644 core/base/tools/commander/workspace_template/Displays/Apps/TO/RemoveMessageFlow.opi create mode 100644 core/base/tools/commander/workspace_template/Displays/Apps/TO/SendDiag.opi delete mode 100644 core/base/tools/commander/workspace_template/Displays/Apps/TO/scripts/NoOp.js delete mode 100644 core/base/tools/commander/workspace_template/Displays/Apps/TO/scripts/ResetCounters.js diff --git a/core/base/cfe/wh_design.yaml b/core/base/cfe/wh_design.yaml index 8c0e1b9f7..8f800667c 100644 --- a/core/base/cfe/wh_design.yaml +++ b/core/base/cfe/wh_design.yaml @@ -72,6 +72,7 @@ modules: # CFE_ES_MemHandle_t is a void* that is wrapped in a macro. For now we are assuming 32-bit void*, which is the word size # of our machine. You can get this number in linux with the 'getconf WORD_BIT' command. CFE_ES_MemHandle_t: uint32 + cpuaddr: uint32 msg_def_overrides: - parent: CFE_ES_RestartCmd_Payload_t member: RestartType diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/TO/AddMessageFlow.opi b/core/base/tools/commander/workspace_template/Displays/Apps/TO/AddMessageFlow.opi new file mode 100644 index 000000000..72423821b --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/Apps/TO/AddMessageFlow.opi @@ -0,0 +1,432 @@ + + + + + false + -1 + -1 + + false + + + + 1.5.3 + + + + 6 + 130 + + true + + TO - Add Message Flow + + + true + true + true + true + true + Display + 240 + -10b748b0:17773fb054b:-7a2f + -1 + -1 + + + false + + + + + + + 0 + 1 + true + + Default Bold + + + + + 20 + 1 + Label_49 + + + true + true + false + + + Add Message Flow + + true + 1 + true + Label + 182 + false + -10b748b0:17773fb054b:-7a20 + 36 + 12 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label + + + true + true + false + + + Message ID + + true + 1 + true + Label + 109 + false + -10b748b0:17773fb054b:-7a0f + 12 + 36 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_2 + + + true + true + false + + + Message Limit + + true + 1 + true + Label + 109 + false + -10b748b0:17773fb054b:-79f1 + 12 + 55 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_3 + + + true + true + false + + + PQueue Index + + true + 1 + true + Label + 109 + false + -10b748b0:17773fb054b:-79df + 12 + 74 + + + + + + + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 20 + ../../Resources/send.png + NoOp + 0 + + + + + true + true + false + + + + Add + false + $(pv_name) +$(pv_value) + true + Action Button + 72 + -10b748b0:17773fb054b:-79c7 + 91 + 102 + + + + false + false + false + + + + true + + + + 1 + 1 + + true + + Default + + false + + + + 0 + 20 + 0 + false + 1.7976931348623157E308 + -1.7976931348623157E308 + false + MsgID + 0 + true + loc://TO_AddMessageFlow_MsgID<VString> + + 0.0 + + + true + true + false + + + 0 + true + + + $(pv_name) +$(pv_value) + false + true + Text Input + 100 + -10b748b0:17773fb054b:-78ff + 132 + 36 + + + + false + false + false + + + + true + + + + 1 + 1 + + true + + Default + + false + + + + 0 + 20 + 0 + false + 1.7976931348623157E308 + -1.7976931348623157E308 + false + MsgLimit + 0 + true + loc://TO_AddMessageFlow_MsgLimit<VString> + + 0.0 + + + true + true + false + + + 0 + true + + + $(pv_name) +$(pv_value) + false + true + Text Input + 100 + -10b748b0:17773fb054b:-78f7 + 132 + 55 + + + + false + false + false + + + + true + + + + 1 + 1 + + true + + Default + + false + + + + 0 + 20 + 0 + false + 1.7976931348623157E308 + -1.7976931348623157E308 + false + PQueueIdx + 0 + true + loc://TO_AddMessageFlow_PQueueIdx<VString> + + 0.0 + + + true + true + false + + + 0 + true + + + $(pv_name) +$(pv_value) + false + true + Text Input + 100 + -10b748b0:17773fb054b:-78ef + 132 + 74 + + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/TO/Main.opi b/core/base/tools/commander/workspace_template/Displays/Apps/TO/Main.opi index 055226fea..aed3863b9 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/TO/Main.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/TO/Main.opi @@ -15,7 +15,7 @@ 6 - 410 + 530 true @@ -42,9 +42,9 @@ true - + - 0 + 1 1 true @@ -81,8 +81,8 @@ $(pv_value) 100 false -33cb7c72:150aa4c347f:-75ff - 95 - 57 + 108 + 42 @@ -118,11 +118,11 @@ $(pv_value) 1 true Label - 72 + 91 false -33cb7c72:150aa4c347f:-75fe - 12 - 57 + 6 + 42 @@ -161,30 +161,40 @@ $(pv_value) 60 false -33cb7c72:150aa4c347f:-75fd - 24 - 76 + 37 + 61 - + + false false + false + true - + - 0 + 1 1 true - Default Bold + Default + false + 1 20 - 1 - Label_46 + 0 + Text Update_1 + 0 + false + /cfs/to/TO_HkTlm_t.usCmdErrCnt + + 0.0 true @@ -192,27 +202,26 @@ $(pv_value) false - Commanding - - true + true + ###### + $(pv_name) +$(pv_value) + false 1 true - Label - 164 + Text Update + 100 false - -33cb7c72:150aa4c347f:-75fc - 66 - 30 + -33cb7c72:150aa4c347f:-75fb + 108 + 61 - + - false false - false - true @@ -220,21 +229,14 @@ $(pv_value) 1 true - Default + Default Bold - false - 1 20 - 0 - Text Update_1 - 0 - false - /cfs/to/TO_HkTlm_t.usCmdErrCnt - - 0.0 + 1 + Label_49 true @@ -242,19 +244,17 @@ $(pv_value) false - true - ###### - $(pv_name) -$(pv_value) - false + Telemetry Output + + true 1 true - Text Update - 100 + Label + 182 false - -33cb7c72:150aa4c347f:-75fb - 95 - 76 + -33cb7c72:150aa4c347f:-75c9 + 63 + 12 @@ -287,8 +287,8 @@ Yamcs.issueCommand('/cfs/to/Noop', {});]]> - 18 - Resources/send.png + 20 + ../../Resources/send.png NoOp 0 @@ -307,10 +307,10 @@ Yamcs.issueCommand('/cfs/to/Noop', {});]]> $(pv_value) true Action Button - 67 - -33cb7c72:150aa4c347f:-75fa - 210 - 58 + 72 + -10b748b0:17773fb054b:-7b9c + 223 + 42 @@ -343,7 +343,7 @@ Yamcs.issueCommand('/cfs/to/Reset', {});]]> - 17 + 20 ../../Resources/send.png NoOp_1 0 @@ -363,10 +363,10 @@ Yamcs.issueCommand('/cfs/to/Reset', {});]]> $(pv_value) true Action Button - 67 - -33cb7c72:150aa4c347f:-75f9 - 210 - 79 + 72 + -10b748b0:17773fb054b:-7b94 + 223 + 61 @@ -381,14 +381,14 @@ $(pv_value) 1 true - Default Bold + Default 20 - 1 - Label_49 + 2 + Label_50 true @@ -396,17 +396,17 @@ $(pv_value) false - Stored Command + Sent Msg Count true 1 true Label - 272 + 118 false - -33cb7c72:150aa4c347f:-75c9 - 12 - 6 + -10b748b0:17773fb054b:-7b8c + 50 + 193 @@ -418,9 +418,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -436,7 +436,7 @@ $(pv_value) Text Update_2 0 false - /cfs/sc/SC_HkTlm_t.AtsNumber + /cfs/to/TO_HkTlm_t.uiSentMsgCountChannel_0_ 0.0 @@ -456,19 +456,16 @@ $(pv_value) Text Update 100 false - 7b256c5c:150b979c7e3:-766f - 162 - 113 + -10b748b0:17773fb054b:-7b82 + 179 + 193 - + - false false - false - true @@ -478,19 +475,12 @@ $(pv_value) Default - false - 1 20 - 0 - Text Update_3 - 0 - false - /CFS/SC/AtsState - - 0.0 + 2 + Label_51 true @@ -498,21 +488,19 @@ $(pv_value) false - true - ###### - $(pv_name) -$(pv_value) - false + Queued Msg Count + + true 1 true - Text Update - 100 + Label + 136 false - 7b256c5c:150b979c7e3:-766e - 162 - 132 + -10b748b0:17773fb054b:-7b75 + 32 + 212 - + false false @@ -520,12 +508,11 @@ $(pv_value) - 0 true - + - 0 + 1 1 true @@ -535,11 +522,15 @@ $(pv_value) + 1 20 - - Text Update_4 - /CFS/SC/ContinueAtsOnFailureFlag + 0 + Text Update_3 + 0 + false + /cfs/to/TO_HkTlm_t.uiQueuedMsgCountChannel_0_ + 0.0 true @@ -547,28 +538,26 @@ $(pv_value) false - - - + true + ###### $(pv_name) $(pv_value) + false + 1 true - Check Box + Text Update 100 - 7b256c5c:150b979c7e3:-766d - 162 - 151 + false + -10b748b0:17773fb054b:-7b74 + 179 + 212 - + - false false - false - 0 - true @@ -578,15 +567,12 @@ $(pv_value) Default - false 20 - - Text Update_5 - /CFS/SC/SwitchPendFlag - + 2 + Label_52 true @@ -594,17 +580,17 @@ $(pv_value) false - - - - $(pv_name) -$(pv_value) + Dropped Msg Count + + true + 1 true - Check Box - 100 - 7b256c5c:150b979c7e3:-766c - 162 - 170 + Label + 136 + false + -10b748b0:17773fb054b:-7b54 + 32 + 231 @@ -616,9 +602,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -631,10 +617,10 @@ $(pv_value) 1 20 0 - Text Update_6 + Text Update_4 0 false - /CFS/SC/NumRtsActive + /cfs/to/TO_HkTlm_t.uiDropMsgCountChannel_0_ 0.0 @@ -654,19 +640,16 @@ $(pv_value) Text Update 100 false - 7b256c5c:150b979c7e3:-766b - 162 - 189 + -10b748b0:17773fb054b:-7b53 + 179 + 231 - + - false false - false - true @@ -676,19 +659,12 @@ $(pv_value) Default - false - 1 20 - 0 - Text Update_7 - 0 - false - /CFS/SC/RtsNumber - - 0.0 + 2 + Label_53 true @@ -696,19 +672,17 @@ $(pv_value) false - true - ###### - $(pv_name) -$(pv_value) - false + Failed Msg Count + + true 1 true - Text Update - 100 + Label + 136 false - 7b256c5c:150b979c7e3:-766a - 162 - 208 + -10b748b0:17773fb054b:-7b42 + 32 + 250 @@ -720,9 +694,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -735,10 +709,10 @@ $(pv_value) 1 20 0 - Text Update_8 + Text Update_5 0 false - /CFS/SC/RtsActiveCtr + /cfs/to/TO_HkTlm_t.uiFailedMsgCountChannel_0_ 0.0 @@ -758,19 +732,16 @@ $(pv_value) Text Update 100 false - 7b256c5c:150b979c7e3:-7669 - 162 - 227 + -10b748b0:17773fb054b:-7b41 + 179 + 250 - + - false false - false - true @@ -780,19 +751,12 @@ $(pv_value) Default - false - 1 20 - 0 - Text Update_9 - 0 - false - /CFS/SC/RtsActiveErrCtr - - 0.0 + 2 + Label_54 true @@ -800,19 +764,17 @@ $(pv_value) false - true - ###### - $(pv_name) -$(pv_value) - false + Bytes Sent + + true 1 true - Text Update - 100 + Label + 136 false - 7b256c5c:150b979c7e3:-7668 - 162 - 246 + -10b748b0:17773fb054b:-7b30 + 32 + 269 @@ -824,9 +786,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -839,10 +801,10 @@ $(pv_value) 1 20 0 - Text Update_10 + Text Update_6 0 false - /CFS/SC/AtsCmdCtr + /cfs/to/TO_HkTlm_t.uiBytesSentChannel_0_ 0.0 @@ -862,19 +824,16 @@ $(pv_value) Text Update 100 false - 7b256c5c:150b979c7e3:-7667 - 162 - 265 + -10b748b0:17773fb054b:-7b2f + 179 + 269 - + - false false - false - true @@ -884,19 +843,12 @@ $(pv_value) Default - false - 1 20 - 0 - Text Update_11 - 0 - false - /CFS/SC/AtsCmdErrCtr - - 0.0 + 2 + Label_55 true @@ -904,19 +856,17 @@ $(pv_value) false - true - ###### - $(pv_name) -$(pv_value) - false + Total Msgs Dropped + + true 1 true - Text Update - 100 + Label + 136 false - 7b256c5c:150b979c7e3:-7666 - 162 - 284 + -10b748b0:17773fb054b:-7b1e + 32 + 115 @@ -928,9 +878,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -943,10 +893,10 @@ $(pv_value) 1 20 0 - Text Update_12 + Text Update_7 0 false - /CFS/SC/RtsCmdCtr + /cfs/to/TO_HkTlm_t.usTotalMsgDropped 0.0 @@ -966,19 +916,16 @@ $(pv_value) Text Update 100 false - 7b256c5c:150b979c7e3:-7665 - 162 - 303 + -10b748b0:17773fb054b:-7b1d + 179 + 115 - + - false false - false - true @@ -988,19 +935,12 @@ $(pv_value) Default - false - 1 20 - 0 - Text Update_13 - 0 - false - /CFS/SC/RtsCmdErrCtr - - 0.0 + 2 + Label_56 true @@ -1008,19 +948,17 @@ $(pv_value) false - true - ###### - $(pv_name) -$(pv_value) - false + Memory in Use + + true 1 true - Text Update - 100 + Label + 136 false - 7b256c5c:150b979c7e3:-7664 - 162 - 322 + -10b748b0:17773fb054b:-7b0c + 32 + 288 @@ -1032,9 +970,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -1047,10 +985,10 @@ $(pv_value) 1 20 0 - Text Update_14 + Text Update_8 0 false - /CFS/SC/LastAtsErrSeq + /cfs/to/TO_HkTlm_t.ChannelMemInfo_0_.MemInUse 0.0 @@ -1070,19 +1008,16 @@ $(pv_value) Text Update 100 false - 7b256c5c:150b979c7e3:-7663 - 162 - 341 + -10b748b0:17773fb054b:-7b0b + 179 + 288 - + - false false - false - true @@ -1092,19 +1027,12 @@ $(pv_value) Default - false - 1 20 - 0 - Text Update_15 - 0 - false - /CFS/SC/LastAtsErrCmd - - 0.0 + 2 + Label_57 true @@ -1112,19 +1040,17 @@ $(pv_value) false - true - ###### - $(pv_name) -$(pv_value) - false + Bytes Sent + + true 1 true - Text Update - 100 + Label + 118 false - 7b256c5c:150b979c7e3:-7662 - 162 - 360 + -10b748b0:17773fb054b:-7afd + 50 + 96 @@ -1136,9 +1062,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -1151,10 +1077,10 @@ $(pv_value) 1 20 0 - Text Update_16 + Text Update_9 0 false - /CFS/SC/LastRtsErrSeq + /cfs/to/TO_HkTlm_t.SentBytes 0.0 @@ -1174,19 +1100,16 @@ $(pv_value) Text Update 100 false - 7b256c5c:150b979c7e3:-7661 - 162 - 379 + -10b748b0:17773fb054b:-7afc + 179 + 96 - + - false false - false - true @@ -1196,19 +1119,12 @@ $(pv_value) Default - false - 1 20 - 0 - Text Update_17 - 0 - false - /CFS/SC/LastErrCmd - - 0.0 + 2 + Label_58 true @@ -1216,19 +1132,17 @@ $(pv_value) false - true - ###### - $(pv_name) -$(pv_value) - false + Max Mem per Channel + + true 1 true - Text Update - 100 + Label + 158 false - 7b256c5c:150b979c7e3:-7660 - 162 - 398 + -10b748b0:17773fb054b:-7ae3 + 10 + 134 @@ -1240,9 +1154,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -1255,10 +1169,10 @@ $(pv_value) 1 20 0 - Text Update_18 + Text Update_10 0 false - /CFS/SC/AppendCmdArg + /cfs/to/TO_HkTlm_t.ChannelMaxMem 0.0 @@ -1278,19 +1192,16 @@ $(pv_value) Text Update 100 false - 7b256c5c:150b979c7e3:-765f - 162 - 417 + -10b748b0:17773fb054b:-7ae2 + 179 + 134 - + - false false - false - true @@ -1298,21 +1209,14 @@ $(pv_value) 1 true - Default + Default Bold - false - 1 20 - 0 - Text Update_19 - 0 - false - /CFS/SC/AppendEntryCount - - 0.0 + 1 + Label_59 true @@ -1320,29 +1224,24 @@ $(pv_value) false - true - ###### - $(pv_name) -$(pv_value) - false + Channel + + true 1 true - Text Update - 100 + Label + 92 false - 7b256c5c:150b979c7e3:-765e - 162 - 436 + -10b748b0:17773fb054b:-7ad4 + 108 + 174 - + - false false - false - true @@ -1352,19 +1251,12 @@ $(pv_value) Default - false - 1 20 - 0 - Text Update_20 - 0 - false - /CFS/SC/AppendByteCount - - 0.0 + 2 + Label_60 true @@ -1372,19 +1264,17 @@ $(pv_value) false - true - ###### - $(pv_name) -$(pv_value) - false + Peak Mem in Use + + true 1 true - Text Update - 100 + Label + 136 false - 7b256c5c:150b979c7e3:-765d - 162 - 455 + -10b748b0:17773fb054b:-7ac3 + 32 + 307 @@ -1396,9 +1286,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -1411,10 +1301,10 @@ $(pv_value) 1 20 0 - Text Update_21 + Text Update_11 0 false - /CFS/SC/AppendLoadCount + /cfs/to/TO_HkTlm_t.ChannelMemInfo_0_.PeakMemInUse 0.0 @@ -1434,19 +1324,16 @@ $(pv_value) Text Update 100 false - 7b256c5c:150b979c7e3:-765c - 162 - 474 + -10b748b0:17773fb054b:-7ac2 + 179 + 307 - + - false false - false - true @@ -1456,19 +1343,12 @@ $(pv_value) Default - false - 1 20 - 0 - Text Update_22 - 0 - false - /CFS/SC/AtpCmdNumber - - 0.0 + 2 + Label_61 true @@ -1476,19 +1356,17 @@ $(pv_value) false - true - ###### - $(pv_name) -$(pv_value) - false + Queued in Output + + true 1 true - Text Update - 100 + Label + 136 false - 7b256c5c:150b979c7e3:-765b - 162 - 493 + -10b748b0:17773fb054b:-7ab1 + 32 + 326 @@ -1500,9 +1378,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -1515,10 +1393,10 @@ $(pv_value) 1 20 0 - Text Update_23 + Text Update_12 0 false - /CFS/SC/AtpFreeBytes_0 + /cfs/to/TO_HkTlm_t.QueuedInOutputChannel_0_ 0.0 @@ -1538,19 +1416,27 @@ $(pv_value) Text Update 100 false - 7b256c5c:150b979c7e3:-765a - 162 - 512 + -10b748b0:17773fb054b:-7ab0 + 179 + 326 - - + + + + AddMessageFlow.opi + + true + + 1 + + + false - false false - + - true + false @@ -1564,15 +1450,12 @@ $(pv_value) - 1 20 - 0 - Text Update_24 - 0 - false - /CFS/SC/AtpFreeBytes_1 + + Action Button + 0 + - 0.0 true @@ -1580,29 +1463,35 @@ $(pv_value) false - true - ###### + + Add Message Flow + false $(pv_name) $(pv_value) - false - 1 true - Text Update - 100 - false - 7b256c5c:150b979c7e3:-7659 - 261 - 512 + Action Button + 175 + -10b748b0:17773fb054b:-76ff + 66 + 360 - - + + + + RemoveMessageFlow.opi + + true + + 1 + + + false - false false - + - true + false @@ -1616,15 +1505,12 @@ $(pv_value) - 1 20 - 0 - Text Update_25 - 0 - false - /CFS/SC/NextRtsTime + + Action Button_4 + 0 + - 0.0 true @@ -1632,29 +1518,35 @@ $(pv_value) false - true - ###### + + Remove Message Flow + false $(pv_name) $(pv_value) - false - 1 true - Text Update - 100 - false - 7b256c5c:150b979c7e3:-7658 - 162 - 531 + Action Button + 175 + -10b748b0:17773fb054b:-76f7 + 66 + 379 - - + + + + QueryMessageFlow.opi + + true + + 1 + + + false - false false - + - true + false @@ -1668,15 +1560,12 @@ $(pv_value) - 1 20 - 0 - Text Update_26 - 0 - false - /CFS/SC/NextAtsTime + + Action Button_1 + 0 + - 0.0 true @@ -1684,26 +1573,35 @@ $(pv_value) false - true - ###### + + Query Message Flow + false $(pv_name) $(pv_value) - false - 1 true - Text Update - 100 - false - 7b256c5c:150b979c7e3:-7657 - 162 - 550 + Action Button + 175 + -10b748b0:17773fb054b:-75ff + 66 + 398 - - - false + + + + QueryPriorityQueue.opi + + true + + 1 + + + + false + false - + + false @@ -1713,12 +1611,16 @@ $(pv_value) Default + false 20 - 2 - Label_50 + + Action Button_3 + 0 + + true @@ -1726,664 +1628,35 @@ $(pv_value) false - ATS Number - - true - 1 + + Query Priority Queue + false + $(pv_name) +$(pv_value) true - Label - 102 - false - 7b256c5c:150b979c7e3:-764f - 48 - 113 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 2 - Label_51 - - - true - true - false - - - ATS State - - true - 1 - true - Label - 102 - false - 7b256c5c:150b979c7e3:-764a - 48 - 132 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 2 - Label_52 - - - true - true - false - - - Continue ATS on Failure - - true - 1 - true - Label - 141 - false - 7b256c5c:150b979c7e3:-7645 - 9 - 151 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 2 - Label_53 - - - true - true - false - - - Switch Pend - - true - 1 - true - Label - 102 - false - 7b256c5c:150b979c7e3:-7640 - 48 - 170 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 2 - Label_54 - - - true - true - false - - - Num RTS Active - - true - 1 - true - Label - 102 - false - 7b256c5c:150b979c7e3:-763b - 48 - 189 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 2 - Label_55 - - - true - true - false - - - RTS Active Ctr - - true - 1 - true - Label - 102 - false - 7b256c5c:150b979c7e3:-7636 - 48 - 227 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 2 - Label_56 - - - true - true - false - - - RTS Number - - true - 1 - true - Label - 102 - false - 7b256c5c:150b979c7e3:-7631 - 48 - 208 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 2 - Label_57 - - - true - true - false - - - RTS Active Err Ctr - - true - 1 - true - Label - 117 - false - 7b256c5c:150b979c7e3:-762c - 33 - 246 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 2 - Label_58 - - - true - true - false - - - ATS Cmd Err Ctr - - true - 1 - true - Label - 102 - false - 7b256c5c:150b979c7e3:-7627 - 48 - 284 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 2 - Label_59 - - - true - true - false - - - ATS Cmd Ctr - - true - 1 - true - Label - 102 - false - 7b256c5c:150b979c7e3:-7622 - 48 - 265 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 2 - Label_60 - - - true - true - false - - - RTS Cmd Ctr - - true - 1 - true - Label - 102 - false - 7b256c5c:150b979c7e3:-761d - 48 - 303 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 2 - Label_74 - - - true - true - false - - - Next ATS Time - - true - 1 - true - Label - 102 - false - 7b256c5c:150b979c7e3:-75d7 - 48 - 550 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 2 - Label_75 - - - true - true - false - - - Next RTS Time - - true - 1 - true - Label - 102 - false - 7b256c5c:150b979c7e3:-75d2 - 48 - 531 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 2 - Label_77 - - - true - true - false - - - ATP Free Bytes - - true - 1 - true - Label - 102 - false - 7b256c5c:150b979c7e3:-75c8 - 48 - 512 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 2 - Label_78 - - - true - true - false - - - ATP Cmd Number - - true - 1 - true - Label - 129 - false - 7b256c5c:150b979c7e3:-75c3 - 21 - 493 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 2 - Label_79 - - - true - true - false - - - Append Load Count - - true - 1 - true - Label - 129 - false - 7b256c5c:150b979c7e3:-75be - 21 - 474 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 2 - Label_80 - - - true - true - false - - - Append Byte Count - - true - 1 - true - Label - 129 - false - 7b256c5c:150b979c7e3:-75b9 - 21 - 455 + Action Button + 175 + -10b748b0:17773fb054b:-75e5 + 66 + 417 - - - false + + + + QueryOutputChannel.opi + + true + + 1 + + + + false + false - + + false @@ -2393,12 +1666,16 @@ $(pv_value) Default + false 20 - 2 - Label_81 + + Action Button_2 + 0 + + true @@ -2406,144 +1683,35 @@ $(pv_value) false - Append Entry Count - - true - 1 + + Query Output Channel + false + $(pv_name) +$(pv_value) true - Label - 129 - false - 7b256c5c:150b979c7e3:-75b4 - 21 + Action Button + 175 + -10b748b0:17773fb054b:-75dd + 66 436 - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 2 - Label_82 - - - true - true - false - - - Last ATS Err Cmd - - true - 1 - true - Label - 129 - false - 7b256c5c:150b979c7e3:-75af - 21 - 360 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 2 - Label_83 - - - true - true - false - - - Last ATS Err Seq - - true - 1 - true - Label - 102 - false - 7b256c5c:150b979c7e3:-75aa - 48 - 341 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 2 - Label_84 - - - true - true - false - - - Last RTS Err Seq - - true - 1 - true - Label - 102 - false - 7b256c5c:150b979c7e3:-75a5 - 48 - 379 - - - - false + + + + SendDiag.opi + + true + + 1 + + + + false + false - + + false @@ -2553,12 +1721,16 @@ $(pv_value) Default + false 20 - 2 - Label_85 + + Action Button_5 + 0 + + true @@ -2566,24 +1738,36 @@ $(pv_value) false - RTS Cmd Err Ctr - - true - 1 + + Send Diag + false + $(pv_name) +$(pv_value) true - Label - 102 - false - 7b256c5c:150b979c7e3:-75a0 - 48 - 322 + Action Button + 175 + -10b748b0:17773fb054b:-75d5 + 66 + 455 - - - false + + + + + + true + + + + false + false - + + false @@ -2593,12 +1777,16 @@ $(pv_value) Default + false - + 20 - 2 - Label_86 + ../../Resources/send.png + NoOp_3 + 0 + + true @@ -2606,24 +1794,36 @@ $(pv_value) false - Append Cmd Arg - - true - 1 + + SendHK + false + $(pv_name) +$(pv_value) true - Label - 123 - false - 7b256c5c:150b979c7e3:-759b - 27 - 417 + Action Button + 175 + -10b748b0:17773fb054b:-75cd + 66 + 474 - - - false + + + + + + true + + + + false + false - + + false @@ -2633,12 +1833,16 @@ $(pv_value) Default + false - + 20 - 2 - Label_87 + ../../Resources/send.png + NoOp_4 + 0 + + true @@ -2646,16 +1850,16 @@ $(pv_value) false - Last Err Cmd - - true - 1 + + Send Telemetry + false + $(pv_name) +$(pv_value) true - Label - 102 - false - 7b256c5c:150b979c7e3:-7596 - 48 - 398 + Action Button + 175 + -10b748b0:17773fb054b:-75c5 + 66 + 493 \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/TO/QueryMessageFlow.opi b/core/base/tools/commander/workspace_template/Displays/Apps/TO/QueryMessageFlow.opi new file mode 100644 index 000000000..ad55df71b --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/Apps/TO/QueryMessageFlow.opi @@ -0,0 +1,234 @@ + + + + + false + -1 + -1 + + false + + + + 1.5.3 + + + + 6 + 100 + + true + + TO - Query Msg Flow + + + true + true + true + true + true + Display + 220 + -10b748b0:17773fb054b:-7a2f + -1 + -1 + + + false + + + + + + + 0 + 1 + true + + Default Bold + + + + + 20 + 1 + Label_49 + + + true + true + false + + + Query Message Flow + + true + 1 + true + Label + 182 + false + -10b748b0:17773fb054b:-7a20 + 18 + 12 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label + + + true + true + false + + + Message ID + + true + 1 + true + Label + 85 + false + -10b748b0:17773fb054b:-7a0f + 6 + 36 + + + + + + + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 20 + ../../Resources/send.png + NoOp + 0 + + + + + true + true + false + + + + Query + false + $(pv_name) +$(pv_value) + true + Action Button + 84 + -10b748b0:17773fb054b:-79c7 + 67 + 66 + + + + false + false + false + + + + true + + + + 1 + 1 + + true + + Default + + false + + + + 0 + 20 + 0 + false + 1.7976931348623157E308 + -1.7976931348623157E308 + false + MsgID + 0 + true + loc://TO_QueryMessageFlow_MsgID<VString> + + 0.0 + + + true + true + false + + + 0 + true + + + $(pv_name) +$(pv_value) + false + true + Text Input + 103 + -10b748b0:17773fb054b:-78ff + 102 + 36 + + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/TO/QueryOutputChannel.opi b/core/base/tools/commander/workspace_template/Displays/Apps/TO/QueryOutputChannel.opi new file mode 100644 index 000000000..879b0f814 --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/Apps/TO/QueryOutputChannel.opi @@ -0,0 +1,135 @@ + + + + + false + -1 + -1 + + false + + + + 1.5.3 + + + + 6 + 100 + + true + + TO - Query Output + + + true + true + true + true + true + Display + 220 + -10b748b0:17773fb054b:-7a2f + -1 + -1 + + + false + + + + + + + 0 + 1 + true + + Default Bold + + + + + 20 + 1 + Label_49 + + + true + true + false + + + Query Output Queue + + true + 1 + true + Label + 182 + false + -10b748b0:17773fb054b:-7a20 + 18 + 12 + + + + + + + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 20 + ../../Resources/send.png + NoOp + 0 + + + + + true + true + false + + + + Query + false + $(pv_name) +$(pv_value) + true + Action Button + 84 + -10b748b0:17773fb054b:-79c7 + 67 + 66 + + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/TO/QueryPriorityQueue.opi b/core/base/tools/commander/workspace_template/Displays/Apps/TO/QueryPriorityQueue.opi new file mode 100644 index 000000000..6457ba542 --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/Apps/TO/QueryPriorityQueue.opi @@ -0,0 +1,234 @@ + + + + + false + -1 + -1 + + false + + + + 1.5.3 + + + + 6 + 100 + + true + + TO - Query Priority Queue + + + true + true + true + true + true + Display + 240 + -10b748b0:17773fb054b:-7a2f + -1 + -1 + + + false + + + + + + + 0 + 1 + true + + Default Bold + + + + + 20 + 1 + Label_49 + + + true + true + false + + + Query Priority Queue + + true + 1 + true + Label + 182 + false + -10b748b0:17773fb054b:-7a20 + 36 + 12 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_3 + + + true + true + false + + + PQueue Index + + true + 1 + true + Label + 109 + false + -10b748b0:17773fb054b:-79df + 12 + 36 + + + + + + + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 20 + ../../Resources/send.png + NoOp + 0 + + + + + true + true + false + + + + Query + false + $(pv_name) +$(pv_value) + true + Action Button + 72 + -10b748b0:17773fb054b:-79c7 + 84 + 66 + + + + false + false + false + + + + true + + + + 1 + 1 + + true + + Default + + false + + + + 0 + 20 + 0 + false + 1.7976931348623157E308 + -1.7976931348623157E308 + false + PQueueIdx + 0 + true + loc://TO_QueryPriorityQueue_PQueueId<VString> + + 0.0 + + + true + true + false + + + 0 + true + + + $(pv_name) +$(pv_value) + false + true + Text Input + 100 + -10b748b0:17773fb054b:-78ef + 132 + 36 + + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/TO/RemoveMessageFlow.opi b/core/base/tools/commander/workspace_template/Displays/Apps/TO/RemoveMessageFlow.opi new file mode 100644 index 000000000..43e8ccf3d --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/Apps/TO/RemoveMessageFlow.opi @@ -0,0 +1,234 @@ + + + + + false + -1 + -1 + + false + + + + 1.5.3 + + + + 6 + 100 + + true + + TO - Remove Message Flow + + + true + true + true + true + true + Display + 220 + -10b748b0:17773fb054b:-7a2f + -1 + -1 + + + false + + + + + + + 0 + 1 + true + + Default Bold + + + + + 20 + 1 + Label_49 + + + true + true + false + + + Remove Message Flow + + true + 1 + true + Label + 182 + false + -10b748b0:17773fb054b:-7a20 + 18 + 12 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label + + + true + true + false + + + Message ID + + true + 1 + true + Label + 85 + false + -10b748b0:17773fb054b:-7a0f + 6 + 36 + + + + + + + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 20 + ../../Resources/send.png + NoOp + 0 + + + + + true + true + false + + + + Remove + false + $(pv_name) +$(pv_value) + true + Action Button + 90 + -10b748b0:17773fb054b:-79c7 + 64 + 66 + + + + false + false + false + + + + true + + + + 1 + 1 + + true + + Default + + false + + + + 0 + 20 + 0 + false + 1.7976931348623157E308 + -1.7976931348623157E308 + false + MsgID + 0 + true + loc://TO_RemoveMessageFlow_MsgID<VString> + + 0.0 + + + true + true + false + + + 0 + true + + + $(pv_name) +$(pv_value) + false + true + Text Input + 103 + -10b748b0:17773fb054b:-78ff + 102 + 36 + + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/TO/SendDiag.opi b/core/base/tools/commander/workspace_template/Displays/Apps/TO/SendDiag.opi new file mode 100644 index 000000000..720ed37d0 --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/Apps/TO/SendDiag.opi @@ -0,0 +1,2095 @@ + + + + + false + -1 + -1 + + false + + + + 1.5.3 + + + + 6 + 100 + + true + + TO - Send Diag + + + true + true + true + true + true + Display + 220 + -10b748b0:17773fb054b:-7a2f + -1 + -1 + + + false + + + + + + + 0 + 1 + true + + Default Bold + + + + + 20 + 1 + Label_49 + + + true + true + false + + + Send Diag + + true + 1 + true + Label + 182 + false + -10b748b0:17773fb054b:-7a20 + 18 + 12 + + + + + + + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 20 + ../../Resources/send.png + NoOp + 0 + + + + + true + true + false + + + + Query + false + $(pv_name) +$(pv_value) + true + Action Button + 84 + -10b748b0:17773fb054b:-79c7 + 67 + 66 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update + 0 + false + /cfs/to/TO_ChannelDiagTlm_t.ChannelIndex + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + -10b748b0:17773fb054b:-7381 + 168 + 164 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label + + + true + true + false + + + Channel Index + + true + 1 + true + Label + 100 + false + -10b748b0:17773fb054b:-7342 + 58 + 164 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_1 + 0 + false + /cfs/to/TO_ChannelDiagTlm_t.TableID + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + -10b748b0:17773fb054b:-7333 + 168 + 259 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_2 + + + true + true + false + + + Table ID + + true + 1 + true + Label + 100 + false + -10b748b0:17773fb054b:-7332 + 58 + 259 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 3 + 20 + 0 + Text Update_2 + 0 + false + /cfs/to/TO_ChannelDiagTlm_t.MemPoolHandle + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + -10b748b0:17773fb054b:-7321 + 168 + 278 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_3 + + + true + true + false + + + MemPool Handle + + true + 1 + true + Label + 122 + false + -10b748b0:17773fb054b:-7320 + 36 + 278 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_3 + 0 + false + /cfs/to/TO_ChannelDiagTlm_t.MemFullCount + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + -10b748b0:17773fb054b:-7309 + 168 + 297 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_4 + + + true + true + false + + + Mem Full Count + + true + 1 + true + Label + 122 + false + -10b748b0:17773fb054b:-7308 + 36 + 297 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_5 + 0 + false + /cfs/to/TO_ChannelDiagTlm_t.ChannelName + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + -10b748b0:17773fb054b:-72e2 + 168 + 145 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_6 + + + true + true + false + + + Channel Name + + true + 1 + true + Label + 122 + false + -10b748b0:17773fb054b:-72e1 + 36 + 145 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_6 + 0 + false + /cfs/to/TO_ChannelDiagTlm_t.State + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + -10b748b0:17773fb054b:-72d3 + 168 + 183 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_7 + + + true + true + false + + + State + + true + 1 + true + Label + 122 + false + -10b748b0:17773fb054b:-72d2 + 36 + 183 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_7 + 0 + false + /cfs/to/TO_ChannelDiagTlm_t.ConfigTableName + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + -10b748b0:17773fb054b:-72c4 + 168 + 202 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_8 + + + true + true + false + + + Config Table Name + + true + 1 + true + Label + 133 + false + -10b748b0:17773fb054b:-72c3 + 25 + 202 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_8 + 0 + false + /cfs/to/TO_ChannelDiagTlm_t.DumpTableName + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + -10b748b0:17773fb054b:-72b1 + 168 + 240 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_9 + + + true + true + false + + + Dump Table Name + + true + 1 + true + Label + 133 + false + -10b748b0:17773fb054b:-72b0 + 25 + 240 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_9 + 0 + false + /cfs/to/TO_ChannelDiagTlm_t.ConfigTableFileName + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + -10b748b0:17773fb054b:-729c + 168 + 221 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_10 + + + true + true + false + + + Config Table File Name + + true + 1 + true + Label + 162 + false + -10b748b0:17773fb054b:-729b + -4 + 221 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_11 + + + true + true + false + + + Dropped Msg Count + + true + 1 + true + Label + 139 + false + -10b748b0:17773fb054b:-7290 + 330 + 134 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_12 + + + true + true + false + + + Queued Msg Count + + true + 1 + true + Label + 139 + false + -10b748b0:17773fb054b:-7286 + 330 + 96 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_13 + + + true + true + false + + + Currently Queued Count + + true + 1 + true + Label + 163 + false + -10b748b0:17773fb054b:-727c + 306 + 115 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_14 + + + true + true + false + + + Highwater Mark + + true + 1 + true + Label + 163 + false + -10b748b0:17773fb054b:-7272 + 306 + 153 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_15 + + + true + true + false + + + Message Limit + + true + 1 + true + Label + 163 + false + -10b748b0:17773fb054b:-7268 + 306 + 172 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_16 + + + true + true + false + + + State + + true + 1 + true + Label + 163 + false + -10b748b0:17773fb054b:-725e + 306 + 191 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_17 + + + true + true + false + + + Queue Type + + true + 1 + true + Label + 163 + false + -10b748b0:17773fb054b:-7254 + 306 + 210 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_10 + 0 + false + /cfs/to/TO_ChannelDiagTlm_t.PQueue_0_.DroppedMsgCnt + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + -10b748b0:17773fb054b:-724a + 480 + 134 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_11 + 0 + false + /cfs/to/TO_ChannelDiagTlm_t.PQueue_0_.QueuedMsgCnt + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + -10b748b0:17773fb054b:-7245 + 480 + 96 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_12 + 0 + false + /cfs/to/TO_ChannelDiagTlm_t.PQueue_0_.CurrentlyQueuedCnt + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + -10b748b0:17773fb054b:-7240 + 480 + 115 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_13 + 0 + false + /cfs/to/TO_ChannelDiagTlm_t.PQueue_0_.HighwaterMark + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + -10b748b0:17773fb054b:-723b + 480 + 153 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_14 + 0 + false + /cfs/to/TO_ChannelDiagTlm_t.PQueue_0_.MsgLimit + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + -10b748b0:17773fb054b:-7236 + 480 + 172 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_15 + 0 + false + /cfs/to/TO_ChannelDiagTlm_t.PQueue_0_.State + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + -10b748b0:17773fb054b:-7231 + 480 + 191 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_16 + 0 + false + /cfs/to/TO_ChannelDiagTlm_t.PQueue_0_.QType + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + -10b748b0:17773fb054b:-722c + 480 + 210 + + + + false + + + + + + + 0 + 1 + true + + Default Bold + + + + + 20 + 1 + Label_18 + + + true + true + false + + + Priority Queue Diag + + true + 1 + true + Label + 182 + false + -10b748b0:17773fb054b:-7224 + 366 + 72 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_19 + + + true + true + false + + + Sent Count + + true + 1 + true + Label + 139 + false + -10b748b0:17773fb054b:-71f0 + 318 + 327 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_20 + + + true + true + false + + + Currently Queued Count + + true + 1 + true + Label + 163 + false + -10b748b0:17773fb054b:-71ef + 294 + 365 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_21 + + + true + true + false + + + Highwater Mark + + true + 1 + true + Label + 163 + false + -10b748b0:17773fb054b:-71ee + 294 + 384 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_22 + + + true + true + false + + + Bytes Sent + + true + 1 + true + Label + 163 + false + -10b748b0:17773fb054b:-71ed + 294 + 346 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_17 + 0 + false + /cfs/to/TO_ChannelDiagTlm_t.OQueue.SentCount + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + -10b748b0:17773fb054b:-71e9 + 468 + 327 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_18 + 0 + false + /cfs/to/TO_ChannelDiagTlm_t.OQueue.CurrentlyQueuedCnt + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + -10b748b0:17773fb054b:-71e8 + 468 + 365 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_19 + 0 + false + /cfs/to/TO_ChannelDiagTlm_t.OQueue.HighwaterMark + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + -10b748b0:17773fb054b:-71e7 + 468 + 384 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_20 + 0 + false + /cfs/to/TO_ChannelDiagTlm_t.OQueue.SentBytes + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + -10b748b0:17773fb054b:-71e6 + 468 + 346 + + + + false + + + + + + + 0 + 1 + true + + Default Bold + + + + + 20 + 1 + Label_26 + + + true + true + false + + + Output Queue + + true + 1 + true + Label + 182 + false + -10b748b0:17773fb054b:-71e2 + 354 + 297 + + + + false + + + + + + + 0 + 1 + true + + Default Bold + + + + + 20 + 1 + Label_27 + + + true + true + false + + + Channel Diag + + true + 1 + true + Label + 182 + false + -10b748b0:17773fb054b:-718a + 58 + 115 + + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/TO/scripts/NoOp.js b/core/base/tools/commander/workspace_template/Displays/Apps/TO/scripts/NoOp.js deleted file mode 100644 index dcb9c4808..000000000 --- a/core/base/tools/commander/workspace_template/Displays/Apps/TO/scripts/NoOp.js +++ /dev/null @@ -1,4 +0,0 @@ -importPackage(Packages.org.csstudio.opibuilder.scriptUtil); -importPackage(Packages.org.yamcs.studio.script); - -Yamcs.issueCommand('/cfs/to/Noop', {}); \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/TO/scripts/ResetCounters.js b/core/base/tools/commander/workspace_template/Displays/Apps/TO/scripts/ResetCounters.js deleted file mode 100644 index e48710dc4..000000000 --- a/core/base/tools/commander/workspace_template/Displays/Apps/TO/scripts/ResetCounters.js +++ /dev/null @@ -1,4 +0,0 @@ -importPackage(Packages.org.csstudio.opibuilder.scriptUtil); -importPackage(Packages.org.yamcs.studio.script); - -Yamcs.issueCommand('/cfs/to/Reset', {}); \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Core/TBL/ViewRegistry.opi b/core/base/tools/commander/workspace_template/Displays/Core/TBL/ViewRegistry.opi index d5f9c98d6..c303cd0bf 100644 --- a/core/base/tools/commander/workspace_template/Displays/Core/TBL/ViewRegistry.opi +++ b/core/base/tools/commander/workspace_template/Displays/Core/TBL/ViewRegistry.opi @@ -15,7 +15,7 @@ 6 - 470 + 460 true @@ -28,7 +28,7 @@ true true Display - 290 + 390 35ebaa52:1509cf6a868:-791f -1 -1 @@ -90,7 +90,7 @@ $(pv_value) Action Button 163 35ebaa52:1509cf6a868:-78ea - 60 + 114 72 @@ -130,7 +130,7 @@ $(pv_value) 81 false 35ebaa52:1509cf6a868:-78e9 - 19 + 73 42 @@ -187,7 +187,7 @@ $(pv_value) Text Input 153 35ebaa52:1509cf6a868:-78e7 - 111 + 165 42 @@ -217,7 +217,7 @@ $(pv_value) 0 Text Update 0 - true + false /cfs/cfe_tbl/CFE_TBL_TblRegPacket_t.Payload.Size 0.0 @@ -236,7 +236,7 @@ $(pv_value) 1 true Text Update - 115 + 199 false 35ebaa52:1509cf6a868:-777b 174 @@ -264,12 +264,12 @@ $(pv_value) - 0 + 3 20 0 Text Update_1 0 - true + false /cfs/cfe_tbl/CFE_TBL_TblRegPacket_t.Payload.Crc 0.0 @@ -288,7 +288,7 @@ $(pv_value) 1 true Text Update - 115 + 199 false 35ebaa52:1509cf6a868:-777a 174 @@ -316,12 +316,12 @@ $(pv_value) - 0 + 3 20 0 Text Update_3 0 - true + false /cfs/cfe_tbl/CFE_TBL_TblRegPacket_t.Payload.InactiveBufferAddr 0.0 @@ -340,7 +340,7 @@ $(pv_value) 1 true Text Update - 115 + 199 false 35ebaa52:1509cf6a868:-7778 174 @@ -368,12 +368,12 @@ $(pv_value) - 0 + 3 20 0 Text Update_4 0 - true + false /cfs/cfe_tbl/CFE_TBL_TblRegPacket_t.Payload.ValidationFuncPtr 0.0 @@ -392,7 +392,7 @@ $(pv_value) 1 true Text Update - 115 + 199 false 35ebaa52:1509cf6a868:-7777 174 @@ -420,12 +420,12 @@ $(pv_value) - 0 + 1 20 0 Text Update_6 0 - true + false /cfs/cfe_tbl/CFE_TBL_TblRegPacket_t.Payload.TimeOfLastUpdate.Seconds 0.0 @@ -444,7 +444,7 @@ $(pv_value) 1 true Text Update - 115 + 199 false 35ebaa52:1509cf6a868:-7775 174 @@ -472,12 +472,12 @@ $(pv_value) - 0 + 1 20 0 Text Update_7 0 - true + false /cfs/cfe_tbl/CFE_TBL_TblRegPacket_t.Payload.TimeOfLastUpdate.Subseconds 0.0 @@ -496,7 +496,7 @@ $(pv_value) 1 true Text Update - 115 + 199 false 35ebaa52:1509cf6a868:-7774 174 @@ -524,12 +524,12 @@ $(pv_value) - 0 + 1 20 0 Text Update_8 0 - true + false /cfs/cfe_tbl/CFE_TBL_TblRegPacket_t.Payload.FileCreateTimeSecs 0.0 @@ -548,7 +548,7 @@ $(pv_value) 1 true Text Update - 115 + 199 false 35ebaa52:1509cf6a868:-7773 174 @@ -576,12 +576,12 @@ $(pv_value) - 0 + 1 20 0 Text Update_9 0 - true + false /cfs/cfe_tbl/CFE_TBL_TblRegPacket_t.Payload.FileCreateTimeSubSecs 0.0 @@ -600,7 +600,7 @@ $(pv_value) 1 true Text Update - 115 + 199 false 35ebaa52:1509cf6a868:-7772 174 @@ -628,7 +628,7 @@ $(pv_value) - 0 + 4 20 0 Text Update_14 @@ -652,7 +652,7 @@ $(pv_value) 1 true Text Update - 115 + 199 false 35ebaa52:1509cf6a868:-776d 174 @@ -704,7 +704,7 @@ $(pv_value) 1 true Text Update - 115 + 199 false 35ebaa52:1509cf6a868:-776c 174 @@ -756,7 +756,7 @@ $(pv_value) 1 true Text Update - 115 + 199 false 35ebaa52:1509cf6a868:-776b 174 @@ -1064,12 +1064,12 @@ $(pv_value) - 0 + 3 20 0 Text Update_18 0 - true + false /cfs/cfe_tbl/CFE_TBL_TblRegPacket_t.Payload.ActiveBufferAddr 0.0 @@ -1088,7 +1088,7 @@ $(pv_value) 1 true Text Update - 115 + 199 false 35ebaa52:1509cf6a868:-76ca 174 @@ -1562,46 +1562,6 @@ $(pv_value) 36 405 - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 2 - Label_24 - - - true - true - false - - - Last File Loaded - - true - 1 - true - Label - 113 - false - 35ebaa52:1509cf6a868:-761f - 53 - 424 - false @@ -1647,7 +1607,7 @@ $(pv_value) 24 35ebaa52:1509cf6a868:-7613 176 - 443 + 424 @@ -1687,7 +1647,7 @@ $(pv_value) false 35ebaa52:1509cf6a868:-760b 53 - 443 + 424 @@ -1726,61 +1686,9 @@ $(pv_value) 231 false 6b3345f4:17760d4a2f0:-736d - 26 + 80 12 - - - false - false - false - - - - true - - - - 1 - 1 - true - - Default - - false - - - - 0 - 20 - 0 - Text Update_19 - 0 - true - /cfs/cfe_tbl/CFE_TBL_TblRegPacket_t.Payload.LastFileLoaded - - 0.0 - - - true - true - false - - - true - ###### - $(pv_name) -$(pv_value) - false - 1 - true - Text Update - 115 - false - -72117af8:1776e577886:-78d4 - 174 - 424 - false diff --git a/core/base/tools/commander/workspace_template/etc/yamcs.yamcs-cfs.yaml b/core/base/tools/commander/workspace_template/etc/yamcs.yamcs-cfs.yaml index 977c2c50f..3fb6aef21 100644 --- a/core/base/tools/commander/workspace_template/etc/yamcs.yamcs-cfs.yaml +++ b/core/base/tools/commander/workspace_template/etc/yamcs.yamcs-cfs.yaml @@ -24,6 +24,9 @@ services: - class: org.yamcs.tctm.cfs.CfsEventDecoder args: msgIds: [0x0808] + byteOrder: LITTLE_ENDIAN + appNameMax: 40 + eventMsgMax: 122 - class: org.yamcs.cfdp.CfdpService name: cfdp0 args: diff --git a/core/base/tools/commander/workspace_template/lib/yamcs-cfs-1.0.4.jar b/core/base/tools/commander/workspace_template/lib/yamcs-cfs-1.0.4.jar index bf07a08e822b40f6e31f5d7882e5bdcb31fbdc32..0ba7c778429194e7dac70c07ee3ccc6db7a2fc05 100644 GIT binary patch delta 2208 zcmZ{leK^y58^AYP48vw4Z#mfJv{(!6;5tv8&T~EA>-v4~-}k=m&wYJ=zx$8Rd(?!1(g89E ztN>VF0q00OCA7T%Ig;C00kw;p_c06R>5^HUR(+6#)POp8?e8w*s|T?ubLkRUFfp zO#(so8(sD819yASLka2_AXTMb1_IBm1 zIOWw$&C1GSOkcJ=zaQIWu^2l#HJR2FF)AAg*h7j$7QyEYFa}%f00Fom&IgELBsbqM zmj^##eLGDB1?X@WBQ4IjxATK}`mEoo`ypKe6VvmvM2%;15tjKSm{9>If@?{1vR8cebawnO1R278FnzJ1(B7rgwk%O}E^PS~3@ z?@C;pgsy$0$>)d57+1E5!+H(KFRkObepZ}or#>Bj2iF@2hfJphQ%Vop=i!#p+lVLw zrq@RonIBk$$;3IbGOD{+j0I-64Jc%)X5Ap3PuH(Ccd|WSf)<6y$j+iVMPq%6qa!r} zdrRz3v$$Sk8eU3 zZuJ9RWp6RZ7n~(6i2U*Ce+nwL`f1msbYn7)vi9w8EuMa3c!Sy@%+;jiYvf}#ty28k z`{!lEU`7`%CmSI(Lx^+Qs}zi&Ezv>9yo>fG@|%x-xHwm7rfKAwm;Fjro)$?+QKLth zbX-z;+A#k<>(>WruDnP%o^v=OQvNcgfqj|e!;>h`u7})k?ycBD#!^j!9~uv7H^<>v zoWao3D2|A|>qB-@Ev6wMb`yHmVnTIvoIZM40<_7Lz-_W6@-}LEW5M62_hhLq1Ug7x z(fUKt^~XpbonP*ptS&r`y%eM+}GKOjz!;s#&P^;UAe@?8dcYUYT+2fK%4=ENDUZC8QN_B8?yj!le z)X$7tL7jAYT}4hvi{#N2r@-vxipGl2ou0^%W4-gj=wFl{M9nx#G;KEDDII;q`t38b z*s}DI7m76fe))nS>X@BxVR-6bS3Yy_029-Ss0QVal?n|{nUqMLl{cG84?f^(=Z6hgRuZKIlwvAjJqDEDURRIkV%86C8^v{}2ae`I^-_N?L6 zfIqekHsv0EMsY7Vd9^vi;G8J=EOq6;FSqfDi6zj}zl|Yx*MF|Kw%fs%!Xm14Gv#!P ztJAic&5sb5i&x@jVCC0tuByufm+ODh-rE$nE2gI|UUc5En|pRz#A4M?m;S3MaU=;e zij6}$2)jCvk8X*9H6hMQYeh48#aBOO=h$Awo5|5tp886o<%PEcKzX-@ z;y|vZAKw1@QvBb&fE8bepcm-TiMtLWF&K$nGSVMg;|~ANlmfv!R6h6GtIxt?V8m#IYj(jttw>*-y)$R{Yq?_6F>zUwBIqQ3Ww4 zYwfTTo`!HSV>j(UzdpM2(dnY>bp1yN^F{SKtgQ;|KA(NZF<-*SIHRf4f)KJ$!an#J z@@aOQ@A&C63A%#vHXDj*umswmXuuHpqq9vC8f z29bydTmvMEr>!OJ^!_{bur(lJ?Xma* SuHSMM$``=Nvdv2C+5Z5v1CUh! delta 2310 zcmZXVc{~(q7stmw#EhjH(}c0_+mwC0QCx&Dh-4}ISjXBR4Uuct7)#bdwz0%y9nv+H zLdiPh5)-2At&-&(?tANf@B4f{&vQQKoZtDJ=Q+`Ve~dgcU1qG-c3r5aSVTsqV|Ifr@s;A>9A}(?2md*( zeWO(DxW;NdYA+{iv?^+SC-50xl-E(q1{+teWA$sH7LgcCM&4P*}3?shy&5X@xb8_K% z-J~a|FHMk|6mCOXw8HL)>8%d>c#%NL}g27{p*rPo2Pkseo1-8elUVfNu>^uzZp#LDkGkndga6J|;c zdOJ9IEz2>@eEEuGg8`oRSsJ*WIwJC^*UjF=hYfGBkeKRspU>XW;}gDq&4`=@SGMBK zjI}B#`l5i5_>qPG`ifd=Pcka{w3S{r@QNW15hv_Z@p`La%D&zCQ)pZy9>J6PCKIjN zQ%6cZ8E4-A(I@5GvIwRM^2{|)U91yNqY!ZQ&{0m=ccwyC1xDofYx(K*Jl{sOU6C1;>_@bwh8M#?4^R4+Q_u~3hpa`-+M0K)En4W(g2i#HY;rR?Tryb!y75+1P%026%}~mR6cdPun*)9ohhs# zlid(wAAJT3q`9Hg-!6J%isZx{s!j4*pR{}GWb!CeU0bx4jN!Z|LhPQEO9L-7Wqv)2 zH@KJ}cz>~*Y%H!PKx{p&R+-+MwGx_S*mFE3>8g0PGn+$|PBDn@iku`%<+00U1llLMjbS`Sn)t) z=yCg>W7Q2pIZ6qs#JD18ma4ezt+=new?H?*7y<;<{0F;UxPCIFJ6HBVk7mvDAkDA^ zK7Vx=Uc#3#1Y6P`eTnu?e73U(i9VH~soUfAn%T}b^p+$|GSTI!n<*}gIW_-mUpU2F zz@Xg?mnmX7X5$&cW_`vNQ{IZHGjW_*pW8G^JvisyxiI2UlGMu1s9D;ERG@iy?cWF% zA~u#TF1MK#ozpRE#Ws8Tl{v7e4rjv`5lut-^YiNQf(9gnEjR3wpY$}hG` zQDiC*ii*UXRB@HCa?1OCI#e``yyMo;@A6$Gwy($7*QUN0k+!3~LZOYyKFsr&Vp_Sp zT3VSnXrsbh>%163O7Qlq=oa!^t?(oIRrI@rw2hgM!%Oe@;N}>oBE7xeRjc4r;-cz8 z(`=2LLmt@<_mMT`W4ou2)W+HYm&g_Iz^5Z@MKRX^g1RSaT)W?=N7VDN+pQU>?d=R- zaO!2dtDoKh3g42Aj(~P8(Bi?9c*f(+fV>`%rdbVR*zHhAC-m7BWPB)TA_a}qs{)`K zHah>7fEjqG zv;L6)Bk*wP!&!c+>Gk#m1t~ zUVN@$K1R*L^S4^8hrVV>$(vB^5G?fma<%BBSoXbOxQpqrNBPtZdCq^yzk{f>k8TMS za$sr$+?~>RZ0 z&-kArKtpsgT_a2fzUa}g>%lNa1duQY7C3U(>8=xypbQi}yvk8Xn;XVhco Date: Sun, 7 Feb 2021 17:39:29 -0600 Subject: [PATCH 057/370] Added an override to the yaml file. --- apps/cfs_lib/wh_design.yaml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/apps/cfs_lib/wh_design.yaml b/apps/cfs_lib/wh_design.yaml index 63910e9f7..f4e78edd2 100644 --- a/apps/cfs_lib/wh_design.yaml +++ b/apps/cfs_lib/wh_design.yaml @@ -2,5 +2,9 @@ short_name: cfs_lib long_name: CFS Library events: + msg_def_overrides: + - parent: CFS_SymAddr_t + member: SymName + type: string telemetry: commands: From e4cd739ab0b5b8fb5794291be0ddaaf6d8256484 Mon Sep 17 00:00:00 2001 From: Mathew Benson Date: Sun, 7 Feb 2021 17:39:41 -0600 Subject: [PATCH 058/370] Fixed typo in yaml file. --- apps/flow/wh_design.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/flow/wh_design.yaml b/apps/flow/wh_design.yaml index 9e4d2df3d..cb89dc368 100644 --- a/apps/flow/wh_design.yaml +++ b/apps/flow/wh_design.yaml @@ -1 +1 @@ - short_name: flow long_name: Optical Flow events: FLOW_INIT_INF_EID: id: 1 FLOW_CMD_NOOP_EID: id: 2 FLOW_SUBSCRIBE_ERR_EID: id: 3 FLOW_PIPE_INIT_ERR_EID: id: 4 FLOW_CFGTBL_MANAGE_ERR_EID: id: 5 FLOW_CFGTBL_GETADDR_ERR_EID: id: 6 FLOW_RCVMSG_ERR_EID: id: 7 FLOW_MSGID_ERR_EI: id: 8 FLOW_CC_ERR_EID: id: 9 FLOW_MSGLEN_ERR_EID: id: 10 FLOW_CFGTBL_REG_ERR_EID: id: 11 FLOW_CFGTBL_LOAD_ERR_EI: id: 12 FLOW_CFGTBL_VALIDATE_ERR_EID: id: 13 FLOW_CMD_ACCEPTED_EID: id: 14 FLOW_CMD_REJECTED_ERR_EID: id: 15 FLOW_BUF_ORUN_ERR_EID: id: 16 telemetry: FLOW_HK_TLM_MID: msgID: struct: FLOW_HkTlm_t FLOW_DIAG_TLM_MID: msgID: struct: FLOW_DiagPacket_t commands: FLOW_CMD_MID: msgid: commands: Noop: cc: 0 struct: FLOW_NoArgCmd_t Reset: cc: 1 struct: FLOW_NoArgCmd_t FLOW_SEND_HK_MID: msgid: commands: SendHK: cc: 0 struct: FLOW_NoArgCmd_t FLOW_WAKEUP_MID: msgid: commands: WakeUp: cc: 0 struct: FLOW_NoArgCmd_t perfids: FLOW_MAIN_TASK_PERF_ID: id: FLOW_COMPUTE_PERF_ID: id: config: FLOW_SB_TIMEOUT: name: FLOW_SB_TIMEOUT value: CFE_SB_PEND_FOREVER FLOW_MISSION_REV: name: FLOW_MISSION_REV value: 0 FLOW_SCH_PIPE_DEPTH: name: FLOW_SCH_PIPE_DEPTH value: 2 FLOW_SCH_PIPE_NAME: name: FLOW_SCH_PIPE_NAME value: FLOW_SCH_PIPE FLOW_SCH_PIPE_PEND_TIME: name: FLOW_SCH_PIPE_PEND_TIME value: 2000 FLOW_WAKEUP_MID_MAX_MSG_COUNT: name: FLOW_WAKEUP_MID_MAX_MSG_COUNT value: 1 FLOW_SEND_HK_MID_MAX_MSG_COUNT: name: FLOW_SEND_HK_MID_MAX_MSG_COUNT value: 1 FLOW_CMD_PIPE_DEPTH: name: FLOW_CMD_PIPE_DEPTH value: 4 FLOW_CMD_PIPE_NAME: name: FLOW_CMD_PIPE_NAME value: FLOW_CMD_PIPE FLOW_DATA_PIPE_DEPTH: name: FLOW_DATA_PIPE_DEPTH value: 4 FLOW_DATA_PIPE_NAME: name: FLOW_DATA_PIPE_NAME value: FLOW_DATA_PIPE FLOW_CONFIG_TABLE_FILENAME: name: FLOW_CONFIG_TABLE_FILENAME value: /cf/apps/flow_config.tbl FLOW_STARTUP_TIMEOUT_MSEC: name: FLOW_STARTUP_TIMEOUT_MSEC value: 1000 FLOW_GYRO_PIPE_DEPTH: name: FLOW_GYRO_PIPE_DEPTH value: 30 FLOW_GYRO_PIPE_NAME: name: FLOW_GYRO_PIPE_NAME value: FLOW_GYRO_PIPE FLOW_SENSOR_GYRO_MAX_MSG_COUNT: name: FLOW_SENSOR_GYRO_MAX_MSG_COUNT value: 25 \ No newline at end of file + short_name: flow long_name: Optical Flow events: FLOW_INIT_INF_EID: id: 1 FLOW_CMD_NOOP_EID: id: 2 FLOW_SUBSCRIBE_ERR_EID: id: 3 FLOW_PIPE_INIT_ERR_EID: id: 4 FLOW_CFGTBL_MANAGE_ERR_EID: id: 5 FLOW_CFGTBL_GETADDR_ERR_EID: id: 6 FLOW_RCVMSG_ERR_EID: id: 7 FLOW_MSGID_ERR_EI: id: 8 FLOW_CC_ERR_EID: id: 9 FLOW_MSGLEN_ERR_EID: id: 10 FLOW_CFGTBL_REG_ERR_EID: id: 11 FLOW_CFGTBL_LOAD_ERR_EI: id: 12 FLOW_CFGTBL_VALIDATE_ERR_EID: id: 13 FLOW_CMD_ACCEPTED_EID: id: 14 FLOW_CMD_REJECTED_ERR_EID: id: 15 FLOW_BUF_ORUN_ERR_EID: id: 16 telemetry: FLOW_HK_TLM_MID: msgID: struct: FLOW_HkTlm_t FLOW_DIAG_TLM_MID: msgID: struct: FLOW_DiagPacket_t commands: FLOW_CMD_MID: msgID: commands: Noop: cc: 0 struct: FLOW_NoArgCmd_t Reset: cc: 1 struct: FLOW_NoArgCmd_t FLOW_SEND_HK_MID: msgID: commands: SendHK: cc: 0 struct: FLOW_NoArgCmd_t FLOW_WAKEUP_MID: msgID: commands: WakeUp: cc: 0 struct: FLOW_NoArgCmd_t perfids: FLOW_MAIN_TASK_PERF_ID: id: FLOW_COMPUTE_PERF_ID: id: config: FLOW_SB_TIMEOUT: name: FLOW_SB_TIMEOUT value: CFE_SB_PEND_FOREVER FLOW_MISSION_REV: name: FLOW_MISSION_REV value: 0 FLOW_SCH_PIPE_DEPTH: name: FLOW_SCH_PIPE_DEPTH value: 2 FLOW_SCH_PIPE_NAME: name: FLOW_SCH_PIPE_NAME value: FLOW_SCH_PIPE FLOW_SCH_PIPE_PEND_TIME: name: FLOW_SCH_PIPE_PEND_TIME value: 2000 FLOW_WAKEUP_MID_MAX_MSG_COUNT: name: FLOW_WAKEUP_MID_MAX_MSG_COUNT value: 1 FLOW_SEND_HK_MID_MAX_MSG_COUNT: name: FLOW_SEND_HK_MID_MAX_MSG_COUNT value: 1 FLOW_CMD_PIPE_DEPTH: name: FLOW_CMD_PIPE_DEPTH value: 4 FLOW_CMD_PIPE_NAME: name: FLOW_CMD_PIPE_NAME value: FLOW_CMD_PIPE FLOW_DATA_PIPE_DEPTH: name: FLOW_DATA_PIPE_DEPTH value: 4 FLOW_DATA_PIPE_NAME: name: FLOW_DATA_PIPE_NAME value: FLOW_DATA_PIPE FLOW_CONFIG_TABLE_FILENAME: name: FLOW_CONFIG_TABLE_FILENAME value: /cf/apps/flow_config.tbl FLOW_STARTUP_TIMEOUT_MSEC: name: FLOW_STARTUP_TIMEOUT_MSEC value: 1000 FLOW_GYRO_PIPE_DEPTH: name: FLOW_GYRO_PIPE_DEPTH value: 30 FLOW_GYRO_PIPE_NAME: name: FLOW_GYRO_PIPE_NAME value: FLOW_GYRO_PIPE FLOW_SENSOR_GYRO_MAX_MSG_COUNT: name: FLOW_SENSOR_GYRO_MAX_MSG_COUNT value: 25 \ No newline at end of file From 1ad745f0796809164894eade6c993de0341a0daa Mon Sep 17 00:00:00 2001 From: Mathew Benson Date: Sun, 7 Feb 2021 17:39:54 -0600 Subject: [PATCH 059/370] Updated YAML file. --- apps/mm/wh_design.yaml | 107 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 107 insertions(+) diff --git a/apps/mm/wh_design.yaml b/apps/mm/wh_design.yaml index 5784b591a..be9169e7b 100644 --- a/apps/mm/wh_design.yaml +++ b/apps/mm/wh_design.yaml @@ -119,6 +119,113 @@ id: 58 MM_PSP_SET_ERR_EID: id: 59 + msg_def_overrides: + - parent: MM_LoadDumpFileHeader_t + member: MemType + type: enumeration + enumerations: + NOMEMTYPE: 0 + RAM: 1 + EEPROM: 2 + MEM8: 3 + MEM16: 4 + MEM32: 5 + - parent: CFS_SymAddr_t + member: SymName + type: string + - parent: MM_PeekCmd_t + member: MemType + type: enumeration + enumerations: + NOMEMTYPE: 0 + RAM: 1 + EEPROM: 2 + MEM8: 3 + MEM16: 4 + MEM32: 5 + - parent: MM_PokeCmd_t + member: MemType + type: enumeration + enumerations: + NOMEMTYPE: 0 + RAM: 1 + EEPROM: 2 + MEM8: 3 + MEM16: 4 + MEM32: 5 + - parent: MM_DumpInEventCmd_t + member: MemType + type: enumeration + enumerations: + NOMEMTYPE: 0 + RAM: 1 + EEPROM: 2 + MEM8: 3 + MEM16: 4 + MEM32: 5 + - parent: MM_LoadMemFromFileCmd_t + member: FileName + type: string + - parent: MM_DumpMemToFileCmd_t + member: MemType + type: enumeration + enumerations: + NOMEMTYPE: 0 + RAM: 1 + EEPROM: 2 + MEM8: 3 + MEM16: 4 + MEM32: 5 + - parent: MM_DumpMemToFileCmd_t + member: FileName + type: string + - parent: MM_FillMemCmd_t + member: MemType + type: enumeration + enumerations: + NOMEMTYPE: 0 + RAM: 1 + EEPROM: 2 + MEM8: 3 + MEM16: 4 + MEM32: 5 + - parent: MM_LookupSymCmd_t + member: SymName + type: string + - parent: MM_SymTblToFileCmd_t + member: FileName + type: string + - parent: MM_HkPacket_t + member: LastAction + type: enumeration + enumerations: + NOACTION: 0 + PEEK: 1 + POKE: 2 + LOAD_FROM_FILE: 3 + LOAD_WID: 4 + DUMP_TO_FILE: 5 + DUMP_INEVENT: 6 + FILL: 7 + SYM_LOOKUP: 8 + SYMTBL_SAVE: 9 + EEPROMWRITE_ENA: 10 + EEPROMWRITE_DIS: 11 + NOOP: 12 + RESET: 13 + - parent: MM_HkPacket_t + member: MemType + type: enumeration + enumerations: + NOMEMTYPE: 0 + RAM: 1 + EEPROM: 2 + MEM8: 3 + MEM16: 4 + MEM32: 5 + - parent: MM_HkPacket_t + member: FileName + type: string telemetry: MM_HK_TLM_MID: msgID: From c2fc0aa0144df87de7838fe01e002f8c3db5e1e0 Mon Sep 17 00:00:00 2001 From: Mathew Benson Date: Sun, 7 Feb 2021 17:40:08 -0600 Subject: [PATCH 060/370] Updated YAML file. --- apps/sc/wh_design.yaml | 37 +++++++++++++++++++++++++++++-------- 1 file changed, 29 insertions(+), 8 deletions(-) diff --git a/apps/sc/wh_design.yaml b/apps/sc/wh_design.yaml index 9cc714d4b..f79996e20 100644 --- a/apps/sc/wh_design.yaml +++ b/apps/sc/wh_design.yaml @@ -209,6 +209,27 @@ id: 121 SC_ENARTSGRP_CMD_ERR_EID: id: 122 + msg_def_overrides: + - parent: SC_HkTlm_t + member: AtsNumber + type: enumeration + enumerations: + NO_ATS: 0 + ATS_A: 1 + ATS_B: 2 + - parent: SC_HkTlm_t + member: AtpState + type: enumeration + enumerations: + EMPTY: 0 + LOADED: 1 + IDLE: 2 + EXECUTED: 3 + SKIPPED: 4 + EXECUTING: 5 + FAILED_CHECKSUM: 6 + FAILED_DISTRIB: 7 + STARTING: 8 telemetry: SC_HK_TLM_MID: msgID: @@ -231,16 +252,16 @@ struct: SC_NoArgsCmd_t StartRts: cc: 4 - struct: SC_NoArgsCmd_t + struct: SC_RtsCmd_t StopRts: cc: 5 - struct: SC_NoArgsCmd_t + struct: SC_RtsCmd_t DisableRts: cc: 6 - struct: SC_NoArgsCmd_t + struct: SC_RtsCmd_t EnableRts: cc: 7 - struct: SC_NoArgsCmd_t + struct: SC_RtsCmd_t SwitchAts: cc: 8 struct: SC_NoArgsCmd_t @@ -258,16 +279,16 @@ struct: SC_NoArgsCmd_t StartRtsGroup: cc: 13 - struct: SC_NoArgsCmd_t + struct: SC_RtsGrpCmd_t StopRtsGroup: cc: 14 - struct: SC_NoArgsCmd_t + struct: SC_RtsGrpCmd_t DisableRtsGroup: cc: 15 - struct: SC_NoArgsCmd_t + struct: SC_RtsGrpCmd_t EnableRtsGroup: cc: 16 - struct: SC_NoArgsCmd_t + struct: SC_RtsGrpCmd_t SC_SEND_HK_MID: msgID: commands: From 08df52a0cd4221c0d396646d5098c51ee0b8ffa0 Mon Sep 17 00:00:00 2001 From: Mathew Benson Date: Sun, 7 Feb 2021 17:40:20 -0600 Subject: [PATCH 061/370] Updated YAML file. --- apps/sch/wh_design.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/sch/wh_design.yaml b/apps/sch/wh_design.yaml index ac8585699..8daad1dc6 100644 --- a/apps/sch/wh_design.yaml +++ b/apps/sch/wh_design.yaml @@ -1 +1 @@ - short_name: sch long_name: Scheduler events: SCH_INITSTATS_INF_EID: id: 1 SCH_APP_EXIT_EID: id: 2 SCH_CR_PIPE_ERR_EID: id: 3 SCH_SUB_HK_REQ_ERR_EID: id: 4 SCH_SUB_GND_CMD_ERR_EID: id: 5 SCH_SDT_REG_ERR_EID: id: 7 SCH_MDT_REG_ERR_EID: id: 8 SCH_SDT_LOAD_ERR_EID: id: 9 SCH_MDT_LOAD_ERR_EID: id: 10 SCH_ACQ_PTR_ERR_EID: id: 11 SCH_MINOR_FRAME_TIMER_CREATE_ERR_EID: id: 12 SCH_MINOR_FRAME_TIMER_ACC_WARN_EID: id: 13 SCH_MAJOR_FRAME_SUB_ERR_EID: id: 14 SCH_SEM_CREATE_ERR_EID: id: 15 SCH_SAME_SLOT_EID: id: 16 SCH_SKIPPED_SLOTS_EID: id: 17 SCH_MULTI_SLOTS_EID: id: 18 SCH_CORRUPTION_EID: id: 19 SCH_PACKET_SEND_EID: id: 20 SCH_NOISY_MAJOR_FRAME_ERR_EID: id: 21 SCH_SCHEDULE_TBL_ERR_EID: id: 30 SCH_SCHEDULE_TABLE_EID: id: 31 SCH_MESSAGE_TBL_ERR_EID: id: 32 SCH_MESSAGE_TABLE_EID: id: 33 SCH_NOOP_CMD_EID: id: 40 SCH_RESET_CMD_EID: id: 41 SCH_ENABLE_CMD_EID: id: 42 SCH_DISABLE_CMD_EID: id: 43 SCH_ENA_GRP_CMD_EID: id: 44 SCH_DIS_GRP_CMD_EID: id: 45 SCH_ENA_SYNC_CMD_EID: id: 46 SCH_SEND_DIAG_CMD_EID: id: 47 SCH_ENABLE_CMD_ARG_ERR_EI: id: 50 SCH_ENABLE_CMD_ENTRY_ERR_EID: id: 51 SCH_DISABLE_CMD_ARG_ERR_EID: id: 52 SCH_DISABLE_CMD_ENTRY_ERR_EID: id: 53 SCH_ENA_GRP_CMD_ERR_EID: id: 54 SCH_ENA_GRP_NOT_FOUND_ERR_EID: id: 55 SCH_DIS_GRP_CMD_ERR_EID: id: 56 SCH_DIS_GRP_NOT_FOUND_ERR_EID: id: 57 SCH_CC_ERR_EID: id: 58 SCH_MD_ERR_EID: id: 59 SCH_CMD_LEN_ERR_EID: id: 60 SCH_DEADLINE_REG_ERR_EID: id: 61 SCH_SLOT_DEADLINE_FULL_ERR_EID: id: 62 SCH_SUB_ACTIVITY_DONE_REQ_ERR_EID: id: 63 SCH_UNEXPECTED_ACT_DONE_ERR_EID: id: 64 SCH_MUTEX_CREATE_ERR_EID: id: 65 SCH_AD_CHILD_TASK_CREATE_ERR_EID: id: 66 SCH_AD_RCVD_UNEXPECTED_MSG_ERR_EID: id: 67 telemetry: SCH_DIAG_TLM_MID: msgID: struct: SCH_DiagPacket_t SCH_HK_TLM_MID: msgID: struct: SCH_HkPacket_t SCH_ACTIVITY_DONE_MID: msgID: struct: SCH_ActivityDoneMsg_t commands: SCH_CMD_MID: msgid: commands: Noop: cc: 0 struct: CFE_SB_CmdHdr_t Reset: cc: 1 struct: CFE_SB_CmdHdr_t Enable: cc: 2 struct: SCH_EntryCmd_t Disable: cc: 3 struct: SCH_EntryCmd_t EnableGroup: cc: 4 struct: SCH_GroupCmd_t DisableGroup: cc: 5 struct: SCH_GroupCmd_t EnableSync: cc: 6 struct: CFE_SB_CmdHdr_t SendDiag: cc: 7 struct: CFE_SB_CmdHdr_t SCH_SEND_HK_MID: msgid: commands: SendHK: cc: 0 struct: CFE_SB_CmdHdr_t perfids: SCH_APPMAIN_PERF_ID: id: config: SCH_PIPE_DEPTH: name: SCH_PIPE_DEPTH value: 12 SCH_TOTAL_SLOTS: name: SCH_TOTAL_SLOTS value: 100 SCH_ENTRIES_PER_SLOT: name: SCH_ENTRIES_PER_SLOT value: 5 SCH_MAX_MESSAGES: name: SCH_MAX_MESSAGES value: 128 SCH_MDT_MIN_MSG_ID: name: SCH_MDT_MIN_MSG_ID value: 0 SCH_MDT_MAX_MSG_ID: name: SCH_MDT_MAX_MSG_ID value: CFE_SB_HIGHEST_VALID_MSGID SCH_MAX_MSG_WORDS: name: SCH_MAX_MSG_WORDS value: 64 SCH_MAX_LAG_COUNT: name: SCH_MAX_LAG_COUNT value: (SCH_TOTAL_SLOTS / 2) SCH_MAX_SLOTS_PER_WAKEUP: name: SCH_MAX_SLOTS_PER_WAKEUP value: 5 SCH_MICROS_PER_MAJOR_FRAME: name: SCH_MICROS_PER_MAJOR_FRAME value: 1000000 SCH_SYNC_SLOT_DRIFT_WINDOW: name: SCH_SYNC_SLOT_DRIFT_WINDOW value: 5000 SCH_STARTUP_SYNC_TIMEOUT: name: SCH_STARTUP_SYNC_TIMEOUT value: 50000 SCH_STARTUP_PERIOD: name: SCH_STARTUP_PERIOD value: (5*SCH_MICROS_PER_MAJOR_FRAME) SCH_MAX_NOISY_MAJORF: name: SCH_MAX_NOISY_MAJORF value: 2 SCH_LIB_PRESENCE: name: SCH_LIB_PRESENCE value: 1 SCH_LIB_DIS_CTR: name: SCH_LIB_DIS_CTR value: 0 SCH_SCHEDULE_FILENAME: name: SCH_SCHEDULE_FILENAME value: /cf/apps/sch_def_schtbl.tbl SCH_MESSAGE_FILENAME: name: SCH_MESSAGE_FILENAME value: /cf/apps/sch_def_msgtbl.tbl SCH_MISSION_REV: name: SCH_MISSION_REV value: 0 SCH_AD_PIPE_DEPTH: name: SCH_AD_PIPE_DEPTH value: 3 SCH_AD_CHILD_TASK_PRIORITY: name: SCH_AD_CHILD_TASK_PRIORITY value: 10 SCH_DEADLINES_PER_SLOT: name: SCH_DEADLINES_PER_SLOT value: 5 SCH_AD_CHILD_TASK_FLAGS: name: SCH_AD_CHILD_TASK_FLAGS value: OS_ENABLE_CORE_0 \ No newline at end of file + short_name: sch long_name: Scheduler events: SCH_INITSTATS_INF_EID: id: 1 SCH_APP_EXIT_EID: id: 2 SCH_CR_PIPE_ERR_EID: id: 3 SCH_SUB_HK_REQ_ERR_EID: id: 4 SCH_SUB_GND_CMD_ERR_EID: id: 5 SCH_SDT_REG_ERR_EID: id: 7 SCH_MDT_REG_ERR_EID: id: 8 SCH_SDT_LOAD_ERR_EID: id: 9 SCH_MDT_LOAD_ERR_EID: id: 10 SCH_ACQ_PTR_ERR_EID: id: 11 SCH_MINOR_FRAME_TIMER_CREATE_ERR_EID: id: 12 SCH_MINOR_FRAME_TIMER_ACC_WARN_EID: id: 13 SCH_MAJOR_FRAME_SUB_ERR_EID: id: 14 SCH_SEM_CREATE_ERR_EID: id: 15 SCH_SAME_SLOT_EID: id: 16 SCH_SKIPPED_SLOTS_EID: id: 17 SCH_MULTI_SLOTS_EID: id: 18 SCH_CORRUPTION_EID: id: 19 SCH_PACKET_SEND_EID: id: 20 SCH_NOISY_MAJOR_FRAME_ERR_EID: id: 21 SCH_SCHEDULE_TBL_ERR_EID: id: 30 SCH_SCHEDULE_TABLE_EID: id: 31 SCH_MESSAGE_TBL_ERR_EID: id: 32 SCH_MESSAGE_TABLE_EID: id: 33 SCH_NOOP_CMD_EID: id: 40 SCH_RESET_CMD_EID: id: 41 SCH_ENABLE_CMD_EID: id: 42 SCH_DISABLE_CMD_EID: id: 43 SCH_ENA_GRP_CMD_EID: id: 44 SCH_DIS_GRP_CMD_EID: id: 45 SCH_ENA_SYNC_CMD_EID: id: 46 SCH_SEND_DIAG_CMD_EID: id: 47 SCH_ENABLE_CMD_ARG_ERR_EI: id: 50 SCH_ENABLE_CMD_ENTRY_ERR_EID: id: 51 SCH_DISABLE_CMD_ARG_ERR_EID: id: 52 SCH_DISABLE_CMD_ENTRY_ERR_EID: id: 53 SCH_ENA_GRP_CMD_ERR_EID: id: 54 SCH_ENA_GRP_NOT_FOUND_ERR_EID: id: 55 SCH_DIS_GRP_CMD_ERR_EID: id: 56 SCH_DIS_GRP_NOT_FOUND_ERR_EID: id: 57 SCH_CC_ERR_EID: id: 58 SCH_MD_ERR_EID: id: 59 SCH_CMD_LEN_ERR_EID: id: 60 SCH_DEADLINE_REG_ERR_EID: id: 61 SCH_SLOT_DEADLINE_FULL_ERR_EID: id: 62 SCH_SUB_ACTIVITY_DONE_REQ_ERR_EID: id: 63 SCH_UNEXPECTED_ACT_DONE_ERR_EID: id: 64 SCH_MUTEX_CREATE_ERR_EID: id: 65 SCH_AD_CHILD_TASK_CREATE_ERR_EID: id: 66 SCH_AD_RCVD_UNEXPECTED_MSG_ERR_EID: id: 67 msg_def_overrides: - parent: SCH_HkPacket_t member: SyncToMET type: enumeration enumerations: NONE: 0 MINOR: 1 PENDING: 2 MINOR_AND_PENDING: 3 MAJOR: 4 MAJOR_AND_MINOR: 5 MAJOR_AND_PENDING: 6 FULLY_SYNCED: 7 - parent: SCH_HkPacket_t member: MajorFrameSource type: enumeration enumerations: NONE: 0 CFE_TIME: 1 MINOR_FRAME_TIMER: 2 telemetry: SCH_DIAG_TLM_MID: msgID: struct: SCH_DiagPacket_t SCH_HK_TLM_MID: msgID: struct: SCH_HkPacket_t SCH_ACTIVITY_DONE_MID: msgID: struct: SCH_ActivityDoneMsg_t commands: SCH_CMD_MID: msgID: commands: Noop: cc: 0 struct: CFE_SB_CmdHdr_t Reset: cc: 1 struct: CFE_SB_CmdHdr_t Enable: cc: 2 struct: SCH_EntryCmd_t Disable: cc: 3 struct: SCH_EntryCmd_t EnableGroup: cc: 4 struct: SCH_GroupCmd_t DisableGroup: cc: 5 struct: SCH_GroupCmd_t EnableSync: cc: 6 struct: CFE_SB_CmdHdr_t SendDiag: cc: 7 struct: CFE_SB_CmdHdr_t SCH_SEND_HK_MID: msgID: commands: SendHK: cc: 0 struct: CFE_SB_CmdHdr_t perfids: SCH_APPMAIN_PERF_ID: id: config: SCH_PIPE_DEPTH: name: SCH_PIPE_DEPTH value: 12 SCH_TOTAL_SLOTS: name: SCH_TOTAL_SLOTS value: 100 SCH_ENTRIES_PER_SLOT: name: SCH_ENTRIES_PER_SLOT value: 5 SCH_MAX_MESSAGES: name: SCH_MAX_MESSAGES value: 128 SCH_MDT_MIN_MSG_ID: name: SCH_MDT_MIN_MSG_ID value: 0 SCH_MDT_MAX_MSG_ID: name: SCH_MDT_MAX_MSG_ID value: CFE_SB_HIGHEST_VALID_MSGID SCH_MAX_MSG_WORDS: name: SCH_MAX_MSG_WORDS value: 64 SCH_MAX_LAG_COUNT: name: SCH_MAX_LAG_COUNT value: (SCH_TOTAL_SLOTS / 2) SCH_MAX_SLOTS_PER_WAKEUP: name: SCH_MAX_SLOTS_PER_WAKEUP value: 5 SCH_MICROS_PER_MAJOR_FRAME: name: SCH_MICROS_PER_MAJOR_FRAME value: 1000000 SCH_SYNC_SLOT_DRIFT_WINDOW: name: SCH_SYNC_SLOT_DRIFT_WINDOW value: 5000 SCH_STARTUP_SYNC_TIMEOUT: name: SCH_STARTUP_SYNC_TIMEOUT value: 50000 SCH_STARTUP_PERIOD: name: SCH_STARTUP_PERIOD value: (5*SCH_MICROS_PER_MAJOR_FRAME) SCH_MAX_NOISY_MAJORF: name: SCH_MAX_NOISY_MAJORF value: 2 SCH_LIB_PRESENCE: name: SCH_LIB_PRESENCE value: 1 SCH_LIB_DIS_CTR: name: SCH_LIB_DIS_CTR value: 0 SCH_SCHEDULE_FILENAME: name: SCH_SCHEDULE_FILENAME value: /cf/apps/sch_def_schtbl.tbl SCH_MESSAGE_FILENAME: name: SCH_MESSAGE_FILENAME value: /cf/apps/sch_def_msgtbl.tbl SCH_MISSION_REV: name: SCH_MISSION_REV value: 0 SCH_AD_PIPE_DEPTH: name: SCH_AD_PIPE_DEPTH value: 3 SCH_AD_CHILD_TASK_PRIORITY: name: SCH_AD_CHILD_TASK_PRIORITY value: 10 SCH_DEADLINES_PER_SLOT: name: SCH_DEADLINES_PER_SLOT value: 5 SCH_AD_CHILD_TASK_FLAGS: name: SCH_AD_CHILD_TASK_FLAGS value: OS_ENABLE_CORE_0 \ No newline at end of file From f1fb9fc92959814d0dc9b7828207e750948b30b5 Mon Sep 17 00:00:00 2001 From: Mathew Benson Date: Sun, 7 Feb 2021 17:40:38 -0600 Subject: [PATCH 062/370] Added SC HK to TO downlink. --- config/shared/apps/to/tables/to_udp_cfg.c | 1 + 1 file changed, 1 insertion(+) diff --git a/config/shared/apps/to/tables/to_udp_cfg.c b/config/shared/apps/to/tables/to_udp_cfg.c index f699d479c..201f6b38b 100644 --- a/config/shared/apps/to/tables/to_udp_cfg.c +++ b/config/shared/apps/to/tables/to_udp_cfg.c @@ -112,6 +112,7 @@ TO_ChannelTbl_t TO_ConfigTbl = {LD_DIAG_TLM_MID, 1, TO_PQUEUE_MEDIUM_IDX}, {PRM_HK_TLM_MID, 1, TO_PQUEUE_MEDIUM_IDX}, {VM_CONFIG_TLM_MID, 1, TO_PQUEUE_MEDIUM_IDX}, + {SC_HK_TLM_MID, 1, TO_PQUEUE_MEDIUM_IDX}, // {PX4_ACTUATOR_ARMED_MID, 1, TO_PQUEUE_LOW_IDX}, // {PX4_ACTUATOR_CONTROLS_0_MID, 1, TO_PQUEUE_LOW_IDX}, From 0769e0aa545c6d058e8ee92b39cfdd39a207e5e2 Mon Sep 17 00:00:00 2001 From: Mathew Benson Date: Sun, 7 Feb 2021 17:41:11 -0600 Subject: [PATCH 063/370] Updated and verified displays for SCH, SC, and MM. --- .../Displays/Apps/MM/DisableEEPROMWrite.opi | 232 +++ .../Displays/Apps/MM/DumpMemInEvent.opi | 523 +++++++ .../Displays/Apps/MM/DumpMemToFile.opi | 624 ++++++++ .../Displays/Apps/MM/EnableEEPROMWrite.opi | 232 +++ .../Displays/Apps/MM/FillMem.opi | 624 ++++++++ .../Displays/Apps/MM/LoadMemFromFile.opi | 232 +++ .../Displays/Apps/MM/LookupSymbol.opi | 232 +++ .../Displays/Apps/MM/Main.opi | 817 ++++++++-- .../Displays/Apps/MM/Peek.opi | 524 +++++++ .../Displays/Apps/MM/Poke.opi | 623 ++++++++ .../Displays/Apps/MM/SymbolTableToFile.opi | 232 +++ .../Displays/Apps/MM/scripts/NoOp.js | 4 - .../Displays/Apps/MM/scripts/ResetCounters.js | 4 - .../Displays/Apps/SC/AppendAts.opi | 232 +++ .../Displays/Apps/SC/ContinueATSOnFailure.opi | 195 +++ .../Displays/Apps/SC/DisableRTS.opi | 232 +++ .../Displays/Apps/SC/DisableRTSGroup.opi | 332 ++++ .../Displays/Apps/SC/EnableRTS.opi | 232 +++ .../Displays/Apps/SC/EnableRTSGroup.opi | 332 ++++ .../Displays/Apps/SC/JumpATS.opi | 232 +++ .../Displays/Apps/SC/Main.opi | 1230 +++++++++++++-- .../Displays/Apps/SC/StartATS.opi | 232 +++ .../Displays/Apps/SC/StartRTS.opi | 232 +++ .../Displays/Apps/SC/StartRTSGroup.opi | 332 ++++ .../Displays/Apps/SC/StopRTS.opi | 232 +++ .../Displays/Apps/SC/StopRTSGroup.opi | 332 ++++ .../Displays/Apps/SC/scripts/NoOp.js | 4 - .../Displays/Apps/SC/scripts/ResetCounters.js | 4 - .../Displays/Apps/SCH/Diagnostic.opi | 132 ++ .../Displays/Apps/SCH/DisableActivity.opi | 331 ++++ .../Displays/Apps/SCH/DisableGroup.opi | 232 +++ .../Displays/Apps/SCH/EnableActivity.opi | 331 ++++ .../Displays/Apps/SCH/EnableGroup.opi | 232 +++ .../Displays/Apps/SCH/Main.opi | 1383 +++++++++++++++-- .../Displays/Apps/SCH/scripts/NoOp.js | 4 - .../Apps/SCH/scripts/ResetCounters.js | 4 - .../Displays/Core/ES/QueryOneApp.opi | 4 +- 37 files changed, 11534 insertions(+), 407 deletions(-) create mode 100644 core/base/tools/commander/workspace_template/Displays/Apps/MM/DisableEEPROMWrite.opi create mode 100644 core/base/tools/commander/workspace_template/Displays/Apps/MM/DumpMemInEvent.opi create mode 100644 core/base/tools/commander/workspace_template/Displays/Apps/MM/DumpMemToFile.opi create mode 100644 core/base/tools/commander/workspace_template/Displays/Apps/MM/EnableEEPROMWrite.opi create mode 100644 core/base/tools/commander/workspace_template/Displays/Apps/MM/FillMem.opi create mode 100644 core/base/tools/commander/workspace_template/Displays/Apps/MM/LoadMemFromFile.opi create mode 100644 core/base/tools/commander/workspace_template/Displays/Apps/MM/LookupSymbol.opi create mode 100644 core/base/tools/commander/workspace_template/Displays/Apps/MM/Peek.opi create mode 100644 core/base/tools/commander/workspace_template/Displays/Apps/MM/Poke.opi create mode 100644 core/base/tools/commander/workspace_template/Displays/Apps/MM/SymbolTableToFile.opi delete mode 100644 core/base/tools/commander/workspace_template/Displays/Apps/MM/scripts/NoOp.js delete mode 100644 core/base/tools/commander/workspace_template/Displays/Apps/MM/scripts/ResetCounters.js create mode 100644 core/base/tools/commander/workspace_template/Displays/Apps/SC/AppendAts.opi create mode 100644 core/base/tools/commander/workspace_template/Displays/Apps/SC/ContinueATSOnFailure.opi create mode 100644 core/base/tools/commander/workspace_template/Displays/Apps/SC/DisableRTS.opi create mode 100644 core/base/tools/commander/workspace_template/Displays/Apps/SC/DisableRTSGroup.opi create mode 100644 core/base/tools/commander/workspace_template/Displays/Apps/SC/EnableRTS.opi create mode 100644 core/base/tools/commander/workspace_template/Displays/Apps/SC/EnableRTSGroup.opi create mode 100644 core/base/tools/commander/workspace_template/Displays/Apps/SC/JumpATS.opi create mode 100644 core/base/tools/commander/workspace_template/Displays/Apps/SC/StartATS.opi create mode 100644 core/base/tools/commander/workspace_template/Displays/Apps/SC/StartRTS.opi create mode 100644 core/base/tools/commander/workspace_template/Displays/Apps/SC/StartRTSGroup.opi create mode 100644 core/base/tools/commander/workspace_template/Displays/Apps/SC/StopRTS.opi create mode 100644 core/base/tools/commander/workspace_template/Displays/Apps/SC/StopRTSGroup.opi delete mode 100644 core/base/tools/commander/workspace_template/Displays/Apps/SC/scripts/NoOp.js delete mode 100644 core/base/tools/commander/workspace_template/Displays/Apps/SC/scripts/ResetCounters.js create mode 100644 core/base/tools/commander/workspace_template/Displays/Apps/SCH/Diagnostic.opi create mode 100644 core/base/tools/commander/workspace_template/Displays/Apps/SCH/DisableActivity.opi create mode 100644 core/base/tools/commander/workspace_template/Displays/Apps/SCH/DisableGroup.opi create mode 100644 core/base/tools/commander/workspace_template/Displays/Apps/SCH/EnableActivity.opi create mode 100644 core/base/tools/commander/workspace_template/Displays/Apps/SCH/EnableGroup.opi delete mode 100644 core/base/tools/commander/workspace_template/Displays/Apps/SCH/scripts/NoOp.js delete mode 100644 core/base/tools/commander/workspace_template/Displays/Apps/SCH/scripts/ResetCounters.js diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/MM/DisableEEPROMWrite.opi b/core/base/tools/commander/workspace_template/Displays/Apps/MM/DisableEEPROMWrite.opi new file mode 100644 index 000000000..b88e1f6a1 --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/Apps/MM/DisableEEPROMWrite.opi @@ -0,0 +1,232 @@ + + + + + false + -1 + -1 + + false + + + + 1.5.3 + + + + 6 + 100 + + true + + MM - Disable EEPROM + + + true + true + true + true + true + Display + 190 + -10b748b0:17773fb054b:-7a2f + -1 + -1 + + + false + + + + + + + 0 + 1 + true + + Default Bold + + + + + 20 + 1 + Label_49 + + + true + true + false + + + Disable EEPROM Write + + true + 1 + true + Label + 175 + false + -10b748b0:17773fb054b:-7a20 + 12 + 12 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label + + + true + true + false + + + Bank + + true + 1 + true + Label + 61 + false + -10b748b0:17773fb054b:-7a0f + 0 + 36 + + + + + + + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 20 + ../../Resources/send.png + NoOp + 0 + + + + + true + true + false + + + + Disable + false + $(pv_name) +$(pv_value) + true + Action Button + 92 + -10b748b0:17773fb054b:-79c7 + 48 + 66 + + + + false + false + false + + + + true + + + + 1 + 1 + + true + + Default + + false + + + + 0 + 20 + 0 + false + 1.7976931348623157E308 + -1.7976931348623157E308 + false + Bank + 0 + true + loc://MM_DisableEEPROMWrite_Bank<VString> + + 0.0 + + + true + true + false + + + 0 + true + + + $(pv_name) +$(pv_value) + false + true + Text Input + 100 + -10b748b0:17773fb054b:-78ff + 72 + 36 + + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/MM/DumpMemInEvent.opi b/core/base/tools/commander/workspace_template/Displays/Apps/MM/DumpMemInEvent.opi new file mode 100644 index 000000000..5eb873a7d --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/Apps/MM/DumpMemInEvent.opi @@ -0,0 +1,523 @@ + + + + + false + -1 + -1 + + false + + + + 1.5.3 + + + + 6 + 180 + + true + + MM - Dump Memory In Event + + + true + true + true + true + true + Display + 260 + -10b748b0:17773fb054b:-7a2f + -1 + -1 + + + false + + + + + + + 0 + 1 + true + + Default Bold + + + + + 20 + 1 + Label_49 + + + true + true + false + + + Dump Memory In Event + + true + 1 + true + Label + 175 + false + -10b748b0:17773fb054b:-7a20 + 48 + 6 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label + + + true + true + false + + + MemType + + true + 1 + true + Label + 73 + false + -10b748b0:17773fb054b:-7a0f + 36 + 35 + + + + + + + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 20 + ../../Resources/send.png + NoOp + 0 + + + + + true + true + false + + + + Dump + false + $(pv_name) +$(pv_value) + true + Action Button + 92 + -10b748b0:17773fb054b:-79c7 + 90 + 138 + + + + false + false + + + + true + + + + 0 + 1 + true + + Default + + false + + + + 27 + + NOMEMTYPE + EEPROM + RAM + MEM8 + MEM16 + MEM32 + + false + MemType + loc://MM_DumpMemInEvent_MemType<VString> + + + + true + false + false + + + $(pv_name) +$(pv_value) + true + Combo + 136 + 54e87698:1777e01a75d:-6f8b + 114 + 31 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_2 + + + true + true + false + + + Num of Bytes + + true + 1 + true + Label + 97 + false + 54e87698:1777e01a75d:-6f83 + 12 + 57 + + + + false + false + false + + + + true + + + + 1 + 1 + + true + + Default + + false + + + + 0 + 20 + 0 + false + 1.7976931348623157E308 + -1.7976931348623157E308 + false + NumofBytes + 0 + true + loc://MM_DumpMemInEvent_NumofBytes<VString> + + 0.0 + + + true + true + false + + + 0 + true + + + $(pv_name) +$(pv_value) + false + true + Text Input + 136 + 54e87698:1777e01a75d:-6f5d + 114 + 57 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_3 + + + true + true + false + + + Symbol Name + + true + 1 + true + Label + 97 + false + 54e87698:1777e01a75d:-6f53 + 12 + 83 + + + + false + false + false + + + + true + + + + 1 + 1 + + true + + Default + + false + + + + 0 + 20 + 0 + false + 1.7976931348623157E308 + -1.7976931348623157E308 + false + SymbolName + 0 + true + loc://MM_DumpMemInEvent_SymbolName<VString> + + 0.0 + + + true + true + false + + + 0 + true + + + $(pv_name) +$(pv_value) + false + true + Text Input + 136 + 54e87698:1777e01a75d:-6f49 + 114 + 83 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_4 + + + true + true + false + + + Offset + + true + 1 + true + Label + 97 + false + 54e87698:1777e01a75d:-6f41 + 12 + 107 + + + + false + false + false + + + + true + + + + 1 + 1 + + true + + Default + + false + + + + 0 + 20 + 0 + false + 1.7976931348623157E308 + -1.7976931348623157E308 + false + Offset + 0 + true + loc://MM_DumpMemInEvent_Offset<VString> + + 0.0 + + + true + true + false + + + 0 + true + + + $(pv_name) +$(pv_value) + false + true + Text Input + 136 + 54e87698:1777e01a75d:-6f37 + 114 + 107 + + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/MM/DumpMemToFile.opi b/core/base/tools/commander/workspace_template/Displays/Apps/MM/DumpMemToFile.opi new file mode 100644 index 000000000..5338f4afe --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/Apps/MM/DumpMemToFile.opi @@ -0,0 +1,624 @@ + + + + + false + -1 + -1 + + false + + + + 1.5.3 + + + + 6 + 200 + + true + + MM - Dump Memory to File + + + true + true + true + true + true + Display + 260 + -10b748b0:17773fb054b:-7a2f + -1 + -1 + + + false + + + + + + + 0 + 1 + true + + Default Bold + + + + + 20 + 1 + Label_49 + + + true + true + false + + + Dump Memory to File + + true + 1 + true + Label + 175 + false + -10b748b0:17773fb054b:-7a20 + 48 + 6 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label + + + true + true + false + + + MemType + + true + 1 + true + Label + 73 + false + -10b748b0:17773fb054b:-7a0f + 36 + 35 + + + + + + + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 20 + ../../Resources/send.png + NoOp + 0 + + + + + true + true + false + + + + Dump + false + $(pv_name) +$(pv_value) + true + Action Button + 92 + -10b748b0:17773fb054b:-79c7 + 90 + 168 + + + + false + false + + + + true + + + + 0 + 1 + true + + Default + + false + + + + 27 + + NOMEMTYPE + EEPROM + RAM + MEM8 + MEM16 + MEM32 + + false + MemType + loc://MM_DumpMemToFile_MemType<VString> + + + + true + false + false + + + $(pv_name) +$(pv_value) + true + Combo + 136 + 54e87698:1777e01a75d:-6f8b + 114 + 31 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_2 + + + true + true + false + + + Num of Bytes + + true + 1 + true + Label + 97 + false + 54e87698:1777e01a75d:-6f83 + 12 + 57 + + + + false + false + false + + + + true + + + + 1 + 1 + + true + + Default + + false + + + + 0 + 20 + 0 + false + 1.7976931348623157E308 + -1.7976931348623157E308 + false + NumofBytes + 0 + true + loc://MM_DumpMemToFile_NumofBytes<VString> + + 0.0 + + + true + true + false + + + 0 + true + + + $(pv_name) +$(pv_value) + false + true + Text Input + 136 + 54e87698:1777e01a75d:-6f5d + 114 + 57 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_3 + + + true + true + false + + + Symbol Name + + true + 1 + true + Label + 97 + false + 54e87698:1777e01a75d:-6f53 + 12 + 83 + + + + false + false + false + + + + true + + + + 1 + 1 + + true + + Default + + false + + + + 0 + 20 + 0 + false + 1.7976931348623157E308 + -1.7976931348623157E308 + false + SymbolName + 0 + true + loc://MM_DumpMemToFile_SymbolName<VString> + + 0.0 + + + true + true + false + + + 0 + true + + + $(pv_name) +$(pv_value) + false + true + Text Input + 136 + 54e87698:1777e01a75d:-6f49 + 114 + 83 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_4 + + + true + true + false + + + Offset + + true + 1 + true + Label + 97 + false + 54e87698:1777e01a75d:-6f41 + 12 + 107 + + + + false + false + false + + + + true + + + + 1 + 1 + + true + + Default + + false + + + + 0 + 20 + 0 + false + 1.7976931348623157E308 + -1.7976931348623157E308 + false + Offset + 0 + true + loc://MM_DumpMemToFile_Offset<VString> + + 0.0 + + + true + true + false + + + 0 + true + + + $(pv_name) +$(pv_value) + false + true + Text Input + 136 + 54e87698:1777e01a75d:-6f37 + 114 + 107 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_5 + + + true + true + false + + + File Name + + true + 1 + true + Label + 97 + false + 54e87698:1777e01a75d:-6ef6 + 12 + 132 + + + + false + false + false + + + + true + + + + 1 + 1 + + true + + Default + + false + + + + 0 + 20 + 0 + false + 1.7976931348623157E308 + -1.7976931348623157E308 + false + FileName + 0 + true + loc://MM_DumpMemToFile_FileName<VString> + + 0.0 + + + true + true + false + + + 0 + true + + + $(pv_name) +$(pv_value) + false + true + Text Input + 136 + 54e87698:1777e01a75d:-6ef5 + 114 + 132 + + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/MM/EnableEEPROMWrite.opi b/core/base/tools/commander/workspace_template/Displays/Apps/MM/EnableEEPROMWrite.opi new file mode 100644 index 000000000..51522d881 --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/Apps/MM/EnableEEPROMWrite.opi @@ -0,0 +1,232 @@ + + + + + false + -1 + -1 + + false + + + + 1.5.3 + + + + 6 + 100 + + true + + MM - Enable EEPROM + + + true + true + true + true + true + Display + 190 + -10b748b0:17773fb054b:-7a2f + -1 + -1 + + + false + + + + + + + 0 + 1 + true + + Default Bold + + + + + 20 + 1 + Label_49 + + + true + true + false + + + Enable EEPROM Write + + true + 1 + true + Label + 175 + false + -10b748b0:17773fb054b:-7a20 + 12 + 12 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label + + + true + true + false + + + Bank + + true + 1 + true + Label + 61 + false + -10b748b0:17773fb054b:-7a0f + 0 + 36 + + + + + + + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 20 + ../../Resources/send.png + NoOp + 0 + + + + + true + true + false + + + + Enable + false + $(pv_name) +$(pv_value) + true + Action Button + 92 + -10b748b0:17773fb054b:-79c7 + 48 + 66 + + + + false + false + false + + + + true + + + + 1 + 1 + + true + + Default + + false + + + + 0 + 20 + 0 + false + 1.7976931348623157E308 + -1.7976931348623157E308 + false + Bank + 0 + true + loc://MM_EnableEEPROMWrite_Bank<VString> + + 0.0 + + + true + true + false + + + 0 + true + + + $(pv_name) +$(pv_value) + false + true + Text Input + 100 + -10b748b0:17773fb054b:-78ff + 72 + 36 + + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/MM/FillMem.opi b/core/base/tools/commander/workspace_template/Displays/Apps/MM/FillMem.opi new file mode 100644 index 000000000..048ab38b3 --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/Apps/MM/FillMem.opi @@ -0,0 +1,624 @@ + + + + + false + -1 + -1 + + false + + + + 1.5.3 + + + + 6 + 200 + + true + + MM - Fill Memory + + + true + true + true + true + true + Display + 260 + -10b748b0:17773fb054b:-7a2f + -1 + -1 + + + false + + + + + + + 0 + 1 + true + + Default Bold + + + + + 20 + 1 + Label_49 + + + true + true + false + + + Fill Memory + + true + 1 + true + Label + 175 + false + -10b748b0:17773fb054b:-7a20 + 48 + 6 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label + + + true + true + false + + + MemType + + true + 1 + true + Label + 73 + false + -10b748b0:17773fb054b:-7a0f + 36 + 35 + + + + + + + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 20 + ../../Resources/send.png + NoOp + 0 + + + + + true + true + false + + + + Fill + false + $(pv_name) +$(pv_value) + true + Action Button + 92 + -10b748b0:17773fb054b:-79c7 + 90 + 162 + + + + false + false + + + + true + + + + 0 + 1 + true + + Default + + false + + + + 27 + + NOMEMTYPE + EEPROM + RAM + MEM8 + MEM16 + MEM32 + + false + MemType + loc://MM_FillMemory_MemType<VString> + + + + true + false + false + + + $(pv_name) +$(pv_value) + true + Combo + 136 + 54e87698:1777e01a75d:-6f8b + 114 + 31 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_2 + + + true + true + false + + + Num of Bytes + + true + 1 + true + Label + 97 + false + 54e87698:1777e01a75d:-6f83 + 12 + 57 + + + + false + false + false + + + + true + + + + 1 + 1 + + true + + Default + + false + + + + 0 + 20 + 0 + false + 1.7976931348623157E308 + -1.7976931348623157E308 + false + NumofBytes + 0 + true + loc://MM_FillMemory_NumofBytes<VString> + + 0.0 + + + true + true + false + + + 0 + true + + + $(pv_name) +$(pv_value) + false + true + Text Input + 136 + 54e87698:1777e01a75d:-6f5d + 114 + 57 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_3 + + + true + true + false + + + Symbol Name + + true + 1 + true + Label + 97 + false + 54e87698:1777e01a75d:-6f53 + 12 + 108 + + + + false + false + false + + + + true + + + + 1 + 1 + + true + + Default + + false + + + + 0 + 20 + 0 + false + 1.7976931348623157E308 + -1.7976931348623157E308 + false + SymbolName + 0 + true + loc://MM_FillMemory_SymbolName<VString> + + 0.0 + + + true + true + false + + + 0 + true + + + $(pv_name) +$(pv_value) + false + true + Text Input + 136 + 54e87698:1777e01a75d:-6f49 + 114 + 108 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_4 + + + true + true + false + + + Offset + + true + 1 + true + Label + 97 + false + 54e87698:1777e01a75d:-6f41 + 12 + 132 + + + + false + false + false + + + + true + + + + 1 + 1 + + true + + Default + + false + + + + 0 + 20 + 0 + false + 1.7976931348623157E308 + -1.7976931348623157E308 + false + Offset + 0 + true + loc://MM_FillMemory_Offset<VString> + + 0.0 + + + true + true + false + + + 0 + true + + + $(pv_name) +$(pv_value) + false + true + Text Input + 136 + 54e87698:1777e01a75d:-6f37 + 114 + 132 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_6 + + + true + true + false + + + Fill Pattern + + true + 1 + true + Label + 97 + false + 54e87698:1777e01a75d:-6ec0 + 12 + 84 + + + + false + false + false + + + + true + + + + 1 + 1 + + true + + Default + + false + + + + 0 + 20 + 0 + false + 1.7976931348623157E308 + -1.7976931348623157E308 + false + FillPattern + 0 + true + loc://MM_FillMemory_FillPattern<VString> + + 0.0 + + + true + true + false + + + 0 + true + + + $(pv_name) +$(pv_value) + false + true + Text Input + 136 + 54e87698:1777e01a75d:-6ebf + 114 + 84 + + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/MM/LoadMemFromFile.opi b/core/base/tools/commander/workspace_template/Displays/Apps/MM/LoadMemFromFile.opi new file mode 100644 index 000000000..3ebd0e51e --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/Apps/MM/LoadMemFromFile.opi @@ -0,0 +1,232 @@ + + + + + false + -1 + -1 + + false + + + + 1.5.3 + + + + 6 + 100 + + true + + MM - Dump Memory to File + + + true + true + true + true + true + Display + 260 + -10b748b0:17773fb054b:-7a2f + -1 + -1 + + + false + + + + + + + 0 + 1 + true + + Default Bold + + + + + 20 + 1 + Label_49 + + + true + true + false + + + Load Memory from File + + true + 1 + true + Label + 175 + false + -10b748b0:17773fb054b:-7a20 + 48 + 6 + + + + + + + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 20 + ../../Resources/send.png + NoOp + 0 + + + + + true + true + false + + + + Load + false + $(pv_name) +$(pv_value) + true + Action Button + 92 + -10b748b0:17773fb054b:-79c7 + 90 + 66 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_5 + + + true + true + false + + + File Name + + true + 1 + true + Label + 97 + false + 54e87698:1777e01a75d:-6ef6 + 12 + 36 + + + + false + false + false + + + + true + + + + 1 + 1 + + true + + Default + + false + + + + 0 + 20 + 0 + false + 1.7976931348623157E308 + -1.7976931348623157E308 + false + FileName + 0 + true + loc://MM_LoadMemoryFromFile_FileName<VString> + + 0.0 + + + true + true + false + + + 0 + true + + + $(pv_name) +$(pv_value) + false + true + Text Input + 136 + 54e87698:1777e01a75d:-6ef5 + 114 + 36 + + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/MM/LookupSymbol.opi b/core/base/tools/commander/workspace_template/Displays/Apps/MM/LookupSymbol.opi new file mode 100644 index 000000000..b2ece6fd9 --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/Apps/MM/LookupSymbol.opi @@ -0,0 +1,232 @@ + + + + + false + -1 + -1 + + false + + + + 1.5.3 + + + + 6 + 90 + + true + + MM - Lookup Symbol + + + true + true + true + true + true + Display + 260 + -10b748b0:17773fb054b:-7a2f + -1 + -1 + + + false + + + + + + + 0 + 1 + true + + Default Bold + + + + + 20 + 1 + Label_49 + + + true + true + false + + + Lookup Symbol + + true + 1 + true + Label + 175 + false + -10b748b0:17773fb054b:-7a20 + 48 + 6 + + + + + + + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 20 + ../../Resources/send.png + NoOp + 0 + + + + + true + true + false + + + + Lookup + false + $(pv_name) +$(pv_value) + true + Action Button + 92 + -10b748b0:17773fb054b:-79c7 + 90 + 60 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_3 + + + true + true + false + + + Symbol Name + + true + 1 + true + Label + 97 + false + 54e87698:1777e01a75d:-6f53 + 12 + 30 + + + + false + false + false + + + + true + + + + 1 + 1 + + true + + Default + + false + + + + 0 + 20 + 0 + false + 1.7976931348623157E308 + -1.7976931348623157E308 + false + SymbolName + 0 + true + loc://MM_LookupSymbol_SymbolName<VString> + + 0.0 + + + true + true + false + + + 0 + true + + + $(pv_name) +$(pv_value) + false + true + Text Input + 136 + 54e87698:1777e01a75d:-6f49 + 114 + 30 + + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/MM/Main.opi b/core/base/tools/commander/workspace_template/Displays/Apps/MM/Main.opi index 26ed377d5..fbeeccab3 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/MM/Main.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/MM/Main.opi @@ -15,7 +15,7 @@ 6 - 410 + 360 true @@ -28,7 +28,7 @@ true true Display - 300 + 390 -33cb7c72:150aa4c347f:-76c2 -1 -1 @@ -81,8 +81,8 @@ $(pv_value) 100 false -33cb7c72:150aa4c347f:-75ff - 95 - 57 + 102 + 36 @@ -118,11 +118,11 @@ $(pv_value) 1 true Label - 72 + 85 false -33cb7c72:150aa4c347f:-75fe - 12 - 57 + 6 + 36 @@ -161,48 +161,8 @@ $(pv_value) 60 false -33cb7c72:150aa4c347f:-75fd - 24 - 76 - - - - false - - - - - - - 0 - 1 - true - - Default Bold - - - - - 20 - 1 - Label_46 - - - true - true - false - - - Commanding - - true - 1 - true - Label - 164 - false - -33cb7c72:150aa4c347f:-75fc - 72 - 30 + 31 + 55 @@ -253,8 +213,8 @@ $(pv_value) 100 false -33cb7c72:150aa4c347f:-75fb - 95 - 76 + 102 + 55 @@ -307,10 +267,10 @@ Yamcs.issueCommand('/cfs/mm/Noop', {});]]> $(pv_value) true Action Button - 67 + 78 -33cb7c72:150aa4c347f:-75fa - 210 - 58 + 217 + 37 @@ -363,10 +323,10 @@ Yamcs.issueCommand('/cfs/mm/Reset', {});]]> $(pv_value) true Action Button - 67 + 78 -33cb7c72:150aa4c347f:-75f9 - 210 - 79 + 217 + 58 @@ -402,10 +362,10 @@ $(pv_value) 1 true Label - 272 + 166 false -33cb7c72:150aa4c347f:-75c9 - 12 + 102 6 @@ -435,7 +395,7 @@ $(pv_value) 0 Text Update_51 0 - true + false /cfs/mm/MM_HkPacket_t.LastAction 0.0 @@ -454,11 +414,11 @@ $(pv_value) 1 true Text Update - 100 + 198 false 7b256c5c:150b979c7e3:-7718 - 126 - 120 + 133 + 99 @@ -487,7 +447,7 @@ $(pv_value) 0 Text Update_52 0 - true + false /cfs/mm/MM_HkPacket_t.MemType 0.0 @@ -506,11 +466,11 @@ $(pv_value) 1 true Text Update - 100 + 198 false 7b256c5c:150b979c7e3:-7717 - 126 - 139 + 133 + 118 @@ -534,12 +494,12 @@ $(pv_value) - 0 + 3 20 0 Text Update_53 0 - true + false /cfs/mm/MM_HkPacket_t.Address 0.0 @@ -558,11 +518,11 @@ $(pv_value) 1 true Text Update - 100 + 198 false 7b256c5c:150b979c7e3:-7716 - 126 - 158 + 133 + 137 @@ -591,7 +551,7 @@ $(pv_value) 0 Text Update_54 0 - true + false /cfs/mm/MM_HkPacket_t.DataValue 0.0 @@ -610,11 +570,11 @@ $(pv_value) 1 true Text Update - 100 + 198 false 7b256c5c:150b979c7e3:-7715 - 126 - 177 + 133 + 156 @@ -643,7 +603,7 @@ $(pv_value) 0 Text Update_55 0 - true + false /cfs/mm/MM_HkPacket_t.BytesProcessed 0.0 @@ -662,11 +622,11 @@ $(pv_value) 1 true Text Update - 100 + 198 false 7b256c5c:150b979c7e3:-7714 - 126 - 196 + 133 + 175 @@ -695,7 +655,7 @@ $(pv_value) 0 Text Update_56 0 - true + false /cfs/mm/MM_HkPacket_t.FileName 0.0 @@ -714,11 +674,11 @@ $(pv_value) 1 true Text Update - 100 + 198 false 7b256c5c:150b979c7e3:-7713 - 126 - 215 + 133 + 194 @@ -757,8 +717,8 @@ $(pv_value) 72 false 7b256c5c:150b979c7e3:-770b - 43 - 120 + 50 + 99 @@ -797,8 +757,8 @@ $(pv_value) 60 false 7b256c5c:150b979c7e3:-7703 - 55 - 158 + 62 + 137 @@ -837,8 +797,8 @@ $(pv_value) 72 false 7b256c5c:150b979c7e3:-76fe - 43 - 177 + 50 + 156 @@ -874,11 +834,11 @@ $(pv_value) 1 true Label - 60 + 110 false 7b256c5c:150b979c7e3:-76f9 - 55 - 139 + 12 + 118 @@ -914,11 +874,11 @@ $(pv_value) 1 true Label - 60 + 91 false 7b256c5c:150b979c7e3:-76f4 - 55 - 215 + 31 + 194 @@ -954,10 +914,671 @@ $(pv_value) 1 true Label - 103 + 122 false 7b256c5c:150b979c7e3:-76ef + 0 + 175 + + + + + EnableEEPROMWrite.opi + + true + + 1 + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 20 + + Action Button_1 + 0 + + + + + true + true + false + + + + Enable EEPROM Write + false + $(pv_name) +$(pv_value) + true + Action Button + 175 + 54e87698:1777e01a75d:-73f4 + 12 + 228 + + + + + DisableEEPROMWrite.opi + + true + + 1 + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 20 + + Action Button + 0 + + + + + true + true + false + + + + Disable EEPROM Write + false + $(pv_name) +$(pv_value) + true + Action Button + 175 + 54e87698:1777e01a75d:-73ec + 12 + 247 + + + + + DumpMemInEvent.opi + + true + + 1 + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 20 + + Action Button_2 + 0 + + + + + true + true + false + + + + Dump Mem in Event + false + $(pv_name) +$(pv_value) + true + Action Button + 175 + 54e87698:1777e01a75d:-73e2 + 12 + 266 + + + + + DumpMemToFile.opi + + true + + 1 + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 20 + + Action Button_3 + 0 + + + + + true + true + false + + + + Dump Mem to File + false + $(pv_name) +$(pv_value) + true + Action Button + 175 + 54e87698:1777e01a75d:-73d8 12 - 196 + 285 + + + + + FillMem.opi + + true + + 1 + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 20 + + Action Button_4 + 0 + + + + + true + true + false + + + + Fill Memory + false + $(pv_name) +$(pv_value) + true + Action Button + 175 + 54e87698:1777e01a75d:-73cc + 12 + 304 + + + + + LoadMemFromFile.opi + + true + + 1 + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 20 + + Action Button_5 + 0 + + + + + true + true + false + + + + Load Memory from File + false + $(pv_name) +$(pv_value) + true + Action Button + 175 + 54e87698:1777e01a75d:-73c2 + 12 + 323 + + + + + AddMessageFlow.opi + + true + + 1 + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 20 + + Action Button_6 + 0 + + + + + true + true + false + + + + Load Memory WID + false + $(pv_name) +$(pv_value) + true + Action Button + 175 + 54e87698:1777e01a75d:-73b8 + 201 + 228 + + + + + LookupSymbol.opi + + true + + 1 + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 20 + + Action Button_7 + 0 + + + + + true + true + false + + + + Lookup Symbol + false + $(pv_name) +$(pv_value) + true + Action Button + 175 + 54e87698:1777e01a75d:-73ae + 201 + 247 + + + + + Peek.opi + + true + + 1 + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 20 + + Action Button_8 + 0 + + + + + true + true + false + + + + Peek + false + $(pv_name) +$(pv_value) + true + Action Button + 175 + 54e87698:1777e01a75d:-73a4 + 201 + 266 + + + + + Poke.opi + + true + + 1 + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 20 + + Action Button_9 + 0 + + + + + true + true + false + + + + Poke + false + $(pv_name) +$(pv_value) + true + Action Button + 175 + 54e87698:1777e01a75d:-739a + 201 + 285 + + + + + SymbolTableToFile.opi + + true + + 1 + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 20 + + Action Button_10 + 0 + + + + + true + true + false + + + + Symbol Table to File + false + $(pv_name) +$(pv_value) + true + Action Button + 175 + 54e87698:1777e01a75d:-7335 + 201 + 304 + + + + + scripts/NoOp.js + + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 20 + ../../Resources/send.png + NoOp_2 + 0 + + + + + true + true + false + + + + SendHK + false + $(pv_name) +$(pv_value) + true + Action Button + 175 + 54e87698:1777e01a75d:-732b + 201 + 323 \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/MM/Peek.opi b/core/base/tools/commander/workspace_template/Displays/Apps/MM/Peek.opi new file mode 100644 index 000000000..e6bcd28cb --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/Apps/MM/Peek.opi @@ -0,0 +1,524 @@ + + + + + false + -1 + -1 + + false + + + + 1.5.3 + + + + 6 + 180 + + true + + MM - Peek + + + true + true + true + true + true + Display + 260 + -10b748b0:17773fb054b:-7a2f + -1 + -1 + + + false + + + + + + + 0 + 1 + true + + Default Bold + + + + + 20 + 1 + Label_49 + + + true + true + false + + + Peek + + true + 1 + true + Label + 175 + false + -10b748b0:17773fb054b:-7a20 + 48 + 6 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label + + + true + true + false + + + MemType + + true + 1 + true + Label + 73 + false + -10b748b0:17773fb054b:-7a0f + 36 + 35 + + + + + + + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 20 + ../../Resources/send.png + NoOp + 0 + + + + + true + true + false + + + + Peek + false + $(pv_name) +$(pv_value) + true + Action Button + 92 + -10b748b0:17773fb054b:-79c7 + 90 + 138 + + + + false + false + + + + true + + + + 0 + 1 + true + + Default + + false + + + + 27 + + NOMEMTYPE + EEPROM + RAM + MEM8 + MEM16 + MEM32 + + false + MemType + loc://MM_Peek_MemType<VString> + + + + true + false + false + + + $(pv_name) +$(pv_value) + true + Combo + 136 + 54e87698:1777e01a75d:-6f8b + 114 + 31 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_2 + + + true + true + false + + + Num of Bytes + + true + 1 + true + Label + 97 + false + 54e87698:1777e01a75d:-6f83 + 12 + 57 + + + + false + false + false + + + + true + + + + 1 + 1 + + true + + Default + + false + + + + 0 + 20 + 0 + false + 1.7976931348623157E308 + -1.7976931348623157E308 + false + NumofBytes + 0 + true + loc://MM_Peek_DataSize<VString> + + 0.0 + + + true + true + false + + + 0 + true + + + $(pv_name) +$(pv_value) + false + true + Text Input + 136 + 54e87698:1777e01a75d:-6f5d + 114 + 57 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_3 + + + true + true + false + + + Symbol Name + + true + 1 + true + Label + 97 + false + 54e87698:1777e01a75d:-6f53 + 12 + 83 + + + + false + false + false + + + + true + + + + 1 + 1 + + true + + Default + + false + + + + 0 + 20 + 0 + false + 1.7976931348623157E308 + -1.7976931348623157E308 + false + SymbolName + 0 + true + loc://MM_Peek_SymbolName<VString> + + 0.0 + + + true + true + false + + + 0 + true + + + $(pv_name) +$(pv_value) + false + true + Text Input + 136 + 54e87698:1777e01a75d:-6f49 + 114 + 83 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_4 + + + true + true + false + + + Offset + + true + 1 + true + Label + 97 + false + 54e87698:1777e01a75d:-6f41 + 12 + 107 + + + + false + false + false + + + + true + + + + 1 + 1 + + true + + Default + + false + + + + 0 + 20 + 0 + false + 1.7976931348623157E308 + -1.7976931348623157E308 + false + Offset + 0 + true + loc://MM_Peek_Offset<VString> + + 0.0 + + + true + true + false + + + 0 + true + + + $(pv_name) +$(pv_value) + false + true + Text Input + 136 + 54e87698:1777e01a75d:-6f37 + 114 + 107 + + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/MM/Poke.opi b/core/base/tools/commander/workspace_template/Displays/Apps/MM/Poke.opi new file mode 100644 index 000000000..706a2823a --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/Apps/MM/Poke.opi @@ -0,0 +1,623 @@ + + + + + false + -1 + -1 + + false + + + + 1.5.3 + + + + 6 + 190 + + true + + MM - Poke + + + true + true + true + true + true + Display + 260 + -10b748b0:17773fb054b:-7a2f + -1 + -1 + + + false + + + + + + + 0 + 1 + true + + Default Bold + + + + + 20 + 1 + Label_49 + + + true + true + false + + + Poke + + true + 1 + true + Label + 175 + false + -10b748b0:17773fb054b:-7a20 + 48 + 6 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label + + + true + true + false + + + MemType + + true + 1 + true + Label + 73 + false + -10b748b0:17773fb054b:-7a0f + 36 + 35 + + + + + + + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 20 + ../../Resources/send.png + NoOp + 0 + + + + + true + true + false + + + + Poke + false + $(pv_name) +$(pv_value) + true + Action Button + 92 + -10b748b0:17773fb054b:-79c7 + 90 + 162 + + + + false + false + + + + true + + + + 0 + 1 + true + + Default + + false + + + + 27 + + NOMEMTYPE + EEPROM + RAM + MEM8 + MEM16 + MEM32 + + false + MemType + loc://MM_Poke_MemType<VString> + + + + true + false + false + + + $(pv_name) +$(pv_value) + true + Combo + 136 + 54e87698:1777e01a75d:-6f8b + 114 + 31 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_2 + + + true + true + false + + + Num of Bytes + + true + 1 + true + Label + 97 + false + 54e87698:1777e01a75d:-6f83 + 12 + 57 + + + + false + false + false + + + + true + + + + 1 + 1 + + true + + Default + + false + + + + 0 + 20 + 0 + false + 1.7976931348623157E308 + -1.7976931348623157E308 + false + NumofBytes + 0 + true + loc://MM_Poke_DataSize<VString> + + 0.0 + + + true + true + false + + + 0 + true + + + $(pv_name) +$(pv_value) + false + true + Text Input + 136 + 54e87698:1777e01a75d:-6f5d + 114 + 57 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_3 + + + true + true + false + + + Symbol Name + + true + 1 + true + Label + 97 + false + 54e87698:1777e01a75d:-6f53 + 12 + 83 + + + + false + false + false + + + + true + + + + 1 + 1 + + true + + Default + + false + + + + 0 + 20 + 0 + false + 1.7976931348623157E308 + -1.7976931348623157E308 + false + SymbolName + 0 + true + loc://MM_Poke_SymbolName<VString> + + 0.0 + + + true + true + false + + + 0 + true + + + $(pv_name) +$(pv_value) + false + true + Text Input + 136 + 54e87698:1777e01a75d:-6f49 + 114 + 83 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_4 + + + true + true + false + + + Offset + + true + 1 + true + Label + 97 + false + 54e87698:1777e01a75d:-6f41 + 12 + 107 + + + + false + false + false + + + + true + + + + 1 + 1 + + true + + Default + + false + + + + 0 + 20 + 0 + false + 1.7976931348623157E308 + -1.7976931348623157E308 + false + Offset + 0 + true + loc://MM_Poke_Offset<VString> + + 0.0 + + + true + true + false + + + 0 + true + + + $(pv_name) +$(pv_value) + false + true + Text Input + 136 + 54e87698:1777e01a75d:-6f37 + 114 + 107 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_5 + + + true + true + false + + + Data + + true + 1 + true + Label + 97 + false + 54e87698:1777e01a75d:-6e32 + 12 + 132 + + + + false + false + false + + + + true + + + + 1 + 1 + + true + + Default + + false + + + + 0 + 20 + 0 + false + 1.7976931348623157E308 + -1.7976931348623157E308 + false + Data + 0 + true + loc://MM_Poke_Data<VString> + + 0.0 + + + true + true + false + + + 0 + true + + + $(pv_name) +$(pv_value) + false + true + Text Input + 136 + 54e87698:1777e01a75d:-6e31 + 114 + 132 + + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/MM/SymbolTableToFile.opi b/core/base/tools/commander/workspace_template/Displays/Apps/MM/SymbolTableToFile.opi new file mode 100644 index 000000000..6a7eca457 --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/Apps/MM/SymbolTableToFile.opi @@ -0,0 +1,232 @@ + + + + + false + -1 + -1 + + false + + + + 1.5.3 + + + + 6 + 100 + + true + + MM - Dump Memory to File + + + true + true + true + true + true + Display + 260 + -10b748b0:17773fb054b:-7a2f + -1 + -1 + + + false + + + + + + + 0 + 1 + true + + Default Bold + + + + + 20 + 1 + Label_49 + + + true + true + false + + + Symbol Table to File + + true + 1 + true + Label + 175 + false + -10b748b0:17773fb054b:-7a20 + 48 + 6 + + + + + + + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 20 + ../../Resources/send.png + NoOp + 0 + + + + + true + true + false + + + + Dump + false + $(pv_name) +$(pv_value) + true + Action Button + 92 + -10b748b0:17773fb054b:-79c7 + 90 + 66 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_5 + + + true + true + false + + + File Name + + true + 1 + true + Label + 97 + false + 54e87698:1777e01a75d:-6ef6 + 12 + 36 + + + + false + false + false + + + + true + + + + 1 + 1 + + true + + Default + + false + + + + 0 + 20 + 0 + false + 1.7976931348623157E308 + -1.7976931348623157E308 + false + FileName + 0 + true + loc://MM_SymbolTableToFile_FileName<VString> + + 0.0 + + + true + true + false + + + 0 + true + + + $(pv_name) +$(pv_value) + false + true + Text Input + 136 + 54e87698:1777e01a75d:-6ef5 + 114 + 36 + + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/MM/scripts/NoOp.js b/core/base/tools/commander/workspace_template/Displays/Apps/MM/scripts/NoOp.js deleted file mode 100644 index 685947434..000000000 --- a/core/base/tools/commander/workspace_template/Displays/Apps/MM/scripts/NoOp.js +++ /dev/null @@ -1,4 +0,0 @@ -importPackage(Packages.org.csstudio.opibuilder.scriptUtil); -importPackage(Packages.org.yamcs.studio.script); - -Yamcs.issueCommand('/cfs/mm/Noop', {}); \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/MM/scripts/ResetCounters.js b/core/base/tools/commander/workspace_template/Displays/Apps/MM/scripts/ResetCounters.js deleted file mode 100644 index 4d2a3ac4d..000000000 --- a/core/base/tools/commander/workspace_template/Displays/Apps/MM/scripts/ResetCounters.js +++ /dev/null @@ -1,4 +0,0 @@ -importPackage(Packages.org.csstudio.opibuilder.scriptUtil); -importPackage(Packages.org.yamcs.studio.script); - -Yamcs.issueCommand('/cfs/mm/Reset', {}); \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/SC/AppendAts.opi b/core/base/tools/commander/workspace_template/Displays/Apps/SC/AppendAts.opi new file mode 100644 index 000000000..3001ba2bc --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/Apps/SC/AppendAts.opi @@ -0,0 +1,232 @@ + + + + + false + -1 + -1 + + false + + + + 1.5.3 + + + + 6 + 100 + + true + + SC - Append ATS + + + true + true + true + true + true + Display + 190 + -10b748b0:17773fb054b:-7a2f + -1 + -1 + + + false + + + + + + + 0 + 1 + true + + Default Bold + + + + + 20 + 1 + Label_49 + + + true + true + false + + + Append ATS + + true + 1 + true + Label + 98 + false + -10b748b0:17773fb054b:-7a20 + 42 + 12 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label + + + true + true + false + + + ATS ID + + true + 1 + true + Label + 61 + false + -10b748b0:17773fb054b:-7a0f + 0 + 36 + + + + + + + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 20 + ../../Resources/send.png + NoOp + 0 + + + + + true + true + false + + + + Append + false + $(pv_name) +$(pv_value) + true + Action Button + 92 + -10b748b0:17773fb054b:-79c7 + 48 + 66 + + + + false + false + false + + + + true + + + + 1 + 1 + + true + + Default + + false + + + + 0 + 20 + 0 + false + 1.7976931348623157E308 + -1.7976931348623157E308 + false + AtsId + 0 + true + loc://SC_AppendATS_AtsId<VString> + + 0.0 + + + true + true + false + + + 0 + true + + + $(pv_name) +$(pv_value) + false + true + Text Input + 100 + -10b748b0:17773fb054b:-78ff + 72 + 36 + + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/SC/ContinueATSOnFailure.opi b/core/base/tools/commander/workspace_template/Displays/Apps/SC/ContinueATSOnFailure.opi new file mode 100644 index 000000000..f7a126e9d --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/Apps/SC/ContinueATSOnFailure.opi @@ -0,0 +1,195 @@ + + + + + false + -1 + -1 + + false + + + + 1.5.3 + + + + 6 + 100 + + true + + SC - Continue ATS + + + true + true + true + true + true + Display + 190 + -10b748b0:17773fb054b:-7a2f + -1 + -1 + + + false + + + + + + + 0 + 1 + true + + Default Bold + + + + + 20 + 1 + Label_49 + + + true + true + false + + + Continue ATS on Failure + + true + 1 + true + Label + 193 + false + -10b748b0:17773fb054b:-7a20 + -3 + 12 + + + + + + + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 20 + ../../Resources/send.png + NoOp + 0 + + + + + true + true + false + + + + Set + false + $(pv_name) +$(pv_value) + true + Action Button + 92 + -10b748b0:17773fb054b:-79c7 + 48 + 66 + + + + false + false + + + + true + + + + 0 + 1 + true + + Default + + false + + + + 22 + true + + False + True + + false + ContinueState + loc://SC_ContinueATSOnFailure_ContinueState<VString> + + + + true + true + false + + + + + + $(pv_name) +$(pv_value) + true + Radio Box + 157 + 54e87698:1777e01a75d:-76b3 + 30 + 31 + + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/SC/DisableRTS.opi b/core/base/tools/commander/workspace_template/Displays/Apps/SC/DisableRTS.opi new file mode 100644 index 000000000..534132308 --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/Apps/SC/DisableRTS.opi @@ -0,0 +1,232 @@ + + + + + false + -1 + -1 + + false + + + + 1.5.3 + + + + 6 + 100 + + true + + SC - Disable RTS + + + true + true + true + true + true + Display + 190 + -10b748b0:17773fb054b:-7a2f + -1 + -1 + + + false + + + + + + + 0 + 1 + true + + Default Bold + + + + + 20 + 1 + Label_49 + + + true + true + false + + + Disable RTS + + true + 1 + true + Label + 98 + false + -10b748b0:17773fb054b:-7a20 + 45 + 6 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label + + + true + true + false + + + RTS ID + + true + 1 + true + Label + 55 + false + -10b748b0:17773fb054b:-7a0f + 6 + 36 + + + + + + + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 20 + ../../Resources/send.png + NoOp + 0 + + + + + true + true + false + + + + Disable + false + $(pv_name) +$(pv_value) + true + Action Button + 92 + -10b748b0:17773fb054b:-79c7 + 48 + 66 + + + + false + false + false + + + + true + + + + 1 + 1 + + true + + Default + + false + + + + 0 + 20 + 0 + false + 1.7976931348623157E308 + -1.7976931348623157E308 + false + RtsId + 0 + true + loc://SC_DisableRTS_RtsId<VString> + + 0.0 + + + true + true + false + + + 0 + true + + + $(pv_name) +$(pv_value) + false + true + Text Input + 100 + -10b748b0:17773fb054b:-78ff + 72 + 36 + + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/SC/DisableRTSGroup.opi b/core/base/tools/commander/workspace_template/Displays/Apps/SC/DisableRTSGroup.opi new file mode 100644 index 000000000..05a4aa2ca --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/Apps/SC/DisableRTSGroup.opi @@ -0,0 +1,332 @@ + + + + + false + -1 + -1 + + false + + + + 1.5.3 + + + + 6 + 120 + + true + + SC - Disable RTS Group + + + true + true + true + true + true + Display + 220 + -10b748b0:17773fb054b:-7a2f + -1 + -1 + + + false + + + + + + + 0 + 1 + true + + Default Bold + + + + + 20 + 1 + Label_49 + + + true + true + false + + + Disable RTS Group + + true + 1 + true + Label + 160 + false + -10b748b0:17773fb054b:-7a20 + 24 + 6 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label + + + true + true + false + + + First RTS ID + + true + 1 + true + Label + 91 + false + -10b748b0:17773fb054b:-7a0f + 6 + 36 + + + + + + + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 20 + ../../Resources/send.png + NoOp + 0 + + + + + true + true + false + + + + Disable + false + $(pv_name) +$(pv_value) + true + Action Button + 92 + -10b748b0:17773fb054b:-79c7 + 58 + 90 + + + + false + false + false + + + + true + + + + 1 + 1 + + true + + Default + + false + + + + 0 + 20 + 0 + false + 1.7976931348623157E308 + -1.7976931348623157E308 + false + FirstRtsId + 0 + true + loc://SC_EnableRTSGroup_FirstRtsId<VString> + + 0.0 + + + true + true + false + + + 0 + true + + + $(pv_name) +$(pv_value) + false + true + Text Input + 100 + -10b748b0:17773fb054b:-78ff + 108 + 36 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_2 + + + true + true + false + + + Last RTS ID + + true + 1 + true + Label + 91 + false + 54e87698:1777e01a75d:-70ef + 6 + 55 + + + + false + false + false + + + + true + + + + 1 + 1 + + true + + Default + + false + + + + 0 + 20 + 0 + false + 1.7976931348623157E308 + -1.7976931348623157E308 + false + LastRtsId + 0 + true + loc://SC_EnableRTSGroup_LastRtsId<VString> + + 0.0 + + + true + true + false + + + 0 + true + + + $(pv_name) +$(pv_value) + false + true + Text Input + 100 + 54e87698:1777e01a75d:-70ee + 108 + 55 + + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/SC/EnableRTS.opi b/core/base/tools/commander/workspace_template/Displays/Apps/SC/EnableRTS.opi new file mode 100644 index 000000000..37dd7944f --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/Apps/SC/EnableRTS.opi @@ -0,0 +1,232 @@ + + + + + false + -1 + -1 + + false + + + + 1.5.3 + + + + 6 + 100 + + true + + SC - Enable RTS + + + true + true + true + true + true + Display + 190 + -10b748b0:17773fb054b:-7a2f + -1 + -1 + + + false + + + + + + + 0 + 1 + true + + Default Bold + + + + + 20 + 1 + Label_49 + + + true + true + false + + + Enable RTS + + true + 1 + true + Label + 98 + false + -10b748b0:17773fb054b:-7a20 + 45 + 6 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label + + + true + true + false + + + RTS ID + + true + 1 + true + Label + 55 + false + -10b748b0:17773fb054b:-7a0f + 6 + 36 + + + + + + + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 20 + ../../Resources/send.png + NoOp + 0 + + + + + true + true + false + + + + Enable + false + $(pv_name) +$(pv_value) + true + Action Button + 92 + -10b748b0:17773fb054b:-79c7 + 48 + 66 + + + + false + false + false + + + + true + + + + 1 + 1 + + true + + Default + + false + + + + 0 + 20 + 0 + false + 1.7976931348623157E308 + -1.7976931348623157E308 + false + RtsId + 0 + true + loc://SC_EnableRTS_RtsId<VString> + + 0.0 + + + true + true + false + + + 0 + true + + + $(pv_name) +$(pv_value) + false + true + Text Input + 100 + -10b748b0:17773fb054b:-78ff + 72 + 36 + + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/SC/EnableRTSGroup.opi b/core/base/tools/commander/workspace_template/Displays/Apps/SC/EnableRTSGroup.opi new file mode 100644 index 000000000..d66034fcf --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/Apps/SC/EnableRTSGroup.opi @@ -0,0 +1,332 @@ + + + + + false + -1 + -1 + + false + + + + 1.5.3 + + + + 6 + 120 + + true + + SC - Enable RTS Group + + + true + true + true + true + true + Display + 220 + -10b748b0:17773fb054b:-7a2f + -1 + -1 + + + false + + + + + + + 0 + 1 + true + + Default Bold + + + + + 20 + 1 + Label_49 + + + true + true + false + + + Enable RTS Group + + true + 1 + true + Label + 160 + false + -10b748b0:17773fb054b:-7a20 + 24 + 6 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label + + + true + true + false + + + First RTS ID + + true + 1 + true + Label + 91 + false + -10b748b0:17773fb054b:-7a0f + 6 + 36 + + + + + + + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 20 + ../../Resources/send.png + NoOp + 0 + + + + + true + true + false + + + + Enable + false + $(pv_name) +$(pv_value) + true + Action Button + 92 + -10b748b0:17773fb054b:-79c7 + 58 + 90 + + + + false + false + false + + + + true + + + + 1 + 1 + + true + + Default + + false + + + + 0 + 20 + 0 + false + 1.7976931348623157E308 + -1.7976931348623157E308 + false + FirstRtsId + 0 + true + loc://SC_EnableRTSGroup_FirstRtsId<VString> + + 0.0 + + + true + true + false + + + 0 + true + + + $(pv_name) +$(pv_value) + false + true + Text Input + 100 + -10b748b0:17773fb054b:-78ff + 108 + 36 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_2 + + + true + true + false + + + Last RTS ID + + true + 1 + true + Label + 91 + false + 54e87698:1777e01a75d:-70ef + 6 + 55 + + + + false + false + false + + + + true + + + + 1 + 1 + + true + + Default + + false + + + + 0 + 20 + 0 + false + 1.7976931348623157E308 + -1.7976931348623157E308 + false + LastRtsId + 0 + true + loc://SC_EnableRTSGroup_LastRtsId<VString> + + 0.0 + + + true + true + false + + + 0 + true + + + $(pv_name) +$(pv_value) + false + true + Text Input + 100 + 54e87698:1777e01a75d:-70ee + 108 + 55 + + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/SC/JumpATS.opi b/core/base/tools/commander/workspace_template/Displays/Apps/SC/JumpATS.opi new file mode 100644 index 000000000..a1997b234 --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/Apps/SC/JumpATS.opi @@ -0,0 +1,232 @@ + + + + + false + -1 + -1 + + false + + + + 1.5.3 + + + + 6 + 100 + + true + + SC - Jump ATS + + + true + true + true + true + true + Display + 190 + -10b748b0:17773fb054b:-7a2f + -1 + -1 + + + false + + + + + + + 0 + 1 + true + + Default Bold + + + + + 20 + 1 + Label_49 + + + true + true + false + + + Jump ATS + + true + 1 + true + Label + 98 + false + -10b748b0:17773fb054b:-7a20 + 42 + 12 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label + + + true + true + false + + + New Time + + true + 1 + true + Label + 73 + false + -10b748b0:17773fb054b:-7a0f + 0 + 36 + + + + + + + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 20 + ../../Resources/send.png + NoOp + 0 + + + + + true + true + false + + + + Jump + false + $(pv_name) +$(pv_value) + true + Action Button + 92 + -10b748b0:17773fb054b:-79c7 + 48 + 66 + + + + false + false + false + + + + true + + + + 1 + 1 + + true + + Default + + false + + + + 0 + 20 + 0 + false + 1.7976931348623157E308 + -1.7976931348623157E308 + false + NewTime + 0 + true + loc://SC_JumpATS_NewTime<VString> + + 0.0 + + + true + true + false + + + 0 + true + + + $(pv_name) +$(pv_value) + false + true + Text Input + 100 + -10b748b0:17773fb054b:-78ff + 84 + 36 + + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/SC/Main.opi b/core/base/tools/commander/workspace_template/Displays/Apps/SC/Main.opi index b264bf0ec..44f3104fa 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/SC/Main.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/SC/Main.opi @@ -28,7 +28,7 @@ true true Display - 370 + 500 -33cb7c72:150aa4c347f:-76c2 -1 -1 @@ -81,8 +81,8 @@ $(pv_value) 100 false -33cb7c72:150aa4c347f:-75ff - 95 - 57 + 125 + 41 @@ -118,11 +118,11 @@ $(pv_value) 1 true Label - 72 + 97 false -33cb7c72:150aa4c347f:-75fe - 12 - 57 + 17 + 41 @@ -161,48 +161,8 @@ $(pv_value) 60 false -33cb7c72:150aa4c347f:-75fd - 24 - 76 - - - - false - - - - - - - 0 - 1 - true - - Default Bold - - - - - 20 - 1 - Label_46 - - - true - true - false - - - Commanding - - true - 1 - true - Label - 164 - false - -33cb7c72:150aa4c347f:-75fc - 66 - 30 + 54 + 60 @@ -253,8 +213,8 @@ $(pv_value) 100 false -33cb7c72:150aa4c347f:-75fb - 95 - 76 + 125 + 60 @@ -307,10 +267,10 @@ Yamcs.issueCommand('/cfs/sc/Noop',{});]]> $(pv_value) true Action Button - 67 + 78 -33cb7c72:150aa4c347f:-75fa - 210 - 58 + 240 + 42 @@ -363,10 +323,10 @@ Yamcs.issueCommand('/cfs/sc/Reset', {});]]> $(pv_value) true Action Button - 67 + 78 -33cb7c72:150aa4c347f:-75f9 - 210 - 79 + 240 + 63 @@ -405,8 +365,8 @@ $(pv_value) 272 false -33cb7c72:150aa4c347f:-75c9 - 12 - 6 + 106 + 12 @@ -457,8 +417,8 @@ $(pv_value) 100 false 7b256c5c:150b979c7e3:-766f - 162 - 113 + 192 + 97 @@ -509,8 +469,8 @@ $(pv_value) 100 false 7b256c5c:150b979c7e3:-766e - 162 - 132 + 192 + 116 @@ -556,8 +516,8 @@ $(pv_value) Check Box 100 7b256c5c:150b979c7e3:-766d - 162 - 151 + 192 + 135 @@ -603,8 +563,8 @@ $(pv_value) Check Box 100 7b256c5c:150b979c7e3:-766c - 162 - 170 + 192 + 154 @@ -655,8 +615,8 @@ $(pv_value) 100 false 7b256c5c:150b979c7e3:-766b - 162 - 189 + 192 + 173 @@ -707,8 +667,8 @@ $(pv_value) 100 false 7b256c5c:150b979c7e3:-766a - 162 - 208 + 192 + 192 @@ -759,8 +719,8 @@ $(pv_value) 100 false 7b256c5c:150b979c7e3:-7669 - 162 - 227 + 192 + 211 @@ -811,8 +771,8 @@ $(pv_value) 100 false 7b256c5c:150b979c7e3:-7668 - 162 - 246 + 192 + 230 @@ -863,8 +823,8 @@ $(pv_value) 100 false 7b256c5c:150b979c7e3:-7667 - 162 - 265 + 192 + 249 @@ -915,8 +875,8 @@ $(pv_value) 100 false 7b256c5c:150b979c7e3:-7666 - 162 - 284 + 192 + 268 @@ -967,8 +927,8 @@ $(pv_value) 100 false 7b256c5c:150b979c7e3:-7665 - 162 - 303 + 192 + 287 @@ -1019,8 +979,8 @@ $(pv_value) 100 false 7b256c5c:150b979c7e3:-7664 - 162 - 322 + 192 + 306 @@ -1071,8 +1031,8 @@ $(pv_value) 100 false 7b256c5c:150b979c7e3:-7663 - 162 - 341 + 192 + 325 @@ -1123,8 +1083,8 @@ $(pv_value) 100 false 7b256c5c:150b979c7e3:-7662 - 162 - 360 + 192 + 344 @@ -1153,7 +1113,7 @@ $(pv_value) 0 Text Update_16 0 - true + false /cfs/sc/SC_HkTlm_t.LastRtsErrSeq 0.0 @@ -1175,8 +1135,8 @@ $(pv_value) 100 false 7b256c5c:150b979c7e3:-7661 - 162 - 379 + 192 + 363 @@ -1227,8 +1187,8 @@ $(pv_value) 100 false 7b256c5c:150b979c7e3:-7660 - 162 - 398 + 192 + 382 @@ -1279,8 +1239,8 @@ $(pv_value) 100 false 7b256c5c:150b979c7e3:-765f - 162 - 417 + 192 + 401 @@ -1331,8 +1291,8 @@ $(pv_value) 100 false 7b256c5c:150b979c7e3:-765e - 162 - 436 + 192 + 420 @@ -1383,8 +1343,8 @@ $(pv_value) 100 false 7b256c5c:150b979c7e3:-765d - 162 - 455 + 192 + 439 @@ -1435,8 +1395,8 @@ $(pv_value) 100 false 7b256c5c:150b979c7e3:-765c - 162 - 474 + 192 + 458 @@ -1487,8 +1447,8 @@ $(pv_value) 100 false 7b256c5c:150b979c7e3:-765b - 162 - 493 + 192 + 477 @@ -1539,8 +1499,8 @@ $(pv_value) 100 false 7b256c5c:150b979c7e3:-765a - 162 - 512 + 192 + 496 @@ -1591,8 +1551,8 @@ $(pv_value) 100 false 7b256c5c:150b979c7e3:-7659 - 261 - 512 + 291 + 496 @@ -1643,8 +1603,8 @@ $(pv_value) 100 false 7b256c5c:150b979c7e3:-7658 - 162 - 531 + 192 + 515 @@ -1673,7 +1633,7 @@ $(pv_value) 0 Text Update_26 0 - true + false /cfs/sc/SC_HkTlm_t.NextAtsTime 0.0 @@ -1695,8 +1655,8 @@ $(pv_value) 100 false 7b256c5c:150b979c7e3:-7657 - 162 - 550 + 192 + 534 @@ -1735,8 +1695,8 @@ $(pv_value) 102 false 7b256c5c:150b979c7e3:-764f - 48 - 113 + 78 + 97 @@ -1775,8 +1735,8 @@ $(pv_value) 102 false 7b256c5c:150b979c7e3:-764a - 48 - 132 + 78 + 116 @@ -1812,11 +1772,11 @@ $(pv_value) 1 true Label - 141 + 169 false 7b256c5c:150b979c7e3:-7645 - 9 - 151 + 11 + 135 @@ -1855,8 +1815,8 @@ $(pv_value) 102 false 7b256c5c:150b979c7e3:-7640 - 48 - 170 + 78 + 154 @@ -1892,11 +1852,11 @@ $(pv_value) 1 true Label - 102 + 163 false 7b256c5c:150b979c7e3:-763b - 48 - 189 + 17 + 173 @@ -1935,8 +1895,8 @@ $(pv_value) 102 false 7b256c5c:150b979c7e3:-7636 - 48 - 227 + 78 + 211 @@ -1975,8 +1935,8 @@ $(pv_value) 102 false 7b256c5c:150b979c7e3:-7631 - 48 - 208 + 78 + 192 @@ -2012,11 +1972,11 @@ $(pv_value) 1 true Label - 117 + 151 false 7b256c5c:150b979c7e3:-762c - 33 - 246 + 29 + 230 @@ -2055,8 +2015,8 @@ $(pv_value) 102 false 7b256c5c:150b979c7e3:-7627 - 48 - 284 + 78 + 268 @@ -2095,8 +2055,8 @@ $(pv_value) 102 false 7b256c5c:150b979c7e3:-7622 - 48 - 265 + 78 + 249 @@ -2135,8 +2095,8 @@ $(pv_value) 102 false 7b256c5c:150b979c7e3:-761d - 48 - 303 + 78 + 287 @@ -2175,8 +2135,8 @@ $(pv_value) 102 false 7b256c5c:150b979c7e3:-75d7 - 48 - 550 + 78 + 534 @@ -2215,8 +2175,8 @@ $(pv_value) 102 false 7b256c5c:150b979c7e3:-75d2 - 48 - 531 + 78 + 515 @@ -2252,11 +2212,11 @@ $(pv_value) 1 true Label - 102 + 145 false 7b256c5c:150b979c7e3:-75c8 - 48 - 512 + 35 + 496 @@ -2295,8 +2255,8 @@ $(pv_value) 129 false 7b256c5c:150b979c7e3:-75c3 - 21 - 493 + 51 + 477 @@ -2335,8 +2295,8 @@ $(pv_value) 129 false 7b256c5c:150b979c7e3:-75be - 21 - 474 + 51 + 458 @@ -2375,8 +2335,8 @@ $(pv_value) 129 false 7b256c5c:150b979c7e3:-75b9 - 21 - 455 + 51 + 439 @@ -2412,11 +2372,11 @@ $(pv_value) 1 true Label - 129 + 151 false 7b256c5c:150b979c7e3:-75b4 - 21 - 436 + 29 + 420 @@ -2455,8 +2415,8 @@ $(pv_value) 129 false 7b256c5c:150b979c7e3:-75af - 21 - 360 + 51 + 344 @@ -2492,11 +2452,11 @@ $(pv_value) 1 true Label - 102 + 145 false 7b256c5c:150b979c7e3:-75aa - 48 - 341 + 35 + 325 @@ -2532,11 +2492,11 @@ $(pv_value) 1 true Label - 102 + 126 false 7b256c5c:150b979c7e3:-75a5 - 48 - 379 + 54 + 363 @@ -2575,8 +2535,8 @@ $(pv_value) 102 false 7b256c5c:150b979c7e3:-75a0 - 48 - 322 + 78 + 306 @@ -2615,8 +2575,8 @@ $(pv_value) 123 false 7b256c5c:150b979c7e3:-759b - 27 - 417 + 57 + 401 @@ -2655,7 +2615,947 @@ $(pv_value) 102 false 7b256c5c:150b979c7e3:-7596 - 48 - 398 + 78 + 382 + + + + + StartATS.opi + + true + + 1 + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 20 + + Action Button_3 + 0 + + + + + true + true + false + + + + Start ATS + false + $(pv_name) +$(pv_value) + true + Action Button + 164 + 54e87698:1777e01a75d:-7547 + 317 + 276 + + + + + scripts/NoOp.js + + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 20 + ../../Resources/send.png + NoOp_11 + 0 + + + + + true + true + false + + + + Stop ATS + false + $(pv_name) +$(pv_value) + true + Action Button + 164 + 54e87698:1777e01a75d:-752f + 317 + 295 + + + + + scripts/NoOp.js + + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 20 + ../../Resources/send.png + NoOp_14 + 0 + + + + + true + true + false + + + + Switch ATS + false + $(pv_name) +$(pv_value) + true + Action Button + 164 + 54e87698:1777e01a75d:-7517 + 317 + 314 + + + + + scripts/NoOp.js + + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 20 + ../../Resources/send.png + NoOp_8 + 0 + + + + + true + true + false + + + + Manage Table + false + $(pv_name) +$(pv_value) + true + Action Button + 164 + 54e87698:1777e01a75d:-750f + 317 + 420 + + + + + AppendAts.opi + + true + + 1 + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 20 + + Action Button + 0 + + + + + true + true + false + + + + Append ATS + false + $(pv_name) +$(pv_value) + true + Action Button + 164 + 54e87698:1777e01a75d:-7507 + 317 + 333 + + + + + ContinueATSOnFailure.opi + + true + + 1 + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 20 + + Action Button_1 + 0 + + + + + true + true + false + + + + Continue ATS on Fail + false + $(pv_name) +$(pv_value) + true + Action Button + 164 + 54e87698:1777e01a75d:-74ff + 317 + 352 + + + + + JumpATS.opi + + true + + 1 + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 20 + + Action Button_2 + 0 + + + + + true + true + false + + + + Jump ATS + false + $(pv_name) +$(pv_value) + true + Action Button + 164 + 54e87698:1777e01a75d:-74f7 + 317 + 371 + + + + + scripts/NoOp.js + + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 20 + ../../Resources/send.png + NoOp_2 + 0 + + + + + true + true + false + + + + SendHK + false + $(pv_name) +$(pv_value) + true + Action Button + 164 + 54e87698:1777e01a75d:-74ef + 317 + 439 + + + + + scripts/NoOp.js + + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 20 + ../../Resources/send.png + NoOp_3 + 0 + + + + + true + true + false + + + + 1Hz WakeUp + false + $(pv_name) +$(pv_value) + true + Action Button + 164 + 54e87698:1777e01a75d:-74e7 + 317 + 458 + + + + + EnableRTS.opi + + true + + 1 + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 20 + + Action Button_7 + 0 + + + + + true + true + false + + + + Enable RTS + false + $(pv_name) +$(pv_value) + true + Action Button + 164 + 54e87698:1777e01a75d:-7208 + 317 + 97 + + + + + EnableRTSGroup.opi + + true + + 1 + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 20 + + Action Button_8 + 0 + + + + + true + true + false + + + + Enable RTS Group + false + $(pv_name) +$(pv_value) + true + Action Button + 164 + 54e87698:1777e01a75d:-71fe + 317 + 116 + + + + + DisableRTS.opi + + true + + 1 + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 20 + + Action Button_6 + 0 + + + + + true + true + false + + + + Disable RTS + false + $(pv_name) +$(pv_value) + true + Action Button + 164 + 54e87698:1777e01a75d:-71f4 + 317 + 135 + + + + + DisableRTSGroup.opi + + true + + 1 + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 20 + + Action Button_10 + 0 + + + + + true + true + false + + + + Disable RTS Group + false + $(pv_name) +$(pv_value) + true + Action Button + 164 + 54e87698:1777e01a75d:-71ec + 317 + 154 + + + + + StartRTS.opi + + true + + 1 + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 20 + + Action Button_4 + 0 + + + + + true + true + false + + + + Start RTS + false + $(pv_name) +$(pv_value) + true + Action Button + 164 + 54e87698:1777e01a75d:-71e2 + 317 + 173 + + + + + StartRTSGroup.opi + + true + + 1 + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 20 + + Action Button_13 + 0 + + + + + true + true + false + + + + Start RTS Group + false + $(pv_name) +$(pv_value) + true + Action Button + 164 + 54e87698:1777e01a75d:-71d2 + 317 + 192 + + + + + StopRTS.opi + + true + + 1 + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 20 + + Action Button_5 + 0 + + + + + true + true + false + + + + Stop RTS + false + $(pv_name) +$(pv_value) + true + Action Button + 164 + 54e87698:1777e01a75d:-71c0 + 317 + 211 + + + + + StopRTSGroup.opi + + true + + 1 + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 20 + + Action Button_15 + 0 + + + + + true + true + false + + + + Stop RTS Group + false + $(pv_name) +$(pv_value) + true + Action Button + 164 + 54e87698:1777e01a75d:-71b8 + 317 + 230 \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/SC/StartATS.opi b/core/base/tools/commander/workspace_template/Displays/Apps/SC/StartATS.opi new file mode 100644 index 000000000..1d1f9601c --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/Apps/SC/StartATS.opi @@ -0,0 +1,232 @@ + + + + + false + -1 + -1 + + false + + + + 1.5.3 + + + + 6 + 100 + + true + + SC - Start ATS + + + true + true + true + true + true + Display + 190 + -10b748b0:17773fb054b:-7a2f + -1 + -1 + + + false + + + + + + + 0 + 1 + true + + Default Bold + + + + + 20 + 1 + Label_49 + + + true + true + false + + + Start ATS + + true + 1 + true + Label + 98 + false + -10b748b0:17773fb054b:-7a20 + 42 + 12 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label + + + true + true + false + + + ATS ID + + true + 1 + true + Label + 61 + false + -10b748b0:17773fb054b:-7a0f + 0 + 36 + + + + + + + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 20 + ../../Resources/send.png + NoOp + 0 + + + + + true + true + false + + + + Start + false + $(pv_name) +$(pv_value) + true + Action Button + 72 + -10b748b0:17773fb054b:-79c7 + 55 + 66 + + + + false + false + false + + + + true + + + + 1 + 1 + + true + + Default + + false + + + + 0 + 20 + 0 + false + 1.7976931348623157E308 + -1.7976931348623157E308 + false + AtsId + 0 + true + loc://SC_StartATS_AtsId<VString> + + 0.0 + + + true + true + false + + + 0 + true + + + $(pv_name) +$(pv_value) + false + true + Text Input + 100 + -10b748b0:17773fb054b:-78ff + 72 + 36 + + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/SC/StartRTS.opi b/core/base/tools/commander/workspace_template/Displays/Apps/SC/StartRTS.opi new file mode 100644 index 000000000..5f5a56862 --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/Apps/SC/StartRTS.opi @@ -0,0 +1,232 @@ + + + + + false + -1 + -1 + + false + + + + 1.5.3 + + + + 6 + 100 + + true + + SC - Start RTS + + + true + true + true + true + true + Display + 190 + -10b748b0:17773fb054b:-7a2f + -1 + -1 + + + false + + + + + + + 0 + 1 + true + + Default Bold + + + + + 20 + 1 + Label_49 + + + true + true + false + + + Start RTS + + true + 1 + true + Label + 98 + false + -10b748b0:17773fb054b:-7a20 + 45 + 6 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label + + + true + true + false + + + RTS ID + + true + 1 + true + Label + 55 + false + -10b748b0:17773fb054b:-7a0f + 6 + 36 + + + + + + + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 20 + ../../Resources/send.png + NoOp + 0 + + + + + true + true + false + + + + Start + false + $(pv_name) +$(pv_value) + true + Action Button + 92 + -10b748b0:17773fb054b:-79c7 + 48 + 66 + + + + false + false + false + + + + true + + + + 1 + 1 + + true + + Default + + false + + + + 0 + 20 + 0 + false + 1.7976931348623157E308 + -1.7976931348623157E308 + false + RtsId + 0 + true + loc://SC_StartRTS_RtsId<VString> + + 0.0 + + + true + true + false + + + 0 + true + + + $(pv_name) +$(pv_value) + false + true + Text Input + 100 + -10b748b0:17773fb054b:-78ff + 72 + 36 + + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/SC/StartRTSGroup.opi b/core/base/tools/commander/workspace_template/Displays/Apps/SC/StartRTSGroup.opi new file mode 100644 index 000000000..5f957c2bc --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/Apps/SC/StartRTSGroup.opi @@ -0,0 +1,332 @@ + + + + + false + -1 + -1 + + false + + + + 1.5.3 + + + + 6 + 120 + + true + + SC - Start RTS Group + + + true + true + true + true + true + Display + 220 + -10b748b0:17773fb054b:-7a2f + -1 + -1 + + + false + + + + + + + 0 + 1 + true + + Default Bold + + + + + 20 + 1 + Label_49 + + + true + true + false + + + Start RTS Group + + true + 1 + true + Label + 160 + false + -10b748b0:17773fb054b:-7a20 + 24 + 6 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label + + + true + true + false + + + First RTS ID + + true + 1 + true + Label + 91 + false + -10b748b0:17773fb054b:-7a0f + 6 + 36 + + + + + + + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 20 + ../../Resources/send.png + NoOp + 0 + + + + + true + true + false + + + + Start + false + $(pv_name) +$(pv_value) + true + Action Button + 92 + -10b748b0:17773fb054b:-79c7 + 58 + 90 + + + + false + false + false + + + + true + + + + 1 + 1 + + true + + Default + + false + + + + 0 + 20 + 0 + false + 1.7976931348623157E308 + -1.7976931348623157E308 + false + FirstRtsId + 0 + true + loc://SC_EnableRTSGroup_FirstRtsId<VString> + + 0.0 + + + true + true + false + + + 0 + true + + + $(pv_name) +$(pv_value) + false + true + Text Input + 100 + -10b748b0:17773fb054b:-78ff + 108 + 36 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_2 + + + true + true + false + + + Last RTS ID + + true + 1 + true + Label + 91 + false + 54e87698:1777e01a75d:-70ef + 6 + 55 + + + + false + false + false + + + + true + + + + 1 + 1 + + true + + Default + + false + + + + 0 + 20 + 0 + false + 1.7976931348623157E308 + -1.7976931348623157E308 + false + LastRtsId + 0 + true + loc://SC_EnableRTSGroup_LastRtsId<VString> + + 0.0 + + + true + true + false + + + 0 + true + + + $(pv_name) +$(pv_value) + false + true + Text Input + 100 + 54e87698:1777e01a75d:-70ee + 108 + 55 + + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/SC/StopRTS.opi b/core/base/tools/commander/workspace_template/Displays/Apps/SC/StopRTS.opi new file mode 100644 index 000000000..df9849552 --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/Apps/SC/StopRTS.opi @@ -0,0 +1,232 @@ + + + + + false + -1 + -1 + + false + + + + 1.5.3 + + + + 6 + 100 + + true + + SC - Stop RTS + + + true + true + true + true + true + Display + 190 + -10b748b0:17773fb054b:-7a2f + -1 + -1 + + + false + + + + + + + 0 + 1 + true + + Default Bold + + + + + 20 + 1 + Label_49 + + + true + true + false + + + Stop RTS + + true + 1 + true + Label + 98 + false + -10b748b0:17773fb054b:-7a20 + 45 + 6 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label + + + true + true + false + + + RTS ID + + true + 1 + true + Label + 55 + false + -10b748b0:17773fb054b:-7a0f + 6 + 36 + + + + + + + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 20 + ../../Resources/send.png + NoOp + 0 + + + + + true + true + false + + + + Stop + false + $(pv_name) +$(pv_value) + true + Action Button + 92 + -10b748b0:17773fb054b:-79c7 + 48 + 66 + + + + false + false + false + + + + true + + + + 1 + 1 + + true + + Default + + false + + + + 0 + 20 + 0 + false + 1.7976931348623157E308 + -1.7976931348623157E308 + false + RtsId + 0 + true + loc://SC_StopRTS_RtsId<VString> + + 0.0 + + + true + true + false + + + 0 + true + + + $(pv_name) +$(pv_value) + false + true + Text Input + 100 + -10b748b0:17773fb054b:-78ff + 72 + 36 + + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/SC/StopRTSGroup.opi b/core/base/tools/commander/workspace_template/Displays/Apps/SC/StopRTSGroup.opi new file mode 100644 index 000000000..8dd27ba09 --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/Apps/SC/StopRTSGroup.opi @@ -0,0 +1,332 @@ + + + + + false + -1 + -1 + + false + + + + 1.5.3 + + + + 6 + 120 + + true + + SC - Stop RTS Group + + + true + true + true + true + true + Display + 220 + -10b748b0:17773fb054b:-7a2f + -1 + -1 + + + false + + + + + + + 0 + 1 + true + + Default Bold + + + + + 20 + 1 + Label_49 + + + true + true + false + + + Stop RTS Group + + true + 1 + true + Label + 160 + false + -10b748b0:17773fb054b:-7a20 + 24 + 6 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label + + + true + true + false + + + First RTS ID + + true + 1 + true + Label + 91 + false + -10b748b0:17773fb054b:-7a0f + 6 + 36 + + + + + + + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 20 + ../../Resources/send.png + NoOp + 0 + + + + + true + true + false + + + + Stop + false + $(pv_name) +$(pv_value) + true + Action Button + 92 + -10b748b0:17773fb054b:-79c7 + 58 + 90 + + + + false + false + false + + + + true + + + + 1 + 1 + + true + + Default + + false + + + + 0 + 20 + 0 + false + 1.7976931348623157E308 + -1.7976931348623157E308 + false + FirstRtsId + 0 + true + loc://SC_EnableRTSGroup_FirstRtsId<VString> + + 0.0 + + + true + true + false + + + 0 + true + + + $(pv_name) +$(pv_value) + false + true + Text Input + 100 + -10b748b0:17773fb054b:-78ff + 108 + 36 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_2 + + + true + true + false + + + Last RTS ID + + true + 1 + true + Label + 91 + false + 54e87698:1777e01a75d:-70ef + 6 + 55 + + + + false + false + false + + + + true + + + + 1 + 1 + + true + + Default + + false + + + + 0 + 20 + 0 + false + 1.7976931348623157E308 + -1.7976931348623157E308 + false + LastRtsId + 0 + true + loc://SC_EnableRTSGroup_LastRtsId<VString> + + 0.0 + + + true + true + false + + + 0 + true + + + $(pv_name) +$(pv_value) + false + true + Text Input + 100 + 54e87698:1777e01a75d:-70ee + 108 + 55 + + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/SC/scripts/NoOp.js b/core/base/tools/commander/workspace_template/Displays/Apps/SC/scripts/NoOp.js deleted file mode 100644 index e379dec83..000000000 --- a/core/base/tools/commander/workspace_template/Displays/Apps/SC/scripts/NoOp.js +++ /dev/null @@ -1,4 +0,0 @@ -importPackage(Packages.org.csstudio.opibuilder.scriptUtil); -importPackage(Packages.org.yamcs.studio.script); - -Yamcs.issueCommand('/cfs/sc/Noop',{}); \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/SC/scripts/ResetCounters.js b/core/base/tools/commander/workspace_template/Displays/Apps/SC/scripts/ResetCounters.js deleted file mode 100644 index 715e25b96..000000000 --- a/core/base/tools/commander/workspace_template/Displays/Apps/SC/scripts/ResetCounters.js +++ /dev/null @@ -1,4 +0,0 @@ -importPackage(Packages.org.csstudio.opibuilder.scriptUtil); -importPackage(Packages.org.yamcs.studio.script); - -Yamcs.issueCommand('/cfs/sc/Reset',{}); \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/SCH/Diagnostic.opi b/core/base/tools/commander/workspace_template/Displays/Apps/SCH/Diagnostic.opi new file mode 100644 index 000000000..b362dfe3a --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/Apps/SCH/Diagnostic.opi @@ -0,0 +1,132 @@ + + + + + false + -1 + -1 + + false + + + + 1.5.3 + + + + 6 + 120 + + true + + SCH - Diagnostic + + + true + true + true + true + true + Display + 180 + -10b748b0:17773fb054b:-7a2f + -1 + -1 + + + false + + + + + + + 0 + 1 + true + + Default Bold + + + + + 20 + 1 + Label_49 + + + true + true + false + + + SCH - Diagnostic + + true + 1 + true + Label + 134 + false + -10b748b0:17773fb054b:-7a20 + 24 + 12 + + + + + + + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 20 + ../../Resources/send.png + NoOp + 0 + + + + + true + true + false + + + + Send Diag + false + $(pv_name) +$(pv_value) + true + Action Button + 103 + -10b748b0:17773fb054b:-79c7 + 36 + 84 + + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/SCH/DisableActivity.opi b/core/base/tools/commander/workspace_template/Displays/Apps/SCH/DisableActivity.opi new file mode 100644 index 000000000..52be95a55 --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/Apps/SCH/DisableActivity.opi @@ -0,0 +1,331 @@ + + + + + false + -1 + -1 + + false + + + + 1.5.3 + + + + 6 + 120 + + true + + SCH - Disable Activity + + + true + true + true + true + true + Display + 180 + -10b748b0:17773fb054b:-7a2f + -1 + -1 + + + false + + + + + + + 0 + 1 + true + + Default Bold + + + + + 20 + 1 + Label_49 + + + true + true + false + + + Disable Activity + + true + 1 + true + Label + 134 + false + -10b748b0:17773fb054b:-7a20 + 24 + 12 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label + + + true + true + false + + + Slot + + true + 1 + true + Label + 49 + false + -10b748b0:17773fb054b:-7a0f + 5 + 36 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_2 + + + true + true + false + + + Entry + + true + 1 + true + Label + 49 + false + -10b748b0:17773fb054b:-79f1 + 5 + 55 + + + + + + + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 20 + ../../Resources/send.png + NoOp + 0 + + + + + true + true + false + + + + Disable + false + $(pv_name) +$(pv_value) + true + Action Button + 84 + -10b748b0:17773fb054b:-79c7 + 49 + 84 + + + + false + false + false + + + + true + + + + 1 + 1 + + true + + Default + + false + + + + 0 + 20 + 0 + false + 1.7976931348623157E308 + -1.7976931348623157E308 + false + Slot + 0 + true + loc://SCH_DisableActivity_Slot<VString> + + 0.0 + + + true + true + false + + + 0 + true + + + $(pv_name) +$(pv_value) + false + true + Text Input + 100 + -10b748b0:17773fb054b:-78ff + 65 + 36 + + + + false + false + false + + + + true + + + + 1 + 1 + + true + + Default + + false + + + + 0 + 20 + 0 + false + 1.7976931348623157E308 + -1.7976931348623157E308 + false + Entry + 0 + true + loc://SCH_DisableActivity_Entry<VString> + + 0.0 + + + true + true + false + + + 0 + true + + + $(pv_name) +$(pv_value) + false + true + Text Input + 100 + -10b748b0:17773fb054b:-78f7 + 65 + 55 + + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/SCH/DisableGroup.opi b/core/base/tools/commander/workspace_template/Displays/Apps/SCH/DisableGroup.opi new file mode 100644 index 000000000..a72a20c23 --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/Apps/SCH/DisableGroup.opi @@ -0,0 +1,232 @@ + + + + + false + -1 + -1 + + false + + + + 1.5.3 + + + + 6 + 100 + + true + + SCH - Disable Group + + + true + true + true + true + true + Display + 190 + -10b748b0:17773fb054b:-7a2f + -1 + -1 + + + false + + + + + + + 0 + 1 + true + + Default Bold + + + + + 20 + 1 + Label_49 + + + true + true + false + + + Disable Group + + true + 1 + true + Label + 134 + false + -10b748b0:17773fb054b:-7a20 + 24 + 12 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label + + + true + true + false + + + Group ID + + true + 1 + true + Label + 67 + false + -10b748b0:17773fb054b:-7a0f + 6 + 36 + + + + + + + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 20 + ../../Resources/send.png + NoOp + 0 + + + + + true + true + false + + + + Disable + false + $(pv_name) +$(pv_value) + true + Action Button + 84 + -10b748b0:17773fb054b:-79c7 + 49 + 66 + + + + false + false + false + + + + true + + + + 1 + 1 + + true + + Default + + false + + + + 0 + 20 + 0 + false + 1.7976931348623157E308 + -1.7976931348623157E308 + false + GroupID + 0 + true + loc://SCH_DisableGroup_GroupID<VString> + + 0.0 + + + true + true + false + + + 0 + true + + + $(pv_name) +$(pv_value) + false + true + Text Input + 100 + -10b748b0:17773fb054b:-78ff + 78 + 36 + + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/SCH/EnableActivity.opi b/core/base/tools/commander/workspace_template/Displays/Apps/SCH/EnableActivity.opi new file mode 100644 index 000000000..f0be82098 --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/Apps/SCH/EnableActivity.opi @@ -0,0 +1,331 @@ + + + + + false + -1 + -1 + + false + + + + 1.5.3 + + + + 6 + 120 + + true + + SCH - Enable Activity + + + true + true + true + true + true + Display + 180 + -10b748b0:17773fb054b:-7a2f + -1 + -1 + + + false + + + + + + + 0 + 1 + true + + Default Bold + + + + + 20 + 1 + Label_49 + + + true + true + false + + + Enable Activity + + true + 1 + true + Label + 134 + false + -10b748b0:17773fb054b:-7a20 + 24 + 12 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label + + + true + true + false + + + Slot + + true + 1 + true + Label + 49 + false + -10b748b0:17773fb054b:-7a0f + 5 + 36 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_2 + + + true + true + false + + + Entry + + true + 1 + true + Label + 49 + false + -10b748b0:17773fb054b:-79f1 + 5 + 55 + + + + + + + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 20 + ../../Resources/send.png + NoOp + 0 + + + + + true + true + false + + + + Enable + false + $(pv_name) +$(pv_value) + true + Action Button + 72 + -10b748b0:17773fb054b:-79c7 + 55 + 84 + + + + false + false + false + + + + true + + + + 1 + 1 + + true + + Default + + false + + + + 0 + 20 + 0 + false + 1.7976931348623157E308 + -1.7976931348623157E308 + false + Slot + 0 + true + loc://SCH_EnableActivity_Slot<VString> + + 0.0 + + + true + true + false + + + 0 + true + + + $(pv_name) +$(pv_value) + false + true + Text Input + 100 + -10b748b0:17773fb054b:-78ff + 65 + 36 + + + + false + false + false + + + + true + + + + 1 + 1 + + true + + Default + + false + + + + 0 + 20 + 0 + false + 1.7976931348623157E308 + -1.7976931348623157E308 + false + Entry + 0 + true + loc://SCH_EnableActivity_Entry<VString> + + 0.0 + + + true + true + false + + + 0 + true + + + $(pv_name) +$(pv_value) + false + true + Text Input + 100 + -10b748b0:17773fb054b:-78f7 + 65 + 55 + + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/SCH/EnableGroup.opi b/core/base/tools/commander/workspace_template/Displays/Apps/SCH/EnableGroup.opi new file mode 100644 index 000000000..ca434aa87 --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/Apps/SCH/EnableGroup.opi @@ -0,0 +1,232 @@ + + + + + false + -1 + -1 + + false + + + + 1.5.3 + + + + 6 + 100 + + true + + SCH - Enable Group + + + true + true + true + true + true + Display + 190 + -10b748b0:17773fb054b:-7a2f + -1 + -1 + + + false + + + + + + + 0 + 1 + true + + Default Bold + + + + + 20 + 1 + Label_49 + + + true + true + false + + + Enable Group + + true + 1 + true + Label + 134 + false + -10b748b0:17773fb054b:-7a20 + 24 + 12 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label + + + true + true + false + + + Group ID + + true + 1 + true + Label + 67 + false + -10b748b0:17773fb054b:-7a0f + 6 + 36 + + + + + + + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 20 + ../../Resources/send.png + NoOp + 0 + + + + + true + true + false + + + + Enable + false + $(pv_name) +$(pv_value) + true + Action Button + 84 + -10b748b0:17773fb054b:-79c7 + 49 + 66 + + + + false + false + false + + + + true + + + + 1 + 1 + + true + + Default + + false + + + + 0 + 20 + 0 + false + 1.7976931348623157E308 + -1.7976931348623157E308 + false + GroupID + 0 + true + loc://SCH_EnableGroup_GroupID<VString> + + 0.0 + + + true + true + false + + + 0 + true + + + $(pv_name) +$(pv_value) + false + true + Text Input + 100 + -10b748b0:17773fb054b:-78ff + 78 + 36 + + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/SCH/Main.opi b/core/base/tools/commander/workspace_template/Displays/Apps/SCH/Main.opi index 03f287ae9..f26613196 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/SCH/Main.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/SCH/Main.opi @@ -15,7 +15,7 @@ 6 - 510 + 570 true @@ -28,7 +28,7 @@ true true Display - 300 + 350 -33cb7c72:150aa4c347f:-76c2 -1 -1 @@ -81,8 +81,8 @@ $(pv_value) 100 false -33cb7c72:150aa4c347f:-75ff - 95 - 57 + 98 + 36 @@ -118,11 +118,11 @@ $(pv_value) 1 true Label - 72 + 84 false -33cb7c72:150aa4c347f:-75fe - 12 - 57 + 3 + 36 @@ -161,48 +161,8 @@ $(pv_value) 60 false -33cb7c72:150aa4c347f:-75fd - 24 - 76 - - - - false - - - - - - - 0 - 1 - true - - Default Bold - - - - - 20 - 1 - Label_46 - - - true - true - false - - - Commanding - - true - 1 - true - Label - 164 - false - -33cb7c72:150aa4c347f:-75fc - 66 - 30 + 27 + 55 @@ -253,8 +213,8 @@ $(pv_value) 100 false -33cb7c72:150aa4c347f:-75fb - 95 - 76 + 98 + 55 @@ -307,10 +267,10 @@ Yamcs.issueCommand('/cfs/sch/Noop', {});]]> $(pv_value) true Action Button - 67 + 82 -33cb7c72:150aa4c347f:-75fa - 210 - 58 + 213 + 37 @@ -363,10 +323,10 @@ Yamcs.issueCommand('/cfs/sch/Reset', {});]]> $(pv_value) true Action Button - 67 + 82 -33cb7c72:150aa4c347f:-75f9 - 210 - 79 + 213 + 58 @@ -405,7 +365,7 @@ $(pv_value) 272 false -33cb7c72:150aa4c347f:-75c9 - 12 + 36 6 @@ -435,7 +395,7 @@ $(pv_value) 0 Text Update_2 0 - true + false /cfs/sch/SCH_HkPacket_t.SyncToMET 0.0 @@ -457,8 +417,8 @@ $(pv_value) 100 false 7b256c5c:150b979c7e3:-7433 - 120 - 126 + 228 + 90 @@ -487,7 +447,7 @@ $(pv_value) 0 Text Update_3 0 - true + false /cfs/sch/SCH_HkPacket_t.MajorFrameSource 0.0 @@ -509,8 +469,8 @@ $(pv_value) 100 false 7b256c5c:150b979c7e3:-7432 - 120 - 145 + 228 + 109 @@ -539,7 +499,7 @@ $(pv_value) 0 Text Update_4 0 - true + false /cfs/sch/SCH_HkPacket_t.ScheduleActivitySuccessCount 0.0 @@ -561,8 +521,8 @@ $(pv_value) 100 false 7b256c5c:150b979c7e3:-7431 - 120 - 164 + 228 + 128 @@ -591,7 +551,7 @@ $(pv_value) 0 Text Update_5 0 - true + false /cfs/sch/SCH_HkPacket_t.ScheduleActivityFailureCount 0.0 @@ -613,8 +573,8 @@ $(pv_value) 100 false 7b256c5c:150b979c7e3:-7430 - 120 - 183 + 228 + 147 @@ -643,7 +603,7 @@ $(pv_value) 0 Text Update_6 0 - true + false /cfs/sch/SCH_HkPacket_t.SlotsProcessedCount 0.0 @@ -665,8 +625,8 @@ $(pv_value) 100 false 7b256c5c:150b979c7e3:-742f - 120 - 202 + 228 + 166 @@ -695,7 +655,7 @@ $(pv_value) 0 Text Update_7 0 - true + false /cfs/sch/SCH_HkPacket_t.SkippedSlotsCount 0.0 @@ -717,8 +677,8 @@ $(pv_value) 100 false 7b256c5c:150b979c7e3:-742e - 120 - 221 + 228 + 185 @@ -747,7 +707,7 @@ $(pv_value) 0 Text Update_8 0 - true + false /cfs/sch/SCH_HkPacket_t.MultipleSlotsCount 0.0 @@ -769,8 +729,8 @@ $(pv_value) 100 false 7b256c5c:150b979c7e3:-742d - 120 - 240 + 228 + 204 @@ -799,7 +759,7 @@ $(pv_value) 0 Text Update_9 0 - true + false /cfs/sch/SCH_HkPacket_t.SameSlotCount 0.0 @@ -821,8 +781,8 @@ $(pv_value) 100 false 7b256c5c:150b979c7e3:-742c - 120 - 259 + 228 + 223 @@ -851,7 +811,7 @@ $(pv_value) 0 Text Update_10 0 - true + false /cfs/sch/SCH_HkPacket_t.BadTableDataCount 0.0 @@ -873,8 +833,8 @@ $(pv_value) 100 false 7b256c5c:150b979c7e3:-742b - 120 - 278 + 228 + 242 @@ -903,7 +863,7 @@ $(pv_value) 0 Text Update_11 0 - true + false /cfs/sch/SCH_HkPacket_t.TableVerifySuccessCount 0.0 @@ -925,8 +885,8 @@ $(pv_value) 100 false 7b256c5c:150b979c7e3:-742a - 120 - 297 + 228 + 261 @@ -955,7 +915,7 @@ $(pv_value) 0 Text Update_12 0 - true + false /cfs/sch/SCH_HkPacket_t.TableVerifyFailureCount 0.0 @@ -977,8 +937,8 @@ $(pv_value) 100 false 7b256c5c:150b979c7e3:-7429 - 120 - 316 + 228 + 280 @@ -1007,7 +967,7 @@ $(pv_value) 0 Text Update_13 0 - true + false /cfs/sch/SCH_HkPacket_t.TablePassCount 0.0 @@ -1029,8 +989,8 @@ $(pv_value) 100 false 7b256c5c:150b979c7e3:-7428 - 120 - 335 + 228 + 299 @@ -1059,7 +1019,7 @@ $(pv_value) 0 Text Update_14 0 - true + false /cfs/sch/SCH_HkPacket_t.ValidMajorFrameCount 0.0 @@ -1081,8 +1041,8 @@ $(pv_value) 100 false 7b256c5c:150b979c7e3:-7427 - 120 - 354 + 228 + 318 @@ -1111,7 +1071,7 @@ $(pv_value) 0 Text Update_15 0 - true + false /cfs/sch/SCH_HkPacket_t.MissedMajorFrameCount 0.0 @@ -1133,8 +1093,8 @@ $(pv_value) 100 false 7b256c5c:150b979c7e3:-7426 - 120 - 373 + 228 + 337 @@ -1163,7 +1123,7 @@ $(pv_value) 0 Text Update_16 0 - true + false /cfs/sch/SCH_HkPacket_t.UnexpectedMajorFrameCount 0.0 @@ -1185,8 +1145,8 @@ $(pv_value) 100 false 7b256c5c:150b979c7e3:-7425 - 120 - 392 + 228 + 356 @@ -1215,7 +1175,7 @@ $(pv_value) 0 Text Update_17 0 - true + false /cfs/sch/SCH_HkPacket_t.MinorFramesSinceTone 0.0 @@ -1237,8 +1197,8 @@ $(pv_value) 100 false 7b256c5c:150b979c7e3:-7424 - 120 - 411 + 228 + 375 @@ -1267,7 +1227,7 @@ $(pv_value) 0 Text Update_18 0 - true + false /cfs/sch/SCH_HkPacket_t.NextSlotNumber 0.0 @@ -1289,8 +1249,8 @@ $(pv_value) 100 false 7b256c5c:150b979c7e3:-7423 - 120 - 430 + 228 + 394 @@ -1319,7 +1279,7 @@ $(pv_value) 0 Text Update_19 0 - true + false /cfs/sch/SCH_HkPacket_t.LastSyncMETSlot 0.0 @@ -1341,8 +1301,8 @@ $(pv_value) 100 false 7b256c5c:150b979c7e3:-7422 - 120 - 449 + 228 + 413 @@ -1371,7 +1331,7 @@ $(pv_value) 0 Text Update_20 0 - true + false /cfs/sch/SCH_HkPacket_t.IgnoreMajorFrame 0.0 @@ -1393,8 +1353,8 @@ $(pv_value) 100 false 7b256c5c:150b979c7e3:-7421 - 120 - 468 + 228 + 432 @@ -1423,7 +1383,7 @@ $(pv_value) 0 Text Update_21 0 - true + false /cfs/sch/SCH_HkPacket_t.UnexpectedMajorFrame 0.0 @@ -1445,7 +1405,1194 @@ $(pv_value) 100 false 7b256c5c:150b979c7e3:-7420 - 120 - 487 + 228 + 451 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_57 + + + true + true + false + + + Sync to MET + + true + 1 + true + Label + 110 + false + 54e87698:1777e01a75d:-7cfc + 111 + 90 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_58 + + + true + true + false + + + Major Frame Source + + true + 1 + true + Label + 150 + false + 54e87698:1777e01a75d:-7cf0 + 71 + 109 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_59 + + + true + true + false + + + Activity Success + + true + 1 + true + Label + 150 + false + 54e87698:1777e01a75d:-7ce6 + 71 + 128 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_60 + + + true + true + false + + + Activity Failure + + true + 1 + true + Label + 150 + false + 54e87698:1777e01a75d:-7cdc + 71 + 147 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_61 + + + true + true + false + + + Slots Processed + + true + 1 + true + Label + 150 + false + 54e87698:1777e01a75d:-7cd7 + 71 + 166 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_62 + + + true + true + false + + + Skipped Slots + + true + 1 + true + Label + 150 + false + 54e87698:1777e01a75d:-7cd2 + 71 + 185 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_63 + + + true + true + false + + + Multiple Slots + + true + 1 + true + Label + 150 + false + 54e87698:1777e01a75d:-7ccd + 71 + 204 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_64 + + + true + true + false + + + Same Slot + + true + 1 + true + Label + 150 + false + 54e87698:1777e01a75d:-7cc8 + 71 + 223 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_65 + + + true + true + false + + + Bad Table Data + + true + 1 + true + Label + 150 + false + 54e87698:1777e01a75d:-7cc3 + 71 + 242 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_66 + + + true + true + false + + + Table Verify Success + + true + 1 + true + Label + 150 + false + 54e87698:1777e01a75d:-7cbe + 71 + 261 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_67 + + + true + true + false + + + Table Verify Failure + + true + 1 + true + Label + 150 + false + 54e87698:1777e01a75d:-7cb9 + 71 + 280 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_68 + + + true + true + false + + + Table Pass + + true + 1 + true + Label + 150 + false + 54e87698:1777e01a75d:-7cb4 + 71 + 299 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_69 + + + true + true + false + + + Valid Major Frames + + true + 1 + true + Label + 150 + false + 54e87698:1777e01a75d:-7caf + 71 + 318 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_70 + + + true + true + false + + + Missed Major Frames + + true + 1 + true + Label + 150 + false + 54e87698:1777e01a75d:-7caa + 71 + 337 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_71 + + + true + true + false + + + Unexpected Major Frame Count + + true + 1 + true + Label + 221 + false + 54e87698:1777e01a75d:-7ca5 + 0 + 356 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_72 + + + true + true + false + + + Minor Frames Since Tone + + true + 1 + true + Label + 179 + false + 54e87698:1777e01a75d:-7ca0 + 42 + 375 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_73 + + + true + true + false + + + Next Slot + + true + 1 + true + Label + 150 + false + 54e87698:1777e01a75d:-7c9b + 71 + 394 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_74 + + + true + true + false + + + Last MET Slot + + true + 1 + true + Label + 150 + false + 54e87698:1777e01a75d:-7c96 + 71 + 413 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_75 + + + true + true + false + + + Ignore Major Frame + + true + 1 + true + Label + 150 + false + 54e87698:1777e01a75d:-7c91 + 71 + 432 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_76 + + + true + true + false + + + Unexpected Major Frame + + true + 1 + true + Label + 179 + false + 54e87698:1777e01a75d:-7c8c + 42 + 451 + + + + + AddMessageFlow.opi + + true + + 1 + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 20 + + Action Button + 0 + + + + + true + true + false + + + + Enable Activity + false + $(pv_name) +$(pv_value) + true + Action Button + 127 + 54e87698:1777e01a75d:-7c44 + 174 + 486 + + + + + AddMessageFlow.opi + + true + + 1 + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 20 + + Action Button_1 + 0 + + + + + true + true + false + + + + Disable Activity + false + $(pv_name) +$(pv_value) + true + Action Button + 127 + 54e87698:1777e01a75d:-7c38 + 174 + 505 + + + + + AddMessageFlow.opi + + true + + 1 + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 20 + + Action Button_2 + 0 + + + + + true + true + false + + + + Enable Group + false + $(pv_name) +$(pv_value) + true + Action Button + 127 + 54e87698:1777e01a75d:-7c2b + 174 + 524 + + + + + AddMessageFlow.opi + + true + + 1 + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 20 + + Action Button_3 + 0 + + + + + true + true + false + + + + Disable Group + false + $(pv_name) +$(pv_value) + true + Action Button + 127 + 54e87698:1777e01a75d:-7c2a + 174 + 543 + + + + + + + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 20 + ../../Resources/send.png + NoOp_2 + 0 + + + + + true + true + false + + + + Enable Sync + false + $(pv_name) +$(pv_value) + true + Action Button + 127 + 54e87698:1777e01a75d:-7c06 + 36 + 486 + + + + + + + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 20 + ../../Resources/send.png + NoOp_3 + 0 + + + + + true + true + false + + + + SendHK + false + $(pv_name) +$(pv_value) + true + Action Button + 127 + 54e87698:1777e01a75d:-7bfe + 36 + 505 + + + + + Diagnostic.opi + + true + + 1 + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 20 + + Action Button_4 + 0 + + + + + true + true + false + + + + Diagnostic + false + $(pv_name) +$(pv_value) + true + Action Button + 127 + 54e87698:1777e01a75d:-7bf6 + 36 + 524 \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/SCH/scripts/NoOp.js b/core/base/tools/commander/workspace_template/Displays/Apps/SCH/scripts/NoOp.js deleted file mode 100644 index 4b454bd19..000000000 --- a/core/base/tools/commander/workspace_template/Displays/Apps/SCH/scripts/NoOp.js +++ /dev/null @@ -1,4 +0,0 @@ -importPackage(Packages.org.csstudio.opibuilder.scriptUtil); -importPackage(Packages.org.yamcs.studio.script); - -Yamcs.issueCommand('/cfs/sch/Noop', {}); \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/SCH/scripts/ResetCounters.js b/core/base/tools/commander/workspace_template/Displays/Apps/SCH/scripts/ResetCounters.js deleted file mode 100644 index 71a876bf8..000000000 --- a/core/base/tools/commander/workspace_template/Displays/Apps/SCH/scripts/ResetCounters.js +++ /dev/null @@ -1,4 +0,0 @@ -importPackage(Packages.org.csstudio.opibuilder.scriptUtil); -importPackage(Packages.org.yamcs.studio.script); - -Yamcs.issueCommand('/cfs/sch/Reset', {}); \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Core/ES/QueryOneApp.opi b/core/base/tools/commander/workspace_template/Displays/Core/ES/QueryOneApp.opi index c98a9f8f4..b44341dee 100644 --- a/core/base/tools/commander/workspace_template/Displays/Core/ES/QueryOneApp.opi +++ b/core/base/tools/commander/workspace_template/Displays/Core/ES/QueryOneApp.opi @@ -153,7 +153,7 @@ $(pv_value) - 30 + 25 CF CI @@ -187,7 +187,7 @@ $(pv_value) $(pv_name) $(pv_value) - true + false Combo 115 -3fca34e1:15096a78c93:-79bc From a57a953b2d18c8ffbd018f0c40ba71c249727cb2 Mon Sep 17 00:00:00 2001 From: Mathew Benson Date: Sun, 7 Feb 2021 23:05:34 -0600 Subject: [PATCH 064/370] Updated the FM YAML file. --- apps/fm/wh_design.yaml | 146 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 146 insertions(+) diff --git a/apps/fm/wh_design.yaml b/apps/fm/wh_design.yaml index 7ad00dd77..434b1c787 100644 --- a/apps/fm/wh_design.yaml +++ b/apps/fm/wh_design.yaml @@ -215,6 +215,152 @@ id: 111 FM_SET_PERM_OS_ERR_EID: id: 112 + msg_def_overrides: + - parent: FM_CopyFileCmd_t + member: Source + type: string + - parent: FM_CopyFileCmd_t + member: Target + type: string + - parent: FM_MoveFileCmd_t + member: Source + type: string + - parent: FM_MoveFileCmd_t + member: Target + type: string + - parent: FM_RenameFileCmd_t + member: Source + type: string + - parent: FM_RenameFileCmd_t + member: Target + type: string + - parent: FM_DeleteFileCmd_t + member: Filename + type: string + - parent: FM_DeleteAllCmd_t + member: Directory + type: string + - parent: FM_DecompressCmd_t + member: Source + type: string + - parent: FM_DecompressCmd_t + member: Target + type: string + - parent: FM_ConcatCmd_t + member: Source1 + type: string + - parent: FM_ConcatCmd_t + member: Source2 + type: string + - parent: FM_ConcatCmd_t + member: Target + type: string + - parent: FM_GetFileInfoCmd_t + member: Filename + type: string + - parent: FM_CreateDirCmd_t + member: Directory + type: string + - parent: FM_DeleteDirCmd_t + member: Directory + type: string + - parent: FM_GetDirFileCmd_t + member: Directory + type: string + - parent: FM_GetDirFileCmd_t + member: Filename + type: string + - parent: FM_GetDirPktCmd_t + member: Directory + type: string + - parent: FM_SetTableStateCmd_t + member: TableEntryState + type: enumeration + enumerations: + DISABLED: 0 + ENABLED: 1 + UNUSED: 2 + - parent: FM_SetPermCmd_t + member: FileName + type: string + - parent: FM_DirListEntry_t + member: EntryName + type: string + - parent: FM_DirListPkt_t + member: DirName + type: string + - parent: FM_DirListFileStats_t + member: DirName + type: string + - parent: FM_FileInfoPkt_t + member: Filename + type: string + - parent: FM_OpenFilesEntry_t + member: LogicalName + type: string + - parent: FM_OpenFilesEntry_t + member: AppName + type: string + - parent: FM_FreeSpacePktEntry_t + member: Name + type: string + - parent: FM_HousekeepingPkt_t + member: ChildCurrentCC + type: enumeration + enumerations: + NOOP: 0 + RESET: 1 + COPY: 2 + MOVE: 3 + RENAME: 4 + DELETE: 5 + DELETE_ALL: 7 + DECOMPRESS: 8 + CONCAT: 9 + GET_FILE_INFO: 10 + GET_OPEN_FILES: 11 + CREATE_DIR: 12 + DELETE_DIR: 13 + GET_DIR_FILE: 14 + GET_DIR_PKT: 15 + GET_FREE_SPACE: 16 + SET_TABLE_STATE: 17 + DELETE_INT: 18 + SET_FILE_PEERM: 19 + - parent: FM_HousekeepingPkt_t + member: ChildPreviousCC + type: enumeration + enumerations: + NOOP: 0 + RESET: 1 + COPY: 2 + MOVE: 3 + RENAME: 4 + DELETE: 5 + DELETE_ALL: 7 + DECOMPRESS: 8 + CONCAT: 9 + GET_FILE_INFO: 10 + GET_OPEN_FILES: 11 + CREATE_DIR: 12 + DELETE_DIR: 13 + GET_DIR_FILE: 14 + GET_DIR_PKT: 15 + GET_FREE_SPACE: 16 + SET_TABLE_STATE: 17 + DELETE_INT: 18 + SET_FILE_PEERM: 19 + - parent: FM_TableEntry_t + member: Name + type: string + - parent: FM_TableEntry_t + member: State + type: enumeration + enumerations: + DISABLED: 0 + ENABLED: 1 + UNUSED: 2 + telemetry: FM_HK_TLM_MID: msgID: From f2c6d39bda333410b6ec9c6340f8ab44a217a607 Mon Sep 17 00:00:00 2001 From: Mathew Benson Date: Sun, 7 Feb 2021 23:05:49 -0600 Subject: [PATCH 065/370] Updated the HS YAML file. --- apps/hs/wh_design.yaml | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/apps/hs/wh_design.yaml b/apps/hs/wh_design.yaml index 329bd567a..ea60b19d3 100644 --- a/apps/hs/wh_design.yaml +++ b/apps/hs/wh_design.yaml @@ -133,6 +133,31 @@ id: 67 HS_BADEMT_UNSUB_EID: id: 68 + msg_def_overrides: + - parent: HS_HkPacket_t + member: CurrentAppMonState + type: enumeration + enumerations: + DISABLED: 0 + ENABLED: 1 + - parent: HS_HkPacket_t + member: CurrentEventMonState + type: enumeration + enumerations: + DISABLED: 0 + ENABLED: 1 + - parent: HS_HkPacket_t + member: CurrentAlivenessState + type: enumeration + enumerations: + DISABLED: 0 + ENABLED: 1 + - parent: HS_HkPacket_t + member: CurrentCPUHogState + type: enumeration + enumerations: + DISABLED: 0 + ENABLED: 1 telemetry: HS_HK_TLM_MID: msgID: From b8a350d7730c1b9ebdd4d2d63b637f1abab32709 Mon Sep 17 00:00:00 2001 From: Mathew Benson Date: Sun, 7 Feb 2021 23:06:02 -0600 Subject: [PATCH 066/370] Updated the LC YAML file. --- apps/lc/wh_design.yaml | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/apps/lc/wh_design.yaml b/apps/lc/wh_design.yaml index 07cf53334..ea1f2525c 100644 --- a/apps/lc/wh_design.yaml +++ b/apps/lc/wh_design.yaml @@ -135,6 +135,31 @@ id: 66 LC_CFCALL_ERR_EID: id: 67 + msg_def_overrides: + - parent: LC_SetLCState_t + member: NewLCState + type: enumeration + enumerations: + ACTIVE: 1 + PASSIVE: 2 + DISABLED: 3 + FROM_CDS: 4 + - parent: LC_SetAPState_t + member: NewAPState + type: enumeration + enumerations: + ACTIVE: 1 + PASSIVE: 2 + DISABLED: 3 + PERMOFF: 4 + - parent: LC_HkPacket_t + member: CurrentLCState + type: enumeration + enumerations: + ACTIVE: 1 + PASSIVE: 2 + DISABLED: 3 + FROM_CDS: 4 telemetry: LC_HK_TLM_MID: msgID: From d886f768f66c135acb6d1bef42d9ebbb4fb98666 Mon Sep 17 00:00:00 2001 From: Mathew Benson Date: Sun, 7 Feb 2021 23:06:20 -0600 Subject: [PATCH 067/370] Updated the MD YAML file. --- apps/md/wh_design.yaml | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/apps/md/wh_design.yaml b/apps/md/wh_design.yaml index a4a8d1c6f..e548cb981 100644 --- a/apps/md/wh_design.yaml +++ b/apps/md/wh_design.yaml @@ -81,11 +81,27 @@ id: 51 MD_DWELL_TBL_INF_EID: id: 52 + msg_def_overrides: + - parent: MD_CmdSetSignature_t + member: Signature + type: string telemetry: MD_HK_TLM_MID: msgID: struct: MD_HkTlm_t - MD_DWELL_PKT_MID_BASE: + MD_DWELL_PKT1_MID: + msgID: + struct: MD_DwellPkt_t + MD_DWELL_PKT2_MID: + msgID: + struct: MD_DwellPkt_t + MD_DWELL_PKT3_MID: + msgID: + struct: MD_DwellPkt_t + MD_DWELL_PKT4_MID: + msgID: + struct: MD_DwellPkt_t + MD_DWELL_PKT5_MID: msgID: struct: MD_DwellPkt_t commands: From 4f7bc0329fe0a62aea3925d3fd2e3113109967cc Mon Sep 17 00:00:00 2001 From: Mathew Benson Date: Sun, 7 Feb 2021 23:06:58 -0600 Subject: [PATCH 068/370] Added HS to Bebop2/SITL. --- config/bebop2/target/CMakeLists.txt | 8 ++++++++ config/bebop2/target/cfe_es_startup.scr | 1 + config/shared/apps/to/tables/to_udp_cfg.c | 7 +++++++ config/wh_config.yaml | 10 +++++++++- 4 files changed, 25 insertions(+), 1 deletion(-) diff --git a/config/bebop2/target/CMakeLists.txt b/config/bebop2/target/CMakeLists.txt index d336ed206..ed8720759 100644 --- a/config/bebop2/target/CMakeLists.txt +++ b/config/bebop2/target/CMakeLists.txt @@ -43,6 +43,14 @@ buildliner_add_app( ${CMAKE_CURRENT_SOURCE_DIR}/apps/sch/sch_custom_rt.c ) +buildliner_add_app( + hs + DEFINITION ${PROJECT_SOURCE_DIR}/apps/hs/fsw/for_build + CONFIG ${CMAKE_CURRENT_SOURCE_DIR}/apps/hs + CONFIG_SOURCES + ${CMAKE_CURRENT_SOURCE_DIR}/apps/hs/hs_custom.c +) + buildliner_add_app( cf DEFINITION ${PROJECT_SOURCE_DIR}/apps/cf/fsw/for_build diff --git a/config/bebop2/target/cfe_es_startup.scr b/config/bebop2/target/cfe_es_startup.scr index 54bf0fe02..2ae37e853 100644 --- a/config/bebop2/target/cfe_es_startup.scr +++ b/config/bebop2/target/cfe_es_startup.scr @@ -10,6 +10,7 @@ CFE_APP, /cf/apps/SONAR.so, SONAR_AppMain, SONAR, 67, 327680, 0x0, 0, CFE_APP, /cf/apps/MAC.so, MAC_AppMain, MAC, 55, 327680, 0x0, 0, 4; CFE_APP, /cf/apps/GPS.so, GPS_AppMain, GPS, 97, 327680, 0x0, 0, 2; CFE_APP, /cf/apps/CI.so, CI_AppMain, CI, 115, 327680, 0x0, 0, 2; +CFE_APP, /cf/apps/HS.so, HS_AppMain, HS, 250, 327680, 0x0, 0, 2; CFE_APP, /cf/apps/TO.so, TO_AppMain, TO, 124, 327680, 0x0, 0, 2; CFE_APP, /cf/apps/CF.so, CF_AppMain, CF, 157, 327680, 0x0, 0, 2; CFE_APP, /cf/apps/DS.so, DS_AppMain, DS, 190, 327680, 0x0, 0, 2; diff --git a/config/shared/apps/to/tables/to_udp_cfg.c b/config/shared/apps/to/tables/to_udp_cfg.c index 201f6b38b..561af62b8 100644 --- a/config/shared/apps/to/tables/to_udp_cfg.c +++ b/config/shared/apps/to/tables/to_udp_cfg.c @@ -113,6 +113,13 @@ TO_ChannelTbl_t TO_ConfigTbl = {PRM_HK_TLM_MID, 1, TO_PQUEUE_MEDIUM_IDX}, {VM_CONFIG_TLM_MID, 1, TO_PQUEUE_MEDIUM_IDX}, {SC_HK_TLM_MID, 1, TO_PQUEUE_MEDIUM_IDX}, + {MD_DWELL_PKT_MID_BASE+0, 1, TO_PQUEUE_MEDIUM_IDX}, + {MD_DWELL_PKT_MID_BASE+1, 1, TO_PQUEUE_MEDIUM_IDX}, + {MD_DWELL_PKT_MID_BASE+2, 1, TO_PQUEUE_MEDIUM_IDX}, + {MD_DWELL_PKT_MID_BASE+3, 1, TO_PQUEUE_MEDIUM_IDX}, + {MD_DWELL_PKT_MID_BASE+4, 1, TO_PQUEUE_MEDIUM_IDX}, + + // {PX4_ACTUATOR_ARMED_MID, 1, TO_PQUEUE_LOW_IDX}, // {PX4_ACTUATOR_CONTROLS_0_MID, 1, TO_PQUEUE_LOW_IDX}, diff --git a/config/wh_config.yaml b/config/wh_config.yaml index f07f478c4..d9e291459 100644 --- a/config/wh_config.yaml +++ b/config/wh_config.yaml @@ -161,8 +161,16 @@ modules: telemetry: MD_HK_TLM_MID: msgID: 0x09c6 - MD_DWELL_PKT_MID_BASE: + MD_DWELL_PKT1_MID: msgID: 0x09c7 + MD_DWELL_PKT2_MID: + msgID: 0x09c8 + MD_DWELL_PKT3_MID: + msgID: 0x09c9 + MD_DWELL_PKT4_MID: + msgID: 0x09ca + MD_DWELL_PKT5_MID: + msgID: 0x09cb commands: MD_CMD_MID: msgID: 0x19c3 From a468c55ed272b276aca5db4edeb3f82ab74511cb Mon Sep 17 00:00:00 2001 From: Mathew Benson Date: Sun, 7 Feb 2021 23:07:57 -0600 Subject: [PATCH 069/370] Updated and verified TO, MD, LC, HK, and HS displays. Added 'BOY Examples' --- .../Displays/Apps/HK/Main.opi | 211 +- .../Displays/Apps/HK/SendCombined.opi | 232 + .../Displays/Apps/HK/scripts/NoOp.js | 4 - .../Displays/Apps/HK/scripts/ResetCounters.js | 4 - .../Displays/Apps/HS/Main.opi | 913 +-- .../Displays/Apps/HS/scripts/NoOp.js | 4 - .../Displays/Apps/HS/scripts/ResetCounters.js | 4 - .../Displays/Apps/LC/Main.opi | 573 +- .../Displays/Apps/LC/ResetAPStats.opi | 233 + .../Displays/Apps/LC/ResetWPStats.opi | 233 + .../Displays/Apps/LC/SetAPPermOff.opi | 233 + .../Displays/Apps/LC/SetAPState.opi | 322 + .../Displays/Apps/LC/SetLCState.opi | 223 + .../Displays/Apps/LC/scripts/NoOp.js | 4 - .../Displays/Apps/LC/scripts/ResetCounters.js | 4 - .../Displays/Apps/MD/Jam.opi | 727 ++ .../Displays/Apps/MD/Main.opi | 694 +- .../Displays/Apps/MD/SetSignature.opi | 332 + .../Displays/Apps/MD/Start.opi | 232 + .../Displays/Apps/MD/Stop.opi | 232 + .../Displays/Apps/MD/scripts/NoOp.js | 4 - .../Displays/Apps/MD/scripts/ResetCounters.js | 4 - .../Displays/Apps/TO/SendDiag.opi | 249 +- .../Displays/BOY Examples/10_widgets.opi | 2063 +++++ .../Displays/BOY Examples/1_1_Start_Up.opi | 933 +++ .../BOY Examples/1_2_WidgetExamples.opi | 6920 +++++++++++++++++ .../BOY Examples/2_OPI_Editor_Perspective.opi | 690 ++ .../BOY Examples/3_Use_OPI_Editor.opi | 1049 +++ .../Displays/BOY Examples/4_Actions_1.opi | 1686 ++++ .../Displays/BOY Examples/4_Actions_2.opi | 1974 +++++ .../Displays/BOY Examples/5_1_Rules.opi | 764 ++ .../Displays/BOY Examples/5_2_Script.opi | 1233 +++ .../BOY Examples/5_3_Rules_Script.opi | 1415 ++++ .../BOY Examples/5_4_Python_Script.opi | 1398 ++++ .../BOY Examples/5_5_FileIOWithScript.opi | 1105 +++ .../BOY Examples/5_6_UseThreadInScript.opi | 774 ++ .../Displays/BOY Examples/6_Macro.opi | 1098 +++ .../BOY Examples/7_Color_Font_Macro.opi | 1094 +++ .../BOY Examples/8_2_PVWidgets_Properties.opi | 826 ++ .../BOY Examples/8_Widget_Properties.opi | 858 ++ .../Displays/BOY Examples/9_Border.opi | 1551 ++++ .../ArraysOperation/ByteArrayToString.opi | 131 + .../ConvertByteArrayToString.js | 11 + .../ArraysOperation/CutFirstNPoints.js | 11 + .../ArraysOperation/DisplayArrayElements.js | 11 + .../ArraysOperation/DisplayArrayElements.opi | 72 + .../ArraysOperation/GenerateSimuArray.js | 19 + .../PlotFirstNPointsExample.opi | 311 + .../ArraysOperation/PlotSimuArray.opi | 179 + .../CalculatorExample/Calculator.opi | 860 ++ .../CalculatorExample/CalculatorModel.py | 69 + .../CalculatorExample/EasyCalculator.opi | 261 + .../CalculatorExample/EasyCalculatorLogic.py | 17 + .../Miscellaneous/CalculatorExample/init.py | 10 + .../ConditinallySetPVValue.opi | 312 + .../LoadLinkingContainer.js | 41 + .../DynamicLoadWidgets/LoadWidgetsExample.opi | 233 + .../DynamicLoadWidgets/SubPanel.opi | 329 + .../DynamicLoadWidgets/myConfigExample.xml | 27 + .../DynamicLoadWidgets/myConfigExample2.xml | 92 + .../DynamicMacros/ChangeMacro.js | 17 + .../DynamicMacros/DynamicMacros.opi | 344 + .../Miscellaneous/DynamicMacros/OpenOPI.js | 15 + .../DynamicMacros/embeddedOPI.opi | 134 + .../AbsoluteWSPathToSysProp.py | 6 + .../ExecuteShellScript/ExecuteShellScript.opi | 263 + .../RelativePathToSysProp.py | 14 + .../Miscellaneous/ExecuteShellScript/Test.sh | 1 + .../LoginDialogExample/LoginDialogExample.opi | 621 ++ .../LoginDialogExample/OPIDialog.opi | 337 + .../LoginDialogExample/OPILogin.py | 14 + .../LoginDialogExample/SWTLogin.py | 13 + .../SWTLoginDialog$py.class | Bin 0 -> 6913 bytes .../LoginDialogExample/SWTLoginDialog.py | 46 + .../LoginDialogExample/SwingLogin.py | 13 + .../SwingLoginDialog$py.class | Bin 0 -> 7336 bytes .../LoginDialogExample/SwingLoginDialog.py | 56 + .../NotifyOnOPIStartAndClose.opi | 95 + .../ScriptUtil/GUIUtilExample.opi | 353 + .../ScriptUtil/createPVFromScript.opi | 227 + .../BOY Examples/Miscellaneous/Timer.opi | 658 ++ .../WriteDynamicValueToPV.opi | 325 + .../delayedSetValueExample.js | 17 + .../WriteDynamicValueToPV/down.png | Bin 0 -> 869 bytes .../WriteDynamicValueToPV/off.png | Bin 0 -> 877 bytes .../WriteDynamicValueToPV/on.png | Bin 0 -> 857 bytes .../WriteDynamicValueToPV/up.png | Bin 0 -> 814 bytes .../XYGraph_Advanced/AddAxisExample.js | 15 + .../XYGraph_Advanced/Add_Axes_From_Script.opi | 506 ++ .../XYGraph_Advanced/Pause_Resume_XYGrpah.opi | 221 + .../SetMajorTickMarkStepHint.opi | 421 + .../Displays/BOY Examples/color.def | 14 + .../Displays/BOY Examples/font.def | 12 + .../Displays/BOY Examples/main.opi | 729 ++ .../pictures/ArrangeSupportMenuItems.jpg | Bin 0 -> 3013 bytes .../BOY Examples/pictures/Context menu.png | Bin 0 -> 23974 bytes .../BOY Examples/pictures/Disconnected.png | Bin 0 -> 10590 bytes .../JF Withdrawable Circuit Breaker Off.gif | Bin 0 -> 186 bytes .../JF Withdrawable Circuit Breaker On.gif | Bin 0 -> 188 bytes .../BOY Examples/pictures/NavigateHisotry.png | Bin 0 -> 4692 bytes .../BOY Examples/pictures/OPIBuilder.png | Bin 0 -> 412 bytes .../BOY Examples/pictures/OffButton.png | Bin 0 -> 495 bytes .../BOY Examples/pictures/OnButton.png | Bin 0 -> 566 bytes .../BOY Examples/pictures/Start_16.png | Bin 0 -> 784 bytes .../BOY Examples/pictures/Stop_16.png | Bin 0 -> 650 bytes .../AT Single-Acting Diaphragm Actuator.png | Bin 0 -> 438 bytes .../PNG/Closing Push-Button Off.png | Bin 0 -> 342 bytes .../PNG/Closing Push-Button On.png | Bin 0 -> 182 bytes .../SymbolLibrary/PNG/JF Fuse Switch Off.png | Bin 0 -> 685 bytes .../SymbolLibrary/PNG/JF Fuse Switch On.png | Bin 0 -> 253 bytes .../pictures/SymbolLibrary/PNG/PL General.png | Bin 0 -> 896 bytes .../PNG/SM 4-Positions Switch 0.png | Bin 0 -> 343 bytes .../PNG/SM 4-Positions Switch 1.png | Bin 0 -> 234 bytes .../PNG/SM 4-Positions Switch 2.png | Bin 0 -> 362 bytes .../PNG/SM 4-Positions Switch 3.png | Bin 0 -> 365 bytes .../AT Single-Acting Diaphragm Actuator.svg | 45 + .../SVG/Closing Push-Button Off.svg | 51 + .../SVG/Closing Push-Button On.svg | 187 + .../SymbolLibrary/SVG/JF Fuse Switch Off.svg | 55 + .../SymbolLibrary/SVG/JF Fuse Switch On.svg | 193 + .../pictures/SymbolLibrary/SVG/JF Fuse.svg | 39 + .../pictures/SymbolLibrary/SVG/PL General.svg | 34 + .../SVG/SM 4-Positions Switch 0.svg | 43 + .../SVG/SM 4-Positions Switch 1.svg | 149 + .../SVG/SM 4-Positions Switch 2.svg | 149 + .../SVG/SM 4-Positions Switch 3.svg | 152 + .../Displays/BOY Examples/pictures/Timer.wav | Bin 0 -> 282696 bytes .../BOY Examples/pictures/Write_forbidden.png | Bin 0 -> 18046 bytes .../Displays/BOY Examples/pictures/fish.gif | Bin 0 -> 67035 bytes .../BOY Examples/pictures/home-16x16.png | Bin 0 -> 732 bytes .../Displays/BOY Examples/pictures/horses.gif | Bin 0 -> 13841 bytes .../BOY Examples/pictures/houston.wav | Bin 0 -> 38766 bytes .../BOY Examples/pictures/lightOff.png | Bin 0 -> 2742 bytes .../BOY Examples/pictures/lightOn.png | Bin 0 -> 3555 bytes .../BOY Examples/pictures/neutron.jpg | Bin 0 -> 99949 bytes .../BOY Examples/pictures/onlineHelp.gif | Bin 0 -> 2227 bytes .../BOY Examples/pictures/pump_off.gif | Bin 0 -> 558 bytes .../BOY Examples/pictures/pump_on.gif | Bin 0 -> 558 bytes .../pictures/reset Perspective.png | Bin 0 -> 26274 bytes .../Displays/BOY Examples/pictures/reset.png | Bin 0 -> 989 bytes .../pictures/reset_switch_off.gif | Bin 0 -> 351 bytes .../BOY Examples/pictures/reset_switch_on.gif | Bin 0 -> 347 bytes .../Displays/BOY Examples/pictures/sns4t.gif | Bin 0 -> 1795 bytes .../BOY Examples/pictures/snsBuilding.jpg | Bin 0 -> 20991 bytes .../BOY Examples/pictures/snscontrol.jpg | Bin 0 -> 42129 bytes .../BOY Examples/pictures/switch_off.gif | Bin 0 -> 514 bytes .../BOY Examples/pictures/switch_on.gif | Bin 0 -> 304 bytes .../Displays/BOY Examples/pictures/toobar.png | Bin 0 -> 10099 bytes .../BOY Examples/pictures/valve_off.gif | Bin 0 -> 455 bytes .../BOY Examples/pictures/valve_on.gif | Bin 0 -> 455 bytes .../BOY Examples/pictures/yangshuo-china.jpg | Bin 0 -> 38488 bytes .../BOY Examples/scripts/AddAxisExample.js | 14 + .../BOY Examples/scripts/AutoNavigation.js | 19 + .../BOY Examples/scripts/ChangePosAndSize.py | 14 + .../scripts/ChangePosAndSize_m.py | 14 + .../scripts/ChangePositionAndSize.js | 17 + .../scripts/ChangePositionAndSize_m.js | 17 + .../BOY Examples/scripts/ChangeTraceColor.js | 12 + .../BOY Examples/scripts/ClearGraph.js | 2 + .../BOY Examples/scripts/Dialog_push.js | 5 + .../BOY Examples/scripts/Dialog_release.js | 5 + .../scripts/DisplayPVValuesInTable.py | 39 + .../BOY Examples/scripts/DynamicLoadImage.js | 13 + .../BOY Examples/scripts/DynamicSymbol.js | 10 + .../BOY Examples/scripts/ExecuteAction.js | 8 + .../scripts/ExecuteScriptFromAction.js | 19 + .../scripts/ExecuteScriptFromAction.py | 22 + .../BOY Examples/scripts/KnobValueDialog.js | 23 + .../BOY Examples/scripts/KnobValueDialog.py | 40 + .../BOY Examples/scripts/MoveImage.js | 12 + .../BOY Examples/scripts/ReadFileExample.js | 7 + .../BOY Examples/scripts/SWTDialog.js | 60 + .../BOY Examples/scripts/SelectColorMap.js | 8 + .../scripts/SetIntensityGraphData.js | 25 + .../scripts/SetIntensityGraphData.py | 35 + .../BOY Examples/scripts/SimpleDialog.js | 5 + .../scripts/TableContentMonitor.py | 24 + .../scripts/TableSelectionMonitor.py | 22 + .../BOY Examples/scripts/ThreadExample.js | 27 + .../BOY Examples/scripts/ThreadExample.py | 25 + .../Displays/BOY Examples/scripts/Timer.py | 80 + .../BOY Examples/scripts/WidgetUtil.py | 22 + .../BOY Examples/scripts/WriteFileExample.js | 13 + .../BOY Examples/scripts/addAnnotations.py | 57 + .../scripts/addPixelInfoListener.py | 11 + .../Displays/BOY Examples/scripts/addROI.py | 50 + .../Displays/BOY Examples/scripts/goHome.js | 4 + .../Displays/BOY Examples/scripts/myFile.txt | 1 + .../Displays/BOY Examples/scripts/openHelp.js | 7 + .../widgets/1_1_Rectangle_Ellipse.opi | 1446 ++++ .../BOY Examples/widgets/1_2_Image.opi | 913 +++ .../BOY Examples/widgets/1_3_Label.opi | 610 ++ .../Displays/BOY Examples/widgets/1_4_Arc.opi | 594 ++ .../widgets/1_5_Polyline_Polygon.opi | 1398 ++++ .../BOY Examples/widgets/1_6_Connection.opi | 961 +++ .../Displays/BOY Examples/widgets/2_1_LED.opi | 808 ++ .../BOY Examples/widgets/2_2_Text_Update.opi | 724 ++ .../BOY Examples/widgets/2_3_Gauge_Meter.opi | 942 +++ .../BOY Examples/widgets/2_4_Tank_Thermo.opi | 1557 ++++ .../BOY Examples/widgets/2_5_1_XY_Graph.opi | 762 ++ .../BOY Examples/widgets/2_5_2_XY_Graph.opi | 1316 ++++ .../BOY Examples/widgets/2_5_3_XY_Graph.opi | 602 ++ .../BOY Examples/widgets/2_5_4_XY_Graph.opi | 723 ++ .../widgets/2_6_1_IntensityGraph.opi | 528 ++ .../2_6_2_IntensityGraph_Javascript.opi | 917 +++ .../widgets/2_6_3_IntensityGraph_Python.opi | 1778 +++++ .../widgets/3_1_Action_Button.opi | 718 ++ .../widgets/3_2_1_BoolButton_Switch.opi | 2307 ++++++ .../BOY Examples/widgets/3_3_Menu_Button.opi | 1132 +++ .../BOY Examples/widgets/3_4_1_Text_Input.opi | 1674 ++++ .../widgets/3_4_2_NativeTextInput.opi | 1567 ++++ .../BOY Examples/widgets/3_5_Knob_Slider.opi | 1722 ++++ .../widgets/3_6_ChoiceWidgets.opi | 1275 +++ .../widgets/4_1_GroupingContainer.opi | 1818 +++++ .../widgets/4_2_2_LinkingContainer.opi | 655 ++ .../widgets/4_2_LinkingContainer.opi | 1271 +++ .../widgets/4_3_TabbedContainer.opi | 1648 ++++ .../BOY Examples/widgets/4_4_WebBrowser.opi | 708 ++ .../BOY Examples/widgets/4_5_Table.opi | 1230 +++ .../widgets/4_6_1_SashContainer.opi | 1227 +++ .../widgets/4_6_2_SashContainer.opi | 913 +++ .../BOY Examples/widgets/4_6_Array.opi | 1290 +++ .../BOY Examples/widgets/5_1_GridLayout.opi | 894 +++ .../widgets/DynamicSymbols/DyanmicSymbol.opi | 482 ++ .../widgets/DynamicSymbols/macro.opi | 101 + .../BOY Examples/widgets/SymbolWidgets.opi | 2294 ++++++ .../BOY Examples/widgets/images/Off_1.png | Bin 0 -> 3782 bytes .../BOY Examples/widgets/images/Off_2.png | Bin 0 -> 3076 bytes .../BOY Examples/widgets/images/Off_3.png | Bin 0 -> 21287 bytes .../BOY Examples/widgets/images/Off_4.png | Bin 0 -> 1871 bytes .../BOY Examples/widgets/images/Off_5.png | Bin 0 -> 1529 bytes .../BOY Examples/widgets/images/Off_7.png | Bin 0 -> 5088 bytes .../BOY Examples/widgets/images/On_1.png | Bin 0 -> 3685 bytes .../BOY Examples/widgets/images/On_2.png | Bin 0 -> 2832 bytes .../BOY Examples/widgets/images/On_3.png | Bin 0 -> 34548 bytes .../BOY Examples/widgets/images/On_4.png | Bin 0 -> 2036 bytes .../BOY Examples/widgets/images/On_5.png | Bin 0 -> 1864 bytes .../BOY Examples/widgets/images/On_7.png | Bin 0 -> 5149 bytes .../BOY Examples/widgets/images/Readme.txt | 8 + 239 files changed, 84015 insertions(+), 968 deletions(-) create mode 100644 core/base/tools/commander/workspace_template/Displays/Apps/HK/SendCombined.opi delete mode 100644 core/base/tools/commander/workspace_template/Displays/Apps/HK/scripts/NoOp.js delete mode 100644 core/base/tools/commander/workspace_template/Displays/Apps/HK/scripts/ResetCounters.js delete mode 100644 core/base/tools/commander/workspace_template/Displays/Apps/HS/scripts/NoOp.js delete mode 100644 core/base/tools/commander/workspace_template/Displays/Apps/HS/scripts/ResetCounters.js create mode 100644 core/base/tools/commander/workspace_template/Displays/Apps/LC/ResetAPStats.opi create mode 100644 core/base/tools/commander/workspace_template/Displays/Apps/LC/ResetWPStats.opi create mode 100644 core/base/tools/commander/workspace_template/Displays/Apps/LC/SetAPPermOff.opi create mode 100644 core/base/tools/commander/workspace_template/Displays/Apps/LC/SetAPState.opi create mode 100644 core/base/tools/commander/workspace_template/Displays/Apps/LC/SetLCState.opi delete mode 100644 core/base/tools/commander/workspace_template/Displays/Apps/LC/scripts/NoOp.js delete mode 100644 core/base/tools/commander/workspace_template/Displays/Apps/LC/scripts/ResetCounters.js create mode 100644 core/base/tools/commander/workspace_template/Displays/Apps/MD/Jam.opi create mode 100644 core/base/tools/commander/workspace_template/Displays/Apps/MD/SetSignature.opi create mode 100644 core/base/tools/commander/workspace_template/Displays/Apps/MD/Start.opi create mode 100644 core/base/tools/commander/workspace_template/Displays/Apps/MD/Stop.opi delete mode 100644 core/base/tools/commander/workspace_template/Displays/Apps/MD/scripts/NoOp.js delete mode 100644 core/base/tools/commander/workspace_template/Displays/Apps/MD/scripts/ResetCounters.js create mode 100644 core/base/tools/commander/workspace_template/Displays/BOY Examples/10_widgets.opi create mode 100644 core/base/tools/commander/workspace_template/Displays/BOY Examples/1_1_Start_Up.opi create mode 100644 core/base/tools/commander/workspace_template/Displays/BOY Examples/1_2_WidgetExamples.opi create mode 100644 core/base/tools/commander/workspace_template/Displays/BOY Examples/2_OPI_Editor_Perspective.opi create mode 100644 core/base/tools/commander/workspace_template/Displays/BOY Examples/3_Use_OPI_Editor.opi create mode 100644 core/base/tools/commander/workspace_template/Displays/BOY Examples/4_Actions_1.opi create mode 100644 core/base/tools/commander/workspace_template/Displays/BOY Examples/4_Actions_2.opi create mode 100644 core/base/tools/commander/workspace_template/Displays/BOY Examples/5_1_Rules.opi create mode 100644 core/base/tools/commander/workspace_template/Displays/BOY Examples/5_2_Script.opi create mode 100644 core/base/tools/commander/workspace_template/Displays/BOY Examples/5_3_Rules_Script.opi create mode 100644 core/base/tools/commander/workspace_template/Displays/BOY Examples/5_4_Python_Script.opi create mode 100644 core/base/tools/commander/workspace_template/Displays/BOY Examples/5_5_FileIOWithScript.opi create mode 100644 core/base/tools/commander/workspace_template/Displays/BOY Examples/5_6_UseThreadInScript.opi create mode 100644 core/base/tools/commander/workspace_template/Displays/BOY Examples/6_Macro.opi create mode 100644 core/base/tools/commander/workspace_template/Displays/BOY Examples/7_Color_Font_Macro.opi create mode 100644 core/base/tools/commander/workspace_template/Displays/BOY Examples/8_2_PVWidgets_Properties.opi create mode 100644 core/base/tools/commander/workspace_template/Displays/BOY Examples/8_Widget_Properties.opi create mode 100644 core/base/tools/commander/workspace_template/Displays/BOY Examples/9_Border.opi create mode 100644 core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/ArraysOperation/ByteArrayToString.opi create mode 100644 core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/ArraysOperation/ConvertByteArrayToString.js create mode 100644 core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/ArraysOperation/CutFirstNPoints.js create mode 100644 core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/ArraysOperation/DisplayArrayElements.js create mode 100644 core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/ArraysOperation/DisplayArrayElements.opi create mode 100644 core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/ArraysOperation/GenerateSimuArray.js create mode 100644 core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/ArraysOperation/PlotFirstNPointsExample.opi create mode 100644 core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/ArraysOperation/PlotSimuArray.opi create mode 100644 core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/CalculatorExample/Calculator.opi create mode 100644 core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/CalculatorExample/CalculatorModel.py create mode 100644 core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/CalculatorExample/EasyCalculator.opi create mode 100644 core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/CalculatorExample/EasyCalculatorLogic.py create mode 100644 core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/CalculatorExample/init.py create mode 100644 core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/ConditionallySetPVValue/ConditinallySetPVValue.opi create mode 100644 core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/DynamicLoadWidgets/LoadLinkingContainer.js create mode 100644 core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/DynamicLoadWidgets/LoadWidgetsExample.opi create mode 100644 core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/DynamicLoadWidgets/SubPanel.opi create mode 100644 core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/DynamicLoadWidgets/myConfigExample.xml create mode 100644 core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/DynamicLoadWidgets/myConfigExample2.xml create mode 100644 core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/DynamicMacros/ChangeMacro.js create mode 100644 core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/DynamicMacros/DynamicMacros.opi create mode 100644 core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/DynamicMacros/OpenOPI.js create mode 100644 core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/DynamicMacros/embeddedOPI.opi create mode 100644 core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/ExecuteShellScript/AbsoluteWSPathToSysProp.py create mode 100644 core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/ExecuteShellScript/ExecuteShellScript.opi create mode 100644 core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/ExecuteShellScript/RelativePathToSysProp.py create mode 100644 core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/ExecuteShellScript/Test.sh create mode 100644 core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/LoginDialogExample/LoginDialogExample.opi create mode 100644 core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/LoginDialogExample/OPIDialog.opi create mode 100644 core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/LoginDialogExample/OPILogin.py create mode 100644 core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/LoginDialogExample/SWTLogin.py create mode 100644 core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/LoginDialogExample/SWTLoginDialog$py.class create mode 100644 core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/LoginDialogExample/SWTLoginDialog.py create mode 100644 core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/LoginDialogExample/SwingLogin.py create mode 100644 core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/LoginDialogExample/SwingLoginDialog$py.class create mode 100644 core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/LoginDialogExample/SwingLoginDialog.py create mode 100644 core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/NotifyOnOPIStartAndClose.opi create mode 100644 core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/ScriptUtil/GUIUtilExample.opi create mode 100644 core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/ScriptUtil/createPVFromScript.opi create mode 100644 core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/Timer.opi create mode 100644 core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/WriteDynamicValueToPV/WriteDynamicValueToPV.opi create mode 100644 core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/WriteDynamicValueToPV/delayedSetValueExample.js create mode 100644 core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/WriteDynamicValueToPV/down.png create mode 100644 core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/WriteDynamicValueToPV/off.png create mode 100644 core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/WriteDynamicValueToPV/on.png create mode 100644 core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/WriteDynamicValueToPV/up.png create mode 100644 core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/XYGraph_Advanced/AddAxisExample.js create mode 100644 core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/XYGraph_Advanced/Add_Axes_From_Script.opi create mode 100644 core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/XYGraph_Advanced/Pause_Resume_XYGrpah.opi create mode 100644 core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/XYGraph_Advanced/SetMajorTickMarkStepHint.opi create mode 100644 core/base/tools/commander/workspace_template/Displays/BOY Examples/color.def create mode 100644 core/base/tools/commander/workspace_template/Displays/BOY Examples/font.def create mode 100644 core/base/tools/commander/workspace_template/Displays/BOY Examples/main.opi create mode 100644 core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/ArrangeSupportMenuItems.jpg create mode 100644 core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/Context menu.png create mode 100644 core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/Disconnected.png create mode 100644 core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/JF Withdrawable Circuit Breaker Off.gif create mode 100644 core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/JF Withdrawable Circuit Breaker On.gif create mode 100644 core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/NavigateHisotry.png create mode 100644 core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/OPIBuilder.png create mode 100644 core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/OffButton.png create mode 100644 core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/OnButton.png create mode 100644 core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/Start_16.png create mode 100644 core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/Stop_16.png create mode 100644 core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/SymbolLibrary/PNG/AT Single-Acting Diaphragm Actuator.png create mode 100644 core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/SymbolLibrary/PNG/Closing Push-Button Off.png create mode 100644 core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/SymbolLibrary/PNG/Closing Push-Button On.png create mode 100644 core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/SymbolLibrary/PNG/JF Fuse Switch Off.png create mode 100644 core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/SymbolLibrary/PNG/JF Fuse Switch On.png create mode 100644 core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/SymbolLibrary/PNG/PL General.png create mode 100644 core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/SymbolLibrary/PNG/SM 4-Positions Switch 0.png create mode 100644 core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/SymbolLibrary/PNG/SM 4-Positions Switch 1.png create mode 100644 core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/SymbolLibrary/PNG/SM 4-Positions Switch 2.png create mode 100644 core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/SymbolLibrary/PNG/SM 4-Positions Switch 3.png create mode 100644 core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/SymbolLibrary/SVG/AT Single-Acting Diaphragm Actuator.svg create mode 100644 core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/SymbolLibrary/SVG/Closing Push-Button Off.svg create mode 100644 core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/SymbolLibrary/SVG/Closing Push-Button On.svg create mode 100644 core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/SymbolLibrary/SVG/JF Fuse Switch Off.svg create mode 100644 core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/SymbolLibrary/SVG/JF Fuse Switch On.svg create mode 100644 core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/SymbolLibrary/SVG/JF Fuse.svg create mode 100644 core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/SymbolLibrary/SVG/PL General.svg create mode 100644 core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/SymbolLibrary/SVG/SM 4-Positions Switch 0.svg create mode 100644 core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/SymbolLibrary/SVG/SM 4-Positions Switch 1.svg create mode 100644 core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/SymbolLibrary/SVG/SM 4-Positions Switch 2.svg create mode 100644 core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/SymbolLibrary/SVG/SM 4-Positions Switch 3.svg create mode 100644 core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/Timer.wav create mode 100644 core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/Write_forbidden.png create mode 100644 core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/fish.gif create mode 100644 core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/home-16x16.png create mode 100644 core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/horses.gif create mode 100644 core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/houston.wav create mode 100644 core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/lightOff.png create mode 100644 core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/lightOn.png create mode 100644 core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/neutron.jpg create mode 100644 core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/onlineHelp.gif create mode 100644 core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/pump_off.gif create mode 100644 core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/pump_on.gif create mode 100644 core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/reset Perspective.png create mode 100644 core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/reset.png create mode 100644 core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/reset_switch_off.gif create mode 100644 core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/reset_switch_on.gif create mode 100644 core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/sns4t.gif create mode 100644 core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/snsBuilding.jpg create mode 100644 core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/snscontrol.jpg create mode 100644 core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/switch_off.gif create mode 100644 core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/switch_on.gif create mode 100644 core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/toobar.png create mode 100644 core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/valve_off.gif create mode 100644 core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/valve_on.gif create mode 100644 core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/yangshuo-china.jpg create mode 100644 core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/AddAxisExample.js create mode 100644 core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/AutoNavigation.js create mode 100644 core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/ChangePosAndSize.py create mode 100644 core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/ChangePosAndSize_m.py create mode 100644 core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/ChangePositionAndSize.js create mode 100644 core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/ChangePositionAndSize_m.js create mode 100644 core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/ChangeTraceColor.js create mode 100644 core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/ClearGraph.js create mode 100644 core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/Dialog_push.js create mode 100644 core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/Dialog_release.js create mode 100644 core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/DisplayPVValuesInTable.py create mode 100644 core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/DynamicLoadImage.js create mode 100644 core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/DynamicSymbol.js create mode 100644 core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/ExecuteAction.js create mode 100644 core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/ExecuteScriptFromAction.js create mode 100644 core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/ExecuteScriptFromAction.py create mode 100644 core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/KnobValueDialog.js create mode 100644 core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/KnobValueDialog.py create mode 100644 core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/MoveImage.js create mode 100644 core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/ReadFileExample.js create mode 100644 core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/SWTDialog.js create mode 100644 core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/SelectColorMap.js create mode 100644 core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/SetIntensityGraphData.js create mode 100644 core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/SetIntensityGraphData.py create mode 100644 core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/SimpleDialog.js create mode 100644 core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/TableContentMonitor.py create mode 100644 core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/TableSelectionMonitor.py create mode 100644 core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/ThreadExample.js create mode 100644 core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/ThreadExample.py create mode 100644 core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/Timer.py create mode 100644 core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/WidgetUtil.py create mode 100644 core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/WriteFileExample.js create mode 100644 core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/addAnnotations.py create mode 100644 core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/addPixelInfoListener.py create mode 100644 core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/addROI.py create mode 100644 core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/goHome.js create mode 100644 core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/myFile.txt create mode 100644 core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/openHelp.js create mode 100644 core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/1_1_Rectangle_Ellipse.opi create mode 100644 core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/1_2_Image.opi create mode 100644 core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/1_3_Label.opi create mode 100644 core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/1_4_Arc.opi create mode 100644 core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/1_5_Polyline_Polygon.opi create mode 100644 core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/1_6_Connection.opi create mode 100644 core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/2_1_LED.opi create mode 100644 core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/2_2_Text_Update.opi create mode 100644 core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/2_3_Gauge_Meter.opi create mode 100644 core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/2_4_Tank_Thermo.opi create mode 100644 core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/2_5_1_XY_Graph.opi create mode 100644 core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/2_5_2_XY_Graph.opi create mode 100644 core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/2_5_3_XY_Graph.opi create mode 100644 core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/2_5_4_XY_Graph.opi create mode 100644 core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/2_6_1_IntensityGraph.opi create mode 100644 core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/2_6_2_IntensityGraph_Javascript.opi create mode 100644 core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/2_6_3_IntensityGraph_Python.opi create mode 100644 core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/3_1_Action_Button.opi create mode 100644 core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/3_2_1_BoolButton_Switch.opi create mode 100644 core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/3_3_Menu_Button.opi create mode 100644 core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/3_4_1_Text_Input.opi create mode 100644 core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/3_4_2_NativeTextInput.opi create mode 100644 core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/3_5_Knob_Slider.opi create mode 100644 core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/3_6_ChoiceWidgets.opi create mode 100644 core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/4_1_GroupingContainer.opi create mode 100644 core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/4_2_2_LinkingContainer.opi create mode 100644 core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/4_2_LinkingContainer.opi create mode 100644 core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/4_3_TabbedContainer.opi create mode 100644 core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/4_4_WebBrowser.opi create mode 100644 core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/4_5_Table.opi create mode 100644 core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/4_6_1_SashContainer.opi create mode 100644 core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/4_6_2_SashContainer.opi create mode 100644 core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/4_6_Array.opi create mode 100644 core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/5_1_GridLayout.opi create mode 100644 core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/DynamicSymbols/DyanmicSymbol.opi create mode 100644 core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/DynamicSymbols/macro.opi create mode 100644 core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/SymbolWidgets.opi create mode 100644 core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/images/Off_1.png create mode 100644 core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/images/Off_2.png create mode 100644 core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/images/Off_3.png create mode 100644 core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/images/Off_4.png create mode 100644 core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/images/Off_5.png create mode 100644 core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/images/Off_7.png create mode 100644 core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/images/On_1.png create mode 100644 core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/images/On_2.png create mode 100644 core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/images/On_3.png create mode 100644 core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/images/On_4.png create mode 100644 core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/images/On_5.png create mode 100644 core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/images/On_7.png create mode 100644 core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/images/Readme.txt diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/HK/Main.opi b/core/base/tools/commander/workspace_template/Displays/Apps/HK/Main.opi index 197e289d9..077dd543e 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/HK/Main.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/HK/Main.opi @@ -15,7 +15,7 @@ 6 - 410 + 220 true @@ -81,8 +81,8 @@ $(pv_value) 100 false -33cb7c72:150aa4c347f:-75ff - 95 - 57 + 98 + 36 @@ -118,11 +118,11 @@ $(pv_value) 1 true Label - 72 + 81 false -33cb7c72:150aa4c347f:-75fe - 12 - 57 + 6 + 36 @@ -161,48 +161,8 @@ $(pv_value) 60 false -33cb7c72:150aa4c347f:-75fd - 24 - 76 - - - - false - - - - - - - 0 - 1 - true - - Default Bold - - - - - 20 - 1 - Label_46 - - - true - true - false - - - Commanding - - true - 1 - true - Label - 164 - false - -33cb7c72:150aa4c347f:-75fc - 72 - 30 + 27 + 55 @@ -253,8 +213,8 @@ $(pv_value) 100 false -33cb7c72:150aa4c347f:-75fb - 95 - 76 + 98 + 55 @@ -307,10 +267,10 @@ Yamcs.issueCommand('/cfs/hk/Noop', {});]]> $(pv_value) true Action Button - 67 + 74 -33cb7c72:150aa4c347f:-75fa - 210 - 58 + 213 + 37 @@ -363,10 +323,10 @@ Yamcs.issueCommand('/cfs/hk/Reset', {});]]> $(pv_value) true Action Button - 67 + 74 -33cb7c72:150aa4c347f:-75f9 - 210 - 79 + 213 + 58 @@ -457,8 +417,8 @@ $(pv_value) 100 false -736e4684:150ac3c95a1:-6f4a - 184 - 120 + 187 + 99 @@ -509,8 +469,8 @@ $(pv_value) 100 false -736e4684:150ac3c95a1:-6f49 - 184 - 139 + 187 + 118 @@ -561,8 +521,8 @@ $(pv_value) 100 false -736e4684:150ac3c95a1:-6f48 - 184 - 158 + 187 + 137 @@ -598,11 +558,11 @@ $(pv_value) 1 true Label - 163 + 172 false -736e4684:150ac3c95a1:-6f2e - 12 - 120 + 6 + 99 @@ -641,8 +601,8 @@ $(pv_value) 151 false -736e4684:150ac3c95a1:-6f22 - 24 - 139 + 27 + 118 @@ -678,10 +638,121 @@ $(pv_value) 1 true Label - 131 + 151 false -736e4684:150ac3c95a1:-6f1d - 44 - 158 + 27 + 137 + + + + + + + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 20 + ../../Resources/send.png + NoOp_2 + 0 + + + + + true + true + false + + + + SendHK + false + $(pv_name) +$(pv_value) + true + Action Button + 171 + 689e2ae8:1777f312f88:-7741 + 62 + 168 + + + + + SendCombined.opi + + true + + 1 + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 20 + + Action Button_4 + 0 + + + + + true + true + false + + + + Send Combined Pkt + false + $(pv_name) +$(pv_value) + true + Action Button + 171 + 689e2ae8:1777f312f88:-7725 + 62 + 187 \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/HK/SendCombined.opi b/core/base/tools/commander/workspace_template/Displays/Apps/HK/SendCombined.opi new file mode 100644 index 000000000..09b8795e9 --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/Apps/HK/SendCombined.opi @@ -0,0 +1,232 @@ + + + + + false + -1 + -1 + + false + + + + 1.5.3 + + + + 6 + 100 + + true + + HK - Send Combined + + + true + true + true + true + true + Display + 200 + -10b748b0:17773fb054b:-7a2f + -1 + -1 + + + false + + + + + + + 0 + 1 + true + + Default Bold + + + + + 20 + 1 + Label_49 + + + true + true + false + + + Send Combined + + true + 1 + true + Label + 175 + false + -10b748b0:17773fb054b:-7a20 + 12 + 6 + + + + + + + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 20 + ../../Resources/send.png + NoOp + 0 + + + + + true + true + false + + + + Send + false + $(pv_name) +$(pv_value) + true + Action Button + 92 + -10b748b0:17773fb054b:-79c7 + 54 + 72 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_3 + + + true + true + false + + + Out Msg + + true + 1 + true + Label + 61 + false + 689e2ae8:1777f312f88:-7891 + 0 + 36 + + + + false + false + false + + + + true + + + + 1 + 1 + + true + + Default + + false + + + + 0 + 20 + 0 + false + 1.7976931348623157E308 + -1.7976931348623157E308 + false + OutMsgToSend + 0 + true + loc://HK_SendCombinedPkt_OutMsg<VString> + + 0.0 + + + true + true + false + + + 0 + true + + + $(pv_name) +$(pv_value) + false + true + Text Input + 121 + 689e2ae8:1777f312f88:-7890 + 66 + 36 + + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/HK/scripts/NoOp.js b/core/base/tools/commander/workspace_template/Displays/Apps/HK/scripts/NoOp.js deleted file mode 100644 index e1e98562a..000000000 --- a/core/base/tools/commander/workspace_template/Displays/Apps/HK/scripts/NoOp.js +++ /dev/null @@ -1,4 +0,0 @@ -importPackage(Packages.org.csstudio.opibuilder.scriptUtil); -importPackage(Packages.org.yamcs.studio.script); - -Yamcs.issueCommand('/cfs/hk/Noop', {}); \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/HK/scripts/ResetCounters.js b/core/base/tools/commander/workspace_template/Displays/Apps/HK/scripts/ResetCounters.js deleted file mode 100644 index cbac94105..000000000 --- a/core/base/tools/commander/workspace_template/Displays/Apps/HK/scripts/ResetCounters.js +++ /dev/null @@ -1,4 +0,0 @@ -importPackage(Packages.org.csstudio.opibuilder.scriptUtil); -importPackage(Packages.org.yamcs.studio.script); - -Yamcs.issueCommand('/cfs/hk/Reset', {}); \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/HS/Main.opi b/core/base/tools/commander/workspace_template/Displays/Apps/HS/Main.opi index bf80687c4..b4726ecaf 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/HS/Main.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/HS/Main.opi @@ -81,8 +81,8 @@ $(pv_value) 100 false -33cb7c72:150aa4c347f:-75ff - 95 - 57 + 98 + 37 @@ -118,11 +118,11 @@ $(pv_value) 1 true Label - 72 + 81 false -33cb7c72:150aa4c347f:-75fe - 12 - 57 + 6 + 37 @@ -161,48 +161,8 @@ $(pv_value) 60 false -33cb7c72:150aa4c347f:-75fd - 24 - 76 - - - - false - - - - - - - 0 - 1 - true - - Default Bold - - - - - 20 - 1 - Label_46 - - - true - true - false - - - Commanding - - true - 1 - true - Label - 164 - false - -33cb7c72:150aa4c347f:-75fc - 72 - 30 + 27 + 56 @@ -253,8 +213,8 @@ $(pv_value) 100 false -33cb7c72:150aa4c347f:-75fb - 95 - 76 + 98 + 56 @@ -309,8 +269,8 @@ $(pv_value) Action Button 67 -33cb7c72:150aa4c347f:-75fa - 210 - 58 + 213 + 38 @@ -365,8 +325,8 @@ $(pv_value) Action Button 67 -33cb7c72:150aa4c347f:-75f9 - 210 - 79 + 213 + 59 @@ -452,8 +412,8 @@ $(pv_value) Check Box 25 -6442812a:150b08c061c:-7f01 - 96 - 133 + 87 + 113 @@ -499,8 +459,8 @@ $(pv_value) Check Box 25 -6442812a:150b08c061c:-7f00 - 96 - 152 + 87 + 132 @@ -546,8 +506,8 @@ $(pv_value) Check Box 25 -6442812a:150b08c061c:-7eff - 96 - 171 + 87 + 151 @@ -593,60 +553,8 @@ $(pv_value) Check Box 25 -6442812a:150b08c061c:-7efe - 96 - 190 - - - - false - false - false - - - - true - - - - 0 - 1 - true - - Default - - false - - - - 1 - 20 - 0 - Text Update_8 - 0 - false - /CFS/HS/CDSInUse - - 0.0 - - - true - true - false - - - true - ###### - $(pv_name) -$(pv_value) - false - 1 - true - Text Update - 100 - false - -6442812a:150b08c061c:-7efd - 156 - 240 + 87 + 170 @@ -692,8 +600,8 @@ $(pv_value) Check Box 25 -6442812a:150b08c061c:-7efc - 356 - 133 + 347 + 113 @@ -739,8 +647,8 @@ $(pv_value) Check Box 25 -6442812a:150b08c061c:-7efb - 356 - 152 + 347 + 132 @@ -786,8 +694,8 @@ $(pv_value) Check Box 25 -6442812a:150b08c061c:-7efa - 356 - 171 + 347 + 151 @@ -833,8 +741,8 @@ $(pv_value) Check Box 25 -6442812a:150b08c061c:-7ef9 - 356 - 190 + 347 + 170 @@ -864,7 +772,7 @@ $(pv_value) Text Update_13 0 false - /CFS/HS/ResetsPerformed + /cfs/hs/HS_HkPacket_t.ResetsPerformed 0.0 @@ -885,8 +793,8 @@ $(pv_value) 100 false -6442812a:150b08c061c:-7ef8 - 156 - 297 + 144 + 265 @@ -916,7 +824,7 @@ $(pv_value) Text Update_14 0 false - /CFS/HS/MaxResets + /cfs/hs/HS_HkPacket_t.MaxResets 0.0 @@ -937,8 +845,8 @@ $(pv_value) 100 false -6442812a:150b08c061c:-7ef7 - 156 - 316 + 144 + 284 @@ -968,7 +876,7 @@ $(pv_value) Text Update_15 0 false - /CFS/HS/EventsMonitoredCount + /cfs/hs/HS_HkPacket_t.EventsMonitoredCount 0.0 @@ -989,8 +897,8 @@ $(pv_value) 100 false -6442812a:150b08c061c:-7ef6 - 156 - 259 + 144 + 227 @@ -1020,7 +928,7 @@ $(pv_value) Text Update_16 0 false - /CFS/HS/InvalidEventMonCount + /cfs/hs/HS_HkPacket_t.InvalidEventMonCount 0.0 @@ -1041,8 +949,8 @@ $(pv_value) 100 false -6442812a:150b08c061c:-7ef5 - 156 - 278 + 144 + 246 @@ -1081,8 +989,8 @@ $(pv_value) 76 false -6442812a:150b08c061c:-7eed - 15 - 133 + 6 + 113 @@ -1121,8 +1029,8 @@ $(pv_value) 76 false -6442812a:150b08c061c:-7ee3 - 15 - 152 + 6 + 132 @@ -1161,8 +1069,8 @@ $(pv_value) 76 false -6442812a:150b08c061c:-7ede - 15 - 190 + 6 + 170 @@ -1201,48 +1109,8 @@ $(pv_value) 76 false -6442812a:150b08c061c:-7ed9 - 15 - 171 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 2 - Label_54 - - - true - true - false - - - CDS in Use - - true - 1 - true - Label - 133 - false - -6442812a:150b08c061c:-7ed4 - 18 - 240 + 6 + 151 @@ -1281,8 +1149,8 @@ $(pv_value) 30 false -6442812a:150b08c061c:-7ecf - 321 - 152 + 312 + 132 @@ -1321,8 +1189,8 @@ $(pv_value) 30 false -6442812a:150b08c061c:-7eca - 321 - 133 + 312 + 113 @@ -1361,8 +1229,8 @@ $(pv_value) 30 false -6442812a:150b08c061c:-7ec5 - 321 - 171 + 312 + 151 @@ -1401,8 +1269,8 @@ $(pv_value) 30 false -6442812a:150b08c061c:-7ec0 - 321 - 190 + 312 + 170 @@ -1441,8 +1309,8 @@ $(pv_value) 133 false -6442812a:150b08c061c:-7ebb - 18 - 297 + 6 + 265 @@ -1481,8 +1349,8 @@ $(pv_value) 133 false -6442812a:150b08c061c:-7eb6 - 18 - 259 + 6 + 227 @@ -1521,8 +1389,8 @@ $(pv_value) 133 false -6442812a:150b08c061c:-7eb1 - 18 - 316 + 6 + 284 @@ -1561,8 +1429,8 @@ $(pv_value) 133 false -6442812a:150b08c061c:-7eac - 18 - 278 + 6 + 246 @@ -1601,8 +1469,8 @@ $(pv_value) 86 false -6442812a:150b08c061c:-7ea4 - 24 - 114 + 15 + 94 @@ -1641,8 +1509,8 @@ $(pv_value) 65 false -6442812a:150b08c061c:-7e86 - 324 - 114 + 315 + 94 @@ -1681,8 +1549,8 @@ $(pv_value) 164 false -6442812a:150b08c061c:-7e7c - 78 - 221 + 69 + 201 @@ -1728,8 +1596,8 @@ $(pv_value) Check Box 39 -6442812a:150b08c061c:-7d9f - 163 - 427 + 524 + 37 @@ -1775,8 +1643,8 @@ $(pv_value) Check Box 39 -6442812a:150b08c061c:-7d9e - 163 - 446 + 524 + 56 @@ -1822,8 +1690,8 @@ $(pv_value) Check Box 39 -6442812a:150b08c061c:-7d9d - 163 - 465 + 524 + 75 @@ -1869,8 +1737,8 @@ $(pv_value) Check Box 39 -6442812a:150b08c061c:-7d9c - 163 - 484 + 524 + 94 @@ -1916,8 +1784,8 @@ $(pv_value) Check Box 39 -6442812a:150b08c061c:-7d9b - 163 - 503 + 524 + 113 @@ -1963,8 +1831,8 @@ $(pv_value) Check Box 39 -6442812a:150b08c061c:-7d9a - 163 - 522 + 524 + 132 @@ -2010,8 +1878,8 @@ $(pv_value) Check Box 39 -6442812a:150b08c061c:-7d99 - 163 - 541 + 524 + 151 @@ -2057,8 +1925,8 @@ $(pv_value) Check Box 39 -6442812a:150b08c061c:-7d98 - 163 - 560 + 524 + 170 @@ -2104,8 +1972,8 @@ $(pv_value) Check Box 39 -6442812a:150b08c061c:-7d97 - 163 - 579 + 524 + 189 @@ -2151,8 +2019,8 @@ $(pv_value) Check Box 39 -6442812a:150b08c061c:-7d96 - 163 - 598 + 524 + 208 @@ -2198,8 +2066,8 @@ $(pv_value) Check Box 39 -6442812a:150b08c061c:-7d95 - 163 - 617 + 524 + 227 @@ -2245,8 +2113,8 @@ $(pv_value) Check Box 39 -6442812a:150b08c061c:-7d94 - 163 - 636 + 524 + 246 @@ -2292,8 +2160,8 @@ $(pv_value) Check Box 39 -6442812a:150b08c061c:-7d93 - 163 - 655 + 524 + 265 @@ -2339,8 +2207,8 @@ $(pv_value) Check Box 39 -6442812a:150b08c061c:-7d92 - 163 - 674 + 524 + 284 @@ -2386,8 +2254,8 @@ $(pv_value) Check Box 39 -6442812a:150b08c061c:-7d91 - 163 - 693 + 524 + 303 @@ -2433,8 +2301,8 @@ $(pv_value) Check Box 39 -6442812a:150b08c061c:-7d90 - 163 - 712 + 524 + 322 @@ -2480,8 +2348,8 @@ $(pv_value) Check Box 39 -6442812a:150b08c061c:-7d8f - 163 - 731 + 524 + 341 @@ -2527,8 +2395,8 @@ $(pv_value) Check Box 39 -6442812a:150b08c061c:-7d8e - 163 - 750 + 524 + 360 @@ -2574,8 +2442,8 @@ $(pv_value) Check Box 39 -6442812a:150b08c061c:-7d8d - 163 - 769 + 524 + 379 @@ -2621,8 +2489,8 @@ $(pv_value) Check Box 39 -6442812a:150b08c061c:-7d8c - 163 - 788 + 524 + 398 @@ -2668,8 +2536,8 @@ $(pv_value) Check Box 39 -6442812a:150b08c061c:-7d8b - 163 - 807 + 524 + 417 @@ -2715,8 +2583,8 @@ $(pv_value) Check Box 39 -6442812a:150b08c061c:-7d8a - 163 - 826 + 524 + 436 @@ -2762,8 +2630,8 @@ $(pv_value) Check Box 39 -6442812a:150b08c061c:-7d89 - 163 - 845 + 524 + 455 @@ -2809,8 +2677,8 @@ $(pv_value) Check Box 39 -6442812a:150b08c061c:-7d88 - 163 - 864 + 524 + 474 @@ -2856,8 +2724,8 @@ $(pv_value) Check Box 39 -6442812a:150b08c061c:-7d87 - 163 - 883 + 524 + 493 @@ -2903,8 +2771,8 @@ $(pv_value) Check Box 39 -6442812a:150b08c061c:-7d86 - 163 - 902 + 524 + 512 @@ -2950,8 +2818,8 @@ $(pv_value) Check Box 39 -6442812a:150b08c061c:-7d85 - 163 - 921 + 524 + 531 @@ -2997,8 +2865,8 @@ $(pv_value) Check Box 39 -6442812a:150b08c061c:-7d84 - 163 - 940 + 524 + 550 @@ -3044,8 +2912,8 @@ $(pv_value) Check Box 39 -6442812a:150b08c061c:-7d83 - 163 - 959 + 524 + 569 @@ -3091,8 +2959,8 @@ $(pv_value) Check Box 39 -6442812a:150b08c061c:-7d82 - 163 - 978 + 524 + 588 @@ -3138,8 +3006,8 @@ $(pv_value) Check Box 39 -6442812a:150b08c061c:-7d81 - 163 - 997 + 524 + 607 @@ -3185,8 +3053,8 @@ $(pv_value) Check Box 39 -6442812a:150b08c061c:-7d80 - 163 - 1016 + 524 + 626 @@ -3216,7 +3084,7 @@ $(pv_value) Text Update_49 0 false - /CFS/HS/MsgActExec + /cfs/hs/HS_HkPacket_t.MsgActExec 0.0 @@ -3237,8 +3105,8 @@ $(pv_value) 100 false -6442812a:150b08c061c:-7d50 - 156 - 335 + 144 + 303 @@ -3268,7 +3136,7 @@ $(pv_value) Text Update_50 0 false - /CFS/HS/UtilCpuAvg + /cfs/hs/HS_HkPacket_t.UtilCpuAvg 0.0 @@ -3289,8 +3157,8 @@ $(pv_value) 100 false -6442812a:150b08c061c:-7d4f - 156 - 354 + 144 + 322 @@ -3320,7 +3188,7 @@ $(pv_value) Text Update_51 0 false - /CFS/HS/UtilCpuPeak + /cfs/hs/HS_HkPacket_t.UtilCpuPeak 0.0 @@ -3341,8 +3209,8 @@ $(pv_value) 100 false -6442812a:150b08c061c:-7d4e - 156 - 373 + 144 + 341 @@ -3381,8 +3249,8 @@ $(pv_value) 133 false -6442812a:150b08c061c:-7d44 - 18 - 335 + 6 + 303 @@ -3418,11 +3286,11 @@ $(pv_value) 1 true Label - 133 + 139 false -6442812a:150b08c061c:-7d3f - 18 - 373 + 0 + 341 @@ -3461,8 +3329,8 @@ $(pv_value) 133 false -6442812a:150b08c061c:-7d3a - 18 - 354 + 6 + 322 @@ -3501,8 +3369,8 @@ $(pv_value) 133 false -6442812a:150b08c061c:-7d2a - 18 - 427 + 379 + 37 @@ -3541,8 +3409,8 @@ $(pv_value) 133 false -6442812a:150b08c061c:-7d1e - 18 - 465 + 379 + 75 @@ -3581,8 +3449,8 @@ $(pv_value) 133 false -6442812a:150b08c061c:-7d19 - 18 - 446 + 379 + 56 @@ -3621,8 +3489,8 @@ $(pv_value) 133 false -6442812a:150b08c061c:-7d14 - 18 - 484 + 379 + 94 @@ -3661,8 +3529,8 @@ $(pv_value) 133 false -6442812a:150b08c061c:-7d0f - 18 - 503 + 379 + 113 @@ -3701,8 +3569,8 @@ $(pv_value) 133 false -6442812a:150b08c061c:-7d0a - 18 - 522 + 379 + 132 @@ -3741,8 +3609,8 @@ $(pv_value) 133 false -6442812a:150b08c061c:-7d05 - 18 - 561 + 379 + 171 @@ -3781,8 +3649,8 @@ $(pv_value) 133 false -6442812a:150b08c061c:-7d00 - 18 - 541 + 379 + 151 @@ -3821,8 +3689,8 @@ $(pv_value) 133 false -6442812a:150b08c061c:-7cfb - 18 - 598 + 379 + 208 @@ -3861,8 +3729,8 @@ $(pv_value) 133 false -6442812a:150b08c061c:-7cf6 - 18 - 579 + 379 + 189 @@ -3901,8 +3769,8 @@ $(pv_value) 133 false -6442812a:150b08c061c:-7cf1 - 18 - 617 + 379 + 227 @@ -3941,8 +3809,8 @@ $(pv_value) 133 false -6442812a:150b08c061c:-7cec - 18 - 636 + 379 + 246 @@ -3981,8 +3849,8 @@ $(pv_value) 133 false -6442812a:150b08c061c:-7ce7 - 18 - 655 + 379 + 265 @@ -4021,8 +3889,8 @@ $(pv_value) 133 false -6442812a:150b08c061c:-7ce2 - 18 - 693 + 379 + 303 @@ -4061,8 +3929,8 @@ $(pv_value) 133 false -6442812a:150b08c061c:-7cdd - 18 - 674 + 379 + 284 @@ -4101,8 +3969,8 @@ $(pv_value) 133 false -6442812a:150b08c061c:-7cd8 - 18 - 712 + 379 + 322 @@ -4141,8 +4009,8 @@ $(pv_value) 133 false -6442812a:150b08c061c:-7cd3 - 18 - 788 + 379 + 398 @@ -4181,8 +4049,8 @@ $(pv_value) 133 false -6442812a:150b08c061c:-7cce - 18 - 750 + 379 + 360 @@ -4221,8 +4089,8 @@ $(pv_value) 133 false -6442812a:150b08c061c:-7cc9 - 18 - 731 + 379 + 341 @@ -4261,8 +4129,8 @@ $(pv_value) 133 false -6442812a:150b08c061c:-7cc4 - 18 - 769 + 379 + 379 @@ -4301,8 +4169,8 @@ $(pv_value) 133 false -6442812a:150b08c061c:-7cbf - 18 - 807 + 379 + 417 @@ -4341,8 +4209,8 @@ $(pv_value) 133 false -6442812a:150b08c061c:-7cba - 18 - 826 + 379 + 436 @@ -4381,8 +4249,8 @@ $(pv_value) 133 false -6442812a:150b08c061c:-7cb5 - 18 - 864 + 379 + 474 @@ -4421,8 +4289,8 @@ $(pv_value) 133 false -6442812a:150b08c061c:-7cb0 - 18 - 845 + 379 + 455 @@ -4461,8 +4329,8 @@ $(pv_value) 133 false -6442812a:150b08c061c:-7cab - 18 - 902 + 379 + 512 @@ -4501,8 +4369,8 @@ $(pv_value) 133 false -6442812a:150b08c061c:-7ca6 - 18 - 883 + 379 + 493 @@ -4541,8 +4409,8 @@ $(pv_value) 133 false -6442812a:150b08c061c:-7ca1 - 18 - 940 + 379 + 550 @@ -4581,8 +4449,8 @@ $(pv_value) 133 false -6442812a:150b08c061c:-7c9c - 18 - 921 + 379 + 531 @@ -4621,8 +4489,8 @@ $(pv_value) 133 false -6442812a:150b08c061c:-7c97 - 18 - 959 + 379 + 569 @@ -4661,8 +4529,8 @@ $(pv_value) 133 false -6442812a:150b08c061c:-7c8d - 18 - 978 + 379 + 588 @@ -4701,8 +4569,8 @@ $(pv_value) 133 false -6442812a:150b08c061c:-7c83 - 18 - 1016 + 379 + 626 @@ -4741,8 +4609,8 @@ $(pv_value) 133 false -6442812a:150b08c061c:-7c7e - 18 - 997 + 379 + 607 @@ -4781,8 +4649,8 @@ $(pv_value) 39 false -6442812a:150b08c061c:-7c22 - 151 - 408 + 512 + 18 @@ -4812,7 +4680,7 @@ $(pv_value) Text Update_52 0 false - /CFS/HS/ExeCounts_0 + /cfs/hs/HS_HkPacket_t.ExeCounts_0_ 0.0 @@ -4833,8 +4701,8 @@ $(pv_value) 100 false -6442812a:150b08c061c:-7b40 - 201 - 427 + 562 + 37 @@ -4864,7 +4732,7 @@ $(pv_value) Text Update_53 0 false - /CFS/HS/ExeCounts_1 + /cfs/hs/HS_HkPacket_t.ExeCounts_1_ 0.0 @@ -4885,8 +4753,8 @@ $(pv_value) 100 false -6442812a:150b08c061c:-7b3f - 201 - 446 + 562 + 56 @@ -4916,7 +4784,7 @@ $(pv_value) Text Update_54 0 false - /CFS/HS/ExeCounts_2 + /cfs/hs/HS_HkPacket_t.ExeCounts_2_ 0.0 @@ -4937,8 +4805,8 @@ $(pv_value) 100 false -6442812a:150b08c061c:-7b3e - 201 - 465 + 562 + 75 @@ -4968,7 +4836,7 @@ $(pv_value) Text Update_55 0 false - /CFS/HS/ExeCounts_3 + /cfs/hs/HS_HkPacket_t.ExeCounts_3_ 0.0 @@ -4989,8 +4857,8 @@ $(pv_value) 100 false -6442812a:150b08c061c:-7b3d - 201 - 484 + 562 + 94 @@ -5020,7 +4888,7 @@ $(pv_value) Text Update_56 0 false - /CFS/HS/ExeCounts_4 + /cfs/hs/HS_HkPacket_t.ExeCounts_4_ 0.0 @@ -5041,8 +4909,8 @@ $(pv_value) 100 false -6442812a:150b08c061c:-7b3c - 201 - 503 + 562 + 113 @@ -5072,7 +4940,7 @@ $(pv_value) Text Update_57 0 false - /CFS/HS/ExeCounts_5 + /cfs/hs/HS_HkPacket_t.ExeCounts_5_ 0.0 @@ -5093,8 +4961,8 @@ $(pv_value) 100 false -6442812a:150b08c061c:-7b3b - 201 - 522 + 562 + 132 @@ -5124,7 +4992,7 @@ $(pv_value) Text Update_58 0 false - /CFS/HS/ExeCounts_6 + /cfs/hs/HS_HkPacket_t.ExeCounts_6_ 0.0 @@ -5145,8 +5013,8 @@ $(pv_value) 100 false -6442812a:150b08c061c:-7b3a - 201 - 541 + 562 + 151 @@ -5176,7 +5044,7 @@ $(pv_value) Text Update_59 0 false - /CFS/HS/ExeCounts_7 + /cfs/hs/HS_HkPacket_t.ExeCounts_7_ 0.0 @@ -5197,8 +5065,8 @@ $(pv_value) 100 false -6442812a:150b08c061c:-7b39 - 201 - 561 + 562 + 171 @@ -5228,7 +5096,7 @@ $(pv_value) Text Update_60 0 false - /CFS/HS/ExeCounts_8 + /cfs/hs/HS_HkPacket_t.ExeCounts_8_ 0.0 @@ -5249,8 +5117,8 @@ $(pv_value) 100 false -6442812a:150b08c061c:-7b38 - 201 - 579 + 562 + 189 @@ -5280,7 +5148,7 @@ $(pv_value) Text Update_61 0 false - /CFS/HS/ExeCounts_9 + /cfs/hs/HS_HkPacket_t.ExeCounts_9_ 0.0 @@ -5301,8 +5169,8 @@ $(pv_value) 100 false -6442812a:150b08c061c:-7b37 - 201 - 598 + 562 + 208 @@ -5332,7 +5200,7 @@ $(pv_value) Text Update_62 0 false - /CFS/HS/ExeCounts_10 + /cfs/hs/HS_HkPacket_t.ExeCounts_10_ 0.0 @@ -5353,8 +5221,8 @@ $(pv_value) 100 false -6442812a:150b08c061c:-7b36 - 201 - 617 + 562 + 227 @@ -5384,7 +5252,7 @@ $(pv_value) Text Update_63 0 false - /CFS/HS/ExeCounts_11 + /cfs/hs/HS_HkPacket_t.ExeCounts_11_ 0.0 @@ -5405,8 +5273,8 @@ $(pv_value) 100 false -6442812a:150b08c061c:-7b35 - 201 - 636 + 562 + 246 @@ -5436,7 +5304,7 @@ $(pv_value) Text Update_64 0 false - /CFS/HS/ExeCounts_12 + /cfs/hs/HS_HkPacket_t.ExeCounts_12_ 0.0 @@ -5457,8 +5325,8 @@ $(pv_value) 100 false -6442812a:150b08c061c:-7b34 - 201 - 655 + 562 + 265 @@ -5488,7 +5356,7 @@ $(pv_value) Text Update_65 0 false - /CFS/HS/ExeCounts_13 + /cfs/hs/HS_HkPacket_t.ExeCounts_13_ 0.0 @@ -5509,8 +5377,8 @@ $(pv_value) 100 false -6442812a:150b08c061c:-7b33 - 201 - 674 + 562 + 284 @@ -5540,7 +5408,7 @@ $(pv_value) Text Update_66 0 false - /CFS/HS/ExeCounts_14 + /cfs/hs/HS_HkPacket_t.ExeCounts_14_ 0.0 @@ -5561,8 +5429,8 @@ $(pv_value) 100 false -6442812a:150b08c061c:-7b32 - 201 - 693 + 562 + 303 @@ -5592,7 +5460,7 @@ $(pv_value) Text Update_67 0 false - /CFS/HS/ExeCounts_15 + /cfs/hs/HS_HkPacket_t.ExeCounts_15_ 0.0 @@ -5613,8 +5481,8 @@ $(pv_value) 100 false -6442812a:150b08c061c:-7b31 - 201 - 712 + 562 + 322 @@ -5644,7 +5512,7 @@ $(pv_value) Text Update_68 0 false - /CFS/HS/ExeCounts_16 + /cfs/hs/HS_HkPacket_t.ExeCounts_16_ 0.0 @@ -5665,8 +5533,8 @@ $(pv_value) 100 false -6442812a:150b08c061c:-7b30 - 201 - 731 + 562 + 341 @@ -5696,7 +5564,7 @@ $(pv_value) Text Update_69 0 false - /CFS/HS/ExeCounts_17 + /cfs/hs/HS_HkPacket_t.ExeCounts_17_ 0.0 @@ -5717,8 +5585,8 @@ $(pv_value) 100 false -6442812a:150b08c061c:-7b2f - 201 - 750 + 562 + 360 @@ -5748,7 +5616,7 @@ $(pv_value) Text Update_70 0 false - /CFS/HS/ExeCounts_18 + /cfs/hs/HS_HkPacket_t.ExeCounts_18_ 0.0 @@ -5769,8 +5637,8 @@ $(pv_value) 100 false -6442812a:150b08c061c:-7b2e - 201 - 769 + 562 + 379 @@ -5800,7 +5668,7 @@ $(pv_value) Text Update_71 0 false - /CFS/HS/ExeCounts_19 + /cfs/hs/HS_HkPacket_t.ExeCounts_19_ 0.0 @@ -5821,8 +5689,8 @@ $(pv_value) 100 false -6442812a:150b08c061c:-7b2d - 201 - 788 + 562 + 398 @@ -5852,7 +5720,7 @@ $(pv_value) Text Update_72 0 false - /CFS/HS/ExeCounts_20 + /cfs/hs/HS_HkPacket_t.ExeCounts_20_ 0.0 @@ -5873,8 +5741,8 @@ $(pv_value) 100 false -6442812a:150b08c061c:-7b2c - 201 - 807 + 562 + 417 @@ -5904,7 +5772,7 @@ $(pv_value) Text Update_73 0 false - /CFS/HS/ExeCounts_21 + /cfs/hs/HS_HkPacket_t.ExeCounts_21_ 0.0 @@ -5925,8 +5793,8 @@ $(pv_value) 100 false -6442812a:150b08c061c:-7b2b - 201 - 826 + 562 + 436 @@ -5956,7 +5824,7 @@ $(pv_value) Text Update_74 0 false - /CFS/HS/ExeCounts_22 + /cfs/hs/HS_HkPacket_t.ExeCounts_22_ 0.0 @@ -5977,8 +5845,8 @@ $(pv_value) 100 false -6442812a:150b08c061c:-7b2a - 201 - 845 + 562 + 455 @@ -6008,7 +5876,7 @@ $(pv_value) Text Update_75 0 false - /CFS/HS/ExeCounts_23 + /cfs/hs/HS_HkPacket_t.ExeCounts_23_ 0.0 @@ -6029,8 +5897,8 @@ $(pv_value) 100 false -6442812a:150b08c061c:-7b29 - 201 - 864 + 562 + 474 @@ -6060,7 +5928,7 @@ $(pv_value) Text Update_76 0 false - /CFS/HS/ExeCounts_24 + /cfs/hs/HS_HkPacket_t.ExeCounts_24_ 0.0 @@ -6081,8 +5949,8 @@ $(pv_value) 100 false -6442812a:150b08c061c:-7b28 - 201 - 883 + 562 + 493 @@ -6112,7 +5980,7 @@ $(pv_value) Text Update_77 0 false - /CFS/HS/ExeCounts_25 + /cfs/hs/HS_HkPacket_t.ExeCounts_25_ 0.0 @@ -6133,8 +6001,8 @@ $(pv_value) 100 false -6442812a:150b08c061c:-7b27 - 201 - 902 + 562 + 512 @@ -6164,7 +6032,7 @@ $(pv_value) Text Update_78 0 false - /CFS/HS/ExeCounts_26 + /cfs/hs/HS_HkPacket_t.ExeCounts_26_ 0.0 @@ -6185,8 +6053,8 @@ $(pv_value) 100 false -6442812a:150b08c061c:-7b26 - 201 - 921 + 562 + 531 @@ -6216,7 +6084,7 @@ $(pv_value) Text Update_79 0 false - /CFS/HS/ExeCounts_27 + /cfs/hs/HS_HkPacket_t.ExeCounts_27_ 0.0 @@ -6237,8 +6105,8 @@ $(pv_value) 100 false -6442812a:150b08c061c:-7b25 - 201 - 940 + 562 + 550 @@ -6268,7 +6136,7 @@ $(pv_value) Text Update_80 0 false - /CFS/HS/ExeCounts_28 + /cfs/hs/HS_HkPacket_t.ExeCounts_28_ 0.0 @@ -6289,8 +6157,8 @@ $(pv_value) 100 false -6442812a:150b08c061c:-7b24 - 201 - 959 + 562 + 569 @@ -6320,7 +6188,7 @@ $(pv_value) Text Update_81 0 false - /CFS/HS/ExeCounts_29 + /cfs/hs/HS_HkPacket_t.ExeCounts_29_ 0.0 @@ -6341,8 +6209,8 @@ $(pv_value) 100 false -6442812a:150b08c061c:-7b23 - 201 - 978 + 562 + 588 @@ -6372,7 +6240,7 @@ $(pv_value) Text Update_82 0 false - /CFS/HS/ExeCounts_30 + /cfs/hs/HS_HkPacket_t.ExeCounts_30_ 0.0 @@ -6393,8 +6261,8 @@ $(pv_value) 100 false -6442812a:150b08c061c:-7b22 - 201 - 997 + 562 + 607 @@ -6424,7 +6292,7 @@ $(pv_value) Text Update_83 0 false - /CFS/HS/ExeCounts_31 + /cfs/hs/HS_HkPacket_t.ExeCounts_31_ 0.0 @@ -6445,8 +6313,8 @@ $(pv_value) 100 false -6442812a:150b08c061c:-7b21 - 201 - 1016 + 562 + 626 @@ -6485,16 +6353,18 @@ $(pv_value) 72 false -6442812a:150b08c061c:-7b19 - 201 - 408 + 562 + 18 - scripts/NoOp.js + - false +importPackage(Packages.org.yamcs.studio.script); + +Yamcs.issueCommand('/cfs/hs/EnableAppMon', {});]]> + true @@ -6539,16 +6409,18 @@ $(pv_value) Action Button 91 -6442812a:150b08c061c:-7721 - 120 - 134 + 111 + 114 - scripts/NoOp.js + - false +importPackage(Packages.org.yamcs.studio.script); + +Yamcs.issueCommand('/cfs/hs/DisableAppMon', {});]]> + true @@ -6593,16 +6465,18 @@ $(pv_value) Action Button 89 -6442812a:150b08c061c:-7717 - 210 - 134 + 201 + 114 - scripts/NoOp.js + - false +importPackage(Packages.org.yamcs.studio.script); + +Yamcs.issueCommand('/cfs/hs/EnableEventMon', {});]]> + true @@ -6645,18 +6519,20 @@ $(pv_value) $(pv_value) true Action Button - 110 + 91 -6442812a:150b08c061c:-7710 - 120 - 153 + 111 + 133 - scripts/NoOp.js + - false +importPackage(Packages.org.yamcs.studio.script); + +Yamcs.issueCommand('/cfs/hs/EnableAliveness', {});]]> + true @@ -6699,18 +6575,20 @@ $(pv_value) $(pv_value) true Action Button - 110 + 91 -6442812a:150b08c061c:-770b - 120 - 172 + 111 + 152 - scripts/NoOp.js + - false +importPackage(Packages.org.yamcs.studio.script); + +Yamcs.issueCommand('/cfs/hs/EnableCpuHog', {});]]> + true @@ -6753,18 +6631,20 @@ $(pv_value) $(pv_value) true Action Button - 110 + 91 -6442812a:150b08c061c:-7706 - 120 - 191 + 111 + 171 - scripts/NoOp.js + - false +importPackage(Packages.org.yamcs.studio.script); + +Yamcs.issueCommand('/cfs/hs/DisableEventMon', {});]]> + true @@ -6809,16 +6689,18 @@ $(pv_value) Action Button 89 -6442812a:150b08c061c:-76fe - 210 - 153 + 201 + 133 - scripts/NoOp.js + - false +importPackage(Packages.org.yamcs.studio.script); + +Yamcs.issueCommand('/cfs/hs/DisableAliveness', {});]]> + true @@ -6863,16 +6745,18 @@ $(pv_value) Action Button 89 -6442812a:150b08c061c:-76f9 - 210 - 172 + 201 + 152 - scripts/NoOp.js + - false +importPackage(Packages.org.yamcs.studio.script); + +Yamcs.issueCommand('/cfs/hs/DisableCpuHog', {});]]> + true @@ -6917,16 +6801,18 @@ $(pv_value) Action Button 89 -6442812a:150b08c061c:-76f4 - 210 - 191 + 201 + 171 - scripts/NoOp.js + - false +importPackage(Packages.org.yamcs.studio.script); + +Yamcs.issueCommand('/cfs/hs/ResetResetsPerformed', {});]]> + true @@ -6951,7 +6837,7 @@ $(pv_value) 18 ../../Resources/send.png - NoOp_10 + NoOp_11 0 @@ -6963,31 +6849,32 @@ $(pv_value) - Set + Reset false $(pv_name) $(pv_value) true Action Button 86 - -6442812a:150b08c061c:-76ec - 265 - 317 + -6442812a:150b08c061c:-76e2 + 253 + 266 - - scripts/NoOp.js - - false + + SetLCState.opi + + true + + 1 false false - + false @@ -7001,11 +6888,11 @@ $(pv_value) false - + - 18 - ../../Resources/send.png - NoOp_11 + 20 + + Action Button_4 0 @@ -7017,15 +6904,15 @@ $(pv_value) - Reset + Set false $(pv_name) $(pv_value) true Action Button - 86 - -6442812a:150b08c061c:-76e2 - 265 - 298 + 84 + 25c7e289:1777fe84906:-7bd6 + 255 + 284 \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/HS/scripts/NoOp.js b/core/base/tools/commander/workspace_template/Displays/Apps/HS/scripts/NoOp.js deleted file mode 100644 index d57c2f4b8..000000000 --- a/core/base/tools/commander/workspace_template/Displays/Apps/HS/scripts/NoOp.js +++ /dev/null @@ -1,4 +0,0 @@ -importPackage(Packages.org.csstudio.opibuilder.scriptUtil); -importPackage(Packages.org.yamcs.studio.script); - -Yamcs.issueCommand('/cfs/hs/Noop', {}); \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/HS/scripts/ResetCounters.js b/core/base/tools/commander/workspace_template/Displays/Apps/HS/scripts/ResetCounters.js deleted file mode 100644 index 0344dde81..000000000 --- a/core/base/tools/commander/workspace_template/Displays/Apps/HS/scripts/ResetCounters.js +++ /dev/null @@ -1,4 +0,0 @@ -importPackage(Packages.org.csstudio.opibuilder.scriptUtil); -importPackage(Packages.org.yamcs.studio.script); - -Yamcs.issueCommand('/cfs/hs/Reset', {}); \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/LC/Main.opi b/core/base/tools/commander/workspace_template/Displays/Apps/LC/Main.opi index 2c1307913..8eea924ce 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/LC/Main.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/LC/Main.opi @@ -15,7 +15,7 @@ 6 - 410 + 300 true @@ -78,11 +78,11 @@ $(pv_value) 1 true Text Update - 100 + 91 false -33cb7c72:150aa4c347f:-75ff - 95 - 57 + 102 + 36 @@ -118,11 +118,11 @@ $(pv_value) 1 true Label - 72 + 81 false -33cb7c72:150aa4c347f:-75fe - 12 - 57 + 10 + 36 @@ -161,48 +161,8 @@ $(pv_value) 60 false -33cb7c72:150aa4c347f:-75fd - 24 - 76 - - - - false - - - - - - - 0 - 1 - true - - Default Bold - - - - - 20 - 1 - Label_46 - - - true - true - false - - - Commanding - - true - 1 - true - Label - 164 - false - -33cb7c72:150aa4c347f:-75fc - 72 - 30 + 31 + 55 @@ -250,11 +210,11 @@ $(pv_value) 1 true Text Update - 100 + 91 false -33cb7c72:150aa4c347f:-75fb - 95 - 76 + 102 + 55 @@ -307,10 +267,10 @@ Yamcs.issueCommand('/cfs/lc/Noop', {});]]> $(pv_value) true Action Button - 67 + 78 -33cb7c72:150aa4c347f:-75fa - 210 - 58 + 204 + 37 @@ -363,10 +323,10 @@ Yamcs.issueCommand('/cfs/lc/Reset', {});]]> $(pv_value) true Action Button - 67 + 78 -33cb7c72:150aa4c347f:-75f9 - 210 - 79 + 204 + 58 @@ -418,9 +378,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -457,8 +417,8 @@ $(pv_value) 100 false 7b256c5c:150b979c7e3:-789c - 177 - 120 + 183 + 109 @@ -470,9 +430,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -509,8 +469,8 @@ $(pv_value) 100 false 7b256c5c:150b979c7e3:-789b - 177 - 139 + 183 + 128 @@ -522,9 +482,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -561,8 +521,8 @@ $(pv_value) 100 false 7b256c5c:150b979c7e3:-789a - 177 - 158 + 183 + 147 @@ -574,9 +534,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -613,8 +573,8 @@ $(pv_value) 100 false 7b256c5c:150b979c7e3:-7899 - 177 - 177 + 183 + 166 @@ -626,9 +586,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -665,8 +625,8 @@ $(pv_value) 100 false 7b256c5c:150b979c7e3:-7898 - 177 - 196 + 183 + 185 @@ -702,11 +662,11 @@ $(pv_value) 1 true Label - 157 + 174 false 7b256c5c:150b979c7e3:-788f - 12 - 120 + 1 + 109 @@ -745,8 +705,8 @@ $(pv_value) 157 false 7b256c5c:150b979c7e3:-7885 - 12 - 158 + 18 + 147 @@ -785,8 +745,8 @@ $(pv_value) 157 false 7b256c5c:150b979c7e3:-7880 - 12 - 139 + 18 + 128 @@ -825,8 +785,8 @@ $(pv_value) 157 false 7b256c5c:150b979c7e3:-7876 - 12 - 177 + 18 + 166 @@ -865,8 +825,8 @@ $(pv_value) 157 false 7b256c5c:150b979c7e3:-7871 - 12 - 196 + 18 + 185 @@ -905,8 +865,8 @@ $(pv_value) 157 false 7b256c5c:150b979c7e3:-7867 - 12 - 215 + 18 + 204 @@ -918,9 +878,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -957,7 +917,430 @@ $(pv_value) 100 false 7b256c5c:150b979c7e3:-7851 - 177 - 215 + 183 + 204 + + + + + SetLCState.opi + + true + + 1 + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 20 + + Action Button_4 + 0 + + + + + true + true + false + + + + Set LC State + false + $(pv_name) +$(pv_value) + true + Action Button + 138 + 689e2ae8:1777f312f88:-79fb + 10 + 234 + + + + + SetAPState.opi + + true + + 1 + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 20 + + Action Button_3 + 0 + + + + + true + true + false + + + + Set AP State + false + $(pv_name) +$(pv_value) + true + Action Button + 138 + 689e2ae8:1777f312f88:-79f3 + 10 + 253 + + + + + SetAPPermOff.opi + + true + + 1 + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 20 + + Action Button_2 + 0 + + + + + true + true + false + + + + Set AP Perm Off + false + $(pv_name) +$(pv_value) + true + Action Button + 138 + 689e2ae8:1777f312f88:-79eb + 10 + 272 + + + + + ResetAPStats.opi + + true + + 1 + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 20 + + Action Button_7 + 0 + + + + + true + true + false + + + + Reset AP Stats + false + $(pv_name) +$(pv_value) + true + Action Button + 138 + 689e2ae8:1777f312f88:-79e3 + 147 + 234 + + + + + ResetWPStats.opi + + true + + 1 + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 20 + + Action Button_1 + 0 + + + + + true + true + false + + + + Reset WP Stats + false + $(pv_name) +$(pv_value) + true + Action Button + 138 + 689e2ae8:1777f312f88:-79db + 147 + 253 + + + + + + + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 20 + ../../Resources/send.png + NoOp_2 + 0 + + + + + true + true + false + + + + SendHK + false + $(pv_name) +$(pv_value) + true + Action Button + 138 + 689e2ae8:1777f312f88:-79d3 + 147 + 272 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 4 + 20 + 0 + Text Update_8 + 0 + false + /cfs/lc/LC_HkPacket_t.CurrentLCState + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + 689e2ae8:1777f312f88:-7963 + 183 + 90 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_58 + + + true + true + false + + + Current LC State + + true + 1 + true + Label + 120 + false + 689e2ae8:1777f312f88:-7962 + 55 + 90 \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/LC/ResetAPStats.opi b/core/base/tools/commander/workspace_template/Displays/Apps/LC/ResetAPStats.opi new file mode 100644 index 000000000..1348a8ab4 --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/Apps/LC/ResetAPStats.opi @@ -0,0 +1,233 @@ + + + + + false + -1 + -1 + + false + + + + 1.5.3 + + + + 6 + 100 + + true + + MD - Reset AP Stats + + + true + true + true + true + true + Display + 200 + -10b748b0:17773fb054b:-7a2f + -1 + -1 + + + false + + + + + + + 0 + 1 + true + + Default Bold + + + + + 20 + 1 + Label_49 + + + true + true + false + + + Reset AP Stats + + true + 1 + true + Label + 175 + false + -10b748b0:17773fb054b:-7a20 + 12 + 6 + + + + + + + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 20 + ../../Resources/send.png + NoOp + 0 + + + + + true + true + false + + + + Reset + false + $(pv_name) +$(pv_value) + true + Action Button + 92 + -10b748b0:17773fb054b:-79c7 + 54 + 72 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_3 + + + true + true + false + + + AP # + + true + 1 + true + Label + 61 + false + 689e2ae8:1777f312f88:-7891 + 0 + 36 + + + + false + false + false + + + + true + + + + 1 + 1 + + true + + Default + + false + + + + 0 + 20 + 0 + false + 1.7976931348623157E308 + -1.7976931348623157E308 + false + APNumber + 0 + true + loc://MD_ResetAPStats_APNumber<VString> + + 0.0 + + + true + true + false + + + 0 + true + + + $(pv_name) +$(pv_value) + false + true + Text Input + 121 + 689e2ae8:1777f312f88:-7890 + 66 + 36 + + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/LC/ResetWPStats.opi b/core/base/tools/commander/workspace_template/Displays/Apps/LC/ResetWPStats.opi new file mode 100644 index 000000000..4133feb7a --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/Apps/LC/ResetWPStats.opi @@ -0,0 +1,233 @@ + + + + + false + -1 + -1 + + false + + + + 1.5.3 + + + + 6 + 100 + + true + + MD - Reset WP Stats + + + true + true + true + true + true + Display + 200 + -10b748b0:17773fb054b:-7a2f + -1 + -1 + + + false + + + + + + + 0 + 1 + true + + Default Bold + + + + + 20 + 1 + Label_49 + + + true + true + false + + + Reset WP Stats + + true + 1 + true + Label + 175 + false + -10b748b0:17773fb054b:-7a20 + 12 + 6 + + + + + + + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 20 + ../../Resources/send.png + NoOp + 0 + + + + + true + true + false + + + + Reset + false + $(pv_name) +$(pv_value) + true + Action Button + 92 + -10b748b0:17773fb054b:-79c7 + 54 + 72 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_3 + + + true + true + false + + + WP # + + true + 1 + true + Label + 61 + false + 689e2ae8:1777f312f88:-7891 + 0 + 36 + + + + false + false + false + + + + true + + + + 1 + 1 + + true + + Default + + false + + + + 0 + 20 + 0 + false + 1.7976931348623157E308 + -1.7976931348623157E308 + false + WPNumber + 0 + true + loc://MD_ResetWPStats_WPNumber<VString> + + 0.0 + + + true + true + false + + + 0 + true + + + $(pv_name) +$(pv_value) + false + true + Text Input + 121 + 689e2ae8:1777f312f88:-7890 + 66 + 36 + + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/LC/SetAPPermOff.opi b/core/base/tools/commander/workspace_template/Displays/Apps/LC/SetAPPermOff.opi new file mode 100644 index 000000000..7493b52c8 --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/Apps/LC/SetAPPermOff.opi @@ -0,0 +1,233 @@ + + + + + false + -1 + -1 + + false + + + + 1.5.3 + + + + 6 + 100 + + true + + MD - Set AP Perm Off + + + true + true + true + true + true + Display + 200 + -10b748b0:17773fb054b:-7a2f + -1 + -1 + + + false + + + + + + + 0 + 1 + true + + Default Bold + + + + + 20 + 1 + Label_49 + + + true + true + false + + + Set AP Perm Off + + true + 1 + true + Label + 175 + false + -10b748b0:17773fb054b:-7a20 + 12 + 6 + + + + + + + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 20 + ../../Resources/send.png + NoOp + 0 + + + + + true + true + false + + + + Set + false + $(pv_name) +$(pv_value) + true + Action Button + 92 + -10b748b0:17773fb054b:-79c7 + 54 + 72 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_3 + + + true + true + false + + + AP # + + true + 1 + true + Label + 61 + false + 689e2ae8:1777f312f88:-7891 + 0 + 36 + + + + false + false + false + + + + true + + + + 1 + 1 + + true + + Default + + false + + + + 0 + 20 + 0 + false + 1.7976931348623157E308 + -1.7976931348623157E308 + false + APNumber + 0 + true + loc://MD_SetAPPermOff_APNumber<VString> + + 0.0 + + + true + true + false + + + 0 + true + + + $(pv_name) +$(pv_value) + false + true + Text Input + 121 + 689e2ae8:1777f312f88:-7890 + 66 + 36 + + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/LC/SetAPState.opi b/core/base/tools/commander/workspace_template/Displays/Apps/LC/SetAPState.opi new file mode 100644 index 000000000..daeeba6e4 --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/Apps/LC/SetAPState.opi @@ -0,0 +1,322 @@ + + + + + false + -1 + -1 + + false + + + + 1.5.3 + + + + 6 + 140 + + true + + MD - Set LC State + + + true + true + true + true + true + Display + 200 + -10b748b0:17773fb054b:-7a2f + -1 + -1 + + + false + + + + + + + 0 + 1 + true + + Default Bold + + + + + 20 + 1 + Label_49 + + + true + true + false + + + Set AP State + + true + 1 + true + Label + 175 + false + -10b748b0:17773fb054b:-7a20 + 12 + 6 + + + + + + + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 20 + ../../Resources/send.png + NoOp + 0 + + + + + true + true + false + + + + Set + false + $(pv_name) +$(pv_value) + true + Action Button + 92 + -10b748b0:17773fb054b:-79c7 + 54 + 108 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_2 + + + true + true + false + + + State + + true + 1 + true + Label + 37 + false + 54e87698:1777e01a75d:-6f83 + 12 + 42 + + + + false + false + + + + true + + + + 0 + 1 + true + + Default + + false + + + + 32 + + ACTIVE + DISABLED + PASSIVE + PERMOFF + + false + State + loc://MD_SetAPState_State<VString> + + + + true + false + false + + + $(pv_name) +$(pv_value) + true + Combo + 127 + 689e2ae8:1777f312f88:-7910 + 60 + 36 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_3 + + + true + true + false + + + AP # + + true + 1 + true + Label + 61 + false + 689e2ae8:1777f312f88:-7891 + 0 + 72 + + + + false + false + false + + + + true + + + + 1 + 1 + + true + + Default + + false + + + + 0 + 20 + 0 + false + 1.7976931348623157E308 + -1.7976931348623157E308 + false + APNumber + 0 + true + loc://MD_SetAPState_APNumber<VString> + + 0.0 + + + true + true + false + + + 0 + true + + + $(pv_name) +$(pv_value) + false + true + Text Input + 121 + 689e2ae8:1777f312f88:-7890 + 66 + 72 + + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/LC/SetLCState.opi b/core/base/tools/commander/workspace_template/Displays/Apps/LC/SetLCState.opi new file mode 100644 index 000000000..206a6b7b8 --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/Apps/LC/SetLCState.opi @@ -0,0 +1,223 @@ + + + + + false + -1 + -1 + + false + + + + 1.5.3 + + + + 6 + 100 + + true + + MD - Set LC State + + + true + true + true + true + true + Display + 200 + -10b748b0:17773fb054b:-7a2f + -1 + -1 + + + false + + + + + + + 0 + 1 + true + + Default Bold + + + + + 20 + 1 + Label_49 + + + true + true + false + + + Set LC State + + true + 1 + true + Label + 175 + false + -10b748b0:17773fb054b:-7a20 + 12 + 6 + + + + + + + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 20 + ../../Resources/send.png + NoOp + 0 + + + + + true + true + false + + + + Set + false + $(pv_name) +$(pv_value) + true + Action Button + 92 + -10b748b0:17773fb054b:-79c7 + 54 + 72 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_2 + + + true + true + false + + + State + + true + 1 + true + Label + 37 + false + 54e87698:1777e01a75d:-6f83 + 12 + 36 + + + + false + false + + + + true + + + + 0 + 1 + true + + Default + + false + + + + 32 + + ACTIVE + PASSIVE + DISABLED + + false + State + loc://MD_SetLCState_State<VString> + + + + true + false + false + + + $(pv_name) +$(pv_value) + true + Combo + 127 + 689e2ae8:1777f312f88:-7910 + 60 + 30 + + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/LC/scripts/NoOp.js b/core/base/tools/commander/workspace_template/Displays/Apps/LC/scripts/NoOp.js deleted file mode 100644 index de38c97d6..000000000 --- a/core/base/tools/commander/workspace_template/Displays/Apps/LC/scripts/NoOp.js +++ /dev/null @@ -1,4 +0,0 @@ -importPackage(Packages.org.csstudio.opibuilder.scriptUtil); -importPackage(Packages.org.yamcs.studio.script); - -Yamcs.issueCommand('/cfs/lc/Noop', {}); \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/LC/scripts/ResetCounters.js b/core/base/tools/commander/workspace_template/Displays/Apps/LC/scripts/ResetCounters.js deleted file mode 100644 index c81250ce2..000000000 --- a/core/base/tools/commander/workspace_template/Displays/Apps/LC/scripts/ResetCounters.js +++ /dev/null @@ -1,4 +0,0 @@ -importPackage(Packages.org.csstudio.opibuilder.scriptUtil); -importPackage(Packages.org.yamcs.studio.script); - -Yamcs.issueCommand('/cfs/lc/Reset', {}); \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/MD/Jam.opi b/core/base/tools/commander/workspace_template/Displays/Apps/MD/Jam.opi new file mode 100644 index 000000000..8c9edbcfe --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/Apps/MD/Jam.opi @@ -0,0 +1,727 @@ + + + + + false + -1 + -1 + + false + + + + 1.5.3 + + + + 6 + 220 + + true + + MD - Jam + + + true + true + true + true + true + Display + 260 + -10b748b0:17773fb054b:-7a2f + -1 + -1 + + + false + + + + + + + 0 + 1 + true + + Default Bold + + + + + 20 + 1 + Label_49 + + + true + true + false + + + Jam + + true + 1 + true + Label + 175 + false + -10b748b0:17773fb054b:-7a20 + 48 + 6 + + + + + + + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 20 + ../../Resources/send.png + NoOp + 0 + + + + + true + true + false + + + + Jam + false + $(pv_name) +$(pv_value) + true + Action Button + 92 + -10b748b0:17773fb054b:-79c7 + 90 + 186 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_2 + + + true + true + false + + + Table ID + + true + 1 + true + Label + 97 + false + 54e87698:1777e01a75d:-6f83 + 12 + 30 + + + + false + false + false + + + + true + + + + 1 + 1 + + true + + Default + + false + + + + 0 + 20 + 0 + false + 1.7976931348623157E308 + -1.7976931348623157E308 + false + TableID + 0 + true + loc://MD_Jam_TableID<VString> + + 0.0 + + + true + true + false + + + 0 + true + + + $(pv_name) +$(pv_value) + false + true + Text Input + 136 + 54e87698:1777e01a75d:-6f5d + 114 + 30 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_3 + + + true + true + false + + + Entry ID + + true + 1 + true + Label + 97 + false + 54e87698:1777e01a75d:-6f53 + 12 + 56 + + + + false + false + false + + + + true + + + + 1 + 1 + + true + + Default + + false + + + + 0 + 20 + 0 + false + 1.7976931348623157E308 + -1.7976931348623157E308 + false + EntryID + 0 + true + loc://MD_Jam_EntryID<VString> + + 0.0 + + + true + true + false + + + 0 + true + + + $(pv_name) +$(pv_value) + false + true + Text Input + 136 + 54e87698:1777e01a75d:-6f49 + 114 + 56 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_4 + + + true + true + false + + + Field Length + + true + 1 + true + Label + 97 + false + 54e87698:1777e01a75d:-6f41 + 12 + 80 + + + + false + false + false + + + + true + + + + 1 + 1 + + true + + Default + + false + + + + 0 + 20 + 0 + false + 1.7976931348623157E308 + -1.7976931348623157E308 + false + FieldLength + 0 + true + loc://MD_Jam_FieldLength<VString> + + 0.0 + + + true + true + false + + + 0 + true + + + $(pv_name) +$(pv_value) + false + true + Text Input + 136 + 54e87698:1777e01a75d:-6f37 + 114 + 80 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_5 + + + true + true + false + + + Dwell Delay + + true + 1 + true + Label + 97 + false + 54e87698:1777e01a75d:-6ef6 + 12 + 105 + + + + false + false + false + + + + true + + + + 1 + 1 + + true + + Default + + false + + + + 0 + 20 + 0 + false + 1.7976931348623157E308 + -1.7976931348623157E308 + false + DwellDelay + 0 + true + loc://MD_Jam_DwellDelay<VString> + + 0.0 + + + true + true + false + + + 0 + true + + + $(pv_name) +$(pv_value) + false + true + Text Input + 136 + 54e87698:1777e01a75d:-6ef5 + 114 + 105 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_6 + + + true + true + false + + + Symbol Name + + true + 1 + true + Label + 97 + false + 689e2ae8:1777f312f88:-7d07 + 12 + 132 + + + + false + false + false + + + + true + + + + 1 + 1 + + true + + Default + + false + + + + 0 + 20 + 0 + false + 1.7976931348623157E308 + -1.7976931348623157E308 + false + SymbolName + 0 + true + loc://MD_Jam_SymbolName<VString> + + 0.0 + + + true + true + false + + + 0 + true + + + $(pv_name) +$(pv_value) + false + true + Text Input + 136 + 689e2ae8:1777f312f88:-7d06 + 114 + 132 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_7 + + + true + true + false + + + Offset + + true + 1 + true + Label + 97 + false + 689e2ae8:1777f312f88:-7cff + 12 + 156 + + + + false + false + false + + + + true + + + + 1 + 1 + + true + + Default + + false + + + + 0 + 20 + 0 + false + 1.7976931348623157E308 + -1.7976931348623157E308 + false + Offset + 0 + true + loc://MD_Jam_Offset<VString> + + 0.0 + + + true + true + false + + + 0 + true + + + $(pv_name) +$(pv_value) + false + true + Text Input + 136 + 689e2ae8:1777f312f88:-7cfe + 114 + 156 + + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/MD/Main.opi b/core/base/tools/commander/workspace_template/Displays/Apps/MD/Main.opi index 414999de4..1873f0909 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/MD/Main.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/MD/Main.opi @@ -15,7 +15,7 @@ 6 - 410 + 300 true @@ -28,7 +28,7 @@ true true Display - 300 + 550 -33cb7c72:150aa4c347f:-76c2 -1 -1 @@ -81,8 +81,8 @@ $(pv_value) 100 false -33cb7c72:150aa4c347f:-75ff - 95 - 57 + 108 + 36 @@ -118,11 +118,11 @@ $(pv_value) 1 true Label - 72 + 85 false -33cb7c72:150aa4c347f:-75fe 12 - 57 + 36 @@ -161,48 +161,8 @@ $(pv_value) 60 false -33cb7c72:150aa4c347f:-75fd - 24 - 76 - - - - false - - - - - - - 0 - 1 - true - - Default Bold - - - - - 20 - 1 - Label_46 - - - true - true - false - - - Commanding - - true - 1 - true - Label - 164 - false - -33cb7c72:150aa4c347f:-75fc - 72 - 30 + 37 + 55 @@ -253,8 +213,8 @@ $(pv_value) 100 false -33cb7c72:150aa4c347f:-75fb - 95 - 76 + 108 + 55 @@ -307,10 +267,10 @@ Yamcs.issueCommand('/cfs/md/Noop', {});]]> $(pv_value) true Action Button - 67 + 78 -33cb7c72:150aa4c347f:-75fa - 210 - 58 + 223 + 37 @@ -363,10 +323,10 @@ Yamcs.issueCommand('/cfs/md/Reset', {});]]> $(pv_value) true Action Button - 67 + 78 -33cb7c72:150aa4c347f:-75f9 - 210 - 79 + 223 + 58 @@ -402,10 +362,10 @@ $(pv_value) 1 true Label - 272 + 155 false -33cb7c72:150aa4c347f:-75c9 - 12 + 194 6 @@ -446,7 +406,7 @@ $(pv_value) false -736e4684:150ac3c95a1:-6f2e 12 - 120 + 96 @@ -498,7 +458,7 @@ $(pv_value) false 7b256c5c:150b979c7e3:-79b0 184 - 120 + 96 @@ -510,9 +470,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -528,7 +488,7 @@ $(pv_value) Text Update_27 0 false - /cfs/md/MD_HkTlm_t.DwellTblAddrCount[0] + /cfs/md/MD_HkTlm_t.DwellTblAddrCount_0_ 0.0 @@ -549,8 +509,8 @@ $(pv_value) 100 false 7b256c5c:150b979c7e3:-79af - 144 - 180 + 141 + 174 @@ -562,9 +522,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -580,7 +540,7 @@ $(pv_value) Text Update_28 0 false - /cfs/md/MD_HkTlm_t.DwellTblAddrCount[1] + /cfs/md/MD_HkTlm_t.DwellTblAddrCount_1_ 0.0 @@ -601,8 +561,8 @@ $(pv_value) 100 false 7b256c5c:150b979c7e3:-79ae - 243 - 180 + 240 + 174 @@ -614,9 +574,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -632,7 +592,7 @@ $(pv_value) Text Update_29 0 false - /cfs/md/MD_HkTlm_t.DwellTblAddrCount[2] + /cfs/md/MD_HkTlm_t.DwellTblAddrCount_2_ 0.0 @@ -653,8 +613,8 @@ $(pv_value) 100 false 7b256c5c:150b979c7e3:-79ad - 342 - 180 + 339 + 174 @@ -666,9 +626,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -684,7 +644,7 @@ $(pv_value) Text Update_30 0 false - /cfs/md/MD_HkTlm_t.DwellTblAddrCount[3] + /cfs/md/MD_HkTlm_t.DwellTblAddrCount_3_ 0.0 @@ -705,8 +665,8 @@ $(pv_value) 100 false 7b256c5c:150b979c7e3:-79ac - 441 - 180 + 438 + 174 @@ -718,9 +678,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -736,7 +696,7 @@ $(pv_value) Text Update_31 0 false - /cfs/md/MD_HkTlm_t.NumWaitsPerPkt[0] + /cfs/md/MD_HkTlm_t.NumWaitsPerPkt_0_ 0.0 @@ -757,8 +717,8 @@ $(pv_value) 100 false 7b256c5c:150b979c7e3:-79ab - 144 - 199 + 141 + 193 @@ -770,9 +730,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -788,7 +748,7 @@ $(pv_value) Text Update_32 0 false - /cfs/md/MD_HkTlm_t.NumWaitsPerPkt[1] + /cfs/md/MD_HkTlm_t.NumWaitsPerPkt_1_ 0.0 @@ -809,8 +769,8 @@ $(pv_value) 100 false 7b256c5c:150b979c7e3:-79aa - 243 - 199 + 240 + 193 @@ -822,9 +782,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -840,7 +800,7 @@ $(pv_value) Text Update_33 0 false - /cfs/md/MD_HkTlm_t.NumWaitsPerPkt[2] + /cfs/md/MD_HkTlm_t.NumWaitsPerPkt_2_ 0.0 @@ -861,8 +821,8 @@ $(pv_value) 100 false 7b256c5c:150b979c7e3:-79a9 - 342 - 199 + 339 + 193 @@ -874,9 +834,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -892,7 +852,7 @@ $(pv_value) Text Update_34 0 false - /cfs/md/MD_HkTlm_t.NumWaitsPerPkt[3] + /cfs/md/MD_HkTlm_t.NumWaitsPerPkt_3_ 0.0 @@ -913,8 +873,8 @@ $(pv_value) 100 false 7b256c5c:150b979c7e3:-79a8 - 441 - 199 + 438 + 193 @@ -926,9 +886,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -944,7 +904,7 @@ $(pv_value) Text Update_35 0 false - /cfs/md/MD_HkTlm_t.ByteCount[0] + /cfs/md/MD_HkTlm_t.ByteCount_0_ 0.0 @@ -965,8 +925,8 @@ $(pv_value) 100 false 7b256c5c:150b979c7e3:-79a7 - 144 - 218 + 141 + 212 @@ -978,9 +938,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -996,7 +956,7 @@ $(pv_value) Text Update_36 0 false - /cfs/md/MD_HkTlm_t.ByteCount[1] + /cfs/md/MD_HkTlm_t.ByteCount_1_ 0.0 @@ -1017,8 +977,8 @@ $(pv_value) 100 false 7b256c5c:150b979c7e3:-79a6 - 243 - 218 + 240 + 212 @@ -1030,9 +990,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -1048,7 +1008,7 @@ $(pv_value) Text Update_37 0 false - /cfs/md/MD_HkTlm_t.ByteCount[2] + /cfs/md/MD_HkTlm_t.ByteCount_2_ 0.0 @@ -1069,8 +1029,8 @@ $(pv_value) 100 false 7b256c5c:150b979c7e3:-79a5 - 342 - 218 + 339 + 212 @@ -1082,9 +1042,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -1100,7 +1060,7 @@ $(pv_value) Text Update_38 0 false - /cfs/md/MD_HkTlm_t.ByteCount[3] + /cfs/md/MD_HkTlm_t.ByteCount_3_ 0.0 @@ -1121,8 +1081,8 @@ $(pv_value) 100 false 7b256c5c:150b979c7e3:-79a4 - 441 - 218 + 438 + 212 @@ -1134,9 +1094,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -1152,7 +1112,7 @@ $(pv_value) Text Update_39 0 false - /cfs/md/MD_HkTlm_t.DwellPktOffset[0] + /cfs/md/MD_HkTlm_t.DwellPktOffset_0_ 0.0 @@ -1173,8 +1133,8 @@ $(pv_value) 100 false 7b256c5c:150b979c7e3:-79a3 - 144 - 237 + 141 + 231 @@ -1186,9 +1146,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -1204,7 +1164,7 @@ $(pv_value) Text Update_40 0 false - /cfs/md/MD_HkTlm_t.DwellPktOffset[1] + /cfs/md/MD_HkTlm_t.DwellPktOffset_1_ 0.0 @@ -1225,8 +1185,8 @@ $(pv_value) 100 false 7b256c5c:150b979c7e3:-79a2 - 243 - 237 + 240 + 231 @@ -1238,9 +1198,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -1256,7 +1216,7 @@ $(pv_value) Text Update_41 0 false - /cfs/md/MD_HkTlm_t.DwellPktOffset[2] + /cfs/md/MD_HkTlm_t.DwellPktOffset_2_ 0.0 @@ -1277,8 +1237,8 @@ $(pv_value) 100 false 7b256c5c:150b979c7e3:-79a1 - 342 - 237 + 339 + 231 @@ -1290,9 +1250,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -1308,7 +1268,7 @@ $(pv_value) Text Update_42 0 false - /cfs/md/MD_HkTlm_t.DwellPktOffset[3] + /cfs/md/MD_HkTlm_t.DwellPktOffset_3_ 0.0 @@ -1329,8 +1289,8 @@ $(pv_value) 100 false 7b256c5c:150b979c7e3:-79a0 - 441 - 237 + 438 + 231 @@ -1342,9 +1302,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -1360,7 +1320,7 @@ $(pv_value) Text Update_43 0 false - /cfs/md/MD_HkTlm_t.DwellTblEntry[0] + /cfs/md/MD_HkTlm_t.DwellTblEntry_0_ 0.0 @@ -1381,8 +1341,8 @@ $(pv_value) 100 false 7b256c5c:150b979c7e3:-799f - 144 - 256 + 141 + 250 @@ -1394,9 +1354,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -1412,7 +1372,7 @@ $(pv_value) Text Update_44 0 false - /cfs/md/MD_HkTlm_t.DwellTblEntry[1] + /cfs/md/MD_HkTlm_t.DwellTblEntry_1_ 0.0 @@ -1433,8 +1393,8 @@ $(pv_value) 100 false 7b256c5c:150b979c7e3:-799e - 243 - 256 + 240 + 250 @@ -1446,9 +1406,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -1464,7 +1424,7 @@ $(pv_value) Text Update_45 0 false - /cfs/md/MD_HkTlm_t.DwellTblEntry[2] + /cfs/md/MD_HkTlm_t.DwellTblEntry_2_ 0.0 @@ -1485,8 +1445,8 @@ $(pv_value) 100 false 7b256c5c:150b979c7e3:-799d - 342 - 256 + 339 + 250 @@ -1498,9 +1458,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -1516,7 +1476,7 @@ $(pv_value) Text Update_46 0 false - /cfs/md/MD_HkTlm_t.DwellTblEntry[3] + /cfs/md/MD_HkTlm_t.DwellTblEntry_3_ 0.0 @@ -1537,8 +1497,8 @@ $(pv_value) 100 false 7b256c5c:150b979c7e3:-799c - 441 - 256 + 438 + 250 @@ -1550,9 +1510,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -1568,7 +1528,7 @@ $(pv_value) Text Update_47 0 false - /cfs/md/MD_HkTlm_t.Countdown[0] + /cfs/md/MD_HkTlm_t.Countdown_0_ 0.0 @@ -1589,8 +1549,8 @@ $(pv_value) 100 false 7b256c5c:150b979c7e3:-799b - 144 - 275 + 141 + 269 @@ -1602,9 +1562,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -1620,7 +1580,7 @@ $(pv_value) Text Update_48 0 false - /cfs/md/MD_HkTlm_t.Countdown[1] + /cfs/md/MD_HkTlm_t.Countdown_1_ 0.0 @@ -1641,8 +1601,8 @@ $(pv_value) 100 false 7b256c5c:150b979c7e3:-799a - 243 - 275 + 240 + 269 @@ -1654,9 +1614,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -1672,7 +1632,7 @@ $(pv_value) Text Update_49 0 false - /cfs/md/MD_HkTlm_t.Countdown[2] + /cfs/md/MD_HkTlm_t.Countdown_2_ 0.0 @@ -1693,8 +1653,8 @@ $(pv_value) 100 false 7b256c5c:150b979c7e3:-7999 - 341 - 275 + 338 + 269 @@ -1706,9 +1666,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -1724,7 +1684,7 @@ $(pv_value) Text Update_50 0 false - /cfs/md/MD_HkTlm_t.Countdown[3] + /cfs/md/MD_HkTlm_t.Countdown_3_ 0.0 @@ -1745,8 +1705,8 @@ $(pv_value) 100 false 7b256c5c:150b979c7e3:-7998 - 441 - 275 + 438 + 269 @@ -1785,8 +1745,8 @@ $(pv_value) 127 false 7b256c5c:150b979c7e3:-794a - 6 - 180 + 3 + 174 @@ -1825,8 +1785,8 @@ $(pv_value) 38 false 7b256c5c:150b979c7e3:-77c9 - 157 - 161 + 154 + 155 @@ -1865,8 +1825,8 @@ $(pv_value) 38 false 7b256c5c:150b979c7e3:-77b8 - 450 - 161 + 447 + 155 @@ -1905,8 +1865,8 @@ $(pv_value) 38 false 7b256c5c:150b979c7e3:-77b3 - 351 - 161 + 348 + 155 @@ -1945,8 +1905,8 @@ $(pv_value) 38 false 7b256c5c:150b979c7e3:-77ae - 252 - 161 + 249 + 155 @@ -1985,8 +1945,8 @@ $(pv_value) 127 false 7b256c5c:150b979c7e3:-77a0 - 6 - 218 + 3 + 212 @@ -2025,8 +1985,8 @@ $(pv_value) 127 false 7b256c5c:150b979c7e3:-779b - 6 - 237 + 3 + 231 @@ -2065,8 +2025,8 @@ $(pv_value) 127 false 7b256c5c:150b979c7e3:-7796 - 6 - 256 + 3 + 250 @@ -2105,8 +2065,8 @@ $(pv_value) 127 false 7b256c5c:150b979c7e3:-7791 - 6 - 275 + 3 + 269 @@ -2145,7 +2105,341 @@ $(pv_value) 127 false 7b256c5c:150b979c7e3:-778c - 6 - 199 + 3 + 193 + + + + + Start.opi + + true + + 1 + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 20 + + Action Button_2 + 0 + + + + + true + true + false + + + + Start + false + $(pv_name) +$(pv_value) + true + Action Button + 128 + 689e2ae8:1777f312f88:-7a71 + 372 + 20 + + + + + Stop.opi + + true + + 1 + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 20 + + Action Button_3 + 0 + + + + + true + true + false + + + + Stop + false + $(pv_name) +$(pv_value) + true + Action Button + 128 + 689e2ae8:1777f312f88:-7a69 + 372 + 39 + + + + + SetSignature.opi + + true + + 1 + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 20 + + Action Button_4 + 0 + + + + + true + true + false + + + + Set Signature + false + $(pv_name) +$(pv_value) + true + Action Button + 128 + 689e2ae8:1777f312f88:-7a61 + 372 + 58 + + + + + Jam.opi + + true + + 1 + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 20 + + Action Button_1 + 0 + + + + + true + true + false + + + + Jam + false + $(pv_name) +$(pv_value) + true + Action Button + 128 + 689e2ae8:1777f312f88:-7a59 + 372 + 77 + + + + + + + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 20 + ../../Resources/send.png + NoOp_2 + 0 + + + + + true + true + false + + + + SendHK + false + $(pv_name) +$(pv_value) + true + Action Button + 128 + 689e2ae8:1777f312f88:-7a51 + 372 + 96 + + + + + + + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 20 + ../../Resources/send.png + NoOp_3 + 0 + + + + + true + true + false + + + + Wakeup + false + $(pv_name) +$(pv_value) + true + Action Button + 128 + 689e2ae8:1777f312f88:-7a49 + 372 + 115 \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/MD/SetSignature.opi b/core/base/tools/commander/workspace_template/Displays/Apps/MD/SetSignature.opi new file mode 100644 index 000000000..e8ea9262c --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/Apps/MD/SetSignature.opi @@ -0,0 +1,332 @@ + + + + + false + -1 + -1 + + false + + + + 1.5.3 + + + + 6 + 120 + + true + + MD - Set Signature + + + true + true + true + true + true + Display + 260 + -10b748b0:17773fb054b:-7a2f + -1 + -1 + + + false + + + + + + + 0 + 1 + true + + Default Bold + + + + + 20 + 1 + Label_49 + + + true + true + false + + + Set Signature + + true + 1 + true + Label + 175 + false + -10b748b0:17773fb054b:-7a20 + 48 + 6 + + + + + + + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 20 + ../../Resources/send.png + NoOp + 0 + + + + + true + true + false + + + + Set + false + $(pv_name) +$(pv_value) + true + Action Button + 92 + -10b748b0:17773fb054b:-79c7 + 90 + 90 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_2 + + + true + true + false + + + Table ID + + true + 1 + true + Label + 97 + false + 54e87698:1777e01a75d:-6f83 + 12 + 30 + + + + false + false + false + + + + true + + + + 1 + 1 + + true + + Default + + false + + + + 0 + 20 + 0 + false + 1.7976931348623157E308 + -1.7976931348623157E308 + false + TableID + 0 + true + loc://MD_SetSignature_TableID<VString> + + 0.0 + + + true + true + false + + + 0 + true + + + $(pv_name) +$(pv_value) + false + true + Text Input + 136 + 54e87698:1777e01a75d:-6f5d + 114 + 30 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_3 + + + true + true + false + + + Signature + + true + 1 + true + Label + 97 + false + 54e87698:1777e01a75d:-6f53 + 12 + 56 + + + + false + false + false + + + + true + + + + 1 + 1 + + true + + Default + + false + + + + 0 + 20 + 0 + false + 1.7976931348623157E308 + -1.7976931348623157E308 + false + Signature + 0 + true + loc://MD_SetSignature_Signature<VString> + + 0.0 + + + true + true + false + + + 0 + true + + + $(pv_name) +$(pv_value) + false + true + Text Input + 136 + 54e87698:1777e01a75d:-6f49 + 114 + 56 + + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/MD/Start.opi b/core/base/tools/commander/workspace_template/Displays/Apps/MD/Start.opi new file mode 100644 index 000000000..454564566 --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/Apps/MD/Start.opi @@ -0,0 +1,232 @@ + + + + + false + -1 + -1 + + false + + + + 1.5.3 + + + + 6 + 90 + + true + + MD - Start + + + true + true + true + true + true + Display + 210 + -10b748b0:17773fb054b:-7a2f + -1 + -1 + + + false + + + + + + + 0 + 1 + true + + Default Bold + + + + + 20 + 1 + Label_49 + + + true + true + false + + + Start + + true + 1 + true + Label + 175 + false + -10b748b0:17773fb054b:-7a20 + 24 + 6 + + + + + + + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 20 + ../../Resources/send.png + NoOp + 0 + + + + + true + true + false + + + + Start + false + $(pv_name) +$(pv_value) + true + Action Button + 92 + -10b748b0:17773fb054b:-79c7 + 66 + 60 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_2 + + + true + true + false + + + Table Mask + + true + 1 + true + Label + 79 + false + 54e87698:1777e01a75d:-6f83 + 6 + 30 + + + + false + false + false + + + + true + + + + 1 + 1 + + true + + Default + + false + + + + 0 + 20 + 0 + false + 1.7976931348623157E308 + -1.7976931348623157E308 + false + TableMask + 0 + true + loc://MD_Start_TableMask<VString> + + 0.0 + + + true + true + false + + + 0 + true + + + $(pv_name) +$(pv_value) + false + true + Text Input + 103 + 54e87698:1777e01a75d:-6f5d + 90 + 30 + + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/MD/Stop.opi b/core/base/tools/commander/workspace_template/Displays/Apps/MD/Stop.opi new file mode 100644 index 000000000..f4af9b365 --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/Apps/MD/Stop.opi @@ -0,0 +1,232 @@ + + + + + false + -1 + -1 + + false + + + + 1.5.3 + + + + 6 + 90 + + true + + MD - Stop + + + true + true + true + true + true + Display + 210 + -10b748b0:17773fb054b:-7a2f + -1 + -1 + + + false + + + + + + + 0 + 1 + true + + Default Bold + + + + + 20 + 1 + Label_49 + + + true + true + false + + + Stop + + true + 1 + true + Label + 175 + false + -10b748b0:17773fb054b:-7a20 + 18 + 6 + + + + + + + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 20 + ../../Resources/send.png + NoOp + 0 + + + + + true + true + false + + + + Stop + false + $(pv_name) +$(pv_value) + true + Action Button + 92 + -10b748b0:17773fb054b:-79c7 + 60 + 60 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_2 + + + true + true + false + + + Table Mask + + true + 1 + true + Label + 79 + false + 54e87698:1777e01a75d:-6f83 + 6 + 30 + + + + false + false + false + + + + true + + + + 1 + 1 + + true + + Default + + false + + + + 0 + 20 + 0 + false + 1.7976931348623157E308 + -1.7976931348623157E308 + false + TableMask + 0 + true + loc://MD_Start_TableMask<VString> + + 0.0 + + + true + true + false + + + 0 + true + + + $(pv_name) +$(pv_value) + false + true + Text Input + 103 + 54e87698:1777e01a75d:-6f5d + 90 + 30 + + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/MD/scripts/NoOp.js b/core/base/tools/commander/workspace_template/Displays/Apps/MD/scripts/NoOp.js deleted file mode 100644 index 9c614e747..000000000 --- a/core/base/tools/commander/workspace_template/Displays/Apps/MD/scripts/NoOp.js +++ /dev/null @@ -1,4 +0,0 @@ -importPackage(Packages.org.csstudio.opibuilder.scriptUtil); -importPackage(Packages.org.yamcs.studio.script); - -Yamcs.issueCommand('/cfs/md/Noop', {}); \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/MD/scripts/ResetCounters.js b/core/base/tools/commander/workspace_template/Displays/Apps/MD/scripts/ResetCounters.js deleted file mode 100644 index 2d1f58114..000000000 --- a/core/base/tools/commander/workspace_template/Displays/Apps/MD/scripts/ResetCounters.js +++ /dev/null @@ -1,4 +0,0 @@ -importPackage(Packages.org.csstudio.opibuilder.scriptUtil); -importPackage(Packages.org.yamcs.studio.script); - -Yamcs.issueCommand('/cfs/md/Reset', {}); \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/TO/SendDiag.opi b/core/base/tools/commander/workspace_template/Displays/Apps/TO/SendDiag.opi index 720ed37d0..ccca4f00e 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/TO/SendDiag.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/TO/SendDiag.opi @@ -6,7 +6,7 @@ -1 -1 - false + true @@ -178,7 +178,7 @@ $(pv_value) 1 true Text Update - 100 + 157 false -10b748b0:17773fb054b:-7381 168 @@ -270,7 +270,7 @@ $(pv_value) 1 true Text Update - 100 + 157 false -10b748b0:17773fb054b:-7333 168 @@ -362,7 +362,7 @@ $(pv_value) 1 true Text Update - 100 + 157 false -10b748b0:17773fb054b:-7321 168 @@ -454,7 +454,7 @@ $(pv_value) 1 true Text Update - 100 + 157 false -10b748b0:17773fb054b:-7309 168 @@ -546,7 +546,7 @@ $(pv_value) 1 true Text Update - 100 + 157 false -10b748b0:17773fb054b:-72e2 168 @@ -638,7 +638,7 @@ $(pv_value) 1 true Text Update - 100 + 157 false -10b748b0:17773fb054b:-72d3 168 @@ -730,7 +730,7 @@ $(pv_value) 1 true Text Update - 100 + 157 false -10b748b0:17773fb054b:-72c4 168 @@ -822,7 +822,7 @@ $(pv_value) 1 true Text Update - 100 + 157 false -10b748b0:17773fb054b:-72b1 168 @@ -914,7 +914,7 @@ $(pv_value) 1 true Text Update - 100 + 157 false -10b748b0:17773fb054b:-729c 168 @@ -997,8 +997,8 @@ $(pv_value) 139 false -10b748b0:17773fb054b:-7290 - 330 - 134 + 366 + 74 @@ -1037,8 +1037,8 @@ $(pv_value) 139 false -10b748b0:17773fb054b:-7286 - 330 - 96 + 366 + 36 @@ -1077,8 +1077,8 @@ $(pv_value) 163 false -10b748b0:17773fb054b:-727c - 306 - 115 + 342 + 55 @@ -1117,8 +1117,8 @@ $(pv_value) 163 false -10b748b0:17773fb054b:-7272 - 306 - 153 + 342 + 93 @@ -1157,8 +1157,8 @@ $(pv_value) 163 false -10b748b0:17773fb054b:-7268 - 306 - 172 + 342 + 112 @@ -1197,8 +1197,8 @@ $(pv_value) 163 false -10b748b0:17773fb054b:-725e - 306 - 191 + 342 + 131 @@ -1237,8 +1237,8 @@ $(pv_value) 163 false -10b748b0:17773fb054b:-7254 - 306 - 210 + 342 + 150 @@ -1289,8 +1289,8 @@ $(pv_value) 100 false -10b748b0:17773fb054b:-724a - 480 - 134 + 516 + 74 @@ -1341,8 +1341,8 @@ $(pv_value) 100 false -10b748b0:17773fb054b:-7245 - 480 - 96 + 516 + 36 @@ -1393,8 +1393,8 @@ $(pv_value) 100 false -10b748b0:17773fb054b:-7240 - 480 - 115 + 516 + 55 @@ -1445,8 +1445,8 @@ $(pv_value) 100 false -10b748b0:17773fb054b:-723b - 480 - 153 + 516 + 93 @@ -1497,8 +1497,8 @@ $(pv_value) 100 false -10b748b0:17773fb054b:-7236 - 480 - 172 + 516 + 112 @@ -1549,8 +1549,8 @@ $(pv_value) 100 false -10b748b0:17773fb054b:-7231 - 480 - 191 + 516 + 131 @@ -1601,8 +1601,8 @@ $(pv_value) 100 false -10b748b0:17773fb054b:-722c - 480 - 210 + 516 + 150 @@ -1641,8 +1641,8 @@ $(pv_value) 182 false -10b748b0:17773fb054b:-7224 - 366 - 72 + 402 + 12 @@ -1681,8 +1681,8 @@ $(pv_value) 139 false -10b748b0:17773fb054b:-71f0 - 318 - 327 + 354 + 222 @@ -1721,8 +1721,8 @@ $(pv_value) 163 false -10b748b0:17773fb054b:-71ef - 294 - 365 + 330 + 260 @@ -1761,8 +1761,8 @@ $(pv_value) 163 false -10b748b0:17773fb054b:-71ee - 294 - 384 + 330 + 279 @@ -1801,8 +1801,8 @@ $(pv_value) 163 false -10b748b0:17773fb054b:-71ed - 294 - 346 + 330 + 241 @@ -1853,8 +1853,8 @@ $(pv_value) 100 false -10b748b0:17773fb054b:-71e9 - 468 - 327 + 504 + 222 @@ -1905,8 +1905,8 @@ $(pv_value) 100 false -10b748b0:17773fb054b:-71e8 - 468 - 365 + 504 + 260 @@ -1957,8 +1957,8 @@ $(pv_value) 100 false -10b748b0:17773fb054b:-71e7 - 468 - 384 + 504 + 279 @@ -2009,8 +2009,8 @@ $(pv_value) 100 false -10b748b0:17773fb054b:-71e6 - 468 - 346 + 504 + 241 @@ -2049,8 +2049,8 @@ $(pv_value) 182 false -10b748b0:17773fb054b:-71e2 - 354 - 297 + 390 + 192 @@ -2092,4 +2092,137 @@ $(pv_value) 58 115 + + + + + + + + + 0 + 1 + true + + + # + 25 + No + TEXT + + + Current Q'd + 125 + No + TEXT + + + Total Q'd + 125 + No + TEXT + + + Dropped + 75 + No + TEXT + + + Highwater + 100 + No + TEXT + + + Limit + 50 + No + TEXT + + + State + 75 + No + TEXT + + + Type + 75 + No + TEXT + + + 8 + + false + true + + Default + + + + + 266 + Table + + + true + true + false + + + + EmbeddedScript + + =1 + + + + true + Table + 709 + 369a9df8:177754b6799:-7efc + 18 + 354 + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/10_widgets.opi b/core/base/tools/commander/workspace_template/Displays/BOY Examples/10_widgets.opi new file mode 100644 index 000000000..c27a7d3a6 --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/BOY Examples/10_widgets.opi @@ -0,0 +1,2063 @@ + + + false + + true + + -60e24287:133c6b5d52b:-751c + 3.2.18.qualifier + + false + 1400 + Widgets + true + false + + + + + + + Display + true + 225 + + true + 3 + + false + -1 + -1 + + + -1 + -1 + + + true + + true + -44888c80:138586b5a4b:-6b1d + + 331 + Grouping Container_4 + + true + true + false + + true + false + + + + + + + true + Grouping Container + + Default + + 212 + 14 + + false + false + 1 + + + + 942 + + 6 + + + true + 1 + -44888c80:138586b5a4b:-76ef + false + + 26 + Label_10 + + true + true + false + + true + false + + + + + + + Label + true + Others + + Header 3 + + 150 + 0 + + 1 + + + + 1 + + + widgets/1_1_Rectangle_Ellipse.opi + + true + + 0 + + + + 2 + true + + 26 + + + false + true + -44888c80:138586b5a4b:-72c7 + + 31 + + Action Button_1 + false + + true + true + false + + + + + + + + + Action Button + true + Table + false + + Default + + 164 + 0 + 0 + + + + false + 1 + + + + 27 + + + widgets/4_5_Table.opi + + true + + 0 + + + + $(pv_name) +$(pv_value) + 19 + + + false + true + -44888c80:138586b5a4b:-72c7 + + 31 + + Action Button_1 + false + + true + true + false + + + + + + + + + Action Button + true + Linking Container + false + + Default + + 164 + 0 + 0 + + + + false + 1 + + + + 175 + + + widgets/4_2_LinkingContainer.opi + + true + + 0 + + + + $(pv_name) +$(pv_value) + 19 + + + false + true + -44888c80:138586b5a4b:-6a95 + + 31 + + Action Button_7 + false + + true + true + false + + + + + + + + + Action Button + true + Sash Container + false + + Default + + 164 + 0 + 0 + + + + false + 1 + + + + 249 + + + widgets/4_6_1_SashContainer.opi + + true + + 0 + + + + $(pv_name) +$(pv_value) + 19 + + + false + true + -44888c80:138586b5a4b:-72c4 + + 31 + + Action Button_2 + false + + true + true + false + + + + + + + + + Action Button + true + Grouping Container + false + + Default + + 164 + 0 + 0 + + + + false + 1 + + + + 138 + + + widgets/4_1_GroupingContainer.opi + + true + + 0 + + + + $(pv_name) +$(pv_value) + 19 + + + false + true + -44888c80:138586b5a4b:-6a96 + + 31 + + Action Button_6 + false + + true + true + false + + + + + + + + + Action Button + true + Grid Layout + false + + Default + + 164 + 0 + 0 + + + + false + 1 + + + + 286 + + + widgets/5_1_GridLayout.opi + + true + + 0 + + + + $(pv_name) +$(pv_value) + 19 + + + false + true + -44888c80:138586b5a4b:-72c5 + + 31 + + Action Button + false + + true + true + false + + + + + + + + + Action Button + true + Array + false + + Default + + 164 + 0 + 0 + + + + false + 1 + + + + 101 + + + widgets/4_6_Array.opi + + true + + 0 + + + + $(pv_name) +$(pv_value) + 19 + + + false + true + -44888c80:138586b5a4b:-72c6 + + 31 + + Action Button_4 + false + + true + true + false + + + + + + + + + Action Button + true + Tabbed Container + false + + Default + + 164 + 0 + 0 + + + + false + 1 + + + + 212 + + + widgets/4_3_TabbedContainer.opi + + true + + 0 + + + + $(pv_name) +$(pv_value) + 19 + + + false + true + -44888c80:138586b5a4b:-72c6 + + 31 + + Action Button_4 + false + + true + true + false + + + + + + + + + Action Button + true + Web Browser + false + + Default + + 164 + 0 + 0 + + + + false + 1 + + + + 64 + + + widgets/4_4_WebBrowser.opi + + true + + 0 + + + + $(pv_name) +$(pv_value) + 19 + + + + + true + + true + -44888c80:138586b5a4b:-6fd0 + + 312 + Grouping Container_2 + + true + true + false + + true + false + + + + + + + true + Grouping Container + + Default + + 212 + 14 + + false + false + 1 + + + + 623 + + 6 + + + true + 1 + -44888c80:138586b5a4b:-76ef + false + + 26 + Label_10 + + true + true + false + + true + false + + + + + + + Label + true + Controls + + Header 3 + + 150 + 0 + + 1 + + + + 1 + + + widgets/1_1_Rectangle_Ellipse.opi + + true + + 0 + + + + 2 + true + + 26 + + + false + true + -44888c80:138586b5a4b:-72c3 + + 31 + + Action Button_5 + false + + true + true + false + + + + + + + + + Action Button + true + Choice Widgets + false + + Default + + 164 + 0 + 0 + + + + false + 1 + + + + 233 + + + widgets/3_6_ChoiceWidgets.opi + + true + + 0 + + + + $(pv_name) +$(pv_value) + 19 + + + false + true + 5ec8b324:13880ba2d91:-7071 + + 31 + + Action Button_9 + false + + true + true + false + + + + + + + + + Action Button + true + Symbol Control + false + + Default + + 164 + 0 + 0 + + + + false + 1 + + + + 271 + + + widgets/SymbolWidgets.opi + + true + + 0 + + + + $(pv_name) +$(pv_value) + 19 + + + false + true + -44888c80:138586b5a4b:-72c4 + + 31 + + Action Button_2 + false + + true + true + false + + + + + + + + + Action Button + true + Menu Button + false + + Default + + 164 + 0 + 0 + + + + false + 1 + + + + 68 + + + widgets/3_3_Menu_Button.opi + + true + + 0 + + + + $(pv_name) +$(pv_value) + 19 + + + false + true + -44888c80:138586b5a4b:-72c6 + + 31 + + Action Button_4 + false + + true + true + false + + + + + + + + + Action Button + true + Text Input + false + + Default + + 164 + 0 + 0 + + + + false + 1 + + + + 144 + + + widgets/3_4_1_Text_Input.opi + + true + + 0 + + + + $(pv_name) +$(pv_value) + 19 + + + false + true + -44888c80:138586b5a4b:-72c5 + + 31 + + Action Button + false + + true + true + false + + + + + + + + + Action Button + true + Action Button + false + + Default + + 164 + 0 + 0 + + + + false + 1 + + + + 30 + + + widgets/3_1_Action_Button.opi + + true + + 0 + + + + $(pv_name) +$(pv_value) + 19 + + + false + true + -44888c80:138586b5a4b:-72c2 + + 45 + + Action Button_3 + false + + true + true + false + + + + + + + + + Action Button + true + Knob/Slider/Spinner +Scrollbar/Thumb Wheel + false + + Default + + 164 + 0 + 0 + + + + false + 1 + + + + 181 + + + widgets/3_5_Knob_Slider.opi + + true + + 0 + + + + $(pv_name) +$(pv_value) + 19 + + + false + true + -44888c80:138586b5a4b:-72c7 + + 31 + + Action Button_1 + false + + true + true + false + + + + + + + + + Action Button + true + Boolean Widgets + false + + Default + + 164 + 0 + 0 + + + + false + 1 + + + + 106 + + + widgets/3_2_1_BoolButton_Switch.opi + + true + + 0 + + + + $(pv_name) +$(pv_value) + 19 + + + + + true + + true + 61de2660:1385ca06ac8:-2f2c + + 320 + Grouping Container_1 + + true + true + false + + true + false + + + + + + + true + Grouping Container + + Default + + 212 + 14 + + false + false + 1 + + + + 297 + + 6 + + + true + 1 + -44888c80:138586b5a4b:-76ef + false + + 26 + Label_10 + + true + true + false + + true + false + + + + + + + Label + true + Monitors + + Header 3 + + 150 + 0 + + 1 + + + + 1 + + + widgets/1_1_Rectangle_Ellipse.opi + + true + + 0 + + + + 2 + true + + 26 + + + false + true + -44888c80:138586b5a4b:-72c7 + + 31 + + Action Button_1 + false + + true + true + false + + + + + + + + + Action Button + true + Text Update + false + + Default + + 164 + 0 + 0 + + + + false + 1 + + + + 65 + + + widgets/2_2_Text_Update.opi + + true + + 0 + + + + $(pv_name) +$(pv_value) + 19 + + + false + true + 5ec8b324:13880ba2d91:-707f + + 31 + + Action Button_9 + false + + true + true + false + + + + + + + + + Action Button + true + Symbol Monitor + false + + Default + + 164 + 0 + 0 + + + + false + 1 + + + + 276 + + + widgets/SymbolWidgets.opi + + true + + 0 + + + + $(pv_name) +$(pv_value) + 19 + + + false + true + -44888c80:138586b5a4b:-72c3 + + 31 + + Action Button_5 + false + + true + true + false + + + + + + + + + Action Button + true + Intensity Graph + false + + Default + + 164 + 0 + 0 + + + + false + 1 + + + + 237 + + + widgets/2_6_1_IntensityGraph.opi + + true + + 0 + + + + $(pv_name) +$(pv_value) + 19 + + + false + true + -44888c80:138586b5a4b:-72c4 + + 31 + + Action Button_2 + false + + true + true + false + + + + + + + + + Action Button + true + Gauge/Meter + false + + Default + + 164 + 0 + 0 + + + + false + 1 + + + + 102 + + + widgets/2_3_Gauge_Meter.opi + + true + + 0 + + + + $(pv_name) +$(pv_value) + 19 + + + false + true + -44888c80:138586b5a4b:-72c5 + + 31 + + Action Button + false + + true + true + false + + + + + + + + + Action Button + true + Boolean Indicator + false + + Default + + 164 + 0 + 0 + + + + false + 1 + + + + 28 + + + widgets/2_1_LED.opi + + true + + 0 + + + + $(pv_name) +$(pv_value) + 19 + + + false + true + -44888c80:138586b5a4b:-72c6 + + 31 + + Action Button_4 + false + + true + true + false + + + + + + + + + Action Button + true + XY Graph + false + + Default + + 164 + 0 + 0 + + + + false + 1 + + + + 200 + + + widgets/2_5_1_XY_Graph.opi + + true + + 0 + + + + $(pv_name) +$(pv_value) + 19 + + + false + true + -44888c80:138586b5a4b:-72c2 + + 55 + + Action Button_3 + false + + true + true + false + + + + + + + + + Action Button + true + Tank/Thermometer +ProgressBar + false + + Default + + 164 + 0 + 0 + + + + false + 1 + + + + 139 + + + widgets/2_4_Tank_Thermo.opi + + true + + 0 + + + + $(pv_name) +$(pv_value) + 19 + + + + + true + + true + -44888c80:138586b5a4b:-7961 + + 248 + Grouping Container + + true + true + false + + true + false + + + + + + + true + Grouping Container + + Default + + 212 + 14 + + false + false + 1 + + + + 46 + + 6 + + + true + 1 + -33df4acd:1387b64073a:-7fc1 + false + + 26 + Label_12 + + true + true + false + + true + false + + + + + + + Label + true + Graphics + + Header 3 + + 123 + 0 + + 1 + + + + 1 + + + widgets/1_1_Rectangle_Ellipse.opi + + true + + 0 + + + + -1 + true + + 38 + + + false + true + -44888c80:138586b5a4b:-7c32 + + 31 + + Action Button_4 + false + + true + true + false + + + + + + + + + Action Button + true + Polyline/Polygon + false + + Default + + 164 + 0 + 0 + + + + false + 1 + + + + 171 + + + widgets/1_5_Polyline_Polygon.opi + + true + + 0 + + + + $(pv_name) +$(pv_value) + 20 + + + false + true + -44888c80:138586b5a4b:-7c2e + + 31 + + Action Button_5 + false + + true + true + false + + + + + + + + + Action Button + true + Connection + false + + Default + + 164 + 0 + 0 + + + + false + 1 + + + + 207 + + + widgets/1_6_Connection.opi + + true + + 0 + + + + $(pv_name) +$(pv_value) + 20 + + + false + true + -44888c80:138586b5a4b:-7c36 + + 31 + + Action Button_3 + false + + true + true + false + + + + + + + + + Action Button + true + Arc + false + + Default + + 164 + 0 + 0 + + + + false + 1 + + + + 135 + + + widgets/1_4_Arc.opi + + true + + 0 + + + + $(pv_name) +$(pv_value) + 20 + + + false + true + -44888c80:138586b5a4b:-7c3a + + 31 + + Action Button_2 + false + + true + true + false + + + + + + + + + Action Button + true + Label + false + + Default + + 164 + 0 + 0 + + + + false + 1 + + + + 99 + + + widgets/1_3_Label.opi + + true + + 0 + + + + $(pv_name) +$(pv_value) + 20 + + + false + true + -44888c80:138586b5a4b:-7c3e + + 31 + + Action Button_1 + false + + true + true + false + + + + + + + + + Action Button + true + Image + false + + Default + + 164 + 0 + 0 + + + + false + 1 + + + + 63 + + + widgets/1_2_Image.opi + + true + + 0 + + + + $(pv_name) +$(pv_value) + 20 + + + false + true + -44888c80:138586b5a4b:-7c52 + + 31 + + Action Button + false + + true + true + false + + + + + + + + + Action Button + true + Ellipse/Rectangle + false + + Default + + 164 + 0 + 0 + + + + false + 1 + + + + 27 + + + widgets/1_1_Rectangle_Ellipse.opi + + true + + 0 + + + + $(pv_name) +$(pv_value) + 20 + + + + + true + + true + 5ec8b324:13880ba2d91:-4d04 + + 40 + Grouping Container_7 + + true + true + false + + false + false + + + + + + + true + Grouping Container + + Default + + 214 + 0 + + false + true + 1 + + + + 3 + + + 1_2_WidgetExamples.opi + + true + + 0 + + + + 5 + + + false + true + 0.0 + + + + -2da06158:1386c4a81f1:-766b + + + + + 40 + true + 16 + Rounded Rectangle + false + 255 + + true + true + false + + false + + 16 + + + + + + + Rounded Rectangle + true + + + + false + + Default + + 214 + 0 + 0 + + + 1 + 1 + true + + + + + 0 + $(pv_name) +$(pv_value) + 0 + true + + + true + 1 + -44888c80:138586b5a4b:-7965 + false + + 40 + Label_5 + + true + true + false + + true + false + + + + + + + Label + true + BOY Widgets + + Header 2 + + 175 + 0 + + 1 + + + + 1 + + 0 + true + + 20 + + + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/1_1_Start_Up.opi b/core/base/tools/commander/workspace_template/Displays/BOY Examples/1_1_Start_Up.opi new file mode 100644 index 000000000..8bbc7e745 --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/BOY Examples/1_1_Start_Up.opi @@ -0,0 +1,933 @@ + + + false + + true + + 5ec8b324:13880ba2d91:-3e49 + 3.2.18.qualifier + + true + 600 + Start Up + true + false + + + + + + + Display + true + 800 + + true + 6 + + true + 400 + 300 + + + -1 + -1 + + 22.0 + true + true + + + + true + + 136 + 50 + false + + + + true + Gauge + true + + Default + + 138 + true + 0 + true + + true + true + 100.0 + 1 + false + 0.0 + 5ec8b324:13880ba2d91:-3e43 + true + + true + + + + Gauge + + true + true + true + + sim://noise + + + + + + + false + 80.0 + + Default + + 90.0 + true + + + + + + true + + + + true + + + + 10.0 + 184 + + 614 + $(pv_name) +$(pv_value) + + + 20.0 + true + true + + + + true + + + + + + + + 156 + 50 + false + + + + true + Knob + 1.0 + true + + Default + + 163 + true + 0 + true + + true + true + 100.0 + 1 + false + 0.0 + 5ec8b324:13880ba2d91:-3e42 + true + + true + + + + Knob + + true + true + true + + loc://test + + + + + + + false + 80.0 + + Default + + 90.0 + true + + + + + + true + true + false + + + + 10.0 + 390 + + 601 + $(pv_name) +$(pv_value) + + + false + true + true + false + false + false + + 25 + false + false + true + + + + true + Text Input + + + Default + + 100 + 0 + + 1.7976931348623157E308 + 1 + -1.7976931348623157E308 + 0 + true + 5ec8b324:13880ba2d91:-3dc5 + + Text + 0 + + true + true + false + + loc://test + + + + 0 + false + + + false + 0 + + + + 360 + + 633 + $(pv_name) +$(pv_value) + + + false + true + true + false + false + false + + 25 + false + true + true + + + + true + Text Input + + + Default + + 100 + 0 + + 1.7976931348623157E308 + 1 + -1.7976931348623157E308 + 0 + true + 5ec8b324:13880ba2d91:-3d97 + + Text_1 + 0 + + true + true + false + + sim://noise + + + + 0 + false + + + false + 0 + + + + 143 + + 632 + $(pv_name) +$(pv_value) + + + false + true + true + false + false + false + + 25 + false + false + true + + + + true + Text Input + Example1: Display PV value in a Text Update widget. + + Default + + 433 + 0 + + 1.7976931348623157E308 + 1 + -1.7976931348623157E308 + 0 + true + 5ec8b324:13880ba2d91:-3d23 + + Text_2 + 0 + + true + true + false + + + + + + 0 + false + + + false + 1 + + + + 97 + + 57 + $(pv_name) +$(pv_value) + + + false + true + true + false + false + false + + 26 + false + false + true + + + + true + Text Input + Example2: Set PV value from Knob widget + + Default + + 375 + 0 + + 1.7976931348623157E308 + 1 + -1.7976931348623157E308 + 0 + true + 5ec8b324:13880ba2d91:-3cf6 + + Text_3 + 0 + + true + true + false + + + + + + 0 + false + + + false + 1 + + + + 390 + + 86 + $(pv_name) +$(pv_value) + + + + true + + true + 5ec8b324:13880ba2d91:-3c4d + + 84 + Grouping Container_3 + + true + true + false + + true + false + + + + + + + true + Grouping Container + + Default + + 765 + 14 + + false + false + 1 + + + + 7 + + 7 + + + true + true + true + false + false + false + + 33 + false + false + true + + + + true + Text Input + Examples + + Header 1 + + 396 + 0 + + 1.7976931348623157E308 + 1 + -1.7976931348623157E308 + 0 + true + 6d4582ac:1389581a6f9:-7ab4 + + Label_11 + 0 + + true + true + false + + + + + + 0 + false + + + false + 1 + + + + 42 + + 352 + + + + true + true + true + false + false + false + + 33 + false + false + true + + + + true + Text Input + Best OPI Yet (BOY) + + Header 1 + + 396 + 0 + + 1.7976931348623157E308 + 1 + -1.7976931348623157E308 + 0 + true + 6d4582ac:1389581a6f9:-7ab3 + + Label_12 + 0 + + true + true + false + + + + + + 0 + false + + + false + 1 + + + + 7 + + 352 + + + + false + true + true + false + false + false + + 38 + false + false + true + + + + true + Text Input + Start Up + + Header 1 + + 202 + 0 + + 1.7976931348623157E308 + 1 + -1.7976931348623157E308 + 0 + true + 6d4582ac:1389581a6f9:-7ab1 + + Label_14 + 0 + + true + true + false + + + + + + 0 + false + + + false + 1 + + + + 6 + + 56 + + + + false + true + true + false + false + false + + 32 + false + false + true + + + + true + Text Input + Yes, that is easy! + + Default Bold + + 202 + 0 + + 1.7976931348623157E308 + 1 + -1.7976931348623157E308 + 0 + true + 6d4582ac:1389581a6f9:-7ab2 + + Label_13 + 0 + + true + true + false + + + + + + 0 + false + + + false + 1 + + + + 45 + + 56 + + + + + false + true + 5ec8b324:13880ba2d91:-3cd8 + + 28 + + Action Button + false + + true + true + false + + + + + + + + + Action Button + true + Go Home + false + + Default + + 118 + 0 + 0 + pictures/home-16x16.png + + + false + 1 + + + + 563 + + + main.opi + + true + + 1 + + + + $(pv_name) +$(pv_value) + 7 + + + false + true + 5ec8b324:13880ba2d91:-3cc8 + + 42 + + Action Button_2 + false + + true + true + false + + + + + + + + + Action Button + true + See All Widgets + false + + Default + + 171 + 0 + 0 + + + + false + 1 + + + + 549 + + + 1_2_WidgetExamples.opi + + true + + 1 + + + + $(pv_name) +$(pv_value) + 592 + + + false + true + true + true + true + false + + 143 + false + true + + + + true + Text Input + Step1. Create a Knob widget in the editing area. + +Step2. Set the properties of "Control PV" and "Readback PV" to "loc://test" + +Step3. Set "Limits From PV" property to no. + +Step4. Run OPI and then you can set the PV value by dragging the thumb on the knob + + Default + + 552 + 0 + + false + 1.7976931348623157E308 + 1 + false + true + -1.7976931348623157E308 + 0 + true + -2d7b3317:13eb2e92883:-6b9e + + Label_11 + 0 + + true + true + false + + + + + + 0 + false + + + false + 0 + + + + 415 + + 7 + + + + false + true + true + true + true + false + + 261 + false + true + + + + true + Text Input + Step1. Open the OPI Editor perspective from Menu: +Window->Open Perscpective->Other..->OPI Editor + +Step2. Create a new OPI file from Menu +File->new->Others...->BOY->OPI File + +Step3. Click "Text Update" widget on the palette, then click or drag a rectangle in the editing area to place the widget on the editing area. + +Step4. Go to the properties view, set "PV Name" to "sim://noise" + +Step5. Save file by pressing "Ctrl+S". Click the "Run OPI" button on the toolbar or press "Ctrl+G" to run the OPI in the editor. Now you are successful to see the value update in the widget! + +You can also show PV value from other widgets (e.g. Gauge, Meter, Thermometer...) by following the same steps. + + Default + + 552 + 0 + + false + 1.7976931348623157E308 + 1 + false + true + -1.7976931348623157E308 + 0 + true + -2d7b3317:13eb2e92883:-6b9d + + Label + 0 + + true + true + false + + + + + + 0 + false + + + false + 0 + + + + 121 + + 7 + + + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/1_2_WidgetExamples.opi b/core/base/tools/commander/workspace_template/Displays/BOY Examples/1_2_WidgetExamples.opi new file mode 100644 index 000000000..7a3f8fb32 --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/BOY Examples/1_2_WidgetExamples.opi @@ -0,0 +1,6920 @@ + + + true + + true + + -98641ad:138805fb287:-8000 + 3.2.18.qualifier + + true + 905 + Widgets + true + false + + + + + + + Display + true + 1045 + + true + 6 + + false + -1 + -1 + + + -1 + -1 + + true + 1 + -4499eab:1386c3a53ab:-7fd0 + false + + 49 + Label_6 + + true + true + false + + true + false + + + + + + + Label + true + BOY Widgets Demo + + Header 1 + + 1024 + 14 + + 1 + + + + 1 + + 3 + true + + 1 + + + + true + + 10 + 0 + Native Widgets/Others + 0 + 66d1507f:138820a85e5:-6be7 + + + + + + + + + + + true + + + + + 59 + 2 + true + + true + 822 + true + + Default + + + + + Graphics/Monitors/Controls + + + + Tabbed Container + true + 1024 + + + + 1 + Tabbed Container + + true + true + false + + + + Default + + + 2 + + + + true + + false + 66d1507f:138820a85e5:-6be6 + + 792 + Graphics/Monitors/Controls + + true + true + false + + true + true + + + + + + + true + Grouping Container + + Default + + 1022 + 0 + + false + false + 1 + + + + 1 + + 1 + + + + true + + true + 5ec8b324:13880ba2d91:-7d50 + + 168 + Grouping Container + + true + true + false + + true + false + + + + + + + true + Grouping Container + + Default + + 1011 + 14 + + false + false + 1 + + + + 11 + + 4 + + + 0 + 0 + true + -98641ad:138805fb287:-7ffd + true + + 70 + Image + false + + true + true + false + + + + + + + + Image + true + + Default + + 80 + false + false + + + 1.0 + 0.0 + + + 0.0 + 1.0 + + + 0 + 0 + + false + 0 + 0 + 1 + pictures/fish.gif + + + + + 37 + + 875 + + + false + true + 20 + true + 100.0 + -98641ad:138805fb287:-7ff8 + 0.0 + + 3 + 79 + true + Polyline_2 + true + 255 + + true + true + true + + + + + + + false + sim://noise + + + + + + + Polyline + true + false + + Default + + 92 + 0 + 0 + + + 1 + 4 + true + + + + + 31 + $(pv_name) +$(pv_value) + 164 + + + false + true + 135 + -98641ad:138805fb287:-7ff7 + 15 + + 92 + true + Arc_2 + false + 255 + + true + true + true + + sim://ramp(0,360, 10, 0.1) + + + + + + + Arc + true + false + + Default + + 100 + 0 + true + 0 + + + + pv0 + + $(pv_name) + + + + 1 + 2 + + + + + 33 + $(pv_name) +$(pv_value) + 11 + + + false + true + 60.0 + + + + -98641ad:138805fb287:-7ff6 + 0.0 + + 78 + true + Polygon + false + 255 + + true + true + true + + + + + + + + + + false + sim://ramp(0,100,1,0.1) + + + + + + + Polygon + true + false + + Default + + 77 + 0 + 0 + + + + pv0 + + $(pv_name) + + + + 1 + 0 + true + + + + + 35 + $(pv_name) +$(pv_value) + 289 + + + false + true + false + false + + 22 + false + false + + + + true + Text + Polyline + + Default + + 102 + 0 + + 1.7976931348623157E308 + 1 + -1.7976931348623157E308 + false + 5ec8b324:13880ba2d91:-7e98 + 0.0 + + Text_4 + 0 + + true + true + false + + 0 + false + + + + + 0 + false + + + false + 1 + + + + 132 + + 144 + $(pv_name) +$(pv_value) + + + false + true + false + false + + 22 + false + false + + + + true + Text + Arc + + Default + + 80 + 0 + + 1.7976931348623157E308 + 1 + -1.7976931348623157E308 + false + 5ec8b324:13880ba2d91:-7e8e + 0.0 + + Text_5 + 0 + + true + true + false + + 0 + false + + + + + 0 + false + + + false + 1 + + + + 132 + + 21 + $(pv_name) +$(pv_value) + + + false + true + false + false + + 22 + false + false + + + + true + Text + Polygon + + Default + + 92 + 0 + + 1.7976931348623157E308 + 1 + -1.7976931348623157E308 + false + 5ec8b324:13880ba2d91:-7e84 + 0.0 + + Text_6 + 0 + + true + true + false + + 0 + false + + + + + 0 + false + + + false + 1 + + + + 132 + + 276 + $(pv_name) +$(pv_value) + + + false + true + 50.0 + + + + 5ec8b324:13880ba2d91:-7e63 + + + + + 82 + true + Rectangle_8 + false + 255 + + true + true + false + + false + sim://ramp(0,100,1,0.1) + + + + + + + Rectangle + true + + + + false + + Default + + 49 + 0 + 0 + + + + pv0 + + $(pv_name) + + + + 1 + 1 + false + + + + + 35 + $(pv_name) +$(pv_value) + 405 + true + + + false + true + false + false + + 29 + false + false + + + + true + Text + Rectangle + + Default + + 92 + 0 + + 1.7976931348623157E308 + 1 + -1.7976931348623157E308 + false + 5ec8b324:13880ba2d91:-7e62 + 0.0 + + Text_7 + 0 + + true + true + false + + 0 + false + + + + + 0 + false + + + false + 1 + + + + 128 + + 388 + $(pv_name) +$(pv_value) + + + false + true + 50.0 + + + + 5ec8b324:13880ba2d91:-7e5d + + + + + 82 + true + 16 + Rectangle_9 + false + 255 + + true + true + false + + false + sim://ramp(0,100,1,0.1) + 16 + + + + + + + Rectangle + true + + + + false + + Default + + 53 + 0 + 0 + + + + pv0 + + $(pv_name) + + + + 1 + 1 + false + + + + + 35 + $(pv_name) +$(pv_value) + 507 + true + + + false + true + 50.0 + + + + 5ec8b324:13880ba2d91:-7e24 + + + + + 82 + true + Rectangle_10 + false + 255 + + true + true + false + + false + sim://ramp(0,100,1,0.1) + + + + + + + Rectangle + true + + + + false + + Default + + 55 + 0 + 0 + + + + pv0 + + $(pv_name) + + + + 1 + 1 + false + + + + + 35 + $(pv_name) +$(pv_value) + 607 + true + + + false + true + false + false + + 22 + false + false + + + + true + Text + Ellipse + + Default + + 87 + 0 + + 1.7976931348623157E308 + 1 + -1.7976931348623157E308 + false + 5ec8b324:13880ba2d91:-7e23 + 0.0 + + Text_9 + 0 + + true + true + false + + 0 + false + + + + + 0 + false + + + false + 1 + + + + 132 + + 600 + $(pv_name) +$(pv_value) + + + false + true + false + false + + 22 + false + false + + + + true + Text + Image + + Default + + 80 + 0 + + 1.7976931348623157E308 + 1 + -1.7976931348623157E308 + false + 5ec8b324:13880ba2d91:-7dec + 0.0 + + Text_10 + 0 + + true + true + false + + 0 + false + + + + + 0 + false + + + false + 1 + + + + 132 + + 881 + $(pv_name) +$(pv_value) + + + false + true + false + false + + 25 + false + false + + + + true + Text + Graphics + + Header 3 + + 116 + 0 + + 1.7976931348623157E308 + 1 + -1.7976931348623157E308 + false + 5ec8b324:13880ba2d91:-7c63 + 0.0 + + Text_11 + 0 + + true + true + false + + 0 + false + + + + + 0 + false + + + false + 1 + + + + 2 + + 438 + $(pv_name) +$(pv_value) + + + + true + + true + 5ec8b324:13880ba2d91:-6d44 + + 113 + Grouping Container + + true + true + false + + false + false + + + + + + + true + Grouping Container + + Default + + 131 + 0 + + false + false + 1 + + + + 34 + + 710 + + + true + 1 + -98641ad:138805fb287:-7ffe + false + + 29 + Label_11 + + true + true + false + + true + false + + + + + + + Label + true + Header 2 + + Header 2 + + 131 + 0 + + 1 + + + + 1 + + 30 + true + + 0 + + + true + 1 + -98641ad:138805fb287:-7ffb + false + + 29 + Label_5 + + true + true + false + + true + false + + + + + + + Label + true + Header 1 + + Header 1 + + 131 + 0 + + 1 + + + + 1 + + 0 + true + + 0 + + + true + 1 + -98641ad:138805fb287:-7ff9 + false + + 29 + Label_12 + + true + true + false + + true + false + + + + + + + Label + true + Default + + Default + + 131 + 0 + + 1 + + + + 1 + + 58 + true + + 0 + + + + false + true + true + false + + 38 + false + false + + + + true + Text + Rounded Rectangle + + Default + + 80 + 0 + + 1.7976931348623157E308 + 1 + -1.7976931348623157E308 + false + 5ec8b324:13880ba2d91:-7e5c + 0.0 + + Text_8 + 0 + + true + true + false + + 0 + false + + + + + 0 + false + + + false + 1 + + + + 124 + + 494 + $(pv_name) +$(pv_value) + + + false + true + false + false + + 22 + false + false + + + + true + Text + Label + + Default + + 70 + 0 + + 1.7976931348623157E308 + 1 + -1.7976931348623157E308 + false + 5ec8b324:13880ba2d91:-7eea + 0.0 + + Text_3 + 0 + + true + true + false + + 0 + false + + + + + 0 + false + + + false + 1 + + + + 132 + + 741 + $(pv_name) +$(pv_value) + + + + + true + + true + 5ec8b324:13880ba2d91:-6b86 + + 325 + Grouping Container + + true + true + false + + true + false + + + + + + + true + Grouping Container + + Default + + 1011 + 14 + + false + false + 1 + + + + 186 + + 4 + + + false + true + -98641ad:138805fb287:-7ff3 + + false + + + + 28 + 0 + LED + false + false + + true + true + true + + + + + sim://ramp(0,100,1,0.2) + + + + + + + OFF + LED + true + false + + + + 28 + 0 + true + + + 0 + 1 + ON + + + + + 30 + $(pv_name) +$(pv_value) + 17 + + + false + true + 1 + true + -98641ad:138805fb287:-7ff2 + false + 0.0 + + 20 + Text Update + true + + true + true + false + + 0 + true + true + sim://sine(0,100,100,0.1) + + + + + + + Text Update + true + ###### + false + 0 + + Default + + 100 + 0 + + + 1 + + + + 1 + + 34 + false + $(pv_name) +$(pv_value) + 179 + + + 20.0 + false + true + + + + true + + 71 + 50 + false + + + + true + Meter + true + + Default + + 162 + true + 5 + + true + true + 100.0 + 1 + false + 0.0 + -98641ad:138805fb287:-7ff1 + true + + true + + + + Meter + + true + true + true + + sim://ramp(0,100,1,0.1) + + + + + + + false + 80.0 + + Default + + 90.0 + true + + + + + + true + + + + true + + + + 10.0 + 34 + + 408 + $(pv_name) +$(pv_value) + + + 20.0 + false + true + + + + true + + 124 + 50 + false + + + + true + Gauge + true + + Default + + 128 + true + 0 + true + + true + true + 100.0 + 1 + false + 0.0 + -98641ad:138805fb287:-7ff0 + true + + true + + + + Gauge + + true + true + true + + sim://ramp(0,100,1,0.2) + + + + + + + false + 80.0 + + Default + + 90.0 + true + + + + + + true + + + + true + + + + 10.0 + 150 + + 179 + $(pv_name) +$(pv_value) + + + 20.0 + false + true + + + + + + + false + true + + 141 + 50 + false + + + + true + Thermometer + true + + Default + + 92 + true + 0 + true + true + + false + true + 100.0 + 1 + false + 0.0 + -98641ad:138805fb287:-7fee + true + + true + + + + Thermometer_1 + + true + true + false + + sim://ramp(0.1,100,1,0.1) + + + + + + + false + 80.0 + + Default + + 90.0 + + + + + + + + + 0 + true + true + + + + 10.0 + 141 + + 314 + $(pv_name) +$(pv_value) + + + 20.0 + false + true + + + + + + + false + true + + 140 + 50 + false + + + + true + Tank + true + + Default + + 154 + true + 0 + true + + true + true + 100.0 + 1 + false + 0.0 + -98641ad:138805fb287:-7fed + true + + true + + + + Tank + + true + true + false + + sim://ramp(0,100,1,0.1) + + + + + + + false + 80.0 + + Default + + 90.0 + + + + + + + + true + true + + + + 10.0 + 142 + + 416 + $(pv_name) +$(pv_value) + + + 30.0 + false + true + + + + + + + false + true + + 78 + 50 + false + + + + true + Progress Bar + true + + Default + + 160 + true + 0 + true + + true + true + 100.0 + 1 + true + false + 0.0 + -98641ad:138805fb287:-7fec + true + + true + + + + Progress Bar + + true + true + false + + sim://ramp(0,100,1,0.2) + + + + true + + + + true + false + 70.0 + + Default + + 90.0 + 0.0 + + + + + + + + + true + true + + + + 10.0 + 141 + + 1 + $(pv_name) +$(pv_value) + false + + + + true + + 10 + 0 + Intensity Graph + 0 + -98641ad:138805fb287:-7feb + + + + + + + + + + + true + + + + + 6 + 575 + true + + true + 304 + true + + Default + + + + + XY Graph + + + + Tabbed Container + true + 424 + + + + 1 + Tabbed Container + + true + true + false + + + + Default + + + 2 + + + + true + + true + -98641ad:138805fb287:-7fea + + 274 + XY Graph + + true + true + false + + true + true + + + + + + + true + Grouping Container + + Default + + 422 + 0 + + false + false + 1 + + + + 1 + + 1 + + + true + 3 + + + + true + 0 + 4 + 0 + 2 + true + false + Trace 1 + 4 + true + 5 + 6 + true + + true + 261 + 100.0 + + Default Bold + + 1 + + + + + XY Graph + 0.0 + 1 + true + 0 + true + + + + 4 + 0.0 + $(trace_0_y_pv) + true + 0 + 50 + Time + -98641ad:138805fb287:-7fe9 + + + + + + + 0 + false + Amplitude + 100.0 + + Default + + + 8 + 0 + false + 0 + + Default Bold + + true + true + false + + + + sim://sine(0,100,50,0.2) + + Default Bold + + true + true + + + + false + XY Graph + true + 410 + 50 + + 2 + true + true + 0 + 3 + $(pv_name) +$(pv_value) + true + 0 + 1 + + Default + + 0 + + + + XY Graph + sim://noise(0,100,0.2) + + 0.0 + true + 0.0 + + + + + true + + + + + + + + 1 + + true + true + false + + true + + + 0 + + + + 0 + + + + + true + + false + -98641ad:138805fb287:-7fe8 + + 274 + Intensity Graph + + true + true + false + + true + true + + + + + + + true + Grouping Container + + Default + + 422 + 0 + + false + false + 1 + + + + 1 + + 1 + + + false + + Default + + true + false + X Axis + + + =1 + =1 + + + 259 + false + false + 100.0 + + + + 0 + true + Intensity Graph + + Default + + 405 + + true + true + 2 + + 0 + + 0.0 + + + + true + + 0 + 1.0 + 1 + + Default Bold + + 100.0 + 0 + + true + 0 + 294 + -1.0 + + 256 + -98641ad:138805fb287:-7fe7 + Y Axis + 50 + + + + + Default Bold + + true + WaveGraph + + true + true + true + + + Default + + + + + 256 + + true + + 0.0 + + + + + + + false + 0 + 212 + + 50 + true + + + + + 5 + + 8 + $(pv_name) +$(pv_value) + + + + + false + true + false + false + + 29 + false + false + + + + true + Text + LED + + Default + + 59 + 0 + + 1.7976931348623157E308 + 1 + -1.7976931348623157E308 + false + 5ec8b324:13880ba2d91:-7aaf + 0.0 + + Text_5 + 0 + + true + true + false + + 0 + false + + + + + 0 + false + + + false + 1 + + + + 90 + + 1 + $(pv_name) +$(pv_value) + + + false + true + 5ec8b324:13880ba2d91:-7a72 + true + 0 + + 48 + 0 + Image Boolean Indicator + false + false + false + + false + false + false + + sim://ramp + + + + + + + OFF + Image Boolean Indicator + true + false + + Default + + 48 + 0 + + + 0 + 1 + ON + pictures/lightOff.png + + + + + 20 + pictures/lightOn.png + $(pv_name) +$(pv_value) + 93 + + + false + true + false + false + + 29 + false + false + + + + true + Text + Text Update + + Default + + 112 + 0 + + 1.7976931348623157E308 + 1 + -1.7976931348623157E308 + false + 5ec8b324:13880ba2d91:-7a54 + 0.0 + + Text_2 + 0 + + true + true + false + + 0 + false + + + + + 0 + false + + + false + 1 + + + + 91 + + 176 + $(pv_name) +$(pv_value) + + + false + true + false + false + + 24 + false + false + + + + true + Text + Meter + + Default + + 103 + 0 + + 1.7976931348623157E308 + 1 + -1.7976931348623157E308 + false + 5ec8b324:13880ba2d91:-6f27 + 0.0 + + Text_3 + 0 + + true + true + false + + 0 + false + + + + + 0 + false + + + false + 1 + + + + 106 + + 441 + $(pv_name) +$(pv_value) + + + true + true + 1 + true + 5ec8b324:13880ba2d91:-6f01 + false + 0.0 + + 20 + Text Update_1 + false + + true + true + false + + 0 + true + false + sim://sine(0,100,100,0.1) + + + + + + + Text Update + true + ###### + false + 0 + + Default + + 100 + 0 + + + 1 + + + + 1 + + 57 + false + $(pv_name) +$(pv_value) + 179 + + + false + true + false + false + + 24 + false + false + + + + true + Text + Progress Bar + + Default + + 136 + 0 + + 1.7976931348623157E308 + 1 + -1.7976931348623157E308 + false + 5ec8b324:13880ba2d91:-6ee1 + 0.0 + + Text_4 + 0 + + true + true + false + + 0 + false + + + + + 0 + false + + + false + 1 + + + + 218 + + 13 + $(pv_name) +$(pv_value) + + + false + true + false + false + + 21 + false + false + + + + true + Text + Gauge + + Default + + 94 + 0 + + 1.7976931348623157E308 + 1 + -1.7976931348623157E308 + false + 5ec8b324:13880ba2d91:-6ed7 + 0.0 + + Text_5 + 0 + + true + true + false + + 0 + false + + + + + 0 + false + + + false + 1 + + + + 288 + + 192 + $(pv_name) +$(pv_value) + + + false + true + 5ec8b324:13880ba2d91:-6e83 + true + + true + 0 + + + + 26 + Byte Monitor_1 + false + + true + true + false + + + + + sim://ramp(0,255,1,0.1) + + + + + + + Byte Monitor + true + false + 8 + + Default + + 136 + 0 + true + + + false + true + false + + 40 + 0 + true + false + OFF + + + + true + Boolean Symbol Monitor + + Default + + + + 1.0 + 0.0 + + + 0.0 + 1.0 + + + 40 + 0 + false + + 0 + 0 + ON + 1 + pictures/SymbolLibrary/SVG/PL General.svg + 0 + 0 + 5ec8b324:13880ba2d91:-6d93 + 3 + + + + true + Boolean Symbol Monitor + + true + true + false + + + + + sim://ramp(0,10,1,1) + + + + false + false + 0 + + 0 + + + + 31 + + 317 + $(pv_name) +$(pv_value) + + + false + true + false + false + + 21 + false + false + + + + true + Text + Byte Monitor + + Default + + 135 + 0 + + 1.7976931348623157E308 + 1 + -1.7976931348623157E308 + false + 5ec8b324:13880ba2d91:-6cbc + 0.0 + + Text_8 + 0 + + true + true + false + + 0 + false + + + + + 0 + false + + + false + 1 + + + + 288 + + 14 + $(pv_name) +$(pv_value) + + + false + true + false + false + + 21 + false + false + + + + true + Text + Thermometer + + Default + + 122 + 0 + + 1.7976931348623157E308 + 1 + -1.7976931348623157E308 + false + 5ec8b324:13880ba2d91:-6c9a + 0.0 + + Text_9 + 0 + + true + true + false + + 0 + false + + + + + 0 + false + + + false + 1 + + + + 288 + + 296 + $(pv_name) +$(pv_value) + + + false + true + false + false + + 21 + false + false + + + + true + Text + Tank + + Default + + 89 + 0 + + 1.7976931348623157E308 + 1 + -1.7976931348623157E308 + false + 5ec8b324:13880ba2d91:-6c88 + 0.0 + + Text_10 + 0 + + true + true + false + + 0 + false + + + + + 0 + false + + + false + 1 + + + + 288 + + 445 + $(pv_name) +$(pv_value) + + + false + true + false + false + + 25 + false + false + + + + true + Text + Monitors + + Header 3 + + 116 + 0 + + 1.7976931348623157E308 + 1 + -1.7976931348623157E308 + false + 5ec8b324:13880ba2d91:-68aa + 0.0 + + Text_11 + 0 + + true + true + false + + 0 + false + + + + + 0 + false + + + false + 1 + + + + 6 + + 445 + $(pv_name) +$(pv_value) + + + false + true + true + false + + 49 + false + false + + + + true + Text + Boolean Symbol Monitor + + Default + + 111 + 0 + + 1.7976931348623157E308 + 1 + -1.7976931348623157E308 + false + 5ec8b324:13880ba2d91:-6cf4 + 0.0 + + Text_6 + 0 + + true + true + false + + 0 + false + + + + + 0 + false + + + false + 1 + + + + 81 + + 287 + $(pv_name) +$(pv_value) + + + false + true + true + false + + 49 + false + false + + + + true + Text + Image Boolean Indicator + + Default + + 111 + 0 + + 1.7976931348623157E308 + 1 + -1.7976931348623157E308 + false + 5ec8b324:13880ba2d91:-7a66 + 0.0 + + Text_1 + 0 + + true + true + false + + 0 + false + + + + + 0 + false + + + false + 1 + + + + 76 + + 66 + $(pv_name) +$(pv_value) + + + + + true + + true + 5ec8b324:13880ba2d91:-60e2 + + 268 + Grouping Container + + true + true + false + + true + false + + + + + + + true + Grouping Container + + Default + + 1011 + 14 + + false + false + 1 + + + + 518 + + 4 + + + 20.0 + true + true + + + + true + + + + + + + + 154 + 50 + false + + + + true + Knob + 1.0 + true + + Default + + 169 + true + 0 + true + + true + true + 100.0 + 1 + false + 0.0 + -98641ad:138805fb287:-7fe5 + true + + true + + + + Knob + + true + true + true + + loc://k1 + + + + + + + false + 80.0 + + Default + + 90.0 + true + + + + + + true + true + false + + + + 10.0 + 112 + + 455 + $(pv_name) +$(pv_value) + + + false + true + -98641ad:138805fb287:-7fe0 + + 39 + + Action Button + false + + true + true + false + + + + + + + + + Action Button + true + Click Me! + false + + Default Bold + + 102 + 0 + 0 + pictures/home-16x16.png + + + false + 1 + + + + 42 + + + scripts/Dialog_push.js + + false + + + + $(pv_name) +$(pv_value) + 10 + + + false + true + false + false + + 22 + false + false + + + + true + Text + Knob + + Default + + 80 + 0 + + 1.7976931348623157E308 + 1 + -1.7976931348623157E308 + false + 5ec8b324:13880ba2d91:-669e + 0.0 + + Text_5 + 0 + + true + true + false + + 0 + false + + + + + 0 + false + + + false + 1 + + + + 241 + + 876 + $(pv_name) +$(pv_value) + + + false + true + false + -98641ad:138805fb287:-7fe3 + + 35 + Menu Button_1 + false + + true + true + false + + false + + + + + + + + Menu Button + true + false + + Default Bold + + 101 + 6 + + + + 1 + + + + 44 + + + scripts/SimpleDialog.js + + false + + + + 10_widgets.opi + + true + + 1 + + + + loc://test + 100 + 10 + + + + + $(pv_name) +$(pv_value) + 127 + + + false + true + false + false + + 22 + false + false + + + + true + Text + Menu Button + + Default + + 112 + 0 + + 1.7976931348623157E308 + 1 + -1.7976931348623157E308 + false + 5ec8b324:13880ba2d91:-6658 + 0.0 + + Text_1 + 0 + + true + true + false + + 0 + false + + + + + 0 + false + + + false + 1 + + + + 97 + + 127 + $(pv_name) +$(pv_value) + + + false + true + false + false + + 22 + false + false + + + + true + Text + Text Input + + Default + + 80 + 0 + + 1.7976931348623157E308 + 1 + -1.7976931348623157E308 + false + 5ec8b324:13880ba2d91:-6642 + 0.0 + + Text_2 + 0 + + true + true + false + + 0 + false + + + + + 0 + false + + + false + 1 + + + + 97 + + 289 + $(pv_name) +$(pv_value) + + + false + true + false + false + + 27 + false + false + + + + true + Text Input + + + Default + + 158 + 3 + + 1.7976931348623157E308 + 1 + -1.7976931348623157E308 + false + 5ec8b324:13880ba2d91:-663e + 0.0 + + Text Input_2 + 0 + + true + true + false + + 0 + false + loc://test + + + + 0 + false + + + false + 0 + + + + 61 + + 254 + $(pv_name) +$(pv_value) + + + false + true + false + false + + 27 + false + false + + + + true + Text Input + 2011-05-02 10:56:00 + + Default + + 158 + 3 + + 1.7976931348623157E308 + 1 + -1.7976931348623157E308 + false + 5ec8b324:13880ba2d91:-65e5 + 0.0 + + yyyy-MM-dd HH:mm:ss + Text Input_4 + 0 + + true + true + false + + 2 + false + loc://test + + + + 3 + false + + + false + 0 + + + + 30 + + 254 + $(pv_name) +$(pv_value) + + + true + true + -1.7976931348623157E308 + 1 + 5ec8b324:13880ba2d91:-6563 + + 25 + Spinner_3 + false + + true + true + false + + 10.0 + false + false + loc://k1 + false + + + + + + + Spinner + true + 1.0 + false + 0 + + Default + + 92 + 3 + 0 + + + 1 + 1.7976931348623157E308 + false + + + + 1 + + 62 + $(pv_name) +$(pv_value) + 434 + + + true + true + -1.7976931348623157E308 + 1 + 5ec8b324:13880ba2d91:-654d + + 25 + Spinner_2 + false + + true + true + false + + 10.0 + false + false + loc://k1 + false + + + + + + + Spinner + true + 1.0 + false + 2 + + Default + + 92 + 3 + 2 + + + 1 + 1.7976931348623157E308 + false + + + + 1 + + 31 + $(pv_name) +$(pv_value) + 434 + + + false + true + false + false + + 22 + false + false + + + + true + Text + Spinner + + Default + + 80 + 0 + + 1.7976931348623157E308 + 1 + -1.7976931348623157E308 + false + 5ec8b324:13880ba2d91:-6549 + 0.0 + + Text_3 + 0 + + true + true + false + + 0 + false + + + + + 0 + false + + + false + 1 + + + + 97 + + 436 + $(pv_name) +$(pv_value) + + + 30.0 + true + true + + + + + + + true + + + + + 119 + 50 + false + 10.0 + + + + true + Scaled Slider + true + + Default + + 178 + true + 0 + true + + true + true + 100.0 + 1 + true + false + 0.0 + -98641ad:138805fb287:-7fdf + true + + true + + + + Scaled Slider + + true + true + false + + loc://k1 + + + + + + + 1.0 + false + 70.0 + + Default + + 90.0 + + + + + + + + + true + false + + + + 10.0 + 129 + + 644 + $(pv_name) +$(pv_value) + + + true + true + true + 0.0 + 5ec8b324:13880ba2d91:-6434 + 2 + + 82 + 3 + Thumb Wheel + false + + true + true + false + + + + + loc://k1 + + + + + + + Thumb Wheel + true + false + + + + 131 + 0 + 0 + + + 1 + 100.0 + + + + false + + + + + 148 + $(pv_name) +$(pv_value) + 104 + + + false + true + 0.0 + 5ec8b324:13880ba2d91:-6433 + true + 20.0 + + 21 + Scrollbar_1 + false + + true + true + false + + 20.0 + loc://k1 + + + + + + + Scrollbar + true + 2.0 + false + + Default + + 143 + 0 + + + 1 + 100.0 + true + false + + + + + 199 + $(pv_name) +$(pv_value) + 850 + + + false + true + false + false + + 22 + false + false + + + + true + Text + Action Button + + Default + + 99 + 0 + + 1.7976931348623157E308 + 1 + -1.7976931348623157E308 + false + 5ec8b324:13880ba2d91:-6414 + 0.0 + + Text_4 + 0 + + true + true + false + + 0 + false + + + + + 0 + false + + + false + 1 + + + + 97 + + 13 + $(pv_name) +$(pv_value) + + + true + true + -98641ad:138805fb287:-7fdd + + 0 + + + + + 100 + 0 + Boolean Switch + false + false + + true + true + false + + + + + + + + + + + + OFF + 0 + Boolean Switch + true + false + + + + 50 + 0 + 0 + Are your sure you want to do this? + true + + + 0 + true + 0 + 1 + ON + + + + 129 + + $(pv_name) +$(pv_value) + 28 + + + true + true + -98641ad:138805fb287:-7fe1 + + + + + + 58 + false + 0 + Boolean Button_5 + false + true + + true + true + true + + + + + loc://boolTest + + + + + + + STOP + 0 + Boolean Button + true + false + + Default Bold + + 58 + 0 + 0 + Are your sure you want to do this? + true + + + 4 + false + 0 + 1 + STOP + false + + + + 29 + + $(pv_name) +$(pv_value) + 559 + + + true + true + -98641ad:138805fb287:-7fe2 + + + + + + 40 + true + 0 + Boolean Button_2 + false + true + + true + true + true + + + + + loc://boolTest + + + + + + + OFF + 0 + Boolean Button + true + false + + Default + + 73 + 0 + 0 + Are your sure you want to do this? + true + + + 2 + true + 0 + 1 + ON + true + + + + 38 + + $(pv_name) +$(pv_value) + 633 + + + true + true + -98641ad:138805fb287:-7fd9 + false + + 31 + Check Box + false + + true + false + false + + loc://boolTest + + + + + + + Check Box + true + false + + Default + + 100 + 0 + + + + + + + 0 + 1 + + + + + 154 + $(pv_name) +$(pv_value) + 850 + + + false + true + false + false + + 25 + false + false + + + + true + Text + Thumb Wheel + + Default + + 116 + 0 + + 1.7976931348623157E308 + 1 + -1.7976931348623157E308 + false + 5ec8b324:13880ba2d91:-6402 + 0.0 + + Text_5 + 0 + + true + true + false + + 0 + false + + + + + 0 + false + + + false + 1 + + + + 241 + + 112 + $(pv_name) +$(pv_value) + + + true + true + + true + + 40 + 0 + true + false + OFF + + + + 0 + true + Boolean Symbol Control + + Default + + 75 + + + 6.123233995736766E-17 + -1.0 + + + 1.0 + 6.123233995736766E-17 + + + 0 + 0 + + false + 0 + 2 + ON + 2 + pictures/SymbolLibrary/SVG/Closing Push-Button Off.svg + 0 + 0 + 5ec8b324:13880ba2d91:-63e6 + 6 + + + + Boolean Symbol Control + false + + true + true + false + + + + + loc://boolTest + + + + false + false + 0 + Are your sure you want to do this? + + + + 9 + + $(pv_name).SIMM + + + 1 + true + 90 + + + + 42 + + 872 + $(pv_name) +$(pv_value) + + + false + true + 5ec8b324:13880ba2d91:-6371 + + 82 + Radio Box + false + + true + true + false + + loc://myChoice + + + + + + + Radio Box + true + false + + Default + + 88 + 0 + + + + + + + Apple + Peach + Cherry + + 1 + false + + + + false + + 148 + $(pv_name) +$(pv_value) + 376 + + + false + true + 5ec8b324:13880ba2d91:-6370 + + 82 + Choice Button + false + + true + true + false + + loc://myChoice + + + + + + + Choice Button + true + false + + Default + + 89 + 0 + + + + + + + Apple + Peach + Cherry + + 1 + false + + + + false + + 148 + $(pv_name) +$(pv_value) + 269 + + + false + true + false + false + + 22 + false + false + + + + true + Text + Scaled Slider + + Default + + 116 + 0 + + 1.7976931348623157E308 + 1 + -1.7976931348623157E308 + false + 5ec8b324:13880ba2d91:-62bb + 0.0 + + Text_6 + 0 + + true + true + false + + 0 + false + + + + + 0 + false + + + false + 1 + + + + 241 + + 679 + $(pv_name) +$(pv_value) + + + false + true + false + false + + 22 + false + false + + + + true + Text + Boolean Switch + + Default + + 102 + 0 + + 1.7976931348623157E308 + 1 + -1.7976931348623157E308 + false + 5ec8b324:13880ba2d91:-62ad + 0.0 + + Text_7 + 0 + + true + true + false + + 0 + false + + + + + 0 + false + + + false + 1 + + + + 241 + + 2 + $(pv_name) +$(pv_value) + + + false + true + false + false + + 22 + false + false + + + + true + Text + Boolean Button + + Default + + 133 + 0 + + 1.7976931348623157E308 + 1 + -1.7976931348623157E308 + false + 5ec8b324:13880ba2d91:-62a3 + 0.0 + + Text_8 + 0 + + true + true + false + + 0 + false + + + + + 0 + false + + + false + 1 + + + + 97 + + 573 + $(pv_name) +$(pv_value) + + + true + true + 5ec8b324:13880ba2d91:-6230 + + false + 0 + + 30 + 0 + Image Boolean Button_5 + false + false + true + + true + true + true + + loc://boolTest + + + + + + + OFF + 0 + Image Boolean Button + true + false + + Default + + 30 + 0 + 0 + Are your sure you want to do this? + + + 2 + true + 0 + 1 + ON + pictures/OffButton.png + + + + 43 + pictures/OnButton.png + + $(pv_name) +$(pv_value) + 761 + + + false + true + false + false + + 25 + false + false + + + + true + Text + Chioce Button + + Default + + 127 + 0 + + 1.7976931348623157E308 + 1 + -1.7976931348623157E308 + false + 5ec8b324:13880ba2d91:-61fc + 0.0 + + Text_11 + 0 + + true + true + false + + 0 + false + + + + + 0 + false + + + false + 1 + + + + 241 + + 245 + $(pv_name) +$(pv_value) + + + false + true + false + false + + 25 + false + false + + + + true + Text + Knob + + Default + + 82 + 0 + + 1.7976931348623157E308 + 1 + -1.7976931348623157E308 + false + 5ec8b324:13880ba2d91:-61e8 + 0.0 + + Text_13 + 0 + + true + true + false + + 0 + false + + + + + 0 + false + + + false + 1 + + + + 241 + + 492 + $(pv_name) +$(pv_value) + + + false + true + false + false + + 23 + false + false + + + + true + Text + Controls + + Header 3 + + 116 + 0 + + 1.7976931348623157E308 + 1 + -1.7976931348623157E308 + false + 5ec8b324:13880ba2d91:-5be4 + 0.0 + + Text_14 + 0 + + true + true + false + + 0 + false + + + + + 0 + false + + + false + 1 + + + + 3 + + 443 + $(pv_name) +$(pv_value) + + + false + true + true + false + + 56 + false + false + + + + true + Text + Image Boolean Button + + Default + + 109 + 0 + + 1.7976931348623157E308 + 1 + -1.7976931348623157E308 + false + 5ec8b324:13880ba2d91:-6224 + 0.0 + + Text_9 + 0 + + true + true + false + + 0 + false + + + + + 0 + false + + + false + 1 + + + + 80 + + 721 + $(pv_name) +$(pv_value) + + + false + true + true + false + + 35 + false + false + + + + true + Text + Boolean Symbol Control + + Default + + 111 + 0 + + 1.7976931348623157E308 + 1 + -1.7976931348623157E308 + false + 5ec8b324:13880ba2d91:-6212 + 0.0 + + Text_10 + 0 + + true + true + false + + 0 + false + + + + + 0 + false + + + false + 1 + + + + 97 + + 860 + $(pv_name) +$(pv_value) + + + false + true + true + false + + 22 + false + false + + + + true + Text + Radio Box + + Default + + 93 + 0 + + 1.7976931348623157E308 + 1 + -1.7976931348623157E308 + false + 5ec8b324:13880ba2d91:-61f2 + 0.0 + + Text_12 + 0 + + true + true + false + + 0 + false + + + + + 0 + false + + + false + 1 + + + + 241 + + 371 + $(pv_name) +$(pv_value) + + + + + + true + + true + 66d1507f:138820a85e5:-6bdb + + 792 + Native Widgets/Others + + true + true + false + + true + true + + + + + + + true + Grouping Container + + Default + + 1022 + 0 + + false + false + 1 + + + + 1 + + 1 + + + + true + + true + 5ec8b324:13880ba2d91:-5447 + + 283 + Grouping Container + + true + true + false + + true + false + + + + + + + true + Grouping Container + + Default + + 1011 + 14 + + false + false + 1 + + + + 11 + + 13 + + + true + true + -98641ad:138805fb287:-7fda + + 27 + Combo + false + + true + false + false + + loc://myChoice + + + + + + + Combo + true + false + + + + 114 + 0 + + + + Apple + Peach + Cherry + + 1 + + + + false + + 45 + $(pv_name) +$(pv_value) + 466 + + + false + true + false + false + + 22 + false + false + + + + true + Text + Action Button + + Default + + 108 + 0 + + 1.7976931348623157E308 + 1 + -1.7976931348623157E308 + false + 5ec8b324:13880ba2d91:-5b12 + 0.0 + + Text_4 + 0 + + true + true + false + + 0 + false + + + + + 0 + false + + + false + 1 + + + + 87 + + 33 + $(pv_name) +$(pv_value) + + + false + true + false + false + + 22 + false + false + + + + true + Text + Combo + + Default + + 102 + 0 + + 1.7976931348623157E308 + 1 + -1.7976931348623157E308 + false + 5ec8b324:13880ba2d91:-5b02 + 0.0 + + Text_1 + 0 + + true + true + false + + 0 + false + + + + + 0 + false + + + false + 1 + + + + 78 + + 472 + $(pv_name) +$(pv_value) + + + false + true + false + false + + 22 + false + false + + + + true + Text + Text Input + + Default + + 80 + 0 + + 1.7976931348623157E308 + 1 + -1.7976931348623157E308 + false + 5ec8b324:13880ba2d91:-5a91 + 0.0 + + Text_2 + 0 + + true + true + false + + 0 + false + + + + + 0 + false + + + false + 1 + + + + 87 + + 262 + $(pv_name) +$(pv_value) + + + true + 5ec8b324:13880ba2d91:-5a5a + + + + sim://noise + sim://ramp + sim://ramp(0,100,1,0.1) + sim://sine(-100,100,100,0.1) + sim://noise(-10, 10, 0.2) + + + 134 + Table + + true + true + false + + + + + + + + true + Table + true + + Default + + 627 + 0 + false + + + + PV Name + 180 + + + Value + 100 + + + Time Stamp + 180 + + + Status + 100 + + + Severity + 60 + + + 1 + + + + 5 + + 118 + I'm +the +tooltip. + 11 + + + true + 5ec8b324:13880ba2d91:-5950 + + 245 + Web Browser + + true + true + false + + + + + + + + true + Web Browser + 350 + 1 + + http://cs-studio.sourceforge.net/ + 1 + + + + true + 7 + + 645 + + + + false + true + false + false + + 22 + false + false + + + + true + Text + Table + + Default + + 80 + 0 + + 1.7976931348623157E308 + 1 + -1.7976931348623157E308 + false + 5ec8b324:13880ba2d91:-5938 + 0.0 + + Text_3 + 0 + + true + true + false + + 0 + false + + + + + 0 + false + + + false + 1 + + + + 254 + + 268 + $(pv_name) +$(pv_value) + + + false + true + false + false + + 22 + false + false + + + + true + Text + Web Browser + + Default + + 179 + 0 + + 1.7976931348623157E308 + 1 + -1.7976931348623157E308 + false + 5ec8b324:13880ba2d91:-5451 + 0.0 + + Text_5 + 0 + + true + true + false + + 0 + false + + + + + 0 + false + + + false + 1 + + + + 254 + + 761 + $(pv_name) +$(pv_value) + + + false + true + false + false + + 23 + false + false + + + + true + Text + Native Widgets + + Header 3 + + 160 + 0 + + 1.7976931348623157E308 + 1 + -1.7976931348623157E308 + false + 5ec8b324:13880ba2d91:-50e1 + 0.0 + + Text_14 + 0 + + true + true + false + + 0 + false + + + + + 0 + false + + + false + 1 + + + + 7 + + 427 + $(pv_name) +$(pv_value) + + + false + true + 5ec8b324:13880ba2d91:-5b34 + + 40 + + Action Button_1 + false + + true + true + false + + + + + + + + + Action Button + true + Click Me! + false + + Default + + 151 + 0 + 0 + pictures/home-16x16.png + + + false + 1 + + + + 29 + + + scripts/Dialog_push.js + + false + + + + $(pv_name) +$(pv_value) + 11 + + + false + false + true + false + true + false + + 24 + false + false + true + + + + true + Text + + + Default + + 108 + 0 + + 1.7976931348623157E308 + 1 + -1.7976931348623157E308 + 0 + true + 5ec8b324:13880ba2d91:-5a96 + + Text Input + 0 + + true + true + false + + loc://t1 + + + + 0 + false + + + false + 1 + + + + 22 + + 248 + $(pv_name) +$(pv_value) + + + false + false + true + false + true + false + + 24 + true + false + true + + + + true + Text + + + Default + + 108 + 0 + + 1.7976931348623157E308 + 1 + -1.7976931348623157E308 + 0 + true + 5ec8b324:13880ba2d91:-5a95 + + Text Input_3 + 0 + + true + true + false + + loc://t2 + + + + 0 + false + + + false + 1 + + + + 55 + + 248 + $(pv_name) +$(pv_value) + + + + + true + + true + 5ec8b324:13880ba2d91:-4ff4 + + 482 + Grouping Container + + true + true + false + + true + false + + + + + + + true + Grouping Container + + Default + + 1011 + 14 + + false + false + 1 + + + + 304 + + 7 + + + true + + true + + true + 5ec8b324:13880ba2d91:-575e + + 110 + true + Array_6 + false + + true + true + false + + loc://$(DID)_array(10,15,20,25,30,35,40,45,50,55,60,70,80,90,95) + true + + + + + + + Array + true + false + + Default + + 311 + 0 + + 50 + + 1 + true + + + + + 244 + $(pv_name) +$(pv_value) + 17 + 17 + + 20.0 + false + true + + + + + + + false + true + + 88 + 50 + false + + + + true + Progress Bar + true + + Default + + 15 + true + 15 + true + + false + true + 100.0 + 1 + false + false + 0.0 + -b1d22ee:13776377550:-7e0c + true + + false + + + + Progress Bar + + false + false + false + + + + + + true + + + + false + false + 80.0 + + Default + + 90.0 + 0.0 + + + + + + + + + true + false + + + + 10.0 + 0 + + 60 + $(pv_name) +$(pv_value) + false + + + + true + + true + + true + 5ec8b324:13880ba2d91:-54fa + + 186 + true + textInputArray + false + + true + true + false + + loc://$(DID)_array(10,15,20,25,30,35,40,45,50,55,60,70,80,90,95) + true + + + + + + + Array + true + false + + Default + + 172 + 0 + + 50 + + 1 + false + + + + + 32 + $(pv_name) +$(pv_value) + 9 + 9 + + false + true + false + false + + 20 + false + true + + + + true + Text Input + + + Default + + 100 + 3 + + 1.7976931348623157E308 + 1 + -1.7976931348623157E308 + true + 307ab5bb:1389aa3731f:-7da4 + 0.0 + + Text Input + 0 + + false + false + false + + 0 + false + + + + + 0 + false + + + false + 0 + + + + 73 + + 11 + $(pv_name) +$(pv_value) + + + + false + true + false + false + + 23 + false + false + + + + true + Text + Others + + Header 3 + + 160 + 0 + + 1.7976931348623157E308 + 1 + -1.7976931348623157E308 + false + 5ec8b324:13880ba2d91:-4edc + 0.0 + + Text_14 + 0 + + true + true + false + + 0 + false + + + + + 0 + false + + + false + 1 + + + + 1 + + 418 + $(pv_name) +$(pv_value) + + + false + true + false + false + + 22 + false + false + + + + true + Text + Array + + Default + + 80 + 0 + + 1.7976931348623157E308 + 1 + -1.7976931348623157E308 + false + 66d1507f:138820a85e5:-3c11 + 0.0 + + Text_15 + 0 + + true + true + false + + 0 + false + + + + + 0 + false + + + false + 1 + + + + 365 + + 124 + $(pv_name) +$(pv_value) + + + 2 + + true + + true + true + true + 307ab5bb:1389aa3731f:-7c00 + + 385 + Sash Container + + true + true + false + + false + 3 + + + + + + + Sash Container + true + + Default + + 597 + 0.26916802610114193 + 5 + + 1 + true + + + + + 32 + + 405 + + + true + + true + e7948:13631faf1e5:-7e3f + + 381 + Panel 1 + + true + true + false + + true + true + + + + + + + true + Grouping Container + + Default + + 158 + 0 + + false + false + 1 + + + + 0 + + 0 + + + false + true + 307ab5bb:1389aa3731f:-7b86 + + 40 + + Action Button_4 + false + + true + true + false + + loc://$(DID)_OPIFile + + + + + + + Action Button + true + $(actions) + false + + Default + + 133 + 0 + 0 + + + + false + 1 + + + + 44 + + + $(pv_name) + 1_1_Start_Up.opi + 10 + + Start Up + + + $(pv_name) +$(pv_value) + 15 + + + false + true + 307ab5bb:1389aa3731f:-7b29 + + 40 + + Action Button + false + + true + true + false + + loc://$(DID)_OPIFile + + + + + + + Action Button + true + $(actions) + false + + Default + + 133 + 0 + 0 + + + + false + 1 + + + + 153 + + + $(pv_name) + widgets/4_6_Array.opi + 10 + + Array + + + $(pv_name) +$(pv_value) + 15 + + + false + true + 307ab5bb:1389aa3731f:-7b28 + + 40 + + Action Button_1 + false + + true + true + false + + loc://$(DID)_OPIFile + + + + + + + Action Button + true + $(actions) + false + + Default + + 133 + 0 + 0 + + + + false + 1 + + + + 98 + + + $(pv_name) + widgets/4_3_TabbedContainer.opi + 10 + + Tabbed Container + + + $(pv_name) +$(pv_value) + 15 + + + + + true + + true + e7948:13631faf1e5:-7e3e + + 381 + Panel 2 + + true + true + false + + true + true + + + + + + + true + Grouping Container + + Default + + 432 + 0 + + false + false + 1 + + + + 0 + + 160 + + + + true + + true + e7948:13631faf1e5:-7bea + false + + true + 381 + Linking Container + + true + true + false + + + + + + + + + + true + Linking Container + + Default + + 432 + 0 + + + + pvStr0 + + loc://$(DID)_OPIFile + + + 1 + + + + 0 + + 0 + + + + + + false + true + false + false + + 22 + false + false + + + + true + Text + Linking Container + + Default + + 183 + 0 + + 1.7976931348623157E308 + 1 + -1.7976931348623157E308 + false + 5ec8b324:13880ba2d91:-561d + 0.0 + + Text_4 + 0 + + true + true + false + + 0 + false + + + + + 0 + false + + + false + 1 + + + + 184 + + 203 + $(pv_name) +$(pv_value) + + + + true + + true + 66d1507f:138820a85e5:-6b39 + false + + true + 144 + Sub Container 0 + + true + true + true + + widgets/1_1_Rectangle_Ellipse.opi + + + + + + + + true + Linking Container + + Default + + 183 + 3 + + 0 + + + + 31 + + 203 + + + + false + true + false + false + + 22 + false + false + + + + true + Text + Sash Container + + Default + + 143 + 0 + + 1.7976931348623157E308 + 1 + -1.7976931348623157E308 + false + 307ab5bb:1389aa3731f:-7280 + 0.0 + + Text_17 + 0 + + true + true + false + + 0 + false + + + + + 0 + false + + + false + 1 + + + + 427 + + 623 + $(pv_name) +$(pv_value) + + + + + + false + true + 5ec8b324:13880ba2d91:-4ead + + 38 + + Action Button + false + + false + false + false + + + + + + + + + Action Button + true + Go Home + false + + Default + + 175 + 0 + 0 + pictures/home-16x16.png + + + false + 1 + + + + 9 + + + ../scripts/goHome.js + + true + + + + $(pv_name) +$(pv_value) + 8 + + + + true + + true + 5ec8b324:13880ba2d91:-4d6d + + 44 + Widgets_Overview.html + + false + false + false + + true + false + + + + + + + true + Grouping Container + + Default + + 185 + 0 + + false + true + 1 + + + + 9 + + + scripts/openHelp.js + + false + Open Help + + + 804 + + + true + 1 + -60e24287:133c6b5d52b:-74e4 + false + + 22 + Label_28 + + true + true + false + + true + false + + + + + + + Label + true + See Online Help + + + + 135 + 0 + + 1 + + + + 1 + + 11 + true + + 41 + + + false + true + 20 + true + 0.0 + -60e24287:133c6b5d52b:-74e3 + 0.0 + + 0 + 1 + true + Polyline + false + 255 + + true + true + true + + + + + + false + + + + + + + + Polyline + true + false + + Default + + 120 + 0 + 0 + + + 1 + 1 + true + + + + + 32 + $(pv_name) +$(pv_value) + 49 + + + 0 + 0 + true + -60e24287:133c6b5d52b:-74e2 + true + + 44 + Image + true + + true + true + false + + + + + + + + Image + true + + Default + + 42 + false + false + + + 1.0 + 0.0 + + + 0.0 + 1.0 + + + 0 + 0 + + false + 0 + 0 + 1 + pictures/onlineHelp.gif + + + + + 0 + + 8 + + + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/2_OPI_Editor_Perspective.opi b/core/base/tools/commander/workspace_template/Displays/BOY Examples/2_OPI_Editor_Perspective.opi new file mode 100644 index 000000000..ba60aecdc --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/BOY Examples/2_OPI_Editor_Perspective.opi @@ -0,0 +1,690 @@ + + + false + + true + + 6d4582ac:1389581a6f9:-7fed + 3.2.18.qualifier + + false + 600 + Perspective + true + false + + + + + + + Display + true + 800 + + true + 6 + + true + -1 + -1 + + + -1 + -1 + + true + 1 + 6d4582ac:1389581a6f9:-7fec + false + + 127 + Label_4 + + true + true + false + + true + false + + + + + + + Label + true + The OPI Editor Perspective could be opened from menu: CSS->Display->OPI Editor Perspective or +Window->Open Perspective->OPI Editor. +There are four views surrounded with the editing area: +1. Navigator: used to organize the fies in the workspace. +2. Outline: provides a synoptic view of the editing OPI. +3. Console: display information such as error, warning or general information to user. +4. Properties Sheet: set properties for selected widget or common properties for multiple selected widgets. + + Default + + 745 + 2 + + 1 + + + + 0 + + 114 + true + + 24 + + + true + 1 + 6d4582ac:1389581a6f9:-7feb + false + + 16 + Label_5 + + true + true + false + + false + false + + + + + + + Label + true + Introduction + + + + 104 + 0 + + 1 + + + + 1 + + 106 + true + $(pv_name) +$(pv_value) + 342 + + + true + 0 + 6d4582ac:1389581a6f9:-7fea + false + + 245 + Label_3 + + true + true + false + + true + false + + + + + + + Label + true + 1. Views can be rearranged by resizing or dragging to another place. + +2. You can close a view and then re-open it from Window->show view. + +2. Perspective can be reset by right clicking the perspective icon and select "reset". + + Default + + 745 + 2 + + 1 + + + + 0 + + 270 + true + + 24 + + + true + 1 + 6d4582ac:1389581a6f9:-7fe9 + false + + 16 + Label_2 + + true + true + false + + false + false + + + + + + + Label + true + Tips + + + + 116 + 0 + + 1 + + + + 1 + + 254 + true + $(pv_name) +$(pv_value) + 342 + + + 0 + 0 + true + 6d4582ac:1389581a6f9:-7fe8 + true + + 151 + Image + false + + true + true + false + + + + + + + + Image + true + + Default + + 224 + false + 0 + 0 + + 0 + 1 + pictures/reset Perspective.png + + + + + 355 + + 44 + + + + true + + true + 6d4582ac:1389581a6f9:-7fe2 + + 44 + OPI_Editor_Perspective.html + + true + true + false + + true + false + + + + + + + Grouping Container + true + + Default + + 185 + 0 + + true + 1 + + + + + + scripts/openHelp.js + + false + Open Help + + + 545 + + 610 + + true + 1 + 6d4582ac:1389581a6f9:-7fe1 + false + + 22 + Label_28 + + true + true + false + + true + false + + + + + + + Label + true + See Online Help + + + + 135 + 0 + + 1 + + + + 1 + + 11 + true + + 41 + + + false + true + 20 + true + 0.0 + 6d4582ac:1389581a6f9:-7fe0 + 0.0 + + 0 + 1 + true + Polyline + false + 255 + + true + true + true + + + + + + false + + + + + + + + Polyline + true + false + + Default + + 120 + 0 + 0 + + + 1 + 1 + true + + + + + 32 + $(pv_name) +$(pv_value) + 49 + + + 0 + 0 + true + 6d4582ac:1389581a6f9:-7fdf + true + + 44 + Image + true + + true + true + false + + + + + + + + Image + true + + Default + + 42 + false + 0 + 0 + + 0 + 1 + pictures/onlineHelp.gif + + + + + 0 + + 8 + + + + false + true + 6d4582ac:1389581a6f9:-7fab + + 38 + Action Button_1 + false + + true + true + false + + + + + + Button + true + Go Home + + Default + + 111 + 0 + 0 + pictures/home-16x16.png + + + false + 1 + + + + 545 + + + main.opi + + true + + 1 + + + + $(pv_name) +$(pv_value) + 24 + + + + true + + true + 6d4582ac:1389581a6f9:-79d4 + + 84 + Grouping Container_3 + + true + true + false + + true + false + + + + + + + Grouping Container + true + + Default + + 765 + 14 + + false + 1 + + + + + 4 + + 11 + + true + true + true + -1.7976931348623157E308 + true + false + 6d4582ac:1389581a6f9:-7ab1 + false + false + + 38 + false + Label_14 + false + 0 + + true + true + false + + true + + + + + + + + true + Text + OPI Editor Perspective + 0 + false + + Header 2 + + 322 + 0 + + + 1.7976931348623157E308 + 1 + false + 1 + + + + 7 + + 43 + + + + false + true + true + -1.7976931348623157E308 + true + false + 6d4582ac:1389581a6f9:-7ab2 + false + false + + 25 + false + Label_13 + false + 0 + + true + true + false + + true + + + + + + + + true + Text + All tools you need for OPI editing in one workbench + 0 + false + + Default Bold + + 406 + 0 + + + 1.7976931348623157E308 + 1 + false + 1 + + + + 50 + + 1 + + + + true + true + true + -1.7976931348623157E308 + true + true + 6d4582ac:1389581a6f9:-7ab3 + false + false + + 68 + Label_12 + false + 0 + + true + true + false + + true + + + + + + + + true + Text + Best OPI Yet (BOY) +Examples + 0 + false + + Header 1 + + 333 + 0 + + + false + 1.7976931348623157E308 + 1 + false + false + 1 + + + + 7 + + false + 415 + + + + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/3_Use_OPI_Editor.opi b/core/base/tools/commander/workspace_template/Displays/BOY Examples/3_Use_OPI_Editor.opi new file mode 100644 index 000000000..e60032460 --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/BOY Examples/3_Use_OPI_Editor.opi @@ -0,0 +1,1049 @@ + + + false + + true + + -60e24287:133c6b5d52b:-75b5 + 3.2.18.qualifier + + true + 600 + Editor + true + false + + + + + + + Display + true + 800 + + true + 6 + + true + -1 + -1 + + + -1 + -1 + + true + 0 + -60e24287:133c6b5d52b:-75b4 + false + + 386 + Label_4 + + true + true + false + + true + false + + + + + + + Label + true + OPI Editor provides most of the functions for a modern graphical editor: select, resize, copy, paste, clone, delete, undo, redo, arrange multiple widgets, snap to grid or other widgets(geometry), ruler, guide, zoom in/out, change order, create group and so on. + +All these functions can be easily access from toolbar or context menu. + + Default + + 745 + 4 + + 1 + + + + 0 + + 117 + true + + 27 + + + true + 1 + -60e24287:133c6b5d52b:-75b3 + false + + 21 + Label_5 + + true + true + false + + false + false + + + + + + + Label + true + Introduction + + + + 95 + 1 + + 1 + + + + 1 + + 101 + true + $(pv_name) +$(pv_value) + 345 + + + false + true + 100.0 + + + + -60e24287:133c6b5d52b:-75b2 + + + + + 52 + true + Rectangle + false + 255 + + true + true + false + + false + + + + + + + + Rectangle + true + + + + false + + Default + + 49 + 0 + 1 + + + 2 + 0 + true + + + + + 246 + $(pv_name) +$(pv_value) + 47 + false + + + false + true + 100.0 + + + + -60e24287:133c6b5d52b:-75b1 + + + + + 52 + true + Rectangle_1 + false + 255 + + true + true + false + + false + + + + + + + + Rectangle + true + + + + false + + Default + + 49 + 0 + 1 + + + 2 + 0 + true + + + + + 275 + $(pv_name) +$(pv_value) + 134 + false + + + false + true + 100.0 + + + + -60e24287:133c6b5d52b:-75b0 + + + + + 52 + true + Rectangle_2 + false + 255 + + true + true + false + + false + + + + + + + + Rectangle + true + + + + false + + Default + + 49 + 0 + 1 + + + 2 + 0 + true + + + + + 246 + $(pv_name) +$(pv_value) + 233 + false + + + false + true + 100.0 + + + + -60e24287:133c6b5d52b:-75af + + + + + 50 + true + Rectangle_3 + false + 255 + + true + true + false + + false + + + + + + + + Rectangle + true + + + + false + + Default + + 152 + 0 + 1 + + + 2 + 0 + true + + + + + 368 + $(pv_name) +$(pv_value) + 181 + false + + + false + true + 100.0 + + + + -60e24287:133c6b5d52b:-75ae + + + + + 50 + true + Rectangle_4 + false + 255 + + true + true + false + + false + + + + + + + + Rectangle + true + + + + false + + Default + + 60 + 0 + 1 + + + 2 + 0 + true + + + + + 247 + $(pv_name) +$(pv_value) + 370 + false + + + false + true + 100.0 + + + + -60e24287:133c6b5d52b:-75ad + + + + + 50 + true + Rectangle_5 + false + 255 + + true + true + false + + false + + + + + + + + Rectangle + true + + + + false + + Default + + 60 + 0 + 1 + + + 2 + 0 + true + + + + + 360 + $(pv_name) +$(pv_value) + 42 + false + + + 0 + 0 + true + -60e24287:133c6b5d52b:-75ac + true + + 28 + Image + false + + true + true + false + + + + + + + + Image + true + + Default + + 484 + false + 0 + 0 + + 0 + 1 + pictures/toobar.png + + + + + 205 + + 36 + + + 0 + 0 + true + -60e24287:133c6b5d52b:-75ab + true + + 248 + Image_1 + false + + true + true + false + + + + + + + + Image + true + + Default + + 264 + false + 0 + 0 + + 0 + 1 + pictures/Context menu.png + + + + + 246 + + 478 + + + true + 1 + -60e24287:133c6b5d52b:-75aa + false + + 86 + Label_2 + + true + true + false + + false + false + + + + + + + Label + true + Use OPI Editor + + + + 295 + 0 + + 1 + + + + 1 + + 12 + true + + 27 + + + true + 1 + -60e24287:133c6b5d52b:-75a9 + false + + 58 + Label + + true + true + false + + true + false + + + + + + + Label + true + Press [.] dot to enable the movement of widgets with the arrow keys. + + + + 253 + 0 + + 1 + + + + 1 + + 428 + true + + 48 + + + true + 1 + -60e24287:133c6b5d52b:-75a8 + false + + 43 + Label_6 + + true + true + false + + false + false + + + + + + + Label + true + Examples + + + + 451 + 0 + + 1 + + + + 1 + + 55 + true + + 321 + + + true + 1 + -60e24287:133c6b5d52b:-75a7 + false + + 44 + Label_5 + + true + true + false + + false + false + + + + + + + Label + true + Best OPI Yet (BOY) + + + + 451 + 0 + + 1 + + + + 1 + + 12 + true + + 321 + + + true + 1 + -60e24287:133c6b5d52b:-75a5 + false + + 18 + Label_9 + + true + true + false + + true + false + + + + + + + Label + true + Yes, it is powerful! + + + + 202 + 0 + + 1 + + + + 1 + + 68 + true + + 74 + + + + true + + true + -60e24287:133c6b5d52b:-75a4 + + 44 + OPI_Editor.html + + true + true + false + + true + false + + + + + + + Grouping Container + true + + Default + + 185 + 0 + + true + 1 + + + + + + scripts/openHelp.js + + false + Open Help + + + 530 + + 587 + + true + 1 + -60e24287:133c6b5d52b:-75a3 + false + + 22 + Label_28 + + true + true + false + + true + false + + + + + + + Label + true + See Online Help + + + + 135 + 0 + + 1 + + + + 1 + + 11 + true + + 41 + + + false + true + 20 + true + 0.0 + -60e24287:133c6b5d52b:-75a2 + 0.0 + + 0 + 1 + true + Polyline + false + 255 + + true + true + true + + + + + + false + + + + + + + + Polyline + true + false + + Default + + 120 + 0 + 0 + + + 1 + 1 + true + + + + + 32 + $(pv_name) +$(pv_value) + 49 + + + 0 + 0 + true + -60e24287:133c6b5d52b:-75a1 + true + + 44 + Image + true + + true + true + false + + + + + + + + Image + true + + Default + + 42 + false + 0 + 0 + + 0 + 1 + pictures/onlineHelp.gif + + + + + 0 + + 8 + + + + false + true + 6d4582ac:1389581a6f9:-7f5f + + 42 + Action Button_1 + false + + true + true + false + + + + + + Button + true + Go Home + + Default + + 108 + 0 + 0 + pictures/home-16x16.png + + + false + 1 + + + + 531 + + + main.opi + + true + + 1 + + + + $(pv_name) +$(pv_value) + 27 + + + true + connection + RIGHT + 15 + 0 + + + + -60e24287:133c6b5d52b:-7587 + LEFT + 0 + true + 1 + connection + 1 + -60e24287:133c6b5d52b:-75b1 + + -60e24287:133c6b5d52b:-75b0 + + + true + connection + RIGHT + 15 + 0 + + + + -60e24287:133c6b5d52b:-759f + BOTTOM + 0 + true + 0 + connection + 1 + -60e24287:133c6b5d52b:-75b0 + + + + + + -60e24287:133c6b5d52b:-75ae + + + true + connection + TOP + 15 + 0 + + + + -60e24287:133c6b5d52b:-7584 + BOTTOM + 0 + true + 1 + connection + 1 + -60e24287:133c6b5d52b:-75af + + -60e24287:133c6b5d52b:-75b0 + + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/4_Actions_1.opi b/core/base/tools/commander/workspace_template/Displays/BOY Examples/4_Actions_1.opi new file mode 100644 index 000000000..bdba48063 --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/BOY Examples/4_Actions_1.opi @@ -0,0 +1,1686 @@ + + + false + + true + + 6de85cb0:133c741370f:-7fd0 + 3.2.18.qualifier + + false + 600 + Actions + true + false + + + + + + + Display + true + 800 + + true + 4 + + true + -1 + -1 + + + -1 + -1 + + true + true + true + -1.7976931348623157E308 + 0 + true + false + 6d4582ac:1389581a6f9:-7dbe + false + false + + 24 + false + Label_24 + false + 0 + + true + true + false + + true + + + + + + + + true + Text + Example1: Open OPI + 0 + false + + + + 138 + 0 + + + + 1.7976931348623157E308 + 1 + false + 1 + + + + 191 + + 151 + $(pv_name) +$(pv_value) + + + true + true + true + -1.7976931348623157E308 + 0 + true + false + 6d4582ac:1389581a6f9:-7dc1 + false + false + + 24 + false + Label_21 + false + 0 + + true + true + false + + true + + + + + + + + true + Text + TIP + 0 + false + + + + 30 + 0 + + + + 1.7976931348623157E308 + 1 + false + 1 + + + + 190 + + 603 + $(pv_name) +$(pv_value) + + + true + true + true + -1.7976931348623157E308 + 0 + true + false + 6d4582ac:1389581a6f9:-7dc3 + false + false + + 24 + false + Label_19 + false + 0 + + true + true + false + + true + + + + + + + + true + Text + Introduction + 0 + false + + + + 85 + 0 + + + + 1.7976931348623157E308 + 1 + false + 1 + + + + 88 + + 333 + $(pv_name) +$(pv_value) + + + false + true + 0.0 + + + + 6de85cb0:133c741370f:-7fcf + + + + + 106 + true + Rectangle_1 + false + 255 + + true + true + false + + true + + + + + + + + Rectangle + true + + + + false + + Default + + 438 + 0 + 0 + + + 1 + 2 + true + + + + + 212 + $(pv_name) +$(pv_value) + 25 + false + + + 0 + 0 + true + 6de85cb0:133c741370f:-7fc9 + true + + 23 + Image + false + + true + true + false + + + + + + + + Image + true + + Default + + 63 + false + false + + + 1.0 + 0.0 + + + 0.0 + 1.0 + + + 0 + 0 + + false + 0 + 0 + 1 + pictures/NavigateHisotry.png + + + + + 450 + + 467 + + + true + 1 + 6de85cb0:133c741370f:-7fc7 + false + + 86 + Label_8 + + true + true + false + + false + false + + + + + + + Label + true + Actions: Open OPI + + + + 295 + 0 + + 1 + + + + 1 + + 6 + true + + 17 + + + true + 1 + 6de85cb0:133c741370f:-7fc5 + false + + 43 + Label_9 + + true + true + false + + false + false + + + + + + + Label + true + Examples + + + + 451 + 0 + + 1 + + + + 1 + + 49 + true + + 311 + + + true + 1 + 6de85cb0:133c741370f:-7fc4 + false + + 44 + Label_10 + + true + true + false + + false + false + + + + + + + Label + true + Best OPI Yet (BOY) + + + + 451 + 0 + + 1 + + + + 1 + + 6 + true + + 311 + + + + true + + true + 6de85cb0:133c741370f:-7fc2 + + 44 + Actions.html + + true + true + false + + true + false + + + + + + + true + Grouping Container + + Default + + 185 + 0 + + true + 1 + + + + 485 + + + scripts/openHelp.js + + false + Open Help + + + 577 + + + true + 1 + 6de85cb0:133c741370f:-7fc1 + false + + 22 + Label_28 + + true + true + false + + true + false + + + + + + + Label + true + See Online Help + + + + 135 + 0 + + 1 + + + + 1 + + 11 + true + + 41 + + + false + true + 20 + true + 0.0 + 6de85cb0:133c741370f:-7fc0 + 0.0 + + 0 + 1 + true + Polyline + false + 255 + + true + true + true + + + + + + false + + + + + + + + Polyline + true + false + + Default + + 120 + 0 + 0 + + + 1 + 1 + true + + + + + 32 + $(pv_name) +$(pv_value) + 49 + + + 0 + 0 + true + 6de85cb0:133c741370f:-7fbf + true + + 44 + Image + true + + true + true + false + + + + + + + + Image + true + + Default + + 42 + false + false + + + 1.0 + 0.0 + + + 0.0 + 1.0 + + + 0 + 0 + + false + 0 + 0 + 1 + pictures/onlineHelp.gif + + + + + 0 + + 8 + + + + false + true + 0.0 + + + + 6de85cb0:133c741370f:-7fbe + + + + + 106 + true + Rectangle_1 + false + 255 + + true + true + false + + true + + + + + + + + Rectangle + true + + + + false + + Default + + 745 + 0 + 0 + + + 1 + 2 + true + + + + + 345 + $(pv_name) +$(pv_value) + 17 + false + + + false + true + 6d4582ac:1389581a6f9:-7ef1 + + 36 + + Action Button_1 + false + + true + true + false + + + + + + + + + Action Button + true + Go Home + false + + Default + + 108 + 0 + 0 + pictures/home-16x16.png + + + false + 1 + + + + 557 + + + main.opi + + true + + 1 + + + + $(pv_name) +$(pv_value) + 17 + + + false + true + 6d4582ac:1389581a6f9:-7eaf + + 37 + + Action Button_11 + false + + true + true + false + + + + + + + + + Action Button + true + Next + false + + Default + + 86 + 0 + 0 + + + + false + 1 + + + + 550 + + + 4_Actions_2.opi + + true + + 1 + + + + $(pv_name) +$(pv_value) + 676 + + + false + true + 6d4582ac:1389581a6f9:-7e6a + + 78 + + Action Button_12 + false + + true + true + false + + + + + + + + + Action Button + true + Open 1_Start_Up.opi +Replace + false + + Default + + 127 + 0 + 0 + + + + false + 1 + + + + 222 + + + 1_1_Start_Up.opi + + true + + 1 + + + + $(pv_name) +$(pv_value) + 34 + + + false + true + 6d4582ac:1389581a6f9:-7e69 + + 44 + + Action Button_13 + false + + true + true + false + + + + + + + + + Action Button + true + Open widgets/1_6_Connection.opi +Open in new Window + false + + Default + + 266 + 0 + 0 + + + + false + 1 + + + + 272 + + + widgets/1_6_Connection.opi + + true + + 2 + + + + $(pv_name) +$(pv_value) + 182 + + + false + true + 6d4582ac:1389581a6f9:-7e68 + + 45 + + Label_17 + false + + true + true + false + + + + + + + + + Action Button + true + Open 2_OPI_Editor_Perspective.opi +Open in new Tab + false + + Default + + 266 + 0 + 0 + + + + false + 1 + + + + 219 + + + 2_OPI_Editor_Perspective.opi + + true + + 0 + + + + $(pv_name) +$(pv_value) + 182 + + + false + true + 6d4582ac:1389581a6f9:-7e67 + + 33 + + Action Button_14 + false + + true + true + false + + + + + + + + + Action Button + true + Open OPI on LEFT + false + + Default + + 147 + 0 + 0 + + + + false + 1 + + + + 363 + + + widgets/1_1_Rectangle_Ellipse.opi + + true + + 0 + + + + $(pv_name) +$(pv_value) + 40 + + + false + true + 6d4582ac:1389581a6f9:-7e66 + + 33 + + Action Button_15 + false + + true + true + false + + + + + + + + + Action Button + true + Open OPI on Right + false + + Default + + 147 + 0 + 0 + + + + false + 1 + + + + 410 + + + widgets/1_3_Label.opi + + true + + 1 + + + + $(pv_name) +$(pv_value) + 40 + + + false + true + 6d4582ac:1389581a6f9:-7e65 + + 33 + + Action Button_16 + false + + true + true + false + + + + + + + + + Action Button + true + Open OPI on Bottom + false + + Default + + 147 + 0 + 0 + + + + false + 1 + + + + 410 + + + widgets/1_5_Polyline_Polygon.opi + + true + + 3 + + + + $(pv_name) +$(pv_value) + 216 + + + false + true + 6d4582ac:1389581a6f9:-7e64 + + 33 + + Action Button_17 + false + + true + true + false + + + + + + + + + Action Button + true + Open OPI on TOP + false + + Default + + 147 + 0 + 0 + + + + false + 1 + + + + 363 + + + widgets/1_4_Arc.opi + + true + + 2 + + + + $(pv_name) +$(pv_value) + 216 + + + false + true + 6d4582ac:1389581a6f9:-7e63 + + 33 + + Action Button_18 + false + + true + true + false + + + + + + + + + Action Button + true + Open OPI as Default View + false + + Default + + 210 + 0 + 0 + + + + false + 1 + + + + 363 + + + widgets/2_2_Text_Update.opi + + true + + 5 + + + + $(pv_name) +$(pv_value) + 394 + + + true + true + true + -1.7976931348623157E308 + 0 + true + false + 6d4582ac:1389581a6f9:-7dbc + false + false + + 16 + false + Label_26 + false + 0 + + true + true + false + + true + + + + + + + + true + Text + TIP + 0 + false + + + + 64 + 0 + + + + 1.7976931348623157E308 + 1 + false + 1 + + + + 454 + + 388 + $(pv_name) +$(pv_value) + + + true + true + true + -1.7976931348623157E308 + 0 + true + false + 6d4582ac:1389581a6f9:-7dbd + false + false + + 16 + false + Label_25 + false + 0 + + true + true + false + + true + + + + + + + + true + Text + TIP + 0 + false + + + + 64 + 0 + + + + 1.7976931348623157E308 + 1 + false + 1 + + + + 454 + + 108 + $(pv_name) +$(pv_value) + + + true + true + true + -1.7976931348623157E308 + 0 + true + false + 6d4582ac:1389581a6f9:-7dbf + false + false + + 20 + false + Label_23 + false + 0 + + true + true + false + + true + + + + + + + + true + Text + Example2: Open OPI in View + 0 + false + + + + 291 + 0 + + + + 1.7976931348623157E308 + 1 + false + 1 + + + + 337 + + 242 + $(pv_name) +$(pv_value) + + + true + true + true + -1.7976931348623157E308 + 0 + true + true + 6d4582ac:1389581a6f9:-7dc2 + false + false + + 79 + Label_20 + false + 0 + + true + true + false + + true + + + + + + + + true + Text + Actions can be attached to any widget so that actions can be executed from that widget. They are configured from the Actions Property. There are several types of actions that can be associated with any type of widget. You may also add customzied action through Eclipse plugin mechanism. + 0 + false + + Default + + 745 + 1 + + + + false + 1.7976931348623157E308 + 1 + false + false + 0 + + + + 113 + + true + 17 + + + + true + true + true + -1.7976931348623157E308 + 0 + true + true + 6d4582ac:1389581a6f9:-7dc0 + false + false + + 106 + Label_22 + false + 0 + + true + true + false + + true + + + + + + + + true + Text + A widget with Open OPI action hooked has context menu: Open, Open in New Tab or Open in New Window. You can also hold the Ctrl/Shift key while clicking on the widget to open the OPI in new Tab/Window. + 0 + false + + Default + + 294 + 1 + + + + false + 1.7976931348623157E308 + 1 + false + false + 0 + + + + 210 + + true + 473 + + + + true + true + true + -1.7976931348623157E308 + 0 + true + true + 6d4582ac:1389581a6f9:-7dbb + false + false + + 78 + Label_27 + false + 0 + + true + true + false + + true + + + + + + + + true + Text + OPI Runtime works like a web browser. You can easily navigate from the browse history by select the navigate button on the toolbar. + 0 + false + + Default + + 272 + 1 + + + + false + 1.7976931348623157E308 + 1 + false + false + 0 + + + + 473 + + true + 294 + + + + true + true + true + -1.7976931348623157E308 + 0 + true + true + 6d4582ac:1389581a6f9:-7dba + false + false + + 69 + Label_28 + false + 0 + + true + true + false + + true + + + + + + + + true + Text + A View can be detached as standalone window floating on top. Right click the view tab and click "Detached" + 0 + false + + Default + + 272 + 1 + + + + false + 1.7976931348623157E308 + 1 + false + false + 0 + + + + 472 + + true + 19 + + + + false + true + 6d4582ac:1389581a6f9:-7cc2 + + 33 + + Action Button_19 + false + + true + true + false + + + + + + + + + Action Button + true + Open OPI as Detached View + false + + Default + + 210 + 0 + 0 + + + + false + 1 + + + + 410 + + + widgets/2_2_Text_Update.opi + + true + + 4 + + + + $(pv_name) +$(pv_value) + 394 + + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/4_Actions_2.opi b/core/base/tools/commander/workspace_template/Displays/BOY Examples/4_Actions_2.opi new file mode 100644 index 000000000..39d1d270d --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/BOY Examples/4_Actions_2.opi @@ -0,0 +1,1974 @@ + + + false + + true + + 6de85cb0:133c741370f:-7f1e + 3.2.18.qualifier + + false + 600 + Actions 2 + true + false + + + + + + + Display + true + 800 + + true + 4 + + true + -1 + -1 + + + -1 + -1 + + false + true + 0.0 + + + + 6de85cb0:133c741370f:-7f1d + + + + + 61 + true + Rectangle_5 + false + 255 + + true + true + false + + true + + + + + + + + Rectangle + true + + + + false + + Default + + 264 + 0 + 0 + + + 1 + 2 + true + + + + + 275 + $(pv_name) +$(pv_value) + 437 + false + + + true + 1 + 6de85cb0:133c741370f:-7f1c + false + + 20 + Label_13 + + true + true + false + + true + false + + + + + + + Label + true + Go to BOY home page + + Default + + 137 + 0 + + 1 + + + + 1 + + + https://sourceforge.net/apps/trac/cs-studio/wiki/BOY + + + + 296 + true + + 500 + + + false + true + 0.0 + + + + 6de85cb0:133c741370f:-7f1b + + + + + 61 + true + Rectangle_3 + false + 255 + + true + true + false + + true + + + + + + + + Rectangle + true + + + + false + + Default + + 264 + 0 + 0 + + + 1 + 2 + true + + + + + 190 + $(pv_name) +$(pv_value) + 437 + false + + + false + true + 0.0 + + + + 6de85cb0:133c741370f:-7f1a + + + + + 61 + true + Rectangle_2 + false + 255 + + true + true + false + + true + + + + + + + + Rectangle + true + + + + false + + Default + + 264 + 0 + 0 + + + 1 + 2 + true + + + + + 113 + $(pv_name) +$(pv_value) + 433 + false + + + false + true + 0.0 + + + + 6de85cb0:133c741370f:-7f19 + + + + + 139 + true + Rectangle_1 + false + 255 + + true + true + false + + true + + + + + + + + Rectangle + true + + + + false + + Default + + 356 + 0 + 0 + + + 1 + 2 + true + + + + + 276 + $(pv_name) +$(pv_value) + 64 + false + + + false + true + 0.0 + + + + 6de85cb0:133c741370f:-7f18 + + + + + 139 + true + Rectangle + false + 255 + + true + true + false + + true + + + + + + + + Rectangle + true + + + + false + + Default + + 356 + 0 + 0 + + + 1 + 2 + true + + + + + 112 + $(pv_name) +$(pv_value) + 64 + false + + + true + 1 + 6de85cb0:133c741370f:-7f17 + false + + 86 + Label_8 + + true + true + false + + false + false + + + + + + + Label + true + Actions: +Write PV, Execute Commad, +Execute Script, Open File + + + + 295 + 0 + + 1 + + + + 1 + + 6 + true + + 17 + + + true + 1 + 6de85cb0:133c741370f:-7f16 + false + + 27 + Label_5 + + true + true + false + + false + false + + + + + + + Label + true + $(actions) + + Default + + 242 + 0 + + 1 + + + + 1 + + + ping 127.0.0.1 + $(user.home) + 10 + + + + 138 + true + + 447 + + + true + 1 + 6de85cb0:133c741370f:-7f15 + false + + 20 + Label_7 + + true + true + false + + false + false + + + + + + + Label + true + Execute Command + + + + 229 + 0 + + 1 + + + + 1 + + 104 + true + $(pv_name) +$(pv_value) + 454 + + + true + 1 + 6de85cb0:133c741370f:-7f14 + false + + 20 + Label_8 + + true + true + false + + false + false + + + + + + + Label + true + Execute JavaScript/PythonScript + + + + 291 + 0 + + 1 + + + + 1 + + 269 + true + $(pv_name) +$(pv_value) + 92 + + + true + 1 + 6de85cb0:133c741370f:-7f13 + false + + 27 + Label_11 + + true + true + false + + false + false + + + + + + + Label + true + Open file with default editor + + Default + + 202 + 0 + + 1 + + + + 1 + + + scripts/ExecuteScriptFromAction.js + + + + 212 + true + + 474 + + + true + 1 + 6de85cb0:133c741370f:-7f12 + false + + 20 + Label_13 + + true + true + false + + false + false + + + + + + + Label + true + Open File + + + + 229 + 0 + + 1 + + + + 1 + + 180 + true + $(pv_name) +$(pv_value) + 454 + + + true + 1 + 6de85cb0:133c741370f:-7f11 + false + + 43 + Label_6 + + true + true + false + + false + false + + + + + + + Label + true + Examples + + + + 451 + 0 + + 1 + + + + 1 + + 49 + true + + 311 + + + true + 1 + 6de85cb0:133c741370f:-7f10 + false + + 44 + Label_15 + + true + true + false + + false + false + + + + + + + Label + true + Best OPI Yet (BOY) + + + + 451 + 0 + + 1 + + + + 1 + + 6 + true + + 311 + + + false + true + 0.0 + + + + 6de85cb0:133c741370f:-7f0b + + + + + 41 + true + myIndicator + false + 255 + + true + true + true + + false + + + + + + + + Ellipse + true + + + + false + + Default + + 41 + 0 + 0 + + + 1 + 0 + true + + + + + 325 + $(pv_name) +$(pv_value) + 305 + false + + + + true + + true + 6de85cb0:133c741370f:-7f0a + + 44 + Actions.html + + true + true + false + + true + false + + + + + + + true + Grouping Container + + Default + + 185 + 0 + + true + 1 + + + + 544 + + + scripts/openHelp.js + + false + Open Help + + + 348 + + + true + 1 + 6de85cb0:133c741370f:-7f09 + false + + 22 + Label_28 + + true + true + false + + true + false + + + + + + + Label + true + See Online Help + + + + 135 + 0 + + 1 + + + + 1 + + 11 + true + + 41 + + + false + true + 20 + true + 0.0 + 6de85cb0:133c741370f:-7f08 + 0.0 + + 0 + 1 + true + Polyline + false + 255 + + true + true + true + + + + + + false + + + + + + + + Polyline + true + false + + Default + + 120 + 0 + 0 + + + 1 + 1 + true + + + + + 32 + $(pv_name) +$(pv_value) + 49 + + + 0 + 0 + true + 6de85cb0:133c741370f:-7f07 + true + + 44 + Image + true + + true + true + false + + + + + + + + Image + true + + Default + + 42 + false + false + + + 1.0 + 0.0 + + + 0.0 + 1.0 + + + 0 + 0 + + false + 0 + 0 + 1 + pictures/onlineHelp.gif + + + + + 0 + + 8 + + + + true + 1 + 6de85cb0:133c741370f:-7f05 + false + + 20 + Label_2 + + true + true + false + + false + false + + + + + + + Label + true + Write PV + + + + 185 + 0 + + 1 + + + + 1 + + 104 + true + $(pv_name) +$(pv_value) + 145 + + + true + true + 1 + true + 6de85cb0:133c741370f:-7f04 + false + 0.0 + + 20 + Text Update + false + + true + true + false + + 0 + true + false + loc://test + + + + + + + Text Update + true + ###### + false + 0 + + + + 100 + 0 + + + 1 + + + + 0 + + 180 + false + $(pv_name) +$(pv_value) + 305 + + + false + true + 0.0 + + + + 6de85cb0:133c741370f:-7f02 + + + + + 61 + true + Rectangle_4 + false + 255 + + true + true + false + + true + + + + + + + + Rectangle + true + + + + false + + Default + + 264 + 0 + 0 + + + 1 + 2 + true + + + + + 433 + $(pv_name) +$(pv_value) + 64 + false + + + false + true + 0.0 + + + + 6de85cb0:133c741370f:-7f01 + + + + + 61 + true + Rectangle_6 + false + 255 + + true + true + false + + true + + + + + + + + Rectangle + true + + + + false + + Default + + 264 + 0 + 0 + + + 1 + 2 + true + + + + + 356 + $(pv_name) +$(pv_value) + 437 + false + + + false + true + 20 + true + 0.0 + 6de85cb0:133c741370f:-7f00 + 0.0 + + 0 + 1 + true + Polyline + false + 255 + + true + true + true + + + + + + false + + + + + + + + Polyline + true + false + + Default + + 125 + 0 + 0 + + + 1 + 1 + true + + + + + 313 + $(pv_name) +$(pv_value) + 506 + + + true + 1 + 6de85cb0:133c741370f:-7eff + false + + 20 + Label_11 + + true + true + false + + false + false + + + + + + + Label + true + Play WAV File + + + + 229 + 0 + + 1 + + + + 1 + + 350 + true + $(pv_name) +$(pv_value) + 454 + + + true + 1 + 6de85cb0:133c741370f:-7efd + false + + 20 + Label_12 + + true + true + false + + false + false + + + + + + + Label + true + Open Webpage + + + + 162 + 0 + + 1 + + + + 1 + + 269 + true + $(pv_name) +$(pv_value) + 488 + + + true + true + 6de85cb0:133c741370f:-7efc + + + loc://actionSrc + + + 31 + Combo + false + + true + false + false + + loc://actionSrc + + + + + + + Combo + true + false + + + + 100 + 0 + + + + Open OPI + Play Sound + + 1 + + + + false + + + 1_1_Start_Up.opi + + true + + 0 + + + + pictures/houston.wav + + + + 450 + $(pv_name) +$(pv_value) + 146 + + + true + 1 + 6de85cb0:133c741370f:-7efb + false + + 20 + Label_9 + + true + true + false + + false + false + + + + + + + Label + true + Execute Action from Script + + + + 229 + 0 + + 1 + + + + 1 + + 426 + true + $(pv_name) +$(pv_value) + 87 + + + false + true + 6d4582ac:1389581a6f9:-7b8e + + 34 + + Action Button_6 + false + + true + true + false + + + + + + + + + Action Button + true + Play WAV file + false + + Default + + 112 + 0 + 0 + + + + false + 1 + + + + 376 + + + pictures/houston.wav + + + + $(pv_name) +$(pv_value) + 513 + + + false + true + 6d4582ac:1389581a6f9:-7b8d + + 33 + + Action Button_7 + false + + true + true + false + + + + + + + + + Action Button + true + Execute Python Script + false + + Default + + 163 + 0 + 0 + + + + false + 1 + + + + 350 + + + scripts/ExecuteScriptFromAction.py + + false + + + + $(pv_name) +$(pv_value) + 128 + + + false + true + 6d4582ac:1389581a6f9:-7b8c + + 33 + + Action Button_8 + false + + true + true + false + + + + + + + + + Action Button + true + Execute JavaScript + false + + Default + + 163 + 0 + 0 + + + + false + 1 + + + + 308 + + + scripts/ExecuteScriptFromAction.js + + false + + + + $(pv_name) +$(pv_value) + 128 + + + false + true + 6d4582ac:1389581a6f9:-7b8b + + 38 + + Action Button_9 + false + + true + true + false + + + + + + + + + Action Button + true + Back + false + + Default + + 108 + 0 + 0 + + + + false + 1 + + + + 550 + + + 4_Actions_1.opi + + true + + 1 + + + + $(pv_name) +$(pv_value) + 688 + + + + true + + true + -6f7a1eb6:13cdf6ad4c4:-2583 + + 30 + Grouping Container + + true + true + false + + false + false + + + + + + + true + Grouping Container + + Default + + 121 + 0 + + true + 1 + + + + 151 + + + loc://test + 10 + 10 + + + + + 128 + + + false + true + 0.0 + + + + -6f7a1eb6:13cdf6ad4c4:-2589 + + + + + 29 + true + 8 + Rounded Rectangle + false + 255 + + true + true + false + + false + + 8 + + + + + + + Rounded Rectangle + true + + + + false + + Default + + 120 + 0 + 0 + + + 1 + 1 + true + + + + + 0 + $(pv_name) +$(pv_value) + 0 + true + + + true + 1 + -6f7a1eb6:13cdf6ad4c4:-2588 + false + + 19 + Label + + true + true + false + + true + false + + + + + + + Label + true + Write 10 + + Default Bold + + 68 + 0 + + 1 + + + + 1 + + 5 + true + + 26 + + + + + true + + true + -6f7a1eb6:13cdf6ad4c4:-253a + + 30 + Grouping Container_1 + + true + true + false + + false + false + + + + + + + true + Grouping Container + + Default + + 121 + 0 + + true + 1 + + + + 190 + + + loc://test + 50 + 10 + + + + + 128 + + + false + true + 0.0 + + + + -6f7a1eb6:13cdf6ad4c4:-2589 + + + + + 29 + true + 8 + Rounded Rectangle + false + 255 + + true + true + false + + false + + 8 + + + + + + + Rounded Rectangle + true + + + + false + + Default + + 120 + 0 + 0 + + + 1 + 1 + true + + + + + 0 + $(pv_name) +$(pv_value) + 0 + true + + + true + 1 + -6f7a1eb6:13cdf6ad4c4:-2588 + false + + 19 + Label + + true + true + false + + true + false + + + + + + + Label + true + Write 50 + + Default Bold + + 68 + 0 + + 1 + + + + 1 + + 5 + true + + 26 + + + + false + true + 6d4582ac:1389581a6f9:-7b8a + + 37 + + Action Button_10 + false + + true + true + false + + + + + + + + + Action Button + true + Go Home + false + + Default + + 112 + 0 + 0 + pictures/home-16x16.png + + + false + 1 + + + + 544 + + + main.opi + + true + + 1 + + + + $(pv_name) +$(pv_value) + 17 + + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/5_1_Rules.opi b/core/base/tools/commander/workspace_template/Displays/BOY Examples/5_1_Rules.opi new file mode 100644 index 000000000..891f6d186 --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/BOY Examples/5_1_Rules.opi @@ -0,0 +1,764 @@ + + + false + + true + + 6cc102d7:13895a319f6:-7d55 + 3.2.18.qualifier + + false + 600 + Script + true + false + + + + + + + Display + true + 800 + + true + 4 + + true + -1 + -1 + + + -1 + -1 + + true + 1 + 6cc102d7:13895a319f6:-7d54 + false + + 128 + Label_8 + + true + true + false + + false + false + + + + + + + Label + true + The Boolean Expression is javascript boolean expression, so all javascript operators are applicable here. Besides, all input PVs of the rule are also accessible in the expression. + +Get double value: pv{index}. For example: pv0 > pv1 +Get String value: pvStr{index}. For example: pvStr0 == "apple" +Get Severity: pvSev{index}. It is an integer value, in which: 0: OK; -1: Invalid; 1: Major; 2:Minor. For example: pvSev0 == 1 || pvSev0 ==2 + + Default + + 745 + 1 + + 1 + + + + 0 + + 267 + true + + 17 + + + true + 1 + 6cc102d7:13895a319f6:-7d53 + false + + 110 + Label_5 + + true + true + false + + false + false + + + + + + + Label + true + Besides outputing a constant value to the property based on the boolean expression value, you can also output an expression value to the property. For example, if you want make the String value of a PV as the URL of a web browser widget, you can set the output expression to pvStr0. If you want to skip the boolean expression, simply set boolean expression to true. + + Default + + 745 + 1 + + 1 + + + + 0 + + 416 + true + + 17 + + + true + 1 + 6cc102d7:13895a319f6:-7d52 + false + + 149 + Label_4 + + true + true + false + + false + false + + + + + + + Label + true + To obtain customized dynamic hehaviors than just setting from properties sheet, you can attach rules or scripts to widgets or OPI. With rules, you can make widget properties dynamically changeable without any programming. Widget property value will change along with the boolean expression status or input PV value. The execution of a rule is triggered by its input PV(s), so at least one trigger PV is needed for a rule. + +Steps to attach scripts to a widget: +Step1. Select Rules property in property sheet view. You will see "Attache Rules" dialog. +Step2. In Attach Rules Dialog, you can add more than one rule. +Step3. Run OPI to see the result. + + Default + + 745 + 1 + + 1 + + + + 0 + + 99 + true + + 17 + + + true + 1 + 6cc102d7:13895a319f6:-7d51 + false + + 15 + Label_5 + + true + true + false + + false + false + + + + + + + Label + true + Introduction + + + + 68 + 0 + + 1 + + + + 1 + + 91 + true + $(pv_name) +$(pv_value) + 333 + + + true + 1 + 6cc102d7:13895a319f6:-7d50 + false + + 86 + Label_8 + + true + true + false + + false + false + + + + + + + Label + true + Rules + + + + 295 + 0 + + 1 + + + + 1 + + 6 + true + + 17 + + + true + 1 + 6cc102d7:13895a319f6:-7d4e + false + + 22 + Label_5 + + true + true + false + + false + false + + + + + + + Label + true + Boolean Expression + + + + 186 + 0 + + 1 + + + + 1 + + 258 + true + $(pv_name) +$(pv_value) + 297 + + + true + 1 + 6cc102d7:13895a319f6:-7d4d + false + + 43 + Label_6 + + true + true + false + + false + false + + + + + + + Label + true + Examples + + + + 451 + 0 + + 1 + + + + 1 + + 49 + true + + 311 + + + true + 1 + 6cc102d7:13895a319f6:-7d4c + false + + 44 + Label_9 + + true + true + false + + false + false + + + + + + + Label + true + Best OPI Yet (BOY) + + + + 451 + 0 + + 1 + + + + 1 + + 6 + true + + 311 + + + true + 1 + 6cc102d7:13895a319f6:-7d4b + true + + 19 + Label_9 + + true + true + false + + true + false + + + + + + + Label + true + The simple way to make properties dynamic + + + + 311 + 0 + + 1 + + + + 1 + + 62 + true + + 30 + + + true + 1 + 6cc102d7:13895a319f6:-7d49 + false + + 22 + Label_9 + + true + true + false + + false + false + + + + + + + Label + true + Output Expression + + + + 186 + 0 + + 1 + + + + 1 + + 405 + true + $(pv_name) +$(pv_value) + 297 + + + + true + + true + 6cc102d7:13895a319f6:-7d48 + + 44 + Rules.html + + true + true + false + + true + false + + + + + + + true + Grouping Container + + Default + + 185 + 0 + + true + 1 + + + + 548 + + + scripts/openHelp.js + + false + Open Help + + + 291 + + + true + 1 + 6cc102d7:13895a319f6:-7d47 + false + + 22 + Label_28 + + true + true + false + + true + false + + + + + + + Label + true + See Online Help + + + + 135 + 0 + + 1 + + + + 1 + + 11 + true + + 41 + + + false + true + 20 + true + 0.0 + 6cc102d7:13895a319f6:-7d46 + 0.0 + + 0 + 1 + true + Polyline + false + 255 + + true + true + true + + + + + + false + + + + + + + + Polyline + true + false + + Default + + 120 + 0 + 0 + + + 1 + 1 + true + + + + + 32 + $(pv_name) +$(pv_value) + 49 + + + 0 + 0 + true + 6cc102d7:13895a319f6:-7d45 + true + + 44 + Image + true + + true + true + false + + + + + + + + Image + true + + Default + + 42 + false + false + + + 1.0 + 0.0 + + + 0.0 + 1.0 + + + 0 + 0 + + false + 0 + 0 + 1 + pictures/onlineHelp.gif + + + + + 0 + + 8 + + + + false + true + 6cc102d7:13895a319f6:-7d37 + + 37 + + Action Button_10 + false + + true + true + false + + + + + + + + + Action Button + true + Go Home + false + + Default + + 112 + 0 + 0 + pictures/home-16x16.png + + + false + 1 + + + + 551 + + + main.opi + + true + + 1 + + + + $(pv_name) +$(pv_value) + 17 + + + false + true + 6cc102d7:13895a319f6:-7cfd + + 28 + + Action Button_11 + false + + true + true + false + + + + + + + + + Action Button + true + Next + false + + + + 79 + 0 + 0 + + + + false + 1 + + + + 556 + + + 5_2_Script.opi + + true + + 1 + + + + $(pv_name) +$(pv_value) + 676 + + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/5_2_Script.opi b/core/base/tools/commander/workspace_template/Displays/BOY Examples/5_2_Script.opi new file mode 100644 index 000000000..941063a15 --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/BOY Examples/5_2_Script.opi @@ -0,0 +1,1233 @@ + + + false + + true + + 6cc102d7:13895a319f6:-7cbf + 3.2.18.qualifier + + false + 800 + Script + true + false + + + + + + + Display + true + 800 + + true + 4 + + true + -1 + -1 + + + -1 + -1 + + true + 0 + 6cc102d7:13895a319f6:-7cbe + false + + 419 + Label_5 + + true + true + false + + false + false + + + + + + + Label + true + The most common things in the script would be read the PV value and set the properties of the widget. +1. read PV value. + + + + + +The PV inputs could be accessed as "pvs" in the script. + +2. set Widget Properties + + + + +The widget to which the script is attached can be accessed via "widget". +The property could be set by setPropertyValue(prop_id, value) function. In most cases, prop_id follows this convention to the name: +1). lower case of all characters +2). replace space to underscore +For Example: foreground_color, background_color, enabled + +3. Get widget by name +You can also get any widget from the object "display" by name. For example: + + Default + + 773 + 1 + + 1 + + + + 0 + + 272 + true + + 17 + + + true + 1 + 6cc102d7:13895a319f6:-7cbd + false + + 160 + Label_4 + + true + true + false + + false + false + + + + + + + Label + true + For complex dynamic behaviors which cannot be obtained from rules,you can attach one or more scripts to widgets or OPI. The script can be either JavaScript or Python script. You can set PVs as input and change properties of widgets in the script. The script execution is triggered by input PVs. That means the change of PV value will trigger the execution of script. In script, the value or severity of the input PVs are accessible. +Besides, all Java APIs are accessible in script by importing the package of java.lang. + +Steps to attach scripts to a widget: +Step1. Select "Scripts" property in the property sheet view. +Step2. In the "Attach Scripts" Dialog, you can add more than one script. For each script, you can specify more than PV as the input. +Step3. Run OPI to see the result. + + Default + + 773 + 1 + + 1 + + + + 0 + + 99 + true + + 17 + + + true + 1 + 6cc102d7:13895a319f6:-7cbc + false + + 15 + Label_5 + + true + true + false + + false + false + + + + + + + Label + true + Introduction + + + + 68 + 0 + + 1 + + + + 1 + + 91 + true + $(pv_name) +$(pv_value) + 333 + + + true + 1 + 6cc102d7:13895a319f6:-7cbb + false + + 86 + Label_8 + + true + true + false + + false + false + + + + + + + Label + true + Scripts + + + + 295 + 0 + + 1 + + + + 1 + + 6 + true + + 17 + + + true + 1 + 6cc102d7:13895a319f6:-7cb9 + false + + 15 + Label_5 + + true + true + false + + false + false + + + + + + + Label + true + Access PVs and Widget in script + + + + 232 + 0 + + 1 + + + + 1 + + 258 + true + $(pv_name) +$(pv_value) + 264 + + + true + 1 + 6cc102d7:13895a319f6:-7cb8 + false + + 62 + Label + + true + true + false + + false + false + + + + + + + Label + true + importPackage(Packages.org.csstudio.opibuilder.scriptUtil); +var value0 = PVUtil.getDouble(pvs[0]); +var value1 = PVUtil.getDouble(pvs[1]); + + Default + + 346 + 0 + + 1 + + + + 1 + + 310 + true + + 29 + + + true + 1 + 6cc102d7:13895a319f6:-7cb7 + false + + 42 + Label_7 + + true + true + false + + false + false + + + + + + + Label + true + importPackage(Packages.org.csstudio.opibuilder.scriptUtil); +widget.setPropertyValue("foreground_color", ColorFontUtil.RED); + + Default + + 367 + 0 + + 1 + + + + 1 + + 431 + true + + 18 + + + true + 1 + 6cc102d7:13895a319f6:-7cb6 + false + + 43 + Label_6 + + true + true + false + + false + false + + + + + + + Label + true + Examples + + + + 479 + 0 + + 1 + + + + 1 + + 49 + true + + 311 + + + true + 1 + 6cc102d7:13895a319f6:-7cb5 + false + + 44 + Label_9 + + true + true + false + + false + false + + + + + + + Label + true + Best OPI Yet (BOY) + + + + 479 + 0 + + 1 + + + + 1 + + 6 + true + + 311 + + + true + 1 + 6cc102d7:13895a319f6:-7cb4 + true + + 19 + Label_9 + + true + true + false + + true + false + + + + + + + Label + true + Maximize the flexibility of OPI + + + + 208 + 0 + + 1 + + + + 1 + + 62 + true + + 80 + + + true + 1 + 6cc102d7:13895a319f6:-7cb1 + false + + 61 + Label_10 + + true + true + false + + false + false + + + + + + + Label + true + importPackage(Packages.org.csstudio.opibuilder.scriptUtil); +display.getWidget("myLabel").setPropertyValue( + "foreground_color", ColorFontUtil.RED); + + Default + + 356 + 0 + + 1 + + + + 1 + + 617 + true + + 24 + + + true + 1 + 6cc102d7:13895a319f6:-7cb0 + false + + 62 + Label_11 + + true + true + false + + false + false + + + + + + + Label + true + from org.csstudio.opibuilder.scriptUtil import PVUtil +value0 = PVUtil.getDouble(pvs[0]) +value1 = PVUtil.getDouble(pvs[1]) + + Default + + 346 + 0 + + 1 + + + + 1 + + 310 + true + + 409 + + + true + 1 + 6cc102d7:13895a319f6:-7caf + false + + 15 + Label_12 + + true + true + false + + false + false + + + + + + + Label + true + Javascript + + + + 83 + 0 + + 1 + + + + 1 + + 304 + true + $(pv_name) +$(pv_value) + 160 + + + true + 1 + 6cc102d7:13895a319f6:-7cae + false + + 15 + Label_13 + + true + true + false + + false + false + + + + + + + Label + true + Python script + + + + 83 + 0 + + 1 + + + + 1 + + 304 + true + $(pv_name) +$(pv_value) + 540 + + + true + 1 + 6cc102d7:13895a319f6:-7cad + false + + 15 + Label_14 + + true + true + false + + false + false + + + + + + + Label + true + Javascript + + + + 83 + 0 + + 1 + + + + 1 + + 424 + true + $(pv_name) +$(pv_value) + 160 + + + true + 1 + 6cc102d7:13895a319f6:-7cac + false + + 42 + Label_15 + + true + true + false + + false + false + + + + + + + Label + true + from org.csstudio.opibuilder.scriptUtil import ColorFontUtil +widget.setPropertyValue("foreground_color", ColorFontUtil.RED) + + Default + + 367 + 0 + + 1 + + + + 1 + + 431 + true + + 398 + + + true + 1 + 6cc102d7:13895a319f6:-7cab + false + + 15 + Label_16 + + true + true + false + + false + false + + + + + + + Label + true + Python script + + + + 83 + 0 + + 1 + + + + 1 + + 424 + true + $(pv_name) +$(pv_value) + 540 + + + true + 1 + 6cc102d7:13895a319f6:-7caa + false + + 15 + Label_17 + + true + true + false + + false + false + + + + + + + Label + true + Javascript + + + + 83 + 0 + + 1 + + + + 1 + + 611 + true + $(pv_name) +$(pv_value) + 160 + + + true + 1 + 6cc102d7:13895a319f6:-7ca9 + false + + 61 + Label_18 + + true + true + false + + false + false + + + + + + + Label + true + from org.csstudio.opibuilder.scriptUtil import ColorFontUtil +display.getWidget("myLabel").setPropertyValue( + "foreground_color", ColorFontUtil.RED) + + Default + + 356 + 0 + + 1 + + + + 1 + + 616 + true + + 404 + + + true + 1 + 6cc102d7:13895a319f6:-7ca8 + false + + 15 + Label_19 + + true + true + false + + false + false + + + + + + + Label + true + Python script + + + + 83 + 0 + + 1 + + + + 1 + + 611 + true + $(pv_name) +$(pv_value) + 540 + + + + true + + true + 6cc102d7:13895a319f6:-7ca7 + + 44 + Script.html + + true + true + false + + true + false + + + + + + + Grouping Container + true + + Default + + 185 + 0 + + true + 1 + + + + + + scripts/openHelp.js + + false + Open Help + + + 699 + + 287 + + true + 1 + 6cc102d7:13895a319f6:-7ca6 + false + + 22 + Label_28 + + true + true + false + + true + false + + + + + + + Label + true + See Online Help + + + + 135 + 0 + + 1 + + + + 1 + + 11 + true + + 41 + + + false + true + 20 + true + 0.0 + 6cc102d7:13895a319f6:-7ca5 + 0.0 + + 0 + 1 + true + Polyline + false + 255 + + true + true + true + + + + + + false + + + + + + + + Polyline + true + false + + Default + + 120 + 0 + 0 + + + 1 + 1 + true + + + + + 32 + $(pv_name) +$(pv_value) + 49 + + + 0 + 0 + true + 6cc102d7:13895a319f6:-7ca4 + true + + 44 + Image + true + + true + true + false + + + + + + + + Image + true + + Default + + 42 + false + 0 + 0 + + 0 + 1 + pictures/onlineHelp.gif + + + + + 0 + + 8 + + + + false + true + 6cc102d7:13895a319f6:-7c94 + + 37 + Action Button_10 + false + + true + true + false + + + + + + Button + true + Go Home + + Default + + 112 + 0 + 0 + pictures/home-16x16.png + + + false + 1 + + + + 726 + + + main.opi + + true + + 1 + + + + $(pv_name) +$(pv_value) + 18 + + + false + true + 6cc102d7:13895a319f6:-7c56 + + 28 + Action Button_11 + false + + true + true + false + + + + + + Button + true + Back + + Default + + 79 + 0 + 0 + + + + false + 1 + + + + 731 + + + 5_1_Rules.opi + + true + + 1 + + + + $(pv_name) +$(pv_value) + 578 + + + false + true + 6cc102d7:13895a319f6:-7c1c + + 28 + Action Button_12 + false + + true + true + false + + + + + + Button + true + Next + + Default + + 79 + 0 + 0 + + + + false + 1 + + + + 731 + + + 5_3_Rules_Script.opi + + true + + 1 + + + + $(pv_name) +$(pv_value) + 681 + + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/5_3_Rules_Script.opi b/core/base/tools/commander/workspace_template/Displays/BOY Examples/5_3_Rules_Script.opi new file mode 100644 index 000000000..360d8f860 --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/BOY Examples/5_3_Rules_Script.opi @@ -0,0 +1,1415 @@ + + + false + + true + + 6cc102d7:13895a319f6:-7c13 + 3.2.18.qualifier + + false + 600 + Script + false + false + + + + + + + Display + true + 800 + + true + 4 + + true + -1 + -1 + + + -1 + -1 + + 20.0 + true + true + + + + true + + + + + + + + 159 + 50 + false + + + + true + Knob + 1.0 + true + + Default + + 157 + true + 0 + true + + true + true + 100.0 + 1 + false + 0.0 + 6cc102d7:13895a319f6:-7c0e + true + + true + + + + Knob_2 + + true + true + true + + loc://knob1 + + + + + + + false + 80.0 + + Default + + 90.0 + true + + + + + + true + true + false + + + + 10.0 + 147 + + 597 + $(pv_name) + + + 20.0 + true + true + + + + true + + + loc://knob0 + + + + + + + + + 159 + 50 + false + + + + true + Knob + 1.0 + true + + Default + + 155 + true + 0 + true + + true + true + 100.0 + 1 + false + 0.0 + 6cc102d7:13895a319f6:-7c0d + true + + true + + + + Knob_0 + + true + true + true + + loc://knob0 + + + + + + + false + 80.0 + + Default + + 90.0 + true + + + + + + true + true + false + + + + 10.0 + 147 + + 443 + $(pv_name) + + + false + true + 0.0 + + + + 6cc102d7:13895a319f6:-7c0a + + + + + + sim://sine(0,20,100,0.1) + + + 100 + true + Ellipse + false + 255 + + true + true + true + + false + sim://sine(0,20,100,0.1) + + + + + + + Ellipse + true + + + + true + + Default + + 100 + 0 + 0 + + + 1 + 0 + true + + + + + 400 + $(pv_name) +$(pv_value) + 300 + false + + + false + true + 20 + true + 0.0 + 6cc102d7:13895a319f6:-7c03 + 0.0 + + 2 + 22 + true + Polyline + false + 255 + + true + true + true + + + + + + false + + + + + + + + Polyline + true + false + + Default + + 77 + 0 + 0 + + + 1 + 1 + true + + + + + 101 + $(pv_name) +$(pv_value) + 443 + + + false + true + 20 + true + 0.0 + 6cc102d7:13895a319f6:-7c01 + 0.0 + + 2 + 48 + true + Polyline_1 + false + 255 + + true + true + true + + + + + + false + + + + + + + + Polyline + true + false + + Default + + 71 + 0 + 0 + + + 1 + 1 + true + + + + + 235 + $(pv_name) +$(pv_value) + 391 + + + false + true + 6cc102d7:13895a319f6:-7bfe + + 27 + Combo + false + + true + false + false + + loc://blinkingEnable + + + + + + + Combo + true + false + + + + 100 + 0 + + + + Slow + Fast + No Blinking + + 1 + + + + false + + 429 + $(pv_name) +$(pv_value) + 528 + + + false + true + 6cc102d7:13895a319f6:-7beb + + 37 + + Action Button_10 + false + + true + true + false + + + + + + + + + Action Button + true + Go Home + false + + Default + + 95 + 0 + 0 + pictures/home-16x16.png + + + false + 1 + + + + 547 + + + main.opi + + true + + 1 + + + + $(pv_name) +$(pv_value) + 12 + + + true + true + true + -1.7976931348623157E308 + 0 + true + true + 6cc102d7:13895a319f6:-7b99 + false + false + + 20 + Text Update_1 + false + 0 + + true + true + false + + true + loc://blinkingEnable + + + + + + + true + Text + ###### + 0 + false + + + + 100 + 0 + + + + + + + + + + + + + + + + + + + sim://ramp(0,1,1,0.5) + sim://ramp(0,1,1,0.1) + loc://blinkingEnable + + + + false + 1.7976931348623157E308 + 1 + false + false + 0 + + + + 431 + + false + 638 + $(pv_name) +$(pv_value) + + + true + true + true + -1.7976931348623157E308 + 0 + true + true + 6cc102d7:13895a319f6:-7ba1 + false + false + + 72 + Label_18 + false + 0 + + true + true + false + + true + + + + + + + + true + Text + 1. Adjust the knobs to see who will win. +2. Adjust the left knob to see a warning dialog when value exceeds 80. + 0 + false + + Default + + 323 + 1 + + + + false + 1.7976931348623157E308 + 1 + false + false + 0 + + + + 147 + + true + 37 + + + + true + true + true + -1.7976931348623157E308 + 0 + true + true + 6cc102d7:13895a319f6:-7ba0 + false + false + + 62 + Label_19 + false + 0 + + true + true + false + + true + + + + + + + + true + Text + Background Color Sensitive will make its background color chang along with PV's severity. In this case, no rule or script is needed. Similar with Border Color Alarm Sensitive, Foreground Color Alarm Sensitive. + 0 + false + + Default + + 515 + 1 + + + + false + 1.7976931348623157E308 + 1 + false + false + 0 + + + + 534 + + true + 124 + + + + false + true + true + -1.7976931348623157E308 + 0 + true + true + 6cc102d7:13895a319f6:-7b9f + false + true + + 17 + Label_20 + false + 0 + + true + true + false + + true + + + + + + + + true + Text + Example1: Compare value + 0 + false + + Default Bold + + 199 + 0 + + + + false + 1.7976931348623157E308 + 1 + false + false + 0 + + + + 128 + + true + 75 + $(pv_name) +$(pv_value) + + + false + true + true + -1.7976931348623157E308 + 0 + true + true + 6cc102d7:13895a319f6:-7b9e + false + true + + 17 + Label_21 + false + 0 + + true + true + false + + true + + + + + + + + true + Text + Example2: Change size and location with script + 0 + false + + Default Bold + + 360 + 0 + + + + false + 1.7976931348623157E308 + 1 + false + false + 0 + + + + 369 + + true + 135 + $(pv_name) +$(pv_value) + + + true + true + true + -1.7976931348623157E308 + 0 + true + true + 6cc102d7:13895a319f6:-7b9d + false + true + + 19 + Label_22 + false + 0 + + true + true + false + + true + + + + + + + + true + Text + Use Script to pop up warning dialog + 0 + false + + Default + + 234 + 1 + + + + false + 1.7976931348623157E308 + 1 + false + false + 0 + + + + 283 + + true + 141 + + + + true + true + true + -1.7976931348623157E308 + 0 + true + true + 6cc102d7:13895a319f6:-7b9b + false + true + + 19 + Label_24 + false + 0 + + true + true + false + + true + + + + + + + + true + Text + Use Rules to change text and color + 0 + false + + Default + + 229 + 1 + + + + false + 1.7976931348623157E308 + 1 + false + false + 0 + + + + 92 + + true + 210 + + + + false + true + true + -1.7976931348623157E308 + 0 + true + true + 6cc102d7:13895a319f6:-7b9c + false + true + + 17 + Label_23 + false + 0 + + true + true + false + + true + + + + + + + + true + Text + Example3: Blinking + 0 + false + + Default Bold + + 147 + 0 + + + + false + 1.7976931348623157E308 + 1 + false + false + 1 + + + + 381 + + true + 568 + $(pv_name) +$(pv_value) + + + false + true + true + -1.7976931348623157E308 + 0 + true + true + 6cc102d7:13895a319f6:-7b9a + false + true + + 17 + Label_25 + false + 0 + + true + true + false + + true + + + + + + + + true + Text + result + 0 + false + + Default Bold + + 45 + 0 + + + + + Draw! + + + Left Win! + + + Right Win! + + loc://knob0 + loc://knob1 + + + + + + + + + + + + + + + + + + loc://knob0 + loc://knob1 + + + + false + 1.7976931348623157E308 + 1 + false + false + 1 + + + + 128 + + true + 512 + + + + false + true + 6cc102d7:13895a319f6:-7808 + + 28 + + Action Button_11 + false + + true + true + false + + + + + + + + + Action Button + true + Next + false + + Default + + 65 + 0 + 0 + + + + false + 1 + + + + 558 + + + 5_4_Python_Script.opi + + true + + 1 + + + + File IO Example + 727 + + + false + true + 6cc102d7:13895a319f6:-7807 + + 28 + + Action Button_12 + false + + true + true + false + + + + + + + + + Action Button + true + Back + false + + Default + + 65 + 0 + 0 + + + + false + 1 + + + + 558 + + + 5_2_Script.opi + + true + + 1 + + + + $(pv_name) +$(pv_value) + 648 + + + + true + + true + 6cc102d7:13895a319f6:-776c + + 84 + Grouping Container_3 + + true + true + false + + true + false + + + + + + + true + Grouping Container + + Default + + 765 + 14 + + false + 1 + + + + 6 + + 9 + + + true + true + true + -1.7976931348623157E308 + 0 + true + false + 6d4582ac:1389581a6f9:-7ab1 + false + false + + 38 + false + Label_14 + false + 0 + + true + true + false + + true + + + + + + + + true + Text + Rules & Javascripts + 0 + false + + Header 2 + + 322 + 0 + + + + 1.7976931348623157E308 + 1 + false + 1 + + + + 7 + + 43 + + + + false + true + true + -1.7976931348623157E308 + 0 + true + false + 6d4582ac:1389581a6f9:-7ab2 + false + false + + 25 + false + Label_13 + false + 0 + + true + true + false + + true + + + + + + + + true + Text + Intelligentize your OPI + 0 + false + + Default Bold + + 406 + 0 + + + + 1.7976931348623157E308 + 1 + false + 1 + + + + 50 + + 1 + + + + true + true + true + -1.7976931348623157E308 + 0 + true + false + 6cc102d7:13895a319f6:-766f + false + false + + 33 + false + Label_14 + false + 0 + + true + true + false + + true + + + + + + + + true + Text + Examples + 0 + false + + Header 1 + + 306 + 0 + + + + 1.7976931348623157E308 + 1 + false + 1 + + + + 42 + + 437 + + + + true + true + true + -1.7976931348623157E308 + 0 + true + false + 6cc102d7:13895a319f6:-766e + false + false + + 33 + false + Label_12 + false + 0 + + true + true + false + + true + + + + + + + + true + Text + Best OPI Yet (BOY) + 0 + false + + Header 1 + + 306 + 0 + + + + 1.7976931348623157E308 + 1 + false + 1 + + + + 7 + + 437 + + + + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/5_4_Python_Script.opi b/core/base/tools/commander/workspace_template/Displays/BOY Examples/5_4_Python_Script.opi new file mode 100644 index 000000000..5c311f592 --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/BOY Examples/5_4_Python_Script.opi @@ -0,0 +1,1398 @@ + + + false + + true + + 6cc102d7:13895a319f6:-771e + 3.2.18.qualifier + + false + 600 + Script + true + false + + + + + + + Display + true + 800 + + true + 4 + + true + -1 + -1 + + + -1 + -1 + + 20.0 + true + true + + + + true + + + loc://knob0 + loc://tempLimit(80) + + + + + + + + + 191 + 50 + false + + + + true + Knob + 1.0 + true + + Default + + 191 + true + 0 + true + + true + true + 100.0 + 1 + false + 0.0 + 6cc102d7:13895a319f6:-7717 + true + + true + + + + Knob_0 + + true + true + true + + loc://knob0 + + + + + + + false + 80.0 + + Default + + 90.0 + true + + + + + + true + true + false + + + + 10.0 + 174 + + 471 + $(pv_name) + + + true + 1 + 6cc102d7:13895a319f6:-7716 + false + + 30 + myLabel + + true + true + false + + true + false + + + + + + + Label + true + + + + + 251 + 0 + + 1 + + + + 1 + + 339 + true + + 441 + + + false + true + 20 + true + 0.0 + 6cc102d7:13895a319f6:-7712 + 0.0 + + 2 + 1 + true + Polyline + false + 255 + + true + true + true + + + + + + false + + + + + + + + Polyline + true + false + + Default + + 86 + 0 + 0 + + + 1 + 1 + true + + + + + 347 + $(pv_name) +$(pv_value) + 359 + + + false + true + 20 + true + 0.0 + 6cc102d7:13895a319f6:-7710 + 0.0 + + 2 + 1 + true + Polyline_1 + false + 255 + + true + true + true + + + + + + false + + + + + + + + Polyline + true + false + + Default + + 113 + 0 + 0 + + + 1 + 1 + true + + + + + 287 + $(pv_name) +$(pv_value) + 359 + + + false + true + 0.0 + + + + 6cc102d7:13895a319f6:-770e + + + + + + sim://sine(0,20,100,0.1) + + + 100 + true + Ellipse + false + 255 + + true + true + true + + false + sim://sine(0,20,100,0.1) + + + + + + + Ellipse + true + + + + true + + Default + + 100 + 0 + 0 + + + 1 + 0 + true + + + + + 392 + $(pv_name) +$(pv_value) + 212 + false + + + false + true + 0 + false + false + + 20 + false + false + + + + Text Input + true + + + Default + + 92 + 3 + + 1 + 1.7976931348623157E308 + -1.7976931348623157E308 + false + 6cc102d7:13895a319f6:-770c + 0.0 + Text Input + + true + true + false + + 1 + false + 0 + loc://tempLimit(80) + + + + false + 0 + + + false + + + + 0 + + 235 + $(pv_name) +$(pv_value) + 268 + + + + true + + true + 6cc102d7:13895a319f6:-770a + + 44 + script/Python.html + + true + true + false + + true + false + + + + + + + true + Grouping Container + + Default + + 185 + 0 + + true + 1 + + + + 125 + + + scripts/openHelp.js + + false + Open Help + + + 577 + + + true + 1 + 6cc102d7:13895a319f6:-7709 + false + + 22 + Label_28 + + true + true + false + + true + false + + + + + + + Label + true + See Online Help + + + + 135 + 0 + + 1 + + + + 1 + + 11 + true + + 41 + + + false + true + 20 + true + 0.0 + 6cc102d7:13895a319f6:-7708 + 0.0 + + 0 + 1 + true + Polyline + false + 255 + + true + true + true + + + + + + false + + + + + + + + Polyline + true + false + + Default + + 120 + 0 + 0 + + + 1 + 1 + true + + + + + 32 + $(pv_name) +$(pv_value) + 49 + + + 0 + 0 + true + 6cc102d7:13895a319f6:-7707 + true + + 44 + Image + true + + true + true + false + + + + + + + + Image + true + + Default + + 42 + false + false + + + 1.0 + 0.0 + + + 0.0 + 1.0 + + + 0 + 0 + + false + 0 + 0 + 1 + pictures/onlineHelp.gif + + + + + 0 + + 8 + + + + + true + + true + 6cc102d7:13895a319f6:-76f1 + + 84 + Grouping Container_3 + + true + true + false + + true + false + + + + + + + true + Grouping Container + + Default + + 765 + 14 + + false + 1 + + + + 9 + + 8 + + + true + true + true + -1.7976931348623157E308 + 0 + true + false + 6d4582ac:1389581a6f9:-7ab1 + false + false + + 38 + false + Label_14 + false + 0 + + true + true + false + + true + + + + + + + + true + Text + Use Jython Script + 0 + false + + Header 2 + + 322 + 0 + + + + 1.7976931348623157E308 + 1 + false + 1 + + + + 7 + + 43 + + + + false + true + true + -1.7976931348623157E308 + 0 + true + false + 6d4582ac:1389581a6f9:-7ab2 + false + false + + 25 + false + Label_13 + false + 0 + + true + true + false + + true + + + + + + + + true + Text + Intelligentize your OPI with Jython + 0 + false + + Default Bold + + 406 + 0 + + + + 1.7976931348623157E308 + 1 + false + 1 + + + + 50 + + 1 + + + + true + true + true + -1.7976931348623157E308 + 0 + true + false + 6cc102d7:13895a319f6:-7684 + false + false + + 33 + false + Label_14 + false + 0 + + true + true + false + + true + + + + + + + + true + Text + Examples + 0 + false + + Header 1 + + 306 + 0 + + + + 1.7976931348623157E308 + 1 + false + 1 + + + + 42 + + 432 + + + + true + true + true + -1.7976931348623157E308 + 0 + true + false + 6cc102d7:13895a319f6:-7683 + false + false + + 33 + false + Label_12 + false + 0 + + true + true + false + + true + + + + + + + + true + Text + Best OPI Yet (BOY) + 0 + false + + Header 1 + + 306 + 0 + + + + 1.7976931348623157E308 + 1 + false + 1 + + + + 7 + + 432 + + + + + false + true + true + -1.7976931348623157E308 + 0 + true + false + 6cc102d7:13895a319f6:-7607 + false + true + + 21 + false + Label_14 + false + 0 + + true + true + false + + true + + + + + + + + true + Text + Example1: scripts/KnobValueDialog.py + 0 + false + + Default Bold + + 298 + 0 + + + + 1.7976931348623157E308 + 1 + false + 1 + + + + 125 + + 47 + $(pv_name) +$(pv_value) + + + true + true + true + -1.7976931348623157E308 + 0 + true + false + 6cc102d7:13895a319f6:-7606 + false + false + + 66 + false + Label_15 + false + 0 + + true + true + false + + true + + + + + + + + true + Text + Adjust the knob to see what will happen + 0 + false + + Default + + 323 + 1 + + + + 1.7976931348623157E308 + 1 + false + 1 + + + + 147 + + 37 + + + + true + true + true + -1.7976931348623157E308 + 0 + true + false + 6cc102d7:13895a319f6:-7605 + false + false + + 21 + false + Label_16 + false + 0 + + true + true + false + + true + + + + + + + + true + Text + Call Java code from Python script to pop up warning dialog + 0 + false + + Default + + 345 + 1 + + + + 1.7976931348623157E308 + 1 + false + 1 + + + + 280 + + 8 + + + + true + true + true + -1.7976931348623157E308 + 0 + true + false + 6cc102d7:13895a319f6:-7604 + false + false + + 21 + false + Label_17 + false + 0 + + true + true + false + + true + + + + + + + + true + Text + Use python module to change text and color + 0 + false + + Default + + 267 + 1 + + + + 1.7976931348623157E308 + 1 + false + 1 + + + + 343 + + 86 + + + + true + true + true + -1.7976931348623157E308 + 0 + true + false + 6cc102d7:13895a319f6:-7603 + false + false + + 19 + false + Label_18 + false + 0 + + true + true + false + + true + + + + + + + + true + Text + Set temperature limit: + 0 + false + + Default + + 176 + 0 + + + + 1.7976931348623157E308 + 1 + false + 1 + + + + 235 + + 86 + + + + false + true + true + -1.7976931348623157E308 + 0 + true + false + 6cc102d7:13895a319f6:-7602 + false + true + + 21 + false + Label_19 + false + 0 + + true + true + false + + true + + + + + + + + true + Text + Example2: scripts/ChangePositionAndSize.py + 0 + false + + Default Bold + + 348 + 0 + + + + 1.7976931348623157E308 + 1 + false + 1 + + + + 533 + + 224 + $(pv_name) +$(pv_value) + + + true + true + true + -1.7976931348623157E308 + 0 + true + false + 6cc102d7:13895a319f6:-7601 + false + false + + 38 + false + Label_20 + false + 0 + + true + true + false + + true + + + + + + + + true + Text + Change widget's size and position from python script. + 0 + false + + Default + + 515 + 1 + + + + 1.7976931348623157E308 + 1 + false + 1 + + + + 557 + + 124 + + + + false + true + 6cc102d7:13895a319f6:-75b1 + + 28 + + Action Button_3 + false + + true + true + false + + + + + + + + + Action Button + true + Back + false + + Default + + 65 + 0 + 0 + + + + false + 1 + + + + 558 + + + 5_3_Rules_Script.opi + + true + + 1 + + + + $(pv_name) +$(pv_value) + 650 + + + false + true + 6cc102d7:13895a319f6:-75b0 + + 28 + + Action Button_4 + false + + true + true + false + + + + + + + + + Action Button + true + Next + false + + Default + + 65 + 0 + 0 + + + + false + 1 + + + + 558 + + + 5_5_FileIOWithScript.opi + + true + + 1 + + + + Python Script Example + 722 + + + false + true + 6cc102d7:13895a319f6:-7561 + + 37 + + Action Button_5 + false + + true + true + false + + + + + + + + + Action Button + true + Go Home + false + + Default + + 98 + 0 + 0 + pictures/home-16x16.png + + + false + 1 + + + + 557 + + + main.opi + + true + + 1 + + + + $(pv_name) +$(pv_value) + 15 + + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/5_5_FileIOWithScript.opi b/core/base/tools/commander/workspace_template/Displays/BOY Examples/5_5_FileIOWithScript.opi new file mode 100644 index 000000000..8fae243a9 --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/BOY Examples/5_5_FileIOWithScript.opi @@ -0,0 +1,1105 @@ + + + false + + true + + -614945d9:135bf25028b:-7b62 + 3.2.18.qualifier + + false + 600 + File IO + true + false + + + + + + + Display + true + 800 + + true + 4 + + true + -1 + -1 + + + -1 + -1 + + false + true + false + false + 0 + + 24 + false + true + + + + true + Text Input + /BOY Examples/scripts/myFile.txt + + Default + + 0 + 581 + 3 + + 1.7976931348623157E308 + 1 + -1.7976931348623157E308 + true + -614945d9:135bf25028b:-7b59 + 0.0 + + filePath + 0 + + true + true + false + + 1 + false + + + + + 0 + false + + + + + 1 + + + 0 + + loc://isWorkspaceFile(1) + + + false + 0 + + + + 171 + + 50 + $(pv_name) +$(pv_value) + + + false + true + -614945d9:135bf25028b:-7b57 + false + + 20 + workspaceFile + false + + true + false + false + + loc://isWorkspaceFile(1) + + + + + + + Check Box + true + false + + Default + + 173 + 0 + + + + + + + 0 + 1 + + + + + 143 + $(pv_name) +$(pv_value) + 51 + + + false + true + -614945d9:135bf25028b:-7b56 + false + + 20 + append + false + + true + false + false + + + + + + + + + Check Box + true + false + + Default + + 197 + 0 + + + + + + + 0 + 1 + + + + + 143 + $(pv_name) +$(pv_value) + 186 + + + true + 1 + -614945d9:135bf25028b:-7b55 + false + + 16 + Label_2 + + true + true + false + + false + false + + + + + + + Label + true + Example 4: Read Write Text File + + + + 252 + 0 + + 1 + + + + 1 + + 113 + true + $(pv_name) +$(pv_value) + 231 + + + true + 1 + -614945d9:135bf25028b:-7b54 + false + + 16 + Label_5 + + true + true + false + + false + false + + + + + + + Label + true + Example 5: File Dialog from Embedded script + + + + 252 + 0 + + 1 + + + + 1 + + 459 + true + $(pv_name) +$(pv_value) + 215 + + + false + true + -614945d9:135bf25028b:-7b51 + false + + 20 + workspaceDialog + false + + true + false + false + + + + + + + + + Check Box + true + false + + Default + + 173 + 0 + + + + + + + 0 + 1 + + + + + 488 + $(pv_name) +$(pv_value) + 50 + + + false + true + 6cc102d7:13895a319f6:-7432 + + 37 + + Action Button_7 + false + + true + true + false + + + + + + Action Button + true + Go Home + + Default + + 98 + 0 + 0 + pictures/home-16x16.png + + + false + 1 + + + + 553 + + + main.opi + + true + + 1 + + + + $(pv_name) +$(pv_value) + 22 + + + false + true + 6cc102d7:13895a319f6:-7431 + + 40 + + Action Button_8 + false + + true + true + false + + + + + + Action Button + true + Read + + Default + + 80 + 0 + 0 + + + + false + 1 + + + + 203 + + + scripts/ReadFileExample.js + + false + Read + + + $(pv_name) +$(pv_value) + 641 + + + false + true + 6cc102d7:13895a319f6:-7430 + + 40 + + Action Button_9 + false + + true + true + false + + + + + + Action Button + true + Write + + Default + + 80 + 0 + 0 + + + + false + 1 + + + + 348 + + + scripts/WriteFileExample.js + + false + Write + + + $(pv_name) +$(pv_value) + 641 + + + false + true + 6cc102d7:13895a319f6:-742f + + 30 + + Action Button_10 + false + + true + true + false + + + + + + Action Button + true + Open File Dialog + + Default + + 177 + 0 + 0 + + + + false + 1 + + + + 483 + + + + + true + Open File Dialog + + + $(pv_name) +$(pv_value) + 268 + + + false + true + 6cc102d7:13895a319f6:-742e + + 28 + + Action Button_11 + false + + true + true + false + + + + + + Action Button + true + Back + + Default + + 65 + 0 + 0 + + + + false + 1 + + + + 558 + + + 5_4_Python_Script.opi + + true + + 1 + + + + $(pv_name) +$(pv_value) + 648 + + + false + true + 6cc102d7:13895a319f6:-742d + + 28 + + Action Button_12 + false + + true + true + false + + + + + + Action Button + true + Next + + Default + + 65 + 0 + 0 + + + + false + 1 + + + + 558 + + + 5_6_UseThreadInScript.opi + + true + + 1 + + + + Python Script Example + 727 + + + true + true + true + false + + 125 + false + true + + + + true + Text + + + Default + + 581 + 1 + + 1.7976931348623157E308 + 1 + -1.7976931348623157E308 + true + 6cc102d7:13895a319f6:-738e + 0.0 + + readLabel + 0 + + true + true + false + + 0 + false + + + + + 0 + false + + + false + 0 + + + + 203 + + 51 + + + + false + true + true + false + + 95 + false + true + + + + true + Text + Type the text to be written to the file here. + + Default + + 580 + 0 + + 1.7976931348623157E308 + 1 + -1.7976931348623157E308 + true + 6cc102d7:13895a319f6:-738d + 0.0 + + textInput + 0 + + true + true + false + + 0 + false + + + + + 0 + false + + + false + 0 + + + + 348 + + 51 + $(pv_name) +$(pv_value) + + + true + true + false + false + + 20 + false + true + + + + true + Text + + + Default + + 581 + 1 + + 1.7976931348623157E308 + 1 + -1.7976931348623157E308 + true + 6cc102d7:13895a319f6:-717b + 0.0 + + dialogFilePath + 0 + + true + true + false + + 0 + false + + + + + 0 + false + + + false + 0 + + + + 519 + + 50 + + + + + true + + true + 6cc102d7:13895a319f6:-7036 + + 84 + Grouping Container_3 + + true + true + false + + true + false + + + + + + + true + Grouping Container + + Default + + 785 + 14 + + false + false + 1 + + + + 5 + + 7 + + + true + true + false + false + + 38 + false + true + + + + true + Text + Rules & Javascripts + + Header 2 + + 322 + 0 + + 1.7976931348623157E308 + 1 + -1.7976931348623157E308 + true + 6d4582ac:1389581a6f9:-7ab1 + 0.0 + + Label_14 + 0 + + true + true + false + + 0 + false + + + + + 0 + false + + + false + 1 + + + + 7 + + 43 + + + + false + true + false + false + + 25 + false + true + + + + true + Text + Intelligentize your OPI + + Default Bold + + 406 + 0 + + 1.7976931348623157E308 + 1 + -1.7976931348623157E308 + true + 6d4582ac:1389581a6f9:-7ab2 + 0.0 + + Label_13 + 0 + + true + true + false + + 0 + false + + + + + 0 + false + + + false + 1 + + + + 50 + + 1 + + + + true + true + false + false + + 33 + false + true + + + + true + Text + Examples + + Header 1 + + 306 + 0 + + 1.7976931348623157E308 + 1 + -1.7976931348623157E308 + true + 6cc102d7:13895a319f6:-766f + 0.0 + + Label_14 + 0 + + true + true + false + + 0 + false + + + + + 0 + false + + + false + 1 + + + + 44 + + 459 + + + + true + true + false + false + + 33 + false + true + + + + true + Text + Best OPI Yet (BOY) + + Header 1 + + 306 + 0 + + 1.7976931348623157E308 + 1 + -1.7976931348623157E308 + true + 6cc102d7:13895a319f6:-766e + 0.0 + + Label_12 + 0 + + true + true + false + + 0 + false + + + + + 0 + false + + + false + 1 + + + + 9 + + 459 + + + + + false + true + 53e06973:1403f68f9e6:-7fcd + + 30 + + Action Button_13 + false + + true + true + false + + + + + + Action Button + true + Save File Dialog + + Default + + 177 + 0 + 0 + + + + false + 1 + + + + 483 + + + + + true + Open File Dialog + + + $(pv_name) +$(pv_value) + 454 + + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/5_6_UseThreadInScript.opi b/core/base/tools/commander/workspace_template/Displays/BOY Examples/5_6_UseThreadInScript.opi new file mode 100644 index 000000000..bd3d6fe0f --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/BOY Examples/5_6_UseThreadInScript.opi @@ -0,0 +1,774 @@ + + + false + + true + + -5bc58001:133f648c5d6:-7fa6 + 3.2.18.qualifier + + false + 600 + Use Thread + true + false + + + + + + + Display + true + 800 + + true + 4 + + true + -1 + -1 + + + -1 + -1 + + 20.0 + false + false + + + + + + + true + + 16 + 50 + false + + + + true + Progress Bar + false + + Default + + 340 + true + 0 + true + + false + true + 100.0 + 1 + true + false + 0.0 + -5bc58001:133f648c5d6:-7f9c + true + + false + + + + Progress_Bar + + true + true + false + + loc://$(DID)_progress + + + + true + + + + false + false + 80.0 + + Default + + 90.0 + 0.0 + + + + + + + + + true + false + + + + 10.0 + 279 + + 235 + $(pv_name) +$(pv_value) + false + + + + true + + true + 6cc102d7:13895a319f6:-6ff2 + + 84 + Grouping Container_3 + + true + true + false + + true + false + + + + + + + true + Grouping Container + + Default + + 765 + 14 + + false + 1 + + + + 6 + + 10 + + + true + true + true + -1.7976931348623157E308 + 0 + true + false + 6d4582ac:1389581a6f9:-7ab1 + false + false + + 38 + false + Label_14 + false + 0 + + true + true + false + + true + + + + + + + + true + Text + Rules & Javascripts + 0 + false + + Header 2 + + 322 + 0 + + + + 1.7976931348623157E308 + 1 + false + 1 + + + + 7 + + 43 + + + + false + true + true + -1.7976931348623157E308 + 0 + true + false + 6d4582ac:1389581a6f9:-7ab2 + false + false + + 25 + false + Label_13 + false + 0 + + true + true + false + + true + + + + + + + + true + Text + Intelligentize your OPI + 0 + false + + Default Bold + + 406 + 0 + + + + 1.7976931348623157E308 + 1 + false + 1 + + + + 50 + + 1 + + + + true + true + true + -1.7976931348623157E308 + 0 + true + false + 6cc102d7:13895a319f6:-766f + false + false + + 33 + false + Label_14 + false + 0 + + true + true + false + + true + + + + + + + + true + Text + Examples + 0 + false + + Header 1 + + 306 + 0 + + + + 1.7976931348623157E308 + 1 + false + 1 + + + + 42 + + 437 + + + + true + true + true + -1.7976931348623157E308 + 0 + true + false + 6cc102d7:13895a319f6:-766e + false + false + + 33 + false + Label_12 + false + 0 + + true + true + false + + true + + + + + + + + true + Text + Best OPI Yet (BOY) + 0 + false + + Header 1 + + 306 + 0 + + + + 1.7976931348623157E308 + 1 + false + 1 + + + + 7 + + 437 + + + + + false + true + true + -1.7976931348623157E308 + 0 + true + false + 6cc102d7:13895a319f6:-6fab + false + true + + 21 + false + Label_7 + false + 0 + + true + true + false + + true + + + + + + + + true + Text + Use Thread in Script + 0 + false + + Default Bold + + 161 + 0 + + + + 1.7976931348623157E308 + 1 + false + 1 + + + + 106 + + 301 + $(pv_name) +$(pv_value) + + + true + true + true + -1.7976931348623157E308 + 0 + true + false + 6cc102d7:13895a319f6:-6f58 + false + false + + + loc://$(DID)_trig1_js + loc://$(DID)_progress + + + loc://$(DID)_trig1_py + loc://$(DID)_progress + + + 28 + false + Label + false + 0 + + true + true + false + + true + + + + + + + + true + Text + Hit one of the buttons to start the thread + 0 + false + + Default + + 340 + 0 + + + + 1.7976931348623157E308 + 1 + false + 1 + + + + 228 + + 235 + + + + false + true + 6cc102d7:13895a319f6:-6eab + + 50 + + Start_Button_Py + false + + true + true + false + + + + + + + + + Action Button + true + Start Thread +(Using Python) + false + + Default + + 140 + 0 + 0 + + + + false + 1 + + + + 322 + + + loc://$(DID)_trig1_py + 1 + 10 + + + + + $(pv_name) +$(pv_value) + 413 + + + false + true + 6cc102d7:13895a319f6:-6eaa + + 50 + + Start_Button_JS + false + + true + true + false + + + + + + + + + Action Button + true + Start Thread +(Using JavaScript) + false + + Default + + 148 + 0 + 0 + + + + false + 1 + + + + 322 + + + loc://$(DID)_trig1_js + 1 + 10 + + + + + $(pv_name) +$(pv_value) + 235 + + + false + true + 6cc102d7:13895a319f6:-6e64 + + 28 + + Action Button_2 + false + + true + true + false + + + + + + + + + Action Button + true + Back + false + + Default + + 72 + 0 + 0 + + + + false + 1 + + + + 558 + + + 5_5_FileIOWithScript.opi + + true + + 1 + + + + File IO Example + 711 + + + false + true + 6cc102d7:13895a319f6:-6e38 + + 37 + + Action Button_7 + false + + true + true + false + + + + + + + + + Action Button + true + Go Home + false + + Default + + 98 + 0 + 0 + pictures/home-16x16.png + + + false + 1 + + + + 542 + + + main.opi + + true + + 1 + + + + $(pv_name) +$(pv_value) + 24 + + + true + true + true + -1.7976931348623157E308 + 0 + true + true + 6cc102d7:13895a319f6:-6faa + false + false + + 85 + Label_6 + false + 0 + + true + true + false + + true + + + + + + + + true + Text + By default, general script code is executed in UI thread, so if you have a big loop in your script or call Thread.sleep() directly in the script, the UI will stop response until the loop finished or Thread.sleep() returned. In this case, you need to run the code in another thread instead of the UI thread. +See the scripts attached to the below label for example. + 0 + false + + Default + + 738 + 1 + + + + false + 1.7976931348623157E308 + 1 + false + false + 0 + + + + 126 + + true + 24 + + + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/6_Macro.opi b/core/base/tools/commander/workspace_template/Displays/BOY Examples/6_Macro.opi new file mode 100644 index 000000000..84c9baf67 --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/BOY Examples/6_Macro.opi @@ -0,0 +1,1098 @@ + + + false + + true + sim://noise + Best OPI Yet + + 23229793:138968b5218:-7e2d + 3.2.18.qualifier + + false + 600 + Macro_Example + true + false + + + + + + + Display + true + 800 + + true + 4 + + true + -1 + -1 + + + -1 + -1 + + true + 0 + 23229793:138968b5218:-7e2c + false + + 174 + Label_9 + + true + true + false + + false + false + + + + + + + Label + true + The macros are defined in the "Macros" property of the display. + + Default + + 347 + 1 + + 1 + + + + 0 + + 198 + true + + 27 + + + true + 0 + 23229793:138968b5218:-7e2b + false + + 177 + Label_12 + + true + true + false + + false + false + + + + + + + Label + true + The label below will display the value of some of its properites. + + Default + + 364 + 1 + + 1 + + + + 0 + + 196 + true + + 398 + + + true + 1 + 23229793:138968b5218:-7e2a + false + + 65 + Label_4 + + true + true + false + + false + false + + + + + + + Label + true + Macros can be embedded in any string based properties such as "PV Name", "Text", "Tooltip", "Scripts" and so on. +The macro format is: $(macro_name) + + Default + + 745 + 1 + + 1 + + + + 0 + + 107 + true + + 17 + + + true + 1 + 23229793:138968b5218:-7e29 + true + + 16 + Label_5 + + true + true + false + + false + false + + + + + + + Label + true + Introduction + + + + 76 + 0 + + 1 + + + + 1 + + 99 + true + $(pv_name) +$(pv_value) + 333 + + + true + 1 + 23229793:138968b5218:-7e28 + false + + 86 + Label_8 + + true + true + false + + false + false + + + + + + + Label + true + Macro + + + + 295 + 0 + + 1 + + + + 1 + + 6 + true + + 17 + + + true + 1 + 23229793:138968b5218:-7e27 + false + + 18 + Label_9 + + true + true + false + + true + false + + + + + + + Label + true + Input once, affect everywhere. + + + + 254 + 0 + + 1 + + + + 1 + + 62 + true + + 48 + + + true + 1 + 23229793:138968b5218:-7e26 + false + + 43 + Label_6 + + true + true + false + + false + false + + + + + + + Label + true + Examples + + + + 451 + 0 + + 1 + + + + 1 + + 49 + true + + 311 + + + true + 1 + 23229793:138968b5218:-7e25 + false + + 44 + Label_9 + + true + true + false + + false + false + + + + + + + Label + true + Best OPI Yet (BOY) + + + + 451 + 0 + + 1 + + + + 1 + + 6 + true + + 311 + + + true + 1 + 23229793:138968b5218:-7e24 + false + + 49 + Label + + true + true + false + + false + false + + + + + + + Label + true + My name is $(my_name). + + Default + + 293 + 0 + + 1 + + + + 1 + + 253 + true + + 40 + + + true + 1 + 23229793:138968b5218:-7e23 + true + + 16 + Label_8 + + true + true + false + + false + false + + + + + + + Label + true + Predefined Symbol Macro Example + + + + 219 + 0 + + 1 + + + + 1 + + 183 + true + $(pv_name) +$(pv_value) + 74 + + + true + 1 + 23229793:138968b5218:-7e22 + false + + 20 + Label_9 + + true + true + false + + false + false + + + + + + + Label + true + Value of random + + Default + + 116 + 0 + + 1 + + + + 1 + + 314 + true + + 40 + + + true + true + 1 + true + 23229793:138968b5218:-7e21 + false + 0.0 + + 20 + Text Update + false + + true + true + false + + 0 + true + false + $(random) + + + + + + + Text Update + true + ###### + false + 0 + + Default + + 100 + 0 + + + 1 + + + + 0 + + 314 + false + $(pv_name) +$(pv_value) + 155 + + + true + 1 + 23229793:138968b5218:-7e20 + false + + 16 + Label_11 + + true + true + false + + false + false + + + + + + + Label + true + Widget Property Value Macro Example + + + + 247 + 0 + + 1 + + + + 1 + + 181 + true + $(pv_name) +$(pv_value) + 456 + + + true + 1 + 23229793:138968b5218:-7e1f + false + + 81 + Label_11 + + true + true + false + + false + false + + + + + + + Label + true + My name is $(name) +My background color is $(background_color) +My height is $(height) pixels +My width is $(width) pixels + + Default + + 333 + 1 + + 1 + + + + 1 + + 244 + true + + 413 + + + + true + + true + 23229793:138968b5218:-7e1d + + 44 + Macro.html + + true + true + false + + true + false + + + + + + + true + Grouping Container + + Default + + 185 + 0 + + true + 1 + + + + 453 + + + scripts/openHelp.js + + false + Open Help + + + 501 + + + true + 1 + 23229793:138968b5218:-7e1c + false + + 22 + Label_28 + + true + true + false + + true + false + + + + + + + Label + true + See Online Help + + + + 135 + 0 + + 1 + + + + 1 + + 11 + true + + 41 + + + false + true + 20 + true + 0.0 + 23229793:138968b5218:-7e1b + 0.0 + + 0 + 1 + true + Polyline + false + 255 + + true + true + true + + + + + + false + + + + + + + + Polyline + true + false + + Default + + 120 + 0 + 0 + + + 1 + 1 + true + + + + + 32 + $(pv_name) +$(pv_value) + 49 + + + 0 + 0 + true + 23229793:138968b5218:-7e1a + true + + 44 + Image + true + + true + true + false + + + + + + + + Image + true + + Default + + 42 + false + false + + + 1.0 + 0.0 + + + 0.0 + 1.0 + + + 0 + 0 + + false + 0 + 0 + 1 + pictures/onlineHelp.gif + + + + + 0 + + 8 + + + + true + 0 + 23229793:138968b5218:-7e19 + false + + 144 + Label_13 + + true + true + false + + false + false + + + + + + + Label + true + These macros are predefined in code, which are available to everywhere that macros can be used. + + Default + + 347 + 1 + + 1 + + + + 0 + + 394 + true + + 27 + + + true + 1 + 23229793:138968b5218:-7e18 + false + + 43 + Label_14 + + true + true + false + + false + false + + + + + + + Label + true + Display ID is $(DID). +Display Name is $(DNAME) + + Default + + 265 + 1 + + 1 + + + + 1 + + 436 + true + + 68 + + + true + 1 + 23229793:138968b5218:-7e17 + true + + 16 + Label_15 + + true + true + false + + false + false + + + + + + + Label + true + System Macro Example + + + + 146 + 0 + + 1 + + + + 1 + + 379 + true + $(pv_name) +$(pv_value) + 100 + + + true + true + 1 + true + 23229793:138968b5218:-7e16 + false + 0.0 + + 20 + Text Update_1 + false + + true + true + false + + 0 + true + false + loc://$(DID)_myPV + + + + + + + Text Update + true + ###### + false + 0 + + Default + + 100 + 1 + + + 1 + + + + 0 + + 494 + false + $(pv_name) +$(pv_value) + 233 + + + true + 1 + 23229793:138968b5218:-7e15 + false + + 20 + Label_17 + + true + true + false + + false + false + + + + + + + Label + true + loc://$(DID)_myPV + + Default + + 152 + 1 + + 1 + + + + 1 + + 494 + true + + 68 + + + false + true + 23229793:138968b5218:-7df8 + + 37 + + Action Button_7 + false + + true + true + false + + + + + + + + + Action Button + true + Go Home + false + + Default + + 98 + 0 + 0 + pictures/home-16x16.png + + + false + 1 + + + + 557 + + + main.opi + + true + + 1 + + + + $(pv_name) +$(pv_value) + 27 + + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/7_Color_Font_Macro.opi b/core/base/tools/commander/workspace_template/Displays/BOY Examples/7_Color_Font_Macro.opi new file mode 100644 index 000000000..3d8e526b1 --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/BOY Examples/7_Color_Font_Macro.opi @@ -0,0 +1,1094 @@ + + + false + + true + sim://noise + Best OPI Yet + + -16687e36:1387b7d5dad:-7f17 + 3.2.18.qualifier + + false + 600 + Color_Font_Macro + true + false + + + + + + + Display + true + 800 + + true + 4 + + true + -1 + -1 + + + -1 + -1 + + true + 1 + -16687e36:1387b7d5dad:-7f16 + false + + 86 + Label_8 + + true + true + false + + false + false + + + + + + + Label + true + Color and Font Macro + + + + 295 + 0 + + 1 + + + + 1 + + 6 + true + + 17 + + + true + 1 + -16687e36:1387b7d5dad:-7f15 + false + + 18 + Label_9 + + true + true + false + + true + false + + + + + + + Label + true + Input once, affect everywhere. + + + + 254 + 0 + + 1 + + + + 1 + + 62 + true + + 38 + + + true + 1 + -16687e36:1387b7d5dad:-7f14 + false + + 43 + Label_6 + + true + true + false + + false + false + + + + + + + Label + true + Examples + + + + 451 + 0 + + 1 + + + + 1 + + 49 + true + + 311 + + + true + 1 + -16687e36:1387b7d5dad:-7f13 + false + + 44 + Label_9 + + true + true + false + + false + false + + + + + + + Label + true + Best OPI Yet (BOY) + + + + 451 + 0 + + 1 + + + + 1 + + 6 + true + + 311 + + + true + 1 + -16687e36:1387b7d5dad:-7f12 + false + + 23 + Label_8 + + true + true + false + + false + false + + + + + + + Label + true + Predefined Color Macro Example + + + + 263 + 0 + + 1 + + + + 1 + + 205 + true + $(pv_name) +$(pv_value) + 76 + + + false + true + 100.0 + + + + -16687e36:1387b7d5dad:-7f11 + + + + + 53 + true + Ellipse + false + 255 + + true + true + true + + false + + + + + + + + Ellipse + true + + + + false + + Default + + 52 + 0 + 0 + + + 1 + 0 + true + + + + + 242 + $(pv_name) +$(pv_value) + 64 + false + + + false + true + 100.0 + + + + -16687e36:1387b7d5dad:-7f10 + + + + + 53 + true + Ellipse_1 + false + 255 + + true + true + true + + false + + + + + + + + Ellipse + true + + + + false + + Default + + 52 + 0 + 0 + + + 1 + 0 + true + + + + + 242 + $(pv_name) +$(pv_value) + 144 + false + + + false + true + 100.0 + + + + -16687e36:1387b7d5dad:-7f0f + + + + + 53 + true + Ellipse_2 + false + 255 + + true + true + true + + false + + + + + + + + Ellipse + true + + + + false + + Default + + 52 + 0 + 0 + + + 1 + 0 + true + + + + + 242 + $(pv_name) +$(pv_value) + 222 + false + + + false + true + 100.0 + + + + -16687e36:1387b7d5dad:-7f0e + + + + + 53 + true + Ellipse_3 + false + 255 + + true + true + true + + false + + + + + + + + Ellipse + true + + + + false + + Default + + 52 + 0 + 0 + + + 1 + 0 + true + + + + + 242 + $(pv_name) +$(pv_value) + 302 + false + + + true + 1 + -16687e36:1387b7d5dad:-7f0d + false + + 23 + Label_7 + + true + true + false + + false + false + + + + + + + Label + true + Predefined Font Macro Example + + + + 263 + 0 + + 1 + + + + 1 + + 206 + true + $(pv_name) +$(pv_value) + 450 + + + true + 1 + -16687e36:1387b7d5dad:-7f0c + false + + 32 + Label + + true + true + false + + false + false + + + + + + + Label + true + Default + + Default + + 198 + 0 + + 1 + + + + 1 + + 412 + true + + 483 + + + true + 1 + -16687e36:1387b7d5dad:-7f0b + false + + 44 + Label_9 + + true + true + false + + false + false + + + + + + + Label + true + Header 1 + + Header 1 + + 198 + 0 + + 1 + + + + 1 + + 242 + true + + 483 + + + true + 1 + -16687e36:1387b7d5dad:-7f0a + false + + 32 + Label_10 + + true + true + false + + false + false + + + + + + + Label + true + Header 2 + + Header 2 + + 198 + 0 + + 1 + + + + 1 + + 294 + true + + 483 + + + true + 1 + -16687e36:1387b7d5dad:-7f09 + false + + 32 + Label_11 + + true + true + false + + false + false + + + + + + + Label + true + Header 3 + + Header 3 + + 198 + 0 + + 1 + + + + 1 + + 334 + true + + 483 + + + true + 1 + -16687e36:1387b7d5dad:-7f08 + false + + 32 + Label_12 + + true + true + false + + false + false + + + + + + + Label + true + Example Title + + Example Title + + 198 + 0 + + 1 + + + + 1 + + 451 + true + + 483 + + + true + 1 + -16687e36:1387b7d5dad:-7f07 + false + + 32 + Label_13 + + true + true + false + + false + false + + + + + + + Label + true + Example Link Text + + Example LinkText + + 198 + 0 + + 1 + + + + 1 + + 491 + true + + 483 + + + + true + + true + -16687e36:1387b7d5dad:-7f05 + + 44 + ColorFont.html + + true + true + false + + true + false + + + + + + + true + Grouping Container + + Default + + 185 + 0 + + true + 1 + + + + 544 + + + scripts/openHelp.js + + false + Open Help + + + 594 + + + true + 1 + -16687e36:1387b7d5dad:-7f04 + false + + 22 + Label_28 + + true + true + false + + true + false + + + + + + + Label + true + See Online Help + + + + 135 + 0 + + 1 + + + + 1 + + 11 + true + + 41 + + + false + true + 20 + true + 0.0 + -16687e36:1387b7d5dad:-7f03 + 0.0 + + 0 + 1 + true + Polyline + false + 255 + + true + true + true + + + + + + false + + + + + + + + Polyline + true + false + + Default + + 120 + 0 + 0 + + + 1 + 1 + true + + + + + 32 + $(pv_name) +$(pv_value) + 49 + + + 0 + 0 + true + -16687e36:1387b7d5dad:-7f02 + true + + 44 + Image + true + + true + true + false + + + + + + + + Image + true + + Default + + 42 + false + false + + + 1.0 + 0.0 + + + 0.0 + 1.0 + + + 0 + 0 + + false + 0 + 0 + 1 + pictures/onlineHelp.gif + + + + + 0 + + 8 + + + + true + 1 + -16687e36:1387b7d5dad:-7f01 + false + + 60 + Label_12 + + true + true + false + + false + false + + + + + + + Label + true + To make this OPI show color and font macro correctly, please go to menu CSS->Preferences->CSS Applications->Display->BOY preference page and set Color File as /BOY Examples/color.def and Font file as /BOY Examples/font.def. Then run this OPI to see how Color and Font macro work. + + Default + + 721 + 1 + + 1 + + + + 1 + + 113 + true + + 21 + + + true + 1 + -16687e36:1387b7d5dad:-7efd + false + + 32 + Label_21 + + true + true + false + + false + false + + + + + + + Label + true + Default Bold + + Default Bold + + 198 + 0 + + 1 + + + + 1 + + 371 + true + + 483 + + + false + true + -16687e36:1387b7d5dad:-7e8f + + 37 + + Action Button + false + + true + true + false + + + + + + + + + Action Button + true + Go Home + false + + Default Bold + + 104 + 0 + 0 + pictures/home-16x16.png + + + false + 1 + + + + 547 + + + main.opi + + true + + 1 + + + + $(pv_name) +$(pv_value) + 21 + + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/8_2_PVWidgets_Properties.opi b/core/base/tools/commander/workspace_template/Displays/BOY Examples/8_2_PVWidgets_Properties.opi new file mode 100644 index 000000000..740a05720 --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/BOY Examples/8_2_PVWidgets_Properties.opi @@ -0,0 +1,826 @@ + + + false + + true + sim://noise + Best OPI Yet + + -6f7a1eb6:13cdf6ad4c4:-7ce2 + 3.2.18.qualifier + + false + 600 + Widget Property + true + false + + + + + + + Display + true + 800 + + true + 4 + + true + -1 + -1 + + + -1 + -1 + + true + 1 + -6f7a1eb6:13cdf6ad4c4:-7ce1 + false + + 35 + Label_10 + + true + true + false + + false + false + + + + + + + Label + true + If the PV is not allowed to write, the control widgets will be disabled. + + Default + + 285 + 1 + + 1 + + + + 0 + + 224 + true + + 390 + + + true + 1 + -6f7a1eb6:13cdf6ad4c4:-7ce0 + false + + 35 + Label_8 + + true + true + false + + false + false + + + + + + + Label + true + There is a common look for all the diconnected PV widgets: + + Default + + 285 + 1 + + 1 + + + + 0 + + 233 + true + + 66 + + + true + 1 + -6f7a1eb6:13cdf6ad4c4:-7cdf + false + + 55 + Label_6 + + true + true + false + + false + false + + + + + + + Label + true + For the widget which has the property of "PV Name(pv_name)", we call it PV Widget. During runtime, right click a PV widget and then you will see the "CSS" context menu which allows it connecting with other CSS Applications. The PV name is the bridge of the connection. + + Default + + 745 + 1 + + 1 + + + + 0 + + 104 + true + + 25 + + + true + 1 + -6f7a1eb6:13cdf6ad4c4:-7cde + false + + 86 + Label_8 + + true + true + false + + false + false + + + + + + + Label + true + PV Widget Properties + + + + 295 + 0 + + 1 + + + + 1 + + 5 + true + + 25 + + + true + 1 + -6f7a1eb6:13cdf6ad4c4:-7cdd + false + + 43 + Label_6 + + true + true + false + + false + false + + + + + + + Label + true + Examples + + + + 451 + 0 + + 1 + + + + 1 + + 48 + true + + 319 + + + true + 1 + -6f7a1eb6:13cdf6ad4c4:-7cdc + false + + 44 + Label_9 + + true + true + false + + false + false + + + + + + + Label + true + Best OPI Yet (BOY) + + + + 451 + 0 + + 1 + + + + 1 + + 5 + true + + 319 + + + true + 1 + -6f7a1eb6:13cdf6ad4c4:-7cdb + true + + 16 + Label_5 + + true + true + false + + false + false + + + + + + + Label + true + Introduction + + + + 76 + 0 + + 1 + + + + 1 + + 90 + true + $(pv_name) +$(pv_value) + 366 + + + true + 1 + -6f7a1eb6:13cdf6ad4c4:-7cda + true + + 16 + Label_7 + + true + true + false + + false + false + + + + + + + Label + true + Disconnected Status + + + + 128 + 0 + + 1 + + + + 1 + + 218 + true + $(pv_name) +$(pv_value) + 135 + + + 0 + 0 + true + -6f7a1eb6:13cdf6ad4c4:-7cd9 + true + + 116 + Image + false + + true + true + false + + + + + + + + Image + true + + Default + + 296 + false + false + + + 1.0 + 0.0 + + + 0.0 + 1.0 + + + 0 + 0 + + false + 0 + 0 + 1 + pictures/Disconnected.png + + + + + 274 + + 66 + + + true + 1 + -6f7a1eb6:13cdf6ad4c4:-7cd8 + true + + 16 + Label_9 + + true + true + false + + false + false + + + + + + + Label + true + PV Security + + + + 73 + 0 + + 1 + + + + 1 + + 209 + true + $(pv_name) +$(pv_value) + 496 + + + 0 + 0 + true + -6f7a1eb6:13cdf6ad4c4:-7cd7 + true + + 160 + Image_1 + false + + true + true + false + + + + + + + + Image + true + + Default + + 300 + false + false + + + 1.0 + 0.0 + + + 0.0 + 1.0 + + + 0 + 0 + + false + 0 + 0 + 1 + pictures/Write_forbidden.png + + + + + 265 + + 383 + + + + true + + true + -6f7a1eb6:13cdf6ad4c4:-7cd4 + + 44 + widgets/PVWidgets.html + + true + true + false + + true + false + + + + + + + true + Grouping Container + + Default + + 185 + 0 + + true + 1 + + + + 550 + + + scripts/openHelp.js + + false + Open Help + + + 319 + + + true + 1 + -6f7a1eb6:13cdf6ad4c4:-7cd3 + false + + 22 + Label_28 + + true + true + false + + true + false + + + + + + + Label + true + See Online Help + + + + 135 + 0 + + 1 + + + + 1 + + 11 + true + + 41 + + + false + true + 20 + true + 0.0 + -6f7a1eb6:13cdf6ad4c4:-7cd2 + 0.0 + + 0 + 1 + true + Polyline + false + 255 + + true + true + true + + + + + + false + + + + + + + + Polyline + true + false + + Default + + 120 + 0 + 0 + + + 1 + 1 + true + + + + + 32 + $(pv_name) +$(pv_value) + 49 + + + 0 + 0 + true + -6f7a1eb6:13cdf6ad4c4:-7cd1 + true + + 44 + Image + true + + true + true + false + + + + + + + + Image + true + + Default + + 42 + false + false + + + 1.0 + 0.0 + + + 0.0 + 1.0 + + + 0 + 0 + + false + 0 + 0 + 1 + pictures/onlineHelp.gif + + + + + 0 + + 8 + + + + false + true + -6f7a1eb6:13cdf6ad4c4:-7cd5 + + 28 + + Action Button + false + + true + true + false + + + + + + + + + Action Button + true + Go Home + false + + + + 79 + 0 + 0 + pictures/home-16x16.png + + + false + 1 + + + + 558 + + + main.opi + + true + + 1 + + + + $(pv_name) +$(pv_value) + 5 + + + false + true + -6f7a1eb6:13cdf6ad4c4:-7cd6 + + 28 + + Action Button_2 + false + + true + true + false + + + + + + + + + Action Button + true + Back + false + + + + 79 + 0 + 0 + + + + false + 1 + + + + 558 + + + 8_Widget_Properties.opi + + true + + 1 + + + + $(pv_name) +$(pv_value) + 708 + + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/8_Widget_Properties.opi b/core/base/tools/commander/workspace_template/Displays/BOY Examples/8_Widget_Properties.opi new file mode 100644 index 000000000..6217b963c --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/BOY Examples/8_Widget_Properties.opi @@ -0,0 +1,858 @@ + + + false + + true + sim://noise + Best OPI Yet + + 6cc102d7:13895a319f6:-648f + 3.2.18.qualifier + + false + 600 + Widget Property + true + false + + + + + + + Display + true + 800 + + true + 4 + + true + -1 + -1 + + + -1 + -1 + + true + 1 + 6cc102d7:13895a319f6:-648e + false + + 139 + Label_6 + + true + true + false + + false + false + + + + + + + Label + true + The outlooking, behavior, location and size of widgets are called properties. The properties could be set in property sheet in editing mode, and also can be changed in the attached scripts during running. The value of the any property can be accessed with Property Macro by property_id. In most cases, the prop_id is following the convention to the name: +1. lower case of all characters +2. replace space to underscore +For Example: foreground_color, background_color, enabled + + Default + + 745 + 1 + + 1 + + + + 0 + + 108 + true + + 25 + + + true + 1 + 6cc102d7:13895a319f6:-648d + false + + 86 + Label_8 + + true + true + false + + false + false + + + + + + + Label + true + Widget Properties + + + + 295 + 0 + + 1 + + + + 1 + + 5 + true + + 25 + + + true + 1 + 6cc102d7:13895a319f6:-648c + false + + 43 + Label_6 + + true + true + false + + false + false + + + + + + + Label + true + Examples + + + + 451 + 0 + + 1 + + + + 1 + + 48 + true + + 319 + + + true + 1 + 6cc102d7:13895a319f6:-648b + false + + 44 + Label_9 + + true + true + false + + false + false + + + + + + + Label + true + Best OPI Yet (BOY) + + + + 451 + 0 + + 1 + + + + 1 + + 5 + true + + 319 + + + true + 1 + 6cc102d7:13895a319f6:-648a + true + + 19 + Label_5 + + true + true + false + + false + false + + + + + + + Label + true + Introduction + + + + 93 + 0 + + 1 + + + + 1 + + 98 + true + $(pv_name) +$(pv_value) + 319 + + + + true + + true + 6cc102d7:13895a319f6:-6487 + + 44 + Widget_Properties.html + + true + true + false + + true + false + + + + + + + true + Grouping Container + + Default + + 185 + 0 + + true + 1 + + + + 551 + + + scripts/openHelp.js + + false + Open Help + + + 611 + + + true + 1 + 6cc102d7:13895a319f6:-6486 + false + + 22 + Label_28 + + true + true + false + + true + false + + + + + + + Label + true + See Online Help + + + + 135 + 0 + + 1 + + + + 1 + + 11 + true + + 41 + + + false + true + 20 + true + 0.0 + 6cc102d7:13895a319f6:-6485 + 0.0 + + 0 + 1 + true + Polyline + false + 255 + + true + true + true + + + + + + false + + + + + + + + Polyline + true + false + + Default + + 120 + 0 + 0 + + + 1 + 1 + true + + + + + 32 + $(pv_name) +$(pv_value) + 49 + + + 0 + 0 + true + 6cc102d7:13895a319f6:-6484 + true + + 44 + Image + true + + true + true + false + + + + + + + + Image + true + + Default + + 42 + false + false + + + 1.0 + 0.0 + + + 0.0 + 1.0 + + + 0 + 0 + + false + 0 + 0 + 1 + pictures/onlineHelp.gif + + + + + 0 + + 8 + + + + true + 1 + 6cc102d7:13895a319f6:-640a + false + + 35 + Label_10 + + true + true + false + + false + false + + + + + + + Label + true + If the PV is not allowed to write, the control widgets will be disabled. + + Default + + 285 + 1 + + 1 + + + + 0 + + 351 + true + + 393 + + + true + 1 + 6cc102d7:13895a319f6:-6409 + false + + 35 + Label_13 + + true + true + false + + false + false + + + + + + + Label + true + There is a common look for all the diconnected PV widgets: + + Default + + 285 + 1 + + 1 + + + + 0 + + 360 + true + + 69 + + + true + 1 + 6cc102d7:13895a319f6:-6408 + false + + 55 + Label_14 + + true + true + false + + false + false + + + + + + + Label + true + For the widget which has the property of "PV Name(pv_name)", we call it PV Widget. Right click a PV widget and then you will see the "Process Variable" context menu which can send the PV name to other CSS tools. + + Default + + 745 + 1 + + 1 + + + + 0 + + 282 + true + + 25 + + + true + 1 + 6cc102d7:13895a319f6:-6406 + true + + 16 + Label_7 + + true + true + false + + false + false + + + + + + + Label + true + Disconnected Status + + + + 128 + 0 + + 1 + + + + 1 + + 345 + true + $(pv_name) +$(pv_value) + 138 + + + 0 + 0 + true + 6cc102d7:13895a319f6:-6405 + true + + 116 + Image + false + + true + true + false + + + + + + + + Image + true + + Default + + 296 + false + false + + + 1.0 + 0.0 + + + 0.0 + 1.0 + + + 0 + 0 + + false + 0 + 0 + 1 + pictures/Disconnected.png + + + + + 401 + + 69 + + + true + 1 + 6cc102d7:13895a319f6:-6404 + true + + 16 + Label_17 + + true + true + false + + false + false + + + + + + + Label + true + PV Security + + + + 73 + 0 + + 1 + + + + 1 + + 336 + true + $(pv_name) +$(pv_value) + 499 + + + 0 + 0 + true + 6cc102d7:13895a319f6:-6403 + true + + 160 + Image_1 + false + + true + true + false + + + + + + + + Image + true + + Default + + 300 + false + false + + + 1.0 + 0.0 + + + 0.0 + 1.0 + + + 0 + 0 + + false + 0 + 0 + 1 + pictures/Write_forbidden.png + + + + + 392 + + 386 + + + true + 1 + 6cc102d7:13895a319f6:-63ff + true + + 16 + Label_18 + + true + true + false + + false + false + + + + + + + Label + true + PV Widget + + + + 66 + 0 + + 1 + + + + 1 + + 267 + true + $(pv_name) +$(pv_value) + 356 + + + false + true + 6cc102d7:13895a319f6:-63d5 + + 37 + + Action Button_1 + false + + true + true + false + + + + + + + + + Action Button + true + Go Home + false + + Default Bold + + 104 + 0 + 0 + pictures/home-16x16.png + + + false + 1 + + + + 540 + + + main.opi + + true + + 1 + + + + $(pv_name) +$(pv_value) + 25 + + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/9_Border.opi b/core/base/tools/commander/workspace_template/Displays/BOY Examples/9_Border.opi new file mode 100644 index 000000000..54f837e1f --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/BOY Examples/9_Border.opi @@ -0,0 +1,1551 @@ + + + false + + true + sim://noise + Best OPI Yet + + -3d426973:1382a253902:-70c5 + 3.2.18.qualifier + + true + 600 + + true + false + + + + + + + Display + true + 800 + + true + 4 + + true + -1 + -1 + + + -1 + -1 + + true + 1 + -3d426973:1382a253902:-70c4 + false + + 59 + Label_6 + + true + true + false + + false + false + + + + + + + Label + true + Every widget can have border, which is set by three properties: Border Color, Border Style and Border Width. +A PV widget may have "Border Alarm Sensitive" property, which will show predefined alarm borders on PV alarms. + + Default + + 745 + 14 + + 1 + + + + 0 + + 102 + true + + 26 + + + true + 1 + -3d426973:1382a253902:-70c3 + false + + 86 + Label_8 + + true + true + false + + false + false + + + + + + + Label + true + Border + + + + 295 + 0 + + 1 + + + + 1 + + 3 + true + + 26 + + + true + 1 + -3d426973:1382a253902:-70c2 + false + + 43 + Label_6 + + true + true + false + + false + false + + + + + + + Label + true + Examples + + + + 451 + 0 + + 1 + + + + 1 + + 46 + true + + 320 + + + true + 1 + -3d426973:1382a253902:-70c1 + false + + 44 + Label_9 + + true + true + false + + false + false + + + + + + + Label + true + Best OPI Yet (BOY) + + + + 451 + 0 + + 1 + + + + 1 + + 3 + true + + 320 + + + true + 1 + -3d426973:1382a253902:-708b + false + + 45 + Label + + true + true + false + + false + false + + + + + + + Label + true + Line Style + + Default + + 167 + 1 + + 2 + + + + 1 + + 168 + true + + 26 + + + true + 1 + -3d426973:1382a253902:-7087 + false + + 45 + Label_12 + + true + true + false + + false + false + + + + + + + Label + true + Raised Style + + Default + + 167 + 2 + + 1 + + + + 1 + + 168 + true + + 208 + + + true + 1 + -3d426973:1382a253902:-6f81 + false + + 45 + Label_13 + + true + true + false + + false + false + + + + + + + Label + true + Lowered Style + + Default + + 167 + 3 + + 1 + + + + 1 + + 168 + true + + 390 + + + true + 1 + -3d426973:1382a253902:-6f6f + false + + 45 + Label_14 + + true + true + false + + false + false + + + + + + + Label + true + Etched Style + + Default + + 167 + 4 + + 1 + + + + 1 + + 168 + true + + 568 + + + true + 1 + -3d426973:1382a253902:-6f5d + false + + 45 + Label_15 + + true + true + false + + false + false + + + + + + + Label + true + Ridged Style + + Default + + 167 + 5 + + 1 + + + + 1 + + 225 + true + + 26 + + + true + 1 + -3d426973:1382a253902:-6f2a + false + + 45 + Label_16 + + true + true + false + + false + false + + + + + + + Label + true + Button Raised Style + + Default + + 167 + 6 + + 1 + + + + 1 + + 225 + true + + 208 + + + true + 1 + -3d426973:1382a253902:-6f12 + false + + 45 + Label_17 + + true + true + false + + false + false + + + + + + + Label + true + Button Pressed Style + + Default + + 167 + 7 + + 1 + + + + 1 + + 225 + true + + 390 + + + true + 1 + -3d426973:1382a253902:-6f00 + false + + 45 + Label_18 + + true + true + false + + false + false + + + + + + + Label + true + Dot Style + + Default + + 167 + 8 + + 2 + + + + 1 + + 225 + true + + 568 + + + true + 1 + -3d426973:1382a253902:-6ee6 + false + + 45 + Label_19 + + true + true + false + + false + false + + + + + + + Label + true + Dash Style + + Default + + 167 + 9 + + 2 + + + + 1 + + 284 + true + + 26 + + + true + 1 + -3d426973:1382a253902:-6e72 + false + + 45 + Label_20 + + true + true + false + + false + false + + + + + + + Label + true + Dash Dot Style + + Default + + 167 + 10 + + 2 + + + + 1 + + 284 + true + + 208 + + + true + 1 + -3d426973:1382a253902:-6e60 + false + + 45 + Label_21 + + true + true + false + + false + false + + + + + + + Label + true + Dash Dot Dot Style + + Default + + 167 + 11 + + 2 + + + + 1 + + 284 + true + + 390 + + + true + 1 + -3d426973:1382a253902:-6e4e + false + + 45 + Title + + true + true + false + + false + false + + + + + + + Label + true + Title Bar Style + + Default + + 167 + 12 + + 2 + + + + 1 + + 284 + true + + 568 + + + true + 1 + -3d426973:1382a253902:-6e20 + false + + 75 + Hello + + true + true + false + + false + false + + + + + + + Label + true + Group Box Style + + Default + + 167 + 13 + + 2 + + + + 1 + + 353 + true + + 26 + + + true + 1 + -3d426973:1382a253902:-6dbc + false + + 75 + Label_22 + + true + true + false + + true + false + + + + + + + Label + true + Round Rectangle +Background Style + + Default + + 167 + 14 + + 1 + + + + 1 + + 353 + true + + 208 + + + 20.0 + false + true + + + + true + + 76 + 50 + false + + + + true + Meter + true + + Default + + 167 + true + 14 + + true + true + 100.0 + 2 + false + 0.0 + -3d426973:1382a253902:-6dbb + true + + true + + + + Meter + + true + true + true + + sim://noise + + + + + + + false + 80.0 + + Default + + 90.0 + true + + + + + + true + + + + true + + + + 10.0 + 353 + + 390 + $(pv_name) +$(pv_value) + + + + true + + true + -3d426973:1382a253902:-6dba + + 75 + Grouping Container + + true + true + false + + true + false + + + + + + + true + Grouping Container + + Default + + 167 + 14 + + true + 0 + + + + 353 + + 568 + + + true + true + -64612ba8:138158e76d0:-7e34 + + false + + + + 29 + 0 + LED_1 + false + false + + true + true + true + + + + + + + + + + + + OFF + LED + true + false + + Default + + 29 + 0 + true + + + -1 + 1 + ON + + + + + 5 + $(pv_name) +$(pv_value) + 13 + + + true + true + -1.7976931348623157E308 + 1 + -64612ba8:138158e76d0:-7e26 + + 24 + Spinner + false + + true + true + false + + 10.0 + false + false + + false + + + + + + + Spinner + true + 1.0 + false + 3 + + Default + + 85 + 3 + 0 + + + 1 + 1.7976931348623157E308 + true + + + + 1 + + 8 + $(pv_name) +$(pv_value) + 57 + + + true + true + -1.7976931348623157E308 + 1 + -64612ba8:138158e76d0:-7e0f + + 24 + Spinner_1 + false + + true + true + false + + 10.0 + false + false + + false + + + + + + + Spinner + true + 1.0 + false + 3 + + Default + + 85 + 3 + 0 + + + 1 + 1.7976931348623157E308 + true + + + + 1 + + 37 + $(pv_name) +$(pv_value) + 57 + + + true + true + -64612ba8:138158e76d0:-7e0b + + false + + + + 29 + 0 + LED_1 + false + false + + true + true + true + + + + + + + + + + + + OFF + LED + true + false + + Default + + 29 + 0 + true + + + -1 + 1 + ON + + + + + 34 + $(pv_name) +$(pv_value) + 13 + + + + true + true + 0.0 + + + + -89f6aea:1383380b141:-7d69 + + + + + 49 + true + Rectangle + false + 255 + + true + true + false + + false + sim://noise + + + + + + + Rectangle + true + + + + false + + Default + + 167 + 0 + 0 + + + 1 + 0 + true + + + + + 470 + $(pv_name) +$(pv_value) + 26 + false + + + true + 1 + -89f6aea:1383380b141:-7d13 + false + + 35 + Label_23 + + true + true + false + + true + false + + + + + + + Label + true + Line Alarm Border + + Default + + 127 + 0 + + 1 + + + + 1 + + 477 + true + + 46 + + + true + true + 0.0 + + + + -89f6aea:1383380b141:-7ce5 + + + + + 49 + true + Rectangle_1 + false + 255 + + true + true + false + + false + sim://noise + + + + + + + Rectangle + true + + + + false + + Default + + 167 + 0 + 9 + + + 0 + 0 + true + + + + + 470 + $(pv_name) +$(pv_value) + 208 + false + + + true + 1 + -89f6aea:1383380b141:-7ce4 + false + + 35 + Label_24 + + true + true + false + + true + false + + + + + + + Label + true + Dash Alarm Border + + Default + + 127 + 0 + + 1 + + + + 1 + + 477 + true + + 228 + + + true + true + 0.0 + + + + -89f6aea:1383380b141:-7cdf + + + + + 49 + true + Rectangle_2 + false + 255 + + true + true + false + + false + sim://noise + + + + + + + Rectangle + true + + + + false + + Default + + 167 + 0 + 8 + + + 0 + 0 + true + + + + + 470 + $(pv_name) +$(pv_value) + 390 + false + + + true + 1 + -89f6aea:1383380b141:-7cde + false + + 35 + Label_25 + + true + true + false + + true + false + + + + + + + Label + true + Dot Alarm Border + + Default + + 127 + 0 + + 1 + + + + 1 + + 477 + true + + 410 + + + true + true + 0.0 + + + + -89f6aea:1383380b141:-7cad + + + + + 49 + true + Rectangle_3 + false + 255 + + true + true + false + + false + sim://noise + + + + + + + Rectangle + true + + + + false + + Default + + 167 + 0 + 11 + + + 0 + 0 + true + + + + + 470 + $(pv_name) +$(pv_value) + 568 + false + + + true + 1 + -89f6aea:1383380b141:-7cac + false + + 35 + Label_26 + + true + true + false + + true + false + + + + + + + Label + true + Dash Dot Dot Alarm Border + + Default + + 117 + 0 + + 1 + + + + 1 + + 477 + true + + 593 + + + false + true + 6cc102d7:13895a319f6:-63a8 + + 37 + + Action Button_1 + false + + true + true + false + + + + + + + + + Action Button + true + Go Home + false + + Default Bold + + 104 + 0 + 0 + pictures/home-16x16.png + + + false + 1 + + + + 545 + + + main.opi + + true + + 1 + + + + $(pv_name) +$(pv_value) + 26 + + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/ArraysOperation/ByteArrayToString.opi b/core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/ArraysOperation/ByteArrayToString.opi new file mode 100644 index 000000000..0fa527dc0 --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/ArraysOperation/ByteArrayToString.opi @@ -0,0 +1,131 @@ + + + false + + true + + -222e8d7b:13cb18e600d:-760d + 3.1.4.qualifier + + true + 600 + Display + true + true + + + + + + + Display + true + 800 + + true + 6 + + false + -1 + -1 + + + -1 + -1 + + true + true + 1 + true + -222e8d7b:13cb18e600d:-760c + false + 0.0 + + + sim://const(67,68,69,70,71,72,73) + + + 49 + Text Update + false + + true + true + false + + 0 + true + false + + + + + + + + Text Update + true + ###### + false + 0 + + + + 238 + 0 + + + 1 + + + + 1 + + 132 + false + $(pv_name) +$(pv_value) + 222 + + + true + 1 + -222e8d7b:13cb18e600d:-760b + true + + 14 + Label + + true + true + false + + false + false + + + + + + + Label + true + This is a string converted from a byte array PV: + + + + 251 + 0 + + 1 + + + + 1 + + 102 + true + + 222 + + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/ArraysOperation/ConvertByteArrayToString.js b/core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/ArraysOperation/ConvertByteArrayToString.js new file mode 100644 index 000000000..f238c3a12 --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/ArraysOperation/ConvertByteArrayToString.js @@ -0,0 +1,11 @@ +importPackage(Packages.org.csstudio.opibuilder.scriptUtil); + +var dblArray = PVUtil.getLongArray(pvArray[0]); + +var string = ""; + +for(var i=0; i + + 800 + + + + + true + + true + true + true + 6 + 600 + Display + + + + + + + -1 + true + Display + -1 + + 187 + + + loc://testArray(0.1,0.2,2.3,45,123.4,45.6) + + + 0 + + $(pv_name) +$(pv_value) + + + + 1 + false + true + + + + + 277 + false + + + + Text Update + 0 + false + 1 + + true + ###### + true + Text Update + + + + true + 108 + true + false + 0 + 1 + 276 + + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/ArraysOperation/GenerateSimuArray.js b/core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/ArraysOperation/GenerateSimuArray.js new file mode 100644 index 000000000..50c3aabaf --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/ArraysOperation/GenerateSimuArray.js @@ -0,0 +1,19 @@ +importPackage(Packages.org.csstudio.opibuilder.scriptUtil); + +var xArray = DataUtil.createDoubleArray(100); +var yArray = DataUtil.createDoubleArray(100); + +var xPV = pvArray[0]; +var yPV = pvArray[1]; +var sPVValue = PVUtil.getDouble(pvs[2]); + + +for(var i=0; i<100; i++){ + xArray[i] = i*0.25+sPVValue; + yArray[i] = Math.sin(i*0.25+sPVValue); +} + + + +xPV.setValue(xArray); +yPV.setValue(yArray); diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/ArraysOperation/PlotFirstNPointsExample.opi b/core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/ArraysOperation/PlotFirstNPointsExample.opi new file mode 100644 index 000000000..425410e49 --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/ArraysOperation/PlotFirstNPointsExample.opi @@ -0,0 +1,311 @@ + + + false + + true + + + true + 600 + + true + true + + + + + + + Display + true + 800 + + true + 6 + + -1 + -1 + + 3 + + + + true + 0 + 6 + 0 + 2 + true + false + $(trace_1_y_pv) + 4 + true + 120 + 18 + true + true + 250 + 1.0 + + + + 1 + + + + + XY Graph + 0.0 + 1 + true + 100 + true + + + + 2 + 0.0 + $(trace_0_y_pv) + true + 0 + 500 + Primary X Axis (0) + + + + + + + 0 + false + Primary Y Axis (1) + 100.0 + + + + 0 + 0 + false + 3 + + + + true + true + false + + + $(pv_name) + + + + false + false + + + false + XY Graph + true + 577 + 500 + + 2 + false + true + 0 + 1 + $(trace_0_y_pv) +$(trace_0_y_pv_value) + true + 0 + 1 + + + + 0 + + + + + <trace_1_y_pv>loc://arrayCut</trace_1_y_pv> + <pv_name>loc://arrayY</pv_name> + <axis_1_minimum>-1.0</axis_1_minimum> + <axis_0_minimum>0.0</axis_0_minimum> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <scripts> + <path pathString="GenerateSimuArray.js" checkConnect="true" sfe="false"> + <pv trig="false">loc://arrayX</pv> + <pv trig="false">loc://arrayY</pv> + <pv trig="true">sim://ramp(0,10,1,2)</pv> + </path> + <path pathString="CutFirstNPoints.js" checkConnect="true" sfe="false"> + <pv trig="true">loc://arrayY</pv> + <pv trig="false">loc://arrayCut</pv> + <pv trig="true">loc://cutNum(20)</pv> + </path> + </scripts> + <trace_0_anti_alias>true</trace_0_anti_alias> + <background_color> + <color red="240" green="240" blue="240" /> + </background_color> + <trace_1_trace_color> + <color red="242" green="26" blue="26" /> + </trace_1_trace_color> + <trace_1_y_axis_index>1</trace_1_y_axis_index> + <trace_1_concatenate_data>false</trace_1_concatenate_data> + <rules /> + <trace_0_trace_type>0</trace_0_trace_type> + <axis_1_grid_color> + <color red="200" green="200" blue="200" /> + </axis_1_grid_color> + <trace_0_update_delay>100</trace_0_update_delay> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.Label" version="1.0"> + <visible>true</visible> + <vertical_alignment>1</vertical_alignment> + <auto_size>false</auto_size> + <scripts /> + <height>67</height> + <name>Label</name> + <transparent>false</transparent> + <background_color> + <color red="255" green="255" blue="191" /> + </background_color> + <foreground_color> + <color red="0" green="0" blue="0" /> + </foreground_color> + <widget_type>Label</widget_type> + <enabled>true</enabled> + <text>This example shows how to plot the first n points of an array. Similarly, you can also manipulate the data in other way you want before plotting it.</text> + <font> + <opifont.name>Default</opifont.name> + </font> + <width>565</width> + <border_style>0</border_style> + <rules /> + <border_width>1</border_width> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <horizontal_alignment>1</horizontal_alignment> + <actions hook="false" /> + <y>18</y> + <tooltip /> + <x>24</x> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.scaledslider" version="1.0"> + <level_lo>20.0</level_lo> + <border_alarm_sensitive>true</border_alarm_sensitive> + <visible>true</visible> + <color_fillbackground> + <color red="200" green="200" blue="200" /> + </color_fillbackground> + <color_hihi> + <color red="255" green="0" blue="0" /> + </color_hihi> + <show_lo>true</show_lo> + <scripts /> + <thumb_color> + <color red="172" green="172" blue="172" /> + </thumb_color> + <height>96</height> + <major_tick_step_hint>50</major_tick_step_hint> + <forecolor_alarm_sensitive>false</forecolor_alarm_sensitive> + <page_increment>10.0</page_increment> + <background_color> + <color red="240" green="240" blue="240" /> + </background_color> + <enabled>true</enabled> + <widget_type>Scaled Slider</widget_type> + <show_minor_ticks>true</show_minor_ticks> + <font> + <opifont.name>Default</opifont.name> + </font> + <width>547</width> + <show_lolo>true</show_lolo> + <border_style>0</border_style> + <effect_3d>true</effect_3d> + <show_markers>false</show_markers> + <show_hi>true</show_hi> + <maximum>100.0</maximum> + <border_width>1</border_width> + <horizontal>true</horizontal> + <log_scale>false</log_scale> + <minimum>1.0</minimum> + <show_hihi>true</show_hihi> + <scale_format /> + <show_scale>true</show_scale> + <color_lo> + <color red="255" green="128" blue="0" /> + </color_lo> + <name>Scaled Slider</name> + <color_hi> + <color red="255" green="128" blue="0" /> + </color_hi> + <pv_name>loc://cutNum(20)</pv_name> + <foreground_color> + <color red="0" green="0" blue="0" /> + </foreground_color> + <step_increment>1.0</step_increment> + <backcolor_alarm_sensitive>false</backcolor_alarm_sensitive> + <level_hi>80.0</level_hi> + <scale_font> + <opifont.name>Default</opifont.name> + </scale_font> + <level_hihi>90.0</level_hihi> + <fill_color> + <color red="0" green="0" blue="255" /> + </fill_color> + <color_lolo> + <color red="255" green="0" blue="0" /> + </color_lolo> + <rules /> + <value_label_format /> + <transparent_background>true</transparent_background> + <limits_from_pv>false</limits_from_pv> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <level_lolo>10.0</level_lolo> + <y>390</y> + <actions hook="false" /> + <x>48</x> + <tooltip>$(pv_name) +$(pv_value)</tooltip> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.Label" version="1.0"> + <visible>true</visible> + <vertical_alignment>1</vertical_alignment> + <auto_size>false</auto_size> + <scripts /> + <height>20</height> + <name>Label_1</name> + <transparent>true</transparent> + <background_color> + <color red="255" green="255" blue="255" /> + </background_color> + <foreground_color> + <color red="0" green="0" blue="0" /> + </foreground_color> + <widget_type>Label</widget_type> + <enabled>true</enabled> + <text>Number of points to be cut</text> + <font> + <opifont.name>Default</opifont.name> + </font> + <width>150</width> + <border_style>0</border_style> + <rules /> + <border_width>1</border_width> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <horizontal_alignment>1</horizontal_alignment> + <actions hook="false" /> + <y>402</y> + <tooltip /> + <x>247</x> + </widget> +</display> \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/ArraysOperation/PlotSimuArray.opi b/core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/ArraysOperation/PlotSimuArray.opi new file mode 100644 index 000000000..4f1d1a6d5 --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/ArraysOperation/PlotSimuArray.opi @@ -0,0 +1,179 @@ +<?xml version="1.0" encoding="UTF-8"?> +<display typeId="org.csstudio.opibuilder.Display" version="1.0"> + <auto_zoom_to_fit_all>false</auto_zoom_to_fit_all> + <macros> + <include_parent_macros>true</include_parent_macros> + </macros> + <scripts /> + <show_ruler>true</show_ruler> + <height>600</height> + <name>Display</name> + <snap_to_geometry>true</snap_to_geometry> + <show_grid>true</show_grid> + <background_color> + <color red="240" green="240" blue="240" /> + </background_color> + <foreground_color> + <color red="192" green="192" blue="192" /> + </foreground_color> + <widget_type>Display</widget_type> + <show_close_button>true</show_close_button> + <width>800</width> + <rules /> + <show_edit_range>true</show_edit_range> + <grid_space>6</grid_space> + <actions hook="false" /> + <y>-1</y> + <x>-1</x> + <widget typeId="org.csstudio.opibuilder.widgets.xyGraph" version="1.0"> + <trace_0_trace_color> + <color red="255" green="0" blue="0" /> + </trace_0_trace_color> + <axis_0_auto_scale>true</axis_0_auto_scale> + <axis_1_time_format>0</axis_1_time_format> + <trace_0_plot_mode>0</trace_0_plot_mode> + <trace_count>1</trace_count> + <axis_0_show_grid>true</axis_0_show_grid> + <axis_0_log_scale>false</axis_0_log_scale> + <trace_0_point_size>4</trace_0_point_size> + <show_legend>true</show_legend> + <y>186</y> + <x>60</x> + <visible>true</visible> + <axis_1_visible>true</axis_1_visible> + <height>325</height> + <axis_1_maximum>100.0</axis_1_maximum> + <axis_1_title_font> + <fontdata fontName="Arial" height="9" style="1" /> + </axis_1_title_font> + <border_width>1</border_width> + <axis_0_axis_color> + <color red="0" green="0" blue="0" /> + </axis_0_axis_color> + <axis_1_scale_format /> + <name>XY Graph</name> + <axis_1_auto_scale_threshold>0.0</axis_1_auto_scale_threshold> + <trace_0_line_width>2</trace_0_line_width> + <show_toolbar>true</show_toolbar> + <axis_1_show_grid>true</axis_1_show_grid> + <axis_0_grid_color> + <color red="200" green="200" blue="200" /> + </axis_0_grid_color> + <axis_0_auto_scale_threshold>0.0</axis_0_auto_scale_threshold> + <trace_0_name>$(trace_0_y_pv)</trace_0_name> + <trace_0_update_mode>0</trace_0_update_mode> + <axis_0_axis_title>Primary X Axis (0)</axis_0_axis_title> + <axis_1_axis_color> + <color red="0" green="0" blue="0" /> + </axis_1_axis_color> + <foreground_color> + <color red="0" green="0" blue="255" /> + </foreground_color> + <backcolor_alarm_sensitive>false</backcolor_alarm_sensitive> + <axis_1_axis_title>Primary Y Axis (1)</axis_1_axis_title> + <axis_0_maximum>100.0</axis_0_maximum> + <axis_0_scale_font> + <fontdata fontName="Segoe UI" height="9" style="0" /> + </axis_0_scale_font> + <axis_0_time_format>0</axis_0_time_format> + <axis_1_log_scale>false</axis_1_log_scale> + <title_font> + <fontdata fontName="Arial" height="12" style="1" /> + </title_font> + <axis_1_dash_grid_line>true</axis_1_dash_grid_line> + <axis_0_visible>true</axis_0_visible> + <forecolor_alarm_sensitive>false</forecolor_alarm_sensitive> + <axis_0_scale_format /> + <trace_0_x_pv>loc://xArrayPV</trace_0_x_pv> + <trace_0_y_pv>loc://yArrayPV</trace_0_y_pv> + <axis_0_title_font> + <fontdata fontName="Arial" height="9" style="1" /> + </axis_0_title_font> + <axis_1_auto_scale>true</axis_1_auto_scale> + <trace_0_concatenate_data>false</trace_0_concatenate_data> + <actions hook="false" /> + <show_plot_area_border>false</show_plot_area_border> + <widget_type>XY Graph</widget_type> + <enabled>true</enabled> + <width>565</width> + <trace_0_buffer_size>400</trace_0_buffer_size> + <trigger_pv /> + <axis_count>2</axis_count> + <transparent>false</transparent> + <axis_0_dash_grid_line>true</axis_0_dash_grid_line> + <trace_0_x_axis_index>0</trace_0_x_axis_index> + <trace_0_point_style>1</trace_0_point_style> + <tooltip>$(trace_0_y_pv) +$(trace_0_y_pv_value)</tooltip> + <border_alarm_sensitive>true</border_alarm_sensitive> + <trace_0_y_axis_index>1</trace_0_y_axis_index> + <axis_1_scale_font> + <fontdata fontName="Segoe UI" height="9" style="0" /> + </axis_1_scale_font> + <border_style>0</border_style> + <plot_area_background_color> + <color red="255" green="255" blue="255" /> + </plot_area_background_color> + <title /> + <pv_name /> + <axis_1_minimum>0.0</axis_1_minimum> + <axis_0_minimum>0.0</axis_0_minimum> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <scripts> + <path pathString="GenerateSimuArray.js" checkConnect="true" sfe="false"> + <pv trig="false">loc://xArrayPV</pv> + <pv trig="false">loc://yArrayPV</pv> + <pv trig="true">sim://ramp(0,100,1,0.5)</pv> + </path> + </scripts> + <trace_0_anti_alias>true</trace_0_anti_alias> + <background_color> + <color red="240" green="240" blue="240" /> + </background_color> + <rules /> + <trace_0_trace_type>3</trace_0_trace_type> + <axis_1_grid_color> + <color red="200" green="200" blue="200" /> + </axis_1_grid_color> + <trace_0_update_delay>100</trace_0_update_delay> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.Label" version="1.0"> + <visible>true</visible> + <vertical_alignment>1</vertical_alignment> + <auto_size>false</auto_size> + <scripts /> + <height>121</height> + <name>Label</name> + <transparent>false</transparent> + <background_color> + <color red="255" green="255" blue="191" /> + </background_color> + <foreground_color> + <color red="0" green="0" blue="0" /> + </foreground_color> + <widget_type>Label</widget_type> + <enabled>true</enabled> + <text>This example will plot two array PVs whose data are generated from a script: GenerateSimuArray.js +In this example, you will learn: + - How to generate data from javascript. + - How to write array data to PV. + - How to plot two arrays.</text> + <font> + <opifont.name>Default</opifont.name> + </font> + <width>565</width> + <border_style>0</border_style> + <rules /> + <border_width>1</border_width> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <horizontal_alignment>1</horizontal_alignment> + <actions hook="false" /> + <y>48</y> + <tooltip /> + <x>60</x> + </widget> +</display> \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/CalculatorExample/Calculator.opi b/core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/CalculatorExample/Calculator.opi new file mode 100644 index 000000000..6040da9e2 --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/CalculatorExample/Calculator.opi @@ -0,0 +1,860 @@ +<?xml version="1.0" encoding="UTF-8"?> +<display typeId="org.csstudio.opibuilder.Display" version="1.0"> + <auto_zoom_to_fit_all>false</auto_zoom_to_fit_all> + <macros> + <include_parent_macros>true</include_parent_macros> + </macros> + <wuid>1f1d1c28:133a7c4b96d:-7fd6</wuid> + <boy_version>3.1.1.qualifier</boy_version> + <scripts> + <path pathString="init.py" checkConnect="true" sfe="false" seoe="false"> + <pv trig="true">1</pv> + </path> + </scripts> + <show_ruler>true</show_ruler> + <height>220</height> + <name>Calculator by BOY</name> + <snap_to_geometry>true</snap_to_geometry> + <show_grid>true</show_grid> + <background_color> + <color red="240" green="240" blue="240" /> + </background_color> + <foreground_color> + <color red="192" green="192" blue="192" /> + </foreground_color> + <widget_type>Display</widget_type> + <show_close_button>true</show_close_button> + <width>180</width> + <rules /> + <show_edit_range>true</show_edit_range> + <grid_space>6</grid_space> + <auto_scale_widgets> + <auto_scale_widgets>true</auto_scale_widgets> + <min_width>-1</min_width> + <min_height>-1</min_height> + </auto_scale_widgets> + <actions hook="false" hook_all="false" /> + <y>-1</y> + <x>-1</x> + <widget typeId="org.csstudio.opibuilder.widgets.NativeButton" version="1.0"> + <border_alarm_sensitive>false</border_alarm_sensitive> + <visible>true</visible> + <wuid>23229793:138968b5218:-7d48</wuid> + <scripts /> + <height>37</height> + <name>=</name> + <forecolor_alarm_sensitive>false</forecolor_alarm_sensitive> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>false</keep_wh_ratio> + </scale_options> + <pv_name></pv_name> + <foreground_color> + <color red="0" green="0" blue="0" /> + </foreground_color> + <widget_type>Button</widget_type> + <enabled>true</enabled> + <text>=</text> + <font> + <opifont.name fontName="Sans" height="10" style="1">Default Bold</opifont.name> + </font> + <width>37</width> + <border_style>0</border_style> + <push_action_index>0</push_action_index> + <image></image> + <rules /> + <pv_value /> + <toggle_button>false</toggle_button> + <border_width>1</border_width> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <y>168</y> + <actions hook="false" hook_all="false"> + <action type="EXECUTE_PYTHONSCRIPT"> + <path></path> + <scriptText><![CDATA[from org.csstudio.opibuilder.scriptUtil import PVUtil +display.getVar("calc").calc()]]></scriptText> + <embedded>true</embedded> + <description></description> + </action> + </actions> + <tooltip>$(pv_name) +$(pv_value)</tooltip> + <x>132</x> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.NativeButton" version="1.0"> + <border_alarm_sensitive>false</border_alarm_sensitive> + <visible>true</visible> + <wuid>23229793:138968b5218:-7d43</wuid> + <scripts /> + <height>37</height> + <name>+</name> + <forecolor_alarm_sensitive>false</forecolor_alarm_sensitive> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>false</keep_wh_ratio> + </scale_options> + <pv_name></pv_name> + <foreground_color> + <color red="0" green="0" blue="0" /> + </foreground_color> + <widget_type>Button</widget_type> + <enabled>true</enabled> + <text>+</text> + <font> + <opifont.name fontName="Sans" height="10" style="1">Default Bold</opifont.name> + </font> + <width>37</width> + <border_style>0</border_style> + <push_action_index>0</push_action_index> + <image></image> + <rules /> + <pv_value /> + <toggle_button>false</toggle_button> + <border_width>1</border_width> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <y>168</y> + <actions hook="false" hook_all="false"> + <action type="EXECUTE_PYTHONSCRIPT"> + <path></path> + <scriptText><![CDATA[from org.csstudio.opibuilder.scriptUtil import PVUtil +display.getVar("calc").setOperator(widget.getPropertyValue("text"))]]></scriptText> + <embedded>true</embedded> + <description></description> + </action> + </actions> + <tooltip>$(pv_name) +$(pv_value)</tooltip> + <x>90</x> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.NativeButton" version="1.0"> + <border_alarm_sensitive>false</border_alarm_sensitive> + <visible>true</visible> + <wuid>23229793:138968b5218:-7d3d</wuid> + <scripts /> + <height>37</height> + <name>-</name> + <forecolor_alarm_sensitive>false</forecolor_alarm_sensitive> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>false</keep_wh_ratio> + </scale_options> + <pv_name></pv_name> + <foreground_color> + <color red="0" green="0" blue="0" /> + </foreground_color> + <widget_type>Button</widget_type> + <enabled>true</enabled> + <text>-</text> + <font> + <opifont.name fontName="Sans" height="10" style="1">Default Bold</opifont.name> + </font> + <width>37</width> + <border_style>0</border_style> + <push_action_index>0</push_action_index> + <image></image> + <rules /> + <pv_value /> + <toggle_button>false</toggle_button> + <border_width>1</border_width> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <y>168</y> + <actions hook="false" hook_all="false"> + <action type="EXECUTE_PYTHONSCRIPT"> + <path></path> + <scriptText><![CDATA[from org.csstudio.opibuilder.scriptUtil import PVUtil +display.getVar("calc").setOperator(widget.getPropertyValue("text"))]]></scriptText> + <embedded>true</embedded> + <description></description> + </action> + </actions> + <tooltip>$(pv_name) +$(pv_value)</tooltip> + <x>48</x> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.NativeButton" version="1.0"> + <border_alarm_sensitive>false</border_alarm_sensitive> + <visible>true</visible> + <wuid>23229793:138968b5218:-7d44</wuid> + <scripts /> + <height>37</height> + <name>*</name> + <forecolor_alarm_sensitive>false</forecolor_alarm_sensitive> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>false</keep_wh_ratio> + </scale_options> + <pv_name></pv_name> + <foreground_color> + <color red="0" green="0" blue="0" /> + </foreground_color> + <widget_type>Button</widget_type> + <enabled>true</enabled> + <text>*</text> + <font> + <opifont.name fontName="Sans" height="10" style="1">Default Bold</opifont.name> + </font> + <width>37</width> + <border_style>0</border_style> + <push_action_index>0</push_action_index> + <image></image> + <rules /> + <pv_value /> + <toggle_button>false</toggle_button> + <border_width>1</border_width> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <y>168</y> + <actions hook="false" hook_all="false"> + <action type="EXECUTE_PYTHONSCRIPT"> + <path></path> + <scriptText><![CDATA[from org.csstudio.opibuilder.scriptUtil import PVUtil +display.getVar("calc").setOperator(widget.getPropertyValue("text"))]]></scriptText> + <embedded>true</embedded> + <description></description> + </action> + </actions> + <tooltip>$(pv_name) +$(pv_value)</tooltip> + <x>6</x> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.NativeButton" version="1.0"> + <border_alarm_sensitive>false</border_alarm_sensitive> + <visible>true</visible> + <wuid>23229793:138968b5218:-7d46</wuid> + <scripts /> + <height>37</height> + <name>/</name> + <forecolor_alarm_sensitive>false</forecolor_alarm_sensitive> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>false</keep_wh_ratio> + </scale_options> + <pv_name></pv_name> + <foreground_color> + <color red="0" green="0" blue="0" /> + </foreground_color> + <widget_type>Button</widget_type> + <enabled>true</enabled> + <text>/</text> + <font> + <opifont.name fontName="Sans" height="10" style="1">Default Bold</opifont.name> + </font> + <width>37</width> + <border_style>0</border_style> + <push_action_index>0</push_action_index> + <image></image> + <rules /> + <pv_value /> + <toggle_button>false</toggle_button> + <border_width>1</border_width> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <y>126</y> + <actions hook="false" hook_all="false"> + <action type="EXECUTE_PYTHONSCRIPT"> + <path></path> + <scriptText><![CDATA[from org.csstudio.opibuilder.scriptUtil import PVUtil +display.getVar("calc").setOperator(widget.getPropertyValue("text"))]]></scriptText> + <embedded>true</embedded> + <description></description> + </action> + </actions> + <tooltip>$(pv_name) +$(pv_value)</tooltip> + <x>132</x> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.NativeButton" version="1.0"> + <border_alarm_sensitive>false</border_alarm_sensitive> + <visible>true</visible> + <wuid>23229793:138968b5218:-7d39</wuid> + <scripts /> + <height>37</height> + <name>.</name> + <forecolor_alarm_sensitive>false</forecolor_alarm_sensitive> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>false</keep_wh_ratio> + </scale_options> + <pv_name></pv_name> + <foreground_color> + <color red="0" green="0" blue="0" /> + </foreground_color> + <widget_type>Button</widget_type> + <enabled>true</enabled> + <text>.</text> + <font> + <opifont.name fontName="Sans" height="10" style="1">Default Bold</opifont.name> + </font> + <width>37</width> + <border_style>0</border_style> + <push_action_index>0</push_action_index> + <image></image> + <rules /> + <pv_value /> + <toggle_button>false</toggle_button> + <border_width>1</border_width> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <y>126</y> + <actions hook="false" hook_all="false"> + <action type="EXECUTE_PYTHONSCRIPT"> + <path></path> + <scriptText><![CDATA[from org.csstudio.opibuilder.scriptUtil import PVUtil +display.getVar("calc").appendDigit(widget.getPropertyValue("text"))]]></scriptText> + <embedded>true</embedded> + <description></description> + </action> + </actions> + <tooltip>$(pv_name) +$(pv_value)</tooltip> + <x>90</x> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.NativeButton" version="1.0"> + <border_alarm_sensitive>false</border_alarm_sensitive> + <visible>true</visible> + <wuid>23229793:138968b5218:-7d3b</wuid> + <scripts /> + <height>37</height> + <name>0</name> + <forecolor_alarm_sensitive>false</forecolor_alarm_sensitive> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>false</keep_wh_ratio> + </scale_options> + <pv_name></pv_name> + <foreground_color> + <color red="0" green="0" blue="0" /> + </foreground_color> + <widget_type>Button</widget_type> + <enabled>true</enabled> + <text>0</text> + <font> + <opifont.name fontName="Sans" height="10" style="1">Default Bold</opifont.name> + </font> + <width>37</width> + <border_style>0</border_style> + <push_action_index>0</push_action_index> + <image></image> + <rules /> + <pv_value /> + <toggle_button>false</toggle_button> + <border_width>1</border_width> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <y>126</y> + <actions hook="false" hook_all="false"> + <action type="EXECUTE_PYTHONSCRIPT"> + <path></path> + <scriptText><![CDATA[from org.csstudio.opibuilder.scriptUtil import PVUtil +display.getVar("calc").appendDigit(widget.getPropertyValue("text"))]]></scriptText> + <embedded>true</embedded> + <description></description> + </action> + </actions> + <tooltip>$(pv_name) +$(pv_value)</tooltip> + <x>48</x> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.NativeButton" version="1.0"> + <border_alarm_sensitive>false</border_alarm_sensitive> + <visible>true</visible> + <wuid>23229793:138968b5218:-7d42</wuid> + <scripts /> + <height>37</height> + <name>9</name> + <forecolor_alarm_sensitive>false</forecolor_alarm_sensitive> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>false</keep_wh_ratio> + </scale_options> + <pv_name></pv_name> + <foreground_color> + <color red="0" green="0" blue="0" /> + </foreground_color> + <widget_type>Button</widget_type> + <enabled>true</enabled> + <text>9</text> + <font> + <opifont.name fontName="Sans" height="10" style="1">Default Bold</opifont.name> + </font> + <width>37</width> + <border_style>0</border_style> + <push_action_index>0</push_action_index> + <image></image> + <rules /> + <pv_value /> + <toggle_button>false</toggle_button> + <border_width>1</border_width> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <y>126</y> + <actions hook="false" hook_all="false"> + <action type="EXECUTE_PYTHONSCRIPT"> + <path></path> + <scriptText><![CDATA[from org.csstudio.opibuilder.scriptUtil import PVUtil +display.getVar("calc").appendDigit(widget.getPropertyValue("text"))]]></scriptText> + <embedded>true</embedded> + <description></description> + </action> + </actions> + <tooltip>$(pv_name) +$(pv_value)</tooltip> + <x>6</x> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.NativeButton" version="1.0"> + <border_alarm_sensitive>false</border_alarm_sensitive> + <visible>true</visible> + <wuid>23229793:138968b5218:-7d3e</wuid> + <scripts /> + <height>37</height> + <name>8</name> + <forecolor_alarm_sensitive>false</forecolor_alarm_sensitive> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>false</keep_wh_ratio> + </scale_options> + <pv_name></pv_name> + <foreground_color> + <color red="0" green="0" blue="0" /> + </foreground_color> + <widget_type>Button</widget_type> + <enabled>true</enabled> + <text>8</text> + <font> + <opifont.name fontName="Sans" height="10" style="1">Default Bold</opifont.name> + </font> + <width>37</width> + <border_style>0</border_style> + <push_action_index>0</push_action_index> + <image></image> + <rules /> + <pv_value /> + <toggle_button>false</toggle_button> + <border_width>1</border_width> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <y>84</y> + <actions hook="false" hook_all="false"> + <action type="EXECUTE_PYTHONSCRIPT"> + <path></path> + <scriptText><![CDATA[from org.csstudio.opibuilder.scriptUtil import PVUtil +display.getVar("calc").appendDigit(widget.getPropertyValue("text"))]]></scriptText> + <embedded>true</embedded> + <description></description> + </action> + </actions> + <tooltip>$(pv_name) +$(pv_value)</tooltip> + <x>132</x> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.NativeButton" version="1.0"> + <border_alarm_sensitive>false</border_alarm_sensitive> + <visible>true</visible> + <wuid>23229793:138968b5218:-7d3a</wuid> + <scripts /> + <height>37</height> + <name>7</name> + <forecolor_alarm_sensitive>false</forecolor_alarm_sensitive> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>false</keep_wh_ratio> + </scale_options> + <pv_name></pv_name> + <foreground_color> + <color red="0" green="0" blue="0" /> + </foreground_color> + <widget_type>Button</widget_type> + <enabled>true</enabled> + <text>7</text> + <font> + <opifont.name fontName="Sans" height="10" style="1">Default Bold</opifont.name> + </font> + <width>37</width> + <border_style>0</border_style> + <push_action_index>0</push_action_index> + <image></image> + <rules /> + <pv_value /> + <toggle_button>false</toggle_button> + <border_width>1</border_width> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <y>84</y> + <actions hook="false" hook_all="false"> + <action type="EXECUTE_PYTHONSCRIPT"> + <path></path> + <scriptText><![CDATA[from org.csstudio.opibuilder.scriptUtil import PVUtil +display.getVar("calc").appendDigit(widget.getPropertyValue("text"))]]></scriptText> + <embedded>true</embedded> + <description></description> + </action> + </actions> + <tooltip>$(pv_name) +$(pv_value)</tooltip> + <x>90</x> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.NativeButton" version="1.0"> + <border_alarm_sensitive>false</border_alarm_sensitive> + <visible>true</visible> + <wuid>23229793:138968b5218:-7d45</wuid> + <scripts /> + <height>37</height> + <name>6</name> + <forecolor_alarm_sensitive>false</forecolor_alarm_sensitive> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>false</keep_wh_ratio> + </scale_options> + <pv_name></pv_name> + <foreground_color> + <color red="0" green="0" blue="0" /> + </foreground_color> + <widget_type>Button</widget_type> + <enabled>true</enabled> + <text>6</text> + <font> + <opifont.name fontName="Sans" height="10" style="1">Default Bold</opifont.name> + </font> + <width>37</width> + <border_style>0</border_style> + <push_action_index>0</push_action_index> + <image></image> + <rules /> + <pv_value /> + <toggle_button>false</toggle_button> + <border_width>1</border_width> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <y>84</y> + <actions hook="false" hook_all="false"> + <action type="EXECUTE_PYTHONSCRIPT"> + <path></path> + <scriptText><![CDATA[from org.csstudio.opibuilder.scriptUtil import PVUtil +display.getVar("calc").appendDigit(widget.getPropertyValue("text"))]]></scriptText> + <embedded>true</embedded> + <description></description> + </action> + </actions> + <tooltip>$(pv_name) +$(pv_value)</tooltip> + <x>48</x> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.NativeButton" version="1.0"> + <border_alarm_sensitive>false</border_alarm_sensitive> + <visible>true</visible> + <wuid>23229793:138968b5218:-7d40</wuid> + <scripts /> + <height>37</height> + <name>5</name> + <forecolor_alarm_sensitive>false</forecolor_alarm_sensitive> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>false</keep_wh_ratio> + </scale_options> + <pv_name></pv_name> + <foreground_color> + <color red="0" green="0" blue="0" /> + </foreground_color> + <widget_type>Button</widget_type> + <enabled>true</enabled> + <text>5</text> + <font> + <opifont.name fontName="Sans" height="10" style="1">Default Bold</opifont.name> + </font> + <width>37</width> + <border_style>0</border_style> + <push_action_index>0</push_action_index> + <image></image> + <rules /> + <pv_value /> + <toggle_button>false</toggle_button> + <border_width>1</border_width> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <y>84</y> + <actions hook="false" hook_all="false"> + <action type="EXECUTE_PYTHONSCRIPT"> + <path></path> + <scriptText><![CDATA[from org.csstudio.opibuilder.scriptUtil import PVUtil +display.getVar("calc").appendDigit(widget.getPropertyValue("text"))]]></scriptText> + <embedded>true</embedded> + <description></description> + </action> + </actions> + <tooltip>$(pv_name) +$(pv_value)</tooltip> + <x>6</x> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.NativeButton" version="1.0"> + <border_alarm_sensitive>false</border_alarm_sensitive> + <visible>true</visible> + <wuid>23229793:138968b5218:-7d3f</wuid> + <scripts /> + <height>37</height> + <name>4</name> + <forecolor_alarm_sensitive>false</forecolor_alarm_sensitive> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>false</keep_wh_ratio> + </scale_options> + <pv_name></pv_name> + <foreground_color> + <color red="0" green="0" blue="0" /> + </foreground_color> + <widget_type>Button</widget_type> + <enabled>true</enabled> + <text>4</text> + <font> + <opifont.name fontName="Sans" height="10" style="1">Default Bold</opifont.name> + </font> + <width>37</width> + <border_style>0</border_style> + <push_action_index>0</push_action_index> + <image></image> + <rules /> + <pv_value /> + <toggle_button>false</toggle_button> + <border_width>1</border_width> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <y>42</y> + <actions hook="false" hook_all="false"> + <action type="EXECUTE_PYTHONSCRIPT"> + <path></path> + <scriptText><![CDATA[from org.csstudio.opibuilder.scriptUtil import PVUtil +display.getVar("calc").appendDigit(widget.getPropertyValue("text"))]]></scriptText> + <embedded>true</embedded> + <description></description> + </action> + </actions> + <tooltip>$(pv_name) +$(pv_value)</tooltip> + <x>132</x> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.NativeButton" version="1.0"> + <border_alarm_sensitive>false</border_alarm_sensitive> + <visible>true</visible> + <wuid>23229793:138968b5218:-7d3c</wuid> + <scripts /> + <height>37</height> + <name>3</name> + <forecolor_alarm_sensitive>false</forecolor_alarm_sensitive> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>false</keep_wh_ratio> + </scale_options> + <pv_name></pv_name> + <foreground_color> + <color red="0" green="0" blue="0" /> + </foreground_color> + <widget_type>Button</widget_type> + <enabled>true</enabled> + <text>3</text> + <font> + <opifont.name fontName="Sans" height="10" style="1">Default Bold</opifont.name> + </font> + <width>37</width> + <border_style>0</border_style> + <push_action_index>0</push_action_index> + <image></image> + <rules /> + <pv_value /> + <toggle_button>false</toggle_button> + <border_width>1</border_width> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <y>42</y> + <actions hook="false" hook_all="false"> + <action type="EXECUTE_PYTHONSCRIPT"> + <path></path> + <scriptText><![CDATA[from org.csstudio.opibuilder.scriptUtil import PVUtil +display.getVar("calc").appendDigit(widget.getPropertyValue("text"))]]></scriptText> + <embedded>true</embedded> + <description></description> + </action> + </actions> + <tooltip>$(pv_name) +$(pv_value)</tooltip> + <x>90</x> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.NativeButton" version="1.0"> + <border_alarm_sensitive>false</border_alarm_sensitive> + <visible>true</visible> + <wuid>23229793:138968b5218:-7d41</wuid> + <scripts /> + <height>37</height> + <name>2</name> + <forecolor_alarm_sensitive>false</forecolor_alarm_sensitive> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>false</keep_wh_ratio> + </scale_options> + <pv_name></pv_name> + <foreground_color> + <color red="0" green="0" blue="0" /> + </foreground_color> + <widget_type>Button</widget_type> + <enabled>true</enabled> + <text>2</text> + <font> + <opifont.name fontName="Sans" height="10" style="1">Default Bold</opifont.name> + </font> + <width>37</width> + <border_style>0</border_style> + <push_action_index>0</push_action_index> + <image></image> + <rules /> + <pv_value /> + <toggle_button>false</toggle_button> + <border_width>1</border_width> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <y>42</y> + <actions hook="false" hook_all="false"> + <action type="EXECUTE_PYTHONSCRIPT"> + <path></path> + <scriptText><![CDATA[from org.csstudio.opibuilder.scriptUtil import PVUtil +display.getVar("calc").appendDigit(widget.getPropertyValue("text"))]]></scriptText> + <embedded>true</embedded> + <description></description> + </action> + </actions> + <tooltip>$(pv_name) +$(pv_value)</tooltip> + <x>48</x> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.NativeButton" version="1.0"> + <border_alarm_sensitive>false</border_alarm_sensitive> + <visible>true</visible> + <wuid>23229793:138968b5218:-7d47</wuid> + <scripts /> + <height>37</height> + <name>1</name> + <forecolor_alarm_sensitive>false</forecolor_alarm_sensitive> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>false</keep_wh_ratio> + </scale_options> + <pv_name></pv_name> + <foreground_color> + <color red="0" green="0" blue="0" /> + </foreground_color> + <widget_type>Button</widget_type> + <enabled>true</enabled> + <text>1</text> + <font> + <opifont.name fontName="Sans" height="10" style="1">Default Bold</opifont.name> + </font> + <width>37</width> + <border_style>0</border_style> + <push_action_index>0</push_action_index> + <image></image> + <rules /> + <pv_value /> + <toggle_button>false</toggle_button> + <border_width>1</border_width> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <y>42</y> + <actions hook="false" hook_all="false"> + <action type="EXECUTE_PYTHONSCRIPT"> + <path></path> + <scriptText><![CDATA[from org.csstudio.opibuilder.scriptUtil import PVUtil +display.getVar("calc").appendDigit(widget.getPropertyValue("text"))]]></scriptText> + <embedded>true</embedded> + <description></description> + </action> + </actions> + <tooltip>$(pv_name) +$(pv_value)</tooltip> + <x>6</x> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.NativeText" version="1.0"> + <border_alarm_sensitive>false</border_alarm_sensitive> + <read_only>true</read_only> + <visible>true</visible> + <minimum>-Infinity</minimum> + <show_units>true</show_units> + <multiline_input>false</multiline_input> + <wuid>23229793:138968b5218:-7cbf</wuid> + <show_native_border>true</show_native_border> + <auto_size>false</auto_size> + <scripts /> + <height>31</height> + <password_input>false</password_input> + <name>LCD</name> + <forecolor_alarm_sensitive>false</forecolor_alarm_sensitive> + <format_type>0</format_type> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>false</keep_wh_ratio> + </scale_options> + <precision_from_pv>true</precision_from_pv> + <pv_name></pv_name> + <foreground_color> + <color red="0" green="0" blue="0" /> + </foreground_color> + <background_color> + <color red="0" green="255" blue="255" /> + </background_color> + <enabled>true</enabled> + <widget_type>Text</widget_type> + <text>0</text> + <precision>0</precision> + <backcolor_alarm_sensitive>false</backcolor_alarm_sensitive> + <font> + <opifont.name fontName="Sans" height="10" style="1">Default Bold</opifont.name> + </font> + <width>163</width> + <border_style>0</border_style> + <rules /> + <pv_value /> + <maximum>Infinity</maximum> + <border_width>1</border_width> + <limits_from_pv>false</limits_from_pv> + <horizontal_alignment>2</horizontal_alignment> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <y>6</y> + <actions hook="false" hook_all="false" /> + <x>6</x> + <tooltip></tooltip> + </widget> +</display> \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/CalculatorExample/CalculatorModel.py b/core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/CalculatorExample/CalculatorModel.py new file mode 100644 index 000000000..37380affe --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/CalculatorExample/CalculatorModel.py @@ -0,0 +1,69 @@ +""" +The model of the calculator. + +@author: Xihui Chen +""" + +class CalculatorModel(object): + + def __init__(self, lcd): + + self.oper1 = '0' + self.oper2 = '0' + self.operator = None + self.lcd = lcd + + def setLCDText(self, text): + self.lcd.setPropertyValue("text", text) + + def appendDigit(self, digit): + ''' + Append a digit + ''' + if self.operator == None: + o = self.oper1 + else: + o = self.oper2 + + o = ('' if o == '0' else o) + digit + + if self.operator == None: + self.oper1 = o + else: + self.oper2 = o + + self.setLCDText(o) + def setOperator(self, operator): + self.oper1=self.lcd.getPropertyValue("text") + self.operator = operator + + def calc(self): + ''' + when equal is pressed + ''' + r = None + if self.operator == "+": + r = float(self.oper1) + float(self.oper2) + elif self.operator == "-": + r = float(self.oper1) - float(self.oper2) + elif self.operator == "*": + r = float(self.oper1) * float(self.oper2) + elif self.operator == "/": + r = float(self.oper1) / float(self.oper2) + self.operator=None + self.oper1='0' + self.oper2='0' + if r != None: + self.setLCDText('%g' % r) + + + + + + + + + + + + diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/CalculatorExample/EasyCalculator.opi b/core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/CalculatorExample/EasyCalculator.opi new file mode 100644 index 000000000..eccbffd9e --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/CalculatorExample/EasyCalculator.opi @@ -0,0 +1,261 @@ +<?xml version="1.0" encoding="UTF-8"?> +<display typeId="org.csstudio.opibuilder.Display" version="1.0"> + <auto_zoom_to_fit_all>false</auto_zoom_to_fit_all> + <macros> + <include_parent_macros>true</include_parent_macros> + </macros> + <wuid>-6578c973:134c2b2a246:-7f04</wuid> + <boy_version>3.1.0.qualifier</boy_version> + <scripts> + <path pathString="EasyCalculatorLogic.py" checkConnect="true" sfe="false" seoe="false"> + <pv trig="true">loc://op1</pv> + <pv trig="true">loc://op2</pv> + <pv trig="true">loc://operator</pv> + <pv trig="false">loc://result</pv> + </path> + </scripts> + <show_ruler>true</show_ruler> + <height>600</height> + <name /> + <snap_to_geometry>true</snap_to_geometry> + <show_grid>true</show_grid> + <background_color> + <color red="240" green="240" blue="240" /> + </background_color> + <foreground_color> + <color red="192" green="192" blue="192" /> + </foreground_color> + <widget_type>Display</widget_type> + <show_close_button>true</show_close_button> + <width>800</width> + <rules /> + <show_edit_range>true</show_edit_range> + <grid_space>6</grid_space> + <actions hook="false" hook_all="false" /> + <y>-1</y> + <x>-1</x> + <widget typeId="org.csstudio.opibuilder.widgets.TextInput" version="1.0"> + <border_alarm_sensitive>false</border_alarm_sensitive> + <visible>true</visible> + <minimum>-1.7976931348623157E308</minimum> + <vertical_alignment>1</vertical_alignment> + <show_units>false</show_units> + <multiline_input>false</multiline_input> + <wuid>-6578c973:134c2b2a246:-7eab</wuid> + <auto_size>false</auto_size> + <rotation_angle>0.0</rotation_angle> + <scripts /> + <height>25</height> + <forecolor_alarm_sensitive>false</forecolor_alarm_sensitive> + <name>op1</name> + <format_type>6</format_type> + <precision_from_pv>true</precision_from_pv> + <transparent>false</transparent> + <selector_type>0</selector_type> + <pv_name>loc://op1</pv_name> + <background_color> + <color red="255" green="255" blue="255" /> + </background_color> + <foreground_color> + <color red="0" green="0" blue="0" /> + </foreground_color> + <widget_type>Text Input</widget_type> + <enabled>true</enabled> + <text /> + <backcolor_alarm_sensitive>false</backcolor_alarm_sensitive> + <precision>0</precision> + <font> + <fontdata fontName="Verdana" height="11" style="1" /> + </font> + <width>115</width> + <border_style>3</border_style> + <rules /> + <pv_value /> + <border_width>1</border_width> + <maximum>1.7976931348623157E308</maximum> + <limits_from_pv>false</limits_from_pv> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <horizontal_alignment>0</horizontal_alignment> + <actions hook="false" hook_all="false" /> + <y>30</y> + <tooltip>$(pv_name) +$(pv_value)</tooltip> + <x>24</x> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.TextInput" version="1.0"> + <border_alarm_sensitive>false</border_alarm_sensitive> + <visible>true</visible> + <minimum>-1.7976931348623157E308</minimum> + <vertical_alignment>1</vertical_alignment> + <show_units>false</show_units> + <multiline_input>false</multiline_input> + <wuid>-6578c973:134c2b2a246:-7dcb</wuid> + <auto_size>false</auto_size> + <rotation_angle>0.0</rotation_angle> + <scripts /> + <height>25</height> + <forecolor_alarm_sensitive>false</forecolor_alarm_sensitive> + <name>op2</name> + <format_type>6</format_type> + <precision_from_pv>true</precision_from_pv> + <transparent>false</transparent> + <selector_type>0</selector_type> + <pv_name>loc://op2</pv_name> + <background_color> + <color red="255" green="255" blue="255" /> + </background_color> + <foreground_color> + <color red="0" green="0" blue="0" /> + </foreground_color> + <widget_type>Text Input</widget_type> + <enabled>true</enabled> + <text /> + <backcolor_alarm_sensitive>false</backcolor_alarm_sensitive> + <precision>0</precision> + <font> + <fontdata fontName="Verdana" height="11" style="1" /> + </font> + <width>115</width> + <border_style>3</border_style> + <rules /> + <pv_value /> + <border_width>1</border_width> + <maximum>1.7976931348623157E308</maximum> + <limits_from_pv>false</limits_from_pv> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <horizontal_alignment>0</horizontal_alignment> + <actions hook="false" hook_all="false" /> + <y>30</y> + <tooltip>$(pv_name) +$(pv_value)</tooltip> + <x>222</x> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.combo" version="1.0"> + <border_alarm_sensitive>true</border_alarm_sensitive> + <visible>true</visible> + <wuid>-6578c973:134c2b2a246:-7db6</wuid> + <scripts /> + <height>30</height> + <forecolor_alarm_sensitive>false</forecolor_alarm_sensitive> + <name>operator</name> + <pv_name>loc://operator</pv_name> + <background_color> + <color red="255" green="255" blue="255" /> + </background_color> + <foreground_color> + <color red="0" green="0" blue="0" /> + </foreground_color> + <widget_type>Combo Box</widget_type> + <enabled>true</enabled> + <backcolor_alarm_sensitive>false</backcolor_alarm_sensitive> + <font> + <fontdata fontName="Verdana" height="11" style="1" /> + </font> + <width>55</width> + <border_style>0</border_style> + <rules /> + <pv_value /> + <items> + <s>+</s> + <s>-</s> + <s>*</s> + <s>/</s> + </items> + <border_width>1</border_width> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <items_from_pv>false</items_from_pv> + <actions hook="false" hook_all="false" /> + <y>29</y> + <tooltip>$(pv_name) +$(pv_value)</tooltip> + <x>156</x> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.TextUpdate" version="1.0"> + <border_alarm_sensitive>true</border_alarm_sensitive> + <visible>true</visible> + <vertical_alignment>1</vertical_alignment> + <show_units>false</show_units> + <wuid>-6578c973:134c2b2a246:-7d39</wuid> + <auto_size>false</auto_size> + <rotation_angle>0.0</rotation_angle> + <scripts /> + <height>20</height> + <forecolor_alarm_sensitive>false</forecolor_alarm_sensitive> + <name>Text Update</name> + <format_type>6</format_type> + <precision_from_pv>true</precision_from_pv> + <transparent>false</transparent> + <pv_name>loc://result</pv_name> + <background_color> + <color red="255" green="255" blue="255" /> + </background_color> + <foreground_color> + <color red="0" green="0" blue="0" /> + </foreground_color> + <widget_type>Text Update</widget_type> + <enabled>true</enabled> + <text>######</text> + <backcolor_alarm_sensitive>false</backcolor_alarm_sensitive> + <precision>0</precision> + <font> + <fontdata fontName="Verdana" height="11" style="1" /> + </font> + <width>100</width> + <border_style>0</border_style> + <rules /> + <pv_value /> + <border_width>1</border_width> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <horizontal_alignment>0</horizontal_alignment> + <actions hook="false" hook_all="false" /> + <y>33</y> + <wrap_words>false</wrap_words> + <tooltip>$(pv_name) +$(pv_value)</tooltip> + <x>396</x> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.Label" version="1.0"> + <visible>true</visible> + <vertical_alignment>1</vertical_alignment> + <wuid>-6578c973:134c2b2a246:-7d23</wuid> + <auto_size>false</auto_size> + <scripts /> + <height>20</height> + <name>Label</name> + <transparent>true</transparent> + <show_scrollbar>false</show_scrollbar> + <background_color> + <color red="255" green="255" blue="255" /> + </background_color> + <foreground_color> + <color red="0" green="0" blue="0" /> + </foreground_color> + <widget_type>Label</widget_type> + <enabled>true</enabled> + <text>=</text> + <font> + <fontdata fontName="Verdana" height="11" style="1" /> + </font> + <width>43</width> + <border_style>0</border_style> + <rules /> + <border_width>1</border_width> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <horizontal_alignment>1</horizontal_alignment> + <actions hook="false" hook_all="false" /> + <y>33</y> + <wrap_words>true</wrap_words> + <tooltip /> + <x>342</x> + </widget> +</display> \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/CalculatorExample/EasyCalculatorLogic.py b/core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/CalculatorExample/EasyCalculatorLogic.py new file mode 100644 index 000000000..9f1cf9138 --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/CalculatorExample/EasyCalculatorLogic.py @@ -0,0 +1,17 @@ +from org.csstudio.opibuilder.scriptUtil import PVUtil + +op1=PVUtil.getDouble(pvs[0]) +op2=PVUtil.getDouble(pvs[1]) + +operator = PVUtil.getString(pvs[2]) + +resultPV=pvs[3] + +if operator=="+": + resultPV.setValue(op1 + op2) +elif operator=="-": + resultPV.setValue(op1 - op2) +elif operator=="*": + resultPV.setValue(op1 * op2) +elif operator=="/": + resultPV.setValue(op1 / op2) \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/CalculatorExample/init.py b/core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/CalculatorExample/init.py new file mode 100644 index 000000000..abc904776 --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/CalculatorExample/init.py @@ -0,0 +1,10 @@ +""" +Initialize the calculator model. + +@author: Xihui Chen +""" + +from CalculatorModel import CalculatorModel + +'''Create a calculator model and add it to display as a var.''' +display.setVar("calc", CalculatorModel(display.getWidget("LCD"))) \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/ConditionallySetPVValue/ConditinallySetPVValue.opi b/core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/ConditionallySetPVValue/ConditinallySetPVValue.opi new file mode 100644 index 000000000..6526889af --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/ConditionallySetPVValue/ConditinallySetPVValue.opi @@ -0,0 +1,312 @@ +<?xml version="1.0" encoding="UTF-8"?> +<display typeId="org.csstudio.opibuilder.Display" version="1.0"> + <auto_zoom_to_fit_all>false</auto_zoom_to_fit_all> + <macros> + <include_parent_macros>true</include_parent_macros> + </macros> + <boy_version>2.0.0.qualifier</boy_version> + <scripts /> + <show_ruler>true</show_ruler> + <height>600</height> + <name /> + <snap_to_geometry>true</snap_to_geometry> + <show_grid>true</show_grid> + <background_color> + <color red="240" green="240" blue="240" /> + </background_color> + <foreground_color> + <color red="192" green="192" blue="192" /> + </foreground_color> + <widget_type>Display</widget_type> + <show_close_button>true</show_close_button> + <width>800</width> + <rules /> + <show_edit_range>true</show_edit_range> + <grid_space>6</grid_space> + <actions hook="false" hook_all="false" /> + <y>-1</y> + <x>-1</x> + <widget typeId="org.csstudio.opibuilder.widgets.BoolSwitch" version="1.0"> + <border_alarm_sensitive>true</border_alarm_sensitive> + <visible>true</visible> + <password /> + <boolean_label_position>0</boolean_label_position> + <scripts> + <path pathString="EmbeddedJs" checkConnect="true" sfe="false" seoe="false"> + <scriptName>updateSwitch</scriptName> + <scriptText>importPackage(Packages.org.csstudio.opibuilder.scriptUtil); + +var powerValue = PVUtil.getDouble(pvs[0]); +widget.getPV().setValue(powerValue);</scriptText> + <pv trig="true">loc://realPower</pv> + </path> + </scripts> + <on_color> + <color red="0" green="255" blue="0" /> + </on_color> + <height>100</height> + <data_type>0</data_type> + <forecolor_alarm_sensitive>false</forecolor_alarm_sensitive> + <name>Power_Switch</name> + <show_boolean_label>false</show_boolean_label> + <off_color> + <color red="0" green="100" blue="0" /> + </off_color> + <pv_name>loc://switch</pv_name> + <background_color> + <color red="240" green="240" blue="240" /> + </background_color> + <foreground_color> + <color red="0" green="0" blue="0" /> + </foreground_color> + <off_label>OFF</off_label> + <released_action_index>1</released_action_index> + <widget_type>Boolean Switch</widget_type> + <enabled>true</enabled> + <backcolor_alarm_sensitive>false</backcolor_alarm_sensitive> + <font> + <opifont.name>Default</opifont.name> + </font> + <width>50</width> + <border_style>0</border_style> + <push_action_index>0</push_action_index> + <confirm_message>Are your sure you want to do this?</confirm_message> + <effect_3d>true</effect_3d> + <rules /> + <pv_value /> + <bit>-1</bit> + <toggle_button>true</toggle_button> + <show_confirm_dialog>false</show_confirm_dialog> + <border_width>1</border_width> + <on_label>ON</on_label> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <y>223</y> + <actions hook="false" hook_all="false"> + <action type="EXECUTE_JAVASCRIPT"> + <path>PowerOn.js</path> + <scriptText>importPackage(Packages.org.csstudio.opibuilder.scriptUtil); +importPackage(Packages.org.eclipse.jface.dialogs); + +var powerPV = display.getWidget("Power_LED").getPV(); +var switchPV = widget.getPV(); +var allowedPV = display.getWidget("Allowed").getPV(); +var allowed = PVUtil.getLong(allowedPV); + +if(allowed==1) + powerPV.setValue(1); +else{ + switchPV.setValue(0); + MessageDialog.openWarning( + null, "Power on failed", "It is not allowed to power on!"); +}</scriptText> + <embedded>true</embedded> + <description /> + </action> + <action type="EXECUTE_JAVASCRIPT"> + <path>PowerOff.js</path> + <scriptText>importPackage(Packages.org.csstudio.opibuilder.scriptUtil); +importPackage(Packages.org.eclipse.jface.dialogs); + +var powerPV = display.getWidget("Power_LED").getPV(); + +powerPV.setValue(0);</scriptText> + <embedded>true</embedded> + <description /> + </action> + </actions> + <tooltip>$(pv_name) +$(pv_value)</tooltip> + <x>240</x> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.LED" version="1.0"> + <border_alarm_sensitive>true</border_alarm_sensitive> + <visible>true</visible> + <scripts /> + <square_led>false</square_led> + <on_color> + <color red="0" green="255" blue="0" /> + </on_color> + <height>41</height> + <data_type>0</data_type> + <forecolor_alarm_sensitive>false</forecolor_alarm_sensitive> + <name>Power_LED</name> + <show_boolean_label>false</show_boolean_label> + <off_color> + <color red="0" green="100" blue="0" /> + </off_color> + <pv_name>loc://realPower</pv_name> + <background_color> + <color red="240" green="240" blue="240" /> + </background_color> + <foreground_color> + <color red="192" green="192" blue="192" /> + </foreground_color> + <off_label>OFF</off_label> + <widget_type>LED</widget_type> + <enabled>true</enabled> + <backcolor_alarm_sensitive>false</backcolor_alarm_sensitive> + <font> + <opifont.name>Default</opifont.name> + </font> + <width>41</width> + <border_style>0</border_style> + <effect_3d>true</effect_3d> + <rules /> + <pv_value /> + <bit>-1</bit> + <border_width>1</border_width> + <on_label>ON</on_label> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <actions hook="false" hook_all="false" /> + <y>252</y> + <tooltip>$(pv_name) +$(pv_value)</tooltip> + <x>432</x> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.checkbox" version="1.0"> + <border_alarm_sensitive>true</border_alarm_sensitive> + <visible>true</visible> + <auto_size>false</auto_size> + <scripts /> + <height>20</height> + <forecolor_alarm_sensitive>false</forecolor_alarm_sensitive> + <name>Allowed</name> + <pv_name>loc://allow</pv_name> + <background_color> + <color red="240" green="240" blue="240" /> + </background_color> + <foreground_color> + <color red="0" green="0" blue="0" /> + </foreground_color> + <widget_type>Check Box</widget_type> + <enabled>true</enabled> + <backcolor_alarm_sensitive>false</backcolor_alarm_sensitive> + <font> + <fontdata fontName="Segoe UI" height="12" style="1" /> + </font> + <width>175</width> + <border_style>0</border_style> + <label>Allow Power On</label> + <rules /> + <pv_value /> + <bit>-1</bit> + <border_width>1</border_width> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <actions hook="false" hook_all="false" /> + <y>175</y> + <tooltip>$(pv_name) +$(pv_value)</tooltip> + <x>240</x> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.Label" version="1.0"> + <visible>true</visible> + <vertical_alignment>1</vertical_alignment> + <auto_size>false</auto_size> + <scripts /> + <height>43</height> + <name>Label</name> + <transparent>true</transparent> + <show_scrollbar>false</show_scrollbar> + <background_color> + <color red="255" green="255" blue="255" /> + </background_color> + <foreground_color> + <color red="255" green="0" blue="0" /> + </foreground_color> + <widget_type>Label</widget_type> + <enabled>true</enabled> + <text>Power Switch</text> + <font> + <fontdata fontName="Segoe UI" height="12" style="1" /> + </font> + <width>109</width> + <border_style>0</border_style> + <rules /> + <border_width>1</border_width> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <horizontal_alignment>1</horizontal_alignment> + <actions hook="false" hook_all="false" /> + <y>322</y> + <wrap_words>true</wrap_words> + <tooltip /> + <x>204</x> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.Label" version="1.0"> + <visible>true</visible> + <vertical_alignment>1</vertical_alignment> + <auto_size>false</auto_size> + <scripts /> + <height>43</height> + <name>Label_1</name> + <transparent>true</transparent> + <show_scrollbar>false</show_scrollbar> + <background_color> + <color red="255" green="255" blue="255" /> + </background_color> + <foreground_color> + <color red="255" green="0" blue="0" /> + </foreground_color> + <widget_type>Label</widget_type> + <enabled>true</enabled> + <text>Power Status</text> + <font> + <fontdata fontName="Segoe UI" height="12" style="1" /> + </font> + <width>109</width> + <border_style>0</border_style> + <rules /> + <border_width>1</border_width> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <horizontal_alignment>1</horizontal_alignment> + <actions hook="false" hook_all="false" /> + <y>322</y> + <wrap_words>true</wrap_words> + <tooltip /> + <x>398</x> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.Label" version="1.0"> + <visible>true</visible> + <vertical_alignment>1</vertical_alignment> + <auto_size>false</auto_size> + <scripts /> + <height>115</height> + <name>Label_2</name> + <transparent>false</transparent> + <show_scrollbar>false</show_scrollbar> + <background_color> + <color red="255" green="255" blue="198" /> + </background_color> + <foreground_color> + <color red="0" green="0" blue="0" /> + </foreground_color> + <widget_type>Label</widget_type> + <enabled>true</enabled> + <text>This example shows how to conditionally write a PV. In this example, it is allowed to power on only if "Allow Power On" check box is checked.</text> + <font> + <opifont.name>Default</opifont.name> + </font> + <width>619</width> + <border_style>0</border_style> + <rules /> + <border_width>1</border_width> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <horizontal_alignment>1</horizontal_alignment> + <actions hook="false" hook_all="false" /> + <y>12</y> + <wrap_words>true</wrap_words> + <tooltip /> + <x>36</x> + </widget> +</display> \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/DynamicLoadWidgets/LoadLinkingContainer.js b/core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/DynamicLoadWidgets/LoadLinkingContainer.js new file mode 100644 index 000000000..d628dfa38 --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/DynamicLoadWidgets/LoadLinkingContainer.js @@ -0,0 +1,41 @@ +importPackage(Packages.org.csstudio.opibuilder.scriptUtil); + +var filePath = PVUtil.getString(pvs[1]); + +//root is a JDOM Element +var root = FileUtil.loadXMLFile(filePath, widget); + +var groups = root.getChildren(); + +widget.removeAllChildren(); + +for(var i=0; i<groups.size(); i++){ + + //create linking container + var linkingContainer = WidgetUtil.createWidgetModel("org.csstudio.opibuilder.widgets.linkingContainer"); + linkingContainer.setPropertyValue("opi_file", "SubPanel.opi"); + try + { // Current API, 1 == "Size the container to fit the linked *.opi" + linkingContainer.setPropertyValue("resize_behaviour", 1); + } + catch (err) + { // Older LinkingContainer had these two properties: + linkingContainer.setPropertyValue("auto_size", true); + linkingContainer.setPropertyValue("zoom_to_fit", false); + } + linkingContainer.setPropertyValue("border_style", 1); + + //add macros + linkingContainer.addMacro("index", i); + var macros = groups.get(i).getChildren(); + for(var j=0; j<macros.size(); j++){ + var macro = macros.get(j); + linkingContainer.addMacro(macro.getName(), macro.getValue()); + } + + //add linking container to widget + widget.addChildToBottom(linkingContainer); +} + +widget.performAutosize(); + diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/DynamicLoadWidgets/LoadWidgetsExample.opi b/core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/DynamicLoadWidgets/LoadWidgetsExample.opi new file mode 100644 index 000000000..4e10180f9 --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/DynamicLoadWidgets/LoadWidgetsExample.opi @@ -0,0 +1,233 @@ +<?xml version="1.0" encoding="UTF-8"?> +<display typeId="org.csstudio.opibuilder.Display" version="1.0.0"> + <auto_zoom_to_fit_all>false</auto_zoom_to_fit_all> + <macros> + <include_parent_macros>true</include_parent_macros> + </macros> + <wuid>-683cc536:13efc7c5ac3:-7f86</wuid> + <boy_version>3.2.0.qualifier</boy_version> + <scripts /> + <show_ruler>true</show_ruler> + <height>600</height> + <name></name> + <snap_to_geometry>true</snap_to_geometry> + <show_grid>true</show_grid> + <background_color> + <color red="240" green="240" blue="240" /> + </background_color> + <foreground_color> + <color red="192" green="192" blue="192" /> + </foreground_color> + <widget_type>Display</widget_type> + <show_close_button>true</show_close_button> + <width>800</width> + <rules /> + <show_edit_range>true</show_edit_range> + <grid_space>6</grid_space> + <auto_scale_widgets> + <auto_scale_widgets>false</auto_scale_widgets> + <min_width>-1</min_width> + <min_height>-1</min_height> + </auto_scale_widgets> + <actions hook="false" hook_all="false" /> + <y>-1</y> + <x>-1</x> + <widget typeId="org.csstudio.opibuilder.widgets.groupingContainer" version="1.0.0"> + <macros> + <include_parent_macros>true</include_parent_macros> + </macros> + <visible>true</visible> + <wuid>-683cc536:13efc7c5ac3:-7f85</wuid> + <scripts> + <path pathString="LoadLinkingContainer.js" checkConnect="true" sfe="false" seoe="false"> + <pv trig="true">loc://loadWidget</pv> + <pv trig="false">loc://filePath2("/BOY Examples/Miscellaneous/DynamicLoadWidgets/myConfigExample.xml")</pv> + </path> + </scripts> + <height>397</height> + <name>Grouping Container</name> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>false</keep_wh_ratio> + </scale_options> + <transparent>false</transparent> + <show_scrollbar>true</show_scrollbar> + <foreground_color> + <color red="192" green="192" blue="192" /> + </foreground_color> + <background_color> + <color red="240" green="240" blue="240" /> + </background_color> + <enabled>true</enabled> + <widget_type>Grouping Container</widget_type> + <font> + <opifont.name fontName="Verdana" height="10" style="0">Default</opifont.name> + </font> + <width>559</width> + <border_style>3</border_style> + <rules /> + <fc>false</fc> + <lock_children>false</lock_children> + <border_width>1</border_width> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <y>84</y> + <actions hook="false" hook_all="false" /> + <x>66</x> + <tooltip></tooltip> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.ActionButton" version="2.0.0"> + <border_alarm_sensitive>false</border_alarm_sensitive> + <visible>true</visible> + <wuid>-683cc536:13efc7c5ac3:-7f84</wuid> + <scripts /> + <height>27</height> + <style>0</style> + <name>Action Button</name> + <forecolor_alarm_sensitive>false</forecolor_alarm_sensitive> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>false</keep_wh_ratio> + </scale_options> + <pv_name></pv_name> + <background_color> + <color red="240" green="240" blue="240" /> + </background_color> + <foreground_color> + <color red="0" green="0" blue="0" /> + </foreground_color> + <widget_type>Action Button</widget_type> + <enabled>true</enabled> + <text>$(actions)</text> + <backcolor_alarm_sensitive>false</backcolor_alarm_sensitive> + <font> + <opifont.name fontName="Verdana" height="10" style="0">Default</opifont.name> + </font> + <width>73</width> + <border_style>0</border_style> + <push_action_index>0</push_action_index> + <image></image> + <rules /> + <pv_value /> + <toggle_button>false</toggle_button> + <border_width>1</border_width> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <y>44</y> + <actions hook="false" hook_all="false"> + <action type="WRITE_PV"> + <pv_name>loc://loadWidget</pv_name> + <value>1</value> + <timeout>10</timeout> + <confirm_message></confirm_message> + <description>Load</description> + </action> + </actions> + <tooltip>$(pv_name) +$(pv_value)</tooltip> + <x>612</x> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.Label" version="1.0.0"> + <visible>true</visible> + <vertical_alignment>1</vertical_alignment> + <wuid>-683cc536:13efc7c5ac3:-7f82</wuid> + <auto_size>false</auto_size> + <scripts /> + <height>20</height> + <name>Label</name> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>false</keep_wh_ratio> + </scale_options> + <transparent>true</transparent> + <show_scrollbar>false</show_scrollbar> + <background_color> + <color red="255" green="255" blue="255" /> + </background_color> + <foreground_color> + <color red="0" green="0" blue="0" /> + </foreground_color> + <widget_type>Label</widget_type> + <enabled>true</enabled> + <text>Select XML config file:</text> + <font> + <opifont.name fontName="Verdana" height="10" style="0">Default</opifont.name> + </font> + <width>200</width> + <border_style>0</border_style> + <rules /> + <border_width>1</border_width> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <horizontal_alignment>0</horizontal_alignment> + <actions hook="false" hook_all="false" /> + <y>22</y> + <wrap_words>true</wrap_words> + <tooltip></tooltip> + <x>66</x> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.TextInput" version="2.0.0"> + <border_alarm_sensitive>false</border_alarm_sensitive> + <visible>true</visible> + <multiline_input>true</multiline_input> + <auto_size>false</auto_size> + <file_source>0</file_source> + <scripts /> + <height>31</height> + <forecolor_alarm_sensitive>false</forecolor_alarm_sensitive> + <precision_from_pv>true</precision_from_pv> + <background_color> + <color red="255" green="255" blue="255" /> + </background_color> + <enabled>true</enabled> + <widget_type>Text Input</widget_type> + <text>/BOY Examples/Miscellaneous/DynamicLoadWidgets/myConfigExample.xml</text> + <font> + <opifont.name fontName="Verdana" height="10" style="0">Default</opifont.name> + </font> + <file_return_part>0</file_return_part> + <width>535</width> + <border_style>3</border_style> + <pv_value /> + <maximum>1.7976931348623157E308</maximum> + <border_width>1</border_width> + <minimum>-1.7976931348623157E308</minimum> + <show_units>true</show_units> + <wuid>-683cc536:13efc7c5ac3:-7f83</wuid> + <rotation_angle>0.0</rotation_angle> + <style>0</style> + <name>Text Input</name> + <format_type>0</format_type> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>false</keep_wh_ratio> + </scale_options> + <selector_type>1</selector_type> + <transparent>false</transparent> + <pv_name>loc://filePath2("/BOY Examples/Miscellaneous/DynamicLoadWidgets/myConfigExample.xml")</pv_name> + <foreground_color> + <color red="0" green="0" blue="0" /> + </foreground_color> + <precision>0</precision> + <backcolor_alarm_sensitive>false</backcolor_alarm_sensitive> + <confirm_message></confirm_message> + <rules /> + <limits_from_pv>false</limits_from_pv> + <horizontal_alignment>0</horizontal_alignment> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <y>42</y> + <actions hook="false" hook_all="false" /> + <x>66</x> + <tooltip>$(pv_name) +$(pv_value)</tooltip> + </widget> +</display> \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/DynamicLoadWidgets/SubPanel.opi b/core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/DynamicLoadWidgets/SubPanel.opi new file mode 100644 index 000000000..f6661228a --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/DynamicLoadWidgets/SubPanel.opi @@ -0,0 +1,329 @@ +<?xml version="1.0" encoding="UTF-8"?> +<display typeId="org.csstudio.opibuilder.Display" version="1.0"> + <auto_zoom_to_fit_all>false</auto_zoom_to_fit_all> + <macros> + <include_parent_macros>true</include_parent_macros> + </macros> + <scripts /> + <show_ruler>false</show_ruler> + <height>600</height> + <name /> + <snap_to_geometry>false</snap_to_geometry> + <show_grid>false</show_grid> + <background_color> + <color red="240" green="240" blue="240" /> + </background_color> + <foreground_color> + <color red="192" green="192" blue="192" /> + </foreground_color> + <widget_type>Display</widget_type> + <show_close_button>true</show_close_button> + <width>800</width> + <rules /> + <show_edit_range>true</show_edit_range> + <grid_space>6</grid_space> + <actions hook="false" /> + <y>-1</y> + <x>-1</x> + <widget typeId="org.csstudio.opibuilder.widgets.Label" version="1.0"> + <visible>true</visible> + <vertical_alignment>1</vertical_alignment> + <auto_size>false</auto_size> + <scripts /> + <height>20</height> + <name>Label_2</name> + <transparent>true</transparent> + <background_color> + <color red="255" green="255" blue="255" /> + </background_color> + <foreground_color> + <color red="0" green="0" blue="0" /> + </foreground_color> + <widget_type>Label</widget_type> + <enabled>true</enabled> + <text>Group $(index).</text> + <font> + <opifont.name>Default</opifont.name> + </font> + <width>110</width> + <border_style>0</border_style> + <rules /> + <border_width>1</border_width> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <horizontal_alignment>1</horizontal_alignment> + <actions hook="false" /> + <y>43</y> + <tooltip /> + <x>12</x> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.groupingContainer" version="1.0"> + <enabled>true</enabled> + <widget_type>Grouping Container</widget_type> + <macros> + <include_parent_macros>true</include_parent_macros> + </macros> + <visible>true</visible> + <font> + <opifont.name>Default</opifont.name> + </font> + <width>404</width> + <border_style>0</border_style> + <rules /> + <lock_children>false</lock_children> + <scripts /> + <height>52</height> + <border_width>1</border_width> + <name>Grouping Container</name> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <transparent>false</transparent> + <show_scrollbar>false</show_scrollbar> + <y>27</y> + <actions hook="false" /> + <foreground_color> + <color red="192" green="192" blue="192" /> + </foreground_color> + <background_color> + <color red="240" green="240" blue="240" /> + </background_color> + <x>114</x> + <tooltip /> + <widget typeId="org.csstudio.opibuilder.widgets.TextUpdate" version="1.0"> + <border_alarm_sensitive>true</border_alarm_sensitive> + <visible>true</visible> + <vertical_alignment>1</vertical_alignment> + <show_units>true</show_units> + <auto_size>false</auto_size> + <scripts /> + <height>20</height> + <forecolor_alarm_sensitive>false</forecolor_alarm_sensitive> + <name>Text Update</name> + <format_type>0</format_type> + <precision_from_pv>true</precision_from_pv> + <transparent>false</transparent> + <pv_name>$(m1)</pv_name> + <background_color> + <color red="255" green="255" blue="255" /> + </background_color> + <foreground_color> + <color red="0" green="0" blue="0" /> + </foreground_color> + <widget_type>Text Update</widget_type> + <enabled>true</enabled> + <text>##.###</text> + <backcolor_alarm_sensitive>false</backcolor_alarm_sensitive> + <precision>0</precision> + <font> + <opifont.name>Default</opifont.name> + </font> + <width>100</width> + <border_style>0</border_style> + <rules /> + <border_width>1</border_width> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <horizontal_alignment>0</horizontal_alignment> + <actions hook="false" /> + <y>8</y> + <wrap_words>false</wrap_words> + <tooltip>$(pv_name) +$(pv_value)</tooltip> + <x>138</x> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.Label" version="1.0"> + <visible>true</visible> + <vertical_alignment>1</vertical_alignment> + <auto_size>false</auto_size> + <scripts /> + <height>20</height> + <name>Label</name> + <transparent>true</transparent> + <background_color> + <color red="255" green="255" blue="255" /> + </background_color> + <foreground_color> + <color red="0" green="0" blue="0" /> + </foreground_color> + <widget_type>Label</widget_type> + <enabled>true</enabled> + <text>$(m1)</text> + <font> + <opifont.name>Default</opifont.name> + </font> + <width>127</width> + <border_style>0</border_style> + <rules /> + <border_width>1</border_width> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <horizontal_alignment>0</horizontal_alignment> + <actions hook="false" /> + <y>8</y> + <tooltip /> + <x>12</x> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.scrollbar" version="1.0"> + <border_alarm_sensitive>false</border_alarm_sensitive> + <visible>true</visible> + <minimum>0.0</minimum> + <show_value_tip>true</show_value_tip> + <bar_length>10.0</bar_length> + <scripts /> + <height>18</height> + <forecolor_alarm_sensitive>false</forecolor_alarm_sensitive> + <name>Scrollbar</name> + <page_increment>10.0</page_increment> + <pv_name>$(m1)</pv_name> + <background_color> + <color red="240" green="240" blue="240" /> + </background_color> + <foreground_color> + <color red="0" green="0" blue="0" /> + </foreground_color> + <widget_type>Scrollbar</widget_type> + <enabled>true</enabled> + <step_increment>1.0</step_increment> + <backcolor_alarm_sensitive>false</backcolor_alarm_sensitive> + <font> + <opifont.name>Default</opifont.name> + </font> + <width>157</width> + <border_style>0</border_style> + <rules /> + <maximum>100.0</maximum> + <border_width>1</border_width> + <horizontal>true</horizontal> + <limits_from_pv>false</limits_from_pv> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <actions hook="false" /> + <y>9</y> + <tooltip>$(pv_name) +$(pv_value)</tooltip> + <x>237</x> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.TextUpdate" version="1.0"> + <border_alarm_sensitive>true</border_alarm_sensitive> + <visible>true</visible> + <vertical_alignment>1</vertical_alignment> + <show_units>true</show_units> + <auto_size>false</auto_size> + <scripts /> + <height>20</height> + <forecolor_alarm_sensitive>false</forecolor_alarm_sensitive> + <name>Text Update_1</name> + <format_type>0</format_type> + <precision_from_pv>true</precision_from_pv> + <transparent>false</transparent> + <pv_name>$(m2)</pv_name> + <background_color> + <color red="255" green="255" blue="255" /> + </background_color> + <foreground_color> + <color red="0" green="0" blue="0" /> + </foreground_color> + <widget_type>Text Update</widget_type> + <enabled>true</enabled> + <text>##.###</text> + <backcolor_alarm_sensitive>false</backcolor_alarm_sensitive> + <precision>0</precision> + <font> + <opifont.name>Default</opifont.name> + </font> + <width>100</width> + <border_style>0</border_style> + <rules /> + <border_width>1</border_width> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <horizontal_alignment>0</horizontal_alignment> + <actions hook="false" /> + <y>27</y> + <wrap_words>false</wrap_words> + <tooltip>$(pv_name) +$(pv_value)</tooltip> + <x>138</x> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.Label" version="1.0"> + <visible>true</visible> + <vertical_alignment>1</vertical_alignment> + <auto_size>false</auto_size> + <scripts /> + <height>20</height> + <name>Label_1</name> + <transparent>true</transparent> + <background_color> + <color red="255" green="255" blue="255" /> + </background_color> + <foreground_color> + <color red="0" green="0" blue="0" /> + </foreground_color> + <widget_type>Label</widget_type> + <enabled>true</enabled> + <text>$(m2)</text> + <font> + <opifont.name>Default</opifont.name> + </font> + <width>127</width> + <border_style>0</border_style> + <rules /> + <border_width>1</border_width> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <horizontal_alignment>0</horizontal_alignment> + <actions hook="false" /> + <y>27</y> + <tooltip /> + <x>12</x> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.scrollbar" version="1.0"> + <border_alarm_sensitive>false</border_alarm_sensitive> + <visible>true</visible> + <minimum>0.0</minimum> + <show_value_tip>true</show_value_tip> + <bar_length>10.0</bar_length> + <scripts /> + <height>18</height> + <forecolor_alarm_sensitive>false</forecolor_alarm_sensitive> + <name>Scrollbar_1</name> + <page_increment>10.0</page_increment> + <pv_name>$(m2)</pv_name> + <background_color> + <color red="240" green="240" blue="240" /> + </background_color> + <foreground_color> + <color red="0" green="0" blue="0" /> + </foreground_color> + <widget_type>Scrollbar</widget_type> + <enabled>true</enabled> + <step_increment>1.0</step_increment> + <backcolor_alarm_sensitive>false</backcolor_alarm_sensitive> + <font> + <opifont.name>Default</opifont.name> + </font> + <width>157</width> + <border_style>0</border_style> + <rules /> + <maximum>100.0</maximum> + <border_width>1</border_width> + <horizontal>true</horizontal> + <limits_from_pv>false</limits_from_pv> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <actions hook="false" /> + <y>28</y> + <tooltip>$(pv_name) +$(pv_value)</tooltip> + <x>237</x> + </widget> + </widget> +</display> \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/DynamicLoadWidgets/myConfigExample.xml b/core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/DynamicLoadWidgets/myConfigExample.xml new file mode 100644 index 000000000..5cf03c5d0 --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/DynamicLoadWidgets/myConfigExample.xml @@ -0,0 +1,27 @@ +<?xml version="1.0"?> +<macros> + <Group> + <m1>loc://g1m1</m1> + <m2>loc://g1m2</m2> + </Group> + <Group> + <m1>loc://g2m1</m1> + <m2>loc://g2m2</m2> + </Group> + <Group> + <m1>loc://g3m1</m1> + <m2>loc://g3m2</m2> + </Group> + <Group> + <m1>loc://g4m1</m1> + <m2>loc://g4m2</m2> + </Group> + <Group> + <m1>loc://g5m1</m1> + <m2>loc://g5m2</m2> + </Group> + <Group> + <m1>loc://g6m1</m1> + <m2>loc://g6m2</m2> + </Group> +</macros> diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/DynamicLoadWidgets/myConfigExample2.xml b/core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/DynamicLoadWidgets/myConfigExample2.xml new file mode 100644 index 000000000..67fe8c2c4 --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/DynamicLoadWidgets/myConfigExample2.xml @@ -0,0 +1,92 @@ +<?xml version="1.0"?> +<macros> + <Group> + <!-- $(index) will be replaced as another macro --> + <m1>loc://group$(index):PV1</m1> + <m2>loc://group$(index):PV2</m2> + </Group> + <Group> + <m1>loc://group$(index):PV1</m1> + <m2>loc://group$(index):PV2</m2> + </Group> + <Group> + <m1>loc://group$(index):PV1</m1> + <m2>loc://group$(index):PV2</m2> + </Group> + <Group> + <m1>loc://group$(index):PV1</m1> + <m2>loc://group$(index):PV2</m2> + </Group> + <Group> + <m1>loc://group$(index):PV1</m1> + <m2>loc://group$(index):PV2</m2> + </Group> + <Group> + <m1>loc://group$(index):PV1</m1> + <m2>loc://group$(index):PV2</m2> + </Group> + <Group> + <m1>loc://group$(index):PV1</m1> + <m2>loc://group$(index):PV2</m2> + </Group> + <Group> + <m1>loc://group$(index):PV1</m1> + <m2>loc://group$(index):PV2</m2> + </Group> + <Group> + <m1>loc://group$(index):PV1</m1> + <m2>loc://group$(index):PV2</m2> + </Group> + <Group> + <m1>loc://group$(index):PV1</m1> + <m2>loc://group$(index):PV2</m2> + </Group> + <Group> + <m1>loc://group$(index):PV1</m1> + <m2>loc://group$(index):PV2</m2> + </Group> + <Group> + <m1>loc://group$(index):PV1</m1> + <m2>loc://group$(index):PV2</m2> + </Group> + <Group> + <m1>loc://group$(index):PV1</m1> + <m2>loc://group$(index):PV2</m2> + </Group> + <Group> + <m1>loc://group$(index):PV1</m1> + <m2>loc://group$(index):PV2</m2> + </Group> + <Group> + <m1>loc://group$(index):PV1</m1> + <m2>loc://group$(index):PV2</m2> + </Group> + <Group> + <m1>loc://group$(index):PV1</m1> + <m2>loc://group$(index):PV2</m2> + </Group> + <Group> + <m1>loc://group$(index):PV1</m1> + <m2>loc://group$(index):PV2</m2> + </Group> + <Group> + <m1>loc://group$(index):PV1</m1> + <m2>loc://group$(index):PV2</m2> + </Group> + <Group> + <m1>loc://group$(index):PV1</m1> + <m2>loc://group$(index):PV2</m2> + </Group> + <Group> + <m1>loc://group$(index):PV1</m1> + <m2>loc://group$(index):PV2</m2> + </Group> + <Group> + <m1>loc://group$(index):PV1</m1> + <m2>loc://group$(index):PV2</m2> + </Group> + <Group> + <m1>loc://group$(index):PV1</m1> + <m2>loc://group$(index):PV2</m2> + </Group> +</macros> diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/DynamicMacros/ChangeMacro.js b/core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/DynamicMacros/ChangeMacro.js new file mode 100644 index 000000000..c91c9459e --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/DynamicMacros/ChangeMacro.js @@ -0,0 +1,17 @@ +importPackage(Packages.org.csstudio.opibuilder.scriptUtil); + + +//Create a new Macro Input +var macroInput = DataUtil.createMacrosInput(true); + +//Put a macro in the new Macro Input +macroInput.put("pv", PVUtil.getString(pvArray[0])); + +//Set the macro input of the linking container to this new macro input. +widgetController.setPropertyValue("macros", macroInput); + +//Reload the OPI file in the linking container again +//by setting the property value with forcing fire option in true. +widgetController.setPropertyValue("opi_file", + widgetController.getPropertyValue("opi_file"), true); + diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/DynamicMacros/DynamicMacros.opi b/core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/DynamicMacros/DynamicMacros.opi new file mode 100644 index 000000000..afaa00a05 --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/DynamicMacros/DynamicMacros.opi @@ -0,0 +1,344 @@ +<?xml version="1.0" encoding="UTF-8"?> +<display typeId="org.csstudio.opibuilder.Display" version="1.0"> + <width>800</width> + <scripts /> + <rules /> + <actions hook="false" /> + <macros> + <include_parent_macros>true</include_parent_macros> + <parent>hello</parent> + </macros> + <snap_to_geometry>true</snap_to_geometry> + <show_grid>true</show_grid> + <show_edit_range>true</show_edit_range> + <grid_space>6</grid_space> + <height>600</height> + <widget_type>Display</widget_type> + <background_color> + <color red="240" green="240" blue="240" /> + </background_color> + <foreground_color> + <color red="192" green="192" blue="192" /> + </foreground_color> + <y>-1</y> + <show_ruler>true</show_ruler> + <name>Display</name> + <x>-1</x> + <widget typeId="org.csstudio.opibuilder.widgets.linkingContainer" version="1.0"> + <width>271</width> + <scripts> + <path pathString="ChangeMacro.js"> + <pv trig="true">loc://macroValue</pv> + </path> + </scripts> + <border_width>1</border_width> + <border_style>3</border_style> + <rules /> + <tooltip /> + <actions hook="false" /> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <group_name /> + <macros> + <include_parent_macros>true</include_parent_macros> + <name>Lisa</name> + <inputPV>sim://ramp</inputPV> + </macros> + <opi_file>embeddedOPI.opi</opi_file> + <height>109</height> + <widget_type>Linking Container</widget_type> + <enabled>true</enabled> + <background_color> + <color red="255" green="255" blue="255" /> + </background_color> + <zoom_to_fit>false</zoom_to_fit> + <visible>true</visible> + <foreground_color> + <color red="192" green="192" blue="192" /> + </foreground_color> + <y>120</y> + <name>Linking Container_4</name> + <x>312</x> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.TextInput" version="1.0"> + <width>151</width> + <scripts /> + <border_style>3</border_style> + <rules /> + <tooltip>$(pv_name) +$(pv_value)</tooltip> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <vertical_alignment>1</vertical_alignment> + <transparent>false</transparent> + <limits_from_pv>false</limits_from_pv> + <border_alarm_sensitive>false</border_alarm_sensitive> + <font> + <fontdata fontName="Arial" height="9" style="0" /> + </font> + <pv_name>loc://macroValue</pv_name> + <height>20</height> + <forecolor_alarm_sensitive>false</forecolor_alarm_sensitive> + <foreground_color> + <color red="0" green="0" blue="0" /> + </foreground_color> + <name>Text Input</name> + <format_type>0</format_type> + <auto_size>false</auto_size> + <border_width>1</border_width> + <minimum>-1.7976931348623157E308</minimum> + <actions hook="false"> + <action type="OPEN_DISPLAY"> + <path>embededOPI.opi</path> + <macros> + <include_parent_macros>true</include_parent_macros> + <pv>$(pv_value)</pv> + </macros> + <replace>false</replace> + <description /> + </action> + </actions> + <precision_from_pv>true</precision_from_pv> + <maximum>1.7976931348623157E308</maximum> + <text /> + <show_units>true</show_units> + <widget_type>Text Input</widget_type> + <background_color> + <color red="255" green="255" blue="255" /> + </background_color> + <enabled>true</enabled> + <y>174</y> + <visible>true</visible> + <backcolor_alarm_sensitive>false</backcolor_alarm_sensitive> + <precision>0</precision> + <horizontal_alignment>1</horizontal_alignment> + <x>90</x> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.Label" version="1.0"> + <auto_size>true</auto_size> + <width>85</width> + <scripts /> + <border_width>1</border_width> + <border_style>0</border_style> + <rules /> + <tooltip /> + <actions hook="false" /> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <vertical_alignment>1</vertical_alignment> + <transparent>true</transparent> + <font> + <fontdata fontName="Arial" height="9" style="0" /> + </font> + <text>Input PV Name:</text> + <widget_type>Label</widget_type> + <height>15</height> + <background_color> + <color red="255" green="255" blue="255" /> + </background_color> + <enabled>true</enabled> + <y>155</y> + <visible>true</visible> + <foreground_color> + <color red="0" green="0" blue="0" /> + </foreground_color> + <horizontal_alignment>1</horizontal_alignment> + <name>Label</name> + <x>90</x> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.ActionButton" version="1.0"> + <width>80</width> + <scripts /> + <border_style>0</border_style> + <rules /> + <tooltip>$(pv_name) +$(pv_value)</tooltip> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <border_alarm_sensitive>false</border_alarm_sensitive> + <font> + <fontdata fontName="Arial" height="9" style="0" /> + </font> + <pv_name /> + <height>31</height> + <forecolor_alarm_sensitive>false</forecolor_alarm_sensitive> + <foreground_color> + <color red="0" green="0" blue="0" /> + </foreground_color> + <image /> + <name>Action Button</name> + <border_width>1</border_width> + <actions hook="false"> + <action type="WRITE_PV"> + <pv_name>loc://runOPI</pv_name> + <value>1</value> + <description /> + </action> + </actions> + <toggle_button>false</toggle_button> + <push_action_index>0</push_action_index> + <text>Open</text> + <widget_type>Action Button</widget_type> + <background_color> + <color red="240" green="240" blue="240" /> + </background_color> + <enabled>true</enabled> + <y>375</y> + <visible>true</visible> + <backcolor_alarm_sensitive>false</backcolor_alarm_sensitive> + <x>342</x> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.TextInput" version="1.0"> + <width>178</width> + <scripts> + <path pathString="OpenOPI.js"> + <pv trig="false">loc://Macro_PV</pv> + <pv trig="true">loc://runOPI</pv> + </path> + </scripts> + <border_style>3</border_style> + <rules /> + <tooltip>$(pv_name) +$(pv_value)</tooltip> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <vertical_alignment>1</vertical_alignment> + <transparent>false</transparent> + <limits_from_pv>false</limits_from_pv> + <border_alarm_sensitive>false</border_alarm_sensitive> + <font> + <fontdata fontName="Arial" height="9" style="0" /> + </font> + <pv_name>loc://Macro_PV</pv_name> + <height>25</height> + <forecolor_alarm_sensitive>false</forecolor_alarm_sensitive> + <foreground_color> + <color red="0" green="0" blue="0" /> + </foreground_color> + <name>Text Input_1</name> + <format_type>0</format_type> + <auto_size>false</auto_size> + <border_width>1</border_width> + <minimum>-1.7976931348623157E308</minimum> + <actions hook="false" /> + <precision_from_pv>true</precision_from_pv> + <maximum>1.7976931348623157E308</maximum> + <text /> + <show_units>true</show_units> + <widget_type>Text Input</widget_type> + <background_color> + <color red="255" green="255" blue="255" /> + </background_color> + <enabled>true</enabled> + <y>378</y> + <visible>true</visible> + <backcolor_alarm_sensitive>false</backcolor_alarm_sensitive> + <precision>0</precision> + <horizontal_alignment>1</horizontal_alignment> + <x>150</x> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.Label" version="1.0"> + <auto_size>false</auto_size> + <width>473</width> + <scripts /> + <border_width>1</border_width> + <border_style>0</border_style> + <rules /> + <tooltip /> + <actions hook="false" /> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <vertical_alignment>1</vertical_alignment> + <transparent>false</transparent> + <font> + <fontdata fontName="Arial" height="9" style="0" /> + </font> + <text>Example1: Change macros of an linking container</text> + <widget_type>Label</widget_type> + <height>20</height> + <background_color> + <color red="255" green="255" blue="0" /> + </background_color> + <enabled>true</enabled> + <y>72</y> + <visible>true</visible> + <foreground_color> + <color red="0" green="0" blue="0" /> + </foreground_color> + <horizontal_alignment>1</horizontal_alignment> + <name>Label_1</name> + <x>90</x> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.Label" version="1.0"> + <auto_size>false</auto_size> + <width>473</width> + <scripts /> + <border_width>1</border_width> + <border_style>0</border_style> + <rules /> + <tooltip /> + <actions hook="false" /> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <vertical_alignment>1</vertical_alignment> + <transparent>false</transparent> + <font> + <fontdata fontName="Arial" height="9" style="0" /> + </font> + <text>Example2: Open an OPI with different macros</text> + <widget_type>Label</widget_type> + <height>20</height> + <background_color> + <color red="255" green="255" blue="0" /> + </background_color> + <enabled>true</enabled> + <y>324</y> + <visible>true</visible> + <foreground_color> + <color red="0" green="0" blue="0" /> + </foreground_color> + <horizontal_alignment>1</horizontal_alignment> + <name>Label_2</name> + <x>90</x> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.Label" version="1.0"> + <auto_size>true</auto_size> + <width>85</width> + <scripts /> + <border_width>1</border_width> + <border_style>0</border_style> + <rules /> + <tooltip /> + <actions hook="false" /> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <vertical_alignment>1</vertical_alignment> + <transparent>true</transparent> + <font> + <fontdata fontName="Arial" height="9" style="0" /> + </font> + <text>Input PV Name:</text> + <widget_type>Label</widget_type> + <height>15</height> + <background_color> + <color red="255" green="255" blue="255" /> + </background_color> + <enabled>true</enabled> + <y>361</y> + <visible>true</visible> + <foreground_color> + <color red="0" green="0" blue="0" /> + </foreground_color> + <horizontal_alignment>1</horizontal_alignment> + <name>Label_3</name> + <x>150</x> + </widget> +</display> \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/DynamicMacros/OpenOPI.js b/core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/DynamicMacros/OpenOPI.js new file mode 100644 index 000000000..129e06164 --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/DynamicMacros/OpenOPI.js @@ -0,0 +1,15 @@ +importPackage(Packages.org.csstudio.opibuilder.scriptUtil); + +var flagName = "firstRun"; +//Avoid running this script if the script is triggered during opi startup. +if(widgetController.getExternalObject(flagName) == null){ + widgetController.setExternalObject(flagName, false); +}else{ + + var macroInput = DataUtil.createMacrosInput(true); + macroInput.put("pv", PVUtil.getString(pvArray[0])); + + //Open an OPI with the new Macro Input. + ScriptUtil.openOPI(widgetController, "embeddedOPI.opi", 0, macroInput); + +} \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/DynamicMacros/embeddedOPI.opi b/core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/DynamicMacros/embeddedOPI.opi new file mode 100644 index 000000000..479e86a47 --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/DynamicMacros/embeddedOPI.opi @@ -0,0 +1,134 @@ +<?xml version="1.0" encoding="UTF-8"?> +<display typeId="org.csstudio.opibuilder.Display" version="1.0"> + <width>300</width> + <scripts /> + <rules /> + <actions hook="false" /> + <macros> + <include_parent_macros>true</include_parent_macros> + </macros> + <snap_to_geometry>true</snap_to_geometry> + <show_grid>false</show_grid> + <show_edit_range>true</show_edit_range> + <grid_space>6</grid_space> + <height>150</height> + <widget_type>Display</widget_type> + <background_color> + <color red="255" green="255" blue="255" /> + </background_color> + <foreground_color> + <color red="192" green="192" blue="192" /> + </foreground_color> + <y>-1</y> + <show_ruler>false</show_ruler> + <name>$(pv)</name> + <x>-1</x> + <widget typeId="org.csstudio.opibuilder.widgets.Label" version="1.0"> + <auto_size>true</auto_size> + <width>110</width> + <scripts /> + <border_width>1</border_width> + <border_style>0</border_style> + <rules /> + <tooltip /> + <actions hook="false" /> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <vertical_alignment>1</vertical_alignment> + <transparent>false</transparent> + <font> + <fontdata fontName="Arial" height="9" style="0" /> + </font> + <text>My PV name is $(pv)</text> + <widget_type>Label</widget_type> + <height>15</height> + <background_color> + <color red="255" green="255" blue="255" /> + </background_color> + <enabled>true</enabled> + <y>19</y> + <visible>true</visible> + <foreground_color> + <color red="0" green="0" blue="0" /> + </foreground_color> + <horizontal_alignment>1</horizontal_alignment> + <name>Label</name> + <x>30</x> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.TextUpdate" version="1.0"> + <width>148</width> + <scripts /> + <border_style>0</border_style> + <rules /> + <tooltip>$(pv_name) +$(pv_value)</tooltip> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <vertical_alignment>1</vertical_alignment> + <transparent>false</transparent> + <border_alarm_sensitive>true</border_alarm_sensitive> + <font> + <fontdata fontName="Arial" height="9" style="0" /> + </font> + <pv_name>$(pv)</pv_name> + <height>20</height> + <forecolor_alarm_sensitive>false</forecolor_alarm_sensitive> + <foreground_color> + <color red="0" green="0" blue="0" /> + </foreground_color> + <name>Text Update</name> + <format_type>0</format_type> + <auto_size>false</auto_size> + <border_width>1</border_width> + <actions hook="false" /> + <precision_from_pv>true</precision_from_pv> + <text>######</text> + <show_units>true</show_units> + <widget_type>Text Update</widget_type> + <background_color> + <color red="255" green="255" blue="255" /> + </background_color> + <enabled>true</enabled> + <y>39</y> + <visible>true</visible> + <backcolor_alarm_sensitive>false</backcolor_alarm_sensitive> + <precision>0</precision> + <horizontal_alignment>0</horizontal_alignment> + <x>118</x> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.Label" version="1.0"> + <auto_size>false</auto_size> + <width>100</width> + <scripts /> + <border_width>1</border_width> + <border_style>0</border_style> + <rules /> + <tooltip /> + <actions hook="false" /> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <vertical_alignment>1</vertical_alignment> + <transparent>false</transparent> + <font> + <fontdata fontName="Arial" height="9" style="0" /> + </font> + <text>My PV value is</text> + <widget_type>Label</widget_type> + <height>20</height> + <background_color> + <color red="255" green="255" blue="255" /> + </background_color> + <enabled>true</enabled> + <y>39</y> + <visible>true</visible> + <foreground_color> + <color red="0" green="0" blue="0" /> + </foreground_color> + <horizontal_alignment>1</horizontal_alignment> + <name>Label_1</name> + <x>19</x> + </widget> +</display> \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/ExecuteShellScript/AbsoluteWSPathToSysProp.py b/core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/ExecuteShellScript/AbsoluteWSPathToSysProp.py new file mode 100644 index 000000000..4c0e1d54b --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/ExecuteShellScript/AbsoluteWSPathToSysProp.py @@ -0,0 +1,6 @@ +from org.csstudio.opibuilder.scriptUtil import PVUtil, FileUtil +from java.lang import System + + +sysPath = FileUtil.workspacePathToSysPath("/BOY Examples/Miscellaneous/ExecuteShellScript") +System.setProperty("shellScript.dir", sysPath) diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/ExecuteShellScript/ExecuteShellScript.opi b/core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/ExecuteShellScript/ExecuteShellScript.opi new file mode 100644 index 000000000..fbc05ca6d --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/ExecuteShellScript/ExecuteShellScript.opi @@ -0,0 +1,263 @@ +<?xml version="1.0" encoding="UTF-8"?> +<display typeId="org.csstudio.opibuilder.Display" version="1.0"> + <auto_zoom_to_fit_all>false</auto_zoom_to_fit_all> + <macros> + <include_parent_macros>true</include_parent_macros> + </macros> + <wuid>474be8bf:13973dccd53:-7c53</wuid> + <boy_version>3.2.0.qualifier</boy_version> + <scripts /> + <show_ruler>true</show_ruler> + <height>600</height> + <name></name> + <snap_to_geometry>true</snap_to_geometry> + <show_grid>true</show_grid> + <background_color> + <color red="240" green="240" blue="240" /> + </background_color> + <foreground_color> + <color red="192" green="192" blue="192" /> + </foreground_color> + <widget_type>Display</widget_type> + <show_close_button>true</show_close_button> + <width>800</width> + <rules /> + <show_edit_range>true</show_edit_range> + <grid_space>6</grid_space> + <auto_scale_widgets> + <auto_scale_widgets>false</auto_scale_widgets> + <min_width>-1</min_width> + <min_height>-1</min_height> + </auto_scale_widgets> + <actions hook="false" hook_all="false" /> + <y>-1</y> + <x>-1</x> + <widget typeId="org.csstudio.opibuilder.widgets.NativeButton" version="1.0"> + <border_alarm_sensitive>false</border_alarm_sensitive> + <visible>true</visible> + <wuid>474be8bf:13973dccd53:-7bd8</wuid> + <scripts> + <path pathString="AbsoluteWSPathToSysProp.py" checkConnect="true" sfe="false" seoe="false"> + <pv trig="true">1</pv> + </path> + </scripts> + <height>43</height> + <name>Button</name> + <forecolor_alarm_sensitive>false</forecolor_alarm_sensitive> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>false</keep_wh_ratio> + </scale_options> + <pv_name></pv_name> + <foreground_color> + <color red="0" green="0" blue="0" /> + </foreground_color> + <widget_type>Button</widget_type> + <enabled>true</enabled> + <text>Execute</text> + <font> + <opifont.name fontName="Sans" height="10" style="0">Default</opifont.name> + </font> + <width>91</width> + <border_style>0</border_style> + <push_action_index>0</push_action_index> + <image></image> + <rules /> + <pv_value /> + <toggle_button>false</toggle_button> + <border_width>1</border_width> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <y>66</y> + <actions hook="false" hook_all="false"> + <action type="EXECUTE_CMD"> + <command>./Test.sh</command> + <command_directory>$(shellScript.dir)</command_directory> + <wait_time>10</wait_time> + <description></description> + </action> + </actions> + <tooltip>$(pv_name) +$(pv_value)</tooltip> + <x>684</x> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.Label" version="1.0"> + <visible>true</visible> + <vertical_alignment>1</vertical_alignment> + <wuid>474be8bf:13973dccd53:-7b77</wuid> + <auto_size>false</auto_size> + <scripts /> + <height>103</height> + <name>Label</name> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>false</keep_wh_ratio> + </scale_options> + <transparent>false</transparent> + <show_scrollbar>false</show_scrollbar> + <background_color> + <color red="255" green="255" blue="217" /> + </background_color> + <foreground_color> + <color red="0" green="0" blue="0" /> + </foreground_color> + <widget_type>Label</widget_type> + <enabled>true</enabled> + <text>Example1: Execute shell script in absolute workspace path. + +Idea: an init script on the button set a system property "shellScript.dir" which points to the file system path of the shell script, then the execute command action using this system property as its command directory. +</text> + <font> + <opifont.name fontName="Sans" height="10" style="0">Default</opifont.name> + </font> + <width>619</width> + <border_style>0</border_style> + <rules /> + <border_width>1</border_width> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <horizontal_alignment>0</horizontal_alignment> + <actions hook="false" hook_all="false" /> + <y>36</y> + <wrap_words>true</wrap_words> + <tooltip></tooltip> + <x>36</x> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.Label" version="1.0"> + <visible>true</visible> + <vertical_alignment>1</vertical_alignment> + <wuid>474be8bf:13973dccd53:-7b73</wuid> + <auto_size>false</auto_size> + <scripts /> + <height>55</height> + <name>Label_1</name> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>false</keep_wh_ratio> + </scale_options> + <transparent>false</transparent> + <show_scrollbar>false</show_scrollbar> + <background_color> + <color red="255" green="255" blue="217" /> + </background_color> + <foreground_color> + <color red="0" green="0" blue="0" /> + </foreground_color> + <widget_type>Label</widget_type> + <enabled>true</enabled> + <text>Example2: Execute shell script in relative path of the OPI.</text> + <font> + <opifont.name fontName="Sans" height="10" style="0">Default</opifont.name> + </font> + <width>619</width> + <border_style>0</border_style> + <rules /> + <border_width>1</border_width> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <horizontal_alignment>0</horizontal_alignment> + <actions hook="false" hook_all="false" /> + <y>210</y> + <wrap_words>true</wrap_words> + <tooltip></tooltip> + <x>36</x> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.NativeButton" version="1.0"> + <border_alarm_sensitive>false</border_alarm_sensitive> + <visible>true</visible> + <wuid>474be8bf:13973dccd53:-7b6f</wuid> + <scripts> + <path pathString="RelativePathToSysProp.py" checkConnect="true" sfe="false" seoe="false"> + <pv trig="true">1</pv> + </path> + </scripts> + <height>43</height> + <name>Button_1</name> + <forecolor_alarm_sensitive>false</forecolor_alarm_sensitive> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>false</keep_wh_ratio> + </scale_options> + <pv_name></pv_name> + <foreground_color> + <color red="0" green="0" blue="0" /> + </foreground_color> + <widget_type>Button</widget_type> + <enabled>true</enabled> + <text>Execute</text> + <font> + <opifont.name fontName="Sans" height="10" style="0">Default</opifont.name> + </font> + <width>91</width> + <border_style>0</border_style> + <push_action_index>0</push_action_index> + <image></image> + <rules /> + <pv_value /> + <toggle_button>false</toggle_button> + <border_width>1</border_width> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <y>216</y> + <actions hook="false" hook_all="false"> + <action type="EXECUTE_CMD"> + <command>./Test.sh</command> + <command_directory>$(shellScript2.dir)</command_directory> + <wait_time>10</wait_time> + <description></description> + </action> + </actions> + <tooltip>$(pv_name) +$(pv_value)</tooltip> + <x>684</x> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.Label" version="1.0"> + <visible>true</visible> + <vertical_alignment>1</vertical_alignment> + <wuid>-4db6da9a:13cb56cf490:-6fcf</wuid> + <auto_size>false</auto_size> + <scripts /> + <height>55</height> + <name>Label_2</name> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>false</keep_wh_ratio> + </scale_options> + <transparent>false</transparent> + <show_scrollbar>false</show_scrollbar> + <background_color> + <color red="255" green="255" blue="217" /> + </background_color> + <foreground_color> + <color name="Red" red="255" green="0" blue="0" /> + </foreground_color> + <widget_type>Label</widget_type> + <enabled>true</enabled> + <text>Note: you may need to give Execute Permission to Test.sh to run this example.</text> + <font> + <opifont.name fontName="Sans" height="10" style="1">Default Bold</opifont.name> + </font> + <width>619</width> + <border_style>0</border_style> + <rules /> + <border_width>1</border_width> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <horizontal_alignment>0</horizontal_alignment> + <actions hook="false" hook_all="false" /> + <y>324</y> + <wrap_words>true</wrap_words> + <tooltip></tooltip> + <x>36</x> + </widget> +</display> \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/ExecuteShellScript/RelativePathToSysProp.py b/core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/ExecuteShellScript/RelativePathToSysProp.py new file mode 100644 index 000000000..41bfba529 --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/ExecuteShellScript/RelativePathToSysProp.py @@ -0,0 +1,14 @@ +from org.csstudio.opibuilder.scriptUtil import PVUtil, FileUtil +from org.csstudio.opibuilder.util import ResourceUtil +from java.lang import System + +opiPath = display.getModel().getOpiFilePath() + +isWorkspaceFile = ResourceUtil.isExistingWorkspaceFile(opiPath) + +opiFolderPath = ResourceUtil.buildAbsolutePath(display.getModel(), ResourceUtil.getPathFromString("./")).toString() + +if isWorkspaceFile: + opiFolderPath = FileUtil.workspacePathToSysPath(opiFolderPath) + +System.setProperty("shellScript2.dir", opiFolderPath) diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/ExecuteShellScript/Test.sh b/core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/ExecuteShellScript/Test.sh new file mode 100644 index 000000000..04511e794 --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/ExecuteShellScript/Test.sh @@ -0,0 +1 @@ +echo "Hello, this is a shell script." diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/LoginDialogExample/LoginDialogExample.opi b/core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/LoginDialogExample/LoginDialogExample.opi new file mode 100644 index 000000000..6b2e2764f --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/LoginDialogExample/LoginDialogExample.opi @@ -0,0 +1,621 @@ +<?xml version="1.0" encoding="UTF-8"?> +<display typeId="org.csstudio.opibuilder.Display" version="1.0"> + <auto_zoom_to_fit_all>false</auto_zoom_to_fit_all> + <macros> + <include_parent_macros>true</include_parent_macros> + </macros> + <wuid>1f1d1c28:133a7c4b96d:-7fd6</wuid> + <boy_version>2.0.0.qualifier</boy_version> + <scripts /> + <show_ruler>true</show_ruler> + <height>600</height> + <name /> + <snap_to_geometry>true</snap_to_geometry> + <show_grid>true</show_grid> + <background_color> + <color red="240" green="240" blue="240" /> + </background_color> + <foreground_color> + <color red="192" green="192" blue="192" /> + </foreground_color> + <widget_type>Display</widget_type> + <show_close_button>true</show_close_button> + <width>800</width> + <rules /> + <show_edit_range>true</show_edit_range> + <grid_space>6</grid_space> + <actions hook="false" hook_all="false" /> + <y>-1</y> + <x>-1</x> + <widget typeId="org.csstudio.opibuilder.widgets.Label" version="1.0"> + <visible>true</visible> + <vertical_alignment>1</vertical_alignment> + <wuid>12fe8b5f:134a4e0ea40:-7db7</wuid> + <auto_size>false</auto_size> + <scripts /> + <height>49</height> + <name>Label_1</name> + <transparent>false</transparent> + <show_scrollbar>false</show_scrollbar> + <background_color> + <color red="80" green="156" blue="241" /> + </background_color> + <foreground_color> + <color red="255" green="255" blue="0" /> + </foreground_color> + <widget_type>Label</widget_type> + <enabled>true</enabled> + <text>Login Demo</text> + <font> + <fontdata fontName="Verdana" height="18" style="1" /> + </font> + <width>511</width> + <border_style>0</border_style> + <rules /> + <border_width>1</border_width> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <horizontal_alignment>1</horizontal_alignment> + <actions hook="false" hook_all="false" /> + <y>12</y> + <wrap_words>true</wrap_words> + <tooltip /> + <x>24</x> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.groupingContainer" version="1.0"> + <macros> + <include_parent_macros>true</include_parent_macros> + </macros> + <visible>true</visible> + <wuid>12fe8b5f:134a4e0ea40:-7dac</wuid> + <scripts /> + <height>139</height> + <name>Swing Login Demo</name> + <transparent>false</transparent> + <show_scrollbar>false</show_scrollbar> + <background_color> + <color red="240" green="240" blue="240" /> + </background_color> + <foreground_color> + <color red="192" green="192" blue="192" /> + </foreground_color> + <widget_type>Grouping Container</widget_type> + <enabled>true</enabled> + <font> + <fontdata fontName="Verdana" height="12" style="1" /> + </font> + <width>511</width> + <border_style>13</border_style> + <rules /> + <lock_children>false</lock_children> + <border_width>1</border_width> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <actions hook="false" hook_all="false" /> + <y>300</y> + <tooltip /> + <x>25</x> + <widget typeId="org.csstudio.opibuilder.widgets.ActionButton" version="1.0"> + <border_alarm_sensitive>false</border_alarm_sensitive> + <visible>true</visible> + <wuid>-16d100ac:13490ce5c11:-7f4e</wuid> + <scripts /> + <height>39</height> + <forecolor_alarm_sensitive>false</forecolor_alarm_sensitive> + <name>Action Button_3</name> + <pv_name /> + <background_color> + <color red="240" green="240" blue="240" /> + </background_color> + <foreground_color> + <color red="0" green="0" blue="0" /> + </foreground_color> + <widget_type>Action Button</widget_type> + <enabled>true</enabled> + <text>Swing Login</text> + <backcolor_alarm_sensitive>false</backcolor_alarm_sensitive> + <font> + <opifont.name>Default</opifont.name> + </font> + <width>79</width> + <border_style>0</border_style> + <push_action_index>0</push_action_index> + <image /> + <rules /> + <pv_value /> + <toggle_button>false</toggle_button> + <border_width>1</border_width> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <y>12</y> + <actions hook="false" hook_all="false"> + <action type="EXECUTE_PYTHONSCRIPT"> + <path>SwingLogin.py</path> + <scriptText>from javax.swing import JButton, JFrame + +frame = JFrame('Hello, Jython!', + defaultCloseOperation = JFrame.EXIT_ON_CLOSE, + size = (300, 300) + ) + +def change_text(event): + print 'Clicked!' + +button = JButton('Click Me!', actionPerformed=change_text) +frame.add(button) +frame.visible = True</scriptText> + <embedded>false</embedded> + <description /> + </action> + </actions> + <tooltip>$(pv_name) +$(pv_value)</tooltip> + <x>0</x> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.Label" version="1.0"> + <visible>false</visible> + <vertical_alignment>1</vertical_alignment> + <wuid>12fe8b5f:134a4e0ea40:-7fc5</wuid> + <auto_size>false</auto_size> + <scripts /> + <height>99</height> + <name>SwingLogin</name> + <transparent>true</transparent> + <show_scrollbar>false</show_scrollbar> + <background_color> + <color red="255" green="255" blue="255" /> + </background_color> + <foreground_color> + <color red="255" green="0" blue="0" /> + </foreground_color> + <widget_type>Label</widget_type> + <enabled>true</enabled> + <text>Congratulations! +You have succefully logged in!</text> + <font> + <fontdata fontName="Verdana" height="12" style="1" /> + </font> + <width>354</width> + <border_style>0</border_style> + <rules /> + <border_width>1</border_width> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <horizontal_alignment>1</horizontal_alignment> + <actions hook="false" hook_all="false" /> + <y>0</y> + <wrap_words>true</wrap_words> + <tooltip /> + <x>113</x> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.ActionButton" version="1.0"> + <border_alarm_sensitive>false</border_alarm_sensitive> + <visible>true</visible> + <wuid>12fe8b5f:134a4e0ea40:-7fb7</wuid> + <scripts /> + <height>39</height> + <forecolor_alarm_sensitive>false</forecolor_alarm_sensitive> + <name>Action Button_4</name> + <pv_name /> + <background_color> + <color red="240" green="240" blue="240" /> + </background_color> + <foreground_color> + <color red="0" green="0" blue="0" /> + </foreground_color> + <widget_type>Action Button</widget_type> + <enabled>true</enabled> + <text>Logout</text> + <backcolor_alarm_sensitive>false</backcolor_alarm_sensitive> + <font> + <opifont.name>Default</opifont.name> + </font> + <width>79</width> + <border_style>0</border_style> + <push_action_index>0</push_action_index> + <image /> + <rules /> + <pv_value /> + <toggle_button>false</toggle_button> + <border_width>1</border_width> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <y>59</y> + <actions hook="false" hook_all="false"> + <action type="EXECUTE_PYTHONSCRIPT"> + <path /> + <scriptText>from org.csstudio.opibuilder.scriptUtil import PVUtil +display.getWidget("SwingLogin").setVisible(False)</scriptText> + <embedded>true</embedded> + <description /> + </action> + </actions> + <tooltip>$(pv_name) +$(pv_value)</tooltip> + <x>0</x> + </widget> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.Label" version="1.0"> + <visible>true</visible> + <vertical_alignment>1</vertical_alignment> + <wuid>12fe8b5f:134a4e0ea40:-7d05</wuid> + <auto_size>false</auto_size> + <scripts /> + <height>49</height> + <name>Label_2</name> + <transparent>false</transparent> + <show_scrollbar>false</show_scrollbar> + <background_color> + <color red="255" green="255" blue="128" /> + </background_color> + <foreground_color> + <color red="0" green="0" blue="0" /> + </foreground_color> + <widget_type>Label</widget_type> + <enabled>true</enabled> + <text>This demo shows three different ways to login with login dialog +User Name: admin Password: 123456</text> + <font> + <opifont.name>Default</opifont.name> + </font> + <width>512</width> + <border_style>0</border_style> + <rules /> + <border_width>1</border_width> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <horizontal_alignment>1</horizontal_alignment> + <actions hook="false" hook_all="false" /> + <y>66</y> + <wrap_words>true</wrap_words> + <tooltip /> + <x>24</x> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.groupingContainer" version="1.0"> + <macros> + <include_parent_macros>true</include_parent_macros> + </macros> + <visible>true</visible> + <wuid>12fe8b5f:134a4e0ea40:-7bad</wuid> + <scripts /> + <height>145</height> + <name>SWT Login Demo</name> + <transparent>false</transparent> + <show_scrollbar>false</show_scrollbar> + <background_color> + <color red="240" green="240" blue="240" /> + </background_color> + <foreground_color> + <color red="192" green="192" blue="192" /> + </foreground_color> + <widget_type>Grouping Container</widget_type> + <enabled>true</enabled> + <font> + <fontdata fontName="Verdana" height="12" style="1" /> + </font> + <width>509</width> + <border_style>13</border_style> + <rules /> + <lock_children>false</lock_children> + <border_width>1</border_width> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <actions hook="false" hook_all="false" /> + <y>132</y> + <tooltip /> + <x>26</x> + <widget typeId="org.csstudio.opibuilder.widgets.ActionButton" version="1.0"> + <border_alarm_sensitive>false</border_alarm_sensitive> + <visible>true</visible> + <wuid>-16d100ac:13490ce5c11:-7ff9</wuid> + <scripts /> + <height>40</height> + <forecolor_alarm_sensitive>false</forecolor_alarm_sensitive> + <name>Action Button_2</name> + <pv_name /> + <background_color> + <color red="240" green="240" blue="240" /> + </background_color> + <foreground_color> + <color red="0" green="0" blue="0" /> + </foreground_color> + <widget_type>Action Button</widget_type> + <enabled>true</enabled> + <text>SWT Login</text> + <backcolor_alarm_sensitive>false</backcolor_alarm_sensitive> + <font> + <opifont.name>Default</opifont.name> + </font> + <width>80</width> + <border_style>0</border_style> + <push_action_index>0</push_action_index> + <image /> + <rules /> + <pv_value /> + <toggle_button>false</toggle_button> + <border_width>1</border_width> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <y>12</y> + <actions hook="false" hook_all="false"> + <action type="EXECUTE_PYTHONSCRIPT"> + <path>SWTLogin.py</path> + <scriptText>from org.csstudio.opibuilder.scriptUtil import PVUtil</scriptText> + <embedded>false</embedded> + <description /> + </action> + </actions> + <tooltip>$(pv_name) +$(pv_value)</tooltip> + <x>0</x> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.Label" version="1.0"> + <visible>false</visible> + <vertical_alignment>1</vertical_alignment> + <wuid>12fe8b5f:134a4e0ea40:-7d40</wuid> + <auto_size>false</auto_size> + <scripts /> + <height>99</height> + <name>SWTLogin</name> + <transparent>true</transparent> + <show_scrollbar>false</show_scrollbar> + <background_color> + <color red="255" green="255" blue="255" /> + </background_color> + <foreground_color> + <color red="255" green="0" blue="0" /> + </foreground_color> + <widget_type>Label</widget_type> + <enabled>true</enabled> + <text>Congratulations! +You have succefully logged in!</text> + <font> + <fontdata fontName="Verdana" height="12" style="1" /> + </font> + <width>354</width> + <border_style>0</border_style> + <rules /> + <border_width>1</border_width> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <horizontal_alignment>1</horizontal_alignment> + <actions hook="false" hook_all="false" /> + <y>0</y> + <wrap_words>true</wrap_words> + <tooltip /> + <x>124</x> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.ActionButton" version="1.0"> + <border_alarm_sensitive>false</border_alarm_sensitive> + <visible>true</visible> + <wuid>12fe8b5f:134a4e0ea40:-7d1d</wuid> + <scripts /> + <height>39</height> + <forecolor_alarm_sensitive>false</forecolor_alarm_sensitive> + <name>Action Button_4</name> + <pv_name /> + <background_color> + <color red="240" green="240" blue="240" /> + </background_color> + <foreground_color> + <color red="0" green="0" blue="0" /> + </foreground_color> + <widget_type>Action Button</widget_type> + <enabled>true</enabled> + <text>Logout</text> + <backcolor_alarm_sensitive>false</backcolor_alarm_sensitive> + <font> + <opifont.name>Default</opifont.name> + </font> + <width>79</width> + <border_style>0</border_style> + <push_action_index>0</push_action_index> + <image /> + <rules /> + <pv_value /> + <toggle_button>false</toggle_button> + <border_width>1</border_width> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <y>60</y> + <actions hook="false" hook_all="false"> + <action type="EXECUTE_PYTHONSCRIPT"> + <path /> + <scriptText>from org.csstudio.opibuilder.scriptUtil import PVUtil +display.getWidget("SWTLogin").setVisible(False)</scriptText> + <embedded>true</embedded> + <description /> + </action> + </actions> + <tooltip>$(pv_name) +$(pv_value)</tooltip> + <x>0</x> + </widget> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.groupingContainer" version="1.0"> + <macros> + <include_parent_macros>true</include_parent_macros> + </macros> + <visible>true</visible> + <wuid>12fe8b5f:134a4e0ea40:-7bab</wuid> + <scripts /> + <height>145</height> + <name>OPI Login Demo</name> + <transparent>false</transparent> + <show_scrollbar>false</show_scrollbar> + <background_color> + <color red="240" green="240" blue="240" /> + </background_color> + <foreground_color> + <color red="192" green="192" blue="192" /> + </foreground_color> + <widget_type>Grouping Container</widget_type> + <enabled>true</enabled> + <font> + <fontdata fontName="Verdana" height="12" style="1" /> + </font> + <width>509</width> + <border_style>13</border_style> + <rules /> + <lock_children>false</lock_children> + <border_width>1</border_width> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <actions hook="false" hook_all="false" /> + <y>450</y> + <tooltip /> + <x>26</x> + <widget typeId="org.csstudio.opibuilder.widgets.ActionButton" version="1.0"> + <border_alarm_sensitive>false</border_alarm_sensitive> + <visible>true</visible> + <wuid>-561cdbfc:1348671878d:-7411</wuid> + <scripts /> + <height>40</height> + <forecolor_alarm_sensitive>false</forecolor_alarm_sensitive> + <name>Action Button</name> + <pv_name /> + <background_color> + <color red="240" green="240" blue="240" /> + </background_color> + <foreground_color> + <color red="0" green="0" blue="0" /> + </foreground_color> + <widget_type>Action Button</widget_type> + <enabled>true</enabled> + <text>OPI Login</text> + <backcolor_alarm_sensitive>false</backcolor_alarm_sensitive> + <font> + <opifont.name>Default</opifont.name> + </font> + <width>80</width> + <border_style>0</border_style> + <push_action_index>0</push_action_index> + <image /> + <rules /> + <pv_value /> + <toggle_button>false</toggle_button> + <border_width>1</border_width> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <y>12</y> + <actions hook="false" hook_all="false"> + <action type="OPEN_OPI_IN_VIEW"> + <path>OPIDialog.opi</path> + <macros> + <include_parent_macros>true</include_parent_macros> + </macros> + <Position>4</Position> + <description /> + </action> + </actions> + <tooltip>$(pv_name) +$(pv_value)</tooltip> + <x>0</x> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.ActionButton" version="1.0"> + <border_alarm_sensitive>false</border_alarm_sensitive> + <visible>true</visible> + <wuid>-561cdbfc:1348671878d:-740d</wuid> + <scripts /> + <height>40</height> + <forecolor_alarm_sensitive>false</forecolor_alarm_sensitive> + <name>Action Button_1</name> + <pv_name>loc://OK</pv_name> + <background_color> + <color red="240" green="240" blue="240" /> + </background_color> + <foreground_color> + <color red="0" green="0" blue="0" /> + </foreground_color> + <widget_type>Action Button</widget_type> + <enabled>true</enabled> + <text>Logout</text> + <backcolor_alarm_sensitive>false</backcolor_alarm_sensitive> + <font> + <opifont.name>Default</opifont.name> + </font> + <width>80</width> + <border_style>0</border_style> + <push_action_index>0</push_action_index> + <image /> + <rules /> + <pv_value /> + <toggle_button>false</toggle_button> + <border_width>1</border_width> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <y>60</y> + <actions hook="false" hook_all="false"> + <action type="EXECUTE_PYTHONSCRIPT"> + <path /> + <scriptText>from org.csstudio.opibuilder.scriptUtil import PVUtil +from java.lang import System + +System.setProperty("UserName", "") +System.setProperty("Password", "") +widget.getPV().setValue(0) +display.getWidget("OPILogin").setVisible(False)</scriptText> + <embedded>true</embedded> + <description /> + </action> + </actions> + <tooltip>$(pv_name) +$(pv_value)</tooltip> + <x>0</x> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.Label" version="1.0"> + <visible>false</visible> + <vertical_alignment>1</vertical_alignment> + <wuid>-561cdbfc:1348671878d:-7403</wuid> + <auto_size>false</auto_size> + <scripts> + <path pathString="OPILogin.py" checkConnect="true" sfe="true" seoe="false"> + <pv trig="true">loc://OK</pv> + </path> + </scripts> + <height>100</height> + <name>OPILogin</name> + <transparent>true</transparent> + <show_scrollbar>false</show_scrollbar> + <background_color> + <color red="255" green="255" blue="255" /> + </background_color> + <foreground_color> + <color red="255" green="0" blue="0" /> + </foreground_color> + <widget_type>Label</widget_type> + <enabled>true</enabled> + <text>Congratulations! +You have succefully logged in!</text> + <font> + <fontdata fontName="Verdana" height="12" style="1" /> + </font> + <width>355</width> + <border_style>0</border_style> + <rules /> + <border_width>1</border_width> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <horizontal_alignment>1</horizontal_alignment> + <actions hook="false" hook_all="false" /> + <y>0</y> + <wrap_words>true</wrap_words> + <tooltip /> + <x>108</x> + </widget> + </widget> +</display> \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/LoginDialogExample/OPIDialog.opi b/core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/LoginDialogExample/OPIDialog.opi new file mode 100644 index 000000000..2321de6c0 --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/LoginDialogExample/OPIDialog.opi @@ -0,0 +1,337 @@ +<?xml version="1.0" encoding="UTF-8"?> +<display typeId="org.csstudio.opibuilder.Display" version="1.0"> + <auto_zoom_to_fit_all>false</auto_zoom_to_fit_all> + <macros> + <include_parent_macros>true</include_parent_macros> + </macros> + <wuid>1f1d1c28:133a7c4b96d:-7fd6</wuid> + <boy_version>2.0.0.qualifier</boy_version> + <scripts /> + <show_ruler>true</show_ruler> + <height>150</height> + <name /> + <snap_to_geometry>true</snap_to_geometry> + <show_grid>true</show_grid> + <background_color> + <color red="240" green="240" blue="240" /> + </background_color> + <foreground_color> + <color red="192" green="192" blue="192" /> + </foreground_color> + <widget_type>Display</widget_type> + <show_close_button>true</show_close_button> + <width>300</width> + <rules /> + <show_edit_range>true</show_edit_range> + <grid_space>6</grid_space> + <actions hook="false" hook_all="false" /> + <y>-1</y> + <x>-1</x> + <widget typeId="org.csstudio.opibuilder.widgets.Label" version="1.0"> + <visible>true</visible> + <vertical_alignment>1</vertical_alignment> + <wuid>-561cdbfc:1348671878d:-739f</wuid> + <auto_size>false</auto_size> + <scripts /> + <height>20</height> + <name>Label</name> + <transparent>true</transparent> + <show_scrollbar>false</show_scrollbar> + <background_color> + <color red="255" green="255" blue="255" /> + </background_color> + <foreground_color> + <color red="0" green="0" blue="0" /> + </foreground_color> + <widget_type>Label</widget_type> + <enabled>true</enabled> + <text>Name</text> + <font> + <opifont.name>Default</opifont.name> + </font> + <width>75</width> + <border_style>0</border_style> + <rules /> + <border_width>1</border_width> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <horizontal_alignment>1</horizontal_alignment> + <actions hook="false" hook_all="false" /> + <y>35</y> + <wrap_words>true</wrap_words> + <tooltip /> + <x>22</x> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.Label" version="1.0"> + <visible>true</visible> + <vertical_alignment>1</vertical_alignment> + <wuid>-561cdbfc:1348671878d:-739b</wuid> + <auto_size>false</auto_size> + <scripts /> + <height>20</height> + <name>Label_1</name> + <transparent>true</transparent> + <show_scrollbar>false</show_scrollbar> + <background_color> + <color red="255" green="255" blue="255" /> + </background_color> + <foreground_color> + <color red="0" green="0" blue="0" /> + </foreground_color> + <widget_type>Label</widget_type> + <enabled>true</enabled> + <text>Password</text> + <font> + <opifont.name>Default</opifont.name> + </font> + <width>75</width> + <border_style>0</border_style> + <rules /> + <border_width>1</border_width> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <horizontal_alignment>1</horizontal_alignment> + <actions hook="false" hook_all="false" /> + <y>60</y> + <wrap_words>true</wrap_words> + <tooltip /> + <x>22</x> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.TextInput" version="1.0"> + <border_alarm_sensitive>false</border_alarm_sensitive> + <visible>true</visible> + <minimum>-1.7976931348623157E308</minimum> + <vertical_alignment>1</vertical_alignment> + <show_units>true</show_units> + <multiline_input>false</multiline_input> + <wuid>-561cdbfc:1348671878d:-737a</wuid> + <auto_size>false</auto_size> + <rotation_angle>0.0</rotation_angle> + <scripts /> + <height>20</height> + <forecolor_alarm_sensitive>false</forecolor_alarm_sensitive> + <name>UserName</name> + <format_type>0</format_type> + <precision_from_pv>true</precision_from_pv> + <transparent>false</transparent> + <selector_type>0</selector_type> + <pv_name /> + <background_color> + <color red="255" green="255" blue="255" /> + </background_color> + <foreground_color> + <color red="0" green="0" blue="0" /> + </foreground_color> + <widget_type>Text Input</widget_type> + <enabled>true</enabled> + <text /> + <backcolor_alarm_sensitive>false</backcolor_alarm_sensitive> + <precision>0</precision> + <font> + <opifont.name>Default</opifont.name> + </font> + <width>163</width> + <border_style>3</border_style> + <rules /> + <pv_value /> + <border_width>1</border_width> + <maximum>1.7976931348623157E308</maximum> + <limits_from_pv>false</limits_from_pv> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <horizontal_alignment>0</horizontal_alignment> + <actions hook="false" hook_all="false" /> + <y>35</y> + <tooltip>$(pv_name) +$(pv_value)</tooltip> + <x>96</x> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.TextInput" version="1.0"> + <border_alarm_sensitive>false</border_alarm_sensitive> + <visible>true</visible> + <minimum>-1.7976931348623157E308</minimum> + <vertical_alignment>1</vertical_alignment> + <show_units>true</show_units> + <multiline_input>false</multiline_input> + <wuid>-561cdbfc:1348671878d:-7376</wuid> + <auto_size>false</auto_size> + <rotation_angle>0.0</rotation_angle> + <scripts /> + <height>20</height> + <forecolor_alarm_sensitive>false</forecolor_alarm_sensitive> + <name>Password</name> + <format_type>0</format_type> + <precision_from_pv>true</precision_from_pv> + <transparent>false</transparent> + <selector_type>0</selector_type> + <pv_name /> + <background_color> + <color red="255" green="255" blue="255" /> + </background_color> + <foreground_color> + <color red="0" green="0" blue="0" /> + </foreground_color> + <widget_type>Text Input</widget_type> + <enabled>true</enabled> + <text /> + <backcolor_alarm_sensitive>false</backcolor_alarm_sensitive> + <precision>0</precision> + <font> + <opifont.name>Default</opifont.name> + </font> + <width>163</width> + <border_style>3</border_style> + <rules /> + <pv_value /> + <border_width>1</border_width> + <maximum>1.7976931348623157E308</maximum> + <limits_from_pv>false</limits_from_pv> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <horizontal_alignment>0</horizontal_alignment> + <actions hook="false" hook_all="false" /> + <y>60</y> + <tooltip>$(pv_name) +$(pv_value)</tooltip> + <x>96</x> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.ActionButton" version="1.0"> + <border_alarm_sensitive>false</border_alarm_sensitive> + <visible>true</visible> + <wuid>-561cdbfc:1348671878d:-733e</wuid> + <scripts /> + <height>29</height> + <forecolor_alarm_sensitive>false</forecolor_alarm_sensitive> + <name>Action Button</name> + <pv_name>loc://OK</pv_name> + <background_color> + <color red="240" green="240" blue="240" /> + </background_color> + <foreground_color> + <color red="0" green="0" blue="0" /> + </foreground_color> + <widget_type>Action Button</widget_type> + <enabled>true</enabled> + <text>OK</text> + <backcolor_alarm_sensitive>false</backcolor_alarm_sensitive> + <font> + <opifont.name>Default</opifont.name> + </font> + <width>74</width> + <border_style>0</border_style> + <push_action_index>0</push_action_index> + <image /> + <rules /> + <pv_value /> + <toggle_button>false</toggle_button> + <border_width>1</border_width> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <y>108</y> + <actions hook="false" hook_all="false"> + <action type="EXECUTE_JAVASCRIPT"> + <path /> + <scriptText>importPackage(Packages.org.csstudio.opibuilder.scriptUtil); +importPackage(Packages.java.lang); +System.setProperty("UserName", display.getWidget("UserName").getValue()); +System.setProperty("Password", display.getWidget("Password").getValue()); + +widget.getPV().setValue(1); +ScriptUtil.closeCurrentOPI();</scriptText> + <embedded>true</embedded> + <description /> + </action> + </actions> + <tooltip>$(pv_name) +$(pv_value)</tooltip> + <x>138</x> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.ActionButton" version="1.0"> + <border_alarm_sensitive>false</border_alarm_sensitive> + <visible>true</visible> + <wuid>-561cdbfc:1348671878d:-7332</wuid> + <scripts /> + <height>29</height> + <forecolor_alarm_sensitive>false</forecolor_alarm_sensitive> + <name>Action Button_1</name> + <pv_name /> + <background_color> + <color red="240" green="240" blue="240" /> + </background_color> + <foreground_color> + <color red="0" green="0" blue="0" /> + </foreground_color> + <widget_type>Action Button</widget_type> + <enabled>true</enabled> + <text>Cancel</text> + <backcolor_alarm_sensitive>false</backcolor_alarm_sensitive> + <font> + <opifont.name>Default</opifont.name> + </font> + <width>74</width> + <border_style>0</border_style> + <push_action_index>0</push_action_index> + <image /> + <rules /> + <pv_value /> + <toggle_button>false</toggle_button> + <border_width>1</border_width> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <y>108</y> + <actions hook="false" hook_all="false"> + <action type="EXECUTE_JAVASCRIPT"> + <path /> + <scriptText>importPackage(Packages.org.csstudio.opibuilder.scriptUtil); +ScriptUtil.closeCurrentOPI();</scriptText> + <embedded>true</embedded> + <description /> + </action> + </actions> + <tooltip>$(pv_name) +$(pv_value)</tooltip> + <x>222</x> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.Label" version="1.0"> + <visible>true</visible> + <vertical_alignment>1</vertical_alignment> + <wuid>-561cdbfc:1348671878d:-72e7</wuid> + <auto_size>false</auto_size> + <scripts /> + <height>20</height> + <name>Label_2</name> + <transparent>true</transparent> + <show_scrollbar>false</show_scrollbar> + <background_color> + <color red="255" green="255" blue="255" /> + </background_color> + <foreground_color> + <color red="0" green="0" blue="0" /> + </foreground_color> + <widget_type>Label</widget_type> + <enabled>true</enabled> + <text>Login Dialog</text> + <font> + <fontdata fontName="Verdana" height="12" style="1" /> + </font> + <width>205</width> + <border_style>0</border_style> + <rules /> + <border_width>1</border_width> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <horizontal_alignment>1</horizontal_alignment> + <actions hook="false" hook_all="false" /> + <y>6</y> + <wrap_words>true</wrap_words> + <tooltip /> + <x>48</x> + </widget> +</display> \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/LoginDialogExample/OPILogin.py b/core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/LoginDialogExample/OPILogin.py new file mode 100644 index 000000000..8238ff7c1 --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/LoginDialogExample/OPILogin.py @@ -0,0 +1,14 @@ +from org.csstudio.opibuilder.scriptUtil import PVUtil +from java.lang import System +from org.eclipse.jface.dialogs import MessageDialog + +ok = PVUtil.getDouble(pvs[0]) +if ok ==1: + userName = System.getProperty("UserName") + password = System.getProperty("Password") + if userName=="admin" and password == "123456": + widget.setPropertyValue("visible", True) + else: + MessageDialog.openError(None, "Error", + "The user name or password is wrong!") + pvs[0].setValue(0) \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/LoginDialogExample/SWTLogin.py b/core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/LoginDialogExample/SWTLogin.py new file mode 100644 index 000000000..249710014 --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/LoginDialogExample/SWTLogin.py @@ -0,0 +1,13 @@ +from org.eclipse.jface.dialogs import MessageDialog +from org.eclipse.jface.window import Window +from SWTLoginDialog import * + + +dialog = LoginDialog(Display.getCurrent().getActiveShell()) +a = dialog.open() +if a == Window.OK: + info = dialog.getLoginInfo() + if info[0] == "admin" and info[1]=="123456": + display.getWidget("SWTLogin").setVisible(True) + else: + MessageDialog.openError(None, "Error", "The user name or password you input is wrong!") diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/LoginDialogExample/SWTLoginDialog$py.class b/core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/LoginDialogExample/SWTLoginDialog$py.class new file mode 100644 index 0000000000000000000000000000000000000000..56b5749b0a1bbe7a2e911c20ef8a1bdbbe744f4b GIT binary patch literal 6913 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 literal 0 HcmV?d00001 diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/LoginDialogExample/SWTLoginDialog.py b/core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/LoginDialogExample/SWTLoginDialog.py new file mode 100644 index 000000000..8394e2712 --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/LoginDialogExample/SWTLoginDialog.py @@ -0,0 +1,46 @@ +''' + A login dialog implemented in SWT + + @author: Xihui Chen +''' + +from org.eclipse.jface.dialogs import Dialog, MessageDialog +from org.eclipse.swt.widgets import Display, Label, Text +from org.eclipse.swt import SWT +from org.eclipse.swt.layout import GridData +from org.eclipse.jface.window import Window + +class LoginDialog(Dialog): + + def __init__(self, parentShell): + Dialog.__init__(self, parentShell) + + def createDialogArea(self, parent): + self.getShell().setText("Login") + container=self.super__createDialogArea(parent) + gridLayout= container.getLayout() + gridLayout.numColumns=2; + + label = Label(container, SWT.None) + label.setLayoutData(GridData(SWT.RIGHT, SWT.CENTER, False, False)) + label.setText("User Name: ") + + self.text = Text(container, SWT.BORDER) + self.text.setLayoutData(GridData(SWT.FILL, SWT.CENTER, True, False)) + + label = Label(container, SWT.None) + label.setLayoutData(GridData(SWT.RIGHT, SWT.CENTER, False, False)) + label.setText("Password: ") + + self.passwordText = Text(container, SWT.BORDER|SWT.PASSWORD) + self.passwordText.setLayoutData(GridData(SWT.FILL, SWT.CENTER, True, False)) + return container + def okPressed(self): + self.userName=self.text.getText() + self.passWord=self.passwordText.getText() + self.super__okPressed() + + def getLoginInfo(self): + return [self.userName, self.passWord] + + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/LoginDialogExample/SwingLogin.py b/core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/LoginDialogExample/SwingLogin.py new file mode 100644 index 000000000..f6036d407 --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/LoginDialogExample/SwingLogin.py @@ -0,0 +1,13 @@ +from SwingLoginDialog import * + +dialog = SwingLoginDialog() +dialog.setVisible(True) +info=dialog.getLoginInfo() + +if info != None: + if info[0]=="admin" and info[1]=="123456": + display.getWidget("SwingLogin").setVisible(True) + else: + JOptionPane.showMessageDialog(None, "The user name or password is wrong!", + "Error", JOptionPane.ERROR_MESSAGE) + diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/LoginDialogExample/SwingLoginDialog$py.class b/core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/LoginDialogExample/SwingLoginDialog$py.class new file mode 100644 index 0000000000000000000000000000000000000000..60074ca7916ea0d1ae25af3f3be6045470ec3b49 GIT binary patch literal 7336 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 literal 0 HcmV?d00001 diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/LoginDialogExample/SwingLoginDialog.py b/core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/LoginDialogExample/SwingLoginDialog.py new file mode 100644 index 000000000..e06d2efe7 --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/LoginDialogExample/SwingLoginDialog.py @@ -0,0 +1,56 @@ +''' + A login dialog implemented in Swing. + + @author: Xihui Chen +''' + +from javax.swing import JButton, JFrame, SwingUtilities, JOptionPane, JDialog,\ + JLabel, JTextField, JPasswordField +from java.awt.event import ActionListener +from org.csstudio.opibuilder.scriptUtil import ConsoleUtil +from java.lang import Runnable, Thread, String +from java.awt import GridLayout + + +class SwingLoginDialog(JDialog): + + def __init__(self): + self.username="" + self.password="" + self.okPressed=False + self.userField=JTextField(15) + self.passField=JPasswordField(15) + + self.setTitle("Login") + self.setModal(True) + self.setAlwaysOnTop(True) + self.setLocationRelativeTo(None) + pane = self.getContentPane() + pane.setLayout(GridLayout(4,2)) + pane.add(JLabel("Username:")) + pane.add(self.userField) + pane.add(JLabel("Password:")) + pane.add(self.passField) + pane.add(JLabel()) + pane.add(JLabel()) + okButton = JButton("OK", actionPerformed=self.okClick) + pane.add(okButton) + cancelButton=JButton("Cancel", actionPerformed=self.cancelClick) + pane.add(cancelButton) + self.pack() + + def okClick(self, e): + self.okPressed=True + self.username=self.userField.getText() + self.password=str(String(self.passField.getPassword())) + self.setVisible(False) + + def cancelClick(self, e): + self.okPressed=False + self.setVisible(False) + + + def getLoginInfo(self): + if self.okPressed: + return [self.username, self.password] + return None diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/NotifyOnOPIStartAndClose.opi b/core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/NotifyOnOPIStartAndClose.opi new file mode 100644 index 000000000..653965c60 --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/NotifyOnOPIStartAndClose.opi @@ -0,0 +1,95 @@ +<?xml version="1.0" encoding="UTF-8"?> +<display typeId="org.csstudio.opibuilder.Display" version="1.0"> + <auto_zoom_to_fit_all>false</auto_zoom_to_fit_all> + <macros> + <include_parent_macros>true</include_parent_macros> + <a>b</a> + </macros> + <wuid>-5cfe3b0f:138068ad464:-7f16</wuid> + <boy_version>3.1.4.qualifier</boy_version> + <scripts /> + <show_ruler>true</show_ruler> + <height>600</height> + <name></name> + <snap_to_geometry>true</snap_to_geometry> + <show_grid>true</show_grid> + <background_color> + <color red="240" green="240" blue="240" /> + </background_color> + <foreground_color> + <color red="192" green="192" blue="192" /> + </foreground_color> + <widget_type>Display</widget_type> + <show_close_button>true</show_close_button> + <width>800</width> + <rules /> + <show_edit_range>true</show_edit_range> + <grid_space>6</grid_space> + <auto_scale_widgets> + <auto_scale_widgets>false</auto_scale_widgets> + <min_width>-1</min_width> + <min_height>-1</min_height> + </auto_scale_widgets> + <actions hook="false" hook_all="false" /> + <y>-1</y> + <x>-1</x> + <widget typeId="org.csstudio.opibuilder.widgets.Label" version="1.0"> + <visible>true</visible> + <vertical_alignment>1</vertical_alignment> + <wuid>-55a067ad:1382905b627:-7f25</wuid> + <auto_size>false</auto_size> + <scripts> + <path pathString="EmbeddedPy" checkConnect="true" sfe="false" seoe="false"> + <scriptName>NotifyOnStartAndStop</scriptName> + <scriptText><![CDATA[from org.csstudio.opibuilder.scriptUtil import PVUtil, ConsoleUtil +from org.eclipse.gef import EditPartListener + +ConsoleUtil.writeInfo("OPI Started") +'''Put your startup code here''' + +class OPICloseListener(EditPartListener): + def partDeactivated(self, editpart): + ConsoleUtil.writeInfo("OPI Closed") + '''Put your close code here''' + +widget.addEditPartListener(OPICloseListener()) +]]></scriptText> + <pv trig="true">1</pv> + </path> + </scripts> + <height>73</height> + <name>Label</name> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>false</keep_wh_ratio> + </scale_options> + <transparent>false</transparent> + <show_scrollbar>false</show_scrollbar> + <background_color> + <color red="255" green="255" blue="170" /> + </background_color> + <foreground_color> + <color red="0" green="0" blue="0" /> + </foreground_color> + <widget_type>Label</widget_type> + <enabled>true</enabled> + <text>This example will print "OPI Started" on OPI startup and print "OPI Closed" in BOY Console after OPI closed. Please see the "Scripts" property of this widget.</text> + <font> + <opifont.name fontName="Sans" height="10" style="0">Default</opifont.name> + </font> + <width>643</width> + <border_style>0</border_style> + <rules /> + <border_width>1</border_width> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <horizontal_alignment>1</horizontal_alignment> + <actions hook="false" hook_all="false" /> + <y>36</y> + <wrap_words>true</wrap_words> + <tooltip></tooltip> + <x>30</x> + </widget> +</display> \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/ScriptUtil/GUIUtilExample.opi b/core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/ScriptUtil/GUIUtilExample.opi new file mode 100644 index 000000000..a4838ca99 --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/ScriptUtil/GUIUtilExample.opi @@ -0,0 +1,353 @@ +<?xml version="1.0" encoding="UTF-8"?> +<display typeId="org.csstudio.opibuilder.Display" version="1.0"> + <auto_zoom_to_fit_all>false</auto_zoom_to_fit_all> + <macros> + <include_parent_macros>true</include_parent_macros> + </macros> + <wuid>55030127:133cbc5de60:-7fae</wuid> + <boy_version>2.0.0.qualifier</boy_version> + <scripts> + <path pathString="EmbeddedJs" checkConnect="true" sfe="false" seoe="false"> + <scriptName>Initialize</scriptName> + <scriptText>importPackage(Packages.org.csstudio.opibuilder.scriptUtil); + +display.getWidget("passok").getPV().setValue(0); + +display.getWidget("confirmok").getPV().setValue(0);</scriptText> + <pv trig="true">1</pv> + </path> + </scripts> + <show_ruler>true</show_ruler> + <height>600</height> + <name /> + <snap_to_geometry>true</snap_to_geometry> + <show_grid>true</show_grid> + <background_color> + <color red="240" green="240" blue="240" /> + </background_color> + <foreground_color> + <color red="192" green="192" blue="192" /> + </foreground_color> + <widget_type>Display</widget_type> + <show_close_button>true</show_close_button> + <width>800</width> + <rules /> + <show_edit_range>true</show_edit_range> + <grid_space>6</grid_space> + <actions hook="false" hook_all="false" /> + <y>-1</y> + <x>-1</x> + <widget typeId="org.csstudio.opibuilder.widgets.groupingContainer" version="1.0"> + <macros> + <include_parent_macros>true</include_parent_macros> + </macros> + <visible>true</visible> + <wuid>55030127:133cbc5de60:-7f25</wuid> + <scripts /> + <height>103</height> + <name>Password Dialog</name> + <transparent>false</transparent> + <show_scrollbar>false</show_scrollbar> + <background_color> + <color red="240" green="240" blue="240" /> + </background_color> + <foreground_color> + <color red="192" green="192" blue="192" /> + </foreground_color> + <widget_type>Grouping Container</widget_type> + <enabled>true</enabled> + <font> + <opifont.name>Default</opifont.name> + </font> + <width>277</width> + <border_style>13</border_style> + <rules /> + <lock_children>false</lock_children> + <border_width>1</border_width> + <border_color> + <color red="0" green="0" blue="0" /> + </border_color> + <actions hook="false" hook_all="false" /> + <y>30</y> + <tooltip /> + <x>24</x> + <widget typeId="org.csstudio.opibuilder.widgets.ActionButton" version="1.0"> + <border_alarm_sensitive>false</border_alarm_sensitive> + <visible>true</visible> + <wuid>55030127:133cbc5de60:-7f91</wuid> + <scripts /> + <height>40</height> + <forecolor_alarm_sensitive>false</forecolor_alarm_sensitive> + <name>Action Button</name> + <pv_name /> + <background_color> + <color red="240" green="240" blue="240" /> + </background_color> + <foreground_color> + <color red="0" green="0" blue="0" /> + </foreground_color> + <widget_type>Action Button</widget_type> + <enabled>true</enabled> + <text>$(actions)</text> + <backcolor_alarm_sensitive>false</backcolor_alarm_sensitive> + <font> + <opifont.name>Default</opifont.name> + </font> + <width>145</width> + <border_style>0</border_style> + <push_action_index>0</push_action_index> + <image /> + <rules /> + <pv_value /> + <toggle_button>false</toggle_button> + <border_width>1</border_width> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <y>18</y> + <actions hook="false" hook_all="false"> + <action type="EXECUTE_JAVASCRIPT"> + <path /> + <scriptText>importPackage(Packages.org.csstudio.opibuilder.scriptUtil); +var r = GUIUtil.openPasswordDialog("Please input password (123456):", "123456"); + + +display.getWidget("passok").getPV().setValue(r?1:0);</scriptText> + <embedded>true</embedded> + <description>Open Password Dialog</description> + </action> + </actions> + <tooltip>$(pv_name) +$(pv_value)</tooltip> + <x>0</x> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.LED" version="1.0"> + <border_alarm_sensitive>true</border_alarm_sensitive> + <visible>true</visible> + <wuid>55030127:133cbc5de60:-7f69</wuid> + <scripts /> + <square_led>false</square_led> + <on_color> + <color red="0" green="255" blue="0" /> + </on_color> + <height>37</height> + <data_type>0</data_type> + <forecolor_alarm_sensitive>false</forecolor_alarm_sensitive> + <name>passok</name> + <show_boolean_label>false</show_boolean_label> + <off_color> + <color red="0" green="100" blue="0" /> + </off_color> + <pv_name>loc://passok</pv_name> + <background_color> + <color red="240" green="240" blue="240" /> + </background_color> + <foreground_color> + <color red="192" green="192" blue="192" /> + </foreground_color> + <off_label>OFF</off_label> + <widget_type>LED</widget_type> + <enabled>true</enabled> + <backcolor_alarm_sensitive>false</backcolor_alarm_sensitive> + <font> + <opifont.name>Default</opifont.name> + </font> + <width>37</width> + <border_style>0</border_style> + <effect_3d>true</effect_3d> + <rules /> + <pv_value /> + <bit>-1</bit> + <border_width>1</border_width> + <on_label>ON</on_label> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <actions hook="false" hook_all="false" /> + <y>19</y> + <tooltip>$(pv_name) +$(pv_value)</tooltip> + <x>186</x> + </widget> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.groupingContainer" version="1.0"> + <macros> + <include_parent_macros>true</include_parent_macros> + </macros> + <visible>true</visible> + <wuid>55030127:133cbc5de60:-7efa</wuid> + <scripts /> + <height>103</height> + <name>Confirm Dialog</name> + <transparent>false</transparent> + <show_scrollbar>false</show_scrollbar> + <background_color> + <color red="240" green="240" blue="240" /> + </background_color> + <foreground_color> + <color red="192" green="192" blue="192" /> + </foreground_color> + <widget_type>Grouping Container</widget_type> + <enabled>true</enabled> + <font> + <opifont.name>Default</opifont.name> + </font> + <width>277</width> + <border_style>13</border_style> + <rules /> + <lock_children>false</lock_children> + <border_width>1</border_width> + <border_color> + <color red="0" green="0" blue="0" /> + </border_color> + <actions hook="false" hook_all="false" /> + <y>150</y> + <tooltip /> + <x>24</x> + <widget typeId="org.csstudio.opibuilder.widgets.ActionButton" version="1.0"> + <border_alarm_sensitive>false</border_alarm_sensitive> + <visible>true</visible> + <wuid>55030127:133cbc5de60:-7f91</wuid> + <scripts /> + <height>40</height> + <forecolor_alarm_sensitive>false</forecolor_alarm_sensitive> + <name>Action Button</name> + <pv_name /> + <background_color> + <color red="240" green="240" blue="240" /> + </background_color> + <foreground_color> + <color red="0" green="0" blue="0" /> + </foreground_color> + <widget_type>Action Button</widget_type> + <enabled>true</enabled> + <text>$(actions)</text> + <backcolor_alarm_sensitive>false</backcolor_alarm_sensitive> + <font> + <opifont.name>Default</opifont.name> + </font> + <width>145</width> + <border_style>0</border_style> + <push_action_index>0</push_action_index> + <image /> + <rules /> + <pv_value /> + <toggle_button>false</toggle_button> + <border_width>1</border_width> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <y>18</y> + <actions hook="false" hook_all="false"> + <action type="EXECUTE_JAVASCRIPT"> + <path /> + <scriptText>importPackage(Packages.org.csstudio.opibuilder.scriptUtil); +var r = GUIUtil.openConfirmDialog("Are you sure you want to do this?"); + + +display.getWidget("confirmok").getPV().setValue(r?1:0);</scriptText> + <embedded>true</embedded> + <description>Open Confirm Dialog</description> + </action> + </actions> + <tooltip>$(pv_name) +$(pv_value)</tooltip> + <x>0</x> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.LED" version="1.0"> + <border_alarm_sensitive>true</border_alarm_sensitive> + <visible>true</visible> + <wuid>55030127:133cbc5de60:-7f69</wuid> + <scripts /> + <square_led>false</square_led> + <on_color> + <color red="0" green="255" blue="0" /> + </on_color> + <height>37</height> + <data_type>0</data_type> + <forecolor_alarm_sensitive>false</forecolor_alarm_sensitive> + <name>confirmok</name> + <show_boolean_label>false</show_boolean_label> + <off_color> + <color red="0" green="100" blue="0" /> + </off_color> + <pv_name>loc://confirmok</pv_name> + <background_color> + <color red="240" green="240" blue="240" /> + </background_color> + <foreground_color> + <color red="192" green="192" blue="192" /> + </foreground_color> + <off_label>OFF</off_label> + <widget_type>LED</widget_type> + <enabled>true</enabled> + <backcolor_alarm_sensitive>false</backcolor_alarm_sensitive> + <font> + <opifont.name>Default</opifont.name> + </font> + <width>37</width> + <border_style>0</border_style> + <effect_3d>true</effect_3d> + <rules /> + <pv_value /> + <bit>-1</bit> + <border_width>1</border_width> + <on_label>ON</on_label> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <actions hook="false" hook_all="false" /> + <y>19</y> + <tooltip>$(pv_name) +$(pv_value)</tooltip> + <x>186</x> + </widget> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.ActionButton" version="1.0"> + <border_alarm_sensitive>false</border_alarm_sensitive> + <visible>true</visible> + <wuid>55030127:133cbc5de60:-7eca</wuid> + <scripts /> + <height>40</height> + <forecolor_alarm_sensitive>false</forecolor_alarm_sensitive> + <name>Action Button_1</name> + <pv_name /> + <background_color> + <color red="240" green="240" blue="240" /> + </background_color> + <foreground_color> + <color red="0" green="0" blue="0" /> + </foreground_color> + <widget_type>Action Button</widget_type> + <enabled>true</enabled> + <text>$(actions)</text> + <backcolor_alarm_sensitive>false</backcolor_alarm_sensitive> + <font> + <opifont.name>Default</opifont.name> + </font> + <width>217</width> + <border_style>0</border_style> + <push_action_index>0</push_action_index> + <image /> + <rules /> + <pv_value /> + <toggle_button>false</toggle_button> + <border_width>1</border_width> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <y>182</y> + <actions hook="false" hook_all="false"> + <action type="EXECUTE_JAVASCRIPT"> + <path /> + <scriptText>importPackage(Packages.org.csstudio.opibuilder.scriptUtil); +GUIUtil.fullScreen();</scriptText> + <embedded>true</embedded> + <description>Enter/Exit Full Screen (F11)</description> + </action> + </actions> + <tooltip>$(pv_name) +$(pv_value)</tooltip> + <x>396</x> + </widget> +</display> \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/ScriptUtil/createPVFromScript.opi b/core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/ScriptUtil/createPVFromScript.opi new file mode 100644 index 000000000..58f822cb3 --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/ScriptUtil/createPVFromScript.opi @@ -0,0 +1,227 @@ +<?xml version="1.0" encoding="UTF-8"?> +<display typeId="org.csstudio.opibuilder.Display" version="1.0.0"> + <auto_zoom_to_fit_all>false</auto_zoom_to_fit_all> + <macros> + <include_parent_macros>true</include_parent_macros> + </macros> + <wuid>35f70300:13b95dedeab:-7fea</wuid> + <boy_version>3.2.10.qualifier</boy_version> + <scripts /> + <show_ruler>true</show_ruler> + <height>600</height> + <name></name> + <snap_to_geometry>true</snap_to_geometry> + <show_grid>false</show_grid> + <background_color> + <color red="240" green="240" blue="240" /> + </background_color> + <foreground_color> + <color red="192" green="192" blue="192" /> + </foreground_color> + <widget_type>Display</widget_type> + <show_close_button>true</show_close_button> + <width>800</width> + <rules /> + <show_edit_range>true</show_edit_range> + <grid_space>6</grid_space> + <auto_scale_widgets> + <auto_scale_widgets>false</auto_scale_widgets> + <min_width>-1</min_width> + <min_height>-1</min_height> + </auto_scale_widgets> + <actions hook="false" hook_all="false" /> + <y>-1</y> + <x>-1</x> + <widget typeId="org.csstudio.opibuilder.widgets.Label" version="1.0.0"> + <visible>true</visible> + <vertical_alignment>1</vertical_alignment> + <wuid>35f70300:13b95dedeab:-7fba</wuid> + <auto_size>false</auto_size> + <scripts> + <path pathString="EmbeddedPy" checkConnect="true" sfe="false" seoe="false"> + <scriptName>CreatePVExample</scriptName> + <scriptText> + <![CDATA[from org.csstudio.opibuilder.scriptUtil import PVUtil +from org.yamcs.studio.data import IPVListener + + +class MyPVListener(IPVListener): + def valueChanged(self, pv): + widget.setPropertyValue("text", PVUtil.getTimeString(pv) + "\n" + PVUtil.getString(pv)) + +pv = PVUtil.createPV("sim://noise", widget) +pv.addListener(MyPVListener()) + +]]> + </scriptText> + <pv trig="true">=1</pv> + </path> + </scripts> + <height>63</height> + <name>Label</name> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>false</keep_wh_ratio> + </scale_options> + <transparent>true</transparent> + <show_scrollbar>false</show_scrollbar> + <background_color> + <color red="255" green="255" blue="255" /> + </background_color> + <foreground_color> + <color red="0" green="0" blue="0" /> + </foreground_color> + <widget_type>Label</widget_type> + <enabled>true</enabled> + <text></text> + <font> + <opifont.name fontName="Segoe UI" height="9" style="0">Default</opifont.name> + </font> + <width>289</width> + <border_style>1</border_style> + <rules /> + <border_width>1</border_width> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <horizontal_alignment>1</horizontal_alignment> + <actions hook="false" hook_all="false" /> + <y>94</y> + <wrap_words>true</wrap_words> + <tooltip></tooltip> + <x>367</x> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.Label" version="1.0.0"> + <visible>true</visible> + <vertical_alignment>1</vertical_alignment> + <wuid>35f70300:13b95dedeab:-7f98</wuid> + <auto_size>false</auto_size> + <scripts /> + <height>157</height> + <name>Label_1</name> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>false</keep_wh_ratio> + </scale_options> + <transparent>false</transparent> + <show_scrollbar>false</show_scrollbar> + <background_color> + <color red="255" green="255" blue="154" /> + </background_color> + <foreground_color> + <color red="0" green="0" blue="0" /> + </foreground_color> + <widget_type>Label</widget_type> + <enabled>true</enabled> + <text>This examples shows how to create PV from script. Label on the right is updated from the PV created in script. It also writes its value to the console.</text> + <font> + <opifont.name fontName="Segoe UI" height="9" style="0">Default</opifont.name> + </font> + <width>248</width> + <border_style>0</border_style> + <rules /> + <border_width>1</border_width> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <horizontal_alignment>1</horizontal_alignment> + <actions hook="false" hook_all="false" /> + <y>54</y> + <wrap_words>true</wrap_words> + <tooltip></tooltip> + <x>71</x> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.Label" version="1.0.0"> + <visible>true</visible> + <vertical_alignment>1</vertical_alignment> + <wuid>35f70300:13b95dedeab:-7f4f</wuid> + <auto_size>false</auto_size> + <scripts /> + <height>229</height> + <name>Label_2</name> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>false</keep_wh_ratio> + </scale_options> + <transparent>false</transparent> + <show_scrollbar>false</show_scrollbar> + <background_color> + <color red="255" green="255" blue="255" /> + </background_color> + <foreground_color> + <color red="0" green="0" blue="0" /> + </foreground_color> + <widget_type>Label</widget_type> + <enabled>true</enabled> + <text>from org.csstudio.opibuilder.scriptUtil import PVUtil +from org.yamcs.studio.data import IPVListener + + +class MyPVListener(IPVListener): + def valueChanged(self, pv): + widget.setPropertyValue("text", PVUtil.getTimeString(pv) + "\n" + PVUtil.getString(pv)) + +pv = PVUtil.createPV("sim://noise", widget) +pv.addListener(MyPVListener())</text> + <font> + <opifont.name fontName="Segoe UI" height="9" style="0">Default</opifont.name> + </font> + <width>678</width> + <border_style>0</border_style> + <rules /> + <border_width>1</border_width> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <horizontal_alignment>1</horizontal_alignment> + <actions hook="false" hook_all="false" /> + <y>245</y> + <wrap_words>true</wrap_words> + <tooltip></tooltip> + <x>71</x> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.Label" version="1.0.0"> + <visible>true</visible> + <vertical_alignment>1</vertical_alignment> + <wuid>35f70300:13b95dedeab:-7f34</wuid> + <auto_size>false</auto_size> + <scripts /> + <height>20</height> + <name>Label_3</name> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>false</keep_wh_ratio> + </scale_options> + <transparent>true</transparent> + <show_scrollbar>false</show_scrollbar> + <background_color> + <color red="255" green="255" blue="255" /> + </background_color> + <foreground_color> + <color red="0" green="0" blue="0" /> + </foreground_color> + <widget_type>Label</widget_type> + <enabled>true</enabled> + <text>Script:</text> + <font> + <opifont.name fontName="Segoe UI" height="9" style="0">Default</opifont.name> + </font> + <width>200</width> + <border_style>0</border_style> + <rules /> + <border_width>1</border_width> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <horizontal_alignment>0</horizontal_alignment> + <actions hook="false" hook_all="false" /> + <y>226</y> + <wrap_words>true</wrap_words> + <tooltip></tooltip> + <x>71</x> + </widget> +</display> diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/Timer.opi b/core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/Timer.opi new file mode 100644 index 000000000..b269e3db3 --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/Timer.opi @@ -0,0 +1,658 @@ +<?xml version="1.0" encoding="UTF-8"?> +<display typeId="org.csstudio.opibuilder.Display" version="1.0"> + <auto_zoom_to_fit_all>false</auto_zoom_to_fit_all> + <macros> + <include_parent_macros>true</include_parent_macros> + </macros> + <wuid>2da4dada:138bb0b2666:-7ff6</wuid> + <boy_version>3.1.4.qualifier</boy_version> + <scripts /> + <show_ruler>true</show_ruler> + <height>300</height> + <name>Timer</name> + <snap_to_geometry>true</snap_to_geometry> + <show_grid>false</show_grid> + <background_color> + <color name="Background" red="240" green="240" blue="240" /> + </background_color> + <foreground_color> + <color red="192" green="192" blue="192" /> + </foreground_color> + <widget_type>Display</widget_type> + <show_close_button>true</show_close_button> + <width>200</width> + <rules /> + <show_edit_range>true</show_edit_range> + <grid_space>3</grid_space> + <auto_scale_widgets> + <auto_scale_widgets>false</auto_scale_widgets> + <min_width>-1</min_width> + <min_height>-1</min_height> + </auto_scale_widgets> + <actions hook="false" hook_all="false" /> + <y>-1</y> + <x>-1</x> + <widget typeId="org.csstudio.opibuilder.widgets.groupingContainer" version="1.0"> + <macros> + <include_parent_macros>true</include_parent_macros> + </macros> + <visible>true</visible> + <wuid>32f752ac:13af4d718ca:-76d3</wuid> + <scripts /> + <height>217</height> + <name>Grouping Container</name> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>false</keep_wh_ratio> + </scale_options> + <transparent>false</transparent> + <show_scrollbar>false</show_scrollbar> + <foreground_color> + <color red="229" green="229" blue="229" /> + </foreground_color> + <background_color> + <color name="Background" red="240" green="240" blue="240" /> + </background_color> + <enabled>true</enabled> + <widget_type>Grouping Container</widget_type> + <font> + <opifont.name fontName="Sans" height="10" style="0">Default</opifont.name> + </font> + <width>166</width> + <border_style>14</border_style> + <rules /> + <lock_children>false</lock_children> + <border_width>1</border_width> + <border_color> + <color red="191" green="191" blue="191" /> + </border_color> + <y>3</y> + <actions hook="false" hook_all="false" /> + <x>3</x> + <tooltip></tooltip> + <widget typeId="org.csstudio.opibuilder.widgets.NativeButton" version="1.0"> + <border_alarm_sensitive>false</border_alarm_sensitive> + <visible>true</visible> + <wuid>32f752ac:13af4d718ca:-751a</wuid> + <scripts /> + <height>36</height> + <name>Reset_Button</name> + <forecolor_alarm_sensitive>false</forecolor_alarm_sensitive> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>false</keep_wh_ratio> + </scale_options> + <pv_name>loc://$(DID)_reset</pv_name> + <foreground_color> + <color red="0" green="0" blue="0" /> + </foreground_color> + <widget_type>Button</widget_type> + <enabled>true</enabled> + <text>Reset</text> + <font> + <opifont.name fontName="Sans" height="10" style="0">Default</opifont.name> + </font> + <width>148</width> + <border_style>0</border_style> + <push_action_index>0</push_action_index> + <image>../pictures/reset.png</image> + <rules /> + <pv_value /> + <toggle_button>false</toggle_button> + <border_width>1</border_width> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <y>161</y> + <actions hook="false" hook_all="false"> + <action type="EXECUTE_PYTHONSCRIPT"> + <path></path> + <scriptText><![CDATA[from org.csstudio.opibuilder.scriptUtil import ColorFontUtil + +hourText= display.getWidget("hourText") +minText = display.getWidget("minText") +secText = display.getWidget("secText") +timerLabel = display.getWidget("timerLabel") + +if widget.getVar("hour") is not None: + hourText.getPV().setValue(widget.getVar("hour")) +if widget.getVar("min") is not None: + minText.getPV().setValue(widget.getVar("min")) +if widget.getVar("sec") is not None: + secText.getPV().setValue(widget.getVar("sec") ) + +widget.getPV().setValue(0) + +timerLabel.setPropertyValue("text", "Timer") +timerLabel.setPropertyValue("foreground_color", ColorFontUtil.BLACK)]]></scriptText> + <embedded>true</embedded> + <description></description> + </action> + </actions> + <tooltip></tooltip> + <x>6</x> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.progressbar" version="1.0"> + <level_lo>20.0</level_lo> + <border_alarm_sensitive>false</border_alarm_sensitive> + <visible>false</visible> + <color_fillbackground> + <color red="200" green="200" blue="200" /> + </color_fillbackground> + <color_hihi> + <color red="255" green="0" blue="0" /> + </color_hihi> + <show_lo>true</show_lo> + <scripts> + <path pathString="../scripts/Timer.py" checkConnect="true" sfe="true" seoe="false"> + <pv trig="true">loc://$(DID)_start</pv> + <pv trig="false">loc://$(DID)_progress</pv> + <pv trig="false">loc://$(DID)_reset</pv> + </path> + </scripts> + <height>20</height> + <major_tick_step_hint>50</major_tick_step_hint> + <forecolor_alarm_sensitive>false</forecolor_alarm_sensitive> + <background_color> + <color red="240" green="240" blue="240" /> + </background_color> + <enabled>true</enabled> + <widget_type>Progress Bar</widget_type> + <show_minor_ticks>true</show_minor_ticks> + <font> + <opifont.name fontName="Sans" height="10" style="0">Default</opifont.name> + </font> + <width>148</width> + <show_lolo>true</show_lolo> + <border_style>0</border_style> + <effect_3d>true</effect_3d> + <pv_value /> + <show_markers>false</show_markers> + <show_hi>true</show_hi> + <maximum>100.0</maximum> + <border_width>1</border_width> + <horizontal>true</horizontal> + <log_scale>false</log_scale> + <minimum>0.0</minimum> + <wuid>32f752ac:13af4d718ca:-7950</wuid> + <show_hihi>true</show_hihi> + <scale_format></scale_format> + <show_scale>false</show_scale> + <color_lo> + <color red="255" green="128" blue="0" /> + </color_lo> + <name>Progress_Bar</name> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>false</keep_wh_ratio> + </scale_options> + <pv_name>loc://$(DID)_progress</pv_name> + <color_hi> + <color red="255" green="128" blue="0" /> + </color_hi> + <origin_ignored>true</origin_ignored> + <foreground_color> + <color red="0" green="0" blue="0" /> + </foreground_color> + <show_label>false</show_label> + <backcolor_alarm_sensitive>false</backcolor_alarm_sensitive> + <level_hi>80.0</level_hi> + <scale_font> + <opifont.name fontName="Sans" height="10" style="0">Default</opifont.name> + </scale_font> + <level_hihi>90.0</level_hihi> + <origin>0.0</origin> + <color_lolo> + <color red="255" green="0" blue="0" /> + </color_lolo> + <fill_color> + <color red="0" green="255" blue="0" /> + </fill_color> + <rules /> + <value_label_format></value_label_format> + <transparent_background>true</transparent_background> + <limits_from_pv>false</limits_from_pv> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <level_lolo>10.0</level_lolo> + <y>88</y> + <actions hook="false" hook_all="false"> + <action type="PLAY_SOUND"> + <path>../pictures/Timer.wav</path> + <description></description> + </action> + </actions> + <x>6</x> + <tooltip>$(pv_name) +$(pv_value)</tooltip> + <indicator_mode>false</indicator_mode> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.NativeButton" version="1.0"> + <border_alarm_sensitive>false</border_alarm_sensitive> + <visible>true</visible> + <wuid>32f752ac:13af4d718ca:-7924</wuid> + <scripts /> + <height>41</height> + <name>Stop_Button</name> + <forecolor_alarm_sensitive>false</forecolor_alarm_sensitive> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>false</keep_wh_ratio> + </scale_options> + <pv_name></pv_name> + <foreground_color> + <color red="0" green="0" blue="0" /> + </foreground_color> + <widget_type>Button</widget_type> + <enabled>false</enabled> + <text>Stop</text> + <font> + <opifont.name fontName="Sans" height="10" style="0">Default</opifont.name> + </font> + <width>72</width> + <border_style>0</border_style> + <push_action_index>0</push_action_index> + <image>../pictures/Stop_16.png</image> + <rules /> + <pv_value /> + <toggle_button>false</toggle_button> + <border_width>1</border_width> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <y>115</y> + <actions hook="false" hook_all="false"> + <action type="WRITE_PV"> + <pv_name>loc://$(DID)_start</pv_name> + <value>0</value> + <timeout>10</timeout> + <confirm_message></confirm_message> + <description></description> + </action> + </actions> + <tooltip></tooltip> + <x>82</x> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.NativeButton" version="1.0"> + <border_alarm_sensitive>false</border_alarm_sensitive> + <visible>true</visible> + <wuid>32f752ac:13af4d718ca:-7928</wuid> + <scripts /> + <height>41</height> + <name>Start_Button</name> + <forecolor_alarm_sensitive>false</forecolor_alarm_sensitive> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>false</keep_wh_ratio> + </scale_options> + <pv_name></pv_name> + <foreground_color> + <color red="0" green="0" blue="0" /> + </foreground_color> + <widget_type>Button</widget_type> + <enabled>true</enabled> + <text>Start</text> + <font> + <opifont.name fontName="Sans" height="10" style="0">Default</opifont.name> + </font> + <width>69</width> + <border_style>0</border_style> + <push_action_index>0</push_action_index> + <image>../pictures/Start_16.png</image> + <rules /> + <pv_value /> + <toggle_button>false</toggle_button> + <border_width>1</border_width> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <y>115</y> + <actions hook="false" hook_all="false"> + <action type="WRITE_PV"> + <pv_name>loc://$(DID)_start</pv_name> + <value>1</value> + <timeout>10</timeout> + <confirm_message></confirm_message> + <description></description> + </action> + </actions> + <tooltip></tooltip> + <x>6</x> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.Label" version="1.0"> + <visible>true</visible> + <vertical_alignment>1</vertical_alignment> + <wuid>32f752ac:13af4d718ca:-785f</wuid> + <auto_size>false</auto_size> + <scripts /> + <height>33</height> + <name>timerLabel</name> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>false</keep_wh_ratio> + </scale_options> + <transparent>true</transparent> + <show_scrollbar>false</show_scrollbar> + <background_color> + <color red="255" green="255" blue="255" /> + </background_color> + <foreground_color> + <color red="0" green="0" blue="0" /> + </foreground_color> + <widget_type>Label</widget_type> + <enabled>true</enabled> + <text>Timer</text> + <font> + <opifont.name fontName="Sans" height="12" style="1">Header 3</opifont.name> + </font> + <width>140</width> + <border_style>0</border_style> + <rules /> + <border_width>1</border_width> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <horizontal_alignment>1</horizontal_alignment> + <actions hook="false" hook_all="false" /> + <y>2</y> + <wrap_words>true</wrap_words> + <tooltip></tooltip> + <x>10</x> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.Label" version="1.0"> + <visible>true</visible> + <vertical_alignment>1</vertical_alignment> + <wuid>32f752ac:13af4d718ca:-7845</wuid> + <auto_size>false</auto_size> + <scripts /> + <height>19</height> + <name>Label_1</name> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>false</keep_wh_ratio> + </scale_options> + <transparent>true</transparent> + <show_scrollbar>false</show_scrollbar> + <background_color> + <color red="255" green="255" blue="255" /> + </background_color> + <foreground_color> + <color red="0" green="0" blue="0" /> + </foreground_color> + <widget_type>Label</widget_type> + <enabled>true</enabled> + <text>min</text> + <font> + <opifont.name fontName="Sans" height="10" style="0">Default</opifont.name> + </font> + <width>36</width> + <border_style>0</border_style> + <rules /> + <border_width>1</border_width> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <horizontal_alignment>1</horizontal_alignment> + <actions hook="false" hook_all="false" /> + <y>34</y> + <wrap_words>true</wrap_words> + <tooltip></tooltip> + <x>62</x> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.Label" version="1.0"> + <visible>true</visible> + <vertical_alignment>1</vertical_alignment> + <wuid>32f752ac:13af4d718ca:-7839</wuid> + <auto_size>false</auto_size> + <scripts /> + <height>19</height> + <name>Label_2</name> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>false</keep_wh_ratio> + </scale_options> + <transparent>true</transparent> + <show_scrollbar>false</show_scrollbar> + <background_color> + <color red="255" green="255" blue="255" /> + </background_color> + <foreground_color> + <color red="0" green="0" blue="0" /> + </foreground_color> + <widget_type>Label</widget_type> + <enabled>true</enabled> + <text>sec</text> + <font> + <opifont.name fontName="Sans" height="10" style="0">Default</opifont.name> + </font> + <width>36</width> + <border_style>0</border_style> + <rules /> + <border_width>1</border_width> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <horizontal_alignment>1</horizontal_alignment> + <actions hook="false" hook_all="false" /> + <y>34</y> + <wrap_words>true</wrap_words> + <tooltip></tooltip> + <x>115</x> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.Label" version="1.0"> + <visible>true</visible> + <vertical_alignment>1</vertical_alignment> + <wuid>32f752ac:13af4d718ca:-747a</wuid> + <auto_size>false</auto_size> + <scripts /> + <height>19</height> + <name>Label_3</name> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>false</keep_wh_ratio> + </scale_options> + <transparent>true</transparent> + <show_scrollbar>false</show_scrollbar> + <background_color> + <color red="255" green="255" blue="255" /> + </background_color> + <foreground_color> + <color red="0" green="0" blue="0" /> + </foreground_color> + <widget_type>Label</widget_type> + <enabled>true</enabled> + <text>hr</text> + <font> + <opifont.name fontName="Sans" height="10" style="0">Default</opifont.name> + </font> + <width>36</width> + <border_style>0</border_style> + <rules /> + <border_width>1</border_width> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <horizontal_alignment>1</horizontal_alignment> + <actions hook="false" hook_all="false" /> + <y>34</y> + <wrap_words>true</wrap_words> + <tooltip></tooltip> + <x>9</x> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.NativeText" version="1.0"> + <border_alarm_sensitive>false</border_alarm_sensitive> + <read_only>false</read_only> + <visible>true</visible> + <minimum>0.0</minimum> + <next_focus>0</next_focus> + <show_units>false</show_units> + <multiline_input>false</multiline_input> + <wuid>32f752ac:13af4d718ca:-783a</wuid> + <show_native_border>true</show_native_border> + <auto_size>false</auto_size> + <scripts /> + <height>31</height> + <password_input>false</password_input> + <name>secText</name> + <forecolor_alarm_sensitive>false</forecolor_alarm_sensitive> + <format_type>1</format_type> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>false</keep_wh_ratio> + </scale_options> + <precision_from_pv>false</precision_from_pv> + <pv_name>loc://$(DID)_sec(0)</pv_name> + <foreground_color> + <color red="0" green="0" blue="0" /> + </foreground_color> + <background_color> + <color red="255" green="255" blue="255" /> + </background_color> + <enabled>true</enabled> + <widget_type>Text</widget_type> + <text>00</text> + <precision>0</precision> + <backcolor_alarm_sensitive>false</backcolor_alarm_sensitive> + <font> + <opifont.name fontName="Sans" height="12" style="1">Header 3</opifont.name> + </font> + <width>42</width> + <border_style>0</border_style> + <confirm_message></confirm_message> + <rules /> + <pv_value /> + <maximum>59.0</maximum> + <border_width>1</border_width> + <limits_from_pv>false</limits_from_pv> + <horizontal_alignment>1</horizontal_alignment> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <y>52</y> + <actions hook="false" hook_all="false" /> + <x>112</x> + <tooltip></tooltip> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.NativeText" version="1.0"> + <border_alarm_sensitive>false</border_alarm_sensitive> + <read_only>false</read_only> + <visible>true</visible> + <minimum>0.0</minimum> + <next_focus>3</next_focus> + <show_units>false</show_units> + <multiline_input>false</multiline_input> + <wuid>32f752ac:13af4d718ca:-7877</wuid> + <show_native_border>true</show_native_border> + <auto_size>false</auto_size> + <scripts /> + <height>31</height> + <password_input>false</password_input> + <name>minText</name> + <forecolor_alarm_sensitive>false</forecolor_alarm_sensitive> + <format_type>1</format_type> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>false</keep_wh_ratio> + </scale_options> + <precision_from_pv>false</precision_from_pv> + <pv_name>loc://$(DID)_min(5)</pv_name> + <foreground_color> + <color red="0" green="0" blue="0" /> + </foreground_color> + <background_color> + <color red="255" green="255" blue="255" /> + </background_color> + <enabled>true</enabled> + <widget_type>Text</widget_type> + <text>00</text> + <precision>0</precision> + <backcolor_alarm_sensitive>false</backcolor_alarm_sensitive> + <font> + <opifont.name fontName="Sans" height="12" style="1">Header 3</opifont.name> + </font> + <width>42</width> + <border_style>0</border_style> + <confirm_message></confirm_message> + <rules /> + <pv_value /> + <maximum>59.0</maximum> + <border_width>1</border_width> + <limits_from_pv>false</limits_from_pv> + <horizontal_alignment>1</horizontal_alignment> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <y>52</y> + <actions hook="false" hook_all="false" /> + <x>59</x> + <tooltip></tooltip> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.NativeText" version="1.0"> + <border_alarm_sensitive>false</border_alarm_sensitive> + <read_only>false</read_only> + <visible>true</visible> + <minimum>0.0</minimum> + <next_focus>3</next_focus> + <show_units>false</show_units> + <multiline_input>false</multiline_input> + <wuid>32f752ac:13af4d718ca:-7479</wuid> + <show_native_border>true</show_native_border> + <auto_size>false</auto_size> + <scripts /> + <height>31</height> + <password_input>false</password_input> + <name>hourText</name> + <forecolor_alarm_sensitive>false</forecolor_alarm_sensitive> + <format_type>1</format_type> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>false</keep_wh_ratio> + </scale_options> + <precision_from_pv>false</precision_from_pv> + <pv_name>loc://$(DID)_hour(0)</pv_name> + <foreground_color> + <color red="0" green="0" blue="0" /> + </foreground_color> + <background_color> + <color red="255" green="255" blue="255" /> + </background_color> + <enabled>true</enabled> + <widget_type>Text</widget_type> + <text>00</text> + <precision>0</precision> + <backcolor_alarm_sensitive>false</backcolor_alarm_sensitive> + <font> + <opifont.name fontName="Sans" height="12" style="1">Header 3</opifont.name> + </font> + <width>42</width> + <border_style>0</border_style> + <confirm_message></confirm_message> + <rules /> + <pv_value /> + <maximum>1.7976931348623157E308</maximum> + <border_width>1</border_width> + <limits_from_pv>false</limits_from_pv> + <horizontal_alignment>1</horizontal_alignment> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <y>52</y> + <actions hook="false" hook_all="false" /> + <x>6</x> + <tooltip></tooltip> + </widget> + </widget> +</display> \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/WriteDynamicValueToPV/WriteDynamicValueToPV.opi b/core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/WriteDynamicValueToPV/WriteDynamicValueToPV.opi new file mode 100644 index 000000000..b9f19956a --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/WriteDynamicValueToPV/WriteDynamicValueToPV.opi @@ -0,0 +1,325 @@ +<?xml version="1.0" encoding="UTF-8"?> +<display typeId="org.csstudio.opibuilder.Display" version="1.0.0"> + <auto_zoom_to_fit_all>false</auto_zoom_to_fit_all> + <macros> + <include_parent_macros>true</include_parent_macros> + </macros> + <wuid>5291eabb:13f9a846fba:-7ffb</wuid> + <boy_version>3.2.6.qualifier</boy_version> + <scripts /> + <show_ruler>true</show_ruler> + <height>600</height> + <name>Display</name> + <snap_to_geometry>true</snap_to_geometry> + <show_grid>false</show_grid> + <background_color> + <color red="240" green="240" blue="240" /> + </background_color> + <foreground_color> + <color red="192" green="192" blue="192" /> + </foreground_color> + <widget_type>Display</widget_type> + <show_close_button>true</show_close_button> + <width>800</width> + <rules /> + <show_edit_range>true</show_edit_range> + <grid_space>6</grid_space> + <auto_scale_widgets> + <auto_scale_widgets>false</auto_scale_widgets> + <min_width>-1</min_width> + <min_height>-1</min_height> + </auto_scale_widgets> + <actions hook="false" hook_all="false" /> + <y>-1</y> + <x>-1</x> + <widget typeId="org.csstudio.opibuilder.widgets.LED" version="1.0.0"> + <border_alarm_sensitive>true</border_alarm_sensitive> + <visible>true</visible> + <wuid>5291eabb:13f9a846fba:-7def</wuid> + <scripts /> + <square_led>false</square_led> + <on_color> + <color name="On" red="0" green="255" blue="0" /> + </on_color> + <height>32</height> + <data_type>0</data_type> + <name>LED</name> + <forecolor_alarm_sensitive>false</forecolor_alarm_sensitive> + <show_boolean_label>false</show_boolean_label> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>true</keep_wh_ratio> + </scale_options> + <off_color> + <color name="Off" red="0" green="100" blue="0" /> + </off_color> + <pv_name>loc://$(DID)_set(0)</pv_name> + <background_color> + <color red="240" green="240" blue="240" /> + </background_color> + <foreground_color> + <color red="192" green="192" blue="192" /> + </foreground_color> + <off_label>OFF</off_label> + <widget_type>LED</widget_type> + <enabled>true</enabled> + <backcolor_alarm_sensitive>false</backcolor_alarm_sensitive> + <font> + <opifont.name fontName="Verdana" height="10" style="0">Default</opifont.name> + </font> + <width>32</width> + <border_style>0</border_style> + <effect_3d>true</effect_3d> + <rules /> + <pv_value /> + <bit>0</bit> + <border_width>1</border_width> + <on_label>ON</on_label> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <actions hook="false" hook_all="false" /> + <y>36</y> + <tooltip>$(pv_name) +$(pv_value)</tooltip> + <x>138</x> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.Label" version="1.0.0"> + <visible>true</visible> + <vertical_alignment>1</vertical_alignment> + <wuid>5291eabb:13f9a846fba:-7db3</wuid> + <auto_size>false</auto_size> + <scripts /> + <height>20</height> + <name>Label</name> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>false</keep_wh_ratio> + </scale_options> + <transparent>true</transparent> + <show_scrollbar>false</show_scrollbar> + <background_color> + <color red="255" green="255" blue="255" /> + </background_color> + <foreground_color> + <color red="0" green="0" blue="0" /> + </foreground_color> + <widget_type>Label</widget_type> + <enabled>true</enabled> + <text>Set PV</text> + <font> + <opifont.name fontName="Verdana" height="10" style="0">Default</opifont.name> + </font> + <width>77</width> + <border_style>0</border_style> + <rules /> + <border_width>1</border_width> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <horizontal_alignment>2</horizontal_alignment> + <actions hook="false" hook_all="false" /> + <y>42</y> + <wrap_words>true</wrap_words> + <tooltip></tooltip> + <x>53</x> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.Label" version="1.0.0"> + <visible>true</visible> + <vertical_alignment>1</vertical_alignment> + <wuid>5291eabb:13f9a846fba:-7daf</wuid> + <auto_size>false</auto_size> + <scripts /> + <height>20</height> + <name>Label_1</name> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>false</keep_wh_ratio> + </scale_options> + <transparent>true</transparent> + <show_scrollbar>false</show_scrollbar> + <background_color> + <color red="255" green="255" blue="255" /> + </background_color> + <foreground_color> + <color red="0" green="0" blue="0" /> + </foreground_color> + <widget_type>Label</widget_type> + <enabled>true</enabled> + <text>Readback PV</text> + <font> + <opifont.name fontName="Verdana" height="10" style="0">Default</opifont.name> + </font> + <width>98</width> + <border_style>0</border_style> + <rules /> + <border_width>1</border_width> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <horizontal_alignment>2</horizontal_alignment> + <actions hook="false" hook_all="false" /> + <y>72</y> + <wrap_words>true</wrap_words> + <tooltip></tooltip> + <x>32</x> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.LED" version="1.0.0"> + <border_alarm_sensitive>true</border_alarm_sensitive> + <visible>true</visible> + <wuid>5291eabb:13f9a846fba:-7dab</wuid> + <scripts> + <path pathString="delayedSetValueExample.js" checkConnect="true" sfe="true" seoe="false"> + <pv trig="true">loc://$(DID)_set(0)</pv> + <pv trig="false">loc://$(DID)_readback(0)</pv> + </path> + </scripts> + <square_led>false</square_led> + <on_color> + <color name="On" red="0" green="255" blue="0" /> + </on_color> + <height>32</height> + <data_type>0</data_type> + <name>LED_1</name> + <forecolor_alarm_sensitive>false</forecolor_alarm_sensitive> + <show_boolean_label>false</show_boolean_label> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>true</keep_wh_ratio> + </scale_options> + <off_color> + <color name="Off" red="0" green="100" blue="0" /> + </off_color> + <pv_name>loc://$(DID)_readback(0)</pv_name> + <background_color> + <color red="240" green="240" blue="240" /> + </background_color> + <foreground_color> + <color red="192" green="192" blue="192" /> + </foreground_color> + <off_label>OFF</off_label> + <widget_type>LED</widget_type> + <enabled>true</enabled> + <backcolor_alarm_sensitive>false</backcolor_alarm_sensitive> + <font> + <opifont.name fontName="Verdana" height="10" style="0">Default</opifont.name> + </font> + <width>32</width> + <border_style>0</border_style> + <effect_3d>true</effect_3d> + <rules /> + <pv_value /> + <bit>0</bit> + <border_width>1</border_width> + <on_label>ON</on_label> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <actions hook="false" hook_all="false" /> + <y>66</y> + <tooltip>$(pv_name) +$(pv_value)</tooltip> + <x>138</x> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.ActionButton" version="2.0.0"> + <border_alarm_sensitive>false</border_alarm_sensitive> + <visible>true</visible> + <wuid>5291eabb:13f9a846fba:-7e40</wuid> + <scripts> + <path pathString="EmbeddedJs" checkConnect="true" sfe="false" seoe="false"> + <scriptName>SetWritePVActionValue</scriptName> + <scriptText><![CDATA[importPackage(Packages.org.csstudio.opibuilder.scriptUtil); +if(PVUtil.getLong(pvs[0])==0) + widget.getHookedActions().get(0).setPropertyValue("value",1); +else + widget.getHookedActions().get(0).setPropertyValue("value",0); +]]></scriptText> + <pv trig="true">loc://$(DID)_readback(0)</pv> + </path> + </scripts> + <height>43</height> + <style>0</style> + <name>Action Button</name> + <forecolor_alarm_sensitive>false</forecolor_alarm_sensitive> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>false</keep_wh_ratio> + </scale_options> + <pv_name>loc://$(DID)_set(0)</pv_name> + <background_color> + <color red="240" green="240" blue="240" /> + </background_color> + <foreground_color> + <color red="0" green="0" blue="0" /> + </foreground_color> + <widget_type>Action Button</widget_type> + <enabled>true</enabled> + <text>Power is off</text> + <backcolor_alarm_sensitive>false</backcolor_alarm_sensitive> + <font> + <opifont.name fontName="Verdana" height="10" style="0">Default</opifont.name> + </font> + <width>154</width> + <border_style>0</border_style> + <push_action_index>0</push_action_index> + <image>off.png</image> + <rules> + <rule name="Icon Rule" prop_id="image" out_exp="false"> + <exp bool_exp="pv0==0&&pv1==0"> + <value>off.png</value> + </exp> + <exp bool_exp="pv0==0&&pv1==1"> + <value>down.png</value> + </exp> + <exp bool_exp="pv0==1&&pv1==0"> + <value>up.png</value> + </exp> + <exp bool_exp="pv0==1&&pv1==1"> + <value>on.png</value> + </exp> + <pv trig="true">loc://$(DID)_set(0)</pv> + <pv trig="true">loc://$(DID)_readback(0)</pv> + </rule> + <rule name="Label Rule" prop_id="text" out_exp="false"> + <exp bool_exp="pv0==0&&pv1==0"> + <value>Power is Off</value> + </exp> + <exp bool_exp="pv0==0&&pv1==1"> + <value>Ramping Down ...</value> + </exp> + <exp bool_exp="pv0==1&&pv1==0"> + <value>Ramping up ...</value> + </exp> + <exp bool_exp="pv0==1&&pv1==1"> + <value>Power is On</value> + </exp> + <pv trig="true">loc://$(DID)_set(0)</pv> + <pv trig="true">loc://$(DID)_readback(0)</pv> + </rule> + </rules> + <pv_value /> + <toggle_button>false</toggle_button> + <border_width>1</border_width> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <y>49</y> + <actions hook="false" hook_all="false"> + <action type="WRITE_PV"> + <pv_name>$(pv_name)</pv_name> + <value></value> + <timeout>10</timeout> + <confirm_message></confirm_message> + <description></description> + </action> + </actions> + <tooltip>$(pv_name) +$(pv_value)</tooltip> + <x>216</x> + </widget> +</display> \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/WriteDynamicValueToPV/delayedSetValueExample.js b/core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/WriteDynamicValueToPV/delayedSetValueExample.js new file mode 100644 index 000000000..47506c560 --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/WriteDynamicValueToPV/delayedSetValueExample.js @@ -0,0 +1,17 @@ +importPackage(Packages.org.csstudio.opibuilder.scriptUtil); +importPackage(Packages.java.lang); + + +runnable = { + run:function() + { + for(var i=5; i>0; i--){ + if(!display.isActive()) + return; + Thread.sleep(1000); + } + pvs[1].setValue(PVUtil.getLong(pvs[0])) + } + }; + +new Thread(new Runnable(runnable)).start(); diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/WriteDynamicValueToPV/down.png b/core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/WriteDynamicValueToPV/down.png new file mode 100644 index 0000000000000000000000000000000000000000..3aa41102f38c492d408b4b440ea1e4b65ac75108 GIT binary patch literal 869 zcmV-r1DgDaP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0009lNkl<Zc-m!? zT}YEr7{~wb-mm$+Y&kc-nEBB+%rpwT={vnCFA^#VqR7abf-Klzsj-FG2i-(bNp%|} zQIIATL}WG6D5xx9xtO{+-JF~6eBZXWvtyanxq3L~`Tx%Iob&t{{IlG{-^@J69TG)x zQ$kIc>81*|6qBCHvV5bgq|CiApZOgOdxlvJ%eI9zQuCGf_xL9s7ktqWJu{^0u(_xT zjVpI5DKgiQh{x^arRDK?fakl16$IgK*U0m_mcE-<oTh`87yjT?ASTP0Ai&cb4x(mp zRTrsdcM?KVM#e@R_s3pXTV0*V%hE&30)^>%T&%WH{hl5x<b;G-a;JAH0DIK|Y}Hjb zOU)%V#yjFQhdF6*)59iynQjRd@jwczq9DV7v(*<Upzh%jq_Gi1e=rFC00u+jc)b0x zqLnn|Okg75I6rvZ+CMgc+!P+^JVPpAk(*{jbJbZ2*w=j&25l5lJdTJ0j7kbB3>GvM z>~S*F;c(xHSNqoM#8gtIh&B2O4ER68oT<aH$~nOP?j|hP3E(&*JmC+dLIsnv5}cOn zub8Rn(AcS$wFZkm2m16H>?%Eoe*YId_<9Si)$J6}*n1qdbw^>!C`Q}sOE3s8@NPT+ zN98>q1=wHL8dhcNQIJ`QZN)Y)j0Wzh5ty?~bF=X)CUb#vu6AUyefSidfZfvNV<M4A zU&lbhdL8daWY!N$Zar#C&rrz1l@zzToRDVjAUkCV0&)(HuOKZ1LqW$Q?=9<4;41lc zIvf8%sQ3*LOLrh>RK!&lCHh8e%&vDb<Kup_B1nVR1{!!4qeL`!<67fh>?moWakA{_ zOeYnqWT<4-h{J1cD{7Q{V=`efIO!OgaantYtR!J-9#Uy)z|gb^U#JrzJ10&sS*Tg+ zK)z;`GtZQ7qp3chj}^7zU61s(uGig8-ogzHqt5rA6sn}bG{KB5#V29XtnP}%V!I0q zi{kTUN<svIZ%gp8=8qG-{FljR2+w-yS%#R0vh0mmzG$<Okhl&-mhJfkg@4Sna3$Y_ v=lMe%#}hlpsht^>am$KK?QArf{<8B=@77>RbGY0*00000NkvXXu0mjfz)7Hv literal 0 HcmV?d00001 diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/WriteDynamicValueToPV/off.png b/core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/WriteDynamicValueToPV/off.png new file mode 100644 index 0000000000000000000000000000000000000000..1ecfe65cce2ca586e346c86486a909e35fb86df9 GIT binary patch literal 877 zcmV-z1CsoSP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV00004b3#c}2nYxW zd<bNS00009a7bBm000XT000XT0n*)m`~Uy|Aaq4obW?9;ba!ELWdKcKV{&h8Wn^h# zAVz6&Wp{6KYjYq?Si6xbBme*a7IZ~ebVG7wVRUJ4ZXi@?ZDjy4F)uJRFEBUVx{2EW z00O~DL_t(|oMn?wXjE4e#(($CA4h6}N`jb76l+4Pe_EA9>P7{jCeX!<6l^yp)J0XW z6e^TbXflEn+-RvwL3g5}la(MyZ8f0dXw_JV)!2-2o(^bel9w>^-n;J}7cZGi><5>7 zIrlr?J?Fa|B_h<~>A}xGwmw*rQPFsZL}N*#eS#UMsAs0{nVG4+PcG($YWb>G;Q7(7 zvML%+O+U)v+M|f?g`{YVNW)63mbDnSJh1h`?eqeHO5thZ^_dgTDusWN&i%ovV5Dv- z0D&`6jae<NnEK_#V8gby?U~;y7Jz-a?|g0YvfU{FHfA5NG5df(=40mN2r^zua`*aq z0RH{y>(1vt?3dg+B)1NEbLFgvh+Jz!=5S_pc(yN}t?~vxYnPk5TRSc7OdOwnl&ikn zknROw#GN<FowccHZ!iANuo7#$gt+D7R-}IUde<HWpdsA@z+mRPFwrjH6bk^1{SwBS z(mhNBV3i%TWv#c2G0k&s&-MA_(m7h<@OOGM1Kpchq~J~V8~|(fq<E`A8AG6TbJS>` z_o0-cAp(IjNvi+}09C!82*Ta?8q0XDt)ejirtba$K>HUx^IxgL)i~RpeJA9IQW)*o zk#E`>yF}}?W_l9WF3_0nW!0`OrY0vbqff9FC0Oz0L00{E3V`3g?}gVdsEfx50+Uli z2f8`}&&_-J8=;Yh`}puk|Nq(o$e-*de=0+J0{r-5v<^Czi163G?OF5R+mv}Z0)V$= zCu_d#r}@)e)w1&^`+0TePnu#-pNQiIGSEHjrIm>A@YhVjyLI)MjF*zCGzNfU;FS-~ ztYLK#Xo`V~#VH3;9IKeNL!-K~V3=-qf0Q*wQr370tL&hRsT$^4F=kW*(R!eJ*jqSE zwHVydvdN&11!6k1F-hZV@ZBQXzlZjJ-ZSh!uI0Z2qZn;c^7T@200000NkvXXu0mjf DQLvz2 literal 0 HcmV?d00001 diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/WriteDynamicValueToPV/on.png b/core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/WriteDynamicValueToPV/on.png new file mode 100644 index 0000000000000000000000000000000000000000..115b6a07e042aa8596ed99f034da4f32bffdc550 GIT binary patch literal 857 zcmV-f1E&0mP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV00004b3#c}2nYxW zd<bNS00009a7bBm000XT000XT0n*)m`~Uy|Aaq4obW?9;ba!ELWdKcKV{&h8Wn^h# zAVz6&Wp{6KYjYq?Si6xbBme*a7IZ~ebVG7wVRUJ4ZXi@?ZDjy4F)uJRFEBUVx{2EW z00ON^L_t(|oMn?wXjE4e#((#|$t0<o2^kX?P6R0m2DGV}6bcb77BOJz2(DBxAZ?^8 zp<R|51s7ciu5_7I$TDdu6-vQ`bYXRBwA$1^RFXKx5hj?)jG6al=G@c8Gn0w^;Beva z-E+?O9ga~|>apkVll!8k;gY8|>0uM%gus<EfvcngSHAe7=jLDad{bYbd-l}0XKZRA z$nr)C2m*kIWi!phwS|hSPAq(K^TdV%-)62gO%?7v%T<>XbLGWa!B%ez0LxOS<>Io1 zW{GCDzir!f`|~m10{pgeXRQ8ns`U^6GhL(1>=^~Oo?G$?6iq4dZ&P**faL6%-u<(u zm2{7i?$MFlPpYcQ^vAjee%`C9sw3GSYrL&f2es|ifnMvo@|A@kTkAX+9|&h%s;oOz z4SgEi_64cP0RW0opNf$yw%Igxy?LkcZ2TAi7aslqz+8Eexz$kCg%?*tPR9V096>}d z740&~M`twc{{w*bq(k$5`IP)7pI9sgugm1CMPl3ASni$-o&WVCh&Qk~7a<}}cpnA> zA9&=Y2yFn-Ft>)113=Vat4>~eSO6vqe}-dr9$zQhFxKQv=I*}RKZui;-lng19u;*T z22_|UFESV(;OMqK^8N~sEAuqjM$WgN<XY!9p^-D+F)vxH^-yttnBD2)$*RiT=jIgv z7dyUWxO3=#vH*r3U+2=38_?cBB(I2*UZbk)xYIwril18Y!fhP1-3)gQacFCAZS3JE z*O|(tp(TRFpuSAF{s$+Fs&aVxT+`D?=2_8{63Y#%VY|S=ii9sfqlFd^8-T7#M(0br z^y{bohGS~~{j+hLrixLYAR?&InqkHVTMz^{;rbtJJf?cYru+6HdRax2T6GCghaed- jF71qd?~dGmSkM0tELmi1imy*|00000NkvXXu0mjfrQwGq literal 0 HcmV?d00001 diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/WriteDynamicValueToPV/up.png b/core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/WriteDynamicValueToPV/up.png new file mode 100644 index 0000000000000000000000000000000000000000..c59cbd635aa71aac966e0fd8c35d0a63222e0faa GIT binary patch literal 814 zcmV+}1JV46P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0008@Nkl<Zc-p0t zTS${(7{~wL=f17Y?Q`lpw7IPmPfamUj1&<?h%6N$1;M1kLy?BiWpx!qX=VvYiFTrk zb`eB$k}R{ZQC<{evzZ5+PCQQMY0e$K9y@`B7tssv&Hs6x-*b9j2LE}OKZQQ?XN>^V ztgU%+MVx3mNrK1iwn!x0L->TN@rDHZrhxu0ePtfkax>p|*IzZ$0d}#UJXm-XJ1`Tr z7fW$PGa?aJ787T9`WIl}YyV+kZn#a;b&Qe7hQJ1p$dQ>511=YQ^T4Vn3AU_jZa-OI zepF1{v)_QB!9hLab(%x(=gFk1VK6+2GBPE#09*9H`vPFu31JRcSxLrJ!M#cHh>eVj zc6<j|ts{*RQ&X*KtO0B|2}+W8Qn0%GM|rc)fp-L%bHY0YOeZ$Lop|7+PN%>06EHdu zcsnaf9x?y~k+hqFBg!{Uce(@U$_J*LSa4^;QFy0Qr`KmQX0w@B@^ZVPLGLGzrTMF* zK;{#Gj|W85KdS_seY6WX@FD}SS+Qshf#di`n>Iod!Swd_DuMz7?9%f(kusV9<cDAx z5EcO>)38O6z*{ZgAlUd24FRx^hGM1m!<bg1(K2;)bxdJlp+(%XKU%G@K(s!6N(u$t zeS?6Q01qg5-c1l-ZI-%`=3qSMTxV)(YBr+^R&g~aYA#h8*lNF5XQ0|jt68stIzcG` zr1X~B2(aXVZ<$751^kL{;<V9p%4js!Gc3!B)oOJ@ch}3;uBJTyAjSeERlrgVQ$qmx zHV7BQ@UD7cr|gS-23AX&C)3i>GZq#WM%K5$(&ed*((4z`UYWgI%t}|x2neF;Lnu4T z!8Os3`57udJRN-H4Oh{@BZs=XyW1(w@#`hB9LM?R=H`|(Hq_TkK0W5=-x%SUFq4G^ zr%6I!RvGNtT~k$6N2^UHQ@hveU7|SOhQFZG>6nz16m>;KMY+LX*dvxmq67hgYt?D# s>FIgY+S+=Hwl-_C*?gP+#(zEE03TouTH^9%X8-^I07*qoM6N<$f<6U!8UO$Q literal 0 HcmV?d00001 diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/XYGraph_Advanced/AddAxisExample.js b/core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/XYGraph_Advanced/AddAxisExample.js new file mode 100644 index 000000000..f45a189db --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/XYGraph_Advanced/AddAxisExample.js @@ -0,0 +1,15 @@ +importPackage(Packages.org.csstudio.opibuilder.scriptUtil); +importPackage(Packages.org.csstudio.swt.xygraph.figures); +importPackage(Packages.org.csstudio.ui.util); + +var xygraph = widget.getFigure().getXYGraph(); + +for(var i=0; i<5; i++){ + var axis = new Axis("Axis", true); + axis.setPrimarySide(i%2==1); + axis.setRange(-i*10-5, i*10+5); + var trace =xygraph.getPlotArea().getTraceList().get(i); + axis.setForegroundColor(trace.getTraceColor()); + xygraph.addAxis(axis); + trace.setYAxis(axis); +} diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/XYGraph_Advanced/Add_Axes_From_Script.opi b/core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/XYGraph_Advanced/Add_Axes_From_Script.opi new file mode 100644 index 000000000..604ae34a3 --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/XYGraph_Advanced/Add_Axes_From_Script.opi @@ -0,0 +1,506 @@ +<?xml version="1.0" encoding="UTF-8"?> +<display typeId="org.csstudio.opibuilder.Display" version="1.0"> + <auto_zoom_to_fit_all>false</auto_zoom_to_fit_all> + <macros> + <include_parent_macros>true</include_parent_macros> + </macros> + <wuid>38d90a0d:1357c5ff43f:-7fda</wuid> + <boy_version>3.1.4.qualifier</boy_version> + <scripts /> + <show_ruler>false</show_ruler> + <height>600</height> + <name>XY_Graph</name> + <snap_to_geometry>true</snap_to_geometry> + <show_grid>true</show_grid> + <background_color> + <color red="240" green="240" blue="240" /> + </background_color> + <foreground_color> + <color red="192" green="192" blue="192" /> + </foreground_color> + <widget_type>Display</widget_type> + <show_close_button>true</show_close_button> + <width>800</width> + <rules /> + <show_edit_range>true</show_edit_range> + <grid_space>4</grid_space> + <auto_scale_widgets> + <auto_scale_widgets>true</auto_scale_widgets> + <min_width>600</min_width> + <min_height>400</min_height> + </auto_scale_widgets> + <actions hook="false" hook_all="false" /> + <y>0</y> + <x>0</x> + <widget typeId="org.csstudio.opibuilder.widgets.groupingContainer" version="1.0"> + <macros> + <include_parent_macros>true</include_parent_macros> + </macros> + <visible>true</visible> + <wuid>1a15b2cb:138b4a02abf:-7804</wuid> + <scripts /> + <height>84</height> + <name>Grouping Container_3</name> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>false</keep_wh_ratio> + </scale_options> + <transparent>true</transparent> + <show_scrollbar>false</show_scrollbar> + <foreground_color> + <color red="192" green="192" blue="192" /> + </foreground_color> + <background_color> + <color name="Header Background" red="94" green="151" blue="230" /> + </background_color> + <enabled>true</enabled> + <widget_type>Grouping Container</widget_type> + <font> + <opifont.name fontName="Sans" height="10" style="0">Default</opifont.name> + </font> + <width>765</width> + <border_style>14</border_style> + <rules /> + <lock_children>false</lock_children> + <border_width>1</border_width> + <border_color> + <color red="191" green="191" blue="191" /> + </border_color> + <y>11</y> + <actions hook="false" hook_all="false" /> + <x>17</x> + <tooltip></tooltip> + <widget typeId="org.csstudio.opibuilder.widgets.NativeText" version="1.0"> + <border_alarm_sensitive>true</border_alarm_sensitive> + <read_only>true</read_only> + <visible>true</visible> + <minimum>-1.7976931348623157E308</minimum> + <next_focus>0</next_focus> + <show_units>true</show_units> + <multiline_input>false</multiline_input> + <wuid>6d4582ac:1389581a6f9:-7ab4</wuid> + <show_native_border>false</show_native_border> + <auto_size>false</auto_size> + <scripts /> + <height>33</height> + <password_input>false</password_input> + <name>Label_11</name> + <forecolor_alarm_sensitive>false</forecolor_alarm_sensitive> + <format_type>0</format_type> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>false</keep_wh_ratio> + </scale_options> + <precision_from_pv>true</precision_from_pv> + <pv_name></pv_name> + <foreground_color> + <color name="Header MainColor" red="255" green="255" blue="255" /> + </foreground_color> + <background_color> + <color name="Header Background" red="94" green="151" blue="230" /> + </background_color> + <enabled>true</enabled> + <widget_type>Text</widget_type> + <text>Examples</text> + <precision>0</precision> + <backcolor_alarm_sensitive>false</backcolor_alarm_sensitive> + <font> + <opifont.name fontName="Sans" height="18" style="1">Header 1</opifont.name> + </font> + <width>396</width> + <border_style>0</border_style> + <confirm_message></confirm_message> + <rules /> + <pv_value /> + <maximum>1.7976931348623157E308</maximum> + <border_width>1</border_width> + <limits_from_pv>false</limits_from_pv> + <horizontal_alignment>1</horizontal_alignment> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <y>42</y> + <actions hook="false" hook_all="false" /> + <x>352</x> + <tooltip></tooltip> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.NativeText" version="1.0"> + <border_alarm_sensitive>true</border_alarm_sensitive> + <read_only>true</read_only> + <visible>true</visible> + <minimum>-1.7976931348623157E308</minimum> + <next_focus>0</next_focus> + <show_units>true</show_units> + <multiline_input>false</multiline_input> + <wuid>6d4582ac:1389581a6f9:-7ab3</wuid> + <show_native_border>false</show_native_border> + <auto_size>false</auto_size> + <scripts /> + <height>33</height> + <password_input>false</password_input> + <name>Label_12</name> + <forecolor_alarm_sensitive>false</forecolor_alarm_sensitive> + <format_type>0</format_type> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>false</keep_wh_ratio> + </scale_options> + <precision_from_pv>true</precision_from_pv> + <pv_name></pv_name> + <foreground_color> + <color name="Header MainColor" red="255" green="255" blue="255" /> + </foreground_color> + <background_color> + <color name="Header Background" red="94" green="151" blue="230" /> + </background_color> + <enabled>true</enabled> + <widget_type>Text</widget_type> + <text>Best OPI Yet (BOY)</text> + <precision>0</precision> + <backcolor_alarm_sensitive>false</backcolor_alarm_sensitive> + <font> + <opifont.name fontName="Sans" height="18" style="1">Header 1</opifont.name> + </font> + <width>396</width> + <border_style>0</border_style> + <confirm_message></confirm_message> + <rules /> + <pv_value /> + <maximum>1.7976931348623157E308</maximum> + <border_width>1</border_width> + <limits_from_pv>false</limits_from_pv> + <horizontal_alignment>1</horizontal_alignment> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <y>7</y> + <actions hook="false" hook_all="false" /> + <x>352</x> + <tooltip></tooltip> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.NativeText" version="1.0"> + <border_alarm_sensitive>true</border_alarm_sensitive> + <read_only>true</read_only> + <visible>true</visible> + <minimum>-1.7976931348623157E308</minimum> + <next_focus>0</next_focus> + <show_units>true</show_units> + <multiline_input>false</multiline_input> + <wuid>6d4582ac:1389581a6f9:-7ab1</wuid> + <show_native_border>false</show_native_border> + <auto_size>false</auto_size> + <scripts /> + <height>38</height> + <password_input>false</password_input> + <name>Label_14</name> + <forecolor_alarm_sensitive>false</forecolor_alarm_sensitive> + <format_type>0</format_type> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>false</keep_wh_ratio> + </scale_options> + <precision_from_pv>true</precision_from_pv> + <pv_name></pv_name> + <foreground_color> + <color name="Header SubColor" red="255" green="255" blue="0" /> + </foreground_color> + <background_color> + <color name="Header Background" red="94" green="151" blue="230" /> + </background_color> + <enabled>true</enabled> + <widget_type>Text</widget_type> + <text>XY Graph</text> + <precision>0</precision> + <backcolor_alarm_sensitive>false</backcolor_alarm_sensitive> + <font> + <opifont.name fontName="Sans" height="18" style="1">Header 1</opifont.name> + </font> + <width>202</width> + <border_style>0</border_style> + <confirm_message></confirm_message> + <rules /> + <pv_value /> + <maximum>1.7976931348623157E308</maximum> + <border_width>1</border_width> + <limits_from_pv>false</limits_from_pv> + <horizontal_alignment>1</horizontal_alignment> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <y>25</y> + <actions hook="false" hook_all="false" /> + <x>57</x> + <tooltip></tooltip> + </widget> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.xyGraph" version="1.0"> + <trace_1_visible>true</trace_1_visible> + <trace_1_trace_type>0</trace_1_trace_type> + <trace_4_point_style>0</trace_4_point_style> + <trace_0_trace_color> + <color red="21" green="21" blue="196" /> + </trace_0_trace_color> + <axis_0_auto_scale>true</axis_0_auto_scale> + <trace_3_trace_type>0</trace_3_trace_type> + <trace_4_update_delay>100</trace_4_update_delay> + <axis_1_time_format>0</axis_1_time_format> + <trace_1_point_size>4</trace_1_point_size> + <trace_0_plot_mode>0</trace_0_plot_mode> + <trace_count>5</trace_count> + <trace_4_concatenate_data>true</trace_4_concatenate_data> + <trace_2_y_pv_value /> + <axis_0_show_grid>true</axis_0_show_grid> + <axis_0_log_scale>false</axis_0_log_scale> + <trace_3_point_size>4</trace_3_point_size> + <trace_3_y_axis_index>1</trace_3_y_axis_index> + <trace_1_name>$(trace_1_y_pv)</trace_1_name> + <trace_4_line_width>1</trace_4_line_width> + <trace_0_point_size>4</trace_0_point_size> + <show_legend>true</show_legend> + <y>152</y> + <x>16</x> + <visible>true</visible> + <trace_0_x_pv_value /> + <axis_1_visible>false</axis_1_visible> + <height>410</height> + <axis_1_maximum>100.0</axis_1_maximum> + <trace_3_x_pv_value /> + <trace_4_x_pv></trace_4_x_pv> + <trace_2_x_pv></trace_2_x_pv> + <axis_1_title_font> + <fontdata fontName="Arial" height="9" style="1" /> + </axis_1_title_font> + <border_width>1</border_width> + <trace_2_x_axis_index>0</trace_2_x_axis_index> + <trace_3_name>$(trace_3_y_pv)</trace_3_name> + <axis_0_axis_color> + <color red="0" green="0" blue="0" /> + </axis_0_axis_color> + <axis_1_scale_format></axis_1_scale_format> + <name>XY Graph</name> + <axis_1_auto_scale_threshold>0.0</axis_1_auto_scale_threshold> + <trace_4_buffer_size>100</trace_4_buffer_size> + <trace_0_line_width>1</trace_0_line_width> + <trace_2_x_pv_value /> + <show_toolbar>true</show_toolbar> + <trace_1_update_delay>100</trace_1_update_delay> + <trace_4_x_axis_index>0</trace_4_x_axis_index> + <axis_1_show_grid>true</axis_1_show_grid> + <axis_0_grid_color> + <color red="200" green="200" blue="200" /> + </axis_0_grid_color> + <trace_2_line_width>1</trace_2_line_width> + <trace_1_line_width>1</trace_1_line_width> + <trace_2_y_axis_index>1</trace_2_y_axis_index> + <axis_0_auto_scale_threshold>0.0</axis_0_auto_scale_threshold> + <trace_2_trace_type>0</trace_2_trace_type> + <trace_0_name>$(trace_0_y_pv)</trace_0_name> + <trace_1_anti_alias>true</trace_1_anti_alias> + <trace_3_x_pv></trace_3_x_pv> + <trace_0_update_mode>0</trace_0_update_mode> + <trace_1_buffer_size>100</trace_1_buffer_size> + <axis_0_axis_title>Primary X Axis (0)</axis_0_axis_title> + <trace_3_line_width>1</trace_3_line_width> + <wuid>376d9aa8:13a7948587c:-7f56</wuid> + <trace_2_buffer_size>100</trace_2_buffer_size> + <axis_1_axis_color> + <color red="0" green="0" blue="0" /> + </axis_1_axis_color> + <trace_2_update_mode>0</trace_2_update_mode> + <foreground_color> + <color red="0" green="0" blue="255" /> + </foreground_color> + <trace_1_update_mode>0</trace_1_update_mode> + <backcolor_alarm_sensitive>false</backcolor_alarm_sensitive> + <axis_1_axis_title>Primary Y Axis (1)</axis_1_axis_title> + <trace_4_anti_alias>true</trace_4_anti_alias> + <trace_4_plot_mode>0</trace_4_plot_mode> + <trace_3_update_mode>0</trace_3_update_mode> + <axis_0_maximum>100.0</axis_0_maximum> + <axis_0_scale_font> + <opifont.name fontName="Sans" height="10" style="0">Default</opifont.name> + </axis_0_scale_font> + <trace_2_point_size>4</trace_2_point_size> + <trace_4_y_axis_index>1</trace_4_y_axis_index> + <trace_1_y_pv_value /> + <axis_0_time_format>0</axis_0_time_format> + <trace_4_update_mode>0</trace_4_update_mode> + <trace_3_concatenate_data>true</trace_3_concatenate_data> + <trace_3_trace_color> + <color red="0" green="0" blue="0" /> + </trace_3_trace_color> + <trace_1_plot_mode>0</trace_1_plot_mode> + <axis_1_log_scale>false</axis_1_log_scale> + <trace_1_point_style>0</trace_1_point_style> + <trace_2_plot_mode>0</trace_2_plot_mode> + <title_font> + <fontdata fontName="Arial" height="12" style="1" /> + </title_font> + <trace_3_buffer_size>100</trace_3_buffer_size> + <axis_1_dash_grid_line>true</axis_1_dash_grid_line> + <axis_0_visible>true</axis_0_visible> + <forecolor_alarm_sensitive>false</forecolor_alarm_sensitive> + <trace_1_x_pv_value /> + <axis_0_scale_format></axis_0_scale_format> + <trace_4_name>$(trace_4_y_pv)</trace_4_name> + <trace_4_trace_type>0</trace_4_trace_type> + <trace_0_x_pv></trace_0_x_pv> + <trace_0_y_pv>sim://noise</trace_0_y_pv> + <axis_0_title_font> + <fontdata fontName="Arial" height="9" style="1" /> + </axis_0_title_font> + <trace_3_point_style>0</trace_3_point_style> + <axis_1_auto_scale>true</axis_1_auto_scale> + <trace_2_update_delay>100</trace_2_update_delay> + <trace_4_point_size>4</trace_4_point_size> + <trace_0_concatenate_data>true</trace_0_concatenate_data> + <trace_3_y_pv>sim://noise(10,20,1)</trace_3_y_pv> + <actions hook="false" hook_all="false" /> + <trigger_pv_value /> + <trace_1_x_pv></trace_1_x_pv> + <show_plot_area_border>false</show_plot_area_border> + <trace_4_trace_color> + <color red="128" green="0" blue="255" /> + </trace_4_trace_color> + <widget_type>XY Graph</widget_type> + <enabled>true</enabled> + <width>767</width> + <trace_0_buffer_size>100</trace_0_buffer_size> + <trigger_pv></trigger_pv> + <axis_count>2</axis_count> + <trace_2_name>$(trace_2_y_pv)</trace_2_name> + <trace_4_visible>true</trace_4_visible> + <transparent>false</transparent> + <trace_2_anti_alias>true</trace_2_anti_alias> + <axis_0_dash_grid_line>true</axis_0_dash_grid_line> + <trace_2_visible>true</trace_2_visible> + <trace_0_x_axis_index>0</trace_0_x_axis_index> + <trace_0_point_style>0</trace_0_point_style> + <tooltip>$(trace_0_y_pv) +$(trace_0_y_pv_value)</tooltip> + <border_alarm_sensitive>false</border_alarm_sensitive> + <trace_4_y_pv>sim://noise(5,10,1)</trace_4_y_pv> + <trace_1_x_axis_index>0</trace_1_x_axis_index> + <trace_0_y_axis_index>1</trace_0_y_axis_index> + <trace_3_visible>true</trace_3_visible> + <axis_1_scale_font> + <opifont.name fontName="Sans" height="10" style="0">Default</opifont.name> + </axis_1_scale_font> + <border_style>14</border_style> + <trace_3_x_axis_index>0</trace_3_x_axis_index> + <plot_area_background_color> + <color red="255" green="255" blue="255" /> + </plot_area_background_color> + <trace_2_concatenate_data>true</trace_2_concatenate_data> + <trace_2_point_style>0</trace_2_point_style> + <title> + sim://sine + + 0.0 + 0 + true + 0.0 + + + + 100 + + + 1 + + + true + + + + + + + + + + + + + 1 + true + + true + true + false + + true + + sim://ramp + + 0 + + + + + 100 + + + false + true + true + -1.7976931348623157E308 + 0 + true + true + 376d9aa8:13a7948587c:-7eca + false + false + + 38 + Text + false + 0 + + true + true + false + + true + + + + + + + + true + Text + Example: Manipulate XYGraph from Script. +In this example, axis are added from script, so it can have more than 4 axes. + 0 + false + + Default + + 765 + 0 + + + + false + 1.7976931348623157E308 + 1 + false + false + 0 + + + + 107 + + true + 17 + $(pv_name) +$(pv_value) + + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/XYGraph_Advanced/Pause_Resume_XYGrpah.opi b/core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/XYGraph_Advanced/Pause_Resume_XYGrpah.opi new file mode 100644 index 000000000..070327143 --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/XYGraph_Advanced/Pause_Resume_XYGrpah.opi @@ -0,0 +1,221 @@ + + + false + + true + + 55d87b59:1373da0e0c5:-7ed4 + 3.1.0.qualifier + + true + 600 + + true + true + + + + + + + Display + true + 800 + + true + 6 + + false + -1 + -1 + + + -1 + -1 + + + + + true + 0 + 0 + 1 + true + false + 4 + true + 54 + 36 + true + + true + 277 + 100.0 + + + + 1 + + + + + XYGraph3 + 0.0 + 1 + true + true + + + + 0.0 + Line + 0 + Time + 55d87b59:1373da0e0c5:-7ead + + + + + + + false + Value + 100.0 + + + + 4 + false + + + + true + true + false + + + sim://sine(-100,100,50,0.1) + + + + true + true + + + false + XY Graph + true + 607 + 100 + + 2 + false + true + 0 + 1 + $(trace_0_y_pv) +$(trace_0_y_pv_value) + true + 1 + + + + 1 + + + + Trends + + 0.0 + true + 0.0 + + + + + true + + + + + + true + true + false + + + + 0 + + + + 100 + + + false + true + 55d87b59:1373da0e0c5:-7eac + + 41 + Action Button_4 + false + + true + true + false + + + + + + + + + Action Button + true + Pause + false + + Default + + 229 + 0 + 0 + + + + false + 1 + + + + 348 + + + + + true + + + + $(pv_name) +$(pv_value) + 36 + + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/XYGraph_Advanced/SetMajorTickMarkStepHint.opi b/core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/XYGraph_Advanced/SetMajorTickMarkStepHint.opi new file mode 100644 index 000000000..3b2da3e93 --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/XYGraph_Advanced/SetMajorTickMarkStepHint.opi @@ -0,0 +1,421 @@ + + + false + + true + + -5ee1bdaf:137f189b6ec:-7ce6 + 3.1.3.qualifier + + true + 600 + + true + false + + + + + + + Display + true + 800 + + true + 6 + + true + -1 + -1 + + + -1 + -1 + + + + + true + 0 + 0 + 1 + true + false + 4 + true + 21 + 34 + true + + true + 294 + 7.0 + + + + 1 + + + + + XY Graph + 0.0 + 1 + true + true + + + + 0.0 + $(trace_0_y_pv) + 0 + Primary X Axis (0) + -5ee1bdaf:137f189b6ec:-7c40 + + + + + + + false + Primary Y Axis (1) + 140.0 + + Default + + 0 + false + + + + false + true + false + + loc://$(DID)_xdata(0,1000,2000,4000,5000) + loc://$(DID)_ydata5(1,2,3,4,5) + + + + true + false + + + false + XY Graph + true + 490 + 100 + + 2 + false + false + 0 + 1 + $(trace_0_y_pv) +$(trace_0_y_pv_value) + true + 1 + + Default + + 1 + + + + + + 0.0 + true + 0.0 + + + + + + setMajorTickMarkStepHint + + loc://$(DID)_x_stepHint(30) + loc://$(DID)_y_stepHint(30) + + + true + + + + + + true + true + false + + + + 0 + + + + 100 + + + true + 1 + -6292329d:13804ebfdde:-7f16 + false + + 31 + Label_1 + + true + true + false + + true + false + + + + + + + Label + true + X Axis Major Tick Mark Step Hint + + Default + + 214 + 0 + + 1 + + + + 1 + + 340 + true + + 34 + + + true + 1 + -6292329d:13804ebfdde:-7f10 + false + + 31 + Label_2 + + true + true + false + + true + false + + + + + + + Label + true + Y Axis Major Tick Mark Step Hint + + Default + + 214 + 0 + + 1 + + + + 1 + + 340 + true + + 287 + + + 20.0 + false + true + + + + + + + true + + + + + 82 + 50 + false + 10.0 + + + + true + Spinner + true + + Default + + 214 + true + 0 + true + + false + true + 200.0 + 1 + true + false + 10.0 + -6292329d:13804ebfdde:-7e79 + true + + true + + + + Spinner + + true + true + false + + + + + loc://$(DID)_x_stepHint(30) + + + + 1.0 + false + 80.0 + + Default + + 90.0 + + + + + + + + + true + false + + + + 10.0 + 341 + + 34 + $(pv_name) +$(pv_value) + + + 20.0 + false + true + + + + + + + true + + + + + 82 + 50 + false + 10.0 + + + + true + Spinner + true + + Default + + 214 + true + 0 + true + + false + true + 200.0 + 1 + true + false + 10.0 + -6292329d:13804ebfdde:-7e66 + true + + true + + + + Spinner_1 + + true + true + false + + + + + loc://$(DID)_y_stepHint(30) + + + + 1.0 + false + 80.0 + + Default + + 90.0 + + + + + + + + + true + false + + + + 10.0 + 341 + + 287 + $(pv_name) +$(pv_value) + + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/color.def b/core/base/tools/commander/workspace_template/Displays/BOY Examples/color.def new file mode 100644 index 000000000..293efbd82 --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/BOY Examples/color.def @@ -0,0 +1,14 @@ +Header Background = 94, 151, 230 +Header MainColor = 255,255,255 +Header SubColor = 255,255,0 + +Gray Background = 240,240,240 +Dark Gray Border = 190,190,190 + +Label Background = 255,255,212 + +Red = 255, 0, 0 +Green = 0,255,0 +Blue = 0,0,255 +Yellow = 255,255,0 +Purple = 128,0,255 \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/font.def b/core/base/tools/commander/workspace_template/Displays/BOY Examples/font.def new file mode 100644 index 000000000..9f591c22e --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/BOY Examples/font.def @@ -0,0 +1,12 @@ +//Default Title Font. It will used in case the OS specified font macro was not defined. +Example Title = Arial-bold-18 + +//Title Font for Linux GTK +Example Title(linux_gtk) = Sans-bold-18 + +//Title Font for MacOS +Example Title(macosx) = Lucida Grande-bold-18 + +Example Text = SystemDefault-regular-10 + +Example LinkText = SystemDefault-italic-10 \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/main.opi b/core/base/tools/commander/workspace_template/Displays/BOY Examples/main.opi new file mode 100644 index 000000000..d90399b88 --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/BOY Examples/main.opi @@ -0,0 +1,729 @@ + + + + + true + 400 + 290 + + false + + + + 5.0.0.201512161705 + + + + 3 + 580 + + true + + BOY Examples + + + + checkVersion + Utilities->Install Samples.");]]> + =1 + + + true + true + false + false + false + Display + 800 + 553ac269:135b01240d5:-693d + -1 + -1 + + + false + + + + + + + 14 + 1 + true + + Header 3 + + + + + 94 + 1 + Label_6 + + + true + true + false + + + false + Xihui Chen SNS/ORNL chenx1@ornl.gov + + true + 1 + true + Label + 757 + true + 553ac269:135b01240d5:-6931 + 23 + 453 + + + + false + + + + + + + 14 + 1 + true + + Header 1 + + + + + 87 + 1 + Label_5 + + + true + true + false + + + false + BOY (Best OPI,Yet) Examples + + true + 1 + true + Label + 757 + true + 553ac269:135b01240d5:-6932 + 23 + 11 + + + + + + + + + + 14 + 1 + true + false + + Default + + + + + 347 + false + + true + + Grouping Container + + + true + true + false + + + false + + true + true + Grouping Container + 755 + -785f7a78:138580fb6c4:-7d7a + 23 + 102 + + + + 10_widgets.opi + + true + + 2 + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 50 + + Action Button_9 + 0 + + + + + true + true + false + + + + Widgets + false + $(pv_name) +$(pv_value) + true + Action Button + 210 + -785f7a78:138580fb6c4:-7ea4 + 414 + 268 + + + + + 9_Border.opi + + true + + 0 + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 50 + + Action Button_8 + 0 + + + + + true + true + false + + + + Border + false + $(pv_name) +$(pv_value) + true + Action Button + 210 + -785f7a78:138580fb6c4:-7ea5 + 414 + 206 + + + + + 8_Widget_Properties.opi + + true + + 0 + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 50 + + Action Button_7 + 0 + + + + + true + true + false + + + + Widget Property + false + $(pv_name) +$(pv_value) + true + Action Button + 210 + -785f7a78:138580fb6c4:-7ea6 + 414 + 145 + + + + + 7_Color_Font_Macro.opi + + true + + 0 + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 50 + + Action Button_6 + 0 + + + + + true + true + false + + + + Color Font Macro + false + $(pv_name) +$(pv_value) + true + Action Button + 210 + -785f7a78:138580fb6c4:-7ea7 + 414 + 84 + + + + + 6_Macro.opi + + true + + 0 + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 50 + + Action Button_5 + 0 + + + + + true + true + false + + + + Macro + false + $(pv_name) +$(pv_value) + true + Action Button + 210 + -785f7a78:138580fb6c4:-7ea8 + 414 + 23 + + + + + 5_1_Rules.opi + + true + + 0 + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 50 + + Action Button_4 + 0 + + + + + true + true + false + + + + Rules and Scripts + false + $(pv_name) +$(pv_value) + true + Action Button + 210 + -785f7a78:138580fb6c4:-7f21 + 125 + 268 + + + + + 4_Actions_1.opi + + true + + 0 + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 50 + + Action Button_3 + 0 + + + + + true + true + false + + + + Actions + false + $(pv_name) +$(pv_value) + true + Action Button + 210 + -785f7a78:138580fb6c4:-7f32 + 125 + 206 + + + + + 3_Use_OPI_Editor.opi + + true + + 0 + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 50 + + Action Button_2 + 0 + + + + + true + true + false + + + + Use OPI Editor + false + $(pv_name) +$(pv_value) + true + Action Button + 210 + -785f7a78:138580fb6c4:-7f72 + 125 + 145 + + + + + 2_OPI_Editor_Perspective.opi + + true + + 0 + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 50 + + Action Button_1 + 0 + + + + + true + true + false + + + + OPI Editor Perspective + false + $(pv_name) +$(pv_value) + true + Action Button + 210 + -785f7a78:138580fb6c4:-7faf + 125 + 84 + + + + + 1_1_Start_Up.opi + + true + + 0 + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 50 + + Action Button + 0 + + + + + true + true + false + + + + Start Up + false + $(pv_name) +$(pv_value) + true + Action Button + 210 + -785f7a78:138580fb6c4:-7fca + 125 + 23 + + + + + false + false + + + + + + + 0 + 1 + 0 + 0 + 0 + 0 + 0 + true + false + false + + Default + + + + + 83 + pictures/sns4t.gif + Image + false + + + 1.0 + 0.0 + + + 0.0 + 1.0 + + + + + true + true + false + + + true + + true + Image + 735 + 553ac269:135b01240d5:-6925 + 42 + 464 + + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/ArrangeSupportMenuItems.jpg b/core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/ArrangeSupportMenuItems.jpg new file mode 100644 index 0000000000000000000000000000000000000000..fc6e0a1a129d62d2c63ec6df31a6388bce1b3e49 GIT binary patch literal 3013 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 C4O_PW literal 0 HcmV?d00001 diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/Context menu.png b/core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/Context menu.png new file mode 100644 index 0000000000000000000000000000000000000000..1f1824232e214bb2c8989f993ab4317d7f182821 GIT binary patch literal 23974 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 literal 0 HcmV?d00001 diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/JF Withdrawable Circuit Breaker Off.gif b/core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/JF Withdrawable Circuit Breaker Off.gif new file mode 100644 index 0000000000000000000000000000000000000000..a336d24d42997318a40bc92b0a913953fbc8db21 GIT binary patch literal 186 zcmV;r07d^tNk%w1VIu%W0Ehqp00030|NkNR1OWg50RSuj0000Z07d`+0+Ec5sms0K zq6~1_1oGXv@2NrB*Mug?h@FZ)B2~3mMaQxc=k|Tk&yb z+!Xa1C09%7ZR+{Dj542=BKBg+YG$k2y+XS~dfkr3=k4-eKaKatrYHEOw?|iK7)aR2 o_{irN37IHaNg0<(hR6e_2!i%92g6cSbv75)gt}#UI8guqJ9BqacK`qY literal 0 HcmV?d00001 diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/JF Withdrawable Circuit Breaker On.gif b/core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/JF Withdrawable Circuit Breaker On.gif new file mode 100644 index 0000000000000000000000000000000000000000..e7594c4206551eb403d02b10711fccefbe37b65d GIT binary patch literal 188 zcmZ?wbhEHbRAz8v=wJYW|Ns9h{$ycfU|?j>0r5dH3`~=I`d6Ob`(P1I!7Y|gcXz&D z>3HjUi`vPKxm|Wjp<5$dk8cuu{;l@So=3kGo19_{OKVgby=Mo{crEB@a!2H=lxnzl z=Jl$nm4~i~Keg!kx5Yp1cXiwGhfktob>`Q<*R?Zy@6KwWA^s!rgrmpu9mj99RxoBN oaz46|va|K&wZoAiOW8})wz07_r!9HP=^Qz!DsqN<5CelX0CCGw0RR91 literal 0 HcmV?d00001 diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/NavigateHisotry.png b/core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/NavigateHisotry.png new file mode 100644 index 0000000000000000000000000000000000000000..ce713aa10bd24807711891a1893f4fe5882190d8 GIT binary patch literal 4692 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 literal 0 HcmV?d00001 diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/OnButton.png b/core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/OnButton.png new file mode 100644 index 0000000000000000000000000000000000000000..df6993cbc3445296194b5bf022adb96c960b90d8 GIT binary patch literal 566 zcmV-60?GY}P)R=TJ;kMF0Q*1X=_NX$lB}2n3J>0G|K}mY@0|Lzg1lR-v(gOt4 z1O?dz1l9xw+Xe^Q2L;##1=a-w)dU351O(Fr1kwZq%mf3_0|d|n1jqyg%>)O{2MWdt z2FV5q$_Ws~5DCT!495%>!xjs|3myF(9O)b#<{cL678d9h5$O>f`5h7H5f0=I7Vj1c z;0g}q4k_g+E8r_5=OZNJBsBjtCjTZt|3FdyQ9}PhgJ@-T00001bW%=J06^y0W&i*H z32;bRa{vGr5&!@f5&>tQ(oz5b02y>eSaefwW^{L9a%BKbX=8G4b8lvJAWvpyX=7!7 z?KN=#006d0L_t(Y$L-d|5`s_|Kw<3e4g?gtyA`qH{h!Af8HV~V_ik9pS$_|3D9YkO z3Bp`I?oO_VN;xDRPQM7scx0Zvys=#)3eVj>nC^KsFRUM?ZHii6+CEL%mGzw7ACMg@ zMotSSL;?eGRy>1=9L(8j4T?u`IGfwt=KsZcI0UaZz&MyQO++n-w>!wXM&9e2G|=b%707*qoM6N<$ Ef&^2=Gynhq literal 0 HcmV?d00001 diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/Start_16.png b/core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/Start_16.png new file mode 100644 index 0000000000000000000000000000000000000000..e1724cb3297365c55c53ea44fb47c720110197fe GIT binary patch literal 784 zcmV+r1MmEaP)= zs5k}aae&UQuBCIGe{MwXABi!XM!SM?#0R*7at!dmUa<|UdgtLKUsoLgFaTOxTSL>$ zp~lGlV=>95Ktq50XY$3daq_ehg6$Ux_gvlIarfT0V}Mz+XRnVuXAMneLvHN!9eBY*8U(s>Oj zD3mAIk?Hy5^S+k`pa-(X-}aPhKeEx-0CK}=USB^+;rNfpy%w~i(4L^pQr<)tBpMsf z_8S20?YFNCF0AWQQi>k+AlKQ#$ceRZ{a17*gLcJ#o-p#wTK#lbPIq^Azjv#t>B5d$ z_rY)Fo##V1uJ45>@16GqJR!e$HIJ({{k3^#!xqc3Y~vkZ`}VC(we(=AZSyIkFKnLfZ)zWrQL~I6c_4F=&In(?vy@om!b<7iqM7K1s76l2uToKXg1=b zk34Fe7@L{vIg?I0iINKkl6%hgJKsI`jzC}~&kapTWhA0~z0g|I4u^mc0`~d_T&F&H z{&jB2ujd*O5RVI~o(x^NhRDG~B-KqYAyEDP4Y|h)(5`ctAWvHWEQTWS)hVbSUr>2T zc_}@q=fZUnyEqP~{|Iu6bAZ!;c!1Sj@i;BdiRNw zsI5GQ5$S@msMxS5%s^P)KIge^-_c`mbz?>bpR=A>^SYqjdizq8lT@F2Lv>;oz{4tR zLYf3ns+suj;;uqL|135e87$DHEwUJbmL0nLS4uY`%H@Cq`XNh28kQBf`3?XcTqOVy z)YT?pm>lpxbq5N+NJ%rW%iDB<20*4tzoye4KB4Al7<>b!1xb@{58gMZNv*Dt{+I{r zd`AZ!#0RdQ-QRux%V(}28d|mb8*7>Ocw5}QcQ>1#r^i(ANA5vJ2{L+m z1Xe7HmVr>!pNfsucWJEdifOmd@-Z=FHa>XcR8Mrqdn9cDNj6etd-_iH^CK4j^ELVq kih&N7koUzt;I9A!0K2&3)IsUtVgLXD07*qoM6N<$g5TvS5dZ)H literal 0 HcmV?d00001 diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/SymbolLibrary/PNG/AT Single-Acting Diaphragm Actuator.png b/core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/SymbolLibrary/PNG/AT Single-Acting Diaphragm Actuator.png new file mode 100644 index 0000000000000000000000000000000000000000..91a0cfc10e6804cc46d7cf34e4f35efbd4eb226f GIT binary patch literal 438 zcmV;n0ZIOeP)(i^T^KbUYq! zgCL-4_ao6yb>{PGwHnIKu*{4b zh9P#lr7Ur!QgLkC-co{w!{N4EF5jpejYr@2lgv!B*^J`1i4sSdOy*rY(xmZbthxWO zl6kJz>#O;EPBJx_Oh|TZv)Np!n(I?8DijKVOnrB4+<))rKmOuFXoN;+ghptDPF$p9 gClr52c&MuJC-8CiA?D<2@V(eQyB_Uyg6*jjTsLDd+a(6CKyO?u-K$qmnZuic)eq~@W1-s!pSw(HFv5x zn=*yGuP&Lw#NoieB+$UXqQJliVqSQEaz&@u0@kmtx;hVxuM1lRWOr*?`g_y{6#H(P zw?ee^@$Z8ZD=wcsb!q9zL+jpDt&@E|BgmNHh~C{=|4fb(JC3Z+Tg!T4w|BC`z1XZ2 z#h(2pZ+3+IVtSQb?d|cjyT`<*W3$NgB3{0&-z}c&-DHrQt{2r{QC+Bcjp@kmd%JM4-vn%=6d%w5zV@lQ&ZCtcuUF@&tZ_X}1wRxGQF!Z?A6TbqEk?3sjao zD8RLJ?iRL55(gOE0yHX*_GW~r$XV8Z`l|k2biKyBNYT{IcBj&USx`Yqj^|a&#%&?o zEMLqoguaem@Uf(~c(Xe5FQpaUQ|qb~kimlZrZ$b)rWfD7ReLmn?Jm>AUZ6u5JYD@< J);T3K0RY`ZIqm=e literal 0 HcmV?d00001 diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/SymbolLibrary/PNG/JF Fuse Switch Off.png b/core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/SymbolLibrary/PNG/JF Fuse Switch Off.png new file mode 100644 index 0000000000000000000000000000000000000000..32e447ffd1574ff7318d17e3c67adb0755c669ca GIT binary patch literal 685 zcmV;e0#f~nP)ALP)>&Ej@t=9K?};wgej+ZV zO?0Igh=CZ0ff$H^7>I!wXiss3vUCEvhXT}XU4RVKJJh-StVIvql`b9Y)YPw0b5uwd zpqr=->akAC{uE_PxIcO3^j`r5W!YZ+c0c5DFpgz|AIbco$K!eXmn(2@F+yDg0)aCL zN2)jpbe|wh)3isU5!CDTt2#W0dZW6*pZWd% z?QAxK&1M7fcpP%MoB*0kCV)URr^+gU4!mCP*HWqUgCM%yu5gK(o1#{$*$DMX^=vvJ zh{0eWATpT@WV2bYZ5vjr6|KHY*>B1MO)xH!$)rsX!{Lxh1^s?s0CqYZz?FEVy1{8u zi;__ki$#dVVz68;MV?BfE^*a8S2_c*m(C)Q$TiI&8Uw*#5USOx0HU6vdG*UHMoHYF z+0$q=1cYT-qIA>gROI9!LVZ>}2A=H3069fv%jfe@E|&!my7*KzkcqA=3x$Fh1FcqT z2Xf`)3s;N*as~Uy#xj1x{G+2=5_IVULE-fQUhl}A<%yG9lAJu9?4pBOp$>I9LYoq( zr_;IKlDo;QEAg-ay+FO>--j58ff$H^7>I!wh=CZ0ff(rj0gAi!^e?@i#~e<* T3kJ<>00000NkvXXu0mjfe)BY) literal 0 HcmV?d00001 diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/SymbolLibrary/PNG/JF Fuse Switch On.png b/core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/SymbolLibrary/PNG/JF Fuse Switch On.png new file mode 100644 index 0000000000000000000000000000000000000000..9e8ea8c63f198f07090b982b388358737d733854 GIT binary patch literal 253 zcmeAS@N?(olHy`uVBq!ia0vp^DnRVc!3HGr6Q1S(sUw~)jv*Dd-rh3gJES1dmZ%W> zK*Y9bF*CFK%d-{@>;+dm-Oa`MABdJXW&HD7)-B}y__u02*UL{TEe?~lLe=+fndzdb z;LyOp$i%`S0A$#mcD?137v!)y(x~ia^p{wB|H!2DRJI8O^%z#ZKR)eal0x>| zy$oJ$i4xYmjEuj;rj$R}s2NaKp2hWKjx{qA%L=Dwe!s4i-Yw<4U}o;|{Zi(>hfQo5 tZ{uaHHNDxuwm_^~V9)q<)us3<{kb9@@0ofg{Q~-j!PC{xWt~$(695T;T!a7s literal 0 HcmV?d00001 diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/SymbolLibrary/PNG/PL General.png b/core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/SymbolLibrary/PNG/PL General.png new file mode 100644 index 0000000000000000000000000000000000000000..5544d4766c896fc538dc233e0ead4d3a943f0343 GIT binary patch literal 896 zcmV-`1AqL9P)IFna3SfU>4YR2TSE<`38_Od?b4w%)tKPckaTJ~usSf% z#Iz2kbzo$0pb2eFLsHU^)m);MZEamxFBA&2va)i_f9#0w zd9NW7{zrk~;o;KG&JNY1T2K(8J2EmNaw@}h!EoN6kB^TZ?(gqYBf1I-k)D{Cz#dz_ z5e%p3zSHR}9UL4`Gt$~qvdZN$jg5_!ISc;lcqVN&+etQ?B|UT%6e1-E0`}Bo%}ntt z{SB|No&wb9=%{A;ur@e2n8mX%(Xg?Frl+S*$N*gh<@I|1vY|fKiq0SShEb}OKCE-< zeygMO(BtulWUy*M&CJY*9UUEy{#&sieAwLFq*h4F5|YUz_R=SX2U?_Ju}H0w8VWW5 z24=AWXbPS{EtWccY?dNe05m^0H+MvBkP>QXY3Udx4S-&9*>Fm2k_@%DxJb;h2B5Xo z)m3Vz0M*&q381gH66i_0QwA5Got*{HQvmsH(WagUkgHv@oEE|=>POtnChxNMGSc0OFB{W7A2)rt(XySs~yH+LyI>LNdv%jvpj zv|w&h%RvitCf%jpX+_X`A!8sS3Z4|Yv1Tb#5TV$Bmb+^(;Un8w_ ztqucw25G9hl~!n~kzs>6GV-v2t)(DWg}RJmg2CVs1_qT%rDkN59R=1@;~2Z{11mPM z9Kw!))yBrgsd8Wy4u{VMR(`)kCGD+{(OHjr7d*-uNE? WtABkH*Ab8a0000 zK$OG9)s>a0(IKp;p=)XfSKmdJMh7JU-v7(7@U6$K4co98dGJNf@)@#Qb6 zWw+ifQ&N&u)tLBWl6L3jZR>rG%uleJKYLHqofnHj&fPlo%GUFY@^X=-8m^jNfn7mU z7J-;6|4%(NWv`I6{<^7$B5z;Gox3&m^NE(si6J*@`%i0RrmQ=~wKn>oT783B*_PCn zQxTO~!6qA*76n&zIPZ6OeeKLNLsyw!Z5*Ci8F#fV?lRr}v#IK`dHmaU+lc|1xsvV~ zN$gKstiCX=jo!NV<-#^Qvz1b7qgh{ldzLf1dc{Kd=iv zafIs#7fX}!8kt51C4piNmL_JOCWkk?4hrE46FB%99oEP=Hz}|*Iw&k?Guf9e?2#KZ zwPxMPn##L-%;~Tck2e$;M>O@95A_~Ywu;WEcBM8 wsoF~A8Jlc*p5&~ZjPA|=q3-&&-@)%DygtM@d2^yXFbo+yUHx3vIVCg!0EGdQumAu6 literal 0 HcmV?d00001 diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/SymbolLibrary/PNG/SM 4-Positions Switch 3.png b/core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/SymbolLibrary/PNG/SM 4-Positions Switch 3.png new file mode 100644 index 0000000000000000000000000000000000000000..a8ae7839a832be1583c055e5de49bb397f6fd1b1 GIT binary patch literal 365 zcmeAS@N?(olHy`uVBq!ia0vp^szB_{!3HE77WDxI7)?A~978H@y`8n*?{I-g>v{(T zH7zv((Wz5AI!|)32pI-8I{1C!_-Y~G4V0;1U}0)>@bOU)IGhbCK_4>fqcCdN=0hNf^ujVyxomo9)nM|VJL2ZllNxPV}3yvvG zX{%;mH*?n)rfEJ-lMnwrGU3eh*UZ7wFCDwTL&lX$d{^qLOYA>3{YXE1FZef?gmLb> z{QVn)dB4ZEyDz;r`CWFj0Z@T@gaPmOsrl~&yDuCt|32sCrn5CWinkq~B)v>;Z=?LO zhx@)i+?Vj`l5)i6y*wqAl2f71gS&KI$=~XYXXQjo4*qwrotp;?Mg~t;KbLh*2~7aj Cg`i~s literal 0 HcmV?d00001 diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/SymbolLibrary/SVG/AT Single-Acting Diaphragm Actuator.svg b/core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/SymbolLibrary/SVG/AT Single-Acting Diaphragm Actuator.svg new file mode 100644 index 000000000..20e379205 --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/SymbolLibrary/SVG/AT Single-Acting Diaphragm Actuator.svg @@ -0,0 +1,45 @@ + + + + + + + + + FL_EF0601 + + Feuille.5 + + + + + + + + Page-1 + + + Feuille.3 + + Feuille.1 + + + + Feuille.2 + + + + + FL_EF0601 + + + diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/SymbolLibrary/SVG/Closing Push-Button Off.svg b/core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/SymbolLibrary/SVG/Closing Push-Button Off.svg new file mode 100644 index 000000000..6e22ffd72 --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/SymbolLibrary/SVG/Closing Push-Button Off.svg @@ -0,0 +1,51 @@ + + + + + + + + Page 1 + + + Feuille.1 + + Feuille.2 + + + + Feuille.3 + + + + + Feuille.4 + + + + + Feuille.5 + + + + + Feuille.6 + + + + + Feuille.7 + + + + + diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/SymbolLibrary/SVG/Closing Push-Button On.svg b/core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/SymbolLibrary/SVG/Closing Push-Button On.svg new file mode 100644 index 000000000..c884300d8 --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/SymbolLibrary/SVG/Closing Push-Button On.svg @@ -0,0 +1,187 @@ + + + +image/svg+xml + + + + + + + + + + + + + + + + Feuille.1 + + Feuille.2 + + + + Feuille.3 + + + + Feuille.4 + + + + Feuille.6 + + + + Feuille.7 + + + + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/SymbolLibrary/SVG/JF Fuse Switch Off.svg b/core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/SymbolLibrary/SVG/JF Fuse Switch Off.svg new file mode 100644 index 000000000..70aace7b2 --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/SymbolLibrary/SVG/JF Fuse Switch Off.svg @@ -0,0 +1,55 @@ + + + + + + + + Page 1 + + + + Feuille.1 + + Feuille.2 + + + + Feuille.3 + + + + + Feuille.4 + + + + + Feuille.5 + + + + + Feuille.1470 + + Feuille.42 + + + + + Feuille.8 + + + + + diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/SymbolLibrary/SVG/JF Fuse Switch On.svg b/core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/SymbolLibrary/SVG/JF Fuse Switch On.svg new file mode 100644 index 000000000..334949cc6 --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/SymbolLibrary/SVG/JF Fuse Switch On.svg @@ -0,0 +1,193 @@ + + + +image/svg+xml + + + + + + + + + + + + + + + + Feuille.1 + + Feuille.2 + + + + Feuille.3 + + + + Feuille.4 + + + + Feuille.5 + + + + Feuille.42 + + + Feuille.8 + + + + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/SymbolLibrary/SVG/JF Fuse.svg b/core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/SymbolLibrary/SVG/JF Fuse.svg new file mode 100644 index 000000000..426c5246c --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/SymbolLibrary/SVG/JF Fuse.svg @@ -0,0 +1,39 @@ + + + + + + + + Page 1 + + + Feuille.1 + + Feuille.2 + + + + Feuille.3 + + + + + Feuille.4 + + + + Feuille.5 + + + + diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/SymbolLibrary/SVG/PL General.svg b/core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/SymbolLibrary/SVG/PL General.svg new file mode 100644 index 000000000..b033093dd --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/SymbolLibrary/SVG/PL General.svg @@ -0,0 +1,34 @@ + + + + + + + + + FL_EF0201 + + Feuille.5 + + + + + + + + + FL_EF0201 + + + FL_EF0201 + + + diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/SymbolLibrary/SVG/SM 4-Positions Switch 0.svg b/core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/SymbolLibrary/SVG/SM 4-Positions Switch 0.svg new file mode 100644 index 000000000..a0195d970 --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/SymbolLibrary/SVG/SM 4-Positions Switch 0.svg @@ -0,0 +1,43 @@ + + + + + document de base + + + + Page 1 + + + Feuille.1477 + + + + Feuille.1478 + + + + Feuille.1479 + + + + Feuille.1480 + + + + Feuille.1481 + + + + Feuille.1482 + + + + diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/SymbolLibrary/SVG/SM 4-Positions Switch 1.svg b/core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/SymbolLibrary/SVG/SM 4-Positions Switch 1.svg new file mode 100644 index 000000000..ee19cb1b1 --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/SymbolLibrary/SVG/SM 4-Positions Switch 1.svg @@ -0,0 +1,149 @@ + + + +image/svg+xml + document de base + + + + Page 1 + + + Feuille.1477 + + + + Feuille.1478 + + + + Feuille.1479 + + + + Feuille.1480 + + + + Feuille.1481 + + + + Feuille.1482 + + + + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/SymbolLibrary/SVG/SM 4-Positions Switch 2.svg b/core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/SymbolLibrary/SVG/SM 4-Positions Switch 2.svg new file mode 100644 index 000000000..0f73d7e4f --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/SymbolLibrary/SVG/SM 4-Positions Switch 2.svg @@ -0,0 +1,149 @@ + + + +image/svg+xml + document de base + + + + Page 1 + + + Feuille.1477 + + + + Feuille.1478 + + + + Feuille.1479 + + + + Feuille.1480 + + + + Feuille.1481 + + + + Feuille.1482 + + + + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/SymbolLibrary/SVG/SM 4-Positions Switch 3.svg b/core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/SymbolLibrary/SVG/SM 4-Positions Switch 3.svg new file mode 100644 index 000000000..8e7094559 --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/SymbolLibrary/SVG/SM 4-Positions Switch 3.svg @@ -0,0 +1,152 @@ + + + +image/svg+xml + document de base + + + + Page 1 + + + Feuille.1477 + + + + Feuille.1478 + + + + Feuille.1479 + + + + Feuille.1480 + + + + Feuille.1481 + + + + Feuille.1482 + + + + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/Timer.wav b/core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/Timer.wav new file mode 100644 index 0000000000000000000000000000000000000000..d2be1daceed079d145e9995bb316084edc36bd3a GIT binary patch literal 282696 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

qmhu6=H~b8i%>Hrv7hW=} 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ы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 tiz=6@FC23v)@g!e|f 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 literal 0 HcmV?d00001 diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/Write_forbidden.png b/core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/Write_forbidden.png new file mode 100644 index 0000000000000000000000000000000000000000..7538fcfc65e3624f4e99f4273a032ef8c464d362 GIT binary patch literal 18046 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 RTqFPh002ovPDHLkV1jE$-1Yzf literal 0 HcmV?d00001 diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/fish.gif b/core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/fish.gif new file mode 100644 index 0000000000000000000000000000000000000000..4d21a5c62612b239ebf91170e1e264c73ff86d96 GIT binary patch literal 67035 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 Zr$Uox zbWeSCKHUZjN2L<@vl7YT0ZW~=S?M7H<9&SyG00IC*Fb#AO-U19Nsm(}t~_{WjVFZw zHJ~okG)gq#ZJt`IiR>{y*FHcR3n87_0rI+!0t<8jc~6#;#o3MoR=Fj5=AqXN%W6Yd znmhG9%GaI$A~(jFlt@P)YQUr>La#bUX5WVo`GInIJ#!V?nh@tzQZAYcODgUTrS(o#-crzfwE6LA=%Bn^k6i%snDHO~*#*)AOJ*KZ zsarGzCc51RQ$rKc1|=tD%c6$*)#-2%yzU!$Yoc+hDAF$>5+;TLGnj*z ztP8N*m6&+NourR2*}F_w5M=mX@7MH%U(7OAKbg95-_&XeEZekrwUczPAJ0#OmQu)+ z(Gr8@toCMx4MfwQ%1UcLwdKo3<^h4(@Xfjc{%Ep@f2%Hh(T>QJNg&@JAiNz^*ZKUo z=U2$$zy8>*ON&3}uVZ(wAN*_%`J>NRUptJ`5Tl3gjPaS6HLriYu~EiY;)+qs;WimW z0I!3DcZtDh(g^TAqXyra5&R!v86)uY`i~hSh|a?)%pu1qN*dzeR-ls4BsN!`X5&)! zGw3)|@!vw&KY^NO8n=RhM0aAP)Z;Yu<9<8n{|I5LNB$PV!rq#vs@;4=W;*A0_O@UI ziIXU{Zk;W4QczSS51IgHPN(#&^e1M)6~jhLqv{%+Q5n zCz&Byj8)cT@aza&wE5OUz<*kNXysu)*=-)r`DDVrz_LOs_T7w$W2bKHHx}+phW#*& zOM(sCi-Qy50PFkrXHHKWYI`P0D^7j3$%QZ2b%=@2j+|9&5?&j3K4PPxy)1I;*xFpk z_G3GjYtv^4rD1aoz&02ax}D3YfJ#^hW)d5rM6vZUxJEyH;Z3}{_hF_y{%`LqZvrl9 z)RjnX}odjW zd@}~P_FIYP!5ag4+F98(2=8+T0085kw4Cq!neT11iCok!^>pZeD}$4DX4k;ZLiBJbMzXlutI)yi8SS0 zW1ho>&6{PkwuzD~#pU*@CTaj+fORemf`vE;n>lp)cv9x56YS>AU0V>@@@S>E372d6 z_SFrTTwp*;DqABL^ze;XNl?^#6^0eY)BWG$;jG>h^F=B&x)c-JtId{JeXqI3GSN%2 z+fma@x68wL=ID#re*|L0)6B;j3rU(GnIb9geXr`coAtvjSWm$aF44LM!m2pc`PHYn%6p-KDZSxu zBSU^@7I;3fL%@}a_6%RV8XN7XRlsBWSeuS+MSp1-5dQfg>gR`BA9A5q54O3-&GbI~ zisRpe+b2@7SG}vsb>NB6gUFp{b^+R7XJQ$DzI#_}@?)DPru@SJj|ORP(oXAk)>cG* z*W#}gqrV0m8m}a3m+Z@6Ne&ns{<9m1QMI;D9<|8?d1SRQ8LspDgc9*nm(Z=;|QM6X?uTQLY%_+DO&OTs{Ul86_Ox%fW zBIsAQYpnL*B>PE1gF@aUnZ2s?ZOOD`(duRlH^ETaD;NR8FY%>d;7Vn>DfZSZDGtxE z48p@zNAG4_b4?YBewEuIo*bYOn3>dEj5T?v^%aVi)sLxbxtHGdnQsVN zqGjPd+j^p5!A$C$%j|PL2dCvNKP5ViikKXc5Q1L8aB$aSEmU`_mTL{WY}4Pn!!LP< z#`L8)VV5}@WDF!R51yE=xFesLxNJW+0*k@maI)5V6V}1}`{`O7BIVVj*aN|EJ!2gT z9igtKoM?^(?gD*IOCioA`cs}oY-$g%8er>>pq40%Lq!9(j|=U2P;1_CI`rAVnu@0x zI5QLBP>C!?GrU`E9g-~3NH|rs9{`p_Co*2xejd9(&&GGNZF757-MQjx>~_Ka*19`U zy?Y5XQ(%b%+Dv0|KSzbg2wWqVI#${Tw+MPkwe_mRn zGUWRn2~{fsmES)b9Q%x83ZCnJTNk)fJE-+7nC-)z+w;4y*ptzGvuo1hh(3uOL%FR= zF_hTB0%;m|yQhect^q}KF=jee;JG|pO7#M^S|pX-|L6V@G5?5-n+tzcHkqHzwmW+Ye|O!a$%^pl2D1&Q;3TkacBv(zA}`IzM}O3cm&8Oc zM%~>+eJnl;U&u-@vfs6^99I2illp0bm|W+|c$y&`@;wy&Z=^exTAr}BRc<`jK=&t$&mmP@aL}?Bsu0sJ5vll3=gPF;Q?vA9Thw)|N!ZiRK@lS)KYjg!Xr-f{at6W5p+>%=vXbxDTJB2 z)-zWSRJcmf;$$KSbv9^+1q)u`D2SzMvc?LJVj*tR)Vgc?QvZ2mh08wry=9sSLFUj1 zy+4IuN+4bM4`*UO;1auR+)oon6aNPvt>-T{{1#kyC!{Imsqp)HZ{O_UM-SF#dgln9&2;*(=ubJzh4kEDc74C>?&O``- z{2A?oU92JhKmutbfC+;+6wAgQpC$dvgmI#QdyQiL$Mfv}HtqfY11y?bA(C|3WcSkG zfb_iE^Yx|4d6K#EVaa+WjhiUjc+#=pp6j6hb&mU&xEub4!jLpuCi4D@aE|^RS-o5$ zW<7Ue2|SUtXq32OA4DD}3Gt;WVD7%*$X=tBzblxmj+7NLuQ~qm-fx?DIDKGWsaBV) ze}wf!?Q`H_PB!q3;d0mPlH1;|x06b%3F$otp+YYl>`Y}H-&YI>M{$nEp`#q>bYa!^ zEhMyFqUbP-S*BVxqYSUNApVo=trGmeG3!b^{hGG{f-h%jImOchSZT=G<8Hz^t*O*> zZNLx$+_Z_pSR#CQZ5RX0{FnqbaP~n z&tjMlHo%)zu2&UHC3{z=p7Sd7}<*wG)@&+6R>GG$zA{}b5p@^-o9HWo!~l}41ctfdzxCtc!_UpJ(+ zEv^czR`#nc*)trg9bcxNWBuipvZk0KonPb}eCfW*ql--s1*7ehll#k(huiDp%(hAz zO!>w8Ce%{y=JV8^e9NRV8l>OGgr_dwoY#`O5A0svD?d?a{BeBx5mVaD8kB~N6vd?d z5D{q4c=cu-x7q4zK59?MbjYMd_{<5z*SE&^-Nla?0tD&I*jHBC{NHoVy}G-e8b8y+I9Qw&Bv%^|WuFS9Ed)-wYr2$AC(mX^V00IV+aObae1n#3 zV!q54Ymem!3r>`(=LBZZr{gR#Ar`+l3KT{SWo@#++SIdL6}bjSAV2-WN-FS(> zu=^g>c-1m7eDK-tt@iY=N6Xxg@q@>o5>o`MX=XsnD)w_wTIlzgLh-62TbmvRFw+~U zojxN<*rg;R)i->*+Xryb<3mr(Fj$zRF)?=5eo}68J3-a7$k^Q{(K&r`)7-O%e)dtkC;;iNVm#}jsD%Cv)s%B3UZ zMHxppbLh+#6k-9w)KW=zBKEjV?Q*NSwB>UvGxZyB0%4*^E6z%;hT1_zGHv|4iU@-X z<~h@_YD1+^_7&Oc;@g}I?a$7Q)v1tfr!54f*<$t3ncJ}Q%&tjXIcE~IJg9#z-cU)1 z6RNW1VYN1+_rHb;NBPe=YsoWri&kdR<5d;FjPZ}(MB=; z&=?Z^yz!WCKIa5Qmsi^d#=JsRhOvX67F|@ez5AIZ@9yR6m-iG@dMn}j@u5|ypNT1*bM#E^n`P4Vyn*GnT%@{ ztWl6}HNBX3KD5d`e|6MTB=QH1q6jUn6OlXINu&!uLsD0&wQc#I1a{%GsRUj!EgMLaFogP3FV#;zusaZEfA7sEz<|YuvW*gVs(!+x`k_Q+1 z8pU$w(WwPU1_iq&dVziH=(CfSn#lj52@zRA4(}6LI_4QTgQocWVh|hvyalXC7tkPv zjBA{DHyFGdpc(`f-VuQa)anblZG(6RaZu%2=!*L`erTre6NcXRiC~Z_Oa;8L*1xzP z0d1(vslVARxE;=B!a~=7*e$L3{U5^rVYeWAw-4J;-fFWFY^vS53ExcsR@f8%|CI+TXzoxKj7Dkto-u*V(M0DqhF zR{C#K$o0(V>zM>BfdP+$e&T`Yid_Fk6S9rR(8H#@k<&BREv>JBN9AoPaOFRAXwE-8 zKu&-MNP!$TzP`f)O}~Xuri1)I@LeEt`IHf#=`VmTM-)N6h}uG}r%+vNmWv{>tcoG$BsbTqgfxn)`nb=CTroZb(KLBw8mn zyPam^Iqqhj7<98A!*Oa(*7&Z+7zY!NB4F(BWad7id7-3p%FQB8_!Jq;S3_pZ#xfRR z3vFO2Qo^Q*K2OE03W|BY7{9>g`U!K|1HT!G$3>0VWnus$b$@KUq`fLm^M*J>mN>Jc zf=?HYA-gO5DrTy$S}Ffp^|udi`UjJj`pv@>D0*>FcUHl4wCGb3GC@kvz5uNqhI5c( zPEAz1J7AptK+*C2Y;fII$?2%8qv?-l0_$w9cdpM4bbT*l=Bb|pS-KCEiK-0JXw=So zjGPoJCFCisot@6vTji6uQ~C(;#fkl#VA0-3g(`eDhgE9NVU;>sZWTS0DWIUm_MWQy z1Ft5n0nN9Oc={uo(TtNx2{Xhu$o<9?szSl54giVTK*AN8+R8mytGG zMi!zz4M`tmw41XQyn+hFbKSj60Y3>|t!@Shs$aSM>rA+s$fvB(1Lc%9g*=#3P_)&cSgM%kyUjyx_UizT69wEo1O*-`lY~PA-!_UQ8FP#iw`2_wpBHTsC?dzfx3HJ9~!&gHM9q6u0FkE)wj3ZbNNHG1n4i< zZfSQ>$gNp%mmB!}-mjWXC!d5I{WaUJ?dPgwvKWUCAj5Gm>;-kCWD# zq3?5dAxNKMX9+NsAR@{|!Pi6^M?eDK>-6m>X@b#|sLwf+x(YL0hG*HWuimtM@9u+i zVi76|pHP0S>-i|8VK>>KI6QC?fKtHKiZ*H~sXhGZ*0r5YOt zB?zhZ3-ww<`C*#{y{|>zeXBWMRCr9cM5846X}B3v_Y(gtkpr^gSE`;k@ahtG?PG#@ zPBK$$5+U&9{#>SM_}Q454()xCb$wh?bCO5GtoYTl zGVTt!V`nbJUr7}gDBy*$b|-d!=_Ej_R9+#U%E_Sk&(Ck};2Mo=XpOqd#cf*jpO_wsea#OJz6>gIWRa?&k%dj+N zSw|v_%-s@ehN$B}<=Hre!`oC*SQmq;Ub=CovQ|zDM27#VJPl+9kc5jSrjyAh6=~*& z5nM&u4x+45gjFNgE^OY<90n6*exnchdz?zpUCV!|(3XDEb5z&CL=3{e>qqGycon^X zUFx|~X|F3mspLm z#a|N0*V+8mC%rMjd}IX=9$q5U#r_%A6ieb}_Ji#eKZ%x)KF1^?3y*w!>8K>{OZs$h zN27i--W(;Y!lns5Ep8?(xUT@!?Nh&gCXX$*uHI8&Eq8*w%F{Fszrc}@@W{|Q(7KmK zl4eOm%*TeH+|6AT7e7y37(Q;h=imRS%0gA2`!Rc-wvQU}vX8oPYvuKsb(?25YQ7qj zM@)#X0FWFSfMhn_c_ycdBDPef-wl1y|p zjKY&%hY=h|fwOr@`z8>`IekD_C}@4plss7=ZjhDXtFF}1Nwz+`oJERlho_s66wC@ul$ zIX|)f?Vepxf-BHfCrA8_7)l))q_P2=j@8zfDgNsU>W(kN$)S0)tbm zE5sqOpZ5V}r9q&I@sP+os}tM)gz|xf0-Ia2++*qnA+I0yoXrtjK+mba2tuhfe~-7K zqR;FSkF*BtW{VF^-7$$*~?=XUUMIkNU0V23WFv^fEjtw|W zBUtquiGCV+;ZNhKi}nYR=^?KvENaLYG}h(Ulk3iV%85jNouJ^S+9Is+7z6HIN{VW8 z?~ln1DrYjC;e<%vuTdU?G5z|{=9u?uAY=g{xS3D~SlVddq`2$x-{F$9!>cqa3Nt^j zQKb=qjj9Ne#Q*O`6@)~Y?nX|lX{<^48Xeo9HmChV)}6$#_!qZb1V z&P=~QebeQV+UiDI;9}e5zofp>`fksYTp&@L;P@d976r9luB2?0)#8A?AE%Q)Pr8zf zE+3|Gh8x^jW?S{qFF#K{y8g!UL@HOH>EXbEHd}RCxHL~cnNEN+2eY2lSoyT^CaL7t%ZWnZ_-uwk#Ey+-+a6fJ~eeUH%wG~`?Aki%C2(R(Fm(>*H#}u+Z*j$ zlYV{Q;Vq+Ir30c!)`Kc_gS%>5DhD+(LE>h5 zzpOMg^eJ`#eE=*V44t?lFkTrIF%Lk9Q(jn~id%Aix10TIZg1vDq~a@4Dhd_10O;N) z-$vr+2k#hX)BV=#Zpqd8+(_-0mA%8`*r``<=W__%Ti*;w=N&xscKo{iA!{yd;_Xdu z11-tYw|^kbXk=0TvtEHfUYg>Wz@h}b)Q_2_S6;up`Q~W^v2^Y5<@YW*Q@3CF!X>FD z3;eV$^Gp8CD+ug)^G}bA<&s)T_yhfysc?a?gz&8*$76_|$CsMg6paL1>gZZUkg5Ye z|A2b+T7b{&ll)@~c%**#3h}{FPw*T6)Y^P{NvgMqDo}^-sp{@I~s;0)*KP2d67M2UgG%P*rT(1ua53J^0d6_OoBX-pR1}mUzhgM zSHg35@y57Ozk1p>`A7;SORnY=ci1K4z-68)iPI#_+;{Op9=g1k-G>Jb)C8UV&}Yaa ziT#|yvN7@}Z=g$a`cNcRhjZgEmkh~pb__kjdsGaeyj#V~bS6uBxgI~H_3ciQlj;&rg3n;mIe(%##Et)W?eLt%X6Ct~XI%A|k#k=s zT=;&uqRjAm%9Bb-1k@7W^^PG+8#>E9tf2&J=WR_PU6`HBD!{lpt%SInxbS*m-{ad5 z?>9_Z`%ei-<)7**XsjZR)t>=}QyHaaC&me*JU=av_zbpugI5lTUIrB;vQ41(~{p-s?EYk9YJ3YOU8E5^L4ZiTN zo(_+B3JD#B$&b>Jj&8vW)5pQg=P^`v7Tekt)wQ<}Z<`4ri@HU(&EmN|Yvxn}sume1 ztWh}hpp1y*1fX~wo3{tzo|_nOy?d*;cIV~q$0em9XZL0|t8P^jU>-CBsc6x$i)F41 zV(3vGjS8Len9y_9em<47@ss^O{Cxe)J`AOPMYu~QL7JKkr1k?oJwgLQ5ANAItT~M& z8amyid(7*mmXW4S-G_@O-sN4mwP(_%1?a|-VJbGd5Z*FTa>pv6Z)a24Zk~RxkL9vk zc8*kaFAbmUxrX@56hhSrKQo3kRNP1YHJ2xP&!LYnV!ku4-uSt0z(V25^rj~IM%PKU9-N4YTvV$k8Mb14Eo3opp20m z3j_>69LA(fM>SR`g|NK675{3c(_iNIkB&`!(brRk8vRut9wCGRcM(&0VdZrn9NSp6 zh#om#2A9p9Z6!x_%CZ=ZT!&tS-syT$artsxpX6%cSjG#aRUhN}5M!WpBGXw>Q$|{| zJHKN^+QGLOe)rj$xV&KF(|Wr%CkO{b?h-Of(gSraXA92nFUM}x!K4`_tj!f``~Vp* zRWQ|qn91B^JeK~2@q#rk@XDJ-j)Ml-p1s#ft4;e?#*2m65pF$~#(vfEC-82;IB3rToRSwzQ1y!X=8LU9|+OdIWvEU!-l%#`m zGRTOP3;&j|F(@1f8yc!Zh$XCm?;FN^n1=~)UBvts4;y^DX@g^6Z!c43m1FshA^;YN z3=5C|NB_HKTZzRW&;E_Tqrg-LC}wmRejTj2K;vh{+hDkk48$H~AQYK#dyztyhj z?T(GOkl-?q;Jgky3gSJ&KoE5j_Wno5_Pto7cW&Q#1UcMVxN8_W)@ zX$fwIT4tH!W){E7XehN1kk%h8imZ?C&%;_Y{B{_f8@RqFC`tq0xL_ls=ny8{nX7t) zvG4i;TdSsc?o{(e{@>ZT<W<>2et>l zE{OLnx!o-RfOzbBtJHn_95bJhj;P~JnKY<${o3B3FT2lqD0<=t9j6Ncv{ zt2u_M1ET_Nd7PyH1(+pZ&UqFvv)P0LX0{2;`^y(Mx!>n|K~&2aW`fo4vjW>6l;!Bx z5|yF4lfAU-E;R9~>)%BDNDNhEvbT6@!{S0Vz{Q(KZ)dwLu}Fq*dO=_cK0jX63Bf4d znc`jG+x$}rDmJ8A%?Wq&xNx)p>1Lr8SskHFU-V@pZy427k@TX}p!P%JstxjXoN#A$ zL+b+OHYeQ8IeAwdcv1NAR!T!80$N$&_ko8aWlM$TvGKQuUyKKCmwR_TKS|WzTjP)X zTu{-msC_lNhThe-IHm0D58mNFE-gj(ztR42 z<9prRF^Fn?&;E+x03NH7rOzn!5a&9#ov@dS?axzGy_=pooz@>27nP_PJsZpW=~31z z)on+w*%jXPeXcK_dy~8JBVOM$9N&z({GesZL;cZv*5<5+DNkq~?oe^i*uBsR{N`lK z8_)OqBj=*8Kd9=H%-jn@$*5CI5ZbQl#`mrlWc+-W|3*5pWOu1`ZB3T-o*s^mjhb1W zbo1=!k54HfBR%#9+NOQ<(`$+t=9;PqZh>RBM!J6FR}G2SyT**aI$U&Pw5-4{tfqR@ z@fQy;k>EmTIoJfPtSE0(_uP{SSZz8~!MOYNuz~oe94R3Pw>5z#R5Wv;>}wX>GT~mn z?a|ZU+pquO+uaOXO1+r5@g}E7F+Mw&3gP8*6Xz$Dt*8QTiDRz+N=w}TK@%M>JT7y8 zgR9PNavIUwC5v)ECth%zrub~G7iZBNOa!!6;#JBVppBtjVw-5IU(wx#vt}Lc2{#-Z z&|qkGc%oLHPNcuyaRE(w4@@a5nbkOrZo_mNSY=t+DY(|u0(?ADP-?`)*d`6xg_ame zv)Jd+oUzc4{Th^M8P%;o0#%x4gPg4kN~Mz$`ptU@^h3W(#igsva9Rv{qJOE%A{%u| zWrl}53s&q5g$Xc&^M2Fhlnz^V9jQPcBdwNVP!IYP{?J4~gdRN%j^}voD32x%tYECK zVOSq@sgQ3c+>vf}Fnf?OTS_rN6eB@wFuy(_VJESgDoA13)#YIJ>Vk2JhpVlAY07}=~<^7?K3Ew<0dfsRhllpXA-E|r_S;KuRO=HZ zQdB-X)Wx!?n60L`Ad!sJ1r2RyAH6JL5_{djI>rQS=*Zw;KWXrfuGQepliAuw6$F7=3+J5yD z71rIuqhX4r$cH*4+_%S1rHDazV9?;1xAq_)P$9kg^q8>aI_hkVfBD$iGwTAQ7FQAa zixAWTJf2@Z666qc?A3zd{`R`s<{LL&3eQ;msJ~ZgJqx@8Ig7h&@j(2i2`^*KxV!Jc zqs*AqGWFB;o?}h6W-fA&^y!W>dHt`GMB} zQC|uyi^$>3hoDFP(ij6^qYAqHyceAw{$}QpN=2P8Na5~@jO_92{iF&44Tlz-*b!d^~(xK zq_%@gfX@Dpa&P5I+zRF-91H4P@ge>eN8bnM8g+af1AJ?snH?f5@XongG%kG^gd}@w zRhfO!)C^cLpra?1(TZ3O`8bRK4g;8Vpo=0Du8VBWjrCg+7l0%IFd@L@RH_PMNrB}g zU6j>mR!Hk>dGGRudXZ|@o) zRWz=D?M^AMJ?qp{bl8b?Fb)%MHqP;95Z5^e)&w__jf#--cK8DtzChq*9RU`M1cz8A z1^%ny8-{xq)BYbH*Zu!2;r)N-&G1x(JQUDi)su$NiRA&0kBI!`&3GxnB2Tl3V1G3) zQ9hY#rETZsZEDHD71vHx%efX4bfmW}d>#|LDcp}sFcp&1haX=LpNU=f0dK}02QZNWa&m)15l;2}@I4=9m}oSQY+w9I;OQ{JbOi8b*lA#=Agg(J zSA@Cnd~vc&LDek8i=N+^s?(AG-yhc@b$d`6!q34$$}|!zS-m2EHbtpV0JQ**se}Z^^)=EAg)4x-LY3B__+dv z#dc=`2;?G$U%h7H!=RI`~{%O2YEkaDx7ZpG)$=h=tg z9(3V`y2PuJzK<=v*{xq5>5Z!RUgG+3g_S_#nd?mLZTfwqa7t@hX^5AJKmX|XcXf}e zC!Jn3RrB<`Btd=dGrlyVSN+Tv?}wW~Jz!0UHNF^cb3 zbbA34pL+bQ|A+cagiTv+K3DAbGRKq{IJekPfZq1L32E=b;NBBGOY~6^*iY6u36_hMfv?5F^}!7we_F}Hj#7fe{qn}QXQKxSJk@y zp13ohRQtBVLn+5|ODL-*T=z#N{bHk;c(cHGoMhe%AFGDgx+>NY^yfxIh#;|n=%uxP zBn4I?fAuDbWg;3u0s9!mrF)XV631B=kwb3lVMZNuz6{9j&7rK-DVDNePiDxK!DlEI z7824+KBa4iMW2f|m0DuN?OiR-Q!_GEvDURP`;a9dV$sKYo0+T=Uz{;vsIKP6N^$%^ zOkKCokuV=g8)7q9RHEei?^50suSKAeub?S{BXKLmy_GQ^79(B=00o&ZC4 zvK5z!Ve=slEFK%3%P7j{cbEfcvzHtFMj3 z^V+cUCW@U7R)?g1%gK0yC~_d&(L%y1yaqOM*7yX7-C5%eI9m_O_9%Z1 zR#90I{GQl;r$h~Xl;_ZCCvN4|zU)UufsNVeQ-rh>r(BU!irxALijn73R+4?jsYv=) z_>uf0Rrfrw86P|i$}4jHZ7!Vk+~i7BluVx%Id!jAe1MW>s8HHC2Y}=B$hvS2fdnLk zLhck;Kdo>;a0M~$QBBB1aoVkscj#niG?)dtY0(?fKLCRP@&_W(7#mJUApuKh)Pm#FIHOB_3q)^4+&Q#D_MAcNxQv1b3mE9)hGmU()wTX)Q~fLGV*J zk~Dm!j=!1kr^XH_LJ!XBnRJP(cbr^%qjr7(fAY@2$bbuIjw9iXS8X$yJaaR$XWs98 z1iSR{r(1XKXxIgkpUdrOrZ1SjV*tyAtF-S(NR01#fZ@~lPfeBhNsTYPStC8X0vFQA z@%9(zc>PHe3{N9O-BVfd16^KEP z?;B%>=40(Y6h$G~wF(T}k=OKcV@n)>Cbom8lMxmcn1vb6w3P-aZJ9tyA)QV>{#d>N z4*u7&HI4m3ex;MkK!>^qaA71TuB6HNg9YQ+pA?wSBzrdVm5kOtIIto}+fVM8T>tgS z-OAqiUDqQq&+u@aY3f=aAkpgwA+Ftm3NHaq?i}{RggCl1VvjJ3{U$^gjFHoUZUabE zI)oWdViYaGFl!QJRg#e|eiyj-=EuUDGn25JRaox*bjrH&G=&@Bod|79coY7S@Rl8f z{`9%Hk;{&SHb2=C0~JFIKop?hUAD^%Mcgz%l7?8QSGe zy27RH2*@mf3*YTzr)qQd73zT90rD(yeLi%z)U=JWJ4z@yS; z@s8EyTeISkCPCsw*s98Ff$hGPeoh1gTtg|U7q0)xp_gO9=(;hKlC;f2F|Sa1@6^|% z>@KO6l5`EMn0DfnV=3QBR{cAi;>x;mK`b^im$+!!Y4j997dF_K>+6p1kSxIbDC0 zbpG(S)D!%tKji5vq;_RS72aIEX;G+Z{L=k8TfH!DET$WE?$)+%m#mpA+)}G~PgxC+ zX$a<=Is5d!w^n6Z55)N`#5HE5t4a8E;d1X!zZ;7q5X^peS7spXumZw`QNZ{#kr+`t#SfH`Tdo zZfVTg-zSE2sHQW+PQHSo6dL3VjCEqwtf!h5ln?%P{NSPm-MJD2*ZA5*58wkpQCd3k z?p6UiG>~yQk6Ch}4dg?h5bPfnhfW^I6PhmU66ohzqH>!`yxykTbCyveTmZMoXE`S( zxEEg3{b1G+R}9APwoF`EdOsZpmhRT>^v+S?GdJ#y3Ul zBT;v|6n_qYV(XC%FA5WNG`w4Rqb5xh$EBr*N8n+AvP1@;i& z!_zpVLd!cLJ3-kGpBOPJ#GeA9m_I@zeZEsN++#+z3qiAVW`S@eMxgEHeXpgWKB;H) z2zbT`7zE^9r6LtpGZNiJyF z-Fx37CcW;voj@(fZ%3U94l&2n)o`G0{LI+?yH zEb>I^tYFRnMP3RHw$F*VP0zCm6K;oqrQDO7^Mi(ElYpH5)HfPw)|W_6sMLi-(=w0J=fet6tGh z9h$)!p*K?ZsVO}nP||>IkPs&o-*_o1KT*Dq3JtwRhy3unm52qp!CFe!+C7@0>oZf- z4ONf(er`E1ORB(e3R1!du;vcSeK9t^xE@UYD-q%ltL2@j3gJq_)zADq^53{uBQjHZ+ zaaX!Idn^h#51&7C6Jd8kgZt2chxUE&aJ$#5%A`GZyWajtqwO;-dx%~v)Cb)#VWET15YnOnt#~Ud*_K4I@c%N3r$k z7hf{=KU(Iy=rrE(skn95U3JeJ_0Q8z?6{H6h8(tUgWKIPKoux=1)P8Va7wh9)lVm( zYL1PTLbKbSpNBcBC!icU4C+EB<}s6nV;$FC7D_k_Mz?Le9B)|8bP9l}=~pNzN<%Iz zp4mEgX4mvHwt-!KWB7famW`LHM%3H-bvxGxRDDZTutY=c$8Q0@nwS}ldsJILT)y?o z1+(ss86U1L2zP#El{K}YHGLjqHO&7#s1Js1fF(K#XTt`i>(91J0%_?4=aaPb8 z#zHB4WU@qm+grgUG|ur>K(1%9cSsIIO9M3_#`WR7+5=E-6I@zH<07hPeb#gI{VJc- z%-ix2HY#Ems)Cb6gwi{qM06aAGPSC!azPp)1I4f@T!n9?0I>yBgiTx{jNbtaZEI*V zBJX}i=hz7*IIgf4Mx?X(%5aXF$_a;rllck30H%(RB(^Qk{c0if--6%&Mudjm&x|mtFGeQq?4lD|31&%g zSkn|?M|au2L;+jtG-Um|o)mtuOBk!h3cQe_p4!B~H&4^V195&*PF?Zbg_ii(2mc?0 z6u8$NQW~w~-X`Vls8){_?1?nFOZr!wOW~=hG_FSH!}(rrt;bUh4)9(%B(#IO(7}7T zVeNfh-RZh`-Z1%;_EWYI!%Q$Q7eBA4ClfM3&zc^{kq_^@+xBI?PYh@1V&1j_H})fA zyShlnC+*TU4d2w8?)mvmYxuhB#p-(^N;b6v*AHII{PWA?>#~@fxlNv$K8Ye}tHi_| zA{%RjJ0k`a>1W~|=;n9E3t!5@^N3w?>r50S0O1Wwv+NQv9LDyb4OtXBF1BO1R6NqD zQYu0J2qz3qknlW`QR{B>zpuHvJ#aTZL7yxzZ%1uSAI!8I?Q|N%l&LDM1>Z(bF$p)Pc+_o{N69g2Y<$@C|ZW;+@YO4h6r=FAr6mF3Z=?1)`mh7FMxD`LL>DPhh)a5KF`(|81gV z^aKCS29wvEitkuMyq@&~Y_*Ue>cc}zu>g;Z(}HP>Ji`^Z7t+Q$QPRT}%C?Fu#}f`q z+?iABiSRRe!$HZ$Nio7a;+W#l^sK?;)sZvTajSU}8w0wHoAMYbB~gekLoFe&`;1q8 zx%=i+ZJYC_3y0niH`*W)N-_9&c*2iDqnbJXShXRsqYe?XF0bjO@JRE(Z*%od zf!oENN&OaoYV-oLH1OSG$Hm8_OE>M+r5y_po14Vr~3w1clFhJaBK zSVygC^s?wc@e*}M?AKK0_b}x;t|jfGy>G8?X@u?qiPjQ1x7)`Qyx{C2jVFY-b_!Tq z94915$;l!v2pey~t38bFvIWelY6UVFiIJPuGteYb{Q4Pf+B4`IaV1?|?rFB^&Ar`h zzvfQt6_lCuYqyu#&%1^6hA-^!pZQ&P*^GCZD0!dMC(9$7ZaWO(s+G)78a&q95NVYf z#+Q}(tg-`f4WFhx#Q0ugPw~(%6#@7ma)JUWB%3(cygNug4LBRU7cjF}VT)*U9}?DL zB!mXrt(a67J4(e#($o6ngz(5+M4F_2)f^ZB&MbJYktwl2d70m2wSQBGe!+R>;hfTd zAayl4WUSI@LK*#`j;87*7)PPEYV!sB6!K^ z$9Od=5N0A!Jg~qA2|B7bC&d42s0YhaZy~X8+J5ettX@m8e6K!#_+GNIW_^xb*wdO*ZRVvy z>s@>W!|`fEID}Er?wfvjH0@KJPfoH!sllOCWJYij09~omoK$x;%q`_3oA`#R7ZiD3 zf{0hqM2<6*q&6METutVe5UNb79;sR$wf2RNdx&i#Oaz1g-|HZrFA(sWgB1@xko3Oo zytINC5!PW!k}Yq@`SXHKPMBCI5DjE(U%lw2(VLcRIJA$d!Fhjr$$IvF?5Fc!Jg6_Zwe|j(b*0yV(`Xaf1 zEj{3}Dh`Uel$GwqFk$blxi&u6(qX5GBR~Z371lk{qCDKZj$RI*Tfeq{J!@yScjH$^o@JJcTsJ&rr> z2hu#KIF|By!aL*7pcln^xD2w)kOJ>96S*`K794oHrW)kY&j59)w67w9_B9)p5uY|! zT&cRC&m!E?%Ds0|XH80TzPUUK{87+qC-b}GelG5(1)}-a&)$>&vli)b!1_yuvdTfb z{yT+rk52>`x3=0^QxMB=25no^krj9;$-Vv=hei=Yj#(e@Q)^7$*##}xWirD_kp6{291HE@HCXeA~q+Q zwg4<*nQ=A(ARXD^9UuEJa7Ys}6k+xmRYam9^@ro1egYtOj7Uct=6{9UJ?`IL-!8~7 ze~tqEAMh^ljdf2Pl0Cf|N&yScajL+{k5&ud9jwQYi${0z3FK3Sy_qmYq$^MF(GJ0~ z?RSAchqvDa{^49h=eAPn$>CU>OQTSZO**C9RmZ$dB(-0SJnwO#j?PKDbtV zG^?LwVw$fb*A>xvf>mafqbRK9JX)p*m?lj8YUy2aeFb9Yg3T5LJo5#Wj_@dw6d9kj&XWjTva2$RjO9y~TNnnwc%)%U0yGcK>r9woG^eGuoJ(h4C?E>$?tm4)$z_eCD+oQORGp)6}3{Z+u z5+;cgI?ku@T+Ln4n?Jsze%~U`^gR_jdQ1r(&8u2qnt9+VESXoI#3vps%jaGkE)_Ht z`3{A|ASmTY6HyP_`kiA`i*(=T~h3 zX@g-cAobEKTInV16vhL8bNg7$mEQa*XI12C>7Jdj6_IgSZMKgYhS5e@T-(dyRYa!_rpHdm3| z6Ar`Dt*ENEk>u@0ZaA`t7IEs8;`JRHR^C_iyjxA|;mHgt9qzO!36yci?1V5R-=3hY z$i5Wc>*xHVs7yVybs>Pm(^;xY`$|U?**y*FX{N1ePgPA=*8l- zm?raRb(G#{KCM`h;O2bkRYuCK`@&-O^R0a!Ur$A!t5yFP3Ou!ep;VCZCJiEm`BIlv zWm3Oz|E4{dh#zs$r7?eLZtp7Gv>xJ4sChPqSMYhV#d&{Dh{MPHrMs@Wuk?ypI1pjM z4j#6v<@JH$w+A1_1{B4)A6JG%3AdZ1dn*R9Q;w zrqyIWR^I0CUG1f*2S(?2j9v{N$vN@3VTxDn$J9_k!I?96#%7XM4tW)It}h1f?Vos? zX*gA0e%>|1a4PKtYc*dp8&vhE<@+@m-kn9A6yC>I0^83&!q>$t*V+5E%rV9Ssqs_` z3+gAIZ#x%mI>dLf#h=9;rN%#%m-+KGLhtj&w|Oz`*tNFTfNM`oN|qMl(M~u!{Z9E} z)UQWpi>|5YaEIy8z~yHj|LPmlEm-_SwKsbG>4T5Kj4pOhtclCl$K(V3#yi4>+_)gM zBiv4WP=PU4uVk9VJ;(7b2+9+8ljYOg_)?p;`|k9QzOjSP|9p;%+?1D)?;7FOj&Kvp ztBTj1(4j+Z+NE7@AM~Oecxmz9lk3vQ37Hv906?*-JscB zI8LWuv%)9!Oi`DZ;F3dU!6j2v2r*osXC_2vy?0YJ(^A zBv}8DzyQOlkUgsA$LQ!<7WErdCM1kO6O5rkf3|HsN0sFb^3rx3IMnEH|F%B2HpT*?9wB?f%x`wIv=s*8J`}m0nEjGx?fkkUNbb=8#CyRscA<*`G zMPI`t*jUUYo6VUD0c>>fX(rv(+Z`>-x{7!Q?I@vTBJsd>!@A%J?l^Lf4~1Z`25+SH z4T+TwSjZ`fr_{cem+>5~78fo?`Vr;Pv;o+zecZBJ3H4Q4Xz;BgI+vZhjgt!WoGw5j7TRRky@YrQC zr^v%M&?{yT1SkMfSlM`@ZK-tJEGF; zHFmGTt5e?0TdK3KqCIi^AdRr*)Q{#Gme^&q`uFwuSovh9P&aPbeQY?4eFHvsr9ZL1fT~S zrdRtnKS{-NcMB7+aQ}eE0gh!BBj(0;7kGC?Zxm^?q}6zuxIMjditX}i-%4*pVtuLP znITU^1S#U|HQv^_M$exwk>*BUfH5yb;`tgv9#>dhoildo&G!e9qM8*+Y05gKd}9Z8 zbqVm_J!?R>*{hFiuCDK&G;EPL5cQFi;A%L#_s>h8NR!JqOKlV6$NH}PQmt-Ivh68--7Qv-&kzL%_EB-|j~y&%bO9m+q`al+xCes9L!zW8WFQXm{w`HW6AeDR zA@Oxes&mr9K5g4LVTN1Q9f+P%b} z_{HLu>>Led*o4TxcfAL+;Uk4EfA4xXUc^nqu~neuzxl;#<6WY1|I_-z?c1F|2p_;N ze({9zGmLZrN<7E4cX)F{8w5eCQMe?dLtNp2(qhJq8T!WK!a8TztDhN@3k-Y1BJj}J zE!y(iPJZ0Lft~H=pduhy1VgNV1R6* zMGV$j3Bh7wXD)}wa@=6xciS*yjqPmr!Cn&R<~F_TNWSN>Zh^i5ZXsTtSPLt2thcYf z7dG7OJl5k};Q5f?P!G;GLeKjK`d|s9b0O!f0?2M2A=^KS-~PRG!5UZ-uMjuvxnQha zu&e6ih4Ox^I(&g^vNjI){OfuH|ezVAEVcQ_1|8AHj~6PCb> z5kQpSaRnhPg<}?PjM}k^kggK4hZGhRFGWzX>lY@M6&Q2i2mvbOc!l(}lRy?N#Eu61B?d>qMXX^q=`%M&=A zP6UHN1OfrLJst>W%fXrS;9?DkB|ZCOBSwaY(cx`JZOwIt3fyV(%6f8>(AI)(*HMIK z!nE$?iD*4lMx3#*tTrLWz#_l$F?FNhb2II#KwWbu6?pCIMu*dl@mUFhX$eiv5Sl7V zP@KO3E6p+J9~?vR`Bvyymd46(c+l1(Yqn@-=Q}C>*lxtf8EJ&sISB`@2~nIQ&87-8cD#~RTmOjK zEw>LBptLZVM(FPQ0e7`8inDJ_QU#iYK3OAa`80uB?ww!>%4AX_9OwI@=c!f;!(6_} z%i(YsN{QsdX!FH;%bhV-s_!l-pv*J3WPmfrl8?oK_P}0MZFaFDgB z9uMI20KuQbcs{`313W&!=L3R2vhV_cApm#+fG+?9e?;Q}P!f0)+zT#(vwsHzkLTg> zd^}$8M=>~OFz`GEp3lGw{@?(Y89Y3Xhv)O~fL1p)yzgQ`H;pfK<>xE)*vKY)YBVDK3X!5<4j#o(OBWAJ$l!5@P` z9N;pK&*1YJf#FkvIWuu@&OV6S`3;9+5{Q_q6T4txIiGFW>7RJ z8x#hf2DgLj;0JKHYL0KSb5GIHV1OjRXMT4?IVc=|{=~CmHJP5r%*eu-`?*MS(d$ z=U+Jg{+j?W0dPxP$*QreI~gXc?J?L`{_p}~w@tBCQ$=5fJU-~@V3SX`!cOz_dQJ23 z!ONQHc7%vw)v;{ATc{AS3|Ao<3iX~HlD%e&GK7f0FxQ~tC5J9sN-D~AL&^>7*Dc0L zwKHs6A5UJ>On`$3jL{h2uywJm!IRM7SHSlDkaDxvQ`8Y8Z)8StdSTUd@v4CQ?TnuDHbLUbXs znk*?{_YY~HBu=z-rAOsr$K~m_XjNBez_xw#K$U!yeDVtK3)wfqZ@?qA-kPz4s2wE# zm`T=DgSj*F)XU@X)b5H{VeO70>h0`7qOr>aev`o|roZ$#e{V(|#S4R)s1|#!L*}R+GcQq@$H&3} ziESbNlna`DFP=hdkLQCat5RR0%wT2Uxv_NwPKN+_ZGB{B$lcEaCCGaM zDd|}&DSU?9@{p^WAz{uHLiZwo&O^{QzU(Aq!Fhvbbm7%@88VuBFv!i#!;fctnP_0j zzJlR&{m>R#Zfh%YFW#o0do_8ZIIJVh^~z4e{amJGWb74V7@k-Ty=a55+As__d}nr~JNFSn_DNxA%M{l>=qGpke5S;6i?A$I3-o)O<+XvoztQK;baHl)yvg^uCwP+uRN0pQ9 zWjwp0qUC3$SUyxBk+!VW6S||#6c!wfUpNr0y zBw>rBMT8HqU{1_%%zJmQ6XaHIQ6Vekc`#{9R0TFZ*r?%YpLOrdeCxw(CJu3V#JbUN zN`6b(_n^!Rt1UgbBdmb+3)T^t<{}RFvTC{xQU__be`x6BRf(!l?33U|6_yeTzFA&c z*9hA#n5XgyS&FS3Md=DljhoF@OY-zHrR9~y6(a~h zQng3eU$sKd)(2vk7zMIh(}p)m)K0|Ymg=I-xHj{Ok)H=o8VF_rcxq-|5&)-E`ghOf zPOw5Bx9TAHw^_^Z426USe!>nsVX9i}f#`A(x_jyFsqK{^*|FQb@+R_2NglDHbX1h| zdf$dT#Jva>=gDBVWT0`Loy)#68;UBA5&krTd#23sEAemI=Zn6a`gpJGS2ISZ#$fZW z^L|VQG4Y3Uh1lKc`Zqh6Ux7(!NkPH;g%7WUFCHrR;t^X{reJtbpnSOfcjijzhpC2b z38`w&KT}1{ih@EtciY{DA^uf+SS;~%c zW(hvf!mG(TxqUrp@ktuRWE}{`GjYpw9vw0MIu;$J9FsJYLh(piN(_7lTg>>0rSFyy z=c0V5Cse7DFbfdnwXbS&^E(;f3?juf!cvrbiHE^r)3#$jb10PE5-^tpHpIs@C z%imIqShGVdrS&NTm(6gtf&rlz>;k7YqoRAC+j;+OH?Ce!8EYKyeDTSTlzm1V=H&xv zTt!6F_8ptdFFd#AarWz)nzG-KRK>;XvG1TOY1K(?OE<1U_sshVF9tDlFSdm*)2QWN z-=vl#j+BRcO&0C+jc+Ex)qzav`UGsiWlzdTVDeRNhc(q;F`qIf;hN_&CHRWr&+y+ZDoqfJ7 zwj#R=;l3_`+fsvuN%h~LdDMZ`QH-vmJIdGD zwd+7<&U9KxsGrc>@K7ikE}Lj~vQ5hxw<^lq(%o*laW@mqYPlJJ>2g$0+acj$$qo4S z`j|&rzs}SA>q!{z)9PAw-k)O;xHx^Lf!4B)NO!uFIwAt-lCg@>*rl-Z#R(%f@#;=G ze8HZ>5?L7iQFxfec`hl9<$1Z-UQsEXf4hdUGzH*CHsuv;9k47;fs~z4FDt-Wv|e+& zH5Gc`f^YWzRvUPAx=1-LvXXO=XSFabb3m9+Km>}2N6xBA>nj1t`oh+$l>yRD(9PW~ z^u856Z|IOx{Hyt0{FV_T(785$;c zPF{vU{`o9j>v@PB&%(-FYZOx2Si+xqUi~76V^=4+s<8P2Mwm~+pvG+hM+?} zHA4z#)k;tk$H^T35dnEyg6ON(yMg*AkGLD#jZ~c+uFlGj_7ho!h$t(iyXh_F}wi%kQp-ujx=>y(m&eZN}%mT z!K|ddjMWOO7pn>L$4y$ehm5++< z5P@qb|3u0g`B(Vr8RkU7*RSnyJoD z5{t^Kz3#GKVCu$6@Z786xA5I%yaM23y6hs>H~(RvYefJ0PklQ-&$E}Wmj1Sm96CbOw8!mCwx+r3f9-?wC+=5bGTRql`n&%A zWNGMlisl8!al#k!V=P~a;%g`7MHXFT{~GkWt+VWMI?dvclSr$UeZtRYPEJ9EJQ1y?Tf0bNgt}^R#RmkM)Oovyo589u zzP@n!)X$i?yt{<2*9wk)?8x1lbSt5SlloIM5_w5(8^hG=s^s|5=2GCJB4^*S@fF9v zGUDu*+*;2Q@ZB7lm?YM(CpJejoePq}t!W4F*>(F`jwJhz9#ryTpQCaQ5PS8{PMdoX zS!W%4wvj~wVib0&6gCrn>()~!_BrMk^A)g;`oX%|Rz~eFEK+QbCX3%Wd4j(iMz+`2 zxadAYG@90O9b48mCtflv?n6i}A>ssgwpPlBNiB4J#N+$p>@`O-$VqzGXWj z-sL}vGGyd>WMByBMzgyZU_UBJveMYEl|I5E0hM+uJAK(!_Glt&*0X7oi_Adc*C$Jo zkb%~1=k(o6BmBaQx)Ch+&* zsFK{x_jO;i9b7)cJA3E#+B4Sq=!rh0VSVM5 zl=a%Sr?EnqypoegXftMjA#6?le5Y%-qGPU~Jl5@fdDRYp{4oX^J+xqKe$G&dsuTu! zY$SoJhpmzl5*OEI?JVE5?hdOr=1iZFW~8A2qlW2~bJU5N9ffMI^RbQ;RXJGtKTU+v zV>u3%RY84u(@)Qs=!r2sQF_%rp+~c3SD0N@`PF6>Pz)@0wr$)sOuU}0C@}^(>f<>! z69rA6d#?webID(Jx|bn)(|z4bYL&wxBdcj=UA+bS-8`=-4)henOjv0Mh2P2IZ|+3{@n)PrbOJISS-9CA zz1}H|ba8Z{{hE1FH*k1hZ4lBtSkBuyRrv9OC-nf=_Z_(^&w8$~$}Mv&;`L>hoj%{F z&APcB9?jJIYnvmatg0GEct5D7PB_e7>dP%Baia{a!FPhkTm3=1EGlAPg)wXw2r9F{?RYZH#NP0& zD!0+&nsEW9K?lr@&d*#3jT7&B(`u&|thPXy7`#sg#JTIAkuiIF;i-pb&NT+PC_9ekB+g@m1l0P(lg zKKWkBeltm}biy~WBXYBq$wqRp$cUVy2sP4CEWwqIo9)Fd&AdnwH#ED(X# zl0{@hX`aO=%zp6{!A(D=0w9g0iW4qYs|ssc8idg+%gm`O(7oqAVRA;SyhIE#4s27i zzW?_%t0+f#;xiG=)ZR3R%+R3a|Gd*-Wf1>ya-^>^IM{UUXbMauQOVlz8ir`-mgg~K zSe{fMCg~y0WV(zL>G*7jgfsh+gbzl**W^c;V}O+_hQ2aYlT>c6_26t;s|HKKkin-L zTw^DpS}M{*_RZYLM7iE+rw->cTARY9dW;Z2utXK*rnbwCz0AqmOlZI4xZj)1I!fpJ zL-*o>3%Vp+k;nO~HqY+E=70Nf=zC~4-H9i&vw81ktNhK)Oys3-bG;P!H4>OWWlR-< zr89sDrCkGV{+J1h3v?8Tl^*xao_QIR#3J8&`9m?7@-X00>CAARuF$jPGus6p#&Ul? z6MmLBTavXNj}~$LJLqL7^}v@_JVVcAV=vQXymn|A?H*h^z&d{yo0?~pq&w4t9MZ~L zI`wVQUp^WZXYg3kXr+B7#L(*Y3?#ZqWe}-o*uLwumFZp-4(gq!z=&UHFL5)OH4(On zH|Tc(3{Tx&OukNY;Od06^}wC5&C7jM{ZTsMtd8od67QIm>x&`#CS#xh$7o{Mv$@JB z0##hx8+w{tBRAvhq?S)k_?*-~lQp{-=z3081#`W4x^}(7EZGeD%6aE|c7CzPtmO`N zYTlhZN#ePE<>XTa-<}dLSl*$aJCys^Qe#N9;u!l7_3c1zuSzLZGV4K^Qy8{rn5UvNXh9*ust8Hc*jC!b`Y(C8GW`p zwrhID9wRQ+hUpJ=r58a-m%|wDpHP4qt8skCS=i*+yyRg6f!c>bQRhS4hy4n%Hzg%! z?z@k)tIU^nkS1<$F-BXh262mqy~D^OQ_f}QJ?|k6Z|mzC9h1o4U8NMJV{0^3qBNX! z+TyIjbz^{M9yQ+*ldSRWt(bJk<2&~pe47LB|NTY&qZBsh^Tu-E4|}vt$5{Gb;`k5a z;U+ZcXH(nSdagPK40pMcD}w*x{(bJS9xMT2b9KDn)E)UO$6(!Czkev)4X{D8=zSMa ztIFS-R4f7(PX7I|r#+ajqR0a1X0W5i+*50@a8*tY0{fS2H1WKs>FDL0zG6|v9&7`5 z$yh}bCJRqV@UXtzdwiaInQ4#dzM;7GwC9Rg%nCp)^D_6|R(Oa7JEmH7*Ag9<&hJ#hHPr%O!9N{pEGpqb((7b^k#55f*CLiA5TTUGPnbpIuc`Oac2r%xwa z)9JWTR}NAI(2=xovTk`v%!f(x>D@xWF=34mIO+S}*K2WNk%t-=JkyM*2(RQ2e>m&s$li+C2>e1 zxl@O+8S)c-YPl|2n%i(JCbh3m;x4@{s0zARn?gKszXFl{xZ{93tUWz;LvrGve^hs7 zqr{1s1G-O?aXxQ7n#-%U6+@;%`BnI_FJrpKU9Lm0Z6eEy-X`xJINllt64z`z9+jTn zB~X_Dq9TFy2{C#^*(OrtOuT|CsEeK1voKme~+}4AwQR*7^tH{X}|T1*LiW0 zaDHfNx8-b{diq{o6(z8J2U(ZuxSo+H@sE!kz7qy~F+u#%ZO5uQM|k$Aikt&?|N_w0$g0Bc|mlqMsugaz+3youWNkn{F`@o-rjrtNjbzJ^{DFiyNg0x zBXh*=r%q!Bs>W)(@dAT+BHjb;|wTqn?LStwgpbElqq>hv=2o#pUY|r$_w}U0R#WHbq)gjvqoWG+K#Eq`L_~~gm!i4_f>KMhzHzyy zqWFTjBb9}zf1dlA}YdDUb%uKE8~mO`E+%X z8=$FqGXkr_OH%&yO;+*Qgsy+4mBW{>N6SUJ0J=`43i^L1Kf3b&FUe0hmX-QHpVbH= zIy(P8t34-Vwj4}XvYsqU64u$HNOx(j8cEZTDz*TYyM_YvPj9FOv}k1D>ZyR0>9vuu zYr1}qbJKw5=?eIpV1QClovhp8^SC(4U_(+tcaKT{Hd$@9MW#)0dDz=hqQg+A(pF*F z2G<&gzJWYb)sT4ycDuqCyZe?GtKPf6_ZxX*`lhbEncAr@jh2VJoy?qrTSDlyj!q_9 z2fv0$j3A`NH&m>~1DbdSLZq5`2>`gZWVxk82&H%0`4LDZd)B8HPcF63G~BEG8^^iX z6e&dzWj%8)63C4e=vo4hi^l|Np5bKbZHu9uVm}LT3x^VY&i{4j^WPMdnCErhQ5C{( zz&yT>g?u62YXiV~k4{HyWN)F);6*UP0844yJuxzSmMuw1VLO};5tkW6dPc1jI+GEz z?n$&4vFvEAY~|0oYdC?ZYM24oBpq(XIr00}q zTK5Z|5E^!eGtGKy#Y~IlB^RX8MDI#&QhrsC;CNH3xKO#%cp+kcyD`!QMy)~|@70Q7 zN|IX<*Qndt#VN_D?R}~NAr4hlSLTrOT(_(T`3sVOsz!0q_8dQdhnPs1-$@T_II~is zZS^|jNIyB?`p|?x^C^7W{x4I$lsMibw??Hmz4lzsd~U2o+e}|w4@qmiy6j?G>BZk$ z>D(K~`c$ukg{U#to7|d64Drb30h4Cw}e-O|;I_ zq~q7I<;hLeDK9#OB2ZJ#o3pC7*pfaH&n_=Tev@UK-!*KQwn5j|sLLg8 zdirB6Bi1hLlE`XW?t}BzU3#*o z!ta{MPA>(h{ak}GwYT5DaDV%5`XY7Da5yE&q^-y1ky5a+x*10jid+dGqjSR zn=3v^Cc+W-GE%J0haYPbv#{84VEh&>Uin@>Lh4dZxG-K$%4TeHXBIk%v$gjdBHEy> zcnzPzd2Tp;gsXLbvLy8zn+a_md_!&VEn?Yf_j8`$%k< znXQ+?Zeovo|Hp>@3x2I9jXE*JtX4}zdB$^#YFUoVLiWXkR+x$#MqS6*SGPr6mE<;E zDD7#Ftv4%I(aOQ$2D{Y5Ee5Zu*Gl*CFJ3-6F)T~`Kg!syWz7HN{U0U``LA?|Lm2;) zF15;+Wq`G!-DC9f3JD<;>n31N6ml3Y+9w8w6MBF&0CE$SLu?5cyM}eG-)HaKH&OsT zpELKOJ7Z^(gQ3_dyc99V*d`yQMw$CgvqshBlldh5P2mEbu!y9Do)6 z@RAdwwO0qe+yc2Gw&&7)@BMq9)?6QIj=Rrw30T2XHBNs2{8|=8vGok@>j-$l8}~0p z@ecwLA5Lr+5ik!X@9W`5SP%GN|<&d`Bu3%1jw%8fH0~FuQIe%MM=Iy0 z3)l<3CFeTFnW`_~g^?$cVqe9Xz+Y+x-$+O!m1#4sFGAY2<$^-m+UC7IMz{99w2`~f z`Lx(~rm!abBX*h8B8JTg4(Z%EuN1bKwQo)mM@YSPuP1OrFJ3nXyvP}@UkUb61<*=C z_fs`JJPZM5RpbH3W4`C5D=4K8=3uOwH^*n?vf`Aszugu7HZhi74!iY=oi}f$hzj(x z_OHwR%_zpHOz<5)B|>AKHaYJPN_baDIpzO2X{1|2@y@T9t;>JiQH;4Ak^O8iPep} zg21ujun)Z!dq~anV7PaS_s|ZJ0~Ush+dMy&nT&ZfpKee;)F-_#_U$!Y>AO*WeUQk zx4HKt46>o73Sh@jhF&WM(OLvk>0u42ja6|)93GRr=b@JQk(gWX-8MOvEXqa-GPTEg z`IHvoboTNYQ(~3;uf7p)#lH&&ZL19nhWL#AvKs$U5&ZuOY`)ll)PDn8b7zkb5m3NW z8({>N1sK@GW5f~5ghv33F$gf3DVfDqBzULUD!|G=;w}W+bB&!>NyV$&ux9mT7Si24 zcn0Lu8CTaSv)p*52orTex|R8T%f?=W=vuQl!VMn19sR036Zf~;(nHZ;p&Id+{?c2? z?v2a?K5XAh9O=8iGJu!!k5UeF6d!o#&3JI`OgnI<@9k76kurb`-i#U}&j|t4Q$~P9 zewC}zM@8ABNBM?s+X{l$(%+@9I^$kXR;|(B#FgyM)I0k%6h*$*FNk*C|2_{#D0ke- zT#qLbb@(|nyM(s0Z<(&PkMyVTuD4nb85d)2HyI{}9r`s(vYogcn}s=%ttJ=F=zihC z{?Z0?A<01BR1z$=O)+9KOKplMk(1{kfm5h(8p3izhrSk2V*1D~>=Pz0XW$g7`ij4SXVbE867<5XS-l6xm2phyTdt%(111~j z38Ah~b)!Bhpd^I87TN1It=b!LjN%?MO0tn|*7P=oHIGxPHGVGY=hWm94KrVtnYDz^ z$jEV}tJQLYav0ZAxa7ggM7QJVh|sxjZPXOA!+8Ww*|4DNb=Fs;;!|3kD+G0;T4p-^ z!?@D3?t?6#>RW!MVKf0KlNUY)_B-j6n3KIKt9s5-o7}jGHrd*K}aB{ z({nC5iK9iSe_L`wbq8*4P<+*|#8yYT<67F5jP7f%iNSHFptm_6)rdNA*LO?~KwT(v zs=;q^Zqj_8uugn^iJbCH2>PN2%*o$dn1wd2Do+aS6ChnUG!I$3IVUY$S)nsZhh>3n z=iOgPMjZKCXIJZ3IxczUmXh1ZhUdd{%u4*hydg)dvRAl)?!K*7@vYqW73)WcZ^X0b z&Ur?T-mz$2tx7XK@J8ZS>t2cakCmS#AxDgk8D0I*UA`K3A9m1;bMM(R9qSH6yk(2d z&Z}RhIv&IV!s3Q5$NmbFQ-2;O&Win3DzUxmi`uSnmeqkn(Z9c}=(k~>LtmRMF=cYd zXWuI}$Pb6_M;|`lw46A{w5cTYz%4RsgILtXRyW9XTtGPSL?A>&V{)hP0}VymGV;v} zANFUYuh)r)6$?exhhn2<$=fPMsVKwCD{<`e(oOWuLNFa6*NhXrZb)xS(^Oho_vdVT zZB|@1#g^1Fz)N>l5D^jj8-Vowt6m%o-P=^m1(xppnS-gmMoPL}B@tjW7>|0`^=hy( z)w{j|=^x%_qo9`V(Y@QdU-N#3rX_baefK|b$6NZAmFfz%Rto4^gvD7>cJ9-Woi)1$ zZEvidHvUu@(%vlZ@K`;!`hPVNL^}RQ!Ro)dFm?aWT6v@j4t(@t`#ONv#pHShum@Ns zFojv2B4yv3HHP#6hR|&V0PKSzLiittK39xi7ezF3wYStI6z~=%iyQXq$IJ0lxjYHb37E_^i0+?n^1t3rAhf$Y`AgW}GyX=DD67T)olVK`zAkuI$aB#u zt(&$ewc^uy|+L^jF zJZ@7|9z0h6&o*CDL0@`X$7NCFy2l?q`&}SbcB9@ci&cHn&4OVqWAU)JPSA<&Fmk%^NKenVqZ8o&CEgU5T8Eiay`kS2# z)|H}3Q9AvEr?wg!#YQeOqi7KX|HfYf6wew`O_AGN=D;x0^R2xvRb)N{#~V1o#$koBfn-;^1Lf-7m#3B(ti;0neEl=Z%)*4kVl1%fC)rIry{~pU|ylsx9EBFs>-YBA(yz8g% z+J2Y{J5bujgWQU<)a7uCY6qtvX5uP=b`ThS${Vn8cLt1}M~B{_#o=7+XOzV$=M5Ju z6^1p%Kc93kaqZ*PQ9_iaA^NXG*{*SS=7ffqR!Hc^kUWzQ&bfYCFbRvL7n_XCJJ-GK zEgaU`vm4t?79)hmKKjk6ORxbyv1q|pqfwKFK{FwSl%~BAMb1Swc1MT&!_spE`#JF5JgcpE+Gi8k!lWr?)IFUhl+q zwGlb6=3P~XdisUrXpO6Es?D|8HRfL@kDoCo%&0CtEOPN5KFTqYd=fU{eylyp96HqG z+QN1ArvBv;{LYv)pLZZadjomK+9xAm=BH5KB?TdK1K8;P(|dFH-cDz1hJG@7uPDT= zU_9drB_(HN^rHqs<=$S(Sy#E6R3-&c{)cn?qKsKr@#_OS_gk%2vY=PFryLZNq*Ok( z?n;dc#jgZg8;KB$Ckj<`VuCs763!-}T0}qYkcgzpZ>JvC3n(Nh06xTEa(47_b+;!B zcJxomY4R#0I2=oKjwY$I@)5RL9&_yMWIB&|f$$USb3#;gfX&rawJjHaZ74?I8>nd* zmJPygS>==!M_|YZ8z)Bh!~M@L>i>fqvX*n{O6#gl&;HEuP}Pse&Mb#)N97HpwG55+z&&aU_m9W#C>?bX!`A)0HH$q!mLM3cmj$FYsf^pC zxWqhl_ngn8qI2WF&ij-~%TFg?9R+}Nov4UDuP}(;?g*U+9OeblrXCduxS7LlPqXSc z_W;V%4s4R1*>`#Sjo0!VpY0~5)F>F~bQgSYb7PO6bJHf~lCAmxEmH5XB|6FEF_j90 zMN_WFg_-&mN*cy_kA??#5?;vm#m^a;Z)*-&{ zx<{bca&nyZkBR^hPp@^a?6jAp%S4{wI)YruRyR++abw;0QYa&>D7O3iOici1Fv0$~ z`FErF@K#exUatMk*JZheQ7d!j#afYQzlf$i8BHS5NvDqM9E6vJ^g1v$u6%XKz^0yx zZ}YMrO!7tHM1eapyg8kGS@#Fn@Tc^KRMYvO%22dgEPT^+HU;p_*s%Sw!bVC2>CPe@ zu0qDIcIB!aeG;VF@m(e9+)7~(#Wuo4J~Dh|tN8eDh7Pw4W^s^uBCqO{rc>Q_)lZT7 zI~jc;QTacc$_*`i3`XtsEfF}OyZwe#kBI}dl7w6Rm($^nk1Jz6pbam44D~JlJ|o(; zdU@_0Npr!k@Qa+$Bf#W~3k_c{XncGJ20&j-S*WRU7WZGuSLq0uOZ@8iAT998nCFG` ztN#BuvS-XZ&Pc{SLu@-Ye&+1c^riu^xPRItS@bL4IIfSl@ir5u9*nQlUOr3kjjG@y zNgNA&#`>-VUAOZU5a>;e7{@Y_wd)M3bPAhyrmKz>X?!`Jb-Va)`LFv-;EUU1&rY1h2{wTdlwR%?l@35u~Ij^YyqiO>-Qh`BFL?* zRFiTC$y*a_ROYR-PHCwT*Cb`K@&g(*Q?emuIsHOM7X484?s6!twKkU;d_kxjfy!#u zPgxI$!G1CmkzO_1lP@k!w@Am-+aHnCPC+jGK>dsh;MTpcNZT!53YI|{53Q>!1{5og z9#?^F4T7DX^EvTUPEOrtdxWO*V8oXi0%2AJ=i~K)sQ9w~C7pCxabX_fCL?_xkj7IZ aRBlH_+JxWvuZZPuJ>vFwGY`zP4*U=G#y30w literal 0 HcmV?d00001 diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/houston.wav b/core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/houston.wav new file mode 100644 index 0000000000000000000000000000000000000000..b6ef3ce15a5b9ce80ead6ee3b016789042e7f3e5 GIT binary patch literal 38766 zcmeI*X|rY5c^B|~d!FY>-5OdgOR{D;wv+@LLKp(X4n-v)Q~@tYl`X35@Gc*LDxlyE z1-6Nl7iOrU2qA$KP6&hqY#ck5ElaZIsny-;c~Gn8>E6r#xBuEXtyJ<2`kp%H>|w2E zJ=1!owf4C``!{~-r=I%iF#MgL{Dr^z)Ia*=y_<$%n9FPPL&LD|7lvWUuxa@GFaGi` z{-w0J^>>Q{w>WT%1GhMEivzbfaEk-CIB<&tw>WT%1GhMEivzbfaEk-CIPhn3;Mj0w zST~#;P7G^?Wy7W6>aZ|u9~OrXhSkH4VeRn#aDBKZ#g?PP`eDnkd^nbScMlhbBg4vJ zL)st9_qu$a51b7t&m0)84V&{mm-EfT#@xR#Y#o+n{OiMtKwL=w<$=8}qb;Vzwv0HJ zQqHnmU7pVkxw?>X=hI_l`ZzkD_QP-?EiVVs^_*W$pJlmnBiC;PyM3x4O*c6o5SnC}aDy&niSa&|V~mqXcwz&)E0-MyH0%W}LdJ=cX(>&MsD zaB^9&TAkOD+*y^^l@adMe4Y<9+&Ul1uBF9%+U!c}l^J`(uy4F_=lH!Uc-%JZ9$Rfr zixug4Ep68gXM)3$+&wwG9ju1o@bG4|KxHyj%2z7S5H3U+fNB}3Zc=jK4C4;^hj z^qdW^E~o9`z&f9v#{=(d;Al1Eb7T5!ji&4#?hGz_qkrDJhCRark;~?A_DV2+IPESB z`@_$@!|TKMB8&CG=lS7ausl7y5$sNf&JUuYuLPgW z+MSIq{BZbwV4jV>zniP4gXa(`=YYH zQ8N#QqF2)Mh2i&xZ|3OD9JykC-UwCK!ijr^kA*|`1cy%!KQa7;;nTy91*b=X-`@*n zYXkq@U^y2oj)mgO!Q|E9r9e3v3H~q;Y1SJVV`I2WyElcFhjP4j#ARo&I+dO$!kg#Q z{-xm$hTj~1cldw99}Rz)&-=oezdii?@Z-Vc(ctma@D~Gn z{qU*b@z8ueIGxVt#q|2&@ND$v?Ys|1{)dCf<Ey((DIF7^o>BFKSu*~>2OE5vNtl=J3KLbHhg(t_-n)G@_l!>@p!JU z&Io4c$+SK-ycRyZm-p+Tlyy54&YDZ>Gv?NC_v7icDIB>iaMzByav_);%UJIWKL{th zUJR7)4c{7NekpK|2hzHXv^!e1BM?3ruKxAl@|jSwD`$@cnpt`!V_l034utkYk<-53!UI>Xrsaj;a6G(vCnLTbU3eip zcxTk@mqUqpdpR(NV1HZ2H@CLu=>E);$8x@8_z)lr*`yki`HZ(!Y? z8T(kS%xCoF!DLNvycEpe3(xAWPLH;N-I+_9ZMnaB>~~lCnjyx9fa`0Z2bCzOzXkHQwuZ0Kea>OE;7Z-CMSNNP&p<-!T zZi(!-r>~i{d*s84^tl!uoJ}7(a3GfRm0<9L5r>nJ<-56aJ=o5TJfle)M|s>4IJZSV z?~Ps9n`>eTUScuVuIF_)7|f67y!Aq`Sdx1y!wH!4&ijJHs*JuE>aK;}&gM6Q$Gf8h z%;+P*?MATU=T`*s%3!iQG^_~>nzuDL(9lhRxHj~ev7(~2fy%!w1_!qGY~HNy46 zJu3&DNX1Hc$HSu*~NT%FAWz~W(@R^n+S3~@ZQhaiHv$9lEIB5!RmOv&B05# zf|DmR*41EmTQFJ~jX9n39id`(#=ew!1m5nz6SJPrn9K9IBYj0Xmx9f@+}jWw&X4Dd zX>l=amIo#qxDc$brtM;m=_acn)?|^&v1K`52!?PFhtn^;7X$lpUaYpb_I&!!jUzUe zUdZ(ok-Yfyaz+JhLm-L!#mwu|c4ct5FybNR7p;ob;c_E)@#^aMDFTNB|4B=XwsGVr z-dxVn)r_C-rj8~RtJU!?y`veYJ z9DzVHaDvrXn)8KxHm)Diu2zH%69fA+JKVXEH(J2d3fEYNg-|?~&ntQ3>$N|A-^ex6 zFzZR6qrhe{=lCzDqG3K)j8Ngl(|{-|Yd$7NaDPSg0R?E1b>aMcUZNA)00%Z6o)>eE zPh1lGuBPp^Ttz=>S%mAkCX0a;?I^EgbtuPU(xLfR^0{<8##>xP3;aox=S02FOTq7Y zu9F(sXf6LSI=**w@pGvl6Zi1AnaGXwxjMeD=8F6ShQhcV zME&7zOcEN#PqPL-OQAaxM5#m$94pxtaX?v;m2#w*o=e&T@{pbd>G#W*jj z0ryg_`xL>E*0m8U$K@q{;Hz1=G@mj#b8Trp@r?wEla~Ch44fu`juLIn0~o=ShMA2E zX(_WMb3O65*R;5jEA&HV%RgzM4XvMMnR{ki=LCsWx+_L{*9Kcr2MWcSEELMMA!8$; z3wE80=n}iE%{VFubh9?3nBf^MW@l*y?CFHwKH-6;l_Q>P6n&7Tvu&&cdxa9mOTtl= zgtf89yyp8E4L-C4o^0Og^ejKk)HRtuX4=)fD$ULfJY11>mjVS&@Ha1LqS;(aLgVm5 z_Dz!bRxMsS&PaB2Wv&!9Tv#-=TD)^9)=^bKgh?ZLn`OayK5f);<`Nfd&Ip&&;#}IR z;H=2!$zWq{uN_BQ8!Ky+Gr^;}Pk&TqSe6fRXH~q>ra(KFBlbpg&`J@HV6INHg+*ET z(3X%fu1&gB{i27pY-qU={+S1BMvd4KxJyTlF3VHMy_iBA3}bVzoLHO?KIM z^nn$UbE#>V9rPK$FXjq+gJ-q-lNGOZArCW<^&uKiRR#rPxFxnsEuPqSYlG3DPS0z#ahVN?y^?20mr->3)Xhk9`Xff ztW`pXzw`NCOk`m`h;2niW`s{T?+7oQn=O}fw-)1r@P~C=GeQ$DZb*E%Ba!N!a9xhH zDWmZd=K}S}82cVhWF;a$m#gw6REmdGsy64_3r|-k@)YSAPfT<&qpV0obRzMPsulai zV{Ob!1|=`wkk{TsgWJ;fa&SMEoaeQ~*>5Hfk`o`zsK*jTT}aQB89~G@n_QE#4S^!J z-j{208R7kr6BmQq^=SF2oYQx)orqeTxie#_aBR$YYEid^6X$~8!7=}PH`&ii!*`Q~ z9u4-VbN$>XmnFej)+}?C|A<^~PyQ{B=NA?-(xve8eEJ&4Vjewgtt2GZ%ssyeZlzMJ!w-);%ctJ3?yF*0Ry*b(z;KK+ga zQ&RV4?^SD!b$>>cuQm5yo%hSfhj4syS6OGs!E{IJ?SKUZm2_Oh!KyIP8sR7v^h1=bf1oM&2C^ z){kSdII=EzpInAzTp!BV+%4m1vhCfWm$y`plM%BA2#L~&MF{gG>B&QE&yh%cTl%TDnOm!a z-3J*nd^+RrPYvtMk;^9n0W1{oM{5I3ZTOxKDczRut+}#v)K2Re5CgZW*EDwHdjC3~Snt3Psu_~fEax^2On)Nyu`KnH^xhfj0pP9Noz1ix` zso&loinnCs+X4mlB5Afr%;bvrgPo>rG}5fInzea^##izvR%YbT2g39BGn%ngy3``n z{@4alChuew#mwE9k@tpjo@#xdus|q0A2>WI3o1h~n`O(a$GTiy6dRUC7vEfNqhSIEv-m5PECF?vJOtJ5c#9kq#fM7I1X@78{6OHl>#cXhnLN z9~(c^PP`QV(@vZ}9G`I@xT~AKoln=;Uo%7u*t}MyfHyb8cZL7=g_=#dwlSlzK-!zB z7f0&ma=bG4)`WjDcr_#O=eFR0Z!#h=mQ}5@q5RFvFV^#5j*jJu%FprKH%~8wn=Byi zvuJ9jR!Z)S@8Wwm<<83Bc_w{MrFG|ud_fEZ2a&J}jjA3=s$h%vWVh-$>==n3$oQ=J z$;<=wQk-?K*^Kt;XgGCaC(CXP;O%gwRl{T9NAr>u>05o^{qM}{wqUa-ka?#)fx0R`<^zVs89u6<=9#>m-1}5HH?X$K?k{3eL>#=GezBbzOOBqq^Ty^pGU}RllUm)xV zK6mBXmS~Xd=3FrN!5CjWmlcg~k2*_R#5?@osqk)TM&f60PZisW%6*w94@E~C z-iY_UoYr#oOX+tw?_=Y7!Aqgeijq~I_31&*cLu_}p>20QAIh0{mK9PhJf6O92Ae;~ z`q#7LYRAi=kF?adRb`vOS$(=Y)I5+H|D!p+J#hBr-4V!(Juug-x4aSlo(*nhAG>xj zAUkoe}fy_GtONj7sUMhl$hjTu(XzJCHK`FzZY4sTWU}u8Ww+DxVbBD zb8&MpvkK{re`ddz^$)ome}`-K6^L<^{q(!xnO!Q5LDN#$63u2UyD=sL?TuwMGDr?aTO2P1Qm8GPG&LR ztfFil^4X^X@s&`$Iq*(|4>B0Fhj+qN5sZjLu4-mm*AY9&2kwjw75~u-H5A_HwoeE4!KaJOV+QNPxFt*Q}k zGao9b8390yyW$0;+o(o`bMpt7cx}PcI8d7 zYPRAqdU__%_m6xPX~OJ8q_rb0)Cc4NCo_cBkyW#w=CHabeONhCA|n4Fz3m6Om|pwC6*dvJDhy)$ zW=E^imsMpIc7c9De%~|#@$v9tR1PrS-D@9UfroA=a>J|EtN2s^QkI; zY7N#rL1AUzj~vCI>?&v?B^uYd^unkQq80ZVwaaO7Po$`c_LKEtL(m6cL)}Sbkxii6gsyDSo5FtzpBvJK3z#ddbmfw$*S})(V?Q+6s<( z1is+9RX9Ffo+9#x9jzQPmT1*z8%B(20sQz^dA2$yJ1-s*U*n$|wy05+qqd{_-9!qG zcrV^rEmlng-sTk>d@%Zq->L|9Djf}GVi8iH`_6i`9G1_hZ8Val4{UHbWDS~Ts9wRA z9B`Q2tdxs{4Q0g)qn$;okBTp*rYoi_4XD-W__c1Y#@U~oJc?CeamC-H3Vh@0LI z7na5{T}rmF2=q%vlD`sGiUA!-m5di;khKE!nM^z6?PWQO1-1j!;4{8r$v5d zENfirOh?eHIwj{)h10v4%aveyJhtL=@RSeo$Sj^bn}res&>Lf_zVhX)1w8RoZmo_i zGqbX54ybpDaMV7m52%lrM_%ehlh%rBSPaoQy^-DHJIkF!#{GH+CJK691O894ADTwc+&6Y7{+Lm$I3b_~0HUu9z_`Tul?(jjpCF8RyC`vVZ z%zgQ4Bb8%m_vswlMgL!-gMSzv@MOG&J+5~TKN)D&3hnnf5Zu^UF~?$H?aUY}a_!mB z^?W#gI1(52m?7%kYOC@#6%E*}&S+LV_KdGB!H9nq3t4|!6=?jwy^Jfxx>-&AWvjI6o7G#wwT z$%}#Q{Mi`J-4V=MNmC=T3c){Fn-lA)FtXz;?~Ty%WWLu0!tVyVZ)9ang+VQ>5zxb_ z`q1Kq$nK>`@KSifZt-vYkr?iLxb~gQtLGwBd8a74HHqtiwJI7Rqq>^8YK=>d1P1vT zMa0Q2v+eY6Yw)zXxjMGxjzC(IIrl$9`!^#2wx3_4G3$cYeX)=ag#KgU%yZ$i-C^Kf z3noVb^?aaT$RBj8@zP&h=$Wm(V-eQzhUpD zh|!!dU(E_LNh~b3HCx58_5#A(J`!1lNM8-C)w@RV;!W`6C*>0!@!|YdYZF~D<%2=6 zvWAD&XjE`TkvxMJnwy1L)2N>DB4i+bgt7Uk#>TQXw-IBhR;eh7y4XlD>Za&NBTW&I zKl`~(wyK%S&C;09HDg#S zqhl%s>T2}N&Iw~!W0LiVdRgsC#0c_I^jS4gVX}H?{Q-WsZvCWdm9!sU=q%f1J=!h+ zFFd5j_$7L>OT0CW^(($*n(5Tfp-5>VMBKlR0 z)bQs*+3CP~Hhh=)bf=&F19)Kl!80%)3srXe(mJ*0Gm+8j@vXlXPx0-2)_<&msCJd~Ea z94}(#+v)LAVvzqe{7!t<%b~_B<;z)OnreNB9;gSiD>#KGW|~Z%wU>2yro~#+j`Tk| zO6TRkJ`wKXzG?%Xb4UE-r{V`c5uVshZdZeO+;y1e!;^1hHRX?j$=jKoDkAo(t1VW~ z?7dL&uxr445mA_>Y;fa?_2Jyz8D~#MG!v?MvVF6Ytv46e2h#^5pO1xqQ+CW7%E3;D zgRds`{(hwTVxpY=IhT3!J^b(F=jf&$vSpai7M2IsXpFiFkEr5)El}k)c2B$?OvE>K zY}GqiGq@|5>O~2X8xhc?I^Flx2S61QD%0L#!%U$@uK5vfJp5$ofFe-U_El zo1L|~q?#l)u{Na&1|!ec;Tem}qv4)PPpcmFdiJ~V+_nAYi!4zEhArf==7I&R%6)gt zt5(hGYpe&deQYuh;%@gb)i$BT-T*5dp4nhaMJy~eS(UqO?W<@f2z5u2^eXLZOvbJ%OhwrzYRa~R?(wV-mT)%bJ+2fWC25;JjS$tsZ|cy z5X`)~+A69MBk)tIq*lmz7Cu$>%3qNM`@#d5(IR>os=rnb%^TXtlG2Rs40nWg`m}OO zmaeKiqNkQy9AW;7J$MC?i)aO|JdL^u4@^VFT6~WdAmDj(c=4y5Vd!gSU%2+IsqpZu z_Jtqgmt8Vb>?AR-m85z#O_6<>8XiWLDAcF? za$x205=@k`#QyMh+UwfNbys-tTT9luT+*t#1xusX_uz2jyy*%EjT)yJEn4-Wjny9G zlEEZFxX`TXASsCo?Y+YZ`evuJDzLblZzM7L0V1y90*Tc-$sLSt%*t+}y_&3w3?q`z z8+WzEAAin!T^vi#+YeXB*o(gUh9eDtp(PZ~~($f-}9Yta=0 zT2Yzt0mj3h4@j4X~9aBH(+%?Kg%FTw}0A` zLu`Vo@Uqb1sS9x{9|a?{=?N!moXgY0x7st`!WXx0sBR*DEmr0}$)V1Cf_`81=Pqs4bEqV`bf)Y8kj^ zRn?9QHJAA@B3aD152T*>W9k2YhJQQ!tKr|Ic6L3viaOc$z!X2J0INXDLPXe}ig+*i z!L!L)zL{*{50gQ?7z`KF!*4O%8Tw#u|D)Y;dqc6Pm7knyL1wBPYwwr=+!1wPf0Dh} z{r+mQ%Rfkk@|%ITJYzhXOvA6Kpk{r}A4vxEK>DeK+9@vMvyvqjwz~1LWK#D9^77nQ zS+H|qX-52bo|OM9Y4zgpABKN6{PW>ALgUX2eC-VMIvV*xCKN*gGCYX7C`n6O^ z|9f)Gmjc7iyKkl<{+l^J6zU%xbFhu!iadCE=r*o3i$2|aCD5(7+r?lP$6bN_SYCel zKnrz1JHM^!tL%X)VpJ$LeDINO8cp5SI(*0ULYeMa?HuB_g0cVuV{!#c7RMo+tV z=EHs`>wYK0rQ3tcBcbM6D#>Q-zt0Rjl`EgkZ;LzXmT$)0rEX z@MAOlw#~83>2GC?;XrV(IX&vngvCKN()^O}{gdfDGorK(u$| zXlUv0f!rJEZ3vV%gS!gBm5jJAoG0hA;l*p|doB9xw{rT_LvdLZJk41z-)iA@i=Pf& zByWeX-Rk10OSxjL)7rch+|L9zdD!=de>eQc*rIQy#oF-kXJeoChDMbhyI*&XeTU4# zQ^DO%#(TpJPwl8vy&n4g_LJZ6k-eRd_WFGczv1NBF~90y1=5=OwVYWmupVF+pw&q$ zPIjK!LuTEqyP3@;_CkG8POv7NwN`aK(0@I)@7FT#J@4|+@b`zG&iw4^)Z6L7->KA` z37u;r`x}v=xp^sLyc%2bc6fu2s@1!Kt=i+sjAk#$)=;)Jc=Cz%YOD`7cSjCZe*LZn z8)Dt~aICP{%FaM*%rgHo;jYym5eu*V$jA?(ar#9>%hOeEkR*cVP6szL52e%J${%$zqcb@EBe;^z)x76M20Ngp+D!<}^ z2V$#X)CD^TJR4~zrk%8GtKEz52SY2c@2Br4V~MPGeLvpj_lN%)I@!S=8~$!E-knx! zg2^l4)wRHQAn-f|zzW&}A~v!zq;h>Qz0~knCC~014kah@&6BH-sWo`M1P5FBW4%}h zd(iw6m};;}$6Vla-N{o9cCXp@D_W8hznjn9@l#8~mpAkMo&0i;xp*$K?dOKS6&~yi z7WOpoA9n`lB^iHD;Cm|0x&{oy&*!5Rti9)k?EW<8tf0`?<)QMfT=T41<8E>KT+X!Y z&S0L$4oWLy_`;Ie6LUQb@cz#e&e(%$Yp>96)G3RUIj zd)aT5JWnR7D~W~9joLyRR9{*XvuCOMxc%bH()iiak;nsq_uS|YI-l+cum5K3#^bTb zs@GtVv0oP3mrwiD?bBg7%U&~Oo@ zUpAt_p1l#btB$K?cb({B#kr* z?RwT+)me4G8ux1%pFVhA%iQt%9;&*YdGc(G{fVrlx-8quSFDSsdEQk{pblp*2E0`< ztQuaarx}wE0%NJ<% zwDU)<-&Gp*H1w!Y$cb>yjs#x5Ig%I4A{(=x-Ws*F0;8i$R?jl48ENOL3PmfUv=4MucJ>SY&b`ps8i=!2Qo#4e zx8oWL$qyx7rLme@xpsX*`&NHs)picqgXEg3s2vCP=(YNQ&vI#8w+f~*rN15Qtw5W# z);~qWU7=|;x0>226v@*`qp^b4cdY^YLw~6(XX%&`rdo{IM<-E8>t^de=C>K4U+Xv4 ze2rw~+Kvvw6+M!?tl zX+G64tmV)W9BSQX(m=L{v>VM?XP^gmbJ7I6Ana8T8+3lM8LX+_CSj+y<@i#LyHmvu zTsx5D8B1f8@6Fp2PoAIjYoDSmeDM2IbltAlHxkRemfTiO#t-75-&V1L>*);7Y3$08 zx4m0d&08U1!X9r#_z9r3`P&U|2-4CEZCV>D*>cfD^iQ$6*&Dr*CYM(y66nC{-t@R>y64<}mM5T5#V1l~q=b0ShW6e{cs`%WSdyC%i*YBbX> zV$bx-1n8_Ck*Y~u0XA3Jm9FvmZ9D6*YSp5D9;18V`((cP*)=WFV)aOXH}i{UtJB&Z zSHBtNsl?0S@1bCFB<*Bik0n}qI6G;7Jlyoe7XQ65d|)e11%^7$!RXa@Le2N0Vg0Qb zyHGqWVRhqrECX#72blMEecD4!LmP4U6*cSKR+l|VOoK$5v<~i`8273bZJf}jDfl39 z$koW%FUCBWPd4r4TsxeK2HkisBkhSCK9dOV!BkQ9W?Z{BJUwq0io8ia*{5Q^7Y(!8 zY}UcaPHw)_&IK#Lq7%<7n=vXW@_&9$q$P{t|GJaBmP%Z0zfX5z$OqXwcBVQf`=@o{ zK)dl|cvr*mZE3M7Qg|u&|55l0$5mr(VOzl#TBVC9do{BWyihdnU zKQ^3aP^&aEyZ@ulMTlhOhi1K1Z!wm+Rxf94RulTQq!(sKb5+bzn7w{#Ik3 zs9+c2fa5$eyGEx({oMs(wzJdS*`&(PtMZy+K`)fDb|Au>pH+4Z-iQ z_}!S5qwH@)>+Fm5JE7uI=hnmg!UIof?$|5j_ZM16>@!s6D%<0U5IfdX<5VTZcIffD zTcpl*$|d~ffTt@xS&0%-CowV;_0S(W$3u$NXkvW|zR5;C*WraCW6)ADm|b1F^37h# z^ZAC&IkyXJKAKK)>(hQmFmmKKzSts|iR5@RcCx!DtJQurL(SW-Hp?_shFByXUS=Zx zl|_*aE%XGgcmStlGx7^QLtH}x8=b*krNC1))d%qtPs=}>Rq7IrC9Tie!NcNow2$3_6o`{MfD;?IUoBaCnXj0K~2SI=yZqoZkB>F zTE?nQ7*uyUs{SP3T){l_HeUCYvKroArB%Gmd$D*T0Q-H}ai86VWF#D8AG{lh^R10X z%l+b7J~jq+Y;+PsJ^yYrpluUxJL9$1vN=P&59?70HTG_c-mA5sJ-9*|;271|g;SW* zr+bAXisui!&{Wya`f7J`E(j(Lfe%0DB;AOHgv?AZ-SZ*?W6{3mhmBLGG4%k+9~_!L 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 literal 0 HcmV?d00001 diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/lightOff.png b/core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/lightOff.png new file mode 100644 index 0000000000000000000000000000000000000000..e7a7438d8f98743b2e315d461f4dd34f59da78c0 GIT binary patch literal 2742 zcmV;n3Q6^eP)XcDn&tYUl8{V(HPC>s2J-S$JVHIS4_hgmrj#*A}%%VyJ=j~nL%UG zh+E^t)<)~#F5!(+7uNPsh2Nbs=~s;RDAX~T)PQCQa&pHc-#-heG8+1Tcbt|Z$Cdj zQ?q7GRl9a=4G^YMrAqP)7;j*>die06&dJF!Po6wcxw*N8#l^*2D^{%d&4L9Baz8l$ zc)ceM-~0Rf{}P*O-n_XA2?{zXM~hT>!SVZr%DfQBhGMgEW{sdH>?Y3#qs^0Gl>87#o1)eaAVB z7XWaCRBeLdwWQPT-MbZ3DQ?-aWnZ}qKx+T~{X?icmd;DK$y+{{00`*k6mnJ}XZqMj z7Casi1!V!3{mhv&3b~L006{JTm^EvbFN##|=+UD!Dy>87xgpFF5w;A}b$ZUW&GiJ;PL%WbPZrnJ7UPmO){tjxP zke=Kuk)hqA#Ez|*Hs)wXThG#u1v)v8seT>>zD`t(RNXaAZo zVS<9}N!aahvnjK@|5ge)Z*QX!>Bt&F3i0>c=nN{-)~#Dv;QFjyz50kt0H#fw*0ENt zTBpX3A8*+2IJFB3p3(qdCv_3rqsg zx^<=X;5qZjj({zryvP0f_tnmwJD&oOKa#k_B>>!_qoenu|M@Z^B0@iV_RQE3;KNB3 z0yuHvgznL!hZurlq|qyt0zjicMM-ovZm8-)N7e)9I>7eg!i5X0$UnmSU%bn<_X2=K zo&xW07&U5?Xg?E~07wBom|@S%%#(V!lp#ZgR3`;MBb)O=11k^orAwDg+qP|KtVF<`i7A~H zD1H9?dDE&@E2+ecfOEpLDzi0-kB`sCeM3Q?Y_|a51~ppMvSrI?bfeOJTEZg6*{#I& z>(>oOOMVW@nBd@GIY*ai7#SNRT5`!5g0}}7Is_5a$B!R3Nl8f?pgz;z$FBDVKs7>m zuk`8D#}A{VbfMg=3Mw>Ua+2$q*3`|LH&u%kE#w;XHL7vr#xe&Z52O_*4M{<}Uhp#v z{OZu5LwRsY%M~kDWVjW86@}p_`#bvf?aO2%haFXxszMEihZSg~K^aG5$HYY!t3V$O z`WPC|-&*xSY6-z0aSew2F>BYZeebcd%ro(nDO2Vl0 z&z_}cHK=D;GdTZ(R>tzafG4eZ#0;PywSQc{e*L#)v8T)cph)EIVi+*;yOChNpX+$(0~%9W-p_I%K?3aG@zsy_k5H{>~5 z3~A2nZWPAq_U+q~4w9Idy3DzA=Lkw7W=XGxB%8~ZFLRw}2_iKgvRNkMKNx_$O`bgY zhbB#$jABxw&9E!0x_$e$Pz6(*C=ayXFd9f?NB0W3)S#3>vd06=2&hh(jdvNq)TvWz zBJ7tSi@%`C`1<;a5}^%H9XocE$dDqa-s;q;Q;G`$Xq`pDQd3i@N;$Z`)w*@--l_K= z1pv26lP1lAw^xuJsI-!xXvB2q&Yi`hY&W~;9JU9?yWxO&aST_knFrcIj$yZUUm0GK#&;v7iiViY)07e{udP>5|ta&qzn@PBK00ni8D{V_5!QtH5-J$p11NdRyeofVn@FfRyzt5>g5fxg_Z zVZ-0c1pv&;Euch~J9X+LBjf)4`&k!6E=eQK3!DMCD9qZxfdw=QM+B0}1pwrL7dZdV zkdTlr>^9NY$YjOYm~At2fW1)n?%ibuxOVN@X(V+oB=I}fK0gTnZkX0;!Q&4w@OZ#L zM_*+3NmL{jJG2)D`4O^X$Br}?AL(`g?fw1zPeD>OU-EHwW&?+gR3m8(C6>>_JZ$jY zq5}sG{JvZP7&K_m(q6rK#S9!ckaMjxZJZ5GpFS;9SZHV{yHXAPCx8Y}s=MV1z{rs! z{Xv%;Ol%%ZWEL)Vqbyoz+N2Kxy(qD)%3~4|5`HLG0EP}7`e!8R*HKYXd}$#OU@kDB z+3%D8pqRXw%*x6d45ivvt^l-a*RCTbuS7O%n8svWL|d((`7+d_58|?lK6>-w5R`j{-@p2t z0DQ0qS$iP%Lg@dChM}QzkhDE~yuDRgdb-Ze$uS;U|CFAVwh)EQ8`p8akNuvtzxZ4L zxN_x>y{-kID)wR;=;`Iv9%EvV_3|#GxTxqXjx1dK2a0^`nHC7X!1&<*UU63r@IIcF wXML=rrv*@1269=O?|uucBme%OG17Va4}$x>i?e;n$p8QV07*qoM6N<$g3Z@Ac>n+a literal 0 HcmV?d00001 diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/lightOn.png b/core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/lightOn.png new file mode 100644 index 0000000000000000000000000000000000000000..3747a1cc6d4657353192628e71e503a81edd0a7c GIT binary patch literal 3555 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%0Dw zCPJW7#~GLV4CNdbD`VUJ?ljHFJ5H!ot^8{&a)xD{3F_(@hRY^Xj&qm9*cj{7F3W-L z9<+%Kx1s)FF2*-JQxRzdfIDP05t9D^2=d0t$CvU(MdYVE;UCjC6Xu};^0 zk-;1(4Xh~4!nD%<0C7;9lvb0KTQ;NkRUALHB=M>I?!i}H~|7uzj!TfZZ0n8SR=S-t^t(k0FcD0 zXUOEH^Iaz1W0t z+_XD7$W%=sYZJ%|xVV%UN z@!F|B`8NKUCI0lqNAhA;oVD^t^HDq_f#xaOY3wM-Nw-UZERYI8Zx}{c^P%*O5FrPW z)6TpxT)+%h^E#D0U`}R!NPl|vTrtTN-I}(C(XCmCVKF&2x+;#Z1t0*f7MT-(w~lrc zaj~Z1Tz^nSk8aBz?>3#r*YM|Q11ik4(v!B6t(n*2T&QX*g5w!%)6Lxt<~y~=WV5ty zv2L)-Cfjvv^Oj&?)238HzNVlH>81vJabO}v{1O)IE&}Ksy3;nvXtO_3Xp^M!XP->z z1lK==40$*E2M_#yT;e{{k@H#03NA9(OiW<&ZoeEo-_EfB4L$+ zSuSsLCv9!2mMLp2vIgq?R-y?jr|_aev{Gs6dic;|wf1>g$tDrpK>fo{s?6q25c3uu z2~yX-JE5S88)kU!ToBMf3=xn)p&DaA2&l;8t)tp_;5_1GKE$8L&0}56u%9Vt_e^_j zzj=uxedBwc-bb#Ty52+8(hW5~NFl14RcbOkaQAVz@$(qPf_mp^z&R*N!U2 zrc)V}KAewqz#$Q>K$9vBC*h|Y@Q8AlXtYIgplN0W2f_zDI4Ou(cTL*gZnKj5;ks}| zn-XYAtyqArR+9%x~}SJDTt7w+3Ni$4!-tXH1tG8lIE#M1=aJKjEuz z>8PyKJu35I`=!u+J1kqKCU?&e=sTxA(d^{7o*V1njb~=MZEclwLLRlGXgDICJlOFk z3zsPI*g*h|N&f&ZtLKftqcLye_=lA-*zjyJq)Nsz_%3&qUfXuTz*sD{ zd7z$X=q6cb>a=vwu&$Lx;7B9UpNOq{w=flKRF!+x=Ac`+ySL02`_A{Sp4iwzu2t@1~Jt zoBC88KCFNM!huv0emrsi0PgfyJrNn7HtkD&R*$q;CMD$=cc3qMGGnpUKr(lzuhAU#2V!?KQ*s7d=VY${?~EsiDnTzw(=wrCs|4>hbl!0 z@aN%+-oaF>_c%sm9mYYORp%f22^xjYuD1(#E^V!L%OGTxWO4#iN-jXwxeaaON@LZg zAzXljGFLer^NBN_6;W+FX}y~A>e4wckZDIXG)WYzuAfNK#akk{wF)9ha20cGfDBjC zZZ=k>p=6HIrCJ011|g%adcvz1xmq5jbc@(#xiNrkkr_bpt|jCX9{zE`%~L{_6m7 zhef8j1Nd&JknR5fx1#P%h}zxSo}(_fgo;B&DN?luh$6oHZF?WNLxanC7pg$Sw_~CC zD%`qFkjLBzA%0umHe21A_G=sT>D*hkmLwGhpD?c@k3i${BWMzVc$GZi<#L8y-Q2y) z%{ZA{X=% zR*ADy{hsVxgv?8YQc(w0x_Gv2=xUICCg5^eM;h|aAmhmAhvZRLAT-CBA0Lx<9PWWj zm)2Xp%_DtE^=%|M%$3oX{nO-e%ya#gRq2qruWtVUVI=vw^!`Ye+r1N|;w3=&A0T|x zo*3q?<2DNHxV*^O7aDk@c6-&l&SEMR_#CNPdofCM7>8Fyf>;VSml9a&zm0%uQKDm2 zkw?mZ{#c)haf#c}XM3LpH^I&%G%BlY_i5dsXMpN;6?hoY)7_m%o;FA!aI%XQLmp#s zxJPMHZNM*bpD0i=9z~Dcggd6uFzvhE>Dsfk-ot$*i_Qm9HPZ3PPHh{8L*!{(D9nR| z%J0u4-X@mfcdhNqnQlcv1(?-{{!+(>ENdQQO*IaYE67ZvaWILX9fZ06Ixe<^H1&8e=z`d4x6%O1s9Zaom`vn9m}G$x*nU5yii= z7)w({bLm)!28sdobFLikmvjH)^NDnD**gf2P*y3E$~*^B)1oF z+b5}{U;zVw;z{-lTA3haR)}%{T{mE{NjDf(R+jc^2wo#Blkd+N@DC?iOu>`%DW)X{ zj}z@UxDc$@@>Hx~`J4obAhJ;K#B7~%?Uw9CJ6gK}k{`o94du%`WfO&Ak(v(-{P>FC z0!1(P6`DYPwOGdttQO}=mOB1jDmd%#@x{vJg$WF=+AT~6>+e{^3MxTrX-JS)!;Fqv zt@aKWvk=)R5i6NG%935O+E}U7tuYC#uP_d7MWqFzW4B0meb=kK&1{AGk`vR3P*jN2)c*j& zDd&kSkftvfpoC45X%}SEv~EV`!V9LhduF(dNe$kUUv$~ev?&8yMj?zA?am5gx zdDiH3%QQ^HEef$;QS}czQNNMpVTV^~GZyEv@7fI zEtWaI_RnrMN;WZ;HsilVKeyZfBSe?oo!eoxmR+=ky4;m+?`M^mm4twh1y(dps9jX2 z!U3nN75#_(dRB+z;t<0Od_gFA-r=!?GD=a0XWh5%r1w(`8x{rUytzK2pnzLR{r>=F zJK!s(u?P*28Z03hStpTsBO4EFtYzcdz?KlEJB`i3CSzKwC1}Nz@cC)vaYK>J6#0qI zLDc+J+PMC&lxg3f_$NCJsV(%!5NRb~73O1CV4{IRJb?EMb3DFXm&xU)Zi{A$AyCKF z9ksE660F*#0;DPQtp_h3ZX$(Y9Hdm{ev~RrHIIdPmj3{D5iAojszLr=M3g$k9=;s# zB;zUitd}MzEneY@+FDzUQcB=aQGBo>1e^r!+OA`{Z&P${<<6KsQ{@^37x?iyjFsW-)wK}C4a+=N1T2!u1rfjL zs}-lGI#%)eTZi$}H})QhC$s?<3d8N5DRdaV~m!@4EnVi@;at(BODI=c9(o#r;pmf{CW z(>+kIU`X~z*pfx0{m_8%_#j>3YQu5cl~+`EPA$tVLu;>~f+!a{aX8NR2nhLz@~hk_ z6Nk!f*e8zT>Gug^RlO+CPa=`1GLRmmaTNjSk1zK)Y_d@wWU?1eQ<#U{+v|+Gg;3O12%%WTDe&c%SUE}6s;U4hN2;J?1^}ssRdPK6H6ntaZyXdt zhQi6KX0;bRm~RpdFSqUn-dTq@?qTXit^L=D>HX|&`%Ru>0=fSHcC2DbjRv^iSdOM6 z6!ZIVicW}G?sLSw833LFC{gn?@C5SmI4E3WgOG+*gORGsaog6@YoBJ9r6vYk#GlB?@9BgJ0rPj#Jz?bF8$Y-^F%b z(a(*bwD)!gQT*0D<9TUSVAfk(06_w}d6P_5<8gz!pWS);YhkHb=80^?b0evh4Pa=I zV_-AXtXC&oUEJ%FM>e|~n_E$JH^)Dz+;IT#s6IG~MKYY%CgxJ@@UBbl=S(1y)3Hp6 zaAuKQJmG`|hoqt$^wY-@MFpBBOHwZHXt9M%k4eFBTl815AT6lfH55Y1=S@ype9j>XLW6gX@$`Ff zhBhm4byQL^AxFgDyWfjkN=)YcBCFqK*!YyYv)$a?ME?L$M?@e7reyKXnCdGgLo1)2 z4io2PS_!TuzNezybSVCJAGv>S1Cb^Sq~k^8>#Fv(nOi|43N^!PKipi0@5FUQg1A#A zCQOD)Ad+TpIuCXtCCVlB1u&9ais~w=&k7h}1V<6Bre;x6-ZiPtnGP7o3er1abZ)JZ zN_xkpQT)UEc;RSJm288EVW}8Vu^=s!Ea_rf&CVUlOBm8wZY!-#v<6waZSbDFm4+1{ ze5$9<6Uz9+IY1&xwi|oHH&$V$;)PZ?oX>RN@#K>GH#7f(t^lDf27XX)%c*o~#r7S}G>6{=mpI(BkKWg&$M6*OQ+@dJ_b#@uWS>ny)p9_nJR zJKSriG(6UK=oGwuB<#$*ud$A>Fx@jxvp$v{_Sn5CR<%01-snA|SBMKe~T4XQ;5}iggQd(&ZAzF~kXkzDsQljBRbRC@X3!rb$#&TLLImUYewni+n5T0~)l%R|7empSb@30pPRj zCUOvn_p6&Z~}mG@#TrIWZ-+&P3Y$?MgS4Z!8Z(=Iq;gy9K$>H1EwstC{j03~U` zXlOLlalp$VkpPi*?au!Ic<#-z&S@5Xw%TazE*KiHmMIoqlauqfbR_U951uytu(dOZ z!P-y6GSBA4rxH7^!!)5~c45Sv{rvIcv4-Ndl%;J0AydkjQG#+*qh*l;15j|&ff-0H zGjVP|)?Lq;4!6`E8O9oi{w#Z^`qcMut3UAzlJ_9i6&bD>THV~yptwS7z$BH4v;P3< z3~tQmsK9Er-ANRhpqVwtAoU^0f;ccfBbFXuNHNf%fiW%=yKcoS8tEaDNg|xAsFIS- z9Yq-GIcB_QIb)6g0BH8H=nG@}59C(wwsQ=u*)FJ;`iSjY&eb~>HquQrH*J|3WMBnP z3atUh3;r*w36888bO7OWSs{)}HE2}oUjk`Nb8)bMK}l!3wHFre6AaA{yc&$~tFvsK zI{fMSx7fR-w*EH@TWKfy>Y0Q{%zCvXwv`9t{kZgRV)r;st+Fg*`Xm`CCt~+wtdmc- zOJ#2ohnC{)ObDuZ(T2AF01BLMLfA_}55p-N07Lth9fH>C-W{U+-$l?yxS5p3I<1=x zEkl=wEKLx4hEeZzhi=<%H#^wu_S;!6F6K0j2vo@D?BF~}$Y7LGB08@9we|%4z4|}8 z*zQ3;Gr1=IRYDjeL{!F_hD=pZ)|qFPEbwgGbWe)Q=Xv2Tg5})|_;AN(wR29rF%icC zVu~es(j$*710r7qWnfmJhXOJijB33@_RdBS4BFVWx(Ca$lbzLi;@&Qk? z6eq@*4$SItY)N2K9GA0P#DbrMK4swE%v0NxYPh2_$RJSJfX);X>8%cYutG1Q6DCL1 zqRKN%b_YW0Bcr4Yy?-Z%t1mnZ%z#Z6B{OU(`EWB_TgfwuHDN;PYm)lMr|dlOPnpR7 z0IWc2byj$^Jj}WT#~T}mSz4gBdRrsx_hSf*tzL^$JsC)EK^jV)0=)3*HO)8e!}BfH zM~bfso|UliP-$QB9P!Zb=-U7erDJlgGMQ}xIb&?LwyP1LWdyZ3*E5YsLugs@mh7&r z+dElMwGdrZTX^Ta4y9ib|sG^FXA`c;pF$|quaQb0lIMRdP zgiaHLF-CZeI<}cp4wB-DbCS4)?(VXJ7}buE)oN-hS{i-W#yD1;!X;sG^f%@S8FWb9 zIVeRcK43;f3^~y!nPO9z847z2S$N_~fZQA=mWw^s?X>N& zohM5C?t@zsP8@2@@5>j=;xtfzQnzsTHt!@U6@o?e5VJ^1wvvfMsf#hIKA%V;l=(n7 zl8|L4QQaXJy2-q4S21lrTeMNHqeU8~eF>&Q1G|&ys@AyHwc`hlp=Vd-n;i-}u=YmO zcG#!6-ATG+E4xJrEo^QmYPOn8MLK6ZwFBTWgF68vm98Sg3lv+mp2@dIVRLmHx9DzF zZOnp3S&pU>!59wh8^*?(-9r`}SYbmNC!R)C-KDw2;z@5JS^5&qb7^N4O3d=e%n2lV z5g2+yXI%8~#-%1!0>dhWf;EsyMPl7I88%d#b}{YABQciFGG3;pip)i1H1emGE?39H z&oWhQzoan~y*}}AJ3Xe=7fKpdM#wgi^GPA}#=idmekQU}fO!>O0#hv&eWu-GWp5SD z#A$thEgI4p)UC29;WI>Zyo>w+>93BRIh=brR&pd^4=e}Ve}~0hjWDEcK52AC_Qtq| z=1DbuPUm#$&2~j)47mWTC^XY8AZY_EU5^^7p#K1D0*BX}q{A{PlGkBa)2()Tll(#v zO(ULoz~_6Rm@u!)56rD@Hv~h?Jj?P5$)K7_7>1Uu4qQL87$hwqRd(A<_NacL+U8=; z`p5xQNyq@c1IGkl$!=TKazQ{;dV-Ds_|pag74OB9A4>D%op_u&W>RRPnJ9COaxA$L ze2x|pT;KH{y^ULA+fPuMLvYdN&c`7NQ^)2w*!JEA@B3%=jTH`WCvTEJaYDO4wHtZ1 zWw_5}f@OWiP)LgM<~oFd8ESr>8qfLGmNN+o z*b9*Nw{>4`v$xX7QV0thRdJJevybNCijtn`XGLZZV1R5NtD9!maF&%AG7#fX_=Bl4^bU22Sf1&42TpS?O>3+QZ}1rJ!_c3}tct!@YgOxgT-4p@V+E`j(86 z1X3i#+PeF_2iuL_WdA^e^vS}Xav7C4M9EzhNB)i39(zs2prXP zkc(1SaYJ0P@IE--;(H|dJY#J#5|}xMRbG6788n7FsY0DPP}C9eayZ82!gZaK1~MHA zo+J?Aa*gUgr0=cyjTvs`is2P=H7U{{_#eZ^vHt+7m*H3c0MfaibRYICyO!51+kMAP zg34oNLC4g-q4$h*G6j}=WB~|&ckj?`eYV@$fbXU=Y^Q;FfYYj+hZF3>*+SWqTTT9X?u27vS zP^%Rq<~7G{?DcKqN2BNJsNF9z(X@7^%NdFri)gN{7?x>eQ6rKTtjy1=iQon`qa&lJ zN^G>S+V^aF-m)@f!dkWOk=}5Evel> zqpzL-#TY6EKNSosQlwN=c^m-=!BTi_?jtcwft38LD!7w)A*3*Yh{)9re%W<@@;4^i zP&HX9$Vki#g>&F5jLv7bRkX+}l=CF}N;hd_mhefX*HtR+?M7-2H932$j3UuipK(`h zmeOC}EK8UtQ)%Js_nbwzL>V0dHZm+VDZbWi_H!Mngl)TetsXE{+>ykFAGVn1Z!sju zmvy^Tc7O-f9gfo3EtE&_uc9>{w>(vTs#ice!*V-**U^cHxVk1ZJi=4f-(jb}7PwS; zlg@!x7fj)sb77ZWb)8vCIp*cUnMF3ImSv!2fSRpuI`;Ob&TT6&C(&2ZEa^_bQ|De(fwA&d0DRR(oV z+YOT>1zeVQ*Oww~(n%IaU4KlZeL+GhH3R9lL;U`)1vrHAOx#u<#TcMRHXo8Rwrz?n zA-i~EdvH3o7D-lvR{=bQi86UJRJScFjLTkR#s%g3r~SSI#at5F#D*Os-{OgF-M?{t zb0p!5Ng>s7bt@Lk@jlb#iL2yMML_)r!mcSjQOZOroz&2oE#u`|%uzP7*hN_sn}uo9)&t7X8;u zvJNpLai{aPG`+KcZaa_IKQ&XC%JhQ|xTLPq?A!hJN1eb(PNXd(6chtgh#&a0A6ezY z#+%mK48>8Q({@jt;+sV>cV6{%2mAZTi2hIVh0DPjjsqQ?HA0$u5 z`73-%iStY3ib$>dpM$v+ADj9Xs2ZOmr8=1a-lp%Dsl@4 z=%%DOT%&T?w@tYxxs^@K3Z=S{RgPXO@eD-(Bv>hlG1YS&+iq#DB)EzNnp>SUYLLv* zFE7n0jpy6fF%ib4@!N7CB#oZh~a zQ^fgVUQN)1cSvcXimlGUeudfQeUYuxZ9=xus@tWo&s1a5tNrgk9CKc=+-20OrXiU- zO*^boNPQtiYf80z&yFkt>IAsJOqkK9^_ZWz7<>T57R0e z=e8@Fc9p%&uII5^M(NT~Ydr9gQe#PwKaZU<greHjSINAMRhEM(96g-AM%Ls{Ssj9Bgqo_i_C7 z*|o<&eu>R6kj$g`t?+LVPZ)PrNuyug!bgg0D*4@EtZ?SKkTRqe}#d0(sSz->NOkF=s96PS&(p|iMM_i?T=C6wjC}QzpSw@X=C0KEE2eFe+uChb>m#gU zgw=>25hvfr94{idPQt;}@uK=o=GBcO5=?wmXb-)qhL04DNC`T{ak^hcG!r}#MPaC| z)4MT|Ln-O7r52j#t(QDoqmNvHh$nwe$G_x&rF$zUh1|{$)ZdntW;%T{6IWb`;M_Ce zk4F@U0Rhov?tG&AJe5;1H79{w>M+p>$wlS34;H6-WlH&+sf(1?zCd?S**&11$S&ao z=*@d>rdA_O&9OBSpx{=yYhGNKWO-Aqg)yokG3oiPZdXde=l=i+CwJ|OE5-V)s*!aD zp%)0)e=T!QXAfp9RmdPdp#g|?>Xfc6E-j{Lr;NuU@m9+(9A2(sLBay#RRyguOoi9f z<@Vtao!7cS^1zUs6%vCyum&jIM8nSjVw_1`Y$XAcJr$~sTDWD5eto&vI%=)c96F8k zfg;nDTm6nP=B>ds_Ey)>wQH#du788XFOD(2%KacdC28=g{m0-D=2>Kz6!=C}uZNZ~ zq_o1ZnDh~XSalyZNbbGLz{nzs&UY9DiDJoxU9}xiI%ts z#he$hSwYb~Fh;pS$ko4#D&>pPjf^(vs76(}+%mckW7^4Sv`u>|uUhf+#>zC3N@=E92K%wlQ+3jS+vf2-7Cn_zBzI%Oy4}3@2FbMBnJ0Y? z1w>$i=Pm(j_nb{!td4CVyLVAeHOm!`nnk(0-#d!>J;9MIHkbhxZ#{I?jT%KzDe7fDU<7Vif5!zx$d!ip|mq6*mikkQ_pRO-7Uy_hNo03Rl?Q zx2aLz$Q42Q^jwc=+xH#&c!rgd>h40&v-+r@)?1ex)-}uwbr;zlJzi0OFcuwAm9uhw zE57#5!)t9|kVLGOF(*qhNt6cEHF)M~-Ys5O$&H4XXa4|fvm@DP#=YnM14O|Xl|^KW zs)OMu+E2Ye&)tmD`jG14v649=XHXA_%#wKw{{XWOf*m9ubg);pF;Ja#%jMJv75j7d zVy&?9vN#qg5uG~E5v+2@#5P{=ahS^UrM~IgcA>T0%_h*BjIv1?SYc3;$vJgc^vI)7 zB+wlAV^7=p65b+Dl~?3cHn`Ot*!yp3*%IVfTP3`=(k%D7DWu32fm9DjRL+2NB=f{P z&QZ2s@fsnft)Y7*{lpvHwXWQPORZX(qf(*s9?Z{%A*f~4k{C_0-mAw9QWROPS&TOI z^%aVZB#r!{fO|;A$TIy95|)dZ6ENx6=tgu(~q=$nbB_$lwkm$lE%M{ufg+6I?Z};d*IQlcRH^g?fl#Zb#;eKW-tj_YUf4AGDyi zcDq|{mK%i8#U%DJ2S)T67{lvT8HeSJ{#~&!2UT~AT*R9|wQO&5y6?+%BI}mVZMM`n z1(HgFX}}#To;ittU{Ci*t%qaqPf!si{kB@MEw0Ix&%_6>(%)#)@5dW-2!);#S}`~Y zsx7wF26b;P1MbEso1!Isb!BBOyW6~DrsGRfjSe0c$`TS9f|;Fho$qwt_N&{gbz6yM zwwIMn@m$5*>XC@~CmzPUgK*gG<&pmY7_O%+=_k}i ztm)yOo-17#iw@lt+Kh|?>X|0Bx9CXH3ZjiwV?j}vIG%>wJ}7PbO2D_#>4Hm1qji?4 zGOz`}BZ{dU4<^OlXSnVy52~ld;cX8uq5-(=qi(sLdv$iScIsRqHPT!P$cyn-zZ#Ek z8rEJ1Cc`E!Vxs0z5FbLZ-dNdRK(X8^%Nfo$97TDn4j9{ZAcd6u(x&O!_g0#vwg%$Z zcn`#1?926!fE`#Smi%3HBCzeuaya4r{**V+lX(lR}xA( zQx0-@gwZSQVyIJM+=G5s_taCnSfMk z@B)=5?gPsa1Z8g7?#o6kUaD5D4t!Ud`>@jq1V>I@1H%s#C1rlyu)W+3=R}+76=HTm zL2Ws!kx&jogq~QnOA^Hdv7!gvQCrw2)miRV_HitlXWV2z<;f}+r)<FSa2nh9Y z%Nmt(X92bhMshhjzD_Kgcc@e6QRSI$>&?&5m*(wW^NqMhO) zq7#PEv`agS>zPf=#8c`V*M}toAUu|X8uZf`3(YU!N7^KTR7j6P?(N>SSkcPm?s z?cyhNv*3w@GaShyEYB0q+%baAR-*M2t07%Kf~JDG0)Mj(GJF#&C61B``ibC!jufMm z;aDQbD^N8vP;wsAhuV{Us}R?*cij+vMpERB;Pp%mxs z%gmeZE+LM%f$?KQu-lBl||l4%ulf^}-uz4Gi-H!!Y6$p$6PXe z<&f$4=z_?wLAK~(yY5ZK>N+|jEvzgv8X;XQML+d5oJ(oYBnA^G0w@lk6^JDBIp7_W zGFtDuMZN5;-rQzIq>{x^O0*-Wv>)KayjktCC~b?xrA>;??n@}NK_Mv&azCWiRg$2Z z@-#T@p=4NPbCZE{gw5Ml&${1T+{qHUTR{by5-XB3wR5lWW6D3+kD+Yh3q6vT)Gn)q zH?AlCDUo(KK%iL1yZzYaKglPmxa&Rk!EY_JsU&FWN|geYp#**76Vb|)WC%G-Qh#?k zzWgU-KA0WaaH6z~y;Yc;fC$_LXn5n%{fxg71Hof*;yprF+by(@3^80y6jBwbP~uhu zQ`4qBM70#8#9eFC1XsX&}}D*{-1CZkYQ6ZG!63_jD2y)kxfF zp;4n!Xkqu`k@r4qsEi;7n3AG7MC-y&2@qz)ZCSiqmL3X*MFz`mfhTWb;$l9X8VmBnqyFgcK-lv z*ll)k*+T<;G#dV#mIg@FomzE#L<5knbjuy3oKqs1T!1`?qinf-c5(-R&nyt-_7 z{{RWkhYf1y<=iwslFG8Y?K+Rmd{>=4n30r0EcY(Kad|h?ZK|nr9Ypr*0ttg=9azzI z4jy;`%A6$8&w>65#43RvYYR#Q+TTS+A}mf))~014;litpfXaR=9YkE0p&p?=J1!6UY{}cEm$u)zzsN;(C8GXO5GJM#{%>vH5oi zO`icD+U)+C(N;zExz_&PLoWlNn*({gR-?GqKu7y4>-`KUqZcK+wO0&iU zp8&ewWZ1B`n(c?GcIidrtDAq#`!O96>aED-H|nJq!+__B-5|1FFd8Bpv-@x|DJs_t zlC?%1B~MrU&zHl5`AL3N?wIa-Yq{*Zr)`MGZ`4JfO=x5ab*opLiV4PbWy2|k4}nj2 zuWd8KxLH%^cL>(v*@p@@#J}NeJdm?tYuoPK10uB@m4dLSATXn8BY`6)Ky1KK8nyS1#xPsWJAVsP|Sg-Lw1Wu(#|KJYTGSl z(h4Q5y0(EpN8(A;CB2yF_}<%rDb7;xe11y~{$5CoK=JB~TSX+Su|&0FlB)QA>}cC$ zYl$)~5USM)SXgAE(d|acINf6t-IfBNfu^KzCx^EjXSw@?uPq!!blff&sAn=nG^u7q zI>P#!z>~w>jJ9=kX-Jf6p{W@kZ#+uLl%iQQ(|{&{kDq|UL}4W{9+oP(x#D=!%;C-w zS+3=sRT9+}Mt7u*As_|j{{YN<1_DI36NM&1SkpYHT=;*tEFuzF?=NjEEhW9ZkVR<# zEi8x2mzy3~P>CgiM6h3;`?I`}*S}64- z&d4Wi&ART}c)i{2ngMeo1rDJ@M*3JQC#&Fk=spZ_PRk9$Wq)YaUAzZ#`YE|J!ntEs z)5p4=`wV+t;k8Z|U)0@4YpqQr3py|r1COswX@;+j8qb#>sX+o}CEy)qw%8dkAGd~hPRI0=m0YK=Ss;h6y`Z54H~^>rVC6gsM-fctSHKfy<$ z!k<$W%G@<(w^WtpLZkXhLc{|6zYBYC7QjRcdc^+#_Vr98{#9ndvn8F1rjm~JX&aem z^)__RGs_Zy<{rdv$L# zP{RVe&c)E60HD${J~*>a65YU&)kiB}$0#pn+`Rh($Ph(aWr#aO?hwar3i`u@T+aiJ znoSr#WsE%2Aw7PbNU~X9Oe0uzymgFLfQZ06bIjw(KiF)QmhL$umC{oI2!Ij0o2Vh4 zIE=rEIc1748JLyMlu&720=!QQLB#f3ZL8FA5&K_Rd=X0U3o9d%JBv=VF0w|-4y82| zU>o)vQsnULFA?Zm@r>L4p)$^_=69xc{6h;Sm9n}8-({}O26r1`f?d!IV zSCORCG6h;C-k8pU0wpO!KC5{~B@Eh-}*GpZ}uTTO=7*>ejg>p^ofG*=)p^^;bG zl8gZwl{gWPI`_+W^EUqgXj^<(`7)(>1at4!mXfllx!c$26q?oGtI7)aGD;8lP97Dv z5>^dkVSk1b`i*0BWY^oWPHhdP!K9H^DubN>^bzesKFnfsA_*1`kMsO^sScUd^s7yU=7duDj{{X>KlvuW@g8tF(Hj%f> z6pHtY^zS5kTj|MDrdQN{6=fWcvmAdO_}9rc!d_Sx53Gl8iB@DDEK+5pZ6%aZ+(4Fl zlzL*hu}TGbRB0^*O%;m+=&cXS;g3{@B30KJKKf=HORRoA3kFpQNP&sRr*ylyAFHOJ zsTV39H5q5a?8iY(5!e{+e7eiF=^1AXw`?Xgh^CsfXVN?Y@TM+RTwPbP!b2vFzW&7O zisfEoPeKRMSI;`(u7jT`0HdaV+~guVirT|qVQX0RT&OA=)XImMJ|`9U;&Zd^@`Yma z2v?>~iBaNv6VqX;)rc17lx$4|Y)x`MA@_J<(FU=d6;RVS)m3+EFr6N zTBkn|%D4+^B#FmRimLzy640wawY-9aEU>+5jw_m)5Jw^oBop0`gvV(>ulq|uGFcMo z$LY!S1N@}%9^6^~05(D-YEXJX(1R3+?HsA0hD0!?eq$LEF0Mo=?b`%*mnibb{!-Dp zhB{>OpMZP5BksmOxn3a=5vf`{3QVMAbO`HR$!Y6}%IP#K$&ZCGfwT~|^jF$$*3+=- zksO2IEx?n{%MnhJi+Dmi-*!88($PZny1o1)BjO29#9>Ub8GG?R1CPGU=oNld!VrF` z7htd#7iw639A38fa31`1FpHJX&R?2rBnI_x03BX9m=NrsBMzTCdu@^py3*7wZf2v( z4-)bmhuJ}ly9>!`(-w;C8&#Zkw((o0YXSrwXXZZhQ;RVS89Ln5!;qcOnPt~GVVK}C z3*{2EFiDk_3Z=X-Nh})AQoQ)$C(3ogH_f6w-)gwAxg-#*@R<1ZlzKSu1*ucvjPO{x zmO;W5`dzu5!)3kgYmBe9vez~h;#dBxdHuMaLD1?SvSPP#0+_+o#2z??K@>_k6H7Iq zx3acbZzqvRkeW~qDmc(6t2d4!9h8M?+HU$cA57#lQ=E=jN$36SF-*w8t$fEUI6}2; z_cB|~kHiCACz_v$abk-MCE!pCQnwioYcgtP@j)=qwFcdnoK2+)1rIP3T~Zi{wY z?>3#2euZn=ujH|mx~Ozg5BrLm_n#kdSb2t%)>1Skp2Xf&3!_5WzWBv!AKbk&>{pSo)P$1V%Kmk!)fE41# z0zq`^g#M}b)SK?(`7YGw^2_A^)v|GbCRz=DlFoz-%STiCcU{g~{@U#wuG%}>q_u)( z>7jDk#pdfXswATjuZhWpATjvfM9!}DwIr_YI23%K{?!PDI_2u$RgU?GHmvm+DPVE9FubL1q!sHhhKk4WWA4e7W7X#cTIQJC2Ha%uJYSx+m$sGfU z$NQuDWd|sEAF@*J>uXK+DK|~Wt1ZkVK@&O=OJDwed^Tre#nvCxUCQ&dHUqqE zJ8JF@E>UH-l1CB7WG0gU0VM09(zL0@hqd26e9bo4V-|c3Tc`0*SOhWx3;Iv`pMTw3 zo#l?~AxX*!tVAkRbg#s|qQsgoKI}KW`z$#1iB|gM(bZun=Y4EZFc+~z7&rd_Apm2n zuQN=RfpOCR0HyPNN@d5hNajDuWP7DsPpKVxrI*{~x<-%_E!wY8wE$~`QR*ZQ`pCW? z82(|7qincGSE672r}-)m9!TwI{MXw(xGrTwsab2616~AUdZE>2%=AS%G+@AHIpRXd za;!5+S~C;v&j$b_q8XDVG9j578A7tiq&!WSWjPRW1-#lsy*V6}HC$T=-Ub51vCD5V z+e&pKf-R>!TTW#jzc?KJVV@e}NclXcPKabTyobywt-40+$SJJVfC8G27Wd)3HaJUr zjH{zT&yS7(fcZ(*UBha#y-G?b;~^;chrge{5Xc2AWKgJWCEJzsonek|=D{*B2{Lr`U#s8Gvb8_}3N_1q+#qK*U#3$b0b8I8Lxey!qlV6RXf? zTIb=1376LmrW4|F!5tDqwR-Uqb;vI*R?_33=Tx8$xJs~BJXWKa;C%6%r%3(KZ@YWE zEIYE?1&T?RsE7bGja6NA50s?_C4{iZbUzi)Hz=a($9G`k^8LXD#j7vFrSoO~013fN zbwV5#S~k~pV-jXaKB49_9`TB^!BWJnmvAbg2-~RP15Df~#MJ2?RRXwlk!uUTswD{a>HB|%yhCoO&-@4&isT&o(SXvBkB{{Rs< zVgoWkPfEwbH{#92f#rv0N!PKUXZ7$*$mL%Tb{q%QFET&+NtC4;R#y`F*4FRe4;EgJ}DgJ?*WE@_FHc-aT85-~Rv|SZe8@Z7n;2D_hT=UkRrOj^~1Jvo9P`t zkI8Y_cOCC)4`Btw`+UySxwTDkFam~*zMf;|r`d=h9OZQudRBF^Gn6Xe&aN|rr$BYdEME*vROeAqb)|1E0lf% zmUyS@l3HJCu?Yyo<5dRJx$OYDb*(P6mv2y(Hd9d4JRKNkml23G!cduvgo2lAOJTQ9 z9sccXX54#mBw*iALj5GHPgTQ%)p%w27mXcr<&7GMlzc*$kl^_V*))f}_hkLUyxeY6 zTQlCu^tQT`2Z>=)bjNP427yWvX{xm+!xik20}cFFN9}w_z&UpT{1v^wy-#PlTHWq( z++L-G>g66rc3C1>Mu?S-8k*Lsv>u#1Z^qNFPanNhH>=l=4Dem0CiL(B(7ZF5jdQ-j+s9#KR?lC)54us4b6mqwDzv%?b{dqs`q>n_D}-tF!CA-oYN4+I0ZK-{~}d6{Dj)>^tnmN_yC5<)tR znn}muX4=wNQEu+1m6kS<%`KW%k~;jWtEe&_KV=p+T_gVh z@z(zUIe$f9%WMOE(q!w{4zbx^D>ADs#+D3x6jz2k!)BFP)6qb*vs%OWztwQ+$2A5rn}>ftjN@IxDAm2;lW2I6irnoN3PG(;M&WvqF!Bx= zeb~(Z0A}I}`F^Z^+hh5U=%@CZcUQFQ6#nmRx$P!9sM}5CN?jBIps)>*YUZt)<&HKp z^e*2GVsNjRxMGHEy|3F_RDkW45k+xqSPOs$JxA>=3hQ6-dhK6bv-^#kEUN$S9oj%RLLT+ zF#uQQE#cvc9IGtfwmDZg@P^&ReL$_Mo~ly5SSauWq$Y5bxrQ+@RCJzMb={k=CZ2RIXDSaabe3)uc=43fyHsSOKDRO2ym{hd0?av z0#!0Oa6>6VC{B50;KPn8$&L;cfDWT8CCQLR!2mBxF0KIi(*q-q6!96#K;3rICy;^D zl+=|x4t1};6l|$mg^7D{TZUk>lEneg7}R@?D+*&5AZ1K$l(0@0n>~|U-l{P4N9vJ? z$bpF}4pdeaO|wTKjA?MKs1QQbdkFpbn#h*H>Vmlrp*ePSgo$GJ(v2qM>5Xe&LJ~Ya zX2m{4$zWB!JzzNttM$p8u{_h1JW*V@;SVx3(p&SkiYIj+07*%8b9L^Y| zsT^|QhDlnYv^>TfB(vVWVR-@ja5E_dhQ6#u`A)es4HH_VQK>hxK5TOegW*s)vl^0d zo)v$F_kTvga3G$k@UP!5dq%DJ34lNUlmg@^RVbvu`D-gfQ5Ci`e(abP*L zM=4_-&N!b?hDWMnx0*1jBC5L@lb#@yUsO>j<+Z{X8YpAxOL9?JhHt1Jflr%fmLdqw zRA8BQ`{vZuMm;%&Yw4{6SIY>d2+W5rKK}sUgi2;vCXPF#Xr&d2s2yr^Jde8yGa$Nh z6&4a3JE3FK5!tw{qb~(;PN=NQq1EjenyAjpOo!Q~e?-=p!l4uQcz&r%^zXB`4$a@UTl-7)8(r(tJ*7!8Fbz>G znubz@^r>HcaTUJQB;c0*)OCA|qY;N4S68yRONf?KH4<0SO-eO>7W2n5eG;l>GFx?9 z8zZ_Z)whjqOz&2hpj7Y+UI2S>5CPnyQ_unf!&8C#@JS^90Mvf=Uenslkp*qe^0C>( z+?ae)u>KVNxRQzulWv_-g*z zhZl?^<~pW*a+xG8nBc#-V;~YqS`4yZL1i2dcY3k1+XFXJRSY5sD$cbBO#tFBGKwK0 zG+ZCN&ez`i)y3arZ1?x~^Mp(N+E5^|5yYAW8efKrqdd59I5~0MoU*^d_iH%d#v#Jz zk8LX3v~$kJC{&#=4w5k7J!kO^eb}eGZt{VzT>k(?*T#!yU;VQnH`^S2Wv}SEx9B__ zJ-X_6EuJ-sO+Qc+L|vo=Fw{OKUzVqa9&?nW&Np=IxsP_^)l{RfGmQ61J>A&*f$ul7 zvXIO#YcgN3FCzwG4_lV8!!L^?#}jeAz*!B)4bfxHgA&WTc8T^MpIXvmZkibVJ%6TCj+V&e}?`n$~OIzd8nbZK0O5f2|@Grx|hmHi+9FV21xkwi1 z5G}`Uwn@$W$j;W#ycbG@jbjq9wA)bKp!_mmu2s*+G&;3%;ftJl4#FSIOUY)=>Y2cQ`E_!-_QSvJd#n|P> zOU0scs!^VnXg}hPev!v&`yTJS+h#$rxa!*lT`VIppwj1q5aF}%raYICD&`@z@f^Q@4+YT;-B%g?a_oJ>a^4pD z$8DN<-sCSv0 zv93CgX!gr0sx(g$i=U}fc|54*!H{r+Ht`P0+!nT5ywTf5yGQi0Hmy;g#2q&T=AmQ@ z@p<8Ux3$hyk*OI7xV*T?xWeo^RsPX`yA7_|=}f{VlhUN9jy)reK>R}-PZ#}Xm2`=i z^yA~N(P+q5}X3~enCq z;E<%9?&9mU`_jw0ZG|9~T1=_{)Bqhs(m81(6IO7@G(H7%TjWUYdbVUWrP>RNW*js~ zD^GQ4ftc!$#uWDH-5A1xjNd(e7V`5rf%wUYgm9e0Z$w-NU2L=CWyvr2gJl5RYpOFvleNQiBZf61RHnmn~k#K z+ihD3Z+Cl#(3a`xRz)LIhT)p~hdi;@ae3aPTlcPik;U0B_@?KbOkz0KN@Pemn)|SH z@uk0f%gHOb5!YpdrH1Y9PxV%lF<@YXya7_hG z17>}g&aqz#AyHHw1H;1z21!#f)QwddSWxN}6z7*b1k;2+bg{d*+9$EFnQZPRh{XiD z11u=nH4tePD^MxJ0U&;AN~IXc83%|ucU-kULx{Tzd$>mSU;q|4&Z-ZIs>dTrXN>Ej zY7R>2E&l*u-xh=z`1D6_H(jR0!`quUM1t4Q(J9YU0>rT#TE3^QGGz%`K{^$dWJ}6L z$}_d?Fx$qrGg0S103*~%;@R->#?3Vdg-UZIqTOQ}>O?IgWU6_SkQlMKlu0YS`zv(b zS40xSD3hixR$WoJZlHE;LsID_Yw+qEi5XxF;{&=!KSiU&lM|5X?R95ncN^#;Fxk&P zqS`3c$xp&o)hdl-dYEt?oUnFIbHu!(^Ia#maIKAPyKG5v+Ml0An{9-R1I-BmZMyCU9t!^&HG`DUO<;NSBSDK zc`yZs6=gXPcre8A7|P_ODN|wEScHw=J+-)PHQynh>MgA8x)58cs!Y#HM2u7}q#g=J zEeUU6L+w^L{EUz>DW1A#;<>=w>>-g}<$_CY7E75HqO&wlDnzSV=}H1iWHQ6Try0<# zN!}wO8_ygvFWaA}mOFOK4$}5a*7s7Inb~R73`lJ>G!#`8@z2i%z_?Rm&muVZD*o&2 z=aLNT^2$wy*ZQMfz1>?a&vsvLc1a|bOVD?VrXqf?Nupq?S+djx4RNK+u3XMFwZOEb zI<7)>e~oN6jXNhGAzi}x?UG1VdAhQLDP=O10rc`;gj5W9_r3dd+*4S%#Q9h^htX?s zIS{ZD7u9X*N=*c=2Y_S!xaW+Bz$)6Ahfoz_c^Z??40LqiSq<*l_3L^p!M(SL+pN_D zgs3c__!2SRalh1Wogu6O764g_$FtpFBtsVo8@{dW;p4Z*Sjg&TXNVG- z0M3sa6;r1?_~WIobOytnpbw(2wfw{I>94h|pRu(C45_W^`aq<)a5hdSqr zltHU;-9t0~0AqL{Ta-rEy0(je3Z$P`VJ$@utvc~k9v-L<+l^Oq5>{c3BoVuGYBq)V z7=nM4`j__MS6fJrAJshO@d;17w}G(s)&Azos#s-kpZk(Z=kHWeih%5#u}j3?w#N2FE?BDYn`=Ghe`#3T6HoYH6hj_030g09A;U~Ce~UN@qmM^`%iaW zO(Ndy!g#J@j6MCyko6d{=~&_`ry#kId1BbUxX1!N;;NdbAmHeqJ9oGt-FD-6DO+{| zbv#SNLzT~)t!Oa(n|8#o!A(Rr9Grw&H8G@OwJ?(el;A=gD&N1@aiK)_KuhYWUk$P$ zX|}j~TZNuHsgn;7c#KbNd!ou3r?O5JyTl?XKCT92hUgDb0a&*X;Rq*5ryTj`jPfLF zlr)no#6(Ur)+I*&071BEW638~nMahW9FMf%y^`JhScCfh2_T&GQQda%0U9jVk@XM|-8oQ`6rKmbj$rU3_u^^Ca*8tA zv5T@*!>L&#G?Fzsh$k^a%rM|_Sjgyg3U=x=DktEeNP=B|vSVj(a?u|{E*!X3Cn z70Lv8G%QW1H5!`eKsC!MF|9F6l?dA$mI~h*W}@IZLF~3!VZ4H9WG<47DV)MK+Yqb2;e@{dKT>5tAw zANW`H;-4yP8@jc{gO}{Oe`?x#rn(}z2%|n`jNiKzAQpmfLWUZbdB|4&_wZJ5}X4r1F>xPjPo+mUM$pge3We~1{ zm?wBv%!s1Zb#WqsS>x&Eb*MA~zr@t8 zCybb=q@((Eyh*%vtotB+%=zkH1!~8$H5)qW8n7S>u?yGkLGNQqEYE~PiUzx^Y zP!9m>h~^VS^+xv1!Y7I5XxN`zW2m{*O+sz!wQ7(|`jl`o0@Z&-- z{t1%|GDR$DEJsvwtx)@L!&JpiLg5*s0iAvoCV-9y?!<^uD;=wDzqXjD=7su4= zl@wCH2g=LO+nzPJ7Pd#+s^3tMVzMhZcY<{3T|kRB9!;<)H}_eaf;t!(>>H~1=yywkXD~eDVb(GNX&h>q0i&S=xyuWTj5-5 zlk{3Uq2=#gHj=?5v@VM9S%w9mkR@H+l!RiYwI?cLCyT*_0M5pL)B3C2o?NXWF#iC` zE&6TQn@x?HO>ax6qhM#;Li#3m?{CQIjE#3@2hW_f}DN;_S?6?Y1R`} z(Im0Q7?Dd&Dlf0Z6)eq880@ROkOt7H$^dmM9p7i#Uv3j!-rw$0#OLs>qq;D{D7sFO z8mXbgg2w0&H;OH@>^nZ&Zf&hC^v2E9aU_z;OHcyDxo$%dO1REjqyZ>_ATTTK)3-KV z+7T7)s>$gzAZW<^q=QnvE5i-|M+*!~gga#HJ*REG`q*_mvFcb9g$o{`N{Rtm0YFXy zG)3UYh|sT1gbo)HDpJz%f5L7uN~o9B%FW!sG1CZF$dtxLb-@3^+PN2{%N<{5%)J^{BCc512 z-aA*7K88|2MiGK0iA@Hk^(i&?VxabJ2|xPbg)jMcwx=lG;rfStWjxoWX8fnD&_wP) zjh-+Sf<9VJL8dIz?fd{3R|g&nD{bUI+*v;M_3q!f?NDwuaxC!NsdSWQT=NIa9F95| zZQ3^dt1yWIUsW#i+b%A)N0u1K4{1CLCWKM1rL6`>QT0Vm7|FT-Psb}tB$y7^Si3^@ z)I~1Ts;O;Yz`-A=AhW)WXN-DtI$fM);4rvh<008DK>|@LKYzRyc0+KrDq`F2?QZI- zR0K&?WumrXi0zARL^G&WWC582LX4WnxHg-1`g?E|He#T9OjOiB#up+ddey2ymJa2L=WhJdbKH%+t)06( zFh&bNzq5vQ)fLxH817|Am}MFX zDWg!KXKZf9saXQWWLab@n8NAyYbVo19mxjkr_;Cq)HA?LC5QK;Slj$qo7-)8n3V@U z84?QRtAZ=)UOs+f7vna;R3#p$melc1A8woAmbxglb|6$PqG+_Ge%w{$M2|RDxY7s6 zRafztp|XxcSwsa{fz%0#Mof>ESgGvRy|+X5iMaWMe&bmXfjYAx7tMNzhSol+vrV8QNuqPV@KNL4O+SV6(4br z{hBhR&)JP2R(mS-g&>c93??CX>5Is19e zcen^zHf6P2oGuZSXLcV&oiAgaKCD$Law^#sBjs;AXhz{UZi=HSj3u^97Tv#C-rinW zMCY$${W;@dq>fb{Sg8&}&uP_JvyMb}bVMksOAk#&2plr!?ZlfRB;iNAn6X)8q(?7+ z<^UWk%L2{tN!@fkion@zkXy3;GY+Jnan||i_i)B#(s>o9L|P$qU7pNa+ra#{3s z2S%DS`Z(9$?#5Ae%D2^deXHs6)u&tn4GpmR0!%?bMs^g}Er(G$R9W>>q%N9zF zDR!q<{{YIv@_*>*Z>#&&sX1xOYIJZ4W7xIeK-1^^XPx0(;aH?r&I9$?OyB@ zv{A(oA6?M@04GoCr&HmtPgky*zn2x{%3zGHzLcGPU0R>&*Hv|S{JMS`a>E4ZhQrnR zdF%fG$JRO(Oc9Kf63OA{{Ymbf9g~2t|3w<4&mwjBtK7I$aN3( zKSTcjlTAZMQosKIiTqkJ)%{ORae>O;>;C}Rr|kaM@miE^+2q&vcW(vNE&h|~E&hj3 z(Dc{n^n5yhw;4BX+;?iVYi13inpacP;^pB?LLEp}g{F~OdDq7i4G^lO)l>ffFSpME zQ>>>)NO7*AsgpQ>5zpU%Fb+vzLO>p@)_`oGj}rky^Dd_7HHCk$8SZ1g9)YxIBN z;*PJpAa;LE`NW@Jr&U+2T|Wg4b@~487{=f>(C)5W?S*~M`Y-c$>VNY3$EE#W>S@bI zFNU62xP2x++4(3&^wkH`eGBw7{44PB(@|f3oL_@&!hq_mZ4^3xglMM?K3?t^EGAHj znqI$uhdc~)PE;fR0On8eXrgrMO%&7e{{Z5yAF5pyi}Cs^rz-eTxJfFvj*sPcy?XRI z5^JX#X+ID1SBIV+&$Ov{&+12Rt`|Q2Ca>3S8u~h@-42Jt($u=Eqwx6CO?_V#d16Di zuime7-*1)uH^!g&`23TN&3`(dU2Cc>I(X=y(@OKlQ|)_w3~QCgbD!4Fg3aFjU!{Jg zzk*JUbo_lc(@JvHOj7qB{{S5JaQ^@WbBO-9{JyL6=J)=X{La^*)zzjt(weEyO?_JR zaIPrd=(Kiyy;onr{{So0x72O#<^CEc4#oV7^H=<@SJ3@D6ydK|Qfk(}HF)DT=`U(%G)%5=WQ76<>_`1?)ufGvTcEZR@ZV%$KexZN(=luh< zep9RJx>kC=i{a{YeqN?k)2pe=SDq=y{{UgzuT^4gw=3@M{{T+^0HJqk*YceceFb#u z`nrxkHmwn{{UTnqx}hS^?JG=T`$s8jWkEpry7&TPfy9+ zWm)O^o^H#j-TgP^@K>YM>ZNsS>S*d6RQWy{*PSq|-MBw-^-4Q-mh4goZS_AkvFX>P z`BME)_dgHmtNhx3ej?)i-BRRew|9@wf2KEYs{W7C&#PDd({S^xF?QBsszKZ@r2ha> z{VvVY)7AP>^*;`-uS8awxmK93J^NzXx}F!?@V`eJZ-!FOY@HF(Ek8jTK@p}`>U_;^=bZx)MeHBeIBl!s@Io>SjxX=Ri#Ge zLjM3#Ki8j}N&c?te_89N`a1q@oj(q=rUI>xja1fdZw1+V7xG{9w%hpzugmm)9;$UZ zwfs)4Kk94vzU;BkQ@3ZAMb2HjdEKgQxu?>>)9Lm4k#zLeU38wly7 z$3k}Q%Wh?oH*Lf1bs2h^y;ZF-7aP*rb~8UkFC)}(z4Te6rEy{^w6$38KC+AS-9A5w z)Yb6$X~Lf7!YDUYDZ0HsMKxj$R{sD@vX_sycytmEjk=#6tgGY89F2Q-`L$gn_iXZ| z`>)KuG#V>h`ucty6*_BAoA`bFv8BWHH=f;99#+kR@nOc_8akSOU3B%+ z!nnWW-QuX7+g9IJpDY};QS?*V{-5)EKdkHNYT zufx<8_SY}J7~yOb^Jz^j{8i5r1WNomNL0GIt*ec32~NFSI7wQZa>Im{JId=dz|A@z SC2D_YcWT0G);UrP<}a4 zeM44uOIveGU3gJla9Uz+S!H`Lurp=S7&YP*lo~_D|r_+)vmqP zti0N{yv4G*$-2J9u)f%?z~8yR&9%VQvB24~!QQpP*|fslw#41J#M-&W-n_@!zslXX z$Kkxm;={wk#mCCa%gn*Y(ZtQ&%FWWw(bdb--qX|5)z;bA*Vo(I+r!S{#n9%+(&Nk2 zaR&)DkF*XGmN<<#8j+uh*V-|64r-`?Ql+TrfshtOB@$T{V^z!cW^Yire`S$qw`S{`mg>{{R0o|NmzH z|C#^)%m4rYA^8LW00930EC2ui05AYB000R80RIUbNU)&6g9sBM#7C|euUo*1X*2gu zpTdh630?z+?Afzp!fMg7CCu10ZtUb`Tv^Z*v2p6ut%FAs-nwz#q#+Y_D^@IA%D%OG zcaJ5)O{QS=>Ln}KHE-U+m77VgUOjs7(v|au3>T_XuZCgcMy_4am4IHsN+qkUET*td z$x3#uZnkjl;#JL;@9MjB-HhQn6$-6dSg_h6PQ|z}V^gJ2Ila~~Tsn93?9q#dZPUt4 zhuz9roaz+hQlC6^;>4-b>Oh>>ZL)_iUOZ)*K8JRTcw9rAn-L@$b{0UKc-phR?m(_G~Ku^Mh7;@7|?NL(Wdz_?|pt^nAA`Z{50Nc*-+A z&-i!n)SUzpNFROdp~e|tq%n^sw%KP)9r{g2ntH-%S0H?1TrtKxel)laF>@I9TVvOm z@(F;P1hU5wXSShAlw}~nh;e(Gp_JHFC8fv5=1{X*e5d;$Q%wgX;=-g7qN`AaTr75Ot5{*6U z#1zvy@z~=F5nLc?rVm8CBZqxY+M)%VsC+`DCziyc=cF>tL(LFn1`&i0M!XY;edwSw zOBE~G(Ws-0z(gsf@k}yA5u5h^5QIBrUCUij33N+TVp~e-G z=qXM#QS_j%x7&n^4zr`&a4sr;u%==iag@=88C_TbPBqj_BQXp+=%7OmJv>82sMc5m zN)6|p(uaV56la_oRX`FCHO)v|%`Prjd~pxQ2=Q;npwO@q8lv=3vdMg?L4-5!NIXq7 z9l!Cy#W|dy!!I}7Y)vFE?A$Yf#u3?tF6y}4u{f5vki*y~I9*HB)<7Hy3s&lUc za6Abe>evAK3J8J@f&hUkSYY)M;J{E|A$a>ULJ?eGjhj_t1I#mE2QvVI41~ZDDX0bm znV|?0W@HPYV8ZwR%A~>c800Jv;!49%{f>LJS zl$6W@IE(3!#+IRD9!8mmI+{@lK}28y9-y5GNMK5Q`q2ssXhtS7fe9xxp&IZoN BSMvY> literal 0 HcmV?d00001 diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/pump_off.gif b/core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/pump_off.gif new file mode 100644 index 0000000000000000000000000000000000000000..b5312e3b357563bdee34e5480323dfa3f588a8f5 GIT binary patch literal 558 zcmZ?wbhEHbbYO5`2xVYU{K>)zBpGxVfB+=c`k#T}KL^J@e*S;r;(z7j{;H|{(bfH9 zYWmy8=C_N>FK_Q(K|#NQgMUUv{Y*;wk(v3Uu<%Dk#rOL9@9pj1`ue_2oA!0?+^`aU=s`fwFP{A{yOf64dunUzQr@@{C45ZWY_*FE#o!7WQ#9tXIAo$v!FUq?LBlp>-G9 af&{C%UryP4dXCoJ)7#g_?{{Qium%8qx73ON literal 0 HcmV?d00001 diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/pump_on.gif b/core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/pump_on.gif new file mode 100644 index 0000000000000000000000000000000000000000..046ce7068249d001af5a4cbda862b8beed1812f7 GIT binary patch literal 558 zcmZ?wbhEHbbYO5`2xVYU{K>)zBpGxVfB+=c%J83o<39)gKYsCl;&OlG)c&gJ{?Rr4 zV`}r;#^tw*_b>0DUqQjYf}?&$CH+jw{E=Dsqp;#fMg8~s_V4X|-}P3B+@)Wa zuKBWN%a<*?Kkq*L`S7Vvr!IZEbo1lQhaVrl`0xT`7tH|M{{s^WJanY`Pb?`qnPWBo z!io|v-b#&$>`aU=s`fwFP{A{yOf64dunUzQr@@{C45ZWY_*FE#o!7WQ#9tXIAo$v!FUq?LBlp>-G9 af&{C%UryP4dXCoJ)7#g_?{{Qium%8ZpVW!~ literal 0 HcmV?d00001 diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/reset Perspective.png b/core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/reset Perspective.png new file mode 100644 index 0000000000000000000000000000000000000000..068861a8daab9a2147446befda7902fa896c1461 GIT binary patch literal 26274 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 literal 0 HcmV?d00001 diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/reset_switch_on.gif b/core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/reset_switch_on.gif new file mode 100644 index 0000000000000000000000000000000000000000..674190a9523248febdd8891fa403d782b9fc0b87 GIT binary patch literal 347 zcmZ?wbhEHb)Mij+aA9Cj{K>+}z#z?_!vF*zu@;8^3>^PC`2X>X{}Y${E2sNM*YuC6 z&2Jl*-!9(2ynTNA1pf-o{E?aUGppi9Mg8~s_V4X|-}WZhW2L=Iy%- q_iwLUmUhcX;w9s2WuXu0Jf@#BzNv_DIkWeh{`kpUq3X)PU=090IgEM$ literal 0 HcmV?d00001 diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/sns4t.gif b/core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/sns4t.gif new file mode 100644 index 0000000000000000000000000000000000000000..1bb91ec8215ad7be2c09978d29dc71d7230ffd8e GIT binary patch literal 1795 zcmV+e2mJU)Nk%w1Vc!B%0L1?Qz`(#MDJeoiLZtuz_bDN37y$oTA>KIvIS>GAT2lX7 z0RMy#|C}L=S_uEODW#Ni|FszZy&?bJDfiYPbA*IzYjfTZApigX000000000000000 z000000000000000A^8LW00000EC2ui0N(;r06+!*ARvxpX`X1Ru59bRa4gSsZQppV z?|kq7z@TtQEE21S3knG%0tyTZ2rB`Ccozu*eSdwBn2MsKq@|{(NC;$f z1_}xT1$Q(H6ATv&5fKL`0S5&sm!Ek7A{Bg}CY;DN6%@|T(9zP<)YaD4*xB0K+}+;a z;Njxqd-e|hRIgf8S79ZR-soH+_C$QltW z4^IFWh>@6AqHSEWc=PJr`vR?kr6iQ4IOYdaf`@z)D_)HC0E7h;00`K)Agl|9f$qW; zftYh=#-KxsCWLW-s|A#O2}MzX-vkK@Mj+V7vGUs!c_PEr?0H$H+ccWN8&15q@#Dyo zD__pMx%21XgiCKGoErdRv__76-S2e+-J`>cAKz3!0XhrnAOJ5Sz(xkY65MOhB0vGu z1{SC!&%eKam5f($n3;DZoGDB*+@R%qdc5)LrHdKh--;fF_< zMgUGAmT2OMHJD}wiY&J1;t6P3z@9=5mEcKczP+g9j(pA03UIj%7NiI_dIlViNG3_u zeU6aOfPjAqnd5Gl71`crN@l5LQ3EibfGibAQrTsiWFpjERxWhGYFoDH<{AZnC07oP z#Rh;*5CBFdPnZFMWgcw4Dd?bHm}gpgjU1rTktbBJ073RlKpzPiJvND+YU+j=l~a1Q z7NMYq`h|HK?Q;(U4Isdid=lgXfhG`0fKmf?Y7)@>+QG75+Lrl;u=r}0j{({2P+1&i)enR zaU^d+xa5-0z1(&8*a8hSP=H4XtffpIpL#ZDAR`>cN5P^t>~KjM+0JV3LNcv#< z@Wvb~62Jhcp|)R6_RxBdohW1^Z)FE}?DETAT!3zVz8pA00URkH7tRn^=0XB0HZnk< zFc)of8Wc$KB@Q3cf$oM!M=doL=Z!h_)mUe(_10W>?e*7Shb{KlWS4FB*=VP&_S$T> z?Y5wuzAg9L2#9L|(R1g$cHIXMV5{DMk3EOD8V7E8*aDzSK;efs&UFPAn9I21lwX}d z8Bwa)$1)G`+FN^-ht6aF1qZaECziXtWhKF)x4t6NFCGYuv8q-eKtrSb*D~ zwXcr4?!+sYQ2~1LzKcUs9-~{DwHGfvgG|0P0L?2zpP66)q)FxU;49dGmuuapAH%aF z#(F2}4et$VIFyBY>08Yh(_Q#ir&FH@5)sibtt{D&l1j z{dmL#^1+y-BmD!^^_JBJqy3r*G7@tAz0gwg=MF6exP6JvM5C$NiUkx~b z0!C=ChA=M&s?d-k7s<#*I`WZ_jHDzdNy$oD@{*X$q$W4X$xeFmlb{TxC`U=kQkwFV zs7&Q1EieF94(k9GP?RiZsVG+n@;wKs2SD(}ojm5l0TMe%q8!kh9;%T9m%x!Ragaz= zI`f&(jHWcFNzH0n^P1SqrZ!LM%2v8Ema(LzELB)bL25)J^$19JTE)%=wDFDb6wmlX zLa}@_v6p!|Vm$Y$mz!E*YedXP lA|4=5tZ0Ra`FxhvwvMG4ZjGy4=StVQ+V!q@m0kz{06Pi1C}IEr literal 0 HcmV?d00001 diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/snsBuilding.jpg b/core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/snsBuilding.jpg new file mode 100644 index 0000000000000000000000000000000000000000..c8760b9f104f4b50c46488ba2ee44540edbb0358 GIT binary patch literal 20991 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 V+vq=~I_*@##DSk&QAH3D|Jk)M&wT&@ literal 0 HcmV?d00001 diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/snscontrol.jpg b/core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/snscontrol.jpg new file mode 100644 index 0000000000000000000000000000000000000000..8b21910ba35b755402ecae6b6278dd2eb87fab7c GIT binary patch literal 42129 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 PDcl{0HWo$1{QLQTe0AdB literal 0 HcmV?d00001 diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/switch_off.gif b/core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/switch_off.gif new file mode 100644 index 0000000000000000000000000000000000000000..910b6063c859265e8c473b30bcda515ec7e53677 GIT binary patch literal 514 zcmZ?wbhEHbG+2xVYU{K>+}z@WmQ!vF*zvDW_#4F5Se{_*ksC!K2)_mEr<@4^{pH7|nbm`K^n>Rl`eE8wT3y`JM25kQwCKY(- zNcEpsQgkxMYW{^4B{L;`*B|X?N;sJ0F4|zh@X5=P!%(4MKn1wxywz0Z*bG_s@UR2~oNz33nR8Qe z(Xnn9CDHbTWObG!#`@Cj6)Xk~9IS?HMy(ty360YyGXzbF&^-2ZfuPdimhr>h3&pO{wgH{T?X&C@uUgH2gF*{53rLJVg6MOZrPp`%F{%Q)&2VYWZq^_kV}?hmQ7+ zmiCsV^`*4*w7c`W%JRz6^3vJy*#H0l00000000H8U?+}bX`X1Ru59bRa4gSsZQppV z?|kq7z@TtQEEH7JzKlfXQLC0In$k)(&vwGT=<2WCIh7Wsrr~ z+yJbuQt8`z$F&MWf3^XYRV@MS`1w}(6iG_*xA}FApkow C(R|GS literal 0 HcmV?d00001 diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/toobar.png b/core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/toobar.png new file mode 100644 index 0000000000000000000000000000000000000000..72fca1d62a8c70907320b54ebc929b14cc0a7dae GIT binary patch literal 10099 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 literal 0 HcmV?d00001 diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/valve_off.gif b/core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/valve_off.gif new file mode 100644 index 0000000000000000000000000000000000000000..b88222f4fd48e0db0c9951a60440e910e49fb76f GIT binary patch literal 455 zcmV;&0XY6gNk%w1VJQGE07L))A^8Le0018VEC2ui04V@20EGVl0RIRG{tplS7Z?2| zCj2ce{53WEJUshEMEXlh`cqT+T3Y#HV)$uk_;GRgczE}JfA@!n_KuGBmX`IMo%N-q z^sKD(w6ycPyYs`t^2*Bc($ewS+414w@aX6O000I5;3tk`X`X1RUXydY@Y_h2r`{ho zB>~|7z#u}h!Idd}R1^Vqy9`876RvpqFj2Djj+vJ^~eu zq$n6}0H{9=nm4T`5J0j&1y{DQDjWwvyFUUHzbml1pGyq2Cbu6COvORHi@+ru22<8S z0TU;r7FyoTR146}C3RchO9Z~MBiv%}T@oXZ73N&{OcZoz=Al6vfJ_Kv@X_rcIy61( zAk6on-wZ2 xVLP3zi$qO{wPTe`Tv!GPhyj*K>*@Kii&oSWxtglFdgB$aP+W1C3M(lD06U*`%BBDS literal 0 HcmV?d00001 diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/valve_on.gif b/core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/valve_on.gif new file mode 100644 index 0000000000000000000000000000000000000000..f38846e65535fe8e99dfd47b22cc9b9e54e5ceaf GIT binary patch literal 455 zcmV;&0XY6gNk%w1VJQGE07L))A^8Le0018VEC2ui04V@20E7Vl00{pG5B?7q{ud_w zCN2CeHT*R^`#ePZL`(WhQ~Fa{`C4N6Vrlqkarkj~_;`Q!e~0&nj`oh0_LiOXou&1q ztn{q3^t8M4yTkLt%JRz6^3vJy+2Qfw=~|7z#u}h!Idd}R1^Vqy9`876RvpqFj2Djj+vJ^~eu zq$n6}0H{9=nm4T`5J0j&1y{DQDjWwvyFUUHzbml1pGyq2Cbu6COvORHi@+ru22<8S z0TU;r7FyoTR146}C3RchO9Z~MBiv%}T@oXZ73N&{OcZoz=Al6vfJ_Kv@X_rcIy61( zAk6on-wZ2 xVLP3zi$qO{wPTe`Tv!GPhyj*K>*@Kii&oSWxtglFdgB$aP+W1C3M(lD06UN5%BBDS literal 0 HcmV?d00001 diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/yangshuo-china.jpg b/core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/yangshuo-china.jpg new file mode 100644 index 0000000000000000000000000000000000000000..bb0ac57c28769722616ebea4a9e3de41124959a9 GIT binary patch literal 38488 zcmbTecT`hR_br+bAT&XmfOH7bkzPYpO6a|-^bS&_7b${>p(OMoMS2yK-UR72K#)!Z zLXj>_1QB2SzTdcajQ9R|_nwTCot(W-S!2yT*IetIHJBOzhz9@waWBB% zWxyi<5g{R%kbnpb1``t#k&w~cAtNOvW1ym@pkcnx%EEk~iHQv&#LdPbz{$kKBgHEq zEFvy0&dMz#FD(ic5)&8wcMu>kF)m&gFX94`r0>lI16A*%lh)GCs1Dfsv@PHr?9zKYG03RPWIvm#zz^5dj zVi!>+q&BbxbNJARMj?ubI8_>YX$_};K*a2PqlroG(a|&9=X$`+!^|De|7=!0&y#d5}$xwgpf+v0Bq|+%^?~^M5BTz zYUm~A6f^umYv(&nat|WD&UNz7wEtN4|Ie`K|0~P>mtp_gt|b5&2#9kYh!UU(xLm?^ zYE_75s;yd44*EofwD|quuk38S*Nhxr{2~-|aro3HP)1a#0urU8z z>UO%I*UCIy&>36Lcyq_!^!{NNHhxiCSN%k|S0VE9g96R@yOfKKMsMv&iTm=}hVvqY z`yJ8C)*>=&oJ^@mpP0iZ5M+r~ySni+Q)$|_xHG&!n?3qo!P(i8wZV(^`%dpvRwCl^ zJ^{e<-}Mm*&-=*#&&n&N<^psnc^`Q%L6ZmQGQmXyXnT)@PXSdQxJ&>9Y0~t8Isf+K z<(UA`7{GD>JjLQ^)_DI0`@wQFH363Y=`l1=B6Jl~6 z%64+ZddqgssvoBgh^g%Df29|`;ny>mE14C7&M8$D6BXBAU)Fe_qc&2td}rU)SZU2! z&~`) zJwQZWE#vnm%2ndN_hG4a4vOo@Dgp=5%g5G3xD@E?B{68v*2&hdo= zIJ_7F-v4*=Ke%KUivt>s{BW4^Q{`g7^)r-hCjhLcbG&e95^|Z464%GuhNJ&8K+U!7 z-{>?aWF(z<_WJ}InlvZ)6yA)XQv!h3wGlTkRoqY?sLI7I4%oAN<6vrCjVG@>A?lu0 zr0#Gog{6R24Py=Ga6MBG#IrO10SZo;A)R>u&Wu+;4H{I zO3KDx^FQ9|6FRIKViht|_zTF?9PFGqJc9daL0=ziN^5-au=ZySEF&ck-d%Bey~&Ae zt#4^UPJ0}3v}WVizcF=!3SSl2>}LcEgSB5kL25_*Z(a<-WAmEEf}8h zQJgRcvR~E%Xws*ZMa0*hPeYz4`rV7ho%sg z?1-FLq;4_zsQp@akAGY&DXyhcs+v@;n5?Fntd(r&m&SK@zLfU1E*UGeK%7T=7E34m za+Cgf9zG?qSS-FWor5nY?v$JJA0++T3i|Y4-yclt;BWzP)X56-E&=^TwntgX#5(6B2Q(l8lxZJYzYMD|l*M&;`JwlM1o z9y2q$xFB6u1=wB5 zskZNG7zd zJ4{tU-k1(Ex5&E1krC$B3Hiup)Q?+o5*sP4jtiWuLaI6HLejax0BU#uYaDmHc(%t{ ztoFzDPSoh|BPjv8mu#ML%50!ZwMUc_iB39d$HOh{(F?;L`T6^#sU9$xOF^nKde)A5 zdUm>5s)^dWGdAXp;w-)nEs@!xN4c8UjTAe5SwV`c+-%biI0QA+UU{eeOis0lo^3CZI-sz&(wO1&wq&MWu_iennqe^J%={0q^yu%aW~N*JxPtsL(!iQ z15(h7l1ct)=>P~AZV1A;xvd0rrsm5V`FmzNDhbTwlqudj1K)_Qkk&n3oh4!`P}X%Uo9>gE8}wujK6{@6hi@FLaHn<6{)cE>8#$c=h;W$@!+{Qh zgK+ly|28;|yP3{$!XaBx+$kFeLfozuXKF5ZI9&es>jT%48D~r+D?-in)$~8MEi=fm zkrU6xfm@+5GQt%H_6M$!|3&$Kx_9tW#Ulg$v8fSo@qO;EX$|ndDZpIM8(Fhvs`?iY zf8HgFJ-9S$7!rXGSNLUspdhr2p-6ty8|*_G*n5F{KL@#6v+3)(A4q(sV2wX`$#*)| z(I&M0ke6&(B~ltd9$hEwk*zsYj0w~H_$I}|VnT8aJ|TG*Sdi_58V9VMkNm7XCJ)M= z?YHPpb*Blo3XeT3#w;$Jss9V1VY*IY0 zHLlz(BJsM;|3y!!Wqtg*Q^&RLOEpb`5Rxl+o#BdjAD*NZF1FN8D?^*$RAN*a^v
  • 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 literal 0 HcmV?d00001 diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/AddAxisExample.js b/core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/AddAxisExample.js new file mode 100644 index 000000000..221079f90 --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/AddAxisExample.js @@ -0,0 +1,14 @@ +importPackage(Packages.org.csstudio.opibuilder.scriptUtil); +importPackage(Packages.org.csstudio.swt.xygraph.figures); + +var xygraph = widget.getFigure().getXYGraph(); + +for(var i=0; i<5; i++){ + var axis = new Axis("Axis", true); + axis.setPrimarySide(i%2==0); + axis.setRange(-10-10*i, 50-10*i); + var trace =xygraph.getPlotArea().getTraceList().get(i); + axis.setForegroundColor(trace.getTraceColor()); + xygraph.addAxis(axis); + trace.setYAxis(axis); +} diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/AutoNavigation.js b/core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/AutoNavigation.js new file mode 100644 index 000000000..077bb97ed --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/AutoNavigation.js @@ -0,0 +1,19 @@ +importPackage(Packages.org.csstudio.opibuilder.scriptUtil); + +var value = PVUtil.getLong(pvs[0]); + +var mainContainer = widget.getChild("Main Container"); + +var opiArray=["1_1_Rectangle_Ellipse.opi","1_5_Polyline_Polygon.opi","2_3_Gauge_Meter.opi", "1_4_Arc.opi"]; + +//recover border style for all other widgets +for(var i=0; i<4; i++){ + if(i != value) + widget.getChild("Sub Container " + i).setPropertyValue("border_style", 2); +} + +//highlight this container by setting its border to line style +widget.getChild("Sub Container " + value).setPropertyValue("border_style", 1); + +//load OPI to main container +mainContainer.setPropertyValue("opi_file", opiArray[value]); diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/ChangePosAndSize.py b/core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/ChangePosAndSize.py new file mode 100644 index 000000000..dd96c2985 --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/ChangePosAndSize.py @@ -0,0 +1,14 @@ +from org.csstudio.opibuilder.scriptUtil import PVUtil + +value = PVUtil.getDouble(pvs[0]) + +width = 5*value; +oldY=widget.getPropertyValue("y") +oldHeight = widget.getPropertyValue("height"); + +#module in the same directory is visible to this script +import WidgetUtil +WidgetUtil.setMyBounds(widget, value*40, 500 - width/2, width, width) + + + diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/ChangePosAndSize_m.py b/core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/ChangePosAndSize_m.py new file mode 100644 index 000000000..59dd0d679 --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/ChangePosAndSize_m.py @@ -0,0 +1,14 @@ +from org.csstudio.opibuilder.scriptUtil import PVUtil + +value = PVUtil.getDouble(pvs[0]) + +width = 5*value; +oldY=widget.getPropertyValue("y") +oldHeight = widget.getPropertyValue("height"); + +#module in the same directory is visible to this script +import WidgetUtil +WidgetUtil.setMyBounds(widget, value*10, 200 - width/2, width, width) + + + diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/ChangePositionAndSize.js b/core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/ChangePositionAndSize.js new file mode 100644 index 000000000..54d0b7fb3 --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/ChangePositionAndSize.js @@ -0,0 +1,17 @@ +importPackage(Packages.org.csstudio.opibuilder.scriptUtil); + +var RED = ColorFontUtil.RED; +var GREEN = ColorFontUtil.GREEN; + +var value = PVUtil.getDouble(pvs[0]); + + +var width = 5*value; +var oldY = widget.getPropertyValue("y"); +var oldHeight = widget.getPropertyValue("height"); + +widget.setPropertyValue("x", value*20); +widget.setPropertyValue("y", 500 - width/2); +widget.setPropertyValue("width",width); +widget.setPropertyValue("height",width); + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/ChangePositionAndSize_m.js b/core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/ChangePositionAndSize_m.js new file mode 100644 index 000000000..0b1780783 --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/ChangePositionAndSize_m.js @@ -0,0 +1,17 @@ +importPackage(Packages.org.csstudio.opibuilder.scriptUtil); + +var RED = ColorFontUtil.RED; +var GREEN = ColorFontUtil.GREEN; + +var value = PVUtil.getDouble(pvs[0]); + + +var width = 5*value; +var oldY = widget.getPropertyValue("y"); +var oldHeight = widget.getPropertyValue("height"); + +widget.setPropertyValue("x", value*10); +widget.setPropertyValue("y", 200 - width/2); +widget.setPropertyValue("width",width); +widget.setPropertyValue("height",width); + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/ChangeTraceColor.js b/core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/ChangeTraceColor.js new file mode 100644 index 000000000..c61c752cd --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/ChangeTraceColor.js @@ -0,0 +1,12 @@ +importPackage(Packages.org.csstudio.opibuilder.scriptUtil); + +var RED = ColorFontUtil.RED; +var GREEN = ColorFontUtil.GREEN; + +var graph1 = display.getWidget("Graph1"); + +var traceColor = graph1.getPropertyValue("trace_0_trace_color"); +if(traceColor.getRGBValue().equals(RED)) + graph1.setPropertyValue("trace_0_trace_color", GREEN); +else + graph1.setPropertyValue("trace_0_trace_color", RED); diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/ClearGraph.js b/core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/ClearGraph.js new file mode 100644 index 000000000..4f8524b37 --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/ClearGraph.js @@ -0,0 +1,2 @@ +display.getWidget("Graph2").clearGraph(); + diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/Dialog_push.js b/core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/Dialog_push.js new file mode 100644 index 000000000..1dae7408d --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/Dialog_push.js @@ -0,0 +1,5 @@ +importPackage(Packages.org.eclipse.jface.dialogs); + +MessageDialog.openInformation( + null, "Dialog from JavaScript", "Button was pushed."); + diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/Dialog_release.js b/core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/Dialog_release.js new file mode 100644 index 000000000..ea9a745ef --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/Dialog_release.js @@ -0,0 +1,5 @@ +importPackage(Packages.org.eclipse.jface.dialogs); + +MessageDialog.openInformation( + null, "Dialog from JavaScript", "Button was released."); + diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/DisplayPVValuesInTable.py b/core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/DisplayPVValuesInTable.py new file mode 100644 index 000000000..220d0939f --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/DisplayPVValuesInTable.py @@ -0,0 +1,39 @@ +from org.csstudio.opibuilder.scriptUtil import PVUtil +from org.csstudio.opibuilder.scriptUtil import ColorFontUtil + + +table = widget.getTable() + +#Fill PV Name only once +if widget.getVar("firstTime") == None: + widget.setVar("firstTime", True) + i=0 + for pv in pvs: + table.setCellText(i, 0, pv.getName()) + if not pv.isConnected(): + table.setCellText(i, 1, "Disconnected") + i+=1 + +#find index of the trigger PV +i=0 +while triggerPV != pvs[i]: + i+=1 + +table.setCellText(i, 1, PVUtil.getString(triggerPV)) +table.setCellText(i, 2, PVUtil.getTimeString(triggerPV)) +table.setCellText(i, 3, PVUtil.getStatus(triggerPV)) +table.setCellText(i, 4, PVUtil.getSeverityString(triggerPV)) + +s = PVUtil.getSeverity(triggerPV) + +color = ColorFontUtil.WHITE +if s == 0: + color = ColorFontUtil.GREEN +elif s == 1: + color = ColorFontUtil.RED +elif s == 2: + color = ColorFontUtil.YELLOW +elif s == 3: + color = ColorFontUtil.PINK + +table.setCellBackground(i, 4, color) \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/DynamicLoadImage.js b/core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/DynamicLoadImage.js new file mode 100644 index 000000000..681db878b --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/DynamicLoadImage.js @@ -0,0 +1,13 @@ + +importPackage(Packages.org.csstudio.opibuilder.scriptUtil); + +var value = PVUtil.getDouble(pvArray[0]); + +if(value==0) + widgetController.setPropertyValue("image_file", "../pictures/fish.gif"); +else if(value==1) + widgetController.setPropertyValue("image_file", "http://neutrons.ornl.gov/images/sns_aerial.jpg"); +else if(value==2) + widgetController.setPropertyValue("image_file", "/BOY Examples/widgets/DynamicSymbols/Shy.jpg"); +else if(value==3) + widgetController.setPropertyValue("image_file", "/BOY Examples/widgets/DynamicSymbols/Haha.jpg"); diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/DynamicSymbol.js b/core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/DynamicSymbol.js new file mode 100644 index 000000000..fb2a49595 --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/DynamicSymbol.js @@ -0,0 +1,10 @@ +importPackage(Packages.org.csstudio.opibuilder.scriptUtil); +importPackage(Packages.java.lang); + +var pvInt0 = PVUtil.getLong(pvArray[0]); +System.out.println(pvInt0.getClass()); +System.out.println(pvInt0); +if(true) + widgetController.setPropertyValue("group_name",pvInt0); +else + widgetController.setPropertyValue("group_name","1"); \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/ExecuteAction.js b/core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/ExecuteAction.js new file mode 100644 index 000000000..a951abfaf --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/ExecuteAction.js @@ -0,0 +1,8 @@ +importPackage(Packages.org.csstudio.opibuilder.scriptUtil); + +var src = PVUtil.getString(pvs[0]); +if(src == "Open OPI") + widget.executeAction(0); +else if(src == "Play Sound") + widget.executeAction(1); + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/ExecuteScriptFromAction.js b/core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/ExecuteScriptFromAction.js new file mode 100644 index 000000000..d38e70ac2 --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/ExecuteScriptFromAction.js @@ -0,0 +1,19 @@ +importPackage(Packages.org.csstudio.opibuilder.scriptUtil); +importPackage(Packages.org.eclipse.jface.dialogs); +importPackage(Packages.java.lang); + +var color; +var colorName; +if(Math.random()>0.5){ + color = ColorFontUtil.getColorFromRGB(0,160,0); + colorName = "green"; +} +else{ + color = ColorFontUtil.RED; + colorName = "red"; +} +display.getWidget("myIndicator").setPropertyValue("background_color", color); +widget.setPropertyValue("foreground_color", color); + +MessageDialog.openInformation( + null, "Dialog from JavaScript", "JavaScript says: My color is " + colorName); diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/ExecuteScriptFromAction.py b/core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/ExecuteScriptFromAction.py new file mode 100644 index 000000000..8a0ef0bff --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/ExecuteScriptFromAction.py @@ -0,0 +1,22 @@ +from org.csstudio.opibuilder.scriptUtil import PVUtil +from org.csstudio.opibuilder.scriptUtil import ColorFontUtil +from org.eclipse.jface.dialogs import MessageDialog +from java.lang import Math + + + +if Math.random() > 0.5: + color = ColorFontUtil.getColorFromRGB(0,160,0) + colorName = "green" + +else: + color = ColorFontUtil.RED + colorName = "red" + +import WidgetUtil +WidgetUtil.setBackColor(display, "myIndicator", color) +WidgetUtil.setMyForeColor(widget, color) + +MessageDialog.openInformation( + None, "Dialog from Python Script", "Python says: my color is " + colorName); + diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/KnobValueDialog.js b/core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/KnobValueDialog.js new file mode 100644 index 000000000..d560ce091 --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/KnobValueDialog.js @@ -0,0 +1,23 @@ +importPackage(Packages.org.eclipse.jface.dialogs); +importPackage(Packages.org.csstudio.opibuilder.scriptUtil); + +var flagName = "popped"; + +if(widget.getExternalObject(flagName) == null){ + widget.setExternalObject(flagName, false); +} + +var b = widget.getExternalObject(flagName); + +if(PVUtil.getDouble(pvs[0]) > 80){ + if( b == false){ + widget.setExternalObject(flagName, true); + MessageDialog.openWarning( + null, "Warning", "The temperature you set is too high!"); + } + +}else if (b == true){ + widget.setExternalObject(flagName, false); +} + + diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/KnobValueDialog.py b/core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/KnobValueDialog.py new file mode 100644 index 000000000..cb3eb0608 --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/KnobValueDialog.py @@ -0,0 +1,40 @@ +from org.csstudio.opibuilder.scriptUtil import ConsoleUtil +from org.csstudio.opibuilder.scriptUtil import PVUtil +from org.csstudio.opibuilder.scriptUtil import ColorFontUtil +from org.eclipse.jface.dialogs import MessageDialog + +#module in the same directory is visible to this script +import WidgetUtil + +GREEN = ColorFontUtil.getColorFromRGB(0, 180, 0) +RED = ColorFontUtil.RED + +#Name of the flag to show if dialog has been popped up. +flagName = "popped" + +labelName = "myLabel" + +if widget.getExternalObject(flagName) == None: + widget.setExternalObject(flagName, 0) + #Example to write text to BOY Console + ConsoleUtil.writeInfo("Welcome to Best OPI, Yet (BOY)!") + +b = widget.getExternalObject(flagName); + +if PVUtil.getDouble(pvs[0]) > PVUtil.getDouble(pvs[1]): + s = "Temperature is too high!" + WidgetUtil.setText(display, labelName, s) + WidgetUtil.setForeColor(display, labelName, RED) + #If dialog has not been popped up, pop up the dialog + if b == 0: + #set popped flag to true + widget.setExternalObject(flagName, 1) + MessageDialog.openWarning( + None, "Warning", "The temperature you set is too high!") +else: + s = "Temperature is normal" + WidgetUtil.setText(display, "myLabel", s) + WidgetUtil.setForeColor(display, labelName, GREEN) + #reset popped flag to false + if b != 0: + widget.setExternalObject(flagName, 0) diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/MoveImage.js b/core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/MoveImage.js new file mode 100644 index 000000000..f0bdd0373 --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/MoveImage.js @@ -0,0 +1,12 @@ +importPackage(Packages.org.csstudio.opibuilder.scriptUtil); + +var positionPV = pvs[1]; +var position = PVUtil.getDouble(pvs[1]); +var stop = PVUtil.getDouble(pvs[2]); +if(stop != 1){ + positionPV.setValue((position+20)%600); + widget.setPropertyValue("x", 50+position); + widget.setPropertyValue("no_animation", false); +}else + widget.setPropertyValue("no_animation", true); + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/ReadFileExample.js b/core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/ReadFileExample.js new file mode 100644 index 000000000..533f78c6c --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/ReadFileExample.js @@ -0,0 +1,7 @@ +importPackage(Packages.org.csstudio.opibuilder.scriptUtil); + +var filePath = display.getWidget("filePath").getPropertyValue("text"); + +var text = FileUtil.readTextFile(filePath); + +display.getWidget("readLabel").setPropertyValue("text", text); \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/SWTDialog.js b/core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/SWTDialog.js new file mode 100644 index 000000000..1ce171375 --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/SWTDialog.js @@ -0,0 +1,60 @@ +importPackage(Packages.org.eclipse.swt); +importPackage(Packages.org.eclipse.swt.widgets); +importPackage(Packages.org.eclipse.swt.events); +importPackage(Packages.org.eclipse.swt.layout); +importPackage(Packages.org.eclipse.jface.dialogs); +importPackage(Packages.java.lang); +importPackage(Packages.org.csstudio.opibuilder.scriptUtil); + +if(PVUtil.getDouble(pvs[0]) == 100){ + execute(); +} + +function execute2(){ + var op = MessageDialog.openWarning( + null, "Warning", "The temperature you set is too high!"); +} + + + +function execute() { + //The script will be executed in the UI thread, so it is not allowed to create a new display. + var display = Display.getCurrent(); + var shell = new Shell(SWT.DIALOG_TRIM | SWT.APPLICATION_MODAL); + shell.setSize(465, 200); + shell.setText("MessageDialog"); + shell.setLayout(new GridLayout(5, false)); + text = new Text(shell, SWT.BORDER | SWT.MULTI | SWT.H_SCROLL + | SWT.V_SCROLL); + var data = new GridData(GridData.FILL_BOTH); + data.horizontalSpan = 5; + text.setLayoutData(data); + + confirm = new Button(shell, SWT.NONE); + confirm.setText("Confirm"); + gridconfirm = new GridData(); + gridconfirm.widthHint = 85; + gridconfirm.heightHint = 25; + confirm.setLayoutData(gridconfirm); + var information = new Button(shell, SWT.NONE); + information.setText("Information"); + var gridinformation = new GridData(); + gridinformation.widthHint = 85; + gridinformation.heightHint = 25; + information.setLayoutData(gridinformation); + + listener = { + widgetSelected:function(event) + { + text.setText("hello"); + var op = MessageDialog.openInformation(null, "Information", text.getText()); + + } + }; + alistener = new SelectionListener(listener); + information.addSelectionListener(alistener); + + shell.open(); + shell.layout(); + +} \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/SelectColorMap.js b/core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/SelectColorMap.js new file mode 100644 index 000000000..5745efe86 --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/SelectColorMap.js @@ -0,0 +1,8 @@ +importPackage(Packages.org.csstudio.opibuilder.scriptUtil); + +var value = PVUtil.getString(pvArray[0]); + +//set colormap of IntensityGraph +widgetController.setColorMap(value); + + diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/SetIntensityGraphData.js b/core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/SetIntensityGraphData.js new file mode 100644 index 000000000..4605cc58b --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/SetIntensityGraphData.js @@ -0,0 +1,25 @@ +importPackage(Packages.org.csstudio.opibuilder.scriptUtil); + +var simuData = DataUtil.createDoubleArray(65536); +var value = PVUtil.getDouble(pvs[0]); +var dataSrc = PVUtil.getString(pvs[1]); + +if(dataSrc == "Linear Sine Wave"){ + for(var i=0; i<256; i++){ + for(var j=0; j<256; j++){ + simuData[i*256 + j] = Math.sin(j*6*Math.PI/256 + i*6*Math.PI/256 + value); + } + } +}else{ + for(var i=0; i<256; i++){ + for(var j=0; j<256; j++){ + var x = j-128; + var y = i-128; + var p = Math.sqrt(x*x + y*y); + simuData[i*256 + j] = Math.sin(p*2*Math.PI/256 + value); + } + } +} +widget.setValue(simuData); + + diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/SetIntensityGraphData.py b/core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/SetIntensityGraphData.py new file mode 100644 index 000000000..3daaf352d --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/SetIntensityGraphData.py @@ -0,0 +1,35 @@ +from org.csstudio.opibuilder.scriptUtil import PVUtil +from org.csstudio.ui.util.thread import UIBundlingThread +from org.eclipse.swt.widgets import Display +from java.lang import Thread, Runnable + +import array +import math + +currentDisplay = Display.getCurrent() + +class MyTask(Runnable): + def run(self): + simuData = array.array('d', range(65536)) + value = PVUtil.getDouble(pvs[0]) + dataSrc = PVUtil.getString(pvs[1]) + + if dataSrc == "Linear Sine Wave": + for i in range(256): + for j in range(256): + simuData[i*256 + j] = math.sin(j*6*math.pi/256 + i*6*math.pi/256 + value) + + else: + for i in range(256): + for j in range(256): + x = j-128 + y = i-128 + p = math.sqrt(x*x + y*y) + simuData[i*256 + j] = math.sin(p*2*math.pi/256 + value) + class UITask(Runnable): + def run(self): + widget.setValue(simuData) + UIBundlingThread.getInstance().addRunnable(currentDisplay, UITask()) +thread =Thread(MyTask()) +thread.start() + diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/SimpleDialog.js b/core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/SimpleDialog.js new file mode 100644 index 000000000..1f151b0a3 --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/SimpleDialog.js @@ -0,0 +1,5 @@ +importPackage(Packages.org.eclipse.jface.dialogs); + +MessageDialog.openInformation( + null, "Dialog from JavaScript", "This is a dialog opened from JavaScript"); + diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/TableContentMonitor.py b/core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/TableContentMonitor.py new file mode 100644 index 000000000..b5467f989 --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/TableContentMonitor.py @@ -0,0 +1,24 @@ +from org.csstudio.opibuilder.scriptUtil import PVUtil +from org.csstudio.swt.widgets.natives.SpreadSheetTable import ITableModifiedListener +from java.util import Arrays + +table = widget.getTable() + +class ContentListener(ITableModifiedListener): + def modified(self, content): + text="" + for row in content: + i=0 + for s in row: + text += s; + if i != (len(row)-1): + text += ", " + i+=1 + text = text + "\n" + display.getWidget("contentLabel").setPropertyValue("text", text) + +contentListener = ContentListener() +contentListener.modified(table.getContent()) +table.addModifiedListener(contentListener) + + diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/TableSelectionMonitor.py b/core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/TableSelectionMonitor.py new file mode 100644 index 000000000..83f84c93f --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/TableSelectionMonitor.py @@ -0,0 +1,22 @@ +from org.csstudio.opibuilder.scriptUtil import PVUtil +from org.csstudio.swt.widgets.natives.SpreadSheetTable import ITableSelectionChangedListener +from java.util import Arrays + +table = widget.getTable() + +class SelectionListener(ITableSelectionChangedListener): + def selectionChanged(self, selection): + text="" + for row in selection: + i=0 + for s in row: + text += s; + if i != (len(row)-1): + text += ", " + i+=1 + text = text + "\n" + display.getWidget("selectionLabel").setPropertyValue("text", text) + +table.addSelectionChangedListener(SelectionListener()) + + diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/ThreadExample.js b/core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/ThreadExample.js new file mode 100644 index 000000000..88e98b87d --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/ThreadExample.js @@ -0,0 +1,27 @@ +importPackage(Packages.org.csstudio.opibuilder.scriptUtil); +importPackage(Packages.java.lang); + + + +runnable = { + run:function() + { display.getWidget("Start_Button_JS").setPropertyValue("visible", false); + display.getWidget("Start_Button_Py").setPropertyValue("visible", false); + display.getWidget("Progress_Bar").setPropertyValue("visible", true); + for(var i=100; i>0; i--){ + if(!display.isActive()) + return; + if(i%10==0) + widget.setPropertyValue("text", "I'm going to finish in " + i/10 + " seconds..."); + pvs[1].setValue(100-i); + Thread.sleep(100); + } + pvs[1].setValue(100) + widget.setPropertyValue("text", "I'm done! Hit the button again to start me."); + display.getWidget("Start_Button_JS").setPropertyValue("visible", true); + display.getWidget("Start_Button_Py").setPropertyValue("visible", true); + display.getWidget("Progress_Bar").setPropertyValue("visible", false); + } + }; + +new Thread(new Runnable(runnable)).start(); diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/ThreadExample.py b/core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/ThreadExample.py new file mode 100644 index 000000000..11df924d3 --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/ThreadExample.py @@ -0,0 +1,25 @@ +from org.csstudio.opibuilder.scriptUtil import PVUtil, ConsoleUtil +from java.lang import Thread, Runnable + + +class MyTask(Runnable): + def run(self): + display.getWidget("Start_Button_Py").setPropertyValue("visible", False) + display.getWidget("Start_Button_JS").setPropertyValue("visible", False) + display.getWidget("Progress_Bar").setPropertyValue("visible", True) + + for i in range(100, 0, -1): + if not display.isActive(): + return + if i%10==0: + widget.setPropertyValue("text", "I'm going to finish in %s seconds..." % (i/10)) + pvs[1].setValue(100 - i) + Thread.sleep(100) + pvs[1].setValue(100) + widget.setPropertyValue("text", "I'm done! Hit the button again to start me.") + display.getWidget("Progress_Bar").setPropertyValue("visible", False) + display.getWidget("Start_Button_Py").setPropertyValue("visible", True) + display.getWidget("Start_Button_JS").setPropertyValue("visible", True) + +thread =Thread(MyTask()); +thread.start() diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/Timer.py b/core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/Timer.py new file mode 100644 index 000000000..8c476ec96 --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/Timer.py @@ -0,0 +1,80 @@ +from org.csstudio.opibuilder.scriptUtil import PVUtil, ConsoleUtil, ColorFontUtil +from java.lang import Thread, Runnable + +startButton = display.getWidget("Start_Button") +stopButton = display.getWidget("Stop_Button") +resetButton = display.getWidget("Reset_Button") +bar = display.getWidget("Progress_Bar") + +hourText = display.getWidget("hourText") +hourPV=hourText.getPV() +minText = display.getWidget("minText") +minPV=minText.getPV() +secText = display.getWidget("secText") +secPV=secText.getPV() + +timerLabel = display.getWidget("timerLabel") + +class Blink(Runnable): + def run(self): + i=0 + while PVUtil.getLong(pvs[2]) ==1: + Thread.sleep(500) + timerLabel.setPropertyValue("foreground_color", + ColorFontUtil.YELLOW if i%2==0 else ColorFontUtil.RED) + i=i+1 + timerLabel.setPropertyValue("foreground_color", ColorFontUtil.BLACK) + + + +class Timer(Runnable): + def run(self): + startButton.setEnabled(False) + stopButton.setEnabled(True) + resetButton.setEnabled(False) + bar.setVisible(True) + hourText.setEnabled(False) + minText.setEnabled(False) + secText.setEnabled(False) + hour = PVUtil.getLong(hourPV) + min = PVUtil.getLong(minPV) + sec = PVUtil.getLong(secPV) + #remember the values to be reset + resetButton.setVar("hour", hour) + resetButton.setVar("min",min) + resetButton.setVar("sec",sec) + timerLabel.setPropertyValue("foreground_color", ColorFontUtil.BLACK) + timerLabel.setPropertyValue("text", "Time Left:") + stopped=False + total = hour*3600+min*60+sec + for i in range(total,-1,-1): + if not display.isActive(): + return + if PVUtil.getLong(pvs[0])==0: + stopped = True + break + pvs[1].setValue(100-100*i/total) + hourPV.setValue(int(i/3600)) + minPV.setValue(int(i%3600/60)) + secPV.setValue(int(i%60)) + Thread.sleep(1000) + + timerLabel.setPropertyValue("foreground_color", ColorFontUtil.RED) + if stopped: + timerLabel.setPropertyValue("text", "Interrupted!") + else: + timerLabel.setPropertyValue("text", "Time's Up!!!") + widget.executeAction(0) + pvs[2].setValue(1) + Thread(Blink()).start() + startButton.setEnabled(True) + stopButton.setEnabled(False) + resetButton.setEnabled(True) + bar.setVisible(False) + hourText.setEnabled(True) + minText.setEnabled(True) + secText.setEnabled(True) + +if PVUtil.getLong(pvs[0])==1: + thread =Thread(Timer()); + thread.start() diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/WidgetUtil.py b/core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/WidgetUtil.py new file mode 100644 index 000000000..69048db7a --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/WidgetUtil.py @@ -0,0 +1,22 @@ +#A module to help set widget properties. + + +def setMyBounds(widget, x, y, width, height): + widget.setPropertyValue("x", x); + widget.setPropertyValue("y", y); + widget.setPropertyValue("width",width); + widget.setPropertyValue("height",height); + +def setMyForeColor(widget, color): + widget.setPropertyValue("foreground_color", color) + +def setForeColor(display, name, color): + display.getWidget(name).setPropertyValue("foreground_color", color) + +def setBackColor(display, name, color): + display.getWidget(name).setPropertyValue("background_color", color) + +def setText(display, name, text): + display.getWidget(name).setPropertyValue("text", text) + + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/WriteFileExample.js b/core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/WriteFileExample.js new file mode 100644 index 000000000..fc2f9c514 --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/WriteFileExample.js @@ -0,0 +1,13 @@ +importPackage(Packages.org.csstudio.opibuilder.scriptUtil); +importPackage(Packages.java.io); + +var filePath = display.getWidget("filePath").getPropertyValue("text"); + +var text = display.getWidget("textInput").getPropertyValue("text"); + +var isInWorkspace = display.getWidget("workspaceFile").getValue(); + +var isAppend = display.getWidget("append").getValue(); + + +FileUtil.writeTextFile(filePath, isInWorkspace.booleanValue(), text, isAppend.booleanValue()); \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/addAnnotations.py b/core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/addAnnotations.py new file mode 100644 index 000000000..e365c1427 --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/addAnnotations.py @@ -0,0 +1,57 @@ +from org.csstudio.opibuilder.scriptUtil import PVUtil +from org.csstudio.swt.widgets.figures.IntensityGraphFigure import IROIListener, IROIInfoProvider +from org.yamcs.studio.data import IPVListener +from java.lang import Thread, Runnable +from org.eclipse.swt.widgets import Display +from org.csstudio.swt.xygraph.figures import Annotation, IAnnotationListener + +leftPV = pvs[1] +rightPV = pvs[2] + + +xyGraph = widget.getFigure().getXYGraph() + +leftAnnotation = Annotation("Left", xyGraph.primaryXAxis, xyGraph.primaryYAxis) +leftAnnotation.setCursorLineStyle(Annotation.CursorLineStyle.UP_DOWN) +xyGraph.addAnnotation(leftAnnotation); + +class LeftAnnotationListener(IAnnotationListener): + '''Listener on left annotation + ''' + def annotationMoved(self, oldX, oldY, newX, newY): + leftPV.setValue(newX) + +leftAnnotation.addAnnotationListener(LeftAnnotationListener()) +leftAnnotation.setValues(2, 5) + +rightAnnotation = Annotation("Right", xyGraph.primaryXAxis, xyGraph.primaryYAxis) +rightAnnotation.setCursorLineStyle(Annotation.CursorLineStyle.UP_DOWN) +rightAnnotation.setValues(7,5) +xyGraph.addAnnotation(rightAnnotation); + +class RightAnnotationListener(IAnnotationListener): + '''Listener on right annotation + ''' + def annotationMoved(self, oldX, oldY, newX, newY): + rightPV.setValue(newX) + +rightAnnotation.addAnnotationListener(RightAnnotationListener()) + +currentDisplay = Display.getCurrent() +class UpdateAnnotationUITask(Runnable): + def run(self): + #this method must be called in UI thread + leftAnnotation.setValues(PVUtil.getDouble(leftPV), leftAnnotation.getYValue()) + rightAnnotation.setValues(PVUtil.getDouble(rightPV), rightAnnotation.getYValue()) + +class UpdateAnnotationPVListener(IPVListener): + '''Update the ROI while ROI PV value updated''' + def valueChanged(self, pv): + currentDisplay.asyncExec(UpdateAnnotationUITask()) + + +leftPV.addListener(UpdateAnnotationPVListener()) +rightPV.addListener(UpdateAnnotationPVListener()) + + + diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/addPixelInfoListener.py b/core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/addPixelInfoListener.py new file mode 100644 index 000000000..0cea1379d --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/addPixelInfoListener.py @@ -0,0 +1,11 @@ +from org.csstudio.opibuilder.scriptUtil import PVUtil +from org.csstudio.swt.widgets.figures.IntensityGraphFigure import IPixelInfoProvider + +class MyPixelInfoProvider(IPixelInfoProvider): + '''Provide custom information for each pixel. + For example the related geometry information on a pixel. + ''' + def getPixelInfo(self, xIndex, yIndex, xCoordinate, yCoordinate, pixelValue): + return "\nMy index is (" + str(xIndex) + ", " + str(yIndex) + " )" + +widget.getFigure().addPixelInfoProvider(MyPixelInfoProvider()) diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/addROI.py b/core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/addROI.py new file mode 100644 index 000000000..d87cee7ce --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/addROI.py @@ -0,0 +1,50 @@ +from org.csstudio.opibuilder.scriptUtil import PVUtil +from org.csstudio.swt.widgets.figures.IntensityGraphFigure import IROIListener, IROIInfoProvider +from org.yamcs.studio.data import IPVListener +from java.lang import Thread, Runnable +from org.eclipse.swt.widgets import Display + + +roiXPV = pvs[1] +roiYPV = pvs[2] +roiWPV = pvs[3] +roiHPV = pvs[4] + +intensityGraph = widget.getFigure() +name = PVUtil.getString(pvs[0]) + +class MyROIInfoProvider(IROIInfoProvider): + '''Provide custom information for ROI. + ''' + def getROIInfo(self, xIndex, yIndex, width, height): + return name + "(" + str(xIndex) + ", " + str(yIndex) + " )" + +class MyROIListener(IROIListener): + '''Listener on ROI updates. + ''' + def roiUpdated(self, xIndex, yIndex, width, height): + roiXPV.setValue(xIndex) + roiYPV.setValue(yIndex) + roiWPV.setValue(width) + roiHPV.setValue(height) + +currentDisplay = Display.getCurrent() +class UpdateROIUITask(Runnable): + def run(self): + #this method must be called in UI thread + intensityGraph.setROIDataBounds(name, PVUtil.getLong(roiXPV), PVUtil.getLong(roiYPV), PVUtil.getLong(roiWPV),PVUtil.getLong(roiHPV)) + +class UpdateROIFromPVListener(IPVListener): + '''Update the ROI while ROI PV value updated''' + def valueChanged(self, pv): + currentDisplay.asyncExec(UpdateROIUITask()) + +intensityGraph.addROI(name, MyROIListener(), MyROIInfoProvider()) + +roiXPV.addListener(UpdateROIFromPVListener()) +roiYPV.addListener(UpdateROIFromPVListener()) +roiWPV.addListener(UpdateROIFromPVListener()) +roiHPV.addListener(UpdateROIFromPVListener()) + + + diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/goHome.js b/core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/goHome.js new file mode 100644 index 000000000..10d887b20 --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/goHome.js @@ -0,0 +1,4 @@ +importPackage(Packages.org.csstudio.opibuilder.scriptUtil); + +ScriptUtil.closeCurrentOPI(); +ScriptUtil.openOPI(widget, "../main.opi",0, null); \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/myFile.txt b/core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/myFile.txt new file mode 100644 index 000000000..9ac2d8dbb --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/myFile.txt @@ -0,0 +1 @@ +Type the text to be written to the file here. \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/openHelp.js b/core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/openHelp.js new file mode 100644 index 000000000..3ebef63fb --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/openHelp.js @@ -0,0 +1,7 @@ +importPackage(Packages.org.csstudio.opibuilder.scriptUtil); +importPackage(Packages.org.eclipse.ui) + +var helpFile=widget.getPropertyValue("name"); + +PlatformUI.getWorkbench().getHelpSystem().displayHelpResource( + "/org.csstudio.opibuilder/html/" + helpFile); \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/1_1_Rectangle_Ellipse.opi b/core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/1_1_Rectangle_Ellipse.opi new file mode 100644 index 000000000..efa43865a --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/1_1_Rectangle_Ellipse.opi @@ -0,0 +1,1446 @@ + + + false + + true + + -4499eab:1386c3a53ab:-7fd2 + 3.2.0.qualifier + + false + 600 + Rectangel_Ellipse + true + false + + + + + + + Display + true + 800 + + true + 4 + + true + -1 + -1 + + + -1 + -1 + + + true + + true + -4499eab:1386c3a53ab:-7fc9 + + 44 + widgets/ShapeWidgets.html + + true + true + true + + true + false + + + + + + + true + Grouping Container + + Default + + 185 + 0 + + true + 1 + + + + 549 + + + ../scripts/openHelp.js + + false + Open Help + + + 600 + + + true + 1 + -4499eab:1386c3a53ab:-7fc8 + false + + 22 + Label_28 + + true + true + false + + true + false + + + + + + + Label + true + See Online Help + + + + 135 + 0 + + 1 + + + + 1 + + 11 + true + + 41 + + + false + true + 20 + true + 0.0 + -4499eab:1386c3a53ab:-7fc7 + 0.0 + + 0 + 1 + true + Polyline + false + 255 + + true + true + true + + + + + + false + + + + + + + + Polyline + true + false + + Default + + 120 + 0 + 0 + + + 1 + 1 + true + + + + + 32 + $(pv_name) +$(pv_value) + 49 + + + 0 + 0 + true + -4499eab:1386c3a53ab:-7fc6 + true + + 44 + Image + true + + true + true + false + + + + + + + + Image + true + + Default + + 42 + false + false + + + 1.0 + 0.0 + + + 0.0 + 1.0 + + + 0 + 0 + + false + 0 + 0 + 1 + ../pictures/onlineHelp.gif + + + + + 0 + + 8 + + + + + true + + true + -2da06158:1386c4a81f1:-7d2e + + 267 + Grouping Container + + true + true + false + + true + false + + + + + + + true + Grouping Container + + Default + + 562 + 14 + + false + 1 + + + + 267 + + 16 + + + false + true + 0.0 + + + + -4499eab:1386c3a53ab:-7fcb + + + + + 55 + true + Rectangle_1 + false + 255 + + true + true + false + + false + + + + + + + + Rectangle + true + + + + false + + Default + + 142 + 0 + 0 + + + 1 + 1 + true + + + + + 160 + + 15 + true + + + false + true + 0.0 + + + + -2da06158:1386c4a81f1:-7f68 + + + + + 55 + true + 16 + Rectangle_1 + false + 255 + + true + true + false + + false + + 16 + + + + + + + Rectangle + true + + + + false + + Default + + 142 + 0 + 0 + + + 1 + 1 + true + + + + + 160 + + 212 + true + + + false + true + 0.0 + + + + -2da06158:1386c4a81f1:-7f2d + + + + + 73 + true + Rectangle_1 + false + 255 + + true + true + false + + false + + + + + + + + Rectangle + true + + + + false + + Default + + 142 + 0 + 0 + + + 1 + 1 + true + + + + + 151 + + 397 + true + + + false + true + 50.0 + + + + -2da06158:1386c4a81f1:-7ec2 + + + + + 122 + true + Rectangle_5 + false + 255 + + true + true + false + + false + sim://ramp(0,100,1,0.1) + + + + + + + Rectangle + true + + + + false + + Default + + 72 + 0 + 0 + + + + pv0 + + $(pv_name) + + + + 1 + 1 + false + + + + + 19 + $(pv_name) +$(pv_value) + 50 + true + + + false + true + 50.0 + + + + -2da06158:1386c4a81f1:-7ec1 + + + + + 123 + true + 16 + Rectangle_6 + false + 255 + + true + true + false + + false + sim://ramp(0,100,1,0.1) + 16 + + + + + + + Rectangle + true + + + + false + + Default + + 77 + 0 + 0 + + + + pv0 + + $(pv_name) + + + + 1 + 1 + false + + + + + 18 + $(pv_name) +$(pv_value) + 244 + true + + + false + true + 50.0 + + + + -2da06158:1386c4a81f1:-7ec0 + + + + + 108 + true + Rectangle_7 + false + 255 + + true + true + false + + false + sim://ramp(0,100,1,0.1) + + + + + + + Rectangle + true + + + + false + + Default + + 108 + 0 + 0 + + + + pv0 + + $(pv_name) + + + + 1 + 1 + false + + + + + 26 + $(pv_name) +$(pv_value) + 414 + true + + + true + 1 + -2da06158:1386c4a81f1:-7d6c + false + + 30 + Label + + true + true + false + + true + false + + + + + + + Label + true + Gradient Effect + + Default Bold + + 143 + 0 + + 1 + + + + 1 + + 230 + true + + 203 + + + + + true + + true + -2da06158:1386c4a81f1:-7d0a + + 267 + Grouping Container + + true + true + false + + true + false + + + + + + + true + Grouping Container + + Default + + 176 + 14 + + false + 1 + + + + 267 + + 605 + + + false + true + 0.0 + + + + -2da06158:1386c4a81f1:-7de5 + + + + + 100 + true + Rectangle_8 + false + 200 + + true + true + false + + false + + + + + + + + Rectangle + true + + + + false + + Default + + 100 + 0 + 0 + + + 1 + 0 + true + + + + + 13 + + 13 + false + + + false + true + 0.0 + + + + -2da06158:1386c4a81f1:-7dd6 + + + + + 100 + true + 16 + Rounded Rectangle + false + 200 + + true + true + false + + false + + 16 + + + + + + + Rounded Rectangle + true + + + + false + + Default + + 100 + 0 + 0 + + + 1 + 0 + true + + + + + 64 + + 68 + false + + + false + true + 0.0 + + + + -2da06158:1386c4a81f1:-7db6 + + + + + 100 + true + Ellipse_3 + false + 200 + + true + true + true + + false + + + + + + + + Ellipse + true + + + + false + + Default + + 100 + 0 + 0 + + + 1 + 0 + true + + + + + 125 + + 13 + false + + + true + 1 + -2da06158:1386c4a81f1:-7d16 + false + + 25 + Label + + true + true + false + + true + false + + + + + + + Label + true + Alpha Effect + + Default Bold + + 122 + 0 + + 1 + + + + 1 + + 231 + true + + 24 + + + + + true + + true + -2da06158:1386c4a81f1:-7aec + + 131 + Grouping Container + + true + true + false + + true + false + + + + + + + true + Grouping Container + + Default + + 765 + 14 + + false + 1 + + + + 120 + + 16 + + + false + true + 30.0 + + + + -4499eab:1386c3a53ab:-7fce + + + + + 55 + true + Rectangle + false + 255 + + true + true + false + + false + sim://ramp(0,100,1,0.1) + + + + + + + Rectangle + true + + + + false + + Default + + 142 + 0 + 0 + + + + pv0 + + $(pv_name) + + + + 1 + 0 + true + + + + + 35 + $(pv_name) +$(pv_value) + 45 + false + + + false + true + 40.0 + + + + -4499eab:1386c3a53ab:-7fcd + + + + + 73 + true + Ellipse + true + 255 + + true + true + true + + false + sim://ramp(0,100,1,0.1) + + + + + + + Ellipse + true + + + + false + + Default + + 141 + 0 + 0 + + + + pv0 + + $(pv_name) + + + + 1 + 0 + true + + + + + 26 + $(pv_name) +$(pv_value) + 427 + false + + + false + true + 30.0 + + + + -4499eab:1386c3a53ab:-7f73 + + + + + 55 + true + 16 + Rectangle + false + 255 + + true + true + false + + false + sim://ramp(0,100,1,0.1) + 16 + + + + + + + Rectangle + true + + + + false + + Default + + 142 + 0 + 0 + + + + pv0 + + $(pv_name) + + + + 1 + 0 + true + + + + + 35 + $(pv_name) +$(pv_value) + 242 + false + + + false + true + 40.0 + + + + -2da06158:1386c4a81f1:-7afa + + + + + 94 + true + Ellipse_1 + true + 255 + + true + true + true + + true + sim://ramp(0,100,1,0.1) + + + + + + + Ellipse + true + + + + false + + Default + + 94 + 1 + 0 + + + + pv0 + + $(pv_name) + + + + 1 + 1 + false + + + + + 16 + $(pv_name) +$(pv_value) + 616 + false + + + + false + true + -2f5e33aa:1387c0f437a:-7ba1 + + 38 + + Action Button + false + + true + true + false + + + + + + + + + Action Button + true + Go Home + false + + Default + + 97 + 0 + 0 + ../pictures/home-16x16.png + + + false + 1 + + + + 552 + + + ../scripts/goHome.js + + false + + + + $(pv_name) +$(pv_value) + 16 + + + + true + + true + -2f5e33aa:1387c0f437a:-7b6a + + 98 + Grouping Container_3 + + true + true + false + + true + false + + + + + + + true + Grouping Container + + Default + + 765 + 14 + + false + 1 + + + + 7 + + 16 + + + true + 1 + -4499eab:1386c3a53ab:-7fd1 + false + + 86 + Label_8 + + true + true + false + + true + false + + + + + + + Label + true + Rectangle +Rounded Rectangle +Ellipse + + Header 2 + + 295 + 0 + + 1 + + + + 1 + + 6 + true + + 22 + + + true + 1 + -4499eab:1386c3a53ab:-7fd0 + false + + 43 + Label_6 + + true + true + false + + true + false + + + + + + + Label + true + Examples + + Header 1 + + 451 + 0 + + 1 + + + + 1 + + 43 + true + + 285 + + + true + 1 + -4499eab:1386c3a53ab:-7fcf + false + + 44 + Label_9 + + true + true + false + + true + false + + + + + + + Label + true + Best OPI Yet (BOY) + + Header 1 + + 451 + 0 + + 1 + + + + 1 + + 0 + true + + 294 + + + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/1_2_Image.opi b/core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/1_2_Image.opi new file mode 100644 index 000000000..f5e8ae7b3 --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/1_2_Image.opi @@ -0,0 +1,913 @@ + + + true + + 22a37a1d:1387c6b6909:-7c2c + false + false + + 600 + + true + + 4.0.104.201511172011 + true + Display + + true + -1 + -1 + + + + + 800 + -1 + Image + 4 + false + -1 + true + + + + + + 1 + + 0 + + true + 22a37a1d:1387c6b6909:-7c2b + false + false + Support GIF, PNG, JPG, JPEG, BMP image file. Image file path can be URL. For exampe: http://neutrons.ornl.gov/images/sns_aerial.jpg + + 73 + 1 + + true + true + false + + true + 1 + + + + Label + true + + + + 781 + 17 + Label_4 + 101 + + + + + false + + Default + + + + 0 + $(pv_name) +$(pv_value) + 1 + + true + 22a37a1d:1387c6b6909:-7c2a + false + true + Special Properties + + 16 + 1 + + true + true + false + + true + 1 + + + + Label + true + + + + 117 + 321 + Label_5 + 95 + + + + + false + + + + + + 0 + + 1 + + true + 22a37a1d:1387c6b6909:-7c29 + false + false + Image + + 86 + 1 + + true + true + false + + true + 1 + + + + Label + true + + + + 295 + 17 + Label_8 + 6 + + + + + false + + + + + + 0 + + 1 + + true + 22a37a1d:1387c6b6909:-7c28 + false + false + Examples + + 43 + 1 + + true + true + false + + true + 1 + + + + Label + true + + + + 451 + 311 + Label_6 + 49 + + + + + false + + + + + + 0 + + 1 + + true + 22a37a1d:1387c6b6909:-7c27 + false + false + Best OPI Yet (BOY) + + 44 + 1 + + true + true + false + + true + 1 + + + + Label + true + + + + 451 + 311 + Label_9 + 6 + + + + + false + + + + + + 0 + + + 0 + true + 22a37a1d:1387c6b6909:-7c26 + false + ../pictures/yangshuo-china.jpg + + 235 + 1 + + true + true + false + + false + true + 0 + 0 + + + + false + Image + false + + + + + + 1.0 + 0.0 + + + 0.0 + 1.0 + + + 355 + 21 + Image_1 + 209 + + + + + 0 + 0 + true + false + + Default + + + + 0 + + + 0 + true + 22a37a1d:1387c6b6909:-7c25 + true + ../pictures/horses.gif + + + sim://ramp(0,100,1,0.1) + loc://horsePosition(0) + loc://horsestop(1) + + + 57 + 1 + + false + false + false + + false + true + 0 + 0 + + + + false + Image + false + + + + + + 1.0 + 0.0 + + + 0.0 + 1.0 + + + 116 + 326 + Image + 484 + + + + + 0 + 0 + false + false + + Default + + + + false + 0 + false + false + $(pv_name) +$(pv_value) + 0 + + true + 22a37a1d:1387c6b6909:-7c24 + + Stop + + false + 31 + 1 + + true + true + false + + + true + + + + + Action Button + false + + + + 80 + 392 + Action Button_1 + 560 + + + + + + + loc://horsestop + 1 + 10 + + + + + + + + + + false + 0 + false + false + $(pv_name) +$(pv_value) + 0 + + true + 22a37a1d:1387c6b6909:-7c23 + + Run + + false + 31 + 1 + + true + true + false + + + true + + + + + Action Button + false + + + + 80 + 285 + Action Button_2 + 560 + + + + + + + loc://horsestop + 0 + 10 + + + + + + + + + + 0 + + + + + ../pictures/snscontrol.jpg + + + ../pictures/snsBuilding.jpg + + + platform:/plugin/org.csstudio.opibuilder/html/img/Widgets.png + + + https://www.google.com/images/srpr/logo11w.png + + sim://ramp(0,3,1,1) + + + 0 + true + 22a37a1d:1387c6b6909:-7c22 + false + + + 229 + 1 + + true + true + false + + false + true + 0 + 0 + + + + false + Image + false + + + + + + 1.0 + 0.0 + + + 0.0 + 1.0 + + + 316 + 424 + Image_2 + 212 + + + + + 0 + 0 + true + false + + Default + + + + 1 + + 0 + + true + 22a37a1d:1387c6b6909:-7c20 + false + false + Example 3: GIF animation and changing its position by script. + + 26 + 1 + + true + true + false + + true + 1 + + + + Label + true + + + + 368 + 224 + Label_5 + 452 + + + + + false + + + + + + 1 + + 0 + + true + 22a37a1d:1387c6b6909:-7c1f + false + false + Example 1: Static Image. + + 26 + 1 + + true + true + false + + true + 1 + + + + Label + true + + + + 160 + 119 + Label_6 + 181 + + + + + false + + + + + + 1 + + 0 + + true + 22a37a1d:1387c6b6909:-7c1e + false + false + Example 2: Dynamic loading image by rule. + + 26 + 1 + + true + true + false + + true + 1 + + + + Label + true + + + + 264 + 450 + Label_7 + 181 + + + + + false + + + + + + 0 + + + true + 22a37a1d:1387c6b6909:-7c1d + true + true + + 44 + 1 + + true + true + true + + + true + + true + + + + Grouping Container + + + + 185 + 613 + widgets/Image.html + 554 + + + + + + ../scripts/openHelp.js + + false + Open Help + + + false + false + + Default + + + 0 + + 1 + + true + 22a37a1d:1387c6b6909:-7c1c + true + false + See Online Help + + 22 + 1 + + true + true + false + + true + 1 + + + + Label + true + + + + 135 + 41 + Label_28 + 11 + + + + + false + + + + + + 0 + false + 1 + true + false + $(pv_name) +$(pv_value) + 0 + + true + 22a37a1d:1387c6b6909:-7c1b + false + + + + + true + + 255 + 0.0 + + false + 1 + 1 + + true + true + true + + true + + + + + true + 0 + 20 + Polyline + false + + + + 120 + 49 + Polyline + 32 + 0.0 + + + + + + Default + + + + 0 + + + 0 + true + 22a37a1d:1387c6b6909:-7c1a + true + ../pictures/onlineHelp.gif + + 44 + 1 + + true + true + false + + false + true + 0 + 0 + + + + false + Image + false + + + + + + 1.0 + 0.0 + + + 0.0 + 1.0 + + + 42 + 8 + Image + 0 + + + + + 0 + 0 + true + false + + Default + + + + + false + 0 + false + $(pv_name) +$(pv_value) + 0 + + true + 66d1507f:138820a85e5:-7ef2 + + Go Home + + false + 38 + 1 + + true + true + false + + ../pictures/home-16x16.png + true + + + + + Action Button + 97 + 17 + Action Button_4 + 557 + + + + + + + ../scripts/goHome.js + + false + + + + + Default + + + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/1_3_Label.opi b/core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/1_3_Label.opi new file mode 100644 index 000000000..cf83c2067 --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/1_3_Label.opi @@ -0,0 +1,610 @@ + + + false + + true + + 66d1507f:138820a85e5:-7eef + 3.1.0.qualifier + + false + 600 + Label + true + false + + + + + + + Display + true + 800 + + true + 4 + + true + -1 + -1 + + + -1 + -1 + + true + 1 + 66d1507f:138820a85e5:-7eee + false + + 118 + Label_7 + + true + true + false + + false + false + + + + + + + Label + true + In OPI editing mode, double click (or click twice) or press F2 while it is selected to edit the text. Click other place of the display to finish editing. Press Esc to abort editing. + + + + 347 + 1 + + 1 + + + + 0 + + 122 + true + + 23 + + + true + 1 + 66d1507f:138820a85e5:-7eed + false + + 86 + Label_8 + + true + true + false + + false + false + + + + + + + Label + true + Label + + + + 295 + 0 + + 1 + + + + 1 + + 6 + true + + 17 + + + true + 1 + 66d1507f:138820a85e5:-7eec + false + + 43 + Label_6 + + true + true + false + + false + false + + + + + + + Label + true + Examples + + + + 451 + 0 + + 1 + + + + 1 + + 49 + true + + 311 + + + true + 1 + 66d1507f:138820a85e5:-7eeb + false + + 44 + Label_9 + + true + true + false + + false + false + + + + + + + Label + true + Best OPI Yet (BOY) + + + + 451 + 0 + + 1 + + + + 1 + + 6 + true + + 311 + + + true + 1 + 66d1507f:138820a85e5:-7eea + false + + 20 + Label + + true + true + false + + true + false + + + + + + + Label + true + Hello Label! + + + + 150 + 0 + + 1 + + + + 1 + + 113 + true + + 472 + + + true + 1 + 66d1507f:138820a85e5:-7ee9 + false + + 16 + Label_6 + + true + true + false + + false + false + + + + + + + Label + true + Tip + + + + 86 + 0 + + 1 + + + + 1 + + 115 + true + $(pv_name) +$(pv_value) + 154 + + + true + 1 + 66d1507f:138820a85e5:-7ee8 + false + + 126 + Label_8 + + true + true + false + + false + false + + + + + + + Label + true + Mult Line Text Example + +Line 1.... +Lline2.... +Line 3.... + + + + 220 + 0 + + 1 + + + + 0 + + 159 + true + + 453 + + + + true + + true + 66d1507f:138820a85e5:-7ee6 + + 44 + widgets/Label.html + + false + false + false + + true + false + + + + + + + Grouping Container + true + + Default + + 185 + 0 + + true + 1 + + + + + + ../scripts/openHelp.js + + false + Open Help + + + 546 + + 601 + + true + 1 + 66d1507f:138820a85e5:-7ee5 + false + + 22 + Label_28 + + true + true + false + + true + false + + + + + + + Label + true + See Online Help + + + + 135 + 0 + + 1 + + + + 1 + + 11 + true + + 41 + + + false + true + 20 + true + 0.0 + 66d1507f:138820a85e5:-7ee4 + 0.0 + + 0 + 1 + true + Polyline + false + 255 + + true + true + true + + + + + + false + + + + + + + + Polyline + true + false + + Default + + 120 + 0 + 0 + + + 1 + 1 + true + + + + + 32 + $(pv_name) +$(pv_value) + 49 + + + 0 + 0 + true + 66d1507f:138820a85e5:-7ee3 + true + + 44 + Image + true + + true + true + false + + + + + + + + Image + true + + Default + + 42 + false + 0 + 0 + + 0 + 1 + ../pictures/onlineHelp.gif + + + + + 0 + + 8 + + + + true + 1 + 66d1507f:138820a85e5:-7ee2 + false + + 163 + Label_8 + + true + true + false + + false + true + + + + + + + Label + true + Show scorllbar and wrap words + +The quick brown fox jumps over the lazy dog. + +Line 1... + +Line 2... + +Line 3... + + + + 220 + 3 + + 1 + + + + 0 + + 314 + true + + 453 + + + false + true + 66d1507f:138820a85e5:-7ed9 + + 38 + Action Button + false + + true + true + false + + + + + + Button + true + Go Home + + Default + + 97 + 0 + 0 + ../pictures/home-16x16.png + + + false + 1 + + + + 549 + + + ../scripts/goHome.js + + false + + + + $(pv_name) +$(pv_value) + 23 + + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/1_4_Arc.opi b/core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/1_4_Arc.opi new file mode 100644 index 000000000..0f4fbc736 --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/1_4_Arc.opi @@ -0,0 +1,594 @@ + + + false + + true + + -1ba7f91e:1363666d19c:-7dec + 3.1.0.qualifier + + false + 600 + Arc + true + false + + + + + + + Display + true + 800 + + true + 4 + + true + 0 + 0 + + + -1 + -1 + + true + 1 + -1ba7f91e:1363666d19c:-7deb + false + + 86 + Label_8 + + true + true + false + + false + false + + + + + + + Label + true + Arc + + + + 295 + 0 + + 1 + + + + 1 + + 6 + true + + 17 + + + true + 1 + -1ba7f91e:1363666d19c:-7dea + false + + 43 + Label_6 + + true + true + false + + false + false + + + + + + + Label + true + Examples + + + + 451 + 0 + + 1 + + + + 1 + + 49 + true + + 311 + + + true + 1 + -1ba7f91e:1363666d19c:-7de9 + false + + 44 + Label_9 + + true + true + false + + false + false + + + + + + + Label + true + Best OPI Yet (BOY) + + + + 451 + 0 + + 1 + + + + 1 + + 6 + true + + 311 + + + false + true + 135 + -1ba7f91e:1363666d19c:-7de8 + 15 + + 118 + true + Arc + false + 255 + + true + true + true + + + + + + + + + Arc + true + false + + Default + + 113 + 0 + false + 0 + + + 1 + 1 + + + + + 168 + $(pv_name) +$(pv_value) + 72 + + + false + true + 135 + -1ba7f91e:1363666d19c:-7de7 + 15 + + 118 + true + Arc_1 + false + 255 + + true + true + true + + + + + + + + + Arc + true + false + + Default + + 113 + 0 + true + 0 + + + + pv0 + + sim://ramp(0,360, 10, 0.1) + + + + 1 + 1 + + + + + 168 + $(pv_name) +$(pv_value) + 416 + + + false + true + 135 + -1ba7f91e:1363666d19c:-7de6 + 15 + + 118 + true + Arc_2 + false + 255 + + true + true + true + + + + + + + + + Arc + true + false + + Default + + 113 + 0 + true + 0 + + + + pv0 + + sim://ramp(0,360, 10, 0.1) + + + + 1 + 2 + + + + + 168 + $(pv_name) +$(pv_value) + 588 + + + false + true + 120 + -1ba7f91e:1363666d19c:-7de5 + 30 + + 118 + true + Arc_3 + false + 255 + + true + true + true + + sim://ramp + + + + + + + Arc + true + true + + Default + + 113 + 2 + true + 0 + + + 1 + 2 + + + + + 168 + $(pv_name) +$(pv_value) + 244 + + + + true + + true + -1ba7f91e:1363666d19c:-7de3 + + 44 + widgets/ShapeWidgets.html + + true + true + false + + true + false + + + + + + + Grouping Container + true + + Default + + 185 + 0 + + true + 1 + + + + + + ../scripts/openHelp.js + + false + Open Help + + + 529 + + 561 + + true + 1 + -1ba7f91e:1363666d19c:-7de2 + false + + 22 + Label_28 + + true + true + false + + true + false + + + + + + + Label + true + See Online Help + + + + 135 + 0 + + 1 + + + + 1 + + 11 + true + + 41 + + + false + true + 20 + true + 0.0 + -1ba7f91e:1363666d19c:-7de1 + 0.0 + + 0 + 1 + true + Polyline + false + 255 + + true + true + true + + + + + + false + + + + + + + + Polyline + true + false + + Default + + 120 + 0 + 0 + + + 1 + 1 + true + + + + + 32 + $(pv_name) +$(pv_value) + 49 + + + 0 + 0 + true + -1ba7f91e:1363666d19c:-7de0 + true + + 44 + Image + true + + true + true + false + + + + + + + + Image + true + + Default + + 42 + false + 0 + 0 + + 0 + 1 + ../pictures/onlineHelp.gif + + + + + 0 + + 8 + + + + false + true + 66d1507f:138820a85e5:-7ebd + + 38 + Action Button_1 + false + + true + true + false + + + + + + Button + true + Go Home + + Default + + 97 + 0 + 0 + ../pictures/home-16x16.png + + + false + 1 + + + + 552 + + + ../scripts/goHome.js + + false + + + + $(pv_name) +$(pv_value) + 17 + + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/1_5_Polyline_Polygon.opi b/core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/1_5_Polyline_Polygon.opi new file mode 100644 index 000000000..4caef3e86 --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/1_5_Polyline_Polygon.opi @@ -0,0 +1,1398 @@ + + + false + + true + + -6419951d:135aff030c0:-7c01 + 3.1.0.qualifier + + false + 600 + Polyline/Polygon + true + true + + + + + + + Display + true + 800 + + true + 4 + + true + -1 + -1 + + + -1 + -1 + + true + 1 + -6419951d:135aff030c0:-7c00 + false + + 86 + Label_8 + + true + true + false + + false + false + + + + + + + Label + true + Polyline/Polygon + + + + 295 + 0 + + 1 + + + + 1 + + 6 + true + + 17 + + + true + 1 + -6419951d:135aff030c0:-7bff + false + + 43 + Label_6 + + true + true + false + + false + false + + + + + + + Label + true + Examples + + + + 451 + 0 + + 1 + + + + 1 + + 49 + true + + 311 + + + true + 1 + -6419951d:135aff030c0:-7bfe + false + + 44 + Label_9 + + true + true + false + + false + false + + + + + + + Label + true + Best OPI Yet (BOY) + + + + 451 + 0 + + 1 + + + + 1 + + 6 + true + + 311 + + + false + true + 20 + true + 100.0 + -6419951d:135aff030c0:-7bfd + 0.0 + + 0 + 102 + true + Polyline + false + 255 + + true + true + true + + + + + + + + + + false + + + + + + + + Polyline + true + false + + Default + + 101 + 0 + 0 + + + + pv0 + + sim://ramp(0,360,10,0.01) + + + + 1 + 1 + true + + + + + 385 + $(pv_name) +$(pv_value) + 170 + + + false + true + 100.0 + + + + -6419951d:135aff030c0:-7bfc + 0.0 + + 120 + true + Polygon + false + 255 + + true + true + true + + + + + + + + + + false + + + + + + + + Polygon + true + false + + Default + + 104 + 0 + 0 + + + + pv0 + + sim://ramp(0,100,1,0.1) + + + + 1 + 0 + true + + + + + 376 + $(pv_name) +$(pv_value) + 516 + + + false + false + 20 + true + 100.0 + -6419951d:135aff030c0:-7bfb + 0.0 + + 2 + 1 + true + Polyline_1 + false + 255 + + true + true + true + + + + + + false + + + + + + + + Polyline + true + false + + Default + + 123 + 0 + 0 + + + 1 + 1 + true + + + + + 233 + $(pv_name) +$(pv_value) + 175 + + + false + true + 20 + true + 100.0 + -6419951d:135aff030c0:-7bfa + 0.0 + + 3 + 74 + true + Polyline_2 + true + 255 + + true + true + true + + + + + + + false + sim://noise + + + + + + + Polyline + true + false + + Default + + 93 + 0 + 0 + + + 1 + 4 + true + + + + + 288 + $(pv_name) +$(pv_value) + 169 + + + false + false + 10 + true + 100.0 + -6419951d:135aff030c0:-7bf9 + 0.0 + + 3 + 1 + false + Polyline_3 + false + 255 + + true + true + true + + + + + + false + + + + + + + + Polyline + true + false + + Default + + 123 + 1 + 0 + + + 1 + 1 + true + + + + + 265 + $(pv_name) +$(pv_value) + 174 + + + false + true + 40.0 + + + + -6419951d:135aff030c0:-7bf8 + 0.0 + + 103 + true + Polygon_1 + false + 255 + + true + true + true + + + + + + + false + + + + + + + + Polygon + true + false + + Default + + 68 + 0 + 0 + + + + pv0 + + sim://ramp(0,100,1,0.1) + + + + 1 + 0 + false + + + + + 384 + $(pv_name) +$(pv_value) + 360 + + + false + true + 100.0 + + + + -6419951d:135aff030c0:-7bf7 + 0.0 + + 97 + true + Polygon_3 + false + 255 + + true + true + true + + + + + + + + + false + + + + + + + + Polygon + true + false + + Default + + 148 + 0 + 0 + + + 1 + 0 + true + + + + + 233 + $(pv_name) +$(pv_value) + 320 + + + true + 1 + -6419951d:135aff030c0:-7bf6 + false + + 76 + Label_7 + + true + true + false + + false + false + + + + + + + Label + true + While creating widget, each click will add a new point, double click to finish creating. After created, you are still able to move its points by dragging the yellow square handlers while it is selected. You can flip or rotate it from <code>Orientation</code> context menu. + + Default + + 745 + 1 + + 1 + + + + 0 + + 101 + true + + 17 + + + true + 1 + -6419951d:135aff030c0:-7bf5 + true + + 16 + Label_8 + + true + true + false + + false + false + + + + + + + Label + true + Operations + + + + 69 + 0 + + 1 + + + + 1 + + 94 + true + $(pv_name) +$(pv_value) + 317 + + + + true + + true + -6419951d:135aff030c0:-7bf4 + + 52 + Grouping Container + + true + true + true + + true + true + + + + + + + Grouping Container + true + + Default + + 49 + 0 + + false + 1 + + + + + + loc://bool + 1 + 10 + + + + loc://bool + 0 + 10 + + + + 246 + + 504 + + false + true + 20 + true + 0.0 + -6419951d:135aff030c0:-7bf3 + 0.0 + + 0 + 30 + true + Polyline_4 + false + 255 + + true + true + true + + + + + + false + + + + + + + + Polyline + true + false + + Default + + 1 + 0 + 0 + + + + + + + + + + + + + sim://ramp(0,1,1,1) + + + + 1 + 2 + true + + + + + 1 + $(pv.name) + 20 + + + false + true + 0.0 + + + + -6419951d:135aff030c0:-7bf2 + 0.0 + + 30 + true + Polygon_1 + false + 255 + + true + true + true + + + + + + + + false + + + + + + + + Polygon + true + false + + Default + + 40 + 0 + 0 + + + + + + + + + + + + + sim://ramp(0,1,1,1) + + + + 1 + 0 + true + + + + + 15 + $(pv.name) + 0 + + + false + true + 180 + -6419951d:135aff030c0:-7bf1 + 0 + + 21 + true + Arc + false + 255 + + true + true + true + + + + + + + + + Arc + true + false + + Default + + 38 + 0 + true + 0 + + + + + + + + + + + + + sim://ramp(0,1,1,1) + + + + 1 + 0 + + + + + 0 + $(pv.name) + 1 + + + + + true + + true + -6419951d:135aff030c0:-7bf0 + + 59 + Grouping Container_1 + + true + true + true + + true + true + + + + + + + Grouping Container + true + + Default + + 60 + 0 + + true + 1 + + + + + 239 + + 576 + + false + true + 0.0 + + + + -6419951d:135aff030c0:-7bef + + + + + 48 + true + Ellipse + false + 255 + + true + true + true + + false + + + + + + + + Ellipse + true + + + + false + + Default + + 46 + 0 + 0 + + + + + + + + + + + + + sim://ramp(0,1,1,1) + + + + 1 + 0 + true + + + + + 0 + $(pv_name) +$(pv_value) + 0 + false + + + false + true + 0.0 + + + + -6419951d:135aff030c0:-7bee + 0.0 + + 21 + true + Polygon_4 + false + 255 + + true + true + true + + + + + + + + false + + + + + + + + Polygon + true + false + + Default + + 46 + 0 + 0 + + + + + + + + + + + + + sim://ramp(0,1,1,1) + + + + 1 + 0 + true + + + + + 38 + $(pv_name) +$(pv_value) + 0 + + + false + true + 0.0 + + + + -6419951d:135aff030c0:-7bed + + + + + 16 + true + Rectangle + false + 255 + + true + true + false + + false + + + + + + + + Rectangle + true + + + + false + + Default + + 37 + 0 + 0 + + + + + + + + + + + + + sim://ramp(0,1,1,1) + + + + 1 + 0 + true + + + + + 0 + $(pv_name) +$(pv_value) + 23 + false + + + + + true + + true + -6419951d:135aff030c0:-7beb + + 44 + widgets/ShapeWidgets.html + + false + false + false + + true + false + + + + + + + Grouping Container + true + + Default + + 185 + 0 + + true + 1 + + + + + + ../scripts/openHelp.js + + false + Open Help + + + 548 + + 604 + + true + 1 + -6419951d:135aff030c0:-7bea + false + + 22 + Label_28 + + true + true + false + + true + false + + + + + + + Label + true + See Online Help + + + + 135 + 0 + + 1 + + + + 1 + + 11 + true + + 41 + + + false + true + 20 + true + 0.0 + -6419951d:135aff030c0:-7be9 + 0.0 + + 0 + 1 + true + Polyline + false + 255 + + true + true + true + + + + + + false + + + + + + + + Polyline + true + false + + Default + + 120 + 0 + 0 + + + 1 + 1 + true + + + + + 32 + $(pv_name) +$(pv_value) + 49 + + + 0 + 0 + true + -6419951d:135aff030c0:-7be8 + true + + 44 + Image + true + + true + true + false + + + + + + + + Image + true + + Default + + 42 + false + 0 + 0 + + 0 + 1 + ../pictures/onlineHelp.gif + + + + + 0 + + 8 + + + + false + true + 66d1507f:138820a85e5:-7e51 + + 38 + Action Button + false + + true + true + false + + + + + + Button + true + Go Home + + Default + + 97 + 0 + 0 + ../pictures/home-16x16.png + + + false + 1 + + + + 551 + + + ../scripts/goHome.js + + false + + + + $(pv_name) +$(pv_value) + 17 + + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/1_6_Connection.opi b/core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/1_6_Connection.opi new file mode 100644 index 000000000..e3e75cfe2 --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/1_6_Connection.opi @@ -0,0 +1,961 @@ + + + false + + true + + -2e0ee751:133ad23d3fa:-7044 + 3.1.0.qualifier + + + ChangeLineWidthScript + + sim://ramp(1,10,1,0.2) + + + false + 600 + Connection + true + false + + + + + + + Display + true + 800 + + true + 4 + + true + -1 + -1 + + + -1 + -1 + + true + 1 + -2e0ee751:133ad23d3fa:-7043 + false + + 86 + Label_8 + + true + true + false + + false + false + + + + + + + Label + true + Connection + + + + 295 + 0 + + 1 + + + + 1 + + 6 + true + + 17 + + + true + 1 + -2e0ee751:133ad23d3fa:-7042 + false + + 43 + Label_6 + + true + true + false + + false + false + + + + + + + Label + true + Examples + + + + 451 + 0 + + 1 + + + + 1 + + 49 + true + + 311 + + + true + 1 + -2e0ee751:133ad23d3fa:-7041 + false + + 44 + Label_9 + + true + true + false + + false + false + + + + + + + Label + true + Best OPI Yet (BOY) + + + + 451 + 0 + + 1 + + + + 1 + + 6 + true + + 311 + + + true + 1 + -2e0ee751:133ad23d3fa:-7039 + false + + 90 + Label_7 + + true + true + false + + false + false + + + + + + + Label + true + Connection is a line attatched to two widgets, which will be automatically re-routed when widgets are moved. +Connection is created by Connection tool on palette. In Edit mode, attach the connection to two widgets by clicking on two terminals on widgets. If the connection router is Manhattan, you may mannually reroute it by dragging the small yellow square in middle of a line segment. + + Default + + 745 + 1 + + 1 + + + + 0 + + 101 + true + + 17 + + + true + 1 + -2e0ee751:133ad23d3fa:-7038 + true + + 16 + Label_8 + + true + true + false + + false + false + + + + + + + Label + true + Operations + + + + 69 + 0 + + 1 + + + + 1 + + 94 + true + $(pv_name) +$(pv_value) + 317 + + + + true + + true + -2e0ee751:133ad23d3fa:-702e + + 44 + widgets/Connection.html + + false + false + false + + true + false + + + + + + + Grouping Container + true + + Default + + 185 + 0 + + true + 1 + + + + + + ../scripts/openHelp.js + + false + Open Help + + + 548 + + 604 + + true + 1 + -2e0ee751:133ad23d3fa:-702d + false + + 22 + Label_28 + + true + true + false + + true + false + + + + + + + Label + true + See Online Help + + + + 135 + 0 + + 1 + + + + 1 + + 11 + true + + 41 + + + false + true + 20 + true + 0.0 + -2e0ee751:133ad23d3fa:-702c + 0.0 + + 0 + 1 + true + Polyline + false + 255 + + true + true + true + + + + + + false + + + + + + + + Polyline + true + false + + Default + + 120 + 0 + 0 + + + 1 + 1 + true + + + + + 32 + $(pv_name) +$(pv_value) + 49 + + + 0 + 0 + true + -2e0ee751:133ad23d3fa:-702b + true + + 44 + Image + true + + true + true + false + + + + + + + + Image + true + + Default + + 42 + false + 0 + 0 + + 0 + 1 + ../pictures/onlineHelp.gif + + + + + 0 + + 8 + + + + false + true + 0.0 + + + + ccf82dc:133ad4ee101:-7f58 + + + + + 41 + true + Rectangle + false + 255 + + true + true + false + + false + + + + + + + + Rectangle + true + + + + false + + Default + + 81 + 0 + 0 + + + 1 + 0 + true + + + + + 372 + $(pv_name) +$(pv_value) + 44 + false + + + 20.0 + false + true + + + + true + + 125 + 50 + false + + + + true + Gauge + true + + Default + + 125 + true + 0 + true + + true + true + 100.0 + 1 + false + 0.0 + ccf82dc:133ad4ee101:-7e46 + true + + true + + + + Gauge + + true + true + true + + + + + sim://sine(200,450,100,0.1) + + + + false + 80.0 + + Default + + 90.0 + true + + + + + + true + + + + true + + + + 10.0 + 280 + + 604 + $(pv_name) +$(pv_value) + + + false + true + 0.0 + + + + ccf82dc:133ad4ee101:-7d92 + + + + + 89 + true + Ellipse + false + 255 + + true + true + true + + false + + + + + + + + Ellipse + true + + + + false + + Default + + 89 + 0 + 0 + + + 1 + 0 + true + + + + + 204 + $(pv_name) +$(pv_value) + 40 + false + + + false + true + -1.7976931348623157E308 + 1 + false + false + ccf82dc:133ad4ee101:-77b7 + false + 0.0 + + 25 + Text Input_1 + false + + true + true + false + + 0 + true + false + 0 + sim://sine(200,450,100,0.1) + + + + + + + Text Input + true + + false + 0 + + Default + + 88 + 3 + + + 1 + 1.7976931348623157E308 + false + + + + 0 + + 472 + $(pv_name) +$(pv_value) + 379 + + + false + true + 0.0 + + + + -60e24287:133c6b5d52b:-77b4 + 0.0 + + 102 + true + Polygon_1 + false + 255 + + true + true + true + + + + + + + + + + + + + + false + + + + + + + + Polygon + true + false + + Default + + 101 + 0 + 0 + + + + pv0 + + sim://sine(200,450,100,0.1) + + + + 1 + 0 + true + + + + + 212 + $(pv_name) +$(pv_value) + 339 + + + true + 1 + -ca919f7:135a08539ab:-7f9b + false + + 43 + Label_12 + + true + true + false + + false + false + + + + + + + Label + true + A script attached to the Display can change connection's properties at runtime. + + Default + + 249 + 1 + + 1 + + + + 0 + + 196 + true + + 513 + + + false + true + 66d1507f:138820a85e5:-7e2f + + 38 + Action Button_1 + false + + true + true + false + + + + + + Button + true + Go Home + + Default + + 97 + 0 + 0 + ../pictures/home-16x16.png + + + false + 1 + + + + 551 + + + ../scripts/goHome.js + + false + + + + $(pv_name) +$(pv_value) + 9 + + + true + connection + TOP + 15 + 1 + + + + ccf82dc:133ad4ee101:-7f55 + 4 + 2 + true + 0 + connection + 2 + ccf82dc:133ad4ee101:-7f58 + + -60e24287:133c6b5d52b:-77b4 + + + true + connection + BOTTOM + 15 + 0 + + + + -60e24287:133c6b5d52b:-7ecf + RIGHT + 2 + true + 0 + connection + 2 + ccf82dc:133ad4ee101:-7e46 + + ccf82dc:133ad4ee101:-77b7 + + + false + connection + RIGHT + 15 + 0 + + + + ccf82dc:133ad4ee101:-7d90 + 2 + 0 + true + 1 + connection + 1 + ccf82dc:133ad4ee101:-7d92 + + -60e24287:133c6b5d52b:-77b4 + + + true + connection + LEFT + 15 + 4 + + + + -60e24287:133c6b5d52b:-7ecd + BOTTOM + 2 + true + 0 + LBConnection + 3 + ccf82dc:133ad4ee101:-77b7 + + ccf82dc:133ad4ee101:-7f58 + + + true + connection + 6 + 15 + 0 + + + + -60e24287:133c6b5d52b:-7eb6 + TOP + 3 + true + 0 + connection + 3 + -60e24287:133c6b5d52b:-77b4 + + ccf82dc:133ad4ee101:-77b7 + + + true + connection + 8 + 15 + 0 + + + + ccf82dc:133ad4ee101:-7e44 + TOP + 0 + true + 0 + RTConnection + 3 + -60e24287:133c6b5d52b:-77b4 + + ccf82dc:133ad4ee101:-7e46 + + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/2_1_LED.opi b/core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/2_1_LED.opi new file mode 100644 index 000000000..d7082c145 --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/2_1_LED.opi @@ -0,0 +1,808 @@ + + + false + + true + + 66d1507f:138820a85e5:-7e2c + 3.1.0.qualifier + + false + 600 + LED + true + false + + + + + + + Display + true + 800 + + true + 4 + + true + -1 + -1 + + + -1 + -1 + + true + 1 + 66d1507f:138820a85e5:-7e2b + false + + 86 + Label_8 + + true + true + false + + false + false + + + + + + + Label + true + LED/Byte Monitor +Image Boolean Indicator + + + + 295 + 0 + + 1 + + + + 1 + + 6 + true + + 17 + + + true + 1 + 66d1507f:138820a85e5:-7e2a + false + + 43 + Label_6 + + true + true + false + + false + false + + + + + + + Label + true + Examples + + + + 451 + 0 + + 1 + + + + 1 + + 49 + true + + 311 + + + true + 1 + 66d1507f:138820a85e5:-7e29 + false + + 44 + Label_9 + + true + true + false + + false + false + + + + + + + Label + true + Best OPI Yet (BOY) + + + + 451 + 0 + + 1 + + + + 1 + + 6 + true + + 311 + + + false + true + 66d1507f:138820a85e5:-7e28 + + false + + + + 40 + 0 + LED_8 + false + false + + true + true + true + + + + + sim://ramp(0,255,1,0.1) + + + + + + + OFF + LED + true + false + + + + 40 + 0 + false + + + 2 + 1 + ON + + + + + 170 + $(pv_name) +$(pv_value) + 101 + + + false + true + 66d1507f:138820a85e5:-7e27 + + true + + + + 30 + 0 + LED_9 + false + false + + true + true + true + + + + + sim://ramp(0,255,1,0.1) + + + + + + + OFF + LED + true + false + + + + 51 + 0 + false + + + 2 + 1 + ON + + + + + 237 + $(pv_name) +$(pv_value) + 95 + + + false + true + 66d1507f:138820a85e5:-7e26 + + false + + + + 40 + 0 + LED_10 + false + true + + true + true + true + + + + + sim://noise + + + + + + + OFF + LED + true + false + + + + 40 + 0 + true + + + 0 + 1 + ON + + + + + 170 + $(pv_name) +$(pv_value) + 238 + + + false + true + 66d1507f:138820a85e5:-7e25 + + true + + + + 40 + 0 + LED_11 + false + true + + true + true + true + + + + + sim://noise + + + + + + + OFF + LED + true + false + + + + 72 + 0 + true + + + 0 + 1 + ON + + + + + 228 + $(pv_name) +$(pv_value) + 222 + + + false + true + 66d1507f:138820a85e5:-7e23 + false + + false + 0 + + + + 198 + Byte Monitor_2 + false + + true + true + false + + + + + sim://ramp(0,255,1,0.1) + + + + + + + Byte Monitor + true + false + 8 + + Default + + 26 + 0 + true + + + 1 + false + + + + + 149 + $(pv_name) +$(pv_value) + 384 + + + false + true + 66d1507f:138820a85e5:-7e22 + true + + true + 0 + + + + 26 + Byte Monitor_1 + false + + true + true + false + + + + + sim://ramp(0,255,1,0.1) + + + + + + + Byte Monitor + true + false + 8 + + Default + + 198 + 0 + true + + + 1 + true + + + + + 228 + $(pv_name) +$(pv_value) + 474 + + + + true + + true + 66d1507f:138820a85e5:-7e21 + + 44 + widgets/LED.html + + true + true + true + + true + false + + + + + + + Grouping Container + true + + Default + + 185 + 0 + + true + 1 + + + + + + ../scripts/openHelp.js + + false + Open Help + + + 549 + + 603 + + true + 1 + 66d1507f:138820a85e5:-7e20 + false + + 22 + Label_28 + + true + true + false + + true + false + + + + + + + Label + true + See Online Help + + + + 135 + 0 + + 1 + + + + 1 + + 11 + true + + 41 + + + false + true + 20 + true + 0.0 + 66d1507f:138820a85e5:-7e1f + 0.0 + + 0 + 1 + true + Polyline + false + 255 + + true + true + true + + + + + + false + + + + + + + + Polyline + true + false + + Default + + 120 + 0 + 0 + + + 1 + 1 + true + + + + + 32 + $(pv_name) +$(pv_value) + 49 + + + 0 + 0 + true + 66d1507f:138820a85e5:-7e1e + true + + 44 + Image + true + + true + true + false + + + + + + + + Image + true + + Default + + 42 + false + 0 + 0 + + 0 + 1 + ../pictures/onlineHelp.gif + + + + + 0 + + 8 + + + + false + true + 66d1507f:138820a85e5:-7e1d + true + 0 + + 52 + 0 + Image Boolean Indicator + false + false + false + + false + false + false + + sim://ramp + + + + + + + OFF + Image Boolean Indicator + true + false + + Default + + 52 + 0 + + + 0 + 1 + ON + ../pictures/lightOff.png + + + + + 389 + ../pictures/lightOn.png + $(pv_name) +$(pv_value) + 110 + + + false + true + 66d1507f:138820a85e5:-7e1c + true + 0 + + 64 + 0 + Image Boolean Indicator_1 + false + false + false + + true + true + false + + sim://ramp + + + + + + + OFF + Image Boolean Indicator + true + false + + Default + + 64 + 0 + + + 0 + 1 + ON + ../pictures/pump_off.gif + + + + + 377 + ../pictures/pump_on.gif + $(pv_name) +$(pv_value) + 232 + + + false + true + 66d1507f:138820a85e5:-7e13 + + 38 + Action Button + false + + true + true + false + + + + + + Button + true + Go Home + + Default + + 97 + 0 + 0 + ../pictures/home-16x16.png + + + false + 1 + + + + 552 + + + ../scripts/goHome.js + + false + + + + $(pv_name) +$(pv_value) + 17 + + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/2_2_Text_Update.opi b/core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/2_2_Text_Update.opi new file mode 100644 index 000000000..2cbc82021 --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/2_2_Text_Update.opi @@ -0,0 +1,724 @@ + + + true + + true + + 66d1507f:138820a85e5:-7e10 + 3.2.0.qualifier + + false + 600 + Text Update + true + false + + + + + + + Display + true + 800 + + true + 4 + + false + -1 + -1 + + + -1 + -1 + + true + 1 + 66d1507f:138820a85e5:-7e0f + false + + 86 + Label_8 + + true + true + false + + false + false + + + + + + + Label + true + Text Update + + + + 295 + 0 + + 1 + + + + 1 + + 6 + true + + 17 + + + true + 1 + 66d1507f:138820a85e5:-7e0e + false + + 43 + Label_6 + + true + true + false + + false + false + + + + + + + Label + true + Examples + + + + 451 + 0 + + 1 + + + + 1 + + 49 + true + + 311 + + + true + 1 + 66d1507f:138820a85e5:-7e0d + false + + 44 + Label_9 + + true + true + false + + false + false + + + + + + + Label + true + Best OPI Yet (BOY) + + + + 451 + 0 + + 1 + + + + 1 + + 6 + true + + 311 + + + true + true + 1 + true + 66d1507f:138820a85e5:-7e0c + false + 0.0 + + 30 + Text Update + false + + true + true + false + + 0 + true + false + sim://ramp(0,100000,11323,1) + + + + + + + Text Update + true + ###### + false + 0 + + Default + + 134 + 0 + + + 1 + + + + 0 + + 151 + false + $(pv_name) +$(pv_value) + 30 + + + false + true + 1 + true + 66d1507f:138820a85e5:-7e0b + false + 0.0 + + 28 + Text Update_1 + false + + true + true + false + + 1 + true + true + sim://ramp(0,100000,11323,1) + + + + + + + Text Update + true + ###### + true + 0 + + Default + + 132 + 14 + + + 1 + + + + 0 + + 185 + false + $(pv_name) +$(pv_value) + 30 + + + false + true + 1 + false + 66d1507f:138820a85e5:-7e0a + false + 0.0 + + 26 + Text Update_2 + false + + true + true + false + + 2 + true + true + sim://ramp(0,100000,11323,1) + + + + + + + Text Update + true + ###### + false + 5 + + Default + + 130 + 5 + + + 1 + + + + 0 + + 149 + false + $(pv_name) +$(pv_value) + 174 + + + false + true + 1 + false + 66d1507f:138820a85e5:-7e09 + false + 0.0 + + 28 + Text Update_3 + true + + true + true + false + + 3 + true + true + sim://ramp(0,100000,11323,1) + + + + + + + Text Update + true + ###### + false + 0 + + Default + + 132 + 0 + + + 1 + + + + 0 + + 183 + false + $(pv_name) +$(pv_value) + 174 + + + + true + + true + 66d1507f:138820a85e5:-7e07 + + 44 + widgets/TextUpdate.html + + true + true + true + + true + false + + + + + + + true + Grouping Container + + Default + + 185 + 0 + + false + true + 1 + + + + 500 + + + ../scripts/openHelp.js + + false + Open Help + + + 589 + + + true + 1 + 66d1507f:138820a85e5:-7e06 + false + + 22 + Label_28 + + true + true + false + + true + false + + + + + + + Label + true + See Online Help + + + + 135 + 0 + + 1 + + + + 1 + + 11 + true + + 41 + + + false + true + 20 + true + 0.0 + 66d1507f:138820a85e5:-7e05 + 0.0 + + 0 + 1 + true + Polyline + false + 255 + + true + true + true + + + + + + false + + + + + + + + Polyline + true + false + + Default + + 120 + 0 + 0 + + + 1 + 1 + true + + + + + 32 + $(pv_name) +$(pv_value) + 49 + + + 0 + 0 + true + 66d1507f:138820a85e5:-7e04 + true + + 44 + Image + true + + true + true + false + + + + + + + + Image + true + + Default + + 42 + false + false + + + 1.0 + 0.0 + + + 0.0 + 1.0 + + + 0 + 0 + + false + 0 + 0 + 1 + ../pictures/onlineHelp.gif + + + + + 0 + + 8 + + + + true + true + 1 + true + 66d1507f:138820a85e5:-7e03 + false + 0.0 + + 56 + Text Update_5 + false + + true + true + false + + 0 + true + false + loc://s2("The quick brown fox jumps over the lazy dog.") + + + + + + + Text Update + true + ###### + false + 0 + + Default + + 184 + 1 + + + 1 + + + + 0 + + 149 + true + $(pv_name) +$(pv_value) + 356 + + + true + true + 1 + true + 66d1507f:138820a85e5:-7e02 + false + 0.1 + + 223 + Text Update_5 + false + + true + true + false + + 0 + true + true + + + + + + + + Text Update + true + Rotated text + false + 0 + + + + 202 + 0 + + + + pv0 + + sim://ramp(1,359, 10, 0.1) + + + + 1 + + + + 0 + + 229 + false + $(pv_name) +$(pv_value) + 356 + + + false + true + 66d1507f:138820a85e5:-7df5 + + 38 + + Action Button + false + + true + true + false + + + + + + + + + Action Button + true + Go Home + false + + Default + + 168 + 0 + 0 + ../pictures/home-16x16.png + + + false + 1 + + + + 503 + + + ../scripts/goHome.js + + false + + + + $(pv_name) +$(pv_value) + 17 + + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/2_3_Gauge_Meter.opi b/core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/2_3_Gauge_Meter.opi new file mode 100644 index 000000000..53c794575 --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/2_3_Gauge_Meter.opi @@ -0,0 +1,942 @@ + + + false + + true + + 66d1507f:138820a85e5:-7df2 + 3.1.0.qualifier + + false + 600 + Gauge/Meter + true + false + + + + + + + Display + true + 800 + + true + 4 + + true + -1 + -1 + + + -1 + -1 + + true + 1 + 66d1507f:138820a85e5:-7df1 + false + + 86 + Label_8 + + true + true + false + + false + false + + + + + + + Label + true + Gauge/Meter + + + + 295 + 0 + + 1 + + + + 1 + + 6 + true + + 17 + + + true + 1 + 66d1507f:138820a85e5:-7df0 + false + + 43 + Label_6 + + true + true + false + + false + false + + + + + + + Label + true + Examples + + + + 451 + 0 + + 1 + + + + 1 + + 49 + true + + 311 + + + true + 1 + 66d1507f:138820a85e5:-7def + false + + 44 + Label_9 + + true + true + false + + false + false + + + + + + + Label + true + Best OPI Yet (BOY) + + + + 451 + 0 + + 1 + + + + 1 + + 6 + true + + 311 + + + 20.0 + false + true + + + + true + + 138 + 50 + false + + + + true + Gauge + true + + Default + + 138 + true + 0 + true + + true + true + 100.0 + 1 + true + 0.0 + 66d1507f:138820a85e5:-7dee + true + + true + + + + Gauge + + true + true + true + + + + + sim://ramp(1,100,1,0.1) + + + + false + 80.0 + + Default + + 90.0 + false + + + + + + true + + + + true + + + + 10.0 + 185 + + 559 + $(pv_name) +$(pv_value) + + + 20.0 + false + true + + + + true + + 85 + 50 + false + + + + true + Meter + true + + Default + + 200 + true + 5 + + true + true + 100.0 + 1 + false + 0.0 + 66d1507f:138820a85e5:-7ded + true + + true + + + + Meter + + true + true + true + + + + + sim://ramp(0,100,1,0.1) + + + + false + 80.0 + + Default + + 90.0 + true + + + + + + true + + + + true + + + + 10.0 + 330 + + 88 + $(pv_name) +$(pv_value) + + + 20.0 + false + true + + + + true + + 138 + 50 + false + + + + true + Gauge + true + + Default + + 138 + true + 0 + true + + true + true + 100.0 + 1 + false + 0.0 + 66d1507f:138820a85e5:-7dec + true + + true + + + + Gauge_1 + + true + true + true + + + + + sim://ramp(0,100,1,0.1) + + + + false + 80.0 + + Default + + 90.0 + true + + + + + + true + + + + true + + + + 10.0 + 185 + + 410 + $(pv_name) +$(pv_value) + + + 20.0 + true + true + + + + true + + 138 + 50 + false + + + + true + Gauge + true + + Default + + 138 + true + 0 + true + + true + true + 100.0 + 1 + false + 0.0 + 66d1507f:138820a85e5:-7deb + true + + true + + + + Gauge_2 + + true + true + true + + + + + sim://ramp(0,100,1,0.1) + + + + false + 80.0 + + Default + + 90.0 + true + + + + + + true + + + + true + + + + 10.0 + 185 + + 257 + $(pv_name) +$(pv_value) + + + 20.0 + true + true + + + + true + + 138 + 50 + false + + + + true + Gauge + true + + Default + + 138 + true + 0 + false + + false + true + 100.0 + 1 + false + 0.0 + 66d1507f:138820a85e5:-7dea + true + + true + + + + Gauge_3 + + true + true + true + + + + + sim://ramp(0,100,1,0.1) + + + + false + 80.0 + + Default + + 90.0 + true + + + + + + true + + + + true + + + + 10.0 + 185 + + 108 + $(pv_name) +$(pv_value) + + + 20.0 + false + true + + + + true + + 85 + 50 + true + + + + true + Meter + true + + Default + + 200 + true + 3 + + false + true + 100.0 + 1 + false + 0.0 + 66d1507f:138820a85e5:-7de9 + true + + true + + + + Meter_1 + + true + true + true + + + + + sim://ramp(0,100,1,0.1) + + + + false + 80.0 + + Default + + 90.0 + true + + + + + + true + + + + true + + + + 10.0 + 330 + + 303 + $(pv_name) +$(pv_value) + + + 20.0 + false + true + + + + true + + 85 + 50 + true + + + + true + Meter + true + + Default + + 200 + true + 2 + + true + true + 100.0 + 1 + true + 1.0 + 66d1507f:138820a85e5:-7de8 + true + + true + + + + Meter_2 + + true + true + true + + + + + sim://ramp(1,100,1,0.1) + + + + false + 80.0 + + Default + + 90.0 + false + + + + + + true + + + + true + + + + 10.0 + 330 + + 539 + $(pv_name) +$(pv_value) + + + + true + + true + 66d1507f:138820a85e5:-7de6 + + 44 + widgets/ScaledWidgets.html + + true + true + true + + true + false + + + + + + + Grouping Container + true + + Default + + 185 + 0 + + true + 1 + + + + + + ../scripts/openHelp.js + + false + Open Help + + + 542 + + 596 + + true + 1 + 66d1507f:138820a85e5:-7de5 + false + + 22 + Label_28 + + true + true + false + + true + false + + + + + + + Label + true + See Online Help + + + + 135 + 0 + + 1 + + + + 1 + + 11 + true + + 41 + + + false + true + 20 + true + 0.0 + 66d1507f:138820a85e5:-7de4 + 0.0 + + 0 + 1 + true + Polyline + false + 255 + + true + true + true + + + + + + false + + + + + + + + Polyline + true + false + + Default + + 120 + 0 + 0 + + + 1 + 1 + true + + + + + 32 + $(pv_name) +$(pv_value) + 49 + + + 0 + 0 + true + 66d1507f:138820a85e5:-7de3 + true + + 44 + Image + true + + true + true + false + + + + + + + + Image + true + + Default + + 42 + false + 0 + 0 + + 0 + 1 + ../pictures/onlineHelp.gif + + + + + 0 + + 8 + + + + false + true + 66d1507f:138820a85e5:-7dda + + 38 + Action Button_1 + false + + true + true + false + + + + + + Button + true + Go Home + + Default + + 97 + 0 + 0 + ../pictures/home-16x16.png + + + false + 1 + + + + 548 + + + ../scripts/goHome.js + + false + + + + $(pv_name) +$(pv_value) + 12 + + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/2_4_Tank_Thermo.opi b/core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/2_4_Tank_Thermo.opi new file mode 100644 index 000000000..557e73b8b --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/2_4_Tank_Thermo.opi @@ -0,0 +1,1557 @@ + + + false + + true + sim://noise + Best OPI Yet + + -1ba7f91e:1363666d19c:-7dc7 + 3.1.0.qualifier + + false + 600 + Tank/Thermo + true + false + + + + + + + Display + true + 800 + + true + 4 + + true + 40 + 30 + + + -1 + -1 + + true + 1 + -1ba7f91e:1363666d19c:-7dc6 + false + + 86 + Label_8 + + true + true + false + + false + false + + + + + + + Label + true + Tank/Thermometer/ +Progress Bar + + + + 295 + 0 + + 1 + + + + 1 + + 6 + true + + 17 + + + true + 1 + -1ba7f91e:1363666d19c:-7dc5 + false + + 43 + Label_6 + + true + true + false + + false + false + + + + + + + Label + true + Examples + + + + 451 + 0 + + 1 + + + + 1 + + 49 + true + + 311 + + + true + 1 + -1ba7f91e:1363666d19c:-7dc4 + false + + 44 + Label_9 + + true + true + false + + false + false + + + + + + + Label + true + Best OPI Yet (BOY) + + + + 451 + 0 + + 1 + + + + 1 + + 6 + true + + 311 + + + 20.0 + false + true + + + + + + + true + + 166 + 50 + false + + + + true + Tank + true + + Default + + 119 + true + 0 + true + + false + true + 1000.0 + 1 + true + 0.0 + -1ba7f91e:1363666d19c:-7dc3 + true + + true + + + + Tank + + true + true + false + + + + + sim://ramp(0.1,1000,1,0.1) + + + + false + 80.0 + + Default + + 90.0 + + + + + + + + true + true + + + + 10.0 + 104 + + 255 + $(pv_name) +$(pv_value) + + + 20.0 + false + true + + + + + + + true + + 166 + 50 + false + + + + true + Tank + true + + Default + + 150 + true + 0 + false + + true + true + 100.0 + 1 + false + 0.0 + -1ba7f91e:1363666d19c:-7dc2 + true + + true + + + + Tank_1 + + true + true + false + + + + + sim://ramp(0,100,1,0.1) + + + + false + 80.0 + + Default + + 90.0 + + + + + + + + true + true + + + + 10.0 + 104 + + 45 + $(pv_name) +$(pv_value) + + + + true + + true + -1ba7f91e:1363666d19c:-7dc0 + + 242 + Thermometer + + true + true + false + + false + false + + + + + + + Grouping Container + true + + Default + + 394 + 13 + + false + 1 + + + + + 275 + + 17 + + 20.0 + false + true + + + + + + + true + + 166 + 30 + false + + + + true + Thermometer + true + + Default + + 110 + true + 0 + false + true + + true + true + 100.0 + 1 + false + 0.0 + -1ba7f91e:1363666d19c:-7dbf + true + + true + + + + Thermometer + + true + true + false + + + + + sim://ramp(0,100,1,0.1) + + + + false + 80.0 + + Default + + 90.0 + + + + + + + + + 0 + true + true + + + + 10.0 + 19 + + -3 + $(pv_name) +$(pv_value) + + + 20.0 + false + true + + + + + + + true + + 166 + 50 + false + + + + true + Thermometer + true + + Default + + 100 + true + 0 + true + true + + false + true + 100.0 + 1 + true + 0.01 + -1ba7f91e:1363666d19c:-7dbe + true + + true + + + + Thermometer_1 + + true + true + false + + + + + sim://ramp(0.1,100,1,0.1) + + + + false + 80.0 + + Default + + 90.0 + + + + + + + + + 2 + true + true + + + + 10.0 + 19 + + 102 + $(pv_name) +$(pv_value) + + + 20.0 + false + true + + + + + + + true + + 166 + 30 + false + + + + true + Thermometer + true + + Default + + 100 + true + 0 + true + true + + false + true + 100.0 + 1 + false + 0.0 + -1ba7f91e:1363666d19c:-7dbd + true + + true + + + + Thermometer_2 + + true + true + false + + + + + sim://ramp(0,100,1,0.1) + + + + false + 80.0 + + Default + + 90.0 + + + + + + + + + 1 + true + true + + + + 10.0 + 19 + + 197 + $(pv_name) +$(pv_value) + + + 20.0 + false + true + + + + + + + true + + 166 + 30 + false + + + + true + Thermometer + true + + Default + + 100 + true + 0 + true + false + + false + true + 100.0 + 1 + false + 0.0 + -1ba7f91e:1363666d19c:-7dbc + true + + true + + + + Thermometer_3 + + true + true + false + + + + + sim://ramp(0,100,1,0.1) + + + + false + 80.0 + + Default + + 90.0 + + + + + + + + + 3 + true + true + + + + 10.0 + 19 + + 291 + $(pv_name) +$(pv_value) + + + + + true + + true + -1ba7f91e:1363666d19c:-7dbb + + 242 + Progress Bar + + true + true + false + + false + false + + + + + + + Grouping Container + true + + Default + + 386 + 13 + + false + 1 + + + + + 275 + + 410 + + 20.0 + true + true + + + + + + + true + + 79 + 50 + false + + + + true + Progress Bar + true + + Default + + 224 + true + 0 + true + + true + true + 100.0 + 1 + true + false + 0.0 + -1ba7f91e:1363666d19c:-7dba + true + + true + + + + Progress Bar + + true + true + false + + + + + sim://ramp(0,100,1,0.1) + true + + + + false + false + 80.0 + + Default + + 90.0 + 0.0 + + + + + + + + + true + true + + + + 10.0 + 0 + + 124 + $(pv_name) +$(pv_value) + false + + + 20.0 + false + true + + + + + + + true + + 185 + 50 + false + + + + true + Progress Bar + true + + Default + + 27 + true + 0 + true + + false + true + 100.0 + 1 + false + false + 0.0 + -1ba7f91e:1363666d19c:-7db9 + true + + false + + + + Progress Bar_1 + + true + true + false + + + + + sim://ramp(0,100,1,0.1) + true + + + + false + false + 80.0 + + Default + + 90.0 + 10.0 + + + + + + + + + true + true + + + + 10.0 + 18 + + 73 + $(pv_name) +$(pv_value) + false + + + 20.0 + false + true + + + + + + + true + + 203 + 50 + false + + + + true + Progress Bar + true + + Default + + 55 + true + 0 + false + + false + true + 100.0 + 1 + false + false + 0.0 + -1ba7f91e:1363666d19c:-7db8 + true + + true + + + + Progress Bar_2 + + true + true + false + + + + + sim://ramp(0,100,1,0.1) + true + + + + false + false + 80.0 + + Default + + 90.0 + 0.0 + + + + + + + + + true + true + + + + 10.0 + 9 + + 1 + $(pv_name) +$(pv_value) + false + + + 20.0 + false + true + + + + + + + true + + 25 + 50 + false + + + + true + Progress Bar + true + + Default + + 201 + true + 0 + true + + false + true + 100.0 + 1 + true + false + 0.0 + -1ba7f91e:1363666d19c:-7db7 + true + + false + + + + Progress Bar_3 + + true + true + false + + + + + sim://ramp(0,100,1,0.1) + false + + + + false + false + 80.0 + + Default + + 90.0 + 80.0 + + + + + + + + + true + true + + + + 10.0 + 92 + + 136 + $(pv_name) +$(pv_value) + false + + + 20.0 + false + true + + + + + + + true + + 52 + 50 + false + + + + true + Progress Bar + true + + Default + + 224 + true + 0 + true + + false + true + 100.0 + 1 + true + false + 0.0 + -1ba7f91e:1363666d19c:-7db6 + true + + true + + + + Progress Bar_4 + + true + true + false + + + + + sim://ramp(0,100,1,0.1) + false + + + + false + false + 80.0 + + Default + + 90.0 + 10.0 + + + + + + + + + true + true + + + + 10.0 + 144 + + 124 + $(pv_name) +$(pv_value) + true + + + + 20.0 + false + true + + + + + + + true + + 166 + 50 + false + + + + true + Tank + true + + Default + + 111 + true + 0 + true + + false + true + 100.0 + 1 + false + 0.0 + -1ba7f91e:1363666d19c:-7db5 + true + + true + + + + Tank_2 + + true + true + false + + + + + sim://ramp(0,100,1,0.1) + + + + false + 80.0 + + Default + + 90.0 + + + + + + + + true + true + + + + 10.0 + 104 + + 434 + $(pv_name) +$(pv_value) + + + 20.0 + true + true + + + + + + + true + + 166 + 50 + false + + + + true + Tank + true + + Default + + 155 + true + 0 + true + + true + true + 100.0 + 1 + false + 0.0 + -1ba7f91e:1363666d19c:-7db4 + true + + true + + + + Tank_3 + + true + true + false + + + + + sim://ramp(0,100,1,0.1) + + + + false + 80.0 + + Default + + 90.0 + + + + + + + + true + true + + + + 10.0 + 104 + + 607 + $(pv_name) +$(pv_value) + + + + true + + true + -1ba7f91e:1363666d19c:-7db3 + + 44 + widgets/ScaledWidgets.html + + true + true + true + + true + false + + + + + + + Grouping Container + true + + Default + + 185 + 0 + + true + 1 + + + + + + ../scripts/openHelp.js + + false + Open Help + + + 537 + + 601 + + true + 1 + -1ba7f91e:1363666d19c:-7db2 + false + + 22 + Label_28 + + true + true + false + + true + false + + + + + + + Label + true + See Online Help + + + + 135 + 0 + + 1 + + + + 1 + + 11 + true + + 41 + + + false + true + 20 + true + 0.0 + -1ba7f91e:1363666d19c:-7db1 + 0.0 + + 0 + 1 + true + Polyline + false + 255 + + true + true + true + + + + + + false + + + + + + + + Polyline + true + false + + Default + + 120 + 0 + 0 + + + 1 + 1 + true + + + + + 32 + $(pv_name) +$(pv_value) + 49 + + + 0 + 0 + true + -1ba7f91e:1363666d19c:-7db0 + true + + 44 + Image + true + + true + true + false + + + + + + + + Image + true + + Default + + 42 + false + 0 + 0 + + 0 + 1 + ../pictures/onlineHelp.gif + + + + + 0 + + 8 + + + + false + true + 66d1507f:138820a85e5:-7dab + + 38 + Action Button_1 + false + + true + true + false + + + + + + Button + true + Go Home + + Default + + 97 + 0 + 0 + ../pictures/home-16x16.png + + + false + 1 + + + + 543 + + + ../scripts/goHome.js + + false + + + + $(pv_name) +$(pv_value) + 17 + + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/2_5_1_XY_Graph.opi b/core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/2_5_1_XY_Graph.opi new file mode 100644 index 000000000..17c032e6e --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/2_5_1_XY_Graph.opi @@ -0,0 +1,762 @@ + + + true + + true + + 66d1507f:138820a85e5:-7da4 + 3.1.1.qualifier + + false + 600 + XY_Graph + false + false + + + + + + + Display + true + 800 + + true + 4 + + false + -1 + -1 + + + -1 + -1 + + true + 0 + 66d1507f:138820a85e5:-7da3 + false + + 437 + Label_4 + + true + true + false + + false + false + + + + + + + Label + true + XY_Graph is the most powerful widget in BOY, which basically have all the necessary functionalities for an xy graph, plot or chart in the field of science and engineering: + + Default + + 745 + 1 + + 1 + + + + 0 + + 114 + true + + 17 + + + true + 1 + 66d1507f:138820a85e5:-7da2 + true + + 16 + Label_5 + + true + true + false + + false + false + + + + + + + Label + true + Introduction + + + + 76 + 0 + + 1 + + + + 1 + + 99 + true + $(pv_name) +$(pv_value) + 341 + + + true + 1 + 66d1507f:138820a85e5:-7da1 + false + + 86 + Label_8 + + true + true + false + + false + false + + + + + + + Label + true + XY_Graph + + + + 295 + 0 + + 1 + + + + 1 + + 6 + true + + 17 + + + true + 1 + 66d1507f:138820a85e5:-7da0 + false + + 43 + Label_6 + + true + true + false + + false + false + + + + + + + Label + true + Examples + + + + 451 + 0 + + 1 + + + + 1 + + 49 + true + + 311 + + + true + 1 + 66d1507f:138820a85e5:-7d9f + false + + 44 + Label_9 + + true + true + false + + false + false + + + + + + + Label + true + Best OPI Yet (BOY) + + + + 451 + 0 + + 1 + + + + 1 + + 6 + true + + 311 + + + true + 1 + 66d1507f:138820a85e5:-7d9d + false + + 306 + Label + + true + true + false + + false + false + + + + + + + Label + true + -line chart, scatter chart, bar chart, step chart, area chart... + +-Abundant interactive operations: Five Zoom Types, Panning, Auto Scale, Add/Remove Annotations, Undo/Redo, Snapshot. + +-Configure properties during running, such as trace color, line width and axis color etc,. + +-multiple axes + +-log scale, date time format + +-group legends by axes + +-annotations could be free or snapped to a trace + +-The possiblity to implements your own data provider based on a simple interface. +... + + + + 708 + 1 + + 1 + + + + 1 + + 155 + true + + 36 + + + true + 1 + 66d1507f:138820a85e5:-7d9c + true + + 16 + Label_6 + + true + true + false + + true + false + + + + + + + Label + true + *The code of XY_Graph can be reused in any SWT based Eclipse Applications. + + + + 461 + 0 + + 1 + + + + 1 + + 497 + true + + 25 + + + + true + + true + 66d1507f:138820a85e5:-7d9a + + 44 + widgets/XYGraph.html + + false + false + false + + true + false + + + + + + + Grouping Container + true + + Default + + 185 + 0 + + true + 1 + + + + + + ../scripts/openHelp.js + + false + Open Help + + + 491 + + 559 + + true + 1 + 66d1507f:138820a85e5:-7d99 + false + + 22 + Label_28 + + true + true + false + + true + false + + + + + + + Label + true + See Online Help + + + + 135 + 0 + + 1 + + + + 1 + + 11 + true + + 41 + + + false + true + 20 + true + 0.0 + 66d1507f:138820a85e5:-7d98 + 0.0 + + 0 + 1 + true + Polyline + false + 255 + + true + true + true + + + + + + false + + + + + + + + Polyline + true + false + + Default + + 120 + 0 + 0 + + + 1 + 1 + true + + + + + 32 + $(pv_name) +$(pv_value) + 49 + + + 0 + 0 + true + 66d1507f:138820a85e5:-7d97 + true + + 44 + Image + true + + true + true + false + + + + + + + + Image + true + + Default + + 42 + false + 0 + 0 + + 0 + 1 + ../pictures/onlineHelp.gif + + + + + 0 + + 8 + + + + + true + + true + 553ac269:135b01240d5:-2f20 + + 20 + Grouping Container + + false + false + false + + true + false + + + + + + + Grouping Container + true + + Default + + 128 + 0 + + true + 1 + + + + + 515 + + 23 + + true + 1 + 66d1507f:138820a85e5:-7d95 + false + + 20 + Label_7 + + false + false + false + + true + false + + + + + + + Label + true + See SWT XYGraph + + + + 128 + 0 + + 1 + + + + 1 + + + http://code.google.com/p/swt-xy-graph/ + + + + 0 + true + + 0 + + + false + true + 20 + true + 0.0 + 66d1507f:138820a85e5:-7d94 + 0.0 + + 0 + 1 + true + Polyline + false + 255 + + false + false + false + + + + + + false + + + + + + + + Polyline + true + false + + Default + + 112 + 0 + 0 + + + 1 + 1 + true + + + + + 19 + $(pv_name) +$(pv_value) + 9 + + + + false + true + 66d1507f:138820a85e5:-7d8b + + 38 + Action Button_2 + false + + true + true + false + + + + + + Button + true + Go Home + + Default + + 129 + 0 + 0 + ../pictures/home-16x16.png + + + false + 1 + + + + 555 + + + ../scripts/goHome.js + + false + + + + $(pv_name) +$(pv_value) + 18 + + + false + true + 1a15b2cb:138b4a02abf:-7a61 + + 38 + Action Button_1 + false + + true + true + false + + + + + + Button + true + Next + + Default + + 129 + 0 + 0 + + + + false + 1 + + + + 556 + + + 2_5_2_XY_Graph.opi + + true + + 1 + + + + $(pv_name) +$(pv_value) + 634 + + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/2_5_2_XY_Graph.opi b/core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/2_5_2_XY_Graph.opi new file mode 100644 index 000000000..d2c121bbf --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/2_5_2_XY_Graph.opi @@ -0,0 +1,1316 @@ + + + false + + true + + 38d90a0d:1357c5ff43f:-7fda + 3.2.0.qualifier + + false + 600 + XY_Graph + true + false + + + + + + + Display + true + 800 + + true + 4 + + true + 600 + 400 + + + 0 + 0 + + false + true + 66d1507f:138820a85e5:-7d70 + + 28 + + Action Button_4 + false + + true + true + false + + + + + + + + + Button + true + Go Home + false + + Default + + 129 + 0 + 0 + ../pictures/home-16x16.png + + + false + 1 + + + + 567 + + + ../scripts/goHome.js + + false + + + + $(pv_name) +$(pv_value) + 17 + + + false + true + 1a15b2cb:138b4a02abf:-7a1d + + 36 + + Action Button_5 + false + + true + true + false + + + + + + + + + Button + true + Next + false + + Default + + 98 + 0 + 0 + + + + false + 1 + + + + 561 + + + 2_5_3_XY_Graph.opi + + true + + 1 + + + + + 686 + + + + true + + true + 1a15b2cb:138b4a02abf:-79e5 + + 195 + Grouping Container + + true + true + false + + true + false + + + + + + + true + Grouping Container + + Default + + 765 + 14 + + false + 1 + + + + 362 + + 17 + + + true + 3 + + + + true + 0 + 4 + 0 + 3 + + true + false + Bar + 4 + true + 0 + 0 + true + + true + 188 + 100.0 + + + Default Bold + + 1 + 0 + + + + + XYGraph3 + 0.0 + 1 + + false + 100 + true + + + + 1 + 4 + 1 + 0.0 + 4 + Line + true + 0 + 100 + Time + 38d90a0d:1357c5ff43f:-7fce + 100 + + + + 0 + + + + 0 + false + Value + 100.0 + + Default + + 4 + + 8 + 0 + false + 1 + 0 + + Default Bold + + true + true + false + + + + sim://sine(-100,100,50,0.1) + + Default Bold + + true + 100 + true + + + + false + XY Graph + true + 607 + 100 + + 2 + Area + false + true + true + true + 0 + 1 + $(trace_0_y_pv) +$(trace_0_y_pv_value) + true + 0 + 1 + + Default + + 0 + + + + true + 0 + Trends + sim://sine(-50,50,20,0.1) + + 0.0 + true + 0.0 + + + + + true + + + + + + + + + + + 1 + + true + true + false + + true + + + + pv0==1 + + loc://$(DID)_trace_0_visible(1) + + + + pv0==1 + + loc://$(DID)_trace_1_visible(1) + + + + pv0==1 + + loc://$(DID)_trace_2_visible(1) + + + sim://sine(-100,100,30,0.1) + + 0 + + + + 100 + + + true + true + 38d90a0d:1357c5ff43f:-7fc8 + false + + 20 + Check Box + false + + true + false + false + + loc://$(DID)_trace_0_visible(1) + + + + + + + Check Box + true + false + + Default + + 156 + 0 + + + + 0 + 1 + + + + + 10 + $(pv_name) +$(pv_value) + 598 + + + true + true + 38d90a0d:1357c5ff43f:-7f80 + false + + 20 + Check Box_1 + false + + true + false + false + + loc://$(DID)_trace_1_visible(1) + + + + + + + Check Box + true + false + + Default + + 156 + 0 + + + + 0 + 1 + + + + + 33 + $(pv_name) +$(pv_value) + 598 + + + true + true + 38d90a0d:1357c5ff43f:-7f7c + false + + 20 + Check Box_2 + false + + true + false + false + + loc://$(DID)_trace_2_visible(1) + + + + + + + Check Box + true + false + + Default + + 156 + 0 + + + + 0 + 1 + + + + + 57 + $(pv_name) +$(pv_value) + 598 + + + + + true + + true + 1a15b2cb:138b4a02abf:-79e3 + + 236 + Grouping Container + + true + true + false + + true + false + + + + + + + true + Grouping Container + + Default + + 354 + 14 + + false + 1 + + + + 101 + + 428 + + + + + + true + 0 + 0 + 1 + false + false + 4 + true + 28 + 0 + true + + true + 198 + 100.0 + + Default Bold + + 1 + + + + + Graph2 + 0.0 + 1 + false + false + + + + 0.0 + + 0 + Time + 38d90a0d:1357c5ff43f:-7fd5 + + + + + + + false + Value + 100.0 + + Default + + 2 + false + + Default Bold + + true + true + false + + + + + Default Bold + + true + true + + + false + XY Graph + true + 354 + 100 + + 2 + false + true + 0 + 3 + $(pv_name) +$(pv_value) + true + 1 + + Default + + 0 + + + + + + 0.0 + true + 0.0 + + + + + true + + + + + + true + true + false + + + + + pvStr0 + + loc://trace0PV + + + + pvStr0 + + loc://trace0PV + + + + 0 + + + + 0 + + + false + true + 38d90a0d:1357c5ff43f:-7fd2 + + 27 + Combo Box + false + + true + false + false + + loc://trace0PV("sim://sine(0,100,100,1)") + + + + + + + Combo Box + true + false + + + + 203 + 0 + + + + sim://sine(0,100,100,1) + sim://ramp(0,100,1,1) + sim://noise(20,80,1) + + 1 + + + + false + + 0 + $(pv_name) +$(pv_value) + 140 + + + true + 1 + 38d90a0d:1357c5ff43f:-7fd1 + false + + 20 + Label + + true + true + false + + true + false + + + + + + + Label + true + Select PV to draw: + + Default + + 131 + 0 + + 1 + + + + 1 + + 4 + true + + 0 + + + false + true + 1a15b2cb:138b4a02abf:-79e8 + + 31 + + Action Button_2 + false + + true + true + false + + + + + + + + + Button + true + Clear Graph + false + + Default + + 136 + 0 + 0 + + + + false + 1 + + + + 195 + + + ../scripts/ClearGraph.js + + false + + + + Clear data on graph + 0 + + + + + true + + true + 1a15b2cb:138b4a02abf:-798c + + 235 + Grouping Container + + true + true + false + + true + false + + + + + + + true + Grouping Container + + Default + + 396 + 14 + + false + 1 + + + + 101 + + 17 + + + true + 0 + + + + false + 0 + 4 + 0 + 2 + true + false + false + Trace 1 + + + + 0.0 + 4 + false + 0 + 0 + true + + true + 209 + 100.0 + + Default Bold + + 1 + false + false + + + + + Graph1 + 0.0 + 1 + true + 0 + true + + + + 1 + 0.0 + Trace 0 + true + 100.0 + 0 + 100 + X + 38d90a0d:1357c5ff43f:-7fd9 + + + + + + + 0 + false + Log Scale + true + 100.0 + + Default + + + 0 + 0 + true + 9 + 0.0 + + Default Bold + + true + true + true + false + + + sim://ramp(0,100,-1,0.1) + sim://sine(0.1,90,100,0.1) + + Default Bold + + false + true + + + sim://sine(0.1,90,100,0.1) + false + Secondary Axis (2) + XY Graph + true + 396 + 120 + + 3 + false + true + 0 + 0 + 1 + $(pv_name) +$(pv_value) + true + + + + 0 + 1 + + Default + + 0 + + + + Multi-Axes Graph + sim://ramp(0,100,-1,0.1) + false + + 0.1 + + + + true + + + + + 0.0 + + + + + true + + + + + + + + true + 2 + + true + true + false + + true + + + 2 + + + + 0 + + + false + true + 1a15b2cb:138b4a02abf:-79e7 + + 31 + + Action Button_3 + false + + true + true + false + + + + + + + + + Button + true + Change Trace Color + false + + Default + + 149 + 0 + 0 + + + + false + 1 + + + + 194 + + + ../scripts/ChangeTraceColor.js + + false + + + + Change Trace 0 color + 238 + + + + + true + + true + 1a15b2cb:138b4a02abf:-7804 + + 84 + Grouping Container_3 + + true + true + false + + true + false + + + + + + + true + Grouping Container + + Default + + 765 + 14 + + false + 1 + + + + 11 + + 17 + + + true + true + true + -1.7976931348623157E308 + 0 + true + false + 6d4582ac:1389581a6f9:-7ab4 + false + false + + 33 + false + Label_11 + false + 0 + + true + true + false + + true + + + + + + + + true + Text + Examples + 0 + false + + Header 1 + + 396 + 0 + + + + 1.7976931348623157E308 + 1 + false + 1 + + + + 42 + + 352 + + + + true + true + true + -1.7976931348623157E308 + 0 + true + false + 6d4582ac:1389581a6f9:-7ab3 + false + false + + 33 + false + Label_12 + false + 0 + + true + true + false + + true + + + + + + + + true + Text + Best OPI Yet (BOY) + 0 + false + + Header 1 + + 396 + 0 + + + + 1.7976931348623157E308 + 1 + false + 1 + + + + 7 + + 352 + + + + true + true + true + -1.7976931348623157E308 + 0 + true + false + 6d4582ac:1389581a6f9:-7ab1 + false + false + + 38 + false + Label_14 + false + 0 + + true + true + false + + true + + + + + + + + true + Text + XY Graph + 0 + false + + Header 1 + + 202 + 0 + + + + 1.7976931348623157E308 + 1 + false + 1 + + + + 25 + + 57 + + + + + false + true + -2e1db4eb:13a70298f3d:-77f9 + + 36 + + Action Button_6 + false + + true + true + false + + + + + + + + + Button + true + Back + false + + Default + + 98 + 0 + 0 + + + + false + 1 + + + + 563 + + + 2_5_1_XY_Graph.opi + + true + + 1 + + + + + 573 + + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/2_5_3_XY_Graph.opi b/core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/2_5_3_XY_Graph.opi new file mode 100644 index 000000000..d053d8435 --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/2_5_3_XY_Graph.opi @@ -0,0 +1,602 @@ + + + false + + true + + 38d90a0d:1357c5ff43f:-7fda + 3.1.4.qualifier + + false + 600 + XY_Graph + true + true + + + + + + + Display + true + 800 + + true + 4 + + true + 600 + 400 + + + 0 + 0 + + false + true + 66d1507f:138820a85e5:-7d70 + + 36 + Action Button_4 + false + + true + true + false + + + + + + Button + true + Go Home + + Default + + 98 + 0 + 0 + ../pictures/home-16x16.png + + + false + 1 + + + + 561 + + + ../scripts/goHome.js + + false + + + + $(pv_name) +$(pv_value) + 17 + + + false + true + 1a15b2cb:138b4a02abf:-7a1d + + 36 + Action Button_5 + false + + true + true + false + + + + + + Button + true + Back + + Default + + 98 + 0 + 0 + + + + false + 1 + + + + 561 + + + 2_5_2_XY_Graph.opi + + true + + 1 + + + + + 686 + + + + true + + true + 1a15b2cb:138b4a02abf:-7804 + + 84 + Grouping Container_3 + + true + true + false + + true + false + + + + + + + true + Grouping Container + + Default + + 765 + 14 + + false + 1 + + + + 11 + + 17 + + + true + true + true + -1.7976931348623157E308 + 0 + true + false + 6d4582ac:1389581a6f9:-7ab4 + false + false + + 33 + false + Label_11 + false + 0 + + true + true + false + + true + + + + + + + + true + Text + Examples + 0 + false + + Header 1 + + 396 + 0 + + + + 1.7976931348623157E308 + 1 + false + 1 + + + + 42 + + 352 + + + + true + true + true + -1.7976931348623157E308 + 0 + true + false + 6d4582ac:1389581a6f9:-7ab3 + false + false + + 33 + false + Label_12 + false + 0 + + true + true + false + + true + + + + + + + + true + Text + Best OPI Yet (BOY) + 0 + false + + Header 1 + + 396 + 0 + + + + 1.7976931348623157E308 + 1 + false + 1 + + + + 7 + + 352 + + + + true + true + true + -1.7976931348623157E308 + 0 + true + false + 6d4582ac:1389581a6f9:-7ab1 + false + false + + 38 + false + Label_14 + false + 0 + + true + true + false + + true + + + + + + + + true + Text + XY Graph + 0 + false + + Header 1 + + 202 + 0 + + + + 1.7976931348623157E308 + 1 + false + 1 + + + + 25 + + 57 + + + + + true + 0 + 0 + + + + true + 0 + 100 + 0 + 4 + 0 + 5 + true + + true + false + 4 + 1 + $(trace_1_y_pv) + 1 + 4 + true + 152 + 16 + true + + false + 401 + 100.0 + + + + + + + 1 + 0 + $(trace_3_y_pv) + + + + + XY Graph + 0.0 + 100 + 1 + + true + 100 + 0 + true + + + + 1 + 1 + 1 + 0.0 + 0 + $(trace_0_y_pv) + true + + 0 + 100 + Primary X Axis (0) + 1 + 376d9aa8:13a7948587c:-7f56 + 100 + + + + 0 + + + + 0 + false + Primary Y Axis (1) + true + 0 + 0 + 100.0 + + Default + + 4 + 1 + + 0 + 0 + true + + + + 0 + false + 0 + 0 + + + + 100 + true + true + false + + + $(trace_4_y_pv) + 0 + + sim://noise + + + + 0 + true + 100 + 4 + true + sim://noise(5,15, 1) + + + + false + + + + XY Graph + true + 767 + 100 + + 2 + $(trace_2_y_pv) + true + false + true + true + true + 0 + 0 + $(trace_0_y_pv) +$(trace_0_y_pv_value) + false + sim://noise(-20,0, 1) + 0 + 1 + true + + Default + + 14 + 0 + + + + true + 0 + + sim://sine + + 0.0 + 0 + true + 0.0 + + + + 100 + + + 1 + + + true + + + + + + + + + + + + + 1 + true + + true + true + false + + true + + sim://ramp + + 0 + + + + + 100 + + + false + true + true + -1.7976931348623157E308 + 0 + true + true + 376d9aa8:13a7948587c:-7eca + false + false + + 38 + Text + false + 0 + + true + true + false + + true + + + + + + + + true + Text + Example: Manipulate XYGraph from Script. +In this example, axes are added from script, so it can have more than 4 axes. + 0 + false + + Default + + 765 + 0 + + + + false + 1.7976931348623157E308 + 1 + false + false + 0 + + + + 107 + + true + 17 + $(pv_name) +$(pv_value) + + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/2_5_4_XY_Graph.opi b/core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/2_5_4_XY_Graph.opi new file mode 100644 index 000000000..5d364e417 --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/2_5_4_XY_Graph.opi @@ -0,0 +1,723 @@ + + + false + + true + + 38d90a0d:1357c5ff43f:-7fda + 3.2.7.qualifier + + false + 600 + XY_Graph + true + true + + + + + + + Display + true + 800 + + true + 4 + + true + 600 + 400 + + + 0 + 0 + + false + true + 66d1507f:138820a85e5:-7d70 + + 36 + + Action Button_4 + false + + true + true + false + + + + + + Action Button + true + Go Home + + Default + + 98 + 0 + 0 + ../pictures/home-16x16.png + + + false + 1 + + + + 561 + + + ../scripts/goHome.js + + false + + + + $(pv_name) +$(pv_value) + 17 + + + false + true + 1a15b2cb:138b4a02abf:-7a1d + + 36 + + Action Button_5 + false + + true + true + false + + + + + + Action Button + true + Back + + Default + + 98 + 0 + 0 + + + + false + 1 + + + + 561 + + + 2_5_3_XY_Graph.opi + + true + + 1 + + + + + 686 + + + + true + + true + 1a15b2cb:138b4a02abf:-7804 + + 84 + Grouping Container_3 + + true + true + false + + true + false + + + + + + + true + Grouping Container + + Default + + 765 + 14 + + false + false + 1 + + + + 11 + + 17 + + + true + true + true + false + false + false + + 33 + false + false + true + + + + true + Text Input + Examples + + Header 1 + + 396 + 0 + + 1.7976931348623157E308 + 1 + -1.7976931348623157E308 + 0 + true + 6d4582ac:1389581a6f9:-7ab4 + + Label_11 + 0 + + true + true + false + + + + + + 0 + false + + + false + 1 + + + + 42 + + 352 + + + + true + true + true + false + false + false + + 33 + false + false + true + + + + true + Text Input + Best OPI Yet (BOY) + + Header 1 + + 396 + 0 + + 1.7976931348623157E308 + 1 + -1.7976931348623157E308 + 0 + true + 6d4582ac:1389581a6f9:-7ab3 + + Label_12 + 0 + + true + true + false + + + + + + 0 + false + + + false + 1 + + + + 7 + + 352 + + + + true + true + true + false + false + false + + 38 + false + false + true + + + + true + Text Input + XY Graph + + Header 1 + + 202 + 0 + + 1.7976931348623157E308 + 1 + -1.7976931348623157E308 + 0 + true + 6d4582ac:1389581a6f9:-7ab1 + + Label_14 + 0 + + true + true + false + + + + + + 0 + false + + + false + 1 + + + + 25 + + 57 + + + + + false + true + true + true + false + false + + 38 + false + true + + + + true + Text Input + Example: Manipulate XYGraph from Script. +In this example, two annotations are added two reflect the values of two PVs. + + Default + + 765 + 0 + + false + 1.7976931348623157E308 + 1 + false + true + -1.7976931348623157E308 + 0 + true + 376d9aa8:13a7948587c:-7eca + + Text + 0 + + true + true + false + + + + + + 0 + false + + + false + 0 + + + + 107 + + 17 + $(pv_name) +$(pv_value) + + + + + + true + 0 + 0 + 1 + true + false + 4 + true + 152 + 17 + true + + true + 361 + 100.0 + + + + 1 + + + + + XY Graph + 0.0 + 1 + true + true + + + + 0.0 + $(trace_0_y_pv) + 0 + Primary X Axis (0) + 4dacd5bd:14078075879:-7e2f + + + + + + + false + Primary Y Axis (1) + 100.0 + + Default + + 0 + false + + + + true + true + false + + + $(pv_name) + + + + true + false + + + false + XY Graph + true + 765 + 100 + + 2 + false + true + 0 + 0 + $(trace_0_y_pv) +$(trace_0_y_pv_value) + true + 1 + + Default + + 0 + + + + + loc://demo(1.23, 2.2, 3, 4.5, 6.7, 8,9,6,4,3,1) + 0.0 + true + 0.0 + + + + + + =1 + loc://$(DID)_left(2) + loc://$(DID)_right(7) + + + true + + + + + + true + true + false + + + + 0 + + + + 100 + + + true + false + true + false + true + false + + 26 + false + false + true + + + + true + Text Input + + + Default + + 118 + 0 + + 1.7976931348623157E308 + 1 + -1.7976931348623157E308 + 0 + true + 4dacd5bd:14078075879:-7da5 + + Text_1 + 0 + + true + true + false + + loc://$(DID)_left(2) + + + + 0 + false + + + false + 0 + + + + 520 + + 140 + $(pv_name) +$(pv_value) + + + true + false + true + false + true + false + + 26 + false + false + true + + + + true + Text Input + + + Default + + 118 + 0 + + 1.7976931348623157E308 + 1 + -1.7976931348623157E308 + 0 + true + 4dacd5bd:14078075879:-7da1 + + Text_2 + 0 + + true + true + false + + loc://$(DID)_right(7) + + + + 0 + false + + + false + 0 + + + + 520 + + 565 + $(pv_name) +$(pv_value) + + + true + 1 + 4dacd5bd:14078075879:-7d50 + false + + 22 + Label + + true + true + false + + true + false + + + + + + + Label + true + Left + + Default + + 37 + 0 + + 1 + + + + 0 + + 522 + true + + 104 + + + true + 1 + 4dacd5bd:14078075879:-7d44 + false + + 22 + Label_1 + + true + true + false + + true + false + + + + + + + Label + true + Right + + Default + + 37 + 0 + + 1 + + + + 0 + + 522 + true + + 529 + + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/2_6_1_IntensityGraph.opi b/core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/2_6_1_IntensityGraph.opi new file mode 100644 index 000000000..24317cc12 --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/2_6_1_IntensityGraph.opi @@ -0,0 +1,528 @@ + + + false + + true + sim://noise + Best OPI Yet + + 66d1507f:138820a85e5:-7d6d + 3.1.2.20120828 + + false + 600 + Intensity Graph + true + true + + + + + + + Display + true + 800 + + true + 4 + + true + -1 + -1 + + + -1 + -1 + + true + 1 + 66d1507f:138820a85e5:-7d6c + false + + 148 + Label_5 + + true + true + false + + false + false + + + + + + + Label + true + Intensity Graph has the capability to display 2D data in colors based on its color map which is a map between value and color. For example, it could be used to display video image, temperature pattern or terrain in an intuitive fashion. +The input data must be a 1D array of long or double value, in which the data is arranged row by row. For example, for a N rows by M columns 2D data, the input data should like this: +InputData = P11, P12,...P1M, P21, P22, ... P2M, ... PN1, PN2, ...PNM + + Default + + 745 + 1 + + 1 + + + + 0 + + 105 + true + + 24 + + + true + 1 + 66d1507f:138820a85e5:-7d6b + false + + 86 + Label_8 + + true + true + false + + false + false + + + + + + + Label + true + Intensity Graph + + + + 295 + 0 + + 1 + + + + 1 + + 7 + true + + 24 + + + true + 1 + 66d1507f:138820a85e5:-7d6a + false + + 43 + Label_6 + + true + true + false + + false + false + + + + + + + Label + true + Examples + + + + 451 + 0 + + 1 + + + + 1 + + 50 + true + + 318 + + + true + 1 + 66d1507f:138820a85e5:-7d69 + false + + 44 + Label_9 + + true + true + false + + false + false + + + + + + + Label + true + Best OPI Yet (BOY) + + + + 451 + 0 + + 1 + + + + 1 + + 7 + true + + 318 + + + true + 1 + 66d1507f:138820a85e5:-7d68 + true + + 16 + Label_6 + + true + true + false + + false + false + + + + + + + Label + true + Introduction + + + + 76 + 0 + + 1 + + + + 1 + + 96 + true + $(pv_name) +$(pv_value) + 351 + + + + true + + true + 66d1507f:138820a85e5:-7d65 + + 44 + widgets/IntensityGraph.html + + false + false + false + + true + false + + + + + + + Grouping Container + true + + Default + + 185 + 0 + + true + 1 + + + + + + ../scripts/openHelp.js + + false + Open Help + + + 352 + + 312 + + true + 1 + 66d1507f:138820a85e5:-7d64 + false + + 22 + Label_28 + + true + true + false + + true + false + + + + + + + Label + true + See Online Help + + + + 135 + 0 + + 1 + + + + 1 + + 11 + true + + 41 + + + false + true + 20 + true + 0.0 + 66d1507f:138820a85e5:-7d63 + 0.0 + + 0 + 1 + true + Polyline + false + 255 + + true + true + true + + + + + + false + + + + + + + + Polyline + true + false + + Default + + 120 + 0 + 0 + + + 1 + 1 + true + + + + + 32 + $(pv_name) +$(pv_value) + 49 + + + 0 + 0 + true + 66d1507f:138820a85e5:-7d62 + true + + 44 + Image + true + + true + true + false + + + + + + + + Image + true + + Default + + 42 + false + 0 + 0 + + 0 + 1 + ../pictures/onlineHelp.gif + + + + + 0 + + 8 + + + + false + true + 66d1507f:138820a85e5:-7d59 + + 38 + Action Button + false + + true + true + false + + + + + + Button + true + Go Home + + Default + + 97 + 0 + 0 + ../pictures/home-16x16.png + + + false + 1 + + + + 516 + + + ../scripts/goHome.js + + false + + + + $(pv_name) +$(pv_value) + 28 + + + false + true + -6a9ec46b:1396e9e2bd8:-7c3e + + 38 + Action Button_2 + false + + true + true + false + + + + + + Button + true + Next + + + + 97 + 0 + 0 + + + + false + 1 + + + + 516 + + + 2_6_2_IntensityGraph_Javascript.opi + + true + + 1 + + + + $(pv_name) +$(pv_value) + 664 + + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/2_6_2_IntensityGraph_Javascript.opi b/core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/2_6_2_IntensityGraph_Javascript.opi new file mode 100644 index 000000000..73b34f1f2 --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/2_6_2_IntensityGraph_Javascript.opi @@ -0,0 +1,917 @@ + + + false + + true + + 553ac269:135b01240d5:-3c52 + 3.2.16.qualifier + + false + 600 + Intensity Graph + false + false + + + + + + + Display + true + 800 + + true + 6 + + true + -1 + -1 + + + -1 + -1 + + true + 1 + 553ac269:135b01240d5:-3c50 + false + + 86 + Label_8 + + true + true + false + + false + false + + + + + + + Label + true + Intensity Graph +with Javascript + + + + 307 + 0 + + 1 + + + + 1 + + 5 + true + + 5 + + + true + 1 + 553ac269:135b01240d5:-3c4f + false + + 43 + Label_6 + + true + true + false + + false + false + + + + + + + Label + true + Examples + + + + 488 + 0 + + 1 + + + + 1 + + 48 + true + + 299 + + + true + 1 + 553ac269:135b01240d5:-3c4e + false + + 44 + Label_9 + + true + true + false + + false + false + + + + + + + Label + true + Best OPI Yet (BOY) + + + + 488 + 0 + + 1 + + + + 1 + + 5 + true + + 299 + + + false + + + + false + 0 + loc://vpy + 0.0 + 0 + 100.0 + + 0 + -1.0 + + 553ac269:135b01240d5:-3c4c + 256 + 50 + + + + + + + + + + 256 + 0.0 + + + + + loc://hpx + false + + 0 + 0 + + + + + + 108 + 258 + true + false + X Axis + + + sim://ramp(0,10,0.2,1) + loc://dataSource + + + 311 + 100.0 + false + + + + Intensity Graph + true + + Default + + 371 + + true + true + 2 + + true + + + + + 1 + 1.0 + + + + 0 + true + 270 + + Y Axis + + + + true + IntensityGraph + + true + true + true + + true + loc://vpx + loc://pixel_info + loc://hpy + 276 + + + + pvStr0 + + loc://colorMap + + + 50 + true + $(pv_name) + + + true + true + 553ac269:135b01240d5:-3c4b + + 30 + ColorMapSelector + false + + true + false + false + + loc://colorMap + + + + + + + Combo + true + false + + + + 145 + 0 + + + + JET + GrayScale + ColorSpectrum + Hot + Cool + Shaded + + 1 + + + + false + + 133 + $(pv_name) +$(pv_value) + 643 + + + true + 1 + 553ac269:135b01240d5:-3c4a + false + + 20 + Label + + true + true + false + + true + false + + + + + + + Label + true + Select ColorMap: + + + + 150 + 0 + + 1 + + + + 0 + + 114 + true + + 643 + + + true + true + 553ac269:135b01240d5:-3c49 + + 30 + Combo Box_1 + false + + true + false + false + + loc://dataSource + + + + + + + Combo + true + false + + + + 145 + 0 + + + + Circular Sine Wave + Linear Sine Wave + + 1 + + + + false + + 186 + $(pv_name) +$(pv_value) + 643 + + + true + 1 + 553ac269:135b01240d5:-3c48 + false + + 20 + Label_1 + + true + true + false + + true + false + + + + + + + Label + true + Select Data Source: + + + + 150 + 0 + + 1 + + + + 0 + + 167 + true + + 643 + + + + + + false + 0 + 0 + 1 + true + false + 4 + false + 106 + 41 + true + + true + 313 + 100.0 + + + + 1 + + + + + XY Graph + 0.0 + 1 + false + true + + + + 0.0 + Trace 0 + 0 + Profile + 553ac269:135b01240d5:-3c47 + + + + + + + false + Y Axis + 1.0 + + + + 0 + false + + + + true + true + false + + loc://vpy + loc://vpx + + + + true + false + + + false + XY Graph + true + 211 + 256 + + 2 + false + true + 0 + 0 + $(pv_name) +$(pv_value) + true + 1 + + + + 0 + + + + + $(trace_0_y_pv) + 0.0 + true + -1.0 + + + + + true + + + + + + true + true + true + + + + 0 + + + + 100 + + + + + + true + 0 + 0 + 1 + true + false + 4 + false + 422 + 255 + true + + true + 142 + 1.0 + + + + 1 + + + + + XY Graph_1 + 0.0 + 1 + false + true + + + + 0.0 + Trace 0 + 0 + X Axis + 553ac269:135b01240d5:-3c46 + + + + + + + false + Profile + 100.0 + + + + 0 + false + + + + true + true + false + + loc://hpx + loc://hpy + + + + false + false + + + false + XY Graph + true + 328 + 256 + + 2 + false + true + 0 + 0 + $(pv_name) +$(pv_value) + true + 1 + + + + 0 + + + + + $(trace_0_y_pv) + -1.0 + true + 0.0 + + + + + true + + + + + + true + true + true + + + + 0 + + + + 100 + + + true + 0 + 553ac269:135b01240d5:-3c45 + false + + 158 + Label_5 + + true + true + false + + false + false + + + + + + + Label + true + Tips: + +In Run Mode, dragging mouse on graph area will zoom in. +Double clicking will return to original states. +The text tip right below the cursor is (X, Y, Value) + + Default + + 154 + 1 + + 1 + + + + 0 + + 219 + true + + 643 + + + false + true + 66d1507f:138820a85e5:-7d3f + + 38 + + Action Button_3 + false + + true + true + false + + + + + + Action Button + true + Go Home + + Default + + 97 + 0 + 0 + ../pictures/home-16x16.png + + + false + 1 + + + + 549 + + + ../scripts/goHome.js + + false + + + + $(pv_name) +$(pv_value) + 10 + + + false + true + 66d1507f:138820a85e5:-7d3a + + 28 + + Action Button_2 + false + + true + true + false + + + + + + Action Button + true + Back + + Default + + 79 + 0 + 0 + + + + false + 1 + + + + 552 + + + 2_6_1_IntensityGraph.opi + + true + + 1 + + + + $(pv_name) +$(pv_value) + 615 + + + false + true + 66d1507f:138820a85e5:-7d27 + + 28 + + Action Button_2 + false + + true + true + false + + + + + + Action Button + true + Next + + Default + + 79 + 0 + 0 + + + + false + 1 + + + + 551 + + + 2_6_3_IntensityGraph_Python.opi + + true + + 1 + + + + Intensity Graph with Python script + 703 + + + true + true + 65aa75b2:14561138bf3:-7f4e + + + 116 + Text Update + + true + true + false + + loc://pixel_info + + + + + + + true + VTable Display + + Default + + 250 + 0 + + 1 + + + + 428 + + 2 + $(pv_name) +$(pv_value) + + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/2_6_3_IntensityGraph_Python.opi b/core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/2_6_3_IntensityGraph_Python.opi new file mode 100644 index 000000000..8e7ccea64 --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/2_6_3_IntensityGraph_Python.opi @@ -0,0 +1,1778 @@ + + + false + + true + + 553ac269:135b01240d5:-3c43 + 3.2.7.qualifier + + false + 600 + Intensity Graph + true + false + + + + + + + Display + true + 800 + + true + 6 + + true + -1 + -1 + + + -1 + -1 + + true + 1 + 553ac269:135b01240d5:-3c41 + false + + 86 + Label_8 + + true + true + false + + false + false + + + + + + + Label + true + Intensity Graph +with Python script + + + + 307 + 0 + + 1 + + + + 1 + + 5 + true + + 5 + + + true + 1 + 553ac269:135b01240d5:-3c40 + false + + 43 + Label_6 + + true + true + false + + false + false + + + + + + + Label + true + Examples + + + + 488 + 0 + + 1 + + + + 1 + + 48 + true + + 299 + + + true + 1 + 553ac269:135b01240d5:-3c3f + false + + 44 + Label_9 + + true + true + false + + false + false + + + + + + + Label + true + Best OPI Yet (BOY) + + + + 488 + 0 + + 1 + + + + 1 + + 5 + true + + 305 + + + false + + + + false + 0 + 0 + loc://vpy + 0.0 + loc://$(DID)_ROI0_W(60) + + 0 + + 100.0 + + 0 + -1.0 + + 553ac269:135b01240d5:-3c3d + 256 + true + 50 + + + + + + + + + + 256 + 0.0 + + ROI 1 + + + + + loc://hpx + false + + 0 + true + + + 2 + + + + + + + + 108 + 258 + true + false + X Axis + + + sim://ramp(0,10,0.2,1) + loc://dataSource + + + =1 + + + 311 + + loc://$(DID)_ROI1_W(80) + loc://$(DID)_ROI0_Y(10) + 100.0 + true + loc://$(DID)_ROI0_X(10) + + + + Intensity Graph + true + loc://$(DID)_ROI1_H(80) + loc://$(DID)_ROI0_H(60) + + Default + + 371 + + true + true + 2 + + true + + + + + 1 + 1.0 + ROI 0 + + + + 0 + true + 274 + Y Axis + + + + true + IntensityGraph + + true + true + true + + true + loc://vpx + loc://hpy + loc://$(DID)_ROI1_X(20) + 265 + + + + pvStr0 + + loc://colorMap + + + 50 + true + loc://$(DID)_ROI1_Y(20) + $(pv_name) + + + false + true + 553ac269:135b01240d5:-3c3c + + 23 + ColorMapSelector + false + + true + false + false + + loc://colorMap + + + + + + + Combo + true + false + + + + 145 + 0 + + + + JET + GrayScale + ColorSpectrum + Hot + Cool + Shaded + + 1 + + + + false + + 133 + $(pv_name) +$(pv_value) + 643 + + + true + 1 + 553ac269:135b01240d5:-3c3b + false + + 20 + Label + + true + true + false + + true + false + + + + + + + Label + true + Select ColorMap: + + + + 150 + 0 + + 1 + + + + 0 + + 114 + true + + 643 + + + false + true + 553ac269:135b01240d5:-3c3a + + 23 + Combo Box_1 + false + + true + false + false + + loc://dataSource + + + + + + + Combo + true + false + + + + 145 + 0 + + + + Circular Sine Wave + Linear Sine Wave + + 1 + + + + false + + 186 + $(pv_name) +$(pv_value) + 643 + + + true + 1 + 553ac269:135b01240d5:-3c39 + false + + 20 + Label_1 + + true + true + false + + true + false + + + + + + + Label + true + Select Data Source: + + + + 150 + 0 + + 1 + + + + 0 + + 167 + true + + 643 + + + + + + false + 0 + 0 + 1 + true + false + 4 + false + 106 + 41 + true + + true + 313 + 100.0 + + + + 1 + + + + + XY Graph + 0.0 + 1 + false + true + + + + 0.0 + Trace 0 + 0 + Profile + 553ac269:135b01240d5:-3c38 + + + + + + + false + Y Axis + 1.0 + + + + 0 + false + + + + true + true + false + + loc://vpy + loc://vpx + + + + true + false + + + false + XY Graph + true + 211 + 256 + + 2 + false + true + 0 + 0 + $(pv_name) +$(pv_value) + true + 1 + + + + 0 + + + + + $(trace_0_y_pv) + 0.0 + true + -1.0 + + + + + true + + + + + + true + true + true + + + + 0 + + + + 100 + + + + + + true + 0 + 0 + 1 + true + false + 4 + false + 421 + 277 + true + + true + 142 + 1.0 + + + + 1 + + + + + XY Graph_1 + 0.0 + 1 + false + true + + + + 0.0 + Trace 0 + 0 + X Axis + 553ac269:135b01240d5:-3c37 + + + + + + + false + Profile + 100.0 + + + + 0 + false + + + + true + true + false + + loc://hpx + loc://hpy + + + + false + false + + + false + XY Graph + true + 321 + 256 + + 2 + false + true + 0 + 0 + $(pv_name) +$(pv_value) + true + 1 + + + + 0 + + + + + $(trace_0_y_pv) + -1.0 + true + 0.0 + + + + + true + + + + + + true + true + true + + + + 0 + + + + 100 + + + false + true + 66d1507f:138820a85e5:-7cef + + 38 + + Action Button_3 + false + + true + true + false + + + + + + Action Button + true + Go Home + + Default + + 97 + 0 + 0 + ../pictures/home-16x16.png + + + false + 1 + + + + 547 + + + ../scripts/goHome.js + + false + + + + $(pv_name) +$(pv_value) + 16 + + + + true + + true + -301aedeb:1394fdf7917:-7f6c + + 162 + ROI 0 + + true + true + false + + false + false + + + + + + + true + Grouping Container + + Default + + 153 + 13 + + false + false + 1 + + + + 224 + + 639 + + + true + 1 + -301aedeb:1394fdf7917:-7fa2 + false + + 20 + Label_12 + + true + true + false + + true + false + + + + + + + Label + true + X + + + + 19 + 0 + + 1 + + + + 0 + + 29 + true + + 0 + + + true + 1 + -301aedeb:1394fdf7917:-7f92 + false + + 20 + Label_13 + + true + true + false + + true + false + + + + + + + Label + true + Y + + + + 19 + 0 + + 1 + + + + 0 + + 54 + true + + 0 + + + true + 1 + -301aedeb:1394fdf7917:-7f8c + false + + 20 + Label_14 + + true + true + false + + true + false + + + + + + + Label + true + W + + + + 19 + 0 + + 1 + + + + 0 + + 79 + true + + 0 + + + true + 1 + -301aedeb:1394fdf7917:-7f86 + false + + 20 + Label_15 + + true + true + false + + true + false + + + + + + + Label + true + H + + + + 19 + 0 + + 1 + + + + 0 + + 104 + true + + 0 + + + true + true + 3124a5e3:1394fb2673d:-7f1c + false + + + SetROIVisibility + + $(pv_name) + + + 20 + Check Box + false + + true + false + false + + loc://$(DID)_roi0_visible(1) + + + + + + + Check Box + true + false + + Default + + 100 + 0 + + + + + + + 0 + 1 + + + + + 0 + $(pv_name) +$(pv_value) + 0 + + + false + false + true + false + true + false + + 25 + false + false + false + + + + true + Text + + + Default + + 100 + 0 + + 1.7976931348623157E308 + 1 + -1.7976931348623157E308 + 0 + false + -301aedeb:1394fdf7917:-7fa6 + + Text + 1 + + true + true + false + + loc://$(DID)_ROI0_X(0) + + + + 0 + false + + + false + 0 + + + + 27 + + 18 + $(pv_name) +$(pv_value) + + + false + false + true + false + true + false + + 25 + false + false + false + + + + true + Text + + + Default + + 100 + 0 + + 1.7976931348623157E308 + 1 + -1.7976931348623157E308 + 0 + false + -301aedeb:1394fdf7917:-7f93 + + Text_1 + 1 + + true + true + false + + loc://$(DID)_ROI0_Y(0) + + + + 0 + false + + + false + 0 + + + + 52 + + 18 + $(pv_name) +$(pv_value) + + + false + false + true + false + true + false + + 25 + false + false + false + + + + true + Text + + + Default + + 100 + 0 + + 1.7976931348623157E308 + 1 + -1.7976931348623157E308 + 0 + false + -301aedeb:1394fdf7917:-7f8d + + Text_2 + 1 + + true + true + false + + loc://$(DID)_ROI0_W(50) + + + + 0 + false + + + false + 0 + + + + 77 + + 18 + $(pv_name) +$(pv_value) + + + false + false + true + false + true + false + + 25 + false + false + false + + + + true + Text + + + Default + + 100 + 0 + + 1.7976931348623157E308 + 1 + -1.7976931348623157E308 + 0 + false + -301aedeb:1394fdf7917:-7f87 + + Text_3 + 1 + + true + true + false + + loc://$(DID)_ROI0_H(50) + + + + 0 + false + + + false + 0 + + + + 102 + + 18 + $(pv_name) +$(pv_value) + + + + + true + + true + 16d9be2c:139595b4529:-7e5b + + 162 + ROI 1 + + true + true + false + + false + false + + + + + + + true + Grouping Container + + Default + + 153 + 13 + + false + false + 1 + + + + 390 + + 639 + + + true + 1 + -301aedeb:1394fdf7917:-7fa2 + false + + 20 + Label_12 + + true + true + false + + true + false + + + + + + + Label + true + X + + + + 19 + 0 + + 1 + + + + 0 + + 29 + true + + 0 + + + true + 1 + -301aedeb:1394fdf7917:-7f92 + false + + 20 + Label_13 + + true + true + false + + true + false + + + + + + + Label + true + Y + + + + 19 + 0 + + 1 + + + + 0 + + 54 + true + + 0 + + + true + 1 + -301aedeb:1394fdf7917:-7f8c + false + + 20 + Label_14 + + true + true + false + + true + false + + + + + + + Label + true + W + + + + 19 + 0 + + 1 + + + + 0 + + 79 + true + + 0 + + + true + 1 + -301aedeb:1394fdf7917:-7f86 + false + + 20 + Label_15 + + true + true + false + + true + false + + + + + + + Label + true + H + + + + 19 + 0 + + 1 + + + + 0 + + 104 + true + + 0 + + + true + true + 3124a5e3:1394fb2673d:-7f1c + false + + + SetROIVisibility + + $(pv_name) + + + 20 + Check Box + false + + true + false + false + + loc://$(DID)_ROI1_visible(1) + + + + + + + Check Box + true + false + + Default + + 100 + 0 + + + + + + + 0 + 1 + + + + + 0 + $(pv_name) +$(pv_value) + 0 + + + false + false + true + false + true + false + + 25 + false + false + false + + + + true + Text + + + Default + + 100 + 0 + + 1.7976931348623157E308 + 1 + -1.7976931348623157E308 + 0 + false + -301aedeb:1394fdf7917:-7f87 + + Text_3 + 1 + + true + true + false + + loc://$(DID)_ROI1_H(80) + + + + 0 + false + + + false + 0 + + + + 102 + + 18 + $(pv_name) +$(pv_value) + + + false + false + true + false + true + false + + 25 + false + false + false + + + + true + Text + + + Default + + 100 + 0 + + 1.7976931348623157E308 + 1 + -1.7976931348623157E308 + 0 + false + -301aedeb:1394fdf7917:-7f8d + + Text_2 + 1 + + true + true + false + + loc://$(DID)_ROI1_W(80) + + + + 0 + false + + + false + 0 + + + + 77 + + 18 + $(pv_name) +$(pv_value) + + + false + false + true + false + true + false + + 25 + false + false + false + + + + true + Text + + + Default + + 100 + 0 + + 1.7976931348623157E308 + 1 + -1.7976931348623157E308 + 0 + false + -301aedeb:1394fdf7917:-7f93 + + Text_1 + 1 + + true + true + false + + loc://$(DID)_ROI1_Y(20) + + + + 0 + false + + + false + 0 + + + + 52 + + 18 + $(pv_name) +$(pv_value) + + + false + false + true + false + true + false + + 25 + false + false + false + + + + true + Text + + + Default + + 100 + 0 + + 1.7976931348623157E308 + 1 + -1.7976931348623157E308 + 0 + false + -301aedeb:1394fdf7917:-7fa6 + + Text + 1 + + true + true + false + + loc://$(DID)_ROI1_X(20) + + + + 0 + false + + + false + 0 + + + + 27 + + 18 + $(pv_name) +$(pv_value) + + + + false + true + 66d1507f:138820a85e5:-7cdd + + 28 + + Action Button_2 + false + + true + true + false + + + + + + Action Button + true + Back + + Default + + 79 + 0 + 0 + + + + false + 1 + + + + 552 + + + 2_6_2_IntensityGraph_Javascript.opi + + true + + 1 + + + + Intensity Graph with Javascript + 708 + + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/3_1_Action_Button.opi b/core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/3_1_Action_Button.opi new file mode 100644 index 000000000..0839a6b27 --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/3_1_Action_Button.opi @@ -0,0 +1,718 @@ + + + false + + true + + 66d1507f:138820a85e5:-7cca + 3.2.0.qualifier + + false + 600 + Action Button + true + false + + + + + + + Display + true + 800 + + true + 4 + + true + -1 + -1 + + + -1 + -1 + + true + 1 + 66d1507f:138820a85e5:-7cc9 + false + + 86 + Label_8 + + true + true + false + + false + false + + + + + + + Label + true + Action Button + + + + 295 + 0 + + 1 + + + + 1 + + 6 + true + + 17 + + + true + 1 + 66d1507f:138820a85e5:-7cc8 + false + + 43 + Label_6 + + true + true + false + + false + false + + + + + + + Label + true + Examples + + + + 451 + 0 + + 1 + + + + 1 + + 49 + true + + 311 + + + true + 1 + 66d1507f:138820a85e5:-7cc7 + false + + 44 + Label_9 + + true + true + false + + false + false + + + + + + + Label + true + Best OPI Yet (BOY) + + + + 451 + 0 + + 1 + + + + 1 + + 6 + true + + 311 + + + + true + + true + 66d1507f:138820a85e5:-7cc3 + + 44 + widgets/ActionButton.html + + false + false + false + + true + false + + + + + + + true + Grouping Container + + Default + + 185 + 0 + + true + 1 + + + + 547 + + + ../scripts/openHelp.js + + false + Open Help + + + 605 + + + true + 1 + 66d1507f:138820a85e5:-7cc2 + false + + 22 + Label_28 + + true + true + false + + true + false + + + + + + + Label + true + See Online Help + + + + 135 + 0 + + 1 + + + + 1 + + 11 + true + + 41 + + + false + true + 20 + true + 0.0 + 66d1507f:138820a85e5:-7cc1 + 0.0 + + 0 + 1 + true + Polyline + false + 255 + + true + true + true + + + + + + false + + + + + + + + Polyline + true + false + + Default + + 120 + 0 + 0 + + + 1 + 1 + true + + + + + 32 + $(pv_name) +$(pv_value) + 49 + + + 0 + 0 + true + 66d1507f:138820a85e5:-7cc0 + true + + 44 + Image + true + + true + true + false + + + + + + + + Image + true + + Default + + 42 + false + false + + + 1.0 + 0.0 + + + 0.0 + 1.0 + + + 0 + 0 + + false + 0 + 0 + 1 + ../pictures/onlineHelp.gif + + + + + 0 + + 8 + + + + false + true + 66d1507f:138820a85e5:-7ca9 + + 38 + + Action Button_3 + false + + true + true + false + + + + + + + + + Action Button + true + Go Home + false + + Default + + 97 + 0 + 0 + ../pictures/home-16x16.png + + + false + 1 + + + + 550 + + + ../scripts/goHome.js + + false + + + + $(pv_name) +$(pv_value) + 17 + + + + true + + true + -6f7a1eb6:13cdf6ad4c4:-7b39 + + 135 + Classic Style + + true + true + false + + false + false + + + + + + + true + Grouping Container + + Default + + 400 + 13 + + false + 1 + + + + 126 + + 194 + + + false + true + 66d1507f:138820a85e5:-7cc6 + + 40 + + Action Button_1 + false + + true + true + false + + + + + + + + + Action Button + true + Non-Toggle Button + false + + Default + + 132 + 0 + 0 + + + + false + 1 + + + + 15 + + + ../scripts/Dialog_push.js + + false + + + + $(pv_name) +$(pv_value) + 23 + + + false + true + 66d1507f:138820a85e5:-7cc5 + + 40 + + Action Button_2 + false + + true + true + false + + + + + + + + + Action Button + true + Toggle Button + false + + Default + + 132 + 0 + 0 + ../pictures/Start_16.png + + + true + 1 + 1 + + + + 15 + + + ../scripts/Dialog_push.js + + false + + + + ../scripts/Dialog_release.js + + false + + + + $(pv_name) +$(pv_value) + 208 + + + + + true + + true + -6f7a1eb6:13cdf6ad4c4:-7b12 + + 102 + Native Style + + true + true + false + + false + false + + + + + + + true + Grouping Container + + Default + + 400 + 13 + + false + 1 + + + + 279 + + 194 + + + false + true + 66d1507f:138820a85e5:-7cc6 + + 40 + + Action Button_1 + false + + true + true + false + + + + + + + + + Action Button + true + Non-Toggle Button + false + + Default + + 168 + 0 + 0 + ../pictures/reset.png + + + false + 1 + + + + 15 + + + ../scripts/Dialog_push.js + + false + + + + $(pv_name) +$(pv_value) + 11 + + + false + true + 66d1507f:138820a85e5:-7cc5 + + 40 + + Action Button_2 + false + + true + true + false + + + + + + + + + Action Button + true + Toggle Button + false + + Default + + 132 + 0 + 0 + + + + true + 1 + 1 + + + + 15 + + + ../scripts/Dialog_push.js + + false + + + + ../scripts/Dialog_release.js + + false + + + + $(pv_name) +$(pv_value) + 208 + + + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/3_2_1_BoolButton_Switch.opi b/core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/3_2_1_BoolButton_Switch.opi new file mode 100644 index 000000000..b256e2259 --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/3_2_1_BoolButton_Switch.opi @@ -0,0 +1,2307 @@ + + + false + + true + + 66d1507f:138820a85e5:-7ca6 + 3.2.0.qualifier + + false + 600 + Boolean Button/Switch + false + true + + + + + + + Display + true + 800 + + true + 4 + + true + -1 + -1 + + + -1 + -1 + + true + 1 + 66d1507f:138820a85e5:-7ca5 + false + + 86 + Label_8 + + true + true + false + + false + false + + + + + + + Label + true + Boolean Button/Switch +Image Boolean Button + + + + 295 + 0 + + 1 + + + + 1 + + 6 + true + + 17 + + + true + 1 + 66d1507f:138820a85e5:-7ca4 + false + + 43 + Label_6 + + true + true + false + + false + false + + + + + + + Label + true + Examples + + + + 451 + 0 + + 1 + + + + 1 + + 49 + true + + 311 + + + true + 1 + 66d1507f:138820a85e5:-7ca3 + false + + 44 + Label_9 + + true + true + false + + false + false + + + + + + + Label + true + Best OPI Yet (BOY) + + + + 451 + 0 + + 1 + + + + 1 + + 6 + true + + 311 + + + true + true + 66d1507f:138820a85e5:-7ca2 + + + + + + 42 + true + 0 + Boolean Button + false + true + + true + true + true + + + + + loc://boolTest + + + + + + + OFF + 0 + Boolean Button + true + false + + + + 80 + 0 + 0 + Are your sure you want to do this? + true + + + -1 + true + 0 + 1 + ON + false + + + + 131 + + $(pv_name) +$(pv_value) + 9 + + + true + true + 66d1507f:138820a85e5:-7ca1 + + 0 + + + + + 100 + 0 + Boolean Switch + false + false + + true + true + false + + + + + loc://boolTest + + + + + + + OFF + 0 + Boolean Switch + true + false + + + + 50 + 0 + 0 + Are your sure you want to do this? + true + + + 5 + true + 0 + 1 + ON + + + + 221 + + $(pv_name) +$(pv_value) + 7 + + + true + true + 66d1507f:138820a85e5:-7ca0 + + + + + + 81 + true + 0 + Boolean Button_1 + false + false + + true + true + true + + + + + loc://boolTest + + + + + + + OFF + 0 + Boolean Button + true + false + + + + 53 + 0 + 0 + Are your sure you want to do this? + true + + + 1 + true + 1 + 1 + ON + false + + + + 111 + + $(pv_name) +$(pv_value) + 111 + + + true + true + 66d1507f:138820a85e5:-7c9f + + + + + + 42 + true + 0 + Boolean Button_2 + false + true + + true + true + true + + + + + loc://boolTest + + + + + + + OFF + 0 + Boolean Button + true + false + + + + 80 + 0 + 0 + Are your sure you want to do this? + true + + + 2 + true + 0 + 1 + ON + true + + + + 131 + + $(pv_name) +$(pv_value) + 185 + + + true + true + 66d1507f:138820a85e5:-7c9e + 123456 + + + + + 68 + false + 0 + Boolean Button_3 + false + true + + true + true + true + + + + + loc://boolTest + + + + + + + Open + 0 + Boolean Button + true + false + + + + 53 + 0 + 0 + Are your sure you want to do this? + true + + + 3 + true + 1 + 1 + Close + true + + + + 118 + + $(pv_name) +$(pv_value) + 287 + + + true + true + 66d1507f:138820a85e5:-7c9d + + + + + + 71 + false + 0 + Boolean Button_5 + false + true + + true + true + true + + + + + loc://boolTest2 + + + + + + + STOP + 0 + Boolean Button + true + false + + + + 71 + 0 + 0 + Are your sure you want to do this? + true + + + 4 + false + 0 + 1 + STOP + false + + + + 116 + + $(pv_name) +$(pv_value) + 456 + + + true + true + 66d1507f:138820a85e5:-7c9c + + 0 + + + + + 55 + 0 + Boolean Switch_1 + false + false + + true + true + false + + + + + loc://boolTest + + + + + + + OFF + 0 + Boolean Switch + true + false + + + + 103 + 0 + 0 + Are your sure you want to do this? + true + + + 6 + true + 1 + 1 + ON + + + + 230 + + $(pv_name) +$(pv_value) + 269 + + + + true + + true + 66d1507f:138820a85e5:-7c9b + + 73 + Bits + + true + true + false + + false + false + + + + + + + true + Grouping Container + + Default + + 240 + 13 + + false + 1 + + + + 120 + + 544 + + + true + true + 66d1507f:138820a85e5:-7c9a + false + + false + 0 + + + + 25 + Byte Monitor + false + + true + true + false + + + + + loc://boolTest + + + + + + + Byte Monitor + true + false + 8 + + Default + + 209 + 0 + true + + + 1 + true + + + + + 12 + $(pv_name) +$(pv_value) + 0 + + + + true + true + 66d1507f:138820a85e5:-7c99 + + true + 0 + + 41 + 0 + Image Boolean Button + false + false + false + + true + true + false + + loc://boolTest + + + + + + + OFF + 0 + Image Boolean Button + true + false + + + + 47 + 0 + 0 + Are your sure you want to do this? + + + 1 + true + 0 + 1 + ON + ../pictures/reset_switch_off.gif + + + + 423 + ../pictures/reset_switch_on.gif + + $(pv_name) +$(pv_value) + 528 + + + true + true + 66d1507f:138820a85e5:-7c98 + + true + 0 + + 50 + 0 + Image Boolean Button_1 + false + false + false + + true + true + false + + loc://boolTest + + + + + + + OFF + 0 + Image Boolean Button + true + false + + + + 45 + 0 + 0 + Are your sure you want to do this? + + + 1 + true + 0 + 1 + ON + ../pictures/valve_off.gif + + + + 445 + ../pictures/valve_on.gif + + $(pv_name) +$(pv_value) + 610 + + + true + true + 66d1507f:138820a85e5:-7c97 + + true + 0 + + 68 + 0 + Image Boolean Button_2 + false + false + false + + true + true + false + + loc://boolTest + + + + + + + OFF + 0 + Image Boolean Button + true + false + + + + 68 + 0 + 0 + Are your sure you want to do this? + + + 2 + true + 0 + 1 + ON + ../pictures/pump_off.gif + + + + 437 + ../pictures/pump_on.gif + + $(pv_name) +$(pv_value) + 682 + + + true + true + 66d1507f:138820a85e5:-7c96 + + true + 0 + + 39 + 0 + Image Boolean Button_3 + false + false + false + + true + true + false + + loc://boolTest + + + + + + + OFF + 0 + Image Boolean Button + true + false + + + + 52 + 0 + 0 + Are your sure you want to do this? + + + 1 + true + 0 + 1 + ON + ../pictures/switch_off.gif + + + + 424 + ../pictures/switch_on.gif + + $(pv_name) +$(pv_value) + 440 + + + + true + + true + 66d1507f:138820a85e5:-7c95 + + 133 + Bits Control + + false + false + false + + false + false + + + + + + + true + Grouping Container + + Default + + 106 + 13 + + false + 1 + + + + 216 + + 412 + + + false + true + 66d1507f:138820a85e5:-7c94 + true + + 18 + Check Box_1 + false + + true + false + false + + loc://boolTest + + + + + + + Check Box + true + false + + Default + + 65 + 0 + + + + + + + 1 + 0 + + + + + 26 + $(pv_name) +$(pv_value) + 0 + + + false + true + 66d1507f:138820a85e5:-7c93 + true + + 18 + Check Box + false + + true + false + false + + loc://boolTest + + + + + + + Check Box + true + false + + Default + + 65 + 0 + + + + + + + 0 + 0 + + + + + 0 + $(pv_name) +$(pv_value) + 0 + + + false + true + 66d1507f:138820a85e5:-7c92 + false + + 18 + Check Box_3 + false + + true + false + false + + loc://boolTest + + + + + + + Check Box + true + false + + Default + + 65 + 0 + + + + + + + 3 + 0 + + + + + 78 + $(pv_name) +$(pv_value) + 0 + + + false + true + 66d1507f:138820a85e5:-7c91 + false + + 18 + Check Box_2 + false + + true + false + false + + loc://boolTest + + + + + + + Check Box + true + false + + Default + + 65 + 0 + + + + + + + 2 + 0 + + + + + 52 + $(pv_name) +$(pv_value) + 0 + + + + true + true + 66d1507f:138820a85e5:-7c8d + + + + + + 71 + false + 0 + Boolean Button_7 + false + true + + true + true + true + + + + + loc://boolTest + + + + + + + Run + 0 + Boolean Button + true + false + + + + 71 + 0 + 0 + Are your sure you want to do this? + true + + + 4 + false + 0 + 1 + Run + false + + + + 116 + + $(pv_name) +$(pv_value) + 366 + + + true + true + 66d1507f:138820a85e5:-7c8c + + 0 + + + + + 100 + 0 + Boolean Switch_2 + false + false + + true + true + false + + + + + loc://boolTest2 + + + + + + + OFF + 0 + Boolean Switch + true + false + + + + 50 + 0 + 0 + Are your sure you want to do this? + true + + + 5 + true + 0 + 1 + ON + + + + 221 + + $(pv_name) +$(pv_value) + 63 + + + true + true + 66d1507f:138820a85e5:-7c8b + + 0 + + + + + 55 + 0 + Boolean Switch_3 + false + false + + true + true + false + + + + + loc://boolTest2 + + + + + + + OFF + 0 + Boolean Switch + true + false + + + + 103 + 0 + 0 + Are your sure you want to do this? + true + + + 6 + false + 0 + 1 + ON + + + + 284 + + $(pv_name) +$(pv_value) + 269 + + + true + true + 66d1507f:138820a85e5:-7c8a + + 0 + + + + + 55 + 0 + Boolean Switch_4 + false + false + + true + true + false + + + + + loc://boolTest + + + + + + + OFF + 0 + Boolean Switch + true + false + + + + 103 + 0 + 0 + Are your sure you want to do this? + false + + + 6 + true + 1 + 1 + ON + + + + 232 + + $(pv_name) +$(pv_value) + 144 + + + true + true + 66d1507f:138820a85e5:-7c89 + + 0 + + + + + 55 + 0 + Boolean Switch_5 + false + false + + true + true + false + + + + + loc://boolTest2 + + + + + + + OFF + 0 + Boolean Switch + true + false + + + + 103 + 0 + 0 + Are your sure you want to do this? + false + + + 6 + false + 0 + 1 + ON + + + + 286 + + $(pv_name) +$(pv_value) + 144 + + + true + true + 66d1507f:138820a85e5:-7c88 + + false + 0 + + 30 + 1 + Image Boolean Button_4 + false + false + true + + true + true + true + + loc://enumTest + + + + + + + OFF + 0 + Image Boolean Button + true + false + + Default + + 30 + 0 + 0 + Are your sure you want to do this? + + + true + 0 + 1 + ON + On + ../pictures/OffButton.png + + + + Off + 424 + ../pictures/OnButton.png + + $(pv_name) +$(pv_value) + 37 + + + true + true + 66d1507f:138820a85e5:-7c87 + + false + 0 + + 30 + 0 + Image Boolean Button_5 + false + false + true + + true + true + true + + loc://boolTest2 + + + + + + + OFF + 0 + Image Boolean Button + true + false + + Default + + 30 + 0 + 0 + Are your sure you want to do this? + + + -1 + false + 0 + 1 + ON + ../pictures/OffButton.png + + + + 477 + ../pictures/OnButton.png + + $(pv_name) +$(pv_value) + 37 + + + true + true + 66d1507f:138820a85e5:-7c86 + + true + 0 + + 41 + 0 + Image Boolean Button_6 + false + false + false + + true + true + false + + loc://boolTest + + + + + + + OFF + 0 + Image Boolean Button + true + false + + + + 47 + 0 + 0 + Are your sure you want to do this? + + + 2 + false + 0 + 1 + ON + ../pictures/reset_switch_off.gif + + + + 476 + ../pictures/reset_switch_on.gif + + $(pv_name) +$(pv_value) + 531 + + + true + true + 66d1507f:138820a85e5:-7c85 + + true + 0 + + 39 + 0 + Image Boolean Button_7 + false + false + false + + true + true + false + + loc://boolTest + + + + + + + OFF + 0 + Image Boolean Button + true + false + + + + 52 + 0 + 0 + Are your sure you want to do this? + + + 2 + false + 0 + 1 + ON + ../pictures/switch_off.gif + + + + 477 + ../pictures/switch_on.gif + + $(pv_name) +$(pv_value) + 440 + + + + true + + true + 66d1507f:138820a85e5:-7c84 + + 44 + widgets/BooleanWidgets.html + + false + false + false + + true + false + + + + + + + true + Grouping Container + + Default + + 185 + 0 + + true + 1 + + + + 552 + + + ../scripts/openHelp.js + + false + Open Help + + + 615 + + + true + 1 + 66d1507f:138820a85e5:-7c83 + false + + 22 + Label_28 + + true + true + false + + true + false + + + + + + + Label + true + See Online Help + + + + 135 + 0 + + 1 + + + + 1 + + 11 + true + + 41 + + + false + true + 20 + true + 0.0 + 66d1507f:138820a85e5:-7c82 + 0.0 + + 0 + 1 + true + Polyline + false + 255 + + true + true + true + + + + + + false + + + + + + + + Polyline + true + false + + Default + + 120 + 0 + 0 + + + 1 + 1 + true + + + + + 32 + $(pv_name) +$(pv_value) + 49 + + + 0 + 0 + true + 66d1507f:138820a85e5:-7c81 + true + + 44 + Image + true + + true + true + false + + + + + + + + Image + true + + Default + + 42 + false + false + + + 1.0 + 0.0 + + + 0.0 + 1.0 + + + 0 + 0 + + false + 0 + 0 + 1 + ../pictures/onlineHelp.gif + + + + + 0 + + 8 + + + + false + true + 66d1507f:138820a85e5:-7c78 + + 38 + + Action Button_3 + false + + true + true + false + + + + + + + + + Action Button + true + Go Home + false + + Default + + 97 + 0 + 0 + ../pictures/home-16x16.png + + + false + 1 + + + + 542 + + + ../scripts/goHome.js + + false + + + + $(pv_name) +$(pv_value) + 17 + + + true + true + 2b90f767:13cf336a7dd:-7e17 + + true + 0 + + 33 + 0 + Image Boolean Indicator + false + false + false + + true + true + false + + loc://boolTest + + + + + + + OFF + 0 + Image Boolean Button + true + false + + Default + + 74 + 0 + 0 + Are your sure you want to do this? + + + -1 + true + 0 + 1 + ON + images/Off_1.png + + + + 422 + images/On_1.png + + $(pv_name) +$(pv_value) + 111 + + + true + true + 2b90f767:13cf336a7dd:-7dce + + true + 0 + + 34 + 0 + Image Boolean Indicator_1 + false + false + false + + true + true + false + + loc://boolTest2 + + + + + + + OFF + 0 + Image Boolean Button + true + false + + Default + + 89 + 0 + 0 + Are your sure you want to do this? + + + -1 + true + 0 + 1 + ON + images/Off_2.png + + + + 475 + images/On_2.png + + $(pv_name) +$(pv_value) + 103 + + + + true + + true + 2b90f767:13cf336a7dd:-7c53 + + 125 + Grouping Container + + true + true + false + + false + true + + + + + + + true + Grouping Container + + Default + + 153 + 0 + + false + 1 + + + + 216 + + 580 + + + true + true + 2b90f767:13cf336a7dd:-7c4f + + true + 0 + + 38 + 1 + Image Boolean Indicator_1 + false + false + false + + true + true + false + + loc://enumTest + + + + + + + OFF + 0 + Image Boolean Button + true + false + + Default + + 36 + 0 + 0 + Are your sure you want to do this? + + + true + 0 + 1 + ON + On + images/Off_4.png + + + + Off + 12 + images/On_4.png + + $(pv_name) +$(pv_value) + 24 + + + true + true + 2b90f767:13cf336a7dd:-7bdf + + true + 0 + + 33 + 0 + Image Boolean Indicator_1 + false + false + false + + true + true + false + + loc://boolTest2 + + + + + + + OFF + 0 + Image Boolean Button + true + false + + Default + + 32 + 0 + 0 + Are your sure you want to do this? + + + -1 + true + 0 + 1 + ON + images/Off_5.png + + + + 64 + images/On_5.png + + $(pv_name) +$(pv_value) + 26 + + + true + true + 2b90f767:13cf336a7dd:-7781 + + false + 0 + + 81 + 0 + Image Boolean Indicator_2 + false + false + true + + true + true + true + + loc://boolTest + + + + + + + OFF + 0 + Image Boolean Button + true + false + + Default + + 41 + 0 + 0 + Are your sure you want to do this? + + + -1 + true + 0 + 1 + ON + images/Off_3.png + + + + 16 + images/On_3.png + + $(pv_name) +$(pv_value) + 76 + + + + + true + + true + 2b90f767:13cf336a7dd:-71bb + + 85 + Grouping Container_2 + + false + false + false + + false + false + + + + + + + true + Grouping Container + + Default + + 176 + 0 + + false + 1 + + + + 428 + + 224 + + + true + true + 2b90f767:13cf336a7dd:-71f2 + + true + 0 + + 62 + 0 + Image Boolean Indicator_2 + false + false + false + + true + true + false + + loc://boolTest2 + + + + + + + OFF + 0 + Image Boolean Button + true + false + + Default + + 111 + 0 + 0 + Are your sure you want to do this? + + + -1 + true + 0 + 1 + ON + images/Off_7.png + + + + 12 + images/On_7.png + + $(pv_name) +$(pv_value) + 32 + + + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/3_3_Menu_Button.opi b/core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/3_3_Menu_Button.opi new file mode 100644 index 000000000..bddb46c70 --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/3_3_Menu_Button.opi @@ -0,0 +1,1132 @@ + + + false + + true + + 553ac269:135b01240d5:-40dd + 3.1.4.qualifier + + false + 600 + Menu Button + false + false + + + + + + + Display + true + 800 + + true + 4 + + true + -1 + -1 + + + -1 + -1 + + false + true + 0.0 + + + + 553ac269:135b01240d5:-40dc + + + + + 330 + true + Rectangle_1 + false + 255 + + true + true + false + + true + + + + + + + + Rectangle + true + + + + false + + Default + + 633 + 0 + 1 + + + 1 + 0 + true + + + + + 185 + $(pv_name) +$(pv_value) + 17 + false + + + true + 1 + 553ac269:135b01240d5:-40db + false + + 60 + Label_6 + + true + true + false + + false + false + + + + + + + Label + true + Menu Button will pop up a menu after clicked. The menu will be filled with either the actions from "Actions" Property or the string values from an enumerated PV. + + + + 745 + 1 + + 1 + + + + 0 + + 115 + true + + 17 + + + true + 1 + 553ac269:135b01240d5:-40da + false + + 86 + Label_8 + + true + true + false + + false + false + + + + + + + Label + true + Menu Button + + + + 295 + 0 + + 1 + + + + 1 + + 6 + true + + 17 + + + true + 1 + 553ac269:135b01240d5:-40d9 + false + + 43 + Label_6 + + true + true + false + + false + false + + + + + + + Label + true + Examples + + + + 451 + 0 + + 1 + + + + 1 + + 49 + true + + 311 + + + true + 1 + 553ac269:135b01240d5:-40d8 + false + + 44 + Label_9 + + true + true + false + + false + false + + + + + + + Label + true + Best OPI Yet (BOY) + + + + 451 + 0 + + 1 + + + + 1 + + 6 + true + + 311 + + + true + 1 + 553ac269:135b01240d5:-40d7 + true + + 16 + Label_5 + + true + true + false + + false + false + + + + + + + Label + true + Introduction + + + + 76 + 0 + + 1 + + + + 1 + + 106 + true + $(pv_name) +$(pv_value) + 332 + + + false + true + true + 553ac269:135b01240d5:-40d6 + + 40 + Menu Button + false + + true + true + false + + false + css:sine.SCAN + + + + + + + Menu Button + true + false + + + + 100 + 6 + + + + 1 + + + + 226 + $(pv_name) +$(pv_value) + 214 + + + false + true + false + 553ac269:135b01240d5:-40d5 + + 40 + Menu Button_1 + false + + true + true + false + + false + + + + + + + + Menu Button + true + false + + + + 100 + 6 + + + + 1 + + + + 226 + + + ../scripts/SimpleDialog.js + + false + Open a simple dialog from Javascript + + + ../10_widgets.opi + + true + + 1 + + + + loc://test + 100 + 10 + + + + + $(pv_name) +$(pv_value) + 442 + + + true + 1 + 553ac269:135b01240d5:-40d3 + false + + 53 + Label_7 + + true + true + false + + false + false + + + + + + + Label + true + Please change this widget's PV Name to a real enum PV that is available to you computer. + + + + 284 + 1 + + 1 + + + + 0 + + 336 + true + + 140 + + + false + true + 20 + true + 0.0 + 553ac269:135b01240d5:-40d2 + 0.0 + + 2 + 47 + true + Polyline + false + 255 + + true + true + true + + + + + + false + + + + + + + + Polyline + true + false + + Default + + 1 + 0 + 0 + + + 1 + 1 + true + + + + + 280 + $(pv_name) +$(pv_value) + 257 + + + false + true + 20 + true + 0.0 + 553ac269:135b01240d5:-40d1 + 0.0 + + 0 + 1 + true + Polyline_1 + false + 255 + + true + true + false + + + + + + false + + + + + + + + Polyline + true + false + + Default + + 632 + 0 + 0 + + + 1 + 1 + true + + + + + 212 + $(pv_name) +$(pv_value) + 17 + + + + true + + true + 553ac269:135b01240d5:-40d0 + + 24 + Grouping Container + + false + true + false + + false + false + + + + + + + true + Grouping Container + + Default + + 182 + 0 + + false + 1 + + + + 187 + + 19 + + + false + true + false + 553ac269:135b01240d5:-40cf + + 24 + Menu Button_2 + false + + true + true + false + + false + + + + + + + + Menu Button + true + false + + Default + + 42 + 0 + + + + 1 + + + + 0 + + + ../scripts/SimpleDialog.js + + false + Action 1 + + + ../scripts/SimpleDialog.js + + false + Action 2 + + + ../scripts/SimpleDialog.js + + false + Action 3 + + + ../scripts/SimpleDialog.js + + false + Action 4 + + + $(pv_name) +$(pv_value) + 0 + + + false + true + false + 553ac269:135b01240d5:-40ce + + 24 + Menu Button_4 + false + + true + true + false + + false + + + + + + + + Menu Button + true + false + + Default + + 42 + 0 + + + + 1 + + + + 0 + + + ../scripts/SimpleDialog.js + + false + Action 1 + + + ../scripts/SimpleDialog.js + + false + Action 2 + + + ../scripts/SimpleDialog.js + + false + Action 3 + + + ../scripts/SimpleDialog.js + + false + Action 4 + + + $(pv_name) +$(pv_value) + 42 + + + false + true + false + 553ac269:135b01240d5:-40cd + + 24 + Menu Button_5 + false + + true + true + false + + false + + + + + + + + Menu Button + true + false + + Default + + 56 + 0 + + + + 1 + + + + 0 + + + ../scripts/SimpleDialog.js + + false + Action 1 + + + ../scripts/SimpleDialog.js + + false + Action 2 + + + ../scripts/SimpleDialog.js + + false + Action 3 + + + ../scripts/SimpleDialog.js + + false + Action 4 + + + $(pv_name) +$(pv_value) + 84 + + + false + true + false + 553ac269:135b01240d5:-40cc + + 24 + Menu Button_6 + false + + true + true + false + + false + + + + + + + + Menu Button + true + false + + Default + + 42 + 0 + + + + 1 + + + + 0 + + + ../scripts/SimpleDialog.js + + false + Action 1 + + + ../scripts/SimpleDialog.js + + false + Action 2 + + + ../scripts/SimpleDialog.js + + false + Action 3 + + + ../scripts/SimpleDialog.js + + false + Action 4 + + + $(pv_name) +$(pv_value) + 140 + + + + + true + + true + 553ac269:135b01240d5:-40cb + + 44 + widgets/MenuButton.html + + false + false + false + + true + false + + + + + + + true + Grouping Container + + Default + + 185 + 0 + + true + 1 + + + + 542 + + + ../scripts/openHelp.js + + false + Open Help + + + 592 + + + true + 1 + 553ac269:135b01240d5:-40ca + false + + 22 + Label_28 + + true + true + false + + true + false + + + + + + + Label + true + See Online Help + + + + 135 + 0 + + 1 + + + + 1 + + 11 + true + + 41 + + + false + true + 20 + true + 0.0 + 553ac269:135b01240d5:-40c9 + 0.0 + + 0 + 1 + true + Polyline + false + 255 + + true + true + true + + + + + + false + + + + + + + + Polyline + true + false + + Default + + 120 + 0 + 0 + + + 1 + 1 + true + + + + + 32 + $(pv_name) +$(pv_value) + 49 + + + 0 + 0 + true + 553ac269:135b01240d5:-40c8 + true + + 44 + Image + true + + true + true + false + + + + + + + + Image + true + + Default + + 42 + false + false + + + 1.0 + 0.0 + + + 0.0 + 1.0 + + + 0 + 0 + + false + 0 + 0 + 1 + ../pictures/onlineHelp.gif + + + + + 0 + + 8 + + + + false + true + 66d1507f:138820a85e5:-7c4b + + 38 + Action Button_3 + false + + true + true + false + + + + + + Button + true + Go Home + + Default + + 97 + 0 + 0 + ../pictures/home-16x16.png + + + false + 1 + + + + 548 + + + ../scripts/goHome.js + + false + + + + $(pv_name) +$(pv_value) + 17 + + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/3_4_1_Text_Input.opi b/core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/3_4_1_Text_Input.opi new file mode 100644 index 000000000..fa1fa751b --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/3_4_1_Text_Input.opi @@ -0,0 +1,1674 @@ + + + false + + true + + -614945d9:135bf25028b:-6f3c + 3.2.0.qualifier + + false + 600 + Text Input + true + false + + + + + + + Display + true + 800 + + true + 4 + + true + -1 + -1 + + + -1 + -1 + + true + 1 + -614945d9:135bf25028b:-6f3b + false + + 86 + Label_8 + + true + true + false + + false + false + + + + + + + Label + true + Text Input + + + + 295 + 0 + + 1 + + + + 1 + + 6 + true + + 17 + + + true + 1 + -614945d9:135bf25028b:-6f3a + false + + 43 + Label_6 + + true + true + false + + false + false + + + + + + + Label + true + Examples + + + + 451 + 0 + + 1 + + + + 1 + + 49 + true + + 311 + + + true + 1 + -614945d9:135bf25028b:-6f39 + false + + 44 + Label_9 + + true + true + false + + false + false + + + + + + + Label + true + Best OPI Yet (BOY) + + + + 451 + 0 + + 1 + + + + 1 + + 6 + true + + 311 + + + false + true + false + false + + 32 + false + true + + + + true + Text Input + + + Default + + 108 + 3 + + 1.7976931348623157E308 + 1 + -1.7976931348623157E308 + true + -614945d9:135bf25028b:-6f38 + 0.0 + + Text Input + 0 + + true + true + false + + 0 + false + loc://t1(123.456) + + + + 0 + false + + + false + 0 + + + + 280 + + 80 + $(pv_name) +$(pv_value) + + + false + true + false + false + + 32 + false + false + + + + true + Text Input + + + Default + + 108 + 3 + + 1.7976931348623157E308 + 1 + -1.7976931348623157E308 + false + -614945d9:135bf25028b:-6f37 + 0.0 + + Text Input_1 + 1 + + true + true + false + + 0 + false + loc://t2(123.456) + + + + 2 + false + + + false + 0 + + + + 280 + + 202 + $(pv_name) +$(pv_value) + + + false + true + false + false + + 32 + false + false + + + + true + Text Input + + + Default + + 108 + 3 + + 1.7976931348623157E308 + 1 + -1.7976931348623157E308 + false + -614945d9:135bf25028b:-6f36 + 0.0 + + Text Input_2 + 3 + + true + true + false + + 0 + false + loc://t3(642123) + + + + 0 + false + + + false + 0 + + + + 280 + + 324 + $(pv_name) +$(pv_value) + + + false + true + false + false + + 32 + false + false + + + + true + Text Input + + + Default + + 108 + 3 + + 1.7976931348623157E308 + 1 + -1.7976931348623157E308 + false + -614945d9:135bf25028b:-6f35 + 0.0 + + Text Input_3 + 2 + + true + true + false + + 0 + false + loc://t4(123456) + + + + 3 + false + + + false + 0 + + + + 280 + + 446 + $(pv_name) +$(pv_value) + + + true + 1 + -614945d9:135bf25028b:-6f34 + false + + 20 + Label_5 + + true + true + false + + false + false + + + + + + + Label + true + Introduction + + + + 97 + 0 + + 1 + + + + 1 + + 103 + true + $(pv_name) +$(pv_value) + 323 + + + true + 1 + -614945d9:135bf25028b:-6f33 + false + + 93 + Label_6 + + true + true + false + + false + false + + + + + + + Label + true + Text Input allows you write PV with the text you input. +"click" the widget to start editing. +Press "Enter" to send value to PV. +For multi-line widgets, press "Ctrl+Enter" to send value to PV. + + + + 745 + 1 + + 1 + + + + 0 + + 122 + true + + 17 + + + false + true + false + false + + 27 + false + false + + + + true + Text Input + 2011-05-02 10:56:00 + + Default + + 166 + 3 + + 1.7976931348623157E308 + 1 + -1.7976931348623157E308 + false + -614945d9:135bf25028b:-6f31 + 0.0 + + yyyy-MM-dd HH:mm:ss + Text Input_4 + 0 + + true + true + false + + 2 + false + loc://t6 + + + + 3 + false + + + false + 0 + + + + 338 + + 80 + $(pv_name) +$(pv_value) + + + false + true + false + false + 0 + + 27 + false + false + + + + true + Text Input + + + Default + + 0 + 299 + 3 + + 1.7976931348623157E308 + 1 + -1.7976931348623157E308 + false + -614945d9:135bf25028b:-6f30 + 0.0 + + Text Input_5 + 0 + + true + true + false + + 1 + false + loc://t7 + + + + 3 + false + + + false + 0 + + + + 338 + + 255 + $(pv_name) +$(pv_value) + + + false + true + true + false + + 85 + false + false + + + + true + Text Input + + + Default + + 167 + 3 + + 1.7976931348623157E308 + 1 + -1.7976931348623157E308 + false + -614945d9:135bf25028b:-6f2f + 0.0 + + Text Input_6 + 4 + + true + true + false + + 0 + false + loc://t5("Hello, World!") + + + + 3 + false + + + false + 0 + + + + 280 + + 569 + $(pv_name) +$(pv_value) + + + false + true + 1 + true + -614945d9:135bf25028b:-6f2e + false + 0.0 + + 32 + Text Input + false + + true + true + false + + 0 + true + false + loc://t1 + + + + + + + Text Update + true + + false + 0 + + Default + + 108 + 1 + + + 1 + + + + 0 + + 427 + false + $(pv_name) +$(pv_value) + 74 + + + false + true + 1 + false + -614945d9:135bf25028b:-6f2d + false + 0.0 + + 32 + Text Input_1 + false + + true + true + false + + 1 + false + false + loc://t2 + + + + + + + Text Update + true + + false + 2 + + Default + + 108 + 1 + + + 1 + + + + 0 + + 427 + false + $(pv_name) +$(pv_value) + 197 + + + false + true + 1 + false + -614945d9:135bf25028b:-6f2c + false + 0.0 + + 32 + Text Input_2 + false + + true + true + false + + 3 + false + false + loc://t3 + + + + + + + Text Update + true + + false + 0 + + Default + + 108 + 1 + + + 1 + + + + 0 + + 427 + false + $(pv_name) +$(pv_value) + 320 + + + false + true + 1 + false + -614945d9:135bf25028b:-6f2b + false + 0.0 + + 32 + Text Input_3 + false + + true + true + false + + 2 + false + false + loc://t4 + + + + + + + Text Update + true + + false + 3 + + Default + + 108 + 1 + + + 1 + + + + 0 + + 427 + false + $(pv_name) +$(pv_value) + 443 + + + false + true + 1 + false + -614945d9:135bf25028b:-6f2a + false + 0.0 + + 76 + Text Input_6 + false + + true + true + false + + 4 + false + false + loc://t5 + + + + + + + Text Update + true + + false + 3 + + Default + + 168 + 1 + + + 1 + + + + 0 + + 427 + false + $(pv_name) +$(pv_value) + 568 + + + false + true + 1 + false + -614945d9:135bf25028b:-6f29 + false + 0.0 + + 27 + Text Input_4 + false + + true + true + false + + 0 + false + false + loc://t6 + + + + + + + Text Update + true + + false + 3 + + Default + + 164 + 1 + + + 1 + + + + 0 + + 476 + false + $(pv_name) +$(pv_value) + 74 + + + false + true + 1 + false + -614945d9:135bf25028b:-6f28 + false + 0.0 + + 27 + Text Input_5 + false + + true + true + false + + 0 + false + false + loc://t7 + + + + + + + Text Update + true + + false + 3 + + Default + + 309 + 1 + + + 1 + + + + 0 + + 476 + false + $(pv_name) +$(pv_value) + 245 + + + true + 2 + -614945d9:135bf25028b:-6f27 + false + + 33 + Label + + true + true + false + + true + false + + + + + + + Label + true + Default +Precision from PV + + Fine Print + + 107 + 0 + + 1 + + + + 0 + + 246 + true + + 81 + + + true + 1 + -614945d9:135bf25028b:-6f26 + false + + 20 + Label_6 + + true + true + false + + true + false + + + + + + + Label + true + Text Updates: + + + + 150 + 0 + + 1 + + + + 0 + + 399 + true + + 73 + + + + true + + true + -614945d9:135bf25028b:-6f25 + + 44 + widgets/TextInput.html + + false + false + false + + true + false + + + + + + + true + Grouping Container + + Default + + 185 + 0 + + false + true + 1 + + + + 530 + + + ../scripts/openHelp.js + + false + Open Help + + + 273 + + + true + 1 + -614945d9:135bf25028b:-6f24 + false + + 22 + Label_28 + + true + true + false + + true + false + + + + + + + Label + true + See Online Help + + + + 135 + 0 + + 1 + + + + 1 + + 11 + true + + 41 + + + false + true + 20 + true + 0.0 + -614945d9:135bf25028b:-6f23 + 0.0 + + 0 + 1 + true + Polyline + false + 255 + + true + true + true + + + + + + false + + + + + + + + Polyline + true + false + + Default + + 120 + 0 + 0 + + + 1 + 1 + true + + + + + 32 + $(pv_name) +$(pv_value) + 49 + + + 0 + 0 + true + -614945d9:135bf25028b:-6f22 + true + + 44 + Image + true + + true + true + false + + + + + + + + Image + true + + Default + + 42 + false + false + + + 1.0 + 0.0 + + + 0.0 + 1.0 + + + 0 + 0 + + false + 0 + 0 + 1 + ../pictures/onlineHelp.gif + + + + + 0 + + 8 + + + + false + true + 66d1507f:138820a85e5:-7c25 + + 38 + + Action Button_3 + false + + true + true + false + + + + + + + + + Action Button + true + Go Home + false + + Default + + 97 + 0 + 0 + ../pictures/home-16x16.png + + + false + 1 + + + + 533 + + + ../scripts/goHome.js + + false + + + + $(pv_name) +$(pv_value) + 17 + + + true + 1 + -142762f7:13c92c37a61:-7a55 + false + + 20 + Label_14 + + true + true + false + + true + false + + + + + + + Label + true + Format: + + Default + + 57 + 0 + + 1 + + + + 0 + + 261 + true + + 11 + + + true + 2 + -142762f7:13c92c37a61:-7a49 + false + + 33 + Label_15 + + true + true + false + + true + false + + + + + + + Label + true + Hex32 + + Fine Print + + 107 + 0 + + 1 + + + + 0 + + 246 + true + + 324 + + + true + 2 + -142762f7:13c92c37a61:-7a39 + false + + 33 + Label_16 + + true + true + false + + true + false + + + + + + + Label + true + Decimal +Precision = 2 + + Fine Print + + 107 + 0 + + 1 + + + + 0 + + 246 + true + + 202 + + + true + 2 + -142762f7:13c92c37a61:-7a2f + false + + 33 + Label_17 + + true + true + false + + true + false + + + + + + + Label + true + Exponential + + Fine Print + + 107 + 0 + + 1 + + + + 0 + + 246 + true + + 446 + + + true + 2 + -6b318482:13c966245b6:-7fde + false + + 33 + Label_18 + + true + true + false + + true + false + + + + + + + Label + true + String +(Ctrl+Enter to finish editing) + + Fine Print + + 168 + 0 + + 1 + + + + 0 + + 246 + true + + 568 + + + true + 2 + -6b318482:13c966245b6:-7fd6 + false + + 18 + Label_19 + + true + true + false + + true + false + + + + + + + Label + true + Datetime Selector + + Fine Print + + 107 + 0 + + 1 + + + + 0 + + 321 + true + + 80 + + + true + 2 + -6b318482:13c966245b6:-7fc6 + false + + 18 + Label_20 + + true + true + false + + true + false + + + + + + + Label + true + File Selector + + Fine Print + + 107 + 0 + + 1 + + + + 0 + + 321 + true + + 255 + + + false + true + 2984cb94:13d28280810:-7f98 + + 36 + + Action Button_5 + false + + true + true + false + + + + + + + + + Action Button + true + Native Style + false + + Default + + 98 + 0 + 0 + + + + false + 1 + + + + 534 + + + 3_4_2_NativeTextInput.opi + + true + + 1 + + + + + 638 + + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/3_4_2_NativeTextInput.opi b/core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/3_4_2_NativeTextInput.opi new file mode 100644 index 000000000..0c4f4e95f --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/3_4_2_NativeTextInput.opi @@ -0,0 +1,1567 @@ + + + false + + true + + -4499eab:1386c3a53ab:-7fd2 + 3.2.0.qualifier + + false + 600 + Native Text + true + false + + + + + + + Display + true + 800 + + true + 4 + + true + -1 + -1 + + + -1 + -1 + + + true + + true + 53ab7efc:13877dd64db:-7f35 + + 380 + Grouping Container + + true + true + false + + true + false + + + + + + + true + Grouping Container + + Default + + 270 + 14 + + false + false + 1 + + + + 124 + + 16 + + + false + true + true + false + false + false + + 33 + false + false + true + + + + true + Text Input + Hello Text! + + Header 1 + + 159 + 0 + + 1.7976931348623157E308 + 1 + -1.7976931348623157E308 + 0 + true + -5cb9b1a3:13877ab1bd1:-7bce + + Text + 0 + + true + true + false + + + + + + 0 + false + + + false + 1 + + + + 8 + + 53 + $(pv_name) +$(pv_value) + + + false + true + true + true + true + false + + 133 + false + true + + + + true + Text Input + Show scorllbar and wrap words + +The quick brown fox jumps over the lazy dog. + +Line 1... + +Line 2... + +Line 3... + + Default + + 235 + 0 + + false + 1.7976931348623157E308 + 1 + true + true + -1.7976931348623157E308 + 0 + true + 53ab7efc:13877dd64db:-7fc0 + + Text_2 + 0 + + true + true + false + + + + + + 0 + false + + + false + 0 + + + + 210 + + 15 + $(pv_name) +$(pv_value) + + + true + 1 + 53ab7efc:13877dd64db:-7e31 + true + + 17 + Label_1 + + true + true + false + + true + false + + + + + + + Label + true + Use as Label + + Default Bold + + 97 + 0 + + 1 + + + + 1 + + 354 + true + + 84 + + + false + true + true + true + false + false + + 150 + false + true + + + + true + Text Input + Mult Line Text Example + +Line 1.... + +Line2.... + +Line 3.... + + Header 3 + + 237 + 14 + + false + 1.7976931348623157E308 + 1 + false + true + -1.7976931348623157E308 + 0 + true + 53ab7efc:13877dd64db:-7fd0 + + Text_1 + 0 + + true + true + false + + + + + + 0 + false + + + false + 1 + + + + 52 + + 14 + $(pv_name) +$(pv_value) + + + + + true + + true + 53ab7efc:13877dd64db:-7e02 + + 172 + Grouping Container_2 + + true + true + false + + true + true + + + + + + + true + Grouping Container + + Default + + 481 + 14 + + false + false + 1 + + + + 332 + + 300 + + + true + 1 + 53ab7efc:13877dd64db:-7e31 + true + + 17 + Label_1 + + true + true + false + + true + false + + + + + + + Label + true + Use as Text Update + + Default Bold + + 146 + 0 + + 1 + + + + 1 + + 142 + true + + 148 + + + false + true + true + false + false + false + + 24 + false + false + true + + + + true + Text Input + + + Default + + 108 + 1 + + 1.7976931348623157E308 + 1 + -1.7976931348623157E308 + 0 + true + 53ab7efc:13877dd64db:-7a48 + + Text Display + 0 + + true + true + false + + loc://t1 + + + + 0 + false + + + false + 1 + + + + 6 + + 19 + $(pv_name) +$(pv_value) + + + false + true + true + false + false + false + + 24 + false + false + true + + + + true + Text Input + + + Default + + 108 + 1 + + 1.7976931348623157E308 + 1 + -1.7976931348623157E308 + 0 + true + 53ab7efc:13877dd64db:-79cc + + Text Display + 0 + + true + true + false + + loc://t2 + + + + 0 + false + + + false + 1 + + + + 46 + + 19 + $(pv_name) +$(pv_value) + + + false + true + true + false + false + false + + 24 + false + true + true + + + + true + Text Input + + + Default Bold + + 108 + 1 + + 1.7976931348623157E308 + 1 + -1.7976931348623157E308 + 0 + false + -16687e36:1387b7d5dad:-7b73 + + Text Display_4 + 0 + + true + true + false + + sim://sine(0,100,100,0.1) + + + + 0 + false + + + false + 1 + + + + 131 + + 19 + $(pv_name) +$(pv_value) + + + false + true + true + false + false + false + + 24 + false + false + true + + + + true + Text Input + + + Default + + 108 + 1 + + 1.7976931348623157E308 + 1 + -1.7976931348623157E308 + 0 + true + 53ab7efc:13877dd64db:-7d57 + + Text Display + 0 + + true + true + false + + sim://ramp(0,100,1,0.1) + + + + 0 + true + + + false + 1 + + + + 90 + + 19 + $(pv_name) +$(pv_value) + + + false + true + true + true + true + false + + 98 + false + true + + + + true + Text Input + + + Default + + 199 + 0 + + false + 1.7976931348623157E308 + 1 + true + true + -1.7976931348623157E308 + 0 + true + 53ab7efc:13877dd64db:-7940 + + Text Display + 0 + + true + true + false + + loc://t3 + + + + 0 + false + + + false + 0 + + + + 29 + + 233 + $(pv_name) +$(pv_value) + + + + + true + + true + 53ab7efc:13877dd64db:-7ae0 + + 200 + Grouping Container_3 + + true + true + false + + true + true + + + + + + + true + Grouping Container + + Default + + 481 + 14 + + false + false + 1 + + + + 124 + + 300 + + + true + 1 + 53ab7efc:13877dd64db:-7e31 + false + + 25 + Label_1 + + true + true + false + + true + false + + + + + + + Label + true + Password: + + Default + + 108 + 0 + + 1 + + + + 0 + + 111 + true + + 18 + + + false + false + true + false + true + false + + 24 + false + false + true + + + + true + Text Input + + + Default + + 108 + 0 + + 1.7976931348623157E308 + 1 + -1.7976931348623157E308 + 0 + true + 53ab7efc:13877dd64db:-7a9f + + Text Input + 0 + + true + true + false + + loc://t1 + + + + 0 + false + + + false + 1 + + + + 81 + + 18 + $(pv_name) +$(pv_value) + + + false + false + true + false + true + false + + 24 + true + false + true + + + + true + Text Input + + + Default + + 108 + 0 + + 1.7976931348623157E308 + 1 + -1.7976931348623157E308 + 0 + true + 53ab7efc:13877dd64db:-7906 + + Text Input_3 + 0 + + true + true + false + + loc://t2 + + + + 0 + false + + + false + 1 + + + + 135 + + 18 + $(pv_name) +$(pv_value) + + + true + 1 + 53ab7efc:13877dd64db:-78ea + true + + 17 + Label_1 + + true + true + false + + true + false + + + + + + + Label + true + Use as Text Input + + Default Bold + + 130 + 0 + + 1 + + + + 0 + + 169 + true + + 139 + + + true + 2 + 53ab7efc:13877dd64db:-78da + false + + 43 + Label_2 + + true + true + false + + true + false + + + + + + + Label + true + Multi-Line Input: +(Ctrl+Enter to finish editing) + + Default + + 198 + 0 + + 1 + + + + 0 + + 12 + true + + 233 + + + true + 2 + 53ab7efc:13877dd64db:-7878 + false + + 74 + Label_3 + + true + true + false + + true + false + + + + + + + Label + true + Single Line Input: +(Enter to finish editing. Click outside to abort editing) + + Default + + 205 + 0 + + 1 + + + + 0 + + 1 + true + + 18 + + + false + false + true + true + true + false + + 96 + false + true + + + + true + Text Input + + + Default + + 198 + 0 + + false + 1.7976931348623157E308 + 1 + true + true + -1.7976931348623157E308 + 0 + true + 53ab7efc:13877dd64db:-7948 + + Text Input_2 + 0 + + true + true + false + + loc://t3 + + + + 0 + false + + + false + 0 + + + + 61 + + 233 + $(pv_name) +$(pv_value) + + + + + true + + true + -2da06158:1386c4a81f1:-7892 + + 98 + Grouping Container_3 + + true + true + false + + true + false + + + + + + + true + Grouping Container + + Default + + 765 + 14 + + false + false + 1 + + + + 11 + + 16 + + + true + 1 + -4499eab:1386c3a53ab:-7fd1 + false + + 86 + Label_8 + + true + true + false + + true + false + + + + + + + Label + true + Text Input +in Native Style + + Header 1 + + 295 + 0 + + 1 + + + + 1 + + 6 + true + + 28 + + + true + 1 + -4499eab:1386c3a53ab:-7fd0 + false + + 43 + Label_6 + + true + true + false + + true + false + + + + + + + Label + true + Examples + + Header 1 + + 451 + 0 + + 1 + + + + 1 + + 43 + true + + 285 + + + true + 1 + -4499eab:1386c3a53ab:-7fcf + false + + 44 + Label_9 + + true + true + false + + true + false + + + + + + + Label + true + Best OPI Yet (BOY) + + Header 1 + + 451 + 0 + + 1 + + + + 1 + + 0 + true + + 294 + + + + false + true + -2f5e33aa:1387c0f437a:-7bcc + + 38 + + Action Button + false + + true + true + false + + + + + + + + + Action Button + true + Go Home + false + + Default + + 97 + 0 + 0 + ../pictures/home-16x16.png + + + false + 1 + + + + 555 + + + ../scripts/goHome.js + + false + + + + $(pv_name) +$(pv_value) + 16 + + + + true + + true + 2984cb94:13d28280810:-7ebb + + 44 + widgets/TextInput.html + + false + false + false + + true + false + + + + + + + true + Grouping Container + + Default + + 185 + 0 + + false + true + 1 + + + + 552 + + + ../scripts/openHelp.js + + false + Open Help + + + 293 + + + true + 1 + -614945d9:135bf25028b:-6f24 + false + + 22 + Label_28 + + true + true + false + + true + false + + + + + + + Label + true + See Online Help + + + + 135 + 0 + + 1 + + + + 1 + + 11 + true + + 41 + + + false + true + 20 + true + 0.0 + -614945d9:135bf25028b:-6f23 + 0.0 + + 0 + 1 + true + Polyline + false + 255 + + true + true + true + + + + + + false + + + + + + + + Polyline + true + false + + Default + + 120 + 0 + 0 + + + 1 + 1 + true + + + + + 32 + $(pv_name) +$(pv_value) + 49 + + + 0 + 0 + true + -614945d9:135bf25028b:-6f22 + true + + 44 + Image + true + + true + true + false + + + + + + + + Image + true + + Default + + 42 + false + false + + + 1.0 + 0.0 + + + 0.0 + 1.0 + + + 0 + 0 + + false + 0 + 0 + 1 + ../pictures/onlineHelp.gif + + + + + 0 + + 8 + + + + false + true + 2984cb94:13d28280810:-7eba + + 36 + + Action Button_5 + false + + true + true + false + + + + + + + + + Action Button + true + Classic Style + false + + Default + + 98 + 0 + 0 + + + + false + 1 + + + + 556 + + + 3_4_1_Text_Input.opi + + true + + 1 + + + + + 683 + + + true + 1 + 2984cb94:13d28280810:-7a17 + false + + 41 + Label + + true + true + false + + false + false + + + + + + + Label + true + Using Native Style Text Input as Label or Text Update allows selecting text to copy (Ctrl+C) at run time, but it may require a little bit more computer resources. + + Default + + 765 + 14 + + 1 + + + + 0 + + 509 + true + + 16 + + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/3_5_Knob_Slider.opi b/core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/3_5_Knob_Slider.opi new file mode 100644 index 000000000..2cd07cc5c --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/3_5_Knob_Slider.opi @@ -0,0 +1,1722 @@ + + + false + + true + + -6419951d:135aff030c0:-7b02 + 3.1.0.qualifier + + false + 600 + Knob_Slider + true + false + + + + + + + Display + true + 800 + + true + 4 + + true + -1 + -1 + + + -1 + -1 + + true + 1 + -6419951d:135aff030c0:-7b01 + false + + 86 + Label_8 + + true + true + false + + false + false + + + + + + + Label + true + Knob/Slider/Scrollbar/Spinner/ThumbWheel + + + + 295 + 0 + + 1 + + + + 1 + + 6 + true + + 17 + + + true + 1 + -6419951d:135aff030c0:-7b00 + false + + 43 + Label_6 + + true + true + false + + false + false + + + + + + + Label + true + Examples + + + + 451 + 0 + + 1 + + + + 1 + + 49 + true + + 311 + + + true + 1 + -6419951d:135aff030c0:-7aff + false + + 44 + Label_9 + + true + true + false + + false + false + + + + + + + Label + true + Best OPI Yet (BOY) + + + + 451 + 0 + + 1 + + + + 1 + + 6 + true + + 311 + + + 20.0 + true + true + + + + true + + + + + + + + 152 + 50 + false + + + + true + Knob + 1.0 + true + + Default + + 152 + true + 0 + true + + true + true + 100.0 + 1 + false + 0.0 + -6419951d:135aff030c0:-7afe + true + + true + + + + Knob + + true + true + true + + + + + loc://k1 + + + + false + 80.0 + + Default + + 90.0 + true + + + + + + true + true + false + + + + 10.0 + 105 + + 23 + $(pv_name) +$(pv_value) + + + 20.0 + true + true + + + + + + + true + + + + + 190 + 50 + false + 10.0 + + + + true + Scaled Slider + true + + Default + + 120 + true + 0 + true + + true + true + 100.0 + 1 + false + false + 0.0 + -6419951d:135aff030c0:-7afd + true + + true + + + + Scaled Slider + + true + true + false + + + + + loc://k1 + + + + 1.0 + false + 80.0 + + Default + + 90.0 + + + + + + + + + true + false + + + + 10.0 + 353 + + 14 + $(pv_name) +$(pv_value) + + + 20.0 + true + true + + + + true + + + + + + + + 152 + 50 + false + + + + true + Knob + 1.0 + true + + Default + + 152 + true + 0 + false + + true + true + 100.0 + 1 + true + 0.1 + -6419951d:135aff030c0:-7afc + true + + true + + + + Knob_1 + + true + true + true + + + + + loc://k1 + + + + false + 80.0 + + Default + + 90.0 + true + + + + + + true + true + false + + + + 10.0 + 105 + + 189 + $(pv_name) +$(pv_value) + + + 20.0 + true + true + + + + + + + true + + + + + 120 + 50 + false + 10.0 + + + + true + Scaled Slider + true + + Default + + 200 + true + 0 + true + + false + true + 100.0 + 1 + true + true + 10.0 + -6419951d:135aff030c0:-7afb + true + + true + + + + Scaled Slider_1 + + true + true + false + + + + + loc://k1 + + + + 1.0 + false + 80.0 + + Default + + 90.0 + + + + + + + + + true + false + + + + 10.0 + 314 + + 239 + $(pv_name) +$(pv_value) + + + true + true + -1.7976931348623157E308 + 1 + -6419951d:135aff030c0:-7af9 + + 25 + Spinner + false + + true + true + false + + 10.0 + false + false + loc://k1 + false + + + + + + + Spinner + true + 1.0 + false + 2 + + + + 92 + 3 + 0 + + + 1 + 1.7976931348623157E308 + false + + + + 1 + + 147 + $(pv_name) +$(pv_value) + 545 + + + true + true + 0.0 + -6419951d:135aff030c0:-7af8 + 2 + + 82 + 3 + Thumb Wheel + false + + true + true + false + + + + + loc://k1 + + + + + + + Thumb Wheel + true + false + + + + 131 + 0 + 0 + + + 1 + 100.0 + false + + + + + 264 + $(pv_name) +$(pv_value) + 640 + + + false + true + -1.7976931348623157E308 + 1 + -6419951d:135aff030c0:-7af7 + + 25 + Spinner_1 + false + + true + true + false + + 10.0 + false + false + loc://k1 + false + + + + + + + Spinner + true + 1.0 + false + 2 + + + + 92 + 3 + 1 + + + 1 + 1.7976931348623157E308 + false + + + + 1 + + 147 + $(pv_name) +$(pv_value) + 663 + + + 20.0 + true + true + + + + + + + true + + + + + 190 + 50 + false + 10.0 + + + + true + Scaled Slider + true + + Default + + 120 + true + 0 + true + + false + true + 100.0 + 1 + false + true + 10.0 + -6419951d:135aff030c0:-7af6 + true + + true + + + + Scaled Slider_2 + + true + true + false + + + + + loc://k1 + + + + 1.0 + false + 80.0 + + Default + + 90.0 + + + + + + + + + true + false + + + + 10.0 + 356 + + 118 + $(pv_name) +$(pv_value) + + + 30.0 + true + true + + + + + + + true + + + + + 120 + 50 + false + 10.0 + + + + true + Scaled Slider + true + + Default + + 200 + true + 0 + true + + true + true + 100.0 + 1 + true + false + 0.0 + -6419951d:135aff030c0:-7af5 + true + + true + + + + Scaled Slider_3 + + true + true + false + + + + + loc://k1 + + + + 1.0 + false + 70.0 + + Default + + 90.0 + + + + + + + + + true + false + + + + 10.0 + 428 + + 241 + $(pv_name) +$(pv_value) + + + false + true + 0.0 + -6419951d:135aff030c0:-7aed + false + 10.0 + + 150 + Scrollbar_1 + false + + true + true + false + + 20.0 + loc://k1 + + + + + + + Scrollbar + true + 1.0 + false + + Default + + 20 + 0 + + + 1 + 100.0 + false + false + + + + + 363 + $(pv_name) +$(pv_value) + 480 + + + false + true + 0.0 + -6419951d:135aff030c0:-7aec + true + 20.0 + + 20 + Scrollbar_1 + false + + true + true + false + + 20.0 + loc://k1 + + + + + + + Scrollbar + true + 2.0 + false + + Default + + 183 + 0 + + + 1 + 100.0 + true + false + + + + + 428 + $(pv_name) +$(pv_value) + 526 + + + true + true + -1.7976931348623157E308 + 1 + -6419951d:135aff030c0:-7aeb + + 25 + Spinner_2 + false + + true + true + false + + 10.0 + false + false + loc://k1 + false + + + + + + + Spinner + true + 1.0 + false + 2 + + + + 92 + 3 + 2 + + + 1 + 1.7976931348623157E308 + false + + + + 1 + + 188 + $(pv_name) +$(pv_value) + 545 + + + true + true + -1.7976931348623157E308 + 1 + -6419951d:135aff030c0:-7aea + + 25 + Spinner_3 + false + + true + true + false + + 10.0 + false + false + loc://k1 + false + + + + + + + Spinner + true + 1.0 + false + 0 + + + + 92 + 3 + 0 + + + 1 + 1.7976931348623157E308 + false + + + + 1 + + 188 + $(pv_name) +$(pv_value) + 663 + + + true + true + 0.0 + -6419951d:135aff030c0:-7ae9 + 3 + + 82 + 2 + Thumb Wheel_1 + false + + true + true + false + + + + + loc://k1 + + + + + + + Thumb Wheel + true + false + + + + 137 + 0 + 1 + + + 1 + 100.0 + false + + + + + 264 + $(pv_name) +$(pv_value) + 480 + + + + true + + true + -6419951d:135aff030c0:-7ae8 + + 44 + widgets/Knob.html + + false + false + false + + true + false + + + + + + + Grouping Container + true + + Default + + 185 + 0 + + true + 1 + + + + + + ../scripts/openHelp.js + + false + Open Help + + + 542 + + 577 + + true + 1 + -6419951d:135aff030c0:-7ae7 + false + + 22 + Label_28 + + true + true + false + + true + false + + + + + + + Label + true + See Online Help + + + + 135 + 0 + + 1 + + + + 1 + + 11 + true + + 41 + + + false + true + 20 + true + 0.0 + -6419951d:135aff030c0:-7ae6 + 0.0 + + 0 + 1 + true + Polyline + false + 255 + + true + true + true + + + + + + false + + + + + + + + Polyline + true + false + + Default + + 120 + 0 + 0 + + + 1 + 1 + true + + + + + 32 + $(pv_name) +$(pv_value) + 49 + + + 0 + 0 + true + -6419951d:135aff030c0:-7ae5 + true + + 44 + Image + true + + true + true + false + + + + + + + + Image + true + + Default + + 42 + false + 0 + 0 + + 0 + 1 + ../pictures/onlineHelp.gif + + + + + 0 + + 8 + + + + + true + + true + -6419951d:135aff030c0:-7ae3 + + 158 + Grouping Container + + false + false + true + + false + false + + + + + + + Grouping Container + true + + Default + + 158 + 0 + + true + 1 + + + + + 107 + + 359 + + 20.0 + true + true + + + + true + + + + + + + + 158 + 100 + false + + + + true + Knob + 1.0 + false + + Default + + 158 + true + 0 + false + + false + true + 2.0 + 1 + false + 0.0 + -6419951d:135aff030c0:-7af4 + true + + false + + + + Knob_2 + + true + true + true + + + + + loc://MachineState + + + + false + 80.0 + + Default + + 90.0 + true + + + + + + true + false + false + + + + 10.0 + 0 + + 0 + $(pv_name) +$(pv_value) + + + true + 1 + -6419951d:135aff030c0:-7af3 + false + + 16 + Label + + true + true + false + + true + false + + + + + + + Label + true + ON + + + + 37 + 0 + + 1 + + + + 1 + + 121 + true + + 5 + + + true + 1 + -6419951d:135aff030c0:-7af2 + false + + 16 + Label_4 + + true + true + false + + true + false + + + + + + + Label + true + OFF + + + + 37 + 0 + + 1 + + + + 1 + + 122 + true + + 110 + + + true + 1 + -6419951d:135aff030c0:-7af1 + false + + 16 + Label_5 + + true + true + false + + true + false + + + + + + + Label + true + IDLE + + + + 44 + 0 + + 1 + + + + 1 + + 0 + true + + 58 + + + false + true + 20 + true + 0.0 + -6419951d:135aff030c0:-7af0 + 0.0 + + 0 + 11 + true + Polyline + false + 255 + + true + true + true + + + + + + false + + + + + + + + Polyline + true + false + + Default + + 1 + 0 + 0 + + + 1 + 2 + true + + + + + 16 + $(pv_name) +$(pv_value) + 78 + + + false + true + 20 + true + 0.0 + -6419951d:135aff030c0:-7aef + 45.0 + + 0 + 5 + true + Polyline_1 + false + 255 + + true + true + true + + + + + + false + + + + + + + + Polyline + true + false + + Default + + 6 + 0 + 0 + + + 1 + 2 + true + + + + + 114 + $(pv_name) +$(pv_value) + 34 + + + false + true + 20 + true + 0.0 + -6419951d:135aff030c0:-7aee + 135.0 + + 0 + 6 + true + Polyline_2 + false + 255 + + true + true + true + + + + + + false + + + + + + + + Polyline + true + false + + Default + + 6 + 0 + 0 + + + 1 + 2 + true + + + + + 114 + $(pv_name) +$(pv_value) + 114 + + + + false + true + 66d1507f:138820a85e5:-7bcc + + 38 + Action Button_3 + false + + true + true + false + + + + + + Button + true + Go Home + + Default + + 97 + 0 + 0 + ../pictures/home-16x16.png + + + false + 1 + + + + 548 + + + ../scripts/goHome.js + + false + + + + $(pv_name) +$(pv_value) + 17 + + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/3_6_ChoiceWidgets.opi b/core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/3_6_ChoiceWidgets.opi new file mode 100644 index 000000000..a3fa93b23 --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/3_6_ChoiceWidgets.opi @@ -0,0 +1,1275 @@ + + + false + + true + + 553ac269:135b01240d5:-3837 + 3.2.0.qualifier + + false + 600 + Choice Widgets + true + false + + + + + + + Display + true + 800 + + + + + + + + + + + + + + + + + + loc://myChoice + + + true + 4 + + true + -1 + -1 + + + -1 + -1 + + true + 1 + 553ac269:135b01240d5:-3836 + false + + 86 + Label_8 + + true + true + false + + false + false + + + + + + + Label + true + Choice Widgets + + + + 295 + 0 + + 1 + + + + 1 + + 6 + true + + 17 + + + true + 1 + 553ac269:135b01240d5:-3835 + false + + 43 + Label_6 + + true + true + false + + false + false + + + + + + + Label + true + Examples + + + + 451 + 0 + + 1 + + + + 1 + + 49 + true + + 311 + + + true + 1 + 553ac269:135b01240d5:-3834 + false + + 44 + Label_9 + + true + true + false + + false + false + + + + + + + Label + true + Best OPI Yet (BOY) + + + + 451 + 0 + + 1 + + + + 1 + + 6 + true + + 311 + + + true + 1 + 553ac269:135b01240d5:-3833 + false + + 64 + Label_5 + + true + true + false + + false + false + + + + + + + Label + true + Choice widgets are those widgets that are able to display PV value as a particular state among multiple states. It will use PV's string value to match the state. If no matched state was found, no state will be chosen. + + + + 745 + 1 + + 1 + + + + 0 + + 111 + true + + 23 + + + true + 1 + 553ac269:135b01240d5:-3832 + true + + 16 + Label_6 + + true + true + false + + false + false + + + + + + + Label + true + Introduction + + + + 76 + 0 + + 1 + + + + 1 + + 102 + true + $(pv_name) +$(pv_value) + 371 + + + false + true + 553ac269:135b01240d5:-3830 + + 100 + Radio Box + false + + true + true + false + + loc://myChoice + + + + + + + Radio Box + true + false + + + + 69 + 0 + + + + + + + White + Gray + Blue + + 1 + false + + + + false + + 205 + $(pv_name) +$(pv_value) + 294 + + + false + true + 553ac269:135b01240d5:-382f + + 27 + Combo + false + + true + false + false + + loc://myChoice + + + + + + + Combo + true + false + + Default + + 100 + 0 + + + + White + Gray + Blue + + 1 + + + + false + + 265 + $(pv_name) +$(pv_value) + 576 + + + false + true + 553ac269:135b01240d5:-382e + + 100 + Choice Button + false + + true + true + false + + loc://myChoice + + + + + + + Choice Button + true + false + + + + 89 + 0 + + + + + + + White + Gray + Blue + + 1 + false + + + + false + + 205 + $(pv_name) +$(pv_value) + 23 + + + false + true + 0 + false + false + + 20 + false + true + + + + Text Input + true + + + Default + + 100 + 3 + + 1 + 1.7976931348623157E308 + -1.7976931348623157E308 + true + 553ac269:135b01240d5:-382d + 0.0 + Text Input + + true + true + false + + 0 + false + 0 + loc://myChoice + + + + false + 0 + + + false + + + + 0 + + 217 + $(pv_name) +$(pv_value) + 689 + + + false + true + 553ac269:135b01240d5:-382c + + 33 + Radio Box_1 + false + + true + true + false + + loc://myChoice + + + + + + + Radio Box + true + false + + + + 182 + 0 + + + + + + + White + Gray + Blue + + 1 + true + + + + false + + 238 + $(pv_name) +$(pv_value) + 377 + + + false + true + 553ac269:135b01240d5:-382b + + 27 + Combo Box_1 + false + + true + false + false + + loc://myChoice + + + + + + + Combo + true + false + + Default + + 100 + 0 + + + + White + Gray + Blue + + 1 + + + + false + + 217 + $(pv_name) +$(pv_value) + 576 + + + false + true + 553ac269:135b01240d5:-382a + + 27 + Choice Button_1 + false + + true + true + false + + loc://myChoice + + + + + + + Choice Button + true + false + + + + 138 + 0 + + + + + + + White + Gray + Blue + + 1 + true + + + + false + + 241 + $(pv_name) +$(pv_value) + 135 + + + false + true + 553ac269:135b01240d5:-3829 + + 27 + Combo Box_2 + false + + true + false + false + + css:sine.SCAN + + + + + + + Combo + true + false + + + + 100 + 0 + + + 1 + + + + true + + 398 + $(pv_name) +$(pv_value) + 294 + + + true + 1 + 553ac269:135b01240d5:-3828 + false + + 20 + Label_5 + + true + true + false + + true + false + + + + + + + Label + true + Scan Rate + + + + 150 + 0 + + 1 + + + + 0 + + 379 + true + + 294 + + + true + true + 1 + true + 553ac269:135b01240d5:-3827 + false + 0.0 + + 20 + Text Update_1 + false + + true + true + false + + 0 + true + false + css:sine + + + + + + + Text Update + true + ###### + false + 0 + + + + 100 + 0 + + + 1 + + + + 0 + + 402 + false + $(pv_name) +$(pv_value) + 499 + + + true + 1 + 553ac269:135b01240d5:-3826 + false + + 20 + Label_10 + + true + true + false + + true + false + + + + + + + Label + true + Value + + + + 150 + 0 + + 1 + + + + 0 + + 381 + true + + 499 + + + true + 1 + 553ac269:135b01240d5:-3825 + false + + 53 + Label_7 + + true + true + false + + false + false + + + + + + + Label + true + Please change the PV Name property to an EPICS PV that is available to you computer. + + + + 284 + 1 + + 1 + + + + 0 + + 495 + true + + 272 + + + false + true + 20 + true + 0.0 + 553ac269:135b01240d5:-3824 + 0.0 + + 2 + 44 + true + Polyline + false + 255 + + true + true + true + + + + + + false + + + + + + + + Polyline + true + false + + Default + + 84 + 0 + 0 + + + 1 + 1 + true + + + + + 444 + $(pv_name) +$(pv_value) + 294 + + + false + true + 20 + true + 0.0 + 553ac269:135b01240d5:-3823 + 0.0 + + 2 + 57 + true + Polyline_1 + false + 255 + + true + true + true + + + + + + false + + + + + + + + Polyline + true + false + + Default + + 87 + 0 + 0 + + + 1 + 1 + true + + + + + 431 + $(pv_name) +$(pv_value) + 443 + + + false + true + 553ac269:135b01240d5:-3822 + + 236 + Radio Box_2 + false + + true + true + false + + css:sine.SCAN + + + + + + + Radio Box + true + false + + Default + + 100 + 0 + + + + + + 1 + false + + + + true + + 324 + $(pv_name) +$(pv_value) + 23 + + + false + true + 553ac269:135b01240d5:-3821 + + 236 + Choice Button_2 + false + + true + true + false + + css:sine.SCAN + + + + + + + Choice Button + true + false + + Default + + 100 + 0 + + + + + + 1 + false + + + + true + + 324 + $(pv_name) +$(pv_value) + 159 + + + + true + + true + 553ac269:135b01240d5:-3820 + + 44 + widgets/ChoiceWidgets.html + + false + false + false + + true + false + + + + + + + true + Grouping Container + + Default + + 185 + 0 + + true + 1 + + + + 547 + + + ../scripts/openHelp.js + + false + Open Help + + + 604 + + + true + 1 + 553ac269:135b01240d5:-381f + false + + 22 + Label_28 + + true + true + false + + true + false + + + + + + + Label + true + See Online Help + + + + 135 + 0 + + 1 + + + + 1 + + 11 + true + + 41 + + + false + true + 20 + true + 0.0 + 553ac269:135b01240d5:-381e + 0.0 + + 0 + 1 + true + Polyline + false + 255 + + true + true + true + + + + + + false + + + + + + + + Polyline + true + false + + Default + + 120 + 0 + 0 + + + 1 + 1 + true + + + + + 32 + $(pv_name) +$(pv_value) + 49 + + + 0 + 0 + true + 553ac269:135b01240d5:-381d + true + + 44 + Image + true + + true + true + false + + + + + + + + Image + true + + Default + + 42 + false + false + + + 1.0 + 0.0 + + + 0.0 + 1.0 + + + 0 + 0 + + false + 0 + 0 + 1 + ../pictures/onlineHelp.gif + + + + + 0 + + 8 + + + + false + true + 66d1507f:138820a85e5:-7ba2 + + 38 + + Action Button_3 + false + + true + true + false + + + + + + + + + Action Button + true + Go Home + false + + Default + + 97 + 0 + 0 + ../pictures/home-16x16.png + + + false + 1 + + + + 550 + + + ../scripts/goHome.js + + false + + + + $(pv_name) +$(pv_value) + 24 + + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/4_1_GroupingContainer.opi b/core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/4_1_GroupingContainer.opi new file mode 100644 index 000000000..e73ecadd4 --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/4_1_GroupingContainer.opi @@ -0,0 +1,1818 @@ + + + true + + 553ac269:135b01240d5:-49f9 + true + false + + 600 + + true + + 4.0.104.201512011425 + true + Display + + true + 200 + 100 + + + + + 800 + -1 + Grouping Container + 4 + false + -1 + true + + + + + + 1 + + 0 + + true + 553ac269:135b01240d5:-49f8 + false + false + With Grouping Contianer, you can group a bunch of widgets so that you can move them as a whole. You can also lock the children so that the widgets in the container are not selectable. + +-You can right click multiple selected widgets anc choose "Group" to create a group, or drag widgets into the container. +-You can right click a Group Container and choose "Perform AutoSize" to autosize the group based on its children. You can also remove a group without removing its children by select "Ungroup". + + 134 + 1 + + true + true + false + + true + 1 + + + + Label + true + + + + 745 + 17 + Label_6 + 122 + + + + + false + + + + + + 0 + + 1 + + true + 553ac269:135b01240d5:-49f7 + false + false + Grouping Container + + 86 + 1 + + true + true + false + + true + 1 + + + + Label + true + + + + 295 + 17 + Label_8 + 6 + + + + + false + + + + + + 0 + + 1 + + true + 553ac269:135b01240d5:-49f6 + false + false + Examples + + 43 + 1 + + true + true + false + + true + 1 + + + + Label + true + + + + 451 + 311 + Label_6 + 49 + + + + + false + + + + + + 0 + + 1 + + true + 553ac269:135b01240d5:-49f5 + false + false + Best OPI Yet (BOY) + + 44 + 1 + + true + true + false + + true + 1 + + + + Label + true + + + + 451 + 311 + Label_9 + 6 + + + + + false + + + + + + 0 + $(pv_name) +$(pv_value) + 1 + + true + 553ac269:135b01240d5:-49f4 + false + false + Introduction + + 16 + 1 + + true + true + false + + true + 1 + + + + Label + true + + + + 76 + 352 + Label_5 + 113 + + + + + false + + + + + + 13 + + + true + 553ac269:135b01240d5:-49e6 + false + false + + 234 + 1 + + true + true + false + + + true + + true + + + + Grouping Container + + + + 292 + 406 + Room Temperature + 280 + + + + + false + true + + Default + + + false + $(pv_name) +$(pv_value) + + true + true + + Default + + + true + + 173 + + + + 1 + + true + sim://noise + + + + Thermometer + 0 + Thermometer + true + + true + 0 + true + true + false + true + + + + true + false + true + 553ac269:135b01240d5:-49e5 + 90.0 + + + + + + + + false + + true + true + false + + false + + + + 50 + 70.0 + true + 30.0 + false + true + + + + 10.0 + 90 + 152 + 4 + 100.0 + + + + + + + 0.0 + + Default + + + + 0 + + + true + 553ac269:135b01240d5:-49e4 + false + false + + 71 + 1 + + true + true + true + + + true + + true + + + + Grouping Container + + + + 134 + 6 + Grouping Container + 64 + + + + + false + true + + Default + + + 0 + false + 0 + true + false + $(pv_name) +$(pv_value) + + true + 553ac269:135b01240d5:-49e3 + false + + 255 + + + + + false + 71 + 1 + + true + true + true + + true + + false + + + + true + 0 + Ellipse + + + + false + + + + 134 + 0 + Ellipse + 0 + 100.0 + + + + + + Default + + + + + + + 0 + false + false + 0 + $(pv_name) +$(pv_value) + 1 + + true + 553ac269:135b01240d5:-49e2 + true + + false + ###### + 0.0 + + false + true + 20 + 1 + + true + true + false + + true + sim://noise + 1 + + + + true + Text Update + false + false + 0 + + + + 100 + 17 + Text Update + 26 + + + + + + Default + + + + + + 0 + + + true + 553ac269:135b01240d5:-49e0 + true + true + + 44 + 1 + + false + false + false + + + true + + true + + + + Grouping Container + + + + 185 + 601 + widgets/GroupingContainer.html + 543 + + + + + + ../scripts/openHelp.js + + false + Open Help + + + false + false + + Default + + + 0 + + 1 + + true + 553ac269:135b01240d5:-49df + true + false + See Online Help + + 22 + 1 + + true + true + false + + true + 1 + + + + Label + true + + + + 135 + 41 + Label_28 + 11 + + + + + false + + + + + + 0 + false + 1 + true + false + $(pv_name) +$(pv_value) + 0 + + true + 553ac269:135b01240d5:-49de + false + + + + + true + + 255 + 0.0 + + false + 1 + 1 + + true + true + true + + true + + + + + true + 0 + 20 + Polyline + false + + + + 120 + 49 + Polyline + 32 + 0.0 + + + + + + Default + + + + 0 + + + 0 + true + 553ac269:135b01240d5:-49dd + true + ../pictures/onlineHelp.gif + + 44 + 1 + + true + true + false + + false + true + 0 + 0 + + + + false + Image + false + + + + + + 1.0 + 0.0 + + + 0.0 + 1.0 + + + 42 + 8 + Image + 0 + + + + + 0 + 0 + true + false + + Default + + + + + false + 0 + false + $(pv_name) +$(pv_value) + 0 + + true + 66d1507f:138820a85e5:-7b7a + + Go Home + + false + 38 + 1 + + true + true + false + + ../pictures/home-16x16.png + true + + + + + Action Button + 97 + 8 + Action Button_3 + 546 + + + + + + + ../scripts/goHome.js + + false + + + + + Default + + + + 14 + + + true + 7e12bab7:13d18afeb5a:-7558 + true + false + + 234 + 0 + + true + true + true + + + true + + true + + + + Grouping Container + + + + 378 + 17 + Grouping Container_2 + 280 + + + + + false + false + + Default + + + 0 + false + 3 + true + false + $(pv_name) +$(pv_value) + 0 + + true + 7e12bab7:13d18afeb5a:-7271 + false + + + + + true + + 255 + 0.0 + + false + 1 + 1 + + true + true + true + + true + + + + + true + 0 + 20 + Polyline + false + + + + 129 + 96 + Polyline + 73 + 0.0 + + + + + + Default + + + + 0 + false + 3 + true + false + $(pv_name) +$(pv_value) + 0 + + true + 7e12bab7:13d18afeb5a:-5e25 + false + + + + + + true + + 255 + 0.0 + + false + 52 + 1 + + true + true + true + + true + + + + + true + 0 + 20 + Polyline + false + + + + 41 + 32 + Polyline_1 + 73 + 0.0 + + + + + + Default + + + + 0 + + + + + + + + + + + + + + loc://switch + + + true + 553ac269:135b01240d5:-49ea + true + false + + 44 + 1 + + true + true + true + + + true + + true + + + + Grouping Container + + + + 37 + 66 + Grouping Container + 45 + + + + + + + + true + + + + true + false + + Default + + + 0 + + + true + 2ce53672:1516339496d:-7f02 + true + false + + 45 + 1 + + true + true + true + + + true + + true + + + + Grouping Container + + + + 37 + 0 + Grouping Container + 0 + + + + + false + false + + Default + + + 0 + + + true + 2ce53672:1516339496d:-7e78 + true + true + + 44 + 1 + + true + true + true + + + true + + true + + + + Grouping Container + + + + 37 + 0 + Grouping Container + 0 + + + + + false + false + + Default + + + 0 + false + 2 + true + false + $(pv.name) + 0 + + true + 553ac269:135b01240d5:-49e9 + false + + + + + true + + 255 + 0.0 + + false + 26 + 1 + + true + true + true + + true + + + + + true + 0 + 20 + Polyline + false + + + + 1 + 18 + Polyline_4 + 4 + 0.0 + + + + + + Default + + + + 0 + false + 0 + true + false + $(pv.name) + + true + 553ac269:135b01240d5:-49e8 + false + + + + + + + + 255 + 0.0 + + false + 30 + 1 + + true + true + true + + true + + + + + true + 0 + Polygon + false + + + + 37 + 0 + Polygon_1 + 14 + 0.0 + + + + + + loc://switch + 1 + 10 + + + + + loc://switch + 0 + 10 + + + + + + Default + + + + + + + 0 + false + 0 + false + 0 + $(pv.name) + + 180 + true + 553ac269:135b01240d5:-49e7 + + 255 + + false + 21 + 1 + + true + true + true + + true + + + + + true + true + 0 + Arc + false + + + + 32 + 2 + Arc + 0 + + + + + + loc://switch + 1 + 10 + + + + + loc://switch + 0 + 10 + + + + + + Default + + + + + + + 0 + + + + + + + + + + + + + + loc://switch + + + true + 7e12bab7:13d18afeb5a:-788d + true + true + + 88 + 1 + + true + true + true + + + true + + true + + + + Grouping Container + + + + 188 + 166 + Grouping Container_1 + 30 + + + + + true + false + + Default + + + 0 + false + 1 + true + false + $(pv_name) +$(pv_value) + + true + 7e12bab7:13d18afeb5a:-7901 + false + + 255 + + + + + false + 23 + 1 + + true + true + false + + true + + false + + + + true + 0 + Rectangle + + + + false + + + + 86 + 57 + Rectangle + 0 + 0.0 + + + + + + Default + + + + + + + 0 + false + 1 + true + false + $(pv_name) +$(pv_value) + + true + 7e12bab7:13d18afeb5a:-7a62 + false + + 255 + + + + + false + 88 + 1 + + true + true + true + + true + + false + + + + true + 0 + Ellipse + + + + false + + + + 88 + 15 + Ellipse + 0 + 0.0 + + + + + + Default + + + + + + + 0 + false + 1 + true + false + $(pv_name) +$(pv_value) + + true + 7e12bab7:13d18afeb5a:-79ec + true + + 255 + + + + + false + 26 + 1 + + true + true + true + + true + + false + + + + true + 0 + Ellipse + + + + false + + + + 26 + 46 + Ellipse_1 + 31 + 0.0 + + + + + + Default + + + + + + + 0 + + + true + -4083aa05:13d18da9090:-7fe1 + true + true + + 23 + 1 + + true + true + false + + + true + + true + + + + Grouping Container + + + + 46 + 142 + Grouping Container + 0 + + + + + false + false + + Default + + + 0 + false + 3 + true + false + $(pv_name) +$(pv_value) + 2 + + true + 7e12bab7:13d18afeb5a:-78a1 + false + + + + + true + + 255 + 0.0 + + false + 1 + 1 + + true + true + true + + true + + + + + true + 0 + 20 + Polyline + false + + + + 46 + 0 + Polyline + 12 + 0.0 + + + + + + Default + + + + + + 0 + false + 0 + true + false + $(pv_name) +$(pv_value) + + + + + + + + + + + + + loc://switch + + + true + 7e12bab7:13d18afeb5a:-6101 + false + + + + + + + + 255 + 0.0 + + false + 37 + 1 + + true + true + true + + true + + + + + true + 0 + Polygon + false + + + + 28 + 20 + Polygon + 124 + 0.0 + + + + + + + + true + + + + + Default + + + + + + + 0 + false + 3 + true + false + $(pv_name) +$(pv_value) + 0 + + true + 7e12bab7:13d18afeb5a:-5bfa + false + + + + + true + + 255 + 0.0 + + false + 49 + 1 + + true + true + true + + true + + + + + true + 0 + 20 + Polyline + false + + + + 1 + 33 + Polyline_2 + 160 + 0.0 + + + + + + Default + + + + 0 + + 1 + + true + -4083aa05:13d18da9090:-7d74 + true + false + Forward Colors = Yes + + 20 + 1 + + true + true + false + + true + 1 + + + + Label + true + + + + 165 + 166 + Label + 124 + + + + + false + + Default + + + + + 0 + + 1 + + true + -4083aa05:13d18da9090:-7d98 + true + false + Border Style = Round Rectangle Background + + 20 + 1 + + true + true + false + + true + 1 + + + + Label + true + + + + 325 + 43 + Label + 513 + + + + + false + + Default + + + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/4_2_2_LinkingContainer.opi b/core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/4_2_2_LinkingContainer.opi new file mode 100644 index 000000000..ad6bf6415 --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/4_2_2_LinkingContainer.opi @@ -0,0 +1,655 @@ + + + false + + true + + 66d1507f:138820a85e5:-7b77 + 3.1.0.qualifier + + + sim://ramp(0,3,1,3) + + + false + 768 + Linking Container + true + false + + + + + + + Display + true + 1024 + + true + 4 + + true + -1 + -1 + + + -1 + -1 + + true + 1 + 66d1507f:138820a85e5:-7b76 + false + + 86 + Label_8 + + true + true + false + + false + false + + + + + + + Label + true + Linking Container +Auto Navigation Example + + + + 557 + 0 + + 1 + + + + 1 + + 6 + true + + 17 + + + true + 1 + 66d1507f:138820a85e5:-7b75 + false + + 43 + Label_6 + + true + true + false + + false + false + + + + + + + Label + true + Examples + + + + 451 + 0 + + 1 + + + + 1 + + 49 + true + + 573 + + + true + 1 + 66d1507f:138820a85e5:-7b74 + false + + 44 + Label_9 + + true + true + false + + false + false + + + + + + + Label + true + Best OPI Yet (BOY) + + + + 451 + 0 + + 1 + + + + 1 + + 6 + true + + 573 + + + false + true + 66d1507f:138820a85e5:-7b73 + + 28 + Action Button_2 + false + + true + true + false + + + + + + + + + Action Button + true + Back + false + + + + 79 + 0 + 0 + + + + false + 1 + + + + 728 + + + 4_2_LinkingContainer.opi + + true + + 1 + + + + $(pv_name) +$(pv_value) + 928 + + + + true + + true + 66d1507f:138820a85e5:-7b71 + false + + true + 144 + Sub Container 0 + + true + true + false + + 1_1_Rectangle_Ellipse.opi + + + + + + + + Linking Container + true + + Default + + 183 + 2 + + 2 + + + + + 112 + + 18 + + + + true + + true + 66d1507f:138820a85e5:-7b70 + false + + false + 600 + Main Container + + true + true + false + + + + + + + + + + Linking Container + true + + Default + + 800 + 3 + + 1 + + + + + 112 + + 207 + + + + true + + true + 66d1507f:138820a85e5:-7b6f + false + + true + 144 + Sub Container 1 + + true + true + false + + 1_5_Polyline_Polygon.opi + + + + + + + + Linking Container + true + + Default + + 183 + 2 + + 2 + + + + + 264 + + 18 + + + + true + + true + 66d1507f:138820a85e5:-7b6e + false + + true + 144 + Sub Container 2 + + true + true + false + + 2_3_Gauge_Meter.opi + + + + + + + + Linking Container + true + + Default + + 183 + 2 + + 2 + + + + + 416 + + 18 + + + + true + + true + 66d1507f:138820a85e5:-7b6d + false + + true + 144 + Sub Container 3 + + true + true + false + + 1_4_Arc.opi + + + + + + + + Linking Container + true + + Default + + 183 + 2 + + 2 + + + + + 568 + + 18 + + + + true + + true + 66d1507f:138820a85e5:-7b6c + + 44 + widgets/LinkingContainer.html + + false + false + false + + true + false + + + + + + + Grouping Container + true + + Default + + 185 + 0 + + true + 1 + + + + + + ../scripts/openHelp.js + + false + Open Help + + + 720 + + 398 + + true + 1 + 66d1507f:138820a85e5:-7b6b + false + + 22 + Label_28 + + true + true + false + + true + false + + + + + + + Label + true + See Online Help + + + + 135 + 0 + + 1 + + + + 1 + + 11 + true + + 41 + + + false + true + 20 + true + 0.0 + 66d1507f:138820a85e5:-7b6a + 0.0 + + 0 + 1 + true + Polyline + false + 255 + + true + true + true + + + + + + false + + + + + + + + Polyline + true + false + + Default + + 120 + 0 + 0 + + + 1 + 1 + true + + + + + 32 + $(pv_name) +$(pv_value) + 49 + + + 0 + 0 + true + 66d1507f:138820a85e5:-7b69 + true + + 44 + Image + true + + true + true + false + + + + + + + + Image + true + + Default + + 42 + false + 0 + 0 + + 0 + 1 + ../pictures/onlineHelp.gif + + + + + 0 + + 8 + + + + false + true + 66d1507f:138820a85e5:-7b0d + + 38 + Action Button_3 + false + + true + true + false + + + + + + Button + true + Go Home + + Default + + 97 + 0 + 0 + ../pictures/home-16x16.png + + + false + 1 + + + + 723 + + + ../scripts/goHome.js + + false + + + + $(pv_name) +$(pv_value) + 18 + + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/4_2_LinkingContainer.opi b/core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/4_2_LinkingContainer.opi new file mode 100644 index 000000000..00282b2b3 --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/4_2_LinkingContainer.opi @@ -0,0 +1,1271 @@ + + + false + + true + + 66d1507f:138820a85e5:-7b0a + 3.2.0.qualifier + + false + 600 + Linking Container + true + false + + + + + + + Display + true + 800 + + true + 4 + + true + -1 + -1 + + + -1 + -1 + + true + 1 + 66d1507f:138820a85e5:-7b09 + false + + 69 + Label_6 + + true + true + false + + false + false + + + + + + + Label + true + Linking container can be used to embed another OPI or a group in another OPI in it. It is very useful by using it properly. For example, it can be used for animation by loading different content with a rule or script. Combined with different macros, you can show different PVs with same OPI. + + + + 745 + 1 + + 1 + + + + 0 + + 106 + true + + 17 + + + true + 1 + 66d1507f:138820a85e5:-7b08 + false + + 86 + Label_8 + + true + true + false + + false + false + + + + + + + Label + true + Linking Container + + + + 295 + 0 + + 1 + + + + 1 + + 6 + true + + 17 + + + true + 1 + 66d1507f:138820a85e5:-7b07 + false + + 43 + Label_6 + + true + true + false + + false + false + + + + + + + Label + true + Examples + + + + 451 + 0 + + 1 + + + + 1 + + 49 + true + + 311 + + + true + 1 + 66d1507f:138820a85e5:-7b06 + false + + 44 + Label_9 + + true + true + false + + false + false + + + + + + + Label + true + Best OPI Yet (BOY) + + + + 451 + 0 + + 1 + + + + 1 + + 6 + true + + 311 + + + true + 1 + 66d1507f:138820a85e5:-7b05 + false + + 16 + Label_5 + + true + true + false + + false + false + + + + + + + Label + true + Introduction + + + + 76 + 0 + + 1 + + + + 1 + + 97 + true + $(pv_name) +$(pv_value) + 352 + + + + true + + true + 66d1507f:138820a85e5:-7b04 + false + + true + 149 + Linking Container + + true + true + false + + 1_1_Rectangle_Ellipse.opi + + + + + + + + true + Linking Container + + Default + + 185 + 2 + + 1 + + + + 221 + + 323 + + + + + true + + true + 66d1507f:138820a85e5:-7b03 + false + + false + 49 + Linking Container_1 + + true + true + false + + DynamicSymbols/DyanmicSymbol.opi + + + + + + + 1 + true + Linking Container + + Default + + 219 + 3 + + + + pvInt0 + + sim://ramp(0,5,1,0.1) + + + 1 + + + + 231 + + 48 + + + + true + 1 + 66d1507f:138820a85e5:-7b01 + false + + 28 + Label_7 + + true + true + false + + false + false + + + + + + + Label + true + Example 1: Dynamic Symbol + + + + 220 + 1 + + 1 + + + + 1 + + 194 + true + + 48 + + + true + 1 + 66d1507f:138820a85e5:-7b00 + false + + 34 + Label_8 + + true + true + false + + false + false + + + + + + + Label + true + Example 3: Use linking container as a thumbnail + + + + 382 + 1 + + 1 + + + + 1 + + 181 + true + + 323 + + + false + true + 0.0 + + + + 66d1507f:138820a85e5:-7aff + + + + + 149 + true + Rectangle + false + 255 + + true + true + false + + true + + + + + + + + Rectangle + true + + + + false + + Default + + 185 + 0 + 0 + + + 1 + 0 + true + + + + + + 1_1_Rectangle_Ellipse.opi + + true + + 1 + + + + 221 + Rectangle/Ellipse + 323 + false + + + + true + + true + 66d1507f:138820a85e5:-7afe + false + + true + 149 + Linking Container_2 + + true + true + false + + 2_1_LED.opi + + + + + + + + true + Linking Container + + Default + + 185 + 2 + + 1 + + + + 221 + + 520 + + + + false + true + 0.0 + + + + 66d1507f:138820a85e5:-7afd + + + + + 149 + true + Rectangle_1 + false + 255 + + true + true + false + + true + + + + + + + + Rectangle + true + + + + false + + Default + + 185 + 0 + 0 + + + 1 + 0 + true + + + + + + 2_1_LED.opi + + true + + 1 + + + + 221 + LED + 520 + false + + + true + 1 + 66d1507f:138820a85e5:-7afb + false + + 34 + Label_9 + + true + true + false + + false + false + + + + + + + Label + true + Example 2: Use Macros + + + + 224 + 1 + + 1 + + + + 1 + + 299 + true + + 46 + + + + true + Sam + sim://noise + + true + 66d1507f:138820a85e5:-7afa + false + + false + 50 + Linking Container_3 + + true + true + false + + DynamicSymbols/macro.opi + + + + + + + + true + Linking Container + + Default + + 219 + 3 + + 1 + + + + 340 + + 48 + + + + + true + Lisa + sim://ramp + + true + 66d1507f:138820a85e5:-7af9 + false + + false + 50 + Linking Container_4 + + true + true + false + + DynamicSymbols/macro.opi + + + + + + + + true + Linking Container + + Default + + 219 + 3 + + 1 + + + + 397 + + 48 + + + + + true + Bob + sim://sine + + true + 66d1507f:138820a85e5:-7af8 + false + + false + 50 + Linking Container_5 + + true + true + false + + DynamicSymbols/macro.opi + + + + + + + + true + Linking Container + + Default + + 219 + 3 + + 1 + + + + 456 + + 48 + + + + + true + + true + 66d1507f:138820a85e5:-7af7 + false + + true + 149 + Linking Container_6 + + true + true + false + + 1_2_Image.opi + + + + + + + + true + Linking Container + + Default + + 185 + 2 + + 1 + + + + 384 + + 323 + + + + false + true + 0.0 + + + + 66d1507f:138820a85e5:-7af6 + + + + + 149 + true + Rectangle_2 + false + 255 + + true + true + false + + true + + + + + + + + Rectangle + true + + + + false + + Default + + 185 + 0 + 0 + + + 1 + 0 + true + + + + + + 1_2_Image.opi + + true + + 1 + + + + 384 + Rectangle/Ellipse + 323 + false + + + + true + + true + 66d1507f:138820a85e5:-7af5 + false + + true + 149 + Linking Container_7 + + true + true + false + + 2_3_Gauge_Meter.opi + + + + + + + + true + Linking Container + + Default + + 185 + 2 + + 1 + + + + 384 + + 520 + + + + false + true + 0.0 + + + + 66d1507f:138820a85e5:-7af4 + + + + + 149 + true + Rectangle_3 + false + 255 + + true + true + false + + true + + + + + + + + Rectangle + true + + + + false + + Default + + 185 + 0 + 0 + + + 1 + 0 + true + + + + + + 2_3_Gauge_Meter.opi + + true + + 1 + + + + 384 + LED + 520 + false + + + + true + + true + 66d1507f:138820a85e5:-7af3 + + 44 + widgets/LinkingContainer.html + + false + false + false + + true + false + + + + + + + true + Grouping Container + + Default + + 185 + 0 + + true + 1 + + + + 549 + + + ../scripts/openHelp.js + + false + Open Help + + + 287 + + + true + 1 + 66d1507f:138820a85e5:-7af2 + false + + 22 + Label_28 + + true + true + false + + true + false + + + + + + + Label + true + See Online Help + + + + 135 + 0 + + 1 + + + + 1 + + 11 + true + + 41 + + + false + true + 20 + true + 0.0 + 66d1507f:138820a85e5:-7af1 + 0.0 + + 0 + 1 + true + Polyline + false + 255 + + true + true + true + + + + + + false + + + + + + + + Polyline + true + false + + Default + + 120 + 0 + 0 + + + 1 + 1 + true + + + + + 32 + $(pv_name) +$(pv_value) + 49 + + + 0 + 0 + true + 66d1507f:138820a85e5:-7af0 + true + + 44 + Image + true + + true + true + false + + + + + + + + Image + true + + Default + + 42 + false + false + + + 1.0 + 0.0 + + + 0.0 + 1.0 + + + 0 + 0 + + false + 0 + 0 + 1 + ../pictures/onlineHelp.gif + + + + + 0 + + 8 + + + + false + true + 66d1507f:138820a85e5:-7a81 + + 38 + + Action Button_3 + false + + true + true + false + + + + + + + + + Action Button + true + Go Home + false + + Default + + 97 + 0 + 0 + ../pictures/home-16x16.png + + + false + 1 + + + + 552 + + + ../scripts/goHome.js + + false + + + + $(pv_name) +$(pv_value) + 17 + + + false + true + 66d1507f:138820a85e5:-7afc + + 30 + + Action Button_2 + false + + true + true + false + + + + + + + + + Action Button + true + Next + false + + Default + + 88 + 0 + 0 + + + + false + 1 + + + + 559 + + + 4_2_2_LinkingContainer.opi + + true + + 1 + + + + $(pv_name) +$(pv_value) + 704 + + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/4_3_TabbedContainer.opi b/core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/4_3_TabbedContainer.opi new file mode 100644 index 000000000..81a054765 --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/4_3_TabbedContainer.opi @@ -0,0 +1,1648 @@ + + + false + + true + + 66d1507f:138820a85e5:-7a7e + 3.1.2.qualifier + + false + 600 + Tabbed Container + true + false + + + + + + + Display + true + 800 + + true + 4 + + true + -1 + -1 + + + -1 + -1 + + true + 1 + 66d1507f:138820a85e5:-7a79 + false + + 86 + Label_8 + + true + true + false + + false + false + + + + + + + Label + true + Tabbed Container + + + + 295 + 0 + + 1 + + + + 1 + + 6 + true + + 17 + + + true + 1 + 66d1507f:138820a85e5:-7a78 + false + + 43 + Label_6 + + true + true + false + + false + false + + + + + + + Label + true + Examples + + + + 451 + 0 + + 1 + + + + 1 + + 49 + true + + 311 + + + true + 1 + 66d1507f:138820a85e5:-7a77 + false + + 44 + Label_9 + + true + true + false + + false + false + + + + + + + Label + true + Best OPI Yet (BOY) + + + + 451 + 0 + + 1 + + + + 1 + + 6 + true + + 311 + + + + true + + true + 66d1507f:138820a85e5:-7a67 + + 44 + widgets/Tab.html + + false + false + false + + true + false + + + + + + + Grouping Container + true + + Default + + 185 + 0 + + true + 1 + + + + + + ../scripts/openHelp.js + + false + Open Help + + + 541 + + 569 + + true + 1 + 66d1507f:138820a85e5:-7a66 + false + + 22 + Label_28 + + true + true + false + + true + false + + + + + + + Label + true + See Online Help + + + + 135 + 0 + + 1 + + + + 1 + + 11 + true + + 41 + + + false + true + 20 + true + 0.0 + 66d1507f:138820a85e5:-7a65 + 0.0 + + 0 + 1 + true + Polyline + false + 255 + + true + true + true + + + + + + false + + + + + + + + Polyline + true + false + + Default + + 120 + 0 + 0 + + + 1 + 1 + true + + + + + 32 + $(pv_name) +$(pv_value) + 49 + + + 0 + 0 + true + 66d1507f:138820a85e5:-7a64 + true + + 44 + Image + true + + true + true + false + + + + + + + + Image + true + + Default + + 42 + false + false + + + 1.0 + 0.0 + + + 0.0 + 1.0 + + + 0 + 0 + + false + 0 + 0 + 1 + ../pictures/onlineHelp.gif + + + + + 0 + + 8 + + + + false + true + 66d1507f:138820a85e5:-7a5b + + 38 + Action Button_3 + false + + true + true + false + + + + + + Button + true + Go Home + + Default + + 97 + 0 + 0 + ../pictures/home-16x16.png + + + false + 1 + + + + 544 + + + ../scripts/goHome.js + + false + + + + $(pv_name) +$(pv_value) + 17 + + + + true + + true + + + + 30 + 3 + Properties + 0 + ../pictures/OPIBuilder.png + -1bcf444a:13b24bfb2ea:-7f24 + ../pictures/onlineHelp.gif + + Default + + true + + + + + + + + + + ../pictures/lightOn.png + + + + true + + + + + 99 + 17 + true + + true + 368 + false + + Default + + + + + Introduction + + + + Tabbed Container + true + 745 + + + + 1 + Tabbed Container_1 + + true + true + false + + Horizontal Tabs + ../pictures/home-16x16.png + + Default Bold + + + Context Menu + + + + + + + + Default + + 4 + + + + true + + false + 66d1507f:138820a85e5:-7a74 + + 366 + Introduction + + true + true + false + + true + true + + + + + + + Grouping Container + true + + Default + + 589 + 0 + + false + 1 + + + + + 1 + + 1 + + true + 1 + 66d1507f:138820a85e5:-7a7c + false + + 163 + Label_6 + + true + true + false + + true + false + + + + + + + Label + true + Tabbed Container can host widgets by tabs. Each tab is a container. The tabs can be arranged in horizontal or vertical by "Horizontal Tabs" property. + + Default + + 391 + 0 + + 1 + + + + 0 + + 16 + true + + 132 + + + + + true + + false + 66d1507f:138820a85e5:-7a71 + + 366 + Properties + + true + true + false + + true + true + + + + + + + Grouping Container + true + + Default + + 589 + 0 + + false + 1 + + + + + 1 + + 1 + + true + 0 + 66d1507f:138820a85e5:-7a7b + false + + 162 + Label_4 + + true + true + false + + true + false + + + + + + + Label + true + -Tab Count(tab_count). The number of tabbs. Change this property can add/remove tabbs. +Attention: If you remove tabbs by changing this property, the widgets on the removed tabbs cannot be recovered by Undo. So it is recommended to remove a tab by right clicking tab and choose "Remove Tab". + + Default + + 533 + 0 + + 1 + + + + 0 + + 10 + true + + 14 + + + + + true + + false + 66d1507f:138820a85e5:-7a6f + + 366 + Context Menu + + true + true + false + + true + true + + + + + + + Grouping Container + true + + Default + + 589 + 0 + + false + 1 + + + + + 1 + + 1 + + true + 0 + 66d1507f:138820a85e5:-7a7d + false + + 168 + Label_8 + + true + true + false + + true + false + + + + + + + Label + true + -Remove Tab. Remove the current tab. This can be fully undone. +-Duplicate Tab. Duplicate the current tab. +-Add Tab After. Add an empty tab after the current tab. +-Add Tab Before. Add an empty tab before the current tab. + + Default + + 500 + 1 + + 0 + + + + 0 + + 14 + true + + 29 + + + + + true + + true + 66d1507f:138820a85e5:-7a6f + + 366 + Horizontal Tabs + + true + true + false + + true + true + + + + + + + Grouping Container + true + + Default + + 589 + 0 + + false + 1 + + + + + 1 + + 1 + + + true + + true + + + + 20 + 0 + Tab 1 + 0 + + 66d1507f:138820a85e5:-7a75 + ../pictures/OPIBuilder.png + + + + true + + + + + + + + + + + + + + true + + + + + 26 + 74 + true + + true + 303 + true + + + + + + + Tab 0 + + + + Tabbed Container + true + 482 + + + + 1 + Tabbed Container + + true + true + false + + Tab 3 + ../pictures/home-16x16.png + + + + + Tab 2 + + + + + + + + + + 4 + + + + true + + false + 66d1507f:138820a85e5:-7a74 + + 270 + Tab 0 + + true + true + false + + true + true + + + + + + + Grouping Container + true + + Default + + 480 + 0 + + false + 1 + + + + + 1 + + 1 + + 20.0 + true + true + + + + true + + 138 + 50 + false + + + + true + Gauge + true + + Default + + 138 + true + 0 + true + + true + true + 100.0 + 1 + false + 0.0 + 66d1507f:138820a85e5:-7a73 + true + + true + + + + Gauge + + true + true + true + + + + + loc://test + + + + false + 80.0 + + Default + + 90.0 + true + + + + + + true + + + + false + + + + 10.0 + 63 + + 36 + $(pv_name) +$(pv_value) + + + 20.0 + true + true + + + + + + + true + + + + + 200 + 50 + false + 10.0 + + + + true + Scaled Slider + true + + Default + + 120 + true + 0 + true + + true + true + 100.0 + 1 + false + false + 0.0 + 66d1507f:138820a85e5:-7a72 + true + + true + + + + Scaled Slider + + true + true + false + + + + + loc://test + + + + 1.0 + false + 80.0 + + Default + + 90.0 + + + + + + + + + true + false + + + + 10.0 + 32 + + 207 + $(pv_name) +$(pv_value) + + + + + true + + false + 66d1507f:138820a85e5:-7a71 + + 270 + Tab 1 + + true + true + false + + true + true + + + + + + + Grouping Container + true + + Default + + 480 + 0 + + false + 1 + + + + + 1 + + 1 + + + + + true + 0 + 0 + 1 + false + false + 4 + true + 24 + 13 + true + + true + 223 + 100.0 + + + + 1 + + + + + XY Graph + 0.0 + 1 + false + false + + + + 0.0 + Trace 0 + 0 + Primary X Axis (0) + 66d1507f:138820a85e5:-7a70 + + + + + + + false + Primary Y Axis (1) + 100.0 + + + + 0 + false + + + + true + true + false + + + sim://noise + + + + true + true + + + false + XY Graph + true + 304 + 100 + + 2 + true + true + 0 + 0 + $(trace_0_y_pv) +$(trace_0_y_pv_value) + true + 1 + + + + 0 + + + + + + 0.0 + true + 0.0 + + + + + true + + + + + + true + true + false + + + + 0 + + + + 0 + + + + + true + + true + 66d1507f:138820a85e5:-7a6f + + 270 + Tab 2 + + true + true + false + + true + true + + + + + + + Grouping Container + true + + Default + + 480 + 0 + + false + 1 + + + + + 1 + + 1 + + 20.0 + true + true + + + + + + + true + + 80 + 50 + false + + + + true + Progress Bar + true + + Default + + 220 + true + 0 + true + + true + true + 100.0 + 1 + true + false + 0.0 + 66d1507f:138820a85e5:-7a6e + true + + true + + + + Progress Bar + + true + true + false + + + + + sim://ramp(0,100,1,0.1) + true + + + + true + false + 80.0 + + Default + + 90.0 + 0.0 + + + + + + + + + true + true + + + + 10.0 + 60 + + 0 + $(pv_name) +$(pv_value) + false + + + 20.0 + true + true + + + + + + + true + + 220 + 50 + false + + + + true + Progress Bar + true + + Default + + 101 + true + 0 + true + + true + true + 100.0 + 1 + false + false + 0.0 + 66d1507f:138820a85e5:-7a6d + true + + true + + + + Progress Bar_1 + + true + true + false + + + + + sim://ramp(0,100,1,0.1) + true + + + + true + false + 80.0 + + Default + + 90.0 + 0.0 + + + + + + + + + true + true + + + + 10.0 + 25 + + 310 + $(pv_name) +$(pv_value) + false + + + + + true + + false + 66d1507f:138820a85e5:-7a6c + + 270 + Tab 3 + + true + true + false + + true + true + + + + + + + Grouping Container + true + + Default + + 480 + 0 + + false + 1 + + + + + 1 + + 1 + + 20.0 + true + true + + + + true + + + + + + + + 173 + 50 + false + + + + true + Knob + 1.0 + true + + Default + + 173 + true + 0 + true + + true + true + 100.0 + 1 + false + 0.0 + 66d1507f:138820a85e5:-7a6b + true + + true + + + + Knob + + true + true + true + + + + + loc://tab3 + + + + false + 80.0 + + Default + + 90.0 + true + + + + + + true + true + false + + + + 10.0 + 40 + + 10 + $(pv_name) +$(pv_value) + + + 20.0 + true + true + + + + + + + true + + 200 + 50 + false + + + + true + Thermometer + true + + Default + + 100 + true + 0 + true + true + + true + true + 100.0 + 1 + false + 0.0 + 66d1507f:138820a85e5:-7a6a + true + + true + + + + Thermometer + + true + true + false + + + + + loc://tab3 + + + + false + 80.0 + + Default + + 90.0 + + + + + + + + + 0 + true + false + + + + 10.0 + 27 + + 205 + $(pv_name) +$(pv_value) + + + + + + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/4_4_WebBrowser.opi b/core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/4_4_WebBrowser.opi new file mode 100644 index 000000000..ac92c1977 --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/4_4_WebBrowser.opi @@ -0,0 +1,708 @@ + + + false + + true + + 66d1507f:138820a85e5:-7a50 + 3.1.4.qualifier + + false + 600 + Web Browser + true + false + + + + + + + Display + true + 800 + + true + 4 + + true + -1 + -1 + + + -1 + -1 + + true + 1 + 66d1507f:138820a85e5:-7a4f + false + + 35 + Label_6 + + true + true + false + + false + false + + + + + + + Label + true + Web browser widget allows you browser webpage inside OPI. + + + + 369 + 1 + + 1 + + + + 0 + + 113 + true + + 17 + + + true + 1 + 66d1507f:138820a85e5:-7a4e + false + + 35 + Label_4 + + true + true + false + + false + false + + + + + + + Label + true + -URL(url). The URL of web page. + + + + 303 + 1 + + 1 + + + + 0 + + 113 + true + + 459 + + + true + 1 + 66d1507f:138820a85e5:-7a4d + true + + 16 + Label_5 + + true + true + false + + false + false + + + + + + + Label + true + Special Properties + + + + 114 + 0 + + 1 + + + + 1 + + 105 + true + $(pv_name) +$(pv_value) + 552 + + + true + 1 + 66d1507f:138820a85e5:-7a4c + false + + 86 + Label_8 + + true + true + false + + false + false + + + + + + + Label + true + Web Browser + + + + 295 + 0 + + 1 + + + + 1 + + 6 + true + + 17 + + + true + 1 + 66d1507f:138820a85e5:-7a4b + false + + 43 + Label_6 + + true + true + false + + false + false + + + + + + + Label + true + Examples + + + + 451 + 0 + + 1 + + + + 1 + + 49 + true + + 311 + + + true + 1 + 66d1507f:138820a85e5:-7a4a + false + + 44 + Label_9 + + true + true + false + + false + false + + + + + + + Label + true + Best OPI Yet (BOY) + + + + 451 + 0 + + 1 + + + + 1 + + 6 + true + + 311 + + + true + 1 + 66d1507f:138820a85e5:-7a49 + false + + 16 + Label_5 + + true + true + false + + false + false + + + + + + + Label + true + Introduction + + + + 76 + 0 + + 1 + + + + 1 + + 105 + true + $(pv_name) +$(pv_value) + 127 + + + false + true + 1 + false + false + + 20 + false + true + + + + Text Input + true + https://sourceforge.net/apps/trac/cs-studio/wiki/BOY + + + + 683 + 3 + + 1 + 1.7976931348623157E308 + -1.7976931348623157E308 + true + 66d1507f:138820a85e5:-7a47 + 0.0 + Text Input + + true + true + false + + 0 + false + 0 + loc://urlPV("https://sourceforge.net/apps/trac/cs-studio/wiki/BOY") + + + + false + 0 + + + false + + + + 0 + + 154 + $(pv_name) +$(pv_value) + 79 + + + true + 1 + 66d1507f:138820a85e5:-7a46 + false + + 20 + Label + + true + true + false + + true + false + + + + + + + Label + true + URL + + + + 55 + 0 + + 1 + + + + 1 + + 154 + true + + 17 + + + true + 66d1507f:138820a85e5:-7a45 + + 353 + Web Browser + + true + true + false + + + + + + + + true + Web Browser + 745 + 3 + + + + pvStr0 + + loc://urlPV("https://sourceforge.net/apps/trac/cs-studio/wiki/BOY") + + + https://sourceforge.net/apps/trac/cs-studio/wiki/BOY + 1 + + + + true + 186 + + 17 + + + + + true + + true + 66d1507f:138820a85e5:-7a44 + + 44 + widgets/WebBrowser.html + + false + false + false + + true + false + + + + + + + true + Grouping Container + + Default + + 185 + 0 + + true + 1 + + + + 546 + + + ../scripts/openHelp.js + + false + Open Help + + + 577 + + + true + 1 + 66d1507f:138820a85e5:-7a43 + false + + 22 + Label_28 + + true + true + false + + true + false + + + + + + + Label + true + See Online Help + + + + 135 + 0 + + 1 + + + + 1 + + 11 + true + + 41 + + + false + true + 20 + true + 0.0 + 66d1507f:138820a85e5:-7a42 + 0.0 + + 0 + 1 + true + Polyline + false + 255 + + true + true + true + + + + + + false + + + + + + + + Polyline + true + false + + Default + + 120 + 0 + 0 + + + 1 + 1 + true + + + + + 32 + $(pv_name) +$(pv_value) + 49 + + + 0 + 0 + true + 66d1507f:138820a85e5:-7a41 + true + + 44 + Image + true + + true + true + false + + + + + + + + Image + true + + Default + + 42 + false + false + + + 1.0 + 0.0 + + + 0.0 + 1.0 + + + 0 + 0 + + false + 0 + 0 + 1 + ../pictures/onlineHelp.gif + + + + + 0 + + 8 + + + + false + true + 66d1507f:138820a85e5:-7a34 + + 38 + Action Button_3 + false + + true + true + false + + + + + + Button + true + Go Home + + Default + + 97 + 0 + 0 + ../pictures/home-16x16.png + + + false + 1 + + + + 552 + + + ../scripts/goHome.js + + false + + + + $(pv_name) +$(pv_value) + 17 + + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/4_5_Table.opi b/core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/4_5_Table.opi new file mode 100644 index 000000000..e6034850e --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/4_5_Table.opi @@ -0,0 +1,1230 @@ + + + + + true + 0 + 0 + + false + + + + 1.5.3 + + + + 4 + 600 + + true + + Table + + + true + true + false + false + true + Display + 800 + -7830e430:13558e7cee8:-7e10 + -1 + -1 + + + false + + + + + + + 1 + 1 + true + + + + + + + 40 + 0 + Label_6 + + + true + true + false + + + false + A Table widget works like a spread sheet. It doesn't connect to PVs directly. It is designed to be used in scripts. + + false + 1 + true + Label + 671 + true + -7830e430:13558e7cee8:-7e0f + 61 + 105 + + + + false + + + + + + + 0 + 1 + true + + + + + + + 86 + 1 + Label_8 + + + true + true + false + + + false + Table + + false + 1 + true + Label + 295 + true + -7830e430:13558e7cee8:-7e0c + 17 + 6 + + + + false + + + + + + + 0 + 1 + true + + + + + + + 43 + 1 + Label_6 + + + true + true + false + + + false + Examples + + false + 1 + true + Label + 451 + true + -7830e430:13558e7cee8:-7e0b + 311 + 49 + + + + false + + + + + + + 0 + 1 + true + + + + + + + 44 + 1 + Label_9 + + + true + true + false + + + false + Best OPI Yet (BOY) + + false + 1 + true + Label + 451 + true + -7830e430:13558e7cee8:-7e0a + 311 + 6 + + + + false + + + + + + + 0 + 1 + true + + + + + + + 16 + 1 + Label_5 + + + true + true + false + + + false + Introduction + $(pv_name) +$(pv_value) + false + 1 + true + Label + 76 + true + -7830e430:13558e7cee8:-7e09 + 332 + 99 + + + + + ../scripts/openHelp.js + + false + Open Help + + + + + + + + + 0 + 1 + true + false + + Default + + + + + 44 + true + + true + + widgets/Table.html + + + true + true + false + + + false + + true + true + Grouping Container + 185 + -7830e430:13558e7cee8:-7e04 + 562 + 542 + + + false + + + + + + + 0 + 1 + true + + + + + + + 22 + 1 + Label_28 + + + true + true + false + + + false + See Online Help + + true + 1 + true + Label + 135 + true + -7830e430:13558e7cee8:-7e03 + 41 + 11 + + + + false + 255 + true + 20 + 0 + false + + + + false + + + + 0 + 1 + true + true + 0.0 + + Default + + false + + + + 1 + true + 0 + 1 + Polyline + + + + + + + 0.0 + + + true + true + false + + + $(pv_name) +$(pv_value) + false + true + Polyline + 120 + -7830e430:13558e7cee8:-7e02 + 49 + 32 + + + + false + true + + + + + + + 0 + 1 + 0 + 0 + 0 + 0 + 0 + true + false + false + + Default + + + + + 44 + ../pictures/onlineHelp.gif + Image + false + + + 1.0 + 0.0 + + + 0.0 + 1.0 + + + + + true + true + false + + + true + + false + true + Image + 42 + -7830e430:13558e7cee8:-7e01 + 8 + 0 + + + + + 3 + + + + + + + 0 + 1 + true + + + + 339 + true + + true + + 10 + Tabbed Container + + + true + true + false + + + + + + true + + Default + + + + + + Display PV Values Examples + + + + true + + Default + + + + + + Editable Table Example + + + + true + + Default + + + + + + Selection Monitor Example + 3 + + true + Tabbed Container + 688 + -3cd731dc:13568229061:-7adb + 59 + 151 + + + + + + + + + 0 + 1 + true + false + + Default + + + + + 307 + false + + true + + Display PV Values Examples + + + true + true + false + + + true + + true + true + Grouping Container + 686 + -3cd731dc:13568229061:-7ada + 1 + 1 + + + + + + + + + 0 + 1 + true + + + PV Name + 180 + + + + + Value + 100 + No + + + + Time Stamp + 180 + No + + + + Status + 100 + No + TEXT + + + Severity + 60 + + + + + 5 + + false + true + + Default + + + + + 206 + Table + + + true + true + false + + + + sim://noise + sim://ramp + sim://ramp(0,100,1,0.1) + sim://sine(-100,100,100,0.1) + sim://noise(-10, 10, 0.2) + + + I'm +the +tooltip. + true + Table + 632 + f7ae574:1355e6aaf82:-7c90 + 18 + 61 + + + + false + + + + + + + 1 + 1 + true + + + + + + + 33 + 0 + Label_12 + + + true + true + false + + + false + Example 1: Display multiple PV values + + false + 1 + true + Label + 242 + true + 7cb9c0d4:135634f6c46:-7c86 + 18 + 13 + + + + + + + + + + + 0 + 1 + true + false + + Default + + + + + 307 + false + + true + + Editable Table Example + + + true + true + false + + + true + + true + false + Grouping Container + 686 + -3cd731dc:13568229061:-7ad9 + 1 + 1 + + + + + + + + + 0 + 1 + true + + + Col 1 + + Yes + CHECKBOX + + + Col 2 + + No + + + + Col 3 + + Yes + DROPDOWN + + + Col 4 + + Yes + TEXT + + + 4 + + + row 1 + row 1 + row 1 + row 1 + + + row 2 + row 2 + row 2 + row 2 + + + row 3 + row 3 + row 3 + row 3 + + + row 4 + row 4 + row 4 + row 4 + + + true + true + + Default + + + + + 152 + Table + + + true + true + false + + + + =1 + + + setDropDownItems + + =1 + + + + true + Table + 350 + 7cb9c0d4:135634f6c46:-7b3c + 6 + 50 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 0 + Label + + + true + true + false + + + false + Content in Table: + + true + 1 + true + Label + 150 + true + -3cd731dc:13568229061:-7f0e + 396 + 50 + + + + false + + + + + + + 1 + 1 + true + + + + + + + 33 + 0 + Label_13 + + + true + true + false + + + false + Example 2: An Editable Table. Change its content to see its latest content in right label. + + false + 1 + true + Label + 632 + true + 7cb9c0d4:135634f6c46:-7c7a + 6 + 8 + + + + false + + + + + + + 1 + 1 + true + + Default + + + + + 127 + 1 + contentLabel + + + true + true + false + + + false + + + false + 1 + true + Label + 242 + true + 7cb9c0d4:135634f6c46:-7a6a + 396 + 75 + + + + + + + + + + + 0 + 1 + true + false + + Default + + + + + 307 + false + + true + + Selection Monitor Example + + + true + true + false + + + true + + true + false + Grouping Container + 686 + -3cd731dc:13568229061:-7ad9 + 1 + 1 + + + + + + + + + 0 + 1 + true + + + Col 1 + + + + Col 2 + + + + Col 3 + + + + 3 + + + row 1 + row 1 + row 1 + + + row 2 + row 2 + row 2 + + + row 3 + row 3 + row 3 + + + true + true + + Default + + + + + 235 + Table + + + true + true + false + + + + =1 + + + + true + Table + 344 + 7cb9c0d4:135634f6c46:-7b3c + 6 + 50 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 0 + Label + + + true + true + false + + + false + Table Content + + true + 1 + true + Label + 150 + true + -3cd731dc:13568229061:-7f0e + 396 + 50 + + + + false + + + + + + + 1 + 1 + true + + + + + + + 33 + 0 + Label_13 + + + true + true + false + + + false + Example 3: Change selection in the table to see its selection in right label. + + false + 1 + true + Label + 632 + true + 7cb9c0d4:135634f6c46:-7c7a + 6 + 8 + + + + false + + + + + + + 1 + 1 + true + + Default + + + + + 210 + 1 + selectionLabel + + + true + true + false + + + false + + + false + 1 + true + Label + 320 + true + 7cb9c0d4:135634f6c46:-7a6a + 355 + 75 + + + + + + + ../scripts/goHome.js + + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 38 + ../pictures/home-16x16.png + Action Button_3 + 0 + + + + + true + true + false + + + + Go Home + false + $(pv_name) +$(pv_value) + true + Button + 97 + 66d1507f:138820a85e5:-7a10 + 7 + 545 + + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/4_6_1_SashContainer.opi b/core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/4_6_1_SashContainer.opi new file mode 100644 index 000000000..91b2d5a17 --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/4_6_1_SashContainer.opi @@ -0,0 +1,1227 @@ + + + false + + true + + 553ac269:135b01240d5:-49f9 + 3.2.0.qualifier + + false + 600 + Sash Container + true + false + + + + + + + Display + true + 800 + + true + 4 + + true + 400 + 300 + + + -1 + -1 + + 2 + + true + + true + true + true + e7948:13631faf1e5:-7e68 + + 600 + Sash Container + + true + true + false + + false + 3 + + + + + + + Sash Container + true + + Default + + 800 + 0.16833333333333333 + 0 + + 1 + false + + + + + 0 + + 0 + + + true + + true + e7948:13631faf1e5:-7e67 + + 100 + Panel 1 + + true + true + false + + true + true + + + + + + + true + Grouping Container + + Default + + 800 + 0 + + false + 1 + + + + 0 + + 0 + + + + true + + true + e7948:13631faf1e5:-7e15 + + 100 + Grouping Container + + true + true + false + + false + false + + + + + + + true + Grouping Container + + Default + + 800 + 0 + + true + 1 + + + + 0 + + 0 + + + true + 1 + 553ac269:135b01240d5:-49f7 + false + + 100 + Label_8 + + true + true + false + + false + false + + + + + + + Label + true + Sash Container + + + + 316 + 0 + + 1 + + + + 1 + + 0 + true + + 0 + + + true + 1 + 553ac269:135b01240d5:-49f6 + false + + 50 + Label_6 + + true + true + false + + false + false + + + + + + + Label + true + Examples + + + + 484 + 0 + + 1 + + + + 1 + + 50 + true + + 315 + + + true + 1 + 553ac269:135b01240d5:-49f5 + false + + 51 + Label_9 + + true + true + false + + false + false + + + + + + + Label + true + Best OPI Yet (BOY) + + + + 484 + 0 + + 1 + + + + 1 + + 0 + true + + 315 + + + + + + true + + true + e7948:13631faf1e5:-7e66 + + 497 + Panel 2 + + true + true + false + + true + true + + + + + + + true + Grouping Container + + Default + + 800 + 0 + + false + 1 + + + + 102 + + 0 + + + 2 + + true + + true + true + true + e7948:13631faf1e5:-7e19 + + 497 + Sash Container + + true + true + false + + false + 3 + + + + + + + Sash Container + true + + Default + + 800 + 0.670020120724346 + 0 + + 1 + false + + + + + 0 + + 0 + + + true + + true + e7948:13631faf1e5:-7e18 + + 332 + Panel 1 + + true + true + false + + true + true + + + + + + + true + Grouping Container + + Default + + 800 + 0 + + false + 1 + + + + 0 + + 0 + + + 2 + + true + + true + false + true + e7948:13631faf1e5:-7e40 + + 332 + Sash Container + + true + true + false + + false + 3 + + + + + + + Sash Container + true + + Default + + 800 + 0.22 + 0 + + 1 + true + + + + + 0 + + 0 + + + true + + true + e7948:13631faf1e5:-7e3f + + 332 + Panel 1 + + true + true + false + + true + true + + + + + + + true + Grouping Container + + Default + + 175 + 0 + + false + 1 + + + + 0 + + 0 + + + false + true + e7948:13631faf1e5:-7abd + + 43 + + Action Button_2 + false + + true + true + false + + loc://$(DID)_OPIFile + + + + + + + Action Button + true + $(actions) + false + + Default + + 157 + 0 + 0 + + + + false + 1 + + + + 258 + + + $(pv_name) + 4_5_Table.opi + 10 + + Open 4_5_Table.opi + + + $(actions) + 10 + + + false + true + e7948:13631faf1e5:-79b8 + + 46 + + Action Button_3 + false + + true + true + false + + loc://$(DID)_OPIFile + + + + + + + Action Button + true + $(actions) + false + + Default + + 157 + 0 + 0 + + + + false + 1 + + + + 203 + + + $(pv_name) + 2_4_Tank_Thermo.opi + 10 + + Open 2_4_Tank_Thermo.opi + + + $(actions) + 10 + + + false + true + e7948:13631faf1e5:-7acb + + 43 + + Action Button + false + + true + true + false + + loc://$(DID)_OPIFile + + + + + + + Action Button + true + $(actions) + false + + Default + + 157 + 0 + 0 + + + + false + 1 + + + + 148 + + + $(pv_name) + 1_4_Arc.opi + 10 + + Open 1_4_Arc.opi + + + $(actions) + 10 + + + false + true + e7948:13631faf1e5:-7ac7 + + 43 + + Action Button_1 + false + + true + true + false + + loc://$(DID)_OPIFile + + + + + + + Action Button + true + $(actions) + false + + Default + + 157 + 0 + 0 + + + + false + 1 + + + + 93 + + + $(pv_name) + 1_3_Label.opi + 10 + + Open 1_3_Label.opi + + + $(actions) + 10 + + + false + true + 970253a:136364d449d:-7a50 + + 43 + + Action Button_4 + false + + true + true + false + + loc://$(DID)_OPIFile + + + + + + + Action Button + true + $(actions) + false + + Default + + 157 + 0 + 0 + + + + false + 1 + + + + 38 + + + $(pv_name) + ../1_1_Start_Up.opi + 10 + + ../1_1_Start_Up.opi + + + $(actions) + 10 + + + + + true + + true + e7948:13631faf1e5:-7e3e + + 332 + Panel 2 + + true + true + false + + true + true + + + + + + + true + Grouping Container + + Default + + 622 + 0 + + false + 1 + + + + 0 + + 177 + + + + true + + true + e7948:13631faf1e5:-7bea + false + + false + 332 + Linking Container + + true + true + false + + + + + + + + + + true + Linking Container + + Default + + 622 + 0 + + + + pvStr0 + + loc://$(DID)_OPIFile + + + 1 + + + + 0 + + 0 + + + + + + + + true + + true + e7948:13631faf1e5:-7e17 + + 162 + Panel 2 + + true + true + false + + true + true + + + + + + + true + Grouping Container + + Default + + 800 + 0 + + false + 1 + + + + 334 + + 0 + + + true + 1 + 553ac269:135b01240d5:-49f8 + false + + 96 + Label_6 + + true + true + false + + true + false + + + + + + + Label + true + Sash Container has two containers seprated by a sash that you can drag the sash to move it. +You can create multi-sash container by embedding sash container inside another sash container. +Tip: Right click widget and choose "Fill Parent Container" can help to resize a widget to fill its parent container. + + + + 602 + 0 + + 1 + + + + 1 + + 13 + true + + 14 + + + + true + + true + -5ac5bc86:136367ce0a7:-7cb0 + + 44 + widgets/SashContainer.html + + false + false + false + + true + false + + + + + + + true + Grouping Container + + Default + + 171 + 0 + + true + 1 + + + + 25 + + + ../scripts/openHelp.js + + false + Open Help + + + 615 + + + true + 1 + 553ac269:135b01240d5:-49df + false + + 22 + Label_28 + + true + true + false + + true + false + + + + + + + Label + true + See Online Help + + + + 124 + 0 + + 1 + + + + 1 + + 11 + true + + 37 + + + false + true + 20 + true + 0.0 + 553ac269:135b01240d5:-49de + 0.0 + + 0 + 1 + true + Polyline + false + 255 + + true + true + true + + + + + + false + + + + + + + + Polyline + true + false + + Default + + 110 + 0 + 0 + + + 1 + 1 + true + + + + + 32 + $(pv_name) +$(pv_value) + 45 + + + 0 + 0 + true + 553ac269:135b01240d5:-49dd + true + + 44 + Image + true + + true + true + false + + + + + + + + Image + true + + Default + + 38 + false + false + + + 1.0 + 0.0 + + + 0.0 + 1.0 + + + 0 + 0 + + false + 0 + 0 + 1 + ../pictures/onlineHelp.gif + + + + + 0 + + 7 + + + + false + true + 66d1507f:138820a85e5:-79e6 + + 38 + + Action Button_3 + false + + true + true + false + + + + + + + + + Action Button + true + Go Home + false + + Default + + 97 + 0 + 0 + ../pictures/home-16x16.png + + + false + 1 + + + + 112 + + + ../scripts/goHome.js + + false + + + + $(pv_name) +$(pv_value) + 14 + + + false + true + e7948:13631faf1e5:-7751 + + 33 + + Action Button_1 + false + + true + true + false + + + + + + + + + Action Button + true + Next + false + + + + 87 + 0 + 0 + + + + false + 1 + + + + 117 + + + 4_6_2_SashContainer.opi + + true + + 1 + + + + $(pv_name) +$(pv_value) + 674 + + + + + + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/4_6_2_SashContainer.opi b/core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/4_6_2_SashContainer.opi new file mode 100644 index 000000000..8e34a0740 --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/4_6_2_SashContainer.opi @@ -0,0 +1,913 @@ + + + false + + true + + 553ac269:135b01240d5:-49f9 + 3.2.0.qualifier + + false + 600 + Sash Container + true + false + + + + + + + Display + true + 800 + + true + 4 + + true + 400 + 300 + + + -1 + -1 + + 0 + + true + + true + true + true + -1ba7f91e:1363666d19c:-78d2 + + 600 + Sash Container + + true + true + false + + true + 3 + + + + + + + Sash Container + true + + Default + + 800 + 0.2475 + 0 + + 1 + true + + + + + 0 + + 0 + + + true + + true + -1ba7f91e:1363666d19c:-78d1 + + 600 + Panel 1 + + true + true + false + + true + true + + + + + + + true + Grouping Container + + Default + + 197 + 0 + + false + 1 + + + + 0 + + 0 + + + + true + + true + -1ba7f91e:1363666d19c:-78ab + + 600 + Grouping Container + + true + true + false + + true + true + + + + + + + true + Grouping Container + + Default + + 197 + 14 + + false + 0 + + + + 0 + + 0 + + + false + true + 66d1507f:138820a85e5:-79c6 + + 38 + + Action Button_3 + false + + true + true + false + + + + + + + + + Action Button + true + Go Home + false + + Default + + 116 + 0 + 0 + ../pictures/home-16x16.png + + + false + 1 + + + + 288 + + + ../scripts/goHome.js + + false + + + + $(pv_name) +$(pv_value) + 31 + + + false + true + 66d1507f:138820a85e5:-7114 + + 38 + + Action Button_1 + false + + true + true + false + + + + + + + + + Action Button + true + Back + false + + Default + + 116 + 0 + 0 + + + + false + 1 + + + + 223 + + + 4_6_1_SashContainer.opi + + true + + 1 + + + + $(pv_name) +$(pv_value) + 31 + + + + + + true + + true + -1ba7f91e:1363666d19c:-78d0 + + 600 + Panel 2 + + true + true + false + + true + true + + + + + + + true + Grouping Container + + Default + + 600 + 0 + + false + 1 + + + + 0 + + 199 + + + 0 + + true + + true + true + true + -1ba7f91e:1363666d19c:-7879 + + 600 + Sash Container + + true + true + false + + true + 3 + + + + + + + Sash Container + true + + Default + + 600 + 0.20166666666666666 + 0 + + 1 + false + + + + + 0 + + 0 + + + true + + true + -1ba7f91e:1363666d19c:-7878 + + 120 + Panel 1 + + true + true + false + + true + true + + + + + + + true + Grouping Container + + Default + + 600 + 0 + + false + 1 + + + + 0 + + 0 + + + + true + + true + -1ba7f91e:1363666d19c:-7861 + + 120 + Grouping Container + + true + true + false + + true + true + + + + + + + true + Grouping Container + + Default + + 600 + 14 + + false + 0 + + + + 0 + + 0 + + + + true + + true + -5ac5bc86:136367ce0a7:-74b5 + + 87 + Grouping Container + + true + false + true + + false + false + + + + + + + true + Grouping Container + + Default + + 518 + 0 + + true + 1 + + + + 8 + + 34 + + + true + 1 + 553ac269:135b01240d5:-49f7 + false + + 66 + Label_8 + + true + true + false + + true + false + + + + + + + Label + true + Sash Container + + + + 206 + 0 + + 1 + + + + 1 + + 9 + true + + 0 + + + true + 1 + 553ac269:135b01240d5:-49f6 + false + + 41 + Label_6 + + true + true + false + + true + false + + + + + + + Label + true + Examples + + + + 271 + 0 + + 1 + + + + 1 + + 46 + true + + 235 + + + true + 1 + 553ac269:135b01240d5:-49f5 + false + + 50 + Label_9 + + true + true + false + + true + false + + + + + + + Label + true + Best OPI Yet (BOY) + + + + 295 + 0 + + 1 + + + + 1 + + 0 + true + + 223 + + + + + + + true + + true + -1ba7f91e:1363666d19c:-7877 + + 477 + Panel 2 + + true + true + false + + true + true + + + + + + + true + Grouping Container + + Default + + 600 + 0 + + false + 1 + + + + 122 + + 0 + + + + true + + true + -1ba7f91e:1363666d19c:-7867 + + 477 + Grouping Container + + true + true + false + + true + true + + + + + + + true + Grouping Container + + Default + + 600 + 14 + + false + 0 + + + + 0 + + 0 + + + + true + + true + 553ac269:135b01240d5:-49e0 + + 44 + widgets/SashContainer.html + + false + false + false + + true + false + + + + + + + true + Grouping Container + + Default + + 185 + 0 + + true + 1 + + + + 263 + + + ../scripts/openHelp.js + + false + Open Help + + + 183 + + + true + 1 + 553ac269:135b01240d5:-49df + false + + 22 + Label_28 + + true + true + false + + true + false + + + + + + + Label + true + See Online Help + + + + 135 + 0 + + 1 + + + + 1 + + 11 + true + + 41 + + + false + true + 20 + true + 0.0 + 553ac269:135b01240d5:-49de + 0.0 + + 0 + 1 + true + Polyline + false + 255 + + true + true + true + + + + + + false + + + + + + + + Polyline + true + false + + Default + + 120 + 0 + 0 + + + 1 + 1 + true + + + + + 32 + $(pv_name) +$(pv_value) + 49 + + + 0 + 0 + true + 553ac269:135b01240d5:-49dd + true + + 44 + Image + true + + true + true + false + + + + + + + + Image + true + + Default + + 42 + false + false + + + 1.0 + 0.0 + + + 0.0 + 1.0 + + + 0 + 0 + + false + 0 + 0 + 1 + ../pictures/onlineHelp.gif + + + + + 0 + + 8 + + + + true + 1 + 553ac269:135b01240d5:-49f8 + false + + 155 + Label_6 + + true + true + false + + true + false + + + + + + + Label + true + Embedding grouping containers with Round Rectangle Background border in sash container can mimic a modern round rectangle sash container. + + + + 493 + 0 + + 1 + + + + 1 + + 86 + true + + 47 + + + + + + + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/4_6_Array.opi b/core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/4_6_Array.opi new file mode 100644 index 000000000..a91a10fe5 --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/4_6_Array.opi @@ -0,0 +1,1290 @@ + + + false + + true + + -7830e430:13558e7cee8:-7e10 + 3.2.6.qualifier + + false + 600 + Array + true + false + + + + + + + Display + true + 800 + + true + 4 + + true + -1 + -1 + + + -1 + -1 + + true + 1 + -7830e430:13558e7cee8:-7e0f + false + + 48 + Label_6 + + true + true + false + + false + false + + + + + + + Label + true + Array widget is a container widget that could contain an array of other widgets. It can be used to display/write a PV with array data, for example, waveform or compress PV. + + + + 745 + 1 + + 1 + + + + 0 + + 105 + true + + 17 + + + true + 1 + -7830e430:13558e7cee8:-7e0c + false + + 86 + Label_8 + + true + true + false + + false + false + + + + + + + Label + true + Array + + + + 295 + 0 + + 1 + + + + 1 + + 6 + true + + 17 + + + true + 1 + -7830e430:13558e7cee8:-7e0b + false + + 43 + Label_6 + + true + true + false + + false + false + + + + + + + Label + true + Examples + + + + 451 + 0 + + 1 + + + + 1 + + 49 + true + + 311 + + + true + 1 + -7830e430:13558e7cee8:-7e0a + false + + 44 + Label_9 + + true + true + false + + false + false + + + + + + + Label + true + Best OPI Yet (BOY) + + + + 451 + 0 + + 1 + + + + 1 + + 6 + true + + 311 + + + true + 1 + -7830e430:13558e7cee8:-7e09 + false + + 16 + Label_5 + + true + true + false + + false + false + + + + + + + Label + true + Introduction + + + + 76 + 0 + + 1 + + + + 1 + + 91 + true + $(pv_name) +$(pv_value) + 332 + + + + true + + true + -7830e430:13558e7cee8:-7e04 + + 44 + widgets/Array.html + + true + true + false + + true + false + + + + + + + true + Grouping Container + + Default + + 185 + 0 + + false + true + 1 + + + + 553 + + + ../scripts/openHelp.js + + false + Open Help + + + 612 + + + true + 1 + -7830e430:13558e7cee8:-7e03 + false + + 22 + Label_28 + + true + true + false + + true + false + + + + + + + Label + true + See Online Help + + + + 135 + 0 + + 1 + + + + 1 + + 11 + true + + 41 + + + false + true + 20 + true + 0.0 + -7830e430:13558e7cee8:-7e02 + 0.0 + + 0 + 1 + true + Polyline + false + 255 + + true + true + false + + + + + + false + + + + + + + + Polyline + true + false + + Default + + 120 + 0 + 0 + + + 1 + 1 + true + + + + + 32 + $(pv_name) +$(pv_value) + 49 + + + 0 + 0 + true + -7830e430:13558e7cee8:-7e01 + true + + 44 + Image + true + + true + true + false + + + + + + + + Image + true + + Default + + 42 + false + false + + + 1.0 + 0.0 + + + 0.0 + 1.0 + + + 0 + 0 + + false + 0 + 0 + 1 + ../pictures/onlineHelp.gif + + + + + 0 + + 8 + + + + true + 1 + -151e1ee5:1377513bee9:-771e + false + + 33 + Label_14 + + true + true + false + + false + false + + + + + + + Label + true + Example 1: Display array PV + + + + 187 + 1 + + 1 + + + + 0 + + 162 + true + + 17 + + + true + + true + + true + -151e1ee5:1377513bee9:-76c2 + + 166 + true + Array_1 + false + + true + true + false + + loc://$(DID)_array(10,15,20,25,30,35,40,45,50,55,60,70,80,90,95) + true + + + + + + + Array + true + false + + Default + + 113 + 0 + + 40 + + 1 + false + + + + + 227 + $(pv_name) +$(pv_value) + 28 + 8 + + false + true + 1 + false + -28085a81:1375c539555:-7fcc + false + 0.0 + + 20 + Text Update + false + + false + false + false + + 0 + false + false + + + + + + + + Text Update + true + + false + 0 + + Default + + 51 + 1 + + + 1 + + + + 0 + + 0 + false + $(pv_name) +$(pv_value) + 0 + + + + true + 1 + -151e1ee5:1377513bee9:-76a4 + false + + 48 + Label_15 + + true + true + false + + false + false + + + + + + + Label + true + Example 2: Write PV directly from array widget on change of each element + + + + 242 + 1 + + 1 + + + + 0 + + 162 + true + + 223 + + + true + 1 + -151e1ee5:1377513bee9:-769c + false + + 66 + Label_16 + + true + true + false + + false + false + + + + + + + Label + true + Example 3: Write PV all at once from script. +Change element values and press Write button to write to the PV + + + + 258 + 1 + + 1 + + + + 0 + + 162 + true + + 539 + + + true + + true + + true + 75eddb9a:13775ac3f08:-7cac + + 175 + true + Array + false + + true + true + false + + loc://$(DID)_array(10,15,20,25,30,35,40,45,50,55,60,70,80,90,95) + true + + + + + + + Array + true + false + + Default + + 366 + 0 + + 40 + + 1 + true + + + + + 227 + $(pv_name) +$(pv_value) + 165 + 8 + + + true + + true + 3155cced:138ed67caf5:-7eae + + 153 + Grouping Container + + false + false + false + + false + false + + + + + + + true + Grouping Container + + Default + + 40 + 0 + + false + true + 1 + + + + 23 + + 28 + + + 20.0 + false + true + + + + + + + true + + + + + 130 + 50 + false + 10.0 + + + + true + Scaled Slider + true + + Default + + 33 + true + 0 + true + + false + true + 100.0 + 1 + false + false + -100.0 + 75eddb9a:13775ac3f08:-7c4f + true + + false + + + + Scaled Slider + + true + true + false + + + + + + + + + 1.0 + false + 80.0 + + Default + + 90.0 + + + + + + + + + true + true + + + + 10.0 + 0 + + 3 + + + + false + true + false + false + + 21 + false + false + + + + true + Text Input + + + Default + + 40 + 3 + + 1.7976931348623157E308 + 1 + -1.7976931348623157E308 + true + 3155cced:138ed67caf5:-7798 + 0.0 + + Text Update + 0 + + true + true + false + + 0 + false + + + + + 0 + false + + + false + 1 + + + + 129 + + 0 + + + + + + true + + true + + true + 75eddb9a:13775ac3f08:-7430 + + + updateArrayWidget + + loc://$(DID)_array(10,15,20,25,30,35,40,45,50,55,60,70,80,90,95) + + + 181 + true + 0 + textInputArray + false + + true + true + false + + + true + + + + + + + Array + true + 10 + false + + Default + + 162 + 0 + + 40 + + 1 + false + + + + + 236 + $(pv_name) +$(pv_value) + 554 + 7 + + false + false + true + false + true + false + + 25 + false + false + true + + + + true + Text + + + Default + + 100 + 0 + + 1.7976931348623157E308 + 1 + -1.7976931348623157E308 + 2 + true + 3155cced:138ed67caf5:-796b + + Text + 0 + + false + false + false + + + + + + 0 + false + + + false + 0 + + + + 97 + + -22 + $(pv_name) +$(pv_value) + + + + true + + true + + true + 4641df1b:1377658bfc8:-7ea7 + + 127 + false + Array_6 + false + + true + true + false + + loc://$(DID)_array(10,15,20,25,30,35,40,45,50,55,60,70,80,90,95) + true + + + + + + + Array + true + false + + Default + + 561 + 0 + + 60 + + 1 + true + + + + + 427 + $(pv_name) +$(pv_value) + 159 + 37 + + 20.0 + false + true + + + + + + + false + true + + 105 + 50 + false + + + + true + Progress Bar + true + + Default + + 15 + true + 15 + true + + false + true + 100.0 + 1 + false + false + -100.0 + -b1d22ee:13776377550:-7e0c + true + + false + + + + Progress Bar + + false + false + false + + + + + + true + + + + false + false + 80.0 + + Default + + 90.0 + 0.0 + + + + + + + + + true + true + + + + 10.0 + 0 + + 0 + $(pv_name) +$(pv_value) + false + + + + true + 1 + 5d747299:1377a3765ef:-7f16 + false + + 94 + Label_17 + + true + true + false + + false + false + + + + + + + Label + true + Example 4: Use Array widget to draw a part of a wavefrom as graph + + + + 113 + 1 + + 1 + + + + 0 + + 433 + true + + 28 + + + false + true + 66d1507f:138820a85e5:-7963 + + 38 + + Action Button_3 + false + + true + true + false + + + + + + + + + Button + true + Go Home + false + + Default + + 97 + 0 + 0 + ../pictures/home-16x16.png + + + false + 1 + + + + 556 + + + ../scripts/goHome.js + + false + + + + $(pv_name) +$(pv_value) + 17 + + + false + true + 3155cced:138ed67caf5:-7636 + + 30 + + Action Button_1 + false + + true + true + false + + loc://$(DID)_array(10,15,20,25,30,35,40,45,50,55,60,70,80,90,95) + + + + + + + Button + true + Write + false + + Default + + 63 + 0 + 0 + + + + false + 1 + + + + 236 + + + + + true + + + + $(pv_name) +$(pv_value) + 723 + + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/5_1_GridLayout.opi b/core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/5_1_GridLayout.opi new file mode 100644 index 000000000..71a6f6c6d --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/5_1_GridLayout.opi @@ -0,0 +1,894 @@ + + + false + + true + + 66d1507f:138820a85e5:-7960 + 3.1.0.qualifier + + false + 600 + Tabbed Container + true + false + + + + + + + Display + true + 800 + + true + 4 + + true + -1 + -1 + + + -1 + -1 + + true + 1 + 66d1507f:138820a85e5:-795f + false + + 108 + Label_6 + + true + true + false + + false + false + + + + + + + Label + true + A virtual widget (widget with no figure at runtime) that helps to automatically layout widgets in a container in grids. + +In edit mode, right click the widget and select Layout Widgets will layout widgets in the same container in grids. At runtime, it will automatically layout widgets during OPI startup. + + + + 745 + 1 + + 1 + + + + 0 + + 113 + true + + 17 + + + true + 1 + 66d1507f:138820a85e5:-795e + false + + 86 + Label_8 + + true + true + false + + false + false + + + + + + + Label + true + Grid Layout + + + + 295 + 0 + + 1 + + + + 1 + + 6 + true + + 17 + + + true + 1 + 66d1507f:138820a85e5:-795d + false + + 43 + Label_6 + + true + true + false + + false + false + + + + + + + Label + true + Examples + + + + 451 + 0 + + 1 + + + + 1 + + 49 + true + + 311 + + + true + 1 + 66d1507f:138820a85e5:-795c + false + + 44 + Label_9 + + true + true + false + + false + false + + + + + + + Label + true + Best OPI Yet (BOY) + + + + 451 + 0 + + 1 + + + + 1 + + 6 + true + + 311 + + + true + 1 + 66d1507f:138820a85e5:-795b + false + + 16 + Label_5 + + true + true + false + + false + false + + + + + + + Label + true + Introduction + + + + 150 + 0 + + 1 + + + + 1 + + 107 + true + $(pv_name) +$(pv_value) + 341 + + + + true + + true + 66d1507f:138820a85e5:-7959 + + 44 + widgets/GridLayout.html + + false + false + false + + true + false + + + + + + + Grouping Container + true + + Default + + 185 + 0 + + true + 1 + + + + + + ../scripts/openHelp.js + + false + Open Help + + + 546 + + 577 + + true + 1 + 66d1507f:138820a85e5:-7958 + false + + 22 + Label_28 + + true + true + false + + true + false + + + + + + + Label + true + See Online Help + + + + 135 + 0 + + 1 + + + + 1 + + 11 + true + + 41 + + + false + true + 20 + true + 0.0 + 66d1507f:138820a85e5:-7957 + 0.0 + + 0 + 1 + true + Polyline + false + 255 + + true + true + true + + + + + + false + + + + + + + + Polyline + true + false + + Default + + 120 + 0 + 0 + + + 1 + 1 + true + + + + + 32 + $(pv_name) +$(pv_value) + 49 + + + 0 + 0 + true + 66d1507f:138820a85e5:-7956 + true + + 44 + Image + true + + true + true + false + + + + + + + + Image + true + + Default + + 42 + false + 0 + 0 + + 0 + 1 + ../pictures/onlineHelp.gif + + + + + 0 + + 8 + + + + + true + + true + 66d1507f:138820a85e5:-7955 + + 237 + Grouping Container + + true + true + false + + false + true + + + + + + + Grouping Container + true + + Default + + 745 + 3 + + false + 1 + + + + + 232 + + 17 + + true + 1 + 66d1507f:138820a85e5:-7954 + false + + 20 + Label + + true + true + false + + false + false + + + + + + + Label + true + Widget 0 + + Default + + 94 + 1 + + 1 + + + + 1 + + 19 + true + + 88 + + + true + 1 + 66d1507f:138820a85e5:-7953 + false + + 20 + Label_1 + + true + true + false + + false + false + + + + + + + Label + true + Widget1 + + Default + + 94 + 1 + + 1 + + + + 1 + + 101 + true + + 115 + + + true + 1 + 66d1507f:138820a85e5:-7952 + false + + 20 + Label_2 + + true + true + false + + false + false + + + + + + + Label + true + Widget 2 + + Default + + 94 + 1 + + 1 + + + + 1 + + 38 + true + + 438 + + + true + 1 + 66d1507f:138820a85e5:-7951 + false + + 20 + Label_3 + + true + true + false + + false + false + + + + + + + Label + true + Widget 3 + + Default + + 145 + 1 + + 1 + + + + 1 + + 62 + true + + 7 + + + true + 1 + 66d1507f:138820a85e5:-7950 + false + + 20 + Label_4 + + true + true + false + + false + false + + + + + + + Label + true + Widget 4 + + Default + + 94 + 1 + + 1 + + + + 1 + + 112 + true + + 312 + + + true + 1 + 66d1507f:138820a85e5:-794f + false + + 20 + Label_5 + + true + true + false + + false + false + + + + + + + Label + true + Widget 5 + + Default + + 94 + 1 + + 1 + + + + 1 + + 19 + true + + 587 + + + true + 1 + 66d1507f:138820a85e5:-794e + false + + 20 + Label_6 + + true + true + false + + false + false + + + + + + + Label + true + Widget 6 + + Default + + 94 + 1 + + 1 + + + + 1 + + 139 + true + + 22 + + + true + 1 + 66d1507f:138820a85e5:-794d + false + + 20 + Label_7 + + true + true + false + + false + false + + + + + + + Label + true + Widget 7 + + Default + + 169 + 1 + + 1 + + + + 1 + + 189 + true + + 181 + + + true + 1 + 66d1507f:138820a85e5:-794c + false + + 20 + Label_8 + + true + true + false + + false + false + + + + + + + Label + true + Widget 8 + + Default + + 94 + 1 + + 1 + + + + 1 + + 139 + true + + 485 + + + 66d1507f:138820a85e5:-794b + 3 + Grid Layout + true + Grid Layout + 2 + + + + false + true + 66d1507f:138820a85e5:-793e + + 38 + Action Button_3 + false + + true + true + false + + + + + + Button + true + Go Home + + Default + + 97 + 0 + 0 + ../pictures/home-16x16.png + + + false + 1 + + + + 549 + + + ../scripts/goHome.js + + false + + + + $(pv_name) +$(pv_value) + 17 + + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/DynamicSymbols/DyanmicSymbol.opi b/core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/DynamicSymbols/DyanmicSymbol.opi new file mode 100644 index 000000000..32f98ccde --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/DynamicSymbols/DyanmicSymbol.opi @@ -0,0 +1,482 @@ + + + Display + + true + + 800 + + + true + 600 + true + Display + 6 + true + true + -1 + + + + + + + + -1 + + true + Grouping Container + + true + + true + 199 + 0 + + false + + 37 + 1 + 0 + + + + false + true + + 12 + + + + + + + 6 + + + false + true + 0.0 + + + + 0.0 + + 25 + true + false + Polygon + + + + + + false + + + + + + + + Polygon + true + false + 0 + 25 + 0 + + 1 + 0 + true + + + + 6 + + $(pv_name) +$(pv_value) + 6 + + + + true + Grouping Container + + true + + true + 199 + 0 + + false + + 37 + 1 + 1 + + + + false + true + + 72 + + + + + + + 6 + + + false + true + 0.0 + + + + 0.0 + + 25 + true + false + Polygon + + + + + + false + + + + + + + + Polygon + true + false + 0 + 25 + 0 + + 1 + 0 + true + + + + 6 + + $(pv_name) +$(pv_value) + 36 + + + + true + Grouping Container + + true + + true + 199 + 0 + + false + + 37 + 1 + 2 + + + + false + true + + 126 + + + + + + + 6 + + + false + true + 0.0 + + + + 0.0 + + 25 + true + false + Polygon + + + + + + false + + + + + + + + Polygon + true + false + 0 + 25 + 0 + + 1 + 0 + true + + + + 6 + + $(pv_name) +$(pv_value) + 66 + + + + true + Grouping Container + + true + + true + 199 + 0 + + false + + 37 + 1 + 3 + + + + false + true + + 180 + + + + + + + 6 + + + false + true + 0.0 + + + + 0.0 + + 25 + true + false + Polygon + + + + + + false + + + + + + + + Polygon + true + false + 0 + 25 + 0 + + 1 + 0 + true + + + + 6 + + $(pv_name) +$(pv_value) + 96 + + + + true + Grouping Container + + true + + true + 199 + 0 + + false + + 37 + 1 + 4 + + + + false + true + + 228 + + + + + + + 6 + + + false + true + 0.0 + + + + 0.0 + + 25 + true + false + Polygon + + + + + + false + + + + + + + + Polygon + true + false + 0 + 25 + 0 + + 1 + 0 + true + + + + 6 + + $(pv_name) +$(pv_value) + 126 + + + + true + Grouping Container + + true + + true + 199 + 0 + + false + + 37 + 1 + 5 + + + + false + true + + 276 + + + + + + + 6 + + + false + true + 0.0 + + + + 0.0 + + 25 + true + false + Polygon + + + + + + false + + + + + + + + Polygon + true + false + 0 + 25 + 0 + + 1 + 0 + true + + + + 6 + + $(pv_name) +$(pv_value) + 162 + + + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/DynamicSymbols/macro.opi b/core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/DynamicSymbols/macro.opi new file mode 100644 index 000000000..98b6fa9b7 --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/DynamicSymbols/macro.opi @@ -0,0 +1,101 @@ + + + Display + + true + + 200 + + + true + 50 + true + Display + 6 + true + false + 0 + + + + + + + + 0 + + Label + true + My name is $(name) + true + + + + 1 + 150 + 0 + false + + + 20 + 1 + Label + + + + 1 + false + 5 + + + 20 + + + + + + + + + true + true + 1 + true + false + + 20 + false + Text Update + 0 + true + false + $(inputPV) + + + + + + + Text Update + true + ###### + false + 0 + + + + 100 + 0 + + 1 + + + + 1 + 24 + + $(pv_name) +$(pv_value) + 55 + + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/SymbolWidgets.opi b/core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/SymbolWidgets.opi new file mode 100644 index 000000000..23a3ab15d --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/SymbolWidgets.opi @@ -0,0 +1,2294 @@ + + + false + + true + + -14a921ec:134b2495e46:-7f53 + 3.1.4.qualifier + + true + 768 + + true + false + + + + + + + Display + true + 952 + + true + 5 + + true + -1 + -1 + + + 0 + 0 + + + true + + true + -71cbd6b4:136f458e571:-7dc5 + + 277 + Symbol Monitors SVG + + true + true + false + + true + false + + + + + + + true + Grouping Container + + Default + + 301 + 14 + + false + 1 + + + + 111 + + 10 + + + true + 1 + 4982c4ba:136d02e386e:-7fd2 + true + + 19 + Label Template + + true + true + false + + true + false + + + + + + + Label + false + Symbol Monitors - SVG format + + Header 3 + + 276 + 0 + + 1 + + + + 0 + + 4 + true + + 18 + + + true + true + false + + 40 + 0 + true + false + OFF + + + + true + Boolean Symbol Monitor + + Default + + + + 1.0 + 0.0 + + + 0.0 + 1.0 + + + 40 + 0 + false + + 0 + 0 + ON + 1 + ../pictures/SymbolLibrary/SVG/PL General.svg + 0 + 0 + 4982c4ba:136d02e386e:-7fa0 + 3 + + + + true + Boolean Symbol Monitor + + true + true + false + + + + + sim://ramp(0,10,1,1) + + + + false + false + 0 + + 0 + + + + 35 + + 18 + $(pv_name) +$(pv_value) + + + true + 1 + 4982c4ba:136d02e386e:-7f9d + false + + 64 + Label Template_1 + + true + true + false + + true + false + + + + + + + Label + false + Boolean Symbol Monitor: +Single Image animated in ON/OFF color + + Default + + 221 + 0 + + 1 + + + + 0 + + 27 + true + + 70 + + + true + true + false + + 75 + 0 + true + false + OFF + + + + true + Boolean Symbol Monitor + + Default + + + + 1.0 + 0.0 + + + 0.0 + 1.0 + + + 40 + 0 + false + + 0 + 0 + ON + 1 + ../pictures/SymbolLibrary/SVG/JF Fuse Switch Off.svg + 0 + 0 + 4982c4ba:136d02e386e:-7fa0 + 5 + + + + true + Boolean Symbol Monitor + + true + true + false + + + + + sim://ramp(0,10,1,1) + + + + false + false + 0 + + 0 + + + + 90 + + 18 + $(pv_name) +$(pv_value) + + + true + 1 + 4982c4ba:136d02e386e:-7f9d + false + + 62 + Label Template_1 + + true + true + false + + true + false + + + + + + + Label + false + Boolean Symbol Monitor: +ON/OFF Image Symbol animated in ON/OFF color + + Default + + 221 + 0 + + 1 + + + + 0 + + 107 + true + + 70 + + + true + 1 + 4982c4ba:136d02e386e:-7f9d + false + + 63 + Label Template_1 + + true + true + false + + true + false + + + + + + + Label + false + Multistate Symbol Monitor: +Multi Image Symbol animated in ON/OFF color + + Default + + 221 + 0 + + 1 + + + + 0 + + 197 + true + + 70 + + + true + 0 + 0 + true + 22a37a1d:1387c6b6909:-7663 + false + 5 + + + + + 75 + Multistate Symbol Monitor_1 + false + true + false + + true + true + false + + + + + EpicsDemoMbbo + + + + + + + Multistate Symbol Monitor + true + false + + Default + + 41 + false + + + 1.0 + 0.0 + + + 0.0 + 1.0 + + + 0 + 0 + + + false + 0 + 0 + + 1 + ../pictures/SymbolLibrary/SVG/SM 4-Positions Switch 2.svg + + + + true + + 185 + $(pv_name) +$(pv_value) + 17 + + + + + true + + true + -330a7b34:1387ba5f1f6:-7809 + + 277 + Symbol Controls SVG + + true + true + false + + true + false + + + + + + + true + Grouping Container + + Default + + 301 + 14 + + false + 1 + + + + 111 + + 326 + + + true + 1 + 4982c4ba:136d02e386e:-7fd2 + true + + 19 + Label Template + + true + true + false + + true + false + + + + + + + Label + false + Symbol Controls - SVG format + + Header 3 + + 272 + 0 + + 1 + + + + 0 + + 4 + true + + 30 + + + true + 1 + 4982c4ba:136d02e386e:-7f9d + false + + 62 + Label Template_1 + + true + true + false + + true + false + + + + + + + Label + false + Boolean Symbol Control: +Single Image Symbol animated in ON/OFF color + + Default + + 221 + 0 + + 1 + + + + 0 + + 35 + true + + 77 + + + true + true + + false + + 62 + 0 + true + false + OFF + + + + 0 + true + Boolean Symbol Control + + Default + + 49 + + + 1.0 + 0.0 + + + 0.0 + 1.0 + + + 0 + 0 + + false + 0 + 0 + ON + 2 + ../pictures/SymbolLibrary/SVG/AT Single-Acting Diaphragm Actuator.svg + 0 + 0 + -330a7b34:1387ba5f1f6:-775a + 3 + + + + Boolean Symbol Control + true + + true + true + false + + + + + loc://bool + + + + false + false + 0 + Are your sure you want to do this? + + 0 + true + 0 + + + + 24 + + 13 + $(pv_name) +$(pv_value) + + + true + true + + false + + 75 + 0 + true + false + OFF + + + + 0 + true + Boolean Symbol Control + + Default + + 40 + + + 1.0 + 0.0 + + + 0.0 + 1.0 + + + 0 + 0 + + false + 0 + 0 + ON + 2 + ../pictures/SymbolLibrary/SVG/Closing Push-Button Off.svg + 0 + 0 + -330a7b34:1387ba5f1f6:-76bd + 6 + + + + Boolean Symbol Control + true + + true + true + false + + + + + loc://bool + + + + false + false + 0 + Are your sure you want to do this? + + 1 + true + 0 + + + + 96 + + 18 + $(pv_name) +$(pv_value) + + + true + true + + false + + 75 + true + false + + + + true + Multistate Symbol Control + + Default + + + + 1.0 + 0.0 + + + 0.0 + 1.0 + + + 41 + 0 + 0 + false + + 0 + + 2 + ../pictures/SymbolLibrary/SVG/SM 4-Positions Switch 2.svg + true + 0 + 0 + -330a7b34:1387ba5f1f6:-761c + 0 + + + + true + Multistate Symbol Control + + true + true + false + + + + + EpicsDemoMbbo + + + + false + false + 0 + Are your sure you want to do this? + + false + 0 + + + + 185 + + 18 + $(pv_name) +$(pv_value) + + + true + 1 + 5ec8b324:13880ba2d91:-79f4 + false + + 62 + Label Template_3 + + true + true + false + + true + false + + + + + + + Label + false + Boolean Symbol Control: +ON/OFF Image Symbol animated in ON/OFF color + + Default + + 221 + 0 + + 1 + + + + 0 + + 103 + true + + 77 + + + true + 1 + 5ec8b324:13880ba2d91:-79f0 + false + + 63 + Label Template_4 + + true + true + false + + true + false + + + + + + + Label + false + Multistate Symbol Control: +Multi Image Symbol animated in ON/OFF color + + Default + + 221 + 0 + + 1 + + + + 0 + + 191 + true + + 77 + + + + + true + + true + 5ec8b324:13880ba2d91:-7975 + + 277 + Symbol Monitors SVG_1 + + true + true + false + + true + false + + + + + + + true + Grouping Container + + Default + + 301 + 14 + + false + 1 + + + + 402 + + 10 + + + true + 1 + 4982c4ba:136d02e386e:-7fd2 + false + + 32 + Label Template + + true + true + false + + true + false + + + + + + + Label + false + Symbol Monitors - PNG format + + Header 3 + + 263 + 0 + + 1 + + + + 1 + + 4 + true + + 17 + + + true + true + true + + 39 + 0 + true + false + OFF + + + + true + Boolean Symbol Monitor + + Default + + + + 1.0 + 0.0 + + + 0.0 + 1.0 + + + 39 + 0 + false + + 0 + 0 + ON + 1 + ../pictures/SymbolLibrary/PNG/PL General.png + 0 + 0 + 4982c4ba:136d02e386e:-7fa0 + 3 + + + + false + Boolean Symbol Monitor + + true + true + false + + + + + sim://ramp(0,10,1,1) + + + + false + false + 0 + + 0 + + + + 35 + + 18 + $(pv_name) +$(pv_value) + + + true + 1 + 4982c4ba:136d02e386e:-7f9d + false + + 64 + Label Template_1 + + true + true + false + + true + false + + + + + + + Label + false + Boolean Symbol Monitor: +Single Image animated in ON/OFF color + + Default + + 221 + 0 + + 1 + + + + 0 + + 27 + true + + 70 + + + true + true + true + + 74 + 0 + true + false + OFF + + + + true + Boolean Symbol Monitor + + Default + + + + 1.0 + 0.0 + + + 0.0 + 1.0 + + + 39 + 0 + false + + 0 + 0 + ON + 1 + ../pictures/SymbolLibrary/PNG/JF Fuse Switch Off.png + 0 + 0 + 4982c4ba:136d02e386e:-7fa0 + 5 + + + + false + Boolean Symbol Monitor + + true + true + false + + + + + sim://ramp(0,10,1,1) + + + + false + false + 0 + + 0 + + + + 90 + + 18 + $(pv_name) +$(pv_value) + + + true + 1 + 4982c4ba:136d02e386e:-7f9d + false + + 62 + Label Template_1 + + true + true + false + + true + false + + + + + + + Label + false + Boolean Symbol Monitor: +ON/OFF Image Symbol animated in ON/OFF color + + Default + + 221 + 0 + + 1 + + + + 0 + + 107 + true + + 70 + + + true + 1 + 4982c4ba:136d02e386e:-7f9d + false + + 63 + Label Template_1 + + true + true + false + + true + false + + + + + + + Label + false + Multistate Symbol Monitor: +Multi Image Symbol animated in ON/OFF color + + Default + + 221 + 0 + + 1 + + + + 0 + + 197 + true + + 70 + + + true + 0 + 0 + true + 22a37a1d:1387c6b6909:-7663 + true + 5 + + + + + 74 + Multistate Symbol Monitor_1 + false + false + false + + true + true + false + + + + + EpicsDemoMbbo + + + + + + + Multistate Symbol Monitor + true + false + + Default + + 40 + false + + + 1.0 + 0.0 + + + 0.0 + 1.0 + + + 0 + 0 + + + false + 0 + 0 + + 1 + ../pictures/SymbolLibrary/PNG/SM 4-Positions Switch 2.png + + + + true + + 185 + $(pv_name) +$(pv_value) + 17 + + + + + true + + true + 5ec8b324:13880ba2d91:-7974 + + 277 + Symbol Controls SVG_1 + + true + true + false + + true + false + + + + + + + true + Grouping Container + + Default + + 301 + 14 + + false + 1 + + + + 402 + + 326 + + + true + 1 + 4982c4ba:136d02e386e:-7fd2 + false + + 32 + Label Template + + true + true + false + + true + false + + + + + + + Label + false + Symbol Controls - PNG format + + Header 3 + + 248 + 0 + + 1 + + + + 1 + + 4 + true + + 25 + + + true + 1 + 4982c4ba:136d02e386e:-7f9d + false + + 62 + Label Template_1 + + true + true + false + + true + false + + + + + + + Label + false + Boolean Symbol Control: +Single Image Symbol animated in ON/OFF color + + Default + + 221 + 0 + + 1 + + + + 0 + + 35 + true + + 77 + + + true + true + + true + + 61 + 0 + true + false + OFF + + + + 0 + true + Boolean Symbol Control + + Default + + 48 + + + 1.0 + 0.0 + + + 0.0 + 1.0 + + + 0 + 0 + + false + 0 + 0 + ON + 2 + ../pictures/SymbolLibrary/PNG/AT Single-Acting Diaphragm Actuator.png + 0 + 0 + -330a7b34:1387ba5f1f6:-775a + 3 + + + + Boolean Symbol Control + false + + true + true + false + + + + + loc://bool + + + + false + false + 0 + Are your sure you want to do this? + + 0 + true + 0 + + + + 24 + + 13 + $(pv_name) +$(pv_value) + + + true + true + + true + + 74 + 0 + true + false + OFF + + + + 0 + true + Boolean Symbol Control + + Default + + 39 + + + 1.0 + 0.0 + + + 0.0 + 1.0 + + + 0 + 0 + + false + 0 + 0 + ON + 2 + ../pictures/SymbolLibrary/PNG/Closing Push-Button Off.png + 0 + 0 + -330a7b34:1387ba5f1f6:-76bd + 6 + + + + Boolean Symbol Control + false + + true + true + false + + + + + loc://bool + + + + false + false + 0 + Are your sure you want to do this? + + 1 + true + 0 + + + + 96 + + 18 + $(pv_name) +$(pv_value) + + + true + true + + true + + 74 + true + false + + + + true + Multistate Symbol Control + + Default + + + + 1.0 + 0.0 + + + 0.0 + 1.0 + + + 40 + 0 + 0 + false + + 0 + + 2 + ../pictures/SymbolLibrary/PNG/SM 4-Positions Switch 2.png + true + 0 + 0 + -330a7b34:1387ba5f1f6:-761c + 0 + + + + false + Multistate Symbol Control + + true + true + false + + + + + EpicsDemoMbbo + + + + false + false + 0 + Are your sure you want to do this? + + false + 0 + + + + 185 + + 18 + $(pv_name) +$(pv_value) + + + true + 1 + 5ec8b324:13880ba2d91:-79f4 + false + + 62 + Label Template_3 + + true + true + false + + true + false + + + + + + + Label + false + Boolean Symbol Control: +ON/OFF Image Symbol animated in ON/OFF color + + Default + + 221 + 0 + + 1 + + + + 0 + + 103 + true + + 77 + + + true + 1 + 5ec8b324:13880ba2d91:-79f0 + false + + 63 + Label Template_4 + + true + true + false + + true + false + + + + + + + Label + false + Multistate Symbol Control: +Multi Image Symbol animated in ON/OFF color + + Default + + 221 + 0 + + 1 + + + + 0 + + 191 + true + + 77 + + + + + true + + true + 5ec8b324:13880ba2d91:-72a4 + + 98 + Grouping Container_3 + + true + true + false + + true + false + + + + + + + true + Grouping Container + + Default + + 934 + 14 + + false + 1 + + + + 5 + + 10 + + + true + 1 + -4499eab:1386c3a53ab:-7fd1 + false + + 86 + Label_8 + + true + true + false + + true + false + + + + + + + Label + true + Boolean Symbol Monitor/Control +MultiState Symbol Monitor/Control + + Header 2 + + 344 + 0 + + 1 + + + + 1 + + 5 + true + + 37 + + + true + 1 + -4499eab:1386c3a53ab:-7fd0 + false + + 43 + Label_6 + + true + true + false + + true + false + + + + + + + Label + true + Examples + + Header 1 + + 451 + 0 + + 1 + + + + 1 + + 48 + true + + 465 + + + true + 1 + -4499eab:1386c3a53ab:-7fcf + false + + 44 + Label_9 + + true + true + false + + true + false + + + + + + + Label + true + Best OPI Yet (BOY) + + Header 1 + + 451 + 0 + + 1 + + + + 1 + + 5 + true + + 474 + + + + + true + + true + 5ec8b324:13880ba2d91:-7227 + + 44 + help + + true + true + true + + true + false + + + + + + + true + Grouping Container + + Default + + 185 + 0 + + true + 1 + + + + 703 + + + ../scripts/openHelp.js + + true + Open Help + + + 759 + + + true + 1 + -4499eab:1386c3a53ab:-7fc8 + false + + 22 + Label_28 + + true + true + false + + true + false + + + + + + + Label + true + See Online Help + + + + 135 + 0 + + 1 + + + + 1 + + 11 + true + + 41 + + + false + true + 20 + true + 0.0 + -4499eab:1386c3a53ab:-7fc7 + 0.0 + + 0 + 1 + true + Polyline + false + 255 + + true + true + true + + + + + + false + + + + + + + + Polyline + true + false + + Default + + 120 + 0 + 0 + + + 1 + 1 + true + + + + + 32 + $(pv_name) +$(pv_value) + 49 + + + 0 + 0 + true + -4499eab:1386c3a53ab:-7fc6 + true + + 44 + Image + true + + true + true + false + + + + + + + + Image + true + + Default + + 42 + false + false + + + 1.0 + 0.0 + + + 0.0 + 1.0 + + + 0 + 0 + + false + 0 + 0 + 1 + ../pictures/onlineHelp.gif + + + + + 0 + + 8 + + + + false + true + 5ec8b324:13880ba2d91:-7226 + + 38 + Action Button + false + + true + true + false + + + + + + Button + true + Go Home + + Default + + 97 + 0 + 0 + ../pictures/home-16x16.png + + + false + 1 + + + + 706 + + + ../scripts/goHome.js + + false + + + + $(pv_name) +$(pv_value) + 10 + + + false + true + true + -1.7976931348623157E308 + 0 + true + true + 5ec8b324:13880ba2d91:-6fcc + false + false + + 277 + Label_1 + false + 0 + + true + true + false + + true + + + + + + + + true + Label + The symbol widgets are provided by ITER. +The widgets can display On/Off states with On/Off color on a single image or on multiple images based on image names. It supports SVG, PNG and GIF format of images. SVG is vector image which can keep the same definition after it is resized. + +ITER also contributed more than 200 SVG and PNG symbol images to BOY, which can be imported to workspace from menu File->Import...->BOY->BOY Symbol Library + 0 + false + + Default + + 301 + 14 + + + + false + 1.7976931348623157E308 + 1 + false + false + 0 + + + + 111 + + true + 643 + + + + false + true + true + -1.7976931348623157E308 + 0 + true + true + 5ec8b324:13880ba2d91:-6faf + false + false + + 277 + Label + false + 0 + + true + true + false + + true + + + + + + + + true + Label + The multistate PV "EpicsDemoMbbo" is a IOC PV like this: + +record(mbbo,"EpicsDemoMbbo") { + field(ZRVL, "0") + field(ONVL, "1") + field(TWVL, "2") + field(THVL, "3") + field(ZRST, "0") + field(ONST, "1") + field(TWST, "2") + field(THST, "3") +} + 0 + false + + Default + + 301 + 14 + + + + false + 1.7976931348623157E308 + 1 + false + false + 0 + + + + 402 + + true + 643 + + + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/images/Off_1.png b/core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/images/Off_1.png new file mode 100644 index 0000000000000000000000000000000000000000..5549b6eac7561a6f2db8f49f838904e3d78e0b81 GIT binary patch literal 3782 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 Sw>dok0000ZXA0HniBf>TSk^uU%B->R5 zpug&G`zrwFSN%C6B<=g&JD$7rXWJ2Rp54bQB1raL0LBQf>)YGgb zbwIA;aJeR&qw%d~U8VdNBzt~){d^w$)XHzQ_e|eN>fb;$T$Je(aIL~N6 z;Pt%ME5|o;_UXudgsSSf)qW#>{q(&!M=Dt zgxGr$gbjn>xut*n^*@fi`Z~_NjClp_>;E!5e>96pc^+%_?X_TNoO}S6`bQI1zc^V>LhR_BOM$%EpQ`{^Q1fJf%6U$di^zyR5`&n@c zNIXS0fBl_pDf}yz@%%ilC!5|1G^d#6$oM$oRCn-HqCfUZ0Cpm3zPGSo3MfE85@FOI z?QGzWkNof|;8ooVNzZGo9`ZR`^>T#tH)sA+(pRf7*5%9xUw({Bgg9PK z(|-NT)SR{LpZn)M(^ZvrkZJ2V#cjLO@7EKU(<<>ftH8g(U|%o#F9e+5{@x;MzW0?B zr047G>xi+}eqV0yV~lguuhE~6)N;HAvU&vHwmTxtecx+ZuAP9r6X!)hM7b{S5RuiP zz)q;0bzR1D1`2+OcdnN4Y5Ngmn9vcOz3g@UtVChHA7`nYKK*f>CcN7b+;>S*9A4rz zP9{00==a)N&dhz^x5~b_63%z?_-~gU@4clj{pI(M18W8%uP6M2?bA63{30fSz5V

    yu9Y2#;*7S=9m@{J5r08P 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 i>cxkDK3ASl;Qs=WeOy9nc{^+X0000uM_i literal 0 HcmV?d00001 diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/images/Off_4.png b/core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/images/Off_4.png new file mode 100644 index 0000000000000000000000000000000000000000..69b0adfa7b2c4748bc06a8b7ffcf0006a13ce1ac GIT binary patch literal 1871 zcmV-V2e9~wP)I~2H!{LybWci$`0$_}@kYu&i_WdM) zUR+!?6GQ^hOfo%usuYE)oW6r;svbiXKmZXrt6YT{BYadkkP&VwL{=q`k+X@oPial} zeOKe0Q-p=Qxa>$*M)_UuzA5{eaKvGoo;&A!o$&+bvI%QSG zbUyy`b3sA$>T|oqJ)ngJ$nECeF2BVfuxXyoIcE~_Z|`MUKJ)>vdpog5|ySB(^()%viGLS zH*el-+eT9nvCN!4RrPp0K6vmTs}O!Z57ZQq^Ej0i!n&+z3+4VIRmvC6jc#jN+)|$I_Ys&v2)cUr7QB@I1psGktkKUS$ zaBZfliy1;pm6VEH?DyW62qHpKnkA};A|Qk?DidYBp`;2`C18wcW&k8Jho`#(SPhz4 zRhe0OG_|E>W(t@dF=j*v7}MYU{L47+F&$YVrmAz!Ih`uX~&)9KWEj}bR--vNk-nX$kHG9s#~s>IzhQ$(t&wT7yyGEr4c4*_pJ ze#p#jT2*t-%zXXtA0r~uKYhB*%xBM@FPeMrG+lJ3C;evIo9Mehu{^{fO z_4O}res=eYB>DPZKe~G$)*QV2>o+S`N$&d|5xw`7PQCZ4l6~Lr$A{z^)OCM*dwYF- zt;(C5o7b;jSJmqu|FxfvK%Pz~RsG?IAGV9b8n-3#y|8OMNs5`xIoF!ow(VowTXK7Q zyMB6cv3cQcns(?J6POY_9uf7*+R1q*UYgT4fl@v;tnR8B6&4R22BLZKNGBXpkT6p&C z+2hBLm$(seI-OeAZ(jXPdS7jMMiEsdB2rj;j)=9^=A0x=lv$WQkTeQJ&h9J}OHAGU z`LnN$_U`Sk6cLe^Uw^mt%Nf2@U3wOQ0*wGnoAc-~w|<#$6A>R%?)D|bm_{L)SqooL zee%`Qi1_^Z^S9r<>TMH|&PJ6*ZEJ1rV?`kVuuvi*?t=nTFuyPm5rJy0MTBWH>x<5< zA6~q884*-nX0Eh2^v&H@%&o9lxUXvKs|5-|?JcXMnUbf|sfa*jPHn1SR+UPjL}j`| z2x5k>_U|e=G6B6qe2jritc`yexK>{7zkBzVSxq$Obf4}{a*gD+ZEIGM)zs3XBF7kS z-@aY&+=qg;CL&h;g`z4%w$@_In-3p8-rOK^h5m}d6))P`7~^m_M8qn$tX@%Jl;KWt zJsD%_)uTUB#7rxEAA8dlF$JQ%iE6F=p_ykKE-&z9)J23@7u$ir#o@4$TvP=d`>FTC z;o{G~*qaZ6$DmLagH1oJSFHyxav{_U}WmBuj zv7c7_o%fw!0ete+OV3c%tE&eD-o1NwzC8ko3jE*a9*lzAKe|Wd3!pq4E}uU8i@P6> z$7MAi|M@wDsv16f?`HP!@&U;}tqpnGwlT&Xb7sDeZQIW0^NKcU77?wraXOpXaX-&F z?@}2wGydu6ixs6{t+UCxR^p3Mck!pH`@S!hNX|LU%-tb0v&vYxnVGB6+6jrWnKw58iQ(ef+{{n1MbsK`I9kc)d002ov JPDHLkV1i8rn0WvI literal 0 HcmV?d00001 diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/images/Off_5.png b/core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/images/Off_5.png new file mode 100644 index 0000000000000000000000000000000000000000..0db40aec0fe9a452b8a259ad4b0ba8f168c4b68f GIT binary patch literal 1529 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 Dz#|2O literal 0 HcmV?d00001 diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/images/On_2.png b/core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/images/On_2.png new file mode 100644 index 0000000000000000000000000000000000000000..22058d55fd082cc213bee646ffa29614fa857661 GIT binary patch literal 2832 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 literal 0 HcmV?d00001 diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/images/On_4.png b/core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/images/On_4.png new file mode 100644 index 0000000000000000000000000000000000000000..4101d0bc9ed6e2b8cc75e22464f116bccd5b8e41 GIT binary patch literal 2036 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 LNkvXXu0mjfpjY!r literal 0 HcmV?d00001 diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/images/Readme.txt b/core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/images/Readme.txt new file mode 100644 index 000000000..e57ef318e --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/images/Readme.txt @@ -0,0 +1,8 @@ +Images in this folder are used for demonstration only. +For credit of original authors, here are the original links: + +http://dribbble.com/shots/299416-Simple-Switch?list=searches&tag=switch +http://dribbble.com/shots/585217-On-Off-Settings-Switch?list=searches&tag=switch +http://dribbble.com/shots/145553-Switches?list=searches&tag=switch?list=searches&tag=switch +http://dribbble.com/shots/419656-Lighted-Rocker-Switch-V2 +http://www.uiparade.com/portfolio/tron-style-radio-buttons/ From f7c046fe72d8841ecd1037c037b89e71e9aa6b7f Mon Sep 17 00:00:00 2001 From: Mathew Benson Date: Mon, 8 Feb 2021 09:19:48 -0600 Subject: [PATCH 070/370] Fixed bug in cfe_evs unit tests recently added because of the split of the CFE_EVS Format command into a Format and a Mode command. --- core/base/cfe/fsw/unit-test/evs_UT.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/core/base/cfe/fsw/unit-test/evs_UT.c b/core/base/cfe/fsw/unit-test/evs_UT.c index 212a3da82..f7d2b2657 100644 --- a/core/base/cfe/fsw/unit-test/evs_UT.c +++ b/core/base/cfe/fsw/unit-test/evs_UT.c @@ -677,6 +677,7 @@ void Test_Format(void) int16 EventID[2]; CFE_TIME_SysTime_t time = {0, 0}; + CFE_EVS_ModeCmd_t modecmd; CFE_EVS_FormatCmd_t formatcmd; CFE_EVS_AppNameBitMaskCmd_t appbitcmd; @@ -702,8 +703,8 @@ void Test_Format(void) /* Test set event format mode command using an invalid mode */ UT_InitData(); modecmd.Payload.Mode = 0xff; - UT_SetSBTotalMsgLen(sizeof(CFE_EVS_FormatCmd_t)); - UT_SendMsg((CFE_SB_MsgPtr_t) &formatcmd, CFE_EVS_CMD_MID, + UT_SetSBTotalMsgLen(sizeof(CFE_EVS_ModeCmd_t)); + UT_SendMsg((CFE_SB_MsgPtr_t) &modecmd, CFE_EVS_CMD_MID, CFE_EVS_SET_EVENT_FORMAT_MODE_CC); UT_Report(__FILE__, __LINE__, SendMsgEventIDRtn.value == CFE_EVS_ERR_ILLEGALFMTMOD_EID, From 838ae094dac9918eea4d76a234411627fa4812ab Mon Sep 17 00:00:00 2001 From: Mathew Benson Date: Mon, 8 Feb 2021 15:22:39 +0000 Subject: [PATCH 071/370] Added CMAKE_LIBRARY_PATH_TERMINATOR variable to the default build vars because, apparently, newer versions of CMAKE require it. Also removed the variable that erroneously forced the PIE switch. --- core/base/psp/make/default-build-vars.cmake | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/core/base/psp/make/default-build-vars.cmake b/core/base/psp/make/default-build-vars.cmake index 6088cbbcc..1401b6be3 100644 --- a/core/base/psp/make/default-build-vars.cmake +++ b/core/base/psp/make/default-build-vars.cmake @@ -75,6 +75,7 @@ set(VALGRIND_SUPPORTED true) set(BUILD_CORE_FROM_SOURCE TRUE) -set(CMAKE_POSITION_INDEPENDENT_CODE ON) set(EMBED_SYMTAB false) set(EMBED_INITRD false) + +set(CMAKE_LIBRARY_PATH_TERMINATOR "/") From 6de6bba064d60175534376b5e4d35e590d0ab2b8 Mon Sep 17 00:00:00 2001 From: Mathew Benson Date: Mon, 8 Feb 2021 15:23:54 +0000 Subject: [PATCH 072/370] Added project variable to the main CMakeList.txt to keep CMAKE quiet. --- CMakeLists.txt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index 4c882b0d1..c7bd968bd 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -34,6 +34,8 @@ # The build system is tested with cmake version 3.5.2 cmake_minimum_required(VERSION 3.0.0) +project(Airliner) + include(CTest) find_program( MEMORYCHECK_COMMAND valgrind ) find_package(Threads) From ca3b6638dcafa532e72532be5b7d614e3690d688 Mon Sep 17 00:00:00 2001 From: cnalley Date: Mon, 8 Feb 2021 21:46:29 +0000 Subject: [PATCH 073/370] Update pq tables. --- .../target/apps/pq_lib/tables/pq_backup_cfg.c | 55 ++++---- .../ppd/target/apps/pq_lib/tables/pq_cfg.c | 133 +++++++++--------- .../target/apps/pq_lib/tables/pq_backup_cfg.c | 55 ++++---- .../sitl/target/apps/pq_lib/tables/pq_cfg.c | 133 +++++++++--------- 4 files changed, 180 insertions(+), 196 deletions(-) diff --git a/config/obc/ppd/target/apps/pq_lib/tables/pq_backup_cfg.c b/config/obc/ppd/target/apps/pq_lib/tables/pq_backup_cfg.c index 064ccb4b7..0c6e3234e 100644 --- a/config/obc/ppd/target/apps/pq_lib/tables/pq_backup_cfg.c +++ b/config/obc/ppd/target/apps/pq_lib/tables/pq_backup_cfg.c @@ -26,35 +26,32 @@ PQ_ChannelTbl_t PQ_BackupConfigTbl = { /* Message Flows */ /* Ground Queues */ - {SBN_SUB_MID, 1, PQ_PQUEUE_HIGH_IDX}, - {SBN_UNSUB_MID, 1, PQ_PQUEUE_HIGH_IDX}, - {TO_HK_TLM_MID, 1, PQ_PQUEUE_HIGH_IDX}, - {TO_DATA_TYPE_MID, 1, PQ_PQUEUE_HIGH_IDX}, - {TO_DIAG_TLM_MID, 1, PQ_PQUEUE_HIGH_IDX}, - {CFE_ES_HK_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, - {CFE_EVS_HK_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, - {CFE_SB_HK_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, - {CFE_TBL_HK_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, - {CFE_TIME_HK_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, - {CFE_TIME_DIAG_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, - {CFE_EVS_EVENT_MSG_MID, 32, PQ_PQUEUE_MEDIUM_IDX}, - {CFE_SB_STATS_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, - {CFE_ES_APP_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, - {CFE_TBL_REG_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, - {CFE_SB_ONESUB_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, - {CFE_ES_SHELL_TLM_MID, 32, PQ_PQUEUE_MEDIUM_IDX}, - {CFE_ES_MEMSTATS_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, - {CF_HK_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, - {CF_TRANS_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, - {CF_CONFIG_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, - {CF_SPACE_TO_GND_PDU_MID, 32, PQ_PQUEUE_MEDIUM_IDX}, - {FM_HK_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, - {FM_FILE_INFO_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, - {FM_DIR_LIST_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, - {FM_OPEN_FILES_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, - {FM_FREE_SPACE_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, - {MD_HK_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, - {MM_HK_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, + {SBN_SUB_MID, 64, PQ_PQUEUE_MEDIUM_IDX}, + {SBN_UNSUB_MID, 64, PQ_PQUEUE_MEDIUM_IDX}, + {SBN_ALLSUB_MID, 1, PQ_PQUEUE_HIGH_IDX}, + {CFE_ES_HK_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {CFE_EVS_HK_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {CFE_SB_HK_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {CFE_TBL_HK_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {CFE_TIME_HK_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {CFE_TIME_DIAG_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {CFE_EVS_EVENT_MSG_MID, 32, PQ_PQUEUE_LOW_IDX}, + {CFE_SB_STATS_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {CFE_ES_APP_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {CFE_TBL_REG_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {CFE_ES_SHELL_TLM_MID, 32, PQ_PQUEUE_LOW_IDX}, + {CFE_ES_MEMSTATS_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {CF_HK_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {CF_TRANS_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {CF_CONFIG_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {CF_SPACE_TO_GND_PDU_MID, 32, PQ_PQUEUE_LOW_IDX}, + {FM_HK_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {FM_FILE_INFO_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {FM_DIR_LIST_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {FM_OPEN_FILES_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {FM_FREE_SPACE_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {MD_HK_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {MM_HK_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, },{ /* Priority Queues */ /* PQ_PQUEUE_SINGLE_PASS_IDX */ diff --git a/config/obc/ppd/target/apps/pq_lib/tables/pq_cfg.c b/config/obc/ppd/target/apps/pq_lib/tables/pq_cfg.c index c281ec915..f20daa3ea 100644 --- a/config/obc/ppd/target/apps/pq_lib/tables/pq_cfg.c +++ b/config/obc/ppd/target/apps/pq_lib/tables/pq_cfg.c @@ -45,75 +45,70 @@ PQ_ChannelTbl_t PQ_ConfigTbl = { /* Message Flows */ /* Ground Queues */ - {SBN_SUB_MID, 1, PQ_PQUEUE_HIGH_IDX}, - {SBN_UNSUB_MID, 1, PQ_PQUEUE_HIGH_IDX}, - {AMC_HK_TLM_MID, 1, PQ_PQUEUE_HIGH_IDX}, - {MAC_HK_TLM_MID, 1, PQ_PQUEUE_HIGH_IDX}, - {MPC_HK_TLM_MID, 1, PQ_PQUEUE_HIGH_IDX}, - {ULR_HK_TLM_MID, 1, PQ_PQUEUE_HIGH_IDX}, - {RGBLED_HK_TLM_MID, 1, PQ_PQUEUE_HIGH_IDX}, - {GPS_HK_TLM_MID, 1, PQ_PQUEUE_HIGH_IDX}, - {SENS_HK_TLM_MID, 1, PQ_PQUEUE_HIGH_IDX}, - {LD_HK_TLM_MID, 1, PQ_PQUEUE_HIGH_IDX}, - {NAV_HK_TLM_MID, 1, PQ_PQUEUE_HIGH_IDX}, - {RCIN_HK_TLM_MID, 1, PQ_PQUEUE_HIGH_IDX}, - {VM_HK_TLM_MID, 1, PQ_PQUEUE_HIGH_IDX}, - {BAT_HK_TLM_MID, 1, PQ_PQUEUE_HIGH_IDX}, - {PE_HK_TLM_MID, 1, PQ_PQUEUE_HIGH_IDX}, - {AK8963_HK_TLM_MID, 1, PQ_PQUEUE_HIGH_IDX}, - {AK8963_DIAG_TLM_MID, 1, PQ_PQUEUE_HIGH_IDX}, - {MS5611_HK_TLM_MID, 1, PQ_PQUEUE_HIGH_IDX}, - {MS5611_DIAG_TLM_MID, 1, PQ_PQUEUE_HIGH_IDX}, - {MPU6050_HK_TLM_MID, 1, PQ_PQUEUE_HIGH_IDX}, - {MPU6050_DIAG_TLM_MID, 1, PQ_PQUEUE_HIGH_IDX}, - {TO_HK_TLM_MID, 1, PQ_PQUEUE_HIGH_IDX}, - {TO_DATA_TYPE_MID, 1, PQ_PQUEUE_HIGH_IDX}, - {EA_HK_TLM_MID, 1, PQ_PQUEUE_HIGH_IDX}, - {VC_HK_TLM_MID, 1, PQ_PQUEUE_HIGH_IDX}, - {TO_DIAG_TLM_MID, 1, PQ_PQUEUE_HIGH_IDX}, - {TO_DIAG_MSG_FLOW_MID, 1, PQ_PQUEUE_HIGH_IDX}, - {GPS_HK_TLM_MID, 1, PQ_PQUEUE_HIGH_IDX}, - {MAVLINK_HK_TLM_MID, 1, PQ_PQUEUE_HIGH_IDX}, - {CFE_ES_HK_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, - {CFE_EVS_HK_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, - {CFE_SB_HK_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, - {CFE_TBL_HK_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, - {CFE_TIME_HK_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, - {CFE_TIME_DIAG_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, - {CFE_EVS_EVENT_MSG_MID, 32, PQ_PQUEUE_MEDIUM_IDX}, - {CFE_SB_STATS_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, - {CFE_ES_APP_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, - {CFE_TBL_REG_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, - {CFE_SB_ONESUB_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, - {CFE_ES_SHELL_TLM_MID, 32, PQ_PQUEUE_MEDIUM_IDX}, - {CFE_ES_MEMSTATS_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, - {CF_HK_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, - {CF_TRANS_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, - {CF_CONFIG_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, - {CF_SPACE_TO_GND_PDU_MID, 32, PQ_PQUEUE_MEDIUM_IDX}, - {CS_HK_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, - {DS_HK_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, - {DS_DIAG_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, - {FM_HK_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, - {FM_FILE_INFO_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, - {FM_DIR_LIST_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, - {FM_OPEN_FILES_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, - {FM_FREE_SPACE_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, - {HK_HK_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, - {HS_HK_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, - {LC_HK_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, - {MD_HK_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, - {MM_HK_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, - {SCH_HK_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, - {SCH_DIAG_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, - {CI_HK_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, - {QAE_HK_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, - {FLOW_HK_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, - {FLOW_DIAG_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, - {MPC_DIAG_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, - {LD_DIAG_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, - {PRM_HK_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, - {VM_CONFIG_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, + {SBN_SUB_MID, 64, PQ_PQUEUE_MEDIUM_IDX}, + {SBN_UNSUB_MID, 64, PQ_PQUEUE_MEDIUM_IDX}, + {SBN_ALLSUB_MID, 1, PQ_PQUEUE_HIGH_IDX}, + {AMC_HK_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {MAC_HK_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {MPC_HK_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {ULR_HK_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {RGBLED_HK_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {GPS_HK_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {SENS_HK_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {LD_HK_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {NAV_HK_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {RCIN_HK_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {VM_HK_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {BAT_HK_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {PE_HK_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {AK8963_HK_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {AK8963_DIAG_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {MS5611_HK_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {MS5611_DIAG_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {MPU6050_HK_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {MPU6050_DIAG_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {EA_HK_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {VC_HK_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {GPS_HK_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {MAVLINK_HK_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {CFE_ES_HK_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {CFE_EVS_HK_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {CFE_SB_HK_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {CFE_TBL_HK_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {CFE_TIME_HK_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {CFE_TIME_DIAG_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {CFE_EVS_EVENT_MSG_MID, 32, PQ_PQUEUE_LOW_IDX}, + {CFE_SB_STATS_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {CFE_ES_APP_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {CFE_TBL_REG_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {CFE_ES_SHELL_TLM_MID, 32, PQ_PQUEUE_LOW_IDX}, + {CFE_ES_MEMSTATS_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {CF_HK_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {CF_TRANS_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {CF_CONFIG_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {CF_SPACE_TO_GND_PDU_MID, 32, PQ_PQUEUE_LOW_IDX}, + {CS_HK_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {DS_HK_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {DS_DIAG_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {FM_HK_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {FM_FILE_INFO_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {FM_DIR_LIST_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {FM_OPEN_FILES_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {FM_FREE_SPACE_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {HK_HK_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {HS_HK_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {LC_HK_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {MD_HK_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {MM_HK_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {SCH_HK_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {SCH_DIAG_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {QAE_HK_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {FLOW_HK_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {FLOW_DIAG_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {MPC_DIAG_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {LD_DIAG_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {PRM_HK_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {VM_CONFIG_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, // {PX4_ACTUATOR_ARMED_MID, 1, PQ_PQUEUE_LOW_IDX}, // {PX4_ACTUATOR_CONTROLS_0_MID, 1, PQ_PQUEUE_LOW_IDX}, diff --git a/config/obc/sitl/target/apps/pq_lib/tables/pq_backup_cfg.c b/config/obc/sitl/target/apps/pq_lib/tables/pq_backup_cfg.c index 064ccb4b7..0c6e3234e 100644 --- a/config/obc/sitl/target/apps/pq_lib/tables/pq_backup_cfg.c +++ b/config/obc/sitl/target/apps/pq_lib/tables/pq_backup_cfg.c @@ -26,35 +26,32 @@ PQ_ChannelTbl_t PQ_BackupConfigTbl = { /* Message Flows */ /* Ground Queues */ - {SBN_SUB_MID, 1, PQ_PQUEUE_HIGH_IDX}, - {SBN_UNSUB_MID, 1, PQ_PQUEUE_HIGH_IDX}, - {TO_HK_TLM_MID, 1, PQ_PQUEUE_HIGH_IDX}, - {TO_DATA_TYPE_MID, 1, PQ_PQUEUE_HIGH_IDX}, - {TO_DIAG_TLM_MID, 1, PQ_PQUEUE_HIGH_IDX}, - {CFE_ES_HK_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, - {CFE_EVS_HK_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, - {CFE_SB_HK_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, - {CFE_TBL_HK_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, - {CFE_TIME_HK_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, - {CFE_TIME_DIAG_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, - {CFE_EVS_EVENT_MSG_MID, 32, PQ_PQUEUE_MEDIUM_IDX}, - {CFE_SB_STATS_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, - {CFE_ES_APP_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, - {CFE_TBL_REG_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, - {CFE_SB_ONESUB_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, - {CFE_ES_SHELL_TLM_MID, 32, PQ_PQUEUE_MEDIUM_IDX}, - {CFE_ES_MEMSTATS_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, - {CF_HK_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, - {CF_TRANS_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, - {CF_CONFIG_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, - {CF_SPACE_TO_GND_PDU_MID, 32, PQ_PQUEUE_MEDIUM_IDX}, - {FM_HK_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, - {FM_FILE_INFO_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, - {FM_DIR_LIST_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, - {FM_OPEN_FILES_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, - {FM_FREE_SPACE_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, - {MD_HK_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, - {MM_HK_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, + {SBN_SUB_MID, 64, PQ_PQUEUE_MEDIUM_IDX}, + {SBN_UNSUB_MID, 64, PQ_PQUEUE_MEDIUM_IDX}, + {SBN_ALLSUB_MID, 1, PQ_PQUEUE_HIGH_IDX}, + {CFE_ES_HK_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {CFE_EVS_HK_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {CFE_SB_HK_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {CFE_TBL_HK_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {CFE_TIME_HK_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {CFE_TIME_DIAG_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {CFE_EVS_EVENT_MSG_MID, 32, PQ_PQUEUE_LOW_IDX}, + {CFE_SB_STATS_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {CFE_ES_APP_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {CFE_TBL_REG_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {CFE_ES_SHELL_TLM_MID, 32, PQ_PQUEUE_LOW_IDX}, + {CFE_ES_MEMSTATS_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {CF_HK_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {CF_TRANS_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {CF_CONFIG_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {CF_SPACE_TO_GND_PDU_MID, 32, PQ_PQUEUE_LOW_IDX}, + {FM_HK_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {FM_FILE_INFO_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {FM_DIR_LIST_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {FM_OPEN_FILES_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {FM_FREE_SPACE_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {MD_HK_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {MM_HK_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, },{ /* Priority Queues */ /* PQ_PQUEUE_SINGLE_PASS_IDX */ diff --git a/config/obc/sitl/target/apps/pq_lib/tables/pq_cfg.c b/config/obc/sitl/target/apps/pq_lib/tables/pq_cfg.c index 6f5d1fa87..f20daa3ea 100644 --- a/config/obc/sitl/target/apps/pq_lib/tables/pq_cfg.c +++ b/config/obc/sitl/target/apps/pq_lib/tables/pq_cfg.c @@ -45,75 +45,70 @@ PQ_ChannelTbl_t PQ_ConfigTbl = { /* Message Flows */ /* Ground Queues */ - {SBN_SUB_MID, 1, PQ_PQUEUE_HIGH_IDX}, - {SBN_UNSUB_MID, 1, PQ_PQUEUE_HIGH_IDX}, - {AMC_HK_TLM_MID, 1, PQ_PQUEUE_HIGH_IDX}, - {MAC_HK_TLM_MID, 1, PQ_PQUEUE_HIGH_IDX}, - {MPC_HK_TLM_MID, 1, PQ_PQUEUE_HIGH_IDX}, - {ULR_HK_TLM_MID, 1, PQ_PQUEUE_HIGH_IDX}, - {RGBLED_HK_TLM_MID, 1, PQ_PQUEUE_HIGH_IDX}, - {GPS_HK_TLM_MID, 1, PQ_PQUEUE_HIGH_IDX}, - {SENS_HK_TLM_MID, 1, PQ_PQUEUE_HIGH_IDX}, - {LD_HK_TLM_MID, 1, PQ_PQUEUE_HIGH_IDX}, - {NAV_HK_TLM_MID, 1, PQ_PQUEUE_HIGH_IDX}, - {RCIN_HK_TLM_MID, 1, PQ_PQUEUE_HIGH_IDX}, - {VM_HK_TLM_MID, 1, PQ_PQUEUE_HIGH_IDX}, - {BAT_HK_TLM_MID, 1, PQ_PQUEUE_HIGH_IDX}, - {PE_HK_TLM_MID, 1, PQ_PQUEUE_HIGH_IDX}, - {AK8963_HK_TLM_MID, 1, PQ_PQUEUE_HIGH_IDX}, - {AK8963_DIAG_TLM_MID, 1, PQ_PQUEUE_HIGH_IDX}, - {MS5611_HK_TLM_MID, 1, PQ_PQUEUE_HIGH_IDX}, - {MS5611_DIAG_TLM_MID, 1, PQ_PQUEUE_HIGH_IDX}, - {MPU6050_HK_TLM_MID, 1, PQ_PQUEUE_HIGH_IDX}, - {MPU6050_DIAG_TLM_MID, 1, PQ_PQUEUE_HIGH_IDX}, - {TO_HK_TLM_MID, 1, PQ_PQUEUE_HIGH_IDX}, - {TO_DATA_TYPE_MID, 1, PQ_PQUEUE_HIGH_IDX}, - {EA_HK_TLM_MID, 1, PQ_PQUEUE_HIGH_IDX}, - {VC_HK_TLM_MID, 1, PQ_PQUEUE_HIGH_IDX}, - {TO_DIAG_TLM_MID, 1, PQ_PQUEUE_HIGH_IDX}, - {TO_DIAG_MSG_FLOW_MID, 1, PQ_PQUEUE_HIGH_IDX}, - {GPS_HK_TLM_MID, 1, PQ_PQUEUE_HIGH_IDX}, - {MAVLINK_HK_TLM_MID, 1, PQ_PQUEUE_HIGH_IDX}, - {CFE_ES_HK_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, - {CFE_EVS_HK_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, - {CFE_SB_HK_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, - {CFE_TBL_HK_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, - {CFE_TIME_HK_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, - {CFE_TIME_DIAG_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, - {CFE_EVS_EVENT_MSG_MID, 32, PQ_PQUEUE_MEDIUM_IDX}, - {CFE_SB_STATS_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, - {CFE_ES_APP_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, - {CFE_TBL_REG_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, - {CFE_SB_ONESUB_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, - {CFE_ES_SHELL_TLM_MID, 32, PQ_PQUEUE_MEDIUM_IDX}, - {CFE_ES_MEMSTATS_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, - {CF_HK_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, - {CF_TRANS_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, - {CF_CONFIG_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, - {CF_SPACE_TO_GND_PDU_MID, 32, PQ_PQUEUE_MEDIUM_IDX}, - {CS_HK_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, - {DS_HK_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, - {DS_DIAG_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, - {FM_HK_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, - {FM_FILE_INFO_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, - {FM_DIR_LIST_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, - {FM_OPEN_FILES_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, - {FM_FREE_SPACE_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, - {HK_HK_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, - {HS_HK_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, - {LC_HK_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, - {MD_HK_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, - {MM_HK_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, - {SCH_HK_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, - {SCH_DIAG_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, - {CI_HK_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, - {QAE_HK_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, - {FLOW_HK_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, - {FLOW_DIAG_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, - {MPC_DIAG_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, - {LD_DIAG_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, - {PRM_HK_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, - {VM_CONFIG_TLM_MID, 1, PQ_PQUEUE_MEDIUM_IDX}, + {SBN_SUB_MID, 64, PQ_PQUEUE_MEDIUM_IDX}, + {SBN_UNSUB_MID, 64, PQ_PQUEUE_MEDIUM_IDX}, + {SBN_ALLSUB_MID, 1, PQ_PQUEUE_HIGH_IDX}, + {AMC_HK_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {MAC_HK_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {MPC_HK_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {ULR_HK_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {RGBLED_HK_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {GPS_HK_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {SENS_HK_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {LD_HK_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {NAV_HK_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {RCIN_HK_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {VM_HK_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {BAT_HK_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {PE_HK_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {AK8963_HK_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {AK8963_DIAG_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {MS5611_HK_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {MS5611_DIAG_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {MPU6050_HK_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {MPU6050_DIAG_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {EA_HK_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {VC_HK_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {GPS_HK_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {MAVLINK_HK_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {CFE_ES_HK_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {CFE_EVS_HK_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {CFE_SB_HK_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {CFE_TBL_HK_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {CFE_TIME_HK_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {CFE_TIME_DIAG_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {CFE_EVS_EVENT_MSG_MID, 32, PQ_PQUEUE_LOW_IDX}, + {CFE_SB_STATS_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {CFE_ES_APP_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {CFE_TBL_REG_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {CFE_ES_SHELL_TLM_MID, 32, PQ_PQUEUE_LOW_IDX}, + {CFE_ES_MEMSTATS_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {CF_HK_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {CF_TRANS_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {CF_CONFIG_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {CF_SPACE_TO_GND_PDU_MID, 32, PQ_PQUEUE_LOW_IDX}, + {CS_HK_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {DS_HK_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {DS_DIAG_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {FM_HK_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {FM_FILE_INFO_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {FM_DIR_LIST_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {FM_OPEN_FILES_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {FM_FREE_SPACE_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {HK_HK_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {HS_HK_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {LC_HK_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {MD_HK_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {MM_HK_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {SCH_HK_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {SCH_DIAG_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {QAE_HK_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {FLOW_HK_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {FLOW_DIAG_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {MPC_DIAG_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {LD_DIAG_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {PRM_HK_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {VM_CONFIG_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, // {PX4_ACTUATOR_ARMED_MID, 1, PQ_PQUEUE_LOW_IDX}, // {PX4_ACTUATOR_CONTROLS_0_MID, 1, PQ_PQUEUE_LOW_IDX}, From fe6474ba7c87590927a4226432de34f8f7c5b8c1 Mon Sep 17 00:00:00 2001 From: cnalley Date: Mon, 8 Feb 2021 21:48:33 +0000 Subject: [PATCH 074/370] Working test. --- apps/sbn/fsw/src/sbn_app.c | 2 +- apps/sbn/fsw/src/sbn_subs.c | 59 ++++++++++++++++------- apps/sbn/modules/udp/fsw/src/sbn_udp_if.c | 48 ++++++++++++++---- config/shared/inc/msg_ids.h | 3 +- 4 files changed, 84 insertions(+), 28 deletions(-) diff --git a/apps/sbn/fsw/src/sbn_app.c b/apps/sbn/fsw/src/sbn_app.c index 23fbc8491..779e08032 100644 --- a/apps/sbn/fsw/src/sbn_app.c +++ b/apps/sbn/fsw/src/sbn_app.c @@ -472,7 +472,7 @@ boolean SBN_UnpackMsg(void *SBNBuf, SBN_MsgSz_t *MsgSzPtr, Unpack_UInt8(&Unpack, MsgTypePtr); Unpack_UInt32(&Unpack, CpuIDPtr); - if(!*MsgSzPtr) + if(MsgSzPtr == NULL) { return FALSE; }/* end if */ diff --git a/apps/sbn/fsw/src/sbn_subs.c b/apps/sbn/fsw/src/sbn_subs.c index 35a2c376e..4f1605564 100644 --- a/apps/sbn/fsw/src/sbn_subs.c +++ b/apps/sbn/fsw/src/sbn_subs.c @@ -135,7 +135,7 @@ void SBN_SendLocalSubsToPeer(SBN_PeerInterface_t *Peer) { SBN_SubsPacket_t Packet; - CFE_SB_InitMsg(&Packet, SBN_SUB_MID, sizeof(Packet), TRUE); + CFE_SB_InitMsg(&Packet, SBN_ALLSUB_MID, sizeof(Packet), TRUE); memcpy(&Packet.Ident, SBN_IDENT, SBN_IDENT_LEN); Packet.SubCount = SBN.SubCnt; @@ -500,33 +500,58 @@ static void ProcessSubFromPeer(SBN_PeerInterface_t *Peer, CFE_SB_MsgId_t MsgID, */ void SBN_ProcessSubsFromPeer(SBN_PeerInterface_t *Peer, void *Msg) { - SBN_SubsPacket_t Packet; + SBN_SubsPacket_t AllSubPacket; + SBN_SubPacket_t SubPacket; + uint16 SubCnt = 0; - memcpy(&Packet, Msg, sizeof(SBN_SubPacket_t)); + CFE_SB_MsgId_t MsgID = CFE_SB_GetMsgId((CFE_SB_MsgPtr_t)Msg); - if(Packet.SubCount > 1) + if(MsgID == SBN_SUB_MID) { - memcpy(&Packet, Msg, sizeof(SBN_SubsPacket_t)); + /* TODO add size check*/ + memcpy(&SubPacket, Msg, sizeof(SubPacket)); + + if(strncmp(SubPacket.Ident, SBN_IDENT, SBN_IDENT_LEN)) + { + CFE_EVS_SendEvent(SBN_PROTO_EID, CFE_EVS_ERROR, + "version number mismatch with peer CpuID %lu", + Peer->ProcessorID); + } + + CFE_SB_MsgId_t MsgID = SubPacket.Sub.MsgID; + CFE_SB_Qos_t QoS = SubPacket.Sub.QoS; + ProcessSubFromPeer(Peer, MsgID, QoS); } - if(strncmp(Packet.Ident, SBN_IDENT, SBN_IDENT_LEN)) + if(MsgID == SBN_ALLSUB_MID) { - CFE_EVS_SendEvent(SBN_PROTO_EID, CFE_EVS_ERROR, - "version number mismatch with peer CpuID %lu", - Peer->ProcessorID); + /* TODO add size check*/ + memcpy(&AllSubPacket, Msg, sizeof(AllSubPacket)); + + if(strncmp(AllSubPacket.Ident, SBN_IDENT, SBN_IDENT_LEN)) + { + CFE_EVS_SendEvent(SBN_PROTO_EID, CFE_EVS_ERROR, + "version number mismatch with peer CpuID %lu", + Peer->ProcessorID); + } + + SubCnt = AllSubPacket.SubCount; + + int SubIdx = 0; + for(SubIdx = 0; SubIdx < SubCnt; SubIdx++) + { + CFE_SB_MsgId_t MsgID = AllSubPacket.Subs[SubIdx].MsgID; + CFE_SB_Qos_t QoS = AllSubPacket.Subs[SubIdx].QoS; + + ProcessSubFromPeer(Peer, MsgID, QoS); + } } - SubCnt = Packet.SubCount; - int SubIdx = 0; - for(SubIdx = 0; SubIdx < SubCnt; SubIdx++) - { - CFE_SB_MsgId_t MsgID = Packet.Subs[SubIdx].MsgID; - CFE_SB_Qos_t QoS = Packet.Subs[SubIdx].QoS; - ProcessSubFromPeer(Peer, MsgID, QoS); - }/* end for */ + + }/* SBN_ProcessSubsFromPeer */ diff --git a/apps/sbn/modules/udp/fsw/src/sbn_udp_if.c b/apps/sbn/modules/udp/fsw/src/sbn_udp_if.c index 9861c98c6..2e52be175 100644 --- a/apps/sbn/modules/udp/fsw/src/sbn_udp_if.c +++ b/apps/sbn/modules/udp/fsw/src/sbn_udp_if.c @@ -18,13 +18,14 @@ void SBN_PQ_Output_Task(void); void SBN_PQ_ChannelHandler(PQ_ChannelData_t *Channel); +int SBN_UDP_Send_Direct(SBN_PeerInterface_t *Peer, SBN_MsgType_t MsgType, + SBN_MsgSz_t MsgSz, void *Payload); extern PQ_ChannelTbl_t PQ_BackupConfigTbl; PQ_ChannelData_t Channel; PQ_HkTlm_t HkTlm; uint32 ChildTaskID; -CFE_ES_ChildTaskMainFuncPtr_t ListenerTask; -uint8 Priority; + struct sockaddr_in s_addr; int Socket; @@ -147,8 +148,8 @@ int SBN_UDP_InitNet(SBN_NetInterface_t *Net) char TaskName[OS_MAX_API_NAME]; snprintf(TaskName, OS_MAX_API_NAME, "PQ_OUTCH_%u", 0); - ListenerTask = SBN_PQ_Output_Task; - Priority = 50; + CFE_ES_ChildTaskMainFuncPtr_t ListenerTask = SBN_PQ_Output_Task; + /* Create a child task here. */ iStatus = CFE_ES_CreateChildTask( &ChildTaskID, @@ -156,7 +157,7 @@ int SBN_UDP_InitNet(SBN_NetInterface_t *Net) ListenerTask, 0, 131072, - Priority, + 50, OS_ENABLE_CORE_0); if (iStatus != CFE_SUCCESS) { @@ -201,7 +202,7 @@ int SBN_UDP_PollPeer(SBN_PeerInterface_t *Peer) //if(CurrentTime.seconds - Peer->LastSend.seconds //> SBN_UDP_PEER_HEARTBEAT) //{ - //return SBN_UDP_Send(Peer, SBN_UDP_HEARTBEAT_MSG, 0, NULL); + //return SBN_UDP_Send_Direct(Peer, SBN_UDP_HEARTBEAT_MSG, 0, NULL); //}/* end if */ //} //else @@ -209,7 +210,7 @@ int SBN_UDP_PollPeer(SBN_PeerInterface_t *Peer) //if(CurrentTime.seconds - Peer->LastSend.seconds //> SBN_UDP_ANNOUNCE_TIMEOUT) //{ - //return SBN_UDP_Send(Peer, SBN_UDP_ANNOUNCE_MSG, 0, NULL); + //return SBN_UDP_Send_Direct(Peer, SBN_UDP_ANNOUNCE_MSG, 0, NULL); //}/* end if */ //}/* end if */ return SBN_SUCCESS; @@ -218,6 +219,10 @@ int SBN_UDP_PollPeer(SBN_PeerInterface_t *Peer) int SBN_UDP_Send(SBN_PeerInterface_t *Peer, SBN_MsgType_t MsgType, SBN_MsgSz_t MsgSz, void *Payload) { + //SBN_UDP_Send_Direct(Peer, MsgType, MsgSz, Payload); + //return SBN_SUCCESS; + + printf("MsgSz into queue %u\n", MsgSz); PQ_Channel_LockByRef(&Channel); PQ_Classifier_Run(&Channel, Payload, &HkTlm); PQ_Scheduler_Run(&Channel); @@ -245,6 +250,28 @@ int SBN_UDP_Send(SBN_PeerInterface_t *Peer, SBN_MsgType_t MsgType, return SBN_SUCCESS; }/* end SBN_UDP_Send */ + +int SBN_UDP_Send_Direct(SBN_PeerInterface_t *Peer, SBN_MsgType_t MsgType, + SBN_MsgSz_t MsgSz, void *Payload) +{ + size_t BufSz = MsgSz + SBN_PACKED_HDR_SZ; + uint8 Buf[BufSz]; + SBN_UDP_Peer_t *PeerData = (SBN_UDP_Peer_t *)Peer->ModulePvt; + SBN_NetInterface_t *Net = Peer->Net; + SBN_UDP_Net_t *NetData = (SBN_UDP_Net_t *)Net->ModulePvt; + + SBN_PackMsg(&Buf, MsgSz, MsgType, CFE_PSP_GetProcessorId(), Payload); + + memset(&s_addr, 0, sizeof(s_addr)); + s_addr.sin_family = AF_INET; + s_addr.sin_addr.s_addr = inet_addr(PeerData->Host); + s_addr.sin_port = htons(PeerData->Port); + Socket = NetData->Socket; + printf("sent %u\n", BufSz); + sendto(NetData->Socket, &Buf, BufSz, 0, (struct sockaddr *) &s_addr, + sizeof(s_addr)); +} + /* Note that this Recv function is indescriminate, packets will be received * from all peers but that's ok, I just inject them into the SB and all is * good! @@ -290,11 +317,12 @@ int SBN_UDP_Recv(SBN_NetInterface_t *Net, SBN_MsgType_t *MsgTypePtr, if(SBN_UnpackMsg(&RecvBuf, MsgSzPtr, MsgTypePtr, CpuIDPtr, Payload) == FALSE) { + printf("Recv SBN_UnpackMsg error\n"); return SBN_ERROR; }/* end if */ CFE_SB_MsgId_t MsgID = CFE_SB_GetMsgId((CFE_SB_MsgPtr_t)Payload); - printf("Received %u MID %x\n", Received, MsgID); + printf("Received %u CPUID %u, %x\n", Received, *CpuIDPtr, MsgID); SBN_PeerInterface_t *Peer = SBN_GetPeer(Net, *CpuIDPtr); if(Peer == NULL) @@ -390,7 +418,7 @@ void SBN_PQ_ChannelHandler(PQ_ChannelData_t *Channel) size_t BufSz = actualMessageSize + SBN_PACKED_HDR_SZ; uint8 Buf[BufSz]; - if(MsgID == SBN_SUB_MID) + if(MsgID == SBN_SUB_MID || MsgID == SBN_ALLSUB_MID) { MsgType = SBN_SUBSCRIBE_MSG; } @@ -404,6 +432,8 @@ void SBN_PQ_ChannelHandler(PQ_ChannelData_t *Channel) } SBN_PackMsg(&Buf, actualMessageSize, MsgType, CFE_PSP_GetProcessorId(), buffer); + + printf("sent %u\n", BufSz); //int32 sendResult = TO_OutputChannel_Send(ChannelIdx, (const char*)buffer, actualMessageSize); diff --git a/config/shared/inc/msg_ids.h b/config/shared/inc/msg_ids.h index a3726706e..9261ff856 100644 --- a/config/shared/inc/msg_ids.h +++ b/config/shared/inc/msg_ids.h @@ -320,7 +320,8 @@ #define SBN_CMD_MID (0x1ba1) #define SBN_TLM_MID (0x0ba2) #define SBN_SUB_MID (0x0ba3) -#define SBN_UNSUB_MID (0x0ba4) +#define SBN_ALLSUB_MID (0x0ba4) +#define SBN_UNSUB_MID (0x0ba5) /* ROS */ /* Range: 0x900 - 0x90f */ From a7233fa8f67995294a1d1ad7fe032e645e47189a Mon Sep 17 00:00:00 2001 From: cnalley Date: Tue, 9 Feb 2021 16:53:58 +0000 Subject: [PATCH 075/370] Add mailbox header. --- .../modules/udp/fsw/for_build/CMakeLists.txt | 2 + apps/sbn/modules/udp/fsw/src/mailbox_parser.c | 69 ++++++++ apps/sbn/modules/udp/fsw/src/mailbox_parser.h | 27 +++ apps/sbn/modules/udp/fsw/src/sbn_udp_if.c | 156 +++++++++++++----- 4 files changed, 214 insertions(+), 40 deletions(-) create mode 100644 apps/sbn/modules/udp/fsw/src/mailbox_parser.c create mode 100644 apps/sbn/modules/udp/fsw/src/mailbox_parser.h diff --git a/apps/sbn/modules/udp/fsw/for_build/CMakeLists.txt b/apps/sbn/modules/udp/fsw/for_build/CMakeLists.txt index d1f85071f..acbb9d7a5 100644 --- a/apps/sbn/modules/udp/fsw/for_build/CMakeLists.txt +++ b/apps/sbn/modules/udp/fsw/for_build/CMakeLists.txt @@ -36,6 +36,8 @@ buildliner_add_app_def(sbn_udp SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/../src/sbn_udp_if.c ${CMAKE_CURRENT_SOURCE_DIR}/../src/sbn_udp_if.h + ${CMAKE_CURRENT_SOURCE_DIR}/../src/mailbox_parser.c + ${CMAKE_CURRENT_SOURCE_DIR}/../src/mailbox_parser.h ${CMAKE_CURRENT_SOURCE_DIR}/../src/sbn_udp_events.h ${CMAKE_CURRENT_SOURCE_DIR}/../src/sbn_udp_if_struct.h diff --git a/apps/sbn/modules/udp/fsw/src/mailbox_parser.c b/apps/sbn/modules/udp/fsw/src/mailbox_parser.c new file mode 100644 index 000000000..2345c128e --- /dev/null +++ b/apps/sbn/modules/udp/fsw/src/mailbox_parser.c @@ -0,0 +1,69 @@ +#include "mailbox_parser.h" + + +unsigned int ParseMessage(Mailbox_Parser_Handle_t *Handle, unsigned int Input, unsigned int* Buffer, unsigned int *BufferSize) +{ + unsigned int sizeInWords = (*BufferSize+3)/4; + + switch(Handle->State) + { + /* Fallthru */ + case MPS_MESSAGE_COMPLETE: + case MPS_WAITING_FOR_CADU: + { + if(Input == MAILBOX_MSG_CADU) + { + printf("got CADU\n"); + Handle->InputBufferCursor = 0; + Handle->CurrentChecksum = 0; + Handle->State = MPS_WAITING_FOR_SIZE; + } + else + { + Handle->State = MPS_WAITING_FOR_CADU; + } + break; + } + + case MPS_WAITING_FOR_SIZE: + { + printf("got size %u\n", Input); + Handle->FullMessageSize = Input; + Handle->State = MPS_PARSING_MESSAGE; + break; + } + + case MPS_PARSING_MESSAGE: + { + if(Handle->InputBufferCursor < sizeInWords) + { + Buffer[Handle->InputBufferCursor] = Input; + } + Handle->CurrentChecksum += Input; + Handle->InputBufferCursor++; + if(Handle->InputBufferCursor >= Handle->FullMessageSize) + { + Handle->State = MPS_WAITING_FOR_CHECKSUM; + } + break; + } + + case MPS_WAITING_FOR_CHECKSUM: + { + if(Input != Handle->CurrentChecksum) + { + printf("checksum mismatch Input %x current %x\n", Input, Handle->CurrentChecksum); + /* Checkum mismatch. */ + Handle->State = MPS_WAITING_FOR_CADU; + } + else + { + *BufferSize = Handle->InputBufferCursor*4; + Handle->State = MPS_MESSAGE_COMPLETE; + } + break; + } + } + + return Handle->State; +} diff --git a/apps/sbn/modules/udp/fsw/src/mailbox_parser.h b/apps/sbn/modules/udp/fsw/src/mailbox_parser.h new file mode 100644 index 000000000..ebaaf6701 --- /dev/null +++ b/apps/sbn/modules/udp/fsw/src/mailbox_parser.h @@ -0,0 +1,27 @@ +#ifndef MAILBOX_PARSER_H +#define MAILBOX_PARSER_H + +#define MAILBOX_MSG_CADU (0x01020304) + +typedef enum +{ + MPS_WAITING_FOR_CADU, + MPS_WAITING_FOR_SIZE, + MPS_PARSING_MESSAGE, + MPS_WAITING_FOR_CHECKSUM, + MPS_MESSAGE_COMPLETE, + MPS_BUFFER_OVERFLOW +} Mailbox_Parser_State_t; + +typedef struct +{ + Mailbox_Parser_State_t State; + unsigned int CurrentChecksum; + unsigned int InputBufferCursor; + unsigned int FullMessageSize; +} Mailbox_Parser_Handle_t; + + +unsigned int ParseMessage(Mailbox_Parser_Handle_t *Handle, unsigned int Input, unsigned int* Buffer, unsigned int *BufferSize); + +#endif diff --git a/apps/sbn/modules/udp/fsw/src/sbn_udp_if.c b/apps/sbn/modules/udp/fsw/src/sbn_udp_if.c index 2e52be175..cf336d277 100644 --- a/apps/sbn/modules/udp/fsw/src/sbn_udp_if.c +++ b/apps/sbn/modules/udp/fsw/src/sbn_udp_if.c @@ -6,6 +6,8 @@ #include #include "pq_includes.h" #include "msg_ids.h" +#include "pq_events.h" +#include "mailbox_parser.h" /* at some point this will be replaced by the OSAL network interface */ #ifdef _VXWORKS_OS_ @@ -15,6 +17,15 @@ #endif +#define MAILBOX_HEADER_SIZE_BYTES (12) +#define MAILBOX_WORD_SIZE (4) +#define MAILBOX_HEADER_SIZE_WORDS (MAILBOX_HEADER_SIZE_BYTES/MAILBOX_WORD_SIZE) +#define MAILBOX_MAX_BUFFER_SIZE_BYTES (1500) +#define MAILBOX_MAX_BUFFER_SIZE_WORDS (MAILBOX_MAX_BUFFER_SIZE_BYTES/MAILBOX_WORD_SIZE) +#define MAILBOX_SBN_HEADER_SIZE_WORDS (2) +#define MAILBOX_SBN_TASK_DELAY_MSEC (1) + + void SBN_PQ_Output_Task(void); void SBN_PQ_ChannelHandler(PQ_ChannelData_t *Channel); @@ -22,12 +33,17 @@ int SBN_UDP_Send_Direct(SBN_PeerInterface_t *Peer, SBN_MsgType_t MsgType, SBN_MsgSz_t MsgSz, void *Payload); extern PQ_ChannelTbl_t PQ_BackupConfigTbl; + +/* TODO add to global data struct. */ PQ_ChannelData_t Channel; PQ_HkTlm_t HkTlm; -uint32 ChildTaskID; - struct sockaddr_in s_addr; int Socket; +/* Mailbox specific */ +unsigned int OutputBuffer[1500/sizeof(unsigned int)] __attribute__ ((aligned(4))); +unsigned int InputBuffer[1500/sizeof(unsigned int)] __attribute__ ((aligned(4))); +unsigned int ParserBuffer[1500/sizeof(unsigned int)]; +Mailbox_Parser_Handle_t Parser; int SBN_UDP_LoadNet(const char **Row, int FieldCnt, @@ -123,7 +139,7 @@ int SBN_UDP_InitNet(SBN_NetInterface_t *Net) if (iStatus != CFE_SUCCESS) { /* TODO update to event. */ - printf("PQ_Channel_OpenChannel failed%u\n", iStatus); + printf("PQ_Channel_OpenChannel failed %u\n", iStatus); return SBN_ERROR; } @@ -143,11 +159,13 @@ int SBN_UDP_InitNet(SBN_NetInterface_t *Net) }/* end if */ else { + /* TODO update to event. */ printf("SBN bound %s:%d\n", NetData->Host, NetData->Port); } char TaskName[OS_MAX_API_NAME]; snprintf(TaskName, OS_MAX_API_NAME, "PQ_OUTCH_%u", 0); + uint32 ChildTaskID = 0; CFE_ES_ChildTaskMainFuncPtr_t ListenerTask = SBN_PQ_Output_Task; /* Create a child task here. */ @@ -166,6 +184,8 @@ int SBN_UDP_InitNet(SBN_NetInterface_t *Net) return SBN_ERROR; } + memset(&Parser, 0x0, sizeof(Parser)); + return SBN_SUCCESS; }/* end SBN_UDP_InitNet */ @@ -251,27 +271,6 @@ int SBN_UDP_Send(SBN_PeerInterface_t *Peer, SBN_MsgType_t MsgType, }/* end SBN_UDP_Send */ -int SBN_UDP_Send_Direct(SBN_PeerInterface_t *Peer, SBN_MsgType_t MsgType, - SBN_MsgSz_t MsgSz, void *Payload) -{ - size_t BufSz = MsgSz + SBN_PACKED_HDR_SZ; - uint8 Buf[BufSz]; - SBN_UDP_Peer_t *PeerData = (SBN_UDP_Peer_t *)Peer->ModulePvt; - SBN_NetInterface_t *Net = Peer->Net; - SBN_UDP_Net_t *NetData = (SBN_UDP_Net_t *)Net->ModulePvt; - - SBN_PackMsg(&Buf, MsgSz, MsgType, CFE_PSP_GetProcessorId(), Payload); - - memset(&s_addr, 0, sizeof(s_addr)); - s_addr.sin_family = AF_INET; - s_addr.sin_addr.s_addr = inet_addr(PeerData->Host); - s_addr.sin_port = htons(PeerData->Port); - Socket = NetData->Socket; - printf("sent %u\n", BufSz); - sendto(NetData->Socket, &Buf, BufSz, 0, (struct sockaddr *) &s_addr, - sizeof(s_addr)); -} - /* Note that this Recv function is indescriminate, packets will be received * from all peers but that's ok, I just inject them into the SB and all is * good! @@ -314,12 +313,40 @@ int SBN_UDP_Recv(SBN_NetInterface_t *Net, SBN_MsgType_t *MsgTypePtr, /* each UDP packet is a full SBN message */ - if(SBN_UnpackMsg(&RecvBuf, MsgSzPtr, MsgTypePtr, CpuIDPtr, Payload) - == FALSE) + /******************************************************************/ + printf("Received %u\n", Received); + memcpy(&InputBuffer[0], &RecvBuf[0], Received); + + /* TODO this can't handle two messages in a buffer. */ + if(Received > 0) { - printf("Recv SBN_UnpackMsg error\n"); - return SBN_ERROR; - }/* end if */ + int i = 0; + /* Add check for word length. */ + for(i = 0; i < Received/4; ++i) + { + unsigned int Size = MAILBOX_MAX_BUFFER_SIZE_BYTES; + unsigned int Status = ParseMessage(&Parser, + InputBuffer[i], + &ParserBuffer[0], + &Size); + if(Status == MPS_MESSAGE_COMPLETE) + { + printf("message complete.\n"); + if (SBN_UnpackMsg(&ParserBuffer[0], MsgSzPtr, MsgTypePtr, CpuIDPtr, Payload) == FALSE) + { + OS_printf("Unpack failed.\n"); + return SBN_ERROR; + } + } + } + } + /******************************************************************/ + + //if(SBN_UnpackMsg(&RecvBuf, MsgSzPtr, MsgTypePtr, CpuIDPtr, Payload) + //== FALSE) + //{ + //return SBN_ERROR; + //}/* end if */ CFE_SB_MsgId_t MsgID = CFE_SB_GetMsgId((CFE_SB_MsgPtr_t)Payload); printf("Received %u CPUID %u, %x\n", Received, *CpuIDPtr, MsgID); @@ -345,16 +372,19 @@ int SBN_UDP_Recv(SBN_NetInterface_t *Net, SBN_MsgType_t *MsgTypePtr, return SBN_SUCCESS; }/* end SBN_UDP_Recv */ + int SBN_UDP_ReportModuleStatus(SBN_ModuleStatusPacket_t *Packet) { return SBN_NOT_IMPLEMENTED; }/* end SBN_UDP_ReportModuleStatus */ + int SBN_UDP_ResetPeer(SBN_PeerInterface_t *Peer) { return SBN_NOT_IMPLEMENTED; }/* end SBN_UDP_ResetPeer */ + int SBN_UDP_UnloadNet(SBN_NetInterface_t *Net) { SBN_UDP_Net_t *NetData = (SBN_UDP_Net_t *)Net->ModulePvt; @@ -385,8 +415,6 @@ void SBN_PQ_Output_Task(void) CFE_ES_ExitChildTask(); } -/* TODO remove. */ -#include "pq_events.h" /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ /* */ @@ -417,6 +445,8 @@ void SBN_PQ_ChannelHandler(PQ_ChannelData_t *Channel) SBN_MsgType_t MsgType; size_t BufSz = actualMessageSize + SBN_PACKED_HDR_SZ; uint8 Buf[BufSz]; + int status = 0; + uint32 outputWord = 0; if(MsgID == SBN_SUB_MID || MsgID == SBN_ALLSUB_MID) { @@ -433,16 +463,52 @@ void SBN_PQ_ChannelHandler(PQ_ChannelData_t *Channel) SBN_PackMsg(&Buf, actualMessageSize, MsgType, CFE_PSP_GetProcessorId(), buffer); - printf("sent %u\n", BufSz); + //printf("sent %u\n", BufSz); + + /* Mailbox specific */ + /******************************************************/ + unsigned int SizeInBytes = 0; + unsigned int SizeInWords = 0; + unsigned int Checksum = 0; + unsigned int i = 0; + + SizeInBytes = BufSz; + /* Ensure word boundary */ + if(SizeInBytes % MAILBOX_WORD_SIZE) + { + SizeInBytes = (BufSz + (MAILBOX_WORD_SIZE - (BufSz % MAILBOX_WORD_SIZE))); + SizeInWords = SizeInBytes / MAILBOX_WORD_SIZE; + } - //int32 sendResult = TO_OutputChannel_Send(ChannelIdx, (const char*)buffer, actualMessageSize); + printf("BufSz %u\n", BufSz); + printf("SizeInBytes %u\n", SizeInBytes); + printf("SizeInWords %u\n", SizeInWords); - //if (sendResult != 0) - //{ - //TO_OutputChannel_Disable(ChannelIdx); - //} - - int status = sendto(Socket, (const char*)Buf, BufSz, 0, (struct sockaddr *) &s_addr, + if(SizeInWords + MAILBOX_HEADER_SIZE_WORDS > MAILBOX_MAX_BUFFER_SIZE_WORDS) + { + /* TODO update to event. */ + OS_printf("SBN_MailboxSend Send size too large %u bytes, %u words.\n", SizeInBytes, SizeInWords); + continue; + } + + /* Set CADU. */ + OutputBuffer[0] = MAILBOX_MSG_CADU; + /* Set size of the payload in words. */ + OutputBuffer[1] = SizeInWords; + /* Copy the payload. */ + memcpy(&OutputBuffer[2], &Buf[0], BufSz); + + Checksum = 0; + /* Checksum Calculation */ + for(i = 0; i < SizeInWords - 1; ++i) + { + Checksum += OutputBuffer[i + 2]; + } + /* Set the checkout. */ + OutputBuffer[SizeInWords + 2] = Checksum; + + /* Send payload size plus mailbox header size. */ + status = sendto(Socket, (const char*)&OutputBuffer[0], SizeInBytes + MAILBOX_HEADER_SIZE_BYTES, 0, (struct sockaddr *) &s_addr, sizeof(s_addr)); if (status < 0) { @@ -450,6 +516,16 @@ void SBN_PQ_ChannelHandler(PQ_ChannelData_t *Channel) printf("sendto failed errno %d\n", errno); iStatus = -1; } + /******************************************************/ + printf("sent %u\n", SizeInBytes + MAILBOX_HEADER_SIZE_BYTES); + //status = sendto(Socket, (const char*)Buf, BufSz, 0, (struct sockaddr *) &s_addr, + //sizeof(s_addr)); + //if (status < 0) + //{ + ///* TODO */ + //printf("sendto failed errno %d\n", errno); + //iStatus = -1; + //} iStatus = CFE_ES_PutPoolBuf(Channel->MemPoolHandle, (uint32 *)buffer); if(iStatus < 0) @@ -473,7 +549,7 @@ void SBN_PQ_ChannelHandler(PQ_ChannelData_t *Channel) } else if(iStatus == OS_QUEUE_TIMEOUT) { - /* Do nothing. Just loop back around and check the guard. */ + /* Do nothing. Just loop back around and check the guard. */ } else { From 2b40cac8170c031a1057c834fa325b264485e9e9 Mon Sep 17 00:00:00 2001 From: cnalley Date: Tue, 9 Feb 2021 18:34:24 +0000 Subject: [PATCH 076/370] Debug checksum calculation. --- apps/sbn/modules/udp/fsw/src/sbn_udp_if.c | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/apps/sbn/modules/udp/fsw/src/sbn_udp_if.c b/apps/sbn/modules/udp/fsw/src/sbn_udp_if.c index cf336d277..555e5494b 100644 --- a/apps/sbn/modules/udp/fsw/src/sbn_udp_if.c +++ b/apps/sbn/modules/udp/fsw/src/sbn_udp_if.c @@ -342,6 +342,13 @@ int SBN_UDP_Recv(SBN_NetInterface_t *Net, SBN_MsgType_t *MsgTypePtr, } /******************************************************************/ + + //if(SBN_UnpackMsg(&RecvBuf[8], MsgSzPtr, MsgTypePtr, CpuIDPtr, Payload) + //== FALSE) + //{ + //return SBN_ERROR; + //}/* end if */ + //if(SBN_UnpackMsg(&RecvBuf, MsgSzPtr, MsgTypePtr, CpuIDPtr, Payload) //== FALSE) //{ @@ -463,7 +470,7 @@ void SBN_PQ_ChannelHandler(PQ_ChannelData_t *Channel) SBN_PackMsg(&Buf, actualMessageSize, MsgType, CFE_PSP_GetProcessorId(), buffer); - //printf("sent %u\n", BufSz); + /* Mailbox specific */ /******************************************************/ @@ -474,11 +481,8 @@ void SBN_PQ_ChannelHandler(PQ_ChannelData_t *Channel) SizeInBytes = BufSz; /* Ensure word boundary */ - if(SizeInBytes % MAILBOX_WORD_SIZE) - { - SizeInBytes = (BufSz + (MAILBOX_WORD_SIZE - (BufSz % MAILBOX_WORD_SIZE))); - SizeInWords = SizeInBytes / MAILBOX_WORD_SIZE; - } + SizeInBytes = (BufSz + (MAILBOX_WORD_SIZE - (BufSz % MAILBOX_WORD_SIZE))); + SizeInWords = SizeInBytes / MAILBOX_WORD_SIZE; printf("BufSz %u\n", BufSz); printf("SizeInBytes %u\n", SizeInBytes); From 8ed45d371e8d159d39333dce07c8b05295f72a8d Mon Sep 17 00:00:00 2001 From: cnalley Date: Tue, 9 Feb 2021 20:04:22 +0000 Subject: [PATCH 077/370] Start adding udp tested code to uio mbox. --- apps/pq_lib/fsw/public_inc/pq_includes.h | 1 + apps/sbn/modules/udp/fsw/src/sbn_udp_if.c | 16 +- .../uio_mbox/fsw/for_build/CMakeLists.txt | 2 +- .../uio_mbox/fsw/src/sbn_uio_mailbox_if.c | 266 +++++++++++++----- .../uio_mbox/fsw/src/sbn_uio_mailbox_if.h | 28 ++ config/obc/ppd/target/CMakeLists.txt | 11 +- 6 files changed, 242 insertions(+), 82 deletions(-) diff --git a/apps/pq_lib/fsw/public_inc/pq_includes.h b/apps/pq_lib/fsw/public_inc/pq_includes.h index 78644dabe..605d29fa0 100644 --- a/apps/pq_lib/fsw/public_inc/pq_includes.h +++ b/apps/pq_lib/fsw/public_inc/pq_includes.h @@ -35,6 +35,7 @@ #define PQ_INCLUDES_H #include "pq_classifier.h" +#include "pq_scheduler.h" #include "pq_channel.h" #include "pq_platform_cfg.h" diff --git a/apps/sbn/modules/udp/fsw/src/sbn_udp_if.c b/apps/sbn/modules/udp/fsw/src/sbn_udp_if.c index 555e5494b..94f350e10 100644 --- a/apps/sbn/modules/udp/fsw/src/sbn_udp_if.c +++ b/apps/sbn/modules/udp/fsw/src/sbn_udp_if.c @@ -282,6 +282,7 @@ int SBN_UDP_Recv(SBN_NetInterface_t *Net, SBN_MsgType_t *MsgTypePtr, uint8 RecvBuf[SBN_MAX_PACKED_MSG_SZ]; SBN_UDP_Net_t *NetData = (SBN_UDP_Net_t *)Net->ModulePvt; + boolean MessageComplete = FALSE; #ifndef SBN_RECV_TASK @@ -332,6 +333,7 @@ int SBN_UDP_Recv(SBN_NetInterface_t *Net, SBN_MsgType_t *MsgTypePtr, if(Status == MPS_MESSAGE_COMPLETE) { printf("message complete.\n"); + MessageComplete = TRUE; if (SBN_UnpackMsg(&ParserBuffer[0], MsgSzPtr, MsgTypePtr, CpuIDPtr, Payload) == FALSE) { OS_printf("Unpack failed.\n"); @@ -342,6 +344,10 @@ int SBN_UDP_Recv(SBN_NetInterface_t *Net, SBN_MsgType_t *MsgTypePtr, } /******************************************************************/ + if(MessageComplete == FALSE) + { + return SBN_IF_EMPTY; + } //if(SBN_UnpackMsg(&RecvBuf[8], MsgSzPtr, MsgTypePtr, CpuIDPtr, Payload) //== FALSE) @@ -469,8 +475,6 @@ void SBN_PQ_ChannelHandler(PQ_ChannelData_t *Channel) } SBN_PackMsg(&Buf, actualMessageSize, MsgType, CFE_PSP_GetProcessorId(), buffer); - - /* Mailbox specific */ /******************************************************/ @@ -484,9 +488,9 @@ void SBN_PQ_ChannelHandler(PQ_ChannelData_t *Channel) SizeInBytes = (BufSz + (MAILBOX_WORD_SIZE - (BufSz % MAILBOX_WORD_SIZE))); SizeInWords = SizeInBytes / MAILBOX_WORD_SIZE; - printf("BufSz %u\n", BufSz); - printf("SizeInBytes %u\n", SizeInBytes); - printf("SizeInWords %u\n", SizeInWords); + //printf("BufSz %u\n", BufSz); + //printf("SizeInBytes %u\n", SizeInBytes); + //printf("SizeInWords %u\n", SizeInWords); if(SizeInWords + MAILBOX_HEADER_SIZE_WORDS > MAILBOX_MAX_BUFFER_SIZE_WORDS) { @@ -508,7 +512,7 @@ void SBN_PQ_ChannelHandler(PQ_ChannelData_t *Channel) { Checksum += OutputBuffer[i + 2]; } - /* Set the checkout. */ + /* Set the checksum. */ OutputBuffer[SizeInWords + 2] = Checksum; /* Send payload size plus mailbox header size. */ diff --git a/apps/sbn/modules/uio_mbox/fsw/for_build/CMakeLists.txt b/apps/sbn/modules/uio_mbox/fsw/for_build/CMakeLists.txt index 5063ec3ec..46be0dfbc 100644 --- a/apps/sbn/modules/uio_mbox/fsw/for_build/CMakeLists.txt +++ b/apps/sbn/modules/uio_mbox/fsw/for_build/CMakeLists.txt @@ -42,6 +42,6 @@ buildliner_add_app_def(sbn_uio_mbox INCLUDES ${CMAKE_CURRENT_SOURCE_DIR}/../src/ - ${CMAKE_CURRENT_SOURCE_DIR}/../../../../fsw/platform_inc/ + ${CMAKE_CURRENT_SOURCE_DIR}/../../../../fsw/src/ ) diff --git a/apps/sbn/modules/uio_mbox/fsw/src/sbn_uio_mailbox_if.c b/apps/sbn/modules/uio_mbox/fsw/src/sbn_uio_mailbox_if.c index fc3ec2aaf..524853aeb 100644 --- a/apps/sbn/modules/uio_mbox/fsw/src/sbn_uio_mailbox_if.c +++ b/apps/sbn/modules/uio_mbox/fsw/src/sbn_uio_mailbox_if.c @@ -9,10 +9,15 @@ #include #include "sbn_interfaces.h" #include "sbn_platform_cfg.h" +#include "msg_ids.h" +#include "pq_events.h" +extern PQ_ChannelTbl_t PQ_BackupConfigTbl; SBN_UIO_Mailbox_Data_t SBN_UIO_Mailbox_Data; +void SBN_PQ_Output_Task(void); +void SBN_PQ_ChannelHandler(PQ_ChannelData_t *Channel); static void uio_write(void *timer_base, unsigned int offset, unsigned int value) { @@ -35,7 +40,7 @@ void *InitDevice(const char *path) if (fd < 1) { /* TODO remove after debug. */ - printf("Invalid UIO device file:%s.\n", path); + OS_printf("Invalid UIO device file:%s.\n", path); goto end_of_function; } @@ -43,7 +48,7 @@ void *InitDevice(const char *path) if (mailbox_ptr == MAP_FAILED) { /* TODO remove after debug. */ - printf("Mmap call failure. errno %d\n", errno); + OS_printf("Mmap call failure. errno %d\n", errno); goto end_of_function; } @@ -86,34 +91,28 @@ bool MailboxEmptyError(void *instance) } +/* Blocking write */ int MailboxWrite(void *instance, const unsigned int *buffer, unsigned int size) { int status = 0; bool isFull = false; unsigned int i = 0; - - isFull = MailboxFull(instance); - if(isFull == true) - { - goto end_of_function; - } for(i = 0; i < size; ++i) { - uio_write(instance, MAILBOX_WRITE_REG, *buffer++); - status = size; - isFull = MailboxFull(instance); - if(isFull == true) + while(MailboxFull(instance)) { - goto end_of_function; + OS_TaskDelay(SBN_MAILBOX_BLOCKING_DELAY); } + uio_write(instance, MAILBOX_WRITE_REG, *buffer++); + status = size; } end_of_function: return status; } - +/* Non-blocking read */ int MailboxRead(void *instance, unsigned int *buffer, unsigned int size) { int status = 0; @@ -142,6 +141,131 @@ int MailboxRead(void *instance, unsigned int *buffer, unsigned int size) } +void SBN_PQ_Output_Task(void) +{ + CFE_ES_RegisterChildTask(); + + SBN_PQ_ChannelHandler(&SBN_UIO_Mailbox_Data.Channel); + + CFE_ES_ExitChildTask(); +} + + +void SBN_PQ_ChannelHandler(PQ_ChannelData_t *Channel) +{ + int32 iStatus = CFE_SUCCESS; + uint32 msgSize = 0; + char *buffer; + + SBN_UIO_Mailbox_Data.TaskContinueFlag = TRUE; + + while(SBN_UIO_Mailbox_Data.TaskContinueFlag) + { + if(PQ_Channel_State(Channel) == PQ_CHANNEL_OPENED) + { + PQ_OutputQueue_t *chQueue = &Channel->OutputQueue; + + iStatus = OS_QueueGet( + chQueue->OSALQueueID, + &buffer, sizeof(buffer), &msgSize, SBN_PQ_CHANNEL_GET_TIMEOUT); + + if(iStatus == OS_SUCCESS) + { + uint16 actualMessageSize = CFE_SB_GetTotalMsgLength((CFE_SB_MsgPtr_t)buffer); + CFE_SB_MsgId_t MsgID = CFE_SB_GetMsgId((CFE_SB_MsgPtr_t)buffer); + SBN_MsgType_t MsgType; + size_t BufSz = actualMessageSize + SBN_PACKED_HDR_SZ; + /* TODO fix this. */ + uint8 Buf[BufSz]; + unsigned int SizeInBytes = 0; + unsigned int SizeInWords = 0; + unsigned int Checksum = 0; + unsigned int i = 0; + + if(MsgID == SBN_SUB_MID || MsgID == SBN_ALLSUB_MID) + { + MsgType = SBN_SUBSCRIBE_MSG; + } + else if (MsgID == SBN_UNSUB_MID) + { + MsgType = SBN_UN_SUBSCRIBE_MSG; + } + else + { + MsgType = SBN_APP_MSG; + } + + SBN_PackMsg(&Buf, actualMessageSize, MsgType, CFE_PSP_GetProcessorId(), buffer); + + SizeInBytes = BufSz; + /* Ensure word boundary */ + SizeInBytes = (BufSz + (MAILBOX_WORD_SIZE - (BufSz % MAILBOX_WORD_SIZE))); + SizeInWords = SizeInBytes / MAILBOX_WORD_SIZE; + + //printf("BufSz %u\n", BufSz); + //printf("SizeInBytes %u\n", SizeInBytes); + //printf("SizeInWords %u\n", SizeInWords); + + if(SizeInWords + MAILBOX_HEADER_SIZE_WORDS > MAILBOX_MAX_BUFFER_SIZE_WORDS) + { + /* TODO update to event. */ + OS_printf("SBN_MailboxSend Send size too large %u bytes, %u words.\n", SizeInBytes, SizeInWords); + continue; + } + + /* Set CADU. */ + SBN_UIO_Mailbox_Data.OutputBuffer[0] = MAILBOX_MSG_CADU; + /* Set size of the payload in words. */ + SBN_UIO_Mailbox_Data.OutputBuffer[1] = SizeInWords; + /* Copy the payload. */ + memcpy(&SBN_UIO_Mailbox_Data.OutputBuffer[2], &Buf[0], BufSz); + + Checksum = 0; + /* Checksum Calculation */ + for(i = 0; i < SizeInWords - 1; ++i) + { + Checksum += SBN_UIO_Mailbox_Data.OutputBuffer[i + 2]; + } + /* Set the checksum. */ + SBN_UIO_Mailbox_Data.OutputBuffer[SizeInWords + 2] = Checksum; + + /* Blocking write. */ + (void) MailboxWrite(SBN_UIO_Mailbox_Data.Instance, &SBN_UIO_Mailbox_Data.OutputBuffer[0], SizeInWords + MAILBOX_HEADER_SIZE_WORDS); + + iStatus = CFE_ES_PutPoolBuf(Channel->MemPoolHandle, (uint32 *)buffer); + if(iStatus < 0) + { + (void) CFE_EVS_SendEvent(PQ_PUT_POOL_ERR_EID, CFE_EVS_ERROR, + "PutPoolBuf: error=0x%08lx", + (unsigned long)iStatus); + } + else + { + //OS_MutSemTake(TO_AppData.MutexID); + Channel->MemInUse -= iStatus; + //OS_MutSemGive(TO_AppData.MutexID); + + PQ_Channel_LockByRef(Channel); + chQueue->CurrentlyQueuedCnt--; + chQueue->SentCount++; + PQ_Channel_UnlockByRef(Channel); + } + + } + else if(iStatus == OS_QUEUE_TIMEOUT) + { + /* Do nothing. Just loop back around and check the guard. */ + } + else + { + CFE_EVS_SendEvent(PQ_OSQUEUE_GET_ERROR_EID, CFE_EVS_ERROR, + "Send task failed to pop message from queue. (%i).", (int)iStatus); + } + } + } +} + + static int InitNet(SBN_NetInterface_t *Net) { int Status = SBN_SUCCESS; @@ -154,8 +278,57 @@ static int InitNet(SBN_NetInterface_t *Net) /* TODO update to event. */ OS_printf("SBN_UIO_Mailbox InitDevice Instance Null.\n"); Status = SBN_ERROR; + goto end_of_function; } + /* Initialize PQ channel. */ + Status = PQ_Channel_Init(SBN_PQ_CHANNEL_NUMBER, &SBN_UIO_Mailbox_Data.Channel); + if (Status != CFE_SUCCESS) + { + /* TODO update to event. */ + OS_printf("PQ_Channel_Init failed%u\n", Status); + Status = SBN_ERROR; + goto end_of_function; + } + + /* Open PQ channel. */ + Status = PQ_Channel_OpenChannel( + &SBN_UIO_Mailbox_Data.Channel, + SBN_PQ_CHANNEL_NAME, + SBN_PQ_CONFIG_TABLENAME, + SBN_PQ_CONFIG_TABLE_FILENAME, + &PQ_BackupConfigTbl, + SBN_PQ_DUMP_TABLENAME, + SBN_PQ_CF_SEM_INIT_VALUE, + SBN_PQ_CF_THROTTLE_SEM_NAME); + + if (Status != CFE_SUCCESS) + { + /* TODO update to event. */ + OS_printf("PQ_Channel_OpenChannel failed %u\n", Status); + Status = SBN_ERROR; + goto end_of_function; + } + + /* Create send task. */ + SBN_UIO_Mailbox_Data.SendTask = SBN_PQ_Output_Task; + Status = CFE_ES_CreateChildTask( + &SBN_UIO_Mailbox_Data.ChildTaskID, + SBN_PQ_SEND_TASK_NAME, + SBN_UIO_Mailbox_Data.SendTask, + 0, + SBN_PQ_SEND_TASK_STACK_SIZE, + SBN_PQ_SEND_TASK_PRIORITY, + SBN_PQ_SEND_TASK_FLAGS); + if (Status != CFE_SUCCESS) + { + /* TODO update to event. */ + printf("CFE_ES_CreateChildTask failed%u\n", Status); + Status = SBN_ERROR; + goto end_of_function; + } + +end_of_function: return Status; } @@ -185,60 +358,6 @@ static int PollPeer(SBN_PeerInterface_t *Peer) } -static int SBN_MailboxSend(void *instance, unsigned int *buffer, unsigned int size) -{ - int Status = SBN_SUCCESS; - int SizeOutWords = 0; - unsigned int SizeInBytes = 0; - unsigned int SizeInWords = 0; - unsigned int Checksum = 0; - unsigned int i = 0; - - SizeInBytes = size; - /* Ensure word boundary */ - if(SizeInBytes % MAILBOX_WORD_SIZE) - { - SizeInBytes = (size + (MAILBOX_WORD_SIZE - (size % MAILBOX_WORD_SIZE))); - SizeInWords = SizeInBytes / MAILBOX_WORD_SIZE; - } - - if(SizeInWords + MAILBOX_HEADER_SIZE_WORDS > MAILBOX_MAX_BUFFER_SIZE_WORDS) - { - /* TODO update to event. */ - OS_printf("SBN_MailboxSend Send size too large %u bytes, %u words.\n", SizeInBytes, SizeInWords); - Status = SBN_ERROR; - goto end_of_function; - } - - /* CADU */ - SBN_UIO_Mailbox_Data.OutputBuffer[0] = MAILBOX_MSG_CADU; - /* Size */ - SBN_UIO_Mailbox_Data.OutputBuffer[1] = SizeInWords; - /* Message */ - memcpy(&SBN_UIO_Mailbox_Data.OutputBuffer[2], buffer, size); - /* Checksum Calculation */ - for(i = 0; i < SizeInWords - MAILBOX_HEADER_SIZE_WORDS; ++i) - { - Checksum += SBN_UIO_Mailbox_Data.OutputBuffer[i + 2]; - } - - /* Write Checksum */ - SBN_UIO_Mailbox_Data.OutputBuffer[SizeInWords - 1] = Checksum; - - /* Write to mailbox */ - SizeOutWords = MailboxWrite(SBN_UIO_Mailbox_Data.Instance, &SBN_UIO_Mailbox_Data.OutputBuffer[0], SizeInWords + MAILBOX_HEADER_SIZE_WORDS); - if(SizeOutWords != SizeInWords + MAILBOX_HEADER_SIZE_WORDS) - { - /* TODO update to event. */ - OS_printf("SBN_MailboxSend incomplete write %u:%u.\n", SizeInWords, SizeOutWords); - Status = SBN_ERROR; - } - -end_of_function: - return Status; -} - - static int Send(SBN_PeerInterface_t *Peer, SBN_MsgType_t MsgType, SBN_MsgSz_t MsgSz, void *Payload) { @@ -253,11 +372,12 @@ static int Send(SBN_PeerInterface_t *Peer, SBN_MsgType_t MsgType, goto end_of_function; } - /* Add SBN header. */ - SBN_PackMsg(&SBN_UIO_Mailbox_Data.PackedBuffer[0], MsgSz, MsgType, CFE_PSP_GetProcessorId(), Payload); - - /* Send via Mailbox. */ - Status = SBN_MailboxSend(SBN_UIO_Mailbox_Data.Instance, &SBN_UIO_Mailbox_Data.PackedBuffer[0], TotalSize); + printf("MsgSz into queue %u\n", MsgSz); + /* Push message onto the PQ */ + PQ_Channel_LockByRef(&SBN_UIO_Mailbox_Data.Channel); + PQ_Classifier_Run(&SBN_UIO_Mailbox_Data.Channel, Payload, &SBN_UIO_Mailbox_Data.HkTlm); + PQ_Scheduler_Run(&SBN_UIO_Mailbox_Data.Channel); + PQ_Channel_UnlockByRef(&SBN_UIO_Mailbox_Data.Channel); end_of_function: return Status; diff --git a/apps/sbn/modules/uio_mbox/fsw/src/sbn_uio_mailbox_if.h b/apps/sbn/modules/uio_mbox/fsw/src/sbn_uio_mailbox_if.h index b5cf6a5ed..220cd3287 100644 --- a/apps/sbn/modules/uio_mbox/fsw/src/sbn_uio_mailbox_if.h +++ b/apps/sbn/modules/uio_mbox/fsw/src/sbn_uio_mailbox_if.h @@ -3,7 +3,10 @@ #include #include "mailbox_parser.h" +#include "pq_includes.h" +#include "cfe.h" +/* Mailbox specific */ #define MAILBOX_SIZE (0x10000) #define MAILBOX_UIO_PATH "/dev/uio0" #define MAILBOX_HEADER_SIZE_BYTES (12) @@ -14,6 +17,24 @@ #define MAILBOX_SBN_HEADER_SIZE_WORDS (2) #define MAILBOX_SBN_TASK_DELAY_MSEC (1) +#define SBN_MAILBOX_BLOCKING_DELAY (1) + +/* PQ specific */ +#define SBN_PQ_CHANNEL_NAME ("MBOX") +#define SBN_PQ_CHANNEL_NUMBER (0) +#define SBN_PQ_CONFIG_TABLENAME ("CFG") +#define SBN_PQ_DUMP_TABLENAME ("DMP") +#define SBN_PQ_CONFIG_TABLE_FILENAME ("/cf/apps/pq_cfg.tbl") +#define SBN_PQ_CF_THROTTLE_SEM_NAME ("PQ_CF_CH0_SEM") +#define SBN_PQ_CF_SEM_INIT_VALUE (1) + +/* Send task specific */ +#define SBN_PQ_SEND_TASK_NAME ("PQ_OUTCH_0") +#define SBN_PQ_SEND_TASK_STACK_SIZE (131072) +#define SBN_PQ_SEND_TASK_PRIORITY (50) +#define SBN_PQ_SEND_TASK_FLAGS (OS_ENABLE_CORE_0) +#define SBN_PQ_CHANNEL_GET_TIMEOUT (500) + typedef struct { @@ -23,6 +44,13 @@ typedef struct unsigned int ParserBuffer[1500/sizeof(unsigned int)]; unsigned int PackedBuffer[1500/sizeof(unsigned int)]; Mailbox_Parser_Handle_t Parser; + /* PQ specific. */ + PQ_ChannelData_t Channel; + PQ_HkTlm_t HkTlm; + /* Send task specific. */ + uint32 ChildTaskID; + CFE_ES_ChildTaskMainFuncPtr_t SendTask; + boolean TaskContinueFlag; } SBN_UIO_Mailbox_Data_t; diff --git a/config/obc/ppd/target/CMakeLists.txt b/config/obc/ppd/target/CMakeLists.txt index 44017f1f1..b3b142b98 100644 --- a/config/obc/ppd/target/CMakeLists.txt +++ b/config/obc/ppd/target/CMakeLists.txt @@ -151,9 +151,16 @@ buildliner_add_app( ${CMAKE_CURRENT_SOURCE_DIR}/apps/sbn/src/sbn_remap_tbl.c ) +#buildliner_add_app( + #sbn_udp + #DEFINITION ${PROJECT_SOURCE_DIR}/apps/sbn/modules/udp/fsw/for_build + #CONFIG_SOURCES + #${CMAKE_CURRENT_SOURCE_DIR}/apps/pq_lib/tables/pq_backup_cfg.c +#) + buildliner_add_app( - sbn_udp - DEFINITION ${PROJECT_SOURCE_DIR}/apps/sbn/modules/udp/fsw/for_build + sbn_uio_mbox + DEFINITION ${PROJECT_SOURCE_DIR}/apps/sbn/modules/uio_mbox/fsw/for_build CONFIG_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/apps/pq_lib/tables/pq_backup_cfg.c ) From d0d01c74b03b14993d194221e8c0488ce84b665e Mon Sep 17 00:00:00 2001 From: cnalley Date: Tue, 9 Feb 2021 20:45:50 +0000 Subject: [PATCH 078/370] Continue on CPD mailbox sbn module. --- .../modules/mbox/fsw/for_build/CMakeLists.txt | 2 +- .../sbn/modules/mbox/fsw/src/sbn_mailbox_if.c | 232 +++++++++++++----- .../sbn/modules/mbox/fsw/src/sbn_mailbox_if.h | 25 ++ config/obc/cpd/target/CMakeLists.txt | 15 ++ 4 files changed, 218 insertions(+), 56 deletions(-) diff --git a/apps/sbn/modules/mbox/fsw/for_build/CMakeLists.txt b/apps/sbn/modules/mbox/fsw/for_build/CMakeLists.txt index 47dd7a0fb..b1e475797 100644 --- a/apps/sbn/modules/mbox/fsw/for_build/CMakeLists.txt +++ b/apps/sbn/modules/mbox/fsw/for_build/CMakeLists.txt @@ -41,6 +41,6 @@ buildliner_add_app_def(sbn_mbox INCLUDES ${CMAKE_CURRENT_SOURCE_DIR}/../src/ - ${CMAKE_CURRENT_SOURCE_DIR}/../../../../fsw/platform_inc/ + ${CMAKE_CURRENT_SOURCE_DIR}/../../../../fsw/src/ ) diff --git a/apps/sbn/modules/mbox/fsw/src/sbn_mailbox_if.c b/apps/sbn/modules/mbox/fsw/src/sbn_mailbox_if.c index 6dc618361..01d5ee3ab 100644 --- a/apps/sbn/modules/mbox/fsw/src/sbn_mailbox_if.c +++ b/apps/sbn/modules/mbox/fsw/src/sbn_mailbox_if.c @@ -3,20 +3,22 @@ #include "sbn_platform_cfg.h" +extern PQ_ChannelTbl_t PQ_BackupConfigTbl; + SBN_Mailbox_Data_t SBN_Mailbox_Data; +void SBN_PQ_Output_Task(void); +void SBN_PQ_ChannelHandler(PQ_ChannelData_t *Channel); + +/* Blocking write */ int MailboxWrite(XMbox *instance, const unsigned int *buffer, unsigned int size) { int Status = 0; unsigned int BytesSent = 0; - - Status = XMbox_Write(instance, buffer, size, &BytesSent); - if(Status != XST_SUCCESS) - { - printf("XMbox_Write Failed %u.\r\n", Status); - } + /* TODO this busy waits */ + XMbox_WriteBlocking(instance, buffer, size, &BytesSent); Status = BytesSent; end_of_function: @@ -75,6 +77,54 @@ static int InitNet(SBN_NetInterface_t *Net) goto end_of_function; } + + /* Initialize PQ channel. */ + Status = PQ_Channel_Init(SBN_PQ_CHANNEL_NUMBER, &SBN_UIO_Mailbox_Data.Channel); + if (Status != CFE_SUCCESS) + { + /* TODO update to event. */ + OS_printf("PQ_Channel_Init failed%u\n", Status); + Status = SBN_ERROR; + goto end_of_function; + } + + /* Open PQ channel. */ + Status = PQ_Channel_OpenChannel( + &SBN_UIO_Mailbox_Data.Channel, + SBN_PQ_CHANNEL_NAME, + SBN_PQ_CONFIG_TABLENAME, + SBN_PQ_CONFIG_TABLE_FILENAME, + &PQ_BackupConfigTbl, + SBN_PQ_DUMP_TABLENAME, + SBN_PQ_CF_SEM_INIT_VALUE, + SBN_PQ_CF_THROTTLE_SEM_NAME); + + if (Status != CFE_SUCCESS) + { + /* TODO update to event. */ + OS_printf("PQ_Channel_OpenChannel failed %u\n", Status); + Status = SBN_ERROR; + goto end_of_function; + } + + /* Create send task. */ + SBN_UIO_Mailbox_Data.SendTask = SBN_PQ_Output_Task; + Status = CFE_ES_CreateChildTask( + &SBN_UIO_Mailbox_Data.ChildTaskID, + SBN_PQ_SEND_TASK_NAME, + SBN_UIO_Mailbox_Data.SendTask, + 0, + SBN_PQ_SEND_TASK_STACK_SIZE, + SBN_PQ_SEND_TASK_PRIORITY, + SBN_PQ_SEND_TASK_FLAGS); + if (Status != CFE_SUCCESS) + { + /* TODO update to event. */ + printf("CFE_ES_CreateChildTask failed%u\n", Status); + Status = SBN_ERROR; + goto end_of_function; + } + end_of_function: return Status; } @@ -111,57 +161,128 @@ int SBN_MailboxRecv(void *instance, const unsigned int *buffer, unsigned int siz } -static int SBN_MailboxSend(void *instance, unsigned int *buffer, unsigned int size) +void SBN_PQ_Output_Task(void) { - int Status = SBN_SUCCESS; - int SizeOutWords = 0; - unsigned int SizeInBytes = 0; - unsigned int SizeInWords = 0; - unsigned int Checksum = 0; - unsigned int i = 0; - - SizeInBytes = size; - /* Ensure word boundary */ - if(SizeInBytes % MAILBOX_WORD_SIZE) - { - SizeInBytes = (size + (MAILBOX_WORD_SIZE - (size % MAILBOX_WORD_SIZE))); - SizeInWords = SizeInBytes / MAILBOX_WORD_SIZE; - } + CFE_ES_RegisterChildTask(); - if(SizeInWords + MAILBOX_HEADER_SIZE_WORDS > MAILBOX_MAX_BUFFER_SIZE_WORDS) - { - /* TODO update to event. */ - OS_printf("SBN_MailboxSend Send size too large %u bytes, %u words.\n", SizeInBytes, SizeInWords); - Status = SBN_ERROR; - goto end_of_function; - } + SBN_PQ_ChannelHandler(&SBN_UIO_Mailbox_Data.Channel); - /* CADU */ - SBN_UIO_Mailbox_Data.OutputBuffer[0] = MAILBOX_MSG_CADU; - /* Size */ - SBN_UIO_Mailbox_Data.OutputBuffer[1] = SizeInWords; - /* Message */ - memcpy(&SBN_UIO_Mailbox_Data.OutputBuffer[2], buffer, size); - /* Checksum Calculation */ - for(i = 0; i < SizeInWords - MAILBOX_HEADER_SIZE_WORDS; ++i) - { - Checksum += SBN_UIO_Mailbox_Data.OutputBuffer[i + 2]; - } + CFE_ES_ExitChildTask(); +} - /* Write Checksum */ - SBN_UIO_Mailbox_Data.OutputBuffer[SizeInWords - 1] = Checksum; - /* Write to mailbox */ - SizeOutWords = MailboxWrite(SBN_UIO_Mailbox_Data.Mbox, &SBN_UIO_Mailbox_Data.OutputBuffer[0], SizeInWords + MAILBOX_HEADER_SIZE_WORDS); - if(SizeOutWords != SizeInWords + MAILBOX_HEADER_SIZE_WORDS) +void SBN_PQ_ChannelHandler(PQ_ChannelData_t *Channel) +{ + int32 iStatus = CFE_SUCCESS; + uint32 msgSize = 0; + char *buffer; + + SBN_UIO_Mailbox_Data.TaskContinueFlag = TRUE; + + while(SBN_UIO_Mailbox_Data.TaskContinueFlag) { - /* TODO update to event. */ - OS_printf("SBN_MailboxSend incomplete write %u:%u.\n", SizeInWords, SizeOutWords); - Status = SBN_ERROR; - } + if(PQ_Channel_State(Channel) == PQ_CHANNEL_OPENED) + { + PQ_OutputQueue_t *chQueue = &Channel->OutputQueue; -end_of_function: - return Status; + iStatus = OS_QueueGet( + chQueue->OSALQueueID, + &buffer, sizeof(buffer), &msgSize, SBN_PQ_CHANNEL_GET_TIMEOUT); + + if(iStatus == OS_SUCCESS) + { + uint16 actualMessageSize = CFE_SB_GetTotalMsgLength((CFE_SB_MsgPtr_t)buffer); + CFE_SB_MsgId_t MsgID = CFE_SB_GetMsgId((CFE_SB_MsgPtr_t)buffer); + SBN_MsgType_t MsgType; + size_t BufSz = actualMessageSize + SBN_PACKED_HDR_SZ; + /* TODO fix this. */ + uint8 Buf[BufSz]; + unsigned int SizeInBytes = 0; + unsigned int SizeInWords = 0; + unsigned int Checksum = 0; + unsigned int i = 0; + + if(MsgID == SBN_SUB_MID || MsgID == SBN_ALLSUB_MID) + { + MsgType = SBN_SUBSCRIBE_MSG; + } + else if (MsgID == SBN_UNSUB_MID) + { + MsgType = SBN_UN_SUBSCRIBE_MSG; + } + else + { + MsgType = SBN_APP_MSG; + } + + SBN_PackMsg(&Buf, actualMessageSize, MsgType, CFE_PSP_GetProcessorId(), buffer); + + SizeInBytes = BufSz; + /* Ensure word boundary */ + SizeInBytes = (BufSz + (MAILBOX_WORD_SIZE - (BufSz % MAILBOX_WORD_SIZE))); + SizeInWords = SizeInBytes / MAILBOX_WORD_SIZE; + + //printf("BufSz %u\n", BufSz); + //printf("SizeInBytes %u\n", SizeInBytes); + //printf("SizeInWords %u\n", SizeInWords); + + if(SizeInWords + MAILBOX_HEADER_SIZE_WORDS > MAILBOX_MAX_BUFFER_SIZE_WORDS) + { + /* TODO update to event. */ + OS_printf("SBN_MailboxSend Send size too large %u bytes, %u words.\n", SizeInBytes, SizeInWords); + continue; + } + + /* Set CADU. */ + SBN_UIO_Mailbox_Data.OutputBuffer[0] = MAILBOX_MSG_CADU; + /* Set size of the payload in words. */ + SBN_UIO_Mailbox_Data.OutputBuffer[1] = SizeInWords; + /* Copy the payload. */ + memcpy(&SBN_UIO_Mailbox_Data.OutputBuffer[2], &Buf[0], BufSz); + + Checksum = 0; + /* Checksum Calculation */ + for(i = 0; i < SizeInWords - 1; ++i) + { + Checksum += SBN_UIO_Mailbox_Data.OutputBuffer[i + 2]; + } + /* Set the checksum. */ + SBN_UIO_Mailbox_Data.OutputBuffer[SizeInWords + 2] = Checksum; + + /* Blocking write. */ + (void) MailboxWrite(SBN_UIO_Mailbox_Data.Instance, &SBN_UIO_Mailbox_Data.OutputBuffer[0], SizeInWords + MAILBOX_HEADER_SIZE_WORDS); + + iStatus = CFE_ES_PutPoolBuf(Channel->MemPoolHandle, (uint32 *)buffer); + if(iStatus < 0) + { + (void) CFE_EVS_SendEvent(PQ_PUT_POOL_ERR_EID, CFE_EVS_ERROR, + "PutPoolBuf: error=0x%08lx", + (unsigned long)iStatus); + } + else + { + //OS_MutSemTake(TO_AppData.MutexID); + Channel->MemInUse -= iStatus; + //OS_MutSemGive(TO_AppData.MutexID); + + PQ_Channel_LockByRef(Channel); + chQueue->CurrentlyQueuedCnt--; + chQueue->SentCount++; + PQ_Channel_UnlockByRef(Channel); + } + + } + else if(iStatus == OS_QUEUE_TIMEOUT) + { + /* Do nothing. Just loop back around and check the guard. */ + } + else + { + CFE_EVS_SendEvent(PQ_OSQUEUE_GET_ERROR_EID, CFE_EVS_ERROR, + "Send task failed to pop message from queue. (%i).", (int)iStatus); + } + } + } } @@ -179,11 +300,12 @@ static int Send(SBN_PeerInterface_t *Peer, SBN_MsgType_t MsgType, goto end_of_function; } - /* Add SBN header. */ - SBN_PackMsg(&SBN_UIO_Mailbox_Data.PackedBuffer[0], MsgSz, MsgType, CFE_PSP_GetProcessorId(), Payload); - - /* Send via Mailbox. */ - Status = SBN_MailboxSend(SBN_UIO_Mailbox_Data.Mbox, &SBN_UIO_Mailbox_Data.PackedBuffer[0], TotalSize); + printf("MsgSz into queue %u\n", MsgSz); + /* Push message onto the PQ */ + PQ_Channel_LockByRef(&SBN_UIO_Mailbox_Data.Channel); + PQ_Classifier_Run(&SBN_UIO_Mailbox_Data.Channel, Payload, &SBN_UIO_Mailbox_Data.HkTlm); + PQ_Scheduler_Run(&SBN_UIO_Mailbox_Data.Channel); + PQ_Channel_UnlockByRef(&SBN_UIO_Mailbox_Data.Channel); end_of_function: return Status; diff --git a/apps/sbn/modules/mbox/fsw/src/sbn_mailbox_if.h b/apps/sbn/modules/mbox/fsw/src/sbn_mailbox_if.h index 0e3e1fcec..9e8c8c958 100644 --- a/apps/sbn/modules/mbox/fsw/src/sbn_mailbox_if.h +++ b/apps/sbn/modules/mbox/fsw/src/sbn_mailbox_if.h @@ -12,6 +12,24 @@ #define MAILBOX_SBN_HEADER_SIZE_WORDS (2) #define MAILBOX_SBN_TASK_DELAY_MSEC (1) +#define SBN_MAILBOX_BLOCKING_DELAY (1) + +/* PQ specific */ +#define SBN_PQ_CHANNEL_NAME ("MBOX") +#define SBN_PQ_CHANNEL_NUMBER (0) +#define SBN_PQ_CONFIG_TABLENAME ("CFG") +#define SBN_PQ_DUMP_TABLENAME ("DMP") +#define SBN_PQ_CONFIG_TABLE_FILENAME ("/cf/apps/pq_cfg.tbl") +#define SBN_PQ_CF_THROTTLE_SEM_NAME ("PQ_CF_CH0_SEM") +#define SBN_PQ_CF_SEM_INIT_VALUE (1) + +/* Send task specific */ +#define SBN_PQ_SEND_TASK_NAME ("PQ_OUTCH_0") +#define SBN_PQ_SEND_TASK_STACK_SIZE (131072) +#define SBN_PQ_SEND_TASK_PRIORITY (50) +#define SBN_PQ_SEND_TASK_FLAGS (OS_ENABLE_CORE_0) +#define SBN_PQ_CHANNEL_GET_TIMEOUT (500) + typedef struct { @@ -22,6 +40,13 @@ typedef struct unsigned int ParserBuffer[1500/sizeof(unsigned int)]; unsigned int PackedBuffer[1500/sizeof(unsigned int)]; Mailbox_Parser_Handle_t Parser; + /* PQ specific. */ + PQ_ChannelData_t Channel; + PQ_HkTlm_t HkTlm; + /* Send task specific. */ + uint32 ChildTaskID; + CFE_ES_ChildTaskMainFuncPtr_t SendTask; + boolean TaskContinueFlag; } SBN_Mailbox_Data_t; diff --git a/config/obc/cpd/target/CMakeLists.txt b/config/obc/cpd/target/CMakeLists.txt index 8bc822840..798ecaeba 100644 --- a/config/obc/cpd/target/CMakeLists.txt +++ b/config/obc/cpd/target/CMakeLists.txt @@ -118,6 +118,21 @@ buildliner_add_app( CONFIG ${PROJECT_SOURCE_DIR}/config/shared/apps/sc ) +buildliner_add_app( + sbn + DEFINITION ${PROJECT_SOURCE_DIR}/apps/sbn/fsw/for_build + CONFIG ${CMAKE_CURRENT_SOURCE_DIR}/apps/sbn + CONFIG_SOURCES + ${CMAKE_CURRENT_SOURCE_DIR}/apps/sbn/src/sbn_remap_tbl.c +) + +buildliner_add_app( + sbn_mbox + DEFINITION ${PROJECT_SOURCE_DIR}/apps/sbn/modules/mbox/fsw/for_build + CONFIG_SOURCES + ${CMAKE_CURRENT_SOURCE_DIR}/apps/pq_lib/tables/pq_backup_cfg.c +) + # This is temporarily removed until we can remove the OS dependency # in ci, i.e. "arpa/inet.h" #buildliner_add_app( From 62c4946af87cc81bd8602be4e06251ea17219f43 Mon Sep 17 00:00:00 2001 From: lorenzo-gomez-windhover Date: Tue, 9 Feb 2021 15:23:55 -0600 Subject: [PATCH 079/370] -Updated DS configuration; added missing strings to commands --- apps/ds/wh_design.yaml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/apps/ds/wh_design.yaml b/apps/ds/wh_design.yaml index be2abcfd1..26127e8fc 100644 --- a/apps/ds/wh_design.yaml +++ b/apps/ds/wh_design.yaml @@ -115,6 +115,12 @@ - parent: DS_DestPathCmd_t member: Pathname type: string + - parent: DS_DestBaseCmd_t + member: Basename + type: string + - parent: DS_DestExtCmd_t + member: Extension + type: string telemetry: DS_HK_TLM_MID: msgID: From 1e7193b99b1aa501d5bf8ed2847fab34140710bd Mon Sep 17 00:00:00 2001 From: lorenzo-gomez-windhover Date: Tue, 9 Feb 2021 18:02:30 -0600 Subject: [PATCH 080/370] -DS has been verified -NOTE:Shold be revised in the future for "parseInt" bug --- .../Displays/Apps/DS/AddMid.opi | 164 +- .../Displays/Apps/DS/CloseAll.opi | 63 +- .../Displays/Apps/DS/CloseFile.opi | 222 +- .../Displays/Apps/DS/GetFileInfo.opi | 7431 +++++++++++++++++ .../Displays/Apps/DS/Main.opi | 38 +- .../Displays/Apps/DS/SetAppState.opi | 35 - .../Displays/Apps/DS/SetDestAge.opi | 257 + .../Displays/Apps/DS/SetDestBase.opi | 264 +- .../Displays/Apps/DS/SetDestCount.opi | 258 + .../Displays/Apps/DS/SetDestExt.opi | 260 + .../Displays/Apps/DS/SetDestPath.opi | 264 +- .../Displays/Apps/DS/SetDestSize.opi | 259 + .../Displays/Apps/DS/SetDestState.opi | 262 +- .../Displays/Apps/DS/SetDestType.opi | 258 + .../Displays/Apps/DS/SetFilterFile.opi | 356 + .../Displays/Apps/DS/SetFilterParms.opi | 549 ++ .../Displays/Apps/DS/SetFilterType.opi | 355 + 17 files changed, 11231 insertions(+), 64 deletions(-) delete mode 100644 core/base/tools/commander/workspace_template/Displays/Apps/DS/SetAppState.opi diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/DS/AddMid.opi b/core/base/tools/commander/workspace_template/Displays/Apps/DS/AddMid.opi index 8f64277af..df6bfdb12 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/DS/AddMid.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/DS/AddMid.opi @@ -15,7 +15,7 @@ 6 - 600 + 400 true @@ -28,8 +28,168 @@ true true Display - 800 + 400 -736e4684:150ac3c95a1:-720f -1 -1 + + + false + false + false + + + + false + + + + 3 + 1 + + true + + Default + + false + + + + 0 + 25 + 0 + false + Infinity + -Infinity + false + AddMidMessaeIDInput + 0 + true + loc://AddMidMessageID<VDouble> + + 0.0 + + + true + true + false + + + 0 + true + + + $(pv_name) +$(pv_value) + false + true + Text Input + 100 + -1c861553:17787873ea6:-7feb + 144 + 37 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 1 + Label + + + true + true + false + + + MessageID + + true + 1 + true + Label + 80 + false + -1c861553:17787873ea6:-7fe8 + 54 + 40 + + + + + + + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 24 + ../../Resources/send.png + Action Button_1 + 0 + + + + + true + true + false + + + + Add Message + false + $(pv_name) +$(pv_value) + true + Action Button + 163 + -1c861553:17787873ea6:-7fde + 90 + 84 + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/DS/CloseAll.opi b/core/base/tools/commander/workspace_template/Displays/Apps/DS/CloseAll.opi index d3535156a..48b9ce36a 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/DS/CloseAll.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/DS/CloseAll.opi @@ -15,7 +15,7 @@ 6 - 600 + 300 true @@ -28,8 +28,67 @@ true true Display - 800 + 300 -736e4684:150ac3c95a1:-720b -1 -1 + + + + + + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 24 + ../../Resources/send.png + Action Button_1 + 0 + + + + + true + true + false + + + + Colse All + false + $(pv_name) +$(pv_value) + true + Action Button + 163 + -1c861553:17787873ea6:-7f8c + 60 + 90 + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/DS/CloseFile.opi b/core/base/tools/commander/workspace_template/Displays/Apps/DS/CloseFile.opi index a6219d505..87ea49d57 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/DS/CloseFile.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/DS/CloseFile.opi @@ -15,7 +15,7 @@ 6 - 600 + 400 true @@ -28,8 +28,226 @@ true true Display - 800 + 400 -736e4684:150ac3c95a1:-7217 -1 -1 + + + + + + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 24 + ../../Resources/send.png + Action Button_1 + 0 + + + + + true + true + false + + + + Colse All + false + $(pv_name) +$(pv_value) + true + Action Button + 163 + -1c861553:17787873ea6:-7f73 + 198 + 108 + + + + false + false + + + + true + + + + 3 + 1 + false + true + + Default + + false + + + + 0 + 25 + 1 + false + true + Infinity + -Infinity + EntryID + 10.0 + 3 + false + loc://CloseFileFileTableIndex<VDouble> + + + + true + true + false + + + true + 1.0 + $(pv_name) +$(pv_value) + false + 1 + true + Spinner + 85 + -1c861553:17787873ea6:-7f6f + 156 + 54 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 1 + Label + + + true + true + false + + + FileTableIndex + + true + 1 + true + Label + 121 + false + -1c861553:17787873ea6:-7f6b + 30 + 57 + + + + + + + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 24 + ../../Resources/send.png + Action Button_1 + 0 + + + + + true + true + false + + + + Colse File + false + $(pv_name) +$(pv_value) + true + Action Button + 163 + -1c861553:17787873ea6:-7f4b + 18 + 108 + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/DS/GetFileInfo.opi b/core/base/tools/commander/workspace_template/Displays/Apps/DS/GetFileInfo.opi index baa14858c..476ff7a82 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/DS/GetFileInfo.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/DS/GetFileInfo.opi @@ -32,4 +32,7435 @@ -736e4684:150ac3c95a1:-7213 -1 -1 + + + + + + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 24 + ../../Resources/send.png + Action Button_1 + 0 + + + + + true + true + false + + + + GetFileInfo + false + $(pv_name) +$(pv_value) + true + Action Button + 163 + -1c861553:17787873ea6:-7f22 + 96 + 30 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 1 + Label + + + true + true + false + + + Age + + true + 1 + true + Label + 80 + false + -1c861553:17787873ea6:-7e6c + 173 + 96 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 1 + Label_1 + + + true + true + false + + + Size + + true + 1 + true + Label + 80 + false + -1c861553:17787873ea6:-7e69 + 252 + 96 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 1 + Label_2 + + + true + true + false + + + Rate + + true + 1 + true + Label + 80 + false + -1c861553:17787873ea6:-7e66 + 348 + 96 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 1 + Label_3 + + + true + true + false + + + Sequence Count + + true + 1 + true + Label + 139 + false + -1c861553:17787873ea6:-7e63 + 427 + 96 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 1 + Label_4 + + + true + true + false + + + Enabled + + true + 1 + true + Label + 80 + false + -1c861553:17787873ea6:-7e60 + 565 + 96 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 1 + Label_5 + + + true + true + false + + + Open + + true + 1 + true + Label + 80 + false + -1c861553:17787873ea6:-7e56 + 654 + 96 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 1 + Label_6 + + + true + true + false + + + Name + + true + 1 + true + Label + 80 + false + -1c861553:17787873ea6:-7e4c + 17 + 96 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update + 0 + true + /cfs/ds/DS_FileInfoPkt_t.FileInfo_0_.FileName + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 157 + false + -1c861553:17787873ea6:-7e46 + 17 + 138 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_1 + 0 + true + /cfs/ds/DS_FileInfoPkt_t.FileInfo_0_.FileAge + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 65 + false + -1c861553:17787873ea6:-7e43 + 188 + 138 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_2 + 0 + true + /cfs/ds/DS_FileInfoPkt_t.FileInfo_0_.FileSize + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 65 + false + -1c861553:17787873ea6:-7e39 + 267 + 138 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_3 + 0 + true + /cfs/ds/DS_FileInfoPkt_t.FileInfo_0_.FileRate + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 65 + false + -1c861553:17787873ea6:-7e34 + 355 + 138 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_4 + 0 + true + /cfs/ds/DS_FileInfoPkt_t.FileInfo_0_.SequenceCount + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 65 + false + -1c861553:17787873ea6:-7e2f + 450 + 138 + + + + false + false + false + + + + 0 + true + + + + 1 + 1 + true + + Default + + false + + + + 20 + + Check Box + /cfs/ds/DS_FileInfoPkt_t.FileInfo_0_.EnableState + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 18 + -1c861553:17787873ea6:-7cdf + 588 + 138 + + + + false + false + false + + + + 0 + true + + + + 1 + 1 + true + + Default + + false + + + + 20 + + Check Box_1 + /cfs/ds/DS_FileInfoPkt_t.FileInfo_0_.OpenState + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 19 + -1c861553:17787873ea6:-7cd7 + 684 + 138 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_5 + 0 + true + /cfs/ds/DS_FileInfoPkt_t.FileInfo_1_.FileName + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 157 + false + -1c861553:17787873ea6:-7bf5 + 17 + 162 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_6 + 0 + true + /cfs/ds/DS_FileInfoPkt_t.FileInfo_1_.FileAge + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 65 + false + -1c861553:17787873ea6:-7bf4 + 188 + 162 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_7 + 0 + true + /cfs/ds/DS_FileInfoPkt_t.FileInfo_1_.FileSize + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 65 + false + -1c861553:17787873ea6:-7bf3 + 267 + 162 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_8 + 0 + true + /cfs/ds/DS_FileInfoPkt_t.FileInfo_1_.FileRate + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 65 + false + -1c861553:17787873ea6:-7bf2 + 355 + 162 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_9 + 0 + true + /cfs/ds/DS_FileInfoPkt_t.FileInfo_1_.SequenceCount + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 65 + false + -1c861553:17787873ea6:-7bf1 + 450 + 162 + + + + false + false + false + + + + 0 + true + + + + 1 + 1 + true + + Default + + false + + + + 20 + + Check Box_3 + /cfs/ds/DS_FileInfoPkt_t.FileInfo_1_.OpenState + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 19 + -1c861553:17787873ea6:-7bef + 684 + 162 + + + + false + false + false + + + + 0 + true + + + + 1 + 1 + true + + Default + + false + + + + 20 + + Check Box_4 + /cfs/ds/DS_FileInfoPkt_t.FileInfo_1_.EnableState + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 18 + -1c861553:17787873ea6:-7b83 + 588 + 162 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 1 + Label_7 + + + true + true + false + + + 0. + + true + 1 + true + Label + 18 + false + -1c861553:17787873ea6:-7b16 + 0 + 138 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 1 + Label_8 + + + true + true + false + + + 1. + + true + 1 + true + Label + 18 + false + -1c861553:17787873ea6:-7ada + 0 + 162 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_10 + 0 + true + /cfs/ds/DS_FileInfoPkt_t.FileInfo_2_.FileName + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 157 + false + -1c861553:17787873ea6:-7a4a + 17 + 186 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_11 + 0 + true + /cfs/ds/DS_FileInfoPkt_t.FileInfo_2_.FileAge + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 65 + false + -1c861553:17787873ea6:-7a49 + 188 + 186 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_12 + 0 + true + /cfs/ds/DS_FileInfoPkt_t.FileInfo_2_.FileSize + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 65 + false + -1c861553:17787873ea6:-7a48 + 267 + 186 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_13 + 0 + true + /cfs/ds/DS_FileInfoPkt_t.FileInfo_1_.FileRate + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 65 + false + -1c861553:17787873ea6:-7a47 + 355 + 186 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_14 + 0 + true + /cfs/ds/DS_FileInfoPkt_t.FileInfo_2_.SequenceCount + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 65 + false + -1c861553:17787873ea6:-7a46 + 450 + 186 + + + + false + false + false + + + + 0 + true + + + + 1 + 1 + true + + Default + + false + + + + 20 + + Check Box_5 + /cfs/ds/DS_FileInfoPkt_t.FileInfo_2_.OpenState + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 19 + -1c861553:17787873ea6:-7a45 + 684 + 186 + + + + false + false + false + + + + 0 + true + + + + 1 + 1 + true + + Default + + false + + + + 20 + + Check Box_6 + /cfs/ds/DS_FileInfoPkt_t.FileInfo_2_.EnableState + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 18 + -1c861553:17787873ea6:-7a44 + 588 + 186 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 1 + Label_9 + + + true + true + false + + + 2. + + true + 1 + true + Label + 18 + false + -1c861553:17787873ea6:-7a43 + 0 + 186 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_15 + 0 + true + /cfs/ds/DS_FileInfoPkt_t.FileInfo_3_.FileName + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 157 + false + -1c861553:17787873ea6:-79b7 + 17 + 210 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_16 + 0 + true + /cfs/ds/DS_FileInfoPkt_t.FileInfo_3_.FileAge + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 65 + false + -1c861553:17787873ea6:-79b6 + 188 + 210 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_17 + 0 + true + /cfs/ds/DS_FileInfoPkt_t.FileInfo_3_.FileSize + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 65 + false + -1c861553:17787873ea6:-79b5 + 267 + 210 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_18 + 0 + true + /cfs/ds/DS_FileInfoPkt_t.FileInfo_3_.FileRate + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 65 + false + -1c861553:17787873ea6:-79b4 + 355 + 210 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_19 + 0 + true + /cfs/ds/DS_FileInfoPkt_t.FileInfo_3_.SequenceCount + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 65 + false + -1c861553:17787873ea6:-79b3 + 450 + 210 + + + + false + false + false + + + + 0 + true + + + + 1 + 1 + true + + Default + + false + + + + 20 + + Check Box_7 + /cfs/ds/DS_FileInfoPkt_t.FileInfo_3_.OpenState + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 19 + -1c861553:17787873ea6:-79b2 + 684 + 210 + + + + false + false + false + + + + 0 + true + + + + 1 + 1 + true + + Default + + false + + + + 20 + + Check Box_8 + /cfs/ds/DS_FileInfoPkt_t.FileInfo_3_.EnableState + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 18 + -1c861553:17787873ea6:-79b1 + 588 + 210 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 1 + Label_10 + + + true + true + false + + + 3. + + true + 1 + true + Label + 18 + false + -1c861553:17787873ea6:-79b0 + 0 + 210 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_20 + 0 + true + /cfs/ds/DS_FileInfoPkt_t.FileInfo_4_.FileName + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 157 + false + -1c861553:17787873ea6:-78f9 + 17 + 234 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_21 + 0 + true + /cfs/ds/DS_FileInfoPkt_t.FileInfo_4_.FileAge + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 65 + false + -1c861553:17787873ea6:-78f8 + 188 + 234 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_22 + 0 + true + /cfs/ds/DS_FileInfoPkt_t.FileInfo_4_.FileSize + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 65 + false + -1c861553:17787873ea6:-78f7 + 267 + 234 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_23 + 0 + true + /cfs/ds/DS_FileInfoPkt_t.FileInfo_4_.FileRate + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 65 + false + -1c861553:17787873ea6:-78f6 + 355 + 234 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_24 + 0 + true + /cfs/ds/DS_FileInfoPkt_t.FileInfo_4_.SequenceCount + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 65 + false + -1c861553:17787873ea6:-78f5 + 450 + 234 + + + + false + false + false + + + + 0 + true + + + + 1 + 1 + true + + Default + + false + + + + 20 + + Check Box_9 + /cfs/ds/DS_FileInfoPkt_t.FileInfo_4_.OpenState + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 19 + -1c861553:17787873ea6:-78f4 + 684 + 234 + + + + false + false + false + + + + 0 + true + + + + 1 + 1 + true + + Default + + false + + + + 20 + + Check Box_10 + /cfs/ds/DS_FileInfoPkt_t.FileInfo_4_.EnableState + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 18 + -1c861553:17787873ea6:-78f3 + 588 + 234 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 1 + Label_11 + + + true + true + false + + + 4. + + true + 1 + true + Label + 18 + false + -1c861553:17787873ea6:-78f2 + 0 + 234 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_25 + 0 + true + /cfs/ds/DS_FileInfoPkt_t.FileInfo_4_.FileName + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 157 + false + -1c861553:17787873ea6:-7897 + 17 + 258 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_26 + 0 + true + /cfs/ds/DS_FileInfoPkt_t.FileInfo_4_.FileAge + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 65 + false + -1c861553:17787873ea6:-7896 + 188 + 258 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_27 + 0 + true + /cfs/ds/DS_FileInfoPkt_t.FileInfo_4_.FileSize + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 65 + false + -1c861553:17787873ea6:-7895 + 267 + 258 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_28 + 0 + true + /cfs/ds/DS_FileInfoPkt_t.FileInfo_4_.FileRate + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 65 + false + -1c861553:17787873ea6:-7894 + 355 + 258 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_29 + 0 + true + /cfs/ds/DS_FileInfoPkt_t.FileInfo_4_.SequenceCount + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 65 + false + -1c861553:17787873ea6:-7893 + 450 + 258 + + + + false + false + false + + + + 0 + true + + + + 1 + 1 + true + + Default + + false + + + + 20 + + Check Box_11 + /cfs/ds/DS_FileInfoPkt_t.FileInfo_4_.OpenState + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 19 + -1c861553:17787873ea6:-7892 + 684 + 258 + + + + false + false + false + + + + 0 + true + + + + 1 + 1 + true + + Default + + false + + + + 20 + + Check Box_12 + /cfs/ds/DS_FileInfoPkt_t.FileInfo_4_.EnableState + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 18 + -1c861553:17787873ea6:-7891 + 588 + 258 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 1 + Label_12 + + + true + true + false + + + 4. + + true + 1 + true + Label + 18 + false + -1c861553:17787873ea6:-7890 + 0 + 258 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_30 + 0 + true + /cfs/ds/DS_FileInfoPkt_t.FileInfo_5_.FileName + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 157 + false + -1c861553:17787873ea6:-77c3 + 17 + 282 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_31 + 0 + true + /cfs/ds/DS_FileInfoPkt_t.FileInfo_5_.FileAge + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 65 + false + -1c861553:17787873ea6:-77c2 + 188 + 282 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_32 + 0 + true + /cfs/ds/DS_FileInfoPkt_t.FileInfo_5_.FileSize + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 65 + false + -1c861553:17787873ea6:-77c1 + 267 + 282 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_33 + 0 + true + /cfs/ds/DS_FileInfoPkt_t.FileInfo_5_.FileRate + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 65 + false + -1c861553:17787873ea6:-77c0 + 355 + 282 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_34 + 0 + true + /cfs/ds/DS_FileInfoPkt_t.FileInfo_5_.SequenceCount + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 65 + false + -1c861553:17787873ea6:-77bf + 450 + 282 + + + + false + false + false + + + + 0 + true + + + + 1 + 1 + true + + Default + + false + + + + 20 + + Check Box_13 + /cfs/ds/DS_FileInfoPkt_t.FileInfo_5_.OpenState + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 19 + -1c861553:17787873ea6:-77be + 684 + 282 + + + + false + false + false + + + + 0 + true + + + + 1 + 1 + true + + Default + + false + + + + 20 + + Check Box_14 + /cfs/ds/DS_FileInfoPkt_t.FileInfo_5_.EnableState + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 18 + -1c861553:17787873ea6:-77bd + 588 + 282 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 1 + Label_13 + + + true + true + false + + + 5. + + true + 1 + true + Label + 18 + false + -1c861553:17787873ea6:-77bc + 0 + 282 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_35 + 0 + true + /cfs/ds/DS_FileInfoPkt_t.FileInfo_6_.FileName + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 157 + false + a22d448:177887d8135:-7f21 + 17 + 306 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_36 + 0 + true + /cfs/ds/DS_FileInfoPkt_t.FileInfo_6_.FileAge + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 65 + false + a22d448:177887d8135:-7f20 + 188 + 306 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_37 + 0 + true + /cfs/ds/DS_FileInfoPkt_t.FileInfo_6_.FileSize + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 65 + false + a22d448:177887d8135:-7f1f + 267 + 306 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_38 + 0 + true + /cfs/ds/DS_FileInfoPkt_t.FileInfo_6_.FileRate + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 65 + false + a22d448:177887d8135:-7f1e + 355 + 306 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_39 + 0 + true + /cfs/ds/DS_FileInfoPkt_t.FileInfo_6_.SequenceCount + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 65 + false + a22d448:177887d8135:-7f1d + 450 + 306 + + + + false + false + false + + + + 0 + true + + + + 1 + 1 + true + + Default + + false + + + + 20 + + Check Box_15 + /cfs/ds/DS_FileInfoPkt_t.FileInfo_6_.OpenState + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 19 + a22d448:177887d8135:-7f1c + 684 + 306 + + + + false + false + false + + + + 0 + true + + + + 1 + 1 + true + + Default + + false + + + + 20 + + Check Box_16 + /cfs/ds/DS_FileInfoPkt_t.FileInfo_6_.EnableState + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 18 + a22d448:177887d8135:-7f1b + 588 + 306 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 1 + Label_14 + + + true + true + false + + + 6. + + true + 1 + true + Label + 18 + false + a22d448:177887d8135:-7f1a + 0 + 306 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_40 + 0 + true + /cfs/ds/DS_FileInfoPkt_t.FileInfo_6_.FileName + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 157 + false + a22d448:177887d8135:-7e6b + 17 + 330 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_41 + 0 + true + /cfs/ds/DS_FileInfoPkt_t.FileInfo_6_.FileAge + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 65 + false + a22d448:177887d8135:-7e6a + 188 + 330 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_42 + 0 + true + /cfs/ds/DS_FileInfoPkt_t.FileInfo_6_.FileSize + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 65 + false + a22d448:177887d8135:-7e69 + 267 + 330 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_43 + 0 + true + /cfs/ds/DS_FileInfoPkt_t.FileInfo_6_.FileRate + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 65 + false + a22d448:177887d8135:-7e68 + 355 + 330 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_44 + 0 + true + /cfs/ds/DS_FileInfoPkt_t.FileInfo_6_.SequenceCount + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 65 + false + a22d448:177887d8135:-7e67 + 450 + 330 + + + + false + false + false + + + + 0 + true + + + + 1 + 1 + true + + Default + + false + + + + 20 + + Check Box_17 + /cfs/ds/DS_FileInfoPkt_t.FileInfo_6_.OpenState + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 19 + a22d448:177887d8135:-7e66 + 684 + 330 + + + + false + false + false + + + + 0 + true + + + + 1 + 1 + true + + Default + + false + + + + 20 + + Check Box_18 + /cfs/ds/DS_FileInfoPkt_t.FileInfo_6_.EnableState + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 18 + a22d448:177887d8135:-7e65 + 588 + 330 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 1 + Label_15 + + + true + true + false + + + 6. + + true + 1 + true + Label + 18 + false + a22d448:177887d8135:-7e64 + 0 + 330 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_45 + 0 + true + /cfs/ds/DS_FileInfoPkt_t.FileInfo_7_.FileName + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 157 + false + a22d448:177887d8135:-7e09 + 17 + 354 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_46 + 0 + true + /cfs/ds/DS_FileInfoPkt_t.FileInfo_7_.FileAge + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 65 + false + a22d448:177887d8135:-7e08 + 188 + 354 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_47 + 0 + true + /cfs/ds/DS_FileInfoPkt_t.FileInfo_7_.FileSize + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 65 + false + a22d448:177887d8135:-7e07 + 267 + 354 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_48 + 0 + true + /cfs/ds/DS_FileInfoPkt_t.FileInfo_7_.FileRate + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 65 + false + a22d448:177887d8135:-7e06 + 355 + 354 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_49 + 0 + true + /cfs/ds/DS_FileInfoPkt_t.FileInfo_7_.SequenceCount + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 65 + false + a22d448:177887d8135:-7e05 + 450 + 354 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 1 + Label_16 + + + true + true + false + + + 7. + + true + 1 + true + Label + 18 + false + a22d448:177887d8135:-7e02 + 0 + 354 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_65 + 0 + true + /cfs/ds/DS_FileInfoPkt_t.FileInfo_8_.FileName + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 157 + false + a22d448:177887d8135:-7da1 + 17 + 378 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_66 + 0 + true + /cfs/ds/DS_FileInfoPkt_t.FileInfo_8_.FileAge + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 65 + false + a22d448:177887d8135:-7da0 + 188 + 378 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_67 + 0 + true + /cfs/ds/DS_FileInfoPkt_t.FileInfo_8_.FileSize + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 65 + false + a22d448:177887d8135:-7d9f + 267 + 378 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_68 + 0 + true + /cfs/ds/DS_FileInfoPkt_t.FileInfo_8_.FileRate + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 65 + false + a22d448:177887d8135:-7d9e + 355 + 378 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_69 + 0 + true + /cfs/ds/DS_FileInfoPkt_t.FileInfo_8_.SequenceCount + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 65 + false + a22d448:177887d8135:-7d9d + 450 + 378 + + + + false + false + false + + + + 0 + true + + + + 1 + 1 + true + + Default + + false + + + + 20 + + Check Box_27 + /cfs/ds/DS_FileInfoPkt_t.FileInfo_8_.OpenState + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 19 + a22d448:177887d8135:-7d9c + 684 + 378 + + + + false + false + false + + + + 0 + true + + + + 1 + 1 + true + + Default + + false + + + + 20 + + Check Box_28 + /cfs/ds/DS_FileInfoPkt_t.FileInfo_8_.EnableState + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 18 + a22d448:177887d8135:-7d9b + 588 + 378 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 1 + Label_20 + + + true + true + false + + + 8. + + true + 1 + true + Label + 18 + false + a22d448:177887d8135:-7d9a + 0 + 378 + + + + false + false + false + + + + 0 + true + + + + 1 + 1 + true + + Default + + false + + + + 20 + + Check Box_29 + /cfs/ds/DS_FileInfoPkt_t.FileInfo_7_.EnableState + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 18 + a22d448:177887d8135:-7d92 + 588 + 354 + + + + false + false + false + + + + 0 + true + + + + 1 + 1 + true + + Default + + false + + + + 20 + + Check Box_30 + /cfs/ds/DS_FileInfoPkt_t.FileInfo_7_.OpenState + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 19 + a22d448:177887d8135:-7d8a + 684 + 354 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_70 + 0 + true + /cfs/ds/DS_FileInfoPkt_t.FileInfo_9_.FileName + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 157 + false + a22d448:177887d8135:-7d6d + 17 + 402 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_71 + 0 + true + /cfs/ds/DS_FileInfoPkt_t.FileInfo_9_.FileAge + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 65 + false + a22d448:177887d8135:-7d6c + 188 + 402 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_72 + 0 + true + /cfs/ds/DS_FileInfoPkt_t.FileInfo_9_.FileSize + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 65 + false + a22d448:177887d8135:-7d6b + 267 + 402 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_73 + 0 + true + /cfs/ds/DS_FileInfoPkt_t.FileInfo_9_.FileRate + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 65 + false + a22d448:177887d8135:-7d6a + 355 + 402 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_74 + 0 + true + /cfs/ds/DS_FileInfoPkt_t.FileInfo_9_.SequenceCount + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 65 + false + a22d448:177887d8135:-7d69 + 450 + 402 + + + + false + false + false + + + + 0 + true + + + + 1 + 1 + true + + Default + + false + + + + 20 + + Check Box_31 + /cfs/ds/DS_FileInfoPkt_t.FileInfo_9_.OpenState + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 19 + a22d448:177887d8135:-7d68 + 684 + 402 + + + + false + false + false + + + + 0 + true + + + + 1 + 1 + true + + Default + + false + + + + 20 + + Check Box_32 + /cfs/ds/DS_FileInfoPkt_t.FileInfo_9_.EnableState + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 18 + a22d448:177887d8135:-7d67 + 588 + 402 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 1 + Label_21 + + + true + true + false + + + 9. + + true + 1 + true + Label + 18 + false + a22d448:177887d8135:-7d66 + 0 + 402 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_75 + 0 + true + /cfs/ds/DS_FileInfoPkt_t.FileInfo_10_.FileName + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 157 + false + a22d448:177887d8135:-7d53 + 17 + 426 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_76 + 0 + true + /cfs/ds/DS_FileInfoPkt_t.FileInfo_10_.FileAge + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 65 + false + a22d448:177887d8135:-7d52 + 188 + 426 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_77 + 0 + true + /cfs/ds/DS_FileInfoPkt_t.FileInfo_10_.FileSize + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 65 + false + a22d448:177887d8135:-7d51 + 267 + 426 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_78 + 0 + true + /cfs/ds/DS_FileInfoPkt_t.FileInfo_10_.FileRate + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 65 + false + a22d448:177887d8135:-7d50 + 355 + 426 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_79 + 0 + true + /cfs/ds/DS_FileInfoPkt_t.FileInfo_10_.SequenceCount + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 65 + false + a22d448:177887d8135:-7d4f + 450 + 426 + + + + false + false + false + + + + 0 + true + + + + 1 + 1 + true + + Default + + false + + + + 20 + + Check Box_33 + /cfs/ds/DS_FileInfoPkt_t.FileInfo_10_.OpenState + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 19 + a22d448:177887d8135:-7d4e + 684 + 426 + + + + false + false + false + + + + 0 + true + + + + 1 + 1 + true + + Default + + false + + + + 20 + + Check Box_34 + /cfs/ds/DS_FileInfoPkt_t.FileInfo_10_.EnableState + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 18 + a22d448:177887d8135:-7d4d + 588 + 426 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 1 + Label_22 + + + true + true + false + + + 10. + + true + 1 + true + Label + 18 + false + a22d448:177887d8135:-7d4c + 0 + 426 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_80 + 0 + true + /cfs/ds/DS_FileInfoPkt_t.FileInfo_11_.FileName + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 157 + false + a22d448:177887d8135:-7d39 + 17 + 450 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_81 + 0 + true + /cfs/ds/DS_FileInfoPkt_t.FileInfo_11_.FileAge + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 65 + false + a22d448:177887d8135:-7d38 + 188 + 450 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_82 + 0 + true + /cfs/ds/DS_FileInfoPkt_t.FileInfo_11_.FileSize + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 65 + false + a22d448:177887d8135:-7d37 + 267 + 450 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_83 + 0 + true + /cfs/ds/DS_FileInfoPkt_t.FileInfo_11_.FileRate + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 65 + false + a22d448:177887d8135:-7d36 + 355 + 450 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_84 + 0 + true + /cfs/ds/DS_FileInfoPkt_t.FileInfo_11_.SequenceCount + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 65 + false + a22d448:177887d8135:-7d35 + 450 + 450 + + + + false + false + false + + + + 0 + true + + + + 1 + 1 + true + + Default + + false + + + + 20 + + Check Box_35 + /cfs/ds/DS_FileInfoPkt_t.FileInfo_11_.OpenState + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 19 + a22d448:177887d8135:-7d34 + 684 + 450 + + + + false + false + false + + + + 0 + true + + + + 1 + 1 + true + + Default + + false + + + + 20 + + Check Box_36 + /cfs/ds/DS_FileInfoPkt_t.FileInfo_11_.EnableState + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 18 + a22d448:177887d8135:-7d33 + 588 + 450 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 1 + Label_23 + + + true + true + false + + + 11. + + true + 1 + true + Label + 18 + false + a22d448:177887d8135:-7d32 + 0 + 450 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_85 + 0 + true + /cfs/ds/DS_FileInfoPkt_t.FileInfo_12_.FileName + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 157 + false + a22d448:177887d8135:-7d1f + 17 + 474 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_86 + 0 + true + /cfs/ds/DS_FileInfoPkt_t.FileInfo_12_.FileAge + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 65 + false + a22d448:177887d8135:-7d1e + 188 + 474 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_87 + 0 + true + /cfs/ds/DS_FileInfoPkt_t.FileInfo_12_.FileSize + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 65 + false + a22d448:177887d8135:-7d1d + 267 + 474 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_88 + 0 + true + /cfs/ds/DS_FileInfoPkt_t.FileInfo_12_.FileRate + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 65 + false + a22d448:177887d8135:-7d1c + 355 + 474 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_89 + 0 + true + /cfs/ds/DS_FileInfoPkt_t.FileInfo_12_.SequenceCount + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 65 + false + a22d448:177887d8135:-7d1b + 450 + 474 + + + + false + false + false + + + + 0 + true + + + + 1 + 1 + true + + Default + + false + + + + 20 + + Check Box_37 + /cfs/ds/DS_FileInfoPkt_t.FileInfo_12_.OpenState + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 19 + a22d448:177887d8135:-7d1a + 684 + 474 + + + + false + false + false + + + + 0 + true + + + + 1 + 1 + true + + Default + + false + + + + 20 + + Check Box_38 + /cfs/ds/DS_FileInfoPkt_t.FileInfo_12_.EnableState + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 18 + a22d448:177887d8135:-7d19 + 588 + 474 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 1 + Label_24 + + + true + true + false + + + 12. + + true + 1 + true + Label + 18 + false + a22d448:177887d8135:-7d18 + 0 + 474 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_90 + 0 + true + /cfs/ds/DS_FileInfoPkt_t.FileInfo_13_.FileName + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 157 + false + a22d448:177887d8135:-7d05 + 17 + 498 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_91 + 0 + true + /cfs/ds/DS_FileInfoPkt_t.FileInfo_13_.FileAge + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 65 + false + a22d448:177887d8135:-7d04 + 188 + 498 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_92 + 0 + true + /cfs/ds/DS_FileInfoPkt_t.FileInfo_13_.FileSize + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 65 + false + a22d448:177887d8135:-7d03 + 267 + 498 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_93 + 0 + true + /cfs/ds/DS_FileInfoPkt_t.FileInfo_13_.FileRate + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 65 + false + a22d448:177887d8135:-7d02 + 355 + 498 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_94 + 0 + true + /cfs/ds/DS_FileInfoPkt_t.FileInfo_13_.SequenceCount + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 65 + false + a22d448:177887d8135:-7d01 + 450 + 498 + + + + false + false + false + + + + 0 + true + + + + 1 + 1 + true + + Default + + false + + + + 20 + + Check Box_39 + /cfs/ds/DS_FileInfoPkt_t.FileInfo_13_.OpenState + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 19 + a22d448:177887d8135:-7d00 + 684 + 498 + + + + false + false + false + + + + 0 + true + + + + 1 + 1 + true + + Default + + false + + + + 20 + + Check Box_40 + /cfs/ds/DS_FileInfoPkt_t.FileInfo_13_.EnableState + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 18 + a22d448:177887d8135:-7cff + 588 + 498 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 1 + Label_25 + + + true + true + false + + + 13. + + true + 1 + true + Label + 18 + false + a22d448:177887d8135:-7cfe + 0 + 498 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_95 + 0 + true + /cfs/ds/DS_FileInfoPkt_t.FileInfo_15_.FileName + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 157 + false + a22d448:177887d8135:-7ceb + 17 + 551 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_96 + 0 + true + /cfs/ds/DS_FileInfoPkt_t.FileInfo_15_.FileAge + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 65 + false + a22d448:177887d8135:-7cea + 188 + 551 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_97 + 0 + true + /cfs/ds/DS_FileInfoPkt_t.FileInfo_15_.FileSize + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 65 + false + a22d448:177887d8135:-7ce9 + 267 + 551 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_98 + 0 + true + /cfs/ds/DS_FileInfoPkt_t.FileInfo_15_.FileRate + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 65 + false + a22d448:177887d8135:-7ce8 + 355 + 551 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_99 + 0 + true + /cfs/ds/DS_FileInfoPkt_t.FileInfo_15_.SequenceCount + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 65 + false + a22d448:177887d8135:-7ce7 + 450 + 551 + + + + false + false + false + + + + 0 + true + + + + 1 + 1 + true + + Default + + false + + + + 20 + + Check Box_41 + /cfs/ds/DS_FileInfoPkt_t.FileInfo_15_.OpenState + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 19 + a22d448:177887d8135:-7ce6 + 684 + 551 + + + + false + false + false + + + + 0 + true + + + + 1 + 1 + true + + Default + + false + + + + 20 + + Check Box_42 + /cfs/ds/DS_FileInfoPkt_t.FileInfo_15_.EnableState + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 18 + a22d448:177887d8135:-7ce5 + 588 + 551 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 1 + Label_26 + + + true + true + false + + + 15. + + true + 1 + true + Label + 18 + false + a22d448:177887d8135:-7ce4 + 0 + 551 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_100 + 0 + true + /cfs/ds/DS_FileInfoPkt_t.FileInfo_14_.FileName + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 157 + false + a22d448:177887d8135:-7cd1 + 17 + 526 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_101 + 0 + true + /cfs/ds/DS_FileInfoPkt_t.FileInfo_14_.FileAge + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 65 + false + a22d448:177887d8135:-7cd0 + 188 + 526 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_102 + 0 + true + /cfs/ds/DS_FileInfoPkt_t.FileInfo_14_.FileSize + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 65 + false + a22d448:177887d8135:-7ccf + 267 + 526 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_103 + 0 + true + /cfs/ds/DS_FileInfoPkt_t.FileInfo_14_.FileRate + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 65 + false + a22d448:177887d8135:-7cce + 355 + 526 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_104 + 0 + true + /cfs/ds/DS_FileInfoPkt_t.FileInfo_14_.SequenceCount + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 65 + false + a22d448:177887d8135:-7ccd + 450 + 526 + + + + false + false + false + + + + 0 + true + + + + 1 + 1 + true + + Default + + false + + + + 20 + + Check Box_43 + /cfs/ds/DS_FileInfoPkt_t.FileInfo_14_.OpenState + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 19 + a22d448:177887d8135:-7ccc + 684 + 526 + + + + false + false + false + + + + 0 + true + + + + 1 + 1 + true + + Default + + false + + + + 20 + + Check Box_44 + /cfs/ds/DS_FileInfoPkt_t.FileInfo_14_.EnableState + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 18 + a22d448:177887d8135:-7ccb + 588 + 526 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 1 + Label_27 + + + true + true + false + + + 14. + + true + 1 + true + Label + 18 + false + a22d448:177887d8135:-7cca + 0 + 526 + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/DS/Main.opi b/core/base/tools/commander/workspace_template/Displays/Apps/DS/Main.opi index 6aa8588a8..304b04db7 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/DS/Main.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/DS/Main.opi @@ -1646,7 +1646,9 @@ $(pv_value) +Yamcs.issueCommand('/cfs/ds/SetAppState', + {'EnableState': 1, + 'Padding': 0});]]> true @@ -1702,7 +1704,7 @@ $(pv_value) true - 0 + 1 @@ -1757,7 +1759,7 @@ $(pv_value) true - 0 + 1 @@ -1812,7 +1814,7 @@ $(pv_value) true - 0 + 1 @@ -1867,7 +1869,7 @@ $(pv_value) true - 0 + 1 @@ -1922,7 +1924,7 @@ $(pv_value) true - 0 + 1 @@ -1977,7 +1979,7 @@ $(pv_value) true - 0 + 1 @@ -2032,7 +2034,7 @@ $(pv_value) true - 0 + 1 @@ -2087,7 +2089,7 @@ $(pv_value) true - 0 + 1 @@ -2142,7 +2144,7 @@ $(pv_value) true - 0 + 1 @@ -2197,7 +2199,7 @@ $(pv_value) true - 0 + 1 @@ -2252,7 +2254,7 @@ $(pv_value) true - 0 + 1 @@ -2307,7 +2309,7 @@ $(pv_value) true - 0 + 1 @@ -2362,7 +2364,7 @@ $(pv_value) true - 0 + 1 @@ -2417,7 +2419,7 @@ $(pv_value) true - 0 + 1 @@ -2472,7 +2474,7 @@ $(pv_value) true - 0 + 1 @@ -2527,7 +2529,9 @@ $(pv_value) +Yamcs.issueCommand('/cfs/ds/SetAppState', + {'EnableState': 0, + 'Padding': 0});]]> true diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/DS/SetAppState.opi b/core/base/tools/commander/workspace_template/Displays/Apps/DS/SetAppState.opi deleted file mode 100644 index 08401baf6..000000000 --- a/core/base/tools/commander/workspace_template/Displays/Apps/DS/SetAppState.opi +++ /dev/null @@ -1,35 +0,0 @@ - - - - - false - -1 - -1 - - false - - - - 1.5.3 - - - - 6 - 600 - - true - - - - - true - true - true - true - true - Display - 800 - -736e4684:150ac3c95a1:-724b - -1 - -1 - \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/DS/SetDestAge.opi b/core/base/tools/commander/workspace_template/Displays/Apps/DS/SetDestAge.opi index 1cb21224c..9340567b8 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/DS/SetDestAge.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/DS/SetDestAge.opi @@ -32,4 +32,261 @@ -736e4684:150ac3c95a1:-721f -1 -1 + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 1 + Label + + + true + true + false + + + FileTableIndex + + true + 1 + true + Label + 139 + false + a22d448:177887d8135:-740c + 18 + 30 + + + + false + false + + + + true + + + + 3 + 1 + false + true + + Default + + false + + + + 0 + 25 + 1 + false + true + Infinity + -Infinity + FileTableIndex + 10.0 + 3 + false + loc://SetDestAgeFileTableIndex<VDouble> + + + + true + true + false + + + true + 1.0 + $(pv_name) +$(pv_value) + false + 1 + true + Spinner + 85 + a22d448:177887d8135:-7408 + 168 + 27 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 1 + Label_1 + + + true + true + false + + + MaxFileAge + + true + 1 + true + Label + 139 + false + a22d448:177887d8135:-7400 + 18 + 60 + + + + false + false + + + + true + + + + 3 + 1 + false + true + + Default + + false + + + + 0 + 25 + 1 + false + true + 1.7976931348623157E308 + -1.7976931348623157E308 + MaxFileAge + 10.0 + 3 + false + loc://SetDestAgeFileAge<VDouble> + + + + true + true + false + + + true + 1.0 + $(pv_name) +$(pv_value) + false + 1 + true + Spinner + 85 + a22d448:177887d8135:-73f8 + 168 + 57 + + + + + + + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 24 + ../../Resources/send.png + Action Button_1 + 0 + + + + + true + true + false + + + + SetDestAge + false + $(pv_name) +$(pv_value) + true + Action Button + 163 + a22d448:177887d8135:-73ea + 72 + 102 + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/DS/SetDestBase.opi b/core/base/tools/commander/workspace_template/Displays/Apps/DS/SetDestBase.opi index 1dc1c9857..36c8d4430 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/DS/SetDestBase.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/DS/SetDestBase.opi @@ -15,7 +15,7 @@ 6 - 600 + 400 true @@ -28,8 +28,268 @@ true true Display - 800 + 400 -736e4684:150ac3c95a1:-722b -1 -1 + + + false + false + + + + true + + + + 1 + 1 + false + true + + Default + + false + + + + 0 + 25 + 1 + false + true + 1.7976931348623157E308 + -1.7976931348623157E308 + FileTableIndex + 10.0 + 3 + false + loc://SetDestBaseFileTableIndex<VDouble> + + + + true + true + false + + + true + 1.0 + $(pv_name) +$(pv_value) + false + 1 + true + Spinner + 85 + a22d448:177887d8135:-6ef2 + 150 + 39 + + + + + + + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 24 + ../../Resources/send.png + Action Button_1 + 0 + + + + + true + true + false + + + + SetDestBase + false + $(pv_name) +$(pv_value) + true + Action Button + 163 + a22d448:177887d8135:-6ef1 + 96 + 126 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 1 + Label + + + true + true + false + + + FileTableIndex + + true + 1 + true + Label + 97 + false + a22d448:177887d8135:-6eea + 24 + 42 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 1 + Label_1 + + + true + true + false + + + Basename + + true + 1 + true + Label + 103 + false + a22d448:177887d8135:-6ee2 + 24 + 72 + + + + false + false + false + + + + false + + + + 1 + 1 + + true + + Default + + false + + + + 0 + 25 + 0 + false + Infinity + -Infinity + false + Basename + 0 + true + loc://SetDestBaseBaseName<VString> + + 0.0 + + + true + true + false + + + 0 + true + + + $(pv_name) +$(pv_value) + false + true + Text Input + 146 + a22d448:177887d8135:-6ed6 + 144 + 69 + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/DS/SetDestCount.opi b/core/base/tools/commander/workspace_template/Displays/Apps/DS/SetDestCount.opi index 4ee3bdecb..6b348306b 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/DS/SetDestCount.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/DS/SetDestCount.opi @@ -32,4 +32,262 @@ -736e4684:150ac3c95a1:-721b -1 -1 + + + false + false + + + + true + + + + 1 + 1 + false + true + + Default + + false + + + + 0 + 25 + 1 + false + true + 1.7976931348623157E308 + -1.7976931348623157E308 + FileTableIndex + 10.0 + 3 + false + loc://SetDestCountileTableIndex<VDouble> + + + + true + true + false + + + true + 1.0 + $(pv_name) +$(pv_value) + false + 1 + true + Spinner + 85 + a22d448:177887d8135:-6e94 + 144 + 30 + + + + + + + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 24 + ../../Resources/send.png + Action Button_1 + 0 + + + + + true + true + false + + + + SetDestCount + false + $(pv_name) +$(pv_value) + true + Action Button + 163 + a22d448:177887d8135:-6e93 + 90 + 117 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 1 + Label + + + true + true + false + + + FileTableIndex + + true + 1 + true + Label + 115 + false + a22d448:177887d8135:-6e92 + 18 + 33 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 1 + Label_1 + + + true + true + false + + + SequenceCount + + true + 1 + true + Label + 115 + false + a22d448:177887d8135:-6e91 + 18 + 63 + + + + false + false + + + + false + + + + 1 + 1 + false + true + + Default + + false + + + + 0 + 25 + 1 + false + false + 1.7976931348623157E308 + -1.7976931348623157E308 + Basename + 10.0 + 0 + true + loc://SetDestCountBaseName<VDouble> + + + + true + true + false + + + true + 1.0 + $(pv_name) +$(pv_value) + false + 1 + true + Spinner + 85 + a22d448:177887d8135:-6e90 + 144 + 60 + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/DS/SetDestExt.opi b/core/base/tools/commander/workspace_template/Displays/Apps/DS/SetDestExt.opi index 309810616..c5b652c99 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/DS/SetDestExt.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/DS/SetDestExt.opi @@ -32,4 +32,264 @@ -736e4684:150ac3c95a1:-7227 -1 -1 + + + false + false + + + + true + + + + 1 + 1 + false + true + + Default + + false + + + + 0 + 25 + 1 + false + true + 1.7976931348623157E308 + -1.7976931348623157E308 + FileTableIndex + 10.0 + 3 + false + loc://SetDestExtFileTableIndex<VDouble> + + + + true + true + false + + + true + 1.0 + $(pv_name) +$(pv_value) + false + 1 + true + Spinner + 85 + a22d448:177887d8135:-6e26 + 150 + 30 + + + + + + + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 24 + ../../Resources/send.png + Action Button_1 + 0 + + + + + true + true + false + + + + SetDestExt + false + $(pv_name) +$(pv_value) + true + Action Button + 163 + a22d448:177887d8135:-6e25 + 48 + 114 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 1 + Label + + + true + true + false + + + FileTableIndex + + true + 1 + true + Label + 115 + false + a22d448:177887d8135:-6e24 + 24 + 33 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 1 + Label_1 + + + true + true + false + + + Extension + + true + 1 + true + Label + 115 + false + a22d448:177887d8135:-6e23 + 24 + 63 + + + + false + false + false + + + + false + + + + 1 + 1 + + true + + Default + + false + + + + 0 + 25 + 0 + false + Infinity + -Infinity + false + Extension + 0 + true + loc://SetDestExtExtension + + 0.0 + + + true + true + false + + + 0 + true + + + $(pv_name) +$(pv_value) + false + true + Text Input + 100 + a22d448:177887d8135:-6e0b + 150 + 60 + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/DS/SetDestPath.opi b/core/base/tools/commander/workspace_template/Displays/Apps/DS/SetDestPath.opi index 8b099436b..095896546 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/DS/SetDestPath.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/DS/SetDestPath.opi @@ -15,7 +15,7 @@ 6 - 600 + 400 true @@ -28,8 +28,268 @@ true true Display - 800 + 400 -736e4684:150ac3c95a1:-7233 -1 -1 + + + false + false + + + + true + + + + 1 + 1 + false + true + + Default + + false + + + + 0 + 25 + 1 + false + true + 1.7976931348623157E308 + -1.7976931348623157E308 + FileTableIndex + 10.0 + 3 + false + loc://SetDestPathFileTableIndex<VDouble> + + + + true + true + false + + + true + 1.0 + $(pv_name) +$(pv_value) + false + 1 + true + Spinner + 85 + a22d448:177887d8135:-6de4 + 156 + 30 + + + + + + + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 24 + ../../Resources/send.png + Action Button_1 + 0 + + + + + true + true + false + + + + SetDestPath + false + $(pv_name) +$(pv_value) + true + Action Button + 163 + a22d448:177887d8135:-6de3 + 54 + 114 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 1 + Label + + + true + true + false + + + FileTableIndex + + true + 1 + true + Label + 115 + false + a22d448:177887d8135:-6de2 + 30 + 33 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 1 + Label_1 + + + true + true + false + + + Pathname + + true + 1 + true + Label + 115 + false + a22d448:177887d8135:-6de1 + 30 + 63 + + + + false + false + false + + + + true + + + + 1 + 1 + + true + + Default + + false + + + + 0 + 25 + 0 + false + 1.7976931348623157E308 + -1.7976931348623157E308 + false + Path + 0 + true + loc://SetDestPathExtension<VString> + + 0.0 + + + true + true + false + + + 0 + true + + + $(pv_name) +$(pv_value) + false + true + Text Input + 211 + a22d448:177887d8135:-6de0 + 156 + 60 + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/DS/SetDestSize.opi b/core/base/tools/commander/workspace_template/Displays/Apps/DS/SetDestSize.opi index 49fbd6044..40feed6af 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/DS/SetDestSize.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/DS/SetDestSize.opi @@ -32,4 +32,263 @@ -736e4684:150ac3c95a1:-7223 -1 -1 + + + false + false + + + + true + + + + 1 + 1 + false + true + + Default + + false + + + + 0 + 25 + 1 + false + true + 1.7976931348623157E308 + -1.7976931348623157E308 + FileTableIndex + 10.0 + 3 + false + loc://SetDestSizeFileTableIndex + + + + true + true + false + + + true + 1.0 + $(pv_name) +$(pv_value) + false + 1 + true + Spinner + 85 + a22d448:177887d8135:-6db9 + 156 + 48 + + + + + + + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 24 + ../../Resources/send.png + Action Button_1 + 0 + + + + + true + true + false + + + + SetDestSize + false + $(pv_name) +$(pv_value) + true + Action Button + 163 + a22d448:177887d8135:-6db8 + 54 + 132 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 1 + Label + + + true + true + false + + + FileTableIndex + + true + 1 + true + Label + 115 + false + a22d448:177887d8135:-6db7 + 30 + 51 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 1 + Label_1 + + + true + true + false + + + MaxFileSize + + true + 1 + true + Label + 115 + false + a22d448:177887d8135:-6db6 + 30 + 81 + + + + false + false + + + + true + + + + 1 + 1 + false + true + + Default + + false + + + + 0 + 25 + 1 + false + true + 1.7976931348623157E308 + -1.7976931348623157E308 + MaxFileSize + 10.0 + 3 + false + loc://SetDestSizeMaxFileSize + + + + true + true + false + + + true + 1.0 + $(pv_name) +$(pv_value) + false + 1 + true + Spinner + 85 + a22d448:177887d8135:-6da7 + 156 + 78 + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/DS/SetDestState.opi b/core/base/tools/commander/workspace_template/Displays/Apps/DS/SetDestState.opi index 782991311..bbda3e158 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/DS/SetDestState.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/DS/SetDestState.opi @@ -15,7 +15,7 @@ 6 - 600 + 400 true @@ -28,8 +28,266 @@ true true Display - 800 + 400 -736e4684:150ac3c95a1:-7237 -1 -1 + + + false + false + + + + true + + + + 1 + 1 + false + true + + Default + + false + + + + 0 + 25 + 1 + false + true + 1.7976931348623157E308 + -1.7976931348623157E308 + FileTableIndex + 10.0 + 3 + false + loc://SetDestStateFileTableIndex<VDouble> + + + + true + true + false + + + true + 1.0 + $(pv_name) +$(pv_value) + false + 1 + true + Spinner + 85 + a22d448:177887d8135:-6d80 + 156 + 51 + + + + + + + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 24 + ../../Resources/send.png + Action Button_1 + 0 + + + + + true + true + false + + + + SetDestState + false + $(pv_name) +$(pv_value) + true + Action Button + 163 + a22d448:177887d8135:-6d7f + 54 + 135 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 1 + Label + + + true + true + false + + + FileTableIndex + + true + 1 + true + Label + 115 + false + a22d448:177887d8135:-6d7e + 30 + 54 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 1 + Label_1 + + + true + true + false + + + EnableState + + true + 1 + true + Label + 115 + false + a22d448:177887d8135:-6d7d + 30 + 84 + + + + false + false + false + + + + 0 + true + + + + 1 + 1 + true + + Default + + false + + + + 25 + + EnableState + loc://SetDestStateEnabled<VDouble> + + + + true + true + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 19 + a22d448:177887d8135:-6d7c + 156 + 81 + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/DS/SetDestType.opi b/core/base/tools/commander/workspace_template/Displays/Apps/DS/SetDestType.opi index 3a4cfe91f..23373d7a1 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/DS/SetDestType.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/DS/SetDestType.opi @@ -32,4 +32,262 @@ -736e4684:150ac3c95a1:-723b -1 -1 + + + false + false + + + + true + + + + 1 + 1 + false + true + + Default + + false + + + + 0 + 25 + 1 + false + true + 1.7976931348623157E308 + -1.7976931348623157E308 + FileTableIndex + 10.0 + 3 + false + loc://SetDestTypeFileTableIndex<VDouble> + + + + true + true + false + + + true + 1.0 + $(pv_name) +$(pv_value) + false + 1 + true + Spinner + 85 + a22d448:177887d8135:-6ca0 + 150 + 30 + + + + + + + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 24 + ../../Resources/send.png + Action Button_1 + 0 + + + + + true + true + false + + + + SetDestType + false + $(pv_name) +$(pv_value) + true + Action Button + 163 + a22d448:177887d8135:-6c9f + 48 + 114 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 1 + Label + + + true + true + false + + + FileTableIndex + + true + 1 + true + Label + 115 + false + a22d448:177887d8135:-6c9e + 24 + 33 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 1 + Label_1 + + + true + true + false + + + FileNameType + + true + 1 + true + Label + 115 + false + a22d448:177887d8135:-6c9d + 24 + 63 + + + + false + false + + + + true + + + + 1 + 1 + false + true + + Default + + false + + + + 0 + 25 + 1 + false + true + 1.7976931348623157E308 + -1.7976931348623157E308 + FileNameType + 10.0 + 3 + false + loc://SetDestTypeFileNameType<VDouble> + + + + true + true + false + + + true + 1.0 + $(pv_name) +$(pv_value) + false + 1 + true + Spinner + 85 + a22d448:177887d8135:-6c94 + 150 + 60 + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/DS/SetFilterFile.opi b/core/base/tools/commander/workspace_template/Displays/Apps/DS/SetFilterFile.opi index ede544c03..0d20333b0 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/DS/SetFilterFile.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/DS/SetFilterFile.opi @@ -32,4 +32,360 @@ -736e4684:150ac3c95a1:-7247 -1 -1 + + + false + false + + + + true + + + + 1 + 1 + false + true + + Default + + false + + + + 0 + 25 + 1 + false + true + 1.7976931348623157E308 + -1.7976931348623157E308 + FilterParmsIndex + 10.0 + 3 + false + loc://SetFilterFileFilterParmsIndex + + + + true + true + false + + + true + 1.0 + $(pv_name) +$(pv_value) + false + 1 + true + Spinner + 85 + a22d448:177887d8135:-6c00 + 174 + 90 + + + + + + + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 24 + ../../Resources/send.png + Action Button_1 + 0 + + + + + true + true + false + + + + SetFilterFile + false + $(pv_name) +$(pv_value) + true + Action Button + 163 + a22d448:177887d8135:-6bff + 72 + 168 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 1 + Label + + + true + true + false + + + FilterParmsIndex + + true + 1 + true + Label + 121 + false + a22d448:177887d8135:-6bfe + 24 + 93 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 1 + Label_1 + + + true + true + false + + + FileTableIndex + + true + 1 + true + Label + 103 + false + a22d448:177887d8135:-6bfd + 24 + 123 + + + + false + false + + + + true + + + + 1 + 1 + false + true + + Default + + false + + + + 2 + 25 + 1 + false + true + 1.7976931348623157E308 + -1.7976931348623157E308 + MessageID + 10.0 + 3 + false + loc://SetFilterMsgID + + + + true + true + false + + + true + 1.0 + $(pv_name) +$(pv_value) + false + 1 + true + Spinner + 85 + a22d448:177887d8135:-6bf1 + 174 + 60 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 1 + Label_2 + + + true + true + false + + + MessageID + + true + 1 + true + Label + 121 + false + a22d448:177887d8135:-6bf0 + 24 + 63 + + + + false + false + + + + true + + + + 3 + 1 + false + true + + Default + + false + + + + 0 + 25 + 1 + false + true + Infinity + -Infinity + FileTableIndex + 10.0 + 3 + false + loc://SetFilterFileFileTableIndex + + + + true + true + false + + + true + 1.0 + $(pv_name) +$(pv_value) + false + 1 + true + Spinner + 85 + a22d448:177887d8135:-6718 + 174 + 120 + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/DS/SetFilterParms.opi b/core/base/tools/commander/workspace_template/Displays/Apps/DS/SetFilterParms.opi index da608f98a..ce35a4b7c 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/DS/SetFilterParms.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/DS/SetFilterParms.opi @@ -32,4 +32,553 @@ -736e4684:150ac3c95a1:-723f -1 -1 + + + false + false + + + + true + + + + 1 + 1 + false + true + + Default + + false + + + + 0 + 25 + 1 + false + true + 1.7976931348623157E308 + -1.7976931348623157E308 + FilterParmsIndex + 10.0 + 3 + false + loc://SetFilterParamsFilterParmsIndex<VDouble> + + + + true + true + false + + + true + 1.0 + $(pv_name) +$(pv_value) + false + 1 + true + Spinner + 85 + a22d448:177887d8135:-6b8f + 180 + 66 + + + + + + + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 24 + ../../Resources/send.png + Action Button_1 + 0 + + + + + true + true + false + + + + SetFilterParams + false + $(pv_name) +$(pv_value) + true + Action Button + 163 + a22d448:177887d8135:-6b8e + 66 + 252 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 1 + Label + + + true + true + false + + + FilterParmsIndex + + true + 1 + true + Label + 121 + false + a22d448:177887d8135:-6b8d + 30 + 69 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 1 + Label_1 + + + true + true + false + + + Algorithm_N + + true + 1 + true + Label + 103 + false + a22d448:177887d8135:-6b8c + 30 + 99 + + + + false + false + + + + true + + + + 1 + 1 + false + true + + Default + + false + + + + 2 + 25 + 1 + false + true + 1.7976931348623157E308 + -1.7976931348623157E308 + MessageID + 10.0 + 3 + false + loc://SetFilterParamsMsgID<VDouble> + + + + true + true + false + + + true + 1.0 + $(pv_name) +$(pv_value) + false + 1 + true + Spinner + 85 + a22d448:177887d8135:-6b8b + 180 + 36 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 1 + Label_2 + + + true + true + false + + + MessageID + + true + 1 + true + Label + 121 + false + a22d448:177887d8135:-6b8a + 30 + 39 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 1 + Label_3 + + + true + true + false + + + Algorithm_O + + true + 1 + true + Label + 103 + false + a22d448:177887d8135:-6b5e + 30 + 171 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 1 + Label_4 + + + true + true + false + + + Algorithm_X + + true + 1 + true + Label + 103 + false + a22d448:177887d8135:-6b56 + 30 + 135 + + + + false + false + + + + true + + + + 1 + 1 + false + true + + Default + + false + + + + 0 + 25 + 1 + false + true + 1.7976931348623157E308 + -1.7976931348623157E308 + Algorithm_O + 10.0 + 3 + false + loc://SetFilterParamsFilterAlgorithm_O<VDouble> + + + + true + true + false + + + true + 1.0 + $(pv_name) +$(pv_value) + false + 1 + true + Spinner + 85 + a22d448:177887d8135:-6b4d + 180 + 168 + + + + false + false + + + + true + + + + 1 + 1 + false + true + + Default + + false + + + + 0 + 25 + 1 + false + true + 1.7976931348623157E308 + -1.7976931348623157E308 + Algorithm_X + 10.0 + 3 + false + loc://SetFilterParamsAlgorithm_X<VDouble> + + + + true + true + false + + + true + 1.0 + $(pv_name) +$(pv_value) + false + 1 + true + Spinner + 85 + a22d448:177887d8135:-6b48 + 180 + 132 + + + + false + false + + + + true + + + + 1 + 1 + false + true + + Default + + false + + + + 0 + 25 + 1 + false + true + 1.7976931348623157E308 + -1.7976931348623157E308 + Algorithm_N + 10.0 + 3 + false + loc://SetFilterParamsAlgorithm_N<VDouble> + + + + true + true + false + + + true + 1.0 + $(pv_name) +$(pv_value) + false + 1 + true + Spinner + 85 + a22d448:177887d8135:-6b43 + 180 + 96 + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/DS/SetFilterType.opi b/core/base/tools/commander/workspace_template/Displays/Apps/DS/SetFilterType.opi index fbe4493a4..7e44409a7 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/DS/SetFilterType.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/DS/SetFilterType.opi @@ -32,4 +32,359 @@ -736e4684:150ac3c95a1:-7243 -1 -1 + + + false + false + + + + true + + + + 1 + 1 + false + true + + Default + + false + + + + 0 + 25 + 1 + false + true + 1.7976931348623157E308 + -1.7976931348623157E308 + FilterParmsIndex + 10.0 + 3 + false + loc://SetFilterTypeFilterParmsIndex<VDouble> + + + + true + true + false + + + true + 1.0 + $(pv_name) +$(pv_value) + false + 1 + true + Spinner + 85 + a22d448:177887d8135:-6aac + 198 + 93 + + + + + + + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 24 + ../../Resources/send.png + Action Button_1 + 0 + + + + + true + true + false + + + + SetFilterParams + false + $(pv_name) +$(pv_value) + true + Action Button + 163 + a22d448:177887d8135:-6aab + 84 + 174 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 1 + Label + + + true + true + false + + + FilterParmsIndex + + true + 1 + true + Label + 121 + false + a22d448:177887d8135:-6aaa + 48 + 96 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 1 + Label_1 + + + true + true + false + + + FilterType + + true + 1 + true + Label + 103 + false + a22d448:177887d8135:-6aa9 + 48 + 126 + + + + false + false + + + + true + + + + 1 + 1 + false + true + + Default + + false + + + + 2 + 25 + 1 + false + true + 1.7976931348623157E308 + -1.7976931348623157E308 + MessageID + 10.0 + 3 + false + loc://SetFilterTypeMsgID<VDouble> + + + + true + true + false + + + true + 1.0 + $(pv_name) +$(pv_value) + false + 1 + true + Spinner + 85 + a22d448:177887d8135:-6aa8 + 198 + 63 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 1 + Label_2 + + + true + true + false + + + MessageID + + true + 1 + true + Label + 121 + false + a22d448:177887d8135:-6aa7 + 48 + 66 + + + + false + false + + + + true + + + + 1 + 1 + false + true + + Default + + false + + + + 0 + 25 + 1 + false + true + 1.7976931348623157E308 + -1.7976931348623157E308 + FilterType + 10.0 + 3 + false + loc://SetFilterTypeFilterType<VDouble> + + + + true + true + false + + + true + 1.0 + $(pv_name) +$(pv_value) + false + 1 + true + Spinner + 85 + a22d448:177887d8135:-6aa2 + 198 + 123 + \ No newline at end of file From 8d088fca91004588d6bfea801c3c1ba83468484b Mon Sep 17 00:00:00 2001 From: Mathew Benson Date: Tue, 9 Feb 2021 23:10:16 -0600 Subject: [PATCH 081/370] Added CPU ID to the message ID header files. Still updating the yaml files. --- .../target/apps/sch/tables/sch_def_msgtbl.c | 6 +- .../target/apps/sch/tables/sch_def_schtbl.c | 3 - config/obc/cpd/inc/cfe_msgids.h | 52 +- config/obc/cpd/inc/cfe_platform_cfg.h | 10 +- .../target/apps/sch/tables/sch_def_msgtbl.c | 6 +- .../target/apps/sch/tables/sch_def_schtbl.c | 4 +- config/obc/ppd/inc/cfe_platform_cfg.h | 1772 +++++++++++++++++ .../target/apps/sch/tables/sch_def_msgtbl.c | 6 +- .../target/apps/sch/tables/sch_def_schtbl.c | 4 +- .../shared/apps/sch/tables/sch_def_msgtbl.c | 6 +- .../shared/apps/sch/tables/sch_def_schtbl.c | 4 +- .../shared/apps/sch/tables/sch_def_msgtbl.c | 6 +- .../shared/apps/sch/tables/sch_def_schtbl.c | 3 - config/shared/inc/cfe_mission_cfg.h | 4 + config/shared/inc/cfe_msgids.h | 50 +- config/shared/inc/cfe_platform_cfg.h | 2 + config/shared/inc/msg_ids.h | 1190 +++++------ config/wh_config.yaml | 622 +++--- 18 files changed, 2668 insertions(+), 1082 deletions(-) create mode 100644 config/obc/ppd/inc/cfe_platform_cfg.h diff --git a/config/bebop2/target/apps/sch/tables/sch_def_msgtbl.c b/config/bebop2/target/apps/sch/tables/sch_def_msgtbl.c index e67e352a0..efdf0fdcc 100644 --- a/config/bebop2/target/apps/sch/tables/sch_def_msgtbl.c +++ b/config/bebop2/target/apps/sch/tables/sch_def_msgtbl.c @@ -210,11 +210,11 @@ SCH_MessageEntry_t SCH_DefaultMessageTable[SCH_MAX_MESSAGES] = /* Command ID #84 */ { { SCH_FIX_HEADER(AK8963_WAKEUP_MID, 0xC000, 0x0001), 0x0000 } }, /* Command ID #85 */ - { { SCH_FIX_HEADER(NEOM8N_SEND_HK_MID, 0xC000, 0x0001), 0x0000 } }, + { { SCH_FIX_HEADER(SCH_UNUSED_MID, 0, 0), 0 } }, /* Command ID #86 */ - { { SCH_FIX_HEADER(NEOM8N_MEASURE_MID, 0xC000, 0x0001), 0x0000 } }, + { { SCH_FIX_HEADER(SCH_UNUSED_MID, 0, 0), 0 } }, /* Command ID #87 */ - { { SCH_FIX_HEADER(NEOM8N_PROC_CMDS_MID, 0xC000, 0x0001), 0x0000 } }, + { { SCH_FIX_HEADER(SCH_UNUSED_MID, 0, 0), 0 } }, /* Command ID #88 */ { { SCH_FIX_HEADER(SCH_UNUSED_MID, 0, 0), 0 } }, /* Command ID #89 */ diff --git a/config/bebop2/target/apps/sch/tables/sch_def_schtbl.c b/config/bebop2/target/apps/sch/tables/sch_def_schtbl.c index e70538a06..16182b923 100644 --- a/config/bebop2/target/apps/sch/tables/sch_def_schtbl.c +++ b/config/bebop2/target/apps/sch/tables/sch_def_schtbl.c @@ -177,9 +177,6 @@ FLOW_SEND_HK_MIDX 1Hz, 53 #define AK8963_SEND_HK_MIDX 83 #define AK8963_WAKEUP_MIDX 84 -#define NEOM8N_SEND_HK_MIDX 85 -#define NEOM8N_MEASURE_MIDX 86 -#define NEOM8N_PROC_CMDS_MIDX 87 #define SENS_SEND_HK_MIDX 90 #define SENS_WAKEUP_MIDX 91 diff --git a/config/obc/cpd/inc/cfe_msgids.h b/config/obc/cpd/inc/cfe_msgids.h index ba8d44d52..6d3549a12 100644 --- a/config/obc/cpd/inc/cfe_msgids.h +++ b/config/obc/cpd/inc/cfe_msgids.h @@ -1,58 +1,8 @@ #ifndef CFE_MSGIDS_H #define CFE_MSGIDS_H -/* -** Includes -*/ -#include "cfe_mission_cfg.h" +#include "msg_ids.h" -/* -** cFE Command Message Id's -*/ -#define CFE_EVS_CMD_MID CFE_CMD_MID_BASE_CPU2 + CFE_EVS_CMD_MSG /* 0x1801 */ - /* Message ID 0x1802 is available */ -#define CFE_SB_CMD_MID CFE_CMD_MID_BASE_CPU2 + CFE_SB_CMD_MSG /* 0x1803 */ -#define CFE_TBL_CMD_MID CFE_CMD_MID_BASE_CPU2 + CFE_TBL_CMD_MSG /* 0x1804 */ -#define CFE_TIME_CMD_MID CFE_CMD_MID_BASE_CPU2 + CFE_TIME_CMD_MSG /* 0x1805 */ -#define CFE_ES_CMD_MID CFE_CMD_MID_BASE_CPU2 + CFE_ES_CMD_MSG /* 0x1806 */ - -#define CFE_ES_SEND_HK_MID CFE_CMD_MID_BASE_CPU2 + CFE_ES_SEND_HK_MSG /* 0x1808 */ -#define CFE_EVS_SEND_HK_MID CFE_CMD_MID_BASE_CPU2 + CFE_EVS_SEND_HK_MSG /* 0x1809 */ - /* Message ID 0x180A is available */ -#define CFE_SB_SEND_HK_MID CFE_CMD_MID_BASE_CPU2 + CFE_SB_SEND_HK_MSG /* 0x180B */ -#define CFE_TBL_SEND_HK_MID CFE_CMD_MID_BASE_CPU2 + CFE_TBL_SEND_HK_MSG /* 0x180C */ -#define CFE_TIME_SEND_HK_MID CFE_CMD_MID_BASE_CPU2 + CFE_TIME_SEND_HK_MSG /* 0x180D */ - -#define CFE_TIME_TONE_CMD_MID CFE_CMD_MID_BASE_CPU2 + CFE_TIME_TONE_CMD_MSG /* 0x1810 */ -#define CFE_TIME_1HZ_CMD_MID CFE_CMD_MID_BASE_CPU2 + CFE_TIME_1HZ_CMD_MSG /* 0x1811 */ - - -/* -** cFE Global Command Message Id's -*/ -#define CFE_TIME_DATA_CMD_MID CFE_CMD_MID_BASE_GLOB + CFE_TIME_DATA_CMD_MSG /* 0x1860 */ -#define CFE_TIME_FAKE_CMD_MID CFE_CMD_MID_BASE_GLOB + CFE_TIME_FAKE_CMD_MSG /* 0x1861 */ -#define CFE_TIME_SEND_CMD_MID CFE_CMD_MID_BASE_GLOB + CFE_TIME_SEND_CMD_MSG /* 0x1862 */ - - -/* -** CFE Telemetry Message Id's -*/ -#define CFE_ES_HK_TLM_MID CFE_TLM_MID_BASE_CPU2 + CFE_ES_HK_TLM_MSG /* 0x0800 */ -#define CFE_EVS_HK_TLM_MID CFE_TLM_MID_BASE_CPU2 + CFE_EVS_HK_TLM_MSG /* 0x0801 */ - /* Message ID 0x0802 is available */ -#define CFE_SB_HK_TLM_MID CFE_TLM_MID_BASE_CPU2 + CFE_SB_HK_TLM_MSG /* 0x0803 */ -#define CFE_TBL_HK_TLM_MID CFE_TLM_MID_BASE_CPU2 + CFE_TBL_HK_TLM_MSG /* 0x0804 */ -#define CFE_TIME_HK_TLM_MID CFE_TLM_MID_BASE_CPU2 + CFE_TIME_HK_TLM_MSG /* 0x0805 */ -#define CFE_TIME_DIAG_TLM_MID CFE_TLM_MID_BASE_CPU2 + CFE_TIME_DIAG_TLM_MSG /* 0x0806 */ -#define CFE_EVS_EVENT_MSG_MID CFE_TLM_MID_BASE_CPU2 + CFE_EVS_EVENT_MSG_MSG /* 0x0808 */ -#define CFE_SB_STATS_TLM_MID CFE_TLM_MID_BASE_CPU2 + CFE_SB_STATS_TLM_MSG /* 0x080A */ -#define CFE_ES_APP_TLM_MID CFE_TLM_MID_BASE_CPU2 + CFE_ES_APP_TLM_MSG /* 0x080B */ -#define CFE_TBL_REG_TLM_MID CFE_TLM_MID_BASE_CPU2 + CFE_TBL_REG_TLM_MSG /* 0x080C */ -#define CFE_SB_ALLSUBS_TLM_MID CFE_TLM_MID_BASE_CPU2 + CFE_SB_ALLSUBS_TLM_MSG /* 0x080D */ -#define CFE_SB_ONESUB_TLM_MID CFE_TLM_MID_BASE_CPU2 + CFE_SB_ONESUB_TLM_MSG /* 0x080E */ -#define CFE_ES_SHELL_TLM_MID CFE_TLM_MID_BASE_CPU2 + CFE_ES_SHELL_TLM_MSG /* 0x080F */ -#define CFE_ES_MEMSTATS_TLM_MID CFE_TLM_MID_BASE_CPU2 + CFE_ES_MEMSTATS_TLM_MSG /* 0x0810 */ #endif diff --git a/config/obc/cpd/inc/cfe_platform_cfg.h b/config/obc/cpd/inc/cfe_platform_cfg.h index 957b5cc61..72105b5e9 100644 --- a/config/obc/cpd/inc/cfe_platform_cfg.h +++ b/config/obc/cpd/inc/cfe_platform_cfg.h @@ -6,6 +6,8 @@ */ #include "cfe_mission_cfg.h" +#define CFE_MSG_CPU_BASE (0x0200) + /* ** CPU Id for target Processor */ @@ -14,7 +16,7 @@ /* ** CPU Name for target Processor */ -#define CFE_CPU_NAME "CPU2" +#define CFE_CPU_NAME "CPD" /** ** \cfesbcfg Maximum Number of Unique Message IDs SB Routing Table can hold @@ -30,7 +32,7 @@ ** This parameter has a lower limit of 1 and an upper limit of 1024. ** */ -#define CFE_SB_MAX_MSG_IDS 256 +#define CFE_SB_MAX_MSG_IDS 1024 /** @@ -477,7 +479,7 @@ ** ** \par Limits ** There is a lower limit of 6 and an upper limit of 64 on this configuration -** paramater. The lower limit corresponds to the cFE internal applications. +** parameter. The lower limit corresponds to the cFE internal applications. */ #define CFE_ES_MAX_APPLICATIONS 64 @@ -560,7 +562,7 @@ ** \par Limits ** This parameter has a lower limit of 1 and an upper limit of 65535. */ -#define CFE_ES_MAX_GEN_COUNTERS 8 +#define CFE_ES_MAX_GEN_COUNTERS 64 /** diff --git a/config/obc/cpd/target/apps/sch/tables/sch_def_msgtbl.c b/config/obc/cpd/target/apps/sch/tables/sch_def_msgtbl.c index 8c5ce16ca..a46ba95d1 100644 --- a/config/obc/cpd/target/apps/sch/tables/sch_def_msgtbl.c +++ b/config/obc/cpd/target/apps/sch/tables/sch_def_msgtbl.c @@ -210,11 +210,11 @@ SCH_MessageEntry_t SCH_DefaultMessageTable[SCH_MAX_MESSAGES] = /* Command ID #84 */ { { SCH_FIX_HEADER(SCH_UNUSED_MID, 0, 0), 0 } }, /* Command ID #85 */ - { { SCH_FIX_HEADER(NEOM8N_SEND_HK_MID, 0xC000, 0x0001), 0x0000 } }, + { { SCH_FIX_HEADER(SCH_UNUSED_MID, 0, 0), 0 } }, /* Command ID #86 */ - { { SCH_FIX_HEADER(NEOM8N_MEASURE_MID, 0xC000, 0x0001), 0x0000 } }, + { { SCH_FIX_HEADER(SCH_UNUSED_MID, 0, 0), 0 } }, /* Command ID #87 */ - { { SCH_FIX_HEADER(NEOM8N_PROC_CMDS_MID, 0xC000, 0x0001), 0x0000 } }, + { { SCH_FIX_HEADER(SCH_UNUSED_MID, 0, 0), 0 } }, /* Command ID #88 */ { { SCH_FIX_HEADER(HMC5883_WAKEUP_MID, 0xC000, 0x0001), 0x0000 } }, /* Command ID #89 */ diff --git a/config/obc/cpd/target/apps/sch/tables/sch_def_schtbl.c b/config/obc/cpd/target/apps/sch/tables/sch_def_schtbl.c index 30f327d76..a732da09d 100644 --- a/config/obc/cpd/target/apps/sch/tables/sch_def_schtbl.c +++ b/config/obc/cpd/target/apps/sch/tables/sch_def_schtbl.c @@ -179,9 +179,7 @@ VC_PROCESS_CMDS_MIDX 1Hz, 12 #define HMC5883_SEND_HK_MIDX 82 #define AK8963_SEND_HK_MIDX 83 #define AK8963_WAKEUP_MIDX 84 -#define NEOM8N_SEND_HK_MIDX 85 -#define NEOM8N_MEASURE_MIDX 86 -#define NEOM8N_PROC_CMDS_MIDX 87 + #define HMC5883_WAKEUP_MIDX 88 #define SENS_SEND_HK_MIDX 90 diff --git a/config/obc/ppd/inc/cfe_platform_cfg.h b/config/obc/ppd/inc/cfe_platform_cfg.h new file mode 100644 index 000000000..a04f5a91a --- /dev/null +++ b/config/obc/ppd/inc/cfe_platform_cfg.h @@ -0,0 +1,1772 @@ +#ifndef CFE_PLATFORM_CFG_H +#define CFE_PLATFORM_CFG_H + +/* +** Allow reference to CFE_SPACECRAFT_ID (see CFE_TBL_VALID_ definitions below) +*/ +#include "cfe_mission_cfg.h" + +#define CFE_MSG_CPU_BASE (0x0000) + +/* +** CPU Id for target Processor +*/ +#define CFE_CPU_ID 1 + +/* +** CPU Name for target Processor +*/ +#define CFE_CPU_NAME "PPD" + +/** +** \cfesbcfg Maximum Number of Unique Message IDs SB Routing Table can hold +** +** \par Description: +** Dictates the maximum number of unique MsgIds the SB routing table will hold. +** This constant has a direct affect on the size of SB's tables and arrays. +** Keeping this count as low as possible will save memory. +** To see the run-time, high-water mark and the current utilization figures +** regarding this parameter, send an SB command to 'Send Statistics Pkt'. +** +** \par Limits +** This parameter has a lower limit of 1 and an upper limit of 1024. +** +*/ +#define CFE_SB_MAX_MSG_IDS 1024 + + +/** +** \cfesbcfg Maximum Number of Unique Pipes SB Routing Table can hold +** +** \par Description: +** Dictates the maximum number of unique Pipes the SB routing table will hold. +** This constant has a direct affect on the size of SB's tables and arrays. +** Keeping this count as low as possible will save memory. +** To see the run-time, high-water mark and the current utilization figures +** regarding this parameter, send an SB command to 'Send Statistics Pkt'. +** +** \par Limits +** This parameter has a lower limit of 1 and an upper limit of 255. +** This parameter must also be less than or equal to OS_MAX_QUEUES +** +*/ +#define CFE_SB_MAX_PIPES 255 + + +/** +** \cfesbcfg Maximum Number of unique local destinations a single MsgId can have +** +** \par Description: +** Dictates the maximum number of unique local destinations a single MsgId can +** have. +** +** \par Limits +** This parameter has a lower limit of 1 and an upper limit of 64. +** +*/ +#define CFE_SB_MAX_DEST_PER_PKT 16 + + +/** +** \cfesbcfg Default Subscription Message Limit +** +** \par Description: +** Dictates the default Message Limit when using the #CFE_SB_Subscribe API. This will +** limit the number of messages with a specific message ID that can be received through +** a subscription. This only changes the default; other message limits can be set on a per +** subscription basis using #CFE_SB_SubscribeEx . +** +** \par Limits +** This parameter has a lower limit of 4 and an upper limit of 65535. +** +*/ +#define CFE_SB_DEFAULT_MSG_LIMIT 4 + + +/** +** \cfesbcfg Size of the SB buffer memory pool +** +** \par Description: +** Dictates the size of the SB memory pool. For each message the SB +** sends, the SB dynamically allocates from this memory pool, the memory needed +** to process the message. The memory needed to process each message is msg +** size + msg descriptor(#CFE_SB_BufferD_t). This memory pool is also used +** to allocate destination descriptors (#CFE_SB_DestinationD_t) during the +** subscription process. +** To see the run-time, high-water mark and the current utilization figures +** regarding this parameter, send an SB command to 'Send Statistics Pkt'. +** Some memory statistics have been added to the SB housekeeping packet. +** NOTE: It is important to monitor these statistics to ensure the desired +** memory margin is met. +** +** \par Limits +** This parameter has a lower limit of 512 and an upper limit 4.29G bytes. +** +*/ +#define CFE_SB_BUF_MEMORY_BYTES 524288 + + +/** +** \cfesbcfg Maximum depth allowed when creating an SB pipe +** +** \par Description: +** The value of this constant dictates the maximum pipe depth that an +** application may request. The pipe depth is given as a paramter in the +** #CFE_SB_CreatePipe API. +** +** \par Limits +** This parameter has a lower limit of 1 and an upper limit of 65535. +*/ +#define CFE_SB_MAX_PIPE_DEPTH 256 + + +/** +** \cfesbcfg Highest Valid Message Id +** +** \par Description: +** The value of this constant dictates the size of the SB message map. The SB +** messsage map is a lookup table that provides the routing table index for +** fast access into the routing table.The default setting of 0x1FFF was chosen +** to save memory for CCSDS implementations where the CCSDS Version number +** (3 MSB's of MsgId) would remain constant throughout the mission. This +** reduces the message map from 128Kbytes to 16Kbytes.See CFE_FSW_DCR 504 for +** more details. +** +** \par Limits +** This parameter has a lower limit of 1 and an upper limit of 0xFFFF. +*/ +#define CFE_SB_HIGHEST_VALID_MSGID 0x1FFF + + +/** +** \cfesbcfg Default Routing Information Filename +** +** \par Description: +** The value of this constant defines the filename used to store the software +** bus routing information. This filename is used only when no filename is +** specified in the command. +** +** \par Limits +** The length of each string, including the NULL terminator cannot exceed the +** #OS_MAX_PATH_LEN value. +*/ +#define CFE_SB_DEFAULT_ROUTING_FILENAME "/ram/cfe_sb_route.dat" + + +/** +** \cfesbcfg Default Pipe Information Filename +** +** \par Description: +** The value of this constant defines the filename used to store the software +** bus pipe information. This filename is used only when no filename is +** specified in the command. +** +** \par Limits +** The length of each string, including the NULL terminator cannot exceed the +** #OS_MAX_PATH_LEN value. +*/ +#define CFE_SB_DEFAULT_PIPE_FILENAME "/ram/cfe_sb_pipe.dat" + + +/** +** \cfesbcfg Default Message Map Filename +** +** \par Description: +** The value of this constant defines the filename used to store the software +** bus message map information. This filename is used only when no filename is +** specified in the command. The message map is a lookup table (array of 16bit +** words) that has an element for each possible MsgId value and holds the +** routing table index for that MsgId. The Msg Map provides fast access to the +** destinations of a message. +** +** \par Limits +** The length of each string, including the NULL terminator cannot exceed the +** #OS_MAX_PATH_LEN value. +*/ +#define CFE_SB_DEFAULT_MAP_FILENAME "/ram/cfe_sb_msgmap.dat" + + +/** +** \cfesbcfg SB Event Filtering +** +** \par Description: +** This group of configuration paramters dictates what SB events will be +** filtered through EVS. The filtering will begin after the SB task initializes +** and stay in effect until a cmd to EVS changes it. +** This allows the operator to set limits on the number of event messages that +** are sent during system initialization. +** NOTE: Set all unused event values and mask values to zero +** +** \par Limits +** This filtering applies only to SB events. +** These parameters have a lower limit of 0 and an upper limit of 65535. +*/ +#define CFE_SB_FILTERED_EVENT1 CFE_SB_SEND_NO_SUBS_EID +#define CFE_SB_FILTER_MASK1 CFE_EVS_FIRST_4_STOP + +#define CFE_SB_FILTERED_EVENT2 CFE_SB_DUP_SUBSCRIP_EID +#define CFE_SB_FILTER_MASK2 CFE_EVS_FIRST_4_STOP + +#define CFE_SB_FILTERED_EVENT3 CFE_SB_MSGID_LIM_ERR_EID +#define CFE_SB_FILTER_MASK3 CFE_EVS_FIRST_16_STOP + +#define CFE_SB_FILTERED_EVENT4 CFE_SB_Q_FULL_ERR_EID +#define CFE_SB_FILTER_MASK4 CFE_EVS_FIRST_16_STOP + +#define CFE_SB_FILTERED_EVENT5 0 +#define CFE_SB_FILTER_MASK5 CFE_EVS_NO_FILTER + +#define CFE_SB_FILTERED_EVENT6 0 +#define CFE_SB_FILTER_MASK6 CFE_EVS_NO_FILTER + +#define CFE_SB_FILTERED_EVENT7 0 +#define CFE_SB_FILTER_MASK7 CFE_EVS_NO_FILTER + +#define CFE_SB_FILTERED_EVENT8 0 +#define CFE_SB_FILTER_MASK8 CFE_EVS_NO_FILTER + + +/** +** \cfeescfg Define SB Memory Pool Block Sizes +** +** \par Description: +** Software Bus Memory Pool Block Sizes +** +** \par Limits +** These sizes MUST be increasing and MUST be an integral multiple of 4. +** The number of block sizes defined cannot exceed +** #CFE_ES_MAX_MEMPOOL_BLOCK_SIZES +*/ +#define CFE_SB_MEM_BLOCK_SIZE_01 8 +#define CFE_SB_MEM_BLOCK_SIZE_02 16 +#define CFE_SB_MEM_BLOCK_SIZE_03 20 +#define CFE_SB_MEM_BLOCK_SIZE_04 36 +#define CFE_SB_MEM_BLOCK_SIZE_05 64 +#define CFE_SB_MEM_BLOCK_SIZE_06 96 +#define CFE_SB_MEM_BLOCK_SIZE_07 128 +#define CFE_SB_MEM_BLOCK_SIZE_08 160 +#define CFE_SB_MEM_BLOCK_SIZE_09 256 +#define CFE_SB_MEM_BLOCK_SIZE_10 512 +#define CFE_SB_MEM_BLOCK_SIZE_11 1024 +#define CFE_SB_MEM_BLOCK_SIZE_12 2048 +#define CFE_SB_MEM_BLOCK_SIZE_13 4096 +#define CFE_SB_MEM_BLOCK_SIZE_14 8192 +#define CFE_SB_MEM_BLOCK_SIZE_15 16384 +#define CFE_SB_MEM_BLOCK_SIZE_16 32768 +#define CFE_SB_MAX_BLOCK_SIZE (CFE_SB_MAX_SB_MSG_SIZE + 40) + +/** +** \cfesbcfg Define Default Sender Information Storage Mode +** +** \par Description: +** Defines the default mode for the storing of sender information when sending +** a software bus message. If set to 1, the sender information will be stored. +** If set to 0, the sender information will not be stored. +** +** \par Limits +** There is a lower limit of 0 and an upper limit of 1 on this configuration +** paramater. +*/ +#define CFE_SB_DEFAULT_REPORT_SENDER 1 + + +/** +** \cfetimecfg Time Server or Time Client Selection +** +** \par Description: +** This configuration parameter selects whether the Time task functions as a +** time "server" or "client". A time server generates the "time at the tone" +** packet which is received by time clients. +** +** \par Limits +** Enable one, and only one by defining either CFE_TIME_CFG_SERVER or +** CFE_TIME_CFG_CLIENT AS TRUE. The other must be defined as FALSE. +*/ +#define CFE_TIME_CFG_SERVER TRUE +#define CFE_TIME_CFG_CLIENT FALSE + +/** +** \cfetimecfg Local MET or Virtual MET Selection for Time Servers +** +** \par Description: +** Depending on the specific hardware system configuration, it may be possible +** for Time Servers to read the "local" MET from a h/w register rather than +** having to track the MET as the count of tone signal interrupts (virtual MET) +** +** Time Clients must be defined as using a virtual MET. Also, a Time Server +** cannot be defined as having both a h/w MET and an external time source (they +** both cannot synchronize to the same tone). +** +** Note: "disable" this define (set to FALSE) only for Time Servers with local hardware +** that supports a h/w MET that is synchronized to the tone signal !!! +** +** \par Limits +** Only applies if #CFE_TIME_CFG_SERVER is set to TRUE. +*/ +#define CFE_TIME_CFG_VIRTUAL TRUE + + +/** +** \cfetimecfg Include or Exclude the Primary/Redundant Tone Selection Cmd +** +** \par Description: +** Depending on the specific hardware system configuration, it may be possible +** to switch between a primary and redundant tone signal. If supported by +** hardware, this definitions will enable command interfaces to select the +** active tone signal. Both Time Clients and Time Servers support this feature. +** Note: Set the CFE_TIME_CFG_SIGNAL define to TRUE to enable tone signal commands. +** +** \par Limits +** Not Applicable +*/ +#define CFE_TIME_CFG_SIGNAL FALSE + + +/** +** \cfetimecfg Include or Exclude the Internal/External Time Source Selection Cmd +** +** \par Description: +** By default, Time Servers maintain time using an internal MET which may be a +** h/w register or software counter, depending on available hardware. The +** following definition enables command interfaces to switch between an +** internal MET, or external time data received from one of several supported +** external time sources. Only a Time Server may be configured to use external +** time data. +** Note: Set the CFE_TIME_CFG_SOURCE define to TRUE to include the Time Source +** Selection Command (command allows selection between the internal +** or external time source). Then choose the external source with the +** CFE_TIME_CFG_SRC_??? define. +** +** \par Limits +** Only applies if #CFE_TIME_CFG_SERVER is set to TRUE. +*/ +#define CFE_TIME_CFG_SOURCE FALSE + + +/** +** \cfetimecfg Choose the External Time Source for Server only +** +** \par Description: +** If #CFE_TIME_CFG_SOURCE is set to TRUE, then one of the following external time +** source types must also be set to TRUE. Do not set any of the external time +** source types to TRUE unless #CFE_TIME_CFG_SOURCE is set to TRUE. +** +** \par Limits +** -# If #CFE_TIME_CFG_SOURCE is set to TRUE then one and only one of the following +** three external time sources can and must be set TRUE: +** #CFE_TIME_CFG_SRC_MET, #CFE_TIME_CFG_SRC_GPS, #CFE_TIME_CFG_SRC_TIME +** -# Only applies if #CFE_TIME_CFG_SERVER is set to TRUE. +*/ +#define CFE_TIME_CFG_SRC_MET FALSE +#define CFE_TIME_CFG_SRC_GPS FALSE +#define CFE_TIME_CFG_SRC_TIME FALSE + + +/** +** \cfetimecfg Define the Max Delta Limits for Time Servers using an Ext Time Source +** +** \par Description: +** If #CFE_TIME_CFG_SOURCE is set to TRUE and one of the external time sources is +** also set to TRUE, then the delta time limits for range checking is used. +** +** When a new time value is received from an external source, the value is +** compared against the "expected" time value. If the delta exceeds the +** following defined amount, then the new time data will be ignored. This range +** checking is only performed after the clock state has been commanded to +** "valid". Until then, external time data is accepted unconditionally. +** +** \par Limits +** Applies only if both #CFE_TIME_CFG_SERVER and #CFE_TIME_CFG_SOURCE are set +** to TRUE. +*/ +#define CFE_TIME_MAX_DELTA_SECS 0 +#define CFE_TIME_MAX_DELTA_SUBS 500000 + + +/** +** \cfetimecfg Define the Local Clock Rollover Value in seconds and subseconds +** +** \par Description: +** Specifies the capability of the local clock. Indicates the time at which +** the local clock rolls over. +** +** \par Limits +** Not Applicable +*/ +#define CFE_TIME_MAX_LOCAL_SECS 27 +#define CFE_TIME_MAX_LOCAL_SUBS 0 + + +/** +** \cfetimecfg Define Timing Limits From One Tone To The Next +** +** \par Description: +** Defines limits to the timing of the 1Hz tone signal. A tone signal is valid +** only if it arrives within one second (plus or minus the tone limit) from +** the previous tone signal.Units are microseconds as measured with the local +** clock. +** +** \par Limits +** Not Applicable +*/ +#define CFE_TIME_CFG_TONE_LIMIT 20000 + + + +/** +** \cfetimecfg Define Time to Start Flywheel Since Last Tone +** +** \par Description: +** Define time to enter flywheel mode (in seconds since last tone data update) +** Units are microseconds as measured with the local clock. +** +** \par Limits +** Not Applicable +*/ +#define CFE_TIME_CFG_START_FLY 2 + + +/** +** \cfetimecfg Define Periodic Time to Update Local Clock Tone Latch +** +** \par Description: +** Define Periodic Time to Update Local Clock Tone Latch. Applies only when +** in flywheel mode. This define dicates the period at which the simulated +** 'last tone' time is updated. Units are seconds. +** +** \par Limits +** Not Applicable +*/ +#define CFE_TIME_CFG_LATCH_FLY 8 + + +/** +** \cfetimecfg Define Maximum number of Time Synchronization Callbacks allowed +** +** \par Description: +** Define maximum number of Time Synchronization callback functions allowed. +** Each callback is called whenever cFE TIME receives a valid time synchronization +** signal (typically 1 Hz). +** +** \par Limits +** Not Applicable +*/ +#define CFE_TIME_MAX_NUM_SYNCH_FUNCS 4 + + +/** +** \cfetimecfg Enable (or disable) the 1HZ time command packet +** +** \par Description: +** Controls the generation of a packet that may be used as a 1HZ wakeup +** signal for applications that subscribe to CFE_TIME_1HZ_CMD_MID. +** Disable the packet to avoid 'no subscriber' errors that result from +** sending a packet when there are no subscribers to the packet. +** +** \par Limits +** Enable the 1HZ packet by setting #CFE_TIME_ENA_1HZ_CMD_PKT to TRUE. +** Disable the 1HZ packet by setting #CFE_TIME_ENA_1HZ_CMD_PKT to FALSE. +*/ +#define CFE_TIME_ENA_1HZ_CMD_PKT TRUE + + +/** +** \cfeescfg Define Max Number of Applications +** +** \par Description: +** Defines the maximum number of applications that can be loaded into the +** system. This number does not include child tasks. +** +** \par Limits +** There is a lower limit of 6 and an upper limit of 64 on this configuration +** parameter. The lower limit corresponds to the cFE internal applications. +*/ +#define CFE_ES_MAX_APPLICATIONS 64 + + +/** +** \cfeescfg Define Max Number of Shared libraries +** +** \par Description: +** Defines the maximum number of cFE Shared libraries that can be loaded into +** the system. +** +** \par Limits +** There is a lower limit of 1 and an upper limit of 64 on this configuration +** paramater. +*/ +#define CFE_ES_MAX_LIBRARIES 10 + +/** +** \cfeescfg Define Max Number of ER (Exception and Reset) log entries +** +** \par Description: +** Defines the maximum number of ER (Exception and Reset) log entries +** +** \par Limits +** There is a lower limit of 10 and an upper limit of 128 on this configuration +** paramater. +*/ +#define CFE_ES_ER_LOG_ENTRIES 20 + +/** \cfeescfg Maximum size of CPU Context in ES Error Log +** +** \par Description: +** This should be large enough to accommodate the CPU context +** information supplied by the PSP on the given platform. +** +** \par Limits: +** Must be greater than zero and a multiple of sizeof(uint32). +** Limited only by the available memory and the number of entries +** in the error log. Any context information beyond this size will +** be truncated. +*/ +#define CFE_ES_ER_LOG_MAX_CONTEXT_SIZE 128 + + +/** +** \cfeescfg Define Size of the cFE System Log. +** +** \par Description: +** Defines the size in bytes of the cFE system log. The system log holds +** variable length strings that are terminated by a linefeed and null +** character. +** +** \par Limits +** There is a lower limit of 512 and an upper limit of 16384 on this +** configuration paramater. +*/ +#define CFE_ES_SYSTEM_LOG_SIZE 3072 + + +/** +** \cfeescfg Define Number of entries in the ES Object table +** +** \par Description: +** Defines the number of entries in the ES Object table. This table controls +** the core cFE startup. +** +** \par Limits +** There is a lower limit of 15 and an upper limit of 50 on this configuration +** paramater. +*/ +#define CFE_ES_OBJECT_TABLE_SIZE 30 + + +/** +** \cfeescfg Define Max Number of Generic Counters +** +** \par Description: +** Defines the maximum number of Generic Counters that can be registered. +** +** \par Limits +** This parameter has a lower limit of 1 and an upper limit of 65535. +*/ +#define CFE_ES_MAX_GEN_COUNTERS 64 + + +/** +** \cfeescfg Define ES Application Control Scan Rate +** +** \par Description: +** ES Application Control Scan Rate. This parameter controls the speed that ES +** scans the Application Table looking for App Delete/Restart/Reload requests. +** All Applications are deleted, restarted, or reloaded by the ES Application. +** ES will periodically scan for control requests to process. The scan rate is +** controlled by this parameter, which is given in milliseconds. A value of +** 1000 means that ES will scan the Application Table once per second. Be +** careful not to set the value of this too low, because ES will use more CPU +** cycles scanning the table. +** +** \par Limits +** There is a lower limit of 100 and an upper limit of 20000 on this +** configuration paramater. millisecond units. +*/ +#define CFE_ES_APP_SCAN_RATE 1000 + + +/** +** \cfeescfg Define ES Application Kill Timeout +** +** \par Description: +** ES Application Kill Timeout. This parameter controls the number of +** "scan periods" that ES will wait for an application to Exit after getting +** the signal Delete, Reload or Restart. The sequence works as follows: +** -# ES will set the control request for an App to Delete/Restart/Reload and +** set this kill timer to the value in this parameter. +** -# If the App is reponding and Calls it's RunLoop function, it will drop out +** of it's main loop and call CFE_ES_ExitApp. Once it calls Exit App, then +** ES can delete, restart, or reload the app the next time it scans the app +** table. +** -# If the App is not responding, the ES App will decrement this Kill Timeout +** value each time it runs. If the timeout value reaches zero, ES will kill +** the app. +** +** The Kill timeout value depends on the #CFE_ES_APP_SCAN_RATE. If the Scan Rate +** is 1000, or 1 second, and this #CFE_ES_APP_KILL_TIMEOUT is set to 5, then it +** will take 5 seconds to kill a non-responding App. +** If the Scan Rate is 250, or 1/4 second, and the #CFE_ES_APP_KILL_TIMEOUT is +** set to 2, then it will take 1/2 second to time out. +** +** \par Limits +** There is a lower limit of 1 and an upper limit of 100 on this configuration +** paramater. Units are number of #CFE_ES_APP_SCAN_RATE cycles. +*/ +#define CFE_ES_APP_KILL_TIMEOUT 5 + + +/** +** \cfeescfg ES Ram Disk Sector Size +** +** \par Description: +** Defines the ram disk sector size. The ram disk is 1 of 4 memory areas that +** are preserved on a processor reset. +** NOTE: Changing this value changes memory allocation, and may +** require changes to platform specific values (in CFE_PSP) such as +** USER_RESERVED_MEM in VxWorks depending on the memory areas +** being used for preserved data and on OS specific behavior. +** +** \par Limits +** There is a lower limit of 128 and an upper limit of 4096 on this +** configuration paramater. +*/ +#define CFE_ES_RAM_DISK_SECTOR_SIZE 512 + + +/** +** \cfeescfg ES Ram Disk Number of Sectors +** +** \par Description: +** Defines the ram disk number of sectors. The ram disk is one of four memory +** areas that are preserved on a processor reset. +** NOTE: Changing this value changes memory allocation, and may +** require changes to platform specific values (in CFE_PSP) such as +** USER_RESERVED_MEM in VxWorks depending on the memory areas +** being used for preserved data and on OS specific behavior. +** +** \par Limits +** There is a lower limit of 128 and an upper limit of 8192 on this +** configuration paramater. +*/ +#define CFE_ES_RAM_DISK_NUM_SECTORS 4096 + +/** +** \cfeescfg Percentage of Ram Disk Reserved for Decompressing Apps +** +** \par Description: +** The #CFE_ES_RAM_DISK_PERCENT_RESERVED parameter is used to make sure that the +** Volatile ( RAM ) Disk has a defined amount of free space during a processor +** reset. The cFE uses the Volatile disk to decompress cFE applications during +** system startup. If this Volatile disk happens to get filled with logs and +** misc files, then a processor reset may not work, because there will be no +** room to decompress cFE apps. To solve that problem, this parameter sets the +** "Low Water Mark" for disk space on a Processor reset. It should be set to +** allow the largest cFE Application to be decompressed. +** During a Processor reset, if there is not sufficient space left on the disk, +** it will be re-formatted in order to clear up some space. +** +** This feature can be turned OFF by setting the parameter to 0. +** +** \par Limits +** There is a lower limit of 0 and an upper limit of 75 on this configuration +** paramater.Units are percentage. A setting of zero will turn this feature +** off. +*/ +#define CFE_ES_RAM_DISK_PERCENT_RESERVED 30 + + +/** +** \cfeescfg RAM Disk Mount string +** +** \par Description: +** The #CFE_ES_RAM_DISK_MOUNT_STRING parameter is used to set the cFE mount path +** for the CFE RAM disk. This is a parameter for missions that do not want to +** use the default value of "/ram", or for missions that need to have a different +** value for different CPUs or Spacecraft. +** Note that the vxWorks OSAL cannot currently handle names that have more than one +** path separator in it. The names "/ram", "/ramdisk", "/disk123" will all work, but +** "/disks/ram" will not. +** Multiple separators can be used with the posix or RTEMS ports. +** +*/ +#define CFE_ES_RAM_DISK_MOUNT_STRING "/ram" + + +/** +** \cfeescfg Define Critical Data Store Size +** +** \par Description: +** Defines the Critical Data Store (CDS) area size in bytes size. The CDS is +** one of four memory areas that are preserved during a processor reset. +** NOTE: Changing this value changes memory allocation, and may +** require changes to platform specific values (in CFE_PSP) such as +** USER_RESERVED_MEM in VxWorks depending on the memory areas +** being used for preserved data and on OS specific behavior. +** +** \par Limits +** There is a lower limit of 8192 and an upper limit of 2097152 (2MBytes) on +** this configuration paramater. +*/ +#define CFE_ES_CDS_SIZE ( 128 * 2048 ) + + +/** +** \cfeescfg Define User Reserved Memory Size +** +** \par Description: +** User Reserved Memory Size. This is the size in bytes of the cFE User +** reserved Memory area. This is a block of memory that is available for cFE +** application use. The address is obtained by calling +** #CFE_PSP_GetUserReservedArea. The User Reserved Memory is one of four memory +** areas that are preserved during a processor reset. +** NOTE: Changing this value changes memory allocation, and may +** require changes to platform specific values (in CFE_PSP) such as +** USER_RESERVED_MEM in VxWorks depending on the memory areas +** being used for preserved data and on OS specific behavior. +** +** \par Limits +** There is a lower limit of 1024 and an upper limit of 33554432 (32Mbytes) on +** this configuration paramater. +*/ +#define CFE_ES_USER_RESERVED_SIZE ( 1024 * 2048 ) + + +/** +** \cfeescfg Define ES Reset Area Size +** +** \par Description: +** The ES Reset Area Size. This is the size in bytes of the cFE Reset variable +** and log area. This is a block of memory used by the cFE to store the system +** log ER Log and critical reset variables. This is 4 of 4 of the memory areas +** that are preserved during a processor reset. +** Note: This area must be sized large enough to hold all of the data +** structures. It should be automatically sized based on the #CFE_ES_ResetData_t +** type, but circular dependancies in the headers prevent it from being defined +** this way. +** NOTE: Changing this value changes memory allocation, and may +** require changes to platform specific values (in CFE_PSP) such as +** USER_RESERVED_MEM in VxWorks depending on the memory areas +** being used for preserved data and on OS specific behavior. +** +** \par Limits +** There is a lower limit of 153600 (150KBytes) and an upper limit of 2097152 +** (2MBytes) on this configuration paramater. +*/ +#define CFE_ES_RESET_AREA_SIZE ( 170 * 2048 ) + +/** +** \cfeescfg Define Default Memory Pool Alignment Mode +** +** \par Description: +** Defines the default mode for the requirement to align ES Mempool buffer. +** If this define is set, the memory pool must be aligned or the call to +** create a new memory pool will be rejected with a CFE_ES_BAD_ARGUMENT +** return code. +** +** \par Limits +** If CFE_ES_MEMPOOL_ALIGNED is defined, the alignment check is enabled. +** If CFE_ES_MEMPOOL_ALIGNED is not defined, the alignment check is not +** compiled in. +*/ +#define CFE_ES_MEMPOOL_ALIGNED 1 + +/** +** \cfeescfg ES Nonvolatile Startup Filename +** +** \par Description: +** The value of this constant defines the path and name of the file that +** contains a list of modules that will be loaded and started by the cFE after +** the cFE finishes its startup sequence. +** +** \par Limits +** The length of each string, including the NULL terminator cannot exceed the +** #OS_MAX_PATH_LEN value. +*/ +#define CFE_ES_NONVOL_STARTUP_FILE "/cf/apps/cfe_es_startup.scr" + + +/** +** \cfeescfg ES Volatile Startup Filename +** +** \par Description: +** The value of this constant defines the path and name of the file that +** contains a list of modules that will be loaded and started by the cFE after +** the cFE finishes its startup sequence. +** +** \par Limits +** The length of each string, including the NULL terminator cannot exceed the +** #OS_MAX_PATH_LEN value. +*/ +#define CFE_ES_VOLATILE_STARTUP_FILE "/ram/apps/cfe_es_startup.scr" + +/** +** \cfeescfg Default Shell Filename +** +** \par Description: +** The value of this constant defines the filename used to store the shell +** output after a shell command is received by ES. This file contains the +** entire shell output. The fsw also sends the shell output in series of fixed +** size telemetry packets. This filename is used only when no filename +** is specified in the shell command. +** +** \par Limits +** The length of each string, including the NULL terminator cannot exceed the +** #OS_MAX_PATH_LEN value. +*/ +#define CFE_ES_DEFAULT_SHELL_FILENAME "/ram/ShellCmd.out" + + +/** +** \cfeescfg Define Max Shell Command Size +** +** \par Description: +** Defines the maximum size in characters of the shell command. +** +** \par Limits +** There is a lower limit of 64 and an upper limit of 128 on this configuration +** paramater. Units are characters. +*/ +#define CFE_ES_MAX_SHELL_CMD 64 + + +/** +** \cfeescfg Define Shell Command Telemetry Pkt Segment Size +** +** \par Description: +** Defines the size of the shell command tlm packet segments.The shell command +** output size is dependant on the shell command itself. If the shell output +** size is greater than the size of the packet defined here, the fsw will +** generate a series of tlm packets (of the size defined here) that can be +** reconstructed by the ground system. +** +** \par Limits +** There is a lower limit of 32 and an upper limit of 128 on this configuration +** paramater. +*/ +#define CFE_ES_MAX_SHELL_PKT 64 + + +/** +** \cfeescfg Default Application Information Filename +** +** \par Description: +** The value of this constant defines the filename used to store information +** pertaining to all of the Applications that are registered with Executive +** Services. This filename is used only when no filename is specified in the +** the command to query all system apps. +** +** \par Limits +** The length of each string, including the NULL terminator cannot exceed the +** #OS_MAX_PATH_LEN value. +*/ +#define CFE_ES_DEFAULT_APP_LOG_FILE "/ram/cfe_es_app_info.log" + +/** +** \cfeescfg Default Application Information Filename +** +** \par Description: +** The value of this constant defines the filename used to store information +** pertaining to all of the Applications that are registered with Executive +** Services. This filename is used only when no filename is specified in the +** the command to query all system tasks. +** +** \par Limits +** The length of each string, including the NULL terminator cannot exceed the +** #OS_MAX_PATH_LEN value. +*/ +#define CFE_ES_DEFAULT_TASK_LOG_FILE "/ram/cfe_es_task_info.log" + +/** +** \cfeescfg Default System Log Filename +** +** \par Description: +** The value of this constant defines the filename used to store important +** information (as ASCII text strings) that might not be able to be sent in an +** Event Message. This filename is used only when no filename is specified in +** the command to dump the system log. No file specified in the cmd means the +** first character in the cmd filename is a NULL terminator (zero). +** +** \par Limits +** The length of each string, including the NULL terminator cannot exceed the +** #OS_MAX_PATH_LEN value. +*/ +#define CFE_ES_DEFAULT_SYSLOG_FILE "/ram/cfe_es_syslog.log" + +/** +** \cfeescfg Default Exception and Reset (ER) Log Filename +** +** \par Description: +** The value of this constant defines the filename used to store the +** Exception and Reset (ER) Log. This filename is used only when no filename is +** specified in the command to dump the ER log. No file specified in the cmd +** means the first character in the cmd filename is a NULL terminator (zero). +** +** \par Limits +** The length of each string, including the NULL terminator cannot exceed the +** #OS_MAX_PATH_LEN value. +*/ +#define CFE_ES_DEFAULT_ER_LOG_FILE "/ram/cfe_erlog.log" + +/** +** \cfeescfg Default Performance Data Filename +** +** \par Description: +** The value of this constant defines the filename used to store the +** Performance Data. This filename is used only when no filename is specified +** in the command to stop performance data collecting. +** +** \par Limits +** The length of each string, including the NULL terminator cannot exceed the +** #OS_MAX_PATH_LEN value. +*/ +#define CFE_ES_DEFAULT_PERF_DUMP_FILENAME "/ram/cfe_es_perf.dat" + + +/** +** \cfeescfg Default Critical Data Store Registry Filename +** +** \par Description: +** The value of this constant defines the filename used to store the +** Critical Data Store Registry. This filename is used only when no filename is +** specified in the command to stop performance data collecting. +** +** \par Limits +** The length of each string, including the NULL terminator cannot exceed the +** #OS_MAX_PATH_LEN value. +*/ +#define CFE_ES_DEFAULT_CDS_REG_DUMP_FILE "/ram/cfe_cds_reg.log" + +/** +** \cfeescfg Define Default System Log Mode +** +** \par Description: +** Defines the default mode for the operation of the ES System log. The log may +** operate in either Overwrite mode = 0, where once the log becomes full the +** oldest message in the log will be overwritten, or Discard mode = 1, where +** once the log becomes full the contents of the log are preserved and the new +** event is discarded. This constant may hold a value of either 0 or 1 +** depending on the desired default log mode. Overwrite Mode = 0, Discard +** Mode = 1. +** +** \par Limits +** There is a lower limit of 0 and an upper limit of 1 on this configuration +** paramater. +*/ +#define CFE_ES_DEFAULT_SYSLOG_MODE 1 + +/** +** \cfeescfg Define Max Number of Performance IDs +** +** \par Description: +** Defines the maximum number of perf ids allowed. +** +** +** \par Limits +** This number must always be divisible by 32. There is a lower limit of 32 and +** an upper limit of 512 on this configuration paramater. +*/ +#define CFE_ES_PERF_MAX_IDS 128 + +/** +** \cfeescfg Define Max Size of Performance Data Buffer +** +** \par Description: +** Defines the maximum size of the performance data buffer. Units are number of +** performance data entries. An entry is defined by a 32 bit data word followed +** by a 64 bit time stamp. +** +** \par Limits +** There is a lower limit of 1025 and an upper limit of 1048576 (1 Meg) on this +** configuration paramater. The units are number of entries. An entry is +** defined by a 32 bit data word followed by a 64 bit time stamp. +*/ +#define CFE_ES_PERF_DATA_BUFFER_SIZE 10000 + + +/** +** \cfeescfg Define Filter Mask Setting for Disabling All Performance Entries +** +** \par Description: +** Defines the filter mask for disabling all performance entries. The value is a +** bit mask. For each bit, 0 means the corresponding entry is disabled and +** 1 means it is enabled. +*/ +#define CFE_ES_PERF_FILTMASK_NONE 0 + +/** +** \cfeescfg Define Filter Mask Setting for Enabling All Performance Entries +** +** \par Description: +** Defines the filter mask for enabling all performance entries. The value is a +** bit mask. For each bit, 0 means the corresponding entry is disabled and +** 1 means it is enabled. +*/ +#define CFE_ES_PERF_FILTMASK_ALL ~CFE_ES_PERF_FILTMASK_NONE + +/** +** \cfeescfg Define Default Filter Mask Setting for Performance Data Buffer +** +** \par Description: +** Defines the default filter mask for the performance data buffer. The value is a +** bit mask. For each bit, 0 means the corresponding entry is disabled and 1 +** means it is enabled. +** +*/ +#define CFE_ES_PERF_FILTMASK_INIT CFE_ES_PERF_FILTMASK_ALL + + +/** +** \cfeescfg Define Default Filter Trigger Setting for Disabling All Performance Entries +** +** \par Description: +** Defines the default trigger mask for disabling all performance data entries. The value +** is a bit mask. For each bit, 0 means the trigger for the corresponding entry is +** disabled and 1 means it is enabled. +** +*/ +#define CFE_ES_PERF_TRIGMASK_NONE 0 + +/** +** \cfeescfg Define Filter Trigger Setting for Enabling All Performance Entries +** +** \par Description: +** Defines the trigger mask for enabling all performance data entries. The value is +** a bit mask. For each bit, 0 means the trigger for the corresponding entry is +** disabled and 1 means it is enabled. +** +*/ +#define CFE_ES_PERF_TRIGMASK_ALL ~CFE_ES_PERF_TRIGMASK_NONE + +/** +** \cfeescfg Define Default Filter Trigger Setting for Performance Data Buffer +** +** \par Description: +** Defines the default trigger mask for the performance data buffer. The value is a +** 32-bit mask. For each bit, 0 means the trigger for the corresponding entry is +** disabled and 1 means it is enabled. +** +*/ +#define CFE_ES_PERF_TRIGMASK_INIT CFE_ES_PERF_TRIGMASK_NONE + +/** +** \cfeescfg Define Performance Analyzer Child Task Priority +** +** \par Description: +** This parameter defines the priority of the child task spawed by the +** Executive Services to write performance data to a file. Lower numbers +** are higher priority, with 1 being the highest priority in the case of a +** child task. +** +** \par Limits +** Valid range for a child task is 1 to 255 however, the priority cannot +** be higher (lower number) than the ES parent application priority. +*/ +#define CFE_ES_PERF_CHILD_PRIORITY 200 + +/** +** \cfeescfg Define Performance Analyzer Child Task Stack Size +** +** \par Description: +** This parameter defines the stack size of the child task spawed by the +** Executive Services to write performance data to a file. +** +** \par Limits +** It is recommended this parameter be greater than or equal to 4KB. This parameter +** is limited by the maximum value allowed by the data type. In this case, the data +** type is an unsigned 32-bit integer, so the valid range is 0 to 0xFFFFFFFF. +*/ +#define CFE_ES_PERF_CHILD_STACK_SIZE 16384 + +/** +** \cfeescfg Define Performance Analyzer Child Task Delay +** +** \par Description: +** This parameter defines the delay time (in milliseconds) between performance +** data file writes performed by the Executive Services Performace Analyzer +** Child Task. +** +** \par Limits +** It is recommended this parameter be greater than or equal to 20ms. This parameter +** is limited by the maximum value allowed by the data type. In this case, the data +** type is an unsigned 32-bit integer, so the valid range is 0 to 0xFFFFFFFF. +*/ +#define CFE_ES_PERF_CHILD_MS_DELAY 20 + +/** +** \cfeescfg Define Performance Analyzer Child Task Number of Entries Between Delay +** +** \par Description: +** This parameter defines the number of performace analyzer entries the Performace +** Analyzer Child Task will write to the file between delays. +** +*/ +#define CFE_ES_PERF_ENTRIES_BTWN_DLYS 50 + +/** +** \cfeescfg Define Default Stack Size for an Application +** +** \par Description: +** This parameter defines a default stack size. This parameter is used by the +** cFE Core Applications. +** +** \par Limits +** There is a lower limit of 2048 and an upper limit of 16384 on this +** configuration paramater. +*/ +#define CFE_ES_DEFAULT_STACK_SIZE 16384 + + +/** +** \cfeescfg Define EVS Task Priority +** +** \par Description: +** Defines the cFE_EVS Task priority. +** +** \par Limits +** Not Applicable +*/ +#define CFE_EVS_START_TASK_PRIORITY 61 + +/** +** \cfeescfg Define EVS Task Stack Size +** +** \par Description: +** Defines the cFE_EVS Task Stack Size +** +** \par Limits +** There is a lower limit of 2048 and an upper limit of 16384 on this +** configuration paramater. +*/ +#define CFE_EVS_START_TASK_STACK_SIZE CFE_ES_DEFAULT_STACK_SIZE + +#define CFE_EVS_START_TASK_FLAGS OS_ENABLE_CORE_0 + +/** +** \cfeescfg Define SB Task Priority +** +** \par Description: +** Defines the cFE_SB Task priority. +** +** \par Limits +** Not Applicable +*/ +#define CFE_SB_START_TASK_PRIORITY 64 + +/** +** \cfeescfg Define SB Task Stack Size +** +** \par Description: +** Defines the cFE_SB Task Stack Size +** +** \par Limits +** There is a lower limit of 2048 and an upper limit of 16384 on this +** configuration paramater. +*/ +#define CFE_SB_START_TASK_STACK_SIZE CFE_ES_DEFAULT_STACK_SIZE + +#define CFE_SB_START_TASK_FLAGS OS_ENABLE_CORE_0 + +/** +** \cfeescfg Define ES Task Priority +** +** \par Description: +** Defines the cFE_ES Task priority. +** +** \par Limits +** Not Applicable +*/ +#define CFE_ES_START_TASK_PRIORITY 68 + +/** +** \cfeescfg Define ES Task Stack Size +** +** \par Description: +** Defines the cFE_ES Task Stack Size +** +** \par Limits +** There is a lower limit of 2048 and an upper limit of 16384 on this +** configuration paramater. +*/ +#define CFE_ES_START_TASK_STACK_SIZE 16384 + +#define CFE_ES_START_TASK_FLAGS OS_ENABLE_CORE_0 + +/** +** \cfetimecfg Define TIME Task Priorities +** +** \par Description: +** Defines the cFE_TIME Task priority. +** Defines the cFE_TIME Tone Task priority. +** Defines the cFE_TIME 1HZ Task priority. +** +** \par Limits +** There is a lower limit of zero and an upper limit of 255 on these +** configuration paramaters. Remember that the meaning of each task +** priority is inverted -- a "lower" number has a "higher" priority. +*/ +#define CFE_TIME_START_TASK_PRIORITY 60 +#define CFE_TIME_TONE_TASK_PRIORITY 25 +#define CFE_TIME_1HZ_TASK_PRIORITY 25 + +/** +** \cfetimecfg Define TIME Task Stack Sizes +** +** \par Description: +** Defines the cFE_TIME Main Task Stack Size +** Defines the cFE_TIME Tone Task Stack Size +** Defines the cFE_TIME 1HZ Task Stack Size +** +** \par Limits +** There is a lower limit of 2048 and an upper limit of 16384 on these +** configuration paramaters. +*/ +#define CFE_TIME_START_TASK_STACK_SIZE CFE_ES_DEFAULT_STACK_SIZE +#define CFE_TIME_TONE_TASK_STACK_SIZE 16384 +#define CFE_TIME_1HZ_TASK_STACK_SIZE 16384 + +#define CFE_TIME_START_TASK_FLAGS OS_ENABLE_CORE_0 +#define CFE_TIME_TONE_TASK_FLAGS OS_ENABLE_CORE_0 +#define CFE_TIME_1HZ_TASK_FLAGS OS_ENABLE_CORE_0 + +/** +** \cfeescfg Define TBL Task Priority +** +** \par Description: +** Defines the cFE_TBL Task priority. +** +** \par Limits +** Not Applicable +*/ +#define CFE_TBL_START_TASK_PRIORITY 70 + +/** +** \cfeescfg Define TBL Task Stack Size +** +** \par Description: +** Defines the cFE_TBL Task Stack Size +** +** \par Limits +** There is a lower limit of 2048 and an upper limit of 16384 on this +** configuration paramater. +*/ +#define CFE_TBL_START_TASK_STACK_SIZE CFE_ES_DEFAULT_STACK_SIZE + +#define CFE_TBL_START_TASK_FLAGS OS_ENABLE_CORE_0 + +/** +** \cfeescfg Define Maximum Number of Registered CDS Blocks +** +** \par Description: +** Maximum number of registered CDS Blocks +** +** \par Limits +** There is a lower limit of 8 and an upper limit of 32767 on this configuration +** paramater. +*/ +#define CFE_ES_CDS_MAX_NUM_ENTRIES 512 + + +/** +** \cfeescfg Define Number of Processor Resets Before a Power On Reset +** +** \par Description: +** Number of Processor Resets before a Power On Reset is called. If set to 2, +** then 2 processor resets will occur, and the 3rd processor reset will be a +** power on reset instead. +** +** \par Limits +** There is a lower limit of 0 and an upper limit of 1024 on this configuration +** paramater. +*/ +#define CFE_ES_MAX_PROCESSOR_RESETS 2 + + +/** +** \cfeescfg Define Default ES Memory Pool Block Sizes +** +** \par Description: +** Default Intermediate ES Memory Pool Block Sizes. If an application +** is using the CFE_ES Memory Pool APIs (#CFE_ES_PoolCreate, #CFE_ES_PoolCreateNoSem, +** #CFE_ES_GetPoolBuf and #CFE_ES_PutPoolBuf) but finds these sizes +** inappropriate for their use, they may wish to use the #CFE_ES_PoolCreateEx +** API to specify their own intermediate block sizes +** +** \par Limits +** These sizes MUST be increasing and MUST be an integral multiple of 4. Also, +** CFE_ES_MAX_BLOCK_SIZE must be larger than CFE_SB_MAX_SB_MSG_SIZE and both +** CFE_TBL_MAX_SNGL_TABLE_SIZE and CFE_TBL_MAX_DBL_TABLE_SIZE. Note that if Table +** Services have been removed from the CFE, the table size limits are still +** enforced although the table size definitions may be reduced. Refer to the CFS +** Deployment Guide for information about removing CFE Table Services from the CFE. +*/ +#define CFE_ES_MEM_BLOCK_SIZE_01 8 +#define CFE_ES_MEM_BLOCK_SIZE_02 16 +#define CFE_ES_MEM_BLOCK_SIZE_03 32 +#define CFE_ES_MEM_BLOCK_SIZE_04 48 +#define CFE_ES_MEM_BLOCK_SIZE_05 64 +#define CFE_ES_MEM_BLOCK_SIZE_06 96 +#define CFE_ES_MEM_BLOCK_SIZE_07 128 +#define CFE_ES_MEM_BLOCK_SIZE_08 160 +#define CFE_ES_MEM_BLOCK_SIZE_09 256 +#define CFE_ES_MEM_BLOCK_SIZE_10 512 +#define CFE_ES_MEM_BLOCK_SIZE_11 1024 +#define CFE_ES_MEM_BLOCK_SIZE_12 2048 +#define CFE_ES_MEM_BLOCK_SIZE_13 4096 +#define CFE_ES_MEM_BLOCK_SIZE_14 8192 +#define CFE_ES_MEM_BLOCK_SIZE_15 16384 +#define CFE_ES_MEM_BLOCK_SIZE_16 80000 +#define CFE_ES_MAX_BLOCK_SIZE 200000 + + +/** +** \cfeescfg Define ES Critical Data Store Memory Pool Block Sizes +** +** \par Description: +** Intermediate ES Critical Data Store Memory Pool Block Sizes +** +** \par Limits +** These sizes MUST be increasing and MUST be an integral multiple of 4. +*/ +#define CFE_ES_CDS_MEM_BLOCK_SIZE_01 8 +#define CFE_ES_CDS_MEM_BLOCK_SIZE_02 16 +#define CFE_ES_CDS_MEM_BLOCK_SIZE_03 32 +#define CFE_ES_CDS_MEM_BLOCK_SIZE_04 48 +#define CFE_ES_CDS_MEM_BLOCK_SIZE_05 64 +#define CFE_ES_CDS_MEM_BLOCK_SIZE_06 96 +#define CFE_ES_CDS_MEM_BLOCK_SIZE_07 128 +#define CFE_ES_CDS_MEM_BLOCK_SIZE_08 160 +#define CFE_ES_CDS_MEM_BLOCK_SIZE_09 256 +#define CFE_ES_CDS_MEM_BLOCK_SIZE_10 512 +#define CFE_ES_CDS_MEM_BLOCK_SIZE_11 1024 +#define CFE_ES_CDS_MEM_BLOCK_SIZE_12 2048 +#define CFE_ES_CDS_MEM_BLOCK_SIZE_13 4096 +#define CFE_ES_CDS_MEM_BLOCK_SIZE_14 8192 +#define CFE_ES_CDS_MEM_BLOCK_SIZE_15 16384 +#define CFE_ES_CDS_MEM_BLOCK_SIZE_16 32768 +#define CFE_ES_CDS_MAX_BLOCK_SIZE 80000 + + + +/** +** \cfeevscfg Define Maximum Number of Event Filters per Application +** +** \par Description: +** Maximum number of events that may be filtered per application. +** +** \par Limits +** There is an upper limit of 32767 on this configuration paramater. +*/ +#define CFE_EVS_MAX_EVENT_FILTERS (256) + + +/** +** \cfeevscfg Enable or Disable EVS Local Event Log +** +** \par Description: +** The CFE_EVS_LOG_ON configuration parameter must be defined to enable EVS +** event logging. In order to disable the local event log this definition needs +** to be commented out. +** +** \par Limits +** Not Applicable +*/ +#define CFE_EVS_LOG_ON + + +/** +** \cfeevscfg Default Event Log Filename +** +** \par Description: +** The value of this constant defines the filename used to store the Event +** Services local event log. This filename is used only when no filename is +** specified in the command to dump the event log. +** +** \par Limits +** The length of each string, including the NULL terminator cannot exceed the +** #OS_MAX_PATH_LEN value. +*/ +#define CFE_EVS_DEFAULT_LOG_FILE "/ram/cfe_evs.log" + + +/** +** \cfeevscfg Maximum Number of Events in EVS Local Event Log +** +** \par Description: +** Dictates the EVS local event log capacity. Units are the number of events. +** +** \par Limits +** There is an upper limit of 65535 on this configuration paramater. +*/ +#define CFE_EVS_LOG_MAX 20 + + +/** +** \cfeevscfg Default EVS Application Data Filename +** +** \par Description: +** The value of this constant defines the filename used to store the EVS +** Application Data(event counts/filtering information). This filename is +** used only when no filename is specified in the command to dump the event +** log. +** +** \par Limits +** The length of each string, including the NULL terminator cannot exceed the +** #OS_MAX_PATH_LEN value. +*/ +#define CFE_EVS_DEFAULT_APP_DATA_FILE "/ram/cfe_evs_app.dat" + + +/** +** \cfeevscfg Default EVS Output Port State +** +** \par Description: +** Defines the default port state (enabled or deisabled) for the four output +** ports defined within the Event Service. Port 1 is usually the uart output +** terminal. To enable a port, set the proper bit to a 1. Bit 0 is port 1, +** bit 1 is port2 etc. +** +** \par Limits +** The valid settings are 0x0 to 0xF. +*/ +#define CFE_EVS_PORT_DEFAULT 0x0001 + + +/** +** \cfeevscfg Default EVS Event Type Filter Mask +** +** \par Description: +** Defines a state of on or off for all four event types. The term event +** 'type' refers to the criticality level and may be Debug, Informational, +** Error or Critical. Each event type has a bit position. (bit 0 = Debug, +** bit 1 = Info, bit 2 = Error, bit 3 = Critical). This is a global setting, +** meaning it applies to all applications. To filter an event type, set its +** bit to zero. For example, +** 0xE means Debug = OFF, Info = ON, Error = ON, Critical = ON +** +** \par Limits +** The valid settings are 0x0 to 0xF. +*/ +#define CFE_EVS_DEFAULT_TYPE_FLAG 0xE + + + +/** +** \cfeevscfg Default EVS Local Event Log Mode +** +** \par Description: +** Defines a state of overwrite(0) or discard(1) for the operation of the +** EVS local event log. The log may operate in either Overwrite mode = 0, +** where once the log becomes full the oldest event in the log will be +** overwritten, or Discard mode = 1, where once the log becomes full the +** contents of the log are preserved and the new event is discarded. +** Overwrite Mode = 0, Discard Mode = 1. +** +** \par Limits +** The valid settings are 0 or 1 +*/ +#define CFE_EVS_DEFAULT_LOG_MODE 1 + + +/** +** \cfeevscfg Default EVS Message Format Mode +** +** \par Description: +** Defines the default message format (long or short) for event messages being +** sent to the ground. Choose between #CFE_EVS_LONG_FORMAT or +** #CFE_EVS_SHORT_FORMAT. +** +** \par Limits +** The valid settings are #CFE_EVS_LONG_FORMAT or #CFE_EVS_SHORT_FORMAT +*/ +#define CFE_EVS_DEFAULT_MSG_FORMAT_MODE CFE_EVS_LONG_FORMAT + + + +/* Platform Configuration Parameters for Table Service (TBL) */ + +/** +** \cfetblcfg Size of Table Services Table Memory Pool +** +** \par Description: +** Defines the TOTAL size of the memory pool that cFE Table Services allocates +** from the system. The size must be large enough to provide memory for each +** registered table, the inactive buffers for double buffered tables and for +** the shared inactive buffers for single buffered tables. +** +** \par Limits +** The cFE does not place a limit on the size of this parameter. +*/ +#define CFE_TBL_BUF_MEMORY_BYTES 1048576 + +/** +** \cfetblcfg Maximum Size Allowed for a Double Buffered Table +** +** \par Description: +** Defines the maximum allowed size (in bytes) of a double buffered table. +** +** \par Limits +** The cFE does not place a limit on the size of this parameter but it must be +** less than half of #CFE_TBL_BUF_MEMORY_BYTES. +*/ +#define CFE_TBL_MAX_DBL_TABLE_SIZE 65535 + +/** +** \cfetblcfg Maximum Size Allowed for a Single Buffered Table +** +** \par Description: +** Defines the maximum allowed size (in bytes) of a single buffered table. +** \b NOTE: This size determines the size of all shared table buffers. +** Therefore, this size will be multiplied by #CFE_TBL_MAX_SIMULTANEOUS_LOADS +** below when allocating memory for shared tables. +** +** \par Limits +** The cFE does not place a limit on the size of this parameter but it must be +** small enough to allow for #CFE_TBL_MAX_SIMULTANEOUS_LOADS number of tables +** to fit into #CFE_TBL_BUF_MEMORY_BYTES. +*/ +#define CFE_TBL_MAX_SNGL_TABLE_SIZE 65535 + +/** +** \cfetblcfg Maximum Number of Tables Allowed to be Registered +** +** \par Description: +** Defines the maximum number of tables supported by this processor's Table Services. +** +** \par Limits +** This number must be less than 32767. It should be recognized that this parameter +** determines the size of the Table Registry. An excessively high number will waste +** memory. +*/ +#define CFE_TBL_MAX_NUM_TABLES 128 + +/** +** \cfetblcfg Maximum Number of Critical Tables that can be Registered +** +** \par Description: +** Defines the maximum number of critical tables supported by this processor's Table Services. +** +** \par Limits +** This number must be less than 32767. It should be recognized that this parameter +** determines the size of the Critical Table Registry which is maintained in the Critical +** Data Store. An excessively high number will waste Critical Data Store memory. Therefore, +** this number must not exceed the value defined in CFE_ES_CDS_MAX_CRITICAL_TABLES. +*/ +#define CFE_TBL_MAX_CRITICAL_TABLES 32 + +/** +** \cfetblcfg Maximum Number of Table Handles +** +** \par Description: +** Defines the maximum number of Table Handles. +** +** \par Limits +** This number must be less than 32767. This number must be at least as big as +** the number of tables (#CFE_TBL_MAX_NUM_TABLES) and should be set higher if tables +** are shared between applications. +*/ +#define CFE_TBL_MAX_NUM_HANDLES 256 + +/** +** \cfetblcfg Maximum Number of Simultaneous Loads to Support +** +** \par Description: +** Defines the maximum number of single buffered tables that can be +** loaded simultaneously. This number is used to determine the number +** of shared buffers to allocate. +** +** \par Limits +** This number must be less than 32767. An excessively high number will +** degrade system performance and waste memory. A number less than 5 is +** suggested but not required. +*/ +#define CFE_TBL_MAX_SIMULTANEOUS_LOADS 4 + +/** +** \cfetblcfg Maximum Number of Simultaneous Table Validations +** +** \par Description: +** Defines the maximum number of pending validations that +** the Table Services can handle at any one time. When a +** table has a validation function, a validation request is +** made of the application to perform that validation. This +** number determines how many of those requests can be +** outstanding at any one time. +** +** \par Limits +** This number must be less than 32767. An excessively high number will +** degrade system performance and waste memory. A number less than 20 is +** suggested but not required. +*/ +#define CFE_TBL_MAX_NUM_VALIDATIONS 10 + +/** +** \cfetblcfg Default Filename for a Table Registry Dump +** +** \par Description: +** Defines the file name used to store the table registry when +** no filename is specified in the dump registry command. +** +** \par Limits +** The length of each string, including the NULL terminator cannot exceed the +** #OS_MAX_PATH_LEN value. +*/ +#define CFE_TBL_DEFAULT_REG_DUMP_FILE "/ram/cfe_tbl_reg.log" + +/** +** \cfetblcfg Number of Spacecraft ID's specified for validation +** +** \par Description: +** Defines the number of specified spacecraft ID values that +** are verified during table loads. If the number is zero +** then no validation of the spacecraft ID field in the table +** file header is performed when tables are loaded. Non-zero +** values indicate how many values from the list of spacecraft +** ID's defined below are compared to the spacecraft ID field +** in the table file header. The ELF2CFETBL tool may be used +** to create table files with specified spacecraft ID values. +** +** \par Limits +** This number must be greater than or equal to zero and +** less than or equal to 2. +*/ +#define CFE_TBL_VALID_SCID_COUNT 0 + +/* macro to construct 32 bit value from 4 chars */ +#define CFE_TBL_U32FROM4CHARS( _C1, _C2, _C3, _C4 ) \ + ( (uint32)(_C1) << 24 | \ + (uint32)(_C2) << 16 | \ + (uint32)(_C3) << 8 | \ + (uint32)(_C4) ) + +/** +** \cfetblcfg Spacecraft ID values used for table load validation +** +** \par Description: +** Defines the spacecraft ID values used for validating the +** spacecraft ID field in the table file header. To be valid, +** the spacecraft ID specified in the table file header must +** match one of the values defined here. +** +** \par Limits +** This value can be any 32 bit unsigned integer. +*/ +#define CFE_TBL_VALID_SCID_1 (CFE_SPACECRAFT_ID) +#define CFE_TBL_VALID_SCID_2 (CFE_TBL_U32FROM4CHARS('a', 'b', 'c', 'd')) + +/** +** \cfetblcfg Number of Processor ID's specified for validation +** +** \par Description: +** Defines the number of specified processor ID values that +** are verified during table loads. If the number is zero +** then no validation of the processor ID field in the table +** file header is performed when tables are loaded. Non-zero +** values indicate how many values from the list of processor +** ID's defined below are compared to the processor ID field +** in the table file header. The ELF2CFETBL tool may be used +** to create table files with specified processor ID values. +** +** \par Limits +** This number must be greater than or equal to zero and +** less than or equal to 4. +*/ +#define CFE_TBL_VALID_PRID_COUNT 0 + +/** +** \cfetblcfg Processor ID values used for table load validation +** +** \par Description: +** Defines the processor ID values used for validating the +** processor ID field in the table file header. To be valid, +** the spacecraft ID specified in the table file header must +** match one of the values defined here. +** +** \par Limits +** This value can be any 32 bit unsigned integer. +*/ +#define CFE_TBL_VALID_PRID_1 (CFE_CPU_ID) +#define CFE_TBL_VALID_PRID_2 (CFE_TBL_U32FROM4CHARS('a', 'b', 'c', 'd')) +#define CFE_TBL_VALID_PRID_3 0 +#define CFE_TBL_VALID_PRID_4 0 + +/** \cfeescfg Mission specific version number for cFE +** +** \par Description: +** The cFE version number consists of four parts: +** major version number, minor version number, revision +** number and mission specific revision number. The mission +** specific revision number is defined here and the other +** parts are defined in "cfe_version.h". +** +** \par Limits: +** Must be defined as a numeric value that is greater than +** or equal to zero. +*/ +#define CFE_MISSION_REV 0 + +/** \cfeescfg Poll timer for startup sync delay +** +** \par Description: +** During startup, some tasks may need to synchronize their own initialization +** with the initialization of other applications in the system. +** +** CFE ES implements an API to accomplish this, that performs a task delay (sleep) +** while polling the overall system state until other tasks are ready. +** +** This value controls the amount of time that the CFE_ES_ApplicationSyncDelay +** will sleep between each check of the system state. This should be large enough +** to allow other tasks to run, but not so large as to noticeably delay the startup +** completion. +** +** Units are in milliseconds +** +** \par Limits: +** Must be defined as an integer value that is greater than +** or equal to zero. +*/ +#define CFE_ES_STARTUP_SYNC_POLL_MSEC 50 + +/** \cfeescfg CFE core application startup timeout +** +** \par Description: +** The upper limit for the amount of time that the cFE core applications +** (ES, SB, EVS, TIME, TBL) are each alloted to reach their respective +** "ready" states. +** +** The CFE "main" thread starts individual tasks for each of the core applications +** (except FS). Each of these must perform some initialization work before the +** next core application can be started, so the main thread waits to ensure that the +** application has reached the "ready" state before starting the next application. +** +** If any core application fails to start, then it indicates a major problem with +** the system and startup is aborted. +** +** Units are in milliseconds +** +** \par Limits: +** Must be defined as an integer value that is greater than +** or equal to zero. +** +*/ +#define CFE_CORE_MAX_STARTUP_MSEC 30000 + +/** \cfeescfg Startup script timeout +** +** \par Description: +** The upper limit for the total amount of time that all apps listed in the CFE ES startup +** script may take to all become ready. +** +** Unlike the "core" app timeout, this is a soft limit; if the alloted time is exceeded, +** it probably indicates an issue with one of the apps, but does not cause CFE ES to take +** any additional action other than logging the event to the syslog. +** +** Units are in milliseconds +** +** \par Limits: +** Must be defined as an integer value that is greater than +** or equal to zero. + */ +#define CFE_ES_STARTUP_SCRIPT_TIMEOUT_MSEC 30000 + + +#endif diff --git a/config/obc/ppd/target/apps/sch/tables/sch_def_msgtbl.c b/config/obc/ppd/target/apps/sch/tables/sch_def_msgtbl.c index 8c5ce16ca..a46ba95d1 100644 --- a/config/obc/ppd/target/apps/sch/tables/sch_def_msgtbl.c +++ b/config/obc/ppd/target/apps/sch/tables/sch_def_msgtbl.c @@ -210,11 +210,11 @@ SCH_MessageEntry_t SCH_DefaultMessageTable[SCH_MAX_MESSAGES] = /* Command ID #84 */ { { SCH_FIX_HEADER(SCH_UNUSED_MID, 0, 0), 0 } }, /* Command ID #85 */ - { { SCH_FIX_HEADER(NEOM8N_SEND_HK_MID, 0xC000, 0x0001), 0x0000 } }, + { { SCH_FIX_HEADER(SCH_UNUSED_MID, 0, 0), 0 } }, /* Command ID #86 */ - { { SCH_FIX_HEADER(NEOM8N_MEASURE_MID, 0xC000, 0x0001), 0x0000 } }, + { { SCH_FIX_HEADER(SCH_UNUSED_MID, 0, 0), 0 } }, /* Command ID #87 */ - { { SCH_FIX_HEADER(NEOM8N_PROC_CMDS_MID, 0xC000, 0x0001), 0x0000 } }, + { { SCH_FIX_HEADER(SCH_UNUSED_MID, 0, 0), 0 } }, /* Command ID #88 */ { { SCH_FIX_HEADER(HMC5883_WAKEUP_MID, 0xC000, 0x0001), 0x0000 } }, /* Command ID #89 */ diff --git a/config/obc/ppd/target/apps/sch/tables/sch_def_schtbl.c b/config/obc/ppd/target/apps/sch/tables/sch_def_schtbl.c index 2a9584d96..ee85a6aa4 100644 --- a/config/obc/ppd/target/apps/sch/tables/sch_def_schtbl.c +++ b/config/obc/ppd/target/apps/sch/tables/sch_def_schtbl.c @@ -97,9 +97,7 @@ extern "C" { #define HMC5883_SEND_HK_MIDX 82 #define AK8963_SEND_HK_MIDX 83 #define AK8963_WAKEUP_MIDX 84 -#define NEOM8N_SEND_HK_MIDX 85 -#define NEOM8N_MEASURE_MIDX 86 -#define NEOM8N_PROC_CMDS_MIDX 87 + #define HMC5883_WAKEUP_MIDX 88 #define SENS_SEND_HK_MIDX 90 diff --git a/config/ocpoc/shared/apps/sch/tables/sch_def_msgtbl.c b/config/ocpoc/shared/apps/sch/tables/sch_def_msgtbl.c index 8c5ce16ca..a46ba95d1 100644 --- a/config/ocpoc/shared/apps/sch/tables/sch_def_msgtbl.c +++ b/config/ocpoc/shared/apps/sch/tables/sch_def_msgtbl.c @@ -210,11 +210,11 @@ SCH_MessageEntry_t SCH_DefaultMessageTable[SCH_MAX_MESSAGES] = /* Command ID #84 */ { { SCH_FIX_HEADER(SCH_UNUSED_MID, 0, 0), 0 } }, /* Command ID #85 */ - { { SCH_FIX_HEADER(NEOM8N_SEND_HK_MID, 0xC000, 0x0001), 0x0000 } }, + { { SCH_FIX_HEADER(SCH_UNUSED_MID, 0, 0), 0 } }, /* Command ID #86 */ - { { SCH_FIX_HEADER(NEOM8N_MEASURE_MID, 0xC000, 0x0001), 0x0000 } }, + { { SCH_FIX_HEADER(SCH_UNUSED_MID, 0, 0), 0 } }, /* Command ID #87 */ - { { SCH_FIX_HEADER(NEOM8N_PROC_CMDS_MID, 0xC000, 0x0001), 0x0000 } }, + { { SCH_FIX_HEADER(SCH_UNUSED_MID, 0, 0), 0 } }, /* Command ID #88 */ { { SCH_FIX_HEADER(HMC5883_WAKEUP_MID, 0xC000, 0x0001), 0x0000 } }, /* Command ID #89 */ diff --git a/config/ocpoc/shared/apps/sch/tables/sch_def_schtbl.c b/config/ocpoc/shared/apps/sch/tables/sch_def_schtbl.c index 28b908f26..974410142 100644 --- a/config/ocpoc/shared/apps/sch/tables/sch_def_schtbl.c +++ b/config/ocpoc/shared/apps/sch/tables/sch_def_schtbl.c @@ -97,9 +97,7 @@ extern "C" { #define HMC5883_SEND_HK_MIDX 82 #define AK8963_SEND_HK_MIDX 83 #define AK8963_WAKEUP_MIDX 84 -#define NEOM8N_SEND_HK_MIDX 85 -#define NEOM8N_MEASURE_MIDX 86 -#define NEOM8N_PROC_CMDS_MIDX 87 + #define HMC5883_WAKEUP_MIDX 88 #define SENS_SEND_HK_MIDX 90 diff --git a/config/shared/apps/sch/tables/sch_def_msgtbl.c b/config/shared/apps/sch/tables/sch_def_msgtbl.c index e67e352a0..efdf0fdcc 100644 --- a/config/shared/apps/sch/tables/sch_def_msgtbl.c +++ b/config/shared/apps/sch/tables/sch_def_msgtbl.c @@ -210,11 +210,11 @@ SCH_MessageEntry_t SCH_DefaultMessageTable[SCH_MAX_MESSAGES] = /* Command ID #84 */ { { SCH_FIX_HEADER(AK8963_WAKEUP_MID, 0xC000, 0x0001), 0x0000 } }, /* Command ID #85 */ - { { SCH_FIX_HEADER(NEOM8N_SEND_HK_MID, 0xC000, 0x0001), 0x0000 } }, + { { SCH_FIX_HEADER(SCH_UNUSED_MID, 0, 0), 0 } }, /* Command ID #86 */ - { { SCH_FIX_HEADER(NEOM8N_MEASURE_MID, 0xC000, 0x0001), 0x0000 } }, + { { SCH_FIX_HEADER(SCH_UNUSED_MID, 0, 0), 0 } }, /* Command ID #87 */ - { { SCH_FIX_HEADER(NEOM8N_PROC_CMDS_MID, 0xC000, 0x0001), 0x0000 } }, + { { SCH_FIX_HEADER(SCH_UNUSED_MID, 0, 0), 0 } }, /* Command ID #88 */ { { SCH_FIX_HEADER(SCH_UNUSED_MID, 0, 0), 0 } }, /* Command ID #89 */ diff --git a/config/shared/apps/sch/tables/sch_def_schtbl.c b/config/shared/apps/sch/tables/sch_def_schtbl.c index 5562c87f9..30b70f2aa 100644 --- a/config/shared/apps/sch/tables/sch_def_schtbl.c +++ b/config/shared/apps/sch/tables/sch_def_schtbl.c @@ -92,9 +92,6 @@ extern "C" { #define AK8963_SEND_HK_MIDX 83 #define AK8963_WAKEUP_MIDX 84 -#define NEOM8N_SEND_HK_MIDX 85 -#define NEOM8N_MEASURE_MIDX 86 -#define NEOM8N_PROC_CMDS_MIDX 87 #define SENS_SEND_HK_MIDX 90 #define SENS_WAKEUP_MIDX 91 diff --git a/config/shared/inc/cfe_mission_cfg.h b/config/shared/inc/cfe_mission_cfg.h index fa8d2d631..27d54e2cf 100644 --- a/config/shared/inc/cfe_mission_cfg.h +++ b/config/shared/inc/cfe_mission_cfg.h @@ -2,6 +2,10 @@ #define CFE_MISSION_CFG +#define CFE_CMD_MID_BASE (0x1800) +#define CFE_TLM_MID_BASE (0x0800) + + /** ** \cfemissioncfg Spacecraft ID ** diff --git a/config/shared/inc/cfe_msgids.h b/config/shared/inc/cfe_msgids.h index 5a7b5231d..dc59df1f8 100644 --- a/config/shared/inc/cfe_msgids.h +++ b/config/shared/inc/cfe_msgids.h @@ -1,58 +1,10 @@ #ifndef CFE_MSGIDS_H #define CFE_MSGIDS_H -/* -** Includes -*/ -#include "cfe_mission_cfg.h" -/* -** cFE Command Message Id's -*/ -#define CFE_EVS_CMD_MID CFE_CMD_MID_BASE_CPU1 + CFE_EVS_CMD_MSG /* 0x1801 */ - /* Message ID 0x1802 is available */ -#define CFE_SB_CMD_MID CFE_CMD_MID_BASE_CPU1 + CFE_SB_CMD_MSG /* 0x1803 */ -#define CFE_TBL_CMD_MID CFE_CMD_MID_BASE_CPU1 + CFE_TBL_CMD_MSG /* 0x1804 */ -#define CFE_TIME_CMD_MID CFE_CMD_MID_BASE_CPU1 + CFE_TIME_CMD_MSG /* 0x1805 */ -#define CFE_ES_CMD_MID CFE_CMD_MID_BASE_CPU1 + CFE_ES_CMD_MSG /* 0x1806 */ +#include "msg_ids.h" -#define CFE_ES_SEND_HK_MID CFE_CMD_MID_BASE_CPU1 + CFE_ES_SEND_HK_MSG /* 0x1808 */ -#define CFE_EVS_SEND_HK_MID CFE_CMD_MID_BASE_CPU1 + CFE_EVS_SEND_HK_MSG /* 0x1809 */ - /* Message ID 0x180A is available */ -#define CFE_SB_SEND_HK_MID CFE_CMD_MID_BASE_CPU1 + CFE_SB_SEND_HK_MSG /* 0x180B */ -#define CFE_TBL_SEND_HK_MID CFE_CMD_MID_BASE_CPU1 + CFE_TBL_SEND_HK_MSG /* 0x180C */ -#define CFE_TIME_SEND_HK_MID CFE_CMD_MID_BASE_CPU1 + CFE_TIME_SEND_HK_MSG /* 0x180D */ -#define CFE_TIME_TONE_CMD_MID CFE_CMD_MID_BASE_CPU1 + CFE_TIME_TONE_CMD_MSG /* 0x1810 */ -#define CFE_TIME_1HZ_CMD_MID CFE_CMD_MID_BASE_CPU1 + CFE_TIME_1HZ_CMD_MSG /* 0x1811 */ - - -/* -** cFE Global Command Message Id's -*/ -#define CFE_TIME_DATA_CMD_MID CFE_CMD_MID_BASE_GLOB + CFE_TIME_DATA_CMD_MSG /* 0x1860 */ -#define CFE_TIME_FAKE_CMD_MID CFE_CMD_MID_BASE_GLOB + CFE_TIME_FAKE_CMD_MSG /* 0x1861 */ -#define CFE_TIME_SEND_CMD_MID CFE_CMD_MID_BASE_GLOB + CFE_TIME_SEND_CMD_MSG /* 0x1862 */ - - -/* -** CFE Telemetry Message Id's -*/ -#define CFE_ES_HK_TLM_MID CFE_TLM_MID_BASE_CPU1 + CFE_ES_HK_TLM_MSG /* 0x0800 */ -#define CFE_EVS_HK_TLM_MID CFE_TLM_MID_BASE_CPU1 + CFE_EVS_HK_TLM_MSG /* 0x0801 */ - /* Message ID 0x0802 is available */ -#define CFE_SB_HK_TLM_MID CFE_TLM_MID_BASE_CPU1 + CFE_SB_HK_TLM_MSG /* 0x0803 */ -#define CFE_TBL_HK_TLM_MID CFE_TLM_MID_BASE_CPU1 + CFE_TBL_HK_TLM_MSG /* 0x0804 */ -#define CFE_TIME_HK_TLM_MID CFE_TLM_MID_BASE_CPU1 + CFE_TIME_HK_TLM_MSG /* 0x0805 */ -#define CFE_TIME_DIAG_TLM_MID CFE_TLM_MID_BASE_CPU1 + CFE_TIME_DIAG_TLM_MSG /* 0x0806 */ -#define CFE_EVS_EVENT_MSG_MID CFE_TLM_MID_BASE_CPU1 + CFE_EVS_EVENT_MSG_MSG /* 0x0808 */ -#define CFE_SB_STATS_TLM_MID CFE_TLM_MID_BASE_CPU1 + CFE_SB_STATS_TLM_MSG /* 0x080A */ -#define CFE_ES_APP_TLM_MID CFE_TLM_MID_BASE_CPU1 + CFE_ES_APP_TLM_MSG /* 0x080B */ -#define CFE_TBL_REG_TLM_MID CFE_TLM_MID_BASE_CPU1 + CFE_TBL_REG_TLM_MSG /* 0x080C */ -#define CFE_SB_ALLSUBS_TLM_MID CFE_TLM_MID_BASE_CPU1 + CFE_SB_ALLSUBS_TLM_MSG /* 0x080D */ -#define CFE_SB_ONESUB_TLM_MID CFE_TLM_MID_BASE_CPU1 + CFE_SB_ONESUB_TLM_MSG /* 0x080E */ -#define CFE_ES_SHELL_TLM_MID CFE_TLM_MID_BASE_CPU1 + CFE_ES_SHELL_TLM_MSG /* 0x080F */ -#define CFE_ES_MEMSTATS_TLM_MID CFE_TLM_MID_BASE_CPU1 + CFE_ES_MEMSTATS_TLM_MSG /* 0x0810 */ #endif diff --git a/config/shared/inc/cfe_platform_cfg.h b/config/shared/inc/cfe_platform_cfg.h index aa22ccd6b..10a2a315b 100644 --- a/config/shared/inc/cfe_platform_cfg.h +++ b/config/shared/inc/cfe_platform_cfg.h @@ -6,6 +6,8 @@ */ #include "cfe_mission_cfg.h" +#define CFE_MSG_CPU_BASE (0x0000) + /* ** CPU Id for target Processor */ diff --git a/config/shared/inc/msg_ids.h b/config/shared/inc/msg_ids.h index d7fdf33b3..e35ecb2ae 100644 --- a/config/shared/inc/msg_ids.h +++ b/config/shared/inc/msg_ids.h @@ -1,682 +1,524 @@ #ifndef MSG_IDS_H #define MSG_IDS_H -#include "cfe_msgids.h" - -/* Commands */ - -/* TO */ -/* Range: 0x900 - 0x90f */ -#define TO_CMD_MID (0x1900) -#define TO_SEND_HK_MID (0x1901) -#define TO_HK_TLM_MID (0x0902) -#define TO_SEND_TLM_MID (0x1903) -#define TO_DATA_TYPE_MID (0x0904) -#define TO_DIAG_TLM_MID (0x0911) -#define TO_DIAG_MSG_FLOW_MID (0x0912) - -/* CI */ -/* Range: 0x900 - 0x90f */ -#define CI_CMD_MID (0x1905) -#define CI_SEND_HK_MID (0x1906) -#define CI_HK_TLM_MID (0x0907) -#define CI_WAKEUP_MID (0x1908) -#define CI_OUT_DATA_MID (0x1909) -#define CI_PROCESS_TIMEOUTS_MID (0x190a) - -/* CF */ -/* Range: 0x910 - 0x92f */ -#define CF_CMD_MID (0x1910) -#define CF_INCOMING_PDU_MID (0x1FFD) -#define CF_SEND_HK_MID (0x1912) -#define CF_SPARE1_CMD_MID (0x1913) -#define CF_SPARE2_CMD_MID (0x1914) -#define CF_SPARE3_CMD_MID (0x1915) -#define CF_SPARE4_CMD_MID (0x1916) -#define CF_SPARE5_CMD_MID (0x1917) -#define CF_WAKE_UP_REQ_CMD_MID (0x1918) -#define CF_CONFIG_TLM_MID (0x0919) -#define CF_HK_TLM_MID (0x091a) -#define CF_SPARE0_TLM_MID (0x091b) -#define CF_SPARE1_TLM_MID (0x091c) -#define CF_SPARE2_TLM_MID (0x091d) -#define CF_SPARE3_TLM_MID (0x091e) -#define CF_SPARE4_TLM_MID (0x091f) -#define CF_TRANS_TLM_MID (0x0920) + +#include "cfe_mission_cfg.h" +#include "cfe_platform_cfg.h" + + +#define CMD_MSG(X) (CFE_MSG_CPU_BASE + CFE_CMD_MID_BASE + X) +#define TLM_MSG(X) (CFE_MSG_CPU_BASE + CFE_TLM_MID_BASE + X) + + + +#define CFE_EVS_CMD_MID CMD_MSG( 0 ) +#define CFE_SB_CMD_MID CMD_MSG( 1 ) +#define CFE_TBL_CMD_MID CMD_MSG( 2 ) +#define CFE_TIME_CMD_MID CMD_MSG( 3 ) +#define CFE_ES_CMD_MID CMD_MSG( 4 ) + +#define CFE_ES_SEND_HK_MID CMD_MSG( 5 ) +#define CFE_EVS_SEND_HK_MID CMD_MSG( 6 ) +#define CFE_SB_SEND_HK_MID CMD_MSG( 7 ) +#define CFE_TBL_SEND_HK_MID CMD_MSG( 8 ) +#define CFE_TIME_SEND_HK_MID CMD_MSG( 9 ) + +#define CFE_TIME_TONE_CMD_MID CMD_MSG( 10 ) +#define CFE_TIME_1HZ_CMD_MID CMD_MSG( 11 ) + + +/* +** cFE Global Command Message Id's +*/ +#define CFE_TIME_DATA_CMD_MID TLM_MSG( 12 ) +#define CFE_TIME_FAKE_CMD_MID TLM_MSG( 13 ) +#define CFE_TIME_SEND_CMD_MID TLM_MSG( 14 ) + + /* -** NOTE: the definition below is NOT used by the code. The code uses the MsgId -** defined in the CF table. For the purpose of keeping all CF related message -** IDs defined in this file, the CF table should reference this macro -** definition. +** CFE Telemetry Message Id's */ -#define CF_SPACE_TO_GND_PDU_MID (0x0FFE) - - -/* CS */ -/* Range: 0x930 - 0x93f */ -#define CS_CMD_MID (0x1930) -#define CS_BACKGROUND_CYCLE_MID (0x1931) -#define CS_SEND_HK_MID (0x1932) -#define CS_HK_TLM_MID (0x0933) - - -/* DS */ -/* Range: 0x940 - 0x94f */ -#define DS_CMD_MID (0x1940) -#define DS_SEND_HK_MID (0x1941) -#define DS_HK_TLM_MID (0x0942) -#define DS_DIAG_TLM_MID (0x0943) - - -/* FM */ -/* Range: 0x980 - 0x98f */ -#define FM_CMD_MID (0x1980) -#define FM_SEND_HK_MID (0x1981) -#define FM_HK_TLM_MID (0x0982) -#define FM_OPEN_FILES_TLM_MID (0x0983) -#define FM_FREE_SPACE_TLM_MID (0x0984) -#define FM_FILE_INFO_TLM_MID (0x0985) -#define FM_DIR_LIST_TLM_MID (0x0986) - - -/* HK */ -/* Range: 0x990 - 0x99f */ -#define HK_CMD_MID (0x1990) -#define HK_SEND_HK_MID (0x1991) -#define HK_SEND_COMBINED_PKT_MID (0x1992) -#define HK_HK_TLM_MID (0x0993) -#define HK_COMBINED_PKT1_MID (0x0994) -#define HK_COMBINED_PKT2_MID (0x0995) -#define HK_COMBINED_PKT3_MID (0x0996) -#define HK_COMBINED_PKT4_MID (0x0997) -#define HK_COMBINED_PKT5_MID (0x0998) -#define HK_COMBINED_PKT6_MID (0x0999) -#define HK_COMBINED_PKT7_MID (0x099a) -#define HK_COMBINED_PKT8_MID (0x099b) -#define HK_COMBINED_PKT9_MID (0x099c) -#define HK_COMBINED_PKT10_MID (0x099d) - - -/* HS */ -/* Range: 0x9a0 - 0x9af */ -#define HS_CMD_MID (0x19a0) -#define HS_SEND_HK_MID (0x19a1) -#define HS_WAKEUP_MID (0x19a2) -#define HS_HK_TLM_MID (0x09a3) -#define HS_CUSTOM_HK_TLM_MID (0x09a4) - - -/* LC */ -/* Range: 0x9b0 - 0x9bf */ -#define LC_HK_TLM_MID (0x09b0) -#define LC_SEND_HK_MID (0x19b1) -#define LC_CMD_MID (0x19b2) -#define LC_SAMPLE_AP_MID (0x09b3) - - -/* MM */ -/* Range: 0x9c0 - 0x9c2 */ -#define MM_CMD_MID (0x19c0) -#define MM_SEND_HK_MID (0x19c1) -#define MM_HK_TLM_MID (0x09c2) - - -/* MD */ -/* Range: 0x9c3 - 0x9cf */ -#define MD_CMD_MID (0x19c3) -#define MD_WAKEUP_MID (0x19c4) -#define MD_SEND_HK_MID (0x19c5) -#define MD_HK_TLM_MID (0x09c6) -#define MD_DWELL_PKT_MID_BASE (0x09c7) - - -/* SC */ -/* Range: 0x9e0 - 0x9e3 */ -#define SC_CMD_MID (0x19e0) -#define SC_SEND_HK_MID (0x19e1) -#define SC_1HZ_WAKEUP_MID (0x19e2) -#define SC_HK_TLM_MID (0x09e3) - - -/* SCH */ -/* Range: 0x9e4 - 0x9ef */ -#define SCH_CMD_MID (0x19e4) -#define SCH_SEND_HK_MID (0x19e5) +#define CFE_ES_HK_TLM_MID TLM_MSG( 15 ) +#define CFE_EVS_HK_TLM_MID TLM_MSG( 16 ) +#define CFE_SB_HK_TLM_MID TLM_MSG( 17 ) +#define CFE_TBL_HK_TLM_MID TLM_MSG( 18 ) +#define CFE_TIME_HK_TLM_MID TLM_MSG( 19 ) +#define CFE_TIME_DIAG_TLM_MID TLM_MSG( 20 ) +#define CFE_EVS_EVENT_MSG_MID TLM_MSG( 21 ) +#define CFE_SB_STATS_TLM_MID TLM_MSG( 22 ) +#define CFE_ES_APP_TLM_MID TLM_MSG( 23 ) +#define CFE_TBL_REG_TLM_MID TLM_MSG( 24 ) +#define CFE_SB_ALLSUBS_TLM_MID TLM_MSG( 25 ) +#define CFE_SB_ONESUB_TLM_MID TLM_MSG( 26 ) +#define CFE_ES_SHELL_TLM_MID TLM_MSG( 27 ) +#define CFE_ES_MEMSTATS_TLM_MID TLM_MSG( 28 ) + + +/* CI */ +#define CI_CMD_MID CMD_MSG( 50 ) +#define CI_SEND_HK_MID CMD_MSG( 51 ) +#define CI_HK_TLM_MID TLM_MSG( 52 ) +#define CI_WAKEUP_MID CMD_MSG( 53 ) +#define CI_OUT_DATA_MID TLM_MSG( 54 ) +#define CI_PROCESS_TIMEOUTS_MID CMD_MSG( 55 ) + + +/* CF */ +#define CF_CMD_MID CMD_MSG( 56 ) +#define CF_INCOMING_PDU_MID TLM_MSG( 57 ) +#define CF_SEND_HK_MID CMD_MSG( 58 ) +#define CF_SPARE1_CMD_MID CMD_MSG( 59 ) +#define CF_SPARE2_CMD_MID CMD_MSG( 60 ) +#define CF_SPARE3_CMD_MID CMD_MSG( 61 ) +#define CF_SPARE4_CMD_MID CMD_MSG( 62 ) +#define CF_SPARE5_CMD_MID CMD_MSG( 63 ) +#define CF_WAKE_UP_REQ_CMD_MID CMD_MSG( 64 ) +#define CF_CONFIG_TLM_MID TLM_MSG( 65 ) +#define CF_HK_TLM_MID TLM_MSG( 66 ) +#define CF_SPARE0_TLM_MID TLM_MSG( 67 ) +#define CF_SPARE1_TLM_MID TLM_MSG( 68 ) +#define CF_SPARE2_TLM_MID TLM_MSG( 69 ) +#define CF_SPARE3_TLM_MID TLM_MSG( 70 ) +#define CF_SPARE4_TLM_MID TLM_MSG( 71 ) +#define CF_TRANS_TLM_MID TLM_MSG( 72 ) +#define CF_SPACE_TO_GND_PDU_MID CMD_MSG( 73 ) + + +/* CS */ +#define CS_CMD_MID CMD_MSG( 80 ) +#define CS_BACKGROUND_CYCLE_MID CMD_MSG( 81 ) +#define CS_SEND_HK_MID CMD_MSG( 82 ) +#define CS_HK_TLM_MID TLM_MSG( 83 ) + + +/* DS */ +#define DS_CMD_MID CMD_MSG( 84 ) +#define DS_SEND_HK_MID CMD_MSG( 85 ) +#define DS_HK_TLM_MID TLM_MSG( 86 ) +#define DS_DIAG_TLM_MID TLM_MSG( 87 ) + + +/* FM */ +#define FM_CMD_MID CMD_MSG( 88 ) +#define FM_SEND_HK_MID CMD_MSG( 89 ) +#define FM_HK_TLM_MID TLM_MSG( 90 ) +#define FM_OPEN_FILES_TLM_MID TLM_MSG( 91 ) +#define FM_FREE_SPACE_TLM_MID TLM_MSG( 92 ) +#define FM_FILE_INFO_TLM_MID TLM_MSG( 93 ) +#define FM_DIR_LIST_TLM_MID TLM_MSG( 94 ) + + +/* HK */ +#define HK_CMD_MID CMD_MSG( 100 ) +#define HK_SEND_HK_MID CMD_MSG( 101 ) +#define HK_SEND_COMBINED_PKT_MID CMD_MSG( 102 ) +#define HK_HK_TLM_MID TLM_MSG( 103 ) +#define HK_COMBINED_PKT1_MID TLM_MSG( 104 ) +#define HK_COMBINED_PKT2_MID TLM_MSG( 105 ) +#define HK_COMBINED_PKT3_MID TLM_MSG( 106 ) +#define HK_COMBINED_PKT4_MID TLM_MSG( 107 ) +#define HK_COMBINED_PKT5_MID TLM_MSG( 108 ) +#define HK_COMBINED_PKT6_MID TLM_MSG( 109 ) +#define HK_COMBINED_PKT7_MID TLM_MSG( 110 ) +#define HK_COMBINED_PKT8_MID TLM_MSG( 111 ) +#define HK_COMBINED_PKT9_MID TLM_MSG( 112 ) +#define HK_COMBINED_PKT10_MID TLM_MSG( 113 ) + + +/* HS */ +#define HS_CMD_MID CMD_MSG( 120 ) +#define HS_SEND_HK_MID CMD_MSG( 121 ) +#define HS_WAKEUP_MID CMD_MSG( 122 ) +#define HS_HK_TLM_MID TLM_MSG( 123 ) +#define HS_CUSTOM_HK_TLM_MID TLM_MSG( 124 ) + + +/* LC */ +#define LC_HK_TLM_MID TLM_MSG( 130 ) +#define LC_SEND_HK_MID CMD_MSG( 131 ) +#define LC_CMD_MID CMD_MSG( 132 ) +#define LC_SAMPLE_AP_MID CMD_MSG( 133 ) + + +/* MD */ +#define MD_CMD_MID CMD_MSG( 134 ) +#define MD_WAKEUP_MID CMD_MSG( 135 ) +#define MD_SEND_HK_MID CMD_MSG( 136 ) +#define MD_HK_TLM_MID TLM_MSG( 137 ) +#define MD_DWELL_PKT_MID_BASE TLM_MSG( 138 ) + + +/* MM */ +#define MM_CMD_MID CMD_MSG( 139 ) +#define MM_SEND_HK_MID CMD_MSG( 140 ) +#define MM_HK_TLM_MID TLM_MSG( 141 ) + + +/* TO */ +#define TO_CMD_MID CMD_MSG( 142 ) +#define TO_SEND_HK_MID CMD_MSG( 143 ) +#define TO_HK_TLM_MID TLM_MSG( 144 ) +#define TO_SEND_TLM_MID CMD_MSG( 145 ) +#define TO_DATA_TYPE_MID TLM_MSG( 146 ) +#define TO_DIAG_TLM_MID TLM_MSG( 147 ) +#define TO_DIAG_MSG_FLOW_MID TLM_MSG( 148 ) + + +/* SC */ +#define SC_CMD_MID CMD_MSG( 150 ) +#define SC_SEND_HK_MID CMD_MSG( 151 ) +#define SC_1HZ_WAKEUP_MID CMD_MSG( 152 ) +#define SC_HK_TLM_MID TLM_MSG( 153 ) + + +/* SCH */ +#define SCH_CMD_MID CMD_MSG( 154 ) +#define SCH_SEND_HK_MID CMD_MSG( 155 ) #define SCH_UNUSED_MID (0) -#define SCH_DIAG_TLM_MID (0x09e7) -#define SCH_HK_TLM_MID (0x09e8) -//#define SCH_ACTIVITY_DONE_MID (0x09e9) - - -/* GOPRO */ -/* Range: 0x9f0 - 0x9ff */ -#define GOPRO_CMD_MID (0x19f0) -#define GOPRO_SEND_HK_MID (0x19f1) -#define GOPRO_HK_TLM_MID (0x09f2) - - -/* PX4 */ -/* Range: 0x9f0 - 0x9ff */ -#define PX4_ACTUATOR_ARMED_MID (0x0a05) -#define PX4_ACTUATOR_CONTROLS_0_MID (0x0a06) -#define PX4_ACTUATOR_CONTROLS_1_MID (0x0a5f) -#define PX4_ACTUATOR_CONTROLS_2_MID (0x0a5d) -#define PX4_ACTUATOR_CONTROLS_3_MID (0x0a5e) -#define PX4_ACTUATOR_DIRECT_MID (0x0a07) -#define PX4_ACTUATOR_OUTPUTS_MID (0x0a08) -#define PX4_ADC_REPORT_MID (0x0a09) -#define PX4_AIRSPEED_MID (0x0a0a) -#define PX4_ATT_POS_MOCAP_MID (0x0a0b) -#define PX4_BATTERY_STATUS_MID (0x0a0c) -#define PX4_CAMERA_TRIGGER_MID (0x0a0d) -#define PX4_COMMANDER_STATE_MID (0x0a0e) -#define PX4_CONTROL_STATE_MID (0x0a0f) -#define PX4_CPULOAD_MID (0x0a10) -#define PX4_DEBUG_KEY_VALUE_MID (0x0a11) -#define PX4_DIFFERENTIAL_PRESSURE_MID (0x0a12) -#define PX4_DISTANCE_SENSOR_MID (0x0a13) -#define PX4_FW_POS_CTRL_STATUS_MID (0x0a14) -#define PX4_FW_VIRTUAL_ATTITUDE_SETPOINT_MID (0x0a15) -#define PX4_FW_VIRTUAL_RATES_SETPOINT_MID (0x0a16) -#define PX4_EKF2_INNOVATIONS_MID (0x0a17) -#define PX4_EKF2_REPLAY_MID (0x0a18) -#define PX4_ESC_REPORT_MID (0x0a19) -#define PX4_ESC_STATUS_MID (0x0a1a) -#define PX4_ESTIMATOR_STATUS_MID (0x0a1b) -#define PX4_FENCE_MID (0x0a1c) -#define PX4_FENCE_VERTEX_MID (0x0a1d) -#define PX4_FILTERED_BOTTOM_FLOW_MID (0x0a1e) -#define PX4_FOLLOW_TARGET_MID (0x0a1f) -#define PX4_GEOFENCE_RESULT_MID (0x0a20) -#define PX4_GPS_DUMP_MID (0x0a21) -#define PX4_GPS_INJECT_DATA_MID (0x0a22) -#define PX4_HIL_SENSOR_MID (0x0a23) -#define PX4_HOME_POSITION_MID (0x0a24) -#define PX4_INPUT_RC_MID (0x0a25) -#define PX4_LED_CONTROL_MID (0x0a5c) -#define PX4_LOG_MESSAGE_MID (0x0a26) -#define PX4_MANUAL_CONTROL_SETPOINT_MID (0x0a27) -#define PX4_MAVLINK_LOG_MID (0x0a28) -#define PX4_MC_ATT_CTRL_STATUS_MID (0x0a29) -#define PX4_MC_VIRTUAL_ATTITUDE_SETPOINT_MID (0x0a2a) -#define PX4_MC_VIRTUAL_RATES_SETPOINT_MID (0x0a2b) -#define PX4_MISSION_MID (0x0a2c) -#define PX4_MISSION_RESULT_MID (0x0a2d) -#define PX4_MULTIROTOR_MOTOR_LIMITS_MID (0x0a2e) -#define PX4_OFFBOARD_CONTROL_MODE_MID (0x0a2f) -#define PX4_OPTICAL_FLOW_MID (0x0a30) -#define PX4_OUTPUT_PWM_MID (0x0a31) -#define PX4_PARAMETER_UPDATE_MID (0x0a32) -#define PX4_POSITION_SETPOINT_MID (0x0a33) -#define PX4_POSITION_SETPOINT_TRIPLET_MID (0x0a34) -#define PX4_PWM_INPUT_MID (0x0a35) -#define PX4_QSHELL_REQ_MID (0x0a36) -#define PX4_RC_CHANNELS_MID (0x0a37) -#define PX4_RC_PARAMETER_MAP_MID (0x0a38) -#define PX4_SAFETY_MID (0x0a39) -#define PX4_SATELLITE_INFO_MID (0x0a3a) -#define PX4_SENSOR_ACCEL_MID (0x0a3b) -#define PX4_SENSOR_BARO_MID (0x0a3c) -#define PX4_SENSOR_COMBINED_MID (0x0a3d) -#define PX4_SENSOR_GYRO_MID (0x0a3e) -#define PX4_SENSOR_MAG_MID (0x0a3f) -#define PX4_SERVORAIL_STATUS_MID (0x0a40) -#define PX4_SUBSYSTEM_INFO_MID (0x0a41) -#define PX4_SYSTEM_POWER_MID (0x0a42) -#define PX4_TECS_STATUS_MID (0x0a43) -#define PX4_TELEMETRY_STATUS_MID (0x0a44) -#define PX4_TEST_MOTOR_MID (0x0a45) -#define PX4_TIME_OFFSET_MID (0x0a46) -#define PX4_TRANSPONDER_REPORT_MID (0x0a47) -#define PX4_UAVCAN_PARAMETER_REQUEST_MID (0x0a48) -#define PX4_UAVCAN_PARAMETER_VALUE_MID (0x0a49) -#define PX4_VEHICLE_ATTITUDE_MID (0x0a4a) -#define PX4_VEHICLE_ATTITUDE_SETPOINT_MID (0x0a4b) -#define PX4_VEHICLE_COMMAND_ACK_MID (0x0a4c) -#define PX4_VEHICLE_COMMAND_MID (0x0a4d) -#define PX4_VEHICLE_CONTROL_MODE_MID (0x0a4e) -#define PX4_VEHICLE_FORCE_SETPOINT_MID (0x0a4f) -#define PX4_VEHICLE_GLOBAL_POSITION_MID (0x0a50) -#define PX4_VEHICLE_GLOBAL_VELOCITY_SETPOINT_MID (0x0a51) -#define PX4_VEHICLE_GPS_POSITION_MID (0x0a52) -#define PX4_VEHICLE_LAND_DETECTED_MID (0x0a53) -#define PX4_VEHICLE_LOCAL_POSITION_MID (0x0a54) -#define PX4_VEHICLE_LOCAL_POSITION_SETPOINT_MID (0x0a55) -#define PX4_VEHICLE_RATES_SETPOINT_MID (0x0a56) -#define PX4_VEHICLE_STATUS_MID (0x0a57) -#define PX4_VISION_POSITION_ESTIMATE_MID (0x0a58) -#define PX4_VTOL_VEHICLE_STATUS_MID (0x0a59) -#define PX4_WIND_ESTIMATE_MID (0x0a5a) -#define PX4_SENSOR_CORRECTION_MID (0x0a5b) - -/* VID */ -/* Range: 0xb20 - 0xb2f */ -#define VID_CMD_MID (0x1b40) -#define VID_SEND_HK_MID (0x1b41) -#define VID_HK_TLM_MID (0x0b42) -#define VID_GRAB_FRAME_MID (0x1b43) -#define VID_FWD_CAM_FRAME_MID (0x0b44) - -#define MPU9250_SEND_HK_MID (0x1b50) -#define MPU9250_HK_TLM_MID (0x0b51) -#define MPU9250_DIAG_TLM_MID (0x0b52) -#define MPU9250_CMD_MID (0x1b53) -#define MPU9250_MEASURE_MID (0x1b54) - -#define MS5611_SEND_HK_MID (0x1b60) -#define MS5611_HK_TLM_MID (0x0b61) -#define MS5611_DIAG_TLM_MID (0x0b62) -#define MS5611_CMD_MID (0x1b63) -#define MS5611_MEASURE_MID (0x1b64) - -#define NEOM8N_SEND_HK_MID (0x1b70) -#define NEOM8N_HK_TLM_MID (0x0b71) -#define NEOM8N_DIAG_TLM_MID (0x0b72) -#define NEOM8N_CMD_MID (0x1b73) -#define NEOM8N_MEASURE_MID (0x1b74) -#define NEOM8N_PROC_CMDS_MID (0x1b75) -#define NEOM8N_CAL_MEAS_MID (0x0b76) -#define NEOM8N_NAV_POSECEF_MID (0x0b77) -#define NEOM8N_NAV_POSLLH_MID (0x0b78) -#define NEOM8N_NAV_STATUS_MID (0x0b79) -#define NEOM8N_NAV_DOP_MID (0x0b7a) -#define NEOM8N_NAV_ATT_MID (0x0b7b) -#define NEOM8N_NAV_SOL_MID (0x0b7c) -#define NEOM8N_NAV_NAVPVT_MID (0x0b7d) -#define NEOM8N_NAV_ODO_MID (0x0b7e) -#define NEOM8N_NAV_RESETODO_MID (0x0b7f) -#define NEOM8N_NAV_VELECEF_MID (0x0b80) -#define NEOM8N_NAV_VELNED_MID (0x0b81) -#define NEOM8N_NAV_TIMEGPS_MID (0x0b82) -#define NEOM8N_NAV_TIMEUTC_MID (0x0b83) -#define NEOM8N_NAV_CLOCK_MID (0x0b84) -#define NEOM8N_NAV_TIMEGLO_MID (0x0b85) -#define NEOM8N_NAV_TIMEBDS_MID (0x0b86) -#define NEOM8N_NAV_TIMEGAL_MID (0x0b87) -#define NEOM8N_NAV_TIMELS_MID (0x0b88) -#define NEOM8N_NAV_SVINFO_MID (0x0b89) -#define NEOM8N_NAV_DGPS_MID (0x0b8a) -#define NEOM8N_NAV_SBAS_MID (0x0b8b) -#define NEOM8N_NAV_ORB_MID (0x0b8c) -#define NEOM8N_NAV_NAVSAT_MID (0x0b8d) -#define NEOM8N_NAV_GEOFENCE_MID (0x0b8e) -#define NEOM8N_NAV_AOPSTATUS_MID (0x0b8f) -#define NEOM8N_NAV_EOE_MID (0x0b90) -#define NEOM8N_MON_IO_MID (0x0b91) -#define NEOM8N_MON_VER_MID (0x0b92) -#define NEOM8N_MON_MSGPP_MID (0x0b93) -#define NEOM8N_MON_RXBUF_MID (0x0b94) -#define NEOM8N_MON_TXBUF_MID (0x0b95) -#define NEOM8N_MON_HW_MID (0x0b96) -#define NEOM8N_MON_HW2_MID (0x0b97) -#define NEOM8N_MON_RXR_MID (0x0b98) -#define NEOM8N_MON_PATCH_MID (0x0b99) -#define NEOM8N_MON_GNSS_MID (0x0b9a) -#define NEOM8N_MON_SMGR_MID (0x0b9b) - - -/* SBN */ -#define SBN_WAKEUP_MID (0x0ba0) -#define SBN_CMD_MID (0x1ba1) -#define SBN_TLM_MID (0x0ba2) - -/* ROS */ -/* Range: 0x900 - 0x90f */ -#define ROS_CMD_MID (0x1bb0) -#define ROS_SEND_HK_MID (0x1bb1) -#define ROS_HK_TLM_MID (0x0bb3) -#define ROS_SEND_TLM_MID (0x0bb4) - -/* ETA */ -/* Range: 0x900 - 0x90f */ -#define ETA_CMD_MID (0x1bc0) -#define ETA_SEND_HK_MID (0x1bc1) -#define ETA_DATA_TYPES_MID (0x0bc2) -#define ETA_HK_TLM_MID (0x0bc3) -#define ETA_SEND_TLM_MID (0x0bc4) - - -/* PX4UORB */ -/* Range: 0x900 - 0x90f */ -#define PX4UORB_CMD_MID (0x1bd4) -#define PX4UORB_SEND_HK_MID (0x1bd5) -#define PX4UORB_HK_TLM_MID (0x0bd6) -#define PX4UORB_READ_CMD_MID (0x1bd7) - - -/* PX4AEQ */ -/* Range: 0x900 - 0x90f */ -#define PX4AEQ_CMD_MID (0x1bd8) -#define PX4AEQ_SEND_HK_MID (0x1bd9) -#define PX4AEQ_HK_TLM_MID (0x0bda) -#define PX4AEQ_READ_CMD_MID (0x1bdb) - - -/* PX4SEN */ -/* Range: 0x900 - 0x90f */ -#define PX4SEN_CMD_MID (0x1bdc) -#define PX4SEN_SEND_HK_MID (0x1bdd) -#define PX4SEN_HK_TLM_MID (0x0bde) -#define PX4SEN_READ_CMD_MID (0x1bdf) - - -/* PX4SIM */ -/* Range: 0x900 - 0x90f */ -#define PX4SIM_CMD_MID (0x1be0) -#define PX4SIM_SEND_HK_MID (0x1be1) -#define PX4SIM_HK_TLM_MID (0x0be2) -#define PX4SIM_READ_CMD_MID (0x1be3) - - -/* PX4ASIM */ -/* Range: 0x900 - 0x90f */ -#define PX4ASIM_CMD_MID (0x1be4) -#define PX4ASIM_SEND_HK_MID (0x1be5) -#define PX4ASIM_HK_TLM_MID (0x0be6) -#define PX4ASIM_READ_CMD_MID (0x1be7) - - -/* PX4ADSM */ -/* Range: 0x900 - 0x90f */ -#define PX4ADSM_CMD_MID (0x1be8) -#define PX4ADSM_SEND_HK_MID (0x1be9) -#define PX4ADSM_HK_TLM_MID (0x0bea) -#define PX4ADSM_READ_CMD_MID (0x1beb) - - -/* PX4BASM */ -/* Range: 0x900 - 0x90f */ -#define PX4BASM_CMD_MID (0x1bf0) -#define PX4BASM_SEND_HK_MID (0x1bf1) -#define PX4BASM_HK_TLM_MID (0x0bf2) -#define PX4BASM_READ_CMD_MID (0x1bf3) - - -/* PX4DMAN */ -/* Range: 0x900 - 0x90f */ -#define PX4DMAN_CMD_MID (0x1bf8) -#define PX4DMAN_SEND_HK_MID (0x1bf9) -#define PX4DMAN_HK_TLM_MID (0x0bfa) -#define PX4DMAN_READ_CMD_MID (0x1bfb) - - -/* PX4GPSM */ -/* Range: 0x900 - 0x90f */ -#define PX4GPSM_CMD_MID (0x1bfc) -#define PX4GPSM_SEND_HK_MID (0x1bfd) -#define PX4GPSM_HK_TLM_MID (0x0bfe) -#define PX4GPSM_READ_CMD_MID (0x1bff) - -/* PX4GSIM */ -/* Range: 0x900 - 0x90f */ -#define PX4GSIM_CMD_MID (0x1c04) -#define PX4GSIM_SEND_HK_MID (0x1c05) -#define PX4GSIM_HK_TLM_MID (0x0c06) -#define PX4GSIM_READ_CMD_MID (0x1c07) - - -/* PX4LPEQ */ -/* Range: 0x900 - 0x90f */ -#define PX4LPEQ_CMD_MID (0x1c08) -#define PX4LPEQ_SEND_HK_MID (0x1c09) -#define PX4LPEQ_HK_TLM_MID (0x0c0a) -#define PX4LPEQ_READ_CMD_MID (0x1c0b) - - -/* PX4MAC */ -/* Range: 0x900 - 0x90f */ -#define PX4MAC_CMD_MID (0x1c0c) -#define PX4MAC_SEND_HK_MID (0x1c0d) -#define PX4MAC_HK_TLM_MID (0x0c0e) -#define PX4MAC_READ_CMD_MID (0x1c0f) - - -/* PX4MPC */ -/* Range: 0x900 - 0x90f */ -#define PX4MPC_CMD_MID (0x1c10) -#define PX4MPC_SEND_HK_MID (0x1c11) -#define PX4MPC_HK_TLM_MID (0x0c12) -#define PX4MPC_READ_CMD_MID (0x1c13) - - -/* PX4NAV */ -/* Range: 0x900 - 0x90f */ -#define PX4NAV_CMD_MID (0x1c14) -#define PX4NAV_SEND_HK_MID (0x1c15) -#define PX4NAV_HK_TLM_MID (0x0c16) -#define PX4NAV_READ_CMD_MID (0x1c17) - - -/* PX4POS */ -/* Range: 0x900 - 0x90f */ -#define PX4POS_CMD_MID (0x1c18) -#define PX4POS_SEND_HK_MID (0x1c19) -#define PX4POS_HK_TLM_MID (0x0c1a) -#define PX4POS_READ_CMD_MID (0x1c1b) - - -/* PX4RSIM */ -/* Range: 0x900 - 0x90f */ -#define PX4RSIM_CMD_MID (0x1c1c) -#define PX4RSIM_SEND_HK_MID (0x1c1d) -#define PX4RSIM_HK_TLM_MID (0x0c1e) -#define PX4RSIM_READ_CMD_MID (0x1c1f) - - -/* PX4TARM */ -/* Range: 0x900 - 0x90f */ -#define PX4TARM_CMD_MID (0x1c20) -#define PX4TARM_SEND_HK_MID (0x1c21) -#define PX4TARM_HK_TLM_MID (0x0c22) -#define PX4TARM_READ_CMD_MID (0x1c23) - - -/* PX4LDSM */ -/* Range: 0x900 - 0x90f */ -#define PX4LDSM_CMD_MID (0x1c24) -#define PX4LDSM_SEND_HK_MID (0x1c25) -#define PX4LDSM_HK_TLM_MID (0x0c26) -#define PX4LDSM_READ_CMD_MID (0x1c27) - -#define SBNPX4_WAKEUP_MID (0x0c28) - -/* EA */ -#define EA_CMD_MID (0x1c29) -#define EA_SEND_HK_MID (0x1c2a) -#define EA_HK_TLM_MID (0x0c2b) -#define EA_WAKEUP_MID (0x1c2c) -#define EA_OUT_DATA_MID (0x0c2d) -#define EA_PERFMON_MID (0x1c2e) - -/* VC */ -#define VC_HK_TLM_MID (0x0c39) -#define VC_SEND_HK_MID (0x1c3a) -#define VC_CMD_MID (0x1c3b) -#define VC_PROCESS_CMDS_MID (0x1c3c) - -/* AMC */ -#define AMC_CMD_MID (0x1c3d) -#define AMC_SEND_HK_MID (0x1c3e) -#define AMC_UPDATE_MOTORS_MID (0x1c3f) -#define AMC_OUT_DATA_MID (0x0c40) -#define AMC_HK_TLM_MID (0x0c41) - -/* MAC */ -#define MAC_CMD_MID (0x1c42) -#define MAC_SEND_HK_MID (0x1c43) -#define MAC_RUN_CONTROLLER_MID (0x1c44) -#define MAC_OUT_DATA_MID (0x0c45) -#define MAC_HK_TLM_MID (0x0c46) - -/* ULR */ -#define ULR_CMD_MID (0x1c47) -#define ULR_SEND_HK_MID (0x1c48) -#define ULR_MEASURE_MID (0x1c49) -#define ULR_OUT_DATA_MID (0x0c4a) -#define ULR_HK_TLM_MID (0x0c4b) - -/* RGBLED */ -#define RGBLED_CMD_MID (0x1c4c) -#define RGBLED_SEND_HK_MID (0x1c4d) -#define RGBLED_WAKEUP_MID (0x1c4e) -#define RGBLED_HK_TLM_MID (0x0c4f) - -/* GPS */ -#define GPS_CMD_MID (0x1c51) -#define GPS_SEND_HK_MID (0x1c52) -#define GPS_READ_SENSOR_MID (0x1c53) -#define GPS_HK_TLM_MID (0x0c54) - -/* SENS */ -#define SENS_HK_TLM_MID (0x0c55) -#define SENS_SEND_HK_MID (0x1c56) -#define SENS_WAKEUP_MID (0x1c57) -#define SENS_CMD_MID (0x1c58) - -/* QAE */ -#define QAE_HK_TLM_MID (0x0c59) -#define QAE_SEND_HK_MID (0x1c5a) -#define QAE_WAKEUP_MID (0x1c5b) -#define QAE_CMD_MID (0x1c5c) - -/* LD */ -#define LD_HK_TLM_MID (0x0c5d) -#define LD_SEND_HK_MID (0x1c5e) -#define LD_WAKEUP_MID (0x1c5f) -#define LD_CMD_MID (0x1c60) - -/* MPC */ -#define MPC_HK_TLM_MID (0x0c61) -#define MPC_SEND_HK_MID (0x1c62) -#define MPC_WAKEUP_MID (0x1c63) -#define MPC_CMD_MID (0x1c64) - -/* NAV */ -#define NAV_HK_TLM_MID (0x0c65) -#define NAV_SEND_HK_MID (0x1c66) -#define NAV_WAKEUP_MID (0x1c67) -#define NAV_CMD_MID (0x1c68) - -/* RCIN */ -#define RCIN_HK_TLM_MID (0x0c69) -#define RCIN_SEND_HK_MID (0x1c6a) -#define RCIN_WAKEUP_MID (0x1c6b) -#define RCIN_CMD_MID (0x1c6c) - -/* VM */ -#define VM_HK_TLM_MID (0x0c6d) -#define VM_SEND_HK_MID (0x1c6e) -#define VM_WAKEUP_MID (0x1c6f) -#define VM_CMD_MID (0x1c70) - -/* BAT */ -#define BAT_HK_TLM_MID (0x0c71) -#define BAT_SEND_HK_MID (0x1c72) -#define BAT_WAKEUP_MID (0x1c73) -#define BAT_CMD_MID (0x1c74) - -/* PE */ -#define PE_HK_TLM_MID (0x0c79) -#define PE_SEND_HK_MID (0x1c7a) -#define PE_WAKEUP_MID (0x1c7b) -#define PE_CMD_MID (0x1c7c) - -/* SIM */ -#define SIM_HK_TLM_MID (0x0c7d) -#define SIM_SEND_HK_MID (0x1c7e) -#define SIM_WAKEUP_MID (0x1c7f) -#define SIM_CMD_MID (0x1c80) - -/* MAVLINK */ -#define MAVLINK_CMD_MID (0x1c81) -#define MAVLINK_SEND_HK_MID (0x1c82) -#define MAVLINK_HK_TLM_MID (0x0c83) -#define MAVLINK_WAKEUP_MID (0x1c84) -#define MAVLINK_OUT_DATA_MID (0x1c85) -#define MAVLINK_PARAM_DATA_MID (0x1c86) -#define MAVLINK_REQUEST_PARAMS_MID (0x1c87) - -/* Individual GPS messages */ -#define GPS_NAV_DOP_MID (0x0c87) -#define GPS_NAV_NAVPVT_MID (0x0c88) -#define GPS_NAV_SVINFO_MID (0x0c89) -#define GPS_ACK_NAK_MID (0x0c90) -#define GPS_ACK_ACK_MID (0x0c91) -#define GPS_CFG_PRT_MID (0x0c92) -#define GPS_CFG_MSG_MID (0x0c93) -#define GPS_CFG_RATE_MID (0x0c94) -#define GPS_CFG_SBAS_MID (0x0c95) -#define GPS_CFG_NAV5_MID (0x0c96) -#define GPS_MON_HW_MID (0x0c97) - -/* HMC5883 */ -#define HMC5883_HK_TLM_MID (0x0ca1) -#define HMC5883_SEND_HK_MID (0x1ca2) -#define HMC5883_WAKEUP_MID (0x1ca3) -#define HMC5883_CMD_MID (0x1ca4) -#define HMC5883_DIAG_TLM_MID (0x0ca5) - -/* PRMLIB */ -#define PRMLIB_PARAM_UPDATED_MID (0x0ca6) - -/* LGC */ -#define LGC_HK_TLM_MID (0x0cb0) -#define LGC_SEND_HK_MID (0x1cb1) -#define LGC_WAKEUP_MID (0x1cb2) -#define LGC_CMD_MID (0x1cb3) - -/* MS5607 */ -#define MS5607_SEND_HK_MID (0x0cb5) -#define MS5607_HK_TLM_MID (0x0cb6) -#define MS5607_DIAG_TLM_MID (0x0cb7) -#define MS5607_CMD_MID (0x0cb8) -#define MS5607_MEASURE_MID (0x0cb9) - -/* AK8963 */ -#define AK8963_HK_TLM_MID (0x0cc1) -#define AK8963_SEND_HK_MID (0x1cc2) -#define AK8963_WAKEUP_MID (0x1cc3) -#define AK8963_CMD_MID (0x1cc4) -#define AK8963_DIAG_TLM_MID (0x0cc5) - -/* MPU6050 */ -#define MPU6050_SEND_HK_MID (0x1cd0) -#define MPU6050_HK_TLM_MID (0x0cd1) -#define MPU6050_DIAG_TLM_MID (0x0cd2) -#define MPU6050_CMD_MID (0x1cd3) -#define MPU6050_MEASURE_MID (0x1cd4) - -/* SONAR */ -#define SONAR_CMD_MID (0x1cd6) -#define SONAR_SEND_HK_MID (0x1cd7) -#define SONAR_MEASURE_MID (0x1cd8) -#define SONAR_OUT_DATA_MID (0x0cd9) -#define SONAR_HK_TLM_MID (0x0ce0) - -/* FLOW */ -#define FLOW_HK_TLM_MID (0x0ce1) -#define FLOW_SEND_HK_MID (0x1ce2) -#define FLOW_WAKEUP_MID (0x1ce3) -#define FLOW_CMD_MID (0x1ce4) -#define FLOW_FRAME_MID (0x0ce5) -#define FLOW_DIAG_TLM_MID (0x0ce6) - -/* MPC */ -#define MPC_DIAG_TLM_MID (0x0cea) - -/* LD */ -#define LD_DIAG_TLM_MID (0x0ceb) - - -#define VM_CONFIG_TLM_MID (0x0cec) - -/* PRM */ -#define PRM_CMD_MID (0x1ced) -#define PRM_SEND_HK_MID (0x1cee) -#define PRM_WAKEUP_MID (0x1cef) -#define PRM_OUT_DATA_MID (0x1cf0) -#define PRM_HK_TLM_MID (0x0cf1) - -#define SCH_ACTIVITY_DONE_MID (0x0f00) +#define SCH_DIAG_TLM_MID TLM_MSG( 156 ) +#define SCH_HK_TLM_MID TLM_MSG( 157 ) +#define SCH_ACTIVITY_DONE_MID CMD_MSG( 158 ) + + +/* PX4 */ +#define PX4_ACTUATOR_ARMED_MID TLM_MSG( 160 ) +#define PX4_ACTUATOR_CONTROLS_0_MID TLM_MSG( 161 ) +#define PX4_ACTUATOR_CONTROLS_1_MID TLM_MSG( 162 ) +#define PX4_ACTUATOR_CONTROLS_2_MID TLM_MSG( 163 ) +#define PX4_ACTUATOR_CONTROLS_3_MID TLM_MSG( 164 ) +#define PX4_ACTUATOR_DIRECT_MID TLM_MSG( 165 ) +#define PX4_ACTUATOR_OUTPUTS_MID TLM_MSG( 166 ) +#define PX4_ADC_REPORT_MID TLM_MSG( 167 ) +#define PX4_AIRSPEED_MID TLM_MSG( 168 ) +#define PX4_ATT_POS_MOCAP_MID TLM_MSG( 169 ) +#define PX4_BATTERY_STATUS_MID TLM_MSG( 170 ) +#define PX4_CAMERA_TRIGGER_MID TLM_MSG( 171 ) +#define PX4_COMMANDER_STATE_MID TLM_MSG( 172 ) +#define PX4_CONTROL_STATE_MID TLM_MSG( 173 ) +#define PX4_CPULOAD_MID TLM_MSG( 174 ) +#define PX4_DEBUG_KEY_VALUE_MID TLM_MSG( 175 ) +#define PX4_DIFFERENTIAL_PRESSURE_MID TLM_MSG( 176 ) +#define PX4_DISTANCE_SENSOR_MID TLM_MSG( 177 ) +#define PX4_FW_POS_CTRL_STATUS_MID TLM_MSG( 178 ) +#define PX4_FW_VIRTUAL_ATTITUDE_SETPOINT_MID TLM_MSG( 179 ) +#define PX4_FW_VIRTUAL_RATES_SETPOINT_MID TLM_MSG( 180 ) +#define PX4_EKF2_INNOVATIONS_MID TLM_MSG( 181 ) +#define PX4_EKF2_REPLAY_MID TLM_MSG( 182 ) +#define PX4_ESC_REPORT_MID TLM_MSG( 183 ) +#define PX4_ESC_STATUS_MID TLM_MSG( 184 ) +#define PX4_ESTIMATOR_STATUS_MID TLM_MSG( 185 ) +#define PX4_FENCE_MID TLM_MSG( 186 ) +#define PX4_FENCE_VERTEX_MID TLM_MSG( 187 ) +#define PX4_FILTERED_BOTTOM_FLOW_MID TLM_MSG( 188 ) +#define PX4_FOLLOW_TARGET_MID TLM_MSG( 189 ) +#define PX4_GEOFENCE_RESULT_MID TLM_MSG( 190 ) +#define PX4_GPS_DUMP_MID TLM_MSG( 191 ) +#define PX4_GPS_INJECT_DATA_MID TLM_MSG( 192 ) +#define PX4_HIL_SENSOR_MID TLM_MSG( 193 ) +#define PX4_HOME_POSITION_MID TLM_MSG( 194 ) +#define PX4_INPUT_RC_MID TLM_MSG( 195 ) +#define PX4_LED_CONTROL_MID TLM_MSG( 196 ) +#define PX4_LOG_MESSAGE_MID TLM_MSG( 197 ) +#define PX4_MANUAL_CONTROL_SETPOINT_MID TLM_MSG( 198 ) +#define PX4_MAVLINK_LOG_MID TLM_MSG( 199 ) +#define PX4_MC_ATT_CTRL_STATUS_MID TLM_MSG( 200 ) +#define PX4_MC_VIRTUAL_ATTITUDE_SETPOINT_MID TLM_MSG( 201 ) +#define PX4_MC_VIRTUAL_RATES_SETPOINT_MID TLM_MSG( 202 ) +#define PX4_MISSION_MID TLM_MSG( 203 ) +#define PX4_MISSION_RESULT_MID TLM_MSG( 204 ) +#define PX4_MULTIROTOR_MOTOR_LIMITS_MID TLM_MSG( 205 ) +#define PX4_OFFBOARD_CONTROL_MODE_MID TLM_MSG( 206 ) +#define PX4_OPTICAL_FLOW_MID TLM_MSG( 207 ) +#define PX4_OUTPUT_PWM_MID TLM_MSG( 208 ) +#define PX4_PARAMETER_UPDATE_MID TLM_MSG( 209 ) +#define PX4_POSITION_SETPOINT_MID TLM_MSG( 210 ) +#define PX4_POSITION_SETPOINT_TRIPLET_MID TLM_MSG( 211 ) +#define PX4_PWM_INPUT_MID TLM_MSG( 212 ) +#define PX4_QSHELL_REQ_MID TLM_MSG( 213 ) +#define PX4_RC_CHANNELS_MID TLM_MSG( 214 ) +#define PX4_RC_PARAMETER_MAP_MID TLM_MSG( 215 ) +#define PX4_SAFETY_MID TLM_MSG( 216 ) +#define PX4_SATELLITE_INFO_MID TLM_MSG( 217 ) +#define PX4_SENSOR_ACCEL_MID TLM_MSG( 218 ) +#define PX4_SENSOR_BARO_MID TLM_MSG( 219 ) +#define PX4_SENSOR_COMBINED_MID TLM_MSG( 220 ) +#define PX4_SENSOR_GYRO_MID TLM_MSG( 221 ) +#define PX4_SENSOR_MAG_MID TLM_MSG( 222 ) +#define PX4_SERVORAIL_STATUS_MID TLM_MSG( 223 ) +#define PX4_SUBSYSTEM_INFO_MID TLM_MSG( 224 ) +#define PX4_SYSTEM_POWER_MID TLM_MSG( 225 ) +#define PX4_TECS_STATUS_MID TLM_MSG( 226 ) +#define PX4_TELEMETRY_STATUS_MID TLM_MSG( 227 ) +#define PX4_TEST_MOTOR_MID TLM_MSG( 228 ) +#define PX4_TIME_OFFSET_MID TLM_MSG( 229 ) +#define PX4_TRANSPONDER_REPORT_MID TLM_MSG( 230 ) +#define PX4_UAVCAN_PARAMETER_REQUEST_MID TLM_MSG( 231 ) +#define PX4_UAVCAN_PARAMETER_VALUE_MID TLM_MSG( 232 ) +#define PX4_VEHICLE_ATTITUDE_MID TLM_MSG( 233 ) +#define PX4_VEHICLE_ATTITUDE_SETPOINT_MID TLM_MSG( 234 ) +#define PX4_VEHICLE_COMMAND_ACK_MID TLM_MSG( 235 ) +#define PX4_VEHICLE_COMMAND_MID TLM_MSG( 236 ) +#define PX4_VEHICLE_CONTROL_MODE_MID TLM_MSG( 237 ) +#define PX4_VEHICLE_FORCE_SETPOINT_MID TLM_MSG( 238 ) +#define PX4_VEHICLE_GLOBAL_POSITION_MID TLM_MSG( 239 ) +#define PX4_VEHICLE_GLOBAL_VELOCITY_SETPOINT_MID TLM_MSG( 240 ) +#define PX4_VEHICLE_GPS_POSITION_MID TLM_MSG( 241 ) +#define PX4_VEHICLE_LAND_DETECTED_MID TLM_MSG( 242 ) +#define PX4_VEHICLE_LOCAL_POSITION_MID TLM_MSG( 243 ) +#define PX4_VEHICLE_LOCAL_POSITION_SETPOINT_MID TLM_MSG( 244 ) +#define PX4_VEHICLE_RATES_SETPOINT_MID TLM_MSG( 245 ) +#define PX4_VEHICLE_STATUS_MID TLM_MSG( 246 ) +#define PX4_VISION_POSITION_ESTIMATE_MID TLM_MSG( 247 ) +#define PX4_VTOL_VEHICLE_STATUS_MID TLM_MSG( 248 ) +#define PX4_WIND_ESTIMATE_MID TLM_MSG( 249 ) +#define PX4_SENSOR_CORRECTION_MID TLM_MSG( 250 ) + + +/* AK8963 */ +#define AK8963_HK_TLM_MID TLM_MSG( 275 ) +#define AK8963_SEND_HK_MID CMD_MSG( 276 ) +#define AK8963_WAKEUP_MID CMD_MSG( 277 ) +#define AK8963_CMD_MID CMD_MSG( 278 ) +#define AK8963_DIAG_TLM_MID TLM_MSG( 279 ) + + +/* AMC */ +#define AMC_CMD_MID CMD_MSG( 280 ) +#define AMC_SEND_HK_MID CMD_MSG( 281 ) +#define AMC_UPDATE_MOTORS_MID CMD_MSG( 282 ) +#define AMC_OUT_DATA_MID TLM_MSG( 283 ) +#define AMC_HK_TLM_MID TLM_MSG( 284 ) + + +/* BAT */ +#define BAT_HK_TLM_MID TLM_MSG( 287 ) +#define BAT_SEND_HK_MID CMD_MSG( 288 ) +#define BAT_WAKEUP_MID CMD_MSG( 289 ) +#define BAT_CMD_MID CMD_MSG( 290 ) + + +/* EA */ +#define EA_CMD_MID CMD_MSG( 293 ) +#define EA_SEND_HK_MID CMD_MSG( 294 ) +#define EA_HK_TLM_MID TLM_MSG( 295 ) +#define EA_WAKEUP_MID CMD_MSG( 296 ) +#define EA_OUT_DATA_MID TLM_MSG( 297 ) +#define EA_PERFMON_MID TLM_MSG( 298 ) + + +/* FLOW */ +#define FLOW_HK_TLM_MID TLM_MSG( 301 ) +#define FLOW_SEND_HK_MID CMD_MSG( 302 ) +#define FLOW_WAKEUP_MID CMD_MSG( 303 ) +#define FLOW_CMD_MID CMD_MSG( 304 ) +#define FLOW_FRAME_MID TLM_MSG( 305 ) +#define FLOW_DIAG_TLM_MID TLM_MSG( 306 ) + + +/* GPS */ +#define GPS_CMD_MID CMD_MSG( 309 ) +#define GPS_SEND_HK_MID TLM_MSG( 310 ) +#define GPS_READ_SENSOR_MID CMD_MSG( 311 ) +#define GPS_HK_TLM_MID TLM_MSG( 312 ) +/* Individual GPS messages */ +#define GPS_NAV_DOP_MID TLM_MSG( 313 ) +#define GPS_NAV_NAVPVT_MID TLM_MSG( 314 ) +#define GPS_NAV_SVINFO_MID TLM_MSG( 315 ) +#define GPS_ACK_NAK_MID TLM_MSG( 316 ) +#define GPS_ACK_ACK_MID TLM_MSG( 317 ) +#define GPS_CFG_PRT_MID TLM_MSG( 318 ) +#define GPS_CFG_MSG_MID TLM_MSG( 319 ) +#define GPS_CFG_RATE_MID TLM_MSG( 320 ) +#define GPS_CFG_SBAS_MID TLM_MSG( 321 ) +#define GPS_CFG_NAV5_MID TLM_MSG( 322 ) +#define GPS_MON_HW_MID TLM_MSG( 323 ) + + +/* HMC5883 */ +#define HMC5883_HK_TLM_MID TLM_MSG( 330 ) +#define HMC5883_SEND_HK_MID CMD_MSG( 331 ) +#define HMC5883_WAKEUP_MID CMD_MSG( 332 ) +#define HMC5883_CMD_MID CMD_MSG( 333 ) +#define HMC5883_DIAG_TLM_MID TLM_MSG( 334 ) + + +/* LD */ +#define LD_HK_TLM_MID TLM_MSG( 335 ) +#define LD_SEND_HK_MID CMD_MSG( 336 ) +#define LD_WAKEUP_MID CMD_MSG( 337 ) +#define LD_CMD_MID CMD_MSG( 338 ) +#define LD_DIAG_TLM_MID TLM_MSG( 339 ) + + +/* LGC */ +#define LGC_HK_TLM_MID TLM_MSG( 342 ) +#define LGC_SEND_HK_MID CMD_MSG( 343 ) +#define LGC_WAKEUP_MID CMD_MSG( 344 ) +#define LGC_CMD_MID CMD_MSG( 345 ) + + +/* MAC */ +#define MAC_CMD_MID CMD_MSG( 348 ) +#define MAC_SEND_HK_MID CMD_MSG( 349 ) +#define MAC_RUN_CONTROLLER_MID CMD_MSG( 350 ) +#define MAC_OUT_DATA_MID TLM_MSG( 351 ) +#define MAC_HK_TLM_MID TLM_MSG( 352 ) + + +/* MAVLINK */ +#define MAVLINK_CMD_MID CMD_MSG( 355 ) +#define MAVLINK_SEND_HK_MID CMD_MSG( 356 ) +#define MAVLINK_HK_TLM_MID TLM_MSG( 357 ) +#define MAVLINK_WAKEUP_MID TLM_MSG( 358 ) +#define MAVLINK_OUT_DATA_MID TLM_MSG( 359 ) +#define MAVLINK_PARAM_DATA_MID TLM_MSG( 360 ) +#define MAVLINK_REQUEST_PARAMS_MID CMD_MSG( 361 ) + + +/* MPC */ +#define MPC_HK_TLM_MID TLM_MSG( 364 ) +#define MPC_SEND_HK_MID CMD_MSG( 365 ) +#define MPC_WAKEUP_MID CMD_MSG( 366 ) +#define MPC_CMD_MID CMD_MSG( 367 ) +#define MPC_DIAG_TLM_MID TLM_MSG( 368 ) + + +/* MPU6050 */ +#define MPU6050_SEND_HK_MID CMD_MSG( 371 ) +#define MPU6050_HK_TLM_MID TLM_MSG( 372 ) +#define MPU6050_DIAG_TLM_MID TLM_MSG( 373 ) +#define MPU6050_CMD_MID CMD_MSG( 374 ) +#define MPU6050_MEASURE_MID CMD_MSG( 375 ) + + +/* MPU9250 */ +#define MPU9250_SEND_HK_MID CMD_MSG( 378 ) +#define MPU9250_HK_TLM_MID TLM_MSG( 379 ) +#define MPU9250_DIAG_TLM_MID TLM_MSG( 380 ) +#define MPU9250_CMD_MID CMD_MSG( 381 ) +#define MPU9250_MEASURE_MID CMD_MSG( 382 ) + + +/* MS5607 */ +#define MS5607_SEND_HK_MID CMD_MSG( 385 ) +#define MS5607_HK_TLM_MID TLM_MSG( 386 ) +#define MS5607_DIAG_TLM_MID TLM_MSG( 387 ) +#define MS5607_CMD_MID CMD_MSG( 388 ) +#define MS5607_MEASURE_MID CMD_MSG( 389 ) + + +/* MS5611 */ +#define MS5611_SEND_HK_MID CMD_MSG( 392 ) +#define MS5611_HK_TLM_MID TLM_MSG( 393 ) +#define MS5611_DIAG_TLM_MID TLM_MSG( 394 ) +#define MS5611_CMD_MID CMD_MSG( 395 ) +#define MS5611_MEASURE_MID CMD_MSG( 396 ) + + +/* NAV */ +#define NAV_HK_TLM_MID TLM_MSG( 399 ) +#define NAV_SEND_HK_MID CMD_MSG( 400 ) +#define NAV_WAKEUP_MID CMD_MSG( 401 ) +#define NAV_CMD_MID CMD_MSG( 402 ) + + +/* PE */ +#define PE_HK_TLM_MID TLM_MSG( 405 ) +#define PE_SEND_HK_MID CMD_MSG( 406 ) +#define PE_WAKEUP_MID CMD_MSG( 407 ) +#define PE_CMD_MID CMD_MSG( 408 ) + + +/* PRM */ +#define PRM_CMD_MID CMD_MSG( 411 ) +#define PRM_SEND_HK_MID CMD_MSG( 412 ) +#define PRM_WAKEUP_MID CMD_MSG( 413 ) +#define PRM_OUT_DATA_MID TLM_MSG( 414 ) +#define PRM_HK_TLM_MID TLM_MSG( 415 ) + + +/* PRMLIB */ +#define PRMLIB_PARAM_UPDATED_MID TLM_MSG( 418 ) + + +/* QAE */ +#define QAE_HK_TLM_MID TLM_MSG( 421 ) +#define QAE_SEND_HK_MID CMD_MSG( 422 ) +#define QAE_WAKEUP_MID CMD_MSG( 423 ) +#define QAE_CMD_MID CMD_MSG( 424 ) + + +/* RCIN */ +#define RCIN_HK_TLM_MID TLM_MSG( 425 ) +#define RCIN_SEND_HK_MID CMD_MSG( 426 ) +#define RCIN_WAKEUP_MID CMD_MSG( 427 ) +#define RCIN_CMD_MID CMD_MSG( 428 ) + + +/* RGBLED */ +#define RGBLED_CMD_MID CMD_MSG( 431 ) +#define RGBLED_SEND_HK_MID CMD_MSG( 432 ) +#define RGBLED_WAKEUP_MID CMD_MSG( 433 ) +#define RGBLED_HK_TLM_MID TLM_MSG( 434 ) + + +/* SBN */ +#define SBN_WAKEUP_MID CMD_MSG( 437 ) +#define SBN_CMD_MID CMD_MSG( 438 ) +#define SBN_TLM_MID TLM_MSG( 439 ) + + +/* SENS */ +#define SENS_HK_TLM_MID TLM_MSG( 450 ) +#define SENS_SEND_HK_MID CMD_MSG( 451 ) +#define SENS_WAKEUP_MID CMD_MSG( 452 ) +#define SENS_CMD_MID CMD_MSG( 453 ) + + +/* SIM */ +#define SIM_HK_TLM_MID TLM_MSG( 456 ) +#define SIM_SEND_HK_MID CMD_MSG( 457 ) +#define SIM_WAKEUP_MID CMD_MSG( 458 ) +#define SIM_CMD_MID CMD_MSG( 459 ) + + +/* SONAR */ +#define SONAR_CMD_MID CMD_MSG( 462 ) +#define SONAR_SEND_HK_MID CMD_MSG( 463 ) +#define SONAR_MEASURE_MID CMD_MSG( 464 ) +#define SONAR_OUT_DATA_MID TLM_MSG( 465 ) +#define SONAR_HK_TLM_MID TLM_MSG( 466 ) + + +/* ULR */ +#define ULR_CMD_MID CMD_MSG( 469 ) +#define ULR_SEND_HK_MID CMD_MSG( 470 ) +#define ULR_MEASURE_MID CMD_MSG( 471 ) +#define ULR_OUT_DATA_MID TLM_MSG( 472 ) +#define ULR_HK_TLM_MID TLM_MSG( 473 ) + + +/* VC */ +#define VC_HK_TLM_MID TLM_MSG( 476 ) +#define VC_SEND_HK_MID CMD_MSG( 477 ) +#define VC_CMD_MID CMD_MSG( 478 ) +#define VC_PROCESS_CMDS_MID CMD_MSG( 479 ) + + +/* VID */ +#define VID_CMD_MID CMD_MSG( 482 ) +#define VID_SEND_HK_MID CMD_MSG( 483 ) +#define VID_HK_TLM_MID TLM_MSG( 484 ) +#define VID_GRAB_FRAME_MID CMD_MSG( 485 ) +#define VID_FWD_CAM_FRAME_MID TLM_MSG( 486 ) + + +/* VM */ +#define VM_HK_TLM_MID TLM_MSG( 487 ) +#define VM_SEND_HK_MID CMD_MSG( 488 ) +#define VM_WAKEUP_MID CMD_MSG( 489 ) +#define VM_CMD_MID CMD_MSG( 490 ) +#define VM_CONFIG_TLM_MID TLM_MSG( 491 ) + #endif diff --git a/config/wh_config.yaml b/config/wh_config.yaml index d9e291459..fd0de9b6a 100644 --- a/config/wh_config.yaml +++ b/config/wh_config.yaml @@ -6,6 +6,80 @@ modules: modules: cfe: definition: ${PROJECT_SOURCE_DIR}/core/base/cfe/wh_design.yaml + modules: + cfe_es: + telemetry: + CFE_ES_HK_TLM_MID: + msgID: 0x080f + CFE_ES_APP_TLM_MID: + msgID: 0x0817 + CFE_ES_MEMSTATS_TLM_MID: + msgID: 0x081c + CFE_ES_SHELL_TLM_MID: + msgID: 0x081b + commands: + CFE_ES_CMD_MID: + msgID: 0x1804 + CFE_ES_SEND_HK_MID: + msgID: 0x1805 + cfe_evs: + telemetry: + CFE_EVS_HK_TLM_MID: + msgID: 0x0810 + CFE_EVS_EVENT_MSG_MID: + msgID: 0x0815 + commands: + CFE_EVS_CMD_MID: + msgID: 0x1800 + CFE_EVS_SEND_HK_MID: + msgID: 0x1806 + cfe_sb: + telemetry: + CFE_SB_HK_TLM_MID: + msgID: 0x0811 + CFE_SB_STATS_TLM_MID: + msgID: 0x0816 + CFE_SB_ALLSUBS_TLM_MID: + msgID: 0x0819 + CFE_SB_ONESUB_TLM_MID: + msgID: 0x081a + commands: + CFE_SB_CMD_MID: + msgID: 0x1801 + CFE_SB_SEND_HK_MID: + msgID: 0x1807 + cfe_tbl: + telemetry: + CFE_TBL_HK_TLM_MID: + msgID: 0x1802 + CFE_TBL_REG_TLM_MID: + msgID: 0x0818 + commands: + CFE_TBL_CMD_MID: + msgID: 0x0802 + CFE_TBL_SEND_HK_MID: + msgID: 0x1808 + cfe_time: + telemetry: + CFE_TIME_DIAG_TLM_MID: + msgID: 0x0802 + CFE_TIME_HK_TLM_MID: + msgID: 0x0813 + commands: + CFE_TIME_CMD_MID: + msgID: 0x1803 + CFE_TIME_SEND_HK_MID: + msgID: 0x1809 + CFE_TIME_DATA_CMD_MID: + msgID: 0x180c + CFE_TIME_TONE_CMD_MID: + msgID: 0x180a + CFE_TIME_FAKE_CMD_MID: + msgID: 0x180d + CFE_TIME_1HZ_CMD_MID: + msgID: 0x180b + CFE_TIME_SEND_CMD_MID: + msgID: 0x180e osal: definition: ${PROJECT_SOURCE_DIR}/core/osal/posix-fast/wh_design.yaml @@ -13,31 +87,31 @@ modules: definition: ${PROJECT_SOURCE_DIR}/apps/cf/wh_design.yaml telemetry: CF_CONFIG_TLM_MID: - msgID: 0x0919 + msgID: 0x08ff CF_HK_TLM_MID: - msgID: 0x091a + msgID: 0x08ff CF_TRANS_TLM_MID: - msgID: 0x0920 + msgID: 0x08ff commands: CF_CMD_MID: - msgID: 0x1910 + msgID: 0x18ff CF_SEND_HK_MID: - msgID: 0x1912 + msgID: 0x18ff CF_WAKE_UP_REQ_CMD_MID: - msgID: 0x1918 + msgID: 0x18ff ci: definition: ${PROJECT_SOURCE_DIR}/apps/ci/wh_design.yaml telemetry: CI_HK_TLM_MID: - msgID: 0x0907 + msgID: 0x08ff commands: CI_CMD_MID: - msgID: 0x1905 + msgID: 0x18ff CI_WAKEUP_MID: - msgID: 0x1908 + msgID: 0x18ff CI_PROCESS_TIMEOUTS_MID: - msgID: 0x190a + msgID: 0x18ff perfids: CI_MAIN_TASK_PERF_ID: id: 33 @@ -50,14 +124,14 @@ modules: definition: ${PROJECT_SOURCE_DIR}/apps/cs/wh_design.yaml telemetry: CS_HK_TLM_MID: - msgID: 0x0933 + msgID: 0x08ff commands: CS_CMD_MID: - msgID: 0x1930 + msgID: 0x18ff CS_BACKGROUND_CYCLE_MID: - msgID: 0x1931 + msgID: 0x18ff CS_SEND_HK_MID: - msgID: 0x1932 + msgID: 0x18ff perfids: CS_APPMAIN_PERF_ID: id: 44 @@ -66,14 +140,14 @@ modules: definition: ${PROJECT_SOURCE_DIR}/apps/ds/wh_design.yaml telemetry: DS_HK_TLM_MID: - msgID: 0x0942 + msgID: 0x08ff DS_DIAG_TLM_MID: - msgID: 0x0943 + msgID: 0x08ff commands: DS_CMD_MID: - msgID: 0x1940 + msgID: 0x18ff DS_SEND_HK_MID: - msgID: 0x1941 + msgID: 0x18ff perfids: DS_APPMAIN_PERF_ID: id: 45 @@ -82,20 +156,20 @@ modules: definition: ${PROJECT_SOURCE_DIR}/apps/fm/wh_design.yaml telemetry: FM_HK_TLM_MID: - msgID: 0x0982 + msgID: 0x08ff FM_OPEN_FILES_TLM_MID: - msgID: 0x0983 + msgID: 0x08ff FM_FREE_SPACE_TLM_MID: - msgID: 0x0984 + msgID: 0x08ff FM_FILE_INFO_TLM_MID: - msgID: 0x0985 + msgID: 0x08ff FM_DIR_LIST_TLM_MID: - msgID: 0x0986 + msgID: 0x08ff commands: FM_CMD_MID: - msgID: 0x1980 + msgID: 0x18ff FM_SEND_HK_MID: - msgID: 0x1981 + msgID: 0x18ff perfids: FM_APPMAIN_PERF_ID: id: 46 @@ -106,14 +180,14 @@ modules: definition: ${PROJECT_SOURCE_DIR}/apps/hk/wh_design.yaml telemetry: HK_HK_TLM_MID: - msgID: 0x0993 + msgID: 0x08ff commands: HK_CMD_MID: - msgID: 0x1990 + msgID: 0x18ff HK_SEND_HK_MID: - msgID: 0x1991 + msgID: 0x18ff HK_SEND_COMBINED_PKT_MID: - msgID: 0x1992 + msgID: 0x18ff perfids: HK_APPMAIN_PERF_ID: id: 48 @@ -122,16 +196,16 @@ modules: definition: ${PROJECT_SOURCE_DIR}/apps/hs/wh_design.yaml telemetry: HS_HK_TLM_MID: - msgID: 0x09a3 + msgID: 0x08ff HS_CUSTOM_HK_TLM_MID: - msgID: 0x09a4 + msgID: 0x08ff commands: HS_CMD_MID: - msgID: 0x19a0 + msgID: 0x18ff HS_SEND_HK_MID: - msgID: 0x19a1 + msgID: 0x18ff HS_WAKEUP_MID: - msgID: 0x19a2 + msgID: 0x18ff perfids: HS_IDLETASK_PERF_ID: id: 49 @@ -142,14 +216,14 @@ modules: definition: ${PROJECT_SOURCE_DIR}/apps/lc/wh_design.yaml telemetry: LC_HK_TLM_MID: - msgID: 0x09b0 + msgID: 0x08ff LC_SAMPLE_AP_MID: - msgID: 0x09b3 + msgID: 0x08ff commands: LC_CMD_MID: - msgID: 0x19b2 + msgID: LC_SEND_HK_MID: - msgID: 0x19b1 + msgID: perfids: LC_APPMAIN_PERF_ID: id: 51 @@ -160,24 +234,24 @@ modules: definition: ${PROJECT_SOURCE_DIR}/apps/md/wh_design.yaml telemetry: MD_HK_TLM_MID: - msgID: 0x09c6 + msgID: 0x08ff MD_DWELL_PKT1_MID: - msgID: 0x09c7 + msgID: 0x08ff MD_DWELL_PKT2_MID: - msgID: 0x09c8 + msgID: 0x08ff MD_DWELL_PKT3_MID: - msgID: 0x09c9 + msgID: 0x08ff MD_DWELL_PKT4_MID: - msgID: 0x09ca + msgID: 0x08ff MD_DWELL_PKT5_MID: - msgID: 0x09cb + msgID: 0x08ff commands: MD_CMD_MID: - msgID: 0x19c3 + msgID: 0x18ff MD_WAKEUP_MID: - msgID: 0x19c4 + msgID: 0x18ff MD_SEND_HK_MID: - msgID: 0x19c5 + msgID: 0x18ff perfids: MD_APPMAIN_PERF_ID: id: 53 @@ -186,12 +260,12 @@ modules: definition: ${PROJECT_SOURCE_DIR}/apps/mm/wh_design.yaml telemetry: MM_HK_TLM_MID: - msgID: 0x09c2 + msgID: 0x08ff commands: MM_CMD_MID: - msgID: 0x19c0 + msgID: 0x18ff MM_SEND_HK_MID: - msgID: 0x19c1 + msgID: 0x18ff perfids: MM_APPMAIN_PERF_ID: id: 54 @@ -208,14 +282,14 @@ modules: definition: ${PROJECT_SOURCE_DIR}/apps/sc/wh_design.yaml telemetry: SC_HK_TLM_MID: - msgID: 0x09e3 + msgID: 0x08ff commands: SC_CMD_MID: - msgID: 0x19e0 + msgID: 0x18ff SC_SEND_HK_MID: - msgID: 0x19e1 + msgID: 0x18ff SC_1HZ_WAKEUP_MID: - msgID: 0x19e2 + msgID: 0x18ff perfids: SC_APPMAIN_PERF_ID: id: 59 @@ -224,16 +298,16 @@ modules: definition: ${PROJECT_SOURCE_DIR}/apps/sch/wh_design.yaml telemetry: SCH_DIAG_TLM_MID: - msgID: 0x09e7 + msgID: 0x08ff SCH_HK_TLM_MID: - msgID: 0x09e8 + msgID: 0x08ff SCH_ACTIVITY_DONE_MID: - msgID: 0x09e9 + msgID: 0x08ff commands: SCH_CMD_MID: - msgID: 0x19e4 + msgID: 0x18ff SCH_SEND_HK_MID: - msgID: 0x19e5 + msgID: 0x18ff perfids: SCH_APPMAIN_PERF_ID: id: 61 @@ -242,16 +316,16 @@ modules: definition: ${PROJECT_SOURCE_DIR}/apps/to/wh_design.yaml telemetry: TO_DIAG_TLM_MID: - msgID: 0x0911 + msgID: 0x08ff TO_HK_TLM_MID: - msgID: 0x0902 + msgID: 0x08ff commands: TO_CMD_MID: - msgID: 0x1900 + msgID: 0x18ff TO_SEND_HK_MID: - msgID: 0x1901 + msgID: 0x18ff TO_SEND_TLM_MID: - msgID: 0x1903 + msgID: 0x18ff perfids: TO_MAIN_TASK_PERF_ID: id: 60 @@ -261,16 +335,16 @@ modules: ak8963: telemetry: AK8963_HK_TLM_MID: - msgID: 0x0cc1 + msgID: 0x08ff AK8963_DIAG_TLM_MID: - msgID: 0x0cc5 + msgID: 0x08ff commands: AK8963_CMD_MID: - msgID: 0x1cc4 + msgID: 0x18ff AK8963_WAKEUP_MID: - msgID: 0x1cc3 + msgID: 0x18ff AK8963_SEND_HK_MID: - msgID: 0x1cc2 + msgID: 0x18ff perfids: AK8963_RECEIVE_PERF_ID: id: 102 @@ -283,14 +357,14 @@ modules: amc: telemetry: AMC_HK_TLM_MID: - msgID: 0x0c41 + msgID: 0x08ff commands: AMC_CMD_MID: - msgID: 0x1c3d + msgID: 0x18ff AMC_SEND_HK_MID: - msgID: 0x1c3e + msgID: 0x18ff AMC_UPDATE_MOTORS_MID: - msgID: 0x1c3f + msgID: 0x18ff perfids: AMC_MAIN_TASK_PERF_ID: id: 67 @@ -303,14 +377,14 @@ modules: bat: telemetry: BAT_HK_TLM_MID: - msgID: 0x0c71 + msgID: 0x08ff commands: BAT_CMD_MID: - msgID: 0x1c74 + msgID: 0x18ff BAT_SEND_HK_MID: - msgID: 0x1c72 + msgID: 0x18ff BAT_WAKEUP_MID: - msgID: 0x1c73 + msgID: 0x18ff perfids: BAT_MAIN_TASK_PERF_ID: id: 82 @@ -319,12 +393,12 @@ modules: ea: telemetry: EA_HK_TLM_MID: - msgID: 0x0c2b + msgID: 0x08ff commands: EA_CMD_MID: - msgID: 0x1c29 + msgID: 0x18ff EA_WAKEUP_MID: - msgID: 0x1c2c + msgID: 0x18ff perfids: EA_MAIN_TASK_PERF_ID: id: 69 @@ -333,14 +407,14 @@ modules: gps: telemetry: GPS_HK_TLM_MID: - msgID: 0x0c54 + msgID: 0x08ff commands: GPS_CMD_MID: - msgID: 0x1c51 + msgID: 0x18ff GPS_SEND_HK_MID: - msgID: 0x1c52 + msgID: 0x18ff GPS_READ_SENSOR_MID: - msgID: 0x1c53 + msgID: 0x18ff perfids: GPS_MAIN_TASK_PERF_ID: id: 116 @@ -349,16 +423,16 @@ modules: hmc5883: telemetry: HMC5883_HK_TLM_MID: - msgID: 0x0ca1 + msgID: 0x08ff HMC5883_DIAG_TLM_MID: - msgID: 0x0ca5 + msgID: 0x08ff commands: HMC5883_CMD_MID: - msgID: 0x1ca4 + msgID: 0x18ff HMC5883_WAKEUP_MID: - msgID: 0x1ca3 + msgID: 0x18ff HMC5883_SEND_HK_MID: - msgID: 0x1ca2 + msgID: 0x18ff perfids: HMC5883_MAIN_TASK_PERF_ID: id: 87 @@ -371,16 +445,16 @@ modules: ld: telemetry: LD_HK_TLM_MID: - msgID: 0x0c5d + msgID: 0x08ff LD_DIAG_TLM_MID: - msgID: 0x0ceb + msgID: 0x08ff commands: LD_CMD_MID: - msgID: 0x1c60 + msgID: LD_SEND_HK_MID: - msgID: 0x1c5e + msgID: LD_WAKEUP_MID: - msgID: 0x1c5f + msgID: perfids: LD_MAIN_TASK_PERF_ID: id: 77 @@ -389,14 +463,14 @@ modules: lgc: telemetry: LGC_HK_TLM_MID: - msgID: 0x0cb0 + msgID: 0x08ff commands: LGC_CMD_MID: - msgID: 0x1cb3 + msgID: 0x18ff LGC_SEND_HK_MID: - msgID: 0x1cb1 + msgID: 0x18ff LGC_WAKEUP_MID: - msgID: 0x1cb2 + msgID: 0x18ff perfids: LGC_MAIN_TASK_PERF_ID: id: 112 @@ -405,14 +479,14 @@ modules: mac: telemetry: MAC_HK_TLM_MID: - msgID: 0x0c46 + msgID: 0x08ff commands: MAC_CMD_MID: - msgID: 0x1c42 + msgID: 0x18ff MAC_SEND_HK_MID: - msgID: 0x1c43 + msgID: 0x18ff MAC_RUN_CONTROLLER_MID: - msgID: 0x1c44 + msgID: 0x18ff perfids: MAC_MAIN_TASK_PERF_ID: id: 68 @@ -421,16 +495,16 @@ modules: mpc: telemetry: MPC_HK_TLM_MID: - msgID: 0x0c61 + msgID: 0x08ff MPC_DIAG_TLM_MID: - msgID: 0x0cea + msgID: 0x08ff commands: MPC_CMD_MID: - msgID: 0x1c64 + msgID: 0x18ff MPC_WAKEUP_MID: - msgID: 0x1c63 + msgID: 0x18ff MPC_SEND_HK_MID: - msgID: 0x1c62 + msgID: 0x18ff perfids: MPC_MAIN_TASK_PERF_ID: id: 78 @@ -439,16 +513,16 @@ modules: mpu6050: telemetry: MPU6050_HK_TLM_MID: - msgID: 0x0cd1 + msgID: 0x08ff MPU6050_DIAG_TLM_MID: - msgID: 0x0cd2 + msgID: 0x08ff commands: MPU6050_CMD_MID: - msgID: 0x1cd3 + msgID: 0x18ff MPU6050_SEND_HK_MID: - msgID: 0x1cd0 + msgID: 0x18ff MPU6050_MEASURE_MID: - msgID: 0x1cd4 + msgID: 0x18ff perfids: MPU6050_MAIN_TASK_PERF_ID: id: 105 @@ -461,16 +535,16 @@ modules: mpu9250: telemetry: MPU9250_HK_TLM_MID: - msgID: 0x0b51 + msgID: 0x08ff MPU9250_DIAG_TLM_MID: - msgID: 0x0b52 + msgID: 0x08ff commands: MPU9250_CMD_MID: - msgID: 0x1b53 + msgID: 0x18ff MPU9250_SEND_HK_MID: - msgID: 0x1b50 + msgID: 0x18ff MPU9250_MEASURE_MID: - msgID: 0x1b54 + msgID: 0x18ff perfids: MPU9250_MAIN_TASK_PERF_ID: id: 83 @@ -479,16 +553,16 @@ modules: ms5607: telemetry: MS5607_HK_TLM_MID: - msgID: 0x0cb6 + msgID: 0x08ff MS5607_DIAG_TLM_MID: - msgID: 0x0cb7 + msgID: 0x08ff commands: MS5607_CMD_MID: - msgID: 0x1cb8 + msgID: 0x18ff MS5607_SEND_HK_MID: - msgID: 0x1cb5 + msgID: 0x18ff MS5607_MEASURE_MID: - msgID: 0x1cb9 + msgID: 0x18ff perfids: MS5607_MAIN_TASK_PERF_ID: id: 99 @@ -501,16 +575,16 @@ modules: ms5611: telemetry: MS5611_HK_TLM_MID: - msgID: 0x0b61 + msgID: 0x08ff MS5611_DIAG_TLM_MID: - msgID: 0x0b62 + msgID: 0x08ff commands: MS5611_CMD_MID: - msgID: 0x1b63 + msgID: 0x18ff MS5611_SEND_HK_MID: - msgID: 0x1b60 + msgID: 0x18ff MS5611_MEASURE_MID: - msgID: 0x1b64 + msgID: 0x18ff perfids: MS5611_MAIN_TASK_PERF_ID: id: 74 @@ -519,14 +593,14 @@ modules: nav: telemetry: NAV_HK_TLM_MID: - msgID: 0x0c65 + msgID: 0x08ff commands: NAV_CMD_MID: - msgID: 0x1c68 + msgID: 0x18ff NAV_SEND_HK_MID: - msgID: 0x1c66 + msgID: 0x18ff NAV_WAKEUP_MID: - msgID: 0x1c67 + msgID: 0x18ff perfids: NAV_MAIN_TASK_PERF_ID: id: 79 @@ -535,14 +609,14 @@ modules: # prmlib: # telemetry: # PRMLIB_PARAM_UPDATED_MID: -# msgID: 0x0ca6 +# msgID: # commands: # PRM_CMD_MID: -# msgID: 0x1ced +# msgID: # PRM_SEND_HK_MID: -# msgID: 0x1cee +# msgID: # PRM_WAKEUP_MID: -# msgID: 0x1cef +# msgID: # perfids: # PARAMS_MAIN_TASK_PERF_ID: # id: 90 @@ -551,14 +625,14 @@ modules: pe: telemetry: PE_HK_TLM_MID: - msgID: 0x0c79 + msgID: 0x08ff commands: PE_CMD_MID: - msgID: 0x1c7c + msgID: 0x18ff PE_SEND_HK_MID: - msgID: 0x1c7a + msgID: 0x18ff PE_WAKEUP_MID: - msgID: 0x1c7b + msgID: 0x18ff perfids: PE_MAIN_TASK_PERF_ID: id: 92 @@ -581,14 +655,14 @@ modules: qae: telemetry: QAE_HK_TLM_MID: - msgID: 0x0c59 + msgID: 0x08ff commands: QAE_CMD_MID: - msgID: 0x1c5c + msgID: 0x18ff QAE_SEND_HK_MID: - msgID: 0x1c5a + msgID: 0x18ff QAE_WAKEUP_MID: - msgID: 0x1c5b + msgID: 0x18ff perfids: QAE_MAIN_TASK_PERF_ID: id: 76 @@ -599,14 +673,14 @@ modules: rcin: telemetry: RCIN_HK_TLM_MID: - msgID: 0x0c69 + msgID: 0x08ff commands: RCIN_CMD_MID: - msgID: 0x1c6c + msgID: 0x18ff RCIN_SEND_HK_MID: - msgID: 0x1c6a + msgID: 0x18ff RCIN_WAKEUP_MID: - msgID: 0x1c6b + msgID: 0x18ff perfids: RCIN_MAIN_TASK_PERF_ID: id: 80 @@ -617,14 +691,14 @@ modules: rgbled: telemetry: RGBLED_HK_TLM_MID: - msgID: 0x0c4f + msgID: 0x08ff commands: RGBLED_CMD_MID: - msgID: 0x1c4c + msgID: 0x18ff RGBLED_SEND_HK_MID: - msgID: 0x1c4d + msgID: 0x18ff RGBLED_WAKEUP_MID: - msgID: 0x1c4e + msgID: 0x18ff perfids: RGBLED_MAIN_TASK_PERF_ID: id: 71 @@ -637,20 +711,20 @@ modules: # sbn: # commands: # SBN_WAKEUP_MID: -# msgID: 0x1ba0 +# msgID: # definition: ${PROJECT_SOURCE_DIR}/apps/sbn/wh_design.yaml sc: telemetry: SC_HK_TLM_MID: - msgID: 0x09e3 + msgID: 0x08ff commands: SC_CMD_MID: - msgID: 0x19e0 + msgID: 0x18ff SC_SEND_HK_MID: - msgID: 0x19e1 + msgID: 0x18ff SC_1HZ_WAKEUP_MID: - msgID: 0x19e2 + msgID: 0x18ff perfids: SC_APPMAIN_PERF_ID: id: 59 @@ -659,14 +733,14 @@ modules: sens: telemetry: SENS_HK_TLM_MID: - msgID: 0x0c55 + msgID: 0x08ff commands: SENS_CMD_MID: - msgID: 0x1c58 + msgID: 0x18ff SENS_WAKEUP_MID: - msgID: 0x1c57 + msgID: 0x18ff SENS_SEND_HK_MID: - msgID: 0x1c56 + msgID: 0x18ff perfids: SENS_MAIN_TASK_PERF_ID: id: 75 @@ -675,14 +749,14 @@ modules: # sim: # telemetry: # SIM_HK_TLM_MID: -# msgID: 0x0c7d +# msgID: # commands: # SIM_CMD_MID: -# msgID: 0x1c80 +# msgID: # SIM_WAKEUP_MID: -# msgID: 0x1c7f +# msgID: # SIM_SEND_HK_MID: -# msgID: 0x1c7e +# msgID: # perfids: # SIM_MAIN_TASK_PERF_ID: # id: 85 @@ -691,16 +765,16 @@ modules: sonar: telemetry: SONAR_OUT_DATA_MID: - msgID: 0x0cd9 + msgID: 0x08ff SONAR_HK_TLM_MID: - msgID: 0x0ce0 + msgID: 0x08ff commands: SONAR_CMD_MID: - msgID: 0x1cd6 + msgID: 0x18ff SONAR_SEND_HK_MID: - msgID: 0x1cd7 + msgID: 0x18ff SONAR_MEASURE_MID: - msgID: 0x1cd8 + msgID: 0x18ff perfids: SONAR_MAIN_TASK_PERF_ID: id: 111 @@ -709,14 +783,14 @@ modules: ulr: telemetry: ULR_HK_TLM_MID: - msgID: 0x0c4b + msgID: 0x08ff commands: ULR_CMD_MID: - msgID: 0x1c47 + msgID: 0x18ff ULR_SEND_HK_MID: - msgID: 0x1c48 + msgID: 0x18ff ULR_MEASURE_MID: - msgID: 0x1c49 + msgID: 0x18ff perfids: ULR_MAIN_TASK_PERF_ID: id: 70 @@ -725,14 +799,14 @@ modules: vc: telemetry: VC_HK_TLM_MID: - msgID: 0x0c39 + msgID: 0x08ff commands: VC_CMD_MID: - msgID: 0x1c3b + msgID: 0x18ff VC_SEND_HK_MID: - msgID: 0x1c3a + msgID: 0x18ff VC_PROCESS_CMDS_MID: - msgID: 0x1c3c + msgID: 0x18ff perfids: VC_MAIN_TASK_PERF_ID: id: 63 @@ -745,16 +819,16 @@ modules: vm: telemetry: VM_HK_TLM_MID: - msgID: 0x0c6d + msgID: 0x08ff VM_CONFIG_TLM_MID: - msgID: 0x0cec + msgID: 0x08ff commands: VM_CMD_MID: - msgID: 0x1c70 + msgID: 0x18ff VM_SEND_HK_MID: - msgID: 0x1c6e + msgID: 0x18ff VM_WAKEUP_MID: - msgID: 0x1c6f + msgID: 0x18ff perfids: VM_MAIN_TASK_PERF_ID: id: 81 @@ -763,188 +837,188 @@ modules: # px4lib: # telemetry: # PX4_ACTUATOR_ARMED_MID: -# msgID: 0x0a05 +# msgID: # PX4_ACTUATOR_CONTROLS_0_MID: -# msgID: 0x0a06 +# msgID: # PX4_ACTUATOR_CONTROLS_1_MID: -# msgID: 0x0a5f +# msgID: # PX4_ACTUATOR_CONTROLS_2_MID: -# msgID: 0x0a5d +# msgID: # PX4_ACTUATOR_CONTROLS_3_MID: -# msgID: 0x0a5e +# msgID: # PX4_ACTUATOR_DIRECT_MID: -# msgID: 0x0a07 +# msgID: # PX4_ACTUATOR_OUTPUTS_MID: -# msgID: 0x0a08 +# msgID: # PX4_ADC_REPORT_MID: -# msgID: 0x0a09 +# msgID: # PX4_AIRSPEED_MID: -# msgID: 0x0a0a +# msgID: # PX4_ATT_POS_MOCAP_MID: -# msgID: 0x0a0b +# msgID: # PX4_BATTERY_STATUS_MID: -# msgID: 0x0a0c +# msgID: # PX4_CAMERA_TRIGGER_MID: -# msgID: 0x0a0d +# msgID: # PX4_COMMANDER_STATE_MID: -# msgID: 0x0a0e +# msgID: # PX4_CONTROL_STATE_MID: -# msgID: 0x0a0f +# msgID: # PX4_CPULOAD_MID: -# msgID: 0x0a10 +# msgID: # PX4_DEBUG_KEY_VALUE_MID: -# msgID: 0x0a11 +# msgID: # PX4_DIFFERENTIAL_PRESSURE_MID: -# msgID: 0x0a12 +# msgID: # PX4_DISTANCE_SENSOR_MID: -# msgID: 0x0a13 +# msgID: # PX4_FW_POS_CTRL_STATUS_MID: -# msgID: 0x0a14 +# msgID: # PX4_FW_VIRTUAL_ATTITUDE_SETPOINT_MID: -# msgID: 0x0a15 +# msgID: # PX4_FW_VIRTUAL_RATES_SETPOINT_MID: -# msgID: 0x0a16 +# msgID: # PX4_EKF2_INNOVATIONS_MID: -# msgID: 0x0a17 +# msgID: # PX4_EKF2_REPLAY_MID: -# msgID: 0x0a18 +# msgID: # PX4_ESC_REPORT_MID: -# msgID: 0x0a19 +# msgID: # PX4_ESC_STATUS_MID: -# msgID: 0x0a1a +# msgID: # PX4_ESTIMATOR_STATUS_MID: -# msgID: 0x0a1b +# msgID: # PX4_FENCE_MID: -# msgID: 0x0a1c +# msgID: # PX4_FENCE_VERTEX_MID: -# msgID: 0x0a1d +# msgID: # PX4_FILTERED_BOTTOM_FLOW_MID: -# msgID: 0x0a1e +# msgID: # PX4_FOLLOW_TARGET_MID: -# msgID: 0x0a1f +# msgID: # PX4_GEOFENCE_RESULT_MID: -# msgID: 0x0a20 +# msgID: # PX4_GPS_DUMP_MID: -# msgID: 0x0a21 +# msgID: # PX4_GPS_INJECT_DATA_MID: -# msgID: 0x0a22 +# msgID: # PX4_HIL_SENSOR_MID: -# msgID: 0x0a23 +# msgID: # PX4_HOME_POSITION_MID: -# msgID: 0x0a24 +# msgID: # PX4_INPUT_RC_MID: -# msgID: 0x0a25 +# msgID: # PX4_LED_CONTROL_MID: -# msgID: 0x0a5c +# msgID: # PX4_LOG_MESSAGE_MID: -# msgID: 0x0a26 +# msgID: # PX4_MANUAL_CONTROL_SETPOINT_MID: -# msgID: 0x0a27 +# msgID: # PX4_MAVLINK_LOG_MID: -# msgID: 0x0a28 +# msgID: # PX4_MC_ATT_CTRL_STATUS_MID: -# msgID: 0x0a29 +# msgID: # PX4_MC_VIRTUAL_ATTITUDE_SETPOINT_MID: -# msgID: 0x0a2a +# msgID: # PX4_MC_VIRTUAL_RATES_SETPOINT_MID: -# msgID: 0x0a2b +# msgID: # PX4_MISSION_MID: -# msgID: 0x0a2c +# msgID: # PX4_MISSION_RESULT_MID: -# msgID: 0x0a2d +# msgID: # PX4_MULTIROTOR_MOTOR_LIMITS_MID: -# msgID: 0x0a2e +# msgID: # PX4_OFFBOARD_CONTROL_MODE_MID: -# msgID: 0x0a2f +# msgID: # PX4_OPTICAL_FLOW_MID: -# msgID: 0x0a30 +# msgID: # PX4_OUTPUT_PWM_MID: -# msgID: 0x0a31 +# msgID: # PX4_PARAMETER_UPDATE_MID: -# msgID: 0x0a32 +# msgID: # PX4_POSITION_SETPOINT_MID: -# msgID: 0x0a33 +# msgID: # PX4_POSITION_SETPOINT_TRIPLET_MID: -# msgID: 0x0a34 +# msgID: # PX4_PWM_INPUT_MID: -# msgID: 0x0a35 +# msgID: # PX4_QSHELL_REQ_MID: -# msgID: 0x0a36 +# msgID: # PX4_RC_CHANNELS_MID: -# msgID: 0x0a37 +# msgID: # PX4_RC_PARAMETER_MAP_MID: -# msgID: 0x0a38 +# msgID: # PX4_SAFETY_MID: -# msgID: 0x0a39 +# msgID: # PX4_SATELLITE_INFO_MID: -# msgID: 0x0a3a +# msgID: # PX4_SENSOR_ACCEL_MID: -# msgID: 0x0a3b +# msgID: # PX4_SENSOR_BARO_MID: -# msgID: 0x0a3c +# msgID: # PX4_SENSOR_COMBINED_MID: -# msgID: 0x0a3d +# msgID: # PX4_SENSOR_GYRO_MID: -# msgID: 0x0a3e +# msgID: # PX4_SENSOR_MAG_MID: -# msgID: 0x0a3f +# msgID: # PX4_SERVORAIL_STATUS_MID: -# msgID: 0x0a40 +# msgID: # PX4_SUBSYSTEM_INFO_MID: -# msgID: 0x0a41 +# msgID: # PX4_SYSTEM_POWER_MID: -# msgID: 0x0a42 +# msgID: # PX4_TECS_STATUS_MID: -# msgID: 0x0a43 +# msgID: # PX4_TELEMETRY_STATUS_MID: -# msgID: 0x0a44 +# msgID: # PX4_TEST_MOTOR_MID: -# msgID: 0x0a45 +# msgID: # PX4_TIME_OFFSET_MID: -# msgID: 0x0a46 +# msgID: # PX4_TRANSPONDER_REPORT_MID: -# msgID: 0x0a47 +# msgID: # PX4_UAVCAN_PARAMETER_REQUEST_MID: -# msgID: 0x0a48 +# msgID: # PX4_UAVCAN_PARAMETER_VALUE_MID: -# msgID: 0x0a49 +# msgID: # PX4_VEHICLE_ATTITUDE_MID: -# msgID: 0x0a4a +# msgID: # PX4_VEHICLE_ATTITUDE_SETPOINT_MID: -# msgID: 0x0a4b +# msgID: # PX4_VEHICLE_COMMAND_ACK_MID: -# msgID: 0x0a4c +# msgID: # PX4_VEHICLE_COMMAND_MID: -# msgID: 0x0a4d +# msgID: # PX4_VEHICLE_CONTROL_MODE_MID: -# msgID: 0x0a4e +# msgID: # PX4_VEHICLE_FORCE_SETPOINT_MID: -# msgID: 0x0a4f +# msgID: # PX4_VEHICLE_GLOBAL_POSITION_MID: -# msgID: 0x0a50 +# msgID: # PX4_VEHICLE_GLOBAL_VELOCITY_SETPOINT_MID: -# msgID: 0x0a51 +# msgID: # PX4_VEHICLE_GPS_POSITION_MID: -# msgID: 0x0a52 +# msgID: # PX4_VEHICLE_LAND_DETECTED_MID: -# msgID: 0x0a53 +# msgID: # PX4_VEHICLE_LOCAL_POSITION_MID: -# msgID: 0x0a54 +# msgID: # PX4_VEHICLE_LOCAL_POSITION_SETPOINT_MID: -# msgID: 0x0a55 +# msgID: # PX4_VEHICLE_RATES_SETPOINT_MID: -# msgID: 0x0a56 +# msgID: # PX4_VEHICLE_STATUS_MID: -# msgID: 0x0a57 +# msgID: # PX4_VISION_POSITION_ESTIMATE_MID: -# msgID: 0x0a58 +# msgID: # PX4_VTOL_VEHICLE_STATUS_MID: -# msgID: 0x0a59 +# msgID: # PX4_WIND_ESTIMATE_MID: -# msgID: 0x0a5a +# msgID: # PX4_SENSOR_CORRECTION_MID: -# msgID: 0x0a5b +# msgID: # FLOW_FRAME_MID: -# msgID: 0x0ce5 +# msgID: # definition: ${PROJECT_SOURCE_DIR}/apps/px4lib/wh_design.yaml From cee503b755f22e074438c69b835004cbb7e3d124 Mon Sep 17 00:00:00 2001 From: cnalley Date: Wed, 10 Feb 2021 16:10:56 +0000 Subject: [PATCH 082/370] Add back standard udp module. --- .../modules/udp/fsw/for_build/CMakeLists.txt | 2 - apps/sbn/modules/udp/fsw/src/sbn_udp_if.c | 375 ++---------- apps/sbn/modules/udp_pq/CMakeLists.txt | 13 + apps/sbn/modules/udp_pq/app.cfg | 12 + .../udp_pq/fsw/for_build/CMakeLists.txt | 48 ++ .../sbn/modules/udp_pq/fsw/for_build/Makefile | 111 ++++ .../{udp => udp_pq}/fsw/src/mailbox_parser.c | 0 .../{udp => udp_pq}/fsw/src/mailbox_parser.h | 0 .../modules/udp_pq/fsw/src/sbn_udp_events.h | 10 + apps/sbn/modules/udp_pq/fsw/src/sbn_udp_if.c | 570 ++++++++++++++++++ apps/sbn/modules/udp_pq/fsw/src/sbn_udp_if.h | 65 ++ .../udp_pq/fsw/src/sbn_udp_if_struct.h | 48 ++ config/obc/ppd/target/CMakeLists.txt | 10 +- config/obc/sitl/target/CMakeLists.txt | 3 - 14 files changed, 920 insertions(+), 347 deletions(-) create mode 100644 apps/sbn/modules/udp_pq/CMakeLists.txt create mode 100644 apps/sbn/modules/udp_pq/app.cfg create mode 100644 apps/sbn/modules/udp_pq/fsw/for_build/CMakeLists.txt create mode 100644 apps/sbn/modules/udp_pq/fsw/for_build/Makefile rename apps/sbn/modules/{udp => udp_pq}/fsw/src/mailbox_parser.c (100%) rename apps/sbn/modules/{udp => udp_pq}/fsw/src/mailbox_parser.h (100%) create mode 100644 apps/sbn/modules/udp_pq/fsw/src/sbn_udp_events.h create mode 100644 apps/sbn/modules/udp_pq/fsw/src/sbn_udp_if.c create mode 100644 apps/sbn/modules/udp_pq/fsw/src/sbn_udp_if.h create mode 100644 apps/sbn/modules/udp_pq/fsw/src/sbn_udp_if_struct.h diff --git a/apps/sbn/modules/udp/fsw/for_build/CMakeLists.txt b/apps/sbn/modules/udp/fsw/for_build/CMakeLists.txt index acbb9d7a5..d1f85071f 100644 --- a/apps/sbn/modules/udp/fsw/for_build/CMakeLists.txt +++ b/apps/sbn/modules/udp/fsw/for_build/CMakeLists.txt @@ -36,8 +36,6 @@ buildliner_add_app_def(sbn_udp SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/../src/sbn_udp_if.c ${CMAKE_CURRENT_SOURCE_DIR}/../src/sbn_udp_if.h - ${CMAKE_CURRENT_SOURCE_DIR}/../src/mailbox_parser.c - ${CMAKE_CURRENT_SOURCE_DIR}/../src/mailbox_parser.h ${CMAKE_CURRENT_SOURCE_DIR}/../src/sbn_udp_events.h ${CMAKE_CURRENT_SOURCE_DIR}/../src/sbn_udp_if_struct.h diff --git a/apps/sbn/modules/udp/fsw/src/sbn_udp_if.c b/apps/sbn/modules/udp/fsw/src/sbn_udp_if.c index 94f350e10..4a732cfb4 100644 --- a/apps/sbn/modules/udp/fsw/src/sbn_udp_if.c +++ b/apps/sbn/modules/udp/fsw/src/sbn_udp_if.c @@ -4,10 +4,6 @@ #include "cfe.h" #include #include -#include "pq_includes.h" -#include "msg_ids.h" -#include "pq_events.h" -#include "mailbox_parser.h" /* at some point this will be replaced by the OSAL network interface */ #ifdef _VXWORKS_OS_ @@ -16,36 +12,6 @@ #include #endif - -#define MAILBOX_HEADER_SIZE_BYTES (12) -#define MAILBOX_WORD_SIZE (4) -#define MAILBOX_HEADER_SIZE_WORDS (MAILBOX_HEADER_SIZE_BYTES/MAILBOX_WORD_SIZE) -#define MAILBOX_MAX_BUFFER_SIZE_BYTES (1500) -#define MAILBOX_MAX_BUFFER_SIZE_WORDS (MAILBOX_MAX_BUFFER_SIZE_BYTES/MAILBOX_WORD_SIZE) -#define MAILBOX_SBN_HEADER_SIZE_WORDS (2) -#define MAILBOX_SBN_TASK_DELAY_MSEC (1) - - -void SBN_PQ_Output_Task(void); -void SBN_PQ_ChannelHandler(PQ_ChannelData_t *Channel); - -int SBN_UDP_Send_Direct(SBN_PeerInterface_t *Peer, SBN_MsgType_t MsgType, - SBN_MsgSz_t MsgSz, void *Payload); - -extern PQ_ChannelTbl_t PQ_BackupConfigTbl; - -/* TODO add to global data struct. */ -PQ_ChannelData_t Channel; -PQ_HkTlm_t HkTlm; -struct sockaddr_in s_addr; -int Socket; -/* Mailbox specific */ -unsigned int OutputBuffer[1500/sizeof(unsigned int)] __attribute__ ((aligned(4))); -unsigned int InputBuffer[1500/sizeof(unsigned int)] __attribute__ ((aligned(4))); -unsigned int ParserBuffer[1500/sizeof(unsigned int)]; -Mailbox_Parser_Handle_t Parser; - - int SBN_UDP_LoadNet(const char **Row, int FieldCnt, SBN_NetInterface_t *Net) { @@ -104,7 +70,6 @@ int SBN_UDP_LoadPeer(const char **Row, int FieldCnt, */ int SBN_UDP_InitNet(SBN_NetInterface_t *Net) { - int32 iStatus = 0; SBN_UDP_Net_t *NetData = (SBN_UDP_Net_t *)Net->ModulePvt; CFE_EVS_SendEvent(SBN_UDP_SOCK_EID, CFE_EVS_DEBUG, @@ -118,31 +83,6 @@ int SBN_UDP_InitNet(SBN_NetInterface_t *Net) return SBN_ERROR; }/* end if */ - iStatus = PQ_Channel_Init(0, &Channel); - if (iStatus != CFE_SUCCESS) - { - /* TODO update to event. */ - printf("PQ_Channel_Init failed%u\n", iStatus); - return SBN_ERROR; - } - - iStatus = PQ_Channel_OpenChannel( - &Channel, - PQ_UDP_CHANNEL_NAME, - PQ_UDP_CONFIG_TABLENAME, - PQ_UDP_CONFIG_TABLE_FILENAME, - &PQ_BackupConfigTbl, - PQ_UDP_DUMP_TABLENAME, - 1, - PQ_UDP_CF_THROTTLE_SEM_NAME); - - if (iStatus != CFE_SUCCESS) - { - /* TODO update to event. */ - printf("PQ_Channel_OpenChannel failed %u\n", iStatus); - return SBN_ERROR; - } - static struct sockaddr_in my_addr; my_addr.sin_addr.s_addr = inet_addr(NetData->Host); @@ -157,34 +97,6 @@ int SBN_UDP_InitNet(SBN_NetInterface_t *Net) NetData->Host, NetData->Port, NetData->Socket, errno); return SBN_ERROR; }/* end if */ - else - { - /* TODO update to event. */ - printf("SBN bound %s:%d\n", NetData->Host, NetData->Port); - } - - char TaskName[OS_MAX_API_NAME]; - snprintf(TaskName, OS_MAX_API_NAME, "PQ_OUTCH_%u", 0); - uint32 ChildTaskID = 0; - CFE_ES_ChildTaskMainFuncPtr_t ListenerTask = SBN_PQ_Output_Task; - - /* Create a child task here. */ - iStatus = CFE_ES_CreateChildTask( - &ChildTaskID, - (const char *)TaskName, - ListenerTask, - 0, - 131072, - 50, - OS_ENABLE_CORE_0); - if (iStatus != CFE_SUCCESS) - { - /* TODO update to event. */ - printf("CFE_ES_CreateChildTask failed%u\n", iStatus); - return SBN_ERROR; - } - - memset(&Parser, 0x0, sizeof(Parser)); return SBN_SUCCESS; }/* end SBN_UDP_InitNet */ @@ -203,74 +115,64 @@ int SBN_UDP_InitPeer(SBN_PeerInterface_t *Peer) int SBN_UDP_PollPeer(SBN_PeerInterface_t *Peer) { - //OS_time_t CurrentTime; - //OS_GetLocalTime(&CurrentTime); + OS_time_t CurrentTime; + OS_GetLocalTime(&CurrentTime); - //SBN_UDP_Peer_t *PeerData = (SBN_UDP_Peer_t *)Peer->ModulePvt; + SBN_UDP_Peer_t *PeerData = (SBN_UDP_Peer_t *)Peer->ModulePvt; - //if(PeerData->ConnectedFlag) - //{ - //if(CurrentTime.seconds - Peer->LastRecv.seconds - //> SBN_UDP_PEER_TIMEOUT) - //{ - //CFE_EVS_SendEvent(SBN_UDP_DEBUG_EID, CFE_EVS_INFORMATION, - //"CPU %d disconnected", Peer->ProcessorID); - //PeerData->ConnectedFlag = FALSE; - //return 0; - //}/* end if */ - - //if(CurrentTime.seconds - Peer->LastSend.seconds - //> SBN_UDP_PEER_HEARTBEAT) - //{ - //return SBN_UDP_Send_Direct(Peer, SBN_UDP_HEARTBEAT_MSG, 0, NULL); - //}/* end if */ - //} - //else - //{ - //if(CurrentTime.seconds - Peer->LastSend.seconds - //> SBN_UDP_ANNOUNCE_TIMEOUT) - //{ - //return SBN_UDP_Send_Direct(Peer, SBN_UDP_ANNOUNCE_MSG, 0, NULL); - //}/* end if */ - //}/* end if */ + if(PeerData->ConnectedFlag) + { + if(CurrentTime.seconds - Peer->LastRecv.seconds + > SBN_UDP_PEER_TIMEOUT) + { + CFE_EVS_SendEvent(SBN_UDP_DEBUG_EID, CFE_EVS_INFORMATION, + "CPU %d disconnected", Peer->ProcessorID); + PeerData->ConnectedFlag = FALSE; + return 0; + }/* end if */ + + if(CurrentTime.seconds - Peer->LastSend.seconds + > SBN_UDP_PEER_HEARTBEAT) + { + return SBN_UDP_Send(Peer, SBN_UDP_HEARTBEAT_MSG, 0, NULL); + }/* end if */ + } + else + { + if(CurrentTime.seconds - Peer->LastSend.seconds + > SBN_UDP_ANNOUNCE_TIMEOUT) + { + return SBN_UDP_Send(Peer, SBN_UDP_ANNOUNCE_MSG, 0, NULL); + }/* end if */ + }/* end if */ return SBN_SUCCESS; }/* end SBN_UDP_PollPeer */ int SBN_UDP_Send(SBN_PeerInterface_t *Peer, SBN_MsgType_t MsgType, SBN_MsgSz_t MsgSz, void *Payload) { - //SBN_UDP_Send_Direct(Peer, MsgType, MsgSz, Payload); - //return SBN_SUCCESS; - - printf("MsgSz into queue %u\n", MsgSz); - PQ_Channel_LockByRef(&Channel); - PQ_Classifier_Run(&Channel, Payload, &HkTlm); - PQ_Scheduler_Run(&Channel); - PQ_Channel_UnlockByRef(&Channel); - - //size_t BufSz = MsgSz + SBN_PACKED_HDR_SZ; - //uint8 Buf[BufSz]; + size_t BufSz = MsgSz + SBN_PACKED_HDR_SZ; + uint8 Buf[BufSz]; SBN_UDP_Peer_t *PeerData = (SBN_UDP_Peer_t *)Peer->ModulePvt; SBN_NetInterface_t *Net = Peer->Net; SBN_UDP_Net_t *NetData = (SBN_UDP_Net_t *)Net->ModulePvt; - //SBN_PackMsg(&Buf, MsgSz, MsgType, CFE_PSP_GetProcessorId(), Payload); + SBN_PackMsg(&Buf, MsgSz, MsgType, CFE_PSP_GetProcessorId(), Payload); + + static struct sockaddr_in s_addr; - /* TODO Save off this information for now. */ memset(&s_addr, 0, sizeof(s_addr)); s_addr.sin_family = AF_INET; s_addr.sin_addr.s_addr = inet_addr(PeerData->Host); s_addr.sin_port = htons(PeerData->Port); - Socket = NetData->Socket; - //sendto(NetData->Socket, &Buf, BufSz, 0, (struct sockaddr *) &s_addr, - //sizeof(s_addr)); + sendto(NetData->Socket, &Buf, BufSz, 0, (struct sockaddr *) &s_addr, + sizeof(s_addr)); return SBN_SUCCESS; }/* end SBN_UDP_Send */ - /* Note that this Recv function is indescriminate, packets will be received * from all peers but that's ok, I just inject them into the SB and all is * good! @@ -282,7 +184,6 @@ int SBN_UDP_Recv(SBN_NetInterface_t *Net, SBN_MsgType_t *MsgTypePtr, uint8 RecvBuf[SBN_MAX_PACKED_MSG_SZ]; SBN_UDP_Net_t *NetData = (SBN_UDP_Net_t *)Net->ModulePvt; - boolean MessageComplete = FALSE; #ifndef SBN_RECV_TASK @@ -314,55 +215,11 @@ int SBN_UDP_Recv(SBN_NetInterface_t *Net, SBN_MsgType_t *MsgTypePtr, /* each UDP packet is a full SBN message */ - /******************************************************************/ - printf("Received %u\n", Received); - memcpy(&InputBuffer[0], &RecvBuf[0], Received); - - /* TODO this can't handle two messages in a buffer. */ - if(Received > 0) - { - int i = 0; - /* Add check for word length. */ - for(i = 0; i < Received/4; ++i) - { - unsigned int Size = MAILBOX_MAX_BUFFER_SIZE_BYTES; - unsigned int Status = ParseMessage(&Parser, - InputBuffer[i], - &ParserBuffer[0], - &Size); - if(Status == MPS_MESSAGE_COMPLETE) - { - printf("message complete.\n"); - MessageComplete = TRUE; - if (SBN_UnpackMsg(&ParserBuffer[0], MsgSzPtr, MsgTypePtr, CpuIDPtr, Payload) == FALSE) - { - OS_printf("Unpack failed.\n"); - return SBN_ERROR; - } - } - } - } - /******************************************************************/ - - if(MessageComplete == FALSE) + if(SBN_UnpackMsg(&RecvBuf, MsgSzPtr, MsgTypePtr, CpuIDPtr, Payload) + == FALSE) { - return SBN_IF_EMPTY; - } - - //if(SBN_UnpackMsg(&RecvBuf[8], MsgSzPtr, MsgTypePtr, CpuIDPtr, Payload) - //== FALSE) - //{ - //return SBN_ERROR; - //}/* end if */ - - //if(SBN_UnpackMsg(&RecvBuf, MsgSzPtr, MsgTypePtr, CpuIDPtr, Payload) - //== FALSE) - //{ - //return SBN_ERROR; - //}/* end if */ - - CFE_SB_MsgId_t MsgID = CFE_SB_GetMsgId((CFE_SB_MsgPtr_t)Payload); - printf("Received %u CPUID %u, %x\n", Received, *CpuIDPtr, MsgID); + return SBN_ERROR; + }/* end if */ SBN_PeerInterface_t *Peer = SBN_GetPeer(Net, *CpuIDPtr); if(Peer == NULL) @@ -385,19 +242,16 @@ int SBN_UDP_Recv(SBN_NetInterface_t *Net, SBN_MsgType_t *MsgTypePtr, return SBN_SUCCESS; }/* end SBN_UDP_Recv */ - int SBN_UDP_ReportModuleStatus(SBN_ModuleStatusPacket_t *Packet) { return SBN_NOT_IMPLEMENTED; }/* end SBN_UDP_ReportModuleStatus */ - int SBN_UDP_ResetPeer(SBN_PeerInterface_t *Peer) { return SBN_NOT_IMPLEMENTED; }/* end SBN_UDP_ResetPeer */ - int SBN_UDP_UnloadNet(SBN_NetInterface_t *Net) { SBN_UDP_Net_t *NetData = (SBN_UDP_Net_t *)Net->ModulePvt; @@ -417,154 +271,3 @@ int SBN_UDP_UnloadPeer(SBN_PeerInterface_t *Peer) { return SBN_SUCCESS; }/* end SBN_UDP_UnloadPeer */ - - -void SBN_PQ_Output_Task(void) -{ - CFE_ES_RegisterChildTask(); - - SBN_PQ_ChannelHandler(&Channel); - - CFE_ES_ExitChildTask(); -} - - -/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ -/* */ -/* Channel Handler */ -/* */ -/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ -void SBN_PQ_ChannelHandler(PQ_ChannelData_t *Channel) -{ - int32 iStatus = CFE_SUCCESS; - uint32 msgSize = 0; - char *buffer; - - /* TODO add flag */ - while(1) - { - if(PQ_Channel_State(Channel) == PQ_CHANNEL_OPENED) - { - PQ_OutputQueue_t *chQueue = &Channel->OutputQueue; - - iStatus = OS_QueueGet( - chQueue->OSALQueueID, - &buffer, sizeof(buffer), &msgSize, 500); - - if(iStatus == OS_SUCCESS) - { - uint16 actualMessageSize = CFE_SB_GetTotalMsgLength((CFE_SB_MsgPtr_t)buffer); - CFE_SB_MsgId_t MsgID = CFE_SB_GetMsgId((CFE_SB_MsgPtr_t)buffer); - SBN_MsgType_t MsgType; - size_t BufSz = actualMessageSize + SBN_PACKED_HDR_SZ; - uint8 Buf[BufSz]; - int status = 0; - uint32 outputWord = 0; - - if(MsgID == SBN_SUB_MID || MsgID == SBN_ALLSUB_MID) - { - MsgType = SBN_SUBSCRIBE_MSG; - } - else if (MsgID == SBN_UNSUB_MID) - { - MsgType = SBN_UN_SUBSCRIBE_MSG; - } - else - { - MsgType = SBN_APP_MSG; - } - - SBN_PackMsg(&Buf, actualMessageSize, MsgType, CFE_PSP_GetProcessorId(), buffer); - - /* Mailbox specific */ - /******************************************************/ - unsigned int SizeInBytes = 0; - unsigned int SizeInWords = 0; - unsigned int Checksum = 0; - unsigned int i = 0; - - SizeInBytes = BufSz; - /* Ensure word boundary */ - SizeInBytes = (BufSz + (MAILBOX_WORD_SIZE - (BufSz % MAILBOX_WORD_SIZE))); - SizeInWords = SizeInBytes / MAILBOX_WORD_SIZE; - - //printf("BufSz %u\n", BufSz); - //printf("SizeInBytes %u\n", SizeInBytes); - //printf("SizeInWords %u\n", SizeInWords); - - if(SizeInWords + MAILBOX_HEADER_SIZE_WORDS > MAILBOX_MAX_BUFFER_SIZE_WORDS) - { - /* TODO update to event. */ - OS_printf("SBN_MailboxSend Send size too large %u bytes, %u words.\n", SizeInBytes, SizeInWords); - continue; - } - - /* Set CADU. */ - OutputBuffer[0] = MAILBOX_MSG_CADU; - /* Set size of the payload in words. */ - OutputBuffer[1] = SizeInWords; - /* Copy the payload. */ - memcpy(&OutputBuffer[2], &Buf[0], BufSz); - - Checksum = 0; - /* Checksum Calculation */ - for(i = 0; i < SizeInWords - 1; ++i) - { - Checksum += OutputBuffer[i + 2]; - } - /* Set the checksum. */ - OutputBuffer[SizeInWords + 2] = Checksum; - - /* Send payload size plus mailbox header size. */ - status = sendto(Socket, (const char*)&OutputBuffer[0], SizeInBytes + MAILBOX_HEADER_SIZE_BYTES, 0, (struct sockaddr *) &s_addr, - sizeof(s_addr)); - if (status < 0) - { - /* TODO */ - printf("sendto failed errno %d\n", errno); - iStatus = -1; - } - /******************************************************/ - printf("sent %u\n", SizeInBytes + MAILBOX_HEADER_SIZE_BYTES); - //status = sendto(Socket, (const char*)Buf, BufSz, 0, (struct sockaddr *) &s_addr, - //sizeof(s_addr)); - //if (status < 0) - //{ - ///* TODO */ - //printf("sendto failed errno %d\n", errno); - //iStatus = -1; - //} - - iStatus = CFE_ES_PutPoolBuf(Channel->MemPoolHandle, (uint32 *)buffer); - if(iStatus < 0) - { - (void) CFE_EVS_SendEvent(PQ_PUT_POOL_ERR_EID, CFE_EVS_ERROR, - "PutPoolBuf: error=0x%08lx", - (unsigned long)iStatus); - } - else - { - //OS_MutSemTake(TO_AppData.MutexID); - Channel->MemInUse -= iStatus; - //OS_MutSemGive(TO_AppData.MutexID); - - PQ_Channel_LockByRef(Channel); - chQueue->CurrentlyQueuedCnt--; - chQueue->SentCount++; - PQ_Channel_UnlockByRef(Channel); - } - - } - else if(iStatus == OS_QUEUE_TIMEOUT) - { - /* Do nothing. Just loop back around and check the guard. */ - } - else - { - CFE_EVS_SendEvent(PQ_OSQUEUE_GET_ERROR_EID, CFE_EVS_ERROR, - "Listener failed to pop message from queue. (%i).", (int)iStatus); - } - } - } -} - diff --git a/apps/sbn/modules/udp_pq/CMakeLists.txt b/apps/sbn/modules/udp_pq/CMakeLists.txt new file mode 100644 index 000000000..891fb6902 --- /dev/null +++ b/apps/sbn/modules/udp_pq/CMakeLists.txt @@ -0,0 +1,13 @@ +cmake_minimum_required(VERSION 2.6.4) +project(SBN_UDP C) + +if(NOT(IS_DIRECTORY ${SBN_APP_SOURCE_DIR})) + message(FATAL_ERROR "SBN_APP_SOURCE_DIR not defined, is sbn in the target list before this module?") +endif() + +include_directories(${SBN_APP_SOURCE_DIR}/fsw/platform_inc) + +aux_source_directory(fsw/src LIB_SRC_FILES) + +# Create the app module +add_cfe_app(sbn_udp ${LIB_SRC_FILES}) diff --git a/apps/sbn/modules/udp_pq/app.cfg b/apps/sbn/modules/udp_pq/app.cfg new file mode 100644 index 000000000..53d0c50f3 --- /dev/null +++ b/apps/sbn/modules/udp_pq/app.cfg @@ -0,0 +1,12 @@ +SHOULD_START=0 +APP_NAME=udp +APP_ABBREV=UDP +OBJ_TYPE=CFE_APP +APP_PATH=/cf/apps/udp.so +ENTRY_PT=UDP_AppMain +CFE_NAME=UDP_APP +PRIORITY=15 +STACK_SIZE=4096 +LOAD_ADDR=0x0 +EXCEPT_ACT=0 + diff --git a/apps/sbn/modules/udp_pq/fsw/for_build/CMakeLists.txt b/apps/sbn/modules/udp_pq/fsw/for_build/CMakeLists.txt new file mode 100644 index 000000000..acbb9d7a5 --- /dev/null +++ b/apps/sbn/modules/udp_pq/fsw/for_build/CMakeLists.txt @@ -0,0 +1,48 @@ + ############################################################################# + # + # Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. + # + # Redistribution and use in source and binary forms, with or without + # modification, are permitted provided that the following conditions + # are met: + # + # 1. Redistributions of source code must retain the above copyright + # notice, this list of conditions and the following disclaimer. + # 2. Redistributions in binary form must reproduce the above copyright + # notice, this list of conditions and the following disclaimer in + # the documentation and/or other materials provided with the + # distribution. + # 3. Neither the name Windhover Labs nor the names of its contributors + # may be used to endorse or promote products derived from this software + # without specific prior written permission. + # + # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + # FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + # COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, + # INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + # BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS + # OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED + # AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + # LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN + # ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + # POSSIBILITY OF SUCH DAMAGE. + # + ############################################################################# + +buildliner_add_app_def(sbn_udp + FILE sbn_udp + SOURCES + ${CMAKE_CURRENT_SOURCE_DIR}/../src/sbn_udp_if.c + ${CMAKE_CURRENT_SOURCE_DIR}/../src/sbn_udp_if.h + ${CMAKE_CURRENT_SOURCE_DIR}/../src/mailbox_parser.c + ${CMAKE_CURRENT_SOURCE_DIR}/../src/mailbox_parser.h + ${CMAKE_CURRENT_SOURCE_DIR}/../src/sbn_udp_events.h + ${CMAKE_CURRENT_SOURCE_DIR}/../src/sbn_udp_if_struct.h + + INCLUDES + ${CMAKE_CURRENT_SOURCE_DIR}/../src/ + ${CMAKE_CURRENT_SOURCE_DIR}/../../../../fsw/src/ +) + diff --git a/apps/sbn/modules/udp_pq/fsw/for_build/Makefile b/apps/sbn/modules/udp_pq/fsw/for_build/Makefile new file mode 100644 index 000000000..0db7c9fcb --- /dev/null +++ b/apps/sbn/modules/udp_pq/fsw/for_build/Makefile @@ -0,0 +1,111 @@ +############################################################################### +# File: UDP Application Makefile +# +############################################################################### +# +# Subsystem produced by this makefile. +# +export APPTARGET = sbn_udp + +# +# Entry Point for task +# +ENTRY_PT = SBN_UDP_AppMain + +# +# Object files required to build subsystem. +# +OBJS = sbn_udp_if.o + +# +# Source files required to build subsystem; used to generate dependencies. +# As long as there are no assembly files this can be automated. +# +SOURCES = $(OBJS:.o=.c) + + +## +## Specify extra C Flags needed to build this subsystem +## +LOCAL_COPTS = -g -fPIC + + +## +## EXEDIR is defined here, just in case it needs to be different for a custom +## build +## +EXEDIR=../exe + +## +## Certain OSs and Application Loaders require the following option for +## Shared libraries. Currently only needed for vxWorks 5.5 and RTEMS. +## For each shared library that this app depends on, you need to have an +## entry like the following: +## -R../tst_lib/tst_lib.elf +## +## For builds under cygwin when you need the cfs_lib.dll linked in +## set this variables as follows: +## +## SHARED_LIB_LINK =../cfs_lib/cfs_lib.dll +## +SHARED_LIB_LINK = + +######################################################################## +# Should not have to change below this line, except for customized +# Mission and cFE directory structures +######################################################################## + +# +# Set build type to CFE_APP. This allows us to +# define different compiler flags for the cFE Core and Apps. +# +BUILD_TYPE = CFE_APP + +## +## Include all necessary cFE make rules +## Any of these can be copied to a local file and +## changed if needed. +## +## +## cfe-config.mak contains PSP and OS selection +## +include ../cfe/cfe-config.mak +## +## debug-opts.mak contains debug switches +## +include ../cfe/debug-opts.mak +## +## compiler-opts.mak contains compiler definitions and switches/defines +## +include $(CFE_PSP_SRC)/$(PSP)/make/compiler-opts.mak + +## +## Setup the include path for this subsystem +## The OS specific includes are in the build-rules.make file +## +## If this subsystem needs include files from another app, add the path here. +## +INCLUDE_PATH = \ +-I$(OSAL_SRC)/inc \ +-I$(CFE_CORE_SRC)/inc \ +-I$(CFE_PSP_SRC)/inc \ +-I$(CFE_PSP_SRC)/$(PSP)/inc \ +-I$(CFS_APP_SRC)/inc \ +-I$(CFS_APP_SRC)/$(APPTARGET)/fsw/src \ +-I$(CFS_MISSION_INC) \ +-I../cfe/inc \ +-I../inc + +## +## Define the VPATH make variable. +## This can be modified to include source from another directory. +## If there is no corresponding app in the cfs-apps directory, then this can be discarded, or +## if the mission chooses to put the src in another directory such as src, then that can be +## added here as well. +## +VPATH = $(CFS_APP_SRC)/$(APPTARGET)/fsw/src + +## +## Include the common make rules for building a cFE Application +## +include $(CFE_CORE_SRC)/make/app-rules.mak diff --git a/apps/sbn/modules/udp/fsw/src/mailbox_parser.c b/apps/sbn/modules/udp_pq/fsw/src/mailbox_parser.c similarity index 100% rename from apps/sbn/modules/udp/fsw/src/mailbox_parser.c rename to apps/sbn/modules/udp_pq/fsw/src/mailbox_parser.c diff --git a/apps/sbn/modules/udp/fsw/src/mailbox_parser.h b/apps/sbn/modules/udp_pq/fsw/src/mailbox_parser.h similarity index 100% rename from apps/sbn/modules/udp/fsw/src/mailbox_parser.h rename to apps/sbn/modules/udp_pq/fsw/src/mailbox_parser.h diff --git a/apps/sbn/modules/udp_pq/fsw/src/sbn_udp_events.h b/apps/sbn/modules/udp_pq/fsw/src/sbn_udp_events.h new file mode 100644 index 000000000..6137eb371 --- /dev/null +++ b/apps/sbn/modules/udp_pq/fsw/src/sbn_udp_events.h @@ -0,0 +1,10 @@ +#ifndef _sbn_udp_events_h +#define _sbn_udp_events_h + +#include "sbn_events.h" + +#define SBN_UDP_SOCK_EID SBN_UDP_FIRST_EID + 1 /* skip 0th */ +#define SBN_UDP_CONFIG_EID SBN_UDP_FIRST_EID + 2 +#define SBN_UDP_DEBUG_EID SBN_UDP_FIRST_EID + 3 + +#endif /* _sbn_udp_events_h */ diff --git a/apps/sbn/modules/udp_pq/fsw/src/sbn_udp_if.c b/apps/sbn/modules/udp_pq/fsw/src/sbn_udp_if.c new file mode 100644 index 000000000..94f350e10 --- /dev/null +++ b/apps/sbn/modules/udp_pq/fsw/src/sbn_udp_if.c @@ -0,0 +1,570 @@ +#include "sbn_udp_if_struct.h" +#include "sbn_udp_if.h" +#include "sbn_udp_events.h" +#include "cfe.h" +#include +#include +#include "pq_includes.h" +#include "msg_ids.h" +#include "pq_events.h" +#include "mailbox_parser.h" + +/* at some point this will be replaced by the OSAL network interface */ +#ifdef _VXWORKS_OS_ +#include "selectLib.h" +#else +#include +#endif + + +#define MAILBOX_HEADER_SIZE_BYTES (12) +#define MAILBOX_WORD_SIZE (4) +#define MAILBOX_HEADER_SIZE_WORDS (MAILBOX_HEADER_SIZE_BYTES/MAILBOX_WORD_SIZE) +#define MAILBOX_MAX_BUFFER_SIZE_BYTES (1500) +#define MAILBOX_MAX_BUFFER_SIZE_WORDS (MAILBOX_MAX_BUFFER_SIZE_BYTES/MAILBOX_WORD_SIZE) +#define MAILBOX_SBN_HEADER_SIZE_WORDS (2) +#define MAILBOX_SBN_TASK_DELAY_MSEC (1) + + +void SBN_PQ_Output_Task(void); +void SBN_PQ_ChannelHandler(PQ_ChannelData_t *Channel); + +int SBN_UDP_Send_Direct(SBN_PeerInterface_t *Peer, SBN_MsgType_t MsgType, + SBN_MsgSz_t MsgSz, void *Payload); + +extern PQ_ChannelTbl_t PQ_BackupConfigTbl; + +/* TODO add to global data struct. */ +PQ_ChannelData_t Channel; +PQ_HkTlm_t HkTlm; +struct sockaddr_in s_addr; +int Socket; +/* Mailbox specific */ +unsigned int OutputBuffer[1500/sizeof(unsigned int)] __attribute__ ((aligned(4))); +unsigned int InputBuffer[1500/sizeof(unsigned int)] __attribute__ ((aligned(4))); +unsigned int ParserBuffer[1500/sizeof(unsigned int)]; +Mailbox_Parser_Handle_t Parser; + + +int SBN_UDP_LoadNet(const char **Row, int FieldCnt, + SBN_NetInterface_t *Net) +{ + char *ValidatePtr = NULL; + SBN_UDP_Net_t *NetData = (SBN_UDP_Net_t *)Net->ModulePvt; + + if(FieldCnt < SBN_UDP_ITEMS_PER_FILE_LINE) + { + CFE_EVS_SendEvent(SBN_UDP_CONFIG_EID, CFE_EVS_ERROR, + "invalid host entry (expected %d items, found %d)", + SBN_UDP_ITEMS_PER_FILE_LINE, FieldCnt); + return SBN_ERROR; + }/* end if */ + + strncpy(NetData->Host, Row[0], sizeof(NetData->Host)); + NetData->Port = strtol(Row[1], &ValidatePtr, 0); + if(!ValidatePtr || ValidatePtr == Row[1]) + { + CFE_EVS_SendEvent(SBN_UDP_CONFIG_EID, CFE_EVS_ERROR, + "invalid port"); + }/* end if */ + + return SBN_SUCCESS; +}/* end SBN_UDP_LoadNet */ + +int SBN_UDP_LoadPeer(const char **Row, int FieldCnt, + SBN_PeerInterface_t *Peer) +{ + char *ValidatePtr = NULL; + SBN_UDP_Peer_t *PeerData = (SBN_UDP_Peer_t *)Peer->ModulePvt; + + if(FieldCnt < SBN_UDP_ITEMS_PER_FILE_LINE) + { + CFE_EVS_SendEvent(SBN_UDP_CONFIG_EID, CFE_EVS_ERROR, + "invalid peer entry (expected %d items, found %d)", + SBN_UDP_ITEMS_PER_FILE_LINE, FieldCnt); + return SBN_ERROR; + }/* end if */ + + strncpy(PeerData->Host, Row[0], sizeof(PeerData->Host)); + PeerData->Port = strtol(Row[1], &ValidatePtr, 0); + if(!ValidatePtr || ValidatePtr == Row[1]) + { + CFE_EVS_SendEvent(SBN_UDP_CONFIG_EID, CFE_EVS_ERROR, + "invalid port"); + }/* end if */ + + return SBN_SUCCESS; +}/* end SBN_UDP_LoadHost */ + +/** + * Initializes an UDP host. + * + * @param Interface data structure containing the file entry + * @return SBN_SUCCESS on success, error code otherwise + */ +int SBN_UDP_InitNet(SBN_NetInterface_t *Net) +{ + int32 iStatus = 0; + SBN_UDP_Net_t *NetData = (SBN_UDP_Net_t *)Net->ModulePvt; + + CFE_EVS_SendEvent(SBN_UDP_SOCK_EID, CFE_EVS_DEBUG, + "creating socket (%s:%d)", NetData->Host, NetData->Port); + + if((NetData->Socket + = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP)) < 0) + { + CFE_EVS_SendEvent(SBN_UDP_SOCK_EID, CFE_EVS_ERROR, + "socket call failed (errno=%d)", errno); + return SBN_ERROR; + }/* end if */ + + iStatus = PQ_Channel_Init(0, &Channel); + if (iStatus != CFE_SUCCESS) + { + /* TODO update to event. */ + printf("PQ_Channel_Init failed%u\n", iStatus); + return SBN_ERROR; + } + + iStatus = PQ_Channel_OpenChannel( + &Channel, + PQ_UDP_CHANNEL_NAME, + PQ_UDP_CONFIG_TABLENAME, + PQ_UDP_CONFIG_TABLE_FILENAME, + &PQ_BackupConfigTbl, + PQ_UDP_DUMP_TABLENAME, + 1, + PQ_UDP_CF_THROTTLE_SEM_NAME); + + if (iStatus != CFE_SUCCESS) + { + /* TODO update to event. */ + printf("PQ_Channel_OpenChannel failed %u\n", iStatus); + return SBN_ERROR; + } + + static struct sockaddr_in my_addr; + + my_addr.sin_addr.s_addr = inet_addr(NetData->Host); + my_addr.sin_family = AF_INET; + my_addr.sin_port = htons(NetData->Port); + + if(bind(NetData->Socket, (struct sockaddr *) &my_addr, + sizeof(my_addr)) < 0) + { + CFE_EVS_SendEvent(SBN_UDP_SOCK_EID, CFE_EVS_ERROR, + "bind call failed (%s:%d Socket=%d errno=%d)", + NetData->Host, NetData->Port, NetData->Socket, errno); + return SBN_ERROR; + }/* end if */ + else + { + /* TODO update to event. */ + printf("SBN bound %s:%d\n", NetData->Host, NetData->Port); + } + + char TaskName[OS_MAX_API_NAME]; + snprintf(TaskName, OS_MAX_API_NAME, "PQ_OUTCH_%u", 0); + uint32 ChildTaskID = 0; + CFE_ES_ChildTaskMainFuncPtr_t ListenerTask = SBN_PQ_Output_Task; + + /* Create a child task here. */ + iStatus = CFE_ES_CreateChildTask( + &ChildTaskID, + (const char *)TaskName, + ListenerTask, + 0, + 131072, + 50, + OS_ENABLE_CORE_0); + if (iStatus != CFE_SUCCESS) + { + /* TODO update to event. */ + printf("CFE_ES_CreateChildTask failed%u\n", iStatus); + return SBN_ERROR; + } + + memset(&Parser, 0x0, sizeof(Parser)); + + return SBN_SUCCESS; +}/* end SBN_UDP_InitNet */ + +/** + * Initializes an UDP host or peer data struct depending on the + * CPU name. + * + * @param Interface data structure containing the file entry + * @return SBN_SUCCESS on success, error code otherwise + */ +int SBN_UDP_InitPeer(SBN_PeerInterface_t *Peer) +{ + return SBN_SUCCESS; +}/* end SBN_UDP_InitPeer */ + +int SBN_UDP_PollPeer(SBN_PeerInterface_t *Peer) +{ + //OS_time_t CurrentTime; + //OS_GetLocalTime(&CurrentTime); + + //SBN_UDP_Peer_t *PeerData = (SBN_UDP_Peer_t *)Peer->ModulePvt; + + //if(PeerData->ConnectedFlag) + //{ + //if(CurrentTime.seconds - Peer->LastRecv.seconds + //> SBN_UDP_PEER_TIMEOUT) + //{ + //CFE_EVS_SendEvent(SBN_UDP_DEBUG_EID, CFE_EVS_INFORMATION, + //"CPU %d disconnected", Peer->ProcessorID); + //PeerData->ConnectedFlag = FALSE; + //return 0; + //}/* end if */ + + //if(CurrentTime.seconds - Peer->LastSend.seconds + //> SBN_UDP_PEER_HEARTBEAT) + //{ + //return SBN_UDP_Send_Direct(Peer, SBN_UDP_HEARTBEAT_MSG, 0, NULL); + //}/* end if */ + //} + //else + //{ + //if(CurrentTime.seconds - Peer->LastSend.seconds + //> SBN_UDP_ANNOUNCE_TIMEOUT) + //{ + //return SBN_UDP_Send_Direct(Peer, SBN_UDP_ANNOUNCE_MSG, 0, NULL); + //}/* end if */ + //}/* end if */ + return SBN_SUCCESS; +}/* end SBN_UDP_PollPeer */ + +int SBN_UDP_Send(SBN_PeerInterface_t *Peer, SBN_MsgType_t MsgType, + SBN_MsgSz_t MsgSz, void *Payload) +{ + //SBN_UDP_Send_Direct(Peer, MsgType, MsgSz, Payload); + //return SBN_SUCCESS; + + printf("MsgSz into queue %u\n", MsgSz); + PQ_Channel_LockByRef(&Channel); + PQ_Classifier_Run(&Channel, Payload, &HkTlm); + PQ_Scheduler_Run(&Channel); + PQ_Channel_UnlockByRef(&Channel); + + //size_t BufSz = MsgSz + SBN_PACKED_HDR_SZ; + //uint8 Buf[BufSz]; + + SBN_UDP_Peer_t *PeerData = (SBN_UDP_Peer_t *)Peer->ModulePvt; + SBN_NetInterface_t *Net = Peer->Net; + SBN_UDP_Net_t *NetData = (SBN_UDP_Net_t *)Net->ModulePvt; + + //SBN_PackMsg(&Buf, MsgSz, MsgType, CFE_PSP_GetProcessorId(), Payload); + + /* TODO Save off this information for now. */ + memset(&s_addr, 0, sizeof(s_addr)); + s_addr.sin_family = AF_INET; + s_addr.sin_addr.s_addr = inet_addr(PeerData->Host); + s_addr.sin_port = htons(PeerData->Port); + Socket = NetData->Socket; + + //sendto(NetData->Socket, &Buf, BufSz, 0, (struct sockaddr *) &s_addr, + //sizeof(s_addr)); + + return SBN_SUCCESS; +}/* end SBN_UDP_Send */ + + +/* Note that this Recv function is indescriminate, packets will be received + * from all peers but that's ok, I just inject them into the SB and all is + * good! + */ +int SBN_UDP_Recv(SBN_NetInterface_t *Net, SBN_MsgType_t *MsgTypePtr, + SBN_MsgSz_t *MsgSzPtr, SBN_CpuID_t *CpuIDPtr, + void *Payload) +{ + uint8 RecvBuf[SBN_MAX_PACKED_MSG_SZ]; + + SBN_UDP_Net_t *NetData = (SBN_UDP_Net_t *)Net->ModulePvt; + boolean MessageComplete = FALSE; + +#ifndef SBN_RECV_TASK + + /* task-based peer connections block on reads, otherwise use select */ + + fd_set ReadFDs; + struct timeval Timeout; + + FD_ZERO(&ReadFDs); + FD_SET(NetData->Socket, &ReadFDs); + + memset(&Timeout, 0, sizeof(Timeout)); + + if(select(FD_SETSIZE, &ReadFDs, NULL, NULL, &Timeout) == 0) + { + /* nothing to receive */ + return SBN_IF_EMPTY; + }/* end if */ + +#endif /* !SBN_RECV_TASK */ + + int Received = recv(NetData->Socket, (char *)&RecvBuf, + CFE_SB_MAX_SB_MSG_SIZE, 0); + + if(Received < 0) + { + return SBN_ERROR; + }/* end if */ + + /* each UDP packet is a full SBN message */ + + /******************************************************************/ + printf("Received %u\n", Received); + memcpy(&InputBuffer[0], &RecvBuf[0], Received); + + /* TODO this can't handle two messages in a buffer. */ + if(Received > 0) + { + int i = 0; + /* Add check for word length. */ + for(i = 0; i < Received/4; ++i) + { + unsigned int Size = MAILBOX_MAX_BUFFER_SIZE_BYTES; + unsigned int Status = ParseMessage(&Parser, + InputBuffer[i], + &ParserBuffer[0], + &Size); + if(Status == MPS_MESSAGE_COMPLETE) + { + printf("message complete.\n"); + MessageComplete = TRUE; + if (SBN_UnpackMsg(&ParserBuffer[0], MsgSzPtr, MsgTypePtr, CpuIDPtr, Payload) == FALSE) + { + OS_printf("Unpack failed.\n"); + return SBN_ERROR; + } + } + } + } + /******************************************************************/ + + if(MessageComplete == FALSE) + { + return SBN_IF_EMPTY; + } + + //if(SBN_UnpackMsg(&RecvBuf[8], MsgSzPtr, MsgTypePtr, CpuIDPtr, Payload) + //== FALSE) + //{ + //return SBN_ERROR; + //}/* end if */ + + //if(SBN_UnpackMsg(&RecvBuf, MsgSzPtr, MsgTypePtr, CpuIDPtr, Payload) + //== FALSE) + //{ + //return SBN_ERROR; + //}/* end if */ + + CFE_SB_MsgId_t MsgID = CFE_SB_GetMsgId((CFE_SB_MsgPtr_t)Payload); + printf("Received %u CPUID %u, %x\n", Received, *CpuIDPtr, MsgID); + + SBN_PeerInterface_t *Peer = SBN_GetPeer(Net, *CpuIDPtr); + if(Peer == NULL) + { + return SBN_ERROR; + } + + SBN_UDP_Peer_t *PeerData = (SBN_UDP_Peer_t *)Peer->ModulePvt; + + if(!PeerData->ConnectedFlag) + { + CFE_EVS_SendEvent(SBN_UDP_DEBUG_EID, CFE_EVS_INFORMATION, + "CPU %d connected", *CpuIDPtr); + + PeerData->ConnectedFlag = TRUE; + + SBN_SendLocalSubsToPeer(Peer); + } + + return SBN_SUCCESS; +}/* end SBN_UDP_Recv */ + + +int SBN_UDP_ReportModuleStatus(SBN_ModuleStatusPacket_t *Packet) +{ + return SBN_NOT_IMPLEMENTED; +}/* end SBN_UDP_ReportModuleStatus */ + + +int SBN_UDP_ResetPeer(SBN_PeerInterface_t *Peer) +{ + return SBN_NOT_IMPLEMENTED; +}/* end SBN_UDP_ResetPeer */ + + +int SBN_UDP_UnloadNet(SBN_NetInterface_t *Net) +{ + SBN_UDP_Net_t *NetData = (SBN_UDP_Net_t *)Net->ModulePvt; + + close(NetData->Socket); + + int PeerIdx = 0; + for(PeerIdx = 0; PeerIdx < Net->PeerCnt; PeerIdx++) + { + SBN_UDP_UnloadPeer(&Net->Peers[PeerIdx]); + }/* end if */ + + return SBN_SUCCESS; +}/* end SBN_UDP_UnloadNet */ + +int SBN_UDP_UnloadPeer(SBN_PeerInterface_t *Peer) +{ + return SBN_SUCCESS; +}/* end SBN_UDP_UnloadPeer */ + + +void SBN_PQ_Output_Task(void) +{ + CFE_ES_RegisterChildTask(); + + SBN_PQ_ChannelHandler(&Channel); + + CFE_ES_ExitChildTask(); +} + + +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ +/* */ +/* Channel Handler */ +/* */ +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ +void SBN_PQ_ChannelHandler(PQ_ChannelData_t *Channel) +{ + int32 iStatus = CFE_SUCCESS; + uint32 msgSize = 0; + char *buffer; + + /* TODO add flag */ + while(1) + { + if(PQ_Channel_State(Channel) == PQ_CHANNEL_OPENED) + { + PQ_OutputQueue_t *chQueue = &Channel->OutputQueue; + + iStatus = OS_QueueGet( + chQueue->OSALQueueID, + &buffer, sizeof(buffer), &msgSize, 500); + + if(iStatus == OS_SUCCESS) + { + uint16 actualMessageSize = CFE_SB_GetTotalMsgLength((CFE_SB_MsgPtr_t)buffer); + CFE_SB_MsgId_t MsgID = CFE_SB_GetMsgId((CFE_SB_MsgPtr_t)buffer); + SBN_MsgType_t MsgType; + size_t BufSz = actualMessageSize + SBN_PACKED_HDR_SZ; + uint8 Buf[BufSz]; + int status = 0; + uint32 outputWord = 0; + + if(MsgID == SBN_SUB_MID || MsgID == SBN_ALLSUB_MID) + { + MsgType = SBN_SUBSCRIBE_MSG; + } + else if (MsgID == SBN_UNSUB_MID) + { + MsgType = SBN_UN_SUBSCRIBE_MSG; + } + else + { + MsgType = SBN_APP_MSG; + } + + SBN_PackMsg(&Buf, actualMessageSize, MsgType, CFE_PSP_GetProcessorId(), buffer); + + /* Mailbox specific */ + /******************************************************/ + unsigned int SizeInBytes = 0; + unsigned int SizeInWords = 0; + unsigned int Checksum = 0; + unsigned int i = 0; + + SizeInBytes = BufSz; + /* Ensure word boundary */ + SizeInBytes = (BufSz + (MAILBOX_WORD_SIZE - (BufSz % MAILBOX_WORD_SIZE))); + SizeInWords = SizeInBytes / MAILBOX_WORD_SIZE; + + //printf("BufSz %u\n", BufSz); + //printf("SizeInBytes %u\n", SizeInBytes); + //printf("SizeInWords %u\n", SizeInWords); + + if(SizeInWords + MAILBOX_HEADER_SIZE_WORDS > MAILBOX_MAX_BUFFER_SIZE_WORDS) + { + /* TODO update to event. */ + OS_printf("SBN_MailboxSend Send size too large %u bytes, %u words.\n", SizeInBytes, SizeInWords); + continue; + } + + /* Set CADU. */ + OutputBuffer[0] = MAILBOX_MSG_CADU; + /* Set size of the payload in words. */ + OutputBuffer[1] = SizeInWords; + /* Copy the payload. */ + memcpy(&OutputBuffer[2], &Buf[0], BufSz); + + Checksum = 0; + /* Checksum Calculation */ + for(i = 0; i < SizeInWords - 1; ++i) + { + Checksum += OutputBuffer[i + 2]; + } + /* Set the checksum. */ + OutputBuffer[SizeInWords + 2] = Checksum; + + /* Send payload size plus mailbox header size. */ + status = sendto(Socket, (const char*)&OutputBuffer[0], SizeInBytes + MAILBOX_HEADER_SIZE_BYTES, 0, (struct sockaddr *) &s_addr, + sizeof(s_addr)); + if (status < 0) + { + /* TODO */ + printf("sendto failed errno %d\n", errno); + iStatus = -1; + } + /******************************************************/ + printf("sent %u\n", SizeInBytes + MAILBOX_HEADER_SIZE_BYTES); + //status = sendto(Socket, (const char*)Buf, BufSz, 0, (struct sockaddr *) &s_addr, + //sizeof(s_addr)); + //if (status < 0) + //{ + ///* TODO */ + //printf("sendto failed errno %d\n", errno); + //iStatus = -1; + //} + + iStatus = CFE_ES_PutPoolBuf(Channel->MemPoolHandle, (uint32 *)buffer); + if(iStatus < 0) + { + (void) CFE_EVS_SendEvent(PQ_PUT_POOL_ERR_EID, CFE_EVS_ERROR, + "PutPoolBuf: error=0x%08lx", + (unsigned long)iStatus); + } + else + { + //OS_MutSemTake(TO_AppData.MutexID); + Channel->MemInUse -= iStatus; + //OS_MutSemGive(TO_AppData.MutexID); + + PQ_Channel_LockByRef(Channel); + chQueue->CurrentlyQueuedCnt--; + chQueue->SentCount++; + PQ_Channel_UnlockByRef(Channel); + } + + } + else if(iStatus == OS_QUEUE_TIMEOUT) + { + /* Do nothing. Just loop back around and check the guard. */ + } + else + { + CFE_EVS_SendEvent(PQ_OSQUEUE_GET_ERROR_EID, CFE_EVS_ERROR, + "Listener failed to pop message from queue. (%i).", (int)iStatus); + } + } + } +} + diff --git a/apps/sbn/modules/udp_pq/fsw/src/sbn_udp_if.h b/apps/sbn/modules/udp_pq/fsw/src/sbn_udp_if.h new file mode 100644 index 000000000..ba3b7b17b --- /dev/null +++ b/apps/sbn/modules/udp_pq/fsw/src/sbn_udp_if.h @@ -0,0 +1,65 @@ +#ifndef _sbn_udp_if_h_ +#define _sbn_udp_if_h_ + +#include "sbn_constants.h" +#include "sbn_interfaces.h" +#include "cfe.h" +/* network includes */ +#include +#include +#include +#include +#include +#include +#include + +/** + * UDP-specific message types. + */ +#define SBN_UDP_HEARTBEAT_MSG 0xA0 +#define SBN_UDP_ANNOUNCE_MSG 0xA1 + +int SBN_UDP_LoadNet(const char **Row, int FieldCount, + SBN_NetInterface_t *Net); + +int SBN_UDP_LoadPeer(const char **Row, int FieldCount, + SBN_PeerInterface_t *Peer); + +int SBN_UDP_InitNet(SBN_NetInterface_t *NetInterface); + +int SBN_UDP_InitPeer(SBN_PeerInterface_t *PeerInterface); + +int SBN_UDP_PollPeer(SBN_PeerInterface_t *PeerInterface); + +int SBN_UDP_Send(SBN_PeerInterface_t *Peer, SBN_MsgType_t MsgType, + SBN_MsgSz_t MsgSz, void *Payload); + +int SBN_UDP_Recv(SBN_NetInterface_t *Net, SBN_MsgType_t *MsgTypePtr, + SBN_MsgSz_t *MsgSzPtr, SBN_CpuID_t *CpuIDPtr, + void *PayloadBuffer); + +int SBN_UDP_ReportModuleStatus(SBN_ModuleStatusPacket_t *Packet); + +int SBN_UDP_ResetPeer(SBN_PeerInterface_t *PeerInterface); + +int SBN_UDP_UnloadNet(SBN_NetInterface_t *NetInterface); + +int SBN_UDP_UnloadPeer(SBN_PeerInterface_t *PeerInterface); + +SBN_IfOps_t SBN_UDP_Ops = +{ + SBN_UDP_LoadNet, + SBN_UDP_LoadPeer, + SBN_UDP_InitNet, + SBN_UDP_InitPeer, + SBN_UDP_PollPeer, + SBN_UDP_Send, + NULL, + SBN_UDP_Recv, + SBN_UDP_ReportModuleStatus, + SBN_UDP_ResetPeer, + SBN_UDP_UnloadNet, + SBN_UDP_UnloadPeer +}; + +#endif /* _sbn_udp_if_h_ */ diff --git a/apps/sbn/modules/udp_pq/fsw/src/sbn_udp_if_struct.h b/apps/sbn/modules/udp_pq/fsw/src/sbn_udp_if_struct.h new file mode 100644 index 000000000..6ee08b879 --- /dev/null +++ b/apps/sbn/modules/udp_pq/fsw/src/sbn_udp_if_struct.h @@ -0,0 +1,48 @@ +#ifndef _sbn_udp_if_struct_h_ +#define _sbn_udp_if_struct_h_ + +#include "sbn_constants.h" +#include "sbn_interfaces.h" +#include "sbn_platform_cfg.h" +#include "cfe.h" + +#define SBN_UDP_ITEMS_PER_FILE_LINE 2 + +/** + * \brief Number of seconds since last I've sent the peer a message when + * I send an empty heartbeat message. + */ +#define SBN_UDP_PEER_HEARTBEAT 5 + +/** + * \brief Number of seconds since I've last heard from the peer when I consider + * the peer connection to be dropped. + */ +#define SBN_UDP_PEER_TIMEOUT 10 + +/** + * \brief If we're not connected, send peer occasional messages to wake + * them up and tell them "I'm here". + */ +#define SBN_UDP_ANNOUNCE_TIMEOUT 10 + +typedef struct +{ + char Host[16]; + int Port; + + /** + * \brief TRUE if "connected" (I've sent subs, I have received messages + * in less than + * data). + */ + boolean ConnectedFlag; +} SBN_UDP_Peer_t; + +typedef struct +{ + char Host[16]; + int Port, Socket; +} SBN_UDP_Net_t; + +#endif /* _sbn_udp_if_struct_h_ */ diff --git a/config/obc/ppd/target/CMakeLists.txt b/config/obc/ppd/target/CMakeLists.txt index b3b142b98..be2ded509 100644 --- a/config/obc/ppd/target/CMakeLists.txt +++ b/config/obc/ppd/target/CMakeLists.txt @@ -151,12 +151,10 @@ buildliner_add_app( ${CMAKE_CURRENT_SOURCE_DIR}/apps/sbn/src/sbn_remap_tbl.c ) -#buildliner_add_app( - #sbn_udp - #DEFINITION ${PROJECT_SOURCE_DIR}/apps/sbn/modules/udp/fsw/for_build - #CONFIG_SOURCES - #${CMAKE_CURRENT_SOURCE_DIR}/apps/pq_lib/tables/pq_backup_cfg.c -#) +buildliner_add_app( + sbn_udp + DEFINITION ${PROJECT_SOURCE_DIR}/apps/sbn/modules/udp/fsw/for_build +) buildliner_add_app( sbn_uio_mbox diff --git a/config/obc/sitl/target/CMakeLists.txt b/config/obc/sitl/target/CMakeLists.txt index 5d64f1ab4..5a7523194 100644 --- a/config/obc/sitl/target/CMakeLists.txt +++ b/config/obc/sitl/target/CMakeLists.txt @@ -137,7 +137,4 @@ buildliner_add_app( buildliner_add_app( sbn_udp DEFINITION ${PROJECT_SOURCE_DIR}/apps/sbn/modules/udp/fsw/for_build - CONFIG_SOURCES - ${CMAKE_CURRENT_SOURCE_DIR}/apps/pq_lib/tables/pq_backup_cfg.c ) - From 33042808073eff9286df9a839a513ca7e8ec3479 Mon Sep 17 00:00:00 2001 From: lorenzo-gomez-windhover Date: Wed, 10 Feb 2021 10:14:10 -0600 Subject: [PATCH 083/370] -Added SendHK command to DS Main display --- .../Displays/Apps/DS/Main.opi | 56 +++++++++++++++++++ 1 file changed, 56 insertions(+) diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/DS/Main.opi b/core/base/tools/commander/workspace_template/Displays/Apps/DS/Main.opi index 304b04db7..e2c36a914 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/DS/Main.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/DS/Main.opi @@ -2580,4 +2580,60 @@ $(pv_value) 244 239 + + + + + + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 20 + ../../Resources/send.png + NoOp_19 + 0 + + + + + true + true + false + + + + SendHK + false + $(pv_name) +$(pv_value) + true + Action Button + 82 + 3224b3ef:1778cb22598:-7f83 + 378 + 6 + \ No newline at end of file From def66afd6b74addce0248434d83efdac940d5d07 Mon Sep 17 00:00:00 2001 From: lorenzo-gomez-windhover Date: Wed, 10 Feb 2021 10:21:54 -0600 Subject: [PATCH 084/370] -Updated auto-yamcs; juicer is on the develop branch --- core/tools/auto-yamcs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/tools/auto-yamcs b/core/tools/auto-yamcs index 33f8635d8..7799625c1 160000 --- a/core/tools/auto-yamcs +++ b/core/tools/auto-yamcs @@ -1 +1 @@ -Subproject commit 33f8635d83a5a17b54498bc190ce184eb26d4ec6 +Subproject commit 7799625c1770f057e1181cef3d7d911ccf3366ba From fdf06878f8bfe68b5beda5db23454501706298f0 Mon Sep 17 00:00:00 2001 From: cnalley Date: Wed, 10 Feb 2021 16:30:05 +0000 Subject: [PATCH 085/370] Update tables (flat files). --- apps/sbn/modules/uio_mbox/fsw/src/sbn_uio_mailbox_if.c | 3 +-- .../udp => cpd/target/apps/sbn/tables/mbox}/SbnModuleData.dat | 2 +- .../cpd/target/apps/sbn/tables/{udp => mbox}/SbnPeerData.dat | 0 .../target/apps/sbn/tables/uio_mbox}/SbnModuleData.dat | 0 .../target/apps/sbn/tables/{udp => uio_mbox}/SbnPeerData.dat | 0 5 files changed, 2 insertions(+), 3 deletions(-) rename config/obc/{ppd/target/apps/sbn/tables/udp => cpd/target/apps/sbn/tables/mbox}/SbnModuleData.dat (82%) rename config/obc/cpd/target/apps/sbn/tables/{udp => mbox}/SbnPeerData.dat (100%) rename config/obc/{cpd/target/apps/sbn/tables/udp => ppd/target/apps/sbn/tables/uio_mbox}/SbnModuleData.dat (100%) rename config/obc/ppd/target/apps/sbn/tables/{udp => uio_mbox}/SbnPeerData.dat (100%) diff --git a/apps/sbn/modules/uio_mbox/fsw/src/sbn_uio_mailbox_if.c b/apps/sbn/modules/uio_mbox/fsw/src/sbn_uio_mailbox_if.c index 524853aeb..4142367d0 100644 --- a/apps/sbn/modules/uio_mbox/fsw/src/sbn_uio_mailbox_if.c +++ b/apps/sbn/modules/uio_mbox/fsw/src/sbn_uio_mailbox_if.c @@ -94,7 +94,7 @@ bool MailboxEmptyError(void *instance) /* Blocking write */ int MailboxWrite(void *instance, const unsigned int *buffer, unsigned int size) { - int status = 0; + int status = size; bool isFull = false; unsigned int i = 0; @@ -105,7 +105,6 @@ int MailboxWrite(void *instance, const unsigned int *buffer, unsigned int size) OS_TaskDelay(SBN_MAILBOX_BLOCKING_DELAY); } uio_write(instance, MAILBOX_WRITE_REG, *buffer++); - status = size; } end_of_function: diff --git a/config/obc/ppd/target/apps/sbn/tables/udp/SbnModuleData.dat b/config/obc/cpd/target/apps/sbn/tables/mbox/SbnModuleData.dat similarity index 82% rename from config/obc/ppd/target/apps/sbn/tables/udp/SbnModuleData.dat rename to config/obc/cpd/target/apps/sbn/tables/mbox/SbnModuleData.dat index 9c5fca3ff..f2bdc9ddd 100644 --- a/config/obc/ppd/target/apps/sbn/tables/udp/SbnModuleData.dat +++ b/config/obc/cpd/target/apps/sbn/tables/mbox/SbnModuleData.dat @@ -1,4 +1,4 @@ -5, UIO_MBOX, /cf/apps/sbn_uio_mbox.so, SBN_UIO_Mbox_Ops; +5, UIO_MBOX, /cf/apps/sbn_mbox.so, SBN_Mbox_Ops; ! ! Format: ProtocolId, ModuleLocation, IFStructName diff --git a/config/obc/cpd/target/apps/sbn/tables/udp/SbnPeerData.dat b/config/obc/cpd/target/apps/sbn/tables/mbox/SbnPeerData.dat similarity index 100% rename from config/obc/cpd/target/apps/sbn/tables/udp/SbnPeerData.dat rename to config/obc/cpd/target/apps/sbn/tables/mbox/SbnPeerData.dat diff --git a/config/obc/cpd/target/apps/sbn/tables/udp/SbnModuleData.dat b/config/obc/ppd/target/apps/sbn/tables/uio_mbox/SbnModuleData.dat similarity index 100% rename from config/obc/cpd/target/apps/sbn/tables/udp/SbnModuleData.dat rename to config/obc/ppd/target/apps/sbn/tables/uio_mbox/SbnModuleData.dat diff --git a/config/obc/ppd/target/apps/sbn/tables/udp/SbnPeerData.dat b/config/obc/ppd/target/apps/sbn/tables/uio_mbox/SbnPeerData.dat similarity index 100% rename from config/obc/ppd/target/apps/sbn/tables/udp/SbnPeerData.dat rename to config/obc/ppd/target/apps/sbn/tables/uio_mbox/SbnPeerData.dat From d0f20c30774469254f3f24a6cfeec67321980468 Mon Sep 17 00:00:00 2001 From: cnalley Date: Wed, 10 Feb 2021 16:38:26 +0000 Subject: [PATCH 086/370] Fix msg ids after merge. --- config/shared/inc/msg_ids.h | 545 +----------------------------------- 1 file changed, 3 insertions(+), 542 deletions(-) diff --git a/config/shared/inc/msg_ids.h b/config/shared/inc/msg_ids.h index ad742fd2e..fd0d4d590 100644 --- a/config/shared/inc/msg_ids.h +++ b/config/shared/inc/msg_ids.h @@ -175,546 +175,6 @@ #define SCH_CMD_MID CMD_MSG( 154 ) #define SCH_SEND_HK_MID CMD_MSG( 155 ) #define SCH_UNUSED_MID (0) -<<<<<<< HEAD -#define SCH_DIAG_TLM_MID (0x09e7) -#define SCH_HK_TLM_MID (0x09e8) -//#define SCH_ACTIVITY_DONE_MID (0x09e9) - - -/* GOPRO */ -/* Range: 0x9f0 - 0x9ff */ -#define GOPRO_CMD_MID (0x19f0) -#define GOPRO_SEND_HK_MID (0x19f1) -#define GOPRO_HK_TLM_MID (0x09f2) - - -/* PX4 */ -/* Range: 0x9f0 - 0x9ff */ -#define PX4_ACTUATOR_ARMED_MID (0x0a05) -#define PX4_ACTUATOR_CONTROLS_0_MID (0x0a06) -#define PX4_ACTUATOR_CONTROLS_1_MID (0x0a5f) -#define PX4_ACTUATOR_CONTROLS_2_MID (0x0a5d) -#define PX4_ACTUATOR_CONTROLS_3_MID (0x0a5e) -#define PX4_ACTUATOR_DIRECT_MID (0x0a07) -#define PX4_ACTUATOR_OUTPUTS_MID (0x0a08) -#define PX4_ADC_REPORT_MID (0x0a09) -#define PX4_AIRSPEED_MID (0x0a0a) -#define PX4_ATT_POS_MOCAP_MID (0x0a0b) -#define PX4_BATTERY_STATUS_MID (0x0a0c) -#define PX4_CAMERA_TRIGGER_MID (0x0a0d) -#define PX4_COMMANDER_STATE_MID (0x0a0e) -#define PX4_CONTROL_STATE_MID (0x0a0f) -#define PX4_CPULOAD_MID (0x0a10) -#define PX4_DEBUG_KEY_VALUE_MID (0x0a11) -#define PX4_DIFFERENTIAL_PRESSURE_MID (0x0a12) -#define PX4_DISTANCE_SENSOR_MID (0x0a13) -#define PX4_FW_POS_CTRL_STATUS_MID (0x0a14) -#define PX4_FW_VIRTUAL_ATTITUDE_SETPOINT_MID (0x0a15) -#define PX4_FW_VIRTUAL_RATES_SETPOINT_MID (0x0a16) -#define PX4_EKF2_INNOVATIONS_MID (0x0a17) -#define PX4_EKF2_REPLAY_MID (0x0a18) -#define PX4_ESC_REPORT_MID (0x0a19) -#define PX4_ESC_STATUS_MID (0x0a1a) -#define PX4_ESTIMATOR_STATUS_MID (0x0a1b) -#define PX4_FENCE_MID (0x0a1c) -#define PX4_FENCE_VERTEX_MID (0x0a1d) -#define PX4_FILTERED_BOTTOM_FLOW_MID (0x0a1e) -#define PX4_FOLLOW_TARGET_MID (0x0a1f) -#define PX4_GEOFENCE_RESULT_MID (0x0a20) -#define PX4_GPS_DUMP_MID (0x0a21) -#define PX4_GPS_INJECT_DATA_MID (0x0a22) -#define PX4_HIL_SENSOR_MID (0x0a23) -#define PX4_HOME_POSITION_MID (0x0a24) -#define PX4_INPUT_RC_MID (0x0a25) -#define PX4_LED_CONTROL_MID (0x0a5c) -#define PX4_LOG_MESSAGE_MID (0x0a26) -#define PX4_MANUAL_CONTROL_SETPOINT_MID (0x0a27) -#define PX4_MAVLINK_LOG_MID (0x0a28) -#define PX4_MC_ATT_CTRL_STATUS_MID (0x0a29) -#define PX4_MC_VIRTUAL_ATTITUDE_SETPOINT_MID (0x0a2a) -#define PX4_MC_VIRTUAL_RATES_SETPOINT_MID (0x0a2b) -#define PX4_MISSION_MID (0x0a2c) -#define PX4_MISSION_RESULT_MID (0x0a2d) -#define PX4_MULTIROTOR_MOTOR_LIMITS_MID (0x0a2e) -#define PX4_OFFBOARD_CONTROL_MODE_MID (0x0a2f) -#define PX4_OPTICAL_FLOW_MID (0x0a30) -#define PX4_OUTPUT_PWM_MID (0x0a31) -#define PX4_PARAMETER_UPDATE_MID (0x0a32) -#define PX4_POSITION_SETPOINT_MID (0x0a33) -#define PX4_POSITION_SETPOINT_TRIPLET_MID (0x0a34) -#define PX4_PWM_INPUT_MID (0x0a35) -#define PX4_QSHELL_REQ_MID (0x0a36) -#define PX4_RC_CHANNELS_MID (0x0a37) -#define PX4_RC_PARAMETER_MAP_MID (0x0a38) -#define PX4_SAFETY_MID (0x0a39) -#define PX4_SATELLITE_INFO_MID (0x0a3a) -#define PX4_SENSOR_ACCEL_MID (0x0a3b) -#define PX4_SENSOR_BARO_MID (0x0a3c) -#define PX4_SENSOR_COMBINED_MID (0x0a3d) -#define PX4_SENSOR_GYRO_MID (0x0a3e) -#define PX4_SENSOR_MAG_MID (0x0a3f) -#define PX4_SERVORAIL_STATUS_MID (0x0a40) -#define PX4_SUBSYSTEM_INFO_MID (0x0a41) -#define PX4_SYSTEM_POWER_MID (0x0a42) -#define PX4_TECS_STATUS_MID (0x0a43) -#define PX4_TELEMETRY_STATUS_MID (0x0a44) -#define PX4_TEST_MOTOR_MID (0x0a45) -#define PX4_TIME_OFFSET_MID (0x0a46) -#define PX4_TRANSPONDER_REPORT_MID (0x0a47) -#define PX4_UAVCAN_PARAMETER_REQUEST_MID (0x0a48) -#define PX4_UAVCAN_PARAMETER_VALUE_MID (0x0a49) -#define PX4_VEHICLE_ATTITUDE_MID (0x0a4a) -#define PX4_VEHICLE_ATTITUDE_SETPOINT_MID (0x0a4b) -#define PX4_VEHICLE_COMMAND_ACK_MID (0x0a4c) -#define PX4_VEHICLE_COMMAND_MID (0x0a4d) -#define PX4_VEHICLE_CONTROL_MODE_MID (0x0a4e) -#define PX4_VEHICLE_FORCE_SETPOINT_MID (0x0a4f) -#define PX4_VEHICLE_GLOBAL_POSITION_MID (0x0a50) -#define PX4_VEHICLE_GLOBAL_VELOCITY_SETPOINT_MID (0x0a51) -#define PX4_VEHICLE_GPS_POSITION_MID (0x0a52) -#define PX4_VEHICLE_LAND_DETECTED_MID (0x0a53) -#define PX4_VEHICLE_LOCAL_POSITION_MID (0x0a54) -#define PX4_VEHICLE_LOCAL_POSITION_SETPOINT_MID (0x0a55) -#define PX4_VEHICLE_RATES_SETPOINT_MID (0x0a56) -#define PX4_VEHICLE_STATUS_MID (0x0a57) -#define PX4_VISION_POSITION_ESTIMATE_MID (0x0a58) -#define PX4_VTOL_VEHICLE_STATUS_MID (0x0a59) -#define PX4_WIND_ESTIMATE_MID (0x0a5a) -#define PX4_SENSOR_CORRECTION_MID (0x0a5b) - -/* VID */ -/* Range: 0xb20 - 0xb2f */ -#define VID_CMD_MID (0x1b40) -#define VID_SEND_HK_MID (0x1b41) -#define VID_HK_TLM_MID (0x0b42) -#define VID_GRAB_FRAME_MID (0x1b43) -#define VID_FWD_CAM_FRAME_MID (0x0b44) - -#define MPU9250_SEND_HK_MID (0x1b50) -#define MPU9250_HK_TLM_MID (0x0b51) -#define MPU9250_DIAG_TLM_MID (0x0b52) -#define MPU9250_CMD_MID (0x1b53) -#define MPU9250_MEASURE_MID (0x1b54) - -#define MS5611_SEND_HK_MID (0x1b60) -#define MS5611_HK_TLM_MID (0x0b61) -#define MS5611_DIAG_TLM_MID (0x0b62) -#define MS5611_CMD_MID (0x1b63) -#define MS5611_MEASURE_MID (0x1b64) - -#define NEOM8N_SEND_HK_MID (0x1b70) -#define NEOM8N_HK_TLM_MID (0x0b71) -#define NEOM8N_DIAG_TLM_MID (0x0b72) -#define NEOM8N_CMD_MID (0x1b73) -#define NEOM8N_MEASURE_MID (0x1b74) -#define NEOM8N_PROC_CMDS_MID (0x1b75) -#define NEOM8N_CAL_MEAS_MID (0x0b76) -#define NEOM8N_NAV_POSECEF_MID (0x0b77) -#define NEOM8N_NAV_POSLLH_MID (0x0b78) -#define NEOM8N_NAV_STATUS_MID (0x0b79) -#define NEOM8N_NAV_DOP_MID (0x0b7a) -#define NEOM8N_NAV_ATT_MID (0x0b7b) -#define NEOM8N_NAV_SOL_MID (0x0b7c) -#define NEOM8N_NAV_NAVPVT_MID (0x0b7d) -#define NEOM8N_NAV_ODO_MID (0x0b7e) -#define NEOM8N_NAV_RESETODO_MID (0x0b7f) -#define NEOM8N_NAV_VELECEF_MID (0x0b80) -#define NEOM8N_NAV_VELNED_MID (0x0b81) -#define NEOM8N_NAV_TIMEGPS_MID (0x0b82) -#define NEOM8N_NAV_TIMEUTC_MID (0x0b83) -#define NEOM8N_NAV_CLOCK_MID (0x0b84) -#define NEOM8N_NAV_TIMEGLO_MID (0x0b85) -#define NEOM8N_NAV_TIMEBDS_MID (0x0b86) -#define NEOM8N_NAV_TIMEGAL_MID (0x0b87) -#define NEOM8N_NAV_TIMELS_MID (0x0b88) -#define NEOM8N_NAV_SVINFO_MID (0x0b89) -#define NEOM8N_NAV_DGPS_MID (0x0b8a) -#define NEOM8N_NAV_SBAS_MID (0x0b8b) -#define NEOM8N_NAV_ORB_MID (0x0b8c) -#define NEOM8N_NAV_NAVSAT_MID (0x0b8d) -#define NEOM8N_NAV_GEOFENCE_MID (0x0b8e) -#define NEOM8N_NAV_AOPSTATUS_MID (0x0b8f) -#define NEOM8N_NAV_EOE_MID (0x0b90) -#define NEOM8N_MON_IO_MID (0x0b91) -#define NEOM8N_MON_VER_MID (0x0b92) -#define NEOM8N_MON_MSGPP_MID (0x0b93) -#define NEOM8N_MON_RXBUF_MID (0x0b94) -#define NEOM8N_MON_TXBUF_MID (0x0b95) -#define NEOM8N_MON_HW_MID (0x0b96) -#define NEOM8N_MON_HW2_MID (0x0b97) -#define NEOM8N_MON_RXR_MID (0x0b98) -#define NEOM8N_MON_PATCH_MID (0x0b99) -#define NEOM8N_MON_GNSS_MID (0x0b9a) -#define NEOM8N_MON_SMGR_MID (0x0b9b) - - -/* SBN */ -#define SBN_WAKEUP_MID (0x0ba0) -#define SBN_CMD_MID (0x1ba1) -#define SBN_TLM_MID (0x0ba2) -#define SBN_SUB_MID (0x0ba3) -#define SBN_ALLSUB_MID (0x0ba4) -#define SBN_UNSUB_MID (0x0ba5) - -/* ROS */ -/* Range: 0x900 - 0x90f */ -#define ROS_CMD_MID (0x1bb0) -#define ROS_SEND_HK_MID (0x1bb1) -#define ROS_HK_TLM_MID (0x0bb3) -#define ROS_SEND_TLM_MID (0x0bb4) - -/* ETA */ -/* Range: 0x900 - 0x90f */ -#define ETA_CMD_MID (0x1bc0) -#define ETA_SEND_HK_MID (0x1bc1) -#define ETA_DATA_TYPES_MID (0x0bc2) -#define ETA_HK_TLM_MID (0x0bc3) -#define ETA_SEND_TLM_MID (0x0bc4) - - -/* PX4UORB */ -/* Range: 0x900 - 0x90f */ -#define PX4UORB_CMD_MID (0x1bd4) -#define PX4UORB_SEND_HK_MID (0x1bd5) -#define PX4UORB_HK_TLM_MID (0x0bd6) -#define PX4UORB_READ_CMD_MID (0x1bd7) - - -/* PX4AEQ */ -/* Range: 0x900 - 0x90f */ -#define PX4AEQ_CMD_MID (0x1bd8) -#define PX4AEQ_SEND_HK_MID (0x1bd9) -#define PX4AEQ_HK_TLM_MID (0x0bda) -#define PX4AEQ_READ_CMD_MID (0x1bdb) - - -/* PX4SEN */ -/* Range: 0x900 - 0x90f */ -#define PX4SEN_CMD_MID (0x1bdc) -#define PX4SEN_SEND_HK_MID (0x1bdd) -#define PX4SEN_HK_TLM_MID (0x0bde) -#define PX4SEN_READ_CMD_MID (0x1bdf) - - -/* PX4SIM */ -/* Range: 0x900 - 0x90f */ -#define PX4SIM_CMD_MID (0x1be0) -#define PX4SIM_SEND_HK_MID (0x1be1) -#define PX4SIM_HK_TLM_MID (0x0be2) -#define PX4SIM_READ_CMD_MID (0x1be3) - - -/* PX4ASIM */ -/* Range: 0x900 - 0x90f */ -#define PX4ASIM_CMD_MID (0x1be4) -#define PX4ASIM_SEND_HK_MID (0x1be5) -#define PX4ASIM_HK_TLM_MID (0x0be6) -#define PX4ASIM_READ_CMD_MID (0x1be7) - - -/* PX4ADSM */ -/* Range: 0x900 - 0x90f */ -#define PX4ADSM_CMD_MID (0x1be8) -#define PX4ADSM_SEND_HK_MID (0x1be9) -#define PX4ADSM_HK_TLM_MID (0x0bea) -#define PX4ADSM_READ_CMD_MID (0x1beb) - - -/* PX4BASM */ -/* Range: 0x900 - 0x90f */ -#define PX4BASM_CMD_MID (0x1bf0) -#define PX4BASM_SEND_HK_MID (0x1bf1) -#define PX4BASM_HK_TLM_MID (0x0bf2) -#define PX4BASM_READ_CMD_MID (0x1bf3) - - -/* PX4DMAN */ -/* Range: 0x900 - 0x90f */ -#define PX4DMAN_CMD_MID (0x1bf8) -#define PX4DMAN_SEND_HK_MID (0x1bf9) -#define PX4DMAN_HK_TLM_MID (0x0bfa) -#define PX4DMAN_READ_CMD_MID (0x1bfb) - - -/* PX4GPSM */ -/* Range: 0x900 - 0x90f */ -#define PX4GPSM_CMD_MID (0x1bfc) -#define PX4GPSM_SEND_HK_MID (0x1bfd) -#define PX4GPSM_HK_TLM_MID (0x0bfe) -#define PX4GPSM_READ_CMD_MID (0x1bff) - -/* PX4GSIM */ -/* Range: 0x900 - 0x90f */ -#define PX4GSIM_CMD_MID (0x1c04) -#define PX4GSIM_SEND_HK_MID (0x1c05) -#define PX4GSIM_HK_TLM_MID (0x0c06) -#define PX4GSIM_READ_CMD_MID (0x1c07) - - -/* PX4LPEQ */ -/* Range: 0x900 - 0x90f */ -#define PX4LPEQ_CMD_MID (0x1c08) -#define PX4LPEQ_SEND_HK_MID (0x1c09) -#define PX4LPEQ_HK_TLM_MID (0x0c0a) -#define PX4LPEQ_READ_CMD_MID (0x1c0b) - - -/* PX4MAC */ -/* Range: 0x900 - 0x90f */ -#define PX4MAC_CMD_MID (0x1c0c) -#define PX4MAC_SEND_HK_MID (0x1c0d) -#define PX4MAC_HK_TLM_MID (0x0c0e) -#define PX4MAC_READ_CMD_MID (0x1c0f) - - -/* PX4MPC */ -/* Range: 0x900 - 0x90f */ -#define PX4MPC_CMD_MID (0x1c10) -#define PX4MPC_SEND_HK_MID (0x1c11) -#define PX4MPC_HK_TLM_MID (0x0c12) -#define PX4MPC_READ_CMD_MID (0x1c13) - - -/* PX4NAV */ -/* Range: 0x900 - 0x90f */ -#define PX4NAV_CMD_MID (0x1c14) -#define PX4NAV_SEND_HK_MID (0x1c15) -#define PX4NAV_HK_TLM_MID (0x0c16) -#define PX4NAV_READ_CMD_MID (0x1c17) - - -/* PX4POS */ -/* Range: 0x900 - 0x90f */ -#define PX4POS_CMD_MID (0x1c18) -#define PX4POS_SEND_HK_MID (0x1c19) -#define PX4POS_HK_TLM_MID (0x0c1a) -#define PX4POS_READ_CMD_MID (0x1c1b) - - -/* PX4RSIM */ -/* Range: 0x900 - 0x90f */ -#define PX4RSIM_CMD_MID (0x1c1c) -#define PX4RSIM_SEND_HK_MID (0x1c1d) -#define PX4RSIM_HK_TLM_MID (0x0c1e) -#define PX4RSIM_READ_CMD_MID (0x1c1f) - - -/* PX4TARM */ -/* Range: 0x900 - 0x90f */ -#define PX4TARM_CMD_MID (0x1c20) -#define PX4TARM_SEND_HK_MID (0x1c21) -#define PX4TARM_HK_TLM_MID (0x0c22) -#define PX4TARM_READ_CMD_MID (0x1c23) - - -/* PX4LDSM */ -/* Range: 0x900 - 0x90f */ -#define PX4LDSM_CMD_MID (0x1c24) -#define PX4LDSM_SEND_HK_MID (0x1c25) -#define PX4LDSM_HK_TLM_MID (0x0c26) -#define PX4LDSM_READ_CMD_MID (0x1c27) - -#define SBNPX4_WAKEUP_MID (0x0c28) - -/* EA */ -#define EA_CMD_MID (0x1c29) -#define EA_SEND_HK_MID (0x1c2a) -#define EA_HK_TLM_MID (0x0c2b) -#define EA_WAKEUP_MID (0x1c2c) -#define EA_OUT_DATA_MID (0x0c2d) -#define EA_PERFMON_MID (0x1c2e) - -/* VC */ -#define VC_HK_TLM_MID (0x0c39) -#define VC_SEND_HK_MID (0x1c3a) -#define VC_CMD_MID (0x1c3b) -#define VC_PROCESS_CMDS_MID (0x1c3c) - -/* AMC */ -#define AMC_CMD_MID (0x1c3d) -#define AMC_SEND_HK_MID (0x1c3e) -#define AMC_UPDATE_MOTORS_MID (0x1c3f) -#define AMC_OUT_DATA_MID (0x0c40) -#define AMC_HK_TLM_MID (0x0c41) - -/* MAC */ -#define MAC_CMD_MID (0x1c42) -#define MAC_SEND_HK_MID (0x1c43) -#define MAC_RUN_CONTROLLER_MID (0x1c44) -#define MAC_OUT_DATA_MID (0x0c45) -#define MAC_HK_TLM_MID (0x0c46) - -/* ULR */ -#define ULR_CMD_MID (0x1c47) -#define ULR_SEND_HK_MID (0x1c48) -#define ULR_MEASURE_MID (0x1c49) -#define ULR_OUT_DATA_MID (0x0c4a) -#define ULR_HK_TLM_MID (0x0c4b) - -/* RGBLED */ -#define RGBLED_CMD_MID (0x1c4c) -#define RGBLED_SEND_HK_MID (0x1c4d) -#define RGBLED_WAKEUP_MID (0x1c4e) -#define RGBLED_HK_TLM_MID (0x0c4f) - -/* GPS */ -#define GPS_CMD_MID (0x1c51) -#define GPS_SEND_HK_MID (0x1c52) -#define GPS_READ_SENSOR_MID (0x1c53) -#define GPS_HK_TLM_MID (0x0c54) - -/* SENS */ -#define SENS_HK_TLM_MID (0x0c55) -#define SENS_SEND_HK_MID (0x1c56) -#define SENS_WAKEUP_MID (0x1c57) -#define SENS_CMD_MID (0x1c58) - -/* QAE */ -#define QAE_HK_TLM_MID (0x0c59) -#define QAE_SEND_HK_MID (0x1c5a) -#define QAE_WAKEUP_MID (0x1c5b) -#define QAE_CMD_MID (0x1c5c) - -/* LD */ -#define LD_HK_TLM_MID (0x0c5d) -#define LD_SEND_HK_MID (0x1c5e) -#define LD_WAKEUP_MID (0x1c5f) -#define LD_CMD_MID (0x1c60) - -/* MPC */ -#define MPC_HK_TLM_MID (0x0c61) -#define MPC_SEND_HK_MID (0x1c62) -#define MPC_WAKEUP_MID (0x1c63) -#define MPC_CMD_MID (0x1c64) - -/* NAV */ -#define NAV_HK_TLM_MID (0x0c65) -#define NAV_SEND_HK_MID (0x1c66) -#define NAV_WAKEUP_MID (0x1c67) -#define NAV_CMD_MID (0x1c68) - -/* RCIN */ -#define RCIN_HK_TLM_MID (0x0c69) -#define RCIN_SEND_HK_MID (0x1c6a) -#define RCIN_WAKEUP_MID (0x1c6b) -#define RCIN_CMD_MID (0x1c6c) - -/* VM */ -#define VM_HK_TLM_MID (0x0c6d) -#define VM_SEND_HK_MID (0x1c6e) -#define VM_WAKEUP_MID (0x1c6f) -#define VM_CMD_MID (0x1c70) - -/* BAT */ -#define BAT_HK_TLM_MID (0x0c71) -#define BAT_SEND_HK_MID (0x1c72) -#define BAT_WAKEUP_MID (0x1c73) -#define BAT_CMD_MID (0x1c74) - -/* PE */ -#define PE_HK_TLM_MID (0x0c79) -#define PE_SEND_HK_MID (0x1c7a) -#define PE_WAKEUP_MID (0x1c7b) -#define PE_CMD_MID (0x1c7c) - -/* SIM */ -#define SIM_HK_TLM_MID (0x0c7d) -#define SIM_SEND_HK_MID (0x1c7e) -#define SIM_WAKEUP_MID (0x1c7f) -#define SIM_CMD_MID (0x1c80) - -/* MAVLINK */ -#define MAVLINK_CMD_MID (0x1c81) -#define MAVLINK_SEND_HK_MID (0x1c82) -#define MAVLINK_HK_TLM_MID (0x0c83) -#define MAVLINK_WAKEUP_MID (0x1c84) -#define MAVLINK_OUT_DATA_MID (0x1c85) -#define MAVLINK_PARAM_DATA_MID (0x1c86) -#define MAVLINK_REQUEST_PARAMS_MID (0x1c87) - -/* Individual GPS messages */ -#define GPS_NAV_DOP_MID (0x0c87) -#define GPS_NAV_NAVPVT_MID (0x0c88) -#define GPS_NAV_SVINFO_MID (0x0c89) -#define GPS_ACK_NAK_MID (0x0c90) -#define GPS_ACK_ACK_MID (0x0c91) -#define GPS_CFG_PRT_MID (0x0c92) -#define GPS_CFG_MSG_MID (0x0c93) -#define GPS_CFG_RATE_MID (0x0c94) -#define GPS_CFG_SBAS_MID (0x0c95) -#define GPS_CFG_NAV5_MID (0x0c96) -#define GPS_MON_HW_MID (0x0c97) - -/* HMC5883 */ -#define HMC5883_HK_TLM_MID (0x0ca1) -#define HMC5883_SEND_HK_MID (0x1ca2) -#define HMC5883_WAKEUP_MID (0x1ca3) -#define HMC5883_CMD_MID (0x1ca4) -#define HMC5883_DIAG_TLM_MID (0x0ca5) - -/* PRMLIB */ -#define PRMLIB_PARAM_UPDATED_MID (0x0ca6) - -/* LGC */ -#define LGC_HK_TLM_MID (0x0cb0) -#define LGC_SEND_HK_MID (0x1cb1) -#define LGC_WAKEUP_MID (0x1cb2) -#define LGC_CMD_MID (0x1cb3) - -/* MS5607 */ -#define MS5607_SEND_HK_MID (0x0cb5) -#define MS5607_HK_TLM_MID (0x0cb6) -#define MS5607_DIAG_TLM_MID (0x0cb7) -#define MS5607_CMD_MID (0x0cb8) -#define MS5607_MEASURE_MID (0x0cb9) - -/* AK8963 */ -#define AK8963_HK_TLM_MID (0x0cc1) -#define AK8963_SEND_HK_MID (0x1cc2) -#define AK8963_WAKEUP_MID (0x1cc3) -#define AK8963_CMD_MID (0x1cc4) -#define AK8963_DIAG_TLM_MID (0x0cc5) - -/* MPU6050 */ -#define MPU6050_SEND_HK_MID (0x1cd0) -#define MPU6050_HK_TLM_MID (0x0cd1) -#define MPU6050_DIAG_TLM_MID (0x0cd2) -#define MPU6050_CMD_MID (0x1cd3) -#define MPU6050_MEASURE_MID (0x1cd4) - -/* SONAR */ -#define SONAR_CMD_MID (0x1cd6) -#define SONAR_SEND_HK_MID (0x1cd7) -#define SONAR_MEASURE_MID (0x1cd8) -#define SONAR_OUT_DATA_MID (0x0cd9) -#define SONAR_HK_TLM_MID (0x0ce0) - -/* FLOW */ -#define FLOW_HK_TLM_MID (0x0ce1) -#define FLOW_SEND_HK_MID (0x1ce2) -#define FLOW_WAKEUP_MID (0x1ce3) -#define FLOW_CMD_MID (0x1ce4) -#define FLOW_FRAME_MID (0x0ce5) -#define FLOW_DIAG_TLM_MID (0x0ce6) - -/* MPC */ -#define MPC_DIAG_TLM_MID (0x0cea) - -/* LD */ -#define LD_DIAG_TLM_MID (0x0ceb) - - -#define VM_CONFIG_TLM_MID (0x0cec) - -/* PRM */ -#define PRM_CMD_MID (0x1ced) -#define PRM_SEND_HK_MID (0x1cee) -#define PRM_WAKEUP_MID (0x1cef) -#define PRM_OUT_DATA_MID (0x1cf0) -#define PRM_HK_TLM_MID (0x0cf1) - -#define SCH_ACTIVITY_DONE_MID (0x0f00) -======= #define SCH_DIAG_TLM_MID TLM_MSG( 156 ) #define SCH_HK_TLM_MID TLM_MSG( 157 ) #define SCH_ACTIVITY_DONE_MID CMD_MSG( 158 ) @@ -1006,7 +466,9 @@ #define SBN_WAKEUP_MID CMD_MSG( 437 ) #define SBN_CMD_MID CMD_MSG( 438 ) #define SBN_TLM_MID TLM_MSG( 439 ) - +#define SBN_SUB_MID TLM_MSG( 440 ) +#define SBN_ALLSUB_MID TLM_MSG( 441 ) +#define SBN_UNSUB_MID TLM_MSG( 442 ) /* SENS */ #define SENS_HK_TLM_MID TLM_MSG( 450 ) @@ -1060,6 +522,5 @@ #define VM_CMD_MID CMD_MSG( 490 ) #define VM_CONFIG_TLM_MID TLM_MSG( 491 ) ->>>>>>> origin/add_cpuid_to_message_ids #endif From 5d00c977b95fb51b539b0b423d61710a342b57d1 Mon Sep 17 00:00:00 2001 From: cnalley Date: Wed, 10 Feb 2021 16:49:15 +0000 Subject: [PATCH 087/370] Cleanup after merge. --- config/obc/sitl/inc/cfe_msgids.h | 52 +------------------ config/obc/sitl/inc/cfe_platform_cfg.h | 10 ++-- .../target/apps/sch/tables/sch_def_msgtbl.c | 6 +-- .../target/apps/sch/tables/sch_def_schtbl.c | 4 +- 4 files changed, 11 insertions(+), 61 deletions(-) diff --git a/config/obc/sitl/inc/cfe_msgids.h b/config/obc/sitl/inc/cfe_msgids.h index ba8d44d52..6d3549a12 100644 --- a/config/obc/sitl/inc/cfe_msgids.h +++ b/config/obc/sitl/inc/cfe_msgids.h @@ -1,58 +1,8 @@ #ifndef CFE_MSGIDS_H #define CFE_MSGIDS_H -/* -** Includes -*/ -#include "cfe_mission_cfg.h" +#include "msg_ids.h" -/* -** cFE Command Message Id's -*/ -#define CFE_EVS_CMD_MID CFE_CMD_MID_BASE_CPU2 + CFE_EVS_CMD_MSG /* 0x1801 */ - /* Message ID 0x1802 is available */ -#define CFE_SB_CMD_MID CFE_CMD_MID_BASE_CPU2 + CFE_SB_CMD_MSG /* 0x1803 */ -#define CFE_TBL_CMD_MID CFE_CMD_MID_BASE_CPU2 + CFE_TBL_CMD_MSG /* 0x1804 */ -#define CFE_TIME_CMD_MID CFE_CMD_MID_BASE_CPU2 + CFE_TIME_CMD_MSG /* 0x1805 */ -#define CFE_ES_CMD_MID CFE_CMD_MID_BASE_CPU2 + CFE_ES_CMD_MSG /* 0x1806 */ - -#define CFE_ES_SEND_HK_MID CFE_CMD_MID_BASE_CPU2 + CFE_ES_SEND_HK_MSG /* 0x1808 */ -#define CFE_EVS_SEND_HK_MID CFE_CMD_MID_BASE_CPU2 + CFE_EVS_SEND_HK_MSG /* 0x1809 */ - /* Message ID 0x180A is available */ -#define CFE_SB_SEND_HK_MID CFE_CMD_MID_BASE_CPU2 + CFE_SB_SEND_HK_MSG /* 0x180B */ -#define CFE_TBL_SEND_HK_MID CFE_CMD_MID_BASE_CPU2 + CFE_TBL_SEND_HK_MSG /* 0x180C */ -#define CFE_TIME_SEND_HK_MID CFE_CMD_MID_BASE_CPU2 + CFE_TIME_SEND_HK_MSG /* 0x180D */ - -#define CFE_TIME_TONE_CMD_MID CFE_CMD_MID_BASE_CPU2 + CFE_TIME_TONE_CMD_MSG /* 0x1810 */ -#define CFE_TIME_1HZ_CMD_MID CFE_CMD_MID_BASE_CPU2 + CFE_TIME_1HZ_CMD_MSG /* 0x1811 */ - - -/* -** cFE Global Command Message Id's -*/ -#define CFE_TIME_DATA_CMD_MID CFE_CMD_MID_BASE_GLOB + CFE_TIME_DATA_CMD_MSG /* 0x1860 */ -#define CFE_TIME_FAKE_CMD_MID CFE_CMD_MID_BASE_GLOB + CFE_TIME_FAKE_CMD_MSG /* 0x1861 */ -#define CFE_TIME_SEND_CMD_MID CFE_CMD_MID_BASE_GLOB + CFE_TIME_SEND_CMD_MSG /* 0x1862 */ - - -/* -** CFE Telemetry Message Id's -*/ -#define CFE_ES_HK_TLM_MID CFE_TLM_MID_BASE_CPU2 + CFE_ES_HK_TLM_MSG /* 0x0800 */ -#define CFE_EVS_HK_TLM_MID CFE_TLM_MID_BASE_CPU2 + CFE_EVS_HK_TLM_MSG /* 0x0801 */ - /* Message ID 0x0802 is available */ -#define CFE_SB_HK_TLM_MID CFE_TLM_MID_BASE_CPU2 + CFE_SB_HK_TLM_MSG /* 0x0803 */ -#define CFE_TBL_HK_TLM_MID CFE_TLM_MID_BASE_CPU2 + CFE_TBL_HK_TLM_MSG /* 0x0804 */ -#define CFE_TIME_HK_TLM_MID CFE_TLM_MID_BASE_CPU2 + CFE_TIME_HK_TLM_MSG /* 0x0805 */ -#define CFE_TIME_DIAG_TLM_MID CFE_TLM_MID_BASE_CPU2 + CFE_TIME_DIAG_TLM_MSG /* 0x0806 */ -#define CFE_EVS_EVENT_MSG_MID CFE_TLM_MID_BASE_CPU2 + CFE_EVS_EVENT_MSG_MSG /* 0x0808 */ -#define CFE_SB_STATS_TLM_MID CFE_TLM_MID_BASE_CPU2 + CFE_SB_STATS_TLM_MSG /* 0x080A */ -#define CFE_ES_APP_TLM_MID CFE_TLM_MID_BASE_CPU2 + CFE_ES_APP_TLM_MSG /* 0x080B */ -#define CFE_TBL_REG_TLM_MID CFE_TLM_MID_BASE_CPU2 + CFE_TBL_REG_TLM_MSG /* 0x080C */ -#define CFE_SB_ALLSUBS_TLM_MID CFE_TLM_MID_BASE_CPU2 + CFE_SB_ALLSUBS_TLM_MSG /* 0x080D */ -#define CFE_SB_ONESUB_TLM_MID CFE_TLM_MID_BASE_CPU2 + CFE_SB_ONESUB_TLM_MSG /* 0x080E */ -#define CFE_ES_SHELL_TLM_MID CFE_TLM_MID_BASE_CPU2 + CFE_ES_SHELL_TLM_MSG /* 0x080F */ -#define CFE_ES_MEMSTATS_TLM_MID CFE_TLM_MID_BASE_CPU2 + CFE_ES_MEMSTATS_TLM_MSG /* 0x0810 */ #endif diff --git a/config/obc/sitl/inc/cfe_platform_cfg.h b/config/obc/sitl/inc/cfe_platform_cfg.h index 957b5cc61..72105b5e9 100644 --- a/config/obc/sitl/inc/cfe_platform_cfg.h +++ b/config/obc/sitl/inc/cfe_platform_cfg.h @@ -6,6 +6,8 @@ */ #include "cfe_mission_cfg.h" +#define CFE_MSG_CPU_BASE (0x0200) + /* ** CPU Id for target Processor */ @@ -14,7 +16,7 @@ /* ** CPU Name for target Processor */ -#define CFE_CPU_NAME "CPU2" +#define CFE_CPU_NAME "CPD" /** ** \cfesbcfg Maximum Number of Unique Message IDs SB Routing Table can hold @@ -30,7 +32,7 @@ ** This parameter has a lower limit of 1 and an upper limit of 1024. ** */ -#define CFE_SB_MAX_MSG_IDS 256 +#define CFE_SB_MAX_MSG_IDS 1024 /** @@ -477,7 +479,7 @@ ** ** \par Limits ** There is a lower limit of 6 and an upper limit of 64 on this configuration -** paramater. The lower limit corresponds to the cFE internal applications. +** parameter. The lower limit corresponds to the cFE internal applications. */ #define CFE_ES_MAX_APPLICATIONS 64 @@ -560,7 +562,7 @@ ** \par Limits ** This parameter has a lower limit of 1 and an upper limit of 65535. */ -#define CFE_ES_MAX_GEN_COUNTERS 8 +#define CFE_ES_MAX_GEN_COUNTERS 64 /** diff --git a/config/obc/sitl/target/apps/sch/tables/sch_def_msgtbl.c b/config/obc/sitl/target/apps/sch/tables/sch_def_msgtbl.c index 8c5ce16ca..a46ba95d1 100644 --- a/config/obc/sitl/target/apps/sch/tables/sch_def_msgtbl.c +++ b/config/obc/sitl/target/apps/sch/tables/sch_def_msgtbl.c @@ -210,11 +210,11 @@ SCH_MessageEntry_t SCH_DefaultMessageTable[SCH_MAX_MESSAGES] = /* Command ID #84 */ { { SCH_FIX_HEADER(SCH_UNUSED_MID, 0, 0), 0 } }, /* Command ID #85 */ - { { SCH_FIX_HEADER(NEOM8N_SEND_HK_MID, 0xC000, 0x0001), 0x0000 } }, + { { SCH_FIX_HEADER(SCH_UNUSED_MID, 0, 0), 0 } }, /* Command ID #86 */ - { { SCH_FIX_HEADER(NEOM8N_MEASURE_MID, 0xC000, 0x0001), 0x0000 } }, + { { SCH_FIX_HEADER(SCH_UNUSED_MID, 0, 0), 0 } }, /* Command ID #87 */ - { { SCH_FIX_HEADER(NEOM8N_PROC_CMDS_MID, 0xC000, 0x0001), 0x0000 } }, + { { SCH_FIX_HEADER(SCH_UNUSED_MID, 0, 0), 0 } }, /* Command ID #88 */ { { SCH_FIX_HEADER(HMC5883_WAKEUP_MID, 0xC000, 0x0001), 0x0000 } }, /* Command ID #89 */ diff --git a/config/obc/sitl/target/apps/sch/tables/sch_def_schtbl.c b/config/obc/sitl/target/apps/sch/tables/sch_def_schtbl.c index 2a9584d96..ee85a6aa4 100644 --- a/config/obc/sitl/target/apps/sch/tables/sch_def_schtbl.c +++ b/config/obc/sitl/target/apps/sch/tables/sch_def_schtbl.c @@ -97,9 +97,7 @@ extern "C" { #define HMC5883_SEND_HK_MIDX 82 #define AK8963_SEND_HK_MIDX 83 #define AK8963_WAKEUP_MIDX 84 -#define NEOM8N_SEND_HK_MIDX 85 -#define NEOM8N_MEASURE_MIDX 86 -#define NEOM8N_PROC_CMDS_MIDX 87 + #define HMC5883_WAKEUP_MIDX 88 #define SENS_SEND_HK_MIDX 90 From 0a2aec24d7c15eafeb28e52928b9a90982c6518e Mon Sep 17 00:00:00 2001 From: lorenzo-gomez-windhover Date: Wed, 10 Feb 2021 11:06:08 -0600 Subject: [PATCH 088/370] -Typo in DS display --- .../workspace_template/Displays/Apps/DS/SetDestSize.opi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/DS/SetDestSize.opi b/core/base/tools/commander/workspace_template/Displays/Apps/DS/SetDestSize.opi index 40feed6af..fda649a0b 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/DS/SetDestSize.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/DS/SetDestSize.opi @@ -95,7 +95,7 @@ $(pv_value) importPackage(Packages.org.yamcs.studio.script); importPackage(Packages.org.yamcs.studio.data); -//FIXME: Very weird how I have to do "getNumber" for this one, but the others. +//FIXME: Very weird how I have to do "getNumber" for this one, but not the others. var file_index = VTypeHelper.getNumber(display.getWidget('FileTableIndex').getPropertyValue('pv_value')); var size = VTypeHelper.getDouble(display.getWidget('MaxFileSize').getPropertyValue('pv_value')); From 5881bfa205a3d6e3639a681bcc7db262a184a891 Mon Sep 17 00:00:00 2001 From: cnalley Date: Wed, 10 Feb 2021 19:51:08 +0000 Subject: [PATCH 089/370] Working UDP SBN configuration. --- apps/sbn/fsw/src/SbnPeerData.dat | 4 +- apps/sbn/modules/udp/fsw/src/sbn_udp_if.c | 6 ++- .../cpd/target/apps/sbn/src/sbn_remap_tbl.c | 18 +------ .../apps/sbn/tables/mbox/SbnPeerData.dat | 4 +- .../ppd/target/apps/sbn/src/sbn_remap_tbl.c | 17 ++---- .../apps/sbn/tables/uio_mbox/SbnPeerData.dat | 4 +- .../ppd/target/apps/to/tables/to_udp_cfg.c | 52 ++++++++++--------- .../sitl/target/apps/sbn/src/sbn_remap_tbl.c | 15 +----- .../apps/sbn/tables/udp/SbnModuleData.dat | 3 +- .../apps/sbn/tables/udp/SbnPeerData.dat | 4 +- config/shared/inc/msg_ids.h | 7 +-- 11 files changed, 52 insertions(+), 82 deletions(-) diff --git a/apps/sbn/fsw/src/SbnPeerData.dat b/apps/sbn/fsw/src/SbnPeerData.dat index 6173c3059..30092104b 100644 --- a/apps/sbn/fsw/src/SbnPeerData.dat +++ b/apps/sbn/fsw/src/SbnPeerData.dat @@ -1,5 +1,5 @@ -CPU1, 1, 1, 0x42, 0, 0, 127.0.0.1, 15820; -CPU2, 2, 1, 0x42, 0, 0, 127.0.0.1, 15820; +CPU1, 1, 1, 0x42, 0, 0, 0.0.0.0, 15820; +CPU2, 2, 1, 0x42, 0, 0, 0.0.0.0, 15820; ! ! The '!' is inserted after the last valid peer line, ! it is not a comment character. diff --git a/apps/sbn/modules/udp/fsw/src/sbn_udp_if.c b/apps/sbn/modules/udp/fsw/src/sbn_udp_if.c index 4a732cfb4..27560eb2e 100644 --- a/apps/sbn/modules/udp/fsw/src/sbn_udp_if.c +++ b/apps/sbn/modules/udp/fsw/src/sbn_udp_if.c @@ -167,8 +167,12 @@ int SBN_UDP_Send(SBN_PeerInterface_t *Peer, SBN_MsgType_t MsgType, s_addr.sin_addr.s_addr = inet_addr(PeerData->Host); s_addr.sin_port = htons(PeerData->Port); - sendto(NetData->Socket, &Buf, BufSz, 0, (struct sockaddr *) &s_addr, + int sent = sendto(NetData->Socket, &Buf, BufSz, 0, (struct sockaddr *) &s_addr, sizeof(s_addr)); + if(sent < 0) + { + OS_printf("sendto errno %u\n", errno); + } return SBN_SUCCESS; }/* end SBN_UDP_Send */ diff --git a/config/obc/cpd/target/apps/sbn/src/sbn_remap_tbl.c b/config/obc/cpd/target/apps/sbn/src/sbn_remap_tbl.c index fb09a156f..3edd83cfb 100644 --- a/config/obc/cpd/target/apps/sbn/src/sbn_remap_tbl.c +++ b/config/obc/cpd/target/apps/sbn/src/sbn_remap_tbl.c @@ -4,25 +4,11 @@ SBN_RemapTbl_t SBN_RemapTbl = { - SBN_REMAP_DEFAULT_IGNORE, /* Remap Default */ + SBN_REMAP_DEFAULT_SEND, /* Remap Default */ 0, /* number of entries, initialized at validation time */ { /* remap table */ /* {CPU_ID, from, to} and if to is 0x0000, filter rather than remap */ - {1, CFE_ES_HK_TLM_MID, CFE_ES_HK_TLM_MID}, - {1, CFE_EVS_HK_TLM_MID, CFE_EVS_HK_TLM_MID}, - {1, CFE_SB_HK_TLM_MID, CFE_SB_HK_TLM_MID}, - {1, CFE_TBL_HK_TLM_MID, CFE_TBL_HK_TLM_MID}, - {1, CFE_TIME_HK_TLM_MID, CFE_TIME_HK_TLM_MID}, - {1, CFE_TIME_DIAG_TLM_MID, CFE_TIME_DIAG_TLM_MID}, - {1, CFE_EVS_EVENT_MSG_MID, CFE_EVS_EVENT_MSG_MID}, - {1, CFE_SB_STATS_TLM_MID, CFE_SB_STATS_TLM_MID}, - {1, CFE_ES_APP_TLM_MID, CFE_ES_APP_TLM_MID}, - {1, CFE_TBL_REG_TLM_MID, CFE_TBL_REG_TLM_MID}, - /* SB allsubs and onesub */ - //{1, CFE_SB_ALLSUBS_TLM_MID, CFE_SB_ALLSUBS_TLM_MID}, - //{1, CFE_SB_ONESUB_TLM_MID, CFE_SB_ONESUB_TLM_MID}, - {1, CFE_ES_SHELL_TLM_MID, CFE_ES_SHELL_TLM_MID}, - {1, CFE_ES_MEMSTATS_TLM_MID, CFE_ES_MEMSTATS_TLM_MID} + {0, 0x0000, 0x0000} } };/* end SBN_RemapTbl */ diff --git a/config/obc/cpd/target/apps/sbn/tables/mbox/SbnPeerData.dat b/config/obc/cpd/target/apps/sbn/tables/mbox/SbnPeerData.dat index e39f67a9a..a5e93071f 100644 --- a/config/obc/cpd/target/apps/sbn/tables/mbox/SbnPeerData.dat +++ b/config/obc/cpd/target/apps/sbn/tables/mbox/SbnPeerData.dat @@ -1,5 +1,5 @@ -CPU1, 1, 5, 0x42, 0, 0, /dev/uio0, 0; -CPU2, 2, 5, 0x42, 0, 0, /dev/uio0, 0; +PPD, 1, 5, 0x42, 0, 0, /dev/uio0, 0; +CPD, 2, 5, 0x42, 0, 0, /dev/uio0, 0; ! ! The '!' is inserted after the last valid peer line, ! it is not a comment character. diff --git a/config/obc/ppd/target/apps/sbn/src/sbn_remap_tbl.c b/config/obc/ppd/target/apps/sbn/src/sbn_remap_tbl.c index 9d3362656..eddb5fa64 100644 --- a/config/obc/ppd/target/apps/sbn/src/sbn_remap_tbl.c +++ b/config/obc/ppd/target/apps/sbn/src/sbn_remap_tbl.c @@ -3,23 +3,12 @@ #include "msg_ids.h" SBN_RemapTbl_t SBN_RemapTbl = -{ - SBN_REMAP_DEFAULT_IGNORE, /* Remap Default */ +{ + SBN_REMAP_DEFAULT_SEND, /* Remap Default */ 0, /* number of entries, initialized at validation time */ { /* remap table */ /* {CPU_ID, from, to} and if to is 0x0000, filter rather than remap */ - {1, CFE_ES_HK_TLM_MID, CFE_ES_HK_TLM_MID}, - {1, CFE_EVS_HK_TLM_MID, CFE_EVS_HK_TLM_MID}, - {1, CFE_SB_HK_TLM_MID, CFE_SB_HK_TLM_MID}, - {1, CFE_TBL_HK_TLM_MID, CFE_TBL_HK_TLM_MID}, - {1, CFE_TIME_HK_TLM_MID, CFE_TIME_HK_TLM_MID}, - {1, CFE_TIME_DIAG_TLM_MID, CFE_TIME_DIAG_TLM_MID}, - {1, CFE_EVS_EVENT_MSG_MID, CFE_EVS_EVENT_MSG_MID}, - {1, CFE_SB_STATS_TLM_MID, CFE_SB_STATS_TLM_MID}, - {1, CFE_ES_APP_TLM_MID, CFE_ES_APP_TLM_MID}, - {1, CFE_TBL_REG_TLM_MID, CFE_TBL_REG_TLM_MID}, - {1, CFE_ES_SHELL_TLM_MID, CFE_ES_SHELL_TLM_MID}, - {1, CFE_ES_MEMSTATS_TLM_MID, CFE_ES_MEMSTATS_TLM_MID} + {0, 0x0000, 0x0000} } };/* end SBN_RemapTbl */ diff --git a/config/obc/ppd/target/apps/sbn/tables/uio_mbox/SbnPeerData.dat b/config/obc/ppd/target/apps/sbn/tables/uio_mbox/SbnPeerData.dat index e39f67a9a..a5e93071f 100644 --- a/config/obc/ppd/target/apps/sbn/tables/uio_mbox/SbnPeerData.dat +++ b/config/obc/ppd/target/apps/sbn/tables/uio_mbox/SbnPeerData.dat @@ -1,5 +1,5 @@ -CPU1, 1, 5, 0x42, 0, 0, /dev/uio0, 0; -CPU2, 2, 5, 0x42, 0, 0, /dev/uio0, 0; +PPD, 1, 5, 0x42, 0, 0, /dev/uio0, 0; +CPD, 2, 5, 0x42, 0, 0, /dev/uio0, 0; ! ! The '!' is inserted after the last valid peer line, ! it is not a comment character. diff --git a/config/obc/ppd/target/apps/to/tables/to_udp_cfg.c b/config/obc/ppd/target/apps/to/tables/to_udp_cfg.c index d9e9b0972..feb905a8a 100644 --- a/config/obc/ppd/target/apps/to/tables/to_udp_cfg.c +++ b/config/obc/ppd/target/apps/to/tables/to_udp_cfg.c @@ -35,18 +35,20 @@ static CFE_TBL_FileDef_t CFE_TBL_FileDef OS_USED = #define TO_PQUEUE_MEDIUM_IDX 3 #define TO_PQUEUE_LOW_IDX 4 -#define CFE_ES_HK_TLM_MID_CPU2 (CFE_TLM_MID_BASE_CPU2 + CFE_ES_HK_TLM_MSG) -#define CFE_EVS_HK_TLM_MID_CPU2 (CFE_TLM_MID_BASE_CPU2 + CFE_EVS_HK_TLM_MSG) -#define CFE_SB_HK_TLM_MID_CPU2 (CFE_TLM_MID_BASE_CPU2 + CFE_SB_HK_TLM_MSG) -#define CFE_TBL_HK_TLM_MID_CPU2 (CFE_TLM_MID_BASE_CPU2 + CFE_TBL_HK_TLM_MSG) -#define CFE_TIME_HK_TLM_MID_CPU2 (CFE_TLM_MID_BASE_CPU2 + CFE_TIME_HK_TLM_MSG) -#define CFE_TIME_DIAG_TLM_MID_CPU2 (CFE_TLM_MID_BASE_CPU2 + CFE_TIME_DIAG_TLM_MSG) -#define CFE_EVS_EVENT_MSG_MID_CPU2 (CFE_TLM_MID_BASE_CPU2 + CFE_EVS_EVENT_MSG_MSG) -#define CFE_SB_STATS_TLM_MID_CPU2 (CFE_TLM_MID_BASE_CPU2 + CFE_SB_STATS_TLM_MSG) -#define CFE_ES_APP_TLM_MID_CPU2 (CFE_TLM_MID_BASE_CPU2 + CFE_ES_APP_TLM_MSG) -#define CFE_TBL_REG_TLM_MID_CPU2 (CFE_TLM_MID_BASE_CPU2 + CFE_TBL_REG_TLM_MSG) -#define CFE_ES_SHELL_TLM_MID_CPU2 (CFE_TLM_MID_BASE_CPU2 + CFE_ES_SHELL_TLM_MSG) -#define CFE_ES_MEMSTATS_TLM_MID_CPU2 (CFE_TLM_MID_BASE_CPU2 + CFE_ES_MEMSTATS_TLM_MSG) +#define CPD_CPU_BASE (0x0200) + +#define CFE_ES_HK_TLM_MID_CPD (CPD_CPU_BASE + CFE_ES_HK_TLM_MID) +#define CFE_EVS_HK_TLM_MID_CPD (CPD_CPU_BASE + CFE_EVS_HK_TLM_MID) +#define CFE_SB_HK_TLM_MID_CPD (CPD_CPU_BASE + CFE_SB_HK_TLM_MID) +#define CFE_TBL_HK_TLM_MID_CPD (CPD_CPU_BASE + CFE_TBL_HK_TLM_MID) +#define CFE_TIME_HK_TLM_MID_CPD (CPD_CPU_BASE + CFE_TIME_HK_TLM_MID) +#define CFE_TIME_DIAG_TLM_MID_CPD (CPD_CPU_BASE + CFE_TIME_DIAG_TLM_MID) +#define CFE_EVS_EVENT_MSG_MID_CPD (CPD_CPU_BASE + CFE_EVS_EVENT_MSG_MID) +#define CFE_SB_STATS_TLM_MID_CPD (CPD_CPU_BASE + CFE_SB_STATS_TLM_MID) +#define CFE_ES_APP_TLM_MID_CPD (CPD_CPU_BASE + CFE_ES_APP_TLM_MID) +#define CFE_TBL_REG_TLM_MID_CPD (CPD_CPU_BASE + CFE_TBL_REG_TLM_MID) +#define CFE_ES_SHELL_TLM_MID_CPD (CPD_CPU_BASE + CFE_ES_SHELL_TLM_MID) +#define CFE_ES_MEMSTATS_TLM_MID_CPD (CPD_CPU_BASE + CFE_ES_MEMSTATS_TLM_MID) /** ** \brief Default TO config table data @@ -99,19 +101,19 @@ TO_ChannelTbl_t TO_ConfigTbl = {CFE_SB_ONESUB_TLM_MID, 1, TO_PQUEUE_MEDIUM_IDX}, {CFE_ES_SHELL_TLM_MID, 32, TO_PQUEUE_MEDIUM_IDX}, {CFE_ES_MEMSTATS_TLM_MID, 1, TO_PQUEUE_MEDIUM_IDX}, - /* CPU2 CFE Mids */ - {CFE_ES_HK_TLM_MID_CPU2, 1, TO_PQUEUE_MEDIUM_IDX}, - {CFE_EVS_HK_TLM_MID_CPU2, 1, TO_PQUEUE_MEDIUM_IDX}, - {CFE_SB_HK_TLM_MID_CPU2, 1, TO_PQUEUE_MEDIUM_IDX}, - {CFE_TBL_HK_TLM_MID_CPU2, 1, TO_PQUEUE_MEDIUM_IDX}, - {CFE_TIME_HK_TLM_MID_CPU2, 1, TO_PQUEUE_MEDIUM_IDX}, - {CFE_TIME_DIAG_TLM_MID_CPU2, 1, TO_PQUEUE_MEDIUM_IDX}, - {CFE_EVS_EVENT_MSG_MID_CPU2, 32, TO_PQUEUE_MEDIUM_IDX}, - {CFE_SB_STATS_TLM_MID_CPU2, 1, TO_PQUEUE_MEDIUM_IDX}, - {CFE_ES_APP_TLM_MID_CPU2, 1, TO_PQUEUE_MEDIUM_IDX}, - {CFE_TBL_REG_TLM_MID_CPU2, 1, TO_PQUEUE_MEDIUM_IDX}, - {CFE_ES_SHELL_TLM_MID_CPU2, 32, TO_PQUEUE_MEDIUM_IDX}, - {CFE_ES_MEMSTATS_TLM_MID_CPU2, 1, TO_PQUEUE_MEDIUM_IDX}, + /* CPD CFE Mids */ + {CFE_ES_HK_TLM_MID_CPD, 1, TO_PQUEUE_MEDIUM_IDX}, + {CFE_EVS_HK_TLM_MID_CPD, 1, TO_PQUEUE_MEDIUM_IDX}, + {CFE_SB_HK_TLM_MID_CPD, 1, TO_PQUEUE_MEDIUM_IDX}, + {CFE_TBL_HK_TLM_MID_CPD, 1, TO_PQUEUE_MEDIUM_IDX}, + {CFE_TIME_HK_TLM_MID_CPD, 1, TO_PQUEUE_MEDIUM_IDX}, + {CFE_TIME_DIAG_TLM_MID_CPD, 1, TO_PQUEUE_MEDIUM_IDX}, + {CFE_EVS_EVENT_MSG_MID_CPD, 32, TO_PQUEUE_MEDIUM_IDX}, + {CFE_SB_STATS_TLM_MID_CPD, 1, TO_PQUEUE_MEDIUM_IDX}, + {CFE_ES_APP_TLM_MID_CPD, 1, TO_PQUEUE_MEDIUM_IDX}, + {CFE_TBL_REG_TLM_MID_CPD, 1, TO_PQUEUE_MEDIUM_IDX}, + {CFE_ES_SHELL_TLM_MID_CPD, 32, TO_PQUEUE_MEDIUM_IDX}, + {CFE_ES_MEMSTATS_TLM_MID_CPD, 1, TO_PQUEUE_MEDIUM_IDX}, {CF_HK_TLM_MID, 1, TO_PQUEUE_MEDIUM_IDX}, {CF_TRANS_TLM_MID, 1, TO_PQUEUE_MEDIUM_IDX}, {CF_CONFIG_TLM_MID, 1, TO_PQUEUE_MEDIUM_IDX}, diff --git a/config/obc/sitl/target/apps/sbn/src/sbn_remap_tbl.c b/config/obc/sitl/target/apps/sbn/src/sbn_remap_tbl.c index 9d3362656..2c46ce253 100644 --- a/config/obc/sitl/target/apps/sbn/src/sbn_remap_tbl.c +++ b/config/obc/sitl/target/apps/sbn/src/sbn_remap_tbl.c @@ -4,22 +4,11 @@ SBN_RemapTbl_t SBN_RemapTbl = { - SBN_REMAP_DEFAULT_IGNORE, /* Remap Default */ + SBN_REMAP_DEFAULT_SEND, /* Remap Default */ 0, /* number of entries, initialized at validation time */ { /* remap table */ /* {CPU_ID, from, to} and if to is 0x0000, filter rather than remap */ - {1, CFE_ES_HK_TLM_MID, CFE_ES_HK_TLM_MID}, - {1, CFE_EVS_HK_TLM_MID, CFE_EVS_HK_TLM_MID}, - {1, CFE_SB_HK_TLM_MID, CFE_SB_HK_TLM_MID}, - {1, CFE_TBL_HK_TLM_MID, CFE_TBL_HK_TLM_MID}, - {1, CFE_TIME_HK_TLM_MID, CFE_TIME_HK_TLM_MID}, - {1, CFE_TIME_DIAG_TLM_MID, CFE_TIME_DIAG_TLM_MID}, - {1, CFE_EVS_EVENT_MSG_MID, CFE_EVS_EVENT_MSG_MID}, - {1, CFE_SB_STATS_TLM_MID, CFE_SB_STATS_TLM_MID}, - {1, CFE_ES_APP_TLM_MID, CFE_ES_APP_TLM_MID}, - {1, CFE_TBL_REG_TLM_MID, CFE_TBL_REG_TLM_MID}, - {1, CFE_ES_SHELL_TLM_MID, CFE_ES_SHELL_TLM_MID}, - {1, CFE_ES_MEMSTATS_TLM_MID, CFE_ES_MEMSTATS_TLM_MID} + {0, 0x0000, 0x0000} } };/* end SBN_RemapTbl */ diff --git a/config/obc/sitl/target/apps/sbn/tables/udp/SbnModuleData.dat b/config/obc/sitl/target/apps/sbn/tables/udp/SbnModuleData.dat index 9c5fca3ff..e34c95032 100644 --- a/config/obc/sitl/target/apps/sbn/tables/udp/SbnModuleData.dat +++ b/config/obc/sitl/target/apps/sbn/tables/udp/SbnModuleData.dat @@ -1,5 +1,4 @@ -5, UIO_MBOX, /cf/apps/sbn_uio_mbox.so, SBN_UIO_Mbox_Ops; - +1, UDP, /cf/apps/sbn_udp.so, SBN_UDP_Ops; ! ! Format: ProtocolId, ModuleLocation, IFStructName ! diff --git a/config/obc/sitl/target/apps/sbn/tables/udp/SbnPeerData.dat b/config/obc/sitl/target/apps/sbn/tables/udp/SbnPeerData.dat index e39f67a9a..88b192086 100644 --- a/config/obc/sitl/target/apps/sbn/tables/udp/SbnPeerData.dat +++ b/config/obc/sitl/target/apps/sbn/tables/udp/SbnPeerData.dat @@ -1,5 +1,5 @@ -CPU1, 1, 5, 0x42, 0, 0, /dev/uio0, 0; -CPU2, 2, 5, 0x42, 0, 0, /dev/uio0, 0; +PPD, 1, 1, 0x42, 0, 0, 127.0.0.1, 15820; +CPD, 2, 1, 0x42, 0, 0, 127.0.0.1, 15820; ! ! The '!' is inserted after the last valid peer line, ! it is not a comment character. diff --git a/config/shared/inc/msg_ids.h b/config/shared/inc/msg_ids.h index fd0d4d590..d982ec58a 100644 --- a/config/shared/inc/msg_ids.h +++ b/config/shared/inc/msg_ids.h @@ -466,9 +466,10 @@ #define SBN_WAKEUP_MID CMD_MSG( 437 ) #define SBN_CMD_MID CMD_MSG( 438 ) #define SBN_TLM_MID TLM_MSG( 439 ) -#define SBN_SUB_MID TLM_MSG( 440 ) -#define SBN_ALLSUB_MID TLM_MSG( 441 ) -#define SBN_UNSUB_MID TLM_MSG( 442 ) +/* These MIDs must match for SBN to SBN communication. */ +#define SBN_SUB_MID TLM_MSG( 440 ) - CFE_MSG_CPU_BASE +#define SBN_ALLSUB_MID TLM_MSG( 441 ) - CFE_MSG_CPU_BASE +#define SBN_UNSUB_MID TLM_MSG( 442 ) - CFE_MSG_CPU_BASE /* SENS */ #define SENS_HK_TLM_MID TLM_MSG( 450 ) From 6e849ce57061366bab184698d22b3860045b0958 Mon Sep 17 00:00:00 2001 From: cnalley Date: Wed, 10 Feb 2021 23:25:37 +0000 Subject: [PATCH 090/370] Cleanup. --- apps/pq_lib/fsw/src/pq_lib.c | 41 +++++++++---------- apps/pq_lib/fsw/src/pq_priority_queue.c | 4 +- .../sbn/modules/mbox/fsw/src/sbn_mailbox_if.c | 2 + .../uio_mbox/fsw/src/sbn_uio_mailbox_if.c | 2 + 4 files changed, 26 insertions(+), 23 deletions(-) diff --git a/apps/pq_lib/fsw/src/pq_lib.c b/apps/pq_lib/fsw/src/pq_lib.c index dbad3234d..df8231451 100644 --- a/apps/pq_lib/fsw/src/pq_lib.c +++ b/apps/pq_lib/fsw/src/pq_lib.c @@ -16,25 +16,25 @@ int32 PQ_LibInit(void) -int32 PQ_InitData(void) -{ - int32 status = CFE_SUCCESS; +//int32 PQ_InitData(void) +//{ + //int32 status = CFE_SUCCESS; - status = OS_MutSemCreate(&PQ_AppData.MutexID, "PQ_APP", 0); - if (status != OS_SUCCESS) - { - CFE_EVS_SendEvent(PQ_CREATE_APPDATA_MUTEX_ERR_EID, - CFE_EVS_ERROR, - "Init Data: Failed to create PQ_AppData mutex: 0x%08lX", - (unsigned long)status); + //status = OS_MutSemCreate(&PQ_AppData.MutexID, "PQ_APP", 0); + //if (status != OS_SUCCESS) + //{ + //CFE_EVS_SendEvent(PQ_CREATE_APPDATA_MUTEX_ERR_EID, + //CFE_EVS_ERROR, + //"Init Data: Failed to create PQ_AppData mutex: 0x%08lX", + //(unsigned long)status); - return status; - } + //return status; + //} - PQ_AppData.HkTlm.ChannelMaxMem = PQ_NUM_BYTES_IN_MEM_POOL; + //PQ_AppData.HkTlm.ChannelMaxMem = PQ_NUM_BYTES_IN_MEM_POOL; - return CFE_SUCCESS; -} + //return CFE_SUCCESS; +//} //int32 PQ_AppInit(void) @@ -45,10 +45,9 @@ int32 PQ_InitData(void) //} -int32 PQ_AppCleanup(void) -{ - //PQ_Channel_CleanupAll(); - OS_MutSemDelete(PQ_AppData.MutexID); +//int32 PQ_AppCleanup(void) +//{ + //OS_MutSemDelete(PQ_AppData.MutexID); - return CFE_SUCCESS; -} + //return CFE_SUCCESS; +//} diff --git a/apps/pq_lib/fsw/src/pq_priority_queue.c b/apps/pq_lib/fsw/src/pq_priority_queue.c index cf20c0075..f636d2999 100644 --- a/apps/pq_lib/fsw/src/pq_priority_queue.c +++ b/apps/pq_lib/fsw/src/pq_priority_queue.c @@ -87,8 +87,8 @@ int32 PQ_PriorityQueue_BuildupAll(PQ_ChannelData_t *channel) CFE_EVS_ERROR, "Channel is NULL."); return PQ_CHANNEL_PTR_NULL; - } - + } + if (NULL == channel->ConfigTblPtr) { (void) CFE_EVS_SendEvent(PQ_PQUEUE_MISSING_TBL_ERR_EID, diff --git a/apps/sbn/modules/mbox/fsw/src/sbn_mailbox_if.c b/apps/sbn/modules/mbox/fsw/src/sbn_mailbox_if.c index 01d5ee3ab..bf19b2b35 100644 --- a/apps/sbn/modules/mbox/fsw/src/sbn_mailbox_if.c +++ b/apps/sbn/modules/mbox/fsw/src/sbn_mailbox_if.c @@ -59,6 +59,8 @@ static int InitNet(SBN_NetInterface_t *Net) memset(&SBN_Mailbox_Data, 0x0, sizeof(SBN_UIO_Mailbox_Data)); + SBN_UIO_Mailbox_Data.HkTlm.ChannelMaxMem = PQ_NUM_BYTES_IN_MEM_POOL; + SBN_Mailbox_Data.MboxConfigPtr = XMbox_LookupConfig(XPAR_SED_MBOX_MAILBOX_CPD_TO_SED_IF_1_DEVICE_ID); if (SBN_Mailbox_Data.MboxConfigPtr == (XMbox_Config *)NULL) { diff --git a/apps/sbn/modules/uio_mbox/fsw/src/sbn_uio_mailbox_if.c b/apps/sbn/modules/uio_mbox/fsw/src/sbn_uio_mailbox_if.c index 4142367d0..1c67269ec 100644 --- a/apps/sbn/modules/uio_mbox/fsw/src/sbn_uio_mailbox_if.c +++ b/apps/sbn/modules/uio_mbox/fsw/src/sbn_uio_mailbox_if.c @@ -271,6 +271,8 @@ static int InitNet(SBN_NetInterface_t *Net) memset(&SBN_UIO_Mailbox_Data, 0x0, sizeof(SBN_UIO_Mailbox_Data)); + SBN_UIO_Mailbox_Data.HkTlm.ChannelMaxMem = PQ_NUM_BYTES_IN_MEM_POOL; + SBN_UIO_Mailbox_Data.Instance = InitDevice(MAILBOX_UIO_PATH); if(SBN_UIO_Mailbox_Data.Instance == NULL) { From ba147deb7b1dd134cad69ab9b3039b22ce4f83a3 Mon Sep 17 00:00:00 2001 From: lorenzo-gomez-windhover Date: Wed, 10 Feb 2021 17:33:34 -0600 Subject: [PATCH 091/370] -FM is verified. See notes. --- .../Displays/Apps/FM/Concat.opi | 391 +++ .../Displays/Apps/FM/CopyFile.opi | 391 +++ .../Displays/Apps/FM/CreateDir.opi | 193 ++ .../Displays/Apps/FM/Decompress.opi | 295 ++ .../Displays/Apps/FM/DeleteAllFiles.opi | 193 ++ .../Displays/Apps/FM/DeleteDir.opi | 193 ++ .../Displays/Apps/FM/DeleteFile.opi | 193 ++ .../Displays/Apps/FM/GetDirFile.opi | 393 +++ .../Displays/Apps/FM/GetDirPkt.opi | 393 +++ .../Displays/Apps/FM/GetFileInfo.opi | 937 ++++++ .../Displays/Apps/FM/GetFreeSpace.opi | 1781 ++++++++++++ .../Displays/Apps/FM/GetOpenFiles.opi | 2569 +++++++++++++++++ .../Displays/Apps/FM/Main.opi | 202 +- .../Displays/Apps/FM/MoveFile.opi | 391 +++ .../Displays/Apps/FM/RenameFile.opi | 295 ++ .../Displays/Apps/FM/SetPerm.opi | 293 ++ .../Displays/Apps/FM/SetTableState.opi | 301 ++ .../Displays/Apps/FM/scripts/NoOp.js | 4 - .../Displays/Apps/FM/scripts/ResetCounters.js | 4 - 19 files changed, 9285 insertions(+), 127 deletions(-) create mode 100644 core/base/tools/commander/workspace_template/Displays/Apps/FM/Concat.opi create mode 100644 core/base/tools/commander/workspace_template/Displays/Apps/FM/CopyFile.opi create mode 100644 core/base/tools/commander/workspace_template/Displays/Apps/FM/CreateDir.opi create mode 100644 core/base/tools/commander/workspace_template/Displays/Apps/FM/Decompress.opi create mode 100644 core/base/tools/commander/workspace_template/Displays/Apps/FM/DeleteAllFiles.opi create mode 100644 core/base/tools/commander/workspace_template/Displays/Apps/FM/DeleteDir.opi create mode 100644 core/base/tools/commander/workspace_template/Displays/Apps/FM/DeleteFile.opi create mode 100644 core/base/tools/commander/workspace_template/Displays/Apps/FM/GetDirFile.opi create mode 100644 core/base/tools/commander/workspace_template/Displays/Apps/FM/GetDirPkt.opi create mode 100644 core/base/tools/commander/workspace_template/Displays/Apps/FM/GetFileInfo.opi create mode 100644 core/base/tools/commander/workspace_template/Displays/Apps/FM/GetFreeSpace.opi create mode 100644 core/base/tools/commander/workspace_template/Displays/Apps/FM/GetOpenFiles.opi create mode 100644 core/base/tools/commander/workspace_template/Displays/Apps/FM/MoveFile.opi create mode 100644 core/base/tools/commander/workspace_template/Displays/Apps/FM/RenameFile.opi create mode 100644 core/base/tools/commander/workspace_template/Displays/Apps/FM/SetPerm.opi create mode 100644 core/base/tools/commander/workspace_template/Displays/Apps/FM/SetTableState.opi delete mode 100644 core/base/tools/commander/workspace_template/Displays/Apps/FM/scripts/NoOp.js delete mode 100644 core/base/tools/commander/workspace_template/Displays/Apps/FM/scripts/ResetCounters.js diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/FM/Concat.opi b/core/base/tools/commander/workspace_template/Displays/Apps/FM/Concat.opi new file mode 100644 index 000000000..758226c8a --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/Apps/FM/Concat.opi @@ -0,0 +1,391 @@ + + + + + false + -1 + -1 + + false + + + + 1.5.3 + + + + 6 + 400 + + true + + + + + true + true + true + true + true + Display + 400 + 3224b3ef:1778cb22598:-7c75 + -1 + -1 + + + + + + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 18 + ../../Resources/send.png + NoOp + 0 + + + + + true + true + false + + + + Concat + false + $(pv_name) +$(pv_value) + true + Action Button + 109 + 3224b3ef:1778cb22598:-7c6a + 84 + 168 + + + + false + false + false + + + + false + + + + 1 + 1 + + true + + Default + + false + + + + 0 + 25 + 0 + false + 1.7976931348623157E308 + -1.7976931348623157E308 + false + Source2 + 0 + true + loc://ConcatSource2 + + 0.0 + + + true + true + false + + + 0 + true + + + $(pv_name) +$(pv_value) + false + true + Text Input + 100 + 3224b3ef:1778cb22598:-7c66 + 132 + 81 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 1 + Label + + + true + true + false + + + Source2 + + true + 1 + true + Label + 80 + false + 3224b3ef:1778cb22598:-7c62 + 48 + 84 + + + + false + false + false + + + + false + + + + 1 + 1 + + true + + Default + + false + + + + 0 + 25 + 0 + false + 1.7976931348623157E308 + -1.7976931348623157E308 + false + Target + 0 + true + loc://ConcatTarget + + 0.0 + + + true + true + false + + + 0 + true + + + $(pv_name) +$(pv_value) + false + true + Text Input + 100 + 3224b3ef:1778cb22598:-7c57 + 132 + 114 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 1 + Label_1 + + + true + true + false + + + Target + + true + 1 + true + Label + 80 + false + 3224b3ef:1778cb22598:-7c56 + 48 + 114 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 1 + Label_2 + + + true + true + false + + + Source1 + + true + 1 + true + Label + 80 + false + 3224b3ef:1778cb22598:-7c47 + 48 + 51 + + + + false + false + false + + + + false + + + + 1 + 1 + + true + + Default + + false + + + + 0 + 25 + 0 + false + 1.7976931348623157E308 + -1.7976931348623157E308 + false + Source1 + 0 + true + loc://ConcatSource1 + + 0.0 + + + true + true + false + + + 0 + true + + + $(pv_name) +$(pv_value) + false + true + Text Input + 100 + 3224b3ef:1778cb22598:-7a20 + 132 + 48 + + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/FM/CopyFile.opi b/core/base/tools/commander/workspace_template/Displays/Apps/FM/CopyFile.opi new file mode 100644 index 000000000..7c9d309a1 --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/Apps/FM/CopyFile.opi @@ -0,0 +1,391 @@ + + + + + false + -1 + -1 + + false + + + + 1.5.3 + + + + 6 + 400 + + true + + + + + true + true + true + true + true + Display + 400 + 3224b3ef:1778cb22598:-7c75 + -1 + -1 + + + + + + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 18 + ../../Resources/send.png + NoOp + 0 + + + + + true + true + false + + + + CopyFile + false + $(pv_name) +$(pv_value) + true + Action Button + 109 + 3224b3ef:1778cb22598:-7c6a + 84 + 168 + + + + false + false + false + + + + false + + + + 1 + 1 + + true + + Default + + false + + + + 0 + 25 + 0 + false + 1.7976931348623157E308 + -1.7976931348623157E308 + false + Source + 0 + true + loc://CopyFileSource + + 0.0 + + + true + true + false + + + 0 + true + + + $(pv_name) +$(pv_value) + false + true + Text Input + 100 + 3224b3ef:1778cb22598:-7c66 + 132 + 81 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 1 + Label + + + true + true + false + + + Source + + true + 1 + true + Label + 80 + false + 3224b3ef:1778cb22598:-7c62 + 48 + 84 + + + + false + false + false + + + + false + + + + 1 + 1 + + true + + Default + + false + + + + 0 + 25 + 0 + false + 1.7976931348623157E308 + -1.7976931348623157E308 + false + Target + 0 + true + loc://CopyFileTarget + + 0.0 + + + true + true + false + + + 0 + true + + + $(pv_name) +$(pv_value) + false + true + Text Input + 100 + 3224b3ef:1778cb22598:-7c57 + 132 + 114 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 1 + Label_1 + + + true + true + false + + + Target + + true + 1 + true + Label + 80 + false + 3224b3ef:1778cb22598:-7c56 + 48 + 114 + + + + false + false + + + + true + + + + 1 + 1 + false + true + + Default + + false + + + + 0 + 25 + 1 + false + true + 1.7976931348623157E308 + -1.7976931348623157E308 + Overwrite + 10.0 + 3 + false + loc://CopyFileOverWrite + + + + true + true + false + + + true + 1.0 + $(pv_name) +$(pv_value) + false + 1 + true + Spinner + 100 + 3224b3ef:1778cb22598:-7c4f + 132 + 48 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 1 + Label_2 + + + true + true + false + + + Overwrite + + true + 1 + true + Label + 80 + false + 3224b3ef:1778cb22598:-7c47 + 48 + 51 + + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/FM/CreateDir.opi b/core/base/tools/commander/workspace_template/Displays/Apps/FM/CreateDir.opi new file mode 100644 index 000000000..a71aa35c6 --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/Apps/FM/CreateDir.opi @@ -0,0 +1,193 @@ + + + + + false + -1 + -1 + + false + + + + 1.5.3 + + + + 6 + 400 + + true + + + + + true + true + true + true + true + Display + 400 + 3224b3ef:1778cb22598:-7c75 + -1 + -1 + + + + + + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 18 + ../../Resources/send.png + NoOp + 0 + + + + + true + true + false + + + + CreateDir + false + $(pv_name) +$(pv_value) + true + Action Button + 109 + 3224b3ef:1778cb22598:-7c6a + 84 + 78 + + + + false + false + false + + + + false + + + + 1 + 1 + + true + + Default + + false + + + + 0 + 25 + 0 + false + 1.7976931348623157E308 + -1.7976931348623157E308 + false + Directory + 0 + true + loc://CreateDirectoryDirectory + + 0.0 + + + true + true + false + + + 0 + true + + + $(pv_name) +$(pv_value) + false + true + Text Input + 100 + 3224b3ef:1778cb22598:-7c57 + 120 + 36 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 1 + Label_1 + + + true + true + false + + + Directory + + true + 1 + true + Label + 80 + false + 3224b3ef:1778cb22598:-7c56 + 36 + 36 + + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/FM/Decompress.opi b/core/base/tools/commander/workspace_template/Displays/Apps/FM/Decompress.opi new file mode 100644 index 000000000..6aa6310d0 --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/Apps/FM/Decompress.opi @@ -0,0 +1,295 @@ + + + + + false + -1 + -1 + + false + + + + 1.5.3 + + + + 6 + 400 + + true + + + + + true + true + true + true + true + Display + 400 + 3224b3ef:1778cb22598:-7c75 + -1 + -1 + + + + + + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 18 + ../../Resources/send.png + NoOp + 0 + + + + + true + true + false + + + + Decompress + false + $(pv_name) +$(pv_value) + true + Action Button + 109 + 3224b3ef:1778cb22598:-7c6a + 102 + 132 + + + + false + false + false + + + + false + + + + 1 + 1 + + true + + Default + + false + + + + 0 + 25 + 0 + false + 1.7976931348623157E308 + -1.7976931348623157E308 + false + Source + 0 + true + loc://DecompressSource + + 0.0 + + + true + true + false + + + 0 + true + + + $(pv_name) +$(pv_value) + false + true + Text Input + 100 + 3224b3ef:1778cb22598:-7c66 + 138 + 45 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 1 + Label + + + true + true + false + + + Source + + true + 1 + true + Label + 80 + false + 3224b3ef:1778cb22598:-7c62 + 54 + 48 + + + + false + false + false + + + + false + + + + 1 + 1 + + true + + Default + + false + + + + 0 + 25 + 0 + false + 1.7976931348623157E308 + -1.7976931348623157E308 + false + Target + 0 + true + loc://DecompressTarget + + 0.0 + + + true + true + false + + + 0 + true + + + $(pv_name) +$(pv_value) + false + true + Text Input + 100 + 3224b3ef:1778cb22598:-7c57 + 138 + 78 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 1 + Label_1 + + + true + true + false + + + Target + + true + 1 + true + Label + 80 + false + 3224b3ef:1778cb22598:-7c56 + 54 + 78 + + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/FM/DeleteAllFiles.opi b/core/base/tools/commander/workspace_template/Displays/Apps/FM/DeleteAllFiles.opi new file mode 100644 index 000000000..95052ad45 --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/Apps/FM/DeleteAllFiles.opi @@ -0,0 +1,193 @@ + + + + + false + -1 + -1 + + false + + + + 1.5.3 + + + + 6 + 400 + + true + + + + + true + true + true + true + true + Display + 400 + 3224b3ef:1778cb22598:-7c75 + -1 + -1 + + + + + + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 18 + ../../Resources/send.png + NoOp + 0 + + + + + true + true + false + + + + DeleteAll + false + $(pv_name) +$(pv_value) + true + Action Button + 109 + 3224b3ef:1778cb22598:-7c6a + 84 + 78 + + + + false + false + false + + + + false + + + + 1 + 1 + + true + + Default + + false + + + + 0 + 25 + 0 + false + 1.7976931348623157E308 + -1.7976931348623157E308 + false + Directory + 0 + true + loc://DeleteAllFilesDirectory + + 0.0 + + + true + true + false + + + 0 + true + + + $(pv_name) +$(pv_value) + false + true + Text Input + 100 + 3224b3ef:1778cb22598:-7c57 + 120 + 36 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 1 + Label_1 + + + true + true + false + + + Directory + + true + 1 + true + Label + 80 + false + 3224b3ef:1778cb22598:-7c56 + 36 + 36 + + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/FM/DeleteDir.opi b/core/base/tools/commander/workspace_template/Displays/Apps/FM/DeleteDir.opi new file mode 100644 index 000000000..61efc8f94 --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/Apps/FM/DeleteDir.opi @@ -0,0 +1,193 @@ + + + + + false + -1 + -1 + + false + + + + 1.5.3 + + + + 6 + 400 + + true + + + + + true + true + true + true + true + Display + 400 + 3224b3ef:1778cb22598:-7c75 + -1 + -1 + + + + + + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 18 + ../../Resources/send.png + NoOp + 0 + + + + + true + true + false + + + + DeleteDir + false + $(pv_name) +$(pv_value) + true + Action Button + 109 + 3224b3ef:1778cb22598:-7c6a + 84 + 78 + + + + false + false + false + + + + false + + + + 1 + 1 + + true + + Default + + false + + + + 0 + 25 + 0 + false + 1.7976931348623157E308 + -1.7976931348623157E308 + false + Directory + 0 + true + loc://DeleteDirectoryDirectory + + 0.0 + + + true + true + false + + + 0 + true + + + $(pv_name) +$(pv_value) + false + true + Text Input + 100 + 3224b3ef:1778cb22598:-7c57 + 120 + 36 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 1 + Label_1 + + + true + true + false + + + Directory + + true + 1 + true + Label + 80 + false + 3224b3ef:1778cb22598:-7c56 + 36 + 36 + + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/FM/DeleteFile.opi b/core/base/tools/commander/workspace_template/Displays/Apps/FM/DeleteFile.opi new file mode 100644 index 000000000..5959de8ea --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/Apps/FM/DeleteFile.opi @@ -0,0 +1,193 @@ + + + + + false + -1 + -1 + + false + + + + 1.5.3 + + + + 6 + 400 + + true + + + + + true + true + true + true + true + Display + 400 + 3224b3ef:1778cb22598:-7c75 + -1 + -1 + + + + + + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 18 + ../../Resources/send.png + NoOp + 0 + + + + + true + true + false + + + + DeleteFile + false + $(pv_name) +$(pv_value) + true + Action Button + 109 + 3224b3ef:1778cb22598:-7c6a + 84 + 78 + + + + false + false + false + + + + false + + + + 1 + 1 + + true + + Default + + false + + + + 0 + 25 + 0 + false + 1.7976931348623157E308 + -1.7976931348623157E308 + false + Filename + 0 + true + loc://DeleteFileFilename + + 0.0 + + + true + true + false + + + 0 + true + + + $(pv_name) +$(pv_value) + false + true + Text Input + 100 + 3224b3ef:1778cb22598:-7c57 + 120 + 36 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 1 + Label_1 + + + true + true + false + + + Filename + + true + 1 + true + Label + 80 + false + 3224b3ef:1778cb22598:-7c56 + 36 + 36 + + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/FM/GetDirFile.opi b/core/base/tools/commander/workspace_template/Displays/Apps/FM/GetDirFile.opi new file mode 100644 index 000000000..4465c0a38 --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/Apps/FM/GetDirFile.opi @@ -0,0 +1,393 @@ + + + + + false + -1 + -1 + + false + + + + 1.5.3 + + + + 6 + 600 + + true + + + + + true + true + true + true + true + Display + 800 + 3224b3ef:1778cb22598:-7099 + -1 + -1 + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label + + + true + true + false + + + Directory + + true + 1 + true + Label + 91 + false + 3224b3ef:1778cb22598:-7094 + 54 + 54 + + + + false + false + false + + + + false + + + + 1 + 1 + + true + + Default + + false + + + + 0 + 25 + 0 + false + Infinity + -Infinity + false + Directory + 0 + true + loc://GetDirFileDirectory + + 0.0 + + + true + true + false + + + 0 + true + + + $(pv_name) +$(pv_value) + false + true + Text Input + 100 + 3224b3ef:1778cb22598:-7090 + 168 + 51 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_1 + + + true + true + false + + + Filename + + true + 1 + true + Label + 91 + false + 3224b3ef:1778cb22598:-7085 + 54 + 87 + + + + false + false + false + + + + false + + + + 1 + 1 + + true + + Default + + false + + + + 0 + 25 + 0 + false + 1.7976931348623157E308 + -1.7976931348623157E308 + false + Filename + 0 + true + loc://GetDirFileFilename + + 0.0 + + + true + true + false + + + 0 + true + + + $(pv_name) +$(pv_value) + false + true + Text Input + 100 + 3224b3ef:1778cb22598:-7084 + 168 + 84 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_2 + + + true + true + false + + + GetSizeTimeMode + + true + 1 + true + Label + 121 + false + 3224b3ef:1778cb22598:-707d + 24 + 117 + + + + + + + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 18 + ../../Resources/send.png + NoOp + 0 + + + + + true + true + false + + + + GetDirFile + false + $(pv_name) +$(pv_value) + true + Action Button + 109 + 3224b3ef:1778cb22598:-706b + 120 + 186 + + + + false + false + + + + true + + + + 1 + 1 + false + true + + Default + + false + + + + 0 + 25 + 1 + false + true + Infinity + -Infinity + GetSizeTimeMode + 10.0 + 3 + false + loc://GetDirFileGetSizeTimeMode<VDouble> + + + + true + true + false + + + true + 1.0 + $(pv_name) +$(pv_value) + false + 1 + true + Spinner + 100 + 3224b3ef:1778cb22598:-705f + 168 + 117 + + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/FM/GetDirPkt.opi b/core/base/tools/commander/workspace_template/Displays/Apps/FM/GetDirPkt.opi new file mode 100644 index 000000000..7f66f9cc9 --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/Apps/FM/GetDirPkt.opi @@ -0,0 +1,393 @@ + + + + + false + -1 + -1 + + false + + + + 1.5.3 + + + + 6 + 600 + + true + + + + + true + true + true + true + true + Display + 800 + 3224b3ef:1778cb22598:-7099 + -1 + -1 + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label + + + true + true + false + + + Directory + + true + 1 + true + Label + 91 + false + 3224b3ef:1778cb22598:-7094 + 54 + 54 + + + + false + false + false + + + + false + + + + 1 + 1 + + true + + Default + + false + + + + 0 + 25 + 0 + false + 1.7976931348623157E308 + -1.7976931348623157E308 + false + Directory + 0 + true + loc://GetDirPktDirectory + + 0.0 + + + true + true + false + + + 0 + true + + + $(pv_name) +$(pv_value) + false + true + Text Input + 100 + 3224b3ef:1778cb22598:-7090 + 168 + 51 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_1 + + + true + true + false + + + Filename + + true + 1 + true + Label + 91 + false + 3224b3ef:1778cb22598:-7085 + 54 + 87 + + + + false + false + false + + + + false + + + + 1 + 1 + + true + + Default + + false + + + + 0 + 25 + 0 + false + 1.7976931348623157E308 + -1.7976931348623157E308 + false + Filename + 0 + true + loc://GetDirPktFileFilename + + 0.0 + + + true + true + false + + + 0 + true + + + $(pv_name) +$(pv_value) + false + true + Text Input + 100 + 3224b3ef:1778cb22598:-7084 + 168 + 84 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_2 + + + true + true + false + + + GetSizeTimeMode + + true + 1 + true + Label + 121 + false + 3224b3ef:1778cb22598:-707d + 24 + 117 + + + + + + + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 18 + ../../Resources/send.png + NoOp + 0 + + + + + true + true + false + + + + GetDirPkt + false + $(pv_name) +$(pv_value) + true + Action Button + 109 + 3224b3ef:1778cb22598:-706b + 120 + 186 + + + + false + false + + + + true + + + + 1 + 1 + false + true + + Default + + false + + + + 0 + 25 + 1 + false + true + 1.7976931348623157E308 + -1.7976931348623157E308 + GetSizeTimeMode + 10.0 + 3 + false + loc://GetDirPktGetSizeTimeMode<VDouble> + + + + true + true + false + + + true + 1.0 + $(pv_name) +$(pv_value) + false + 1 + true + Spinner + 100 + 3224b3ef:1778cb22598:-705f + 168 + 117 + + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/FM/GetFileInfo.opi b/core/base/tools/commander/workspace_template/Displays/Apps/FM/GetFileInfo.opi new file mode 100644 index 000000000..dec73a4b6 --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/Apps/FM/GetFileInfo.opi @@ -0,0 +1,937 @@ + + + + + false + -1 + -1 + + false + + + + 1.5.3 + + + + 6 + 600 + + true + + + + + true + true + true + true + true + Display + 800 + 3224b3ef:1778cb22598:-7447 + -1 + -1 + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update + 0 + true + /cfs/fm/FM_FileInfoPkt_t.FileStatus + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 175 + false + 3224b3ef:1778cb22598:-7442 + 186 + 186 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label + + + true + true + false + + + FileStatus: + + true + 1 + true + Label + 121 + false + 3224b3ef:1778cb22598:-743e + 54 + 186 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_1 + 0 + true + /cfs/fm/FM_FileInfoPkt_t.CRC_Computed + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 175 + false + 3224b3ef:1778cb22598:-7433 + 186 + 210 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_1 + + + true + true + false + + + CRC_Computed: + + true + 1 + true + Label + 121 + false + 3224b3ef:1778cb22598:-7432 + 48 + 210 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_2 + 0 + true + /cfs/fm/FM_FileInfoPkt_t.CRC + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 175 + false + 3224b3ef:1778cb22598:-7410 + 186 + 234 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_2 + + + true + true + false + + + CRC: + + true + 1 + true + Label + 121 + false + 3224b3ef:1778cb22598:-740f + 48 + 234 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_3 + 0 + true + /cfs/fm/FM_FileInfoPkt_t.FileSize + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 175 + false + 3224b3ef:1778cb22598:-73e1 + 186 + 258 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_3 + + + true + true + false + + + FileSize: + + true + 1 + true + Label + 121 + false + 3224b3ef:1778cb22598:-73e0 + 48 + 258 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_4 + 0 + true + /cfs/fm/FM_FileInfoPkt_t.LastModifiedTime + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 175 + false + 3224b3ef:1778cb22598:-73cc + 186 + 282 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_4 + + + true + true + false + + + LastModifiedTime: + + true + 1 + true + Label + 121 + false + 3224b3ef:1778cb22598:-73cb + 48 + 282 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_5 + 0 + true + /cfs/fm/FM_FileInfoPkt_t.Mode + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 175 + false + 3224b3ef:1778cb22598:-73aa + 186 + 306 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_5 + + + true + true + false + + + Mode: + + true + 1 + true + Label + 121 + false + 3224b3ef:1778cb22598:-73a9 + 48 + 306 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_6 + 0 + true + /cfs/fm/FM_FileInfoPkt_t.Filename + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 175 + false + 3224b3ef:1778cb22598:-739c + 186 + 330 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_6 + + + true + true + false + + + Filename: + + true + 1 + true + Label + 121 + false + 3224b3ef:1778cb22598:-739b + 48 + 330 + + + + + + + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 18 + ../../Resources/send.png + NoOp + 0 + + + + + true + true + false + + + + GetFileInfo + false + $(pv_name) +$(pv_value) + true + Action Button + 175 + 3224b3ef:1778cb22598:-736a + 108 + 108 + + + + false + false + false + + + + false + + + + 1 + 1 + + true + + Default + + false + + + + 0 + 25 + 0 + false + 1.7976931348623157E308 + -1.7976931348623157E308 + false + Filename + 0 + true + loc://GetFileInfoFilename + + 0.0 + + + true + true + false + + + 0 + true + + + $(pv_name) +$(pv_value) + false + true + Text Input + 100 + 3224b3ef:1778cb22598:-7360 + 186 + 36 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 1 + Label_7 + + + true + true + false + + + Filename: + + true + 1 + true + Label + 80 + false + 3224b3ef:1778cb22598:-735a + 95 + 39 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 1 + Label_8 + + + true + true + false + + + FileInfoCRC: + + true + 1 + true + Label + 80 + false + 3224b3ef:1778cb22598:-7352 + 95 + 69 + + + + false + false + + + + true + + + + 3 + 1 + false + true + + Default + + false + + + + 0 + 25 + 1 + false + true + Infinity + -Infinity + FileInfoCRC + 10.0 + 3 + false + loc://GetFileInfoFileInfoCRC + + + + true + true + false + + + true + 1.0 + $(pv_name) +$(pv_value) + false + 1 + true + Spinner + 85 + 3224b3ef:1778cb22598:-72d5 + 186 + 66 + + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/FM/GetFreeSpace.opi b/core/base/tools/commander/workspace_template/Displays/Apps/FM/GetFreeSpace.opi new file mode 100644 index 000000000..4f9310f46 --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/Apps/FM/GetFreeSpace.opi @@ -0,0 +1,1781 @@ + + + + + false + -1 + -1 + + false + + + + 1.5.3 + + + + 6 + 1750 + + true + + + + + true + true + true + true + true + Display + 800 + 3224b3ef:1778cb22598:-7a0f + -1 + -1 + + + + + + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 18 + ../../Resources/send.png + NoOp + 0 + + + + + true + true + false + + + + GetFreeSpace + false + $(pv_name) +$(pv_value) + true + Action Button + 175 + 3224b3ef:1778cb22598:-7a04 + 277 + 30 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 0 + Label_1 + + + true + true + false + + + FreeSpace_A + + true + 1 + true + Label + 151 + false + 3224b3ef:1778cb22598:-79e5 + 72 + 120 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 0 + Label_2 + + + true + true + false + + + FreeSpace_B + + true + 1 + true + Label + 134 + false + 3224b3ef:1778cb22598:-79e2 + 288 + 120 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 1 + Label_3 + + + true + true + false + + + 0. + + true + 1 + true + Label + 37 + false + 3224b3ef:1778cb22598:-79df + 24 + 150 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_1 + 0 + true + /cfs/fm/FM_FreeSpacePkt_t.FileSys_0_.FreeSpace_A + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 195 + false + 3224b3ef:1778cb22598:-79d5 + 71 + 150 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_2 + 0 + true + /cfs/fm/FM_FreeSpacePkt_t.FileSys_0_.FreeSpace_B + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 154 + false + 3224b3ef:1778cb22598:-79d2 + 288 + 150 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 1 + Label_4 + + + true + true + false + + + 1. + + true + 1 + true + Label + 37 + false + 3224b3ef:1778cb22598:-79a0 + 24 + 180 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_3 + 0 + true + /cfs/fm/FM_FreeSpacePkt_t.FileSys_1_.FreeSpace_A + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 195 + false + 3224b3ef:1778cb22598:-799f + 70 + 180 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_4 + 0 + true + /cfs/fm/FM_FreeSpacePkt_t.FileSys_1_.FreeSpace_B + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 154 + false + 3224b3ef:1778cb22598:-799e + 287 + 180 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 1 + Label_11 + + + true + true + false + + + 2. + + true + 1 + true + Label + 37 + false + 3224b3ef:1778cb22598:-78ae + 24 + 204 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_17 + 0 + true + /cfs/fm/FM_FreeSpacePkt_t.FileSys_2_.FreeSpace_A + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 195 + false + 3224b3ef:1778cb22598:-78ad + 71 + 204 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_18 + 0 + true + /cfs/fm/FM_FreeSpacePkt_t.FileSys_2_.FreeSpace_B + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 154 + false + 3224b3ef:1778cb22598:-78ac + 288 + 204 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 1 + Label_12 + + + true + true + false + + + 3. + + true + 1 + true + Label + 37 + false + 3224b3ef:1778cb22598:-779d + 24 + 228 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_19 + 0 + true + /cfs/fm/FM_FreeSpacePkt_t.FileSys_3_.FreeSpace_A + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 195 + false + 3224b3ef:1778cb22598:-779c + 71 + 228 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_20 + 0 + true + /cfs/fm/FM_FreeSpacePkt_t.FileSys_3_.FreeSpace_B + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 154 + false + 3224b3ef:1778cb22598:-779b + 288 + 228 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 1 + Label_13 + + + true + true + false + + + 4. + + true + 1 + true + Label + 37 + false + 3224b3ef:1778cb22598:-7762 + 24 + 252 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_21 + 0 + true + /cfs/fm/FM_FreeSpacePkt_t.FileSys_4_.FreeSpace_A + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 195 + false + 3224b3ef:1778cb22598:-7761 + 71 + 252 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_22 + 0 + true + /cfs/fm/FM_FreeSpacePkt_t.FileSys_4_.FreeSpace_B + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 154 + false + 3224b3ef:1778cb22598:-7760 + 288 + 252 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 1 + Label_14 + + + true + true + false + + + 5. + + true + 1 + true + Label + 37 + false + 3224b3ef:1778cb22598:-774b + 24 + 276 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_23 + 0 + true + /cfs/fm/FM_FreeSpacePkt_t.FileSys_5_.FreeSpace_A + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 195 + false + 3224b3ef:1778cb22598:-774a + 71 + 276 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_24 + 0 + true + /cfs/fm/FM_FreeSpacePkt_t.FileSys_5_.FreeSpace_B + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 154 + false + 3224b3ef:1778cb22598:-7749 + 288 + 276 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 1 + Label_15 + + + true + true + false + + + 6. + + true + 1 + true + Label + 37 + false + 3224b3ef:1778cb22598:-7728 + 24 + 300 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_25 + 0 + true + /cfs/fm/FM_FreeSpacePkt_t.FileSys_6_.FreeSpace_A + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 195 + false + 3224b3ef:1778cb22598:-7727 + 71 + 300 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_26 + 0 + true + /cfs/fm/FM_FreeSpacePkt_t.FileSys_6_.FreeSpace_B + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 154 + false + 3224b3ef:1778cb22598:-7726 + 288 + 300 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 1 + Label_16 + + + true + true + false + + + 7. + + true + 1 + true + Label + 37 + false + 3224b3ef:1778cb22598:-76eb + 24 + 324 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_27 + 0 + true + /cfs/fm/FM_FreeSpacePkt_t.FileSys_7_.FreeSpace_A + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 195 + false + 3224b3ef:1778cb22598:-76ea + 71 + 324 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_28 + 0 + true + /cfs/fm/FM_FreeSpacePkt_t.FileSys_7_.FreeSpace_B + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 154 + false + 3224b3ef:1778cb22598:-76e9 + 288 + 324 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 0 + Label_26 + + + true + true + false + + + Name + + true + 1 + true + Label + 134 + false + 3224b3ef:1778cb22598:-6f29 + 468 + 120 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_47 + 0 + true + /cfs/fm/FM_FreeSpacePkt_t.FileSys_0_.Name + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 154 + false + 3224b3ef:1778cb22598:-6f28 + 468 + 150 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_48 + 0 + true + /cfs/fm/FM_FreeSpacePkt_t.FileSys_1_.Name + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 154 + false + 3224b3ef:1778cb22598:-6f27 + 467 + 180 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_49 + 0 + true + /cfs/fm/FM_FreeSpacePkt_t.FileSys_2_.Name + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 154 + false + 3224b3ef:1778cb22598:-6f26 + 468 + 204 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_50 + 0 + true + /cfs/fm/FM_FreeSpacePkt_t.FileSys_3_.Name + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 154 + false + 3224b3ef:1778cb22598:-6f25 + 468 + 228 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_51 + 0 + true + /cfs/fm/FM_FreeSpacePkt_t.FileSys_4_.Name + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 154 + false + 3224b3ef:1778cb22598:-6f24 + 468 + 252 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_52 + 0 + true + /cfs/fm/FM_FreeSpacePkt_t.FileSys_5_.Name + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 154 + false + 3224b3ef:1778cb22598:-6f23 + 468 + 276 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_53 + 0 + true + /cfs/fm/FM_FreeSpacePkt_t.FileSys_6_.Name + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 154 + false + 3224b3ef:1778cb22598:-6f22 + 468 + 300 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_54 + 0 + true + /cfs/fm/FM_FreeSpacePkt_t.FileSys_7_.Name + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 154 + false + 3224b3ef:1778cb22598:-6f21 + 468 + 324 + + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/FM/GetOpenFiles.opi b/core/base/tools/commander/workspace_template/Displays/Apps/FM/GetOpenFiles.opi new file mode 100644 index 000000000..0ad4b35d9 --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/Apps/FM/GetOpenFiles.opi @@ -0,0 +1,2569 @@ + + + + + false + -1 + -1 + + false + + + + 1.5.3 + + + + 6 + 1750 + + true + + + + + true + true + true + true + true + Display + 800 + 3224b3ef:1778cb22598:-7a0f + -1 + -1 + + + + + + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 18 + ../../Resources/send.png + NoOp + 0 + + + + + true + true + false + + + + GetOpenFiles + false + $(pv_name) +$(pv_value) + true + Action Button + 175 + 3224b3ef:1778cb22598:-7a04 + 174 + 30 + + + + false + + + + + + + 1 + 1 + true + + Default + + + + + 20 + 1 + Label + + + true + true + false + + + NumOpenFiles: + + true + 1 + true + Label + 103 + false + 3224b3ef:1778cb22598:-79fe + 174 + 54 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update + 0 + true + /cfs/fm/FM_OpenFilesPkt_t.NumOpenFiles + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 61 + false + 3224b3ef:1778cb22598:-79f4 + 288 + 54 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 0 + Label_1 + + + true + true + false + + + LogicalName + + true + 1 + true + Label + 151 + false + 3224b3ef:1778cb22598:-79e5 + 72 + 120 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 0 + Label_2 + + + true + true + false + + + AppName + + true + 1 + true + Label + 134 + false + 3224b3ef:1778cb22598:-79e2 + 288 + 120 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 1 + Label_3 + + + true + true + false + + + 0. + + true + 1 + true + Label + 37 + false + 3224b3ef:1778cb22598:-79df + 24 + 150 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_1 + 0 + true + /cfs/fm/FM_OpenFilesPkt_t.OpenFilesList_0_.LogicalName + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 195 + false + 3224b3ef:1778cb22598:-79d5 + 71 + 150 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_2 + 0 + true + /cfs/fm/FM_OpenFilesPkt_t.OpenFilesList_0_.AppName + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 154 + false + 3224b3ef:1778cb22598:-79d2 + 288 + 150 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 1 + Label_4 + + + true + true + false + + + 1. + + true + 1 + true + Label + 37 + false + 3224b3ef:1778cb22598:-79a0 + 23 + 180 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_3 + 0 + true + /cfs/fm/FM_OpenFilesPkt_t.OpenFilesList_1_.LogicalName + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 195 + false + 3224b3ef:1778cb22598:-799f + 70 + 180 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_4 + 0 + true + /cfs/fm/FM_OpenFilesPkt_t.OpenFilesList_1_.AppName + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 154 + false + 3224b3ef:1778cb22598:-799e + 287 + 180 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 1 + Label_11 + + + true + true + false + + + 2. + + true + 1 + true + Label + 37 + false + 3224b3ef:1778cb22598:-78ae + 24 + 204 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_17 + 0 + true + /cfs/fm/FM_OpenFilesPkt_t.OpenFilesList_2_.LogicalName + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 195 + false + 3224b3ef:1778cb22598:-78ad + 71 + 204 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_18 + 0 + true + /cfs/fm/FM_OpenFilesPkt_t.OpenFilesList_2_.AppName + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 154 + false + 3224b3ef:1778cb22598:-78ac + 288 + 204 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 1 + Label_12 + + + true + true + false + + + 3. + + true + 1 + true + Label + 37 + false + 3224b3ef:1778cb22598:-779d + 24 + 228 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_19 + 0 + true + /cfs/fm/FM_OpenFilesPkt_t.OpenFilesList_3_.LogicalName + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 195 + false + 3224b3ef:1778cb22598:-779c + 71 + 228 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_20 + 0 + true + /cfs/fm/FM_OpenFilesPkt_t.OpenFilesList_3_.AppName + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 154 + false + 3224b3ef:1778cb22598:-779b + 288 + 228 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 1 + Label_13 + + + true + true + false + + + 4. + + true + 1 + true + Label + 37 + false + 3224b3ef:1778cb22598:-7762 + 24 + 252 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_21 + 0 + true + /cfs/fm/FM_OpenFilesPkt_t.OpenFilesList_4_.LogicalName + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 195 + false + 3224b3ef:1778cb22598:-7761 + 71 + 252 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_22 + 0 + true + /cfs/fm/FM_OpenFilesPkt_t.OpenFilesList_4_.AppName + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 154 + false + 3224b3ef:1778cb22598:-7760 + 288 + 252 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 1 + Label_14 + + + true + true + false + + + 5. + + true + 1 + true + Label + 37 + false + 3224b3ef:1778cb22598:-774b + 24 + 276 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_23 + 0 + true + /cfs/fm/FM_OpenFilesPkt_t.OpenFilesList_5_.LogicalName + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 195 + false + 3224b3ef:1778cb22598:-774a + 71 + 276 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_24 + 0 + true + /cfs/fm/FM_OpenFilesPkt_t.OpenFilesList_5_.AppName + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 154 + false + 3224b3ef:1778cb22598:-7749 + 288 + 276 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 1 + Label_15 + + + true + true + false + + + 6. + + true + 1 + true + Label + 37 + false + 3224b3ef:1778cb22598:-7728 + 24 + 300 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_25 + 0 + true + /cfs/fm/FM_OpenFilesPkt_t.OpenFilesList_6_.LogicalName + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 195 + false + 3224b3ef:1778cb22598:-7727 + 71 + 300 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_26 + 0 + true + /cfs/fm/FM_OpenFilesPkt_t.OpenFilesList_6_.AppName + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 154 + false + 3224b3ef:1778cb22598:-7726 + 288 + 300 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 1 + Label_16 + + + true + true + false + + + 7. + + true + 1 + true + Label + 37 + false + 3224b3ef:1778cb22598:-76eb + 24 + 324 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_27 + 0 + true + /cfs/fm/FM_OpenFilesPkt_t.OpenFilesList_7_.LogicalName + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 195 + false + 3224b3ef:1778cb22598:-76ea + 71 + 324 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_28 + 0 + true + /cfs/fm/FM_OpenFilesPkt_t.OpenFilesList_7_.AppName + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 154 + false + 3224b3ef:1778cb22598:-76e9 + 288 + 324 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 1 + Label_17 + + + true + true + false + + + 8. + + true + 1 + true + Label + 37 + false + 3224b3ef:1778cb22598:-76d4 + 24 + 348 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_29 + 0 + true + /cfs/fm/FM_OpenFilesPkt_t.OpenFilesList_8_.LogicalName + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 195 + false + 3224b3ef:1778cb22598:-76d3 + 71 + 348 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_30 + 0 + true + /cfs/fm/FM_OpenFilesPkt_t.OpenFilesList_8_.AppName + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 154 + false + 3224b3ef:1778cb22598:-76d2 + 288 + 348 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 1 + Label_18 + + + true + true + false + + + 9. + + true + 1 + true + Label + 37 + false + 3224b3ef:1778cb22598:-76bd + 23 + 372 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_31 + 0 + true + /cfs/fm/FM_OpenFilesPkt_t.OpenFilesList_9_.LogicalName + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 195 + false + 3224b3ef:1778cb22598:-76bc + 70 + 372 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_32 + 0 + true + /cfs/fm/FM_OpenFilesPkt_t.OpenFilesList_9_.AppName + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 154 + false + 3224b3ef:1778cb22598:-76bb + 287 + 372 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 1 + Label_19 + + + true + true + false + + + 10. + + true + 1 + true + Label + 37 + false + 3224b3ef:1778cb22598:-76a6 + 24 + 396 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_33 + 0 + true + /cfs/fm/FM_OpenFilesPkt_t.OpenFilesList_10_.LogicalName + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 195 + false + 3224b3ef:1778cb22598:-76a5 + 71 + 396 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_34 + 0 + true + /cfs/fm/FM_OpenFilesPkt_t.OpenFilesList_10_.AppName + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 154 + false + 3224b3ef:1778cb22598:-76a4 + 288 + 396 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 1 + Label_20 + + + true + true + false + + + 11. + + true + 1 + true + Label + 37 + false + 3224b3ef:1778cb22598:-7690 + 23 + 420 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_35 + 0 + true + /cfs/fm/FM_OpenFilesPkt_t.OpenFilesList_11_.LogicalName + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 195 + false + 3224b3ef:1778cb22598:-768f + 70 + 420 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_36 + 0 + true + /cfs/fm/FM_OpenFilesPkt_t.OpenFilesList_11_.AppName + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 154 + false + 3224b3ef:1778cb22598:-768e + 287 + 420 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 1 + Label_21 + + + true + true + false + + + 12. + + true + 1 + true + Label + 37 + false + 3224b3ef:1778cb22598:-7685 + 23 + 450 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_37 + 0 + true + /cfs/fm/FM_OpenFilesPkt_t.OpenFilesList_12_.LogicalName + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 195 + false + 3224b3ef:1778cb22598:-7684 + 70 + 450 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_38 + 0 + true + /cfs/fm/FM_OpenFilesPkt_t.OpenFilesList_12_.AppName + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 154 + false + 3224b3ef:1778cb22598:-7683 + 287 + 450 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 1 + Label_22 + + + true + true + false + + + 14. + + true + 1 + true + Label + 37 + false + 3224b3ef:1778cb22598:-767a + 24 + 504 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_39 + 0 + true + /cfs/fm/FM_OpenFilesPkt_t.OpenFilesList_14_.LogicalName + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 195 + false + 3224b3ef:1778cb22598:-7679 + 71 + 504 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_40 + 0 + true + /cfs/fm/FM_OpenFilesPkt_t.OpenFilesList_14_.AppName + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 154 + false + 3224b3ef:1778cb22598:-7678 + 288 + 504 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 1 + Label_24 + + + true + true + false + + + 13. + + true + 1 + true + Label + 37 + false + 3224b3ef:1778cb22598:-7664 + 23 + 480 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_43 + 0 + true + /cfs/fm/FM_OpenFilesPkt_t.OpenFilesList_13_.LogicalName + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 195 + false + 3224b3ef:1778cb22598:-7663 + 70 + 480 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_44 + 0 + true + /cfs/fm/FM_OpenFilesPkt_t.OpenFilesList_13_.AppName + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 154 + false + 3224b3ef:1778cb22598:-7662 + 287 + 480 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 1 + Label_25 + + + true + true + false + + + 15. + + true + 1 + true + Label + 37 + false + 3224b3ef:1778cb22598:-7659 + 24 + 534 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_45 + 0 + true + /cfs/fm/FM_OpenFilesPkt_t.OpenFilesList_15_.LogicalName + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 195 + false + 3224b3ef:1778cb22598:-7658 + 71 + 534 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_46 + 0 + true + /cfs/fm/FM_OpenFilesPkt_t.OpenFilesList_15_.AppName + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 154 + false + 3224b3ef:1778cb22598:-7657 + 288 + 534 + + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/FM/Main.opi b/core/base/tools/commander/workspace_template/Displays/Apps/FM/Main.opi index 7291b52f0..1ef998304 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/FM/Main.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/FM/Main.opi @@ -15,7 +15,7 @@ 6 - 410 + 400 true @@ -28,7 +28,7 @@ true true Display - 300 + 400 -33cb7c72:150aa4c347f:-76c2 -1 -1 @@ -42,9 +42,9 @@ true - + - 0 + 1 1 true @@ -118,7 +118,7 @@ $(pv_value) 1 true Label - 72 + 74 false -33cb7c72:150aa4c347f:-75fe 12 @@ -214,9 +214,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -263,7 +263,7 @@ $(pv_value) +Yamcs.issueCommand('/cfs/fm/Noop', {});]]> true @@ -307,7 +307,7 @@ Yamcs.issueCommand('/CFS/FM/NoOp', {});]]> $(pv_value) true Action Button - 67 + 115 -33cb7c72:150aa4c347f:-75fa 210 58 @@ -319,7 +319,7 @@ $(pv_value) +Yamcs.issueCommand('/cfs/fm/Reset', {});]]> true @@ -363,7 +363,7 @@ Yamcs.issueCommand('/cfs/fm/Reset, {}');]]> $(pv_value) true Action Button - 67 + 115 -33cb7c72:150aa4c347f:-75f9 210 79 @@ -408,46 +408,6 @@ $(pv_value) 12 6 - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 2 - Label_65 - - - true - true - false - - - Warnings - - true - 1 - true - Label - 72 - false - -736e4684:150ac3c95a1:-6f86 - 12 - 95 - false @@ -458,61 +418,9 @@ $(pv_value) true - + - 0 - 1 - false - - Default - - false - - - - 1 - 20 - 0 - Text Update_15 - 0 - false - /cfs/fm/FM_HousekeepingPkt_t. - - 0.0 - - - true - true - false - - - true - ###### - $(pv_name) -$(pv_value) - false - 1 - true - Text Update - 100 - false - -736e4684:150ac3c95a1:-6f85 - 95 - 95 - - - - false - false - false - - - - true - - - - 0 + 1 1 true @@ -562,9 +470,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -614,9 +522,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -666,9 +574,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -718,9 +626,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -770,9 +678,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -782,7 +690,7 @@ $(pv_value) - 1 + 0 20 0 Text Update_21 @@ -822,9 +730,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -834,7 +742,7 @@ $(pv_value) - 1 + 0 20 0 Text Update_22 @@ -1184,4 +1092,60 @@ $(pv_value) 66 186 + + + + + + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 17 + ../../Resources/send.png + NoOp_2 + 0 + + + + + true + true + false + + + + SendHK + false + $(pv_name) +$(pv_value) + true + Action Button + 115 + 3224b3ef:1778cb22598:-6b88 + 210 + 102 + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/FM/MoveFile.opi b/core/base/tools/commander/workspace_template/Displays/Apps/FM/MoveFile.opi new file mode 100644 index 000000000..b82fd98fa --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/Apps/FM/MoveFile.opi @@ -0,0 +1,391 @@ + + + + + false + -1 + -1 + + false + + + + 1.5.3 + + + + 6 + 400 + + true + + + + + true + true + true + true + true + Display + 400 + 3224b3ef:1778cb22598:-7c75 + -1 + -1 + + + + + + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 18 + ../../Resources/send.png + NoOp + 0 + + + + + true + true + false + + + + MoveFile + false + $(pv_name) +$(pv_value) + true + Action Button + 109 + 3224b3ef:1778cb22598:-7c6a + 84 + 168 + + + + false + false + false + + + + false + + + + 1 + 1 + + true + + Default + + false + + + + 0 + 25 + 0 + false + 1.7976931348623157E308 + -1.7976931348623157E308 + false + Source + 0 + true + loc://MoveFileSource + + 0.0 + + + true + true + false + + + 0 + true + + + $(pv_name) +$(pv_value) + false + true + Text Input + 100 + 3224b3ef:1778cb22598:-7c66 + 132 + 81 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 1 + Label + + + true + true + false + + + Source + + true + 1 + true + Label + 80 + false + 3224b3ef:1778cb22598:-7c62 + 48 + 84 + + + + false + false + false + + + + false + + + + 1 + 1 + + true + + Default + + false + + + + 0 + 25 + 0 + false + 1.7976931348623157E308 + -1.7976931348623157E308 + false + Target + 0 + true + loc://MoveFileTarget + + 0.0 + + + true + true + false + + + 0 + true + + + $(pv_name) +$(pv_value) + false + true + Text Input + 100 + 3224b3ef:1778cb22598:-7c57 + 132 + 114 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 1 + Label_1 + + + true + true + false + + + Target + + true + 1 + true + Label + 80 + false + 3224b3ef:1778cb22598:-7c56 + 48 + 114 + + + + false + false + + + + true + + + + 1 + 1 + false + true + + Default + + false + + + + 0 + 25 + 1 + false + true + 1.7976931348623157E308 + -1.7976931348623157E308 + Overwrite + 10.0 + 3 + false + loc://MoveFileOverWrite + + + + true + true + false + + + true + 1.0 + $(pv_name) +$(pv_value) + false + 1 + true + Spinner + 100 + 3224b3ef:1778cb22598:-7c4f + 132 + 48 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 1 + Label_2 + + + true + true + false + + + Overwrite + + true + 1 + true + Label + 80 + false + 3224b3ef:1778cb22598:-7c47 + 48 + 51 + + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/FM/RenameFile.opi b/core/base/tools/commander/workspace_template/Displays/Apps/FM/RenameFile.opi new file mode 100644 index 000000000..df893bf84 --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/Apps/FM/RenameFile.opi @@ -0,0 +1,295 @@ + + + + + false + -1 + -1 + + false + + + + 1.5.3 + + + + 6 + 400 + + true + + + + + true + true + true + true + true + Display + 400 + 3224b3ef:1778cb22598:-7c75 + -1 + -1 + + + + + + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 18 + ../../Resources/send.png + NoOp + 0 + + + + + true + true + false + + + + RenameFile + false + $(pv_name) +$(pv_value) + true + Action Button + 109 + 3224b3ef:1778cb22598:-7c6a + 102 + 138 + + + + false + false + false + + + + false + + + + 1 + 1 + + true + + Default + + false + + + + 0 + 25 + 0 + false + 1.7976931348623157E308 + -1.7976931348623157E308 + false + Source + 0 + true + loc://RenameFileSource + + 0.0 + + + true + true + false + + + 0 + true + + + $(pv_name) +$(pv_value) + false + true + Text Input + 100 + 3224b3ef:1778cb22598:-7c66 + 150 + 51 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 1 + Label + + + true + true + false + + + Source + + true + 1 + true + Label + 80 + false + 3224b3ef:1778cb22598:-7c62 + 66 + 54 + + + + false + false + false + + + + false + + + + 1 + 1 + + true + + Default + + false + + + + 0 + 25 + 0 + false + 1.7976931348623157E308 + -1.7976931348623157E308 + false + Target + 0 + true + loc://RenameFileTarget + + 0.0 + + + true + true + false + + + 0 + true + + + $(pv_name) +$(pv_value) + false + true + Text Input + 100 + 3224b3ef:1778cb22598:-7c57 + 150 + 84 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 1 + Label_1 + + + true + true + false + + + Target + + true + 1 + true + Label + 80 + false + 3224b3ef:1778cb22598:-7c56 + 66 + 84 + + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/FM/SetPerm.opi b/core/base/tools/commander/workspace_template/Displays/Apps/FM/SetPerm.opi new file mode 100644 index 000000000..41c51e549 --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/Apps/FM/SetPerm.opi @@ -0,0 +1,293 @@ + + + + + false + -1 + -1 + + false + + + + 1.5.3 + + + + 6 + 600 + + true + + + + + true + true + true + true + true + Display + 800 + 3224b3ef:1778cb22598:-7447 + -1 + -1 + + + + + + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 18 + ../../Resources/send.png + NoOp + 0 + + + + + true + true + false + + + + SetPerm + false + $(pv_name) +$(pv_value) + true + Action Button + 175 + 3224b3ef:1778cb22598:-736a + 108 + 108 + + + + false + false + false + + + + false + + + + 1 + 1 + + true + + Default + + false + + + + 0 + 25 + 0 + false + 1.7976931348623157E308 + -1.7976931348623157E308 + false + Filename + 0 + true + loc://SetPermFilename + + 0.0 + + + true + true + false + + + 0 + true + + + $(pv_name) +$(pv_value) + false + true + Text Input + 100 + 3224b3ef:1778cb22598:-7360 + 186 + 36 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 1 + Label_7 + + + true + true + false + + + Filename: + + true + 1 + true + Label + 80 + false + 3224b3ef:1778cb22598:-735a + 95 + 39 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 1 + Label_8 + + + true + true + false + + + Mode: + + true + 1 + true + Label + 80 + false + 3224b3ef:1778cb22598:-7352 + 95 + 69 + + + + false + false + + + + true + + + + 1 + 1 + false + true + + Default + + false + + + + 0 + 25 + 1 + false + true + 1.7976931348623157E308 + -1.7976931348623157E308 + Mode + 10.0 + 3 + false + loc://SetPermMode + + + + true + true + false + + + true + 1.0 + $(pv_name) +$(pv_value) + false + 1 + true + Spinner + 85 + 3224b3ef:1778cb22598:-72d5 + 186 + 66 + + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/FM/SetTableState.opi b/core/base/tools/commander/workspace_template/Displays/Apps/FM/SetTableState.opi new file mode 100644 index 000000000..b791c4879 --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/Apps/FM/SetTableState.opi @@ -0,0 +1,301 @@ + + + + + false + -1 + -1 + + false + + + + 1.5.3 + + + + 6 + 600 + + true + + + + + true + true + true + true + true + Display + 800 + 3224b3ef:1778cb22598:-7447 + -1 + -1 + + + + + + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 18 + ../../Resources/send.png + NoOp + 0 + + + + + true + true + false + + + + SetTableState + false + $(pv_name) +$(pv_value) + true + Action Button + 175 + 3224b3ef:1778cb22598:-736a + 108 + 132 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 1 + Label_8 + + + true + true + false + + + TableEntryIndex + + true + 1 + true + Label + 103 + false + 3224b3ef:1778cb22598:-7352 + 66 + 39 + + + + false + false + + + + true + + + + 3 + 1 + false + true + + Default + + false + + + + 0 + 25 + 1 + false + true + 1.7976931348623157E308 + -1.7976931348623157E308 + TableEntryIndex + 10.0 + 3 + false + loc://SetTableStateTableEntryIndex<VDouble> + + + + true + true + false + + + true + 1.0 + $(pv_name) +$(pv_value) + false + 1 + true + Spinner + 145 + 3224b3ef:1778cb22598:-72d5 + 180 + 36 + + + + false + false + + + + true + + + + 0 + 1 + true + + Default + + false + + + + 34 + + DISABLED + ENABLED + UNUSED + + false + TableEntryState + loc://SetTableStateTableEntryState<VString> + + + + true + false + false + + + $(pv_name) +$(pv_value) + true + Combo + 145 + 3224b3ef:1778cb22598:-6c7c + 180 + 72 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 1 + Label + + + true + true + false + + + TableEntryState + + true + 1 + true + Label + 103 + false + 3224b3ef:1778cb22598:-6c78 + 66 + 79 + + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/FM/scripts/NoOp.js b/core/base/tools/commander/workspace_template/Displays/Apps/FM/scripts/NoOp.js deleted file mode 100644 index b07c7b248..000000000 --- a/core/base/tools/commander/workspace_template/Displays/Apps/FM/scripts/NoOp.js +++ /dev/null @@ -1,4 +0,0 @@ -importPackage(Packages.org.csstudio.opibuilder.scriptUtil); -importPackage(Packages.org.yamcs.studio.script); - -Yamcs.issueCommand('/cfs/fm/Noop', {}); \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/FM/scripts/ResetCounters.js b/core/base/tools/commander/workspace_template/Displays/Apps/FM/scripts/ResetCounters.js deleted file mode 100644 index d2009ab34..000000000 --- a/core/base/tools/commander/workspace_template/Displays/Apps/FM/scripts/ResetCounters.js +++ /dev/null @@ -1,4 +0,0 @@ -importPackage(Packages.org.csstudio.opibuilder.scriptUtil); -importPackage(Packages.org.yamcs.studio.script); - -Yamcs.issueCommand('/cfs/fm/Reset', {}); \ No newline at end of file From dec1e5a2695c3687a01e5e2e30bb3fd8e30b0bae Mon Sep 17 00:00:00 2001 From: cnalley Date: Wed, 10 Feb 2021 23:53:25 +0000 Subject: [PATCH 092/370] Add pq telemetry. --- apps/sbn/fsw/src/sbn_cmds.c | 22 +++++++++++++++++++ .../sbn/modules/mbox/fsw/src/sbn_mailbox_if.c | 7 +++++- apps/sbn/modules/udp_pq/fsw/src/sbn_udp_if.c | 7 +++++- .../uio_mbox/fsw/src/sbn_uio_mailbox_if.c | 7 +++++- config/shared/inc/msg_ids.h | 1 + 5 files changed, 41 insertions(+), 3 deletions(-) diff --git a/apps/sbn/fsw/src/sbn_cmds.c b/apps/sbn/fsw/src/sbn_cmds.c index aadd5fe77..a130f0de1 100644 --- a/apps/sbn/fsw/src/sbn_cmds.c +++ b/apps/sbn/fsw/src/sbn_cmds.c @@ -363,6 +363,28 @@ static void HKCmd(CFE_SB_MsgPtr_t MsgPtr) */ CFE_SB_TimeStampMsg((CFE_SB_Msg_t *) HKBuf); CFE_SB_SendMsg((CFE_SB_Msg_t *) HKBuf); + + /******************************************************************/ + /* For now report module status with HK. */ + int NetIdx = 0; + for(NetIdx = 0; NetIdx < SBN.NetCnt; NetIdx++) + { + SBN_NetInterface_t *Net = &SBN.Nets[NetIdx]; + + if(!Net->Configured) + { + CFE_EVS_SendEvent(SBN_PEER_EID, CFE_EVS_ERROR, + "network #%d not configured", NetIdx); + + return SBN_ERROR; + }/* end if */ + + /* Note: StatusPacket currently unused. */ + SBN_ModuleStatusPacket_t StatusPacket; + Net->IfOps->ReportModuleStatus(&StatusPacket); + } + /******************************************************************/ + }/* end HKCmd */ /** \brief Request for housekeeping for one network. diff --git a/apps/sbn/modules/mbox/fsw/src/sbn_mailbox_if.c b/apps/sbn/modules/mbox/fsw/src/sbn_mailbox_if.c index bf19b2b35..de55560c4 100644 --- a/apps/sbn/modules/mbox/fsw/src/sbn_mailbox_if.c +++ b/apps/sbn/modules/mbox/fsw/src/sbn_mailbox_if.c @@ -357,7 +357,12 @@ static int Recv(SBN_NetInterface_t *Net, SBN_MsgType_t *MsgTypePtr, static int ReportModuleStatus(SBN_ModuleStatusPacket_t *Packet) { - return SBN_NOT_IMPLEMENTED; + CFE_SB_InitMsg(&SBN_UIO_Mailbox_Data.HkTlm, SBN_MODULE_HK_MID, + sizeof(SBN_UIO_Mailbox_Data.HkTlm), FALSE); + CFE_SB_TimeStampMsg((CFE_SB_Msg_t *) &SBN_UIO_Mailbox_Data.HkTlm); + CFE_SB_SendMsg((CFE_SB_Msg_t *) &SBN_UIO_Mailbox_Data.HkTlm); + + return SBN_SUCCESS; } diff --git a/apps/sbn/modules/udp_pq/fsw/src/sbn_udp_if.c b/apps/sbn/modules/udp_pq/fsw/src/sbn_udp_if.c index 94f350e10..39d827922 100644 --- a/apps/sbn/modules/udp_pq/fsw/src/sbn_udp_if.c +++ b/apps/sbn/modules/udp_pq/fsw/src/sbn_udp_if.c @@ -388,7 +388,12 @@ int SBN_UDP_Recv(SBN_NetInterface_t *Net, SBN_MsgType_t *MsgTypePtr, int SBN_UDP_ReportModuleStatus(SBN_ModuleStatusPacket_t *Packet) { - return SBN_NOT_IMPLEMENTED; + CFE_SB_InitMsg(&SBN_UIO_Mailbox_Data.HkTlm, SBN_MODULE_HK_MID, + sizeof(SBN_UIO_Mailbox_Data.HkTlm), FALSE); + CFE_SB_TimeStampMsg((CFE_SB_Msg_t *) &SBN_UIO_Mailbox_Data.HkTlm); + CFE_SB_SendMsg((CFE_SB_Msg_t *) &SBN_UIO_Mailbox_Data.HkTlm); + + return SBN_SUCCESS; }/* end SBN_UDP_ReportModuleStatus */ diff --git a/apps/sbn/modules/uio_mbox/fsw/src/sbn_uio_mailbox_if.c b/apps/sbn/modules/uio_mbox/fsw/src/sbn_uio_mailbox_if.c index 1c67269ec..59a6f252c 100644 --- a/apps/sbn/modules/uio_mbox/fsw/src/sbn_uio_mailbox_if.c +++ b/apps/sbn/modules/uio_mbox/fsw/src/sbn_uio_mailbox_if.c @@ -428,7 +428,12 @@ static int Recv(SBN_NetInterface_t *Net, SBN_MsgType_t *MsgTypePtr, static int ReportModuleStatus(SBN_ModuleStatusPacket_t *Packet) { - return SBN_NOT_IMPLEMENTED; + CFE_SB_InitMsg(&SBN_UIO_Mailbox_Data.HkTlm, SBN_MODULE_HK_MID, + sizeof(SBN_UIO_Mailbox_Data.HkTlm), FALSE); + CFE_SB_TimeStampMsg((CFE_SB_Msg_t *) &SBN_UIO_Mailbox_Data.HkTlm); + CFE_SB_SendMsg((CFE_SB_Msg_t *) &SBN_UIO_Mailbox_Data.HkTlm); + + return SBN_SUCCESS; } diff --git a/config/shared/inc/msg_ids.h b/config/shared/inc/msg_ids.h index d982ec58a..9aa0c5e67 100644 --- a/config/shared/inc/msg_ids.h +++ b/config/shared/inc/msg_ids.h @@ -470,6 +470,7 @@ #define SBN_SUB_MID TLM_MSG( 440 ) - CFE_MSG_CPU_BASE #define SBN_ALLSUB_MID TLM_MSG( 441 ) - CFE_MSG_CPU_BASE #define SBN_UNSUB_MID TLM_MSG( 442 ) - CFE_MSG_CPU_BASE +#define SBN_MODULE_HK_MID TLM_MSG( 443 ) /* SENS */ #define SENS_HK_TLM_MID TLM_MSG( 450 ) From ced572cbdc5044ccddf52926bdb8699054999868 Mon Sep 17 00:00:00 2001 From: cnalley Date: Thu, 11 Feb 2021 00:16:26 +0000 Subject: [PATCH 093/370] Add telemetry copy. --- apps/pq_lib/fsw/public_inc/pq_structs.h | 14 +++---- .../sbn/modules/mbox/fsw/src/sbn_mailbox_if.c | 37 +++++++++++++++++-- apps/sbn/modules/udp_pq/fsw/src/sbn_udp_if.c | 37 +++++++++++++++++-- .../uio_mbox/fsw/src/sbn_uio_mailbox_if.c | 29 +++++++++++++++ 4 files changed, 102 insertions(+), 15 deletions(-) diff --git a/apps/pq_lib/fsw/public_inc/pq_structs.h b/apps/pq_lib/fsw/public_inc/pq_structs.h index 4bb26bd63..6776c4ad1 100644 --- a/apps/pq_lib/fsw/public_inc/pq_structs.h +++ b/apps/pq_lib/fsw/public_inc/pq_structs.h @@ -521,7 +521,7 @@ typedef struct \brief Count of telemetry messages sent out the channel interface. Counter begins at zero with app initialization and rolls over. Index of array is equivalent to the relevant TO channel index. */ - uint32 uiSentMsgCountChannel[PQ_MAX_CHANNELS]; + uint32 uiSentMsgCountChannel; /** \totlm Queued Channel Telemetry \totlmmnemonic PQ_RDOQUEUED @@ -530,7 +530,7 @@ typedef struct \brief Count of telemetry messages queued on the TO channel's Priority Queues. Counter begins at zero with app initialization and rolls over. Index of array is equivalent to the relevant TO channel index. */ - uint32 uiQueuedMsgCountChannel[PQ_MAX_CHANNELS]; + uint32 uiQueuedMsgCountChannel; /** \totlm Dropped Channel Telemetry \totlmmnemonic PQ_RDODROP @@ -539,7 +539,7 @@ typedef struct \brief Count of telemetry messages rejected, and not passed into the channel's Priority Queues. Counter begins at zero with app initialization and rolls over. Index of array is equivalent to the relevant TO channel index. */ - uint32 uiDropMsgCountChannel[PQ_MAX_CHANNELS]; + uint32 uiDropMsgCountChannel; /** \totlm Failed Channel Telemetry \totlmmnemonic PQ_RDOFAILED @@ -549,7 +549,7 @@ typedef struct from the output queue, and lost. Counter begins at zero with app initialization and rolls over. Index of array is equivalent to the relevant TO channel index. */ - uint32 uiFailedMsgCountChannel[PQ_MAX_CHANNELS]; + uint32 uiFailedMsgCountChannel; /** \totlm Channel Bytes Sent \totlmmnemonic PQ_RDOB @@ -558,7 +558,7 @@ typedef struct \brief The number of bytes sent out the channel's interface Counter begins at zero with app initialization and rolls over. Index of array is equivalent to the relevant TO channel index. */ - uint32 uiBytesSentChannel[PQ_MAX_CHANNELS]; + uint32 uiBytesSentChannel; /** \totlmmnemonic PQ_CMDACPTCNT \brief Count of accepted commands */ @@ -578,7 +578,7 @@ typedef struct /** \totlmmnemonic PQ_QDINOUTCHN \brief Currently queued count for each Channel */ - uint16 QueuedInOutputChannel[PQ_MAX_CHANNELS]; + uint16 QueuedInOutputChannel; /** \totlmmnemonic PQ_CHMAXMEM \brief Maximum memory available for each channel. */ @@ -586,7 +586,7 @@ typedef struct /** \totlmmnemonic PQ_CHMEMINFO \brief Memory information per channel. */ - PQ_ChannelMemoryInfo_t ChannelMemInfo[PQ_MAX_CHANNELS]; + PQ_ChannelMemoryInfo_t ChannelMemInfo; } PQ_HkTlm_t; diff --git a/apps/sbn/modules/mbox/fsw/src/sbn_mailbox_if.c b/apps/sbn/modules/mbox/fsw/src/sbn_mailbox_if.c index de55560c4..5fce06f3c 100644 --- a/apps/sbn/modules/mbox/fsw/src/sbn_mailbox_if.c +++ b/apps/sbn/modules/mbox/fsw/src/sbn_mailbox_if.c @@ -357,10 +357,39 @@ static int Recv(SBN_NetInterface_t *Net, SBN_MsgType_t *MsgTypePtr, static int ReportModuleStatus(SBN_ModuleStatusPacket_t *Packet) { - CFE_SB_InitMsg(&SBN_UIO_Mailbox_Data.HkTlm, SBN_MODULE_HK_MID, - sizeof(SBN_UIO_Mailbox_Data.HkTlm), FALSE); - CFE_SB_TimeStampMsg((CFE_SB_Msg_t *) &SBN_UIO_Mailbox_Data.HkTlm); - CFE_SB_SendMsg((CFE_SB_Msg_t *) &SBN_UIO_Mailbox_Data.HkTlm); + PQ_ChannelData_t *channel = NULL; + + //(void) OS_MutSemTake(TO_AppData.MutexID); + SBN_Mailbox_Data.HkTlm.SentBytes = 0; + //(void) OS_MutSemGive(TO_AppData.MutexID); + + /* TODO this should be updated so that a copy isn't needed. */ + channel = &SBN_Mailbox_Data.Channel; + + //PQ_Channel_LockByRef(channel); + + SBN_Mailbox_Data.HkTlm.QueuedInOutputChannel = channel->OutputQueue.CurrentlyQueuedCnt; + + SBN_Mailbox_Data.HkTlm.uiSentMsgCountChannel = channel->SentMsgCount; + SBN_Mailbox_Data.HkTlm.uiQueuedMsgCountChannel = channel->QueuedMsgCount; + SBN_Mailbox_Data.HkTlm.uiDropMsgCountChannel = channel->DropMsgCount; + SBN_Mailbox_Data.HkTlm.uiFailedMsgCountChannel = channel->FailedMsgCount; + SBN_Mailbox_Data.HkTlm.uiBytesSentChannel = channel->BytesSent; + + //(void) OS_MutSemTake(TO_AppData.MutexID); + SBN_Mailbox_Data.HkTlm.SentBytes += channel->OutputQueue.SentBytes; + + //(void) OS_MutSemGive(TO_AppData.MutexID); + + SBN_Mailbox_Data.HkTlm.ChannelMemInfo.MemInUse = channel->MemInUse; + SBN_Mailbox_Data.HkTlm.ChannelMemInfo.PeakMemInUse = channel->PeakMemInUse; + + //PQ_Channel_UnlockByRef(channel); + + CFE_SB_InitMsg(&SBN_Mailbox_Data.HkTlm, SBN_MODULE_HK_MID, + sizeof(SBN_Mailbox_Data.HkTlm), FALSE); + CFE_SB_TimeStampMsg((CFE_SB_Msg_t *) &SBN_Mailbox_Data.HkTlm); + CFE_SB_SendMsg((CFE_SB_Msg_t *) &SBN_Mailbox_Data.HkTlm); return SBN_SUCCESS; } diff --git a/apps/sbn/modules/udp_pq/fsw/src/sbn_udp_if.c b/apps/sbn/modules/udp_pq/fsw/src/sbn_udp_if.c index 39d827922..e5b2d6c7c 100644 --- a/apps/sbn/modules/udp_pq/fsw/src/sbn_udp_if.c +++ b/apps/sbn/modules/udp_pq/fsw/src/sbn_udp_if.c @@ -388,10 +388,39 @@ int SBN_UDP_Recv(SBN_NetInterface_t *Net, SBN_MsgType_t *MsgTypePtr, int SBN_UDP_ReportModuleStatus(SBN_ModuleStatusPacket_t *Packet) { - CFE_SB_InitMsg(&SBN_UIO_Mailbox_Data.HkTlm, SBN_MODULE_HK_MID, - sizeof(SBN_UIO_Mailbox_Data.HkTlm), FALSE); - CFE_SB_TimeStampMsg((CFE_SB_Msg_t *) &SBN_UIO_Mailbox_Data.HkTlm); - CFE_SB_SendMsg((CFE_SB_Msg_t *) &SBN_UIO_Mailbox_Data.HkTlm); + PQ_ChannelData_t *channel = NULL; + + //(void) OS_MutSemTake(TO_AppData.MutexID); + HkTlm.SentBytes = 0; + //(void) OS_MutSemGive(TO_AppData.MutexID); + + /* TODO this should be updated so that a copy isn't needed. */ + channel = &Channel; + + //PQ_Channel_LockByRef(channel); + + HkTlm.QueuedInOutputChannel = channel->OutputQueue.CurrentlyQueuedCnt; + + HkTlm.uiSentMsgCountChannel = channel->SentMsgCount; + HkTlm.uiQueuedMsgCountChannel = channel->QueuedMsgCount; + HkTlm.uiDropMsgCountChannel = channel->DropMsgCount; + HkTlm.uiFailedMsgCountChannel = channel->FailedMsgCount; + HkTlm.uiBytesSentChannel = channel->BytesSent; + + //(void) OS_MutSemTake(TO_AppData.MutexID); + HkTlm.SentBytes += channel->OutputQueue.SentBytes; + + //(void) OS_MutSemGive(TO_AppData.MutexID); + + HkTlm.ChannelMemInfo.MemInUse = channel->MemInUse; + HkTlm.ChannelMemInfo.PeakMemInUse = channel->PeakMemInUse; + + //PQ_Channel_UnlockByRef(channel); + + CFE_SB_InitMsg(&HkTlm, SBN_MODULE_HK_MID, + sizeof(HkTlm), FALSE); + CFE_SB_TimeStampMsg((CFE_SB_Msg_t *) &HkTlm); + CFE_SB_SendMsg((CFE_SB_Msg_t *) &HkTlm); return SBN_SUCCESS; }/* end SBN_UDP_ReportModuleStatus */ diff --git a/apps/sbn/modules/uio_mbox/fsw/src/sbn_uio_mailbox_if.c b/apps/sbn/modules/uio_mbox/fsw/src/sbn_uio_mailbox_if.c index 59a6f252c..d2d440032 100644 --- a/apps/sbn/modules/uio_mbox/fsw/src/sbn_uio_mailbox_if.c +++ b/apps/sbn/modules/uio_mbox/fsw/src/sbn_uio_mailbox_if.c @@ -428,6 +428,35 @@ static int Recv(SBN_NetInterface_t *Net, SBN_MsgType_t *MsgTypePtr, static int ReportModuleStatus(SBN_ModuleStatusPacket_t *Packet) { + PQ_ChannelData_t *channel = NULL; + + //(void) OS_MutSemTake(TO_AppData.MutexID); + SBN_UIO_Mailbox_Data.HkTlm.SentBytes = 0; + //(void) OS_MutSemGive(TO_AppData.MutexID); + + /* TODO this should be updated so that a copy isn't needed. */ + channel = &SBN_UIO_Mailbox_Data.Channel; + + //PQ_Channel_LockByRef(channel); + + SBN_UIO_Mailbox_Data.HkTlm.QueuedInOutputChannel = channel->OutputQueue.CurrentlyQueuedCnt; + + SBN_UIO_Mailbox_Data.HkTlm.uiSentMsgCountChannel = channel->SentMsgCount; + SBN_UIO_Mailbox_Data.HkTlm.uiQueuedMsgCountChannel = channel->QueuedMsgCount; + SBN_UIO_Mailbox_Data.HkTlm.uiDropMsgCountChannel = channel->DropMsgCount; + SBN_UIO_Mailbox_Data.HkTlm.uiFailedMsgCountChannel = channel->FailedMsgCount; + SBN_UIO_Mailbox_Data.HkTlm.uiBytesSentChannel = channel->BytesSent; + + //(void) OS_MutSemTake(TO_AppData.MutexID); + SBN_UIO_Mailbox_Data.HkTlm.SentBytes += channel->OutputQueue.SentBytes; + + //(void) OS_MutSemGive(TO_AppData.MutexID); + + SBN_UIO_Mailbox_Data.HkTlm.ChannelMemInfo.MemInUse = channel->MemInUse; + SBN_UIO_Mailbox_Data.HkTlm.ChannelMemInfo.PeakMemInUse = channel->PeakMemInUse; + + //PQ_Channel_UnlockByRef(channel); + CFE_SB_InitMsg(&SBN_UIO_Mailbox_Data.HkTlm, SBN_MODULE_HK_MID, sizeof(SBN_UIO_Mailbox_Data.HkTlm), FALSE); CFE_SB_TimeStampMsg((CFE_SB_Msg_t *) &SBN_UIO_Mailbox_Data.HkTlm); From a36e6bc803088f59661de80065344cd742972eec Mon Sep 17 00:00:00 2001 From: cnalley Date: Fri, 12 Feb 2021 00:00:59 +0000 Subject: [PATCH 094/370] Giant refactor of pq lib. --- apps/pq_lib/fsw/public_inc/pq_channel.h | 3 + apps/pq_lib/fsw/public_inc/pq_classifier.h | 4 +- apps/pq_lib/fsw/public_inc/pq_message_flow.h | 36 +-- apps/pq_lib/fsw/public_inc/pq_output_queue.h | 40 ++-- .../pq_lib/fsw/public_inc/pq_priority_queue.h | 26 ++- apps/pq_lib/fsw/public_inc/pq_structs.h | 48 ++-- apps/pq_lib/fsw/src/pq_channel.c | 19 ++ apps/pq_lib/fsw/src/pq_classifier.c | 8 +- apps/pq_lib/fsw/src/pq_config_utils.c | 1 - apps/pq_lib/fsw/src/pq_lib.c | 4 - apps/pq_lib/fsw/src/pq_message_flow.c | 215 ++++++++---------- apps/pq_lib/fsw/src/pq_output_queue.c | 89 ++++---- apps/pq_lib/fsw/src/pq_priority_queue.c | 170 +++++++------- .../sbn/modules/mbox/fsw/src/sbn_mailbox_if.c | 31 +-- apps/sbn/modules/udp_pq/fsw/src/sbn_udp_if.c | 31 +-- .../uio_mbox/fsw/src/sbn_uio_mailbox_if.c | 31 +-- 16 files changed, 330 insertions(+), 426 deletions(-) diff --git a/apps/pq_lib/fsw/public_inc/pq_channel.h b/apps/pq_lib/fsw/public_inc/pq_channel.h index 1e0b0a5e4..c12fe9ac8 100644 --- a/apps/pq_lib/fsw/public_inc/pq_channel.h +++ b/apps/pq_lib/fsw/public_inc/pq_channel.h @@ -309,4 +309,7 @@ void PQ_Channel_Cleanup(PQ_ChannelData_t *Channel); void PQ_Channel_ResetCounts(PQ_ChannelData_t *Channel); +void PQ_Channel_CopyStats(PQ_HkTlm_t *HkTlm, PQ_ChannelData_t *Channel); + + #endif diff --git a/apps/pq_lib/fsw/public_inc/pq_classifier.h b/apps/pq_lib/fsw/public_inc/pq_classifier.h index 8aa7857c9..a6fe09cfa 100644 --- a/apps/pq_lib/fsw/public_inc/pq_classifier.h +++ b/apps/pq_lib/fsw/public_inc/pq_classifier.h @@ -77,10 +77,8 @@ ** \param [in,out] DataMsgPtr A #CFE_SB_MsgPtr_t pointer of ** the message to classify ** -** \param [in,out] HkTlmPtr A #PQ_HkTlm_t pointer of telemetry to -** update ** *************************************************************************/ -void PQ_Classifier_Run(PQ_ChannelData_t *channel, CFE_SB_MsgPtr_t DataMsgPtr, PQ_HkTlm_t *HkTlmPtr); +void PQ_Classifier_Run(PQ_ChannelData_t *channel, CFE_SB_MsgPtr_t DataMsgPtr); #endif diff --git a/apps/pq_lib/fsw/public_inc/pq_message_flow.h b/apps/pq_lib/fsw/public_inc/pq_message_flow.h index c1870434e..e715b0786 100644 --- a/apps/pq_lib/fsw/public_inc/pq_message_flow.h +++ b/apps/pq_lib/fsw/public_inc/pq_message_flow.h @@ -69,11 +69,11 @@ ** Queued Message Count, Software Bus Message Count, and Sent ** Message Count. ** -** \param [in] channel A #PQ_ChannelData_t pointer that +** \param [in] Channel A #PQ_ChannelData_t pointer that ** references the channel data structure ** *************************************************************************/ -void PQ_MessageFlow_ResetCountsAll(PQ_ChannelData_t *channel); +void PQ_MessageFlow_ResetCountsAll(PQ_ChannelData_t *Channel); /************************************************************************/ @@ -91,7 +91,7 @@ void PQ_MessageFlow_ResetCountsAll(PQ_ChannelData_t *channel); ** 0 if successful. OSAL error if unsuccessful. ** *************************************************************************/ -int32 PQ_MessageFlow_TeardownAll(PQ_ChannelData_t *channel); +int32 PQ_MessageFlow_TeardownAll(PQ_ChannelData_t *Channel); /************************************************************************/ @@ -101,12 +101,15 @@ int32 PQ_MessageFlow_TeardownAll(PQ_ChannelData_t *channel); ** This function is called at when the application has loaded a new ** configuration table. ** +** \param [in] channel A #PQ_ChannelData_t pointer that +** references the channel data structure +** ** \return ** CFE_SUCCESS if no error occurred. On error, an OSAL error is returned ** indicating what error occured. ** *************************************************************************/ -int32 PQ_MessageFlow_Buildup(PQ_ChannelData_t *channel); +int32 PQ_MessageFlow_Buildup(PQ_ChannelData_t *Channel); /************************************************************************/ @@ -119,7 +122,7 @@ int32 PQ_MessageFlow_Buildup(PQ_ChannelData_t *channel); ** \param [in] MsgID A #CFE_SB_MsgId_t that references the ** software bus message. ** -** \param [in] channel A #PQ_ChannelData_t pointer that +** \param [in] Channel A #PQ_ChannelData_t pointer that ** references the channel data structure ** ** \param [in,out] Index Pointer to a value that will be set to the array @@ -136,7 +139,7 @@ int32 PQ_MessageFlow_Buildup(PQ_ChannelData_t *channel); ** pointer when unsuccessful. ** *************************************************************************/ -PQ_MessageFlow_t* PQ_MessageFlow_GetObject(PQ_ChannelData_t *channel, +PQ_MessageFlow_t* PQ_MessageFlow_GetObject(PQ_ChannelData_t *Channel, CFE_SB_MsgId_t MsgID, uint32 *Index); @@ -148,7 +151,7 @@ PQ_MessageFlow_t* PQ_MessageFlow_GetObject(PQ_ChannelData_t *channel, ** This function is used by the classifier to get the priority ** queue object from the message flow object. ** -** \param [in] channel A #PQ_ChannelData_t pointer that +** \param [in] Channel A #PQ_ChannelData_t pointer that ** references the channel data structure ** ** \param [in] MsgFlow A #PQ_MessageFlow_t pointer that @@ -163,7 +166,7 @@ PQ_MessageFlow_t* PQ_MessageFlow_GetObject(PQ_ChannelData_t *channel, ** pointer when unsuccessful. ** *************************************************************************/ -PQ_PriorityQueue_t* PQ_MessageFlow_GetPQueue(PQ_ChannelData_t *channel, +PQ_PriorityQueue_t* PQ_MessageFlow_GetPQueue(PQ_ChannelData_t *Channel, PQ_MessageFlow_t *MsgFlow, uint32 *Index); @@ -174,7 +177,8 @@ PQ_PriorityQueue_t* PQ_MessageFlow_GetPQueue(PQ_ChannelData_t *channel, ** This function adds message flow, if the message flow is not ** found on a given channel. ** -** \param [in] ChannelIdx Index for a given channel +** \param [in] Channel A #PQ_ChannelData_t pointer that +** references the channel data structure ** ** \param [in] MsgID A #CFE_SB_MsgId_t that references the ** software bus message. @@ -187,7 +191,7 @@ PQ_PriorityQueue_t* PQ_MessageFlow_GetPQueue(PQ_ChannelData_t *channel, ** TRUE if added. FALSE if not. ** *************************************************************************/ -osalbool PQ_MessageFlow_Add(uint16 ChannelIdx, CFE_SB_MsgId_t MsgID, uint16 MsgLimit, uint16 PQueueIdx); +osalbool PQ_MessageFlow_Add(PQ_ChannelData_t *Channel, CFE_SB_MsgId_t MsgID, uint16 MsgLimit, uint16 PQueueIdx); /************************************************************************/ @@ -197,8 +201,8 @@ osalbool PQ_MessageFlow_Add(uint16 ChannelIdx, CFE_SB_MsgId_t MsgID, uint16 MsgL ** This function removes a message flow from a given channel if it ** is found. ** -** \param [in] ChannelIdx Index for a given channel -** Ground = 0, Radio = 1, Storage = 2 +** \param [in] Channel A #PQ_ChannelData_t pointer that +** references the channel data structure ** ** \param [in] MsgID A #CFE_SB_MsgId_t that references the ** software bus message. @@ -207,7 +211,7 @@ osalbool PQ_MessageFlow_Add(uint16 ChannelIdx, CFE_SB_MsgId_t MsgID, uint16 MsgL ** TRUE if message flow is found and removed. FALSE if not. ** *************************************************************************/ -osalbool PQ_MessageFlow_Remove(uint16 ChannelIdx, CFE_SB_MsgId_t MsgID); +osalbool PQ_MessageFlow_Remove(PQ_ChannelData_t *Channel, CFE_SB_MsgId_t MsgID); /************************************************************************/ @@ -217,8 +221,8 @@ osalbool PQ_MessageFlow_Remove(uint16 ChannelIdx, CFE_SB_MsgId_t MsgID); ** This function queries a message flow to determine if it exists ** on a given channel. ** -** \param [in] ChannelIdx Index for a given channel -** Ground = 0, Radio = 1, Storage = 2 +** \param [in] Channel A #PQ_ChannelData_t pointer that +** references the channel data structure ** ** \param [in] MsgID A #CFE_SB_MsgId_t that references the ** software bus message. @@ -227,7 +231,7 @@ osalbool PQ_MessageFlow_Remove(uint16 ChannelIdx, CFE_SB_MsgId_t MsgID); ** TRUE if message flow is found. FALSE if not found. ** *************************************************************************/ -osalbool PQ_MessageFlow_Query(uint16 ChannelIdx, CFE_SB_MsgId_t MsgID); +osalbool PQ_MessageFlow_Query(PQ_ChannelData_t *Channel, CFE_SB_MsgId_t MsgID); diff --git a/apps/pq_lib/fsw/public_inc/pq_output_queue.h b/apps/pq_lib/fsw/public_inc/pq_output_queue.h index 3cc4ebac8..8cea6e85a 100644 --- a/apps/pq_lib/fsw/public_inc/pq_output_queue.h +++ b/apps/pq_lib/fsw/public_inc/pq_output_queue.h @@ -65,15 +65,15 @@ ** This function is called by the Scheduler to push a message onto ** the output channel for downlink. ** -** \param [in] ChannelIdx The index of the channel to push the -** message to. +** \param [in] Channel A #PQ_ChannelData_t pointer that +** references the channel data structure ** ** \param [in] Buffer Buffer containing the message to push. ** ** \param [in] Size Size of the message, in bytes, to push. ** *************************************************************************/ -int32 PQ_OutputQueue_Push(PQ_ChannelData_t* channel, const char* Buffer, uint32 Size); +int32 PQ_OutputQueue_Push(PQ_ChannelData_t* Channel, const char* Buffer, uint32 Size); @@ -84,8 +84,11 @@ int32 PQ_OutputQueue_Push(PQ_ChannelData_t* channel, const char* Buffer, uint32 ** This function is call at application termination and empties ** the queue, deallocating each message its popped off the queue. ** +** \param [in] Channel A #PQ_ChannelData_t pointer that +** references the channel data structure +** *************************************************************************/ -void PQ_OutputQueue_CleanupAll(PQ_ChannelData_t* channel); +void PQ_OutputQueue_CleanupAll(PQ_ChannelData_t* Channel); @@ -97,8 +100,11 @@ void PQ_OutputQueue_CleanupAll(PQ_ChannelData_t* channel); ** It resets all metrics, which include the Sent Counts and the ** Highwater Marks. ** +** \param [in] Channel A #PQ_ChannelData_t pointer that +** references the channel data structure +** *************************************************************************/ -void PQ_OutputQueue_ResetCounts(PQ_ChannelData_t* channel); +void PQ_OutputQueue_ResetCounts(PQ_ChannelData_t* Channel); @@ -110,8 +116,11 @@ void PQ_OutputQueue_ResetCounts(PQ_ChannelData_t* channel); ** a new configuration table. This will flush the queues and ** deallocate the messages contained in the queues. ** +** \param [in] Channel A #PQ_ChannelData_t pointer that +** references the channel data structure +** *************************************************************************/ -int32 PQ_OutputQueue_Teardown(PQ_ChannelData_t* channel); +int32 PQ_OutputQueue_Teardown(PQ_ChannelData_t* Channel); @@ -122,13 +131,16 @@ int32 PQ_OutputQueue_Teardown(PQ_ChannelData_t* channel); ** This function is called at when the application has loaded a new ** configuration table. ** +** \param [in] Channel A #PQ_ChannelData_t pointer that +** references the channel data structure +** ** \returns ** 0 if no error occurred. On error, an OSAL error is returned ** indicating what error occured. ** \endreturns ** *************************************************************************/ -int32 PQ_OutputQueue_Buildup(PQ_ChannelData_t* channel); +int32 PQ_OutputQueue_Buildup(PQ_ChannelData_t* Channel); @@ -139,19 +151,18 @@ int32 PQ_OutputQueue_Buildup(PQ_ChannelData_t* channel); ** This function is called by the Scheduler to queue a message ** for downlink. ** +** \param [in] Channel A #PQ_ChannelData_t pointer that +** references the channel data structure +** ** \param [in] MsgPtr A #CFE_SB_Msg_t pointer that ** references the software bus message - -** -** \param [in] OutChannel A #PQ_TlmOutputChannelQueue_t pointer to -** the output channel object. ** ** \returns ** 0 if successful. OSAL error if unsuccessful. ** \endreturns ** *************************************************************************/ -int32 PQ_OutputQueue_QueueMsg(PQ_ChannelData_t* channel, CFE_SB_MsgPtr_t MsgPtr); +int32 PQ_OutputQueue_QueueMsg(PQ_ChannelData_t* Channel, CFE_SB_MsgPtr_t MsgPtr); @@ -163,13 +174,14 @@ int32 PQ_OutputQueue_QueueMsg(PQ_ChannelData_t* channel, CFE_SB_MsgPtr_t MsgPtr) ** query an output channel. This will raise an information event ** containing text with Sent Count and Highwater Mark. ** -** \param [in] OutputChannelIdx Index of the output channel to query. +** \param [in] Channel A #PQ_ChannelData_t pointer that +** references the channel data structure ** ** \returns ** TRUE if successful. FALSE if an error occurred. ** \endreturns ** *************************************************************************/ -boolean PQ_OutputChannel_Query(uint16 ChannelIdx); +boolean PQ_OutputChannel_Query(PQ_ChannelData_t* Channel); #endif diff --git a/apps/pq_lib/fsw/public_inc/pq_priority_queue.h b/apps/pq_lib/fsw/public_inc/pq_priority_queue.h index 0923f4be2..10b3ba0bf 100644 --- a/apps/pq_lib/fsw/public_inc/pq_priority_queue.h +++ b/apps/pq_lib/fsw/public_inc/pq_priority_queue.h @@ -66,11 +66,11 @@ ** It resets all metrics, which include the Dropped Message Counts, ** and Queued Message Counts. ** -** \param [in] channel A #PQ_ChannelData_t pointer that +** \param [in] Channel A #PQ_ChannelData_t pointer that ** references the channel data structure ** *************************************************************************/ -void PQ_PriorityQueue_ResetCountsAll(PQ_ChannelData_t *channel); +void PQ_PriorityQueue_ResetCountsAll(PQ_ChannelData_t *Channel); /************************************************************************/ @@ -80,7 +80,7 @@ void PQ_PriorityQueue_ResetCountsAll(PQ_ChannelData_t *channel); ** This function is called at when the application has loaded a new ** configuration table. ** -** \param [in] channel A #PQ_ChannelData_t pointer that +** \param [in] Channel A #PQ_ChannelData_t pointer that ** references the channel data structure ** ** \return @@ -88,7 +88,7 @@ void PQ_PriorityQueue_ResetCountsAll(PQ_ChannelData_t *channel); ** is returned indicating what error occured. ** *************************************************************************/ -int32 PQ_PriorityQueue_BuildupAll(PQ_ChannelData_t *channel); +int32 PQ_PriorityQueue_BuildupAll(PQ_ChannelData_t *Channel); /************************************************************************/ @@ -98,6 +98,9 @@ int32 PQ_PriorityQueue_BuildupAll(PQ_ChannelData_t *channel); ** This function is called by the Classifier to queue a message ** into a priority queue. ** +** \param [in] Channel A #PQ_ChannelData_t pointer that +** references the channel data structure +** ** \param [in] MsgPtr A #CFE_SB_Msg_t pointer that ** references the software bus message @@ -110,7 +113,7 @@ int32 PQ_PriorityQueue_BuildupAll(PQ_ChannelData_t *channel); ** \endreturns ** *************************************************************************/ -int32 PQ_PriorityQueue_QueueMsg(PQ_ChannelData_t *channel, CFE_SB_MsgPtr_t MsgPtr, uint32 PQueueIndex); +int32 PQ_PriorityQueue_QueueMsg(PQ_ChannelData_t *Channel, CFE_SB_MsgPtr_t MsgPtr, uint32 PQueueIndex); @@ -122,14 +125,14 @@ int32 PQ_PriorityQueue_QueueMsg(PQ_ChannelData_t *channel, CFE_SB_MsgPtr_t MsgPt ** a new configuration table. This will flush the queues and ** deallocate the messages contained in the queues. ** -** \param [in] channel A #PQ_ChannelData_t pointer that +** \param [in] Channel A #PQ_ChannelData_t pointer that ** references the channel data structure ** ** \return ** 0 if successful. OSAL error if unsuccessful. ** *************************************************************************/ -int32 PQ_PriorityQueue_TeardownAll(PQ_ChannelData_t *channel); +int32 PQ_PriorityQueue_TeardownAll(PQ_ChannelData_t *Channel); @@ -142,7 +145,8 @@ int32 PQ_PriorityQueue_TeardownAll(PQ_ChannelData_t *channel); ** text format: ** "PQI= CI= S= ML= QT= D= Q= CQ= HWM=" ** -** \param [in] ChannelIdx Index for a given channel +** \param [in] Channel A #PQ_ChannelData_t pointer that +** references the channel data structure ** ** \param [in] PQueueIdx Index of the priority queue. ** @@ -150,7 +154,7 @@ int32 PQ_PriorityQueue_TeardownAll(PQ_ChannelData_t *channel); ** TRUE if priority queue is found. FALSE if not found. ** *************************************************************************/ -osalbool PQ_PriorityQueue_Query(uint16 ChannelIdx, uint16 PQueueIdx); +osalbool PQ_PriorityQueue_Query(PQ_ChannelData_t *Channel, uint16 PQueueIdx); /************************************************************************/ @@ -160,7 +164,7 @@ osalbool PQ_PriorityQueue_Query(uint16 ChannelIdx, uint16 PQueueIdx); ** This function is used internally to determine if an index is ** to a valid priority queue. ** -** \param [in] channel A #PQ_ChannelData_t pointer that +** \param [in] Channel A #PQ_ChannelData_t pointer that ** references the channel data structure ** ** \param [in] PQueueIdx Index of the priority queue. @@ -169,7 +173,7 @@ osalbool PQ_PriorityQueue_Query(uint16 ChannelIdx, uint16 PQueueIdx); ** TRUE if priority queue is valid. FALSE if not. ** *************************************************************************/ -osalbool PQ_PriorityQueue_IsValid(PQ_ChannelData_t *channel, uint32 PQueueIdx); +osalbool PQ_PriorityQueue_IsValid(PQ_ChannelData_t *Channel, uint32 PQueueIdx); #endif diff --git a/apps/pq_lib/fsw/public_inc/pq_structs.h b/apps/pq_lib/fsw/public_inc/pq_structs.h index 6776c4ad1..1b9c74918 100644 --- a/apps/pq_lib/fsw/public_inc/pq_structs.h +++ b/apps/pq_lib/fsw/public_inc/pq_structs.h @@ -591,38 +591,38 @@ typedef struct } PQ_HkTlm_t; -/** -** \brief PQ Operational Data Structure -*/ -typedef struct -{ - /* Task-related */ - /** \brief Task Run Status */ - //uint32 runStatus; +///** +//** \brief PQ Operational Data Structure +//*/ +//typedef struct +//{ + ///* Task-related */ + ///** \brief Task Run Status */ + ////uint32 runStatus; - /** \brief Housekeeping Telemetry for downlink */ - PQ_HkTlm_t HkTlm; + ///** \brief Housekeeping Telemetry for downlink */ + //PQ_HkTlm_t HkTlm; - /** \brief Mutex for PQ AppData */ - uint32 MutexID; + ///** \brief Mutex for PQ AppData */ + //uint32 MutexID; - /** \brief Channel Data */ - PQ_ChannelData_t ChannelData[PQ_MAX_CHANNELS]; + ///** \brief Channel Data */ + //PQ_ChannelData_t ChannelData[PQ_MAX_CHANNELS]; - /** \brief CFE Event Table */ - //CFE_EVS_BinFilter_t EventTbl[CFE_EVS_MAX_EVENT_FILTERS]; - /* CFE_EVS_BinFilter_t is two uint16's */ + ///** \brief CFE Event Table */ + ////CFE_EVS_BinFilter_t EventTbl[CFE_EVS_MAX_EVENT_FILTERS]; + ///* CFE_EVS_BinFilter_t is two uint16's */ - uint16 OutMessageSize; + //uint16 OutMessageSize; - /**\brief Scheduling Pipe ID */ - //CFE_SB_PipeId_t SchPipeId; + ///**\brief Scheduling Pipe ID */ + ////CFE_SB_PipeId_t SchPipeId; - /** \brief Command Pipe ID */ - //CFE_SB_PipeId_t CmdPipeId; + ///** \brief Command Pipe ID */ + ////CFE_SB_PipeId_t CmdPipeId; -} PQ_AppData_t; +//} PQ_AppData_t; -extern PQ_AppData_t PQ_AppData; +//extern PQ_AppData_t PQ_AppData; #endif diff --git a/apps/pq_lib/fsw/src/pq_channel.c b/apps/pq_lib/fsw/src/pq_channel.c index 97c5b0ab7..c6b0a3bdf 100644 --- a/apps/pq_lib/fsw/src/pq_channel.c +++ b/apps/pq_lib/fsw/src/pq_channel.c @@ -541,3 +541,22 @@ uint8 PQ_Channel_State(PQ_ChannelData_t *Channel) //return TRUE; //} + + +void PQ_Channel_CopyStats(PQ_HkTlm_t *HkTlm, PQ_ChannelData_t *Channel) +{ + //PQ_Channel_LockByRef(channel); + HkTlm->QueuedInOutputChannel = Channel->OutputQueue.CurrentlyQueuedCnt; + HkTlm->uiSentMsgCountChannel = Channel->SentMsgCount; + HkTlm->uiQueuedMsgCountChannel = Channel->QueuedMsgCount; + HkTlm->uiDropMsgCountChannel = Channel->DropMsgCount; + HkTlm->uiFailedMsgCountChannel = Channel->FailedMsgCount; + HkTlm->uiBytesSentChannel = Channel->BytesSent; + HkTlm->ChannelMemInfo.MemInUse = Channel->MemInUse; + HkTlm->ChannelMemInfo.PeakMemInUse = Channel->PeakMemInUse; + HkTlm->usTotalMsgDropped = Channel->DropMsgCount; + //PQ_Channel_UnlockByRef(channel); + //(void) OS_MutSemTake(TO_AppData.MutexID); + HkTlm->SentBytes = Channel->OutputQueue.SentBytes; + //(void) OS_MutSemGive(TO_AppData.MutexID); +} diff --git a/apps/pq_lib/fsw/src/pq_classifier.c b/apps/pq_lib/fsw/src/pq_classifier.c index e5e5f5a53..a020f34c1 100644 --- a/apps/pq_lib/fsw/src/pq_classifier.c +++ b/apps/pq_lib/fsw/src/pq_classifier.c @@ -43,7 +43,7 @@ /* Run the Classifier algorithm */ /* */ /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ -void PQ_Classifier_Run(PQ_ChannelData_t *channel, CFE_SB_MsgPtr_t DataMsgPtr, PQ_HkTlm_t *HkTlmPtr) +void PQ_Classifier_Run(PQ_ChannelData_t *channel, CFE_SB_MsgPtr_t DataMsgPtr) { int32 status = CFE_SUCCESS; PQ_PriorityQueue_t *pqueue = NULL; @@ -66,7 +66,7 @@ void PQ_Classifier_Run(PQ_ChannelData_t *channel, CFE_SB_MsgPtr_t DataMsgPtr, PQ PQ_MAX_MSG_LENGTH, (unsigned short)DataMsgID, (unsigned short)channel->channelIdx); - HkTlmPtr->usTotalMsgDropped++; + //HkTlmPtr->usTotalMsgDropped++; channel->DropMsgCount++; goto end_of_function; } @@ -83,7 +83,7 @@ void PQ_Classifier_Run(PQ_ChannelData_t *channel, CFE_SB_MsgPtr_t DataMsgPtr, PQ "Classifier Recvd invalid msgId (0x%04X) or message flow was removed on channel (%u)", (unsigned short)DataMsgID, (unsigned short)channel->channelIdx); - HkTlmPtr->usTotalMsgDropped++; + //HkTlmPtr->usTotalMsgDropped++; channel->DropMsgCount++; goto end_of_function; } @@ -112,7 +112,7 @@ void PQ_Classifier_Run(PQ_ChannelData_t *channel, CFE_SB_MsgPtr_t DataMsgPtr, PQ /* Queue is full. Increment counters and drop the message. */ channel->DumpTbl.MessageFlow[msgFlowIndex].DroppedMsgCnt++; - HkTlmPtr->usTotalMsgDropped++; + //HkTlmPtr->usTotalMsgDropped++; channel->DropMsgCount++; (void) CFE_EVS_SendEvent(PQ_MSG_DROP_FROM_FLOW_DBG_EID, diff --git a/apps/pq_lib/fsw/src/pq_config_utils.c b/apps/pq_lib/fsw/src/pq_config_utils.c index 3af21f19d..f20e81850 100644 --- a/apps/pq_lib/fsw/src/pq_config_utils.c +++ b/apps/pq_lib/fsw/src/pq_config_utils.c @@ -59,7 +59,6 @@ /************************************************************************ ** External Global Variables *************************************************************************/ -extern PQ_AppData_t PQ_AppData; /************************************************************************ ** Global Variables diff --git a/apps/pq_lib/fsw/src/pq_lib.c b/apps/pq_lib/fsw/src/pq_lib.c index df8231451..82660971e 100644 --- a/apps/pq_lib/fsw/src/pq_lib.c +++ b/apps/pq_lib/fsw/src/pq_lib.c @@ -2,9 +2,6 @@ #include "cfe.h" #include "pq_events.h" -PQ_AppData_t PQ_AppData; - - int32 PQ_LibInit(void) { @@ -15,7 +12,6 @@ int32 PQ_LibInit(void) }/* End PQ_LibInit */ - //int32 PQ_InitData(void) //{ //int32 status = CFE_SUCCESS; diff --git a/apps/pq_lib/fsw/src/pq_message_flow.c b/apps/pq_lib/fsw/src/pq_message_flow.c index df7060764..a37cafd1f 100644 --- a/apps/pq_lib/fsw/src/pq_message_flow.c +++ b/apps/pq_lib/fsw/src/pq_message_flow.c @@ -42,17 +42,17 @@ /* Build up all the message flows */ /* */ /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ -int32 PQ_MessageFlow_Buildup(PQ_ChannelData_t *channel) +int32 PQ_MessageFlow_Buildup(PQ_ChannelData_t *Channel) { uint32 i; int32 status = CFE_SUCCESS; - if (NULL == channel) + if (NULL == Channel) { return PQ_MESSAGE_FLOW_BAD_ARG_ERR; } - if (NULL == channel->ConfigTblPtr) + if (NULL == Channel->ConfigTblPtr) { return PQ_MESSAGE_FLOW_NO_TABLE_ERR; } @@ -91,17 +91,17 @@ int32 PQ_MessageFlow_Buildup(PQ_ChannelData_t *channel) /* Teardown all the message flows */ /* */ /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ -int32 PQ_MessageFlow_TeardownAll(PQ_ChannelData_t *channel) +int32 PQ_MessageFlow_TeardownAll(PQ_ChannelData_t *Channel) { uint32 i; int32 status = CFE_SUCCESS; - if (NULL == channel) + if (NULL == Channel) { return PQ_MESSAGE_FLOW_BAD_ARG_ERR; } - if (NULL == channel->ConfigTblPtr) + if (NULL == Channel->ConfigTblPtr) { return PQ_MESSAGE_FLOW_NO_TABLE_ERR; } @@ -137,21 +137,21 @@ int32 PQ_MessageFlow_TeardownAll(PQ_ChannelData_t *channel) /* Reset all runtime metrics. */ /* */ /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ -void PQ_MessageFlow_ResetCountsAll(PQ_ChannelData_t *channel) +void PQ_MessageFlow_ResetCountsAll(PQ_ChannelData_t *Channel) { uint32 i; uint32 j; - if (NULL == channel) + if (NULL == Channel) { return; } - + for (i = 0; i < PQ_MAX_MESSAGE_FLOWS; ++i) { - channel->DumpTbl.MessageFlow[i].DroppedMsgCnt = 0; - channel->DumpTbl.MessageFlow[i].QueuedMsgCnt = 0; - channel->DumpTbl.MessageFlow[i].SBMsgCnt = 0; + Channel->DumpTbl.MessageFlow[i].DroppedMsgCnt = 0; + Channel->DumpTbl.MessageFlow[i].QueuedMsgCnt = 0; + Channel->DumpTbl.MessageFlow[i].SBMsgCnt = 0; } } @@ -162,26 +162,26 @@ void PQ_MessageFlow_ResetCountsAll(PQ_ChannelData_t *channel) /* Get message flow object */ /* */ /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ -PQ_MessageFlow_t* PQ_MessageFlow_GetObject(PQ_ChannelData_t *channel, CFE_SB_MsgId_t MsgID, uint32 *Index) +PQ_MessageFlow_t* PQ_MessageFlow_GetObject(PQ_ChannelData_t *Channel, CFE_SB_MsgId_t MsgID, uint32 *Index) { PQ_MessageFlow_t *outMsgFlow = NULL; uint32 i; - if (NULL == channel) + if (NULL == Channel) { return NULL; } - if (NULL == channel->ConfigTblPtr) + if (NULL == Channel->ConfigTblPtr) { return NULL; } for (i = 0; i < PQ_MAX_MESSAGE_FLOWS; ++i) { - if (channel->ConfigTblPtr->MessageFlow[i].MsgId == MsgID) + if (Channel->ConfigTblPtr->MessageFlow[i].MsgId == MsgID) { - outMsgFlow = &channel->ConfigTblPtr->MessageFlow[i]; + outMsgFlow = &Channel->ConfigTblPtr->MessageFlow[i]; if (NULL != Index) { @@ -201,7 +201,7 @@ PQ_MessageFlow_t* PQ_MessageFlow_GetObject(PQ_ChannelData_t *channel, CFE_SB_Msg /* Get the priority queue for a specific message flow */ /* */ /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ -PQ_PriorityQueue_t* PQ_MessageFlow_GetPQueue(PQ_ChannelData_t *channel, PQ_MessageFlow_t *msgFlow, uint32 *Index) +PQ_PriorityQueue_t* PQ_MessageFlow_GetPQueue(PQ_ChannelData_t *Channel, PQ_MessageFlow_t *msgFlow, uint32 *Index) { uint32 idx = 0; PQ_PriorityQueue_t* outPQueue = NULL; @@ -211,12 +211,12 @@ PQ_PriorityQueue_t* PQ_MessageFlow_GetPQueue(PQ_ChannelData_t *channel, PQ_Messa return NULL; } - if (NULL == channel) + if (NULL == Channel) { return NULL; } - if (NULL == channel->ConfigTblPtr) + if (NULL == Channel->ConfigTblPtr) { return NULL; } @@ -232,7 +232,7 @@ PQ_PriorityQueue_t* PQ_MessageFlow_GetPQueue(PQ_ChannelData_t *channel, PQ_Messa *Index = idx; } - outPQueue = &channel->ConfigTblPtr->PriorityQueue[idx]; + outPQueue = &Channel->ConfigTblPtr->PriorityQueue[idx]; return outPQueue; } @@ -245,7 +245,7 @@ PQ_PriorityQueue_t* PQ_MessageFlow_GetPQueue(PQ_ChannelData_t *channel, PQ_Messa /* */ /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ osalbool PQ_MessageFlow_Add( - uint16 ChannelIdx, + PQ_ChannelData_t *Channel, CFE_SB_MsgId_t MsgID, uint16 MsgLimit, uint16 PQueueIdx) @@ -258,56 +258,45 @@ osalbool PQ_MessageFlow_Add( uint8 queueIdx = 0; uint32 decimationFactorsSum = 0; - PQ_ChannelData_t *channel = NULL; - - /* First, check if the channel index is valid. */ - if (ChannelIdx >= PQ_MAX_CHANNELS) + if (NULL == Channel) { - (void) CFE_EVS_SendEvent(PQ_CMD_ADD_MSG_FLOW_ERR_EID, - CFE_EVS_ERROR, - "Invalid channel (channel = %d, but max = %d).", - ChannelIdx, PQ_MAX_CHANNELS); - return FALSE; } - - channel = &PQ_AppData.ChannelData[ChannelIdx]; - if (NULL == channel->ConfigTblPtr) + if (NULL == Channel->ConfigTblPtr) { (void) CFE_EVS_SendEvent(PQ_MSG_FLOW_MISSING_TBL_ERR_EID, CFE_EVS_ERROR, - "Channel missing valid table data (channel = %d).", - ChannelIdx); + "Channel %lu missing valid table data.", Channel->channelIdx); return FALSE; } - PQ_Channel_LockByRef(channel); + PQ_Channel_LockByRef(Channel); /* Next, see if the channel is open. */ - if (channel->State != PQ_CHANNEL_OPENED) + if (Channel->State != PQ_CHANNEL_OPENED) { (void) CFE_EVS_SendEvent(PQ_CMD_ADD_MSG_FLOW_ERR_EID, CFE_EVS_ERROR, - "Channel (%d) not open.", ChannelIdx); + "Channel %lu not open.", Channel->channelIdx); - PQ_Channel_UnlockByRef(channel); + PQ_Channel_UnlockByRef(Channel); return FALSE; } /* Next, see if there is a flow with this message ID. */ - msgFlow = PQ_MessageFlow_GetObject(channel, MsgID, NULL); + msgFlow = PQ_MessageFlow_GetObject(Channel, MsgID, NULL); if (NULL != msgFlow) { /* A message flow already exists. Reject the request. */ (void) CFE_EVS_SendEvent(PQ_CMD_ADD_MSG_FLOW_ERR_EID, CFE_EVS_ERROR, - "Message flow is already defined for channel %d.", - ChannelIdx); + "Message flow is already defined for channel %lu.", + Channel->channelIdx); - PQ_Channel_UnlockByRef(channel); + PQ_Channel_UnlockByRef(Channel); return FALSE; } @@ -317,20 +306,21 @@ osalbool PQ_MessageFlow_Add( */ for (i = 0; i < PQ_MAX_MESSAGE_FLOWS; ++i) { - if (channel->ConfigTblPtr->MessageFlow[i].MsgId == 0) + if (Channel->ConfigTblPtr->MessageFlow[i].MsgId == 0) { /* We found an unused entry. Set the message flow definition * here. First, make sure the requested priority queue is valid. */ - if (PQ_PriorityQueue_IsValid(channel, PQueueIdx) == FALSE) + if (PQ_PriorityQueue_IsValid(Channel, PQueueIdx) == FALSE) { /* This is an invalid priority queue. */ (void) CFE_EVS_SendEvent(PQ_CMD_ADD_MSG_FLOW_ERR_EID, CFE_EVS_ERROR, - "Priority Queue Index %u is invalid for channel %d.", - PQueueIdx, ChannelIdx); + "Priority Queue Index %u is invalid for channel %lu.", + PQueueIdx, + Channel->channelIdx); - PQ_Channel_UnlockByRef(channel); + PQ_Channel_UnlockByRef(Channel); return FALSE; } @@ -353,14 +343,14 @@ osalbool PQ_MessageFlow_Add( /* Now that the message was successfully subscribed to, set the * message flow definition. */ - channel->ConfigTblPtr->MessageFlow[i].MsgId = MsgID; - channel->ConfigTblPtr->MessageFlow[i].MsgLimit = MsgLimit; - channel->ConfigTblPtr->MessageFlow[i].PQueueID = PQueueIdx; - channel->DumpTbl.MessageFlow[i].DroppedMsgCnt = 0; - channel->DumpTbl.MessageFlow[i].QueuedMsgCnt = 0; - channel->DumpTbl.MessageFlow[i].SBMsgCnt = 0; + Channel->ConfigTblPtr->MessageFlow[i].MsgId = MsgID; + Channel->ConfigTblPtr->MessageFlow[i].MsgLimit = MsgLimit; + Channel->ConfigTblPtr->MessageFlow[i].PQueueID = PQueueIdx; + Channel->DumpTbl.MessageFlow[i].DroppedMsgCnt = 0; + Channel->DumpTbl.MessageFlow[i].QueuedMsgCnt = 0; + Channel->DumpTbl.MessageFlow[i].SBMsgCnt = 0; - CFE_TBL_Modified(channel->ConfigTblHdl); + CFE_TBL_Modified(Channel->ConfigTblHdl); added = TRUE; break; @@ -371,11 +361,11 @@ osalbool PQ_MessageFlow_Add( { (void) CFE_EVS_SendEvent(PQ_CMD_ADD_MSG_FLOW_ERR_EID, CFE_EVS_ERROR, - "Failed to add message flow. No unused slots available on channel %d.", - ChannelIdx); + "Failed to add message flow. No unused slots available on channel %lu.", + Channel->channelIdx); } - PQ_Channel_UnlockByRef(channel); + PQ_Channel_UnlockByRef(Channel); return added; } @@ -387,91 +377,80 @@ osalbool PQ_MessageFlow_Add( /* Remove a message flow */ /* */ /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ -osalbool PQ_MessageFlow_Remove(uint16 ChannelIdx, CFE_SB_MsgId_t MsgID) +osalbool PQ_MessageFlow_Remove(PQ_ChannelData_t *Channel, CFE_SB_MsgId_t MsgID) { uint32 msgFlowIndex = 0; uint32 i = 0; PQ_MessageFlow_t *msgFlow = NULL; int32 status = CFE_SUCCESS; - PQ_ChannelData_t *channel = NULL; - /* First, check if the channel index is valid. */ - if (ChannelIdx >= PQ_MAX_CHANNELS) + if (NULL == Channel) { - (void) CFE_EVS_SendEvent(PQ_CMD_REMOVE_MSG_FLOW_ERR_EID, - CFE_EVS_ERROR, - "Invalid channel (channel = %d, but max = %d).", - ChannelIdx, PQ_MAX_CHANNELS); - return FALSE; } - - channel = &PQ_AppData.ChannelData[ChannelIdx]; - if (NULL == channel->ConfigTblPtr) + if (NULL == Channel->ConfigTblPtr) { (void) CFE_EVS_SendEvent(PQ_MSG_FLOW_MISSING_TBL_ERR_EID, CFE_EVS_ERROR, - "Channel missing valid table data (channel = %d).", - ChannelIdx); + "Channel %lu missing valid table data.", Channel->channelIdx); return FALSE; } - PQ_Channel_LockByRef(channel); + PQ_Channel_LockByRef(Channel); /* Next, see if the channel is open. */ - if (channel->State != PQ_CHANNEL_OPENED) + if (Channel->State != PQ_CHANNEL_OPENED) { (void) CFE_EVS_SendEvent(PQ_CMD_REMOVE_MSG_FLOW_ERR_EID, CFE_EVS_ERROR, - "Channel (%d) not open.", ChannelIdx); + "Channel %lu not open.", Channel->channelIdx); - PQ_Channel_UnlockByRef(channel); + PQ_Channel_UnlockByRef(Channel); return FALSE; } /* Next, see if there is a flow with this message ID */ - msgFlow = PQ_MessageFlow_GetObject(channel, MsgID, &msgFlowIndex); + msgFlow = PQ_MessageFlow_GetObject(Channel, MsgID, &msgFlowIndex); if (NULL == msgFlow) { /* A message flow does not exist. Reject the request. */ (void) CFE_EVS_SendEvent(PQ_CMD_REMOVE_MSG_FLOW_ERR_EID, CFE_EVS_ERROR, - "Message flow is not defined for channel %d.", - ChannelIdx); + "Message flow is not defined for channel %lu.", Channel->channelIdx); - PQ_Channel_UnlockByRef(channel); + PQ_Channel_UnlockByRef(Channel); return FALSE; } /* Now that we have the message flow object, unsubscribe from it and clear * the entries. */ - status = CFE_SB_Unsubscribe(msgFlow->MsgId, channel->DataPipeId); + status = CFE_SB_Unsubscribe(msgFlow->MsgId, Channel->DataPipeId); if (status != CFE_SUCCESS) { (void) CFE_EVS_SendEvent(PQ_CMD_REMOVE_MSG_FLOW_ERR_EID, CFE_EVS_ERROR, - "Message flow failed to unsubscribe from 0x%08X on channel %d. (%ld)", - msgFlow->MsgId, ChannelIdx, status); + "Message flow failed to unsubscribe from 0x%08X on channel %lu. (%ld)", + msgFlow->MsgId, Channel->channelIdx, status); - PQ_Channel_UnlockByRef(channel); + PQ_Channel_UnlockByRef(Channel); return FALSE; } /* Now just clear the entries. */ - channel->ConfigTblPtr->MessageFlow[msgFlowIndex].MsgId = 0; - channel->ConfigTblPtr->MessageFlow[msgFlowIndex].MsgLimit = 0; - channel->ConfigTblPtr->MessageFlow[msgFlowIndex].PQueueID = 0; - channel->DumpTbl.MessageFlow[msgFlowIndex].DroppedMsgCnt = 0; - channel->DumpTbl.MessageFlow[msgFlowIndex].QueuedMsgCnt = 0; - channel->DumpTbl.MessageFlow[msgFlowIndex].SBMsgCnt = 0; + Channel->ConfigTblPtr->MessageFlow[msgFlowIndex].MsgId = 0; + Channel->ConfigTblPtr->MessageFlow[msgFlowIndex].MsgLimit = 0; + Channel->ConfigTblPtr->MessageFlow[msgFlowIndex].PQueueID = 0; + Channel->DumpTbl.MessageFlow[msgFlowIndex].DroppedMsgCnt = 0; + Channel->DumpTbl.MessageFlow[msgFlowIndex].QueuedMsgCnt = 0; + Channel->DumpTbl.MessageFlow[msgFlowIndex].SBMsgCnt = 0; - PQ_Channel_UnlockByRef(channel); + PQ_Channel_UnlockByRef(Channel); - CFE_TBL_Modified(channel->ConfigTblHdl); + CFE_TBL_Modified(Channel->ConfigTblHdl); return TRUE; } @@ -483,74 +462,64 @@ osalbool PQ_MessageFlow_Remove(uint16 ChannelIdx, CFE_SB_MsgId_t MsgID) /* Query a message flow */ /* */ /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ -osalbool PQ_MessageFlow_Query(uint16 ChannelIdx, CFE_SB_MsgId_t MsgID) +osalbool PQ_MessageFlow_Query(PQ_ChannelData_t *Channel, CFE_SB_MsgId_t MsgID) { uint32 i = 0; osalbool found = FALSE; - PQ_ChannelData_t *channel = NULL; - - /* First, check if the channel index is valid. */ - if (ChannelIdx >= PQ_MAX_CHANNELS) + + if (NULL == Channel) { - (void) CFE_EVS_SendEvent(PQ_MSG_FLOW_INFO_ERR_EID, - CFE_EVS_ERROR, - "Invalid channel (channel = %d, but max = %d).", - ChannelIdx, PQ_MAX_CHANNELS); - return FALSE; } - channel = &PQ_AppData.ChannelData[ChannelIdx]; - - if (NULL == channel->ConfigTblPtr) + if (NULL == Channel->ConfigTblPtr) { (void) CFE_EVS_SendEvent(PQ_MSG_FLOW_MISSING_TBL_ERR_EID, CFE_EVS_ERROR, - "Channel missing valid table data (channel = %d).", - ChannelIdx); + "Channel %lu missing valid table data.", Channel->channelIdx); return FALSE; } - PQ_Channel_LockByRef(channel); + PQ_Channel_LockByRef(Channel); /* Next, see if the channel is open. */ - if (channel->State != PQ_CHANNEL_OPENED) + if (Channel->State != PQ_CHANNEL_OPENED) { (void) CFE_EVS_SendEvent(PQ_MSG_FLOW_INFO_ERR_EID, CFE_EVS_ERROR, - "Channel (%d) not open.", ChannelIdx); + "Channel %lu not open.", Channel->channelIdx); - PQ_Channel_UnlockByRef(channel); + PQ_Channel_UnlockByRef(Channel); return FALSE; } for (i = 0; i < PQ_MAX_MESSAGE_FLOWS; ++i) { - if (channel->ConfigTblPtr->MessageFlow[i].MsgId == MsgID) + if (Channel->ConfigTblPtr->MessageFlow[i].MsgId == MsgID) { (void) CFE_EVS_SendEvent(PQ_MSG_FLOW_INFO_EID, CFE_EVS_INFORMATION, - "CHANNEL=%d MID=0x%04x ML=%u PQI=%u D=%lu Q=%lu SB=%lu", - ChannelIdx, - channel->ConfigTblPtr->MessageFlow[i].MsgId, - channel->ConfigTblPtr->MessageFlow[i].MsgLimit, - channel->ConfigTblPtr->MessageFlow[i].PQueueID, - channel->DumpTbl.MessageFlow[i].DroppedMsgCnt, - channel->DumpTbl.MessageFlow[i].QueuedMsgCnt, - channel->DumpTbl.MessageFlow[i].SBMsgCnt); + "CHANNEL=%lu MID=0x%04x ML=%u PQI=%u D=%lu Q=%lu SB=%lu", + Channel->channelIdx, + Channel->ConfigTblPtr->MessageFlow[i].MsgId, + Channel->ConfigTblPtr->MessageFlow[i].MsgLimit, + Channel->ConfigTblPtr->MessageFlow[i].PQueueID, + Channel->DumpTbl.MessageFlow[i].DroppedMsgCnt, + Channel->DumpTbl.MessageFlow[i].QueuedMsgCnt, + Channel->DumpTbl.MessageFlow[i].SBMsgCnt); found = TRUE; break; } } - PQ_Channel_UnlockByRef(channel); + PQ_Channel_UnlockByRef(Channel); if (found != TRUE) { (void) CFE_EVS_SendEvent(PQ_MSG_FLOW_INFO_ERR_EID, CFE_EVS_ERROR, - "MsgID=0x%04x not found (channel = %d)", MsgID, ChannelIdx); + "MsgID=0x%04x not found.", MsgID); } return found; diff --git a/apps/pq_lib/fsw/src/pq_output_queue.c b/apps/pq_lib/fsw/src/pq_output_queue.c index 653c1dc6e..4fd1d44dd 100644 --- a/apps/pq_lib/fsw/src/pq_output_queue.c +++ b/apps/pq_lib/fsw/src/pq_output_queue.c @@ -40,7 +40,7 @@ /* Buildup a channel output queue */ /* */ /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ -int32 PQ_OutputQueue_Buildup(PQ_ChannelData_t* channel) +int32 PQ_OutputQueue_Buildup(PQ_ChannelData_t* Channel) { int32 status = OS_SUCCESS; @@ -49,9 +49,9 @@ int32 PQ_OutputQueue_Buildup(PQ_ChannelData_t* channel) * starting with queues for the channels and priority queues. */ char QueueName[OS_MAX_API_NAME]; - snprintf(QueueName, OS_MAX_API_NAME, "PQ_%s_OUT", (const char*)&channel->ChannelName[0]); + snprintf(QueueName, OS_MAX_API_NAME, "PQ_%s_OUT", (const char*)&Channel->ChannelName[0]); - status = OS_QueueCreate(&channel->OutputQueue.OSALQueueID, + status = OS_QueueCreate(&Channel->OutputQueue.OSALQueueID, QueueName, PQ_OUTPUT_QUEUE_DEPTH, sizeof(CFE_SB_Msg_t*), @@ -61,10 +61,10 @@ int32 PQ_OutputQueue_Buildup(PQ_ChannelData_t* channel) { (void) CFE_EVS_SendEvent(PQ_CONFIG_TABLE_ERR_EID, CFE_EVS_ERROR, - "Failed to create '%s' output channel queue for channel %d. err=%ld", - channel->ChannelName, channel->channelIdx, status); + "Failed to create '%s' output channel queue for channel %lu. err=%ld", + Channel->ChannelName, Channel->channelIdx, status); - channel->OutputQueue.OSALQueueID = OS_MAX_QUEUES; + Channel->OutputQueue.OSALQueueID = OS_MAX_QUEUES; } return status; @@ -78,23 +78,23 @@ int32 PQ_OutputQueue_Buildup(PQ_ChannelData_t* channel) /* reconfiguration. */ /* */ /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ -int32 PQ_OutputQueue_Teardown(PQ_ChannelData_t *channel) +int32 PQ_OutputQueue_Teardown(PQ_ChannelData_t *Channel) { int32 status = CFE_SUCCESS; int32 putStatus = 0; void *buffer = NULL; uint32 nBytesCopied = 0; - if (channel->OutputQueue.OSALQueueID != OS_MAX_QUEUES) + if (Channel->OutputQueue.OSALQueueID != OS_MAX_QUEUES) { while (OS_SUCCESS == status) { status = OS_QueueGet( - channel->OutputQueue.OSALQueueID, + Channel->OutputQueue.OSALQueueID, &buffer, sizeof(buffer), &nBytesCopied, OS_CHECK); if (OS_SUCCESS == status) { - putStatus = CFE_ES_PutPoolBuf(channel->MemPoolHandle, (uint32*)buffer); + putStatus = CFE_ES_PutPoolBuf(Channel->MemPoolHandle, (uint32*)buffer); if (putStatus < 0) { /* Failed to return memory back to memory pool. Not much we can do but report it @@ -102,12 +102,12 @@ int32 PQ_OutputQueue_Teardown(PQ_ChannelData_t *channel) */ (void) CFE_EVS_SendEvent(PQ_PUT_POOL_ERR_EID, CFE_EVS_ERROR, - "Failed to return message back to memory pool on output queue teardown, channel %d. (%d)", - (unsigned int)channel->channelIdx, + "Failed to return message back to memory pool on output queue teardown, channel %lu. (%d)", + Channel->channelIdx, (int)putStatus); } else { /* Since status is positive, it is safe to cast */ - channel->MemInUse -= (uint32)putStatus; + Channel->MemInUse -= (uint32)putStatus; } } @@ -118,9 +118,9 @@ int32 PQ_OutputQueue_Teardown(PQ_ChannelData_t *channel) /* The OSAL failed to pop all the messages off. Not much we can do. Report it and keep going. */ (void) CFE_EVS_SendEvent(PQ_OSQUEUE_GET_ERROR_EID, CFE_EVS_ERROR, - "Failed to pop all messages from channel '%s' (channel id = %d) output queue. (%d)", - channel->ChannelName, - (unsigned int)channel->channelIdx, + "Failed to pop all messages from channel '%s' (channel id = %lu) output queue. (%d)", + Channel->ChannelName, + Channel->channelIdx, (int)status); } } @@ -137,12 +137,12 @@ int32 PQ_OutputQueue_Teardown(PQ_ChannelData_t *channel) /* Reset all dynamic metrics. */ /* */ /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ -void PQ_OutputQueue_ResetCounts(PQ_ChannelData_t *channel) +void PQ_OutputQueue_ResetCounts(PQ_ChannelData_t *Channel) { - channel->OutputQueue.SentCount = 0; - channel->OutputQueue.HighwaterMark = 0; - channel->OutputQueue.SentBytes = 0; - channel->OutputQueue.CurrentlyQueuedCnt = 0; + Channel->OutputQueue.SentCount = 0; + Channel->OutputQueue.HighwaterMark = 0; + Channel->OutputQueue.SentBytes = 0; + Channel->OutputQueue.CurrentlyQueuedCnt = 0; } @@ -152,11 +152,11 @@ void PQ_OutputQueue_ResetCounts(PQ_ChannelData_t *channel) /* Push a message on the output channel queue. */ /* */ /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ -int32 PQ_OutputQueue_QueueMsg(PQ_ChannelData_t *channel, CFE_SB_MsgPtr_t MsgPtr) +int32 PQ_OutputQueue_QueueMsg(PQ_ChannelData_t *Channel, CFE_SB_MsgPtr_t MsgPtr) { int32 status = 0; - status = OS_QueuePut(channel->OutputQueue.OSALQueueID, &MsgPtr, sizeof(MsgPtr), 0); + status = OS_QueuePut(Channel->OutputQueue.OSALQueueID, &MsgPtr, sizeof(MsgPtr), 0); if (OS_QUEUE_FULL == status) { /* This is not supposed to happen since we only queue when the channel @@ -164,27 +164,27 @@ int32 PQ_OutputQueue_QueueMsg(PQ_ChannelData_t *channel, CFE_SB_MsgPtr_t MsgPtr) * message will not be sent, deallocate the memory allocated as it * won't be needed */ - status = CFE_ES_PutPoolBuf(channel->MemPoolHandle, (uint32 *)MsgPtr); + status = CFE_ES_PutPoolBuf(Channel->MemPoolHandle, (uint32 *)MsgPtr); if (status < 0) { (void) CFE_EVS_SendEvent(PQ_PUT_POOL_ERR_EID, CFE_EVS_ERROR, - "PutPoolBuf: channel=%d, error=%i", - (unsigned int)channel->channelIdx, + "PutPoolBuf: channel=%lu, error=%i", + Channel->channelIdx, (int)status); return status; } /* Since status is positive, it is safe to cast */ - channel->MemInUse -= (uint32)status; + Channel->MemInUse -= (uint32)status; } else if (status != CFE_SUCCESS) { (void) CFE_EVS_SendEvent(PQ_OSQUEUE_PUT_ERROR_EID, CFE_EVS_ERROR, - "OS_QueuePut failed: channel=%d size=%u error=%i", - (unsigned int)channel->channelIdx, + "OS_QueuePut failed: channel=%lu size=%u error=%i", + Channel->channelIdx, sizeof(MsgPtr), (int)status); } @@ -199,42 +199,33 @@ int32 PQ_OutputQueue_QueueMsg(PQ_ChannelData_t *channel, CFE_SB_MsgPtr_t MsgPtr) /* Query an output channel. */ /* */ /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ -osalbool PQ_OutputChannel_Query(uint16 ChannelIdx) +osalbool PQ_OutputChannel_Query(PQ_ChannelData_t *Channel) { - PQ_ChannelData_t *channel = NULL; - /* First, check if the channel index is valid. */ - if (ChannelIdx >= PQ_MAX_CHANNELS) + if (NULL == Channel) { - (void) CFE_EVS_SendEvent(PQ_OUT_CH_INFO_ERR_EID, - CFE_EVS_ERROR, - "Invalid channel index (index = %d, max = %d).", - (unsigned int)ChannelIdx, - PQ_MAX_CHANNELS); - return FALSE; } - channel = &PQ_AppData.ChannelData[ChannelIdx]; /* Next, see if the channel is open. */ - if (channel->State != PQ_CHANNEL_OPENED) + if (Channel->State != PQ_CHANNEL_OPENED) { (void) CFE_EVS_SendEvent(PQ_OUT_CH_INFO_ERR_EID, CFE_EVS_ERROR, - "Channel %d not open.", - (unsigned int)ChannelIdx); + "Channel %lu not open.", + Channel->channelIdx); return FALSE; } (void) CFE_EVS_SendEvent(PQ_OUT_CH_INFO_EID, CFE_EVS_INFORMATION, - "CHANNEL=%d S=%d ML=%i SC=%u CQC=%d HWM=%d", - (unsigned int)ChannelIdx, - (unsigned int)channel->State, + "CHANNEL=%lu S=%d ML=%i SC=%u CQC=%d HWM=%d", + Channel->channelIdx, + (unsigned int)Channel->State, PQ_OUTPUT_QUEUE_DEPTH, - (unsigned int)channel->OutputQueue.SentCount, - (unsigned int)channel->OutputQueue.CurrentlyQueuedCnt, - (unsigned int)channel->OutputQueue.HighwaterMark); + (unsigned int)Channel->OutputQueue.SentCount, + (unsigned int)Channel->OutputQueue.CurrentlyQueuedCnt, + (unsigned int)Channel->OutputQueue.HighwaterMark); return TRUE; } diff --git a/apps/pq_lib/fsw/src/pq_priority_queue.c b/apps/pq_lib/fsw/src/pq_priority_queue.c index f636d2999..e92429f70 100644 --- a/apps/pq_lib/fsw/src/pq_priority_queue.c +++ b/apps/pq_lib/fsw/src/pq_priority_queue.c @@ -34,12 +34,10 @@ #include "pq_priority_queue.h" #include #include - +#include "pq_channel.h" #include "pq_structs.h" #include "pq_events.h" -extern PQ_AppData_t PQ_AppData; - /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ /* */ @@ -55,16 +53,16 @@ uint32 PQ_GetEventMsgLength(CFE_EVS_Packet_t *msgPtr); /* Clear all dynamics metrics. */ /* */ /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ -void PQ_PriorityQueue_ResetCountsAll(PQ_ChannelData_t* channel) +void PQ_PriorityQueue_ResetCountsAll(PQ_ChannelData_t* Channel) { uint32 i; for (i = 0; i < PQ_MAX_PRIORITY_QUEUES; ++i) { - channel->DumpTbl.PriorityQueue[i].DroppedMsgCnt = 0; - channel->DumpTbl.PriorityQueue[i].QueuedMsgCnt = 0; - channel->DumpTbl.PriorityQueue[i].HighwaterMark = 0; - channel->DumpTbl.PriorityQueue[i].CurrentlyQueuedCnt = 0; + Channel->DumpTbl.PriorityQueue[i].DroppedMsgCnt = 0; + Channel->DumpTbl.PriorityQueue[i].QueuedMsgCnt = 0; + Channel->DumpTbl.PriorityQueue[i].HighwaterMark = 0; + Channel->DumpTbl.PriorityQueue[i].CurrentlyQueuedCnt = 0; } } @@ -75,13 +73,13 @@ void PQ_PriorityQueue_ResetCountsAll(PQ_ChannelData_t* channel) /* Buildup all priority queues after a reconfiguration. */ /* */ /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ -int32 PQ_PriorityQueue_BuildupAll(PQ_ChannelData_t *channel) +int32 PQ_PriorityQueue_BuildupAll(PQ_ChannelData_t *Channel) { uint32 i; int32 status = CFE_SUCCESS; /* First, check if the channel NULL. */ - if (NULL == channel) + if (NULL == Channel) { (void) CFE_EVS_SendEvent(PQ_PQUEUE_MISSING_TBL_ERR_EID, CFE_EVS_ERROR, @@ -89,12 +87,12 @@ int32 PQ_PriorityQueue_BuildupAll(PQ_ChannelData_t *channel) return PQ_CHANNEL_PTR_NULL; } - if (NULL == channel->ConfigTblPtr) + if (NULL == Channel->ConfigTblPtr) { (void) CFE_EVS_SendEvent(PQ_PQUEUE_MISSING_TBL_ERR_EID, CFE_EVS_ERROR, - "Failed to create priority queues on channel %d, missing table.", - channel->channelIdx); + "Failed to create priority queues on channel %lu, missing table.", + Channel->channelIdx); return PQ_NO_TABLE_ERR; } @@ -103,15 +101,15 @@ int32 PQ_PriorityQueue_BuildupAll(PQ_ChannelData_t *channel) */ for (i = 0; i < PQ_MAX_PRIORITY_QUEUES; ++i) { - if (channel->ConfigTblPtr->PriorityQueue[i].State != PQ_PQUEUE_UNUSED) + if (Channel->ConfigTblPtr->PriorityQueue[i].State != PQ_PQUEUE_UNUSED) { char QueueName[OS_MAX_API_NAME]; (void) CFE_PSP_MemSet(QueueName, 0, sizeof(QueueName)); - snprintf(QueueName, OS_MAX_API_NAME, "PQ_%s_%u", (const char*)&channel->ChannelName[0], (uint8)i); + snprintf(QueueName, OS_MAX_API_NAME, "PQ_%s_%u", (const char*)&Channel->ChannelName[0], (uint8)i); status = OS_QueueCreate( - &channel->DumpTbl.PriorityQueue[i].OSALQueueID, + &Channel->DumpTbl.PriorityQueue[i].OSALQueueID, QueueName, - channel->ConfigTblPtr->PriorityQueue[i].MsgLimit, + Channel->ConfigTblPtr->PriorityQueue[i].MsgLimit, sizeof(CFE_SB_Msg_t*), 0); if (status != OS_SUCCESS) @@ -124,13 +122,13 @@ int32 PQ_PriorityQueue_BuildupAll(PQ_ChannelData_t *channel) */ (void) CFE_EVS_SendEvent(PQ_PQUEUE_CREATE_ERR_EID, CFE_EVS_ERROR, - "Failed to create '%s' priority queue #%u on channel %d. (%i)", - channel->ChannelName, + "Failed to create '%s' priority queue #%u on channel %lu. (%i)", + Channel->ChannelName, (unsigned int)i, - channel->channelIdx, + Channel->channelIdx, (int)status); - channel->DumpTbl.PriorityQueue[i].OSALQueueID = OS_MAX_QUEUES; + Channel->DumpTbl.PriorityQueue[i].OSALQueueID = OS_MAX_QUEUES; } } } @@ -145,7 +143,7 @@ int32 PQ_PriorityQueue_BuildupAll(PQ_ChannelData_t *channel) /* Teardown all priority queues after a reconfiguration. */ /* */ /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ -int32 PQ_PriorityQueue_TeardownAll(PQ_ChannelData_t *channel) +int32 PQ_PriorityQueue_TeardownAll(PQ_ChannelData_t *Channel) { uint32 i; int32 status = 0; @@ -153,36 +151,36 @@ int32 PQ_PriorityQueue_TeardownAll(PQ_ChannelData_t *channel) uint32 bufferSize = 0; void *buffer = NULL; - if(NULL != channel->ConfigTblPtr) + if(NULL != Channel->ConfigTblPtr) { for(i = 0; i < PQ_MAX_PRIORITY_QUEUES; ++i) { - if(channel->ConfigTblPtr->PriorityQueue[i].State != PQ_PQUEUE_UNUSED) + if(Channel->ConfigTblPtr->PriorityQueue[i].State != PQ_PQUEUE_UNUSED) { - if(channel->DumpTbl.PriorityQueue[i].OSALQueueID < OS_MAX_QUEUES) + if(Channel->DumpTbl.PriorityQueue[i].OSALQueueID < OS_MAX_QUEUES) { buffer = NULL; bufferSize = 0; while(OS_SUCCESS == status) { status = OS_QueueGet( - channel->DumpTbl.PriorityQueue[i].OSALQueueID, + Channel->DumpTbl.PriorityQueue[i].OSALQueueID, &buffer, sizeof(buffer), &bufferSize, OS_CHECK); if(OS_SUCCESS == status) { - bytesReleased = CFE_ES_PutPoolBuf(channel->MemPoolHandle, (uint32*)buffer); + bytesReleased = CFE_ES_PutPoolBuf(Channel->MemPoolHandle, (uint32*)buffer); if(bytesReleased < 0) { (void) CFE_EVS_SendEvent(PQ_PQUEUE_TEARDOWN_ERR_EID, CFE_EVS_ERROR, - "Failed to return message back to memory pool on tbl load for channel %d. (%ld)", - (unsigned int)channel->channelIdx, + "Failed to return message back to memory pool on tbl load for channel %lu. (%ld)", + Channel->channelIdx, (unsigned long int)bytesReleased); } else { - PQ_Channel_LockByRef(channel); + PQ_Channel_LockByRef(Channel); /* Since bytesReleased is positive, it is safe to cast */ - channel->MemInUse -= (uint32)bytesReleased; - PQ_Channel_UnlockByRef(channel); + Channel->MemInUse -= (uint32)bytesReleased; + PQ_Channel_UnlockByRef(Channel); } } } @@ -191,9 +189,9 @@ int32 PQ_PriorityQueue_TeardownAll(PQ_ChannelData_t *channel) { (void) CFE_EVS_SendEvent(PQ_PQUEUE_TEARDOWN_ERR_EID, CFE_EVS_ERROR, - "Message flow failed to pop all messages from pqueue %u for channel %d. (%d)", + "Message flow failed to pop all messages from pqueue %u for channel %lu. (%d)", (unsigned int)i, - (unsigned int)channel->channelIdx, + Channel->channelIdx, (int)status); } @@ -202,19 +200,19 @@ int32 PQ_PriorityQueue_TeardownAll(PQ_ChannelData_t *channel) * queue. */ status = OS_QueueDelete( - channel->DumpTbl.PriorityQueue[i].OSALQueueID); + Channel->DumpTbl.PriorityQueue[i].OSALQueueID); if(status != OS_SUCCESS) { /* We ran into an error. Send an event, but just keep going. Nothing we can do. */ (void) CFE_EVS_SendEvent(PQ_PQUEUE_TEARDOWN_ERR_EID, CFE_EVS_ERROR, - "Failed to delete priority queue %u for channel %d. (%d)", + "Failed to delete priority queue %u for channel %lu. (%d)", (unsigned int)i, - (unsigned int)channel->channelIdx, + Channel->channelIdx, (int)status); } - channel->DumpTbl.PriorityQueue[i].OSALQueueID = OS_MAX_QUEUES; + Channel->DumpTbl.PriorityQueue[i].OSALQueueID = OS_MAX_QUEUES; } } } @@ -224,8 +222,8 @@ int32 PQ_PriorityQueue_TeardownAll(PQ_ChannelData_t *channel) /* No table. Just keep going and try processing the next channel. */ (void) CFE_EVS_SendEvent(PQ_PQUEUE_MISSING_TBL_ERR_EID, CFE_EVS_ERROR, - "Failed to tear down priority queues on channel %d, missing table.", - (unsigned int)channel->channelIdx); + "Failed to tear down priority queues on channel %lu, missing table.", + Channel->channelIdx); } return status; @@ -238,7 +236,7 @@ int32 PQ_PriorityQueue_TeardownAll(PQ_ChannelData_t *channel) /* */ /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ int32 PQ_PriorityQueue_QueueMsg( - PQ_ChannelData_t *channel, + PQ_ChannelData_t *Channel, CFE_SB_MsgPtr_t MsgPtr, uint32 PQueueIndex) { @@ -248,15 +246,15 @@ int32 PQ_PriorityQueue_QueueMsg( void *PQ_CopyBuffer = NULL; CFE_SB_MsgId_t DataMsgID; - if (NULL == channel->ConfigTblPtr) + if (NULL == Channel->ConfigTblPtr) { (void) CFE_EVS_SendEvent(PQ_PQUEUE_MISSING_TBL_ERR_EID, CFE_EVS_ERROR, - "Failed to queue message on channel %d, missing table!", - (unsigned int)channel->channelIdx); + "Failed to queue message on channel %lu, missing table!", + Channel->channelIdx); return PQ_NO_TABLE_ERR; } - pqueueDump = &channel->DumpTbl.PriorityQueue[PQueueIndex]; + pqueueDump = &Channel->DumpTbl.PriorityQueue[PQueueIndex]; DataMsgID = CFE_SB_GetMsgId(MsgPtr); bufferSize = CFE_SB_GetTotalMsgLength(MsgPtr); @@ -274,7 +272,7 @@ int32 PQ_PriorityQueue_QueueMsg( * copy. */ status = CFE_ES_GetPoolBuf((uint32 **) &PQ_CopyBuffer, - channel->MemPoolHandle, bufferSize); + Channel->MemPoolHandle, bufferSize); if ((status < 0) || (PQ_CopyBuffer == NULL)) { /* The allocation failed. There's nothing we can do. Rather than @@ -285,21 +283,21 @@ int32 PQ_PriorityQueue_QueueMsg( * let's just increment a counter, and let the caller know the queue * failed. */ - PQ_Channel_LockByRef(channel); - channel->MemFullCount++; + PQ_Channel_LockByRef(Channel); + Channel->MemFullCount++; pqueueDump->DroppedMsgCnt++; - PQ_Channel_UnlockByRef(channel); + PQ_Channel_UnlockByRef(Channel); return PQ_MEMORY_FULL_ERR; } - PQ_Channel_LockByRef(channel); + PQ_Channel_LockByRef(Channel); /* Since status is positive, it is safe to cast */ - channel->MemInUse += (uint32)status; - if (channel->MemInUse > channel->PeakMemInUse) + Channel->MemInUse += (uint32)status; + if (Channel->MemInUse > Channel->PeakMemInUse) { - channel->PeakMemInUse = channel->MemInUse; + Channel->PeakMemInUse = Channel->MemInUse; } - PQ_Channel_UnlockByRef(channel); + PQ_Channel_UnlockByRef(Channel); /* Copy the message into the temp buffer. */ (void) CFE_PSP_MemCpy(PQ_CopyBuffer, MsgPtr, bufferSize); @@ -318,21 +316,21 @@ int32 PQ_PriorityQueue_QueueMsg( * deallocate the memory allocated first since we don't need it * anymore. */ - status = CFE_ES_PutPoolBuf(channel->MemPoolHandle, (uint32*)PQ_CopyBuffer); + status = CFE_ES_PutPoolBuf(Channel->MemPoolHandle, (uint32*)PQ_CopyBuffer); if (status < 0) { pqueueDump->DroppedMsgCnt++; (void) CFE_EVS_SendEvent(PQ_PUT_POOL_ERR_EID, CFE_EVS_ERROR, - "PutPoolBuf: channel=%d error=%i", - (unsigned int)channel->channelIdx, + "PutPoolBuf: channel=%lu error=%i", + Channel->channelIdx, (int)status); return status; } - PQ_Channel_LockByRef(channel); - channel->MemInUse -= (uint32)status; + PQ_Channel_LockByRef(Channel); + Channel->MemInUse -= (uint32)status; - PQ_Channel_UnlockByRef(channel); + PQ_Channel_UnlockByRef(Channel); status = PQ_PRIORITY_QUEUE_FULL_ERR; } else if (status != OS_SUCCESS) @@ -340,8 +338,8 @@ int32 PQ_PriorityQueue_QueueMsg( pqueueDump->DroppedMsgCnt++; (void) CFE_EVS_SendEvent(PQ_OSQUEUE_PUT_ERROR_EID, CFE_EVS_ERROR, - "OS_QueuePut failed: channel=%d size=%u error=%i", - (unsigned int)channel->channelIdx, + "OS_QueuePut failed: channel=%lu size=%u error=%i", + Channel->channelIdx, sizeof(PQ_CopyBuffer), (int)status); return status; @@ -367,41 +365,33 @@ int32 PQ_PriorityQueue_QueueMsg( /* Query a priority queue. */ /* */ /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ -osalbool PQ_PriorityQueue_Query(uint16 ChannelIdx, uint16 PQueueIdx) +osalbool PQ_PriorityQueue_Query(PQ_ChannelData_t *Channel, uint16 PQueueIdx) { osalbool returnCode = FALSE; - PQ_ChannelData_t *channel = NULL; - /* First, check if the channel index is valid. */ - if (ChannelIdx >= PQ_MAX_CHANNELS) + if (NULL == Channel) { - (void) CFE_EVS_SendEvent(PQ_PQUEUE_INFO_ERR_EID, - CFE_EVS_ERROR, - "Invalid channel index (index = %d, max = %d).", - ChannelIdx, PQ_MAX_CHANNELS); - return returnCode; + return FALSE; } - - channel = &PQ_AppData.ChannelData[ChannelIdx]; - if (NULL == channel->ConfigTblPtr) + if (NULL == Channel->ConfigTblPtr) { (void) CFE_EVS_SendEvent(PQ_PQUEUE_MISSING_TBL_ERR_EID, CFE_EVS_ERROR, - "Channel missing valid table data (index = %d).", - ChannelIdx); + "Channel missing valid table data (index = %lu).", + Channel->channelIdx); return returnCode; } - PQ_Channel_LockByRef(channel); + PQ_Channel_LockByRef(Channel); /* Next, see if the channel is open. */ - if (channel->State != PQ_CHANNEL_OPENED) + if (Channel->State != PQ_CHANNEL_OPENED) { (void) CFE_EVS_SendEvent(PQ_PQUEUE_INFO_ERR_EID, CFE_EVS_ERROR, - "Channel %d not open.", ChannelIdx); - PQ_Channel_UnlockByRef(channel); + "Channel %lu not open.", Channel->channelIdx); + PQ_Channel_UnlockByRef(Channel); return returnCode; } @@ -417,21 +407,21 @@ osalbool PQ_PriorityQueue_Query(uint16 ChannelIdx, uint16 PQueueIdx) { (void) CFE_EVS_SendEvent(PQ_PQUEUE_INFO_EID, CFE_EVS_INFORMATION, - "CHANNEL=%d PQI=%u S=%u ML=%u QT=%u D=%lu Q=%lu CQ=%u HWM=%u", - ChannelIdx, + "CHANNEL=%lu PQI=%u S=%u ML=%u QT=%u D=%lu Q=%lu CQ=%u HWM=%u", + Channel->channelIdx, PQueueIdx, - channel->ConfigTblPtr->PriorityQueue[PQueueIdx].State, - channel->ConfigTblPtr->PriorityQueue[PQueueIdx].MsgLimit, - channel->ConfigTblPtr->PriorityQueue[PQueueIdx].QType, - channel->DumpTbl.PriorityQueue[PQueueIdx].DroppedMsgCnt, - channel->DumpTbl.PriorityQueue[PQueueIdx].QueuedMsgCnt, - channel->DumpTbl.PriorityQueue[PQueueIdx].CurrentlyQueuedCnt, - channel->DumpTbl.PriorityQueue[PQueueIdx].HighwaterMark); + Channel->ConfigTblPtr->PriorityQueue[PQueueIdx].State, + Channel->ConfigTblPtr->PriorityQueue[PQueueIdx].MsgLimit, + Channel->ConfigTblPtr->PriorityQueue[PQueueIdx].QType, + Channel->DumpTbl.PriorityQueue[PQueueIdx].DroppedMsgCnt, + Channel->DumpTbl.PriorityQueue[PQueueIdx].QueuedMsgCnt, + Channel->DumpTbl.PriorityQueue[PQueueIdx].CurrentlyQueuedCnt, + Channel->DumpTbl.PriorityQueue[PQueueIdx].HighwaterMark); returnCode = TRUE; } - PQ_Channel_UnlockByRef(channel); + PQ_Channel_UnlockByRef(Channel); return returnCode; } diff --git a/apps/sbn/modules/mbox/fsw/src/sbn_mailbox_if.c b/apps/sbn/modules/mbox/fsw/src/sbn_mailbox_if.c index 5fce06f3c..5eab024b1 100644 --- a/apps/sbn/modules/mbox/fsw/src/sbn_mailbox_if.c +++ b/apps/sbn/modules/mbox/fsw/src/sbn_mailbox_if.c @@ -305,7 +305,7 @@ static int Send(SBN_PeerInterface_t *Peer, SBN_MsgType_t MsgType, printf("MsgSz into queue %u\n", MsgSz); /* Push message onto the PQ */ PQ_Channel_LockByRef(&SBN_UIO_Mailbox_Data.Channel); - PQ_Classifier_Run(&SBN_UIO_Mailbox_Data.Channel, Payload, &SBN_UIO_Mailbox_Data.HkTlm); + PQ_Classifier_Run(&SBN_UIO_Mailbox_Data.Channel, Payload); PQ_Scheduler_Run(&SBN_UIO_Mailbox_Data.Channel); PQ_Channel_UnlockByRef(&SBN_UIO_Mailbox_Data.Channel); @@ -357,34 +357,7 @@ static int Recv(SBN_NetInterface_t *Net, SBN_MsgType_t *MsgTypePtr, static int ReportModuleStatus(SBN_ModuleStatusPacket_t *Packet) { - PQ_ChannelData_t *channel = NULL; - - //(void) OS_MutSemTake(TO_AppData.MutexID); - SBN_Mailbox_Data.HkTlm.SentBytes = 0; - //(void) OS_MutSemGive(TO_AppData.MutexID); - - /* TODO this should be updated so that a copy isn't needed. */ - channel = &SBN_Mailbox_Data.Channel; - - //PQ_Channel_LockByRef(channel); - - SBN_Mailbox_Data.HkTlm.QueuedInOutputChannel = channel->OutputQueue.CurrentlyQueuedCnt; - - SBN_Mailbox_Data.HkTlm.uiSentMsgCountChannel = channel->SentMsgCount; - SBN_Mailbox_Data.HkTlm.uiQueuedMsgCountChannel = channel->QueuedMsgCount; - SBN_Mailbox_Data.HkTlm.uiDropMsgCountChannel = channel->DropMsgCount; - SBN_Mailbox_Data.HkTlm.uiFailedMsgCountChannel = channel->FailedMsgCount; - SBN_Mailbox_Data.HkTlm.uiBytesSentChannel = channel->BytesSent; - - //(void) OS_MutSemTake(TO_AppData.MutexID); - SBN_Mailbox_Data.HkTlm.SentBytes += channel->OutputQueue.SentBytes; - - //(void) OS_MutSemGive(TO_AppData.MutexID); - - SBN_Mailbox_Data.HkTlm.ChannelMemInfo.MemInUse = channel->MemInUse; - SBN_Mailbox_Data.HkTlm.ChannelMemInfo.PeakMemInUse = channel->PeakMemInUse; - - //PQ_Channel_UnlockByRef(channel); + PQ_Channel_CopyStats(&SBN_UIO_Mailbox_Data.HkTlm, &SBN_UIO_Mailbox_Data.Channel); CFE_SB_InitMsg(&SBN_Mailbox_Data.HkTlm, SBN_MODULE_HK_MID, sizeof(SBN_Mailbox_Data.HkTlm), FALSE); diff --git a/apps/sbn/modules/udp_pq/fsw/src/sbn_udp_if.c b/apps/sbn/modules/udp_pq/fsw/src/sbn_udp_if.c index e5b2d6c7c..263905662 100644 --- a/apps/sbn/modules/udp_pq/fsw/src/sbn_udp_if.c +++ b/apps/sbn/modules/udp_pq/fsw/src/sbn_udp_if.c @@ -244,7 +244,7 @@ int SBN_UDP_Send(SBN_PeerInterface_t *Peer, SBN_MsgType_t MsgType, printf("MsgSz into queue %u\n", MsgSz); PQ_Channel_LockByRef(&Channel); - PQ_Classifier_Run(&Channel, Payload, &HkTlm); + PQ_Classifier_Run(&Channel, Payload); PQ_Scheduler_Run(&Channel); PQ_Channel_UnlockByRef(&Channel); @@ -388,34 +388,7 @@ int SBN_UDP_Recv(SBN_NetInterface_t *Net, SBN_MsgType_t *MsgTypePtr, int SBN_UDP_ReportModuleStatus(SBN_ModuleStatusPacket_t *Packet) { - PQ_ChannelData_t *channel = NULL; - - //(void) OS_MutSemTake(TO_AppData.MutexID); - HkTlm.SentBytes = 0; - //(void) OS_MutSemGive(TO_AppData.MutexID); - - /* TODO this should be updated so that a copy isn't needed. */ - channel = &Channel; - - //PQ_Channel_LockByRef(channel); - - HkTlm.QueuedInOutputChannel = channel->OutputQueue.CurrentlyQueuedCnt; - - HkTlm.uiSentMsgCountChannel = channel->SentMsgCount; - HkTlm.uiQueuedMsgCountChannel = channel->QueuedMsgCount; - HkTlm.uiDropMsgCountChannel = channel->DropMsgCount; - HkTlm.uiFailedMsgCountChannel = channel->FailedMsgCount; - HkTlm.uiBytesSentChannel = channel->BytesSent; - - //(void) OS_MutSemTake(TO_AppData.MutexID); - HkTlm.SentBytes += channel->OutputQueue.SentBytes; - - //(void) OS_MutSemGive(TO_AppData.MutexID); - - HkTlm.ChannelMemInfo.MemInUse = channel->MemInUse; - HkTlm.ChannelMemInfo.PeakMemInUse = channel->PeakMemInUse; - - //PQ_Channel_UnlockByRef(channel); + PQ_Channel_CopyStats(&HkTlm, &Channel); CFE_SB_InitMsg(&HkTlm, SBN_MODULE_HK_MID, sizeof(HkTlm), FALSE); diff --git a/apps/sbn/modules/uio_mbox/fsw/src/sbn_uio_mailbox_if.c b/apps/sbn/modules/uio_mbox/fsw/src/sbn_uio_mailbox_if.c index d2d440032..31b586f01 100644 --- a/apps/sbn/modules/uio_mbox/fsw/src/sbn_uio_mailbox_if.c +++ b/apps/sbn/modules/uio_mbox/fsw/src/sbn_uio_mailbox_if.c @@ -376,7 +376,7 @@ static int Send(SBN_PeerInterface_t *Peer, SBN_MsgType_t MsgType, printf("MsgSz into queue %u\n", MsgSz); /* Push message onto the PQ */ PQ_Channel_LockByRef(&SBN_UIO_Mailbox_Data.Channel); - PQ_Classifier_Run(&SBN_UIO_Mailbox_Data.Channel, Payload, &SBN_UIO_Mailbox_Data.HkTlm); + PQ_Classifier_Run(&SBN_UIO_Mailbox_Data.Channel, Payload); PQ_Scheduler_Run(&SBN_UIO_Mailbox_Data.Channel); PQ_Channel_UnlockByRef(&SBN_UIO_Mailbox_Data.Channel); @@ -428,34 +428,7 @@ static int Recv(SBN_NetInterface_t *Net, SBN_MsgType_t *MsgTypePtr, static int ReportModuleStatus(SBN_ModuleStatusPacket_t *Packet) { - PQ_ChannelData_t *channel = NULL; - - //(void) OS_MutSemTake(TO_AppData.MutexID); - SBN_UIO_Mailbox_Data.HkTlm.SentBytes = 0; - //(void) OS_MutSemGive(TO_AppData.MutexID); - - /* TODO this should be updated so that a copy isn't needed. */ - channel = &SBN_UIO_Mailbox_Data.Channel; - - //PQ_Channel_LockByRef(channel); - - SBN_UIO_Mailbox_Data.HkTlm.QueuedInOutputChannel = channel->OutputQueue.CurrentlyQueuedCnt; - - SBN_UIO_Mailbox_Data.HkTlm.uiSentMsgCountChannel = channel->SentMsgCount; - SBN_UIO_Mailbox_Data.HkTlm.uiQueuedMsgCountChannel = channel->QueuedMsgCount; - SBN_UIO_Mailbox_Data.HkTlm.uiDropMsgCountChannel = channel->DropMsgCount; - SBN_UIO_Mailbox_Data.HkTlm.uiFailedMsgCountChannel = channel->FailedMsgCount; - SBN_UIO_Mailbox_Data.HkTlm.uiBytesSentChannel = channel->BytesSent; - - //(void) OS_MutSemTake(TO_AppData.MutexID); - SBN_UIO_Mailbox_Data.HkTlm.SentBytes += channel->OutputQueue.SentBytes; - - //(void) OS_MutSemGive(TO_AppData.MutexID); - - SBN_UIO_Mailbox_Data.HkTlm.ChannelMemInfo.MemInUse = channel->MemInUse; - SBN_UIO_Mailbox_Data.HkTlm.ChannelMemInfo.PeakMemInUse = channel->PeakMemInUse; - - //PQ_Channel_UnlockByRef(channel); + PQ_Channel_CopyStats(&SBN_UIO_Mailbox_Data.HkTlm, &SBN_UIO_Mailbox_Data.Channel); CFE_SB_InitMsg(&SBN_UIO_Mailbox_Data.HkTlm, SBN_MODULE_HK_MID, sizeof(SBN_UIO_Mailbox_Data.HkTlm), FALSE); From ba27d537939709bcc7e8038b12d0bb18a0f1c86b Mon Sep 17 00:00:00 2001 From: cnalley Date: Fri, 12 Feb 2021 00:54:04 +0000 Subject: [PATCH 095/370] More refactoring and cleanup. --- apps/pq_lib/fsw/public_inc/pq_channel.h | 1 + apps/pq_lib/fsw/public_inc/pq_classifier.h | 4 +- apps/pq_lib/fsw/public_inc/pq_config_utils.h | 19 +++---- apps/pq_lib/fsw/public_inc/pq_scheduler.h | 2 +- apps/pq_lib/fsw/src/pq_channel.c | 17 +++---- apps/pq_lib/fsw/src/pq_classifier.c | 29 +++++------ apps/pq_lib/fsw/src/pq_config_utils.c | 50 +++++++++---------- apps/pq_lib/fsw/src/pq_lib.c | 36 ------------- apps/pq_lib/fsw/src/pq_priority_queue.c | 6 +-- apps/pq_lib/fsw/src/pq_scheduler.c | 16 +++--- .../sbn/modules/mbox/fsw/src/sbn_mailbox_if.c | 5 +- apps/sbn/modules/udp_pq/fsw/src/sbn_udp_if.c | 6 +-- .../uio_mbox/fsw/src/sbn_uio_mailbox_if.c | 5 +- 13 files changed, 75 insertions(+), 121 deletions(-) diff --git a/apps/pq_lib/fsw/public_inc/pq_channel.h b/apps/pq_lib/fsw/public_inc/pq_channel.h index c12fe9ac8..2d858dd43 100644 --- a/apps/pq_lib/fsw/public_inc/pq_channel.h +++ b/apps/pq_lib/fsw/public_inc/pq_channel.h @@ -309,6 +309,7 @@ void PQ_Channel_Cleanup(PQ_ChannelData_t *Channel); void PQ_Channel_ResetCounts(PQ_ChannelData_t *Channel); +void PQ_Channel_ProcessTelemetry(PQ_ChannelData_t *Channel, CFE_SB_MsgPtr_t DataMsgPtr); void PQ_Channel_CopyStats(PQ_HkTlm_t *HkTlm, PQ_ChannelData_t *Channel); diff --git a/apps/pq_lib/fsw/public_inc/pq_classifier.h b/apps/pq_lib/fsw/public_inc/pq_classifier.h index a6fe09cfa..3c73f6da8 100644 --- a/apps/pq_lib/fsw/public_inc/pq_classifier.h +++ b/apps/pq_lib/fsw/public_inc/pq_classifier.h @@ -71,7 +71,7 @@ ** that the call will never contain a null pointer, therefore ** the null pointer condition is not checked. ** -** \param [in] channel A #PQ_ChannelData_t pointer that +** \param [in] Channel A #PQ_ChannelData_t pointer that ** references the channel data structure ** ** \param [in,out] DataMsgPtr A #CFE_SB_MsgPtr_t pointer of @@ -79,6 +79,6 @@ ** ** *************************************************************************/ -void PQ_Classifier_Run(PQ_ChannelData_t *channel, CFE_SB_MsgPtr_t DataMsgPtr); +void PQ_Classifier_Run(PQ_ChannelData_t *Channel, CFE_SB_MsgPtr_t DataMsgPtr); #endif diff --git a/apps/pq_lib/fsw/public_inc/pq_config_utils.h b/apps/pq_lib/fsw/public_inc/pq_config_utils.h index b2f25eb58..7441e8daf 100644 --- a/apps/pq_lib/fsw/public_inc/pq_config_utils.h +++ b/apps/pq_lib/fsw/public_inc/pq_config_utils.h @@ -84,7 +84,7 @@ extern "C" { ** This function should be called only once per channel. ** ** -** \param channel A #PQ_ChannelData_t pointer that +** \param Channel A #PQ_ChannelData_t pointer that ** references the channel data structure ** ** \return @@ -94,7 +94,7 @@ extern "C" { ** \retstmt Return codes from #PQ_AcquireConfigPointer \endcode ** *************************************************************************/ -int32 PQ_InitTables(PQ_ChannelData_t *channel); +int32 PQ_InitTables(PQ_ChannelData_t *Channel); /************************************************************************/ @@ -134,14 +134,14 @@ int32 PQ_ValidateConfigTbl(void *configTblPtr); ** \par Assumptions, External Events, and Notes: ** None ** -** \param channel A #PQ_ChannelData_t pointer that +** \param Channel A #PQ_ChannelData_t pointer that ** references the channel data structure ** ** \return ** \retcode #CFE_SUCCESS \retdesc \copydoc CFE_SUCCESS \endcode ** *************************************************************************/ -int32 PQ_AcquireConfigPointer(PQ_ChannelData_t *channel); +int32 PQ_AcquireConfigPointer(PQ_ChannelData_t *Channel); /************************************************************************/ @@ -154,13 +154,13 @@ int32 PQ_AcquireConfigPointer(PQ_ChannelData_t *channel); ** \par Assumptions, External Events, and Notes: ** None ** -** \param channel A #PQ_ChannelData_t pointer that +** \param Channel A #PQ_ChannelData_t pointer that ** references the channel data structure ** \return ** \retcode #CFE_SUCCESS \retdesc \copydoc CFE_SUCCESS \endcode ** *************************************************************************/ -int32 PQ_ProcessNewConfigTbl(PQ_ChannelData_t *channel); +int32 PQ_ProcessNewConfigTbl(PQ_ChannelData_t *Channel); /************************************************************************/ @@ -213,7 +213,8 @@ int32 PQ_ValidateConfigGrndTbl(void *configTblPtr); ** \param initialManage T=this is the first time to call this function ** at app initialization, F=this is being called in the app main loop ** -** \param ChannelID The index of the channel to manage +** \param Channel A #PQ_ChannelData_t pointer that +** references the channel data structure ** *************************************************************************/ void PQ_ManageChannelTables(osalbool initialManage, PQ_ChannelData_t *Channel); @@ -230,11 +231,11 @@ void PQ_ManageChannelTables(osalbool initialManage, PQ_ChannelData_t *Channel); ** \par Assumptions, External Events, and Notes: ** None ** -** \param channel A #PQ_ChannelData_t pointer that +** \param Channel A #PQ_ChannelData_t pointer that ** references the channel data structure ** *************************************************************************/ -void PQ_LoadBackupConfigTable(PQ_ChannelData_t *channel); +void PQ_LoadBackupConfigTable(PQ_ChannelData_t *Channel); #ifdef __cplusplus diff --git a/apps/pq_lib/fsw/public_inc/pq_scheduler.h b/apps/pq_lib/fsw/public_inc/pq_scheduler.h index ee365de3f..f66064e72 100644 --- a/apps/pq_lib/fsw/public_inc/pq_scheduler.h +++ b/apps/pq_lib/fsw/public_inc/pq_scheduler.h @@ -71,6 +71,6 @@ ** This will raise error events as errors are encountered. ** *************************************************************************/ -void PQ_Scheduler_Run(PQ_ChannelData_t *channel); +void PQ_Scheduler_Run(PQ_ChannelData_t *Channel); #endif diff --git a/apps/pq_lib/fsw/src/pq_channel.c b/apps/pq_lib/fsw/src/pq_channel.c index c6b0a3bdf..a127f6dac 100644 --- a/apps/pq_lib/fsw/src/pq_channel.c +++ b/apps/pq_lib/fsw/src/pq_channel.c @@ -67,7 +67,6 @@ uint32 PQ_MemPoolDefSize[PQ_MAX_MEMPOOL_BLK_SIZES] = /************************************************************************ ** External Global Variables *************************************************************************/ -//extern PQ_AppData_t PQ_AppData; /************************************************************************ ** Local Function Definitions @@ -253,7 +252,7 @@ int32 PQ_Channel_OpenChannel(PQ_ChannelData_t *Channel, const char *ChannelName, return Status; } - PQ_Channel_UnlockByRef(Channel); + PQ_Channel_UnlockByRef(Channel); } return Status; } @@ -275,13 +274,13 @@ int32 PQ_Channel_OpenChannel(PQ_ChannelData_t *Channel, const char *ChannelName, //} -//void PQ_Channel_ProcessTelemetry(PQ_ChannelData_t *channel) -//{ - //PQ_Channel_LockByRef(channel); - //PQ_Classifier_Run(channel); - //PQ_Scheduler_Run(channel); - //PQ_Channel_UnlockByRef(channel); -//} +void PQ_Channel_ProcessTelemetry(PQ_ChannelData_t *Channel, CFE_SB_MsgPtr_t DataMsgPtr) +{ + PQ_Channel_LockByRef(Channel); + PQ_Classifier_Run(Channel, DataMsgPtr); + PQ_Scheduler_Run(Channel); + PQ_Channel_UnlockByRef(Channel); +} //void PQ_Channel_ResetCountsAll(void) diff --git a/apps/pq_lib/fsw/src/pq_classifier.c b/apps/pq_lib/fsw/src/pq_classifier.c index a020f34c1..118fa8cd8 100644 --- a/apps/pq_lib/fsw/src/pq_classifier.c +++ b/apps/pq_lib/fsw/src/pq_classifier.c @@ -43,7 +43,7 @@ /* Run the Classifier algorithm */ /* */ /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ -void PQ_Classifier_Run(PQ_ChannelData_t *channel, CFE_SB_MsgPtr_t DataMsgPtr) +void PQ_Classifier_Run(PQ_ChannelData_t *Channel, CFE_SB_MsgPtr_t DataMsgPtr) { int32 status = CFE_SUCCESS; PQ_PriorityQueue_t *pqueue = NULL; @@ -65,9 +65,8 @@ void PQ_Classifier_Run(PQ_ChannelData_t *channel, CFE_SB_MsgPtr_t DataMsgPtr) totalMsgLength, PQ_MAX_MSG_LENGTH, (unsigned short)DataMsgID, - (unsigned short)channel->channelIdx); - //HkTlmPtr->usTotalMsgDropped++; - channel->DropMsgCount++; + (unsigned short)Channel->channelIdx); + Channel->DropMsgCount++; goto end_of_function; } @@ -75,34 +74,33 @@ void PQ_Classifier_Run(PQ_ChannelData_t *channel, CFE_SB_MsgPtr_t DataMsgPtr) * Message ID is not in the table at all so we shouldn't have * received this message. Raise an event. */ - msgFlow = PQ_MessageFlow_GetObject(channel, DataMsgID, &msgFlowIndex); + msgFlow = PQ_MessageFlow_GetObject(Channel, DataMsgID, &msgFlowIndex); if (NULL == msgFlow) { (void) CFE_EVS_SendEvent(PQ_MF_MSG_ID_ERR_EID, CFE_EVS_ERROR, "Classifier Recvd invalid msgId (0x%04X) or message flow was removed on channel (%u)", (unsigned short)DataMsgID, - (unsigned short)channel->channelIdx); - //HkTlmPtr->usTotalMsgDropped++; - channel->DropMsgCount++; + (unsigned short)Channel->channelIdx); + Channel->DropMsgCount++; goto end_of_function; } /* Get the Priority Queue assigned to this Message Flow. */ - pqueue = PQ_MessageFlow_GetPQueue(channel, msgFlow, &pQueueIndex); + pqueue = PQ_MessageFlow_GetPQueue(Channel, msgFlow, &pQueueIndex); if (pqueue != NULL) { /* Queue the message. The else portion will handle all cases where the message * was not queued for the following reasons: configuration table pointer was not * available, queue is full, or memory full error. */ - status = PQ_PriorityQueue_QueueMsg(channel, DataMsgPtr, pQueueIndex); + status = PQ_PriorityQueue_QueueMsg(Channel, DataMsgPtr, pQueueIndex); if (CFE_SUCCESS == status) { /* The message was queued. Increment counters. */ - channel->DumpTbl.MessageFlow[msgFlowIndex].QueuedMsgCnt++; - channel->QueuedMsgCount++; + Channel->DumpTbl.MessageFlow[msgFlowIndex].QueuedMsgCnt++; + Channel->QueuedMsgCount++; } /* The call to PQ_PriorityQueue_QueueMsg may generate the following errors: * PQ_PRIORITY_QUEUE_FULL_ERR (OS_QUEUE_FULL), PQ_MEMORY_FULL_ERR, CFE_ES_ERR_MEM_HANDLE, @@ -110,16 +108,15 @@ void PQ_Classifier_Run(PQ_ChannelData_t *channel, CFE_SB_MsgPtr_t DataMsgPtr) else { /* Queue is full. Increment counters and drop the message. */ - channel->DumpTbl.MessageFlow[msgFlowIndex].DroppedMsgCnt++; + Channel->DumpTbl.MessageFlow[msgFlowIndex].DroppedMsgCnt++; - //HkTlmPtr->usTotalMsgDropped++; - channel->DropMsgCount++; + Channel->DropMsgCount++; (void) CFE_EVS_SendEvent(PQ_MSG_DROP_FROM_FLOW_DBG_EID, CFE_EVS_DEBUG, "PQ full (PQ %u, channel %u). Error code (%d) Dropped message 0x%04x", (unsigned int)pQueueIndex, - (unsigned int)channel->channelIdx, + (unsigned int)Channel->channelIdx, (int)status, (unsigned int)DataMsgID); } diff --git a/apps/pq_lib/fsw/src/pq_config_utils.c b/apps/pq_lib/fsw/src/pq_config_utils.c index f20e81850..af3ac4fee 100644 --- a/apps/pq_lib/fsw/src/pq_config_utils.c +++ b/apps/pq_lib/fsw/src/pq_config_utils.c @@ -82,14 +82,14 @@ /* Initialize Config Table */ /* */ /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ -int32 PQ_InitTables(PQ_ChannelData_t *channel) +int32 PQ_InitTables(PQ_ChannelData_t *Channel) { int32 status = CFE_SUCCESS; int result; /* Register Config tables */ - status = CFE_TBL_Register(&channel->ConfigTblHdl, - channel->ConfigTableName, + status = CFE_TBL_Register(&Channel->ConfigTblHdl, + Channel->ConfigTableName, sizeof(PQ_ChannelTbl_t), CFE_TBL_OPT_DEFAULT, PQ_ValidateConfigTbl); @@ -101,15 +101,15 @@ int32 PQ_InitTables(PQ_ChannelData_t *channel) (void) CFE_EVS_SendEvent(PQ_INIT_CONFIG_ERR_EID, CFE_EVS_ERROR, "Failed to register Config table (0x%08X) for channel %d", (unsigned int)status, - (unsigned int)channel->channelIdx); + (unsigned int)Channel->channelIdx); return status; } /* Register Dump table */ - status = CFE_TBL_Register(&channel->DumpTblHdl, - channel->DumpTableName, - sizeof(PQ_ChannelDumpTbl_t), - CFE_TBL_OPT_USR_DEF_ADDR, + status = CFE_TBL_Register(&Channel->DumpTblHdl, + Channel->DumpTableName, + sizeof(PQ_ChannelDumpTbl_t), + CFE_TBL_OPT_USR_DEF_ADDR, 0); if (status != CFE_SUCCESS) { @@ -119,14 +119,14 @@ int32 PQ_InitTables(PQ_ChannelData_t *channel) CFE_EVS_ERROR, "Failed to register Dump table (0x%08X) for channel %d", (unsigned int)status, - (unsigned int)channel->channelIdx); + (unsigned int)Channel->channelIdx); return status; } /* Load Config table file */ - status = CFE_TBL_Load(channel->ConfigTblHdl, + status = CFE_TBL_Load(Channel->ConfigTblHdl, CFE_TBL_SRC_FILE, - channel->ConfigTableFileName); + Channel->ConfigTableFileName); if (status != CFE_SUCCESS) { /* Note, CFE_SUCCESS is for a successful full table load. If a partial table @@ -135,16 +135,16 @@ int32 PQ_InitTables(PQ_ChannelData_t *channel) CFE_EVS_ERROR, "Failed to load Config Table (0x%08X) for channel %d", (unsigned int)status, - (unsigned int)channel->channelIdx); + (unsigned int)Channel->channelIdx); /* Load emergency backup table */ - PQ_LoadBackupConfigTable(channel); + PQ_LoadBackupConfigTable(Channel); } /* Load Dump table */ - status = CFE_TBL_Load(channel->DumpTblHdl, + status = CFE_TBL_Load(Channel->DumpTblHdl, CFE_TBL_SRC_ADDRESS, - &channel->DumpTbl); + &Channel->DumpTbl); if (status != CFE_SUCCESS) { /* Note, CFE_SUCCESS is for a successful full table load. If a partial table @@ -153,12 +153,12 @@ int32 PQ_InitTables(PQ_ChannelData_t *channel) CFE_EVS_ERROR, "Failed to load Dump Table (0x%08X) for channel %d", (unsigned int)status, - (unsigned int)channel->channelIdx); + (unsigned int)Channel->channelIdx); return status; } /* Force a manage on this channel's tables since this is the first time */ - PQ_ManageChannelTables(TRUE, channel); + PQ_ManageChannelTables(TRUE, Channel); return (status); } @@ -169,28 +169,28 @@ int32 PQ_InitTables(PQ_ChannelData_t *channel) /* Load Backup Config Table */ /* */ /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ -void PQ_LoadBackupConfigTable(PQ_ChannelData_t *channel) +void PQ_LoadBackupConfigTable(PQ_ChannelData_t *Channel) { int32 status = CFE_SUCCESS; /* Load emergency backup TO Config table */ - status = CFE_TBL_Load(channel->ConfigTblHdl, + status = CFE_TBL_Load(Channel->ConfigTblHdl, CFE_TBL_SRC_ADDRESS, - (void*)channel->BackupTblPtr); + (void*)Channel->BackupTblPtr); if (CFE_SUCCESS == status) { (void) CFE_EVS_SendEvent(PQ_BACKUP_TABLE_INF_EID, CFE_EVS_INFORMATION, "Loaded built-in emergency backup config table! - channel %u", - (unsigned int)channel->channelIdx); + (unsigned int)Channel->channelIdx); } else { (void) CFE_EVS_SendEvent(PQ_BACKUP_TABLE_ERR_EID, CFE_EVS_ERROR, "Failed to load built-in emergency backup config table! - channel %u", - (unsigned int)channel->channelIdx); + (unsigned int)Channel->channelIdx); } } @@ -406,12 +406,12 @@ int32 PQ_ValidateConfigTbl(void *configTblPtr) /* Process New Config Table */ /* */ /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ -int32 PQ_ProcessNewConfigTbl(PQ_ChannelData_t* channel) +int32 PQ_ProcessNewConfigTbl(PQ_ChannelData_t* Channel) { int32 status = CFE_SUCCESS; /* Build up the new configuration. */ - status = PQ_MessageFlow_Buildup(channel); + status = PQ_MessageFlow_Buildup(Channel); if (status != CFE_SUCCESS) { /* If this function fails, no message flows were created. @@ -420,7 +420,7 @@ int32 PQ_ProcessNewConfigTbl(PQ_ChannelData_t* channel) return status; } - status = PQ_PriorityQueue_BuildupAll(channel); + status = PQ_PriorityQueue_BuildupAll(Channel); return status; } diff --git a/apps/pq_lib/fsw/src/pq_lib.c b/apps/pq_lib/fsw/src/pq_lib.c index 82660971e..aabe78bd2 100644 --- a/apps/pq_lib/fsw/src/pq_lib.c +++ b/apps/pq_lib/fsw/src/pq_lib.c @@ -11,39 +11,3 @@ int32 PQ_LibInit(void) }/* End PQ_LibInit */ - -//int32 PQ_InitData(void) -//{ - //int32 status = CFE_SUCCESS; - - //status = OS_MutSemCreate(&PQ_AppData.MutexID, "PQ_APP", 0); - //if (status != OS_SUCCESS) - //{ - //CFE_EVS_SendEvent(PQ_CREATE_APPDATA_MUTEX_ERR_EID, - //CFE_EVS_ERROR, - //"Init Data: Failed to create PQ_AppData mutex: 0x%08lX", - //(unsigned long)status); - - //return status; - //} - - //PQ_AppData.HkTlm.ChannelMaxMem = PQ_NUM_BYTES_IN_MEM_POOL; - - //return CFE_SUCCESS; -//} - - -//int32 PQ_AppInit(void) -//{ - //PQ_Channel_InitAll(); - - //return CFE_SUCCESS; -//} - - -//int32 PQ_AppCleanup(void) -//{ - //OS_MutSemDelete(PQ_AppData.MutexID); - - //return CFE_SUCCESS; -//} diff --git a/apps/pq_lib/fsw/src/pq_priority_queue.c b/apps/pq_lib/fsw/src/pq_priority_queue.c index e92429f70..7116e02e8 100644 --- a/apps/pq_lib/fsw/src/pq_priority_queue.c +++ b/apps/pq_lib/fsw/src/pq_priority_queue.c @@ -432,9 +432,9 @@ osalbool PQ_PriorityQueue_Query(PQ_ChannelData_t *Channel, uint16 PQueueIdx) /* Is this index a valid priority queue? */ /* */ /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ -osalbool PQ_PriorityQueue_IsValid(PQ_ChannelData_t *channel, uint32 PQueueIdx) +osalbool PQ_PriorityQueue_IsValid(PQ_ChannelData_t *Channel, uint32 PQueueIdx) { - if ((NULL == channel) || (NULL == channel->ConfigTblPtr)) + if ((NULL == Channel) || (NULL == Channel->ConfigTblPtr)) { return FALSE; } @@ -443,7 +443,7 @@ osalbool PQ_PriorityQueue_IsValid(PQ_ChannelData_t *channel, uint32 PQueueIdx) { return FALSE; } - else if (channel->ConfigTblPtr->PriorityQueue[PQueueIdx].State != PQ_PQUEUE_ENA) + else if (Channel->ConfigTblPtr->PriorityQueue[PQueueIdx].State != PQ_PQUEUE_ENA) { return FALSE; } diff --git a/apps/pq_lib/fsw/src/pq_scheduler.c b/apps/pq_lib/fsw/src/pq_scheduler.c index 4022df0a6..a9119c1b1 100644 --- a/apps/pq_lib/fsw/src/pq_scheduler.c +++ b/apps/pq_lib/fsw/src/pq_scheduler.c @@ -41,7 +41,7 @@ /* Run the Scheduler algorithm */ /* */ /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ -void PQ_Scheduler_Run(PQ_ChannelData_t *channel) +void PQ_Scheduler_Run(PQ_ChannelData_t *Channel) { uint32 i; PQ_PriorityQueue_t *pqueue = NULL; @@ -50,9 +50,9 @@ void PQ_Scheduler_Run(PQ_ChannelData_t *channel) void *buffer = NULL; uint32 nBytesCopied = 0; - oqueue = &channel->OutputQueue; + oqueue = &Channel->OutputQueue; - if (NULL == channel->ConfigTblPtr) + if (NULL == Channel->ConfigTblPtr) { /* If there is no table data we can't access a priority queue. */ return; @@ -61,22 +61,22 @@ void PQ_Scheduler_Run(PQ_ChannelData_t *channel) for (i = 0; i < PQ_MAX_PRIORITY_QUEUES; ++i) { status = OS_SUCCESS; - pqueue = &channel->ConfigTblPtr->PriorityQueue[i]; + pqueue = &Channel->ConfigTblPtr->PriorityQueue[i]; if (pqueue->State != PQ_PQUEUE_UNUSED) { - if (channel->DumpTbl.PriorityQueue[i].OSALQueueID != OS_MAX_QUEUES) + if (Channel->DumpTbl.PriorityQueue[i].OSALQueueID != OS_MAX_QUEUES) { while ((OS_SUCCESS == status) && (oqueue->CurrentlyQueuedCnt < PQ_OUTPUT_QUEUE_DEPTH)) { status = OS_QueueGet( - channel->DumpTbl.PriorityQueue[i].OSALQueueID, + Channel->DumpTbl.PriorityQueue[i].OSALQueueID, &buffer, sizeof(buffer), &nBytesCopied, OS_CHECK); if (OS_SUCCESS == status) { - channel->DumpTbl.PriorityQueue[i].CurrentlyQueuedCnt--; - status = PQ_OutputQueue_QueueMsg(channel, buffer); + Channel->DumpTbl.PriorityQueue[i].CurrentlyQueuedCnt--; + status = PQ_OutputQueue_QueueMsg(Channel, buffer); if (CFE_SUCCESS == status) { oqueue->CurrentlyQueuedCnt++; diff --git a/apps/sbn/modules/mbox/fsw/src/sbn_mailbox_if.c b/apps/sbn/modules/mbox/fsw/src/sbn_mailbox_if.c index 5eab024b1..9b7b3f2c6 100644 --- a/apps/sbn/modules/mbox/fsw/src/sbn_mailbox_if.c +++ b/apps/sbn/modules/mbox/fsw/src/sbn_mailbox_if.c @@ -304,10 +304,7 @@ static int Send(SBN_PeerInterface_t *Peer, SBN_MsgType_t MsgType, printf("MsgSz into queue %u\n", MsgSz); /* Push message onto the PQ */ - PQ_Channel_LockByRef(&SBN_UIO_Mailbox_Data.Channel); - PQ_Classifier_Run(&SBN_UIO_Mailbox_Data.Channel, Payload); - PQ_Scheduler_Run(&SBN_UIO_Mailbox_Data.Channel); - PQ_Channel_UnlockByRef(&SBN_UIO_Mailbox_Data.Channel); + PQ_Channel_ProcessTelemetry(&SBN_UIO_Mailbox_Data.Channel, Payload); end_of_function: return Status; diff --git a/apps/sbn/modules/udp_pq/fsw/src/sbn_udp_if.c b/apps/sbn/modules/udp_pq/fsw/src/sbn_udp_if.c index 263905662..9f97d37e8 100644 --- a/apps/sbn/modules/udp_pq/fsw/src/sbn_udp_if.c +++ b/apps/sbn/modules/udp_pq/fsw/src/sbn_udp_if.c @@ -243,10 +243,8 @@ int SBN_UDP_Send(SBN_PeerInterface_t *Peer, SBN_MsgType_t MsgType, //return SBN_SUCCESS; printf("MsgSz into queue %u\n", MsgSz); - PQ_Channel_LockByRef(&Channel); - PQ_Classifier_Run(&Channel, Payload); - PQ_Scheduler_Run(&Channel); - PQ_Channel_UnlockByRef(&Channel); + /* Push message onto the PQ */ + PQ_Channel_ProcessTelemetry(&Channel, Payload); //size_t BufSz = MsgSz + SBN_PACKED_HDR_SZ; //uint8 Buf[BufSz]; diff --git a/apps/sbn/modules/uio_mbox/fsw/src/sbn_uio_mailbox_if.c b/apps/sbn/modules/uio_mbox/fsw/src/sbn_uio_mailbox_if.c index 31b586f01..3b3b41e39 100644 --- a/apps/sbn/modules/uio_mbox/fsw/src/sbn_uio_mailbox_if.c +++ b/apps/sbn/modules/uio_mbox/fsw/src/sbn_uio_mailbox_if.c @@ -375,10 +375,7 @@ static int Send(SBN_PeerInterface_t *Peer, SBN_MsgType_t MsgType, printf("MsgSz into queue %u\n", MsgSz); /* Push message onto the PQ */ - PQ_Channel_LockByRef(&SBN_UIO_Mailbox_Data.Channel); - PQ_Classifier_Run(&SBN_UIO_Mailbox_Data.Channel, Payload); - PQ_Scheduler_Run(&SBN_UIO_Mailbox_Data.Channel); - PQ_Channel_UnlockByRef(&SBN_UIO_Mailbox_Data.Channel); + PQ_Channel_ProcessTelemetry(&SBN_UIO_Mailbox_Data.Channel, Payload); end_of_function: return Status; From 19b109dc1fea0277f641433d2ff44436a17fb154 Mon Sep 17 00:00:00 2001 From: lorenzo-gomez-windhover Date: Thu, 11 Feb 2021 19:01:21 -0600 Subject: [PATCH 096/370] -Added script to Table Diag Display pattern for TO --- .../Displays/Apps/TO/Scripts/query_diag.py | 97 +++++++++++++++++++ .../Displays/Apps/TO/SendDiag.opi | 61 ++---------- 2 files changed, 107 insertions(+), 51 deletions(-) create mode 100644 core/base/tools/commander/workspace_template/Displays/Apps/TO/Scripts/query_diag.py diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/TO/Scripts/query_diag.py b/core/base/tools/commander/workspace_template/Displays/Apps/TO/Scripts/query_diag.py new file mode 100644 index 000000000..11b756409 --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/Apps/TO/Scripts/query_diag.py @@ -0,0 +1,97 @@ +from org.csstudio.opibuilder.scriptUtil import PVUtil, ScriptUtil +from org.yamcs.studio.data import IPVListener +from java.lang import Runnable +from org.eclipse.swt.widgets import Display + +""" +There appears to be a difference between the Widget we see in YAMCS Studio as a user and the "widget" that gets +passed to this script. The widget that gets passed to this script is of the +org.csstudio.opibuilder.widgets.editparts.TableEdi type. On the other hand, the widget that user deals with in Studio +is of the TableModel kind. I'm still investigating this. +""" + +myTable = widget.getTable() + +currentDisplay = Display.getCurrent() + +# Number of rows +PQUEUE_COUNT = 8 + +# This could be automated/abstracted perhaps? Maybe a bit of a stretch. +PQUEUE_FIELDS = ['DroppedMsgCnt', 'QueuedMsgCnt', 'CurrentlyQueuedCnt', + 'HighwaterMark', 'MsgLimit', 'State', 'QType'] + +# Hopefully there is a way to alias this stuff in Studio. And then perhaps all of thse python scripts could be auto-generated. +# FIXME: I really wish we could just access aggregates. Might be possible through the HTTP client API. +AGGREGATE_PV = "/cfs/to/TO_ChannelDiagTlm_t.PQueue" + +class UI_Business(Runnable): + """ + Any behavior that changes the state of widgets MUST happen inside this runnable function via + ScriptUtil.execInUI. + """ + + def __init__(self, in_row, in_col, in_pv_data): + self.ui_col = in_col + self.ui_row = in_row + self.pv_data = in_pv_data + + def run(self): + # print('PV Value:', self.pv_data.getValue()) + display.getWidget("Table").getTable().setCellText(self.ui_row, + self.ui_col, + str(self.pv_data.getValue())) + +class MyPVListener(IPVListener): + def __init__(self, in_row, in_col, table): + self.row = in_row + self.col = in_col + # print('vector for listener++++++++++++++++++++++++++++++:', (self.vector.getX(), self.vector.getY())) + self.table = table + + def valueChanged(self, pv): + if not pv.isConnected(): + # FIXME: This will not execute. Must wrap around inside an UI Thread. + widget.getTable().setCellText(0, 0, "Disconnected") + else: + ScriptUtil.execInUI(UI_Business(self.row, self.col, pv), widget) + + def connectionChanged(self, pv): + #FIXME:Figure out a way to log properly + print("connection changed") + + def writePermissionChanged(self, pv): + #FIXME:Figure out a way to log properly + print("write permission changed") + + +def insert_rows(rows, table_widget): + """ + Insert new empty rows into table_widget. + :param rows(int): The number of rows to insert. + :param table_widget(SpreadSheetTable): The table widget to insert rows into. + """ + + for row in range(rows): + table_widget.appendRow() + table_widget.setCellText(row, 0, str(row)) + + +def main(): + # Fill PV Name only once + if widget.getVar("firstTime") == None: + widget.setVar("firstTime", True) + insert_rows(PQUEUE_COUNT, myTable) + aggregate_index = 0 + for queue_index in range(0, PQUEUE_COUNT, 1): + # This assumes the our array convention of AGGREGATE_{index}_ + for field in range(0, len(PQUEUE_FIELDS), 1): + pvName = AGGREGATE_PV + "_{}_.".format(aggregate_index) + pvName += PQUEUE_FIELDS[field] + pv = PVUtil.createPV(pvName, widget) + new_listner = MyPVListener(queue_index, field+1, myTable) + pv.addListener(new_listner) + + aggregate_index = aggregate_index + 1 + +main() diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/TO/SendDiag.opi b/core/base/tools/commander/workspace_template/Displays/Apps/TO/SendDiag.opi index ccca4f00e..9c68f79e9 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/TO/SendDiag.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/TO/SendDiag.opi @@ -2107,49 +2107,49 @@ $(pv_value) # 25 - No + Yes TEXT Current Q'd 125 - No + Yes TEXT Total Q'd 125 - No + Yes TEXT Dropped 75 - No + Yes TEXT Highwater 100 - No + Yes TEXT Limit 50 - No + Yes TEXT State 75 - No + Yes TEXT Type 75 - No + Yes TEXT @@ -2172,55 +2172,14 @@ $(pv_value) false - - EmbeddedScript - + =1 true Table - 709 + 1000 369a9df8:177754b6799:-7efc 18 354 From 07df0f55d50f51aed6911f5556cfdf8ee663d971 Mon Sep 17 00:00:00 2001 From: lorenzo-gomez-windhover Date: Thu, 11 Feb 2021 19:02:05 -0600 Subject: [PATCH 097/370] -Updated YAMCS config --- .../tools/commander/workspace_template/etc/cfs.yaml | 1 + .../commander/workspace_template/etc/extra_streams.sql | 2 ++ .../commander/workspace_template/etc/processor.yaml | 3 ++- .../workspace_template/etc/yamcs.yamcs-cfs.yaml | 6 +++--- .../tools/commander/workspace_template/etc/yamcs.yaml | 10 ++++++---- 5 files changed, 14 insertions(+), 8 deletions(-) diff --git a/core/base/tools/commander/workspace_template/etc/cfs.yaml b/core/base/tools/commander/workspace_template/etc/cfs.yaml index 5bc9245db..c87af20a5 100644 --- a/core/base/tools/commander/workspace_template/etc/cfs.yaml +++ b/core/base/tools/commander/workspace_template/etc/cfs.yaml @@ -1,3 +1,4 @@ +#Configuration tested on YAMCS 5.4.0 timestampFormat: "CFE_SB_TIME_32_16_SUBS" tmHost: "127.0.0.1" tmPort: 5011 diff --git a/core/base/tools/commander/workspace_template/etc/extra_streams.sql b/core/base/tools/commander/workspace_template/etc/extra_streams.sql index d79784e16..19aee8617 100644 --- a/core/base/tools/commander/workspace_template/etc/extra_streams.sql +++ b/core/base/tools/commander/workspace_template/etc/extra_streams.sql @@ -1,3 +1,5 @@ +--Configuration tested on YAMCS 5.4.0 +--TODO: This should be auto-generated and driven by configuration. That way we can even abstract the protocol(CCSDS, MAVLink, etc) if need be. create stream cfdp_in as select substring(packet, 12) as pdu from tm_realtime where extract_short(packet, 0) = 4094 create stream cfdp_out (gentime TIMESTAMP, entityId long, seqNum int, pdu binary) insert into tc_realtime select gentime, 'cfdp-service' as origin, seqNum, '/yamcs/cfdp/upload' as cmdName, unhex('1FFDC00000000000') + pdu as binary from cfdp_out diff --git a/core/base/tools/commander/workspace_template/etc/processor.yaml b/core/base/tools/commander/workspace_template/etc/processor.yaml index 6f1fbed17..fd0207061 100644 --- a/core/base/tools/commander/workspace_template/etc/processor.yaml +++ b/core/base/tools/commander/workspace_template/etc/processor.yaml @@ -1,4 +1,4 @@ -#TODO: Needs to be updated to work with our custom CFS configuration +#Configuration tested on YAMCS 5.4.0 realtime: services: - class: org.yamcs.StreamTmPacketProvider @@ -55,6 +55,7 @@ ParameterArchive: # Used for performing archive retrievals via replays +#Configuration tested on YAMCS 5.4.0 # we do not want cache in order to extract the minimum data necessary ArchiveRetrieval: services: diff --git a/core/base/tools/commander/workspace_template/etc/yamcs.yamcs-cfs.yaml b/core/base/tools/commander/workspace_template/etc/yamcs.yamcs-cfs.yaml index 3fb6aef21..f01b868e3 100644 --- a/core/base/tools/commander/workspace_template/etc/yamcs.yamcs-cfs.yaml +++ b/core/base/tools/commander/workspace_template/etc/yamcs.yamcs-cfs.yaml @@ -1,4 +1,4 @@ -#TODO: Needs to be updated to work with our custom CFS configuration +#Configuration tested on YAMCS 5.4.0 services: - class: org.yamcs.archive.XtceTmRecorder - class: org.yamcs.archive.ParameterRecorder @@ -35,11 +35,11 @@ services: localEntities: - name: "0.23" id: 23 - bucket: cfdpUp12 + bucket: cfdpUp remoteEntities: - name: "0.24" id: 24 - bucket: bucket2 + bucket: cfdpDown receiverFaultHandlers: AckLimitReached: suspend diff --git a/core/base/tools/commander/workspace_template/etc/yamcs.yaml b/core/base/tools/commander/workspace_template/etc/yamcs.yaml index 74695dcc7..f3bbc16f6 100644 --- a/core/base/tools/commander/workspace_template/etc/yamcs.yaml +++ b/core/base/tools/commander/workspace_template/etc/yamcs.yaml @@ -1,4 +1,4 @@ -#TODO: Needs to be updated to work with our custom CFS configuration +#Configuration tested on YAMCS 5.4.0 services: - class: org.yamcs.http.HttpServer args: @@ -16,9 +16,11 @@ instances: # This is used to provide cryptographic signing. secretKey: changeme -yamcs-web: - displayPath: Displays +#The bucket with name of "displays" must ALWAYS be called "displays". The YAMCS Webapp looks for a bucket with ths exact name when loading displays from the filesystem. +#See yamcs/yamcs-web/src/main/java/org/yamcs/web/WebPlugin.java for details. buckets: - - name: cfdpUp12 + - name: cfdpUp path: cfdp_upload + - name: displays + path: Displays From 45331c2d0af280943cfa4f6f75ccedc7189ff947 Mon Sep 17 00:00:00 2001 From: cnalley Date: Fri, 12 Feb 2021 19:28:34 +0000 Subject: [PATCH 098/370] More cleanup and refactoring of pq lib. --- apps/pq_lib/fsw/public_inc/pq_events.h | 848 ++----------------- apps/pq_lib/fsw/public_inc/pq_message_flow.h | 2 - apps/pq_lib/fsw/public_inc/pq_mission_cfg.h | 2 +- apps/pq_lib/fsw/public_inc/pq_platform_cfg.h | 246 +----- apps/pq_lib/fsw/public_inc/pq_scheduler.h | 3 + apps/pq_lib/fsw/public_inc/pq_structs.h | 38 +- 6 files changed, 113 insertions(+), 1026 deletions(-) diff --git a/apps/pq_lib/fsw/public_inc/pq_events.h b/apps/pq_lib/fsw/public_inc/pq_events.h index eb80464cd..5956ab1d5 100644 --- a/apps/pq_lib/fsw/public_inc/pq_events.h +++ b/apps/pq_lib/fsw/public_inc/pq_events.h @@ -49,10 +49,6 @@ extern "C" { * For long-term maintenance, consider not removing an event but replacing it * with an unused, reserved, enum to preserve the IDs later in the list. */ typedef enum { - -/** \brief Value of zero is reserved, and should not be used. */ - PQ_RESERVED_EID = 0, /* Do not use this event ID */ - /* * START OF STANDARDIZED EVENT LIST * @@ -63,270 +59,59 @@ typedef enum { * convention. */ -/** \brief TO Init App INFO. -** \event Initialized. Version \%d.\%d.\%d.\%d -** -** \par Type: INFORMATION -* -** \par Cause: -** -** This event message is issued when the CFS TO Task has -** completed initialization. -** -** The first \c \b " %d " field contains the Application's Major Version Number -** The second \c \b " %d " field contains the Application's Minor Version Number -** The third \c \b " %d " field contains the Application's Revision Number -*/ - PQ_INIT_APP_INF_EID = 1, - -/** \brief TO Configuration Table Initialized. -** \event Config tables are initialized. -** -** \par Type: INFORMATION -** -** \par Cause: -** -** This message is generated when a table is initialized. -** -*/ - PQ_INIT_CONFIG_INF_EID = 2, - -/** \brief TO NOOP CMD INFO. -** \event Executed NOOP cmd (\%u), Version \%d.\%d.\%d.\%d -** -** \par Type: INFORMATION -** -** \par Cause: -** -** This event message is issued when the CFS TO Task has -** received and processed a Noop command. Also, the -** application version number is displayed. -*/ - PQ_CMD_NOOP_INF_EID = 3, - -/** \brief TO RESET CMD INFO. -** \event Executed RESET cmd (\%u) -** -** \par Type: INFORMATION -** -** \par Cause: -** -** This event message is issued when the CFS TO Task has -** received and processed a Reset command. -** -*/ - PQ_CMD_RESET_INF_EID = 4, - -/** \brief TO - -** \event TO - -** -** \par Type: -** -** \par Cause: -** -** This event message is reserved. -** Reserved for common id - PQ_SUBSCRIBE_INF_EID -** -*/ - PQ_RESERVED_ONE_EID = 5, - -/** \brief TO Init App ERROR. +/** \brief PQ Init ERROR. ** \event Application failed to initialize. ** ** \par Type: ERROR ** ** \par Cause: ** -** This event message is issued when the CFS TO Task has +** This event message is issued when a CFS Task has ** had an error with initializing the app. ** */ - PQ_INIT_APP_ERR_EID = 6, - -/** \brief TO - -** \event TO - -** -** \par Type: -** -** \par Cause: -** -** This event message is reserved. -** Reserved for common id - PQ_INIT_CLEANUP_ERR_EID -** -*/ - PQ_RESERVED_TWO_EID = 7, - -/** \brief TO Init CMD Pipe ERROR. -** \event Failed to create CMD pipe (0x%08X) -** -** \par Type: ERROR -** -** \par Cause: -** -** This event message is issued when the CFS TO Task has -** had an error initializing the command pipe. -** -*/ - PQ_INIT_CMDPIPE_ERR_EID = 8, + PQ_INIT_APP_ERR_EID = 1 + PQ_EVENT_ID_OFFSET, -/** \brief TO Init configuration table ERROR. +/** \brief PQ Init configuration table ERROR. ** \event Failed to init config tables (0x%08X) ** ** \par Type: ERROR ** ** \par Cause: ** -** This event message is issued when the CFS TO Task has +** This event message is issued when the CFS Task has ** had an error initializing a configuration table. ** */ - PQ_INIT_CONFIG_ERR_EID = 9, - -/** \brief TO - -** \event TO - -** -** \par Type: -** -** \par Cause: -** -** This event message is reserved. -** Reserved for common id - PQ_INIT_DATA_ERR_EID -** -*/ - PQ_RESERVED_THREE_EID = 10, - -/** \brief TO Init data pipe ERROR. -** \event Failed to init config tables (0x%08X) -** -** \par Type: ERROR -** -** \par Cause: -** -** This event message is issued when the CFS TO Task has -** had an error initializing the data pipe -** -*/ - PQ_INIT_DATAPIPE_ERR_EID = 11, - -/** \brief TO Init pipe ERROR. -** \event Failed to init pipes (0x%08X) -** -** \par Type: ERROR -** -** \par Cause: -** -** This event message is issued when the CFS TO Task has -** has at least 1 error initializing a pipe. -** -*/ - PQ_INIT_PIPE_ERR_EID = 12, - -/** \brief TO Init SCH pipe ERROR. -** \event Failed to create SCH pipe (0x%08X) -** -** \par Type: ERROR -** -** \par Cause: -** -** This event message is issued when the CFS TO Task has -** had an error initializing the scheduler pipe -** -*/ - PQ_INIT_SCHPIPE_ERR_EID = 13, - -/** \brief TO Command Code Error. -** \event Recvd invalid cmdId (\%u) -** -** \par Type: ERROR -** -** \par Cause: -** -** This event message is issued when the CFS TO Task has -** received a command with an invalid command code -** -*/ - PQ_CC_ERR_EID = 14, + PQ_INIT_CONFIG_ERR_EID = 2 + PQ_EVENT_ID_OFFSET, -/** \brief TO CONFIG TABLE Address Error. +/** \brief PQ CONFIG TABLE Address Error. ** \event Failed to get Config table's address for channel \%u, (0x%08X) ** ** \par Type: ERROR ** ** \par Cause: ** -** This event message is issued when the CFS TO Task has +** This event message is issued when the CFS Task has ** had an error with getting the configuration table address. ** */ - PQ_CONFIG_ADDR_ERR_EID = 15, + PQ_CONFIG_ADDR_ERR_EID = 3 + PQ_EVENT_ID_OFFSET, -/** \brief TO CONFIG TABLE Manage Error. +/** \brief PQ CONFIG TABLE Manage Error. ** \event Failed to manage Config table for channel \%u, (0x%08X) ** ** \par Type: ERROR ** ** \par Cause: ** -** This event message is issued when the CFS TO Task has +** This event message is issued when the CFS Task has ** had an error with managing the configuration table. ** */ - PQ_CONFIG_MANAGE_ERR_EID = 16, - -/** \brief TO received invalid message ID. -** \event Recvd invalid $type msgId (0x%04x) -** -** \par Type: ERROR -** -** \par Cause: -** -** This event message is issued when the CFS TO Task has -** received an invalid message ID. -** -*/ - PQ_MSG_ID_ERR_EID = 17, - -/** \brief TO received a message with a invalid length -** \event Rcvd invalid msgLen: msgId=0x%08X, cmdCode=\%d, msgLen=\%d, expectedLen=\%d" -** -** \par Type: ERROR -** -** \par Cause: -** -** This event message is issued when the CFS TO Task has -** received a message with a bad length. -** -*/ - PQ_MSG_LEN_ERR_EID = 18, - -/** \brief TO Software Bus Pipe ERROR. -** \event SB pipe read error (0x%08X) -** -** \par Type: ERROR -** -** \par Cause: -** -** This event message is issued when the CFS TO Task has -** had an error reading from a pipe. -** -*/ - PQ_PIPE_READ_ERR_EID = 19, + PQ_CONFIG_MANAGE_ERR_EID = 4 + PQ_EVENT_ID_OFFSET, -/** \brief TO Subscribe ERROR. -** \event CMD Pipe failed to subscribe to PQ_CMD_MID. (0x%08X) -** \event Sch Pipe failed to subscribe to PQ_SEND_HK_MID. (0x%08X) -** -** \par Type: ERROR -** -** \par Cause: -** -** This event message is issued when the CFS TO Task has -** had an error subscribing to messages. -** -*/ - PQ_SUBSCRIBE_ERR_EID = 20, - -/** \brief TO Configuration ERROR. +/** \brief PQ Configuration ERROR. ** \event Channel \%u config table handle failure! (0x%08X) ** \event Failed to clear SB data pipe for channel \%u, (0x%08X) ** \event Failed to create '\%s' output channel queue for channel \%d. err=\%ld @@ -335,50 +120,11 @@ typedef enum { ** ** \par Cause: ** -** This event message is issued when the CFS TO Task has +** This event message is issued when the CFS Task has ** had an error with the configuration table. ** */ - PQ_CONFIG_TABLE_ERR_EID = 21, - -/** \brief TO received and processed a command. -** \event Enabled channel \%u to \%s:\%u. -** -** \par Type: INFORMATION -** -** \par Cause: -** -** This event message is issued when the CFS TO Task has -** received and processed a command. -** -*/ - PQ_CMD_INF_EID = 22, - -/** \brief TO Unsubscribe ERROR. -** \event Message flow failed to unsubscribe from 0x%04x. (\%ld) -** -** \par Type: ERROR -** -** \par Cause: -** -** This event message is issued when the CFS TO Task has -** had an error subscribing to messages. -** -*/ - PQ_UNSUBSCRIBE_ERR_EID = 23, - -/** \brief TO Create child task failed. -** \event Child task creation failed: Failed to create \%s: 0x%08lX -** -** \par Type: ERROR -** -** \par Cause: -** -** This event message is issued when TO has failed to -** create its child task. -** -*/ - PQ_CREATE_CHDTASK_ERR_EID = 24, + PQ_CONFIG_TABLE_ERR_EID = 5 + PQ_EVENT_ID_OFFSET, /** \brief Message Dropped on Priority Queue. ** \event PQ full (PQ \%lu, channel \%u). Error code (\%ld) Dropped message 0x%04x @@ -397,36 +143,20 @@ typedef enum { ** - OS_ERROR are all handled by this else clause ** */ - PQ_MSG_DROP_FROM_FLOW_DBG_EID = 25, + PQ_MSG_DROP_FROM_FLOW_DBG_EID = 6 + PQ_EVENT_ID_OFFSET, -/** \brief TO Create memory pool failed. +/** \brief PQ Create memory pool failed. ** \event Error creating memory pool (0x%08X) ** ** \par Type: ERROR ** ** \par Cause: ** -** This event message is issued when TO has failed to +** This event message is issued when PQ has failed to ** create memory pool. ** */ - PQ_CR_POOL_ERR_EID = 26, - - /* Deleted "PQ_GET_POOL_ERR_EID = 27" */ - -/** \brief Listener failed to write. -** \event Listener passed NULL POINTER to PQ_OutputChannel_Send(). -** \event Not all bytes written to storage locations. -** -** \par Type: ERROR -** -** \par Cause: -** -** This event message is issued when TO has failed to -** write due to NULL pointer or not all bytes written. -** -*/ - PQ_TLM_LISTEN_ERR_EID = 28, + PQ_CR_POOL_ERR_EID = 7 + PQ_EVENT_ID_OFFSET, /** \brief Query a channel for a specified message flow. ** \event CHANNEL=\%d MID=0x%04x ML=\%u PQI=\%u N=\%u AB=\%u D=\%lu Q=\%lu SB=\%lu FLT=\%lu FLD=\%lu S=\%lu @@ -435,7 +165,7 @@ typedef enum { ** ** \par Cause: ** -** This event message is issued when the CFS TO Task has +** This event message is issued when the CFS Task has ** received and processed a Query Message Flow command. ** The following information is displayed: ** @@ -452,7 +182,7 @@ typedef enum { ** - Failed Message Count ** - Sent Message Count */ - PQ_MSG_FLOW_INFO_EID = 29, + PQ_MSG_FLOW_INFO_EID = 8 + PQ_EVENT_ID_OFFSET, /** \brief Failed query on channel for a specified message flow. ** \event MsgID=0x%04x not found (channel = \%d) @@ -463,13 +193,13 @@ typedef enum { ** ** \par Cause: ** -** TO Command to query a message flow has failed due to the following: +** PQ Command to query a message flow has failed due to the following: ** ** - MsgID not found ** - Channel not open ** - Channel index not valid (out of range) */ - PQ_MSG_FLOW_INFO_ERR_EID = 30, + PQ_MSG_FLOW_INFO_ERR_EID = 9 + PQ_EVENT_ID_OFFSET, /** \brief Failed query on a channel for a specified message with NULL table pointer ** \event Channel missing valid table data (channel = \%d). @@ -478,11 +208,11 @@ typedef enum { ** ** \par Cause: ** -** TO Command to query a message flow has failed due to the following: +** PQ Command to query a message flow has failed due to the following: ** ** - Channel missing valid table data. */ - PQ_MSG_FLOW_MISSING_TBL_ERR_EID = 31, + PQ_MSG_FLOW_MISSING_TBL_ERR_EID = 10 + PQ_EVENT_ID_OFFSET, /** \brief Query a channel's priority queue. ** \event CHANNEL=\%d PQI=\%u S=\%u ML=\%u QT=\%u D=\%lu Q=\%lu CQ=\%u HWM=\%u @@ -491,11 +221,11 @@ typedef enum { ** ** \par Cause: ** -** This event message is issued when TO Command Priority Queue Query executed +** This event message is issued when PQ Command Priority Queue Query executed ** successfully. ** */ - PQ_PQUEUE_INFO_EID = 32, + PQ_PQUEUE_INFO_EID = 11 + PQ_EVENT_ID_OFFSET, /** \brief Failed query on a channel's priority queue. ** \event PQueueIdx \%u exceeds the largest available priority queue index @@ -506,14 +236,14 @@ typedef enum { ** ** \par Cause: ** -** This event message is issued when TO Command Priority Queue Query failed due to the following: +** This event message is issued when PQ Command Priority Queue Query failed due to the following: ** ** - Priority queue index exceeds largest available priority queue index ** - Channel not open ** - Channel index not valid (out of range) ** */ - PQ_PQUEUE_INFO_ERR_EID = 33, + PQ_PQUEUE_INFO_ERR_EID = 12 + PQ_EVENT_ID_OFFSET, /** \brief Command to query an output queue. ** \event CHANNEL=\%d S=\%d ML=\%i SC=\%lu CQC=\%d HWM=\%d @@ -522,7 +252,7 @@ typedef enum { ** ** \par Cause: ** -** This event message is issued when the CFS TO Task has +** This event message is issued when the CFS Task has ** received and processed a Query Output Queue command. ** The following information is displayed: ** @@ -534,7 +264,7 @@ typedef enum { ** - HighwaterMark ** */ - PQ_OUT_CH_INFO_EID = 34, + PQ_OUT_CH_INFO_EID = 13 + PQ_EVENT_ID_OFFSET, /** \brief Command to query an output queue failed. ** \event Invalid channel index (index = \%d, max = \%d). @@ -544,38 +274,14 @@ typedef enum { ** ** \par Cause: ** -** This event message is issued when TO Command Output Queue Query failed due to the following: +** This event message is issued when PQ Command Output Queue Query failed due to the following: ** ** - Channel index not valid (out of range) ** - Channel not open ** */ - PQ_OUT_CH_INFO_ERR_EID = 35, + PQ_OUT_CH_INFO_ERR_EID = 14 + PQ_EVENT_ID_OFFSET, -/** \brief Failed to send out telemetry message, message too large. -** \event Listener: message too big, MID=0x\%x, bytes=\%u -** -** \par Type: ERROR -** -** \par Cause: -** -** This event message is issued when TO failed to send out telemetry message, message too large. -** -*/ - PQ_OUT_CH_MSG_TOO_BIG_EID = 36, - -/** \brief Command to add a message flow executed successfully. -** \event Executed ADD_MESSAGE cmd (\%u) -** -** \par Type: INFORMATION -** -** \par Cause: -** -** This event message is issued when TO Command Add a message flow executed successfully. -** -*/ - PQ_CMD_ADD_MSG_FLOW_EID = 37, - /** \brief Command to add a message flow has failed. ** \event Invalid channel (channel = \%d, but max = \%d). ** \event Channel (\%d) not open. @@ -592,7 +298,7 @@ typedef enum { ** ** \par Cause: ** -** This event message is issued when TO Command Add a message flow failed +** This event message is issued when PQ Command Add a message flow failed ** for one of the following reasons: ** ** - Channel index not valid (out of range) @@ -606,19 +312,7 @@ typedef enum { ** - Message flow failed to subscribe ** - No available slots to insert message flow > PQ_MAX_MESSAGE_FLOWS */ - PQ_CMD_ADD_MSG_FLOW_ERR_EID = 38, - -/** \brief Command to remove a message flow executed successfully. -** \event Executed remove message flow cmd (\%u) -** -** \par Type: INFORMATION -** -** \par Cause: -** -** This event message is issued when TO command remove a message flow executed successfully. -** -*/ - PQ_CMD_REMOVE_MSG_FLOW_EID = 39, + PQ_CMD_ADD_MSG_FLOW_ERR_EID = 15 + PQ_EVENT_ID_OFFSET, /** \brief Command to remove a message flow has failed. ** \event Invalid channel (channel = \%d, but max = \%d). @@ -630,7 +324,7 @@ typedef enum { ** ** \par Cause: ** -** This event message is issued when TO Command Remove a message flow failed +** This event message is issued when PQ Command Remove a message flow failed ** for one of the following reasons: ** ** - Channel index not valid (out of range) @@ -639,49 +333,7 @@ typedef enum { ** - Message flow failed to unsubscribe from channel ** */ - PQ_CMD_REMOVE_MSG_FLOW_ERR_EID = 40, - -/** \brief Command to send TO Diagnostics telemetry executed successfully. -** \event Successfully executed send diagnostics (\%u) -** -** \par Type: INFORMATION -** -** \par Cause: -** -** This event message is issued when TO command to Send TO Diagnostics telemetry executed successfully. -** -*/ - PQ_CMD_SEND_DIAG_EID = 41, - -/** \brief Command to send TO Diagnostics telemetry failed - (per-channel event). -** \event Invalid channel index. -** \event Channel has not been opened. -** -** \par Type: ERROR -** -** \par Cause: -** -** This event message (per-channel event) is issued when TO Send TO Diagnostics telemetry failed -** for one of the following reasons: -** -** - Channel index not valid (out of range) -** - Channel not open -*/ - PQ_CMD_SEND_DIAG_ERR_EID = 42, - -/** \brief Command to send diagnostics action did not occur because table data was missing - (per-channel event) -** \event Channel table is not available. -** -** \par Type: ERROR -** -** \par Cause: -** -** This event message (per-channel event) is issued when TO Command to sent -** TO diagnostic telemetry has failed due to the following: -** -** - Channel table pointer is NULL. -*/ - PQ_CMD_SEND_MISSING_TBL_ERR_EID = 43, + PQ_CMD_REMOVE_MSG_FLOW_ERR_EID = 16 + PQ_EVENT_ID_OFFSET, /** \brief Failed to create priority queue because table data was missing - (per-channel event). ** \event Failed to create priority queues on channel \%d, missing table. @@ -690,12 +342,12 @@ typedef enum { ** ** \par Cause: ** -** This event message (per-channel event) is issued when TO Command to query +** This event message (per-channel event) is issued when PQ Command to query ** a priority queue has failed due to the following: ** ** - Channel table pointer is NULL. */ - PQ_PQUEUE_MISSING_TBL_ERR_EID = 44, + PQ_PQUEUE_MISSING_TBL_ERR_EID = 17 + PQ_EVENT_ID_OFFSET, /** \brief A priority queue could not be created because call to OS_QueueCreate failed (per-channel event). ** \event Failed to create '\%s' priority queue #\%u on channel \%d. (\%i) @@ -715,7 +367,7 @@ typedef enum { ** ** A priority queue could not be created. Not a critical error. */ - PQ_PQUEUE_CREATE_ERR_EID = 45, + PQ_PQUEUE_CREATE_ERR_EID = 18 + PQ_EVENT_ID_OFFSET, /** \brief A priority queue could not be torn down (per-channel event). ** \event Failed to return message back to memory pool on tbl load for channel \%d. (\%ld) @@ -733,22 +385,9 @@ typedef enum { ** - Failed to delete priority queue for the channel - error returned from call to OS_QueueDelete ** */ - PQ_PQUEUE_TEARDOWN_ERR_EID = 46, + PQ_PQUEUE_TEARDOWN_ERR_EID = 19 + PQ_EVENT_ID_OFFSET, -/** \brief The Storage queue anomaly buffer value is not in valid range. -** \event TO custom setting anomaly queue index error (\%u) using default anomaly buffer (10) index 6 -** -** \par Type: ERROR -** -** \par Cause: -** -** This event message is issed when TO custom setting anomaly queue index is not in range. It must be -** greater than PQ_MIN_ANOMALY_QUEUE and less than PQ_MAX_ANOMALY_QUEUE -** -*/ - PQ_DECIMATE_SET_QUEUE_BIT_ERR_EID = 47, - -/** \brief TO Table Validation failed - Configuration table pointer is NULL (not available). +/** \brief PQ Table Validation failed - Configuration table pointer is NULL (not available). ** \event ERROR: Config table pointer is NULL, table validation ended" ** ** \par Type: ERROR @@ -758,9 +397,9 @@ typedef enum { ** This event message is issed when table validation failed due config table pointer being NULL (not available). ** */ - PQ_CONFIG_TABLE_NULL_PTR_EID = 48, + PQ_CONFIG_TABLE_NULL_PTR_EID = 20 + PQ_EVENT_ID_OFFSET, -/** \brief TO Table Validation failed - Priority Queue State is invalid. +/** \brief PQ Table Validation failed - Priority Queue State is invalid. ** \event ERROR: Priority Queue State is invalid (\%d), for Table ID (\%lu) at table index (\%d) ** ** \par Type: ERROR @@ -770,9 +409,9 @@ typedef enum { ** This event message is issed when table validation failed due Priority Queue State not valid. ** */ - PQ_CONFIG_TABLE_PQUEUE_STATE_ERR_EID = 49, + PQ_CONFIG_TABLE_PQUEUE_STATE_ERR_EID = 21 + PQ_EVENT_ID_OFFSET, -/** \brief TO Table Validation failed - Priority Queue Type is invalid. +/** \brief PQ Table Validation failed - Priority Queue Type is invalid. ** \event ERROR: Priority Queue Qtype is invalid (\%d) for Table ID (\%lu) at table index (\%d) ** ** \par Type: ERROR @@ -782,9 +421,9 @@ typedef enum { ** This event message is issed when table validation failed due to Priority Queue Type not valid. Only one type - FIFO. ** */ - PQ_CONFIG_TABLE_PQUEUE_QTYPE_ERR_EID = 50, + PQ_CONFIG_TABLE_PQUEUE_QTYPE_ERR_EID = 22 + PQ_EVENT_ID_OFFSET, -/** \brief TO Table Validation failed - Priority Queue Message Limit is invalid. +/** \brief PQ Table Validation failed - Priority Queue Message Limit is invalid. ** \event ERROR: Priority Queue MsgLimit invalid (\%d) for Table ID (\%lu) at table index (\%d) ** ** \par Type: ERROR @@ -794,9 +433,9 @@ typedef enum { ** Table validation failed due to Priority Queue Message Limit because invalid. ** */ - PQ_CONFIG_TABLE_PQUEUE_MSG_LIMIT_ERR_EID = 51, + PQ_CONFIG_TABLE_PQUEUE_MSG_LIMIT_ERR_EID = 23 + PQ_EVENT_ID_OFFSET, -/** \brief TO Table Validation failed - no Priority Queues defined in the table. +/** \brief PQ Table Validation failed - no Priority Queues defined in the table. ** \event ERROR: No Priority Queues or all queue states are unused in the config table with Table ID (\%lu) ** ** \par Type: ERROR @@ -806,9 +445,9 @@ typedef enum { ** This event message is issed when table validation failed due because no Priority Queues defined in the table. ** */ - PQ_CONFIG_TABLE_NO_PQUEUES_ERR_EID = 52, + PQ_CONFIG_TABLE_NO_PQUEUES_ERR_EID = 24 + PQ_EVENT_ID_OFFSET, -/** \brief TO Table Validation failed - secondary header is absent. +/** \brief PQ Table Validation failed - secondary header is absent. ** \event ERROR: Secondary Header is absent for table index (\%d), MsgId (0x%04X) in Table ID (\%lu) ** ** \par Type: ERROR @@ -818,9 +457,9 @@ typedef enum { ** This event message is issed when table validation failed due to CCSDS secondary header error (absent) ** */ - PQ_CONFIG_TABLE_SHDR_ABSENT_EID = 53, + PQ_CONFIG_TABLE_SHDR_ABSENT_EID = 25 + PQ_EVENT_ID_OFFSET, -/** \brief TO Table Validation failed - Invalid CCSDS version +/** \brief PQ Table Validation failed - Invalid CCSDS version ** \event ERROR: Invalid CCSDS Version for table index (\%d), MsgId (0x%04X) in Table ID (\%lu) ** ** \par Type: ERROR @@ -830,9 +469,9 @@ typedef enum { ** This event message is issed when table validation failed due to CCSDS VERS error. ** */ - PQ_CONFIG_TABLE_CCSDS_VER_INVALID_EID = 54, + PQ_CONFIG_TABLE_CCSDS_VER_INVALID_EID = 26 + PQ_EVENT_ID_OFFSET, -/** \brief TO Table Validation failed - configuration table Message Flow Limit is invalid. +/** \brief PQ Table Validation failed - configuration table Message Flow Limit is invalid. ** \event ERROR: Message Flow MsgLimit invalid (\%u) in Table ID (\%lu) at table index (\%d) ** ** \par Type: ERROR @@ -842,9 +481,9 @@ typedef enum { ** This event message is issed when table validation failed due to Message Flow Limit is out of range. ** */ - PQ_CONFIG_TABLE_MSG_FLOW_MSG_LIMIT_ERR_EID = 55, + PQ_CONFIG_TABLE_MSG_FLOW_MSG_LIMIT_ERR_EID = 27 + PQ_EVENT_ID_OFFSET, -/** \brief TO Table Validation failed - configuration table Message Flow Priority Queue ID is invalid. +/** \brief PQ Table Validation failed - configuration table Message Flow Priority Queue ID is invalid. ** \event ERROR: Message Flow Priority Queue ID is invalid (\%d) for Table ID (\%lu) at table index (\%d) ** ** \par Type: ERROR @@ -854,9 +493,9 @@ typedef enum { ** This event message is issed when table validation failed due to Message Flow Priority Queue ID being invalid. ** */ - PQ_CONFIG_TABLE_MSG_FLOW_PQ_ID_ERR_EID = 56, + PQ_CONFIG_TABLE_MSG_FLOW_PQ_ID_ERR_EID = 28 + PQ_EVENT_ID_OFFSET, -/** \brief TO Table Validation failed - configuration table has no Message Flows defined. +/** \brief PQ Table Validation failed - configuration table has no Message Flows defined. ** \event INFO: No Message Flow entries in the config table, Table Id (\%lu) ** ** \par Type: INFO @@ -866,33 +505,7 @@ typedef enum { ** This event message is issed when table validation failed due to no Message Flows defined in table. ** */ - PQ_CONFIG_TABLE_NO_MSG_FLOW_INF_EID = 57, - -/** \brief TO Table Validation failed - configuration table Message Flow Decimation Filter value is invalid. -** \event ERROR: Storage Filter value is invalid must be 0 value is (\%u) for Table ID (\%lu) at table index (\%d) -** \event ERROR: Ground or Onboard Filter value is invalid must at least 1, value is (\%d) for Table ID (\%lu) at table index (\%d)" -** -** \par Type: ERROR -** -** \par Cause: -** -** These event messages are issed when table validation failed due to Message Flow Decimation Filter value being invalid. -** For Storage channel the filter value must be 0 and for the Ground and Onboard channels the filter value must be non-zero. -** -*/ - PQ_CONFIG_TABLE_MSG_FLOW_FILTER_ERR_EID = 58, - -/** \brief TO Table Validation failed - configuration table storage anomaly queue values are invalid for Ground and Onboard Channels. -** \event ERROR: Queue value is invalid must be 0 value is (\%u) for Table ID (\%lu) at table index (\%d) -** -** \par Type: ERROR -** -** \par Cause: -** -** This event message is issed when table validation failed due to storage anomaly queue values being non-zero for Ground and Onboard Channels. -** -*/ - PQ_CONFIG_TABLE_QUEUE_ERR_EID = 59, + PQ_CONFIG_TABLE_NO_MSG_FLOW_INF_EID = 29 + PQ_EVENT_ID_OFFSET, /** \brief Memory pool error - failed deallocating the memory allocated. ** \event PutPoolBuf: channel=\%d error=\%i @@ -901,252 +514,13 @@ typedef enum { ** ** \par Cause: ** -** This event message is issued when TO has failed to deallocate the memory allocated +** This event message is issued when PQ has failed to deallocate the memory allocated ** because CFE_ES_PutPoolBuf returned an error. ** */ - PQ_PUT_POOL_ERR_EID = 60, - -/** \brief Command to flush a TO channel failed due invalid channel identifier. -** \event ChannelID \%u out of range. -** -** \par Type: ERROR -** -** \par Cause: -** -** This event message is issued when TO flush command failed for following reasons. -** -** - Channel index not valid (out of range) -** -*/ - PQ_FLUSH_INVALID_CHIDX_ERR_EID = 61, - -/** \brief Command to flush a TO channel failed on output queue. -** \event ChannelID \%u flush failure on output queue. -** -** \par Type: ERROR -** -** \par Cause: -** -** This event message is issued when TO flush command failed for following reasons. -** -** - Output Queue teardown failure -** -*/ - PQ_FLUSH_OQ_ERR_EID = 62, - -/** \brief Command to flush a TO channel failed on priority queue wipe all. -** \event ChannelID \%u flush failure on priority queue. -** -** \par Type: ERROR -** -** \par Cause: -** -** This event message is issued when TO flush command failed for following reasons. -** -** - Priority queue wipe all failure -** -*/ - PQ_FLUSH_PQ_ERR_EID = 63, - -/** \brief Command to flush a TO channel failed due to a software bus dequeue failure. -** \event ChannelID \%u software bus dequeue failure. -** -** \par Type: ERROR -** -** \par Cause: -** -** This event message is issued when TO flush command failed for following reasons. -** -** - Software bus dequeue failure -** -*/ - PQ_FLUSH_DEQUEUE_ERR_EID = 64, - -/** \brief Command to flush a TO channel executed successfully. -** \event ChannelID \%u flush successful. -** -** \par Type: INFORMATION -** -** \par Cause: -** -** This event message is issued when TO Channel flush command executed successfully. -** -*/ - PQ_FLUSH_SUCCESS_INF_EID = 65, - -/** \brief Command to modify a message flow's decimation values executed successfully. -** \event Executed Modify Decimation cmd (\%u) -** -** \par Type: INFORMATION -** -** \par Cause: -** -** This event message is issued when TO Command to modify -** message flow decimation scheme executed successfully. -** -*/ - PQ_CMD_MOD_DECIM_MSG_EID = 66, - -/** \brief Command to modify a message flow's decimation values has failed. -** \event Invalid channel (channel = \%d, but max = \%d). -** \event Channel not open. -** \event Message flow is not defined. -** \event Ground/Onboard Channel: Command inputs for storage location queues must be zero. -** \event Ground/Onboard Channel: Command input for Filter Value must be at least 1. -** \event Storage Channel: Command input for Filter Value must be 0. -** \event Storage: Command inputs for storage location queues are zero - Message flow not changed. -** -** \par Type: ERROR -** -** \par Cause: -** -** These event messages are issued when TO Command Remove a message flow failed -** for one of the following reasons: -** -** - Channel index not valid (out of range) -** - Channel not open -** - Message flow does not exist on the channel -** - Ground/Onboard channel command inputs for storage location queues are non-zero -** - Ground/Onboard channel command input for filter value is less than one -** - Storage channel command input for filter value is non-zero -** - Storage channel command inputs for storage location queues are zero -** -*/ - PQ_CMD_MOD_DECIM_MSG_ERR_EID = 67, + PQ_PUT_POOL_ERR_EID = 30 + PQ_EVENT_ID_OFFSET, -/** \brief Command to change anomaly buffer location executed successfully. -** \event Updated Anomaly Queue to (\%u) from (\%u) -** -** \par Type: INFORMATION -** -** \par Cause: -** -** This event message is issued when TO Command to change anomaly buffer location executed successfully. -** -*/ - PQ_CMD_UPDATE_ANOMALY_BUFFER_EID = 68, - -/** \brief Command to change anomaly buffer location failed due to invalid input not in range. -** \event Invalid anomaly queue must be a value from (4 to 15) (input = \%d). -** -** \par Type: ERROR -** -** \par Cause: -** -** This event message is issued when TO Command to change anomaly buffer location for following reason. -** -** - Anomaly buffer queue location (out of range) -** -*/ - PQ_CMD_UPDATE_ANOMALY_BUFFER_ERR_EID = 69, - -/** \brief Command to update throttling rate executed successfully. -** \event Throttling: Channel \%u Write Rate to (\%lu) bytes/second from (\%lu) bytes/second -** -** \par Type: INFORMATION -** -** \par Cause: -** -** This event message is issued when TO Command to update throttling rate executed successfully. -** -*/ - PQ_CMD_UPDATE_CHANNEL_THROTTLING_EID = 70, - -/** \brief Command to update throttling rate failed due to rate not changed. -** \event Throttling: Channel \%u Write Rate to (\%lu) bytes/second from (\%lu) bytes/second" -** -** \par Type: DEBUG -** -** \par Cause: -** -** This event message is issued when TO Command to update the throttling rate was not -** successful because the new rate was the same as the current rate. -** -*/ - PQ_CMD_UPDATE_CHANNEL_THROTTLING_DBG_EID = 71, - -/** \brief Command to update throttling rate failed due to rate not changed. -** \event Invalid channel index (index = \%u, but max = \%d). -** \event Invalid Channel (input = \%u). Only Ground and Onboard channels are valid for this command -** \event Channel (\%u) not open. -** \event ConfigTblPtr is NULL, command rejected -** -** \par Type: ERROR -** -** \par Cause: -** -** These event message are issued when TO Command to update the throttling rate failed for the following reasons: -** -** - Channel index not valid -** - Channel input was the Storage channel -** - Channel not being open -** - Channel with a NULL table pointer -** -*/ - PQ_CMD_UPDATE_CHANNEL_THROTTLING_ERR_EID = 72, - -/** \brief Wipe priority queue memory pool error - failed to return message back to memory pool. -** \event Failed to return message back to memory pool on flush command. (\%ld) -** -** \par Type: ERROR -** -** \par Cause: -** -** This event message is issued when there is a failure to return message back to memory pool on flush command. -** -*/ - PQ_WIPE_PQ_MEMPOOL_ERR_EID = 73, - -/** \brief Failed to pop all messages from channel when attempting to wipe all channel priority queues. -** \event Failed to pop all messages from channel '\%s' priority queue '\%u'. (\%ld) -** -** \par Type: ERROR -** -** \par Cause: -** -** This event message is issued when there is a failure to pop all messages from channel. -** -*/ - PQ_WIPE_PQ_NO_POP_ERR_EID = 74, - -/** \brief Channel closed error, failure to process telemetry. -** \event Failed to process telemetry from ChannelID \%u -** -** \par Type: ERROR -** -** \par Cause: -** -** This event message is issued when the channel closed, can not process telemetry. -** -*/ - PQ_CHANNEL_CLOSED_ERR_EID = 75, - -/** \brief Channel identifier value is out of range. -** \event ChannelID (\%u) invalid. -** -** \par Type: ERROR -** -** \par Cause: -** -** This event message is issued when channel index is out of range. -** -*/ - PQ_CHANNEL_OUT_OF_RANGE_ERR_EID = 76, - -/** \brief Channel is not enabled. -** \event ChannelID \%u not enabled. -** -** \par Type: DEBUG -** -** \par Cause: -** -** This event message is issued when channel is not enabled -** -*/ - PQ_CHANNEL_NOT_ENABLED_EID = 77, - -/** \brief Channel teardown failed - TO channel cleanup failure. +/** \brief Channel teardown failed - PQ channel cleanup failure. ** \event Message Flow Teardown failure \%ld on channel \%u. ** \event Priority Queue Teardown failure \%ld on channel \%u. ** \event Output Queue Teardown failure \%ld on channel \%u. @@ -1155,14 +529,14 @@ typedef enum { ** ** \par Cause: ** -** These event messages are issued when TO channel cleanup fails for the following reasons: +** These event messages are issued when PQ channel cleanup fails for the following reasons: ** ** - Message flow teardown fails ** - Priority queue teardown fails ** - Output queue teardown fails ** */ - PQ_CHANNEL_TEARDOWN_ERR_EID = 78, + PQ_CHANNEL_TEARDOWN_ERR_EID = 31 + PQ_EVENT_ID_OFFSET, /** \brief Channel mutex lock failure - (per-channel event).' max = \%d) for msgId = (0x%04X) on channel (\%u) ** ** \par Type: ERROR ** ** \par Cause: ** -** This event message (per-channel event) is issued when the CFS TO Task attempts to process a telemetry +** This event message (per-channel event) is issued when the CFS Task attempts to process a telemetry ** message length that is larger than PQ_MAX_MSG_LENGTH. ** */ - PQ_TLM_MSG_LEN_ERR_EID = 88, + PQ_TLM_MSG_LEN_ERR_EID = 38 + PQ_EVENT_ID_OFFSET, /** \brief Classifier failed to retrieve a message flow - Message ID in the table - (per-channel event). ** \event Classifier Recvd invalid msgId (0x%04X) or message flow was removed on channel (\%u) @@ -1314,13 +643,13 @@ typedef enum { ** ** \par Cause: ** -** This event message (per-channel event) is issued when the CFS TO Task attempts to retrieve a message flow +** This event message (per-channel event) is issued when the CFS Task attempts to retrieve a message flow ** and the Message ID is not in the table. ** */ - PQ_MF_MSG_ID_ERR_EID = 89, + PQ_MF_MSG_ID_ERR_EID = 39 + PQ_EVENT_ID_OFFSET, -/** \brief Failed loading a TO backup configuration table - (per-channel event). +/** \brief Failed loading a PQ backup configuration table - (per-channel event). ** \event Failed to load built-in emergency backup config table! - channel \%u ** ** \par Type: ERROR @@ -1331,10 +660,7 @@ typedef enum { ** built-in emergency backup configuration table. ** */ - PQ_BACKUP_TABLE_ERR_EID = 90, - -/** \brief This is a count of all the app events and should not be used. */ - PQ_EVT_CNT + PQ_BACKUP_TABLE_ERR_EID = 40 + PQ_EVENT_ID_OFFSET } PQ_EventIds_t; diff --git a/apps/pq_lib/fsw/public_inc/pq_message_flow.h b/apps/pq_lib/fsw/public_inc/pq_message_flow.h index e715b0786..fa58243d1 100644 --- a/apps/pq_lib/fsw/public_inc/pq_message_flow.h +++ b/apps/pq_lib/fsw/public_inc/pq_message_flow.h @@ -233,6 +233,4 @@ osalbool PQ_MessageFlow_Remove(PQ_ChannelData_t *Channel, CFE_SB_MsgId_t MsgID); *************************************************************************/ osalbool PQ_MessageFlow_Query(PQ_ChannelData_t *Channel, CFE_SB_MsgId_t MsgID); - - #endif diff --git a/apps/pq_lib/fsw/public_inc/pq_mission_cfg.h b/apps/pq_lib/fsw/public_inc/pq_mission_cfg.h index 4c67db880..36b441d63 100644 --- a/apps/pq_lib/fsw/public_inc/pq_mission_cfg.h +++ b/apps/pq_lib/fsw/public_inc/pq_mission_cfg.h @@ -93,7 +93,7 @@ extern "C" { } #endif -#endif /* TO_MISSION_CFG_H */ +#endif /* PQ_MISSION_CFG_H */ /************************/ /* End of File Comment */ diff --git a/apps/pq_lib/fsw/public_inc/pq_platform_cfg.h b/apps/pq_lib/fsw/public_inc/pq_platform_cfg.h index d738749ce..54ee92334 100644 --- a/apps/pq_lib/fsw/public_inc/pq_platform_cfg.h +++ b/apps/pq_lib/fsw/public_inc/pq_platform_cfg.h @@ -44,59 +44,7 @@ extern "C" { ** Platform Configuration Parameter Definitions */ - -/** \tocfg Child task flags -** -** \par Description: -** These are optional flags passed to the #CFE_ES_CreateChildTask -** function when creating the CFE child task. -** -*/ -#define PQ_CUSTOM_CHILD_TASK_FLAGS (OS_ENABLE_CORE_0) - - -/** \tocfg Child task stack size -** -** \par Description: -** Child task stack size passed to the #CFE_ES_CreateChildTask -** function when creating the CFE child task. Stack size is in -** bytes. -** -*/ -#define PQ_CUSTOM_TASK_STACK_SIZE (131072) - - -/** \tocfg Default telemetry destination IP address -** -** \par Description: -** Default IP address to send the telemetry stream to. This is default -** only and can be changed by command at runtime. -** -*/ -#define PQ_UDP_CHANNEL_ADDRESS "127.0.0.1" - - -/** \tocfg Default telemetry destination UDP port -** -** \par Description: -** Default UDP port to send the telemetry stream to. This is default -** only and can be changed by command at runtime. -** -*/ -#define PQ_UDP_CHANNEL_PORT (5011) - - -/** \tocfg Message Flow packet limit -** -** \par Description: -** This is the maximum number of message flow entries that can fit in -** a message flow diagnostic message. -** -*/ -#define PQ_MSG_FLOW_PKT_LIMIT (200) - - -/** \tocfg Maximum message length +/** \pqcfg Maximum message length ** ** \par Description: ** The maximum size that an output telemetry message can be. This is in @@ -104,189 +52,38 @@ extern "C" { ** classifier. ** */ -#define PQ_MAX_MSG_LENGTH (32767) - -/** \tocfg The UDP channel's CF throttling semaphore name -** -** \par Limits: -** Two channels in CF must not have the same semaphore name. This must be unique -** compared to other channels' throttling semaphores. -*/ -#define PQ_UDP_CF_THROTTLE_SEM_NAME "PQ_CF_CH0_SEM" - - -/** \tocfg The UDP channel Name -*/ -#define PQ_UDP_CHANNEL_NAME "UDP" - - - -/** \tocfg The UDP channel's default and maximum value for the CF - * throttling semaphore -** -** \par Limits: -** Must not be larger than the PQ_DATA_PIPE_DEPTH -*/ -#define PQ_UDP_CF_MAX_PDUS (4) - - -/** \tocfg Mission specific version number for TO application -** -** \par Description: -** An application version number consists of four parts: -** major version number, minor version number, revision -** number and mission specific revision number. The mission -** specific revision number is defined here and the other -** parts are defined in "to_version.h". -** -** \par Limits: -** Must be defined as a numeric value that is greater than -** or equal to zero. -*/ -#define PQ_MISSION_REV (1) - -/** \tocfg Pipe depth for the Scheduler pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define PQ_SCH_PIPE_DEPTH (2) - -/** \tocfg Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define PQ_SCH_PIPE_NAME ("PQ_SCH_PIPE") - -/** \tocfg The SB pend behavior type for the Scheduler pipe. -** -** \par Limits: -** One of: CFE_SB_POLL, CFE_SB_PEND_FOREVER, or the -** number of milliseconds to wait for a new message (recommended). -** Note, using CFE_SB_PEND_FOREVER may cause an unresponsive -** application if no messages arrive on this pipe. -*/ -#define PQ_SCH_PIPE_PEND_TIME (2000) - -/** \tocfg The number of WAKEUP messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max limited to CFE_SB_MAX_PIPE_DEPTH-1. Note the -** PQ_SCH_PIPE_WAKEUP_RESERVED and PQ_SCH_PIPE_SEND_HK_RESERVED -** must be less than PQ_SCH_PIPE_DEPTH. -*/ -#define PQ_SCH_PIPE_WAKEUP_RESERVED (1) - -/** \tocfg The number of SEND_HK messages to reserve on the Scheduler pipe. -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. Note the -** PQ_SCH_PIPE_WAKEUP_RESERVED and PQ_SCH_PIPE_SEND_HK_RESERVED -** must be less than PQ_SCH_PIPE_DEPTH. -*/ -#define PQ_SCH_PIPE_SEND_HK_RESERVED (1) - -/** \tocfg Pipe depth for the command pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define PQ_CMD_PIPE_DEPTH (4) - -/** \tocfg Pipe name for the Scheduler pipe -** -** \par Limits: -** Note, this name must fit in OS_MAX_API_NAME. -*/ -#define PQ_CMD_PIPE_NAME ("PQ_CMD_PIPE") - -/** \tocfg Pipe depth for the data pipe -** -** \par Limits: -** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. -*/ -#define PQ_DATA_PIPE_DEPTH (CFE_SB_MAX_PIPE_DEPTH) - -/** \tocfg The config table default filename -** -** \par Limits: -** The length of each string, including the NULL terminator cannot exceed -** the #OS_MAX_PATH_LEN value. -*/ -#define PQ_UDP_CONFIG_TABLE_FILENAME ("/cf/apps/pq_cfg.tbl") - - -#define PQ_MAX_MEMPOOL_BLK_SIZES (8) +#define PQ_MAX_MSG_LENGTH (32767) /** -** \cfeescfg Define TO Memory Pool Block Sizes +** \cfeescfg Define PQ Memory Pool Block Sizes ** ** \par Description: -** TO Memory Pool Block Sizes +** PQ Memory Pool Block Sizes ** ** \par Limits ** These sizes MUST be increasing and MUST be an integral multiple of 4. ** The number of block sizes defined cannot exceed ** #CFE_ES_MAX_MEMPOOL_BLOCK_SIZES */ -#define PQ_MEM_BLOCK_SIZE_01 32 -#define PQ_MEM_BLOCK_SIZE_02 64 -#define PQ_MEM_BLOCK_SIZE_03 128 -#define PQ_MEM_BLOCK_SIZE_04 256 -#define PQ_MEM_BLOCK_SIZE_05 512 -#define PQ_MEM_BLOCK_SIZE_06 2048 -#define PQ_MEM_BLOCK_SIZE_07 8192 -#define PQ_MAX_BLOCK_SIZE (PQ_MEM_BLOCK_SIZE_07 + PQ_MEM_BLOCK_SIZE_07) - -/** - * \tocfg Defines the table identification name used for table registration - * of the configuration table. - */ -#define PQ_UDP_CONFIG_TABLENAME "CFG" - -/** - * \tocfg Defines the table identification name used for table registration - * of the dump table. - */ -#define PQ_UDP_DUMP_TABLENAME "DMP" - -/** \tocfg The timeout value, in milliseconds, to wait for ES application startup sync. -** -** \par Limits: -** This parameter must be at least 1000 (ms). -*/ -#define PQ_STARTUP_TIMEOUT_MSEC (1000) - -/** \tocfg Maximum number of messages to classify per processing frame. -*/ -#define PQ_MAX_MSGS_OUT_PER_FRAME (100) - -/** \tocfg Maximum number of messages to classify per processing frame. -*/ - -/** \tocfg Maximum number configurable channels. - * -** \par Description: This is normally set to 1. -*/ -#define PQ_MAX_CHANNELS (1) - -/** \tocfg Channel output queue depth. +#define PQ_MEM_BLOCK_SIZE_01 (32) +#define PQ_MEM_BLOCK_SIZE_02 (64) +#define PQ_MEM_BLOCK_SIZE_03 (128) +#define PQ_MEM_BLOCK_SIZE_04 (256) +#define PQ_MEM_BLOCK_SIZE_05 (512) +#define PQ_MEM_BLOCK_SIZE_06 (2048) +#define PQ_MEM_BLOCK_SIZE_07 (8192) +#define PQ_MAX_BLOCK_SIZE (PQ_MEM_BLOCK_SIZE_07 + PQ_MEM_BLOCK_SIZE_07) +#define PQ_MAX_MEMPOOL_BLK_SIZES (8) + +/** \pqcfg Channel output queue depth. * ** \par Description: This defines how many messages can be queued into the ** channel output queue by the scheduler. */ -#define PQ_OUTPUT_QUEUE_DEPTH (20) - -/** \tocfg Development UDP channel task priority. - * -** \par Description: This defines the priority of the development UDP -** child task. -*/ -#define PQ_UDP_CHANNEL_TASK_PRIORITY (119) +#define PQ_OUTPUT_QUEUE_DEPTH (20) /** -** \tocfg Number of bytes in the Message Memory Pool +** \pqcfg Number of bytes in the Message Memory Pool ** ** \par Description: ** The message memory pool contains the memory needed for the queued messages packets. @@ -295,16 +92,13 @@ extern "C" { ** or a new table is loaded. ** ** \par Limits -** The Telemetry Output app does not place a limit on this parameter, but there is +** The PQ app does not place a limit on this parameter, but there is ** an overhead cost in the memory pool. The value must be larger than what is ** needed. */ -#define PQ_NUM_BYTES_IN_MEM_POOL (200 * PQ_MAX_BLOCK_SIZE) +#define PQ_NUM_BYTES_IN_MEM_POOL (200 * PQ_MAX_BLOCK_SIZE) -/** - * \brief Defines the number of entries in the table - */ -#define PQ_CONFIG_TABLE_MAX_ENTRIES (1) +#define PQ_EVENT_ID_OFFSET (100) #ifdef __cplusplus } diff --git a/apps/pq_lib/fsw/public_inc/pq_scheduler.h b/apps/pq_lib/fsw/public_inc/pq_scheduler.h index f66064e72..60f3575d4 100644 --- a/apps/pq_lib/fsw/public_inc/pq_scheduler.h +++ b/apps/pq_lib/fsw/public_inc/pq_scheduler.h @@ -67,6 +67,9 @@ ** has room. It will move on to the next priority queue when the ** output channel is full or the current priority is empty. ** +** \param [in] Channel A #PQ_ChannelData_t pointer that +** references the channel data structure +** ** \par Assumptions, External Events, and Notes: ** This will raise error events as errors are encountered. ** diff --git a/apps/pq_lib/fsw/public_inc/pq_structs.h b/apps/pq_lib/fsw/public_inc/pq_structs.h index 1b9c74918..18eca5888 100644 --- a/apps/pq_lib/fsw/public_inc/pq_structs.h +++ b/apps/pq_lib/fsw/public_inc/pq_structs.h @@ -85,7 +85,7 @@ typedef struct /** \brief Priority Queue Type (only one type - FIFO) */ PQ_PriorityQueueType_t QType; -} PQ_PriorityQueue_t OS_ALIGN(2); +} PQ_PriorityQueue_t OS_ALIGN(2); /** \brief Definition for Priority Queue Metrics */ typedef struct @@ -155,7 +155,7 @@ typedef struct */ uint16 PQueueID; -} PQ_MessageFlow_t OS_ALIGN(2); +} PQ_MessageFlow_t OS_ALIGN(2); /** \brief Definition for the metrics collected for a single telemetry message flow entry */ @@ -591,38 +591,4 @@ typedef struct } PQ_HkTlm_t; -///** -//** \brief PQ Operational Data Structure -//*/ -//typedef struct -//{ - ///* Task-related */ - ///** \brief Task Run Status */ - ////uint32 runStatus; - - ///** \brief Housekeeping Telemetry for downlink */ - //PQ_HkTlm_t HkTlm; - - ///** \brief Mutex for PQ AppData */ - //uint32 MutexID; - - ///** \brief Channel Data */ - //PQ_ChannelData_t ChannelData[PQ_MAX_CHANNELS]; - - ///** \brief CFE Event Table */ - ////CFE_EVS_BinFilter_t EventTbl[CFE_EVS_MAX_EVENT_FILTERS]; - ///* CFE_EVS_BinFilter_t is two uint16's */ - - //uint16 OutMessageSize; - - ///**\brief Scheduling Pipe ID */ - ////CFE_SB_PipeId_t SchPipeId; - - ///** \brief Command Pipe ID */ - ////CFE_SB_PipeId_t CmdPipeId; - -//} PQ_AppData_t; - -//extern PQ_AppData_t PQ_AppData; - #endif From 37b1981dfa4c453a87021a78e3033c61eb3948f9 Mon Sep 17 00:00:00 2001 From: cnalley Date: Fri, 12 Feb 2021 20:04:35 +0000 Subject: [PATCH 099/370] More cleanup and add null pointer checks. --- apps/pq_lib/fsw/public_inc/pq_channel.h | 83 +---- apps/pq_lib/fsw/public_inc/pq_config_utils.h | 16 - apps/pq_lib/fsw/public_inc/pq_events.h | 4 +- apps/pq_lib/fsw/public_inc/pq_message_flow.h | 19 -- apps/pq_lib/fsw/src/pq_channel.c | 329 +++++-------------- apps/pq_lib/fsw/src/pq_classifier.c | 8 + apps/pq_lib/fsw/src/pq_config_utils.c | 70 ++-- apps/pq_lib/fsw/src/pq_message_flow.c | 120 ++----- apps/pq_lib/fsw/src/pq_output_queue.c | 37 ++- apps/pq_lib/fsw/src/pq_priority_queue.c | 32 +- apps/pq_lib/fsw/src/pq_scheduler.c | 14 +- 11 files changed, 244 insertions(+), 488 deletions(-) diff --git a/apps/pq_lib/fsw/public_inc/pq_channel.h b/apps/pq_lib/fsw/public_inc/pq_channel.h index 2d858dd43..80d789f06 100644 --- a/apps/pq_lib/fsw/public_inc/pq_channel.h +++ b/apps/pq_lib/fsw/public_inc/pq_channel.h @@ -130,36 +130,6 @@ void PQ_Channel_ProcessTelemetryAll(void); void PQ_Channel_ResetCountsAll(void); -/************************************************************************/ -/** -** \brief Set's a channel reference based on a valid input index and -** calls PQ_Channel_LockByRef. -** -** \par Assumptions, External Events, and Notes: -** If the input index is out of range, an event is generated -** #PQ_CHANNEL_OUT_OF_RANGE_ERR_EID -** -** \param[in] index -** Index of the channel -*************************************************************************/ -//void PQ_Channel_LockByIndex(uint16 index); - - -/************************************************************************/ -/** -** \brief Set's a channel reference based on a valid input index and -** calls PQ_Channel_UnlockByRef. -** -** \par Assumptions, External Events, and Notes: -** If the input index is out of range, an event is generated -** #PQ_CHANNEL_OUT_OF_RANGE_ERR_EID -** -** \param[in] index -** Index of the channel -*************************************************************************/ -//void PQ_Channel_UnlockByIndex(uint16 index); - - /************************************************************************/ /** ** \brief The mutex object referenced by the channel pointer shall be locked @@ -182,30 +152,6 @@ void PQ_Channel_LockByRef(PQ_ChannelData_t *Channel); void PQ_Channel_UnlockByRef(PQ_ChannelData_t *Channel); -/************************************************************************/ -/** -** \brief Loops through channel less than PQ_MAX_CHANNELS and initializes a -** reference to each channel's channel data, sets the channel's index, -** and creates each channel's mutex. -** -** \par Assumptions, External Events, and Notes: -** None. -*************************************************************************/ -//void PQ_Channel_InitAll(void); - - -/************************************************************************/ -/** -** \brief Loops through channel less than PQ_MAX_CHANNELS and calls functions -** to teardown each channel's priority queue, -** output queue, and message flow(s). It also deletes each channel's mutex. -** -** \par Assumptions, External Events, and Notes: -** None. -*************************************************************************/ -//void PQ_Channel_CleanupAll(void); - - /************************************************************************/ /** ** \brief Returns a input channel's state. @@ -245,24 +191,6 @@ uint8 PQ_Channel_State(PQ_ChannelData_t *Channel); osalbool PQ_Channel_Flush(uint16 index); -/************************************************************************/ -/** \brief Empty all messages in the SB data pipe for this channel -** -** \par Description -** This function is called in PQ_Channel_Flush() and also on table switch. -** -** \param[in] index -** Index of the channel -** -** \return -** \retcode TRUE \retdesc The function succeeded \endcode -** \retcode FALSE \retdesc The function failed, if index is greater than or equal -** to PQ_MAX_CHANNELS or if #CFE_SB_RcvMsg does not return -** CFE_SUCCESS \endcode -** -*************************************************************************/ -//osalbool PQ_Channel_SBPipe_Dequeue_All(uint16 index); - /** * \brief Initializes a reference channel data, sets the channel's index, * and creates a channel mutex. @@ -308,7 +236,16 @@ void PQ_Channel_Cleanup(PQ_ChannelData_t *Channel); */ void PQ_Channel_ResetCounts(PQ_ChannelData_t *Channel); - +/** + * \brief Forwards a single channel's telemetry data to PQ_Classifier + * and PQ_Scheduler + * + * \par Assumptions, External Events, and Notes: + * Assumes channel pointer is not NULL + * + * \param [in] channel A #PQ_ChannelData_t pointer that + * references the channel data structures + */ void PQ_Channel_ProcessTelemetry(PQ_ChannelData_t *Channel, CFE_SB_MsgPtr_t DataMsgPtr); void PQ_Channel_CopyStats(PQ_HkTlm_t *HkTlm, PQ_ChannelData_t *Channel); diff --git a/apps/pq_lib/fsw/public_inc/pq_config_utils.h b/apps/pq_lib/fsw/public_inc/pq_config_utils.h index 7441e8daf..70fcc1054 100644 --- a/apps/pq_lib/fsw/public_inc/pq_config_utils.h +++ b/apps/pq_lib/fsw/public_inc/pq_config_utils.h @@ -184,22 +184,6 @@ int32 PQ_ProcessNewConfigTbl(PQ_ChannelData_t *Channel); int32 PQ_ValidateConfigGrndTbl(void *configTblPtr); - -/************************************************************************/ -/** \brief This manages all the tables in the app -** -** \par Description -** This function performs the table management for each channel's -** dump and configuration tables with cFE table services. -** -** \par Assumptions, External Events, and Notes: -** All tables have been initialized via PQ_InitCoinfigTbl(). -** This is called during app cyclic operations. -** -*************************************************************************/ -//void PQ_ManageAllAppTables(void); - - /************************************************************************/ /** \brief This manages all the tables for a given channel ** diff --git a/apps/pq_lib/fsw/public_inc/pq_events.h b/apps/pq_lib/fsw/public_inc/pq_events.h index 5956ab1d5..f6a1967f5 100644 --- a/apps/pq_lib/fsw/public_inc/pq_events.h +++ b/apps/pq_lib/fsw/public_inc/pq_events.h @@ -660,7 +660,9 @@ typedef enum { ** built-in emergency backup configuration table. ** */ - PQ_BACKUP_TABLE_ERR_EID = 40 + PQ_EVENT_ID_OFFSET + PQ_BACKUP_TABLE_ERR_EID = 40 + PQ_EVENT_ID_OFFSET, + + PQ_NULL_POINTER_ERR_EID = 41 + PQ_EVENT_ID_OFFSET } PQ_EventIds_t; diff --git a/apps/pq_lib/fsw/public_inc/pq_message_flow.h b/apps/pq_lib/fsw/public_inc/pq_message_flow.h index fa58243d1..9e5c2b085 100644 --- a/apps/pq_lib/fsw/public_inc/pq_message_flow.h +++ b/apps/pq_lib/fsw/public_inc/pq_message_flow.h @@ -93,25 +93,6 @@ void PQ_MessageFlow_ResetCountsAll(PQ_ChannelData_t *Channel); *************************************************************************/ int32 PQ_MessageFlow_TeardownAll(PQ_ChannelData_t *Channel); - -/************************************************************************/ -/** \brief Buildup all message flows. -** -** \par Description -** This function is called at when the application has loaded a new -** configuration table. -** -** \param [in] channel A #PQ_ChannelData_t pointer that -** references the channel data structure -** -** \return -** CFE_SUCCESS if no error occurred. On error, an OSAL error is returned -** indicating what error occured. -** -*************************************************************************/ -int32 PQ_MessageFlow_Buildup(PQ_ChannelData_t *Channel); - - /************************************************************************/ /** \brief Get the next message flow object. ** diff --git a/apps/pq_lib/fsw/src/pq_channel.c b/apps/pq_lib/fsw/src/pq_channel.c index a127f6dac..4698e3fb9 100644 --- a/apps/pq_lib/fsw/src/pq_channel.c +++ b/apps/pq_lib/fsw/src/pq_channel.c @@ -72,45 +72,25 @@ uint32 PQ_MemPoolDefSize[PQ_MAX_MEMPOOL_BLK_SIZES] = ** Local Function Definitions *************************************************************************/ -/** - * \brief Forwards a single channel's telemetry data to PQ_Classifier - * and PQ_Scheduler - * - * \par Assumptions, External Events, and Notes: - * Assumes channel pointer is not NULL - * - * \param [in] channel A #PQ_ChannelData_t pointer that - * references the channel data structures - */ -//void PQ_Channel_ProcessTelemetry(PQ_ChannelData_t *channel); - - int32 PQ_Channel_OpenChannel(PQ_ChannelData_t *Channel, const char *ChannelName, const char *ConfigTableName, const char *ConfigTableFileName, PQ_ChannelTbl_t *BackupTblPtr, const char *DumpTableName, const uint32 CfCntSemMax, const char *CfCntSemName) { int32 Status = PQ_CHANNEL_OPEN_ERR; - //char pipeName[OS_MAX_API_NAME]; - //PQ_ChannelData_t *channel = NULL; - - //if (index >= PQ_MAX_CHANNELS) - //{ - //status = PQ_CHANNEL_OUT_OF_RANGE_ERR; - //(void) CFE_EVS_SendEvent(PQ_INIT_APP_ERR_EID, - //CFE_EVS_ERROR, - //"Invalid channel index of %u.", (unsigned int)index); - //return status; - //} - //channel = &PQ_AppData.ChannelData[index]; + if (NULL == Channel) + { + CFE_EVS_SendEvent(PQ_NULL_POINTER_ERR_EID, + CFE_EVS_ERROR, + "Null pointer in PQ_Channel_OpenChannel"); + return Status; + } if(Channel->State == PQ_CHANNEL_CLOSED) { PQ_Channel_LockByRef(Channel); - //snprintf(pipeName, OS_MAX_API_NAME, "PQ_%s", ChannelName); - strncpy(Channel->ChannelName, ChannelName, sizeof(Channel->ChannelName)); Channel->ChannelName[sizeof(Channel->ChannelName) - 1] = '\0'; @@ -167,34 +147,7 @@ int32 PQ_Channel_OpenChannel(PQ_ChannelData_t *Channel, const char *ChannelName, PQ_Channel_UnlockByRef(Channel); return Status; } - - /* TODO commented out. Messages passed in directly no pipes needed. */ - ///* Init data pipe and subscribe to messages on the data pipe */ - //status = CFE_SB_CreatePipe(&channel->DataPipeId, - //PQ_DATA_PIPE_DEPTH, - //pipeName); - //if (status != CFE_SUCCESS) - //{ - ///* This is a critical error for this channel. No sense in continuing. Destroy - //* the counting semaphore and call the Output queue teardown function before - //* returning the error back to the caller. - //*/ - //(void) OS_CountSemDelete(channel->CfCntSemId); - //(void) PQ_OutputQueue_Teardown(channel); - - //(void) CFE_EVS_SendEvent(PQ_INIT_DATAPIPE_ERR_EID, - //CFE_EVS_ERROR, - //"Failed to create channel (%u) '%s' pipe (0x%08X)", - //(unsigned int)index, - //ChannelName, - //(unsigned int)status); - - //channel->State = PQ_CHANNEL_CLOSED; - - //PQ_Channel_UnlockByRef(channel); - //return status; - //} - + /* Set channel state: required state to complete table initialization */ Channel->State = PQ_CHANNEL_OPENED; @@ -207,7 +160,6 @@ int32 PQ_Channel_OpenChannel(PQ_ChannelData_t *Channel, const char *ChannelName, */ (void) OS_CountSemDelete(Channel->CfCntSemId); (void) PQ_OutputQueue_Teardown(Channel); - //(void) CFE_SB_DeletePipe(channel->DataPipeId); CFE_EVS_SendEvent(PQ_INIT_CONFIG_ERR_EID, CFE_EVS_ERROR, @@ -239,7 +191,6 @@ int32 PQ_Channel_OpenChannel(PQ_ChannelData_t *Channel, const char *ChannelName, */ (void) OS_CountSemDelete(Channel->CfCntSemId); (void) PQ_OutputQueue_Teardown(Channel); - //(void) CFE_SB_DeletePipe(channel->DataPipeId); (void) CFE_EVS_SendEvent(PQ_CR_POOL_ERR_EID, CFE_EVS_ERROR, @@ -258,24 +209,16 @@ int32 PQ_Channel_OpenChannel(PQ_ChannelData_t *Channel, const char *ChannelName, } -//void PQ_Channel_ProcessTelemetryAll(void) -//{ - //uint32 i; - //PQ_ChannelData_t *channel = NULL; - - //for (i = 0; i < PQ_MAX_CHANNELS; ++i) - //{ - //channel = &PQ_AppData.ChannelData[i]; - //if(PQ_CHANNEL_OPENED == channel->State) - //{ - //PQ_Channel_ProcessTelemetry(channel); - //} - //} -//} - - void PQ_Channel_ProcessTelemetry(PQ_ChannelData_t *Channel, CFE_SB_MsgPtr_t DataMsgPtr) { + if (NULL == Channel) + { + CFE_EVS_SendEvent(PQ_NULL_POINTER_ERR_EID, + CFE_EVS_ERROR, + "Null pointer in PQ_Channel_ProcessTelemetry"); + return; + } + PQ_Channel_LockByRef(Channel); PQ_Classifier_Run(Channel, DataMsgPtr); PQ_Scheduler_Run(Channel); @@ -283,22 +226,16 @@ void PQ_Channel_ProcessTelemetry(PQ_ChannelData_t *Channel, CFE_SB_MsgPtr_t Data } -//void PQ_Channel_ResetCountsAll(void) -//{ - //uint32 i; - //PQ_ChannelData_t *channel = NULL; - - //for (i = 0; i < PQ_MAX_CHANNELS; ++i) - //{ - //channel = &PQ_AppData.ChannelData[i]; - //PQ_Channel_ResetCounts(channel); - //} -//} - - - void PQ_Channel_ResetCounts(PQ_ChannelData_t *Channel) { + if (NULL == Channel) + { + CFE_EVS_SendEvent(PQ_NULL_POINTER_ERR_EID, + CFE_EVS_ERROR, + "Null pointer in PQ_Channel_ResetCounts"); + return; + } + PQ_Channel_LockByRef(Channel); Channel->PeakMemInUse = 0; Channel->MemFullCount = 0; @@ -314,114 +251,66 @@ void PQ_Channel_ResetCounts(PQ_ChannelData_t *Channel) } - -//void PQ_Channel_LockByIndex(uint16 index) -//{ - //PQ_ChannelData_t *channel = NULL; - - //if (index < PQ_MAX_CHANNELS) - //{ - //channel = &PQ_AppData.ChannelData[index]; - //PQ_Channel_LockByRef(channel); - //} - //else - //{ - //(void) CFE_EVS_SendEvent(PQ_CHANNEL_OUT_OF_RANGE_ERR_EID, - //CFE_EVS_ERROR, - //"Invalid channel index (%u).", - //index); - //} -//} - - -//void PQ_Channel_UnlockByIndex(uint16 index) -//{ - //PQ_ChannelData_t *channel = NULL; - - //if (index < PQ_MAX_CHANNELS) - //{ - //channel = &PQ_AppData.ChannelData[index]; - //PQ_Channel_UnlockByRef(channel); - - //} - //else - //{ - //(void) CFE_EVS_SendEvent(PQ_CHANNEL_OUT_OF_RANGE_ERR_EID, - //CFE_EVS_ERROR, - //"Invalid channel index (%u).", - //index); - //} -//} - - void PQ_Channel_LockByRef(PQ_ChannelData_t *Channel) { int32 Status = OS_SUCCESS; - - if (NULL != Channel) + + if (NULL == Channel) { - Status = OS_MutSemTake(Channel->MutexID); - if (OS_SUCCESS != Status) - { - (void) CFE_EVS_SendEvent(PQ_CHANNEL_LOCK_MUTEX_ERR_EID, - CFE_EVS_ERROR, - "Channel lock mutex failure (%i) on channel %u.", - (int)Status, - (unsigned int)Channel->channelIdx); - } - } + CFE_EVS_SendEvent(PQ_NULL_POINTER_ERR_EID, + CFE_EVS_ERROR, + "Null pointer in PQ_Channel_LockByRef"); + return; + } + + Status = OS_MutSemTake(Channel->MutexID); + if (OS_SUCCESS != Status) + { + (void) CFE_EVS_SendEvent(PQ_CHANNEL_LOCK_MUTEX_ERR_EID, + CFE_EVS_ERROR, + "Channel lock mutex failure (%i) on channel %u.", + (int)Status, + (unsigned int)Channel->channelIdx); + } } void PQ_Channel_UnlockByRef(PQ_ChannelData_t *Channel) { int32 Status = OS_SUCCESS; - - if (NULL != Channel) + + if (NULL == Channel) { - Status = OS_MutSemGive(Channel->MutexID); - if (OS_SUCCESS != Status) - { - (void) CFE_EVS_SendEvent(PQ_CHANNEL_UNLOCK_MUTEX_ERR_EID, - CFE_EVS_ERROR, - "Channel unlock mutex failure (%i) on channel %u.", - (int)Status, - (unsigned int)Channel->channelIdx); - } + CFE_EVS_SendEvent(PQ_NULL_POINTER_ERR_EID, + CFE_EVS_ERROR, + "Null pointer in PQ_Channel_UnlockByRef"); + return; } -} - - -//void PQ_Channel_InitAll(void) -//{ - //uint32 i; - - //for (i = 0; i < PQ_MAX_CHANNELS; ++i) - //{ - //(void) PQ_Channel_Init(i); - //} -//} + Status = OS_MutSemGive(Channel->MutexID); + if (OS_SUCCESS != Status) + { + (void) CFE_EVS_SendEvent(PQ_CHANNEL_UNLOCK_MUTEX_ERR_EID, + CFE_EVS_ERROR, + "Channel unlock mutex failure (%i) on channel %u.", + (int)Status, + (unsigned int)Channel->channelIdx); + } +} int32 PQ_Channel_Init(uint16 Index, PQ_ChannelData_t *Channel) { int32 Status = CFE_SUCCESS; char MutexName[OS_MAX_API_NAME]; - //PQ_ChannelData_t *channel = NULL; - //if (index >= PQ_MAX_CHANNELS) - //{ - //status = PQ_CHANNEL_OUT_OF_RANGE_ERR; - - //(void) CFE_EVS_SendEvent(PQ_CHANNEL_OUT_OF_RANGE_ERR_EID, - //CFE_EVS_ERROR, - //"Invalid channel index (%u).", - //index); - //return status; - //} - - //channel = &PQ_AppData.ChannelData[index]; + if (NULL == Channel) + { + CFE_EVS_SendEvent(PQ_NULL_POINTER_ERR_EID, + CFE_EVS_ERROR, + "Null pointer in PQ_Channel_Init"); + return -1; + } snprintf(MutexName, OS_MAX_API_NAME, "PQ_MUT_%u", (unsigned int)Index); @@ -441,34 +330,20 @@ int32 PQ_Channel_Init(uint16 Index, PQ_ChannelData_t *Channel) } -//void PQ_Channel_CleanupAll(void) -//{ - //uint32 i; - - ////PQ_OutputChannel_CustomCleanupAll(); - - //for (i = 0; i < PQ_MAX_CHANNELS; ++i) - //{ - //PQ_Channel_Cleanup(i); - //} -//} - - void PQ_Channel_Cleanup(PQ_ChannelData_t *Channel) { int32 Status = CFE_SUCCESS; - if(Channel->State != PQ_CHANNEL_UNKNOWN) + if (NULL == Channel) { - Status = PQ_MessageFlow_TeardownAll(Channel); - if (Status != CFE_SUCCESS) - { - (void) CFE_EVS_SendEvent(PQ_CHANNEL_TEARDOWN_ERR_EID, - CFE_EVS_ERROR, - "Message Flow Teardown failure %ld on channel.", - Status); - } + CFE_EVS_SendEvent(PQ_NULL_POINTER_ERR_EID, + CFE_EVS_ERROR, + "Null pointer in PQ_Channel_Cleanup"); + return; + } + if(Channel->State != PQ_CHANNEL_UNKNOWN) + { Status = PQ_PriorityQueue_TeardownAll(Channel); if (Status != CFE_SUCCESS) { @@ -494,56 +369,28 @@ void PQ_Channel_Cleanup(PQ_ChannelData_t *Channel) uint8 PQ_Channel_State(PQ_ChannelData_t *Channel) { + if (NULL == Channel) + { + CFE_EVS_SendEvent(PQ_NULL_POINTER_ERR_EID, + CFE_EVS_ERROR, + "Null pointer in PQ_Channel_State"); + return 0; + } + return Channel->State; } -//osalbool PQ_Channel_SBPipe_Dequeue_All(uint16 index) -//{ - //int32 status = CFE_SUCCESS; - //int32 i; - //CFE_SB_MsgPtr_t DataMsgPtr = NULL; - //PQ_ChannelData_t *channel = NULL; - - //if (index >= PQ_MAX_CHANNELS) - //{ - //(void) CFE_EVS_SendEvent(PQ_FLUSH_INVALID_CHIDX_ERR_EID, CFE_EVS_ERROR, - //"ChannelID %u out of range in SB pipe dequeue all.", (unsigned int)index); - //return FALSE; - //} - - //channel = &PQ_AppData.ChannelData[index]; - - ///* Dequeue until empty */ - //for (i = 0; i < PQ_DATA_PIPE_DEPTH; ++i) - //{ - //status = CFE_SB_RcvMsg(&DataMsgPtr, channel->DataPipeId, CFE_SB_POLL); - //if (CFE_SUCCESS == status) - //{ - //continue; - //} - //else if (CFE_SB_NO_MESSAGE == status) - //{ - ///* Break early if empty */ - //break; - //} - //else - //{ - //(void) CFE_EVS_SendEvent(PQ_PIPE_READ_ERR_EID, - //CFE_EVS_ERROR, - //"Data pipe read error on SBPipe dequeue all (0x%08X) on channel %d", - //(unsigned int)status, - //index); - //return FALSE; - //} - //} - - //return TRUE; -//} - - void PQ_Channel_CopyStats(PQ_HkTlm_t *HkTlm, PQ_ChannelData_t *Channel) { + if (NULL == Channel) + { + CFE_EVS_SendEvent(PQ_NULL_POINTER_ERR_EID, + CFE_EVS_ERROR, + "Null pointer in PQ_Channel_CopyStats"); + return; + } + //PQ_Channel_LockByRef(channel); HkTlm->QueuedInOutputChannel = Channel->OutputQueue.CurrentlyQueuedCnt; HkTlm->uiSentMsgCountChannel = Channel->SentMsgCount; diff --git a/apps/pq_lib/fsw/src/pq_classifier.c b/apps/pq_lib/fsw/src/pq_classifier.c index 118fa8cd8..342b80002 100644 --- a/apps/pq_lib/fsw/src/pq_classifier.c +++ b/apps/pq_lib/fsw/src/pq_classifier.c @@ -53,6 +53,14 @@ void PQ_Classifier_Run(PQ_ChannelData_t *Channel, CFE_SB_MsgPtr_t DataMsgPtr) CFE_SB_MsgId_t DataMsgID; uint32 totalMsgLength = 0; + if (NULL == Channel) + { + CFE_EVS_SendEvent(PQ_NULL_POINTER_ERR_EID, + CFE_EVS_ERROR, + "Null pointer in PQ_Classifier_Run"); + return; + } + if (DataMsgPtr != NULL) { DataMsgID = CFE_SB_GetMsgId(DataMsgPtr); diff --git a/apps/pq_lib/fsw/src/pq_config_utils.c b/apps/pq_lib/fsw/src/pq_config_utils.c index af3ac4fee..af32a4713 100644 --- a/apps/pq_lib/fsw/src/pq_config_utils.c +++ b/apps/pq_lib/fsw/src/pq_config_utils.c @@ -87,6 +87,14 @@ int32 PQ_InitTables(PQ_ChannelData_t *Channel) int32 status = CFE_SUCCESS; int result; + if (NULL == Channel) + { + CFE_EVS_SendEvent(PQ_NULL_POINTER_ERR_EID, + CFE_EVS_ERROR, + "Null pointer in PQ_InitTables"); + return -1; + } + /* Register Config tables */ status = CFE_TBL_Register(&Channel->ConfigTblHdl, Channel->ConfigTableName, @@ -173,6 +181,14 @@ void PQ_LoadBackupConfigTable(PQ_ChannelData_t *Channel) { int32 status = CFE_SUCCESS; + if (NULL == Channel) + { + CFE_EVS_SendEvent(PQ_NULL_POINTER_ERR_EID, + CFE_EVS_ERROR, + "Null pointer in PQ_LoadBackupConfigTable"); + return; + } + /* Load emergency backup TO Config table */ status = CFE_TBL_Load(Channel->ConfigTblHdl, CFE_TBL_SRC_ADDRESS, @@ -261,7 +277,7 @@ int32 PQ_ValidateConfigTbl(void *configTblPtr) * Check Priority Queue QType */ if ((PQ_ConfigTblPtr->PriorityQueue[PQueueIdx].QType != PQ_PRIORITY_QUEUE_TYPE_SINGLE) && - (PQ_ConfigTblPtr->PriorityQueue[PQueueIdx].QType != PQ_PRIORITY_QUEUE_TYPE_FIFO)) + (PQ_ConfigTblPtr->PriorityQueue[PQueueIdx].QType != PQ_PRIORITY_QUEUE_TYPE_FIFO)) { (void) CFE_EVS_SendEvent(PQ_CONFIG_TABLE_PQUEUE_QTYPE_ERR_EID, @@ -410,14 +426,12 @@ int32 PQ_ProcessNewConfigTbl(PQ_ChannelData_t* Channel) { int32 status = CFE_SUCCESS; - /* Build up the new configuration. */ - status = PQ_MessageFlow_Buildup(Channel); - if (status != CFE_SUCCESS) + if (NULL == Channel) { - /* If this function fails, no message flows were created. - * No sense in continuing with this channel. - */ - return status; + CFE_EVS_SendEvent(PQ_NULL_POINTER_ERR_EID, + CFE_EVS_ERROR, + "Null pointer in PQ_ProcessNewConfigTbl"); + return -1; } status = PQ_PriorityQueue_BuildupAll(Channel); @@ -426,22 +440,6 @@ int32 PQ_ProcessNewConfigTbl(PQ_ChannelData_t* Channel) } -/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ -/* */ -/* Manage all tables */ -/* */ -/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ -//void PQ_ManageAllAppTables(void) -//{ - //uint32 i; - - //for (i = 0; i < PQ_MAX_CHANNELS; ++i) - //{ - //PQ_ManageChannelTables(FALSE, i); - //} -//} - - /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ /* */ /* Manage all tables */ @@ -453,6 +451,14 @@ void PQ_ManageChannelTables(osalbool initialManage, PQ_ChannelData_t *Channel) osalbool dequeueStatus = TRUE; + if (NULL == Channel) + { + CFE_EVS_SendEvent(PQ_NULL_POINTER_ERR_EID, + CFE_EVS_ERROR, + "Null pointer in PQ_ManageChannelTables"); + return; + } + /* T=call CFE_TBL_Manage() on the config table, since CFE_TBL_GetStatus() might indicate * there is no need. TRUE would only be expected when a table is initialized */ osalbool tableNeedsManaged; @@ -492,20 +498,8 @@ void PQ_ManageChannelTables(osalbool initialManage, PQ_ChannelData_t *Channel) } else if (CFE_TBL_INFO_UPDATE_PENDING == status) { - /* Teardown message flows and PQueues*/ - (void) PQ_MessageFlow_TeardownAll(Channel); - (void) PQ_PriorityQueue_TeardownAll(Channel); - - /* Clear remaining messages from SB data pipe*/ - //dequeueStatus = PQ_Channel_SBPipe_Dequeue_All(ChannelID); - //if (FALSE == dequeueStatus) - //{ - //(void) CFE_EVS_SendEvent(PQ_CONFIG_TABLE_ERR_EID, - //CFE_EVS_ERROR, - //"Failed to clear SB data pipe for channel %u, (0x%08X)", - //ChannelID, - //(unsigned int)status); - //} + /* Teardown PQueues*/ + (void) PQ_PriorityQueue_TeardownAll(Channel); /* Now null the table pointer, because it is going to be updated. Also * so that if something goes wrong it won't be set to an invalid address. diff --git a/apps/pq_lib/fsw/src/pq_message_flow.c b/apps/pq_lib/fsw/src/pq_message_flow.c index a37cafd1f..d50f044b2 100644 --- a/apps/pq_lib/fsw/src/pq_message_flow.c +++ b/apps/pq_lib/fsw/src/pq_message_flow.c @@ -36,102 +36,6 @@ #include "pq_message_flow.h" - -/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ -/* */ -/* Build up all the message flows */ -/* */ -/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ -int32 PQ_MessageFlow_Buildup(PQ_ChannelData_t *Channel) -{ - uint32 i; - int32 status = CFE_SUCCESS; - - if (NULL == Channel) - { - return PQ_MESSAGE_FLOW_BAD_ARG_ERR; - } - - if (NULL == Channel->ConfigTblPtr) - { - return PQ_MESSAGE_FLOW_NO_TABLE_ERR; - } - - ///* - //* Create message flows by subscribing to messages. - //*/ - //for (i = 0; i < PQ_MAX_MESSAGE_FLOWS; ++i) - //{ - //if (channel->ConfigTblPtr->MessageFlow[i].MsgId != 0) - //{ - ///* Subscribe to message. */ - //status = CFE_SB_SubscribeEx(channel->ConfigTblPtr->MessageFlow[i].MsgId, channel->DataPipeId, - //CFE_SB_Default_Qos, channel->ConfigTblPtr->MessageFlow[i].MsgLimit); - //if (status != CFE_SUCCESS) - //{ - ///* We failed to subscribe to a message. However, lets just keep going so we can maybe - //* subscribe to at least some of the messages. Report and keep going. - //*/ - //(void) CFE_EVS_SendEvent(PQ_SUBSCRIBE_ERR_EID, - //CFE_EVS_ERROR, - //"Message flow failed to subscribe to (0x%08X) on channel %d. (%ld)", - //channel->ConfigTblPtr->MessageFlow[i].MsgId, - //channel->channelIdx, - //status); - //} - //} - //} - return CFE_SUCCESS; -} - - - -/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ -/* */ -/* Teardown all the message flows */ -/* */ -/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ -int32 PQ_MessageFlow_TeardownAll(PQ_ChannelData_t *Channel) -{ - uint32 i; - int32 status = CFE_SUCCESS; - - if (NULL == Channel) - { - return PQ_MESSAGE_FLOW_BAD_ARG_ERR; - } - - if (NULL == Channel->ConfigTblPtr) - { - return PQ_MESSAGE_FLOW_NO_TABLE_ERR; - } - - //for (i = 0; i < PQ_MAX_MESSAGE_FLOWS; ++i) - //{ - //if (channel->ConfigTblPtr->MessageFlow[i].MsgId != 0) - //{ - ///* Unsubscribe from message. */ - //status = CFE_SB_Unsubscribe(channel->ConfigTblPtr->MessageFlow[i].MsgId, - //channel->DataPipeId); - - //if (status != CFE_SUCCESS) - //{ - ///* This is not a critical error. Just continue processing the rest of the messages. - //* Will not return the failure back. - //*/ - //(void) CFE_EVS_SendEvent(PQ_UNSUBSCRIBE_ERR_EID, - //CFE_EVS_ERROR, - //"Message flow failed to unsubscribe from 0x%04x on channel %d. (%ld)", - //channel->ConfigTblPtr->MessageFlow[i].MsgId, - //channel->channelIdx, - //status); - //} - //} - //} - return CFE_SUCCESS; -} - - /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ /* */ /* Reset all runtime metrics. */ @@ -144,6 +48,9 @@ void PQ_MessageFlow_ResetCountsAll(PQ_ChannelData_t *Channel) if (NULL == Channel) { + CFE_EVS_SendEvent(PQ_NULL_POINTER_ERR_EID, + CFE_EVS_ERROR, + "Null pointer in PQ_MessageFlow_ResetCountsAll"); return; } @@ -169,6 +76,9 @@ PQ_MessageFlow_t* PQ_MessageFlow_GetObject(PQ_ChannelData_t *Channel, CFE_SB_Msg if (NULL == Channel) { + CFE_EVS_SendEvent(PQ_NULL_POINTER_ERR_EID, + CFE_EVS_ERROR, + "Null pointer in PQ_MessageFlow_GetObject"); return NULL; } @@ -208,16 +118,25 @@ PQ_PriorityQueue_t* PQ_MessageFlow_GetPQueue(PQ_ChannelData_t *Channel, PQ_Messa if (NULL == msgFlow) { + CFE_EVS_SendEvent(PQ_NULL_POINTER_ERR_EID, + CFE_EVS_ERROR, + "Null msgFlow pointer in PQ_MessageFlow_GetPQueue"); return NULL; } if (NULL == Channel) { + CFE_EVS_SendEvent(PQ_NULL_POINTER_ERR_EID, + CFE_EVS_ERROR, + "Null Channel pointer in PQ_MessageFlow_GetPQueue"); return NULL; } if (NULL == Channel->ConfigTblPtr) { + CFE_EVS_SendEvent(PQ_NULL_POINTER_ERR_EID, + CFE_EVS_ERROR, + "Null ConfigTblPtr pointer in PQ_MessageFlow_GetPQueue"); return NULL; } @@ -260,6 +179,9 @@ osalbool PQ_MessageFlow_Add( if (NULL == Channel) { + CFE_EVS_SendEvent(PQ_NULL_POINTER_ERR_EID, + CFE_EVS_ERROR, + "Null pointer in PQ_MessageFlow_GetPQueue"); return FALSE; } @@ -386,6 +308,9 @@ osalbool PQ_MessageFlow_Remove(PQ_ChannelData_t *Channel, CFE_SB_MsgId_t MsgID) if (NULL == Channel) { + CFE_EVS_SendEvent(PQ_NULL_POINTER_ERR_EID, + CFE_EVS_ERROR, + "Null pointer in PQ_MessageFlow_Remove"); return FALSE; } @@ -469,6 +394,9 @@ osalbool PQ_MessageFlow_Query(PQ_ChannelData_t *Channel, CFE_SB_MsgId_t MsgID) if (NULL == Channel) { + CFE_EVS_SendEvent(PQ_NULL_POINTER_ERR_EID, + CFE_EVS_ERROR, + "Null pointer in PQ_MessageFlow_Query"); return FALSE; } diff --git a/apps/pq_lib/fsw/src/pq_output_queue.c b/apps/pq_lib/fsw/src/pq_output_queue.c index 4fd1d44dd..3195dc27d 100644 --- a/apps/pq_lib/fsw/src/pq_output_queue.c +++ b/apps/pq_lib/fsw/src/pq_output_queue.c @@ -44,6 +44,14 @@ int32 PQ_OutputQueue_Buildup(PQ_ChannelData_t* Channel) { int32 status = OS_SUCCESS; + if (NULL == Channel) + { + CFE_EVS_SendEvent(PQ_NULL_POINTER_ERR_EID, + CFE_EVS_ERROR, + "Null pointer in PQ_OutputQueue_Buildup"); + return -1; + } + /* * Now that we have the new table, create all the new resources we need * starting with queues for the channels and priority queues. @@ -85,6 +93,14 @@ int32 PQ_OutputQueue_Teardown(PQ_ChannelData_t *Channel) void *buffer = NULL; uint32 nBytesCopied = 0; + if (NULL == Channel) + { + CFE_EVS_SendEvent(PQ_NULL_POINTER_ERR_EID, + CFE_EVS_ERROR, + "Null pointer in PQ_OutputQueue_Teardown"); + return -1; + } + if (Channel->OutputQueue.OSALQueueID != OS_MAX_QUEUES) { while (OS_SUCCESS == status) @@ -125,8 +141,6 @@ int32 PQ_OutputQueue_Teardown(PQ_ChannelData_t *Channel) } } - //status = PQ_OutputChannel_CustomTeardown(channel->channelIdx); - return status; } @@ -139,6 +153,14 @@ int32 PQ_OutputQueue_Teardown(PQ_ChannelData_t *Channel) /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ void PQ_OutputQueue_ResetCounts(PQ_ChannelData_t *Channel) { + if (NULL == Channel) + { + CFE_EVS_SendEvent(PQ_NULL_POINTER_ERR_EID, + CFE_EVS_ERROR, + "Null pointer in PQ_OutputQueue_ResetCounts"); + return; + } + Channel->OutputQueue.SentCount = 0; Channel->OutputQueue.HighwaterMark = 0; Channel->OutputQueue.SentBytes = 0; @@ -156,6 +178,14 @@ int32 PQ_OutputQueue_QueueMsg(PQ_ChannelData_t *Channel, CFE_SB_MsgPtr_t MsgPtr) { int32 status = 0; + if (NULL == Channel) + { + CFE_EVS_SendEvent(PQ_NULL_POINTER_ERR_EID, + CFE_EVS_ERROR, + "Null pointer in PQ_OutputQueue_QueueMsg"); + return -1; + } + status = OS_QueuePut(Channel->OutputQueue.OSALQueueID, &MsgPtr, sizeof(MsgPtr), 0); if (OS_QUEUE_FULL == status) { @@ -204,6 +234,9 @@ osalbool PQ_OutputChannel_Query(PQ_ChannelData_t *Channel) if (NULL == Channel) { + CFE_EVS_SendEvent(PQ_NULL_POINTER_ERR_EID, + CFE_EVS_ERROR, + "Null pointer in PQ_OutputChannel_Query"); return FALSE; } diff --git a/apps/pq_lib/fsw/src/pq_priority_queue.c b/apps/pq_lib/fsw/src/pq_priority_queue.c index 7116e02e8..6f54d042a 100644 --- a/apps/pq_lib/fsw/src/pq_priority_queue.c +++ b/apps/pq_lib/fsw/src/pq_priority_queue.c @@ -57,6 +57,14 @@ void PQ_PriorityQueue_ResetCountsAll(PQ_ChannelData_t* Channel) { uint32 i; + if (NULL == Channel) + { + CFE_EVS_SendEvent(PQ_NULL_POINTER_ERR_EID, + CFE_EVS_ERROR, + "Null pointer in PQ_PriorityQueue_ResetCountsAll"); + return; + } + for (i = 0; i < PQ_MAX_PRIORITY_QUEUES; ++i) { Channel->DumpTbl.PriorityQueue[i].DroppedMsgCnt = 0; @@ -151,6 +159,14 @@ int32 PQ_PriorityQueue_TeardownAll(PQ_ChannelData_t *Channel) uint32 bufferSize = 0; void *buffer = NULL; + if (NULL == Channel) + { + CFE_EVS_SendEvent(PQ_NULL_POINTER_ERR_EID, + CFE_EVS_ERROR, + "Null pointer in PQ_PriorityQueue_TeardownAll"); + return -1; + } + if(NULL != Channel->ConfigTblPtr) { for(i = 0; i < PQ_MAX_PRIORITY_QUEUES; ++i) @@ -245,7 +261,15 @@ int32 PQ_PriorityQueue_QueueMsg( PQ_PriorityQueueMetrics_t* pqueueDump = NULL; void *PQ_CopyBuffer = NULL; CFE_SB_MsgId_t DataMsgID; - + + if (NULL == Channel) + { + CFE_EVS_SendEvent(PQ_NULL_POINTER_ERR_EID, + CFE_EVS_ERROR, + "Null pointer in PQ_PriorityQueue_QueueMsg"); + return -1; + } + if (NULL == Channel->ConfigTblPtr) { (void) CFE_EVS_SendEvent(PQ_PQUEUE_MISSING_TBL_ERR_EID, CFE_EVS_ERROR, @@ -371,6 +395,9 @@ osalbool PQ_PriorityQueue_Query(PQ_ChannelData_t *Channel, uint16 PQueueIdx) if (NULL == Channel) { + CFE_EVS_SendEvent(PQ_NULL_POINTER_ERR_EID, + CFE_EVS_ERROR, + "Null pointer in PQ_PriorityQueue_Query"); return FALSE; } @@ -436,6 +463,9 @@ osalbool PQ_PriorityQueue_IsValid(PQ_ChannelData_t *Channel, uint32 PQueueIdx) { if ((NULL == Channel) || (NULL == Channel->ConfigTblPtr)) { + CFE_EVS_SendEvent(PQ_NULL_POINTER_ERR_EID, + CFE_EVS_ERROR, + "Null pointer in PQ_PriorityQueue_IsValid"); return FALSE; } diff --git a/apps/pq_lib/fsw/src/pq_scheduler.c b/apps/pq_lib/fsw/src/pq_scheduler.c index a9119c1b1..2a1f6e753 100644 --- a/apps/pq_lib/fsw/src/pq_scheduler.c +++ b/apps/pq_lib/fsw/src/pq_scheduler.c @@ -34,6 +34,7 @@ #include "pq_structs.h" #include "pq_scheduler.h" #include "pq_output_queue.h" +#include "pq_events.h" /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ @@ -49,11 +50,22 @@ void PQ_Scheduler_Run(PQ_ChannelData_t *Channel) int32 status = 0; void *buffer = NULL; uint32 nBytesCopied = 0; - + + if (NULL == Channel) + { + CFE_EVS_SendEvent(PQ_NULL_POINTER_ERR_EID, + CFE_EVS_ERROR, + "Null pointer in PQ_Scheduler_Run"); + return; + } + oqueue = &Channel->OutputQueue; if (NULL == Channel->ConfigTblPtr) { + CFE_EVS_SendEvent(PQ_NULL_POINTER_ERR_EID, + CFE_EVS_ERROR, + "Null ConfigTblPtr pointer in PQ_Scheduler_Run"); /* If there is no table data we can't access a priority queue. */ return; } From de61a659de72a20b0f964f0ab7aca0a17ef615cf Mon Sep 17 00:00:00 2001 From: cnalley Date: Fri, 12 Feb 2021 20:14:23 +0000 Subject: [PATCH 100/370] More cleanup and refactoring. --- apps/pq_lib/fsw/public_inc/pq_channel.h | 9 +++++++-- apps/pq_lib/fsw/public_inc/pq_message_flow.h | 1 + apps/pq_lib/fsw/public_inc/pq_mission_cfg.h | 2 +- apps/pq_lib/fsw/public_inc/pq_output_queue.h | 6 ------ apps/pq_lib/fsw/public_inc/pq_platform_cfg.h | 2 +- apps/pq_lib/fsw/public_inc/pq_priority_queue.h | 3 --- apps/pq_lib/fsw/public_inc/pq_scheduler.h | 1 - apps/pq_lib/fsw/src/pq_message_flow.c | 6 ------ apps/pq_lib/fsw/src/pq_output_queue.c | 4 ---- apps/pq_lib/fsw/src/pq_priority_queue.c | 4 ---- 10 files changed, 10 insertions(+), 28 deletions(-) diff --git a/apps/pq_lib/fsw/public_inc/pq_channel.h b/apps/pq_lib/fsw/public_inc/pq_channel.h index 80d789f06..7c0148368 100644 --- a/apps/pq_lib/fsw/public_inc/pq_channel.h +++ b/apps/pq_lib/fsw/public_inc/pq_channel.h @@ -236,6 +236,7 @@ void PQ_Channel_Cleanup(PQ_ChannelData_t *Channel); */ void PQ_Channel_ResetCounts(PQ_ChannelData_t *Channel); + /** * \brief Forwards a single channel's telemetry data to PQ_Classifier * and PQ_Scheduler @@ -243,11 +244,15 @@ void PQ_Channel_ResetCounts(PQ_ChannelData_t *Channel); * \par Assumptions, External Events, and Notes: * Assumes channel pointer is not NULL * - * \param [in] channel A #PQ_ChannelData_t pointer that + * \param [in] Channel A #PQ_ChannelData_t pointer that * references the channel data structures + * + * \param [in] DataMsgPtr A #CFE_SB_MsgPtr_t pointer of an SB message + * */ void PQ_Channel_ProcessTelemetry(PQ_ChannelData_t *Channel, CFE_SB_MsgPtr_t DataMsgPtr); -void PQ_Channel_CopyStats(PQ_HkTlm_t *HkTlm, PQ_ChannelData_t *Channel); +void PQ_Channel_CopyStats(PQ_HkTlm_t *HkTlm, PQ_ChannelData_t *Channel); + #endif diff --git a/apps/pq_lib/fsw/public_inc/pq_message_flow.h b/apps/pq_lib/fsw/public_inc/pq_message_flow.h index 9e5c2b085..da1fb9f30 100644 --- a/apps/pq_lib/fsw/public_inc/pq_message_flow.h +++ b/apps/pq_lib/fsw/public_inc/pq_message_flow.h @@ -93,6 +93,7 @@ void PQ_MessageFlow_ResetCountsAll(PQ_ChannelData_t *Channel); *************************************************************************/ int32 PQ_MessageFlow_TeardownAll(PQ_ChannelData_t *Channel); + /************************************************************************/ /** \brief Get the next message flow object. ** diff --git a/apps/pq_lib/fsw/public_inc/pq_mission_cfg.h b/apps/pq_lib/fsw/public_inc/pq_mission_cfg.h index 36b441d63..6a862296d 100644 --- a/apps/pq_lib/fsw/public_inc/pq_mission_cfg.h +++ b/apps/pq_lib/fsw/public_inc/pq_mission_cfg.h @@ -39,7 +39,7 @@ extern "C" { #endif /* -** TO Mission Configuration Parameter Definitions +** PQ Mission Configuration Parameter Definitions */ /** diff --git a/apps/pq_lib/fsw/public_inc/pq_output_queue.h b/apps/pq_lib/fsw/public_inc/pq_output_queue.h index 8cea6e85a..4416bafb5 100644 --- a/apps/pq_lib/fsw/public_inc/pq_output_queue.h +++ b/apps/pq_lib/fsw/public_inc/pq_output_queue.h @@ -76,7 +76,6 @@ int32 PQ_OutputQueue_Push(PQ_ChannelData_t* Channel, const char* Buffer, uint32 Size); - /************************************************************************/ /** \brief Cleanup all output channels. ** @@ -91,7 +90,6 @@ int32 PQ_OutputQueue_Push(PQ_ChannelData_t* Channel, const char* Buffer, uint32 void PQ_OutputQueue_CleanupAll(PQ_ChannelData_t* Channel); - /************************************************************************/ /** \brief Resets all metrics. ** @@ -107,7 +105,6 @@ void PQ_OutputQueue_CleanupAll(PQ_ChannelData_t* Channel); void PQ_OutputQueue_ResetCounts(PQ_ChannelData_t* Channel); - /************************************************************************/ /** \brief Teardown all output channel queues. ** @@ -123,7 +120,6 @@ void PQ_OutputQueue_ResetCounts(PQ_ChannelData_t* Channel); int32 PQ_OutputQueue_Teardown(PQ_ChannelData_t* Channel); - /************************************************************************/ /** \brief Buildup all output channel queues. ** @@ -143,7 +139,6 @@ int32 PQ_OutputQueue_Teardown(PQ_ChannelData_t* Channel); int32 PQ_OutputQueue_Buildup(PQ_ChannelData_t* Channel); - /************************************************************************/ /** \brief Queue message. ** @@ -165,7 +160,6 @@ int32 PQ_OutputQueue_Buildup(PQ_ChannelData_t* Channel); int32 PQ_OutputQueue_QueueMsg(PQ_ChannelData_t* Channel, CFE_SB_MsgPtr_t MsgPtr); - /************************************************************************/ /** \brief Query. ** diff --git a/apps/pq_lib/fsw/public_inc/pq_platform_cfg.h b/apps/pq_lib/fsw/public_inc/pq_platform_cfg.h index 54ee92334..0266ba638 100644 --- a/apps/pq_lib/fsw/public_inc/pq_platform_cfg.h +++ b/apps/pq_lib/fsw/public_inc/pq_platform_cfg.h @@ -52,7 +52,7 @@ extern "C" { ** classifier. ** */ -#define PQ_MAX_MSG_LENGTH (32767) +#define PQ_MAX_MSG_LENGTH (32767) /** ** \cfeescfg Define PQ Memory Pool Block Sizes diff --git a/apps/pq_lib/fsw/public_inc/pq_priority_queue.h b/apps/pq_lib/fsw/public_inc/pq_priority_queue.h index 10b3ba0bf..eb9a731c2 100644 --- a/apps/pq_lib/fsw/public_inc/pq_priority_queue.h +++ b/apps/pq_lib/fsw/public_inc/pq_priority_queue.h @@ -116,7 +116,6 @@ int32 PQ_PriorityQueue_BuildupAll(PQ_ChannelData_t *Channel); int32 PQ_PriorityQueue_QueueMsg(PQ_ChannelData_t *Channel, CFE_SB_MsgPtr_t MsgPtr, uint32 PQueueIndex); - /************************************************************************/ /** \brief Teardown all priority queues. ** @@ -135,7 +134,6 @@ int32 PQ_PriorityQueue_QueueMsg(PQ_ChannelData_t *Channel, CFE_SB_MsgPtr_t MsgPt int32 PQ_PriorityQueue_TeardownAll(PQ_ChannelData_t *Channel); - /************************************************************************/ /** \brief Query a priority queue. ** @@ -175,5 +173,4 @@ osalbool PQ_PriorityQueue_Query(PQ_ChannelData_t *Channel, uint16 PQueueIdx); *************************************************************************/ osalbool PQ_PriorityQueue_IsValid(PQ_ChannelData_t *Channel, uint32 PQueueIdx); - #endif diff --git a/apps/pq_lib/fsw/public_inc/pq_scheduler.h b/apps/pq_lib/fsw/public_inc/pq_scheduler.h index 60f3575d4..b616b8c8d 100644 --- a/apps/pq_lib/fsw/public_inc/pq_scheduler.h +++ b/apps/pq_lib/fsw/public_inc/pq_scheduler.h @@ -56,7 +56,6 @@ ** External Global Variables *************************************************************************/ - /************************************************************************/ /** \brief Runs the Classifier algorithm on incoming message flows. ** diff --git a/apps/pq_lib/fsw/src/pq_message_flow.c b/apps/pq_lib/fsw/src/pq_message_flow.c index d50f044b2..7823a07a2 100644 --- a/apps/pq_lib/fsw/src/pq_message_flow.c +++ b/apps/pq_lib/fsw/src/pq_message_flow.c @@ -63,7 +63,6 @@ void PQ_MessageFlow_ResetCountsAll(PQ_ChannelData_t *Channel) } - /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ /* */ /* Get message flow object */ @@ -105,7 +104,6 @@ PQ_MessageFlow_t* PQ_MessageFlow_GetObject(PQ_ChannelData_t *Channel, CFE_SB_Msg } - /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ /* */ /* Get the priority queue for a specific message flow */ @@ -157,7 +155,6 @@ PQ_PriorityQueue_t* PQ_MessageFlow_GetPQueue(PQ_ChannelData_t *Channel, PQ_Messa } - /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ /* */ /* Add a message flow */ @@ -293,7 +290,6 @@ osalbool PQ_MessageFlow_Add( } - /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ /* */ /* Remove a message flow */ @@ -381,7 +377,6 @@ osalbool PQ_MessageFlow_Remove(PQ_ChannelData_t *Channel, CFE_SB_MsgId_t MsgID) } - /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ /* */ /* Query a message flow */ @@ -452,4 +447,3 @@ osalbool PQ_MessageFlow_Query(PQ_ChannelData_t *Channel, CFE_SB_MsgId_t MsgID) return found; } - diff --git a/apps/pq_lib/fsw/src/pq_output_queue.c b/apps/pq_lib/fsw/src/pq_output_queue.c index 3195dc27d..dc4b376b4 100644 --- a/apps/pq_lib/fsw/src/pq_output_queue.c +++ b/apps/pq_lib/fsw/src/pq_output_queue.c @@ -79,7 +79,6 @@ int32 PQ_OutputQueue_Buildup(PQ_ChannelData_t* Channel) } - /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ /* */ /* Teardown channel output queue in preparation for a */ @@ -145,7 +144,6 @@ int32 PQ_OutputQueue_Teardown(PQ_ChannelData_t *Channel) } - /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ /* */ /* Reset all dynamic metrics. */ @@ -168,7 +166,6 @@ void PQ_OutputQueue_ResetCounts(PQ_ChannelData_t *Channel) } - /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ /* */ /* Push a message on the output channel queue. */ @@ -223,7 +220,6 @@ int32 PQ_OutputQueue_QueueMsg(PQ_ChannelData_t *Channel, CFE_SB_MsgPtr_t MsgPtr) } - /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ /* */ /* Query an output channel. */ diff --git a/apps/pq_lib/fsw/src/pq_priority_queue.c b/apps/pq_lib/fsw/src/pq_priority_queue.c index 6f54d042a..93c34c486 100644 --- a/apps/pq_lib/fsw/src/pq_priority_queue.c +++ b/apps/pq_lib/fsw/src/pq_priority_queue.c @@ -47,7 +47,6 @@ uint32 PQ_GetEventMsgLength(CFE_EVS_Packet_t *msgPtr); - /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ /* */ /* Clear all dynamics metrics. */ @@ -75,7 +74,6 @@ void PQ_PriorityQueue_ResetCountsAll(PQ_ChannelData_t* Channel) } - /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ /* */ /* Buildup all priority queues after a reconfiguration. */ @@ -145,7 +143,6 @@ int32 PQ_PriorityQueue_BuildupAll(PQ_ChannelData_t *Channel) } - /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ /* */ /* Teardown all priority queues after a reconfiguration. */ @@ -383,7 +380,6 @@ int32 PQ_PriorityQueue_QueueMsg( } - /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ /* */ /* Query a priority queue. */ From 5d8929b0600a9f7c902a4ee5850263ea04e05dd2 Mon Sep 17 00:00:00 2001 From: lorenzo-gomez-windhover Date: Wed, 17 Feb 2021 12:35:27 -0600 Subject: [PATCH 101/370] -Updated docs --- docs/README.md | 26 ++++++++++++++++++++++++-- 1 file changed, 24 insertions(+), 2 deletions(-) diff --git a/docs/README.md b/docs/README.md index f9da25d48..12626a8f2 100644 --- a/docs/README.md +++ b/docs/README.md @@ -1,6 +1,28 @@ -### To build. +## Requirements to build airliner(Tested on Ubuntu18) +`libgazebo9-dev` +`libboost-all-dev` +`python3-opencv` +`libopencv-dev` +`libgstreamer-plugins-base1.0-dev` +`default-jre` +`python>=3.6` +`gcc-multilib` +`g++-multilib` +`cmake` -This is known to work with Python 3.5 +Must install the following dependencies via pip3: +`PyYAML==5.3.1` +`six==1.15.0` +`wheel==0.35.1` +`pytest==6.1.1` +`sqlite_utils==2.21` +`cerberus==1.3.2` +`yamlpath==3.4.0` +`Jinja2==2.11.2` + +### To build docs. + +This is known to work with Python 3.6 1. `pip3 install sphinx` 2. `pip3 install sphinx-rtd-theme` From 76f742e141280167ace48c3dc6e3d8d94ade6d25 Mon Sep 17 00:00:00 2001 From: lorenzo-gomez-windhover Date: Wed, 17 Feb 2021 16:26:49 -0600 Subject: [PATCH 102/370] -Updated docs --- docs/README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/README.md b/docs/README.md index 12626a8f2..5b0b0b57d 100644 --- a/docs/README.md +++ b/docs/README.md @@ -19,6 +19,7 @@ Must install the following dependencies via pip3: `cerberus==1.3.2` `yamlpath==3.4.0` `Jinja2==2.11.2` +`yamlpath` ### To build docs. From 1f293397b819cb4fb0d732ffc6ae0617efb512d9 Mon Sep 17 00:00:00 2001 From: lorenzo-gomez-windhover Date: Wed, 17 Feb 2021 16:31:09 -0600 Subject: [PATCH 103/370] -Updated docs --- docs/README.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/docs/README.md b/docs/README.md index 5b0b0b57d..cad444b0a 100644 --- a/docs/README.md +++ b/docs/README.md @@ -9,6 +9,9 @@ `gcc-multilib` `g++-multilib` `cmake` +`libdwarf-dev` +`libelf-dev` +`libsqlite3-dev` Must install the following dependencies via pip3: `PyYAML==5.3.1` From fa4b8067ba2a7246b7289f461c7f61adc6b4a931 Mon Sep 17 00:00:00 2001 From: lorenzo-gomez-windhover Date: Wed, 17 Feb 2021 17:21:39 -0600 Subject: [PATCH 104/370] -auto-yamcs has been updated to work with latest airliner updates --- core/tools/auto-yamcs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/tools/auto-yamcs b/core/tools/auto-yamcs index 7799625c1..b51d2b62f 160000 --- a/core/tools/auto-yamcs +++ b/core/tools/auto-yamcs @@ -1 +1 @@ -Subproject commit 7799625c1770f057e1181cef3d7d911ccf3366ba +Subproject commit b51d2b62f7d960cbe82f01126f9b6a07d6efd4e3 From c48357746b798e2958a2a583c899fc7da9266196 Mon Sep 17 00:00:00 2001 From: lorenzo-gomez-windhover Date: Wed, 17 Feb 2021 17:24:49 -0600 Subject: [PATCH 105/370] -Updated docs --- docs/README.md | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/docs/README.md b/docs/README.md index cad444b0a..ed3fead84 100644 --- a/docs/README.md +++ b/docs/README.md @@ -4,16 +4,17 @@ `python3-opencv` `libopencv-dev` `libgstreamer-plugins-base1.0-dev` -`default-jre` +`default-jre` +`openjdk-8-jdk` `python>=3.6` `gcc-multilib` -`g++-multilib` -`cmake` -`libdwarf-dev` -`libelf-dev` +`g++-multilib` +`cmake` +`libdwarf-dev` +`libelf-dev` `libsqlite3-dev` -Must install the following dependencies via pip3: +Must install the following dependencies via pip3: `PyYAML==5.3.1` `six==1.15.0` `wheel==0.35.1` @@ -21,7 +22,7 @@ Must install the following dependencies via pip3: `sqlite_utils==2.21` `cerberus==1.3.2` `yamlpath==3.4.0` -`Jinja2==2.11.2` +`Jinja2==2.11.2` `yamlpath` ### To build docs. From 5fe72adea630669dac90681ae467619b5827c405 Mon Sep 17 00:00:00 2001 From: cnalley Date: Thu, 18 Feb 2021 17:41:44 +0000 Subject: [PATCH 106/370] Add pq_lib tables to cpd build. --- .../obc/cpd/target/apps/pq_lib/CMakeLists.txt | 7 + .../target/apps/pq_lib/tables/pq_backup_cfg.c | 73 ++++++ .../cpd/target/apps/pq_lib/tables/pq_cfg.c | 221 ++++++++++++++++++ 3 files changed, 301 insertions(+) create mode 100644 config/obc/cpd/target/apps/pq_lib/CMakeLists.txt create mode 100644 config/obc/cpd/target/apps/pq_lib/tables/pq_backup_cfg.c create mode 100644 config/obc/cpd/target/apps/pq_lib/tables/pq_cfg.c diff --git a/config/obc/cpd/target/apps/pq_lib/CMakeLists.txt b/config/obc/cpd/target/apps/pq_lib/CMakeLists.txt new file mode 100644 index 000000000..94754ad68 --- /dev/null +++ b/config/obc/cpd/target/apps/pq_lib/CMakeLists.txt @@ -0,0 +1,7 @@ +set(APP_NAME pq_lib) + +buildliner_add_table( + ${APP_NAME} + NAME pq_cfg + SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/tables/pq_cfg.c +) diff --git a/config/obc/cpd/target/apps/pq_lib/tables/pq_backup_cfg.c b/config/obc/cpd/target/apps/pq_lib/tables/pq_backup_cfg.c new file mode 100644 index 000000000..0c6e3234e --- /dev/null +++ b/config/obc/cpd/target/apps/pq_lib/tables/pq_backup_cfg.c @@ -0,0 +1,73 @@ +/************************************************************************ + ** Includes + *************************************************************************/ +#include "cfe_tbl_filedef.h" +#include "pq_structs.h" +#include "msg_ids.h" + + +/************************************************************************ + ** Defines + *************************************************************************/ + +#define PQ_PQUEUE_SINGLE_PASS_IDX 0 +#define PQ_PQUEUE_HIGH_OPS_RSRVD_IDX 1 +#define PQ_PQUEUE_HIGH_IDX 2 +#define PQ_PQUEUE_MEDIUM_IDX 3 +#define PQ_PQUEUE_LOW_IDX 4 + +/** + ** \brief Default TO config table data + */ +PQ_ChannelTbl_t PQ_BackupConfigTbl = +{ + /* Table ID */ + 0, + { + /* Message Flows */ + /* Ground Queues */ + {SBN_SUB_MID, 64, PQ_PQUEUE_MEDIUM_IDX}, + {SBN_UNSUB_MID, 64, PQ_PQUEUE_MEDIUM_IDX}, + {SBN_ALLSUB_MID, 1, PQ_PQUEUE_HIGH_IDX}, + {CFE_ES_HK_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {CFE_EVS_HK_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {CFE_SB_HK_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {CFE_TBL_HK_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {CFE_TIME_HK_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {CFE_TIME_DIAG_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {CFE_EVS_EVENT_MSG_MID, 32, PQ_PQUEUE_LOW_IDX}, + {CFE_SB_STATS_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {CFE_ES_APP_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {CFE_TBL_REG_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {CFE_ES_SHELL_TLM_MID, 32, PQ_PQUEUE_LOW_IDX}, + {CFE_ES_MEMSTATS_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {CF_HK_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {CF_TRANS_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {CF_CONFIG_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {CF_SPACE_TO_GND_PDU_MID, 32, PQ_PQUEUE_LOW_IDX}, + {FM_HK_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {FM_FILE_INFO_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {FM_DIR_LIST_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {FM_OPEN_FILES_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {FM_FREE_SPACE_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {MD_HK_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {MM_HK_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + },{ + /* Priority Queues */ + /* PQ_PQUEUE_SINGLE_PASS_IDX */ + {PQ_PQUEUE_ENA, 100, PQ_PRIORITY_QUEUE_TYPE_SINGLE}, + /* PQ_PQUEUE_HIGH_OPS_RSRVD_IDX */ + {PQ_PQUEUE_ENA, 100, PQ_PRIORITY_QUEUE_TYPE_FIFO}, + /* PQ_PQUEUE_HIGH_IDX */ + {PQ_PQUEUE_ENA, 100, PQ_PRIORITY_QUEUE_TYPE_FIFO}, + /* PQ_PQUEUE_MEDIUM_IDX */ + {PQ_PQUEUE_ENA, 100, PQ_PRIORITY_QUEUE_TYPE_FIFO}, + /* PQ_PQUEUE_LOW_IDX */ + {PQ_PQUEUE_ENA, 100, PQ_PRIORITY_QUEUE_TYPE_FIFO} + } +}; + + +/************************/ +/* End of File Comment */ +/************************/ diff --git a/config/obc/cpd/target/apps/pq_lib/tables/pq_cfg.c b/config/obc/cpd/target/apps/pq_lib/tables/pq_cfg.c new file mode 100644 index 000000000..f20daa3ea --- /dev/null +++ b/config/obc/cpd/target/apps/pq_lib/tables/pq_cfg.c @@ -0,0 +1,221 @@ +/************************************************************************ + ** Includes + *************************************************************************/ +#include "cfe_tbl_filedef.h" +#include "pq_structs.h" +#include "msg_ids.h" + +/** + ** \brief The cFE TO config table definition. + ** + ** Content format: ObjName[64], TblName[38], Desc[32], TgtFileName[20], ObjSize + ** ObjName - variable name of config table, e.g., PQ_ConfigDefTbl[] + ** TblName - app's table name, e.g., TO.CONFIG_TBL, where TO is the same app name + ** used in cfe_es_startup.scr, and PQ_defConfigTbl is the same table + ** name passed in to CFE_TBL_Register() + ** Desc - description of table in string format + ** TgtFileName[20] - table file name, compiled as .tbl file extension + ** ObjSize - size of the entire table + ** + */ +static CFE_TBL_FileDef_t CFE_TBL_FileDef OS_USED = +{ + "PQ_ConfigTbl", "SBN.CFG", "PQ table", + "pq_cfg.tbl", (sizeof(PQ_ChannelTbl_t)) +}; + + +/************************************************************************ + ** Defines + *************************************************************************/ + +#define PQ_PQUEUE_SINGLE_PASS_IDX 0 +#define PQ_PQUEUE_HIGH_OPS_RSRVD_IDX 1 +#define PQ_PQUEUE_HIGH_IDX 2 +#define PQ_PQUEUE_MEDIUM_IDX 3 +#define PQ_PQUEUE_LOW_IDX 4 + +/** + ** \brief Default TO config table data + */ +PQ_ChannelTbl_t PQ_ConfigTbl = +{ + /* Table ID */ + 1, + { + /* Message Flows */ + /* Ground Queues */ + {SBN_SUB_MID, 64, PQ_PQUEUE_MEDIUM_IDX}, + {SBN_UNSUB_MID, 64, PQ_PQUEUE_MEDIUM_IDX}, + {SBN_ALLSUB_MID, 1, PQ_PQUEUE_HIGH_IDX}, + {AMC_HK_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {MAC_HK_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {MPC_HK_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {ULR_HK_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {RGBLED_HK_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {GPS_HK_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {SENS_HK_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {LD_HK_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {NAV_HK_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {RCIN_HK_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {VM_HK_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {BAT_HK_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {PE_HK_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {AK8963_HK_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {AK8963_DIAG_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {MS5611_HK_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {MS5611_DIAG_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {MPU6050_HK_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {MPU6050_DIAG_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {EA_HK_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {VC_HK_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {GPS_HK_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {MAVLINK_HK_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {CFE_ES_HK_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {CFE_EVS_HK_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {CFE_SB_HK_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {CFE_TBL_HK_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {CFE_TIME_HK_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {CFE_TIME_DIAG_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {CFE_EVS_EVENT_MSG_MID, 32, PQ_PQUEUE_LOW_IDX}, + {CFE_SB_STATS_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {CFE_ES_APP_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {CFE_TBL_REG_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {CFE_ES_SHELL_TLM_MID, 32, PQ_PQUEUE_LOW_IDX}, + {CFE_ES_MEMSTATS_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {CF_HK_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {CF_TRANS_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {CF_CONFIG_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {CF_SPACE_TO_GND_PDU_MID, 32, PQ_PQUEUE_LOW_IDX}, + {CS_HK_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {DS_HK_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {DS_DIAG_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {FM_HK_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {FM_FILE_INFO_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {FM_DIR_LIST_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {FM_OPEN_FILES_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {FM_FREE_SPACE_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {HK_HK_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {HS_HK_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {LC_HK_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {MD_HK_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {MM_HK_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {SCH_HK_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {SCH_DIAG_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {QAE_HK_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {FLOW_HK_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {FLOW_DIAG_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {MPC_DIAG_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {LD_DIAG_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {PRM_HK_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + {VM_CONFIG_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, + +// {PX4_ACTUATOR_ARMED_MID, 1, PQ_PQUEUE_LOW_IDX}, +// {PX4_ACTUATOR_CONTROLS_0_MID, 1, PQ_PQUEUE_LOW_IDX}, +// {PX4_ACTUATOR_CONTROLS_1_MID, 1, PQ_PQUEUE_LOW_IDX}, +// {PX4_ACTUATOR_CONTROLS_2_MID, 1, PQ_PQUEUE_LOW_IDX}, +// {PX4_ACTUATOR_CONTROLS_3_MID, 1, PQ_PQUEUE_LOW_IDX}, +// {PX4_ACTUATOR_DIRECT_MID, 1, PQ_PQUEUE_LOW_IDX}, +// {PX4_ACTUATOR_OUTPUTS_MID, 1, PQ_PQUEUE_LOW_IDX}, +// {PX4_ADC_REPORT_MID, 1, PQ_PQUEUE_LOW_IDX}, +// {PX4_AIRSPEED_MID, 1, PQ_PQUEUE_LOW_IDX}, +// {PX4_ATT_POS_MOCAP_MID, 1, PQ_PQUEUE_LOW_IDX}, +// {PX4_BATTERY_STATUS_MID, 1, PQ_PQUEUE_LOW_IDX}, +// {PX4_CAMERA_TRIGGER_MID, 1, PQ_PQUEUE_LOW_IDX}, +// {PX4_COMMANDER_STATE_MID, 1, PQ_PQUEUE_LOW_IDX}, +// {PX4_CONTROL_STATE_MID, 1, PQ_PQUEUE_LOW_IDX}, +// {PX4_CPULOAD_MID, 1, PQ_PQUEUE_LOW_IDX}, +// {PX4_DEBUG_KEY_VALUE_MID, 1, PQ_PQUEUE_LOW_IDX}, +// {PX4_DIFFERENTIAL_PRESSURE_MID, 1, PQ_PQUEUE_LOW_IDX}, +// {PX4_DISTANCE_SENSOR_MID, 1, PQ_PQUEUE_LOW_IDX}, +// {PX4_FW_POS_CTRL_STATUS_MID, 1, PQ_PQUEUE_LOW_IDX}, +// {PX4_FW_VIRTUAL_ATTITUDE_SETPOINT_MID, 1, PQ_PQUEUE_LOW_IDX}, +// {PX4_FW_VIRTUAL_RATES_SETPOINT_MID, 1, PQ_PQUEUE_LOW_IDX}, +// {PX4_EKF2_INNOVATIONS_MID, 1, PQ_PQUEUE_LOW_IDX}, +// {PX4_EKF2_REPLAY_MID, 1, PQ_PQUEUE_LOW_IDX}, +// {PX4_ESC_REPORT_MID, 1, PQ_PQUEUE_LOW_IDX}, +// {PX4_ESC_STATUS_MID, 1, PQ_PQUEUE_LOW_IDX}, +// {PX4_ESTIMATOR_STATUS_MID, 1, PQ_PQUEUE_LOW_IDX}, +// {PX4_FENCE_MID, 1, PQ_PQUEUE_LOW_IDX}, +// {PX4_FENCE_VERTEX_MID, 1, PQ_PQUEUE_LOW_IDX}, +// {PX4_FILTERED_BOTTOM_FLOW_MID, 1, PQ_PQUEUE_LOW_IDX}, +// {PX4_FOLLOW_TARGET_MID, 1, PQ_PQUEUE_LOW_IDX}, + {PX4_GEOFENCE_RESULT_MID, 1, PQ_PQUEUE_LOW_IDX}, +// {PX4_GPS_DUMP_MID, 1, PQ_PQUEUE_LOW_IDX}, +// {PX4_GPS_INJECT_DATA_MID, 1, PQ_PQUEUE_LOW_IDX}, +// {PX4_HIL_SENSOR_MID, 1, PQ_PQUEUE_LOW_IDX}, + {PX4_HOME_POSITION_MID, 1, PQ_PQUEUE_LOW_IDX}, +// {PX4_INPUT_RC_MID, 1, PQ_PQUEUE_LOW_IDX}, + {PX4_LED_CONTROL_MID, 1, PQ_PQUEUE_LOW_IDX}, + {PX4_LOG_MESSAGE_MID, 1, PQ_PQUEUE_LOW_IDX}, + {PX4_MANUAL_CONTROL_SETPOINT_MID, 1, PQ_PQUEUE_LOW_IDX}, + {PX4_MAVLINK_LOG_MID, 1, PQ_PQUEUE_LOW_IDX}, +// {PX4_MC_ATT_CTRL_STATUS_MID, 1, PQ_PQUEUE_LOW_IDX}, +// {PX4_MC_VIRTUAL_ATTITUDE_SETPOINT_MID, 1, PQ_PQUEUE_LOW_IDX}, +// {PX4_MC_VIRTUAL_RATES_SETPOINT_MID, 1, PQ_PQUEUE_LOW_IDX}, + {PX4_MISSION_MID, 1, PQ_PQUEUE_LOW_IDX}, + {PX4_MISSION_RESULT_MID, 1, PQ_PQUEUE_LOW_IDX}, +// {PX4_MULTIROTOR_MOTOR_LIMITS_MID, 1, PQ_PQUEUE_LOW_IDX}, + {PX4_OFFBOARD_CONTROL_MODE_MID, 1, PQ_PQUEUE_LOW_IDX}, +// {PX4_OPTICAL_FLOW_MID, 1, PQ_PQUEUE_LOW_IDX}, +// {PX4_OUTPUT_PWM_MID, 1, PQ_PQUEUE_LOW_IDX}, +// {PX4_PARAMETER_UPDATE_MID, 1, PQ_PQUEUE_LOW_IDX}, + {PX4_POSITION_SETPOINT_TRIPLET_MID, 1, PQ_PQUEUE_LOW_IDX}, +// {PX4_PWM_INPUT_MID, 1, PQ_PQUEUE_LOW_IDX}, +// {PX4_QSHELL_REQ_MID, 1, PQ_PQUEUE_LOW_IDX}, +// {PX4_RC_CHANNELS_MID, 1, PQ_PQUEUE_LOW_IDX}, +// {PX4_RC_PARAMETER_MAP_MID, 1, PQ_PQUEUE_LOW_IDX}, + {PX4_SAFETY_MID, 1, PQ_PQUEUE_LOW_IDX}, +// {PX4_SATELLITE_INFO_MID, 1, PQ_PQUEUE_LOW_IDX}, +// {PX4_SENSOR_ACCEL_MID, 1, PQ_PQUEUE_LOW_IDX}, +// {PX4_SENSOR_BARO_MID, 1, PQ_PQUEUE_LOW_IDX}, +// {PX4_SENSOR_COMBINED_MID, 1, PQ_PQUEUE_LOW_IDX}, + {PX4_SENSOR_CORRECTION_MID, 1, PQ_PQUEUE_LOW_IDX}, +// {PX4_SENSOR_GYRO_MID, 1, PQ_PQUEUE_LOW_IDX}, +// {PX4_SENSOR_MAG_MID, 1, PQ_PQUEUE_LOW_IDX}, +// {PX4_SERVORAIL_STATUS_MID, 1, PQ_PQUEUE_LOW_IDX}, + {PX4_SUBSYSTEM_INFO_MID, 1, PQ_PQUEUE_LOW_IDX}, + {PX4_SYSTEM_POWER_MID, 1, PQ_PQUEUE_LOW_IDX}, +// {PX4_TECS_STATUS_MID, 1, PQ_PQUEUE_LOW_IDX}, + {PX4_TELEMETRY_STATUS_MID, 1, PQ_PQUEUE_LOW_IDX}, +// {PX4_TEST_MOTOR_MID, 1, PQ_PQUEUE_LOW_IDX}, +// {PX4_TIME_OFFSET_MID, 1, PQ_PQUEUE_LOW_IDX}, +// {PX4_TRANSPONDER_REPORT_MID, 1, PQ_PQUEUE_LOW_IDX}, +// {PX4_UAVCAN_PARAMETER_REQUEST_MID, 1, PQ_PQUEUE_LOW_IDX}, +// {PX4_UAVCAN_PARAMETER_VALUE_MID, 1, PQ_PQUEUE_LOW_IDX}, + {PX4_VEHICLE_ATTITUDE_MID, 1, PQ_PQUEUE_LOW_IDX}, +// {PX4_VEHICLE_ATTITUDE_SETPOINT_MID, 1, PQ_PQUEUE_LOW_IDX}, +// {PX4_VEHICLE_COMMAND_ACK_MID, 1, PQ_PQUEUE_LOW_IDX}, +// {PX4_VEHICLE_COMMAND_MID, 1, PQ_PQUEUE_LOW_IDX}, +// {PX4_VEHICLE_CONTROL_MODE_MID, 1, PQ_PQUEUE_LOW_IDX}, +// {PX4_VEHICLE_FORCE_SETPOINT_MID, 1, PQ_PQUEUE_LOW_IDX}, + {PX4_VEHICLE_GLOBAL_POSITION_MID, 1, PQ_PQUEUE_LOW_IDX}, +// {PX4_VEHICLE_GLOBAL_VELOCITY_SETPOINT_MID, 1, PQ_PQUEUE_LOW_IDX}, +// {PX4_VEHICLE_GPS_POSITION_MID, 1, PQ_PQUEUE_LOW_IDX}, + {PX4_VEHICLE_LAND_DETECTED_MID, 1, PQ_PQUEUE_LOW_IDX}, +// {PX4_VEHICLE_LOCAL_POSITION_MID, 1, PQ_PQUEUE_LOW_IDX}, +// {PX4_VEHICLE_LOCAL_POSITION_SETPOINT_MID, 1, PQ_PQUEUE_LOW_IDX}, +// {PX4_VEHICLE_RATES_SETPOINT_MID, 1, PQ_PQUEUE_LOW_IDX}, +// {PX4_VEHICLE_STATUS_MID, 1, PQ_PQUEUE_LOW_IDX}, +// {PX4_VISION_POSITION_ESTIMATE_MID, 1, PQ_PQUEUE_LOW_IDX}, +// {PX4_VTOL_VEHICLE_STATUS_MID, 1, PQ_PQUEUE_LOW_IDX}, +// {PX4_WIND_ESTIMATE_MID, 1, PQ_PQUEUE_LOW_IDX} + },{ + /* Priority Queues */ + /* PQ_PQUEUE_SINGLE_PASS_IDX */ + {PQ_PQUEUE_ENA, 100, PQ_PRIORITY_QUEUE_TYPE_SINGLE}, + /* PQ_PQUEUE_HIGH_OPS_RSRVD_IDX */ + {PQ_PQUEUE_ENA, 100, PQ_PRIORITY_QUEUE_TYPE_FIFO}, + /* PQ_PQUEUE_HIGH_IDX */ + {PQ_PQUEUE_ENA, 100, PQ_PRIORITY_QUEUE_TYPE_FIFO}, + /* PQ_PQUEUE_MEDIUM_IDX */ + {PQ_PQUEUE_ENA, 100, PQ_PRIORITY_QUEUE_TYPE_FIFO}, + /* PQ_PQUEUE_LOW_IDX */ + {PQ_PQUEUE_ENA, 100, PQ_PRIORITY_QUEUE_TYPE_FIFO} + } +}; + + +/************************/ +/* End of File Comment */ +/************************/ From af2b36cb149111b3d3cda71a65547d7df9c03ef9 Mon Sep 17 00:00:00 2001 From: lorenzo-gomez-windhover Date: Thu, 18 Feb 2021 12:47:25 -0600 Subject: [PATCH 107/370] -Added vm command struct to build --- apps/vm/fsw/for_build/CMakeLists.txt | 1 + apps/vm/fsw/src/vm_symbols.cpp | 7 +++++++ 2 files changed, 8 insertions(+) create mode 100644 apps/vm/fsw/src/vm_symbols.cpp diff --git a/apps/vm/fsw/for_build/CMakeLists.txt b/apps/vm/fsw/for_build/CMakeLists.txt index 26a31e278..c6cd69a26 100644 --- a/apps/vm/fsw/for_build/CMakeLists.txt +++ b/apps/vm/fsw/for_build/CMakeLists.txt @@ -45,6 +45,7 @@ buildliner_add_app_def(vm ${CMAKE_CURRENT_SOURCE_DIR}/../src/CautionWarningHelper.hpp ${CMAKE_CURRENT_SOURCE_DIR}/../src/VM_Arming.sm ${CMAKE_CURRENT_SOURCE_DIR}/../src/VM_Navigation.sm + ${CMAKE_CURRENT_SOURCE_DIR}/../src/vm_symbols.cpp INCLUDES ${CMAKE_CURRENT_SOURCE_DIR}/../src/ diff --git a/apps/vm/fsw/src/vm_symbols.cpp b/apps/vm/fsw/src/vm_symbols.cpp new file mode 100644 index 000000000..6988237b0 --- /dev/null +++ b/apps/vm/fsw/src/vm_symbols.cpp @@ -0,0 +1,7 @@ +#include "vm_app.h" + +extern "C" { + +VM_NoArgCmd_t VM_NoArgCmd_S; + +} \ No newline at end of file From ca3a64acb36bd84870c0af4c988894399dc8921a Mon Sep 17 00:00:00 2001 From: lorenzo-gomez-windhover Date: Thu, 18 Feb 2021 19:22:15 -0600 Subject: [PATCH 108/370] -Fixed MAV Flags -TODO: Document quirks with MAV and gazebo --- apps/sim/fsw/public_inc/simlib.h | 2 +- apps/sim/fsw/src/sim_app.cpp | 53 +++++++++----------------------- apps/sim/fsw/src/simlib_main.c | 24 ++------------- 3 files changed, 19 insertions(+), 60 deletions(-) diff --git a/apps/sim/fsw/public_inc/simlib.h b/apps/sim/fsw/public_inc/simlib.h index 02ada616c..30c169689 100644 --- a/apps/sim/fsw/public_inc/simlib.h +++ b/apps/sim/fsw/public_inc/simlib.h @@ -115,7 +115,7 @@ int32 SIMLIB_SetDistanceSensor( PX4_SensorOrientation_t Orientation, uint8 Covariance); -void SIMLIB_SetSocket(int Socket, int Port, char *Address); +void SIMLIB_SetSocket(int Socket); int32 SIMLIB_SendHeartbeat(void); diff --git a/apps/sim/fsw/src/sim_app.cpp b/apps/sim/fsw/src/sim_app.cpp index 04e8cf398..19f2575b8 100644 --- a/apps/sim/fsw/src/sim_app.cpp +++ b/apps/sim/fsw/src/sim_app.cpp @@ -545,7 +545,7 @@ int32 SIM::ListenerInit() int reuseaddr = 1; struct sockaddr_in address; - if((Socket = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP)) < 0) + if((Socket = socket(AF_INET, SOCK_STREAM, 0)) < 0) { //TODO: Add event //OS_printf("OSAL: Failed to create sim socket. errno: %i\n", errno); @@ -560,7 +560,7 @@ int32 SIM::ListenerInit() address.sin_addr.s_addr = htonl (INADDR_ANY); address.sin_port = htons(SIM_PORT); - if ( (bind(Socket, (struct sockaddr *) &address, sizeof(address)) < 0) ) + if ( (connect(Socket, (struct sockaddr *) &address, sizeof(address)) < 0) ) { //TODO: Add event //OS_printf("OSAL: Failed to bind sim socket. errno: %i\n", errno); @@ -568,6 +568,8 @@ int32 SIM::ListenerInit() goto end_of_function; } + SIMLIB_SetSocket(Socket); + Status = OS_MutSemCreate(&MutexID, SIM_MUTEX_NAME, 0); if (Status != CFE_SUCCESS) { @@ -633,15 +635,7 @@ void SIM::SetRates(void) if(Socket != 0) { - struct sockaddr_in simAddr; - int len = sizeof(simAddr); - - bzero((char *) &simAddr, sizeof(simAddr)); - simAddr.sin_family = AF_INET; - simAddr.sin_addr.s_addr = inet_addr(SendAddress); - simAddr.sin_port = htons(SendPort); - - sendto(Socket, (char *)buffer, length, 0, (const struct sockaddr *)&simAddr, (socklen_t )len); + send(Socket, (char *)buffer, length, 0); } } @@ -660,20 +654,16 @@ void SIM::ListenerTask(void) CFE_ES_RegisterChildTask(); + SetRates(); + while(ChildContinueExec()) { - struct sockaddr_in client; - socklen_t len = sizeof(client); - - size = recvfrom(Socket, + size = read(Socket, (char *)buffer, - (size_t)size, 0, - (struct sockaddr*)&client, - &len); + (size_t)size); if(size <= 0) { //TODO: Add event - OS_printf("OSAL: Failed to receive message from sim. errno = %u\n", errno); OS_TaskDelay(1000); } else @@ -681,24 +671,11 @@ void SIM::ListenerTask(void) mavlink_message_t msg; mavlink_status_t status; int32 i = 0; - char temp; - int port = ntohs(client.sin_port); - char *addr = inet_ntoa(client.sin_addr); - - if(port != SendPort) - { - /* This is a new connection. Set the message rates and inform - * the simlib code. */ - SetRates(); - - strncpy(SendAddress, addr, sizeof(SendAddress)); - SendPort = port; - SIMLIB_SetSocket(Socket, SendPort, SendAddress); - } + //char temp; for (i = 0; i < size; ++i) { - temp = buffer[i]; + //temp = buffer[i]; if (mavlink_parse_char(MAVLINK_COMM_0, buffer[i], &msg, &status)) { switch(msg.msgid) @@ -795,7 +772,7 @@ void SIM::ListenerTask(void) #endif #ifdef SIM_CHECK_UPDATED_FIELDS - if(decodedMsg.fields_updated & 0x000001a0) + if(decodedMsg.fields_updated & 0x000001c0) { #endif #ifdef SIM_PUBLISH_MAG @@ -827,21 +804,21 @@ void SIM::ListenerTask(void) #ifdef SIM_CHECK_UPDATED_FIELDS - if(decodedMsg.fields_updated & 0x00000600) + if(decodedMsg.fields_updated & 0x00000400) { #endif #ifdef SIM_PUBLISH_BARO SensorBaro.Timestamp = PX4LIB_GetPX4TimeUs(); SensorBaro.Pressure = decodedMsg.abs_pressure; #else - SIMLIB_SetPressure(decodedMsg.abs_pressure, decodedMsg.diff_pressure); + //SIMLIB_SetPressure(decodedMsg.abs_pressure, decodedMsg.diff_pressure); #endif #ifdef SIM_CHECK_UPDATED_FIELDS } #endif #ifdef SIM_CHECK_UPDATED_FIELDS - if(decodedMsg.fields_updated & 0x00000800) + if(decodedMsg.fields_updated & 0x00001a00) { #endif #ifdef SIM_PUBLISH_BARO diff --git a/apps/sim/fsw/src/simlib_main.c b/apps/sim/fsw/src/simlib_main.c index ec76af23b..6a3031ce6 100644 --- a/apps/sim/fsw/src/simlib_main.c +++ b/apps/sim/fsw/src/simlib_main.c @@ -173,11 +173,9 @@ int32 SIM_LibInit(void) }/* End SIM_LibInit */ -void SIMLIB_SetSocket(int Socket, int Port, char *Address) +void SIMLIB_SetSocket(int Socket) { SIMLIB_LibData.Socket = Socket; - SIMLIB_LibData.SendPort = Port; - strncpy(SIMLIB_LibData.SendAddress, Address, sizeof(SIMLIB_LibData.SendAddress)); } int32 SIMLIB_GetAccel(float *X, float *Y, float *Z) @@ -696,15 +694,7 @@ int32 SIMLIB_SetActuatorControls( if(SIMLIB_LibData.Socket != 0) { - struct sockaddr_in simAddr; - int len = sizeof(simAddr); - - bzero((char *) &simAddr, sizeof(simAddr)); - simAddr.sin_family = AF_INET; - simAddr.sin_addr.s_addr = inet_addr(SIMLIB_LibData.SendAddress); - simAddr.sin_port = htons(SIMLIB_LibData.SendPort); - - sendto(SIMLIB_LibData.Socket, (char *)buffer, length, 0, (const struct sockaddr *)&simAddr, (socklen_t )len); + send(SIMLIB_LibData.Socket, (char *)buffer, length, 0); } iStatus = SIMLIB_OK; @@ -834,15 +824,7 @@ int32 SIMLIB_SendHeartbeat(void) if(SIMLIB_LibData.Socket != 0) { - struct sockaddr_in simAddr; - int len = sizeof(simAddr); - - bzero((char *) &simAddr, sizeof(simAddr)); - simAddr.sin_family = AF_INET; - simAddr.sin_addr.s_addr = inet_addr(SIMLIB_LibData.SendAddress); - simAddr.sin_port = htons(SIMLIB_LibData.SendPort); - - sendto(SIMLIB_LibData.Socket, (char *)buffer, length, 0, (const struct sockaddr *)&simAddr, (socklen_t )len); + send(SIMLIB_LibData.Socket, (char *)buffer, length, 0); } iStatus = SIMLIB_OK; From 8ac33a09b17bb5be9717b56d33513b03e04a7445 Mon Sep 17 00:00:00 2001 From: lorenzo-gomez-windhover Date: Thu, 18 Feb 2021 19:23:12 -0600 Subject: [PATCH 109/370] -Updated startup script for gazebo --- config/bebop2/sitl/host/start-gazebo.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/bebop2/sitl/host/start-gazebo.in b/config/bebop2/sitl/host/start-gazebo.in index d7414ca24..e4c10fd8b 100755 --- a/config/bebop2/sitl/host/start-gazebo.in +++ b/config/bebop2/sitl/host/start-gazebo.in @@ -13,7 +13,7 @@ then #export GAZEBO_MODEL_DATABASE_URI="" export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:@GAZEBO_PLUGIN_BUILD_DIR@/msgs/:@GAZEBO_PLUGIN_BUILD_DIR@ - gzserver --verbose @GAZEBO_WORLDS_DIR@/parrot_bebop2.world & + gzserver --verbose @GAZEBO_WORLDS_DIR@/quad_world.sdf & SIM_PID=`echo $!` if [[ -n "$HEADLESS" ]]; then From 99e0abd1f75fd5c1a46245a20ca188dd1394ea80 Mon Sep 17 00:00:00 2001 From: lorenzo-gomez-windhover Date: Thu, 18 Feb 2021 19:24:23 -0600 Subject: [PATCH 110/370] -Updated MAVLink port --- config/shared/inc/sim_platform_cfg.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/shared/inc/sim_platform_cfg.h b/config/shared/inc/sim_platform_cfg.h index 3d459f06d..52b13c195 100644 --- a/config/shared/inc/sim_platform_cfg.h +++ b/config/shared/inc/sim_platform_cfg.h @@ -117,7 +117,7 @@ extern "C" { #define SIM_LISTENER_TASK_PRIORITY 50 #define SIM_MUTEX_NAME "SIM_MUTEX" #define SIMLIB_MUTEX_SEM_NAME "SIMLIB_MUTEX" -#define SIM_PORT (14560) +#define SIM_PORT (4560) #ifdef __cplusplus From 62757efec02209ae5a8f213d5eaf8f952e10c27d Mon Sep 17 00:00:00 2001 From: lorenzo-gomez-windhover Date: Thu, 18 Feb 2021 19:31:07 -0600 Subject: [PATCH 111/370] Updated auto-yamcs --- core/tools/auto-yamcs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/tools/auto-yamcs b/core/tools/auto-yamcs index b51d2b62f..a0009f1e1 160000 --- a/core/tools/auto-yamcs +++ b/core/tools/auto-yamcs @@ -1 +1 @@ -Subproject commit b51d2b62f7d960cbe82f01126f9b6a07d6efd4e3 +Subproject commit a0009f1e1a10a33695875bf584d2de4bce9776e0 From c001b032fa63d7d2d5f6259a467bec054ab8b4cb Mon Sep 17 00:00:00 2001 From: lorenzo-gomez-windhover Date: Fri, 19 Feb 2021 16:39:33 -0600 Subject: [PATCH 112/370] -Updated SIM App --- apps/sim/fsw/src/sim_app.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/apps/sim/fsw/src/sim_app.cpp b/apps/sim/fsw/src/sim_app.cpp index 19f2575b8..2eda11893 100644 --- a/apps/sim/fsw/src/sim_app.cpp +++ b/apps/sim/fsw/src/sim_app.cpp @@ -727,6 +727,7 @@ void SIM::ListenerTask(void) CFE_SB_TimeStampMsg((CFE_SB_Msg_t*)&SensorAccel); CFE_SB_SendMsg((CFE_SB_Msg_t*)&SensorAccel); #else + SIMLIB_SetAccel(decodedMsg.xacc, decodedMsg.yacc, decodedMsg.zacc); #endif #ifdef SIM_CHECK_UPDATED_FIELDS @@ -830,6 +831,7 @@ void SIM::ListenerTask(void) CFE_SB_SendMsg((CFE_SB_Msg_t*)&SensorBaro); #else SIMLIB_SetPressureAltitude(decodedMsg.pressure_alt); + #endif #ifdef SIM_CHECK_UPDATED_FIELDS } @@ -838,7 +840,7 @@ void SIM::ListenerTask(void) /* TODO sitl gazebo mavlink plugin needs to be updated * to set bit 12, TRUE set for now... */ #ifdef SIM_CHECK_UPDATED_FIELDS - if(decodedMsg.fields_updated & 0x00001000 || TRUE) + if(decodedMsg.fields_updated & 0x00000800) { #endif #ifdef SIM_PUBLISH_BARO @@ -855,7 +857,6 @@ void SIM::ListenerTask(void) SensorGyro.Temperature = decodedMsg.temperature; SensorGyro.TemperatureRaw = (int16)((SensorGyro.Temperature -21.0f) * 333.87f); #endif - SIMLIB_SetTemp(decodedMsg.temperature); #ifdef SIM_CHECK_UPDATED_FIELDS } From c12666b3f89d3150f2375eb97faf077c1914729c Mon Sep 17 00:00:00 2001 From: lorenzo-gomez-windhover Date: Fri, 19 Feb 2021 16:40:26 -0600 Subject: [PATCH 113/370] -Added update fields Macro to sim config --- config/shared/inc/sim_platform_cfg.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/shared/inc/sim_platform_cfg.h b/config/shared/inc/sim_platform_cfg.h index 52b13c195..c25f38e95 100644 --- a/config/shared/inc/sim_platform_cfg.h +++ b/config/shared/inc/sim_platform_cfg.h @@ -118,7 +118,7 @@ extern "C" { #define SIM_MUTEX_NAME "SIM_MUTEX" #define SIMLIB_MUTEX_SEM_NAME "SIMLIB_MUTEX" #define SIM_PORT (4560) - +#define SIM_CHECK_UPDATED_FIELDS 1 #ifdef __cplusplus } From 23632be9915cbcce044ba9958f6e022680d6a674 Mon Sep 17 00:00:00 2001 From: lorenzo-gomez-windhover Date: Fri, 19 Feb 2021 16:41:02 -0600 Subject: [PATCH 114/370] -Addedd PX$ Messages to TO --- config/shared/apps/to/tables/to_udp_cfg.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/config/shared/apps/to/tables/to_udp_cfg.c b/config/shared/apps/to/tables/to_udp_cfg.c index a018c2e9c..a411d1a03 100644 --- a/config/shared/apps/to/tables/to_udp_cfg.c +++ b/config/shared/apps/to/tables/to_udp_cfg.c @@ -175,12 +175,12 @@ TO_ChannelTbl_t TO_ConfigTbl = // {PX4_RC_PARAMETER_MAP_MID, 1, TO_PQUEUE_LOW_IDX}, {PX4_SAFETY_MID, 1, TO_PQUEUE_LOW_IDX}, // {PX4_SATELLITE_INFO_MID, 1, TO_PQUEUE_LOW_IDX}, -// {PX4_SENSOR_ACCEL_MID, 1, TO_PQUEUE_LOW_IDX}, -// {PX4_SENSOR_BARO_MID, 1, TO_PQUEUE_LOW_IDX}, -// {PX4_SENSOR_COMBINED_MID, 1, TO_PQUEUE_LOW_IDX}, - {PX4_SENSOR_CORRECTION_MID, 1, TO_PQUEUE_LOW_IDX}, -// {PX4_SENSOR_GYRO_MID, 1, TO_PQUEUE_LOW_IDX}, -// {PX4_SENSOR_MAG_MID, 1, TO_PQUEUE_LOW_IDX}, + {PX4_SENSOR_ACCEL_MID, 1, TO_PQUEUE_HIGH_IDX}, + {PX4_SENSOR_BARO_MID, 1, TO_PQUEUE_HIGH_IDX}, + {PX4_SENSOR_COMBINED_MID, 1, TO_PQUEUE_HIGH_IDX}, +// {PX4_SENSOR_CORRECTION_MID, 1, TO_PQUEUE_HIGH_IDX}, + {PX4_SENSOR_GYRO_MID, 1, TO_PQUEUE_HIGH_IDX}, + {PX4_SENSOR_MAG_MID, 1, TO_PQUEUE_HIGH_IDX}, // {PX4_SERVORAIL_STATUS_MID, 1, TO_PQUEUE_LOW_IDX}, {PX4_SUBSYSTEM_INFO_MID, 1, TO_PQUEUE_LOW_IDX}, {PX4_SYSTEM_POWER_MID, 1, TO_PQUEUE_LOW_IDX}, @@ -197,9 +197,9 @@ TO_ChannelTbl_t TO_ConfigTbl = // {PX4_VEHICLE_COMMAND_MID, 1, TO_PQUEUE_LOW_IDX}, // {PX4_VEHICLE_CONTROL_MODE_MID, 1, TO_PQUEUE_LOW_IDX}, // {PX4_VEHICLE_FORCE_SETPOINT_MID, 1, TO_PQUEUE_LOW_IDX}, - {PX4_VEHICLE_GLOBAL_POSITION_MID, 1, TO_PQUEUE_LOW_IDX}, + {PX4_VEHICLE_GLOBAL_POSITION_MID, 1, TO_PQUEUE_HIGH_IDX}, // {PX4_VEHICLE_GLOBAL_VELOCITY_SETPOINT_MID, 1, TO_PQUEUE_LOW_IDX}, -// {PX4_VEHICLE_GPS_POSITION_MID, 1, TO_PQUEUE_LOW_IDX}, + {PX4_VEHICLE_GPS_POSITION_MID, 1, TO_PQUEUE_HIGH_IDX}, {PX4_VEHICLE_LAND_DETECTED_MID, 1, TO_PQUEUE_LOW_IDX}, // {PX4_VEHICLE_LOCAL_POSITION_MID, 1, TO_PQUEUE_LOW_IDX}, // {PX4_VEHICLE_LOCAL_POSITION_SETPOINT_MID, 1, TO_PQUEUE_LOW_IDX}, From 66f27e005e8a64e270aa16a1c22e672cc41f7e5a Mon Sep 17 00:00:00 2001 From: lorenzo-gomez-windhover Date: Fri, 19 Feb 2021 16:42:20 -0600 Subject: [PATCH 115/370] -Switched gazeebo submodule to quad branch --- tools/sitl_gazebo | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/sitl_gazebo b/tools/sitl_gazebo index bebb9a95f..0ffc9f760 160000 --- a/tools/sitl_gazebo +++ b/tools/sitl_gazebo @@ -1 +1 @@ -Subproject commit bebb9a95f0b61bf9e4c3de345fab70985c1329b3 +Subproject commit 0ffc9f760381262c798f52102b4f616bf4421bde From ff25e9d1f795442b8c276cd132023f9bcf08e0cd Mon Sep 17 00:00:00 2001 From: lorenzo-gomez-windhover Date: Fri, 19 Feb 2021 17:42:21 -0600 Subject: [PATCH 116/370] -Updated port for jmavsim --- config/bebop2/sitl/host/start-jmavsim.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/bebop2/sitl/host/start-jmavsim.in b/config/bebop2/sitl/host/start-jmavsim.in index 90fc91a99..d8dc14b71 100755 --- a/config/bebop2/sitl/host/start-jmavsim.in +++ b/config/bebop2/sitl/host/start-jmavsim.in @@ -2,7 +2,7 @@ cd "@JMAVSIM_DIR@" -udp_port=14560 +udp_port=4560 extra_args= baudrate=921600 device= From e819cedd91029c52709ed39249ab3dad103561cb Mon Sep 17 00:00:00 2001 From: lorenzo-gomez-windhover Date: Mon, 22 Feb 2021 10:51:15 -0600 Subject: [PATCH 117/370] -jMAVSim as a submodule --- .gitmodules | 3 +++ tools/jMAVSim | 1 + 2 files changed, 4 insertions(+) create mode 160000 tools/jMAVSim diff --git a/.gitmodules b/.gitmodules index 29b8b187c..8c8c28871 100644 --- a/.gitmodules +++ b/.gitmodules @@ -13,3 +13,6 @@ [submodule "tools/mavlink/v2.0"] path = tools/mavlink/v2.0 url = https://github.com/mavlink/c_library_v2.git +[submodule "tools/jMAVSim"] + path = tools/jMAVSim + url = https://github.com/PX4/jMAVSim.git diff --git a/tools/jMAVSim b/tools/jMAVSim new file mode 160000 index 000000000..358b6cca4 --- /dev/null +++ b/tools/jMAVSim @@ -0,0 +1 @@ +Subproject commit 358b6cca4093646eb96e0cb075e45efa8f4a0c48 From 9b5e9e134d1c108267e00c48f5a421dada51800e Mon Sep 17 00:00:00 2001 From: lorenzo-gomez-windhover Date: Mon, 22 Feb 2021 10:52:58 -0600 Subject: [PATCH 118/370] -Added jMAVSim to build system --- config/bebop2/sitl/host/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/bebop2/sitl/host/CMakeLists.txt b/config/bebop2/sitl/host/CMakeLists.txt index db193ef61..60216af60 100644 --- a/config/bebop2/sitl/host/CMakeLists.txt +++ b/config/bebop2/sitl/host/CMakeLists.txt @@ -13,7 +13,7 @@ add_subdirectory(${PROJECT_SOURCE_DIR}/tools/sitl_gazebo gazebo) set(GAZEBO_PLUGIN_BUILD_DIR ${CMAKE_CURRENT_BINARY_DIR}/gazebo) set(GAZEBO_WORLDS_DIR ${PROJECT_SOURCE_DIR}/tools/sitl_gazebo/worlds) set(GAZEBO_MODELS_DIR ${PROJECT_SOURCE_DIR}/tools/sitl_gazebo/models) -#set(JMAVSIM_DIR ${PROJECT_SOURCE_DIR}/tools/jmavsim) +set(JMAVSIM_DIR ${PROJECT_SOURCE_DIR}/tools/jMAVSim) #target_include_directories(gazebo_gst_camera_plugin PRIVATE "/usr/include/gstreamer-1.0") #target_include_directories(gazebo_gst_camera_plugin PRIVATE "/usr/include/glib-2.0") #target_include_directories(gazebo_gst_camera_plugin PRIVATE "/usr/lib/x86_64-linux-gnu/glib-2.0/include") From 6aed75cd57a8de690b519e905c301f9249114fcd Mon Sep 17 00:00:00 2001 From: lorenzo-gomez-windhover Date: Mon, 22 Feb 2021 12:27:16 -0600 Subject: [PATCH 119/370] -Added enumerations to SIM app --- apps/sim/fsw/src/sim_app.cpp | 8 ++++---- apps/sim/fsw/src/sim_app.h | 14 ++++++++++++++ 2 files changed, 18 insertions(+), 4 deletions(-) diff --git a/apps/sim/fsw/src/sim_app.cpp b/apps/sim/fsw/src/sim_app.cpp index 2eda11893..98db57a5d 100644 --- a/apps/sim/fsw/src/sim_app.cpp +++ b/apps/sim/fsw/src/sim_app.cpp @@ -694,7 +694,7 @@ void SIM::ListenerTask(void) mavlink_msg_hil_sensor_decode(&msg, &decodedMsg); #ifdef SIM_CHECK_UPDATED_FIELDS - if(decodedMsg.fields_updated & 0x00000007) + if(decodedMsg.fields_updated & (uint32_t)SensorSource::ACCEL) { #endif #ifdef SIM_PUBLISH_ACCEL @@ -735,7 +735,7 @@ void SIM::ListenerTask(void) #endif #ifdef SIM_CHECK_UPDATED_FIELDS - if(decodedMsg.fields_updated & 0x00000038) + if(decodedMsg.fields_updated & (uint32_t)SensorSource::GYRO) { #endif #ifdef SIM_PUBLISH_GYRO @@ -773,7 +773,7 @@ void SIM::ListenerTask(void) #endif #ifdef SIM_CHECK_UPDATED_FIELDS - if(decodedMsg.fields_updated & 0x000001c0) + if(decodedMsg.fields_updated & (uint32_t)SensorSource::MAG) { #endif #ifdef SIM_PUBLISH_MAG @@ -819,7 +819,7 @@ void SIM::ListenerTask(void) #endif #ifdef SIM_CHECK_UPDATED_FIELDS - if(decodedMsg.fields_updated & 0x00001a00) + if(decodedMsg.fields_updated & (uint32_t)SensorSource::BARO) { #endif #ifdef SIM_PUBLISH_BARO diff --git a/apps/sim/fsw/src/sim_app.h b/apps/sim/fsw/src/sim_app.h index d7c402ed4..f789055e4 100644 --- a/apps/sim/fsw/src/sim_app.h +++ b/apps/sim/fsw/src/sim_app.h @@ -76,6 +76,20 @@ extern "C" { //#define NEW_SCALE_G_DIGIT 0.732e-3f //#define NEW_SCALE_GA_DIGIT 0.479e-3f +/** + * Enumeration to use on the bitmask in HIL_SENSOR. + * These enumerations were copied from airliner/tools/sitl_gazebo/include/gazebo_mavlink_interface.h. + * So please always double check these values after any updates. + */ +enum class SensorSource { + ACCEL = 0b111, + GYRO = 0b111000, + MAG = 0b111000000, + BARO = 0b1101000000000, + DIFF_PRESS = 0b10000000000, +}; + + /************************************************************************ ** Local Structure Definitions *************************************************************************/ From 390668a1f6017f0b0ed16b5e4c5d4d3bd75f6bb9 Mon Sep 17 00:00:00 2001 From: Casey Nalley Date: Mon, 22 Feb 2021 16:24:46 -0600 Subject: [PATCH 120/370] CPD initially building with SBN. --- apps/pq_lib/fsw/public_inc/pq_includes.h | 1 + apps/sbn/fsw/src/sbn_subs.c | 2 +- .../sbn/modules/mbox/fsw/src/mailbox_parser.c | 3 +- .../sbn/modules/mbox/fsw/src/sbn_mailbox_if.c | 56 +++++++++---------- .../sbn/modules/mbox/fsw/src/sbn_mailbox_if.h | 2 + config/obc/cpd/target/CMakeLists.txt | 7 +++ .../cpd/target/apps/pq_lib/tables/pq_cfg.c | 3 - .../ppd/target/apps/pq_lib/tables/pq_cfg.c | 3 - 8 files changed, 40 insertions(+), 37 deletions(-) diff --git a/apps/pq_lib/fsw/public_inc/pq_includes.h b/apps/pq_lib/fsw/public_inc/pq_includes.h index 605d29fa0..ad862756b 100644 --- a/apps/pq_lib/fsw/public_inc/pq_includes.h +++ b/apps/pq_lib/fsw/public_inc/pq_includes.h @@ -38,5 +38,6 @@ #include "pq_scheduler.h" #include "pq_channel.h" #include "pq_platform_cfg.h" +#include "pq_events.h" #endif diff --git a/apps/sbn/fsw/src/sbn_subs.c b/apps/sbn/fsw/src/sbn_subs.c index 4f1605564..7f9630449 100644 --- a/apps/sbn/fsw/src/sbn_subs.c +++ b/apps/sbn/fsw/src/sbn_subs.c @@ -21,7 +21,7 @@ #include "sbn_app.h" #include -#include +//#include #include "cfe_msgids.h" #include "sbn_pack.h" diff --git a/apps/sbn/modules/mbox/fsw/src/mailbox_parser.c b/apps/sbn/modules/mbox/fsw/src/mailbox_parser.c index e5ad9d4bd..42444fe75 100644 --- a/apps/sbn/modules/mbox/fsw/src/mailbox_parser.c +++ b/apps/sbn/modules/mbox/fsw/src/mailbox_parser.c @@ -1,7 +1,6 @@ -#include "sbn_uio_mailbox_if.h" +#include "sbn_mailbox_if.h" #include "mailbox_parser.h" - unsigned int ParseMessage(Mailbox_Parser_Handle_t *Handle, unsigned int Input, unsigned int* Buffer, unsigned int *BufferSize) { unsigned int sizeInWords = (*BufferSize+3)/4; diff --git a/apps/sbn/modules/mbox/fsw/src/sbn_mailbox_if.c b/apps/sbn/modules/mbox/fsw/src/sbn_mailbox_if.c index 9b7b3f2c6..50f1ac14f 100644 --- a/apps/sbn/modules/mbox/fsw/src/sbn_mailbox_if.c +++ b/apps/sbn/modules/mbox/fsw/src/sbn_mailbox_if.c @@ -1,7 +1,7 @@ #include "sbn_mailbox_if.h" #include "sbn_interfaces.h" #include "sbn_platform_cfg.h" - +#include "stdbool.h" extern PQ_ChannelTbl_t PQ_BackupConfigTbl; @@ -15,10 +15,10 @@ void SBN_PQ_ChannelHandler(PQ_ChannelData_t *Channel); int MailboxWrite(XMbox *instance, const unsigned int *buffer, unsigned int size) { int Status = 0; - unsigned int BytesSent = 0; + unsigned int BytesSent = size; /* TODO this busy waits */ - XMbox_WriteBlocking(instance, buffer, size, &BytesSent); + XMbox_WriteBlocking(instance, buffer, size); Status = BytesSent; end_of_function: @@ -57,9 +57,9 @@ static int InitNet(SBN_NetInterface_t *Net) { int Status = SBN_SUCCESS; - memset(&SBN_Mailbox_Data, 0x0, sizeof(SBN_UIO_Mailbox_Data)); + memset(&SBN_Mailbox_Data, 0x0, sizeof(SBN_Mailbox_Data)); - SBN_UIO_Mailbox_Data.HkTlm.ChannelMaxMem = PQ_NUM_BYTES_IN_MEM_POOL; + SBN_Mailbox_Data.HkTlm.ChannelMaxMem = PQ_NUM_BYTES_IN_MEM_POOL; SBN_Mailbox_Data.MboxConfigPtr = XMbox_LookupConfig(XPAR_SED_MBOX_MAILBOX_CPD_TO_SED_IF_1_DEVICE_ID); if (SBN_Mailbox_Data.MboxConfigPtr == (XMbox_Config *)NULL) @@ -81,7 +81,7 @@ static int InitNet(SBN_NetInterface_t *Net) /* Initialize PQ channel. */ - Status = PQ_Channel_Init(SBN_PQ_CHANNEL_NUMBER, &SBN_UIO_Mailbox_Data.Channel); + Status = PQ_Channel_Init(SBN_PQ_CHANNEL_NUMBER, &SBN_Mailbox_Data.Channel); if (Status != CFE_SUCCESS) { /* TODO update to event. */ @@ -92,7 +92,7 @@ static int InitNet(SBN_NetInterface_t *Net) /* Open PQ channel. */ Status = PQ_Channel_OpenChannel( - &SBN_UIO_Mailbox_Data.Channel, + &SBN_Mailbox_Data.Channel, SBN_PQ_CHANNEL_NAME, SBN_PQ_CONFIG_TABLENAME, SBN_PQ_CONFIG_TABLE_FILENAME, @@ -110,11 +110,11 @@ static int InitNet(SBN_NetInterface_t *Net) } /* Create send task. */ - SBN_UIO_Mailbox_Data.SendTask = SBN_PQ_Output_Task; + SBN_Mailbox_Data.SendTask = SBN_PQ_Output_Task; Status = CFE_ES_CreateChildTask( - &SBN_UIO_Mailbox_Data.ChildTaskID, + &SBN_Mailbox_Data.ChildTaskID, SBN_PQ_SEND_TASK_NAME, - SBN_UIO_Mailbox_Data.SendTask, + SBN_Mailbox_Data.SendTask, 0, SBN_PQ_SEND_TASK_STACK_SIZE, SBN_PQ_SEND_TASK_PRIORITY, @@ -167,7 +167,7 @@ void SBN_PQ_Output_Task(void) { CFE_ES_RegisterChildTask(); - SBN_PQ_ChannelHandler(&SBN_UIO_Mailbox_Data.Channel); + SBN_PQ_ChannelHandler(&SBN_Mailbox_Data.Channel); CFE_ES_ExitChildTask(); } @@ -179,9 +179,9 @@ void SBN_PQ_ChannelHandler(PQ_ChannelData_t *Channel) uint32 msgSize = 0; char *buffer; - SBN_UIO_Mailbox_Data.TaskContinueFlag = TRUE; + SBN_Mailbox_Data.TaskContinueFlag = TRUE; - while(SBN_UIO_Mailbox_Data.TaskContinueFlag) + while(SBN_Mailbox_Data.TaskContinueFlag) { if(PQ_Channel_State(Channel) == PQ_CHANNEL_OPENED) { @@ -236,23 +236,23 @@ void SBN_PQ_ChannelHandler(PQ_ChannelData_t *Channel) } /* Set CADU. */ - SBN_UIO_Mailbox_Data.OutputBuffer[0] = MAILBOX_MSG_CADU; + SBN_Mailbox_Data.OutputBuffer[0] = MAILBOX_MSG_CADU; /* Set size of the payload in words. */ - SBN_UIO_Mailbox_Data.OutputBuffer[1] = SizeInWords; + SBN_Mailbox_Data.OutputBuffer[1] = SizeInWords; /* Copy the payload. */ - memcpy(&SBN_UIO_Mailbox_Data.OutputBuffer[2], &Buf[0], BufSz); + memcpy(&SBN_Mailbox_Data.OutputBuffer[2], &Buf[0], BufSz); Checksum = 0; /* Checksum Calculation */ for(i = 0; i < SizeInWords - 1; ++i) { - Checksum += SBN_UIO_Mailbox_Data.OutputBuffer[i + 2]; + Checksum += SBN_Mailbox_Data.OutputBuffer[i + 2]; } /* Set the checksum. */ - SBN_UIO_Mailbox_Data.OutputBuffer[SizeInWords + 2] = Checksum; + SBN_Mailbox_Data.OutputBuffer[SizeInWords + 2] = Checksum; /* Blocking write. */ - (void) MailboxWrite(SBN_UIO_Mailbox_Data.Instance, &SBN_UIO_Mailbox_Data.OutputBuffer[0], SizeInWords + MAILBOX_HEADER_SIZE_WORDS); + (void) MailboxWrite(&SBN_Mailbox_Data.Mbox, &SBN_Mailbox_Data.OutputBuffer[0], SizeInWords + MAILBOX_HEADER_SIZE_WORDS); iStatus = CFE_ES_PutPoolBuf(Channel->MemPoolHandle, (uint32 *)buffer); if(iStatus < 0) @@ -304,7 +304,7 @@ static int Send(SBN_PeerInterface_t *Peer, SBN_MsgType_t MsgType, printf("MsgSz into queue %u\n", MsgSz); /* Push message onto the PQ */ - PQ_Channel_ProcessTelemetry(&SBN_UIO_Mailbox_Data.Channel, Payload); + PQ_Channel_ProcessTelemetry(&SBN_Mailbox_Data.Channel, Payload); end_of_function: return Status; @@ -318,21 +318,21 @@ static int Recv(SBN_NetInterface_t *Net, SBN_MsgType_t *MsgTypePtr, unsigned int i = 0; int ReturnValue = SBN_IF_EMPTY; - SizeRead = MailboxRead(SBN_UIO_Mailbox_Data.Instance, - &SBN_UIO_Mailbox_Data.InputBuffer[0], + SizeRead = MailboxRead(&SBN_Mailbox_Data.Mbox, + &SBN_Mailbox_Data.InputBuffer[0], MAILBOX_MAX_BUFFER_SIZE_WORDS); if(SizeRead > 0) { for(i = 0; i < SizeRead; ++i) { unsigned int Size = MAILBOX_MAX_BUFFER_SIZE_BYTES; - unsigned int Status = ParseMessage(&SBN_UIO_Mailbox_Data.Parser, - SBN_UIO_Mailbox_Data.InputBuffer[i], - &SBN_UIO_Mailbox_Data.ParserBuffer[0], + unsigned int Status = ParseMessage(&SBN_Mailbox_Data.Parser, + SBN_Mailbox_Data.InputBuffer[i], + &SBN_Mailbox_Data.ParserBuffer[0], &Size); if(Status == MPS_MESSAGE_COMPLETE) { - if (SBN_UnpackMsg(&SBN_UIO_Mailbox_Data.ParserBuffer[0], MsgSzPtr, MsgTypePtr, CpuIDPtr, Payload) == false) + if (SBN_UnpackMsg(&SBN_Mailbox_Data.ParserBuffer[0], MsgSzPtr, MsgTypePtr, CpuIDPtr, Payload) == false) { OS_printf("Unpack failed.\n"); ReturnValue = SBN_ERROR; @@ -354,7 +354,7 @@ static int Recv(SBN_NetInterface_t *Net, SBN_MsgType_t *MsgTypePtr, static int ReportModuleStatus(SBN_ModuleStatusPacket_t *Packet) { - PQ_Channel_CopyStats(&SBN_UIO_Mailbox_Data.HkTlm, &SBN_UIO_Mailbox_Data.Channel); + PQ_Channel_CopyStats(&SBN_Mailbox_Data.HkTlm, &SBN_Mailbox_Data.Channel); CFE_SB_InitMsg(&SBN_Mailbox_Data.HkTlm, SBN_MODULE_HK_MID, sizeof(SBN_Mailbox_Data.HkTlm), FALSE); @@ -383,7 +383,7 @@ static int UnloadPeer(SBN_PeerInterface_t *Peer) } -SBN_IfOps_t SBN_UIO_Mbox_Ops = +SBN_IfOps_t SBN_Mbox_Ops = { LoadNet, LoadPeer, diff --git a/apps/sbn/modules/mbox/fsw/src/sbn_mailbox_if.h b/apps/sbn/modules/mbox/fsw/src/sbn_mailbox_if.h index 9e8c8c958..c011677c1 100644 --- a/apps/sbn/modules/mbox/fsw/src/sbn_mailbox_if.h +++ b/apps/sbn/modules/mbox/fsw/src/sbn_mailbox_if.h @@ -3,6 +3,8 @@ #include "mailbox_parser.h" #include "xmbox.h" +#include "pq_includes.h" + #define MAILBOX_HEADER_SIZE_BYTES (12) #define MAILBOX_WORD_SIZE (4) diff --git a/config/obc/cpd/target/CMakeLists.txt b/config/obc/cpd/target/CMakeLists.txt index 798ecaeba..71cf9c041 100644 --- a/config/obc/cpd/target/CMakeLists.txt +++ b/config/obc/cpd/target/CMakeLists.txt @@ -26,6 +26,13 @@ buildliner_add_app( DEFINITION ${PROJECT_SOURCE_DIR}/apps/cfs_lib/fsw/for_build ) +buildliner_add_app( + pq_lib + DEFINITION ${PROJECT_SOURCE_DIR}/apps/pq_lib/fsw/for_build + # TODO move this table build to sbn module? + CONFIG ${CMAKE_CURRENT_SOURCE_DIR}/apps/pq_lib +) + # This is temporarily removed until we can remove the OS dependency # in px4lib, i.e. "CLOCK_MONOTONIC" #buildliner_add_app( diff --git a/config/obc/cpd/target/apps/pq_lib/tables/pq_cfg.c b/config/obc/cpd/target/apps/pq_lib/tables/pq_cfg.c index f20daa3ea..989c7f90f 100644 --- a/config/obc/cpd/target/apps/pq_lib/tables/pq_cfg.c +++ b/config/obc/cpd/target/apps/pq_lib/tables/pq_cfg.c @@ -70,7 +70,6 @@ PQ_ChannelTbl_t PQ_ConfigTbl = {EA_HK_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, {VC_HK_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, {GPS_HK_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, - {MAVLINK_HK_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, {CFE_ES_HK_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, {CFE_EVS_HK_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, {CFE_SB_HK_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, @@ -103,8 +102,6 @@ PQ_ChannelTbl_t PQ_ConfigTbl = {SCH_HK_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, {SCH_DIAG_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, {QAE_HK_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, - {FLOW_HK_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, - {FLOW_DIAG_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, {MPC_DIAG_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, {LD_DIAG_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, {PRM_HK_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, diff --git a/config/obc/ppd/target/apps/pq_lib/tables/pq_cfg.c b/config/obc/ppd/target/apps/pq_lib/tables/pq_cfg.c index f20daa3ea..989c7f90f 100644 --- a/config/obc/ppd/target/apps/pq_lib/tables/pq_cfg.c +++ b/config/obc/ppd/target/apps/pq_lib/tables/pq_cfg.c @@ -70,7 +70,6 @@ PQ_ChannelTbl_t PQ_ConfigTbl = {EA_HK_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, {VC_HK_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, {GPS_HK_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, - {MAVLINK_HK_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, {CFE_ES_HK_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, {CFE_EVS_HK_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, {CFE_SB_HK_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, @@ -103,8 +102,6 @@ PQ_ChannelTbl_t PQ_ConfigTbl = {SCH_HK_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, {SCH_DIAG_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, {QAE_HK_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, - {FLOW_HK_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, - {FLOW_DIAG_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, {MPC_DIAG_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, {LD_DIAG_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, {PRM_HK_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, From 83cde2aabd7bedd662b7b47b76f07d5f499bb679 Mon Sep 17 00:00:00 2001 From: lorenzo-gomez-windhover Date: Mon, 22 Feb 2021 16:58:13 -0600 Subject: [PATCH 121/370] -jMAVSim points to WindhoverLabs fork now --- .gitmodules | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitmodules b/.gitmodules index 8c8c28871..8981e1ffa 100644 --- a/.gitmodules +++ b/.gitmodules @@ -15,4 +15,4 @@ url = https://github.com/mavlink/c_library_v2.git [submodule "tools/jMAVSim"] path = tools/jMAVSim - url = https://github.com/PX4/jMAVSim.git + url = https://github.com/WindhoverLabs/jMAVSim.git From 7bb4927b65355cd737dae2e195622a3198d1e444 Mon Sep 17 00:00:00 2001 From: Casey Nalley Date: Mon, 22 Feb 2021 17:01:54 -0600 Subject: [PATCH 122/370] Copy sbn flat file tables. Add COPY arg to buildliner build table. --- config/obc/cpd/target/apps/sbn/CMakeLists.txt | 10 ++++++ .../apps/sbn/tables/mbox/SbnModuleData.dat | 2 +- config/obc/ppd/target/apps/sbn/CMakeLists.txt | 10 ++++++ core/base/psp/make/build-functions.cmake | 34 +++++++++++-------- 4 files changed, 41 insertions(+), 15 deletions(-) diff --git a/config/obc/cpd/target/apps/sbn/CMakeLists.txt b/config/obc/cpd/target/apps/sbn/CMakeLists.txt index 044cfcec4..382a241b3 100644 --- a/config/obc/cpd/target/apps/sbn/CMakeLists.txt +++ b/config/obc/cpd/target/apps/sbn/CMakeLists.txt @@ -1 +1,11 @@ set(APP_NAME sbn) + +buildliner_add_table( + ${APP_NAME} + COPY ${CMAKE_CURRENT_SOURCE_DIR}/tables/mbox/SbnModuleData.dat +) + +buildliner_add_table( + ${APP_NAME} + COPY ${CMAKE_CURRENT_SOURCE_DIR}/tables/mbox/SbnPeerData.dat +) diff --git a/config/obc/cpd/target/apps/sbn/tables/mbox/SbnModuleData.dat b/config/obc/cpd/target/apps/sbn/tables/mbox/SbnModuleData.dat index f2bdc9ddd..16937ee46 100644 --- a/config/obc/cpd/target/apps/sbn/tables/mbox/SbnModuleData.dat +++ b/config/obc/cpd/target/apps/sbn/tables/mbox/SbnModuleData.dat @@ -1,4 +1,4 @@ -5, UIO_MBOX, /cf/apps/sbn_mbox.so, SBN_Mbox_Ops; +5, MBOX, /cf/apps/sbn_mbox.so, SBN_Mbox_Ops; ! ! Format: ProtocolId, ModuleLocation, IFStructName diff --git a/config/obc/ppd/target/apps/sbn/CMakeLists.txt b/config/obc/ppd/target/apps/sbn/CMakeLists.txt index 044cfcec4..f6cee4575 100644 --- a/config/obc/ppd/target/apps/sbn/CMakeLists.txt +++ b/config/obc/ppd/target/apps/sbn/CMakeLists.txt @@ -1 +1,11 @@ set(APP_NAME sbn) + +buildliner_add_table( + ${APP_NAME} + COPY ${CMAKE_CURRENT_SOURCE_DIR}/tables/uio_mbox/SbnModuleData.dat +) + +buildliner_add_table( + ${APP_NAME} + COPY ${CMAKE_CURRENT_SOURCE_DIR}/tables/uio_mbox/SbnPeerData.dat +) diff --git a/core/base/psp/make/build-functions.cmake b/core/base/psp/make/build-functions.cmake index 21b4c718a..b13546b18 100644 --- a/core/base/psp/make/build-functions.cmake +++ b/core/base/psp/make/build-functions.cmake @@ -886,23 +886,29 @@ endfunction(psp_get_app_cflags OUTPUT_LIST INPUT_FLAGS) function(psp_buildliner_add_table) set(PARSED_ARGS_TARGET ${ARGV0}) - cmake_parse_arguments(PARSED_ARGS "" "NAME" "SOURCES;INCLUDES" ${ARGN}) + cmake_parse_arguments(PARSED_ARGS "" "NAME" "SOURCES;INCLUDES;COPY" ${ARGN}) psp_get_app_cflags(${PARSED_ARGS_TARGET} TBL_CFLAGS ${CMAKE_C_FLAGS}) - add_custom_command( - OUTPUT ${PARSED_ARGS_NAME}.tbl - COMMAND ${CMAKE_C_COMPILER} ${TBL_CFLAGS} -c -o ${PARSED_ARGS_NAME}.o ${PARSED_ARGS_SOURCES} - COMMAND ${ELF2CFETBL_BIN}/elf2cfetbl ${PARSED_ARGS_NAME}.o - COMMAND cp ${PARSED_ARGS_NAME}.tbl ${INSTALL_DIR} - BYPRODUCTS ${PARSED_ARGS_NAME}.tbl - DEPENDS ${PARSED_ARGS_SOURCES} - ) - add_custom_target(${PARSED_ARGS_NAME} ALL - DEPENDS ${PARSED_ARGS_NAME}.tbl ${PARSED_ARGS_SOURCES} - ) - - add_dependencies(build-file-system ${PARSED_ARGS_NAME}) + if(PARSED_ARGS_NAME AND PARSED_ARGS_SOURCES) + add_custom_command( + OUTPUT ${PARSED_ARGS_NAME}.tbl + COMMAND ${CMAKE_C_COMPILER} ${TBL_CFLAGS} -c -o ${PARSED_ARGS_NAME}.o ${PARSED_ARGS_SOURCES} + COMMAND ${ELF2CFETBL_BIN}/elf2cfetbl ${PARSED_ARGS_NAME}.o + COMMAND cp ${PARSED_ARGS_NAME}.tbl ${INSTALL_DIR} + BYPRODUCTS ${PARSED_ARGS_NAME}.tbl + DEPENDS ${PARSED_ARGS_SOURCES} + ) + add_custom_target(${PARSED_ARGS_NAME} ALL + DEPENDS ${PARSED_ARGS_NAME}.tbl ${PARSED_ARGS_SOURCES} + ) + add_dependencies(build-file-system ${PARSED_ARGS_NAME}) + endif() + + # Copy any files + if(PARSED_ARGS_COPY) + file(COPY ${PARSED_ARGS_COPY} DESTINATION ${INSTALL_DIR}) + endif() endfunction(psp_buildliner_add_table) From aef02b1eefafe9f1b032a29b3369efa2450c781a Mon Sep 17 00:00:00 2001 From: lorenzo-gomez-windhover Date: Mon, 22 Feb 2021 17:27:24 -0600 Subject: [PATCH 123/370] -jMAVSim has been configured to use TCP --- config/bebop2/sitl/host/start-jmavsim.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/bebop2/sitl/host/start-jmavsim.in b/config/bebop2/sitl/host/start-jmavsim.in index d8dc14b71..9396eeba3 100755 --- a/config/bebop2/sitl/host/start-jmavsim.in +++ b/config/bebop2/sitl/host/start-jmavsim.in @@ -35,7 +35,7 @@ while getopts ":b:d:p:qr:i:" opt; do done if [ "$device" == "" ]; then - device="-udp $ip:$udp_port" + device="-tcp $ip:$udp_port" else device="-serial $device $baudrate" fi From c369bae43b8365374d03c1de45f608ab6875e9b9 Mon Sep 17 00:00:00 2001 From: Casey Nalley Date: Mon, 22 Feb 2021 17:46:40 -0600 Subject: [PATCH 124/370] Update mbox write to prevent busy wait. --- .../sbn/modules/mbox/fsw/src/sbn_mailbox_if.c | 26 +++++++++++++++---- 1 file changed, 21 insertions(+), 5 deletions(-) diff --git a/apps/sbn/modules/mbox/fsw/src/sbn_mailbox_if.c b/apps/sbn/modules/mbox/fsw/src/sbn_mailbox_if.c index 50f1ac14f..d112a1a0e 100644 --- a/apps/sbn/modules/mbox/fsw/src/sbn_mailbox_if.c +++ b/apps/sbn/modules/mbox/fsw/src/sbn_mailbox_if.c @@ -14,13 +14,29 @@ void SBN_PQ_ChannelHandler(PQ_ChannelData_t *Channel); /* Blocking write */ int MailboxWrite(XMbox *instance, const unsigned int *buffer, unsigned int size) { - int Status = 0; - unsigned int BytesSent = size; + int Status = 0; + unsigned int BytesSent = 0; + unsigned int TotalBytesSent = 0; + unsigned int RequestedBytes = size; - /* TODO this busy waits */ - XMbox_WriteBlocking(instance, buffer, size); - Status = BytesSent; + while(1) + { + XMbox_Write(instance, buffer[TotalBytesSent], RequestedBytes, &BytesSent); + RequestedBytes = RequestedBytes - BytesSent; + TotalBytesSent = TotalBytesSent + BytesSent; + if(TotalBytesSent < size) + { + /* Sleep */ + OS_TaskDelay(SBN_MAILBOX_BLOCKING_DELAY); + } + else + { + break; + } + } + Status = TotalBytesSent; + end_of_function: return Status; } From 23d31cb5eb6d7c66a7fa53b6da1c2f3c85115bc3 Mon Sep 17 00:00:00 2001 From: Mathew Benson Date: Tue, 23 Feb 2021 11:22:18 -0600 Subject: [PATCH 125/370] Removed timestamp from some of the px4 messages. --- apps/px4lib/fsw/public_inc/px4_msgs.h | 1263 +++++++++++-------------- apps/px4lib/fsw/src/px4lib.cpp | 81 +- 2 files changed, 593 insertions(+), 751 deletions(-) diff --git a/apps/px4lib/fsw/public_inc/px4_msgs.h b/apps/px4lib/fsw/public_inc/px4_msgs.h index 0ad47adaf..7a6c98587 100644 --- a/apps/px4lib/fsw/public_inc/px4_msgs.h +++ b/apps/px4lib/fsw/public_inc/px4_msgs.h @@ -36,696 +36,641 @@ #include "cfe.h" -#define PX4_ACTUATOR_DIRECT_MAX 16 -#define PX4_ACTUATOR_OUTPUTS_MAX 16 -#define PX4_ACTUATOR_OUTPUTS_GROUP_MAX 4 -#define PX4_ADC_CHANNEL_MAX 8 -#define PX4_ESC_CONNECTED_ESC_MAX 8 -#define PX4_ESTIMATOR_STATES_MAX 32 -#define PX4_ESTIMATOR_VIBE_MAX 3 -#define PX4_ESTIMATOR_COVARIANCES_MAX 28 -#define PX4_FENCE_MAX_VERTICES 16 -#define PX4_GPS_DUMP_DATA_MAX 79 -#define PX4_GPS_INJECT_DATA_MAX 182 -#define PX4_RC_INPUT_MAX_CHANNELS 18 -#define PX4_PWM_OUTPUT_MAX_CHANNELS 16 -#define PX4_QSHELL_REQ_MAX_STRLEN 100 -#define PX4_RC_PARAM_MAP_NCHAN 3 -#define PX4_RC_PARAM_MAP_ID_LEN 51 -#define PX4_SAT_INFO_MAX_SATELLITES 20 -#define PX4_NUM_MOTOR_OUTPUTS 8 -#define PX4_ADSB_CALLSIGN_LEN 8 -#define PX4_OPTICAL_FLOW_FRAME_SIZE 4096 - -#define PX4_RELATIVE_TIMESTAMP_INVALID 0x7fffffff +#define PX4_ACTUATOR_DIRECT_MAX ( 16 ) +#define PX4_ACTUATOR_OUTPUTS_MAX ( 16 ) +#define PX4_ACTUATOR_OUTPUTS_GROUP_MAX ( 4 ) +#define PX4_ADC_CHANNEL_MAX ( 8 ) +#define PX4_ESC_CONNECTED_ESC_MAX ( 8 ) +#define PX4_ESTIMATOR_STATES_MAX ( 32 ) +#define PX4_ESTIMATOR_VIBE_MAX ( 3 ) +#define PX4_ESTIMATOR_COVARIANCES_MAX ( 28 ) +#define PX4_FENCE_MAX_VERTICES ( 16 ) +#define PX4_GPS_DUMP_DATA_MAX ( 79 ) +#define PX4_GPS_INJECT_DATA_MAX ( 182 ) +#define PX4_RC_INPUT_MAX_CHANNELS ( 18 ) +#define PX4_PWM_OUTPUT_MAX_CHANNELS ( 16 ) +#define PX4_QSHELL_REQ_MAX_STRLEN ( 100 ) +#define PX4_RC_PARAM_MAP_NCHAN ( 3 ) +#define PX4_RC_PARAM_MAP_ID_LEN ( 51 ) +#define PX4_SAT_INFO_MAX_SATELLITES ( 20 ) +#define PX4_NUM_MOTOR_OUTPUTS ( 8 ) +#define PX4_ADSB_CALLSIGN_LEN ( 8 ) +#define PX4_OPTICAL_FLOW_FRAME_SIZE ( 4096 ) typedef enum { - PX4_GPS_NONE0_FIX = 0, - PX4_GPS_NONE1_FIX = 1, - PX4_GPS_2D_FIX = 2, - PX4_GPS_3D_FIX = 3, - PX4_GPS_DGPS_FIX = 4, - PX4_GPS_RTK_FIX = 5 + PX4_GPS_NONE0_FIX = 0, + PX4_GPS_NONE1_FIX = 1, + PX4_GPS_2D_FIX = 2, + PX4_GPS_3D_FIX = 3, + PX4_GPS_DGPS_FIX = 4, + PX4_GPS_RTK_FIX = 5 } PX4_GpsFixType_t; typedef enum { - PX4_DISTANCE_SENSOR_LASER = 0, - PX4_DISTANCE_SENSOR_ULTRASOUND = 1, - PX4_DISTANCE_SENSOR_INFRARED = 2, - PX4_DISTANCE_SENSOR_RADAR = 3 + PX4_DISTANCE_SENSOR_LASER = 0, + PX4_DISTANCE_SENSOR_ULTRASOUND = 1, + PX4_DISTANCE_SENSOR_INFRARED = 2, + PX4_DISTANCE_SENSOR_RADAR = 3 } PX4_DistanceSensorType_t; typedef enum { - PX4_ACTUATOR_CONTROL_ROLL = 0, - PX4_ACTUATOR_CONTROL_PITCH = 1, - PX4_ACTUATOR_CONTROL_YAW = 2, - PX4_ACTUATOR_CONTROL_THROTTLE = 3, - PX4_ACTUATOR_CONTROL_FLAPS = 4, - PX4_ACTUATOR_CONTROL_SPOILERS = 5, - PX4_ACTUATOR_CONTROL_AIRBRAKES = 6, - PX4_ACTUATOR_CONTROL_LANDING_GEAR = 7, - PX4_ACTUATOR_CONTROL_COUNT = 8 + PX4_ACTUATOR_CONTROL_ROLL = 0, + PX4_ACTUATOR_CONTROL_PITCH = 1, + PX4_ACTUATOR_CONTROL_YAW = 2, + PX4_ACTUATOR_CONTROL_THROTTLE = 3, + PX4_ACTUATOR_CONTROL_FLAPS = 4, + PX4_ACTUATOR_CONTROL_SPOILERS = 5, + PX4_ACTUATOR_CONTROL_AIRBRAKES = 6, + PX4_ACTUATOR_CONTROL_LANDING_GEAR = 7, + PX4_ACTUATOR_CONTROL_COUNT = 8 } PX4_ActuatorControlIndex_t; typedef enum { - PX4_ACTUATOR_CONTROL_GROUP_ATTITUDE = 0, - PX4_ACTUATOR_CONTROL_GROUP_ATTITUDE_ALTERNATE = 1, - PX4_ACTUATOR_CONTROL_GROUP_COUNT = 4 + PX4_ACTUATOR_CONTROL_GROUP_ATTITUDE = 0, + PX4_ACTUATOR_CONTROL_GROUP_ATTITUDE_ALTERNATE = 1, + PX4_ACTUATOR_CONTROL_GROUP_COUNT = 4 } PX4_ActuatorControlGroupIndex_t; typedef enum { - PX4_BATTERY_WARNING_NONE = 0, - PX4_BATTERY_WARNING_LOW = 1, - PX4_BATTERY_WARNING_CRITICAL = 2, - PX4_BATTERY_WARNING_EMERGENCY = 3 + PX4_BATTERY_WARNING_NONE = 0, + PX4_BATTERY_WARNING_LOW = 1, + PX4_BATTERY_WARNING_CRITICAL = 2, + PX4_BATTERY_WARNING_EMERGENCY = 3 } PX4_BatteryWarningSeverity_t; typedef enum { - PX4_COMMANDER_MAIN_STATE_MANUAL = 0, - PX4_COMMANDER_MAIN_STATE_ALTCTL = 1, - PX4_COMMANDER_MAIN_STATE_POSCTL = 2, - PX4_COMMANDER_MAIN_STATE_AUTO_MISSION = 3, - PX4_COMMANDER_MAIN_STATE_AUTO_LOITER = 4, - PX4_COMMANDER_MAIN_STATE_AUTO_RTL = 5, - PX4_COMMANDER_MAIN_STATE_ACRO = 6, - PX4_COMMANDER_MAIN_STATE_OFFBOARD = 7, - PX4_COMMANDER_MAIN_STATE_STAB = 8, - PX4_COMMANDER_MAIN_STATE_RATTITUDE = 9, - PX4_COMMANDER_MAIN_STATE_AUTO_TAKEOFF = 10, - PX4_COMMANDER_MAIN_STATE_AUTO_LAND = 11, - PX4_COMMANDER_MAIN_STATE_AUTO_FOLLOW_TARGET = 12, - PX4_COMMANDER_MAIN_STATE_AUTO_PRECLAND = 13, - PX4_COMMANDER_MAIN_STATE_DESCEND = 14, - PX4_COMMANDER_MAIN_STATE_TERMINATION = 15, - PX4_COMMANDER_MAIN_STATE_AUTO_OFFBOARD = 16, - PX4_COMMANDER_MAIN_STATE_AUTO_RTGS = 17, - PX4_COMMANDER_MAIN_STATE_AUTO_RATTITUDE = 18, - PX4_COMMANDER_MAIN_STATE_AUTO_LANDENGFAIL = 19, - PX4_COMMANDER_MAIN_STATE_AUTO_LANDGPSFAIL = 20, - PX4_COMMANDER_MAIN_STATE_AUTO_RCRECOVER = 21, - PX4_COMMANDER_MAIN_STATE_MAX = 22 + PX4_COMMANDER_MAIN_STATE_MANUAL = 0, + PX4_COMMANDER_MAIN_STATE_ALTCTL = 1, + PX4_COMMANDER_MAIN_STATE_POSCTL = 2, + PX4_COMMANDER_MAIN_STATE_AUTO_MISSION = 3, + PX4_COMMANDER_MAIN_STATE_AUTO_LOITER = 4, + PX4_COMMANDER_MAIN_STATE_AUTO_RTL = 5, + PX4_COMMANDER_MAIN_STATE_ACRO = 6, + PX4_COMMANDER_MAIN_STATE_OFFBOARD = 7, + PX4_COMMANDER_MAIN_STATE_STAB = 8, + PX4_COMMANDER_MAIN_STATE_RATTITUDE = 9, + PX4_COMMANDER_MAIN_STATE_AUTO_TAKEOFF = 10, + PX4_COMMANDER_MAIN_STATE_AUTO_LAND = 11, + PX4_COMMANDER_MAIN_STATE_AUTO_FOLLOW_TARGET = 12, + PX4_COMMANDER_MAIN_STATE_AUTO_PRECLAND = 13, + PX4_COMMANDER_MAIN_STATE_DESCEND = 14, + PX4_COMMANDER_MAIN_STATE_TERMINATION = 15, + PX4_COMMANDER_MAIN_STATE_AUTO_OFFBOARD = 16, + PX4_COMMANDER_MAIN_STATE_AUTO_RTGS = 17, + PX4_COMMANDER_MAIN_STATE_AUTO_RATTITUDE = 18, + PX4_COMMANDER_MAIN_STATE_AUTO_LANDENGFAIL = 19, + PX4_COMMANDER_MAIN_STATE_AUTO_LANDGPSFAIL = 20, + PX4_COMMANDER_MAIN_STATE_AUTO_RCRECOVER = 21, + PX4_COMMANDER_MAIN_STATE_MAX = 22 } PX4_CommanderMainState_t; typedef enum { - PX4_AIRSPEED_MODE_MEAS = 0, - PX4_AIRSPEED_MODE_EST = 1, - PX4_AIRSPEED_MODE_DISABLED = 2 + PX4_AIRSPEED_MODE_MEAS = 0, + PX4_AIRSPEED_MODE_EST = 1, + PX4_AIRSPEED_MODE_DISABLED = 2 } PX4_AirspeedMode_t; typedef enum { - PX4_ESC_VENDOR_GENERIC = 0, - PX4_ESC_VENDOR_MIKROKOPTER = 1, - PX4_ESC_VENDOR_GRAUPNER_HOTT = 2, - PX4_ESC_VENDOR_TAP = 3, + PX4_ESC_VENDOR_GENERIC = 0, + PX4_ESC_VENDOR_MIKROKOPTER = 1, + PX4_ESC_VENDOR_GRAUPNER_HOTT = 2, + PX4_ESC_VENDOR_TAP = 3 } PX4_EscVendor_t; typedef enum { - PX4_ESC_CONNECTION_TYPE_PPM = 0, - PX4_ESC_CONNECTION_TYPE_SERIAL = 1, - PX4_ESC_CONNECTION_TYPE_ONESHOOT = 2, - PX4_ESC_CONNECTION_TYPE_I2C = 3, - PX4_ESC_CONNECTION_TYPE_CAN = 4 + PX4_ESC_CONNECTION_TYPE_PPM = 0, + PX4_ESC_CONNECTION_TYPE_SERIAL = 1, + PX4_ESC_CONNECTION_TYPE_ONESHOOT = 2, + PX4_ESC_CONNECTION_TYPE_I2C = 3, + PX4_ESC_CONNECTION_TYPE_CAN = 4 } PX4_EscConnectionType_t; typedef enum { - PX4_GEOFENCE_ACTION_NONE = 0, - PX4_GEOFENCE_ACTION_WARN = 1, - PX4_GEOFENCE_ACTION_LOITER = 2, - PX4_GEOFENCE_ACTION_RTL = 3, - PX4_GEOFENCE_ACTION_TERMINATE = 4 + PX4_GEOFENCE_ACTION_NONE = 0, + PX4_GEOFENCE_ACTION_WARN = 1, + PX4_GEOFENCE_ACTION_LOITER = 2, + PX4_GEOFENCE_ACTION_RTL = 3, + PX4_GEOFENCE_ACTION_TERMINATE = 4 } PX4_GeofenceAction_t; typedef enum { - PX4_MAGNETOMETER_MODE_NORMAL = 0, - PX4_MAGNETOMETER_MODE_POSITIVE_BIAS = 1, - PX4_MAGNETOMETER_MODE_NEGATIVE_BIAS = 2 + PX4_MAGNETOMETER_MODE_NORMAL = 0, + PX4_MAGNETOMETER_MODE_POSITIVE_BIAS = 1, + PX4_MAGNETOMETER_MODE_NEGATIVE_BIAS = 2 } PX4_MagnetometerMode_t; typedef enum { - PX4_RC_INPUT_SOURCE_UNKNOWN = 0, - PX4_RC_INPUT_SOURCE_PX4FMU_PPM = 1, - PX4_RC_INPUT_SOURCE_PX4IO_PPM = 2, - PX4_RC_INPUT_SOURCE_PX4IO_SPEKTRUM = 3, - PX4_RC_INPUT_SOURCE_PX4IO_SBUS = 4, - PX4_RC_INPUT_SOURCE_PX4IO_ST24 = 5, - PX4_RC_INPUT_SOURCE_MAVLINK = 6, - PX4_RC_INPUT_SOURCE_QURT = 7, - PX4_RC_INPUT_SOURCE_PX4FMU_SPEKTRUM = 8, - PX4_RC_INPUT_SOURCE_PX4FMU_SBUS = 9, - PX4_RC_INPUT_SOURCE_PX4FMU_ST24 = 10, - PX4_RC_INPUT_SOURCE_PX4FMU_SUMD = 11, - PX4_RC_INPUT_SOURCE_PX4FMU_DSM = 12, - PX4_RC_INPUT_SOURCE_PX4IO_SUMD = 13 + PX4_RC_INPUT_SOURCE_UNKNOWN = 0, + PX4_RC_INPUT_SOURCE_PX4FMU_PPM = 1, + PX4_RC_INPUT_SOURCE_PX4IO_PPM = 2, + PX4_RC_INPUT_SOURCE_PX4IO_SPEKTRUM = 3, + PX4_RC_INPUT_SOURCE_PX4IO_SBUS = 4, + PX4_RC_INPUT_SOURCE_PX4IO_ST24 = 5, + PX4_RC_INPUT_SOURCE_MAVLINK = 6, + PX4_RC_INPUT_SOURCE_QURT = 7, + PX4_RC_INPUT_SOURCE_PX4FMU_SPEKTRUM = 8, + PX4_RC_INPUT_SOURCE_PX4FMU_SBUS = 9, + PX4_RC_INPUT_SOURCE_PX4FMU_ST24 = 10, + PX4_RC_INPUT_SOURCE_PX4FMU_SUMD = 11, + PX4_RC_INPUT_SOURCE_PX4FMU_DSM = 12, + PX4_RC_INPUT_SOURCE_PX4IO_SUMD = 13 } PX4_RcInputSource_t; typedef enum { - PX4_SWITCH_POS_NONE = 0, - PX4_SWITCH_POS_ON = 1, - PX4_SWITCH_POS_MIDDLE = 2, - PX4_SWITCH_POS_OFF = 3 + PX4_SWITCH_POS_NONE = 0, + PX4_SWITCH_POS_ON = 1, + PX4_SWITCH_POS_MIDDLE = 2, + PX4_SWITCH_POS_OFF = 3 } PX4_SwitchPos_t; typedef enum { - PX4_MANUAL_CONTROL_SOURCE_RC = 1, - PX4_MANUAL_CONTROL_SOURCE_MAVLINK_0 = 2, - PX4_MANUAL_CONTROL_SOURCE_MAVLINK_1 = 3, - PX4_MANUAL_CONTROL_SOURCE_MAVLINK_2 = 4, - PX4_MANUAL_CONTROL_SOURCE_MAVLINK_3 = 5 + PX4_MANUAL_CONTROL_SOURCE_RC = 1, + PX4_MANUAL_CONTROL_SOURCE_MAVLINK_0 = 2, + PX4_MANUAL_CONTROL_SOURCE_MAVLINK_1 = 3, + PX4_MANUAL_CONTROL_SOURCE_MAVLINK_2 = 4, + PX4_MANUAL_CONTROL_SOURCE_MAVLINK_3 = 5 } PX4_ManualControlDataSource_t; typedef enum { - PX4_MODE_SLOT_NONE = -1, - PX4_MODE_SLOT_1 = 0, - PX4_MODE_SLOT_2 = 1, - PX4_MODE_SLOT_3 = 2, - PX4_MODE_SLOT_4 = 3, - PX4_MODE_SLOT_5 = 4, - PX4_MODE_SLOT_6 = 5, - PX4_MODE_SLOT_MAX = 6 + PX4_MODE_SLOT_NONE = -1, + PX4_MODE_SLOT_1 = 0, + PX4_MODE_SLOT_2 = 1, + PX4_MODE_SLOT_3 = 2, + PX4_MODE_SLOT_4 = 3, + PX4_MODE_SLOT_5 = 4, + PX4_MODE_SLOT_6 = 5, + PX4_MODE_SLOT_MAX = 6 } PX4_ModeSlot_t; typedef enum { - PX4_SETPOINT_TYPE_POSITION = 0, - PX4_SETPOINT_TYPE_VELOCITY = 1, - PX4_SETPOINT_TYPE_LOITER = 2, - PX4_SETPOINT_TYPE_TAKEOFF = 3, - PX4_SETPOINT_TYPE_LAND = 4, - PX4_SETPOINT_TYPE_IDLE = 5, - PX4_SETPOINT_TYPE_OFFBOARD = 6, - PX4_SETPOINT_TYPE_FOLLOW_TARGET = 7 + PX4_SETPOINT_TYPE_POSITION = 0, + PX4_SETPOINT_TYPE_VELOCITY = 1, + PX4_SETPOINT_TYPE_LOITER = 2, + PX4_SETPOINT_TYPE_TAKEOFF = 3, + PX4_SETPOINT_TYPE_LAND = 4, + PX4_SETPOINT_TYPE_IDLE = 5, + PX4_SETPOINT_TYPE_OFFBOARD = 6, + PX4_SETPOINT_TYPE_FOLLOW_TARGET = 7 } PX4_SetpointType_t; typedef enum { - PX4_VELOCITY_FRAME_LOCAL_NED = 1, - PX4_VELOCITY_FRAME_BODY_NED = 8 + PX4_VELOCITY_FRAME_LOCAL_NED = 1, + PX4_VELOCITY_FRAME_BODY_NED = 8 } PX4_VelocityFrameType_t; typedef enum { - PX4_RC_CHANNELS_FUNCTION_THROTTLE = 0, - PX4_RC_CHANNELS_FUNCTION_ROLL = 1, - PX4_RC_CHANNELS_FUNCTION_PITCH = 2, - PX4_RC_CHANNELS_FUNCTION_YAW = 3, - PX4_RC_CHANNELS_FUNCTION_MODE = 4, - PX4_RC_CHANNELS_FUNCTION_RETURN = 5, - PX4_RC_CHANNELS_FUNCTION_POSCTL = 6, - PX4_RC_CHANNELS_FUNCTION_LOITER = 7, - PX4_RC_CHANNELS_FUNCTION_OFFBOARD = 8, - PX4_RC_CHANNELS_FUNCTION_ACRO = 9, - PX4_RC_CHANNELS_FUNCTION_FLAPS = 10, - PX4_RC_CHANNELS_FUNCTION_AUX_1 = 11, - PX4_RC_CHANNELS_FUNCTION_AUX_2 = 12, - PX4_RC_CHANNELS_FUNCTION_AUX_3 = 13, - PX4_RC_CHANNELS_FUNCTION_AUX_4 = 14, - PX4_RC_CHANNELS_FUNCTION_AUX_5 = 15, - PX4_RC_CHANNELS_FUNCTION_PARAM_1 = 16, - PX4_RC_CHANNELS_FUNCTION_PARAM_2 = 17, - PX4_RC_CHANNELS_FUNCTION_PARAM_3 = 18, - PX4_RC_CHANNELS_FUNCTION_RATTITUDE = 19, - PX4_RC_CHANNELS_FUNCTION_KILLSWITCH = 20, - PX4_RC_CHANNELS_FUNCTION_TRANSITION = 21, - PX4_RC_CHANNELS_FUNCTION_GEAR = 22, - PX4_RC_CHANNELS_FUNCTION_ARMSWITCH = 23, - PX4_RC_CHANNELS_FUNCTION_STAB = 24, - PX4_RC_CHANNELS_FUNCTION_MAN = 25, - PX4_RC_CHANNELS_FUNCTION_ALTCTL = 26, - PX4_RC_CHANNELS_FUNCTION_COUNT = 27 + PX4_RC_CHANNELS_FUNCTION_THROTTLE = 0, + PX4_RC_CHANNELS_FUNCTION_ROLL = 1, + PX4_RC_CHANNELS_FUNCTION_PITCH = 2, + PX4_RC_CHANNELS_FUNCTION_YAW = 3, + PX4_RC_CHANNELS_FUNCTION_MODE = 4, + PX4_RC_CHANNELS_FUNCTION_RETURN = 5, + PX4_RC_CHANNELS_FUNCTION_POSCTL = 6, + PX4_RC_CHANNELS_FUNCTION_LOITER = 7, + PX4_RC_CHANNELS_FUNCTION_OFFBOARD = 8, + PX4_RC_CHANNELS_FUNCTION_ACRO = 9, + PX4_RC_CHANNELS_FUNCTION_FLAPS = 10, + PX4_RC_CHANNELS_FUNCTION_AUX_1 = 11, + PX4_RC_CHANNELS_FUNCTION_AUX_2 = 12, + PX4_RC_CHANNELS_FUNCTION_AUX_3 = 13, + PX4_RC_CHANNELS_FUNCTION_AUX_4 = 14, + PX4_RC_CHANNELS_FUNCTION_AUX_5 = 15, + PX4_RC_CHANNELS_FUNCTION_PARAM_1 = 16, + PX4_RC_CHANNELS_FUNCTION_PARAM_2 = 17, + PX4_RC_CHANNELS_FUNCTION_PARAM_3 = 18, + PX4_RC_CHANNELS_FUNCTION_RATTITUDE = 19, + PX4_RC_CHANNELS_FUNCTION_KILLSWITCH = 20, + PX4_RC_CHANNELS_FUNCTION_TRANSITION = 21, + PX4_RC_CHANNELS_FUNCTION_GEAR = 22, + PX4_RC_CHANNELS_FUNCTION_ARMSWITCH = 23, + PX4_RC_CHANNELS_FUNCTION_STAB = 24, + PX4_RC_CHANNELS_FUNCTION_MAN = 25, + PX4_RC_CHANNELS_FUNCTION_ALTCTL = 26, + PX4_RC_CHANNELS_FUNCTION_COUNT = 27 } PX4_RcChannelFunction_t; typedef enum { - PX4_SUBSYSTEM_TYPE_GYRO = 1, - PX4_SUBSYSTEM_TYPE_ACC = 2, - PX4_SUBSYSTEM_TYPE_MAG = 4, - PX4_SUBSYSTEM_TYPE_ABSPRESSURE = 8, - PX4_SUBSYSTEM_TYPE_DIFFPRESSURE = 16, - PX4_SUBSYSTEM_TYPE_GPS = 32, - PX4_SUBSYSTEM_TYPE_OPTICALFLOW = 64, - PX4_SUBSYSTEM_TYPE_CVPOSITION = 128, - PX4_SUBSYSTEM_TYPE_LASERPOSITION = 256, - PX4_SUBSYSTEM_TYPE_EXTERNALGROUNDTRUTH = 512, - PX4_SUBSYSTEM_TYPE_ANGULARRATECONTROL = 1024, - PX4_SUBSYSTEM_TYPE_ATTITUDESTABILIZATION = 2048, - PX4_SUBSYSTEM_TYPE_YAWPOSITION = 4096, - PX4_SUBSYSTEM_TYPE_ALTITUDECONTROL = 16384, - PX4_SUBSYSTEM_TYPE_POSITIONCONTROL = 32768, - PX4_SUBSYSTEM_TYPE_MOTORCONTROL = 65536, - PX4_SUBSYSTEM_TYPE_RANGEFINDER = 131072 + PX4_SUBSYSTEM_TYPE_GYRO = 0b00000000000000000001, /* 1 */ + PX4_SUBSYSTEM_TYPE_ACC = 0b00000000000000000010, /* 2 */ + PX4_SUBSYSTEM_TYPE_MAG = 0b00000000000000000100, /* 4 */ + PX4_SUBSYSTEM_TYPE_ABSPRESSURE = 0b00000000000000001000, /* 8 */ + PX4_SUBSYSTEM_TYPE_DIFFPRESSURE = 0b00000000000000010000, /* 16 */ + PX4_SUBSYSTEM_TYPE_GPS = 0b00000000000000100000, /* 32 */ + PX4_SUBSYSTEM_TYPE_OPTICALFLOW = 0b00000000000001000000, /* 64 */ + PX4_SUBSYSTEM_TYPE_CVPOSITION = 0b00000000000010000000, /* 128 */ + PX4_SUBSYSTEM_TYPE_LASERPOSITION = 0b00000000000100000000, /* 256 */ + PX4_SUBSYSTEM_TYPE_EXTERNALGROUNDTRUTH = 0b00000000001000000000, /* 512 */ + PX4_SUBSYSTEM_TYPE_ANGULARRATECONTROL = 0b00000000010000000000, /* 1024 */ + PX4_SUBSYSTEM_TYPE_ATTITUDESTABILIZATION = 0b00000000100000000000, /* 2048 */ + PX4_SUBSYSTEM_TYPE_YAWPOSITION = 0b00000001000000000000, /* 4096 */ + /* Skip 8192 */ + PX4_SUBSYSTEM_TYPE_ALTITUDECONTROL = 0b00000100000000000000, /* 16384 */ + PX4_SUBSYSTEM_TYPE_POSITIONCONTROL = 0b00001000000000000000, /* 32768 */ + PX4_SUBSYSTEM_TYPE_MOTORCONTROL = 0b00010000000000000000, /* 65536 */ + PX4_SUBSYSTEM_TYPE_RANGEFINDER = 0b00100000000000000000 /* 131072 */ } PX4_SubsystemType_t; typedef enum { - PX4_TECS_MODE_NORMAL = 0, - PX4_TECS_MODE_UNDERSPEED = 1, - PX4_TECS_MODE_TAKEOFF = 2, - PX4_TECS_MODE_LAND = 3, - PX4_TECS_MODE_LAND_THROTTLELIM = 4, - PX4_TECS_MODE_BAD_DESCENT = 5, - PX4_TECS_MODE_CLIMBOUT = 6 + PX4_TECS_MODE_NORMAL = 0, + PX4_TECS_MODE_UNDERSPEED = 1, + PX4_TECS_MODE_TAKEOFF = 2, + PX4_TECS_MODE_LAND = 3, + PX4_TECS_MODE_LAND_THROTTLELIM = 4, + PX4_TECS_MODE_BAD_DESCENT = 5, + PX4_TECS_MODE_CLIMBOUT = 6 } PX4_TecsMode_t; typedef enum { - PX4_TELEMETRY_STATUS_RADIO_TYPE_GENERIC = 0, - PX4_TELEMETRY_STATUS_RADIO_TYPE_3DR_RADIO = 1, - PX4_TELEMETRY_STATUS_RADIO_TYPE_UBIQUITY_BULLET = 2, - PX4_TELEMETRY_STATUS_RADIO_TYPE_WIRE = 3, - PX4_TELEMETRY_STATUS_RADIO_TYPE_USB = 4 + PX4_TELEMETRY_STATUS_RADIO_TYPE_GENERIC = 0, + PX4_TELEMETRY_STATUS_RADIO_TYPE_3DR_RADIO = 1, + PX4_TELEMETRY_STATUS_RADIO_TYPE_UBIQUITY_BULLET = 2, + PX4_TELEMETRY_STATUS_RADIO_TYPE_WIRE = 3, + PX4_TELEMETRY_STATUS_RADIO_TYPE_USB = 4 } PX4_TelemetryStatusRadioType_t; typedef enum { - PX4_ADSB_ALTITUDE_TYPE_PRESSURE_QNH = 0, - PX4_ADSB_ALTITUDE_TYPE_GEOMETRIC = 1 + PX4_ADSB_ALTITUDE_TYPE_PRESSURE_QNH = 0, + PX4_ADSB_ALTITUDE_TYPE_GEOMETRIC = 1 } PX4_AdsbAltitudeType_t; typedef enum { - PX4_ADSB_EMITTER_TYPE_NO_INFO = 0, - PX4_ADSB_EMITTER_TYPE_LIGHT = 1, - PX4_ADSB_EMITTER_TYPE_SMALL = 2, - PX4_ADSB_EMITTER_TYPE_LARGE = 3, - PX4_ADSB_EMITTER_TYPE_HIGH_VORTEX_LARGE = 4, - PX4_ADSB_EMITTER_TYPE_HEAVY = 5, - PX4_ADSB_EMITTER_TYPE_HIGHLY_MANUV = 6, - PX4_ADSB_EMITTER_TYPE_ROTOCRAFT = 7, - PX4_ADSB_EMITTER_TYPE_UNASSIGNED = 8, - PX4_ADSB_EMITTER_TYPE_GLIDER = 9, - PX4_ADSB_EMITTER_TYPE_LIGHTER_AIR = 10, - PX4_ADSB_EMITTER_TYPE_PARACHUTE = 11, - PX4_ADSB_EMITTER_TYPE_ULTRA_LIGHT = 12, - PX4_ADSB_EMITTER_TYPE_UNASSIGNED2 = 13, - PX4_ADSB_EMITTER_TYPE_UAV = 14, - PX4_ADSB_EMITTER_TYPE_SPACE = 15, - PX4_ADSB_EMITTER_TYPE_UNASSGINED3 = 16, - PX4_ADSB_EMITTER_TYPE_EMERGENCY_SURFACE = 17, - PX4_ADSB_EMITTER_TYPE_SERVICE_SURFACE = 18, - PX4_ADSB_EMITTER_TYPE_POINT_OBSTACLE = 19 + PX4_ADSB_EMITTER_TYPE_NO_INFO = 0, + PX4_ADSB_EMITTER_TYPE_LIGHT = 1, + PX4_ADSB_EMITTER_TYPE_SMALL = 2, + PX4_ADSB_EMITTER_TYPE_LARGE = 3, + PX4_ADSB_EMITTER_TYPE_HIGH_VORTEX_LARGE = 4, + PX4_ADSB_EMITTER_TYPE_HEAVY = 5, + PX4_ADSB_EMITTER_TYPE_HIGHLY_MANUV = 6, + PX4_ADSB_EMITTER_TYPE_ROTOCRAFT = 7, + PX4_ADSB_EMITTER_TYPE_UNASSIGNED = 8, + PX4_ADSB_EMITTER_TYPE_GLIDER = 9, + PX4_ADSB_EMITTER_TYPE_LIGHTER_AIR = 10, + PX4_ADSB_EMITTER_TYPE_PARACHUTE = 11, + PX4_ADSB_EMITTER_TYPE_ULTRA_LIGHT = 12, + PX4_ADSB_EMITTER_TYPE_UNASSIGNED2 = 13, + PX4_ADSB_EMITTER_TYPE_UAV = 14, + PX4_ADSB_EMITTER_TYPE_SPACE = 15, + PX4_ADSB_EMITTER_TYPE_UNASSGINED3 = 16, + PX4_ADSB_EMITTER_TYPE_EMERGENCY_SURFACE = 17, + PX4_ADSB_EMITTER_TYPE_SERVICE_SURFACE = 18, + PX4_ADSB_EMITTER_TYPE_POINT_OBSTACLE = 19 } PX4_AdsbEmitterType_t; typedef enum { - PX4_ADSB_FLAGS_VALID_COORDS = 1, - PX4_ADSB_FLAGS_VALID_ALTITUDE = 2, - PX4_ADSB_FLAGS_VALID_HEADING = 4, - PX4_ADSB_FLAGS_VALID_VELOCITY = 8, - PX4_ADSB_FLAGS_VALID_CALLSIGN = 16, - PX4_ADSB_FLAGS_VALID_SQUAWK = 32, - PX4_ADSB_FLAGS_SIMULATED = 64 + PX4_ADSB_FLAGS_VALID_COORDS = 0b00000001, /* 1 */ + PX4_ADSB_FLAGS_VALID_ALTITUDE = 0b00000010, /* 2 */ + PX4_ADSB_FLAGS_VALID_HEADING = 0b00000100, /* 4 */ + PX4_ADSB_FLAGS_VALID_VELOCITY = 0b00001000, /* 8 */ + PX4_ADSB_FLAGS_VALID_CALLSIGN = 0b00010000, /* 16 */ + PX4_ADSB_FLAGS_VALID_SQUAWK = 0b00100000, /* 32 */ + PX4_ADSB_FLAGS_SIMULATED = 0b01000000 /* 64 */ } PX4_AdsbFlags_t; typedef enum { - PX4_VEHICLE_COMMAND_RESULT_ACCEPTED = 0, - PX4_VEHICLE_COMMAND_RESULT_TEMPORARILY_REJECTED = 1, - PX4_VEHICLE_COMMAND_RESULT_DENIED = 2, - PX4_VEHICLE_COMMAND_RESULT_UNSUPPORTED = 3, - PX4_VEHICLE_COMMAND_RESULT_FAILED = 4 + PX4_VEHICLE_COMMAND_RESULT_ACCEPTED = 0, + PX4_VEHICLE_COMMAND_RESULT_TEMPORARILY_REJECTED = 1, + PX4_VEHICLE_COMMAND_RESULT_DENIED = 2, + PX4_VEHICLE_COMMAND_RESULT_UNSUPPORTED = 3, + PX4_VEHICLE_COMMAND_RESULT_FAILED = 4 } PX4_VehicleCommandResult_t; typedef enum { - PX4_VEHICLE_CMD_CUSTOM_0 = 0, - PX4_VEHICLE_CMD_CUSTOM_1 = 1, - PX4_VEHICLE_CMD_CUSTOM_2 = 2, - PX4_VEHICLE_CMD_NAV_WAYPOINT = 16, - PX4_VEHICLE_CMD_NAV_LOITER_UNLIM = 17, - PX4_VEHICLE_CMD_NAV_LOITER_TURNS = 18, - PX4_VEHICLE_CMD_NAV_LOITER_TIME = 19, - PX4_VEHICLE_CMD_NAV_LOITER_TO_ALT = 31, //added to - PX4_VEHICLE_CMD_NAV_RETURN_TO_LAUNCH = 20, - PX4_VEHICLE_CMD_NAV_LAND = 21, - PX4_VEHICLE_CMD_NAV_TAKEOFF = 22, - PX4_VEHICLE_CMD_NAV_ROI = 80, - PX4_VEHICLE_CMD_NAV_PATHPLANNING = 81, - PX4_VEHICLE_CMD_NAV_VTOL_TAKEOFF = 84, - PX4_VEHICLE_CMD_NAV_VTOL_LAND = 85, - PX4_VEHICLE_CMD_NAV_GUIDED_LIMITS = 90, - PX4_VEHICLE_CMD_NAV_GUIDED_MASTER = 91, - PX4_VEHICLE_CMD_NAV_GUIDED_ENABLE = 92, - PX4_VEHICLE_CMD_NAV_LAST = 95, - PX4_VEHICLE_CMD_CONDITION_DELAY = 112, - PX4_VEHICLE_CMD_CONDITION_CHANGE_ALT = 113, - PX4_VEHICLE_CMD_CONDITION_DISTANCE = 114, - PX4_VEHICLE_CMD_CONDITION_YAW = 115, - PX4_VEHICLE_CMD_CONDITION_LAST = 159, - PX4_VEHICLE_CMD_DO_SET_MODE = 176, - PX4_VEHICLE_CMD_DO_JUMP = 177, - PX4_VEHICLE_CMD_DO_CHANGE_SPEED = 178, - PX4_VEHICLE_CMD_DO_SET_HOME = 179, - PX4_VEHICLE_CMD_DO_SET_PARAMETER = 180, - PX4_VEHICLE_CMD_DO_SET_RELAY = 181, - PX4_VEHICLE_CMD_DO_REPEAT_RELAY = 182, - PX4_VEHICLE_CMD_DO_SET_SERVO = 183, - PX4_VEHICLE_CMD_DO_REPEAT_SERVO = 184, - PX4_VEHICLE_CMD_DO_FLIGHTTERMINATION = 185, - PX4_VEHICLE_CMD_DO_GO_AROUND = 191, - PX4_VEHICLE_CMD_DO_REPOSITION = 192, - PX4_VEHICLE_CMD_DO_PAUSE_CONTINUE = 193, - PX4_VEHICLE_CMD_DO_CONTROL_VIDEO = 200, - PX4_VEHICLE_CMD_DO_DIGICAM_CONTROL = 203, - PX4_VEHICLE_CMD_DO_MOUNT_CONFIGURE = 204, - PX4_VEHICLE_CMD_DO_MOUNT_CONTROL = 205, - PX4_VEHICLE_CMD_DO_SET_CAM_TRIGG_DIST = 206, - PX4_VEHICLE_CMD_DO_FENCE_ENABLE = 207, - PX4_VEHICLE_CMD_DO_PARACHUTE = 208, - PX4_VEHICLE_CMD_DO_INVERTED_FLIGHT = 210, - PX4_VEHICLE_CMD_DO_MOUNT_CONTROL_QUAT = 220, - PX4_VEHICLE_CMD_DO_GUIDED_MASTER = 221, - PX4_VEHICLE_CMD_DO_GUIDED_LIMITS = 222, - PX4_VEHICLE_CMD_DO_LAST = 240, - PX4_VEHICLE_CMD_PREFLIGHT_CALIBRATION = 241, - PX4_VEHICLE_CMD_PREFLIGHT_SET_SENSOR_OFFSETS = 242, - PX4_VEHICLE_CMD_PREFLIGHT_STORAGE = 245, - PX4_VEHICLE_CMD_PREFLIGHT_REBOOT_SHUTDOWN = 246, - PX4_VEHICLE_CMD_OVERRIDE_GOTO = 252, - PX4_VEHICLE_CMD_MISSION_START = 300, - PX4_VEHICLE_CMD_COMPONENT_ARM_DISARM = 400, - PX4_VEHICLE_CMD_START_RX_PAIR = 500, - PX4_VEHICLE_CMD_DO_TRIGGER_CONTROL = 2003, - PX4_VEHICLE_CMD_DO_VTOL_TRANSITION = 3000, - PX4_VEHICLE_CMD_PAYLOAD_PREPARE_DEPLOY = 30001, - PX4_VEHICLE_CMD_PAYLOAD_CONTROL_DEPLOY = 30002, - PX4_VEHICLE_CMD_PREFLIGHT_UAVCAN = 243 + PX4_VEHICLE_CMD_CUSTOM_0 = 0, + PX4_VEHICLE_CMD_CUSTOM_1 = 1, + PX4_VEHICLE_CMD_CUSTOM_2 = 2, + PX4_VEHICLE_CMD_NAV_WAYPOINT = 16, + PX4_VEHICLE_CMD_NAV_LOITER_UNLIM = 17, + PX4_VEHICLE_CMD_NAV_LOITER_TURNS = 18, + PX4_VEHICLE_CMD_NAV_LOITER_TIME = 19, + PX4_VEHICLE_CMD_NAV_RETURN_TO_LAUNCH = 20, + PX4_VEHICLE_CMD_NAV_LAND = 21, + PX4_VEHICLE_CMD_NAV_TAKEOFF = 22, + PX4_VEHICLE_CMD_NAV_LOITER_TO_ALT = 31, + PX4_VEHICLE_CMD_NAV_ROI = 80, + PX4_VEHICLE_CMD_NAV_PATHPLANNING = 81, + PX4_VEHICLE_CMD_NAV_VTOL_TAKEOFF = 84, + PX4_VEHICLE_CMD_NAV_VTOL_LAND = 85, + PX4_VEHICLE_CMD_NAV_GUIDED_LIMITS = 90, + PX4_VEHICLE_CMD_NAV_GUIDED_MASTER = 91, + PX4_VEHICLE_CMD_NAV_GUIDED_ENABLE = 92, + PX4_VEHICLE_CMD_NAV_LAST = 95, + PX4_VEHICLE_CMD_CONDITION_DELAY = 112, + PX4_VEHICLE_CMD_CONDITION_CHANGE_ALT = 113, + PX4_VEHICLE_CMD_CONDITION_DISTANCE = 114, + PX4_VEHICLE_CMD_CONDITION_YAW = 115, + PX4_VEHICLE_CMD_CONDITION_LAST = 159, + PX4_VEHICLE_CMD_DO_SET_MODE = 176, + PX4_VEHICLE_CMD_DO_JUMP = 177, + PX4_VEHICLE_CMD_DO_CHANGE_SPEED = 178, + PX4_VEHICLE_CMD_DO_SET_HOME = 179, + PX4_VEHICLE_CMD_DO_SET_PARAMETER = 180, + PX4_VEHICLE_CMD_DO_SET_RELAY = 181, + PX4_VEHICLE_CMD_DO_REPEAT_RELAY = 182, + PX4_VEHICLE_CMD_DO_SET_SERVO = 183, + PX4_VEHICLE_CMD_DO_REPEAT_SERVO = 184, + PX4_VEHICLE_CMD_DO_FLIGHTTERMINATION = 185, + PX4_VEHICLE_CMD_DO_GO_AROUND = 191, + PX4_VEHICLE_CMD_DO_REPOSITION = 192, + PX4_VEHICLE_CMD_DO_PAUSE_CONTINUE = 193, + PX4_VEHICLE_CMD_DO_CONTROL_VIDEO = 200, + PX4_VEHICLE_CMD_DO_DIGICAM_CONTROL = 203, + PX4_VEHICLE_CMD_DO_MOUNT_CONFIGURE = 204, + PX4_VEHICLE_CMD_DO_MOUNT_CONTROL = 205, + PX4_VEHICLE_CMD_DO_SET_CAM_TRIGG_DIST = 206, + PX4_VEHICLE_CMD_DO_FENCE_ENABLE = 207, + PX4_VEHICLE_CMD_DO_PARACHUTE = 208, + PX4_VEHICLE_CMD_DO_INVERTED_FLIGHT = 210, + PX4_VEHICLE_CMD_DO_MOUNT_CONTROL_QUAT = 220, + PX4_VEHICLE_CMD_DO_GUIDED_MASTER = 221, + PX4_VEHICLE_CMD_DO_GUIDED_LIMITS = 222, + PX4_VEHICLE_CMD_DO_LAST = 240, + PX4_VEHICLE_CMD_PREFLIGHT_CALIBRATION = 241, + PX4_VEHICLE_CMD_PREFLIGHT_SET_SENSOR_OFFSETS = 242, + PX4_VEHICLE_CMD_PREFLIGHT_UAVCAN = 243, + PX4_VEHICLE_CMD_PREFLIGHT_STORAGE = 245, + PX4_VEHICLE_CMD_PREFLIGHT_REBOOT_SHUTDOWN = 246, + PX4_VEHICLE_CMD_OVERRIDE_GOTO = 252, + PX4_VEHICLE_CMD_MISSION_START = 300, + PX4_VEHICLE_CMD_COMPONENT_ARM_DISARM = 400, + PX4_VEHICLE_CMD_START_RX_PAIR = 500, + PX4_VEHICLE_CMD_DO_TRIGGER_CONTROL = 2003, + PX4_VEHICLE_CMD_DO_VTOL_TRANSITION = 3000, + PX4_VEHICLE_CMD_PAYLOAD_PREPARE_DEPLOY = 30001, + PX4_VEHICLE_CMD_PAYLOAD_CONTROL_DEPLOY = 30002 } PX4_VehicleCmd_t; typedef enum { - PX4_ARMING_STATE_INIT = 0, - PX4_ARMING_STATE_STANDBY = 1, - PX4_ARMING_STATE_ARMED = 2, - PX4_ARMING_STATE_ARMED_ERROR = 3, - PX4_ARMING_STATE_STANDBY_ERROR = 4, - PX4_ARMING_STATE_REBOOT = 5, - PX4_ARMING_STATE_IN_AIR_RESTORE = 6, - PX4_ARMING_STATE_MAX = 7 + PX4_ARMING_STATE_INIT = 0, + PX4_ARMING_STATE_STANDBY = 1, + PX4_ARMING_STATE_ARMED = 2, + PX4_ARMING_STATE_ARMED_ERROR = 3, + PX4_ARMING_STATE_STANDBY_ERROR = 4, + PX4_ARMING_STATE_REBOOT = 5, + PX4_ARMING_STATE_IN_AIR_RESTORE = 6, + PX4_ARMING_STATE_MAX = 7 } PX4_ArmingState_t; typedef enum { - PX4_HIL_STATE_OFF = 0, - PX4_HIL_STATE_ON = 1 + PX4_HIL_STATE_OFF = 0, + PX4_HIL_STATE_ON = 1 } PX4_HilState_t; typedef enum { - PX4_NAVIGATION_STATE_MANUAL = 0, - PX4_NAVIGATION_STATE_ALTCTL = 1, - PX4_NAVIGATION_STATE_POSCTL = 2, - PX4_NAVIGATION_STATE_AUTO_MISSION = 3, - PX4_NAVIGATION_STATE_AUTO_LOITER = 4, - PX4_NAVIGATION_STATE_AUTO_RTL = 5, - PX4_NAVIGATION_STATE_AUTO_RCRECOVER = 6, - PX4_NAVIGATION_STATE_AUTO_RTGS = 7, - PX4_NAVIGATION_STATE_AUTO_LANDENGFAIL = 8, - PX4_NAVIGATION_STATE_AUTO_LANDGPSFAIL = 9, - PX4_NAVIGATION_STATE_ACRO = 10, - PX4_NAVIGATION_STATE_UNUSED = 11, - PX4_NAVIGATION_STATE_DESCEND = 12, - PX4_NAVIGATION_STATE_TERMINATION = 13, - PX4_NAVIGATION_STATE_OFFBOARD = 14, - PX4_NAVIGATION_STATE_STAB = 15, - PX4_NAVIGATION_STATE_RATTITUDE = 16, - PX4_NAVIGATION_STATE_AUTO_TAKEOFF = 17, - PX4_NAVIGATION_STATE_AUTO_LAND = 18, - PX4_NAVIGATION_STATE_AUTO_FOLLOW_TARGET = 19, - PX4_NAVIGATION_STATE_AUTO_PRECLAND = 20, - PX4_NAVIGATION_STATE_MAX = 21 + PX4_NAVIGATION_STATE_MANUAL = 0, + PX4_NAVIGATION_STATE_ALTCTL = 1, + PX4_NAVIGATION_STATE_POSCTL = 2, + PX4_NAVIGATION_STATE_AUTO_MISSION = 3, + PX4_NAVIGATION_STATE_AUTO_LOITER = 4, + PX4_NAVIGATION_STATE_AUTO_RTL = 5, + PX4_NAVIGATION_STATE_AUTO_RCRECOVER = 6, + PX4_NAVIGATION_STATE_AUTO_RTGS = 7, + PX4_NAVIGATION_STATE_AUTO_LANDENGFAIL = 8, + PX4_NAVIGATION_STATE_AUTO_LANDGPSFAIL = 9, + PX4_NAVIGATION_STATE_ACRO = 10, + PX4_NAVIGATION_STATE_UNUSED = 11, + PX4_NAVIGATION_STATE_DESCEND = 12, + PX4_NAVIGATION_STATE_TERMINATION = 13, + PX4_NAVIGATION_STATE_OFFBOARD = 14, + PX4_NAVIGATION_STATE_STAB = 15, + PX4_NAVIGATION_STATE_RATTITUDE = 16, + PX4_NAVIGATION_STATE_AUTO_TAKEOFF = 17, + PX4_NAVIGATION_STATE_AUTO_LAND = 18, + PX4_NAVIGATION_STATE_AUTO_FOLLOW_TARGET = 19, + PX4_NAVIGATION_STATE_AUTO_PRECLAND = 20, + PX4_NAVIGATION_STATE_MAX = 21 } PX4_NavigationState_t; typedef enum { - PX4_RC_IN_MODE_DEFAULT = 0, - PX4_RC_IN_MODE_OFF = 1, - PX4_RC_IN_MODE_GENERATED = 2 + PX4_RC_IN_MODE_DEFAULT = 0, + PX4_RC_IN_MODE_OFF = 1, + PX4_RC_IN_MODE_GENERATED = 2 } PX4_RcInMode_t; typedef enum { - PX4_VEHICLE_MOUNT_MODE_RETRACT = 0, - PX4_VEHICLE_MOUNT_MODE_NEUTRAL = 1, - PX4_VEHICLE_MOUNT_MODE_MAVLINK_TARGETING = 2, - PX4_VEHICLE_MOUNT_MODE_RC_TARGETING = 3, - PX4_VEHICLE_MOUNT_MODE_GPS_POINT = 4, - PX4_VEHICLE_MOUNT_MODE_ENUM_END = 5 + PX4_VEHICLE_MOUNT_MODE_RETRACT = 0, + PX4_VEHICLE_MOUNT_MODE_NEUTRAL = 1, + PX4_VEHICLE_MOUNT_MODE_MAVLINK_TARGETING = 2, + PX4_VEHICLE_MOUNT_MODE_RC_TARGETING = 3, + PX4_VEHICLE_MOUNT_MODE_GPS_POINT = 4, + PX4_VEHICLE_MOUNT_MODE_ENUM_END = 5 } PX4_VehicleMountMode_t; typedef enum { - PX4_SYSTEM_TYPE_GENERIC = 0, - PX4_SYSTEM_TYPE_FIXED_WING = 1, - PX4_SYSTEM_TYPE_QUADROTOR = 2, - PX4_SYSTEM_TYPE_COAXIAL = 3, - PX4_SYSTEM_TYPE_HELICOPTER = 4, - PX4_SYSTEM_TYPE_ANTENNA_TRACKER = 5, - PX4_SYSTEM_TYPE_GCS = 6, - PX4_SYSTEM_TYPE_AIRSHIP = 7, - PX4_SYSTEM_TYPE_FREE_BALLOON = 8, - PX4_SYSTEM_TYPE_ROCKET = 9, - PX4_SYSTEM_TYPE_GROUND_ROVER = 10, - PX4_SYSTEM_TYPE_SURFACE_BOAT = 11, - PX4_SYSTEM_TYPE_SUBMARINE = 12, - PX4_SYSTEM_TYPE_HEXAROTOR = 13, - PX4_SYSTEM_TYPE_OCTOROTOR = 14, - PX4_SYSTEM_TYPE_TRICOPTER = 15, - PX4_SYSTEM_TYPE_FLAPPING_WING = 16, - PX4_SYSTEM_TYPE_KITE = 17, - PX4_SYSTEM_TYPE_ONBOARD_CONTROLLER = 18, - PX4_SYSTEM_TYPE_VTOL_DUOROTOR = 19, - PX4_SYSTEM_TYPE_VTOL_QUADROTOR = 20, - PX4_SYSTEM_TYPE_VTOL_TILTROTOR = 21, - PX4_SYSTEM_TYPE_VTOL_RESERVED2 = 22, - PX4_SYSTEM_TYPE_VTOL_RESERVED3 = 23, - PX4_SYSTEM_TYPE_VTOL_RESERVED4 = 24, - PX4_SYSTEM_TYPE_VTOL_RESERVED5 = 25, - PX4_SYSTEM_TYPE_GIMBAL = 26, - PX4_SYSTEM_TYPE_ADSB = 27 + PX4_SYSTEM_TYPE_GENERIC = 0, + PX4_SYSTEM_TYPE_FIXED_WING = 1, + PX4_SYSTEM_TYPE_QUADROTOR = 2, + PX4_SYSTEM_TYPE_COAXIAL = 3, + PX4_SYSTEM_TYPE_HELICOPTER = 4, + PX4_SYSTEM_TYPE_ANTENNA_TRACKER = 5, + PX4_SYSTEM_TYPE_GCS = 6, + PX4_SYSTEM_TYPE_AIRSHIP = 7, + PX4_SYSTEM_TYPE_FREE_BALLOON = 8, + PX4_SYSTEM_TYPE_ROCKET = 9, + PX4_SYSTEM_TYPE_GROUND_ROVER = 10, + PX4_SYSTEM_TYPE_SURFACE_BOAT = 11, + PX4_SYSTEM_TYPE_SUBMARINE = 12, + PX4_SYSTEM_TYPE_HEXAROTOR = 13, + PX4_SYSTEM_TYPE_OCTOROTOR = 14, + PX4_SYSTEM_TYPE_TRICOPTER = 15, + PX4_SYSTEM_TYPE_FLAPPING_WING = 16, + PX4_SYSTEM_TYPE_KITE = 17, + PX4_SYSTEM_TYPE_ONBOARD_CONTROLLER = 18, + PX4_SYSTEM_TYPE_VTOL_DUOROTOR = 19, + PX4_SYSTEM_TYPE_VTOL_QUADROTOR = 20, + PX4_SYSTEM_TYPE_VTOL_TILTROTOR = 21, + PX4_SYSTEM_TYPE_VTOL_RESERVED2 = 22, + PX4_SYSTEM_TYPE_VTOL_RESERVED3 = 23, + PX4_SYSTEM_TYPE_VTOL_RESERVED4 = 24, + PX4_SYSTEM_TYPE_VTOL_RESERVED5 = 25, + PX4_SYSTEM_TYPE_GIMBAL = 26, + PX4_SYSTEM_TYPE_ADSB = 27 } PX4_SystemType_t; typedef enum { - PX4_VEHICLE_VTOL_STATE_UNDEFINED = 0, - PX4_VEHICLE_VTOL_STATE_TRANSITION_TO_FW = 1, - PX4_VEHICLE_VTOL_STATE_TRANSITION_TO_MC = 2, - PX4_VEHICLE_VTOL_STATE_MC = 3, - PX4_VEHICLE_VTOL_STATE_FW = 4 + PX4_VEHICLE_VTOL_STATE_UNDEFINED = 0, + PX4_VEHICLE_VTOL_STATE_TRANSITION_TO_FW = 1, + PX4_VEHICLE_VTOL_STATE_TRANSITION_TO_MC = 2, + PX4_VEHICLE_VTOL_STATE_MC = 3, + PX4_VEHICLE_VTOL_STATE_FW = 4 } PX4_VehicleVtolState_t; typedef enum { - PX4_SENSOR_ORIENTATION_NONE = 0, - PX4_SENSOR_ORIENTATION_YAW_45 = 1, - PX4_SENSOR_ORIENTATION_YAW_90 = 2, - PX4_SENSOR_ORIENTATION_YAW_135 = 3, - PX4_SENSOR_ORIENTATION_YAW_180 = 4, - PX4_SENSOR_ORIENTATION_YAW_225 = 5, - PX4_SENSOR_ORIENTATION_YAW_270 = 6, - PX4_SENSOR_ORIENTATION_YAW_315 = 7, - PX4_SENSOR_ORIENTATION_ROLL_180 = 8, - PX4_SENSOR_ORIENTATION_ROLL_180_YAW_45 = 9, - PX4_SENSOR_ORIENTATION_ROLL_180_YAW_90 = 10, - PX4_SENSOR_ORIENTATION_ROLL_180_YAW_135 = 11, - PX4_SENSOR_ORIENTATION_PITCH_180 = 12, - PX4_SENSOR_ORIENTATION_ROLL_180_YAW_225 = 13, - PX4_SENSOR_ORIENTATION_ROLL_180_YAW_270 = 14, - PX4_SENSOR_ORIENTATION_ROLL_180_YAW_315 = 15, - PX4_SENSOR_ORIENTATION_ROLL_90 = 16, - PX4_SENSOR_ORIENTATION_ROLL_90_YAW_45 = 17, - PX4_SENSOR_ORIENTATION_ROLL_90_YAW_90 = 18, - PX4_SENSOR_ORIENTATION_ROLL_90_YAW_135 = 19, - PX4_SENSOR_ORIENTATION_ROLL_270 = 20, - PX4_SENSOR_ORIENTATION_ROLL_270_YAW_45 = 21, - PX4_SENSOR_ORIENTATION_ROLL_270_YAW_90 = 22, - PX4_SENSOR_ORIENTATION_ROLL_270_YAW_135 = 23, - PX4_SENSOR_ORIENTATION_PITCH_90 = 24, - PX4_SENSOR_ORIENTATION_PITCH_270 = 25, - PX4_SENSOR_ORIENTATION_PITCH_180_YAW_90 = 26, - PX4_SENSOR_ORIENTATION_PITCH_180_YAW_270 = 27, - PX4_SENSOR_ORIENTATION_ROLL_90_PITCH_90 = 28, - PX4_SENSOR_ORIENTATION_ROLL_180_PITCH_90 = 29, - PX4_SENSOR_ORIENTATION_ROLL_270_PITCH_90 = 30, - PX4_SENSOR_ORIENTATION_ROLL_90_PITCH_180 = 31, - PX4_SENSOR_ORIENTATION_ROLL_270_PITCH_180 = 32, - PX4_SENSOR_ORIENTATION_ROLL_90_PITCH_270 = 33, - PX4_SENSOR_ORIENTATION_ROLL_180_PITCH_270 = 34, - PX4_SENSOR_ORIENTATION_ROLL_270_PITCH_270 = 35, - PX4_SENSOR_ORIENTATION_ROLL_90_PITCH_180_YAW_90 = 36, - PX4_SENSOR_ORIENTATION_ROLL_90_YAW_270 = 37, - PX4_SENSOR_ORIENTATION_ROLL_315_PITCH_315_YAW_315 = 39 + PX4_SENSOR_ORIENTATION_NONE = 0, + PX4_SENSOR_ORIENTATION_YAW_45 = 1, + PX4_SENSOR_ORIENTATION_YAW_90 = 2, + PX4_SENSOR_ORIENTATION_YAW_135 = 3, + PX4_SENSOR_ORIENTATION_YAW_180 = 4, + PX4_SENSOR_ORIENTATION_YAW_225 = 5, + PX4_SENSOR_ORIENTATION_YAW_270 = 6, + PX4_SENSOR_ORIENTATION_YAW_315 = 7, + PX4_SENSOR_ORIENTATION_ROLL_180 = 8, + PX4_SENSOR_ORIENTATION_ROLL_180_YAW_45 = 9, + PX4_SENSOR_ORIENTATION_ROLL_180_YAW_90 = 10, + PX4_SENSOR_ORIENTATION_ROLL_180_YAW_135 = 11, + PX4_SENSOR_ORIENTATION_PITCH_180 = 12, + PX4_SENSOR_ORIENTATION_ROLL_180_YAW_225 = 13, + PX4_SENSOR_ORIENTATION_ROLL_180_YAW_270 = 14, + PX4_SENSOR_ORIENTATION_ROLL_180_YAW_315 = 15, + PX4_SENSOR_ORIENTATION_ROLL_90 = 16, + PX4_SENSOR_ORIENTATION_ROLL_90_YAW_45 = 17, + PX4_SENSOR_ORIENTATION_ROLL_90_YAW_90 = 18, + PX4_SENSOR_ORIENTATION_ROLL_90_YAW_135 = 19, + PX4_SENSOR_ORIENTATION_ROLL_270 = 20, + PX4_SENSOR_ORIENTATION_ROLL_270_YAW_45 = 21, + PX4_SENSOR_ORIENTATION_ROLL_270_YAW_90 = 22, + PX4_SENSOR_ORIENTATION_ROLL_270_YAW_135 = 23, + PX4_SENSOR_ORIENTATION_PITCH_90 = 24, + PX4_SENSOR_ORIENTATION_PITCH_270 = 25, + PX4_SENSOR_ORIENTATION_PITCH_180_YAW_90 = 26, + PX4_SENSOR_ORIENTATION_PITCH_180_YAW_270 = 27, + PX4_SENSOR_ORIENTATION_ROLL_90_PITCH_90 = 28, + PX4_SENSOR_ORIENTATION_ROLL_180_PITCH_90 = 29, + PX4_SENSOR_ORIENTATION_ROLL_270_PITCH_90 = 30, + PX4_SENSOR_ORIENTATION_ROLL_90_PITCH_180 = 31, + PX4_SENSOR_ORIENTATION_ROLL_270_PITCH_180 = 32, + PX4_SENSOR_ORIENTATION_ROLL_90_PITCH_270 = 33, + PX4_SENSOR_ORIENTATION_ROLL_180_PITCH_270 = 34, + PX4_SENSOR_ORIENTATION_ROLL_270_PITCH_270 = 35, + PX4_SENSOR_ORIENTATION_ROLL_90_PITCH_180_YAW_90 = 36, + PX4_SENSOR_ORIENTATION_ROLL_90_YAW_270 = 37, + PX4_SENSOR_ORIENTATION_ROLL_315_PITCH_315_YAW_315 = 39 } PX4_SensorOrientation_t; typedef struct { - uint8 TlmHeader[CFE_SB_TLM_HDR_SIZE]; - uint64 Timestamp; - boolean Armed; - boolean Prearmed; - boolean ReadyToArm; - boolean Lockdown; - boolean ManualLockdown; - boolean ForceFailsafe; - boolean InEscCalibrationMode; + uint8 TlmHeader[CFE_SB_TLM_HDR_SIZE]; + boolean Armed; + boolean Prearmed; + boolean ReadyToArm; + boolean Lockdown; + boolean ManualLockdown; + boolean ForceFailsafe; + boolean InEscCalibrationMode; } PX4_ActuatorArmedMsg_t; typedef struct { uint8 TlmHeader[CFE_SB_TLM_HDR_SIZE]; - uint64 Timestamp; - uint64 SampleTime; - float Control[PX4_ACTUATOR_CONTROL_COUNT]; + float Control[PX4_ACTUATOR_CONTROL_COUNT]; } PX4_ActuatorControlsMsg_t; -typedef struct -{ - uint8 TlmHeader[CFE_SB_TLM_HDR_SIZE]; - uint64 Timestamp; - uint32 NValues; - float Values[PX4_ACTUATOR_DIRECT_MAX]; -} PX4_ActuatorDirectMsg_t; typedef struct { - uint8 TlmHeader[CFE_SB_TLM_HDR_SIZE]; - uint64 Timestamp; - uint32 Count; - float Output[PX4_ACTUATOR_OUTPUTS_MAX]; + uint8 TlmHeader[CFE_SB_TLM_HDR_SIZE]; + uint32 Count; + float Output[PX4_ACTUATOR_OUTPUTS_MAX]; } PX4_ActuatorOutputsMsg_t; typedef struct { uint8 TlmHeader[CFE_SB_TLM_HDR_SIZE]; - uint64 Timestamp; - float ChannelValue[PX4_ADC_CHANNEL_MAX]; - uint32 ChannelID[PX4_ADC_CHANNEL_MAX]; -} PX4_AdcReportMsg_t; - -typedef struct -{ - uint8 TlmHeader[CFE_SB_TLM_HDR_SIZE]; - uint64 Timestamp; - float IndicatedAirspeed; /* m/s */ - float TrueAirspeed; /* m/s */ - float TrueAirspeedUnfiltered; /* m/s */ - float AirTemperature; /* Celsius */ - float Confidence; + float IndicatedAirspeed; /* m/s */ + float TrueAirspeed; /* m/s */ + float TrueAirspeedUnfiltered; /* m/s */ + float AirTemperature; /* Celsius */ + float Confidence; } PX4_AirspeedMsg_t; typedef struct { - uint8 TlmHeader[CFE_SB_TLM_HDR_SIZE]; - uint64 Timestamp; -} PX4_AttPosMoCapMsg_t; - -typedef struct -{ - uint8 TlmHeader[CFE_SB_TLM_HDR_SIZE]; - uint64 Timestamp; - float Voltage; /* V */ - float VoltageFiltered; /* V */ - float Current; /* A */ - float CurrentFiltered; /* A */ - float Discharged; /* mAh */ - float Remaining; - float Scale; - int32 CellCount; - boolean Connected; - PX4_BatteryWarningSeverity_t Warning; + uint8 TlmHeader[CFE_SB_TLM_HDR_SIZE]; + float Voltage; /* V */ + float VoltageFiltered; /* V */ + float Current; /* A */ + float CurrentFiltered; /* A */ + float Discharged; /* mAh */ + float Remaining; + float Scale; + int32 CellCount; + boolean Connected; + PX4_BatteryWarningSeverity_t Warning; } PX4_BatteryStatusMsg_t; typedef struct { uint8 TlmHeader[CFE_SB_TLM_HDR_SIZE]; - uint64 Timestamp; -} PX4_CameraTriggerMsg_t; - - -typedef struct -{ - uint8 TlmHeader[CFE_SB_TLM_HDR_SIZE]; - uint64 Timestamp; - PX4_CommanderMainState_t MainState; + uint64 Timestamp; + PX4_CommanderMainState_t MainState; } PX4_CommanderStateMsg_t; typedef struct { - uint8 TlmHeader[CFE_SB_TLM_HDR_SIZE]; - uint64 Timestamp; - float AccX; - float AccY; - float AccZ; - float VelX; - float VelY; - float VelZ; - float PosX; - float PosY; - float PosZ; - float Airspeed; - float VelVariance[3]; - float PosVariance[3]; - float Q[4]; - float DeltaQReset[4]; - float RollRate; - float PitchRate; - float YawRate; - float HorzAccMag; - float RollRateBias; - float PitchRateBias; - float YawRateBias; - boolean AirspeedValid; - uint8 QuatResetCounter; + uint8 TlmHeader[CFE_SB_TLM_HDR_SIZE]; + uint64 Timestamp; + float AccX; + float AccY; + float AccZ; + float VelX; + float VelY; + float VelZ; + float PosX; + float PosY; + float PosZ; + float Airspeed; + float VelVariance[3]; + float PosVariance[3]; + float Q[4]; + float DeltaQReset[4]; + float RollRate; + float PitchRate; + float YawRate; + float HorzAccMag; + float RollRateBias; + float PitchRateBias; + float YawRateBias; + boolean AirspeedValid; + uint8 QuatResetCounter; } PX4_ControlStateMsg_t; typedef struct { - uint8 TlmHeader[CFE_SB_TLM_HDR_SIZE]; - uint64 Timestamp; - float Load; - float RamUsage; -} PX4_CpuLoadMsg_t; - - -typedef struct -{ - uint8 TlmHeader[CFE_SB_TLM_HDR_SIZE]; - uint64 Timestamp; - uint32 TimestampMs; - float Value; - int8 Key[10]; -} PX4_DebugKeyValueMsg_t; - - -typedef struct -{ - uint8 TlmHeader[CFE_SB_TLM_HDR_SIZE]; - uint64 Timestamp; - uint64 ErrorCount; - float DifferentialPressureRaw; - float DifferentialPressureFiltered; - float Temperature; + uint8 TlmHeader[CFE_SB_TLM_HDR_SIZE]; + uint64 ErrorCount; + float DifferentialPressureRaw; + float DifferentialPressureFiltered; + float Temperature; } PX4_DifferentialPressureMsg_t; @@ -977,106 +922,32 @@ typedef struct typedef struct { - uint8 TlmHeader[CFE_SB_TLM_HDR_SIZE]; - uint64 Timestamp; - uint64 AccTimestamp; - uint64 MagTimestamp; - uint64 Gyro1Timestamp; - uint64 Acc1Timestamp; - uint64 Mag1Timestamp; - uint64 Gyro2Timestamp; - uint64 Acc2Timestamp; - uint64 Mag2Timestamp; - uint64 BaroTimestamp; - uint64 Baro1Timestamp; - uint64 DiffPressTimestamp; - uint64 DiffPress1Timestamp; - float Gyro[3]; - uint32 GyroErrCount; - float GyroTemp; - float Acc[3]; - float AccRange; - uint32 AccErrCount; - float AccTemp; - float Mag[3]; - float MagRange; - float MagCutoffFreq; - uint32 MagErrCount; - float MagTemp; - float Gyro1[3]; - uint32 Gyro1ErrCount; - float Gyro1Temp; - float Acc1[3]; - uint32 Acc1ErrCount; - float Acc1Temp; - float Mag1[3]; - uint32 Mag1ErrCount; - float Mag1Temp; - float Gyro2[3]; - uint32 Gyro2ErrCount; - float Gyro2Temp; - float Acc2[3]; - uint32 Acc2ErrCount; - float Acc2Temp; - float Mag2[3]; - uint32 Mag2ErrCount; - float Mag2Temp; - float BaroPres; - float BaroAlt; - float BaroTemp; - float Baro1Pres; - float Baro1Alt; - float Baro1Temp; - float AdcVoltage[10]; - float McuTemp; - float DiffPress; - float DiffPressFiltered; - float DiffPress1; - float DiffPress1Filtered; - int16 GyroRaw[3]; - int16 AccRaw[3]; - int16 AccMode; - int16 MagRaw[3]; - PX4_MagnetometerMode_t MagMode; - int16 Gyro1Raw[3]; - int16 Acc1Raw[3]; - int16 Mag1Raw[3]; - int16 Gyro2Raw[3]; - int16 Acc2Raw[3]; - int16 Mag2Raw[3]; - uint16 AdcMapping[10]; -} PX4_HilSensorMsg_t; - -typedef struct -{ - uint8 TlmHeader[CFE_SB_TLM_HDR_SIZE]; - uint64 Timestamp; - double Lat; - double Lon; - float Alt; - float X; - float Y; - float Z; - float Yaw; - float DirectionX; - float DirectionY; - float DirectionZ; + uint8 TlmHeader[CFE_SB_TLM_HDR_SIZE]; + double Lat; + double Lon; + float Alt; + float X; + float Y; + float Z; + float Yaw; + float DirectionX; + float DirectionY; + float DirectionZ; } PX4_HomePositionMsg_t; typedef struct { - uint8 TlmHeader[CFE_SB_TLM_HDR_SIZE]; - uint64 Timestamp; - uint64 LastSignal; - uint32 ChannelCount; - int32 RSSI; - uint16 RcLostFrameCount; - uint16 RcTotalFrameCount; - uint16 RcPpmFrameLength; - uint16 Values[PX4_RC_INPUT_MAX_CHANNELS]; - boolean RcFailsafe; - boolean RcLost; - PX4_RcInputSource_t InputSource; + uint8 TlmHeader[CFE_SB_TLM_HDR_SIZE]; + CFE_TIME_SysTime_t LastSignal; + uint32 ChannelCount; + int32 RSSI; + uint16 RcLostFrameCount; + uint16 RcTotalFrameCount; + uint16 RcPpmFrameLength; + uint16 Values[PX4_RC_INPUT_MAX_CHANNELS]; + boolean RcFailsafe; + boolean RcLost; + PX4_RcInputSource_t InputSource; } PX4_InputRcMsg_t; typedef struct @@ -1386,92 +1257,87 @@ typedef struct typedef struct { - uint8 TlmHeader[CFE_SB_TLM_HDR_SIZE]; - uint64 Timestamp; - uint64 IntegralDt; - uint64 ErrorCount; - float X; - float Y; - float Z; - float XIntegral; - float YIntegral; - float ZIntegral; - float Temperature; - float Range_m_s2; - float Scaling; - uint32 DeviceID; - int16 XRaw; - int16 YRaw; - int16 ZRaw; - int16 TemperatureRaw; + uint8 TlmHeader[CFE_SB_TLM_HDR_SIZE]; + uint64 IntegralDt; + uint64 ErrorCount; + float X; + float Y; + float Z; + float XIntegral; + float YIntegral; + float ZIntegral; + float Temperature; + float Range_m_s2; + float Scaling; + uint32 DeviceID; + int16 XRaw; + int16 YRaw; + int16 ZRaw; + int16 TemperatureRaw; } PX4_SensorAccelMsg_t; typedef struct { - uint8 TlmHeader[CFE_SB_TLM_HDR_SIZE]; - uint64 Timestamp; - uint32 ErrorCount; - float Pressure; - float Altitude; - float Temperature; + uint8 TlmHeader[CFE_SB_TLM_HDR_SIZE]; + uint32 ErrorCount; + float Pressure; + float Altitude; + float Temperature; } PX4_SensorBaroMsg_t; typedef struct { - uint8 TlmHeader[CFE_SB_TLM_HDR_SIZE]; - uint64 Timestamp; - float GyroRad[3]; - float GyroIntegralDt; - uint32 AccTimestampRelative; - boolean AccRelTimeInvalid; - float Acc[3]; - float AccIntegralDt; - uint32 MagTimestampRelative; - boolean MagRelTimeInvalid; - float Mag[3]; - uint32 BaroTimestampRelative; - boolean BaroRelTimeInvalid; - float BaroAlt; - float BaroTemp; + uint8 TlmHeader[CFE_SB_TLM_HDR_SIZE]; + float GyroRad[3]; + float GyroIntegralDt; + CFE_TIME_SysTime_t AccTimestamp; + boolean AccRelTimeInvalid; + float Acc[3]; + float AccIntegralDt; + CFE_TIME_SysTime_t MagTimestamp; + boolean MagRelTimeInvalid; + float Mag[3]; + CFE_TIME_SysTime_t BaroTimestamp; + boolean BaroRelTimeInvalid; + float BaroAlt; + float BaroTemp; } PX4_SensorCombinedMsg_t; typedef struct { - uint8 TlmHeader[CFE_SB_TLM_HDR_SIZE]; - uint64 Timestamp; - uint64 IntegralDt; - uint64 ErrorCount; - float X; - float Y; - float Z; - float XIntegral; - float YIntegral; - float ZIntegral; - float Temperature; - float Range; - float Scaling; - uint32 DeviceID; - int16 XRaw; - int16 YRaw; - int16 ZRaw; - int16 TemperatureRaw; + uint8 TlmHeader[CFE_SB_TLM_HDR_SIZE]; + uint64 IntegralDt; + uint64 ErrorCount; + float X; + float Y; + float Z; + float XIntegral; + float YIntegral; + float ZIntegral; + float Temperature; + float Range; + float Scaling; + uint32 DeviceID; + int16 XRaw; + int16 YRaw; + int16 ZRaw; + int16 TemperatureRaw; } PX4_SensorGyroMsg_t; typedef struct { - uint8 TlmHeader[CFE_SB_TLM_HDR_SIZE]; - uint64 Timestamp; - uint64 ErrorCount; - float X; - float Y; - float Z; - float Range; - float Scaling; - float Temperature; - uint32 DeviceID; - int16 XRaw; - int16 YRaw; - int16 ZRaw; + uint8 TlmHeader[CFE_SB_TLM_HDR_SIZE]; + uint64 ErrorCount; + float X; + float Y; + float Z; + float Range; + float Scaling; + float Temperature; + uint32 DeviceID; + int16 XRaw; + int16 YRaw; + int16 ZRaw; } PX4_SensorMagMsg_t; typedef struct @@ -1869,45 +1735,6 @@ typedef struct typedef struct { uint8 TlmHeader[CFE_SB_TLM_HDR_SIZE]; - uint64 Timestamp; - CFE_TIME_SysTime_t TimeReceived; - uint32 ID; - float X; - float Y; - float Z; - float VX; - float VY; - float VZ; - float Q[4]; - float PosErr; - float AngErr; -} PX4_VisionPositionEstimateMsg_t; - -typedef struct -{ - uint8 TlmHeader[CFE_SB_TLM_HDR_SIZE]; - uint64 Timestamp; - float AirspeedTot; - boolean VtolInRwMode; - boolean VtolInTransMode; - boolean VtolTransitionFailsafe; - boolean FwPermanentStab; -} PX4_VtolVehicleStatusMsg_t; - -typedef struct -{ - uint8 TlmHeader[CFE_SB_TLM_HDR_SIZE]; - uint64 Timestamp; - float WindspeedNorth; - float WindspeedEast; - float CovarianceNorth; - float CovarianceEast; -} PX4_WindEstimateMsg_t; - -typedef struct -{ - uint8 TlmHeader[CFE_SB_TLM_HDR_SIZE]; - uint64 Timestamp; float gyro_offset_0[3]; float gyro_scale_0[3]; float gyro_offset_1[3]; @@ -1938,7 +1765,6 @@ typedef struct typedef struct { uint8 TlmHeader[CFE_SB_TLM_HDR_SIZE]; - uint64 Timestamp; uint8 LedMask; uint8 Color; uint8 Mode; @@ -1949,7 +1775,6 @@ typedef struct typedef struct { uint8 TlmHeader[CFE_SB_TLM_HDR_SIZE]; - uint64 Timestamp; uint8 Frame[4096]; } PX4_OpticalFlowFrameMsg_t; diff --git a/apps/px4lib/fsw/src/px4lib.cpp b/apps/px4lib/fsw/src/px4lib.cpp index 83351b2c2..ba537382c 100644 --- a/apps/px4lib/fsw/src/px4lib.cpp +++ b/apps/px4lib/fsw/src/px4lib.cpp @@ -39,6 +39,7 @@ #include "px4lib.h" #include #include +#include "cfs_utils.h" extern "C" { @@ -87,48 +88,64 @@ int32 PX4LIB_LibInit(void) +//uint64 PX4LIB_GetPX4TimeUs(void) +//{ +// struct timespec ts; +// int returnCode = 0; +// uint64 outTime = 0; +// +// returnCode = clock_gettime(CLOCK_MONOTONIC, &ts); +// if (-1 == returnCode) +// { +// OS_printf("PX4LIB_GetPX4Time clock_gettime errno: %i", errno); +// goto end_of_function; +// } +// +// outTime = (uint64)(ts.tv_sec) * 1000000; +// outTime += ts.tv_nsec / 1000; +// +//end_of_function: +// return outTime; +//} +// +// +// +//uint64 PX4LIB_GetPX4TimeMs(void) +//{ +// struct timespec ts; +// int returnCode = 0; +// uint64 outTime = 0; +// +// returnCode = clock_gettime(CLOCK_MONOTONIC, &ts); +// if (-1 == returnCode) +// { +// OS_printf("PX4LIB_GetPX4Time clock_gettime errno: %i", errno); +// goto end_of_function; +// } +// +// outTime = ts.tv_sec * 10000; +// outTime += ts.tv_nsec / 1000000; +// +//end_of_function: +// return outTime; +//} + + uint64 PX4LIB_GetPX4TimeUs(void) { - struct timespec ts; - int returnCode = 0; - uint64 outTime = 0; - - returnCode = clock_gettime(CLOCK_MONOTONIC, &ts); - if (-1 == returnCode) - { - OS_printf("PX4LIB_GetPX4Time clock_gettime errno: %i", errno); - goto end_of_function; - } - - outTime = (uint64)(ts.tv_sec) * 1000000; - outTime += ts.tv_nsec / 1000; - -end_of_function: - return outTime; + return CFE_TIME_GetTimeInMicros(); } uint64 PX4LIB_GetPX4TimeMs(void) { - struct timespec ts; - int returnCode = 0; - uint64 outTime = 0; - - returnCode = clock_gettime(CLOCK_MONOTONIC, &ts); - if (-1 == returnCode) - { - OS_printf("PX4LIB_GetPX4Time clock_gettime errno: %i", errno); - goto end_of_function; - } - - outTime = ts.tv_sec * 10000; - outTime += ts.tv_nsec / 1000000; - -end_of_function: - return outTime; + uint64 result = CFE_TIME_GetTimeInMicros() / 1000; + + return result; } + } /************************/ From c3b394ef12d408b27145528a69d1141a133ab039 Mon Sep 17 00:00:00 2001 From: Mathew Benson Date: Tue, 23 Feb 2021 11:23:24 -0600 Subject: [PATCH 126/370] Added helper functions to cfs_lib --- apps/cfs_lib/fsw/public_inc/cfs_utils.h | 14 +++ apps/cfs_lib/fsw/src/cfs_utils.c | 133 +++++++++++++++++++++++- 2 files changed, 144 insertions(+), 3 deletions(-) diff --git a/apps/cfs_lib/fsw/public_inc/cfs_utils.h b/apps/cfs_lib/fsw/public_inc/cfs_utils.h index 04aded213..5611b5654 100644 --- a/apps/cfs_lib/fsw/public_inc/cfs_utils.h +++ b/apps/cfs_lib/fsw/public_inc/cfs_utils.h @@ -254,6 +254,20 @@ boolean CFS_VerifyString(char *Buffer, int32 BufferSize, boolean StringIsRequired, boolean NeedCharTest); uint64 CFE_TIME_GetTimeInMicros(void); +double CFE_TIME_GetTimeInSeconds(void); +uint64 CFE_TIME_ConvertTimeToMicros(CFE_TIME_SysTime_t time); +double CFE_TIME_ConvertTimeToSeconds(CFE_TIME_SysTime_t time); +void CFE_TIME_ClearTime(CFE_TIME_SysTime_t *time); +boolean CFE_TIME_IsTimeZero(CFE_TIME_SysTime_t time); +void CFE_TIME_SetTimeEqual(CFE_TIME_SysTime_t *left, CFE_TIME_SysTime_t right); +CFE_TIME_SysTime_t CFE_TIME_ElapsedTime(CFE_TIME_SysTime_t sinceTime); +uint64 CFE_TIME_ElapsedTimeInMicros(CFE_TIME_SysTime_t sinceTime); +void CFE_SB_CopyMsgTime(CFE_SB_MsgPtr_t dest, const CFE_SB_MsgPtr_t src); +boolean CFE_SB_IsMsgTimeZero(const CFE_SB_MsgPtr_t msg); +uint64 CFE_SB_GetMsgTimeInMicros(const CFE_SB_MsgPtr_t msg); +double CFE_SB_GetMsgTimeInSeconds(const CFE_SB_MsgPtr_t msg); +CFE_TIME_Compare_t CFE_SB_CompareMsgTime(const CFE_SB_MsgPtr_t msgA, const CFE_SB_MsgPtr_t msgB); + #ifdef __cplusplus } diff --git a/apps/cfs_lib/fsw/src/cfs_utils.c b/apps/cfs_lib/fsw/src/cfs_utils.c index 5612345ed..69be13244 100644 --- a/apps/cfs_lib/fsw/src/cfs_utils.c +++ b/apps/cfs_lib/fsw/src/cfs_utils.c @@ -532,18 +532,145 @@ boolean CFS_VerifyString(char *Buffer, int32 BufferSize, uint64 CFE_TIME_GetTimeInMicros(void) { CFE_TIME_SysTime_t current; - uint32 micros = 0; uint64 timeInMicros = 0; current = CFE_TIME_GetTime(); - micros = CFE_TIME_Sub2MicroSecs(current.Subseconds); + timeInMicros = CFE_TIME_ConvertTimeToMicros(current); + + return timeInMicros; +} + + +double CFE_TIME_GetTimeInSeconds(void) +{ + CFE_TIME_SysTime_t current; + double seconds = 0.0; + + current = CFE_TIME_GetTime(); - timeInMicros = (current.Seconds * 1000000) + micros; + seconds = CFE_TIME_ConvertTimeToSeconds(current); + + return seconds; +} + + +uint64 CFE_TIME_ConvertTimeToMicros(CFE_TIME_SysTime_t time) +{ + uint64 micros = 0; + uint64 timeInMicros = 0; + + micros = CFE_TIME_Sub2MicroSecs(time.Subseconds); + + timeInMicros = (((uint64)time.Seconds) * 1000000LLU) + micros; return timeInMicros; } + +double CFE_TIME_ConvertTimeToSeconds(CFE_TIME_SysTime_t time) +{ + CFE_TIME_SysTime_t current; + uint64 micros = 0; + double timeInSeconds = 0; + + micros = CFE_TIME_Sub2MicroSecs(current.Subseconds); + + timeInSeconds = (time.Seconds) + (micros / 1000000.0); + + return timeInSeconds; +} + + +void CFE_TIME_ClearTime(CFE_TIME_SysTime_t *time) +{ + time->Seconds = 0; + time->Subseconds = 0; +} + + +boolean CFE_TIME_IsTimeZero(CFE_TIME_SysTime_t time) +{ + if((time.Seconds == 0) && (time.Subseconds == 0)) + { + return TRUE; + } + else + { + return FALSE; + } +} + + +CFE_TIME_SysTime_t CFE_TIME_ElapsedTime(CFE_TIME_SysTime_t sinceTime) +{ + CFE_TIME_SysTime_t now = CFE_TIME_GetTime(); + CFE_TIME_SysTime_t elapsedTime; + + elapsedTime = CFE_TIME_Subtract(now, elapsedTime); + + return elapsedTime; +} + + +void CFE_TIME_SetTimeEqual(CFE_TIME_SysTime_t *left, CFE_TIME_SysTime_t right) +{ + if(0 == left) + { + left->Seconds = right.Seconds; + left->Subseconds = right.Subseconds; + } +} + + +uint64 CFE_TIME_ElapsedTimeInMicros(CFE_TIME_SysTime_t sinceTime) +{ + CFE_TIME_SysTime_t elapsedTime; + uint64 micros; + + elapsedTime = CFE_TIME_ElapsedTime(sinceTime); + + micros = CFE_TIME_ConvertTimeToMicros(elapsedTime); + + return micros; +} + + + +void CFE_SB_CopyMsgTime(CFE_SB_MsgPtr_t dest, const CFE_SB_MsgPtr_t src) +{ + CFE_SB_SetMsgTime(dest, CFE_SB_GetMsgTime(src)); +} + + + +boolean CFE_SB_IsMsgTimeZero(const CFE_SB_MsgPtr_t msg) +{ + return CFE_TIME_IsTimeZero(CFE_SB_GetMsgTime(msg)); +} + + + +uint64 CFE_SB_GetMsgTimeInMicros(const CFE_SB_MsgPtr_t msg) +{ + return CFE_TIME_ConvertTimeToMicros(CFE_SB_GetMsgTime(msg)); +} + + + +double CFE_SB_GetMsgTimeInSeconds(const CFE_SB_MsgPtr_t msg) +{ + return CFE_TIME_ConvertTimeToSeconds(CFE_SB_GetMsgTime(msg)); +} + + + +CFE_TIME_Compare_t CFE_SB_CompareMsgTime(const CFE_SB_MsgPtr_t msgA, const CFE_SB_MsgPtr_t msgB) +{ + return CFE_TIME_Compare(CFE_SB_GetMsgTime(msgA), CFE_SB_GetMsgTime(msgB)); +} + + /************************/ /* End of File Comment */ /************************/ From 1c0a3a305c174b5a9c261839f430fe0079b2e80a Mon Sep 17 00:00:00 2001 From: Mathew Benson Date: Tue, 23 Feb 2021 11:24:28 -0600 Subject: [PATCH 127/370] Reversed rotation of the rotors in the shared configuration, to match the sitl build. --- config/shared/apps/amc/tables/amc_mixercfg.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/config/shared/apps/amc/tables/amc_mixercfg.c b/config/shared/apps/amc/tables/amc_mixercfg.c index 637fae72d..e7635a4ed 100644 --- a/config/shared/apps/amc/tables/amc_mixercfg.c +++ b/config/shared/apps/amc/tables/amc_mixercfg.c @@ -53,10 +53,10 @@ MultirotorMixer_ConfigTable_t AMC_MixerCfgTbl = MIXER_QUAD_X, /* Rotor Geometry */ { /* Rotor # | Roll Scale | Pitch Scale | Yaw Scale | Output Scale */ - /* 0 */ { -0.707107, 0.707107, -1.000000, 1.000000 }, - /* 1 */ { 0.707107, -0.707107, -1.000000, 1.000000 }, - /* 2 */ { 0.707107, 0.707107, 1.000000, 1.000000 }, - /* 3 */ { -0.707107, -0.707107, 1.000000, 1.000000 } + /* 0 */ { -0.707107, 0.707107, 1.000000, 1.000000 }, + /* 1 */ { 0.707107, -0.707107, 1.000000, 1.000000 }, + /* 2 */ { 0.707107, 0.707107, -1.000000, 1.000000 }, + /* 3 */ { -0.707107, -0.707107, -1.000000, 1.000000 } } }; From 9b6bfe653c8f5104c92289c634713b8221382393 Mon Sep 17 00:00:00 2001 From: lorenzo-gomez-windhover Date: Tue, 23 Feb 2021 13:08:54 -0600 Subject: [PATCH 128/370] -Updated MsgID for CFE events --- .../tools/commander/workspace_template/etc/yamcs.yamcs-cfs.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/base/tools/commander/workspace_template/etc/yamcs.yamcs-cfs.yaml b/core/base/tools/commander/workspace_template/etc/yamcs.yamcs-cfs.yaml index f01b868e3..0241f879d 100644 --- a/core/base/tools/commander/workspace_template/etc/yamcs.yamcs-cfs.yaml +++ b/core/base/tools/commander/workspace_template/etc/yamcs.yamcs-cfs.yaml @@ -23,7 +23,7 @@ services: warmupTime: 60 - class: org.yamcs.tctm.cfs.CfsEventDecoder args: - msgIds: [0x0808] + msgIds: [0x0815] #Always confirm this ID with CFE_EVS configuration byteOrder: LITTLE_ENDIAN appNameMax: 40 eventMsgMax: 122 From c2ee33d212f0c673a39d693d376816b0fe2fd4a8 Mon Sep 17 00:00:00 2001 From: Casey Nalley Date: Tue, 23 Feb 2021 13:58:09 -0600 Subject: [PATCH 129/370] Update cpd build to be completely embedded and update startup script. --- apps/sbn/fsw/src/sbn_subs.c | 5 ++ config/obc/cpd/target/CMakeLists.txt | 3 + config/obc/cpd/target/cfe_es_startup.scr | 72 ++++++++++++------------ 3 files changed, 44 insertions(+), 36 deletions(-) diff --git a/apps/sbn/fsw/src/sbn_subs.c b/apps/sbn/fsw/src/sbn_subs.c index 7f9630449..e7c9bd880 100644 --- a/apps/sbn/fsw/src/sbn_subs.c +++ b/apps/sbn/fsw/src/sbn_subs.c @@ -21,10 +21,15 @@ #include "sbn_app.h" #include +/* TODO */ //#include #include "cfe_msgids.h" #include "sbn_pack.h" +/* TODO */ +#define htons(x) (x) +#define ntohs(x) (x) + // TODO: instead of using void * for the buffer for SBN messages, use // a struct that has the SBN header in packed bytes. diff --git a/config/obc/cpd/target/CMakeLists.txt b/config/obc/cpd/target/CMakeLists.txt index 71cf9c041..689a833dd 100644 --- a/config/obc/cpd/target/CMakeLists.txt +++ b/config/obc/cpd/target/CMakeLists.txt @@ -28,6 +28,7 @@ buildliner_add_app( buildliner_add_app( pq_lib + EMBEDDED DEFINITION ${PROJECT_SOURCE_DIR}/apps/pq_lib/fsw/for_build # TODO move this table build to sbn module? CONFIG ${CMAKE_CURRENT_SOURCE_DIR}/apps/pq_lib @@ -127,6 +128,7 @@ buildliner_add_app( buildliner_add_app( sbn + EMBEDDED DEFINITION ${PROJECT_SOURCE_DIR}/apps/sbn/fsw/for_build CONFIG ${CMAKE_CURRENT_SOURCE_DIR}/apps/sbn CONFIG_SOURCES @@ -135,6 +137,7 @@ buildliner_add_app( buildliner_add_app( sbn_mbox + EMBEDDED DEFINITION ${PROJECT_SOURCE_DIR}/apps/sbn/modules/mbox/fsw/for_build CONFIG_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/apps/pq_lib/tables/pq_backup_cfg.c diff --git a/config/obc/cpd/target/cfe_es_startup.scr b/config/obc/cpd/target/cfe_es_startup.scr index d1dfc8f35..195a8b67b 100644 --- a/config/obc/cpd/target/cfe_es_startup.scr +++ b/config/obc/cpd/target/cfe_es_startup.scr @@ -1,39 +1,39 @@ -CFE_LIB, /cf/apps/CFS_LIB.so, CFS_LibInit, CFS_LIB, 0, 0, 0x0, 0, 2; -CFE_LIB, /cf/apps/PRMLIB.so, PRMLIB_LibInit, PRMLIB, 0, 0, 0x0, 0, 2; -CFE_LIB, /cf/apps/PX4LIB.so, PX4LIB_LibInit, PX4LIB, 0, 0, 0x0, 0, 2; -CFE_APP, /cf/apps/AMC.so, AMC_AppMain, AMC, 43, 327680, 0x0, 0, 2; -CFE_APP, /cf/apps/SENS.so, SENS_AppMain, SENS, 52, 327680, 0x0, 0, 2; -CFE_APP, /cf/apps/MPU9250.so, MPU9250_AppMain, MPU9250, 46, 327680, 0x0, 0, 2; -CFE_APP, /cf/apps/HMC5883.so, HMC5883_AppMain, HMC5883, 49, 327680, 0x0, 0, 2; -CFE_APP, /cf/apps/MS5611.so, MS5611_AppMain, MS5611, 82, 327680, 0x0, 0, 2; -CFE_APP, /cf/apps/MAC.so, MAC_AppMain, MAC, 55, 327680, 0x0, 0, 4; -CFE_APP, /cf/apps/GPS.so, GPS_AppMain, GPS, 97, 327680, 0x0, 0, 2; -CFE_APP, /cf/apps/CI.so, CI_AppMain, CI, 115, 327680, 0x0, 0, 2; -CFE_APP, /cf/apps/TO.so, TO_AppMain, TO, 124, 327680, 0x0, 0, 2; -CFE_APP, /cf/apps/CF.so, CF_AppMain, CF, 157, 327680, 0x0, 0, 2; -CFE_APP, /cf/apps/BAT.so, BAT_AppMain, BAT, 106, 327680, 0x0, 0, 2; -CFE_APP, /cf/apps/FM.so, FM_AppMain, FM, 163, 327680, 0x0, 0, 2; -CFE_APP, /cf/apps/LC.so, LC_AppMain, LC, 178, 327680, 0x0, 0, 2; -CFE_APP, /cf/apps/MM.so, MM_AppMain, MM, 172, 327680, 0x0, 0, 2; -CFE_APP, /cf/apps/SC.so, SC_AppMain, SC, 175, 327680, 0x0, 0, 2; -CFE_APP, /cf/apps/MD.so, MD_AppMain, MD, 169, 327680, 0x0, 0, 2; -CFE_APP, /cf/apps/PE.so, PE_AppMain, PE, 76, 327680, 0x0, 0, 4; -CFE_APP, /cf/apps/QAE.so, QAE_AppMain, QAE, 58, 327680, 0x0, 0, 4; -CFE_APP, /cf/apps/MPC.so, MPC_AppMain, MPC, 61, 327680, 0x0, 0, 4; -CFE_APP, /cf/apps/NAV.so, NAV_AppMain, NAV, 100, 327680, 0x0, 0, 4; -CFE_APP, /cf/apps/VM.so, VM_AppMain, VM, 70, 327680, 0x0, 0, 4; -CFE_APP, /cf/apps/CS.so, CS_AppMain, CS, 160, 327680, 0x0, 0, 2; -CFE_APP, /cf/apps/RCIN.so, RCIN_AppMain, RCIN, 88, 327680, 0x0, 0, 2; -CFE_APP, /cf/apps/LD.so, LD_AppMain, LD, 73, 327680, 0x0, 0, 4; -CFE_APP, /cf/apps/RGBLED.so, RGBLED_AppMain, RGBLED, 151, 327680, 0x0, 0, 2; -CFE_APP, /cf/apps/SBN.so, SBN_AppMain, SBN, 37, 327680, 0x0, 0, 2; -CFE_APP, /cf/apps/SCH.so, SCH_AppMain, SCH, 34, 40960, 0x0, 0, 2; -!CFE_LIB, /cf/apps/schlib.so, SCH_LibInit, SCH_LIB, 0, 0, 0x0, 0, 2; -CFE_APP, /cf/apps/VC.so, VC_AppMain, VC, 181, 327680, 0x0, 0, 2; -CFE_APP, /cf/apps/FLOW.so, FLOW_AppMain, FLOW, 80, 327680, 0x0, 0, 2; -CFE_APP, /cf/apps/HS.so, HS_AppMain, HS, 123, 32768, 0x0, 0, 2; -!CFE_APP, /cf/apps/ETA.so, ETA_AppMain, ETA, 100, 32768, 0x0, 0, 2; -!CFE_APP, /cf/apps/SBN.so, SBN_AppMain, SBN, 37, 32768, 0x0, 0, 2; +CFE_LIB, /embedded/CFS_LIB.so, CFS_LibInit, CFS_LIB, 0, 0, 0x0, 0, 2; +CFE_LIB, /embedded/PRMLIB.so, PRMLIB_LibInit, PRMLIB, 0, 0, 0x0, 0, 2; +CFE_LIB, /embedded/PX4LIB.so, PX4LIB_LibInit, PX4LIB, 0, 0, 0x0, 0, 2; +CFE_APP, /embedded/AMC.so, AMC_AppMain, AMC, 43, 327680, 0x0, 0, 2; +CFE_APP, /embedded/SENS.so, SENS_AppMain, SENS, 52, 327680, 0x0, 0, 2; +CFE_APP, /embedded/MPU9250.so, MPU9250_AppMain, MPU9250, 46, 327680, 0x0, 0, 2; +CFE_APP, /embedded/HMC5883.so, HMC5883_AppMain, HMC5883, 49, 327680, 0x0, 0, 2; +CFE_APP, /embedded/MS5611.so, MS5611_AppMain, MS5611, 82, 327680, 0x0, 0, 2; +CFE_APP, /embedded/MAC.so, MAC_AppMain, MAC, 55, 327680, 0x0, 0, 4; +CFE_APP, /embedded/GPS.so, GPS_AppMain, GPS, 97, 327680, 0x0, 0, 2; +CFE_APP, /embedded/CI.so, CI_AppMain, CI, 115, 327680, 0x0, 0, 2; +CFE_APP, /embedded/TO.so, TO_AppMain, TO, 124, 327680, 0x0, 0, 2; +CFE_APP, /embedded/CF.so, CF_AppMain, CF, 157, 327680, 0x0, 0, 2; +CFE_APP, /embedded/BAT.so, BAT_AppMain, BAT, 106, 327680, 0x0, 0, 2; +CFE_APP, /embedded/FM.so, FM_AppMain, FM, 163, 327680, 0x0, 0, 2; +CFE_APP, /embedded/LC.so, LC_AppMain, LC, 178, 327680, 0x0, 0, 2; +CFE_APP, /embedded/MM.so, MM_AppMain, MM, 172, 327680, 0x0, 0, 2; +CFE_APP, /embedded/SC.so, SC_AppMain, SC, 175, 327680, 0x0, 0, 2; +CFE_APP, /embedded/MD.so, MD_AppMain, MD, 169, 327680, 0x0, 0, 2; +CFE_APP, /embedded/PE.so, PE_AppMain, PE, 76, 327680, 0x0, 0, 4; +CFE_APP, /embedded/QAE.so, QAE_AppMain, QAE, 58, 327680, 0x0, 0, 4; +CFE_APP, /embedded/MPC.so, MPC_AppMain, MPC, 61, 327680, 0x0, 0, 4; +CFE_APP, /embedded/NAV.so, NAV_AppMain, NAV, 100, 327680, 0x0, 0, 4; +CFE_APP, /embedded/VM.so, VM_AppMain, VM, 70, 327680, 0x0, 0, 4; +CFE_APP, /embedded/CS.so, CS_AppMain, CS, 160, 327680, 0x0, 0, 2; +CFE_APP, /embedded/RCIN.so, RCIN_AppMain, RCIN, 88, 327680, 0x0, 0, 2; +CFE_APP, /embedded/LD.so, LD_AppMain, LD, 73, 327680, 0x0, 0, 4; +CFE_APP, /embedded/RGBLED.so, RGBLED_AppMain, RGBLED, 151, 327680, 0x0, 0, 2; +CFE_APP, /embedded/SBN.so, SBN_AppMain, SBN, 37, 327680, 0x0, 0, 2; +CFE_APP, /embedded/SCH.so, SCH_AppMain, SCH, 34, 40960, 0x0, 0, 2; +!CFE_LIB, /embedded/schlib.so, SCH_LibInit, SCH_LIB, 0, 0, 0x0, 0, 2; +CFE_APP, /embedded/VC.so, VC_AppMain, VC, 181, 327680, 0x0, 0, 2; +CFE_APP, /embedded/FLOW.so, FLOW_AppMain, FLOW, 80, 327680, 0x0, 0, 2; +CFE_APP, /embedded/HS.so, HS_AppMain, HS, 123, 32768, 0x0, 0, 2; +!CFE_APP, /embedded/ETA.so, ETA_AppMain, ETA, 100, 32768, 0x0, 0, 2; +!CFE_APP, /embedded/SBN.so, SBN_AppMain, SBN, 37, 32768, 0x0, 0, 2; ! ! Startup script fields: ! 1. Object Type -- CFE_APP for an Application, or CFE_LIB for a library. From 9dea0854e60d5c5a9d9a573658a6fc01bea2f770 Mon Sep 17 00:00:00 2001 From: Casey Nalley Date: Tue, 23 Feb 2021 16:40:50 -0600 Subject: [PATCH 130/370] Update build system dependency. --- config/obc/cpd/inc/sch_platform_cfg.h | 293 +++++++++++++++++++++++ config/obc/cpd/target/cfe_es_startup.scr | 1 + core/base/psp/make/build-functions.cmake | 6 +- 3 files changed, 298 insertions(+), 2 deletions(-) create mode 100644 config/obc/cpd/inc/sch_platform_cfg.h diff --git a/config/obc/cpd/inc/sch_platform_cfg.h b/config/obc/cpd/inc/sch_platform_cfg.h new file mode 100644 index 000000000..f76b85dce --- /dev/null +++ b/config/obc/cpd/inc/sch_platform_cfg.h @@ -0,0 +1,293 @@ +#ifndef SCH_PLATFORM_CFG_H +#define SCH_PLATFORM_CFG_H + +#include "osapi.h" + + +/************************************************************************* +** Macro definitions +**************************************************************************/ + +/** +** \schcfg Software Bus Command Pipe Depth +** +** \par Description: +** Dictates the number of messages to SCH that can be queued while awaiting +** processing by the SCH Application. +** +** \par Limits +** Must be greater than zero +*/ +#define SCH_PIPE_DEPTH 12 /**< \brief SCH Command Pipe Depth */ + +#define SCH_AD_PIPE_DEPTH 3 +#define SCH_AD_CHILD_TASK_PRIORITY 37 +#define SCH_AD_CHILD_TASK_FLAGS OS_ENABLE_CORE_0 + +/*#define SCH_RTM_SUPPORTED*/ + +/* +** Schedule table definitions... +*/ +/** +** \schcfg Minor Frame Frequency (in Hz) +** +** \par Description: +** Dictates the number of minor frame slots within each Major Frame. +** +** \par Limits +** Must be 2 or more and less than 65536 +*/ +#define SCH_TOTAL_SLOTS 250 /* SCH wake-up rate (Hz) */ + + +/** +** \schcfg Maximum number of Activities per Minor Frame +** +** \par Description: +** Dictates the number of activities that can be defined for each Minor Frame. +** +** \par Limits +** Must be at least one +*/ +#define SCH_ENTRIES_PER_SLOT 15 + + +/** +** \schcfg Maximum Number of Message Definitions in Message Definition Table +** +** \par Description: +** Dictates the number of messages that can be defined in Message Definition Table. +** +** \par Limits +** Must be at least one +*/ +#define SCH_MAX_MESSAGES 128 + +/** +** \schcfg Maximum Message ID allowed in Message Definition Table +** +** \par Description: +** Dictates the maximum message ID that can be used in the Message Definition Table. +** +** \par Limits +** Must be less than or equal to SCH_MDT_MAX_MSG_ID and greater than or equal to 0 +*/ +#define SCH_MDT_MIN_MSG_ID 0 + +/** +** \schcfg Minimum Message ID allowed in Message Definition Table +** +** \par Description: +** Dictates the minimum message ID that can be used in the Message Definition Table. +** +** \par Limits +** Must be less than or equal to #CFE_SB_HIGHEST_VALID_MSGID and greater than SCH_MDT_MIN_MSG_ID +*/ +#define SCH_MDT_MAX_MSG_ID CFE_SB_HIGHEST_VALID_MSGID + + +/** +** \schcfg Maximum Length, in Words, of a Message +** +** \par Description: +** Dictates the maximum number of words that can be assigned to a particular message +** in the Message Definition Table. +** +** \par Limits +** Must be at least large enough to hold the smallest possible message header +* ** (see #CFE_SB_TLM_HDR_SIZE and #CFE_SB_CMD_HDR_SIZE) +*/ +#define SCH_MAX_MSG_WORDS 64 /* max message length (in words) */ + + +/* +** Limits for how far we can get behind and how much we can do at once... +*/ +/** +** \schcfg Maximum Number of slots allowed for catch-up before skipping +** +** \par Description: +** Dictates the number of Minor Frames that will be processed in "Catch Up" +** mode before giving up and skipping ahead. +** +** \par Limits +** +*/ +#define SCH_MAX_LAG_COUNT (SCH_TOTAL_SLOTS / 2) + + +/** +** \schcfg Maximum Number of Slots to be processed when in "Catch Up" mode +** +** \par Description: +** Dictates the maximum number of slots SCH will process when trying to +** "Catch Up" to the correct slot for the current time. +** +** \par Limits +** Must be at least one +*/ +#define SCH_MAX_SLOTS_PER_WAKEUP 5 + +/* +** Conversion factor for how many microseconds in a wake-up period... +*/ +/** +** \schcfg Major Frame Period (in microseconds) +** +** \par Description: +** Dictates the number microseconds in a Major Frame. +** +** \par Limits +** Must be greater than zero +*/ +#define SCH_MICROS_PER_MAJOR_FRAME 1000000 + + +/** +** \schcfg Additional time allowed in Sync Slot to wait for Major Frame Sync (in microseconds) +** +** \par Description: +** Dictates the additional time allowed in the Syncronization Slot +** to allow the Major Frame Sync signal to be received and re-synchronize +** processing. +** +** \par Limits +** Must be less than the normal slot period +*/ +#define SCH_SYNC_SLOT_DRIFT_WINDOW 500 + + +/** +** \schcfg Time, in milliseconds, to wait for all applications to be started and ready to run +** +** \par Description: +** Dictates the timeout for the #CFE_ES_WaitForStartupSync call that SCH uses to wait +** for all of the Applications specified in the startup script to finish initialization. +** SCH will wait this amount of time before assuming all startup script applications have +** been started and will then begin nominal schedule processing. +** +** \par Limits +** None +*/ +#define SCH_STARTUP_SYNC_TIMEOUT 50000 + + +/** +** \schcfg Time, in microseconds, to wait for first Major Frame Sync to arrive +** +** \par Description: +** Dictates the time allowed for the first Major Frame sync signal to arrive +** before assuming it is not going to occur and switching to a freewheeling +** mode. +** +** \par Limits +** Must be greater than or equal to the Major Frame Period +*/ +#define SCH_STARTUP_PERIOD (5*SCH_MICROS_PER_MAJOR_FRAME) + + +/* +** Specifies the limit on the number of consecutive noisy Major Frame signals +** before we begin to ignore them. +*/ +/** +** \schcfg Maximum Number of consecutive Noisy Major Frame signals before they are ignored +** +** \par Description: +** Dictates the number of consecutive "Noisy" Major Frame Signals (i.e. - signals that +** occur outside the expected window of their occurence) until the Major Frame signal +** is automatically ignored and the Minor Frame Timer is used instead. +** +** \par Limits +** This value should never be set to less than two because a single "noisy" Major +** Frame signal is likely when turning on or switching the 1 Hz signal on the spacecraft. +*/ +#define SCH_MAX_NOISY_MAJORF 2 + + +/** +** \schcfg Scheduler API Library Usage Status +** +** \par Description: +** Determines whether or not the Scheduler application is using the API library allowing +** for external tasks to disable and enable schedule processing. Note that if the library +** is to be used it must be generated as a separate object, and loaded prior to the +** appplication. +** +** \par Limits +** This value must either be 0 when not using or including the library, or 1 if the library +** is going to be used. +*/ +#define SCH_LIB_PRESENCE 1 + + +/** +** \schcfg Scheduler API Library Initial Inhibition Count +** +** \par Description: +** Sets the number of times the scheduler must be enabled following library initialization. +** This allows the scheduler to come up either enabled (set to 0) or disabled (set to +** a value greater than or equal to 1) +** +** \par Limits +** This value must be an unsigned 32 bit integer. +*/ +#define SCH_LIB_DIS_CTR 0 + + +/** +** \schcfg Default SCH Schedule Definition Table Filename +** +** \par Description: +** The value of this constant defines the default filename of +** the SCH Schedule Definition Table +** +** \par Limits +** The length of each string, including the NULL terminator cannot exceed +** the #OS_MAX_PATH_LEN value. +*/ + +#define SCH_SCHEDULE_FILENAME "/ram/apps/sch_def_schtbl.tbl" + + +/** +** \schcfg Default SCH Message Definition Table Filename +** +** \par Description: +** The value of this constant defines the default filename of the +** SCH Message Definition Table +** +** \par Limits +** The length of each string, including the NULL terminator cannot exceed +** the #OS_MAX_PATH_LEN value. +*/ + +#define SCH_MESSAGE_FILENAME "/ram/apps/sch_def_msgtbl.tbl" + + +/** \schcfg Mission specific version number for SCH application +** +** \par Description: +** An application version number consists of four parts: +** major version number, minor version number, revision +** number and mission specific revision number. The mission +** specific revision number is defined here and the other +** parts are defined in "sch_version.h". +** +** \par Limits: +** Must be defined as a numeric value that is greater than +** or equal to zero. +*/ + +#define SCH_MISSION_REV 0 + +#define SCH_DEADLINES_PER_SLOT 5 + + + +#endif /* SCH_PLATFORM_CFG_H */ + +/************************/ +/* End of File Comment */ +/************************/ diff --git a/config/obc/cpd/target/cfe_es_startup.scr b/config/obc/cpd/target/cfe_es_startup.scr index 195a8b67b..a8e1087d5 100644 --- a/config/obc/cpd/target/cfe_es_startup.scr +++ b/config/obc/cpd/target/cfe_es_startup.scr @@ -1,6 +1,7 @@ CFE_LIB, /embedded/CFS_LIB.so, CFS_LibInit, CFS_LIB, 0, 0, 0x0, 0, 2; CFE_LIB, /embedded/PRMLIB.so, PRMLIB_LibInit, PRMLIB, 0, 0, 0x0, 0, 2; CFE_LIB, /embedded/PX4LIB.so, PX4LIB_LibInit, PX4LIB, 0, 0, 0x0, 0, 2; +CFE_LIB, /embedded/PQ_LIB.so, PQ_LibInit, PQ_LIB, 0, 0, 0x0, 0, 2; CFE_APP, /embedded/AMC.so, AMC_AppMain, AMC, 43, 327680, 0x0, 0, 2; CFE_APP, /embedded/SENS.so, SENS_AppMain, SENS, 52, 327680, 0x0, 0, 2; CFE_APP, /embedded/MPU9250.so, MPU9250_AppMain, MPU9250, 46, 327680, 0x0, 0, 2; diff --git a/core/base/psp/make/build-functions.cmake b/core/base/psp/make/build-functions.cmake index b13546b18..a2358408e 100644 --- a/core/base/psp/make/build-functions.cmake +++ b/core/base/psp/make/build-functions.cmake @@ -292,7 +292,8 @@ function(psp_add_executable) ) add_dependencies(${INITRD_TARGET} ${TARGET_BINARY_WITHOUT_SYMTAB}) add_dependencies(${TARGET_BINARY} ${INITRD_TARGET}) - add_dependencies(${TARGET_BINARY} build-file-system) + add_dependencies(${TARGET_BINARY} build-file-system) + add_dependencies(${INITRD_TARGET} build-file-system) target_sources(${TARGET_BINARY} PUBLIC ${CMAKE_CURRENT_BINARY_DIR}/${INITRD_SOURCE_FILE}) endif() @@ -901,7 +902,7 @@ function(psp_buildliner_add_table) ) add_custom_target(${PARSED_ARGS_NAME} ALL DEPENDS ${PARSED_ARGS_NAME}.tbl ${PARSED_ARGS_SOURCES} - ) + ) add_dependencies(build-file-system ${PARSED_ARGS_NAME}) endif() @@ -909,6 +910,7 @@ function(psp_buildliner_add_table) if(PARSED_ARGS_COPY) file(COPY ${PARSED_ARGS_COPY} DESTINATION ${INSTALL_DIR}) endif() + endfunction(psp_buildliner_add_table) From e870cd5fca97600f2b46a52c1eeabb64cb2986c4 Mon Sep 17 00:00:00 2001 From: Mathew Benson Date: Tue, 23 Feb 2021 20:34:05 -0600 Subject: [PATCH 131/370] Cleaned up formatting in px4_msgs.h --- apps/px4lib/fsw/public_inc/px4_msgs.h | 1270 +++++++++---------------- 1 file changed, 431 insertions(+), 839 deletions(-) diff --git a/apps/px4lib/fsw/public_inc/px4_msgs.h b/apps/px4lib/fsw/public_inc/px4_msgs.h index 7a6c98587..6f0309d81 100644 --- a/apps/px4lib/fsw/public_inc/px4_msgs.h +++ b/apps/px4lib/fsw/public_inc/px4_msgs.h @@ -576,52 +576,58 @@ typedef enum typedef struct { - uint8 TlmHeader[CFE_SB_TLM_HDR_SIZE]; - boolean Armed; - boolean Prearmed; - boolean ReadyToArm; - boolean Lockdown; - boolean ManualLockdown; - boolean ForceFailsafe; - boolean InEscCalibrationMode; + uint8 TlmHeader[CFE_SB_TLM_HDR_SIZE]; + uint64 Timestamp; + boolean Armed; + boolean Prearmed; + boolean ReadyToArm; + boolean Lockdown; + boolean ManualLockdown; + boolean ForceFailsafe; + boolean InEscCalibrationMode; } PX4_ActuatorArmedMsg_t; typedef struct { uint8 TlmHeader[CFE_SB_TLM_HDR_SIZE]; + uint64 Timestamp; + uint64 SampleTime; float Control[PX4_ACTUATOR_CONTROL_COUNT]; } PX4_ActuatorControlsMsg_t; typedef struct { - uint8 TlmHeader[CFE_SB_TLM_HDR_SIZE]; + uint8 TlmHeader[CFE_SB_TLM_HDR_SIZE]; + uint64 Timestamp; uint32 Count; - float Output[PX4_ACTUATOR_OUTPUTS_MAX]; + float Output[PX4_ACTUATOR_OUTPUTS_MAX]; } PX4_ActuatorOutputsMsg_t; typedef struct { uint8 TlmHeader[CFE_SB_TLM_HDR_SIZE]; - float IndicatedAirspeed; /* m/s */ - float TrueAirspeed; /* m/s */ - float TrueAirspeedUnfiltered; /* m/s */ - float AirTemperature; /* Celsius */ + uint64 Timestamp; + float IndicatedAirspeed; /* m/s */ + float TrueAirspeed; /* m/s */ + float TrueAirspeedUnfiltered; /* m/s */ + float AirTemperature; /* Celsius */ float Confidence; } PX4_AirspeedMsg_t; typedef struct { - uint8 TlmHeader[CFE_SB_TLM_HDR_SIZE]; - float Voltage; /* V */ - float VoltageFiltered; /* V */ - float Current; /* A */ - float CurrentFiltered; /* A */ - float Discharged; /* mAh */ - float Remaining; - float Scale; - int32 CellCount; - boolean Connected; + uint8 TlmHeader[CFE_SB_TLM_HDR_SIZE]; + uint64 Timestamp; + float Voltage; /* V */ + float VoltageFiltered; /* V */ + float Current; /* A */ + float CurrentFiltered; /* A */ + float Discharged; /* mAh */ + float Remaining; + float Scale; + int32 CellCount; + boolean Connected; PX4_BatteryWarningSeverity_t Warning; } PX4_BatteryStatusMsg_t; @@ -636,218 +642,73 @@ typedef struct typedef struct { - uint8 TlmHeader[CFE_SB_TLM_HDR_SIZE]; + uint8 TlmHeader[CFE_SB_TLM_HDR_SIZE]; uint64 Timestamp; - float AccX; - float AccY; - float AccZ; - float VelX; - float VelY; - float VelZ; - float PosX; - float PosY; - float PosZ; - float Airspeed; - float VelVariance[3]; - float PosVariance[3]; - float Q[4]; - float DeltaQReset[4]; - float RollRate; - float PitchRate; - float YawRate; - float HorzAccMag; - float RollRateBias; - float PitchRateBias; - float YawRateBias; - boolean AirspeedValid; - uint8 QuatResetCounter; + float AccX; + float AccY; + float AccZ; + float VelX; + float VelY; + float VelZ; + float PosX; + float PosY; + float PosZ; + float Airspeed; + float VelVariance[3]; + float PosVariance[3]; + float Q[4]; + float DeltaQReset[4]; + float RollRate; + float PitchRate; + float YawRate; + float HorzAccMag; + float RollRateBias; + float PitchRateBias; + float YawRateBias; + boolean AirspeedValid; + uint8 QuatResetCounter; } PX4_ControlStateMsg_t; typedef struct { - uint8 TlmHeader[CFE_SB_TLM_HDR_SIZE]; + uint8 TlmHeader[CFE_SB_TLM_HDR_SIZE]; + uint64 Timestamp; uint64 ErrorCount; - float DifferentialPressureRaw; - float DifferentialPressureFiltered; - float Temperature; + float DifferentialPressureRaw; + float DifferentialPressureFiltered; + float Temperature; } PX4_DifferentialPressureMsg_t; typedef struct { uint8 TlmHeader[CFE_SB_TLM_HDR_SIZE]; - uint64 Timestamp; - float MinDistance; - float MaxDistance; - float CurrentDistance; - float Covariance; - PX4_DistanceSensorType_t Type : 8; - uint8 ID; - PX4_SensorOrientation_t Orientation : 8; + uint64 Timestamp; + float MinDistance; + float MaxDistance; + float CurrentDistance; + float Covariance; + PX4_DistanceSensorType_t Type : 8; + uint8 ID; + PX4_SensorOrientation_t Orientation : 8; } PX4_DistanceSensorMsg_t; typedef struct { uint8 TlmHeader[CFE_SB_TLM_HDR_SIZE]; - uint64 Timestamp; - float NavRoll; - float NavPitch; - float NavBearing; - float TargetBearing; - float WpDist; - float XtrackError; - float TurnDistance; - float LandingHorizontalSlopeDisplacement; - float LandingSlopeAngleRad; - float LandingFlareLength; - boolean AbortLanding; -} PX4_FwPosCtrlStatusMsg_t; - - -typedef struct -{ - uint8 TlmHeader[CFE_SB_TLM_HDR_SIZE]; - uint64 Timestamp; - float RollBody; - float PitchBody; - float YawBody; - float YawSpMoveRate; - float RBody[9]; - float Q_D[4]; - float Q_E[4]; - float Thrust; - boolean RValid; - boolean Q_D_Valid; - boolean Q_E_Valid; - boolean RollResetIntegral; - boolean PitchResetIntegral; - boolean YawResetIntegral; - boolean FwControlYaw; - boolean DisableMcYawControl; - boolean ApplyFlaps; -} PX4_FwVirtualAttitudeSetpointMsg_t; - -typedef struct -{ - uint8 TlmHeader[CFE_SB_TLM_HDR_SIZE]; - uint64 Timestamp; - float Roll; - float Pitch; - float Yaw; - float Thrust; -} PX4_FwVirtualRatesSetpointMsg_t; - -typedef struct -{ - uint8 TlmHeader[CFE_SB_TLM_HDR_SIZE]; - uint64 Timestamp; - float VelPosInnov[6]; - float MagInnov[3]; - float HeadingInnov; - float AirspeedInnov; - float FlowInnov[2]; - float HaglInnov; - float VelPosInnovVar[6]; - float MagInnovVar[3]; - float HeadingInnovVar; - float AirspeedInnovVar; - float FlowInnovVar[2]; - float HaglInnovVar; -} PX4_Ekf2InnovationsMsg_t; - -typedef struct -{ - uint8 TlmHeader[CFE_SB_TLM_HDR_SIZE]; - uint64 Timestamp; - uint64 TimeRef; - uint64 Magnetometer_timestamp; - uint64 Baro_timestamp; - uint64 Rng_timestamp; - uint64 Flow_timestamp; - uint64 Asp_timestamp; - uint64 Ev_timestamp; - uint64 Time_usec; - uint64 Time_usec_vel; - float GyroIntegral_dt; - float AccelerometerIntegral_dt; - float GyroRad[3]; - float Accelerometer[3]; - float Magnetometer[3]; - float BaroAltMeter; - int32 Lat; - int32 Lon; - int32 Alt; - float Eph; - float Epv; - float Sacc; - float Vel_m_s; - float Vel_n_m_s; - float Vel_e_m_s; - float Vel_d_m_s; - float RangeToGround; - float FlowPixelIntegral[2]; - float FlowGyroIntegral[2]; - uint32 FlowTimeIntegral; - float IndicatedAirspeed; - float TrueAirspeed; - float PosEv[3]; - float QuatEv[4]; - float PosErr; - float AngErr; - uint8 FixType; - uint8 Nsats; - boolean VelNedValid; - uint8 FlowQuality; -} PX4_Ekf2ReplayMsg_t; - -typedef struct -{ - uint64 Timestamp; - uint32 ErrorCount; - int32 Rpm; - float Voltage; - float Current; - float Temperature; - float Setpoint; - uint16 SetpointRaw; - uint16 Address; - uint16 Version; - uint16 State; - uint8 Vendor; -} PX4_EscReport_t; - -typedef struct -{ - uint8 TlmHeader[CFE_SB_TLM_HDR_SIZE]; - PX4_EscReport_t Esc; -} PX4_EscReportMsg_t; - -typedef struct -{ - uint8 TlmHeader[CFE_SB_TLM_HDR_SIZE]; - uint64 Timestamp; - uint16 Counter; - uint8 EscCount; - uint8 ConnectionType; - PX4_EscReport_t Esc[PX4_ESC_CONNECTED_ESC_MAX]; -} PX4_EscStatusMsg_t; - -typedef struct -{ - uint8 TlmHeader[CFE_SB_TLM_HDR_SIZE]; - uint64 Timestamp; - float States[PX4_ESTIMATOR_STATES_MAX]; - uint32 NumStates; - float Vibe[PX4_ESTIMATOR_VIBE_MAX]; - float Covariances[PX4_ESTIMATOR_COVARIANCES_MAX]; - uint16 GpsCheckFailFlags; - uint16 ControlModeFlags; - uint16 FilterFaultFlags; - uint8 NanFlags; - uint8 HealthFlags; - uint8 TimeoutFlags; + uint64 Timestamp; + float States[PX4_ESTIMATOR_STATES_MAX]; + uint32 NumStates; + float Vibe[PX4_ESTIMATOR_VIBE_MAX]; + float Covariances[PX4_ESTIMATOR_COVARIANCES_MAX]; + uint16 GpsCheckFailFlags; + uint16 ControlModeFlags; + uint16 FilterFaultFlags; + uint8 NanFlags; + uint8 HealthFlags; + uint8 TimeoutFlags; } PX4_EstimatorStatusMsg_t; typedef struct @@ -859,94 +720,41 @@ typedef struct typedef struct { uint8 TlmHeader[CFE_SB_TLM_HDR_SIZE]; - uint64 Timestamp; - uint32 Count; - PX4_FenceVertex_t Vertices[PX4_FENCE_MAX_VERTICES]; -} PX4_FenceMsg_t; - -typedef struct -{ - uint8 TlmHeader[CFE_SB_TLM_HDR_SIZE]; - uint64 Timestamp; - PX4_FenceVertex_t Vertex; -} PX4_FenceVertexMsg_t; - -typedef struct -{ - uint8 TlmHeader[CFE_SB_TLM_HDR_SIZE]; - uint64 Timestamp; - float SumX; - float SumY; - float VX; - float VY; -} PX4_FilteredBottomFlowMsg_t; - -typedef struct -{ - uint8 TlmHeader[CFE_SB_TLM_HDR_SIZE]; - uint64 Timestamp; - double Lat; - double Lon; - float Alt; - float VX; - float VY; - float VZ; - uint8 EstCap; -} PX4_FollowTargetMsg_t; - -typedef struct -{ - uint8 TlmHeader[CFE_SB_TLM_HDR_SIZE]; - uint64 Timestamp; - boolean GeofenceViolated; - PX4_GeofenceAction_t GeofenceAction; - boolean HomeRequired; -} PX4_GeofenceResultMsg_t; - -typedef struct -{ - uint8 TlmHeader[CFE_SB_TLM_HDR_SIZE]; - uint64 Timestamp; - uint8 Len; - char Data[PX4_GPS_DUMP_DATA_MAX]; -} PX4_GpsDumpMsg_t; - -typedef struct -{ - uint8 TlmHeader[CFE_SB_TLM_HDR_SIZE]; - uint64 Timestamp; - uint8 Len; - uint8 Flags; - char Data[PX4_GPS_INJECT_DATA_MAX]; + uint64 Timestamp; + uint8 Len; + uint8 Flags; + char Data[PX4_GPS_INJECT_DATA_MAX]; } PX4_GpsInjectDataMsg_t; typedef struct { - uint8 TlmHeader[CFE_SB_TLM_HDR_SIZE]; + uint8 TlmHeader[CFE_SB_TLM_HDR_SIZE]; + uint64 Timestamp; double Lat; double Lon; - float Alt; - float X; - float Y; - float Z; - float Yaw; - float DirectionX; - float DirectionY; - float DirectionZ; + float Alt; + float X; + float Y; + float Z; + float Yaw; + float DirectionX; + float DirectionY; + float DirectionZ; } PX4_HomePositionMsg_t; typedef struct { - uint8 TlmHeader[CFE_SB_TLM_HDR_SIZE]; - CFE_TIME_SysTime_t LastSignal; - uint32 ChannelCount; - int32 RSSI; - uint16 RcLostFrameCount; - uint16 RcTotalFrameCount; - uint16 RcPpmFrameLength; - uint16 Values[PX4_RC_INPUT_MAX_CHANNELS]; - boolean RcFailsafe; - boolean RcLost; + uint8 TlmHeader[CFE_SB_TLM_HDR_SIZE]; + uint64 Timestamp; + uint64 LastSignal; + uint32 ChannelCount; + int32 RSSI; + uint16 RcLostFrameCount; + uint16 RcTotalFrameCount; + uint16 RcPpmFrameLength; + uint16 Values[PX4_RC_INPUT_MAX_CHANNELS]; + boolean RcFailsafe; + boolean RcLost; PX4_RcInputSource_t InputSource; } PX4_InputRcMsg_t; @@ -962,297 +770,192 @@ typedef struct { uint8 TlmHeader[CFE_SB_TLM_HDR_SIZE]; uint64 Timestamp; - float X; - float Y; - float Z; - float R; - float Flaps; - float Aux1; - float Aux2; - float Aux3; - float Aux4; - float Aux5; - PX4_SwitchPos_t ModeSwitch; - PX4_SwitchPos_t ReturnSwitch; - PX4_SwitchPos_t RattitudeSwitch; - PX4_SwitchPos_t PosctlSwitch; - PX4_SwitchPos_t LoiterSwitch; - PX4_SwitchPos_t AcroSwitch; - PX4_SwitchPos_t OffboardSwitch; - PX4_SwitchPos_t KillSwitch; - PX4_SwitchPos_t TransitionSwitch; - PX4_SwitchPos_t GearSwitch; - PX4_SwitchPos_t ArmSwitch; - PX4_SwitchPos_t StabSwitch; - PX4_SwitchPos_t ManSwitch; - PX4_ModeSlot_t ModeSlot; - PX4_ManualControlDataSource_t DataSource; - PX4_SwitchPos_t AltctlSwitch; + float X; + float Y; + float Z; + float R; + float Flaps; + float Aux1; + float Aux2; + float Aux3; + float Aux4; + float Aux5; + PX4_SwitchPos_t ModeSwitch; + PX4_SwitchPos_t ReturnSwitch; + PX4_SwitchPos_t RattitudeSwitch; + PX4_SwitchPos_t PosctlSwitch; + PX4_SwitchPos_t LoiterSwitch; + PX4_SwitchPos_t AcroSwitch; + PX4_SwitchPos_t OffboardSwitch; + PX4_SwitchPos_t KillSwitch; + PX4_SwitchPos_t TransitionSwitch; + PX4_SwitchPos_t GearSwitch; + PX4_SwitchPos_t ArmSwitch; + PX4_SwitchPos_t StabSwitch; + PX4_SwitchPos_t ManSwitch; + PX4_ModeSlot_t ModeSlot; + PX4_ManualControlDataSource_t DataSource; + PX4_SwitchPos_t AltctlSwitch; } PX4_ManualControlSetpointMsg_t; typedef struct { uint8 TlmHeader[CFE_SB_TLM_HDR_SIZE]; - uint64 Timestamp; - char Text[50]; - uint8 Severity; -} PX4_MavlinkLogMsg_t; - -typedef struct -{ - uint8 TlmHeader[CFE_SB_TLM_HDR_SIZE]; - uint64 Timestamp; - float RollRateInteg; - float PitchRateInteg; - float YawRateInteg; + uint64 Timestamp; + float RollRateInteg; + float PitchRateInteg; + float YawRateInteg; } PX4_McAttCtrlStatusMsg_t; typedef struct { uint8 TlmHeader[CFE_SB_TLM_HDR_SIZE]; - uint64 Timestamp; - float RollBody; - float PitchBody; - float YawBody; - float YawSpMoveRate; - float R_Body[9]; - float Q_D[4]; - float Q_E[4]; - float Thrust; - boolean R_Valid; - boolean Q_D_Valid; - boolean Q_E_Valid; - boolean RollResetIntegral; - boolean PitchResetIntegral; - boolean YawResetIntegral; - boolean FwControlYaw; - boolean DisableMcYawControl; - boolean ApplyFlaps; -} PX4_McVirtualAttitudeSetpointMsg_t; - -typedef struct -{ - uint8 TlmHeader[CFE_SB_TLM_HDR_SIZE]; - uint64 Timestamp; - float Roll; - float Pitch; - float Yaw; - float Thrust; -} PX4_McVirtualRatesSetpointMsg_t; - -typedef struct -{ - uint8 TlmHeader[CFE_SB_TLM_HDR_SIZE]; - uint64 Timestamp; - int32 DatamanID; - uint32 Count; - int32 CurrentSeq; + uint64 Timestamp; + int32 DatamanID; + uint32 Count; + int32 CurrentSeq; } PX4_MissionMsg_t; typedef struct { uint8 TlmHeader[CFE_SB_TLM_HDR_SIZE]; - uint64 Timestamp; - uint32 InstanceCount; - uint32 SeqReached; - uint32 SeqCurrent; - uint32 SeqTotal; - uint32 ItemChangedIndex; - uint32 ItemDoJumpRemaining; - boolean Valid; - boolean Warning; - boolean Reached; - boolean Finished; - boolean Failure; - boolean StayInFailsafe; - boolean FlightTermination; - boolean ItemDoJumpChanged; + uint64 Timestamp; + uint32 InstanceCount; + uint32 SeqReached; + uint32 SeqCurrent; + uint32 SeqTotal; + uint32 ItemChangedIndex; + uint32 ItemDoJumpRemaining; + boolean Valid; + boolean Warning; + boolean Reached; + boolean Finished; + boolean Failure; + boolean StayInFailsafe; + boolean FlightTermination; + boolean ItemDoJumpChanged; } PX4_MissionResultMsg_t; typedef union { - struct - { - uint16 MotorPos : 1; // 0 - true when any motor has saturated in the positive direction - uint16 MotorNeg : 1; // 1 - true when any motor has saturated in the negative direction - uint16 RollPos : 1; // 2 - true when a positive roll demand change will increase saturation - uint16 RollNeg : 1; // 3 - true when a negative roll demand change will increase saturation - uint16 PitchPos : 1; // 4 - true when a positive pitch demand change will increase saturation - uint16 PitchNeg : 1; // 5 - true when a negative pitch demand change will increase saturation - uint16 YawPos : 1; // 6 - true when a positive yaw demand change will increase saturation - uint16 YawNeg : 1; // 7 - true when a negative yaw demand change will increase saturation - uint16 ThrustPos : 1; // 8 - true when a positive thrust demand change will increase saturation - uint16 ThrustNeg : 1; // 9 - true when a negative thrust demand change will increase saturation - } Flags; - uint16 Value; + struct + { + uint16 MotorPos : 1; // 0 - true when any motor has saturated in the positive direction + uint16 MotorNeg : 1; // 1 - true when any motor has saturated in the negative direction + uint16 RollPos : 1; // 2 - true when a positive roll demand change will increase saturation + uint16 RollNeg : 1; // 3 - true when a negative roll demand change will increase saturation + uint16 PitchPos : 1; // 4 - true when a positive pitch demand change will increase saturation + uint16 PitchNeg : 1; // 5 - true when a negative pitch demand change will increase saturation + uint16 YawPos : 1; // 6 - true when a positive yaw demand change will increase saturation + uint16 YawNeg : 1; // 7 - true when a negative yaw demand change will increase saturation + uint16 ThrustPos : 1; // 8 - true when a positive thrust demand change will increase saturation + uint16 ThrustNeg : 1; // 9 - true when a negative thrust demand change will increase saturation + } Flags; + uint16 Value; } PX4_SaturationStatus_t; typedef struct { uint8 TlmHeader[CFE_SB_TLM_HDR_SIZE]; - uint64 Timestamp; - PX4_SaturationStatus_t SaturationStatus; + uint64 Timestamp; + PX4_SaturationStatus_t SaturationStatus; } PX4_MultirotorMotorLimitsMsg_t; typedef struct { uint8 TlmHeader[CFE_SB_TLM_HDR_SIZE]; - uint64 Timestamp; - boolean IgnoreThrust; - boolean IgnoreAttitude; - boolean IgnoreBodyrate; - boolean IgnorePosition; - boolean IgnoreVelocity; - boolean IgnoreAccelerationForce; -} PX4_OffboardControlModeMsg_t; - -typedef struct -{ - uint8 TlmHeader[CFE_SB_TLM_HDR_SIZE]; - uint64 Timestamp; - float PixelFlowXIntegral; - float PixelFlowYIntegral; - float GyroXRateIntegral; - float GyroYRateIntegral; - float GyroZRateIntegral; - float GroundDistance; - uint32 IntegrationTimespan; - uint32 TimeSinceLastSonarUpdate; - uint16 FrameCountSinceLastReadout; - int16 GyroTemperature; - uint8 SensorID; - uint8 Quality; + uint64 Timestamp; + float PixelFlowXIntegral; + float PixelFlowYIntegral; + float GyroXRateIntegral; + float GyroYRateIntegral; + float GyroZRateIntegral; + float GroundDistance; + uint32 IntegrationTimespan; + uint32 TimeSinceLastSonarUpdate; + uint16 FrameCountSinceLastReadout; + int16 GyroTemperature; + uint8 SensorID; + uint8 Quality; } PX4_OpticalFlowMsg_t; typedef struct { - uint8 TlmHeader[CFE_SB_TLM_HDR_SIZE]; - uint64 Timestamp; - uint32 ChannelCount; - uint16 Values[PX4_PWM_OUTPUT_MAX_CHANNELS]; -} PX4_OutputPwmMsg_t; - -typedef struct -{ - uint8 TlmHeader[CFE_SB_TLM_HDR_SIZE]; - uint64 Timestamp; - boolean Saved; -} PX4_ParameterUpdateMsg_t; - -typedef struct -{ - uint64 Timestamp; - double Lat; - double Lon; - float X; - float Y; - float Z; - float VX; - float VY; - float VZ; - float Alt; - float Yaw; - float Yawspeed; - float LoiterRadius; - float PitchMin; - float AX; - float AY; - float AZ; - float AcceptanceRadius; - float CruisingSpeed; - float CruisingThrottle; - boolean Valid; - PX4_SetpointType_t Type; - boolean PositionValid; - boolean VelocityValid; - uint8 VelocityFrame; - boolean AltValid; - boolean YawValid; - boolean DisableMcYawControl; - boolean YawspeedValid; - int8 LoiterDirection; - boolean AccelerationValid; - boolean AccelerationIsForce; + uint64 Timestamp; + double Lat; + double Lon; + float X; + float Y; + float Z; + float VX; + float VY; + float VZ; + float Alt; + float Yaw; + float Yawspeed; + float LoiterRadius; + float PitchMin; + float AX; + float AY; + float AZ; + float AcceptanceRadius; + float CruisingSpeed; + float CruisingThrottle; + boolean Valid; + PX4_SetpointType_t Type; + boolean PositionValid; + boolean VelocityValid; + uint8 VelocityFrame; + boolean AltValid; + boolean YawValid; + boolean DisableMcYawControl; + boolean YawspeedValid; + int8 LoiterDirection; + boolean AccelerationValid; + boolean AccelerationIsForce; } PX4_PositionSetpoint_t; typedef struct { uint8 TlmHeader[CFE_SB_TLM_HDR_SIZE]; - uint64 Timestamp; - PX4_PositionSetpoint_t Setpoint; -} PX4_PositionSetpointMsg_t; - -typedef struct -{ - uint8 TlmHeader[CFE_SB_TLM_HDR_SIZE]; - uint64 Timestamp; - PX4_PositionSetpoint_t Previous; - PX4_PositionSetpoint_t Current; - PX4_PositionSetpoint_t Next; + uint64 Timestamp; + PX4_PositionSetpoint_t Previous; + PX4_PositionSetpoint_t Current; + PX4_PositionSetpoint_t Next; } PX4_PositionSetpointTripletMsg_t; typedef struct { uint8 TlmHeader[CFE_SB_TLM_HDR_SIZE]; - uint64 Timestamp; - uint64 ErrorCount; - uint32 PulseWidth; - uint32 Period; -} PX4_PwmInputMsg_t; - -typedef struct -{ - uint8 TlmHeader[CFE_SB_TLM_HDR_SIZE]; - uint64 Timestamp; - uint64 StrLen; - int32 String[PX4_QSHELL_REQ_MAX_STRLEN]; -} PX4_QShellReqMsg_t; - -typedef struct -{ - uint8 TlmHeader[CFE_SB_TLM_HDR_SIZE]; - uint64 Timestamp; - uint64 TimestampLastValid; - float Channels[PX4_RC_INPUT_MAX_CHANNELS]; - uint32 FrameDropCount; - uint8 ChannelCount; - PX4_RcChannelFunction_t Function[PX4_RC_CHANNELS_FUNCTION_COUNT]; - uint8 RSSI; - boolean SignalLost; + uint64 Timestamp; + uint64 TimestampLastValid; + float Channels[PX4_RC_INPUT_MAX_CHANNELS]; + uint32 FrameDropCount; + uint8 ChannelCount; + PX4_RcChannelFunction_t Function[PX4_RC_CHANNELS_FUNCTION_COUNT]; + uint8 RSSI; + boolean SignalLost; } PX4_RcChannelsMsg_t; typedef struct { uint8 TlmHeader[CFE_SB_TLM_HDR_SIZE]; - uint64 Timestamp; - int32 ParamIndex[PX4_RC_PARAM_MAP_NCHAN]; - float Scale[PX4_RC_PARAM_MAP_NCHAN]; - float Value0[PX4_RC_PARAM_MAP_NCHAN]; - float ValueMin[PX4_RC_PARAM_MAP_NCHAN]; - float ValueMax[PX4_RC_PARAM_MAP_NCHAN]; - boolean Valid[PX4_RC_PARAM_MAP_NCHAN]; - char ParamID[PX4_RC_PARAM_MAP_ID_LEN]; -} PX4_RcParameterMapMsg_t; - -typedef struct -{ - uint8 TlmHeader[CFE_SB_TLM_HDR_SIZE]; - uint64 Timestamp; - boolean SafetySwitchAvailable; - boolean SafetyOff; + uint64 Timestamp; + boolean SafetySwitchAvailable; + boolean SafetyOff; } PX4_SafetyMsg_t; typedef struct { uint8 TlmHeader[CFE_SB_TLM_HDR_SIZE]; - uint64 Timestamp; - uint8 Count; - uint8 SVID[PX4_SAT_INFO_MAX_SATELLITES]; - uint8 Used[PX4_SAT_INFO_MAX_SATELLITES]; - uint8 Elevation[PX4_SAT_INFO_MAX_SATELLITES]; - uint8 Azimuth[PX4_SAT_INFO_MAX_SATELLITES]; - uint8 SNR[PX4_SAT_INFO_MAX_SATELLITES]; + uint64 Timestamp; + uint8 Count; + uint8 SVID[PX4_SAT_INFO_MAX_SATELLITES]; + uint8 Used[PX4_SAT_INFO_MAX_SATELLITES]; + uint8 Elevation[PX4_SAT_INFO_MAX_SATELLITES]; + uint8 Azimuth[PX4_SAT_INFO_MAX_SATELLITES]; + uint8 SNR[PX4_SAT_INFO_MAX_SATELLITES]; } PX4_SatelliteInfoMsg_t; typedef struct @@ -1278,29 +981,29 @@ typedef struct typedef struct { - uint8 TlmHeader[CFE_SB_TLM_HDR_SIZE]; + uint8 TlmHeader[CFE_SB_TLM_HDR_SIZE]; uint32 ErrorCount; - float Pressure; - float Altitude; - float Temperature; + float Pressure; + float Altitude; + float Temperature; } PX4_SensorBaroMsg_t; typedef struct { - uint8 TlmHeader[CFE_SB_TLM_HDR_SIZE]; - float GyroRad[3]; - float GyroIntegralDt; - CFE_TIME_SysTime_t AccTimestamp; - boolean AccRelTimeInvalid; - float Acc[3]; - float AccIntegralDt; - CFE_TIME_SysTime_t MagTimestamp; - boolean MagRelTimeInvalid; - float Mag[3]; - CFE_TIME_SysTime_t BaroTimestamp; - boolean BaroRelTimeInvalid; - float BaroAlt; - float BaroTemp; + uint8 TlmHeader[CFE_SB_TLM_HDR_SIZE]; + float GyroRad[3]; + float GyroIntegralDt; + uint32 AccTimestampRelative; + boolean AccRelTimeInvalid; + float Acc[3]; + float AccIntegralDt; + uint32 MagTimestampRelative; + boolean MagRelTimeInvalid; + float Mag[3]; + uint32 BaroTimestampRelative; + boolean BaroRelTimeInvalid; + float BaroAlt; + float BaroTemp; } PX4_SensorCombinedMsg_t; typedef struct @@ -1343,161 +1046,58 @@ typedef struct typedef struct { uint8 TlmHeader[CFE_SB_TLM_HDR_SIZE]; - uint64 Timestamp; - float Voltage; - float RSSI; -} PX4_ServorailStatusMsg_t; - -typedef struct -{ - uint8 TlmHeader[CFE_SB_TLM_HDR_SIZE]; - uint64 Timestamp; - PX4_SubsystemType_t SubsystemType; - boolean Present; - boolean Enabled; - boolean Ok; + uint64 Timestamp; + PX4_SubsystemType_t SubsystemType; + boolean Present; + boolean Enabled; + boolean Ok; } PX4_SubsystemInfoMsg_t; typedef struct { uint8 TlmHeader[CFE_SB_TLM_HDR_SIZE]; - uint64 Timestamp; - float Voltage5V; - uint8 UsbConnected; - uint8 BrickValid; - uint8 ServoValid; - uint8 Periph5V; - uint8 HiPower5V; -} PX4_SystemPowerMsg_t; - -typedef struct -{ - uint8 TlmHeader[CFE_SB_TLM_HDR_SIZE]; - uint64 Timestamp; - float AltitudeSp; - float AltitudeFiltered; - float FlightPathAngleSp; - float FlightPathAngle; - float FlightPathAngleFiltered; - float AirspeedSp; - float AirspeedFiltered; - float AirspeedDerivativeSp; - float AirspeedDerivative; - float TotalEnergyError; - float EnergyDistributionError; - float TotalEnergyRateError; - float EnergyDistributionRateError; - float ThrottleInteg; - float PitchInteg; - PX4_TecsMode_t Mode; -} PX4_TecsStatusMsg_t; - -typedef struct -{ - uint8 TlmHeader[CFE_SB_TLM_HDR_SIZE]; - uint64 Timestamp; - uint64 HeartbeatTime; - uint64 TelemTime; - uint16 RxErrors; - uint16 Fixed; - PX4_TelemetryStatusRadioType_t Type; - uint8 RSSI; - uint8 RemoteRSSI; - uint8 Noise; - uint8 RemoteNoise; - uint8 TxBuf; - uint8 SystemID; - uint8 ComponentID; + uint64 Timestamp; + uint64 HeartbeatTime; + uint64 TelemTime; + uint16 RxErrors; + uint16 Fixed; + PX4_TelemetryStatusRadioType_t Type; + uint8 RSSI; + uint8 RemoteRSSI; + uint8 Noise; + uint8 RemoteNoise; + uint8 TxBuf; + uint8 SystemID; + uint8 ComponentID; } PX4_TelemetryStatusMsg_t; typedef struct { uint8 TlmHeader[CFE_SB_TLM_HDR_SIZE]; - uint64 Timestamp; - uint32 MotorNumber; - float Value; -} PX4_TestMotorMsg_t; - -typedef struct -{ - uint8 TlmHeader[CFE_SB_TLM_HDR_SIZE]; - uint64 Timestamp; - uint64 OffsetNs; -} PX4_TimeOffsetMsg_t; - -typedef struct -{ - uint8 TlmHeader[CFE_SB_TLM_HDR_SIZE]; - uint64 Timestamp; - double Lat; - double Lon; - uint32 ICAOAddress; - float Altitude; - float Heading; - float HorVelocity; - float VerVelocity; - uint8 Flags; - uint16 Squawk; - PX4_AdsbAltitudeType_t AltitudeType; - char Callsign[PX4_ADSB_CALLSIGN_LEN+1]; - PX4_AdsbEmitterType_t EmitterType; - uint8 TSLC; -} PX4_TransponderReportMsg_t; - -typedef struct -{ - uint8 TlmHeader[CFE_SB_TLM_HDR_SIZE]; - uint64 Timestamp; - int64 IntValue; - float RealValue; - int16 ParamIndex; - uint8 MessageType; - uint8 NodeID; - char ParamID[17]; - uint8 ParamType; -} PX4_UavCanParameterRequestMsg_t; - -typedef struct -{ - uint8 TlmHeader[CFE_SB_TLM_HDR_SIZE]; - uint64 Timestamp; - int64 IntValue; - float RealValue; - int16 ParamIndex; - uint16 ParamCount; - uint8 NodeID; - char ParamID[17]; - uint8 ParamType; -} PX4_UavCanParameterValueMsg_t; - -typedef struct -{ - uint8 TlmHeader[CFE_SB_TLM_HDR_SIZE]; - uint64 Timestamp; - float RollSpeed; - float PitchSpeed; - float YawSpeed; - float Q[4]; + uint64 Timestamp; + float RollSpeed; + float PitchSpeed; + float YawSpeed; + float Q[4]; } PX4_VehicleAttitudeMsg_t; typedef struct { uint8 TlmHeader[CFE_SB_TLM_HDR_SIZE]; - - uint64 Timestamp; - float RollBody; - float PitchBody; - float YawBody; - float YawSpMoveRate; - float Q_D[4]; + uint64 Timestamp; + float RollBody; + float PitchBody; + float YawBody; + float YawSpMoveRate; + float Q_D[4]; boolean Q_D_Valid; - float Thrust; - boolean RollResetIntegral; - boolean PitchResetIntegral; - boolean YawResetIntegral; - boolean FwControlYaw; - boolean DisableMcYawControl; - boolean ApplyFlaps; + float Thrust; + boolean RollResetIntegral; + boolean PitchResetIntegral; + boolean YawResetIntegral; + boolean FwControlYaw; + boolean DisableMcYawControl; + boolean ApplyFlaps; float LandingGear; } PX4_VehicleAttitudeSetpointMsg_t; @@ -1513,79 +1113,69 @@ typedef struct typedef struct { uint8 TlmHeader[CFE_SB_TLM_HDR_SIZE]; - uint64 Timestamp; - double Param5; - double Param6; - float Param1; - float Param2; - float Param3; - float Param4; - float Param7; - PX4_VehicleCmd_t Command; - uint32 TargetSystem; - uint32 TargetComponent; - uint32 SourceSystem; - uint32 SourceComponent; - uint8 Confirmation; + uint64 Timestamp; + double Param5; + double Param6; + float Param1; + float Param2; + float Param3; + float Param4; + float Param7; + PX4_VehicleCmd_t Command; + uint32 TargetSystem; + uint32 TargetComponent; + uint32 SourceSystem; + uint32 SourceComponent; + uint8 Confirmation; } PX4_VehicleCommandMsg_t; typedef struct { uint8 TlmHeader[CFE_SB_TLM_HDR_SIZE]; - uint64 Timestamp; - boolean Armed; - boolean ExternalManualOverrideOk; - boolean SystemHilEnabled; - boolean ControlManualEnabled; - boolean ControlAutoEnabled; - boolean ControlOffboardEnabled; - boolean ControlRatesEnabled; - boolean ControlAttitudeEnabled; - boolean ControlRattitudeEnabled; - boolean ControlForceEnabled; - boolean ControlAccelerationEnabled; - boolean ControlVelocityEnabled; - boolean ControlPositionEnabled; - boolean ControlAltitudeEnabled; - boolean ControlClimbRateEnabled; - boolean ControlTerminationEnabled; - boolean ControlFixedHdgEnabled; + uint64 Timestamp; + boolean Armed; + boolean ExternalManualOverrideOk; + boolean SystemHilEnabled; + boolean ControlManualEnabled; + boolean ControlAutoEnabled; + boolean ControlOffboardEnabled; + boolean ControlRatesEnabled; + boolean ControlAttitudeEnabled; + boolean ControlRattitudeEnabled; + boolean ControlForceEnabled; + boolean ControlAccelerationEnabled; + boolean ControlVelocityEnabled; + boolean ControlPositionEnabled; + boolean ControlAltitudeEnabled; + boolean ControlClimbRateEnabled; + boolean ControlTerminationEnabled; + boolean ControlFixedHdgEnabled; } PX4_VehicleControlModeMsg_t; typedef struct { uint8 TlmHeader[CFE_SB_TLM_HDR_SIZE]; - uint64 Timestamp; - float X; - float Y; - float Z; - float Yaw; -} PX4_VehicleForceSetpointMsg_t; - -typedef struct -{ - uint8 TlmHeader[CFE_SB_TLM_HDR_SIZE]; - uint64 Timestamp; - uint64 TimeUtcUsec; - double Lat; - double Lon; - float Alt; + uint64 Timestamp; + uint64 TimeUtcUsec; + double Lat; + double Lon; + float Alt; double DeltaLatLon[2]; float DeltaAlt; uint8 LatLonResetCounter; uint8 AltResetCounter; - float VelN; - float VelE; - float VelD; - float Yaw; - float EpH; - float EpV; + float VelN; + float VelE; + float VelD; + float Yaw; + float EpH; + float EpV; float EvH; float EvV; - float TerrainAlt; - float PressureAlt; - boolean TerrainAltValid; - boolean DeadReckoning; + float TerrainAlt; + float PressureAlt; + boolean TerrainAltValid; + boolean DeadReckoning; } PX4_VehicleGlobalPositionMsg_t; typedef struct @@ -1601,82 +1191,81 @@ typedef struct typedef struct { uint8 TlmHeader[CFE_SB_TLM_HDR_SIZE]; - uint64 Timestamp; - uint64 TimeUtcUsec; - int32 Lat; - int32 Lon; - int32 Alt; - int32 AltEllipsoid; - float SVariance; - float CVariance; - float EpH; - float EpV; - float HDOP; - float VDOP; - int32 NoisePerMs; - int32 JammingIndicator; - float Vel_m_s; - float Vel_n_m_s; - float Vel_e_m_s; - float Vel_d_m_s; - float COG; - int32 TimestampTimeRelative; - PX4_GpsFixType_t FixType; - boolean VelNedValid; - uint8 SatellitesUsed; + uint64 TimeUtcUsec; + int32 Lat; + int32 Lon; + int32 Alt; + int32 AltEllipsoid; + float SVariance; + float CVariance; + float EpH; + float EpV; + float HDOP; + float VDOP; + int32 NoisePerMs; + int32 JammingIndicator; + float Vel_m_s; + float Vel_n_m_s; + float Vel_e_m_s; + float Vel_d_m_s; + float COG; + int32 TimestampTimeRelative; + PX4_GpsFixType_t FixType; + boolean VelNedValid; + uint8 SatellitesUsed; } PX4_VehicleGpsPositionMsg_t; typedef struct { uint8 TlmHeader[CFE_SB_TLM_HDR_SIZE]; - uint64 Timestamp; - float AltMax; - boolean Landed; - boolean Freefall; - boolean GroundContact; + uint64 Timestamp; + float AltMax; + boolean Landed; + boolean Freefall; + boolean GroundContact; } PX4_VehicleLandDetectedMsg_t; typedef struct { uint8 TlmHeader[CFE_SB_TLM_HDR_SIZE]; - uint64 Timestamp; - uint64 RefTimestamp; - double RefLat; - double RefLon; - uint64 SurfaceBottomTimestamp; - float X; - float Y; - float Z; - float Delta_XY[2]; - float Delta_Z; - float VX; - float VY; - float VZ; - float Delta_VXY[2]; - float Delta_VZ; - float AX; - float AY; - float AZ; - float Yaw; - float RefAlt; - float DistBottom; - float DistBottomRate; - float EpH; - float EpV; - float EvH; - float EvV; - uint8 EstimatorType; - boolean XY_Valid; - boolean Z_Valid; - boolean V_XY_Valid; - boolean V_Z_Valid; - uint8 XY_ResetCounter; - uint8 Z_ResetCounter; - uint8 VXY_ResetCounter; - uint8 VZ_ResetCounter; - boolean XY_Global; - boolean Z_Global; - boolean DistBottomValid; + uint64 Timestamp; + uint64 RefTimestamp; + double RefLat; + double RefLon; + uint64 SurfaceBottomTimestamp; + float X; + float Y; + float Z; + float Delta_XY[2]; + float Delta_Z; + float VX; + float VY; + float VZ; + float Delta_VXY[2]; + float Delta_VZ; + float AX; + float AY; + float AZ; + float Yaw; + float RefAlt; + float DistBottom; + float DistBottomRate; + float EpH; + float EpV; + float EvH; + float EvV; + uint8 EstimatorType; + boolean XY_Valid; + boolean Z_Valid; + boolean V_XY_Valid; + boolean V_Z_Valid; + uint8 XY_ResetCounter; + uint8 Z_ResetCounter; + uint8 VXY_ResetCounter; + uint8 VZ_ResetCounter; + boolean XY_Global; + boolean Z_Global; + boolean DistBottomValid; } PX4_VehicleLocalPositionMsg_t; typedef struct @@ -1698,43 +1287,44 @@ typedef struct typedef struct { uint8 TlmHeader[CFE_SB_TLM_HDR_SIZE]; - uint64 Timestamp; - float Roll; - float Pitch; - float Yaw; - float Thrust; + uint64 Timestamp; + float Roll; + float Pitch; + float Yaw; + float Thrust; } PX4_VehicleRatesSetpointMsg_t; typedef struct { uint8 TlmHeader[CFE_SB_TLM_HDR_SIZE]; - uint64 Timestamp; - uint32 SystemID; - uint32 ComponentID; - uint32 OnboardControlSensorsPresent; - uint32 OnboardControlSensorsEnabled; - uint32 OnboardControlSensorsHealth; - PX4_NavigationState_t NavState; - PX4_ArmingState_t ArmingState; - PX4_HilState_t HilState; - boolean Failsafe; - PX4_SystemType_t SystemType; - boolean IsRotaryWing; - boolean IsVtol; - boolean VtolFwPermanentStab; - boolean InTransitionMode; - boolean RcSignalLost; - PX4_RcInMode_t RcInputMode; - boolean DataLinkLost; - uint8 DataLinkLostCounter; - boolean EngineFailure; - boolean EngineFailureCmd; - boolean MissionFailure; + uint64 Timestamp; + uint32 SystemID; + uint32 ComponentID; + uint32 OnboardControlSensorsPresent; + uint32 OnboardControlSensorsEnabled; + uint32 OnboardControlSensorsHealth; + PX4_NavigationState_t NavState; + PX4_ArmingState_t ArmingState; + PX4_HilState_t HilState; + boolean Failsafe; + PX4_SystemType_t SystemType; + boolean IsRotaryWing; + boolean IsVtol; + boolean VtolFwPermanentStab; + boolean InTransitionMode; + boolean RcSignalLost; + PX4_RcInMode_t RcInputMode; + boolean DataLinkLost; + uint8 DataLinkLostCounter; + boolean EngineFailure; + boolean EngineFailureCmd; + boolean MissionFailure; } PX4_VehicleStatusMsg_t; typedef struct { uint8 TlmHeader[CFE_SB_TLM_HDR_SIZE]; + uint64 Timestamp; float gyro_offset_0[3]; float gyro_scale_0[3]; float gyro_offset_1[3]; @@ -1765,6 +1355,7 @@ typedef struct typedef struct { uint8 TlmHeader[CFE_SB_TLM_HDR_SIZE]; + uint64 Timestamp; uint8 LedMask; uint8 Color; uint8 Mode; @@ -1775,6 +1366,7 @@ typedef struct typedef struct { uint8 TlmHeader[CFE_SB_TLM_HDR_SIZE]; + uint64 Timestamp; uint8 Frame[4096]; } PX4_OpticalFlowFrameMsg_t; From ff10af0fcb3580953fcbeaa607ada0d922ec1d2f Mon Sep 17 00:00:00 2001 From: Mathew Benson Date: Tue, 23 Feb 2021 23:06:49 -0600 Subject: [PATCH 132/370] Removed timestamp fields from ak8963, mpu6050, and ms5607 and dependent applications. --- apps/ak8963/fsw/for_build/CMakeLists.txt | 1 + apps/ak8963/fsw/src/ak8963_app.cpp | 11 +- apps/ak8963/fsw/src/ak8963_app.h | 13 - apps/mpu6050/fsw/for_build/CMakeLists.txt | 1 + apps/mpu6050/fsw/src/mpu6050_app.cpp | 9 +- apps/ms5607/fsw/src/ms5607_app.cpp | 3 +- apps/px4lib/fsw/public_inc/px4_msgs.h | 46 +-- apps/sens/fsw/for_build/CMakeLists.txt | 1 + apps/sens/fsw/src/sens_app.cpp | 334 ++++++++++++---------- apps/sens/fsw/src/sens_app.h | 11 +- apps/sens/fsw/src/sens_config_utils.cpp | 4 +- apps/vm/fsw/for_build/CMakeLists.txt | 1 + apps/vm/fsw/src/vm_Navigation.cpp | 22 +- 13 files changed, 237 insertions(+), 220 deletions(-) diff --git a/apps/ak8963/fsw/for_build/CMakeLists.txt b/apps/ak8963/fsw/for_build/CMakeLists.txt index 5e11856cf..2a5d06b89 100644 --- a/apps/ak8963/fsw/for_build/CMakeLists.txt +++ b/apps/ak8963/fsw/for_build/CMakeLists.txt @@ -77,6 +77,7 @@ buildliner_add_app_unit_test(ak8963-ut ${CMAKE_CURRENT_SOURCE_DIR}/../src/ak8963_version.h ${CMAKE_CURRENT_SOURCE_DIR}/../src/ak8963_config_utils.cpp ${PX4LIB_LIB_SOURCES} + ${CMAKE_CURRENT_SOURCE_DIR}/../../../cfs_lib/fsw/src/cfs_utils.c INCLUDES ${CMAKE_CURRENT_SOURCE_DIR}/../src/ diff --git a/apps/ak8963/fsw/src/ak8963_app.cpp b/apps/ak8963/fsw/src/ak8963_app.cpp index d9d413208..c5950324c 100644 --- a/apps/ak8963/fsw/src/ak8963_app.cpp +++ b/apps/ak8963/fsw/src/ak8963_app.cpp @@ -552,13 +552,6 @@ void AK8963::ReportHousekeeping() /* Publish Output Data */ /* */ /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ -void AK8963::SendSensorMag() -{ - - CFE_SB_TimeStampMsg((CFE_SB_Msg_t*)&SensorMag); - CFE_SB_SendMsg((CFE_SB_Msg_t*)&SensorMag); - return; -} void AK8963::SendDiag() @@ -685,7 +678,7 @@ void AK8963::ReadDevice(void) float magZAdj_f = Diag.Conversion.MagZAdj; /* Set measurement timestamps */ - SensorMag.Timestamp = PX4LIB_GetPX4TimeUs(); + CFE_SB_TimeStampMsg((CFE_SB_Msg_t*)&SensorMag); /* Read mag, read can fail since device uses continuous measure * mode and data may not be ready. */ @@ -718,7 +711,7 @@ void AK8963::ReadDevice(void) //SensorMag.DeviceID = AK8963_PX4_DEVICE_ID; /* Send the sensor data */ - SendSensorMag(); + CFE_SB_SendMsg((CFE_SB_Msg_t*)&SensorMag); end_of_function: diff --git a/apps/ak8963/fsw/src/ak8963_app.h b/apps/ak8963/fsw/src/ak8963_app.h index 22fc55bfd..84fb5a57e 100644 --- a/apps/ak8963/fsw/src/ak8963_app.h +++ b/apps/ak8963/fsw/src/ak8963_app.h @@ -304,19 +304,6 @@ class AK8963 *************************************************************************/ void ReportHousekeeping(void); - /************************************************************************/ - /** \brief Sends the SensorMag message. - ** - ** \par Description - ** This function publishes the SensorMag message containing - ** - ** - ** \par Assumptions, External Events, and Notes: - ** None - ** - *************************************************************************/ - void SendSensorMag(void); - /************************************************************************/ /** \brief Sends a diagnostic message. ** diff --git a/apps/mpu6050/fsw/for_build/CMakeLists.txt b/apps/mpu6050/fsw/for_build/CMakeLists.txt index a2d0520b3..ef67defda 100644 --- a/apps/mpu6050/fsw/for_build/CMakeLists.txt +++ b/apps/mpu6050/fsw/for_build/CMakeLists.txt @@ -78,6 +78,7 @@ buildliner_add_app_unit_test(mpu6050-ut ${CMAKE_CURRENT_SOURCE_DIR}/../src/mpu6050_version.h ${CMAKE_CURRENT_SOURCE_DIR}/../src/mpu6050_config_utils.cpp ${PX4LIB_LIB_SOURCES} + ${CMAKE_CURRENT_SOURCE_DIR}/../../../cfs_lib/fsw/src/cfs_utils.c INCLUDES ${CMAKE_CURRENT_SOURCE_DIR}/../src/ diff --git a/apps/mpu6050/fsw/src/mpu6050_app.cpp b/apps/mpu6050/fsw/src/mpu6050_app.cpp index 95a9b4b87..c24d97168 100644 --- a/apps/mpu6050/fsw/src/mpu6050_app.cpp +++ b/apps/mpu6050/fsw/src/mpu6050_app.cpp @@ -40,6 +40,7 @@ *************************************************************************/ #include #include "cfe.h" +#include "cfs_utils.h" #include "mpu6050_app.h" #include "mpu6050_msg.h" #include "mpu6050_version.h" @@ -707,7 +708,7 @@ boolean MPU6050::ReadDevice(void) float calX_f = 0; float calY_f = 0; float calZ_f = 0; - uint64 timeStamp = 0; + CFE_TIME_SysTime_t timeStamp; int16 rawTemp = 0; int16 calTemp = 0; boolean returnBool = TRUE; @@ -727,11 +728,11 @@ boolean MPU6050::ReadDevice(void) SensorAccel.ZIntegral = 0; /* Get a timestamp */ - timeStamp = PX4LIB_GetPX4TimeUs(); + timeStamp = CFE_TIME_GetTime(); /* Set measurement timestamps */ - SensorGyro.Timestamp = timeStamp; - SensorAccel.Timestamp = timeStamp; + CFE_SB_SetMsgTime((CFE_SB_MsgPtr_t)&SensorGyro, timeStamp); + CFE_SB_SetMsgTime((CFE_SB_MsgPtr_t)&SensorAccel, timeStamp); /* Get a measurement. */ returnBool = MPU6050_Measure(&MPU6050_SampleQueue); diff --git a/apps/ms5607/fsw/src/ms5607_app.cpp b/apps/ms5607/fsw/src/ms5607_app.cpp index 89d840797..0178777ac 100644 --- a/apps/ms5607/fsw/src/ms5607_app.cpp +++ b/apps/ms5607/fsw/src/ms5607_app.cpp @@ -790,7 +790,7 @@ void MS5607::ReadDevice(void) else { /* Stamp time */ - SensorBaro.Timestamp = PX4LIB_GetPX4TimeUs(); + CFE_SB_TimeStampMsg((CFE_SB_Msg_t*)&SensorBaro); /* Convert to Celsius */ SensorBaro.Temperature = temperature / 100.0f; /* convert to millibar */ @@ -827,7 +827,6 @@ void MS5607::ReadDevice(void) Diag.Altitude = SensorBaro.Altitude; /* Send the SensorBaro message */ - CFE_SB_TimeStampMsg((CFE_SB_Msg_t*)&SensorBaro); CFE_SB_SendMsg((CFE_SB_Msg_t*)&SensorBaro); } diff --git a/apps/px4lib/fsw/public_inc/px4_msgs.h b/apps/px4lib/fsw/public_inc/px4_msgs.h index 6f0309d81..9baa4108d 100644 --- a/apps/px4lib/fsw/public_inc/px4_msgs.h +++ b/apps/px4lib/fsw/public_inc/px4_msgs.h @@ -57,6 +57,8 @@ #define PX4_ADSB_CALLSIGN_LEN ( 8 ) #define PX4_OPTICAL_FLOW_FRAME_SIZE ( 4096 ) +#define PX4_RELATIVE_TIMESTAMP_INVALID ( 0xffffffff ) + typedef enum { PX4_GPS_NONE0_FIX = 0, @@ -761,9 +763,9 @@ typedef struct typedef struct { uint8 TlmHeader[CFE_SB_TLM_HDR_SIZE]; - uint64 Timestamp; - uint8 Severity; - char Text[127]; + uint64 Timestamp; + uint8 Severity; + char Text[127]; } PX4_LogMessageMsg_t; typedef struct @@ -991,6 +993,7 @@ typedef struct typedef struct { uint8 TlmHeader[CFE_SB_TLM_HDR_SIZE]; + uint64 Timestamp; float GyroRad[3]; float GyroIntegralDt; uint32 AccTimestampRelative; @@ -1104,9 +1107,9 @@ typedef struct typedef struct { uint8 TlmHeader[CFE_SB_TLM_HDR_SIZE]; - uint64 Timestamp; - uint16 Command; - PX4_VehicleCommandResult_t Result; + uint64 Timestamp; + uint16 Command; + PX4_VehicleCommandResult_t Result; } PX4_VehicleCommandAckMsg_t; @@ -1181,16 +1184,17 @@ typedef struct typedef struct { uint8 TlmHeader[CFE_SB_TLM_HDR_SIZE]; - uint64 Timestamp; - float VX; - float VY; - float VZ; + uint64 Timestamp; + float VX; + float VY; + float VZ; } PX4_VehicleGlobalVelocitySetpointMsg_t; typedef struct { uint8 TlmHeader[CFE_SB_TLM_HDR_SIZE]; + uint64 Timestamp; uint64 TimeUtcUsec; int32 Lat; int32 Lon; @@ -1271,17 +1275,17 @@ typedef struct typedef struct { uint8 TlmHeader[CFE_SB_TLM_HDR_SIZE]; - uint64 Timestamp; - float X; - float Y; - float Z; - float Yaw; - float VX; - float VY; - float VZ; - float AccX; - float AccY; - float AccZ; + uint64 Timestamp; + float X; + float Y; + float Z; + float Yaw; + float VX; + float VY; + float VZ; + float AccX; + float AccY; + float AccZ; } PX4_VehicleLocalPositionSetpointMsg_t; typedef struct diff --git a/apps/sens/fsw/for_build/CMakeLists.txt b/apps/sens/fsw/for_build/CMakeLists.txt index 1b34e5202..c67c9db9f 100644 --- a/apps/sens/fsw/for_build/CMakeLists.txt +++ b/apps/sens/fsw/for_build/CMakeLists.txt @@ -48,6 +48,7 @@ buildliner_add_app_unit_test(sens-ut ${CMAKE_CURRENT_SOURCE_DIR}/../src/sens_tbldefs.h ${CMAKE_CURRENT_SOURCE_DIR}/../src/sens_version.h ${PX4LIB_LIB_SOURCES} + ${CMAKE_CURRENT_SOURCE_DIR}/../../../cfs_lib/fsw/src/cfs_utils.c INCLUDES ${CMAKE_CURRENT_SOURCE_DIR}/../src/ diff --git a/apps/sens/fsw/src/sens_app.cpp b/apps/sens/fsw/src/sens_app.cpp index a525cd826..47e0cb93a 100644 --- a/apps/sens/fsw/src/sens_app.cpp +++ b/apps/sens/fsw/src/sens_app.cpp @@ -12,6 +12,7 @@ #include #include "px4lib.h" #include "px4lib_msgids.h" +#include "cfs_utils.h" /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ @@ -544,12 +545,6 @@ void SENS::SendManualControlSetpointMsg() // CFE_SB_SendMsg((CFE_SB_Msg_t*)&SensorPreflightMsg); //} -void SENS::SendSensorCombinedMsg() -{ - CFE_SB_TimeStampMsg((CFE_SB_Msg_t*)&SensorCombinedMsg); - CFE_SB_SendMsg((CFE_SB_Msg_t*)&SensorCombinedMsg); -} - /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ /* */ @@ -1028,180 +1023,207 @@ void SENS::ProcessRCInput(void) void SENS::CombineSensorInput(void) { - SensorCombinedMsg.Timestamp = CVT.SensorGyroMsg.Timestamp; - /* Gyro */ - /* See if we have a new gyro measurement. Gyro is a required sensor, so we only - * publish a new message if there is a new gyro measurement. */ - if(CVT.SensorGyroMsg.Timestamp > CVT.LastGyroTime) + /* See if we have a new gyro measurement. Gyro is a required sensor, so we only + * publish a new message if there is a new gyro measurement. */ + if(CFE_TIME_Compare(CFE_SB_GetMsgTime((CFE_SB_MsgPtr_t)&CVT.SensorGyroMsg),CVT.PrevGyroTime) != CFE_TIME_EQUAL) { - /* We do have a new measurement. Update the fields accordingly. - * First populate the measurement values. - */ - SensorCombinedMsg.GyroRad[0] = CVT.SensorGyroMsg.X; - SensorCombinedMsg.GyroRad[1] = CVT.SensorGyroMsg.Y; - SensorCombinedMsg.GyroRad[2] = CVT.SensorGyroMsg.Z; - - /* Finally, calculate and populate the integral dt field, in seconds. If the incoming - * message does not include a integral dt field, estimate the integral by using the delta - * from the previously received message that we calculated above. - */ - if(CVT.SensorGyroMsg.IntegralDt == 0) - { - /* Calculate an estimate from the previous value. But use - * an even less accurate estimate if we don't yet have a - * previous time. - */ - uint32 deltaTimeUs = 0; - - if(CVT.LastGyroTime == 0) - { - deltaTimeUs = CVT.SensorGyroMsg.Timestamp - 1000; - } - else - { - deltaTimeUs = CVT.SensorGyroMsg.Timestamp - CVT.LastGyroTime; - } - - SensorCombinedMsg.GyroIntegralDt = deltaTimeUs / 1000000.0f; - } - else - { - /* The sample includes an integral dt time. Use this but - * convert it to seconds. - */ - SensorCombinedMsg.GyroIntegralDt = CVT.SensorGyroMsg.IntegralDt / 1000000.0f; - } + CFE_SB_CopyMsgTime((CFE_SB_MsgPtr_t)&SensorCombinedMsg, (CFE_SB_MsgPtr_t)&CVT.SensorGyroMsg); + SensorCombinedMsg.Timestamp = CFE_SB_GetMsgTimeInMicros((CFE_SB_MsgPtr_t)&CVT.SensorGyroMsg); + + /* We do have a new measurement. Update the fields accordingly. + * First populate the measurement values. + */ + SensorCombinedMsg.GyroRad[0] = CVT.SensorGyroMsg.X; + SensorCombinedMsg.GyroRad[1] = CVT.SensorGyroMsg.Y; + SensorCombinedMsg.GyroRad[2] = CVT.SensorGyroMsg.Z; + + /* Finally, calculate and populate the integral dt field, in seconds. If the incoming + * message does not include a integral dt field, estimate the integral by using the delta + * from the previously received message that we calculated above. + */ + if(CVT.SensorGyroMsg.IntegralDt == 0) + { + /* Calculate an estimate from the previous value. But use + * an even less accurate estimate if we don't yet have a + * previous time. + */ + uint32 deltaTimeUs = 0; - /* Store the time so we can use it in the next iteration. */ - CVT.LastGyroTime = CVT.SensorGyroMsg.Timestamp; + if(CFE_TIME_IsTimeZero(CVT.PrevGyroTime)) + { + deltaTimeUs = CFE_SB_GetMsgTimeInMicros((CFE_SB_MsgPtr_t)&CVT.SensorGyroMsg) - 1000; + } + else + { + deltaTimeUs = CFE_SB_GetMsgTimeInMicros((CFE_SB_MsgPtr_t)&CVT.SensorGyroMsg) - CFE_TIME_ConvertTimeToMicros(CVT.PrevGyroTime); + } - /* Accelerometer. */ - /* See if we have a new accelerometer measurement. */ - if(CVT.SensorAccelMsg.Timestamp > CVT.LastAccelTime) - { - /* We do have a new measurement. Update the fields accordingly. - * First populate the new values. - */ - SensorCombinedMsg.Acc[0] = CVT.SensorAccelMsg.X; - SensorCombinedMsg.Acc[1] = CVT.SensorAccelMsg.Y; - SensorCombinedMsg.Acc[2] = CVT.SensorAccelMsg.Z; + SensorCombinedMsg.GyroIntegralDt = deltaTimeUs / 1000000.0f; + } + else + { + /* The sample includes an integral dt time. Use this but + * convert it to seconds. + */ + SensorCombinedMsg.GyroIntegralDt = CVT.SensorGyroMsg.IntegralDt / 1000000.0f; + } - /* Now calculate and populate the time relative to the main timestamp. */ - SensorCombinedMsg.AccTimestampRelative = SensorCombinedMsg.Timestamp - CVT.SensorAccelMsg.Timestamp; + /* Store the time so we can use it in the next iteration. */ + CVT.PrevGyroTime = CFE_SB_GetMsgTime((CFE_SB_MsgPtr_t)&CVT.SensorGyroMsg); - /* Finally, calculate and pupulate the integral dt field, in seconds. If the incoming - * message does not include a integral dt field, estimate the integral by using the delta - * from the previously received message that we calculated above. - */ - if(CVT.SensorAccelMsg.IntegralDt == 0) - { - /* Calculate an estimate from the previous value. But use - * an even less accurate estimate if we don't yet have a - * previous time. - */ - uint32 deltaTimeUs = 0; - - if(CVT.LastAccelTime == 0) - { - deltaTimeUs = CVT.SensorAccelMsg.Timestamp - 1000; - } - else - { - deltaTimeUs = CVT.SensorAccelMsg.Timestamp - CVT.LastAccelTime; - } + /* Accelerometer. */ + /* See if we have a new accelerometer measurement. */ + if(CFE_TIME_Compare(CFE_SB_GetMsgTime((CFE_SB_MsgPtr_t)&CVT.SensorAccelMsg),CVT.PrevAccelTime) != CFE_TIME_EQUAL) + { + /* We do have a new measurement. Update the fields accordingly. + * First populate the new values. + */ + SensorCombinedMsg.Acc[0] = CVT.SensorAccelMsg.X; + SensorCombinedMsg.Acc[1] = CVT.SensorAccelMsg.Y; + SensorCombinedMsg.Acc[2] = CVT.SensorAccelMsg.Z; + + /* Now calculate and populate the time relative to the main timestamp. */ + if(CFE_SB_CompareMsgTime((CFE_SB_MsgPtr_t)&SensorCombinedMsg, (CFE_SB_MsgPtr_t)&CVT.SensorAccelMsg), CFE_TIME_A_GT_B) + { + /* if gyro is after accel */ + SensorCombinedMsg.AccTimestampRelative = CFE_SB_GetMsgTimeInMicros((CFE_SB_MsgPtr_t)&SensorCombinedMsg) - CFE_SB_GetMsgTimeInMicros((CFE_SB_MsgPtr_t)&CVT.SensorAccelMsg); + } + else if(CFE_SB_CompareMsgTime((CFE_SB_MsgPtr_t)&SensorCombinedMsg, (CFE_SB_MsgPtr_t)&CVT.SensorMagMsg), CFE_TIME_A_LT_B) + { + /* if gyro is before accel */ + SensorCombinedMsg.AccTimestampRelative = CFE_SB_GetMsgTimeInMicros((CFE_SB_MsgPtr_t)&CVT.SensorAccelMsg - CFE_SB_GetMsgTimeInMicros((CFE_SB_MsgPtr_t)&SensorCombinedMsg)); + } + else + { + /* should never get here */ + SensorCombinedMsg.MagTimestampRelative = 0; + } - SensorCombinedMsg.AccIntegralDt = deltaTimeUs / 1000000.0f; - } - else - { - /* The sample includes an integral dt time. Use this but - * convert it to seconds. - */ - SensorCombinedMsg.AccIntegralDt = CVT.SensorAccelMsg.IntegralDt / 1000000.0f; - } + /* Finally, calculate and pupulate the integral dt field, in seconds. If the incoming + * message does not include a integral dt field, estimate the integral by using the delta + * from the previously received message that we calculated above. + */ + if(CVT.SensorAccelMsg.IntegralDt == 0) + { + /* Calculate an estimate from the previous value. But use + * an even less accurate estimate if we don't yet have a + * previous time. + */ + uint32 deltaTimeUs = 0; - SensorCombinedMsg.AccRelTimeInvalid = false; + if(CFE_TIME_IsTimeZero(CVT.PrevAccelTime)) + { + deltaTimeUs = CFE_SB_GetMsgTimeInMicros((CFE_SB_MsgPtr_t)&CVT.SensorAccelMsg) - 1000; + } + else + { + deltaTimeUs = CFE_SB_GetMsgTimeInMicros((CFE_SB_MsgPtr_t)&CVT.SensorAccelMsg) - CFE_TIME_ConvertTimeToMicros(CVT.PrevAccelTime); + } - /* Store the time so we can use it in the next iteration. */ - CVT.LastAccelTime = CVT.SensorAccelMsg.Timestamp; - } - else - { - /* No new measurement was received. Update the fields accordingly. */ - //CVT.SensorAccelMsg.Timestamp = PX4_RELATIVE_TIMESTAMP_INVALID; - SensorCombinedMsg.AccRelTimeInvalid = true; - } + SensorCombinedMsg.AccIntegralDt = deltaTimeUs / 1000000.0f; + } + else + { + /* The sample includes an integral dt time. Use this but + * convert it to seconds. + */ + SensorCombinedMsg.AccIntegralDt = CVT.SensorAccelMsg.IntegralDt / 1000000.0f; + } - /* Mag. */ - /* See if we have a new magnetometer measurement. */ - if(CVT.SensorMagMsg.Timestamp > CVT.LastMagTime) - { - /* We do have a new measurement. Update the fields accordingly. - * First populate the new values. - */ - SensorCombinedMsg.Mag[0] = CVT.SensorMagMsg.X; - SensorCombinedMsg.Mag[1] = CVT.SensorMagMsg.Y; - SensorCombinedMsg.Mag[2] = CVT.SensorMagMsg.Z; + SensorCombinedMsg.AccRelTimeInvalid = false; - /* Now calculate and populate the time relative to the main timestamp. */ - SensorCombinedMsg.MagTimestampRelative = SensorCombinedMsg.Timestamp - CVT.SensorMagMsg.Timestamp; + /* Store the time so we can use it in the next iteration. */ + CVT.PrevAccelTime = CFE_SB_GetMsgTime((CFE_SB_MsgPtr_t)&CVT.SensorAccelMsg); + } + else + { + /* No new measurement was received. Update the fields accordingly. */ + //CVT.SensorAccelMsg.Timestamp = PX4_RELATIVE_TIMESTAMP_INVALID; + SensorCombinedMsg.AccRelTimeInvalid = true; + } - SensorCombinedMsg.MagRelTimeInvalid = false; + /* Mag. */ + /* See if we have a new magnetometer measurement. */ + if(CFE_TIME_Compare(CFE_SB_GetMsgTime((CFE_SB_MsgPtr_t)&CVT.SensorMagMsg),CVT.PrevMagTime) != CFE_TIME_EQUAL) + { + /* We do have a new measurement. Update the fields accordingly. + * First populate the new values. + */ + SensorCombinedMsg.Mag[0] = CVT.SensorMagMsg.X; + SensorCombinedMsg.Mag[1] = CVT.SensorMagMsg.Y; + SensorCombinedMsg.Mag[2] = CVT.SensorMagMsg.Z; + + /* Now calculate and populate the time relative to the main timestamp. */ + if(CFE_SB_CompareMsgTime((CFE_SB_MsgPtr_t)&SensorCombinedMsg, (CFE_SB_MsgPtr_t)&CVT.SensorMagMsg), CFE_TIME_A_GT_B) + { + /* if gyro is after mag */ + SensorCombinedMsg.MagTimestampRelative = CFE_SB_GetMsgTimeInMicros((CFE_SB_MsgPtr_t)&SensorCombinedMsg) - CFE_SB_GetMsgTimeInMicros((CFE_SB_MsgPtr_t)&CVT.SensorMagMsg); + } + else if(CFE_SB_CompareMsgTime((CFE_SB_MsgPtr_t)&SensorCombinedMsg, (CFE_SB_MsgPtr_t)&CVT.SensorMagMsg), CFE_TIME_A_LT_B) + { + /* if gyro is before mag */ + SensorCombinedMsg.MagTimestampRelative = CFE_SB_GetMsgTimeInMicros((CFE_SB_MsgPtr_t)&CVT.SensorMagMsg - CFE_SB_GetMsgTimeInMicros((CFE_SB_MsgPtr_t)&SensorCombinedMsg)); + } + else + { + /* should never get here */ + SensorCombinedMsg.MagTimestampRelative = 0; + } - /* Store the time so we can use it in the next iteration. */ - CVT.LastMagTime = CVT.SensorMagMsg.Timestamp; - } - else - { - /* No new measurement was received. Update the fields accordingly. */ - //CVT.SensorMagMsg.Timestamp = PX4_RELATIVE_TIMESTAMP_INVALID; - SensorCombinedMsg.MagRelTimeInvalid = true; - } + SensorCombinedMsg.MagRelTimeInvalid = false; - /* Baro. */ - /* See if we have a new baro measurement. */ - //baro_timestamp = sensors.timestamp + sensors.baro_timestamp_relative; - if(CVT.SensorBaroMsg.Timestamp > CVT.LastBaroTime) - { - /* We do have a new measurement. Update the fields accordingly. - * First populate the new values. - */ - SensorCombinedMsg.BaroAlt = CVT.SensorBaroMsg.Altitude; - SensorCombinedMsg.BaroTemp = CVT.SensorBaroMsg.Temperature; + /* Store the time so we can use it in the next iteration. */ + CVT.PrevMagTime = CFE_SB_GetMsgTime((CFE_SB_MsgPtr_t)&CVT.SensorMagMsg); + } + else + { + /* No new measurement was received. Update the fields accordingly. */ + //CVT.SensorMagMsg.Timestamp = PX4_RELATIVE_TIMESTAMP_INVALID; + SensorCombinedMsg.MagRelTimeInvalid = true; + } - /* Now calculate and populate the time relative to the main timestamp. */ - if(SensorCombinedMsg.Timestamp > CVT.SensorBaroMsg.Timestamp) - { + /* Baro. */ + /* See if we have a new baro measurement. */ + //baro_timestamp = sensors.timestamp + sensors.baro_timestamp_relative; + if(CFE_TIME_Compare(CFE_SB_GetMsgTime((CFE_SB_MsgPtr_t)&CVT.SensorBaroMsg),CVT.PrevBaroTime) != CFE_TIME_EQUAL) + { + /* We do have a new measurement. Update the fields accordingly. + * First populate the new values. + */ + SensorCombinedMsg.BaroAlt = CVT.SensorBaroMsg.Altitude; + SensorCombinedMsg.BaroTemp = CVT.SensorBaroMsg.Temperature; + + /* Now calculate and populate the time relative to the main timestamp. */ + if(CFE_SB_CompareMsgTime((CFE_SB_MsgPtr_t)&SensorCombinedMsg, (CFE_SB_MsgPtr_t)&CVT.SensorBaroMsg), CFE_TIME_A_GT_B) + { /* if gyro is after baro */ - SensorCombinedMsg.BaroTimestampRelative = SensorCombinedMsg.Timestamp - CVT.SensorBaroMsg.Timestamp; - } - else if (SensorCombinedMsg.Timestamp < CVT.SensorBaroMsg.Timestamp) - { + SensorCombinedMsg.BaroTimestampRelative = CFE_SB_GetMsgTimeInMicros((CFE_SB_MsgPtr_t)&SensorCombinedMsg) - CFE_SB_GetMsgTimeInMicros((CFE_SB_MsgPtr_t)&CVT.SensorBaroMsg); + } + else if(CFE_SB_CompareMsgTime((CFE_SB_MsgPtr_t)&SensorCombinedMsg, (CFE_SB_MsgPtr_t)&CVT.SensorBaroMsg), CFE_TIME_A_LT_B) + { /* if gyro is before baro */ - SensorCombinedMsg.BaroTimestampRelative = CVT.SensorBaroMsg.Timestamp - SensorCombinedMsg.Timestamp; - } + SensorCombinedMsg.BaroTimestampRelative = CFE_SB_GetMsgTimeInMicros((CFE_SB_MsgPtr_t)&CVT.SensorBaroMsg - CFE_SB_GetMsgTimeInMicros((CFE_SB_MsgPtr_t)&SensorCombinedMsg)); + } else { /* should never get here */ SensorCombinedMsg.BaroTimestampRelative = 0; } - SensorCombinedMsg.BaroRelTimeInvalid = false; - - /* Store the time so we can use it in the next iteration. */ - CVT.LastBaroTime = CVT.SensorBaroMsg.Timestamp; - } - else - { - /* No new measurement was received. Update the fields accordingly. */ - //CVT.SensorBaroMsg.Timestamp = PX4_RELATIVE_TIMESTAMP_INVALID; - SensorCombinedMsg.BaroRelTimeInvalid = true; - } + SensorCombinedMsg.BaroRelTimeInvalid = false; + /* Store the time so we can use it in the next iteration. */ + CVT.PrevBaroTime = CFE_SB_GetMsgTime((CFE_SB_MsgPtr_t)&CVT.SensorBaroMsg); + } + else + { + /* No new measurement was received. Update the fields accordingly. */ + SensorCombinedMsg.BaroRelTimeInvalid = false; + } + } - /* The message is ready for publishing. Push it out the door. */ - SendSensorCombinedMsg(); - } + /* The message is ready for publishing. Push it out the door. */ + CFE_SB_SendMsg((CFE_SB_Msg_t*)&SensorCombinedMsg); } diff --git a/apps/sens/fsw/src/sens_app.h b/apps/sens/fsw/src/sens_app.h index 0aace20d1..5e84b0e79 100644 --- a/apps/sens/fsw/src/sens_app.h +++ b/apps/sens/fsw/src/sens_app.h @@ -69,21 +69,18 @@ extern "C" { typedef struct { PX4_SensorAccelMsg_t SensorAccelMsg; - uint64 LastAccelTime; + CFE_TIME_SysTime_t PrevAccelTime; PX4_SensorBaroMsg_t SensorBaroMsg; - uint64 LastBaroTime; + CFE_TIME_SysTime_t PrevBaroTime; PX4_SensorGyroMsg_t SensorGyroMsg; - uint64 LastGyroTime; + CFE_TIME_SysTime_t PrevGyroTime; PX4_SensorMagMsg_t SensorMagMsg; - uint64 LastMagTime; + CFE_TIME_SysTime_t PrevMagTime; PX4_ActuatorControlsMsg_t ActuatorControls0Msg; - uint64 LastActuatorControls0Time; PX4_InputRcMsg_t InputRcMsg; uint64 LastInputRcTime; PX4_DifferentialPressureMsg_t DifferentialPressureMsg; - uint64 LastDifferentialPressureTime; PX4_VehicleControlModeMsg_t VehicleControlModeMsg; - uint64 LastVehicleControlModeTime; } SENS_CurrentValueTable_t; diff --git a/apps/sens/fsw/src/sens_config_utils.cpp b/apps/sens/fsw/src/sens_config_utils.cpp index 5fc2730de..66e9db110 100644 --- a/apps/sens/fsw/src/sens_config_utils.cpp +++ b/apps/sens/fsw/src/sens_config_utils.cpp @@ -97,11 +97,11 @@ int32 SENS::InitConfigTbl() int32 SENS::ValidateConfigTbl(void* ConfigTblPtr) { int32 iStatus=0; - SENS_ConfigTbl_t* SENS_ConfigTblPtr = (SENS_ConfigTbl_t*)(ConfigTblPtr); + //SENS_ConfigTbl_t* SENS_ConfigTblPtr = (SENS_ConfigTbl_t*)(ConfigTblPtr); /* TODO: Add validation code here. */ -SENS_ValidateConfigTbl_Exit_Tag: + //SENS_ValidateConfigTbl_Exit_Tag: return iStatus; } diff --git a/apps/vm/fsw/for_build/CMakeLists.txt b/apps/vm/fsw/for_build/CMakeLists.txt index c6cd69a26..535d1142b 100644 --- a/apps/vm/fsw/for_build/CMakeLists.txt +++ b/apps/vm/fsw/for_build/CMakeLists.txt @@ -96,6 +96,7 @@ buildliner_add_app_unit_test(vm-ut ${CMAKE_CURRENT_BINARY_DIR}/sm_src/VM_NavigationContext.h ${CMAKE_CURRENT_SOURCE_DIR}/../src/CautionWarningHelper.cpp ${CMAKE_CURRENT_SOURCE_DIR}/../src/CautionWarningHelper.hpp + ${CMAKE_CURRENT_SOURCE_DIR}/../../../cfs_lib/fsw/src/cfs_utils.c #${PX4LIB_LIB_SOURCES} # Adding lib sources individually so stubs can be used. # Math diff --git a/apps/vm/fsw/src/vm_Navigation.cpp b/apps/vm/fsw/src/vm_Navigation.cpp index 4259a5467..3ee32203a 100644 --- a/apps/vm/fsw/src/vm_Navigation.cpp +++ b/apps/vm/fsw/src/vm_Navigation.cpp @@ -35,6 +35,7 @@ #include "vm_events.h" #include "vm_app.h" #include "px4lib_msgids.h" +#include "cfs_utils.h" typedef enum { @@ -413,19 +414,19 @@ osalbool VM_Navigation::AllMessagesReceivedAtLeastOnce() { osalbool validity = false; - osalbool SensorMagMsgReady = (App.SensorMagMsg.Timestamp > 0); - osalbool SensorGyroMsgReady = (App.SensorGyroMsg.Timestamp > 0); - osalbool SensorAccelMsgReady = (App.SensorAccelMsg.Timestamp > 0); + osalbool SensorMagMsgReady = !CFE_SB_IsMsgTimeZero((CFE_SB_MsgPtr_t)&App.SensorMagMsg); + osalbool SensorGyroMsgReady = !CFE_SB_IsMsgTimeZero((CFE_SB_MsgPtr_t)&App.SensorGyroMsg); + osalbool SensorAccelMsgReady = !CFE_SB_IsMsgTimeZero((CFE_SB_MsgPtr_t)&App.SensorAccelMsg); osalbool SensorCombinedMsgReady = (App.SensorCombinedMsg.Timestamp > 0); osalbool VehicleAttitudeMsgReady = (App.VehicleAttitudeMsg.Timestamp > 0); - osalbool VehicleLocalPositionMsg = (App.VehicleLocalPositionMsg.Timestamp > 0); + osalbool VehicleLocalPositionMsgReady = (App.VehicleLocalPositionMsg.Timestamp > 0); osalbool VehicleLandDetectedMsgReady = (App.VehicleLandDetectedMsg.Timestamp > 0); osalbool VehicleGlobalPositionMsgReady = (App.VehicleGlobalPositionMsg.Timestamp > 0); osalbool VehicleGpsPositionMsgReady = (App.VehicleGpsPositionMsg.Timestamp > 0); if (SensorMagMsgReady && SensorGyroMsgReady && SensorAccelMsgReady && SensorCombinedMsgReady && VehicleAttitudeMsgReady - && VehicleLocalPositionMsg && VehicleLandDetectedMsgReady + && VehicleLocalPositionMsgReady && VehicleLandDetectedMsgReady && VehicleGlobalPositionMsgReady && VehicleGpsPositionMsgReady) { validity = true; @@ -435,7 +436,16 @@ osalbool VM_Navigation::AllMessagesReceivedAtLeastOnce() { /* Send event */ CFE_EVS_SendEvent(VM_SEN_NOT_READY_INFO_EID, CFE_EVS_INFORMATION, - "Sensors not ready"); + "Sensors not ready (SM=%u SG=%u SA=%u SC=%u VA=%u VLP=%u VLD=%u VGP=%u VGPSP=%u)\n", + SensorMagMsgReady, + SensorGyroMsgReady, + SensorAccelMsgReady, + SensorCombinedMsgReady, + VehicleAttitudeMsgReady, + VehicleLocalPositionMsgReady, + VehicleLandDetectedMsgReady, + VehicleGlobalPositionMsgReady, + VehicleGpsPositionMsgReady); } return validity; From 2fe1a2f87283ca336c62974607a495bed0d281fd Mon Sep 17 00:00:00 2001 From: Mathew Benson Date: Tue, 23 Feb 2021 23:30:11 -0600 Subject: [PATCH 133/370] Changed sensor relative timestamps in the SENS application to absolute timestamps. --- apps/pe/fsw/src/pe_app.cpp | 8 ++-- apps/px4lib/fsw/public_inc/px4_msgs.h | 12 ++--- apps/qae/fsw/src/qae_app.cpp | 4 +- apps/sens/fsw/src/sens_app.cpp | 69 +++++---------------------- apps/vm/fsw/src/vm_Navigation.cpp | 28 +++++++---- 5 files changed, 43 insertions(+), 78 deletions(-) diff --git a/apps/pe/fsw/src/pe_app.cpp b/apps/pe/fsw/src/pe_app.cpp index 8227ec5a0..99276a98f 100644 --- a/apps/pe/fsw/src/pe_app.cpp +++ b/apps/pe/fsw/src/pe_app.cpp @@ -40,6 +40,7 @@ #include "pe_msg.h" #include "pe_version.h" #include "px4lib_msgids.h" +#include "cfs_utils.h" /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ /* */ @@ -853,15 +854,14 @@ osalbool PE::ProcessDataPipe() if(TRUE == m_BaroFuse) { /* If baro is valid */ - if(m_SensorCombinedMsg.BaroTimestampRelative != PX4_RELATIVE_TIMESTAMP_INVALID) + if(!m_SensorCombinedMsg.BaroInvalid) { /* Get the baro timestamp from the sensor combined timestamp * (which is the gyro timestamp) plus the baro relative timestamp. * Baro relative is the difference between the gyro and baro * when received by the sensors application. If baro is fresh. */ - if((m_SensorCombinedMsg.Timestamp + - m_SensorCombinedMsg.BaroTimestampRelative) + if(CFE_TIME_ConvertTimeToMicros(m_SensorCombinedMsg.BaroTimestamp) != m_TimeLastBaro) { if(m_BaroTimeout) @@ -873,7 +873,7 @@ osalbool PE::ProcessDataPipe() baroCorrect(); } /* Save the last valid timestamp */ - m_TimeLastBaro = m_SensorCombinedMsg.Timestamp + m_SensorCombinedMsg.BaroTimestampRelative; + m_TimeLastBaro = CFE_TIME_ConvertTimeToMicros(m_SensorCombinedMsg.BaroTimestamp); } } } diff --git a/apps/px4lib/fsw/public_inc/px4_msgs.h b/apps/px4lib/fsw/public_inc/px4_msgs.h index 9baa4108d..fab02bed3 100644 --- a/apps/px4lib/fsw/public_inc/px4_msgs.h +++ b/apps/px4lib/fsw/public_inc/px4_msgs.h @@ -996,15 +996,15 @@ typedef struct uint64 Timestamp; float GyroRad[3]; float GyroIntegralDt; - uint32 AccTimestampRelative; - boolean AccRelTimeInvalid; + CFE_TIME_SysTime_t AccTimestamp; + boolean AccInvalid; float Acc[3]; float AccIntegralDt; - uint32 MagTimestampRelative; - boolean MagRelTimeInvalid; + CFE_TIME_SysTime_t MagTimestamp; + boolean MagInvalid; float Mag[3]; - uint32 BaroTimestampRelative; - boolean BaroRelTimeInvalid; + CFE_TIME_SysTime_t BaroTimestamp; + boolean BaroInvalid; float BaroAlt; float BaroTemp; } PX4_SensorCombinedMsg_t; diff --git a/apps/qae/fsw/src/qae_app.cpp b/apps/qae/fsw/src/qae_app.cpp index 4f1938b08..f02851714 100644 --- a/apps/qae/fsw/src/qae_app.cpp +++ b/apps/qae/fsw/src/qae_app.cpp @@ -670,7 +670,7 @@ void QAE::EstimateAttitude(void) m_Gyro[1] = CVT.SensorCombinedMsg.GyroRad[1]; m_Gyro[2] = CVT.SensorCombinedMsg.GyroRad[2]; - if(CVT.SensorCombinedMsg.AccTimestampRelative != PX4_RELATIVE_TIMESTAMP_INVALID) + if(!CVT.SensorCombinedMsg.AccInvalid) { /* No lowpass filter here, filtering is in the driver */ m_Accel[0] = CVT.SensorCombinedMsg.Acc[0]; @@ -687,7 +687,7 @@ void QAE::EstimateAttitude(void) } } - if(CVT.SensorCombinedMsg.MagTimestampRelative != PX4_RELATIVE_TIMESTAMP_INVALID) + if(!CVT.SensorCombinedMsg.MagInvalid) { /* No lowpass filter here, filtering is in the driver */ m_Mag[0] = CVT.SensorCombinedMsg.Mag[0]; diff --git a/apps/sens/fsw/src/sens_app.cpp b/apps/sens/fsw/src/sens_app.cpp index 47e0cb93a..bff32eeaf 100644 --- a/apps/sens/fsw/src/sens_app.cpp +++ b/apps/sens/fsw/src/sens_app.cpp @@ -1083,22 +1083,8 @@ void SENS::CombineSensorInput(void) SensorCombinedMsg.Acc[1] = CVT.SensorAccelMsg.Y; SensorCombinedMsg.Acc[2] = CVT.SensorAccelMsg.Z; - /* Now calculate and populate the time relative to the main timestamp. */ - if(CFE_SB_CompareMsgTime((CFE_SB_MsgPtr_t)&SensorCombinedMsg, (CFE_SB_MsgPtr_t)&CVT.SensorAccelMsg), CFE_TIME_A_GT_B) - { - /* if gyro is after accel */ - SensorCombinedMsg.AccTimestampRelative = CFE_SB_GetMsgTimeInMicros((CFE_SB_MsgPtr_t)&SensorCombinedMsg) - CFE_SB_GetMsgTimeInMicros((CFE_SB_MsgPtr_t)&CVT.SensorAccelMsg); - } - else if(CFE_SB_CompareMsgTime((CFE_SB_MsgPtr_t)&SensorCombinedMsg, (CFE_SB_MsgPtr_t)&CVT.SensorMagMsg), CFE_TIME_A_LT_B) - { - /* if gyro is before accel */ - SensorCombinedMsg.AccTimestampRelative = CFE_SB_GetMsgTimeInMicros((CFE_SB_MsgPtr_t)&CVT.SensorAccelMsg - CFE_SB_GetMsgTimeInMicros((CFE_SB_MsgPtr_t)&SensorCombinedMsg)); - } - else - { - /* should never get here */ - SensorCombinedMsg.MagTimestampRelative = 0; - } + /* Now timestamp the measurement. */ + SensorCombinedMsg.AccTimestamp = CFE_SB_GetMsgTime((CFE_SB_MsgPtr_t)&CVT.SensorAccelMsg); /* Finally, calculate and pupulate the integral dt field, in seconds. If the incoming * message does not include a integral dt field, estimate the integral by using the delta @@ -1131,7 +1117,7 @@ void SENS::CombineSensorInput(void) SensorCombinedMsg.AccIntegralDt = CVT.SensorAccelMsg.IntegralDt / 1000000.0f; } - SensorCombinedMsg.AccRelTimeInvalid = false; + SensorCombinedMsg.AccInvalid = false; /* Store the time so we can use it in the next iteration. */ CVT.PrevAccelTime = CFE_SB_GetMsgTime((CFE_SB_MsgPtr_t)&CVT.SensorAccelMsg); @@ -1140,7 +1126,7 @@ void SENS::CombineSensorInput(void) { /* No new measurement was received. Update the fields accordingly. */ //CVT.SensorAccelMsg.Timestamp = PX4_RELATIVE_TIMESTAMP_INVALID; - SensorCombinedMsg.AccRelTimeInvalid = true; + SensorCombinedMsg.AccInvalid = true; } /* Mag. */ @@ -1154,24 +1140,10 @@ void SENS::CombineSensorInput(void) SensorCombinedMsg.Mag[1] = CVT.SensorMagMsg.Y; SensorCombinedMsg.Mag[2] = CVT.SensorMagMsg.Z; - /* Now calculate and populate the time relative to the main timestamp. */ - if(CFE_SB_CompareMsgTime((CFE_SB_MsgPtr_t)&SensorCombinedMsg, (CFE_SB_MsgPtr_t)&CVT.SensorMagMsg), CFE_TIME_A_GT_B) - { - /* if gyro is after mag */ - SensorCombinedMsg.MagTimestampRelative = CFE_SB_GetMsgTimeInMicros((CFE_SB_MsgPtr_t)&SensorCombinedMsg) - CFE_SB_GetMsgTimeInMicros((CFE_SB_MsgPtr_t)&CVT.SensorMagMsg); - } - else if(CFE_SB_CompareMsgTime((CFE_SB_MsgPtr_t)&SensorCombinedMsg, (CFE_SB_MsgPtr_t)&CVT.SensorMagMsg), CFE_TIME_A_LT_B) - { - /* if gyro is before mag */ - SensorCombinedMsg.MagTimestampRelative = CFE_SB_GetMsgTimeInMicros((CFE_SB_MsgPtr_t)&CVT.SensorMagMsg - CFE_SB_GetMsgTimeInMicros((CFE_SB_MsgPtr_t)&SensorCombinedMsg)); - } - else - { - /* should never get here */ - SensorCombinedMsg.MagTimestampRelative = 0; - } + /* Now timestamp the measurement */ + SensorCombinedMsg.MagTimestamp = CFE_SB_GetMsgTime((CFE_SB_MsgPtr_t)&CVT.SensorMagMsg); - SensorCombinedMsg.MagRelTimeInvalid = false; + SensorCombinedMsg.MagInvalid = false; /* Store the time so we can use it in the next iteration. */ CVT.PrevMagTime = CFE_SB_GetMsgTime((CFE_SB_MsgPtr_t)&CVT.SensorMagMsg); @@ -1179,13 +1151,11 @@ void SENS::CombineSensorInput(void) else { /* No new measurement was received. Update the fields accordingly. */ - //CVT.SensorMagMsg.Timestamp = PX4_RELATIVE_TIMESTAMP_INVALID; - SensorCombinedMsg.MagRelTimeInvalid = true; + SensorCombinedMsg.MagInvalid = true; } /* Baro. */ /* See if we have a new baro measurement. */ - //baro_timestamp = sensors.timestamp + sensors.baro_timestamp_relative; if(CFE_TIME_Compare(CFE_SB_GetMsgTime((CFE_SB_MsgPtr_t)&CVT.SensorBaroMsg),CVT.PrevBaroTime) != CFE_TIME_EQUAL) { /* We do have a new measurement. Update the fields accordingly. @@ -1194,31 +1164,18 @@ void SENS::CombineSensorInput(void) SensorCombinedMsg.BaroAlt = CVT.SensorBaroMsg.Altitude; SensorCombinedMsg.BaroTemp = CVT.SensorBaroMsg.Temperature; - /* Now calculate and populate the time relative to the main timestamp. */ - if(CFE_SB_CompareMsgTime((CFE_SB_MsgPtr_t)&SensorCombinedMsg, (CFE_SB_MsgPtr_t)&CVT.SensorBaroMsg), CFE_TIME_A_GT_B) - { - /* if gyro is after baro */ - SensorCombinedMsg.BaroTimestampRelative = CFE_SB_GetMsgTimeInMicros((CFE_SB_MsgPtr_t)&SensorCombinedMsg) - CFE_SB_GetMsgTimeInMicros((CFE_SB_MsgPtr_t)&CVT.SensorBaroMsg); - } - else if(CFE_SB_CompareMsgTime((CFE_SB_MsgPtr_t)&SensorCombinedMsg, (CFE_SB_MsgPtr_t)&CVT.SensorBaroMsg), CFE_TIME_A_LT_B) - { - /* if gyro is before baro */ - SensorCombinedMsg.BaroTimestampRelative = CFE_SB_GetMsgTimeInMicros((CFE_SB_MsgPtr_t)&CVT.SensorBaroMsg - CFE_SB_GetMsgTimeInMicros((CFE_SB_MsgPtr_t)&SensorCombinedMsg)); - } - else - { - /* should never get here */ - SensorCombinedMsg.BaroTimestampRelative = 0; - } + /* Now timestamp the measurement */ + SensorCombinedMsg.BaroTimestamp = CFE_SB_GetMsgTime((CFE_SB_MsgPtr_t)&CVT.SensorBaroMsg); + + SensorCombinedMsg.BaroInvalid = false; - SensorCombinedMsg.BaroRelTimeInvalid = false; /* Store the time so we can use it in the next iteration. */ CVT.PrevBaroTime = CFE_SB_GetMsgTime((CFE_SB_MsgPtr_t)&CVT.SensorBaroMsg); } else { /* No new measurement was received. Update the fields accordingly. */ - SensorCombinedMsg.BaroRelTimeInvalid = false; + SensorCombinedMsg.BaroInvalid = false; } } diff --git a/apps/vm/fsw/src/vm_Navigation.cpp b/apps/vm/fsw/src/vm_Navigation.cpp index 3ee32203a..970ac4426 100644 --- a/apps/vm/fsw/src/vm_Navigation.cpp +++ b/apps/vm/fsw/src/vm_Navigation.cpp @@ -535,24 +535,32 @@ osalbool VM_Navigation::IsTransitionPosCtlValid(void) /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ osalbool VM_Navigation::IsTransitionAcrobaticValid(void) { - osalbool validity = false; + osalbool validity = true; PX4_NavigationState_t Current_NavState = App.VehicleStatusMsg.NavState; /* Altitude Hold Requirement Validation */ - if (App.SensorCombinedMsg.Timestamp > 0 - && (App.SensorCombinedMsg.MagTimestampRelative - != PX4_RELATIVE_TIMESTAMP_INVALID) - && (App.SensorCombinedMsg.AccRelTimeInvalid - != PX4_RELATIVE_TIMESTAMP_INVALID)) + osalbool SensorCombinedMsgReady = !CFE_SB_IsMsgTimeZero((CFE_SB_MsgPtr_t)&App.SensorCombinedMsg); + osalbool SensorMagMsgReady = !CFE_SB_IsMsgTimeZero((CFE_SB_MsgPtr_t)&App.SensorMagMsg); + + if(CFE_SB_IsMsgTimeZero((CFE_SB_MsgPtr_t)&App.SensorCombinedMsg)) { - validity = true; + CFE_EVS_SendEvent(VM_REQ_ACRO_ERR_EID, CFE_EVS_ERROR, + "Acrobatic mode requirement failed. SensorCombinedMsg not received."); + validity = false; } - if (!validity) + if(App.SensorCombinedMsg.MagInvalid) + { + CFE_EVS_SendEvent(VM_REQ_ACRO_ERR_EID, CFE_EVS_ERROR, + "Acrobatic mode requirement failed. Mag invalid."); + validity = false; + } + + if(App.SensorCombinedMsg.AccInvalid) { - /* Send event */ CFE_EVS_SendEvent(VM_REQ_ACRO_ERR_EID, CFE_EVS_ERROR, - "Acrobatic mode requirement failed"); + "Acrobatic mode requirement failed. Acc invalid."); + validity = false; } return validity; From 4f8dff121d180572a5b82c2f2972d9b286eaf70d Mon Sep 17 00:00:00 2001 From: Mathew Benson Date: Tue, 23 Feb 2021 23:43:37 -0600 Subject: [PATCH 134/370] Removed the timestamp field from Sensor Combined message. --- apps/px4lib/fsw/public_inc/px4_msgs.h | 1 - apps/qae/fsw/src/qae_app.cpp | 9 +++++---- apps/qae/fsw/src/qae_app.hpp | 2 +- apps/sens/fsw/src/sens_app.cpp | 1 - apps/vm/fsw/src/vm_Navigation.cpp | 2 +- 5 files changed, 7 insertions(+), 8 deletions(-) diff --git a/apps/px4lib/fsw/public_inc/px4_msgs.h b/apps/px4lib/fsw/public_inc/px4_msgs.h index fab02bed3..b3dd4ab15 100644 --- a/apps/px4lib/fsw/public_inc/px4_msgs.h +++ b/apps/px4lib/fsw/public_inc/px4_msgs.h @@ -993,7 +993,6 @@ typedef struct typedef struct { uint8 TlmHeader[CFE_SB_TLM_HDR_SIZE]; - uint64 Timestamp; float GyroRad[3]; float GyroIntegralDt; CFE_TIME_SysTime_t AccTimestamp; diff --git a/apps/qae/fsw/src/qae_app.cpp b/apps/qae/fsw/src/qae_app.cpp index f02851714..564f65fec 100644 --- a/apps/qae/fsw/src/qae_app.cpp +++ b/apps/qae/fsw/src/qae_app.cpp @@ -45,6 +45,7 @@ #include #include #include "px4lib_msgids.h" +#include "cfs_utils.h" /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ /* */ @@ -663,7 +664,7 @@ void QAE::EstimateAttitude(void) osalbool update_success = FALSE; /* If there is a new sensor combined message */ - if(CVT.SensorCombinedMsg.Timestamp > CVT.LastSensorCombinedTime) + if(CFE_TIME_Compare(CFE_SB_GetMsgTime((CFE_SB_MsgPtr_t)&CVT.SensorCombinedMsg), CVT.LastSensorCombinedTime) != CFE_TIME_EQUAL) { /* No lowpass filter here, filtering is in the driver */ m_Gyro[0] = CVT.SensorCombinedMsg.GyroRad[0]; @@ -707,7 +708,7 @@ void QAE::EstimateAttitude(void) HkTlm.State = QAE_SENSOR_DATA_RCVD; /* Update last timestamp */ - CVT.LastSensorCombinedTime = CVT.SensorCombinedMsg.Timestamp; + CVT.LastSensorCombinedTime = CFE_SB_GetMsgTime((CFE_SB_MsgPtr_t)&CVT.SensorCombinedMsg); } else { @@ -780,7 +781,7 @@ void QAE::EstimateAttitude(void) } /* Populate vehicle attitude message */ - VehicleAttitudeMsg.Timestamp = CVT.SensorCombinedMsg.Timestamp; + VehicleAttitudeMsg.Timestamp = CFE_SB_GetMsgTimeInMicros((CFE_SB_MsgPtr_t)&CVT.SensorCombinedMsg); VehicleAttitudeMsg.RollSpeed = m_Rates[0]; VehicleAttitudeMsg.PitchSpeed = m_Rates[1]; VehicleAttitudeMsg.YawSpeed = m_Rates[2]; @@ -793,7 +794,7 @@ void QAE::EstimateAttitude(void) SendVehicleAttitudeMsg(); /* Populate control state message */ - ControlStateMsg.Timestamp = CVT.SensorCombinedMsg.Timestamp; + ControlStateMsg.Timestamp = CFE_SB_GetMsgTimeInMicros((CFE_SB_MsgPtr_t)&CVT.SensorCombinedMsg); /* Attitude quaternions for control state */ ControlStateMsg.Q[0] = m_Quaternion[0]; diff --git a/apps/qae/fsw/src/qae_app.hpp b/apps/qae/fsw/src/qae_app.hpp index 7d2135f69..3ce3793fb 100644 --- a/apps/qae/fsw/src/qae_app.hpp +++ b/apps/qae/fsw/src/qae_app.hpp @@ -121,7 +121,7 @@ typedef struct PX4_SensorCombinedMsg_t SensorCombinedMsg; /** \brief The last sensor combined message timestamp */ - uint64 LastSensorCombinedTime; + CFE_TIME_SysTime_t LastSensorCombinedTime; /** \brief The vehicle global position message */ PX4_VehicleGlobalPositionMsg_t VehicleGlobalPositionMsg; diff --git a/apps/sens/fsw/src/sens_app.cpp b/apps/sens/fsw/src/sens_app.cpp index bff32eeaf..a7acee664 100644 --- a/apps/sens/fsw/src/sens_app.cpp +++ b/apps/sens/fsw/src/sens_app.cpp @@ -1029,7 +1029,6 @@ void SENS::CombineSensorInput(void) if(CFE_TIME_Compare(CFE_SB_GetMsgTime((CFE_SB_MsgPtr_t)&CVT.SensorGyroMsg),CVT.PrevGyroTime) != CFE_TIME_EQUAL) { CFE_SB_CopyMsgTime((CFE_SB_MsgPtr_t)&SensorCombinedMsg, (CFE_SB_MsgPtr_t)&CVT.SensorGyroMsg); - SensorCombinedMsg.Timestamp = CFE_SB_GetMsgTimeInMicros((CFE_SB_MsgPtr_t)&CVT.SensorGyroMsg); /* We do have a new measurement. Update the fields accordingly. * First populate the measurement values. diff --git a/apps/vm/fsw/src/vm_Navigation.cpp b/apps/vm/fsw/src/vm_Navigation.cpp index 970ac4426..9b713f3d5 100644 --- a/apps/vm/fsw/src/vm_Navigation.cpp +++ b/apps/vm/fsw/src/vm_Navigation.cpp @@ -417,7 +417,7 @@ osalbool VM_Navigation::AllMessagesReceivedAtLeastOnce() osalbool SensorMagMsgReady = !CFE_SB_IsMsgTimeZero((CFE_SB_MsgPtr_t)&App.SensorMagMsg); osalbool SensorGyroMsgReady = !CFE_SB_IsMsgTimeZero((CFE_SB_MsgPtr_t)&App.SensorGyroMsg); osalbool SensorAccelMsgReady = !CFE_SB_IsMsgTimeZero((CFE_SB_MsgPtr_t)&App.SensorAccelMsg); - osalbool SensorCombinedMsgReady = (App.SensorCombinedMsg.Timestamp > 0); + osalbool SensorCombinedMsgReady = !CFE_SB_IsMsgTimeZero((CFE_SB_MsgPtr_t)&App.SensorCombinedMsg); osalbool VehicleAttitudeMsgReady = (App.VehicleAttitudeMsg.Timestamp > 0); osalbool VehicleLocalPositionMsgReady = (App.VehicleLocalPositionMsg.Timestamp > 0); osalbool VehicleLandDetectedMsgReady = (App.VehicleLandDetectedMsg.Timestamp > 0); From 3a3e429abcda957641d6b69f7b5a2fc6f93ce5e5 Mon Sep 17 00:00:00 2001 From: Mathew Benson Date: Wed, 24 Feb 2021 07:18:48 -0600 Subject: [PATCH 135/370] Removed timestamp from bat messages. --- apps/bat/fsw/src/bat_app.cpp | 6 +++--- apps/bat/fsw/src/bat_msg.h | 2 +- apps/ld/fsw/src/ld_app.cpp | 3 ++- apps/px4lib/fsw/public_inc/px4_msgs.h | 4 ---- 4 files changed, 6 insertions(+), 9 deletions(-) diff --git a/apps/bat/fsw/src/bat_app.cpp b/apps/bat/fsw/src/bat_app.cpp index 44d10562f..3d635935b 100644 --- a/apps/bat/fsw/src/bat_app.cpp +++ b/apps/bat/fsw/src/bat_app.cpp @@ -220,7 +220,7 @@ void BAT::InitData() /* Init output messages */ CFE_SB_InitMsg(&BatteryStatusMsg, PX4_BATTERY_STATUS_MID, sizeof(PX4_BatteryStatusMsg_t), TRUE); - BatteryStatusMsg.Timestamp = PX4LIB_GetPX4TimeUs(); + CFE_SB_TimeStampMsg((CFE_SB_MsgPtr_t)&BatteryStatusMsg); BatteryStatusMsg.CurrentFiltered = BAT_CURRENT_FILTER_INIT_VALUE; BatteryStatusMsg.VoltageFiltered = BAT_VOLTAGE_FILTER_INIT_VALUE; m_ThrottleFiltered = BAT_THROTTLE_FILTER_INIT_VALUE; @@ -522,7 +522,7 @@ void BAT::ProcessAppCmds(CFE_SB_Msg_t* MsgPtr) void BAT::ReportHousekeeping() { OS_MutSemTake(BatteryMutex); - HkTlm.Timestamp = BatteryStatusMsg.Timestamp; + HkTlm.Timestamp = CFE_SB_GetMsgTime((CFE_SB_MsgPtr_t)&BatteryStatusMsg); HkTlm.Voltage = BatteryStatusMsg.Voltage; HkTlm.VoltageFiltered = BatteryStatusMsg.VoltageFiltered; HkTlm.Current = BatteryStatusMsg.Current; @@ -727,7 +727,7 @@ void BAT::ListenerTaskMain(void) voltage = voltage * ConfigTblPtr->VoltageScale; current = current * ConfigTblPtr->CurrentScale; - BatteryStatusMsg.Timestamp = PX4LIB_GetPX4TimeUs(); + CFE_SB_TimeStampMsg((CFE_SB_MsgPtr_t)&BatteryStatusMsg); BatteryStatusMsg.Voltage = voltage; BatteryStatusMsg.VoltageFiltered = GetFilteredVoltage(voltage); BatteryStatusMsg.Current = current; diff --git a/apps/bat/fsw/src/bat_msg.h b/apps/bat/fsw/src/bat_msg.h index 1e72d9138..18684726c 100644 --- a/apps/bat/fsw/src/bat_msg.h +++ b/apps/bat/fsw/src/bat_msg.h @@ -153,7 +153,7 @@ typedef struct uint8 usCmdErrCnt; /** \brief Timestamp of sampled battery status */ - uint64 Timestamp; + CFE_TIME_SysTime_t Timestamp; /** \brief Sampled voltage */ float Voltage; /* V */ diff --git a/apps/ld/fsw/src/ld_app.cpp b/apps/ld/fsw/src/ld_app.cpp index 77191ccc2..e1f8b7274 100644 --- a/apps/ld/fsw/src/ld_app.cpp +++ b/apps/ld/fsw/src/ld_app.cpp @@ -10,6 +10,7 @@ #include "ld_msg.h" #include "ld_version.h" #include "px4lib_msgids.h" +#include "cfs_utils.h" /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ /* */ @@ -986,7 +987,7 @@ float LD::MaxAltitude() float max_alt = ConfigTblPtr->LD_ALT_MAX; /* If we haven't received this message just use default max */ - if(0 == CVT.BatteryStatusMsg.Timestamp) + if(CFE_SB_IsMsgTimeZero((CFE_SB_MsgPtr_t)&CVT.BatteryStatusMsg)) { max_alt = ConfigTblPtr->LD_ALT_MAX; } diff --git a/apps/px4lib/fsw/public_inc/px4_msgs.h b/apps/px4lib/fsw/public_inc/px4_msgs.h index b3dd4ab15..d491e990c 100644 --- a/apps/px4lib/fsw/public_inc/px4_msgs.h +++ b/apps/px4lib/fsw/public_inc/px4_msgs.h @@ -609,7 +609,6 @@ typedef struct typedef struct { uint8 TlmHeader[CFE_SB_TLM_HDR_SIZE]; - uint64 Timestamp; float IndicatedAirspeed; /* m/s */ float TrueAirspeed; /* m/s */ float TrueAirspeedUnfiltered; /* m/s */ @@ -620,7 +619,6 @@ typedef struct typedef struct { uint8 TlmHeader[CFE_SB_TLM_HDR_SIZE]; - uint64 Timestamp; float Voltage; /* V */ float VoltageFiltered; /* V */ float Current; /* A */ @@ -675,7 +673,6 @@ typedef struct typedef struct { uint8 TlmHeader[CFE_SB_TLM_HDR_SIZE]; - uint64 Timestamp; uint64 ErrorCount; float DifferentialPressureRaw; float DifferentialPressureFiltered; @@ -722,7 +719,6 @@ typedef struct typedef struct { uint8 TlmHeader[CFE_SB_TLM_HDR_SIZE]; - uint64 Timestamp; uint8 Len; uint8 Flags; char Data[PX4_GPS_INJECT_DATA_MAX]; From 28012d05e47fb072491c84356f48b4b89f8d0c27 Mon Sep 17 00:00:00 2001 From: Mathew Benson Date: Wed, 24 Feb 2021 07:28:28 -0600 Subject: [PATCH 136/370] Removed additional timestamps from the px4 messages --- apps/nav/fsw/src/nav_app.cpp | 13 ++++++++----- apps/px4lib/fsw/public_inc/px4_msgs.h | 5 ----- apps/vm/fsw/src/vm_app.cpp | 2 +- 3 files changed, 9 insertions(+), 11 deletions(-) diff --git a/apps/nav/fsw/src/nav_app.cpp b/apps/nav/fsw/src/nav_app.cpp index c3bf5f6e9..54eda2f23 100644 --- a/apps/nav/fsw/src/nav_app.cpp +++ b/apps/nav/fsw/src/nav_app.cpp @@ -41,6 +41,7 @@ #include "nav_version.h" #include #include "px4lib_msgids.h" +#include "cfs_utils.h" /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ /* */ @@ -657,7 +658,8 @@ void NAV::AppMain() int32 NAV::Execute() { - uint64 Now = 0; + CFE_TIME_SysTime_t Now; + uint64 Now2 = 0; /* Set vehicle arming state */ if (CVT.VehicleStatusMsg.Timestamp != 0 && !VehicleStatusUpdateOnce) @@ -912,13 +914,14 @@ int32 NAV::Execute() } /* Time stamp out going messages */ - Now = PX4LIB_GetPX4TimeUs(); - PositionSetpointTripletMsg.Timestamp = Now; - MissionResultMsg.Timestamp = Now; + Now2 = PX4LIB_GetPX4TimeUs(); + Now = CFE_TIME_GetTime(); + PositionSetpointTripletMsg.Timestamp = Now2; + CFE_SB_SetMsgTime((CFE_SB_MsgPtr_t)&MissionResultMsg, Now); if (PositionSetpointTripletUpdated) { - PositionSetpointTripletMsg.Timestamp = Now; + PositionSetpointTripletMsg.Timestamp = Now2; SendPositionSetpointTripletMsg(); PositionSetpointTripletUpdated = FALSE; } diff --git a/apps/px4lib/fsw/public_inc/px4_msgs.h b/apps/px4lib/fsw/public_inc/px4_msgs.h index d491e990c..b7a78b004 100644 --- a/apps/px4lib/fsw/public_inc/px4_msgs.h +++ b/apps/px4lib/fsw/public_inc/px4_msgs.h @@ -759,7 +759,6 @@ typedef struct typedef struct { uint8 TlmHeader[CFE_SB_TLM_HDR_SIZE]; - uint64 Timestamp; uint8 Severity; char Text[127]; } PX4_LogMessageMsg_t; @@ -808,7 +807,6 @@ typedef struct typedef struct { uint8 TlmHeader[CFE_SB_TLM_HDR_SIZE]; - uint64 Timestamp; int32 DatamanID; uint32 Count; int32 CurrentSeq; @@ -817,7 +815,6 @@ typedef struct typedef struct { uint8 TlmHeader[CFE_SB_TLM_HDR_SIZE]; - uint64 Timestamp; uint32 InstanceCount; uint32 SeqReached; uint32 SeqCurrent; @@ -856,14 +853,12 @@ typedef union typedef struct { uint8 TlmHeader[CFE_SB_TLM_HDR_SIZE]; - uint64 Timestamp; PX4_SaturationStatus_t SaturationStatus; } PX4_MultirotorMotorLimitsMsg_t; typedef struct { uint8 TlmHeader[CFE_SB_TLM_HDR_SIZE]; - uint64 Timestamp; float PixelFlowXIntegral; float PixelFlowYIntegral; float GyroXRateIntegral; diff --git a/apps/vm/fsw/src/vm_app.cpp b/apps/vm/fsw/src/vm_app.cpp index b3c85bdf9..45440e2d6 100644 --- a/apps/vm/fsw/src/vm_app.cpp +++ b/apps/vm/fsw/src/vm_app.cpp @@ -1466,7 +1466,7 @@ void VM::Initialization() VehicleStatusMsg.MissionFailure = false; /* Onboard mission not supported, set default mission and publish */ - MissionMsg.Timestamp = TimeNow(); + CFE_SB_TimeStampMsg((CFE_SB_MsgPtr_t)&MissionMsg); MissionMsg.DatamanID = 0; MissionMsg.Count = 0; MissionMsg.CurrentSeq = 0; From 92eb1c38899253d6fe0204bacd60ac1898794957 Mon Sep 17 00:00:00 2001 From: Mathew Benson Date: Wed, 24 Feb 2021 07:36:52 -0600 Subject: [PATCH 137/370] Removed additional timestamps from PX4 messages --- apps/nav/fsw/src/nav_app.cpp | 6 ++---- apps/px4lib/fsw/public_inc/px4_msgs.h | 3 --- config/shared/apps/gps/src/gps_custom.c | 2 +- 3 files changed, 3 insertions(+), 8 deletions(-) diff --git a/apps/nav/fsw/src/nav_app.cpp b/apps/nav/fsw/src/nav_app.cpp index 54eda2f23..0b1b03d0e 100644 --- a/apps/nav/fsw/src/nav_app.cpp +++ b/apps/nav/fsw/src/nav_app.cpp @@ -554,7 +554,6 @@ void NAV::SendMissionResultMsg() void NAV::SendPositionSetpointTripletMsg() { - CFE_SB_TimeStampMsg((CFE_SB_Msg_t*) &PositionSetpointTripletMsg); CFE_SB_SendMsg((CFE_SB_Msg_t*) &PositionSetpointTripletMsg); } @@ -916,13 +915,12 @@ int32 NAV::Execute() /* Time stamp out going messages */ Now2 = PX4LIB_GetPX4TimeUs(); Now = CFE_TIME_GetTime(); - PositionSetpointTripletMsg.Timestamp = Now2; CFE_SB_SetMsgTime((CFE_SB_MsgPtr_t)&MissionResultMsg, Now); if (PositionSetpointTripletUpdated) { - PositionSetpointTripletMsg.Timestamp = Now2; - SendPositionSetpointTripletMsg(); + CFE_SB_SetMsgTime((CFE_SB_MsgPtr_t)&PositionSetpointTripletMsg, Now); + CFE_SB_SendMsg((CFE_SB_Msg_t*) &PositionSetpointTripletMsg); PositionSetpointTripletUpdated = FALSE; } diff --git a/apps/px4lib/fsw/public_inc/px4_msgs.h b/apps/px4lib/fsw/public_inc/px4_msgs.h index b7a78b004..14e5d2619 100644 --- a/apps/px4lib/fsw/public_inc/px4_msgs.h +++ b/apps/px4lib/fsw/public_inc/px4_msgs.h @@ -912,7 +912,6 @@ typedef struct typedef struct { uint8 TlmHeader[CFE_SB_TLM_HDR_SIZE]; - uint64 Timestamp; PX4_PositionSetpoint_t Previous; PX4_PositionSetpoint_t Current; PX4_PositionSetpoint_t Next; @@ -934,7 +933,6 @@ typedef struct typedef struct { uint8 TlmHeader[CFE_SB_TLM_HDR_SIZE]; - uint64 Timestamp; boolean SafetySwitchAvailable; boolean SafetyOff; } PX4_SafetyMsg_t; @@ -942,7 +940,6 @@ typedef struct typedef struct { uint8 TlmHeader[CFE_SB_TLM_HDR_SIZE]; - uint64 Timestamp; uint8 Count; uint8 SVID[PX4_SAT_INFO_MAX_SATELLITES]; uint8 Used[PX4_SAT_INFO_MAX_SATELLITES]; diff --git a/config/shared/apps/gps/src/gps_custom.c b/config/shared/apps/gps/src/gps_custom.c index e29766b6d..59ac67a3c 100644 --- a/config/shared/apps/gps/src/gps_custom.c +++ b/config/shared/apps/gps/src/gps_custom.c @@ -490,7 +490,7 @@ boolean GPS_Custom_Read_and_Parse(const uint32 timeout) (uint8)(msgIn->numCh[j].svid); } - GPS_AppCustomData.GpsSatInfoMsg.Timestamp = PX4LIB_GetPX4TimeUs(); + CFE_SB_TimeStampMsg((CFE_SB_MsgPtr_t)&GPS_AppCustomData.GpsSatInfoMsg); OS_MutSemGive(GPS_AppCustomData.MutexSatInfo); break; From b953ccd20523d229b8fa3d473d72c1c70aadc2ab Mon Sep 17 00:00:00 2001 From: Mathew Benson Date: Wed, 24 Feb 2021 07:43:25 -0600 Subject: [PATCH 138/370] Removed additional timestamps --- apps/px4lib/fsw/public_inc/px4_msgs.h | 5 ----- apps/vm/fsw/src/CautionWarningHelper.cpp | 6 ++---- config/shared/apps/vc/src/vc_dev_io_udp/vc_dev_io_udp.c | 6 ++---- 3 files changed, 4 insertions(+), 13 deletions(-) diff --git a/apps/px4lib/fsw/public_inc/px4_msgs.h b/apps/px4lib/fsw/public_inc/px4_msgs.h index 14e5d2619..330231e9f 100644 --- a/apps/px4lib/fsw/public_inc/px4_msgs.h +++ b/apps/px4lib/fsw/public_inc/px4_msgs.h @@ -1036,7 +1036,6 @@ typedef struct typedef struct { uint8 TlmHeader[CFE_SB_TLM_HDR_SIZE]; - uint64 Timestamp; PX4_SubsystemType_t SubsystemType; boolean Present; boolean Enabled; @@ -1046,7 +1045,6 @@ typedef struct typedef struct { uint8 TlmHeader[CFE_SB_TLM_HDR_SIZE]; - uint64 Timestamp; uint64 HeartbeatTime; uint64 TelemTime; uint16 RxErrors; @@ -1103,7 +1101,6 @@ typedef struct typedef struct { uint8 TlmHeader[CFE_SB_TLM_HDR_SIZE]; - uint64 Timestamp; double Param5; double Param6; float Param1; @@ -1346,7 +1343,6 @@ typedef struct typedef struct { uint8 TlmHeader[CFE_SB_TLM_HDR_SIZE]; - uint64 Timestamp; uint8 LedMask; uint8 Color; uint8 Mode; @@ -1357,7 +1353,6 @@ typedef struct typedef struct { uint8 TlmHeader[CFE_SB_TLM_HDR_SIZE]; - uint64 Timestamp; uint8 Frame[4096]; } PX4_OpticalFlowFrameMsg_t; diff --git a/apps/vm/fsw/src/CautionWarningHelper.cpp b/apps/vm/fsw/src/CautionWarningHelper.cpp index d47762000..8ae2992a0 100644 --- a/apps/vm/fsw/src/CautionWarningHelper.cpp +++ b/apps/vm/fsw/src/CautionWarningHelper.cpp @@ -71,7 +71,6 @@ void CautionWarningHelper::InitCAWS(void) m_LedControlMsg.Mode = LED_MODE_OFF; m_LedControlMsg.NumBlinks = 0; m_LedControlMsg.Priority = 0; - m_LedControlMsg.Timestamp = 0; /* Set state to initialized */ m_State = CAWS_INITIALIZED; InitRGBLED(); @@ -104,7 +103,7 @@ void CautionWarningHelper::InitRGBLED(void) { CFE_SB_InitMsg(&m_LedControlMsg, PX4_LED_CONTROL_MID, sizeof(m_LedControlMsg), TRUE); - m_LedControlMsg.Timestamp = PX4LIB_GetPX4TimeUs(); + CFE_SB_TimeStampMsg((CFE_SB_MsgPtr_t)&m_LedControlMsg); m_LedControlMsg.LedMask = 0xFF; m_LedControlMsg.Color = LED_COLOR_OFF; m_LedControlMsg.Mode = LED_MODE_OFF; @@ -456,14 +455,13 @@ osalbool CautionWarningHelper::SetStatus(const PX4_VehicleStatusMsg_t *status) /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ void CautionWarningHelper::RGBLedSetColorAndMode(LED_Colors_t color, LED_Modes_t mode, uint8 blinks, uint8 prio) { - m_LedControlMsg.Timestamp = PX4LIB_GetPX4TimeUs(); + CFE_SB_TimeStampMsg((CFE_SB_MsgPtr_t)&m_LedControlMsg); m_LedControlMsg.Color = color; m_LedControlMsg.Mode = mode; m_LedControlMsg.NumBlinks = blinks; m_LedControlMsg.Priority = prio; /* Send the LED control message */ - CFE_SB_TimeStampMsg((CFE_SB_Msg_t*)&m_LedControlMsg); CFE_SB_SendMsg((CFE_SB_Msg_t*)&m_LedControlMsg); } /* End CautionWarningHelper::RGBLedSetColorAndMode() */ diff --git a/config/shared/apps/vc/src/vc_dev_io_udp/vc_dev_io_udp.c b/config/shared/apps/vc/src/vc_dev_io_udp/vc_dev_io_udp.c index 61f159dd6..088dde1d4 100644 --- a/config/shared/apps/vc/src/vc_dev_io_udp/vc_dev_io_udp.c +++ b/config/shared/apps/vc/src/vc_dev_io_udp/vc_dev_io_udp.c @@ -439,11 +439,9 @@ int32 VC_Send_Buffer(uint8 DeviceID) VC_AppCustomDevice.Channel[DeviceID].Buffer, PX4_OPTICAL_FLOW_FRAME_SIZE, 0); if(size == PX4_OPTICAL_FLOW_FRAME_SIZE) { - // Copy to message - uint64 timestamp; - timestamp = PX4LIB_GetPX4TimeUs(); - OpticalFlowFrameMsg.Timestamp = timestamp; uint32 i; + // Copy to message + CFE_SB_TimeStampMsg((CFE_SB_MsgPtr_t)&OpticalFlowFrameMsg); for (i=0; i Date: Wed, 24 Feb 2021 10:38:51 -0600 Subject: [PATCH 139/370] Removed CFE EVS messages from the yaml file so auto_yamcs won't serialize it. --- core/base/cfe/wh_design.yaml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/core/base/cfe/wh_design.yaml b/core/base/cfe/wh_design.yaml index 8f800667c..9221644c3 100644 --- a/core/base/cfe/wh_design.yaml +++ b/core/base/cfe/wh_design.yaml @@ -214,9 +214,9 @@ modules: - parent: CFE_ES_AppNameCmd_Payload_t member: Application type: string - - parent: CFE_EVS_Packet_Payload_t - member: Message - type: string + #- parent: CFE_EVS_Packet_Payload_t + # member: Message + # type: string - parent: CFE_EVS_PacketID_t member: AppName type: string @@ -673,7 +673,7 @@ modules: struct: CFE_EVS_TlmPkt_t CFE_EVS_EVENT_MSG_MID: msgID: 0x0808 - struct: CFE_EVS_Packet_t + #struct: CFE_EVS_Packet_t commands: CFE_EVS_CMD_MID: msgID: 0x1801 From 799bc7f79f4ee152de557ade8f65c2a31044da20 Mon Sep 17 00:00:00 2001 From: lorenzo-gomez-windhover Date: Wed, 24 Feb 2021 11:20:35 -0600 Subject: [PATCH 140/370] -Updated auto-yamcs; better user feedback --- core/tools/auto-yamcs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/tools/auto-yamcs b/core/tools/auto-yamcs index a0009f1e1..2584eb48f 160000 --- a/core/tools/auto-yamcs +++ b/core/tools/auto-yamcs @@ -1 +1 @@ -Subproject commit a0009f1e1a10a33695875bf584d2de4bce9776e0 +Subproject commit 2584eb48fe810165e5068aaa16e3a43f5c126f89 From bbc6bcc768f8b9267c4ac336662fa992d0a15258 Mon Sep 17 00:00:00 2001 From: Mathew Benson Date: Wed, 24 Feb 2021 11:21:55 -0600 Subject: [PATCH 141/370] Added displays for PE, SENS, and VM --- .../Displays/Apps/PE/Main.opi | 6809 +++++++++++++++++ .../Displays/Apps/SENS/Main.opi | 2709 +++++++ .../Displays/Apps/VM/Main.opi | 6011 +++++++++++++++ 3 files changed, 15529 insertions(+) create mode 100644 core/base/tools/commander/workspace_template/Displays/Apps/PE/Main.opi create mode 100644 core/base/tools/commander/workspace_template/Displays/Apps/SENS/Main.opi create mode 100644 core/base/tools/commander/workspace_template/Displays/Apps/VM/Main.opi diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/PE/Main.opi b/core/base/tools/commander/workspace_template/Displays/Apps/PE/Main.opi new file mode 100644 index 000000000..b3847af15 --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/Apps/PE/Main.opi @@ -0,0 +1,6809 @@ + + + + + false + -1 + -1 + + false + + + + 1.5.3 + + + + 6 + 580 + + true + + + + + true + true + true + true + true + Display + 820 + -33cb7c72:150aa4c347f:-76c2 + -1 + -1 + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update + 0 + false + /cfs/pe/PE_HkTlm_t.CmdCnt + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + -33cb7c72:150aa4c347f:-75ff + 108 + 42 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label + + + true + true + false + + + Commands + + true + 1 + true + Label + 91 + false + -33cb7c72:150aa4c347f:-75fe + 6 + 42 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_1 + + + true + true + false + + + Errors + + true + 1 + true + Label + 60 + false + -33cb7c72:150aa4c347f:-75fd + 37 + 61 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_1 + 0 + false + /cfs/pe/PE_HkTlm_t.CmdErrCnt + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + -33cb7c72:150aa4c347f:-75fb + 108 + 61 + + + + false + + + + + + + 0 + 1 + true + + Default Bold + + + + + 20 + 1 + Label_49 + + + true + true + false + + + Position Estimator + + true + 1 + true + Label + 182 + false + -33cb7c72:150aa4c347f:-75c9 + 63 + 12 + + + + + + importPackage(Packages.org.csstudio.opibuilder.scriptUtil); +importPackage(Packages.org.yamcs.studio.script); + +Yamcs.issueCommand('/cfs/pe/Noop', {}); + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 20 + ../../Resources/send.png + NoOp + 0 + + + + + true + true + false + + + + NoOp + false + $(pv_name) +$(pv_value) + true + Action Button + 72 + -10b748b0:17773fb054b:-7b9c + 223 + 42 + + + + + + importPackage(Packages.org.csstudio.opibuilder.scriptUtil); +importPackage(Packages.org.yamcs.studio.script); + +Yamcs.issueCommand('/cfs/pe/Reset', {}); + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 20 + ../../Resources/send.png + NoOp_1 + 0 + + + + + true + true + false + + + + Reset + false + $(pv_name) +$(pv_value) + true + Action Button + 72 + -10b748b0:17773fb054b:-7b94 + 223 + 61 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_50 + + + true + true + false + + + Timestamp Last + + true + 1 + true + Label + 106 + false + -10b748b0:17773fb054b:-7b8c + 312 + 315 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_2 + 0 + false + /cfs/pe/PE_HkTlm_t.TimestampLastBaro.Seconds + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + -10b748b0:17773fb054b:-7b82 + 429 + 315 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_51 + + + true + true + false + + + Msg Time + + true + 1 + true + Label + 72 + false + -10b748b0:17773fb054b:-7b75 + 355 + 48 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_3 + 0 + false + /cfs/pe/PE_HkTlm_t.TimeLastGps.Seconds + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + -10b748b0:17773fb054b:-7b74 + 438 + 48 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_52 + + + true + true + false + + + Msg Time + + true + 1 + true + Label + 109 + false + -10b748b0:17773fb054b:-7b54 + 594 + 67 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_4 + 0 + false + /cfs/pe/PE_HkTlm_t.TimeLastLand.Seconds + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + -10b748b0:17773fb054b:-7b53 + 714 + 67 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_53 + + + true + true + false + + + Msg Time + + true + 1 + true + Label + 75 + false + -10b748b0:17773fb054b:-7b42 + 628 + 296 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_5 + 0 + false + /cfs/pe/PE_HkTlm_t.TimeLastDist.Seconds + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + -10b748b0:17773fb054b:-7b41 + 714 + 296 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_54 + + + true + true + false + + + Msg Time + + true + 1 + true + Label + 68 + false + -10b748b0:17773fb054b:-7b30 + 350 + 534 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_6 + 0 + false + /cfs/pe/PE_HkTlm_t.TimeLastFlow.Seconds + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + -10b748b0:17773fb054b:-7b2f + 429 + 534 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_55 + + + true + true + false + + + Msg Time + + true + 1 + true + Label + 82 + false + -10b748b0:17773fb054b:-7b1e + 336 + 277 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_7 + 0 + false + /cfs/pe/PE_HkTlm_t.TimeLastBaro.Seconds + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + -10b748b0:17773fb054b:-7b1d + 429 + 277 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_56 + + + true + true + false + + + Alt Origin + + true + 1 + true + Label + 72 + false + -10b748b0:17773fb054b:-7b0c + 96 + 172 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_8 + 3 + false + /cfs/pe/PE_HkTlm_t.AltOrigin + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + -10b748b0:17773fb054b:-7b0b + 179 + 172 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_57 + + + true + true + false + + + Timestamp + + true + 1 + true + Label + 118 + false + -10b748b0:17773fb054b:-7afd + 50 + 96 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_9 + 0 + false + /cfs/pe/PE_HkTlm_t.Timestamp.Seconds + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + -10b748b0:17773fb054b:-7afc + 179 + 96 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_58 + + + true + true + false + + + Timestamp Hist + + true + 1 + true + Label + 118 + false + -10b748b0:17773fb054b:-7ae3 + 50 + 134 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_10 + 0 + false + /cfs/pe/PE_HkTlm_t.Timestamp_Hist.Seconds + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + -10b748b0:17773fb054b:-7ae2 + 179 + 134 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_60 + + + true + true + false + + + Alt Origin + + true + 1 + true + Label + 74 + false + -10b748b0:17773fb054b:-7ac3 + 347 + 353 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_11 + 3 + false + /cfs/pe/PE_HkTlm_t.BaroAltOrigin + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + -10b748b0:17773fb054b:-7ac2 + 429 + 353 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_61 + + + true + true + false + + + Alt Origin + + true + 1 + true + Label + 73 + false + -10b748b0:17773fb054b:-7ab1 + 354 + 86 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_12 + 3 + false + /cfs/pe/PE_HkTlm_t.GpsAltOrigin + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + -10b748b0:17773fb054b:-7ab0 + 438 + 86 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_62 + + + true + true + false + + + Alt Origin + + true + 1 + true + Label + 73 + false + 7565d3e4:177c1ff26c3:-7883 + 630 + 334 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_13 + 3 + false + /cfs/pe/PE_HkTlm_t.DistAltOrigin + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + 7565d3e4:177c1ff26c3:-7882 + 714 + 334 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_63 + + + true + true + false + + + Land Count + + true + 1 + true + Label + 91 + false + 7565d3e4:177c1ff26c3:-7871 + 612 + 48 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_14 + 0 + false + /cfs/pe/PE_HkTlm_t.LandCount + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + 7565d3e4:177c1ff26c3:-7870 + 714 + 48 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_64 + + + true + true + false + + + Vehicle Land Detected + + true + 1 + true + Label + 145 + false + 7565d3e4:177c1ff26c3:-7817 + 24 + 307 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_15 + 0 + false + /cfs/pe/PE_HkTlm_t.VehicleLandDetectedMsgCount + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + 7565d3e4:177c1ff26c3:-7816 + 180 + 307 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_65 + + + true + true + false + + + Actuator Armed + + true + 1 + true + Label + 136 + false + 7565d3e4:177c1ff26c3:-7815 + 33 + 326 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_16 + 0 + false + /cfs/pe/PE_HkTlm_t.ActuatorArmedMsgCount + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + 7565d3e4:177c1ff26c3:-7814 + 180 + 326 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_66 + + + true + true + false + + + Vehicle Attitude + + true + 1 + true + Label + 136 + false + 7565d3e4:177c1ff26c3:-7813 + 33 + 345 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_17 + 0 + false + /cfs/pe/PE_HkTlm_t.VehicleAttitudeMsgCount + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + 7565d3e4:177c1ff26c3:-7812 + 180 + 345 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_67 + + + true + true + false + + + Sensor Combined + + true + 1 + true + Label + 136 + false + 7565d3e4:177c1ff26c3:-7811 + 33 + 364 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_18 + 0 + false + /cfs/pe/PE_HkTlm_t.SensorCombinedMsgCount + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + 7565d3e4:177c1ff26c3:-7810 + 180 + 364 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_68 + + + true + true + false + + + Vehicle Attitude Setpoint + + true + 1 + true + Label + 156 + false + 7565d3e4:177c1ff26c3:-780f + 13 + 383 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_19 + 0 + false + /cfs/pe/PE_HkTlm_t.VehicleAttitudeSetpointMsgCount + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + 7565d3e4:177c1ff26c3:-780e + 180 + 383 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_69 + + + true + true + false + + + Vehicle GPS Position + + true + 1 + true + Label + 136 + false + 7565d3e4:177c1ff26c3:-780d + 33 + 269 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_20 + 0 + false + /cfs/pe/PE_HkTlm_t.VehicleGpsPositionMsgCount + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + 7565d3e4:177c1ff26c3:-780c + 180 + 269 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_70 + + + true + true + false + + + Distance Sensor + + true + 1 + true + Label + 136 + false + 7565d3e4:177c1ff26c3:-780b + 33 + 402 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_21 + 0 + false + /cfs/pe/PE_HkTlm_t.DistanceSensorMsgCount + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + 7565d3e4:177c1ff26c3:-780a + 180 + 402 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_71 + + + true + true + false + + + Wakeup Count + + true + 1 + true + Label + 118 + false + 7565d3e4:177c1ff26c3:-7809 + 50 + 191 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_22 + 0 + false + /cfs/pe/PE_HkTlm_t.WakeupCount + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + 7565d3e4:177c1ff26c3:-7808 + 179 + 191 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_72 + + + true + true + false + + + Vehicle Status + + true + 1 + true + Label + 118 + false + 7565d3e4:177c1ff26c3:-7807 + 51 + 288 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_23 + 0 + false + /cfs/pe/PE_HkTlm_t.VehicleStatusMsgCount + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + 7565d3e4:177c1ff26c3:-7806 + 180 + 288 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_73 + + + true + true + false + + + Optical Flow + + true + 1 + true + Label + 136 + false + 7565d3e4:177c1ff26c3:-7805 + 33 + 421 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_24 + 0 + false + /cfs/pe/PE_HkTlm_t.OpticalFlowMsgCount + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + 7565d3e4:177c1ff26c3:-7804 + 180 + 421 + + + + false + + + + + + + 0 + 1 + true + + Default Bold + + + + + 20 + 1 + Label_77 + + + true + true + false + + + Messages Received + + true + 1 + true + Label + 146 + false + 7565d3e4:177c1ff26c3:-77b4 + 108 + 245 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_78 + + + true + true + false + + + Global Estimator Initialized + + true + 1 + true + Label + 172 + false + 7565d3e4:177c1ff26c3:-779a + 49 + 453 + + + + false + false + + + + -1 + true + + + + 0 + 1 + 3 + + + + 0 + true + true + + Default + + false + + + + 20 + LED + + + + OFF + + + + ON + /cfs/pe/PE_HkTlm_t.EstimatorGlobalInitialized + + + + true + true + true + + + false + false + $(pv_name) +$(pv_value) + true + LED + 20 + 7565d3e4:177c1ff26c3:-7785 + 229 + 453 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_79 + + + true + true + false + + + Alt Origin Initialized + + true + 1 + true + Label + 142 + false + 7565d3e4:177c1ff26c3:-7776 + 79 + 472 + + + + false + false + + + + -1 + true + + + + 0 + 1 + 3 + + + + 0 + true + true + + Default + + false + + + + 20 + LED_1 + + + + OFF + + + + ON + /cfs/pe/PE_HkTlm_t.AltOriginInitialized + + + + true + true + true + + + false + false + $(pv_name) +$(pv_value) + true + LED + 20 + 7565d3e4:177c1ff26c3:-7775 + 229 + 472 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_80 + + + true + true + false + + + Initialized + + true + 1 + true + Label + 74 + false + 7565d3e4:177c1ff26c3:-776e + 350 + 429 + + + + false + false + + + + -1 + true + + + + 0 + 1 + 3 + + + + 0 + true + true + + Default + + false + + + + 20 + LED_2 + + + + OFF + + + + ON + /cfs/pe/PE_HkTlm_t.BaroInitialized + + + + true + true + true + + + false + false + $(pv_name) +$(pv_value) + true + LED + 20 + 7565d3e4:177c1ff26c3:-776d + 432 + 429 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_81 + + + true + true + false + + + Fault + + true + 1 + true + Label + 40 + false + 7565d3e4:177c1ff26c3:-7766 + 483 + 448 + + + + false + false + + + + -1 + true + + + + 0 + 1 + 3 + + + + 0 + true + true + + Default + + false + + + + 20 + LED_3 + + + + OFF + + + + ON + /cfs/pe/PE_HkTlm_t.BaroFault + + + + true + true + true + + + false + false + $(pv_name) +$(pv_value) + true + LED + 20 + 7565d3e4:177c1ff26c3:-7765 + 531 + 448 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_82 + + + true + true + false + + + Timeout + + true + 1 + true + Label + 58 + false + 7565d3e4:177c1ff26c3:-775e + 465 + 429 + + + + false + false + + + + -1 + true + + + + 0 + 1 + 3 + + + + 0 + true + true + + Default + + false + + + + 20 + LED_4 + + + + OFF + + + + ON + /cfs/pe/PE_HkTlm_t.BaroTimeout + + + + true + true + true + + + false + false + $(pv_name) +$(pv_value) + true + LED + 20 + 7565d3e4:177c1ff26c3:-775d + 531 + 429 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_83 + + + true + true + false + + + Initialized + + true + 1 + true + Label + 67 + false + 7565d3e4:177c1ff26c3:-7756 + 355 + 163 + + + + false + false + + + + -1 + true + + + + 0 + 1 + 3 + + + + 0 + true + true + + Default + + false + + + + 20 + LED_5 + + + + OFF + + + + ON + /cfs/pe/PE_HkTlm_t.GpsInitialized + + + + true + true + true + + + false + false + $(pv_name) +$(pv_value) + true + LED + 20 + 7565d3e4:177c1ff26c3:-7755 + 430 + 163 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_84 + + + true + true + false + + + Fault + + true + 1 + true + Label + 50 + false + 7565d3e4:177c1ff26c3:-774e + 475 + 182 + + + + false + false + + + + -1 + true + + + + 0 + 1 + 3 + + + + 0 + true + true + + Default + + false + + + + 20 + LED_6 + + + + OFF + + + + ON + /cfs/pe/PE_HkTlm_t.GpsFault + + + + true + true + true + + + false + false + $(pv_name) +$(pv_value) + true + LED + 20 + 7565d3e4:177c1ff26c3:-774d + 533 + 182 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_85 + + + true + true + false + + + Timeout + + true + 1 + true + Label + 58 + false + 7565d3e4:177c1ff26c3:-7746 + 467 + 163 + + + + false + false + + + + -1 + true + + + + 0 + 1 + 3 + + + + 0 + true + true + + Default + + false + + + + 20 + LED_7 + + + + OFF + + + + ON + /cfs/pe/PE_HkTlm_t.GpsTimeout + + + + true + true + true + + + false + false + $(pv_name) +$(pv_value) + true + LED + 20 + 7565d3e4:177c1ff26c3:-7745 + 533 + 163 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_86 + + + true + true + false + + + Initialized + + true + 1 + true + Label + 70 + false + 7565d3e4:177c1ff26c3:-773e + 612 + 163 + + + + false + false + + + + -1 + true + + + + 0 + 1 + 3 + + + + 0 + true + true + + Default + + false + + + + 20 + LED_8 + + + + OFF + + + + ON + /cfs/pe/PE_HkTlm_t.LandInitialized + + + + true + true + true + + + false + false + $(pv_name) +$(pv_value) + true + LED + 20 + 7565d3e4:177c1ff26c3:-773d + 690 + 163 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_87 + + + true + true + false + + + Timeout + + true + 1 + true + Label + 56 + false + 7565d3e4:177c1ff26c3:-7736 + 723 + 163 + + + + false + false + + + + -1 + true + + + + 0 + 1 + 3 + + + + 0 + true + true + + Default + + false + + + + 20 + LED_9 + + + + OFF + + + + ON + /cfs/pe/PE_HkTlm_t.LandTimeout + + + + true + true + true + + + false + false + $(pv_name) +$(pv_value) + true + LED + 20 + 7565d3e4:177c1ff26c3:-7735 + 787 + 163 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_88 + + + true + true + false + + + XY Estimation Valid + + true + 1 + true + Label + 148 + false + 7565d3e4:177c1ff26c3:-772e + 73 + 529 + + + + false + false + + + + -1 + true + + + + 0 + 1 + 3 + + + + 0 + true + true + + Default + + false + + + + 20 + LED_10 + + + + OFF + + + + ON + /cfs/pe/PE_HkTlm_t.XyEstValid + + + + true + true + true + + + false + false + $(pv_name) +$(pv_value) + true + LED + 20 + 7565d3e4:177c1ff26c3:-772d + 229 + 529 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_89 + + + true + true + false + + + Z Estimation Valid + + true + 1 + true + Label + 118 + false + 7565d3e4:177c1ff26c3:-7726 + 103 + 548 + + + + false + false + + + + -1 + true + + + + 0 + 1 + 3 + + + + 0 + true + true + + Default + + false + + + + 20 + LED_11 + + + + OFF + + + + ON + /cfs/pe/PE_HkTlm_t.ZEstValid + + + + true + true + true + + + false + false + $(pv_name) +$(pv_value) + true + LED + 20 + 7565d3e4:177c1ff26c3:-7725 + 229 + 548 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_90 + + + true + true + false + + + Terrain Estimation Valid + + true + 1 + true + Label + 160 + false + 7565d3e4:177c1ff26c3:-771e + 61 + 567 + + + + false + false + + + + -1 + true + + + + 0 + 1 + 3 + + + + 0 + true + true + + Default + + false + + + + 20 + LED_12 + + + + OFF + + + + ON + /cfs/pe/PE_HkTlm_t.TzEstValid + + + + true + true + true + + + false + false + $(pv_name) +$(pv_value) + true + LED + 20 + 7565d3e4:177c1ff26c3:-771d + 229 + 567 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_91 + + + true + true + false + + + Local Estimator Initialized + + true + 1 + true + Label + 172 + false + 7565d3e4:177c1ff26c3:-76e8 + 49 + 586 + + + + false + false + + + + -1 + true + + + + 0 + 1 + 3 + + + + 0 + true + true + + Default + + false + + + + 20 + LED_13 + + + + OFF + + + + ON + /cfs/pe/PE_HkTlm_t.EstimatorLocalInitialized + + + + true + true + true + + + false + false + $(pv_name) +$(pv_value) + true + LED + 20 + 7565d3e4:177c1ff26c3:-76e7 + 229 + 586 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_92 + + + true + true + false + + + Initialized + + true + 1 + true + Label + 76 + false + 7565d3e4:177c1ff26c3:-76e0 + 609 + 410 + + + + false + false + + + + -1 + true + + + + 0 + 1 + 3 + + + + 0 + true + true + + Default + + false + + + + 20 + LED_14 + + + + OFF + + + + ON + /cfs/pe/PE_HkTlm_t.DistInitialized + + + + true + true + true + + + false + false + $(pv_name) +$(pv_value) + true + LED + 20 + 7565d3e4:177c1ff26c3:-76df + 693 + 410 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_93 + + + true + true + false + + + Timeout + + true + 1 + true + Label + 58 + false + 7565d3e4:177c1ff26c3:-76c0 + 722 + 410 + + + + false + false + + + + -1 + true + + + + 0 + 1 + 3 + + + + 0 + true + true + + Default + + false + + + + 20 + LED_15 + + + + OFF + + + + ON + /cfs/pe/PE_HkTlm_t.DistTimeout + + + + true + true + true + + + false + false + $(pv_name) +$(pv_value) + true + LED + 20 + 7565d3e4:177c1ff26c3:-76bf + 788 + 410 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_94 + + + true + true + false + + + Fused + + true + 1 + true + Label + 55 + false + 7565d3e4:177c1ff26c3:-76be + 630 + 429 + + + + false + false + + + + -1 + true + + + + 0 + 1 + 3 + + + + 0 + true + true + + Default + + false + + + + 20 + LED_16 + + + + OFF + + + + ON + /cfs/pe/PE_HkTlm_t.DistFused + + + + true + true + true + + + false + false + $(pv_name) +$(pv_value) + true + LED + 20 + 7565d3e4:177c1ff26c3:-76bd + 693 + 429 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_95 + + + true + true + false + + + Fused + + true + 1 + true + Label + 55 + false + 7565d3e4:177c1ff26c3:-76bc + 367 + 182 + + + + false + false + + + + -1 + true + + + + 0 + 1 + 3 + + + + 0 + true + true + + Default + + false + + + + 20 + LED_17 + + + + OFF + + + + ON + /cfs/pe/PE_HkTlm_t.GpsFused + + + + true + true + true + + + false + false + $(pv_name) +$(pv_value) + true + LED + 20 + 7565d3e4:177c1ff26c3:-76bb + 430 + 182 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_96 + + + true + true + false + + + Fused + + true + 1 + true + Label + 59 + false + 7565d3e4:177c1ff26c3:-7692 + 365 + 448 + + + + false + false + + + + -1 + true + + + + 0 + 1 + 3 + + + + 0 + true + true + + Default + + false + + + + 20 + LED_18 + + + + OFF + + + + ON + /cfs/pe/PE_HkTlm_t.BaroFused + + + + true + true + true + + + false + false + $(pv_name) +$(pv_value) + true + LED + 20 + 7565d3e4:177c1ff26c3:-7691 + 432 + 448 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_97 + + + true + true + false + + + Fused + + true + 1 + true + Label + 54 + false + 7565d3e4:177c1ff26c3:-7690 + 628 + 182 + + + + false + false + + + + -1 + true + + + + 0 + 1 + 3 + + + + 0 + true + true + + Default + + false + + + + 20 + LED_19 + + + + OFF + + + + ON + /cfs/pe/PE_HkTlm_t.LandFused + + + + true + true + true + + + false + false + $(pv_name) +$(pv_value) + true + LED + 20 + 7565d3e4:177c1ff26c3:-768f + 690 + 182 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_98 + + + true + true + false + + + Fused + + true + 1 + true + Label + 57 + false + 7565d3e4:177c1ff26c3:-768e + 362 + 648 + + + + false + false + + + + -1 + true + + + + 0 + 1 + 3 + + + + 0 + true + true + + Default + + false + + + + 20 + LED_20 + + + + OFF + + + + ON + /cfs/pe/PE_HkTlm_t.FlowFused + + + + true + true + true + + + false + false + $(pv_name) +$(pv_value) + true + LED + 20 + 7565d3e4:177c1ff26c3:-768d + 427 + 648 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_99 + + + true + true + false + + + Initialized + + true + 1 + true + Label + 75 + false + 7565d3e4:177c1ff26c3:-768c + 344 + 629 + + + + false + false + + + + -1 + true + + + + 0 + 1 + 3 + + + + 0 + true + true + + Default + + false + + + + 20 + LED_21 + + + + OFF + + + + ON + /cfs/pe/PE_HkTlm_t.FlowInitialized + + + + true + true + true + + + false + false + $(pv_name) +$(pv_value) + true + LED + 20 + 7565d3e4:177c1ff26c3:-768b + 427 + 629 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_100 + + + true + true + false + + + Fault + + true + 1 + true + Label + 42 + false + 7565d3e4:177c1ff26c3:-768a + 479 + 648 + + + + false + false + + + + -1 + true + + + + 0 + 1 + 3 + + + + 0 + true + true + + Default + + false + + + + 20 + LED_22 + + + + OFF + + + + ON + /cfs/pe/PE_HkTlm_t.FlowFault + + + + true + true + true + + + false + false + $(pv_name) +$(pv_value) + true + LED + 20 + 7565d3e4:177c1ff26c3:-7689 + 528 + 648 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_101 + + + true + true + false + + + Timeout + + true + 1 + true + Label + 58 + false + 7565d3e4:177c1ff26c3:-7688 + 462 + 629 + + + + false + false + + + + -1 + true + + + + 0 + 1 + 3 + + + + 0 + true + true + + Default + + false + + + + 20 + LED_23 + + + + OFF + + + + ON + /cfs/pe/PE_HkTlm_t.FlowTimeout + + + + true + true + true + + + false + false + $(pv_name) +$(pv_value) + true + LED + 20 + 7565d3e4:177c1ff26c3:-7687 + 528 + 629 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_103 + + + true + true + false + + + Received + + true + 1 + true + Label + 118 + false + 7565d3e4:177c1ff26c3:-75e5 + 407 + 201 + + + + false + false + + + + -1 + true + + + + 0 + 1 + 3 + + + + 0 + true + true + + Default + + false + + + + 20 + LED_25 + + + + OFF + + + + ON + /cfs/pe/PE_HkTlm_t.ReceivedGPS + + + + true + true + true + + + false + false + $(pv_name) +$(pv_value) + true + LED + 20 + 7565d3e4:177c1ff26c3:-75e4 + 533 + 201 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_104 + + + true + true + false + + + Last Armed State + + true + 1 + true + Label + 118 + false + 7565d3e4:177c1ff26c3:-75dd + 103 + 491 + + + + false + false + + + + -1 + true + + + + 0 + 1 + 3 + + + + 0 + true + true + + Default + + false + + + + 20 + LED_26 + + + + OFF + + + + ON + /cfs/pe/PE_HkTlm_t.LastArmedState + + + + true + true + true + + + false + false + $(pv_name) +$(pv_value) + true + LED + 20 + 7565d3e4:177c1ff26c3:-75dc + 229 + 491 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_105 + + + true + true + false + + + Params Updated + + true + 1 + true + Label + 118 + false + 7565d3e4:177c1ff26c3:-75d5 + 103 + 510 + + + + false + false + + + + -1 + true + + + + 0 + 1 + 3 + + + + 0 + true + true + + Default + + false + + + + 20 + LED_27 + + + + OFF + + + + ON + /cfs/pe/PE_HkTlm_t.ParamsUpdated + + + + true + true + true + + + false + false + $(pv_name) +$(pv_value) + true + LED + 20 + 7565d3e4:177c1ff26c3:-75d4 + 229 + 510 + + + + false + + + + + + + 0 + 1 + true + + Default Bold + + + + + 20 + 1 + Label_106 + + + true + true + false + + + GPS + + true + 1 + true + Label + 146 + false + 7565d3e4:177c1ff26c3:-75bd + 375 + 24 + + + + + + importPackage(Packages.org.csstudio.opibuilder.scriptUtil); +importPackage(Packages.org.yamcs.studio.script); + +Yamcs.issueCommand('/cfs/pe/EnableGPS', {}); + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 20 + ../../Resources/send.png + NoOp_2 + 0 + + + + + true + true + false + + + + Ena + false + $(pv_name) +$(pv_value) + true + Action Button + 72 + 7565d3e4:177c1ff26c3:-75b3 + 395 + 134 + + + + + + importPackage(Packages.org.csstudio.opibuilder.scriptUtil); +importPackage(Packages.org.yamcs.studio.script); + +Yamcs.issueCommand('/cfs/pe/DisableGPS', {}); + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 20 + ../../Resources/send.png + NoOp_3 + 0 + + + + + true + true + false + + + + Dis + false + $(pv_name) +$(pv_value) + true + Action Button + 72 + 7565d3e4:177c1ff26c3:-75a9 + 467 + 134 + + + + false + + + + + + + 0 + 1 + true + + Default Bold + + + + + 20 + 1 + Label_107 + + + true + true + false + + + Baro + + true + 1 + true + Label + 146 + false + 7565d3e4:177c1ff26c3:-7597 + 375 + 252 + + + + + + importPackage(Packages.org.csstudio.opibuilder.scriptUtil); +importPackage(Packages.org.yamcs.studio.script); + +Yamcs.issueCommand('/cfs/pe/EnableBaro', {}); + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 20 + ../../Resources/send.png + NoOp_4 + 0 + + + + + true + true + false + + + + Ena + false + $(pv_name) +$(pv_value) + true + Action Button + 72 + 7565d3e4:177c1ff26c3:-7582 + 394 + 400 + + + + + + importPackage(Packages.org.csstudio.opibuilder.scriptUtil); +importPackage(Packages.org.yamcs.studio.script); + +Yamcs.issueCommand('/cfs/pe/DisableBaro', {}); + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 20 + ../../Resources/send.png + NoOp_5 + 0 + + + + + true + true + false + + + + Dis + false + $(pv_name) +$(pv_value) + true + Action Button + 72 + 7565d3e4:177c1ff26c3:-7581 + 466 + 400 + + + + false + + + + + + + 0 + 1 + true + + Default Bold + + + + + 20 + 1 + Label_108 + + + true + true + false + + + Land + + true + 1 + true + Label + 146 + false + 7565d3e4:177c1ff26c3:-756a + 636 + 24 + + + + + + importPackage(Packages.org.csstudio.opibuilder.scriptUtil); +importPackage(Packages.org.yamcs.studio.script); + +Yamcs.issueCommand('/cfs/pe/EnableLanding', {}); + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 20 + ../../Resources/send.png + NoOp_6 + 0 + + + + + true + true + false + + + + Ena + false + $(pv_name) +$(pv_value) + true + Action Button + 72 + 7565d3e4:177c1ff26c3:-755b + 643 + 134 + + + + + + importPackage(Packages.org.csstudio.opibuilder.scriptUtil); +importPackage(Packages.org.yamcs.studio.script); + +Yamcs.issueCommand('/cfs/pe/DisableLanding', {}); + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 20 + ../../Resources/send.png + NoOp_7 + 0 + + + + + true + true + false + + + + Dis + false + $(pv_name) +$(pv_value) + true + Action Button + 72 + 7565d3e4:177c1ff26c3:-755a + 715 + 134 + + + + false + + + + + + + 0 + 1 + true + + Default Bold + + + + + 20 + 1 + Label_109 + + + true + true + false + + + Dist + + true + 1 + true + Label + 146 + false + 7565d3e4:177c1ff26c3:-7549 + 643 + 271 + + + + + + importPackage(Packages.org.csstudio.opibuilder.scriptUtil); +importPackage(Packages.org.yamcs.studio.script); + +Yamcs.issueCommand('/cfs/pe/EnableDist', {}); + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 20 + ../../Resources/send.png + NoOp_8 + 0 + + + + + true + true + false + + + + Ena + false + $(pv_name) +$(pv_value) + true + Action Button + 72 + 7565d3e4:177c1ff26c3:-753a + 642 + 381 + + + + + + importPackage(Packages.org.csstudio.opibuilder.scriptUtil); +importPackage(Packages.org.yamcs.studio.script); + +Yamcs.issueCommand('/cfs/pe/DisableDist', {}); + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 20 + ../../Resources/send.png + NoOp_9 + 0 + + + + + true + true + false + + + + Dis + false + $(pv_name) +$(pv_value) + true + Action Button + 72 + 7565d3e4:177c1ff26c3:-7539 + 714 + 381 + + + + false + + + + + + + 0 + 1 + true + + Default Bold + + + + + 20 + 1 + Label_110 + + + true + true + false + + + Flow + + true + 1 + true + Label + 146 + false + 7565d3e4:177c1ff26c3:-7522 + 375 + 510 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_111 + + + true + true + false + + + Msg Count + + true + 1 + true + Label + 93 + false + 7565d3e4:177c1ff26c3:-7513 + 325 + 571 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_25 + 0 + false + /cfs/pe/PE_HkTlm_t.OpticalFlowMsgCount + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + 7565d3e4:177c1ff26c3:-7512 + 429 + 571 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_112 + + + true + true + false + + + Msg Count + + true + 1 + true + Label + 85 + false + 7565d3e4:177c1ff26c3:-74fe + 336 + 372 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_26 + 0 + false + /cfs/pe/PE_HkTlm_t.SensorCombinedMsgCount + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + 7565d3e4:177c1ff26c3:-74fd + 429 + 372 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_113 + + + true + true + false + + + Msg Count + + true + 1 + true + Label + 85 + false + 7565d3e4:177c1ff26c3:-74ef + 618 + 353 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_27 + 0 + false + /cfs/pe/PE_HkTlm_t.DistanceSensorMsgCount + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 99 + false + 7565d3e4:177c1ff26c3:-74ee + 715 + 353 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_114 + + + true + true + false + + + Msg Count + + true + 1 + true + Label + 81 + false + 7565d3e4:177c1ff26c3:-74e0 + 618 + 105 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_28 + 0 + false + /cfs/pe/PE_HkTlm_t.VehicleLandDetectedMsgCount + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 99 + false + 7565d3e4:177c1ff26c3:-74df + 715 + 105 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_115 + + + true + true + false + + + Msg Count + + true + 1 + true + Label + 87 + false + 7565d3e4:177c1ff26c3:-74d1 + 344 + 105 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_29 + 0 + false + /cfs/pe/PE_HkTlm_t.VehicleGpsPositionMsgCount + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 101 + false + 7565d3e4:177c1ff26c3:-74d0 + 438 + 105 + + + + + + importPackage(Packages.org.csstudio.opibuilder.scriptUtil); +importPackage(Packages.org.yamcs.studio.script); + +Yamcs.issueCommand('/cfs/pe/EnableFlow', {}); + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 20 + ../../Resources/send.png + NoOp_10 + 0 + + + + + true + true + false + + + + Ena + false + $(pv_name) +$(pv_value) + true + Action Button + 72 + 7565d3e4:177c1ff26c3:-74c2 + 385 + 599 + + + + + + importPackage(Packages.org.csstudio.opibuilder.scriptUtil); +importPackage(Packages.org.yamcs.studio.script); + +Yamcs.issueCommand('/cfs/pe/DisableFlow', {}); + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 20 + ../../Resources/send.png + NoOp_11 + 0 + + + + + true + true + false + + + + Dis + false + $(pv_name) +$(pv_value) + true + Action Button + 72 + 7565d3e4:177c1ff26c3:-74c1 + 457 + 599 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_30 + 0 + false + /cfs/pe/PE_HkTlm_t.Timestamp.Subseconds + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + 7565d3e4:177c1ff26c3:-6524 + 179 + 115 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_31 + 0 + false + /cfs/pe/PE_HkTlm_t.TimeLastGps.Subseconds + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + 7565d3e4:177c1ff26c3:-6516 + 438 + 67 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_33 + 0 + false + /cfs/pe/PE_HkTlm_t.TimeLastLand.Subseconds + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + 7565d3e4:177c1ff26c3:-6504 + 714 + 86 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_34 + 0 + false + /cfs/pe/PE_HkTlm_t.TimeLastDist.Subseconds + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + 7565d3e4:177c1ff26c3:-64fa + 714 + 315 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_35 + 0 + false + /cfs/pe/PE_HkTlm_t.TimeLastBaro.Subseconds + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + 7565d3e4:177c1ff26c3:-64f2 + 429 + 296 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_36 + 0 + false + /cfs/pe/PE_HkTlm_t.TimeLastFlow.Subseconds + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + 7565d3e4:177c1ff26c3:-64d4 + 429 + 553 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_37 + 0 + false + /cfs/pe/PE_HkTlm_t.Timestamp_Hist.Subseconds + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + 7565d3e4:177c1ff26c3:-60b9 + 179 + 153 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_38 + 0 + false + /cfs/pe/PE_HkTlm_t.TimestampLastBaro.Subseconds + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + 7565d3e4:177c1ff26c3:-5f95 + 429 + 334 + + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/SENS/Main.opi b/core/base/tools/commander/workspace_template/Displays/Apps/SENS/Main.opi new file mode 100644 index 000000000..1cc2363a5 --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/Apps/SENS/Main.opi @@ -0,0 +1,2709 @@ + + + + + false + -1 + -1 + + false + + + + 1.5.3 + + + + 6 + 630 + + true + + + + + true + true + true + true + true + Display + 750 + -33cb7c72:150aa4c347f:-76c2 + -1 + -1 + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update + 0 + false + /cfs/sens/SENS_HkTlm_t.CmdCnt + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + -33cb7c72:150aa4c347f:-75ff + 108 + 42 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label + + + true + true + false + + + Commands + + true + 1 + true + Label + 91 + false + -33cb7c72:150aa4c347f:-75fe + 6 + 42 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_1 + + + true + true + false + + + Errors + + true + 1 + true + Label + 60 + false + -33cb7c72:150aa4c347f:-75fd + 37 + 61 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_1 + 0 + false + /cfs/sens/SENS_HkTlm_t.CmdErrCnt + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + -33cb7c72:150aa4c347f:-75fb + 108 + 61 + + + + false + + + + + + + 0 + 1 + true + + Default Bold + + + + + 20 + 1 + Label_49 + + + true + true + false + + + Sensor Application + + true + 1 + true + Label + 161 + false + -33cb7c72:150aa4c347f:-75c9 + 84 + 12 + + + + + + importPackage(Packages.org.csstudio.opibuilder.scriptUtil); +importPackage(Packages.org.yamcs.studio.script); + +Yamcs.issueCommand('/cfs/sens/Noop', {}); + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 20 + ../../Resources/send.png + NoOp + 0 + + + + + true + true + false + + + + NoOp + false + $(pv_name) +$(pv_value) + true + Action Button + 102 + -10b748b0:17773fb054b:-7b9c + 223 + 42 + + + + + + importPackage(Packages.org.csstudio.opibuilder.scriptUtil); +importPackage(Packages.org.yamcs.studio.script); + +Yamcs.issueCommand('/cfs/sens/Reset', {}); + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 20 + ../../Resources/send.png + NoOp_1 + 0 + + + + + true + true + false + + + + Reset + false + $(pv_name) +$(pv_value) + true + Action Button + 102 + -10b748b0:17773fb054b:-7b94 + 223 + 61 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 1 + Label_58 + + + true + true + false + + + X + + true + 1 + true + Label + 100 + false + -10b748b0:17773fb054b:-7ae3 + 9 + 254 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_10 + 3 + false + /cfs/sens/SENS_HkTlm_t.SensorCombinedMsg.GyroRad_0_ + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + -10b748b0:17773fb054b:-7ae2 + 9 + 273 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_81 + + + true + true + false + + + Integral dt + + true + 1 + true + Label + 81 + false + 7565d3e4:177c1ff26c3:-7c44 + 64 + 230 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_31 + 6 + false + /cfs/sens/SENS_HkTlm_t.SensorCombinedMsg.GyroIntegralDt + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + 7565d3e4:177c1ff26c3:-7c43 + 156 + 230 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_93 + + + true + true + false + + + Invalid + + true + 1 + true + Label + 57 + false + 7565d3e4:177c1ff26c3:-794d + 89 + 427 + + + + false + false + + + + -1 + true + + + + 0 + 1 + 3 + + + + 0 + true + true + + Default + + false + + + + 20 + LED_1 + + + + OFF + + + + ON + /cfs/sens/SENS_HkTlm_t.SensorCombinedMsg.AccRelTimeInvalid + + + + true + true + true + + + false + false + $(pv_name) +$(pv_value) + true + LED + 20 + 7565d3e4:177c1ff26c3:-7940 + 159 + 427 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_108 + + + true + true + false + + + Timestamp + + true + 1 + true + Label + 114 + false + 7565d3e4:177c1ff26c3:-5cfd + 31 + 192 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_44 + 0 + false + /cfs/sens/SENS_HkTlm_t.SensorCombinedTimestamp.Subseconds + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + 7565d3e4:177c1ff26c3:-5cf3 + 156 + 211 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_45 + 0 + false + /cfs/sens/SENS_HkTlm_t.SensorCombinedTimestamp.Seconds + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + 7565d3e4:177c1ff26c3:-5ceb + 156 + 192 + + + + false + + + + + + + 0 + 1 + true + + Default Bold + + + + + 20 + 1 + Label_109 + + + true + true + false + + + Gyro + + true + 1 + true + Label + 104 + false + 7565d3e4:177c1ff26c3:-5cd9 + 104 + 165 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 1 + Label_110 + + + true + true + false + + + Y + + true + 1 + true + Label + 100 + false + 7565d3e4:177c1ff26c3:-5cc6 + 113 + 254 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_46 + 3 + false + /cfs/sens/SENS_HkTlm_t.SensorCombinedMsg.GyroRad_1_ + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + 7565d3e4:177c1ff26c3:-5cc5 + 113 + 273 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 1 + Label_111 + + + true + true + false + + + Z + + true + 1 + true + Label + 100 + false + 7565d3e4:177c1ff26c3:-5caf + 218 + 254 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_47 + 3 + false + /cfs/sens/SENS_HkTlm_t.SensorCombinedMsg.GyroRad_2_ + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + 7565d3e4:177c1ff26c3:-5cae + 218 + 273 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 1 + Label_112 + + + true + true + false + + + X + + true + 1 + true + Label + 100 + false + 7565d3e4:177c1ff26c3:-5c7f + 10 + 456 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_48 + 3 + false + /cfs/sens/SENS_HkTlm_t.SensorCombinedMsg.Acc_0_ + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + 7565d3e4:177c1ff26c3:-5c7e + 10 + 475 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_113 + + + true + true + false + + + Integral dt + + true + 1 + true + Label + 81 + false + 7565d3e4:177c1ff26c3:-5c7d + 66 + 402 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_49 + 6 + false + /cfs/sens/SENS_HkTlm_t.SensorCombinedMsg.AccIntegralDt + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + 7565d3e4:177c1ff26c3:-5c7c + 158 + 402 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_114 + + + true + true + false + + + Relative Time + + true + 1 + true + Label + 114 + false + 7565d3e4:177c1ff26c3:-5c7b + 33 + 364 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_50 + 0 + false + /cfs/sens/SENS_HkTlm_t.SensorCombinedMsg.AccTimestampRelative.Subseconds + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + 7565d3e4:177c1ff26c3:-5c7a + 158 + 383 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_51 + 0 + false + /cfs/sens/SENS_HkTlm_t.SensorCombinedMsg.AccTimestampRelative.Seconds + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + 7565d3e4:177c1ff26c3:-5c79 + 158 + 364 + + + + false + + + + + + + 0 + 1 + true + + Default Bold + + + + + 20 + 1 + Label_115 + + + true + true + false + + + Accel + + true + 1 + true + Label + 104 + false + 7565d3e4:177c1ff26c3:-5c78 + 106 + 337 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 1 + Label_116 + + + true + true + false + + + Y + + true + 1 + true + Label + 100 + false + 7565d3e4:177c1ff26c3:-5c77 + 114 + 456 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_52 + 3 + false + /cfs/sens/SENS_HkTlm_t.SensorCombinedMsg.Acc_1_ + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + 7565d3e4:177c1ff26c3:-5c76 + 114 + 475 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 1 + Label_117 + + + true + true + false + + + Z + + true + 1 + true + Label + 100 + false + 7565d3e4:177c1ff26c3:-5c75 + 219 + 456 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_53 + 3 + false + /cfs/sens/SENS_HkTlm_t.SensorCombinedMsg.Acc_2_ + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + 7565d3e4:177c1ff26c3:-5c74 + 219 + 475 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_118 + + + true + true + false + + + Invalid + + true + 1 + true + Label + 57 + false + 7565d3e4:177c1ff26c3:-5c04 + 444 + 230 + + + + false + false + + + + -1 + true + + + + 0 + 1 + 3 + + + + 0 + true + true + + Default + + false + + + + 20 + LED_1 + + + + OFF + + + + ON + /cfs/sens/SENS_HkTlm_t.SensorCombinedMsg.MagRelTimeInvalid + + + + true + true + true + + + false + false + $(pv_name) +$(pv_value) + true + LED + 20 + 7565d3e4:177c1ff26c3:-5c03 + 514 + 230 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 1 + Label_119 + + + true + true + false + + + X + + true + 1 + true + Label + 100 + false + 7565d3e4:177c1ff26c3:-5c02 + 358 + 255 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_54 + 3 + false + /cfs/sens/SENS_HkTlm_t.SensorCombinedMsg.Mag_0_ + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + 7565d3e4:177c1ff26c3:-5c01 + 358 + 274 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_121 + + + true + true + false + + + Relative Time + + true + 1 + true + Label + 114 + false + 7565d3e4:177c1ff26c3:-5bfe + 387 + 192 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_56 + 0 + false + /cfs/sens/SENS_HkTlm_t.SensorCombinedMsg.MagTimestampRelative.Subseconds + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + 7565d3e4:177c1ff26c3:-5bfd + 512 + 211 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_57 + 0 + false + /cfs/sens/SENS_HkTlm_t.SensorCombinedMsg.MagTimestampRelative.Seconds + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + 7565d3e4:177c1ff26c3:-5bfc + 512 + 192 + + + + false + + + + + + + 0 + 1 + true + + Default Bold + + + + + 20 + 1 + Label_122 + + + true + true + false + + + Mag + + true + 1 + true + Label + 104 + false + 7565d3e4:177c1ff26c3:-5bfb + 460 + 165 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 1 + Label_123 + + + true + true + false + + + Y + + true + 1 + true + Label + 100 + false + 7565d3e4:177c1ff26c3:-5bfa + 462 + 255 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_58 + 3 + false + /cfs/sens/SENS_HkTlm_t.SensorCombinedMsg.Mag_1_ + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + 7565d3e4:177c1ff26c3:-5bf9 + 462 + 274 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 1 + Label_124 + + + true + true + false + + + Z + + true + 1 + true + Label + 100 + false + 7565d3e4:177c1ff26c3:-5bf8 + 567 + 255 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_59 + 3 + false + /cfs/sens/SENS_HkTlm_t.SensorCombinedMsg.Mag_2_ + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + 7565d3e4:177c1ff26c3:-5bf7 + 567 + 274 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_125 + + + true + true + false + + + Invalid + + true + 1 + true + Label + 57 + false + 7565d3e4:177c1ff26c3:-5b83 + 444 + 408 + + + + false + false + + + + -1 + true + + + + 0 + 1 + 3 + + + + 0 + true + true + + Default + + false + + + + 20 + LED_2 + + + + OFF + + + + ON + /cfs/sens/SENS_HkTlm_t.SensorCombinedMsg.BaroRelTimeInvalid + + + + true + true + true + + + false + false + $(pv_name) +$(pv_value) + true + LED + 20 + 7565d3e4:177c1ff26c3:-5b82 + 514 + 408 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_127 + + + true + true + false + + + Relative Time + + true + 1 + true + Label + 114 + false + 7565d3e4:177c1ff26c3:-5b7f + 387 + 364 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_61 + 0 + false + /cfs/sens/SENS_HkTlm_t.SensorCombinedMsg.BaroTimestampRelative.Subseconds + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + 7565d3e4:177c1ff26c3:-5b7e + 512 + 383 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_62 + 0 + false + /cfs/sens/SENS_HkTlm_t.SensorCombinedMsg.BaroTimestampRelative.Seconds + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + 7565d3e4:177c1ff26c3:-5b7d + 512 + 364 + + + + false + + + + + + + 0 + 1 + true + + Default Bold + + + + + 20 + 1 + Label_128 + + + true + true + false + + + Baro + + true + 1 + true + Label + 104 + false + 7565d3e4:177c1ff26c3:-5b7c + 460 + 337 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_129 + + + true + true + false + + + Altitude + + true + 1 + true + Label + 81 + false + 7565d3e4:177c1ff26c3:-5b60 + 420 + 437 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_63 + 3 + false + /cfs/sens/SENS_HkTlm_t.SensorCombinedMsg.BaroAlt + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + 7565d3e4:177c1ff26c3:-5b5f + 512 + 437 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_130 + + + true + true + false + + + Temperature + + true + 1 + true + Label + 95 + false + 7565d3e4:177c1ff26c3:-5b51 + 406 + 456 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_64 + 1 + false + /cfs/sens/SENS_HkTlm_t.SensorCombinedMsg.BaroTemp + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + 7565d3e4:177c1ff26c3:-5b50 + 512 + 456 + + + + + + importPackage(Packages.org.csstudio.opibuilder.scriptUtil); +importPackage(Packages.org.yamcs.studio.script); + +Yamcs.issueCommand('/cfs/sens/SendHK', {}); + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 20 + ../../Resources/send.png + NoOp_3 + 0 + + + + + true + true + false + + + + SendHK + false + $(pv_name) +$(pv_value) + true + Action Button + 102 + 7565d3e4:177c1ff26c3:-5b42 + 223 + 80 + + + + + + importPackage(Packages.org.csstudio.opibuilder.scriptUtil); +importPackage(Packages.org.yamcs.studio.script); + +Yamcs.issueCommand('/cfs/sens/WakeUp', {}); + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 20 + ../../Resources/send.png + NoOp_4 + 0 + + + + + true + true + false + + + + WakeUp + false + $(pv_name) +$(pv_value) + true + Action Button + 102 + 7565d3e4:177c1ff26c3:-5b41 + 223 + 99 + + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/VM/Main.opi b/core/base/tools/commander/workspace_template/Displays/Apps/VM/Main.opi new file mode 100644 index 000000000..4c0d608e1 --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/Apps/VM/Main.opi @@ -0,0 +1,6011 @@ + + + + + false + -1 + -1 + + false + + + + 1.5.3 + + + + 6 + 630 + + true + + + + + true + true + true + true + true + Display + 750 + -33cb7c72:150aa4c347f:-76c2 + -1 + -1 + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update + 0 + false + /cfs/vm/VM_HkTlm_t.CmdCnt + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + -33cb7c72:150aa4c347f:-75ff + 108 + 42 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label + + + true + true + false + + + Commands + + true + 1 + true + Label + 91 + false + -33cb7c72:150aa4c347f:-75fe + 6 + 42 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_1 + + + true + true + false + + + Errors + + true + 1 + true + Label + 60 + false + -33cb7c72:150aa4c347f:-75fd + 37 + 61 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_1 + 0 + false + /cfs/vm/VM_HkTlm_t.CmdErrCnt + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + -33cb7c72:150aa4c347f:-75fb + 108 + 61 + + + + false + + + + + + + 0 + 1 + true + + Default Bold + + + + + 20 + 1 + Label_49 + + + true + true + false + + + Vehicle Manager + + true + 1 + true + Label + 182 + false + -33cb7c72:150aa4c347f:-75c9 + 63 + 12 + + + + + + importPackage(Packages.org.csstudio.opibuilder.scriptUtil); +importPackage(Packages.org.yamcs.studio.script); + +Yamcs.issueCommand('/cfs/vm/Noop', {}); + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 20 + ../../Resources/send.png + NoOp + 0 + + + + + true + true + false + + + + NoOp + false + $(pv_name) +$(pv_value) + true + Action Button + 72 + -10b748b0:17773fb054b:-7b9c + 223 + 42 + + + + + + importPackage(Packages.org.csstudio.opibuilder.scriptUtil); +importPackage(Packages.org.yamcs.studio.script); + +Yamcs.issueCommand('/cfs/vm/Reset', {}); + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 20 + ../../Resources/send.png + NoOp_1 + 0 + + + + + true + true + false + + + + Reset + false + $(pv_name) +$(pv_value) + true + Action Button + 72 + -10b748b0:17773fb054b:-7b94 + 223 + 61 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_50 + + + true + true + false + + + Sensor Mag + + true + 1 + true + Label + 103 + false + -10b748b0:17773fb054b:-7b8c + 528 + 59 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_2 + 0 + false + /cfs/vm/VM_HkTlm_t.SensorMagMsgCount + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + -10b748b0:17773fb054b:-7b82 + 642 + 59 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_51 + + + true + true + false + + + Sensor Gyro + + true + 1 + true + Label + 136 + false + -10b748b0:17773fb054b:-7b75 + 495 + 78 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_3 + 0 + false + /cfs/vm/VM_HkTlm_t.SensorGyroMsgCount + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + -10b748b0:17773fb054b:-7b74 + 642 + 78 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_52 + + + true + true + false + + + Battery Status + + true + 1 + true + Label + 136 + false + -10b748b0:17773fb054b:-7b54 + 495 + 97 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_4 + 0 + false + /cfs/vm/VM_HkTlm_t.BatteryStatusMsgCount + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + -10b748b0:17773fb054b:-7b53 + 642 + 97 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_53 + + + true + true + false + + + Telemetry Status + + true + 1 + true + Label + 136 + false + -10b748b0:17773fb054b:-7b42 + 495 + 116 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_5 + 0 + false + /cfs/vm/VM_HkTlm_t.TelemetryStatusMsgCount + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + -10b748b0:17773fb054b:-7b41 + 642 + 116 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_54 + + + true + true + false + + + Subsystem Info + + true + 1 + true + Label + 136 + false + -10b748b0:17773fb054b:-7b30 + 495 + 135 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_6 + 0 + false + /cfs/vm/VM_HkTlm_t.SubsystemInfoMsgCount + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + -10b748b0:17773fb054b:-7b2f + 642 + 135 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_56 + + + true + true + false + + + Vehicle Attitude + + true + 1 + true + Label + 136 + false + -10b748b0:17773fb054b:-7b0c + 495 + 154 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_8 + 0 + false + /cfs/vm/VM_HkTlm_t.VehicleAttitudeMsgCount + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + -10b748b0:17773fb054b:-7b0b + 642 + 154 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_58 + + + true + true + false + + + Wakeup Count + + true + 1 + true + Label + 114 + false + -10b748b0:17773fb054b:-7ae3 + 42 + 118 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_10 + 0 + false + /cfs/vm/VM_HkTlm_t.WakeupCount + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + -10b748b0:17773fb054b:-7ae2 + 167 + 118 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_60 + + + true + true + false + + + Vehicle Local Position + + true + 1 + true + Label + 146 + false + -10b748b0:17773fb054b:-7ac3 + 485 + 173 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_11 + 0 + false + /cfs/vm/VM_HkTlm_t.VehicleLocalPositionMsgCount + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + -10b748b0:17773fb054b:-7ac2 + 642 + 173 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_61 + + + true + true + false + + + Vehicle Land Detected + + true + 1 + true + Label + 146 + false + -10b748b0:17773fb054b:-7ab1 + 485 + 192 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_12 + 0 + false + /cfs/vm/VM_HkTlm_t.VehicleLandDetectedMsgCount + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + -10b748b0:17773fb054b:-7ab0 + 642 + 192 + + + + + + importPackage(Packages.org.csstudio.opibuilder.scriptUtil); +importPackage(Packages.org.yamcs.studio.script); + +Yamcs.issueCommand('/cfs/vm/Manual', {}); + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 20 + ../../Resources/send.png + NoOp_8 + 0 + + + + + true + true + false + + + + Manual + false + $(pv_name) +$(pv_value) + true + Action Button + 134 + 7565d3e4:177c1ff26c3:-7f6b + 325 + 257 + + + + + + importPackage(Packages.org.csstudio.opibuilder.scriptUtil); +importPackage(Packages.org.yamcs.studio.script); + +Yamcs.issueCommand('/cfs/vm/AutoLoiter', {}); + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 20 + ../../Resources/send.png + NoOp_9 + 0 + + + + + true + true + false + + + + Loiter + false + $(pv_name) +$(pv_value) + true + Action Button + 134 + 7565d3e4:177c1ff26c3:-7f63 + 325 + 276 + + + + + + importPackage(Packages.org.csstudio.opibuilder.scriptUtil); +importPackage(Packages.org.yamcs.studio.script); + +Yamcs.issueCommand('/cfs/vm/AutoRtl', {}); + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 20 + ../../Resources/send.png + NoOp_10 + 0 + + + + + true + true + false + + + + RTL + false + $(pv_name) +$(pv_value) + true + Action Button + 134 + 7565d3e4:177c1ff26c3:-7f5b + 325 + 295 + + + + + + importPackage(Packages.org.csstudio.opibuilder.scriptUtil); +importPackage(Packages.org.yamcs.studio.script); + +Yamcs.issueCommand('/cfs/vm/AutoTakeoff', {}); + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 20 + ../../Resources/send.png + NoOp_11 + 0 + + + + + true + true + false + + + + Takeoff + false + $(pv_name) +$(pv_value) + true + Action Button + 134 + 7565d3e4:177c1ff26c3:-7f47 + 325 + 314 + + + + + + importPackage(Packages.org.csstudio.opibuilder.scriptUtil); +importPackage(Packages.org.yamcs.studio.script); + +Yamcs.issueCommand('/cfs/vm/AutoLand', {}); + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 20 + ../../Resources/send.png + NoOp_12 + 0 + + + + + true + true + false + + + + Land + false + $(pv_name) +$(pv_value) + true + Action Button + 134 + 7565d3e4:177c1ff26c3:-7f3d + 325 + 333 + + + + + + importPackage(Packages.org.csstudio.opibuilder.scriptUtil); +importPackage(Packages.org.yamcs.studio.script); + +Yamcs.issueCommand('/cfs/vm/Acrobatic', {}); + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 20 + ../../Resources/send.png + NoOp_13 + 0 + + + + + true + true + false + + + + Acrobatic + false + $(pv_name) +$(pv_value) + true + Action Button + 134 + 7565d3e4:177c1ff26c3:-7f33 + 325 + 352 + + + + + + importPackage(Packages.org.csstudio.opibuilder.scriptUtil); +importPackage(Packages.org.yamcs.studio.script); + +Yamcs.issueCommand('/cfs/vm/Rattitude', {}); + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 20 + ../../Resources/send.png + NoOp_14 + 0 + + + + + true + true + false + + + + Rattitude + false + $(pv_name) +$(pv_value) + true + Action Button + 134 + 7565d3e4:177c1ff26c3:-7f29 + 325 + 369 + + + + + + importPackage(Packages.org.csstudio.opibuilder.scriptUtil); +importPackage(Packages.org.yamcs.studio.script); + +Yamcs.issueCommand('/cfs/vm/Stabilized', {}); + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 20 + ../../Resources/send.png + NoOp_15 + 0 + + + + + true + true + false + + + + Stabilized + false + $(pv_name) +$(pv_value) + true + Action Button + 134 + 7565d3e4:177c1ff26c3:-7f1f + 325 + 388 + + + + + SendDiag.opi + + true + + 1 + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 20 + + Action Button_5 + 0 + + + + + true + true + false + + + + Configuration + false + $(pv_name) +$(pv_value) + true + Action Button + 134 + 7565d3e4:177c1ff26c3:-7ee2 + 33 + 476 + + + + + SendDiag.opi + + true + + 1 + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 20 + + Action Button_1 + 0 + + + + + true + true + false + + + + Diagnostic + false + $(pv_name) +$(pv_value) + true + Action Button + 135 + 7565d3e4:177c1ff26c3:-7ed8 + 32 + 495 + + + + + + importPackage(Packages.org.csstudio.opibuilder.scriptUtil); +importPackage(Packages.org.yamcs.studio.script); + +Yamcs.issueCommand('/cfs/vm/SendHK', {}); + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 20 + ../../Resources/send.png + NoOp_3 + 0 + + + + + true + true + false + + + + SendHK + false + $(pv_name) +$(pv_value) + true + Action Button + 135 + 7565d3e4:177c1ff26c3:-7ece + 173 + 476 + + + + + + importPackage(Packages.org.csstudio.opibuilder.scriptUtil); +importPackage(Packages.org.yamcs.studio.script); + +Yamcs.issueCommand('/cfs/vm/WakeUp', {}); + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 20 + ../../Resources/send.png + NoOp_4 + 0 + + + + + true + true + false + + + + WakeUp + false + $(pv_name) +$(pv_value) + true + Action Button + 135 + 7565d3e4:177c1ff26c3:-7ec6 + 173 + 495 + + + + false + + + + + + + 0 + 1 + true + + Default Bold + + + + + 20 + 1 + Label_62 + + + true + true + false + + + Messages Received + + true + 1 + true + Label + 146 + false + 7565d3e4:177c1ff26c3:-7e7c + 544 + 29 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_63 + + + true + true + false + + + Mission Result + + true + 1 + true + Label + 136 + false + 7565d3e4:177c1ff26c3:-7e45 + 495 + 211 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_13 + 0 + false + /cfs/vm/VM_HkTlm_t.MissionResultMsgCount + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + 7565d3e4:177c1ff26c3:-7e44 + 642 + 211 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_64 + + + true + true + false + + + Manual Control Setpoint + + true + 1 + true + Label + 158 + false + 7565d3e4:177c1ff26c3:-7e43 + 473 + 230 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_14 + 0 + false + /cfs/vm/VM_HkTlm_t.ManualControlSetpointMsgCount + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + 7565d3e4:177c1ff26c3:-7e42 + 642 + 230 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_65 + + + true + true + false + + + Position Setpoint Triplet + + true + 1 + true + Label + 152 + false + 7565d3e4:177c1ff26c3:-7e41 + 479 + 249 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_15 + 0 + false + /cfs/vm/VM_HkTlm_t.PositionSetpointTripletMsgCount + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + 7565d3e4:177c1ff26c3:-7e40 + 642 + 249 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_66 + + + true + true + false + + + Sensor Accel + + true + 1 + true + Label + 136 + false + 7565d3e4:177c1ff26c3:-7e3f + 495 + 268 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_16 + 0 + false + /cfs/vm/VM_HkTlm_t.SensorAccelMsgCount + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + 7565d3e4:177c1ff26c3:-7e3e + 642 + 268 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_67 + + + true + true + false + + + Safety + + true + 1 + true + Label + 136 + false + 7565d3e4:177c1ff26c3:-7e3d + 495 + 287 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_17 + 0 + false + /cfs/vm/VM_HkTlm_t.SafetyMsgCount + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + 7565d3e4:177c1ff26c3:-7e3c + 642 + 287 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_68 + + + true + true + false + + + Sensor Correction + + true + 1 + true + Label + 146 + false + 7565d3e4:177c1ff26c3:-7e3b + 485 + 306 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_18 + 0 + false + /cfs/vm/VM_HkTlm_t.SensorCorrectionMsgCount + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + 7565d3e4:177c1ff26c3:-7e3a + 642 + 306 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_69 + + + true + true + false + + + Sensor Combined + + true + 1 + true + Label + 146 + false + 7565d3e4:177c1ff26c3:-7e39 + 485 + 325 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_19 + 0 + false + /cfs/vm/VM_HkTlm_t.SensorCombinedMsgCount + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + 7565d3e4:177c1ff26c3:-7e38 + 642 + 325 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_70 + + + true + true + false + + + Vehicle Command + + true + 1 + true + Label + 136 + false + 7565d3e4:177c1ff26c3:-7d73 + 495 + 344 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_20 + 0 + false + /cfs/vm/VM_HkTlm_t.VehicleCommandMsgCount + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + 7565d3e4:177c1ff26c3:-7d72 + 642 + 344 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_71 + + + true + true + false + + + Vehicle Global Position + + true + 1 + true + Label + 152 + false + 7565d3e4:177c1ff26c3:-7d71 + 479 + 363 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_21 + 0 + false + /cfs/vm/VM_HkTlm_t.VehicleGlobalPositionMsgCount + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + 7565d3e4:177c1ff26c3:-7d70 + 642 + 363 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_72 + + + true + true + false + + + Vehicle GPS Position + + true + 1 + true + Label + 146 + false + 7565d3e4:177c1ff26c3:-7d6f + 485 + 382 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_22 + 0 + false + /cfs/vm/VM_HkTlm_t.VehicleGpsPositionMsgCount + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + 7565d3e4:177c1ff26c3:-7d6e + 642 + 382 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_73 + + + true + true + false + + + Vehicle Status + + true + 1 + true + Label + 136 + false + 7565d3e4:177c1ff26c3:-7d6d + 495 + 401 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_23 + 0 + false + /cfs/vm/VM_HkTlm_t.VehicleStatusMsgCount + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + 7565d3e4:177c1ff26c3:-7d6c + 642 + 401 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_74 + + + true + true + false + + + Vehicle Control Mode + + true + 1 + true + Label + 149 + false + 7565d3e4:177c1ff26c3:-7d6b + 482 + 420 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_24 + 0 + false + /cfs/vm/VM_HkTlm_t.VehicleControlModeMsgCount + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + 7565d3e4:177c1ff26c3:-7d6a + 642 + 420 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_75 + + + true + true + false + + + Not Initialized + + true + 1 + true + Label + 141 + false + 7565d3e4:177c1ff26c3:-7d69 + 17 + 295 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_76 + + + true + true + false + + + Boot Timestamp + + true + 1 + true + Label + 120 + false + 7565d3e4:177c1ff26c3:-7c4e + 36 + 137 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_26 + 0 + false + /cfs/vm/VM_HkTlm_t.BootTimestamp.Seconds + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + 7565d3e4:177c1ff26c3:-7c4d + 167 + 137 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_78 + + + true + true + false + + + Local Position Is Valid + + true + 1 + true + Label + 158 + false + 7565d3e4:177c1ff26c3:-7c4a + 0 + 314 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_79 + + + true + true + false + + + Prev Landed + + true + 1 + true + Label + 136 + false + 7565d3e4:177c1ff26c3:-7c48 + 22 + 333 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_80 + + + true + true + false + + + Prev In Flight + + true + 1 + true + Label + 136 + false + 7565d3e4:177c1ff26c3:-7c46 + 22 + 352 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_81 + + + true + true + false + + + Stick Off Counter + + true + 1 + true + Label + 136 + false + 7565d3e4:177c1ff26c3:-7c44 + 20 + 173 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_31 + 0 + false + /cfs/vm/VM_HkTlm_t.StickOffCounter + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + 7565d3e4:177c1ff26c3:-7c43 + 167 + 173 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_82 + + + true + true + false + + + Stick On Counter + + true + 1 + true + Label + 146 + false + 7565d3e4:177c1ff26c3:-7c42 + 9 + 192 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_32 + 0 + false + /cfs/vm/VM_HkTlm_t.StickOnCounter + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + 7565d3e4:177c1ff26c3:-7c41 + 167 + 192 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_83 + + + true + true + false + + + Last Sp Man Arm Sw + + true + 1 + true + Label + 152 + false + 7565d3e4:177c1ff26c3:-7c40 + 6 + 211 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_33 + 0 + false + /cfs/vm/VM_HkTlm_t.LastSpManArmSwitch + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + 7565d3e4:177c1ff26c3:-7c3f + 167 + 211 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_84 + + + true + true + false + + + Low Bat Action Done + + true + 1 + true + Label + 136 + false + 7565d3e4:177c1ff26c3:-7c3e + 22 + 371 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_85 + + + true + true + false + + + Crit Bat Action Done + + true + 1 + true + Label + 170 + false + 7565d3e4:177c1ff26c3:-7c3c + -12 + 409 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_86 + + + true + true + false + + + Emer Bat Action Done + + true + 1 + true + Label + 170 + false + 7565d3e4:177c1ff26c3:-7c3a + -12 + 390 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_87 + + + true + true + false + + + RC Signal Lost Time + + true + 1 + true + Label + 136 + false + 7565d3e4:177c1ff26c3:-7c38 + 20 + 230 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_37 + 0 + false + /cfs/vm/VM_HkTlm_t.RCSignalLostTimestamp.Seconds + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + 7565d3e4:177c1ff26c3:-7c37 + 167 + 230 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_88 + + + true + true + false + + + Arming State Changed + + true + 1 + true + Label + 158 + false + 7565d3e4:177c1ff26c3:-7c36 + 0 + 428 + + + + false + + + + + + + 0 + 1 + true + + Default Bold + + + + + 20 + 1 + Label_90 + + + true + true + false + + + Moding + + true + 1 + true + Label + 104 + false + 7565d3e4:177c1ff26c3:-79c3 + 337 + 213 + + + + false + + + + + + + 0 + 1 + true + + Default Bold + + + + + 20 + 1 + Label_91 + + + true + true + false + + + Arming + + true + 1 + true + Label + 104 + false + 7565d3e4:177c1ff26c3:-79b7 + 331 + 100 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_40 + 0 + false + /cfs/vm/VM_HkTlm_t.ArmingState + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 97 + false + 7565d3e4:177c1ff26c3:-79ab + 334 + 124 + + + + + + importPackage(Packages.org.csstudio.opibuilder.scriptUtil); +importPackage(Packages.org.yamcs.studio.script); + +Yamcs.issueCommand('/cfs/vm/Arm', {}); + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 20 + ../../Resources/send.png + NoOp_5 + 0 + + + + + true + true + false + + + + Arm + false + $(pv_name) +$(pv_value) + true + Action Button + 97 + 7565d3e4:177c1ff26c3:-79a0 + 334 + 143 + + + + + + importPackage(Packages.org.csstudio.opibuilder.scriptUtil); +importPackage(Packages.org.yamcs.studio.script); + +Yamcs.issueCommand('/cfs/vm/Disarm', {}); + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 20 + ../../Resources/send.png + NoOp_7 + 0 + + + + + true + true + false + + + + Disarm + false + $(pv_name) +$(pv_value) + true + Action Button + 97 + 7565d3e4:177c1ff26c3:-799f + 334 + 162 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_41 + 0 + false + /cfs/vm/VM_HkTlm_t.NavState + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 134 + false + 7565d3e4:177c1ff26c3:-7997 + 325 + 238 + + + + false + false + + + + -1 + true + + + + 0 + 1 + 3 + + + + 0 + true + true + + Default + + false + + + + 20 + LED + + + + OFF + + + + ON + /cfs/vm/VM_HkTlm_t.NotInitialized + + + + true + true + true + + + false + false + $(pv_name) +$(pv_value) + true + LED + 20 + 7565d3e4:177c1ff26c3:-795f + 167 + 295 + + + + false + + + + + + + 0 + 1 + true + + Default Bold + + + + + 20 + 1 + Label_92 + + + true + true + false + + + Previous Modes + + true + 1 + true + Label + 133 + false + 7565d3e4:177c1ff26c3:-7957 + 350 + 457 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_93 + + + true + true + false + + + Pos Ctl + + true + 1 + true + Label + 57 + false + 7565d3e4:177c1ff26c3:-794d + 361 + 484 + + + + false + false + + + + -1 + true + + + + 0 + 1 + 3 + + + + 0 + true + true + + Default + + false + + + + 20 + LED_1 + + + + OFF + + + + ON + /cfs/vm/VM_HkTlm_t.PreviousModes.inPosCtl + + + + true + true + true + + + false + false + $(pv_name) +$(pv_value) + true + LED + 20 + 7565d3e4:177c1ff26c3:-7940 + 431 + 484 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_94 + + + true + true + false + + + RTL + + true + 1 + true + Label + 57 + false + 7565d3e4:177c1ff26c3:-7935 + 361 + 503 + + + + false + false + + + + -1 + true + + + + 0 + 1 + 3 + + + + 0 + true + true + + Default + + false + + + + 20 + LED_2 + + + + OFF + + + + ON + /cfs/vm/VM_HkTlm_t.PreviousModes.inRtl + + + + true + true + true + + + false + false + $(pv_name) +$(pv_value) + true + LED + 20 + 7565d3e4:177c1ff26c3:-7934 + 431 + 503 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_95 + + + true + true + false + + + Loiter + + true + 1 + true + Label + 57 + false + 7565d3e4:177c1ff26c3:-792d + 361 + 522 + + + + false + false + + + + -1 + true + + + + 0 + 1 + 3 + + + + 0 + true + true + + Default + + false + + + + 20 + LED_3 + + + + OFF + + + + ON + /cfs/vm/VM_HkTlm_t.PreviousModes.inLoiter + + + + true + true + true + + + false + false + $(pv_name) +$(pv_value) + true + LED + 20 + 7565d3e4:177c1ff26c3:-792c + 431 + 522 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_96 + + + true + true + false + + + Manual + + true + 1 + true + Label + 57 + false + 7565d3e4:177c1ff26c3:-7925 + 361 + 541 + + + + false + false + + + + -1 + true + + + + 0 + 1 + 3 + + + + 0 + true + true + + Default + + false + + + + 20 + LED_4 + + + + OFF + + + + ON + /cfs/vm/VM_HkTlm_t.PreviousModes.inManual + + + + true + true + true + + + false + false + $(pv_name) +$(pv_value) + true + LED + 20 + 7565d3e4:177c1ff26c3:-7924 + 431 + 541 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_97 + + + true + true + false + + + Takeoff + + true + 1 + true + Label + 57 + false + 7565d3e4:177c1ff26c3:-791d + 361 + 560 + + + + false + false + + + + -1 + true + + + + 0 + 1 + 3 + + + + 0 + true + true + + Default + + false + + + + 20 + LED_5 + + + + OFF + + + + ON + /cfs/vm/VM_HkTlm_t.PreviousModes.inTakeoff + + + + true + true + true + + + false + false + $(pv_name) +$(pv_value) + true + LED + 20 + 7565d3e4:177c1ff26c3:-791c + 431 + 560 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_98 + + + true + true + false + + + Alt Ctl + + true + 1 + true + Label + 57 + false + 7565d3e4:177c1ff26c3:-7915 + 361 + 579 + + + + false + false + + + + -1 + true + + + + 0 + 1 + 3 + + + + 0 + true + true + + Default + + false + + + + 20 + LED_6 + + + + OFF + + + + ON + /cfs/vm/VM_HkTlm_t.PreviousModes.inAltCtl + + + + true + true + true + + + false + false + $(pv_name) +$(pv_value) + true + LED + 20 + 7565d3e4:177c1ff26c3:-7914 + 431 + 579 + + + + false + false + + + + -1 + true + + + + 0 + 1 + 3 + + + + 0 + true + true + + Default + + false + + + + 20 + LED_7 + + + + OFF + + + + ON + /cfs/vm/VM_HkTlm_t.LocalPositionIsValid + + + + true + true + true + + + false + false + $(pv_name) +$(pv_value) + true + LED + 20 + 7565d3e4:177c1ff26c3:-78fd + 167 + 314 + + + + false + false + + + + -1 + true + + + + 0 + 1 + 3 + + + + 0 + true + true + + Default + + false + + + + 20 + LED_8 + + + + OFF + + + + ON + /cfs/vm/VM_HkTlm_t.PrevLanded + + + + true + true + true + + + false + false + $(pv_name) +$(pv_value) + true + LED + 20 + 7565d3e4:177c1ff26c3:-78f3 + 167 + 333 + + + + false + false + + + + -1 + true + + + + 0 + 1 + 3 + + + + 0 + true + true + + Default + + false + + + + 20 + LED_9 + + + + OFF + + + + ON + /cfs/vm/VM_HkTlm_t.PrevInFlight + + + + true + true + true + + + false + false + $(pv_name) +$(pv_value) + true + LED + 20 + 7565d3e4:177c1ff26c3:-78ee + 167 + 352 + + + + false + false + + + + -1 + true + + + + 0 + 1 + 3 + + + + 0 + true + true + + Default + + false + + + + 20 + LED_10 + + + + OFF + + + + ON + /cfs/vm/VM_HkTlm_t.LowBatteryVoltageActionsDone + + + + true + true + true + + + false + false + $(pv_name) +$(pv_value) + true + LED + 20 + 7565d3e4:177c1ff26c3:-78e9 + 167 + 371 + + + + false + false + + + + -1 + true + + + + 0 + 1 + 3 + + + + 0 + true + true + + Default + + false + + + + 20 + LED_11 + + + + OFF + + + + ON + /cfs/vm/VM_HkTlm_t.EmergencyBatteryVoltageActionsDone + + + + true + true + true + + + false + false + $(pv_name) +$(pv_value) + true + LED + 20 + 7565d3e4:177c1ff26c3:-78e4 + 167 + 390 + + + + false + false + + + + -1 + true + + + + 0 + 1 + 3 + + + + 0 + true + true + + Default + + false + + + + 20 + LED_12 + + + + OFF + + + + ON + /cfs/vm/VM_HkTlm_t.CriticalBatteryVoltageActionsDone + + + + true + true + true + + + false + false + $(pv_name) +$(pv_value) + true + LED + 20 + 7565d3e4:177c1ff26c3:-78df + 167 + 409 + + + + false + false + + + + -1 + true + + + + 0 + 1 + 3 + + + + 0 + true + true + + Default + + false + + + + 20 + LED_13 + + + + OFF + + + + ON + /cfs/vm/VM_HkTlm_t.ArmingStateChanged + + + + true + true + true + + + false + false + $(pv_name) +$(pv_value) + true + LED + 20 + 7565d3e4:177c1ff26c3:-78da + 167 + 428 + + + + false + + + + + + + 0 + 1 + true + + Default Bold + + + + + 20 + 1 + Label_99 + + + true + true + false + + + Status + + true + 1 + true + Label + 133 + false + 7565d3e4:177c1ff26c3:-7480 + 528 + 457 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_100 + + + true + true + false + + + Sensors Initialized + + true + 1 + true + Label + 121 + false + 7565d3e4:177c1ff26c3:-746f + 522 + 484 + + + + false + false + + + + -1 + true + + + + 0 + 1 + 3 + + + + 0 + true + true + + Default + + false + + + + 20 + LED_14 + + + + OFF + + + + ON + /cfs/vm/VM_HkTlm_t.StatusFlags.SensorsInitialized + + + + true + true + true + + + false + false + $(pv_name) +$(pv_value) + true + LED + 20 + 7565d3e4:177c1ff26c3:-746e + 654 + 484 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_101 + + + true + true + false + + + RTL Set + + true + 1 + true + Label + 121 + false + 7565d3e4:177c1ff26c3:-7460 + 522 + 503 + + + + false + false + + + + -1 + true + + + + 0 + 1 + 3 + + + + 0 + true + true + + Default + + false + + + + 20 + LED_15 + + + + OFF + + + + ON + /cfs/vm/VM_HkTlm_t.StatusFlags.ReturnToHomeSet + + + + true + true + true + + + false + false + $(pv_name) +$(pv_value) + true + LED + 20 + 7565d3e4:177c1ff26c3:-745f + 654 + 503 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_102 + + + true + true + false + + + Home Pos Valid + + true + 1 + true + Label + 121 + false + 7565d3e4:177c1ff26c3:-744e + 522 + 522 + + + + false + false + + + + -1 + true + + + + 0 + 1 + 3 + + + + 0 + true + true + + Default + + false + + + + 20 + LED_16 + + + + OFF + + + + ON + /cfs/vm/VM_HkTlm_t.StatusFlags.HomePositionValid + + + + true + true + true + + + false + false + $(pv_name) +$(pv_value) + true + LED + 20 + 7565d3e4:177c1ff26c3:-744d + 654 + 522 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_103 + + + true + true + false + + + USB Power + + true + 1 + true + Label + 121 + false + 7565d3e4:177c1ff26c3:-744c + 522 + 541 + + + + false + false + + + + -1 + true + + + + 0 + 1 + 3 + + + + 0 + true + true + + Default + + false + + + + 20 + LED_17 + + + + OFF + + + + ON + /cfs/vm/VM_HkTlm_t.StatusFlags.UsbPowerConnected + + + + true + true + true + + + false + false + $(pv_name) +$(pv_value) + true + LED + 20 + 7565d3e4:177c1ff26c3:-744b + 654 + 541 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_104 + + + true + true + false + + + RC Signal Found Once + + true + 1 + true + Label + 148 + false + 7565d3e4:177c1ff26c3:-742e + 495 + 560 + + + + false + false + + + + -1 + true + + + + 0 + 1 + 3 + + + + 0 + true + true + + Default + + false + + + + 20 + LED_18 + + + + OFF + + + + ON + /cfs/vm/VM_HkTlm_t.StatusFlags.RcSignalFoundOnce + + + + true + true + true + + + false + false + $(pv_name) +$(pv_value) + true + LED + 20 + 7565d3e4:177c1ff26c3:-742d + 654 + 560 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_105 + + + true + true + false + + + RC Signal Lost Mode + + true + 1 + true + Label + 148 + false + 7565d3e4:177c1ff26c3:-742c + 495 + 579 + + + + false + false + + + + -1 + true + + + + 0 + 1 + 3 + + + + 0 + true + true + + Default + + false + + + + 20 + LED_19 + + + + OFF + + + + ON + /cfs/vm/VM_HkTlm_t.StatusFlags.RcSignalLostModeIsCmded + + + + true + true + true + + + false + false + $(pv_name) +$(pv_value) + true + LED + 20 + 7565d3e4:177c1ff26c3:-742b + 654 + 579 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_106 + + + true + true + false + + + RC Input Blocked + + true + 1 + true + Label + 121 + false + 7565d3e4:177c1ff26c3:-742a + 522 + 598 + + + + false + false + + + + -1 + true + + + + 0 + 1 + 3 + + + + 0 + true + true + + Default + + false + + + + 20 + LED_20 + + + + OFF + + + + ON + /cfs/vm/VM_HkTlm_t.StatusFlags.RcInputIsTemporarilyBlocked + + + + true + true + true + + + false + false + $(pv_name) +$(pv_value) + true + LED + 20 + 7565d3e4:177c1ff26c3:-7429 + 654 + 598 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_42 + 0 + false + /cfs/vm/VM_HkTlm_t.BootTimestamp.Subseconds + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + 7565d3e4:177c1ff26c3:-6532 + 167 + 154 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_43 + 0 + false + /cfs/vm/VM_HkTlm_t.RCSignalLostTimestamp.Subseconds + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + 7565d3e4:177c1ff26c3:-63c8 + 167 + 249 + + \ No newline at end of file From c2384a37f4ccb2593669e09cb8de03c79f6046b3 Mon Sep 17 00:00:00 2001 From: Mathew Benson Date: Wed, 24 Feb 2021 11:35:18 -0600 Subject: [PATCH 142/370] Removed timestamp field from PX4_ActuatorArmedMsg_t --- apps/cfs_lib/fsw/public_inc/cfs_utils.h | 1 + apps/cfs_lib/fsw/src/cfs_utils.c | 12 ++++++++++++ apps/px4lib/fsw/public_inc/px4_msgs.h | 1 - apps/px4lib/wh_design.yaml | 2 +- apps/vm/fsw/src/vm_Arming.cpp | 3 ++- apps/vm/fsw/src/vm_app.cpp | 14 ++++++++------ 6 files changed, 24 insertions(+), 9 deletions(-) diff --git a/apps/cfs_lib/fsw/public_inc/cfs_utils.h b/apps/cfs_lib/fsw/public_inc/cfs_utils.h index 5611b5654..4dd32a45c 100644 --- a/apps/cfs_lib/fsw/public_inc/cfs_utils.h +++ b/apps/cfs_lib/fsw/public_inc/cfs_utils.h @@ -266,6 +266,7 @@ void CFE_SB_CopyMsgTime(CFE_SB_MsgPtr_t dest, const CFE_SB_MsgPtr_t src); boolean CFE_SB_IsMsgTimeZero(const CFE_SB_MsgPtr_t msg); uint64 CFE_SB_GetMsgTimeInMicros(const CFE_SB_MsgPtr_t msg); double CFE_SB_GetMsgTimeInSeconds(const CFE_SB_MsgPtr_t msg); +void CFE_SB_ClearMsgTime(CFE_SB_MsgPtr_t msg); CFE_TIME_Compare_t CFE_SB_CompareMsgTime(const CFE_SB_MsgPtr_t msgA, const CFE_SB_MsgPtr_t msgB); diff --git a/apps/cfs_lib/fsw/src/cfs_utils.c b/apps/cfs_lib/fsw/src/cfs_utils.c index 69be13244..d113019b7 100644 --- a/apps/cfs_lib/fsw/src/cfs_utils.c +++ b/apps/cfs_lib/fsw/src/cfs_utils.c @@ -671,6 +671,18 @@ CFE_TIME_Compare_t CFE_SB_CompareMsgTime(const CFE_SB_MsgPtr_t msgA, const CFE_ } + +void CFE_SB_ClearMsgTime(CFE_SB_MsgPtr_t msg) +{ + CFE_TIME_SysTime_t newTime; + + CFE_TIME_ClearTime(&newTime); + + CFE_SB_SetMsgTime(msg, newTime); + +} + + /************************/ /* End of File Comment */ /************************/ diff --git a/apps/px4lib/fsw/public_inc/px4_msgs.h b/apps/px4lib/fsw/public_inc/px4_msgs.h index 330231e9f..b84f52187 100644 --- a/apps/px4lib/fsw/public_inc/px4_msgs.h +++ b/apps/px4lib/fsw/public_inc/px4_msgs.h @@ -579,7 +579,6 @@ typedef enum typedef struct { uint8 TlmHeader[CFE_SB_TLM_HDR_SIZE]; - uint64 Timestamp; boolean Armed; boolean Prearmed; boolean ReadyToArm; diff --git a/apps/px4lib/wh_design.yaml b/apps/px4lib/wh_design.yaml index 6c40637d7..88dd3806a 100644 --- a/apps/px4lib/wh_design.yaml +++ b/apps/px4lib/wh_design.yaml @@ -139,7 +139,7 @@ struct: PX4_MissionResultMsg_t PX4_MULTIROTOR_MOTOR_LIMITS_MID: msgID: - struct: PX4_MultirotorMotorLimitsMsg_t + #struct: PX4_MultirotorMotorLimitsMsg_t PX4_OFFBOARD_CONTROL_MODE_MID: msgID: struct: PX4_OffboardControlModeMsg_t diff --git a/apps/vm/fsw/src/vm_Arming.cpp b/apps/vm/fsw/src/vm_Arming.cpp index 97879817e..c7b3bf864 100644 --- a/apps/vm/fsw/src/vm_Arming.cpp +++ b/apps/vm/fsw/src/vm_Arming.cpp @@ -37,6 +37,7 @@ #include "vm_app.h" #include "px4lib.h" #include "px4lib_msgids.h" +#include "cfs_utils.h" @@ -82,7 +83,7 @@ uint32 VM_Arming::GetCurrentStateID() /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ void VM_Arming::Init(void) { - App.ActuatorArmedMsg.Timestamp = 0; + CFE_SB_ClearMsgTime((CFE_SB_MsgPtr_t)&App.ActuatorArmedMsg); App.ActuatorArmedMsg.Armed = false; App.ActuatorArmedMsg.Prearmed = false; App.ActuatorArmedMsg.ReadyToArm = false; diff --git a/apps/vm/fsw/src/vm_app.cpp b/apps/vm/fsw/src/vm_app.cpp index 45440e2d6..f108f5092 100644 --- a/apps/vm/fsw/src/vm_app.cpp +++ b/apps/vm/fsw/src/vm_app.cpp @@ -502,7 +502,8 @@ int32 VM::RcvSchPipeMsg(int32 iBlocking) { case VM_WAKEUP_MID: { - uint64 timestamp; + CFE_TIME_SysTime_t timestamp; + uint64 timestamp2; CheckParams(); ProcessDataPipe(); @@ -514,11 +515,12 @@ int32 VM::RcvSchPipeMsg(int32 iBlocking) Execute(); /* Get a common timestamp. */ - timestamp = PX4LIB_GetPX4TimeUs(); - ActuatorArmedMsg.Timestamp = timestamp; - VehicleStatusMsg.Timestamp = timestamp; - VehicleManagerStateMsg.Timestamp = timestamp; - VehicleControlModeMsg.Timestamp = timestamp; + timestamp2 = PX4LIB_GetPX4TimeUs(); + + CFE_SB_SetMsgTime((CFE_SB_MsgPtr_t)&ActuatorArmedMsg, timestamp); + VehicleStatusMsg.Timestamp = timestamp2; + VehicleManagerStateMsg.Timestamp = timestamp2; + VehicleControlModeMsg.Timestamp = timestamp2; /* Execute all stateful behavior. */ ArmingSM.DoAction(); From 80aeb3863d6fcdc8920b4f5b1f5daa83b5dd35a1 Mon Sep 17 00:00:00 2001 From: Mathew Benson Date: Wed, 24 Feb 2021 11:35:51 -0600 Subject: [PATCH 143/370] Changed YAMCS workspace to use the updated event msgID. --- .../tools/commander/workspace_template/etc/yamcs.yamcs-cfs.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/base/tools/commander/workspace_template/etc/yamcs.yamcs-cfs.yaml b/core/base/tools/commander/workspace_template/etc/yamcs.yamcs-cfs.yaml index f01b868e3..b4d661e3c 100644 --- a/core/base/tools/commander/workspace_template/etc/yamcs.yamcs-cfs.yaml +++ b/core/base/tools/commander/workspace_template/etc/yamcs.yamcs-cfs.yaml @@ -23,7 +23,7 @@ services: warmupTime: 60 - class: org.yamcs.tctm.cfs.CfsEventDecoder args: - msgIds: [0x0808] + msgIds: [0x0815] byteOrder: LITTLE_ENDIAN appNameMax: 40 eventMsgMax: 122 From a0aebd08ef45326c5583deeeac0c30cb4259ac05 Mon Sep 17 00:00:00 2001 From: Mathew Benson Date: Wed, 24 Feb 2021 11:40:52 -0600 Subject: [PATCH 144/370] Removed timestamp field from PX4_ActuatorOutputsMsg_t --- apps/amc/fsw/src/amc_app.cpp | 5 ++--- apps/amc/fsw/src/amc_msg.h | 2 +- apps/px4lib/fsw/public_inc/px4_msgs.h | 1 - 3 files changed, 3 insertions(+), 5 deletions(-) diff --git a/apps/amc/fsw/src/amc_app.cpp b/apps/amc/fsw/src/amc_app.cpp index f89a84aec..2c4e7ed97 100644 --- a/apps/amc/fsw/src/amc_app.cpp +++ b/apps/amc/fsw/src/amc_app.cpp @@ -838,7 +838,7 @@ void AMC::ReportHousekeeping(void) { uint32 i = 0; - HkTlm.Timestamp = ActuatorOutputs.Timestamp; + HkTlm.Timestamp = CFE_SB_GetMsgTime((CFE_SB_MsgPtr_t)&ActuatorOutputs); HkTlm.Count = ActuatorOutputs.Count; for(i = 0; i < PX4_ACTUATOR_OUTPUTS_MAX; ++i) @@ -1015,7 +1015,7 @@ void AMC::UpdateMotors(void) } else if(CVT.ActuatorArmed.Armed) { - ActuatorOutputs.Timestamp = PX4LIB_GetPX4TimeUs(); + CFE_SB_TimeStampMsg((CFE_SB_MsgPtr_t)& ActuatorOutputs); /* Do mixing */ ActuatorOutputs.Count = MixerObject.mix(ActuatorOutputs.Output, 0, 0); @@ -1046,7 +1046,6 @@ void AMC::UpdateMotors(void) SetMotorOutputs(pwm); } - CFE_SB_TimeStampMsg((CFE_SB_Msg_t*)&ActuatorOutputs); CFE_SB_SendMsg((CFE_SB_Msg_t*)&ActuatorOutputs); } else diff --git a/apps/amc/fsw/src/amc_msg.h b/apps/amc/fsw/src/amc_msg.h index e058a129c..be5aebae0 100644 --- a/apps/amc/fsw/src/amc_msg.h +++ b/apps/amc/fsw/src/amc_msg.h @@ -152,7 +152,7 @@ typedef struct \brief Count of failed commands */ uint8 usCmdErrCnt; - uint64 Timestamp; + CFE_TIME_SysTime_t Timestamp; uint32 Count; float Output[PX4_ACTUATOR_OUTPUTS_MAX]; } AMC_HkTlm_t; diff --git a/apps/px4lib/fsw/public_inc/px4_msgs.h b/apps/px4lib/fsw/public_inc/px4_msgs.h index b84f52187..b57747c75 100644 --- a/apps/px4lib/fsw/public_inc/px4_msgs.h +++ b/apps/px4lib/fsw/public_inc/px4_msgs.h @@ -600,7 +600,6 @@ typedef struct typedef struct { uint8 TlmHeader[CFE_SB_TLM_HDR_SIZE]; - uint64 Timestamp; uint32 Count; float Output[PX4_ACTUATOR_OUTPUTS_MAX]; } PX4_ActuatorOutputsMsg_t; From 46dccf47cfddff88e6ba845eb3630eca53a94209 Mon Sep 17 00:00:00 2001 From: Mathew Benson Date: Wed, 24 Feb 2021 11:49:20 -0600 Subject: [PATCH 145/370] Removed timestamp from PX4_DistanceSensorMsg_t and PX4_EstimatorStatusMsg_t --- apps/pe/fsw/src/sensors/dist.cpp | 3 +- apps/px4lib/fsw/public_inc/px4_msgs.h | 43 +++++++++++++-------------- apps/vm/fsw/src/vm_app.cpp | 2 +- 3 files changed, 23 insertions(+), 25 deletions(-) diff --git a/apps/pe/fsw/src/sensors/dist.cpp b/apps/pe/fsw/src/sensors/dist.cpp index 4e78caa26..0abc4b3e7 100644 --- a/apps/pe/fsw/src/sensors/dist.cpp +++ b/apps/pe/fsw/src/sensors/dist.cpp @@ -32,6 +32,7 @@ *****************************************************************************/ #include "../pe_app.h" +#include "cfs_utils.h" void PE::distInit() { @@ -93,7 +94,7 @@ int32 PE::distMeasure(math::Vector1F &y) y.Zero(); m_DistStats.update(d); y[0] = (d + ConfigTblPtr->DIST_OFF_Z) * cosf(m_Euler[0]) * cosf(m_Euler[1]); - m_TimeLastDist = m_DistanceSensor.Timestamp; + m_TimeLastDist = CFE_SB_GetMsgTimeInMicros((CFE_SB_MsgPtr_t)&m_DistanceSensor); distMeasure_Exit_Tag: return Status; diff --git a/apps/px4lib/fsw/public_inc/px4_msgs.h b/apps/px4lib/fsw/public_inc/px4_msgs.h index b57747c75..2dc46ae33 100644 --- a/apps/px4lib/fsw/public_inc/px4_msgs.h +++ b/apps/px4lib/fsw/public_inc/px4_msgs.h @@ -590,18 +590,18 @@ typedef struct typedef struct { - uint8 TlmHeader[CFE_SB_TLM_HDR_SIZE]; + uint8 TlmHeader[CFE_SB_TLM_HDR_SIZE]; uint64 Timestamp; uint64 SampleTime; - float Control[PX4_ACTUATOR_CONTROL_COUNT]; + float Control[PX4_ACTUATOR_CONTROL_COUNT]; } PX4_ActuatorControlsMsg_t; typedef struct { - uint8 TlmHeader[CFE_SB_TLM_HDR_SIZE]; + uint8 TlmHeader[CFE_SB_TLM_HDR_SIZE]; uint32 Count; - float Output[PX4_ACTUATOR_OUTPUTS_MAX]; + float Output[PX4_ACTUATOR_OUTPUTS_MAX]; } PX4_ActuatorOutputsMsg_t; typedef struct @@ -616,15 +616,15 @@ typedef struct typedef struct { - uint8 TlmHeader[CFE_SB_TLM_HDR_SIZE]; - float Voltage; /* V */ - float VoltageFiltered; /* V */ - float Current; /* A */ - float CurrentFiltered; /* A */ - float Discharged; /* mAh */ - float Remaining; - float Scale; - int32 CellCount; + uint8 TlmHeader[CFE_SB_TLM_HDR_SIZE]; + float Voltage; /* V */ + float VoltageFiltered; /* V */ + float Current; /* A */ + float CurrentFiltered; /* A */ + float Discharged; /* mAh */ + float Remaining; + float Scale; + int32 CellCount; boolean Connected; PX4_BatteryWarningSeverity_t Warning; } PX4_BatteryStatusMsg_t; @@ -633,7 +633,6 @@ typedef struct typedef struct { uint8 TlmHeader[CFE_SB_TLM_HDR_SIZE]; - uint64 Timestamp; PX4_CommanderMainState_t MainState; } PX4_CommanderStateMsg_t; @@ -681,7 +680,6 @@ typedef struct typedef struct { uint8 TlmHeader[CFE_SB_TLM_HDR_SIZE]; - uint64 Timestamp; float MinDistance; float MaxDistance; float CurrentDistance; @@ -694,18 +692,17 @@ typedef struct typedef struct { - uint8 TlmHeader[CFE_SB_TLM_HDR_SIZE]; - uint64 Timestamp; - float States[PX4_ESTIMATOR_STATES_MAX]; + uint8 TlmHeader[CFE_SB_TLM_HDR_SIZE]; + float States[PX4_ESTIMATOR_STATES_MAX]; uint32 NumStates; - float Vibe[PX4_ESTIMATOR_VIBE_MAX]; - float Covariances[PX4_ESTIMATOR_COVARIANCES_MAX]; + float Vibe[PX4_ESTIMATOR_VIBE_MAX]; + float Covariances[PX4_ESTIMATOR_COVARIANCES_MAX]; uint16 GpsCheckFailFlags; uint16 ControlModeFlags; uint16 FilterFaultFlags; - uint8 NanFlags; - uint8 HealthFlags; - uint8 TimeoutFlags; + uint8 NanFlags; + uint8 HealthFlags; + uint8 TimeoutFlags; } PX4_EstimatorStatusMsg_t; typedef struct diff --git a/apps/vm/fsw/src/vm_app.cpp b/apps/vm/fsw/src/vm_app.cpp index f108f5092..c579e7484 100644 --- a/apps/vm/fsw/src/vm_app.cpp +++ b/apps/vm/fsw/src/vm_app.cpp @@ -519,7 +519,7 @@ int32 VM::RcvSchPipeMsg(int32 iBlocking) CFE_SB_SetMsgTime((CFE_SB_MsgPtr_t)&ActuatorArmedMsg, timestamp); VehicleStatusMsg.Timestamp = timestamp2; - VehicleManagerStateMsg.Timestamp = timestamp2; + CFE_SB_SetMsgTime((CFE_SB_MsgPtr_t)&VehicleManagerStateMsg, timestamp); VehicleControlModeMsg.Timestamp = timestamp2; /* Execute all stateful behavior. */ From dcc5be76e8f4fd7858215881b84c1177d058a961 Mon Sep 17 00:00:00 2001 From: Mathew Benson Date: Wed, 24 Feb 2021 11:58:38 -0600 Subject: [PATCH 146/370] Removed timestamp from PX4_HomePositionMsg_t --- apps/nav/fsw/src/nav_app.cpp | 4 ++-- apps/nav/fsw/src/nav_app.h | 14 +++++++------- apps/px4lib/fsw/public_inc/px4_msgs.h | 1 - apps/vm/fsw/src/vm_app.cpp | 23 ++++++----------------- apps/vm/fsw/src/vm_app.h | 13 ------------- 5 files changed, 15 insertions(+), 40 deletions(-) diff --git a/apps/nav/fsw/src/nav_app.cpp b/apps/nav/fsw/src/nav_app.cpp index 0b1b03d0e..9be14b312 100644 --- a/apps/nav/fsw/src/nav_app.cpp +++ b/apps/nav/fsw/src/nav_app.cpp @@ -766,7 +766,7 @@ int32 NAV::Execute() PX4_SetpointType_t::PX4_SETPOINT_TYPE_TAKEOFF; /* Check if home position is valid, set current yaw and previous valid accordingly */ - if (CVT.HomePositionMsg.Timestamp > 0) + if (!CFE_SB_IsMsgTimeZero((CFE_SB_MsgPtr_t)&CVT.HomePositionMsg)) { TakeoffTripletMsg.Current.Yaw = CVT.VehicleCommandMsg.Param4; @@ -2066,7 +2066,7 @@ float NAV::GetTimeInside(NAV_MissionItem_t * Item) osalbool NAV::HomePositionValid() { - osalbool HomePosValidFlag = (CVT.HomePositionMsg.Timestamp > 0); + osalbool HomePosValidFlag = !CFE_SB_IsMsgTimeZero((CFE_SB_MsgPtr_t)&CVT.HomePositionMsg); return HomePosValidFlag; } diff --git a/apps/nav/fsw/src/nav_app.h b/apps/nav/fsw/src/nav_app.h index d505d7de0..b28fafc60 100644 --- a/apps/nav/fsw/src/nav_app.h +++ b/apps/nav/fsw/src/nav_app.h @@ -79,21 +79,21 @@ extern "C" typedef struct { /** \brief The home position message */ - PX4_HomePositionMsg_t HomePositionMsg; + PX4_HomePositionMsg_t HomePositionMsg; /** \brief The mission message */ - PX4_MissionMsg_t MissionMsg; + PX4_MissionMsg_t MissionMsg; /** \brief The position message from GPS */ - PX4_VehicleGpsPositionMsg_t VehicleGpsPositionMsg; + PX4_VehicleGpsPositionMsg_t VehicleGpsPositionMsg; /** \brief The global position message */ PX4_VehicleGlobalPositionMsg_t VehicleGlobalPosition; /** \brief The vehicle status message */ - PX4_VehicleStatusMsg_t VehicleStatusMsg; + PX4_VehicleStatusMsg_t VehicleStatusMsg; /** \brief The land detection message */ - PX4_VehicleLandDetectedMsg_t VehicleLandDetectedMsg; + PX4_VehicleLandDetectedMsg_t VehicleLandDetectedMsg; /** \brief The vehicle local position message */ - PX4_VehicleLocalPositionMsg_t VehicleLocalPositionMsg; + PX4_VehicleLocalPositionMsg_t VehicleLocalPositionMsg; /** \brief The vehicle command message */ - PX4_VehicleCommandMsg_t VehicleCommandMsg; + PX4_VehicleCommandMsg_t VehicleCommandMsg; }NAV_CurrentValueTable_t; /** diff --git a/apps/px4lib/fsw/public_inc/px4_msgs.h b/apps/px4lib/fsw/public_inc/px4_msgs.h index 2dc46ae33..9bdff5cdc 100644 --- a/apps/px4lib/fsw/public_inc/px4_msgs.h +++ b/apps/px4lib/fsw/public_inc/px4_msgs.h @@ -722,7 +722,6 @@ typedef struct typedef struct { uint8 TlmHeader[CFE_SB_TLM_HDR_SIZE]; - uint64 Timestamp; double Lat; double Lon; float Alt; diff --git a/apps/vm/fsw/src/vm_app.cpp b/apps/vm/fsw/src/vm_app.cpp index c579e7484..f65b9ff1d 100644 --- a/apps/vm/fsw/src/vm_app.cpp +++ b/apps/vm/fsw/src/vm_app.cpp @@ -1132,19 +1132,6 @@ void VM::SendActuatorArmedMsg() -/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ -/* */ -/* Send HomePositionMsg */ -/* */ -/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ -void VM::SendHomePositionMsg() -{ - CFE_SB_TimeStampMsg((CFE_SB_Msg_t*) &HomePositionMsg); - CFE_SB_SendMsg((CFE_SB_Msg_t*) &HomePositionMsg); -} - - - /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ /* */ /* Send VehicleManagerStateMsg */ @@ -1396,7 +1383,7 @@ void VM::SetHomePosition() DistBottom = VehicleLocalPositionMsg.DistBottom; } - HomePositionMsg.Timestamp = TimeNow(); + CFE_SB_TimeStampMsg((CFE_SB_Msg_t*) &HomePositionMsg); HomePositionMsg.Lat = VehicleGlobalPositionMsg.Lat; HomePositionMsg.Lon = VehicleGlobalPositionMsg.Lon; HomePositionMsg.Alt = VehicleGlobalPositionMsg.Alt - DistBottom - ConfigTblPtr->HOME_POS_ALT_PADDING; @@ -1415,7 +1402,7 @@ void VM::SetHomePosition() "Home Position set. [Lat -> %.6f | Lon -> %.6f | Alt ->%.6f]", HomePositionMsg.Lat, HomePositionMsg.Lon, HomePositionMsg.Alt); - SendHomePositionMsg(); + CFE_SB_SendMsg((CFE_SB_Msg_t*) &HomePositionMsg); } else { @@ -1830,7 +1817,8 @@ void VM::Execute() (void) CFE_EVS_SendEvent(VM_RC_KIL_SWTCH_INFO_EID, CFE_EVS_INFORMATION, "Killswitch engaged "); ActuatorArmedMsg.ManualLockdown = true; - SendActuatorArmedMsg(); + CFE_SB_TimeStampMsg((CFE_SB_Msg_t*) &ActuatorArmedMsg); + CFE_SB_SendMsg((CFE_SB_Msg_t*) &ActuatorArmedMsg); } } else if(ManualControlSetpointMsg.KillSwitch == PX4_SWITCH_POS_OFF) @@ -1840,7 +1828,8 @@ void VM::Execute() (void) CFE_EVS_SendEvent(VM_RC_KIL_SWTCH_INFO_EID, CFE_EVS_INFORMATION, "killswitch disengaged "); ActuatorArmedMsg.ManualLockdown = false; - SendActuatorArmedMsg(); + CFE_SB_TimeStampMsg((CFE_SB_Msg_t*) &ActuatorArmedMsg); + CFE_SB_SendMsg((CFE_SB_Msg_t*) &ActuatorArmedMsg); } } diff --git a/apps/vm/fsw/src/vm_app.h b/apps/vm/fsw/src/vm_app.h index b156dbbe9..9b7449e65 100644 --- a/apps/vm/fsw/src/vm_app.h +++ b/apps/vm/fsw/src/vm_app.h @@ -408,19 +408,6 @@ class VM : ParamsConsumer *************************************************************************/ void SendActuatorArmedMsg(void); - /************************************************************************/ - /** \brief Sends the HomePositionMsg message. - ** - ** \par Description - ** This function publishes the HomePositionMsg message containing - ** - ** - ** \par Assumptions, External Events, and Notes: - ** None - ** - *************************************************************************/ - void SendHomePositionMsg(void); - /************************************************************************/ /** \brief Sends the VehicleManagerStateMsg message. ** From a97dd58be916b78cb9ec2be177fa691d2b1545a8 Mon Sep 17 00:00:00 2001 From: Mathew Benson Date: Wed, 24 Feb 2021 11:59:35 -0600 Subject: [PATCH 147/370] Removed timestamp from PX4_HomePositionMsg_t --- apps/px4lib/fsw/public_inc/px4_msgs.h | 1 - 1 file changed, 1 deletion(-) diff --git a/apps/px4lib/fsw/public_inc/px4_msgs.h b/apps/px4lib/fsw/public_inc/px4_msgs.h index 9bdff5cdc..00efcd095 100644 --- a/apps/px4lib/fsw/public_inc/px4_msgs.h +++ b/apps/px4lib/fsw/public_inc/px4_msgs.h @@ -1306,7 +1306,6 @@ typedef struct typedef struct { uint8 TlmHeader[CFE_SB_TLM_HDR_SIZE]; - uint64 Timestamp; float gyro_offset_0[3]; float gyro_scale_0[3]; float gyro_offset_1[3]; From 75d9f7d2fc0790131c044a3d663a4136dc31835a Mon Sep 17 00:00:00 2001 From: Mathew Benson Date: Wed, 24 Feb 2021 12:03:15 -0600 Subject: [PATCH 148/370] Removed timestamp from PX4_VehicleStatusMsg_t --- apps/nav/fsw/src/nav_app.cpp | 2 +- apps/px4lib/fsw/public_inc/px4_msgs.h | 15 +++++++-------- apps/vm/fsw/src/vm_app.cpp | 2 +- 3 files changed, 9 insertions(+), 10 deletions(-) diff --git a/apps/nav/fsw/src/nav_app.cpp b/apps/nav/fsw/src/nav_app.cpp index 9be14b312..65fc0cce5 100644 --- a/apps/nav/fsw/src/nav_app.cpp +++ b/apps/nav/fsw/src/nav_app.cpp @@ -661,7 +661,7 @@ int32 NAV::Execute() uint64 Now2 = 0; /* Set vehicle arming state */ - if (CVT.VehicleStatusMsg.Timestamp != 0 && !VehicleStatusUpdateOnce) + if (!CFE_SB_IsMsgTimeZero((CFE_SB_MsgPtr_t)&CVT.VehicleStatusMsg) && !VehicleStatusUpdateOnce) { CVT.VehicleStatusMsg.ArmingState = PX4_ArmingState_t::PX4_ARMING_STATE_STANDBY; VehicleStatusUpdateOnce = TRUE; diff --git a/apps/px4lib/fsw/public_inc/px4_msgs.h b/apps/px4lib/fsw/public_inc/px4_msgs.h index 00efcd095..dab0923e4 100644 --- a/apps/px4lib/fsw/public_inc/px4_msgs.h +++ b/apps/px4lib/fsw/public_inc/px4_msgs.h @@ -1278,13 +1278,12 @@ typedef struct typedef struct { - uint8 TlmHeader[CFE_SB_TLM_HDR_SIZE]; - uint64 Timestamp; - uint32 SystemID; - uint32 ComponentID; - uint32 OnboardControlSensorsPresent; - uint32 OnboardControlSensorsEnabled; - uint32 OnboardControlSensorsHealth; + uint8 TlmHeader[CFE_SB_TLM_HDR_SIZE]; + uint32 SystemID; + uint32 ComponentID; + uint32 OnboardControlSensorsPresent; + uint32 OnboardControlSensorsEnabled; + uint32 OnboardControlSensorsHealth; PX4_NavigationState_t NavState; PX4_ArmingState_t ArmingState; PX4_HilState_t HilState; @@ -1297,7 +1296,7 @@ typedef struct boolean RcSignalLost; PX4_RcInMode_t RcInputMode; boolean DataLinkLost; - uint8 DataLinkLostCounter; + uint8 DataLinkLostCounter; boolean EngineFailure; boolean EngineFailureCmd; boolean MissionFailure; diff --git a/apps/vm/fsw/src/vm_app.cpp b/apps/vm/fsw/src/vm_app.cpp index f65b9ff1d..2b3a53094 100644 --- a/apps/vm/fsw/src/vm_app.cpp +++ b/apps/vm/fsw/src/vm_app.cpp @@ -518,7 +518,7 @@ int32 VM::RcvSchPipeMsg(int32 iBlocking) timestamp2 = PX4LIB_GetPX4TimeUs(); CFE_SB_SetMsgTime((CFE_SB_MsgPtr_t)&ActuatorArmedMsg, timestamp); - VehicleStatusMsg.Timestamp = timestamp2; + CFE_SB_SetMsgTime((CFE_SB_MsgPtr_t)&VehicleStatusMsg, timestamp); CFE_SB_SetMsgTime((CFE_SB_MsgPtr_t)&VehicleManagerStateMsg, timestamp); VehicleControlModeMsg.Timestamp = timestamp2; From 383ed91e738ddc72a52660f2400157459d163347 Mon Sep 17 00:00:00 2001 From: Mathew Benson Date: Wed, 24 Feb 2021 12:06:18 -0600 Subject: [PATCH 149/370] Removed timestamp from PX4_VehicleRatesSetpointMsg_t --- apps/mac/fsw/src/mac_app.cpp | 7 ++----- apps/px4lib/fsw/public_inc/px4_msgs.h | 1 - 2 files changed, 2 insertions(+), 6 deletions(-) diff --git a/apps/mac/fsw/src/mac_app.cpp b/apps/mac/fsw/src/mac_app.cpp index de3d765b9..486c41319 100644 --- a/apps/mac/fsw/src/mac_app.cpp +++ b/apps/mac/fsw/src/mac_app.cpp @@ -866,14 +866,12 @@ void MAC::RunController(void) ControlAttitude(dt); /* Publish attitude rates setpoint */ - CVT.VRatesSp.Timestamp = PX4LIB_GetPX4TimeUs(); + CFE_SB_TimeStampMsg((CFE_SB_MsgPtr_t)&CVT.VRatesSp); CVT.VRatesSp.Roll = m_AngularRatesSetpoint[0]; CVT.VRatesSp.Pitch = m_AngularRatesSetpoint[1]; CVT.VRatesSp.Yaw = m_AngularRatesSetpoint[2]; CVT.VRatesSp.Thrust = m_ThrustSp; - CVT.VRatesSp.Timestamp = PX4LIB_GetPX4TimeUs(); - CFE_SB_TimeStampMsg((CFE_SB_Msg_t*)&CVT.VRatesSp); CFE_SB_SendMsg((CFE_SB_Msg_t*)&CVT.VRatesSp); } else @@ -887,13 +885,12 @@ void MAC::RunController(void) m_ThrustSp = fmin(CVT.ManualControlSp.Z, MANUAL_THROTTLE_MAX_MULTICOPTER); /* Publish attitude rates setpoint */ - CVT.VRatesSp.Timestamp = PX4LIB_GetPX4TimeUs(); + CFE_SB_TimeStampMsg((CFE_SB_MsgPtr_t)&CVT.VRatesSp); CVT.VRatesSp.Roll = m_AngularRatesSetpoint[0]; CVT.VRatesSp.Pitch = m_AngularRatesSetpoint[1]; CVT.VRatesSp.Yaw = m_AngularRatesSetpoint[2]; CVT.VRatesSp.Thrust = m_ThrustSp; - CFE_SB_TimeStampMsg((CFE_SB_Msg_t*)&CVT.VRatesSp); CFE_SB_SendMsg((CFE_SB_Msg_t*)&CVT.VRatesSp); } else diff --git a/apps/px4lib/fsw/public_inc/px4_msgs.h b/apps/px4lib/fsw/public_inc/px4_msgs.h index dab0923e4..c6bab6b99 100644 --- a/apps/px4lib/fsw/public_inc/px4_msgs.h +++ b/apps/px4lib/fsw/public_inc/px4_msgs.h @@ -1269,7 +1269,6 @@ typedef struct typedef struct { uint8 TlmHeader[CFE_SB_TLM_HDR_SIZE]; - uint64 Timestamp; float Roll; float Pitch; float Yaw; From 7f163b641a5fb8217e18a12eefe8bb60030f4e26 Mon Sep 17 00:00:00 2001 From: Mathew Benson Date: Wed, 24 Feb 2021 12:09:23 -0600 Subject: [PATCH 150/370] Removed timestamp from PX4_VehicleLocalPositionSetpointMsg_t --- apps/mpc/fsw/src/mpc_app.cpp | 2 +- apps/px4lib/fsw/public_inc/px4_msgs.h | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/apps/mpc/fsw/src/mpc_app.cpp b/apps/mpc/fsw/src/mpc_app.cpp index ae1b27742..144f6cf9a 100644 --- a/apps/mpc/fsw/src/mpc_app.cpp +++ b/apps/mpc/fsw/src/mpc_app.cpp @@ -1191,7 +1191,7 @@ void MPC::Execute(void) DoControl(dt); /* Fill local position, velocity and thrust setpoint */ - m_VehicleLocalPositionSetpointMsg.Timestamp = PX4LIB_GetPX4TimeUs(); + CFE_SB_TimeStampMsg((CFE_SB_MsgPtr_t)&m_VehicleLocalPositionSetpointMsg); m_VehicleLocalPositionSetpointMsg.X = m_PositionSetpoint[0]; m_VehicleLocalPositionSetpointMsg.Y = m_PositionSetpoint[1]; m_VehicleLocalPositionSetpointMsg.Z = m_PositionSetpoint[2]; diff --git a/apps/px4lib/fsw/public_inc/px4_msgs.h b/apps/px4lib/fsw/public_inc/px4_msgs.h index c6bab6b99..1010387b7 100644 --- a/apps/px4lib/fsw/public_inc/px4_msgs.h +++ b/apps/px4lib/fsw/public_inc/px4_msgs.h @@ -1253,7 +1253,6 @@ typedef struct typedef struct { uint8 TlmHeader[CFE_SB_TLM_HDR_SIZE]; - uint64 Timestamp; float X; float Y; float Z; From 092534234d436e2002c27bd1b16e9a770b059842 Mon Sep 17 00:00:00 2001 From: Mathew Benson Date: Wed, 24 Feb 2021 12:21:23 -0600 Subject: [PATCH 151/370] Removed additional timestamps --- apps/cfs_lib/fsw/public_inc/cfs_utils.h | 1 + apps/cfs_lib/fsw/src/cfs_utils.c | 9 +++++++++ apps/ld/fsw/src/ld_app.cpp | 4 ++-- apps/mpc/fsw/src/mpc_app.cpp | 3 ++- apps/pe/fsw/src/pe_app.cpp | 5 +++-- apps/px4lib/fsw/public_inc/px4_msgs.h | 1 - apps/vm/fsw/src/vm_Navigation.cpp | 6 +++--- 7 files changed, 20 insertions(+), 9 deletions(-) diff --git a/apps/cfs_lib/fsw/public_inc/cfs_utils.h b/apps/cfs_lib/fsw/public_inc/cfs_utils.h index 4dd32a45c..7d92bac63 100644 --- a/apps/cfs_lib/fsw/public_inc/cfs_utils.h +++ b/apps/cfs_lib/fsw/public_inc/cfs_utils.h @@ -262,6 +262,7 @@ boolean CFE_TIME_IsTimeZero(CFE_TIME_SysTime_t time); void CFE_TIME_SetTimeEqual(CFE_TIME_SysTime_t *left, CFE_TIME_SysTime_t right); CFE_TIME_SysTime_t CFE_TIME_ElapsedTime(CFE_TIME_SysTime_t sinceTime); uint64 CFE_TIME_ElapsedTimeInMicros(CFE_TIME_SysTime_t sinceTime); +uint64 CFE_SB_ElapsedMsgTimeInMicros(const CFE_SB_MsgPtr_t sinceMsg); void CFE_SB_CopyMsgTime(CFE_SB_MsgPtr_t dest, const CFE_SB_MsgPtr_t src); boolean CFE_SB_IsMsgTimeZero(const CFE_SB_MsgPtr_t msg); uint64 CFE_SB_GetMsgTimeInMicros(const CFE_SB_MsgPtr_t msg); diff --git a/apps/cfs_lib/fsw/src/cfs_utils.c b/apps/cfs_lib/fsw/src/cfs_utils.c index d113019b7..ed3b5d29b 100644 --- a/apps/cfs_lib/fsw/src/cfs_utils.c +++ b/apps/cfs_lib/fsw/src/cfs_utils.c @@ -636,6 +636,15 @@ uint64 CFE_TIME_ElapsedTimeInMicros(CFE_TIME_SysTime_t sinceTime) } +uint64 CFE_SB_ElapsedMsgTimeInMicros(const CFE_SB_MsgPtr_t sinceMsg) +{ + CFE_TIME_SysTime_t msgTime; + + msgTime = CFE_SB_GetMsgTime(sinceMsg); + + return CFE_TIME_ElapsedTimeInMicros(msgTime); +} + void CFE_SB_CopyMsgTime(CFE_SB_MsgPtr_t dest, const CFE_SB_MsgPtr_t src) { diff --git a/apps/ld/fsw/src/ld_app.cpp b/apps/ld/fsw/src/ld_app.cpp index e1f8b7274..222e4cdcf 100644 --- a/apps/ld/fsw/src/ld_app.cpp +++ b/apps/ld/fsw/src/ld_app.cpp @@ -1020,9 +1020,9 @@ float LD::MaxAltitude() osalbool LD::AltitudeLock() { osalbool result = FALSE; - uint64 dt = PX4LIB_GetPX4TimeUs() - CVT.VehicleLocalPositionMsg.Timestamp; + uint64 dt = CFE_SB_ElapsedMsgTimeInMicros((CFE_SB_MsgPtr_t)&CVT.VehicleLocalPositionMsg); - result = CVT.VehicleLocalPositionMsg.Timestamp != 0 && + result = !CFE_SB_IsMsgTimeZero((CFE_SB_MsgPtr_t)&CVT.VehicleLocalPositionMsg) && dt < LD_LOCAL_POSITION_TIMEOUT && CVT.VehicleLocalPositionMsg.Z_Valid; diff --git a/apps/mpc/fsw/src/mpc_app.cpp b/apps/mpc/fsw/src/mpc_app.cpp index 144f6cf9a..c3686cf03 100644 --- a/apps/mpc/fsw/src/mpc_app.cpp +++ b/apps/mpc/fsw/src/mpc_app.cpp @@ -20,6 +20,7 @@ #include #include "px4lib_msgids.h" #include "mpc_tbldefs.h" +#include "cfs_utils.h" /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ /* */ @@ -1314,7 +1315,7 @@ void MPC::UpdateRef(void) void MPC::UpdateVelocityDerivative(float dt) { /* Update velocity derivative independent of the current flight mode */ - if (m_VehicleLocalPositionMsg.Timestamp == 0) + if (CFE_SB_IsMsgTimeZero((CFE_SB_MsgPtr_t)&m_VehicleLocalPositionMsg)) { return; } diff --git a/apps/pe/fsw/src/pe_app.cpp b/apps/pe/fsw/src/pe_app.cpp index 99276a98f..f7b1a6e93 100644 --- a/apps/pe/fsw/src/pe_app.cpp +++ b/apps/pe/fsw/src/pe_app.cpp @@ -1320,7 +1320,9 @@ void PE::SendVehicleLocalPositionMsg() if(data_valid) { - m_VehicleLocalPositionMsg.Timestamp = m_Timestamp; + CFE_SB_TimeStampMsg((CFE_SB_Msg_t*)&m_VehicleLocalPositionMsg); + /* TODO: Set the time from m_Timestamp */ + //m_VehicleLocalPositionMsg.Timestamp = m_Timestamp; m_VehicleLocalPositionMsg.XY_Valid = m_XyEstValid; m_VehicleLocalPositionMsg.Z_Valid = m_ZEstValid; m_VehicleLocalPositionMsg.V_XY_Valid = m_XyEstValid; @@ -1345,7 +1347,6 @@ void PE::SendVehicleLocalPositionMsg() m_VehicleLocalPositionMsg.EpH = eph; m_VehicleLocalPositionMsg.EpV = epv; - CFE_SB_TimeStampMsg((CFE_SB_Msg_t*)&m_VehicleLocalPositionMsg); CFE_SB_SendMsg((CFE_SB_Msg_t*)&m_VehicleLocalPositionMsg); } else diff --git a/apps/px4lib/fsw/public_inc/px4_msgs.h b/apps/px4lib/fsw/public_inc/px4_msgs.h index 1010387b7..5b598d437 100644 --- a/apps/px4lib/fsw/public_inc/px4_msgs.h +++ b/apps/px4lib/fsw/public_inc/px4_msgs.h @@ -1210,7 +1210,6 @@ typedef struct typedef struct { uint8 TlmHeader[CFE_SB_TLM_HDR_SIZE]; - uint64 Timestamp; uint64 RefTimestamp; double RefLat; double RefLon; diff --git a/apps/vm/fsw/src/vm_Navigation.cpp b/apps/vm/fsw/src/vm_Navigation.cpp index 9b713f3d5..59e1699ac 100644 --- a/apps/vm/fsw/src/vm_Navigation.cpp +++ b/apps/vm/fsw/src/vm_Navigation.cpp @@ -419,7 +419,7 @@ osalbool VM_Navigation::AllMessagesReceivedAtLeastOnce() osalbool SensorAccelMsgReady = !CFE_SB_IsMsgTimeZero((CFE_SB_MsgPtr_t)&App.SensorAccelMsg); osalbool SensorCombinedMsgReady = !CFE_SB_IsMsgTimeZero((CFE_SB_MsgPtr_t)&App.SensorCombinedMsg); osalbool VehicleAttitudeMsgReady = (App.VehicleAttitudeMsg.Timestamp > 0); - osalbool VehicleLocalPositionMsgReady = (App.VehicleLocalPositionMsg.Timestamp > 0); + osalbool VehicleLocalPositionMsgReady = !CFE_SB_IsMsgTimeZero((CFE_SB_MsgPtr_t)&App.VehicleLocalPositionMsg); osalbool VehicleLandDetectedMsgReady = (App.VehicleLandDetectedMsg.Timestamp > 0); osalbool VehicleGlobalPositionMsgReady = (App.VehicleGlobalPositionMsg.Timestamp > 0); osalbool VehicleGpsPositionMsgReady = (App.VehicleGpsPositionMsg.Timestamp > 0); @@ -477,7 +477,7 @@ osalbool VM_Navigation::IsTransitionAltCtlValid(void) PX4_NavigationState_t Current_NavState = App.VehicleStatusMsg.NavState; /* Altitude Hold Requirement Validation */ - if (App.VehicleLocalPositionMsg.Timestamp > 0 + if (!CFE_SB_IsMsgTimeZero((CFE_SB_MsgPtr_t)&App.VehicleLocalPositionMsg) && App.VehicleLocalPositionMsg.Z_Valid && App.VehicleLocalPositionMsg.V_Z_Valid) { @@ -507,7 +507,7 @@ osalbool VM_Navigation::IsTransitionPosCtlValid(void) PX4_NavigationState_t Current_NavState = App.VehicleStatusMsg.NavState; /* Position Hold Requirement Validation */ - if (App.VehicleLocalPositionMsg.Timestamp > 0 + if (!CFE_SB_IsMsgTimeZero((CFE_SB_MsgPtr_t)&App.VehicleLocalPositionMsg) && App.VehicleLocalPositionMsg.XY_Valid && App.VehicleLocalPositionMsg.V_XY_Valid && App.VehicleLocalPositionMsg.Z_Valid From 2d6fd224d39f4e6b0e3fefeb88b00b03a7a34839 Mon Sep 17 00:00:00 2001 From: Mathew Benson Date: Wed, 24 Feb 2021 12:25:02 -0600 Subject: [PATCH 152/370] Removed additional timestamps --- apps/ld/fsw/src/ld_app.cpp | 2 +- apps/px4lib/fsw/public_inc/px4_msgs.h | 18 ++++++++---------- apps/vm/fsw/src/vm_Navigation.cpp | 2 +- 3 files changed, 10 insertions(+), 12 deletions(-) diff --git a/apps/ld/fsw/src/ld_app.cpp b/apps/ld/fsw/src/ld_app.cpp index 222e4cdcf..47b987036 100644 --- a/apps/ld/fsw/src/ld_app.cpp +++ b/apps/ld/fsw/src/ld_app.cpp @@ -1130,7 +1130,7 @@ void LD::Execute() (VehicleLandDetectedMsg.GroundContact != Ground) || (fabsf(VehicleLandDetectedMsg.AltMax - prev_altitude_max) > FLT_EPSILON)) { - VehicleLandDetectedMsg.Timestamp = PX4LIB_GetPX4TimeUs(); + CFE_SB_TimeStampMsg((CFE_SB_MsgPtr_t)&VehicleLandDetectedMsg); VehicleLandDetectedMsg.AltMax = altitude_max; VehicleLandDetectedMsg.Freefall = Freefall; VehicleLandDetectedMsg.Landed = Land; diff --git a/apps/px4lib/fsw/public_inc/px4_msgs.h b/apps/px4lib/fsw/public_inc/px4_msgs.h index 5b598d437..610fbb95d 100644 --- a/apps/px4lib/fsw/public_inc/px4_msgs.h +++ b/apps/px4lib/fsw/public_inc/px4_msgs.h @@ -913,20 +913,20 @@ typedef struct typedef struct { - uint8 TlmHeader[CFE_SB_TLM_HDR_SIZE]; - uint64 Timestamp; - uint64 TimestampLastValid; - float Channels[PX4_RC_INPUT_MAX_CHANNELS]; - uint32 FrameDropCount; - uint8 ChannelCount; + uint8 TlmHeader[CFE_SB_TLM_HDR_SIZE]; + uint64 Timestamp; + uint64 TimestampLastValid; + float Channels[PX4_RC_INPUT_MAX_CHANNELS]; + uint32 FrameDropCount; + uint8 ChannelCount; PX4_RcChannelFunction_t Function[PX4_RC_CHANNELS_FUNCTION_COUNT]; - uint8 RSSI; + uint8 RSSI; boolean SignalLost; } PX4_RcChannelsMsg_t; typedef struct { - uint8 TlmHeader[CFE_SB_TLM_HDR_SIZE]; + uint8 TlmHeader[CFE_SB_TLM_HDR_SIZE]; boolean SafetySwitchAvailable; boolean SafetyOff; } PX4_SafetyMsg_t; @@ -1086,7 +1086,6 @@ typedef struct typedef struct { uint8 TlmHeader[CFE_SB_TLM_HDR_SIZE]; - uint64 Timestamp; uint16 Command; PX4_VehicleCommandResult_t Result; } PX4_VehicleCommandAckMsg_t; @@ -1200,7 +1199,6 @@ typedef struct typedef struct { uint8 TlmHeader[CFE_SB_TLM_HDR_SIZE]; - uint64 Timestamp; float AltMax; boolean Landed; boolean Freefall; diff --git a/apps/vm/fsw/src/vm_Navigation.cpp b/apps/vm/fsw/src/vm_Navigation.cpp index 59e1699ac..6c47d125e 100644 --- a/apps/vm/fsw/src/vm_Navigation.cpp +++ b/apps/vm/fsw/src/vm_Navigation.cpp @@ -420,7 +420,7 @@ osalbool VM_Navigation::AllMessagesReceivedAtLeastOnce() osalbool SensorCombinedMsgReady = !CFE_SB_IsMsgTimeZero((CFE_SB_MsgPtr_t)&App.SensorCombinedMsg); osalbool VehicleAttitudeMsgReady = (App.VehicleAttitudeMsg.Timestamp > 0); osalbool VehicleLocalPositionMsgReady = !CFE_SB_IsMsgTimeZero((CFE_SB_MsgPtr_t)&App.VehicleLocalPositionMsg); - osalbool VehicleLandDetectedMsgReady = (App.VehicleLandDetectedMsg.Timestamp > 0); + osalbool VehicleLandDetectedMsgReady = !CFE_SB_IsMsgTimeZero((CFE_SB_MsgPtr_t)&App.VehicleLandDetectedMsg); osalbool VehicleGlobalPositionMsgReady = (App.VehicleGlobalPositionMsg.Timestamp > 0); osalbool VehicleGpsPositionMsgReady = (App.VehicleGpsPositionMsg.Timestamp > 0); From 9a9f4075411afeb03dda40ba5444472ed0baaa03 Mon Sep 17 00:00:00 2001 From: cnalley Date: Wed, 24 Feb 2021 18:27:50 +0000 Subject: [PATCH 153/370] Add error checking to read module file. --- apps/sbn/fsw/src/sbn_loader.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/apps/sbn/fsw/src/sbn_loader.c b/apps/sbn/fsw/src/sbn_loader.c index 2f7a2416e..f9d0a8019 100644 --- a/apps/sbn/fsw/src/sbn_loader.c +++ b/apps/sbn/fsw/src/sbn_loader.c @@ -108,9 +108,9 @@ int32 SBN_ReadModuleFile(void) uint32 LineNum = 0; ModuleFile = OS_open(SBN_NONVOL_MODULE_FILENAME, OS_READ_ONLY, 0); - - if(ModuleFile == OS_ERROR) + if(ModuleFile < 0) { + OS_printf("SBN OS_open error %d\n", ModuleFile); return SBN_ERROR; }/* end if */ @@ -120,7 +120,13 @@ int32 SBN_ReadModuleFile(void) /* Parse the lines from the file */ while(1) { - OS_read(ModuleFile, &CurrentChar, 1); + int32 Status; + Status = OS_read(ModuleFile, &CurrentChar, 1); + if(Status != 1) + { + OS_printf("SBN OS_read error %d\n", Status); + return SBN_ERROR; + } if (CurrentChar == '!') { From 26bc72110e3f61616609658b47d2b0d2e84d59be Mon Sep 17 00:00:00 2001 From: Mathew Benson Date: Wed, 24 Feb 2021 12:36:47 -0600 Subject: [PATCH 154/370] Removed timestamp from PX4_ActuatorControlsMsg_t --- apps/mac/fsw/src/mac_app.cpp | 2 +- apps/px4lib/fsw/public_inc/px4_msgs.h | 1 - apps/sens/fsw/src/sens_app.cpp | 7 +++++-- 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/apps/mac/fsw/src/mac_app.cpp b/apps/mac/fsw/src/mac_app.cpp index 486c41319..838447641 100644 --- a/apps/mac/fsw/src/mac_app.cpp +++ b/apps/mac/fsw/src/mac_app.cpp @@ -908,7 +908,7 @@ void MAC::RunController(void) ControlAttitudeRates(dt); /* Publish actuator controls */ - m_ActuatorControls0.Timestamp = PX4LIB_GetPX4TimeUs(); + CFE_SB_TimeStampMsg((CFE_SB_MsgPtr_t)&m_ActuatorControls0); m_ActuatorControls0.SampleTime = CVT.ControlState.Timestamp; m_ActuatorControls0.Control[0] = (isfinite(m_AttControl[0])) ? m_AttControl[0] : 0.0f; m_ActuatorControls0.Control[1] = (isfinite(m_AttControl[1])) ? m_AttControl[1] : 0.0f; diff --git a/apps/px4lib/fsw/public_inc/px4_msgs.h b/apps/px4lib/fsw/public_inc/px4_msgs.h index 610fbb95d..6f6dc131c 100644 --- a/apps/px4lib/fsw/public_inc/px4_msgs.h +++ b/apps/px4lib/fsw/public_inc/px4_msgs.h @@ -591,7 +591,6 @@ typedef struct typedef struct { uint8 TlmHeader[CFE_SB_TLM_HDR_SIZE]; - uint64 Timestamp; uint64 SampleTime; float Control[PX4_ACTUATOR_CONTROL_COUNT]; } PX4_ActuatorControlsMsg_t; diff --git a/apps/sens/fsw/src/sens_app.cpp b/apps/sens/fsw/src/sens_app.cpp index a7acee664..349aacd6d 100644 --- a/apps/sens/fsw/src/sens_app.cpp +++ b/apps/sens/fsw/src/sens_app.cpp @@ -998,7 +998,10 @@ void SENS::ProcessRCInput(void) } /* Copy from mapped manual control to control group 3 */ - ActuatorControls3Msg.Timestamp = CVT.InputRcMsg.LastSignal; + CFE_TIME_SysTime_t lastSignalTime; + lastSignalTime.Seconds = CVT.InputRcMsg.LastSignal / 1000000; + lastSignalTime.Subseconds = CFE_TIME_Micro2SubSecs(CVT.InputRcMsg.LastSignal - (lastSignalTime.Seconds * 1000000)); + CFE_SB_SetMsgTime((CFE_SB_MsgPtr_t)&ActuatorControls3Msg, lastSignalTime); ActuatorControls3Msg.Control[0] = ManualControlSetpointMsg.Y; ActuatorControls3Msg.Control[1] = ManualControlSetpointMsg.X; @@ -1013,7 +1016,7 @@ void SENS::ProcessRCInput(void) SendManualControlSetpointMsg(); /* Publish Actuator Controls 3 message */ - SendActuatorControls3Msg(); + CFE_SB_SendMsg((CFE_SB_Msg_t*)&ActuatorControls3Msg); } CVT.LastInputRcTime = CVT.InputRcMsg.Timestamp; From eb8d1eed1c158df6935dd3a73cf82e48f851fb9a Mon Sep 17 00:00:00 2001 From: Mathew Benson Date: Wed, 24 Feb 2021 12:42:34 -0600 Subject: [PATCH 155/370] Removed timestamp from PX4_ControlStateMsg_t --- apps/ld/fsw/src/ld_app.cpp | 2 +- apps/mac/fsw/src/mac_app.cpp | 2 +- apps/px4lib/fsw/public_inc/px4_msgs.h | 47 +++++++++++++-------------- apps/qae/fsw/src/qae_app.cpp | 2 +- 4 files changed, 26 insertions(+), 27 deletions(-) diff --git a/apps/ld/fsw/src/ld_app.cpp b/apps/ld/fsw/src/ld_app.cpp index 47b987036..087a846a6 100644 --- a/apps/ld/fsw/src/ld_app.cpp +++ b/apps/ld/fsw/src/ld_app.cpp @@ -741,7 +741,7 @@ osalbool LD::DetectFreeFall() { osalbool inFreefall = FALSE; - if (CVT.ControlStateMsg.Timestamp != 0) + if (!CFE_SB_IsMsgTimeZero((CFE_SB_MsgPtr_t)&CVT.ControlStateMsg)) { float net_acc = CVT.ControlStateMsg.AccX * CVT.ControlStateMsg.AccX + CVT.ControlStateMsg.AccY * CVT.ControlStateMsg.AccY diff --git a/apps/mac/fsw/src/mac_app.cpp b/apps/mac/fsw/src/mac_app.cpp index 838447641..06d927500 100644 --- a/apps/mac/fsw/src/mac_app.cpp +++ b/apps/mac/fsw/src/mac_app.cpp @@ -909,7 +909,7 @@ void MAC::RunController(void) /* Publish actuator controls */ CFE_SB_TimeStampMsg((CFE_SB_MsgPtr_t)&m_ActuatorControls0); - m_ActuatorControls0.SampleTime = CVT.ControlState.Timestamp; + m_ActuatorControls0.SampleTime = CFE_SB_GetMsgTimeInMicros((CFE_SB_MsgPtr_t)&CVT.ControlState); m_ActuatorControls0.Control[0] = (isfinite(m_AttControl[0])) ? m_AttControl[0] : 0.0f; m_ActuatorControls0.Control[1] = (isfinite(m_AttControl[1])) ? m_AttControl[1] : 0.0f; m_ActuatorControls0.Control[2] = (isfinite(m_AttControl[2])) ? m_AttControl[2] : 0.0f; diff --git a/apps/px4lib/fsw/public_inc/px4_msgs.h b/apps/px4lib/fsw/public_inc/px4_msgs.h index 6f6dc131c..f9695744a 100644 --- a/apps/px4lib/fsw/public_inc/px4_msgs.h +++ b/apps/px4lib/fsw/public_inc/px4_msgs.h @@ -638,31 +638,30 @@ typedef struct typedef struct { - uint8 TlmHeader[CFE_SB_TLM_HDR_SIZE]; - uint64 Timestamp; - float AccX; - float AccY; - float AccZ; - float VelX; - float VelY; - float VelZ; - float PosX; - float PosY; - float PosZ; - float Airspeed; - float VelVariance[3]; - float PosVariance[3]; - float Q[4]; - float DeltaQReset[4]; - float RollRate; - float PitchRate; - float YawRate; - float HorzAccMag; - float RollRateBias; - float PitchRateBias; - float YawRateBias; + uint8 TlmHeader[CFE_SB_TLM_HDR_SIZE]; + float AccX; + float AccY; + float AccZ; + float VelX; + float VelY; + float VelZ; + float PosX; + float PosY; + float PosZ; + float Airspeed; + float VelVariance[3]; + float PosVariance[3]; + float Q[4]; + float DeltaQReset[4]; + float RollRate; + float PitchRate; + float YawRate; + float HorzAccMag; + float RollRateBias; + float PitchRateBias; + float YawRateBias; boolean AirspeedValid; - uint8 QuatResetCounter; + uint8 QuatResetCounter; } PX4_ControlStateMsg_t; diff --git a/apps/qae/fsw/src/qae_app.cpp b/apps/qae/fsw/src/qae_app.cpp index 564f65fec..9f5ae9041 100644 --- a/apps/qae/fsw/src/qae_app.cpp +++ b/apps/qae/fsw/src/qae_app.cpp @@ -794,7 +794,7 @@ void QAE::EstimateAttitude(void) SendVehicleAttitudeMsg(); /* Populate control state message */ - ControlStateMsg.Timestamp = CFE_SB_GetMsgTimeInMicros((CFE_SB_MsgPtr_t)&CVT.SensorCombinedMsg); + CFE_SB_CopyMsgTime((CFE_SB_MsgPtr_t)&ControlStateMsg, (CFE_SB_MsgPtr_t)&CVT.SensorCombinedMsg); /* Attitude quaternions for control state */ ControlStateMsg.Q[0] = m_Quaternion[0]; From 12aa95907cccf6d56a63f00f3b573fa59e68b9cc Mon Sep 17 00:00:00 2001 From: Mathew Benson Date: Wed, 24 Feb 2021 14:09:47 -0600 Subject: [PATCH 156/370] Removed timestamp from PX4_InputRcMsg_t --- apps/mac/fsw/src/mac_app.cpp | 2 +- apps/px4lib/fsw/public_inc/px4_msgs.h | 39 +++++++++++++-------------- apps/rcin/fsw/src/rcin_app.cpp | 5 ++-- apps/sens/fsw/src/sens_app.cpp | 21 +++++++-------- apps/sens/fsw/src/sens_app.h | 2 +- 5 files changed, 34 insertions(+), 35 deletions(-) diff --git a/apps/mac/fsw/src/mac_app.cpp b/apps/mac/fsw/src/mac_app.cpp index 06d927500..476fda408 100644 --- a/apps/mac/fsw/src/mac_app.cpp +++ b/apps/mac/fsw/src/mac_app.cpp @@ -932,7 +932,7 @@ void MAC::RunController(void) controllerStatus.RollRateInteg = m_AngularRatesIntegralError[0]; controllerStatus.PitchRateInteg = m_AngularRatesIntegralError[1]; controllerStatus.YawRateInteg = m_AngularRatesIntegralError[2]; - controllerStatus.Timestamp = PX4LIB_GetPX4TimeUs(); + CFE_SB_TimeStampMsg((CFE_SB_MsgPtr_t)&controllerStatus); } } diff --git a/apps/px4lib/fsw/public_inc/px4_msgs.h b/apps/px4lib/fsw/public_inc/px4_msgs.h index f9695744a..8f19665f8 100644 --- a/apps/px4lib/fsw/public_inc/px4_msgs.h +++ b/apps/px4lib/fsw/public_inc/px4_msgs.h @@ -714,35 +714,34 @@ typedef struct uint8 TlmHeader[CFE_SB_TLM_HDR_SIZE]; uint8 Len; uint8 Flags; - char Data[PX4_GPS_INJECT_DATA_MAX]; + char Data[PX4_GPS_INJECT_DATA_MAX]; } PX4_GpsInjectDataMsg_t; typedef struct { - uint8 TlmHeader[CFE_SB_TLM_HDR_SIZE]; + uint8 TlmHeader[CFE_SB_TLM_HDR_SIZE]; double Lat; double Lon; - float Alt; - float X; - float Y; - float Z; - float Yaw; - float DirectionX; - float DirectionY; - float DirectionZ; + float Alt; + float X; + float Y; + float Z; + float Yaw; + float DirectionX; + float DirectionY; + float DirectionZ; } PX4_HomePositionMsg_t; typedef struct { - uint8 TlmHeader[CFE_SB_TLM_HDR_SIZE]; - uint64 Timestamp; - uint64 LastSignal; - uint32 ChannelCount; - int32 RSSI; - uint16 RcLostFrameCount; - uint16 RcTotalFrameCount; - uint16 RcPpmFrameLength; - uint16 Values[PX4_RC_INPUT_MAX_CHANNELS]; + uint8 TlmHeader[CFE_SB_TLM_HDR_SIZE]; + CFE_TIME_SysTime_t LastSignal; + uint32 ChannelCount; + int32 RSSI; + uint16 RcLostFrameCount; + uint16 RcTotalFrameCount; + uint16 RcPpmFrameLength; + uint16 Values[PX4_RC_INPUT_MAX_CHANNELS]; boolean RcFailsafe; boolean RcLost; PX4_RcInputSource_t InputSource; @@ -752,7 +751,7 @@ typedef struct { uint8 TlmHeader[CFE_SB_TLM_HDR_SIZE]; uint8 Severity; - char Text[127]; + char Text[127]; } PX4_LogMessageMsg_t; typedef struct diff --git a/apps/rcin/fsw/src/rcin_app.cpp b/apps/rcin/fsw/src/rcin_app.cpp index b023452a3..88c759ccb 100644 --- a/apps/rcin/fsw/src/rcin_app.cpp +++ b/apps/rcin/fsw/src/rcin_app.cpp @@ -565,8 +565,9 @@ void RCIN::ReadDevice(void) } } - InputRcMsg.LastSignal = InputRcMsg.Timestamp; - InputRcMsg.Timestamp = PX4LIB_GetPX4TimeUs(); + InputRcMsg.LastSignal = CFE_SB_GetMsgTime((CFE_SB_MsgPtr_t)&InputRcMsg); + CFE_SB_TimeStampMsg((CFE_SB_MsgPtr_t)&InputRcMsg); + return; } diff --git a/apps/sens/fsw/src/sens_app.cpp b/apps/sens/fsw/src/sens_app.cpp index 349aacd6d..69ff771b7 100644 --- a/apps/sens/fsw/src/sens_app.cpp +++ b/apps/sens/fsw/src/sens_app.cpp @@ -769,7 +769,9 @@ void SENS::UpdateRcFunctions() void SENS::ProcessRCInput(void) { - if(CVT.InputRcMsg.Timestamp > CVT.LastInputRcTime) + CFE_TIME_SysTime_t inputRcMsgTime = CFE_SB_GetMsgTime((CFE_SB_MsgPtr_t)&CVT.InputRcMsg); + + if(CFE_TIME_Compare(inputRcMsgTime, CVT.LastInputRcTime) == CFE_TIME_A_GT_B) { /* Read low-level values from FMU or IO RC inputs (PPM, Spektrum, S.Bus) */ //struct rc_input_values rc_input; @@ -853,8 +855,8 @@ void SENS::ProcessRCInput(void) RcChannelsMsg.ChannelCount = CVT.InputRcMsg.ChannelCount; RcChannelsMsg.RSSI = CVT.InputRcMsg.RSSI; RcChannelsMsg.SignalLost = signal_lost; - RcChannelsMsg.Timestamp = CVT.InputRcMsg.Timestamp; - RcChannelsMsg.TimestampLastValid = CVT.InputRcMsg.LastSignal; + RcChannelsMsg.Timestamp = CFE_SB_GetMsgTimeInMicros((CFE_SB_MsgPtr_t)&CVT.InputRcMsg); + RcChannelsMsg.TimestampLastValid = CFE_SB_GetMsgTimeInMicros((CFE_SB_MsgPtr_t)&CVT.InputRcMsg.LastSignal); RcChannelsMsg.FrameDropCount = CVT.InputRcMsg.RcLostFrameCount; } else if (CVT.InputRcMsg.Values[i] < (ConfigTblPtr->Trim[i] - ConfigTblPtr->DZ[i])) @@ -880,20 +882,20 @@ void SENS::ProcessRCInput(void) RcChannelsMsg.ChannelCount = CVT.InputRcMsg.ChannelCount; RcChannelsMsg.RSSI = CVT.InputRcMsg.RSSI; RcChannelsMsg.SignalLost = signal_lost; - RcChannelsMsg.Timestamp = CVT.InputRcMsg.LastSignal; + RcChannelsMsg.Timestamp = CFE_SB_GetMsgTimeInMicros((CFE_SB_MsgPtr_t)&CVT.InputRcMsg.LastSignal); RcChannelsMsg.FrameDropCount = CVT.InputRcMsg.RcLostFrameCount; /* Publish rc_channels topic even if signal is invalid, for debug */ SendRcChannelsMsg(); /* Only publish manual control if the signal is still present and was present once */ - if (!signal_lost && CVT.InputRcMsg.LastSignal > 0) + if (!signal_lost && !CFE_SB_IsMsgTimeZero((CFE_SB_MsgPtr_t&)CVT.InputRcMsg.LastSignal)) { /* Set mode slot to unassigned */ ManualControlSetpointMsg.ModeSlot = PX4_MODE_SLOT_NONE; /* Set the timestamp to the last signal time */ - ManualControlSetpointMsg.Timestamp = CVT.InputRcMsg.LastSignal; + ManualControlSetpointMsg.Timestamp = CFE_SB_GetMsgTimeInMicros((CFE_SB_MsgPtr_t)&CVT.InputRcMsg.LastSignal); ManualControlSetpointMsg.DataSource = PX4_MANUAL_CONTROL_SOURCE_RC; /* Limit controls */ @@ -998,10 +1000,7 @@ void SENS::ProcessRCInput(void) } /* Copy from mapped manual control to control group 3 */ - CFE_TIME_SysTime_t lastSignalTime; - lastSignalTime.Seconds = CVT.InputRcMsg.LastSignal / 1000000; - lastSignalTime.Subseconds = CFE_TIME_Micro2SubSecs(CVT.InputRcMsg.LastSignal - (lastSignalTime.Seconds * 1000000)); - CFE_SB_SetMsgTime((CFE_SB_MsgPtr_t)&ActuatorControls3Msg, lastSignalTime); + CFE_SB_SetMsgTime((CFE_SB_MsgPtr_t)&ActuatorControls3Msg, CVT.InputRcMsg.LastSignal); ActuatorControls3Msg.Control[0] = ManualControlSetpointMsg.Y; ActuatorControls3Msg.Control[1] = ManualControlSetpointMsg.X; @@ -1019,7 +1018,7 @@ void SENS::ProcessRCInput(void) CFE_SB_SendMsg((CFE_SB_Msg_t*)&ActuatorControls3Msg); } - CVT.LastInputRcTime = CVT.InputRcMsg.Timestamp; + CVT.LastInputRcTime = CFE_SB_GetMsgTime((CFE_SB_MsgPtr_t)&CVT.InputRcMsg); } } diff --git a/apps/sens/fsw/src/sens_app.h b/apps/sens/fsw/src/sens_app.h index 5e84b0e79..56719ee9a 100644 --- a/apps/sens/fsw/src/sens_app.h +++ b/apps/sens/fsw/src/sens_app.h @@ -78,7 +78,7 @@ typedef struct CFE_TIME_SysTime_t PrevMagTime; PX4_ActuatorControlsMsg_t ActuatorControls0Msg; PX4_InputRcMsg_t InputRcMsg; - uint64 LastInputRcTime; + CFE_TIME_SysTime_t LastInputRcTime; PX4_DifferentialPressureMsg_t DifferentialPressureMsg; PX4_VehicleControlModeMsg_t VehicleControlModeMsg; } SENS_CurrentValueTable_t; From cd582e91567c885d4dd1afef2df6110f6323cb07 Mon Sep 17 00:00:00 2001 From: Casey Nalley Date: Wed, 24 Feb 2021 14:13:43 -0600 Subject: [PATCH 157/370] More loading fixes. --- apps/sbn/fsw/src/sbn_loader.c | 6 +- config/obc/cpd/inc/sbn_platform_cfg.h | 145 ++++++++++++++++++ .../apps/sbn/tables/mbox/SbnModuleData.dat | 2 +- 3 files changed, 150 insertions(+), 3 deletions(-) create mode 100644 config/obc/cpd/inc/sbn_platform_cfg.h diff --git a/apps/sbn/fsw/src/sbn_loader.c b/apps/sbn/fsw/src/sbn_loader.c index f9d0a8019..c363ee5e6 100644 --- a/apps/sbn/fsw/src/sbn_loader.c +++ b/apps/sbn/fsw/src/sbn_loader.c @@ -155,7 +155,10 @@ int32 SBN_ReadModuleFile(void) case ';': /* Send the line to the file parser */ if (SBN_ParseModuleEntry(SBN_ModuleData, LineNum) == -1) + { + OS_printf("SBN ParseModuleEntry failed\n"); return SBN_ERROR; + } LineNum++; memset(SBN_ModuleData, 0x0, SBN_MODULE_FILE_LINE_SZ); BuffLen = 0; @@ -217,14 +220,13 @@ int32 SBN_ParseModuleEntry(char *FileEntry, uint32 LineNum) }/* end if */ ReturnCode = OS_ModuleLoad(&ModuleID, ModuleName, ModuleFile); - if(ReturnCode != OS_SUCCESS) { + OS_printf("SBN OS_ModuleLoad failed %d\n", ReturnCode); return SBN_ERROR; }/* end if */ ReturnCode = OS_SymbolLookup(&StructAddr, StructName); - if(ReturnCode != OS_SUCCESS) { OS_printf("SBN failed to find symbol %s\n", StructName); diff --git a/config/obc/cpd/inc/sbn_platform_cfg.h b/config/obc/cpd/inc/sbn_platform_cfg.h new file mode 100644 index 000000000..970ec321e --- /dev/null +++ b/config/obc/cpd/inc/sbn_platform_cfg.h @@ -0,0 +1,145 @@ +/****************************************************************************** +** File: sbn_platform_cfg.h +** +** Copyright (c) 2004-2016, United States government as represented by the +** administrator of the National Aeronautics Space Administration. +** All rights reserved. This software(cFE) was created at NASA's Goddard +** Space Flight Center pursuant to government contracts. +** +** This software may be used only pursuant to a United States government +** sponsored project and the United States government may not be charged +** for use thereof. +** +** Purpose: +** This header file contains prototypes for private functions and type +** definitions for the Software Bus Network Application. +** +** Authors: J. Wilmot/GSFC Code582 +** R. McGraw/SSI +** C. Knight/ARC Code TI +******************************************************************************/ +#include "cfe.h" + +#ifndef _sbn_platform_cfg_h +#define _sbn_platform_cfg_h + +/** @brief Maximum number of networks allowed. */ +#define SBN_MAX_NETS 16 + +/** @brief Maximum number of peers per network allowed. */ +#define SBN_MAX_PEERS_PER_NET 32 + +/** @brief Maximum number of subscriptions allowed per peer allowed. */ +#define SBN_MAX_SUBS_PER_PEER 256 + +/** @brief Maximum length of the name field in the `SbnPeerData.dat` file. */ +#define SBN_MAX_PEER_NAME_LEN 32 + +/** @brief Maximum length of the network field in the `SbnPeerData.dat` file. */ +#define SBN_MAX_NET_NAME_LEN 16 + +/** + * @brief At most process this many SB messages per peer per wakeup. + * (To prevent starvation if a peer is babbling.) + */ +#define SBN_MAX_MSG_PER_WAKEUP 32 + +/** + * @brief In the polling configuration, how long (in milliseconds) to wait for + * a SCH wakeup message before SBN times out and processes. (Note, should + * really be significantly longer than the expected time between SCH wakeup + * messages.) + */ +#define SBN_MAIN_LOOP_DELAY 200 + +/** + * @brief If I haven't sent a message to a peer in this amount of time (in + * seconds), call the poll function of the API in case it needs to perform + * some connection maintenance. + */ +#define SBN_POLL_TIME 5 + +/** + * @brief For each peer, a pipe is created to receive messages that the peer has + * subscribed to. The pipe should be deep enough to handle all messages that + * will queue between wakeups. + */ +#define SBN_PEER_PIPE_DEPTH 64 + +/** + * @brief The maximum number of messages that will be queued for a particular + * message ID for a particular peer. + */ +#define SBN_DEFAULT_MSG_LIM 8 + +/** + * @brief The maximum number of subscription messages that will be queued + * between wakeups. + */ +#define SBN_SUB_PIPE_DEPTH 256 + +/** + * @brief The maximum number of subscription messages for a single message ID + * that will be queued between wakeups. (These are received when updates occur + * after SBN starts up.) + */ +#define SBN_MAX_ONESUB_PKTS_ON_PIPE 256 + +/** + * @brief The maximum number of subscription messages for all message IDs that + * will be queued between wakeups. (These are received on SBN startup.) + */ +#define SBN_MAX_ALLSUBS_PKTS_ON_PIPE 64 + +/** @brief The volatile memory location for the peer data file. */ +#define SBN_VOL_PEER_FILENAME "/ram/apps/SbnPeerData.dat" + +/** @brief The non-volatile memory location for the peer data file. */ +#define SBN_NONVOL_PEER_FILENAME "/ram/apps/SbnPeerData.dat" + +/** + * @brief The maximum length of a line of configuration data in the peer data + * file. + */ +#define SBN_PEER_FILE_LINE_SZ 128 + +/** @brief The volatile memory location for the module data file. */ +#define SBN_VOL_MODULE_FILENAME "/ram/apps/SbnModuleData.dat" + +/** @brief The non-volatile memory location for the module data file. */ +#define SBN_NONVOL_MODULE_FILENAME "/ram/apps/SbnModuleData.dat" + +/** + * @brief The maximum length of a line of configuration data in the peer data + * file. + */ +#define SBN_MODULE_FILE_LINE_SZ 128 + +/** @brief Maximum number of protocol modules. */ +#define SBN_MAX_INTERFACE_TYPES 8 + +/** + * @brief SBN modules can provide status messages for housekeeping requests, + * this is the maximum length those messages can be. + */ +#define SBN_MOD_STATUS_MSG_SZ 128 + +/** + * @brief Define this to use one task per peer pipe to send messages (each + * task blocks on read). Otherwise, pipes will be polled periodically. + */ +#undef SBN_SEND_TASK + +/** + * @brief Define this to use one task per peer to receive messages (each + * task blocks on read). Otherwise, another method (e.g. select) must be used + * to prevent blocking. + */ +#undef SBN_RECV_TASK + +/** + * @brief If defined, remapping is enabled at boot time. + */ +#define SBN_REMAP_ENABLED + +#endif /* _sbn_platform_cfg_h_ */ diff --git a/config/obc/cpd/target/apps/sbn/tables/mbox/SbnModuleData.dat b/config/obc/cpd/target/apps/sbn/tables/mbox/SbnModuleData.dat index 16937ee46..3b78e89bf 100644 --- a/config/obc/cpd/target/apps/sbn/tables/mbox/SbnModuleData.dat +++ b/config/obc/cpd/target/apps/sbn/tables/mbox/SbnModuleData.dat @@ -1,4 +1,4 @@ -5, MBOX, /cf/apps/sbn_mbox.so, SBN_Mbox_Ops; +5, MBOX, /embedded/sbn_mbox.so, SBN_Mbox_Ops; ! ! Format: ProtocolId, ModuleLocation, IFStructName From 2064c3d5507954b52a1bba05e1598c5bd8763006 Mon Sep 17 00:00:00 2001 From: Mathew Benson Date: Wed, 24 Feb 2021 14:19:13 -0600 Subject: [PATCH 158/370] Removed timestamp from PX4_ManualControlSetpointMsg_t --- apps/ld/fsw/src/ld_app.cpp | 2 +- apps/mpc/fsw/src/mpc_app.cpp | 2 +- apps/px4lib/fsw/public_inc/px4_msgs.h | 1 - apps/sens/fsw/src/sens_app.cpp | 2 +- apps/vm/fsw/src/vm_app.cpp | 5 +++-- 5 files changed, 6 insertions(+), 6 deletions(-) diff --git a/apps/ld/fsw/src/ld_app.cpp b/apps/ld/fsw/src/ld_app.cpp index 087a846a6..bbff34a94 100644 --- a/apps/ld/fsw/src/ld_app.cpp +++ b/apps/ld/fsw/src/ld_app.cpp @@ -1047,7 +1047,7 @@ osalbool LD::PositionLock() osalbool LD::ManualControlPresent() { return CVT.VehicleControlModeMsg.ControlManualEnabled && - CVT.ManualControlSetpointMsg.Timestamp > 0; + !CFE_SB_IsMsgTimeZero((CFE_SB_MsgPtr_t)&CVT.ManualControlSetpointMsg); } /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ diff --git a/apps/mpc/fsw/src/mpc_app.cpp b/apps/mpc/fsw/src/mpc_app.cpp index c3686cf03..b387c734f 100644 --- a/apps/mpc/fsw/src/mpc_app.cpp +++ b/apps/mpc/fsw/src/mpc_app.cpp @@ -3846,7 +3846,7 @@ void MPC::SetManualAccelerationXY(math::Vector2F &StickXy, const float Dt) /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ osalbool MPC::ManualWantsTakeoff() { - const osalbool ManualControlPresent = m_VehicleControlModeMsg.ControlManualEnabled && m_ManualControlSetpointMsg.Timestamp > 0; + const osalbool ManualControlPresent = m_VehicleControlModeMsg.ControlManualEnabled && !CFE_SB_IsMsgTimeZero((CFE_SB_MsgPtr_t)&m_ManualControlSetpointMsg); /* Manual takeoff is triggered if the throttle stick is above 65%. */ return (ManualControlPresent && m_ManualControlSetpointMsg.Z > MPC_MANUAL_TAKEOFF_THRESHOLD); diff --git a/apps/px4lib/fsw/public_inc/px4_msgs.h b/apps/px4lib/fsw/public_inc/px4_msgs.h index 8f19665f8..117213199 100644 --- a/apps/px4lib/fsw/public_inc/px4_msgs.h +++ b/apps/px4lib/fsw/public_inc/px4_msgs.h @@ -757,7 +757,6 @@ typedef struct typedef struct { uint8 TlmHeader[CFE_SB_TLM_HDR_SIZE]; - uint64 Timestamp; float X; float Y; float Z; diff --git a/apps/sens/fsw/src/sens_app.cpp b/apps/sens/fsw/src/sens_app.cpp index 69ff771b7..8d553a99c 100644 --- a/apps/sens/fsw/src/sens_app.cpp +++ b/apps/sens/fsw/src/sens_app.cpp @@ -895,7 +895,7 @@ void SENS::ProcessRCInput(void) ManualControlSetpointMsg.ModeSlot = PX4_MODE_SLOT_NONE; /* Set the timestamp to the last signal time */ - ManualControlSetpointMsg.Timestamp = CFE_SB_GetMsgTimeInMicros((CFE_SB_MsgPtr_t)&CVT.InputRcMsg.LastSignal); + CFE_SB_SetMsgTime((CFE_SB_MsgPtr_t)&ManualControlSetpointMsg, CVT.InputRcMsg.LastSignal); ManualControlSetpointMsg.DataSource = PX4_MANUAL_CONTROL_SOURCE_RC; /* Limit controls */ diff --git a/apps/vm/fsw/src/vm_app.cpp b/apps/vm/fsw/src/vm_app.cpp index 2b3a53094..da8d86713 100644 --- a/apps/vm/fsw/src/vm_app.cpp +++ b/apps/vm/fsw/src/vm_app.cpp @@ -44,6 +44,7 @@ #include "px4lib.h" #include "px4lib_msgids.h" #include "prm_ids.h" +#include "cfs_utils.h" @@ -1700,7 +1701,7 @@ void VM::Execute() } /* RC input handle */ - if(!HkTlm.StatusFlags.RcInputIsTemporarilyBlocked && ManualControlSetpointMsg.Timestamp!=0 && (TimeNow() < ManualControlSetpointMsg.Timestamp + uint64(ConfigTblPtr->COM_RC_LOSS_T * 1e6f))) + if(!HkTlm.StatusFlags.RcInputIsTemporarilyBlocked && !CFE_SB_IsMsgTimeZero((CFE_SB_MsgPtr_t)&ManualControlSetpointMsg) && (TimeNow() < CFE_SB_GetMsgTimeInMicros((CFE_SB_MsgPtr_t)&ManualControlSetpointMsg) + uint64(ConfigTblPtr->COM_RC_LOSS_T * 1e6f))) { const osalbool in_armed_state = (VehicleStatusMsg.ArmingState == PX4_ARMING_STATE_ARMED || VehicleStatusMsg.ArmingState == PX4_ARMING_STATE_ARMED_ERROR); const osalbool arm_button_pressed = (ConfigTblPtr->COM_ARM_SWISBTN == 1 && ManualControlSetpointMsg.ArmSwitch == PX4_SWITCH_POS_ON); @@ -1867,7 +1868,7 @@ void VM::Execute() } VehicleStatusMsg.RcSignalLost = true; - HkTlm.RCSignalLostTimestamp = ManualControlSetpointMsg.Timestamp; + HkTlm.RCSignalLostTimestamp = CFE_SB_GetMsgTimeInMicros((CFE_SB_MsgPtr_t)&ManualControlSetpointMsg); } } From 1f9478450be85df25db3deb989367de840b0f482 Mon Sep 17 00:00:00 2001 From: Mathew Benson Date: Wed, 24 Feb 2021 14:21:14 -0600 Subject: [PATCH 159/370] Removed timestamp from PXR_McAttCtrlStatusMsg_t --- apps/px4lib/fsw/public_inc/px4_msgs.h | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/apps/px4lib/fsw/public_inc/px4_msgs.h b/apps/px4lib/fsw/public_inc/px4_msgs.h index 117213199..881ec85e7 100644 --- a/apps/px4lib/fsw/public_inc/px4_msgs.h +++ b/apps/px4lib/fsw/public_inc/px4_msgs.h @@ -788,7 +788,6 @@ typedef struct typedef struct { uint8 TlmHeader[CFE_SB_TLM_HDR_SIZE]; - uint64 Timestamp; float RollRateInteg; float PitchRateInteg; float YawRateInteg; @@ -796,21 +795,21 @@ typedef struct typedef struct { - uint8 TlmHeader[CFE_SB_TLM_HDR_SIZE]; - int32 DatamanID; + uint8 TlmHeader[CFE_SB_TLM_HDR_SIZE]; + int32 DatamanID; uint32 Count; - int32 CurrentSeq; + int32 CurrentSeq; } PX4_MissionMsg_t; typedef struct { - uint8 TlmHeader[CFE_SB_TLM_HDR_SIZE]; - uint32 InstanceCount; - uint32 SeqReached; - uint32 SeqCurrent; - uint32 SeqTotal; - uint32 ItemChangedIndex; - uint32 ItemDoJumpRemaining; + uint8 TlmHeader[CFE_SB_TLM_HDR_SIZE]; + uint32 InstanceCount; + uint32 SeqReached; + uint32 SeqCurrent; + uint32 SeqTotal; + uint32 ItemChangedIndex; + uint32 ItemDoJumpRemaining; boolean Valid; boolean Warning; boolean Reached; From bff687d41a0915ece507c3b86b47d4d4e906de39 Mon Sep 17 00:00:00 2001 From: Mathew Benson Date: Wed, 24 Feb 2021 14:27:31 -0600 Subject: [PATCH 160/370] Removed timestamp from PX4_RcChannelsMsg_t --- apps/px4lib/fsw/public_inc/px4_msgs.h | 65 +++++++++++++-------------- apps/sens/fsw/src/sens_app.cpp | 4 +- 2 files changed, 34 insertions(+), 35 deletions(-) diff --git a/apps/px4lib/fsw/public_inc/px4_msgs.h b/apps/px4lib/fsw/public_inc/px4_msgs.h index 881ec85e7..b48bb1af3 100644 --- a/apps/px4lib/fsw/public_inc/px4_msgs.h +++ b/apps/px4lib/fsw/public_inc/px4_msgs.h @@ -847,53 +847,53 @@ typedef struct typedef struct { - uint8 TlmHeader[CFE_SB_TLM_HDR_SIZE]; - float PixelFlowXIntegral; - float PixelFlowYIntegral; - float GyroXRateIntegral; - float GyroYRateIntegral; - float GyroZRateIntegral; - float GroundDistance; + uint8 TlmHeader[CFE_SB_TLM_HDR_SIZE]; + float PixelFlowXIntegral; + float PixelFlowYIntegral; + float GyroXRateIntegral; + float GyroYRateIntegral; + float GyroZRateIntegral; + float GroundDistance; uint32 IntegrationTimespan; uint32 TimeSinceLastSonarUpdate; uint16 FrameCountSinceLastReadout; - int16 GyroTemperature; - uint8 SensorID; - uint8 Quality; + int16 GyroTemperature; + uint8 SensorID; + uint8 Quality; } PX4_OpticalFlowMsg_t; typedef struct { - uint64 Timestamp; - double Lat; - double Lon; - float X; - float Y; - float Z; - float VX; - float VY; - float VZ; - float Alt; - float Yaw; - float Yawspeed; - float LoiterRadius; - float PitchMin; - float AX; - float AY; - float AZ; - float AcceptanceRadius; - float CruisingSpeed; - float CruisingThrottle; + uint64 Timestamp; + double Lat; + double Lon; + float X; + float Y; + float Z; + float VX; + float VY; + float VZ; + float Alt; + float Yaw; + float Yawspeed; + float LoiterRadius; + float PitchMin; + float AX; + float AY; + float AZ; + float AcceptanceRadius; + float CruisingSpeed; + float CruisingThrottle; boolean Valid; PX4_SetpointType_t Type; boolean PositionValid; boolean VelocityValid; - uint8 VelocityFrame; + uint8 VelocityFrame; boolean AltValid; boolean YawValid; boolean DisableMcYawControl; boolean YawspeedValid; - int8 LoiterDirection; + int8 LoiterDirection; boolean AccelerationValid; boolean AccelerationIsForce; } PX4_PositionSetpoint_t; @@ -909,7 +909,6 @@ typedef struct typedef struct { uint8 TlmHeader[CFE_SB_TLM_HDR_SIZE]; - uint64 Timestamp; uint64 TimestampLastValid; float Channels[PX4_RC_INPUT_MAX_CHANNELS]; uint32 FrameDropCount; diff --git a/apps/sens/fsw/src/sens_app.cpp b/apps/sens/fsw/src/sens_app.cpp index 8d553a99c..6819d8542 100644 --- a/apps/sens/fsw/src/sens_app.cpp +++ b/apps/sens/fsw/src/sens_app.cpp @@ -849,13 +849,13 @@ void SENS::ProcessRCInput(void) */ if (CVT.InputRcMsg.Values[i] > (ConfigTblPtr->Trim[i] + ConfigTblPtr->DZ[i])) { + CFE_SB_CopyMsgTime((CFE_SB_MsgPtr_t)&RcChannelsMsg, (CFE_SB_MsgPtr_t)&CVT.InputRcMsg); RcChannelsMsg.Channels[i] = (CVT.InputRcMsg.Values[i] - ConfigTblPtr->Trim[i] - ConfigTblPtr->DZ[i]) / (float)( ConfigTblPtr->Max[i] - ConfigTblPtr->Trim[i] - ConfigTblPtr->DZ[i]); RcChannelsMsg.ChannelCount = CVT.InputRcMsg.ChannelCount; RcChannelsMsg.RSSI = CVT.InputRcMsg.RSSI; RcChannelsMsg.SignalLost = signal_lost; - RcChannelsMsg.Timestamp = CFE_SB_GetMsgTimeInMicros((CFE_SB_MsgPtr_t)&CVT.InputRcMsg); RcChannelsMsg.TimestampLastValid = CFE_SB_GetMsgTimeInMicros((CFE_SB_MsgPtr_t)&CVT.InputRcMsg.LastSignal); RcChannelsMsg.FrameDropCount = CVT.InputRcMsg.RcLostFrameCount; } @@ -882,7 +882,7 @@ void SENS::ProcessRCInput(void) RcChannelsMsg.ChannelCount = CVT.InputRcMsg.ChannelCount; RcChannelsMsg.RSSI = CVT.InputRcMsg.RSSI; RcChannelsMsg.SignalLost = signal_lost; - RcChannelsMsg.Timestamp = CFE_SB_GetMsgTimeInMicros((CFE_SB_MsgPtr_t)&CVT.InputRcMsg.LastSignal); + CFE_SB_SetMsgTime((CFE_SB_MsgPtr_t)&RcChannelsMsg, CVT.InputRcMsg.LastSignal); RcChannelsMsg.FrameDropCount = CVT.InputRcMsg.RcLostFrameCount; /* Publish rc_channels topic even if signal is invalid, for debug */ From 7436d6407d07d9543a755d5258e1d8f3c7dd013d Mon Sep 17 00:00:00 2001 From: Mathew Benson Date: Wed, 24 Feb 2021 14:33:27 -0600 Subject: [PATCH 161/370] Removed timestamp from PX4_VehicleAttitudeMsg_t --- apps/px4lib/fsw/public_inc/px4_msgs.h | 1 - apps/qae/fsw/src/qae_app.cpp | 25 +++---------------------- apps/qae/fsw/src/qae_app.hpp | 24 ------------------------ apps/vm/fsw/src/vm_Navigation.cpp | 2 +- 4 files changed, 4 insertions(+), 48 deletions(-) diff --git a/apps/px4lib/fsw/public_inc/px4_msgs.h b/apps/px4lib/fsw/public_inc/px4_msgs.h index b48bb1af3..ff873b943 100644 --- a/apps/px4lib/fsw/public_inc/px4_msgs.h +++ b/apps/px4lib/fsw/public_inc/px4_msgs.h @@ -1050,7 +1050,6 @@ typedef struct typedef struct { uint8 TlmHeader[CFE_SB_TLM_HDR_SIZE]; - uint64 Timestamp; float RollSpeed; float PitchSpeed; float YawSpeed; diff --git a/apps/qae/fsw/src/qae_app.cpp b/apps/qae/fsw/src/qae_app.cpp index 9f5ae9041..45ef4c60a 100644 --- a/apps/qae/fsw/src/qae_app.cpp +++ b/apps/qae/fsw/src/qae_app.cpp @@ -506,25 +506,6 @@ void QAE::ReportHousekeeping() return; } -/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ -/* */ -/* Publish Output Data */ -/* */ -/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ -void QAE::SendVehicleAttitudeMsg() -{ - CFE_SB_TimeStampMsg((CFE_SB_Msg_t*)&VehicleAttitudeMsg); - CFE_SB_SendMsg((CFE_SB_Msg_t*)&VehicleAttitudeMsg); - return; -} - -void QAE::SendControlStateMsg() -{ - CFE_SB_TimeStampMsg((CFE_SB_Msg_t*)&ControlStateMsg); - CFE_SB_SendMsg((CFE_SB_Msg_t*)&ControlStateMsg); - return; -} - /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ /* */ /* Verify Command Length */ @@ -781,7 +762,7 @@ void QAE::EstimateAttitude(void) } /* Populate vehicle attitude message */ - VehicleAttitudeMsg.Timestamp = CFE_SB_GetMsgTimeInMicros((CFE_SB_MsgPtr_t)&CVT.SensorCombinedMsg); + CFE_SB_CopyMsgTime((CFE_SB_MsgPtr_t)&VehicleAttitudeMsg, (CFE_SB_MsgPtr_t)&CVT.SensorCombinedMsg); VehicleAttitudeMsg.RollSpeed = m_Rates[0]; VehicleAttitudeMsg.PitchSpeed = m_Rates[1]; VehicleAttitudeMsg.YawSpeed = m_Rates[2]; @@ -791,7 +772,7 @@ void QAE::EstimateAttitude(void) VehicleAttitudeMsg.Q[3] = m_Quaternion[3]; /* Send vehicle attitude message */ - SendVehicleAttitudeMsg(); + CFE_SB_SendMsg((CFE_SB_Msg_t*)&VehicleAttitudeMsg); /* Populate control state message */ CFE_SB_CopyMsgTime((CFE_SB_MsgPtr_t)&ControlStateMsg, (CFE_SB_MsgPtr_t)&CVT.SensorCombinedMsg); @@ -813,7 +794,7 @@ void QAE::EstimateAttitude(void) ControlStateMsg.YawRate = m_Rates[2]; /* Send the control state message */ - SendControlStateMsg(); + CFE_SB_SendMsg((CFE_SB_Msg_t*)&ControlStateMsg); end_of_function: return; diff --git a/apps/qae/fsw/src/qae_app.hpp b/apps/qae/fsw/src/qae_app.hpp index 3ce3793fb..083a63bc3 100644 --- a/apps/qae/fsw/src/qae_app.hpp +++ b/apps/qae/fsw/src/qae_app.hpp @@ -346,30 +346,6 @@ class QAE *************************************************************************/ void ReportHousekeeping(void); - /************************************************************************/ - /** \brief Sends the VehicleAttitudeMsg message. - ** - ** \par Description - ** This function publishes the VehicleAttitudeMsg message. - ** - ** \par Assumptions, External Events, and Notes: - ** None - ** - *************************************************************************/ - void SendVehicleAttitudeMsg(void); - - /************************************************************************/ - /** \brief Sends the ControlStateMsg message. - ** - ** \par Description - ** This function publishes the ControlStateMsg message. - ** - ** \par Assumptions, External Events, and Notes: - ** None - ** - *************************************************************************/ - void SendControlStateMsg(void); - /************************************************************************/ /** \brief Verify Command Length ** diff --git a/apps/vm/fsw/src/vm_Navigation.cpp b/apps/vm/fsw/src/vm_Navigation.cpp index 6c47d125e..b140d03c7 100644 --- a/apps/vm/fsw/src/vm_Navigation.cpp +++ b/apps/vm/fsw/src/vm_Navigation.cpp @@ -418,7 +418,7 @@ osalbool VM_Navigation::AllMessagesReceivedAtLeastOnce() osalbool SensorGyroMsgReady = !CFE_SB_IsMsgTimeZero((CFE_SB_MsgPtr_t)&App.SensorGyroMsg); osalbool SensorAccelMsgReady = !CFE_SB_IsMsgTimeZero((CFE_SB_MsgPtr_t)&App.SensorAccelMsg); osalbool SensorCombinedMsgReady = !CFE_SB_IsMsgTimeZero((CFE_SB_MsgPtr_t)&App.SensorCombinedMsg); - osalbool VehicleAttitudeMsgReady = (App.VehicleAttitudeMsg.Timestamp > 0); + osalbool VehicleAttitudeMsgReady = !CFE_SB_IsMsgTimeZero((CFE_SB_MsgPtr_t)&App.VehicleAttitudeMsg); osalbool VehicleLocalPositionMsgReady = !CFE_SB_IsMsgTimeZero((CFE_SB_MsgPtr_t)&App.VehicleLocalPositionMsg); osalbool VehicleLandDetectedMsgReady = !CFE_SB_IsMsgTimeZero((CFE_SB_MsgPtr_t)&App.VehicleLandDetectedMsg); osalbool VehicleGlobalPositionMsgReady = (App.VehicleGlobalPositionMsg.Timestamp > 0); From b78503357958baaa2b2cd0a716e26b09372b8556 Mon Sep 17 00:00:00 2001 From: Mathew Benson Date: Wed, 24 Feb 2021 14:38:45 -0600 Subject: [PATCH 162/370] Removed timestamp from PX4_VehicleAttitudeSetpointMsg_t --- apps/mpc/fsw/src/mpc_app.cpp | 8 ++++---- apps/px4lib/fsw/public_inc/px4_msgs.h | 19 +++++++++---------- 2 files changed, 13 insertions(+), 14 deletions(-) diff --git a/apps/mpc/fsw/src/mpc_app.cpp b/apps/mpc/fsw/src/mpc_app.cpp index b387c734f..846a7eedd 100644 --- a/apps/mpc/fsw/src/mpc_app.cpp +++ b/apps/mpc/fsw/src/mpc_app.cpp @@ -1145,7 +1145,7 @@ void MPC::Execute(void) /* Make sure attitude setpoint output "disables" attitude control */ m_VehicleAttitudeSetpointMsg.Thrust = 0.0f; - m_VehicleAttitudeSetpointMsg.Timestamp = PX4LIB_GetPX4TimeUs(); + CFE_SB_TimeStampMsg((CFE_SB_MsgPtr_t)&m_VehicleAttitudeSetpointMsg); } if (!m_InTakeoff && (!m_VehicleLandDetectedMsg.Landed && m_WasLanded) && m_VehicleControlModeMsg.Armed == PX4_ARMING_STATE_ARMED) @@ -1518,7 +1518,7 @@ void MPC::GenerateAttitudeSetpoint(float dt) m_VehicleAttitudeSetpointMsg.Q_D_Valid = TRUE; } - m_VehicleAttitudeSetpointMsg.Timestamp = PX4LIB_GetPX4TimeUs(); + CFE_SB_TimeStampMsg((CFE_SB_MsgPtr_t)&m_VehicleAttitudeSetpointMsg); } @@ -1795,7 +1795,7 @@ void MPC::ControlNonManual(float dt) m_VehicleAttitudeSetpointMsg.YawBody = m_Yaw; m_VehicleAttitudeSetpointMsg.Thrust = 0.0f; - m_VehicleAttitudeSetpointMsg.Timestamp = PX4LIB_GetPX4TimeUs(); + CFE_SB_TimeStampMsg((CFE_SB_MsgPtr_t)&m_VehicleAttitudeSetpointMsg); } else { @@ -3131,7 +3131,7 @@ void MPC::CalculateThrustSetpoint(float dt) m_VehicleLocalPositionSetpointMsg.AccY = ThrustSp[1] * MPC_CONSTANTS_ONE_G; m_VehicleLocalPositionSetpointMsg.AccZ = ThrustSp[2] * MPC_CONSTANTS_ONE_G; - m_VehicleAttitudeSetpointMsg.Timestamp = PX4LIB_GetPX4TimeUs(); + CFE_SB_TimeStampMsg((CFE_SB_MsgPtr_t)&m_VehicleAttitudeSetpointMsg); } diff --git a/apps/px4lib/fsw/public_inc/px4_msgs.h b/apps/px4lib/fsw/public_inc/px4_msgs.h index ff873b943..520ed55dc 100644 --- a/apps/px4lib/fsw/public_inc/px4_msgs.h +++ b/apps/px4lib/fsw/public_inc/px4_msgs.h @@ -1058,27 +1058,26 @@ typedef struct typedef struct { - uint8 TlmHeader[CFE_SB_TLM_HDR_SIZE]; - uint64 Timestamp; - float RollBody; - float PitchBody; - float YawBody; - float YawSpMoveRate; - float Q_D[4]; + uint8 TlmHeader[CFE_SB_TLM_HDR_SIZE]; + float RollBody; + float PitchBody; + float YawBody; + float YawSpMoveRate; + float Q_D[4]; boolean Q_D_Valid; - float Thrust; + float Thrust; boolean RollResetIntegral; boolean PitchResetIntegral; boolean YawResetIntegral; boolean FwControlYaw; boolean DisableMcYawControl; boolean ApplyFlaps; - float LandingGear; + float LandingGear; } PX4_VehicleAttitudeSetpointMsg_t; typedef struct { - uint8 TlmHeader[CFE_SB_TLM_HDR_SIZE]; + uint8 TlmHeader[CFE_SB_TLM_HDR_SIZE]; uint16 Command; PX4_VehicleCommandResult_t Result; } PX4_VehicleCommandAckMsg_t; From 4424881e7f246ce6bf3b662bf4a5a9b4129bd910 Mon Sep 17 00:00:00 2001 From: Mathew Benson Date: Wed, 24 Feb 2021 15:06:35 -0600 Subject: [PATCH 163/370] Removed timestamp from PX4_VehicleGlobalPositionMsg_t --- apps/nav/fsw/src/nav_app.cpp | 2 +- apps/pe/fsw/src/pe_app.cpp | 7 +++- apps/px4lib/fsw/public_inc/px4_msgs.h | 56 +++++++++++++-------------- apps/qae/fsw/src/qae_app.cpp | 16 ++++---- apps/vm/fsw/src/vm_Arming.cpp | 2 +- apps/vm/fsw/src/vm_Navigation.cpp | 2 +- apps/vm/fsw/src/vm_app.cpp | 37 +++--------------- apps/vm/fsw/src/vm_app.h | 26 ------------- 8 files changed, 49 insertions(+), 99 deletions(-) diff --git a/apps/nav/fsw/src/nav_app.cpp b/apps/nav/fsw/src/nav_app.cpp index 65fc0cce5..00c11fcfd 100644 --- a/apps/nav/fsw/src/nav_app.cpp +++ b/apps/nav/fsw/src/nav_app.cpp @@ -371,7 +371,7 @@ int32 NAV::RcvSchPipeMsg(int32 iBlocking) { case NAV_WAKEUP_MID: /* Check global position availability */ - if (!CVT.VehicleGlobalPosition.Timestamp == 0) + if (!CFE_SB_IsMsgTimeZero((CFE_SB_MsgPtr_t)&CVT.VehicleGlobalPosition)) { Execute(); } diff --git a/apps/pe/fsw/src/pe_app.cpp b/apps/pe/fsw/src/pe_app.cpp index f7b1a6e93..21a441f0a 100644 --- a/apps/pe/fsw/src/pe_app.cpp +++ b/apps/pe/fsw/src/pe_app.cpp @@ -1398,7 +1398,12 @@ void PE::SendVehicleGlobalPositionMsg() if(data_valid) { - m_VehicleGlobalPositionMsg.Timestamp = m_Timestamp; + CFE_TIME_SysTime_t newTime; + + newTime.Seconds = m_Timestamp / 1000000; + newTime.Subseconds = CFE_TIME_Micro2SubSecs(m_Timestamp - (newTime.Seconds * 1000000)); + + CFE_SB_SetMsgTime((CFE_SB_MsgPtr_t)&m_VehicleGlobalPositionMsg, newTime); m_VehicleGlobalPositionMsg.TimeUtcUsec = m_VehicleGpsPositionMsg.TimeUtcUsec; m_VehicleGlobalPositionMsg.Lat = lat; m_VehicleGlobalPositionMsg.Lon = lon; diff --git a/apps/px4lib/fsw/public_inc/px4_msgs.h b/apps/px4lib/fsw/public_inc/px4_msgs.h index 520ed55dc..b54237f0a 100644 --- a/apps/px4lib/fsw/public_inc/px4_msgs.h +++ b/apps/px4lib/fsw/public_inc/px4_msgs.h @@ -1085,26 +1085,25 @@ typedef struct typedef struct { - uint8 TlmHeader[CFE_SB_TLM_HDR_SIZE]; + uint8 TlmHeader[CFE_SB_TLM_HDR_SIZE]; double Param5; double Param6; - float Param1; - float Param2; - float Param3; - float Param4; - float Param7; + float Param1; + float Param2; + float Param3; + float Param4; + float Param7; PX4_VehicleCmd_t Command; uint32 TargetSystem; uint32 TargetComponent; uint32 SourceSystem; uint32 SourceComponent; - uint8 Confirmation; + uint8 Confirmation; } PX4_VehicleCommandMsg_t; typedef struct { - uint8 TlmHeader[CFE_SB_TLM_HDR_SIZE]; - uint64 Timestamp; + uint8 TlmHeader[CFE_SB_TLM_HDR_SIZE]; boolean Armed; boolean ExternalManualOverrideOk; boolean SystemHilEnabled; @@ -1126,26 +1125,25 @@ typedef struct typedef struct { - uint8 TlmHeader[CFE_SB_TLM_HDR_SIZE]; - uint64 Timestamp; - uint64 TimeUtcUsec; - double Lat; - double Lon; - float Alt; - double DeltaLatLon[2]; - float DeltaAlt; - uint8 LatLonResetCounter; - uint8 AltResetCounter; - float VelN; - float VelE; - float VelD; - float Yaw; - float EpH; - float EpV; - float EvH; - float EvV; - float TerrainAlt; - float PressureAlt; + uint8 TlmHeader[CFE_SB_TLM_HDR_SIZE]; + uint64 TimeUtcUsec; + double Lat; + double Lon; + float Alt; + double DeltaLatLon[2]; + float DeltaAlt; + uint8 LatLonResetCounter; + uint8 AltResetCounter; + float VelN; + float VelE; + float VelD; + float Yaw; + float EpH; + float EpV; + float EvH; + float EvV; + float TerrainAlt; + float PressureAlt; boolean TerrainAltValid; boolean DeadReckoning; } PX4_VehicleGlobalPositionMsg_t; diff --git a/apps/qae/fsw/src/qae_app.cpp b/apps/qae/fsw/src/qae_app.cpp index 45ef4c60a..0da3d0a91 100644 --- a/apps/qae/fsw/src/qae_app.cpp +++ b/apps/qae/fsw/src/qae_app.cpp @@ -698,10 +698,10 @@ void QAE::EstimateAttitude(void) } /* If there is a new GPS message */ - if(CVT.VehicleGlobalPositionMsg.Timestamp > CVT.LastGlobalPositionTime) + if(CFE_SB_GetMsgTimeInMicros((CFE_SB_MsgPtr_t)&CVT.VehicleGlobalPositionMsg) > CVT.LastGlobalPositionTime) { /* Calculate time difference between now and gpos timestamp */ - delta_time_gps = PX4LIB_GetPX4TimeUs() - CVT.VehicleGlobalPositionMsg.Timestamp; + delta_time_gps = CFE_SB_ElapsedMsgTimeInMicros((CFE_SB_MsgPtr_t)&CVT.VehicleGlobalPositionMsg); if(ConfigTblPtr->ATT_MAG_DECL_A == TRUE && CVT.VehicleGlobalPositionMsg.EpH < QAE_GPS_EPH_MAX && delta_time_gps < QAE_GPS_DT_MAX) @@ -711,8 +711,8 @@ void QAE::EstimateAttitude(void) } if((ConfigTblPtr->ATT_ACC_COMP == TRUE) && - (CVT.VehicleGlobalPositionMsg.Timestamp != 0) && - (PX4LIB_GetPX4TimeUs() < (CVT.VehicleGlobalPositionMsg.Timestamp + QAE_GPS_DT_THRES)) && + (!CFE_SB_IsMsgTimeZero((CFE_SB_MsgPtr_t)&CVT.VehicleGlobalPositionMsg)) && + (CFE_TIME_GetTimeInMicros() < (CFE_SB_GetMsgTimeInMicros((CFE_SB_MsgPtr_t)&CVT.VehicleGlobalPositionMsg) + QAE_GPS_DT_THRES)) && (CVT.VehicleGlobalPositionMsg.EpH < QAE_GPS_EPH_THRES) && (HkTlm.EstimatorState == QAE_EST_INITIALIZED)) { @@ -723,13 +723,13 @@ void QAE::EstimateAttitude(void) /* Velocity updated */ if(m_LastVelocityTime != 0 && - CVT.VehicleGlobalPositionMsg.Timestamp != m_LastVelocityTime) + CFE_SB_GetMsgTimeInMicros((CFE_SB_MsgPtr_t)&CVT.VehicleGlobalPositionMsg) != m_LastVelocityTime) { - delta_time_velocity = (CVT.VehicleGlobalPositionMsg.Timestamp - m_LastVelocityTime) / USEC_IN_SEC_F; + delta_time_velocity = (CFE_SB_GetMsgTimeInMicros((CFE_SB_MsgPtr_t)&CVT.VehicleGlobalPositionMsg) - m_LastVelocityTime) / USEC_IN_SEC_F; /* Calculate acceleration in body frame */ m_PositionAcc = m_Quaternion.ConjugateInversed((vel - m_LastVelocity) / delta_time_velocity); } - m_LastVelocityTime = CVT.VehicleGlobalPositionMsg.Timestamp; + m_LastVelocityTime = CFE_SB_GetMsgTimeInMicros((CFE_SB_MsgPtr_t)&CVT.VehicleGlobalPositionMsg); m_LastVelocity = vel; } else @@ -740,7 +740,7 @@ void QAE::EstimateAttitude(void) m_LastVelocityTime = 0; } /* Update last timestamp */ - CVT.LastGlobalPositionTime = CVT.VehicleGlobalPositionMsg.Timestamp; + CVT.LastGlobalPositionTime = CFE_SB_GetMsgTimeInMicros((CFE_SB_MsgPtr_t)&CVT.VehicleGlobalPositionMsg); } /* Time from previous iteration */ diff --git a/apps/vm/fsw/src/vm_Arming.cpp b/apps/vm/fsw/src/vm_Arming.cpp index c7b3bf864..48e9759d6 100644 --- a/apps/vm/fsw/src/vm_Arming.cpp +++ b/apps/vm/fsw/src/vm_Arming.cpp @@ -221,7 +221,7 @@ osalbool VM_Arming::PreFlightCheckCleared() osalbool cleared = true; /* Warn about global position */ - if (App.VehicleGlobalPositionMsg.Timestamp == 0) + if (CFE_SB_IsMsgTimeZero((CFE_SB_MsgPtr_t)&App.VehicleGlobalPositionMsg)) { (void) CFE_EVS_SendEvent(VM_NOPE_ERR_EID, CFE_EVS_INFORMATION, "Warning: Position estimator not initialized"); } diff --git a/apps/vm/fsw/src/vm_Navigation.cpp b/apps/vm/fsw/src/vm_Navigation.cpp index b140d03c7..e76f175c0 100644 --- a/apps/vm/fsw/src/vm_Navigation.cpp +++ b/apps/vm/fsw/src/vm_Navigation.cpp @@ -421,7 +421,7 @@ osalbool VM_Navigation::AllMessagesReceivedAtLeastOnce() osalbool VehicleAttitudeMsgReady = !CFE_SB_IsMsgTimeZero((CFE_SB_MsgPtr_t)&App.VehicleAttitudeMsg); osalbool VehicleLocalPositionMsgReady = !CFE_SB_IsMsgTimeZero((CFE_SB_MsgPtr_t)&App.VehicleLocalPositionMsg); osalbool VehicleLandDetectedMsgReady = !CFE_SB_IsMsgTimeZero((CFE_SB_MsgPtr_t)&App.VehicleLandDetectedMsg); - osalbool VehicleGlobalPositionMsgReady = (App.VehicleGlobalPositionMsg.Timestamp > 0); + osalbool VehicleGlobalPositionMsgReady = !CFE_SB_IsMsgTimeZero((CFE_SB_MsgPtr_t)&App.VehicleGlobalPositionMsg); osalbool VehicleGpsPositionMsgReady = (App.VehicleGpsPositionMsg.Timestamp > 0); if (SensorMagMsgReady && SensorGyroMsgReady && SensorAccelMsgReady diff --git a/apps/vm/fsw/src/vm_app.cpp b/apps/vm/fsw/src/vm_app.cpp index da8d86713..d5fb7a114 100644 --- a/apps/vm/fsw/src/vm_app.cpp +++ b/apps/vm/fsw/src/vm_app.cpp @@ -504,7 +504,6 @@ int32 VM::RcvSchPipeMsg(int32 iBlocking) case VM_WAKEUP_MID: { CFE_TIME_SysTime_t timestamp; - uint64 timestamp2; CheckParams(); ProcessDataPipe(); @@ -516,20 +515,21 @@ int32 VM::RcvSchPipeMsg(int32 iBlocking) Execute(); /* Get a common timestamp. */ - timestamp2 = PX4LIB_GetPX4TimeUs(); + timestamp = CFE_TIME_GetTime(); CFE_SB_SetMsgTime((CFE_SB_MsgPtr_t)&ActuatorArmedMsg, timestamp); CFE_SB_SetMsgTime((CFE_SB_MsgPtr_t)&VehicleStatusMsg, timestamp); CFE_SB_SetMsgTime((CFE_SB_MsgPtr_t)&VehicleManagerStateMsg, timestamp); - VehicleControlModeMsg.Timestamp = timestamp2; + CFE_SB_SetMsgTime((CFE_SB_MsgPtr_t)&VehicleControlModeMsg, timestamp); /* Execute all stateful behavior. */ ArmingSM.DoAction(); NavigationSM.DoAction(); /* Publish the messages. */ - SendVehicleManagerStateMsg(); - SendVehicleControlModeMsg(); + CFE_SB_SendMsg((CFE_SB_Msg_t*) &VehicleManagerStateMsg); + CFE_SB_SendMsg((CFE_SB_Msg_t*) &VehicleControlModeMsg); + break; } @@ -1133,19 +1133,6 @@ void VM::SendActuatorArmedMsg() -/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ -/* */ -/* Send VehicleManagerStateMsg */ -/* */ -/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ -void VM::SendVehicleManagerStateMsg() -{ - CFE_SB_TimeStampMsg((CFE_SB_Msg_t*) &VehicleManagerStateMsg); - CFE_SB_SendMsg((CFE_SB_Msg_t*) &VehicleManagerStateMsg); -} - - - /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ /* */ /* Send MissionMsg */ @@ -1185,20 +1172,6 @@ void VM::SendVehicleStatusMsg() -/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ -/* */ -/* Send VehicleControlModeMsg */ -/* */ -/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ -void VM::SendVehicleControlModeMsg() -{ - CFE_SB_TimeStampMsg((CFE_SB_Msg_t*) &VehicleControlModeMsg); - CFE_SB_SendMsg((CFE_SB_Msg_t*) &VehicleControlModeMsg); - -} - - - /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ /* */ /* Send VehicleCommandMsg */ diff --git a/apps/vm/fsw/src/vm_app.h b/apps/vm/fsw/src/vm_app.h index 9b7449e65..3e9698a13 100644 --- a/apps/vm/fsw/src/vm_app.h +++ b/apps/vm/fsw/src/vm_app.h @@ -408,19 +408,6 @@ class VM : ParamsConsumer *************************************************************************/ void SendActuatorArmedMsg(void); - /************************************************************************/ - /** \brief Sends the VehicleManagerStateMsg message. - ** - ** \par Description - ** This function publishes the VehicleManagerStateMsg message containing - ** - ** - ** \par Assumptions, External Events, and Notes: - ** None - ** - *************************************************************************/ - void SendVehicleManagerStateMsg(void); - /************************************************************************/ /** \brief Sends the MissionMsg message. ** @@ -460,19 +447,6 @@ class VM : ParamsConsumer *************************************************************************/ void SendVehicleStatusMsg(void); - /************************************************************************/ - /** \brief Sends the VehicleControlModeMsg message. - ** - ** \par Description - ** This function publishes the VehicleControlModeMsg message - ** containing - ** - ** \par Assumptions, External Events, and Notes: - ** None - ** - *************************************************************************/ - void SendVehicleControlModeMsg(void); - /************************************************************************/ /** \brief Sends the VehicleCommandMsg message. ** From 829cbed6226ea08f575450dad9668815710bc562 Mon Sep 17 00:00:00 2001 From: Mathew Benson Date: Wed, 24 Feb 2021 15:24:08 -0600 Subject: [PATCH 164/370] Removed timestamp from PX4_VehicleGlobalVelocitySetpointMsg_t and PX4_VehicleGpsPositionMsg_t --- apps/px4lib/fsw/public_inc/px4_msgs.h | 44 +++++++++++++-------------- apps/vm/fsw/src/vm_Navigation.cpp | 16 +++++----- 2 files changed, 29 insertions(+), 31 deletions(-) diff --git a/apps/px4lib/fsw/public_inc/px4_msgs.h b/apps/px4lib/fsw/public_inc/px4_msgs.h index b54237f0a..f31ef5bc0 100644 --- a/apps/px4lib/fsw/public_inc/px4_msgs.h +++ b/apps/px4lib/fsw/public_inc/px4_msgs.h @@ -1151,7 +1151,6 @@ typedef struct typedef struct { uint8 TlmHeader[CFE_SB_TLM_HDR_SIZE]; - uint64 Timestamp; float VX; float VY; float VZ; @@ -1160,30 +1159,29 @@ typedef struct typedef struct { - uint8 TlmHeader[CFE_SB_TLM_HDR_SIZE]; - uint64 Timestamp; - uint64 TimeUtcUsec; - int32 Lat; - int32 Lon; - int32 Alt; - int32 AltEllipsoid; - float SVariance; - float CVariance; - float EpH; - float EpV; - float HDOP; - float VDOP; - int32 NoisePerMs; - int32 JammingIndicator; - float Vel_m_s; - float Vel_n_m_s; - float Vel_e_m_s; - float Vel_d_m_s; - float COG; - int32 TimestampTimeRelative; + uint8 TlmHeader[CFE_SB_TLM_HDR_SIZE]; + uint64 TimeUtcUsec; + int32 Lat; + int32 Lon; + int32 Alt; + int32 AltEllipsoid; + float SVariance; + float CVariance; + float EpH; + float EpV; + float HDOP; + float VDOP; + int32 NoisePerMs; + int32 JammingIndicator; + float Vel_m_s; + float Vel_n_m_s; + float Vel_e_m_s; + float Vel_d_m_s; + float COG; + int32 TimestampTimeRelative; PX4_GpsFixType_t FixType; boolean VelNedValid; - uint8 SatellitesUsed; + uint8 SatellitesUsed; } PX4_VehicleGpsPositionMsg_t; typedef struct diff --git a/apps/vm/fsw/src/vm_Navigation.cpp b/apps/vm/fsw/src/vm_Navigation.cpp index e76f175c0..3c5dbc9d6 100644 --- a/apps/vm/fsw/src/vm_Navigation.cpp +++ b/apps/vm/fsw/src/vm_Navigation.cpp @@ -414,15 +414,15 @@ osalbool VM_Navigation::AllMessagesReceivedAtLeastOnce() { osalbool validity = false; - osalbool SensorMagMsgReady = !CFE_SB_IsMsgTimeZero((CFE_SB_MsgPtr_t)&App.SensorMagMsg); - osalbool SensorGyroMsgReady = !CFE_SB_IsMsgTimeZero((CFE_SB_MsgPtr_t)&App.SensorGyroMsg); - osalbool SensorAccelMsgReady = !CFE_SB_IsMsgTimeZero((CFE_SB_MsgPtr_t)&App.SensorAccelMsg); - osalbool SensorCombinedMsgReady = !CFE_SB_IsMsgTimeZero((CFE_SB_MsgPtr_t)&App.SensorCombinedMsg); - osalbool VehicleAttitudeMsgReady = !CFE_SB_IsMsgTimeZero((CFE_SB_MsgPtr_t)&App.VehicleAttitudeMsg); - osalbool VehicleLocalPositionMsgReady = !CFE_SB_IsMsgTimeZero((CFE_SB_MsgPtr_t)&App.VehicleLocalPositionMsg); - osalbool VehicleLandDetectedMsgReady = !CFE_SB_IsMsgTimeZero((CFE_SB_MsgPtr_t)&App.VehicleLandDetectedMsg); + osalbool SensorMagMsgReady = !CFE_SB_IsMsgTimeZero((CFE_SB_MsgPtr_t)&App.SensorMagMsg); + osalbool SensorGyroMsgReady = !CFE_SB_IsMsgTimeZero((CFE_SB_MsgPtr_t)&App.SensorGyroMsg); + osalbool SensorAccelMsgReady = !CFE_SB_IsMsgTimeZero((CFE_SB_MsgPtr_t)&App.SensorAccelMsg); + osalbool SensorCombinedMsgReady = !CFE_SB_IsMsgTimeZero((CFE_SB_MsgPtr_t)&App.SensorCombinedMsg); + osalbool VehicleAttitudeMsgReady = !CFE_SB_IsMsgTimeZero((CFE_SB_MsgPtr_t)&App.VehicleAttitudeMsg); + osalbool VehicleLocalPositionMsgReady = !CFE_SB_IsMsgTimeZero((CFE_SB_MsgPtr_t)&App.VehicleLocalPositionMsg); + osalbool VehicleLandDetectedMsgReady = !CFE_SB_IsMsgTimeZero((CFE_SB_MsgPtr_t)&App.VehicleLandDetectedMsg); osalbool VehicleGlobalPositionMsgReady = !CFE_SB_IsMsgTimeZero((CFE_SB_MsgPtr_t)&App.VehicleGlobalPositionMsg); - osalbool VehicleGpsPositionMsgReady = (App.VehicleGpsPositionMsg.Timestamp > 0); + osalbool VehicleGpsPositionMsgReady = !CFE_SB_IsMsgTimeZero((CFE_SB_MsgPtr_t)&App.VehicleGpsPositionMsg); if (SensorMagMsgReady && SensorGyroMsgReady && SensorAccelMsgReady && SensorCombinedMsgReady && VehicleAttitudeMsgReady From 8df8259daaeb59b56a44181128c8805aa5d43a54 Mon Sep 17 00:00:00 2001 From: Mathew Benson Date: Wed, 24 Feb 2021 15:27:39 -0600 Subject: [PATCH 165/370] Removed uint64 time from PX4_RcChannelsMsg_t --- apps/px4lib/fsw/public_inc/px4_msgs.h | 4 +--- apps/sens/fsw/src/sens_app.cpp | 2 +- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/apps/px4lib/fsw/public_inc/px4_msgs.h b/apps/px4lib/fsw/public_inc/px4_msgs.h index f31ef5bc0..7a76ecd35 100644 --- a/apps/px4lib/fsw/public_inc/px4_msgs.h +++ b/apps/px4lib/fsw/public_inc/px4_msgs.h @@ -57,8 +57,6 @@ #define PX4_ADSB_CALLSIGN_LEN ( 8 ) #define PX4_OPTICAL_FLOW_FRAME_SIZE ( 4096 ) -#define PX4_RELATIVE_TIMESTAMP_INVALID ( 0xffffffff ) - typedef enum { PX4_GPS_NONE0_FIX = 0, @@ -909,7 +907,7 @@ typedef struct typedef struct { uint8 TlmHeader[CFE_SB_TLM_HDR_SIZE]; - uint64 TimestampLastValid; + CFE_TIME_SysTime_t TimestampLastValid; float Channels[PX4_RC_INPUT_MAX_CHANNELS]; uint32 FrameDropCount; uint8 ChannelCount; diff --git a/apps/sens/fsw/src/sens_app.cpp b/apps/sens/fsw/src/sens_app.cpp index 6819d8542..bdaa5bff8 100644 --- a/apps/sens/fsw/src/sens_app.cpp +++ b/apps/sens/fsw/src/sens_app.cpp @@ -856,7 +856,7 @@ void SENS::ProcessRCInput(void) RcChannelsMsg.ChannelCount = CVT.InputRcMsg.ChannelCount; RcChannelsMsg.RSSI = CVT.InputRcMsg.RSSI; RcChannelsMsg.SignalLost = signal_lost; - RcChannelsMsg.TimestampLastValid = CFE_SB_GetMsgTimeInMicros((CFE_SB_MsgPtr_t)&CVT.InputRcMsg.LastSignal); + RcChannelsMsg.TimestampLastValid = CFE_SB_GetMsgTime((CFE_SB_MsgPtr_t)&CVT.InputRcMsg.LastSignal); RcChannelsMsg.FrameDropCount = CVT.InputRcMsg.RcLostFrameCount; } else if (CVT.InputRcMsg.Values[i] < (ConfigTblPtr->Trim[i] - ConfigTblPtr->DZ[i])) From f1b5c20850bd58bdb6ec0f1612c772cec9b98c93 Mon Sep 17 00:00:00 2001 From: Casey Nalley Date: Wed, 24 Feb 2021 17:22:31 -0600 Subject: [PATCH 166/370] Add temporary work-around for loading address issue. --- apps/sbn/fsw/src/sbn_app.c | 93 +++++++++++++++++++++++++---------- apps/sbn/fsw/src/sbn_loader.c | 14 ++++-- 2 files changed, 77 insertions(+), 30 deletions(-) diff --git a/apps/sbn/fsw/src/sbn_app.c b/apps/sbn/fsw/src/sbn_app.c index 779e08032..312e5f3b4 100644 --- a/apps/sbn/fsw/src/sbn_app.c +++ b/apps/sbn/fsw/src/sbn_app.c @@ -149,7 +149,6 @@ static int PeerFileRowCallback(const char *Filename, int LineNum, if(ProcessorID == CFE_PSP_GetProcessorId()) { Net->Configured = TRUE; - Net->ProtocolID = ProtocolID; Net->IfOps = SBN.IfOps[ProtocolID]; Net->IfOps->LoadNet(Row + 6, FieldCnt - 6, Net); @@ -166,9 +165,7 @@ static int PeerFileRowCallback(const char *Filename, int LineNum, }/* end if */ SBN_PeerInterface_t *Peer = &Net->Peers[Net->PeerCnt++]; - memset(Peer, 0, sizeof(*Peer)); - strncpy(Peer->Name, Row[0], sizeof(Peer->Name) - 1); Peer->Net = Net; Peer->ProcessorID = ProcessorID; @@ -235,6 +232,7 @@ static int ParseFileEntry(char *FileEntry) for(; isspace(*FileEntry); FileEntry++); Row[FieldCnt++] = FileEntry; + if(FieldCnt >= 16) { CFE_EVS_SendEvent(SBN_FILE_EID, CFE_EVS_CRITICAL, @@ -255,7 +253,6 @@ static int ParseFileEntry(char *FileEntry) FileEntry = End + 1; }/* end while */ - return PeerFileRowCallback("unknown", ParseLineNum++, "", Row, FieldCnt, NULL); }/* end ParseFileEntry */ @@ -277,16 +274,16 @@ int32 SBN_GetPeerFileData(void) /* First check for the file in RAM */ PeerFile = OS_open(SBN_VOL_PEER_FILENAME, O_RDONLY, 0); - if(PeerFile != OS_ERROR) + if(PeerFile >= 0) { CFE_EVS_SendEvent(SBN_FILE_EID, CFE_EVS_INFORMATION, - "opened peer data file '%s'", SBN_VOL_PEER_FILENAME); + "opened vol peer data file '%s'", SBN_VOL_PEER_FILENAME); FileOpened = TRUE; } else { CFE_EVS_SendEvent(SBN_FILE_EID, CFE_EVS_ERROR, - "failed to open peer file '%s'", SBN_VOL_PEER_FILENAME); + "failed to open vol peer file '%s' error %d", SBN_VOL_PEER_FILENAME, PeerFile); FileOpened = FALSE; }/* end if */ @@ -295,16 +292,16 @@ int32 SBN_GetPeerFileData(void) { PeerFile = OS_open(SBN_NONVOL_PEER_FILENAME, O_RDONLY, 0); - if(PeerFile != OS_ERROR) + if(PeerFile >= 0) { CFE_EVS_SendEvent(SBN_FILE_EID, CFE_EVS_INFORMATION, - "opened peer data file '%s'", SBN_NONVOL_PEER_FILENAME); + "opened nonvol peer data file '%s'", SBN_NONVOL_PEER_FILENAME); FileOpened = TRUE; } else { CFE_EVS_SendEvent(SBN_FILE_EID, CFE_EVS_ERROR, - "peer file '%s' failed to open", SBN_NONVOL_PEER_FILENAME); + "nonval peer file '%s' failed to open", SBN_NONVOL_PEER_FILENAME); FileOpened = FALSE; }/* end if */ }/* end if */ @@ -314,6 +311,8 @@ int32 SBN_GetPeerFileData(void) */ if(!FileOpened) { + CFE_EVS_SendEvent(SBN_FILE_EID, CFE_EVS_ERROR, + "Error, no peer file was opened"); return SBN_ERROR; }/* end if */ @@ -326,7 +325,14 @@ int32 SBN_GetPeerFileData(void) while(1) { - OS_read(PeerFile, &c, 1); + int32 Status; + Status = OS_read(PeerFile, &c, 1); + if(Status != 1) + { + CFE_EVS_SendEvent(SBN_FILE_EID, CFE_EVS_ERROR, + "OS_read failed %d", Status); + return SBN_ERROR; + } if(c == '!') { @@ -365,6 +371,8 @@ int32 SBN_GetPeerFileData(void) */ if(ParseFileEntry(SBN_PeerData) == SBN_ERROR) { + CFE_EVS_SendEvent(SBN_FILE_EID, CFE_EVS_ERROR, + "Parse peer file failed"); OS_close(PeerFile); return SBN_ERROR; }/* end if */ @@ -1266,15 +1274,29 @@ void SBN_AppMain(void) uint32 RunStatus = CFE_ES_APP_RUN, AppID = 0; - if(CFE_ES_RegisterApp() != CFE_SUCCESS) return; + Status = CFE_ES_RegisterApp(); + if(Status != CFE_SUCCESS) + { + RunStatus = CFE_ES_APP_ERROR; + (void) CFE_ES_WriteToSysLog("SBN - Failed to register the app (0x%08X)\n", (unsigned int)Status); + goto end_of_function; + } - if(CFE_EVS_Register(NULL, 0, CFE_EVS_BINARY_FILTER != CFE_SUCCESS)) return; + Status = CFE_EVS_Register(NULL, 0, CFE_EVS_BINARY_FILTER); + if(Status != CFE_SUCCESS) + { + RunStatus = CFE_ES_APP_ERROR; + (void) CFE_ES_WriteToSysLog("SBN - Failed to register with EVS (0x%08X)\n", (unsigned int)Status); + goto end_of_function; + } - if(CFE_ES_GetAppID(&AppID) != CFE_SUCCESS) + Status = CFE_ES_GetAppID(&AppID); + if(Status != CFE_SUCCESS) { + RunStatus = CFE_ES_APP_ERROR; CFE_EVS_SendEvent(SBN_INIT_EID, CFE_EVS_CRITICAL, "unable to get AppID"); - return; + goto end_of_function; } SBN.AppID = AppID; @@ -1285,71 +1307,78 @@ void SBN_AppMain(void) if(SBN_ReadModuleFile() == SBN_ERROR) { + RunStatus = CFE_ES_APP_ERROR; CFE_EVS_SendEvent(SBN_FILE_EID, CFE_EVS_ERROR, "module file not found or data invalid"); - return; + goto end_of_function; }/* end if */ if(SBN_GetPeerFileData() == SBN_ERROR) { + RunStatus = CFE_ES_APP_ERROR; CFE_EVS_SendEvent(SBN_FILE_EID, CFE_EVS_ERROR, "peer file not found or data invalid"); - return; + goto end_of_function; }/* end if */ #ifdef SBN_SEND_TASK /** Create mutex for send tasks */ Status = OS_MutSemCreate(&(SBN.SendMutex), "sbn_send_mutex", 0); - #endif /* SBN_SEND_TASK */ - if(Status != OS_SUCCESS) { + RunStatus = CFE_ES_APP_ERROR; CFE_EVS_SendEvent(SBN_INIT_EID, CFE_EVS_ERROR, "error creating mutex for send tasks"); - return; + goto end_of_function; } + #endif /* SBN_SEND_TASK */ if(SBN_InitInterfaces() == SBN_ERROR) { + RunStatus = CFE_ES_APP_ERROR; CFE_EVS_SendEvent(SBN_FILE_EID, CFE_EVS_ERROR, "unable to initialize interfaces"); - return; + goto end_of_function; }/* end if */ /* Create pipe for subscribes and unsubscribes from SB */ Status = CFE_SB_CreatePipe(&SBN.SubPipe, SBN_SUB_PIPE_DEPTH, "SBNSubPipe"); if(Status != CFE_SUCCESS) { + RunStatus = CFE_ES_APP_ERROR; CFE_EVS_SendEvent(SBN_INIT_EID, CFE_EVS_ERROR, "failed to create subscription pipe (Status=%d)", (int)Status); - return; + goto end_of_function; }/* end if */ Status = CFE_SB_SubscribeLocal(CFE_SB_ALLSUBS_TLM_MID, SBN.SubPipe, SBN_MAX_ALLSUBS_PKTS_ON_PIPE); if(Status != CFE_SUCCESS) { + RunStatus = CFE_ES_APP_ERROR; CFE_EVS_SendEvent(SBN_INIT_EID, CFE_EVS_ERROR, "failed to subscribe to allsubs (Status=%d)", (int)Status); - return; + goto end_of_function; }/* end if */ Status = CFE_SB_SubscribeLocal(CFE_SB_ONESUB_TLM_MID, SBN.SubPipe, SBN_MAX_ONESUB_PKTS_ON_PIPE); if(Status != CFE_SUCCESS) { + RunStatus = CFE_ES_APP_ERROR; CFE_EVS_SendEvent(SBN_INIT_EID, CFE_EVS_ERROR, "failed to subscribe to sub (Status=%d)", (int)Status); - return; + goto end_of_function; }/* end if */ /* Create pipe for HK requests and gnd commands */ Status = CFE_SB_CreatePipe(&SBN.CmdPipe, 20, "SBNCmdPipe"); if(Status != CFE_SUCCESS) { + RunStatus = CFE_ES_APP_ERROR; CFE_EVS_SendEvent(SBN_INIT_EID, CFE_EVS_ERROR, "failed to create command pipe (%d)", (int)Status); - return; + goto end_of_function; }/* end if */ Status = CFE_SB_Subscribe(SBN_CMD_MID, SBN.CmdPipe); @@ -1360,17 +1389,19 @@ void SBN_AppMain(void) } else { + RunStatus = CFE_ES_APP_ERROR; CFE_EVS_SendEvent(SBN_INIT_EID, CFE_EVS_ERROR, "failed to subscribe to command pipe (%d)", (int)Status); - return; + goto end_of_function; }/* end if */ Status = SBN_LoadTbl(&SBN.TblHandle); if (Status != CFE_SUCCESS) { + RunStatus = CFE_ES_APP_ERROR; CFE_EVS_SendEvent(SBN_INIT_EID, CFE_EVS_ERROR, "SBN failed to load SBN.RemapTbl (%d)", Status); - return; + goto end_of_function; }/* end if */ CFE_TBL_GetAddress((void **)&SBN.RemapTbl, SBN.TblHandle); @@ -1380,6 +1411,13 @@ void SBN_AppMain(void) #endif /* SBN_REMAP_ENABLED */ Status = OS_MutSemCreate(&(SBN.RemapMutex), "sbn_remap_mutex", 0); + if(Status != CFE_SUCCESS) + { + RunStatus = CFE_ES_APP_ERROR; + CFE_EVS_SendEvent(SBN_INIT_EID, CFE_EVS_ERROR, + "SBN failed to create mutex (%d)", Status); + goto end_of_function; + } CFE_EVS_SendEvent(SBN_INIT_EID, CFE_EVS_INFORMATION, "initialized (CFE_CPU_NAME='%s' ProcessorID=%lu SpacecraftId=%lu %s " @@ -1423,6 +1461,7 @@ void SBN_AppMain(void) /* SBN_UnloadModules(); */ +end_of_function: CFE_ES_ExitApp(RunStatus); }/* end SBN_AppMain */ diff --git a/apps/sbn/fsw/src/sbn_loader.c b/apps/sbn/fsw/src/sbn_loader.c index c363ee5e6..25639903a 100644 --- a/apps/sbn/fsw/src/sbn_loader.c +++ b/apps/sbn/fsw/src/sbn_loader.c @@ -91,6 +91,11 @@ int32 SBN_ReadModuleFile(void) #else /* ! CFE_ES_CONFLOADER */ +//#include "sbn_interfaces.h" + +extern SBN_IfOps_t SBN_Mbox_Ops; + + /** * \brief Reads a file describing the interface modules that must be loaded. * @@ -233,9 +238,12 @@ int32 SBN_ParseModuleEntry(char *FileEntry, uint32 LineNum) return SBN_ERROR; }/* end if */ - OS_printf("SBN found symbol %s in %s (%s)\n", StructName, ModuleName, - ModuleFile); - SBN.IfOps[ProtocolID] = (SBN_IfOps_t *)StructAddr; + OS_printf("SBN found symbol %s (%08x) in %s (%s)\n", StructName, StructAddr, + ModuleName, ModuleFile); + + /* TODO */ + //SBN.IfOps[ProtocolID] = (SBN_IfOps_t *)StructAddr; + SBN.IfOps[ProtocolID] = (SBN_IfOps_t *)&SBN_Mbox_Ops; SBN.ModuleIDs[ProtocolID] = ModuleID; return SBN_SUCCESS; From d7e5f6496bf8a4b77a31b9d931227e62829240e5 Mon Sep 17 00:00:00 2001 From: Mathew Benson Date: Wed, 24 Feb 2021 18:01:49 -0600 Subject: [PATCH 167/370] Updated PE to only use CFE time in HK. --- apps/mpc/fsw/src/mpc_app.cpp | 4 +- apps/pe/fsw/src/pe_app.cpp | 397 ++++++++++++-------------- apps/pe/fsw/src/pe_app.h | 53 ---- apps/pe/fsw/src/pe_msg.h | 83 +++--- apps/pe/fsw/src/sensors/baro.cpp | 35 +-- apps/pe/fsw/src/sensors/dist.cpp | 34 +-- apps/pe/fsw/src/sensors/flow.cpp | 37 +-- apps/pe/fsw/src/sensors/gps.cpp | 39 +-- apps/pe/fsw/src/sensors/land.cpp | 29 +- apps/px4lib/fsw/public_inc/px4_msgs.h | 62 ++-- 10 files changed, 351 insertions(+), 422 deletions(-) diff --git a/apps/mpc/fsw/src/mpc_app.cpp b/apps/mpc/fsw/src/mpc_app.cpp index 846a7eedd..36718a773 100644 --- a/apps/mpc/fsw/src/mpc_app.cpp +++ b/apps/mpc/fsw/src/mpc_app.cpp @@ -1262,7 +1262,7 @@ void MPC::UpdateRef(void) /* The reference point is only allowed to change when the vehicle is in standby state which is the normal state when the estimator origin is set. Changing reference point in flight causes large controller setpoint changes. Changing reference point in other arming states is untested and should not be performed. */ - if ((m_VehicleLocalPositionMsg.RefTimestamp != m_RefTimestamp) + if ((CFE_SB_GetMsgTimeInMicros((CFE_SB_MsgPtr_t)&m_VehicleLocalPositionMsg.RefTimestamp) != m_RefTimestamp) && ((m_VehicleStatusMsg.ArmingState == PX4_ARMING_STATE_STANDBY) || (!m_RefAltIsGlobal && m_VehicleLocalPositionMsg.Z_Global))) { @@ -1301,7 +1301,7 @@ void MPC::UpdateRef(void) m_PositionSetpoint[2] = -(AltitudeSetpoint - m_RefAlt); } - m_RefTimestamp = m_VehicleLocalPositionMsg.RefTimestamp; + m_RefTimestamp = CFE_SB_GetMsgTimeInMicros((CFE_SB_MsgPtr_t)&m_VehicleLocalPositionMsg.RefTimestamp); } } diff --git a/apps/pe/fsw/src/pe_app.cpp b/apps/pe/fsw/src/pe_app.cpp index 21a441f0a..44698616b 100644 --- a/apps/pe/fsw/src/pe_app.cpp +++ b/apps/pe/fsw/src/pe_app.cpp @@ -361,59 +361,59 @@ void PE::InitData() PX4_VEHICLE_GLOBAL_POSITION_MID, sizeof(PX4_VehicleGlobalPositionMsg_t), TRUE); /* Timestamps */ - m_Timestamp = PX4LIB_GetPX4TimeUs(); - m_TimeLastBaro = 0; - m_TimeLastGps = 0; - m_TimeLastLand = 0; - m_TimeLastDist = 0; - m_TimeLastFlow = 0; - m_Timestamp_Hist = 0; - m_TimestampLastBaro = 0; + HkTlm.Timestamp = CFE_TIME_GetTime(); + CFE_TIME_ClearTime(&HkTlm.TimeLastBaro); + CFE_TIME_ClearTime(&HkTlm.TimeLastGps); + CFE_TIME_ClearTime(&HkTlm.TimeLastLand); + CFE_TIME_ClearTime(&HkTlm.TimeLastDist); + CFE_TIME_ClearTime(&HkTlm.TimeLastFlow); + CFE_TIME_ClearTime(&HkTlm.Timestamp_Hist); + CFE_TIME_ClearTime(&HkTlm.TimestampLastBaro); /* Timeouts */ - m_BaroTimeout = TRUE; - m_GpsTimeout = TRUE; - m_LandTimeout = TRUE; - m_DistTimeout = TRUE; - m_FlowTimeout = TRUE; + HkTlm.BaroTimeout = TRUE; + HkTlm.GpsTimeout = TRUE; + HkTlm.LandTimeout = TRUE; + HkTlm.DistTimeout = TRUE; + HkTlm.FlowTimeout = TRUE; /* Faults */ - m_BaroFault = TRUE; - m_GpsFault = TRUE; - m_LandFault = TRUE; - m_DistFault = TRUE; - m_FlowFault = TRUE; + HkTlm.BaroFault = TRUE; + HkTlm.GpsFault = TRUE; + HkTlm.LandFault = TRUE; + HkTlm.DistFault = TRUE; + HkTlm.FlowFault = TRUE; /* Fuse Flags */ - m_BaroFuse = FALSE; - m_GpsFuse = FALSE; - m_LandFuse = FALSE; - m_DistFuse = FALSE; - m_FlowFuse = FALSE; + HkTlm.BaroFuse = FALSE; + HkTlm.GpsFuse = FALSE; + HkTlm.LandFuse = FALSE; + HkTlm.DistFuse = FALSE; + HkTlm.FlowFuse = FALSE; /* Validity */ - m_XyEstValid = FALSE; - m_ZEstValid = FALSE; - m_TzEstValid = FALSE; + HkTlm.XyEstValid = FALSE; + HkTlm.ZEstValid = FALSE; + HkTlm.TzEstValid = FALSE; /* Reference altitudes */ - m_AltOrigin = 0.0f; - m_BaroAltOrigin = 0.0f; - m_GpsAltOrigin = 0.0f; - m_DistAltOrigin = 0.0f; + HkTlm.AltOrigin = 0.0f; + HkTlm.BaroAltOrigin = 0.0f; + HkTlm.GpsAltOrigin = 0.0f; + HkTlm.DistAltOrigin = 0.0f; /* Status */ - m_EstimatorLocalInitialized = FALSE; - m_EstimatorGlobalInitialized = FALSE; - m_BaroInitialized = FALSE; - m_GpsInitialized = FALSE; - m_LandInitialized = FALSE; - m_DistInitialized = FALSE; - m_FlowInitialized = FALSE; - m_ReceivedGps = FALSE; - m_LastArmedState = FALSE; - m_AltOriginInitialized = FALSE; - m_ParamsUpdated = FALSE; + HkTlm.EstimatorLocalInitialized = FALSE; + HkTlm.EstimatorGlobalInitialized = FALSE; + HkTlm.BaroInitialized = FALSE; + HkTlm.GpsInitialized = FALSE; + HkTlm.LandInitialized = FALSE; + HkTlm.DistInitialized = FALSE; + HkTlm.FlowInitialized = FALSE; + HkTlm.ReceivedGps = FALSE; + HkTlm.LastArmedState = FALSE; + HkTlm.AltOriginInitialized = FALSE; + m_ParamsUpdated = FALSE; /* Matrix/Vector Zero */ m_RotationMat.Zero(); @@ -782,9 +782,9 @@ osalbool PE::ProcessDataPipe() CFE_PSP_MemCpy(&m_VehicleGpsPositionMsg, MsgPtr, sizeof(m_VehicleGpsPositionMsg)); /* Check if fusing distance sensor */ - if(TRUE == m_GpsFuse) + if(TRUE == HkTlm.GpsFuse) { - if(m_GpsTimeout) + if(HkTlm.GpsTimeout) { gpsInit(); } @@ -809,14 +809,14 @@ osalbool PE::ProcessDataPipe() CFE_PSP_MemCpy(&m_VehicleLandDetectedMsg, MsgPtr, sizeof(m_VehicleLandDetectedMsg)); /* Check if fusing land */ - if(TRUE == m_LandFuse) + if(TRUE == HkTlm.LandFuse) { if(landed()) { /* Throttle rate */ - if((m_Timestamp - m_TimeLastLand) > 1.0e6f / LAND_RATE) + if((CFE_TIME_ConvertTimeToMicros(HkTlm.Timestamp) - CFE_TIME_ConvertTimeToMicros(HkTlm.TimeLastLand)) > 1.0e6f / LAND_RATE) { - if(m_LandTimeout) + if(HkTlm.LandTimeout) { landInit(); } @@ -851,7 +851,7 @@ osalbool PE::ProcessDataPipe() CFE_PSP_MemCpy(&m_SensorCombinedMsg, MsgPtr, sizeof(m_SensorCombinedMsg)); /* Check if fusing baro */ - if(TRUE == m_BaroFuse) + if(TRUE == HkTlm.BaroFuse) { /* If baro is valid */ if(!m_SensorCombinedMsg.BaroInvalid) @@ -861,10 +861,9 @@ osalbool PE::ProcessDataPipe() * Baro relative is the difference between the gyro and baro * when received by the sensors application. If baro is fresh. */ - if(CFE_TIME_ConvertTimeToMicros(m_SensorCombinedMsg.BaroTimestamp) - != m_TimeLastBaro) + if(CFE_TIME_Compare(m_SensorCombinedMsg.BaroTimestamp, HkTlm.TimeLastBaro) != CFE_TIME_EQUAL) { - if(m_BaroTimeout) + if(HkTlm.BaroTimeout) { baroInit(); } @@ -873,7 +872,7 @@ osalbool PE::ProcessDataPipe() baroCorrect(); } /* Save the last valid timestamp */ - m_TimeLastBaro = CFE_TIME_ConvertTimeToMicros(m_SensorCombinedMsg.BaroTimestamp); + HkTlm.TimeLastBaro = m_SensorCombinedMsg.BaroTimestamp; } } } @@ -896,15 +895,15 @@ osalbool PE::ProcessDataPipe() if(m_DistanceSensor.Type == DIST_SENSOR_TYPE) { /* Check if fusing distance sensor */ - if(TRUE == m_DistFuse) + if(TRUE == HkTlm.DistFuse) { /* Don't integrate while landed */ if(!landed()) { /* Throttle rate */ - if((m_Timestamp - m_TimeLastLand) > 1.0e6f / DIST_RATE) + if((CFE_TIME_ConvertTimeToMicros(HkTlm.Timestamp) - CFE_TIME_ConvertTimeToMicros(HkTlm.TimeLastLand)) > 1.0e6f / DIST_RATE) { - if(m_DistTimeout) + if(HkTlm.DistTimeout) { distInit(); } @@ -925,9 +924,9 @@ osalbool PE::ProcessDataPipe() CFE_PSP_MemCpy(&m_OpticalFlowMsg, MsgPtr, sizeof(m_OpticalFlowMsg)); /* Check if fusing distance sensor */ - if(TRUE == m_FlowFuse) + if(TRUE == HkTlm.FlowFuse) { - if(m_FlowTimeout) + if(HkTlm.FlowTimeout) { flowInit(); } @@ -992,7 +991,7 @@ void PE::ProcessCmdPipe() /* Bump the command error counter for an unknown command. * (This should only occur if it was subscribed to with this * pipe, but not handled in this switch-case.) */ - HkTlm.usCmdErrCnt++; + HkTlm.CmdErrCnt++; (void) CFE_EVS_SendEvent(PE_MSGID_ERR_EID, CFE_EVS_ERROR, "Recvd invalid CMD msgId (0x%04X)", (unsigned short)CmdMsgId); break; @@ -1020,15 +1019,15 @@ void PE::ProcessCmdPipe() void PE::ProcessAppCmds(CFE_SB_Msg_t* MsgPtr) { - uint32 uiCmdCode=0; + uint32 cmdCode=0; if (MsgPtr != NULL) { - uiCmdCode = CFE_SB_GetCmdCode(MsgPtr); - switch (uiCmdCode) + cmdCode = CFE_SB_GetCmdCode(MsgPtr); + switch (cmdCode) { case PE_NOOP_CC: - HkTlm.usCmdCnt++; + HkTlm.CmdCnt++; (void) CFE_EVS_SendEvent(PE_CMD_NOOP_EID, CFE_EVS_INFORMATION, "Recvd NOOP. Version %d.%d.%d.%d", PE_MAJOR_VERSION, @@ -1038,8 +1037,8 @@ void PE::ProcessAppCmds(CFE_SB_Msg_t* MsgPtr) break; case PE_RESET_CC: - HkTlm.usCmdCnt = 0; - HkTlm.usCmdErrCnt = 0; + HkTlm.CmdCnt = 0; + HkTlm.CmdErrCnt = 0; HkTlm.WakeupCount = 0; HkTlm.VehicleGpsPositionMsgCount = 0; HkTlm.VehicleStatusMsgCount = 0; @@ -1053,169 +1052,169 @@ void PE::ProcessAppCmds(CFE_SB_Msg_t* MsgPtr) break; case PE_FUSE_DIST_SENS_CC: - if(FALSE == m_DistFuse) + if(FALSE == HkTlm.DistFuse) { - m_DistFuse = TRUE; - HkTlm.usCmdCnt++; + HkTlm.DistFuse = TRUE; + HkTlm.CmdCnt++; (void) CFE_EVS_SendEvent(PE_FUSE_DIST_INF_EID, CFE_EVS_INFORMATION, "Fusing distance sensor into estimation."); } else { - HkTlm.usCmdErrCnt++; + HkTlm.CmdErrCnt++; (void) CFE_EVS_SendEvent(PE_FUSE_DIST_ERR_EID, CFE_EVS_ERROR, "Already fusing distance sensor into estimation."); } break; case PE_DISABLE_DIST_SENS_CC: - if(TRUE == m_DistFuse) + if(TRUE == HkTlm.DistFuse) { - m_DistFuse = FALSE; - HkTlm.usCmdCnt++; + HkTlm.DistFuse = FALSE; + HkTlm.CmdCnt++; (void) CFE_EVS_SendEvent(PE_DISABLE_DIST_INF_EID, CFE_EVS_INFORMATION, "Disabling distance sensor fusion into estimation."); } else { - HkTlm.usCmdErrCnt++; + HkTlm.CmdErrCnt++; (void) CFE_EVS_SendEvent(PE_DISABLE_DIST_ERR_EID, CFE_EVS_ERROR, "Failed to disable distance sensor fusion into estimation."); } break; case PE_FUSE_GPS_CC: - if(FALSE == m_GpsFuse) + if(FALSE == HkTlm.GpsFuse) { - m_GpsFuse = TRUE; - HkTlm.usCmdCnt++; + HkTlm.GpsFuse = TRUE; + HkTlm.CmdCnt++; (void) CFE_EVS_SendEvent(PE_FUSE_GPS_INF_EID, CFE_EVS_INFORMATION, "Fusing GPS into estimation."); } else { - HkTlm.usCmdErrCnt++; + HkTlm.CmdErrCnt++; (void) CFE_EVS_SendEvent(PE_FUSE_GPS_ERR_EID, CFE_EVS_ERROR, "Already fusing GPS into estimation."); } break; case PE_DISABLE_GPS_CC: - if(TRUE == m_GpsFuse) + if(TRUE == HkTlm.GpsFuse) { - m_GpsFuse = FALSE; - HkTlm.usCmdCnt++; + HkTlm.GpsFuse = FALSE; + HkTlm.CmdCnt++; (void) CFE_EVS_SendEvent(PE_DISABLE_GPS_INF_EID, CFE_EVS_INFORMATION, "Disabling GPS fusion into estimation."); } else { - HkTlm.usCmdErrCnt++; + HkTlm.CmdErrCnt++; (void) CFE_EVS_SendEvent(PE_DISABLE_GPS_ERR_EID, CFE_EVS_ERROR, "Failed to disable GPS fusion into estimation."); } break; case PE_FUSE_BARO_CC: - if(FALSE == m_BaroFuse) + if(FALSE == HkTlm.BaroFuse) { - m_BaroFuse = TRUE; - HkTlm.usCmdCnt++; + HkTlm.BaroFuse = TRUE; + HkTlm.CmdCnt++; (void) CFE_EVS_SendEvent(PE_FUSE_BARO_INF_EID, CFE_EVS_INFORMATION, "Fusing baro into estimation."); } else { - HkTlm.usCmdErrCnt++; + HkTlm.CmdErrCnt++; (void) CFE_EVS_SendEvent(PE_FUSE_BARO_ERR_EID, CFE_EVS_ERROR, "Already fusing baro into estimation."); } break; case PE_DISABLE_BARO_CC: - if(TRUE == m_BaroFuse) + if(TRUE == HkTlm.BaroFuse) { - m_BaroFuse = FALSE; - HkTlm.usCmdCnt++; + HkTlm.BaroFuse = FALSE; + HkTlm.CmdCnt++; (void) CFE_EVS_SendEvent(PE_DISABLE_BARO_INF_EID, CFE_EVS_INFORMATION, "Disabling baro fusion into estimation."); } else { - HkTlm.usCmdErrCnt++; + HkTlm.CmdErrCnt++; (void) CFE_EVS_SendEvent(PE_DISABLE_BARO_ERR_EID, CFE_EVS_ERROR, "Failed to disable baro fusion into estimation."); } break; case PE_FUSE_LAND_CC: - if(FALSE == m_LandFuse) + if(FALSE == HkTlm.LandFuse) { - m_LandFuse = TRUE; - HkTlm.usCmdCnt++; + HkTlm.LandFuse = TRUE; + HkTlm.CmdCnt++; (void) CFE_EVS_SendEvent(PE_FUSE_LAND_INF_EID, CFE_EVS_INFORMATION, "Fusing land into estimation."); } else { - HkTlm.usCmdErrCnt++; + HkTlm.CmdErrCnt++; (void) CFE_EVS_SendEvent(PE_FUSE_LAND_ERR_EID, CFE_EVS_ERROR, "Already fusing land into estimation."); } break; case PE_DISABLE_LAND_CC: - if(TRUE == m_LandFuse) + if(TRUE == HkTlm.LandFuse) { - m_LandFuse = FALSE; - HkTlm.usCmdCnt++; + HkTlm.LandFuse = FALSE; + HkTlm.CmdCnt++; (void) CFE_EVS_SendEvent(PE_DISABLE_LAND_INF_EID, CFE_EVS_INFORMATION, "Disabling land fusion into estimation."); } else { - HkTlm.usCmdErrCnt++; + HkTlm.CmdErrCnt++; (void) CFE_EVS_SendEvent(PE_DISABLE_LAND_ERR_EID, CFE_EVS_ERROR, "Failed to disable land fusion into estimation."); } break; case PE_FUSE_FLOW_CC: - if(FALSE == m_FlowFuse) + if(FALSE == HkTlm.FlowFuse) { - m_FlowFuse = TRUE; - HkTlm.usCmdCnt++; + HkTlm.FlowFuse = TRUE; + HkTlm.CmdCnt++; (void) CFE_EVS_SendEvent(PE_FUSE_FLOW_INF_EID, CFE_EVS_INFORMATION, "Fusing flow into estimation."); } else { - HkTlm.usCmdErrCnt++; + HkTlm.CmdErrCnt++; (void) CFE_EVS_SendEvent(PE_FUSE_FLOW_ERR_EID, CFE_EVS_ERROR, "Already fusing flow into estimation."); } break; case PE_DISABLE_FLOW_CC: - if(TRUE == m_FlowFuse) + if(TRUE == HkTlm.FlowFuse) { - m_FlowFuse = FALSE; - HkTlm.usCmdCnt++; + HkTlm.FlowFuse = FALSE; + HkTlm.CmdCnt++; (void) CFE_EVS_SendEvent(PE_DISABLE_FLOW_INF_EID, CFE_EVS_INFORMATION, "Disabling flow fusion into estimation."); } else { - HkTlm.usCmdErrCnt++; + HkTlm.CmdErrCnt++; (void) CFE_EVS_SendEvent(PE_DISABLE_FLOW_ERR_EID, CFE_EVS_ERROR, "Failed to disable flow fusion into estimation."); } break; default: - HkTlm.usCmdErrCnt++; + HkTlm.CmdErrCnt++; (void) CFE_EVS_SendEvent(PE_CC_ERR_EID, CFE_EVS_ERROR, - "Recvd invalid command code (%u)", (unsigned int)uiCmdCode); + "Recvd invalid command code (%u)", (unsigned int)cmdCode); break; } } @@ -1229,43 +1228,6 @@ void PE::ProcessAppCmds(CFE_SB_Msg_t* MsgPtr) void PE::ReportHousekeeping() { - HkTlm.EstimatorLocalInitialized = m_EstimatorLocalInitialized; - HkTlm.EstimatorGlobalInitialized = m_EstimatorGlobalInitialized; - HkTlm.XyEstValid = m_XyEstValid; - HkTlm.ZEstValid = m_ZEstValid; - HkTlm.TzEstValid = m_TzEstValid; - HkTlm.Timestamp = m_Timestamp; - HkTlm.TimeLastBaro = m_TimeLastBaro; - HkTlm.TimeLastGps = m_TimeLastGps; - HkTlm.TimeLastLand = m_TimeLastLand; - HkTlm.BaroTimeout = m_BaroTimeout; - HkTlm.GpsTimeout = m_GpsTimeout; - HkTlm.LandTimeout = m_LandTimeout; - HkTlm.BaroFault = m_BaroFault; - HkTlm.GpsFault = m_GpsFault; - HkTlm.LandFault = m_LandFault; - HkTlm.AltOrigin = m_AltOrigin; - HkTlm.AltOriginInitialized = m_AltOriginInitialized; - HkTlm.BaroAltOrigin = m_BaroAltOrigin; - HkTlm.GpsAltOrigin = m_GpsAltOrigin; - HkTlm.GpsInitialized = m_GpsInitialized; - HkTlm.BaroInitialized = m_BaroInitialized; - HkTlm.LandInitialized = m_LandInitialized; - HkTlm.m_DistAltOrigin = m_DistAltOrigin; - HkTlm.DistInitialized = m_DistInitialized; - HkTlm.DistFault = m_DistFault; - HkTlm.DistTimeout = m_DistTimeout; - HkTlm.TimeLastDist = m_TimeLastDist; - HkTlm.DistFused = m_DistFuse; - HkTlm.GpsFused = m_GpsFuse; - HkTlm.BaroFused = m_BaroFuse; - HkTlm.LandFused = m_LandFuse; - HkTlm.FlowFused = m_FlowFuse; - HkTlm.FlowInitialized = m_FlowInitialized; - HkTlm.FlowFault = m_FlowFault; - HkTlm.FlowTimeout = m_FlowTimeout; - HkTlm.TimeLastFlow = m_TimeLastFlow; - CFE_SB_TimeStampMsg((CFE_SB_Msg_t*)&HkTlm); CFE_SB_SendMsg((CFE_SB_Msg_t*)&HkTlm); } @@ -1290,10 +1252,10 @@ void PE::SendVehicleLocalPositionMsg() vxy_stddev = sqrtf(m_StateCov[X_vx][X_vx] + m_StateCov[X_vy][X_vy]); epv = sqrt(m_StateCov[X_z][X_z]); eph = sqrt(m_StateCov[X_x][X_x] + m_StateCov[X_y][X_y]); - dist_bottom_valid = m_DistFuse && - m_DistInitialized && - !m_DistTimeout && - !m_DistFault; + dist_bottom_valid = HkTlm.DistFuse && + HkTlm.DistInitialized && + !HkTlm.DistTimeout && + !HkTlm.DistFault; if (vxy_stddev < ConfigTblPtr->VXY_PUB_THRESH) { @@ -1323,10 +1285,10 @@ void PE::SendVehicleLocalPositionMsg() CFE_SB_TimeStampMsg((CFE_SB_Msg_t*)&m_VehicleLocalPositionMsg); /* TODO: Set the time from m_Timestamp */ //m_VehicleLocalPositionMsg.Timestamp = m_Timestamp; - m_VehicleLocalPositionMsg.XY_Valid = m_XyEstValid; - m_VehicleLocalPositionMsg.Z_Valid = m_ZEstValid; - m_VehicleLocalPositionMsg.V_XY_Valid = m_XyEstValid; - m_VehicleLocalPositionMsg.V_Z_Valid = m_ZEstValid; + m_VehicleLocalPositionMsg.XY_Valid = HkTlm.XyEstValid; + m_VehicleLocalPositionMsg.Z_Valid = HkTlm.ZEstValid; + m_VehicleLocalPositionMsg.V_XY_Valid = HkTlm.XyEstValid; + m_VehicleLocalPositionMsg.V_Z_Valid = HkTlm.ZEstValid; m_VehicleLocalPositionMsg.X = m_XLowPass[X_x]; m_VehicleLocalPositionMsg.Y = m_XLowPass[X_y]; m_VehicleLocalPositionMsg.Z = -m_AglLowPass.m_State; @@ -1334,15 +1296,24 @@ void PE::SendVehicleLocalPositionMsg() m_VehicleLocalPositionMsg.VY = m_XLowPass[X_vy]; m_VehicleLocalPositionMsg.VZ = m_XLowPass[X_vz]; m_VehicleLocalPositionMsg.Yaw = m_Euler[2]; - m_VehicleLocalPositionMsg.XY_Global = m_XyEstValid; - m_VehicleLocalPositionMsg.Z_Global = !m_BaroTimeout; - m_VehicleLocalPositionMsg.RefTimestamp = m_Timestamp; + m_VehicleLocalPositionMsg.XY_Global = HkTlm.XyEstValid; + m_VehicleLocalPositionMsg.Z_Global = !HkTlm.BaroTimeout; + + m_VehicleLocalPositionMsg.RefTimestamp = CFE_TIME_ConvertTimeToMicros(HkTlm.Timestamp); + //m_VehicleLocalPositionMsg.RefTimestamp.Seconds = m_Timestamp / 1000000; + //m_VehicleLocalPositionMsg.RefTimestamp.Subseconds = CFE_TIME_Micro2SubSecs(m_Timestamp - (m_VehicleLocalPositionMsg.RefTimestamp.Seconds * 1000000)); + m_VehicleLocalPositionMsg.RefLat = m_MapRef.lat_rad * 180/M_PI; m_VehicleLocalPositionMsg.RefLon = m_MapRef.lon_rad * 180/M_PI; - m_VehicleLocalPositionMsg.RefAlt = m_AltOrigin; + m_VehicleLocalPositionMsg.RefAlt = HkTlm.AltOrigin; m_VehicleLocalPositionMsg.DistBottom = m_AglLowPass.m_State; m_VehicleLocalPositionMsg.DistBottomRate = m_XLowPass[X_vz]; - m_VehicleLocalPositionMsg.SurfaceBottomTimestamp = m_Timestamp; + m_VehicleLocalPositionMsg.SurfaceBottomTimestamp = CFE_TIME_ConvertTimeToMicros(HkTlm.Timestamp); + + //m_VehicleLocalPositionMsg.SurfaceBottomTimestamp.Seconds = m_Timestamp / 1000000; + //m_VehicleLocalPositionMsg.SurfaceBottomTimestamp.Subseconds = CFE_TIME_Micro2SubSecs(m_Timestamp - (m_VehicleLocalPositionMsg.RefTimestamp.Seconds * 1000000)); + + m_VehicleLocalPositionMsg.DistBottomValid = dist_bottom_valid; m_VehicleLocalPositionMsg.EpH = eph; m_VehicleLocalPositionMsg.EpV = epv; @@ -1368,7 +1339,7 @@ void PE::SendVehicleGlobalPositionMsg() map_projection_reproject(&m_MapRef, m_XLowPass[X_x], m_XLowPass[X_y], &lat, &lon); - alt = -m_XLowPass[X_z] + m_AltOrigin; + alt = -m_XLowPass[X_z] + HkTlm.AltOrigin; vxy_stddev = sqrtf(m_StateCov[X_vx][X_vx] + m_StateCov[X_vy][X_vy]); epv = sqrt(m_StateCov[X_z][X_z]); eph = sqrt(m_StateCov[X_x][X_x] + m_StateCov[X_y][X_y]); @@ -1398,12 +1369,7 @@ void PE::SendVehicleGlobalPositionMsg() if(data_valid) { - CFE_TIME_SysTime_t newTime; - - newTime.Seconds = m_Timestamp / 1000000; - newTime.Subseconds = CFE_TIME_Micro2SubSecs(m_Timestamp - (newTime.Seconds * 1000000)); - - CFE_SB_SetMsgTime((CFE_SB_MsgPtr_t)&m_VehicleGlobalPositionMsg, newTime); + CFE_SB_SetMsgTime((CFE_SB_MsgPtr_t)&m_VehicleGlobalPositionMsg, HkTlm.Timestamp); m_VehicleGlobalPositionMsg.TimeUtcUsec = m_VehicleGpsPositionMsg.TimeUtcUsec; m_VehicleGlobalPositionMsg.Lat = lat; m_VehicleGlobalPositionMsg.Lon = lon; @@ -1414,12 +1380,11 @@ void PE::SendVehicleGlobalPositionMsg() m_VehicleGlobalPositionMsg.Yaw = m_Euler[2]; m_VehicleGlobalPositionMsg.EpH = eph; m_VehicleGlobalPositionMsg.EpV = epv; - m_VehicleGlobalPositionMsg.TerrainAlt = m_AltOrigin - m_XLowPass[X_tz]; - m_VehicleGlobalPositionMsg.TerrainAltValid = m_TzEstValid; - m_VehicleGlobalPositionMsg.DeadReckoning = !m_XyEstValid; + m_VehicleGlobalPositionMsg.TerrainAlt = HkTlm.AltOrigin - m_XLowPass[X_tz]; + m_VehicleGlobalPositionMsg.TerrainAltValid = HkTlm.TzEstValid; + m_VehicleGlobalPositionMsg.DeadReckoning = !HkTlm.XyEstValid; m_VehicleGlobalPositionMsg.PressureAlt = m_SensorCombinedMsg.BaroAlt; - CFE_SB_TimeStampMsg((CFE_SB_Msg_t*)&m_VehicleGlobalPositionMsg); CFE_SB_SendMsg((CFE_SB_Msg_t*)&m_VehicleGlobalPositionMsg); } else @@ -1455,7 +1420,7 @@ osalbool PE::VerifyCmdLength(CFE_SB_Msg_t* MsgPtr, "Rcvd invalid msgLen: msgId=0x%08X, cmdCode=%d, " "msgLen=%d, expectedLen=%d", MsgId, usCmdCode, usMsgLen, usExpectedLen); - HkTlm.usCmdErrCnt++; + HkTlm.CmdErrCnt++; } } @@ -1552,31 +1517,31 @@ void PE::Update() osalbool VxyStdDevValid = FALSE; float dt = 0.0f; float dt_hist = 0.0f; - uint64 newTimestamp = PX4LIB_GetPX4TimeUs(); + CFE_TIME_SysTime_t newTimestamp = CFE_TIME_GetTime(); /* Update timestamps */ - dt = (newTimestamp - m_Timestamp) / 1.0e6f; - m_Timestamp = newTimestamp; - dt_hist = 1.0e-6f * (m_Timestamp - m_Timestamp_Hist); + dt = (CFE_TIME_ConvertTimeToMicros(newTimestamp) - CFE_TIME_ConvertTimeToMicros(HkTlm.Timestamp)) / 1.0e6f; + HkTlm.Timestamp = newTimestamp; + dt_hist = 1.0e-6f * (CFE_TIME_ConvertTimeToMicros(HkTlm.Timestamp) - CFE_TIME_ConvertTimeToMicros(HkTlm.Timestamp_Hist)); CheckTimeouts(); /* Check if local initialized */ - if(!m_EstimatorLocalInitialized && - m_BaroInitialized && - m_LandInitialized) + if(!HkTlm.EstimatorLocalInitialized && + HkTlm.BaroInitialized && + HkTlm.LandInitialized) { - m_EstimatorLocalInitialized = TRUE; + HkTlm.EstimatorLocalInitialized = TRUE; (void) CFE_EVS_SendEvent(PE_LOCAL_ESTIMATOR_INF_EID, CFE_EVS_INFORMATION, "Local estimation initialized"); } /* Check if global initialized */ - if(!m_EstimatorGlobalInitialized && - m_BaroInitialized && - m_GpsInitialized && - m_LandInitialized) + if(!HkTlm.EstimatorGlobalInitialized && + HkTlm.BaroInitialized && + HkTlm.GpsInitialized && + HkTlm.LandInitialized) { - m_EstimatorGlobalInitialized = TRUE; + HkTlm.EstimatorGlobalInitialized = TRUE; (void) CFE_EVS_SendEvent(PE_GLOBAL_ESTIMATOR_INF_EID, CFE_EVS_INFORMATION, "Global estimation initialized"); } @@ -1589,7 +1554,7 @@ void PE::Update() } /* Update current GPS validity */ - if(m_GpsInitialized) + if(HkTlm.GpsInitialized) { /* Check if xy is valid */ if (fmax(m_StateCov[X_vx][X_vx], m_StateCov[X_vy][X_vy]) < @@ -1598,28 +1563,28 @@ void PE::Update() VxyStdDevValid = TRUE; } - if(m_XyEstValid) + if(HkTlm.XyEstValid) { - if(!VxyStdDevValid && m_GpsTimeout) + if(!VxyStdDevValid && HkTlm.GpsTimeout) { - m_XyEstValid = FALSE; + HkTlm.XyEstValid = FALSE; } } else { - if(VxyStdDevValid && !m_GpsTimeout) + if(VxyStdDevValid && !HkTlm.GpsTimeout) { - m_XyEstValid = TRUE; + HkTlm.XyEstValid = TRUE; } } } else { - m_XyEstValid = FALSE; + HkTlm.XyEstValid = FALSE; } /* Update current baro validity */ - if(m_BaroInitialized) + if(HkTlm.BaroInitialized) { /* Check if z is valid */ if(sqrtf(m_StateCov[X_z][X_z]) < ConfigTblPtr->Z_PUB_THRESH) @@ -1627,28 +1592,28 @@ void PE::Update() ZStdDevValid = TRUE; } - if(m_ZEstValid) + if(HkTlm.ZEstValid) { - if(!ZStdDevValid && m_BaroTimeout) + if(!ZStdDevValid && HkTlm.BaroTimeout) { - m_ZEstValid = FALSE; + HkTlm.ZEstValid = FALSE; } } else { - if(ZStdDevValid && !m_BaroTimeout) + if(ZStdDevValid && !HkTlm.BaroTimeout) { - m_ZEstValid = TRUE; + HkTlm.ZEstValid = TRUE; } } } else { - m_ZEstValid = FALSE; + HkTlm.ZEstValid = FALSE; } /* Update current land validity */ - if(m_LandInitialized) + if(HkTlm.LandInitialized) { /* Check if terrain is valid */ if(sqrtf(m_StateCov[X_tz][X_tz]) < ConfigTblPtr->Z_PUB_THRESH) @@ -1656,40 +1621,40 @@ void PE::Update() TzStdDevValid = TRUE; } - if(m_TzEstValid) + if(HkTlm.TzEstValid) { if(!TzStdDevValid) { - m_TzEstValid = FALSE; + HkTlm.TzEstValid = FALSE; } } else { if(TzStdDevValid) { - m_TzEstValid = TRUE; + HkTlm.TzEstValid = TRUE; } } } else { - m_TzEstValid = FALSE; + HkTlm.TzEstValid = FALSE; } /* Initialize map projection to INIT_ORIGIN_LAT, INIT_ORIGIN_LON if we don't * have lat, lon data and allowing fake origin */ - if (!m_MapRef.init_done && m_XyEstValid && ConfigTblPtr->FAKE_ORIGIN) + if (!m_MapRef.init_done && HkTlm.XyEstValid && ConfigTblPtr->FAKE_ORIGIN) { map_projection_init(&m_MapRef, ConfigTblPtr->INIT_ORIGIN_LAT, ConfigTblPtr->INIT_ORIGIN_LON, - m_Timestamp); + CFE_TIME_ConvertTimeToMicros(HkTlm.Timestamp)); (void) CFE_EVS_SendEvent(PE_GPS_OK_INF_EID, CFE_EVS_INFORMATION, "GPS fake origin init. Lat: %6.2f Lon: %6.2f Alt: %5.1f m", ConfigTblPtr->INIT_ORIGIN_LAT, ConfigTblPtr->INIT_ORIGIN_LON, - double(m_AltOrigin)); + double(HkTlm.AltOrigin)); } /* Check if state vector needs to be reinitialized */ @@ -1758,7 +1723,7 @@ void PE::Update() { SendVehicleLocalPositionMsg(); - if(m_XyEstValid && (m_MapRef.init_done || ConfigTblPtr->FAKE_ORIGIN)) + if(HkTlm.XyEstValid && (m_MapRef.init_done || ConfigTblPtr->FAKE_ORIGIN)) { SendVehicleGlobalPositionMsg(); } @@ -1768,11 +1733,11 @@ void PE::Update() * delayed state still needs to be propagated with frozen state. */ - if (m_Timestamp_Hist == 0 || (dt_hist > HIST_STEP)) + if (CFE_TIME_IsTimeZero(HkTlm.Timestamp_Hist) || (dt_hist > HIST_STEP)) { - m_TDelay.Update(m_Timestamp); + m_TDelay.Update(CFE_TIME_ConvertTimeToMicros(HkTlm.Timestamp)); m_XDelay.Update(m_StateVec); - m_Timestamp_Hist = m_Timestamp; + HkTlm.Timestamp_Hist = HkTlm.Timestamp; } CFE_ES_PerfLogExit(PE_UPDATE_TASK_PERF_ID); @@ -1781,7 +1746,7 @@ void PE::Update() osalbool PE::Initialized(void) { - return m_EstimatorLocalInitialized || m_EstimatorGlobalInitialized; + return HkTlm.EstimatorLocalInitialized || HkTlm.EstimatorGlobalInitialized; } @@ -1815,7 +1780,7 @@ void PE::Predict(float dt) m_Predict.dx = (m_Predict.k1 + m_Predict.k2 * 2 + m_Predict.k3 * 2 + m_Predict.k4) * (dt / 6); /* Don't integrate position if no valid xy data */ - if (!m_XyEstValid) + if (!HkTlm.XyEstValid) { m_Predict.dx[X_x] = 0; m_Predict.dx[X_vx] = 0; @@ -1824,13 +1789,13 @@ void PE::Predict(float dt) } /* Don't integrate z if no valid z data */ - if (!m_ZEstValid) + if (!HkTlm.ZEstValid) { m_Predict.dx[X_z] = 0; } /* Don't integrate tz if no valid tz data */ - if (!m_TzEstValid) + if (!HkTlm.TzEstValid) { m_Predict.dx[X_tz] = 0; } @@ -1899,11 +1864,11 @@ void PE::UpdateLocalParams() OS_MutSemTake(ConfigMutex); /* Update all locally stored params with the up to date value in the table */ - m_BaroFuse = ConfigTblPtr->BARO_FUSE; - m_GpsFuse = ConfigTblPtr->GPS_FUSE; - m_LandFuse = ConfigTblPtr->LAND_FUSE; - m_DistFuse = ConfigTblPtr->DIST_FUSE; - m_FlowFuse = ConfigTblPtr->FLOW_FUSE; + HkTlm.BaroFuse = ConfigTblPtr->BARO_FUSE; + HkTlm.GpsFuse = ConfigTblPtr->GPS_FUSE; + HkTlm.LandFuse = ConfigTblPtr->LAND_FUSE; + HkTlm.DistFuse = ConfigTblPtr->DIST_FUSE; + HkTlm.FlowFuse = ConfigTblPtr->FLOW_FUSE; /* Unlock the mutex */ OS_MutSemGive(ConfigMutex); @@ -1917,7 +1882,7 @@ int PE::getDelayPeriods(float delay, uint8 *periods) for(i_hist = 1; i_hist < HIST_LEN; i_hist++) { - t_delay = 1.0e-6f * (m_Timestamp - m_TDelay.Get(i_hist)); + t_delay = 1.0e-6f * (CFE_TIME_ConvertTimeToMicros(HkTlm.Timestamp) - m_TDelay.Get(i_hist)); if(t_delay > delay) { break; diff --git a/apps/pe/fsw/src/pe_app.h b/apps/pe/fsw/src/pe_app.h index aae70553e..d9ed9712c 100644 --- a/apps/pe/fsw/src/pe_app.h +++ b/apps/pe/fsw/src/pe_app.h @@ -248,12 +248,6 @@ class PE Stats1F m_DistStats; Stats1F m_FlowQStats; Stats6F m_GpsStats; - uint16 m_LandCount; - - /* Validity */ - osalbool m_XyEstValid; - osalbool m_ZEstValid; - osalbool m_TzEstValid; /* Map */ struct map_projection_reference_s m_MapRef; @@ -270,54 +264,7 @@ class PE delay::BlockDelay10FLEN10 m_XDelay; delay::BlockDelayUINT64LEN10 m_TDelay; - /* Timestamps */ - uint64 m_Timestamp; - uint64 m_Timestamp_Hist; - uint64 m_TimestampLastBaro; - uint64 m_TimeLastBaro; - uint64 m_TimeLastGps; - uint64 m_TimeLastDist; - uint64 m_TimeLastLand; - uint64 m_TimeLastFlow; - - /* Timeouts */ - osalbool m_BaroTimeout; - osalbool m_GpsTimeout; - osalbool m_LandTimeout; - osalbool m_DistTimeout; - osalbool m_FlowTimeout; - - /* Faults */ - osalbool m_BaroFault; - osalbool m_GpsFault; - osalbool m_LandFault; - osalbool m_DistFault; - osalbool m_FlowFault; - - /* Fuse Flags */ - osalbool m_BaroFuse; - osalbool m_GpsFuse; - osalbool m_LandFuse; - osalbool m_DistFuse; - osalbool m_FlowFuse; - - /* Reference altitudes */ - float m_AltOrigin; - float m_BaroAltOrigin; - float m_GpsAltOrigin; - float m_DistAltOrigin; - /* Status */ - osalbool m_ReceivedGps; - osalbool m_LastArmedState; - osalbool m_EstimatorLocalInitialized; - osalbool m_EstimatorGlobalInitialized; - osalbool m_BaroInitialized; - osalbool m_GpsInitialized; - osalbool m_LandInitialized; - osalbool m_DistInitialized; - osalbool m_FlowInitialized; - osalbool m_AltOriginInitialized; osalbool m_ParamsUpdated; /* State space */ diff --git a/apps/pe/fsw/src/pe_msg.h b/apps/pe/fsw/src/pe_msg.h index 7e3d3b1af..594ee54e8 100644 --- a/apps/pe/fsw/src/pe_msg.h +++ b/apps/pe/fsw/src/pe_msg.h @@ -381,81 +381,85 @@ typedef struct typedef struct { /** \brief cFE SB Tlm Msg Hdr */ - uint8 TlmHeader[CFE_SB_TLM_HDR_SIZE]; + uint8 TlmHeader[CFE_SB_TLM_HDR_SIZE]; /** \petlmmnemonic \PE_CMDACPTCNT \brief Count of accepted commands */ - uint8 usCmdCnt; + uint8 CmdCnt; /** \petlmmnemonic \PE_CMDRJCTCNT \brief Count of failed commands */ - uint8 usCmdErrCnt; + uint8 CmdErrCnt; /** \brief Timestamp */ - uint64 Timestamp; + CFE_TIME_SysTime_t Timestamp; + + CFE_TIME_SysTime_t Timestamp_Hist; + + CFE_TIME_SysTime_t TimestampLastBaro; /** \brief Timestamp of last baro read */ - uint64 TimeLastBaro; + CFE_TIME_SysTime_t TimeLastBaro; /** \brief Timestamp of last gps read */ - uint64 TimeLastGps; + CFE_TIME_SysTime_t TimeLastGps; /** \brief Timestamp of last landing read */ - uint64 TimeLastLand; + CFE_TIME_SysTime_t TimeLastLand; /** \brief Timestamp of last dist read */ - uint64 TimeLastDist; + CFE_TIME_SysTime_t TimeLastDist; /** \brief Timestamp of last flow read */ - uint64 TimeLastFlow; + CFE_TIME_SysTime_t TimeLastFlow; /** \brief Origin altitude */ - float AltOrigin; + float AltOrigin; /** \brief Flag for if global estimator is initialized */ boolean EstimatorGlobalInitialized; /** \brief Origin altitude initialized flag */ - boolean AltOriginInitialized; + boolean AltOriginInitialized; /** \brief Flag for if baro is initialized */ boolean BaroInitialized; /** \brief Flag for baro fault */ - boolean BaroFault; + boolean BaroFault; /** \brief Origin altitude of baro */ - float BaroAltOrigin; + float BaroAltOrigin; /** \brief Flag for baro timeout */ - boolean BaroTimeout; + boolean BaroTimeout; /** \brief Flag for if gps is initialized */ boolean GpsInitialized; /** \brief Flag for GPS fault */ - boolean GpsFault; + boolean GpsFault; /** \brief Flag for GPS timeout */ - boolean GpsTimeout; + boolean GpsTimeout; /** \brief Origin altitude of GPS */ - float GpsAltOrigin; + float GpsAltOrigin; /** \brief Flag for if land is initialized */ boolean LandInitialized; /** \brief Flag for landing fault */ - boolean LandFault; + boolean LandFault; /** \brief Flag for landing timeout */ - boolean LandTimeout; + boolean LandTimeout; /** \brief Flag for XY estimation validity */ boolean XyEstValid; /** \brief Origin altitude of DIST */ - float m_DistAltOrigin; + float DistAltOrigin; /** \brief Flag for Z estimation validity */ boolean ZEstValid; @@ -463,6 +467,15 @@ typedef struct /** \brief Flag for terrain estimation validity */ boolean TzEstValid; + /* TODO */ + uint16 LandCount; + + /* TODO */ + boolean ReceivedGps; + + /* TODO */ + boolean LastArmedState; + /** \brief Flag for if local estimator is initialized */ boolean EstimatorLocalInitialized; @@ -476,19 +489,19 @@ typedef struct boolean DistTimeout; /** \brief Flag for if Dist is being integrated into estimation */ - boolean DistFused; + boolean DistFuse; /** \brief Flag for if Gps is being integrated into estimation */ - boolean GpsFused; + boolean GpsFuse; /** \brief Flag for if Baro is being integrated into estimation */ - boolean BaroFused; + boolean BaroFuse; /** \brief Flag for if Land is being integrated into estimation */ - boolean LandFused; + boolean LandFuse; /** \brief Flag for if Flow is being integrated into estimation */ - boolean FlowFused; + boolean FlowFuse; /** \brief Flag for if Flow is initialized */ boolean FlowInitialized; @@ -499,16 +512,16 @@ typedef struct /** \brief Flag for Flow timeout */ boolean FlowTimeout; - uint32 WakeupCount; - uint32 VehicleGpsPositionMsgCount; - uint32 VehicleStatusMsgCount; - uint32 VehicleLandDetectedMsgCount; - uint32 ActuatorArmedMsgCount; - uint32 VehicleAttitudeMsgCount; - uint32 SensorCombinedMsgCount; - uint32 VehicleAttitudeSetpointMsgCount; - uint32 DistanceSensorMsgCount; - uint32 OpticalFlowMsgCount; + uint32 WakeupCount; + uint32 VehicleGpsPositionMsgCount; + uint32 VehicleStatusMsgCount; + uint32 VehicleLandDetectedMsgCount; + uint32 ActuatorArmedMsgCount; + uint32 VehicleAttitudeMsgCount; + uint32 SensorCombinedMsgCount; + uint32 VehicleAttitudeSetpointMsgCount; + uint32 DistanceSensorMsgCount; + uint32 OpticalFlowMsgCount; } PE_HkTlm_t; diff --git a/apps/pe/fsw/src/sensors/baro.cpp b/apps/pe/fsw/src/sensors/baro.cpp index e3097481d..55c291a1c 100644 --- a/apps/pe/fsw/src/sensors/baro.cpp +++ b/apps/pe/fsw/src/sensors/baro.cpp @@ -32,6 +32,7 @@ *****************************************************************************/ #include "../pe_app.h" +#include "cfs_utils.h" void PE::baroInit() { @@ -47,19 +48,19 @@ void PE::baroInit() /* If finished */ if (m_BaroStats.getCount() > REQ_BARO_INIT_COUNT) { - m_BaroAltOrigin = m_BaroStats.getMean()[0]; + HkTlm.BaroAltOrigin = m_BaroStats.getMean()[0]; (void) CFE_EVS_SendEvent(PE_BARO_OK_INF_EID, CFE_EVS_INFORMATION, "Baro initialized. Mean: (%d) Std dev: (%d) cm", (int)m_BaroStats.getMean()[0], (int)(100 * m_BaroStats.getStdDev()[0])); - m_BaroTimeout = FALSE; + HkTlm.BaroTimeout = FALSE; - if (!m_AltOriginInitialized) + if (!HkTlm.AltOriginInitialized) { - m_AltOriginInitialized = TRUE; - m_AltOrigin = m_BaroAltOrigin; + HkTlm.AltOriginInitialized = TRUE; + HkTlm.AltOrigin = HkTlm.BaroAltOrigin; } } @@ -89,7 +90,7 @@ void PE::baroCorrect() } /* subtract baro origin alt */ - m_Baro.y[0] -= m_BaroAltOrigin; + m_Baro.y[0] -= HkTlm.BaroAltOrigin; /* measured altitude, negative down dir */ m_Baro.C[Y_baro_z][X_z] = -1.0f; @@ -111,26 +112,26 @@ void PE::baroCorrect() if (m_Baro.beta > BETA_TABLE[n_y_baro]) { - if (!m_BaroFault) + if (!HkTlm.BaroFault) { if(Initialized()) { (void) CFE_EVS_SendEvent(PE_BARO_FAULT_ERR_EID, CFE_EVS_ERROR, "Baro fault, r %5.2f m, beta %5.2f", m_Baro.r[0], m_Baro.beta); } - m_BaroFault = TRUE; + HkTlm.BaroFault = TRUE; } } else { - if (m_BaroFault) + if (HkTlm.BaroFault) { - m_BaroFault = FALSE; + HkTlm.BaroFault = FALSE; (void) CFE_EVS_SendEvent(PE_BARO_OK_INF_EID, CFE_EVS_INFORMATION, "Baro OK"); - m_BaroInitialized = TRUE; + HkTlm.BaroInitialized = TRUE; } } @@ -159,13 +160,13 @@ void PE::baroCheckTimeout() { uint64 Timestamp = 0; - if (m_Timestamp > m_TimeLastBaro) + if (CFE_TIME_Compare(HkTlm.Timestamp, HkTlm.TimeLastBaro) == CFE_TIME_A_GT_B) { - Timestamp = m_Timestamp - m_TimeLastBaro; + Timestamp = CFE_TIME_ConvertTimeToMicros(HkTlm.Timestamp) - CFE_TIME_ConvertTimeToMicros(HkTlm.TimeLastBaro); } - else if (m_Timestamp < m_TimeLastBaro) + else if (CFE_TIME_Compare(HkTlm.Timestamp, HkTlm.TimeLastBaro) == CFE_TIME_A_LT_B) { - Timestamp = m_TimeLastBaro - m_Timestamp; + Timestamp = CFE_TIME_ConvertTimeToMicros(HkTlm.TimeLastBaro) - CFE_TIME_ConvertTimeToMicros(HkTlm.Timestamp); } else { @@ -174,9 +175,9 @@ void PE::baroCheckTimeout() if (Timestamp > BARO_TIMEOUT) { - if (!m_BaroTimeout) + if (!HkTlm.BaroTimeout) { - m_BaroTimeout = TRUE; + HkTlm.BaroTimeout = TRUE; m_BaroStats.reset(); (void) CFE_EVS_SendEvent(PE_BARO_TIMEOUT_ERR_EID, CFE_EVS_ERROR, "Baro timeout: %llu us", Timestamp); diff --git a/apps/pe/fsw/src/sensors/dist.cpp b/apps/pe/fsw/src/sensors/dist.cpp index 0abc4b3e7..8992b5910 100644 --- a/apps/pe/fsw/src/sensors/dist.cpp +++ b/apps/pe/fsw/src/sensors/dist.cpp @@ -48,19 +48,19 @@ void PE::distInit() /* If finished */ if (m_DistStats.getCount() > REQ_DIST_INIT_COUNT) { - m_DistAltOrigin = m_DistStats.getMean()[0]; + HkTlm.DistAltOrigin = m_DistStats.getMean()[0]; (void) CFE_EVS_SendEvent(PE_DIST_OK_INF_EID, CFE_EVS_INFORMATION, "Distance sensor initialized. Mean: (%d) Std dev: (%d) cm", (int)m_DistStats.getMean()[0], (int)(100 * m_DistStats.getStdDev()[0])); - m_DistTimeout = FALSE; + HkTlm.DistTimeout = FALSE; - if (!m_AltOriginInitialized) + if (!HkTlm.AltOriginInitialized) { - m_AltOriginInitialized = TRUE; - m_AltOrigin = m_DistAltOrigin; + HkTlm.AltOriginInitialized = TRUE; + HkTlm.AltOrigin = HkTlm.DistAltOrigin; } } } @@ -94,7 +94,7 @@ int32 PE::distMeasure(math::Vector1F &y) y.Zero(); m_DistStats.update(d); y[0] = (d + ConfigTblPtr->DIST_OFF_Z) * cosf(m_Euler[0]) * cosf(m_Euler[1]); - m_TimeLastDist = CFE_SB_GetMsgTimeInMicros((CFE_SB_MsgPtr_t)&m_DistanceSensor); + HkTlm.TimeLastDist = CFE_SB_GetMsgTime((CFE_SB_MsgPtr_t)&m_DistanceSensor); distMeasure_Exit_Tag: return Status; @@ -143,26 +143,26 @@ void PE::distCorrect() if (m_Dist.beta > DIST_BETA_MAX) { - if (!m_DistFault) + if (!HkTlm.DistFault) { if(Initialized()) { (void) CFE_EVS_SendEvent(PE_DIST_FAULT_ERR_EID, CFE_EVS_ERROR, "Dist fault, d %5.2f m r %5.2f m, beta %5.2f", m_DistanceSensor.CurrentDistance, m_Dist.r[0], m_Dist.beta); } - m_DistFault = TRUE; + HkTlm.DistFault = TRUE; } goto end_of_function; } else { - if (m_DistFault) + if (HkTlm.DistFault) { - m_DistFault = FALSE; + HkTlm.DistFault = FALSE; (void) CFE_EVS_SendEvent(PE_DIST_OK_INF_EID, CFE_EVS_INFORMATION, "Dist OK r %5.2f m, beta %5.2f", m_Dist.r[0], m_Dist.beta); - m_DistInitialized = TRUE; + HkTlm.DistInitialized = TRUE; } } @@ -191,20 +191,20 @@ void PE::distCheckTimeout() { uint64 Timestamp = 0; - if (m_Timestamp > m_TimeLastDist) + if (CFE_TIME_Compare(HkTlm.Timestamp, HkTlm.TimeLastDist) == CFE_TIME_A_GT_B) { - Timestamp = m_Timestamp - m_TimeLastDist; + Timestamp = CFE_TIME_ConvertTimeToMicros(HkTlm.Timestamp) - CFE_TIME_ConvertTimeToMicros(HkTlm.TimeLastDist); } - else if (m_Timestamp < m_TimeLastDist) + else if (CFE_TIME_Compare(HkTlm.Timestamp, HkTlm.TimeLastDist) == CFE_TIME_A_LT_B) { - Timestamp = m_TimeLastDist - m_Timestamp; + Timestamp = CFE_TIME_ConvertTimeToMicros(HkTlm.TimeLastDist) - CFE_TIME_ConvertTimeToMicros(HkTlm.Timestamp); } if (Timestamp > DIST_TIMEOUT) { - if (!m_DistTimeout) + if (!HkTlm.DistTimeout) { - m_DistTimeout = TRUE; + HkTlm.DistTimeout = TRUE; m_DistStats.reset(); (void) CFE_EVS_SendEvent(PE_DIST_TIMEOUT_ERR_EID, CFE_EVS_ERROR, "Dist timeout: %llu us", Timestamp); diff --git a/apps/pe/fsw/src/sensors/flow.cpp b/apps/pe/fsw/src/sensors/flow.cpp index 48e17056d..5fd4db952 100644 --- a/apps/pe/fsw/src/sensors/flow.cpp +++ b/apps/pe/fsw/src/sensors/flow.cpp @@ -32,6 +32,7 @@ *****************************************************************************/ #include "../pe_app.h" +#include "cfs_utils.h" void PE::flowInit() { @@ -52,7 +53,7 @@ void PE::flowInit() (int)m_FlowQStats.getMean()[0], (int)m_FlowQStats.getStdDev()[0]); - m_FlowTimeout = FALSE; + HkTlm.FlowTimeout = FALSE; } } @@ -80,7 +81,7 @@ int32 PE::flowMeasure(math::Vector2F &y) } /* Check if AGL valid */ - if (m_DistFault) { + if (HkTlm.DistFault) { Status = -1; goto flowMeasure_Exit_Tag; } @@ -92,7 +93,7 @@ int32 PE::flowMeasure(math::Vector2F &y) } /* Check if terrain estimate valid */ - if (!m_TzEstValid) { + if (!HkTlm.TzEstValid) { Status = -1; goto flowMeasure_Exit_Tag; } @@ -118,8 +119,8 @@ int32 PE::flowMeasure(math::Vector2F &y) } /* Angular rotation in x, y axis */ - gyro_x_rad = m_FlowGyroXHighPass.Update(m_OpticalFlowMsg.GyroXRateIntegral, m_TimeLastFlow - m_Timestamp, FLOW_GYRO_HP_CUTOFF); - gyro_y_rad = m_FlowGyroYHighPass.Update(m_OpticalFlowMsg.GyroYRateIntegral, m_TimeLastFlow - m_Timestamp, FLOW_GYRO_HP_CUTOFF); + gyro_x_rad = m_FlowGyroXHighPass.Update(m_OpticalFlowMsg.GyroXRateIntegral, CFE_TIME_ConvertTimeToMicros(HkTlm.TimeLastFlow) - CFE_TIME_ConvertTimeToMicros(HkTlm.Timestamp), FLOW_GYRO_HP_CUTOFF); + gyro_y_rad = m_FlowGyroYHighPass.Update(m_OpticalFlowMsg.GyroYRateIntegral, CFE_TIME_ConvertTimeToMicros(HkTlm.TimeLastFlow) - CFE_TIME_ConvertTimeToMicros(HkTlm.Timestamp), FLOW_GYRO_HP_CUTOFF); /* Compute velocities in body frame using ground distance */ /* Note: Integral rates in the optical_flow msg are RH rotations about body axes */ @@ -134,7 +135,7 @@ int32 PE::flowMeasure(math::Vector2F &y) y[Y_flow_vx] = delta_n[0] / dt_flow; y[Y_flow_vy] = delta_n[1] / dt_flow; - m_TimeLastFlow = m_Timestamp; + HkTlm.TimeLastFlow = HkTlm.Timestamp; m_FlowQStats.update(float(m_OpticalFlowMsg.Quality)); flowMeasure_Exit_Tag: @@ -215,31 +216,31 @@ void PE::flowCorrect() if (m_Flow.beta > BETA_TABLE[n_y_flow]) { - if (!m_FlowFault) + if (!HkTlm.FlowFault) { if(Initialized()) { (void) CFE_EVS_SendEvent(PE_FLOW_FAULT_ERR_EID, CFE_EVS_ERROR, "Flow fault, beta %5.2f", m_Flow.beta); } - m_FlowFault = TRUE; + HkTlm.FlowFault = TRUE; } goto end_of_function; } else { - if (m_FlowFault) + if (HkTlm.FlowFault) { - m_FlowFault = FALSE; + HkTlm.FlowFault = FALSE; (void) CFE_EVS_SendEvent(PE_FLOW_OK_INF_EID, CFE_EVS_INFORMATION, "Flow OK, beta %5.2f", m_Flow.beta); - m_FlowInitialized = TRUE; + HkTlm.FlowInitialized = TRUE; } } /* Kalman filter correction */ - if (!m_FlowFault) + if (!HkTlm.FlowFault) { /* 10x10 * 10x2 * 2x2 */ m_Flow.K = (m_StateCov * m_Flow.C.Transpose()) * m_Flow.S_I; @@ -263,20 +264,20 @@ void PE::flowCheckTimeout() { uint64 Timestamp = 0; - if (m_Timestamp > m_TimeLastFlow) + if (CFE_TIME_Compare(HkTlm.Timestamp, HkTlm.TimeLastFlow) == CFE_TIME_A_GT_B) { - Timestamp = m_Timestamp - m_TimeLastFlow; + Timestamp = CFE_TIME_ConvertTimeToMicros(HkTlm.Timestamp) - CFE_TIME_ConvertTimeToMicros(HkTlm.TimeLastFlow); } - else if (m_Timestamp < m_TimeLastFlow) + else if (CFE_TIME_Compare(HkTlm.Timestamp, HkTlm.TimeLastFlow) == CFE_TIME_A_LT_B) { - Timestamp = m_TimeLastFlow - m_Timestamp; + Timestamp = CFE_TIME_ConvertTimeToMicros(HkTlm.TimeLastFlow) - CFE_TIME_ConvertTimeToMicros(HkTlm.Timestamp); } if (Timestamp > FLOW_TIMEOUT) { - if (!m_FlowTimeout) + if (!HkTlm.FlowTimeout) { - m_FlowTimeout = TRUE; + HkTlm.FlowTimeout = TRUE; m_FlowQStats.reset(); (void) CFE_EVS_SendEvent(PE_FLOW_TIMEOUT_ERR_EID, CFE_EVS_ERROR, "Flow timeout: %llu us", Timestamp); diff --git a/apps/pe/fsw/src/sensors/gps.cpp b/apps/pe/fsw/src/sensors/gps.cpp index 91a508f1e..996d8861b 100644 --- a/apps/pe/fsw/src/sensors/gps.cpp +++ b/apps/pe/fsw/src/sensors/gps.cpp @@ -32,6 +32,7 @@ *****************************************************************************/ #include "../pe_app.h" +#include "cfs_utils.h" void PE::gpsInit() { @@ -66,18 +67,18 @@ void PE::gpsInit() double gpsLon = m_GpsStats.getMean()[1]; float gpsAlt = m_GpsStats.getMean()[2]; - m_GpsTimeout = FALSE; + HkTlm.GpsTimeout = FALSE; m_GpsStats.reset(); - if (!m_ReceivedGps) + if (!HkTlm.ReceivedGps) { /* this is the first time we have received gps */ - m_ReceivedGps = TRUE; + HkTlm.ReceivedGps = TRUE; /* note we subtract X_z which is in down directon so it is * an addition **/ - m_GpsAltOrigin = gpsAlt + m_StateVec[X_z]; + HkTlm.GpsAltOrigin = gpsAlt + m_StateVec[X_z]; /* find lat, lon of current origin by subtracting x and y * if not using vision position since vision will @@ -88,21 +89,21 @@ void PE::gpsInit() double gpsLatOrigin = 0; double gpsLonOrigin = 0; /* reproject at current coordinates */ - map_projection_init(&m_MapRef, gpsLat, gpsLon, m_Timestamp); + map_projection_init(&m_MapRef, gpsLat, gpsLon, CFE_TIME_ConvertTimeToMicros(HkTlm.Timestamp)); /* find origin */ map_projection_reproject(&m_MapRef, -m_StateVec[X_x], -m_StateVec[X_y], &gpsLatOrigin, &gpsLonOrigin); /* reinit origin */ - map_projection_init(&m_MapRef, gpsLatOrigin, gpsLonOrigin, m_Timestamp); + map_projection_init(&m_MapRef, gpsLatOrigin, gpsLonOrigin, CFE_TIME_ConvertTimeToMicros(HkTlm.Timestamp)); /* always override alt origin on first GPS to fix * possible baro offset in global altitude at init **/ - m_AltOrigin = m_GpsAltOrigin; - m_AltOriginInitialized = TRUE; + HkTlm.AltOrigin = HkTlm.GpsAltOrigin; + HkTlm.AltOriginInitialized = TRUE; (void) CFE_EVS_SendEvent(PE_GPS_OK_INF_EID, CFE_EVS_INFORMATION, "GPS initialized origin. Lat: %6.2f Lon: %6.2f Alt: %5.1f m", - gpsLatOrigin, gpsLonOrigin, double(m_GpsAltOrigin)); + gpsLatOrigin, gpsLonOrigin, double(HkTlm.GpsAltOrigin)); } (void) CFE_EVS_SendEvent(PE_GPS_OK_INF_EID, CFE_EVS_INFORMATION, @@ -129,7 +130,7 @@ int PE::gpsMeasure(math::Vector6F &y) /* increament sums for mean */ m_GpsStats.update(y); - m_TimeLastGps = m_Timestamp; + HkTlm.TimeLastGps = HkTlm.Timestamp; return CFE_SUCCESS; } @@ -152,7 +153,7 @@ void PE::gpsCorrect() m_GPS.px = 0; m_GPS.py = 0; - m_GPS.pz = -(m_GPS.alt - m_GpsAltOrigin); + m_GPS.pz = -(m_GPS.alt - HkTlm.GpsAltOrigin); map_projection_project(&m_MapRef, m_GPS.lat, m_GPS.lon, &m_GPS.px, &m_GPS.py); m_GPS.y[0] = m_GPS.px; @@ -237,7 +238,7 @@ void PE::gpsCorrect() if (m_GPS.beta / BETA_TABLE[n_y_gps] > m_GPS.beta_thresh) { - if (!m_GpsFault) + if (!HkTlm.GpsFault) { if(Initialized()) { @@ -250,18 +251,18 @@ void PE::gpsCorrect() double(m_GPS.r[4]*m_GPS.r[4] / m_GPS.S_I[4][4]), double(m_GPS.r[5]*m_GPS.r[5] / m_GPS.S_I[5][5])); } - m_GpsFault = TRUE; + HkTlm.GpsFault = TRUE; } } else { - if (m_GpsFault) + if (HkTlm.GpsFault) { - m_GpsFault = FALSE; + HkTlm.GpsFault = FALSE; (void) CFE_EVS_SendEvent(PE_GPS_OK_INF_EID, CFE_EVS_INFORMATION, "GPS OK"); - m_GpsInitialized = TRUE; + HkTlm.GpsInitialized = TRUE; } } @@ -284,11 +285,11 @@ void PE::gpsCorrect() void PE::gpsCheckTimeout() { - if (m_Timestamp - m_TimeLastGps > GPS_TIMEOUT) + if ((CFE_TIME_ConvertTimeToMicros(HkTlm.Timestamp) - CFE_TIME_ConvertTimeToMicros(HkTlm.TimeLastGps)) > GPS_TIMEOUT) { - if (!m_GpsTimeout) + if (!HkTlm.GpsTimeout) { - m_GpsTimeout = TRUE; + HkTlm.GpsTimeout = TRUE; m_GpsStats.reset(); (void) CFE_EVS_SendEvent(PE_GPS_TIMEOUT_ERR_EID, CFE_EVS_ERROR, "GPS timeout"); diff --git a/apps/pe/fsw/src/sensors/land.cpp b/apps/pe/fsw/src/sensors/land.cpp index c78ed516c..8f3b707d7 100644 --- a/apps/pe/fsw/src/sensors/land.cpp +++ b/apps/pe/fsw/src/sensors/land.cpp @@ -32,6 +32,7 @@ *****************************************************************************/ #include "../pe_app.h" +#include "cfs_utils.h" boolean PE::landed() { @@ -58,13 +59,13 @@ void PE::landInit() if (landMeasure(y) != CFE_SUCCESS) { - m_LandCount = 0; + HkTlm.LandCount = 0; } /* if finished */ - if (m_LandCount > REQ_LAND_INIT_COUNT) + if (HkTlm.LandCount > REQ_LAND_INIT_COUNT) { - m_LandTimeout = FALSE; + HkTlm.LandTimeout = FALSE; (void) CFE_EVS_SendEvent(PE_LAND_OK_INF_EID, CFE_EVS_INFORMATION, "Land detector initialized"); @@ -73,9 +74,9 @@ void PE::landInit() int PE::landMeasure(math::Vector3F &y) { - m_TimeLastLand = m_Timestamp; + HkTlm.TimeLastLand = HkTlm.Timestamp; y.Zero(); - m_LandCount += 1; + HkTlm.LandCount += 1; return CFE_SUCCESS; } @@ -113,9 +114,9 @@ void PE::landCorrect() if (m_Land.beta / BETA_TABLE[n_y_land] > m_Land.beta_thresh) { - if (!m_LandFault) + if (!HkTlm.LandFault) { - m_LandFault = TRUE; + HkTlm.LandFault = TRUE; if(Initialized()) { (void) CFE_EVS_SendEvent(PE_LAND_FAULT_ERR_EID, CFE_EVS_ERROR, @@ -125,12 +126,12 @@ void PE::landCorrect() } else { - if (m_LandFault) + if (HkTlm.LandFault) { - m_LandFault = FALSE; + HkTlm.LandFault = FALSE; (void) CFE_EVS_SendEvent(PE_LAND_OK_INF_EID, CFE_EVS_ERROR, "Land detector OK"); - m_LandInitialized = TRUE; + HkTlm.LandInitialized = TRUE; } } @@ -146,12 +147,12 @@ void PE::landCorrect() void PE::landCheckTimeout() { - if (m_Timestamp - m_TimeLastLand > LAND_TIMEOUT) + if (CFE_TIME_ConvertTimeToMicros(HkTlm.Timestamp) - CFE_TIME_ConvertTimeToMicros(HkTlm.TimeLastLand) > LAND_TIMEOUT) { - if (!m_LandTimeout) + if (!HkTlm.LandTimeout) { - m_LandTimeout = TRUE; - m_LandCount = 0; + HkTlm.LandTimeout = TRUE; + HkTlm.LandCount = 0; (void) CFE_EVS_SendEvent(PE_LAND_TIMEOUT_ERR_EID, CFE_EVS_ERROR, "Land detector timeout"); } diff --git a/apps/px4lib/fsw/public_inc/px4_msgs.h b/apps/px4lib/fsw/public_inc/px4_msgs.h index 7a76ecd35..bf9042d1d 100644 --- a/apps/px4lib/fsw/public_inc/px4_msgs.h +++ b/apps/px4lib/fsw/public_inc/px4_msgs.h @@ -1176,7 +1176,7 @@ typedef struct float Vel_e_m_s; float Vel_d_m_s; float COG; - int32 TimestampTimeRelative; + CFE_TIME_SysTime_t TimestampTimeRelative; PX4_GpsFixType_t FixType; boolean VelNedValid; uint8 SatellitesUsed; @@ -1193,41 +1193,41 @@ typedef struct typedef struct { - uint8 TlmHeader[CFE_SB_TLM_HDR_SIZE]; + uint8 TlmHeader[CFE_SB_TLM_HDR_SIZE]; uint64 RefTimestamp; - double RefLat; - double RefLon; - uint64 SurfaceBottomTimestamp; - float X; - float Y; - float Z; - float Delta_XY[2]; - float Delta_Z; - float VX; - float VY; - float VZ; - float Delta_VXY[2]; - float Delta_VZ; - float AX; - float AY; - float AZ; - float Yaw; - float RefAlt; - float DistBottom; - float DistBottomRate; - float EpH; - float EpV; - float EvH; - float EvV; - uint8 EstimatorType; + double RefLat; + double RefLon; + uint64 SurfaceBottomTimestamp; + float X; + float Y; + float Z; + float Delta_XY[2]; + float Delta_Z; + float VX; + float VY; + float VZ; + float Delta_VXY[2]; + float Delta_VZ; + float AX; + float AY; + float AZ; + float Yaw; + float RefAlt; + float DistBottom; + float DistBottomRate; + float EpH; + float EpV; + float EvH; + float EvV; + uint8 EstimatorType; boolean XY_Valid; boolean Z_Valid; boolean V_XY_Valid; boolean V_Z_Valid; - uint8 XY_ResetCounter; - uint8 Z_ResetCounter; - uint8 VXY_ResetCounter; - uint8 VZ_ResetCounter; + uint8 XY_ResetCounter; + uint8 Z_ResetCounter; + uint8 VXY_ResetCounter; + uint8 VZ_ResetCounter; boolean XY_Global; boolean Z_Global; boolean DistBottomValid; From fde364c8dd13df41e57fdecbe0d7a633c54b6dd7 Mon Sep 17 00:00:00 2001 From: lorenzo-gomez-windhover Date: Wed, 24 Feb 2021 18:13:26 -0600 Subject: [PATCH 168/370] -Added Events pattern for auto-generation of OPIs(nedds work) -TODO:Implement container pattern for simpler scripts --- .../Displays/Core/EVS/Events.opi | 165 ++++++++++++++++++ 1 file changed, 165 insertions(+) create mode 100644 core/base/tools/commander/workspace_template/Displays/Core/EVS/Events.opi diff --git a/core/base/tools/commander/workspace_template/Displays/Core/EVS/Events.opi b/core/base/tools/commander/workspace_template/Displays/Core/EVS/Events.opi new file mode 100644 index 000000000..0fa47d6ee --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/Core/EVS/Events.opi @@ -0,0 +1,165 @@ + + + + + false + -1 + -1 + + false + + + + 1.5.4.202102122300 + + + + 6 + 600 + + true + + + + + + init + importPackage(Packages.org.csstudio.opibuilder.scriptUtil); +importPackage(org.csstudio.opibuilder.properties); +importPackage(org.csstudio.opibuilder.model); + +var app_name = display.getMacroValue("APP"); +var commands = ['Reset']; +if(app_name != null && app_name!="") +{ + display.getWidget("app_name").setPropertyValue("text",app_name); + for(var i =0;i<8;i++) + { + for(var j =0;j<commands.length;j++) + { + //Create a new Macro Input + var event_id_macro_input = DataUtil.createMacrosInput(true); + + //Put a macro in the new Macro Input + event_id_macro_input.put("EVENT_ID", i); + event_id_macro_input.put("APP", "TO"); + + var label_widget = WidgetUtil.createWidgetModel("org.csstudio.opibuilder.widgets.Label"); + var button_widget = WidgetUtil.createWidgetModel("org.csstudio.opibuilder.widgets.ActionButton"); + var actions = FileUtil.loadXMLFile("/Displays/Core/EVS/XMLScripts/ResetEvent.xml"); + var action_property = new ActionsProperty(AbstractWidgetModel.PROP_ACTIONS, "Actions", WidgetPropertyCategory.Behavior, false); + var xml_input_property = action_property.readValueFromXML(actions); + + action_property.setPropertyValue(xml_input_property); + button_widget.addProperty(action_property); + button_widget.setPropertyValue("pv_value", i); + button_widget.setPropertyValue("text", commands[j]); + + display.addChild(label_widget); + display.addChild(button_widget); + } + } + +} + =1 + + + true + true + true + true + true + Display + 800 + -193d70a0:177d50fd41f:-7f32 + -1 + -1 + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 31 + 2 + Label + + + true + true + false + + + ID + + true + 1 + true + Label + 73 + false + -193d70a0:177d50fd41f:-7f23 + 43 + 132 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 31 + 1 + app_name + + + true + true + false + + + APP_NAME + + true + 1 + true + Label + 199 + false + -193d70a0:177d50fd41f:-7f0e + 144 + 132 + + + true + 2 + Grid Layout + 2 + Grid Layout + 76586248:177d58c70f5:-7e00 + + \ No newline at end of file From c2517a1283d287c0194eb0a69847ea8a1436d23a Mon Sep 17 00:00:00 2001 From: Mathew Benson Date: Wed, 24 Feb 2021 18:13:38 -0600 Subject: [PATCH 169/370] More messages converted from PX4 time to cFE time. --- apps/mac/fsw/src/mac_app.cpp | 2 +- apps/pe/fsw/src/pe_app.cpp | 19 ++++--------------- apps/px4lib/fsw/public_inc/px4_msgs.h | 18 +++++++++--------- config/shared/apps/gps/src/gps_custom.c | 18 +++++++++++------- 4 files changed, 25 insertions(+), 32 deletions(-) diff --git a/apps/mac/fsw/src/mac_app.cpp b/apps/mac/fsw/src/mac_app.cpp index 476fda408..41cf62010 100644 --- a/apps/mac/fsw/src/mac_app.cpp +++ b/apps/mac/fsw/src/mac_app.cpp @@ -909,7 +909,7 @@ void MAC::RunController(void) /* Publish actuator controls */ CFE_SB_TimeStampMsg((CFE_SB_MsgPtr_t)&m_ActuatorControls0); - m_ActuatorControls0.SampleTime = CFE_SB_GetMsgTimeInMicros((CFE_SB_MsgPtr_t)&CVT.ControlState); + m_ActuatorControls0.SampleTime = CFE_SB_GetMsgTime((CFE_SB_MsgPtr_t)&CVT.ControlState); m_ActuatorControls0.Control[0] = (isfinite(m_AttControl[0])) ? m_AttControl[0] : 0.0f; m_ActuatorControls0.Control[1] = (isfinite(m_AttControl[1])) ? m_AttControl[1] : 0.0f; m_ActuatorControls0.Control[2] = (isfinite(m_AttControl[2])) ? m_AttControl[2] : 0.0f; diff --git a/apps/pe/fsw/src/pe_app.cpp b/apps/pe/fsw/src/pe_app.cpp index 44698616b..192370999 100644 --- a/apps/pe/fsw/src/pe_app.cpp +++ b/apps/pe/fsw/src/pe_app.cpp @@ -1282,9 +1282,7 @@ void PE::SendVehicleLocalPositionMsg() if(data_valid) { - CFE_SB_TimeStampMsg((CFE_SB_Msg_t*)&m_VehicleLocalPositionMsg); - /* TODO: Set the time from m_Timestamp */ - //m_VehicleLocalPositionMsg.Timestamp = m_Timestamp; + CFE_SB_SetMsgTime((CFE_SB_Msg_t*)&m_VehicleLocalPositionMsg, HkTlm.Timestamp); m_VehicleLocalPositionMsg.XY_Valid = HkTlm.XyEstValid; m_VehicleLocalPositionMsg.Z_Valid = HkTlm.ZEstValid; m_VehicleLocalPositionMsg.V_XY_Valid = HkTlm.XyEstValid; @@ -1298,22 +1296,13 @@ void PE::SendVehicleLocalPositionMsg() m_VehicleLocalPositionMsg.Yaw = m_Euler[2]; m_VehicleLocalPositionMsg.XY_Global = HkTlm.XyEstValid; m_VehicleLocalPositionMsg.Z_Global = !HkTlm.BaroTimeout; - - m_VehicleLocalPositionMsg.RefTimestamp = CFE_TIME_ConvertTimeToMicros(HkTlm.Timestamp); - //m_VehicleLocalPositionMsg.RefTimestamp.Seconds = m_Timestamp / 1000000; - //m_VehicleLocalPositionMsg.RefTimestamp.Subseconds = CFE_TIME_Micro2SubSecs(m_Timestamp - (m_VehicleLocalPositionMsg.RefTimestamp.Seconds * 1000000)); - + m_VehicleLocalPositionMsg.RefTimestamp = HkTlm.Timestamp; m_VehicleLocalPositionMsg.RefLat = m_MapRef.lat_rad * 180/M_PI; m_VehicleLocalPositionMsg.RefLon = m_MapRef.lon_rad * 180/M_PI; m_VehicleLocalPositionMsg.RefAlt = HkTlm.AltOrigin; m_VehicleLocalPositionMsg.DistBottom = m_AglLowPass.m_State; m_VehicleLocalPositionMsg.DistBottomRate = m_XLowPass[X_vz]; - m_VehicleLocalPositionMsg.SurfaceBottomTimestamp = CFE_TIME_ConvertTimeToMicros(HkTlm.Timestamp); - - //m_VehicleLocalPositionMsg.SurfaceBottomTimestamp.Seconds = m_Timestamp / 1000000; - //m_VehicleLocalPositionMsg.SurfaceBottomTimestamp.Subseconds = CFE_TIME_Micro2SubSecs(m_Timestamp - (m_VehicleLocalPositionMsg.RefTimestamp.Seconds * 1000000)); - - + m_VehicleLocalPositionMsg.SurfaceBottomTimestamp = HkTlm.Timestamp; m_VehicleLocalPositionMsg.DistBottomValid = dist_bottom_valid; m_VehicleLocalPositionMsg.EpH = eph; m_VehicleLocalPositionMsg.EpV = epv; @@ -1370,7 +1359,7 @@ void PE::SendVehicleGlobalPositionMsg() if(data_valid) { CFE_SB_SetMsgTime((CFE_SB_MsgPtr_t)&m_VehicleGlobalPositionMsg, HkTlm.Timestamp); - m_VehicleGlobalPositionMsg.TimeUtcUsec = m_VehicleGpsPositionMsg.TimeUtcUsec; + m_VehicleGlobalPositionMsg.TimeUtc = m_VehicleGpsPositionMsg.TimeUtc; m_VehicleGlobalPositionMsg.Lat = lat; m_VehicleGlobalPositionMsg.Lon = lon; m_VehicleGlobalPositionMsg.Alt = alt; diff --git a/apps/px4lib/fsw/public_inc/px4_msgs.h b/apps/px4lib/fsw/public_inc/px4_msgs.h index bf9042d1d..87e71f7a9 100644 --- a/apps/px4lib/fsw/public_inc/px4_msgs.h +++ b/apps/px4lib/fsw/public_inc/px4_msgs.h @@ -589,7 +589,7 @@ typedef struct typedef struct { uint8 TlmHeader[CFE_SB_TLM_HDR_SIZE]; - uint64 SampleTime; + CFE_TIME_SysTime_t SampleTime; float Control[PX4_ACTUATOR_CONTROL_COUNT]; } PX4_ActuatorControlsMsg_t; @@ -853,7 +853,7 @@ typedef struct float GyroZRateIntegral; float GroundDistance; uint32 IntegrationTimespan; - uint32 TimeSinceLastSonarUpdate; + CFE_TIME_SysTime_t TimeSinceLastSonarUpdate; uint16 FrameCountSinceLastReadout; int16 GyroTemperature; uint8 SensorID; @@ -862,7 +862,7 @@ typedef struct typedef struct { - uint64 Timestamp; + CFE_TIME_SysTime_t Timestamp; double Lat; double Lon; float X; @@ -1031,8 +1031,8 @@ typedef struct typedef struct { uint8 TlmHeader[CFE_SB_TLM_HDR_SIZE]; - uint64 HeartbeatTime; - uint64 TelemTime; + CFE_TIME_SysTime_t HeartbeatTime; + CFE_TIME_SysTime_t TelemTime; uint16 RxErrors; uint16 Fixed; PX4_TelemetryStatusRadioType_t Type; @@ -1124,7 +1124,7 @@ typedef struct typedef struct { uint8 TlmHeader[CFE_SB_TLM_HDR_SIZE]; - uint64 TimeUtcUsec; + CFE_TIME_SysTime_t TimeUtc; double Lat; double Lon; float Alt; @@ -1158,7 +1158,7 @@ typedef struct typedef struct { uint8 TlmHeader[CFE_SB_TLM_HDR_SIZE]; - uint64 TimeUtcUsec; + CFE_TIME_SysTime_t TimeUtc; int32 Lat; int32 Lon; int32 Alt; @@ -1194,10 +1194,10 @@ typedef struct typedef struct { uint8 TlmHeader[CFE_SB_TLM_HDR_SIZE]; - uint64 RefTimestamp; + CFE_TIME_SysTime_t RefTimestamp; double RefLat; double RefLon; - uint64 SurfaceBottomTimestamp; + CFE_TIME_SysTime_t SurfaceBottomTimestamp; float X; float Y; float Z; diff --git a/config/shared/apps/gps/src/gps_custom.c b/config/shared/apps/gps/src/gps_custom.c index 59ac67a3c..e0e1d16dc 100644 --- a/config/shared/apps/gps/src/gps_custom.c +++ b/config/shared/apps/gps/src/gps_custom.c @@ -44,6 +44,7 @@ #include "msg_ids.h" #include "simlib.h" #include "px4lib.h" +#include "cfs_utils.h" #include "gps_platform_cfg.h" #include "gps_event_driven.h" @@ -251,8 +252,8 @@ boolean GPS_Custom_Measure_PositionMsg(PX4_VehicleGpsPositionMsg_t *Measure) //copyDataPtr = CFE_SB_GetUserData((CFE_SB_MsgPtr_t)Measure); //memcpy(copyDataPtr, userDataPtr, userDataLength); - Measure->Timestamp = GPS_AppCustomData.GpsPositionMsg.Timestamp; - Measure->TimeUtcUsec = GPS_AppCustomData.GpsPositionMsg.TimeUtcUsec; + CFE_SB_CopyMsgTime((CFE_SB_MsgPtr_t)&Measure, (CFE_SB_MsgPtr_t)&GPS_AppCustomData.GpsPositionMsg); + Measure->TimeUtc = GPS_AppCustomData.GpsPositionMsg.TimeUtc; Measure->Lat = GPS_AppCustomData.GpsPositionMsg.Lat; Measure->Lon = GPS_AppCustomData.GpsPositionMsg.Lon; Measure->Alt = GPS_AppCustomData.GpsPositionMsg.Alt; @@ -338,6 +339,8 @@ boolean GPS_Custom_Read_and_Parse(const uint32 timeout) } case GPS_NAV_NAVPVT_MID: { + CFE_TIME_SysTime_t currentTime; + GPS_NAV_PVT_t *msgIn = (GPS_NAV_PVT_t*) CFE_SB_GetUserData((CFE_SB_Msg_t*)&message); OS_MutSemTake(GPS_AppCustomData.MutexPosition); /* Check if position fix flag is good */ @@ -432,17 +435,18 @@ boolean GPS_Custom_Read_and_Parse(const uint32 timeout) //setClock(ts); - GPS_AppCustomData.GpsPositionMsg.TimeUtcUsec = ((uint64)epoch) * 1000000ULL; - GPS_AppCustomData.GpsPositionMsg.TimeUtcUsec += msgIn->nano / 1000; + GPS_AppCustomData.GpsPositionMsg.TimeUtc.Seconds = epoch; + GPS_AppCustomData.GpsPositionMsg.TimeUtc.Subseconds = CFE_TIME_Micro2SubSecs(msgIn->nano / 1000); } else { - GPS_AppCustomData.GpsPositionMsg.TimeUtcUsec = 0; + CFE_TIME_ClearTime(&GPS_AppCustomData.GpsPositionMsg.TimeUtc); } } - GPS_AppCustomData.GpsPositionMsg.Timestamp = PX4LIB_GetPX4TimeUs(); - GPS_AppCustomData.GpsPositionMsg.TimeUtcUsec = PX4LIB_GetPX4TimeUs(); + currentTime = CFE_TIME_GetTime(); + CFE_SB_SetMsgTime((CFE_SB_MsgPtr_t)&GPS_AppCustomData.GpsPositionMsg, currentTime); + GPS_AppCustomData.GpsPositionMsg.TimeUtc = CFE_TIME_GetTime(); //GPS_AppCustomData.LastTimeStamp = GPS_AppCustomData.GpsPositionMsg.Timestamp; /* TODO position and velocity update rate functions From 928606393b0247d2424f986544ad8ca757dee0a7 Mon Sep 17 00:00:00 2001 From: lorenzo-gomez-windhover Date: Wed, 24 Feb 2021 18:16:31 -0600 Subject: [PATCH 170/370] -Updated auto-yamcs; better user feedbackw --- core/tools/auto-yamcs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/tools/auto-yamcs b/core/tools/auto-yamcs index 2584eb48f..193cb7183 160000 --- a/core/tools/auto-yamcs +++ b/core/tools/auto-yamcs @@ -1 +1 @@ -Subproject commit 2584eb48fe810165e5068aaa16e3a43f5c126f89 +Subproject commit 193cb7183d398227c6e33e313cc25e0e9032f7f7 From 4609d5a9a975bbce7a5a6513e6e40e66b1bb6efe Mon Sep 17 00:00:00 2001 From: Mathew Benson Date: Wed, 24 Feb 2021 18:20:03 -0600 Subject: [PATCH 171/370] Final time changes. --- apps/pe/fsw/src/pe_app.cpp | 8 +++++--- apps/px4lib/fsw/public_inc/px4_msgs.h | 4 ++-- .../workspace_template/Displays/Apps/PE/Main.opi | 12 ++++++------ 3 files changed, 13 insertions(+), 11 deletions(-) diff --git a/apps/pe/fsw/src/pe_app.cpp b/apps/pe/fsw/src/pe_app.cpp index 192370999..454e89e22 100644 --- a/apps/pe/fsw/src/pe_app.cpp +++ b/apps/pe/fsw/src/pe_app.cpp @@ -1282,7 +1282,9 @@ void PE::SendVehicleLocalPositionMsg() if(data_valid) { - CFE_SB_SetMsgTime((CFE_SB_Msg_t*)&m_VehicleLocalPositionMsg, HkTlm.Timestamp); + CFE_SB_TimeStampMsg((CFE_SB_Msg_t*)&m_VehicleLocalPositionMsg); + /* TODO: Set the time from m_Timestamp */ + //m_VehicleLocalPositionMsg.Timestamp = m_Timestamp; m_VehicleLocalPositionMsg.XY_Valid = HkTlm.XyEstValid; m_VehicleLocalPositionMsg.Z_Valid = HkTlm.ZEstValid; m_VehicleLocalPositionMsg.V_XY_Valid = HkTlm.XyEstValid; @@ -1296,13 +1298,13 @@ void PE::SendVehicleLocalPositionMsg() m_VehicleLocalPositionMsg.Yaw = m_Euler[2]; m_VehicleLocalPositionMsg.XY_Global = HkTlm.XyEstValid; m_VehicleLocalPositionMsg.Z_Global = !HkTlm.BaroTimeout; - m_VehicleLocalPositionMsg.RefTimestamp = HkTlm.Timestamp; + m_VehicleLocalPositionMsg.RefTimestamp = CFE_TIME_ConvertTimeToMicros(HkTlm.Timestamp); m_VehicleLocalPositionMsg.RefLat = m_MapRef.lat_rad * 180/M_PI; m_VehicleLocalPositionMsg.RefLon = m_MapRef.lon_rad * 180/M_PI; m_VehicleLocalPositionMsg.RefAlt = HkTlm.AltOrigin; m_VehicleLocalPositionMsg.DistBottom = m_AglLowPass.m_State; m_VehicleLocalPositionMsg.DistBottomRate = m_XLowPass[X_vz]; - m_VehicleLocalPositionMsg.SurfaceBottomTimestamp = HkTlm.Timestamp; + m_VehicleLocalPositionMsg.SurfaceBottomTimestamp = CFE_TIME_ConvertTimeToMicros(HkTlm.Timestamp); m_VehicleLocalPositionMsg.DistBottomValid = dist_bottom_valid; m_VehicleLocalPositionMsg.EpH = eph; m_VehicleLocalPositionMsg.EpV = epv; diff --git a/apps/px4lib/fsw/public_inc/px4_msgs.h b/apps/px4lib/fsw/public_inc/px4_msgs.h index 87e71f7a9..6639bf100 100644 --- a/apps/px4lib/fsw/public_inc/px4_msgs.h +++ b/apps/px4lib/fsw/public_inc/px4_msgs.h @@ -1194,10 +1194,10 @@ typedef struct typedef struct { uint8 TlmHeader[CFE_SB_TLM_HDR_SIZE]; - CFE_TIME_SysTime_t RefTimestamp; + uint64 RefTimestamp; double RefLat; double RefLon; - CFE_TIME_SysTime_t SurfaceBottomTimestamp; + uint64 SurfaceBottomTimestamp; float X; float Y; float Z; diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/PE/Main.opi b/core/base/tools/commander/workspace_template/Displays/Apps/PE/Main.opi index b3847af15..083231f7e 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/PE/Main.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/PE/Main.opi @@ -10,7 +10,7 @@ - 1.5.3 + 1.5.4 @@ -4170,7 +4170,7 @@ $(pv_value) ON - /cfs/pe/PE_HkTlm_t.DistFused + /cfs/pe/PE_HkTlm_t.DistFuse @@ -4268,7 +4268,7 @@ $(pv_value) ON - /cfs/pe/PE_HkTlm_t.GpsFused + /cfs/pe/PE_HkTlm_t.GpsFuse @@ -4366,7 +4366,7 @@ $(pv_value) ON - /cfs/pe/PE_HkTlm_t.BaroFused + /cfs/pe/PE_HkTlm_t.BaroFuse @@ -4464,7 +4464,7 @@ $(pv_value) ON - /cfs/pe/PE_HkTlm_t.LandFused + /cfs/pe/PE_HkTlm_t.LandFuse @@ -4562,7 +4562,7 @@ $(pv_value) ON - /cfs/pe/PE_HkTlm_t.FlowFused + /cfs/pe/PE_HkTlm_t.FlowFuse From c3f2ebdb7f6b626b3f427f46ea31d1878468d0e6 Mon Sep 17 00:00:00 2001 From: lorenzo-gomez-windhover Date: Thu, 25 Feb 2021 11:00:18 -0600 Subject: [PATCH 172/370] -Moved events_init script to a file. -Organized scripts for events --- .../Core/EVS/Scripts/JS/events_init.js | 43 +++++++++++++++++++ .../Core/EVS/Scripts/XML/ResetEvent.xml | 17 ++++++++ 2 files changed, 60 insertions(+) create mode 100644 core/base/tools/commander/workspace_template/Displays/Core/EVS/Scripts/JS/events_init.js create mode 100644 core/base/tools/commander/workspace_template/Displays/Core/EVS/Scripts/XML/ResetEvent.xml diff --git a/core/base/tools/commander/workspace_template/Displays/Core/EVS/Scripts/JS/events_init.js b/core/base/tools/commander/workspace_template/Displays/Core/EVS/Scripts/JS/events_init.js new file mode 100644 index 000000000..4b66915f5 --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/Core/EVS/Scripts/JS/events_init.js @@ -0,0 +1,43 @@ +//Script to demonstrate auto-generation pattern of an OPI that is tailored to the event commands of an APP. + +importPackage(Packages.org.csstudio.opibuilder.scriptUtil); +importPackage(org.csstudio.opibuilder.properties); +importPackage(org.csstudio.opibuilder.model); + +var app_name = display.getMacroValue("APP"); + +//If you want to add more commands(another column), just add the name of the command to this array. Do note that +//you'll need special logic for adding another XML script to the button that fires that command. Hopefully the pattern below +//makes this obvious. +var commands = ['Reset']; +if(app_name != null && app_name!="") +{ + display.getWidget("app_name").setPropertyValue("text",app_name); + for(var i =0;i<8;i++) + { + for(var j =0;j + + + importPackage(Packages.org.csstudio.opibuilder.scriptUtil); + +//This script can be loaded into a widget by using the ActionsProperty object. +importPackage(Packages.org.yamcs.studio.script); +importPackage(Packages.org.yamcs.studio.data); + + +Yamcs.issueCommand('/cfs/cfe_evs/ResetAppEventFilter', { + 'Payload.AppName': display.getMacroValue("APP"), + 'Payload.EventID': VTypeHelper.getDouble(widget.getPropertyValue("pv_value"))}); + true + + + \ No newline at end of file From 745f47d3c1fe5e0c764c028924e6e3872436af07 Mon Sep 17 00:00:00 2001 From: lorenzo-gomez-windhover Date: Thu, 25 Feb 2021 12:26:41 -0600 Subject: [PATCH 173/370] -Cleanup --- .../Displays/Apps/TO/Scripts/query_diag.py | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/TO/Scripts/query_diag.py b/core/base/tools/commander/workspace_template/Displays/Apps/TO/Scripts/query_diag.py index 11b756409..d8eb40a28 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/TO/Scripts/query_diag.py +++ b/core/base/tools/commander/workspace_template/Displays/Apps/TO/Scripts/query_diag.py @@ -2,6 +2,7 @@ from org.yamcs.studio.data import IPVListener from java.lang import Runnable from org.eclipse.swt.widgets import Display +from org.csstudio.opibuilder.scriptUtil import YAMLUtil """ There appears to be a difference between the Widget we see in YAMCS Studio as a user and the "widget" that gets @@ -25,6 +26,10 @@ # FIXME: I really wish we could just access aggregates. Might be possible through the HTTP client API. AGGREGATE_PV = "/cfs/to/TO_ChannelDiagTlm_t.PQueue" +# parseYAML returns a LinkedHashMap(a Java type), but it looks like it behaves like a python dict object. Be wary of this nonetheless. +yaml_data = YAMLUtil.parseYAML("/home/lgomez/airliner/build/bebop2/sitl/target/commander_workspace/etc/yamcs.yaml") + + class UI_Business(Runnable): """ Any behavior that changes the state of widgets MUST happen inside this runnable function via @@ -37,16 +42,15 @@ def __init__(self, in_row, in_col, in_pv_data): self.pv_data = in_pv_data def run(self): - # print('PV Value:', self.pv_data.getValue()) display.getWidget("Table").getTable().setCellText(self.ui_row, self.ui_col, str(self.pv_data.getValue())) + class MyPVListener(IPVListener): def __init__(self, in_row, in_col, table): self.row = in_row self.col = in_col - # print('vector for listener++++++++++++++++++++++++++++++:', (self.vector.getX(), self.vector.getY())) self.table = table def valueChanged(self, pv): @@ -57,11 +61,11 @@ def valueChanged(self, pv): ScriptUtil.execInUI(UI_Business(self.row, self.col, pv), widget) def connectionChanged(self, pv): - #FIXME:Figure out a way to log properly + # FIXME:Figure out a way to log properly print("connection changed") def writePermissionChanged(self, pv): - #FIXME:Figure out a way to log properly + # FIXME:Figure out a way to log properly print("write permission changed") @@ -84,14 +88,15 @@ def main(): insert_rows(PQUEUE_COUNT, myTable) aggregate_index = 0 for queue_index in range(0, PQUEUE_COUNT, 1): - # This assumes the our array convention of AGGREGATE_{index}_ + # This assumes the our array convention of AGGREGATE_{index}_ for field in range(0, len(PQUEUE_FIELDS), 1): pvName = AGGREGATE_PV + "_{}_.".format(aggregate_index) pvName += PQUEUE_FIELDS[field] pv = PVUtil.createPV(pvName, widget) - new_listner = MyPVListener(queue_index, field+1, myTable) + new_listner = MyPVListener(queue_index, field + 1, myTable) pv.addListener(new_listner) aggregate_index = aggregate_index + 1 + main() From 9e3d3d1b5d1c1b1ce29544a821046679e26a495b Mon Sep 17 00:00:00 2001 From: Mathew Benson Date: Thu, 25 Feb 2021 14:22:51 -0600 Subject: [PATCH 174/370] Added events to the CFE yaml file. --- core/base/cfe/wh_design.yaml | 596 ++++++++++++++++++++++++++++++++++- 1 file changed, 591 insertions(+), 5 deletions(-) diff --git a/core/base/cfe/wh_design.yaml b/core/base/cfe/wh_design.yaml index 9221644c3..6784bf6b0 100644 --- a/core/base/cfe/wh_design.yaml +++ b/core/base/cfe/wh_design.yaml @@ -67,7 +67,189 @@ modules: cfe_es: short_name: cfe_es long_name: Core Flight Executive - Essential Services - events: {} + events: + CFE_ES_INIT_INF_EID: + id: 1 + CFE_ES_INITSTATS_INF_EID: + id: 2 + CFE_ES_NOOP_INF_EID: + id: 3 + CFE_ES_RESET_INF_EID: + id: 4 + CFE_ES_SHELL_INF_EID: + id: 5 + CFE_ES_START_INF_EID: + id: 6 + CFE_ES_STOP_DBG_EID: + id: 7 + CFE_ES_STOP_INF_EID: + id: 8 + CFE_ES_RESTART_APP_DBG_EID: + id: 9 + CFE_ES_RESTART_APP_INF_EID: + id: 10 + CFE_ES_RELOAD_APP_DBG_EID: + id: 11 + CFE_ES_RELOAD_APP_INF_EID: + id: 12 + CFE_ES_EXIT_APP_INF_EID: + id: 13 + CFE_ES_ERREXIT_APP_INF_EID: + id: 14 + CFE_ES_ONE_APP_EID: + id: 15 + CFE_ES_ALL_APPS_EID: + id: 16 + CFE_ES_SYSLOG1_INF_EID: + id: 17 + CFE_ES_SYSLOG2_EID: + id: 18 + CFE_ES_ERLOG1_INF_EID: + id: 19 + CFE_ES_ERLOG2_EID: + id: 20 + CFE_ES_MID_ERR_EID: + id: 21 + CFE_ES_CC1_ERR_EID: + id: 22 + CFE_ES_LEN_ERR_EID: + id: 23 + CFE_ES_BOOT_ERR_EID: + id: 24 + CFE_ES_SHELL_ERR_EID: + id: 25 + CFE_ES_START_ERR_EID: + id: 26 + CFE_ES_START_INVALID_FILENAME_ERR_EID: + id: 27 + CFE_ES_START_INVALID_ENTRY_POINT_ERR_EID: + id: 28 + CFE_ES_START_NULL_APP_NAME_ERR_EID: + id: 29 + CFE_ES_START_STACK_ERR_EID: + id: 30 + CFE_ES_START_PRIORITY_ERR_EID: + id: 31 + CFE_ES_START_EXC_ACTION_ERR_EID: + id: 32 + CFE_ES_ERREXIT_APP_ERR_EID: + id: 33 + # Removed 34 + CFE_ES_STOP_ERR1_EID: + id: 35 + CFE_ES_STOP_ERR2_EID: + id: 36 + CFE_ES_STOP_ERR3_EID: + id: 37 + CFE_ES_RESTART_APP_ERR1_EID: + id: 38 + CFE_ES_RESTART_APP_ERR2_EID: + id: 39 + CFE_ES_RESTART_APP_ERR3_EID: + id: 40 + CFE_ES_RESTART_APP_ERR4_EID: + id: 41 + CFE_ES_RELOAD_APP_ERR1_EID: + id: 42 + CFE_ES_RELOAD_APP_ERR2_EID: + id: 43 + CFE_ES_RELOAD_APP_ERR3_EID: + id: 44 + CFE_ES_RELOAD_APP_ERR4_EID: + id: 45 + CFE_ES_EXIT_APP_ERR_EID: + id: 46 + CFE_ES_PCR_ERR1_EID: + id: 47 + CFE_ES_PCR_ERR2_EID: + id: 48 + CFE_ES_ONE_ERR_EID: + id: 49 + CFE_ES_ONE_APPID_ERR_EID: + id: 50 + CFE_ES_OSCREATE_ERR_EID: + id: 51 + CFE_ES_WRHDR_ERR_EID: + id: 52 + CFE_ES_TASKWR_ERR_EID: + id: 53 + # Removed 54 + CFE_ES_SYSLOG2_ERR_EID: + id: 55 + CFE_ES_ERLOG2_ERR_EID: + id: 56 + CFE_ES_PERF_STARTCMD_EID: + id: 57 + CFE_ES_PERF_STARTCMD_ERR_EID: + id: 58 + CFE_ES_PERF_STARTCMD_TRIG_ERR_EID: + id: 59 + CFE_ES_PERF_STOPCMD_EID: + id: 60 + CFE_ES_PERF_STOPCMD_ERR1_EID: + id: 61 + CFE_ES_PERF_STOPCMD_ERR2_EID: + id: 62 + CFE_ES_PERF_FILTMSKCMD_EID: + id: 63 + CFE_ES_PERF_FILTMSKERR_EID: + id: 64 + CFE_ES_PERF_TRIGMSKCMD_EID: + id: 65 + CFE_ES_PERF_TRIGMSKERR_EID: + id: 66 + CFE_ES_PERF_LOG_ERR_EID: + id: 67 + CFE_ES_PERF_DATAWRITTEN_EID: + id: 68 + CFE_ES_CDS_REGISTER_ERR_EID: + id: 69 + CFE_ES_SYSLOGMODE_EID: + id: 70 + CFE_ES_ERR_SYSLOGMODE_EID: + id: 71 + CFE_ES_RESET_PR_COUNT_EID: + id: 72 + CFE_ES_SET_MAX_PR_COUNT_EID: + id: 73 + CFE_ES_FILEWRITE_ERR_EID: + id: 74 + CFE_ES_RST_ACCESS_EID: + id: 75 + CFE_ES_CDS_DELETE_ERR_EID: + id: 76 + CFE_ES_CDS_NAME_ERR_EID: + id: 77 + CFE_ES_CDS_DELETED_INFO_EID: + id: 78 + CFE_ES_CDS_DELETE_TBL_ERR_EID: + id: 79 + CFE_ES_CDS_OWNER_ACTIVE_EID: + id: 80 + CFE_ES_TLM_POOL_STATS_INFO_EID: + id: 81 + CFE_ES_INVALID_POOL_HANDLE_ERR_EID: + id: 82 + CFE_ES_CDS_REG_DUMP_INF_EID: + id: 83 + CFE_ES_CDS_DUMP_ERR_EID: + id: 84 + CFE_ES_WRITE_CFE_HDR_ERR_EID: + id: 85 + CFE_ES_CREATING_CDS_DUMP_ERR_EID: + id: 86 + CFE_ES_TASKINFO_EID: + id: 87 + CFE_ES_TASKINFO_OSCREATE_ERR_EID: + id: 88 + CFE_ES_TASKINFO_WRHDR_ERR_EID: + id: 89 + CFE_ES_TASKINFO_WR_ERR_EID: + id: 90 + CFE_ES_VERSION_INF_EID: + id: 91 + CFE_ES_BUILD_INF_EID: + id: 92 type_remaps: # CFE_ES_MemHandle_t is a void* that is wrapped in a macro. For now we are assuming 32-bit void*, which is the word size # of our machine. You can get this number in linux with the 'getconf WORD_BIT' command. @@ -609,7 +791,89 @@ modules: cfe_evs: short_name: cfe_evs long_name: Core Flight Executive - Event Services - events: {} + events: + CFE_EVS_ERR_WRLOGFILE_EID: + id: 2 + CFE_EVS_ERR_CRLOGFILE_EID: + id: 3 + # Removed 4 + CFE_EVS_ERR_MSGID_EID: + id: 5 + CFE_EVS_ERR_EVTIDNOREGS_EID: + id: 6 + CFE_EVS_ERR_APPNOREGS_EID: + id: 7 + CFE_EVS_ERR_ILLAPPIDRANGE_EID: + id: 8 + CFE_EVS_ERR_NOAPPIDFOUND_EID: + id: 9 + CFE_EVS_ERR_ILLEGALFMTMOD_EID: + id: 10 + CFE_EVS_ERR_MAXREGSFILTER_EID: + id: 11 + CFE_EVS_ERR_WRDATFILE_EID: + id: 12 + CFE_EVS_ERR_CRDATFILE_EID: + id: 13 + # Removed 14 + CFE_EVS_ERR_CC_EID: + id: 15 + CFE_EVS_RSTCNT_EID: + id: 16 + CFE_EVS_SETFILTERMSK_EID: + id: 17 + CFE_EVS_ENAPORT_EID: + id: 18 + CFE_EVS_DISPORT_EID: + id: 19 + CFE_EVS_ENAEVTTYPE_EID: + id: 20 + CFE_EVS_DISEVTTYPE_EID: + id: 21 + CFE_EVS_SETEVTFMTMOD_EID: + id: 22 + CFE_EVS_ENAAPPEVTTYPE_EID: + id: 23 + CFE_EVS_DISAPPENTTYPE_EID: + id: 24 + CFE_EVS_ENAAPPEVT_EID: + id: 25 + CFE_EVS_DISAPPEVT_EID: + id: 26 + CFE_EVS_RSTEVTCNT_EID: + id: 27 + CFE_EVS_RSTFILTER_EID: + id: 28 + CFE_EVS_RSTALLFILTER_EID: + id: 29 + CFE_EVS_ADDFILTER_EID: + id: 30 + CFE_EVS_DELFILTER_EID: + id: 31 + CFE_EVS_WRDAT_EID: + id: 32 + CFE_EVS_WRLOG_EID: + id: 33 + CFE_EVS_NO_LOGSET_EID: + id: 34 + CFE_EVS_NO_LOGCLR_EID: + id: 35 + CFE_EVS_NO_LOGWR_EID: + id: 36 + CFE_EVS_EVT_FILTERED_EID: + id: 37 + CFE_EVS_LOGMODE_EID: + id: 38 + CFE_EVS_ERR_LOGMODE_EID: + id: 39 + CFE_EVS_ERR_INVALID_BITMASK_EID: + id: 40 + CFE_EVS_ERR_UNREGISTERED_EVS_APP: + id: 41 + CFE_EVS_FILTER_MAX_EID: + id: 42 + CFE_EVS_LEN_ERR_EID: + id: 43 msg_def_overrides: - parent: CFE_EVS_LogFileCmd_Payload_t member: LogFilename @@ -806,7 +1070,114 @@ modules: cfe_sb: short_name: cfe_sb long_name: Core Flight Executive - Software Bus - events: {} + events: + CFE_SB_INIT_EID: + id: 1 + CFE_SB_CR_PIPE_BAD_ARG_EID: + id: 2 + CFE_SB_MAX_PIPES_MET_EID: + id: 3 + CFE_SB_CR_PIPE_ERR_EID: + id: 4 + CFE_SB_PIPE_ADDED_EID: + id: 5 + CFE_SB_SUB_ARG_ERR_EID: + id: 6 + CFE_SB_DUP_SUBSCRIP_EID: + id: 7 + CFE_SB_MAX_MSGS_MET_EID: + id: 8 + CFE_SB_MAX_DESTS_MET_EID: + id: 9 + CFE_SB_SUBSCRIPTION_RCVD_EID: + id: 10 + CFE_SB_UNSUB_ARG_ERR_EID: + id: 11 + CFE_SB_UNSUB_NO_SUBS_EID: + id: 12 + CFE_SB_SEND_BAD_ARG_EID: + id: 13 + CFE_SB_SEND_NO_SUBS_EID: + id: 14 + CFE_SB_MSG_TOO_BIG_EID: + id: 15 + CFE_SB_GET_BUF_ERR_EID: + id: 16 + CFE_SB_MSGID_LIM_ERR_EID: + id: 17 + CFE_SB_RCV_BAD_ARG_EID: + id: 18 + CFE_SB_BAD_PIPEID_EID: + id: 19 + CFE_SB_DEST_BLK_ERR_EID: + id: 20 + CFE_SB_SEND_INV_MSGID_EID: + id: 21 + CFE_SB_SUBSCRIPTION_RPT_EID: + id: 22 + # Removed 23 + CFE_SB_UNSUBSCRIPTION_RPT_EID: + id: 24 + CFE_SB_Q_FULL_ERR_EID: + id: 25 + CFE_SB_Q_WR_ERR_EID: + id: 26 + CFE_SB_Q_RD_ERR_EID: + id: 27 + CFE_SB_CMD0_RCVD_EID: + id: 28 + CFE_SB_CMD1_RCVD_EID: + id: 29 + CFE_SB_LSTSNDER_ERR1_EID: + id: 30 + CFE_SB_LSTSNDER_ERR2_EID: + id: 31 + CFE_SB_SND_STATS_EID: + id: 32 + CFE_SB_ENBL_RTE1_EID: + id: 33 + CFE_SB_ENBL_RTE2_EID: + id: 34 + CFE_SB_ENBL_RTE3_EID: + id: 35 + CFE_SB_DSBL_RTE1_EID: + id: 36 + CFE_SB_DSBL_RTE2_EID: + id: 37 + CFE_SB_DSBL_RTE3_EID: + id: 38 + CFE_SB_SND_RTG_EID: + id: 39 + CFE_SB_SND_RTG_ERR1_EID: + id: 40 + CFE_SB_GLS_INV_CALLER_EID: + id: 41 + CFE_SB_BAD_CMD_CODE_EID: + id: 42 + CFE_SB_BAD_MSGID_EID: + id: 43 + CFE_SB_FULL_SUB_PKT_EID: + id: 44 + CFE_SB_PART_SUB_PKT_EID: + id: 45 + CFE_SB_DEL_PIPE_ERR1_EID: + id: 46 + CFE_SB_PIPE_DELETED_EID: + id: 47 + CFE_SB_SUBSCRIPTION_REMOVED_EID: + id: 48 + CFE_SB_FILEWRITE_ERR_EID: + id: 49 + CFE_SB_SUB_INV_PIPE_EID: + id: 50 + CFE_SB_SUB_INV_CALLER_EID: + id: 51 + CFE_SB_UNSUB_INV_PIPE_EID: + id: 52 + CFE_SB_UNSUB_INV_CALLER_EID: + id: 53 + CFE_SB_DEL_PIPE_ERR2_EID: + id: 54 type_remaps: CFE_SB_MsgId_t: uint16 CFE_SB_PipeId_t: uint8 @@ -1074,7 +1445,143 @@ modules: cfe_tbl: short_name: cfe_tbl long_name: Core Flight Executive - Table Services - events: {} + events: + CFE_TBL_INIT_INF_EID: + id: 1 + # Removed 2-9 + CFE_TBL_NOOP_INF_EID: + id: 10 + CFE_TBL_RESET_INF_EID: + id: 11 + CFE_TBL_FILE_LOADED_INF_EID: + id: 12 + CFE_TBL_OVERWRITE_DUMP_INF_EID: + id: 13 + CFE_TBL_WRITE_DUMP_INF_EID: + id: 14 + CFE_TBL_OVERWRITE_REG_DUMP_INF_EID: + id: 15 + CFE_TBL_VAL_REQ_MADE_INF_EID: + id: 16 + CFE_TBL_LOAD_PEND_REQ_INF_EID: + id: 17 + CFE_TBL_TLM_REG_CMD_INF_EID: + id: 18 + # Removed 19-20 + CFE_TBL_LOAD_ABORT_INF_EID: + id: 21 + CFE_TBL_WRITE_REG_DUMP_INF_EID: + id: 22 + CFE_TBL_ASSUMED_VALID_INF_EID: + id: 23 + # Removed 24-34 + CFE_TBL_LOAD_SUCCESS_INF_EID: + id: 35 + CFE_TBL_VALIDATION_INF_EID: + id: 36 + CFE_TBL_UPDATE_SUCCESS_INF_EID: + id: 37 + CFE_TBL_CDS_DELETED_INFO_EID: + id: 38 + # Removed 39-49 + CFE_TBL_MID_ERR_EID: + id: 50 + CFE_TBL_CC1_ERR_EID: + id: 51 + CFE_TBL_LEN_ERR_EID: + id: 52 + CFE_TBL_FILE_ACCESS_ERR_EID: + id: 53 + CFE_TBL_FILE_STD_HDR_ERR_EID: + id: 54 + CFE_TBL_FILE_TBL_HDR_ERR_EID: + id: 55 + CFE_TBL_FAIL_HK_SEND_ERR_EID: + id: 56 + CFE_TBL_NO_SUCH_TABLE_ERR_EID: + id: 57 + CFE_TBL_FILE_TYPE_ERR_EID: + id: 58 + CFE_TBL_FILE_SUBTYPE_ERR_EID: + id: 59 + CFE_TBL_NO_WORK_BUFFERS_ERR_EID: + id: 60 + CFE_TBL_INTERNAL_ERROR_ERR_EID: + id: 61 + CFE_TBL_CREATING_DUMP_FILE_ERR_EID: + id: 62 + CFE_TBL_WRITE_CFE_HDR_ERR_EID: + id: 63 + CFE_TBL_WRITE_TBL_HDR_ERR_EID: + id: 64 + CFE_TBL_WRITE_TBL_IMG_ERR_EID: + id: 65 + CFE_TBL_NO_INACTIVE_BUFFER_ERR_EID: + id: 66 + CFE_TBL_TOO_MANY_VALIDATIONS_ERR_EID: + id: 67 + CFE_TBL_WRITE_TBL_REG_ERR_EID: + id: 68 + CFE_TBL_LOAD_ABORT_ERR_EID: + id: 69 + CFE_TBL_ACTIVATE_ERR_EID: + id: 70 + CFE_TBL_FILE_INCOMPLETE_ERR_EID: + id: 71 + CFE_TBL_LOAD_EXCEEDS_SIZE_ERR_EID: + id: 72 + CFE_TBL_ZERO_LENGTH_LOAD_ERR_EID: + id: 73 + CFE_TBL_PARTIAL_LOAD_ERR_EID: + id: 74 + CFE_TBL_FILE_TOO_BIG_ERR_EID: + id: 75 + CFE_TBL_TOO_MANY_DUMPS_ERR_EID: + id: 76 + CFE_TBL_DUMP_PENDING_ERR_EID: + id: 77 + CFE_TBL_ACTIVATE_DUMP_ONLY_ERR_EID: + id: 78 + CFE_TBL_LOADING_A_DUMP_ONLY_ERR_EID: + id: 79 + CFE_TBL_ILLEGAL_BUFF_PARAM_ERR_EID: + id: 80 + CFE_TBL_UNVALIDATED_ERR_EID: + id: 81 + CFE_TBL_IN_REGISTRY_ERR_EID: + id: 82 + CFE_TBL_NOT_CRITICAL_TBL_ERR_EID: + id: 83 + CFE_TBL_NOT_IN_CRIT_REG_ERR_EID: + id: 84 + CFE_TBL_CDS_NOT_FOUND_ERR_EID: + id: 85 + CFE_TBL_CDS_DELETE_ERR_EID: + id: 86 + CFE_TBL_CDS_OWNER_ACTIVE_ERR_EID: + id: 87 + CFE_TBL_LOADING_PENDING_ERR_EID: + id: 88 + CFE_TBL_FAIL_NOTIFY_SEND_ERR_EID: + id: 89 + CFE_TBL_REGISTER_ERR_EID: + id: 90 + CFE_TBL_SHARE_ERR_EID: + id: 91 + CFE_TBL_UNREGISTER_ERR_EID: + id: 92 + CFE_TBL_LOAD_ERR_EID: + id: 93 + CFE_TBL_LOAD_TYPE_ERR_EID: + id: 94 + CFE_TBL_UPDATE_ERR_EID: + id: 95 + CFE_TBL_VALIDATION_ERR_EID: + id: 96 + CFE_TBL_SPACECRAFT_ID_ERR_EID: + id: 97 + CFE_TBL_PROCESSOR_ID_ERR_EID: + id: 98 msg_def_overrides: - parent: CFE_TBL_LoadCmd_Payload_t member: LoadFilename @@ -1267,7 +1774,86 @@ modules: cfe_time: short_name: cfe_time long_name: Core Flight Executive - Time Services - events: {} + events: + CFE_TIME_INIT_EID: + id: 1 + # Removed 2-3 + CFE_TIME_NOOP_EID: + id: 4 + CFE_TIME_RESET_EID: + id: 5 + CFE_TIME_DIAG_EID: + id: 6 + CFE_TIME_STATE_EID: + id: 7 + CFE_TIME_SOURCE_EID: + id: 8 + CFE_TIME_SIGNAL_EID: + id: 9 + # Removed 10 + CFE_TIME_DELAY_EID: + id: 11 + CFE_TIME_TIME_EID: + id: 12 + CFE_TIME_MET_EID: + id: 13 + CFE_TIME_STCF_EID: + id: 14 + CFE_TIME_DELTA_EID: + id: 15 + CFE_TIME_1HZ_EID: + id: 16 + CFE_TIME_LEAPS_EID: + id: 17 + # Removed 18-19 + CFE_TIME_FLY_ON_EID: + id: 20 + CFE_TIME_FLY_OFF_EID: + id: 21 + # Removed 22-24 + CFE_TIME_EXIT_ERR_EID: + id: 25 + CFE_TIME_ID_ERR_EID: + id: 26 + CFE_TIME_CC_ERR_EID: + id: 27 + # Removed 28-29 + CFE_TIME_STATE_ERR_EID: + id: 30 + CFE_TIME_SOURCE_ERR_EID: + id: 31 + CFE_TIME_SIGNAL_ERR_EID: + id: 32 + CFE_TIME_DELAY_ERR_EID: + id: 33 + CFE_TIME_TIME_ERR_EID: + id: 34 + CFE_TIME_MET_ERR_EID: + id: 35 + CFE_TIME_STCF_ERR_EID: + id: 36 + CFE_TIME_DELTA_ERR_EID: + id: 37 + CFE_TIME_1HZ_ERR_EID: + id: 38 + CFE_TIME_SOURCE_CFG_EID: + id: 40 + CFE_TIME_SIGNAL_CFG_EID: + id: 41 + CFE_TIME_DELAY_CFG_EID: + id: 42 + CFE_TIME_TIME_CFG_EID: + id: 43 + CFE_TIME_MET_CFG_EID: + id: 44 + CFE_TIME_STCF_CFG_EID: + id: 45 + CFE_TIME_LEAPS_CFG_EID: + id: 46 + CFE_TIME_DELTA_CFG_EID: + id: 47 + CFE_TIME_1HZ_CFG_EID: + id: 48 msg_def_overrides: - parent: CFE_TIME_SignalCmd_Payload_t member: ToneSource From a63f19f7e9b090c5640ed00ffe6c8da900f195e2 Mon Sep 17 00:00:00 2001 From: Mathew Benson Date: Thu, 25 Feb 2021 14:22:51 -0600 Subject: [PATCH 175/370] Added events to the CFE yaml file. (cherry picked from commit 9e3d3d1b5d1c1b1ce29544a821046679e26a495b) --- core/base/cfe/wh_design.yaml | 596 ++++++++++++++++++++++++++++++++++- 1 file changed, 591 insertions(+), 5 deletions(-) diff --git a/core/base/cfe/wh_design.yaml b/core/base/cfe/wh_design.yaml index 8f800667c..904350b76 100644 --- a/core/base/cfe/wh_design.yaml +++ b/core/base/cfe/wh_design.yaml @@ -67,7 +67,189 @@ modules: cfe_es: short_name: cfe_es long_name: Core Flight Executive - Essential Services - events: {} + events: + CFE_ES_INIT_INF_EID: + id: 1 + CFE_ES_INITSTATS_INF_EID: + id: 2 + CFE_ES_NOOP_INF_EID: + id: 3 + CFE_ES_RESET_INF_EID: + id: 4 + CFE_ES_SHELL_INF_EID: + id: 5 + CFE_ES_START_INF_EID: + id: 6 + CFE_ES_STOP_DBG_EID: + id: 7 + CFE_ES_STOP_INF_EID: + id: 8 + CFE_ES_RESTART_APP_DBG_EID: + id: 9 + CFE_ES_RESTART_APP_INF_EID: + id: 10 + CFE_ES_RELOAD_APP_DBG_EID: + id: 11 + CFE_ES_RELOAD_APP_INF_EID: + id: 12 + CFE_ES_EXIT_APP_INF_EID: + id: 13 + CFE_ES_ERREXIT_APP_INF_EID: + id: 14 + CFE_ES_ONE_APP_EID: + id: 15 + CFE_ES_ALL_APPS_EID: + id: 16 + CFE_ES_SYSLOG1_INF_EID: + id: 17 + CFE_ES_SYSLOG2_EID: + id: 18 + CFE_ES_ERLOG1_INF_EID: + id: 19 + CFE_ES_ERLOG2_EID: + id: 20 + CFE_ES_MID_ERR_EID: + id: 21 + CFE_ES_CC1_ERR_EID: + id: 22 + CFE_ES_LEN_ERR_EID: + id: 23 + CFE_ES_BOOT_ERR_EID: + id: 24 + CFE_ES_SHELL_ERR_EID: + id: 25 + CFE_ES_START_ERR_EID: + id: 26 + CFE_ES_START_INVALID_FILENAME_ERR_EID: + id: 27 + CFE_ES_START_INVALID_ENTRY_POINT_ERR_EID: + id: 28 + CFE_ES_START_NULL_APP_NAME_ERR_EID: + id: 29 + CFE_ES_START_STACK_ERR_EID: + id: 30 + CFE_ES_START_PRIORITY_ERR_EID: + id: 31 + CFE_ES_START_EXC_ACTION_ERR_EID: + id: 32 + CFE_ES_ERREXIT_APP_ERR_EID: + id: 33 + # Removed 34 + CFE_ES_STOP_ERR1_EID: + id: 35 + CFE_ES_STOP_ERR2_EID: + id: 36 + CFE_ES_STOP_ERR3_EID: + id: 37 + CFE_ES_RESTART_APP_ERR1_EID: + id: 38 + CFE_ES_RESTART_APP_ERR2_EID: + id: 39 + CFE_ES_RESTART_APP_ERR3_EID: + id: 40 + CFE_ES_RESTART_APP_ERR4_EID: + id: 41 + CFE_ES_RELOAD_APP_ERR1_EID: + id: 42 + CFE_ES_RELOAD_APP_ERR2_EID: + id: 43 + CFE_ES_RELOAD_APP_ERR3_EID: + id: 44 + CFE_ES_RELOAD_APP_ERR4_EID: + id: 45 + CFE_ES_EXIT_APP_ERR_EID: + id: 46 + CFE_ES_PCR_ERR1_EID: + id: 47 + CFE_ES_PCR_ERR2_EID: + id: 48 + CFE_ES_ONE_ERR_EID: + id: 49 + CFE_ES_ONE_APPID_ERR_EID: + id: 50 + CFE_ES_OSCREATE_ERR_EID: + id: 51 + CFE_ES_WRHDR_ERR_EID: + id: 52 + CFE_ES_TASKWR_ERR_EID: + id: 53 + # Removed 54 + CFE_ES_SYSLOG2_ERR_EID: + id: 55 + CFE_ES_ERLOG2_ERR_EID: + id: 56 + CFE_ES_PERF_STARTCMD_EID: + id: 57 + CFE_ES_PERF_STARTCMD_ERR_EID: + id: 58 + CFE_ES_PERF_STARTCMD_TRIG_ERR_EID: + id: 59 + CFE_ES_PERF_STOPCMD_EID: + id: 60 + CFE_ES_PERF_STOPCMD_ERR1_EID: + id: 61 + CFE_ES_PERF_STOPCMD_ERR2_EID: + id: 62 + CFE_ES_PERF_FILTMSKCMD_EID: + id: 63 + CFE_ES_PERF_FILTMSKERR_EID: + id: 64 + CFE_ES_PERF_TRIGMSKCMD_EID: + id: 65 + CFE_ES_PERF_TRIGMSKERR_EID: + id: 66 + CFE_ES_PERF_LOG_ERR_EID: + id: 67 + CFE_ES_PERF_DATAWRITTEN_EID: + id: 68 + CFE_ES_CDS_REGISTER_ERR_EID: + id: 69 + CFE_ES_SYSLOGMODE_EID: + id: 70 + CFE_ES_ERR_SYSLOGMODE_EID: + id: 71 + CFE_ES_RESET_PR_COUNT_EID: + id: 72 + CFE_ES_SET_MAX_PR_COUNT_EID: + id: 73 + CFE_ES_FILEWRITE_ERR_EID: + id: 74 + CFE_ES_RST_ACCESS_EID: + id: 75 + CFE_ES_CDS_DELETE_ERR_EID: + id: 76 + CFE_ES_CDS_NAME_ERR_EID: + id: 77 + CFE_ES_CDS_DELETED_INFO_EID: + id: 78 + CFE_ES_CDS_DELETE_TBL_ERR_EID: + id: 79 + CFE_ES_CDS_OWNER_ACTIVE_EID: + id: 80 + CFE_ES_TLM_POOL_STATS_INFO_EID: + id: 81 + CFE_ES_INVALID_POOL_HANDLE_ERR_EID: + id: 82 + CFE_ES_CDS_REG_DUMP_INF_EID: + id: 83 + CFE_ES_CDS_DUMP_ERR_EID: + id: 84 + CFE_ES_WRITE_CFE_HDR_ERR_EID: + id: 85 + CFE_ES_CREATING_CDS_DUMP_ERR_EID: + id: 86 + CFE_ES_TASKINFO_EID: + id: 87 + CFE_ES_TASKINFO_OSCREATE_ERR_EID: + id: 88 + CFE_ES_TASKINFO_WRHDR_ERR_EID: + id: 89 + CFE_ES_TASKINFO_WR_ERR_EID: + id: 90 + CFE_ES_VERSION_INF_EID: + id: 91 + CFE_ES_BUILD_INF_EID: + id: 92 type_remaps: # CFE_ES_MemHandle_t is a void* that is wrapped in a macro. For now we are assuming 32-bit void*, which is the word size # of our machine. You can get this number in linux with the 'getconf WORD_BIT' command. @@ -609,7 +791,89 @@ modules: cfe_evs: short_name: cfe_evs long_name: Core Flight Executive - Event Services - events: {} + events: + CFE_EVS_ERR_WRLOGFILE_EID: + id: 2 + CFE_EVS_ERR_CRLOGFILE_EID: + id: 3 + # Removed 4 + CFE_EVS_ERR_MSGID_EID: + id: 5 + CFE_EVS_ERR_EVTIDNOREGS_EID: + id: 6 + CFE_EVS_ERR_APPNOREGS_EID: + id: 7 + CFE_EVS_ERR_ILLAPPIDRANGE_EID: + id: 8 + CFE_EVS_ERR_NOAPPIDFOUND_EID: + id: 9 + CFE_EVS_ERR_ILLEGALFMTMOD_EID: + id: 10 + CFE_EVS_ERR_MAXREGSFILTER_EID: + id: 11 + CFE_EVS_ERR_WRDATFILE_EID: + id: 12 + CFE_EVS_ERR_CRDATFILE_EID: + id: 13 + # Removed 14 + CFE_EVS_ERR_CC_EID: + id: 15 + CFE_EVS_RSTCNT_EID: + id: 16 + CFE_EVS_SETFILTERMSK_EID: + id: 17 + CFE_EVS_ENAPORT_EID: + id: 18 + CFE_EVS_DISPORT_EID: + id: 19 + CFE_EVS_ENAEVTTYPE_EID: + id: 20 + CFE_EVS_DISEVTTYPE_EID: + id: 21 + CFE_EVS_SETEVTFMTMOD_EID: + id: 22 + CFE_EVS_ENAAPPEVTTYPE_EID: + id: 23 + CFE_EVS_DISAPPENTTYPE_EID: + id: 24 + CFE_EVS_ENAAPPEVT_EID: + id: 25 + CFE_EVS_DISAPPEVT_EID: + id: 26 + CFE_EVS_RSTEVTCNT_EID: + id: 27 + CFE_EVS_RSTFILTER_EID: + id: 28 + CFE_EVS_RSTALLFILTER_EID: + id: 29 + CFE_EVS_ADDFILTER_EID: + id: 30 + CFE_EVS_DELFILTER_EID: + id: 31 + CFE_EVS_WRDAT_EID: + id: 32 + CFE_EVS_WRLOG_EID: + id: 33 + CFE_EVS_NO_LOGSET_EID: + id: 34 + CFE_EVS_NO_LOGCLR_EID: + id: 35 + CFE_EVS_NO_LOGWR_EID: + id: 36 + CFE_EVS_EVT_FILTERED_EID: + id: 37 + CFE_EVS_LOGMODE_EID: + id: 38 + CFE_EVS_ERR_LOGMODE_EID: + id: 39 + CFE_EVS_ERR_INVALID_BITMASK_EID: + id: 40 + CFE_EVS_ERR_UNREGISTERED_EVS_APP: + id: 41 + CFE_EVS_FILTER_MAX_EID: + id: 42 + CFE_EVS_LEN_ERR_EID: + id: 43 msg_def_overrides: - parent: CFE_EVS_LogFileCmd_Payload_t member: LogFilename @@ -806,7 +1070,114 @@ modules: cfe_sb: short_name: cfe_sb long_name: Core Flight Executive - Software Bus - events: {} + events: + CFE_SB_INIT_EID: + id: 1 + CFE_SB_CR_PIPE_BAD_ARG_EID: + id: 2 + CFE_SB_MAX_PIPES_MET_EID: + id: 3 + CFE_SB_CR_PIPE_ERR_EID: + id: 4 + CFE_SB_PIPE_ADDED_EID: + id: 5 + CFE_SB_SUB_ARG_ERR_EID: + id: 6 + CFE_SB_DUP_SUBSCRIP_EID: + id: 7 + CFE_SB_MAX_MSGS_MET_EID: + id: 8 + CFE_SB_MAX_DESTS_MET_EID: + id: 9 + CFE_SB_SUBSCRIPTION_RCVD_EID: + id: 10 + CFE_SB_UNSUB_ARG_ERR_EID: + id: 11 + CFE_SB_UNSUB_NO_SUBS_EID: + id: 12 + CFE_SB_SEND_BAD_ARG_EID: + id: 13 + CFE_SB_SEND_NO_SUBS_EID: + id: 14 + CFE_SB_MSG_TOO_BIG_EID: + id: 15 + CFE_SB_GET_BUF_ERR_EID: + id: 16 + CFE_SB_MSGID_LIM_ERR_EID: + id: 17 + CFE_SB_RCV_BAD_ARG_EID: + id: 18 + CFE_SB_BAD_PIPEID_EID: + id: 19 + CFE_SB_DEST_BLK_ERR_EID: + id: 20 + CFE_SB_SEND_INV_MSGID_EID: + id: 21 + CFE_SB_SUBSCRIPTION_RPT_EID: + id: 22 + # Removed 23 + CFE_SB_UNSUBSCRIPTION_RPT_EID: + id: 24 + CFE_SB_Q_FULL_ERR_EID: + id: 25 + CFE_SB_Q_WR_ERR_EID: + id: 26 + CFE_SB_Q_RD_ERR_EID: + id: 27 + CFE_SB_CMD0_RCVD_EID: + id: 28 + CFE_SB_CMD1_RCVD_EID: + id: 29 + CFE_SB_LSTSNDER_ERR1_EID: + id: 30 + CFE_SB_LSTSNDER_ERR2_EID: + id: 31 + CFE_SB_SND_STATS_EID: + id: 32 + CFE_SB_ENBL_RTE1_EID: + id: 33 + CFE_SB_ENBL_RTE2_EID: + id: 34 + CFE_SB_ENBL_RTE3_EID: + id: 35 + CFE_SB_DSBL_RTE1_EID: + id: 36 + CFE_SB_DSBL_RTE2_EID: + id: 37 + CFE_SB_DSBL_RTE3_EID: + id: 38 + CFE_SB_SND_RTG_EID: + id: 39 + CFE_SB_SND_RTG_ERR1_EID: + id: 40 + CFE_SB_GLS_INV_CALLER_EID: + id: 41 + CFE_SB_BAD_CMD_CODE_EID: + id: 42 + CFE_SB_BAD_MSGID_EID: + id: 43 + CFE_SB_FULL_SUB_PKT_EID: + id: 44 + CFE_SB_PART_SUB_PKT_EID: + id: 45 + CFE_SB_DEL_PIPE_ERR1_EID: + id: 46 + CFE_SB_PIPE_DELETED_EID: + id: 47 + CFE_SB_SUBSCRIPTION_REMOVED_EID: + id: 48 + CFE_SB_FILEWRITE_ERR_EID: + id: 49 + CFE_SB_SUB_INV_PIPE_EID: + id: 50 + CFE_SB_SUB_INV_CALLER_EID: + id: 51 + CFE_SB_UNSUB_INV_PIPE_EID: + id: 52 + CFE_SB_UNSUB_INV_CALLER_EID: + id: 53 + CFE_SB_DEL_PIPE_ERR2_EID: + id: 54 type_remaps: CFE_SB_MsgId_t: uint16 CFE_SB_PipeId_t: uint8 @@ -1074,7 +1445,143 @@ modules: cfe_tbl: short_name: cfe_tbl long_name: Core Flight Executive - Table Services - events: {} + events: + CFE_TBL_INIT_INF_EID: + id: 1 + # Removed 2-9 + CFE_TBL_NOOP_INF_EID: + id: 10 + CFE_TBL_RESET_INF_EID: + id: 11 + CFE_TBL_FILE_LOADED_INF_EID: + id: 12 + CFE_TBL_OVERWRITE_DUMP_INF_EID: + id: 13 + CFE_TBL_WRITE_DUMP_INF_EID: + id: 14 + CFE_TBL_OVERWRITE_REG_DUMP_INF_EID: + id: 15 + CFE_TBL_VAL_REQ_MADE_INF_EID: + id: 16 + CFE_TBL_LOAD_PEND_REQ_INF_EID: + id: 17 + CFE_TBL_TLM_REG_CMD_INF_EID: + id: 18 + # Removed 19-20 + CFE_TBL_LOAD_ABORT_INF_EID: + id: 21 + CFE_TBL_WRITE_REG_DUMP_INF_EID: + id: 22 + CFE_TBL_ASSUMED_VALID_INF_EID: + id: 23 + # Removed 24-34 + CFE_TBL_LOAD_SUCCESS_INF_EID: + id: 35 + CFE_TBL_VALIDATION_INF_EID: + id: 36 + CFE_TBL_UPDATE_SUCCESS_INF_EID: + id: 37 + CFE_TBL_CDS_DELETED_INFO_EID: + id: 38 + # Removed 39-49 + CFE_TBL_MID_ERR_EID: + id: 50 + CFE_TBL_CC1_ERR_EID: + id: 51 + CFE_TBL_LEN_ERR_EID: + id: 52 + CFE_TBL_FILE_ACCESS_ERR_EID: + id: 53 + CFE_TBL_FILE_STD_HDR_ERR_EID: + id: 54 + CFE_TBL_FILE_TBL_HDR_ERR_EID: + id: 55 + CFE_TBL_FAIL_HK_SEND_ERR_EID: + id: 56 + CFE_TBL_NO_SUCH_TABLE_ERR_EID: + id: 57 + CFE_TBL_FILE_TYPE_ERR_EID: + id: 58 + CFE_TBL_FILE_SUBTYPE_ERR_EID: + id: 59 + CFE_TBL_NO_WORK_BUFFERS_ERR_EID: + id: 60 + CFE_TBL_INTERNAL_ERROR_ERR_EID: + id: 61 + CFE_TBL_CREATING_DUMP_FILE_ERR_EID: + id: 62 + CFE_TBL_WRITE_CFE_HDR_ERR_EID: + id: 63 + CFE_TBL_WRITE_TBL_HDR_ERR_EID: + id: 64 + CFE_TBL_WRITE_TBL_IMG_ERR_EID: + id: 65 + CFE_TBL_NO_INACTIVE_BUFFER_ERR_EID: + id: 66 + CFE_TBL_TOO_MANY_VALIDATIONS_ERR_EID: + id: 67 + CFE_TBL_WRITE_TBL_REG_ERR_EID: + id: 68 + CFE_TBL_LOAD_ABORT_ERR_EID: + id: 69 + CFE_TBL_ACTIVATE_ERR_EID: + id: 70 + CFE_TBL_FILE_INCOMPLETE_ERR_EID: + id: 71 + CFE_TBL_LOAD_EXCEEDS_SIZE_ERR_EID: + id: 72 + CFE_TBL_ZERO_LENGTH_LOAD_ERR_EID: + id: 73 + CFE_TBL_PARTIAL_LOAD_ERR_EID: + id: 74 + CFE_TBL_FILE_TOO_BIG_ERR_EID: + id: 75 + CFE_TBL_TOO_MANY_DUMPS_ERR_EID: + id: 76 + CFE_TBL_DUMP_PENDING_ERR_EID: + id: 77 + CFE_TBL_ACTIVATE_DUMP_ONLY_ERR_EID: + id: 78 + CFE_TBL_LOADING_A_DUMP_ONLY_ERR_EID: + id: 79 + CFE_TBL_ILLEGAL_BUFF_PARAM_ERR_EID: + id: 80 + CFE_TBL_UNVALIDATED_ERR_EID: + id: 81 + CFE_TBL_IN_REGISTRY_ERR_EID: + id: 82 + CFE_TBL_NOT_CRITICAL_TBL_ERR_EID: + id: 83 + CFE_TBL_NOT_IN_CRIT_REG_ERR_EID: + id: 84 + CFE_TBL_CDS_NOT_FOUND_ERR_EID: + id: 85 + CFE_TBL_CDS_DELETE_ERR_EID: + id: 86 + CFE_TBL_CDS_OWNER_ACTIVE_ERR_EID: + id: 87 + CFE_TBL_LOADING_PENDING_ERR_EID: + id: 88 + CFE_TBL_FAIL_NOTIFY_SEND_ERR_EID: + id: 89 + CFE_TBL_REGISTER_ERR_EID: + id: 90 + CFE_TBL_SHARE_ERR_EID: + id: 91 + CFE_TBL_UNREGISTER_ERR_EID: + id: 92 + CFE_TBL_LOAD_ERR_EID: + id: 93 + CFE_TBL_LOAD_TYPE_ERR_EID: + id: 94 + CFE_TBL_UPDATE_ERR_EID: + id: 95 + CFE_TBL_VALIDATION_ERR_EID: + id: 96 + CFE_TBL_SPACECRAFT_ID_ERR_EID: + id: 97 + CFE_TBL_PROCESSOR_ID_ERR_EID: + id: 98 msg_def_overrides: - parent: CFE_TBL_LoadCmd_Payload_t member: LoadFilename @@ -1267,7 +1774,86 @@ modules: cfe_time: short_name: cfe_time long_name: Core Flight Executive - Time Services - events: {} + events: + CFE_TIME_INIT_EID: + id: 1 + # Removed 2-3 + CFE_TIME_NOOP_EID: + id: 4 + CFE_TIME_RESET_EID: + id: 5 + CFE_TIME_DIAG_EID: + id: 6 + CFE_TIME_STATE_EID: + id: 7 + CFE_TIME_SOURCE_EID: + id: 8 + CFE_TIME_SIGNAL_EID: + id: 9 + # Removed 10 + CFE_TIME_DELAY_EID: + id: 11 + CFE_TIME_TIME_EID: + id: 12 + CFE_TIME_MET_EID: + id: 13 + CFE_TIME_STCF_EID: + id: 14 + CFE_TIME_DELTA_EID: + id: 15 + CFE_TIME_1HZ_EID: + id: 16 + CFE_TIME_LEAPS_EID: + id: 17 + # Removed 18-19 + CFE_TIME_FLY_ON_EID: + id: 20 + CFE_TIME_FLY_OFF_EID: + id: 21 + # Removed 22-24 + CFE_TIME_EXIT_ERR_EID: + id: 25 + CFE_TIME_ID_ERR_EID: + id: 26 + CFE_TIME_CC_ERR_EID: + id: 27 + # Removed 28-29 + CFE_TIME_STATE_ERR_EID: + id: 30 + CFE_TIME_SOURCE_ERR_EID: + id: 31 + CFE_TIME_SIGNAL_ERR_EID: + id: 32 + CFE_TIME_DELAY_ERR_EID: + id: 33 + CFE_TIME_TIME_ERR_EID: + id: 34 + CFE_TIME_MET_ERR_EID: + id: 35 + CFE_TIME_STCF_ERR_EID: + id: 36 + CFE_TIME_DELTA_ERR_EID: + id: 37 + CFE_TIME_1HZ_ERR_EID: + id: 38 + CFE_TIME_SOURCE_CFG_EID: + id: 40 + CFE_TIME_SIGNAL_CFG_EID: + id: 41 + CFE_TIME_DELAY_CFG_EID: + id: 42 + CFE_TIME_TIME_CFG_EID: + id: 43 + CFE_TIME_MET_CFG_EID: + id: 44 + CFE_TIME_STCF_CFG_EID: + id: 45 + CFE_TIME_LEAPS_CFG_EID: + id: 46 + CFE_TIME_DELTA_CFG_EID: + id: 47 + CFE_TIME_1HZ_CFG_EID: + id: 48 msg_def_overrides: - parent: CFE_TIME_SignalCmd_Payload_t member: ToneSource From bd7589152a68029b453b0f89bac86a698913964e Mon Sep 17 00:00:00 2001 From: lorenzo-gomez-windhover Date: Thu, 25 Feb 2021 17:22:20 -0600 Subject: [PATCH 176/370] -Added python script to auto-generate events display(Not done yet) -TODO:Deep copy widgets --- .../Core/EVS/Scripts/Python/events_init.py | 143 ++++++++++++++++++ 1 file changed, 143 insertions(+) create mode 100644 core/base/tools/commander/workspace_template/Displays/Core/EVS/Scripts/Python/events_init.py diff --git a/core/base/tools/commander/workspace_template/Displays/Core/EVS/Scripts/Python/events_init.py b/core/base/tools/commander/workspace_template/Displays/Core/EVS/Scripts/Python/events_init.py new file mode 100644 index 000000000..c207dba01 --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/Core/EVS/Scripts/Python/events_init.py @@ -0,0 +1,143 @@ +""" +This script auto-generates event ids rows for each event id found in the YAML file. It also generates all of the +buttons for each command of each event. +""" +# import java packages +from org.csstudio.opibuilder.scriptUtil import PVUtil, ScriptUtil, FileUtil, WidgetUtil +from org.yamcs.studio.data import IPVListener +from java.lang import Runnable +from org.eclipse.swt.widgets import Display +from org.csstudio.opibuilder.scriptUtil import YAMLUtil +from org.csstudio.opibuilder.properties import ActionsProperty, WidgetPropertyCategory +from org.csstudio.opibuilder.model import AbstractWidgetModel +# import python packages +import logging +import copy + + +# from org.csstudio.opibuilder.scriptUtil import + + + + +def validate_opi(): + """ + Validate the OPI. Essentially check that we have all of the macros we need. + + :return bool: True if this opi is valid. False otherwise. + """ + is_valid = True + + # getMacroValue returns a unicode object, NOT an str object. See "5.6.1. String Methods" of the python2.7.18 docs + # for details. + app_name = display.getMacroValue("APP") + project_name = display.getMacroValue("PROJECT_NAME") + yaml_path = display.getMacroValue("YAML_PATH") + + if app_name is None or project_name is None or yaml_path is None: + is_valid = False + + return is_valid + + +def get_module(in_module, yaml_data): + """ + Get the module data from yaml_data dict. Especially useful for when the modules are structured in + a hierarchical fashion like our config files. + + :param in_module(str): The name of the module to look for. + :param yaml_data(dcit): The dictionary that has the configruation data. + + :return dict: The dictionary with the data of module. + """ + module_data = None + for module in yaml_data['modules']: + # FIXME: More succinct way of doing this? + if 'modules' in yaml_data['modules'][module]: + module_data = get_module(in_module, yaml_data['modules'][module]) + if in_module == module: + module_data = yaml_data['modules'][in_module] + + return module_data + + +def get_events_from_yaml(module, yaml_path, logger): + """ + Fetch the events from the YAML file. + :param module(str): The name of the module(or app) from which we want to fetch events from. + :param logger: + :return: A dict object that has all of the events. + """ + yamnl_data = YAMLUtil.parseYAML(yaml_path) + module_data = get_module(module, yamnl_data) + events = None + + if module_data: + if 'events' in module_data: + if not (module_data['events'] is None): + events = module_data['events'] + else: + logger.error("The events key is empty for module {}".format(module)) + else: + logger.error("There is no events key present for module {}".format(module)) + else: + logger.error("module {} does not exist".format(module)) + + return events + + +def deep_copy_widget(widget): + """ + Makes a deep copy of widget and returns it. Essentially it makes a new widget and copies all of the properties. + """ + # FIXME: widget_id should not be an argument. We should be able to query this from widget object. + new_widget = WidgetUtil.createWidgetModel(widget.getTypeID()) + for property_id in widget.getAllPropertyIDs(): + new_widget.addProperty((widget.getProperty(property_id))) + + return new_widget + + +def get_new_event_record_container(event_label): + template_widget_recdord = display.getWidget("EventRecordTemplate").getWidgetModel() + new_event_record_container = WidgetUtil.createWidgetModel(widget.getTypeID()) + new_event_record_container = deep_copy_widget(template_widget_recdord) + for child in template_widget_recdord.getAllDescendants(): + if child.getPropertyValue("widget_type") == "Label": + child.setPropertyValue("text", event_label) + + for + + copy.deepcopy(child) + new_event_record_container.addChild(child, False) + + return new_event_record_container + + +def main(): + logging.basicConfig() + logger = logging.getLogger('events_init') + if validate_opi() is False: + logger.warning("OPI is not valid. Ensure that the APP, PROJECT_NAME and YAML_PATH macros have some kind of " + "value.") + return -1 + + app_name = display.getMacroValue("APP") + project_name = display.getMacroValue("PROJECT_NAME") + yaml_path = FileUtil.workspacePathToSysPath(display.getMacroValue("YAML_PATH")) + + display.getWidget("app_name").setPropertyValue("text", app_name) + + events = get_events_from_yaml(app_name, yaml_path, logger) + + for event in events: + event_label = "{}({})".format(event, events[event]) + new_container = get_new_event_record_container(event_label) + + display.getWidget("EventsTable").addChild(new_container) + + # Cleanup template once we are done. + display.getWidget("EventsTable").removeChild(display.getWidget("EventsTable").getWidget("EventRecordTemplate")) + + +main() From d1013cf60513e56dd859c7bae888904c167d8230 Mon Sep 17 00:00:00 2001 From: lorenzo-gomez-windhover Date: Thu, 25 Feb 2021 17:23:55 -0600 Subject: [PATCH 177/370] -Added Events Button to SCH --- .../Displays/Apps/SCH/Main.opi | 70 ++++++++++++++++++- 1 file changed, 67 insertions(+), 3 deletions(-) diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/SCH/Main.opi b/core/base/tools/commander/workspace_template/Displays/Apps/SCH/Main.opi index f26613196..a9df65950 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/SCH/Main.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/SCH/Main.opi @@ -10,14 +10,17 @@ - 1.5.3 + 1.5.4.202102122300 6 - 570 + 600 true + sch + /Displays/Core/EVS/Events.opi + Displays @@ -28,7 +31,7 @@ true true Display - 350 + 600 -33cb7c72:150aa4c347f:-76c2 -1 -1 @@ -2595,4 +2598,65 @@ $(pv_value) 36 524 + + + + + importPackage(Packages.org.csstudio.opibuilder.scriptUtil); +importPackage(Packages.org.yamcs.studio.script); +importPackage(Packages.org.yamcs.studio.data); +importPackage(org.csstudio.opibuilder.runmode) + +var opi_to_open_path = FileUtil.workspacePathToSysPath(display.getMacroValue("EVENTS_OPI")); +var macroInput = DataUtil.createMacrosInput(true); + +ScriptUtil.openOPI(display.getWidget("Events"), opi_to_open_path, RunModeService.DisplayMode.REPLACE, macroInput ); + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 20 + + Events + 0 + + + + + true + true + false + + + + Events + false + $(pv_name) +$(pv_value) + true + Action Button + 127 + -6d93a836:177d12fe0d6:-7f45 + 420 + 204 + \ No newline at end of file From b83dfba77d1ca91def09efd42ef1d17a0004fc91 Mon Sep 17 00:00:00 2001 From: lorenzo-gomez-windhover Date: Thu, 25 Feb 2021 17:25:43 -0600 Subject: [PATCH 178/370] -Updated script for Events display --- .../Displays/Core/EVS/Events.opi | 403 +++++++++++++++--- 1 file changed, 336 insertions(+), 67 deletions(-) diff --git a/core/base/tools/commander/workspace_template/Displays/Core/EVS/Events.opi b/core/base/tools/commander/workspace_template/Displays/Core/EVS/Events.opi index 0fa47d6ee..0563ffa65 100644 --- a/core/base/tools/commander/workspace_template/Displays/Core/EVS/Events.opi +++ b/core/base/tools/commander/workspace_template/Displays/Core/EVS/Events.opi @@ -18,49 +18,12 @@ 600 true + /Displays/Resources/wh_defs.yaml - - init - importPackage(Packages.org.csstudio.opibuilder.scriptUtil); -importPackage(org.csstudio.opibuilder.properties); -importPackage(org.csstudio.opibuilder.model); - -var app_name = display.getMacroValue("APP"); -var commands = ['Reset']; -if(app_name != null && app_name!="") -{ - display.getWidget("app_name").setPropertyValue("text",app_name); - for(var i =0;i<8;i++) - { - for(var j =0;j<commands.length;j++) - { - //Create a new Macro Input - var event_id_macro_input = DataUtil.createMacrosInput(true); - - //Put a macro in the new Macro Input - event_id_macro_input.put("EVENT_ID", i); - event_id_macro_input.put("APP", "TO"); - - var label_widget = WidgetUtil.createWidgetModel("org.csstudio.opibuilder.widgets.Label"); - var button_widget = WidgetUtil.createWidgetModel("org.csstudio.opibuilder.widgets.ActionButton"); - var actions = FileUtil.loadXMLFile("/Displays/Core/EVS/XMLScripts/ResetEvent.xml"); - var action_property = new ActionsProperty(AbstractWidgetModel.PROP_ACTIONS, "Actions", WidgetPropertyCategory.Behavior, false); - var xml_input_property = action_property.readValueFromXML(actions); - - action_property.setPropertyValue(xml_input_property); - button_widget.addProperty(action_property); - button_widget.setPropertyValue("pv_value", i); - button_widget.setPropertyValue("text", commands[j]); - - display.addChild(label_widget); - display.addChild(button_widget); - } - } - -} + =1 @@ -74,27 +37,30 @@ if(app_name != null && app_name!="") -193d70a0:177d50fd41f:-7f32 -1 -1 - + - false - + - + - 0 + 1 1 true + false Default - + - 31 - 2 - Label + 470 + false + + true + + EventsTable true @@ -102,17 +68,328 @@ if(app_name != null && app_name!="") false - ID + true - true - 1 + false true - Label - 73 - false - -193d70a0:177d50fd41f:-7f23 - 43 - 132 + Grouping Container + 686 + -19107c2b:177da1db5df:-7d44 + 83 + 143 + + + + + + + + + 1 + 1 + true + false + + Default + + + + + 49 + false + + true + + EventHeader + + + true + true + false + + + true + + false + true + Grouping Container + 685 + -19107c2b:177da1db5df:-7d63 + 0 + 0 + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 31 + 2 + Label + + + true + true + false + + + ID + + true + 1 + true + Label + 73 + false + -193d70a0:177d50fd41f:-7f23 + -6 + 6 + + + false + 0 + Grid Layout + 3 + Grid Layout + -19107c2b:177da1db5df:-7d5f + + + + + + + + + + + 1 + 1 + true + false + + Default + + + + + 68 + false + + true + + EventRecordTemplate + + + true + true + false + + + true + + false + true + Grouping Container + 686 + -19107c2b:177da1db5df:-7c5e + 0 + 48 + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label + + + true + true + false + + + Label + + true + 1 + true + Label + 223 + false + -19107c2b:177da1db5df:-7c24 + 0 + 15 + + + + + + importPackage(Packages.org.csstudio.opibuilder.scriptUtil); +importPackage(Packages.org.yamcs.studio.script); +importPackage(Packages.org.yamcs.studio.data); + +//var yaml_dir = FileUtil.workspacePathToSysPath(display.getMacroValue("PROJECT_NAME")) + "/Resources/wh_defs.yaml"; +//var yaml_data = YAMLUtil.parseYAML(yaml_dir); +//VTypeHelper.getString(display.getWidget +//var appName = VTypeHelper.getString(display.getWidget('AppName').getPropertyValue("pv_value")); + +ConsoleUtil.writeInfo("app_name---------->:"); + +//var eventID = VTypeHelper.getDouble(display.getWidget('EventID').getPropertyValue("pv_value")); + +//Yamcs.issueCommand('/cfs/cfe_evs/ResetAppEventFilter', { +// 'Payload.AppName': appName, +// 'Payload.EventID': eventID}); + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 28 + ../../Resources/send.png + Action Button + 0 + + + + + true + true + false + + + + Reset Event + false + $(pv_name) +$(pv_value) + true + Action Button + 122 + -19107c2b:177da1db5df:-7c14 + 240 + 15 + + + + + + importPackage(Packages.org.csstudio.opibuilder.scriptUtil); +importPackage(Packages.org.yamcs.studio.script); +importPackage(Packages.org.yamcs.studio.data); + +appName = VTypeHelper.getString(display.getWidget('AppName').getPropertyValue('pv_value')); + +Yamcs.issueCommand('/cfs/cfe_evs/ResetAppEventCounters', {'Payload.AppName': appName}); + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 28 + ../../Resources/send.png + Action Button + 0 + + + + + true + true + false + + + + Reset + false + $(pv_name) +$(pv_value) + true + Action Button + 90 + -19107c2b:177da1db5df:-7bc6 + 396 + 15 + + + true + 4 + Grid Layout + 3 + Grid Layout + -19107c2b:177da1db5df:-7c2d + + + + false + 0 + Grid Layout + 1 + Grid Layout + -19107c2b:177da1db5df:-7d2f + @@ -151,15 +428,7 @@ if(app_name != null && app_name!="") 199 false -193d70a0:177d50fd41f:-7f0e - 144 - 132 - - - true - 2 - Grid Layout - 2 - Grid Layout - 76586248:177d58c70f5:-7e00 + 210 + 66 \ No newline at end of file From eacc25c2e1c82cae13cc420647bf052644ba8ba6 Mon Sep 17 00:00:00 2001 From: Mathew Benson Date: Thu, 25 Feb 2021 20:01:38 -0600 Subject: [PATCH 179/370] Most unit tests are passing again. --- .../fsw/unit_test/ak8963_custom_stubs.c | 6 - apps/amc/fsw/for_build/CMakeLists.txt | 1 + apps/amc/fsw/src/pwm_limit/pwm_limit.c | 8 +- .../unit_test/stubs/ut_amc_custom_hooks.cpp | 5 - .../fsw/unit_test/stubs/ut_amc_custom_hooks.h | 1 - .../unit_test/stubs/ut_amc_custom_stubs.cpp | 11 -- .../fsw/unit_test/stubs/ut_amc_custom_stubs.h | 2 - apps/bat/fsw/for_build/CMakeLists.txt | 1 + .../unit_test/stubs/ut_bat_custom_hooks.cpp | 4 - .../fsw/unit_test/stubs/ut_bat_custom_hooks.h | 2 +- .../unit_test/stubs/ut_bat_custom_stubs.cpp | 11 -- .../fsw/unit_test/stubs/ut_bat_custom_stubs.h | 2 - apps/flow/fsw/src/flow_app.cpp | 2 +- apps/flow/fsw/unit_test/flow_custom_stubs.c | 13 -- apps/hmc5883/fsw/for_build/CMakeLists.txt | 1 + apps/hmc5883/fsw/src/hmc5883_app.cpp | 2 +- .../fsw/unit_test/hmc5883_custom_stubs.c | 2 +- apps/ld/fsw/for_build/CMakeLists.txt | 1 + apps/ld/fsw/src/ld_app.cpp | 8 +- apps/ld/fsw/src/ld_state_history.cpp | 6 +- apps/ld/fsw/unit_test/ld_custom_stubs.c | 12 -- .../unit_test/stubs/ut_lgc_custom_hooks.cpp | 2 +- .../fsw/unit_test/stubs/ut_lgc_custom_hooks.h | 2 +- .../unit_test/stubs/ut_lgc_custom_stubs.cpp | 12 +- .../fsw/unit_test/stubs/ut_lgc_custom_stubs.h | 4 +- apps/mac/fsw/for_build/CMakeLists.txt | 1 + apps/mac/fsw/src/mac_app.cpp | 2 +- apps/mac/fsw/unit_test/stubs.c | 11 -- apps/mpc/fsw/for_build/CMakeLists.txt | 5 +- apps/mpc/fsw/src/mpc_app.cpp | 6 +- apps/mpc/fsw/unit_test/mpc_app_test.cpp | 129 ++---------------- .../unit_test/stubs/ut_mpc_custom_hooks.cpp | 2 +- .../fsw/unit_test/stubs/ut_mpc_custom_hooks.h | 2 +- .../unit_test/stubs/ut_mpc_custom_stubs.cpp | 2 +- .../fsw/unit_test/stubs/ut_mpc_custom_stubs.h | 4 +- .../fsw/unit_test/mpu6050_custom_stubs.c | 6 - apps/mpu9250/fsw/for_build/CMakeLists.txt | 1 + apps/mpu9250/fsw/src/mpu9250_app.cpp | 2 +- .../fsw/unit_test/mpu9250_custom_stubs.c | 2 +- .../fsw/unit_test/ms5607_custom_stubs.c | 2 +- apps/ms5611/fsw/src/ms5611_app.cpp | 2 +- .../fsw/unit_test/ms5611_custom_stubs.c | 2 +- apps/nav/fsw/for_build/CMakeLists.txt | 1 + apps/nav/fsw/src/nav_app.cpp | 4 +- apps/nav/fsw/unit_test/nav_custom_stubs.c | 13 -- apps/pe/fsw/for_build/CMakeLists.txt | 1 + apps/pe/fsw/unit_test/pe_app_test.cpp | 4 +- apps/pe/fsw/unit_test/pe_stubs.c | 6 - apps/px4lib/fsw/for_build/CMakeLists.txt | 25 ++++ apps/px4lib/fsw/public_inc/px4lib.h | 3 - apps/px4lib/fsw/src/math/Integrator.cpp | 4 +- apps/px4lib/fsw/src/px4lib.cpp | 68 --------- apps/qae/fsw/for_build/CMakeLists.txt | 1 + apps/qae/fsw/src/qae_app.cpp | 2 +- apps/qae/fsw/unit_test/qae_stubs.c | 4 - apps/rcin/fsw/for_build/CMakeLists.txt | 1 + apps/rcin/fsw/unit_test/rcin_custom_stubs.c | 6 - apps/sim/fsw/src/sim_app.cpp | 16 +-- apps/sim/fsw/unit_test/sim_app_test.cpp | 12 +- apps/sim/fsw/unit_test/sim_custom_stubs.c | 2 +- apps/sonar/fsw/src/sonar_app.cpp | 2 +- apps/sonar/fsw/unit_test/sonar_custom_stubs.c | 12 -- apps/ulr/fsw/for_build/CMakeLists.txt | 1 + apps/ulr/fsw/src/ulr_app.cpp | 2 +- .../unit_test/stubs/ut_ulr_custom_hooks.cpp | 2 +- .../fsw/unit_test/stubs/ut_ulr_custom_hooks.h | 2 +- .../unit_test/stubs/ut_ulr_custom_stubs.cpp | 12 +- .../fsw/unit_test/stubs/ut_ulr_custom_stubs.h | 4 +- apps/vm/fsw/src/vm_app.cpp | 4 +- apps/vm/fsw/unit_test/vm_stubs.cpp | 6 - 70 files changed, 121 insertions(+), 401 deletions(-) diff --git a/apps/ak8963/fsw/unit_test/ak8963_custom_stubs.c b/apps/ak8963/fsw/unit_test/ak8963_custom_stubs.c index cc26ae5e2..b197686ed 100644 --- a/apps/ak8963/fsw/unit_test/ak8963_custom_stubs.c +++ b/apps/ak8963/fsw/unit_test/ak8963_custom_stubs.c @@ -115,12 +115,6 @@ boolean AK8963_PowerOn(void) } -uint64 PX4LIB_GetPX4TimeUs(void) -{ - return 0; -} - - boolean AK8963_RunSelfTest(void) { return TRUE; diff --git a/apps/amc/fsw/for_build/CMakeLists.txt b/apps/amc/fsw/for_build/CMakeLists.txt index 966da0ec8..01f41735c 100644 --- a/apps/amc/fsw/for_build/CMakeLists.txt +++ b/apps/amc/fsw/for_build/CMakeLists.txt @@ -99,6 +99,7 @@ buildliner_add_app_unit_test(amc-ut ${CMAKE_CURRENT_SOURCE_DIR}/../src/mixer/MultirotorMixer.h ${CMAKE_CURRENT_SOURCE_DIR}/../src/pwm_limit/pwm_limit.c ${CMAKE_CURRENT_SOURCE_DIR}/../src/pwm_limit/pwm_limit.h + ${CMAKE_CURRENT_SOURCE_DIR}/../../../cfs_lib/fsw/src/cfs_utils.c INCLUDES ${CMAKE_CURRENT_SOURCE_DIR}/../src/ diff --git a/apps/amc/fsw/src/pwm_limit/pwm_limit.c b/apps/amc/fsw/src/pwm_limit/pwm_limit.c index d68835263..35e083c5f 100644 --- a/apps/amc/fsw/src/pwm_limit/pwm_limit.c +++ b/apps/amc/fsw/src/pwm_limit/pwm_limit.c @@ -85,11 +85,11 @@ void PwmLimit_Calc(const boolean armed, const boolean pre_armed, if (limit->time_armed == 0) { /* reset arming time, used for ramp timing */ - limit->time_armed = PX4LIB_GetPX4TimeUs(); + limit->time_armed = CFE_TIME_GetTimeInMicros(); } /* reset arming time, used for ramp timing */ - now = PX4LIB_GetPX4TimeUs(); + now = CFE_TIME_GetTimeInMicros(); delta = now - limit->time_armed; @@ -107,7 +107,7 @@ void PwmLimit_Calc(const boolean armed, const boolean pre_armed, if (armed) { /* reset arming time, used for ramp timing */ - limit->time_armed = PX4LIB_GetPX4TimeUs(); + limit->time_armed = CFE_TIME_GetTimeInMicros(); limit->state = PWM_LIMIT_STATE_RAMP; } @@ -293,7 +293,7 @@ uint64 hrt_elapsed_time(uint64 *input) uint64 delta = 0; /* reset arming time, used for ramp timing */ - delta = PX4LIB_GetPX4TimeUs() - *input; + delta = CFE_TIME_GetTimeInMicros() - *input; return delta; } diff --git a/apps/amc/fsw/unit_test/stubs/ut_amc_custom_hooks.cpp b/apps/amc/fsw/unit_test/stubs/ut_amc_custom_hooks.cpp index bda0792c9..790938115 100644 --- a/apps/amc/fsw/unit_test/stubs/ut_amc_custom_hooks.cpp +++ b/apps/amc/fsw/unit_test/stubs/ut_amc_custom_hooks.cpp @@ -45,8 +45,3 @@ void UT_SetMotorOutputs(const uint16 *PWM) } - -uint64 UT_PX4LIB_GetPX4TimeUs(void) -{ - return 0; -} diff --git a/apps/amc/fsw/unit_test/stubs/ut_amc_custom_hooks.h b/apps/amc/fsw/unit_test/stubs/ut_amc_custom_hooks.h index 7e5fb7adc..01180469d 100644 --- a/apps/amc/fsw/unit_test/stubs/ut_amc_custom_hooks.h +++ b/apps/amc/fsw/unit_test/stubs/ut_amc_custom_hooks.h @@ -38,6 +38,5 @@ uint32 UT_InitDevice(void); void UT_SetMotorOutputs(const uint16 *PWM); -uint64 UT_PX4LIB_GetPX4TimeUs(void); #endif diff --git a/apps/amc/fsw/unit_test/stubs/ut_amc_custom_stubs.cpp b/apps/amc/fsw/unit_test/stubs/ut_amc_custom_stubs.cpp index f6b89d800..3d6b3731a 100644 --- a/apps/amc/fsw/unit_test/stubs/ut_amc_custom_stubs.cpp +++ b/apps/amc/fsw/unit_test/stubs/ut_amc_custom_stubs.cpp @@ -51,7 +51,6 @@ void Ut_AMC_Custom_SetFunctionHook(uint32 Index, void *FunPtr) { if (Index == UT_AMC_CUSTOM_INITDEVICE_INDEX) { Ut_AMC_Custom_HookTable.InitDevice = (uint32 (*)(void))FunPtr; } else if (Index == UT_AMC_CUSTOM_SETMOTOROUTPUTS_INDEX) { Ut_AMC_Custom_HookTable.SetMotorOutputs = (void(*)(const uint16 *))FunPtr; } - else if (Index == UT_AMC_PX4LIB_GETPX4TIMEUS_INDEX) { Ut_AMC_Custom_HookTable.PX4LIB_GetPX4TimeUs = (uint64 (*)(void))FunPtr; } else { printf("Unsupported AMC_CUSTOM Index In SetFunctionHook Call %lu\n", Index); @@ -118,13 +117,3 @@ void AMC::SetMotorOutputs(const uint16 *PWM) Ut_AMC_Custom_HookTable.SetMotorOutputs(PWM); } -extern "C" uint64 PX4LIB_GetPX4TimeUs(void) -{ - /* Check for specified return */ - if (Ut_AMC_Custom_UseReturnCode(UT_AMC_PX4LIB_GETPX4TIMEUS_INDEX)) - return Ut_AMC_Custom_ReturnCodeTable[UT_AMC_PX4LIB_GETPX4TIMEUS_INDEX].Value; - - /* Check for Function Hook */ - if (Ut_AMC_Custom_HookTable.PX4LIB_GetPX4TimeUs) - return Ut_AMC_Custom_HookTable.PX4LIB_GetPX4TimeUs(); -} diff --git a/apps/amc/fsw/unit_test/stubs/ut_amc_custom_stubs.h b/apps/amc/fsw/unit_test/stubs/ut_amc_custom_stubs.h index a88971f26..037317bb6 100644 --- a/apps/amc/fsw/unit_test/stubs/ut_amc_custom_stubs.h +++ b/apps/amc/fsw/unit_test/stubs/ut_amc_custom_stubs.h @@ -38,7 +38,6 @@ typedef enum { UT_AMC_CUSTOM_INITDEVICE_INDEX, UT_AMC_CUSTOM_SETMOTOROUTPUTS_INDEX, - UT_AMC_PX4LIB_GETPX4TIMEUS_INDEX, UT_AMC_CUSTOM_MAX_INDEX } Ut_AMC_Custom_INDEX_t; @@ -46,7 +45,6 @@ typedef struct { uint32 (*InitDevice)(void); void (*SetMotorOutputs)(const uint16 *PWM); - uint64 (*PX4LIB_GetPX4TimeUs)(void); } Ut_AMC_Custom_HookTable_t; typedef struct diff --git a/apps/bat/fsw/for_build/CMakeLists.txt b/apps/bat/fsw/for_build/CMakeLists.txt index 49081eda4..376825b45 100644 --- a/apps/bat/fsw/for_build/CMakeLists.txt +++ b/apps/bat/fsw/for_build/CMakeLists.txt @@ -47,6 +47,7 @@ buildliner_add_app_unit_test(bat-ut ${CMAKE_CURRENT_SOURCE_DIR}/../src/bat_msg.h ${CMAKE_CURRENT_SOURCE_DIR}/../src/bat_tbldefs.h ${CMAKE_CURRENT_SOURCE_DIR}/../src/bat_version.h + ${CMAKE_CURRENT_SOURCE_DIR}/../../../cfs_lib/fsw/src/cfs_utils.c INCLUDES ${CMAKE_CURRENT_SOURCE_DIR}/../src/ diff --git a/apps/bat/fsw/unit_test/stubs/ut_bat_custom_hooks.cpp b/apps/bat/fsw/unit_test/stubs/ut_bat_custom_hooks.cpp index 49d67af30..ebaed19b8 100644 --- a/apps/bat/fsw/unit_test/stubs/ut_bat_custom_hooks.cpp +++ b/apps/bat/fsw/unit_test/stubs/ut_bat_custom_hooks.cpp @@ -53,7 +53,3 @@ int32 UT_ReadDevice(float &Voltage, float &Current) return 0; } -uint64 UT_PX4LIB_GetPX4TimeUs(void) -{ - return 0; -} diff --git a/apps/bat/fsw/unit_test/stubs/ut_bat_custom_hooks.h b/apps/bat/fsw/unit_test/stubs/ut_bat_custom_hooks.h index 8c993b8dd..5477e2424 100644 --- a/apps/bat/fsw/unit_test/stubs/ut_bat_custom_hooks.h +++ b/apps/bat/fsw/unit_test/stubs/ut_bat_custom_hooks.h @@ -39,6 +39,6 @@ int32 UT_InitDevice(void); void UT_CloseDevice(void); int32 UT_ReadDevice(float &Voltage, float &Current); -uint64 UT_PX4LIB_GetPX4TimeUs(void); + #endif diff --git a/apps/bat/fsw/unit_test/stubs/ut_bat_custom_stubs.cpp b/apps/bat/fsw/unit_test/stubs/ut_bat_custom_stubs.cpp index 626b84f10..6a6cc1b43 100644 --- a/apps/bat/fsw/unit_test/stubs/ut_bat_custom_stubs.cpp +++ b/apps/bat/fsw/unit_test/stubs/ut_bat_custom_stubs.cpp @@ -52,7 +52,6 @@ void Ut_BAT_Custom_SetFunctionHook(uint32 Index, void *FunPtr) if (Index == UT_BAT_CUSTOM_INITDEVICE_INDEX) { Ut_BAT_Custom_HookTable.InitDevice = (int32 (*)(void))FunPtr; } else if (Index == UT_BAT_CUSTOM_CLOSEDEVICE_INDEX) { Ut_BAT_Custom_HookTable.CloseDevice = (void (*)(void))FunPtr; } else if (Index == UT_BAT_CUSTOM_READDEVICE_INDEX) { Ut_BAT_Custom_HookTable.ReadDevice = (int32 (*)(float &, float &))FunPtr; } - else if (Index == UT_BAT_PX4LIB_GETPX4TIMEUS_INDEX) { Ut_BAT_Custom_HookTable.PX4LIB_GetPX4TimeUs = (uint64 (*)(void))FunPtr; } else { printf("Unsupported BAT_CUSTOM Index In SetFunctionHook Call %lu\n", Index); @@ -133,14 +132,4 @@ int32 BAT::ReadDevice(float &Voltage, float &Current) return 0; } -extern "C" uint64 PX4LIB_GetPX4TimeUs(void) -{ - /* Check for specified return */ - if (Ut_BAT_Custom_UseReturnCode(UT_BAT_PX4LIB_GETPX4TIMEUS_INDEX)) - return Ut_BAT_Custom_ReturnCodeTable[UT_BAT_PX4LIB_GETPX4TIMEUS_INDEX].Value; - - /* Check for Function Hook */ - if (Ut_BAT_Custom_HookTable.PX4LIB_GetPX4TimeUs) - return Ut_BAT_Custom_HookTable.PX4LIB_GetPX4TimeUs(); -} diff --git a/apps/bat/fsw/unit_test/stubs/ut_bat_custom_stubs.h b/apps/bat/fsw/unit_test/stubs/ut_bat_custom_stubs.h index b395c137f..f63e96897 100644 --- a/apps/bat/fsw/unit_test/stubs/ut_bat_custom_stubs.h +++ b/apps/bat/fsw/unit_test/stubs/ut_bat_custom_stubs.h @@ -39,7 +39,6 @@ typedef enum UT_BAT_CUSTOM_INITDEVICE_INDEX, UT_BAT_CUSTOM_CLOSEDEVICE_INDEX, UT_BAT_CUSTOM_READDEVICE_INDEX, - UT_BAT_PX4LIB_GETPX4TIMEUS_INDEX, UT_BAT_CUSTOM_MAX_INDEX } Ut_BAT_Custom_INDEX_t; @@ -48,7 +47,6 @@ typedef struct int32 (*InitDevice)(void); void (*CloseDevice)(void); int32 (*ReadDevice)(float &Voltage, float &Current); - uint64 (*PX4LIB_GetPX4TimeUs)(void); } Ut_BAT_Custom_HookTable_t; typedef struct diff --git a/apps/flow/fsw/src/flow_app.cpp b/apps/flow/fsw/src/flow_app.cpp index 464c3b441..eb752139d 100644 --- a/apps/flow/fsw/src/flow_app.cpp +++ b/apps/flow/fsw/src/flow_app.cpp @@ -1358,7 +1358,7 @@ uint32 FLOW::CalculateOpticalFlow() if(quality >= 0) { /* Copy findings to optical flow message */ - OpticalFlowMsg.Timestamp = PX4LIB_GetPX4TimeUs(); + OpticalFlowMsg.Timestamp = CFE_TIME_GetTimeInMicros(); OpticalFlowMsg.SensorID = FLOW_SENSOR_ID; OpticalFlowMsg.PixelFlowXIntegral = ((quality>=0) ? HkTlm.AngularFlowX : 0.0f); OpticalFlowMsg.PixelFlowYIntegral = ((quality>=0) ? HkTlm.AngularFlowY : 0.0f); diff --git a/apps/flow/fsw/unit_test/flow_custom_stubs.c b/apps/flow/fsw/unit_test/flow_custom_stubs.c index e1b549452..e5fcf86ab 100644 --- a/apps/flow/fsw/unit_test/flow_custom_stubs.c +++ b/apps/flow/fsw/unit_test/flow_custom_stubs.c @@ -35,16 +35,3 @@ -uint64 PX4LIB_GetPX4TimeUs(void) -{ - return 0; -} - - -uint64 PX4LIB_GetPX4TimeMs(void) -{ - return 0; -} - - - diff --git a/apps/hmc5883/fsw/for_build/CMakeLists.txt b/apps/hmc5883/fsw/for_build/CMakeLists.txt index 1d3e89490..9c1084bf7 100644 --- a/apps/hmc5883/fsw/for_build/CMakeLists.txt +++ b/apps/hmc5883/fsw/for_build/CMakeLists.txt @@ -77,6 +77,7 @@ buildliner_add_app_unit_test(hmc5883-ut ${CMAKE_CURRENT_SOURCE_DIR}/../src/hmc5883_msg.h ${CMAKE_CURRENT_SOURCE_DIR}/../src/hmc5883_tbldefs.h ${CMAKE_CURRENT_SOURCE_DIR}/../src/hmc5883_version.h + ${CMAKE_CURRENT_SOURCE_DIR}/../../../cfs_lib/fsw/src/cfs_utils.c INCLUDES ${CMAKE_CURRENT_SOURCE_DIR}/../src/ diff --git a/apps/hmc5883/fsw/src/hmc5883_app.cpp b/apps/hmc5883/fsw/src/hmc5883_app.cpp index f15e14c00..2353f9367 100644 --- a/apps/hmc5883/fsw/src/hmc5883_app.cpp +++ b/apps/hmc5883/fsw/src/hmc5883_app.cpp @@ -700,7 +700,7 @@ void HMC5883::ReadDevice(void) boolean returnBool = FALSE; static uint8 temp_count = 0; int16 temp = 0; - uint64 timeStamp = PX4LIB_GetPX4TimeUs(); + uint64 timeStamp = CFE_TIME_GetTimeInMicros(); float xraw_f = 0; float yraw_f = 0; float zraw_f = 0; diff --git a/apps/hmc5883/fsw/unit_test/hmc5883_custom_stubs.c b/apps/hmc5883/fsw/unit_test/hmc5883_custom_stubs.c index 10d441e68..894b40e4c 100644 --- a/apps/hmc5883/fsw/unit_test/hmc5883_custom_stubs.c +++ b/apps/hmc5883/fsw/unit_test/hmc5883_custom_stubs.c @@ -80,7 +80,7 @@ boolean HMC5883_Custom_Measure(int16 *X, int16 *Y, int16 *Z) } -uint64 PX4LIB_GetPX4TimeUs(void) +uint64 CFE_TIME_GetTimeInMicros(void) { return 0; } diff --git a/apps/ld/fsw/for_build/CMakeLists.txt b/apps/ld/fsw/for_build/CMakeLists.txt index c0c5c4098..e4b51fcdb 100644 --- a/apps/ld/fsw/for_build/CMakeLists.txt +++ b/apps/ld/fsw/for_build/CMakeLists.txt @@ -50,6 +50,7 @@ buildliner_add_app_unit_test(ld-ut ${CMAKE_CURRENT_SOURCE_DIR}/../src/ld_msg.h ${CMAKE_CURRENT_SOURCE_DIR}/../src/ld_tbldefs.h ${CMAKE_CURRENT_SOURCE_DIR}/../src/ld_version.h + ${CMAKE_CURRENT_SOURCE_DIR}/../../../cfs_lib/fsw/src/cfs_utils.c INCLUDES ${CMAKE_CURRENT_SOURCE_DIR}/../src/ diff --git a/apps/ld/fsw/src/ld_app.cpp b/apps/ld/fsw/src/ld_app.cpp index bbff34a94..ef8bfc289 100644 --- a/apps/ld/fsw/src/ld_app.cpp +++ b/apps/ld/fsw/src/ld_app.cpp @@ -765,7 +765,7 @@ osalbool LD::DetectFreeFall() /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ osalbool LD::DetectGroundContactState() { - const uint64 now = PX4LIB_GetPX4TimeUs(); + const uint64 now = CFE_TIME_GetTimeInMicros(); osalbool inGroundContact = FALSE; osalbool minimal_thrust = FALSE; osalbool altitude_lock = FALSE; @@ -863,7 +863,7 @@ osalbool LD::DetectGroundContactState() osalbool LD::DetectLandedState() { osalbool isLandDetected = FALSE; - const uint64 now = PX4LIB_GetPX4TimeUs(); + const uint64 now = CFE_TIME_GetTimeInMicros(); float armingThreshFactor = 1.0f; if (!CVT.ActuatorArmedMsg.Armed) @@ -914,7 +914,7 @@ osalbool LD::DetectLandedState() } if (!isLandDetected && - (PX4LIB_GetPX4TimeUs() - now) < LAND_DETECTOR_ARM_PHASE_TIME_US) //TODO is this valid? + (CFE_TIME_GetTimeInMicros() - now) < LAND_DETECTOR_ARM_PHASE_TIME_US) //TODO is this valid? { armingThreshFactor = LD_ARMING_THRESH_FACTOR; } @@ -1114,7 +1114,7 @@ void LD::Execute() publish_counter += 1; } - uint64 now = PX4LIB_GetPX4TimeUs(); + uint64 now = CFE_TIME_GetTimeInMicros(); UpdateState(); diff --git a/apps/ld/fsw/src/ld_state_history.cpp b/apps/ld/fsw/src/ld_state_history.cpp index 6ad94f6ab..d1551fdff 100644 --- a/apps/ld/fsw/src/ld_state_history.cpp +++ b/apps/ld/fsw/src/ld_state_history.cpp @@ -40,12 +40,14 @@ *************************************************************************/ #include "ld_state_history.h" +#include "cfs_utils.h" + void StateHistory::update() { if (requested_state != state) { - if ((PX4LIB_GetPX4TimeUs() - time_since_state_change) + if ((CFE_TIME_GetTimeInMicros() - time_since_state_change) >= (state ? time_since_true_state : time_since_false_state)) { state = requested_state; @@ -60,7 +62,7 @@ void StateHistory::setState(const bool new_state) if (new_state != requested_state) { requested_state = new_state; - time_since_state_change = PX4LIB_GetPX4TimeUs(); + time_since_state_change = CFE_TIME_GetTimeInMicros(); } } else diff --git a/apps/ld/fsw/unit_test/ld_custom_stubs.c b/apps/ld/fsw/unit_test/ld_custom_stubs.c index b46c562e7..e6e28ee69 100644 --- a/apps/ld/fsw/unit_test/ld_custom_stubs.c +++ b/apps/ld/fsw/unit_test/ld_custom_stubs.c @@ -35,16 +35,4 @@ -uint64 PX4LIB_GetPX4TimeUs(void) -{ - return 0; -} - - -uint64 PX4LIB_GetPX4TimeMs(void) -{ - return 0; -} - - diff --git a/apps/lgc/fsw/unit_test/stubs/ut_lgc_custom_hooks.cpp b/apps/lgc/fsw/unit_test/stubs/ut_lgc_custom_hooks.cpp index 1f74da180..3e7247f95 100644 --- a/apps/lgc/fsw/unit_test/stubs/ut_lgc_custom_hooks.cpp +++ b/apps/lgc/fsw/unit_test/stubs/ut_lgc_custom_hooks.cpp @@ -45,7 +45,7 @@ void UT_SetMotorOutputs(const uint16 *PWM) } -uint64 UT_PX4LIB_GetPX4TimeUs(void) +uint64 UT_CFE_TIME_GetTimeInMicros(void) { return 0; } diff --git a/apps/lgc/fsw/unit_test/stubs/ut_lgc_custom_hooks.h b/apps/lgc/fsw/unit_test/stubs/ut_lgc_custom_hooks.h index f5ffabf2d..9da91f630 100644 --- a/apps/lgc/fsw/unit_test/stubs/ut_lgc_custom_hooks.h +++ b/apps/lgc/fsw/unit_test/stubs/ut_lgc_custom_hooks.h @@ -38,6 +38,6 @@ uint32 UT_InitDevice(void); void UT_SetMotorOutputs(const uint16 *PWM); -uint64 UT_PX4LIB_GetPX4TimeUs(void); +uint64 UT_CFE_TIME_GetTimeInMicros(void); #endif diff --git a/apps/lgc/fsw/unit_test/stubs/ut_lgc_custom_stubs.cpp b/apps/lgc/fsw/unit_test/stubs/ut_lgc_custom_stubs.cpp index c78e9c8fe..88658bb21 100644 --- a/apps/lgc/fsw/unit_test/stubs/ut_lgc_custom_stubs.cpp +++ b/apps/lgc/fsw/unit_test/stubs/ut_lgc_custom_stubs.cpp @@ -51,7 +51,7 @@ void Ut_LGC_Custom_SetFunctionHook(uint32 Index, void *FunPtr) { if (Index == UT_LGC_CUSTOM_INITDEVICE_INDEX) { Ut_LGC_Custom_HookTable.InitDevice = (uint32 (*)(void))FunPtr; } else if (Index == UT_LGC_CUSTOM_SETMOTOROUTPUTS_INDEX) { Ut_LGC_Custom_HookTable.SetMotorOutputs = (void(*)(const uint16 *))FunPtr; } - else if (Index == UT_LGC_PX4LIB_GETPX4TIMEUS_INDEX) { Ut_LGC_Custom_HookTable.PX4LIB_GetPX4TimeUs = (uint64 (*)(void))FunPtr; } + else if (Index == UT_LGC_CFE_TIME_GetTimeInMicros_INDEX) { Ut_LGC_Custom_HookTable.CFE_TIME_GetTimeInMicros = (uint64 (*)(void))FunPtr; } else { printf("Unsupported LGC_CUSTOM Index In SetFunctionHook Call %lu\n", Index); @@ -118,13 +118,13 @@ void LGC::SetMotorOutputs(const uint16 *PWM) Ut_LGC_Custom_HookTable.SetMotorOutputs(PWM); } -extern "C" uint64 PX4LIB_GetPX4TimeUs(void) +extern "C" uint64 CFE_TIME_GetTimeInMicros(void) { /* Check for specified return */ - if (Ut_LGC_Custom_UseReturnCode(UT_LGC_PX4LIB_GETPX4TIMEUS_INDEX)) - return Ut_LGC_Custom_ReturnCodeTable[UT_LGC_PX4LIB_GETPX4TIMEUS_INDEX].Value; + if (Ut_LGC_Custom_UseReturnCode(UT_LGC_CFE_TIME_GetTimeInMicros_INDEX)) + return Ut_LGC_Custom_ReturnCodeTable[UT_LGC_CFE_TIME_GetTimeInMicros_INDEX].Value; /* Check for Function Hook */ - if (Ut_LGC_Custom_HookTable.PX4LIB_GetPX4TimeUs) - return Ut_LGC_Custom_HookTable.PX4LIB_GetPX4TimeUs(); + if (Ut_LGC_Custom_HookTable.CFE_TIME_GetTimeInMicros) + return Ut_LGC_Custom_HookTable.CFE_TIME_GetTimeInMicros(); } diff --git a/apps/lgc/fsw/unit_test/stubs/ut_lgc_custom_stubs.h b/apps/lgc/fsw/unit_test/stubs/ut_lgc_custom_stubs.h index 9a1c9ec5a..0b6e768c9 100644 --- a/apps/lgc/fsw/unit_test/stubs/ut_lgc_custom_stubs.h +++ b/apps/lgc/fsw/unit_test/stubs/ut_lgc_custom_stubs.h @@ -38,7 +38,7 @@ typedef enum { UT_LGC_CUSTOM_INITDEVICE_INDEX, UT_LGC_CUSTOM_SETMOTOROUTPUTS_INDEX, - UT_LGC_PX4LIB_GETPX4TIMEUS_INDEX, + UT_LGC_CFE_TIME_GetTimeInMicros_INDEX, UT_LGC_CUSTOM_MAX_INDEX } Ut_LGC_Custom_INDEX_t; @@ -46,7 +46,7 @@ typedef struct { uint32 (*InitDevice)(void); void (*SetMotorOutputs)(const uint16 *PWM); - uint64 (*PX4LIB_GetPX4TimeUs)(void); + uint64 (*CFE_TIME_GetTimeInMicros)(void); } Ut_LGC_Custom_HookTable_t; typedef struct diff --git a/apps/mac/fsw/for_build/CMakeLists.txt b/apps/mac/fsw/for_build/CMakeLists.txt index c8d1f3271..782b3e693 100644 --- a/apps/mac/fsw/for_build/CMakeLists.txt +++ b/apps/mac/fsw/for_build/CMakeLists.txt @@ -78,6 +78,7 @@ buildliner_add_app_unit_test(mac-ut ${CMAKE_CURRENT_SOURCE_DIR}/../src/mac_version.h ${CMAKE_CURRENT_SOURCE_DIR}/../src/mac_config_utils.cpp ${PX4LIB_LIB_SOURCES} + ${CMAKE_CURRENT_SOURCE_DIR}/../../../cfs_lib/fsw/src/cfs_utils.c INCLUDES ${CMAKE_CURRENT_SOURCE_DIR}/../src/ diff --git a/apps/mac/fsw/src/mac_app.cpp b/apps/mac/fsw/src/mac_app.cpp index 41cf62010..45b2c7cdc 100644 --- a/apps/mac/fsw/src/mac_app.cpp +++ b/apps/mac/fsw/src/mac_app.cpp @@ -834,7 +834,7 @@ void MAC::AppMain() void MAC::RunController(void) { static uint64 last_run = 0; - uint64 now = PX4LIB_GetPX4TimeUs(); + uint64 now = CFE_TIME_GetTimeInMicros(); float dt = (now - last_run) / MICRO_SEC_TO_SEC_DIV; last_run = now; uint32 i = 0; diff --git a/apps/mac/fsw/unit_test/stubs.c b/apps/mac/fsw/unit_test/stubs.c index ca5add94e..56250169a 100644 --- a/apps/mac/fsw/unit_test/stubs.c +++ b/apps/mac/fsw/unit_test/stubs.c @@ -32,14 +32,3 @@ *****************************************************************************/ #include "cfe.h" - - -uint64 PX4LIB_GetPX4TimeUs(void) -{ - return 0; -} - -uint64 CFE_TIME_GetTimeInMicros(void) -{ - return 0; -} diff --git a/apps/mpc/fsw/for_build/CMakeLists.txt b/apps/mpc/fsw/for_build/CMakeLists.txt index 4fc6afa68..9369eb487 100644 --- a/apps/mpc/fsw/for_build/CMakeLists.txt +++ b/apps/mpc/fsw/for_build/CMakeLists.txt @@ -35,10 +35,6 @@ buildliner_add_app_unit_test(mpc-ut ${CMAKE_CURRENT_SOURCE_DIR}/../unit_test/mpc_testrunner.cpp ${CMAKE_CURRENT_SOURCE_DIR}/../unit_test/mpc_test_utils.cpp ${CMAKE_CURRENT_SOURCE_DIR}/../unit_test/mpc_test_utils.h - ${CMAKE_CURRENT_SOURCE_DIR}/../unit_test/stubs/ut_mpc_custom_stubs.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/../unit_test/stubs/ut_mpc_custom_stubs.h - ${CMAKE_CURRENT_SOURCE_DIR}/../unit_test/stubs/ut_mpc_custom_hooks.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/../unit_test/stubs/ut_mpc_custom_hooks.h ${CMAKE_CURRENT_SOURCE_DIR}/../unit_test/mpc_test_tables.h ${CMAKE_CURRENT_SOURCE_DIR}/../unit_test/mpc_nominal_config.c ${CMAKE_CURRENT_SOURCE_DIR}/../src/mpc_app.cpp @@ -49,6 +45,7 @@ buildliner_add_app_unit_test(mpc-ut ${CMAKE_CURRENT_SOURCE_DIR}/../src/mpc_tbldefs.h ${CMAKE_CURRENT_SOURCE_DIR}/../src/mpc_version.h ${PX4LIB_LIB_SOURCES} + ${CMAKE_CURRENT_SOURCE_DIR}/../../../cfs_lib/fsw/src/cfs_utils.c INCLUDES ${CMAKE_CURRENT_SOURCE_DIR}/../src/ diff --git a/apps/mpc/fsw/src/mpc_app.cpp b/apps/mpc/fsw/src/mpc_app.cpp index 36718a773..880b58685 100644 --- a/apps/mpc/fsw/src/mpc_app.cpp +++ b/apps/mpc/fsw/src/mpc_app.cpp @@ -1114,7 +1114,7 @@ void MPC::Execute(void) { static uint64 t_prev = 0; - uint64 t = PX4LIB_GetPX4TimeUs(); + uint64 t = CFE_TIME_GetTimeInMicros(); float dt = t_prev != 0 ? (t - t_prev) / 1e6f : 0.004f; t_prev = t; @@ -1282,7 +1282,7 @@ void MPC::UpdateRef(void) } /* Update local projection reference including altitude. */ - CurrentTime = PX4LIB_GetPX4TimeUs(); + CurrentTime = CFE_TIME_GetTimeInMicros(); map_projection_init(&m_RefPos, m_VehicleLocalPositionMsg.RefLat, m_VehicleLocalPositionMsg.RefLon, CurrentTime); m_RefAlt = m_VehicleLocalPositionMsg.RefAlt; @@ -3719,7 +3719,7 @@ void MPC::SetManualAccelerationXY(math::Vector2F &StickXy, const float Dt) osalbool StickVelAligned = (VelXyNorm * StickXyNorm > 0.0f); /* Update manual direction change hysteresis */ - m_ManualDirectionChangeHysteresis.set_state_and_update(!StickVelAligned, PX4LIB_GetPX4TimeUs()); + m_ManualDirectionChangeHysteresis.set_state_and_update(!StickVelAligned, CFE_TIME_GetTimeInMicros()); /* Exit direction change if one of the condition is met */ if (Intention == BRAKE) diff --git a/apps/mpc/fsw/unit_test/mpc_app_test.cpp b/apps/mpc/fsw/unit_test/mpc_app_test.cpp index a8936f3ba..2a24c1bd7 100644 --- a/apps/mpc/fsw/unit_test/mpc_app_test.cpp +++ b/apps/mpc/fsw/unit_test/mpc_app_test.cpp @@ -478,7 +478,6 @@ void Test_MPC_AppMain_Nominal_ProcessControlStateMsg(void) CFE_SB_InitMsg (&controlState, 0x0000, sizeof(controlState), TRUE); - controlState.Timestamp = 86440828023; controlState.AccX = -0.236284539; controlState.AccY = 0.101594232; controlState.AccZ = -9.76688671; @@ -551,8 +550,6 @@ void Test_MPC_AppMain_Nominal_ProcessVehicleLocalPositionMsg(void) CFE_SB_InitMsg(&vehicleLocalPosition, 0x0000, sizeof(vehicleLocalPosition), TRUE); CFE_SB_InitMsg(&controlState, 0x0001, sizeof(controlState), TRUE); - - vehicleLocalPosition.Timestamp = 88516625760; vehicleLocalPosition.RefTimestamp = 86416035453; vehicleLocalPosition.RefLat = 47.397742000000001; vehicleLocalPosition.RefLon = 8.5455939000000001; @@ -593,7 +590,6 @@ void Test_MPC_AppMain_Nominal_ProcessVehicleLocalPositionMsg(void) vehicleLocalPosition.Z_Global = true; vehicleLocalPosition.DistBottomValid = true; - controlState.Timestamp = 86440828023; controlState.AccX = -0.236284539; controlState.AccY = 0.101594232; controlState.AccZ = -9.76688671; @@ -687,7 +683,6 @@ void Test_MPC_AppMain_Nominal_UpdateParamsFromTable(void) //* //* Pass 1 //*/ - //oMPC.m_VehicleLocalPositionMsg.Timestamp = 66561590577; //oMPC.m_VehicleLocalPositionMsg.X = 0.000000; //oMPC.m_VehicleLocalPositionMsg.Y = 0.000000; //oMPC.m_VehicleLocalPositionMsg.Z = -0.000002; @@ -719,7 +714,6 @@ void Test_MPC_AppMain_Nominal_UpdateParamsFromTable(void) ///* //* Pass 2 //*/ - //oMPC.m_VehicleLocalPositionMsg.Timestamp = 66561595349; //oMPC.m_VehicleLocalPositionMsg.X = 0.000000; //oMPC.m_VehicleLocalPositionMsg.Y = 0.000000; //oMPC.m_VehicleLocalPositionMsg.Z = -0.000005; @@ -871,7 +865,7 @@ void Test_MPC_AppMain_Nominal_CalculateVelocitySetpoint(void) oMPC.m_ResetPositionSetpoint = false; oMPC.m_ResetAltitudeSetpoint = false; - Ut_MPC_Custom_SetReturnCode(UT_MPC_PX4LIB_GETPX4TIMEUS_INDEX, 1, 1); + //Ut_MPC_Custom_SetReturnCode(UT_MPC_CFE_TIME_GetTimeInMicros_INDEX, 1, 1); oMPC.CalculateVelocitySetpoint(0.009890); UtAssert_DoubleCmpAbs(oMPC.m_VelocitySetpoint[0], 0.000000, FLT_EPSILON, "oMPC.m_VelocitySetpoint[0]"); @@ -912,7 +906,7 @@ void Test_MPC_AppMain_Nominal_CalculateVelocitySetpoint(void) oMPC.m_ResetPositionSetpoint = false; oMPC.m_ResetAltitudeSetpoint = false; - Ut_MPC_Custom_SetReturnCode(UT_MPC_PX4LIB_GETPX4TIMEUS_INDEX, 1, 1); + //Ut_MPC_Custom_SetReturnCode(UT_MPC_CFE_TIME_GetTimeInMicros_INDEX, 1, 1); oMPC.CalculateVelocitySetpoint(0.025312); UtAssert_DoubleCmpAbs(oMPC.m_VelocitySetpoint[0], 0.000000, FLT_EPSILON, "oMPC.m_VelocitySetpoint[0]"); @@ -973,7 +967,7 @@ void Test_MPC_AppMain_Nominal_CalculateVelocitySetpoint(void) /* For GetCruisingSpeedXY() */ oMPC.m_PositionSetpointTripletMsg.Current.CruisingSpeed = -1.0; - Ut_MPC_Custom_SetReturnCode(UT_MPC_PX4LIB_GETPX4TIMEUS_INDEX, 1, 1); + //Ut_MPC_Custom_SetReturnCode(UT_MPC_CFE_TIME_GetTimeInMicros_INDEX, 1, 1); oMPC.CalculateVelocitySetpoint(0.065570); // UtAssert_DoubleCmpAbs(oMPC.m_VelocitySetpoint[0], 0.000374399736, FLT_EPSILON, "oMPC.m_VelocitySetpoint[0]"); @@ -1096,7 +1090,7 @@ void Test_MPC_AppMain_Nominal_CalculateThrustSetpoint(void) /* For GetCruisingSpeedXY() */ oMPC.m_PositionSetpointTripletMsg.Current.CruisingSpeed = 0.00000000; - Ut_MPC_Custom_SetReturnCode(UT_MPC_PX4LIB_GETPX4TIMEUS_INDEX, 1, 1); + //Ut_MPC_Custom_SetReturnCode(UT_MPC_CFE_TIME_GetTimeInMicros_INDEX, 1, 1); oMPC.CalculateThrustSetpoint(0.00549900); UtAssert_True(oMPC.m_ResetIntXY == false, "oMPC.m_ResetIntXY"); @@ -1126,7 +1120,6 @@ void Test_MPC_AppMain_Nominal_CalculateThrustSetpoint(void) UtAssert_DoubleCmpAbs(oMPC.m_VehicleLocalPositionSetpointMsg.AccX, 0.000000, FLT_EPSILON, "oMPC.m_VehicleLocalPositionSetpointMsg.AccX"); UtAssert_DoubleCmpAbs(oMPC.m_VehicleLocalPositionSetpointMsg.AccY, 0.000000, FLT_EPSILON, "oMPC.m_VehicleLocalPositionSetpointMsg.AccY"); UtAssert_DoubleCmpAbs(oMPC.m_VehicleLocalPositionSetpointMsg.AccZ, 0.000000, FLT_EPSILON, "oMPC.m_VehicleLocalPositionSetpointMsg.AccZ"); - UtAssert_True(oMPC.m_VehicleAttitudeSetpointMsg.Timestamp != 0, "oMPC.m_VehicleAttitudeSetpointMsg.Timestamp"); /* PASS 2 - Transition to takeoff. */ oMPC.m_VehicleControlModeMsg.ControlClimbRateEnabled = 1; @@ -1223,7 +1216,7 @@ void Test_MPC_AppMain_Nominal_CalculateThrustSetpoint(void) /* For GetCruisingSpeedXY() */ oMPC.m_PositionSetpointTripletMsg.Current.CruisingSpeed = -1.00000000; - Ut_MPC_Custom_SetReturnCode(UT_MPC_PX4LIB_GETPX4TIMEUS_INDEX, 1, 1); + //Ut_MPC_Custom_SetReturnCode(UT_MPC_CFE_TIME_GetTimeInMicros_INDEX, 1, 1); oMPC.CalculateThrustSetpoint(0.01281000); UtAssert_True(oMPC.m_ResetIntXY == false, "oMPC.m_ResetIntXY"); @@ -1253,7 +1246,6 @@ void Test_MPC_AppMain_Nominal_CalculateThrustSetpoint(void) UtAssert_DoubleCmpAbs(oMPC.m_VehicleLocalPositionSetpointMsg.AccX, 0.00136826, FLT_EPSILON, "oMPC.m_VehicleLocalPositionSetpointMsg.AccX"); UtAssert_DoubleCmpAbs(oMPC.m_VehicleLocalPositionSetpointMsg.AccY, 0.04501338, FLT_EPSILON, "oMPC.m_VehicleLocalPositionSetpointMsg.AccY"); UtAssert_DoubleCmpAbs(oMPC.m_VehicleLocalPositionSetpointMsg.AccZ, -6.01421928, FLT_EPSILON, "oMPC.m_VehicleLocalPositionSetpointMsg.AccZ"); - UtAssert_True(oMPC.m_VehicleAttitudeSetpointMsg.Timestamp != 0, "oMPC.m_VehicleAttitudeSetpointMsg.Timestamp"); /* PASS 3 - Taking off. */ oMPC.m_VehicleControlModeMsg.ControlClimbRateEnabled = 1; @@ -1344,7 +1336,7 @@ void Test_MPC_AppMain_Nominal_CalculateThrustSetpoint(void) /* For GetCruisingSpeedXY() */ oMPC.m_PositionSetpointTripletMsg.Current.CruisingSpeed = -1.00000000; - Ut_MPC_Custom_SetReturnCode(UT_MPC_PX4LIB_GETPX4TIMEUS_INDEX, 1, 1); + //Ut_MPC_Custom_SetReturnCode(UT_MPC_CFE_TIME_GetTimeInMicros_INDEX, 1, 1); oMPC.CalculateThrustSetpoint(0.008829000406); UtAssert_True(oMPC.m_ResetIntXY == false, "oMPC.m_ResetIntXY"); @@ -1374,7 +1366,6 @@ void Test_MPC_AppMain_Nominal_CalculateThrustSetpoint(void) UtAssert_DoubleCmpAbs(oMPC.m_VehicleLocalPositionSetpointMsg.AccX, -0.053452875465, FLT_EPSILON, "oMPC.m_VehicleLocalPositionSetpointMsg.AccX"); UtAssert_DoubleCmpAbs(oMPC.m_VehicleLocalPositionSetpointMsg.AccY, -0.022792883217, FLT_EPSILON, "oMPC.m_VehicleLocalPositionSetpointMsg.AccY"); UtAssert_DoubleCmpAbs(oMPC.m_VehicleLocalPositionSetpointMsg.AccZ, -4.062112331390, FLT_EPSILON, "oMPC.m_VehicleLocalPositionSetpointMsg.AccZ"); - UtAssert_True(oMPC.m_VehicleAttitudeSetpointMsg.Timestamp != 0, "oMPC.m_VehicleAttitudeSetpointMsg.Timestamp"); } @@ -1390,7 +1381,6 @@ void Test_MPC_AppMain_Nominal_ControlAuto(void) oMPC.InitConfigTbl(); /* PASS 1 - Initializing. */ - oMPC.m_VehicleStatusMsg.Timestamp = 20280576066; oMPC.m_VehicleStatusMsg.SystemID = 1; oMPC.m_VehicleStatusMsg.ComponentID = 1; oMPC.m_VehicleStatusMsg.OnboardControlSensorsPresent = 0; @@ -1411,12 +1401,10 @@ void Test_MPC_AppMain_Nominal_ControlAuto(void) oMPC.m_VehicleStatusMsg.EngineFailure = 0; oMPC.m_VehicleStatusMsg.EngineFailureCmd = 0; oMPC.m_VehicleStatusMsg.MissionFailure = 0; - oMPC.m_VehicleLandDetectedMsg.Timestamp = 20278631900; oMPC.m_VehicleLandDetectedMsg.AltMax = 10000.000000000000; oMPC.m_VehicleLandDetectedMsg.Landed = 1; oMPC.m_VehicleLandDetectedMsg.Freefall = 0; oMPC.m_VehicleLandDetectedMsg.GroundContact = 0; - oMPC.m_ControlStateMsg.Timestamp = 20280585087; oMPC.m_ControlStateMsg.AccX = -0.174654871225; oMPC.m_ControlStateMsg.AccY = 0.096246533096; oMPC.m_ControlStateMsg.AccZ = -9.875363349915; @@ -1450,7 +1438,6 @@ void Test_MPC_AppMain_Nominal_ControlAuto(void) oMPC.m_ControlStateMsg.YawRateBias = 0.000000000000; oMPC.m_ControlStateMsg.AirspeedValid = 1; oMPC.m_ControlStateMsg.QuatResetCounter = 1; - oMPC.m_ManualControlSetpointMsg.Timestamp = 0; oMPC.m_ManualControlSetpointMsg.X = 0.000000000000; oMPC.m_ManualControlSetpointMsg.Y = 0.000000000000; oMPC.m_ManualControlSetpointMsg.Z = 0.000000000000; @@ -1476,8 +1463,6 @@ void Test_MPC_AppMain_Nominal_ControlAuto(void) oMPC.m_ManualControlSetpointMsg.DataSource = (PX4_ManualControlDataSource_t)0; oMPC.m_ManualControlSetpointMsg.StabSwitch = (PX4_SwitchPos_t)0; oMPC.m_ManualControlSetpointMsg.ManSwitch = (PX4_SwitchPos_t)0; - oMPC.m_PositionSetpointTripletMsg.Timestamp = 0; - oMPC.m_PositionSetpointTripletMsg.Previous.Timestamp = 0; oMPC.m_PositionSetpointTripletMsg.Previous.Lat = 0.000000000000; oMPC.m_PositionSetpointTripletMsg.Previous.Lon = 0.000000000000; oMPC.m_PositionSetpointTripletMsg.Previous.X = 0.000000000000; @@ -1507,7 +1492,6 @@ void Test_MPC_AppMain_Nominal_ControlAuto(void) oMPC.m_PositionSetpointTripletMsg.Previous.LoiterDirection = 0; oMPC.m_PositionSetpointTripletMsg.Previous.AccelerationValid = 0; oMPC.m_PositionSetpointTripletMsg.Previous.AccelerationIsForce = 0; - oMPC.m_PositionSetpointTripletMsg.Current.Timestamp = 0; oMPC.m_PositionSetpointTripletMsg.Current.Lat = 0.000000000000; oMPC.m_PositionSetpointTripletMsg.Current.Lon = 0.000000000000; oMPC.m_PositionSetpointTripletMsg.Current.X = 0.000000000000; @@ -1537,7 +1521,6 @@ void Test_MPC_AppMain_Nominal_ControlAuto(void) oMPC.m_PositionSetpointTripletMsg.Current.LoiterDirection = 0; oMPC.m_PositionSetpointTripletMsg.Current.AccelerationValid = 0; oMPC.m_PositionSetpointTripletMsg.Current.AccelerationIsForce = 0; - oMPC.m_PositionSetpointTripletMsg.Next.Timestamp = 0; oMPC.m_PositionSetpointTripletMsg.Next.Lat = 0.000000000000; oMPC.m_PositionSetpointTripletMsg.Next.Lon = 0.000000000000; oMPC.m_PositionSetpointTripletMsg.Next.X = 0.000000000000; @@ -1567,7 +1550,6 @@ void Test_MPC_AppMain_Nominal_ControlAuto(void) oMPC.m_PositionSetpointTripletMsg.Next.LoiterDirection = 0; oMPC.m_PositionSetpointTripletMsg.Next.AccelerationValid = 0; oMPC.m_PositionSetpointTripletMsg.Next.AccelerationIsForce = 0; - oMPC.m_VehicleAttitudeSetpointMsg.Timestamp = 20280574950; oMPC.m_VehicleAttitudeSetpointMsg.RollBody = 0.00000000; oMPC.m_VehicleAttitudeSetpointMsg.PitchBody = 0.00000000; oMPC.m_VehicleAttitudeSetpointMsg.YawBody = 1.57048452; @@ -1585,7 +1567,6 @@ void Test_MPC_AppMain_Nominal_ControlAuto(void) oMPC.m_VehicleAttitudeSetpointMsg.FwControlYaw = 0; oMPC.m_VehicleAttitudeSetpointMsg.DisableMcYawControl = 0; oMPC.m_VehicleAttitudeSetpointMsg.ApplyFlaps = 0; - oMPC.m_VehicleControlModeMsg.Timestamp = 20280576066; oMPC.m_VehicleControlModeMsg.Armed = 0; oMPC.m_VehicleControlModeMsg.ExternalManualOverrideOk = 0; oMPC.m_VehicleControlModeMsg.SystemHilEnabled = 0; @@ -1603,7 +1584,6 @@ void Test_MPC_AppMain_Nominal_ControlAuto(void) oMPC.m_VehicleControlModeMsg.ControlClimbRateEnabled = 1; oMPC.m_VehicleControlModeMsg.ControlTerminationEnabled = 0; oMPC.m_VehicleControlModeMsg.ControlFixedHdgEnabled = 0; - oMPC.m_VehicleLocalPositionMsg.Timestamp = 20280585123; oMPC.m_VehicleLocalPositionMsg.RefTimestamp = 20280585123; oMPC.m_VehicleLocalPositionMsg.RefLat = 47.397743983469; oMPC.m_VehicleLocalPositionMsg.RefLon = 8.545593796482; @@ -1642,7 +1622,6 @@ void Test_MPC_AppMain_Nominal_ControlAuto(void) oMPC.m_VehicleLocalPositionMsg.XY_Global = 1; oMPC.m_VehicleLocalPositionMsg.Z_Global = 0; oMPC.m_VehicleLocalPositionMsg.DistBottomValid = 0; - oMPC.m_VehicleLocalPositionSetpointMsg.Timestamp = 0; oMPC.m_VehicleLocalPositionSetpointMsg.X = 0.000000000000; oMPC.m_VehicleLocalPositionSetpointMsg.Y = 0.000000000000; oMPC.m_VehicleLocalPositionSetpointMsg.Z = 0.000000000000; @@ -1653,7 +1632,6 @@ void Test_MPC_AppMain_Nominal_ControlAuto(void) oMPC.m_VehicleLocalPositionSetpointMsg.AccX = 0.000000000000; oMPC.m_VehicleLocalPositionSetpointMsg.AccY = 0.000000000000; oMPC.m_VehicleLocalPositionSetpointMsg.AccZ = 0.000000000000; - oMPC.m_HomePositionMsg.Timestamp = 20280565980; oMPC.m_HomePositionMsg.Lat = 47.397744000959; oMPC.m_HomePositionMsg.Lon = 8.545593797628; oMPC.m_HomePositionMsg.Alt = 488.269012451172; @@ -1665,7 +1643,6 @@ void Test_MPC_AppMain_Nominal_ControlAuto(void) oMPC.m_HomePositionMsg.DirectionY = 0.000000000000; oMPC.m_HomePositionMsg.DirectionZ = 0.000000000000; oMPC.m_RefAlt = 488.269012451172; - oMPC.m_RefPos.timestamp = 20280585168; oMPC.m_RefPos.lat_rad = 0.827246690529; oMPC.m_RefPos.lon_rad = 0.149148748287; oMPC.m_RefPos.sin_lat = 0.736070434614; @@ -1739,7 +1716,7 @@ void Test_MPC_AppMain_Nominal_ControlAuto(void) oMPC.m_RSetpoint[2][1] = 0.000000000000; oMPC.m_RSetpoint[2][2] = 1.000000000000; - Ut_MPC_Custom_SetReturnCode(UT_MPC_PX4LIB_GETPX4TIMEUS_INDEX, 1, 1); + //Ut_MPC_Custom_SetReturnCode(UT_MPC_CFE_TIME_GetTimeInMicros_INDEX, 1, 1); oMPC.ControlAuto(0.010219999589); UtAssert_True(oMPC.m_ResetIntXY == true, "oMPC.m_ResetIntXY"); @@ -1770,10 +1747,8 @@ void Test_MPC_AppMain_Nominal_ControlAuto(void) UtAssert_DoubleCmpAbs(oMPC.m_VehicleLocalPositionSetpointMsg.AccX, 0.000000000000, FLT_EPSILON, "oMPC.m_VehicleLocalPositionSetpointMsg.AccX"); UtAssert_DoubleCmpAbs(oMPC.m_VehicleLocalPositionSetpointMsg.AccY, 0.000000000000, FLT_EPSILON, "oMPC.m_VehicleLocalPositionSetpointMsg.AccY"); UtAssert_DoubleCmpAbs(oMPC.m_VehicleLocalPositionSetpointMsg.AccZ, 0.000000000000, FLT_EPSILON, "oMPC.m_VehicleLocalPositionSetpointMsg.AccZ"); - UtAssert_True(oMPC.m_VehicleAttitudeSetpointMsg.Timestamp != 0, "oMPC.m_VehicleAttitudeSetpointMsg.Timestamp"); /* PASS 2 - Transition to takeoff. */ - oMPC.m_VehicleStatusMsg.Timestamp = 22718352358; oMPC.m_VehicleStatusMsg.SystemID = 1; oMPC.m_VehicleStatusMsg.ComponentID = 1; oMPC.m_VehicleStatusMsg.OnboardControlSensorsPresent = 0; @@ -1794,12 +1769,10 @@ void Test_MPC_AppMain_Nominal_ControlAuto(void) oMPC.m_VehicleStatusMsg.EngineFailure = 0; oMPC.m_VehicleStatusMsg.EngineFailureCmd = 0; oMPC.m_VehicleStatusMsg.MissionFailure = 0; - oMPC.m_VehicleLandDetectedMsg.Timestamp = 22718419546; oMPC.m_VehicleLandDetectedMsg.AltMax = 10000.000000000000; oMPC.m_VehicleLandDetectedMsg.Landed = 0; oMPC.m_VehicleLandDetectedMsg.Freefall = 0; oMPC.m_VehicleLandDetectedMsg.GroundContact = 0; - oMPC.m_ControlStateMsg.Timestamp = 22718419636; oMPC.m_ControlStateMsg.AccX = -0.178399145603; oMPC.m_ControlStateMsg.AccY = 0.143566161394; oMPC.m_ControlStateMsg.AccZ = -9.878698348999; @@ -1833,7 +1806,6 @@ void Test_MPC_AppMain_Nominal_ControlAuto(void) oMPC.m_ControlStateMsg.YawRateBias = 0.000000000000; oMPC.m_ControlStateMsg.AirspeedValid = 1; oMPC.m_ControlStateMsg.QuatResetCounter = 1; - oMPC.m_ManualControlSetpointMsg.Timestamp = 0; oMPC.m_ManualControlSetpointMsg.X = 0.000000000000; oMPC.m_ManualControlSetpointMsg.Y = 0.000000000000; oMPC.m_ManualControlSetpointMsg.Z = 0.000000000000; @@ -1859,8 +1831,6 @@ void Test_MPC_AppMain_Nominal_ControlAuto(void) oMPC.m_ManualControlSetpointMsg.DataSource = (PX4_ManualControlDataSource_t)0; oMPC.m_ManualControlSetpointMsg.StabSwitch = (PX4_SwitchPos_t)0; oMPC.m_ManualControlSetpointMsg.ManSwitch = (PX4_SwitchPos_t)0; - oMPC.m_PositionSetpointTripletMsg.Timestamp = 22718395507; - oMPC.m_PositionSetpointTripletMsg.Previous.Timestamp = 0; oMPC.m_PositionSetpointTripletMsg.Previous.Lat = 0.000000000000; oMPC.m_PositionSetpointTripletMsg.Previous.Lon = 0.000000000000; oMPC.m_PositionSetpointTripletMsg.Previous.X = 0.000000000000; @@ -1890,7 +1860,6 @@ void Test_MPC_AppMain_Nominal_ControlAuto(void) oMPC.m_PositionSetpointTripletMsg.Previous.LoiterDirection = 0; oMPC.m_PositionSetpointTripletMsg.Previous.AccelerationValid = 0; oMPC.m_PositionSetpointTripletMsg.Previous.AccelerationIsForce = 0; - oMPC.m_PositionSetpointTripletMsg.Current.Timestamp = 0; oMPC.m_PositionSetpointTripletMsg.Current.Lat = 47.397741928975; oMPC.m_PositionSetpointTripletMsg.Current.Lon = 8.545593979817; oMPC.m_PositionSetpointTripletMsg.Current.X = 0.000000000000; @@ -1920,7 +1889,6 @@ void Test_MPC_AppMain_Nominal_ControlAuto(void) oMPC.m_PositionSetpointTripletMsg.Current.LoiterDirection = 1; oMPC.m_PositionSetpointTripletMsg.Current.AccelerationValid = 0; oMPC.m_PositionSetpointTripletMsg.Current.AccelerationIsForce = 0; - oMPC.m_PositionSetpointTripletMsg.Next.Timestamp = 0; oMPC.m_PositionSetpointTripletMsg.Next.Lat = 0.000000000000; oMPC.m_PositionSetpointTripletMsg.Next.Lon = 0.000000000000; oMPC.m_PositionSetpointTripletMsg.Next.X = 0.000000000000; @@ -1950,7 +1918,6 @@ void Test_MPC_AppMain_Nominal_ControlAuto(void) oMPC.m_PositionSetpointTripletMsg.Next.LoiterDirection = 0; oMPC.m_PositionSetpointTripletMsg.Next.AccelerationValid = 0; oMPC.m_PositionSetpointTripletMsg.Next.AccelerationIsForce = 0; - oMPC.m_VehicleAttitudeSetpointMsg.Timestamp = 22718406228; oMPC.m_VehicleAttitudeSetpointMsg.RollBody = 0.00286550; oMPC.m_VehicleAttitudeSetpointMsg.PitchBody = 0.00668981; oMPC.m_VehicleAttitudeSetpointMsg.YawBody = 1.54771841; @@ -1968,7 +1935,6 @@ void Test_MPC_AppMain_Nominal_ControlAuto(void) oMPC.m_VehicleAttitudeSetpointMsg.FwControlYaw = 0; oMPC.m_VehicleAttitudeSetpointMsg.DisableMcYawControl = 0; oMPC.m_VehicleAttitudeSetpointMsg.ApplyFlaps = 0; - oMPC.m_VehicleControlModeMsg.Timestamp = 22718352358; oMPC.m_VehicleControlModeMsg.Armed = 1; oMPC.m_VehicleControlModeMsg.ExternalManualOverrideOk = 0; oMPC.m_VehicleControlModeMsg.SystemHilEnabled = 0; @@ -1986,7 +1952,6 @@ void Test_MPC_AppMain_Nominal_ControlAuto(void) oMPC.m_VehicleControlModeMsg.ControlClimbRateEnabled = 1; oMPC.m_VehicleControlModeMsg.ControlTerminationEnabled = 0; oMPC.m_VehicleControlModeMsg.ControlFixedHdgEnabled = 0; - oMPC.m_VehicleLocalPositionMsg.Timestamp = 22718420325; oMPC.m_VehicleLocalPositionMsg.RefTimestamp = 22718420325; oMPC.m_VehicleLocalPositionMsg.RefLat = 47.397741905620; oMPC.m_VehicleLocalPositionMsg.RefLon = 8.545593899402; @@ -2025,7 +1990,6 @@ void Test_MPC_AppMain_Nominal_ControlAuto(void) oMPC.m_VehicleLocalPositionMsg.XY_Global = 1; oMPC.m_VehicleLocalPositionMsg.Z_Global = 1; oMPC.m_VehicleLocalPositionMsg.DistBottomValid = 1; - oMPC.m_VehicleLocalPositionSetpointMsg.Timestamp = 22718406228; oMPC.m_VehicleLocalPositionSetpointMsg.X = 0.002596978797; oMPC.m_VehicleLocalPositionSetpointMsg.Y = 0.006052741315; oMPC.m_VehicleLocalPositionSetpointMsg.Z = -2.497253417969; @@ -2036,7 +2000,6 @@ void Test_MPC_AppMain_Nominal_ControlAuto(void) oMPC.m_VehicleLocalPositionSetpointMsg.AccX = -0.016529330984; oMPC.m_VehicleLocalPositionSetpointMsg.AccY = -0.036253951490; oMPC.m_VehicleLocalPositionSetpointMsg.AccZ = -5.474771976471; - oMPC.m_HomePositionMsg.Timestamp = 22718352358; oMPC.m_HomePositionMsg.Lat = 47.397741928428; oMPC.m_HomePositionMsg.Lon = 8.545593976476; oMPC.m_HomePositionMsg.Alt = 488.252136230469; @@ -2048,7 +2011,6 @@ void Test_MPC_AppMain_Nominal_ControlAuto(void) oMPC.m_HomePositionMsg.DirectionY = 0.000000000000; oMPC.m_HomePositionMsg.DirectionZ = 0.000000000000; oMPC.m_RefAlt = 488.253997802734; - oMPC.m_RefPos.timestamp = 22718420398; oMPC.m_RefPos.lat_rad = 0.827246654264; oMPC.m_RefPos.lon_rad = 0.149148750083; oMPC.m_RefPos.sin_lat = 0.736070410066; @@ -2122,7 +2084,7 @@ void Test_MPC_AppMain_Nominal_ControlAuto(void) oMPC.m_RSetpoint[2][1] = 0.002865429502; oMPC.m_RSetpoint[2][2] = 0.999973535538; - Ut_MPC_Custom_SetReturnCode(UT_MPC_PX4LIB_GETPX4TIMEUS_INDEX, 1, 1); + //Ut_MPC_Custom_SetReturnCode(UT_MPC_CFE_TIME_GetTimeInMicros_INDEX, 1, 1); oMPC.ControlAuto(0.014178999700); UtAssert_True(oMPC.m_ResetIntXY == false, "oMPC.m_ResetIntXY"); @@ -2153,7 +2115,6 @@ void Test_MPC_AppMain_Nominal_ControlAuto(void) UtAssert_DoubleCmpAbs(oMPC.m_VehicleLocalPositionSetpointMsg.AccX, -0.016529330984, FLT_EPSILON, "oMPC.m_VehicleLocalPositionSetpointMsg.AccX"); UtAssert_DoubleCmpAbs(oMPC.m_VehicleLocalPositionSetpointMsg.AccY, -0.036253951490, FLT_EPSILON, "oMPC.m_VehicleLocalPositionSetpointMsg.AccY"); UtAssert_DoubleCmpAbs(oMPC.m_VehicleLocalPositionSetpointMsg.AccZ, -5.474771976471, FLT_EPSILON, "oMPC.m_VehicleLocalPositionSetpointMsg.AccZ"); - UtAssert_True(oMPC.m_VehicleAttitudeSetpointMsg.Timestamp != 0, "oMPC.m_VehicleAttitudeSetpointMsg.Timestamp"); } @@ -2169,7 +2130,6 @@ void Test_MPC_AppMain_Nominal_ControlNonManual(void) oMPC.InitConfigTbl(); /* PASS 1 - Initializing. */ - oMPC.m_VehicleStatusMsg.Timestamp = 32043154862; oMPC.m_VehicleStatusMsg.SystemID = 1; oMPC.m_VehicleStatusMsg.ComponentID = 1; oMPC.m_VehicleStatusMsg.OnboardControlSensorsPresent = 0; @@ -2190,12 +2150,10 @@ void Test_MPC_AppMain_Nominal_ControlNonManual(void) oMPC.m_VehicleStatusMsg.EngineFailure = 0; oMPC.m_VehicleStatusMsg.EngineFailureCmd = 0; oMPC.m_VehicleStatusMsg.MissionFailure = 0; - oMPC.m_VehicleLandDetectedMsg.Timestamp = 32041122164; oMPC.m_VehicleLandDetectedMsg.AltMax = 10000.000000000000; oMPC.m_VehicleLandDetectedMsg.Landed = 1; oMPC.m_VehicleLandDetectedMsg.Freefall = 0; oMPC.m_VehicleLandDetectedMsg.GroundContact = 0; - oMPC.m_ControlStateMsg.Timestamp = 32043154215; oMPC.m_ControlStateMsg.AccX = -0.234742432833; oMPC.m_ControlStateMsg.AccY = 0.068961113691; oMPC.m_ControlStateMsg.AccZ = -10.363160133362; @@ -2229,7 +2187,6 @@ void Test_MPC_AppMain_Nominal_ControlNonManual(void) oMPC.m_ControlStateMsg.YawRateBias = 0.000000000000; oMPC.m_ControlStateMsg.AirspeedValid = 1; oMPC.m_ControlStateMsg.QuatResetCounter = 1; - oMPC.m_ManualControlSetpointMsg.Timestamp = 0; oMPC.m_ManualControlSetpointMsg.X = 0.000000000000; oMPC.m_ManualControlSetpointMsg.Y = 0.000000000000; oMPC.m_ManualControlSetpointMsg.Z = 0.000000000000; @@ -2255,8 +2212,6 @@ void Test_MPC_AppMain_Nominal_ControlNonManual(void) oMPC.m_ManualControlSetpointMsg.DataSource = (PX4_ManualControlDataSource_t)0; oMPC.m_ManualControlSetpointMsg.StabSwitch = (PX4_SwitchPos_t)0; oMPC.m_ManualControlSetpointMsg.ManSwitch = (PX4_SwitchPos_t)0; - oMPC.m_PositionSetpointTripletMsg.Timestamp = 0; - oMPC.m_PositionSetpointTripletMsg.Previous.Timestamp = 0; oMPC.m_PositionSetpointTripletMsg.Previous.Lat = 0.000000000000; oMPC.m_PositionSetpointTripletMsg.Previous.Lon = 0.000000000000; oMPC.m_PositionSetpointTripletMsg.Previous.X = 0.000000000000; @@ -2286,7 +2241,6 @@ void Test_MPC_AppMain_Nominal_ControlNonManual(void) oMPC.m_PositionSetpointTripletMsg.Previous.LoiterDirection = 0; oMPC.m_PositionSetpointTripletMsg.Previous.AccelerationValid = 0; oMPC.m_PositionSetpointTripletMsg.Previous.AccelerationIsForce = 0; - oMPC.m_PositionSetpointTripletMsg.Current.Timestamp = 0; oMPC.m_PositionSetpointTripletMsg.Current.Lat = 0.000000000000; oMPC.m_PositionSetpointTripletMsg.Current.Lon = 0.000000000000; oMPC.m_PositionSetpointTripletMsg.Current.X = 0.000000000000; @@ -2316,7 +2270,6 @@ void Test_MPC_AppMain_Nominal_ControlNonManual(void) oMPC.m_PositionSetpointTripletMsg.Current.LoiterDirection = 0; oMPC.m_PositionSetpointTripletMsg.Current.AccelerationValid = 0; oMPC.m_PositionSetpointTripletMsg.Current.AccelerationIsForce = 0; - oMPC.m_PositionSetpointTripletMsg.Next.Timestamp = 0; oMPC.m_PositionSetpointTripletMsg.Next.Lat = 0.000000000000; oMPC.m_PositionSetpointTripletMsg.Next.Lon = 0.000000000000; oMPC.m_PositionSetpointTripletMsg.Next.X = 0.000000000000; @@ -2346,7 +2299,6 @@ void Test_MPC_AppMain_Nominal_ControlNonManual(void) oMPC.m_PositionSetpointTripletMsg.Next.LoiterDirection = 0; oMPC.m_PositionSetpointTripletMsg.Next.AccelerationValid = 0; oMPC.m_PositionSetpointTripletMsg.Next.AccelerationIsForce = 0; - oMPC.m_VehicleAttitudeSetpointMsg.Timestamp = 32043147103; oMPC.m_VehicleAttitudeSetpointMsg.RollBody = -0.00000000; oMPC.m_VehicleAttitudeSetpointMsg.PitchBody = 0.00000000; oMPC.m_VehicleAttitudeSetpointMsg.YawBody = 1.58806074; @@ -2364,7 +2316,6 @@ void Test_MPC_AppMain_Nominal_ControlNonManual(void) oMPC.m_VehicleAttitudeSetpointMsg.FwControlYaw = 0; oMPC.m_VehicleAttitudeSetpointMsg.DisableMcYawControl = 0; oMPC.m_VehicleAttitudeSetpointMsg.ApplyFlaps = 0; - oMPC.m_VehicleControlModeMsg.Timestamp = 32043154862; oMPC.m_VehicleControlModeMsg.Armed = 0; oMPC.m_VehicleControlModeMsg.ExternalManualOverrideOk = 0; oMPC.m_VehicleControlModeMsg.SystemHilEnabled = 0; @@ -2382,7 +2333,6 @@ void Test_MPC_AppMain_Nominal_ControlNonManual(void) oMPC.m_VehicleControlModeMsg.ControlClimbRateEnabled = 1; oMPC.m_VehicleControlModeMsg.ControlTerminationEnabled = 0; oMPC.m_VehicleControlModeMsg.ControlFixedHdgEnabled = 0; - oMPC.m_VehicleLocalPositionMsg.Timestamp = 32043159089; oMPC.m_VehicleLocalPositionMsg.RefTimestamp = 32043159089; oMPC.m_VehicleLocalPositionMsg.RefLat = 47.397743297475; oMPC.m_VehicleLocalPositionMsg.RefLon = 8.545593786945; @@ -2421,7 +2371,6 @@ void Test_MPC_AppMain_Nominal_ControlNonManual(void) oMPC.m_VehicleLocalPositionMsg.XY_Global = 1; oMPC.m_VehicleLocalPositionMsg.Z_Global = 0; oMPC.m_VehicleLocalPositionMsg.DistBottomValid = 0; - oMPC.m_VehicleLocalPositionSetpointMsg.Timestamp = 0; oMPC.m_VehicleLocalPositionSetpointMsg.X = 0.000000000000; oMPC.m_VehicleLocalPositionSetpointMsg.Y = 0.000000000000; oMPC.m_VehicleLocalPositionSetpointMsg.Z = 0.000000000000; @@ -2432,7 +2381,6 @@ void Test_MPC_AppMain_Nominal_ControlNonManual(void) oMPC.m_VehicleLocalPositionSetpointMsg.AccX = 0.000000000000; oMPC.m_VehicleLocalPositionSetpointMsg.AccY = 0.000000000000; oMPC.m_VehicleLocalPositionSetpointMsg.AccZ = 0.000000000000; - oMPC.m_HomePositionMsg.Timestamp = 32043143528; oMPC.m_HomePositionMsg.Lat = 47.397743299551; oMPC.m_HomePositionMsg.Lon = 8.545593796525; oMPC.m_HomePositionMsg.Alt = 488.269012451172; @@ -2444,7 +2392,6 @@ void Test_MPC_AppMain_Nominal_ControlNonManual(void) oMPC.m_HomePositionMsg.DirectionY = 0.000000000000; oMPC.m_HomePositionMsg.DirectionZ = 0.000000000000; oMPC.m_RefAlt = 488.269012451172; - oMPC.m_RefPos.timestamp = 32043159139; oMPC.m_RefPos.lat_rad = 0.827246678556; oMPC.m_RefPos.lon_rad = 0.149148748120; oMPC.m_RefPos.sin_lat = 0.736070426510; @@ -2548,10 +2495,8 @@ void Test_MPC_AppMain_Nominal_ControlNonManual(void) UtAssert_DoubleCmpAbs(oMPC.m_VehicleLocalPositionSetpointMsg.AccX, 0.000000000000, FLT_EPSILON, "oMPC.m_VehicleLocalPositionSetpointMsg.AccX"); UtAssert_DoubleCmpAbs(oMPC.m_VehicleLocalPositionSetpointMsg.AccY, 0.000000000000, FLT_EPSILON, "oMPC.m_VehicleLocalPositionSetpointMsg.AccY"); UtAssert_DoubleCmpAbs(oMPC.m_VehicleLocalPositionSetpointMsg.AccZ, -0.000000000000, FLT_EPSILON, "oMPC.m_VehicleLocalPositionSetpointMsg.AccZ"); - //UtAssert_True(oMPC.m_VehicleAttitudeSetpointMsg.Timestamp != 0, "oMPC.m_VehicleAttitudeSetpointMsg.Timestamp"); /* PASS 2 - Transition to takeoff. */ - oMPC.m_VehicleStatusMsg.Timestamp = 33671229639; oMPC.m_VehicleStatusMsg.SystemID = 1; oMPC.m_VehicleStatusMsg.ComponentID = 1; oMPC.m_VehicleStatusMsg.OnboardControlSensorsPresent = 0; @@ -2572,12 +2517,10 @@ void Test_MPC_AppMain_Nominal_ControlNonManual(void) oMPC.m_VehicleStatusMsg.EngineFailure = 0; oMPC.m_VehicleStatusMsg.EngineFailureCmd = 0; oMPC.m_VehicleStatusMsg.MissionFailure = 0; - oMPC.m_VehicleLandDetectedMsg.Timestamp = 33671297774; oMPC.m_VehicleLandDetectedMsg.AltMax = 10000.000000000000; oMPC.m_VehicleLandDetectedMsg.Landed = 0; oMPC.m_VehicleLandDetectedMsg.Freefall = 0; oMPC.m_VehicleLandDetectedMsg.GroundContact = 0; - oMPC.m_ControlStateMsg.Timestamp = 33671300139; oMPC.m_ControlStateMsg.AccX = -0.023082222790; oMPC.m_ControlStateMsg.AccY = 0.250855356455; oMPC.m_ControlStateMsg.AccZ = -10.073497772217; @@ -2611,7 +2554,6 @@ void Test_MPC_AppMain_Nominal_ControlNonManual(void) oMPC.m_ControlStateMsg.YawRateBias = 0.000000000000; oMPC.m_ControlStateMsg.AirspeedValid = 1; oMPC.m_ControlStateMsg.QuatResetCounter = 1; - oMPC.m_ManualControlSetpointMsg.Timestamp = 0; oMPC.m_ManualControlSetpointMsg.X = 0.000000000000; oMPC.m_ManualControlSetpointMsg.Y = 0.000000000000; oMPC.m_ManualControlSetpointMsg.Z = 0.000000000000; @@ -2637,8 +2579,6 @@ void Test_MPC_AppMain_Nominal_ControlNonManual(void) oMPC.m_ManualControlSetpointMsg.DataSource = (PX4_ManualControlDataSource_t)0; oMPC.m_ManualControlSetpointMsg.StabSwitch = (PX4_SwitchPos_t)0; oMPC.m_ManualControlSetpointMsg.ManSwitch = (PX4_SwitchPos_t)0; - oMPC.m_PositionSetpointTripletMsg.Timestamp = 33671277064; - oMPC.m_PositionSetpointTripletMsg.Previous.Timestamp = 0; oMPC.m_PositionSetpointTripletMsg.Previous.Lat = 0.000000000000; oMPC.m_PositionSetpointTripletMsg.Previous.Lon = 0.000000000000; oMPC.m_PositionSetpointTripletMsg.Previous.X = 0.000000000000; @@ -2668,7 +2608,6 @@ void Test_MPC_AppMain_Nominal_ControlNonManual(void) oMPC.m_PositionSetpointTripletMsg.Previous.LoiterDirection = 0; oMPC.m_PositionSetpointTripletMsg.Previous.AccelerationValid = 0; oMPC.m_PositionSetpointTripletMsg.Previous.AccelerationIsForce = 0; - oMPC.m_PositionSetpointTripletMsg.Current.Timestamp = 0; oMPC.m_PositionSetpointTripletMsg.Current.Lat = 47.397743504482; oMPC.m_PositionSetpointTripletMsg.Current.Lon = 8.545593681335; oMPC.m_PositionSetpointTripletMsg.Current.X = 0.000000000000; @@ -2698,7 +2637,6 @@ void Test_MPC_AppMain_Nominal_ControlNonManual(void) oMPC.m_PositionSetpointTripletMsg.Current.LoiterDirection = 1; oMPC.m_PositionSetpointTripletMsg.Current.AccelerationValid = 0; oMPC.m_PositionSetpointTripletMsg.Current.AccelerationIsForce = 0; - oMPC.m_PositionSetpointTripletMsg.Next.Timestamp = 0; oMPC.m_PositionSetpointTripletMsg.Next.Lat = 0.000000000000; oMPC.m_PositionSetpointTripletMsg.Next.Lon = 0.000000000000; oMPC.m_PositionSetpointTripletMsg.Next.X = 0.000000000000; @@ -2728,7 +2666,6 @@ void Test_MPC_AppMain_Nominal_ControlNonManual(void) oMPC.m_PositionSetpointTripletMsg.Next.LoiterDirection = 0; oMPC.m_PositionSetpointTripletMsg.Next.AccelerationValid = 0; oMPC.m_PositionSetpointTripletMsg.Next.AccelerationIsForce = 0; - oMPC.m_VehicleAttitudeSetpointMsg.Timestamp = 33671288749; oMPC.m_VehicleAttitudeSetpointMsg.RollBody = 0.00116860; oMPC.m_VehicleAttitudeSetpointMsg.PitchBody = 0.01192364; oMPC.m_VehicleAttitudeSetpointMsg.YawBody = 1.80963743; @@ -2746,7 +2683,6 @@ void Test_MPC_AppMain_Nominal_ControlNonManual(void) oMPC.m_VehicleAttitudeSetpointMsg.FwControlYaw = 0; oMPC.m_VehicleAttitudeSetpointMsg.DisableMcYawControl = 0; oMPC.m_VehicleAttitudeSetpointMsg.ApplyFlaps = 0; - oMPC.m_VehicleControlModeMsg.Timestamp = 33671229639; oMPC.m_VehicleControlModeMsg.Armed = 1; oMPC.m_VehicleControlModeMsg.ExternalManualOverrideOk = 0; oMPC.m_VehicleControlModeMsg.SystemHilEnabled = 0; @@ -2764,7 +2700,6 @@ void Test_MPC_AppMain_Nominal_ControlNonManual(void) oMPC.m_VehicleControlModeMsg.ControlClimbRateEnabled = 1; oMPC.m_VehicleControlModeMsg.ControlTerminationEnabled = 0; oMPC.m_VehicleControlModeMsg.ControlFixedHdgEnabled = 0; - oMPC.m_VehicleLocalPositionMsg.Timestamp = 33671300317; oMPC.m_VehicleLocalPositionMsg.RefTimestamp = 33671300317; oMPC.m_VehicleLocalPositionMsg.RefLat = 47.397743509334; oMPC.m_VehicleLocalPositionMsg.RefLon = 8.545593597490; @@ -2803,7 +2738,6 @@ void Test_MPC_AppMain_Nominal_ControlNonManual(void) oMPC.m_VehicleLocalPositionMsg.XY_Global = 1; oMPC.m_VehicleLocalPositionMsg.Z_Global = 1; oMPC.m_VehicleLocalPositionMsg.DistBottomValid = 1; - oMPC.m_VehicleLocalPositionSetpointMsg.Timestamp = 33671288750; oMPC.m_VehicleLocalPositionSetpointMsg.X = -0.000539467554; oMPC.m_VehicleLocalPositionSetpointMsg.Y = 0.006310853176; oMPC.m_VehicleLocalPositionSetpointMsg.Z = -2.520263671875; @@ -2814,7 +2748,6 @@ void Test_MPC_AppMain_Nominal_ControlNonManual(void) oMPC.m_VehicleLocalPositionSetpointMsg.AccX = 0.007203754503; oMPC.m_VehicleLocalPositionSetpointMsg.AccY = -0.050698895007; oMPC.m_VehicleLocalPositionSetpointMsg.AccZ = -4.273990154266; - oMPC.m_HomePositionMsg.Timestamp = 33671219483; oMPC.m_HomePositionMsg.Lat = 47.397743504982; oMPC.m_HomePositionMsg.Lon = 8.545593667673; oMPC.m_HomePositionMsg.Alt = 488.283905029297; @@ -2826,7 +2759,6 @@ void Test_MPC_AppMain_Nominal_ControlNonManual(void) oMPC.m_HomePositionMsg.DirectionY = 0.000000000000; oMPC.m_HomePositionMsg.DirectionZ = 0.000000000000; oMPC.m_RefAlt = 488.269012451172; - oMPC.m_RefPos.timestamp = 33671300423; oMPC.m_RefPos.lat_rad = 0.827246682254; oMPC.m_RefPos.lon_rad = 0.149148744814; oMPC.m_RefPos.sin_lat = 0.736070429013; @@ -2934,7 +2866,6 @@ void Test_MPC_AppMain_Nominal_ControlNonManual(void) // UtAssert_DoubleCmpAbs(oMPC.m_VehicleLocalPositionSetpointMsg.AccX, -0.0254337303, FLT_EPSILON, "oMPC.m_VehicleLocalPositionSetpointMsg.AccX"); // UtAssert_DoubleCmpAbs(oMPC.m_VehicleLocalPositionSetpointMsg.AccY, -0.0581580326, FLT_EPSILON, "oMPC.m_VehicleLocalPositionSetpointMsg.AccY"); UtAssert_DoubleCmpAbs(oMPC.m_VehicleLocalPositionSetpointMsg.AccZ, -1.23556244, FLT_EPSILON, "oMPC.m_VehicleLocalPositionSetpointMsg.AccZ"); - //UtAssert_True(oMPC.m_VehicleAttitudeSetpointMsg.Timestamp != 0, "oMPC.m_VehicleAttitudeSetpointMsg.Timestamp"); } @@ -2950,7 +2881,6 @@ void Test_MPC_AppMain_Nominal_DoControl(void) oMPC.InitConfigTbl(); /* PASS 1 - Initializing. */ - oMPC.m_VehicleStatusMsg.Timestamp = 33671229639; oMPC.m_VehicleStatusMsg.SystemID = 1; oMPC.m_VehicleStatusMsg.ComponentID = 1; oMPC.m_VehicleStatusMsg.OnboardControlSensorsPresent = 0; @@ -2971,12 +2901,10 @@ void Test_MPC_AppMain_Nominal_DoControl(void) oMPC.m_VehicleStatusMsg.EngineFailure = 0; oMPC.m_VehicleStatusMsg.EngineFailureCmd = 0; oMPC.m_VehicleStatusMsg.MissionFailure = 0; - oMPC.m_VehicleLandDetectedMsg.Timestamp = 33671297774; oMPC.m_VehicleLandDetectedMsg.AltMax = 10000.000000000000; oMPC.m_VehicleLandDetectedMsg.Landed = 0; oMPC.m_VehicleLandDetectedMsg.Freefall = 0; oMPC.m_VehicleLandDetectedMsg.GroundContact = 0; - oMPC.m_ControlStateMsg.Timestamp = 33671300139; oMPC.m_ControlStateMsg.AccX = -0.023082222790; oMPC.m_ControlStateMsg.AccY = 0.250855356455; oMPC.m_ControlStateMsg.AccZ = -10.073497772217; @@ -3010,7 +2938,6 @@ void Test_MPC_AppMain_Nominal_DoControl(void) oMPC.m_ControlStateMsg.YawRateBias = 0.000000000000; oMPC.m_ControlStateMsg.AirspeedValid = 1; oMPC.m_ControlStateMsg.QuatResetCounter = 1; - oMPC.m_ManualControlSetpointMsg.Timestamp = 0; oMPC.m_ManualControlSetpointMsg.X = 0.000000000000; oMPC.m_ManualControlSetpointMsg.Y = 0.000000000000; oMPC.m_ManualControlSetpointMsg.Z = 0.000000000000; @@ -3036,8 +2963,6 @@ void Test_MPC_AppMain_Nominal_DoControl(void) oMPC.m_ManualControlSetpointMsg.DataSource = (PX4_ManualControlDataSource_t)0; oMPC.m_ManualControlSetpointMsg.StabSwitch = (PX4_SwitchPos_t)0; oMPC.m_ManualControlSetpointMsg.ManSwitch = (PX4_SwitchPos_t)0; - oMPC.m_PositionSetpointTripletMsg.Timestamp = 33671277064; - oMPC.m_PositionSetpointTripletMsg.Previous.Timestamp = 0; oMPC.m_PositionSetpointTripletMsg.Previous.Lat = 0.000000000000; oMPC.m_PositionSetpointTripletMsg.Previous.Lon = 0.000000000000; oMPC.m_PositionSetpointTripletMsg.Previous.X = 0.000000000000; @@ -3067,7 +2992,6 @@ void Test_MPC_AppMain_Nominal_DoControl(void) oMPC.m_PositionSetpointTripletMsg.Previous.LoiterDirection = 0; oMPC.m_PositionSetpointTripletMsg.Previous.AccelerationValid = 0; oMPC.m_PositionSetpointTripletMsg.Previous.AccelerationIsForce = 0; - oMPC.m_PositionSetpointTripletMsg.Current.Timestamp = 0; oMPC.m_PositionSetpointTripletMsg.Current.Lat = 47.397743504482; oMPC.m_PositionSetpointTripletMsg.Current.Lon = 8.545593681335; oMPC.m_PositionSetpointTripletMsg.Current.X = 0.000000000000; @@ -3097,7 +3021,6 @@ void Test_MPC_AppMain_Nominal_DoControl(void) oMPC.m_PositionSetpointTripletMsg.Current.LoiterDirection = 1; oMPC.m_PositionSetpointTripletMsg.Current.AccelerationValid = 0; oMPC.m_PositionSetpointTripletMsg.Current.AccelerationIsForce = 0; - oMPC.m_PositionSetpointTripletMsg.Next.Timestamp = 0; oMPC.m_PositionSetpointTripletMsg.Next.Lat = 0.000000000000; oMPC.m_PositionSetpointTripletMsg.Next.Lon = 0.000000000000; oMPC.m_PositionSetpointTripletMsg.Next.X = 0.000000000000; @@ -3127,7 +3050,6 @@ void Test_MPC_AppMain_Nominal_DoControl(void) oMPC.m_PositionSetpointTripletMsg.Next.LoiterDirection = 0; oMPC.m_PositionSetpointTripletMsg.Next.AccelerationValid = 0; oMPC.m_PositionSetpointTripletMsg.Next.AccelerationIsForce = 0; - oMPC.m_VehicleAttitudeSetpointMsg.Timestamp = 33671288749; oMPC.m_VehicleAttitudeSetpointMsg.RollBody = 0.00116860; oMPC.m_VehicleAttitudeSetpointMsg.PitchBody = 0.01192364; oMPC.m_VehicleAttitudeSetpointMsg.YawBody = 1.80963743; @@ -3145,7 +3067,6 @@ void Test_MPC_AppMain_Nominal_DoControl(void) oMPC.m_VehicleAttitudeSetpointMsg.FwControlYaw = 0; oMPC.m_VehicleAttitudeSetpointMsg.DisableMcYawControl = 0; oMPC.m_VehicleAttitudeSetpointMsg.ApplyFlaps = 0; - oMPC.m_VehicleControlModeMsg.Timestamp = 33671229639; oMPC.m_VehicleControlModeMsg.Armed = 1; oMPC.m_VehicleControlModeMsg.ExternalManualOverrideOk = 0; oMPC.m_VehicleControlModeMsg.SystemHilEnabled = 0; @@ -3163,7 +3084,6 @@ void Test_MPC_AppMain_Nominal_DoControl(void) oMPC.m_VehicleControlModeMsg.ControlClimbRateEnabled = 1; oMPC.m_VehicleControlModeMsg.ControlTerminationEnabled = 0; oMPC.m_VehicleControlModeMsg.ControlFixedHdgEnabled = 0; - oMPC.m_VehicleLocalPositionMsg.Timestamp = 33671300317; oMPC.m_VehicleLocalPositionMsg.RefTimestamp = 33671300317; oMPC.m_VehicleLocalPositionMsg.RefLat = 47.397743509334; oMPC.m_VehicleLocalPositionMsg.RefLon = 8.545593597490; @@ -3202,7 +3122,6 @@ void Test_MPC_AppMain_Nominal_DoControl(void) oMPC.m_VehicleLocalPositionMsg.XY_Global = 1; oMPC.m_VehicleLocalPositionMsg.Z_Global = 1; oMPC.m_VehicleLocalPositionMsg.DistBottomValid = 1; - oMPC.m_VehicleLocalPositionSetpointMsg.Timestamp = 33671288750; oMPC.m_VehicleLocalPositionSetpointMsg.X = -0.000539467554; oMPC.m_VehicleLocalPositionSetpointMsg.Y = 0.006310853176; oMPC.m_VehicleLocalPositionSetpointMsg.Z = -2.520263671875; @@ -3213,7 +3132,6 @@ void Test_MPC_AppMain_Nominal_DoControl(void) oMPC.m_VehicleLocalPositionSetpointMsg.AccX = 0.007203754503; oMPC.m_VehicleLocalPositionSetpointMsg.AccY = -0.050698895007; oMPC.m_VehicleLocalPositionSetpointMsg.AccZ = -4.273990154266; - oMPC.m_HomePositionMsg.Timestamp = 33671219483; oMPC.m_HomePositionMsg.Lat = 47.397743504982; oMPC.m_HomePositionMsg.Lon = 8.545593667673; oMPC.m_HomePositionMsg.Alt = 488.283905029297; @@ -3225,7 +3143,6 @@ void Test_MPC_AppMain_Nominal_DoControl(void) oMPC.m_HomePositionMsg.DirectionY = 0.000000000000; oMPC.m_HomePositionMsg.DirectionZ = 0.000000000000; oMPC.m_RefAlt = 488.269012451172; - oMPC.m_RefPos.timestamp = 33671300423; oMPC.m_RefPos.lat_rad = 0.827246682254; oMPC.m_RefPos.lon_rad = 0.149148744814; oMPC.m_RefPos.sin_lat = 0.736070429013; @@ -3329,10 +3246,8 @@ void Test_MPC_AppMain_Nominal_DoControl(void) // UtAssert_DoubleCmpAbs(oMPC.m_VehicleLocalPositionSetpointMsg.AccX, -0.0254337303, FLT_EPSILON, "oMPC.m_VehicleLocalPositionSetpointMsg.AccX"); // UtAssert_DoubleCmpAbs(oMPC.m_VehicleLocalPositionSetpointMsg.AccY, -0.0581580326, FLT_EPSILON, "oMPC.m_VehicleLocalPositionSetpointMsg.AccY"); UtAssert_DoubleCmpAbs(oMPC.m_VehicleLocalPositionSetpointMsg.AccZ, -1.23556244, FLT_EPSILON, "oMPC.m_VehicleLocalPositionSetpointMsg.AccZ"); - //UtAssert_True(oMPC.m_VehicleAttitudeSetpointMsg.Timestamp != 0, "oMPC.m_VehicleAttitudeSetpointMsg.Timestamp"); /* PASS 2 - Received triplet to transition to takeoff. */ - oMPC.m_VehicleStatusMsg.Timestamp = 24032670706; oMPC.m_VehicleStatusMsg.SystemID = 1; oMPC.m_VehicleStatusMsg.ComponentID = 1; oMPC.m_VehicleStatusMsg.OnboardControlSensorsPresent = 0; @@ -3353,12 +3268,10 @@ void Test_MPC_AppMain_Nominal_DoControl(void) oMPC.m_VehicleStatusMsg.EngineFailure = 0; oMPC.m_VehicleStatusMsg.EngineFailureCmd = 0; oMPC.m_VehicleStatusMsg.MissionFailure = 0; - oMPC.m_VehicleLandDetectedMsg.Timestamp = 24027002927; oMPC.m_VehicleLandDetectedMsg.AltMax = 10000.000000000000; oMPC.m_VehicleLandDetectedMsg.Landed = 1; oMPC.m_VehicleLandDetectedMsg.Freefall = 0; oMPC.m_VehicleLandDetectedMsg.GroundContact = 0; - oMPC.m_ControlStateMsg.Timestamp = 24032731497; oMPC.m_ControlStateMsg.AccX = 0.309893906116; oMPC.m_ControlStateMsg.AccY = 2.341282367706; oMPC.m_ControlStateMsg.AccZ = -9.519306182861; @@ -3392,7 +3305,6 @@ void Test_MPC_AppMain_Nominal_DoControl(void) oMPC.m_ControlStateMsg.YawRateBias = 0.000000000000; oMPC.m_ControlStateMsg.AirspeedValid = 1; oMPC.m_ControlStateMsg.QuatResetCounter = 1; - oMPC.m_ManualControlSetpointMsg.Timestamp = 0; oMPC.m_ManualControlSetpointMsg.X = 0.000000000000; oMPC.m_ManualControlSetpointMsg.Y = 0.000000000000; oMPC.m_ManualControlSetpointMsg.Z = 0.000000000000; @@ -3418,8 +3330,6 @@ void Test_MPC_AppMain_Nominal_DoControl(void) oMPC.m_ManualControlSetpointMsg.DataSource = (PX4_ManualControlDataSource_t)0; oMPC.m_ManualControlSetpointMsg.StabSwitch = (PX4_SwitchPos_t)0; oMPC.m_ManualControlSetpointMsg.ManSwitch = (PX4_SwitchPos_t)0; - oMPC.m_PositionSetpointTripletMsg.Timestamp = 24032719721; - oMPC.m_PositionSetpointTripletMsg.Previous.Timestamp = 0; oMPC.m_PositionSetpointTripletMsg.Previous.Lat = 0.000000000000; oMPC.m_PositionSetpointTripletMsg.Previous.Lon = 0.000000000000; oMPC.m_PositionSetpointTripletMsg.Previous.X = 0.000000000000; @@ -3449,7 +3359,6 @@ void Test_MPC_AppMain_Nominal_DoControl(void) oMPC.m_PositionSetpointTripletMsg.Previous.LoiterDirection = 0; oMPC.m_PositionSetpointTripletMsg.Previous.AccelerationValid = 0; oMPC.m_PositionSetpointTripletMsg.Previous.AccelerationIsForce = 0; - oMPC.m_PositionSetpointTripletMsg.Current.Timestamp = 0; oMPC.m_PositionSetpointTripletMsg.Current.Lat = 47.397742018286; oMPC.m_PositionSetpointTripletMsg.Current.Lon = 8.545593861439; oMPC.m_PositionSetpointTripletMsg.Current.X = 0.000000000000; @@ -3479,7 +3388,6 @@ void Test_MPC_AppMain_Nominal_DoControl(void) oMPC.m_PositionSetpointTripletMsg.Current.LoiterDirection = 1; oMPC.m_PositionSetpointTripletMsg.Current.AccelerationValid = 0; oMPC.m_PositionSetpointTripletMsg.Current.AccelerationIsForce = 0; - oMPC.m_PositionSetpointTripletMsg.Next.Timestamp = 0; oMPC.m_PositionSetpointTripletMsg.Next.Lat = 0.000000000000; oMPC.m_PositionSetpointTripletMsg.Next.Lon = 0.000000000000; oMPC.m_PositionSetpointTripletMsg.Next.X = 0.000000000000; @@ -3509,7 +3417,6 @@ void Test_MPC_AppMain_Nominal_DoControl(void) oMPC.m_PositionSetpointTripletMsg.Next.LoiterDirection = 0; oMPC.m_PositionSetpointTripletMsg.Next.AccelerationValid = 0; oMPC.m_PositionSetpointTripletMsg.Next.AccelerationIsForce = 0; - oMPC.m_VehicleAttitudeSetpointMsg.Timestamp = 24032720693; oMPC.m_VehicleAttitudeSetpointMsg.RollBody = 0.00000000; oMPC.m_VehicleAttitudeSetpointMsg.PitchBody = 0.00000000; oMPC.m_VehicleAttitudeSetpointMsg.YawBody = 1.54103744; @@ -3527,7 +3434,6 @@ void Test_MPC_AppMain_Nominal_DoControl(void) oMPC.m_VehicleAttitudeSetpointMsg.FwControlYaw = 0; oMPC.m_VehicleAttitudeSetpointMsg.DisableMcYawControl = 0; oMPC.m_VehicleAttitudeSetpointMsg.ApplyFlaps = 0; - oMPC.m_VehicleControlModeMsg.Timestamp = 24032670706; oMPC.m_VehicleControlModeMsg.Armed = 1; oMPC.m_VehicleControlModeMsg.ExternalManualOverrideOk = 0; oMPC.m_VehicleControlModeMsg.SystemHilEnabled = 0; @@ -3545,7 +3451,6 @@ void Test_MPC_AppMain_Nominal_DoControl(void) oMPC.m_VehicleControlModeMsg.ControlClimbRateEnabled = 1; oMPC.m_VehicleControlModeMsg.ControlTerminationEnabled = 0; oMPC.m_VehicleControlModeMsg.ControlFixedHdgEnabled = 0; - oMPC.m_VehicleLocalPositionMsg.Timestamp = 24032731662; oMPC.m_VehicleLocalPositionMsg.RefTimestamp = 24032731662; oMPC.m_VehicleLocalPositionMsg.RefLat = 47.397741988665; oMPC.m_VehicleLocalPositionMsg.RefLon = 8.545593887673; @@ -3584,7 +3489,6 @@ void Test_MPC_AppMain_Nominal_DoControl(void) oMPC.m_VehicleLocalPositionMsg.XY_Global = 1; oMPC.m_VehicleLocalPositionMsg.Z_Global = 1; oMPC.m_VehicleLocalPositionMsg.DistBottomValid = 1; - oMPC.m_VehicleLocalPositionSetpointMsg.Timestamp = 24032720694; oMPC.m_VehicleLocalPositionSetpointMsg.X = 0.003091249382; oMPC.m_VehicleLocalPositionSetpointMsg.Y = -0.002206754638; oMPC.m_VehicleLocalPositionSetpointMsg.Z = 0.038970947266; @@ -3595,7 +3499,6 @@ void Test_MPC_AppMain_Nominal_DoControl(void) oMPC.m_VehicleLocalPositionSetpointMsg.AccX = 0.000000000000; oMPC.m_VehicleLocalPositionSetpointMsg.AccY = 0.000000000000; oMPC.m_VehicleLocalPositionSetpointMsg.AccZ = -0.000000000000; - oMPC.m_HomePositionMsg.Timestamp = 24032660299; oMPC.m_HomePositionMsg.Lat = 47.397742015757; oMPC.m_HomePositionMsg.Lon = 8.545593857299; oMPC.m_HomePositionMsg.Alt = 488.844818115234; @@ -3607,7 +3510,6 @@ void Test_MPC_AppMain_Nominal_DoControl(void) oMPC.m_HomePositionMsg.DirectionY = 0.000000000000; oMPC.m_HomePositionMsg.DirectionZ = 0.000000000000; oMPC.m_RefAlt = 488.884002685547; - oMPC.m_RefPos.timestamp = 24032731790; oMPC.m_RefPos.lat_rad = 0.827246655713; oMPC.m_RefPos.lon_rad = 0.149148749878; oMPC.m_RefPos.sin_lat = 0.736070411047; @@ -3711,7 +3613,6 @@ void Test_MPC_AppMain_Nominal_DoControl(void) // UtAssert_DoubleCmpAbs(oMPC.m_VehicleLocalPositionSetpointMsg.AccX, -0.0478064008, FLT_EPSILON, "oMPC.m_VehicleLocalPositionSetpointMsg.AccX"); // UtAssert_DoubleCmpAbs(oMPC.m_VehicleLocalPositionSetpointMsg.AccY, -0.028205175, FLT_EPSILON, "oMPC.m_VehicleLocalPositionSetpointMsg.AccY"); // UtAssert_DoubleCmpAbs(oMPC.m_VehicleLocalPositionSetpointMsg.AccZ, -5.27533102, FLT_EPSILON, "oMPC.m_VehicleLocalPositionSetpointMsg.AccZ"); - //UtAssert_True(oMPC.m_VehicleAttitudeSetpointMsg.Timestamp != 0, "oMPC.m_VehicleAttitudeSetpointMsg.Timestamp"); } @@ -3730,7 +3631,6 @@ void Test_MPC_AppMain_Nominal_ControlManual(void) oMPC.InitConfigTbl(); /* Hovering stationary */ - oMPC.m_VehicleStatusMsg.Timestamp = 71387147216; oMPC.m_VehicleStatusMsg.SystemID = 1; oMPC.m_VehicleStatusMsg.ComponentID = 1; oMPC.m_VehicleStatusMsg.OnboardControlSensorsPresent = 0; @@ -3751,12 +3651,10 @@ void Test_MPC_AppMain_Nominal_ControlManual(void) oMPC.m_VehicleStatusMsg.EngineFailure = 0; oMPC.m_VehicleStatusMsg.EngineFailureCmd = 0; oMPC.m_VehicleStatusMsg.MissionFailure = 0; - oMPC.m_VehicleLandDetectedMsg.Timestamp = 71352650214; oMPC.m_VehicleLandDetectedMsg.AltMax = 10000.000000000000; oMPC.m_VehicleLandDetectedMsg.Landed = 0; oMPC.m_VehicleLandDetectedMsg.Freefall = 0; oMPC.m_VehicleLandDetectedMsg.GroundContact = 0; - oMPC.m_ControlStateMsg.Timestamp = 71387312526; oMPC.m_ControlStateMsg.AccX = -0.039567112923; oMPC.m_ControlStateMsg.AccY = 0.473200112581; oMPC.m_ControlStateMsg.AccZ = -10.268331527710; @@ -3790,7 +3688,6 @@ void Test_MPC_AppMain_Nominal_ControlManual(void) oMPC.m_ControlStateMsg.YawRateBias = 0.000000000000; oMPC.m_ControlStateMsg.AirspeedValid = 1; oMPC.m_ControlStateMsg.QuatResetCounter = 1; - oMPC.m_ManualControlSetpointMsg.Timestamp = 71387286482; oMPC.m_ManualControlSetpointMsg.X = 0.000000000000; oMPC.m_ManualControlSetpointMsg.Y = 0.000000000000; oMPC.m_ManualControlSetpointMsg.Z = 0.557142853737; @@ -3816,8 +3713,6 @@ void Test_MPC_AppMain_Nominal_ControlManual(void) oMPC.m_ManualControlSetpointMsg.DataSource = (PX4_ManualControlDataSource_t)1; oMPC.m_ManualControlSetpointMsg.StabSwitch = (PX4_SwitchPos_t)0; oMPC.m_ManualControlSetpointMsg.ManSwitch = (PX4_SwitchPos_t)0; - oMPC.m_PositionSetpointTripletMsg.Timestamp = 0; - oMPC.m_PositionSetpointTripletMsg.Previous.Timestamp = 0; oMPC.m_PositionSetpointTripletMsg.Previous.Lat = 0.000000000000; oMPC.m_PositionSetpointTripletMsg.Previous.Lon = 0.000000000000; oMPC.m_PositionSetpointTripletMsg.Previous.X = 0.000000000000; @@ -3847,7 +3742,6 @@ void Test_MPC_AppMain_Nominal_ControlManual(void) oMPC.m_PositionSetpointTripletMsg.Previous.LoiterDirection = 0; oMPC.m_PositionSetpointTripletMsg.Previous.AccelerationValid = 0; oMPC.m_PositionSetpointTripletMsg.Previous.AccelerationIsForce = 0; - oMPC.m_PositionSetpointTripletMsg.Current.Timestamp = 0; oMPC.m_PositionSetpointTripletMsg.Current.Lat = 0.000000000000; oMPC.m_PositionSetpointTripletMsg.Current.Lon = 0.000000000000; oMPC.m_PositionSetpointTripletMsg.Current.X = 0.000000000000; @@ -3877,7 +3771,6 @@ void Test_MPC_AppMain_Nominal_ControlManual(void) oMPC.m_PositionSetpointTripletMsg.Current.LoiterDirection = 0; oMPC.m_PositionSetpointTripletMsg.Current.AccelerationValid = 0; oMPC.m_PositionSetpointTripletMsg.Current.AccelerationIsForce = 0; - oMPC.m_PositionSetpointTripletMsg.Next.Timestamp = 0; oMPC.m_PositionSetpointTripletMsg.Next.Lat = 0.000000000000; oMPC.m_PositionSetpointTripletMsg.Next.Lon = 0.000000000000; oMPC.m_PositionSetpointTripletMsg.Next.X = 0.000000000000; @@ -3907,7 +3800,6 @@ void Test_MPC_AppMain_Nominal_ControlManual(void) oMPC.m_PositionSetpointTripletMsg.Next.LoiterDirection = 0; oMPC.m_PositionSetpointTripletMsg.Next.AccelerationValid = 0; oMPC.m_PositionSetpointTripletMsg.Next.AccelerationIsForce = 0; - oMPC.m_VehicleAttitudeSetpointMsg.Timestamp = 71387315002; oMPC.m_VehicleAttitudeSetpointMsg.RollBody = -0.01284447; oMPC.m_VehicleAttitudeSetpointMsg.PitchBody = -0.02443473; oMPC.m_VehicleAttitudeSetpointMsg.YawBody = 1.56718373; @@ -3925,7 +3817,6 @@ void Test_MPC_AppMain_Nominal_ControlManual(void) oMPC.m_VehicleAttitudeSetpointMsg.FwControlYaw = 0; oMPC.m_VehicleAttitudeSetpointMsg.DisableMcYawControl = 0; oMPC.m_VehicleAttitudeSetpointMsg.ApplyFlaps = 0; - oMPC.m_VehicleControlModeMsg.Timestamp = 71387147216; oMPC.m_VehicleControlModeMsg.Armed = 1; oMPC.m_VehicleControlModeMsg.ExternalManualOverrideOk = 0; oMPC.m_VehicleControlModeMsg.SystemHilEnabled = 0; @@ -3943,7 +3834,6 @@ void Test_MPC_AppMain_Nominal_ControlManual(void) oMPC.m_VehicleControlModeMsg.ControlClimbRateEnabled = 1; oMPC.m_VehicleControlModeMsg.ControlTerminationEnabled = 0; oMPC.m_VehicleControlModeMsg.ControlFixedHdgEnabled = 0; - oMPC.m_VehicleLocalPositionMsg.Timestamp = 71387313201; oMPC.m_VehicleLocalPositionMsg.RefTimestamp = 71387313201; oMPC.m_VehicleLocalPositionMsg.RefLat = 47.397741972655; oMPC.m_VehicleLocalPositionMsg.RefLon = 8.545593900131; @@ -3982,7 +3872,6 @@ void Test_MPC_AppMain_Nominal_ControlManual(void) oMPC.m_VehicleLocalPositionMsg.XY_Global = 1; oMPC.m_VehicleLocalPositionMsg.Z_Global = 1; oMPC.m_VehicleLocalPositionMsg.DistBottomValid = 1; - oMPC.m_VehicleLocalPositionSetpointMsg.Timestamp = 71387315000; oMPC.m_VehicleLocalPositionSetpointMsg.X = -2.018968582153; oMPC.m_VehicleLocalPositionSetpointMsg.Y = 1.573781371117; oMPC.m_VehicleLocalPositionSetpointMsg.Z = -0.799546360970; @@ -3993,7 +3882,6 @@ void Test_MPC_AppMain_Nominal_ControlManual(void) oMPC.m_VehicleLocalPositionSetpointMsg.AccX = 0.055766887963; oMPC.m_VehicleLocalPositionSetpointMsg.AccY = 0.105148039758; oMPC.m_VehicleLocalPositionSetpointMsg.AccZ = -4.310579776764; - oMPC.m_HomePositionMsg.Timestamp = 71342533449; oMPC.m_HomePositionMsg.Lat = 47.397741945098; oMPC.m_HomePositionMsg.Lon = 8.545593960621; oMPC.m_HomePositionMsg.Alt = 504.170379638672; @@ -4005,7 +3893,6 @@ void Test_MPC_AppMain_Nominal_ControlManual(void) oMPC.m_HomePositionMsg.DirectionY = 0.000000000000; oMPC.m_HomePositionMsg.DirectionZ = 0.000000000000; oMPC.m_RefAlt = 504.262969970703; - oMPC.m_RefPos.timestamp = 71387315018; oMPC.m_RefPos.lat_rad = 0.827246655434; oMPC.m_RefPos.lon_rad = 0.149148750096; oMPC.m_RefPos.sin_lat = 0.736070410858; diff --git a/apps/mpc/fsw/unit_test/stubs/ut_mpc_custom_hooks.cpp b/apps/mpc/fsw/unit_test/stubs/ut_mpc_custom_hooks.cpp index d5a6732c3..ed98e2412 100644 --- a/apps/mpc/fsw/unit_test/stubs/ut_mpc_custom_hooks.cpp +++ b/apps/mpc/fsw/unit_test/stubs/ut_mpc_custom_hooks.cpp @@ -34,7 +34,7 @@ #include "cfe.h" -uint64 UT_PX4LIB_GetPX4TimeUs(void) +uint64 UT_CFE_TIME_GetTimeInMicros(void) { return 1; } diff --git a/apps/mpc/fsw/unit_test/stubs/ut_mpc_custom_hooks.h b/apps/mpc/fsw/unit_test/stubs/ut_mpc_custom_hooks.h index f09408ded..30549b36a 100644 --- a/apps/mpc/fsw/unit_test/stubs/ut_mpc_custom_hooks.h +++ b/apps/mpc/fsw/unit_test/stubs/ut_mpc_custom_hooks.h @@ -36,6 +36,6 @@ #include "cfe.h" -uint64 UT_PX4LIB_GetPX4TimeUs(void); +uint64 UT_CFE_TIME_GetTimeInMicros(void); #endif diff --git a/apps/mpc/fsw/unit_test/stubs/ut_mpc_custom_stubs.cpp b/apps/mpc/fsw/unit_test/stubs/ut_mpc_custom_stubs.cpp index 824ed8131..5e9770f6c 100644 --- a/apps/mpc/fsw/unit_test/stubs/ut_mpc_custom_stubs.cpp +++ b/apps/mpc/fsw/unit_test/stubs/ut_mpc_custom_stubs.cpp @@ -49,7 +49,7 @@ void Ut_MPC_Custom_Reset(void) void Ut_MPC_Custom_SetFunctionHook(uint32 Index, void *FunPtr) { - if (Index == UT_MPC_PX4LIB_GETPX4TIMEUS_INDEX) { Ut_MPC_Custom_HookTable.PX4LIB_GetPX4TimeUs = (uint64 (*)(void))FunPtr; } + if (Index == UT_MPC_PX4LIB_GETPX4TIMEUS_INDEX) { Ut_MPC_Custom_HookTable.CFE_TIME_GetTimeInMicros = (uint64 (*)(void))FunPtr; } else { printf("Unsupported MPC_CUSTOM Index In SetFunctionHook Call %lu\n", Index); diff --git a/apps/mpc/fsw/unit_test/stubs/ut_mpc_custom_stubs.h b/apps/mpc/fsw/unit_test/stubs/ut_mpc_custom_stubs.h index fbccfd188..ee87aba80 100644 --- a/apps/mpc/fsw/unit_test/stubs/ut_mpc_custom_stubs.h +++ b/apps/mpc/fsw/unit_test/stubs/ut_mpc_custom_stubs.h @@ -36,13 +36,13 @@ typedef enum { - UT_MPC_PX4LIB_GETPX4TIMEUS_INDEX, + UT_MPC_CFE_TIME_GETTIMEINMACROS_INDEX, UT_MPC_CUSTOM_MAX_INDEX } Ut_MPC_Custom_INDEX_t; typedef struct { - uint64 (*PX4LIB_GetPX4TimeUs)(void); + uint64 (*CFE_TIME_GetTimeInMicros)(void); } Ut_MPC_Custom_HookTable_t; typedef struct diff --git a/apps/mpu6050/fsw/unit_test/mpu6050_custom_stubs.c b/apps/mpu6050/fsw/unit_test/mpu6050_custom_stubs.c index 67a874fa6..fc5c8f770 100644 --- a/apps/mpu6050/fsw/unit_test/mpu6050_custom_stubs.c +++ b/apps/mpu6050/fsw/unit_test/mpu6050_custom_stubs.c @@ -101,12 +101,6 @@ boolean MPU6050_Read_MagDeviceID(uint8 *Value) } -uint64 PX4LIB_GetPX4TimeUs(void) -{ - return MPU6050_Custom_Returns.MPU6050_Get_Time_Return; -} - - boolean MPU6050_Apply_Platform_Rotation(float *X, float *Y, float *Z) { return TRUE; diff --git a/apps/mpu9250/fsw/for_build/CMakeLists.txt b/apps/mpu9250/fsw/for_build/CMakeLists.txt index 233251cfe..732c796ff 100644 --- a/apps/mpu9250/fsw/for_build/CMakeLists.txt +++ b/apps/mpu9250/fsw/for_build/CMakeLists.txt @@ -77,6 +77,7 @@ buildliner_add_app_unit_test(mpu9250-ut ${CMAKE_CURRENT_SOURCE_DIR}/../src/mpu9250_version.h ${CMAKE_CURRENT_SOURCE_DIR}/../src/mpu9250_config_utils.cpp ${PX4LIB_LIB_SOURCES} + ${CMAKE_CURRENT_SOURCE_DIR}/../../../cfs_lib/fsw/src/cfs_utils.c INCLUDES ${CMAKE_CURRENT_SOURCE_DIR}/../src/ diff --git a/apps/mpu9250/fsw/src/mpu9250_app.cpp b/apps/mpu9250/fsw/src/mpu9250_app.cpp index ad946ce20..807438eb2 100644 --- a/apps/mpu9250/fsw/src/mpu9250_app.cpp +++ b/apps/mpu9250/fsw/src/mpu9250_app.cpp @@ -788,7 +788,7 @@ void MPU9250::ReadDevice(void) math::Vector3F aval_integrated; /* Get a timestamp */ - timeStamp = PX4LIB_GetPX4TimeUs(); + timeStamp = CFE_TIME_GetTimeInMicros(); /* Set measurement timestamps */ //SensorMag.Timestamp = timeStamp; diff --git a/apps/mpu9250/fsw/unit_test/mpu9250_custom_stubs.c b/apps/mpu9250/fsw/unit_test/mpu9250_custom_stubs.c index e2ed57f93..86093e548 100644 --- a/apps/mpu9250/fsw/unit_test/mpu9250_custom_stubs.c +++ b/apps/mpu9250/fsw/unit_test/mpu9250_custom_stubs.c @@ -133,7 +133,7 @@ boolean MPU9250_Read_MagDeviceID(uint8 *Value) } -uint64 PX4LIB_GetPX4TimeUs(void) +uint64 CFE_TIME_GetTimeInMicros(void) { return MPU9250_Custom_Returns.MPU9250_Get_Time_Return; } diff --git a/apps/ms5607/fsw/unit_test/ms5607_custom_stubs.c b/apps/ms5607/fsw/unit_test/ms5607_custom_stubs.c index 27ac21d7b..a5ea6caf8 100644 --- a/apps/ms5607/fsw/unit_test/ms5607_custom_stubs.c +++ b/apps/ms5607/fsw/unit_test/ms5607_custom_stubs.c @@ -138,7 +138,7 @@ int32 MS5607_Custom_Init_EventFilters(int32 ind, CFE_EVS_BinFilter_t *EventTbl) } -uint64 PX4LIB_GetPX4TimeUs(void) +uint64 CFE_TIME_GetTimeInMicros(void) { return 0; } diff --git a/apps/ms5611/fsw/src/ms5611_app.cpp b/apps/ms5611/fsw/src/ms5611_app.cpp index f0a6d7a7f..8e06a4978 100644 --- a/apps/ms5611/fsw/src/ms5611_app.cpp +++ b/apps/ms5611/fsw/src/ms5611_app.cpp @@ -890,7 +890,7 @@ void MS5611::ReadDevice(void) else { /* Stamp time */ - SensorBaro.Timestamp = PX4LIB_GetPX4TimeUs(); + SensorBaro.Timestamp = CFE_TIME_GetTimeInMicros(); /* Convert to Celsius */ SensorBaro.Temperature = temperature / 100.0f; /* convert to millibar */ diff --git a/apps/ms5611/fsw/unit_test/ms5611_custom_stubs.c b/apps/ms5611/fsw/unit_test/ms5611_custom_stubs.c index bce176062..d130e3a65 100644 --- a/apps/ms5611/fsw/unit_test/ms5611_custom_stubs.c +++ b/apps/ms5611/fsw/unit_test/ms5611_custom_stubs.c @@ -131,7 +131,7 @@ int32 MS5611_Custom_Init_EventFilters(int32 ind, CFE_EVS_BinFilter_t *EventTbl) } -uint64 PX4LIB_GetPX4TimeUs(void) +uint64 CFE_TIME_GetTimeInMicros(void) { return 0; } diff --git a/apps/nav/fsw/for_build/CMakeLists.txt b/apps/nav/fsw/for_build/CMakeLists.txt index 1a04b5b81..842024d14 100644 --- a/apps/nav/fsw/for_build/CMakeLists.txt +++ b/apps/nav/fsw/for_build/CMakeLists.txt @@ -46,6 +46,7 @@ buildliner_add_app_unit_test(nav-ut ${CMAKE_CURRENT_SOURCE_DIR}/../src/nav_tbldefs.h ${CMAKE_CURRENT_SOURCE_DIR}/../src/nav_version.h ${PX4LIB_LIB_SOURCES} + ${CMAKE_CURRENT_SOURCE_DIR}/../../../cfs_lib/fsw/src/cfs_utils.c INCLUDES ${CMAKE_CURRENT_SOURCE_DIR}/../src/ diff --git a/apps/nav/fsw/src/nav_app.cpp b/apps/nav/fsw/src/nav_app.cpp index 00c11fcfd..410fdc25c 100644 --- a/apps/nav/fsw/src/nav_app.cpp +++ b/apps/nav/fsw/src/nav_app.cpp @@ -913,7 +913,7 @@ int32 NAV::Execute() } /* Time stamp out going messages */ - Now2 = PX4LIB_GetPX4TimeUs(); + Now2 = CFE_TIME_GetTimeInMicros(); Now = CFE_TIME_GetTime(); CFE_SB_SetMsgTime((CFE_SB_MsgPtr_t)&MissionResultMsg, Now); @@ -1761,7 +1761,7 @@ osalbool NAV::IsMissionItemReached() } } - Now = PX4LIB_GetPX4TimeUs(); + Now = CFE_TIME_GetTimeInMicros(); if (!CVT.VehicleLandDetectedMsg.Landed && !WaypointPositionReached) { Dist= -1.0f; diff --git a/apps/nav/fsw/unit_test/nav_custom_stubs.c b/apps/nav/fsw/unit_test/nav_custom_stubs.c index 4348adcd2..5b6d6f4c0 100644 --- a/apps/nav/fsw/unit_test/nav_custom_stubs.c +++ b/apps/nav/fsw/unit_test/nav_custom_stubs.c @@ -35,16 +35,3 @@ -uint64 PX4LIB_GetPX4TimeUs(void) -{ - return 0; -} - - -uint64 PX4LIB_GetPX4TimeMs(void) -{ - return 0; -} - - - diff --git a/apps/pe/fsw/for_build/CMakeLists.txt b/apps/pe/fsw/for_build/CMakeLists.txt index 42c8ba7d7..afa98681c 100644 --- a/apps/pe/fsw/for_build/CMakeLists.txt +++ b/apps/pe/fsw/for_build/CMakeLists.txt @@ -57,6 +57,7 @@ buildliner_add_app_unit_test(pe-ut ${CMAKE_CURRENT_SOURCE_DIR}/../src/sensors/land.cpp ${CMAKE_CURRENT_SOURCE_DIR}/../src/sensors/dist.cpp ${CMAKE_CURRENT_SOURCE_DIR}/../src/sensors/flow.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/../../../cfs_lib/fsw/src/cfs_utils.c #${PX4LIB_LIB_SOURCES} # Adding lib sources individually so stubs can be used. # Math diff --git a/apps/pe/fsw/unit_test/pe_app_test.cpp b/apps/pe/fsw/unit_test/pe_app_test.cpp index 02e844893..e7ab126e5 100644 --- a/apps/pe/fsw/unit_test/pe_app_test.cpp +++ b/apps/pe/fsw/unit_test/pe_app_test.cpp @@ -647,7 +647,7 @@ void Test_PE_Baro_Correct_Nominal(void) oPE.baroInit(); /* Input/output data from PX4 */ - oPE.m_BaroAltOrigin = 0.2648827434f; + oPE.HkTlm.BaroAltOrigin = 0.2648827434f; oPE.m_SensorCombinedMsg.BaroAlt = 0.2870604694f; /* Input/output data from PX4 */ @@ -1090,7 +1090,7 @@ void Test_PE_GPS_Correct_Nominal(void) oPE.m_VehicleGpsPositionMsg.Lat = 47.3977419000f / 1e-7; oPE.m_VehicleGpsPositionMsg.Lon = 8.5455939000f / 1e-7; oPE.m_VehicleGpsPositionMsg.Alt = 488.269f / 1e-3; - oPE.m_GpsAltOrigin = 488.269f; + oPE.HkTlm.GpsAltOrigin = 488.269f; /* Set return values for geo map_projection_project */ Geo_Project_Returns.x = 0.0031080388f; diff --git a/apps/pe/fsw/unit_test/pe_stubs.c b/apps/pe/fsw/unit_test/pe_stubs.c index 363ecae03..5f8fe35b3 100644 --- a/apps/pe/fsw/unit_test/pe_stubs.c +++ b/apps/pe/fsw/unit_test/pe_stubs.c @@ -39,12 +39,6 @@ Geo_Project_Returns_t Geo_Project_Returns = { 0, 0}; -uint64 PX4LIB_GetPX4TimeUs(void) -{ - return 0; -} - - struct map_projection_reference_s { double lat_rad; double lon_rad; diff --git a/apps/px4lib/fsw/for_build/CMakeLists.txt b/apps/px4lib/fsw/for_build/CMakeLists.txt index 36644dbe1..9b7f7afc0 100644 --- a/apps/px4lib/fsw/for_build/CMakeLists.txt +++ b/apps/px4lib/fsw/for_build/CMakeLists.txt @@ -68,6 +68,7 @@ buildliner_add_app_unit_test(px4lib-vector1f-ut ${CMAKE_CURRENT_SOURCE_DIR}/../unit_test/Vector1F_test_utils.cpp ${CMAKE_CURRENT_SOURCE_DIR}/../unit_test/Vector1F_test_utils.hpp ${PX4LIB_SOURCES} + ${CMAKE_CURRENT_SOURCE_DIR}/../../../cfs_lib/fsw/src/cfs_utils.c INCLUDES ${CMAKE_CURRENT_SOURCE_DIR}/../src/ @@ -91,6 +92,7 @@ buildliner_add_app_unit_test(px4lib-vector2f-ut ${CMAKE_CURRENT_SOURCE_DIR}/../unit_test/Vector2F_test_utils.cpp ${CMAKE_CURRENT_SOURCE_DIR}/../unit_test/Vector2F_test_utils.hpp ${PX4LIB_SOURCES} + ${CMAKE_CURRENT_SOURCE_DIR}/../../../cfs_lib/fsw/src/cfs_utils.c INCLUDES ${CMAKE_CURRENT_SOURCE_DIR}/../src/ @@ -114,6 +116,7 @@ buildliner_add_app_unit_test(px4lib-vector3f-ut ${CMAKE_CURRENT_SOURCE_DIR}/../unit_test/Vector3F_test_utils.cpp ${CMAKE_CURRENT_SOURCE_DIR}/../unit_test/Vector3F_test_utils.hpp ${PX4LIB_SOURCES} + ${CMAKE_CURRENT_SOURCE_DIR}/../../../cfs_lib/fsw/src/cfs_utils.c INCLUDES ${CMAKE_CURRENT_SOURCE_DIR}/../src/ @@ -138,6 +141,7 @@ buildliner_add_app_unit_test(px4lib-vector4f-ut ${CMAKE_CURRENT_SOURCE_DIR}/../unit_test/Vector4F_test_utils.hpp ${CMAKE_CURRENT_SOURCE_DIR}/../src/math/Vector4F.cpp ${PX4LIB_PUBLIC_INCLUDE_DIR}/math/Vector4F.hpp + ${CMAKE_CURRENT_SOURCE_DIR}/../../../cfs_lib/fsw/src/cfs_utils.c INCLUDES ${CMAKE_CURRENT_SOURCE_DIR}/../src/ @@ -161,6 +165,7 @@ buildliner_add_app_unit_test(px4lib-vector6f-ut ${CMAKE_CURRENT_SOURCE_DIR}/../unit_test/Vector6F_test_utils.cpp ${CMAKE_CURRENT_SOURCE_DIR}/../unit_test/Vector6F_test_utils.hpp ${PX4LIB_SOURCES} + ${CMAKE_CURRENT_SOURCE_DIR}/../../../cfs_lib/fsw/src/cfs_utils.c INCLUDES ${CMAKE_CURRENT_SOURCE_DIR}/../src/ @@ -184,6 +189,7 @@ buildliner_add_app_unit_test(px4lib-vector10f-ut ${CMAKE_CURRENT_SOURCE_DIR}/../unit_test/Vector10F_test_utils.cpp ${CMAKE_CURRENT_SOURCE_DIR}/../unit_test/Vector10F_test_utils.hpp ${PX4LIB_SOURCES} + ${CMAKE_CURRENT_SOURCE_DIR}/../../../cfs_lib/fsw/src/cfs_utils.c INCLUDES ${CMAKE_CURRENT_SOURCE_DIR}/../src/ @@ -207,6 +213,7 @@ buildliner_add_app_unit_test(px4lib-quaternion-ut ${CMAKE_CURRENT_SOURCE_DIR}/../unit_test/Quaternion_test_utils.cpp ${CMAKE_CURRENT_SOURCE_DIR}/../unit_test/Quaternion_test_utils.hpp ${PX4LIB_SOURCES} + ${CMAKE_CURRENT_SOURCE_DIR}/../../../cfs_lib/fsw/src/cfs_utils.c INCLUDES ${CMAKE_CURRENT_SOURCE_DIR}/../src/ @@ -230,6 +237,7 @@ buildliner_add_app_unit_test(px4lib-matrix1f2-ut ${CMAKE_CURRENT_SOURCE_DIR}/../unit_test/Matrix1F2_test_utils.cpp ${CMAKE_CURRENT_SOURCE_DIR}/../unit_test/Matrix1F2_test_utils.hpp ${PX4LIB_SOURCES} + ${CMAKE_CURRENT_SOURCE_DIR}/../../../cfs_lib/fsw/src/cfs_utils.c INCLUDES ${CMAKE_CURRENT_SOURCE_DIR}/../src/ @@ -252,6 +260,7 @@ buildliner_add_app_unit_test(px4lib-matrix1f3-ut ${CMAKE_CURRENT_SOURCE_DIR}/../unit_test/Matrix1F3_test_utils.cpp ${CMAKE_CURRENT_SOURCE_DIR}/../unit_test/Matrix1F3_test_utils.hpp ${PX4LIB_SOURCES} + ${CMAKE_CURRENT_SOURCE_DIR}/../../../cfs_lib/fsw/src/cfs_utils.c INCLUDES ${CMAKE_CURRENT_SOURCE_DIR}/../src/ @@ -275,6 +284,7 @@ buildliner_add_app_unit_test(px4lib-matrix1f6-ut ${CMAKE_CURRENT_SOURCE_DIR}/../unit_test/Matrix1F6_test_utils.cpp ${CMAKE_CURRENT_SOURCE_DIR}/../unit_test/Matrix1F6_test_utils.hpp ${PX4LIB_SOURCES} + ${CMAKE_CURRENT_SOURCE_DIR}/../../../cfs_lib/fsw/src/cfs_utils.c INCLUDES ${CMAKE_CURRENT_SOURCE_DIR}/../src/ @@ -298,6 +308,7 @@ buildliner_add_app_unit_test(px4lib-matrix2f2-ut ${CMAKE_CURRENT_SOURCE_DIR}/../unit_test/Matrix2F2_test_utils.cpp ${CMAKE_CURRENT_SOURCE_DIR}/../unit_test/Matrix2F2_test_utils.hpp ${PX4LIB_SOURCES} + ${CMAKE_CURRENT_SOURCE_DIR}/../../../cfs_lib/fsw/src/cfs_utils.c INCLUDES ${CMAKE_CURRENT_SOURCE_DIR}/../src/ @@ -321,6 +332,7 @@ buildliner_add_app_unit_test(px4lib-matrix2f10-ut ${CMAKE_CURRENT_SOURCE_DIR}/../unit_test/Matrix2F10_test_utils.cpp ${CMAKE_CURRENT_SOURCE_DIR}/../unit_test/Matrix2F10_test_utils.hpp ${PX4LIB_SOURCES} + ${CMAKE_CURRENT_SOURCE_DIR}/../../../cfs_lib/fsw/src/cfs_utils.c INCLUDES ${CMAKE_CURRENT_SOURCE_DIR}/../src/ @@ -344,6 +356,7 @@ buildliner_add_app_unit_test(px4lib-matrix3f3-ut ${CMAKE_CURRENT_SOURCE_DIR}/../unit_test/Matrix3F3_test_utils.cpp ${CMAKE_CURRENT_SOURCE_DIR}/../unit_test/Matrix3F3_test_utils.hpp ${PX4LIB_SOURCES} + ${CMAKE_CURRENT_SOURCE_DIR}/../../../cfs_lib/fsw/src/cfs_utils.c INCLUDES ${CMAKE_CURRENT_SOURCE_DIR}/../src/ @@ -366,6 +379,7 @@ buildliner_add_app_unit_test(px4lib-matrix3f10-ut ${CMAKE_CURRENT_SOURCE_DIR}/../unit_test/Matrix3F10_test_utils.cpp ${CMAKE_CURRENT_SOURCE_DIR}/../unit_test/Matrix3F10_test_utils.hpp ${PX4LIB_SOURCES} + ${CMAKE_CURRENT_SOURCE_DIR}/../../../cfs_lib/fsw/src/cfs_utils.c INCLUDES ${CMAKE_CURRENT_SOURCE_DIR}/../src/ @@ -389,6 +403,7 @@ buildliner_add_app_unit_test(px4lib-matrix4f4-ut ${CMAKE_CURRENT_SOURCE_DIR}/../unit_test/Matrix4F4_test_utils.cpp ${CMAKE_CURRENT_SOURCE_DIR}/../unit_test/Matrix4F4_test_utils.hpp ${PX4LIB_SOURCES} + ${CMAKE_CURRENT_SOURCE_DIR}/../../../cfs_lib/fsw/src/cfs_utils.c INCLUDES ${CMAKE_CURRENT_SOURCE_DIR}/../src/ @@ -412,6 +427,7 @@ buildliner_add_app_unit_test(px4lib-matrix6f1-ut ${CMAKE_CURRENT_SOURCE_DIR}/../unit_test/Matrix6F1_test_utils.cpp ${CMAKE_CURRENT_SOURCE_DIR}/../unit_test/Matrix6F1_test_utils.hpp ${PX4LIB_SOURCES} + ${CMAKE_CURRENT_SOURCE_DIR}/../../../cfs_lib/fsw/src/cfs_utils.c INCLUDES ${CMAKE_CURRENT_SOURCE_DIR}/../src/ @@ -435,6 +451,7 @@ buildliner_add_app_unit_test(px4lib-matrix6f6-ut ${CMAKE_CURRENT_SOURCE_DIR}/../unit_test/Matrix6F6_test_utils.cpp ${CMAKE_CURRENT_SOURCE_DIR}/../unit_test/Matrix6F6_test_utils.hpp ${PX4LIB_SOURCES} + ${CMAKE_CURRENT_SOURCE_DIR}/../../../cfs_lib/fsw/src/cfs_utils.c INCLUDES ${CMAKE_CURRENT_SOURCE_DIR}/../src/ @@ -459,6 +476,7 @@ buildliner_add_app_unit_test(px4lib-matrix1f10-ut ${CMAKE_CURRENT_SOURCE_DIR}/../unit_test/Matrix1F10_test_utils.cpp ${CMAKE_CURRENT_SOURCE_DIR}/../unit_test/Matrix1F10_test_utils.hpp ${PX4LIB_SOURCES} + ${CMAKE_CURRENT_SOURCE_DIR}/../../../cfs_lib/fsw/src/cfs_utils.c INCLUDES ${CMAKE_CURRENT_SOURCE_DIR}/../src/ @@ -482,6 +500,7 @@ buildliner_add_app_unit_test(px4lib-matrix10f1-ut ${CMAKE_CURRENT_SOURCE_DIR}/../unit_test/Matrix10F1_test_utils.cpp ${CMAKE_CURRENT_SOURCE_DIR}/../unit_test/Matrix10F1_test_utils.hpp ${PX4LIB_SOURCES} + ${CMAKE_CURRENT_SOURCE_DIR}/../../../cfs_lib/fsw/src/cfs_utils.c INCLUDES ${CMAKE_CURRENT_SOURCE_DIR}/../src/ @@ -504,6 +523,7 @@ buildliner_add_app_unit_test(px4lib-matrix1f1-ut ${CMAKE_CURRENT_SOURCE_DIR}/../unit_test/Matrix1F1_test_utils.cpp ${CMAKE_CURRENT_SOURCE_DIR}/../unit_test/Matrix1F1_test_utils.hpp ${PX4LIB_SOURCES} + ${CMAKE_CURRENT_SOURCE_DIR}/../../../cfs_lib/fsw/src/cfs_utils.c INCLUDES ${CMAKE_CURRENT_SOURCE_DIR}/../src/ @@ -527,6 +547,7 @@ buildliner_add_app_unit_test(px4lib-matrix10f2-ut ${CMAKE_CURRENT_SOURCE_DIR}/../unit_test/Matrix10F2_test_utils.cpp ${CMAKE_CURRENT_SOURCE_DIR}/../unit_test/Matrix10F2_test_utils.hpp ${PX4LIB_SOURCES} + ${CMAKE_CURRENT_SOURCE_DIR}/../../../cfs_lib/fsw/src/cfs_utils.c INCLUDES ${CMAKE_CURRENT_SOURCE_DIR}/../src/ @@ -550,6 +571,7 @@ buildliner_add_app_unit_test(px4lib-matrix10f3-ut ${CMAKE_CURRENT_SOURCE_DIR}/../unit_test/Matrix10F3_test_utils.cpp ${CMAKE_CURRENT_SOURCE_DIR}/../unit_test/Matrix10F3_test_utils.hpp ${PX4LIB_SOURCES} + ${CMAKE_CURRENT_SOURCE_DIR}/../../../cfs_lib/fsw/src/cfs_utils.c INCLUDES ${CMAKE_CURRENT_SOURCE_DIR}/../src/ @@ -573,6 +595,7 @@ buildliner_add_app_unit_test(px4lib-matrix10f6-ut ${CMAKE_CURRENT_SOURCE_DIR}/../unit_test/Matrix10F6_test_utils.cpp ${CMAKE_CURRENT_SOURCE_DIR}/../unit_test/Matrix10F6_test_utils.hpp ${PX4LIB_SOURCES} + ${CMAKE_CURRENT_SOURCE_DIR}/../../../cfs_lib/fsw/src/cfs_utils.c INCLUDES ${CMAKE_CURRENT_SOURCE_DIR}/../src/ @@ -596,6 +619,7 @@ buildliner_add_app_unit_test(px4lib-matrix10f10-ut ${CMAKE_CURRENT_SOURCE_DIR}/../unit_test/Matrix10F10_test_utils.cpp ${CMAKE_CURRENT_SOURCE_DIR}/../unit_test/Matrix10F10_test_utils.hpp ${PX4LIB_SOURCES} + ${CMAKE_CURRENT_SOURCE_DIR}/../../../cfs_lib/fsw/src/cfs_utils.c INCLUDES ${CMAKE_CURRENT_SOURCE_DIR}/../src/ @@ -620,6 +644,7 @@ buildliner_add_app_unit_test(px4lib-matrix6f10-ut ${CMAKE_CURRENT_SOURCE_DIR}/../unit_test/Matrix6F10_test_utils.cpp ${CMAKE_CURRENT_SOURCE_DIR}/../unit_test/Matrix6F10_test_utils.hpp ${PX4LIB_SOURCES} + ${CMAKE_CURRENT_SOURCE_DIR}/../../../cfs_lib/fsw/src/cfs_utils.c INCLUDES ${CMAKE_CURRENT_SOURCE_DIR}/../src/ diff --git a/apps/px4lib/fsw/public_inc/px4lib.h b/apps/px4lib/fsw/public_inc/px4lib.h index fbdb0f8e0..4f8bcd520 100644 --- a/apps/px4lib/fsw/public_inc/px4lib.h +++ b/apps/px4lib/fsw/public_inc/px4lib.h @@ -49,9 +49,6 @@ enum Rotation { }; -uint64 PX4LIB_GetPX4TimeUs(void); -uint64 PX4LIB_GetPX4TimeMs(void); - #ifdef __cplusplus } diff --git a/apps/px4lib/fsw/src/math/Integrator.cpp b/apps/px4lib/fsw/src/math/Integrator.cpp index 22ef5dd00..af9134a8e 100644 --- a/apps/px4lib/fsw/src/math/Integrator.cpp +++ b/apps/px4lib/fsw/src/math/Integrator.cpp @@ -47,7 +47,7 @@ /* TODO */ -uint64 PX4LIB_GetPX4TimeUs(void) +uint64 CFE_TIME_GetTimeInMicros(void) { struct timespec ts; int returnCode = 0; @@ -160,7 +160,7 @@ Integrator::put_with_interval(uint32 interval_us, math::Vector3F &val, math::Vec { if (_last_integration_time == 0) { /* this is the first item in the integrator */ - uint64 now = PX4LIB_GetPX4TimeUs(); + uint64 now = CFE_TIME_GetTimeInMicros(); _last_integration_time = now; _last_reset_time = now; _last_val = val; diff --git a/apps/px4lib/fsw/src/px4lib.cpp b/apps/px4lib/fsw/src/px4lib.cpp index ba537382c..675004c44 100644 --- a/apps/px4lib/fsw/src/px4lib.cpp +++ b/apps/px4lib/fsw/src/px4lib.cpp @@ -77,74 +77,6 @@ int32 PX4LIB_LibInit(void) }/* End PX4LIB_LibInit */ -//int32 PX4LIB_MixerCallback(cpuaddr Handle, -// uint8 ControlGroup, -// uint8 ControlIndex, -// float &Control) -//{ -// Control = 0.0; -// return 0; -//} - - - -//uint64 PX4LIB_GetPX4TimeUs(void) -//{ -// struct timespec ts; -// int returnCode = 0; -// uint64 outTime = 0; -// -// returnCode = clock_gettime(CLOCK_MONOTONIC, &ts); -// if (-1 == returnCode) -// { -// OS_printf("PX4LIB_GetPX4Time clock_gettime errno: %i", errno); -// goto end_of_function; -// } -// -// outTime = (uint64)(ts.tv_sec) * 1000000; -// outTime += ts.tv_nsec / 1000; -// -//end_of_function: -// return outTime; -//} -// -// -// -//uint64 PX4LIB_GetPX4TimeMs(void) -//{ -// struct timespec ts; -// int returnCode = 0; -// uint64 outTime = 0; -// -// returnCode = clock_gettime(CLOCK_MONOTONIC, &ts); -// if (-1 == returnCode) -// { -// OS_printf("PX4LIB_GetPX4Time clock_gettime errno: %i", errno); -// goto end_of_function; -// } -// -// outTime = ts.tv_sec * 10000; -// outTime += ts.tv_nsec / 1000000; -// -//end_of_function: -// return outTime; -//} - - -uint64 PX4LIB_GetPX4TimeUs(void) -{ - return CFE_TIME_GetTimeInMicros(); -} - - - -uint64 PX4LIB_GetPX4TimeMs(void) -{ - uint64 result = CFE_TIME_GetTimeInMicros() / 1000; - - return result; -} - } diff --git a/apps/qae/fsw/for_build/CMakeLists.txt b/apps/qae/fsw/for_build/CMakeLists.txt index d39918e4d..7ab937689 100644 --- a/apps/qae/fsw/for_build/CMakeLists.txt +++ b/apps/qae/fsw/for_build/CMakeLists.txt @@ -46,6 +46,7 @@ buildliner_add_app_unit_test(qae-ut ${CMAKE_CURRENT_SOURCE_DIR}/../src/qae_tbldefs.h ${CMAKE_CURRENT_SOURCE_DIR}/../src/qae_version.h ${PX4LIB_LIB_SOURCES} + ${CMAKE_CURRENT_SOURCE_DIR}/../../../cfs_lib/fsw/src/cfs_utils.c INCLUDES ${CMAKE_CURRENT_SOURCE_DIR}/../src/ diff --git a/apps/qae/fsw/src/qae_app.cpp b/apps/qae/fsw/src/qae_app.cpp index 0da3d0a91..88529eb3b 100644 --- a/apps/qae/fsw/src/qae_app.cpp +++ b/apps/qae/fsw/src/qae_app.cpp @@ -744,7 +744,7 @@ void QAE::EstimateAttitude(void) } /* Time from previous iteration */ - time_now = PX4LIB_GetPX4TimeUs(); + time_now = CFE_TIME_GetTimeInMicros(); delta_time = (m_TimeLast > 0) ? ((time_now - m_TimeLast) / USEC_IN_SEC_F) : 0.00001f; m_TimeLast = time_now; diff --git a/apps/qae/fsw/unit_test/qae_stubs.c b/apps/qae/fsw/unit_test/qae_stubs.c index 081a25f7a..96f7b1060 100644 --- a/apps/qae/fsw/unit_test/qae_stubs.c +++ b/apps/qae/fsw/unit_test/qae_stubs.c @@ -33,8 +33,4 @@ #include "qae_stubs.h" -uint64 PX4LIB_GetPX4TimeUs(void) -{ - return 0; -} diff --git a/apps/rcin/fsw/for_build/CMakeLists.txt b/apps/rcin/fsw/for_build/CMakeLists.txt index dd7661c7e..401599b8f 100644 --- a/apps/rcin/fsw/for_build/CMakeLists.txt +++ b/apps/rcin/fsw/for_build/CMakeLists.txt @@ -71,6 +71,7 @@ buildliner_add_app_unit_test(rcin-ut ${CMAKE_CURRENT_SOURCE_DIR}/../src/rcin_events.h ${CMAKE_CURRENT_SOURCE_DIR}/../src/rcin_msg.h ${CMAKE_CURRENT_SOURCE_DIR}/../src/rcin_version.h + ${CMAKE_CURRENT_SOURCE_DIR}/../../../cfs_lib/fsw/src/cfs_utils.c INCLUDES ${CMAKE_CURRENT_SOURCE_DIR}/../src/ diff --git a/apps/rcin/fsw/unit_test/rcin_custom_stubs.c b/apps/rcin/fsw/unit_test/rcin_custom_stubs.c index 979c8741b..c663311ce 100644 --- a/apps/rcin/fsw/unit_test/rcin_custom_stubs.c +++ b/apps/rcin/fsw/unit_test/rcin_custom_stubs.c @@ -62,9 +62,3 @@ int32 RCIN_Custom_Init_EventFilters(int32 ind, CFE_EVS_BinFilter_t *EventTbl) { return 0; } - - -uint64 PX4LIB_GetPX4TimeUs(void) -{ - return 0; -} diff --git a/apps/sim/fsw/src/sim_app.cpp b/apps/sim/fsw/src/sim_app.cpp index 98db57a5d..da933b18c 100644 --- a/apps/sim/fsw/src/sim_app.cpp +++ b/apps/sim/fsw/src/sim_app.cpp @@ -701,7 +701,7 @@ void SIM::ListenerTask(void) //SensorAccel.Scaling = NEW_SCALE_G_DIGIT * CONSTANTS_ONE_G; SensorAccel.Scaling = 0; SensorAccel.Range_m_s2 = 0; - SensorAccel.Timestamp = PX4LIB_GetPX4TimeUs(); + SensorAccel.Timestamp = CFE_TIME_GetTimeInMicros(); //SensorAccel.XRaw = (int16)((decodedMsg.xacc / MG2MS2) / SensorAccel.Scaling); //SensorAccel.YRaw = (int16)((decodedMsg.yacc / MG2MS2) / SensorAccel.Scaling); //SensorAccel.ZRaw = (int16)((decodedMsg.zacc / MG2MS2) / SensorAccel.Scaling); @@ -741,7 +741,7 @@ void SIM::ListenerTask(void) #ifdef SIM_PUBLISH_GYRO SensorGyro.Scaling = 0; SensorGyro.Range = 0; - SensorGyro.Timestamp = PX4LIB_GetPX4TimeUs(); + SensorGyro.Timestamp = CFE_TIME_GetTimeInMicros(); //SensorGyro.XRaw = (int16)(decodedMsg.xgyro * 1000.0f); //SensorGyro.YRaw = (int16)(decodedMsg.ygyro * 1000.0f); //SensorGyro.ZRaw = (int16)(decodedMsg.zgyro * 1000.0f); @@ -777,7 +777,7 @@ void SIM::ListenerTask(void) { #endif #ifdef SIM_PUBLISH_MAG - SensorMag.Timestamp = PX4LIB_GetPX4TimeUs(); + SensorMag.Timestamp = CFE_TIME_GetTimeInMicros(); SensorMag.Scaling = 0; SensorMag.Range = 0; //SensorMag.XRaw = (int16)((decodedMsg.xmag * 1000.0f) / NEW_SCALE_GA_DIGIT); @@ -809,7 +809,7 @@ void SIM::ListenerTask(void) { #endif #ifdef SIM_PUBLISH_BARO - SensorBaro.Timestamp = PX4LIB_GetPX4TimeUs(); + SensorBaro.Timestamp = CFE_TIME_GetTimeInMicros(); SensorBaro.Pressure = decodedMsg.abs_pressure; #else //SIMLIB_SetPressure(decodedMsg.abs_pressure, decodedMsg.diff_pressure); @@ -823,7 +823,7 @@ void SIM::ListenerTask(void) { #endif #ifdef SIM_PUBLISH_BARO - SensorBaro.Timestamp = PX4LIB_GetPX4TimeUs(); + SensorBaro.Timestamp = CFE_TIME_GetTimeInMicros(); SensorBaro.Altitude = decodedMsg.pressure_alt; /* fake device ID */ //SensorBaro.DeviceID = 478459; @@ -870,7 +870,7 @@ void SIM::ListenerTask(void) mavlink_hil_gps_t decodedMsg; mavlink_msg_hil_gps_decode(&msg, &decodedMsg); #ifdef SIM_PUBLISH_GPS - VehicleGps.Timestamp = PX4LIB_GetPX4TimeUs(); + VehicleGps.Timestamp = CFE_TIME_GetTimeInMicros(); VehicleGps.Lat = decodedMsg.lat; VehicleGps.Lon = decodedMsg.lon; VehicleGps.Alt = decodedMsg.alt; @@ -909,7 +909,7 @@ void SIM::ListenerTask(void) mavlink_msg_hil_optical_flow_decode(&msg, &decodedMsg); #ifdef SIM_PUBLISH_OPTICAL_FLOW - OpticalFlow.Timestamp = PX4LIB_GetPX4TimeUs(); + OpticalFlow.Timestamp = CFE_TIME_GetTimeInMicros(); OpticalFlow.PixelFlowXIntegral = decodedMsg.integrated_x; OpticalFlow.PixelFlowYIntegral = decodedMsg.integrated_y; OpticalFlow.GyroXRateIntegral = decodedMsg.integrated_xgyro; @@ -952,7 +952,7 @@ void SIM::ListenerTask(void) sensorType = (PX4_DistanceSensorType_t) decodedMsg.type; sensorOrientation = (PX4_SensorOrientation_t) decodedMsg.orientation; #ifdef SIM_PUBLISH_DISTANCE_SENSOR - DistanceSensor.Timestamp = PX4LIB_GetPX4TimeUs(); + DistanceSensor.Timestamp = CFE_TIME_GetTimeInMicros(); DistanceSensor.MinDistance = decodedMsg.min_distance / 100.0f; DistanceSensor.MaxDistance = decodedMsg.max_distance / 100.0f; DistanceSensor.CurrentDistance = decodedMsg.current_distance / 100.0f; diff --git a/apps/sim/fsw/unit_test/sim_app_test.cpp b/apps/sim/fsw/unit_test/sim_app_test.cpp index afe2aa4db..218e626d1 100644 --- a/apps/sim/fsw/unit_test/sim_app_test.cpp +++ b/apps/sim/fsw/unit_test/sim_app_test.cpp @@ -487,12 +487,12 @@ void SIM_App_Test_AddTestCases(void) "Test_SIM_InitApp_Fail_InitEvent"); UtTest_Add(Test_SIM_InitApp_Fail_InitPipe, SIM_Test_Setup, SIM_Test_TearDown, "Test_SIM_InitApp_Fail_InitPipe"); - UtTest_Add(Test_SIM_InitApp_Fail_InitData, SIM_Test_Setup, SIM_Test_TearDown, - "Test_SIM_InitApp_Fail_InitData"); + //UtTest_Add(Test_SIM_InitApp_Fail_InitData, SIM_Test_Setup, SIM_Test_TearDown, + // "Test_SIM_InitApp_Fail_InitData"); UtTest_Add(Test_SIM_InitApp_Fail_InitConfigTbl, SIM_Test_Setup, SIM_Test_TearDown, "Test_SIM_InitApp_Fail_InitConfigTbl"); - UtTest_Add(Test_SIM_InitApp_Nominal, SIM_Test_Setup, SIM_Test_TearDown, - "Test_SIM_InitApp_Nominal"); + //UtTest_Add(Test_SIM_InitApp_Nominal, SIM_Test_Setup, SIM_Test_TearDown, + // "Test_SIM_InitApp_Nominal"); UtTest_Add(Test_SIM_AppMain_Fail_RegisterApp, SIM_Test_Setup, SIM_Test_TearDown, "Test_SIM_AppMain_Fail_RegisterApp"); @@ -502,8 +502,8 @@ void SIM_App_Test_AddTestCases(void) "Test_SIM_AppMain_Fail_AcquireConfigPtrs"); UtTest_Add(Test_SIM_AppMain_InvalidSchMessage, SIM_Test_Setup, SIM_Test_TearDown, "Test_SIM_AppMain_InvalidSchMessage"); - UtTest_Add(Test_SIM_AppMain_Nominal_SendHK, SIM_Test_Setup, SIM_Test_TearDown, - "Test_SIM_AppMain_Nominal_SendHK"); + //UtTest_Add(Test_SIM_AppMain_Nominal_SendHK, SIM_Test_Setup, SIM_Test_TearDown, + // "Test_SIM_AppMain_Nominal_SendHK"); UtTest_Add(Test_SIM_AppMain_Nominal_Wakeup, SIM_Test_Setup, SIM_Test_TearDown, "Test_SIM_AppMain_Nominal_Wakeup"); diff --git a/apps/sim/fsw/unit_test/sim_custom_stubs.c b/apps/sim/fsw/unit_test/sim_custom_stubs.c index 14b5a8341..5b149130f 100644 --- a/apps/sim/fsw/unit_test/sim_custom_stubs.c +++ b/apps/sim/fsw/unit_test/sim_custom_stubs.c @@ -32,7 +32,7 @@ *****************************************************************************/ #include "cfe.h" -uint64 PX4LIB_GetPX4TimeUs(void) +uint64 CFE_TIME_GetTimeInMicros(void) { return 0; } diff --git a/apps/sonar/fsw/src/sonar_app.cpp b/apps/sonar/fsw/src/sonar_app.cpp index 31a4b6bbd..e80f88fad 100644 --- a/apps/sonar/fsw/src/sonar_app.cpp +++ b/apps/sonar/fsw/src/sonar_app.cpp @@ -451,7 +451,7 @@ void SONAR::ReportHousekeeping() /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ void SONAR::ReportDistance() { - DistanceSensor.Timestamp = PX4LIB_GetPX4TimeUs(); + DistanceSensor.Timestamp = CFE_TIME_GetTimeInMicros(); CFE_SB_SendMsg((CFE_SB_Msg_t*)&DistanceSensor); } diff --git a/apps/sonar/fsw/unit_test/sonar_custom_stubs.c b/apps/sonar/fsw/unit_test/sonar_custom_stubs.c index 6e7007de9..c9761d6da 100644 --- a/apps/sonar/fsw/unit_test/sonar_custom_stubs.c +++ b/apps/sonar/fsw/unit_test/sonar_custom_stubs.c @@ -35,16 +35,4 @@ -uint64 PX4LIB_GetPX4TimeUs(void) -{ - return 0; -} - - -uint64 PX4LIB_GetPX4TimeMs(void) -{ - return 0; -} - - diff --git a/apps/ulr/fsw/for_build/CMakeLists.txt b/apps/ulr/fsw/for_build/CMakeLists.txt index f39f9871d..78c4aa5b5 100644 --- a/apps/ulr/fsw/for_build/CMakeLists.txt +++ b/apps/ulr/fsw/for_build/CMakeLists.txt @@ -43,6 +43,7 @@ buildliner_add_app_unit_test(ulr-ut ${CMAKE_CURRENT_SOURCE_DIR}/../src/ulr_msg.h ${CMAKE_CURRENT_SOURCE_DIR}/../src/ulr_version.h ${PX4LIB_LIB_SOURCES} + ${CMAKE_CURRENT_SOURCE_DIR}/../../../cfs_lib/fsw/src/cfs_utils.c INCLUDES ${CMAKE_CURRENT_SOURCE_DIR}/../src/ diff --git a/apps/ulr/fsw/src/ulr_app.cpp b/apps/ulr/fsw/src/ulr_app.cpp index 6abdbf6d3..1b8ba69aa 100644 --- a/apps/ulr/fsw/src/ulr_app.cpp +++ b/apps/ulr/fsw/src/ulr_app.cpp @@ -793,7 +793,7 @@ void ULR::ListenerTaskMain(void) if(IsChecksumOk()) { OS_MutSemTake(Mutex); - DistanceSensor.Timestamp = PX4LIB_GetPX4TimeUs(); + DistanceSensor.Timestamp = CFE_TIME_GetTimeInMicros(); DistanceSensor.MinDistance = ULR_MIN_DISTANCE; DistanceSensor.MaxDistance = ULR_MAX_DISTANCE; DistanceSensor.CurrentDistance = HeightFilter.apply( ((UartMessage.AltitudeH << 8) + UartMessage.AltitudeL) / 100.0f); diff --git a/apps/ulr/fsw/unit_test/stubs/ut_ulr_custom_hooks.cpp b/apps/ulr/fsw/unit_test/stubs/ut_ulr_custom_hooks.cpp index 96ea90c78..056bd5bc0 100644 --- a/apps/ulr/fsw/unit_test/stubs/ut_ulr_custom_hooks.cpp +++ b/apps/ulr/fsw/unit_test/stubs/ut_ulr_custom_hooks.cpp @@ -45,7 +45,7 @@ int32 UT_ReadDevice(uint8 *Buffer, uint32 *Size) } -uint64 UT_PX4LIB_GetPX4TimeUs(void) +uint64 UT_CFE_TIME_GetTimeInMicros(void) { return 0; } diff --git a/apps/ulr/fsw/unit_test/stubs/ut_ulr_custom_hooks.h b/apps/ulr/fsw/unit_test/stubs/ut_ulr_custom_hooks.h index 9bde310b7..2904e6d7c 100644 --- a/apps/ulr/fsw/unit_test/stubs/ut_ulr_custom_hooks.h +++ b/apps/ulr/fsw/unit_test/stubs/ut_ulr_custom_hooks.h @@ -38,6 +38,6 @@ uint32 UT_InitDevice(void); int32 UT_ReadDevice(uint8 *Buffer, uint32 *Size); -uint64 UT_PX4LIB_GetPX4TimeUs(void); +uint64 UT_CFE_TIME_GetTimeInMicros(void); #endif diff --git a/apps/ulr/fsw/unit_test/stubs/ut_ulr_custom_stubs.cpp b/apps/ulr/fsw/unit_test/stubs/ut_ulr_custom_stubs.cpp index 1eb056036..fb6816815 100644 --- a/apps/ulr/fsw/unit_test/stubs/ut_ulr_custom_stubs.cpp +++ b/apps/ulr/fsw/unit_test/stubs/ut_ulr_custom_stubs.cpp @@ -51,7 +51,7 @@ void Ut_ULR_Custom_SetFunctionHook(uint32 Index, void *FunPtr) { if (Index == UT_ULR_CUSTOM_INITDEVICE_INDEX) { Ut_ULR_Custom_HookTable.InitDevice = (uint32 (*)(void))FunPtr; } else if (Index == UT_ULR_CUSTOM_READDEVICE_INDEX) { Ut_ULR_Custom_HookTable.ReadDevice = (int32 (*)(uint8 *, uint32 *))FunPtr; } - else if (Index == UT_ULR_PX4LIB_GETPX4TIMEUS_INDEX) { Ut_ULR_Custom_HookTable.PX4LIB_GetPX4TimeUs = (uint64 (*)(void))FunPtr; } + else if (Index == UT_ULR_CFE_TIME_GetTimeInMicros_INDEX) { Ut_ULR_Custom_HookTable.CFE_TIME_GetTimeInMicros = (uint64 (*)(void))FunPtr; } else { printf("Unsupported ULR_CUSTOM Index In SetFunctionHook Call %lu\n", Index); @@ -118,13 +118,13 @@ int32 ULR::ReadDevice(uint8 *Buffer, uint32 *Size) return Ut_ULR_Custom_HookTable.ReadDevice(Buffer, Size); } -extern "C" uint64 PX4LIB_GetPX4TimeUs(void) +extern "C" uint64 CFE_TIME_GetTimeInMicros(void) { /* Check for specified return */ - if (Ut_ULR_Custom_UseReturnCode(UT_ULR_PX4LIB_GETPX4TIMEUS_INDEX)) - return Ut_ULR_Custom_ReturnCodeTable[UT_ULR_PX4LIB_GETPX4TIMEUS_INDEX].Value; + if (Ut_ULR_Custom_UseReturnCode(UT_ULR_CFE_TIME_GetTimeInMicros_INDEX)) + return Ut_ULR_Custom_ReturnCodeTable[UT_ULR_CFE_TIME_GetTimeInMicros_INDEX].Value; /* Check for Function Hook */ - if (Ut_ULR_Custom_HookTable.PX4LIB_GetPX4TimeUs) - return Ut_ULR_Custom_HookTable.PX4LIB_GetPX4TimeUs(); + if (Ut_ULR_Custom_HookTable.CFE_TIME_GetTimeInMicros) + return Ut_ULR_Custom_HookTable.CFE_TIME_GetTimeInMicros(); } diff --git a/apps/ulr/fsw/unit_test/stubs/ut_ulr_custom_stubs.h b/apps/ulr/fsw/unit_test/stubs/ut_ulr_custom_stubs.h index eea2a857c..e9c78f381 100644 --- a/apps/ulr/fsw/unit_test/stubs/ut_ulr_custom_stubs.h +++ b/apps/ulr/fsw/unit_test/stubs/ut_ulr_custom_stubs.h @@ -38,7 +38,7 @@ typedef enum { UT_ULR_CUSTOM_INITDEVICE_INDEX, UT_ULR_CUSTOM_READDEVICE_INDEX, - UT_ULR_PX4LIB_GETPX4TIMEUS_INDEX, + UT_ULR_CFE_TIME_GetTimeInMicros_INDEX, UT_ULR_CUSTOM_MAX_INDEX } Ut_ULR_Custom_INDEX_t; @@ -46,7 +46,7 @@ typedef struct { uint32 (*InitDevice)(void); int32 (*ReadDevice)(uint8 *Buffer, uint32 *Size); - uint64 (*PX4LIB_GetPX4TimeUs)(void); + uint64 (*CFE_TIME_GetTimeInMicros)(void); } Ut_ULR_Custom_HookTable_t; typedef struct diff --git a/apps/vm/fsw/src/vm_app.cpp b/apps/vm/fsw/src/vm_app.cpp index d5fb7a114..eec1710ae 100644 --- a/apps/vm/fsw/src/vm_app.cpp +++ b/apps/vm/fsw/src/vm_app.cpp @@ -1316,7 +1316,7 @@ osalbool VM::IsVehicleArmed() /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ uint64 VM::TimeElapsed(uint64 *TimePtr) { - uint64 now = PX4LIB_GetPX4TimeUs(); + uint64 now = CFE_TIME_GetTimeInMicros(); uint64 delta = now - *TimePtr; return delta; @@ -1331,7 +1331,7 @@ uint64 VM::TimeElapsed(uint64 *TimePtr) /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ uint64 VM::TimeNow() { - uint64 now = PX4LIB_GetPX4TimeUs(); + uint64 now = CFE_TIME_GetTimeInMicros(); return now; } diff --git a/apps/vm/fsw/unit_test/vm_stubs.cpp b/apps/vm/fsw/unit_test/vm_stubs.cpp index 7a27ae09d..c468db96c 100644 --- a/apps/vm/fsw/unit_test/vm_stubs.cpp +++ b/apps/vm/fsw/unit_test/vm_stubs.cpp @@ -1,7 +1 @@ #include "cfe.h" - - -extern "C" uint64 PX4LIB_GetPX4TimeUs(void) -{ - return 0; -} From 3e3b0d8da63a4f4782ba2920a2582eb5b59e73ac Mon Sep 17 00:00:00 2001 From: Mathew Benson Date: Thu, 25 Feb 2021 20:53:10 -0600 Subject: [PATCH 180/370] Fixed the ocpoc build. --- apps/hmc5883/fsw/src/hmc5883_app.cpp | 4 +- apps/mpu6050/fsw/for_build/CMakeLists.txt | 2 - .../fsw/for_build/mpu6050_msg_overrides.json | 52 ------------------- apps/mpu9250/fsw/src/mpu9250_app.cpp | 14 ++--- apps/ms5611/fsw/src/ms5611_app.cpp | 2 +- apps/ulr/fsw/src/ulr_app.cpp | 3 +- config/ocpoc/shared/apps/gps/src/gps_custom.c | 4 +- .../gps/src/gps_interface_uart/gps_serial.c | 18 ++++--- .../ocpoc/shared/apps/rcin/src/rcin_custom.c | 4 +- 9 files changed, 26 insertions(+), 77 deletions(-) delete mode 100644 apps/mpu6050/fsw/for_build/mpu6050_msg_overrides.json diff --git a/apps/hmc5883/fsw/src/hmc5883_app.cpp b/apps/hmc5883/fsw/src/hmc5883_app.cpp index 2353f9367..40f2e90d6 100644 --- a/apps/hmc5883/fsw/src/hmc5883_app.cpp +++ b/apps/hmc5883/fsw/src/hmc5883_app.cpp @@ -700,13 +700,13 @@ void HMC5883::ReadDevice(void) boolean returnBool = FALSE; static uint8 temp_count = 0; int16 temp = 0; - uint64 timeStamp = CFE_TIME_GetTimeInMicros(); + CFE_TIME_SysTime_t timeStamp = CFE_TIME_GetTime(); float xraw_f = 0; float yraw_f = 0; float zraw_f = 0; /* Timestamp */ - SensorMagMsg.Timestamp = timeStamp; + CFE_SB_SetMsgTime((CFE_SB_MsgPtr_t)&SensorMagMsg, timeStamp); /* Mag */ returnBool = HMC5883_Custom_Measure(&SensorMagMsg.XRaw, &SensorMagMsg.YRaw, &SensorMagMsg.ZRaw); diff --git a/apps/mpu6050/fsw/for_build/CMakeLists.txt b/apps/mpu6050/fsw/for_build/CMakeLists.txt index ef67defda..ca43cb3af 100644 --- a/apps/mpu6050/fsw/for_build/CMakeLists.txt +++ b/apps/mpu6050/fsw/for_build/CMakeLists.txt @@ -50,8 +50,6 @@ buildliner_add_app_def(mpu6050 REFERENCE_CONFIG ${PROJECT_SOURCE_DIR}/apps/mpu6050/fsw/mission_inc ${PROJECT_SOURCE_DIR}/apps/mpu6050/fsw/platform_inc - - DESIGN_DEFINITION ${CMAKE_CURRENT_SOURCE_DIR}/mpu6050_msg_overrides.json ) buildliner_add_app_unit_test(mpu6050-ut diff --git a/apps/mpu6050/fsw/for_build/mpu6050_msg_overrides.json b/apps/mpu6050/fsw/for_build/mpu6050_msg_overrides.json deleted file mode 100644 index 38a549d15..000000000 --- a/apps/mpu6050/fsw/for_build/mpu6050_msg_overrides.json +++ /dev/null @@ -1,52 +0,0 @@ -{ - "Airliner": { - "apps": { - "MPU6050": { - "operations": { - "Noop": { "airliner_cc": 0, "macro": "MPU6050_CMD_MID", "airliner_msg": "" }, - "Reset": { "airliner_cc": 1, "macro": "MPU6050_CMD_MID", "airliner_msg": "" }, - "SendDiag": { "airliner_cc": 2, "macro": "MPU6050_CMD_MID", "airliner_msg": "" }, - "SetCalibration": { "airliner_cc": 3, "macro": "MPU6050_CMD_MID", "airliner_msg": "" }, - "MPU9250_DiagPacket_t": { "airliner_cc": -1, "macro": "MPU6050_DIAG_TLM_MID", "airliner_msg": "MPU6050_DiagPacket_t" }, - "MPU9250_HkTlm_t": { "airliner_cc": -1, "macro": "MPU6050_HK_TLM_MID", "airliner_msg": "MPU6050_HkTlm_t" }, - "Measure": { "airliner_cc": 0, "macro": "MPU6050_MEASURE_MID", "airliner_msg": "" }, - "SendHk": { "airliner_cc": 0, "macro": "MPU6050_SEND_HK_MID", "airliner_msg": "" } - }, - "scheduler": { - "activities": [ - "MPU6050_MEASURE_MID", - "MPU6050_SEND_HK_MID" - ], - "groups": [ - { "id": 1, "macro": "MPU6050_SCH_GRP" } - ] - }, - "events": [ - {"macro": "MPU6050_INIT_INF_EID", "id": 1}, - {"macro": "MPU6050_CMD_NOOP_EID", "id": 2}, - {"macro": "MPU6050_SUBSCRIBE_ERR_EID", "id": 3}, - {"macro": "MPU6050_PIPE_INIT_ERR_EID", "id": 4}, - {"macro": "MPU6050_CFGTBL_MANAGE_ERR_EID", "id": 5}, - {"macro": "MPU6050_CFGTBL_GETADDR_ERR_EID", "id": 6}, - {"macro": "MPU6050_RCVMSG_ERR_EID", "id": 7}, - {"macro": "MPU6050_MSGID_ERR_EID", "id": 8}, - {"macro": "MPU6050_CC_ERR_EID", "id": 9}, - {"macro": "MPU6050_MSGLEN_ERR_EID", "id": 10}, - {"macro": "MPU6050_CFGTBL_REG_ERR_EID", "id": 11}, - {"macro": "MPU6050_CFGTBL_LOAD_ERR_EID", "id": 12}, - {"macro": "MPU6050_UNINIT_ERR_EID", "id": 13}, - {"macro": "MPU6050_INIT_ERR_EID", "id": 14}, - {"macro": "MPU6050_READ_ERR_EID", "id": 15}, - {"macro": "MPU6050_VALIDATE_ERR_EID", "id": 16}, - {"macro": "MPU6050_CALIBRATE_INF_EID", "id": 17}, - {"macro": "MPU6050_CALIBRATE_ERR_EID", "id": 18} - ], - "config": { - }, - "tables": [ - {"id": "CONFIG_TBL", "title": "MPU6050 Configuration", "isDumpTable": false} - ] - } - } - } -} diff --git a/apps/mpu9250/fsw/src/mpu9250_app.cpp b/apps/mpu9250/fsw/src/mpu9250_app.cpp index 807438eb2..400295f8b 100644 --- a/apps/mpu9250/fsw/src/mpu9250_app.cpp +++ b/apps/mpu9250/fsw/src/mpu9250_app.cpp @@ -47,6 +47,7 @@ #include "math/Vector3F.hpp" #include "px4lib.h" #include "px4lib_msgids.h" +#include "cfs_utils.h" /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ @@ -775,7 +776,7 @@ void MPU9250::ReadDevice(void) float calX_f = 0; float calY_f = 0; float calZ_f = 0; - uint64 timeStamp = 0; + CFE_TIME_SysTime_t timeStamp; uint16 rawTemp = 0; int16 calTemp = 0; boolean returnBool = TRUE; @@ -788,12 +789,11 @@ void MPU9250::ReadDevice(void) math::Vector3F aval_integrated; /* Get a timestamp */ - timeStamp = CFE_TIME_GetTimeInMicros(); + timeStamp = CFE_TIME_GetTime(); /* Set measurement timestamps */ - //SensorMag.Timestamp = timeStamp; - SensorGyro.Timestamp = timeStamp; - SensorAccel.Timestamp = timeStamp; + CFE_SB_SetMsgTime((CFE_SB_MsgPtr_t)&SensorGyro, timeStamp); + CFE_SB_SetMsgTime((CFE_SB_MsgPtr_t)&SensorAccel, timeStamp); /* Gyro */ returnBool = MPU9250_Read_Gyro(&SensorGyro.XRaw, &SensorGyro.YRaw, &SensorGyro.ZRaw); @@ -835,7 +835,7 @@ void MPU9250::ReadDevice(void) gval_integrated[1] = 0.0f; gval_integrated[2] = 0.0f; - _gyro_int.put(timeStamp, gval, gval_integrated, SensorGyro.IntegralDt); + _gyro_int.put(CFE_TIME_ConvertTimeToMicros(timeStamp), gval, gval_integrated, SensorGyro.IntegralDt); SensorGyro.XIntegral = gval_integrated[0]; SensorGyro.YIntegral = gval_integrated[1]; @@ -887,7 +887,7 @@ void MPU9250::ReadDevice(void) aval_integrated[1] = 0.0f; aval_integrated[2] = 0.0f; - _accel_int.put(timeStamp, aval, aval_integrated, SensorAccel.IntegralDt); + _accel_int.put(CFE_TIME_ConvertTimeToMicros(timeStamp), aval, aval_integrated, SensorAccel.IntegralDt); SensorAccel.XIntegral = aval_integrated[0]; SensorAccel.YIntegral = aval_integrated[1]; diff --git a/apps/ms5611/fsw/src/ms5611_app.cpp b/apps/ms5611/fsw/src/ms5611_app.cpp index 8e06a4978..20681c121 100644 --- a/apps/ms5611/fsw/src/ms5611_app.cpp +++ b/apps/ms5611/fsw/src/ms5611_app.cpp @@ -890,7 +890,7 @@ void MS5611::ReadDevice(void) else { /* Stamp time */ - SensorBaro.Timestamp = CFE_TIME_GetTimeInMicros(); + CFE_SB_TimeStampMsg((CFE_SB_Msg_t*)&SensorBaro); /* Convert to Celsius */ SensorBaro.Temperature = temperature / 100.0f; /* convert to millibar */ diff --git a/apps/ulr/fsw/src/ulr_app.cpp b/apps/ulr/fsw/src/ulr_app.cpp index 1b8ba69aa..3a147e7a3 100644 --- a/apps/ulr/fsw/src/ulr_app.cpp +++ b/apps/ulr/fsw/src/ulr_app.cpp @@ -527,7 +527,6 @@ void ULR::ReportHousekeeping() void ULR::ReportDistance() { OS_MutSemTake(Mutex); - CFE_SB_TimeStampMsg((CFE_SB_Msg_t*)&DistanceSensor); CFE_SB_SendMsg((CFE_SB_Msg_t*)&DistanceSensor); OS_MutSemGive(Mutex); } @@ -793,7 +792,7 @@ void ULR::ListenerTaskMain(void) if(IsChecksumOk()) { OS_MutSemTake(Mutex); - DistanceSensor.Timestamp = CFE_TIME_GetTimeInMicros(); + CFE_SB_TimeStampMsg((CFE_SB_Msg_t*)&DistanceSensor); DistanceSensor.MinDistance = ULR_MIN_DISTANCE; DistanceSensor.MaxDistance = ULR_MAX_DISTANCE; DistanceSensor.CurrentDistance = HeightFilter.apply( ((UartMessage.AltitudeH << 8) + UartMessage.AltitudeL) / 100.0f); diff --git a/config/ocpoc/shared/apps/gps/src/gps_custom.c b/config/ocpoc/shared/apps/gps/src/gps_custom.c index 2c5543fce..11ffc4b91 100644 --- a/config/ocpoc/shared/apps/gps/src/gps_custom.c +++ b/config/ocpoc/shared/apps/gps/src/gps_custom.c @@ -157,8 +157,8 @@ boolean GPS_Custom_Measure_PositionMsg(PX4_VehicleGpsPositionMsg_t *Measure) //copyDataPtr = CFE_SB_GetUserData((CFE_SB_MsgPtr_t)Measure); //memcpy(copyDataPtr, userDataPtr, userDataLength); - Measure->Timestamp = GPS_AppCustomData.GpsPositionMsg.Timestamp; - Measure->TimeUtcUsec = GPS_AppCustomData.GpsPositionMsg.TimeUtcUsec; + CFE_SB_CopyMsgTime((CFE_SB_MsgPtr_t)&Measure, (CFE_SB_MsgPtr_t)&GPS_AppCustomData.GpsPositionMsg); + Measure->TimeUtc = GPS_AppCustomData.GpsPositionMsg.TimeUtc; Measure->Lat = GPS_AppCustomData.GpsPositionMsg.Lat; Measure->Lon = GPS_AppCustomData.GpsPositionMsg.Lon; Measure->Alt = GPS_AppCustomData.GpsPositionMsg.Alt; diff --git a/config/ocpoc/shared/apps/gps/src/gps_interface_uart/gps_serial.c b/config/ocpoc/shared/apps/gps/src/gps_interface_uart/gps_serial.c index 5f0b732a9..3439478cc 100644 --- a/config/ocpoc/shared/apps/gps/src/gps_interface_uart/gps_serial.c +++ b/config/ocpoc/shared/apps/gps/src/gps_interface_uart/gps_serial.c @@ -798,6 +798,8 @@ boolean GPS_Custom_Read_and_Parse(const uint32 timeout) } case GPS_NAV_NAVPVT_MID: { + CFE_TIME_SysTime_t currentTime; + //OS_printf("IN GPS_NAV_NAVPVT_MID\n"); GPS_NAV_PVT_t *msgIn = (GPS_NAV_PVT_t*) CFE_SB_GetUserData((CFE_SB_Msg_t*)&GPS_AppCustomData.Message); OS_MutSemTake(GPS_AppCustomData.MutexPosition); @@ -893,16 +895,18 @@ boolean GPS_Custom_Read_and_Parse(const uint32 timeout) //setClock(ts); - GPS_AppCustomData.GpsPositionMsg.TimeUtcUsec = ((uint64)epoch) * 1000000ULL; - GPS_AppCustomData.GpsPositionMsg.TimeUtcUsec += msgIn->nano / 1000; + GPS_AppCustomData.GpsPositionMsg.TimeUtc.Seconds = epoch; + GPS_AppCustomData.GpsPositionMsg.TimeUtc.Subseconds = CFE_TIME_Micro2SubSecs(msgIn->nano / 1000); } else { - GPS_AppCustomData.GpsPositionMsg.TimeUtcUsec = 0; + CFE_TIME_ClearTime(&GPS_AppCustomData.GpsPositionMsg.TimeUtc); } } - - GPS_AppCustomData.GpsPositionMsg.Timestamp = PX4LIB_GetPX4TimeUs(); + + currentTime = CFE_TIME_GetTime(); + CFE_SB_SetMsgTime((CFE_SB_MsgPtr_t)&GPS_AppCustomData.GpsPositionMsg, currentTime); + GPS_AppCustomData.GpsPositionMsg.TimeUtc = CFE_TIME_GetTime(); //GPS_AppCustomData.LastTimeStamp = GPS_AppCustomData.GpsPositionMsg.Timestamp; /* TODO position and velocity update rate functions @@ -950,8 +954,8 @@ boolean GPS_Custom_Read_and_Parse(const uint32 timeout) GPS_AppCustomData.GpsSatInfoMsg.SVID[j] = (uint8)(msgIn->numCh[j].svid); } - - GPS_AppCustomData.GpsSatInfoMsg.Timestamp = PX4LIB_GetPX4TimeUs(); + + CFE_SB_TimeStampMsg((CFE_SB_Msg_t*)&GPS_AppCustomData.GpsSatInfoMsg); OS_MutSemGive(GPS_AppCustomData.MutexSatInfo); break; diff --git a/config/ocpoc/shared/apps/rcin/src/rcin_custom.c b/config/ocpoc/shared/apps/rcin/src/rcin_custom.c index 146b14d84..39dcbe67c 100644 --- a/config/ocpoc/shared/apps/rcin/src/rcin_custom.c +++ b/config/ocpoc/shared/apps/rcin/src/rcin_custom.c @@ -455,7 +455,7 @@ boolean RCIN_Custom_PWM_Translate(uint8 *data, int size) & 0x07FF) * RCIN_SBUS_SCALE_FACTOR + .5f) + RCIN_SBUS_SCALE_OFFSET; /* Timestamp */ - RCIN_AppCustomData.Measure.Timestamp = PX4LIB_GetPX4TimeUs(); + CFE_SB_TimeStampMsg((CFE_SB_Msg_t*)&RCIN_AppCustomData.Measure); /* Channel count */ RCIN_AppCustomData.Measure.ChannelCount = RCIN_SBUS_CHANNEL_COUNT; @@ -775,7 +775,7 @@ boolean RCIN_Custom_Measure(PX4_InputRcMsg_t *Measure) returnBool = FALSE; } - Measure->Timestamp = RCIN_AppCustomData.Measure.Timestamp; + CFE_SB_CopyMsgTime((CFE_SB_MsgPtr_t)&Measure, (CFE_SB_MsgPtr_t)&RCIN_AppCustomData.Measure); Measure->ChannelCount = RCIN_AppCustomData.Measure.ChannelCount; Measure->RSSI = RCIN_AppCustomData.Measure.RSSI; Measure->RcLostFrameCount = RCIN_AppCustomData.Measure.RcLostFrameCount; From e8b78a5c023770359be03b9ce9455b7ce17ca100 Mon Sep 17 00:00:00 2001 From: Mathew Benson Date: Thu, 25 Feb 2021 21:19:56 -0600 Subject: [PATCH 181/370] Most unit tests are passing now. --- apps/cvt/fsw/unit_test/cvtlib_test.c | 1 - apps/hmc5883/fsw/unit_test/hmc5883_custom_stubs.c | 6 ------ apps/mpu9250/fsw/unit_test/mpu9250_custom_stubs.c | 6 ------ apps/sonar/fsw/src/sonar_app.cpp | 2 +- apps/ulr/fsw/unit_test/stubs/ut_ulr_custom_hooks.cpp | 6 ------ apps/ulr/fsw/unit_test/stubs/ut_ulr_custom_hooks.h | 1 - apps/ulr/fsw/unit_test/stubs/ut_ulr_custom_stubs.cpp | 12 +----------- apps/ulr/fsw/unit_test/stubs/ut_ulr_custom_stubs.h | 2 -- 8 files changed, 2 insertions(+), 34 deletions(-) diff --git a/apps/cvt/fsw/unit_test/cvtlib_test.c b/apps/cvt/fsw/unit_test/cvtlib_test.c index 5139b621e..4163dd5f8 100644 --- a/apps/cvt/fsw/unit_test/cvtlib_test.c +++ b/apps/cvt/fsw/unit_test/cvtlib_test.c @@ -80,7 +80,6 @@ void Test_CVTLIB_GetContainer_Nominal(void) void Test_CVTLIB_GetContainer_ExhaustEntries(void) { int32 status = 0; - char name[CVT_CONTAINER_NAME_LENGTH]; uint32 size = 100; CVT_ContainerID_t id; uint32 i = 0; diff --git a/apps/hmc5883/fsw/unit_test/hmc5883_custom_stubs.c b/apps/hmc5883/fsw/unit_test/hmc5883_custom_stubs.c index 894b40e4c..031fc9e68 100644 --- a/apps/hmc5883/fsw/unit_test/hmc5883_custom_stubs.c +++ b/apps/hmc5883/fsw/unit_test/hmc5883_custom_stubs.c @@ -80,12 +80,6 @@ boolean HMC5883_Custom_Measure(int16 *X, int16 *Y, int16 *Z) } -uint64 CFE_TIME_GetTimeInMicros(void) -{ - return 0; -} - - boolean HMC5883_Custom_ValidateID(void) { return TRUE; diff --git a/apps/mpu9250/fsw/unit_test/mpu9250_custom_stubs.c b/apps/mpu9250/fsw/unit_test/mpu9250_custom_stubs.c index 86093e548..68e4ce7fd 100644 --- a/apps/mpu9250/fsw/unit_test/mpu9250_custom_stubs.c +++ b/apps/mpu9250/fsw/unit_test/mpu9250_custom_stubs.c @@ -133,12 +133,6 @@ boolean MPU9250_Read_MagDeviceID(uint8 *Value) } -uint64 CFE_TIME_GetTimeInMicros(void) -{ - return MPU9250_Custom_Returns.MPU9250_Get_Time_Return; -} - - boolean MPU9250_Apply_Platform_Rotation(float *X, float *Y, float *Z) { return TRUE; diff --git a/apps/sonar/fsw/src/sonar_app.cpp b/apps/sonar/fsw/src/sonar_app.cpp index e80f88fad..86187f9b4 100644 --- a/apps/sonar/fsw/src/sonar_app.cpp +++ b/apps/sonar/fsw/src/sonar_app.cpp @@ -451,7 +451,7 @@ void SONAR::ReportHousekeeping() /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ void SONAR::ReportDistance() { - DistanceSensor.Timestamp = CFE_TIME_GetTimeInMicros(); + CFE_SB_TimeStampMsg((CFE_SB_Msg_t*)&DistanceSensor); CFE_SB_SendMsg((CFE_SB_Msg_t*)&DistanceSensor); } diff --git a/apps/ulr/fsw/unit_test/stubs/ut_ulr_custom_hooks.cpp b/apps/ulr/fsw/unit_test/stubs/ut_ulr_custom_hooks.cpp index 056bd5bc0..d46989fb6 100644 --- a/apps/ulr/fsw/unit_test/stubs/ut_ulr_custom_hooks.cpp +++ b/apps/ulr/fsw/unit_test/stubs/ut_ulr_custom_hooks.cpp @@ -43,9 +43,3 @@ int32 UT_ReadDevice(uint8 *Buffer, uint32 *Size) { return 0; } - - -uint64 UT_CFE_TIME_GetTimeInMicros(void) -{ - return 0; -} diff --git a/apps/ulr/fsw/unit_test/stubs/ut_ulr_custom_hooks.h b/apps/ulr/fsw/unit_test/stubs/ut_ulr_custom_hooks.h index 2904e6d7c..1674e88e3 100644 --- a/apps/ulr/fsw/unit_test/stubs/ut_ulr_custom_hooks.h +++ b/apps/ulr/fsw/unit_test/stubs/ut_ulr_custom_hooks.h @@ -38,6 +38,5 @@ uint32 UT_InitDevice(void); int32 UT_ReadDevice(uint8 *Buffer, uint32 *Size); -uint64 UT_CFE_TIME_GetTimeInMicros(void); #endif diff --git a/apps/ulr/fsw/unit_test/stubs/ut_ulr_custom_stubs.cpp b/apps/ulr/fsw/unit_test/stubs/ut_ulr_custom_stubs.cpp index fb6816815..3059c3dec 100644 --- a/apps/ulr/fsw/unit_test/stubs/ut_ulr_custom_stubs.cpp +++ b/apps/ulr/fsw/unit_test/stubs/ut_ulr_custom_stubs.cpp @@ -51,7 +51,6 @@ void Ut_ULR_Custom_SetFunctionHook(uint32 Index, void *FunPtr) { if (Index == UT_ULR_CUSTOM_INITDEVICE_INDEX) { Ut_ULR_Custom_HookTable.InitDevice = (uint32 (*)(void))FunPtr; } else if (Index == UT_ULR_CUSTOM_READDEVICE_INDEX) { Ut_ULR_Custom_HookTable.ReadDevice = (int32 (*)(uint8 *, uint32 *))FunPtr; } - else if (Index == UT_ULR_CFE_TIME_GetTimeInMicros_INDEX) { Ut_ULR_Custom_HookTable.CFE_TIME_GetTimeInMicros = (uint64 (*)(void))FunPtr; } else { printf("Unsupported ULR_CUSTOM Index In SetFunctionHook Call %lu\n", Index); @@ -116,15 +115,6 @@ int32 ULR::ReadDevice(uint8 *Buffer, uint32 *Size) /* Check for Function Hook */ if (Ut_ULR_Custom_HookTable.ReadDevice) return Ut_ULR_Custom_HookTable.ReadDevice(Buffer, Size); -} - -extern "C" uint64 CFE_TIME_GetTimeInMicros(void) -{ - /* Check for specified return */ - if (Ut_ULR_Custom_UseReturnCode(UT_ULR_CFE_TIME_GetTimeInMicros_INDEX)) - return Ut_ULR_Custom_ReturnCodeTable[UT_ULR_CFE_TIME_GetTimeInMicros_INDEX].Value; - /* Check for Function Hook */ - if (Ut_ULR_Custom_HookTable.CFE_TIME_GetTimeInMicros) - return Ut_ULR_Custom_HookTable.CFE_TIME_GetTimeInMicros(); + return 0; } diff --git a/apps/ulr/fsw/unit_test/stubs/ut_ulr_custom_stubs.h b/apps/ulr/fsw/unit_test/stubs/ut_ulr_custom_stubs.h index e9c78f381..42925644b 100644 --- a/apps/ulr/fsw/unit_test/stubs/ut_ulr_custom_stubs.h +++ b/apps/ulr/fsw/unit_test/stubs/ut_ulr_custom_stubs.h @@ -38,7 +38,6 @@ typedef enum { UT_ULR_CUSTOM_INITDEVICE_INDEX, UT_ULR_CUSTOM_READDEVICE_INDEX, - UT_ULR_CFE_TIME_GetTimeInMicros_INDEX, UT_ULR_CUSTOM_MAX_INDEX } Ut_ULR_Custom_INDEX_t; @@ -46,7 +45,6 @@ typedef struct { uint32 (*InitDevice)(void); int32 (*ReadDevice)(uint8 *Buffer, uint32 *Size); - uint64 (*CFE_TIME_GetTimeInMicros)(void); } Ut_ULR_Custom_HookTable_t; typedef struct From 8bda73d84f6012e6906ff9e8494004db99ea4b52 Mon Sep 17 00:00:00 2001 From: Mathew Benson Date: Thu, 25 Feb 2021 21:32:13 -0600 Subject: [PATCH 182/370] CPD build is ready for unit testing. --- apps/px4lib/fsw/src/math/Integrator.cpp | 22 +- config/obc/cpd/target/CMakeLists.txt | 260 +- config/obc/cpd/target/apps/amc/amc_custom.cpp | 88 - config/obc/cpd/target/apps/bat/bat_custom.cpp | 52 +- .../cpd/target/apps/gps/src/CMakeLists.txt | 5 - .../obc/cpd/target/apps/gps/src/gps_custom.c | 214 +- .../target/apps/gps/src/gps_custom_shared.h | 235 -- .../gps/src/gps_interface_uart/gps_serial.c | 1272 --------- .../gps/src/gps_interface_uart/gps_serial.h | 658 ----- .../src/gps_parser_ubx/gps_parser_ubx_ack.c | 200 -- .../src/gps_parser_ubx/gps_parser_ubx_ack.h | 99 - .../src/gps_parser_ubx/gps_parser_ubx_cfg.c | 912 ------ .../src/gps_parser_ubx/gps_parser_ubx_cfg.h | 103 - .../gps_parser_ubx/gps_parser_ubx_common.c | 1608 ----------- .../gps_parser_ubx/gps_parser_ubx_common.h | 307 -- .../src/gps_parser_ubx/gps_parser_ubx_mon.c | 477 ---- .../src/gps_parser_ubx/gps_parser_ubx_mon.h | 108 - .../src/gps_parser_ubx/gps_parser_ubx_nav.c | 2494 ----------------- .../src/gps_parser_ubx/gps_parser_ubx_nav.h | 121 - .../apps/gps/src/gps_parser_ubx/gps_ubx_msg.h | 534 ---- .../target/apps/hmc5883/src/CMakeLists.txt | 5 - .../target/apps/hmc5883/src/hmc5883_custom.c | 474 +--- .../cpd/target/apps/hmc5883/src/hmc5883_i2c.h | 337 --- config/obc/cpd/target/apps/lgc/lgc_custom.cpp | 83 +- .../target/apps/mpu9250/src/CMakeLists.txt | 5 - .../target/apps/mpu9250/src/mpu9250_custom.c | 1010 +------ .../cpd/target/apps/mpu9250/src/mpu9250_spi.h | 421 --- .../target/apps/ms5611/src/ms5611_custom.c | 355 +-- .../cpd/target/apps/ms5611/src/ms5611_spi.h | 201 -- .../cpd/target/apps/rcin/src/rcin_custom.c | 779 +---- .../obc/cpd/target/apps/rcin/src/rcin_sbus.h | 400 --- .../target/apps/rgbled/src/rgbled_custom.c | 477 +--- config/obc/cpd/target/apps/ulr/ulr_custom.cpp | 124 +- config/obc/cpd/target/cfe_es_startup.scr | 11 +- config/reference/target/CMakeLists.txt | 2 +- .../vc/src/vc_transmit_udp/vc_transmit_udp.c | 2 +- 36 files changed, 277 insertions(+), 14178 deletions(-) delete mode 100644 config/obc/cpd/target/apps/gps/src/CMakeLists.txt delete mode 100644 config/obc/cpd/target/apps/gps/src/gps_custom_shared.h delete mode 100644 config/obc/cpd/target/apps/gps/src/gps_interface_uart/gps_serial.c delete mode 100644 config/obc/cpd/target/apps/gps/src/gps_interface_uart/gps_serial.h delete mode 100644 config/obc/cpd/target/apps/gps/src/gps_parser_ubx/gps_parser_ubx_ack.c delete mode 100644 config/obc/cpd/target/apps/gps/src/gps_parser_ubx/gps_parser_ubx_ack.h delete mode 100644 config/obc/cpd/target/apps/gps/src/gps_parser_ubx/gps_parser_ubx_cfg.c delete mode 100644 config/obc/cpd/target/apps/gps/src/gps_parser_ubx/gps_parser_ubx_cfg.h delete mode 100644 config/obc/cpd/target/apps/gps/src/gps_parser_ubx/gps_parser_ubx_common.c delete mode 100644 config/obc/cpd/target/apps/gps/src/gps_parser_ubx/gps_parser_ubx_common.h delete mode 100644 config/obc/cpd/target/apps/gps/src/gps_parser_ubx/gps_parser_ubx_mon.c delete mode 100644 config/obc/cpd/target/apps/gps/src/gps_parser_ubx/gps_parser_ubx_mon.h delete mode 100644 config/obc/cpd/target/apps/gps/src/gps_parser_ubx/gps_parser_ubx_nav.c delete mode 100644 config/obc/cpd/target/apps/gps/src/gps_parser_ubx/gps_parser_ubx_nav.h delete mode 100644 config/obc/cpd/target/apps/gps/src/gps_parser_ubx/gps_ubx_msg.h delete mode 100644 config/obc/cpd/target/apps/hmc5883/src/CMakeLists.txt delete mode 100644 config/obc/cpd/target/apps/hmc5883/src/hmc5883_i2c.h delete mode 100644 config/obc/cpd/target/apps/mpu9250/src/CMakeLists.txt delete mode 100644 config/obc/cpd/target/apps/mpu9250/src/mpu9250_spi.h delete mode 100644 config/obc/cpd/target/apps/ms5611/src/ms5611_spi.h delete mode 100644 config/obc/cpd/target/apps/rcin/src/rcin_sbus.h diff --git a/apps/px4lib/fsw/src/math/Integrator.cpp b/apps/px4lib/fsw/src/math/Integrator.cpp index af9134a8e..5ae5a7814 100644 --- a/apps/px4lib/fsw/src/math/Integrator.cpp +++ b/apps/px4lib/fsw/src/math/Integrator.cpp @@ -44,29 +44,9 @@ //#include #include #include +#include "cfs_utils.h" -/* TODO */ -uint64 CFE_TIME_GetTimeInMicros(void) -{ - struct timespec ts; - int returnCode = 0; - uint64 outTime = 0; - - returnCode = clock_gettime(CLOCK_MONOTONIC, &ts); - if (-1 == returnCode) - { - OS_printf("PX4LIB_GetPX4Time clock_gettime errno: %i", errno); - goto end_of_function; - } - - outTime = (uint64)(ts.tv_sec) * 1000000; - outTime += ts.tv_nsec / 1000; - -end_of_function: - return outTime; -} - Integrator::Integrator(uint64 auto_reset_interval, boolean coning_compensation) : _auto_reset_interval(auto_reset_interval), diff --git a/config/obc/cpd/target/CMakeLists.txt b/config/obc/cpd/target/CMakeLists.txt index 8bc822840..752af1bf6 100644 --- a/config/obc/cpd/target/CMakeLists.txt +++ b/config/obc/cpd/target/CMakeLists.txt @@ -28,11 +28,11 @@ buildliner_add_app( # This is temporarily removed until we can remove the OS dependency # in px4lib, i.e. "CLOCK_MONOTONIC" -#buildliner_add_app( -# px4lib -# EMBEDDED -# DEFINITION ${PROJECT_SOURCE_DIR}/apps/px4lib/fsw/for_build -#) +buildliner_add_app( + px4lib + EMBEDDED + DEFINITION ${PROJECT_SOURCE_DIR}/apps/px4lib/fsw/for_build +) buildliner_add_app( prmlib @@ -143,84 +143,78 @@ buildliner_add_app( # This is temporarily removed until we can geet px4lib back in -#buildliner_add_app( -# amc -# EMBEDDED -# DEFINITION ${PROJECT_SOURCE_DIR}/apps/amc/fsw/for_build -# CONFIG ${CMAKE_CURRENT_SOURCE_DIR}/apps/amc -# CONFIG_SOURCES -# ${CMAKE_CURRENT_SOURCE_DIR}/apps/amc/amc_custom.cpp -#) +buildliner_add_app( + amc + EMBEDDED + DEFINITION ${PROJECT_SOURCE_DIR}/apps/amc/fsw/for_build + CONFIG ${CMAKE_CURRENT_SOURCE_DIR}/apps/amc + CONFIG_SOURCES + ${CMAKE_CURRENT_SOURCE_DIR}/apps/amc/amc_custom.cpp +) # This is temporarily removed until we can geet px4lib back in -#buildliner_add_app( -# mac -# EMBEDDED -# DEFINITION ${PROJECT_SOURCE_DIR}/apps/mac/fsw/for_build -# CONFIG ${CMAKE_CURRENT_SOURCE_DIR}/apps/mac -#) +buildliner_add_app( + mac + EMBEDDED + DEFINITION ${PROJECT_SOURCE_DIR}/apps/mac/fsw/for_build + CONFIG ${CMAKE_CURRENT_SOURCE_DIR}/apps/mac +) # This is temporarily removed until we can geet px4lib back in -#buildliner_add_app( -# ulr -# EMBEDDED -# DEFINITION ${PROJECT_SOURCE_DIR}/apps/ulr/fsw/for_build -# CONFIG ${CMAKE_CURRENT_SOURCE_DIR}/apps/ulr -# CONFIG_SOURCES -# ${CMAKE_CURRENT_SOURCE_DIR}/apps/ulr/ulr_custom.cpp -#) +buildliner_add_app( + ulr + EMBEDDED + DEFINITION ${PROJECT_SOURCE_DIR}/apps/ulr/fsw/for_build + CONFIG ${CMAKE_CURRENT_SOURCE_DIR}/apps/ulr + CONFIG_SOURCES + ${CMAKE_CURRENT_SOURCE_DIR}/apps/ulr/ulr_custom.cpp +) # This is temporarily removed until we can geet px4lib back in -#buildliner_add_app( -# rgbled -# EMBEDDED -# DEFINITION ${PROJECT_SOURCE_DIR}/apps/rgbled/fsw/for_build -# CONFIG ${CMAKE_CURRENT_SOURCE_DIR}/apps/rgbled -# CONFIG_SOURCES -# ${CMAKE_CURRENT_SOURCE_DIR}/apps/rgbled/src/rgbled_custom.c -#) +buildliner_add_app( + rgbled + EMBEDDED + DEFINITION ${PROJECT_SOURCE_DIR}/apps/rgbled/fsw/for_build + CONFIG ${CMAKE_CURRENT_SOURCE_DIR}/apps/rgbled + CONFIG_SOURCES + ${CMAKE_CURRENT_SOURCE_DIR}/apps/rgbled/src/rgbled_custom.c +) # This is temporarily removed until we can geet px4lib back in -#buildliner_add_app( -# ms5611 -# EMBEDDED -# DEFINITION ${PROJECT_SOURCE_DIR}/apps/ms5611/fsw/for_build -# CONFIG ${CMAKE_CURRENT_SOURCE_DIR}/apps/ms5611 -# CONFIG_SOURCES -# ${CMAKE_CURRENT_SOURCE_DIR}/apps/ms5611/src/ms5611_custom.c -#) +buildliner_add_app( + ms5611 + EMBEDDED + DEFINITION ${PROJECT_SOURCE_DIR}/apps/ms5611/fsw/for_build + CONFIG ${CMAKE_CURRENT_SOURCE_DIR}/apps/ms5611 + CONFIG_SOURCES + ${CMAKE_CURRENT_SOURCE_DIR}/apps/ms5611/src/ms5611_custom.c +) # This is temporarily removed until we can geet px4lib back in -#buildliner_add_app( -# gps -# EMBEDDED -# DEFINITION ${PROJECT_SOURCE_DIR}/apps/gps/fsw/for_build -# CONFIG ${CMAKE_CURRENT_SOURCE_DIR}/apps/gps -# CONFIG_SOURCES -# ${CMAKE_CURRENT_SOURCE_DIR}/apps/gps/src/gps_interface_uart/gps_serial.c -# ${CMAKE_CURRENT_SOURCE_DIR}/apps/gps/src/gps_parser_ubx/gps_parser_ubx_common.c -# ${CMAKE_CURRENT_SOURCE_DIR}/apps/gps/src/gps_parser_ubx/gps_parser_ubx_nav.c -# ${CMAKE_CURRENT_SOURCE_DIR}/apps/gps/src/gps_parser_ubx/gps_parser_ubx_cfg.c -# ${CMAKE_CURRENT_SOURCE_DIR}/apps/gps/src/gps_parser_ubx/gps_parser_ubx_ack.c -# ${CMAKE_CURRENT_SOURCE_DIR}/apps/gps/src/gps_parser_ubx/gps_parser_ubx_mon.c -# ${CMAKE_CURRENT_SOURCE_DIR}/apps/gps/src/gps_custom.c -#) +buildliner_add_app( + gps + EMBEDDED + DEFINITION ${PROJECT_SOURCE_DIR}/apps/gps/fsw/for_build + CONFIG ${CMAKE_CURRENT_SOURCE_DIR}/apps/gps + CONFIG_SOURCES + ${CMAKE_CURRENT_SOURCE_DIR}/apps/gps/src/gps_custom.c +) # This is temporarily removed until we can geet px4lib back in -#buildliner_add_app( -# sens -# EMBEDDED -# DEFINITION ${PROJECT_SOURCE_DIR}/apps/sens/fsw/for_build -# CONFIG ${CMAKE_CURRENT_SOURCE_DIR}/apps/sens -#) +buildliner_add_app( + sens + EMBEDDED + DEFINITION ${PROJECT_SOURCE_DIR}/apps/sens/fsw/for_build + CONFIG ${CMAKE_CURRENT_SOURCE_DIR}/apps/sens +) # This is temporarily removed until we can geet px4lib back in -#buildliner_add_app( -# mpc -# EMBEDDED -# DEFINITION ${PROJECT_SOURCE_DIR}/apps/mpc/fsw/for_build -# CONFIG ${CMAKE_CURRENT_SOURCE_DIR}/apps/mpc -#) +buildliner_add_app( + mpc + EMBEDDED + DEFINITION ${PROJECT_SOURCE_DIR}/apps/mpc/fsw/for_build + CONFIG ${CMAKE_CURRENT_SOURCE_DIR}/apps/mpc +) # This is temporarily commented out until we can figure out how to # get cmake to generate the SMC files before it does anything else @@ -232,83 +226,83 @@ buildliner_add_app( #) # This is temporarily removed until we can geet px4lib back in -#buildliner_add_app( -# ld -# EMBEDDED -# DEFINITION ${PROJECT_SOURCE_DIR}/apps/ld/fsw/for_build -# CONFIG ${CMAKE_CURRENT_SOURCE_DIR}/apps/ld -#) +buildliner_add_app( + ld + EMBEDDED + DEFINITION ${PROJECT_SOURCE_DIR}/apps/ld/fsw/for_build + CONFIG ${CMAKE_CURRENT_SOURCE_DIR}/apps/ld +) # This is temporarily removed until we can geet px4lib back in -#buildliner_add_app( -# nav -# EMBEDDED -# DEFINITION ${PROJECT_SOURCE_DIR}/apps/nav/fsw/for_build -# CONFIG ${CMAKE_CURRENT_SOURCE_DIR}/apps/nav -#) +buildliner_add_app( + nav + EMBEDDED + DEFINITION ${PROJECT_SOURCE_DIR}/apps/nav/fsw/for_build + CONFIG ${CMAKE_CURRENT_SOURCE_DIR}/apps/nav +) # This is temporarily removed until we can geet px4lib back in -#buildliner_add_app( -# rcin -# EMBEDDED -# DEFINITION ${PROJECT_SOURCE_DIR}/apps/rcin/fsw/for_build -# CONFIG ${CMAKE_CURRENT_SOURCE_DIR}/apps/rcin -# CONFIG_SOURCES -# ${CMAKE_CURRENT_SOURCE_DIR}/apps/rcin/src/rcin_custom.c -#) +buildliner_add_app( + rcin + EMBEDDED + DEFINITION ${PROJECT_SOURCE_DIR}/apps/rcin/fsw/for_build + CONFIG ${CMAKE_CURRENT_SOURCE_DIR}/apps/rcin + CONFIG_SOURCES + ${CMAKE_CURRENT_SOURCE_DIR}/apps/rcin/src/rcin_custom.c +) # This is temporarily removed until we can geet px4lib back in -#buildliner_add_app( -# bat -# EMBEDDED -# DEFINITION ${PROJECT_SOURCE_DIR}/apps/bat/fsw/for_build -# CONFIG ${CMAKE_CURRENT_SOURCE_DIR}/apps/bat -# CONFIG_SOURCES -# ${CMAKE_CURRENT_SOURCE_DIR}/apps/bat/bat_custom.cpp -#) +buildliner_add_app( + bat + EMBEDDED + DEFINITION ${PROJECT_SOURCE_DIR}/apps/bat/fsw/for_build + CONFIG ${CMAKE_CURRENT_SOURCE_DIR}/apps/bat + CONFIG_SOURCES + ${CMAKE_CURRENT_SOURCE_DIR}/apps/bat/bat_custom.cpp +) # This is temporarily removed until we can geet px4lib back in -#buildliner_add_app( -# mpu9250 -# EMBEDDED -# DEFINITION ${PROJECT_SOURCE_DIR}/apps/mpu9250/fsw/for_build -# CONFIG ${CMAKE_CURRENT_SOURCE_DIR}/apps/mpu9250 -# CONFIG_SOURCES -# ${CMAKE_CURRENT_SOURCE_DIR}/apps/mpu9250/src/mpu9250_custom.c -#) +buildliner_add_app( + mpu9250 + EMBEDDED + DEFINITION ${PROJECT_SOURCE_DIR}/apps/mpu9250/fsw/for_build + CONFIG ${CMAKE_CURRENT_SOURCE_DIR}/apps/mpu9250 + CONFIG_SOURCES + ${CMAKE_CURRENT_SOURCE_DIR}/apps/mpu9250/src/mpu9250_custom.c +) # This is temporarily removed until we can geet px4lib back in -#buildliner_add_app( -# hmc5883 -# EMBEDDED -# DEFINITION ${PROJECT_SOURCE_DIR}/apps/hmc5883/fsw/for_build -# CONFIG ${CMAKE_CURRENT_SOURCE_DIR}/apps/hmc5883 -# CONFIG_SOURCES -# ${CMAKE_CURRENT_SOURCE_DIR}/apps/hmc5883/src/hmc5883_custom.c -#) +buildliner_add_app( + hmc5883 + EMBEDDED + DEFINITION ${PROJECT_SOURCE_DIR}/apps/hmc5883/fsw/for_build + CONFIG ${CMAKE_CURRENT_SOURCE_DIR}/apps/hmc5883 + CONFIG_SOURCES + ${CMAKE_CURRENT_SOURCE_DIR}/apps/hmc5883/src/hmc5883_custom.c +) # This is temporarily removed until we can geet px4lib back in -#buildliner_add_app( -# pe -# EMBEDDED -# DEFINITION ${PROJECT_SOURCE_DIR}/apps/pe/fsw/for_build -# CONFIG ${CMAKE_CURRENT_SOURCE_DIR}/apps/pe -#) +buildliner_add_app( + pe + EMBEDDED + DEFINITION ${PROJECT_SOURCE_DIR}/apps/pe/fsw/for_build + CONFIG ${CMAKE_CURRENT_SOURCE_DIR}/apps/pe +) # This is temporarily removed until we can geet px4lib back in -#buildliner_add_app( -# qae -# EMBEDDED -# DEFINITION ${PROJECT_SOURCE_DIR}/apps/qae/fsw/for_build -# CONFIG ${CMAKE_CURRENT_SOURCE_DIR}/apps/qae -#) +buildliner_add_app( + qae + EMBEDDED + DEFINITION ${PROJECT_SOURCE_DIR}/apps/qae/fsw/for_build + CONFIG ${CMAKE_CURRENT_SOURCE_DIR}/apps/qae +) # This is temporarily removed until we can geet px4lib back in -#buildliner_add_app( -# lgc -# EMBEDDED -# DEFINITION ${PROJECT_SOURCE_DIR}/apps/lgc/fsw/for_build -# CONFIG ${CMAKE_CURRENT_SOURCE_DIR}/apps/lgc -# CONFIG_SOURCES -# ${CMAKE_CURRENT_SOURCE_DIR}/apps/lgc/lgc_custom.cpp -#) +buildliner_add_app( + lgc + EMBEDDED + DEFINITION ${PROJECT_SOURCE_DIR}/apps/lgc/fsw/for_build + CONFIG ${CMAKE_CURRENT_SOURCE_DIR}/apps/lgc + CONFIG_SOURCES + ${CMAKE_CURRENT_SOURCE_DIR}/apps/lgc/lgc_custom.cpp +) diff --git a/config/obc/cpd/target/apps/amc/amc_custom.cpp b/config/obc/cpd/target/apps/amc/amc_custom.cpp index 1be165e2f..043f22787 100644 --- a/config/obc/cpd/target/apps/amc/amc_custom.cpp +++ b/config/obc/cpd/target/apps/amc/amc_custom.cpp @@ -33,46 +33,7 @@ #include "cfe.h" #include "amc_app.h" -#include -#include -#include -#include -#include -#include -#define AMC_RCOUT_ZYNQ_PWM_BASE (0x43c00000) -#define AMC_FREQUENCY_PWM (400) -#define AMC_TICK_PER_S (50000000) -#define AMC_TICK_PER_US (50) -#define AMC_DEVICE_PATH "/dev/mem" - - -/* The following struct is used by the AMC_SharedMemCmd_t struct and overlayed - * over the ocpoc PPM registers to control the PWM hardware. - */ -typedef struct { - uint32 Period; - uint32 Hi; -} AMC_PeriodHi_t; - - -/* The following struct is overlayed over the ocpoc PPM registers to control - * the PWM hardware. - */ -typedef struct -{ - AMC_PeriodHi_t PeriodHi[AMC_MAX_MOTOR_OUTPUTS]; -} AMC_SharedMemCmd_t; - -volatile AMC_SharedMemCmd_t *AMC_SharedMemCmd; - - -/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ -/* */ -/* AMC_Freq2tick function. */ -/* */ -/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ -uint32 AMC_Freq2tick(uint16 FreqHz); /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ @@ -82,35 +43,6 @@ uint32 AMC_Freq2tick(uint16 FreqHz); /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ int32 AMC::InitDevice(void) { - uint32 i; - int mem_fd; - - /* Initialize just in case we were reloaded and the ctor wasn't called. */ - AMC_SharedMemCmd = 0; - - mem_fd = open(AMC_DEVICE_PATH, O_RDWR | O_SYNC); - AMC_SharedMemCmd = (AMC_SharedMemCmd_t *) mmap(0, 0x1000, - PROT_READ | PROT_WRITE, MAP_SHARED, mem_fd, - AMC_RCOUT_ZYNQ_PWM_BASE); - close(mem_fd); - - if (AMC_SharedMemCmd <= 0) - { - AMC_SharedMemCmd = 0; - return errno; - } - - // Note: this appears to be required actuators to initialize - for (i = 0; i < AMC_MAX_MOTOR_OUTPUTS; ++i) - { - AMC_SharedMemCmd->PeriodHi[i].Period = - AMC_Freq2tick(AMC_FREQUENCY_PWM); - AMC_SharedMemCmd->PeriodHi[i].Hi = - AMC_Freq2tick(AMC_FREQUENCY_PWM) / 2; - } - - StopMotors(); - return 0; } @@ -122,27 +54,7 @@ int32 AMC::InitDevice(void) /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ void AMC::SetMotorOutputs(const uint16 *PWM) { - uint32 i = 0; - if(AMC_SharedMemCmd != 0) - { - /* Convert this to duty_cycle in ns */ - for (i = 0; i < AMC_MAX_MOTOR_OUTPUTS; ++i) - { - AMC_SharedMemCmd->PeriodHi[i].Hi = AMC_TICK_PER_US * PWM[i]; - } - } } -/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ -/* */ -/* AMC_Freq2tick function. */ -/* */ -/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ -uint32 AMC_Freq2tick(uint16 FreqHz) -{ - uint32 duty = AMC_TICK_PER_S / (unsigned long)FreqHz; - - return duty; -} diff --git a/config/obc/cpd/target/apps/bat/bat_custom.cpp b/config/obc/cpd/target/apps/bat/bat_custom.cpp index f2c744535..e0b7af265 100644 --- a/config/obc/cpd/target/apps/bat/bat_custom.cpp +++ b/config/obc/cpd/target/apps/bat/bat_custom.cpp @@ -1,29 +1,9 @@ #include "bat_app.h" -#include - -#define BAT_VOLTAGE_PATH "/sys/bus/iio/devices/iio:device0/in_voltage8_raw" - -/* 28V / 4096 counts = 0.0068359375f V per count */ -#define BAT_BATTERY1_V_DIV (0.0068359375f) int32 BAT::InitDevice(void) { - int32 ret = CFE_SUCCESS; - FILE *FD; - - FD = fopen(BAT_VOLTAGE_PATH, "r"); - - if (FD == NULL) - { - ret = -1; - } - else - { - fclose(FD); - } - - return ret; + return CFE_SUCCESS; } @@ -34,33 +14,5 @@ void BAT::CloseDevice(void) int32 BAT::ReadDevice(float &Voltage, float &Current) { - int32 ret = CFE_SUCCESS; - FILE *FD; - - FD = fopen(BAT_VOLTAGE_PATH, "r"); - - if (FD == NULL) - { - Voltage = 0.0f; - Current = 0.0f; - ret = -1; - } - else - { - int ret_tmp = fscanf(FD, "%f", (float*)&Voltage); - if(ret_tmp < 0) - { - ret = ret_tmp; - } - - Voltage *= BAT_BATTERY1_V_DIV; - - fclose(FD); - } - - usleep(10000); - - Current = 0.0f; - - return ret; + return CFE_SUCCESS; } diff --git a/config/obc/cpd/target/apps/gps/src/CMakeLists.txt b/config/obc/cpd/target/apps/gps/src/CMakeLists.txt deleted file mode 100644 index b90f33510..000000000 --- a/config/obc/cpd/target/apps/gps/src/CMakeLists.txt +++ /dev/null @@ -1,5 +0,0 @@ -# Set source for custom code. -set(APP_CUSTOM_SRC - ${CMAKE_CURRENT_SOURCE_DIR}/gps_custom.c - PARENT_SCOPE - ) diff --git a/config/obc/cpd/target/apps/gps/src/gps_custom.c b/config/obc/cpd/target/apps/gps/src/gps_custom.c index 2c5543fce..de66a5455 100644 --- a/config/obc/cpd/target/apps/gps/src/gps_custom.c +++ b/config/obc/cpd/target/apps/gps/src/gps_custom.c @@ -30,188 +30,72 @@ * POSSIBILITY OF SUCH DAMAGE. * *****************************************************************************/ -/************************************************************************ -** Pragmas -*************************************************************************/ - -/************************************************************************ -** Includes -*************************************************************************/ -#include "gps_custom_shared.h" -#include - -/************************************************************************ -** Local Defines -*************************************************************************/ - -/************************************************************************ -** Local Structure Declarations -*************************************************************************/ - -/************************************************************************ -** External Global Variables -*************************************************************************/ - -/************************************************************************ -** Global Variables -*************************************************************************/ -GPS_AppCustomData_t GPS_AppCustomData; - -/************************************************************************ -** Local Variables -*************************************************************************/ - -/************************************************************************ -** Local Function Definitions -*************************************************************************/ - -boolean GPS_Custom_Max_Events_Not_Reached(int32 ind) + +#ifdef __cplusplus +extern "C" { +#endif + +#include "gps_custom.h" + +#include "px4_msgs.h" + + +#ifdef __cplusplus +extern "C" { +#endif + + +void GPS_Custom_InitData(void) +{ + +} + + + +boolean GPS_Custom_Init(void) { - if ((ind < CFE_EVS_MAX_EVENT_FILTERS) && (ind > 0)) - { - return TRUE; - } - else - { - return FALSE; - } + return TRUE; } -int32 GPS_Custom_Init_EventFilters(int32 ind, CFE_EVS_BinFilter_t *EventTbl) + +boolean GPS_Custom_Measure_PositionMsg(PX4_VehicleGpsPositionMsg_t *Measure) { - int32 customEventCount = ind; - - /* Null check */ - if(0 == EventTbl) - { - customEventCount = -1; - goto end_of_function; - } - - if(TRUE == GPS_Custom_Max_Events_Not_Reached(customEventCount)) - { - EventTbl[ customEventCount].EventID = GPS_DEVICE_ERR_EID; - EventTbl[customEventCount++].Mask = CFE_EVS_FIRST_16_STOP; - } - else - { - customEventCount = -1; - goto end_of_function; - } - -end_of_function: - - return customEventCount; + return TRUE; } -//boolean GPS_Custom_Measure_DumpMsg(PX4_GpsDumpMsg_t *Measure) -//{ - //boolean returnBool = TRUE; - //void *userDataPtr = 0; - //void *copyDataPtr = 0; - //uint16 userDataLength = 0; - ///* Null check */ - //if(0 == Measure) - //{ - //CFE_EVS_SendEvent(GPS_DEVICE_ERR_EID, CFE_EVS_ERROR, - //"GPS measure dump message null pointer"); - //returnBool = FALSE; - //goto end_of_function; - //} +boolean GPS_Custom_Measure_SatInfoMsg(PX4_SatelliteInfoMsg_t *Measure) +{ + return TRUE; +} + - //OS_MutSemTake(GPS_AppCustomData.MutexDump); - //userDataPtr = CFE_SB_GetUserData((CFE_SB_MsgPtr_t)&GPS_AppCustomData.GpsDumpMsg); - //userDataLength = CFE_SB_GetUserDataLength((CFE_SB_MsgPtr_t)Measure); - //copyDataPtr = CFE_SB_GetUserData((CFE_SB_MsgPtr_t)Measure); - //memcpy(copyDataPtr, userDataPtr, userDataLength); - //OS_MutSemGive(GPS_AppCustomData.MutexDump); -//end_of_function: +boolean GPS_Custom_Uninit(void) +{ + return TRUE; +} - //return returnBool; -//} -boolean GPS_Custom_Measure_PositionMsg(PX4_VehicleGpsPositionMsg_t *Measure) +int32 GPS_Custom_Init_EventFilters(int32 ind, CFE_EVS_BinFilter_t *EventTbl) { - boolean returnBool = TRUE; - void *userDataPtr = 0; - void *copyDataPtr = 0; - uint16 userDataLength = 0; - - /* Null check */ - if(0 == Measure) - { - CFE_EVS_SendEvent(GPS_DEVICE_ERR_EID, CFE_EVS_ERROR, - "GPS measure dump message null pointer"); - returnBool = FALSE; - goto end_of_function; - } - - OS_MutSemTake(GPS_AppCustomData.MutexPosition); - //userDataPtr = CFE_SB_GetUserData((CFE_SB_MsgPtr_t)&GPS_AppCustomData.GpsPositionMsg); - //userDataLength = CFE_SB_GetUserDataLength((CFE_SB_MsgPtr_t)Measure); - //copyDataPtr = CFE_SB_GetUserData((CFE_SB_MsgPtr_t)Measure); - - //memcpy(copyDataPtr, userDataPtr, userDataLength); - Measure->Timestamp = GPS_AppCustomData.GpsPositionMsg.Timestamp; - Measure->TimeUtcUsec = GPS_AppCustomData.GpsPositionMsg.TimeUtcUsec; - Measure->Lat = GPS_AppCustomData.GpsPositionMsg.Lat; - Measure->Lon = GPS_AppCustomData.GpsPositionMsg.Lon; - Measure->Alt = GPS_AppCustomData.GpsPositionMsg.Alt; - Measure->AltEllipsoid = GPS_AppCustomData.GpsPositionMsg.AltEllipsoid; - Measure->SVariance = GPS_AppCustomData.GpsPositionMsg.SVariance; - Measure->CVariance = GPS_AppCustomData.GpsPositionMsg.CVariance; - Measure->EpH = GPS_AppCustomData.GpsPositionMsg.EpH; - Measure->EpV = GPS_AppCustomData.GpsPositionMsg.EpV; - Measure->HDOP = GPS_AppCustomData.GpsPositionMsg.HDOP; - Measure->VDOP = GPS_AppCustomData.GpsPositionMsg.VDOP; - Measure->NoisePerMs = GPS_AppCustomData.GpsPositionMsg.NoisePerMs; - Measure->JammingIndicator = GPS_AppCustomData.GpsPositionMsg.JammingIndicator; - Measure->Vel_m_s = GPS_AppCustomData.GpsPositionMsg.Vel_m_s; - Measure->Vel_n_m_s = GPS_AppCustomData.GpsPositionMsg.Vel_n_m_s; - Measure->Vel_e_m_s = GPS_AppCustomData.GpsPositionMsg.Vel_e_m_s; - Measure->Vel_d_m_s = GPS_AppCustomData.GpsPositionMsg.Vel_d_m_s; - Measure->COG = GPS_AppCustomData.GpsPositionMsg.COG; - Measure->TimestampTimeRelative = GPS_AppCustomData.GpsPositionMsg.TimestampTimeRelative; - Measure->FixType = GPS_AppCustomData.GpsPositionMsg.FixType; - Measure->VelNedValid = GPS_AppCustomData.GpsPositionMsg.VelNedValid; - Measure->SatellitesUsed = GPS_AppCustomData.GpsPositionMsg.SatellitesUsed; - OS_MutSemGive(GPS_AppCustomData.MutexPosition); - -end_of_function: - - return returnBool; + return 0; } -boolean GPS_Custom_Measure_SatInfoMsg(PX4_SatelliteInfoMsg_t *Measure) + +uint64 GPS_Custom_Get_Time_Uint64(void) { - boolean returnBool = FALSE; - //void *userDataPtr = 0; - //void *copyDataPtr = 0; - //uint16 userDataLength = 0; - ///* Null check */ - //if(0 == Measure) - //{ - //CFE_EVS_SendEvent(GPS_DEVICE_ERR_EID, CFE_EVS_ERROR, - //"GPS measure dump message null pointer"); - //returnBool = FALSE; - //goto end_of_function; - //} - - //OS_MutSemTake(GPS_AppCustomData.MutexSatInfo); - //userDataPtr = CFE_SB_GetUserData((CFE_SB_MsgPtr_t)&GPS_AppCustomData.GpsSatInfoMsg); - //userDataLength = CFE_SB_GetUserDataLength((CFE_SB_MsgPtr_t)Measure); - //copyDataPtr = CFE_SB_GetUserData((CFE_SB_MsgPtr_t)Measure); - - //memcpy(copyDataPtr, userDataPtr, userDataLength); - //OS_MutSemGive(GPS_AppCustomData.MutexSatInfo); - -end_of_function: - - return returnBool; + return 0; +} + + + + + +#ifdef __cplusplus } +#endif diff --git a/config/obc/cpd/target/apps/gps/src/gps_custom_shared.h b/config/obc/cpd/target/apps/gps/src/gps_custom_shared.h deleted file mode 100644 index f5b57a0c9..000000000 --- a/config/obc/cpd/target/apps/gps/src/gps_custom_shared.h +++ /dev/null @@ -1,235 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ - -#ifndef GPS_CUSTOM_SHARED_H -#define GPS_CUSTOM_SHARED_H -/************************************************************************ -** Includes -*************************************************************************/ -#include "gps_events.h" -#include "cfe.h" -#include "px4_msgs.h" - -#ifdef __cplusplus -extern "C" { -#endif -/************************************************************************ -** Local Defines -*************************************************************************/ - -/** \brief GPS read buffer size. -** -** \par Description: -** MON_VER from u-blox modules can be ~190 bytes -*/ -#define GPS_READ_BUFFER_SIZE (250) - -/************************************************************************ -** Structure Declarations -*************************************************************************/ -typedef enum -{ - -/** \brief 'GPS - ' -** \event 'GPS - ' -** -** \par Type: ERROR -** -** \par Cause: -** -** This event message is issued when a device resource encounters an -** error. -** -*/ - GPS_DEVICE_ERR_EID = GPS_EVT_CNT, - -/** \brief 'GPS - ' -** \event 'GPS - ' -** -** \par Type: ERROR -** -** \par Cause: -** -** This event message is issued when a GPS message parser encounters an -** error. -** -*/ - GPS_INIT_DEVICE_PARSER_ERR_EID, - -/** \brief Number of custom events -** -** \par Limits: -** int32 -*/ - GPS_CUSTOM_EVT_CNT -} GPS_CustomEventIds_t; - - -typedef struct -{ - /*! \brief cFE Software Bus Telemetry Message Header */ - uint8 TlmHeader[CFE_SB_TLM_HDR_SIZE]; - uint8 Payload[GPS_READ_BUFFER_SIZE]; -} GPS_DeviceMessage_t; - - -/** - * \brief Parser state. - */ -typedef enum -{ - GPS_PARSE_STATE_UNINIT=0, - GPS_PARSE_STATE_IDLE, - GPS_PARSE_STATE_GOT_SYNC1, - GPS_PARSE_STATE_GOT_SYNC2, - GPS_PARSE_STATE_GOT_CLASS, - GPS_PARSE_STATE_GOT_ID, - GPS_PARSE_STATE_GOT_LENGTH1, - GPS_PARSE_STATE_GOT_LENGTH2, - GPS_PARSE_STATE_GOT_PAYLOAD, - GPS_PARSE_STATE_GOT_CHECKSUMA, - GPS_PARSE_STATE_GOT_CHECKSUMB -} GPS_ParserState_t; - - -typedef struct -{ - /*! Number of received messages */ - uint32 MsgReceived; - /*! Number of parse errors */ - uint32 ParseError; - /*! Parsing state machine */ - GPS_ParserState_t ParseState; - uint16 PayloadCursor; - uint8 ClassID; - uint8 MsgID; - uint16 MsgLength; - uint16 ChecksumA; -} GPS_ParserStatus_t; - -/** - * \brief GPS device status - */ -typedef enum -{ - /*! GPS status uninitialized */ - GPS_CUSTOM_UNINITIALIZED = 0, - /*! GPS status initialized */ - GPS_CUSTOM_INITIALIZED = 1, - /*! GPS status streaming */ - GPS_CUSTOM_STREAMING = 2 -} GPS_Custom_Status_t; - - -typedef enum -{ - GPS_ACK_IDLE = 0, - GPS_ACK_WAITING = 1, - GPS_ACK_GOT_ACK = 2, - GPS_ACK_GOT_NAK = 3 -} GPS_Ack_State_t; - - -typedef struct -{ - /*! Device file descriptor */ - int DeviceFd; - /*! The current device status */ - GPS_Custom_Status_t Status; - /*! The current baud */ - uint32 Baud; - /*! The current parser status */ - GPS_ParserStatus_t ParserStatus; - /*! The current parser message */ - GPS_DeviceMessage_t Message; - /*! Streaming task priority */ - uint8 Priority; - /*! Streaming child task identifier */ - uint32 ChildTaskID; - /*! Streaming task function pointer */ - CFE_ES_ChildTaskMainFuncPtr_t StreamingTask; - //PX4_GpsDumpMsg_t GpsDumpMsg; - PX4_VehicleGpsPositionMsg_t GpsPositionMsg; - PX4_SatelliteInfoMsg_t GpsSatInfoMsg; - GPS_Ack_State_t AckState; - uint16 AckWaitingMsg; - uint8 AckRcvdMsgCls; - boolean AckWaitingRcvd; - /*! The shared data mutex */ - //uint32 MutexDump; - uint32 MutexPosition; - uint32 MutexSatInfo; - /*! */ - uint32 RateCountVel; - uint32 RateCountLatLon; - boolean GotPosllh; - boolean GotVelned; - /*! Flag to start and stop streaming */ - boolean ContinueFlag; - uint32 TaskFlags; -} GPS_AppCustomData_t; - - -/************************************************************************ -** External Global Variables -*************************************************************************/ -extern GPS_AppCustomData_t GPS_AppCustomData; - -/************************************************************************ -** Function Prototypes -*************************************************************************/ - -/************************************************************************/ -/** \brief Determines if the maximum of event filters has been reached. -** -** \par Description -** This function checks if an index has reached the maximum -** number of events. -** -** \par Assumptions, External Events, and Notes: -** None -** -** \param [in] ind The current index to check. -** -** -** \returns boolean -** -*************************************************************************/ -boolean GPS_Custom_Max_Events_Not_Reached(int32 ind); - - -#ifdef __cplusplus -} -#endif - -#endif /* GPS_CUSTOM_SHARED_H */ diff --git a/config/obc/cpd/target/apps/gps/src/gps_interface_uart/gps_serial.c b/config/obc/cpd/target/apps/gps/src/gps_interface_uart/gps_serial.c deleted file mode 100644 index 128914d73..000000000 --- a/config/obc/cpd/target/apps/gps/src/gps_interface_uart/gps_serial.c +++ /dev/null @@ -1,1272 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ -/************************************************************************ -** Pragmas -*************************************************************************/ - -/************************************************************************ -** Includes -*************************************************************************/ -#include "cfe.h" -#include "gps_serial.h" -#include "gps_perfids.h" -#include "../gps_parser_ubx/gps_ubx_msg.h" -#include "../gps_parser_ubx/gps_parser_ubx_common.h" -#include "msg_ids.h" -#include "px4lib.h" -#include "gps_platform_cfg.h" - -#include "gps_event_driven.h" - -#include -#include -#include -#include -#include -#include -#include - -/************************************************************************ -** Local Defines -*************************************************************************/ - -/************************************************************************ -** Local Structure Declarations -*************************************************************************/ - -/************************************************************************ -** External Global Variables -*************************************************************************/ - -/************************************************************************ -** Global Variables -*************************************************************************/ - -/************************************************************************ -** Local Variables -*************************************************************************/ - -/************************************************************************ -** Local Function Definitions -*************************************************************************/ - - -void GPS_Custom_InitData(void) -{ - /* Set all struct zero values */ - bzero(&GPS_AppCustomData, sizeof(GPS_AppCustomData)); - GPS_AppCustomData.Baud = GPS_SERIAL_IO_SPEED; - GPS_Parser_Reset(); - /* Set all non-zero values */ - GPS_AppCustomData.ContinueFlag = TRUE; - GPS_AppCustomData.StreamingTask = GPS_Stream_Task; -} - - -boolean GPS_Custom_Init() -{ - boolean returnBool = TRUE; - int32 returnCode = 0; - int32 Status = CFE_SUCCESS; - - GPS_AppCustomData.DeviceFd = open(GPS_SERIAL_DEVICE_PATH, O_RDWR | O_NOCTTY); - if (GPS_AppCustomData.DeviceFd < 0) - { - CFE_EVS_SendEvent(GPS_DEVICE_ERR_EID, CFE_EVS_ERROR, - "GPS Device open errno: %i", errno); - returnBool = FALSE; - goto end_of_function; - } - - /* Create mutex for shared data */ - //Status = OS_MutSemCreate(&GPS_AppCustomData.MutexDump, GPS_MUTEX_DUMP, 0); - //if (Status != CFE_SUCCESS) - //{ - //CFE_EVS_SendEvent(GPS_DEVICE_ERR_EID, CFE_EVS_ERROR, - //"GPS mutex create failed in custom init"); - //returnBool = FALSE; - //goto end_of_function; - //} - Status = OS_MutSemCreate(&GPS_AppCustomData.MutexPosition, GPS_MUTEX_POS, 0); - if (Status != CFE_SUCCESS) - { - CFE_EVS_SendEvent(GPS_DEVICE_ERR_EID, CFE_EVS_ERROR, - "GPS mutex create failed in custom init"); - returnBool = FALSE; - goto end_of_function; - } - Status = OS_MutSemCreate(&GPS_AppCustomData.MutexSatInfo, GPS_MUTEX_SAT, 0); - if (Status != CFE_SUCCESS) - { - CFE_EVS_SendEvent(GPS_DEVICE_ERR_EID, CFE_EVS_ERROR, - "GPS mutex create failed in custom init"); - returnBool = FALSE; - goto end_of_function; - } - /* End mutex creation */ - - /* Negatiate and set the baud rate */ - returnBool = GPS_Custom_Negotiate_Baud(GPS_AppCustomData.Baud); - if (FALSE == returnBool) - { - CFE_EVS_SendEvent(GPS_DEVICE_ERR_EID, CFE_EVS_ERROR, - "GPS Device negotiate baud error"); - returnBool = FALSE; - goto end_of_function; - } - //OS_printf("ABOUT TO CONFIGURE MESSAGE RATES\n"); - - /* Configure all the message rates */ - returnBool = GPS_Custom_Configure(); - if (FALSE == returnBool) - { - CFE_EVS_SendEvent(GPS_DEVICE_ERR_EID, CFE_EVS_ERROR, - "GPS Device set configuration error"); - returnBool = FALSE; - goto end_of_function; - } - - /* Create the streaming task */ - returnCode = CFE_ES_CreateChildTask( - &GPS_AppCustomData.ChildTaskID, - GPS_STREAMING_TASK_NAME, - GPS_AppCustomData.StreamingTask, - 0, - (2 * CFE_ES_DEFAULT_STACK_SIZE), - GPS_AppCustomData.Priority, - GPS_CUSTOM_CHILD_TASK_FLAGS); - if(CFE_SUCCESS != returnCode) - { - GPS_AppCustomData.ContinueFlag = FALSE; - returnBool = FALSE; - CFE_EVS_SendEvent(GPS_DEVICE_ERR_EID, CFE_EVS_ERROR, - "GPS create streaming task failed"); - goto end_of_function; - } - else - { - GPS_AppCustomData.Status = GPS_CUSTOM_INITIALIZED; - } - -end_of_function: - return returnBool; -} - - -boolean GPS_Custom_Uninit(void) -{ - boolean returnBool = TRUE; - int returnCode = 0; - - /* Delete the child task */ - CFE_ES_DeleteChildTask(GPS_AppCustomData.ChildTaskID); - /* Set streaming task loop flag to stop */ - GPS_AppCustomData.ContinueFlag = FALSE; - /* Set app state to initialized */ - GPS_AppCustomData.Status = GPS_CUSTOM_INITIALIZED; - - returnCode = close(GPS_AppCustomData.DeviceFd); - if (-1 == returnCode) - { - CFE_EVS_SendEvent(GPS_DEVICE_ERR_EID, CFE_EVS_ERROR, - "GPS Device close errno: %i", errno); - returnBool = FALSE; - } - else - { - GPS_AppCustomData.Status = GPS_CUSTOM_UNINITIALIZED; - } - return returnBool; -} - - -boolean GPS_Custom_Negotiate_Baud(const uint32 Baud) -{ - uint8 i = 0; - uint32 baudRate = 0; - boolean returnBool = TRUE; - /* TODO use struct defined in gps_ubx_msg instead */ - GPS_Payload_TX_CFG_PRT_t portConfig[2]; - const uint32 baudRates[] = {9600, 38400, 19200, 57600, 115200, 230400}; - - for (i = 0; i < sizeof(baudRates) / sizeof(baudRates[0]); i++) - { - baudRate = baudRates[i]; - returnBool = GPS_Custom_Set_Baud(baudRate); - if (FALSE == returnBool) - { - returnBool = FALSE; - goto end_of_function; - } - /* TODO verify this works as expected */ - /* flush input and wait for at least 20 ms silence */ - tcflush(GPS_AppCustomData.DeviceFd, TCIFLUSH); - usleep(20 * 1000); - tcflush(GPS_AppCustomData.DeviceFd, TCIFLUSH); - - /* Send a CFG-PRT message to set the UBX protocol for in and out - * and leave the baudrate as it is, we just want an ACK-ACK for this */ - memset(portConfig, 0, 2 * sizeof(GPS_Payload_TX_CFG_PRT_t)); - portConfig[0].portID = GPS_TX_CFG_PRT_PORTID; - portConfig[0].mode = GPS_TX_CFG_PRT_MODE; - portConfig[0].baudRate = baudRate; - portConfig[0].inProtoMask = GPS_TX_CFG_PRT_INPROTOMASK_GPS; - portConfig[0].outProtoMask = GPS_TX_CFG_PRT_OUTPROTOMASK_GPS; - portConfig[1].portID = GPS_TX_CFG_PRT_PORTID_USB; - portConfig[1].mode = GPS_TX_CFG_PRT_MODE; - portConfig[1].baudRate = baudRate; - portConfig[1].inProtoMask = GPS_TX_CFG_PRT_INPROTOMASK_GPS; - portConfig[1].outProtoMask = GPS_TX_CFG_PRT_OUTPROTOMASK_GPS; - - //printf("portConfig[0].portID %hhu \n", portConfig[0].portID); - //printf("portConfig[0].reserved1 %hhu \n", portConfig[0].reserved1); - //printf("portConfig[0].txReady %hu \n", portConfig[0].txReady); - //printf("portConfig[0].mode %u \n", portConfig[0].mode); - //printf("portConfig[0].baudRate %u \n", portConfig[0].baudRate); - //printf("portConfig[0].inProtoMask %hu \n", portConfig[0].inProtoMask); - //printf("portConfig[0].outProtoMask %hu \n", portConfig[0].outProtoMask); - //printf("portConfig[0].flags %hu \n", portConfig[0].flags); - //printf("portConfig[0].reserved2 %hu \n", portConfig[0].reserved2); - //printf("portConfig[1].portID %hhu \n", portConfig[1].portID); - //printf("portConfig[1].reserved1 %hhu \n", portConfig[1].reserved1); - //printf("portConfig[1].txReady %hu \n", portConfig[1].txReady); - //printf("portConfig[1].mode %u \n", portConfig[1].mode); - //printf("portConfig[1].baudRate %u \n", portConfig[1].baudRate); - //printf("portConfig[1].inProtoMask %hu \n", portConfig[1].inProtoMask); - //printf("portConfig[1].outProtoMask %hu \n", portConfig[1].outProtoMask); - //printf("portConfig[1].flags %hu \n", portConfig[1].flags); - //printf("portConfig[1].reserved2 %hu \n", portConfig[1].reserved2); - - /* send config message */ - returnBool = GPS_Custom_SendMessage(GPS_MESSAGE_CFG_PRT, - (uint8 *)portConfig, 2 * sizeof(GPS_Payload_TX_CFG_PRT_t)); - - if(FALSE == returnBool) - { - /* SendMessage failed try the next baud rate */ - continue; - } - - /* If an ACK is received here we've matched baud rates */ - returnBool = GPS_Custom_WaitForAck(GPS_MESSAGE_CFG_PRT, - GPS_ACK_TIMEOUT); - if(FALSE == returnBool) - { - /* WaitForAck failed try the next baud rate */ - continue; - } - - /* Send a CFG-PRT message again, this time change the baudrate */ - memset(portConfig, 0, 2 * sizeof(GPS_Payload_TX_CFG_PRT_t)); - portConfig[0].portID = GPS_TX_CFG_PRT_PORTID; - portConfig[0].mode = GPS_TX_CFG_PRT_MODE; - portConfig[0].baudRate = Baud; - portConfig[0].inProtoMask = GPS_TX_CFG_PRT_INPROTOMASK_GPS; - portConfig[0].outProtoMask = GPS_TX_CFG_PRT_OUTPROTOMASK_GPS; - portConfig[1].portID = GPS_TX_CFG_PRT_PORTID_USB; - portConfig[1].mode = GPS_TX_CFG_PRT_MODE; - portConfig[1].baudRate = Baud; - portConfig[1].inProtoMask = GPS_TX_CFG_PRT_INPROTOMASK_GPS; - portConfig[1].outProtoMask = GPS_TX_CFG_PRT_OUTPROTOMASK_GPS; - - //printf("portConfig[0].portID %hhu \n", portConfig[0].portID); - //printf("portConfig[0].reserved1 %hhu \n", portConfig[0].reserved1); - //printf("portConfig[0].txReady %hu \n", portConfig[0].txReady); - //printf("portConfig[0].mode %u \n", portConfig[0].mode); - //printf("portConfig[0].baudRate %u \n", portConfig[0].baudRate); - //printf("portConfig[0].inProtoMask %hu \n", portConfig[0].inProtoMask); - //printf("portConfig[0].outProtoMask %hu \n", portConfig[0].outProtoMask); - //printf("portConfig[0].flags %hu \n", portConfig[0].flags); - //printf("portConfig[0].reserved2 %hu \n", portConfig[0].reserved2); - //printf("portConfig[1].portID %hhu \n", portConfig[1].portID); - //printf("portConfig[1].reserved1 %hhu \n", portConfig[1].reserved1); - //printf("portConfig[1].txReady %hu \n", portConfig[1].txReady); - //printf("portConfig[1].mode %u \n", portConfig[1].mode); - //printf("portConfig[1].baudRate %u \n", portConfig[1].baudRate); - //printf("portConfig[1].inProtoMask %hu \n", portConfig[1].inProtoMask); - //printf("portConfig[1].outProtoMask %hu \n", portConfig[1].outProtoMask); - //printf("portConfig[1].flags %hu \n", portConfig[1].flags); - //printf("portConfig[1].reserved2 %hu \n", portConfig[1].reserved2); - - /* send config message */ - returnBool = GPS_Custom_SendMessage(GPS_MESSAGE_CFG_PRT, - (uint8 *)portConfig, 2 * sizeof(GPS_Payload_TX_CFG_PRT_t)); - if(FALSE == returnBool) - { - continue; - } - - /* no ACK is expected here, but read the buffer anyway in case - * we actually get an ACK */ - returnBool = GPS_Custom_WaitForAck(GPS_MESSAGE_CFG_PRT, - GPS_ACK_TIMEOUT); - - /* If the originally baud negotiated is not the baud just set... */ - if (Baud != baudRate) - { - /* Set the same baudrate we configured so both sides - * now match speeds */ - returnBool = GPS_Custom_Set_Baud(Baud); - if (FALSE == returnBool) - { - returnBool = FALSE; - goto end_of_function; - } - } - /* at this point we have correct baudrate on both ends */ - break; - } - - /* If connection or baudrate detection failed */ - if (i >= sizeof(baudRates) / sizeof(baudRates[0])) - { - returnBool = FALSE; - CFE_EVS_SendEvent(GPS_DEVICE_ERR_EID, CFE_EVS_ERROR, - "GPS connection or baudrate detection failed"); - } - -end_of_function: - return returnBool; - -} - - -boolean GPS_Custom_Set_Baud(const uint32 Baud) -{ - int speed = 0; - int termios_state = 0; - boolean returnBool = TRUE; - struct termios uart_config; - - switch (Baud) - { - case 9600: - speed = B9600; - break; - - case 19200: - speed = B19200; - break; - - case 38400: - speed = B38400; - break; - - case 57600: - speed = B57600; - break; - - case 115200: - speed = B115200; - break; - - case 230400: - speed = B230400; - break; - - default: - CFE_EVS_SendEvent(GPS_DEVICE_ERR_EID, CFE_EVS_ERROR, - "GPS set baudrate unknown rate error"); - returnBool = FALSE; - goto end_of_function; - } - - /* fill the struct for the new configuration */ - tcgetattr(GPS_AppCustomData.DeviceFd, &uart_config); - - /* properly configure the terminal (see also https://en.wikibooks.org/wiki/Serial_Programming/termios ) */ - - /* Input flags - Turn off input processing - * convert break to null byte, no CR to NL translation, - * no NL to CR translation, don't mark parity errors or breaks - * no input parity check, don't strip high bit off, - * no XON/XOFF software flow control - */ - uart_config.c_iflag &= ~(IGNBRK | BRKINT | ICRNL | INLCR | PARMRK | - INPCK | ISTRIP | IXON); - /* Output flags - Turn off output processing - * no CR to NL translation, no NL to CR-NL translation, - * no NL to CR translation, no column 0 CR suppression, - * no Ctrl-D suppression, no fill characters, no case mapping, - * no local output processing - * - * config.c_oflag &= ~(OCRNL | ONLCR | ONLRET | - * ONOCR | ONOEOT| OFILL | OLCUC | OPOST); - */ - uart_config.c_oflag = 0; - /* - * No line processing - * echo off, echo newline off, canonical mode off, - * extended input processing off, signal chars off - */ - uart_config.c_lflag &= ~(ECHO | ECHONL | ICANON | IEXTEN | ISIG); - /* no parity, one stop bit */ - uart_config.c_cflag &= ~(CSTOPB | PARENB); - /* set baud rate */ - termios_state = cfsetispeed(&uart_config, speed); - if (termios_state < 0) - { - CFE_EVS_SendEvent(GPS_DEVICE_ERR_EID, CFE_EVS_ERROR, - "GPS Device set input baud rate failed errno: %i", errno); - returnBool = FALSE; - goto end_of_function; - } - termios_state = cfsetospeed(&uart_config, speed); - if (termios_state < 0) - { - CFE_EVS_SendEvent(GPS_DEVICE_ERR_EID, CFE_EVS_ERROR, - "GPS Device set output baud rate failed errno: %i", errno); - returnBool = FALSE; - goto end_of_function; - } - /* set the parameters */ - termios_state = tcsetattr(GPS_AppCustomData.DeviceFd, TCSANOW, &uart_config); - if (termios_state < 0) - { - CFE_EVS_SendEvent(GPS_DEVICE_ERR_EID, CFE_EVS_ERROR, - "GPS Device set terminal parameters failed errno: %i", errno); - returnBool = FALSE; - } - -end_of_function: - - return returnBool; -} - - -int32 GPS_Custom_Receive(uint8 *Buffer, uint32 Length, uint32 Timeout) -{ - int32 returnCode = 0; - int32 bytesRead = 0; - - /* Null check */ - if(0 == Buffer) - { - CFE_EVS_SendEvent(GPS_DEVICE_ERR_EID, CFE_EVS_ERROR, - "GPS receive null pointer"); - goto end_of_function; - } - /* Wait for GPS data */ - returnCode = GPS_Custom_Select(0, 1000 * Timeout); - if (returnCode <= 0) - { - /* Select timeout or error */ - goto end_of_function; - } - /* Select returned > 0, data is ready to be read, wait for more - * data to be available before calling read */ - usleep(GPS_WAIT_BEFORE_READ * 1000); - - /* Read GPS data */ - bytesRead = read(GPS_AppCustomData.DeviceFd, Buffer, Length); - if (bytesRead <= 0) - { - /* Read failed */ - goto end_of_function; - } - -end_of_function: - - return bytesRead; -} - - -int32 GPS_Custom_Select(const uint32 TimeoutSec, const uint32 TimeoutUSec) -{ - int32 returnCode = 0; - uint32 maxFd = 0; - uint32 retryAttempts = 0; - fd_set fds; - struct timeval timeValue; - maxFd = 0; - returnCode = 0; - - while(retryAttempts != GPS_MAX_RETRY_ATTEMPTS) - { - /* Set the timeout */ - timeValue.tv_sec = TimeoutSec; - timeValue.tv_usec = TimeoutUSec; - - /* Initialize the set */ - FD_ZERO(&fds); - - FD_SET(GPS_AppCustomData.DeviceFd, &fds); - - /* Get the greatest fd value for select() */ - maxFd = GPS_AppCustomData.DeviceFd; - - //CFE_ES_PerfLogEntry(GPS_DEVICE_GET_PERF_ID); - /* Wait for RC data */ - returnCode = select(maxFd + 1, &fds, 0, 0, &timeValue); - //CFE_ES_PerfLogExit(GPS_DEVICE_GET_PERF_ID); - - /* select() wasn't successful */ - if (-1 == returnCode) - { - /* select was interrupted, try again */ - if (EINTR == errno) - { - CFE_EVS_SendEvent(GPS_DEVICE_ERR_EID, CFE_EVS_ERROR, - "GPS select was interrupted"); - usleep(GPS_MAX_RETRY_SLEEP_USEC); - retryAttempts++; - continue; - } - else - { - /* select returned an error other than EINTR */ - CFE_EVS_SendEvent(GPS_DEVICE_ERR_EID, CFE_EVS_ERROR, - "GPS select() returned errno: %i", errno); - break; - } - } - /* select timed out */ - if (0 == returnCode) - { - // TODO add state to not raise this event during initialization. - //CFE_EVS_SendEvent(GPS_DEVICE_ERR_EID, CFE_EVS_ERROR, - //"GPS select() timed out"); - break; - } - /* select() returned and data is ready to be read */ - if(returnCode > 0) - { - break; - } - } /* end while loop*/ - - return returnCode; -} - - -boolean GPS_Custom_SetChecksum(const uint8 *buffer, const uint16 length, GPS_Checksum_t *checksum) -{ - uint16 i = 0; - boolean returnBool = TRUE; - - /* Null check */ - if(0 == checksum || 0 == buffer) - { - CFE_EVS_SendEvent(GPS_DEVICE_ERR_EID, CFE_EVS_ERROR, - "GPS set checksum null pointer"); - returnBool = FALSE; - goto end_of_function; - } - - for (i = 0; i < length; i++) - { - checksum->ck_a = checksum->ck_a + buffer[i]; - checksum->ck_b = checksum->ck_b + checksum->ck_a; - } - -end_of_function: - return returnBool; -} - - -boolean GPS_Custom_SendEmptyMessage(const uint16 msg) -{ - boolean returnBool = TRUE; - int bytesWritten = 0; - GPS_Header_t header = { GPS_HEADER_SYNC1_VALUE, - GPS_HEADER_SYNC2_VALUE, - 0, - 0 }; - - GPS_Checksum_t checksum = { 0, 0 }; - - /* Populate header */ - header.msg = msg; - header.length = 0; - - /* Calculate header checksum, skip two sync bytes */ - returnBool = GPS_Custom_SetChecksum((uint8 *)&header + 2, - sizeof(header) - 2, &checksum); - if (FALSE == returnBool) - { - returnBool = FALSE; - goto end_of_function; - } - - /* Send message */ - bytesWritten = write(GPS_AppCustomData.DeviceFd, (void *)&header, - sizeof(header)); - if (bytesWritten != sizeof(header)) - { - returnBool = FALSE; - goto end_of_function; - } - - bytesWritten = write(GPS_AppCustomData.DeviceFd, (void *)&checksum, - sizeof(checksum)); - - if (bytesWritten != sizeof(checksum)) - { - returnBool = FALSE; - } - -end_of_function: - - return returnBool; -} - - -boolean GPS_Custom_SendMessage(const uint16 msg, const uint8 *payload, const uint16 length) -{ - boolean returnBool = TRUE; - int bytesWritten = 0; - GPS_Header_t header = { GPS_HEADER_SYNC1_VALUE, - GPS_HEADER_SYNC2_VALUE, - 0, - 0 }; - - GPS_Checksum_t checksum = { 0, 0 }; - - /* Null check */ - if(0 == payload) - { - CFE_EVS_SendEvent(GPS_DEVICE_ERR_EID, CFE_EVS_ERROR, - "GPS send message null pointer"); - returnBool = FALSE; - goto end_of_function; - } - - /* Populate header */ - header.msg = msg; - header.length = length; - - /* Calculate header checksum, skip two sync bytes */ - returnBool = GPS_Custom_SetChecksum((uint8 *)&header + 2, - sizeof(header) - 2, &checksum); - if (FALSE == returnBool) - { - returnBool = FALSE; - goto end_of_function; - } - - /* Calculate (add) payload checksum */ - returnBool = GPS_Custom_SetChecksum(payload, length, &checksum); - if (FALSE == returnBool) - { - returnBool = FALSE; - goto end_of_function; - } - - /* Send message */ - bytesWritten = write(GPS_AppCustomData.DeviceFd, (void *)&header, - sizeof(header)); - if (bytesWritten != sizeof(header)) - { - returnBool = FALSE; - goto end_of_function; - } - - bytesWritten = write(GPS_AppCustomData.DeviceFd, (void *)payload, - length); - if (bytesWritten != length) - { - returnBool = FALSE; - goto end_of_function; - } - - bytesWritten = write(GPS_AppCustomData.DeviceFd, (void *)&checksum, - sizeof(checksum)); - - if (bytesWritten != sizeof(checksum)) - { - returnBool = FALSE; - } - -end_of_function: - - return returnBool; -} - - -void GPS_Stream_Task(void) -{ - uint32 iStatus = -1; - boolean returnBool = FALSE; - - iStatus = CFE_ES_RegisterChildTask(); - - if (iStatus == CFE_SUCCESS) - { - GPS_AppCustomData.Status = GPS_CUSTOM_STREAMING; - while (GPS_AppCustomData.ContinueFlag == TRUE) - { - returnBool = GPS_Custom_Read_and_Parse(GPS_PACKET_TIMEOUT); - if(returnBool == FALSE) - { - /* TODO remove me*/ - OS_printf("GPS parse and read failed\n"); - } - else - { - GPS_EventDrivenPublish(); - } - } - } - - /* Streaming task is exiting so set app flag to initialized */ - GPS_AppCustomData.Status = GPS_CUSTOM_INITIALIZED; - CFE_EVS_SendEvent(GPS_DEVICE_ERR_EID, CFE_EVS_ERROR, - "GPS receive task exited with task status (0x%08lX)", iStatus); - - /* The child task was successfully registered so exit from it */ - if (iStatus == CFE_SUCCESS) - { - CFE_ES_ExitChildTask(); - } -} - - -boolean GPS_Custom_Read_and_Parse(const uint32 timeout) -{ - boolean returnBool = TRUE; - uint32 i = 0; - uint32 j = 0; - uint16 satCount = 0; - int32 bytesRead = 0; - uint8 from_gps_data[GPS_READ_BUFFER_SIZE]; - boolean done = FALSE; - - bytesRead = GPS_Custom_Receive(&from_gps_data[0], sizeof(from_gps_data), timeout); - - if (bytesRead < 0) - { - returnBool = FALSE; - goto end_of_function; - } - for(i = 0; i < bytesRead; ++i) - { - if(GPS_ParseChar(from_gps_data[i], &GPS_AppCustomData.Message, &done)) - { - /* If parsechar completed a message... */ - if(TRUE == done) - { - /* TODO remove after debug*/ - //OS_printf("ParseChar completed a message\n"); - /* end todo */ - - /* Copy message to the CVT */ - CFE_SB_MsgId_t msgID = CFE_SB_GetMsgId((CFE_SB_Msg_t*)&GPS_AppCustomData.Message); - switch(msgID) - { - case GPS_NAV_DOP_MID: - { - //OS_printf("IN GPS_NAV_DOP_MID\n"); - GPS_NAV_DOP_t *msgIn = (GPS_NAV_DOP_t*) CFE_SB_GetUserData((CFE_SB_Msg_t*)&GPS_AppCustomData.Message); - OS_MutSemTake(GPS_AppCustomData.MutexPosition); - /* from cm to m */ - GPS_AppCustomData.GpsPositionMsg.HDOP = msgIn->hDOP * 0.01f; - /* from cm to m */ - GPS_AppCustomData.GpsPositionMsg.VDOP = msgIn->vDOP * 0.01f; - OS_MutSemGive(GPS_AppCustomData.MutexPosition); - break; - } - case GPS_NAV_NAVPVT_MID: - { - //OS_printf("IN GPS_NAV_NAVPVT_MID\n"); - GPS_NAV_PVT_t *msgIn = (GPS_NAV_PVT_t*) CFE_SB_GetUserData((CFE_SB_Msg_t*)&GPS_AppCustomData.Message); - OS_MutSemTake(GPS_AppCustomData.MutexPosition); - /* Check if position fix flag is good */ - if ((msgIn->flags & GPS_NAV_PVT_FLAGS_GNSSFIXOK) == 1) - { - uint8 carr_soln = msgIn->flags >> 6; - GPS_AppCustomData.GpsPositionMsg.FixType = msgIn->fixType; - - if (msgIn->flags & GPS_NAV_PVT_FLAGS_DIFFSOLN) - { - /* DGPS */ - GPS_AppCustomData.GpsPositionMsg.FixType = 4; - } - - if (carr_soln == 1) - { - /* Float RTK */ - GPS_AppCustomData.GpsPositionMsg.FixType = 5; - - } - else if (carr_soln == 2) - { - /* Fixed RTK */ - GPS_AppCustomData.GpsPositionMsg.FixType = 6; - } - - GPS_AppCustomData.GpsPositionMsg.VelNedValid = TRUE; - } - else - { - GPS_AppCustomData.GpsPositionMsg.FixType = 0; - GPS_AppCustomData.GpsPositionMsg.VelNedValid = FALSE; - } - - GPS_AppCustomData.GpsPositionMsg.SatellitesUsed = - msgIn->numSV; - - GPS_AppCustomData.GpsPositionMsg.Lat = - msgIn->lat; - GPS_AppCustomData.GpsPositionMsg.Lon = - msgIn->lon; - GPS_AppCustomData.GpsPositionMsg.Alt = - msgIn->hMSL; - - GPS_AppCustomData.GpsPositionMsg.EpH = - (float)msgIn->hAcc * 1e-3f; - GPS_AppCustomData.GpsPositionMsg.EpV = - (float)msgIn->vAcc * 1e-3f; - GPS_AppCustomData.GpsPositionMsg.SVariance = - (float)msgIn->sAcc * 1e-3f; - - GPS_AppCustomData.GpsPositionMsg.Vel_m_s = - (float)msgIn->gSpeed * 1e-3f; - - GPS_AppCustomData.GpsPositionMsg.Vel_n_m_s = - (float)msgIn->velN * 1e-3f; - GPS_AppCustomData.GpsPositionMsg.Vel_e_m_s = - (float)msgIn->velE * 1e-3f; - GPS_AppCustomData.GpsPositionMsg.Vel_d_m_s = - (float)msgIn->velD * 1e-3f; - - GPS_AppCustomData.GpsPositionMsg.COG = - (float)msgIn->headMot * M_DEG_TO_RAD_F * 1e-5f; - GPS_AppCustomData.GpsPositionMsg.CVariance = - (float)msgIn->headAcc * M_DEG_TO_RAD_F * 1e-5f; - - //Check if time and date fix flags are good - if ((msgIn->valid & GPS_NAV_PVT_VALID_VALIDDATE) - && (msgIn->valid & GPS_NAV_PVT_VALID_VALIDTIME) - && (msgIn->valid & GPS_NAV_PVT_VALID_FULLYRESOLVED)) - { - /* convert to unix timestamp */ - struct tm timeinfo; - timeinfo.tm_year = msgIn->year - 1900; - timeinfo.tm_mon = msgIn->month - 1; - timeinfo.tm_mday = msgIn->day; - timeinfo.tm_hour = msgIn->hour; - timeinfo.tm_min = msgIn->min; - timeinfo.tm_sec = msgIn->sec; - - time_t epoch = mktime(&timeinfo); - - if (epoch > GPS_EPOCH_SECS) - { - // FMUv2+ boards have a hardware RTC, but GPS helps us to configure it - // and control its drift. Since we rely on the HRT for our monotonic - // clock, updating it from time to time is safe. - - struct timespec ts; - ts.tv_sec = epoch; - ts.tv_nsec = msgIn->nano; - - //setClock(ts); - - GPS_AppCustomData.GpsPositionMsg.TimeUtcUsec = ((uint64)epoch) * 1000000ULL; - GPS_AppCustomData.GpsPositionMsg.TimeUtcUsec += msgIn->nano / 1000; - } - else - { - GPS_AppCustomData.GpsPositionMsg.TimeUtcUsec = 0; - } - } - - GPS_AppCustomData.GpsPositionMsg.Timestamp = PX4LIB_GetPX4TimeUs(); - //GPS_AppCustomData.LastTimeStamp = GPS_AppCustomData.GpsPositionMsg.Timestamp; - - /* TODO position and velocity update rate functions - * and a reset function */ - GPS_AppCustomData.RateCountVel++; - GPS_AppCustomData.RateCountLatLon++; - GPS_AppCustomData.GotPosllh = TRUE; - GPS_AppCustomData.GotVelned = TRUE; - - /* TODO verify this for NAV-PVT */ - //GPS_AppCustomData.GpsPositionMsg.TimestampTimeRelative = 0; - - OS_MutSemGive(GPS_AppCustomData.MutexPosition); - break; - } - case GPS_NAV_SVINFO_MID: - { - //OS_printf("IN GPS_NAV_SVINFO_MID\n"); - GPS_NAV_SVINFO_Combined_t *msgIn = (GPS_NAV_SVINFO_Combined_t*) CFE_SB_GetUserData((CFE_SB_Msg_t*)&GPS_AppCustomData.Message); - - OS_MutSemTake(GPS_AppCustomData.MutexSatInfo); - - GPS_AppCustomData.GpsSatInfoMsg.Count = msgIn->svinfo.numCh; - satCount = GPS_AppCustomData.GpsSatInfoMsg.Count; - - if(GPS_AppCustomData.GpsSatInfoMsg.Count > PX4_SAT_INFO_MAX_SATELLITES) - { - CFE_EVS_SendEvent(GPS_DEVICE_ERR_EID, CFE_EVS_ERROR, - "GPS sat count %hhu > max buffer length %hhu", - GPS_AppCustomData.GpsSatInfoMsg.Count, - PX4_SAT_INFO_MAX_SATELLITES); - satCount = PX4_SAT_INFO_MAX_SATELLITES; - } - for(j = 0; j< satCount; j++) - { - GPS_AppCustomData.GpsSatInfoMsg.Used[j] = - (uint8)(msgIn->numCh[j].flags & 0x01); - GPS_AppCustomData.GpsSatInfoMsg.SNR[j] = - (uint8)(msgIn->numCh[j].cno); - - GPS_AppCustomData.GpsSatInfoMsg.Elevation[j] = - (uint8)(msgIn->numCh[j].elev); - GPS_AppCustomData.GpsSatInfoMsg.Azimuth[j] = - (uint8)((float)msgIn->numCh[j].azim * 255.0f / 360.0f); - GPS_AppCustomData.GpsSatInfoMsg.SVID[j] = - (uint8)(msgIn->numCh[j].svid); - } - - GPS_AppCustomData.GpsSatInfoMsg.Timestamp = PX4LIB_GetPX4TimeUs(); - - OS_MutSemGive(GPS_AppCustomData.MutexSatInfo); - break; - } - case GPS_ACK_NAK_MID: - { - break; - } - case GPS_ACK_ACK_MID: - { - break; - } - case GPS_CFG_PRT_MID: - { - break; - } - case GPS_CFG_MSG_MID: - { - break; - } - case GPS_CFG_RATE_MID: - { - break; - } - case GPS_CFG_SBAS_MID: - { - break; - } - case GPS_CFG_NAV5_MID: - { - break; - } - case GPS_MON_HW_MID: - { - //OS_printf("IN GPS_MON_HW_MID\n"); - OS_MutSemTake(GPS_AppCustomData.MutexPosition); - GPS_MON_HW_t *msgIn = (GPS_MON_HW_t*) CFE_SB_GetUserData((CFE_SB_Msg_t*)&GPS_AppCustomData.Message); - - GPS_AppCustomData.GpsPositionMsg.NoisePerMs = msgIn->noisePerMS; - GPS_AppCustomData.GpsPositionMsg.JammingIndicator = msgIn->jamInd; - - OS_MutSemGive(GPS_AppCustomData.MutexPosition); - break; - } - default: - { - CFE_EVS_SendEvent(GPS_DEVICE_ERR_EID, CFE_EVS_ERROR, - "GPS parser received unexpected message %x", msgID); - } - } - } - } - } - -end_of_function: - return returnBool; -} - - -boolean GPS_Custom_WaitForAck(const uint16 msg, const uint32 timeout) -{ - uint32 i = 0; - int32 bytesRead = 0; - uint8 from_gps_data[GPS_READ_BUFFER_SIZE]; - boolean done = FALSE; - boolean timedOut = FALSE; - boolean returnBool = FALSE; - uint64 timeStamp = 0; - uint64 startTime = 0; - - /* Set the ack state to waiting */ - GPS_AppCustomData.AckState = GPS_ACK_WAITING; - /* Set the message we're looking for */ - GPS_AppCustomData.AckWaitingMsg = msg; - /* Set the received ack boolean to false */ - GPS_AppCustomData.AckWaitingRcvd = FALSE; - - /* Get the start time */ - startTime = PX4LIB_GetPX4TimeUs(); - if(0 == startTime) - { - goto end_of_function; - } - - /* while we haven't timed out keep looking for the message */ - while(FALSE == timedOut) - { - /* Get the loop iteration time */ - timeStamp = PX4LIB_GetPX4TimeUs(); - if(0 == timeStamp) - { - goto end_of_function; - } - - /* If we've timed out out set the flag to true */ - if(timeStamp >= startTime + timeout * 1000) - { - /* TODO remove after debug*/ - //OS_printf("WaitForAck timed out\n"); - /* */ - timedOut = TRUE; - } - - returnBool = GPS_Custom_Read_and_Parse(GPS_PACKET_TIMEOUT); - if(TRUE == returnBool && FALSE == timedOut) - { - /* TODO move to read and parse message decode */ - if(GPS_AppCustomData.AckState == GPS_ACK_GOT_ACK && - GPS_AppCustomData.AckWaitingRcvd == TRUE) - { - /* TODO remove after debug*/ - //OS_printf("Got an ACK\n"); - /* */ - returnBool = TRUE; - goto end_of_function; - } - if(GPS_AppCustomData.AckState == GPS_ACK_GOT_NAK && - GPS_AppCustomData.AckWaitingRcvd == TRUE) - { - /* TODO remove after debug*/ - //OS_printf("Got an NAK\n"); - /* */ - returnBool = FALSE; - goto end_of_function; - } - } - - //bytesRead = GPS_Custom_Receive(&from_gps_data[0], sizeof(from_gps_data), GPS_PACKET_TIMEOUT); - ///* TODO REMOVE ME */ - //for(i = 0; i < bytesRead; ++i) - //{ - //OS_printf(" bytes = %hhx ", from_gps_data[i]); - //} - //OS_printf("\n"); - ///* end todo*/ - //for(i = 0; (FALSE == timedOut) && (i < bytesRead); ++i) - //{ - //GPS_DeviceMessage_t message; - //GPS_ParserStatus_t status; - - //if(GPS_ParseChar(from_gps_data[i], &message, &status, &done)) - //{ - ///* TODO remove after debug*/ - //if(TRUE == done) - //{ - //OS_printf("ParseChar completed a message\n"); - //} - ///* end todo */ - - //if(GPS_AppCustomData.AckState == GPS_ACK_GOT_ACK && - //GPS_AppCustomData.AckWaitingRcvd == TRUE) - //{ - ///* TODO remove after debug*/ - //OS_printf("Got an ACK\n"); - ///* */ - //returnBool = TRUE; - //goto end_of_function; - //} - //if(GPS_AppCustomData.AckState == GPS_ACK_GOT_NAK && - //GPS_AppCustomData.AckWaitingRcvd == TRUE) - //{ - ///* TODO remove after debug*/ - //OS_printf("Got an NAK\n"); - ///* */ - //returnBool = FALSE; - //goto end_of_function; - //} - //} - //} - } - -end_of_function: - -return returnBool; -} - - -boolean GPS_Custom_Configure(void) -{ - boolean returnBool = TRUE; - - /* TODO move this struct define to gps_ubx_msg */ - GPS_Payload_TX_CFG_Rate_t rateConfig; - - GPS_CFG_NAV5_t navConfig; - GPS_CFG_SBAS_t sbasConfig; - - /* Setup rate configuration */ - memset(&rateConfig, 0, sizeof(GPS_Payload_TX_CFG_Rate_t)); - rateConfig.measRate = GPS_TX_CFG_RATE_MEASINTERVAL; - rateConfig.navRate = GPS_TX_CFG_RATE_NAVRATE; - rateConfig.timeRef = GPS_TX_CFG_RATE_TIMEREF; - - /* Setup NAV5 configuration */ - memset(&navConfig, 0, sizeof(GPS_CFG_NAV5_t)); - navConfig.mask = GPS_TX_CFG_NAV5_MASK; - navConfig.dynModel = GPS_TX_CFG_NAV5_DYNMODEL; - navConfig.fixMode = GPS_TX_CFG_NAV5_FIXMODE;; - - /* Setup SBAS configuration */ - memset(&sbasConfig, 0, sizeof(GPS_CFG_SBAS_t)); - sbasConfig.mode = GPS_TX_CFG_SBAS_MODE; - - /* Send a CFG-RATE message to define update rate */ - returnBool = GPS_Custom_SendMessage(GPS_MESSAGE_CFG_RATE, - (uint8 *)&rateConfig, sizeof(GPS_Payload_TX_CFG_Rate_t)); - if(FALSE == returnBool) - { - goto end_of_function; - } - - returnBool = GPS_Custom_WaitForAck(GPS_MESSAGE_CFG_RATE, - GPS_ACK_TIMEOUT); - if(FALSE == returnBool) - { - goto end_of_function; - } - /* send a NAV5 message to set the options for the internal filter */ - returnBool = GPS_Custom_SendMessage(GPS_MESSAGE_CFG_NAV5, - (uint8 *)&navConfig, sizeof(GPS_CFG_NAV5_t)); - if(FALSE == returnBool) - { - goto end_of_function; - } - - returnBool = GPS_Custom_WaitForAck(GPS_MESSAGE_CFG_NAV5, - GPS_ACK_TIMEOUT); - if(FALSE == returnBool) - { - goto end_of_function; - } - /* send a SBAS message to set the SBAS options */ - returnBool = GPS_Custom_SendMessage(GPS_MESSAGE_CFG_SBAS, - (uint8 *)&sbasConfig, sizeof(GPS_CFG_SBAS_t)); - if(FALSE == returnBool) - { - goto end_of_function; - } - - returnBool = GPS_Custom_WaitForAck(GPS_MESSAGE_CFG_SBAS, - GPS_ACK_TIMEOUT); - if(FALSE == returnBool) - { - goto end_of_function; - } - - /* Set NAV-PVT rate */ - returnBool = GPS_Custom_SendMessageRate(GPS_MESSAGE_NAV_PVT, 1); - if(FALSE == returnBool) - { - goto end_of_function; - } - - returnBool = GPS_Custom_WaitForAck(GPS_MESSAGE_CFG_MSG, - GPS_ACK_TIMEOUT); - if(FALSE == returnBool) - { - goto end_of_function; - } - - /* Set NAV-DOP rate */ - returnBool = GPS_Custom_SendMessageRate(GPS_MESSAGE_NAV_DOP, 1); - if(FALSE == returnBool) - { - goto end_of_function; - } - - returnBool = GPS_Custom_WaitForAck(GPS_MESSAGE_CFG_MSG, - GPS_ACK_TIMEOUT); - if(FALSE == returnBool) - { - goto end_of_function; - } - - ///* Set NAV-SVINFO rate */ - //returnBool = GPS_Custom_SendMessageRate(GPS_MESSAGE_NAV_SVINFO, 5); - //if(FALSE == returnBool) - //{ - //goto end_of_function; - //} - - //returnBool = GPS_Custom_WaitForAck(GPS_MESSAGE_CFG_MSG, - //GPS_ACK_TIMEOUT); - //if(FALSE == returnBool) - //{ - //goto end_of_function; - //} - - /* Set MON-HW rate */ - returnBool = GPS_Custom_SendMessageRate(GPS_MESSAGE_MON_HW, 1); - if(FALSE == returnBool) - { - goto end_of_function; - } - - returnBool = GPS_Custom_WaitForAck(GPS_MESSAGE_CFG_MSG, - GPS_ACK_TIMEOUT); - if(FALSE == returnBool) - { - goto end_of_function; - } - -end_of_function: - - return returnBool; -} - - -boolean GPS_Custom_SendMessageRate(const uint16 msg, const uint8 rate) -{ - GPS_Payload_TX_CFG_Rate_Msg_t rateMsgConfig; - memset(&rateMsgConfig, 0, sizeof(rateMsgConfig)); - rateMsgConfig.msg = msg; - rateMsgConfig.rate = rate; - - return GPS_Custom_SendMessage(GPS_MESSAGE_CFG_MSG, - (uint8 *)&rateMsgConfig, sizeof(rateMsgConfig)); - -} diff --git a/config/obc/cpd/target/apps/gps/src/gps_interface_uart/gps_serial.h b/config/obc/cpd/target/apps/gps/src/gps_interface_uart/gps_serial.h deleted file mode 100644 index 488ed009e..000000000 --- a/config/obc/cpd/target/apps/gps/src/gps_interface_uart/gps_serial.h +++ /dev/null @@ -1,658 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ - -#ifndef GPS_SERIAL_H -#define GPS_SERIAL_H -/************************************************************************ -** Includes -*************************************************************************/ -#include "gps_custom.h" -#include "../gps_custom_shared.h" -#include "cfe.h" -#include "px4_msgs.h" - -#ifdef __cplusplus -extern "C" { -#endif -/************************************************************************ -** Local Defines -*************************************************************************/ -/** \brief GPS device path. */ -#define GPS_SERIAL_DEVICE_PATH "/dev/ttyS3" - -/** \brief IO speed. -** -** \par Description: -** The serial IO speed 38400 baud. -*/ -#define GPS_SERIAL_IO_SPEED 38400 - -/** \brief Wait time (ms) before read. -** -** \par Description: -** ms, wait before reading to save read() calls. -*/ -#define GPS_WAIT_BEFORE_READ (20) - -/** \brief GPS packet timeout (ms). -** -** \par Description: -** ms, timeout to receive packet. -*/ -#define GPS_PACKET_TIMEOUT (200) - -/** \brief GPS ack timeout. -** -** \par Description: -** ms, timeout to wait for ack. -*/ -#define GPS_ACK_TIMEOUT (1000) - - -/** \brief GPS payload scanner buffer size. -** -** \par Description: -** GPS payload scanner length. -*/ -//#define GPS_SCANNER_BUFFER_LENGTH (1024) - -/* Message Classes */ -/** \brief Configuration input class. -** -** \par Description: -** UBX class ID configuration. -*/ -#define GPS_MESSAGE_CLASS_CFG (0x06) - - -#define GPS_MESSAGE_CLASS_NAV (0x01) - -#define GPS_MESSAGE_CLASS_MON (0x0A) - -/* Message IDs */ -/** \brief Message ID port configuration. -** -** \par Description: -** Message ID for port configuration. -*/ -#define GPS_MESSAGE_ID_CFG_PRT (0x00) - -/** \brief Message ID rate configuration. -** -** \par Description: -** Message ID for rate configuration. -*/ -#define GPS_MESSAGE_ID_CFG_RATE (0x08) - -/** \brief Message ID for message rate configuration. -** -** \par Description: -** Message ID for message rate configuration. -*/ -#define GPS_MESSAGE_ID_CFG_MSG (0x01) - -/** \brief Message ID NAV5 configuration. -** -** \par Description: -** Message ID for NAV5 configuration. -*/ -#define GPS_MESSAGE_ID_CFG_NAV5 (0x24) - -/** \brief Message ID SBAS configuration. -** -** \par Description: -** Message ID for SBAS configuration. -*/ -#define GPS_MESSAGE_ID_CFG_SBAS (0x16) - -/** \brief Message ID navigation position velocity time solution. -** -** \par Description: -** Message ID for NAV-PVT. -*/ -#define GPS_MESSAGE_ID_NAV_PVT (0x07) - -/** \brief Message ID dilution of precision. -** -** \par Description: -** Message ID for NAV-DOP. -*/ -#define GPS_MESSAGE_ID_NAV_DOP (0x04) - -/** \brief Message ID space vehicle information. -** -** \par Description: -** Message ID for NAV-SVINFO. -*/ -#define GPS_MESSAGE_ID_NAV_SVINFO (0x30) - -/** \brief Message ID extended hardware status. -** -** \par Description: -** Message ID for MON-HW. -*/ -#define GPS_MESSAGE_ID_MON_HW (0x09) - -/* TX CFG-PRT message contents */ -/** \brief UART 1 port number. -** -** \par Description: -** Port interface number. -*/ -#define GPS_TX_CFG_PRT_PORTID (0x01) - -/** \brief Mode bitfield configuration. -** -** \par Description: -** 0b0000100011010000: 8N1 -*/ -#define GPS_TX_CFG_PRT_MODE (0x000008D0) - -/** \brief Input protocol configuration. -** -** \par Description: -** UBX in. -*/ -#define GPS_TX_CFG_PRT_INPROTOMASK_GPS (0x01) - -/** \brief Output protocol configuration. -** -** \par Description: -** UBX out. -*/ -#define GPS_TX_CFG_PRT_OUTPROTOMASK_GPS (0x01) - -/** \brief USB port number. -** -** \par Description: -** Port interface number. -*/ -#define GPS_TX_CFG_PRT_PORTID_USB (0x03) -/* TX CFG-Rate message contents */ - -/** \brief Measurement interval. -** -** \par Description: -** The elapsed time between GNSS measurements. 200ms for 5Hz. -*/ -#define GPS_TX_CFG_RATE_MEASINTERVAL (200) - -/** \brief Navigation measurement rate. -** -** \par Description: -** This parameter is ignosed and the navRate is fixed to 1 in -** protocol versions less than 18. -*/ -#define GPS_TX_CFG_RATE_NAVRATE (1) - -/** \brief Time reference. -** -** \par Description: -** 0: UTC, 1: GPS time. -*/ -#define GPS_TX_CFG_RATE_TIMEREF (0) - -/* TX CFG-NAV5 message contents */ - -/** \brief Nav5 parameters bitmask. -** -** \par Description: -** Only update dynamic model and fix mode. -*/ -#define GPS_TX_CFG_NAV5_MASK (0x0005) - -/** \brief Nav5 position fixing mode. -** -** \par Description: -** 1 2D only, 2 3D only, 3 Auto 2D/3D. -*/ -#define GPS_TX_CFG_NAV5_FIXMODE (2) - -/** \brief Nav5 dynamic platform model. -** -** \par Description: -** 7 = airborne with <2g acceleration. -*/ -#define GPS_TX_CFG_NAV5_DYNMODEL (7) - -/* TX CFG-SBAS message contents */ -/** \brief SBAS configuration mode. -** -** \par Description: -** 1 = SBAS enabled, 2 = SBAS disabled. -*/ -#define GPS_TX_CFG_SBAS_MODE (1) - - - -/* UBX header contents */ -/** \brief Header symbol 1. -** -** \par Description: -** UBX header symbol 1. -*/ -#define GPS_HEADER_SYNC1_VALUE (0xb5) - -/** \brief Header symbol 2. -** -** \par Description: -** UBX header symbol 2. -*/ -#define GPS_HEADER_SYNC2_VALUE (0x62) - -/* Message Classes & IDs */ -#define GPS_MESSAGE_CFG_PRT ((GPS_MESSAGE_CLASS_CFG) | \ - GPS_MESSAGE_ID_CFG_PRT << 8) - -#define GPS_MESSAGE_CFG_RATE ((GPS_MESSAGE_CLASS_CFG) | \ - GPS_MESSAGE_ID_CFG_RATE << 8) - - -#define GPS_MESSAGE_CFG_NAV5 ((GPS_MESSAGE_CLASS_CFG) | \ - GPS_MESSAGE_ID_CFG_NAV5 << 8) - -#define GPS_MESSAGE_CFG_SBAS ((GPS_MESSAGE_CLASS_CFG) | \ - GPS_MESSAGE_ID_CFG_SBAS << 8) - -#define GPS_MESSAGE_CFG_MSG ((GPS_MESSAGE_CLASS_CFG) | \ - GPS_MESSAGE_ID_CFG_MSG << 8) - -#define GPS_MESSAGE_NAV_PVT ((GPS_MESSAGE_CLASS_NAV) | \ - GPS_MESSAGE_ID_NAV_PVT << 8) - -#define GPS_MESSAGE_NAV_DOP ((GPS_MESSAGE_CLASS_NAV) | \ - GPS_MESSAGE_ID_NAV_DOP << 8) - -#define GPS_MESSAGE_NAV_SVINFO ((GPS_MESSAGE_CLASS_NAV) | \ - GPS_MESSAGE_ID_NAV_SVINFO << 8) - -#define GPS_MESSAGE_MON_HW ((GPS_MESSAGE_CLASS_MON) | \ - GPS_MESSAGE_ID_MON_HW << 8) - -/** \brief Retry attemps for interrupted calls. -** -** \par Limits: -** None. -*/ -#define GPS_MAX_RETRY_ATTEMPTS (2) - -/** \brief Sleep time micro seconds for interrupted calls. -** -** \par Limits: -** None. -*/ -#define GPS_MAX_RETRY_SLEEP_USEC (10) - -/** \brief Streaming task priority -** -** \par Limits: -** 0 to MAX_PRIORITY (usually 255) -*/ -#define GPS_STREAMING_TASK_PRIORITY (94) - -/** \brief GPS shared data mutex name. */ -#define GPS_MUTEX_POS "GPS_MUTEX_POS" - -/** \brief GPS shared data mutex name. */ -#define GPS_MUTEX_DUMP "GPS_MUTEX_DUMP" - -/** \brief GPS shared data mutex name. */ -#define GPS_MUTEX_SAT "GPS_MUTEX_SAT" - -/** \brief Streaming task name -** -** \par Limits: -** OS_MAX_API_NAME -*/ -#define GPS_STREAMING_TASK_NAME "GPS_STREAM" - -// TODO: this number seems wrong -#define GPS_EPOCH_SECS ((time_t)1234567890ULL) - -#define M_DEG_TO_RAD_F (0.01745329251994329576f) - -/************************************************************************ -** Structure Declarations -*************************************************************************/ - -#pragma pack(push, 1) -/** - * \brief GPS port configuration payload message. - */ - /* TODO use struct defined in gps_ubx_msg instead */ -typedef struct -{ - /*! Port Identifier Number */ - uint8 portID; - /*! Reserved */ - uint8 reserved1; - /*! TX ready PIN configuration */ - uint16 txReady; - /*! A bit mask describing the UART mode */ - uint32 mode; - /*! Baud rate in bits/second */ - uint32 baudRate; - /*! A mask describing which input protocols are active. */ - uint16 inProtoMask; - /*! A mask describing which output protocols are active. */ - uint16 outProtoMask; - /*! Flags bit mask */ - uint16 flags; - /*! Reserved */ - uint16 reserved2; -} GPS_Payload_TX_CFG_PRT_t; - - -/** - * \brief GPS message rate configuration payload message. - */ -/* TODO move to gps_ubx_msg */ -typedef struct -{ - /*! Measurement Rate */ - uint16 measRate; - /*! Navigation Rate */ - uint16 navRate; - /*! Alignment to reference time: 0 = UTC time, 1 = GPS time */ - uint16 timeRef; -} GPS_Payload_TX_CFG_Rate_t; - - -/* TODO move to gps_ubx_msg*/ -/** - * \brief GPS message rate configuration message. - */ -typedef struct -{ - uint16 msg; - uint8 rate; -} GPS_Payload_TX_CFG_Rate_Msg_t; - -/** - * \brief GPS UBX protocol header. - */ -typedef struct -{ - /*! Sync symbol 1 */ - uint8 sync1; - /*! Sync symbol 1 */ - uint8 sync2; - /*! Message */ - uint16 msg; - /*! Message length */ - uint16 length; -} GPS_Header_t; - -/** - * \brief GPS UBX protocol checksum. - */ -typedef struct -{ - /*! checksum check A*/ - uint8 ck_a; - /*! checksum check B*/ - uint8 ck_b; -} GPS_Checksum_t; - -#pragma pack(pop) - - -/************************************************************************ -** External Global Variables -*************************************************************************/ - -/************************************************************************ -** Function Prototypes -*************************************************************************/ -/************************************************************************/ -/** \brief Negotiate GPS baud rate. -** -** \par Description -** This function tries different baud rates to initially establish -** communication and attempts to set the baud rate specified. -** -** \par Assumptions, External Events, and Notes: -** A device must be initialized before this function is called. -** -** \param [in] Baud The baud rate to attempt to set. -** -** \returns boolean, TRUE for success, FALSE for failure. -** -*************************************************************************/ -boolean GPS_Custom_Negotiate_Baud(const uint32 Baud); - -/************************************************************************/ -/** \brief Set baud rate. -** -** \par Description -** This function attempts to set the baud rate for the opened -** device. -** -** \par Assumptions, External Events, and Notes: -** A device must be initialized before this function is called. -** -** \param [in] Baud The baud rate to attempt to set. -** -** \returns boolean, TRUE for success, FALSE for failure. -** -*************************************************************************/ -boolean GPS_Custom_Set_Baud(const uint32 Baud); - - -/************************************************************************/ -/** \brief Sends a message to the GPS device. -** -** \par Description -** This function attempts to send a message to the GPS device. -** -** \par Assumptions, External Events, and Notes: -** A device must be initialized and baudrate configured before -** this function is called. This function does not send empty -** messages. A payload must be supplied. -** -** \param [in] msg The message id. -** -** \param [in] payload The message payload. -** -** \param [in] length The message length. -** -** \returns boolean, TRUE for success, FALSE for failure. -** -*************************************************************************/ -boolean GPS_Custom_SendMessage(const uint16 msg, const uint8 *payload, const uint16 length); - -/************************************************************************/ -/** \brief Sends a empty message to the GPS device. -** -** \par Description -** This function attempts to send an empty (no payload) message -** to the GPS device. -** -** \par Assumptions, External Events, and Notes: -** A device must be initialized and baudrate configured before -** this function is called. -** -** \param [in] msg The message id. -** -** \returns boolean, TRUE for success, FALSE for failure. -** -*************************************************************************/ -boolean GPS_Custom_SendEmptyMessage(const uint16 msg); - -/************************************************************************/ -/** \brief Set a checksum. -** -** \par Description -** This function calculates and populates the checksum structure. -** -** \par Assumptions, External Events, and Notes: -** None. -** -** \param [in] buffer The buffer to use for checksum -** calculation. -** -** \param [in] length The buffer length. -** -** \param [out] checksum The checksum structure to populate with -** the calculated checksum. -** -** \returns boolean, TRUE for success, FALSE for failure. -** -*************************************************************************/ -boolean GPS_Custom_SetChecksum(const uint8 *buffer, const uint16 length, GPS_Checksum_t *checksum); - - -/************************************************************************/ -/** \brief Receive data from the GPS device. -** -** \par Description -** This receives data by calling select and read. -** -** \par Assumptions, External Events, and Notes: -** None. -** -** \param [out] buffer The output buffer. -** -** \param [in] length The buffer length to attempt to read. -** -** \param [in] Timeout The timeout for select. -** -** \returns int32, returns bytes read if successful, -1 or -** for failure. Select or read will set -** errno. -** -*************************************************************************/ -int32 GPS_Custom_Receive(uint8 *Buffer, uint32 Length, uint32 Timeout); - - -/************************************************************************/ -/** \brief Call select and wait for data from the GPS device. -** -** \par Description -** This function calls select with the timeout specified. -** -** \par Assumptions, External Events, and Notes: -** None. -** -** \param [in] TimeoutSec The timeout in seconds. -** -** \param [in] TimeoutUSec The timeout in microseconds. -** -** \returns int32, returns greater than 0 for success, 0 -** for timeout, negative value for error. -** -*************************************************************************/ -int32 GPS_Custom_Select(const uint32 TimeoutSec, const uint32 TimeoutUSec); - -/************************************************************************/ -/** \brief Wait for an acknowledgement. -** -** \par Description -** This function waits for a specified period for a message. -** -** \par Assumptions, External Events, and Notes: -** None. -** -** \param [in] msg The message to wait for an ack for. -** -** \param [in] timeout The timeout to wait. -** -** \returns boolean, TRUE for success, FALSE for failure. -** -*************************************************************************/ -boolean GPS_Custom_WaitForAck(const uint16 msg, const uint32 timeout); - - -/************************************************************************/ -/** \brief Configures the GPS device. -** -** \par Description -** This sends all the configuration messages. -** -** \par Assumptions, External Events, and Notes: -** None. -** -** \returns TRUE for success, FALSE for failure. -** -*************************************************************************/ -boolean GPS_Custom_Configure(void); - -/************************************************************************/ -/** \brief Configure a message rate. -** -** \par Description -** Configure message rates. -** -** \par Assumptions, External Events, and Notes: -** The rate argument is the divisor for the measurement rate. -** i.e. 1 means 5Hz. -** -** \param [in] msg The message to set a rate for. -** -** \param [in] rate The divisor for the measurement rate. -** -** \returns TRUE for success, FALSE for failure. -** -*************************************************************************/ -boolean GPS_Custom_SendMessageRate(const uint16 msg, const uint8 rate); - - -/************************************************************************/ -/** \brief The stream task that actively reads the GPS input stream. -** -** \par Description -** This thread runs until uninit. -** -*************************************************************************/ -void GPS_Stream_Task(void); - - -/************************************************************************/ -/** \brief Reads and parses messages from the GPS device. -** -** \par Description -** This should be called from waitforack or in the stream task -** thread repeatedly. -** -** \param [in] timeout The read timeout. -** -** \returns TRUE for success, FALSE for failure. -** -*************************************************************************/ -boolean GPS_Custom_Read_and_Parse(const uint32 timeout); - -#ifdef __cplusplus -} -#endif - -#endif /* GPS_SERIAL_H */ diff --git a/config/obc/cpd/target/apps/gps/src/gps_parser_ubx/gps_parser_ubx_ack.c b/config/obc/cpd/target/apps/gps/src/gps_parser_ubx/gps_parser_ubx_ack.c deleted file mode 100644 index 21e7717d0..000000000 --- a/config/obc/cpd/target/apps/gps/src/gps_parser_ubx/gps_parser_ubx_ack.c +++ /dev/null @@ -1,200 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ -/************************************************************************* -** -** Include section -** -**************************************************************************/ - -#include "cfe.h" -//#include "GPS_events.h" -//#include "GPS_msgids.h" -#include "gps_parser_ubx_ack.h" - -/************************************************************************* -** -** Macro definitions -** -**************************************************************************/ -#define GPS_PARSER_ACK_ACK_MSG_LENGTH (2) -#define GPS_PARSER_ACK_NAK_MSG_LENGTH (2) - -/************************************************************************* -** -** Type definitions -** -**************************************************************************/ - -/* -** (none) -*/ - -/************************************************************************* -** -** Imported data -** -**************************************************************************/ - -/* -** (none) -*/ - -/************************************************************************* -** -** Exported data -** -**************************************************************************/ - - - -/************************************************************************* -** -** File data -** -**************************************************************************/ - -/* -** (none) -*/ - -/************************************************************************* -** Local function prototypes -**************************************************************************/ -void GPS_Ack_ParseChar_ACK(uint8 byte, GPS_DeviceMessage_t* message) -{ - uint16 checkMsg = 0; - if(GPS_AppCustomData.ParserStatus.MsgLength != GPS_PARSER_ACK_ACK_MSG_LENGTH) - { - GPS_AppCustomData.ParserStatus.ParseError++; - CFE_EVS_SendEvent(GPS_INIT_DEVICE_PARSER_ERR_EID, CFE_EVS_ERROR, - "Received ACK message with incorrect length (%u).", GPS_AppCustomData.ParserStatus.MsgLength); - GPS_Parser_Reset(); - } - else - { - GPS_ACK_ACK_t *payload = (void*)CFE_SB_GetUserData((CFE_SB_MsgPtr_t)message); - switch(GPS_AppCustomData.ParserStatus.PayloadCursor) - { - case 0: - { - CFE_SB_MsgId_t sbMsgID = GPS_TranslateMsgID(GPS_AppCustomData.ParserStatus.ClassID, GPS_AppCustomData.ParserStatus.MsgID); - uint16 sbHdrSize = CFE_SB_MsgHdrSize(sbMsgID); - uint16 sbTotalMsgSize = sbHdrSize + GPS_AppCustomData.ParserStatus.MsgLength; - CFE_SB_InitMsg(message, sbMsgID, sbTotalMsgSize, TRUE); - - payload->clsID = byte; - GPS_AppCustomData.AckRcvdMsgCls = byte; - break; - } - case 1: - { - payload->msgID = byte; - - checkMsg = ((GPS_AppCustomData.AckRcvdMsgCls) | byte << 8); - - if(GPS_ACK_WAITING == GPS_AppCustomData.AckState) - { - if(checkMsg == GPS_AppCustomData.AckWaitingMsg) - { - GPS_AppCustomData.AckState = GPS_ACK_GOT_ACK; - GPS_AppCustomData.AckWaitingRcvd = TRUE; - } - } - GPS_Parser_StateChange(GPS_PARSE_STATE_GOT_PAYLOAD); - break; - } - default: - { - GPS_Parser_Reset(); - return; - } - } - } -} - - -void GPS_Ack_ParseChar_NAK(uint8 byte, GPS_DeviceMessage_t* message) -{ - uint16 checkMsg = 0; - if(GPS_AppCustomData.ParserStatus.MsgLength != GPS_PARSER_ACK_NAK_MSG_LENGTH) - { - GPS_AppCustomData.ParserStatus.ParseError++; - CFE_EVS_SendEvent(GPS_INIT_DEVICE_PARSER_ERR_EID, CFE_EVS_ERROR, - "Received ACK message with incorrect length (%u).", GPS_AppCustomData.ParserStatus.MsgLength); - GPS_Parser_Reset(); - } - else - { - GPS_ACK_NAK_t *payload = (void*)CFE_SB_GetUserData((CFE_SB_MsgPtr_t)message); - switch(GPS_AppCustomData.ParserStatus.PayloadCursor) - { - case 0: - { - CFE_SB_MsgId_t sbMsgID = GPS_TranslateMsgID(GPS_AppCustomData.ParserStatus.ClassID, GPS_AppCustomData.ParserStatus.MsgID); - uint16 sbHdrSize = CFE_SB_MsgHdrSize(sbMsgID); - uint16 sbTotalMsgSize = sbHdrSize + GPS_AppCustomData.ParserStatus.MsgLength; - CFE_SB_InitMsg(message, sbMsgID, sbTotalMsgSize, TRUE); - - payload->clsID = byte; - GPS_AppCustomData.AckRcvdMsgCls = byte; - break; - } - case 1: - { - payload->msgID = byte; - - checkMsg = ((GPS_AppCustomData.AckRcvdMsgCls) | byte << 8); - if(GPS_ACK_WAITING == GPS_AppCustomData.AckState) - { - if(checkMsg == GPS_AppCustomData.AckWaitingMsg) - { - GPS_AppCustomData.AckState = GPS_ACK_GOT_NAK; - GPS_AppCustomData.AckWaitingRcvd = TRUE; - } - } - GPS_Parser_StateChange(GPS_PARSE_STATE_GOT_PAYLOAD); - break; - } - default: - { - GPS_Parser_Reset(); - return; - } - } - } -} - -/************************/ -/* End of File Comment */ -/************************/ - diff --git a/config/obc/cpd/target/apps/gps/src/gps_parser_ubx/gps_parser_ubx_ack.h b/config/obc/cpd/target/apps/gps/src/gps_parser_ubx/gps_parser_ubx_ack.h deleted file mode 100644 index bb3f7b863..000000000 --- a/config/obc/cpd/target/apps/gps/src/gps_parser_ubx/gps_parser_ubx_ack.h +++ /dev/null @@ -1,99 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ -/************************************************************************* -** -** Include section -** -**************************************************************************/ -#ifndef _GPS_PARSER_UBX_ACK_H_ -#define _GPS_PARSER_UBX_ACK_H_ - -#include "cfe.h" -#include "../gps_custom_shared.h" -//#include "GPS_events.h" -//#include "GPS_msgids.h" -#include "gps_parser_ubx_common.h" -#include "gps_ubx_msg.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/************************************************************************* -** -** Macro definitions -** -**************************************************************************/ - - -/************************************************************************* -** -** Type definitions -** -**************************************************************************/ - -/* -** (none) -*/ - -/************************************************************************* -** -** Imported data -** -**************************************************************************/ - -/* -** (none) -*/ - -/************************************************************************* -** -** Exported data -** -**************************************************************************/ - - -void GPS_Ack_ParseChar_ACK(uint8 byte, GPS_DeviceMessage_t* message); -void GPS_Ack_ParseChar_NAK(uint8 byte, GPS_DeviceMessage_t* message); - - -#ifdef __cplusplus -} -#endif - -#endif /* _GPS_PARSER_UBX_CFG_H_ */ - -/************************/ -/* End of File Comment */ -/************************/ - diff --git a/config/obc/cpd/target/apps/gps/src/gps_parser_ubx/gps_parser_ubx_cfg.c b/config/obc/cpd/target/apps/gps/src/gps_parser_ubx/gps_parser_ubx_cfg.c deleted file mode 100644 index d1354ab0d..000000000 --- a/config/obc/cpd/target/apps/gps/src/gps_parser_ubx/gps_parser_ubx_cfg.c +++ /dev/null @@ -1,912 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ -/************************************************************************* -** -** Include section -** -**************************************************************************/ - -#include "cfe.h" -#include "../gps_custom_shared.h" -//#include "GPS_events.h" -//#include "GPS_msgids.h" -#include "gps_parser_ubx_cfg.h" - -/************************************************************************* -** -** Macro definitions -** -**************************************************************************/ -#define GPS_PARSER_CFG_CFG_MSG_LENGTH1 (12) -#define GPS_PARSER_CFG_CFG_MSG_LENGTH2 (13) -#define GPS_PARSER_CFG_NAV5_MSG_LENGTH (36) -#define GPS_PARSER_CFG_SBAS_MSG_LENGTH (8) -#define GPS_PARSER_CFG_TMODE3_MSG_LENGTH (40) -#define GPS_PARSER_CFG_PRT_MSG_LENGTH (20) -#define GPS_PARSER_CFG_MSG_MSG_LENGTH1 (8) -#define GPS_PARSER_CFG_MSG_MSG_LENGTH2 (8) - -/************************************************************************* -** -** Type definitions -** -**************************************************************************/ - -/* -** (none) -*/ - -/************************************************************************* -** -** Imported data -** -**************************************************************************/ - -/* -** (none) -*/ - -/************************************************************************* -** -** Exported data -** -**************************************************************************/ - - - -/************************************************************************* -** -** File data -** -**************************************************************************/ - -/* -** (none) -*/ - -/************************************************************************* -** Local function prototypes -**************************************************************************/ -void GPS_Cfg_ParseChar_CFG(uint8 byte, GPS_DeviceMessage_t* message) -{ - if(GPS_AppCustomData.ParserStatus.MsgLength != GPS_PARSER_CFG_CFG_MSG_LENGTH1 || - GPS_PARSER_CFG_CFG_MSG_LENGTH2) - { - GPS_AppCustomData.ParserStatus.ParseError++; - CFE_EVS_SendEvent(GPS_INIT_DEVICE_PARSER_ERR_EID, CFE_EVS_ERROR, - "Received CFG message with incorrect length (%u).", GPS_AppCustomData.ParserStatus.MsgLength); - GPS_Parser_Reset(); - } - else - { - GPS_CFG_CFG_t *payload = (void*)CFE_SB_GetUserData((CFE_SB_MsgPtr_t)message); - switch(GPS_AppCustomData.ParserStatus.PayloadCursor) - { - case 0: - { - CFE_SB_MsgId_t sbMsgID = GPS_TranslateMsgID(GPS_AppCustomData.ParserStatus.ClassID, GPS_AppCustomData.ParserStatus.MsgID); - uint16 sbHdrSize = CFE_SB_MsgHdrSize(sbMsgID); - uint16 sbTotalMsgSize = sbHdrSize + GPS_AppCustomData.ParserStatus.MsgLength; - CFE_SB_InitMsg(message, sbMsgID, sbTotalMsgSize, TRUE); - - payload->clearMask = byte; - break; - } - case 1: - { - payload->clearMask += byte << 8; - break; - } - case 2: - { - payload->clearMask += byte << 16; - break; - } - case 3: - { - payload->clearMask += byte << 24; - break; - } - case 4: - { - payload->saveMask = byte; - break; - } - case 5: - { - payload->saveMask += byte << 8; - break; - } - case 6: - { - payload->saveMask += byte << 16; - break; - } - case 7: - { - payload->saveMask += byte << 24; - break; - } - case 8: - { - payload->loadMask = byte; - break; - } - case 9: - { - payload->loadMask += byte << 8; - break; - } - case 10: - { - payload->loadMask += byte << 16; - break; - } - case 11: - { - payload->loadMask += byte << 24; - if(GPS_AppCustomData.ParserStatus.MsgLength == GPS_PARSER_CFG_CFG_MSG_LENGTH1) - { - GPS_Parser_StateChange(GPS_PARSE_STATE_GOT_PAYLOAD); - } - break; - } - case 12: - { - payload->deviceMask = byte; - GPS_Parser_StateChange(GPS_PARSE_STATE_GOT_PAYLOAD); - break; - } - default: - { - GPS_Parser_Reset(); - return; - } - } - } -} - - -void GPS_Cfg_ParseChar_NAV5(uint8 byte, GPS_DeviceMessage_t* message) -{ - if(GPS_AppCustomData.ParserStatus.MsgLength != GPS_PARSER_CFG_NAV5_MSG_LENGTH) - { - GPS_AppCustomData.ParserStatus.ParseError++; - CFE_EVS_SendEvent(GPS_INIT_DEVICE_PARSER_ERR_EID, CFE_EVS_ERROR, - "Received NAV5 message with incorrect length (%u).", GPS_AppCustomData.ParserStatus.MsgLength); - GPS_Parser_Reset(); - } - else - { - GPS_CFG_NAV5_t *payload = (void*)CFE_SB_GetUserData((CFE_SB_MsgPtr_t)message); - switch(GPS_AppCustomData.ParserStatus.PayloadCursor) - { - case 0: - { - CFE_SB_MsgId_t sbMsgID = GPS_TranslateMsgID(GPS_AppCustomData.ParserStatus.ClassID, GPS_AppCustomData.ParserStatus.MsgID); - uint16 sbHdrSize = CFE_SB_MsgHdrSize(sbMsgID); - uint16 sbTotalMsgSize = sbHdrSize + GPS_AppCustomData.ParserStatus.MsgLength; - CFE_SB_InitMsg(message, sbMsgID, sbTotalMsgSize, TRUE); - - payload->mask = byte; - break; - } - case 1: - { - payload->mask += byte << 8; - break; - } - case 2: - { - payload->dynModel = byte; - break; - } - case 3: - { - payload->fixMode = byte; - break; - } - case 4: - { - payload->fixedAlt = byte; - break; - } - case 5: - { - payload->fixedAlt += byte << 8; - break; - } - case 6: - { - payload->fixedAlt += byte << 16; - break; - } - case 7: - { - payload->fixedAlt += byte << 24; - break; - } - case 8: - { - payload->fixedAltVar = byte; - break; - } - case 9: - { - payload->fixedAltVar += byte << 8; - break; - } - case 10: - { - payload->fixedAltVar += byte << 16; - break; - } - case 11: - { - payload->fixedAltVar += byte << 24; - break; - } - case 12: - { - payload->minElev = byte; - break; - } - case 13: - { - payload->drLimit = byte; - break; - } - case 14: - { - payload->pDop = byte; - break; - } - case 15: - { - payload->pDop += byte << 8; - break; - } - case 16: - { - payload->tDop = byte; - break; - } - case 17: - { - payload->tDop += byte << 8; - break; - } - case 18: - { - payload->pAcc = byte; - break; - } - case 19: - { - payload->pAcc += byte << 8; - break; - } - case 20: - { - payload->tAcc = byte; - break; - } - case 21: - { - payload->tAcc += byte << 8; - break; - } - case 22: - { - payload->staticHoldThresh = byte; - break; - } - case 23: - { - payload->dgnssTimeout = byte; - break; - } - case 24: - { - payload->cnoThreshNumSVs = byte; - break; - } - case 25: - { - payload->cnoThresh = byte; - break; - } - case 26: - { - payload->reserved1 = byte; - break; - } - case 27: - { - payload->reserved1 += byte << 8; - break; - } - case 28: - { - payload->staticHoldMaxDist = byte; - break; - } - case 29: - { - payload->staticHoldMaxDist += byte << 8; - break; - } - case 30: - { - payload->utcStandard = byte; - break; - } - case 31: - { - payload->reserved2 = byte; - break; - } - case 32: - { - payload->reserved3 = byte; - break; - } - case 33: - { - payload->reserved3 += byte << 8; - break; - } - case 34: - { - payload->reserved3 += byte << 16; - break; - } - case 35: - { - payload->reserved3 += byte << 24; - GPS_Parser_StateChange(GPS_PARSE_STATE_GOT_PAYLOAD); - break; - } - default: - { - GPS_Parser_Reset(); - return; - } - } - } -} - - -void GPS_Cfg_ParseChar_SBAS(uint8 byte, GPS_DeviceMessage_t* message) -{ - if(GPS_AppCustomData.ParserStatus.MsgLength != GPS_PARSER_CFG_SBAS_MSG_LENGTH) - { - GPS_AppCustomData.ParserStatus.ParseError++; - CFE_EVS_SendEvent(GPS_INIT_DEVICE_PARSER_ERR_EID, CFE_EVS_ERROR, - "Received NAV5 message with incorrect length (%u).", GPS_AppCustomData.ParserStatus.MsgLength); - GPS_Parser_Reset(); - } - else - { - GPS_CFG_SBAS_t *payload = (void*)CFE_SB_GetUserData((CFE_SB_MsgPtr_t)message); - switch(GPS_AppCustomData.ParserStatus.PayloadCursor) - { - case 0: - { - CFE_SB_MsgId_t sbMsgID = GPS_TranslateMsgID(GPS_AppCustomData.ParserStatus.ClassID, GPS_AppCustomData.ParserStatus.MsgID); - uint16 sbHdrSize = CFE_SB_MsgHdrSize(sbMsgID); - uint16 sbTotalMsgSize = sbHdrSize + GPS_AppCustomData.ParserStatus.MsgLength; - CFE_SB_InitMsg(message, sbMsgID, sbTotalMsgSize, TRUE); - - payload->mode = byte; - break; - } - case 1: - { - payload->usage = byte; - break; - } - case 2: - { - payload->maxSBAS = byte; - break; - } - case 3: - { - payload->scanmode2 = byte; - break; - } - case 4: - { - payload->scanmode1 = byte; - break; - } - case 5: - { - payload->scanmode1 += byte << 8; - break; - } - case 6: - { - payload->scanmode1 += byte << 16; - break; - } - case 7: - { - payload->scanmode1 += byte << 24; - GPS_Parser_StateChange(GPS_PARSE_STATE_GOT_PAYLOAD); - break; - } - default: - { - GPS_Parser_Reset(); - return; - } - } - } -} - - -void GPS_Cfg_ParseChar_TMODE3(uint8 byte, GPS_DeviceMessage_t* message) -{ - if(GPS_AppCustomData.ParserStatus.MsgLength != GPS_PARSER_CFG_SBAS_MSG_LENGTH) - { - GPS_AppCustomData.ParserStatus.ParseError++; - CFE_EVS_SendEvent(GPS_INIT_DEVICE_PARSER_ERR_EID, CFE_EVS_ERROR, - "Received NAV5 message with incorrect length (%u).", GPS_AppCustomData.ParserStatus.MsgLength); - GPS_Parser_Reset(); - } - else - { - GPS_CFG_TMODE3_t *payload = (void*)CFE_SB_GetUserData((CFE_SB_MsgPtr_t)message); - switch(GPS_AppCustomData.ParserStatus.PayloadCursor) - { - case 0: - { - CFE_SB_MsgId_t sbMsgID = GPS_TranslateMsgID(GPS_AppCustomData.ParserStatus.ClassID, GPS_AppCustomData.ParserStatus.MsgID); - uint16 sbHdrSize = CFE_SB_MsgHdrSize(sbMsgID); - uint16 sbTotalMsgSize = sbHdrSize + GPS_AppCustomData.ParserStatus.MsgLength; - CFE_SB_InitMsg(message, sbMsgID, sbTotalMsgSize, TRUE); - - payload->version = byte; - break; - } - case 1: - { - payload->reserved1 = byte; - break; - } - case 2: - { - payload->flags = byte; - break; - } - case 3: - { - payload->flags = byte << 8; - break; - } - case 4: - { - payload->ecefXOrLat = byte; - break; - } - case 5: - { - payload->ecefXOrLat += byte << 8; - break; - } - case 6: - { - payload->ecefXOrLat += byte << 16; - break; - } - case 7: - { - payload->ecefXOrLat += byte << 24; - break; - } - case 8: - { - payload->ecefYOrLon = byte; - break; - } - case 9: - { - payload->ecefYOrLon += byte << 8; - break; - } - case 10: - { - payload->ecefYOrLon += byte << 16; - break; - } - case 11: - { - payload->ecefYOrLon += byte << 24; - break; - } - case 12: - { - payload->ecefZOrAlt = byte; - break; - } - case 13: - { - payload->ecefZOrAlt += byte << 8; - break; - } - case 14: - { - payload->ecefZOrAlt += byte << 16; - break; - } - case 15: - { - payload->ecefZOrAlt += byte << 24; - break; - } - case 16: - { - payload->ecefXOrLatHP = byte; - break; - } - case 17: - { - payload->ecefYOrLonHP = byte; - break; - } - case 18: - { - payload->ecefZOrAltHP = byte; - break; - } - case 19: - { - payload->reserved2 = byte; - break; - } - case 20: - { - payload->fixedPosAcc = byte; - break; - } - case 21: - { - payload->fixedPosAcc += byte << 8; - break; - } - case 22: - { - payload->fixedPosAcc += byte << 16; - break; - } - case 23: - { - payload->fixedPosAcc += byte << 24; - break; - } - case 24: - { - payload->svinMinDur = byte; - break; - } - case 25: - { - payload->svinMinDur += byte << 8; - break; - } - case 26: - { - payload->svinMinDur += byte << 16; - break; - } - case 27: - { - payload->svinMinDur += byte << 24; - break; - } - case 28: - { - payload->svinAccLimit = byte; - break; - } - case 29: - { - payload->svinAccLimit += byte << 8; - break; - } - case 30: - { - payload->svinAccLimit += byte << 16; - break; - } - case 31: - { - payload->svinAccLimit += byte << 24; - break; - } - case 32: - { - payload->reserved3[0] = byte; - break; - } - case 33: - { - payload->reserved3[1] = byte; - break; - } - case 34: - { - payload->reserved3[2] = byte; - break; - } - case 35: - { - payload->reserved3[3] = byte; - break; - } - case 36: - { - payload->reserved3[4] = byte; - break; - } - case 37: - { - payload->reserved3[5] = byte; - break; - } - case 38: - { - payload->reserved3[6] = byte; - break; - } - case 39: - { - payload->reserved3[7] = byte; - GPS_Parser_StateChange(GPS_PARSE_STATE_GOT_PAYLOAD); - break; - } - default: - { - GPS_Parser_Reset(); - return; - } - } - } -} - - -void GPS_Cfg_ParseChar_PRT(uint8 byte, GPS_DeviceMessage_t* message) -{ - if(GPS_AppCustomData.ParserStatus.MsgLength != GPS_PARSER_CFG_SBAS_MSG_LENGTH) - { - GPS_AppCustomData.ParserStatus.ParseError++; - CFE_EVS_SendEvent(GPS_INIT_DEVICE_PARSER_ERR_EID, CFE_EVS_ERROR, - "Received NAV5 message with incorrect length (%u).", GPS_AppCustomData.ParserStatus.MsgLength); - GPS_Parser_Reset(); - } - else - { - GPS_CFG_PRT_t *payload = (void*)CFE_SB_GetUserData((CFE_SB_MsgPtr_t)message); - switch(GPS_AppCustomData.ParserStatus.PayloadCursor) - { - case 0: - { - CFE_SB_MsgId_t sbMsgID = GPS_TranslateMsgID(GPS_AppCustomData.ParserStatus.ClassID, GPS_AppCustomData.ParserStatus.MsgID); - uint16 sbHdrSize = CFE_SB_MsgHdrSize(sbMsgID); - uint16 sbTotalMsgSize = sbHdrSize + GPS_AppCustomData.ParserStatus.MsgLength; - CFE_SB_InitMsg(message, sbMsgID, sbTotalMsgSize, TRUE); - - payload->portID = byte; - break; - } - case 1: - { - payload->reserved1 = byte; - break; - } - case 2: - { - payload->txReady = byte; - break; - } - case 3: - { - payload->txReady = byte << 8; - break; - } - case 4: - { - payload->mode = byte; - break; - } - case 5: - { - payload->mode += byte << 8; - break; - } - case 6: - { - payload->mode += byte << 16; - break; - } - case 7: - { - payload->mode += byte << 24; - break; - } - case 8: - { - payload->baudRate = byte; - break; - } - case 9: - { - payload->baudRate += byte << 8; - break; - } - case 10: - { - payload->baudRate += byte << 16; - break; - } - case 11: - { - payload->baudRate += byte << 24; - break; - } - case 12: - { - payload->inProtoMask = byte; - break; - } - case 13: - { - payload->inProtoMask += byte << 8; - break; - } - case 14: - { - payload->outProtoMask = byte; - break; - } - case 15: - { - payload->outProtoMask += byte << 8; - break; - } - case 16: - { - payload->flags = byte; - break; - } - case 17: - { - payload->flags += byte << 8; - break; - } - case 18: - { - payload->reserved2 = byte; - break; - } - case 19: - { - payload->reserved2 += byte << 8; - GPS_Parser_StateChange(GPS_PARSE_STATE_GOT_PAYLOAD); - break; - } - default: - { - GPS_Parser_Reset(); - return; - } - } - } -} - - -void GPS_Cfg_ParseChar_MSG(uint8 byte, GPS_DeviceMessage_t* message) -{ - if(GPS_AppCustomData.ParserStatus.MsgLength != GPS_PARSER_CFG_SBAS_MSG_LENGTH) - { - GPS_AppCustomData.ParserStatus.ParseError++; - CFE_EVS_SendEvent(GPS_INIT_DEVICE_PARSER_ERR_EID, CFE_EVS_ERROR, - "Received NAV5 message with incorrect length (%u).", GPS_AppCustomData.ParserStatus.MsgLength); - GPS_Parser_Reset(); - } - else - { - GPS_CFG_MSG_t *payload = (void*)CFE_SB_GetUserData((CFE_SB_MsgPtr_t)message); - switch(GPS_AppCustomData.ParserStatus.PayloadCursor) - { - case 0: - { - CFE_SB_MsgId_t sbMsgID = GPS_TranslateMsgID(GPS_AppCustomData.ParserStatus.ClassID, GPS_AppCustomData.ParserStatus.MsgID); - uint16 sbHdrSize = CFE_SB_MsgHdrSize(sbMsgID); - uint16 sbTotalMsgSize = sbHdrSize + GPS_AppCustomData.ParserStatus.MsgLength; - CFE_SB_InitMsg(message, sbMsgID, sbTotalMsgSize, TRUE); - - payload->msgClass = byte; - break; - } - case 1: - { - payload->msgID = byte; - break; - } - case 2: - { - payload->rate[0] = byte; - break; - } - case 3: - { - payload->rate[1] = byte; - break; - } - case 4: - { - payload->rate[2] = byte; - break; - } - case 5: - { - payload->rate[3] = byte; - break; - } - case 6: - { - payload->rate[4] = byte; - break; - } - case 7: - { - payload->rate[5] = byte; - GPS_Parser_StateChange(GPS_PARSE_STATE_GOT_PAYLOAD); - break; - } - default: - { - GPS_Parser_Reset(); - return; - } - } - } -} - -/************************/ -/* End of File Comment */ -/************************/ - diff --git a/config/obc/cpd/target/apps/gps/src/gps_parser_ubx/gps_parser_ubx_cfg.h b/config/obc/cpd/target/apps/gps/src/gps_parser_ubx/gps_parser_ubx_cfg.h deleted file mode 100644 index 89ff7120e..000000000 --- a/config/obc/cpd/target/apps/gps/src/gps_parser_ubx/gps_parser_ubx_cfg.h +++ /dev/null @@ -1,103 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ -/************************************************************************* -** -** Include section -** -**************************************************************************/ -#ifndef _GPS_PARSER_UBX_CFG_H_ -#define _GPS_PARSER_UBX_CFG_H_ - -#ifdef __cplusplus -extern "C" { -#endif - -#include "cfe.h" -#include "../gps_custom_shared.h" -//#include "GPS_events.h" -//#include "GPS_msgids.h" -#include "gps_parser_ubx_common.h" -#include "gps_ubx_msg.h" - - -/************************************************************************* -** -** Macro definitions -** -**************************************************************************/ - - -/************************************************************************* -** -** Type definitions -** -**************************************************************************/ - -/* -** (none) -*/ - -/************************************************************************* -** -** Imported data -** -**************************************************************************/ - -/* -** (none) -*/ - -/************************************************************************* -** -** Exported data -** -**************************************************************************/ - - -void GPS_Cfg_ParseChar_CFG(uint8 byte, GPS_DeviceMessage_t* message); -void GPS_Cfg_ParseChar_NAV5(uint8 byte, GPS_DeviceMessage_t* message); -void GPS_Cfg_ParseChar_SBAS(uint8 byte, GPS_DeviceMessage_t* message); -void GPS_Cfg_ParseChar_TMODE3(uint8 byte, GPS_DeviceMessage_t* message); -void GPS_Cfg_ParseChar_PRT(uint8 byte, GPS_DeviceMessage_t* message); -void GPS_Cfg_ParseChar_MSG(uint8 byte, GPS_DeviceMessage_t* message); - -#ifdef __cplusplus -} -#endif - -#endif /* _GPS_PARSER_UBX_CFG_H_ */ - -/************************/ -/* End of File Comment */ -/************************/ - diff --git a/config/obc/cpd/target/apps/gps/src/gps_parser_ubx/gps_parser_ubx_common.c b/config/obc/cpd/target/apps/gps/src/gps_parser_ubx/gps_parser_ubx_common.c deleted file mode 100644 index d8bf3595d..000000000 --- a/config/obc/cpd/target/apps/gps/src/gps_parser_ubx/gps_parser_ubx_common.c +++ /dev/null @@ -1,1608 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ - -/************************************************************************ -** Includes -*************************************************************************/ -#include "cfe.h" -#include "gps_parser_ubx_common.h" -#include "msg_ids.h" -//#include "GPS_events.h" -//#include "GPS_msgids.h" - - -/************************************************************************ -** Local Defines -*************************************************************************/ - -/************************************************************************ -** Structure Declarations -*************************************************************************/ - -/************************************************************************* -** Local function prototypes -**************************************************************************/ - -void GPS_SetChecksum(uint8 *Buffer, uint16 Size) -{ - uint8 ckA = 0; - uint8 ckB = 0; - uint16 i = 0; - - for(i = 2; i < (Size-2); ++i) - { - ckA = ckA + Buffer[i]; - ckB = ckB + ckA; - } - - Buffer[Size-2] = ckA; - Buffer[Size-1] = ckB; -} - - -void GPS_Parser_Reset() -{ - GPS_AppCustomData.ParserStatus.ParseState = GPS_PARSE_STATE_IDLE; -} - - -void GPS_Parser_StateChange(GPS_ParserState_t newState) -{ - switch(newState) - { - case GPS_PARSE_STATE_UNINIT: - { - break; - } - - case GPS_PARSE_STATE_IDLE: - { - break; - } - - case GPS_PARSE_STATE_GOT_SYNC1: - { - break; - } - - case GPS_PARSE_STATE_GOT_SYNC2: - { - break; - } - - case GPS_PARSE_STATE_GOT_CLASS: - { - break; - } - - case GPS_PARSE_STATE_GOT_ID: - { - break; - } - - case GPS_PARSE_STATE_GOT_LENGTH1: - { - break; - } - - case GPS_PARSE_STATE_GOT_LENGTH2: - { - GPS_AppCustomData.ParserStatus.PayloadCursor = 0; - break; - } - - case GPS_PARSE_STATE_GOT_PAYLOAD: - { - break; - } - - case GPS_PARSE_STATE_GOT_CHECKSUMA: - { - break; - } - - case GPS_PARSE_STATE_GOT_CHECKSUMB: - { - break; - } - - default: - { - break; - } - } - - GPS_AppCustomData.ParserStatus.ParseState = newState; -} - - -uint16 GPS_ParseChar(uint8 byte, GPS_DeviceMessage_t* message, boolean *done) -{ - uint16 msg_received = 0; - - switch(GPS_AppCustomData.ParserStatus.ParseState) - { - - case GPS_PARSE_STATE_UNINIT: - { - GPS_AppCustomData.ParserStatus.ParseError++; - CFE_EVS_SendEvent(GPS_INIT_DEVICE_PARSER_ERR_EID, CFE_EVS_ERROR, - "Parser not initialized"); - break; - } - - case GPS_PARSE_STATE_IDLE: - { - if(byte == GPS_PARSER_SYNC1_VALUE) - { - GPS_Parser_StateChange(GPS_PARSE_STATE_GOT_SYNC1); - } - else if(byte == 0xff) - { - *done = TRUE; - } - else - { - //GPS_AppCustomData.ParserStatus.ParseError++; - //CFE_EVS_SendEvent(GPS_INIT_DEVICE_PARSER_ERR_EID, CFE_EVS_ERROR, - // "Received unexpected byte (0x%.2x) in IDLE state.", byte); - } - break; - } - - case GPS_PARSE_STATE_GOT_SYNC1: - { - if(byte == GPS_PARSER_SYNC2_VALUE) - { - GPS_Parser_StateChange(GPS_PARSE_STATE_GOT_SYNC2); - } - else - { - GPS_AppCustomData.ParserStatus.ParseError++; - CFE_EVS_SendEvent(GPS_INIT_DEVICE_PARSER_ERR_EID, CFE_EVS_ERROR, - "Received unexpected byte (0x%.2x) in GOT_SYNC1 state", byte); - GPS_Parser_Reset(); - } - break; - } - - case GPS_PARSE_STATE_GOT_SYNC2: - { - switch(byte) - { - case GPS_PARSER_CLASS_NAV_VALUE: - /* Fall through */ - case GPS_PARSER_CLASS_RXM_VALUE: - /* Fall through */ - case GPS_PARSER_CLASS_INF_VALUE: - /* Fall through */ - case GPS_PARSER_CLASS_ACK_VALUE: - /* Fall through */ - case GPS_PARSER_CLASS_CFG_VALUE: - /* Fall through */ - case GPS_PARSER_CLASS_UPD_VALUE: - /* Fall through */ - case GPS_PARSER_CLASS_MON_VALUE: - /* Fall through */ - case GPS_PARSER_CLASS_AID_VALUE: - /* Fall through */ - case GPS_PARSER_CLASS_TIM_VALUE: - /* Fall through */ - case GPS_PARSER_CLASS_ESF_VALUE: - /* Fall through */ - case GPS_PARSER_CLASS_MGA_VALUE: - /* Fall through */ - case GPS_PARSER_CLASS_LOG_VALUE: - /* Fall through */ - case GPS_PARSER_CLASS_SEC_VALUE: - /* Fall through */ - case GPS_PARSER_CLASS_HNR_VALUE: - { - GPS_AppCustomData.ParserStatus.ClassID = byte; - GPS_Parser_StateChange(GPS_PARSE_STATE_GOT_CLASS); - break; - } - - default: - { - GPS_AppCustomData.ParserStatus.ParseError++; - CFE_EVS_SendEvent(GPS_INIT_DEVICE_PARSER_ERR_EID, CFE_EVS_ERROR, - "Received message with unexpected class ID (0x%.2x)", byte); - GPS_Parser_Reset(); - } - } - break; - } - - case GPS_PARSE_STATE_GOT_CLASS: - { - switch(GPS_AppCustomData.ParserStatus.ClassID) - { - case GPS_PARSER_CLASS_NAV_VALUE: - { - switch(byte) - { - case GPS_PARSER_NAV_POSECEF_ID_VALUE: - /* Fall through */ - case GPS_PARSER_NAV_POSLLH_ID_VALUE: - /* Fall through */ - case GPS_PARSER_NAV_STATUS_ID_VALUE: - /* Fall through */ - case GPS_PARSER_NAV_DOP_ID_VALUE: - /* Fall through */ - case GPS_PARSER_NAV_ATT_ID_VALUE: - /* Fall through */ - case GPS_PARSER_NAV_SOL_ID_VALUE: - /* Fall through */ - case GPS_PARSER_NAV_NAVPVT_ID_VALUE: - /* Fall through */ - case GPS_PARSER_NAV_ODO_ID_VALUE: - /* Fall through */ - case GPS_PARSER_NAV_RESETODO_ID_VALUE: - /* Fall through */ - case GPS_PARSER_NAV_VELECEF_ID_VALUE: - /* Fall through */ - case GPS_PARSER_NAV_VELNED_ID_VALUE: - /* Fall through */ - case GPS_PARSER_NAV_TIMEGPS_ID_VALUE: - /* Fall through */ - case GPS_PARSER_NAV_TIMEUTC_ID_VALUE: - /* Fall through */ - case GPS_PARSER_NAV_CLOCK_ID_VALUE: - /* Fall through */ - case GPS_PARSER_NAV_TIMEGLO_ID_VALUE: - /* Fall through */ - case GPS_PARSER_NAV_TIMEBDS_ID_VALUE: - /* Fall through */ - case GPS_PARSER_NAV_TIMEGAL_ID_VALUE: - /* Fall through */ - case GPS_PARSER_NAV_TIMELS_ID_VALUE: - /* Fall through */ - case GPS_PARSER_NAV_SVINFO_ID_VALUE: - /* Fall through */ - case GPS_PARSER_NAV_DGPS_ID_VALUE: - /* Fall through */ - case GPS_PARSER_NAV_SBAS_ID_VALUE: - /* Fall through */ - case GPS_PARSER_NAV_ORB_ID_VALUE: - /* Fall through */ - case GPS_PARSER_NAV_NAVSAT_ID_VALUE: - /* Fall through */ - case GPS_PARSER_NAV_GEOFENCE_ID_VALUE: - /* Fall through */ - case GPS_PARSER_NAV_AOPSTATUS_ID_VALUE: - /* Fall through */ - case GPS_PARSER_NAV_EOE_ID_VALUE: - { - GPS_AppCustomData.ParserStatus.MsgID = byte; - GPS_Parser_StateChange(GPS_PARSE_STATE_GOT_ID); - break; - } - - default: - { - GPS_AppCustomData.ParserStatus.ParseError++; - CFE_EVS_SendEvent(GPS_INIT_DEVICE_PARSER_ERR_EID, CFE_EVS_ERROR, - "Received message with unexpected message ID (0x%.2x) for NAV class.", byte); - GPS_Parser_Reset(); - } - } - break; - } - - case GPS_PARSER_CLASS_RXM_VALUE: - { - switch(byte) - { - case GPS_PARSER_RXM_SFRBX_ID_VALUE: - /* Fall through */ - case GPS_PARSER_RXM_MEASX_ID_VALUE: - /* Fall through */ - case GPS_PARSER_RXM_RAWX_ID_VALUE: - /* Fall through */ - case GPS_PARSER_RXM_SVSI_ID_VALUE: - /* Fall through */ - case GPS_PARSER_RXM_PMREQ_ID_VALUE: - /* Fall through */ - case GPS_PARSER_RXM_RLM_ID_VALUE: - /* Fall through */ - case GPS_PARSER_RXM_IMES_ID_VALUE: - { - GPS_AppCustomData.ParserStatus.MsgID = byte; - GPS_Parser_StateChange(GPS_PARSE_STATE_GOT_ID); - break; - } - - default: - { - GPS_AppCustomData.ParserStatus.ParseError++; - CFE_EVS_SendEvent(GPS_INIT_DEVICE_PARSER_ERR_EID, CFE_EVS_ERROR, - "Received message with unexpected message ID (0x%.2x) for RXM class.", byte); - GPS_Parser_Reset(); - } - } - } - - case GPS_PARSER_CLASS_INF_VALUE: - { - switch(byte) - { - case GPS_PARSER_INF_ERROR_ID_VALUE: - /* Fall through */ - case GPS_PARSER_INF_WARNING_ID_VALUE: - /* Fall through */ - case GPS_PARSER_INF_NOTICE_ID_VALUE: - /* Fall through */ - case GPS_PARSER_INF_TEST_ID_VALUE: - /* Fall through */ - case GPS_PARSER_INF_DEBUG_ID_VALUE: - { - GPS_AppCustomData.ParserStatus.MsgID = byte; - GPS_Parser_StateChange(GPS_PARSE_STATE_GOT_ID); - break; - } - - default: - { - GPS_AppCustomData.ParserStatus.ParseError++; - CFE_EVS_SendEvent(GPS_INIT_DEVICE_PARSER_ERR_EID, CFE_EVS_ERROR, - "Received message with unexpected message ID (0x%.2x) for INF class.", byte); - GPS_Parser_Reset(); - } - } - break; - } - - case GPS_PARSER_CLASS_ACK_VALUE: - { - switch(byte) - { - case GPS_PARSER_ACK_NAK_ID_VALUE: - { - GPS_AppCustomData.ParserStatus.MsgID = byte; - GPS_Parser_StateChange(GPS_PARSE_STATE_GOT_ID); - break; - } - case GPS_PARSER_ACK_ACK_ID_VALUE: - { - GPS_AppCustomData.ParserStatus.MsgID = byte; - GPS_Parser_StateChange(GPS_PARSE_STATE_GOT_ID); - break; - } - - default: - { - GPS_AppCustomData.ParserStatus.ParseError++; - CFE_EVS_SendEvent(GPS_INIT_DEVICE_PARSER_ERR_EID, CFE_EVS_ERROR, - "Received message with unexpected message ID (0x%.2x) for ACK class.", byte); - GPS_Parser_Reset(); - } - } - break; - } - - case GPS_PARSER_CLASS_CFG_VALUE: - { - switch(byte) - { - case GPS_PARSER_CFG_PRT_ID_VALUE: - /* Fall through */ - case GPS_PARSER_CFG_MSG_ID_VALUE: - /* Fall through */ - case GPS_PARSER_CFG_INF_ID_VALUE: - /* Fall through */ - case GPS_PARSER_CFG_RST_ID_VALUE: - /* Fall through */ - case GPS_PARSER_CFG_DAT_ID_VALUE: - /* Fall through */ - case GPS_PARSER_CFG_RATE_ID_VALUE: - /* Fall through */ - case GPS_PARSER_CFG_CFG_ID_VALUE: - /* Fall through */ - case GPS_PARSER_CFG_RXM_ID_VALUE: - /* Fall through */ - case GPS_PARSER_CFG_ANT_ID_VALUE: - /* Fall through */ - case GPS_PARSER_CFG_SBAS_ID_VALUE: - /* Fall through */ - case GPS_PARSER_CFG_NMEA_ID_VALUE: - /* Fall through */ - case GPS_PARSER_CFG_USB_ID_VALUE: - /* Fall through */ - case GPS_PARSER_CFG_ODO_ID_VALUE: - /* Fall through */ - case GPS_PARSER_CFG_NAVX5_ID_VALUE: - /* Fall through */ - case GPS_PARSER_CFG_NAV5_ID_VALUE: - /* Fall through */ - case GPS_PARSER_CFG_TP5_ID_VALUE: - /* Fall through */ - case GPS_PARSER_CFG_RINV_ID_VALUE: - /* Fall through */ - case GPS_PARSER_CFG_ITFM_ID_VALUE: - /* Fall through */ - case GPS_PARSER_CFG_PM2_ID_VALUE: - /* Fall through */ - case GPS_PARSER_CFG_TMOD2_ID_VALUE: - /* Fall through */ - case GPS_PARSER_CFG_GNSS_ID_VALUE: - /* Fall through */ - case GPS_PARSER_CFG_LOGFILTER_ID_VALUE: - /* Fall through */ - case GPS_PARSER_CFG_PWR_ID_VALUE: - /* Fall through */ - case GPS_PARSER_CFG_TXSLOT_ID_VALUE: - /* Fall through */ - case GPS_PARSER_CFG_HNR_ID_VALUE: - /* Fall through */ - case GPS_PARSER_CFG_ESRC_ID_VALUE: - /* Fall through */ - case GPS_PARSER_CFG_DOSC_ID_VALUE: - /* Fall through */ - case GPS_PARSER_CFG_SMGR_ID_VALUE: - /* Fall through */ - case GPS_PARSER_CFG_GEOFENCE_ID_VALUE: - /* Fall through */ - case GPS_PARSER_CFG_FIXSEED_ID_VALUE: - /* Fall through */ - case GPS_PARSER_CFG_DYNSEED_ID_VALUE: - /* Fall through */ - case GPS_PARSER_CFG_PMS_ID_VALUE: - { - GPS_AppCustomData.ParserStatus.MsgID = byte; - GPS_Parser_StateChange(GPS_PARSE_STATE_GOT_ID); - break; - } - - default: - { - GPS_AppCustomData.ParserStatus.ParseError++; - CFE_EVS_SendEvent(GPS_INIT_DEVICE_PARSER_ERR_EID, CFE_EVS_ERROR, - "Received message with unexpected message ID (0x%.2x) for CFG class.", byte); - GPS_Parser_Reset(); - } - } - break; - } - - case GPS_PARSER_CLASS_UPD_VALUE: - { - switch(byte) - { - case GPS_PARSER_UPD_SOS_ID_VALUE: - { - GPS_AppCustomData.ParserStatus.MsgID = byte; - GPS_Parser_StateChange(GPS_PARSE_STATE_GOT_ID); - break; - } - - default: - { - GPS_AppCustomData.ParserStatus.ParseError++; - CFE_EVS_SendEvent(GPS_INIT_DEVICE_PARSER_ERR_EID, CFE_EVS_ERROR, - "Received message with unexpected message ID (0x%.2x) for UPD class.", byte); - GPS_Parser_Reset(); - } - } - break; - } - - case GPS_PARSER_CLASS_MON_VALUE: - { - switch(byte) - { - case GPS_PARSER_MON_IO_ID_VALUE: - /* Fall through */ - case GPS_PARSER_MON_VER_ID_VALUE: - /* Fall through */ - case GPS_PARSER_MON_MSGPP_ID_VALUE: - /* Fall through */ - case GPS_PARSER_MON_RXBUF_ID_VALUE: - /* Fall through */ - case GPS_PARSER_MON_TXBUF_ID_VALUE: - /* Fall through */ - case GPS_PARSER_MON_HW_ID_VALUE: - /* Fall through */ - case GPS_PARSER_MON_HW2_ID_VALUE: - /* Fall through */ - case GPS_PARSER_MON_RXR_ID_VALUE: - /* Fall through */ - case GPS_PARSER_MON_PATCH_ID_VALUE: - /* Fall through */ - case GPS_PARSER_MON_GNSS_ID_VALUE: - /* Fall through */ - case GPS_PARSER_MON_SMGR_ID_VALUE: - { - GPS_AppCustomData.ParserStatus.MsgID = byte; - GPS_Parser_StateChange(GPS_PARSE_STATE_GOT_ID); - break; - } - - default: - { - GPS_AppCustomData.ParserStatus.ParseError++; - CFE_EVS_SendEvent(GPS_INIT_DEVICE_PARSER_ERR_EID, CFE_EVS_ERROR, - "Received message with unexpected message ID (0x%.2x) for MON class.", byte); - GPS_Parser_Reset(); - } - } - break; - } - - case GPS_PARSER_CLASS_AID_VALUE: - { - switch(byte) - { - case GPS_PARSER_AID_INI_ID_VALUE: - /* Fall through */ - case GPS_PARSER_AID_HUI_ID_VALUE: - /* Fall through */ - case GPS_PARSER_AID_ALM_ID_VALUE: - /* Fall through */ - case GPS_PARSER_AID_EPH_ID_VALUE: - /* Fall through */ - case GPS_PARSER_AID_AOP_ID_VALUE: - { - GPS_AppCustomData.ParserStatus.MsgID = byte; - GPS_Parser_StateChange(GPS_PARSE_STATE_GOT_ID); - break; - } - - default: - { - GPS_AppCustomData.ParserStatus.ParseError++; - CFE_EVS_SendEvent(GPS_INIT_DEVICE_PARSER_ERR_EID, CFE_EVS_ERROR, - "Received message with unexpected message ID (0x%.2x) for AID class.", byte); - GPS_Parser_Reset(); - } - } - break; - } - - case GPS_PARSER_CLASS_TIM_VALUE: - { - switch(byte) - { - case GPS_PARSER_TIM_TP_ID_VALUE: - /* Fall through */ - case GPS_PARSER_TIM_TM2_ID_VALUE: - /* Fall through */ - case GPS_PARSER_TIM_SVIN_ID_VALUE: - /* Fall through */ - case GPS_PARSER_TIM_VRFY_ID_VALUE: - /* Fall through */ - case GPS_PARSER_TIM_DOSC_ID_VALUE: - /* Fall through */ - case GPS_PARSER_TIM_TOS_ID_VALUE: - /* Fall through */ - case GPS_PARSER_TIM_SMEAS_ID_VALUE: - /* Fall through */ - case GPS_PARSER_TIM_VCOCAL_ID_VALUE: - /* Fall through */ - case GPS_PARSER_TIM_FCHG_ID_VALUE: - /* Fall through */ - case GPS_PARSER_TIM_HOC_ID_VALUE: - { - GPS_AppCustomData.ParserStatus.MsgID = byte; - GPS_Parser_StateChange(GPS_PARSE_STATE_GOT_ID); - break; - } - - default: - { - GPS_AppCustomData.ParserStatus.ParseError++; - CFE_EVS_SendEvent(GPS_INIT_DEVICE_PARSER_ERR_EID, CFE_EVS_ERROR, - "Received message with unexpected message ID (0x%.2x) for TIM class.", byte); - GPS_Parser_Reset(); - } - } - break; - } - - case GPS_PARSER_CLASS_ESF_VALUE: - { - switch(byte) - { - case GPS_PARSER_ESF_MEAS_ID_VALUE: - /* Fall through */ - case GPS_PARSER_ESF_RAW_ID_VALUE: - /* Fall through */ - case GPS_PARSER_ESF_INS_ID_VALUE: - /* Fall through */ - case GPS_PARSER_ESF_STATUS_ID_VALUE: - { - GPS_AppCustomData.ParserStatus.MsgID = byte; - GPS_Parser_StateChange(GPS_PARSE_STATE_GOT_ID); - break; - } - - default: - { - GPS_AppCustomData.ParserStatus.ParseError++; - CFE_EVS_SendEvent(GPS_INIT_DEVICE_PARSER_ERR_EID, CFE_EVS_ERROR, - "Received message with unexpected message ID (0x%.2x) for ESF class.", byte); - GPS_Parser_Reset(); - } - } - break; - } - - case GPS_PARSER_CLASS_MGA_VALUE: - { - switch(byte) - { - case GPS_PARSER_MGA_GPS_ID_VALUE: - /* Fall through */ - case GPS_PARSER_MGA_GAL_ID_VALUE: - /* Fall through */ - case GPS_PARSER_MGA_BDS_ID_VALUE: - /* Fall through */ - case GPS_PARSER_MGA_QZSS_ID_VALUE: - /* Fall through */ - case GPS_PARSER_MGA_GLO_ID_VALUE: - /* Fall through */ - case GPS_PARSER_MGA_ANO_ID_VALUE: - /* Fall through */ - case GPS_PARSER_MGA_FLASH_ID_VALUE: - /* Fall through */ - case GPS_PARSER_MGA_INI_XYZ_ID_VALUE: - /* Fall through */ - case GPS_PARSER_MGA_ACK_DATA0_ID_VALUE: - /* Fall through */ - case GPS_PARSER_MGA_DBD_ID_VALUE: - { - GPS_AppCustomData.ParserStatus.MsgID = byte; - GPS_Parser_StateChange(GPS_PARSE_STATE_GOT_ID); - break; - } - - default: - { - GPS_AppCustomData.ParserStatus.ParseError++; - CFE_EVS_SendEvent(GPS_INIT_DEVICE_PARSER_ERR_EID, CFE_EVS_ERROR, - "Received message with unexpected message ID (0x%.2x) for MGA class.", byte); - GPS_Parser_Reset(); - } - } - break; - } - - case GPS_PARSER_CLASS_LOG_VALUE: - { - switch(byte) - { - case GPS_PARSER_LOG_ERASE_ID_VALUE: - /* Fall through */ - case GPS_PARSER_LOG_STRING_ID_VALUE: - /* Fall through */ - case GPS_PARSER_LOG_CREATE_ID_VALUE: - /* Fall through */ - case GPS_PARSER_LOG_INFO_ID_VALUE: - /* Fall through */ - case GPS_PARSER_LOG_RETRIEVE_ID_VALUE: - /* Fall through */ - case GPS_PARSER_LOG_RETRIEVEPOS_ID_VALUE: - /* Fall through */ - case GPS_PARSER_LOG_RETRIEVESTRING_ID_VALUE: - /* Fall through */ - case GPS_PARSER_LOG_FINDTIME_ID_VALUE: - /* Fall through */ - case GPS_PARSER_LOG_RETRIEVEPOSEXTRA_ID_VALUE: - { - GPS_AppCustomData.ParserStatus.MsgID = byte; - GPS_Parser_StateChange(GPS_PARSE_STATE_GOT_ID); - break; - } - - default: - { - GPS_AppCustomData.ParserStatus.ParseError++; - CFE_EVS_SendEvent(GPS_INIT_DEVICE_PARSER_ERR_EID, CFE_EVS_ERROR, - "Received message with unexpected message ID (0x%.2x) for LOG class.", byte); - GPS_Parser_Reset(); - } - } - break; - } - - case GPS_PARSER_CLASS_SEC_VALUE: - { - switch(byte) - { - case GPS_PARSER_SEC_SIGN_ID_VALUE: - /* Fall through */ - case GPS_PARSER_SEC_UNIQID_ID_VALUE: - { - GPS_AppCustomData.ParserStatus.MsgID = byte; - GPS_Parser_StateChange(GPS_PARSE_STATE_GOT_ID); - break; - } - - default: - { - GPS_AppCustomData.ParserStatus.ParseError++; - CFE_EVS_SendEvent(GPS_INIT_DEVICE_PARSER_ERR_EID, CFE_EVS_ERROR, - "Received message with unexpected message ID (0x%.2x) for SEC class.", byte); - GPS_Parser_Reset(); - } - } - break; - } - - case GPS_PARSER_CLASS_HNR_VALUE: - { - switch(byte) - { - case GPS_PARSER_HNR_PVT_ID_VALUE: - { - GPS_AppCustomData.ParserStatus.MsgID = byte; - GPS_Parser_StateChange(GPS_PARSE_STATE_GOT_ID); - break; - } - - default: - { - GPS_AppCustomData.ParserStatus.ParseError++; - CFE_EVS_SendEvent(GPS_INIT_DEVICE_PARSER_ERR_EID, CFE_EVS_ERROR, - "Received message with unexpected message ID (0x%.2x) for HNR class.", byte); - GPS_Parser_Reset(); - } - } - break; - } - - default: - { - GPS_AppCustomData.ParserStatus.ParseError++; - CFE_EVS_SendEvent(GPS_INIT_DEVICE_PARSER_ERR_EID, CFE_EVS_ERROR, - "Received message with unexpected class ID (0x%.2x)", byte); - GPS_Parser_Reset(); - } - } - break; - } - - case GPS_PARSE_STATE_GOT_ID: - { - GPS_AppCustomData.ParserStatus.MsgLength = byte; - GPS_Parser_StateChange(GPS_PARSE_STATE_GOT_LENGTH1); - break; - } - - case GPS_PARSE_STATE_GOT_LENGTH1: - { - GPS_AppCustomData.ParserStatus.MsgLength += byte << 8; - GPS_Parser_StateChange(GPS_PARSE_STATE_GOT_LENGTH2); - break; - } - - case GPS_PARSE_STATE_GOT_LENGTH2: - { - switch(GPS_AppCustomData.ParserStatus.ClassID) - { - case GPS_PARSER_CLASS_NAV_VALUE: - { - switch(GPS_AppCustomData.ParserStatus.MsgID) - { - case GPS_PARSER_NAV_POSECEF_ID_VALUE: - { - GPS_Nav_ParseChar_POSECEF(byte, message); - GPS_AppCustomData.ParserStatus.PayloadCursor++; - break; - } - - case GPS_PARSER_NAV_POSLLH_ID_VALUE: - { - GPS_Nav_ParseChar_POSLLH(byte, message); - GPS_AppCustomData.ParserStatus.PayloadCursor++; - break; - } - - case GPS_PARSER_NAV_STATUS_ID_VALUE: - { - GPS_Nav_ParseChar_STATUS(byte, message); - GPS_AppCustomData.ParserStatus.PayloadCursor++; - break; - } - - case GPS_PARSER_NAV_DOP_ID_VALUE: - { - GPS_Nav_ParseChar_DOP(byte, message); - GPS_AppCustomData.ParserStatus.PayloadCursor++; - break; - } - - case GPS_PARSER_NAV_ATT_ID_VALUE: - { - GPS_Nav_ParseChar_ATT(byte, message); - GPS_AppCustomData.ParserStatus.PayloadCursor++; - break; - } - - case GPS_PARSER_NAV_SOL_ID_VALUE: - { - GPS_Nav_ParseChar_SOL(byte, message); - GPS_AppCustomData.ParserStatus.PayloadCursor++; - break; - } - - case GPS_PARSER_NAV_NAVPVT_ID_VALUE: - { - GPS_Nav_ParseChar_PVT(byte, message); - GPS_AppCustomData.ParserStatus.PayloadCursor++; - break; - } - - case GPS_PARSER_NAV_ODO_ID_VALUE: - { - GPS_Nav_ParseChar_ODO(byte, message); - GPS_AppCustomData.ParserStatus.PayloadCursor++; - break; - } - - case GPS_PARSER_NAV_RESETODO_ID_VALUE: - { - GPS_Nav_ParseChar_RESETODO(byte, message); - GPS_AppCustomData.ParserStatus.PayloadCursor++; - break; - } - - case GPS_PARSER_NAV_VELECEF_ID_VALUE: - { - GPS_Nav_ParseChar_VELECEF(byte, message); - GPS_AppCustomData.ParserStatus.PayloadCursor++; - break; - } - - case GPS_PARSER_NAV_VELNED_ID_VALUE: - { - GPS_Nav_ParseChar_VELNED(byte, message); - GPS_AppCustomData.ParserStatus.PayloadCursor++; - break; - } - - case GPS_PARSER_NAV_TIMEGPS_ID_VALUE: - { - GPS_Nav_ParseChar_TIMEGPS(byte, message); - GPS_AppCustomData.ParserStatus.PayloadCursor++; - break; - } - - case GPS_PARSER_NAV_TIMEUTC_ID_VALUE: - { - GPS_Nav_ParseChar_TIMEUTC(byte, message); - GPS_AppCustomData.ParserStatus.PayloadCursor++; - break; - } - - case GPS_PARSER_NAV_CLOCK_ID_VALUE: - { - GPS_Nav_ParseChar_CLOCK(byte, message); - GPS_AppCustomData.ParserStatus.PayloadCursor++; - break; - } - - case GPS_PARSER_NAV_TIMEGLO_ID_VALUE: - { - GPS_Nav_ParseChar_TIMEGLO(byte, message); - GPS_AppCustomData.ParserStatus.PayloadCursor++; - break; - } - - case GPS_PARSER_NAV_TIMEBDS_ID_VALUE: - { - GPS_Nav_ParseChar_TIMEBDS(byte, message); - GPS_AppCustomData.ParserStatus.PayloadCursor++; - break; - } - - case GPS_PARSER_NAV_TIMEGAL_ID_VALUE: - { - GPS_Nav_ParseChar_TIMEGAL(byte, message); - GPS_AppCustomData.ParserStatus.PayloadCursor++; - break; - } - - case GPS_PARSER_NAV_TIMELS_ID_VALUE: - { - GPS_Nav_ParseChar_TIMELS(byte, message); - GPS_AppCustomData.ParserStatus.PayloadCursor++; - break; - } - - case GPS_PARSER_NAV_SVINFO_ID_VALUE: - { - GPS_Nav_ParseChar_SVINFOH(byte, message); - GPS_AppCustomData.ParserStatus.PayloadCursor++; - break; - } - - case GPS_PARSER_NAV_DGPS_ID_VALUE: - { - GPS_Nav_ParseChar_DGPS(byte, message); - GPS_AppCustomData.ParserStatus.PayloadCursor++; - break; - } - - case GPS_PARSER_NAV_SBAS_ID_VALUE: - { - GPS_Nav_ParseChar_SBAS(byte, message); - GPS_AppCustomData.ParserStatus.PayloadCursor++; - break; - } - - case GPS_PARSER_NAV_ORB_ID_VALUE: - { - GPS_Nav_ParseChar_ORB(byte, message); - GPS_AppCustomData.ParserStatus.PayloadCursor++; - break; - } - - case GPS_PARSER_NAV_NAVSAT_ID_VALUE: - { - GPS_Nav_ParseChar_SAT(byte, message); - GPS_AppCustomData.ParserStatus.PayloadCursor++; - break; - } - - case GPS_PARSER_NAV_GEOFENCE_ID_VALUE: - { - GPS_Nav_ParseChar_GEOFENCE(byte, message); - GPS_AppCustomData.ParserStatus.PayloadCursor++; - break; - } - - case GPS_PARSER_NAV_AOPSTATUS_ID_VALUE: - { - GPS_Nav_ParseChar_AOPSTATUS(byte, message); - GPS_AppCustomData.ParserStatus.PayloadCursor++; - break; - } - - case GPS_PARSER_NAV_EOE_ID_VALUE: - { - GPS_Nav_ParseChar_EOE(byte, message); - GPS_AppCustomData.ParserStatus.PayloadCursor++; - break; - } - - default: - { - GPS_AppCustomData.ParserStatus.ParseError++; - CFE_EVS_SendEvent(GPS_INIT_DEVICE_PARSER_ERR_EID, CFE_EVS_ERROR, - "Received message with unexpected message ID (0x%.2x) for NAV class.", byte); - GPS_Parser_Reset(); - } - } - - break; - } - - case GPS_PARSER_CLASS_RXM_VALUE: - { - OS_printf("GPS: GPS_PARSER_CLASS_RXM_VALUE not yet implemented.\n"); - GPS_Parser_StateChange(GPS_PARSE_STATE_IDLE); - break; - } - - case GPS_PARSER_CLASS_INF_VALUE: - { - OS_printf("GPS: GPS_PARSER_CLASS_INF_VALUE not yet implemented.\n"); - GPS_Parser_StateChange(GPS_PARSE_STATE_IDLE); - break; - } - - case GPS_PARSER_CLASS_ACK_VALUE: - { - switch(GPS_AppCustomData.ParserStatus.MsgID) - { - case GPS_PARSER_ACK_NAK_ID_VALUE: - { - GPS_Ack_ParseChar_NAK(byte, message); - GPS_AppCustomData.ParserStatus.PayloadCursor++; - break; - } - - case GPS_PARSER_ACK_ACK_ID_VALUE: - { - GPS_Ack_ParseChar_ACK(byte, message); - GPS_AppCustomData.ParserStatus.PayloadCursor++; - break; - } - } - break; - } - - case GPS_PARSER_CLASS_CFG_VALUE: - { - /* */ - OS_printf("GPS: GPS_PARSER_CLASS_CFG_VALUE not yet implemented.\n"); - GPS_Parser_StateChange(GPS_PARSE_STATE_IDLE); - break; - } - - case GPS_PARSER_CLASS_UPD_VALUE: - { - OS_printf("GPS: GPS_PARSER_CLASS_UPD_VALUE not yet implemented.\n"); - GPS_Parser_StateChange(GPS_PARSE_STATE_IDLE); - break; - } - - case GPS_PARSER_CLASS_MON_VALUE: - { - switch(GPS_AppCustomData.ParserStatus.MsgID) - { - case GPS_PARSER_MON_IO_ID_VALUE: - { - GPS_Mon_ParseChar_IO(byte, message); - GPS_AppCustomData.ParserStatus.PayloadCursor++; - break; - } - - case GPS_PARSER_MON_VER_ID_VALUE: - { - GPS_Mon_ParseChar_VER(byte, message); - GPS_AppCustomData.ParserStatus.PayloadCursor++; - break; - } - - case GPS_PARSER_MON_MSGPP_ID_VALUE: - { - GPS_Mon_ParseChar_MSGPP(byte, message); - GPS_AppCustomData.ParserStatus.PayloadCursor++; - break; - } - - case GPS_PARSER_MON_RXBUF_ID_VALUE: - { - GPS_Mon_ParseChar_RXBUF(byte, message); - GPS_AppCustomData.ParserStatus.PayloadCursor++; - break; - } - - case GPS_PARSER_MON_TXBUF_ID_VALUE: - { - GPS_Mon_ParseChar_TXBUF(byte, message); - GPS_AppCustomData.ParserStatus.PayloadCursor++; - break; - } - - case GPS_PARSER_MON_HW_ID_VALUE: - { - GPS_Mon_ParseChar_HW(byte, message); - GPS_AppCustomData.ParserStatus.PayloadCursor++; - break; - } - - case GPS_PARSER_MON_HW2_ID_VALUE: - { - GPS_Mon_ParseChar_HW2(byte, message); - GPS_AppCustomData.ParserStatus.PayloadCursor++; - break; - } - - case GPS_PARSER_MON_RXR_ID_VALUE: - { - GPS_Mon_ParseChar_RXR(byte, message); - GPS_AppCustomData.ParserStatus.PayloadCursor++; - break; - } - - case GPS_PARSER_MON_PATCH_ID_VALUE: - { - GPS_Mon_ParseChar_PATCH(byte, message); - GPS_AppCustomData.ParserStatus.PayloadCursor++; - break; - } - - case GPS_PARSER_MON_GNSS_ID_VALUE: - { - GPS_Mon_ParseChar_GNSS(byte, message); - GPS_AppCustomData.ParserStatus.PayloadCursor++; - break; - } - - case GPS_PARSER_MON_SMGR_ID_VALUE: - { - GPS_Mon_ParseChar_SMGR(byte, message); - GPS_AppCustomData.ParserStatus.PayloadCursor++; - break; - } - } - - break; - } - - case GPS_PARSER_CLASS_AID_VALUE: - { - OS_printf("GPS: GPS_PARSER_CLASS_AID_VALUE not yet implemented.\n"); - GPS_Parser_StateChange(GPS_PARSE_STATE_IDLE); - break; - } - - case GPS_PARSER_CLASS_TIM_VALUE: - { - OS_printf("GPS: GPS_PARSER_CLASS_TIM_VALUE not yet implemented.\n"); - GPS_Parser_StateChange(GPS_PARSE_STATE_IDLE); - break; - } - - case GPS_PARSER_CLASS_ESF_VALUE: - { - OS_printf("GPS: GPS_PARSER_CLASS_ESF_VALUE not yet implemented.\n"); - GPS_Parser_StateChange(GPS_PARSE_STATE_IDLE); - break; - } - - case GPS_PARSER_CLASS_MGA_VALUE: - { - OS_printf("GPS: GPS_PARSER_CLASS_MGA_VALUE not yet implemented.\n"); - GPS_Parser_StateChange(GPS_PARSE_STATE_IDLE); - break; - } - - case GPS_PARSER_CLASS_LOG_VALUE: - { - OS_printf("GPS: GPS_PARSER_CLASS_LOG_VALUE not yet implemented.\n"); - GPS_Parser_StateChange(GPS_PARSE_STATE_IDLE); - break; - } - - case GPS_PARSER_CLASS_SEC_VALUE: - { - OS_printf("GPS: GPS_PARSER_CLASS_SEC_VALUE not yet implemented.\n"); - GPS_Parser_StateChange(GPS_PARSE_STATE_IDLE); - break; - } - - case GPS_PARSER_CLASS_HNR_VALUE: - { - OS_printf("GPS: GPS_PARSER_CLASS_HNR_VALUE not yet implemented.\n"); - GPS_Parser_StateChange(GPS_PARSE_STATE_IDLE); - break; - } - - default: - { - GPS_Parser_StateChange(GPS_PARSE_STATE_IDLE); - } - } - - break; - } - - case GPS_PARSE_STATE_GOT_PAYLOAD: - { - GPS_AppCustomData.ParserStatus.ChecksumA = byte; - GPS_Parser_StateChange(GPS_PARSE_STATE_GOT_CHECKSUMA); - break; - } - - case GPS_PARSE_STATE_GOT_CHECKSUMA: - { - CFE_SB_TimeStampMsg((CFE_SB_MsgPtr_t)message); - msg_received = 1; - *done = TRUE; - GPS_Parser_StateChange(GPS_PARSE_STATE_IDLE); - break; - } - - default: - { - } - } - - return msg_received; -} - - - -CFE_SB_MsgId_t GPS_TranslateMsgID(uint16 ClassID, uint16 MsgID) -{ - CFE_SB_MsgId_t sbMsgID = 0; - - switch(ClassID) - { - case GPS_PARSER_CLASS_NAV_VALUE: - { - switch(MsgID) - { - //case GPS_PARSER_NAV_POSECEF_ID_VALUE: - //sbMsgID = GPS_NAV_POSECEF_MID; - //break; - - //case GPS_PARSER_NAV_POSLLH_ID_VALUE: - //sbMsgID = GPS_NAV_POSLLH_MID; - //break; - - //case GPS_PARSER_NAV_STATUS_ID_VALUE: - //sbMsgID = GPS_NAV_STATUS_MID; - //break; - - case GPS_PARSER_NAV_DOP_ID_VALUE: - { - sbMsgID = GPS_NAV_DOP_MID; - break; - } - //case GPS_PARSER_NAV_ATT_ID_VALUE: - //sbMsgID = GPS_NAV_ATT_MID; - //break; - - //case GPS_PARSER_NAV_SOL_ID_VALUE: - //sbMsgID = GPS_NAV_SOL_MID; - //break; - - case GPS_PARSER_NAV_NAVPVT_ID_VALUE: - { - sbMsgID = GPS_NAV_NAVPVT_MID; - break; - } - //case GPS_PARSER_NAV_ODO_ID_VALUE: - //sbMsgID = GPS_NAV_ODO_MID; - //break; - - //case GPS_PARSER_NAV_RESETODO_ID_VALUE: - //sbMsgID = GPS_NAV_RESETODO_MID; - //break; - - //case GPS_PARSER_NAV_VELECEF_ID_VALUE: - //sbMsgID = GPS_NAV_VELECEF_MID; - //break; - - //case GPS_PARSER_NAV_VELNED_ID_VALUE: - //sbMsgID = GPS_NAV_VELNED_MID; - //break; - - //case GPS_PARSER_NAV_TIMEGPS_ID_VALUE: - //sbMsgID = GPS_NAV_TIMEGPS_MID; - //break; - - //case GPS_PARSER_NAV_TIMEUTC_ID_VALUE: - //sbMsgID = GPS_NAV_TIMEUTC_MID; - //break; - - //case GPS_PARSER_NAV_CLOCK_ID_VALUE: - //sbMsgID = GPS_NAV_CLOCK_MID; - //break; - - //case GPS_PARSER_NAV_TIMEGLO_ID_VALUE: - //sbMsgID = GPS_NAV_TIMEGLO_MID; - //break; - - //case GPS_PARSER_NAV_TIMEBDS_ID_VALUE: - //sbMsgID = GPS_NAV_TIMEBDS_MID; - //break; - - //case GPS_PARSER_NAV_TIMEGAL_ID_VALUE: - //sbMsgID = GPS_NAV_TIMEGAL_MID; - //break; - - //case GPS_PARSER_NAV_TIMELS_ID_VALUE: - //sbMsgID = GPS_NAV_TIMELS_MID; - //break; - - case GPS_PARSER_NAV_SVINFO_ID_VALUE: - { - sbMsgID = GPS_NAV_SVINFO_MID; - break; - } - //case GPS_PARSER_NAV_DGPS_ID_VALUE: - //sbMsgID = GPS_NAV_DGPS_MID; - //break; - - //case GPS_PARSER_NAV_SBAS_ID_VALUE: - //sbMsgID = GPS_NAV_SBAS_MID; - //break; - - //case GPS_PARSER_NAV_ORB_ID_VALUE: - //sbMsgID = GPS_NAV_ORB_MID; - //break; - - //case GPS_PARSER_NAV_NAVSAT_ID_VALUE: - //sbMsgID = GPS_NAV_NAVSAT_MID; - //break; - - //case GPS_PARSER_NAV_GEOFENCE_ID_VALUE: - //sbMsgID = GPS_NAV_GEOFENCE_MID; - //break; - - //case GPS_PARSER_NAV_AOPSTATUS_ID_VALUE: - //sbMsgID = GPS_NAV_AOPSTATUS_MID; - //break; - - //case GPS_PARSER_NAV_EOE_ID_VALUE: - //sbMsgID = GPS_NAV_EOE_MID; - //break; - - default: - { - break; - } - } - break; - } - case GPS_PARSER_CLASS_RXM_VALUE: - /* Fall through */ - case GPS_PARSER_CLASS_INF_VALUE: - /* Fall through */ - case GPS_PARSER_CLASS_ACK_VALUE: - { - switch(MsgID) - { - case GPS_PARSER_ACK_NAK_ID_VALUE: - { - sbMsgID = GPS_ACK_NAK_MID; - break; - } - case GPS_PARSER_ACK_ACK_ID_VALUE: - { - sbMsgID = GPS_ACK_ACK_MID; - break; - } - default: - { - break; - } - } - } - case GPS_PARSER_CLASS_CFG_VALUE: - { - switch(MsgID) - { - case GPS_PARSER_CFG_PRT_ID_VALUE: - { - sbMsgID = GPS_CFG_PRT_MID; - break; - } - - case GPS_PARSER_CFG_MSG_ID_VALUE: - { - sbMsgID = GPS_CFG_MSG_MID; - break; - } - //case GPS_PARSER_CFG_INF_ID_VALUE: - //sbMsgID = ; - //break; - - //case GPS_PARSER_CFG_RST_ID_VALUE: - //sbMsgID = ; - //break; - - //case GPS_PARSER_CFG_DAT_ID_VALUE: - //sbMsgID = ; - //break; - - case GPS_PARSER_CFG_RATE_ID_VALUE: - { - sbMsgID = GPS_CFG_RATE_MID; - break; - } - //case GPS_PARSER_CFG_CFG_ID_VALUE: - //sbMsgID = ; - //break; - - //case GPS_PARSER_CFG_RXM_ID_VALUE: - //sbMsgID = ; - //break; - - //case GPS_PARSER_CFG_ANT_ID_VALUE: - //sbMsgID = ; - //break; - - case GPS_PARSER_CFG_SBAS_ID_VALUE: - { - sbMsgID = GPS_CFG_SBAS_MID; - break; - } - //case GPS_PARSER_CFG_NMEA_ID_VALUE: - //sbMsgID = ; - //break; - - //case GPS_PARSER_CFG_USB_ID_VALUE: - //sbMsgID = ; - //break; - - //case GPS_PARSER_CFG_ODO_ID_VALUE: - //sbMsgID = ; - //break; - - //case GPS_PARSER_CFG_NAVX5_ID_VALUE: - //sbMsgID = ; - //break; - - case GPS_PARSER_CFG_NAV5_ID_VALUE: - { - sbMsgID = GPS_CFG_NAV5_MID; - break; - } - //case GPS_PARSER_CFG_TP5_ID_VALUE: - //sbMsgID = ; - //break; - - //case GPS_PARSER_CFG_RINV_ID_VALUE: - //sbMsgID = ; - //break; - - //case GPS_PARSER_CFG_ITFM_ID_VALUE: - //sbMsgID = ; - //break; - - //case GPS_PARSER_CFG_PM2_ID_VALUE: - //sbMsgID = ; - //break; - - //case GPS_PARSER_CFG_TMOD2_ID_VALUE: - //sbMsgID = ; - //break; - - //case GPS_PARSER_CFG_GNSS_ID_VALUE: - //sbMsgID = ; - //break; - - //case GPS_PARSER_CFG_LOGFILTER_ID_VALUE: - //sbMsgID = ; - //break; - - //case GPS_PARSER_CFG_PWR_ID_VALUE: - //sbMsgID = ; - //break; - - //case GPS_PARSER_CFG_TXSLOT_ID_VALUE: - //sbMsgID = ; - //break; - - //case GPS_PARSER_CFG_HNR_ID_VALUE: - //sbMsgID = ; - //break; - - //case GPS_PARSER_CFG_ESRC_ID_VALUE: - //sbMsgID = ; - //break; - - //case GPS_PARSER_CFG_DOSC_ID_VALUE: - //sbMsgID = ; - //break; - - //case GPS_PARSER_CFG_SMGR_ID_VALUE: - //sbMsgID = ; - //break; - - //case GPS_PARSER_CFG_GEOFENCE_ID_VALUE: - //sbMsgID = ; - //break; - - //case GPS_PARSER_CFG_FIXSEED_ID_VALUE: - //sbMsgID = ; - //break; - - //case GPS_PARSER_CFG_DYNSEED_ID_VALUE: - //sbMsgID = ; - //break; - - //case GPS_PARSER_CFG_PMS_ID_VALUE: - //sbMsgID = ; - //break; - - default: - { - break; - } - } - } - case GPS_PARSER_CLASS_UPD_VALUE: - /* Fall through */ - case GPS_PARSER_CLASS_MON_VALUE: - { - switch(MsgID) - { - //case GPS_PARSER_MON_IO_ID_VALUE: - //sbMsgID = GPS_MON_IO_MID; - //break; - - //case GPS_PARSER_MON_VER_ID_VALUE: - //sbMsgID = GPS_MON_VER_MID; - //break; - - //case GPS_PARSER_MON_MSGPP_ID_VALUE: - //sbMsgID = GPS_MON_MSGPP_MID; - //break; - - //case GPS_PARSER_MON_RXBUF_ID_VALUE: - //sbMsgID = GPS_MON_RXBUF_MID; - //break; - - //case GPS_PARSER_MON_TXBUF_ID_VALUE: - //sbMsgID = GPS_MON_TXBUF_MID; - //break; - - case GPS_PARSER_MON_HW_ID_VALUE: - { - sbMsgID = GPS_MON_HW_MID; - break; - } - //case GPS_PARSER_MON_HW2_ID_VALUE: - //sbMsgID = GPS_MON_HW2_MID; - //break; - - //case GPS_PARSER_MON_RXR_ID_VALUE: - //sbMsgID = GPS_MON_RXR_MID; - //break; - - //case GPS_PARSER_MON_PATCH_ID_VALUE: - //sbMsgID = GPS_MON_PATCH_MID; - //break; - - //case GPS_PARSER_MON_GNSS_ID_VALUE: - //sbMsgID = GPS_MON_GNSS_MID; - //break; - - //case GPS_PARSER_MON_SMGR_ID_VALUE: - //sbMsgID = GPS_MON_SMGR_MID; - //break; - - default: - { - break; - } - } - } - - case GPS_PARSER_CLASS_AID_VALUE: - /* Fall through */ - case GPS_PARSER_CLASS_TIM_VALUE: - /* Fall through */ - case GPS_PARSER_CLASS_ESF_VALUE: - /* Fall through */ - case GPS_PARSER_CLASS_MGA_VALUE: - /* Fall through */ - case GPS_PARSER_CLASS_LOG_VALUE: - /* Fall through */ - case GPS_PARSER_CLASS_SEC_VALUE: - /* Fall through */ - case GPS_PARSER_CLASS_HNR_VALUE: - { - break; - } - default: - { - break; - } - } - - return sbMsgID; -} - -/************************/ -/* End of File Comment */ -/************************/ - diff --git a/config/obc/cpd/target/apps/gps/src/gps_parser_ubx/gps_parser_ubx_common.h b/config/obc/cpd/target/apps/gps/src/gps_parser_ubx/gps_parser_ubx_common.h deleted file mode 100644 index 37b0bf4a4..000000000 --- a/config/obc/cpd/target/apps/gps/src/gps_parser_ubx/gps_parser_ubx_common.h +++ /dev/null @@ -1,307 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ - -#ifndef _GPS_PARSER_UBX_COMMON_H_ -#define _GPS_PARSER_UBX_COMMON_H_ - -#ifdef __cplusplus -extern "C" { -#endif - -/************************************************************************ -** Includes -*************************************************************************/ -#include "gps_parser_ubx_ack.h" -#include "gps_parser_ubx_cfg.h" -#include "gps_parser_ubx_mon.h" -#include "gps_parser_ubx_nav.h" -#include "gps_ubx_msg.h" -#include "../gps_custom_shared.h" -#include "../gps_interface_uart/gps_serial.h" - - - -/************************************************************************ -** Local Defines -*************************************************************************/ -/* UBX header contents */ -/** \brief Header symbol 1. -** -** \par Description: -** UBX header symbol 1. -*/ -#define GPS_PARSER_SYNC1_VALUE (0xb5) - -/** \brief Header symbol 2. -** -** \par Description: -** UBX header symbol 2. -*/ -#define GPS_PARSER_SYNC2_VALUE (0x62) - -/************************************************************************ -** External Global Variables -*************************************************************************/ -extern GPS_AppCustomData_t GPS_AppCustomData; - - -/************************************************************************ -** Structure Declarations -*************************************************************************/ - -typedef enum -{ - GPS_PARSER_CLASS_NAV_VALUE = 0x01, - GPS_PARSER_CLASS_RXM_VALUE = 0x02, - GPS_PARSER_CLASS_INF_VALUE = 0x04, - GPS_PARSER_CLASS_ACK_VALUE = 0x05, - GPS_PARSER_CLASS_CFG_VALUE = 0x06, - GPS_PARSER_CLASS_UPD_VALUE = 0x09, - GPS_PARSER_CLASS_MON_VALUE = 0x0a, - GPS_PARSER_CLASS_AID_VALUE = 0x0b, - GPS_PARSER_CLASS_TIM_VALUE = 0x0d, - GPS_PARSER_CLASS_ESF_VALUE = 0x10, - GPS_PARSER_CLASS_MGA_VALUE = 0x13, - GPS_PARSER_CLASS_LOG_VALUE = 0x21, - GPS_PARSER_CLASS_SEC_VALUE = 0x27, - GPS_PARSER_CLASS_HNR_VALUE = 0x28 -} GPS_ParserClassValue_t; - - -typedef enum -{ - GPS_PARSER_NAV_POSECEF_ID_VALUE = 0x01, - GPS_PARSER_NAV_POSLLH_ID_VALUE = 0x02, - GPS_PARSER_NAV_STATUS_ID_VALUE = 0x03, - GPS_PARSER_NAV_DOP_ID_VALUE = 0x04, - GPS_PARSER_NAV_ATT_ID_VALUE = 0x05, - GPS_PARSER_NAV_SOL_ID_VALUE = 0x06, - GPS_PARSER_NAV_NAVPVT_ID_VALUE = 0x07, - GPS_PARSER_NAV_ODO_ID_VALUE = 0x09, - GPS_PARSER_NAV_RESETODO_ID_VALUE = 0x10, - GPS_PARSER_NAV_VELECEF_ID_VALUE = 0x11, - GPS_PARSER_NAV_VELNED_ID_VALUE = 0x12, - GPS_PARSER_NAV_TIMEGPS_ID_VALUE = 0x20, - GPS_PARSER_NAV_TIMEUTC_ID_VALUE = 0x21, - GPS_PARSER_NAV_CLOCK_ID_VALUE = 0x22, - GPS_PARSER_NAV_TIMEGLO_ID_VALUE = 0x23, - GPS_PARSER_NAV_TIMEBDS_ID_VALUE = 0x24, - GPS_PARSER_NAV_TIMEGAL_ID_VALUE = 0x25, - GPS_PARSER_NAV_TIMELS_ID_VALUE = 0x26, - GPS_PARSER_NAV_SVINFO_ID_VALUE = 0x30, - GPS_PARSER_NAV_DGPS_ID_VALUE = 0x31, - GPS_PARSER_NAV_SBAS_ID_VALUE = 0x32, - GPS_PARSER_NAV_ORB_ID_VALUE = 0x34, - GPS_PARSER_NAV_NAVSAT_ID_VALUE = 0x35, - GPS_PARSER_NAV_GEOFENCE_ID_VALUE = 0x39, - GPS_PARSER_NAV_AOPSTATUS_ID_VALUE = 0x60, - GPS_PARSER_NAV_EOE_ID_VALUE = 0x61, -} GPS_ParserNavIDValue_t; - - -typedef enum -{ - GPS_PARSER_RXM_SFRBX_ID_VALUE = 0x13, - GPS_PARSER_RXM_MEASX_ID_VALUE = 0x14, - GPS_PARSER_RXM_RAWX_ID_VALUE = 0x15, - GPS_PARSER_RXM_SVSI_ID_VALUE = 0x20, - GPS_PARSER_RXM_PMREQ_ID_VALUE = 0x41, - GPS_PARSER_RXM_RLM_ID_VALUE = 0x59, - GPS_PARSER_RXM_IMES_ID_VALUE = 0x61 -} GPS_ParserRxmIDValue_t; - - -typedef enum -{ - GPS_PARSER_ACK_NAK_ID_VALUE = 0x00, - GPS_PARSER_ACK_ACK_ID_VALUE = 0x01 -} GPS_ParserAckIDValue_t; - - -typedef enum -{ - GPS_PARSER_CFG_PRT_ID_VALUE = 0x00, - GPS_PARSER_CFG_MSG_ID_VALUE = 0x01, - GPS_PARSER_CFG_INF_ID_VALUE = 0x02, - GPS_PARSER_CFG_RST_ID_VALUE = 0x04, - GPS_PARSER_CFG_DAT_ID_VALUE = 0x06, - GPS_PARSER_CFG_RATE_ID_VALUE = 0x08, - GPS_PARSER_CFG_CFG_ID_VALUE = 0x09, - GPS_PARSER_CFG_RXM_ID_VALUE = 0x11, - GPS_PARSER_CFG_ANT_ID_VALUE = 0x13, - GPS_PARSER_CFG_SBAS_ID_VALUE = 0x16, - GPS_PARSER_CFG_NMEA_ID_VALUE = 0x17, - GPS_PARSER_CFG_USB_ID_VALUE = 0x1B, - GPS_PARSER_CFG_ODO_ID_VALUE = 0x1E, - GPS_PARSER_CFG_NAVX5_ID_VALUE = 0x23, - GPS_PARSER_CFG_NAV5_ID_VALUE = 0x24, - GPS_PARSER_CFG_TP5_ID_VALUE = 0x31, - GPS_PARSER_CFG_RINV_ID_VALUE = 0x34, - GPS_PARSER_CFG_ITFM_ID_VALUE = 0x39, - GPS_PARSER_CFG_PM2_ID_VALUE = 0x3B, - GPS_PARSER_CFG_TMOD2_ID_VALUE = 0x3D, - GPS_PARSER_CFG_GNSS_ID_VALUE = 0x3E, - GPS_PARSER_CFG_LOGFILTER_ID_VALUE = 0x47, - GPS_PARSER_CFG_PWR_ID_VALUE = 0x57, - GPS_PARSER_CFG_TXSLOT_ID_VALUE = 0x53, - GPS_PARSER_CFG_HNR_ID_VALUE = 0x5C, - GPS_PARSER_CFG_ESRC_ID_VALUE = 0x60, - GPS_PARSER_CFG_DOSC_ID_VALUE = 0x61, - GPS_PARSER_CFG_SMGR_ID_VALUE = 0x62, - GPS_PARSER_CFG_GEOFENCE_ID_VALUE = 0x69, - GPS_PARSER_CFG_FIXSEED_ID_VALUE = 0X84, - GPS_PARSER_CFG_DYNSEED_ID_VALUE = 0x85, - GPS_PARSER_CFG_PMS_ID_VALUE = 0x86 -} GPS_ParserCfgIDValue_t; - - -typedef enum -{ - GPS_PARSER_UPD_SOS_ID_VALUE = 0x14, -} GPS_ParserUpdIDValue_t; - - -typedef enum -{ - GPS_PARSER_MON_IO_ID_VALUE = 0x02, - GPS_PARSER_MON_VER_ID_VALUE = 0x04, - GPS_PARSER_MON_MSGPP_ID_VALUE = 0x06, - GPS_PARSER_MON_RXBUF_ID_VALUE = 0x07, - GPS_PARSER_MON_TXBUF_ID_VALUE = 0x08, - GPS_PARSER_MON_HW_ID_VALUE = 0x09, - GPS_PARSER_MON_HW2_ID_VALUE = 0x0B, - GPS_PARSER_MON_RXR_ID_VALUE = 0x21, - GPS_PARSER_MON_PATCH_ID_VALUE = 0x27, - GPS_PARSER_MON_GNSS_ID_VALUE = 0x28, - GPS_PARSER_MON_SMGR_ID_VALUE = 0x2E -} GPS_ParserMonIDValue_t; - - -typedef enum -{ - GPS_PARSER_AID_INI_ID_VALUE = 0x01, - GPS_PARSER_AID_HUI_ID_VALUE = 0x02, - GPS_PARSER_AID_ALM_ID_VALUE = 0x30, - GPS_PARSER_AID_EPH_ID_VALUE = 0x31, - GPS_PARSER_AID_AOP_ID_VALUE = 0x33 -} GPS_ParserAidIDValue_t; - - -typedef enum -{ - GPS_PARSER_TIM_TP_ID_VALUE = 0x01, - GPS_PARSER_TIM_TM2_ID_VALUE = 0x03, - GPS_PARSER_TIM_SVIN_ID_VALUE = 0x04, - GPS_PARSER_TIM_VRFY_ID_VALUE = 0x06, - GPS_PARSER_TIM_DOSC_ID_VALUE = 0x11, - GPS_PARSER_TIM_TOS_ID_VALUE = 0x12, - GPS_PARSER_TIM_SMEAS_ID_VALUE = 0x13, - GPS_PARSER_TIM_VCOCAL_ID_VALUE = 0x15, - GPS_PARSER_TIM_FCHG_ID_VALUE = 0x16, - GPS_PARSER_TIM_HOC_ID_VALUE = 0x17 -} GPS_ParserTimIDValue_t; - - -typedef enum -{ - GPS_PARSER_ESF_MEAS_ID_VALUE = 0x02, - GPS_PARSER_ESF_RAW_ID_VALUE = 0x03, - GPS_PARSER_ESF_INS_ID_VALUE = 0x15, - GPS_PARSER_ESF_STATUS_ID_VALUE = 0x10 -} GPS_ParserEsfIDValue_t; - - -typedef enum -{ - GPS_PARSER_MGA_GPS_ID_VALUE = 0x00, - GPS_PARSER_MGA_GAL_ID_VALUE = 0x02, - GPS_PARSER_MGA_BDS_ID_VALUE = 0x03, - GPS_PARSER_MGA_QZSS_ID_VALUE = 0x05, - GPS_PARSER_MGA_GLO_ID_VALUE = 0x06, - GPS_PARSER_MGA_ANO_ID_VALUE = 0x20, - GPS_PARSER_MGA_FLASH_ID_VALUE = 0x21, - GPS_PARSER_MGA_INI_XYZ_ID_VALUE = 0x40, - GPS_PARSER_MGA_ACK_DATA0_ID_VALUE = 0x60, - GPS_PARSER_MGA_DBD_ID_VALUE = 0x80 -} GPS_ParserMgaIDValue_t; - - -typedef enum -{ - GPS_PARSER_LOG_ERASE_ID_VALUE = 0x03, - GPS_PARSER_LOG_STRING_ID_VALUE = 0x04, - GPS_PARSER_LOG_CREATE_ID_VALUE = 0x07, - GPS_PARSER_LOG_INFO_ID_VALUE = 0x08, - GPS_PARSER_LOG_RETRIEVE_ID_VALUE = 0x09, - GPS_PARSER_LOG_RETRIEVEPOS_ID_VALUE = 0x0B, - GPS_PARSER_LOG_RETRIEVESTRING_ID_VALUE = 0x0D, - GPS_PARSER_LOG_FINDTIME_ID_VALUE = 0x0E, - GPS_PARSER_LOG_RETRIEVEPOSEXTRA_ID_VALUE = 0x0F -} GPS_ParserLogIDValue_t; - - -typedef enum -{ - GPS_PARSER_SEC_SIGN_ID_VALUE = 0x01, - GPS_PARSER_SEC_UNIQID_ID_VALUE = 0x03, -} GPS_ParserSecIDValue_t; - - -typedef enum -{ - GPS_PARSER_HNR_PVT_ID_VALUE = 0x00, -} GPS_ParserHnrIDValue_t; - - -typedef enum -{ - GPS_PARSER_INF_ERROR_ID_VALUE = 0x00, - GPS_PARSER_INF_WARNING_ID_VALUE = 0x01, - GPS_PARSER_INF_NOTICE_ID_VALUE = 0x02, - GPS_PARSER_INF_TEST_ID_VALUE = 0x03, - GPS_PARSER_INF_DEBUG_ID_VALUE = 0x04 -} GPS_ParserInfIDValue_t; - - -uint16 GPS_ParseChar(uint8 byte, GPS_DeviceMessage_t* message, boolean *done); -void GPS_Parser_Reset(void); -CFE_SB_MsgId_t GPS_TranslateMsgID(uint16 ClassID, uint16 MsgID); -void GPS_Parser_StateChange(GPS_ParserState_t newState); -void GPS_SetChecksum(uint8 *Buffer, uint16 Size); - -#ifdef __cplusplus -} -#endif - -#endif /* _GPS_PARSER_UBX_COMMON_H_ */ - diff --git a/config/obc/cpd/target/apps/gps/src/gps_parser_ubx/gps_parser_ubx_mon.c b/config/obc/cpd/target/apps/gps/src/gps_parser_ubx/gps_parser_ubx_mon.c deleted file mode 100644 index c609fba24..000000000 --- a/config/obc/cpd/target/apps/gps/src/gps_parser_ubx/gps_parser_ubx_mon.c +++ /dev/null @@ -1,477 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ -/************************************************************************* -** -** Include section -** -**************************************************************************/ - -#include "cfe.h" -//#include "GPS_events.h" -//#include "GPS_msgids.h" -#include "gps_parser_ubx_common.h" - -/************************************************************************* -** -** Macro definitions -** -**************************************************************************/ -#define GPS_PARSER_MON_MSGPP_MSG_LENGTH (120) -#define GPS_PARSER_MON_RXBUF_MSG_LENGTH (24) -#define GPS_PARSER_MON_TXBUF_MSG_LENGTH (28) -#define GPS_PARSER_MON_HW_MSG_LENGTH (60) -#define GPS_PARSER_MON_HW2_MSG_LENGTH (28) -#define GPS_PARSER_MON_RXR_MSG_LENGTH (1) -#define GPS_PARSER_MON_GNSS_MSG_LENGTH (8) -#define GPS_PARSER_MON_SMGR_MSG_LENGTH (16) - -/************************************************************************* -** -** Type definitions -** -**************************************************************************/ - -/* -** (none) -*/ - -/************************************************************************* -** -** Imported data -** -**************************************************************************/ - -/* -** (none) -*/ - -/************************************************************************* -** -** Exported data -** -**************************************************************************/ - - - -/************************************************************************* -** -** File data -** -**************************************************************************/ - -/* -** (none) -*/ - -/************************************************************************* -** Local function prototypes -**************************************************************************/ - -/* Incoming messages. */ -void GPS_Mon_ParseChar_IO(uint8 byte, GPS_DeviceMessage_t* message) -{ - -} - -void GPS_Mon_ParseChar_VER(uint8 byte, GPS_DeviceMessage_t* message) -{ - -} - -void GPS_Mon_ParseChar_MSGPP(uint8 byte, GPS_DeviceMessage_t* message) -{ - -} - -void GPS_Mon_ParseChar_RXBUF(uint8 byte, GPS_DeviceMessage_t* message) -{ - -} - -void GPS_Mon_ParseChar_TXBUF(uint8 byte, GPS_DeviceMessage_t* message) -{ - -} - -void GPS_Mon_ParseChar_HW(uint8 byte, GPS_DeviceMessage_t* message) -{ - if(GPS_AppCustomData.ParserStatus.MsgLength != GPS_PARSER_MON_HW_MSG_LENGTH) - { - GPS_AppCustomData.ParserStatus.ParseError++; - CFE_EVS_SendEvent(GPS_INIT_DEVICE_PARSER_ERR_EID, CFE_EVS_ERROR, - "Received TIMEUTC message with incorrect length (%u).", GPS_AppCustomData.ParserStatus.MsgLength); - GPS_Parser_Reset(); - } - else - { - GPS_MON_HW_t *payload = (void*)CFE_SB_GetUserData((CFE_SB_MsgPtr_t)message); - switch(GPS_AppCustomData.ParserStatus.PayloadCursor) - { - case 0: - { - CFE_SB_MsgId_t sbMsgID = GPS_TranslateMsgID(GPS_AppCustomData.ParserStatus.ClassID, GPS_AppCustomData.ParserStatus.MsgID); - uint16 sbHdrSize = CFE_SB_MsgHdrSize(sbMsgID); - uint16 sbTotalMsgSize = sbHdrSize + GPS_AppCustomData.ParserStatus.MsgLength; - CFE_SB_InitMsg(message, sbMsgID, sbTotalMsgSize, TRUE); - - payload->pinSel = byte; - break; - } - - case 1: - { - payload->pinSel += byte << 8; - break; - } - - case 2: - { - payload->pinSel += byte << 16; - break; - } - - case 3: - { - payload->pinSel += byte << 24; - break; - } - - case 4: - { - payload->pinBank = byte; - break; - } - - case 5: - { - payload->pinBank += byte << 8; - break; - } - - case 6: - { - payload->pinBank += byte << 16; - break; - } - - case 7: - { - payload->pinBank += byte << 24; - break; - } - - case 8: - { - payload->pinDir = byte; - break; - } - - case 9: - { - payload->pinDir += byte << 8; - break; - } - - case 10: - { - payload->pinDir += byte << 16; - break; - } - - case 11: - { - payload->pinDir += byte << 24; - break; - } - - case 12: - { - payload->pinVal = byte; - break; - } - - case 13: - { - payload->pinVal += byte << 8; - break; - } - - case 14: - { - payload->pinVal += byte << 16; - break; - } - - case 15: - { - payload->pinVal += byte << 24; - break; - } - - case 16: - { - payload->noisePerMS = byte; - break; - } - - case 17: - { - payload->noisePerMS += byte << 8; - break; - } - - case 18: - { - payload->agcCnt = byte; - break; - } - - case 19: - { - payload->agcCnt += byte << 8; - break; - } - - case 20: - { - payload->aStatus = byte; - break; - } - - case 21: - { - payload->aPower = byte; - break; - } - - case 22: - { - payload->flags = byte; - break; - } - - case 23: - { - /* Reserved byte */ - break; - } - - case 24: - { - payload->usedMask = byte; - break; - } - - case 25: - { - payload->usedMask += byte << 8; - break; - } - - case 26: - { - payload->usedMask += byte << 16; - break; - } - - case 27: - { - payload->usedMask += byte << 24; - break; - } - - /* Fall Through. These are the 17 elements of an array. */ - case 28: - /* Fall Through */ - case 29: - /* Fall Through */ - case 30: - /* Fall Through */ - case 31: - /* Fall Through */ - case 32: - /* Fall Through */ - case 33: - /* Fall Through */ - case 34: - /* Fall Through */ - case 35: - /* Fall Through */ - case 36: - /* Fall Through */ - case 37: - /* Fall Through */ - case 38: - /* Fall Through */ - case 39: - /* Fall Through */ - case 40: - /* Fall Through */ - case 41: - /* Fall Through */ - case 42: - /* Fall Through */ - case 43: - /* Fall Through */ - case 44: - { - payload->vp[GPS_AppCustomData.ParserStatus.PayloadCursor - 28] = byte; - break; - } - - case 45: - { - payload->jamInd = byte; - break; - } - - case 46: - /* Fall Through */ - case 47: - { - /* Reserved bytes */ - break; - } - - case 48: - { - payload->pinIrq = byte; - break; - } - - case 49: - { - payload->pinIrq += byte << 8; - break; - } - - case 50: - { - payload->pinIrq += byte << 16; - break; - } - - case 51: - { - payload->pinIrq += byte << 24; - break; - } - - case 52: - { - payload->pullH = byte; - break; - } - - case 53: - { - payload->pullH += byte << 8; - break; - } - - case 54: - { - payload->pullH += byte << 16; - break; - } - - case 55: - { - payload->pullH += byte << 24; - break; - } - - case 56: - { - payload->pullL = byte; - break; - } - - case 57: - { - payload->pullL += byte << 8; - break; - } - - case 58: - { - payload->pullL += byte << 16; - break; - } - - case 59: - { - payload->pullL += byte << 24; - GPS_Parser_StateChange(GPS_PARSE_STATE_GOT_PAYLOAD); - break; - } - - default: - { - GPS_Parser_Reset(); - return; - } - } - } -} - -void GPS_Mon_ParseChar_HW2(uint8 byte, GPS_DeviceMessage_t* message) -{ - -} - -void GPS_Mon_ParseChar_RXR(uint8 byte, GPS_DeviceMessage_t* message) -{ - -} - -void GPS_Mon_ParseChar_PATCH(uint8 byte, GPS_DeviceMessage_t* message) -{ - -} - -void GPS_Mon_ParseChar_GNSS(uint8 byte, GPS_DeviceMessage_t* message) -{ - -} - -void GPS_Mon_ParseChar_SMGR(uint8 byte, GPS_DeviceMessage_t* message) -{ - -} - - -/************************/ -/* End of File Comment */ -/************************/ - diff --git a/config/obc/cpd/target/apps/gps/src/gps_parser_ubx/gps_parser_ubx_mon.h b/config/obc/cpd/target/apps/gps/src/gps_parser_ubx/gps_parser_ubx_mon.h deleted file mode 100644 index cb4a7d0fc..000000000 --- a/config/obc/cpd/target/apps/gps/src/gps_parser_ubx/gps_parser_ubx_mon.h +++ /dev/null @@ -1,108 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ -/************************************************************************* -** -** Include section -** -**************************************************************************/ -#ifndef _GPS_PARSER_UBX_MON_H_ -#define _GPS_PARSER_UBX_MON_H_ - -#ifdef __cplusplus -extern "C" { -#endif - -#include "cfe.h" -#include "../gps_custom_shared.h" -//#include "GPS_events.h" -//#include "GPS_msgids.h" - - - -/************************************************************************* -** -** Macro definitions -** -**************************************************************************/ - - -/************************************************************************* -** -** Type definitions -** -**************************************************************************/ - -/* -** (none) -*/ - -/************************************************************************* -** -** Imported data -** -**************************************************************************/ - -/* -** (none) -*/ - -/************************************************************************* -** -** Exported data -** -**************************************************************************/ - - -void GPS_Mon_ParseChar_IO(uint8 byte, GPS_DeviceMessage_t* message); -void GPS_Mon_ParseChar_VER(uint8 byte, GPS_DeviceMessage_t* message); -void GPS_Mon_ParseChar_MSGPP(uint8 byte, GPS_DeviceMessage_t* message); -void GPS_Mon_ParseChar_RXBUF(uint8 byte, GPS_DeviceMessage_t* message); -void GPS_Mon_ParseChar_TXBUF(uint8 byte, GPS_DeviceMessage_t* message); -void GPS_Mon_ParseChar_HW(uint8 byte, GPS_DeviceMessage_t* message); -void GPS_Mon_ParseChar_HW2(uint8 byte, GPS_DeviceMessage_t* message); -void GPS_Mon_ParseChar_RXR(uint8 byte, GPS_DeviceMessage_t* message); -void GPS_Mon_ParseChar_PATCH(uint8 byte, GPS_DeviceMessage_t* message); -void GPS_Mon_ParseChar_GNSS(uint8 byte, GPS_DeviceMessage_t* message); -void GPS_Mon_ParseChar_SMGR(uint8 byte, GPS_DeviceMessage_t* message); - - -#ifdef __cplusplus -} -#endif - -#endif /* _GPS_PARSER_UBX_MON_H_ */ - -/************************/ -/* End of File Comment */ -/************************/ - diff --git a/config/obc/cpd/target/apps/gps/src/gps_parser_ubx/gps_parser_ubx_nav.c b/config/obc/cpd/target/apps/gps/src/gps_parser_ubx/gps_parser_ubx_nav.c deleted file mode 100644 index 50befb80d..000000000 --- a/config/obc/cpd/target/apps/gps/src/gps_parser_ubx/gps_parser_ubx_nav.c +++ /dev/null @@ -1,2494 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ -/************************************************************************* -** -** Include section -** -**************************************************************************/ - -#include "cfe.h" -//#include "GPS_events.h" -//#include "GPS_msgids.h" -#include "gps_parser_ubx_common.h" - -/************************************************************************* -** -** Macro definitions -** -**************************************************************************/ - -#define GPS_PARSER_NAV_AOPSTATUS_MSG_LENGTH (16) -#define GPS_PARSER_NAV_ATT_MSG_LENGTH (32) -#define GPS_PARSER_NAV_CLOCK_MSG_LENGTH (20) -#define GPS_PARSER_NAV_DGPS_MSG_LENGTH (16) -#define GPS_PARSER_NAV_DOP_MSG_LENGTH (18) -#define GPS_PARSER_NAV_EOE_MSG_LENGTH (4) -#define GPS_PARSER_NAV_GEOFENCE_MSG_LENGTH (8) -#define GPS_PARSER_NAV_ODO_MSG_LENGTH (20) -#define GPS_PARSER_NAV_ORB_MSG_LENGTH (8) -#define GPS_PARSER_NAV_POSECEF_MSG_LENGTH (20) -#define GPS_PARSER_NAV_POSLLH_MSG_LENGTH (28) -#define GPS_PARSER_NAV_PVT_MSG_LENGTH (92) -#define GPS_PARSER_NAV_SAT_MSG_LENGTH (8) -#define GPS_PARSER_NAV_SBAS_MSG_LENGTH (12) -#define GPS_PARSER_NAV_SOL_MSG_LENGTH (52) -#define GPS_PARSER_NAV_STATUS_MSG_LENGTH (16) -#define GPS_PARSER_NAV_SVINFOP1_MSG_LENGTH (8) -#define GPS_PARSER_NAV_SVINFOP2_MSG_LENGTH (12) -#define GPS_PARSER_NAV_TIMEBDS_MSG_LENGTH (20) -#define GPS_PARSER_NAV_TIMEGAL_MSG_LENGTH (20) -#define GPS_PARSER_NAV_TIMEGLO_MSG_LENGTH (20) -#define GPS_PARSER_NAV_TIMEGPS_MSG_LENGTH (16) -#define GPS_PARSER_NAV_TIMELS_MSG_LENGTH (24) -#define GPS_PARSER_NAV_TIMEUTC_MSG_LENGTH (20) -#define GPS_PARSER_NAV_VELECEF_MSG_LENGTH (20) -#define GPS_PARSER_NAV_VELNED_MSG_LENGTH (36) - -/************************************************************************* -** -** Type definitions -** -**************************************************************************/ - -/* -** (none) -*/ - -/************************************************************************* -** -** Imported data -** -**************************************************************************/ - -/* -** (none) -*/ - -/************************************************************************* -** -** Exported data -** -**************************************************************************/ - - - -/************************************************************************* -** -** File data -** -**************************************************************************/ - -/* -** (none) -*/ - -/************************************************************************* -** Local function prototypes -**************************************************************************/ -void GPS_Nav_ParseChar_POSECEF(uint8 byte, GPS_DeviceMessage_t* message) -{ - if(GPS_AppCustomData.ParserStatus.MsgLength != GPS_PARSER_NAV_POSECEF_MSG_LENGTH) - { - GPS_AppCustomData.ParserStatus.ParseError++; - CFE_EVS_SendEvent(GPS_INIT_DEVICE_PARSER_ERR_EID, CFE_EVS_ERROR, - "Received POSECEF message with incorrect length (%u).", GPS_AppCustomData.ParserStatus.MsgLength); - GPS_Parser_Reset(); - } - else - { - GPS_NAV_POSECEF_t *payload = (void*)CFE_SB_GetUserData((CFE_SB_MsgPtr_t)message); - switch(GPS_AppCustomData.ParserStatus.PayloadCursor) - { - case 0: - { - CFE_SB_MsgId_t sbMsgID = GPS_TranslateMsgID(GPS_AppCustomData.ParserStatus.ClassID, GPS_AppCustomData.ParserStatus.MsgID); - uint16 sbHdrSize = CFE_SB_MsgHdrSize(sbMsgID); - uint16 sbTotalMsgSize = sbHdrSize + GPS_AppCustomData.ParserStatus.MsgLength; - CFE_SB_InitMsg(message, sbMsgID, sbTotalMsgSize, TRUE); - - payload->iTOW = byte; - break; - } - - case 1: - { - payload->iTOW += byte << 8; - break; - } - case 2: - { - payload->iTOW += byte << 16; - break; - } - case 3: - { - payload->iTOW += byte << 24; - break; - } - case 4: - { - payload->ecefX = byte; - break; - } - case 5: - { - payload->ecefX += byte << 8; - break; - } - case 6: - { - payload->ecefX += byte << 16; - break; - } - case 7: - { - payload->ecefX += byte << 24; - break; - } - case 8: - { - payload->ecefY = byte; - break; - } - case 9: - { - payload->ecefY += byte << 8; - break; - } - case 10: - { - payload->ecefY += byte << 16; - break; - } - case 11: - { - payload->ecefY += byte << 24; - break; - } - case 12: - { - payload->ecefZ = byte; - break; - } - case 13: - { - payload->ecefZ += byte << 8; - break; - } - case 14: - { - payload->ecefZ += byte << 16; - break; - } - case 15: - { - payload->ecefZ += byte << 24; - break; - } - case 16: - { - payload->pAcc = byte; - break; - } - case 17: - { - payload->pAcc += byte << 8; - break; - } - case 18: - { - payload->pAcc += byte << 16; - break; - } - case 19: - { - payload->pAcc += byte << 24; - GPS_Parser_StateChange(GPS_PARSE_STATE_GOT_PAYLOAD); - break; - } - default: - { - GPS_Parser_Reset(); - return; - } - } - } -} - -/* Incoming messages. */ -void GPS_Nav_ParseChar_POSLLH(uint8 byte, GPS_DeviceMessage_t* message) -{ - if(GPS_AppCustomData.ParserStatus.MsgLength != GPS_PARSER_NAV_POSLLH_MSG_LENGTH) - { - GPS_AppCustomData.ParserStatus.ParseError++; - CFE_EVS_SendEvent(GPS_INIT_DEVICE_PARSER_ERR_EID, CFE_EVS_ERROR, - "Received POSLLH message with incorrect length (%u).", GPS_AppCustomData.ParserStatus.MsgLength); - GPS_Parser_Reset(); - } - else - { - GPS_NAV_POSLLH_t *payload = (void*)CFE_SB_GetUserData((CFE_SB_MsgPtr_t)message); - switch(GPS_AppCustomData.ParserStatus.PayloadCursor) - { - case 0: - { - CFE_SB_MsgId_t sbMsgID = GPS_TranslateMsgID(GPS_AppCustomData.ParserStatus.ClassID, GPS_AppCustomData.ParserStatus.MsgID); - uint16 sbHdrSize = CFE_SB_MsgHdrSize(sbMsgID); - uint16 sbTotalMsgSize = sbHdrSize + GPS_AppCustomData.ParserStatus.MsgLength; - CFE_SB_InitMsg(message, sbMsgID, sbTotalMsgSize, TRUE); - - payload->iTOW = byte; - break; - } - case 1: - { - payload->iTOW += byte << 8; - break; - } - case 2: - { - payload->iTOW += byte << 16; - break; - } - case 3: - { - payload->iTOW += byte << 24; - break; - } - case 4: - { - payload->lon = byte; - break; - } - case 5: - { - payload->lon += byte << 8; - break; - } - case 6: - { - payload->lon += byte << 16; - break; - } - case 7: - { - payload->lon += byte << 24; - break; - } - case 8: - { - payload->lat = byte; - break; - } - case 9: - { - payload->lat += byte << 8; - break; - } - case 10: - { - payload->lat += byte << 16; - break; - } - case 11: - { - payload->lat += byte << 24; - break; - } - case 12: - { - payload->height = byte; - break; - } - case 13: - { - payload->height += byte << 8; - break; - } - case 14: - { - payload->height += byte << 16; - break; - } - case 15: - { - payload->height += byte << 24; - break; - } - case 16: - { - payload->hMSL = byte; - break; - } - case 17: - { - payload->hMSL += byte << 8; - break; - } - case 18: - { - payload->hMSL += byte << 16; - break; - } - case 19: - { - payload->hMSL += byte << 24; - break; - } - case 20: - { - payload->hAcc = byte; - break; - } - case 21: - { - payload->hAcc += byte << 8; - break; - } - case 22: - { - payload->hAcc += byte << 16; - break; - } - case 23: - { - payload->hAcc += byte << 24; - break; - } - case 24: - { - payload->vAcc = byte; - break; - } - case 25: - { - payload->vAcc += byte << 8; - break; - } - case 26: - { - payload->vAcc += byte << 16; - break; - } - case 27: - { - payload->vAcc += byte << 24; - GPS_Parser_StateChange(GPS_PARSE_STATE_GOT_PAYLOAD); - break; - } - default: - { - GPS_Parser_Reset(); - return; - } - } - } -} - - -void GPS_Nav_ParseChar_STATUS(uint8 byte, GPS_DeviceMessage_t* message) -{ - if(GPS_AppCustomData.ParserStatus.MsgLength != GPS_PARSER_NAV_STATUS_MSG_LENGTH) - { - GPS_AppCustomData.ParserStatus.ParseError++; - CFE_EVS_SendEvent(GPS_INIT_DEVICE_PARSER_ERR_EID, CFE_EVS_ERROR, - "Received STATUS message with incorrect length (%u).", GPS_AppCustomData.ParserStatus.MsgLength); - GPS_Parser_Reset(); - } - else - { - GPS_NAV_STATUS_t *payload = (void*)CFE_SB_GetUserData((CFE_SB_MsgPtr_t)message); - switch(GPS_AppCustomData.ParserStatus.PayloadCursor) - { - case 0: - { - CFE_SB_MsgId_t sbMsgID = GPS_TranslateMsgID(GPS_AppCustomData.ParserStatus.ClassID, GPS_AppCustomData.ParserStatus.MsgID); - uint16 sbHdrSize = CFE_SB_MsgHdrSize(sbMsgID); - uint16 sbTotalMsgSize = sbHdrSize + GPS_AppCustomData.ParserStatus.MsgLength; - CFE_SB_InitMsg(message, sbMsgID, sbTotalMsgSize, TRUE); - - payload->iTOW = byte; - break; - } - case 1: - { - payload->iTOW += byte << 8; - break; - } - case 2: - { - payload->iTOW += byte << 16; - break; - } - case 3: - { - payload->iTOW += byte << 24; - break; - } - case 4: - { - payload->gpsFix = byte; - break; - } - case 5: - { - payload->flags = byte; - break; - } - case 6: - { - payload->fixStat = byte; - break; - } - case 7: - { - payload->flags2 = byte; - break; - } - case 8: - { - payload->ttff = byte; - break; - } - case 9: - { - payload->ttff += byte << 8; - break; - } - case 10: - { - payload->ttff += byte << 16; - break; - } - case 11: - { - payload->ttff += byte << 24; - break; - } - case 12: - { - payload->msss = byte; - break; - } - case 13: - { - payload->msss += byte << 8; - break; - } - case 14: - { - payload->msss += byte << 16; - break; - } - case 15: - { - payload->msss += byte << 24; - GPS_Parser_StateChange(GPS_PARSE_STATE_GOT_PAYLOAD); - break; - } - default: - { - GPS_Parser_Reset(); - return; - } - } - } -} - - - -void GPS_Nav_ParseChar_DOP(uint8 byte, GPS_DeviceMessage_t* message) -{ - if(GPS_AppCustomData.ParserStatus.MsgLength != GPS_PARSER_NAV_DOP_MSG_LENGTH) - { - GPS_AppCustomData.ParserStatus.ParseError++; - CFE_EVS_SendEvent(GPS_INIT_DEVICE_PARSER_ERR_EID, CFE_EVS_ERROR, - "Received DOP message with incorrect length (%u).", GPS_AppCustomData.ParserStatus.MsgLength); - GPS_Parser_Reset(); - } - else - { - GPS_NAV_DOP_t *payload = (void*)CFE_SB_GetUserData((CFE_SB_MsgPtr_t)message); - switch(GPS_AppCustomData.ParserStatus.PayloadCursor) - { - case 0: - { - CFE_SB_MsgId_t sbMsgID = GPS_TranslateMsgID(GPS_AppCustomData.ParserStatus.ClassID, GPS_AppCustomData.ParserStatus.MsgID); - uint16 sbHdrSize = CFE_SB_MsgHdrSize(sbMsgID); - uint16 sbTotalMsgSize = sbHdrSize + GPS_AppCustomData.ParserStatus.MsgLength; - CFE_SB_InitMsg(message, sbMsgID, sbTotalMsgSize, TRUE); - - payload->iTOW = byte; - break; - } - case 1: - { - payload->iTOW += byte << 8; - break; - } - case 2: - { - payload->iTOW += byte << 16; - break; - } - case 3: - { - payload->iTOW += byte << 24; - break; - } - case 4: - { - payload->gDOP = byte; - break; - } - case 5: - { - payload->gDOP += byte << 8; - break; - } - case 6: - { - payload->pDOP = byte; - break; - } - case 7: - { - payload->pDOP += byte << 8; - break; - } - case 8: - { - payload->tDOP = byte; - break; - } - case 9: - { - payload->tDOP += byte << 8; - break; - } - case 10: - { - payload->vDOP = byte; - break; - } - case 11: - { - payload->vDOP += byte << 8; - break; - } - case 12: - { - payload->hDOP = byte; - break; - } - case 13: - { - payload->hDOP += byte << 8; - break; - } - case 14: - { - payload->nDOP = byte; - break; - } - case 15: - { - payload->nDOP += byte << 8; - break; - } - case 16: - { - payload->eDOP = byte; - break; - } - case 17: - { - payload->eDOP += byte << 8; - GPS_Parser_StateChange(GPS_PARSE_STATE_GOT_PAYLOAD); - break; - } - default: - { - GPS_Parser_Reset(); - return; - } - } - } -} - - -void GPS_Nav_ParseChar_ATT(uint8 byte, GPS_DeviceMessage_t* message) -{ - if(GPS_AppCustomData.ParserStatus.MsgLength != GPS_PARSER_NAV_ATT_MSG_LENGTH) - { - GPS_AppCustomData.ParserStatus.ParseError++; - CFE_EVS_SendEvent(GPS_INIT_DEVICE_PARSER_ERR_EID, CFE_EVS_ERROR, - "Received ATT message with incorrect length (%u).", GPS_AppCustomData.ParserStatus.MsgLength); - GPS_Parser_Reset(); - } - else - { - GPS_NAV_ATT_t *payload = (void*)CFE_SB_GetUserData((CFE_SB_MsgPtr_t)message); - switch(GPS_AppCustomData.ParserStatus.PayloadCursor) - { - case 0: - { - CFE_SB_MsgId_t sbMsgID = GPS_TranslateMsgID(GPS_AppCustomData.ParserStatus.ClassID, GPS_AppCustomData.ParserStatus.MsgID); - uint16 sbHdrSize = CFE_SB_MsgHdrSize(sbMsgID); - uint16 sbTotalMsgSize = sbHdrSize + GPS_AppCustomData.ParserStatus.MsgLength; - CFE_SB_InitMsg(message, sbMsgID, sbTotalMsgSize, TRUE); - - payload->iTOW = byte; - break; - } - case 1: - { - payload->iTOW += byte << 8; - break; - } - case 2: - { - payload->iTOW += byte << 16; - break; - } - case 3: - { - payload->iTOW += byte << 24; - break; - } - case 4: - { - payload->version = byte; - break; - } - case 5: - /* Fall Through */ - case 6: - /* Fall Through */ - case 7: - { - break; - } - case 8: - { - payload->roll = byte; - break; - } - case 9: - { - payload->roll += byte << 8; - break; - } - case 10: - { - payload->roll += byte << 16; - break; - } - case 11: - { - payload->roll += byte << 24; - break; - } - case 12: - { - payload->pitch = byte; - break; - } - case 13: - { - payload->pitch += byte << 8; - break; - } - case 14: - { - payload->pitch += byte << 16; - break; - } - case 15: - { - payload->pitch += byte << 24; - break; - } - case 16: - { - payload->heading = byte; - break; - } - case 17: - { - payload->heading += byte << 8; - break; - } - case 18: - { - payload->heading += byte << 16; - break; - } - case 19: - { - payload->heading += byte << 24; - break; - } - case 20: - { - payload->accRoll = byte; - break; - } - case 21: - { - payload->accRoll += byte << 8; - break; - } - case 22: - { - payload->accRoll += byte << 16; - break; - } - case 23: - { - payload->accRoll += byte << 24; - break; - } - case 24: - { - payload->accPitch = byte; - break; - } - case 25: - { - payload->accPitch += byte << 8; - break; - } - case 26: - { - payload->accPitch += byte << 16; - break; - } - case 27: - { - payload->accPitch += byte << 24; - break; - } - case 28: - { - payload->accHeading = byte; - break; - } - case 29: - { - payload->accHeading += byte << 8; - break; - } - case 30: - { - payload->accHeading += byte << 16; - break; - } - case 31: - { - payload->accHeading += byte << 24; - GPS_Parser_StateChange(GPS_PARSE_STATE_GOT_PAYLOAD); - break; - } - default: - { - GPS_Parser_Reset(); - return; - } - } - } -} - - - -void GPS_Nav_ParseChar_SOL(uint8 byte, GPS_DeviceMessage_t* message) -{ - if(GPS_AppCustomData.ParserStatus.MsgLength != GPS_PARSER_NAV_SOL_MSG_LENGTH) - { - GPS_AppCustomData.ParserStatus.ParseError++; - CFE_EVS_SendEvent(GPS_INIT_DEVICE_PARSER_ERR_EID, CFE_EVS_ERROR, - "Received SOL message with incorrect length (%u).", GPS_AppCustomData.ParserStatus.MsgLength); - GPS_Parser_Reset(); - } - else - { - GPS_NAV_SOL_t *payload = (void*)CFE_SB_GetUserData((CFE_SB_MsgPtr_t)message); - switch(GPS_AppCustomData.ParserStatus.PayloadCursor) - { - case 0: - { - CFE_SB_MsgId_t sbMsgID = GPS_TranslateMsgID(GPS_AppCustomData.ParserStatus.ClassID, GPS_AppCustomData.ParserStatus.MsgID); - uint16 sbHdrSize = CFE_SB_MsgHdrSize(sbMsgID); - uint16 sbTotalMsgSize = sbHdrSize + GPS_AppCustomData.ParserStatus.MsgLength; - CFE_SB_InitMsg(message, sbMsgID, sbTotalMsgSize, TRUE); - - payload->iTOW = byte; - break; - } - case 1: - { - payload->iTOW += byte << 8; - break; - } - case 2: - { - payload->iTOW += byte << 16; - break; - } - case 3: - { - payload->iTOW += byte << 24; - break; - } - case 4: - { - payload->fTOW = byte; - break; - } - case 5: - { - payload->fTOW = byte << 8; - break; - } - case 6: - { - payload->fTOW += byte << 16; - break; - } - case 7: - { - payload->fTOW += byte << 24; - break; - } - case 8: - { - payload->week = byte; - break; - } - case 9: - { - payload->week += byte << 8; - break; - } - case 10: - { - payload->gpsFix = byte; - break; - } - case 11: - { - payload->flags = byte; - break; - } - case 12: - { - payload->ecefX = byte; - break; - } - case 13: - { - payload->ecefX += byte << 8; - break; - } - case 14: - { - payload->ecefX += byte << 16; - break; - } - case 15: - { - payload->ecefX += byte << 24; - break; - } - case 16: - { - payload->ecefY = byte; - break; - } - case 17: - { - payload->ecefY += byte << 8; - break; - } - case 18: - { - payload->ecefY += byte << 16; - break; - } - case 19: - { - payload->ecefY += byte << 24; - break; - } - case 20: - { - payload->ecefZ = byte; - break; - } - case 21: - { - payload->ecefZ += byte << 8; - break; - } - case 22: - { - payload->ecefZ += byte << 16; - break; - } - case 23: - { - payload->ecefZ += byte << 24; - break; - } - case 24: - { - payload->pAcc = byte; - break; - } - case 25: - { - payload->pAcc += byte << 8; - break; - } - case 26: - { - payload->pAcc += byte << 16; - break; - } - case 27: - { - payload->pAcc += byte << 24; - break; - } - case 28: - { - payload->ecefVX = byte; - break; - } - case 29: - { - payload->ecefVX += byte << 8; - break; - } - case 30: - { - payload->ecefVX += byte << 16; - break; - } - case 31: - { - payload->ecefVX += byte << 24; - break; - } - case 32: - { - payload->ecefVY = byte; - break; - } - case 33: - { - payload->ecefVY += byte << 8; - break; - } - case 34: - { - payload->ecefVY += byte << 16; - break; - } - case 35: - { - payload->ecefVY += byte << 24; - break; - } - case 36: - { - payload->ecefVZ = byte; - break; - } - case 37: - { - payload->ecefVZ += byte << 8; - break; - } - case 38: - { - payload->ecefVZ += byte << 16; - break; - } - case 39: - { - payload->ecefVZ += byte << 24; - break; - } - case 40: - { - payload->sAcc = byte; - break; - } - case 41: - { - payload->sAcc += byte << 8; - break; - } - case 42: - { - payload->sAcc += byte << 16; - break; - } - case 43: - { - payload->sAcc += byte << 24; - break; - } - case 44: - { - payload->pDOP = byte; - break; - } - case 45: - { - payload->pDOP += byte << 8; - break; - } - case 46: - { - break; - } - case 47: - { - payload->numSV = byte; - GPS_Parser_StateChange(GPS_PARSE_STATE_GOT_PAYLOAD); - break; - } - default: - { - GPS_Parser_Reset(); - return; - } - } - } -} - - - -void GPS_Nav_ParseChar_PVT(uint8 byte, GPS_DeviceMessage_t* message) -{ - if(GPS_AppCustomData.ParserStatus.MsgLength != GPS_PARSER_NAV_PVT_MSG_LENGTH) - { - GPS_AppCustomData.ParserStatus.ParseError++; - CFE_EVS_SendEvent(GPS_INIT_DEVICE_PARSER_ERR_EID, CFE_EVS_ERROR, - "Received PVT message with incorrect length (%u).", GPS_AppCustomData.ParserStatus.MsgLength); - GPS_Parser_Reset(); - } - else - { - GPS_NAV_PVT_t *payload = (void*)CFE_SB_GetUserData((CFE_SB_MsgPtr_t)message); - switch(GPS_AppCustomData.ParserStatus.PayloadCursor) - { - case 0: - { - CFE_SB_MsgId_t sbMsgID = GPS_TranslateMsgID(GPS_AppCustomData.ParserStatus.ClassID, GPS_AppCustomData.ParserStatus.MsgID); - uint16 sbHdrSize = CFE_SB_MsgHdrSize(sbMsgID); - uint16 sbTotalMsgSize = sbHdrSize + GPS_AppCustomData.ParserStatus.MsgLength; - CFE_SB_InitMsg(message, sbMsgID, sbTotalMsgSize, TRUE); - - payload->iTOW = byte; - break; - } - case 1: - { - payload->iTOW += byte << 8; - break; - } - case 2: - { - payload->iTOW += byte << 16; - break; - } - case 3: - { - payload->iTOW += byte << 24; - break; - } - case 4: - { - payload->year = byte; - break; - } - case 5: - { - payload->year = byte << 8; - break; - } - case 6: - { - payload->month = byte; - break; - } - case 7: - { - payload->day = byte; - break; - } - case 8: - { - payload->hour = byte; - break; - } - case 9: - { - payload->min = byte; - break; - } - case 10: - { - payload->sec = byte; - break; - } - case 11: - { - payload->valid = byte; - break; - } - case 12: - { - payload->tAcc = byte; - break; - } - case 13: - { - payload->tAcc += byte << 8; - break; - } - case 14: - { - payload->tAcc += byte << 16; - break; - } - case 15: - { - payload->tAcc += byte << 24; - break; - } - case 16: - { - payload->nano = byte; - break; - } - case 17: - { - payload->nano += byte << 8; - break; - } - case 18: - { - payload->nano += byte << 16; - break; - } - case 19: - { - payload->nano += byte << 24; - break; - } - case 20: - { - payload->fixType = byte; - break; - } - case 21: - { - payload->flags = byte; - break; - } - case 22: - { - payload->flags2 = byte; - break; - } - case 23: - { - payload->numSV = byte; - break; - } - case 24: - { - payload->lon = byte; - break; - } - case 25: - { - payload->lon += byte << 8; - break; - } - case 26: - { - payload->lon += byte << 16; - break; - } - case 27: - { - payload->lon += byte << 24; - break; - } - case 28: - { - payload->lat = byte; - break; - } - case 29: - { - payload->lat += byte << 8; - break; - } - case 30: - { - payload->lat += byte << 16; - break; - } - case 31: - { - payload->lat += byte << 24; - break; - } - case 32: - { - payload->height = byte; - break; - } - case 33: - { - payload->height += byte << 8; - break; - } - case 34: - { - payload->height += byte << 16; - break; - } - case 35: - { - payload->height += byte << 24; - break; - } - case 36: - { - payload->hMSL = byte; - break; - } - case 37: - { - payload->hMSL += byte << 8; - break; - } - case 38: - { - payload->hMSL += byte << 16; - break; - } - case 39: - { - payload->hMSL += byte << 24; - break; - } - case 40: - { - payload->hAcc = byte; - break; - } - case 41: - { - payload->hAcc += byte << 8; - break; - } - case 42: - { - payload->hAcc += byte << 16; - break; - } - case 43: - { - payload->hAcc += byte << 24; - break; - } - case 44: - { - payload->vAcc = byte; - break; - } - case 45: - { - payload->vAcc += byte << 8; - break; - } - case 46: - { - payload->vAcc += byte << 16; - break; - } - case 47: - { - payload->vAcc += byte << 24; - break; - } - case 48: - { - payload->velN = byte; - break; - } - case 49: - { - payload->velN += byte << 8; - break; - } - case 50: - { - payload->velN += byte << 16; - break; - } - case 51: - { - payload->velN += byte << 24; - break; - } - case 52: - { - payload->velE = byte; - break; - } - case 53: - { - payload->velE += byte << 8; - break; - } - case 54: - { - payload->velE += byte << 16; - break; - } - case 55: - { - payload->velE += byte << 24; - break; - } - case 56: - { - payload->velD = byte; - break; - } - case 57: - { - payload->velD += byte << 8; - break; - } - case 58: - { - payload->velD += byte << 16; - break; - } - case 59: - { - payload->velD += byte << 24; - break; - } - case 60: - { - payload->gSpeed = byte; - break; - } - case 61: - { - payload->gSpeed += byte << 8; - break; - } - case 62: - { - payload->gSpeed += byte << 16; - break; - } - case 63: - { - payload->gSpeed += byte << 24; - break; - } - case 64: - { - payload->headMot = byte; - break; - } - case 65: - { - payload->headMot += byte << 8; - break; - } - case 66: - { - payload->headMot += byte << 16; - break; - } - case 67: - { - payload->headMot += byte << 24; - break; - } - case 68: - { - payload->sAcc = byte; - break; - } - case 69: - { - payload->sAcc += byte << 8; - break; - } - case 70: - { - payload->sAcc += byte << 16; - break; - } - case 71: - { - payload->sAcc += byte << 24; - break; - } - case 72: - { - payload->headAcc = byte; - break; - } - case 73: - { - payload->headAcc += byte << 8; - break; - } - case 74: - { - payload->headAcc += byte << 16; - break; - } - case 75: - { - payload->headAcc += byte << 24; - break; - } - case 76: - { - payload->pDOP = byte; - break; - } - case 77: - { - payload->pDOP += byte << 8; - break; - } - case 78: - /* Fall Through */ - case 79: - /* Fall Through */ - case 80: - /* Fall Through */ - case 81: - /* Fall Through */ - case 82: - /* Fall Through */ - case 83: - { - break; - } - case 84: - { - payload->headVeh = byte; - break; - } - case 85: - { - payload->headVeh += byte << 8; - break; - } - case 86: - { - payload->headVeh += byte << 16; - break; - } - case 87: - { - payload->headVeh += byte << 24; - break; - } - case 88: - { - payload->magDec = byte; - break; - } - case 89: - { - payload->magDec += byte << 8; - break; - } - case 90: - { - payload->magAcc = byte; - break; - } - case 91: - { - payload->magAcc += byte << 8; - GPS_Parser_StateChange(GPS_PARSE_STATE_GOT_PAYLOAD); - break; - } - default: - { - GPS_Parser_Reset(); - return; - } - } - } -} - - - -void GPS_Nav_ParseChar_ODO(uint8 byte, GPS_DeviceMessage_t* message) -{ - if(GPS_AppCustomData.ParserStatus.MsgLength != GPS_PARSER_NAV_ODO_MSG_LENGTH) - { - GPS_AppCustomData.ParserStatus.ParseError++; - CFE_EVS_SendEvent(GPS_INIT_DEVICE_PARSER_ERR_EID, CFE_EVS_ERROR, - "Received ODO message with incorrect length (%u).", GPS_AppCustomData.ParserStatus.MsgLength); - GPS_Parser_Reset(); - } - else - { - GPS_NAV_ODO_t *payload = (void*)CFE_SB_GetUserData((CFE_SB_MsgPtr_t)message); - switch(GPS_AppCustomData.ParserStatus.PayloadCursor) - { - case 0: - { - CFE_SB_MsgId_t sbMsgID = GPS_TranslateMsgID(GPS_AppCustomData.ParserStatus.ClassID, GPS_AppCustomData.ParserStatus.MsgID); - uint16 sbHdrSize = CFE_SB_MsgHdrSize(sbMsgID); - uint16 sbTotalMsgSize = sbHdrSize + GPS_AppCustomData.ParserStatus.MsgLength; - CFE_SB_InitMsg(message, sbMsgID, sbTotalMsgSize, TRUE); - - payload->version = byte; - break; - } - case 1: - /* Fall Through */ - case 2: - /* Fall Through */ - case 3: - { - break; - } - case 4: - { - payload->iTOW = byte; - break; - } - case 5: - { - payload->iTOW += byte << 8; - break; - } - case 6: - { - payload->iTOW += byte << 16; - break; - } - case 7: - { - payload->iTOW += byte << 24; - break; - } - case 8: - { - payload->distance = byte; - break; - } - case 9: - { - payload->distance += byte << 8; - break; - } - case 10: - { - payload->distance += byte << 16; - break; - } - case 11: - { - payload->distance += byte << 24; - break; - } - case 12: - { - payload->totalDistance = byte; - break; - } - case 13: - { - payload->totalDistance += byte << 8; - break; - } - case 14: - { - payload->totalDistance += byte << 16; - break; - } - case 15: - { - payload->totalDistance += byte << 24; - break; - } - case 16: - { - payload->distanceStd = byte; - break; - } - case 17: - { - payload->distanceStd += byte << 8; - break; - } - case 18: - { - payload->distanceStd += byte << 16; - break; - } - case 19: - { - payload->distanceStd += byte << 24; - GPS_Parser_StateChange(GPS_PARSE_STATE_GOT_PAYLOAD); - break; - } - default: - { - GPS_Parser_Reset(); - return; - } - } - } -} - - - -void GPS_Nav_ParseChar_RESETODO(uint8 byte, GPS_DeviceMessage_t* message) -{ - -} - - - -void GPS_Nav_ParseChar_VELECEF(uint8 byte, GPS_DeviceMessage_t* message) -{ - -} - - - -void GPS_Nav_ParseChar_VELNED(uint8 byte, GPS_DeviceMessage_t* message) -{ - -} - - - -void GPS_Nav_ParseChar_TIMEGPS(uint8 byte, GPS_DeviceMessage_t* message) -{ - -} - - - -void GPS_Nav_ParseChar_TIMEUTC(uint8 byte, GPS_DeviceMessage_t* message) -{ - if(GPS_AppCustomData.ParserStatus.MsgLength != GPS_PARSER_NAV_TIMEUTC_MSG_LENGTH) - { - GPS_AppCustomData.ParserStatus.ParseError++; - CFE_EVS_SendEvent(GPS_INIT_DEVICE_PARSER_ERR_EID, CFE_EVS_ERROR, - "Received TIMEUTC message with incorrect length (%u).", GPS_AppCustomData.ParserStatus.MsgLength); - GPS_Parser_Reset(); - } - else - { - GPS_NAV_TIMEUTC_t *payload = (void*)CFE_SB_GetUserData((CFE_SB_MsgPtr_t)message); - switch(GPS_AppCustomData.ParserStatus.PayloadCursor) - { - case 0: - { - CFE_SB_MsgId_t sbMsgID = GPS_TranslateMsgID(GPS_AppCustomData.ParserStatus.ClassID, GPS_AppCustomData.ParserStatus.MsgID); - uint16 sbHdrSize = CFE_SB_MsgHdrSize(sbMsgID); - uint16 sbTotalMsgSize = sbHdrSize + GPS_AppCustomData.ParserStatus.MsgLength; - CFE_SB_InitMsg(message, sbMsgID, sbTotalMsgSize, TRUE); - - payload->iTOW = byte; - break; - } - case 1: - { - payload->iTOW += byte << 8; - break; - } - case 2: - { - payload->iTOW += byte << 16; - break; - } - case 3: - { - payload->iTOW += byte << 24; - break; - } - case 4: - { - payload->tAcc = byte; - break; - } - case 5: - { - payload->tAcc += byte << 8; - break; - } - case 6: - { - payload->tAcc += byte << 16; - break; - } - case 7: - { - payload->tAcc += byte << 24; - break; - } - case 8: - { - payload->nano = byte; - break; - } - case 9: - { - payload->nano += byte << 8; - break; - } - case 10: - { - payload->nano += byte << 16; - break; - } - case 11: - { - payload->nano += byte << 24; - break; - } - case 12: - { - payload->year = byte; - break; - } - case 13: - { - payload->year += byte << 8; - break; - } - case 14: - { - payload->month = byte; - break; - } - case 15: - { - payload->day = byte; - break; - } - case 16: - { - payload->hour = byte; - break; - } - case 17: - { - payload->min = byte; - break; - } - case 18: - { - payload->sec = byte; - break; - } - case 19: - { - payload->valid = byte; - GPS_Parser_StateChange(GPS_PARSE_STATE_GOT_PAYLOAD); - break; - } - default: - { - GPS_Parser_Reset(); - return; - } - } - } -} - - - -void GPS_Nav_ParseChar_CLOCK(uint8 byte, GPS_DeviceMessage_t* message) -{ - -} - - - -void GPS_Nav_ParseChar_TIMEGLO(uint8 byte, GPS_DeviceMessage_t* message) -{ - -} - - - -void GPS_Nav_ParseChar_TIMEBDS(uint8 byte, GPS_DeviceMessage_t* message) -{ - -} - - - -void GPS_Nav_ParseChar_TIMEGAL(uint8 byte, GPS_DeviceMessage_t* message) -{ - -} - - - -void GPS_Nav_ParseChar_TIMELS(uint8 byte, GPS_DeviceMessage_t* message) -{ - -} - - - -void GPS_Nav_ParseChar_SVINFOH(uint8 byte, GPS_DeviceMessage_t* message) -{ - static int i = 0; - /* SVINFO is variable length 8 + 12*numCH so no length check here */ - GPS_NAV_SVINFO_Combined_t *payload = (void*)CFE_SB_GetUserData((CFE_SB_MsgPtr_t)message); - /* If we're in part 1 of the SVINFO message*/ - if(GPS_AppCustomData.ParserStatus.PayloadCursor < 8) - { - switch(GPS_AppCustomData.ParserStatus.PayloadCursor) - { - case 0: - { - CFE_SB_MsgId_t sbMsgID = GPS_TranslateMsgID(GPS_AppCustomData.ParserStatus.ClassID, GPS_AppCustomData.ParserStatus.MsgID); - uint16 sbHdrSize = CFE_SB_MsgHdrSize(sbMsgID); - uint16 sbTotalMsgSize = sbHdrSize + GPS_AppCustomData.ParserStatus.MsgLength; - CFE_SB_InitMsg(message, sbMsgID, sbTotalMsgSize, TRUE); - - payload->svinfo.iTOW = byte; - break; - } - case 1: - { - payload->svinfo.iTOW += byte << 8; - break; - } - case 2: - { - payload->svinfo.iTOW += byte << 16; - break; - } - case 3: - { - payload->svinfo.iTOW += byte << 24; - break; - } - case 4: - { - payload->svinfo.numCh = byte; - /* Length check */ - if (byte != (GPS_AppCustomData.ParserStatus.MsgLength - 8) / 12 && - byte != 0) - { - GPS_AppCustomData.ParserStatus.ParseError++; - CFE_EVS_SendEvent(GPS_INIT_DEVICE_PARSER_ERR_EID, CFE_EVS_ERROR, - "Received SVINFO message with incorrect length (%u), numCh (%u).", - GPS_AppCustomData.ParserStatus.MsgLength, byte); - GPS_Parser_Reset(); - } - break; - } - case 5: - { - payload->svinfo.globalFlags = byte; - break; - } - case 6: - { - payload->svinfo.reserved2 = byte; - break; - } - case 7: - { - payload->svinfo.reserved2 += byte << 8; - /* If we don't have any part 2 messages */ - /* TODO verify this is possible */ - if (0 == (GPS_AppCustomData.ParserStatus.MsgLength - 8) / 12) - { - GPS_Parser_StateChange(GPS_PARSE_STATE_GOT_PAYLOAD); - } - break; - } - default: - { - GPS_Parser_Reset(); - return; - } - } - } - /* If we're in part 2 of the SVINFO message */ - else if(GPS_AppCustomData.ParserStatus.PayloadCursor >= 8) - { - /* Save a max limim of part 2 SVINFO messages */ - if (i < (GPS_AppCustomData.ParserStatus.MsgLength - 8) / 12 && - i < PX4_SAT_INFO_MAX_SATELLITES) - { - switch((GPS_AppCustomData.ParserStatus.PayloadCursor - 8) % 12) - { - case 0: - { - payload->numCh[i].chn = byte; - break; - } - case 1: - { - payload->numCh[i].svid = byte; - break; - } - case 2: - { - payload->numCh[i].flags = byte; - break; - } - case 3: - { - payload->numCh[i].quality = byte; - break; - } - case 4: - { - payload->numCh[i].cno = byte; - break; - } - case 5: - { - payload->numCh[i].elev = byte; - break; - } - case 6: - { - payload->numCh[i].azim = byte; - break; - } - case 7: - { - payload->numCh[i].azim += byte << 8; - break; - } - case 8: - { - payload->numCh[i].prRes = byte; - break; - } - case 9: - { - payload->numCh[i].prRes += byte << 8; - break; - } - case 10: - { - payload->numCh[i].prRes += byte << 16; - break; - } - case 11: - { - payload->numCh[i].prRes += byte << 24; - i++; - break; - } - default: - { - GPS_Parser_Reset(); - return; - } - } - } - /* end of message */ - else if (i == (GPS_AppCustomData.ParserStatus.MsgLength - 8) / 12) - { - i = 0; - GPS_Parser_StateChange(GPS_PARSE_STATE_GOT_PAYLOAD); - } - /* Max limit of part 2 SVINFO messages reached */ - else if (i >= PX4_SAT_INFO_MAX_SATELLITES) - { - /* Do nothing, continue parsing until end of message */ - } - else - { - GPS_Parser_Reset(); - } - } -} - - - -void GPS_Nav_ParseChar_DGPS(uint8 byte, GPS_DeviceMessage_t* message) -{ - -} - - - -void GPS_Nav_ParseChar_SBAS(uint8 byte, GPS_DeviceMessage_t* message) -{ - if(GPS_AppCustomData.ParserStatus.MsgLength != GPS_PARSER_NAV_SBAS_MSG_LENGTH) - { - GPS_AppCustomData.ParserStatus.ParseError++; - CFE_EVS_SendEvent(GPS_INIT_DEVICE_PARSER_ERR_EID, CFE_EVS_ERROR, - "Received SBAS message with incorrect length (%u).", GPS_AppCustomData.ParserStatus.MsgLength); - GPS_Parser_Reset(); - } - else - { - GPS_NAV_SBAS_t *payload = (void*)CFE_SB_GetUserData((CFE_SB_MsgPtr_t)message); - switch(GPS_AppCustomData.ParserStatus.PayloadCursor) - { - case 0: - { - CFE_SB_MsgId_t sbMsgID = GPS_TranslateMsgID(GPS_AppCustomData.ParserStatus.ClassID, GPS_AppCustomData.ParserStatus.MsgID); - uint16 sbHdrSize = CFE_SB_MsgHdrSize(sbMsgID); - uint16 sbTotalMsgSize = sbHdrSize + GPS_AppCustomData.ParserStatus.MsgLength; - CFE_SB_InitMsg(message, sbMsgID, sbTotalMsgSize, TRUE); - - payload->iTOW = byte; - break; - } - case 2: - { - payload->iTOW += byte << 8; - break; - } - case 3: - { - payload->iTOW += byte << 16; - break; - } - case 4: - { - payload->iTOW += byte << 24; - break; - } - case 5: - { - payload->geo = byte; - break; - } - case 6: - { - payload->mode = byte; - break; - } - case 7: - { - payload->sys = byte; - break; - } - case 8: - { - payload->service = byte; - break; - } - case 9: - { - payload->cnt = byte; - GPS_Parser_StateChange(GPS_PARSE_STATE_GOT_PAYLOAD); - break; - } - default: - { - GPS_Parser_Reset(); - return; - } - } - } -} - - - -void GPS_Nav_ParseChar_ORB(uint8 byte, GPS_DeviceMessage_t* message) -{ - if(GPS_AppCustomData.ParserStatus.MsgLength != GPS_PARSER_NAV_ORB_MSG_LENGTH) - { - GPS_AppCustomData.ParserStatus.ParseError++; - CFE_EVS_SendEvent(GPS_INIT_DEVICE_PARSER_ERR_EID, CFE_EVS_ERROR, - "Received ORB message with incorrect length (%u).", GPS_AppCustomData.ParserStatus.MsgLength); - GPS_Parser_Reset(); - } - else - { - GPS_NAV_ORB_t *payload = (void*)CFE_SB_GetUserData((CFE_SB_MsgPtr_t)message); - switch(GPS_AppCustomData.ParserStatus.PayloadCursor) - { - case 0: - { - CFE_SB_MsgId_t sbMsgID = GPS_TranslateMsgID(GPS_AppCustomData.ParserStatus.ClassID, GPS_AppCustomData.ParserStatus.MsgID); - uint16 sbHdrSize = CFE_SB_MsgHdrSize(sbMsgID); - uint16 sbTotalMsgSize = sbHdrSize + GPS_AppCustomData.ParserStatus.MsgLength; - CFE_SB_InitMsg(message, sbMsgID, sbTotalMsgSize, TRUE); - - payload->iTOW = byte; - break; - } - case 2: - { - payload->iTOW += byte << 8; - break; - } - case 3: - { - payload->iTOW += byte << 16; - break; - } - case 4: - { - payload->iTOW += byte << 24; - break; - } - case 5: - { - payload->version = byte; - break; - } - case 6: - { - payload->numSv = byte; - break; - } - case 7: - /* Fall Through */ - case 8: - { - break; - } - default: - { - GPS_Parser_Reset(); - return; - } - } - } -} - - - -void GPS_Nav_ParseChar_SAT(uint8 byte, GPS_DeviceMessage_t* message) -{ - if(GPS_AppCustomData.ParserStatus.MsgLength != GPS_PARSER_NAV_SAT_MSG_LENGTH) - { - GPS_AppCustomData.ParserStatus.ParseError++; - CFE_EVS_SendEvent(GPS_INIT_DEVICE_PARSER_ERR_EID, CFE_EVS_ERROR, - "Received SAT message with incorrect length (%u).", GPS_AppCustomData.ParserStatus.MsgLength); - GPS_Parser_Reset(); - } - else - { - GPS_NAV_SAT_t *payload = (void*)CFE_SB_GetUserData((CFE_SB_MsgPtr_t)message); - switch(GPS_AppCustomData.ParserStatus.PayloadCursor) - { - case 0: - { - CFE_SB_MsgId_t sbMsgID = GPS_TranslateMsgID(GPS_AppCustomData.ParserStatus.ClassID, GPS_AppCustomData.ParserStatus.MsgID); - uint16 sbHdrSize = CFE_SB_MsgHdrSize(sbMsgID); - uint16 sbTotalMsgSize = sbHdrSize + GPS_AppCustomData.ParserStatus.MsgLength; - CFE_SB_InitMsg(message, sbMsgID, sbTotalMsgSize, TRUE); - - payload->iTOW = byte; - break; - } - case 2: - { - payload->iTOW += byte << 8; - break; - } - case 3: - { - payload->iTOW += byte << 16; - break; - } - case 4: - { - payload->iTOW += byte << 24; - break; - } - case 5: - { - payload->version = byte; - break; - } - case 6: - { - payload->numSvs = byte; - break; - } - case 7: - /* Fall Through */ - case 8: - { - GPS_Parser_StateChange(GPS_PARSE_STATE_GOT_PAYLOAD); - break; - } - default: - { - GPS_Parser_Reset(); - return; - } - } - } -} - - - -void GPS_Nav_ParseChar_GEOFENCE(uint8 byte, GPS_DeviceMessage_t* message) -{ - if(GPS_AppCustomData.ParserStatus.MsgLength != GPS_PARSER_NAV_GEOFENCE_MSG_LENGTH) - { - GPS_AppCustomData.ParserStatus.ParseError++; - CFE_EVS_SendEvent(GPS_INIT_DEVICE_PARSER_ERR_EID, CFE_EVS_ERROR, - "Received GEOFENCE message with incorrect length (%u).", GPS_AppCustomData.ParserStatus.MsgLength); - GPS_Parser_Reset(); - } - else - { - GPS_NAV_GEOFENCE_t *payload = (void*)CFE_SB_GetUserData((CFE_SB_MsgPtr_t)message); - switch(GPS_AppCustomData.ParserStatus.PayloadCursor) - { - case 0: - { - CFE_SB_MsgId_t sbMsgID = GPS_TranslateMsgID(GPS_AppCustomData.ParserStatus.ClassID, GPS_AppCustomData.ParserStatus.MsgID); - uint16 sbHdrSize = CFE_SB_MsgHdrSize(sbMsgID); - uint16 sbTotalMsgSize = sbHdrSize + GPS_AppCustomData.ParserStatus.MsgLength; - CFE_SB_InitMsg(message, sbMsgID, sbTotalMsgSize, TRUE); - - payload->iTOW = byte; - break; - } - case 2: - { - payload->iTOW += byte << 8; - break; - } - case 3: - { - payload->iTOW += byte << 16; - break; - } - case 4: - { - payload->iTOW += byte << 24; - break; - } - case 5: - { - payload->version = byte; - break; - } - case 6: - { - payload->status = byte; - break; - } - case 7: - { - payload->numFences = byte; - break; - } - case 8: - { - payload->combState = byte; - break; - } - default: - { - GPS_Parser_Reset(); - return; - } - } - } -} - - - -void GPS_Nav_ParseChar_AOPSTATUS(uint8 byte, GPS_DeviceMessage_t* message) -{ - if(GPS_AppCustomData.ParserStatus.MsgLength != GPS_PARSER_NAV_AOPSTATUS_MSG_LENGTH) - { - GPS_AppCustomData.ParserStatus.ParseError++; - CFE_EVS_SendEvent(GPS_INIT_DEVICE_PARSER_ERR_EID, CFE_EVS_ERROR, - "Received AOPSTATUS message with incorrect length (%u).", GPS_AppCustomData.ParserStatus.MsgLength); - GPS_Parser_Reset(); - } - else - { - GPS_NAV_AOPSTATUS_t *payload = (void*)CFE_SB_GetUserData((CFE_SB_MsgPtr_t)message); - switch(GPS_AppCustomData.ParserStatus.PayloadCursor) - { - case 0: - { - CFE_SB_MsgId_t sbMsgID = GPS_TranslateMsgID(GPS_AppCustomData.ParserStatus.ClassID, GPS_AppCustomData.ParserStatus.MsgID); - uint16 sbHdrSize = CFE_SB_MsgHdrSize(sbMsgID); - uint16 sbTotalMsgSize = sbHdrSize + GPS_AppCustomData.ParserStatus.MsgLength; - CFE_SB_InitMsg(message, sbMsgID, sbTotalMsgSize, TRUE); - - payload->iTOW = byte; - break; - } - case 2: - { - payload->iTOW += byte << 8; - break; - } - case 3: - { - payload->iTOW += byte << 16; - break; - } - case 4: - { - payload->iTOW += byte << 24; - break; - } - case 5: - { - payload->aopCfg = byte; - break; - } - case 6: - { - payload->status; - break; - } - case 7: - /* Fall Through */ - case 8: - /* Fall Through */ - case 9: - /* Fall Through */ - case 10: - /* Fall Through */ - case 11: - /* Fall Through */ - case 12: - /* Fall Through */ - case 13: - /* Fall Through */ - case 14: - /* Fall Through */ - case 15: - /* Fall Through */ - case 16: - { - GPS_Parser_StateChange(GPS_PARSE_STATE_GOT_PAYLOAD); - break; - } - default: - { - GPS_Parser_Reset(); - return; - } - } - } -} - - - -void GPS_Nav_ParseChar_EOE(uint8 byte, GPS_DeviceMessage_t* message) -{ - if(GPS_AppCustomData.ParserStatus.MsgLength != GPS_PARSER_NAV_EOE_MSG_LENGTH) - { - GPS_AppCustomData.ParserStatus.ParseError++; - CFE_EVS_SendEvent(GPS_INIT_DEVICE_PARSER_ERR_EID, CFE_EVS_ERROR, - "Received EOE message with incorrect length (%u).", GPS_AppCustomData.ParserStatus.MsgLength); - GPS_Parser_Reset(); - } - else - { - GPS_NAV_EOE_t *payload = (void*)CFE_SB_GetUserData((CFE_SB_MsgPtr_t)message); - switch(GPS_AppCustomData.ParserStatus.PayloadCursor) - { - case 0: - { - CFE_SB_MsgId_t sbMsgID = GPS_TranslateMsgID(GPS_AppCustomData.ParserStatus.ClassID, GPS_AppCustomData.ParserStatus.MsgID); - uint16 sbHdrSize = CFE_SB_MsgHdrSize(sbMsgID); - uint16 sbTotalMsgSize = sbHdrSize + GPS_AppCustomData.ParserStatus.MsgLength; - CFE_SB_InitMsg(message, sbMsgID, sbTotalMsgSize, TRUE); - - payload->iTOW = byte; - break; - } - case 2: - { - payload->iTOW += byte << 8; - break; - } - case 3: - { - payload->iTOW += byte << 16; - break; - } - case 4: - { - payload->iTOW += byte << 24; - GPS_Parser_StateChange(GPS_PARSE_STATE_GOT_PAYLOAD); - break; - } - default: - { - GPS_Parser_Reset(); - return; - } - } - } -} - - -/************************/ -/* End of File Comment */ -/************************/ - diff --git a/config/obc/cpd/target/apps/gps/src/gps_parser_ubx/gps_parser_ubx_nav.h b/config/obc/cpd/target/apps/gps/src/gps_parser_ubx/gps_parser_ubx_nav.h deleted file mode 100644 index 37d548f2d..000000000 --- a/config/obc/cpd/target/apps/gps/src/gps_parser_ubx/gps_parser_ubx_nav.h +++ /dev/null @@ -1,121 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ -/************************************************************************* -** -** Include section -** -**************************************************************************/ -#ifndef _GPS_PARSER_UBX_NAV_H_ -#define _GPS_PARSER_UBX_NAV_H_ - -#ifdef __cplusplus -extern "C" { -#endif - -#include "cfe.h" -#include "../gps_custom_shared.h" -//#include "GPS_events.h" -//#include "GPS_msgids.h" - -/************************************************************************* -** -** Macro definitions -** -**************************************************************************/ - - -/************************************************************************* -** -** Type definitions -** -**************************************************************************/ - -/* -** (none) -*/ - -/************************************************************************* -** -** Imported data -** -**************************************************************************/ - -/* -** (none) -*/ - -/************************************************************************* -** -** Exported data -** -**************************************************************************/ - -void GPS_Nav_ParseChar_POSECEF(uint8 byte, GPS_DeviceMessage_t* message); -void GPS_Nav_ParseChar_POSLLH(uint8 byte, GPS_DeviceMessage_t* message); -void GPS_Nav_ParseChar_STATUS(uint8 byte, GPS_DeviceMessage_t* message); -void GPS_Nav_ParseChar_DOP(uint8 byte, GPS_DeviceMessage_t* message); -void GPS_Nav_ParseChar_ATT(uint8 byte, GPS_DeviceMessage_t* message); -void GPS_Nav_ParseChar_SOL(uint8 byte, GPS_DeviceMessage_t* message); -void GPS_Nav_ParseChar_PVT(uint8 byte, GPS_DeviceMessage_t* message); -void GPS_Nav_ParseChar_ODO(uint8 byte, GPS_DeviceMessage_t* message); -void GPS_Nav_ParseChar_RESETODO(uint8 byte, GPS_DeviceMessage_t* message); -void GPS_Nav_ParseChar_VELECEF(uint8 byte, GPS_DeviceMessage_t* message); -void GPS_Nav_ParseChar_VELNED(uint8 byte, GPS_DeviceMessage_t* message); -void GPS_Nav_ParseChar_TIMEGPS(uint8 byte, GPS_DeviceMessage_t* message); -void GPS_Nav_ParseChar_TIMEUTC(uint8 byte, GPS_DeviceMessage_t* message); -void GPS_Nav_ParseChar_CLOCK(uint8 byte, GPS_DeviceMessage_t* message); -void GPS_Nav_ParseChar_TIMEGLO(uint8 byte, GPS_DeviceMessage_t* message); -void GPS_Nav_ParseChar_TIMEBDS(uint8 byte, GPS_DeviceMessage_t* message); -void GPS_Nav_ParseChar_TIMEGAL(uint8 byte, GPS_DeviceMessage_t* message); -void GPS_Nav_ParseChar_TIMELS(uint8 byte, GPS_DeviceMessage_t* message); -void GPS_Nav_ParseChar_SVINFOH(uint8 byte, GPS_DeviceMessage_t* message); -void GPS_Nav_ParseChar_DGPS(uint8 byte, GPS_DeviceMessage_t* message); -void GPS_Nav_ParseChar_SBAS(uint8 byte, GPS_DeviceMessage_t* message); -void GPS_Nav_ParseChar_ORB(uint8 byte, GPS_DeviceMessage_t* message); -void GPS_Nav_ParseChar_SAT(uint8 byte, GPS_DeviceMessage_t* message); -void GPS_Nav_ParseChar_GEOFENCE(uint8 byte, GPS_DeviceMessage_t* message); -void GPS_Nav_ParseChar_AOPSTATUS(uint8 byte, GPS_DeviceMessage_t* message); -void GPS_Nav_ParseChar_EOE(uint8 byte, GPS_DeviceMessage_t* message); - -//int32 GPS_Nav_EnablePOSLLH(void); - -#ifdef __cplusplus -} -#endif - -#endif /* _GPS_PARSER_UBX_NAV_H_*/ - -/************************/ -/* End of File Comment */ -/************************/ - diff --git a/config/obc/cpd/target/apps/gps/src/gps_parser_ubx/gps_ubx_msg.h b/config/obc/cpd/target/apps/gps/src/gps_parser_ubx/gps_ubx_msg.h deleted file mode 100644 index f5359c88d..000000000 --- a/config/obc/cpd/target/apps/gps/src/gps_parser_ubx/gps_ubx_msg.h +++ /dev/null @@ -1,534 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ - -#ifndef _GPS_UBX_MSG_H_ -#define _GPS_UBX_MSG_H_ - -#ifdef __cplusplus -extern "C" { -#endif - -#include "common_types.h" -#include "px4_msgs.h" - -#define GPS_COEF_SIZE (8) - -/* RX NAV-PVT message content details */ -/* Bitfield "valid" masks */ -/**< validDate (Valid UTC Date) */ -#define GPS_NAV_PVT_VALID_VALIDDATE (0x01) -/**< validTime (Valid UTC Time) */ -#define GPS_NAV_PVT_VALID_VALIDTIME (0x02) -/**< fullyResolved (1 = UTC Time of Day has been fully resolved (no seconds uncertainty)) */ -#define GPS_NAV_PVT_VALID_FULLYRESOLVED (0x04) - -/* Bitfield "flags" masks */ -/**< gnssFixOK (A valid fix (i.e within DOP & accuracy masks)) */ -#define GPS_NAV_PVT_FLAGS_GNSSFIXOK (0x01) -/**< diffSoln (1 if differential corrections were applied) */ -#define GPS_NAV_PVT_FLAGS_DIFFSOLN (0x02) -/**< psmState (Power Save Mode state (see Power Management)) */ -#define GPS_NAV_PVT_FLAGS_PSMSTATE (0x1C) -/**< headVehValid (Heading of vehicle is valid) */ -#define GPS_NAV_PVT_FLAGS_HEADVEHVALID (0x20) -/**< Carrier phase range solution (RTK mode) */ -#define GPS_NAV_PVT_FLAGS_CARRSOLN (0xC0) - -/* RX NAV-TIMEUTC message content details */ -/* Bitfield "valid" masks */ -/**< validTOW (1 = Valid Time of Week) */ -#define GPS_NAV_TIMEUTC_VALID_VALIDTOW (0x01) -/**< validWKN (1 = Valid Week Number) */ -#define GPS_NAV_TIMEUTC_VALID_VALIDKWN (0x02) -/**< validUTC (1 = Valid UTC Time) */ -#define GPS_NAV_TIMEUTC_VALID_VALIDUTC (0x04) -/**< utcStandard (0..15 = UTC standard identifier) */ -#define GPS_NAV_TIMEUTC_VALID_UTCSTANDARD (0xF0) - -#define GPS_MON_HW_VP_PIN_COUNT (17) - -typedef struct -{ - uint32 iTOW; - uint8 aopCfg; - uint8 status; -} GPS_NAV_AOPSTATUS_t; - - -typedef struct -{ - uint32 iTOW; - uint8 version; - int32 roll; - int32 pitch; - int32 heading; - uint32 accRoll; - uint32 accPitch; - uint32 accHeading; -} GPS_NAV_ATT_t; - - -typedef struct -{ - uint32 iTOW; - int32 clkB; - int32 clkD; - uint32 tAcc; - uint32 fAcc; -} GPS_NAV_CLOCK_t; - - -typedef struct -{ - uint32 iTOW; - int32 age; - int16 baseId; - int16 baseHealth; - uint8 numCh; - uint8 status; -} GPS_NAV_DGPS_t; - - -typedef struct -{ - uint32 iTOW; - uint16 gDOP; - uint16 pDOP; - uint16 tDOP; - uint16 vDOP; - uint16 hDOP; - uint16 nDOP; - uint16 eDOP; -} GPS_NAV_DOP_t; - - -typedef struct -{ - uint32 iTOW; -} GPS_NAV_EOE_t; - - -typedef struct -{ - uint32 iTOW; - uint8 version; - uint8 status; - uint8 numFences; - uint8 combState; -} GPS_NAV_GEOFENCE_t; - - -typedef struct -{ - uint8 version; - uint32 iTOW; - uint32 distance; - uint32 totalDistance; - uint32 distanceStd; -} GPS_NAV_ODO_t; - - -typedef struct -{ - uint32 iTOW; - uint8 version; - uint8 numSv; -} GPS_NAV_ORB_t; - - -typedef struct -{ - uint32 iTOW; - int32 ecefX; - int32 ecefY; - int32 ecefZ; - uint32 pAcc; -} GPS_NAV_POSECEF_t; - - -typedef struct -{ - uint32 iTOW; - int32 lon; - int32 lat; - int32 height; - int32 hMSL; - uint32 hAcc; - uint32 vAcc; -} GPS_NAV_POSLLH_t; - - -typedef struct -{ - uint32 iTOW; - uint16 year; - uint8 month; - uint8 day; - uint8 hour; - uint8 min; - uint8 sec; - uint8 valid; - uint32 tAcc; - int32 nano; - uint8 fixType; - uint8 flags; - uint8 flags2; - uint8 numSV; - int32 lon; - int32 lat; - int32 height; - int32 hMSL; - uint32 hAcc; - uint32 vAcc; - int32 velN; - int32 velE; - int32 velD; - int32 gSpeed; - int32 headMot; - uint32 sAcc; - uint32 headAcc; - uint16 pDOP; - uint16 reserved2; - uint32 reserved3; - int32 headVeh; - int16 magDec; - uint16 magAcc; -} GPS_NAV_PVT_t; - - -typedef struct -{ - uint32 iTOW; - uint8 version; - uint8 numSvs; -} GPS_NAV_SAT_t; - - -typedef struct -{ - uint32 iTOW; - uint8 geo; - uint8 mode; - int8 sys; - uint8 service; - uint8 cnt; -} GPS_NAV_SBAS_t; - - -typedef struct -{ - uint32 iTOW; - int32 fTOW; - int16 week; - uint8 gpsFix; - uint8 flags; - int32 ecefX; - int32 ecefY; - int32 ecefZ; - uint32 pAcc; - int32 ecefVX; - int32 ecefVY; - int32 ecefVZ; - uint32 sAcc; - uint16 pDOP; - uint8 numSV; -} GPS_NAV_SOL_t; - - -typedef struct -{ - uint32 iTOW; - uint8 gpsFix; - uint8 flags; - uint8 fixStat; - uint8 flags2; - uint32 ttff; - uint32 msss; -} GPS_NAV_STATUS_t; - - -typedef struct -{ - uint32 iTOW; - uint8 numCh; - uint8 globalFlags; - uint16 reserved2; -} GPS_NAV_SVINFO_P1_t; - - -typedef struct -{ - uint8 chn; - uint8 svid; - uint8 flags; - uint8 quality; - uint8 cno; - int8 elev; - int16 azim; - int32 prRes; -} GPS_NAV_SVINFO_P2_t; - - -typedef struct -{ - GPS_NAV_SVINFO_P1_t svinfo; - GPS_NAV_SVINFO_P2_t numCh[PX4_SAT_INFO_MAX_SATELLITES]; -} GPS_NAV_SVINFO_Combined_t; - -typedef struct -{ - uint32 iTOW; - uint32 SOW; - int32 fSOW; - int16 week; - int8 leapS; - uint8 valid; - uint32 tAcc; -} GPS_NAV_TIMEBDS_t; - - -typedef struct -{ - uint32 iTOW; - uint32 galTow; - int32 fGalTow; - int16 galWno; - int8 leapS; - uint8 valid; - uint32 tAcc; -} GPS_NAV_TIMEGAL_t; - - -typedef struct -{ - uint32 iTOW; - uint32 TOD; - int32 fTOD; - uint16 Nt; - uint8 N4; - uint8 valid; - uint32 tAcc; -} GPS_NAV_TIMEGLO_t; - - -typedef struct -{ - uint32 iTOW; - int32 fTOW; - int16 week; - int8 leapS; - uint8 valid; - uint32 tAcc; -} GPS_NAV_TIMEGPS_t; - - -typedef struct -{ - uint32 iTOW; - uint8 version; - uint8 srcOfCurrLs; - int8 currLs; - uint8 srcOfLsChange; - int8 lsChange; - int32 timeToLsEvent; - uint16 dateOfLsGpsWn; - uint16 dateOfLsGpsDn; - uint8 valid; -} GPS_NAV_TIMELS_t; - - -typedef struct -{ - uint32 iTOW; - uint32 tAcc; - int32 nano; - uint16 year; - uint8 month; - uint8 day; - uint8 hour; - uint8 min; - uint8 sec; - uint8 valid; -} GPS_NAV_TIMEUTC_t; - - -typedef struct -{ - uint32 iTOW; - int32 ecefVX; - int32 ecefVY; - int32 ecefVZ; - uint32 sAcc; -} GPS_NAV_VELECEF_t; - - -typedef struct -{ - uint32 iTOW; - int32 velN; - int32 velE; - int32 velD; - uint32 speed; - uint32 gSpeed; - int32 heading; - uint32 sAcc; - uint32 cAcc; -} GPS_NAV_VELNED_t; - - -typedef struct -{ - uint32 pinSel; - uint32 pinBank; - uint32 pinDir; - uint32 pinVal; - uint16 noisePerMS; - uint16 agcCnt; - uint8 aStatus; - uint8 aPower; - uint8 flags; - uint8 reserved1; - uint32 usedMask; - uint8 vp[GPS_MON_HW_VP_PIN_COUNT]; - uint8 jamInd; - uint16 reserved2; - uint32 pinIrq; - uint32 pullH; - uint32 pullL; -} GPS_MON_HW_t; - - -typedef struct -{ - uint32 clearMask; - uint32 saveMask; - uint32 loadMask; - uint8 deviceMask; -} GPS_CFG_CFG_t; - - -typedef struct -{ - uint16 mask; - uint8 dynModel; - uint8 fixMode; - int32 fixedAlt; - uint32 fixedAltVar; - int8 minElev; - uint8 drLimit; - uint16 pDop; - uint16 tDop; - uint16 pAcc; - uint16 tAcc; - uint8 staticHoldThresh; - uint8 dgnssTimeout; - uint8 cnoThreshNumSVs; - uint8 cnoThresh; - uint16 reserved1; - uint16 staticHoldMaxDist; - uint8 utcStandard; - uint8 reserved2; - uint32 reserved3; -} GPS_CFG_NAV5_t; - - -typedef struct -{ - uint8 mode; - uint8 usage; - uint8 maxSBAS; - uint8 scanmode2; - uint32 scanmode1; -} GPS_CFG_SBAS_t; - - -typedef struct -{ - uint8 version; - uint8 reserved1; - uint16 flags; - int32 ecefXOrLat; - int32 ecefYOrLon; - int32 ecefZOrAlt; - int8 ecefXOrLatHP; - int8 ecefYOrLonHP; - int8 ecefZOrAltHP; - uint8 reserved2; - uint32 fixedPosAcc; - uint32 svinMinDur; - uint32 svinAccLimit; - uint8 reserved3[8]; -} GPS_CFG_TMODE3_t; - - -typedef struct -{ - uint8 portID; - uint8 reserved1; - uint16 txReady; - uint32 mode; - uint32 baudRate; - uint16 inProtoMask; - uint16 outProtoMask; - uint16 flags; - uint16 reserved2; -} GPS_CFG_PRT_t; - - -typedef struct -{ - uint8 msgClass; - uint8 msgID; - uint8 rate[6]; -} GPS_CFG_MSG_t; - - -typedef struct -{ - uint8 clsID; - uint8 msgID; -} GPS_ACK_ACK_t; - - -typedef struct -{ - uint8 clsID; - uint8 msgID; -} GPS_ACK_NAK_t; - - -#ifdef __cplusplus -} -#endif - -#endif /* _GPS_UBX_MSG_H_ */ diff --git a/config/obc/cpd/target/apps/hmc5883/src/CMakeLists.txt b/config/obc/cpd/target/apps/hmc5883/src/CMakeLists.txt deleted file mode 100644 index 89582d3dc..000000000 --- a/config/obc/cpd/target/apps/hmc5883/src/CMakeLists.txt +++ /dev/null @@ -1,5 +0,0 @@ -# Set source for custom code. -set(APP_CUSTOM_SRC - ${CMAKE_CURRENT_SOURCE_DIR}/hmc5883_custom.c - PARENT_SCOPE - ) diff --git a/config/obc/cpd/target/apps/hmc5883/src/hmc5883_custom.c b/config/obc/cpd/target/apps/hmc5883/src/hmc5883_custom.c index 1b00ece09..604c432db 100644 --- a/config/obc/cpd/target/apps/hmc5883/src/hmc5883_custom.c +++ b/config/obc/cpd/target/apps/hmc5883/src/hmc5883_custom.c @@ -38,506 +38,116 @@ ** Includes *************************************************************************/ #include "cfe.h" -#include "hmc5883_i2c.h" -#include "hmc5883_events.h" -#include "hmc5883_perfids.h" -#include "px4lib.h" -#include -#include -#include -#include -#include -#include -#include -#include -/************************************************************************ -** Local Defines -*************************************************************************/ -/************************************************************************ -** Local Structure Declarations -*************************************************************************/ -typedef enum { - -/** \brief 'HMC5883 - ' -** \event 'HMC5883 - ' -** -** \par Type: ERROR -** -** \par Cause: -** -** This event message is issued when a device resource encounters an -** error. -** -*/ - HMC5883_DEVICE_ERR_EID = HMC5883_EVT_CNT, - -/** \brief Number of custom events -** -** \par Limits: -** int32 -*/ - HMC5883_CUSTOM_EVT_CNT -} HMC5883_CustomEventIds_t; +void HMC5883_Custom_InitData(void) +{ +} -/************************************************************************ -** External Global Variables -*************************************************************************/ -/************************************************************************ -** Global Variables -*************************************************************************/ -HMC5883_AppCustomData_t HMC5883_AppCustomData; -/************************************************************************ -** Local Variables -*************************************************************************/ - -/************************************************************************ -** Local Function Definitions -*************************************************************************/ -int32 HMC5883_Ioctl(int fh, int request, void *arg) +boolean HMC5883_Custom_Init(void) { - int32 returnCode = 0; - uint32 i = 0; - - for (i=0; i < HMC5883_MAX_RETRY_ATTEMPTS; i++) - { - returnCode = ioctl(fh, request, arg); - - if (-1 == returnCode && EINTR == errno) - { - usleep(HMC5883_MAX_RETRY_SLEEP_USEC); - } - else - { - break; - } - } - - return (returnCode); + return TRUE; } -void HMC5883_Custom_InitData(void) -{ - /* Set all struct zero values */ - bzero(&HMC5883_AppCustomData, sizeof(HMC5883_AppCustomData)); - return; -} - -boolean HMC5883_Custom_Init() +boolean HMC5883_Custom_Uninit(void) { - boolean returnBool = TRUE; - - HMC5883_AppCustomData.DeviceFd = open(HMC5883_I2C_DEVICE_PATH, O_RDWR); - - if (HMC5883_AppCustomData.DeviceFd < 0) - { - (void) CFE_EVS_SendEvent(HMC5883_DEVICE_ERR_EID, CFE_EVS_ERROR, - "HMC5883 Device open errno: %i", errno); - returnBool = FALSE; - goto end_of_function; - } - else - { - HMC5883_AppCustomData.Status = HMC5883_CUSTOM_INITIALIZED; - } - -end_of_function: - return (returnBool); + return TRUE; } -boolean HMC5883_Custom_Set_Range(uint8 Range) -{ - boolean returnBool = FALSE; - - returnBool = HMC5883_Custom_Send(HMC5883_I2C_REG_CONFIG_B, - Range); - return (returnBool); -} - - -boolean HMC5883_Custom_Get_Range(uint8 *Range) +int32 HMC5883_Custom_Init_EventFilters(int32 ind, CFE_EVS_BinFilter_t *EventTbl) { - boolean returnBool = FALSE; - - returnBool = HMC5883_Custom_Receive(HMC5883_I2C_REG_CONFIG_B, - Range, 1); - - return (returnBool); + return 0; } -boolean HMC5883_Custom_Check_Range(uint8 Range) -{ - boolean returnBool = FALSE; - - uint8 Result[1] = { 0 }; - - returnBool = HMC5883_Custom_Receive(HMC5883_I2C_REG_CONFIG_B, - Result, sizeof(Result)); - /* If the gain setting is corrupt, reset the value */ - if (Range != Result[0]) - { - returnBool = HMC5883_Custom_Set_Range(Range); - } - - return (returnBool); -} - -boolean HMC5883_Custom_Set_Config(uint8 Config) +boolean HMC5883_Custom_Measure(int16 *X, int16 *Y, int16 *Z) { - boolean returnBool = FALSE; - - returnBool = HMC5883_Custom_Send(HMC5883_I2C_REG_CONFIG_A, - Config); - - return (returnBool); + return TRUE; } -boolean HMC5883_Custom_Get_Config(uint8 *Config) -{ - boolean returnBool = FALSE; - - returnBool = HMC5883_Custom_Receive(HMC5883_I2C_REG_CONFIG_A, - Config, 1); - - return (returnBool); -} - -boolean HMC5883_Custom_Check_Config(uint8 Config) +boolean HMC5883_Apply_Platform_Rotation(float *X, float *Y, float *Z) { - boolean returnBool = FALSE; - - uint8 Result[1] = { 0 }; - - returnBool = HMC5883_Custom_Receive(HMC5883_I2C_REG_CONFIG_A, - Result, sizeof(Result)); - if (Config != Result[0]) - { - returnBool = HMC5883_Custom_Set_Config(Config); - } - - return (returnBool); + return TRUE; } -boolean HMC5883_Custom_Measure(int16 *X, int16 *Y, int16 *Z) -{ - boolean returnBool = FALSE; - - uint8 Message = HMC5883_BITS_MODE_SINGLE_MODE; - - /* to store x, z, and y raw values*/ - uint8 Result[6] = { 0 }; - - /* Null pointer check */ - if(0 == X || 0 == Y || 0 == Z) - { - (void) CFE_EVS_SendEvent(HMC5883_DEVICE_ERR_EID, CFE_EVS_ERROR, - "HMC5883 Read_Gyro Null Pointer"); - returnBool = FALSE; - goto end_of_function; - } - - /* Issue a measure command */ - returnBool = HMC5883_Custom_Send(HMC5883_I2C_REG_MODE, - Message); - if(FALSE == returnBool) - { - /* If send was unsuccessful return FALSE */ - goto end_of_function; - } - /* wait for it to complete */ - usleep(HMC5883_CONVERSION_INTERVAL_US); - - /* Read the x, z, and y values from the device */ - returnBool = HMC5883_Custom_Receive(HMC5883_I2C_REG_DATA_OUT_X_MSB, - Result, sizeof(Result)); - if(FALSE == returnBool) - { - /* If receive was unsuccessful return FALSE */ - goto end_of_function; - } - - *X = (((int16)Result[0]) << 8) + Result[1]; - *Z = (((int16)Result[2]) << 8) + Result[3]; - *Y = (((int16)Result[4]) << 8) + Result[5]; - -end_of_function: - - return (returnBool); -} - -boolean HMC5883_Custom_Measure_Temp(int16 *Temp) +boolean HMC5883_Apply_Platform_Rotation_Float(float *X, float *Y, float *Z) { - boolean returnBool = FALSE; - - /* to store temperature raw values*/ - uint8 Result[2] = { 0 }; - - /* Null pointer check */ - if(0 == Temp) - { - (void) CFE_EVS_SendEvent(HMC5883_DEVICE_ERR_EID, CFE_EVS_ERROR, - "HMC5883 Read Temp Null Pointer"); - returnBool = FALSE; - goto end_of_function; - } - /* Read the device temperature value */ - returnBool = HMC5883_Custom_Receive(HMC5983_REG_TEMP_OUT_MSB, - Result, sizeof(Result)); - if(FALSE == returnBool) - { - /* If receive was unsuccessful return FALSE */ - goto end_of_function; - } - - *Temp = (((int16)Result[0]) << 8) + Result[1]; - -end_of_function: - - return (returnBool); + return TRUE; } + boolean HMC5883_Custom_ValidateID(void) { - boolean returnBool = FALSE; - - uint8 Result[1] = { 0 }; - - returnBool = HMC5883_Custom_Receive(HMC5883_REG_ID_A, &Result[0], 1); - if(FALSE == returnBool) - { - /* If receive was unsuccessful return FALSE */ - goto end_of_function; - } - if (HMC5883_ID_A != Result[0]) - { - /* If the ID doesn't match return FALSE */ - returnBool = FALSE; - goto end_of_function; - } - returnBool = HMC5883_Custom_Receive(HMC5883_REG_ID_B, &Result[0], 1); - if(FALSE == returnBool) - { - /* If receive was unsuccessful return FALSE */ - goto end_of_function; - } - if (HMC5883_ID_B != Result[0]) - { - /* If the ID doesn't match return FALSE */ - returnBool = FALSE; - goto end_of_function; - } - returnBool = HMC5883_Custom_Receive(HMC5883_REG_ID_C, &Result[0], 1); - if(FALSE == returnBool) - { - /* If receive was unsuccessful return FALSE */ - goto end_of_function; - } - if (HMC5883_ID_C != Result[0]) - { - /* If the ID doesn't match return FALSE */ - returnBool = FALSE; - goto end_of_function; - } - -end_of_function: - - return (returnBool); + return TRUE; } -boolean HMC5883_Custom_Send(uint8 Reg, uint8 Data) + +boolean HMC5883_Custom_Set_Range(uint8 Range) { - int returnCode = 0; - boolean returnBool = FALSE; - struct i2c_msg Messages[1]; - struct i2c_rdwr_ioctl_data Packets; - uint8 buf[2]; - - buf[0] = Reg; - buf[1] = Data; - - Messages[0].addr = HMC5883_I2C_SLAVE_ADDRESS; - Messages[0].flags = 0; - Messages[0].buf = &buf[0]; - Messages[0].len = 2; - - Packets.msgs = Messages; - Packets.nmsgs = 1; - - CFE_ES_PerfLogEntry(HMC5883_SEND_PERF_ID); - returnCode = HMC5883_Ioctl(HMC5883_AppCustomData.DeviceFd, I2C_RDWR, &Packets); - CFE_ES_PerfLogExit(HMC5883_SEND_PERF_ID); - - if (-1 == returnCode) - { - (void) CFE_EVS_SendEvent(HMC5883_DEVICE_ERR_EID, CFE_EVS_ERROR, - "HMC5883 ioctl returned errno %i", errno); - } - else - { - returnBool = TRUE; - } - - return (returnBool); + return TRUE; } -boolean HMC5883_Custom_Receive(uint8 Reg, uint8 *Buffer, size_t Length) + +boolean HMC5883_Custom_Get_Range(uint8 *Range) { - int returnCode = 0; - boolean returnBool = FALSE; - uint8 cmd = Reg; - - struct i2c_rdwr_ioctl_data Packets; - struct i2c_msg Messages[2]; - - /* send */ - Messages[0].addr = HMC5883_I2C_SLAVE_ADDRESS; - Messages[0].flags = 0; - Messages[0].buf = &cmd; - Messages[0].len = 1; - - /* receive */ - Messages[1].addr = HMC5883_I2C_SLAVE_ADDRESS; - Messages[1].flags = HMC5883_I2C_M_READ; - Messages[1].buf = Buffer; - Messages[1].len = Length; - - Packets.msgs = Messages; - Packets.nmsgs = 2; - - CFE_ES_PerfLogEntry(HMC5883_RECEIVE_PERF_ID); - returnCode = HMC5883_Ioctl(HMC5883_AppCustomData.DeviceFd, I2C_RDWR, &Packets); - CFE_ES_PerfLogExit(HMC5883_RECEIVE_PERF_ID); - - if (-1 == returnCode) - { - (void) CFE_EVS_SendEvent(HMC5883_DEVICE_ERR_EID, CFE_EVS_ERROR, - "HMC5883 ioctl returned errno %i", errno); - } - else - { - returnBool = TRUE; - } - - return (returnBool); + return TRUE; } -boolean HMC5883_Custom_Uninit(void) +boolean HMC5883_Custom_Check_Range(uint8 Range) { - boolean returnBool = TRUE; - int returnCode = 0; - - returnCode = close(HMC5883_AppCustomData.DeviceFd); - if (-1 == returnCode) - { - (void) CFE_EVS_SendEvent(HMC5883_DEVICE_ERR_EID, CFE_EVS_ERROR, - "HMC5883 Device close errno: %i", errno); - returnBool = FALSE; - } - else - { - HMC5883_AppCustomData.Status = HMC5883_CUSTOM_UNINITIALIZED; - } - return (returnBool); + return TRUE; } -boolean HMC5883_Custom_Max_Events_Not_Reached(int32 ind) + +boolean HMC5883_Custom_Check_Config(uint8 Config) { - boolean returnBool = FALSE; + return TRUE; +} - if ((ind < CFE_EVS_MAX_EVENT_FILTERS) && (ind > 0)) - { - returnBool = TRUE; - } - return (returnBool); + +boolean HMC5883_Custom_Set_Config(uint8 Config) +{ + return TRUE; } -int32 HMC5883_Custom_Init_EventFilters(int32 ind, CFE_EVS_BinFilter_t *EventTbl) + +boolean HMC5883_Custom_Get_Config(uint8 *Config) { - int32 customEventCount = ind; - - /* Null check */ - if(0 == EventTbl) - { - customEventCount = -1; - goto end_of_function; - } - - if(TRUE == HMC5883_Custom_Max_Events_Not_Reached(customEventCount)) - { - EventTbl[ customEventCount].EventID = HMC5883_DEVICE_ERR_EID; - EventTbl[customEventCount++].Mask = CFE_EVS_FIRST_16_STOP; - } - else - { - customEventCount = -1; - goto end_of_function; - } - -end_of_function: - - return (customEventCount); + return TRUE; } -boolean HMC5883_Apply_Platform_Rotation(float *X, float *Y, float *Z) + +boolean HMC5883_Custom_Measure_Temp(int16 *Temp) { - boolean returnBool = TRUE; - int16 temp = 0; - - /* Null pointer check */ - if(0 == X || 0 == Y || 0 == Z) - { - (void) CFE_EVS_SendEvent(HMC5883_DEVICE_ERR_EID, CFE_EVS_ERROR, - "HMC5883 Apply_Platform_Rotation Null Pointer"); - returnBool = FALSE; - goto end_of_function; - } - - /* The standard external mag by 3DR has x pointing to the - * right, y pointing backwards, and z down, therefore switch x - * and y and invert y. */ - temp = *X; - *X = -*Y; - *Y = temp; - -end_of_function: - - return (returnBool); + return TRUE; } + void HMC5883_Get_Rotation(uint8 *Rotation) { - /* Null pointer check */ - if(0 == Rotation) - { - goto end_of_function; - } - - *Rotation = ROTATION_YAW_90; -end_of_function: - return; } + + diff --git a/config/obc/cpd/target/apps/hmc5883/src/hmc5883_i2c.h b/config/obc/cpd/target/apps/hmc5883/src/hmc5883_i2c.h deleted file mode 100644 index 9e08dbbee..000000000 --- a/config/obc/cpd/target/apps/hmc5883/src/hmc5883_i2c.h +++ /dev/null @@ -1,337 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ -#ifndef HMC5883_I2C_H -#define HMC5883_I2C_H - -#ifdef __cplusplus -extern "C" { -#endif - -/************************************************************************ -** Includes -*************************************************************************/ -#include "hmc5883_custom.h" -#include "cfe.h" - -/************************************************************************ -** Local Defines -*************************************************************************/ -/** \brief I2C device path. */ -#define HMC5883_I2C_DEVICE_PATH "/dev/i2c-4" - -/** \brief I2C slave address of the HMC5883 device in hex. */ -#define HMC5883_I2C_SLAVE_ADDRESS (0x1e) - -/** \brief HMC5883 expected ID A value. */ -#define HMC5883_ID_A ('H') - -/** \brief HMC5883 expected ID B value. */ -#define HMC5883_ID_B ('4') - -/** \brief HMC5883 expected ID C value. */ -#define HMC5883_ID_C ('3') - -/** \brief Read data, from slave to master. -** -** \par Limits: -** None. -*/ -#define HMC5883_I2C_M_READ (0x0001) - -/** \brief The measurement interval (150Hz). -** -** \par Limits: -** Max for the HMC5883 is 160Hz. -*/ -#define HMC5883_CONVERSION_INTERVAL_US (1000000/150) - -/* HMC5883 device registers */ -/** \brief Configuration register A. -** -** \par Description: -** Used for setting the data output rate and measurement config. -*/ -#define HMC5883_I2C_REG_CONFIG_A (0x00) - -/** \brief Configuration register B. -** -** \par Description: -** Used for setting device gain. -*/ -#define HMC5883_I2C_REG_CONFIG_B (0x01) - -/** \brief Mode register. -** -** \par Description: -** Used to select the operating mode of the device. -*/ -#define HMC5883_I2C_REG_MODE (0x02) - -/** \brief Data Output X Registers A. -** -** \par Description: -** Used to store the measurement result from channel X. -*/ -#define HMC5883_I2C_REG_DATA_OUT_X_MSB (0x03) - -/** \brief Data Output X Registers B. -** -** \par Description: -** Used to store the measurement result from channel X. -*/ -#define HMC5883_I2C_REG_DATA_OUT_X_LSB (0x04) - -/** \brief Data Output Z Registers A. -** -** \par Description: -** Used to store the measurement result from channel Z. -*/ -#define HMC5883_I2C_REG_DATA_OUT_Z_MSB (0x05) - -/** \brief Data Output Z Registers B. -** -** \par Description: -** Used to store the measurement result from channel Z. -*/ -#define HMC5883_I2C_REG_DATA_OUT_Z_LSB (0x06) - -/** \brief Data Output Y Registers A. -** -** \par Description: -** Used to store the measurement result from channel Y. -*/ -#define HMC5883_I2C_REG_DATA_OUT_Y_MSB (0x07) - -/** \brief Data Output Y Registers B. -** -** \par Description: -** Used to store the measurement result from channel Y. -*/ -#define HMC5883_I2C_REG_DATA_OUT_Y_LSB (0x08) - -/** \brief Status register. -** -** \par Description: -** Used to indicate device status. -*/ -#define HMC5883_I2C_REG_STATUS (0x09) - -/** \brief Identification Register A. -** -** \par Description: -** Used to identify the device. -*/ -#define HMC5883_REG_ID_A (0x0a) - -/** \brief Identification Register B. -** -** \par Description: -** Used to identify the device. -*/ -#define HMC5883_REG_ID_B (0x0b) - -/** \brief Identification Register C. -** -** \par Description: -** Used to identify the device. -*/ -#define HMC5883_REG_ID_C (0x0c) - -/** \brief Temperature output register (HMC5983). -** -** \par Description: -** MSB for temperature measurements. -*/ -#define HMC5983_REG_TEMP_OUT_MSB (0x31) - -/** \brief Temperature output register (HMC5983). -** -** \par Description: -** LSB for temperature measurements. -*/ -#define HMC5983_REG_TEMP_OUT_LSB (0x32) - -/* HMC5883 mask */ -/** \brief Continuous measurement mode with a rate of 75Hz. -** -** \par Description: -** Sets the maximum rate for continuous measurement mode. -*/ -//#define HMC5883_BITS_CONFIG_A_CONTINUOUS_75HZ (0x6 << 2) - -#define HMC5883_BITS_CONFIG_A_DEFAULT (0) - -/** \brief Continuous measurement mode. -** -** \par Description: -** Operating mode continuous-measurement mode. -*/ -#define HMC5883_BITS_MODE_CONTINUOUS_MODE (0x00) - -/** \brief Single measurement mode. -** -** \par Description: -** Operating mode single-measurement mode. -*/ -#define HMC5883_BITS_MODE_SINGLE_MODE (0x01) - -/* Retry settings */ -/** \brief Retry attemps for interrupted ioctl calls. -** -** \par Limits: -** None. -*/ -#define HMC5883_MAX_RETRY_ATTEMPTS (5) - -/** \brief Sleep time micro seconds for interrupted calls. -** -** \par Limits: -** None. -*/ -#define HMC5883_MAX_RETRY_SLEEP_USEC (10) - - -/************************************************************************ -** Structure Declarations -*************************************************************************/ -/** - * \brief HMC5883 device status - */ -typedef enum -{ - /*! HMC5883 status uninitialized */ - HMC5883_CUSTOM_UNINITIALIZED = 0, - /*! HMC5883 status initialized */ - HMC5883_CUSTOM_INITIALIZED = 1 -} HMC5883_Custom_Status_t; - - -typedef struct -{ - /*! Device file descriptor */ - int DeviceFd; - /*! The current device status */ - HMC5883_Custom_Status_t Status; -} HMC5883_AppCustomData_t; - - -/************************************************************************ -** External Global Variables -*************************************************************************/ - -/************************************************************************ -** Function Prototypes -*************************************************************************/ - -/************************************************************************/ -/** \brief ioctl with limited EINTR retry attempts. -** -** \par Description -** This function is a wrapper for ioctl with retry attempts added. -** -** \param [in] fh file descriptor. -** \param [in] request code. -** \param [in] arg pointer to a device specific struct. -** -** \returns -** usually 0 for success and -1 for failure, see ioctl man-page for -** more info. -** \endreturns -** -*************************************************************************/ -int32 HMC5883_Ioctl(int fh, int request, void *arg); - -/************************************************************************/ -/** \brief Determines if the maximum of event filters has been reached. -** -** \par Description -** This function checks if an index has reached the maximum -** number of events. -** -** \par Assumptions, External Events, and Notes: -** None -** -** \param [in] ind The current index to check. -** -** -** \returns boolean -** -*************************************************************************/ -boolean HMC5883_Custom_Max_Events_Not_Reached(int32 ind); - - -/************************************************************************/ -/** \brief Receives data via I2C from the HMC5883. -** -** \par Description -** This function receives data via I2C from the device. -** -** \par Assumptions, External Events, and Notes: -** The device must be initialized before this function is called. -** -** \param [in] Reg The target (sender) register to read from. -** -** \param [out] Buffer The buffer to save the data received. -** -** \param [in] Length The length of data to read. -** -** \returns boolean True for success, false for failure. -** -*************************************************************************/ -boolean HMC5883_Custom_Receive(uint8 Reg, uint8 *Buffer, size_t Length); - - -/************************************************************************/ -/** \brief Send data via I2C to the HMC5883. -** -** \par Description -** This function sends data via I2C to the device. -** -** \par Assumptions, External Events, and Notes: -** The device must be initialized before this function is called. -** -** \param [in] Reg The target (recipient) register. -** -** \param [in] Data The data to send. -** -** \returns boolean True for success, false for failure. -** -*************************************************************************/ -boolean HMC5883_Custom_Send(uint8 Reg, uint8 Data); - - -#ifdef __cplusplus -} -#endif - -#endif /* HMC5883_I2C_H */ diff --git a/config/obc/cpd/target/apps/lgc/lgc_custom.cpp b/config/obc/cpd/target/apps/lgc/lgc_custom.cpp index 6f6de1e93..ef2133799 100644 --- a/config/obc/cpd/target/apps/lgc/lgc_custom.cpp +++ b/config/obc/cpd/target/apps/lgc/lgc_custom.cpp @@ -33,47 +33,6 @@ #include "cfe.h" #include "lgc_app.h" -#include -#include -#include -#include -#include -#include - -#define LGC_RCOUT_ZYNQ_PWM_BASE (0x43c00000) -#define LGC_FREQUENCY_PWM (400) -#define LGC_TICK_PER_S (50000000) -#define LGC_TICK_PER_US (50) -#define LGC_DEVICE_PATH "/dev/mem" -#define MOTOR_OUTPUTS_SKIPPED (8) - - -/* The following struct is used by the LGC_SharedMemCmd_t struct and overlayed - * over the ocpoc PPM registers to control the PWM hardware. - */ -typedef struct { - uint32 Period; - uint32 Hi; -} LGC_PeriodHi_t; - - -/* The following struct is overlayed over the ocpoc PPM registers to control - * the PWM hardware. - */ -typedef struct -{ - LGC_PeriodHi_t PeriodHi[MOTOR_OUTPUTS_SKIPPED + LGC_MAX_GEAR_OUTPUTS]; -} LGC_SharedMemCmd_t; - -volatile LGC_SharedMemCmd_t *LGC_SharedMemCmd; - - -/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ -/* */ -/* LGC_Freq2tick function. */ -/* */ -/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ -uint32 LGC_Freq2tick(uint16 FreqHz); /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ @@ -83,36 +42,7 @@ uint32 LGC_Freq2tick(uint16 FreqHz); /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ int32 LGC::InitDevice(void) { - uint32 i = 0; - int returnVal = 0; - int mem_fd = 0; - - /* Initialize just in case we were reloaded and the ctor wasn't called. */ - LGC_SharedMemCmd = 0; - - mem_fd = open(LGC_DEVICE_PATH, O_RDWR | O_SYNC); - LGC_SharedMemCmd = (LGC_SharedMemCmd_t *) mmap(0, 0x1000, - PROT_READ | PROT_WRITE, MAP_SHARED, mem_fd, - LGC_RCOUT_ZYNQ_PWM_BASE); - close(mem_fd); - - if (LGC_SharedMemCmd == 0) - { - returnVal = errno; - goto end_of_function; - } - - // Note: this appears to be required actuators to initialize - for (i = MOTOR_OUTPUTS_SKIPPED; i < (MOTOR_OUTPUTS_SKIPPED + LGC_MAX_GEAR_OUTPUTS); ++i) - { - LGC_SharedMemCmd->PeriodHi[i].Period = - LGC_Freq2tick(LGC_FREQUENCY_PWM); - LGC_SharedMemCmd->PeriodHi[i].Hi = - LGC_Freq2tick(LGC_FREQUENCY_PWM) / 2; - } - -end_of_function: - return returnVal; + return TRUE; } @@ -123,14 +53,7 @@ int32 LGC::InitDevice(void) /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ void LGC::SetMotorOutputs(const uint16 *PWM) { - uint32 i = 0; - /* Convert this to duty_cycle in ns */ - for (i = MOTOR_OUTPUTS_SKIPPED; i < (MOTOR_OUTPUTS_SKIPPED + LGC_MAX_GEAR_OUTPUTS); ++i) - { - LGC_SharedMemCmd->PeriodHi[i].Hi = LGC_TICK_PER_US * PWM[(i - MOTOR_OUTPUTS_SKIPPED)]; - } - return; } @@ -141,7 +64,5 @@ void LGC::SetMotorOutputs(const uint16 *PWM) /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ uint32 LGC_Freq2tick(uint16 FreqHz) { - uint32 duty = LGC_TICK_PER_S / (unsigned long)FreqHz; - - return duty; + return 0; } diff --git a/config/obc/cpd/target/apps/mpu9250/src/CMakeLists.txt b/config/obc/cpd/target/apps/mpu9250/src/CMakeLists.txt deleted file mode 100644 index 48e666f2c..000000000 --- a/config/obc/cpd/target/apps/mpu9250/src/CMakeLists.txt +++ /dev/null @@ -1,5 +0,0 @@ -# Set source for custom code. -set(APP_CUSTOM_SRC - ${CMAKE_CURRENT_SOURCE_DIR}/mpu9250_custom.c - PARENT_SCOPE - ) diff --git a/config/obc/cpd/target/apps/mpu9250/src/mpu9250_custom.c b/config/obc/cpd/target/apps/mpu9250/src/mpu9250_custom.c index 7c14f9736..84d22b3f4 100644 --- a/config/obc/cpd/target/apps/mpu9250/src/mpu9250_custom.c +++ b/config/obc/cpd/target/apps/mpu9250/src/mpu9250_custom.c @@ -38,852 +38,81 @@ ** Includes *************************************************************************/ #include "cfe.h" -#include "mpu9250_spi.h" -#include "mpu9250_events.h" -#include "mpu9250_perfids.h" -#include "px4lib.h" - - -#include -#include -#include -#include -#include -#include -#include -#include -#include - -/************************************************************************ -** Local Defines -*************************************************************************/ - -/************************************************************************ -** Local Structure Declarations -*************************************************************************/ -typedef enum { - -/** \brief 'MPU9250 - ' -** \event 'MPU9250 - ' -** -** \par Type: ERROR -** -** \par Cause: -** -** This event message is issued when a device resource encounters an -** error. -** -*/ - MPU9250_DEVICE_ERR_EID = MPU9250_EVT_CNT, - -/** \brief 'MPU9250 - ' -** \event 'MPU9250 - ' -** -** \par Type: Info -** -** \par Cause: -** -** This event message is issued when a device successfully complete a -** self test. -** -*/ - MPU9250_DEVICE_INF_EID, -/** \brief Number of custom events -** -** \par Limits: -** int32 -*/ - MPU9250_CUSTOM_EVT_CNT -} MPU9250_CustomEventIds_t; - - -/************************************************************************ -** External Global Variables -*************************************************************************/ - -/************************************************************************ -** Global Variables -*************************************************************************/ -MPU9250_AppCustomData_t MPU9250_AppCustomData; -struct spi_ioc_transfer MPU9250_SPI_Xfer[2]; - -/************************************************************************ -** Local Variables -*************************************************************************/ - -/************************************************************************ -** Local Function Definitions -*************************************************************************/ -int32 MPU9250_Ioctl(int fh, int request, void *arg) -{ - int32 returnCode = 0; - uint32 i = 0; - - for (i=0; i < MPU9250_MAX_RETRY_ATTEMPTS; i++) - { - returnCode = ioctl(fh, request, arg); - - if (-1 == returnCode && EINTR == errno) - { - usleep(MPU9250_MAX_RETRY_SLEEP_USEC); - } - else - { - break; - } - } - - return returnCode; -} void MPU9250_Custom_InitData(void) { - /* Set all struct zero values */ - bzero(&MPU9250_AppCustomData, sizeof(MPU9250_AppCustomData)); + } boolean MPU9250_Custom_Init() { - boolean returnBool = TRUE; - int ret = 0; - int i = 0; - int8 mode = MPU9250_SPI_DEVICE_MODE; - int8 bits = MPU9250_SPI_DEVICE_BITS; - uint32 speed = MPU9250_SPI_DEVICE_SPEED; - - MPU9250_AppCustomData.DeviceFd = open(MPU9250_SPI_DEVICE_PATH, O_RDWR); - if (MPU9250_AppCustomData.DeviceFd < 0) - { - CFE_EVS_SendEvent(MPU9250_DEVICE_ERR_EID, CFE_EVS_ERROR, - "MPU9250 Device open errno: %i", errno); - returnBool = FALSE; - goto end_of_function; - } - - ret = MPU9250_Ioctl(MPU9250_AppCustomData.DeviceFd, SPI_IOC_WR_MODE, &mode); - if (-1 == ret) - { - CFE_EVS_SendEvent(MPU9250_DEVICE_ERR_EID, CFE_EVS_ERROR, - "Can't set SPI mode."); - returnBool = FALSE; - goto end_of_function; - } - - ret = MPU9250_Ioctl(MPU9250_AppCustomData.DeviceFd, SPI_IOC_RD_MODE, &mode); - if (-1 == ret) - { - CFE_EVS_SendEvent(MPU9250_DEVICE_ERR_EID, CFE_EVS_ERROR, - "Can't get SPI mode."); - returnBool = FALSE; - goto end_of_function; - } - - ret = MPU9250_Ioctl(MPU9250_AppCustomData.DeviceFd, SPI_IOC_WR_BITS_PER_WORD, &bits); - if (-1 == ret) - { - CFE_EVS_SendEvent(MPU9250_DEVICE_ERR_EID, CFE_EVS_ERROR, - "Can't set bits per word."); - returnBool = FALSE; - goto end_of_function; - } - - ret = MPU9250_Ioctl(MPU9250_AppCustomData.DeviceFd, SPI_IOC_RD_BITS_PER_WORD, &bits); - if (-1 == ret) - { - CFE_EVS_SendEvent(MPU9250_DEVICE_ERR_EID, CFE_EVS_ERROR, - "Can't get bits per word."); - returnBool = FALSE; - goto end_of_function; - } - - ret = MPU9250_Ioctl(MPU9250_AppCustomData.DeviceFd, SPI_IOC_WR_MAX_SPEED_HZ, &speed); - if (-1 == ret) - { - CFE_EVS_SendEvent(MPU9250_DEVICE_ERR_EID, CFE_EVS_ERROR, - "Can't set max speed."); - returnBool = FALSE; - goto end_of_function; - } - - ret = MPU9250_Ioctl(MPU9250_AppCustomData.DeviceFd, SPI_IOC_RD_MAX_SPEED_HZ, &speed); - if (-1 == ret) - { - CFE_EVS_SendEvent(MPU9250_DEVICE_ERR_EID, CFE_EVS_ERROR, - "Can't get max speed."); - returnBool = FALSE; - goto end_of_function; - } - - /* Keep CS activated */ - MPU9250_SPI_Xfer[0].cs_change = 0; - MPU9250_SPI_Xfer[0].delay_usecs = 0; - MPU9250_SPI_Xfer[0].speed_hz = speed; - MPU9250_SPI_Xfer[0].bits_per_word = 8; - - ret = MPU9250_ResetDevice(); - if (-1 == ret) - { - CFE_EVS_SendEvent(MPU9250_DEVICE_ERR_EID, CFE_EVS_ERROR, - "Reset device failed."); - returnBool = FALSE; - goto end_of_function; - } - - /* TODO Add Gyroscope Self-Test */ - /* TODO Add Accelerometer Self-Test */ - - uint8 MPU_Init_Data[MPU_InitRegNum][2] = { - /* Reset Device */ - {0x80, MPU9250_REG_PWR_MGMT_1}, - /* Clock Source */ - {0x01, MPU9250_REG_PWR_MGMT_1}, - /* Enable Acc & Gyro */ - {0x00, MPU9250_REG_PWR_MGMT_2}, - /* Use DLPF set Gyroscope bandwidth 250Hz, temperature bandwidth 4000Hz */ - {MPU9250_DEFAULT_LOWPASS_FILTER, MPU9250_REG_CONFIG}, - /* +-2000dps */ - {0x18, MPU9250_REG_GYRO_CONFIG}, - /* +-4G */ - {0x08, MPU9250_REG_ACCEL_CONFIG}, - /* Set Acc Data Rates, Enable Acc LPF , Bandwidth 184Hz */ - {0x09, MPU9250_REG_ACCEL_CONFIG2}, - /* LATCH_INT_EN INT pin level held unitl interrupt status is - * cleared. IN_ANYRD_2CLEAR interrupt status is cleared if - * any read operation is performed. */ - {0x30, MPU9250_REG_INT_PIN_CFG}, - /* I2C Speed 348 kHz */ - //{0x40, MPUREG_I2C_MST_CTRL}, - /* Enable AUX */ - //{0x20, MPUREG_USER_CTRL}, - /* I2C Master mode */ - {0x20, MPU9250_REG_USER_CTRL}, - /* I2C 400KHz */ - {MPU9250_I2C_MST_P_NSR | MPU9250_I2C_MST_WAIT_FOR_ES | - MPU9250_I2C_MST_CLOCK_400HZ, MPU9250_REG_I2C_MST_CTRL}, - //{0x0D, MPU9250_REG_I2C_MST_CTRL}, - /* Set the I2C slave addres of AK8963 and set for write. */ - {MPU9250_AK8963_I2C_ADDR, MPU9250_REG_I2C_SLV0_ADDR}, - //{0x09, MPUREG_I2C_SLV4_CTRL}, - /* Enable I2C delay */ - //{0x81, MPUREG_I2C_MST_DELAY_CTRL}, - /* I2C slave 0 register address from where to begin data transfer */ - {MPU9250_AK8963_CNTL2, MPU9250_REG_I2C_SLV0_REG}, - /* Reset AK8963 */ - {0x01, MPU9250_REG_I2C_SLV0_DO}, - /* Enable I2C and set 1 byte */ - {0x81, MPU9250_REG_I2C_SLV0_CTRL}, - /* I2C slave 0 register address from where to begin data transfer */ - {MPU9250_AK8963_CNTL1, MPU9250_REG_I2C_SLV0_REG}, - /* Fused ROM read mode */ - //{MPU9250_AK8963_FUSE_MODE | MPU9250_AK8963_16BIT_ADC, MPU9250_REG_I2C_SLV0_DO}, - /* Register value to continuous measurement mode 1 in 16bit */ - //{0x12, MPU9250_REG_I2C_SLV0_DO}, - /* Register value to continuous measurement mode 2 in 16bit */ - {0x16, MPU9250_REG_I2C_SLV0_DO}, - /* Enable I2C and set 1 byte */ - {0x81, MPU9250_REG_I2C_SLV0_CTRL}, - /* Set the I2C slave address of AK8963 and set for read. */ - {MPU9250_AK8963_I2C_ADDR | 0x80, MPU9250_REG_I2C_SLV0_ADDR}, - /* I2C slave 0 register address from where to begin data transfer */ - {MPU9250_AK8963_WIA, MPU9250_REG_I2C_SLV0_REG}, - //{MPU9250_AK8963_ASAX, MPU9250_REG_I2C_SLV0_REG}, - /* Enable I2C and set 1 byte */ - {0x8f, MPU9250_REG_I2C_SLV0_CTRL} - //{0x83, MPU9250_REG_I2C_SLV0_CTRL} - }; - - for(i = 0; i < MPU_InitRegNum; i++) - { - returnBool = MPU9250_WriteReg(MPU_Init_Data[i][1], MPU_Init_Data[i][0]); - if(FALSE == returnBool) - { - goto end_of_function; - } - usleep(100000); - } - - //returnBool = MPU9250_Custom_Read_MagAdj(); - //if(FALSE == returnBool) - //{ - //goto end_of_function; - //} - - //uint8 MPU_Init_Data2[MPU_InitRegNum2][2] = { - ///* Set the I2C slave address of AK8963 and set for write. */ - //{MPU9250_AK8963_I2C_ADDR, MPU9250_REG_I2C_SLV0_ADDR}, - ///* I2C slave 0 register address from where to begin data transfer */ - //{MPU9250_AK8963_CNTL2, MPU9250_REG_I2C_SLV0_REG}, - ///* Reset AK8963 */ - //{0x01, MPU9250_REG_I2C_SLV0_DO}, - ///* Enable I2C and set 1 byte */ - //{0x81, MPU9250_REG_I2C_SLV0_CTRL}, - ///* I2C slave 0 register address from where to begin data transfer */ - //{MPU9250_AK8963_CNTL1, MPU9250_REG_I2C_SLV0_REG}, - ///* Register value to continuous measurement mode 2 in 16bit */ - //{0x16, MPU9250_REG_I2C_SLV0_DO}, - ///* Enable I2C and set 1 byte */ - //{0x81, MPU9250_REG_I2C_SLV0_CTRL}, - ///* Set the I2C slave address of AK8963 and set for read. */ - //{MPU9250_AK8963_I2C_ADDR | 0x80, MPU9250_REG_I2C_SLV0_ADDR}, - ///* I2C slave 0 register address from where to begin data transfer */ - //{MPU9250_AK8963_WIA, MPU9250_REG_I2C_SLV0_REG}, - ///* Enable I2C and set 1 byte, copy the max 15 reg from mag */ - //{0x8f, MPU9250_REG_I2C_SLV0_CTRL} - //}; - - //for(i = 0; i < MPU_InitRegNum2; i++) { - //returnBool = MPU9250_WriteReg(MPU_Init_Data2[i][1], MPU_Init_Data2[i][0]); - //if(FALSE == returnBool) - //{ - //goto end_of_function; - //} - //usleep(100000); - //} - - MPU9250_AppCustomData.Status = MPU9250_CUSTOM_INITIALIZED; - -end_of_function: - return returnBool; + return TRUE; } boolean MPU9250_Custom_Uninit(void) { - boolean returnBool = TRUE; - int returnCode = 0; - - returnCode = close(MPU9250_AppCustomData.DeviceFd); - if (-1 == returnCode) - { - CFE_EVS_SendEvent(MPU9250_DEVICE_ERR_EID, CFE_EVS_ERROR, - "MPU9250 Device close errno: %i", errno); - returnBool = FALSE; - } - else - { - MPU9250_AppCustomData.Status = MPU9250_CUSTOM_UNINITIALIZED; - } - return returnBool; + return TRUE; } int32 MPU9250_ResetDevice(void) { - int32 ret = 0; - boolean returnBool = TRUE; - - returnBool = MPU9250_WriteReg(MPU9250_BIT_H_RESET, MPU9250_REG_PWR_MGMT_1); - if (FALSE == returnBool) - { - CFE_EVS_SendEvent(MPU9250_DEVICE_ERR_EID, CFE_EVS_ERROR, - "MPU9250 ioctl returned %i", errno); - ret = -1; - } - else - { - usleep(100000); - } - return ret; + return TRUE; } boolean MPU9250_WriteReg(uint8 Addr, uint8 Data) { - int ret; - unsigned char buf[32]; - boolean returnBool = TRUE; - - memset(buf, 0, sizeof(buf)); - buf[0] = Addr; - buf[1] = Data; - - MPU9250_SPI_Xfer[0].tx_buf = (unsigned long)buf; - MPU9250_SPI_Xfer[0].rx_buf = (unsigned long)buf; - MPU9250_SPI_Xfer[0].len = 2; - - ret = ioctl(MPU9250_AppCustomData.DeviceFd, SPI_IOC_MESSAGE(1), MPU9250_SPI_Xfer); - if (-1 == ret) - { - CFE_EVS_SendEvent(MPU9250_DEVICE_ERR_EID, CFE_EVS_ERROR, - "MPU9250 ioctl returned %i", errno); - returnBool = FALSE; - } - return returnBool; + return TRUE; } boolean MPU9250_ReadReg(uint8 Addr, uint8 *returnVal) { - int ret = 0; - unsigned char buf[32]; - boolean returnBool = TRUE; - - /* Null pointer check */ - if(0 == returnVal) - { - CFE_EVS_SendEvent(MPU9250_DEVICE_ERR_EID, CFE_EVS_ERROR, - "MPU9250 ReadReg Null Pointer"); - returnBool = FALSE; - goto end_of_function; - } - - memset(buf, 0, sizeof(buf)); - buf[0] = Addr | 0x80; - buf[1] = 0; - - MPU9250_SPI_Xfer[0].tx_buf = (unsigned long)buf; - MPU9250_SPI_Xfer[0].rx_buf = (unsigned long)buf; - MPU9250_SPI_Xfer[0].len = 2; - - ret = MPU9250_Ioctl(MPU9250_AppCustomData.DeviceFd, SPI_IOC_MESSAGE(1), MPU9250_SPI_Xfer); - if (-1 == ret) - { - CFE_EVS_SendEvent(MPU9250_DEVICE_ERR_EID, CFE_EVS_ERROR, - "MPU9250 ioctl returned %i", errno); - } - - *returnVal = (uint8) buf[1]; - -end_of_function: - return returnBool; + return TRUE; } boolean MPU9250_SetAccScale(uint8 Scale, float *AccDivider) { - boolean returnBool = TRUE; - uint8 value = 0; - - /* Null pointer check */ - if(0 == AccDivider) - { - CFE_EVS_SendEvent(MPU9250_DEVICE_ERR_EID, CFE_EVS_ERROR, - "MPU9250 SetAccScale Null Pointer"); - returnBool = FALSE; - goto end_of_function; - } - - switch (Scale) - { - case 2: - *AccDivider = 16384; - value = MPU9250_BITS_FS_2G; - break; - - case 4: - *AccDivider = 8192; - value = MPU9250_BITS_FS_4G; - break; - - case 8: - *AccDivider = 4096; - value = MPU9250_BITS_FS_8G; - break; - - case 16: - *AccDivider = 2048; - value = MPU9250_BITS_FS_16G; - break; - - default: - returnBool = FALSE; - goto end_of_function; - } - - returnBool = MPU9250_WriteReg(MPU9250_REG_ACCEL_CONFIG, value); - if (FALSE == returnBool) - { - goto end_of_function; - } - -end_of_function: - return returnBool; + return TRUE; } boolean MPU9250_SetGyroScale(uint32 Scale, float *GyroDivider) { - boolean returnBool = TRUE; - uint8 value = 0; - - /* Null pointer check */ - if(0 == GyroDivider) - { - CFE_EVS_SendEvent(MPU9250_DEVICE_ERR_EID, CFE_EVS_ERROR, - "MPU9250 SetGyroScale Null Pointer"); - returnBool = FALSE; - goto end_of_function; - } - - switch (Scale) - { - case 250: - *GyroDivider = 131; - value = MPU9250_BITS_FS_250DPS; - break; - - case 500: - *GyroDivider = 65.5; - value = MPU9250_BITS_FS_500DPS; - break; - - case 1000: - *GyroDivider = 32.8; - value = MPU9250_BITS_FS_1000DPS; - break; - - case 2000: - *GyroDivider = 16.4; - value = MPU9250_BITS_FS_2000DPS; - break; - - default: - returnBool = FALSE; - goto end_of_function; - } - - returnBool = MPU9250_WriteReg(MPU9250_REG_GYRO_CONFIG, value); - if (FALSE == returnBool) - { - goto end_of_function; - } - -end_of_function: - return returnBool; + return TRUE; } boolean MPU9250_Read_Gyro(int16 *X, int16 *Y, int16 *Z) { - uint8 hValue = 0; - uint8 lValue = 0; - boolean returnBool = TRUE; - - /* Null pointer check */ - if(0 == X || 0 == Y || 0 == Z) - { - CFE_EVS_SendEvent(MPU9250_DEVICE_ERR_EID, CFE_EVS_ERROR, - "MPU9250 Read_Gyro Null Pointer"); - returnBool = FALSE; - goto end_of_function; - } - - returnBool = MPU9250_ReadReg(MPU9250_REG_GYRO_XOUT_H, &hValue); - if(FALSE == returnBool) - { - returnBool = FALSE; - goto end_of_function; - } - returnBool = MPU9250_ReadReg(MPU9250_REG_GYRO_XOUT_L, &lValue); - if(FALSE == returnBool) - { - returnBool = FALSE; - goto end_of_function; - } - - *X = (hValue << 8) | lValue; - - returnBool = MPU9250_ReadReg(MPU9250_REG_GYRO_YOUT_H, &hValue); - if(FALSE == returnBool) - { - returnBool = FALSE; - goto end_of_function; - } - returnBool = MPU9250_ReadReg(MPU9250_REG_GYRO_YOUT_L, &lValue); - if(FALSE == returnBool) - { - returnBool = FALSE; - goto end_of_function; - } - - *Y = (hValue << 8) | lValue; - - returnBool = MPU9250_ReadReg(MPU9250_REG_GYRO_ZOUT_H, &hValue); - if(FALSE == returnBool) - { - returnBool = FALSE; - goto end_of_function; - } - returnBool = MPU9250_ReadReg(MPU9250_REG_GYRO_ZOUT_L, &lValue); - if(FALSE == returnBool) - { - returnBool = FALSE; - goto end_of_function; - } - - *Z = (hValue << 8) | lValue; - -end_of_function: - if (FALSE == returnBool) - { - CFE_EVS_SendEvent(MPU9250_DEVICE_ERR_EID, CFE_EVS_ERROR, - "MPU9250 read error in Read_Gyro"); - } - return returnBool; + return TRUE; } boolean MPU9250_Read_Accel(int16 *X, int16 *Y, int16 *Z) { - uint8 hValue = 0; - uint8 lValue = 0; - boolean returnBool = TRUE; - - /* Null pointer check */ - if(0 == X || 0 == Y || 0 == Z) - { - CFE_EVS_SendEvent(MPU9250_DEVICE_ERR_EID, CFE_EVS_ERROR, - "MPU9250 Read_Accel Null Pointer"); - returnBool = FALSE; - goto end_of_function; - } - - returnBool = MPU9250_ReadReg(MPU9250_REG_ACCEL_XOUT_H, &hValue); - if(FALSE == returnBool) - { - returnBool = FALSE; - goto end_of_function; - } - returnBool = MPU9250_ReadReg(MPU9250_REG_ACCEL_XOUT_L, &lValue); - if(FALSE == returnBool) - { - returnBool = FALSE; - goto end_of_function; - } - - *X = (hValue << 8) | lValue; - - returnBool = MPU9250_ReadReg(MPU9250_REG_ACCEL_YOUT_H, &hValue); - if(FALSE == returnBool) - { - returnBool = FALSE; - goto end_of_function; - } - returnBool = MPU9250_ReadReg(MPU9250_REG_ACCEL_YOUT_L, &lValue); - if(FALSE == returnBool) - { - returnBool = FALSE; - goto end_of_function; - } - - *Y = (hValue << 8) | lValue; - - returnBool = MPU9250_ReadReg(MPU9250_REG_ACCEL_ZOUT_H, &hValue); - if(FALSE == returnBool) - { - returnBool = FALSE; - goto end_of_function; - } - returnBool = MPU9250_ReadReg(MPU9250_REG_ACCEL_ZOUT_L, &lValue); - if(FALSE == returnBool) - { - returnBool = FALSE; - goto end_of_function; - } - - *Z = (hValue << 8) | lValue; - -end_of_function: - if (FALSE == returnBool) - { - CFE_EVS_SendEvent(MPU9250_DEVICE_ERR_EID, CFE_EVS_ERROR, - "MPU9250 read error in Read_Accel"); - } - return returnBool; + return TRUE; }; -//boolean MPU9250_Read_Mag(int16 *X, int16 *Y, int16 *Z) -//{ - //uint8 hValue = 0; - //uint8 lValue = 0; - //uint8 st2 = 0; - //boolean returnBool = TRUE; - - ///* Null pointer check */ - //if(0 == X || 0 == Y || 0 == Z) - //{ - //CFE_EVS_SendEvent(MPU9250_DEVICE_ERR_EID, CFE_EVS_ERROR, - //"MPU9250 Read_Mag Null Pointer"); - //returnBool = FALSE; - //goto end_of_function; - //} - - //returnBool = MPU9250_ReadReg(MPU9250_REG_EXT_SENS_DATA_00 + MPU9250_AK8963_HXH, &hValue); - //if(FALSE == returnBool) - //{ - //returnBool = FALSE; - //goto end_of_function; - //} - //returnBool = MPU9250_ReadReg(MPU9250_REG_EXT_SENS_DATA_00 + MPU9250_AK8963_HXL, &lValue); - //if(FALSE == returnBool) - //{ - //returnBool = FALSE; - //goto end_of_function; - //} - - //*X = (hValue << 8) | lValue; - - //returnBool = MPU9250_ReadReg(MPU9250_REG_EXT_SENS_DATA_00 + MPU9250_AK8963_HYH, &hValue); - //if(FALSE == returnBool) - //{ - //returnBool = FALSE; - //goto end_of_function; - //} - //returnBool = MPU9250_ReadReg(MPU9250_REG_EXT_SENS_DATA_00 + MPU9250_AK8963_HYL, &lValue); - //if(FALSE == returnBool) - //{ - //returnBool = FALSE; - //goto end_of_function; - //} - - //*Y = (hValue << 8) | lValue; - - //returnBool = MPU9250_ReadReg(MPU9250_REG_EXT_SENS_DATA_00 + MPU9250_AK8963_HZH, &hValue); - //if(FALSE == returnBool) - //{ - //returnBool = FALSE; - //goto end_of_function; - //} - //returnBool = MPU9250_ReadReg(MPU9250_REG_EXT_SENS_DATA_00 + MPU9250_AK8963_HZL, &lValue); - //if(FALSE == returnBool) - //{ - //returnBool = FALSE; - //goto end_of_function; - //} - //*Z = (hValue << 8) | lValue; - - //returnBool = MPU9250_ReadReg(MPU9250_REG_EXT_SENS_DATA_00 + MPU9250_AK8963_ST2, &st2); - //if(st2 & MPU9250_ST2_HOFL_MASK) - //{ - //CFE_EVS_SendEvent(MPU9250_DEVICE_ERR_EID, CFE_EVS_ERROR, - //"Mag sensor data overflow"); - //returnBool = FALSE; - //goto end_of_function; - //} - -//end_of_function: - //if (FALSE == returnBool) - //{ - //CFE_EVS_SendEvent(MPU9250_DEVICE_ERR_EID, CFE_EVS_ERROR, - //"MPU9250 read error in Read_Mag"); - //} - //return returnBool; -//} - boolean MPU9250_Read_Temp(uint16 *Temp) { - uint8 hValue = 0; - uint8 lValue = 0; - boolean returnBool = TRUE; - - /* Null pointer check */ - if(0 == Temp) - { - CFE_EVS_SendEvent(MPU9250_DEVICE_ERR_EID, CFE_EVS_ERROR, - "MPU9250 Read_Temp Null Pointer"); - returnBool = FALSE; - goto end_of_function; - } - - returnBool = MPU9250_ReadReg(MPU9250_REG_TEMP_OUT_H, &hValue); - if(FALSE == returnBool) - { - returnBool = FALSE; - goto end_of_function; - } - returnBool = MPU9250_ReadReg(MPU9250_REG_TEMP_OUT_L, &lValue); - if(FALSE == returnBool) - { - returnBool = FALSE; - goto end_of_function; - } - *Temp = (hValue << 8) | lValue; - -end_of_function: - if (FALSE == returnBool) - { - CFE_EVS_SendEvent(MPU9250_DEVICE_ERR_EID, CFE_EVS_ERROR, - "MPU9250 read error in Read_Temp"); - } - return returnBool; + return TRUE; } boolean MPU9250_Read_WhoAmI(uint8 *Value) { - boolean returnBool = TRUE; - /* Null pointer check */ - if(0 == Value) - { - CFE_EVS_SendEvent(MPU9250_DEVICE_ERR_EID, CFE_EVS_ERROR, - "MPU9250 Read_WhoAmI Null Pointer"); - returnBool = FALSE; - goto end_of_function; - } - - returnBool = MPU9250_ReadReg(MPU9250_REG_WHOAMI, Value); - -end_of_function: - if (FALSE == returnBool) - { - CFE_EVS_SendEvent(MPU9250_DEVICE_ERR_EID, CFE_EVS_ERROR, - "MPU9250 read error in WhoAmI"); - } - return returnBool; + return TRUE; } -//boolean MPU9250_Read_MagDeviceID(uint8 *Value) -//{ - //boolean returnBool = TRUE; - ///* Null pointer check */ - //if(0 == Value) - //{ - //CFE_EVS_SendEvent(MPU9250_DEVICE_ERR_EID, CFE_EVS_ERROR, - //"MPU9250 Read_MagDeviceID Null Pointer"); - //returnBool = FALSE; - //goto end_of_function; - //} - - //returnBool = MPU9250_ReadReg(MPU9250_REG_EXT_SENS_DATA_00 + MPU9250_AK8963_WIA, Value); - -//end_of_function: - //if (FALSE == returnBool) - //{ - //CFE_EVS_SendEvent(MPU9250_DEVICE_ERR_EID, CFE_EVS_ERROR, - //"MPU9250 read error in MagDeviceID"); - //} - //return returnBool; -//} - - -//boolean MPU9250_Read_MagInfo(uint8 *Value) -//{ - //boolean returnBool = TRUE; - ///* Null pointer check */ - //if(0 == Value) - //{ - //CFE_EVS_SendEvent(MPU9250_DEVICE_ERR_EID, CFE_EVS_ERROR, - //"MPU9250 Read_MagInfo Null Pointer"); - //returnBool = FALSE; - //goto end_of_function; - //} - //*Value = MPU9250_ReadReg(MPU9250_REG_EXT_SENS_DATA_00 + MPU9250_AK8963_INFO, Value); - -//end_of_function: - //if (FALSE == returnBool) - //{ - //CFE_EVS_SendEvent(MPU9250_DEVICE_ERR_EID, CFE_EVS_ERROR, - //"MPU9250 read error in MagInfo"); - //} - //return returnBool; -//} - - boolean MPU9250_Perform_AccelSelfTest(void) { return TRUE; @@ -896,239 +125,32 @@ boolean MPU9250_Perform_GyroSelfTest(void) } -//boolean MPU9250_Start_MagSelfTest(void) -//{ - //return TRUE; -//} - - -//boolean MPU9250_Stop_MagSelfTest(void) -//{ - //return TRUE; -//} - - /* TODO */ boolean MPU9250_Read_ImuStatus(boolean *WOM, boolean *FifoOvflw, boolean *Fsync, boolean *DataReady) { - uint8 value = 0; - boolean returnBool = TRUE; - - /* Null pointer check */ - if(0 == WOM || 0 == FifoOvflw || 0 == Fsync|| 0 == DataReady) - { - CFE_EVS_SendEvent(MPU9250_DEVICE_ERR_EID, CFE_EVS_ERROR, - "MPU9250 Read_ImuStatus Null Pointer"); - returnBool = FALSE; - goto end_of_function; - } - - returnBool = MPU9250_ReadReg(MPU9250_REG_INT_STATUS, &value); - if(FALSE == returnBool) - { - CFE_EVS_SendEvent(MPU9250_DEVICE_ERR_EID, CFE_EVS_ERROR, - "MPU9250 read error in ImuStatus"); - returnBool = FALSE; - goto end_of_function; - } - - *WOM = value & MPU9250_ST_INT_WOM_MASK; - *FifoOvflw = value & MPU9250_ST_INT_FIFO_OFL_MASK; - *Fsync = value & MPU9250_ST_INT_FSYNC_MASK; - *DataReady = value & MPU9250_ST_INT_RDY_MASK; - -end_of_function: - return returnBool; + return TRUE; } -//boolean MPU9250_Read_MagStatus(boolean *Overrun, boolean *DataReady, boolean *Overflow, boolean *Output16Bit) -//{ - //uint8 value = 0; - //boolean returnBool = TRUE; - - ///* Null pointer check */ - //if(0 == Overrun || 0 == DataReady || 0 == Overflow || 0 == Output16Bit) - //{ - //CFE_EVS_SendEvent(MPU9250_DEVICE_ERR_EID, CFE_EVS_ERROR, - //"MPU9250 Read_MagStatus Null Pointer"); - //returnBool = FALSE; - //goto end_of_function; - //} - - //returnBool = MPU9250_ReadReg(MPU9250_REG_EXT_SENS_DATA_00 + MPU9250_AK8963_ST1, &value); - //if(FALSE == returnBool) - //{ - //returnBool = FALSE; - //goto end_of_function; - //} - //*Overrun = value & MPU9250_ST1_DOR_MASK; - //*DataReady = value & MPU9250_ST1_DRDY_MASK; - - //returnBool = MPU9250_ReadReg(MPU9250_REG_EXT_SENS_DATA_00 + MPU9250_AK8963_ST2, &value); - //if(FALSE == returnBool) - //{ - //returnBool = FALSE; - //goto end_of_function; - //} - //*Overflow = value & MPU9250_ST2_HOFL_MASK; - //*Output16Bit = value & MPU9250_ST2_BITM_MASK; - -//end_of_function: - //if (FALSE == returnBool) - //{ - //CFE_EVS_SendEvent(MPU9250_DEVICE_ERR_EID, CFE_EVS_ERROR, - //"MPU9250 read error in MagStatus"); - //} - //return returnBool; -//} - - -//boolean MPU9250_Custom_Read_MagAdj(void) -//{ - //boolean returnBool = TRUE; - //uint8 validateX = 0; - //uint8 validateY = 0; - //uint8 validateZ = 0; - - //returnBool = MPU9250_ReadReg(MPU9250_REG_EXT_SENS_DATA_00, &validateX); - //if(FALSE == returnBool) - //{ - //returnBool = FALSE; - //goto end_of_function; - //} - ///* TODO validate X*/ - //MPU9250_AppCustomData.MagAdjX = validateX; - //returnBool = MPU9250_ReadReg(MPU9250_REG_EXT_SENS_DATA_01, &validateY); - //if(FALSE == returnBool) - //{ - //returnBool = FALSE; - //goto end_of_function; - //} - ///* TODO validate Y*/ - //MPU9250_AppCustomData.MagAdjY = validateY; - //returnBool = MPU9250_ReadReg(MPU9250_REG_EXT_SENS_DATA_02, &validateZ); - //if(FALSE == returnBool) - //{ - //returnBool = FALSE; - //goto end_of_function; - //} - ///* TODO validate Z*/ - //MPU9250_AppCustomData.MagAdjZ = validateZ; - -//end_of_function: - //if (FALSE == returnBool) - //{ - //CFE_EVS_SendEvent(MPU9250_DEVICE_ERR_EID, CFE_EVS_ERROR, - //"MPU9250 read or write error in Custom MagAdj"); - //} - //return returnBool; -//} - - -//boolean MPU9250_Read_MagAdj(uint8 *X, uint8 *Y, uint8 *Z) -//{ - //boolean returnBool = TRUE; - - ///* Null pointer check */ - //if(0 == X || 0 == Y || 0 == Z) - //{ - //CFE_EVS_SendEvent(MPU9250_DEVICE_ERR_EID, CFE_EVS_ERROR, - //"MPU9250 Read_MagAdj Null Pointer"); - //returnBool = FALSE; - //goto end_of_function; - //} - - //*X = MPU9250_AppCustomData.MagAdjX; - //*Y = MPU9250_AppCustomData.MagAdjY; - //*Z = MPU9250_AppCustomData.MagAdjZ; - -//end_of_function: - - //return returnBool; -//} - - boolean MPU9250_Apply_Platform_Rotation(float *X, float *Y, float *Z) { - boolean returnBool = TRUE; - float temp; - - /* Null pointer check */ - if(0 == X || 0 == Y || 0 == Z) - { - CFE_EVS_SendEvent(MPU9250_DEVICE_ERR_EID, CFE_EVS_ERROR, - "MPU9250 Apply_Platform_Rotation Null Pointer"); - returnBool = FALSE; - goto end_of_function; - } - /* ROTATION_ROLL_180_YAW_90 */ - temp = *X; - *X = *Y; - *Y = temp; - *Z = -*Z; - -end_of_function: - - return returnBool; + return TRUE; } boolean MPU9250_Custom_Max_Events_Not_Reached(int32 ind) { - if ((ind < CFE_EVS_MAX_EVENT_FILTERS) && (ind > 0)) - { - return TRUE; - } - else - { - return FALSE; - } + return TRUE; } int32 MPU9250_Custom_Init_EventFilters(int32 ind, CFE_EVS_BinFilter_t *EventTbl) { - int32 customEventCount = ind; - - /* Null check */ - if(0 == EventTbl) - { - customEventCount = -1; - goto end_of_function; - } - - if(TRUE == MPU9250_Custom_Max_Events_Not_Reached(customEventCount)) - { - EventTbl[ customEventCount].EventID = MPU9250_DEVICE_ERR_EID; - EventTbl[customEventCount++].Mask = CFE_EVS_FIRST_16_STOP; - } - else - { - customEventCount = -1; - goto end_of_function; - } - -end_of_function: - - return customEventCount; + return 0; } void MPU9250_Get_Rotation(uint8 *Rotation) { - - /* Null pointer check */ - if(0 == Rotation) - { - CFE_EVS_SendEvent(MPU9250_DEVICE_ERR_EID, CFE_EVS_ERROR, - "MPU9250 Get_Rotation Null Pointer"); - goto end_of_function; - } - - /* TODO move to a table */ - *Rotation = ROTATION_ROLL_180_YAW_90; -end_of_function: -; } diff --git a/config/obc/cpd/target/apps/mpu9250/src/mpu9250_spi.h b/config/obc/cpd/target/apps/mpu9250/src/mpu9250_spi.h deleted file mode 100644 index 0f4feda85..000000000 --- a/config/obc/cpd/target/apps/mpu9250/src/mpu9250_spi.h +++ /dev/null @@ -1,421 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ - -#ifndef MPU9250_SPI_H -#define MPU9250_SPI_H -/************************************************************************ -** Includes -*************************************************************************/ -#include "mpu9250_custom.h" -#include "cfe.h" - -/************************************************************************ -** Local Defines -*************************************************************************/ -/* MPU 9250 register map for Gyroscope and Accelerometer */ -/* Self test output generated during manufacturing tests. */ -/** \brief Factory self test output for gyro X-axis.*/ -#define MPU9250_REG_GYRO_X_TEST (0x00) -/** \brief Factory self test output for gyro Y-axis.*/ -#define MPU9250_REG_GYRO_Y_TEST (0x01) -/** \brief Factory self test output for gyro Z-axis.*/ -#define MPU9250_REG_GYRO_Z_TEST (0x02) -/** \brief Factory self test output for accelerometer X-axis.*/ -#define MPU9250_REG_ACCEL_X_TEST (0x0D) -/** \brief Factory self test output for accelerometer Y-axis.*/ -#define MPU9250_REG_ACCEL_Y_TEST (0x0E) -/** \brief Factory self test output for accelerometer Z-axis.*/ -#define MPU9250_REG_ACCEL_Z_TEST (0x0F) -/* Registers used to remove DC bias from the gyro sensor data output for - * X, Y, and Z axes. Values are subtracted from the gyro sensor values - * before going into the sensor registers. */ -/** \brief High byte [15:8], offset X-axis. */ -#define MPU9250_REG_GYRO_X_OFF_H (0x13) -/** \brief Low byte [7:0], offset X-axis. */ -#define MPU9250_REG_GYRO_X_OFF_L (0x14) -/** \brief High byte [15:8], offset Y-axis. */ -#define MPU9250_REG_GYRO_Y_OFF_H (0x15) -/** \brief Low byte [7:0], offset Y-axis. */ -#define MPU9250_REG_GYRO_Y_OFF_L (0x16) -/** \brief High byte [15:8], offset Z-axis. */ -#define MPU9250_REG_GYRO_Z_OFF_H (0x17) -/** \brief Low byte [7:0], offset Z-axis. */ -#define MPU9250_REG_GYRO_Z_OFF_L (0x18) -/* Divides the internal sample rate to generate the sample rate that - * controls sensor data output rate. Only effective when Fchoice = 2'b11 - * such that the average filter's output is selected. */ -/** \brief Sample rate divisor. */ -#define MPU9250_REG_SMPLRT_DIV (0x19) -/** \brief Configuration. */ -#define MPU9250_REG_CONFIG (0x1A) -/** \brief Gyroscope configuration. */ -#define MPU9250_REG_GYRO_CONFIG (0x1B) -/** \brief Accelerometer configuration 1. */ -#define MPU9250_REG_ACCEL_CONFIG (0x1C) -/** \brief Accelerometer configuration 2. */ -#define MPU9250_REG_ACCEL_CONFIG2 (0x1D) -/** \brief Low Power Accelerometer Output Data Rate (ODR) Control. */ -#define MPU9250_REG_LPACCEL_ODR (0x1E) -/** \brief Wake-on Motion Threshold. */ -#define MPU9250_REG_WOM_THRESH (0x1F) -/** \brief FIFO Enable. */ -#define MPU9250_REG_FIFO_EN (0x23) -/** \brief I2C Master Control. */ -#define MPU9250_REG_I2C_MST_CTRL (0x24) -/** \brief I2C Slave 0 Address. */ -#define MPU9250_REG_I2C_SLV0_ADDR (0x25) -/** \brief I2C Slave 0 Register. */ -#define MPU9250_REG_I2C_SLV0_REG (0x26) -/** \brief I2C Slave 0 Control. */ -#define MPU9250_REG_I2C_SLV0_CTRL (0x27) -/** \brief I2C Slave 1 Address. */ -#define MPU9250_REG_I2C_SLV1_ADDR (0x28) -/** \brief I2C Slave 1 Registers. */ -#define MPU9250_REG_I2C_SLV1_REG (0x29) -/** \brief I2C Slave 1 Control. */ -#define MPU9250_REG_I2C_SLV1_CTRL (0x2A) -/** \brief I2C Slave 2 Address. */ -#define MPU9250_REG_I2C_SLV2_ADDR (0x2B) -/** \brief I2C Slave 2 Registers. */ -#define MPU9250_REG_I2C_SLV2_REG (0x2C) -/** \brief I2C Slave 2 Control. */ -#define MPU9250_REG_I2C_SLV2_CTRL (0x2D) -/** \brief I2C Slave 3 Address. */ -#define MPU9250_REG_I2C_SLV3_ADDR (0x2E) -/** \brief I2C Slave 3 Registers. */ -#define MPU9250_REG_I2C_SLV3_REG (0x2F) -/** \brief I2C Slave 3 Control. */ -#define MPU9250_REG_I2C_SLV3_CTRL (0x30) -/** \brief I2C Slave 4 Address. */ -#define MPU9250_REG_I2C_SLV4_ADDR (0x31) -/** \brief I2C Slave 4 Registers. */ -#define MPU9250_REG_I2C_SLV4_REG (0x32) -/** \brief I2C Data out, Data to be written to I2C Slave 4. */ -#define MPU9250_REG_I2C_SLV4_DO (0x33) -/** \brief I2C Slave 4 Control. */ -#define MPU9250_REG_I2C_SLV4_CTRL (0x34) -/** \brief I2C Data in, Data to be read from I2C Slave 4. */ -#define MPU9250_REG_I2C_SLV4_DI (0x35) -/** \brief I2C Master Status. */ -#define MPU9250_REG_I2C_MST_STATUS (0x36) -/** \brief Interrupt Pin / Bypass Enable Configuration. */ -#define MPU9250_REG_INT_PIN_CFG (0x37) -/** \brief Interrupt Enable. */ -#define MPU9250_REG_INT_ENABLE (0x38) -/** \brief Interrupt Status. */ -#define MPU9250_REG_INT_STATUS (0x3A) -/** \brief High byte accelerometer measurement X-axis. */ -#define MPU9250_REG_ACCEL_XOUT_H (0x3B) -/** \brief Low byte accelerometer measurement X-axis. */ -#define MPU9250_REG_ACCEL_XOUT_L (0x3C) -/** \brief High byte accelerometer measurement Y-axis. */ -#define MPU9250_REG_ACCEL_YOUT_H (0x3D) -/** \brief Low byte accelerometer measurement Y-axis. */ -#define MPU9250_REG_ACCEL_YOUT_L (0x3E) -/** \brief High byte accelerometer measurement Z-axis. */ -#define MPU9250_REG_ACCEL_ZOUT_H (0x3F) -/** \brief Low byte accelerometer measurement Z-axis. */ -#define MPU9250_REG_ACCEL_ZOUT_L (0x40) -/** \brief High byte temperature measurement. */ -#define MPU9250_REG_TEMP_OUT_H (0x41) -/** \brief Low byte temperature measurement. */ -#define MPU9250_REG_TEMP_OUT_L (0x42) -/** \brief High byte gyroscope measurement X-axis. */ -#define MPU9250_REG_GYRO_XOUT_H (0x43) -/** \brief Low byte gyroscope measurement X-axis. */ -#define MPU9250_REG_GYRO_XOUT_L (0x44) -/** \brief High byte gyroscope measurement Y-axis. */ -#define MPU9250_REG_GYRO_YOUT_H (0x45) -/** \brief Low byte gyroscope measurement Y-axis. */ -#define MPU9250_REG_GYRO_YOUT_L (0x46) -/** \brief High byte gyroscope measurement Z-axis. */ -#define MPU9250_REG_GYRO_ZOUT_H (0x47) -/** \brief Low byte gyroscope measurement Z-axis. */ -#define MPU9250_REG_GYRO_ZOUT_L (0x48) -/** \brief External sensor data 0 */ -#define MPU9250_REG_EXT_SENS_DATA_00 (0x49) -/** \brief External sensor data 1 */ -#define MPU9250_REG_EXT_SENS_DATA_01 (0x4A) -/** \brief External sensor data 2 */ -#define MPU9250_REG_EXT_SENS_DATA_02 (0x4B) -/** \brief I2C Data out, Data to be written to I2C Slave 0. */ -#define MPU9250_REG_I2C_SLV0_DO (0x63) -/** \brief I2C Data out, Data to be written to I2C Slave 1. */ -#define MPU9250_REG_I2C_SLV1_DO (0x64) -/** \brief I2C Data out, Data to be written to I2C Slave 2. */ -#define MPU9250_REG_I2C_SLV2_DO (0x65) -/** \brief I2C Data out, Data to be written to I2C Slave 3. */ -#define MPU9250_REG_I2C_SLV3_DO (0x66) -/** \brief I2C Master Delay Control. */ -#define MPU9250_REG_I2C_MST_DELAY_CTRL (0x67) -/** \brief Digital signal path reset. */ -#define MPU9250_REG_SIGNAL_PATH_RESET (0x68) -/** \brief Accelerometer interrupt control. */ -#define MPU9250_REG_MOT_DETECT_CTRL (0x69) -/** \brief User control. */ -#define MPU9250_REG_USER_CTRL (0x6A) -/** \brief Power management 1. */ -#define MPU9250_REG_PWR_MGMT_1 (0x6B) -/** \brief Power management 2. */ -#define MPU9250_REG_PWR_MGMT_2 (0x6C) -/** \brief High bits, number of written bytes in FIFO. */ -#define MPU9250_REG_FIFO_COUNTH (0x72) -/** \brief Low bits, number of written bytes in FIFO. */ -#define MPU9250_REG_FIFO_COUNTL (0x73) -/** \brief FIFO read/write command. */ -#define MPU9250_REG_FIFO_R_W (0x74) -/** \brief Indicate to user which device is being accessed. */ -#define MPU9250_REG_WHOAMI (0x75) - -/* Configuration bits mpu9250 */ -/** \brief Power Management 1 sleep bit. */ -#define MPU9250_BIT_SLEEP (0x40) -/** \brief Power Management 1 hardware reset bit. */ -#define MPU9250_BIT_H_RESET (0x80) -/** \brief Power Management 1 clock select bit. */ -#define MPU9250_BITS_CLKSEL (0x07) - -#define MPU9250_MPU_CLK_SEL_PLLGYROX (0x01) -#define MPU9250_MPU_CLK_SEL_PLLGYROZ (0x03) -#define MPU9250_MPU_EXT_SYNC_GYROX (0x02) -/** \brief Gyro Full Scale Select bit 250 DPS. */ -#define MPU9250_BITS_FS_250DPS (0x00) -/** \brief Gyro Full Scale Select bit 500 DPS. */ -#define MPU9250_BITS_FS_500DPS (0x08) -/** \brief Gyro Full Scale Select bit 1000 DPS. */ -#define MPU9250_BITS_FS_1000DPS (0x10) -/** \brief Gyro Full Scale Select bit 2000 DPS. */ -#define MPU9250_BITS_FS_2000DPS (0x18) -/** \brief Accel Full Scale Select bit 2G. */ -#define MPU9250_BITS_FS_2G (0x00) -/** \brief Accel Full Scale Select bit 4G. */ -#define MPU9250_BITS_FS_4G (0x08) -/** \brief Accel Full Scale Select bit 8G. */ -#define MPU9250_BITS_FS_8G (0x10) -/** \brief Accel Full Scale Select bit 16G. */ -#define MPU9250_BITS_FS_16G (0x18) -/** \brief Digital Low Pass Filter Configuration bit 250Hz. */ -#define MPU9250_BITS_FS_MASK (0x18) -#define MPU9250_BITS_DLPF_CFG_250HZ (0x00) -/** \brief Digital Low Pass Filter Configuration bit 184Hz. */ -#define MPU9250_BITS_DLPF_CFG_184HZ (0x01) -/** \brief Digital Low Pass Filter Configuration bit 92Hz. */ -#define MPU9250_BITS_DLPF_CFG_92HZ (0x02) -/** \brief Digital Low Pass Filter Configuration bit 41Hz. */ -#define MPU9250_BITS_DLPF_CFG_41HZ (0x03) -/** \brief Digital Low Pass Filter Configuration bit 20Hz. */ -#define MPU9250_BITS_DLPF_CFG_20HZ (0x04) -/** \brief Digital Low Pass Filter Configuration bit 10Hz. */ -#define MPU9250_BITS_DLPF_CFG_10HZ (0x05) -/** \brief Digital Low Pass Filter Configuration bit 5Hz. */ -#define MPU9250_BITS_DLPF_CFG_5HZ (0x06) -/** \brief Digital Low Pass Filter Configuration bit 3600Hz. */ -#define MPU9250_BITS_DLPF_CFG_3600HZ (0x07) -#define MPU9250_BITS_DLPF_CFG_MASK (0x07) -/** \brief Interrupt status cleared configuration bit. */ -#define MPU9250_BIT_INT_ANYRD_2CLEAR (0x10) -/** \brief Enable raw sensor data ready interrupt to pin bit. */ -#define MPU9250_BIT_RAW_RDY_EN (0x01) -/** \brief Reset I2C slave and set interface to SPI mode only. */ -#define MPU9250_BIT_I2C_IF_DIS (0x10) - -#define MPU9250_READ_FLAG (0x80) -#define MPU9250_BIT_RAW_RDY_EN (0x01) -#define MPU9250_BIT_INT_ANYRD_2CLEAR (0x10) -/** \brief The default value of the MPU9250 device ID. */ -#define MPU9250_WHOAMI_9250 (0x71) -/** \brief The I2C address of the Magnetometer. */ -#define MPU9250_AK8963_I2C_ADDR (0x0c) -/** \brief The default value of the AK8963 device ID. */ -#define MPU9250_AK8963_Device_ID (0x48) - -/* AK8963 Register map for the Magnetometer */ -/* Read-only registers */ -/** \brief Device ID. */ -#define MPU9250_AK8963_WIA (0x00) -/** \brief Device information. */ -#define MPU9250_AK8963_INFO (0x01) -/** \brief Status 1. */ -#define MPU9250_AK8963_ST1 (0x02) -/** \brief Measurement data X-axis lower 8-bits */ -#define MPU9250_AK8963_HXL (0x03) -/** \brief Measurement data X-axis upper 8-bits */ -#define MPU9250_AK8963_HXH (0x04) -/** \brief Measurement data Y-axis lower 8-bits */ -#define MPU9250_AK8963_HYL (0x05) -/** \brief Measurement data Y-axis upper 8-bits */ -#define MPU9250_AK8963_HYH (0x06) -/** \brief Measurement data Z-axis lower 8-bits */ -#define MPU9250_AK8963_HZL (0x07) -/** \brief Measurement data Z-axis upper 8-bits */ -#define MPU9250_AK8963_HZH (0x08) -/** \brief Status 2. */ -#define MPU9250_AK8963_ST2 (0x09) -/* Write/Read registers */ -/** \brief Control 1. */ -#define MPU9250_AK8963_CNTL1 (0x0A) -/** \brief Control 2. */ -#define MPU9250_AK8963_CNTL2 (0x0B) -/** \brief Self-test control. */ -#define MPU9250_AK8963_ASTC (0x0C) -//#define MPU9250_AK8963_TS1 (0x0D) -//#define MPU9250_AK8963_TS2 (0x0E) -/** \brief I2C disable. */ -#define MPU9250_AK8963_I2CDIS (0x0F) -/* Read-only registers (ROM) */ -/** \brief Sensitivity adjustment value X-axis. */ -#define MPU9250_AK8963_ASAX (0x10) -/** \brief Sensitivity adjustment value Y-axis. */ -#define MPU9250_AK8963_ASAY (0x11) -/** \brief Sensitivity adjustment value Z-axis. */ -#define MPU9250_AK8963_ASAZ (0x12) - -/* Masks Mag */ -/** \brief Data ready. */ -#define MPU9250_ST1_DRDY_MASK (0x01) -/** \brief Data overrun. */ -#define MPU9250_ST1_DOR_MASK (0x02) -/** \brief Output bit setting (mirror). */ -#define MPU9250_ST2_BITM_MASK (0x10) -/** \brief Magnetic sensor overflow. */ -#define MPU9250_ST2_HOFL_MASK (0x08) -/** \brief AK8963 fuse ROM access mode. */ -#define MPU9250_AK8963_FUSE_MODE (0x0F) -/** \brief AK8963 continues measurement mode 1 */ -#define MPU9250_AK8963_MEA1_MODE (0x02) -/** \brief AK8963 output bit setting. */ -#define MPU9250_AK8963_16BIT_ADC (0x10) - -/* Masks IMU */ -/** \brief Data ready. */ -#define MPU9250_ST_INT_RDY_MASK (0x01) -/** \brief Fsync interrupt occurred. */ -#define MPU9250_ST_INT_FSYNC_MASK (0x04) -/** \brief Fifo overflow interrupt occurred. */ -#define MPU9250_ST_INT_FIFO_OFL_MASK (0x05) -/** \brief Wake on motion interrupt occurred. */ -#define MPU9250_ST_INT_WOM_MASK (0x07) - -/** \brief Array initializer. */ -#define MPU_InitRegNum (20) -/** \brief Array initializer 2. */ -/** \brief Stop between slave reads. */ -#define MPU9250_I2C_MST_P_NSR (0x10) -/** \brief Delay data ready int until external sensor data is loaded. */ -#define MPU9250_I2C_MST_WAIT_FOR_ES (0x40) -/** \brief I2C master clock speed */ -#define MPU9250_I2C_MST_CLOCK_400HZ (0x0D) - -#define MPU9250_DEFAULT_LOWPASS_FILTER MPU9250_BITS_DLPF_CFG_250HZ - -/** \brief Retry attemps for interrupted ioctl calls. -** -** \par Limits: -** None. -*/ -#define MPU9250_MAX_RETRY_ATTEMPTS (2) - -/** \brief Sleep time micro seconds for interrupted calls. -** -** \par Limits: -** None. -*/ -#define MPU9250_MAX_RETRY_SLEEP_USEC (10) - -#define MPU9250_SPI_DEVICE_PATH "/dev/spidev1.0" -#define MPU9250_SPI_DEVICE_MODE (3) -#define MPU9250_SPI_DEVICE_BITS (8) -#define MPU9250_SPI_DEVICE_SPEED (1000000) -#define MPU9250_SPI_TX_DELAY (0) -#define MPU9250_SPI_RX_DELAY (0) - -/************************************************************************ -** Structure Declarations -*************************************************************************/ -/** - * \brief MPU9250 device status - */ -typedef enum -{ - /*! MPU9250 status uninitialized */ - MPU9250_CUSTOM_UNINITIALIZED = 0, - /*! MPU9250 status initialized */ - MPU9250_CUSTOM_INITIALIZED = 1 -} MPU9250_Custom_Status_t; - - -typedef struct -{ - /*! Device file descriptor */ - int DeviceFd; - /*! The current device status */ - MPU9250_Custom_Status_t Status; - uint8 MagAdjX; - uint8 MagAdjY; - uint8 MagAdjZ; -} MPU9250_AppCustomData_t; - - -/************************************************************************ -** External Global Variables -*************************************************************************/ - -/************************************************************************ -** Function Prototypes -*************************************************************************/ - -/************************************************************************/ -/** \brief ioctl with limited EINTR retry attempts. -** -** \par Description -** This function is a wrapper for ioctl with retry attempts added. -** -** \param [in] fh file descriptor. -** \param [in] request code. -** \param [in] arg pointer to a device specific struct. -** -** \returns -** usually 0 for success and -1 for failure, see ioctl man-page for -** more info. -** \endreturns -** -*************************************************************************/ -int32 MPU9250_Ioctl(int fh, int request, void *arg); - - -int32 MPU9250_ResetDevice(void); -boolean MPU9250_WriteReg(uint8 Addr, uint8 Data); -boolean MPU9250_Custom_Max_Events_Not_Reached(int32 ind); - - -#endif /* MPU9250_SPI_H */ diff --git a/config/obc/cpd/target/apps/ms5611/src/ms5611_custom.c b/config/obc/cpd/target/apps/ms5611/src/ms5611_custom.c index 3d95f746d..3174c4578 100644 --- a/config/obc/cpd/target/apps/ms5611/src/ms5611_custom.c +++ b/config/obc/cpd/target/apps/ms5611/src/ms5611_custom.c @@ -38,17 +38,8 @@ ** Includes *************************************************************************/ #include "cfe.h" -#include "ms5611_spi.h" #include "ms5611_events.h" #include "ms5611_perfids.h" -#include -#include -#include -#include -#include -#include -#include -#include /************************************************************************ ** Local Defines @@ -57,28 +48,6 @@ /************************************************************************ ** Local Structure Declarations *************************************************************************/ -typedef enum -{ -/** \brief 'MS5611 - ' -** \event 'MS5611 - ' -** -** \par Type: ERROR -** -** \par Cause: -** -** This event message is issued when a device resource encounters an -** error. -** -*/ - MS5611_DEVICE_ERR_EID = MS5611_EVT_CNT, - -/** \brief Number of custom events -** -** \par Limits: -** int32 -*/ - MS5611_CUSTOM_EVT_CNT -} MS5611_CustomEventIds_t; /************************************************************************ @@ -88,8 +57,6 @@ typedef enum /************************************************************************ ** Global Variables *************************************************************************/ -MS5611_AppCustomData_t MS5611_AppCustomData; -struct spi_ioc_transfer MS5611_SPI_Xfer[2]; /************************************************************************ ** Local Variables @@ -98,370 +65,70 @@ struct spi_ioc_transfer MS5611_SPI_Xfer[2]; /************************************************************************ ** Local Function Definitions *************************************************************************/ -int32 MS5611_Ioctl(int fh, int request, void *arg) -{ - int32 returnCode = 0; - uint32 i = 0; - - for (i=0; i < MS5611_MAX_RETRY_ATTEMPTS; i++) - { - returnCode = ioctl(fh, request, arg); - - if (-1 == returnCode && EINTR == errno) - { - usleep(MS5611_MAX_RETRY_SLEEP_USEC); - } - else - { - break; - } - } - - return (returnCode); -} + void MS5611_Custom_InitData(void) { - /* Set all struct zero values */ - bzero(&MS5611_AppCustomData, sizeof(MS5611_AppCustomData)); + } boolean MS5611_Custom_Init() { - boolean returnBool = TRUE; - int ret = 0; - int i = 0; - int8 mode = MS5611_SPI_DEVICE_MODE; - int8 bits = MS5611_SPI_DEVICE_BITS; - uint32 speed = MS5611_SPI_DEVICE_SPEED; - - MS5611_AppCustomData.DeviceFd = open(MS5611_SPI_DEVICE_PATH, O_RDWR); - if (MS5611_AppCustomData.DeviceFd < 0) - { - (void) CFE_EVS_SendEvent(MS5611_DEVICE_ERR_EID, CFE_EVS_ERROR, - "MS5611 Device open errno: %i", errno); - returnBool = FALSE; - goto end_of_function; - } - - ret = MS5611_Ioctl(MS5611_AppCustomData.DeviceFd, SPI_IOC_WR_MODE, &mode); - if (-1 == ret) - { - (void) CFE_EVS_SendEvent(MS5611_DEVICE_ERR_EID, CFE_EVS_ERROR, - "Can't set SPI mode."); - returnBool = FALSE; - goto end_of_function; - } - - ret = MS5611_Ioctl(MS5611_AppCustomData.DeviceFd, SPI_IOC_RD_MODE, &mode); - if (-1 == ret) - { - (void) CFE_EVS_SendEvent(MS5611_DEVICE_ERR_EID, CFE_EVS_ERROR, - "Can't get SPI mode."); - returnBool = FALSE; - goto end_of_function; - } - - ret = MS5611_Ioctl(MS5611_AppCustomData.DeviceFd, SPI_IOC_WR_BITS_PER_WORD, &bits); - if (-1 == ret) - { - (void) CFE_EVS_SendEvent(MS5611_DEVICE_ERR_EID, CFE_EVS_ERROR, - "Can't set bits per word."); - returnBool = FALSE; - goto end_of_function; - } - - ret = MS5611_Ioctl(MS5611_AppCustomData.DeviceFd, SPI_IOC_RD_BITS_PER_WORD, &bits); - if (-1 == ret) - { - (void) CFE_EVS_SendEvent(MS5611_DEVICE_ERR_EID, CFE_EVS_ERROR, - "Can't get bits per word."); - returnBool = FALSE; - goto end_of_function; - } - - ret = MS5611_Ioctl(MS5611_AppCustomData.DeviceFd, SPI_IOC_WR_MAX_SPEED_HZ, &speed); - if (-1 == ret) - { - (void) CFE_EVS_SendEvent(MS5611_DEVICE_ERR_EID, CFE_EVS_ERROR, - "Can't set max speed."); - returnBool = FALSE; - goto end_of_function; - } - - ret = MS5611_Ioctl(MS5611_AppCustomData.DeviceFd, SPI_IOC_RD_MAX_SPEED_HZ, &speed); - if (-1 == ret) - { - (void) CFE_EVS_SendEvent(MS5611_DEVICE_ERR_EID, CFE_EVS_ERROR, - "Can't get max speed."); - returnBool = FALSE; - goto end_of_function; - } - - /* Keep CS activated */ - MS5611_SPI_Xfer[0].cs_change = 0; - MS5611_SPI_Xfer[0].delay_usecs = 0; - MS5611_SPI_Xfer[0].speed_hz = speed; - MS5611_SPI_Xfer[0].bits_per_word = 8; - - ret = MS5611_ResetDevice(); - if (-1 == ret) - { - (void) CFE_EVS_SendEvent(MS5611_DEVICE_ERR_EID, CFE_EVS_ERROR, - "Reset device failed."); - returnBool = FALSE; - goto end_of_function; - } - - MS5611_AppCustomData.Status = MS5611_CUSTOM_INITIALIZED; - -end_of_function: - return (returnBool); + return TRUE; } boolean MS5611_Custom_Uninit(void) { - boolean returnBool = TRUE; - int returnCode = 0; - - returnCode = close(MS5611_AppCustomData.DeviceFd); - if (-1 == returnCode) - { - (void) CFE_EVS_SendEvent(MS5611_DEVICE_ERR_EID, CFE_EVS_ERROR, - "MS5611 Device close errno: %i", errno); - returnBool = FALSE; - } - else - { - MS5611_AppCustomData.Status = MS5611_CUSTOM_UNINITIALIZED; - } - return (returnBool); + return TRUE; } void MS5611_Critical_Cleanup(void) { - close(MS5611_AppCustomData.DeviceFd); } int32 MS5611_ResetDevice(void) { - int ret = 0; - - unsigned char txBuf[2]; - unsigned char rxBuf[2]; - - memset(txBuf, 0, sizeof(txBuf)); - memset(rxBuf, 0, sizeof(rxBuf)); - txBuf[0] = MS5611_SPI_CMD_RESET; - - MS5611_SPI_Xfer[0].tx_buf = (unsigned long)txBuf; - MS5611_SPI_Xfer[0].rx_buf = (unsigned long)rxBuf; - MS5611_SPI_Xfer[0].len = 2; - - ret = MS5611_Ioctl(MS5611_AppCustomData.DeviceFd, SPI_IOC_MESSAGE(1), MS5611_SPI_Xfer); - if (-1 == ret) - { - (void) CFE_EVS_SendEvent(MS5611_DEVICE_ERR_EID, CFE_EVS_ERROR, - "MS5611 ioctl returned %i", errno); - } - else - { - usleep(100000); - } - return (ret); + return 0; } boolean MS5611_ReadPROM(uint8 Addr, uint16 *returnVal) { - int ret = 0; - uint32 i = 0; - boolean returnBool = TRUE; - - /* Null pointer check */ - if(0 == returnVal) - { - CFE_EVS_SendEvent(MS5611_DEVICE_ERR_EID, CFE_EVS_ERROR, - "MS5611 ReadProm Null Pointer"); - returnBool = FALSE; - goto end_of_function; - } - - unsigned char txBuf[30]; - unsigned char rxBuf[30]; - - memset(txBuf, 0, sizeof(txBuf)); - memset(rxBuf, 0, sizeof(rxBuf)); - txBuf[0] = MS5611_SPI_CMD_PROM_READ_MASK + (Addr << MS5611_SPI_CMD_PROM_ADDR_SHIFT); - - MS5611_SPI_Xfer[0].tx_buf = (unsigned long)txBuf; - MS5611_SPI_Xfer[0].rx_buf = (unsigned long)rxBuf; - MS5611_SPI_Xfer[0].len = 30; - - ret = MS5611_Ioctl(MS5611_AppCustomData.DeviceFd, SPI_IOC_MESSAGE(1), MS5611_SPI_Xfer); - if (-1 == ret) - { - (void) CFE_EVS_SendEvent(MS5611_DEVICE_ERR_EID, CFE_EVS_ERROR, - "MS5611 ioctl returned %i", errno); - returnBool = FALSE; - goto end_of_function; - } - *returnVal = (rxBuf[1] << 8) + rxBuf[2]; - -end_of_function: - return (returnBool); + return TRUE; } boolean MS5611_D1Conversion(void) { - int ret = 0; - int32 result = 0; - boolean returnBool = TRUE; - - unsigned char txBuf[1]; - unsigned char rxBuf[1]; - - memset(txBuf, 0, sizeof(txBuf)); - memset(rxBuf, 0, sizeof(rxBuf)); - txBuf[0] = MS5611_SPI_CMD_CONVERT_D1; - - MS5611_SPI_Xfer[0].tx_buf = (unsigned long)txBuf; - MS5611_SPI_Xfer[0].rx_buf = (unsigned long)rxBuf; - MS5611_SPI_Xfer[0].len = 1; - - ret = MS5611_Ioctl(MS5611_AppCustomData.DeviceFd, SPI_IOC_MESSAGE(1), MS5611_SPI_Xfer); - if (-1 == ret) - { - (void) CFE_EVS_SendEvent(MS5611_DEVICE_ERR_EID, CFE_EVS_ERROR, - "MS5611 ioctl returned %i", errno); - returnBool = FALSE; - } - else - { - usleep(10000); - } - return (returnBool); + return TRUE; } boolean MS5611_D2Conversion(void) { - int ret = 0; - int32 result = 0; - boolean returnBool = TRUE; - - unsigned char txBuf[1]; - unsigned char rxBuf[1]; - - memset(txBuf, 0, sizeof(txBuf)); - memset(rxBuf, 0, sizeof(rxBuf)); - txBuf[0] = MS5611_SPI_CMD_CONVERT_D2; - - MS5611_SPI_Xfer[0].tx_buf = (unsigned long)txBuf; - MS5611_SPI_Xfer[0].rx_buf = (unsigned long)rxBuf; - MS5611_SPI_Xfer[0].len = 1; - - ret = MS5611_Ioctl(MS5611_AppCustomData.DeviceFd, SPI_IOC_MESSAGE(1), MS5611_SPI_Xfer); - if (-1 == ret) - { - (void) CFE_EVS_SendEvent(MS5611_DEVICE_ERR_EID, CFE_EVS_ERROR, - "MS5611 ioctl returned %i", errno); - returnBool = FALSE; - } - else - { - usleep(10000); - } - return (returnBool); + return TRUE; } boolean MS5611_ReadADCResult(uint32 *returnVal) { - int ret = 0; - int32 result = 0; - uint32 i = 0; - boolean returnBool = TRUE; - - unsigned char txBuf[30]; - unsigned char rxBuf[30]; - - /* Null pointer check */ - if(0 == returnVal) - { - (void) CFE_EVS_SendEvent(MS5611_DEVICE_ERR_EID, CFE_EVS_ERROR, - "MS5611 ReadProm Null Pointer"); - returnBool = FALSE; - goto end_of_function; - } - - memset(txBuf, 0, sizeof(txBuf)); - memset(rxBuf, 0, sizeof(rxBuf)); - txBuf[0] = MS5611_SPI_CMD_ADC_READ; - - MS5611_SPI_Xfer[0].tx_buf = (unsigned long)txBuf; - MS5611_SPI_Xfer[0].rx_buf = (unsigned long)rxBuf; - MS5611_SPI_Xfer[0].len = 30; - - ret = MS5611_Ioctl(MS5611_AppCustomData.DeviceFd, SPI_IOC_MESSAGE(1), MS5611_SPI_Xfer); - if (-1 == ret) - { - (void) CFE_EVS_SendEvent(MS5611_DEVICE_ERR_EID, CFE_EVS_ERROR, - "MS5611 ioctl returned %i", errno); - returnBool = FALSE; - goto end_of_function; - } - *returnVal = (rxBuf[1] << 16) + (rxBuf[2] << 8) + rxBuf[3]; - -end_of_function: - - return (returnBool); + return TRUE; } boolean MS5611_Custom_Max_Events_Not_Reached(int32 ind) { - boolean returnBool = FALSE; - - if ((ind < CFE_EVS_MAX_EVENT_FILTERS) && (ind > 0)) - { - returnBool = TRUE; - } - - return (returnBool); + return TRUE; } int32 MS5611_Custom_Init_EventFilters(int32 ind, CFE_EVS_BinFilter_t *EventTbl) { - int32 customEventCount = ind; - - /* Null check */ - if(0 == EventTbl) - { - customEventCount = -1; - goto end_of_function; - } - - if(TRUE == MS5611_Custom_Max_Events_Not_Reached(customEventCount)) - { - EventTbl[ customEventCount].EventID = MS5611_DEVICE_ERR_EID; - EventTbl[customEventCount++].Mask = CFE_EVS_FIRST_16_STOP; - } - else - { - customEventCount = -1; - goto end_of_function; - } - -end_of_function: - - return (customEventCount); + return 0; } diff --git a/config/obc/cpd/target/apps/ms5611/src/ms5611_spi.h b/config/obc/cpd/target/apps/ms5611/src/ms5611_spi.h deleted file mode 100644 index c2bdc8783..000000000 --- a/config/obc/cpd/target/apps/ms5611/src/ms5611_spi.h +++ /dev/null @@ -1,201 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ - -#ifndef MS5611_SPI_H -#define MS5611_SPI_H - -#ifdef __cplusplus -extern "C" { -#endif - -/************************************************************************ -** Includes -*************************************************************************/ -#include "ms5611_custom.h" -#include "ms5611_platform_cfg.h" -#include "cfe.h" - -/************************************************************************ -** Local Defines -*************************************************************************/ -/** \brief SPI Device path of the MS5611 */ -#define MS5611_SPI_DEVICE_PATH MS5611_DEVICE_PATH - -/** \brief SPI device mode */ -#define MS5611_SPI_DEVICE_MODE (3) - -/** \brief SPI device bits per word */ -#define MS5611_SPI_DEVICE_BITS (8) - -/** \brief SPI device speed */ -#define MS5611_SPI_DEVICE_SPEED (1000000) - -/** \brief SPI device transmit delay */ -#define MS5611_SPI_TX_DELAY (0) - -/** \brief SPI device receive delay */ -#define MS5611_SPI_RX_DELAY (0) -/* SPI Commands */ -/** \brief MS5611 command reset */ -#define MS5611_SPI_CMD_RESET (0x1e) - -/** \brief MS5611 command convert D1 (OSR=256) */ -#define MS5611_SPI_CMD_CONVERT_D1_MASK (0x40) - -/** \brief MS5611 command convert D2 (OSR=256) */ -#define MS5611_SPI_CMD_CONVERT_D2_MASK (0x50) - -/** \brief MS5611 command mask convert OSR 256 */ -#define MS5611_SPI_CMD_OSR_256_MASK (0x00) - -/** \brief MS5611 command mask convert OSR 512 */ -#define MS5611_SPI_CMD_OSR_512_MASK (0x02) - -/** \brief MS5611 command mask convert OSR 1024 */ -#define MS5611_SPI_CMD_OSR_1024_MASK (0x04) - -/** \brief MS5611 command mask convert OSR 2048 */ -#define MS5611_SPI_CMD_OSR_2048_MASK (0x06) - -/** \brief MS5611 command mask convert OSR 4096 */ -#define MS5611_SPI_CMD_OSR_4096_MASK (0x08) - -/** \brief MS5611 command ADC read */ -#define MS5611_SPI_CMD_ADC_READ (0x00) - -/** \brief MS5611 command mask PROM read */ -#define MS5611_SPI_CMD_PROM_READ_MASK (0xa0) - -/** \brief MS5611 command PROM read shift */ -#define MS5611_SPI_CMD_PROM_ADDR_SHIFT (1) - -/** \brief MS5611 command convert D1 with OSR mask */ -#define MS5611_SPI_CMD_CONVERT_D1 (MS5611_SPI_CMD_CONVERT_D1_MASK + MS5611_SPI_CMD_OSR_1024_MASK) - -/** \brief MS5611 command convert D2 with OSR mask */ -#define MS5611_SPI_CMD_CONVERT_D2 (MS5611_SPI_CMD_CONVERT_D2_MASK + MS5611_SPI_CMD_OSR_1024_MASK) - -/** \brief Retry attemps for interrupted ioctl calls. */ -#define MS5611_MAX_RETRY_ATTEMPTS (2) - -/** \brief Sleep time micro seconds for interrupted calls. */ -#define MS5611_MAX_RETRY_SLEEP_USEC (10) - - -/************************************************************************ -** Structure Declarations -*************************************************************************/ -/** - * \brief MS5611 device status - */ -typedef enum -{ - /*! status uninitialized */ - MS5611_CUSTOM_UNINITIALIZED = 0, - /*! status initialized */ - MS5611_CUSTOM_INITIALIZED = 1 -} MS5611_Custom_Status_t; - - -typedef struct -{ - /*! Device file descriptor */ - int DeviceFd; - /*! The current device status */ - MS5611_Custom_Status_t Status; -} MS5611_AppCustomData_t; - - -/************************************************************************ -** External Global Variables -*************************************************************************/ - -/************************************************************************ -** Function Prototypes -*************************************************************************/ - -/************************************************************************/ -/** \brief ioctl with limited EINTR retry attempts. -** -** \par Description -** This function is a wrapper for ioctl with retry attempts added. -** -** \param [in] fh file descriptor. -** \param [in] request code. -** \param [in] arg pointer to a device specific struct. -** -** \returns -** usually 0 for success and -1 for failure, see ioctl man-page for -** more info. -** \endreturns -** -*************************************************************************/ -int32 MS5611_Ioctl(int fh, int request, void *arg); - -/************************************************************************/ -/** \brief Determines if the maximum of event filters has been reached. -** -** \par Description -** This function checks if an index has reached the maximum -** number of events. -** -** \par Assumptions, External Events, and Notes: -** None -** -** \param [in] ind The current index to check. -** -** -** \returns boolean -** -*************************************************************************/ -boolean MS5611_Custom_Max_Events_Not_Reached(int32 ind); - -/************************************************************************/ -/** \brief Reset the device. -** -** \par Description -** This function must be used at initialization. -** -** \par Assumptions, External Events, and Notes: -** None -** -** \returns ioctl return code. -** -*************************************************************************/ -int32 MS5611_ResetDevice(void); - -#ifdef __cplusplus -} -#endif - -#endif /* MS5611_SPI_H */ diff --git a/config/obc/cpd/target/apps/rcin/src/rcin_custom.c b/config/obc/cpd/target/apps/rcin/src/rcin_custom.c index 146b14d84..7c69f7173 100644 --- a/config/obc/cpd/target/apps/rcin/src/rcin_custom.c +++ b/config/obc/cpd/target/apps/rcin/src/rcin_custom.c @@ -37,832 +37,73 @@ /************************************************************************ ** Includes *************************************************************************/ -#include "rcin_sbus.h" #include "rcin_events.h" -#include "perf_ids.h" -#include "px4lib.h" +#include "px4_msgs.h" #include "rcin_platform_cfg.h" -/************************************************************************ -** Local Defines -*************************************************************************/ - -/************************************************************************ -** Local Structure Declarations -*************************************************************************/ - -typedef enum { - -/** \brief 'RCIN - ' -** \event 'RCIN - ' -** -** \par Type: ERROR -** -** \par Cause: -** -** This event message is issued when a device resource encounters an -** error. -** -*/ - RCIN_DEVICE_ERR_EID = RCIN_EVT_CNT, -/** \brief 'RCIN - ' -** \event 'RCIN - ' -** -** \par Type: ERROR -** -** \par Cause: -** -** This event message is issued when the RC input stream is out of -** sync. -** -*/ - RCIN_SYNC_ERR_EID, - -/** \brief Number of custom events -** -** \par Limits: -** int32 -*/ - RCIN_CUSTOM_EVT_CNT - -} RCIN_CustomEventIds_t; - -/************************************************************************ -** External Global Variables -*************************************************************************/ - -/************************************************************************ -** Global Variables -*************************************************************************/ -RCIN_AppCustomData_t RCIN_AppCustomData; - -/************************************************************************ -** Local Variables -*************************************************************************/ - -/************************************************************************ -** Local Function Definitions -*************************************************************************/ -int32 RCIN_Ioctl(int fh, int request, void *arg) -{ - int32 returnCode = 0; - uint32 i = 0; - - for (i=0; i < RCIN_MAX_RETRY_ATTEMPTS; i++) - { - returnCode = ioctl(fh, request, arg); - - if (-1 == returnCode && EINTR == errno) - { - usleep(RCIN_MAX_RETRY_SLEEP_USEC); - } - else - { - break; - } - } - - return (returnCode); -} int32 RCIN_Read(int fd, void *buf, size_t count) { - int32 returnSize = 0; - uint32 i = 0; - - for (i=0; i < RCIN_MAX_RETRY_ATTEMPTS; i++) - { - returnSize = read(fd, buf, count); - /* Interrupted */ - if (-1 == returnSize && EINTR == errno) - { - (void) CFE_EVS_SendEvent(RCIN_DEVICE_ERR_EID, CFE_EVS_ERROR, - "RCIN device read EINTR"); - usleep(RCIN_MAX_RETRY_SLEEP_USEC); - } - else - { - break; - } - } - - return (returnSize); + return 0; } void RCIN_Custom_InitData(void) { - /* Set all struct zero values */ - bzero(&RCIN_AppCustomData, sizeof(RCIN_AppCustomData)); - strncpy(RCIN_AppCustomData.DevName, RCIN_DEVICE_PATH, RCIN_MAX_DEVICE_PATH); - /* Set all non-zero values */ - RCIN_AppCustomData.ContinueFlag = TRUE; - RCIN_AppCustomData.Priority = RCIN_STREAMING_TASK_PRIORITY; - RCIN_AppCustomData.StreamingTask = RCIN_Stream_Task; - /* Initialize for failsafe and RcLost */ - RCIN_AppCustomData.Measure.RcFailsafe = 1; - RCIN_AppCustomData.Measure.RcLost = 1; - return; + } boolean RCIN_Custom_Init(void) { - boolean returnBool = TRUE; - int32 returnCode = 0; - int baud = RCIN_SERIAL_INPUT_SPEED; - struct serial_struct serials; - - /* Open */ - RCIN_AppCustomData.DeviceFd = open(RCIN_DEVICE_PATH, O_RDWR | O_NONBLOCK | O_CLOEXEC); - if (RCIN_AppCustomData.DeviceFd < 0) - { - (void) CFE_EVS_SendEvent(RCIN_DEVICE_ERR_EID, CFE_EVS_ERROR, - "RCIN custom device open errno: %i", errno); - returnBool = FALSE; - goto end_of_function; - } - else - { - RCIN_AppCustomData.Status = RCIN_CUSTOM_INITIALIZED; - } - - /* Create mutex for shared data */ - returnCode = OS_MutSemCreate(&RCIN_AppCustomData.Mutex, RCIN_MUTEX_NAME, 0); - if (returnCode != CFE_SUCCESS) - { - (void) CFE_EVS_SendEvent(RCIN_DEVICE_ERR_EID, CFE_EVS_ERROR, - "RCIN mutex create failed in custom init"); - returnBool = FALSE; - goto end_of_function; - } - - /* Get configuration */ - returnCode = tcgetattr(RCIN_AppCustomData.DeviceFd, - &RCIN_AppCustomData.TerminalConfig); - if (0 != returnCode) - { - (void) CFE_EVS_SendEvent(RCIN_DEVICE_ERR_EID, CFE_EVS_ERROR, - "RCIN custom get terminal config failed errno: %i", errno); - goto end_of_function; - } - - tcflush(RCIN_AppCustomData.DeviceFd, TCIFLUSH); - bzero(&RCIN_AppCustomData.TerminalConfig, - sizeof(RCIN_AppCustomData.TerminalConfig)); - RCIN_AppCustomData.TerminalConfig.c_cflag |= (CLOCAL | CREAD); - RCIN_AppCustomData.TerminalConfig.c_cflag &= ~CSIZE; - RCIN_AppCustomData.TerminalConfig.c_cflag |= CS8; - RCIN_AppCustomData.TerminalConfig.c_cflag |= PARENB; - RCIN_AppCustomData.TerminalConfig.c_cflag &= ~PARODD; - RCIN_AppCustomData.TerminalConfig.c_iflag |= INPCK; - RCIN_AppCustomData.TerminalConfig.c_cflag |= CSTOPB; - RCIN_AppCustomData.TerminalConfig.c_cc[VTIME] = 0; - RCIN_AppCustomData.TerminalConfig.c_cc[VMIN] = 0; - - cfsetispeed(&RCIN_AppCustomData.TerminalConfig, B38400); - cfsetospeed(&RCIN_AppCustomData.TerminalConfig, B38400); - - tcflush(RCIN_AppCustomData.DeviceFd, TCIFLUSH); - - returnCode = tcsetattr(RCIN_AppCustomData.DeviceFd, TCSANOW, - &RCIN_AppCustomData.TerminalConfig); - if (0 != returnCode) - { - (void) CFE_EVS_SendEvent(RCIN_DEVICE_ERR_EID, CFE_EVS_ERROR, - "RCIN custom set terminal config failed errno: %i", errno); - goto end_of_function; - } - - returnCode = RCIN_Ioctl(RCIN_AppCustomData.DeviceFd, TIOCGSERIAL, - &serials); - if (0 > returnCode) - { - (void) CFE_EVS_SendEvent(RCIN_DEVICE_ERR_EID, CFE_EVS_ERROR, - "RCIN custom get serial line info errno: %i", errno); - goto end_of_function; - } - - serials.flags = ASYNC_SPD_CUST; - serials.custom_divisor = serials.baud_base / baud; - - returnCode = RCIN_Ioctl(RCIN_AppCustomData.DeviceFd, TIOCSSERIAL, - &serials); - if (0 > returnCode) - { - (void) CFE_EVS_SendEvent(RCIN_DEVICE_ERR_EID, CFE_EVS_ERROR, - "RCIN custom set serial line info errno: %i", errno); - goto end_of_function; - } - - RCIN_Ioctl(RCIN_AppCustomData.DeviceFd, TIOCGSERIAL, &serials); - - tcflush(RCIN_AppCustomData.DeviceFd, TCIFLUSH); - - /* Create streaming task */ - /* Set loop flag to continue forever */ - RCIN_AppCustomData.ContinueFlag = TRUE; - - /* Create the streaming task */ - returnCode = CFE_ES_CreateChildTask( - &RCIN_AppCustomData.ChildTaskID, - RCIN_STREAMING_TASK_NAME, - RCIN_AppCustomData.StreamingTask, - 0, - CFE_ES_DEFAULT_STACK_SIZE, - RCIN_AppCustomData.Priority, - RCIN_STREAMING_TASK_FLAGS); - - if(CFE_SUCCESS != returnCode) - { - RCIN_AppCustomData.ContinueFlag = FALSE; - returnBool = FALSE; - CFE_EVS_SendEvent(RCIN_DEVICE_ERR_EID, CFE_EVS_ERROR, - "RCIN create streaming task failed"); - goto end_of_function; - } - else - { - RCIN_AppCustomData.Status = RCIN_CUSTOM_ENABLED; - } - -end_of_function: - return (returnBool); + return TRUE; } void RCIN_Stream_Task(void) { - int32 returnCode = 0; - int32 timeouts = 0; - uint32 maxFd = 0; - uint32 retryAttempts = 0; - uint32 iStatus = -1; - fd_set fds; - struct timeval timeValue; - - iStatus = CFE_ES_RegisterChildTask(); - - if (iStatus == CFE_SUCCESS) - { - /* Task should continue forever until cleanup (uninit) */ - while (RCIN_AppCustomData.ContinueFlag == TRUE) - { - maxFd = 0; - returnCode = 0; - - /* Select modifies the timeout value with time left until - * the timeout would expire so timeValue needs to be set - * every loop iteration - */ - timeValue.tv_sec = RCIN_BUFFER_FILL_TIMEOUT_SEC; - timeValue.tv_usec = RCIN_BUFFER_FILL_TIMEOUT_USEC; - - /* Initialize the set */ - FD_ZERO(&fds); - - FD_SET(RCIN_AppCustomData.DeviceFd, &fds); - - /* Get the greatest fd value for select() */ - maxFd = RCIN_AppCustomData.DeviceFd; - - CFE_ES_PerfLogEntry(RCIN_DEVICE_GET_PERF_ID); - /* Wait for RC data */ - returnCode = select(maxFd + 1, &fds, 0, 0, &timeValue); - CFE_ES_PerfLogExit(RCIN_DEVICE_GET_PERF_ID); - - /* select() wasn't successful */ - if (-1 == returnCode) - { - /* select was interrupted, try again */ - if (EINTR == errno) - { - RCIN_Custom_RC_Lost(TRUE); - (void) CFE_EVS_SendEvent(RCIN_DEVICE_ERR_EID, CFE_EVS_ERROR, - "RCIN select was interrupted"); - usleep(RCIN_MAX_RETRY_SLEEP_USEC); - continue; - } - else - { - RCIN_Custom_RC_Lost(TRUE); - /* select returned an error other than EINTR */ - (void) CFE_EVS_SendEvent(RCIN_DEVICE_ERR_EID, CFE_EVS_ERROR, - "RCIN stream failed select() returned %i", errno); - usleep(RCIN_MAX_RETRY_SLEEP_USEC); - continue; - } - } - /* select timed out */ - if (0 == returnCode) - { - RCIN_Custom_RC_Lost(TRUE); - continue; - } - /* select() returned and data is ready to be read */ - if(returnCode > 0) - { - RCIN_Custom_RC_Lost(FALSE); - RCIN_Custom_Read(); - continue; - } - } /* end while loop */ - } /* end if status == success */ - - /* Take shared data mutex */ - OS_MutSemTake(RCIN_AppCustomData.Mutex); - /* Set failsafe and RcLost */ - RCIN_AppCustomData.Measure.RcFailsafe = 1; - RCIN_AppCustomData.Measure.RcLost = 1; - /* Give shared data mutex */ - OS_MutSemGive(RCIN_AppCustomData.Mutex); - - /* Streaming task is exiting so set app flag to initialized */ - RCIN_AppCustomData.Status = RCIN_CUSTOM_ENABLED; - CFE_EVS_SendEvent(RCIN_DEVICE_ERR_EID, CFE_EVS_ERROR, - "RCIN receive task exited with return code %li task status (0x%08lX)", - returnCode, iStatus); - - /* The child task was successfully registered so exit from it */ - if (iStatus == CFE_SUCCESS) - { - CFE_ES_ExitChildTask(); - } + return TRUE; } boolean RCIN_Custom_PWM_Translate(uint8 *data, int size) { - boolean returnBool = TRUE; - - /* Null pointer check */ - if(0 == data) - { - (void) CFE_EVS_SendEvent(RCIN_DEVICE_ERR_EID, CFE_EVS_ERROR, - "RCIN_Custom_PWM_Translate null pointer"); - returnBool = FALSE; - goto end_of_function; - } - - /* Size check */ - if(RCIN_SERIAL_READ_SIZE != size) - { - (void) CFE_EVS_SendEvent(RCIN_DEVICE_ERR_EID, CFE_EVS_ERROR, - "RCIN_Custom_PWM_Translate size error"); - returnBool = FALSE; - goto end_of_function; - } - - /* Take shared data mutex */ - OS_MutSemTake(RCIN_AppCustomData.Mutex); - - RCIN_AppCustomData.Measure.Values[0] = (uint16)(((data[1] | data[2] << 8) - & 0x07FF) * RCIN_SBUS_SCALE_FACTOR + .5f) + RCIN_SBUS_SCALE_OFFSET; - RCIN_AppCustomData.Measure.Values[1] = (uint16)(((data[2] >> 3 | data[3] << 5) - & 0x07FF) * RCIN_SBUS_SCALE_FACTOR + .5f) + RCIN_SBUS_SCALE_OFFSET; - RCIN_AppCustomData.Measure.Values[2] = (uint16)(((data[3] >> 6 | data[4] << 2 - | data[5] << 10) & 0x07FF) * RCIN_SBUS_SCALE_FACTOR + .5f) - + RCIN_SBUS_SCALE_OFFSET; - RCIN_AppCustomData.Measure.Values[3] = (uint16)(((data[5] >> 1 | data[6] << 7) - & 0x07FF) * RCIN_SBUS_SCALE_FACTOR + .5f) + RCIN_SBUS_SCALE_OFFSET; - RCIN_AppCustomData.Measure.Values[4] = (uint16)(((data[6] >> 4 | data[7] << 4) - & 0x07FF) * RCIN_SBUS_SCALE_FACTOR + .5f) + RCIN_SBUS_SCALE_OFFSET; - RCIN_AppCustomData.Measure.Values[5] = (uint16)(((data[7] >> 7 | data[8] << 1 - | data[9] << 9) & 0x07FF) * RCIN_SBUS_SCALE_FACTOR + .5f) - + RCIN_SBUS_SCALE_OFFSET; - RCIN_AppCustomData.Measure.Values[6] = (uint16)(((data[9] >> 2 | data[10] << 6) - & 0x07FF) * RCIN_SBUS_SCALE_FACTOR + .5f) + RCIN_SBUS_SCALE_OFFSET; - RCIN_AppCustomData.Measure.Values[7] = (uint16)(((data[10] >> 5 | data[11] << 3) - & 0x07FF) * RCIN_SBUS_SCALE_FACTOR + .5f) + RCIN_SBUS_SCALE_OFFSET; // & the other 8 + 2 channels if you need them - RCIN_AppCustomData.Measure.Values[8] = (uint16)(((data[12] | data[13] << 8) - & 0x07FF) * RCIN_SBUS_SCALE_FACTOR + .5f) + RCIN_SBUS_SCALE_OFFSET; - RCIN_AppCustomData.Measure.Values[9] = (uint16)(((data[13] >> 3 | data[14] << 5) - & 0x07FF) * RCIN_SBUS_SCALE_FACTOR + .5f) + RCIN_SBUS_SCALE_OFFSET; - RCIN_AppCustomData.Measure.Values[10] = (uint16)(((data[14] >> 6 | data[15] << 2 - | data[16] << 10) & 0x07FF) * RCIN_SBUS_SCALE_FACTOR + .5f) - + RCIN_SBUS_SCALE_OFFSET; - RCIN_AppCustomData.Measure.Values[11] = (uint16)(((data[16] >> 1 | data[17] << 7) - & 0x07FF) * RCIN_SBUS_SCALE_FACTOR + .5f) + RCIN_SBUS_SCALE_OFFSET; - RCIN_AppCustomData.Measure.Values[12] = (uint16)(((data[17] >> 4 | data[18] << 4) - & 0x07FF) * RCIN_SBUS_SCALE_FACTOR + .5f) + RCIN_SBUS_SCALE_OFFSET; - RCIN_AppCustomData.Measure.Values[13] = (uint16)(((data[18] >> 7 | data[19] << 1 - | data[20] << 9) & 0x07FF) * RCIN_SBUS_SCALE_FACTOR + .5f) - + RCIN_SBUS_SCALE_OFFSET; - RCIN_AppCustomData.Measure.Values[14] = (uint16)(((data[20] >> 2 | data[21] << 6) - & 0x07FF) * RCIN_SBUS_SCALE_FACTOR + .5f) + RCIN_SBUS_SCALE_OFFSET; - RCIN_AppCustomData.Measure.Values[15] = (uint16)(((data[21] >> 5 | data[22] << 3) - & 0x07FF) * RCIN_SBUS_SCALE_FACTOR + .5f) + RCIN_SBUS_SCALE_OFFSET; - - /* Timestamp */ - RCIN_AppCustomData.Measure.Timestamp = PX4LIB_GetPX4TimeUs(); - - /* Channel count */ - RCIN_AppCustomData.Measure.ChannelCount = RCIN_SBUS_CHANNEL_COUNT; - RCIN_AppCustomData.Measure.RSSI = 100; - RCIN_AppCustomData.Measure.RcLostFrameCount = 0; - RCIN_AppCustomData.Measure.RcTotalFrameCount = 1; - RCIN_AppCustomData.Measure.RcPpmFrameLength = 100; - RCIN_AppCustomData.Measure.RcFailsafe = (data[23] & (1 << 3)) ? TRUE : FALSE; - RCIN_AppCustomData.Measure.RcLost = (data[23] & (1 << 2)) ? TRUE : FALSE; - RCIN_AppCustomData.Measure.InputSource = PX4_RC_INPUT_SOURCE_PX4FMU_SBUS; - - /* Give shared data mutex */ - OS_MutSemGive(RCIN_AppCustomData.Mutex); - -end_of_function: - return (returnBool); + return TRUE; } void RCIN_Custom_RC_Lost(boolean notReset) { - static int errorCount = 0; - - /* Take shared data mutex */ - OS_MutSemTake(RCIN_AppCustomData.Mutex); - - if (FALSE == notReset) - { - /* Set status to streaming state */ - RCIN_AppCustomData.Status = RCIN_CUSTOM_STREAMING; - errorCount = 0; - } - else - { - /* Set status to not streaming if we're not in RC Lost*/ - if (RCIN_AppCustomData.Status != RCIN_CUSTOM_RC_LOST - && RCIN_AppCustomData.Status != RCIN_CUSTOM_NOTSTREAMING) - { - RCIN_AppCustomData.Status = RCIN_CUSTOM_NOTSTREAMING; - } - errorCount++; - } - - if(RCIN_MAX_ERROR_COUNT == errorCount) - { - /* We're at max error count, set failsafe and lost flags */ - RCIN_AppCustomData.Measure.RcFailsafe = TRUE; - RCIN_AppCustomData.Measure.RcLost = TRUE; - - if (RCIN_AppCustomData.Status != RCIN_CUSTOM_RC_LOST) - { - CFE_EVS_SendEvent(RCIN_DEVICE_ERR_EID, CFE_EVS_ERROR, - "RCIN RC LOST, setting failsafe and lost flags"); - RCIN_AppCustomData.Status = RCIN_CUSTOM_RC_LOST; - } - errorCount = 0; - } - /* Give shared data mutex */ - OS_MutSemGive(RCIN_AppCustomData.Mutex); return; } void RCIN_Custom_Read(void) { - uint32 i = 0; - int bytesRead = 0; - uint8 sbusTemp[RCIN_SERIAL_READ_SIZE*4] = { 0 }; - static boolean sync = FALSE; - - /* Read */ - bytesRead = RCIN_Read(RCIN_AppCustomData.DeviceFd, &sbusTemp, sizeof(sbusTemp)); - - if(bytesRead > 0) - { - for(i = 0; i < bytesRead; i++) - { - switch(RCIN_AppCustomData.ParserState) - { - case RCIN_PARSER_STATE_UNKNOWN: - { - /* If header is found move to next state */ - if(0x0f == sbusTemp[i] || 0x8f == sbusTemp[i]) - { - RCIN_AppCustomData.sbusData[0] = sbusTemp[i]; - RCIN_AppCustomData.ParserState = RCIN_PARSER_STATE_WAITING_FOR_DATA1; - } - break; - } - case RCIN_PARSER_STATE_WAITING_FOR_HEADER: - { - /* If header is found move to next state */ - if(0x0f == sbusTemp[i] || 0x8f == sbusTemp[i]) - { - RCIN_AppCustomData.sbusData[0] = sbusTemp[i]; - RCIN_AppCustomData.ParserState = RCIN_PARSER_STATE_WAITING_FOR_DATA1; - } - break; - } - case RCIN_PARSER_STATE_WAITING_FOR_DATA1: - { - RCIN_AppCustomData.sbusData[1] = sbusTemp[i]; - RCIN_AppCustomData.ParserState = RCIN_PARSER_STATE_WAITING_FOR_DATA2; - break; - } - case RCIN_PARSER_STATE_WAITING_FOR_DATA2: - { - RCIN_AppCustomData.sbusData[2] = sbusTemp[i]; - RCIN_AppCustomData.ParserState = RCIN_PARSER_STATE_WAITING_FOR_DATA3; - break; - } - case RCIN_PARSER_STATE_WAITING_FOR_DATA3: - { - RCIN_AppCustomData.sbusData[3] = sbusTemp[i]; - RCIN_AppCustomData.ParserState = RCIN_PARSER_STATE_WAITING_FOR_DATA4; - break; - } - case RCIN_PARSER_STATE_WAITING_FOR_DATA4: - { - RCIN_AppCustomData.sbusData[4] = sbusTemp[i]; - RCIN_AppCustomData.ParserState = RCIN_PARSER_STATE_WAITING_FOR_DATA5; - break; - } - case RCIN_PARSER_STATE_WAITING_FOR_DATA5: - { - RCIN_AppCustomData.sbusData[5] = sbusTemp[i]; - RCIN_AppCustomData.ParserState = RCIN_PARSER_STATE_WAITING_FOR_DATA6; - break; - } - case RCIN_PARSER_STATE_WAITING_FOR_DATA6: - { - RCIN_AppCustomData.sbusData[6] = sbusTemp[i]; - RCIN_AppCustomData.ParserState = RCIN_PARSER_STATE_WAITING_FOR_DATA7; - break; - } - case RCIN_PARSER_STATE_WAITING_FOR_DATA7: - { - RCIN_AppCustomData.sbusData[7] = sbusTemp[i]; - RCIN_AppCustomData.ParserState = RCIN_PARSER_STATE_WAITING_FOR_DATA8; - break; - } - case RCIN_PARSER_STATE_WAITING_FOR_DATA8: - { - RCIN_AppCustomData.sbusData[8] = sbusTemp[i]; - RCIN_AppCustomData.ParserState = RCIN_PARSER_STATE_WAITING_FOR_DATA9; - break; - } - case RCIN_PARSER_STATE_WAITING_FOR_DATA9: - { - RCIN_AppCustomData.sbusData[9] = sbusTemp[i]; - RCIN_AppCustomData.ParserState = RCIN_PARSER_STATE_WAITING_FOR_DATA10; - break; - } - case RCIN_PARSER_STATE_WAITING_FOR_DATA10: - { - RCIN_AppCustomData.sbusData[10] = sbusTemp[i]; - RCIN_AppCustomData.ParserState = RCIN_PARSER_STATE_WAITING_FOR_DATA11; - break; - } - case RCIN_PARSER_STATE_WAITING_FOR_DATA11: - { - RCIN_AppCustomData.sbusData[11] = sbusTemp[i]; - RCIN_AppCustomData.ParserState = RCIN_PARSER_STATE_WAITING_FOR_DATA12; - break; - } - case RCIN_PARSER_STATE_WAITING_FOR_DATA12: - { - RCIN_AppCustomData.sbusData[12] = sbusTemp[i]; - RCIN_AppCustomData.ParserState = RCIN_PARSER_STATE_WAITING_FOR_DATA13; - } - break; - case RCIN_PARSER_STATE_WAITING_FOR_DATA13: - { - RCIN_AppCustomData.sbusData[13] = sbusTemp[i]; - RCIN_AppCustomData.ParserState = RCIN_PARSER_STATE_WAITING_FOR_DATA14; - break; - } - case RCIN_PARSER_STATE_WAITING_FOR_DATA14: - { - RCIN_AppCustomData.sbusData[14] = sbusTemp[i]; - RCIN_AppCustomData.ParserState = RCIN_PARSER_STATE_WAITING_FOR_DATA15; - break; - } - case RCIN_PARSER_STATE_WAITING_FOR_DATA15: - { - RCIN_AppCustomData.sbusData[15] = sbusTemp[i]; - RCIN_AppCustomData.ParserState = RCIN_PARSER_STATE_WAITING_FOR_DATA16; - break; - } - case RCIN_PARSER_STATE_WAITING_FOR_DATA16: - { - RCIN_AppCustomData.sbusData[16] = sbusTemp[i]; - RCIN_AppCustomData.ParserState = RCIN_PARSER_STATE_WAITING_FOR_DATA17; - break; - } - case RCIN_PARSER_STATE_WAITING_FOR_DATA17: - { - RCIN_AppCustomData.sbusData[17] = sbusTemp[i]; - RCIN_AppCustomData.ParserState = RCIN_PARSER_STATE_WAITING_FOR_DATA18; - break; - } - case RCIN_PARSER_STATE_WAITING_FOR_DATA18: - { - RCIN_AppCustomData.sbusData[18] = sbusTemp[i]; - RCIN_AppCustomData.ParserState = RCIN_PARSER_STATE_WAITING_FOR_DATA19; - break; - } - case RCIN_PARSER_STATE_WAITING_FOR_DATA19: - { - RCIN_AppCustomData.sbusData[19] = sbusTemp[i]; - RCIN_AppCustomData.ParserState = RCIN_PARSER_STATE_WAITING_FOR_DATA20; - break; - } - case RCIN_PARSER_STATE_WAITING_FOR_DATA20: - { - RCIN_AppCustomData.sbusData[20] = sbusTemp[i]; - RCIN_AppCustomData.ParserState = RCIN_PARSER_STATE_WAITING_FOR_DATA21; - break; - } - case RCIN_PARSER_STATE_WAITING_FOR_DATA21: - { - RCIN_AppCustomData.sbusData[21] = sbusTemp[i]; - RCIN_AppCustomData.ParserState = RCIN_PARSER_STATE_WAITING_FOR_DATA22; - break; - } - case RCIN_PARSER_STATE_WAITING_FOR_DATA22: - { - RCIN_AppCustomData.sbusData[22] = sbusTemp[i]; - RCIN_AppCustomData.ParserState = RCIN_PARSER_STATE_WAITING_FOR_FLAGS; - break; - } - case RCIN_PARSER_STATE_WAITING_FOR_FLAGS: - { - RCIN_AppCustomData.sbusData[23] = sbusTemp[i]; - RCIN_AppCustomData.ParserState = RCIN_PARSER_STATE_WAITING_FOR_FOOTER; - break; - } - case RCIN_PARSER_STATE_WAITING_FOR_FOOTER: - { - if(0x00 == sbusTemp[i]) - { - /* Reset the error counter */ - RCIN_Custom_RC_Lost(FALSE); - RCIN_AppCustomData.sbusData[24] = sbusTemp[i]; - RCIN_AppCustomData.ParserState = RCIN_PARSER_STATE_WAITING_FOR_HEADER; - if (FALSE == sync) - { - sync = TRUE; - (void) CFE_EVS_SendEvent(RCIN_SYNC_ERR_EID, CFE_EVS_ERROR, - "RCIN in sync."); - } - /* We have a valid packet, translate SBUS data */ - RCIN_Custom_PWM_Translate(RCIN_AppCustomData.sbusData, sizeof(RCIN_AppCustomData.sbusData)); - } - else - { - RCIN_Custom_RC_Lost(TRUE); - /* The end byte wasn't found so find a header candidate */ - RCIN_AppCustomData.ParserState = RCIN_PARSER_STATE_WAITING_FOR_HEADER; - (void) CFE_EVS_SendEvent(RCIN_SYNC_ERR_EID, CFE_EVS_ERROR, - "RCIN out of sync."); - sync = FALSE; - } - break; - } - default: - { - RCIN_Custom_RC_Lost(TRUE); - /* Unknown parser state */ - (void) CFE_EVS_SendEvent(RCIN_SYNC_ERR_EID, CFE_EVS_ERROR, - "Parser in invalid state."); - RCIN_AppCustomData.ParserState = RCIN_PARSER_STATE_UNKNOWN; - break; - } - } - } - } - /* Read returned an error */ - else - { - RCIN_Custom_RC_Lost(TRUE); - (void) CFE_EVS_SendEvent(RCIN_DEVICE_ERR_EID, CFE_EVS_ERROR, - "RCIN device read error, errno: %i", errno); - } return; } boolean RCIN_Custom_Measure(PX4_InputRcMsg_t *Measure) { - boolean returnBool = TRUE; - void *userDataPtr = 0; - void *copyDataPtr = 0; - uint16 userDataLength = 0; - uint16 i = 0; - - /* Null pointer check */ - if (0 == Measure) - { - (void) CFE_EVS_SendEvent(RCIN_DEVICE_ERR_EID, CFE_EVS_ERROR, - "RCIN device read null pointer error"); - returnBool = FALSE; - goto end_of_function; - } - - /* Take the shared data mutex */ - OS_MutSemTake(RCIN_AppCustomData.Mutex); - - if(RCIN_CUSTOM_STREAMING != RCIN_AppCustomData.Status) - { - returnBool = FALSE; - } - - if(RCIN_AppCustomData.Measure.RcFailsafe == TRUE && - RCIN_AppCustomData.Measure.RcLost == TRUE) - { - returnBool = FALSE; - } - - Measure->Timestamp = RCIN_AppCustomData.Measure.Timestamp; - Measure->ChannelCount = RCIN_AppCustomData.Measure.ChannelCount; - Measure->RSSI = RCIN_AppCustomData.Measure.RSSI; - Measure->RcLostFrameCount = RCIN_AppCustomData.Measure.RcLostFrameCount; - Measure->RcTotalFrameCount = RCIN_AppCustomData.Measure.RcTotalFrameCount; - Measure->RcPpmFrameLength = RCIN_AppCustomData.Measure.RcPpmFrameLength; - for(i = 0; i<18; i++) - { - Measure->Values[i] = RCIN_AppCustomData.Measure.Values[i]; - } - - Measure->RcFailsafe = RCIN_AppCustomData.Measure.RcFailsafe; - Measure->RcLost = RCIN_AppCustomData.Measure.RcLost; - Measure->InputSource = RCIN_AppCustomData.Measure.InputSource; - - /* Give the shared data mutex */ - OS_MutSemGive(RCIN_AppCustomData.Mutex); - -end_of_function: - return (returnBool); + return TRUE; } boolean RCIN_Custom_Uninit(void) { - boolean returnBool = TRUE; - int returnCode = 0; - - /* Delete the child task */ - CFE_ES_DeleteChildTask(RCIN_AppCustomData.ChildTaskID); - /* Set streaming task loop flag to stop */ - RCIN_AppCustomData.ContinueFlag = FALSE; - /* Set app state to initialized */ - RCIN_AppCustomData.Status = RCIN_CUSTOM_INITIALIZED; - - returnCode = close(RCIN_AppCustomData.DeviceFd); - if (-1 == returnCode) - { - (void) CFE_EVS_SendEvent(RCIN_DEVICE_ERR_EID, CFE_EVS_ERROR, - "RCIN Device close errno: %i", errno); - returnBool = FALSE; - } - else - { - RCIN_AppCustomData.Status = RCIN_CUSTOM_UNINITIALIZED; - } - return (returnBool); + return TRUE; } boolean RCIN_Custom_Max_Events_Not_Reached(int32 ind) { - boolean returnBool = FALSE; - - if ((ind < RCIN_MAX_EVENT_FILTERS) && (ind > 0)) - { - returnBool = TRUE; - } - - return (returnBool); + return TRUE; } int32 RCIN_Custom_Init_EventFilters(int32 ind, CFE_EVS_BinFilter_t *EventTbl) { - int32 customEventCount = ind; - - /* Null check */ - if(0 == EventTbl) - { - customEventCount = -1; - goto end_of_function; - } - - if(TRUE == RCIN_Custom_Max_Events_Not_Reached(customEventCount + 2)) - { - EventTbl[ customEventCount].EventID = RCIN_DEVICE_ERR_EID; - EventTbl[customEventCount++].Mask = CFE_EVS_FIRST_16_STOP; - EventTbl[ customEventCount].EventID = RCIN_SYNC_ERR_EID; - EventTbl[customEventCount++].Mask = CFE_EVS_FIRST_16_STOP; - } - else - { - customEventCount = -1; - goto end_of_function; - } - -end_of_function: - - return (customEventCount); + return 0; } diff --git a/config/obc/cpd/target/apps/rcin/src/rcin_sbus.h b/config/obc/cpd/target/apps/rcin/src/rcin_sbus.h deleted file mode 100644 index 2f89c76ff..000000000 --- a/config/obc/cpd/target/apps/rcin/src/rcin_sbus.h +++ /dev/null @@ -1,400 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* 3. Neither the name Windhover Labs nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -* -*****************************************************************************/ - -#ifndef RCIN_SBUS_H -#define RCIN_SBUS_H - -#ifdef __cplusplus -extern "C" { -#endif - -/************************************************************************ -** Includes -*************************************************************************/ -#include "rcin_custom.h" -#include "px4_msgs.h" -#include -#include -#include -#include -#include -#include -#include -#include - -/************************************************************************ -** Local Defines -*************************************************************************/ -/** \brief I2C slave address of the TCA62724FMG LED driver in hex. -** -** \par Description: -** 8-bit address in little-endian format is 1010101(R/W) where R/W -** bit-0 indicates read (bit set to "H") or write mode (bit set to -** "L"). This is the 7-bit address without the R/W bit. -*/ -#define RGBLED_I2C_ADDRESS (0x55) - -/** \brief Device path. -** -** \par Description: -** The serial interface device path. -*/ -#define RCIN_DEVICE_PATH "/dev/ttyS2" - -/** \brief Input speed. -** -** \par Description: -** The serial input speed. -*/ -#define RCIN_SERIAL_INPUT_SPEED (100000) - -/** \brief Size of the raw RCIN message block. -** -** \par Description: -** The size of an SBUS packet. -*/ -#define RCIN_SERIAL_READ_SIZE (25) - -/** \brief SBUS channels -** -** \par Description: -** The SBUS channel count. -*/ -#define RCIN_SBUS_CHANNEL_COUNT (16) - -/* define range mapping here, -+100% -> 1000..2000 */ -/** \brief SBUS range minimum. */ -#define RCIN_SBUS_RANGE_MIN (200.0f) - -/** \brief SBUS range maximum. */ -#define RCIN_SBUS_RANGE_MAX (1800.0f) - -/** \brief Target range minimum. */ -#define RCIN_SBUS_TARGET_MIN (1000.0f) - -/** \brief Target range maximum. */ -#define RCIN_SBUS_TARGET_MAX (2000.0f) - -/* pre-calculate the floating point stuff as far as possible at compile time */ -/** \brief SBUS scale factor -** -** \par Description: -** The SBUS scale factor for value from SBUS conversion. -*/ -#define RCIN_SBUS_SCALE_FACTOR ((RCIN_SBUS_TARGET_MAX - RCIN_SBUS_TARGET_MIN) / (RCIN_SBUS_RANGE_MAX - RCIN_SBUS_RANGE_MIN)) - -/** \brief SBUS scale offset -** -** \par Description: -** The SBUS scale offset for value from SBUS conversion. -*/ -#define RCIN_SBUS_SCALE_OFFSET (int)(RCIN_SBUS_TARGET_MIN - (RCIN_SBUS_SCALE_FACTOR * RCIN_SBUS_RANGE_MIN + 0.5f)) - -/** \brief Max device path. -** -** \par Description: -** None. -*/ -#define RCIN_MAX_DEVICE_PATH OS_MAX_LOCAL_PATH_LEN - -/** \brief Retry attemps for interrupted ioctl calls. -** -** \par Limits: -** None. -*/ -#define RCIN_MAX_RETRY_ATTEMPTS (2) - -/** \brief Sleep time micro seconds for interrupted calls. -** -** \par Limits: -** None. -*/ -#define RCIN_MAX_RETRY_SLEEP_USEC (10) - -/* Timeout settings */ -/** \brief Wait time for data in seconds. -** -** \par Limits: -** None. -*/ -#define RCIN_BUFFER_FILL_TIMEOUT_SEC (0) - -/** \brief Wait time for data in microseconds. -** -** \par Limits: -** None. -*/ -#define RCIN_BUFFER_FILL_TIMEOUT_USEC (13000) - -/** \brief Streaming task priority -** -** \par Limits: -** 0 to MAX_PRIORITY (usually 255) -*/ -#define RCIN_STREAMING_TASK_PRIORITY (85) - -/** \brief RCIN shared data mutex name. */ -#define RCIN_MUTEX_NAME "RCIN_MUTEX" - -/** \brief Streaming task name -** -** \par Limits: -** OS_MAX_API_NAME -*/ -#define RCIN_STREAMING_TASK_NAME "RCIN_STREAM" - -/** \brief Maximum amount of errors before going to failsafe. */ -#define RCIN_MAX_ERROR_COUNT (25) - -/************************************************************************ -** Structure Declarations -*************************************************************************/ - -/** - * \brief Device status - */ -typedef enum -{ - /*! Status uninitialized */ - RCIN_CUSTOM_UNINITIALIZED = 0, - /*! Status initialized */ - RCIN_CUSTOM_INITIALIZED = 1, - /*! Status enabled */ - RCIN_CUSTOM_ENABLED = 2, - /*! Status not streaming */ - RCIN_CUSTOM_NOTSTREAMING = 3, - /*! Status streaming */ - RCIN_CUSTOM_STREAMING = 4, - /*! Status RC Lost */ - RCIN_CUSTOM_RC_LOST = 5 -} RCIN_Custom_Status_t; - - -/** - * \brief Device status - */ -typedef enum -{ - /*! State unknown */ - RCIN_PARSER_STATE_UNKNOWN = 0, - /*! State waiting for header */ - RCIN_PARSER_STATE_WAITING_FOR_HEADER = 1, - /*! State waiting for data */ - RCIN_PARSER_STATE_WAITING_FOR_DATA1 = 2, - RCIN_PARSER_STATE_WAITING_FOR_DATA2 = 3, - RCIN_PARSER_STATE_WAITING_FOR_DATA3 = 4, - RCIN_PARSER_STATE_WAITING_FOR_DATA4 = 5, - RCIN_PARSER_STATE_WAITING_FOR_DATA5 = 6, - RCIN_PARSER_STATE_WAITING_FOR_DATA6 = 7, - RCIN_PARSER_STATE_WAITING_FOR_DATA7 = 8, - RCIN_PARSER_STATE_WAITING_FOR_DATA8 = 9, - RCIN_PARSER_STATE_WAITING_FOR_DATA9 = 10, - RCIN_PARSER_STATE_WAITING_FOR_DATA10 = 11, - RCIN_PARSER_STATE_WAITING_FOR_DATA11 = 12, - RCIN_PARSER_STATE_WAITING_FOR_DATA12 = 13, - RCIN_PARSER_STATE_WAITING_FOR_DATA13 = 14, - RCIN_PARSER_STATE_WAITING_FOR_DATA14 = 15, - RCIN_PARSER_STATE_WAITING_FOR_DATA15 = 16, - RCIN_PARSER_STATE_WAITING_FOR_DATA16 = 17, - RCIN_PARSER_STATE_WAITING_FOR_DATA17 = 18, - RCIN_PARSER_STATE_WAITING_FOR_DATA18 = 19, - RCIN_PARSER_STATE_WAITING_FOR_DATA19 = 20, - RCIN_PARSER_STATE_WAITING_FOR_DATA20 = 21, - RCIN_PARSER_STATE_WAITING_FOR_DATA21 = 22, - RCIN_PARSER_STATE_WAITING_FOR_DATA22 = 23, - /*! State waiting for flags */ - RCIN_PARSER_STATE_WAITING_FOR_FLAGS = 24, - /*! State waiting for footer */ - RCIN_PARSER_STATE_WAITING_FOR_FOOTER = 25 -} RCIN_Custom_ParserState_t; - - -typedef struct -{ - /*! Device file descriptor */ - int DeviceFd; - /*! Path to device */ - char DevName[RCIN_MAX_DEVICE_PATH]; - /*! The terminal configuration */ - struct termios TerminalConfig; - /*! The current device status */ - RCIN_Custom_Status_t Status; - /*! The current device parser state */ - RCIN_Custom_ParserState_t ParserState; - /*! Flag to start and stop streaming */ - boolean ContinueFlag; - /*! Streaming task priority */ - uint8 Priority; - /*! Streaming child task identifier */ - uint32 ChildTaskID; - /*! Streaming task function pointer */ - CFE_ES_ChildTaskMainFuncPtr_t StreamingTask; - /*! RCInput message for storing SBUS data */ - PX4_InputRcMsg_t Measure; - /*! The shared data mutex */ - uint32 Mutex; - /*! Current raw SBUS data */ - uint8 sbusData[RCIN_SERIAL_READ_SIZE]; -} RCIN_AppCustomData_t; - - -/************************************************************************ -** External Global Variables -*************************************************************************/ - -/************************************************************************ -** Function Prototypes -*************************************************************************/ - -/************************************************************************/ -/** \brief ioctl with limited EINTR retry attempts. -** -** \par Description -** This function is a wrapper for ioctl with retry attempts added. -** -** \param [in] fh file descriptor. -** \param [in] request code. -** \param [in] arg pointer to a device specific struct. -** -** \returns -** usually 0 for success and -1 for failure, see ioctl man-page for -** more info. -** \endreturns -** -*************************************************************************/ -int32 RCIN_Ioctl(int fh, int request, void *arg); - - -/************************************************************************/ -/** \brief read with limited EINTR retry attempts. -** -** \par Description -** This function is a wrapper for read with retry attempts added. -** -** \param [in] fh file descriptor. -** \param [in] buffer. -** \param [in] size. -** -** \returns -** bytes read for success and -1 for failure, see read man-page for -** more info. -** \endreturns -** -*************************************************************************/ -int32 RCIN_Read(int fd, void *buf, size_t count); - - -/************************************************************************/ -/** \brief Determines if the maximum of event filters has been reached. -** -** \par Description -** This function checks if an index has reached the maximum -** number of events. -** -** \par Assumptions, External Events, and Notes: -** None -** -** \param [in] ind The current index to check. -** -** -** \returns boolean -** -*************************************************************************/ -boolean RCIN_Custom_Max_Events_Not_Reached(int32 ind); - - -/************************************************************************/ -/** \brief The stream task that actively reads the RCIN input stream. -** -** \par Description -** This thread runs until uninit. -** -*************************************************************************/ -void RCIN_Stream_Task(void); - - -/************************************************************************/ -/** \brief Attempt to read from the serial RCIN file descriptor. -** -** \par Description -** Attempts to read and parse the raw SBUS input stream. -** -*************************************************************************/ -void RCIN_Custom_Read(void); - - -/************************************************************************/ -/** \brief Called if the input stream is out of sync or a device read -** error occurs. -** -** \par Description -** This function keeps an internal counter that is incremented -** with every call. If the max error count is reached the failsafe -** and RC lost booleans in the RC_Input message are set. -** -** \par Assumptions, External Events, and Notes: -** None -** -** \param [in] notReset TRUE to not reset the counter, FALSE to -** reset the counter. -** -*************************************************************************/ -void RCIN_Custom_RC_Lost(boolean notReset); - - -/************************************************************************/ -/** \brief Translate raw SBUS data to channel pulse-position modulation -** values. -** -** \par Description -** This function converts the raw SBUS array to PPM (1000-2000) -** and populates the RC_Input message. -** -** \par Assumptions, External Events, and Notes: -** None -** -** \param [in] data The array of raw SBUS input data. -** -** \param [in] size The size of the array. -** -** -** \returns boolean TRUE for success, FALSE for failure. -** -*************************************************************************/ -boolean RCIN_Custom_PWM_Translate(uint8 *data, int size); - -#ifdef __cplusplus -} -#endif - -#endif /* RCIN_SBUS_H */ diff --git a/config/obc/cpd/target/apps/rgbled/src/rgbled_custom.c b/config/obc/cpd/target/apps/rgbled/src/rgbled_custom.c index 6cb048e2c..ad691f49b 100644 --- a/config/obc/cpd/target/apps/rgbled/src/rgbled_custom.c +++ b/config/obc/cpd/target/apps/rgbled/src/rgbled_custom.c @@ -38,61 +38,12 @@ ** Includes *************************************************************************/ #include "cfe.h" -#include "rgbled_driver.h" -#include "rgbled_events.h" -#include "rgbled_perfids.h" -#include "rgbled_platform_cfg.h" -#include -#include -#include -#include -#include -#include -#include +#include "rgbled_custom.h" /************************************************************************ ** Local Defines *************************************************************************/ -/************************************************************************ -** Local Structure Declarations -*************************************************************************/ -typedef enum { - -/** \brief 'RGBLED - ' -** \event 'RGBLED - ' -** -** \par Type: ERROR -** -** \par Cause: -** -** This event message is issued when a device resource encounters an -** error. -** -*/ - RGBLED_DEVICE_ERR_EID = RGBLED_EVT_CNT, - -/** \brief 'RGBLED - ' -** \event 'RGBLED - ' -** -** \par Type: Info -** -** \par Cause: -** -** This event message is issued when a device successfully complete a -** self test. -** -*/ - RGBLED_DEVICE_INF_EID, -/** \brief Number of custom events -** -** \par Limits: -** int32 -*/ - RGBLED_CUSTOM_EVT_CNT -} RGBLED_CustomEventIds_t; - - /************************************************************************ ** External Global Variables *************************************************************************/ @@ -100,7 +51,7 @@ typedef enum { /************************************************************************ ** Global Variables *************************************************************************/ -RGBLED_AppCustomData_t RGBLED_AppCustomData; + /************************************************************************ ** Local Variables @@ -109,453 +60,37 @@ RGBLED_AppCustomData_t RGBLED_AppCustomData; /************************************************************************ ** Local Function Definitions *************************************************************************/ -int32 RGBLED_Ioctl(int fh, int request, void *arg) -{ - int32 returnCode = 0; - uint32 i = 0; - - for (i=0; i < RGBLED_MAX_RETRY_ATTEMPTS; i++) - { - returnCode = ioctl(fh, request, arg); - - if (-1 == returnCode && EINTR == errno) - { - usleep(RGBLED_MAX_RETRY_SLEEP_USEC); - } - else - { - break; - } - } - - return (returnCode); -} void RGBLED_Custom_InitData(void) { - /* Set all struct zero values */ - bzero(&RGBLED_AppCustomData, sizeof(RGBLED_AppCustomData)); - strncpy(RGBLED_AppCustomData.DevName, RGBLED_DEVICE_PATH, RGBLED_MAX_DEVICE_PATH); - RGBLED_AppCustomData.SelfTestTask = RGBLED_Custom_SelfTest_Task; - return; } boolean RGBLED_Custom_Init(void) { - boolean returnBool = TRUE; - - RGBLED_AppCustomData.DeviceFd = open(RGBLED_DEVICE_PATH, O_RDWR); - - if (RGBLED_AppCustomData.DeviceFd < 0) - { - (void) CFE_EVS_SendEvent(RGBLED_DEVICE_ERR_EID, CFE_EVS_ERROR, - "RGBLED Device open errno: %i", errno); - returnBool = FALSE; - goto end_of_function; - } - else - { - RGBLED_AppCustomData.Status = RGBLED_CUSTOM_INITIALIZED; - } - - returnBool = RGBLED_Custom_GetSettings(); - if (FALSE == returnBool) - { - (void) CFE_EVS_SendEvent(RGBLED_DEVICE_ERR_EID, CFE_EVS_ERROR, - "RGBLED Device custom enable failed to get initial settings"); - goto end_of_function; - } - - returnBool = RGBLED_Custom_Enable(); - if (FALSE == returnBool) - { - (void) CFE_EVS_SendEvent(RGBLED_DEVICE_ERR_EID, CFE_EVS_ERROR, - "RGBLED Device custom enable failed errno: %i", errno); - goto end_of_function; - } - else - { - RGBLED_AppCustomData.Status = RGBLED_CUSTOM_ENABLED; - } - -end_of_function: - return (returnBool); -} - - -boolean RGBLED_Custom_Enable(void) -{ - boolean returnBool = FALSE; - uint8 settings = 0; - - /* Enable output */ - settings |= RGBLED_I2C_SET_ENABLE; - settings |= RGBLED_I2C_SET_NOT_POWERSAVE; - - uint8 data[2] = { RGBLED_I2C_SUB_ADDR_SETTINGS, settings }; - - returnBool = RGBLED_Custom_Send(data, sizeof(data)); - if(TRUE == returnBool) - { - RGBLED_AppCustomData.Settings.Enabled = TRUE; - RGBLED_AppCustomData.Settings.NotPowerSave = TRUE; - } - - returnBool = RGBLED_Custom_Validate(); - if(FALSE == returnBool) - { - (void) CFE_EVS_SendEvent(RGBLED_DEVICE_ERR_EID, CFE_EVS_ERROR, - "RGBLED device settings validation failed in custom enable"); - } - return (returnBool); -} - - -boolean RGBLED_Custom_Disable(void) -{ - boolean returnBool = FALSE; - uint8 settings = 0; - - uint8 data[2] = { RGBLED_I2C_SUB_ADDR_SETTINGS, settings }; - - returnBool = RGBLED_Custom_Send(data, sizeof(data)); - if(TRUE == returnBool) - { - RGBLED_AppCustomData.Settings.Enabled = FALSE; - RGBLED_AppCustomData.Settings.NotPowerSave = FALSE; - } - - returnBool = RGBLED_Custom_Validate(); - if(FALSE == returnBool) - { - (void) CFE_EVS_SendEvent(RGBLED_DEVICE_ERR_EID, CFE_EVS_ERROR, - "RGBLED device settings validation failed in custom disable"); - } - return (returnBool); -} - - -boolean RGBLED_Custom_GetSettings(void) -{ - boolean returnBool = TRUE; - boolean enabled = FALSE; - boolean notPowerSave = FALSE; - uint8 settings = 0; - uint8 redPWM = 0; - uint8 greenPWM = 0; - uint8 bluePWM = 0; - - /* The TCA62724FMG LED driver returns 2-bytes */ - uint8 Result[2] = {0, 0}; - - returnBool = RGBLED_Custom_Receive(Result, sizeof(Result)); - - if(FALSE == returnBool) - { - /* If receive was unsuccessful return FALSE */ - goto end_of_function; - } - - /* Settings are bits 7 - 4 of returned byte 0 */ - settings = Result[0] & 0xf0; - /* Blue LED duty cycle is bits 3 - 0 of returned byte 0 */ - bluePWM = Result[0] & 0x0f; - /* Green LED duty cycle is bits 7 - 4 of returned byte 1 */ - greenPWM = (Result[1] & 0xf0) >> 4; - /* Red LED duty cycle is bits 3 - 0 of returned byte 1 */ - redPWM = Result[1] & 0x0f; - - /* If settings bit 5 is set (1) output is enabled */ - /* if settings bit 4 is set (1) powersave mode is not set */ - if(48 == settings) - { - enabled = TRUE; - notPowerSave = TRUE; - } - else if(32 == settings) - { - enabled = TRUE; - } - else if(16 == settings) - { - notPowerSave = TRUE; - } - - RGBLED_AppCustomData.Settings.Enabled = enabled; - RGBLED_AppCustomData.Settings.NotPowerSave = notPowerSave; - RGBLED_AppCustomData.Settings.RedDutyCycle = redPWM; - RGBLED_AppCustomData.Settings.GreenDutyCycle = greenPWM; - RGBLED_AppCustomData.Settings.BlueDutyCycle = bluePWM; - -end_of_function: - return (returnBool); -} - - -boolean RGBLED_Custom_Validate(void) -{ - boolean returnBool = FALSE; - boolean enabled = FALSE; - boolean notPowerSave = FALSE; - uint8 settings = 0; - uint8 redPWM = 0; - uint8 greenPWM = 0; - uint8 bluePWM = 0; - - /* The TCA62724FMG LED driver returns 2-bytes */ - uint8 Result[2] = {0, 0}; - - returnBool = RGBLED_Custom_Receive(Result, sizeof(Result)); - - if(FALSE == returnBool) - { - /* If receive was unsuccessful return FALSE */ - goto end_of_function; - } - - /* Settings are bits 7 - 4 of returned byte 0 */ - settings = Result[0] & 0xf0; - /* Blue LED duty cycle is bits 3 - 0 of returned byte 0 */ - bluePWM = Result[0] & 0x0f; - /* Green LED duty cycle is bits 7 - 4 of returned byte 1 */ - greenPWM = (Result[1] & 0xf0) >> 4; - /* Red LED duty cycle is bits 3 - 0 of returned byte 1 */ - redPWM = Result[1] & 0x0f; - - /* If settings bit 5 is set (1) output is enabled */ - /* if settings bit 4 is set (1) powersave mode is not set */ - if(48 == settings) - { - enabled = TRUE; - notPowerSave = TRUE; - } - else if(32 == settings) - { - enabled = TRUE; - } - else if(16 == settings) - { - notPowerSave = TRUE; - } - - if( RGBLED_AppCustomData.Settings.Enabled == enabled && - RGBLED_AppCustomData.Settings.NotPowerSave == notPowerSave && - RGBLED_AppCustomData.Settings.RedDutyCycle == redPWM && - RGBLED_AppCustomData.Settings.GreenDutyCycle == greenPWM && - RGBLED_AppCustomData.Settings.BlueDutyCycle == bluePWM ) - { - returnBool = TRUE; - } - else - { - returnBool = FALSE; - } - -end_of_function: - return (returnBool); -} - - -boolean RGBLED_Custom_Send(uint8 *Buffer, size_t Length) -{ - int returnCode = 0; - boolean returnBool = FALSE; - struct i2c_msg Messages[1]; - struct i2c_rdwr_ioctl_data Packets; - - Messages[0].addr = RGBLED_I2C_ADDRESS; - Messages[0].flags = 0; - Messages[0].buf = Buffer; - Messages[0].len = Length; - - Packets.msgs = Messages; - Packets.nmsgs = 1; - - CFE_ES_PerfLogEntry(RGBLED_SEND_PERF_ID); - returnCode = RGBLED_Ioctl(RGBLED_AppCustomData.DeviceFd, I2C_RDWR, &Packets); - CFE_ES_PerfLogExit(RGBLED_SEND_PERF_ID); - - if (-1 == returnCode) - { - (void) CFE_EVS_SendEvent(RGBLED_DEVICE_ERR_EID, CFE_EVS_ERROR, - "RGBLED ioctl returned %i", errno); - returnBool = FALSE; - } - else - { - returnBool = TRUE; - } - - return (returnBool); -} - - -boolean RGBLED_Custom_Receive(uint8 *Buffer, size_t Length) -{ - int returnCode = 0; - boolean returnBool = FALSE; - struct i2c_msg messages[1]; - struct i2c_rdwr_ioctl_data Packets; - - messages[0].addr = RGBLED_I2C_ADDRESS; - messages[0].flags = RGBLED_I2C_M_READ; - messages[0].buf = Buffer; - messages[0].len = Length; - - Packets.msgs = messages; - Packets.nmsgs = 1; - - CFE_ES_PerfLogEntry(RGBLED_RECEIVE_PERF_ID); - returnCode = RGBLED_Ioctl(RGBLED_AppCustomData.DeviceFd, I2C_RDWR, &Packets); - CFE_ES_PerfLogExit(RGBLED_RECEIVE_PERF_ID); - - if (-1 == returnCode) - { - (void) CFE_EVS_SendEvent(RGBLED_DEVICE_ERR_EID, CFE_EVS_ERROR, - "RGBLED ioctl returned %i", errno); - returnBool = FALSE; - } - else - { - returnBool = TRUE; - } - - return (returnBool); + return TRUE; } boolean RGBLED_Custom_SetColor(uint8 Red, uint8 Green, uint8 Blue) { - boolean returnBool = FALSE; - /* Scale from 0-255 to 0-15 */ - uint8 redPWM = Red >> 4; - uint8 greenPWM = Green >> 4; - uint8 bluePWM = Blue >> 4; - - uint8 data[6] = { RGBLED_I2C_SUB_ADDR_PWM0, redPWM, - RGBLED_I2C_SUB_ADDR_PWM1, greenPWM, - RGBLED_I2C_SUB_ADDR_PWM2, bluePWM }; - returnBool = RGBLED_Custom_Send(&data[0], sizeof(data)); - - /* Set the current value */ - RGBLED_AppCustomData.Settings.RedDutyCycle = redPWM; - RGBLED_AppCustomData.Settings.GreenDutyCycle = greenPWM; - RGBLED_AppCustomData.Settings.BlueDutyCycle = bluePWM; - - returnBool = RGBLED_Custom_Validate(); - if(FALSE == returnBool) - { - (void) CFE_EVS_SendEvent(RGBLED_DEVICE_ERR_EID, CFE_EVS_ERROR, - "RGBLED device settings validation failed"); - } - - return (returnBool); + return TRUE; } boolean RGBLED_Custom_SelfTest(void) { - boolean returnBool = TRUE; - int32 returnCode = 0; - - /* Create the self-test task */ - returnCode = CFE_ES_CreateChildTask( - &RGBLED_AppCustomData.ChildTaskID, - RGBLED_SELFTEST_TASK_NAME, - RGBLED_AppCustomData.SelfTestTask, - 0, - CFE_ES_DEFAULT_STACK_SIZE, - RGBLED_SELFTEST_TASK_PRIORITY, - RGBLED_SELFTEST_TASK_FLAGS); - - if(returnCode != CFE_SUCCESS) - { - return FALSE; - } - return (returnBool); -} - - -void RGBLED_Custom_SelfTest_Task(void) -{ - uint32 iStatus = -1; - uint8 redPWM; - uint8 greenPWM; - uint8 bluePWM; - - /* Save the original settings */ - redPWM = RGBLED_AppCustomData.Settings.RedDutyCycle; - greenPWM = RGBLED_AppCustomData.Settings.GreenDutyCycle; - bluePWM = RGBLED_AppCustomData.Settings.BlueDutyCycle; - - iStatus = CFE_ES_RegisterChildTask(); - - if (iStatus == CFE_SUCCESS) - { - RGBLED_Custom_SetColor(255, 0, 0); - sleep(1); - - RGBLED_Custom_SetColor(0, 255, 0); - sleep(1); - RGBLED_Custom_SetColor(0, 0, 255); - sleep(1); - - RGBLED_Custom_SetColor(255, 255, 255); - sleep(1); - - RGBLED_Custom_SetColor(0, 0, 0); - sleep(1); - /* Restore the original settings */ - RGBLED_Custom_SetColor((redPWM << 4), (greenPWM << 4), (bluePWM << 4)); - - } - (void) CFE_EVS_SendEvent(RGBLED_DEVICE_INF_EID, CFE_EVS_INFORMATION, - "RGBLED Device completed self test"); - /* Set app status in none custom code back to previous value */ - RGBLED_SelfTest_Complete(); - - /* The child task was successfully created so exit from it */ - if (iStatus == CFE_SUCCESS) - { - CFE_ES_ExitChildTask(); - } + return TRUE; } - boolean RGBLED_Custom_Uninit(void) { - boolean returnBool = TRUE; - int returnCode = 0; - - returnBool = RGBLED_Custom_Disable(); - if(FALSE == returnBool) - { - (void) CFE_EVS_SendEvent(RGBLED_DEVICE_ERR_EID, CFE_EVS_ERROR, - "RGBLED Device disable error"); - } - else - { - RGBLED_AppCustomData.Status == RGBLED_CUSTOM_INITIALIZED; - } - - returnCode = close(RGBLED_AppCustomData.DeviceFd); - if (-1 == returnCode) - { - (void) CFE_EVS_SendEvent(RGBLED_DEVICE_ERR_EID, CFE_EVS_ERROR, - "RGBLED Device close errno: %i", errno); - returnBool = FALSE; - } - else - { - RGBLED_AppCustomData.Status = RGBLED_CUSTOM_UNINITIALIZED; - } - return (returnBool); + return TRUE; } diff --git a/config/obc/cpd/target/apps/ulr/ulr_custom.cpp b/config/obc/cpd/target/apps/ulr/ulr_custom.cpp index 5a87978a4..ef5abf842 100644 --- a/config/obc/cpd/target/apps/ulr/ulr_custom.cpp +++ b/config/obc/cpd/target/apps/ulr/ulr_custom.cpp @@ -1,139 +1,19 @@ #include "ulr_app.h" -#include -#include -#include -#include -#include -#include -#include - -#define ULR_PORT_SPEED (B115200) - -typedef struct -{ - int FD; -} ULR_CustomData_t; - -ULR_CustomData_t ULR_CustomData; int32 ULR::InitDevice(void) { - int32 iStatus = CFE_SUCCESS; - termios uart_config; - int termios_state; - - ULR_CustomData.FD = open(ULR_CUSTOM_PORT_PATH, O_RDWR | O_NOCTTY); - if (ULR_CustomData.FD < 0) - { - (void) CFE_EVS_SendEvent(ULR_CUSTOM_INIT_ERR_EID, CFE_EVS_ERROR, - "Failed to open device speed. errno=%u ('%s').", errno, - strerror(errno)); - iStatus = -1; - goto end_of_function; - } - - /* fill the struct for the new configuration */ - tcgetattr(ULR_CustomData.FD, &uart_config); - - // Input flags - Turn off input processing - // - // convert break to null byte, no CR to NL translation, - // no NL to CR translation, don't mark parity errors or breaks - // no input parity check, don't strip high bit off, - // no XON/XOFF software flow control - // - uart_config.c_iflag &= ~(IGNBRK | BRKINT | ICRNL | - INLCR | PARMRK | INPCK | ISTRIP | IXON); - - // - // Output flags - Turn off output processing - // - // no CR to NL translation, no NL to CR-NL translation, - // no NL to CR translation, no column 0 CR suppression, - // no Ctrl-D suppression, no fill characters, no case mapping, - // no local output processing - // - //// config.c_oflag &= ~(OCRNL | ONLCR | ONLRET | - // ONOCR | ONOEOT| OFILL | OLCUC | OPOST); - - /* no parity, one stop bit */ - uart_config.c_cflag &= ~(CSTOPB | PARENB); - - // - // No line processing - // - // echo off, echo newline off, canonical mode off, - // extended input processing off, signal chars off - // - uart_config.c_lflag &= ~(ECHO | ECHONL | ICANON | IEXTEN | ISIG); - - uart_config.c_oflag = 0; - - /* clear ONLCR flag (which appends a CR for every LF) */ - uart_config.c_oflag &= ~ONLCR; - - /* set baud rate */ - if ((termios_state = cfsetispeed(&uart_config, ULR_PORT_SPEED)) < 0) - { - (void) CFE_EVS_SendEvent(ULR_CUSTOM_INIT_ERR_EID, CFE_EVS_ERROR, - "Failed to set input speed. errno=%u ('%s').", errno, - strerror(errno)); - iStatus = -1; - goto end_of_function; - } - - if ((termios_state = cfsetospeed(&uart_config, ULR_PORT_SPEED)) < 0) - { - (void) CFE_EVS_SendEvent(ULR_CUSTOM_INIT_ERR_EID, CFE_EVS_ERROR, - "Failed to set output speed. errno=%u ('%s').", errno, - strerror(errno)); - iStatus = -1; - goto end_of_function; - } - - if ((termios_state = tcsetattr(ULR_CustomData.FD, TCSANOW, &uart_config)) < 0) - { - (void) CFE_EVS_SendEvent(ULR_CUSTOM_INIT_ERR_EID, CFE_EVS_ERROR, - "Failed to set port attributes. errno=%u ('%s').", errno, - strerror(errno)); - iStatus = -1; - goto end_of_function; - } - -end_of_function: - return iStatus; + return 0; } int32 ULR::ReadDevice(uint8 *Buffer, uint32 *Size) { - int32 iStatus = CFE_SUCCESS; - int32 bytesRead = 0; - - if((Buffer == 0) || (Size == 0)) - { - iStatus = -1; - goto end_of_function; - } - - bytesRead = read(ULR_CustomData.FD, (void*)&Buffer[0], (int)*Size); - if(bytesRead < 0) - { - iStatus = -1; - } - else - { - *Size = bytesRead; - } - -end_of_function: - return iStatus; + return CFE_SUCCESS; } void ULR::CloseDevice(void) { - close(ULR_CustomData.FD); } diff --git a/config/obc/cpd/target/cfe_es_startup.scr b/config/obc/cpd/target/cfe_es_startup.scr index d1dfc8f35..2cee54e1f 100644 --- a/config/obc/cpd/target/cfe_es_startup.scr +++ b/config/obc/cpd/target/cfe_es_startup.scr @@ -1,7 +1,10 @@ -CFE_LIB, /cf/apps/CFS_LIB.so, CFS_LibInit, CFS_LIB, 0, 0, 0x0, 0, 2; -CFE_LIB, /cf/apps/PRMLIB.so, PRMLIB_LibInit, PRMLIB, 0, 0, 0x0, 0, 2; -CFE_LIB, /cf/apps/PX4LIB.so, PX4LIB_LibInit, PX4LIB, 0, 0, 0x0, 0, 2; -CFE_APP, /cf/apps/AMC.so, AMC_AppMain, AMC, 43, 327680, 0x0, 0, 2; +CFE_LIB, /embedded/CFS_LIB.so, CFS_LibInit, CFS_LIB, 0, 0, 0x0, 0, 0; +CFE_LIB, /embedded/PRMLIB.so, PRMLIB_LibInit, PRMLIB, 0, 0, 0x0, 0, 0; +CFE_LIB, /embedded/PX4LIB.so, PX4LIB_LibInit, PX4LIB, 0, 0, 0x0, 0, 0; +CFE_APP, /embedded/CI.so, CI_AppMain, CI, 115, 32768, 0x0, 0, 0; +CFE_APP, /embedded/TO.so, TO_AppMain, TO, 124, 32768, 0x0, 0, 0; +CFE_APP, /embedded/SCH.so, SCH_AppMain, SCH, 34, 32768, 0x0, 0, 0; +!CFE_APP, /cf/apps/AMC.so, AMC_AppMain, AMC, 43, 327680, 0x0, 0, 2; CFE_APP, /cf/apps/SENS.so, SENS_AppMain, SENS, 52, 327680, 0x0, 0, 2; CFE_APP, /cf/apps/MPU9250.so, MPU9250_AppMain, MPU9250, 46, 327680, 0x0, 0, 2; CFE_APP, /cf/apps/HMC5883.so, HMC5883_AppMain, HMC5883, 49, 327680, 0x0, 0, 2; diff --git a/config/reference/target/CMakeLists.txt b/config/reference/target/CMakeLists.txt index 757b1f63c..53622b619 100644 --- a/config/reference/target/CMakeLists.txt +++ b/config/reference/target/CMakeLists.txt @@ -52,7 +52,7 @@ buildliner_add_app( buildliner_add_app( cf DEFINITION ${PROJECT_SOURCE_DIR}/apps/cf/fsw/for_build - ) +) buildliner_add_app( cs diff --git a/config/shared/apps/vc/src/vc_transmit_udp/vc_transmit_udp.c b/config/shared/apps/vc/src/vc_transmit_udp/vc_transmit_udp.c index d50985454..d6d92826b 100644 --- a/config/shared/apps/vc/src/vc_transmit_udp/vc_transmit_udp.c +++ b/config/shared/apps/vc/src/vc_transmit_udp/vc_transmit_udp.c @@ -248,7 +248,7 @@ int32 VC_CleanupCustom(void) } } } -return returnCode; + return returnCode; } From 9c3aa356f4dca89328d7e52cb0f5be02dd42380e Mon Sep 17 00:00:00 2001 From: lorenzo-gomez-windhover Date: Fri, 26 Feb 2021 12:45:20 -0600 Subject: [PATCH 183/370] -Added Linking Container Pattern -TODO:Update Macros for all displays --- .../Core/EVS/Scripts/Python/events_init.py | 69 ++++++------------- 1 file changed, 21 insertions(+), 48 deletions(-) diff --git a/core/base/tools/commander/workspace_template/Displays/Core/EVS/Scripts/Python/events_init.py b/core/base/tools/commander/workspace_template/Displays/Core/EVS/Scripts/Python/events_init.py index c207dba01..f5ea6fcac 100644 --- a/core/base/tools/commander/workspace_template/Displays/Core/EVS/Scripts/Python/events_init.py +++ b/core/base/tools/commander/workspace_template/Displays/Core/EVS/Scripts/Python/events_init.py @@ -4,20 +4,11 @@ """ # import java packages from org.csstudio.opibuilder.scriptUtil import PVUtil, ScriptUtil, FileUtil, WidgetUtil -from org.yamcs.studio.data import IPVListener -from java.lang import Runnable -from org.eclipse.swt.widgets import Display from org.csstudio.opibuilder.scriptUtil import YAMLUtil -from org.csstudio.opibuilder.properties import ActionsProperty, WidgetPropertyCategory -from org.csstudio.opibuilder.model import AbstractWidgetModel +from org.eclipse.swt.graphics import RGB + # import python packages import logging -import copy - - -# from org.csstudio.opibuilder.scriptUtil import - - def validate_opi(): @@ -33,8 +24,9 @@ def validate_opi(): app_name = display.getMacroValue("APP") project_name = display.getMacroValue("PROJECT_NAME") yaml_path = display.getMacroValue("YAML_PATH") + template_opi = display.getMacroValue("TEMPLATE_OPI") - if app_name is None or project_name is None or yaml_path is None: + if app_name is None or project_name is None or yaml_path is None or template_opi is None: is_valid = False return is_valid @@ -86,39 +78,11 @@ def get_events_from_yaml(module, yaml_path, logger): return events -def deep_copy_widget(widget): - """ - Makes a deep copy of widget and returns it. Essentially it makes a new widget and copies all of the properties. - """ - # FIXME: widget_id should not be an argument. We should be able to query this from widget object. - new_widget = WidgetUtil.createWidgetModel(widget.getTypeID()) - for property_id in widget.getAllPropertyIDs(): - new_widget.addProperty((widget.getProperty(property_id))) - - return new_widget - - -def get_new_event_record_container(event_label): - template_widget_recdord = display.getWidget("EventRecordTemplate").getWidgetModel() - new_event_record_container = WidgetUtil.createWidgetModel(widget.getTypeID()) - new_event_record_container = deep_copy_widget(template_widget_recdord) - for child in template_widget_recdord.getAllDescendants(): - if child.getPropertyValue("widget_type") == "Label": - child.setPropertyValue("text", event_label) - - for - - copy.deepcopy(child) - new_event_record_container.addChild(child, False) - - return new_event_record_container - - def main(): logging.basicConfig() logger = logging.getLogger('events_init') if validate_opi() is False: - logger.warning("OPI is not valid. Ensure that the APP, PROJECT_NAME and YAML_PATH macros have some kind of " + logger.warning("OPI is not valid. Ensure that the APP, PROJECT_NAME, TEMPLATE_OPI and YAML_PATH macros have some kind of " "value.") return -1 @@ -131,13 +95,22 @@ def main(): events = get_events_from_yaml(app_name, yaml_path, logger) for event in events: - event_label = "{}({})".format(event, events[event]) - new_container = get_new_event_record_container(event_label) - - display.getWidget("EventsTable").addChild(new_container) - - # Cleanup template once we are done. - display.getWidget("EventsTable").removeChild(display.getWidget("EventsTable").getWidget("EventRecordTemplate")) + event_label = "{}:{}".format(event, events[event]) + + new_event_record = WidgetUtil.createWidgetModel("org.csstudio.opibuilder.widgets.linkingContainer") + # TODO: Use the enumeration values from Studio to avoid magical strings + new_event_record.setPropertyValue("opi_file", display.getMacroValue("TEMPLATE_OPI")) + new_event_record.setPropertyValue("height", 55) + new_event_record.setPropertyValue("width", 685) + new_event_record.setPropertyValue("background_color", RGB(255, 255, 255)) + new_event_record.setPropertyValue("border_color", RGB(240, 240, 240)) + new_event_record.setPropertyValue("border_style", 1) + new_event_record.setPropertyValue("name", event) + + display.getWidget("EventsTable").addChild(new_event_record) + + # Access children of new_event_record only AFTER they are added to the display container + new_event_record.getChildByName("EventRecordTemplate").getChildByName("EventId").setPropertyValue("text", event_label) main() From 4aad846d57d049a40ad9823a72a922249fb01bbe Mon Sep 17 00:00:00 2001 From: lorenzo-gomez-windhover Date: Fri, 26 Feb 2021 13:41:36 -0600 Subject: [PATCH 184/370] -Added Macros for auto-generation of events to all apps -Add macros to Core --- .../Displays/Apps/CF/Main.opi | 68 ++++++++- .../Displays/Apps/CI/Main.opi | 68 ++++++++- .../Displays/Apps/CS/Main.opi | 68 ++++++++- .../Displays/Apps/DS/Main.opi | 68 ++++++++- .../Displays/Apps/FM/Main.opi | 68 ++++++++- .../Displays/Apps/HK/Main.opi | 68 ++++++++- .../Displays/Apps/HS/Main.opi | 70 ++++++++- .../Displays/Apps/LC/Main.opi | 68 ++++++++- .../Displays/Apps/MD/Main.opi | 68 ++++++++- .../Displays/Apps/MM/Main.opi | 68 ++++++++- .../Displays/Apps/SC/Main.opi | 68 ++++++++- .../Displays/Apps/TO/Main.opi | 136 +++++++++++++++++- 12 files changed, 858 insertions(+), 28 deletions(-) diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/CF/Main.opi b/core/base/tools/commander/workspace_template/Displays/Apps/CF/Main.opi index ecd5fb7dd..ea168a42f 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/CF/Main.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/CF/Main.opi @@ -10,7 +10,7 @@ - 1.5.3 + 1.5.4.202102122300 @@ -18,6 +18,9 @@ 170 true + cf + /Displays/Core/EVS/Events.opi + Displays CF - Main @@ -28,7 +31,7 @@ true true Display - 250 + 500 45ea5983:1502a6e6386:-7f06 -1 -1 @@ -459,4 +462,65 @@ $(pv_value) 144 64 + + + + + + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 20 + + Events + 0 + + + + + true + true + false + + + + Events + false + $(pv_name) +$(pv_value) + true + Action Button + 127 + -19107c2b:177da1db5df:-e22 + 306 + 47 + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/CI/Main.opi b/core/base/tools/commander/workspace_template/Displays/Apps/CI/Main.opi index f845d779f..801ca9100 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/CI/Main.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/CI/Main.opi @@ -10,7 +10,7 @@ - 1.5.3 + 1.5.4.202102122300 @@ -18,6 +18,9 @@ 200 true + ci + Displays/Core/EVS/Events.opi + Displays @@ -28,7 +31,7 @@ true true Display - 310 + 500 -33cb7c72:150aa4c347f:-76c2 -1 -1 @@ -664,4 +667,65 @@ $(pv_value) 62 168 + + + + + + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 20 + + Events + 0 + + + + + true + true + false + + + + Events + false + $(pv_name) +$(pv_value) + true + Action Button + 127 + -19107c2b:177da1db5df:-990 + 348 + 36 + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/CS/Main.opi b/core/base/tools/commander/workspace_template/Displays/Apps/CS/Main.opi index 774f715da..42c0b5f02 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/CS/Main.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/CS/Main.opi @@ -10,7 +10,7 @@ - 1.5.3 + 1.5.4.202102122300 @@ -18,6 +18,9 @@ 420 true + cs + /Displays/Core/EVS/Events.opi + Displays @@ -28,7 +31,7 @@ true true Display - 790 + 900 -33cb7c72:150aa4c347f:-76c2 -1 -1 @@ -4311,4 +4314,65 @@ $(pv_value) 464 72 + + + + + + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 20 + + Events + 0 + + + + + true + true + false + + + + Events + false + $(pv_name) +$(pv_value) + true + Action Button + 127 + -19107c2b:177da1db5df:-81a + 762 + 71 + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/DS/Main.opi b/core/base/tools/commander/workspace_template/Displays/Apps/DS/Main.opi index e2c36a914..7025d558f 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/DS/Main.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/DS/Main.opi @@ -10,7 +10,7 @@ - 1.5.3 + 1.5.4.202102122300 @@ -18,6 +18,9 @@ 420 true + ds + Displays + /Displays/Core/EVS/Events.opi @@ -28,7 +31,7 @@ true true Display - 510 + 700 -33cb7c72:150aa4c347f:-76c2 -1 -1 @@ -2636,4 +2639,65 @@ $(pv_value) 378 6 + + + + + + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 20 + + Events + 0 + + + + + true + true + false + + + + Events + false + $(pv_name) +$(pv_value) + true + Action Button + 127 + -19107c2b:177da1db5df:1a4 + 552 + 38 + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/FM/Main.opi b/core/base/tools/commander/workspace_template/Displays/Apps/FM/Main.opi index 1ef998304..924fbd5dd 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/FM/Main.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/FM/Main.opi @@ -10,7 +10,7 @@ - 1.5.3 + 1.5.4.202102122300 @@ -18,6 +18,9 @@ 400 true + fm + /Displays/Core/EVS/Events.opi + Displays @@ -28,7 +31,7 @@ true true Display - 400 + 600 -33cb7c72:150aa4c347f:-76c2 -1 -1 @@ -1148,4 +1151,65 @@ $(pv_value) 210 102 + + + + + + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 20 + + Events + 0 + + + + + true + true + false + + + + Events + false + $(pv_name) +$(pv_value) + true + Action Button + 127 + -19107c2b:177da1db5df:3aa + 438 + 57 + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/HK/Main.opi b/core/base/tools/commander/workspace_template/Displays/Apps/HK/Main.opi index 077dd543e..27d7ae883 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/HK/Main.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/HK/Main.opi @@ -10,7 +10,7 @@ - 1.5.3 + 1.5.4.202102122300 @@ -18,6 +18,9 @@ 220 true + hk + /Displays/Core/EVS/Events.opi + Displays @@ -28,7 +31,7 @@ true true Display - 300 + 600 -33cb7c72:150aa4c347f:-76c2 -1 -1 @@ -755,4 +758,65 @@ $(pv_value) 62 187 + + + + + + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 20 + + Events + 0 + + + + + true + true + false + + + + Events + false + $(pv_name) +$(pv_value) + true + Action Button + 127 + -19107c2b:177da1db5df:6d4 + 414 + 36 + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/HS/Main.opi b/core/base/tools/commander/workspace_template/Displays/Apps/HS/Main.opi index b4726ecaf..35110751c 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/HS/Main.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/HS/Main.opi @@ -10,14 +10,17 @@ - 1.5.3 + 1.5.4.202102122300 6 - 480 + 800 true + hs + Displays + /Displays/Core/EVS/Events.opi @@ -28,7 +31,7 @@ true true Display - 300 + 1000 -33cb7c72:150aa4c347f:-76c2 -1 -1 @@ -6915,4 +6918,65 @@ $(pv_value) 255 284 + + + + + + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 20 + + Events + 0 + + + + + true + true + false + + + + Events + false + $(pv_name) +$(pv_value) + true + Action Button + 127 + -19107c2b:177da1db5df:84c + 738 + 37 + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/LC/Main.opi b/core/base/tools/commander/workspace_template/Displays/Apps/LC/Main.opi index 8eea924ce..14dbe75e9 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/LC/Main.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/LC/Main.opi @@ -10,7 +10,7 @@ - 1.5.3 + 1.5.4.202102122300 @@ -18,6 +18,9 @@ 300 true + lc + /Displays/Core/EVS/Events.opi + Displays @@ -28,7 +31,7 @@ true true Display - 300 + 600 -33cb7c72:150aa4c347f:-76c2 -1 -1 @@ -1343,4 +1346,65 @@ $(pv_value) 55 90 + + + + + + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 20 + + Events + 0 + + + + + true + true + false + + + + Events + false + $(pv_name) +$(pv_value) + true + Action Button + 127 + -19107c2b:177da1db5df:adf + 402 + 36 + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/MD/Main.opi b/core/base/tools/commander/workspace_template/Displays/Apps/MD/Main.opi index 1873f0909..ac36d663c 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/MD/Main.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/MD/Main.opi @@ -10,7 +10,7 @@ - 1.5.3 + 1.5.4.202102122300 @@ -18,6 +18,9 @@ 300 true + md + /Displays/Core/EVS/Events.opi + Displays @@ -28,7 +31,7 @@ true true Display - 550 + 800 -33cb7c72:150aa4c347f:-76c2 -1 -1 @@ -2442,4 +2445,65 @@ $(pv_value) 372 115 + + + + + + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 20 + + Events + 0 + + + + + true + true + false + + + + Events + false + $(pv_name) +$(pv_value) + true + Action Button + 127 + -19107c2b:177da1db5df:d33 + 642 + 20 + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/MM/Main.opi b/core/base/tools/commander/workspace_template/Displays/Apps/MM/Main.opi index fbeeccab3..ae22d8802 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/MM/Main.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/MM/Main.opi @@ -10,7 +10,7 @@ - 1.5.3 + 1.5.4.202102122300 @@ -18,6 +18,9 @@ 360 true + mm + /Displays/Core/EVS/Events.opi + Displays @@ -28,7 +31,7 @@ true true Display - 390 + 700 -33cb7c72:150aa4c347f:-76c2 -1 -1 @@ -1581,4 +1584,65 @@ $(pv_value) 201 323 + + + + + + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 20 + + Events + 0 + + + + + true + true + false + + + + Events + false + $(pv_name) +$(pv_value) + true + Action Button + 127 + -19107c2b:177da1db5df:eb1 + 474 + 36 + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/SC/Main.opi b/core/base/tools/commander/workspace_template/Displays/Apps/SC/Main.opi index 44f3104fa..0454d1927 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/SC/Main.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/SC/Main.opi @@ -10,7 +10,7 @@ - 1.5.3 + 1.5.4.202102122300 @@ -18,6 +18,9 @@ 600 true + sc + /Displays/Core/EVS/Events.opi + Displays @@ -28,7 +31,7 @@ true true Display - 500 + 800 -33cb7c72:150aa4c347f:-76c2 -1 -1 @@ -3558,4 +3561,65 @@ $(pv_value) 317 230 + + + + + + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 20 + + Events + 0 + + + + + true + true + false + + + + Events + false + $(pv_name) +$(pv_value) + true + Action Button + 127 + -19107c2b:177da1db5df:10f3 + 624 + 41 + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/TO/Main.opi b/core/base/tools/commander/workspace_template/Displays/Apps/TO/Main.opi index aed3863b9..cff449319 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/TO/Main.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/TO/Main.opi @@ -10,14 +10,17 @@ - 1.5.3 + 1.5.4.202102122300 6 - 530 + 600 true + to + Displays + /Displays/Core/EVS/Events.opi @@ -28,7 +31,7 @@ true true Display - 300 + 600 -33cb7c72:150aa4c347f:-76c2 -1 -1 @@ -1804,7 +1807,7 @@ $(pv_value) 175 -10b748b0:17773fb054b:-75cd 66 - 474 + 493 @@ -1860,6 +1863,129 @@ $(pv_value) 175 -10b748b0:17773fb054b:-75c5 66 - 493 + 512 + + + + + + + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 20 + + ResetEventFilter + 0 + + + + + true + true + false + + + + Reset Event Filter + false + $(pv_name) +$(pv_value) + true + Action Button + 175 + -780e3ce9:177d07f82f5:-7d62 + 66 + 474 + + + + + + + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 20 + + Events + 0 + + + + + true + true + false + + + + Events + false + $(pv_name) +$(pv_value) + true + Action Button + 127 + -19107c2b:177da1db5df:1958 + 450 + 42 \ No newline at end of file From 6fcebbb28d4d528a13b464dd9592f554ebf01096 Mon Sep 17 00:00:00 2001 From: lorenzo-gomez-windhover Date: Fri, 26 Feb 2021 14:39:06 -0600 Subject: [PATCH 185/370] -Updated YAML path for events OPI --- .../Displays/Core/EVS/Events.opi | 235 +----------------- 1 file changed, 10 insertions(+), 225 deletions(-) diff --git a/core/base/tools/commander/workspace_template/Displays/Core/EVS/Events.opi b/core/base/tools/commander/workspace_template/Displays/Core/EVS/Events.opi index 0563ffa65..8ed2f81ad 100644 --- a/core/base/tools/commander/workspace_template/Displays/Core/EVS/Events.opi +++ b/core/base/tools/commander/workspace_template/Displays/Core/EVS/Events.opi @@ -15,10 +15,11 @@ 6 - 600 + 800 true - /Displays/Resources/wh_defs.yaml + /Displays/Resources/definitions.yaml + EventRecord.opi @@ -33,7 +34,7 @@ true true Display - 800 + 1200 -193d70a0:177d50fd41f:-7f32 -1 -1 @@ -55,7 +56,7 @@ - 470 + 750 false true @@ -73,10 +74,10 @@ false true Grouping Container - 686 + 1000 -19107c2b:177da1db5df:-7d44 - 83 - 143 + 0 + 37 @@ -166,222 +167,6 @@ -19107c2b:177da1db5df:-7d5f - - - - - - - - - 1 - 1 - true - false - - Default - - - - - 68 - false - - true - - EventRecordTemplate - - - true - true - false - - - true - - false - true - Grouping Container - 686 - -19107c2b:177da1db5df:-7c5e - 0 - 48 - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 2 - Label - - - true - true - false - - - Label - - true - 1 - true - Label - 223 - false - -19107c2b:177da1db5df:-7c24 - 0 - 15 - - - - - - :"); - -//var eventID = VTypeHelper.getDouble(display.getWidget('EventID').getPropertyValue("pv_value")); - -//Yamcs.issueCommand('/cfs/cfe_evs/ResetAppEventFilter', { -// 'Payload.AppName': appName, -// 'Payload.EventID': eventID});]]> - true - - - - false - false - - - - false - - - - 0 - 1 - true - - Default - - false - - - - 28 - ../../Resources/send.png - Action Button - 0 - - - - - true - true - false - - - - Reset Event - false - $(pv_name) -$(pv_value) - true - Action Button - 122 - -19107c2b:177da1db5df:-7c14 - 240 - 15 - - - - - - - true - - - - false - false - - - - false - - - - 0 - 1 - true - - Default - - false - - - - 28 - ../../Resources/send.png - Action Button - 0 - - - - - true - true - false - - - - Reset - false - $(pv_name) -$(pv_value) - true - Action Button - 90 - -19107c2b:177da1db5df:-7bc6 - 396 - 15 - - - true - 4 - Grid Layout - 3 - Grid Layout - -19107c2b:177da1db5df:-7c2d - - false 0 @@ -428,7 +213,7 @@ $(pv_value) 199 false -193d70a0:177d50fd41f:-7f0e - 210 - 66 + 217 + 7 \ No newline at end of file From fefb653537abb9fd7f7ecf55ef898e022ffc94be Mon Sep 17 00:00:00 2001 From: lorenzo-gomez-windhover Date: Fri, 26 Feb 2021 14:51:15 -0600 Subject: [PATCH 186/370] -Cleanup --- .../Displays/Core/EVS/Scripts/Python/events_init.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/core/base/tools/commander/workspace_template/Displays/Core/EVS/Scripts/Python/events_init.py b/core/base/tools/commander/workspace_template/Displays/Core/EVS/Scripts/Python/events_init.py index f5ea6fcac..f4ca56fdf 100644 --- a/core/base/tools/commander/workspace_template/Displays/Core/EVS/Scripts/Python/events_init.py +++ b/core/base/tools/commander/workspace_template/Displays/Core/EVS/Scripts/Python/events_init.py @@ -1,6 +1,8 @@ """ -This script auto-generates event ids rows for each event id found in the YAML file. It also generates all of the -buttons for each command of each event. +This script auto-generates event ids rows for each event id found in the YAML file. It essentially creates LinkingContainer[1] +widgets and uses EventRecord.opi to generates a container widget for each event in airliner confuration. + +[1]:https://docs.yamcs.org/yamcs-studio/ """ # import java packages from org.csstudio.opibuilder.scriptUtil import PVUtil, ScriptUtil, FileUtil, WidgetUtil From bd6cce24079d5712ea74e3cfa7a11d65abba3855 Mon Sep 17 00:00:00 2001 From: lorenzo-gomez-windhover Date: Fri, 26 Feb 2021 14:52:38 -0600 Subject: [PATCH 187/370] -Added event macros to core displays -Added EventRecord Template display --- .../Displays/Core/ES/Main.opi | 68 ++++- .../Displays/Core/ES/QueryOneApp.opi | 8 +- .../Displays/Core/EVS/AddFilter.opi | 5 +- .../Displays/Core/EVS/EventRecord.opi | 253 ++++++++++++++++++ .../Displays/Core/EVS/Events.opi | 89 ------ .../Displays/Core/EVS/Main.opi | 68 ++++- .../Displays/Core/SB/Main.opi | 68 ++++- .../Displays/Core/TBL/Main.opi | 68 ++++- .../Displays/Core/TIME/Main.opi | 68 ++++- 9 files changed, 592 insertions(+), 103 deletions(-) create mode 100644 core/base/tools/commander/workspace_template/Displays/Core/EVS/EventRecord.opi diff --git a/core/base/tools/commander/workspace_template/Displays/Core/ES/Main.opi b/core/base/tools/commander/workspace_template/Displays/Core/ES/Main.opi index f0450a556..b977ae95c 100644 --- a/core/base/tools/commander/workspace_template/Displays/Core/ES/Main.opi +++ b/core/base/tools/commander/workspace_template/Displays/Core/ES/Main.opi @@ -10,7 +10,7 @@ - 1.5.3 + 1.5.4.202102122300 @@ -18,6 +18,9 @@ 620 true + cfe_es + /Displays/Core/EVS/Events.opi + Displays CFE-ES - Main @@ -28,7 +31,7 @@ true true Display - 735 + 800 45ea5983:1502a6e6386:-7f06 -1 -1 @@ -4208,4 +4211,65 @@ $(pv_value) 624 12 + + + + + + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 20 + + Events + 0 + + + + + true + true + false + + + + Events + false + $(pv_name) +$(pv_value) + true + Action Button + 127 + -19107c2b:177da1db5df:1ae0 + 673 + 54 + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Core/ES/QueryOneApp.opi b/core/base/tools/commander/workspace_template/Displays/Core/ES/QueryOneApp.opi index b44341dee..455a38b69 100644 --- a/core/base/tools/commander/workspace_template/Displays/Core/ES/QueryOneApp.opi +++ b/core/base/tools/commander/workspace_template/Displays/Core/ES/QueryOneApp.opi @@ -10,7 +10,7 @@ - 1.5.3 + 1.5.4.202102122300 @@ -153,7 +153,7 @@ $(pv_value) - 25 + 32 CF CI @@ -173,6 +173,8 @@ $(pv_value) CFE_SB CFE_TBL CFE_TIME + SIM + SIM_LIB false inAppName @@ -187,7 +189,7 @@ $(pv_value) $(pv_name) $(pv_value) - false + true Combo 115 -3fca34e1:15096a78c93:-79bc diff --git a/core/base/tools/commander/workspace_template/Displays/Core/EVS/AddFilter.opi b/core/base/tools/commander/workspace_template/Displays/Core/EVS/AddFilter.opi index 2374af68d..dd2b30170 100644 --- a/core/base/tools/commander/workspace_template/Displays/Core/EVS/AddFilter.opi +++ b/core/base/tools/commander/workspace_template/Displays/Core/EVS/AddFilter.opi @@ -10,7 +10,7 @@ - 1.5.3 + 1.5.4.202102122300 @@ -18,6 +18,7 @@ 190 true + Displays CFE-EVS - Add Filter @@ -39,6 +40,8 @@ + + + + false + -1 + -1 + + false + + + + 1.5.4.202102122300 + + + + 6 + 70 + + true + + EventTemplate + + + true + true + true + true + true + Display + 1000 + -19107c2b:177da1db5df:-492a + -1 + -1 + + + + + + + + + 0 + 1 + true + false + + Default + + + + + 68 + false + + true + + EventRecordTemplate + + + true + true + false + + + true + + false + true + Grouping Container + 1000 + -19107c2b:177da1db5df:-48f7 + 0 + 0 + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + EventId + + + true + true + false + + + Label + + true + 1 + true + Label + 600 + false + -19107c2b:177da1db5df:-48f6 + 12 + 15 + + + + + + :"); + +//var eventID = VTypeHelper.getDouble(display.getWidget('EventID').getPropertyValue("pv_value")); + +//Yamcs.issueCommand('/cfs/cfe_evs/ResetAppEventFilter', { +// 'Payload.AppName': appName, +// 'Payload.EventID': eventID});]]> + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 28 + ../../Resources/send.png + Action Button + 0 + + + + + true + true + false + + + + Reset Event + false + $(pv_name) +$(pv_value) + true + Action Button + 122 + -19107c2b:177da1db5df:-48f5 + 684 + 11 + + + + + + + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 28 + ../../Resources/send.png + Action Button + 0 + + + + + true + true + false + + + + Reset + false + $(pv_name) +$(pv_value) + true + Action Button + 90 + -19107c2b:177da1db5df:-48f4 + 840 + 11 + + + true + 4 + Grid Layout + 3 + Grid Layout + -19107c2b:177da1db5df:-48f3 + + + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Core/EVS/Events.opi b/core/base/tools/commander/workspace_template/Displays/Core/EVS/Events.opi index 8ed2f81ad..2b46a227a 100644 --- a/core/base/tools/commander/workspace_template/Displays/Core/EVS/Events.opi +++ b/core/base/tools/commander/workspace_template/Displays/Core/EVS/Events.opi @@ -78,95 +78,6 @@ -19107c2b:177da1db5df:-7d44 0 37 - - - - - - - - - 1 - 1 - true - false - - Default - - - - - 49 - false - - true - - EventHeader - - - true - true - false - - - true - - false - true - Grouping Container - 685 - -19107c2b:177da1db5df:-7d63 - 0 - 0 - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 31 - 2 - Label - - - true - true - false - - - ID - - true - 1 - true - Label - 73 - false - -193d70a0:177d50fd41f:-7f23 - -6 - 6 - - - false - 0 - Grid Layout - 3 - Grid Layout - -19107c2b:177da1db5df:-7d5f - - false 0 diff --git a/core/base/tools/commander/workspace_template/Displays/Core/EVS/Main.opi b/core/base/tools/commander/workspace_template/Displays/Core/EVS/Main.opi index 741bdbe76..f0d77c482 100644 --- a/core/base/tools/commander/workspace_template/Displays/Core/EVS/Main.opi +++ b/core/base/tools/commander/workspace_template/Displays/Core/EVS/Main.opi @@ -10,7 +10,7 @@ - 1.5.3 + 1.5.4.202102122300 @@ -18,6 +18,9 @@ 460 true + cfe_evs + /Displays/Core/EVS/Events.opi + Displays CFE-EVS - Main @@ -28,7 +31,7 @@ true true Display - 430 + 600 45ea5983:1502a6e6386:-7f06 -1 -1 @@ -2102,4 +2105,65 @@ $(pv_value) 333 12 + + + + + + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 20 + + Events + 0 + + + + + true + true + false + + + + Events + false + $(pv_name) +$(pv_value) + true + Action Button + 127 + -19107c2b:177da1db5df:1eb7 + 462 + 55 + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Core/SB/Main.opi b/core/base/tools/commander/workspace_template/Displays/Core/SB/Main.opi index e05c79e14..4833b4983 100644 --- a/core/base/tools/commander/workspace_template/Displays/Core/SB/Main.opi +++ b/core/base/tools/commander/workspace_template/Displays/Core/SB/Main.opi @@ -10,7 +10,7 @@ - 1.5.3 + 1.5.4.202102122300 @@ -18,6 +18,9 @@ 350 true + cfe_sb + /Displays/Core/EVS/Events.opi + Displays CFE-SB - Main @@ -28,7 +31,7 @@ true true Display - 450 + 600 45ea5983:1502a6e6386:-7f06 -1 -1 @@ -1882,4 +1885,65 @@ $(pv_value) 342 6 + + + + + + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 20 + + Events + 0 + + + + + true + true + false + + + + Events + false + $(pv_name) +$(pv_value) + true + Action Button + 127 + -19107c2b:177da1db5df:2196 + 462 + 55 + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Core/TBL/Main.opi b/core/base/tools/commander/workspace_template/Displays/Core/TBL/Main.opi index 7be9c798d..1cd69a40e 100644 --- a/core/base/tools/commander/workspace_template/Displays/Core/TBL/Main.opi +++ b/core/base/tools/commander/workspace_template/Displays/Core/TBL/Main.opi @@ -10,7 +10,7 @@ - 1.5.3 + 1.5.4.202102122300 @@ -18,6 +18,9 @@ 475 true + cfe_tbl + /Displays/Core/EVS/Events.opi + Displays CFE-TBL - Main @@ -28,7 +31,7 @@ true true Display - 500 + 600 45ea5983:1502a6e6386:-7f06 -1 -1 @@ -2559,4 +2562,65 @@ $(pv_value) 396 6 + + + + + + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 20 + + Events + 0 + + + + + true + true + false + + + + Events + false + $(pv_name) +$(pv_value) + true + Action Button + 127 + -19107c2b:177da1db5df:2519 + 468 + 55 + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Core/TIME/Main.opi b/core/base/tools/commander/workspace_template/Displays/Core/TIME/Main.opi index 9eb78f18c..1936d1bb2 100644 --- a/core/base/tools/commander/workspace_template/Displays/Core/TIME/Main.opi +++ b/core/base/tools/commander/workspace_template/Displays/Core/TIME/Main.opi @@ -10,7 +10,7 @@ - 1.5.3 + 1.5.4.202102122300 @@ -18,6 +18,9 @@ 535 true + cfe_time + /Displays/Core/EVS/Events.opi + Displays @@ -28,7 +31,7 @@ true true Display - 440 + 600 45ea5983:1502a6e6386:-7f06 -1 -1 @@ -2500,4 +2503,65 @@ $(pv_value) 169 499 + + + + + + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 20 + + Events + 0 + + + + + true + true + false + + + + Events + false + $(pv_name) +$(pv_value) + true + Action Button + 127 + -19107c2b:177da1db5df:2767 + 450 + 55 + \ No newline at end of file From b4ac0d141861aec993115a21b5f7c48b57fabd77 Mon Sep 17 00:00:00 2001 From: lorenzo-gomez-windhover Date: Fri, 26 Feb 2021 17:12:28 -0600 Subject: [PATCH 188/370] -Added command script for deleting and reset event filters --- .../Core/EVS/Scripts/Python/DeleteEventFilter.py | 15 +++++++++++++++ .../Core/EVS/Scripts/Python/ResetEventFilter.py | 15 +++++++++++++++ 2 files changed, 30 insertions(+) create mode 100644 core/base/tools/commander/workspace_template/Displays/Core/EVS/Scripts/Python/DeleteEventFilter.py create mode 100644 core/base/tools/commander/workspace_template/Displays/Core/EVS/Scripts/Python/ResetEventFilter.py diff --git a/core/base/tools/commander/workspace_template/Displays/Core/EVS/Scripts/Python/DeleteEventFilter.py b/core/base/tools/commander/workspace_template/Displays/Core/EVS/Scripts/Python/DeleteEventFilter.py new file mode 100644 index 000000000..4afff9c18 --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/Core/EVS/Scripts/Python/DeleteEventFilter.py @@ -0,0 +1,15 @@ +from org.csstudio.opibuilder.scriptUtil import PVUtil +from org.yamcs.studio.data import VTypeHelper +from org.yamcs.studio.script import Yamcs + +event_id = VTypeHelper.getString(widget.getPropertyValue("pv_value")) +# NOTE: Not sure if using macros is a good idea when passing data between scripts as they are scoped to the OPI file +# it looks like and not the OPI instance. +app_name = display.getMacroValue("APP") + +Yamcs.issueCommand('/cfs/cfe_evs/DeleteAppEventFilter', + { + 'Payload.AppName': app_name, + 'Payload.EventID': event_id + } + ) diff --git a/core/base/tools/commander/workspace_template/Displays/Core/EVS/Scripts/Python/ResetEventFilter.py b/core/base/tools/commander/workspace_template/Displays/Core/EVS/Scripts/Python/ResetEventFilter.py new file mode 100644 index 000000000..d7e37e189 --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/Core/EVS/Scripts/Python/ResetEventFilter.py @@ -0,0 +1,15 @@ +from org.csstudio.opibuilder.scriptUtil import PVUtil +from org.yamcs.studio.data import VTypeHelper +from org.yamcs.studio.script import Yamcs + +event_id = VTypeHelper.getString(widget.getPropertyValue("pv_value")) +# NOTE: Not sure if using macros is a good idea when passing data between scripts as they are scoped to the OPI file +# it looks like and not the OPI instance. +app_name = display.getMacroValue("APP") + +Yamcs.issueCommand('/cfs/cfe_evs/ResetAppEventFilter', + { + 'Payload.AppName': app_name, + 'Payload.EventID': event_id + } + ) From b10d6352d02c14d462fa1c44407ff0c8c2a93d3a Mon Sep 17 00:00:00 2001 From: lorenzo-gomez-windhover Date: Fri, 26 Feb 2021 17:14:46 -0600 Subject: [PATCH 189/370] -Cleanup --- .../Displays/Core/EVS/Scripts/JS/events_init.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/base/tools/commander/workspace_template/Displays/Core/EVS/Scripts/JS/events_init.js b/core/base/tools/commander/workspace_template/Displays/Core/EVS/Scripts/JS/events_init.js index 4b66915f5..c17f7f5bd 100644 --- a/core/base/tools/commander/workspace_template/Displays/Core/EVS/Scripts/JS/events_init.js +++ b/core/base/tools/commander/workspace_template/Displays/Core/EVS/Scripts/JS/events_init.js @@ -30,7 +30,7 @@ if(app_name != null && app_name!="") action_property.setPropertyValue(xml_input_property); button_widget.addProperty(action_property); - //The "pv_value" property is used as the event id by "ResetEvent" script. This is becasuse non-container widgets such as ActionButton + //The "pv_value" property is used as the event id by "ResetEvent" script. This is because non-container widgets such as ActionButton //do not have macros of their own. However they do have pv_values one may use. button_widget.setPropertyValue("pv_value", i); button_widget.setPropertyValue("text", commands[j]); From 35364e7fd3801432d435c282550e98a17f3bd260 Mon Sep 17 00:00:00 2001 From: lorenzo-gomez-windhover Date: Fri, 26 Feb 2021 17:15:41 -0600 Subject: [PATCH 190/370] -Updated script for event record OPI template --- .../Displays/Core/EVS/EventRecord.opi | 50 ++++++------------- 1 file changed, 14 insertions(+), 36 deletions(-) diff --git a/core/base/tools/commander/workspace_template/Displays/Core/EVS/EventRecord.opi b/core/base/tools/commander/workspace_template/Displays/Core/EVS/EventRecord.opi index 8bfc1ad33..f43aa0742 100644 --- a/core/base/tools/commander/workspace_template/Displays/Core/EVS/EventRecord.opi +++ b/core/base/tools/commander/workspace_template/Displays/Core/EVS/EventRecord.opi @@ -114,25 +114,10 @@ - - - :"); - -//var eventID = VTypeHelper.getDouble(display.getWidget('EventID').getPropertyValue("pv_value")); - -//Yamcs.issueCommand('/cfs/cfe_evs/ResetAppEventFilter', { -// 'Payload.AppName': appName, -// 'Payload.EventID': eventID});]]> - true + + Scripts/Python/ResetEventFilter.py + + false @@ -157,7 +142,7 @@ ConsoleUtil.writeInfo("app_name---------->:"); 28 ../../Resources/send.png - Action Button + ResetFilter 0 @@ -169,7 +154,7 @@ ConsoleUtil.writeInfo("app_name---------->:"); - Reset Event + Reset Filter false $(pv_name) $(pv_value) @@ -182,18 +167,11 @@ $(pv_value) - - - - true + + Scripts/Python/DeleteEventFilter.py + + false @@ -218,7 +196,7 @@ ConsoleUtil.writeInfo("reset button"); 28 ../../Resources/send.png - Action Button + DeleteFilter 0 @@ -230,13 +208,13 @@ ConsoleUtil.writeInfo("reset button"); - Reset + Delete Filter false $(pv_name) $(pv_value) true Action Button - 90 + 150 -19107c2b:177da1db5df:-48f4 840 11 From bc090cf6dc3733410960f9e1961960a291c1294a Mon Sep 17 00:00:00 2001 From: lorenzo-gomez-windhover Date: Fri, 26 Feb 2021 17:17:42 -0600 Subject: [PATCH 191/370] -Updated init script for events commands auto-generation--it works now. --- .../Displays/Core/EVS/Scripts/Python/events_init.py | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/core/base/tools/commander/workspace_template/Displays/Core/EVS/Scripts/Python/events_init.py b/core/base/tools/commander/workspace_template/Displays/Core/EVS/Scripts/Python/events_init.py index f4ca56fdf..7e62fab9e 100644 --- a/core/base/tools/commander/workspace_template/Displays/Core/EVS/Scripts/Python/events_init.py +++ b/core/base/tools/commander/workspace_template/Displays/Core/EVS/Scripts/Python/events_init.py @@ -5,7 +5,7 @@ [1]:https://docs.yamcs.org/yamcs-studio/ """ # import java packages -from org.csstudio.opibuilder.scriptUtil import PVUtil, ScriptUtil, FileUtil, WidgetUtil +from org.csstudio.opibuilder.scriptUtil import PVUtil, ScriptUtil, FileUtil, WidgetUtil, DataUtil from org.csstudio.opibuilder.scriptUtil import YAMLUtil from org.eclipse.swt.graphics import RGB @@ -97,7 +97,7 @@ def main(): events = get_events_from_yaml(app_name, yaml_path, logger) for event in events: - event_label = "{}:{}".format(event, events[event]) + event_label = "{}:{}".format(event, events[event]['id']) new_event_record = WidgetUtil.createWidgetModel("org.csstudio.opibuilder.widgets.linkingContainer") # TODO: Use the enumeration values from Studio to avoid magical strings @@ -114,5 +114,12 @@ def main(): # Access children of new_event_record only AFTER they are added to the display container new_event_record.getChildByName("EventRecordTemplate").getChildByName("EventId").setPropertyValue("text", event_label) + # Create the variables we need to be able to access data from button scripts. + new_event_record.getChildByName("EventRecordTemplate").getChildByName("DeleteFilter").setPropertyValue("pv_value",str(events[event]['id'])) + new_event_record.getChildByName("EventRecordTemplate").getChildByName("ResetFilter").setPropertyValue("pv_value",str(events[event]['id'])) + + event_macros = DataUtil.createMacrosInput(False) + event_macros.put("EVENTID", str(events[event]['id'])) + new_event_record.getChildByName("EventRecordTemplate").setPropertyValue("macros", event_macros) main() From 63c16d781e5dd2a83faec107aff28735195b61c5 Mon Sep 17 00:00:00 2001 From: Mathew Benson Date: Sat, 27 Feb 2021 21:16:35 -0600 Subject: [PATCH 192/370] All unit tests are building now. --- apps/amc/fsw/src/amc_app.cpp | 6 +-- apps/amc/fsw/src/amc_config_utils.cpp | 1 - apps/amc/fsw/src/pwm_limit/pwm_limit.c | 19 +++----- apps/amc/fsw/src/pwm_limit/pwm_limit.h | 2 - apps/amc/fsw/unit_test/amc_app_test.cpp | 6 --- .../unit_test/stubs/ut_amc_custom_stubs.cpp | 4 -- apps/bat/fsw/src/bat_app.cpp | 1 - apps/bat/fsw/unit_test/bat_app_test.cpp | 5 --- .../unit_test/stubs/ut_bat_custom_stubs.cpp | 4 -- apps/ds/fsw/for_build/CMakeLists.txt | 1 - apps/ds/fsw/unit_test/ds_file_test.c | 3 +- apps/ds/fsw/unit_test/ds_msgids.h | 43 ------------------- apps/gps/fsw/src/gps_app.cpp | 1 - apps/gps/fsw/src/gps_config_utils.cpp | 2 - apps/hmc5883/fsw/src/hmc5883_app.cpp | 3 -- apps/hmc5883/fsw/src/hmc5883_config_utils.cpp | 2 - apps/ld/fsw/src/ld_app.cpp | 6 +-- apps/lgc/fsw/unit_test/lgc_app_test.cpp | 6 --- apps/mpc/fsw/unit_test/mpc_app_test.cpp | 6 --- apps/mpu9250/fsw/src/mpu9250_config_utils.cpp | 2 - apps/pe/fsw/src/pe_app.cpp | 2 - apps/pe/fsw/src/pe_app.h | 1 - apps/pe/fsw/src/sensors/gps.cpp | 1 - apps/qae/fsw/src/qae_config_utils.cpp | 2 +- apps/to/fsw/src/to_message_flow.c | 4 +- apps/to/fsw/src/to_output_queue.c | 2 +- apps/to/fsw/src/to_priority_queue.c | 8 ++-- apps/to/fsw/unit_test/to_app_test.c | 13 +++--- apps/ulr/fsw/unit_test/ulr_app_test.cpp | 6 --- .../target/apps/ds/tables/ds_filter_tbl.c | 17 +------- .../cpd/target/apps/rcin/src/rcin_custom.c | 2 +- .../ppd/target/apps/ds/tables/ds_filter_tbl.c | 17 +------- config/shared/apps/ds/tables/ds_filter_tbl.c | 17 +------- 33 files changed, 31 insertions(+), 184 deletions(-) delete mode 100644 apps/ds/fsw/unit_test/ds_msgids.h diff --git a/apps/amc/fsw/src/amc_app.cpp b/apps/amc/fsw/src/amc_app.cpp index 2c4e7ed97..7ada060a3 100644 --- a/apps/amc/fsw/src/amc_app.cpp +++ b/apps/amc/fsw/src/amc_app.cpp @@ -101,7 +101,6 @@ AMC::~AMC() int32 AMC::InitEvent(void) { int32 iStatus=CFE_SUCCESS; - uint32 ind = 0; /* Register the table with CFE */ iStatus = CFE_EVS_Register(0, 0, CFE_EVS_BINARY_FILTER); @@ -836,9 +835,9 @@ void AMC::ProcessAppCmds(CFE_SB_Msg_t* MsgPtr) /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ void AMC::ReportHousekeeping(void) { - uint32 i = 0; + uint32 i = 0; - HkTlm.Timestamp = CFE_SB_GetMsgTime((CFE_SB_MsgPtr_t)&ActuatorOutputs); + HkTlm.Timestamp = CFE_SB_GetMsgTime((CFE_SB_MsgPtr_t)&ActuatorOutputs); HkTlm.Count = ActuatorOutputs.Count; for(i = 0; i < PX4_ACTUATOR_OUTPUTS_MAX; ++i) @@ -997,7 +996,6 @@ void AMC::UpdateMotors(void) uint16 min_pwm[AMC_MAX_MOTOR_OUTPUTS]; uint16 max_pwm[AMC_MAX_MOTOR_OUTPUTS]; uint16 pwm[AMC_MAX_MOTOR_OUTPUTS]; - PX4_ActuatorOutputsMsg_t outputs; for (uint32 i = 0; i < AMC_MAX_MOTOR_OUTPUTS; i++) { diff --git a/apps/amc/fsw/src/amc_config_utils.cpp b/apps/amc/fsw/src/amc_config_utils.cpp index 46365659f..c4992e7e5 100644 --- a/apps/amc/fsw/src/amc_config_utils.cpp +++ b/apps/amc/fsw/src/amc_config_utils.cpp @@ -131,7 +131,6 @@ int32 AMC::InitConfigTbl(void) /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ int32 AMC::ValidatePwmCfgTbl(void* ConfigTblPtr) { - uint32 i = 0; int32 iStatus=0; AMC_PwmConfigTbl_t* AMC_PwmConfigTblPtr = (AMC_PwmConfigTbl_t*)(ConfigTblPtr); diff --git a/apps/amc/fsw/src/pwm_limit/pwm_limit.c b/apps/amc/fsw/src/pwm_limit/pwm_limit.c index 35e083c5f..fd3a19be5 100644 --- a/apps/amc/fsw/src/pwm_limit/pwm_limit.c +++ b/apps/amc/fsw/src/pwm_limit/pwm_limit.c @@ -40,6 +40,8 @@ * @author Lorenz Meier */ +#include "cfe.h" +#include "cfs_utils.h" #include "pwm_limit.h" #include #include @@ -76,8 +78,6 @@ void PwmLimit_Calc(const boolean armed, const boolean pre_armed, { if (armed) { - uint32 sec = 0; - uint32 ms = 0; uint64 now = 0; uint64 delta = 0; @@ -117,11 +117,13 @@ void PwmLimit_Calc(const boolean armed, const boolean pre_armed, case PWM_LIMIT_STATE_RAMP: { + uint64 delta = CFE_TIME_GetTimeInMicros() - limit->time_armed; + if (!armed) { limit->state = PWM_LIMIT_STATE_OFF; } - else if (hrt_elapsed_time(&limit->time_armed) >= RAMP_TIME_US) + else if (delta >= RAMP_TIME_US) { limit->state = PWM_LIMIT_STATE_ON; } @@ -180,7 +182,7 @@ void PwmLimit_Calc(const boolean armed, const boolean pre_armed, case PWM_LIMIT_STATE_RAMP: { uint32 i = 0; - hrt_abstime diff = hrt_elapsed_time(&limit->time_armed); + uint64 diff = CFE_TIME_GetTimeInMicros() - limit->time_armed; progress = diff * PROGRESS_INT_SCALING / RAMP_TIME_US; @@ -288,12 +290,3 @@ void PwmLimit_Calc(const boolean armed, const boolean pre_armed, } } -uint64 hrt_elapsed_time(uint64 *input) -{ - uint64 delta = 0; - - /* reset arming time, used for ramp timing */ - delta = CFE_TIME_GetTimeInMicros() - *input; - - return delta; -} diff --git a/apps/amc/fsw/src/pwm_limit/pwm_limit.h b/apps/amc/fsw/src/pwm_limit/pwm_limit.h index 12adeeb39..7ca654e7f 100644 --- a/apps/amc/fsw/src/pwm_limit/pwm_limit.h +++ b/apps/amc/fsw/src/pwm_limit/pwm_limit.h @@ -72,8 +72,6 @@ typedef struct uint64 time_armed; } PwmLimit_Data_t; -uint64 hrt_elapsed_time(uint64 *input); - void PwmLimit_Init(PwmLimit_Data_t *limit); void PwmLimit_Calc(const boolean armed, const boolean pre_armed, const unsigned num_channels, const uint16 reverse_mask, diff --git a/apps/amc/fsw/unit_test/amc_app_test.cpp b/apps/amc/fsw/unit_test/amc_app_test.cpp index 44fddd784..823212d73 100644 --- a/apps/amc/fsw/unit_test/amc_app_test.cpp +++ b/apps/amc/fsw/unit_test/amc_app_test.cpp @@ -222,14 +222,8 @@ void Test_AMC_InitData(void) { AMC oAMC; - /* Set a fail result */ - int32 expected = CFE_SUCCESS; - /* Execute the function being tested */ oAMC.InitData(); - - /* Verify results */ - //UtAssert_True (result == expected, "InitData"); } diff --git a/apps/amc/fsw/unit_test/stubs/ut_amc_custom_stubs.cpp b/apps/amc/fsw/unit_test/stubs/ut_amc_custom_stubs.cpp index 3d6b3731a..2983e460f 100644 --- a/apps/amc/fsw/unit_test/stubs/ut_amc_custom_stubs.cpp +++ b/apps/amc/fsw/unit_test/stubs/ut_amc_custom_stubs.cpp @@ -108,10 +108,6 @@ int32 AMC::InitDevice(void) void AMC::SetMotorOutputs(const uint16 *PWM) { - /* Check for specified return */ - if (Ut_AMC_Custom_UseReturnCode(UT_AMC_CUSTOM_SETMOTOROUTPUTS_INDEX)) - Ut_AMC_Custom_ReturnCodeTable[UT_AMC_CUSTOM_SETMOTOROUTPUTS_INDEX].Value; - /* Check for Function Hook */ if (Ut_AMC_Custom_HookTable.SetMotorOutputs) Ut_AMC_Custom_HookTable.SetMotorOutputs(PWM); diff --git a/apps/bat/fsw/src/bat_app.cpp b/apps/bat/fsw/src/bat_app.cpp index 3d635935b..60b953115 100644 --- a/apps/bat/fsw/src/bat_app.cpp +++ b/apps/bat/fsw/src/bat_app.cpp @@ -818,7 +818,6 @@ float BAT::GetFilteredThrottle(float Throttle) float BAT::GetDischarged(float Current) { CFE_TIME_SysTime_t zeroTime; - CFE_TIME_SysTime_t msgTime; zeroTime.Seconds = 0; zeroTime.Subseconds = 0; diff --git a/apps/bat/fsw/unit_test/bat_app_test.cpp b/apps/bat/fsw/unit_test/bat_app_test.cpp index 6e9e1494c..48684ea35 100644 --- a/apps/bat/fsw/unit_test/bat_app_test.cpp +++ b/apps/bat/fsw/unit_test/bat_app_test.cpp @@ -222,14 +222,9 @@ void Test_BAT_InitData(void) { BAT oBAT; - /* Set a fail result */ - int32 expected = CFE_SUCCESS; - /* Execute the function being tested */ oBAT.InitData(); - /* Verify results */ - //UtAssert_True (result == expected, "InitData"); } diff --git a/apps/bat/fsw/unit_test/stubs/ut_bat_custom_stubs.cpp b/apps/bat/fsw/unit_test/stubs/ut_bat_custom_stubs.cpp index 6a6cc1b43..b9c940d40 100644 --- a/apps/bat/fsw/unit_test/stubs/ut_bat_custom_stubs.cpp +++ b/apps/bat/fsw/unit_test/stubs/ut_bat_custom_stubs.cpp @@ -110,10 +110,6 @@ int32 BAT::InitDevice(void) void BAT::CloseDevice(void) { - /* Check for specified return */ - if (Ut_BAT_Custom_UseReturnCode(UT_BAT_CUSTOM_CLOSEDEVICE_INDEX)) - Ut_BAT_Custom_ReturnCodeTable[UT_BAT_CUSTOM_CLOSEDEVICE_INDEX].Value; - /* Check for Function Hook */ if (Ut_BAT_Custom_HookTable.CloseDevice) Ut_BAT_Custom_HookTable.InitDevice(); diff --git a/apps/ds/fsw/for_build/CMakeLists.txt b/apps/ds/fsw/for_build/CMakeLists.txt index e24fe178c..c80f93c0f 100644 --- a/apps/ds/fsw/for_build/CMakeLists.txt +++ b/apps/ds/fsw/for_build/CMakeLists.txt @@ -71,7 +71,6 @@ buildliner_add_app_unit_test(ds-ut ${CMAKE_CURRENT_SOURCE_DIR}/../unit_test/ds_cmds_test.h ${CMAKE_CURRENT_SOURCE_DIR}/../unit_test/ds_file_test.c ${CMAKE_CURRENT_SOURCE_DIR}/../unit_test/ds_file_test.h - ${CMAKE_CURRENT_SOURCE_DIR}/../unit_test/ds_msgids.h ${CMAKE_CURRENT_SOURCE_DIR}/../unit_test/ds_platform_cfg.h ${CMAKE_CURRENT_SOURCE_DIR}/../unit_test/ds_table_test.c ${CMAKE_CURRENT_SOURCE_DIR}/../unit_test/ds_table_test.h diff --git a/apps/ds/fsw/unit_test/ds_file_test.c b/apps/ds/fsw/unit_test/ds_file_test.c index 0891bd06c..547e10f07 100644 --- a/apps/ds/fsw/unit_test/ds_file_test.c +++ b/apps/ds/fsw/unit_test/ds_file_test.c @@ -511,6 +511,7 @@ void DS_FileCreateDest_Test_Error(void) DS_DestFileTable_t DestFileTable = {0}; char text[500] = {""}; char sequence[DS_SEQUENCE_DIGITS+1] = {""}; + uint32 i = 0; DS_AppData.DestFileTblPtr = &DestFileTable; @@ -528,7 +529,7 @@ void DS_FileCreateDest_Test_Error(void) /* Set to generate error message DS_CREATE_FILE_ERR_EID */ Ut_OSFILEAPI_SetReturnCode(UT_OSFILEAPI_CREAT_INDEX, -1, 1); - for(uint32 i = 0; i < DS_SEQUENCE_DIGITS; ++i) + for(i = 0; i < DS_SEQUENCE_DIGITS; ++i) { strcat(sequence, "0"); } diff --git a/apps/ds/fsw/unit_test/ds_msgids.h b/apps/ds/fsw/unit_test/ds_msgids.h deleted file mode 100644 index c3d95529c..000000000 --- a/apps/ds/fsw/unit_test/ds_msgids.h +++ /dev/null @@ -1,43 +0,0 @@ -/************************************************************************ -** File: -** $Id: ds_msgids.h 1.3 2017/01/25 12:29:18EST sstrege Exp $ -** -** Copyright (c) 2007-2014 United States Government as represented by the -** Administrator of the National Aeronautics and Space Administration. -** All Other Rights Reserved. -** -** This software was created at NASA's Goddard Space Flight Center. -** This software is governed by the NASA Open Source Agreement and may be -** used, distributed and modified only pursuant to the terms of that -** agreement. -** -** Purpose: -** The CFS Data Storage (DS) Application Message IDs header file -** -** Notes: -** -****************************************************************************/ -#ifndef _ds_msgids_h_ -#define _ds_msgids_h_ - -/************************** -** DS Command Message IDs -***********************/ - -#define DS_CMD_MID 0x18BB /**< \brief DS Ground Commands Message ID */ -#define DS_SEND_HK_MID 0x18BC /**< \brief DS Send Hk Data Cmd Message ID*/ - - -/*************************************** -** DS Telemetry Message IDs -***************************************/ - -#define DS_HK_TLM_MID 0x08B8 /**< \brief DS Hk Telemetry Message ID ****/ -#define DS_DIAG_TLM_MID 0x08B9 /**< \brief DS File Info Telemetry Message ID ****/ - - -#endif /* _ds_msgids_h_ */ - -/************************/ -/* End of File Comment */ -/************************/ diff --git a/apps/gps/fsw/src/gps_app.cpp b/apps/gps/fsw/src/gps_app.cpp index c575f029b..f04d7c652 100644 --- a/apps/gps/fsw/src/gps_app.cpp +++ b/apps/gps/fsw/src/gps_app.cpp @@ -314,7 +314,6 @@ int32 GPS::RcvSchPipeMsg(int32 iBlocking) { int32 iStatus = CFE_SUCCESS; CFE_SB_Msg_t* MsgPtr = NULL; - boolean returnBool = FALSE; CFE_SB_MsgId_t MsgId; /* Stop Performance Log entry */ diff --git a/apps/gps/fsw/src/gps_config_utils.cpp b/apps/gps/fsw/src/gps_config_utils.cpp index a4ea10733..1e571f981 100644 --- a/apps/gps/fsw/src/gps_config_utils.cpp +++ b/apps/gps/fsw/src/gps_config_utils.cpp @@ -97,11 +97,9 @@ int32 GPS::InitConfigTbl() int32 GPS::ValidateConfigTbl(void* ConfigTblPtr) { int32 iStatus=0; - GPS_ConfigTbl_t* GPS_ConfigTblPtr = (GPS_ConfigTbl_t*)(ConfigTblPtr); /* TODO: Add validation code here. */ -GPS_ValidateConfigTbl_Exit_Tag: return iStatus; } diff --git a/apps/hmc5883/fsw/src/hmc5883_app.cpp b/apps/hmc5883/fsw/src/hmc5883_app.cpp index 40f2e90d6..4a39bc730 100644 --- a/apps/hmc5883/fsw/src/hmc5883_app.cpp +++ b/apps/hmc5883/fsw/src/hmc5883_app.cpp @@ -790,9 +790,6 @@ boolean HMC5883::SelfCalibrate(HMC5883_CalibrationMsg_t *Calibration) boolean returnBool = FALSE; boolean rangeSet = FALSE; boolean configSet = FALSE; - boolean xNeg = FALSE; - boolean yNeg = FALSE; - boolean zNeg = FALSE; /* expected axis scaling. The datasheet says that 766 will * be places in the X and Y axes and 713 in the Z diff --git a/apps/hmc5883/fsw/src/hmc5883_config_utils.cpp b/apps/hmc5883/fsw/src/hmc5883_config_utils.cpp index 5a3ae8ad7..65dd57cc7 100644 --- a/apps/hmc5883/fsw/src/hmc5883_config_utils.cpp +++ b/apps/hmc5883/fsw/src/hmc5883_config_utils.cpp @@ -104,11 +104,9 @@ int32 HMC5883::InitConfigTbl() int32 HMC5883::ValidateConfigTbl(void* ConfigTblPtr) { int32 iStatus = 0; - HMC5883_ConfigTbl_t* HMC5883_ConfigTblPtr = (HMC5883_ConfigTbl_t*)(ConfigTblPtr); /* TODO: Add validation code here. */ -HMC5883_ValidateConfigTbl_Exit_Tag: return (iStatus); } diff --git a/apps/ld/fsw/src/ld_app.cpp b/apps/ld/fsw/src/ld_app.cpp index ef8bfc289..f993a84f1 100644 --- a/apps/ld/fsw/src/ld_app.cpp +++ b/apps/ld/fsw/src/ld_app.cpp @@ -340,6 +340,8 @@ int32 LD::InitApp() int32 iStatus = CFE_SUCCESS; int8 hasEvents = 0; + InitData(); + iStatus = InitEvent(); if (iStatus != CFE_SUCCESS) { @@ -358,8 +360,6 @@ int32 LD::InitApp() goto LD_InitApp_Exit_Tag; } - InitData(); - iStatus = InitConfigTbl(); if (iStatus != CFE_SUCCESS) { @@ -1114,8 +1114,6 @@ void LD::Execute() publish_counter += 1; } - uint64 now = CFE_TIME_GetTimeInMicros(); - UpdateState(); float prev_altitude_max = altitude_max; diff --git a/apps/lgc/fsw/unit_test/lgc_app_test.cpp b/apps/lgc/fsw/unit_test/lgc_app_test.cpp index 9baf0744d..89aa8f244 100644 --- a/apps/lgc/fsw/unit_test/lgc_app_test.cpp +++ b/apps/lgc/fsw/unit_test/lgc_app_test.cpp @@ -222,14 +222,8 @@ void Test_LGC_InitData(void) { LGC oLGC; - /* Set a fail result */ - int32 expected = CFE_SUCCESS; - /* Execute the function being tested */ oLGC.InitData(); - - /* Verify results */ - //UtAssert_True (result == expected, "InitData"); } diff --git a/apps/mpc/fsw/unit_test/mpc_app_test.cpp b/apps/mpc/fsw/unit_test/mpc_app_test.cpp index 2a24c1bd7..b01615e87 100644 --- a/apps/mpc/fsw/unit_test/mpc_app_test.cpp +++ b/apps/mpc/fsw/unit_test/mpc_app_test.cpp @@ -227,16 +227,10 @@ void Test_MPC_InitData(void) { MPC oMPC; - /* Set a fail result */ - int32 expected = CFE_SUCCESS; - oMPC.InitConfigTbl(); /* Execute the function being tested */ oMPC.InitData(); - - /* Verify results */ - //UtAssert_True (result == expected, "InitData"); } diff --git a/apps/mpu9250/fsw/src/mpu9250_config_utils.cpp b/apps/mpu9250/fsw/src/mpu9250_config_utils.cpp index e5c95b301..aa8f8adde 100644 --- a/apps/mpu9250/fsw/src/mpu9250_config_utils.cpp +++ b/apps/mpu9250/fsw/src/mpu9250_config_utils.cpp @@ -97,11 +97,9 @@ int32 MPU9250::InitConfigTbl() int32 MPU9250::ValidateConfigTbl(void* ConfigTblPtr) { int32 iStatus=0; - MPU9250_ConfigTbl_t* MPU9250_ConfigTblPtr = (MPU9250_ConfigTbl_t*)(ConfigTblPtr); /* TODO: Add validation code here. */ -MPU9250_ValidateConfigTbl_Exit_Tag: return (iStatus); } diff --git a/apps/pe/fsw/src/pe_app.cpp b/apps/pe/fsw/src/pe_app.cpp index 454e89e22..02b3e69a0 100644 --- a/apps/pe/fsw/src/pe_app.cpp +++ b/apps/pe/fsw/src/pe_app.cpp @@ -700,7 +700,6 @@ int32 PE::InitApp() int32 PE::RcvSchPipeMsg(int32 iBlocking) { int32 iStatus=CFE_SUCCESS; - uint64 baroTimestamp = 0; CFE_SB_Msg_t* MsgPtr=NULL; CFE_SB_MsgId_t MsgId; @@ -1240,7 +1239,6 @@ void PE::ReportHousekeeping() /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ void PE::SendVehicleLocalPositionMsg() { - float alt = 0.0f; float vxy_stddev = 0.0f; float epv = 0.0f; float eph = 0.0f; diff --git a/apps/pe/fsw/src/pe_app.h b/apps/pe/fsw/src/pe_app.h index d9ed9712c..63a822f85 100644 --- a/apps/pe/fsw/src/pe_app.h +++ b/apps/pe/fsw/src/pe_app.h @@ -85,7 +85,6 @@ extern "C" { #include "math/Euler.hpp" #include "math/Dcm.hpp" #include "geo/geo.h" -#include #include diff --git a/apps/pe/fsw/src/sensors/gps.cpp b/apps/pe/fsw/src/sensors/gps.cpp index 996d8861b..385e97a56 100644 --- a/apps/pe/fsw/src/sensors/gps.cpp +++ b/apps/pe/fsw/src/sensors/gps.cpp @@ -138,7 +138,6 @@ int PE::gpsMeasure(math::Vector6F &y) void PE::gpsCorrect() { CFE_ES_PerfLogEntry(PE_SENSOR_GPS_PERF_ID); - int i = 0; /* measure */ if (gpsMeasure(m_GPS.y_global) != CFE_SUCCESS) diff --git a/apps/qae/fsw/src/qae_config_utils.cpp b/apps/qae/fsw/src/qae_config_utils.cpp index 0fbb81cc2..b7f8704a0 100644 --- a/apps/qae/fsw/src/qae_config_utils.cpp +++ b/apps/qae/fsw/src/qae_config_utils.cpp @@ -142,13 +142,13 @@ int32 QAE::ValidateConfigTbl(void* ConfigTblPtr) valid_bool = FALSE; } -QAE_ValidateConfigTbl_Exit_Tag: if(FALSE == valid_bool) { (void) CFE_EVS_SendEvent(QAE_CFGTBL_VALIDATION_ERR_EID, CFE_EVS_ERROR, "Config params table validation error"); iStatus = -1; } + return (iStatus); } diff --git a/apps/to/fsw/src/to_message_flow.c b/apps/to/fsw/src/to_message_flow.c index 11e20e28b..539616b7d 100644 --- a/apps/to/fsw/src/to_message_flow.c +++ b/apps/to/fsw/src/to_message_flow.c @@ -73,7 +73,7 @@ int32 TO_MessageFlow_Buildup(TO_ChannelData_t *channel) */ (void) CFE_EVS_SendEvent(TO_SUBSCRIBE_ERR_EID, CFE_EVS_ERROR, - "Message flow failed to subscribe to (0x%08X) on channel %d. (%ld)", + "Message flow failed to subscribe to (0x%08X) on channel %d. (%llu)", channel->ConfigTblPtr->MessageFlow[i].MsgId, channel->channelIdx, status); @@ -120,7 +120,7 @@ int32 TO_MessageFlow_TeardownAll(TO_ChannelData_t *channel) */ (void) CFE_EVS_SendEvent(TO_UNSUBSCRIBE_ERR_EID, CFE_EVS_ERROR, - "Message flow failed to unsubscribe from 0x%04x on channel %d. (%ld)", + "Message flow failed to unsubscribe from 0x%04x on channel %d. (%llu)", channel->ConfigTblPtr->MessageFlow[i].MsgId, channel->channelIdx, status); diff --git a/apps/to/fsw/src/to_output_queue.c b/apps/to/fsw/src/to_output_queue.c index 4f7ea09e9..a632cffdb 100644 --- a/apps/to/fsw/src/to_output_queue.c +++ b/apps/to/fsw/src/to_output_queue.c @@ -63,7 +63,7 @@ int32 TO_OutputQueue_Buildup(TO_ChannelData_t* channel) { (void) CFE_EVS_SendEvent(TO_CONFIG_TABLE_ERR_EID, CFE_EVS_ERROR, - "Failed to create '%s' output channel queue for channel %d. err=%ld", + "Failed to create '%s' output channel queue for channel %d. err=%llu", channel->ChannelName, channel->channelIdx, status); channel->OutputQueue.OSALQueueID = OS_MAX_QUEUES; diff --git a/apps/to/fsw/src/to_priority_queue.c b/apps/to/fsw/src/to_priority_queue.c index 61095f96c..c864aa26b 100644 --- a/apps/to/fsw/src/to_priority_queue.c +++ b/apps/to/fsw/src/to_priority_queue.c @@ -92,7 +92,7 @@ int32 TO_PriorityQueue_BuildupAll(TO_ChannelData_t *channel) { (void) CFE_EVS_SendEvent(TO_PQUEUE_MISSING_TBL_ERR_EID, CFE_EVS_ERROR, - "Failed to create priority queues on channel %d, missing table.", + "Failed to create priority queues on channel %llu, missing table.", channel->channelIdx); return TO_NO_TABLE_ERR; } @@ -123,11 +123,11 @@ int32 TO_PriorityQueue_BuildupAll(TO_ChannelData_t *channel) */ (void) CFE_EVS_SendEvent(TO_PQUEUE_CREATE_ERR_EID, CFE_EVS_ERROR, - "Failed to create '%s' priority queue #%u on channel %d. (%i)", + "Failed to create '%s' priority queue #%llu on channel %llu. (%llu)", channel->ChannelName, - (unsigned int)i, + i, channel->channelIdx, - (int)status); + status); channel->DumpTbl.PriorityQueue[i].OSALQueueID = OS_MAX_QUEUES; } diff --git a/apps/to/fsw/unit_test/to_app_test.c b/apps/to/fsw/unit_test/to_app_test.c index 242fbcc7b..1086d0506 100644 --- a/apps/to/fsw/unit_test/to_app_test.c +++ b/apps/to/fsw/unit_test/to_app_test.c @@ -1425,11 +1425,12 @@ void Test_TO_ProcessNewAppCmds_QueryOutputChannel_InvalidCmdLength(void) */ void Test_TO_ProcessNewAppCmds_SendDiag_Success(void) { - TO_NoArgCmd_t InSchMsg; - TO_SendDiagCmd_t InCmd; - int32 DataPipe; - int32 CmdPipe; - uint8 ChannelIdx = 0; + TO_NoArgCmd_t InSchMsg; + TO_SendDiagCmd_t InCmd; + int32 DataPipe; + int32 CmdPipe; + uint8 ChannelIdx = 0; + int32 i=0; /* The following will emulate behavior of receiving a SCH message to WAKEUP, and gives it a command to process. */ @@ -1460,7 +1461,7 @@ void Test_TO_ProcessNewAppCmds_SendDiag_Success(void) { int32 numMsgFlowPackets = (int32)ceil((double)TO_MAX_MESSAGE_FLOWS/TO_MSG_FLOW_PKT_LIMIT); int32 msgFlowPacketCount = 0; - for(int32 i=0; i Date: Sun, 28 Feb 2021 19:58:15 -0600 Subject: [PATCH 193/370] Fixed multiple build warnings and most failed unit tests. --- apps/cs/fsw/src/cs_table_processing.c | 6 +- apps/ds/fsw/unit_test/ds_app_test.c | 6 +- apps/md/fsw/src/md_dwell_tbl.c | 9 +- apps/mpc/fsw/src/mpc_app.cpp | 9 +- apps/mpc/fsw/src/mpc_config_utils.cpp | 146 ++++++++++++------ apps/mpc/fsw/src/mpc_tbldefs.h | 10 +- apps/ms5611/fsw/src/ms5611_config_utils.cpp | 1 - apps/nav/fsw/src/nav_app.cpp | 7 - .../px4lib/fsw/public_inc/math/Matrix10F1.hpp | 6 +- .../fsw/public_inc/math/Matrix10F10.hpp | 6 +- .../px4lib/fsw/public_inc/math/Matrix10F2.hpp | 6 +- .../px4lib/fsw/public_inc/math/Matrix10F3.hpp | 6 +- .../px4lib/fsw/public_inc/math/Matrix10F6.hpp | 6 +- apps/px4lib/fsw/public_inc/math/Matrix1F1.hpp | 6 +- .../px4lib/fsw/public_inc/math/Matrix1F10.hpp | 6 +- apps/px4lib/fsw/public_inc/math/Matrix1F6.hpp | 6 +- .../px4lib/fsw/public_inc/math/Matrix2F10.hpp | 6 +- .../px4lib/fsw/public_inc/math/Matrix3F10.hpp | 6 +- apps/px4lib/fsw/public_inc/math/Matrix4F4.hpp | 6 +- apps/px4lib/fsw/public_inc/math/Matrix6F1.hpp | 6 +- .../px4lib/fsw/public_inc/math/Matrix6F10.hpp | 6 +- apps/px4lib/fsw/public_inc/math/Matrix6F6.hpp | 6 +- apps/px4lib/fsw/public_inc/math/Vector10F.hpp | 6 +- apps/px4lib/fsw/public_inc/math/Vector1F.hpp | 6 +- apps/px4lib/fsw/public_inc/math/Vector2F.hpp | 6 +- apps/px4lib/fsw/public_inc/math/Vector6F.hpp | 6 +- apps/px4lib/fsw/src/math/Matrix10F1.cpp | 10 +- apps/px4lib/fsw/src/math/Matrix10F10.cpp | 28 ++-- apps/px4lib/fsw/src/math/Matrix10F2.cpp | 8 +- apps/px4lib/fsw/src/math/Matrix10F3.cpp | 8 +- apps/px4lib/fsw/src/math/Matrix10F6.cpp | 8 +- apps/px4lib/fsw/src/math/Matrix1F1.cpp | 8 +- apps/px4lib/fsw/src/math/Matrix1F10.cpp | 12 +- apps/px4lib/fsw/src/math/Matrix1F2.cpp | 8 +- apps/px4lib/fsw/src/math/Matrix1F3.cpp | 8 +- apps/px4lib/fsw/src/math/Matrix1F6.cpp | 12 +- apps/px4lib/fsw/src/math/Matrix2F10.cpp | 8 +- apps/px4lib/fsw/src/math/Matrix2F2.cpp | 8 +- apps/px4lib/fsw/src/math/Matrix3F10.cpp | 9 +- apps/px4lib/fsw/src/math/Matrix3F3.cpp | 8 +- apps/px4lib/fsw/src/math/Matrix4F4.cpp | 8 +- apps/px4lib/fsw/src/math/Matrix6F1.cpp | 8 +- apps/px4lib/fsw/src/math/Matrix6F10.cpp | 8 +- apps/px4lib/fsw/src/math/Matrix6F6.cpp | 22 +-- apps/px4lib/fsw/src/math/Vector10F.cpp | 4 +- apps/px4lib/fsw/src/math/Vector1F.cpp | 4 +- apps/px4lib/fsw/src/math/Vector2F.cpp | 4 +- apps/px4lib/fsw/src/math/Vector3F.cpp | 5 +- apps/px4lib/fsw/src/math/Vector4F.cpp | 4 +- apps/px4lib/fsw/src/math/Vector6F.cpp | 4 +- apps/px4lib/fsw/unit_test/Matrix1F6_test.cpp | 8 +- apps/sch/fsw/src/sch_app.c | 5 - apps/to/fsw/src/to_message_flow.c | 4 +- apps/to/fsw/src/to_output_queue.c | 2 +- apps/to/fsw/src/to_priority_queue.c | 4 +- 55 files changed, 289 insertions(+), 250 deletions(-) diff --git a/apps/cs/fsw/src/cs_table_processing.c b/apps/cs/fsw/src/cs_table_processing.c index b5ad06d6d..be814227c 100644 --- a/apps/cs/fsw/src/cs_table_processing.c +++ b/apps/cs/fsw/src/cs_table_processing.c @@ -1028,8 +1028,6 @@ int32 CS_HandleTableUpdate (void * DefinitionTblPtr, uint16 Table, uint16 NumEntries) { - int32 ReleaseResult1 = CFE_SUCCESS; - int32 ManageResult1 = CFE_SUCCESS; int32 GetResult1 = CFE_SUCCESS; int32 ReleaseResult2 = CFE_SUCCESS; int32 ManageResult2 = CFE_SUCCESS; @@ -1044,10 +1042,10 @@ int32 CS_HandleTableUpdate (void * DefinitionTblPtr, /* This is done so intentionally, as it helps us with Source-Level debugging this functions. */ /* Release the Table Address. */ - ReleaseResult1 = CFE_TBL_ReleaseAddress (ResultsTableHandle); + CFE_TBL_ReleaseAddress (ResultsTableHandle); ReleaseResult2 = CFE_TBL_ReleaseAddress (DefinitionTableHandle); - ManageResult1 = CFE_TBL_Manage (ResultsTableHandle); + CFE_TBL_Manage (ResultsTableHandle); ManageResult2 = CFE_TBL_Manage (DefinitionTableHandle); GetResult1 = CFE_TBL_GetAddress ( ResultsTblPtr, diff --git a/apps/ds/fsw/unit_test/ds_app_test.c b/apps/ds/fsw/unit_test/ds_app_test.c index 763cba6f1..3ec724177 100644 --- a/apps/ds/fsw/unit_test/ds_app_test.c +++ b/apps/ds/fsw/unit_test/ds_app_test.c @@ -818,17 +818,19 @@ void DS_AppProcessCmd_Test_CloseAll(void) void DS_AppProcessCmd_Test_InvalidCommandCode(void) { DS_CloseAllCmd_t CmdPacket; + char expected[200]; CFE_SB_InitMsg (&CmdPacket, DS_CMD_MID, sizeof(DS_CloseAllCmd_t), TRUE); CFE_SB_SetCmdCode((CFE_SB_MsgPtr_t)&CmdPacket, 99); + sprintf(expected, "Invalid command code: MID = 0x%04X, CC = 99", DS_CMD_MID); /* Execute the function being tested */ DS_AppProcessCmd((CFE_SB_MsgPtr_t)(&CmdPacket)); /* Verify results */ UtAssert_True - (Ut_CFE_EVS_EventSent(DS_CMD_CODE_ERR_EID, CFE_EVS_ERROR, "Invalid command code: MID = 0x18BB, CC = 99"), - "Invalid command code: MID = 0x18BB, CC = 99"); + (Ut_CFE_EVS_EventSent(DS_CMD_CODE_ERR_EID, CFE_EVS_ERROR, expected), + expected); UtAssert_True (DS_AppData.CmdRejectedCounter == 1, "DS_AppData.CmdRejectedCounter == 1"); diff --git a/apps/md/fsw/src/md_dwell_tbl.c b/apps/md/fsw/src/md_dwell_tbl.c index cfc17e450..17943fd07 100644 --- a/apps/md/fsw/src/md_dwell_tbl.c +++ b/apps/md/fsw/src/md_dwell_tbl.c @@ -346,10 +346,9 @@ void MD_CopyUpdatedTbl(MD_DwellTableLoad_t *MD_LoadTablePtr, uint8 TblIndex) /******************************************************************************/ void MD_UpdateTableEnabledField (uint16 TableIndex, uint16 FieldValue) { - int32 GetAddressResult; MD_DwellTableLoad_t *MD_LoadTablePtr; - GetAddressResult = CFE_TBL_GetAddress((void*)&MD_LoadTablePtr, + CFE_TBL_GetAddress((void*)&MD_LoadTablePtr, MD_AppData.MD_TableHandle[TableIndex]); if (FieldValue == MD_DWELL_STREAM_ENABLED) @@ -376,12 +375,11 @@ void MD_UpdateTableDwellEntry (uint16 TableIndex, uint16 NewDelay, CFS_SymAddr_t NewDwellAddress) { - int32 GetAddressResult; MD_DwellTableLoad_t *MD_LoadTablePtr; MD_TableLoadEntry_t *EntryPtr; /* Get pointer to Table */ - GetAddressResult = CFE_TBL_GetAddress((void*)&MD_LoadTablePtr, + CFE_TBL_GetAddress((void*)&MD_LoadTablePtr, MD_AppData.MD_TableHandle[TableIndex]); /* Get pointer to specific entry */ EntryPtr = &MD_LoadTablePtr->Entry[EntryIndex]; @@ -413,11 +411,10 @@ void MD_UpdateTableDwellEntry (uint16 TableIndex, void MD_UpdateTableSignature (uint16 TableIndex, char NewSignature[MD_SIGNATURE_FIELD_LENGTH]) { - int32 GetAddressResult; MD_DwellTableLoad_t *MD_LoadTablePtr; /* Get pointer to Table */ - GetAddressResult = CFE_TBL_GetAddress((void*)&MD_LoadTablePtr, + CFE_TBL_GetAddress((void*)&MD_LoadTablePtr, MD_AppData.MD_TableHandle[TableIndex]); /* Copy Signature to dwell structure */ diff --git a/apps/mpc/fsw/src/mpc_app.cpp b/apps/mpc/fsw/src/mpc_app.cpp index 880b58685..a55e330e9 100644 --- a/apps/mpc/fsw/src/mpc_app.cpp +++ b/apps/mpc/fsw/src/mpc_app.cpp @@ -1156,7 +1156,8 @@ void MPC::Execute(void) m_TakeoffVelLimit = -.5f; } - else if (!m_VehicleControlModeMsg.Armed == PX4_ARMING_STATE_ARMED) { + else if (m_VehicleControlModeMsg.Armed != PX4_ARMING_STATE_ARMED) + { /* If we're disarmed and for some reason were in a smooth takeoff, we reset that. */ m_InTakeoff = FALSE; } @@ -3766,6 +3767,12 @@ void MPC::SetManualAccelerationXY(math::Vector2F &StickXy, const float Dt) break; } + + /* Fallthru */ + case NONE: + default: + /* Do nothing */ + break; } /* Apply acceleration based on state */ diff --git a/apps/mpc/fsw/src/mpc_config_utils.cpp b/apps/mpc/fsw/src/mpc_config_utils.cpp index 2961885d8..6d791f7bf 100644 --- a/apps/mpc/fsw/src/mpc_config_utils.cpp +++ b/apps/mpc/fsw/src/mpc_config_utils.cpp @@ -150,250 +150,296 @@ int32 MPC::AcquireConfigPointers(void) int32 MPC::ValidateConfigTbl(void* ConfigTblPtr) { int32 iStatus=0; - osalbool valid_bool = TRUE; MPC_ConfigTbl_t* MPC_ConfigTblPtr = (MPC_ConfigTbl_t*)(ConfigTblPtr); if(!(MPC_ConfigTblPtr->THR_MIN >= THR_MIN_MIN && MPC_ConfigTblPtr->THR_MIN <= THR_MIN_MAX)) { - valid_bool = FALSE; + printf("%s %u\n", __FUNCTION__, __LINE__); + iStatus = -1; } if(!(MPC_ConfigTblPtr->THR_HOVER >= THR_HOVER_MIN && MPC_ConfigTblPtr->THR_HOVER <= THR_HOVER_MAX)) { - valid_bool = FALSE; + printf("%s %u\n", __FUNCTION__, __LINE__); + iStatus = -1; } if(!(MPC_ConfigTblPtr->THR_MAX >= THR_MAX_MIN && MPC_ConfigTblPtr->THR_MAX <= THR_MAX_MAX)) { - valid_bool = FALSE; + printf("%s %u\n", __FUNCTION__, __LINE__); + iStatus = -1; } if(!(MPC_ConfigTblPtr->MANTHR_MIN >= MANTHR_MIN_MIN && MPC_ConfigTblPtr->MANTHR_MIN <= MANTHR_MIN_MAX)) { - valid_bool = FALSE; + printf("%s %u\n", __FUNCTION__, __LINE__); + iStatus = -1; } if(!(MPC_ConfigTblPtr->MANTHR_MAX >= MANTHR_MAX_MIN && MPC_ConfigTblPtr->MANTHR_MAX <= MANTHR_MAX_MAX)) { - valid_bool = FALSE; + printf("%s %u\n", __FUNCTION__, __LINE__); + iStatus = -1; } if(MPC::Validate_Z_P(MPC_ConfigTblPtr->Z_P) == FALSE) { - valid_bool = FALSE; + printf("%s %u\n", __FUNCTION__, __LINE__); + iStatus = -1; } if(MPC::Validate_Z_VEL_P(MPC_ConfigTblPtr->Z_VEL_P) == FALSE) { - valid_bool = FALSE; + printf("%s %u\n", __FUNCTION__, __LINE__); + iStatus = -1; } if(MPC::Validate_Z_VEL_I(MPC_ConfigTblPtr->Z_VEL_I) == FALSE) { - valid_bool = FALSE; + printf("%s %u\n", __FUNCTION__, __LINE__); + iStatus = -1; } if(MPC::Validate_Z_VEL_D(MPC_ConfigTblPtr->Z_VEL_D) == FALSE) { - valid_bool = FALSE; + printf("%s %u\n", __FUNCTION__, __LINE__); + iStatus = -1; } if(!(MPC_ConfigTblPtr->Z_VEL_MAX_UP >= Z_VEL_MAX_UP_MIN && MPC_ConfigTblPtr->Z_VEL_MAX_UP <= Z_VEL_MAX_UP_MAX)) { - valid_bool = FALSE; + printf("%s %u\n", __FUNCTION__, __LINE__); + iStatus = -1; } if(!(MPC_ConfigTblPtr->Z_VEL_MAX_DN >= Z_VEL_MAX_DN_MIN && MPC_ConfigTblPtr->Z_VEL_MAX_DN <= Z_VEL_MAX_DN_MAX)) { - valid_bool = FALSE; + printf("%s %u\n", __FUNCTION__, __LINE__); + iStatus = -1; } if(!(MPC_ConfigTblPtr->Z_FF >= Z_FF_MIN && MPC_ConfigTblPtr->Z_FF <= Z_FF_MAX)) { - valid_bool = FALSE; + printf("%s %u\n", __FUNCTION__, __LINE__); + iStatus = -1; } if(MPC::Validate_XY_P(MPC_ConfigTblPtr->XY_P) == FALSE) { - valid_bool = FALSE; + printf("%s %u\n", __FUNCTION__, __LINE__); + iStatus = -1; } if(MPC::Validate_XY_VEL_P(MPC_ConfigTblPtr->XY_VEL_P) == FALSE) { - valid_bool = FALSE; + printf("%s %u\n", __FUNCTION__, __LINE__); + iStatus = -1; } if(MPC::Validate_XY_VEL_I(MPC_ConfigTblPtr->XY_VEL_I) == FALSE) { - valid_bool = FALSE; + printf("%s %u\n", __FUNCTION__, __LINE__); + iStatus = -1; } if(MPC::Validate_XY_VEL_D(MPC_ConfigTblPtr->XY_VEL_D) == FALSE) { - valid_bool = FALSE; + printf("%s %u\n", __FUNCTION__, __LINE__); + iStatus = -1; } if(!(MPC_ConfigTblPtr->XY_CRUISE >= XY_CRUISE_MIN && MPC_ConfigTblPtr->XY_CRUISE <= XY_CRUISE_MAX)) { - valid_bool = FALSE; + printf("%s %u\n", __FUNCTION__, __LINE__); + iStatus = -1; } if(!(MPC_ConfigTblPtr->TARGET_THRE >= TARGET_THRE_MIN && MPC_ConfigTblPtr->TARGET_THRE <= TARGET_THRE_MAX)) { - valid_bool = FALSE; + printf("%s %u\n", __FUNCTION__, __LINE__); + iStatus = -1; } if(!(MPC_ConfigTblPtr->XY_VEL_MAX >= XY_VEL_MAX_MIN && MPC_ConfigTblPtr->XY_VEL_MAX <= XY_VEL_MAX_MAX)) { - valid_bool = FALSE; + printf("%s %u\n", __FUNCTION__, __LINE__); + iStatus = -1; } if(!(MPC_ConfigTblPtr->XY_FF >= XY_FF_MIN && MPC_ConfigTblPtr->XY_FF <= XY_FF_MAX)) { - valid_bool = FALSE; + printf("%s %u\n", __FUNCTION__, __LINE__); + iStatus = -1; } if(!(MPC_ConfigTblPtr->TILTMAX_AIR >= TILTMAX_AIR_MIN && MPC_ConfigTblPtr->TILTMAX_AIR <= TILTMAX_AIR_MAX)) { - valid_bool = FALSE; + printf("%s %u\n", __FUNCTION__, __LINE__); + iStatus = -1; } if(!(MPC_ConfigTblPtr->TILTMAX_LND >= TILTMAX_LND_MIN && MPC_ConfigTblPtr->TILTMAX_LND <= TILTMAX_LND_MAX)) { - valid_bool = FALSE; + printf("%s %u\n", __FUNCTION__, __LINE__); + iStatus = -1; } if(!(MPC_ConfigTblPtr->LAND_SPEED >= LAND_SPEED_MIN && MPC_ConfigTblPtr->LAND_SPEED <= LAND_SPEED_MAX)) { - valid_bool = FALSE; + printf("%s %u\n", __FUNCTION__, __LINE__); + iStatus = -1; } if(!(MPC_ConfigTblPtr->TKO_SPEED >= TKO_SPEED_MIN && MPC_ConfigTblPtr->TKO_SPEED <= TKO_SPEED_MAX)) { - valid_bool = FALSE; + printf("%s %u\n", __FUNCTION__, __LINE__); + iStatus = -1; } if(!(MPC_ConfigTblPtr->MAN_TILT_MAX >= MAN_TILT_MAX_MIN && MPC_ConfigTblPtr->MAN_TILT_MAX <= MAN_TILT_MAX_MAX)) { - valid_bool = FALSE; + printf("%s %u\n", __FUNCTION__, __LINE__); + iStatus = -1; } if(!(MPC_ConfigTblPtr->MAN_Y_MAX >= MAN_Y_MAX_MIN && MPC_ConfigTblPtr->MAN_Y_MAX <= MAN_Y_MAX_MAX)) { - valid_bool = FALSE; + printf("%s %u\n", __FUNCTION__, __LINE__); + iStatus = -1; } if(MPC::Validate_HOLD_DZ(MPC_ConfigTblPtr->HOLD_DZ) == FALSE) { - valid_bool = FALSE; + printf("%s %u\n", __FUNCTION__, __LINE__); + iStatus = -1; } if(!(MPC_ConfigTblPtr->HOLD_MAX_XY >= HOLD_MAX_XY_MIN && MPC_ConfigTblPtr->HOLD_MAX_XY <= HOLD_MAX_XY_MAX)) { - valid_bool = FALSE; + printf("%s %u\n", __FUNCTION__, __LINE__); + iStatus = -1; } if(!(MPC_ConfigTblPtr->HOLD_MAX_Z >= HOLD_MAX_Z_MIN && MPC_ConfigTblPtr->HOLD_MAX_Z <= HOLD_MAX_Z_MAX)) { - valid_bool = FALSE; + printf("%s %u\n", __FUNCTION__, __LINE__); + iStatus = -1; } if(!(MPC_ConfigTblPtr->VELD_LP >= VELD_LP_MIN && MPC_ConfigTblPtr->VELD_LP <= VELD_LP_MAX)) { - valid_bool = FALSE; + printf("%s %u\n", __FUNCTION__, __LINE__); + iStatus = -1; } if(!(MPC_ConfigTblPtr->ACC_HOR_MAX >= ACC_HOR_MAX_MIN && MPC_ConfigTblPtr->ACC_HOR_MAX <= ACC_HOR_MAX_MAX)) { - valid_bool = FALSE; + printf("%s %u\n", __FUNCTION__, __LINE__); + iStatus = -1; } if(!(MPC_ConfigTblPtr->ACC_UP_MAX >= ACC_UP_MAX_MIN && MPC_ConfigTblPtr->ACC_UP_MAX <= ACC_UP_MAX_MAX)) { - valid_bool = FALSE; + printf("%s %u\n", __FUNCTION__, __LINE__); + iStatus = -1; } if(!(MPC_ConfigTblPtr->ACC_DOWN_MAX >= ACC_DOWN_MAX_MIN && MPC_ConfigTblPtr->ACC_DOWN_MAX <= ACC_DOWN_MAX_MAX)) { - valid_bool = FALSE; + printf("%s %u\n", __FUNCTION__, __LINE__); + iStatus = -1; } if(!(MPC_ConfigTblPtr->ALT_MODE >= ALT_MODE_MIN && MPC_ConfigTblPtr->ALT_MODE <= ALT_MODE_MAX)) { - valid_bool = FALSE; + printf("%s %u\n", __FUNCTION__, __LINE__); + iStatus = -1; } if(MPC::Validate_XY_MAN_EXPO(MPC_ConfigTblPtr->XY_MAN_EXPO) == FALSE) { - valid_bool = FALSE; + printf("%s %u\n", __FUNCTION__, __LINE__); + iStatus = -1; } if(MPC::Validate_Z_MAN_EXPO(MPC_ConfigTblPtr->Z_MAN_EXPO) == FALSE) { - valid_bool = FALSE; + printf("%s %u\n", __FUNCTION__, __LINE__); + iStatus = -1; } if(!(MPC_ConfigTblPtr->LAND_ALT1 >= LAND_ALT1_MIN && MPC_ConfigTblPtr->LAND_ALT1 <= LAND_ALT1_MAX)) { - valid_bool = FALSE; + printf("%s %u\n", __FUNCTION__, __LINE__); + iStatus = -1; } if(!(MPC_ConfigTblPtr->LAND_ALT2 >= LAND_ALT2_MIN && MPC_ConfigTblPtr->LAND_ALT2 <= LAND_ALT2_MAX)) { - valid_bool = FALSE; + printf("%s %u\n", __FUNCTION__, __LINE__); + iStatus = -1; } if(MPC::Validate_TKO_RAMP_T(MPC_ConfigTblPtr->TKO_RAMP_T) == FALSE) { - valid_bool = FALSE; + printf("%s %u\n", __FUNCTION__, __LINE__); + iStatus = -1; } if(!(MPC_ConfigTblPtr->MC_YAWRATE_MAX >= MC_YAWRATE_MAX_MIN && MPC_ConfigTblPtr->MC_YAWRATE_MAX <= MC_YAWRATE_MAX_MAX)) { - valid_bool = FALSE; + printf("%s %u\n", __FUNCTION__, __LINE__); + iStatus = -1; } if(!(MPC_ConfigTblPtr->MC_YAW_P >= MC_YAW_P_MIN && MPC_ConfigTblPtr->MC_YAW_P <= MC_YAW_P_MAX)) { - valid_bool = FALSE; + printf("%s %u\n", __FUNCTION__, __LINE__); + iStatus = -1; } if(!(MPC_ConfigTblPtr->MPC_CRUISE_90 >= MPC_CRUISE_90_MIN && MPC_ConfigTblPtr->MPC_CRUISE_90 <= MPC_CRUISE_90_MAX)) { - valid_bool = FALSE; + printf("%s %u\n", __FUNCTION__, __LINE__); + iStatus = -1; } if(!(MPC_ConfigTblPtr->MPC_JERK_MAX >= MPC_JERK_MAX_MIN && MPC_ConfigTblPtr->MPC_JERK_MAX <= MPC_JERK_MAX_MAX)) { - valid_bool = FALSE; + printf("%s %u\n", __FUNCTION__, __LINE__); + iStatus = -1; } if(!(MPC_ConfigTblPtr->MPC_JERK_MIN >= MPC_JERK_MIN_MIN && MPC_ConfigTblPtr->MPC_JERK_MIN <= MPC_JERK_MIN_MAX)) { - valid_bool = FALSE; + printf("%s %u\n", __FUNCTION__, __LINE__); + iStatus = -1; } if(!(MPC_ConfigTblPtr->MPC_DEC_HOR_SLOW >= MPC_DEC_HOR_SLOW_MIN && MPC_ConfigTblPtr->MPC_DEC_HOR_SLOW <= MPC_DEC_HOR_SLOW_MAX)) { - valid_bool = FALSE; + printf("%s %u\n", __FUNCTION__, __LINE__); + iStatus = -1; } if(!(MPC_ConfigTblPtr->MPC_VEL_MANUAL >= MPC_VEL_MANUAL_MIN && MPC_ConfigTblPtr->MPC_VEL_MANUAL <= MPC_VEL_MANUAL_MAX)) { - valid_bool = FALSE; + printf("%s %u\n", __FUNCTION__, __LINE__); + iStatus = -1; } if(!(MPC_ConfigTblPtr->NAV_ACC_RAD >= NAV_ACC_RAD_MIN && MPC_ConfigTblPtr->NAV_ACC_RAD <= NAV_ACC_RAD_MAX)) { - valid_bool = FALSE; + printf("%s %u\n", __FUNCTION__, __LINE__); + iStatus = -1; } if(!(MPC_ConfigTblPtr->NAV_MIS_YAW_ERR >= NAV_MIS_YAW_ERR_MIN && MPC_ConfigTblPtr->NAV_MIS_YAW_ERR <= NAV_MIS_YAW_ERR_MAX)) { - valid_bool = FALSE; + printf("%s %u\n", __FUNCTION__, __LINE__); + iStatus = -1; } -MPC_ValidateConfigTbl_Exit_Tag: return iStatus; } diff --git a/apps/mpc/fsw/src/mpc_tbldefs.h b/apps/mpc/fsw/src/mpc_tbldefs.h index eb684369a..45705c267 100644 --- a/apps/mpc/fsw/src/mpc_tbldefs.h +++ b/apps/mpc/fsw/src/mpc_tbldefs.h @@ -93,9 +93,9 @@ extern "C" { #define XY_FF_MIN (0.0) #define XY_FF_MAX (1.0) #define TILTMAX_AIR_MIN (0.0) -#define TILTMAX_AIR_MAX (3.1415926 / 2.0) +#define TILTMAX_AIR_MAX (90.0) #define TILTMAX_LND_MIN (0.0) -#define TILTMAX_LND_MAX (3.1415926 / 2.0) +#define TILTMAX_LND_MAX (90.0) #define LAND_SPEED_MIN (0.2) #define LAND_SPEED_MAX (122.0) #define TKO_SPEED_MIN (1.0) @@ -138,7 +138,7 @@ extern "C" { #define MPC_CRUISE_90_MAX (20.0) #define MPC_JERK_MAX_MIN (0.0) #define MPC_JERK_MAX_MAX (15.0) -#define MPC_JERK_MIN_MIN (0.5) +#define MPC_JERK_MIN_MIN (0.0) #define MPC_JERK_MIN_MAX (10.0) #define MPC_DEC_HOR_SLOW_MIN (0.5) #define MPC_DEC_HOR_SLOW_MAX (10.0) @@ -364,7 +364,7 @@ typedef struct * \par Limits: * Min > Max (incr.) #TILTMAX_AIR_MIN > #TILTMAX_AIR_MAX. * - * \par Units: radians + * \par Units: degrees */ float TILTMAX_AIR; @@ -375,7 +375,7 @@ typedef struct * \par Limits: * Min > Max (incr.) #TILTMAX_LND_MIN > #TILTMAX_LND_MAX. * - * \par Units: radians + * \par Units: degrees */ float TILTMAX_LND; diff --git a/apps/ms5611/fsw/src/ms5611_config_utils.cpp b/apps/ms5611/fsw/src/ms5611_config_utils.cpp index 9d9809600..9ef184e55 100644 --- a/apps/ms5611/fsw/src/ms5611_config_utils.cpp +++ b/apps/ms5611/fsw/src/ms5611_config_utils.cpp @@ -114,7 +114,6 @@ int32 MS5611::ValidateConfigTbl(void* ConfigTblPtr) iStatus = MS5611_ERROR; } -MS5611_ValidateConfigTbl_Exit_Tag: return (iStatus); } diff --git a/apps/nav/fsw/src/nav_app.cpp b/apps/nav/fsw/src/nav_app.cpp index 410fdc25c..986a3bb22 100644 --- a/apps/nav/fsw/src/nav_app.cpp +++ b/apps/nav/fsw/src/nav_app.cpp @@ -658,7 +658,6 @@ void NAV::AppMain() int32 NAV::Execute() { CFE_TIME_SysTime_t Now; - uint64 Now2 = 0; /* Set vehicle arming state */ if (!CFE_SB_IsMsgTimeZero((CFE_SB_MsgPtr_t)&CVT.VehicleStatusMsg) && !VehicleStatusUpdateOnce) @@ -913,7 +912,6 @@ int32 NAV::Execute() } /* Time stamp out going messages */ - Now2 = CFE_TIME_GetTimeInMicros(); Now = CFE_TIME_GetTime(); CFE_SB_SetMsgTime((CFE_SB_MsgPtr_t)&MissionResultMsg, Now); @@ -1483,9 +1481,6 @@ void NAV::SetRtlItem() MissionItem.Altitude = CVT.VehicleGlobalPosition.Alt; } MissionItem.Yaw = CVT.HomePositionMsg.Yaw; - float d_current = get_distance_to_next_waypoint( - CVT.VehicleGlobalPosition.Lat, CVT.VehicleGlobalPosition.Lon, - MissionItem.Lat, MissionItem.Lon); MissionItem.LoiterRadius = ConfigTblPtr->NAV_LOITER_RAD; MissionItem.NavCmd = PX4_VehicleCmd_t::PX4_VEHICLE_CMD_NAV_WAYPOINT; MissionItem.AcceptanceRadius = ConfigTblPtr->NAV_ACC_RAD; @@ -1625,8 +1620,6 @@ void NAV::AdvanceRtl() void NAV::RtlActive() { - osalbool MissionItemReachedFlag = IsMissionItemReached(); - /* Bogus Land */ if (!CVT.VehicleLandDetectedMsg.Landed && !CVT.VehicleLandDetectedMsg.GroundContact diff --git a/apps/px4lib/fsw/public_inc/math/Matrix10F1.hpp b/apps/px4lib/fsw/public_inc/math/Matrix10F1.hpp index ed2756f15..53abb12a0 100644 --- a/apps/px4lib/fsw/public_inc/math/Matrix10F1.hpp +++ b/apps/px4lib/fsw/public_inc/math/Matrix10F1.hpp @@ -23,12 +23,12 @@ class Matrix10F1 /** \brief Number of rows */ static const int SIZE = 10; - /** \brief Vectors of row data */ - Vector1F data[SIZE]; - /** \brief Vectors of NaN row data */ Vector1F nan[SIZE]; + /** \brief Vectors of row data */ + Vector1F data[SIZE]; + public: /************************************************************************/ diff --git a/apps/px4lib/fsw/public_inc/math/Matrix10F10.hpp b/apps/px4lib/fsw/public_inc/math/Matrix10F10.hpp index 540777d1e..a11bdde50 100644 --- a/apps/px4lib/fsw/public_inc/math/Matrix10F10.hpp +++ b/apps/px4lib/fsw/public_inc/math/Matrix10F10.hpp @@ -27,12 +27,12 @@ class Matrix10F10 /** \brief Number of rows and columns */ static const int SIZE = 10; - /** \brief Rotation lookup enumeration */ - Vector10F data[SIZE]; - /** \brief Vector of NaN row data */ Vector10F nan; + /** \brief Rotation lookup enumeration */ + Vector10F data[SIZE]; + public: /************************************************************************/ /** \brief Matrix Constructor diff --git a/apps/px4lib/fsw/public_inc/math/Matrix10F2.hpp b/apps/px4lib/fsw/public_inc/math/Matrix10F2.hpp index 0464520a5..7b9d82e32 100644 --- a/apps/px4lib/fsw/public_inc/math/Matrix10F2.hpp +++ b/apps/px4lib/fsw/public_inc/math/Matrix10F2.hpp @@ -27,12 +27,12 @@ class Matrix10F2 /** \brief Number of columns */ static const int COLS = 2; - /** \brief Vectors of row data */ - Vector2F data[ROWS]; - /** \brief Vectors of NaN row data */ Vector2F nan; + /** \brief Vectors of row data */ + Vector2F data[ROWS]; + public: /************************************************************************/ /** \brief Matrix Constructor diff --git a/apps/px4lib/fsw/public_inc/math/Matrix10F3.hpp b/apps/px4lib/fsw/public_inc/math/Matrix10F3.hpp index 8027afc39..7e9f1402a 100644 --- a/apps/px4lib/fsw/public_inc/math/Matrix10F3.hpp +++ b/apps/px4lib/fsw/public_inc/math/Matrix10F3.hpp @@ -29,12 +29,12 @@ class Matrix10F3 /** \brief Number of columns */ static const int COLS = 3; - /** \brief Vectors of row data */ - Vector3F data[ROWS]; - /** \brief Vectors of NaN row data */ Vector3F nan; + /** \brief Vectors of row data */ + Vector3F data[ROWS]; + public: /************************************************************************/ /** \brief Matrix Constructor diff --git a/apps/px4lib/fsw/public_inc/math/Matrix10F6.hpp b/apps/px4lib/fsw/public_inc/math/Matrix10F6.hpp index 0df012807..a8926b33b 100644 --- a/apps/px4lib/fsw/public_inc/math/Matrix10F6.hpp +++ b/apps/px4lib/fsw/public_inc/math/Matrix10F6.hpp @@ -25,12 +25,12 @@ class Matrix10F6 /** \brief Number of columns */ static const int COLS = 6; - /** \brief Vectors of row data */ - Vector6F data[ROWS]; - /** \brief Vectors of NaN row data */ Vector6F nan; + /** \brief Vectors of row data */ + Vector6F data[ROWS]; + public: /************************************************************************/ /** \brief Matrix Constructor diff --git a/apps/px4lib/fsw/public_inc/math/Matrix1F1.hpp b/apps/px4lib/fsw/public_inc/math/Matrix1F1.hpp index fbd94cec8..25e5a6685 100644 --- a/apps/px4lib/fsw/public_inc/math/Matrix1F1.hpp +++ b/apps/px4lib/fsw/public_inc/math/Matrix1F1.hpp @@ -15,12 +15,12 @@ class Matrix1F1 /** \brief Number of rows and columns */ static const int SIZE = 1; - /** \brief Rotation lookup enumeration */ - Vector1F data[SIZE]; - /** \brief Vector of NaN row data */ Vector1F nan; + /** \brief Rotation lookup enumeration */ + Vector1F data[SIZE]; + public: /************************************************************************/ /** \brief Matrix Constructor diff --git a/apps/px4lib/fsw/public_inc/math/Matrix1F10.hpp b/apps/px4lib/fsw/public_inc/math/Matrix1F10.hpp index 4400bfa09..4e351e530 100644 --- a/apps/px4lib/fsw/public_inc/math/Matrix1F10.hpp +++ b/apps/px4lib/fsw/public_inc/math/Matrix1F10.hpp @@ -27,12 +27,12 @@ class Matrix1F10 /** \brief Number of columns */ static const int COLS = 10; - /** \brief Vectors of row data */ - Vector10F data[ROWS]; - /** \brief Vectors of NaN row data */ Vector10F nan; + /** \brief Vectors of row data */ + Vector10F data[ROWS]; + public: /************************************************************************/ /** \brief Matrix Constructor diff --git a/apps/px4lib/fsw/public_inc/math/Matrix1F6.hpp b/apps/px4lib/fsw/public_inc/math/Matrix1F6.hpp index 50b814d13..ea01e8663 100644 --- a/apps/px4lib/fsw/public_inc/math/Matrix1F6.hpp +++ b/apps/px4lib/fsw/public_inc/math/Matrix1F6.hpp @@ -22,9 +22,6 @@ class Matrix1F6 /** \brief Number of columns */ static const int COLS = 6; - /** \brief Vectors of row data */ - Vector6F data[ROWS]; - /** \brief Vectors of NaN row data */ Vector6F nan; @@ -136,6 +133,9 @@ class Matrix1F6 protected: + /** \brief Vectors of row data */ + Vector6F data[ROWS]; + }; } diff --git a/apps/px4lib/fsw/public_inc/math/Matrix2F10.hpp b/apps/px4lib/fsw/public_inc/math/Matrix2F10.hpp index e30ef9ce0..8983e53b1 100644 --- a/apps/px4lib/fsw/public_inc/math/Matrix2F10.hpp +++ b/apps/px4lib/fsw/public_inc/math/Matrix2F10.hpp @@ -29,12 +29,12 @@ class Matrix2F10 /** \brief Number of columns */ static const int COLS = 10; - /** \brief Vectors of row data */ - Vector10F data[ROWS]; - /** \brief Vectors of NaN row data */ Vector10F nan; + /** \brief Vectors of row data */ + Vector10F data[ROWS]; + public: /************************************************************************/ /** \brief Matrix Constructor diff --git a/apps/px4lib/fsw/public_inc/math/Matrix3F10.hpp b/apps/px4lib/fsw/public_inc/math/Matrix3F10.hpp index ec6cf6b2a..7f9a6bf9b 100644 --- a/apps/px4lib/fsw/public_inc/math/Matrix3F10.hpp +++ b/apps/px4lib/fsw/public_inc/math/Matrix3F10.hpp @@ -30,12 +30,12 @@ class Matrix3F10 /** \brief Number of columns */ static const int COLS = 10; - /** \brief Vectors of row data */ - Vector10F data[ROWS]; - /** \brief Vectors of NaN row data */ Vector10F nan; + /** \brief Vectors of row data */ + Vector10F data[ROWS]; + public: /************************************************************************/ /** \brief Matrix Constructor diff --git a/apps/px4lib/fsw/public_inc/math/Matrix4F4.hpp b/apps/px4lib/fsw/public_inc/math/Matrix4F4.hpp index 495f421ce..8b3698508 100644 --- a/apps/px4lib/fsw/public_inc/math/Matrix4F4.hpp +++ b/apps/px4lib/fsw/public_inc/math/Matrix4F4.hpp @@ -14,12 +14,12 @@ class Matrix4F4 /** \brief Number of rows and columns */ static const int SIZE = 4; - /** \brief Rotation lookup enumeration */ - Vector4F data[SIZE]; - /** \brief Vector of NaN row data */ Vector4F nan; + /** \brief Rotation lookup enumeration */ + Vector4F data[SIZE]; + public: /************************************************************************/ /** \brief Matrix Constructor diff --git a/apps/px4lib/fsw/public_inc/math/Matrix6F1.hpp b/apps/px4lib/fsw/public_inc/math/Matrix6F1.hpp index ff422cefa..f97e39a19 100644 --- a/apps/px4lib/fsw/public_inc/math/Matrix6F1.hpp +++ b/apps/px4lib/fsw/public_inc/math/Matrix6F1.hpp @@ -16,12 +16,12 @@ class Matrix6F1 /** \brief Number of rows and columns */ static const int SIZE = 6; - /** \brief Rotation lookup enumeration */ - Vector1F data[SIZE]; - /** \brief Vector of NaN row data */ Vector1F nan[SIZE]; + /** \brief Rotation lookup enumeration */ + Vector1F data[SIZE]; + public: /************************************************************************/ /** \brief Matrix Constructor diff --git a/apps/px4lib/fsw/public_inc/math/Matrix6F10.hpp b/apps/px4lib/fsw/public_inc/math/Matrix6F10.hpp index 6056e1dea..17df3d5e3 100644 --- a/apps/px4lib/fsw/public_inc/math/Matrix6F10.hpp +++ b/apps/px4lib/fsw/public_inc/math/Matrix6F10.hpp @@ -23,12 +23,12 @@ class Matrix6F10 /** \brief Number of columns */ static const int COLS = 10; - /** \brief Vectors of row data */ - Vector10F data[ROWS]; - /** \brief Vectors of NaN row data */ Vector10F nan; + /** \brief Vectors of row data */ + Vector10F data[ROWS]; + public: /************************************************************************/ /** \brief Matrix Constructor diff --git a/apps/px4lib/fsw/public_inc/math/Matrix6F6.hpp b/apps/px4lib/fsw/public_inc/math/Matrix6F6.hpp index 7fed7c1c8..fbeb17929 100644 --- a/apps/px4lib/fsw/public_inc/math/Matrix6F6.hpp +++ b/apps/px4lib/fsw/public_inc/math/Matrix6F6.hpp @@ -14,12 +14,12 @@ class Matrix6F6 /** \brief Number of rows and columns */ static const int SIZE = 6; - /** \brief Vectors of row data */ - Vector6F data[SIZE]; - /** \brief Vectors of NaN row data */ Vector6F nan[SIZE]; + /** \brief Vectors of row data */ + Vector6F data[SIZE]; + public: /************************************************************************/ /** \brief Matrix Constructor diff --git a/apps/px4lib/fsw/public_inc/math/Vector10F.hpp b/apps/px4lib/fsw/public_inc/math/Vector10F.hpp index d7fe138f1..fffa4ca61 100644 --- a/apps/px4lib/fsw/public_inc/math/Vector10F.hpp +++ b/apps/px4lib/fsw/public_inc/math/Vector10F.hpp @@ -16,12 +16,12 @@ class Vector10F /** \brief Size of vector */ static const int SIZE = 10; - /** \brief Data of vector */ - float data[SIZE]; - /** \brief NaN data */ float nan; + /** \brief Data of vector */ + float data[SIZE]; + public: /************************************************************************/ diff --git a/apps/px4lib/fsw/public_inc/math/Vector1F.hpp b/apps/px4lib/fsw/public_inc/math/Vector1F.hpp index 7756ccb8b..5c5f260a7 100644 --- a/apps/px4lib/fsw/public_inc/math/Vector1F.hpp +++ b/apps/px4lib/fsw/public_inc/math/Vector1F.hpp @@ -13,12 +13,12 @@ class Vector1F /** \brief Size of vector */ static const int SIZE = 1; - /** \brief Data of vector */ - float data[SIZE]; - /** \brief NaN data */ float nan; + /** \brief Data of vector */ + float data[SIZE]; + public: /************************************************************************/ /** \brief Vector Constructor diff --git a/apps/px4lib/fsw/public_inc/math/Vector2F.hpp b/apps/px4lib/fsw/public_inc/math/Vector2F.hpp index 0867e0de6..97b49a107 100644 --- a/apps/px4lib/fsw/public_inc/math/Vector2F.hpp +++ b/apps/px4lib/fsw/public_inc/math/Vector2F.hpp @@ -14,12 +14,12 @@ class Vector2F /** \brief Size of vector */ static const int SIZE = 2; - /** \brief Data of vector */ - float data[SIZE]; - /** \brief NaN data */ float nan; + /** \brief Data of vector */ + float data[SIZE]; + public: /************************************************************************/ /** \brief Vector Constructor diff --git a/apps/px4lib/fsw/public_inc/math/Vector6F.hpp b/apps/px4lib/fsw/public_inc/math/Vector6F.hpp index 913aa36d6..a1fd6ae12 100644 --- a/apps/px4lib/fsw/public_inc/math/Vector6F.hpp +++ b/apps/px4lib/fsw/public_inc/math/Vector6F.hpp @@ -12,9 +12,6 @@ class Vector6F /** \brief Size of vector */ static const int SIZE = 6; - /** \brief Data of vector */ - float data[SIZE]; - /** \brief NaN data */ float nan; @@ -352,6 +349,9 @@ class Vector6F protected: + /** \brief Data of vector */ + float data[SIZE]; + }; } diff --git a/apps/px4lib/fsw/src/math/Matrix10F1.cpp b/apps/px4lib/fsw/src/math/Matrix10F1.cpp index 8c20bbed1..ea9f30019 100644 --- a/apps/px4lib/fsw/src/math/Matrix10F1.cpp +++ b/apps/px4lib/fsw/src/math/Matrix10F1.cpp @@ -7,15 +7,15 @@ using namespace math; Matrix10F1::Matrix10F1( Vector1F m0, Vector1F m1, Vector1F m2, Vector1F m3, Vector1F m4, Vector1F m5, Vector1F m6, Vector1F m7, Vector1F m8, Vector1F m9) : - data{m0, m1, m2, m3, m4, m5, m6, m7, m8, m9}, - nan{NAN, NAN, NAN, NAN, NAN, NAN, NAN, NAN, NAN, NAN} + nan{NAN, NAN, NAN, NAN, NAN, NAN, NAN, NAN, NAN, NAN}, + data{m0, m1, m2, m3, m4, m5, m6, m7, m8, m9} { }; Matrix10F1::Matrix10F1() : - data{0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0}, - nan{NAN, NAN, NAN, NAN, NAN, NAN, NAN, NAN, NAN, NAN} + nan{NAN, NAN, NAN, NAN, NAN, NAN, NAN, NAN, NAN, NAN}, + data{0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0} { }; @@ -129,7 +129,7 @@ Matrix10F10 Matrix10F1::operator*(const Matrix1F10 & matIn) Vector10F Matrix10F1::ToVector(void) { - math:Vector10F vecOut( + math::Vector10F vecOut( data[0][0], data[1][0], data[2][0], data[3][0], data[4][0], data[5][0], data[6][0], data[7][0], data[8][0], data[9][0] ); diff --git a/apps/px4lib/fsw/src/math/Matrix10F10.cpp b/apps/px4lib/fsw/src/math/Matrix10F10.cpp index 9a2ec1713..338a7c3e8 100644 --- a/apps/px4lib/fsw/src/math/Matrix10F10.cpp +++ b/apps/px4lib/fsw/src/math/Matrix10F10.cpp @@ -7,26 +7,26 @@ Matrix10F10::Matrix10F10(Vector10F m0, Vector10F m1, Vector10F m2, Vector10F m3, Vector10F m4, Vector10F m5, Vector10F m6, Vector10F m7, Vector10F m8, Vector10F m9) : - data{m0, m1, m2, m3, m4, m5, m6, m7, m8, m9}, - nan{NAN,NAN,NAN,NAN,NAN,NAN,NAN,NAN,NAN,NAN} + nan{NAN,NAN,NAN,NAN,NAN,NAN,NAN,NAN,NAN,NAN}, + data{m0, m1, m2, m3, m4, m5, m6, m7, m8, m9} { }; Matrix10F10::Matrix10F10() : + nan{NAN,NAN,NAN,NAN,NAN,NAN,NAN,NAN,NAN,NAN}, data{ - {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0}, - {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0}, - {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0}, - {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0}, - {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0}, - {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0}, - {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0}, - {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0}, - {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0}, - {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0} - }, - nan{NAN,NAN,NAN,NAN,NAN,NAN,NAN,NAN,NAN,NAN} + {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0}, + {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0}, + {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0}, + {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0}, + {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0}, + {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0}, + {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0}, + {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0}, + {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0}, + {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0} + } { }; diff --git a/apps/px4lib/fsw/src/math/Matrix10F2.cpp b/apps/px4lib/fsw/src/math/Matrix10F2.cpp index ece1cf6fa..926715386 100644 --- a/apps/px4lib/fsw/src/math/Matrix10F2.cpp +++ b/apps/px4lib/fsw/src/math/Matrix10F2.cpp @@ -5,13 +5,14 @@ using namespace math; Matrix10F2::Matrix10F2(Vector2F m0, Vector2F m1, Vector2F m2, Vector2F m3, Vector2F m4, Vector2F m5, Vector2F m6, Vector2F m7, Vector2F m8, Vector2F m9) : - data{m0, m1, m2, m3, m4, m5, m6, m7, m8, m9}, - nan{NAN,NAN} + nan{NAN,NAN}, + data{m0, m1, m2, m3, m4, m5, m6, m7, m8, m9} { }; Matrix10F2::Matrix10F2() : + nan{NAN,NAN}, data{ {0.0, 0.0}, {0.0, 0.0}, @@ -23,8 +24,7 @@ Matrix10F2::Matrix10F2() : {0.0, 0.0}, {0.0, 0.0}, {0.0, 0.0}, - }, - nan{NAN,NAN} + } { }; diff --git a/apps/px4lib/fsw/src/math/Matrix10F3.cpp b/apps/px4lib/fsw/src/math/Matrix10F3.cpp index c7f6ea4d7..825237ab6 100644 --- a/apps/px4lib/fsw/src/math/Matrix10F3.cpp +++ b/apps/px4lib/fsw/src/math/Matrix10F3.cpp @@ -5,13 +5,14 @@ using namespace math; Matrix10F3::Matrix10F3(Vector3F m0, Vector3F m1, Vector3F m2, Vector3F m3, Vector3F m4, Vector3F m5, Vector3F m6, Vector3F m7, Vector3F m8, Vector3F m9) : - data{m0, m1, m2, m3, m4, m5, m6, m7, m8, m9}, - nan{NAN,NAN,NAN} + nan{NAN,NAN,NAN}, + data{m0, m1, m2, m3, m4, m5, m6, m7, m8, m9} { }; Matrix10F3::Matrix10F3() : + nan{NAN,NAN,NAN}, data{ {0.0, 0.0, 0.0}, {0.0, 0.0, 0.0}, @@ -23,8 +24,7 @@ Matrix10F3::Matrix10F3() : {0.0, 0.0, 0.0}, {0.0, 0.0, 0.0}, {0.0, 0.0, 0.0} - }, - nan{NAN,NAN,NAN} + } { }; diff --git a/apps/px4lib/fsw/src/math/Matrix10F6.cpp b/apps/px4lib/fsw/src/math/Matrix10F6.cpp index ac11f65da..d7bfba219 100644 --- a/apps/px4lib/fsw/src/math/Matrix10F6.cpp +++ b/apps/px4lib/fsw/src/math/Matrix10F6.cpp @@ -8,13 +8,14 @@ Matrix10F6::Matrix10F6(Vector6F m0, Vector6F m1, Vector6F m2, Vector6F m3, Vector6F m4, Vector6F m5, Vector6F m6, Vector6F m7, Vector6F m8, Vector6F m9) : - data{m0, m1, m2, m3, m4, m5, m6, m7, m8, m9}, - nan{NAN,NAN,NAN,NAN,NAN,NAN} + nan{NAN,NAN,NAN,NAN,NAN,NAN}, + data{m0, m1, m2, m3, m4, m5, m6, m7, m8, m9} { }; Matrix10F6::Matrix10F6() : + nan{NAN,NAN,NAN,NAN,NAN,NAN}, data{ {0.0, 0.0, 0.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 0.0, 0.0, 0.0, 0.0}, @@ -26,8 +27,7 @@ Matrix10F6::Matrix10F6() : {0.0, 0.0, 0.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 0.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 0.0, 0.0, 0.0, 0.0} - }, - nan{NAN,NAN,NAN,NAN,NAN,NAN} + } { }; diff --git a/apps/px4lib/fsw/src/math/Matrix1F1.cpp b/apps/px4lib/fsw/src/math/Matrix1F1.cpp index 3039a118d..85b4f959b 100644 --- a/apps/px4lib/fsw/src/math/Matrix1F1.cpp +++ b/apps/px4lib/fsw/src/math/Matrix1F1.cpp @@ -4,15 +4,15 @@ using namespace math; Matrix1F1::Matrix1F1(Vector1F m0) : - data{m0}, - nan(NAN) + nan(NAN), + data{m0} { }; Matrix1F1::Matrix1F1() : - data{0.0}, - nan(NAN) + nan(NAN), + data{0.0} { }; diff --git a/apps/px4lib/fsw/src/math/Matrix1F10.cpp b/apps/px4lib/fsw/src/math/Matrix1F10.cpp index 9dc9bfb9f..e677a67b4 100644 --- a/apps/px4lib/fsw/src/math/Matrix1F10.cpp +++ b/apps/px4lib/fsw/src/math/Matrix1F10.cpp @@ -4,17 +4,17 @@ using namespace math; Matrix1F10::Matrix1F10(Vector10F m0) : - data{m0}, - nan{NAN, NAN, NAN, NAN, NAN, NAN, NAN, NAN, NAN, NAN} + nan{NAN, NAN, NAN, NAN, NAN, NAN, NAN, NAN, NAN, NAN}, + data{m0} { }; Matrix1F10::Matrix1F10() : + nan{NAN, NAN, NAN, NAN, NAN, NAN, NAN, NAN, NAN, NAN}, data{ {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0} - }, - nan{NAN, NAN, NAN, NAN, NAN, NAN, NAN, NAN, NAN, NAN} + } { }; @@ -26,7 +26,7 @@ Matrix1F10::~Matrix1F10() Vector10F& Matrix1F10::operator [] (uint32 i) { - if(i >= COLS) + if(i >= ROWS) { return nan; } @@ -39,7 +39,7 @@ Vector10F& Matrix1F10::operator [] (uint32 i) Vector10F Matrix1F10::operator [] (uint32 i) const { - if(i >= COLS) + if(i >= ROWS) { return nan; } diff --git a/apps/px4lib/fsw/src/math/Matrix1F2.cpp b/apps/px4lib/fsw/src/math/Matrix1F2.cpp index d13eaaac7..bff4fa52a 100644 --- a/apps/px4lib/fsw/src/math/Matrix1F2.cpp +++ b/apps/px4lib/fsw/src/math/Matrix1F2.cpp @@ -5,17 +5,17 @@ using namespace math; Matrix1F2::Matrix1F2(Vector2F m0) : - data{m0}, - nan{NAN,NAN} + nan{NAN,NAN}, + data{m0} { }; Matrix1F2::Matrix1F2() : + nan{NAN,NAN}, data{ {0.0, 0.0} - }, - nan{NAN,NAN} + } { }; diff --git a/apps/px4lib/fsw/src/math/Matrix1F3.cpp b/apps/px4lib/fsw/src/math/Matrix1F3.cpp index 925d4e0be..60ce93459 100644 --- a/apps/px4lib/fsw/src/math/Matrix1F3.cpp +++ b/apps/px4lib/fsw/src/math/Matrix1F3.cpp @@ -5,17 +5,17 @@ using namespace math; Matrix1F3::Matrix1F3(Vector3F m0) : - data{m0}, - nan{NAN,NAN,NAN} + nan{NAN,NAN,NAN}, + data{m0} { }; Matrix1F3::Matrix1F3() : + nan{NAN,NAN,NAN}, data{ {0.0, 0.0, 0.0} - }, - nan{NAN,NAN,NAN} + } { }; diff --git a/apps/px4lib/fsw/src/math/Matrix1F6.cpp b/apps/px4lib/fsw/src/math/Matrix1F6.cpp index 319669e0b..b2c66e060 100644 --- a/apps/px4lib/fsw/src/math/Matrix1F6.cpp +++ b/apps/px4lib/fsw/src/math/Matrix1F6.cpp @@ -4,17 +4,17 @@ using namespace math; Matrix1F6::Matrix1F6(Vector6F m0) : - data{m0}, - nan{NAN, NAN, NAN, NAN, NAN, NAN} + nan{NAN, NAN, NAN, NAN, NAN, NAN}, + data{m0} { }; Matrix1F6::Matrix1F6() : + nan{NAN, NAN, NAN, NAN, NAN, NAN}, data{ {0.0, 0.0, 0.0, 0.0, 0.0, 0.0} - }, - nan{NAN, NAN, NAN, NAN, NAN, NAN} + } { }; @@ -26,7 +26,7 @@ Matrix1F6::~Matrix1F6() Vector6F& Matrix1F6::operator [] (uint32 i) { - if(i >= COLS) + if(i >= ROWS) { return nan; } @@ -39,7 +39,7 @@ Vector6F& Matrix1F6::operator [] (uint32 i) Vector6F Matrix1F6::operator [] (uint32 i) const { - if(i >= COLS) + if(i >= ROWS) { return nan; } diff --git a/apps/px4lib/fsw/src/math/Matrix2F10.cpp b/apps/px4lib/fsw/src/math/Matrix2F10.cpp index 1cd2f8728..1fd68fc75 100644 --- a/apps/px4lib/fsw/src/math/Matrix2F10.cpp +++ b/apps/px4lib/fsw/src/math/Matrix2F10.cpp @@ -4,18 +4,18 @@ using namespace math; Matrix2F10::Matrix2F10(Vector10F m0, Vector10F m1) : - data{m0, m1}, - nan{NAN,NAN,NAN,NAN,NAN,NAN,NAN,NAN,NAN,NAN} + nan{NAN,NAN,NAN,NAN,NAN,NAN,NAN,NAN,NAN,NAN}, + data{m0, m1} { }; Matrix2F10::Matrix2F10() : + nan{NAN,NAN,NAN,NAN,NAN,NAN,NAN,NAN,NAN,NAN}, data{ {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0} - }, - nan{NAN,NAN,NAN,NAN,NAN,NAN,NAN,NAN,NAN,NAN} + } { }; diff --git a/apps/px4lib/fsw/src/math/Matrix2F2.cpp b/apps/px4lib/fsw/src/math/Matrix2F2.cpp index 8c86f6845..473b8e798 100644 --- a/apps/px4lib/fsw/src/math/Matrix2F2.cpp +++ b/apps/px4lib/fsw/src/math/Matrix2F2.cpp @@ -4,18 +4,18 @@ using namespace math; Matrix2F2::Matrix2F2(Vector2F m0, Vector2F m1) : - data{m0, m1}, - nan{NAN,NAN} + nan{NAN,NAN}, + data{m0, m1} { }; Matrix2F2::Matrix2F2() : + nan{NAN,NAN}, data{ {0.0, 0.0}, {0.0, 0.0} - }, - nan{NAN,NAN} + } { }; diff --git a/apps/px4lib/fsw/src/math/Matrix3F10.cpp b/apps/px4lib/fsw/src/math/Matrix3F10.cpp index 90cf85dc0..9d4e0ad8e 100644 --- a/apps/px4lib/fsw/src/math/Matrix3F10.cpp +++ b/apps/px4lib/fsw/src/math/Matrix3F10.cpp @@ -4,19 +4,19 @@ using namespace math; Matrix3F10::Matrix3F10(Vector10F m0, Vector10F m1, Vector10F m2) : - data{m0, m1, m2}, - nan{NAN,NAN,NAN,NAN,NAN,NAN,NAN,NAN,NAN,NAN} + nan{NAN,NAN,NAN,NAN,NAN,NAN,NAN,NAN,NAN,NAN}, + data{m0, m1, m2} { }; Matrix3F10::Matrix3F10() : + nan{NAN,NAN,NAN,NAN,NAN,NAN,NAN,NAN,NAN,NAN}, data{ {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0}, - }, - nan{NAN,NAN,NAN,NAN,NAN,NAN,NAN,NAN,NAN,NAN} + } { }; @@ -108,7 +108,6 @@ Matrix3F3 Matrix3F10::operator*(const Matrix10F3 &matIn) Vector3F Matrix3F10::operator*(const Vector10F &vecIn) { Vector3F vecOut; - float value = 0.0f; // TODO: verify correct for(int i = 0; i < ROWS; i++) diff --git a/apps/px4lib/fsw/src/math/Matrix3F3.cpp b/apps/px4lib/fsw/src/math/Matrix3F3.cpp index 86abedc1d..d0bde4f9f 100644 --- a/apps/px4lib/fsw/src/math/Matrix3F3.cpp +++ b/apps/px4lib/fsw/src/math/Matrix3F3.cpp @@ -41,19 +41,19 @@ const Matrix3F3::RotLookup_t Matrix3F3::RotLookup[] = { }; Matrix3F3::Matrix3F3(Vector3F m0, Vector3F m1, Vector3F m2) : - data{m0, m1, m2}, - nan{NAN,NAN,NAN} + nan{NAN,NAN,NAN}, + data{m0, m1, m2} { }; Matrix3F3::Matrix3F3() : + nan{NAN,NAN,NAN}, data{ {0.0, 0.0, 0.0}, {0.0, 0.0, 0.0}, {0.0, 0.0, 0.0} - }, - nan{NAN,NAN,NAN} + } { }; diff --git a/apps/px4lib/fsw/src/math/Matrix4F4.cpp b/apps/px4lib/fsw/src/math/Matrix4F4.cpp index 467e438ba..e885fd255 100644 --- a/apps/px4lib/fsw/src/math/Matrix4F4.cpp +++ b/apps/px4lib/fsw/src/math/Matrix4F4.cpp @@ -4,20 +4,20 @@ using namespace math; Matrix4F4::Matrix4F4(Vector4F m0, Vector4F m1, Vector4F m2, Vector4F m3) : - data{m0, m1, m2, m3}, - nan{NAN,NAN,NAN,NAN} + nan{NAN,NAN,NAN,NAN}, + data{m0, m1, m2, m3} { }; Matrix4F4::Matrix4F4() : + nan{NAN,NAN,NAN,NAN}, data{ {0.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 0.0, 0.0} - }, - nan{NAN,NAN,NAN,NAN} + } { }; diff --git a/apps/px4lib/fsw/src/math/Matrix6F1.cpp b/apps/px4lib/fsw/src/math/Matrix6F1.cpp index b82175704..9a8346018 100644 --- a/apps/px4lib/fsw/src/math/Matrix6F1.cpp +++ b/apps/px4lib/fsw/src/math/Matrix6F1.cpp @@ -5,15 +5,15 @@ using namespace math; Matrix6F1::Matrix6F1(Vector1F m0, Vector1F m1, Vector1F m2, Vector1F m3, Vector1F m4, Vector1F m5) : - data{m0, m1, m2, m3, m4, m5}, - nan{NAN, NAN, NAN, NAN, NAN, NAN} + nan{NAN, NAN, NAN, NAN, NAN, NAN}, + data{m0, m1, m2, m3, m4, m5} { }; Matrix6F1::Matrix6F1() : - data{0.0, 0.0, 0.0, 0.0, 0.0, 0.0}, - nan{NAN, NAN, NAN, NAN, NAN, NAN} + nan{NAN, NAN, NAN, NAN, NAN, NAN}, + data{0.0, 0.0, 0.0, 0.0, 0.0, 0.0} { }; diff --git a/apps/px4lib/fsw/src/math/Matrix6F10.cpp b/apps/px4lib/fsw/src/math/Matrix6F10.cpp index 87d58e3e1..5a9521d45 100644 --- a/apps/px4lib/fsw/src/math/Matrix6F10.cpp +++ b/apps/px4lib/fsw/src/math/Matrix6F10.cpp @@ -5,13 +5,14 @@ using namespace math; Matrix6F10::Matrix6F10(Vector10F m0, Vector10F m1, Vector10F m2, Vector10F m3, Vector10F m4, Vector10F m5) : - data{m0, m1, m2, m3, m4, m5}, - nan{NAN,NAN,NAN,NAN,NAN,NAN,NAN,NAN,NAN,NAN} + nan{NAN,NAN,NAN,NAN,NAN,NAN,NAN,NAN,NAN,NAN}, + data{m0, m1, m2, m3, m4, m5} { }; Matrix6F10::Matrix6F10() : + nan{NAN,NAN,NAN,NAN,NAN,NAN,NAN,NAN,NAN,NAN}, data{ {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0}, @@ -19,8 +20,7 @@ Matrix6F10::Matrix6F10() : {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0} - }, - nan{NAN,NAN,NAN,NAN,NAN,NAN,NAN,NAN,NAN,NAN} + } { }; diff --git a/apps/px4lib/fsw/src/math/Matrix6F6.cpp b/apps/px4lib/fsw/src/math/Matrix6F6.cpp index 40ecbee01..aded8cbdc 100644 --- a/apps/px4lib/fsw/src/math/Matrix6F6.cpp +++ b/apps/px4lib/fsw/src/math/Matrix6F6.cpp @@ -5,7 +5,6 @@ using namespace math; Matrix6F6::Matrix6F6(Vector6F m0, Vector6F m1, Vector6F m2, Vector6F m3, Vector6F m4, Vector6F m5) : - data{m0, m1, m2, m3, m4, m5}, nan{ {NAN,NAN,NAN,NAN,NAN,NAN}, {NAN,NAN,NAN,NAN,NAN,NAN}, @@ -13,12 +12,21 @@ Matrix6F6::Matrix6F6(Vector6F m0, Vector6F m1, Vector6F m2, Vector6F m3, {NAN,NAN,NAN,NAN,NAN,NAN}, {NAN,NAN,NAN,NAN,NAN,NAN}, {NAN,NAN,NAN,NAN,NAN,NAN} - } + }, + data{m0, m1, m2, m3, m4, m5} { }; Matrix6F6::Matrix6F6() : + nan{ + {NAN,NAN,NAN,NAN,NAN,NAN}, + {NAN,NAN,NAN,NAN,NAN,NAN}, + {NAN,NAN,NAN,NAN,NAN,NAN}, + {NAN,NAN,NAN,NAN,NAN,NAN}, + {NAN,NAN,NAN,NAN,NAN,NAN}, + {NAN,NAN,NAN,NAN,NAN,NAN} + }, data{ {0.0, 0.0, 0.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 0.0, 0.0, 0.0, 0.0}, @@ -26,15 +34,7 @@ Matrix6F6::Matrix6F6() : {0.0, 0.0, 0.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 0.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 0.0, 0.0, 0.0, 0.0} - }, - nan{ - {NAN,NAN,NAN,NAN,NAN,NAN}, - {NAN,NAN,NAN,NAN,NAN,NAN}, - {NAN,NAN,NAN,NAN,NAN,NAN}, - {NAN,NAN,NAN,NAN,NAN,NAN}, - {NAN,NAN,NAN,NAN,NAN,NAN}, - {NAN,NAN,NAN,NAN,NAN,NAN} - } + } { }; diff --git a/apps/px4lib/fsw/src/math/Vector10F.cpp b/apps/px4lib/fsw/src/math/Vector10F.cpp index 5ce49cd23..3998ace19 100644 --- a/apps/px4lib/fsw/src/math/Vector10F.cpp +++ b/apps/px4lib/fsw/src/math/Vector10F.cpp @@ -4,8 +4,8 @@ using namespace math; Vector10F::Vector10F(float A, float B, float C, float D, float E, float F, float G, float H, float I, float J): - data{A,B,C,D,E,F,G,H,I,J}, - nan(NAN) + nan(NAN), + data{A,B,C,D,E,F,G,H,I,J} { }; diff --git a/apps/px4lib/fsw/src/math/Vector1F.cpp b/apps/px4lib/fsw/src/math/Vector1F.cpp index e571d7e30..b23a90e80 100644 --- a/apps/px4lib/fsw/src/math/Vector1F.cpp +++ b/apps/px4lib/fsw/src/math/Vector1F.cpp @@ -4,8 +4,8 @@ using namespace math; Vector1F::Vector1F(float A): - data{A}, - nan(NAN) + nan(NAN), + data{A} { }; diff --git a/apps/px4lib/fsw/src/math/Vector2F.cpp b/apps/px4lib/fsw/src/math/Vector2F.cpp index fe3a7348d..6a438160b 100644 --- a/apps/px4lib/fsw/src/math/Vector2F.cpp +++ b/apps/px4lib/fsw/src/math/Vector2F.cpp @@ -5,8 +5,8 @@ using namespace math; Vector2F::Vector2F(float X, float Y) : - data{X,Y}, - nan(NAN) + nan(NAN), + data{X,Y} { }; diff --git a/apps/px4lib/fsw/src/math/Vector3F.cpp b/apps/px4lib/fsw/src/math/Vector3F.cpp index 775fa037d..ed9ce589a 100644 --- a/apps/px4lib/fsw/src/math/Vector3F.cpp +++ b/apps/px4lib/fsw/src/math/Vector3F.cpp @@ -5,13 +5,14 @@ using namespace math; Vector3F::Vector3F(float X, float Y, float Z) : - data{X,Y,Z}, - nan(NAN) + nan(NAN), + data{X,Y,Z} { }; Vector3F::Vector3F() : + nan(NAN), data{0.0f, 0.0f, 0.0f} { }; diff --git a/apps/px4lib/fsw/src/math/Vector4F.cpp b/apps/px4lib/fsw/src/math/Vector4F.cpp index d6591666b..2ddcbd921 100644 --- a/apps/px4lib/fsw/src/math/Vector4F.cpp +++ b/apps/px4lib/fsw/src/math/Vector4F.cpp @@ -4,8 +4,8 @@ using namespace math; Vector4F::Vector4F(float m1, float m2, float m3, float m4) : - data{m1, m2, m3, m4}, - nan(NAN) + nan(NAN), + data{m1, m2, m3, m4} { }; diff --git a/apps/px4lib/fsw/src/math/Vector6F.cpp b/apps/px4lib/fsw/src/math/Vector6F.cpp index 51cdf6e39..57813665a 100644 --- a/apps/px4lib/fsw/src/math/Vector6F.cpp +++ b/apps/px4lib/fsw/src/math/Vector6F.cpp @@ -4,8 +4,8 @@ using namespace math; Vector6F::Vector6F(float A, float B, float C, float D, float E, float F): - data{A,B,C,D,E,F}, - nan(NAN) + nan(NAN), + data{A,B,C,D,E,F} { }; diff --git a/apps/px4lib/fsw/unit_test/Matrix1F6_test.cpp b/apps/px4lib/fsw/unit_test/Matrix1F6_test.cpp index 208a81011..b0bc62d9f 100644 --- a/apps/px4lib/fsw/unit_test/Matrix1F6_test.cpp +++ b/apps/px4lib/fsw/unit_test/Matrix1F6_test.cpp @@ -56,10 +56,12 @@ void Test_Matrix1F6_IndexOutOfBounds(void) { math::Matrix1F6 matrix({1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f}); - /* Verify results */ - UtAssert_True(isnan(matrix[0][6]), "matrix[0][6] == NAN"); - UtAssert_True(isnan(matrix[1][0]), "matrix[1][0] == NAN"); + float result = matrix[0][6]; + UtAssert_True(isnan(result), "matrix[0][6] == NAN"); + + result = matrix[1][0]; + UtAssert_True(isnan(result), "matrix[1][0] == NAN"); } diff --git a/apps/sch/fsw/src/sch_app.c b/apps/sch/fsw/src/sch_app.c index fbe68d03d..7149569d1 100644 --- a/apps/sch/fsw/src/sch_app.c +++ b/apps/sch/fsw/src/sch_app.c @@ -311,7 +311,6 @@ uint32 SCH_GetOutstandingActivityCount(uint32 Slot) void SCH_CheckDeadlines(void) { uint32 slot = SCH_AppData.NextSlotNumber; - uint32 pendingActivityCount = 0; /* Get the previous slot */ if (slot == 0) @@ -1200,7 +1199,6 @@ int32 SCH_ValidateScheduleData(void *TableData) uint16 Remainder; uint16 MessageIndex; uint32 GroupData; - uint32 Deadline; int32 GoodCount = 0; int32 BadCount = 0; @@ -1214,7 +1212,6 @@ int32 SCH_ValidateScheduleData(void *TableData) { uint16 SearchMessageIndex; uint32 Deadline; - uint32 FailCount = 0; uint16 SearchMinorFrames = 0; EnableState = TableArray[TableIndex].EnableState; @@ -1548,8 +1545,6 @@ int32 SCH_ChildTaskInit(void) void SCH_ADChildTask(void) { - int32 Status = CFE_SUCCESS; - SCH_AppData.ADChildTaskRunStatus = CFE_ES_RegisterChildTask(); while (SCH_AppData.ADChildTaskRunStatus == CFE_SUCCESS) diff --git a/apps/to/fsw/src/to_message_flow.c b/apps/to/fsw/src/to_message_flow.c index 539616b7d..ffc37372a 100644 --- a/apps/to/fsw/src/to_message_flow.c +++ b/apps/to/fsw/src/to_message_flow.c @@ -73,7 +73,7 @@ int32 TO_MessageFlow_Buildup(TO_ChannelData_t *channel) */ (void) CFE_EVS_SendEvent(TO_SUBSCRIBE_ERR_EID, CFE_EVS_ERROR, - "Message flow failed to subscribe to (0x%08X) on channel %d. (%llu)", + "Message flow failed to subscribe to (0x%08X) on channel %lu. (%ld)", channel->ConfigTblPtr->MessageFlow[i].MsgId, channel->channelIdx, status); @@ -120,7 +120,7 @@ int32 TO_MessageFlow_TeardownAll(TO_ChannelData_t *channel) */ (void) CFE_EVS_SendEvent(TO_UNSUBSCRIBE_ERR_EID, CFE_EVS_ERROR, - "Message flow failed to unsubscribe from 0x%04x on channel %d. (%llu)", + "Message flow failed to unsubscribe from 0x%04x on channel %ld. (%ld)", channel->ConfigTblPtr->MessageFlow[i].MsgId, channel->channelIdx, status); diff --git a/apps/to/fsw/src/to_output_queue.c b/apps/to/fsw/src/to_output_queue.c index a632cffdb..7bfcfbbbe 100644 --- a/apps/to/fsw/src/to_output_queue.c +++ b/apps/to/fsw/src/to_output_queue.c @@ -63,7 +63,7 @@ int32 TO_OutputQueue_Buildup(TO_ChannelData_t* channel) { (void) CFE_EVS_SendEvent(TO_CONFIG_TABLE_ERR_EID, CFE_EVS_ERROR, - "Failed to create '%s' output channel queue for channel %d. err=%llu", + "Failed to create '%s' output channel queue for channel %lu. err=%ld", channel->ChannelName, channel->channelIdx, status); channel->OutputQueue.OSALQueueID = OS_MAX_QUEUES; diff --git a/apps/to/fsw/src/to_priority_queue.c b/apps/to/fsw/src/to_priority_queue.c index c864aa26b..1b1b2b8a6 100644 --- a/apps/to/fsw/src/to_priority_queue.c +++ b/apps/to/fsw/src/to_priority_queue.c @@ -92,7 +92,7 @@ int32 TO_PriorityQueue_BuildupAll(TO_ChannelData_t *channel) { (void) CFE_EVS_SendEvent(TO_PQUEUE_MISSING_TBL_ERR_EID, CFE_EVS_ERROR, - "Failed to create priority queues on channel %llu, missing table.", + "Failed to create priority queues on channel %lu, missing table.", channel->channelIdx); return TO_NO_TABLE_ERR; } @@ -123,7 +123,7 @@ int32 TO_PriorityQueue_BuildupAll(TO_ChannelData_t *channel) */ (void) CFE_EVS_SendEvent(TO_PQUEUE_CREATE_ERR_EID, CFE_EVS_ERROR, - "Failed to create '%s' priority queue #%llu on channel %llu. (%llu)", + "Failed to create '%s' priority queue #%lu on channel %lu. (%ld)", channel->ChannelName, i, channel->channelIdx, From 1adc1856e22ab36b2393bc58f2c4d70549a64f72 Mon Sep 17 00:00:00 2001 From: lorenzo-gomez-windhover Date: Mon, 1 Mar 2021 16:14:10 -0600 Subject: [PATCH 194/370] -Updated auto-yamcs --- core/tools/auto-yamcs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/tools/auto-yamcs b/core/tools/auto-yamcs index 193cb7183..6b8f24d67 160000 --- a/core/tools/auto-yamcs +++ b/core/tools/auto-yamcs @@ -1 +1 @@ -Subproject commit 193cb7183d398227c6e33e313cc25e0e9032f7f7 +Subproject commit 6b8f24d676dac4a55648cb34872762caed8c82e8 From 627dec47bb31a9753b9b83d246c3f6913c4270f7 Mon Sep 17 00:00:00 2001 From: lorenzo-gomez-windhover Date: Mon, 1 Mar 2021 16:15:26 -0600 Subject: [PATCH 195/370] -Enforce all uppercase app names when sending event-related commands --- .../Displays/Core/EVS/Scripts/Python/DeleteEventFilter.py | 2 +- .../Displays/Core/EVS/Scripts/Python/ResetEventFilter.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/core/base/tools/commander/workspace_template/Displays/Core/EVS/Scripts/Python/DeleteEventFilter.py b/core/base/tools/commander/workspace_template/Displays/Core/EVS/Scripts/Python/DeleteEventFilter.py index 4afff9c18..b1079146f 100644 --- a/core/base/tools/commander/workspace_template/Displays/Core/EVS/Scripts/Python/DeleteEventFilter.py +++ b/core/base/tools/commander/workspace_template/Displays/Core/EVS/Scripts/Python/DeleteEventFilter.py @@ -5,7 +5,7 @@ event_id = VTypeHelper.getString(widget.getPropertyValue("pv_value")) # NOTE: Not sure if using macros is a good idea when passing data between scripts as they are scoped to the OPI file # it looks like and not the OPI instance. -app_name = display.getMacroValue("APP") +app_name = display.getMacroValue("APP").upper() Yamcs.issueCommand('/cfs/cfe_evs/DeleteAppEventFilter', { diff --git a/core/base/tools/commander/workspace_template/Displays/Core/EVS/Scripts/Python/ResetEventFilter.py b/core/base/tools/commander/workspace_template/Displays/Core/EVS/Scripts/Python/ResetEventFilter.py index d7e37e189..940006b0e 100644 --- a/core/base/tools/commander/workspace_template/Displays/Core/EVS/Scripts/Python/ResetEventFilter.py +++ b/core/base/tools/commander/workspace_template/Displays/Core/EVS/Scripts/Python/ResetEventFilter.py @@ -5,7 +5,7 @@ event_id = VTypeHelper.getString(widget.getPropertyValue("pv_value")) # NOTE: Not sure if using macros is a good idea when passing data between scripts as they are scoped to the OPI file # it looks like and not the OPI instance. -app_name = display.getMacroValue("APP") +app_name = display.getMacroValue("APP").upper() Yamcs.issueCommand('/cfs/cfe_evs/ResetAppEventFilter', { From 488c92f570280a981bf05edfecc38d18903ffd3c Mon Sep 17 00:00:00 2001 From: Mathew Benson Date: Mon, 1 Mar 2021 18:56:22 -0600 Subject: [PATCH 196/370] Fixed build system to generate the core symbol table with a python script. --- core/base/psp/make/build-functions.cmake | 33 ++++--- core/base/tools/symtab/core_symtab.jinja2 | 17 ++++ core/base/tools/symtab/symtab_gen.py | 111 ++++++++++++++++++++++ core/osal/freertos | 2 +- 4 files changed, 145 insertions(+), 18 deletions(-) create mode 100644 core/base/tools/symtab/core_symtab.jinja2 create mode 100644 core/base/tools/symtab/symtab_gen.py diff --git a/core/base/psp/make/build-functions.cmake b/core/base/psp/make/build-functions.cmake index 21b4c718a..1bd35bf44 100644 --- a/core/base/psp/make/build-functions.cmake +++ b/core/base/psp/make/build-functions.cmake @@ -193,8 +193,9 @@ function(psp_add_executable) set(TARGET_BINARY ${TARGET_NAME}) # Now build using the various source files that we just parsed. - add_executable(${TARGET_BINARY_WITHOUT_SYMTAB} ${PARSED_ARGS_SOURCES}) - add_executable(${TARGET_BINARY} ${PARSED_ARGS_SOURCES}) + add_library(${TARGET_BINARY_WITHOUT_SYMTAB} STATIC ${PARSED_ARGS_SOURCES}) + add_executable(${TARGET_BINARY} ${PARSED_ARGS_SOURCES}) + target_link_libraries(${TARGET_BINARY} PUBLIC ${TARGET_BINARY_WITHOUT_SYMTAB}) # Exclude from all, if requested. Normally, unit tests are excluded. if(${PARSED_ARGS_EXCLUDE_FROM_ALL}) @@ -267,23 +268,20 @@ function(psp_add_executable) " -Wl,--wrap=${FUNCTION} " ) endforeach() - - if(EMBED_SYMTAB) - file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/${NULL_SYMTAB_SOURCE_FILE} "unsigned char OS_DLExportsFile[4] = {};") - target_sources(${TARGET_BINARY_WITHOUT_SYMTAB} PUBLIC ${CMAKE_CURRENT_BINARY_DIR}/${NULL_SYMTAB_SOURCE_FILE}) + + if(EMBED_SYMTAB) add_custom_target(${TARGET_SYMTAB} BYPRODUCTS ${CMAKE_CURRENT_BINARY_DIR}/${SYMTAB_FILE_NAME} ${CMAKE_CURRENT_BINARY_DIR}/${SYMTAB_SOURCE_FILE} COMMAND nm $ > ${SYMTAB_FILE_NAME} - COMMAND bin2c --padd 0 --name OS_DLExportsFile ${SYMTAB_FILE_NAME} > ${SYMTAB_SOURCE_FILE} - ) - add_dependencies(${TARGET_SYMTAB} ${TARGET_BINARY_WITHOUT_SYMTAB}) - add_dependencies(${TARGET_BINARY} ${TARGET_SYMTAB}) - target_sources(${TARGET_BINARY} PUBLIC ${CMAKE_CURRENT_BINARY_DIR}/${SYMTAB_SOURCE_FILE}) - endif() + COMMAND echo ${PROJECT_SOURCE_DIR}/core/base/tools/symtab/symtab_gen.py -i ${CMAKE_CURRENT_BINARY_DIR}/${SYMTAB_FILE_NAME} -o ${CMAKE_CURRENT_BINARY_DIR}/${SYMTAB_SOURCE_FILE} -t ${PROJECT_SOURCE_DIR}/core/base/tools/symtab/core_symtab.jinja2 + COMMAND python ${PROJECT_SOURCE_DIR}/core/base/tools/symtab/symtab_gen.py -i ${CMAKE_CURRENT_BINARY_DIR}/${SYMTAB_FILE_NAME} -o ${CMAKE_CURRENT_BINARY_DIR}/${SYMTAB_SOURCE_FILE} -t ${PROJECT_SOURCE_DIR}/core/base/tools/symtab/core_symtab.jinja2 + ) + add_dependencies(${TARGET_SYMTAB} ${TARGET_BINARY_WITHOUT_SYMTAB}) + add_dependencies(${TARGET_BINARY} ${TARGET_SYMTAB}) + target_sources(${TARGET_BINARY} PUBLIC ${CMAKE_CURRENT_BINARY_DIR}/${SYMTAB_SOURCE_FILE}) + endif() if(EMBED_INITRD) - file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/${NULL_INITRD_SOURCE_FILE} "unsigned char OS_InitialRamdiskFile[4] = {}; \nunsigned int OS_InitialRamdiskFileSize = 4;") - target_sources(${TARGET_BINARY_WITHOUT_SYMTAB} PUBLIC ${CMAKE_CURRENT_BINARY_DIR}/${NULL_INITRD_SOURCE_FILE}) add_custom_target(${INITRD_TARGET} BYPRODUCTS ${INITRD_FILE_NAME} ${INITRD_SOURCE_FILE} COMMAND tar -b 512 -cvf ${INITRD_FILE_NAME} -C ${CFE_INSTALL_DIR}/cf apps @@ -291,10 +289,11 @@ function(psp_add_executable) COMMAND echo "unsigned int OS_InitialRamdiskFileSize = sizeof(OS_InitialRamdiskFile);" >> ${INITRD_SOURCE_FILE} VERBATIM ) add_dependencies(${INITRD_TARGET} ${TARGET_BINARY_WITHOUT_SYMTAB}) - add_dependencies(${TARGET_BINARY} ${INITRD_TARGET}) - add_dependencies(${TARGET_BINARY} build-file-system) + add_dependencies(${TARGET_BINARY} ${INITRD_TARGET}) target_sources(${TARGET_BINARY} PUBLIC ${CMAKE_CURRENT_BINARY_DIR}/${INITRD_SOURCE_FILE}) - endif() + add_dependencies(${TARGET_BINARY} build-file-system) + add_dependencies(${INITRD_TARGET} build-file-system) + endif() endfunction(psp_add_executable) diff --git a/core/base/tools/symtab/core_symtab.jinja2 b/core/base/tools/symtab/core_symtab.jinja2 new file mode 100644 index 000000000..85070fd8d --- /dev/null +++ b/core/base/tools/symtab/core_symtab.jinja2 @@ -0,0 +1,17 @@ + +{% for symbol in symbols %} +extern int {{ symbol.name }}(); +{%- endfor %} + +typedef struct { + char name[255]; + void* address; +} SymEntry; + +SymEntry OS_CoreExports[] = +{ +{%- for symbol in symbols %} + { "{{ symbol.name }}", {{ symbol.name }} }, +{%- endfor %} + { "", 0 } +}; diff --git a/core/base/tools/symtab/symtab_gen.py b/core/base/tools/symtab/symtab_gen.py new file mode 100644 index 000000000..e71ef8db3 --- /dev/null +++ b/core/base/tools/symtab/symtab_gen.py @@ -0,0 +1,111 @@ +""" + + Copyright (c) 2021 Windhover Labs, L.L.C. All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + + 1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + 3. Neither the name Windhover Labs nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, + INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS + OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED + AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN + ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + +""" +from _ast import Or + +__author__ = 'Mathew Benson' + +""" +Usage: +python symtab_gen.py [path to yaml file] +""" + +import sys +import getopt +import os +import jinja2 +from jinja2 import Environment, FileSystemLoader + + +def print_help(): + print("symtab_gen.py -i -o -t ") + + +def main(argv): + inputfile = "" + outputfile = "" + templatefile = "" + + try: + opts, args = getopt.getopt(argv,"hi:o:t:",["ifile=","ofile=","tfile"]) + except getopt.GetoptError: + print_help() + sys.exit(2) + + for opt, arg in opts: + if opt == '-h': + print_help() + sys.exit() + elif opt in ("-i", "--ifile"): + inputfile = arg + elif opt in ("-o", "--ofile"): + outputfile = arg + elif opt in ("-t", "--tfile"): + templatefile = arg + + if inputfile == "" or outputfile == "" or templatefile == "": + print_help() + sys.exit(-1) + + with open(inputfile, 'r') as in_file: + symbols = [] + + line = in_file.readline() + while line: + line = in_file.readline() + + fields = line[:-1].split(" ") + + if len(fields) == 3: + if fields[1] == 'A' or \ + fields[1] == 'B' or \ + fields[1] == 'D' or \ + fields[1] == 'T': + symbol = {"name": fields[2], "address": fields[0]} + symbols.append(symbol) + + #templateLoader = jinja2.FileSystemLoader(searchpath=templatefile) + + filename = os.path.basename(templatefile) + dirname = os.path.dirname(os.path.realpath(templatefile)) + + templateEnv = jinja2.Environment(loader=FileSystemLoader(dirname)) + template = templateEnv.get_template(filename) + outputText = template.render(symbols=symbols) # this is where to put args to the template renderer + + with open(outputfile, "w") as out_file: + out_file.write(outputText) + + +if __name__ == "__main__": + main(sys.argv[1:]) + \ No newline at end of file diff --git a/core/osal/freertos b/core/osal/freertos index 08dc0d1fd..fad6c39e4 160000 --- a/core/osal/freertos +++ b/core/osal/freertos @@ -1 +1 @@ -Subproject commit 08dc0d1fd10620ebea3df588e3f110b86b756c0a +Subproject commit fad6c39e4ee130bd0aae8075318729b1b97a057d From f3fb128ec80128fa73026f8c79b3f93fe4b673b8 Mon Sep 17 00:00:00 2001 From: Mathew Benson Date: Tue, 2 Mar 2021 00:23:25 -0600 Subject: [PATCH 197/370] Updated numerous displays --- .../Displays/Apps/CF/Main.opi | 20 +- .../Displays/Apps/CI/Main.opi | 74 +- .../Displays/Apps/CS/Main.opi | 80 +- .../Displays/Apps/DS/Main.opi | 12 +- .../Apps/FM/{GetDirPkt.opi => GetDir.opi} | 83 +- .../Displays/Apps/FM/Main.opi | 909 +- .../Displays/Apps/HK/Main.opi | 14 +- .../Displays/Apps/HS/Main.opi | 8 +- .../Displays/Apps/LC/Main.opi | 18 +- .../Displays/Apps/MD/Main.opi | 154 +- .../Displays/Apps/MM/Main.opi | 86 +- .../Displays/Apps/PE/Baro.opi | 1051 ++ .../Displays/Apps/PE/Distance.opi | 751 ++ .../Apps/{FM/GetDirFile.opi => PE/Flow.opi} | 260 +- .../Displays/Apps/PE/GPS.opi | 1005 ++ .../Displays/Apps/PE/Landing.opi | 751 ++ .../Displays/Apps/PE/Main.opi | 6145 +-------- .../Displays/Apps/PE/MessagesReceived.opi | 903 ++ .../Displays/Apps/PE/State.opi | 859 ++ .../Displays/Apps/SC/Main.opi | 118 +- .../Displays/Apps/SCH/Main.opi | 88 +- .../Displays/Apps/SENS/Accel.opi | 685 + .../Displays/Apps/SENS/Baro.opi | 501 + .../Displays/Apps/SENS/Gyro.opi | 587 + .../Displays/Apps/SENS/Mag.opi | 593 + .../Displays/Apps/SENS/Main.opi | 2359 +--- .../Displays/Apps/TO/Main.opi | 172 +- .../Displays/Apps/VM/Arming.opi | 242 + .../Displays/Apps/VM/Main.opi | 5164 +------- .../Displays/Apps/VM/MessagesReceived.opi | 1918 +++ .../Displays/Apps/VM/Moding.opi | 1206 ++ .../Displays/Apps/VM/State.opi | 1548 +++ .../Displays/Core/ES/ApplicationControl.opi | 8 +- .../Displays/Core/ES/Main.opi | 327 +- .../ES/Resources/Scripts/AppControlInit.py | 76 + .../Displays/Core/EVS/EventRecord.opi | 156 +- .../Displays/Core/EVS/Events.opi | 10 +- .../Displays/Core/EVS/Main.opi | 75 +- .../Core/EVS/Scripts/Python/events_init.py | 10 +- .../Displays/Core/SB/Main.opi | 14 +- .../Displays/Core/TBL/Main.opi | 10 +- .../Displays/Core/TIME/Main.opi | 12 +- .../BOY Examples/10_widgets.opi | 0 .../BOY Examples/1_1_Start_Up.opi | 0 .../BOY Examples/1_2_WidgetExamples.opi | 0 .../BOY Examples/2_OPI_Editor_Perspective.opi | 0 .../BOY Examples/3_Use_OPI_Editor.opi | 0 .../BOY Examples/4_Actions_1.opi | 0 .../BOY Examples/4_Actions_2.opi | 0 .../BOY Examples/5_1_Rules.opi | 0 .../BOY Examples/5_2_Script.opi | 0 .../BOY Examples/5_3_Rules_Script.opi | 0 .../BOY Examples/5_4_Python_Script.opi | 0 .../BOY Examples/5_5_FileIOWithScript.opi | 0 .../BOY Examples/5_6_UseThreadInScript.opi | 0 .../{ => Resources}/BOY Examples/6_Macro.opi | 0 .../BOY Examples/7_Color_Font_Macro.opi | 0 .../BOY Examples/8_2_PVWidgets_Properties.opi | 0 .../BOY Examples/8_Widget_Properties.opi | 0 .../{ => Resources}/BOY Examples/9_Border.opi | 0 .../ArraysOperation/ByteArrayToString.opi | 0 .../ConvertByteArrayToString.js | 0 .../ArraysOperation/CutFirstNPoints.js | 0 .../ArraysOperation/DisplayArrayElements.js | 0 .../ArraysOperation/DisplayArrayElements.opi | 0 .../ArraysOperation/GenerateSimuArray.js | 0 .../PlotFirstNPointsExample.opi | 0 .../ArraysOperation/PlotSimuArray.opi | 0 .../CalculatorExample/Calculator.opi | 0 .../CalculatorExample/CalculatorModel.py | 0 .../CalculatorExample/EasyCalculator.opi | 0 .../CalculatorExample/EasyCalculatorLogic.py | 0 .../Miscellaneous/CalculatorExample/init.py | 0 .../ConditinallySetPVValue.opi | 0 .../LoadLinkingContainer.js | 0 .../DynamicLoadWidgets/LoadWidgetsExample.opi | 0 .../DynamicLoadWidgets/SubPanel.opi | 0 .../DynamicLoadWidgets/myConfigExample.xml | 0 .../DynamicLoadWidgets/myConfigExample2.xml | 0 .../DynamicMacros/ChangeMacro.js | 0 .../DynamicMacros/DynamicMacros.opi | 0 .../Miscellaneous/DynamicMacros/OpenOPI.js | 0 .../DynamicMacros/embeddedOPI.opi | 0 .../AbsoluteWSPathToSysProp.py | 0 .../ExecuteShellScript/ExecuteShellScript.opi | 0 .../RelativePathToSysProp.py | 0 .../Miscellaneous/ExecuteShellScript/Test.sh | 0 .../LoginDialogExample/LoginDialogExample.opi | 0 .../LoginDialogExample/OPIDialog.opi | 0 .../LoginDialogExample/OPILogin.py | 0 .../LoginDialogExample/SWTLogin.py | 0 .../SWTLoginDialog$py.class | Bin .../LoginDialogExample/SWTLoginDialog.py | 0 .../LoginDialogExample/SwingLogin.py | 0 .../SwingLoginDialog$py.class | Bin .../LoginDialogExample/SwingLoginDialog.py | 0 .../NotifyOnOPIStartAndClose.opi | 0 .../ScriptUtil/GUIUtilExample.opi | 0 .../ScriptUtil/createPVFromScript.opi | 0 .../BOY Examples/Miscellaneous/Timer.opi | 0 .../WriteDynamicValueToPV.opi | 0 .../delayedSetValueExample.js | 0 .../WriteDynamicValueToPV/down.png | Bin .../WriteDynamicValueToPV/off.png | Bin .../WriteDynamicValueToPV/on.png | Bin .../WriteDynamicValueToPV/up.png | Bin .../XYGraph_Advanced/AddAxisExample.js | 0 .../XYGraph_Advanced/Add_Axes_From_Script.opi | 0 .../XYGraph_Advanced/Pause_Resume_XYGrpah.opi | 0 .../SetMajorTickMarkStepHint.opi | 0 .../{ => Resources}/BOY Examples/color.def | 0 .../{ => Resources}/BOY Examples/font.def | 0 .../{ => Resources}/BOY Examples/main.opi | 0 .../pictures/ArrangeSupportMenuItems.jpg | Bin .../BOY Examples/pictures/Context menu.png | Bin .../BOY Examples/pictures/Disconnected.png | Bin .../JF Withdrawable Circuit Breaker Off.gif | Bin .../JF Withdrawable Circuit Breaker On.gif | Bin .../BOY Examples/pictures/NavigateHisotry.png | Bin .../BOY Examples/pictures/OPIBuilder.png | Bin .../BOY Examples/pictures/OffButton.png | Bin .../BOY Examples/pictures/OnButton.png | Bin .../BOY Examples/pictures/Start_16.png | Bin .../BOY Examples/pictures/Stop_16.png | Bin .../AT Single-Acting Diaphragm Actuator.png | Bin .../PNG/Closing Push-Button Off.png | Bin .../PNG/Closing Push-Button On.png | Bin .../SymbolLibrary/PNG/JF Fuse Switch Off.png | Bin .../SymbolLibrary/PNG/JF Fuse Switch On.png | Bin .../pictures/SymbolLibrary/PNG/PL General.png | Bin .../PNG/SM 4-Positions Switch 0.png | Bin .../PNG/SM 4-Positions Switch 1.png | Bin .../PNG/SM 4-Positions Switch 2.png | Bin .../PNG/SM 4-Positions Switch 3.png | Bin .../AT Single-Acting Diaphragm Actuator.svg | 0 .../SVG/Closing Push-Button Off.svg | 0 .../SVG/Closing Push-Button On.svg | 0 .../SymbolLibrary/SVG/JF Fuse Switch Off.svg | 0 .../SymbolLibrary/SVG/JF Fuse Switch On.svg | 0 .../pictures/SymbolLibrary/SVG/JF Fuse.svg | 0 .../pictures/SymbolLibrary/SVG/PL General.svg | 0 .../SVG/SM 4-Positions Switch 0.svg | 0 .../SVG/SM 4-Positions Switch 1.svg | 0 .../SVG/SM 4-Positions Switch 2.svg | 0 .../SVG/SM 4-Positions Switch 3.svg | 0 .../BOY Examples/pictures/Timer.wav | Bin .../BOY Examples/pictures/Write_forbidden.png | Bin .../BOY Examples/pictures/fish.gif | Bin .../BOY Examples/pictures/home-16x16.png | Bin .../BOY Examples/pictures/horses.gif | Bin .../BOY Examples/pictures/houston.wav | Bin .../BOY Examples/pictures/lightOff.png | Bin .../BOY Examples/pictures/lightOn.png | Bin .../BOY Examples/pictures/neutron.jpg | Bin .../BOY Examples/pictures/onlineHelp.gif | Bin .../BOY Examples/pictures/pump_off.gif | Bin .../BOY Examples/pictures/pump_on.gif | Bin .../pictures/reset Perspective.png | Bin .../BOY Examples/pictures/reset.png | Bin .../pictures/reset_switch_off.gif | Bin .../BOY Examples/pictures/reset_switch_on.gif | Bin .../BOY Examples/pictures/sns4t.gif | Bin .../BOY Examples/pictures/snsBuilding.jpg | Bin .../BOY Examples/pictures/snscontrol.jpg | Bin .../BOY Examples/pictures/switch_off.gif | Bin .../BOY Examples/pictures/switch_on.gif | Bin .../BOY Examples/pictures/toobar.png | Bin .../BOY Examples/pictures/valve_off.gif | Bin .../BOY Examples/pictures/valve_on.gif | Bin .../BOY Examples/pictures/yangshuo-china.jpg | Bin .../BOY Examples/scripts/AddAxisExample.js | 0 .../BOY Examples/scripts/AutoNavigation.js | 0 .../BOY Examples/scripts/ChangePosAndSize.py | 0 .../scripts/ChangePosAndSize_m.py | 0 .../scripts/ChangePositionAndSize.js | 0 .../scripts/ChangePositionAndSize_m.js | 0 .../BOY Examples/scripts/ChangeTraceColor.js | 0 .../BOY Examples/scripts/ClearGraph.js | 0 .../BOY Examples/scripts/Dialog_push.js | 0 .../BOY Examples/scripts/Dialog_release.js | 0 .../scripts/DisplayPVValuesInTable.py | 0 .../BOY Examples/scripts/DynamicLoadImage.js | 0 .../BOY Examples/scripts/DynamicSymbol.js | 0 .../BOY Examples/scripts/ExecuteAction.js | 0 .../scripts/ExecuteScriptFromAction.js | 0 .../scripts/ExecuteScriptFromAction.py | 0 .../BOY Examples/scripts/KnobValueDialog.js | 0 .../BOY Examples/scripts/KnobValueDialog.py | 0 .../BOY Examples/scripts/MoveImage.js | 0 .../BOY Examples/scripts/ReadFileExample.js | 0 .../BOY Examples/scripts/SWTDialog.js | 0 .../BOY Examples/scripts/SelectColorMap.js | 0 .../scripts/SetIntensityGraphData.js | 0 .../scripts/SetIntensityGraphData.py | 0 .../BOY Examples/scripts/SimpleDialog.js | 0 .../scripts/TableContentMonitor.py | 0 .../scripts/TableSelectionMonitor.py | 0 .../BOY Examples/scripts/ThreadExample.js | 0 .../BOY Examples/scripts/ThreadExample.py | 0 .../BOY Examples/scripts/Timer.py | 0 .../BOY Examples/scripts/WidgetUtil.py | 0 .../BOY Examples/scripts/WriteFileExample.js | 0 .../BOY Examples/scripts/addAnnotations.py | 0 .../scripts/addPixelInfoListener.py | 0 .../BOY Examples/scripts/addROI.py | 0 .../BOY Examples/scripts/goHome.js | 0 .../BOY Examples/scripts/myFile.txt | 0 .../BOY Examples/scripts/openHelp.js | 0 .../widgets/1_1_Rectangle_Ellipse.opi | 0 .../BOY Examples/widgets/1_2_Image.opi | 0 .../BOY Examples/widgets/1_3_Label.opi | 0 .../BOY Examples/widgets/1_4_Arc.opi | 0 .../widgets/1_5_Polyline_Polygon.opi | 0 .../BOY Examples/widgets/1_6_Connection.opi | 0 .../BOY Examples/widgets/2_1_LED.opi | 0 .../BOY Examples/widgets/2_2_Text_Update.opi | 0 .../BOY Examples/widgets/2_3_Gauge_Meter.opi | 0 .../BOY Examples/widgets/2_4_Tank_Thermo.opi | 0 .../BOY Examples/widgets/2_5_1_XY_Graph.opi | 0 .../BOY Examples/widgets/2_5_2_XY_Graph.opi | 0 .../BOY Examples/widgets/2_5_3_XY_Graph.opi | 0 .../BOY Examples/widgets/2_5_4_XY_Graph.opi | 0 .../widgets/2_6_1_IntensityGraph.opi | 0 .../2_6_2_IntensityGraph_Javascript.opi | 0 .../widgets/2_6_3_IntensityGraph_Python.opi | 0 .../widgets/3_1_Action_Button.opi | 0 .../widgets/3_2_1_BoolButton_Switch.opi | 0 .../BOY Examples/widgets/3_3_Menu_Button.opi | 0 .../BOY Examples/widgets/3_4_1_Text_Input.opi | 0 .../widgets/3_4_2_NativeTextInput.opi | 0 .../BOY Examples/widgets/3_5_Knob_Slider.opi | 0 .../widgets/3_6_ChoiceWidgets.opi | 0 .../widgets/4_1_GroupingContainer.opi | 0 .../widgets/4_2_2_LinkingContainer.opi | 0 .../widgets/4_2_LinkingContainer.opi | 0 .../widgets/4_3_TabbedContainer.opi | 0 .../BOY Examples/widgets/4_4_WebBrowser.opi | 0 .../BOY Examples/widgets/4_5_Table.opi | 0 .../widgets/4_6_1_SashContainer.opi | 0 .../widgets/4_6_2_SashContainer.opi | 0 .../BOY Examples/widgets/4_6_Array.opi | 0 .../BOY Examples/widgets/5_1_GridLayout.opi | 0 .../widgets/DynamicSymbols/DyanmicSymbol.opi | 0 .../widgets/DynamicSymbols/macro.opi | 0 .../BOY Examples/widgets/SymbolWidgets.opi | 0 .../BOY Examples/widgets/images/Off_1.png | Bin .../BOY Examples/widgets/images/Off_2.png | Bin .../BOY Examples/widgets/images/Off_3.png | Bin .../BOY Examples/widgets/images/Off_4.png | Bin .../BOY Examples/widgets/images/Off_5.png | Bin .../BOY Examples/widgets/images/Off_7.png | Bin .../BOY Examples/widgets/images/On_1.png | Bin .../BOY Examples/widgets/images/On_2.png | Bin .../BOY Examples/widgets/images/On_3.png | Bin .../BOY Examples/widgets/images/On_4.png | Bin .../BOY Examples/widgets/images/On_5.png | Bin .../BOY Examples/widgets/images/On_7.png | Bin .../BOY Examples/widgets/images/Readme.txt | 0 .../Displays/Resources/definitions.yaml | 10656 ++++++++++++++++ 259 files changed, 25970 insertions(+), 13748 deletions(-) rename core/base/tools/commander/workspace_template/Displays/Apps/FM/{GetDirPkt.opi => GetDir.opi} (82%) create mode 100644 core/base/tools/commander/workspace_template/Displays/Apps/PE/Baro.opi create mode 100644 core/base/tools/commander/workspace_template/Displays/Apps/PE/Distance.opi rename core/base/tools/commander/workspace_template/Displays/Apps/{FM/GetDirFile.opi => PE/Flow.opi} (67%) create mode 100644 core/base/tools/commander/workspace_template/Displays/Apps/PE/GPS.opi create mode 100644 core/base/tools/commander/workspace_template/Displays/Apps/PE/Landing.opi create mode 100644 core/base/tools/commander/workspace_template/Displays/Apps/PE/MessagesReceived.opi create mode 100644 core/base/tools/commander/workspace_template/Displays/Apps/PE/State.opi create mode 100644 core/base/tools/commander/workspace_template/Displays/Apps/SENS/Accel.opi create mode 100644 core/base/tools/commander/workspace_template/Displays/Apps/SENS/Baro.opi create mode 100644 core/base/tools/commander/workspace_template/Displays/Apps/SENS/Gyro.opi create mode 100644 core/base/tools/commander/workspace_template/Displays/Apps/SENS/Mag.opi create mode 100644 core/base/tools/commander/workspace_template/Displays/Apps/VM/Arming.opi create mode 100644 core/base/tools/commander/workspace_template/Displays/Apps/VM/MessagesReceived.opi create mode 100644 core/base/tools/commander/workspace_template/Displays/Apps/VM/Moding.opi create mode 100644 core/base/tools/commander/workspace_template/Displays/Apps/VM/State.opi create mode 100644 core/base/tools/commander/workspace_template/Displays/Core/ES/Resources/Scripts/AppControlInit.py rename core/base/tools/commander/workspace_template/Displays/{ => Resources}/BOY Examples/10_widgets.opi (100%) rename core/base/tools/commander/workspace_template/Displays/{ => Resources}/BOY Examples/1_1_Start_Up.opi (100%) rename core/base/tools/commander/workspace_template/Displays/{ => Resources}/BOY Examples/1_2_WidgetExamples.opi (100%) rename core/base/tools/commander/workspace_template/Displays/{ => Resources}/BOY Examples/2_OPI_Editor_Perspective.opi (100%) rename core/base/tools/commander/workspace_template/Displays/{ => Resources}/BOY Examples/3_Use_OPI_Editor.opi (100%) rename core/base/tools/commander/workspace_template/Displays/{ => Resources}/BOY Examples/4_Actions_1.opi (100%) rename core/base/tools/commander/workspace_template/Displays/{ => Resources}/BOY Examples/4_Actions_2.opi (100%) rename core/base/tools/commander/workspace_template/Displays/{ => Resources}/BOY Examples/5_1_Rules.opi (100%) rename core/base/tools/commander/workspace_template/Displays/{ => Resources}/BOY Examples/5_2_Script.opi (100%) rename core/base/tools/commander/workspace_template/Displays/{ => Resources}/BOY Examples/5_3_Rules_Script.opi (100%) rename core/base/tools/commander/workspace_template/Displays/{ => Resources}/BOY Examples/5_4_Python_Script.opi (100%) rename core/base/tools/commander/workspace_template/Displays/{ => Resources}/BOY Examples/5_5_FileIOWithScript.opi (100%) rename core/base/tools/commander/workspace_template/Displays/{ => Resources}/BOY Examples/5_6_UseThreadInScript.opi (100%) rename core/base/tools/commander/workspace_template/Displays/{ => Resources}/BOY Examples/6_Macro.opi (100%) rename core/base/tools/commander/workspace_template/Displays/{ => Resources}/BOY Examples/7_Color_Font_Macro.opi (100%) rename core/base/tools/commander/workspace_template/Displays/{ => Resources}/BOY Examples/8_2_PVWidgets_Properties.opi (100%) rename core/base/tools/commander/workspace_template/Displays/{ => Resources}/BOY Examples/8_Widget_Properties.opi (100%) rename core/base/tools/commander/workspace_template/Displays/{ => Resources}/BOY Examples/9_Border.opi (100%) rename core/base/tools/commander/workspace_template/Displays/{ => Resources}/BOY Examples/Miscellaneous/ArraysOperation/ByteArrayToString.opi (100%) rename core/base/tools/commander/workspace_template/Displays/{ => Resources}/BOY Examples/Miscellaneous/ArraysOperation/ConvertByteArrayToString.js (100%) rename core/base/tools/commander/workspace_template/Displays/{ => Resources}/BOY Examples/Miscellaneous/ArraysOperation/CutFirstNPoints.js (100%) rename core/base/tools/commander/workspace_template/Displays/{ => Resources}/BOY Examples/Miscellaneous/ArraysOperation/DisplayArrayElements.js (100%) rename core/base/tools/commander/workspace_template/Displays/{ => Resources}/BOY Examples/Miscellaneous/ArraysOperation/DisplayArrayElements.opi (100%) rename core/base/tools/commander/workspace_template/Displays/{ => Resources}/BOY Examples/Miscellaneous/ArraysOperation/GenerateSimuArray.js (100%) rename core/base/tools/commander/workspace_template/Displays/{ => Resources}/BOY Examples/Miscellaneous/ArraysOperation/PlotFirstNPointsExample.opi (100%) rename core/base/tools/commander/workspace_template/Displays/{ => Resources}/BOY Examples/Miscellaneous/ArraysOperation/PlotSimuArray.opi (100%) rename core/base/tools/commander/workspace_template/Displays/{ => Resources}/BOY Examples/Miscellaneous/CalculatorExample/Calculator.opi (100%) rename core/base/tools/commander/workspace_template/Displays/{ => Resources}/BOY Examples/Miscellaneous/CalculatorExample/CalculatorModel.py (100%) rename core/base/tools/commander/workspace_template/Displays/{ => Resources}/BOY Examples/Miscellaneous/CalculatorExample/EasyCalculator.opi (100%) rename core/base/tools/commander/workspace_template/Displays/{ => Resources}/BOY Examples/Miscellaneous/CalculatorExample/EasyCalculatorLogic.py (100%) rename core/base/tools/commander/workspace_template/Displays/{ => Resources}/BOY Examples/Miscellaneous/CalculatorExample/init.py (100%) rename core/base/tools/commander/workspace_template/Displays/{ => Resources}/BOY Examples/Miscellaneous/ConditionallySetPVValue/ConditinallySetPVValue.opi (100%) rename core/base/tools/commander/workspace_template/Displays/{ => Resources}/BOY Examples/Miscellaneous/DynamicLoadWidgets/LoadLinkingContainer.js (100%) rename core/base/tools/commander/workspace_template/Displays/{ => Resources}/BOY Examples/Miscellaneous/DynamicLoadWidgets/LoadWidgetsExample.opi (100%) rename core/base/tools/commander/workspace_template/Displays/{ => Resources}/BOY Examples/Miscellaneous/DynamicLoadWidgets/SubPanel.opi (100%) rename core/base/tools/commander/workspace_template/Displays/{ => Resources}/BOY Examples/Miscellaneous/DynamicLoadWidgets/myConfigExample.xml (100%) rename core/base/tools/commander/workspace_template/Displays/{ => Resources}/BOY Examples/Miscellaneous/DynamicLoadWidgets/myConfigExample2.xml (100%) rename core/base/tools/commander/workspace_template/Displays/{ => Resources}/BOY Examples/Miscellaneous/DynamicMacros/ChangeMacro.js (100%) rename core/base/tools/commander/workspace_template/Displays/{ => Resources}/BOY Examples/Miscellaneous/DynamicMacros/DynamicMacros.opi (100%) rename core/base/tools/commander/workspace_template/Displays/{ => Resources}/BOY Examples/Miscellaneous/DynamicMacros/OpenOPI.js (100%) rename core/base/tools/commander/workspace_template/Displays/{ => Resources}/BOY Examples/Miscellaneous/DynamicMacros/embeddedOPI.opi (100%) rename core/base/tools/commander/workspace_template/Displays/{ => Resources}/BOY Examples/Miscellaneous/ExecuteShellScript/AbsoluteWSPathToSysProp.py (100%) rename core/base/tools/commander/workspace_template/Displays/{ => Resources}/BOY Examples/Miscellaneous/ExecuteShellScript/ExecuteShellScript.opi (100%) rename core/base/tools/commander/workspace_template/Displays/{ => Resources}/BOY Examples/Miscellaneous/ExecuteShellScript/RelativePathToSysProp.py (100%) rename core/base/tools/commander/workspace_template/Displays/{ => Resources}/BOY Examples/Miscellaneous/ExecuteShellScript/Test.sh (100%) rename core/base/tools/commander/workspace_template/Displays/{ => Resources}/BOY Examples/Miscellaneous/LoginDialogExample/LoginDialogExample.opi (100%) rename core/base/tools/commander/workspace_template/Displays/{ => Resources}/BOY Examples/Miscellaneous/LoginDialogExample/OPIDialog.opi (100%) rename core/base/tools/commander/workspace_template/Displays/{ => Resources}/BOY Examples/Miscellaneous/LoginDialogExample/OPILogin.py (100%) rename core/base/tools/commander/workspace_template/Displays/{ => Resources}/BOY Examples/Miscellaneous/LoginDialogExample/SWTLogin.py (100%) rename core/base/tools/commander/workspace_template/Displays/{ => Resources}/BOY Examples/Miscellaneous/LoginDialogExample/SWTLoginDialog$py.class (100%) rename core/base/tools/commander/workspace_template/Displays/{ => Resources}/BOY Examples/Miscellaneous/LoginDialogExample/SWTLoginDialog.py (100%) rename core/base/tools/commander/workspace_template/Displays/{ => Resources}/BOY Examples/Miscellaneous/LoginDialogExample/SwingLogin.py (100%) rename core/base/tools/commander/workspace_template/Displays/{ => Resources}/BOY Examples/Miscellaneous/LoginDialogExample/SwingLoginDialog$py.class (100%) rename core/base/tools/commander/workspace_template/Displays/{ => Resources}/BOY Examples/Miscellaneous/LoginDialogExample/SwingLoginDialog.py (100%) rename core/base/tools/commander/workspace_template/Displays/{ => Resources}/BOY Examples/Miscellaneous/NotifyOnOPIStartAndClose.opi (100%) rename core/base/tools/commander/workspace_template/Displays/{ => Resources}/BOY Examples/Miscellaneous/ScriptUtil/GUIUtilExample.opi (100%) rename core/base/tools/commander/workspace_template/Displays/{ => Resources}/BOY Examples/Miscellaneous/ScriptUtil/createPVFromScript.opi (100%) rename core/base/tools/commander/workspace_template/Displays/{ => Resources}/BOY Examples/Miscellaneous/Timer.opi (100%) rename core/base/tools/commander/workspace_template/Displays/{ => Resources}/BOY Examples/Miscellaneous/WriteDynamicValueToPV/WriteDynamicValueToPV.opi (100%) rename core/base/tools/commander/workspace_template/Displays/{ => Resources}/BOY Examples/Miscellaneous/WriteDynamicValueToPV/delayedSetValueExample.js (100%) rename core/base/tools/commander/workspace_template/Displays/{ => Resources}/BOY Examples/Miscellaneous/WriteDynamicValueToPV/down.png (100%) rename core/base/tools/commander/workspace_template/Displays/{ => Resources}/BOY Examples/Miscellaneous/WriteDynamicValueToPV/off.png (100%) rename core/base/tools/commander/workspace_template/Displays/{ => Resources}/BOY Examples/Miscellaneous/WriteDynamicValueToPV/on.png (100%) rename core/base/tools/commander/workspace_template/Displays/{ => Resources}/BOY Examples/Miscellaneous/WriteDynamicValueToPV/up.png (100%) rename core/base/tools/commander/workspace_template/Displays/{ => Resources}/BOY Examples/Miscellaneous/XYGraph_Advanced/AddAxisExample.js (100%) rename core/base/tools/commander/workspace_template/Displays/{ => Resources}/BOY Examples/Miscellaneous/XYGraph_Advanced/Add_Axes_From_Script.opi (100%) rename core/base/tools/commander/workspace_template/Displays/{ => Resources}/BOY Examples/Miscellaneous/XYGraph_Advanced/Pause_Resume_XYGrpah.opi (100%) rename core/base/tools/commander/workspace_template/Displays/{ => Resources}/BOY Examples/Miscellaneous/XYGraph_Advanced/SetMajorTickMarkStepHint.opi (100%) rename core/base/tools/commander/workspace_template/Displays/{ => Resources}/BOY Examples/color.def (100%) rename core/base/tools/commander/workspace_template/Displays/{ => Resources}/BOY Examples/font.def (100%) rename core/base/tools/commander/workspace_template/Displays/{ => Resources}/BOY Examples/main.opi (100%) rename core/base/tools/commander/workspace_template/Displays/{ => Resources}/BOY Examples/pictures/ArrangeSupportMenuItems.jpg (100%) rename core/base/tools/commander/workspace_template/Displays/{ => Resources}/BOY Examples/pictures/Context menu.png (100%) rename core/base/tools/commander/workspace_template/Displays/{ => Resources}/BOY Examples/pictures/Disconnected.png (100%) rename core/base/tools/commander/workspace_template/Displays/{ => Resources}/BOY Examples/pictures/JF Withdrawable Circuit Breaker Off.gif (100%) rename core/base/tools/commander/workspace_template/Displays/{ => Resources}/BOY Examples/pictures/JF Withdrawable Circuit Breaker On.gif (100%) rename core/base/tools/commander/workspace_template/Displays/{ => Resources}/BOY Examples/pictures/NavigateHisotry.png (100%) rename core/base/tools/commander/workspace_template/Displays/{ => Resources}/BOY Examples/pictures/OPIBuilder.png (100%) rename core/base/tools/commander/workspace_template/Displays/{ => Resources}/BOY Examples/pictures/OffButton.png (100%) rename core/base/tools/commander/workspace_template/Displays/{ => Resources}/BOY Examples/pictures/OnButton.png (100%) rename core/base/tools/commander/workspace_template/Displays/{ => Resources}/BOY Examples/pictures/Start_16.png (100%) rename core/base/tools/commander/workspace_template/Displays/{ => Resources}/BOY Examples/pictures/Stop_16.png (100%) rename core/base/tools/commander/workspace_template/Displays/{ => Resources}/BOY Examples/pictures/SymbolLibrary/PNG/AT Single-Acting Diaphragm Actuator.png (100%) rename core/base/tools/commander/workspace_template/Displays/{ => Resources}/BOY Examples/pictures/SymbolLibrary/PNG/Closing Push-Button Off.png (100%) rename core/base/tools/commander/workspace_template/Displays/{ => Resources}/BOY Examples/pictures/SymbolLibrary/PNG/Closing Push-Button On.png (100%) rename core/base/tools/commander/workspace_template/Displays/{ => Resources}/BOY Examples/pictures/SymbolLibrary/PNG/JF Fuse Switch Off.png (100%) rename core/base/tools/commander/workspace_template/Displays/{ => Resources}/BOY Examples/pictures/SymbolLibrary/PNG/JF Fuse Switch On.png (100%) rename core/base/tools/commander/workspace_template/Displays/{ => Resources}/BOY Examples/pictures/SymbolLibrary/PNG/PL General.png (100%) rename core/base/tools/commander/workspace_template/Displays/{ => Resources}/BOY Examples/pictures/SymbolLibrary/PNG/SM 4-Positions Switch 0.png (100%) rename core/base/tools/commander/workspace_template/Displays/{ => Resources}/BOY Examples/pictures/SymbolLibrary/PNG/SM 4-Positions Switch 1.png (100%) rename core/base/tools/commander/workspace_template/Displays/{ => Resources}/BOY Examples/pictures/SymbolLibrary/PNG/SM 4-Positions Switch 2.png (100%) rename core/base/tools/commander/workspace_template/Displays/{ => Resources}/BOY Examples/pictures/SymbolLibrary/PNG/SM 4-Positions Switch 3.png (100%) rename core/base/tools/commander/workspace_template/Displays/{ => Resources}/BOY Examples/pictures/SymbolLibrary/SVG/AT Single-Acting Diaphragm Actuator.svg (100%) rename core/base/tools/commander/workspace_template/Displays/{ => Resources}/BOY Examples/pictures/SymbolLibrary/SVG/Closing Push-Button Off.svg (100%) rename core/base/tools/commander/workspace_template/Displays/{ => Resources}/BOY Examples/pictures/SymbolLibrary/SVG/Closing Push-Button On.svg (100%) rename core/base/tools/commander/workspace_template/Displays/{ => Resources}/BOY Examples/pictures/SymbolLibrary/SVG/JF Fuse Switch Off.svg (100%) rename core/base/tools/commander/workspace_template/Displays/{ => Resources}/BOY Examples/pictures/SymbolLibrary/SVG/JF Fuse Switch On.svg (100%) rename core/base/tools/commander/workspace_template/Displays/{ => Resources}/BOY Examples/pictures/SymbolLibrary/SVG/JF Fuse.svg (100%) rename core/base/tools/commander/workspace_template/Displays/{ => Resources}/BOY Examples/pictures/SymbolLibrary/SVG/PL General.svg (100%) rename core/base/tools/commander/workspace_template/Displays/{ => Resources}/BOY Examples/pictures/SymbolLibrary/SVG/SM 4-Positions Switch 0.svg (100%) rename core/base/tools/commander/workspace_template/Displays/{ => Resources}/BOY Examples/pictures/SymbolLibrary/SVG/SM 4-Positions Switch 1.svg (100%) rename core/base/tools/commander/workspace_template/Displays/{ => Resources}/BOY Examples/pictures/SymbolLibrary/SVG/SM 4-Positions Switch 2.svg (100%) rename core/base/tools/commander/workspace_template/Displays/{ => Resources}/BOY Examples/pictures/SymbolLibrary/SVG/SM 4-Positions Switch 3.svg (100%) rename core/base/tools/commander/workspace_template/Displays/{ => Resources}/BOY Examples/pictures/Timer.wav (100%) rename core/base/tools/commander/workspace_template/Displays/{ => Resources}/BOY Examples/pictures/Write_forbidden.png (100%) rename core/base/tools/commander/workspace_template/Displays/{ => Resources}/BOY Examples/pictures/fish.gif (100%) rename core/base/tools/commander/workspace_template/Displays/{ => Resources}/BOY Examples/pictures/home-16x16.png (100%) rename core/base/tools/commander/workspace_template/Displays/{ => Resources}/BOY Examples/pictures/horses.gif (100%) rename core/base/tools/commander/workspace_template/Displays/{ => Resources}/BOY Examples/pictures/houston.wav (100%) rename core/base/tools/commander/workspace_template/Displays/{ => Resources}/BOY Examples/pictures/lightOff.png (100%) rename core/base/tools/commander/workspace_template/Displays/{ => Resources}/BOY Examples/pictures/lightOn.png (100%) rename core/base/tools/commander/workspace_template/Displays/{ => Resources}/BOY Examples/pictures/neutron.jpg (100%) rename core/base/tools/commander/workspace_template/Displays/{ => Resources}/BOY Examples/pictures/onlineHelp.gif (100%) rename core/base/tools/commander/workspace_template/Displays/{ => Resources}/BOY Examples/pictures/pump_off.gif (100%) rename core/base/tools/commander/workspace_template/Displays/{ => Resources}/BOY Examples/pictures/pump_on.gif (100%) rename core/base/tools/commander/workspace_template/Displays/{ => Resources}/BOY Examples/pictures/reset Perspective.png (100%) rename core/base/tools/commander/workspace_template/Displays/{ => Resources}/BOY Examples/pictures/reset.png (100%) rename core/base/tools/commander/workspace_template/Displays/{ => Resources}/BOY Examples/pictures/reset_switch_off.gif (100%) rename core/base/tools/commander/workspace_template/Displays/{ => Resources}/BOY Examples/pictures/reset_switch_on.gif (100%) rename core/base/tools/commander/workspace_template/Displays/{ => Resources}/BOY Examples/pictures/sns4t.gif (100%) rename core/base/tools/commander/workspace_template/Displays/{ => Resources}/BOY Examples/pictures/snsBuilding.jpg (100%) rename core/base/tools/commander/workspace_template/Displays/{ => Resources}/BOY Examples/pictures/snscontrol.jpg (100%) rename core/base/tools/commander/workspace_template/Displays/{ => Resources}/BOY Examples/pictures/switch_off.gif (100%) rename core/base/tools/commander/workspace_template/Displays/{ => Resources}/BOY Examples/pictures/switch_on.gif (100%) rename core/base/tools/commander/workspace_template/Displays/{ => Resources}/BOY Examples/pictures/toobar.png (100%) rename core/base/tools/commander/workspace_template/Displays/{ => Resources}/BOY Examples/pictures/valve_off.gif (100%) rename core/base/tools/commander/workspace_template/Displays/{ => Resources}/BOY Examples/pictures/valve_on.gif (100%) rename core/base/tools/commander/workspace_template/Displays/{ => Resources}/BOY Examples/pictures/yangshuo-china.jpg (100%) rename core/base/tools/commander/workspace_template/Displays/{ => Resources}/BOY Examples/scripts/AddAxisExample.js (100%) rename core/base/tools/commander/workspace_template/Displays/{ => Resources}/BOY Examples/scripts/AutoNavigation.js (100%) rename core/base/tools/commander/workspace_template/Displays/{ => Resources}/BOY Examples/scripts/ChangePosAndSize.py (100%) rename core/base/tools/commander/workspace_template/Displays/{ => Resources}/BOY Examples/scripts/ChangePosAndSize_m.py (100%) rename core/base/tools/commander/workspace_template/Displays/{ => Resources}/BOY Examples/scripts/ChangePositionAndSize.js (100%) rename core/base/tools/commander/workspace_template/Displays/{ => Resources}/BOY Examples/scripts/ChangePositionAndSize_m.js (100%) rename core/base/tools/commander/workspace_template/Displays/{ => Resources}/BOY Examples/scripts/ChangeTraceColor.js (100%) rename core/base/tools/commander/workspace_template/Displays/{ => Resources}/BOY Examples/scripts/ClearGraph.js (100%) rename core/base/tools/commander/workspace_template/Displays/{ => Resources}/BOY Examples/scripts/Dialog_push.js (100%) rename core/base/tools/commander/workspace_template/Displays/{ => Resources}/BOY Examples/scripts/Dialog_release.js (100%) rename core/base/tools/commander/workspace_template/Displays/{ => Resources}/BOY Examples/scripts/DisplayPVValuesInTable.py (100%) rename core/base/tools/commander/workspace_template/Displays/{ => Resources}/BOY Examples/scripts/DynamicLoadImage.js (100%) rename core/base/tools/commander/workspace_template/Displays/{ => Resources}/BOY Examples/scripts/DynamicSymbol.js (100%) rename core/base/tools/commander/workspace_template/Displays/{ => Resources}/BOY Examples/scripts/ExecuteAction.js (100%) rename core/base/tools/commander/workspace_template/Displays/{ => Resources}/BOY Examples/scripts/ExecuteScriptFromAction.js (100%) rename core/base/tools/commander/workspace_template/Displays/{ => Resources}/BOY Examples/scripts/ExecuteScriptFromAction.py (100%) rename core/base/tools/commander/workspace_template/Displays/{ => Resources}/BOY Examples/scripts/KnobValueDialog.js (100%) rename core/base/tools/commander/workspace_template/Displays/{ => Resources}/BOY Examples/scripts/KnobValueDialog.py (100%) rename core/base/tools/commander/workspace_template/Displays/{ => Resources}/BOY Examples/scripts/MoveImage.js (100%) rename core/base/tools/commander/workspace_template/Displays/{ => Resources}/BOY Examples/scripts/ReadFileExample.js (100%) rename core/base/tools/commander/workspace_template/Displays/{ => Resources}/BOY Examples/scripts/SWTDialog.js (100%) rename core/base/tools/commander/workspace_template/Displays/{ => Resources}/BOY Examples/scripts/SelectColorMap.js (100%) rename core/base/tools/commander/workspace_template/Displays/{ => Resources}/BOY Examples/scripts/SetIntensityGraphData.js (100%) rename core/base/tools/commander/workspace_template/Displays/{ => Resources}/BOY Examples/scripts/SetIntensityGraphData.py (100%) rename core/base/tools/commander/workspace_template/Displays/{ => Resources}/BOY Examples/scripts/SimpleDialog.js (100%) rename core/base/tools/commander/workspace_template/Displays/{ => Resources}/BOY Examples/scripts/TableContentMonitor.py (100%) rename core/base/tools/commander/workspace_template/Displays/{ => Resources}/BOY Examples/scripts/TableSelectionMonitor.py (100%) rename core/base/tools/commander/workspace_template/Displays/{ => Resources}/BOY Examples/scripts/ThreadExample.js (100%) rename core/base/tools/commander/workspace_template/Displays/{ => Resources}/BOY Examples/scripts/ThreadExample.py (100%) rename core/base/tools/commander/workspace_template/Displays/{ => Resources}/BOY Examples/scripts/Timer.py (100%) rename core/base/tools/commander/workspace_template/Displays/{ => Resources}/BOY Examples/scripts/WidgetUtil.py (100%) rename core/base/tools/commander/workspace_template/Displays/{ => Resources}/BOY Examples/scripts/WriteFileExample.js (100%) rename core/base/tools/commander/workspace_template/Displays/{ => Resources}/BOY Examples/scripts/addAnnotations.py (100%) rename core/base/tools/commander/workspace_template/Displays/{ => Resources}/BOY Examples/scripts/addPixelInfoListener.py (100%) rename core/base/tools/commander/workspace_template/Displays/{ => Resources}/BOY Examples/scripts/addROI.py (100%) rename core/base/tools/commander/workspace_template/Displays/{ => Resources}/BOY Examples/scripts/goHome.js (100%) rename core/base/tools/commander/workspace_template/Displays/{ => Resources}/BOY Examples/scripts/myFile.txt (100%) rename core/base/tools/commander/workspace_template/Displays/{ => Resources}/BOY Examples/scripts/openHelp.js (100%) rename core/base/tools/commander/workspace_template/Displays/{ => Resources}/BOY Examples/widgets/1_1_Rectangle_Ellipse.opi (100%) rename core/base/tools/commander/workspace_template/Displays/{ => Resources}/BOY Examples/widgets/1_2_Image.opi (100%) rename core/base/tools/commander/workspace_template/Displays/{ => Resources}/BOY Examples/widgets/1_3_Label.opi (100%) rename core/base/tools/commander/workspace_template/Displays/{ => Resources}/BOY Examples/widgets/1_4_Arc.opi (100%) rename core/base/tools/commander/workspace_template/Displays/{ => Resources}/BOY Examples/widgets/1_5_Polyline_Polygon.opi (100%) rename core/base/tools/commander/workspace_template/Displays/{ => Resources}/BOY Examples/widgets/1_6_Connection.opi (100%) rename core/base/tools/commander/workspace_template/Displays/{ => Resources}/BOY Examples/widgets/2_1_LED.opi (100%) rename core/base/tools/commander/workspace_template/Displays/{ => Resources}/BOY Examples/widgets/2_2_Text_Update.opi (100%) rename core/base/tools/commander/workspace_template/Displays/{ => Resources}/BOY Examples/widgets/2_3_Gauge_Meter.opi (100%) rename core/base/tools/commander/workspace_template/Displays/{ => Resources}/BOY Examples/widgets/2_4_Tank_Thermo.opi (100%) rename core/base/tools/commander/workspace_template/Displays/{ => Resources}/BOY Examples/widgets/2_5_1_XY_Graph.opi (100%) rename core/base/tools/commander/workspace_template/Displays/{ => Resources}/BOY Examples/widgets/2_5_2_XY_Graph.opi (100%) rename core/base/tools/commander/workspace_template/Displays/{ => Resources}/BOY Examples/widgets/2_5_3_XY_Graph.opi (100%) rename core/base/tools/commander/workspace_template/Displays/{ => Resources}/BOY Examples/widgets/2_5_4_XY_Graph.opi (100%) rename core/base/tools/commander/workspace_template/Displays/{ => Resources}/BOY Examples/widgets/2_6_1_IntensityGraph.opi (100%) rename core/base/tools/commander/workspace_template/Displays/{ => Resources}/BOY Examples/widgets/2_6_2_IntensityGraph_Javascript.opi (100%) rename core/base/tools/commander/workspace_template/Displays/{ => Resources}/BOY Examples/widgets/2_6_3_IntensityGraph_Python.opi (100%) rename core/base/tools/commander/workspace_template/Displays/{ => Resources}/BOY Examples/widgets/3_1_Action_Button.opi (100%) rename core/base/tools/commander/workspace_template/Displays/{ => Resources}/BOY Examples/widgets/3_2_1_BoolButton_Switch.opi (100%) rename core/base/tools/commander/workspace_template/Displays/{ => Resources}/BOY Examples/widgets/3_3_Menu_Button.opi (100%) rename core/base/tools/commander/workspace_template/Displays/{ => Resources}/BOY Examples/widgets/3_4_1_Text_Input.opi (100%) rename core/base/tools/commander/workspace_template/Displays/{ => Resources}/BOY Examples/widgets/3_4_2_NativeTextInput.opi (100%) rename core/base/tools/commander/workspace_template/Displays/{ => Resources}/BOY Examples/widgets/3_5_Knob_Slider.opi (100%) rename core/base/tools/commander/workspace_template/Displays/{ => Resources}/BOY Examples/widgets/3_6_ChoiceWidgets.opi (100%) rename core/base/tools/commander/workspace_template/Displays/{ => Resources}/BOY Examples/widgets/4_1_GroupingContainer.opi (100%) rename core/base/tools/commander/workspace_template/Displays/{ => Resources}/BOY Examples/widgets/4_2_2_LinkingContainer.opi (100%) rename core/base/tools/commander/workspace_template/Displays/{ => Resources}/BOY Examples/widgets/4_2_LinkingContainer.opi (100%) rename core/base/tools/commander/workspace_template/Displays/{ => Resources}/BOY Examples/widgets/4_3_TabbedContainer.opi (100%) rename core/base/tools/commander/workspace_template/Displays/{ => Resources}/BOY Examples/widgets/4_4_WebBrowser.opi (100%) rename core/base/tools/commander/workspace_template/Displays/{ => Resources}/BOY Examples/widgets/4_5_Table.opi (100%) rename core/base/tools/commander/workspace_template/Displays/{ => Resources}/BOY Examples/widgets/4_6_1_SashContainer.opi (100%) rename core/base/tools/commander/workspace_template/Displays/{ => Resources}/BOY Examples/widgets/4_6_2_SashContainer.opi (100%) rename core/base/tools/commander/workspace_template/Displays/{ => Resources}/BOY Examples/widgets/4_6_Array.opi (100%) rename core/base/tools/commander/workspace_template/Displays/{ => Resources}/BOY Examples/widgets/5_1_GridLayout.opi (100%) rename core/base/tools/commander/workspace_template/Displays/{ => Resources}/BOY Examples/widgets/DynamicSymbols/DyanmicSymbol.opi (100%) rename core/base/tools/commander/workspace_template/Displays/{ => Resources}/BOY Examples/widgets/DynamicSymbols/macro.opi (100%) rename core/base/tools/commander/workspace_template/Displays/{ => Resources}/BOY Examples/widgets/SymbolWidgets.opi (100%) rename core/base/tools/commander/workspace_template/Displays/{ => Resources}/BOY Examples/widgets/images/Off_1.png (100%) rename core/base/tools/commander/workspace_template/Displays/{ => Resources}/BOY Examples/widgets/images/Off_2.png (100%) rename core/base/tools/commander/workspace_template/Displays/{ => Resources}/BOY Examples/widgets/images/Off_3.png (100%) rename core/base/tools/commander/workspace_template/Displays/{ => Resources}/BOY Examples/widgets/images/Off_4.png (100%) rename core/base/tools/commander/workspace_template/Displays/{ => Resources}/BOY Examples/widgets/images/Off_5.png (100%) rename core/base/tools/commander/workspace_template/Displays/{ => Resources}/BOY Examples/widgets/images/Off_7.png (100%) rename core/base/tools/commander/workspace_template/Displays/{ => Resources}/BOY Examples/widgets/images/On_1.png (100%) rename core/base/tools/commander/workspace_template/Displays/{ => Resources}/BOY Examples/widgets/images/On_2.png (100%) rename core/base/tools/commander/workspace_template/Displays/{ => Resources}/BOY Examples/widgets/images/On_3.png (100%) rename core/base/tools/commander/workspace_template/Displays/{ => Resources}/BOY Examples/widgets/images/On_4.png (100%) rename core/base/tools/commander/workspace_template/Displays/{ => Resources}/BOY Examples/widgets/images/On_5.png (100%) rename core/base/tools/commander/workspace_template/Displays/{ => Resources}/BOY Examples/widgets/images/On_7.png (100%) rename core/base/tools/commander/workspace_template/Displays/{ => Resources}/BOY Examples/widgets/images/Readme.txt (100%) create mode 100644 core/base/tools/commander/workspace_template/Displays/Resources/definitions.yaml diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/CF/Main.opi b/core/base/tools/commander/workspace_template/Displays/Apps/CF/Main.opi index ea168a42f..656a0b03a 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/CF/Main.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/CF/Main.opi @@ -10,7 +10,7 @@ - 1.5.4.202102122300 + 1.5.5.202103012118 @@ -72,7 +72,7 @@ 229 false 763e00b7:150973f1dd8:-7cf4 - 12 + 42 12 @@ -401,10 +401,10 @@ Yamcs.issueCommand('/cfs/cf/SendHK', {});]]> $(pv_value) true Action Button - 97 + 127 5e28a52b:177681d8a5c:-7a51 144 - 45 + 114 @@ -457,10 +457,10 @@ Yamcs.issueCommand('/cfs/cf/WakeUp', {});]]> $(pv_value) true Action Button - 97 + 127 5e28a52b:177681d8a5c:-7a49 144 - 64 + 133 @@ -498,7 +498,7 @@ ScriptUtil.openOPI(display.getWidget("Events"), opi_to_open_path, RunModeService - 20 + 25 Events 0 @@ -512,7 +512,7 @@ ScriptUtil.openOPI(display.getWidget("Events"), opi_to_open_path, RunModeService - Events + Event Filters false $(pv_name) $(pv_value) @@ -520,7 +520,7 @@ $(pv_value) Action Button 127 -19107c2b:177da1db5df:-e22 - 306 - 47 + 144 + 42 \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/CI/Main.opi b/core/base/tools/commander/workspace_template/Displays/Apps/CI/Main.opi index 801ca9100..b0afc1b8e 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/CI/Main.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/CI/Main.opi @@ -10,12 +10,12 @@ - 1.5.4.202102122300 + 1.5.5.202103012118 6 - 200 + 220 true ci @@ -31,7 +31,7 @@ true true Display - 500 + 360 -33cb7c72:150aa4c347f:-76c2 -1 -1 @@ -368,7 +368,7 @@ $(pv_value) 192 false -33cb7c72:150aa4c347f:-75c9 - 46 + 72 6 @@ -561,16 +561,21 @@ $(pv_value) +var opi_to_open_path = FileUtil.workspacePathToSysPath(display.getMacroValue("EVENTS_OPI")); +var macroInput = DataUtil.createMacrosInput(true); + +ScriptUtil.openOPI(display.getWidget("Events"), opi_to_open_path, RunModeService.DisplayMode.REPLACE, macroInput );]]> true false - true + false - + false @@ -584,11 +589,11 @@ Yamcs.issueCommand('/cfs/ci/WakeUp', {});]]> false - + - 18 - ../../Resources/send.png - NoOp_2 + 26 + + Events 0 @@ -600,16 +605,16 @@ Yamcs.issueCommand('/cfs/ci/WakeUp', {});]]> - WakeUp + Event Filters false $(pv_name) $(pv_value) true Action Button - 90 - 5e28a52b:177681d8a5c:-79f8 - 62 - 144 + 156 + -19107c2b:177da1db5df:-990 + 18 + 156 @@ -642,7 +647,7 @@ Yamcs.issueCommand('/cfs/ci/ProcessTimeouts', {});]]> - 18 + 26 ../../Resources/send.png NoOp_3 0 @@ -663,9 +668,9 @@ $(pv_value) true Action Button 156 - 5e28a52b:177681d8a5c:-79ee - 62 - 168 + -69f8bd78:177f094d5fe:-2568 + 198 + 156 @@ -673,21 +678,16 @@ $(pv_value) +Yamcs.issueCommand('/cfs/ci/WakeUp', {});]]> true false - false + true - + false @@ -701,11 +701,11 @@ ScriptUtil.openOPI(display.getWidget("Events"), opi_to_open_path, RunModeService false - + - 20 - - Events + 26 + ../../Resources/send.png + NoOp_2 0 @@ -717,15 +717,15 @@ ScriptUtil.openOPI(display.getWidget("Events"), opi_to_open_path, RunModeService - Events + WakeUp false $(pv_name) $(pv_value) true Action Button - 127 - -19107c2b:177da1db5df:-990 - 348 - 36 + 156 + -69f8bd78:177f094d5fe:-2560 + 198 + 181 \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/CS/Main.opi b/core/base/tools/commander/workspace_template/Displays/Apps/CS/Main.opi index 42c0b5f02..47e32a0c5 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/CS/Main.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/CS/Main.opi @@ -10,12 +10,12 @@ - 1.5.4.202102122300 + 1.5.5.202103012118 6 - 420 + 510 true cs @@ -31,7 +31,7 @@ true true Display - 900 + 770 -33cb7c72:150aa4c347f:-76c2 -1 -1 @@ -4208,16 +4208,21 @@ $(pv_value) +var opi_to_open_path = FileUtil.workspacePathToSysPath(display.getMacroValue("EVENTS_OPI")); +var macroInput = DataUtil.createMacrosInput(true); + +ScriptUtil.openOPI(display.getWidget("Events"), opi_to_open_path, RunModeService.DisplayMode.REPLACE, macroInput );]]> true false - true + false - + false @@ -4231,11 +4236,11 @@ Yamcs.issueCommand('/cfs/cs/SendHK', {});]]> false - + - 18 - ../../Resources/send.png - NoOp_47 + 26 + + Events 0 @@ -4247,16 +4252,16 @@ Yamcs.issueCommand('/cfs/cs/SendHK', {});]]> - SendHK + Event FIlters false $(pv_name) $(pv_value) true Action Button - 90 - 5e28a52b:177681d8a5c:-77da - 464 - 55 + 171 + -69f8bd78:177f094d5fe:-24f4 + 47 + 414 @@ -4265,7 +4270,7 @@ $(pv_value) +Yamcs.issueCommand('/cfs/cs/SendHK', {});]]> true @@ -4289,9 +4294,9 @@ Yamcs.issueCommand('/cfs/cs/BackgroundCycle', {});]]> - 18 + 25 ../../Resources/send.png - NoOp_48 + NoOp_47 0 @@ -4303,16 +4308,16 @@ Yamcs.issueCommand('/cfs/cs/BackgroundCycle', {});]]> - Background Cycle + SendHK false $(pv_name) $(pv_value) true Action Button - 169 - 5e28a52b:177681d8a5c:-77d2 - 464 - 72 + 171 + -69f8bd78:177f094d5fe:-24ec + 47 + 450 @@ -4320,21 +4325,16 @@ $(pv_value) +Yamcs.issueCommand('/cfs/cs/BackgroundCycle', {});]]> true false - false + true - + false @@ -4348,11 +4348,11 @@ ScriptUtil.openOPI(display.getWidget("Events"), opi_to_open_path, RunModeService false - + - 20 - - Events + 26 + ../../Resources/send.png + NoOp_48 0 @@ -4364,15 +4364,15 @@ ScriptUtil.openOPI(display.getWidget("Events"), opi_to_open_path, RunModeService - Events + Background Cycle false $(pv_name) $(pv_value) true Action Button - 127 - -19107c2b:177da1db5df:-81a - 762 - 71 + 171 + -69f8bd78:177f094d5fe:-24e4 + 47 + 474 \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/DS/Main.opi b/core/base/tools/commander/workspace_template/Displays/Apps/DS/Main.opi index 7025d558f..f2d1353a0 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/DS/Main.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/DS/Main.opi @@ -10,7 +10,7 @@ - 1.5.4.202102122300 + 1.5.5.202103012118 @@ -2675,7 +2675,7 @@ ScriptUtil.openOPI(display.getWidget("Events"), opi_to_open_path, RunModeService - 20 + 19 Events 0 @@ -2689,15 +2689,15 @@ ScriptUtil.openOPI(display.getWidget("Events"), opi_to_open_path, RunModeService - Events + Event Filters false $(pv_name) $(pv_value) true Action Button - 127 + 154 -19107c2b:177da1db5df:1a4 - 552 - 38 + 347 + 346 \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/FM/GetDirPkt.opi b/core/base/tools/commander/workspace_template/Displays/Apps/FM/GetDir.opi similarity index 82% rename from core/base/tools/commander/workspace_template/Displays/Apps/FM/GetDirPkt.opi rename to core/base/tools/commander/workspace_template/Displays/Apps/FM/GetDir.opi index 7f66f9cc9..146a6fa98 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/FM/GetDirPkt.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/FM/GetDir.opi @@ -10,7 +10,7 @@ - 1.5.3 + 1.5.5.202103012118 @@ -105,7 +105,7 @@ Directory 0 true - loc://GetDirPktDirectory + loc://GetDirFileDirectory 0.0 @@ -202,7 +202,7 @@ $(pv_value) Filename 0 true - loc://GetDirPktFileFilename + loc://GetDirFileFilename 0.0 @@ -324,7 +324,7 @@ Yamcs.issueCommand('/cfs/fm/GetDirFile', - GetDirPkt + GetDirFile false $(pv_name) $(pv_value) @@ -332,8 +332,8 @@ $(pv_value) Action Button 109 3224b3ef:1778cb22598:-706b - 120 - 186 + 24 + 162 @@ -368,7 +368,7 @@ $(pv_value) 10.0 3 false - loc://GetDirPktGetSizeTimeMode<VDouble> + loc://GetDirFileGetSizeTimeMode<VDouble> @@ -390,4 +390,73 @@ $(pv_value) 168 117 + + + + + + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 18 + ../../Resources/send.png + NoOp_1 + 0 + + + + + true + true + false + + + + GetDirPkt + false + $(pv_name) +$(pv_value) + true + Action Button + 109 + -69f8bd78:177f094d5fe:-2369 + 163 + 162 + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/FM/Main.opi b/core/base/tools/commander/workspace_template/Displays/Apps/FM/Main.opi index 924fbd5dd..5b14a2126 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/FM/Main.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/FM/Main.opi @@ -10,12 +10,12 @@ - 1.5.4.202102122300 + 1.5.5.202103012118 6 - 400 + 340 true fm @@ -31,7 +31,7 @@ true true Display - 600 + 560 -33cb7c72:150aa4c347f:-76c2 -1 -1 @@ -849,10 +849,10 @@ $(pv_value) 1 true Label - 72 + 81 false -736e4684:150ac3c95a1:-6f2e - 21 + 12 210 @@ -1049,10 +1049,10 @@ $(pv_value) 1 true Label - 72 + 87 false -736e4684:150ac3c95a1:-6f0e - 21 + 6 305 @@ -1097,20 +1097,19 @@ $(pv_value) - - - - true + + Concat.opi + + true + + 1 false false - + false @@ -1124,11 +1123,11 @@ Yamcs.issueCommand('/cfs/fm/SendHK', {});]]> false - + - 17 - ../../Resources/send.png - NoOp_2 + 20 + + NoOp_3 0 @@ -1140,31 +1139,25 @@ Yamcs.issueCommand('/cfs/fm/SendHK', {});]]> - SendHK + Concat Files false $(pv_name) $(pv_value) true Action Button - 115 - 3224b3ef:1778cb22598:-6b88 - 210 - 102 + 153 + -69f8bd78:177f094d5fe:-2440 + 222 + 144 - - - - true + + CopyFile.opi + + true + + 1 @@ -1189,7 +1182,7 @@ ScriptUtil.openOPI(display.getWidget("Events"), opi_to_open_path, RunModeService 20 - Events + NoOp_4 0 @@ -1201,15 +1194,847 @@ ScriptUtil.openOPI(display.getWidget("Events"), opi_to_open_path, RunModeService - Events + Copy File false $(pv_name) $(pv_value) true Action Button - 127 - -19107c2b:177da1db5df:3aa - 438 - 57 + 153 + -69f8bd78:177f094d5fe:-2428 + 222 + 163 + + + + + CreateDir.opi + + true + + 1 + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 20 + + NoOp_5 + 0 + + + + + true + true + false + + + + Create Directory + false + $(pv_name) +$(pv_value) + true + Action Button + 153 + -69f8bd78:177f094d5fe:-2421 + 222 + 182 + + + + + Decompress.opi + + true + + 1 + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 20 + + NoOp_6 + 0 + + + + + true + true + false + + + + Decompress File + false + $(pv_name) +$(pv_value) + true + Action Button + 153 + -69f8bd78:177f094d5fe:-2417 + 222 + 201 + + + + + DeleteFile.opi + + true + + 1 + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 20 + + NoOp_7 + 0 + + + + + true + true + false + + + + Delete File + false + $(pv_name) +$(pv_value) + true + Action Button + 153 + -69f8bd78:177f094d5fe:-2410 + 222 + 220 + + + + + DeleteAllFiles.opi + + true + + 1 + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 20 + + NoOp_8 + 0 + + + + + true + true + false + + + + Delete All Files + false + $(pv_name) +$(pv_value) + true + Action Button + 153 + -69f8bd78:177f094d5fe:-2406 + 222 + 239 + + + + + DeleteDir.opi + + true + + 1 + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 20 + + NoOp_9 + 0 + + + + + true + true + false + + + + Delete Directory + false + $(pv_name) +$(pv_value) + true + Action Button + 153 + -69f8bd78:177f094d5fe:-23fc + 222 + 258 + + + + + GetDir.opi + + true + + 1 + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 20 + + NoOp_10 + 0 + + + + + true + true + false + + + + Get Directory + false + $(pv_name) +$(pv_value) + true + Action Button + 153 + -69f8bd78:177f094d5fe:-23f2 + 222 + 277 + + + + + GetFileInfo.opi + + true + + 1 + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 20 + + NoOp_12 + 0 + + + + + true + true + false + + + + Get File Info + false + $(pv_name) +$(pv_value) + true + Action Button + 153 + -69f8bd78:177f094d5fe:-23de + 384 + 144 + + + + + GetFreeSpace.opi + + true + + 1 + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 20 + + NoOp_13 + 0 + + + + + true + true + false + + + + Get Free Space + false + $(pv_name) +$(pv_value) + true + Action Button + 153 + -69f8bd78:177f094d5fe:-23d7 + 384 + 163 + + + + + GetOpenFiles.opi + + true + + 1 + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 20 + + NoOp_14 + 0 + + + + + true + true + false + + + + Get Open Files + false + $(pv_name) +$(pv_value) + true + Action Button + 153 + -69f8bd78:177f094d5fe:-23d0 + 384 + 182 + + + + + MoveFile.opi + + true + + 1 + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 20 + + NoOp_15 + 0 + + + + + true + true + false + + + + Move File + false + $(pv_name) +$(pv_value) + true + Action Button + 153 + -69f8bd78:177f094d5fe:-23c9 + 384 + 201 + + + + + RenameFile.opi + + true + + 1 + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 20 + + NoOp_16 + 0 + + + + + true + true + false + + + + Rename File + false + $(pv_name) +$(pv_value) + true + Action Button + 153 + -69f8bd78:177f094d5fe:-23c2 + 384 + 220 + + + + + SetPerm.opi + + true + + 1 + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 20 + + NoOp_17 + 0 + + + + + true + true + false + + + + Set Permissions + false + $(pv_name) +$(pv_value) + true + Action Button + 153 + -69f8bd78:177f094d5fe:-23b6 + 384 + 239 + + + + + SetTableState.opi + + true + + 1 + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 20 + + NoOp_18 + 0 + + + + + true + true + false + + + + Set Table State + false + $(pv_name) +$(pv_value) + true + Action Button + 153 + -69f8bd78:177f094d5fe:-23af + 384 + 258 + + + + + + + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 20 + + Events + 0 + + + + + true + true + false + + + + Event Filters + false + $(pv_name) +$(pv_value) + true + Action Button + 153 + -69f8bd78:177f094d5fe:-232d + 384 + 277 + + + + + + + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 20 + ../../Resources/send.png + NoOp_2 + 0 + + + + + true + true + false + + + + SendHK + false + $(pv_name) +$(pv_value) + true + Action Button + 153 + -69f8bd78:177f094d5fe:-2325 + 384 + 296 \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/HK/Main.opi b/core/base/tools/commander/workspace_template/Displays/Apps/HK/Main.opi index 27d7ae883..260514c93 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/HK/Main.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/HK/Main.opi @@ -10,7 +10,7 @@ - 1.5.4.202102122300 + 1.5.5.202103012118 @@ -701,7 +701,7 @@ $(pv_value) 171 689e2ae8:1777f312f88:-7741 62 - 168 + 193 @@ -756,7 +756,7 @@ $(pv_value) 171 689e2ae8:1777f312f88:-7725 62 - 187 + 212 @@ -808,15 +808,15 @@ ScriptUtil.openOPI(display.getWidget("Events"), opi_to_open_path, RunModeService - Events + Event Filters false $(pv_name) $(pv_value) true Action Button - 127 + 171 -19107c2b:177da1db5df:6d4 - 414 - 36 + 62 + 174 \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/HS/Main.opi b/core/base/tools/commander/workspace_template/Displays/Apps/HS/Main.opi index 35110751c..f68f33971 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/HS/Main.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/HS/Main.opi @@ -10,7 +10,7 @@ - 1.5.4.202102122300 + 1.5.5.202103012118 @@ -6968,7 +6968,7 @@ ScriptUtil.openOPI(display.getWidget("Events"), opi_to_open_path, RunModeService - Events + Event Filters false $(pv_name) $(pv_value) @@ -6976,7 +6976,7 @@ $(pv_value) Action Button 127 -19107c2b:177da1db5df:84c - 738 - 37 + 42 + 384 \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/LC/Main.opi b/core/base/tools/commander/workspace_template/Displays/Apps/LC/Main.opi index 14dbe75e9..36cae3404 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/LC/Main.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/LC/Main.opi @@ -10,12 +10,12 @@ - 1.5.4.202102122300 + 1.5.5.202103012118 6 - 300 + 320 true lc @@ -31,7 +31,7 @@ true true Display - 600 + 300 -33cb7c72:150aa4c347f:-76c2 -1 -1 @@ -1252,7 +1252,7 @@ $(pv_value) 138 689e2ae8:1777f312f88:-79d3 147 - 272 + 291 @@ -1396,15 +1396,15 @@ ScriptUtil.openOPI(display.getWidget("Events"), opi_to_open_path, RunModeService - Events + Event Filters false $(pv_name) $(pv_value) true Action Button - 127 - -19107c2b:177da1db5df:adf - 402 - 36 + 138 + -69f8bd78:177f094d5fe:-223f + 147 + 272 \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/MD/Main.opi b/core/base/tools/commander/workspace_template/Displays/Apps/MD/Main.opi index ac36d663c..2f12bf308 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/MD/Main.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/MD/Main.opi @@ -10,12 +10,12 @@ - 1.5.4.202102122300 + 1.5.5.202103012118 6 - 300 + 320 true md @@ -31,7 +31,7 @@ true true Display - 800 + 560 -33cb7c72:150aa4c347f:-76c2 -1 -1 @@ -45,9 +45,9 @@ true - + - 0 + 1 1 true @@ -177,9 +177,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -250,7 +250,7 @@ Yamcs.issueCommand('/cfs/md/Noop', {});]]> - 18 + 20 ../../Resources/send.png NoOp 0 @@ -273,7 +273,7 @@ $(pv_value) 78 -33cb7c72:150aa4c347f:-75fa 223 - 37 + 36 @@ -306,7 +306,7 @@ Yamcs.issueCommand('/cfs/md/Reset', {});]]> - 17 + 20 ../../Resources/send.png NoOp_1 0 @@ -329,7 +329,7 @@ $(pv_value) 78 -33cb7c72:150aa4c347f:-75f9 223 - 58 + 55 @@ -405,11 +405,11 @@ $(pv_value) 1 true Label - 163 + 97 false -736e4684:150ac3c95a1:-6f2e - 12 - 96 + 0 + 74 @@ -421,9 +421,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -460,8 +460,8 @@ $(pv_value) 100 false 7b256c5c:150b979c7e3:-79b0 - 184 - 96 + 108 + 74 @@ -513,7 +513,7 @@ $(pv_value) false 7b256c5c:150b979c7e3:-79af 141 - 174 + 192 @@ -565,7 +565,7 @@ $(pv_value) false 7b256c5c:150b979c7e3:-79ae 240 - 174 + 192 @@ -617,7 +617,7 @@ $(pv_value) false 7b256c5c:150b979c7e3:-79ad 339 - 174 + 192 @@ -669,7 +669,7 @@ $(pv_value) false 7b256c5c:150b979c7e3:-79ac 438 - 174 + 192 @@ -721,7 +721,7 @@ $(pv_value) false 7b256c5c:150b979c7e3:-79ab 141 - 193 + 211 @@ -773,7 +773,7 @@ $(pv_value) false 7b256c5c:150b979c7e3:-79aa 240 - 193 + 211 @@ -825,7 +825,7 @@ $(pv_value) false 7b256c5c:150b979c7e3:-79a9 339 - 193 + 211 @@ -877,7 +877,7 @@ $(pv_value) false 7b256c5c:150b979c7e3:-79a8 438 - 193 + 211 @@ -929,7 +929,7 @@ $(pv_value) false 7b256c5c:150b979c7e3:-79a7 141 - 212 + 230 @@ -981,7 +981,7 @@ $(pv_value) false 7b256c5c:150b979c7e3:-79a6 240 - 212 + 230 @@ -1033,7 +1033,7 @@ $(pv_value) false 7b256c5c:150b979c7e3:-79a5 339 - 212 + 230 @@ -1085,7 +1085,7 @@ $(pv_value) false 7b256c5c:150b979c7e3:-79a4 438 - 212 + 230 @@ -1137,7 +1137,7 @@ $(pv_value) false 7b256c5c:150b979c7e3:-79a3 141 - 231 + 249 @@ -1189,7 +1189,7 @@ $(pv_value) false 7b256c5c:150b979c7e3:-79a2 240 - 231 + 249 @@ -1241,7 +1241,7 @@ $(pv_value) false 7b256c5c:150b979c7e3:-79a1 339 - 231 + 249 @@ -1293,7 +1293,7 @@ $(pv_value) false 7b256c5c:150b979c7e3:-79a0 438 - 231 + 249 @@ -1345,7 +1345,7 @@ $(pv_value) false 7b256c5c:150b979c7e3:-799f 141 - 250 + 268 @@ -1397,7 +1397,7 @@ $(pv_value) false 7b256c5c:150b979c7e3:-799e 240 - 250 + 268 @@ -1449,7 +1449,7 @@ $(pv_value) false 7b256c5c:150b979c7e3:-799d 339 - 250 + 268 @@ -1501,7 +1501,7 @@ $(pv_value) false 7b256c5c:150b979c7e3:-799c 438 - 250 + 268 @@ -1553,7 +1553,7 @@ $(pv_value) false 7b256c5c:150b979c7e3:-799b 141 - 269 + 287 @@ -1605,7 +1605,7 @@ $(pv_value) false 7b256c5c:150b979c7e3:-799a 240 - 269 + 287 @@ -1657,7 +1657,7 @@ $(pv_value) false 7b256c5c:150b979c7e3:-7999 338 - 269 + 287 @@ -1709,7 +1709,7 @@ $(pv_value) false 7b256c5c:150b979c7e3:-7998 438 - 269 + 287 @@ -1749,7 +1749,7 @@ $(pv_value) false 7b256c5c:150b979c7e3:-794a 3 - 174 + 192 @@ -1789,7 +1789,7 @@ $(pv_value) false 7b256c5c:150b979c7e3:-77c9 154 - 155 + 173 @@ -1829,7 +1829,7 @@ $(pv_value) false 7b256c5c:150b979c7e3:-77b8 447 - 155 + 173 @@ -1869,7 +1869,7 @@ $(pv_value) false 7b256c5c:150b979c7e3:-77b3 348 - 155 + 173 @@ -1909,7 +1909,7 @@ $(pv_value) false 7b256c5c:150b979c7e3:-77ae 249 - 155 + 173 @@ -1949,7 +1949,7 @@ $(pv_value) false 7b256c5c:150b979c7e3:-77a0 3 - 212 + 230 @@ -1989,7 +1989,7 @@ $(pv_value) false 7b256c5c:150b979c7e3:-779b 3 - 231 + 249 @@ -2029,7 +2029,7 @@ $(pv_value) false 7b256c5c:150b979c7e3:-7796 3 - 250 + 268 @@ -2069,7 +2069,7 @@ $(pv_value) false 7b256c5c:150b979c7e3:-7791 3 - 269 + 287 @@ -2109,7 +2109,7 @@ $(pv_value) false 7b256c5c:150b979c7e3:-778c 3 - 193 + 211 @@ -2338,8 +2338,12 @@ $(pv_value) +var opi_to_open_path = FileUtil.workspacePathToSysPath(display.getMacroValue("EVENTS_OPI")); +var macroInput = DataUtil.createMacrosInput(true); + +ScriptUtil.openOPI(display.getWidget("Events"), opi_to_open_path, RunModeService.DisplayMode.REPLACE, macroInput );]]> true @@ -2347,7 +2351,7 @@ Yamcs.issueCommand('/cfs/md/SendHK', {});]]> false false - + false @@ -2361,11 +2365,11 @@ Yamcs.issueCommand('/cfs/md/SendHK', {});]]> false - + 20 - ../../Resources/send.png - NoOp_2 + + Events 0 @@ -2377,14 +2381,14 @@ Yamcs.issueCommand('/cfs/md/SendHK', {});]]> - SendHK + Event Filters false $(pv_name) $(pv_value) true Action Button 128 - 689e2ae8:1777f312f88:-7a51 + -19107c2b:177da1db5df:d33 372 96 @@ -2396,7 +2400,7 @@ $(pv_value) importPackage(Packages.org.yamcs.studio.script); importPackage(Packages.org.yamcs.studio.data); -Yamcs.issueCommand('/cfs/md/Wakeup', {});]]> +Yamcs.issueCommand('/cfs/md/SendHK', {});]]> true @@ -2422,7 +2426,7 @@ Yamcs.issueCommand('/cfs/md/Wakeup', {});]]> 20 ../../Resources/send.png - NoOp_3 + NoOp_2 0 @@ -2434,14 +2438,14 @@ Yamcs.issueCommand('/cfs/md/Wakeup', {});]]> - Wakeup + SendHK false $(pv_name) $(pv_value) true Action Button 128 - 689e2ae8:1777f312f88:-7a49 + -69f8bd78:177f094d5fe:-21fa 372 115 @@ -2452,12 +2456,8 @@ $(pv_value) +Yamcs.issueCommand('/cfs/md/Wakeup', {});]]> true @@ -2465,7 +2465,7 @@ ScriptUtil.openOPI(display.getWidget("Events"), opi_to_open_path, RunModeService false false - + false @@ -2479,11 +2479,11 @@ ScriptUtil.openOPI(display.getWidget("Events"), opi_to_open_path, RunModeService false - + 20 - - Events + ../../Resources/send.png + NoOp_3 0 @@ -2495,15 +2495,15 @@ ScriptUtil.openOPI(display.getWidget("Events"), opi_to_open_path, RunModeService - Events + Wakeup false $(pv_name) $(pv_value) true Action Button - 127 - -19107c2b:177da1db5df:d33 - 642 - 20 + 128 + -69f8bd78:177f094d5fe:-21f2 + 372 + 134 \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/MM/Main.opi b/core/base/tools/commander/workspace_template/Displays/Apps/MM/Main.opi index ae22d8802..e84742652 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/MM/Main.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/MM/Main.opi @@ -10,12 +10,12 @@ - 1.5.4.202102122300 + 1.5.5.202103012118 6 - 360 + 370 true mm @@ -31,7 +31,7 @@ true true Display - 700 + 380 -33cb7c72:150aa4c347f:-76c2 -1 -1 @@ -45,9 +45,9 @@ true - + - 0 + 1 1 true @@ -177,9 +177,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -381,9 +381,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -433,9 +433,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -485,9 +485,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -537,9 +537,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -589,9 +589,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -641,9 +641,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -1531,11 +1531,16 @@ $(pv_value) - scripts/NoOp.js + +var opi_to_open_path = FileUtil.workspacePathToSysPath(display.getMacroValue("EVENTS_OPI")); +var macroInput = DataUtil.createMacrosInput(true); + +ScriptUtil.openOPI(display.getWidget("Events"), opi_to_open_path, RunModeService.DisplayMode.REPLACE, macroInput );]]> true @@ -1543,7 +1548,7 @@ Yamcs.issueCommand('/cfs/mm/SendHK',{});]]> false false - + false @@ -1557,11 +1562,11 @@ Yamcs.issueCommand('/cfs/mm/SendHK',{});]]> false - + 20 - ../../Resources/send.png - NoOp_2 + + Events 0 @@ -1573,30 +1578,25 @@ Yamcs.issueCommand('/cfs/mm/SendHK',{});]]> - SendHK + Event Filters false $(pv_name) $(pv_value) true Action Button 175 - 54e87698:1777e01a75d:-732b + -69f8bd78:177f094d5fe:-21c5 201 323 - + scripts/NoOp.js +Yamcs.issueCommand('/cfs/mm/SendHK',{});]]> true @@ -1604,7 +1604,7 @@ ScriptUtil.openOPI(display.getWidget("Events"), opi_to_open_path, RunModeService false false - + false @@ -1618,11 +1618,11 @@ ScriptUtil.openOPI(display.getWidget("Events"), opi_to_open_path, RunModeService false - + 20 - - Events + ../../Resources/send.png + NoOp_2 0 @@ -1634,15 +1634,15 @@ ScriptUtil.openOPI(display.getWidget("Events"), opi_to_open_path, RunModeService - Events + SendHK false $(pv_name) $(pv_value) true Action Button - 127 - -19107c2b:177da1db5df:eb1 - 474 - 36 + 175 + -69f8bd78:177f094d5fe:-21bd + 201 + 342 \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/PE/Baro.opi b/core/base/tools/commander/workspace_template/Displays/Apps/PE/Baro.opi new file mode 100644 index 000000000..ecfc92531 --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/Apps/PE/Baro.opi @@ -0,0 +1,1051 @@ + + + + + false + -1 + -1 + + false + + + + 1.5.5.202103012118 + + + + 6 + 580 + + true + + + + + true + true + true + true + true + Display + 820 + -33cb7c72:150aa4c347f:-76c2 + -1 + -1 + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_50 + + + true + true + false + + + Timestamp Last + + true + 1 + true + Label + 106 + false + -10b748b0:17773fb054b:-7b8c + 15 + 74 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_2 + 0 + false + /cfs/pe/PE_HkTlm_t.TimestampLastBaro.Seconds + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + -10b748b0:17773fb054b:-7b82 + 132 + 74 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_55 + + + true + true + false + + + Msg Time + + true + 1 + true + Label + 82 + false + -10b748b0:17773fb054b:-7b1e + 39 + 36 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_7 + 0 + false + /cfs/pe/PE_HkTlm_t.TimeLastBaro.Seconds + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + -10b748b0:17773fb054b:-7b1d + 132 + 36 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_60 + + + true + true + false + + + Alt Origin + + true + 1 + true + Label + 74 + false + -10b748b0:17773fb054b:-7ac3 + 50 + 112 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_11 + 3 + false + /cfs/pe/PE_HkTlm_t.BaroAltOrigin + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + -10b748b0:17773fb054b:-7ac2 + 132 + 112 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_80 + + + true + true + false + + + Initialized + + true + 1 + true + Label + 74 + false + 7565d3e4:177c1ff26c3:-776e + 53 + 188 + + + + false + false + + + + -1 + true + + + + 0 + 1 + 3 + + + + 0 + true + true + + Default + + false + + + + 20 + LED_2 + + + + OFF + + + + ON + /cfs/pe/PE_HkTlm_t.BaroInitialized + + + + true + true + true + + + false + false + $(pv_name) +$(pv_value) + true + LED + 20 + 7565d3e4:177c1ff26c3:-776d + 135 + 188 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_81 + + + true + true + false + + + Fault + + true + 1 + true + Label + 40 + false + 7565d3e4:177c1ff26c3:-7766 + 186 + 207 + + + + false + false + + + + -1 + true + + + + 0 + 1 + 3 + + + + 0 + true + true + + Default + + false + + + + 20 + LED_3 + + + + OFF + + + + ON + /cfs/pe/PE_HkTlm_t.BaroFault + + + + true + true + true + + + false + false + $(pv_name) +$(pv_value) + true + LED + 20 + 7565d3e4:177c1ff26c3:-7765 + 234 + 207 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_82 + + + true + true + false + + + Timeout + + true + 1 + true + Label + 58 + false + 7565d3e4:177c1ff26c3:-775e + 168 + 188 + + + + false + false + + + + -1 + true + + + + 0 + 1 + 3 + + + + 0 + true + true + + Default + + false + + + + 20 + LED_4 + + + + OFF + + + + ON + /cfs/pe/PE_HkTlm_t.BaroTimeout + + + + true + true + true + + + false + false + $(pv_name) +$(pv_value) + true + LED + 20 + 7565d3e4:177c1ff26c3:-775d + 234 + 188 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_96 + + + true + true + false + + + Fused + + true + 1 + true + Label + 59 + false + 7565d3e4:177c1ff26c3:-7692 + 68 + 207 + + + + false + false + + + + -1 + true + + + + 0 + 1 + 3 + + + + 0 + true + true + + Default + + false + + + + 20 + LED_18 + + + + OFF + + + + ON + /cfs/pe/PE_HkTlm_t.BaroFuse + + + + true + true + true + + + false + false + $(pv_name) +$(pv_value) + true + LED + 20 + 7565d3e4:177c1ff26c3:-7691 + 135 + 207 + + + + + + + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 20 + ../../Resources/send.png + NoOp_4 + 0 + + + + + true + true + false + + + + Ena + false + $(pv_name) +$(pv_value) + true + Action Button + 72 + 7565d3e4:177c1ff26c3:-7582 + 97 + 159 + + + + + + + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 20 + ../../Resources/send.png + NoOp_5 + 0 + + + + + true + true + false + + + + Dis + false + $(pv_name) +$(pv_value) + true + Action Button + 72 + 7565d3e4:177c1ff26c3:-7581 + 169 + 159 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_112 + + + true + true + false + + + Msg Count + + true + 1 + true + Label + 85 + false + 7565d3e4:177c1ff26c3:-74fe + 39 + 131 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_26 + 0 + false + /cfs/pe/PE_HkTlm_t.SensorCombinedMsgCount + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + 7565d3e4:177c1ff26c3:-74fd + 132 + 131 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_35 + 0 + false + /cfs/pe/PE_HkTlm_t.TimeLastBaro.Subseconds + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + 7565d3e4:177c1ff26c3:-64f2 + 132 + 55 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_38 + 0 + false + /cfs/pe/PE_HkTlm_t.TimestampLastBaro.Subseconds + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + 7565d3e4:177c1ff26c3:-5f95 + 132 + 93 + + + + false + + + + + + + 0 + 1 + true + + Default Bold + + + + + 20 + 1 + Label_114 + + + true + true + false + + + Position Estimator - Baro + + true + 1 + true + Label + 237 + false + -69f8bd78:177f094d5fe:-1dfd + 17 + 12 + + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/PE/Distance.opi b/core/base/tools/commander/workspace_template/Displays/Apps/PE/Distance.opi new file mode 100644 index 000000000..a572ce60e --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/Apps/PE/Distance.opi @@ -0,0 +1,751 @@ + + + + + false + -1 + -1 + + false + + + + 1.5.5.202103012118 + + + + 6 + 580 + + true + + + + + true + true + true + true + true + Display + 820 + -33cb7c72:150aa4c347f:-76c2 + -1 + -1 + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_53 + + + true + true + false + + + Msg Time + + true + 1 + true + Label + 75 + false + -10b748b0:17773fb054b:-7b42 + 34 + 36 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_5 + 0 + false + /cfs/pe/PE_HkTlm_t.TimeLastDist.Seconds + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + -10b748b0:17773fb054b:-7b41 + 120 + 36 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_62 + + + true + true + false + + + Alt Origin + + true + 1 + true + Label + 73 + false + 7565d3e4:177c1ff26c3:-7883 + 36 + 74 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_13 + 3 + false + /cfs/pe/PE_HkTlm_t.DistAltOrigin + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + 7565d3e4:177c1ff26c3:-7882 + 120 + 74 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_92 + + + true + true + false + + + Initialized + + true + 1 + true + Label + 76 + false + 7565d3e4:177c1ff26c3:-76e0 + 15 + 150 + + + + false + false + + + + -1 + true + + + + 0 + 1 + 3 + + + + 0 + true + true + + Default + + false + + + + 20 + LED_14 + + + + OFF + + + + ON + /cfs/pe/PE_HkTlm_t.DistInitialized + + + + true + true + true + + + false + false + $(pv_name) +$(pv_value) + true + LED + 20 + 7565d3e4:177c1ff26c3:-76df + 99 + 150 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_93 + + + true + true + false + + + Timeout + + true + 1 + true + Label + 58 + false + 7565d3e4:177c1ff26c3:-76c0 + 128 + 150 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_94 + + + true + true + false + + + Fused + + true + 1 + true + Label + 55 + false + 7565d3e4:177c1ff26c3:-76be + 36 + 169 + + + + false + false + + + + -1 + true + + + + 0 + 1 + 3 + + + + 0 + true + true + + Default + + false + + + + 20 + LED_16 + + + + OFF + + + + ON + /cfs/pe/PE_HkTlm_t.DistFuse + + + + true + true + true + + + false + false + $(pv_name) +$(pv_value) + true + LED + 20 + 7565d3e4:177c1ff26c3:-76bd + 99 + 169 + + + + false + + + + + + + 0 + 1 + true + + Default Bold + + + + + 20 + 1 + Label_109 + + + true + true + false + + + Position Estimator - Distance + + true + 1 + true + Label + 238 + false + 7565d3e4:177c1ff26c3:-7549 + 12 + 12 + + + + + + + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 20 + ../../Resources/send.png + NoOp_8 + 0 + + + + + true + true + false + + + + Ena + false + $(pv_name) +$(pv_value) + true + Action Button + 72 + 7565d3e4:177c1ff26c3:-753a + 48 + 121 + + + + + + + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 20 + ../../Resources/send.png + NoOp_9 + 0 + + + + + true + true + false + + + + Dis + false + $(pv_name) +$(pv_value) + true + Action Button + 72 + 7565d3e4:177c1ff26c3:-7539 + 120 + 121 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_113 + + + true + true + false + + + Msg Count + + true + 1 + true + Label + 85 + false + 7565d3e4:177c1ff26c3:-74ef + 24 + 93 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_27 + 0 + false + /cfs/pe/PE_HkTlm_t.DistanceSensorMsgCount + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 99 + false + 7565d3e4:177c1ff26c3:-74ee + 121 + 93 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_34 + 0 + false + /cfs/pe/PE_HkTlm_t.TimeLastDist.Subseconds + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + 7565d3e4:177c1ff26c3:-64fa + 120 + 55 + + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/FM/GetDirFile.opi b/core/base/tools/commander/workspace_template/Displays/Apps/PE/Flow.opi similarity index 67% rename from core/base/tools/commander/workspace_template/Displays/Apps/FM/GetDirFile.opi rename to core/base/tools/commander/workspace_template/Displays/Apps/PE/Flow.opi index 4465c0a38..0c47111dc 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/FM/GetDirFile.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/PE/Flow.opi @@ -10,12 +10,12 @@ - 1.5.3 + 1.5.5.202103012118 6 - 600 + 580 true @@ -28,8 +28,8 @@ true true Display - 800 - 3224b3ef:1778cb22598:-7099 + 820 + -33cb7c72:150aa4c347f:-76c2 -1 -1 @@ -52,7 +52,7 @@ 20 2 - Label + Label_54 true @@ -60,19 +60,19 @@ false - Directory + Msg Time true 1 true Label - 91 + 68 false - 3224b3ef:1778cb22598:-7094 - 54 - 54 + -10b748b0:17773fb054b:-7b30 + 35 + 36 - + false false @@ -80,13 +80,12 @@ - false + true - + 1 1 - true Default @@ -95,17 +94,13 @@ - 0 - 25 + 1 + 20 0 - false - Infinity - -Infinity - false - Directory + Text Update_6 0 - true - loc://GetDirFileDirectory + false + /cfs/pe/PE_HkTlm_t.TimeLastFlow.Seconds 0.0 @@ -115,19 +110,59 @@ false - 0 true - - + ###### $(pv_name) $(pv_value) false + 1 true - Text Input + Text Update 100 - 3224b3ef:1778cb22598:-7090 - 168 - 51 + false + -10b748b0:17773fb054b:-7b2f + 114 + 36 + + + + false + + + + + + + 0 + 1 + true + + Default Bold + + + + + 20 + 1 + Label_110 + + + true + true + false + + + Position Estimator - Flow + + true + 1 + true + Label + 206 + false + 7565d3e4:177c1ff26c3:-7522 + 18 + 12 @@ -149,7 +184,7 @@ $(pv_value) 20 2 - Label_1 + Label_111 true @@ -157,19 +192,19 @@ $(pv_value) false - Filename + Msg Count true 1 true Label - 91 + 93 false - 3224b3ef:1778cb22598:-7085 - 54 - 87 + 7565d3e4:177c1ff26c3:-7513 + 10 + 73 - + false false @@ -177,13 +212,12 @@ $(pv_value) - false + true - + 1 1 - true Default @@ -192,17 +226,13 @@ $(pv_value) - 0 - 25 + 1 + 20 0 - false - 1.7976931348623157E308 - -1.7976931348623157E308 - false - Filename + Text Update_25 0 - true - loc://GetDirFileFilename + false + /cfs/pe/PE_HkTlm_t.OpticalFlowMsgCount 0.0 @@ -212,26 +242,38 @@ $(pv_value) false - 0 true - - + ###### $(pv_name) $(pv_value) false + 1 true - Text Input + Text Update 100 - 3224b3ef:1778cb22598:-7084 - 168 - 84 + false + 7565d3e4:177c1ff26c3:-7512 + 114 + 73 - - - false + + + + + + true + + + + false + false - + + false @@ -241,12 +283,16 @@ $(pv_value) Default + false - + 20 - 2 - Label_2 + ../../Resources/send.png + NoOp_10 + 0 + + true @@ -254,17 +300,17 @@ $(pv_value) false - GetSizeTimeMode - - true - 1 + + Ena + false + $(pv_name) +$(pv_value) true - Label - 121 - false - 3224b3ef:1778cb22598:-707d - 24 - 117 + Action Button + 72 + 7565d3e4:177c1ff26c3:-74c2 + 56 + 102 @@ -272,21 +318,8 @@ $(pv_value) +Yamcs.issueCommand('/cfs/pe/DisableFlow', {});]]> true @@ -308,11 +341,11 @@ Yamcs.issueCommand('/cfs/fm/GetDirFile', false - + - 18 + 20 ../../Resources/send.png - NoOp + NoOp_11 0 @@ -324,31 +357,31 @@ Yamcs.issueCommand('/cfs/fm/GetDirFile', - GetDirFile + Dis false $(pv_name) $(pv_value) true Action Button - 109 - 3224b3ef:1778cb22598:-706b - 120 - 186 + 72 + 7565d3e4:177c1ff26c3:-74c1 + 128 + 102 - + false + false false true - + 1 1 - false true Default @@ -357,19 +390,15 @@ $(pv_value) - 0 - 25 - 1 - false - true - Infinity - -Infinity - GetSizeTimeMode - 10.0 - 3 + 1 + 20 + 0 + Text Update_36 + 0 false - loc://GetDirFileGetSizeTimeMode<VDouble> + /cfs/pe/PE_HkTlm_t.TimeLastFlow.Subseconds + 0.0 true @@ -377,17 +406,18 @@ $(pv_value) false - true - 1.0 + true + ###### $(pv_name) $(pv_value) false 1 true - Spinner + Text Update 100 - 3224b3ef:1778cb22598:-705f - 168 - 117 + false + 7565d3e4:177c1ff26c3:-64d4 + 114 + 55 \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/PE/GPS.opi b/core/base/tools/commander/workspace_template/Displays/Apps/PE/GPS.opi new file mode 100644 index 000000000..a7e9c3b2c --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/Apps/PE/GPS.opi @@ -0,0 +1,1005 @@ + + + + + false + -1 + -1 + + false + + + + 1.5.5.202103012118 + + + + 6 + 580 + + true + + + + + true + true + true + true + true + Display + 820 + -33cb7c72:150aa4c347f:-76c2 + -1 + -1 + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_51 + + + true + true + false + + + Msg Time + + true + 1 + true + Label + 72 + false + -10b748b0:17773fb054b:-7b75 + 31 + 34 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_3 + 0 + false + /cfs/pe/PE_HkTlm_t.TimeLastGps.Seconds + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + -10b748b0:17773fb054b:-7b74 + 114 + 34 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_61 + + + true + true + false + + + Alt Origin + + true + 1 + true + Label + 73 + false + -10b748b0:17773fb054b:-7ab1 + 30 + 72 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_12 + 3 + false + /cfs/pe/PE_HkTlm_t.GpsAltOrigin + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + -10b748b0:17773fb054b:-7ab0 + 114 + 72 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_83 + + + true + true + false + + + Initialized + + true + 1 + true + Label + 67 + false + 7565d3e4:177c1ff26c3:-7756 + 31 + 149 + + + + false + false + + + + -1 + true + + + + 0 + 1 + 3 + + + + 0 + true + true + + Default + + false + + + + 20 + LED_5 + + + + OFF + + + + ON + /cfs/pe/PE_HkTlm_t.GpsInitialized + + + + true + true + true + + + false + false + $(pv_name) +$(pv_value) + true + LED + 20 + 7565d3e4:177c1ff26c3:-7755 + 106 + 149 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_84 + + + true + true + false + + + Fault + + true + 1 + true + Label + 50 + false + 7565d3e4:177c1ff26c3:-774e + 151 + 168 + + + + false + false + + + + -1 + true + + + + 0 + 1 + 3 + + + + 0 + true + true + + Default + + false + + + + 20 + LED_6 + + + + OFF + + + + ON + /cfs/pe/PE_HkTlm_t.GpsFault + + + + true + true + true + + + false + false + $(pv_name) +$(pv_value) + true + LED + 20 + 7565d3e4:177c1ff26c3:-774d + 209 + 168 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_85 + + + true + true + false + + + Timeout + + true + 1 + true + Label + 58 + false + 7565d3e4:177c1ff26c3:-7746 + 143 + 149 + + + + false + false + + + + -1 + true + + + + 0 + 1 + 3 + + + + 0 + true + true + + Default + + false + + + + 20 + LED_7 + + + + OFF + + + + ON + /cfs/pe/PE_HkTlm_t.GpsTimeout + + + + true + true + true + + + false + false + $(pv_name) +$(pv_value) + true + LED + 20 + 7565d3e4:177c1ff26c3:-7745 + 209 + 149 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_95 + + + true + true + false + + + Fused + + true + 1 + true + Label + 55 + false + 7565d3e4:177c1ff26c3:-76bc + 43 + 168 + + + + false + false + + + + -1 + true + + + + 0 + 1 + 3 + + + + 0 + true + true + + Default + + false + + + + 20 + LED_17 + + + + OFF + + + + ON + /cfs/pe/PE_HkTlm_t.GpsFuse + + + + true + true + true + + + false + false + $(pv_name) +$(pv_value) + true + LED + 20 + 7565d3e4:177c1ff26c3:-76bb + 106 + 168 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_103 + + + true + true + false + + + Received + + true + 1 + true + Label + 118 + false + 7565d3e4:177c1ff26c3:-75e5 + 83 + 187 + + + + false + false + + + + -1 + true + + + + 0 + 1 + 3 + + + + 0 + true + true + + Default + + false + + + + 20 + LED_25 + + + + OFF + + + + ON + /cfs/pe/PE_HkTlm_t.ReceivedGPS + + + + true + true + true + + + false + false + $(pv_name) +$(pv_value) + true + LED + 20 + 7565d3e4:177c1ff26c3:-75e4 + 209 + 187 + + + + false + + + + + + + 0 + 1 + true + + Default Bold + + + + + 20 + 1 + Label_106 + + + true + true + false + + + Position Estimator - GPS + + true + 1 + true + Label + 227 + false + 7565d3e4:177c1ff26c3:-75bd + 20 + 10 + + + + + + + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 20 + ../../Resources/send.png + NoOp_2 + 0 + + + + + true + true + false + + + + Ena + false + $(pv_name) +$(pv_value) + true + Action Button + 72 + 7565d3e4:177c1ff26c3:-75b3 + 71 + 120 + + + + + + + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 20 + ../../Resources/send.png + NoOp_3 + 0 + + + + + true + true + false + + + + Dis + false + $(pv_name) +$(pv_value) + true + Action Button + 72 + 7565d3e4:177c1ff26c3:-75a9 + 143 + 120 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_115 + + + true + true + false + + + Msg Count + + true + 1 + true + Label + 87 + false + 7565d3e4:177c1ff26c3:-74d1 + 20 + 91 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_29 + 0 + false + /cfs/pe/PE_HkTlm_t.VehicleGpsPositionMsgCount + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 101 + false + 7565d3e4:177c1ff26c3:-74d0 + 114 + 91 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_31 + 0 + false + /cfs/pe/PE_HkTlm_t.TimeLastGps.Subseconds + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + 7565d3e4:177c1ff26c3:-6516 + 114 + 53 + + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/PE/Landing.opi b/core/base/tools/commander/workspace_template/Displays/Apps/PE/Landing.opi new file mode 100644 index 000000000..0952726e8 --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/Apps/PE/Landing.opi @@ -0,0 +1,751 @@ + + + + + false + -1 + -1 + + false + + + + 1.5.5.202103012118 + + + + 6 + 580 + + true + + + + + true + true + true + true + true + Display + 820 + -33cb7c72:150aa4c347f:-76c2 + -1 + -1 + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_52 + + + true + true + false + + + Msg Time + + true + 1 + true + Label + 75 + false + -10b748b0:17773fb054b:-7b54 + 28 + 55 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_4 + 0 + false + /cfs/pe/PE_HkTlm_t.TimeLastLand.Seconds + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + -10b748b0:17773fb054b:-7b53 + 114 + 55 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_63 + + + true + true + false + + + Land Count + + true + 1 + true + Label + 91 + false + 7565d3e4:177c1ff26c3:-7871 + 12 + 36 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_14 + 0 + false + /cfs/pe/PE_HkTlm_t.LandCount + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + 7565d3e4:177c1ff26c3:-7870 + 114 + 36 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_86 + + + true + true + false + + + Initialized + + true + 1 + true + Label + 70 + false + 7565d3e4:177c1ff26c3:-773e + 12 + 151 + + + + false + false + + + + -1 + true + + + + 0 + 1 + 3 + + + + 0 + true + true + + Default + + false + + + + 20 + LED_8 + + + + OFF + + + + ON + /cfs/pe/PE_HkTlm_t.LandInitialized + + + + true + true + true + + + false + false + $(pv_name) +$(pv_value) + true + LED + 20 + 7565d3e4:177c1ff26c3:-773d + 90 + 151 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_87 + + + true + true + false + + + Timeout + + true + 1 + true + Label + 56 + false + 7565d3e4:177c1ff26c3:-7736 + 123 + 151 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_97 + + + true + true + false + + + Fused + + true + 1 + true + Label + 54 + false + 7565d3e4:177c1ff26c3:-7690 + 28 + 170 + + + + false + false + + + + -1 + true + + + + 0 + 1 + 3 + + + + 0 + true + true + + Default + + false + + + + 20 + LED_19 + + + + OFF + + + + ON + /cfs/pe/PE_HkTlm_t.LandFuse + + + + true + true + true + + + false + false + $(pv_name) +$(pv_value) + true + LED + 20 + 7565d3e4:177c1ff26c3:-768f + 90 + 170 + + + + false + + + + + + + 0 + 1 + true + + Default Bold + + + + + 20 + 1 + Label_108 + + + true + true + false + + + Position Estimator - Land + + true + 1 + true + Label + 217 + false + 7565d3e4:177c1ff26c3:-756a + 18 + 12 + + + + + + + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 20 + ../../Resources/send.png + NoOp_6 + 0 + + + + + true + true + false + + + + Ena + false + $(pv_name) +$(pv_value) + true + Action Button + 72 + 7565d3e4:177c1ff26c3:-755b + 43 + 122 + + + + + + + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 20 + ../../Resources/send.png + NoOp_7 + 0 + + + + + true + true + false + + + + Dis + false + $(pv_name) +$(pv_value) + true + Action Button + 72 + 7565d3e4:177c1ff26c3:-755a + 115 + 122 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_114 + + + true + true + false + + + Msg Count + + true + 1 + true + Label + 81 + false + 7565d3e4:177c1ff26c3:-74e0 + 18 + 93 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_28 + 0 + false + /cfs/pe/PE_HkTlm_t.VehicleLandDetectedMsgCount + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 99 + false + 7565d3e4:177c1ff26c3:-74df + 115 + 93 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_33 + 0 + false + /cfs/pe/PE_HkTlm_t.TimeLastLand.Subseconds + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + 7565d3e4:177c1ff26c3:-6504 + 114 + 74 + + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/PE/Main.opi b/core/base/tools/commander/workspace_template/Displays/Apps/PE/Main.opi index 083231f7e..91bf4f30e 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/PE/Main.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/PE/Main.opi @@ -10,7 +10,7 @@ - 1.5.4 + 1.5.5.202103012118 @@ -18,6 +18,9 @@ 580 true + pe + /Displays/Core/EVS/Events.opi + Displays @@ -388,7 +391,7 @@ $(pv_value) 20 2 - Label_50 + Label_56 true @@ -396,17 +399,17 @@ $(pv_value) false - Timestamp Last + Alt Origin true 1 true Label - 106 + 72 false - -10b748b0:17773fb054b:-7b8c - 312 - 315 + -10b748b0:17773fb054b:-7b0c + 55 + 172 @@ -433,10 +436,10 @@ $(pv_value) 1 20 0 - Text Update_2 - 0 + Text Update_8 + 3 false - /cfs/pe/PE_HkTlm_t.TimestampLastBaro.Seconds + /cfs/pe/PE_HkTlm_t.AltOrigin 0.0 @@ -456,9 +459,9 @@ $(pv_value) Text Update 100 false - -10b748b0:17773fb054b:-7b82 - 429 - 315 + -10b748b0:17773fb054b:-7b0b + 138 + 172 @@ -480,7 +483,7 @@ $(pv_value) 20 2 - Label_51 + Label_57 true @@ -488,17 +491,17 @@ $(pv_value) false - Msg Time + Timestamp true 1 true Label - 72 + 118 false - -10b748b0:17773fb054b:-7b75 - 355 - 48 + -10b748b0:17773fb054b:-7afd + 9 + 96 @@ -525,10 +528,10 @@ $(pv_value) 1 20 0 - Text Update_3 + Text Update_9 0 false - /cfs/pe/PE_HkTlm_t.TimeLastGps.Seconds + /cfs/pe/PE_HkTlm_t.Timestamp.Seconds 0.0 @@ -548,9 +551,9 @@ $(pv_value) Text Update 100 false - -10b748b0:17773fb054b:-7b74 - 438 - 48 + -10b748b0:17773fb054b:-7afc + 138 + 96 @@ -572,7 +575,7 @@ $(pv_value) 20 2 - Label_52 + Label_58 true @@ -580,17 +583,17 @@ $(pv_value) false - Msg Time + Timestamp Hist true 1 true Label - 109 + 118 false - -10b748b0:17773fb054b:-7b54 - 594 - 67 + -10b748b0:17773fb054b:-7ae3 + 9 + 134 @@ -617,10 +620,10 @@ $(pv_value) 1 20 0 - Text Update_4 + Text Update_10 0 false - /cfs/pe/PE_HkTlm_t.TimeLastLand.Seconds + /cfs/pe/PE_HkTlm_t.Timestamp_Hist.Seconds 0.0 @@ -640,9 +643,9 @@ $(pv_value) Text Update 100 false - -10b748b0:17773fb054b:-7b53 - 714 - 67 + -10b748b0:17773fb054b:-7ae2 + 138 + 134 @@ -664,7 +667,7 @@ $(pv_value) 20 2 - Label_53 + Label_71 true @@ -672,17 +675,17 @@ $(pv_value) false - Msg Time + Wakeup Count true 1 true Label - 75 + 118 false - -10b748b0:17773fb054b:-7b42 - 628 - 296 + 7565d3e4:177c1ff26c3:-7809 + 9 + 191 @@ -709,10 +712,10 @@ $(pv_value) 1 20 0 - Text Update_5 + Text Update_22 0 false - /cfs/pe/PE_HkTlm_t.TimeLastDist.Seconds + /cfs/pe/PE_HkTlm_t.WakeupCount 0.0 @@ -732,31 +735,41 @@ $(pv_value) Text Update 100 false - -10b748b0:17773fb054b:-7b41 - 714 - 296 + 7565d3e4:177c1ff26c3:-7808 + 138 + 191 - + + false false + false + true - + - 0 + 1 1 true Default + false + 1 20 - 2 - Label_54 + 0 + Text Update_30 + 0 + false + /cfs/pe/PE_HkTlm_t.Timestamp.Subseconds + + 0.0 true @@ -764,17 +777,19 @@ $(pv_value) false - Msg Time - - true + true + ###### + $(pv_name) +$(pv_value) + false 1 true - Label - 68 + Text Update + 100 false - -10b748b0:17773fb054b:-7b30 - 350 - 534 + 7565d3e4:177c1ff26c3:-6524 + 138 + 115 @@ -801,10 +816,10 @@ $(pv_value) 1 20 0 - Text Update_6 + Text Update_37 0 false - /cfs/pe/PE_HkTlm_t.TimeLastFlow.Seconds + /cfs/pe/PE_HkTlm_t.Timestamp_Hist.Subseconds 0.0 @@ -824,16 +839,27 @@ $(pv_value) Text Update 100 false - -10b748b0:17773fb054b:-7b2f - 429 - 534 + 7565d3e4:177c1ff26c3:-60b9 + 138 + 153 - - - false + + + + State.opi + + true + + 1 + + + + false + false - + + false @@ -843,12 +869,16 @@ $(pv_value) Default + false 20 - 2 - Label_55 + + Action Button_7 + 0 + + true @@ -856,31 +886,39 @@ $(pv_value) false - Msg Time - - true - 1 + + State + false + $(pv_name) +$(pv_value) true - Label - 82 - false - -10b748b0:17773fb054b:-7b1e - 336 - 277 + Action Button + 164 + -69f8bd78:177f094d5fe:-1f28 + 63 + 228 - - + + + + MessagesReceived.opi + + true + + 1 + + + false - false false - + - true + false - + - 1 + 0 1 true @@ -890,15 +928,12 @@ $(pv_value) - 1 20 - 0 - Text Update_7 - 0 - false - /cfs/pe/PE_HkTlm_t.TimeLastBaro.Seconds + + Action Button_1 + 0 + - 0.0 true @@ -906,26 +941,35 @@ $(pv_value) false - true - ###### + + Messages Received + false $(pv_name) $(pv_value) - false - 1 true - Text Update - 100 - false - -10b748b0:17773fb054b:-7b1d - 429 - 277 + Action Button + 164 + -69f8bd78:177f094d5fe:-1f20 + 63 + 247 - - - false + + + + GPS.opi + + true + + 1 + + + + false + false - + + false @@ -935,12 +979,16 @@ $(pv_value) Default + false 20 - 2 - Label_56 + + Action Button_2 + 0 + + true @@ -948,31 +996,39 @@ $(pv_value) false - Alt Origin - - true - 1 + + GPS + false + $(pv_name) +$(pv_value) true - Label - 72 - false - -10b748b0:17773fb054b:-7b0c - 96 - 172 + Action Button + 164 + -69f8bd78:177f094d5fe:-1f18 + 63 + 266 - - + + + + Baro.opi + + true + + 1 + + + false - false false - + - true + false - + - 1 + 0 1 true @@ -982,15 +1038,12 @@ $(pv_value) - 1 20 - 0 - Text Update_8 - 3 - false - /cfs/pe/PE_HkTlm_t.AltOrigin + + Action Button_3 + 0 + - 0.0 true @@ -998,26 +1051,35 @@ $(pv_value) false - true - ###### + + Baro + false $(pv_name) $(pv_value) - false - 1 true - Text Update - 100 - false - -10b748b0:17773fb054b:-7b0b - 179 - 172 + Action Button + 164 + -69f8bd78:177f094d5fe:-1f10 + 63 + 285 - - - false + + + + Distance.opi + + true + + 1 + + + + false + false - + + false @@ -1027,12 +1089,16 @@ $(pv_value) Default + false 20 - 2 - Label_57 + + Action Button_4 + 0 + + true @@ -1040,5473 +1106,39 @@ $(pv_value) false - Timestamp - - true - 1 + + Distance + false + $(pv_name) +$(pv_value) true - Label - 118 - false - -10b748b0:17773fb054b:-7afd - 50 - 96 + Action Button + 164 + -69f8bd78:177f094d5fe:-1f08 + 63 + 304 - - + + + + Landing.opi + + true + + 1 + + + false - false false - + - true - - - - 1 - 1 - true - - Default - - false - - - - 1 - 20 - 0 - Text Update_9 - 0 - false - /cfs/pe/PE_HkTlm_t.Timestamp.Seconds - - 0.0 - - - true - true - false - - - true - ###### - $(pv_name) -$(pv_value) - false - 1 - true - Text Update - 100 - false - -10b748b0:17773fb054b:-7afc - 179 - 96 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 2 - Label_58 - - - true - true - false - - - Timestamp Hist - - true - 1 - true - Label - 118 - false - -10b748b0:17773fb054b:-7ae3 - 50 - 134 - - - - false - false - false - - - - true - - - - 1 - 1 - true - - Default - - false - - - - 1 - 20 - 0 - Text Update_10 - 0 - false - /cfs/pe/PE_HkTlm_t.Timestamp_Hist.Seconds - - 0.0 - - - true - true - false - - - true - ###### - $(pv_name) -$(pv_value) - false - 1 - true - Text Update - 100 - false - -10b748b0:17773fb054b:-7ae2 - 179 - 134 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 2 - Label_60 - - - true - true - false - - - Alt Origin - - true - 1 - true - Label - 74 - false - -10b748b0:17773fb054b:-7ac3 - 347 - 353 - - - - false - false - false - - - - true - - - - 1 - 1 - true - - Default - - false - - - - 1 - 20 - 0 - Text Update_11 - 3 - false - /cfs/pe/PE_HkTlm_t.BaroAltOrigin - - 0.0 - - - true - true - false - - - true - ###### - $(pv_name) -$(pv_value) - false - 1 - true - Text Update - 100 - false - -10b748b0:17773fb054b:-7ac2 - 429 - 353 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 2 - Label_61 - - - true - true - false - - - Alt Origin - - true - 1 - true - Label - 73 - false - -10b748b0:17773fb054b:-7ab1 - 354 - 86 - - - - false - false - false - - - - true - - - - 1 - 1 - true - - Default - - false - - - - 1 - 20 - 0 - Text Update_12 - 3 - false - /cfs/pe/PE_HkTlm_t.GpsAltOrigin - - 0.0 - - - true - true - false - - - true - ###### - $(pv_name) -$(pv_value) - false - 1 - true - Text Update - 100 - false - -10b748b0:17773fb054b:-7ab0 - 438 - 86 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 2 - Label_62 - - - true - true - false - - - Alt Origin - - true - 1 - true - Label - 73 - false - 7565d3e4:177c1ff26c3:-7883 - 630 - 334 - - - - false - false - false - - - - true - - - - 1 - 1 - true - - Default - - false - - - - 1 - 20 - 0 - Text Update_13 - 3 - false - /cfs/pe/PE_HkTlm_t.DistAltOrigin - - 0.0 - - - true - true - false - - - true - ###### - $(pv_name) -$(pv_value) - false - 1 - true - Text Update - 100 - false - 7565d3e4:177c1ff26c3:-7882 - 714 - 334 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 2 - Label_63 - - - true - true - false - - - Land Count - - true - 1 - true - Label - 91 - false - 7565d3e4:177c1ff26c3:-7871 - 612 - 48 - - - - false - false - false - - - - true - - - - 1 - 1 - true - - Default - - false - - - - 1 - 20 - 0 - Text Update_14 - 0 - false - /cfs/pe/PE_HkTlm_t.LandCount - - 0.0 - - - true - true - false - - - true - ###### - $(pv_name) -$(pv_value) - false - 1 - true - Text Update - 100 - false - 7565d3e4:177c1ff26c3:-7870 - 714 - 48 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 2 - Label_64 - - - true - true - false - - - Vehicle Land Detected - - true - 1 - true - Label - 145 - false - 7565d3e4:177c1ff26c3:-7817 - 24 - 307 - - - - false - false - false - - - - true - - - - 1 - 1 - true - - Default - - false - - - - 1 - 20 - 0 - Text Update_15 - 0 - false - /cfs/pe/PE_HkTlm_t.VehicleLandDetectedMsgCount - - 0.0 - - - true - true - false - - - true - ###### - $(pv_name) -$(pv_value) - false - 1 - true - Text Update - 100 - false - 7565d3e4:177c1ff26c3:-7816 - 180 - 307 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 2 - Label_65 - - - true - true - false - - - Actuator Armed - - true - 1 - true - Label - 136 - false - 7565d3e4:177c1ff26c3:-7815 - 33 - 326 - - - - false - false - false - - - - true - - - - 1 - 1 - true - - Default - - false - - - - 1 - 20 - 0 - Text Update_16 - 0 - false - /cfs/pe/PE_HkTlm_t.ActuatorArmedMsgCount - - 0.0 - - - true - true - false - - - true - ###### - $(pv_name) -$(pv_value) - false - 1 - true - Text Update - 100 - false - 7565d3e4:177c1ff26c3:-7814 - 180 - 326 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 2 - Label_66 - - - true - true - false - - - Vehicle Attitude - - true - 1 - true - Label - 136 - false - 7565d3e4:177c1ff26c3:-7813 - 33 - 345 - - - - false - false - false - - - - true - - - - 1 - 1 - true - - Default - - false - - - - 1 - 20 - 0 - Text Update_17 - 0 - false - /cfs/pe/PE_HkTlm_t.VehicleAttitudeMsgCount - - 0.0 - - - true - true - false - - - true - ###### - $(pv_name) -$(pv_value) - false - 1 - true - Text Update - 100 - false - 7565d3e4:177c1ff26c3:-7812 - 180 - 345 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 2 - Label_67 - - - true - true - false - - - Sensor Combined - - true - 1 - true - Label - 136 - false - 7565d3e4:177c1ff26c3:-7811 - 33 - 364 - - - - false - false - false - - - - true - - - - 1 - 1 - true - - Default - - false - - - - 1 - 20 - 0 - Text Update_18 - 0 - false - /cfs/pe/PE_HkTlm_t.SensorCombinedMsgCount - - 0.0 - - - true - true - false - - - true - ###### - $(pv_name) -$(pv_value) - false - 1 - true - Text Update - 100 - false - 7565d3e4:177c1ff26c3:-7810 - 180 - 364 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 2 - Label_68 - - - true - true - false - - - Vehicle Attitude Setpoint - - true - 1 - true - Label - 156 - false - 7565d3e4:177c1ff26c3:-780f - 13 - 383 - - - - false - false - false - - - - true - - - - 1 - 1 - true - - Default - - false - - - - 1 - 20 - 0 - Text Update_19 - 0 - false - /cfs/pe/PE_HkTlm_t.VehicleAttitudeSetpointMsgCount - - 0.0 - - - true - true - false - - - true - ###### - $(pv_name) -$(pv_value) - false - 1 - true - Text Update - 100 - false - 7565d3e4:177c1ff26c3:-780e - 180 - 383 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 2 - Label_69 - - - true - true - false - - - Vehicle GPS Position - - true - 1 - true - Label - 136 - false - 7565d3e4:177c1ff26c3:-780d - 33 - 269 - - - - false - false - false - - - - true - - - - 1 - 1 - true - - Default - - false - - - - 1 - 20 - 0 - Text Update_20 - 0 - false - /cfs/pe/PE_HkTlm_t.VehicleGpsPositionMsgCount - - 0.0 - - - true - true - false - - - true - ###### - $(pv_name) -$(pv_value) - false - 1 - true - Text Update - 100 - false - 7565d3e4:177c1ff26c3:-780c - 180 - 269 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 2 - Label_70 - - - true - true - false - - - Distance Sensor - - true - 1 - true - Label - 136 - false - 7565d3e4:177c1ff26c3:-780b - 33 - 402 - - - - false - false - false - - - - true - - - - 1 - 1 - true - - Default - - false - - - - 1 - 20 - 0 - Text Update_21 - 0 - false - /cfs/pe/PE_HkTlm_t.DistanceSensorMsgCount - - 0.0 - - - true - true - false - - - true - ###### - $(pv_name) -$(pv_value) - false - 1 - true - Text Update - 100 - false - 7565d3e4:177c1ff26c3:-780a - 180 - 402 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 2 - Label_71 - - - true - true - false - - - Wakeup Count - - true - 1 - true - Label - 118 - false - 7565d3e4:177c1ff26c3:-7809 - 50 - 191 - - - - false - false - false - - - - true - - - - 1 - 1 - true - - Default - - false - - - - 1 - 20 - 0 - Text Update_22 - 0 - false - /cfs/pe/PE_HkTlm_t.WakeupCount - - 0.0 - - - true - true - false - - - true - ###### - $(pv_name) -$(pv_value) - false - 1 - true - Text Update - 100 - false - 7565d3e4:177c1ff26c3:-7808 - 179 - 191 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 2 - Label_72 - - - true - true - false - - - Vehicle Status - - true - 1 - true - Label - 118 - false - 7565d3e4:177c1ff26c3:-7807 - 51 - 288 - - - - false - false - false - - - - true - - - - 1 - 1 - true - - Default - - false - - - - 1 - 20 - 0 - Text Update_23 - 0 - false - /cfs/pe/PE_HkTlm_t.VehicleStatusMsgCount - - 0.0 - - - true - true - false - - - true - ###### - $(pv_name) -$(pv_value) - false - 1 - true - Text Update - 100 - false - 7565d3e4:177c1ff26c3:-7806 - 180 - 288 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 2 - Label_73 - - - true - true - false - - - Optical Flow - - true - 1 - true - Label - 136 - false - 7565d3e4:177c1ff26c3:-7805 - 33 - 421 - - - - false - false - false - - - - true - - - - 1 - 1 - true - - Default - - false - - - - 1 - 20 - 0 - Text Update_24 - 0 - false - /cfs/pe/PE_HkTlm_t.OpticalFlowMsgCount - - 0.0 - - - true - true - false - - - true - ###### - $(pv_name) -$(pv_value) - false - 1 - true - Text Update - 100 - false - 7565d3e4:177c1ff26c3:-7804 - 180 - 421 - - - - false - - - - - - - 0 - 1 - true - - Default Bold - - - - - 20 - 1 - Label_77 - - - true - true - false - - - Messages Received - - true - 1 - true - Label - 146 - false - 7565d3e4:177c1ff26c3:-77b4 - 108 - 245 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 2 - Label_78 - - - true - true - false - - - Global Estimator Initialized - - true - 1 - true - Label - 172 - false - 7565d3e4:177c1ff26c3:-779a - 49 - 453 - - - - false - false - - - - -1 - true - - - - 0 - 1 - 3 - - - - 0 - true - true - - Default - - false - - - - 20 - LED - - - - OFF - - - - ON - /cfs/pe/PE_HkTlm_t.EstimatorGlobalInitialized - - - - true - true - true - - - false - false - $(pv_name) -$(pv_value) - true - LED - 20 - 7565d3e4:177c1ff26c3:-7785 - 229 - 453 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 2 - Label_79 - - - true - true - false - - - Alt Origin Initialized - - true - 1 - true - Label - 142 - false - 7565d3e4:177c1ff26c3:-7776 - 79 - 472 - - - - false - false - - - - -1 - true - - - - 0 - 1 - 3 - - - - 0 - true - true - - Default - - false - - - - 20 - LED_1 - - - - OFF - - - - ON - /cfs/pe/PE_HkTlm_t.AltOriginInitialized - - - - true - true - true - - - false - false - $(pv_name) -$(pv_value) - true - LED - 20 - 7565d3e4:177c1ff26c3:-7775 - 229 - 472 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 2 - Label_80 - - - true - true - false - - - Initialized - - true - 1 - true - Label - 74 - false - 7565d3e4:177c1ff26c3:-776e - 350 - 429 - - - - false - false - - - - -1 - true - - - - 0 - 1 - 3 - - - - 0 - true - true - - Default - - false - - - - 20 - LED_2 - - - - OFF - - - - ON - /cfs/pe/PE_HkTlm_t.BaroInitialized - - - - true - true - true - - - false - false - $(pv_name) -$(pv_value) - true - LED - 20 - 7565d3e4:177c1ff26c3:-776d - 432 - 429 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 2 - Label_81 - - - true - true - false - - - Fault - - true - 1 - true - Label - 40 - false - 7565d3e4:177c1ff26c3:-7766 - 483 - 448 - - - - false - false - - - - -1 - true - - - - 0 - 1 - 3 - - - - 0 - true - true - - Default - - false - - - - 20 - LED_3 - - - - OFF - - - - ON - /cfs/pe/PE_HkTlm_t.BaroFault - - - - true - true - true - - - false - false - $(pv_name) -$(pv_value) - true - LED - 20 - 7565d3e4:177c1ff26c3:-7765 - 531 - 448 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 2 - Label_82 - - - true - true - false - - - Timeout - - true - 1 - true - Label - 58 - false - 7565d3e4:177c1ff26c3:-775e - 465 - 429 - - - - false - false - - - - -1 - true - - - - 0 - 1 - 3 - - - - 0 - true - true - - Default - - false - - - - 20 - LED_4 - - - - OFF - - - - ON - /cfs/pe/PE_HkTlm_t.BaroTimeout - - - - true - true - true - - - false - false - $(pv_name) -$(pv_value) - true - LED - 20 - 7565d3e4:177c1ff26c3:-775d - 531 - 429 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 2 - Label_83 - - - true - true - false - - - Initialized - - true - 1 - true - Label - 67 - false - 7565d3e4:177c1ff26c3:-7756 - 355 - 163 - - - - false - false - - - - -1 - true - - - - 0 - 1 - 3 - - - - 0 - true - true - - Default - - false - - - - 20 - LED_5 - - - - OFF - - - - ON - /cfs/pe/PE_HkTlm_t.GpsInitialized - - - - true - true - true - - - false - false - $(pv_name) -$(pv_value) - true - LED - 20 - 7565d3e4:177c1ff26c3:-7755 - 430 - 163 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 2 - Label_84 - - - true - true - false - - - Fault - - true - 1 - true - Label - 50 - false - 7565d3e4:177c1ff26c3:-774e - 475 - 182 - - - - false - false - - - - -1 - true - - - - 0 - 1 - 3 - - - - 0 - true - true - - Default - - false - - - - 20 - LED_6 - - - - OFF - - - - ON - /cfs/pe/PE_HkTlm_t.GpsFault - - - - true - true - true - - - false - false - $(pv_name) -$(pv_value) - true - LED - 20 - 7565d3e4:177c1ff26c3:-774d - 533 - 182 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 2 - Label_85 - - - true - true - false - - - Timeout - - true - 1 - true - Label - 58 - false - 7565d3e4:177c1ff26c3:-7746 - 467 - 163 - - - - false - false - - - - -1 - true - - - - 0 - 1 - 3 - - - - 0 - true - true - - Default - - false - - - - 20 - LED_7 - - - - OFF - - - - ON - /cfs/pe/PE_HkTlm_t.GpsTimeout - - - - true - true - true - - - false - false - $(pv_name) -$(pv_value) - true - LED - 20 - 7565d3e4:177c1ff26c3:-7745 - 533 - 163 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 2 - Label_86 - - - true - true - false - - - Initialized - - true - 1 - true - Label - 70 - false - 7565d3e4:177c1ff26c3:-773e - 612 - 163 - - - - false - false - - - - -1 - true - - - - 0 - 1 - 3 - - - - 0 - true - true - - Default - - false - - - - 20 - LED_8 - - - - OFF - - - - ON - /cfs/pe/PE_HkTlm_t.LandInitialized - - - - true - true - true - - - false - false - $(pv_name) -$(pv_value) - true - LED - 20 - 7565d3e4:177c1ff26c3:-773d - 690 - 163 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 2 - Label_87 - - - true - true - false - - - Timeout - - true - 1 - true - Label - 56 - false - 7565d3e4:177c1ff26c3:-7736 - 723 - 163 - - - - false - false - - - - -1 - true - - - - 0 - 1 - 3 - - - - 0 - true - true - - Default - - false - - - - 20 - LED_9 - - - - OFF - - - - ON - /cfs/pe/PE_HkTlm_t.LandTimeout - - - - true - true - true - - - false - false - $(pv_name) -$(pv_value) - true - LED - 20 - 7565d3e4:177c1ff26c3:-7735 - 787 - 163 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 2 - Label_88 - - - true - true - false - - - XY Estimation Valid - - true - 1 - true - Label - 148 - false - 7565d3e4:177c1ff26c3:-772e - 73 - 529 - - - - false - false - - - - -1 - true - - - - 0 - 1 - 3 - - - - 0 - true - true - - Default - - false - - - - 20 - LED_10 - - - - OFF - - - - ON - /cfs/pe/PE_HkTlm_t.XyEstValid - - - - true - true - true - - - false - false - $(pv_name) -$(pv_value) - true - LED - 20 - 7565d3e4:177c1ff26c3:-772d - 229 - 529 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 2 - Label_89 - - - true - true - false - - - Z Estimation Valid - - true - 1 - true - Label - 118 - false - 7565d3e4:177c1ff26c3:-7726 - 103 - 548 - - - - false - false - - - - -1 - true - - - - 0 - 1 - 3 - - - - 0 - true - true - - Default - - false - - - - 20 - LED_11 - - - - OFF - - - - ON - /cfs/pe/PE_HkTlm_t.ZEstValid - - - - true - true - true - - - false - false - $(pv_name) -$(pv_value) - true - LED - 20 - 7565d3e4:177c1ff26c3:-7725 - 229 - 548 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 2 - Label_90 - - - true - true - false - - - Terrain Estimation Valid - - true - 1 - true - Label - 160 - false - 7565d3e4:177c1ff26c3:-771e - 61 - 567 - - - - false - false - - - - -1 - true - - - - 0 - 1 - 3 - - - - 0 - true - true - - Default - - false - - - - 20 - LED_12 - - - - OFF - - - - ON - /cfs/pe/PE_HkTlm_t.TzEstValid - - - - true - true - true - - - false - false - $(pv_name) -$(pv_value) - true - LED - 20 - 7565d3e4:177c1ff26c3:-771d - 229 - 567 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 2 - Label_91 - - - true - true - false - - - Local Estimator Initialized - - true - 1 - true - Label - 172 - false - 7565d3e4:177c1ff26c3:-76e8 - 49 - 586 - - - - false - false - - - - -1 - true - - - - 0 - 1 - 3 - - - - 0 - true - true - - Default - - false - - - - 20 - LED_13 - - - - OFF - - - - ON - /cfs/pe/PE_HkTlm_t.EstimatorLocalInitialized - - - - true - true - true - - - false - false - $(pv_name) -$(pv_value) - true - LED - 20 - 7565d3e4:177c1ff26c3:-76e7 - 229 - 586 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 2 - Label_92 - - - true - true - false - - - Initialized - - true - 1 - true - Label - 76 - false - 7565d3e4:177c1ff26c3:-76e0 - 609 - 410 - - - - false - false - - - - -1 - true - - - - 0 - 1 - 3 - - - - 0 - true - true - - Default - - false - - - - 20 - LED_14 - - - - OFF - - - - ON - /cfs/pe/PE_HkTlm_t.DistInitialized - - - - true - true - true - - - false - false - $(pv_name) -$(pv_value) - true - LED - 20 - 7565d3e4:177c1ff26c3:-76df - 693 - 410 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 2 - Label_93 - - - true - true - false - - - Timeout - - true - 1 - true - Label - 58 - false - 7565d3e4:177c1ff26c3:-76c0 - 722 - 410 - - - - false - false - - - - -1 - true - - - - 0 - 1 - 3 - - - - 0 - true - true - - Default - - false - - - - 20 - LED_15 - - - - OFF - - - - ON - /cfs/pe/PE_HkTlm_t.DistTimeout - - - - true - true - true - - - false - false - $(pv_name) -$(pv_value) - true - LED - 20 - 7565d3e4:177c1ff26c3:-76bf - 788 - 410 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 2 - Label_94 - - - true - true - false - - - Fused - - true - 1 - true - Label - 55 - false - 7565d3e4:177c1ff26c3:-76be - 630 - 429 - - - - false - false - - - - -1 - true - - - - 0 - 1 - 3 - - - - 0 - true - true - - Default - - false - - - - 20 - LED_16 - - - - OFF - - - - ON - /cfs/pe/PE_HkTlm_t.DistFuse - - - - true - true - true - - - false - false - $(pv_name) -$(pv_value) - true - LED - 20 - 7565d3e4:177c1ff26c3:-76bd - 693 - 429 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 2 - Label_95 - - - true - true - false - - - Fused - - true - 1 - true - Label - 55 - false - 7565d3e4:177c1ff26c3:-76bc - 367 - 182 - - - - false - false - - - - -1 - true - - - - 0 - 1 - 3 - - - - 0 - true - true - - Default - - false - - - - 20 - LED_17 - - - - OFF - - - - ON - /cfs/pe/PE_HkTlm_t.GpsFuse - - - - true - true - true - - - false - false - $(pv_name) -$(pv_value) - true - LED - 20 - 7565d3e4:177c1ff26c3:-76bb - 430 - 182 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 2 - Label_96 - - - true - true - false - - - Fused - - true - 1 - true - Label - 59 - false - 7565d3e4:177c1ff26c3:-7692 - 365 - 448 - - - - false - false - - - - -1 - true - - - - 0 - 1 - 3 - - - - 0 - true - true - - Default - - false - - - - 20 - LED_18 - - - - OFF - - - - ON - /cfs/pe/PE_HkTlm_t.BaroFuse - - - - true - true - true - - - false - false - $(pv_name) -$(pv_value) - true - LED - 20 - 7565d3e4:177c1ff26c3:-7691 - 432 - 448 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 2 - Label_97 - - - true - true - false - - - Fused - - true - 1 - true - Label - 54 - false - 7565d3e4:177c1ff26c3:-7690 - 628 - 182 - - - - false - false - - - - -1 - true - - - - 0 - 1 - 3 - - - - 0 - true - true - - Default - - false - - - - 20 - LED_19 - - - - OFF - - - - ON - /cfs/pe/PE_HkTlm_t.LandFuse - - - - true - true - true - - - false - false - $(pv_name) -$(pv_value) - true - LED - 20 - 7565d3e4:177c1ff26c3:-768f - 690 - 182 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 2 - Label_98 - - - true - true - false - - - Fused - - true - 1 - true - Label - 57 - false - 7565d3e4:177c1ff26c3:-768e - 362 - 648 - - - - false - false - - - - -1 - true - - - - 0 - 1 - 3 - - - - 0 - true - true - - Default - - false - - - - 20 - LED_20 - - - - OFF - - - - ON - /cfs/pe/PE_HkTlm_t.FlowFuse - - - - true - true - true - - - false - false - $(pv_name) -$(pv_value) - true - LED - 20 - 7565d3e4:177c1ff26c3:-768d - 427 - 648 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 2 - Label_99 - - - true - true - false - - - Initialized - - true - 1 - true - Label - 75 - false - 7565d3e4:177c1ff26c3:-768c - 344 - 629 - - - - false - false - - - - -1 - true - - - - 0 - 1 - 3 - - - - 0 - true - true - - Default - - false - - - - 20 - LED_21 - - - - OFF - - - - ON - /cfs/pe/PE_HkTlm_t.FlowInitialized - - - - true - true - true - - - false - false - $(pv_name) -$(pv_value) - true - LED - 20 - 7565d3e4:177c1ff26c3:-768b - 427 - 629 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 2 - Label_100 - - - true - true - false - - - Fault - - true - 1 - true - Label - 42 - false - 7565d3e4:177c1ff26c3:-768a - 479 - 648 - - - - false - false - - - - -1 - true - - - - 0 - 1 - 3 - - - - 0 - true - true - - Default - - false - - - - 20 - LED_22 - - - - OFF - - - - ON - /cfs/pe/PE_HkTlm_t.FlowFault - - - - true - true - true - - - false - false - $(pv_name) -$(pv_value) - true - LED - 20 - 7565d3e4:177c1ff26c3:-7689 - 528 - 648 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 2 - Label_101 - - - true - true - false - - - Timeout - - true - 1 - true - Label - 58 - false - 7565d3e4:177c1ff26c3:-7688 - 462 - 629 - - - - false - false - - - - -1 - true - - - - 0 - 1 - 3 - - - - 0 - true - true - - Default - - false - - - - 20 - LED_23 - - - - OFF - - - - ON - /cfs/pe/PE_HkTlm_t.FlowTimeout - - - - true - true - true - - - false - false - $(pv_name) -$(pv_value) - true - LED - 20 - 7565d3e4:177c1ff26c3:-7687 - 528 - 629 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 2 - Label_103 - - - true - true - false - - - Received - - true - 1 - true - Label - 118 - false - 7565d3e4:177c1ff26c3:-75e5 - 407 - 201 - - - - false - false - - - - -1 - true - - - - 0 - 1 - 3 - - - - 0 - true - true - - Default - - false - - - - 20 - LED_25 - - - - OFF - - - - ON - /cfs/pe/PE_HkTlm_t.ReceivedGPS - - - - true - true - true - - - false - false - $(pv_name) -$(pv_value) - true - LED - 20 - 7565d3e4:177c1ff26c3:-75e4 - 533 - 201 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 2 - Label_104 - - - true - true - false - - - Last Armed State - - true - 1 - true - Label - 118 - false - 7565d3e4:177c1ff26c3:-75dd - 103 - 491 - - - - false - false - - - - -1 - true - - - - 0 - 1 - 3 - - - - 0 - true - true - - Default - - false - - - - 20 - LED_26 - - - - OFF - - - - ON - /cfs/pe/PE_HkTlm_t.LastArmedState - - - - true - true - true - - - false - false - $(pv_name) -$(pv_value) - true - LED - 20 - 7565d3e4:177c1ff26c3:-75dc - 229 - 491 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 2 - Label_105 - - - true - true - false - - - Params Updated - - true - 1 - true - Label - 118 - false - 7565d3e4:177c1ff26c3:-75d5 - 103 - 510 - - - - false - false - - - - -1 - true - - - - 0 - 1 - 3 - - - - 0 - true - true - - Default - - false - - - - 20 - LED_27 - - - - OFF - - - - ON - /cfs/pe/PE_HkTlm_t.ParamsUpdated - - - - true - true - true - - - false - false - $(pv_name) -$(pv_value) - true - LED - 20 - 7565d3e4:177c1ff26c3:-75d4 - 229 - 510 - - - - false - - - - - - - 0 - 1 - true - - Default Bold - - - - - 20 - 1 - Label_106 - - - true - true - false - - - GPS - - true - 1 - true - Label - 146 - false - 7565d3e4:177c1ff26c3:-75bd - 375 - 24 - - - - - - - true - - - - false - false - - - - false - - - - 0 - 1 - true - - Default - - false - - - - 20 - ../../Resources/send.png - NoOp_2 - 0 - - - - - true - true - false - - - - Ena - false - $(pv_name) -$(pv_value) - true - Action Button - 72 - 7565d3e4:177c1ff26c3:-75b3 - 395 - 134 - - - - - - - true - - - - false - false - - - - false - - - - 0 - 1 - true - - Default - - false - - - - 20 - ../../Resources/send.png - NoOp_3 - 0 - - - - - true - true - false - - - - Dis - false - $(pv_name) -$(pv_value) - true - Action Button - 72 - 7565d3e4:177c1ff26c3:-75a9 - 467 - 134 - - - - false - - - - - - - 0 - 1 - true - - Default Bold - - - - - 20 - 1 - Label_107 - - - true - true - false - - - Baro - - true - 1 - true - Label - 146 - false - 7565d3e4:177c1ff26c3:-7597 - 375 - 252 - - - - - - - true - - - - false - false - - - - false - - - - 0 - 1 - true - - Default - - false - - - - 20 - ../../Resources/send.png - NoOp_4 - 0 - - - - - true - true - false - - - - Ena - false - $(pv_name) -$(pv_value) - true - Action Button - 72 - 7565d3e4:177c1ff26c3:-7582 - 394 - 400 - - - - - - - true - - - - false - false - - - - false - - - - 0 - 1 - true - - Default - - false - - - - 20 - ../../Resources/send.png - NoOp_5 - 0 - - - - - true - true - false - - - - Dis - false - $(pv_name) -$(pv_value) - true - Action Button - 72 - 7565d3e4:177c1ff26c3:-7581 - 466 - 400 - - - - false - - - - - - - 0 - 1 - true - - Default Bold - - - - - 20 - 1 - Label_108 - - - true - true - false - - - Land - - true - 1 - true - Label - 146 - false - 7565d3e4:177c1ff26c3:-756a - 636 - 24 - - - - - - - true - - - - false - false - - - - false - - - - 0 - 1 - true - - Default - - false - - - - 20 - ../../Resources/send.png - NoOp_6 - 0 - - - - - true - true - false - - - - Ena - false - $(pv_name) -$(pv_value) - true - Action Button - 72 - 7565d3e4:177c1ff26c3:-755b - 643 - 134 - - - - - - - true - - - - false - false - - - - false - - - - 0 - 1 - true - - Default - - false - - - - 20 - ../../Resources/send.png - NoOp_7 - 0 - - - - - true - true - false - - - - Dis - false - $(pv_name) -$(pv_value) - true - Action Button - 72 - 7565d3e4:177c1ff26c3:-755a - 715 - 134 - - - - false - - - - - - - 0 - 1 - true - - Default Bold - - - - - 20 - 1 - Label_109 - - - true - true - false - - - Dist - - true - 1 - true - Label - 146 - false - 7565d3e4:177c1ff26c3:-7549 - 643 - 271 - - - - - - - true - - - - false - false - - - - false - - - - 0 - 1 - true - - Default - - false - - - - 20 - ../../Resources/send.png - NoOp_8 - 0 - - - - - true - true - false - - - - Ena - false - $(pv_name) -$(pv_value) - true - Action Button - 72 - 7565d3e4:177c1ff26c3:-753a - 642 - 381 - - - - - - - true - - - - false - false - - - - false - - - - 0 - 1 - true - - Default - - false - - - - 20 - ../../Resources/send.png - NoOp_9 - 0 - - - - - true - true - false - - - - Dis - false - $(pv_name) -$(pv_value) - true - Action Button - 72 - 7565d3e4:177c1ff26c3:-7539 - 714 - 381 - - - - false - - - - - - - 0 - 1 - true - - Default Bold - - - - - 20 - 1 - Label_110 - - - true - true - false - - - Flow - - true - 1 - true - Label - 146 - false - 7565d3e4:177c1ff26c3:-7522 - 375 - 510 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 2 - Label_111 - - - true - true - false - - - Msg Count - - true - 1 - true - Label - 93 - false - 7565d3e4:177c1ff26c3:-7513 - 325 - 571 - - - - false - false - false - - - - true - - - - 1 - 1 - true - - Default - - false - - - - 1 - 20 - 0 - Text Update_25 - 0 - false - /cfs/pe/PE_HkTlm_t.OpticalFlowMsgCount - - 0.0 - - - true - true - false - - - true - ###### - $(pv_name) -$(pv_value) - false - 1 - true - Text Update - 100 - false - 7565d3e4:177c1ff26c3:-7512 - 429 - 571 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 2 - Label_112 - - - true - true - false - - - Msg Count - - true - 1 - true - Label - 85 - false - 7565d3e4:177c1ff26c3:-74fe - 336 - 372 - - - - false - false - false - - - - true - - - - 1 - 1 - true - - Default - - false - - - - 1 - 20 - 0 - Text Update_26 - 0 - false - /cfs/pe/PE_HkTlm_t.SensorCombinedMsgCount - - 0.0 - - - true - true - false - - - true - ###### - $(pv_name) -$(pv_value) - false - 1 - true - Text Update - 100 - false - 7565d3e4:177c1ff26c3:-74fd - 429 - 372 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 2 - Label_113 - - - true - true - false - - - Msg Count - - true - 1 - true - Label - 85 - false - 7565d3e4:177c1ff26c3:-74ef - 618 - 353 - - - - false - false - false - - - - true - - - - 1 - 1 - true - - Default - - false - - - - 1 - 20 - 0 - Text Update_27 - 0 - false - /cfs/pe/PE_HkTlm_t.DistanceSensorMsgCount - - 0.0 - - - true - true - false - - - true - ###### - $(pv_name) -$(pv_value) - false - 1 - true - Text Update - 99 - false - 7565d3e4:177c1ff26c3:-74ee - 715 - 353 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 2 - Label_114 - - - true - true - false - - - Msg Count - - true - 1 - true - Label - 81 - false - 7565d3e4:177c1ff26c3:-74e0 - 618 - 105 - - - - false - false - false - - - - true - - - - 1 - 1 - true - - Default - - false - - - - 1 - 20 - 0 - Text Update_28 - 0 - false - /cfs/pe/PE_HkTlm_t.VehicleLandDetectedMsgCount - - 0.0 - - - true - true - false - - - true - ###### - $(pv_name) -$(pv_value) - false - 1 - true - Text Update - 99 - false - 7565d3e4:177c1ff26c3:-74df - 715 - 105 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 2 - Label_115 - - - true - true - false - - - Msg Count - - true - 1 - true - Label - 87 - false - 7565d3e4:177c1ff26c3:-74d1 - 344 - 105 - - - - false - false - false - - - - true - - - - 1 - 1 - true - - Default - - false - - - - 1 - 20 - 0 - Text Update_29 - 0 - false - /cfs/pe/PE_HkTlm_t.VehicleGpsPositionMsgCount - - 0.0 - - - true - true - false - - - true - ###### - $(pv_name) -$(pv_value) - false - 1 - true - Text Update - 101 - false - 7565d3e4:177c1ff26c3:-74d0 - 438 - 105 - - - - - - - true - - - - false - false - - - - false - - - - 0 - 1 - true - - Default - - false - - - - 20 - ../../Resources/send.png - NoOp_10 - 0 - - - - - true - true - false - - - - Ena - false - $(pv_name) -$(pv_value) - true - Action Button - 72 - 7565d3e4:177c1ff26c3:-74c2 - 385 - 599 - - - - - - - true - - - - false - false - - - - false - - - - 0 - 1 - true - - Default - - false - - - - 20 - ../../Resources/send.png - NoOp_11 - 0 - - - - - true - true - false - - - - Dis - false - $(pv_name) -$(pv_value) - true - Action Button - 72 - 7565d3e4:177c1ff26c3:-74c1 - 457 - 599 - - - - false - false - false - - - - true - - - - 1 - 1 - true - - Default - - false - - - - 1 - 20 - 0 - Text Update_30 - 0 - false - /cfs/pe/PE_HkTlm_t.Timestamp.Subseconds - - 0.0 - - - true - true - false - - - true - ###### - $(pv_name) -$(pv_value) - false - 1 - true - Text Update - 100 - false - 7565d3e4:177c1ff26c3:-6524 - 179 - 115 - - - - false - false - false - - - - true - - - - 1 - 1 - true - - Default - - false - - - - 1 - 20 - 0 - Text Update_31 - 0 - false - /cfs/pe/PE_HkTlm_t.TimeLastGps.Subseconds - - 0.0 - - - true - true - false - - - true - ###### - $(pv_name) -$(pv_value) - false - 1 - true - Text Update - 100 - false - 7565d3e4:177c1ff26c3:-6516 - 438 - 67 - - - - false - false - false - - - - true + false - + - 1 + 0 1 true @@ -6516,15 +1148,12 @@ $(pv_value) - 1 20 - 0 - Text Update_33 - 0 - false - /cfs/pe/PE_HkTlm_t.TimeLastLand.Subseconds + + Action Button_5 + 0 + - 0.0 true @@ -6532,33 +1161,39 @@ $(pv_value) false - true - ###### + + Landing + false $(pv_name) $(pv_value) - false - 1 true - Text Update - 100 - false - 7565d3e4:177c1ff26c3:-6504 - 714 - 86 + Action Button + 164 + -69f8bd78:177f094d5fe:-1f00 + 63 + 323 - - + + + + Flow.opi + + true + + 1 + + + false - false false - + - true + false - + - 1 + 0 1 true @@ -6568,15 +1203,12 @@ $(pv_value) - 1 20 - 0 - Text Update_34 - 0 - false - /cfs/pe/PE_HkTlm_t.TimeLastDist.Subseconds + + Action Button_6 + 0 + - 0.0 true @@ -6584,33 +1216,45 @@ $(pv_value) false - true - ###### + + Flow + false $(pv_name) $(pv_value) - false - 1 true - Text Update - 100 - false - 7565d3e4:177c1ff26c3:-64fa - 714 - 315 + Action Button + 164 + -69f8bd78:177f094d5fe:-1ef8 + 63 + 342 - - + + + + + + true + + + false - false false - + - true + false - + - 1 + 0 1 true @@ -6620,15 +1264,12 @@ $(pv_value) - 1 20 - 0 - Text Update_35 - 0 - false - /cfs/pe/PE_HkTlm_t.TimeLastBaro.Subseconds + + Events + 0 + - 0.0 true @@ -6636,33 +1277,40 @@ $(pv_value) false - true - ###### + + Event Filters + false $(pv_name) $(pv_value) - false - 1 true - Text Update - 100 - false - 7565d3e4:177c1ff26c3:-64f2 - 429 - 296 + Action Button + 164 + -69f8bd78:177f094d5fe:-1ef0 + 63 + 361 - - + + + + + + true + + + false - false false - + - true + false - + - 1 + 0 1 true @@ -6670,69 +1318,14 @@ $(pv_value) false - - - 1 - 20 - 0 - Text Update_36 - 0 - false - /cfs/pe/PE_HkTlm_t.TimeLastFlow.Subseconds - - 0.0 - - - true - true - false - - - true - ###### - $(pv_name) -$(pv_value) - false - 1 - true - Text Update - 100 - false - 7565d3e4:177c1ff26c3:-64d4 - 429 - 553 - - - - false - false - false - - - true - - - - 1 - 1 - true - - Default - - false - - - 1 20 - 0 - Text Update_37 - 0 - false - /cfs/pe/PE_HkTlm_t.Timestamp_Hist.Subseconds + ../../Resources/send.png + NoOp_2 + 0 + - 0.0 true @@ -6740,33 +1333,40 @@ $(pv_value) false - true - ###### + + SendHK + false $(pv_name) $(pv_value) - false - 1 true - Text Update - 100 - false - 7565d3e4:177c1ff26c3:-60b9 - 179 - 153 + Action Button + 164 + -69f8bd78:177f094d5fe:-1ebb + 63 + 380 - - + + + + + + true + + + false - false false - + - true + false - + - 1 + 0 1 true @@ -6774,17 +1374,14 @@ $(pv_value) false - + - 1 20 - 0 - Text Update_38 - 0 - false - /cfs/pe/PE_HkTlm_t.TimestampLastBaro.Subseconds + ../../Resources/send.png + NoOp_3 + 0 + - 0.0 true @@ -6792,18 +1389,16 @@ $(pv_value) false - true - ###### + + Wakeup + false $(pv_name) $(pv_value) - false - 1 true - Text Update - 100 - false - 7565d3e4:177c1ff26c3:-5f95 - 429 - 334 + Action Button + 164 + -69f8bd78:177f094d5fe:-1eb1 + 63 + 399 \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/PE/MessagesReceived.opi b/core/base/tools/commander/workspace_template/Displays/Apps/PE/MessagesReceived.opi new file mode 100644 index 000000000..f2700d1c0 --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/Apps/PE/MessagesReceived.opi @@ -0,0 +1,903 @@ + + + + + false + -1 + -1 + + false + + + + 1.5.5.202103012118 + + + + 6 + 580 + + true + + + + + true + true + true + true + true + Display + 820 + -33cb7c72:150aa4c347f:-76c2 + -1 + -1 + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_64 + + + true + true + false + + + Vehicle Land Detected + + true + 1 + true + Label + 145 + false + 7565d3e4:177c1ff26c3:-7817 + 30 + 80 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_15 + 0 + false + /cfs/pe/PE_HkTlm_t.VehicleLandDetectedMsgCount + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + 7565d3e4:177c1ff26c3:-7816 + 186 + 80 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_65 + + + true + true + false + + + Actuator Armed + + true + 1 + true + Label + 136 + false + 7565d3e4:177c1ff26c3:-7815 + 39 + 99 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_16 + 0 + false + /cfs/pe/PE_HkTlm_t.ActuatorArmedMsgCount + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + 7565d3e4:177c1ff26c3:-7814 + 186 + 99 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_66 + + + true + true + false + + + Vehicle Attitude + + true + 1 + true + Label + 136 + false + 7565d3e4:177c1ff26c3:-7813 + 39 + 118 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_17 + 0 + false + /cfs/pe/PE_HkTlm_t.VehicleAttitudeMsgCount + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + 7565d3e4:177c1ff26c3:-7812 + 186 + 118 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_67 + + + true + true + false + + + Sensor Combined + + true + 1 + true + Label + 136 + false + 7565d3e4:177c1ff26c3:-7811 + 39 + 137 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_18 + 0 + false + /cfs/pe/PE_HkTlm_t.SensorCombinedMsgCount + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + 7565d3e4:177c1ff26c3:-7810 + 186 + 137 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_68 + + + true + true + false + + + Vehicle Attitude Setpoint + + true + 1 + true + Label + 156 + false + 7565d3e4:177c1ff26c3:-780f + 19 + 156 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_19 + 0 + false + /cfs/pe/PE_HkTlm_t.VehicleAttitudeSetpointMsgCount + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + 7565d3e4:177c1ff26c3:-780e + 186 + 156 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_69 + + + true + true + false + + + Vehicle GPS Position + + true + 1 + true + Label + 136 + false + 7565d3e4:177c1ff26c3:-780d + 39 + 42 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_20 + 0 + false + /cfs/pe/PE_HkTlm_t.VehicleGpsPositionMsgCount + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + 7565d3e4:177c1ff26c3:-780c + 186 + 42 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_70 + + + true + true + false + + + Distance Sensor + + true + 1 + true + Label + 136 + false + 7565d3e4:177c1ff26c3:-780b + 39 + 175 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_21 + 0 + false + /cfs/pe/PE_HkTlm_t.DistanceSensorMsgCount + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + 7565d3e4:177c1ff26c3:-780a + 186 + 175 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_72 + + + true + true + false + + + Vehicle Status + + true + 1 + true + Label + 118 + false + 7565d3e4:177c1ff26c3:-7807 + 57 + 61 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_23 + 0 + false + /cfs/pe/PE_HkTlm_t.VehicleStatusMsgCount + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + 7565d3e4:177c1ff26c3:-7806 + 186 + 61 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_73 + + + true + true + false + + + Optical Flow + + true + 1 + true + Label + 136 + false + 7565d3e4:177c1ff26c3:-7805 + 39 + 194 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_24 + 0 + false + /cfs/pe/PE_HkTlm_t.OpticalFlowMsgCount + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + 7565d3e4:177c1ff26c3:-7804 + 186 + 194 + + + + false + + + + + + + 0 + 1 + true + + Default Bold + + + + + 20 + 1 + Label_77 + + + true + true + false + + + Position Estimator - Messages Received + + true + 1 + true + Label + 288 + false + 7565d3e4:177c1ff26c3:-77b4 + 19 + 18 + + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/PE/State.opi b/core/base/tools/commander/workspace_template/Displays/Apps/PE/State.opi new file mode 100644 index 000000000..2c0f82ebe --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/Apps/PE/State.opi @@ -0,0 +1,859 @@ + + + + + false + -1 + -1 + + false + + + + 1.5.5.202103012118 + + + + 6 + 580 + + true + + + + + true + true + true + true + true + Display + 820 + -33cb7c72:150aa4c347f:-76c2 + -1 + -1 + + + false + + + + + + + 0 + 1 + true + + Default Bold + + + + + 20 + 1 + Label_49 + + + true + true + false + + + Position Estimator - State + + true + 1 + true + Label + 182 + false + -33cb7c72:150aa4c347f:-75c9 + 24 + 12 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_78 + + + true + true + false + + + Global Estimator Initialized + + true + 1 + true + Label + 172 + false + 7565d3e4:177c1ff26c3:-779a + 15 + 36 + + + + false + false + + + + -1 + true + + + + 0 + 1 + 3 + + + + 0 + true + true + + Default + + false + + + + 20 + LED + + + + OFF + + + + ON + /cfs/pe/PE_HkTlm_t.EstimatorGlobalInitialized + + + + true + true + true + + + false + false + $(pv_name) +$(pv_value) + true + LED + 20 + 7565d3e4:177c1ff26c3:-7785 + 195 + 36 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_79 + + + true + true + false + + + Alt Origin Initialized + + true + 1 + true + Label + 142 + false + 7565d3e4:177c1ff26c3:-7776 + 45 + 55 + + + + false + false + + + + -1 + true + + + + 0 + 1 + 3 + + + + 0 + true + true + + Default + + false + + + + 20 + LED_1 + + + + OFF + + + + ON + /cfs/pe/PE_HkTlm_t.AltOriginInitialized + + + + true + true + true + + + false + false + $(pv_name) +$(pv_value) + true + LED + 20 + 7565d3e4:177c1ff26c3:-7775 + 195 + 55 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_88 + + + true + true + false + + + XY Estimation Valid + + true + 1 + true + Label + 148 + false + 7565d3e4:177c1ff26c3:-772e + 39 + 112 + + + + false + false + + + + -1 + true + + + + 0 + 1 + 3 + + + + 0 + true + true + + Default + + false + + + + 20 + LED_10 + + + + OFF + + + + ON + /cfs/pe/PE_HkTlm_t.XyEstValid + + + + true + true + true + + + false + false + $(pv_name) +$(pv_value) + true + LED + 20 + 7565d3e4:177c1ff26c3:-772d + 195 + 112 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_89 + + + true + true + false + + + Z Estimation Valid + + true + 1 + true + Label + 118 + false + 7565d3e4:177c1ff26c3:-7726 + 69 + 131 + + + + false + false + + + + -1 + true + + + + 0 + 1 + 3 + + + + 0 + true + true + + Default + + false + + + + 20 + LED_11 + + + + OFF + + + + ON + /cfs/pe/PE_HkTlm_t.ZEstValid + + + + true + true + true + + + false + false + $(pv_name) +$(pv_value) + true + LED + 20 + 7565d3e4:177c1ff26c3:-7725 + 195 + 131 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_90 + + + true + true + false + + + Terrain Estimation Valid + + true + 1 + true + Label + 160 + false + 7565d3e4:177c1ff26c3:-771e + 27 + 150 + + + + false + false + + + + -1 + true + + + + 0 + 1 + 3 + + + + 0 + true + true + + Default + + false + + + + 20 + LED_12 + + + + OFF + + + + ON + /cfs/pe/PE_HkTlm_t.TzEstValid + + + + true + true + true + + + false + false + $(pv_name) +$(pv_value) + true + LED + 20 + 7565d3e4:177c1ff26c3:-771d + 195 + 150 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_91 + + + true + true + false + + + Local Estimator Initialized + + true + 1 + true + Label + 172 + false + 7565d3e4:177c1ff26c3:-76e8 + 15 + 169 + + + + false + false + + + + -1 + true + + + + 0 + 1 + 3 + + + + 0 + true + true + + Default + + false + + + + 20 + LED_13 + + + + OFF + + + + ON + /cfs/pe/PE_HkTlm_t.EstimatorLocalInitialized + + + + true + true + true + + + false + false + $(pv_name) +$(pv_value) + true + LED + 20 + 7565d3e4:177c1ff26c3:-76e7 + 195 + 169 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_104 + + + true + true + false + + + Last Armed State + + true + 1 + true + Label + 118 + false + 7565d3e4:177c1ff26c3:-75dd + 69 + 74 + + + + false + false + + + + -1 + true + + + + 0 + 1 + 3 + + + + 0 + true + true + + Default + + false + + + + 20 + LED_26 + + + + OFF + + + + ON + /cfs/pe/PE_HkTlm_t.LastArmedState + + + + true + true + true + + + false + false + $(pv_name) +$(pv_value) + true + LED + 20 + 7565d3e4:177c1ff26c3:-75dc + 195 + 74 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_105 + + + true + true + false + + + Params Updated + + true + 1 + true + Label + 118 + false + 7565d3e4:177c1ff26c3:-75d5 + 69 + 93 + + + + false + false + + + + -1 + true + + + + 0 + 1 + 3 + + + + 0 + true + true + + Default + + false + + + + 20 + LED_27 + + + + OFF + + + + ON + /cfs/pe/PE_HkTlm_t.ParamsUpdated + + + + true + true + true + + + false + false + $(pv_name) +$(pv_value) + true + LED + 20 + 7565d3e4:177c1ff26c3:-75d4 + 195 + 93 + + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/SC/Main.opi b/core/base/tools/commander/workspace_template/Displays/Apps/SC/Main.opi index 0454d1927..6415dc94c 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/SC/Main.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/SC/Main.opi @@ -10,7 +10,7 @@ - 1.5.4.202102122300 + 1.5.5.202103012118 @@ -45,9 +45,9 @@ true - + - 0 + 1 1 true @@ -177,9 +177,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -381,9 +381,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -433,9 +433,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -579,9 +579,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -631,9 +631,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -683,9 +683,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -735,9 +735,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -787,9 +787,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -839,9 +839,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -891,9 +891,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -943,9 +943,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -995,9 +995,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -1047,9 +1047,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -1099,9 +1099,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -1151,9 +1151,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -1203,9 +1203,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -1255,9 +1255,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -1307,9 +1307,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -1359,9 +1359,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -1411,9 +1411,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -1463,9 +1463,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -1567,9 +1567,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -1619,9 +1619,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -2674,7 +2674,7 @@ $(pv_value) 164 54e87698:1777e01a75d:-7547 317 - 276 + 258 @@ -2730,7 +2730,7 @@ $(pv_value) 164 54e87698:1777e01a75d:-752f 317 - 295 + 277 @@ -2786,7 +2786,7 @@ $(pv_value) 164 54e87698:1777e01a75d:-7517 317 - 314 + 296 @@ -2897,7 +2897,7 @@ $(pv_value) 164 54e87698:1777e01a75d:-7507 317 - 333 + 315 @@ -2952,7 +2952,7 @@ $(pv_value) 164 54e87698:1777e01a75d:-74ff 317 - 352 + 334 @@ -3007,7 +3007,7 @@ $(pv_value) 164 54e87698:1777e01a75d:-74f7 317 - 371 + 353 @@ -3611,15 +3611,15 @@ ScriptUtil.openOPI(display.getWidget("Events"), opi_to_open_path, RunModeService - Events + Event Filters false $(pv_name) $(pv_value) true Action Button - 127 + 164 -19107c2b:177da1db5df:10f3 - 624 - 41 + 317 + 382 \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/SCH/Main.opi b/core/base/tools/commander/workspace_template/Displays/Apps/SCH/Main.opi index a9df65950..d341a530b 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/SCH/Main.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/SCH/Main.opi @@ -10,7 +10,7 @@ - 1.5.4.202102122300 + 1.5.5.202103012118 @@ -381,9 +381,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -433,9 +433,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -485,9 +485,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -537,9 +537,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -589,9 +589,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -641,9 +641,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -693,9 +693,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -745,9 +745,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -797,9 +797,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -849,9 +849,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -901,9 +901,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -953,9 +953,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -1005,9 +1005,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -1057,9 +1057,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -1109,9 +1109,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -1161,9 +1161,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -1213,9 +1213,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -1265,9 +1265,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -1317,9 +1317,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -1369,9 +1369,9 @@ $(pv_value) true - + - 0 + 1 1 true @@ -2648,7 +2648,7 @@ ScriptUtil.openOPI(display.getWidget("Events"), opi_to_open_path, RunModeService - Events + Event Filters false $(pv_name) $(pv_value) @@ -2656,7 +2656,7 @@ $(pv_value) Action Button 127 -6d93a836:177d12fe0d6:-7f45 - 420 - 204 + 36 + 543 \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/SENS/Accel.opi b/core/base/tools/commander/workspace_template/Displays/Apps/SENS/Accel.opi new file mode 100644 index 000000000..e0d3fe188 --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/Apps/SENS/Accel.opi @@ -0,0 +1,685 @@ + + + + + false + -1 + -1 + + false + + + + 1.5.5.202103012118 + + + + 6 + 630 + + true + + + + + true + true + true + true + true + Display + 750 + -33cb7c72:150aa4c347f:-76c2 + -1 + -1 + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_93 + + + true + true + false + + + Invalid + + true + 1 + true + Label + 57 + false + 7565d3e4:177c1ff26c3:-794d + 87 + 99 + + + + false + false + + + + -1 + true + + + + 0 + 1 + 3 + + + + 0 + true + true + + Default + + false + + + + 20 + LED_1 + + + + OFF + + + + ON + /cfs/sens/SENS_HkTlm_t.SensorCombinedMsg.AccRelTimeInvalid + + + + true + true + true + + + false + false + $(pv_name) +$(pv_value) + true + LED + 20 + 7565d3e4:177c1ff26c3:-7940 + 157 + 99 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 1 + Label_112 + + + true + true + false + + + X + + true + 1 + true + Label + 100 + false + 7565d3e4:177c1ff26c3:-5c7f + 8 + 128 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_48 + 3 + false + /cfs/sens/SENS_HkTlm_t.SensorCombinedMsg.Acc_0_ + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + 7565d3e4:177c1ff26c3:-5c7e + 8 + 147 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_113 + + + true + true + false + + + Integral dt + + true + 1 + true + Label + 81 + false + 7565d3e4:177c1ff26c3:-5c7d + 64 + 74 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_49 + 6 + false + /cfs/sens/SENS_HkTlm_t.SensorCombinedMsg.AccIntegralDt + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + 7565d3e4:177c1ff26c3:-5c7c + 156 + 74 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_114 + + + true + true + false + + + Relative Time + + true + 1 + true + Label + 114 + false + 7565d3e4:177c1ff26c3:-5c7b + 31 + 36 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_50 + 0 + false + /cfs/sens/SENS_HkTlm_t.SensorCombinedMsg.AccTimestampRelative.Subseconds + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + 7565d3e4:177c1ff26c3:-5c7a + 156 + 55 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_51 + 0 + false + /cfs/sens/SENS_HkTlm_t.SensorCombinedMsg.AccTimestampRelative.Seconds + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + 7565d3e4:177c1ff26c3:-5c79 + 156 + 36 + + + + false + + + + + + + 0 + 1 + true + + Default Bold + + + + + 20 + 1 + Label_115 + + + true + true + false + + + Sensors - Accel + + true + 1 + true + Label + 246 + false + 7565d3e4:177c1ff26c3:-5c78 + 31 + 9 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 1 + Label_116 + + + true + true + false + + + Y + + true + 1 + true + Label + 100 + false + 7565d3e4:177c1ff26c3:-5c77 + 112 + 128 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_52 + 3 + false + /cfs/sens/SENS_HkTlm_t.SensorCombinedMsg.Acc_1_ + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + 7565d3e4:177c1ff26c3:-5c76 + 112 + 147 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 1 + Label_117 + + + true + true + false + + + Z + + true + 1 + true + Label + 100 + false + 7565d3e4:177c1ff26c3:-5c75 + 217 + 128 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_53 + 3 + false + /cfs/sens/SENS_HkTlm_t.SensorCombinedMsg.Acc_2_ + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + 7565d3e4:177c1ff26c3:-5c74 + 217 + 147 + + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/SENS/Baro.opi b/core/base/tools/commander/workspace_template/Displays/Apps/SENS/Baro.opi new file mode 100644 index 000000000..ae756173a --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/Apps/SENS/Baro.opi @@ -0,0 +1,501 @@ + + + + + false + -1 + -1 + + false + + + + 1.5.5.202103012118 + + + + 6 + 630 + + true + + + + + true + true + true + true + true + Display + 750 + -33cb7c72:150aa4c347f:-76c2 + -1 + -1 + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_125 + + + true + true + false + + + Invalid + + true + 1 + true + Label + 57 + false + 7565d3e4:177c1ff26c3:-5b83 + 46 + 80 + + + + false + false + + + + -1 + true + + + + 0 + 1 + 3 + + + + 0 + true + true + + Default + + false + + + + 20 + LED_2 + + + + OFF + + + + ON + /cfs/sens/SENS_HkTlm_t.SensorCombinedMsg.BaroRelTimeInvalid + + + + true + true + true + + + false + false + $(pv_name) +$(pv_value) + true + LED + 20 + 7565d3e4:177c1ff26c3:-5b82 + 116 + 80 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_127 + + + true + true + false + + + Relative Time + + true + 1 + true + Label + 95 + false + 7565d3e4:177c1ff26c3:-5b7f + 8 + 36 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_61 + 0 + false + /cfs/sens/SENS_HkTlm_t.SensorCombinedMsg.BaroTimestampRelative.Subseconds + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + 7565d3e4:177c1ff26c3:-5b7e + 114 + 55 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_62 + 0 + false + /cfs/sens/SENS_HkTlm_t.SensorCombinedMsg.BaroTimestampRelative.Seconds + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + 7565d3e4:177c1ff26c3:-5b7d + 114 + 36 + + + + false + + + + + + + 0 + 1 + true + + Default Bold + + + + + 20 + 1 + Label_128 + + + true + true + false + + + Sensors - Baro + + true + 1 + true + Label + 189 + false + 7565d3e4:177c1ff26c3:-5b7c + 22 + 9 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_129 + + + true + true + false + + + Altitude + + true + 1 + true + Label + 81 + false + 7565d3e4:177c1ff26c3:-5b60 + 22 + 109 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_63 + 3 + false + /cfs/sens/SENS_HkTlm_t.SensorCombinedMsg.BaroAlt + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + 7565d3e4:177c1ff26c3:-5b5f + 114 + 109 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_130 + + + true + true + false + + + Temperature + + true + 1 + true + Label + 95 + false + 7565d3e4:177c1ff26c3:-5b51 + 8 + 128 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_64 + 1 + false + /cfs/sens/SENS_HkTlm_t.SensorCombinedMsg.BaroTemp + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + 7565d3e4:177c1ff26c3:-5b50 + 114 + 128 + + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/SENS/Gyro.opi b/core/base/tools/commander/workspace_template/Displays/Apps/SENS/Gyro.opi new file mode 100644 index 000000000..7637e957d --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/Apps/SENS/Gyro.opi @@ -0,0 +1,587 @@ + + + + + false + -1 + -1 + + false + + + + 1.5.5.202103012118 + + + + 6 + 630 + + true + + + + + true + true + true + true + true + Display + 750 + -33cb7c72:150aa4c347f:-76c2 + -1 + -1 + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 1 + Label_58 + + + true + true + false + + + X + + true + 1 + true + Label + 100 + false + -10b748b0:17773fb054b:-7ae3 + 5 + 101 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_10 + 3 + false + /cfs/sens/SENS_HkTlm_t.SensorCombinedMsg.GyroRad_0_ + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + -10b748b0:17773fb054b:-7ae2 + 5 + 120 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_81 + + + true + true + false + + + Integral dt + + true + 1 + true + Label + 81 + false + 7565d3e4:177c1ff26c3:-7c44 + 60 + 77 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_31 + 6 + false + /cfs/sens/SENS_HkTlm_t.SensorCombinedMsg.GyroIntegralDt + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + 7565d3e4:177c1ff26c3:-7c43 + 152 + 77 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_108 + + + true + true + false + + + Timestamp + + true + 1 + true + Label + 114 + false + 7565d3e4:177c1ff26c3:-5cfd + 27 + 39 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_44 + 0 + false + /cfs/sens/SENS_HkTlm_t.SensorCombinedTimestamp.Subseconds + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + 7565d3e4:177c1ff26c3:-5cf3 + 152 + 58 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_45 + 0 + false + /cfs/sens/SENS_HkTlm_t.SensorCombinedTimestamp.Seconds + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + 7565d3e4:177c1ff26c3:-5ceb + 152 + 39 + + + + false + + + + + + + 0 + 1 + true + + Default Bold + + + + + 20 + 1 + Label_109 + + + true + true + false + + + Sensors - Gyro + + true + 1 + true + Label + 116 + false + 7565d3e4:177c1ff26c3:-5cd9 + 100 + 12 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 1 + Label_110 + + + true + true + false + + + Y + + true + 1 + true + Label + 100 + false + 7565d3e4:177c1ff26c3:-5cc6 + 109 + 101 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_46 + 3 + false + /cfs/sens/SENS_HkTlm_t.SensorCombinedMsg.GyroRad_1_ + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + 7565d3e4:177c1ff26c3:-5cc5 + 109 + 120 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 1 + Label_111 + + + true + true + false + + + Z + + true + 1 + true + Label + 100 + false + 7565d3e4:177c1ff26c3:-5caf + 214 + 101 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_47 + 3 + false + /cfs/sens/SENS_HkTlm_t.SensorCombinedMsg.GyroRad_2_ + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + 7565d3e4:177c1ff26c3:-5cae + 214 + 120 + + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/SENS/Mag.opi b/core/base/tools/commander/workspace_template/Displays/Apps/SENS/Mag.opi new file mode 100644 index 000000000..165df0ab4 --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/Apps/SENS/Mag.opi @@ -0,0 +1,593 @@ + + + + + false + -1 + -1 + + false + + + + 1.5.5.202103012118 + + + + 6 + 630 + + true + + + + + true + true + true + true + true + Display + 750 + -33cb7c72:150aa4c347f:-76c2 + -1 + -1 + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_118 + + + true + true + false + + + Invalid + + true + 1 + true + Label + 57 + false + 7565d3e4:177c1ff26c3:-5c04 + 100 + 80 + + + + false + false + + + + -1 + true + + + + 0 + 1 + 3 + + + + 0 + true + true + + Default + + false + + + + 20 + LED_1 + + + + OFF + + + + ON + /cfs/sens/SENS_HkTlm_t.SensorCombinedMsg.MagRelTimeInvalid + + + + true + true + true + + + false + false + $(pv_name) +$(pv_value) + true + LED + 20 + 7565d3e4:177c1ff26c3:-5c03 + 170 + 80 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 1 + Label_119 + + + true + true + false + + + X + + true + 1 + true + Label + 100 + false + 7565d3e4:177c1ff26c3:-5c02 + 14 + 105 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_54 + 3 + false + /cfs/sens/SENS_HkTlm_t.SensorCombinedMsg.Mag_0_ + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + 7565d3e4:177c1ff26c3:-5c01 + 14 + 124 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_121 + + + true + true + false + + + Relative Time + + true + 1 + true + Label + 114 + false + 7565d3e4:177c1ff26c3:-5bfe + 43 + 42 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_56 + 0 + false + /cfs/sens/SENS_HkTlm_t.SensorCombinedMsg.MagTimestampRelative.Subseconds + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + 7565d3e4:177c1ff26c3:-5bfd + 168 + 61 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_57 + 0 + false + /cfs/sens/SENS_HkTlm_t.SensorCombinedMsg.MagTimestampRelative.Seconds + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + 7565d3e4:177c1ff26c3:-5bfc + 168 + 42 + + + + false + + + + + + + 0 + 1 + true + + Default Bold + + + + + 20 + 1 + Label_122 + + + true + true + false + + + Sensors - Mag + + true + 1 + true + Label + 271 + false + 7565d3e4:177c1ff26c3:-5bfb + 30 + 15 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 1 + Label_123 + + + true + true + false + + + Y + + true + 1 + true + Label + 100 + false + 7565d3e4:177c1ff26c3:-5bfa + 118 + 105 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_58 + 3 + false + /cfs/sens/SENS_HkTlm_t.SensorCombinedMsg.Mag_1_ + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + 7565d3e4:177c1ff26c3:-5bf9 + 118 + 124 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 1 + Label_124 + + + true + true + false + + + Z + + true + 1 + true + Label + 100 + false + 7565d3e4:177c1ff26c3:-5bf8 + 223 + 105 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_59 + 3 + false + /cfs/sens/SENS_HkTlm_t.SensorCombinedMsg.Mag_2_ + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + 7565d3e4:177c1ff26c3:-5bf7 + 223 + 124 + + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/SENS/Main.opi b/core/base/tools/commander/workspace_template/Displays/Apps/SENS/Main.opi index 1cc2363a5..74b0a5503 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/SENS/Main.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/SENS/Main.opi @@ -10,7 +10,7 @@ - 1.5.3 + 1.5.5.202103012118 @@ -81,7 +81,7 @@ $(pv_value) 100 false -33cb7c72:150aa4c347f:-75ff - 108 + 102 42 @@ -121,7 +121,7 @@ $(pv_value) 91 false -33cb7c72:150aa4c347f:-75fe - 6 + 0 42 @@ -161,7 +161,7 @@ $(pv_value) 60 false -33cb7c72:150aa4c347f:-75fd - 37 + 31 61 @@ -213,7 +213,7 @@ $(pv_value) 100 false -33cb7c72:150aa4c347f:-75fb - 108 + 102 61 @@ -253,7 +253,7 @@ $(pv_value) 161 false -33cb7c72:150aa4c347f:-75c9 - 84 + 78 12 @@ -309,7 +309,7 @@ $(pv_value) Action Button 102 -10b748b0:17773fb054b:-7b9c - 223 + 217 42 @@ -365,62 +365,36 @@ $(pv_value) Action Button 102 -10b748b0:17773fb054b:-7b94 - 223 + 217 61 - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 1 - Label_58 - - - true - true - false - - - X - - true - 1 - true - Label - 100 - false - -10b748b0:17773fb054b:-7ae3 - 9 - 254 - - - + + + + + + true + + + false - false false - + - true + false - + - 1 + 0 1 true @@ -430,15 +404,12 @@ $(pv_value) - 1 20 - 0 - Text Update_10 - 3 - false - /cfs/sens/SENS_HkTlm_t.SensorCombinedMsg.GyroRad_0_ + + Events + 0 + - 0.0 true @@ -446,73 +417,40 @@ $(pv_value) false - true - ###### + + Event Filters + false $(pv_name) $(pv_value) - false - 1 - true - Text Update - 100 - false - -10b748b0:17773fb054b:-7ae2 - 9 - 273 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 2 - Label_81 - - - true - true - false - - - Integral dt - - true - 1 true - Label - 81 - false - 7565d3e4:177c1ff26c3:-7c44 - 64 - 230 + Action Button + 124 + -69f8bd78:177f094d5fe:-1634 + 97 + 96 - - + + + + + + true + + + false - false false - + - true + false - + - 1 + 0 1 true @@ -520,17 +458,14 @@ $(pv_value) false - + - 1 20 - 0 - Text Update_31 - 6 - false - /cfs/sens/SENS_HkTlm_t.SensorCombinedMsg.GyroIntegralDt + ../../Resources/send.png + NoOp_3 + 0 + - 0.0 true @@ -538,2172 +473,72 @@ $(pv_value) false - true - ###### + + SendHK + false $(pv_name) $(pv_value) - false - 1 - true - Text Update - 100 - false - 7565d3e4:177c1ff26c3:-7c43 - 156 - 230 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 2 - Label_93 - - - true - true - false - - - Invalid - - true - 1 true - Label - 57 - false - 7565d3e4:177c1ff26c3:-794d - 89 - 427 + Action Button + 124 + -69f8bd78:177f094d5fe:-162c + 97 + 115 - - + + + + + + true + + + false false - + - -1 - true + false 0 1 - 3 - - - - 0 - true true Default false - + 20 - LED_1 - - - - OFF - - - - ON - /cfs/sens/SENS_HkTlm_t.SensorCombinedMsg.AccRelTimeInvalid + ../../Resources/send.png + NoOp_4 + 0 + true true - true + false - false - false - $(pv_name) -$(pv_value) - true - LED - 20 - 7565d3e4:177c1ff26c3:-7940 - 159 - 427 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 2 - Label_108 - - - true - true - false - - - Timestamp - - true - 1 - true - Label - 114 - false - 7565d3e4:177c1ff26c3:-5cfd - 31 - 192 - - - - false - false - false - - - - true - - - - 1 - 1 - true - - Default - - false - - - - 1 - 20 - 0 - Text Update_44 - 0 - false - /cfs/sens/SENS_HkTlm_t.SensorCombinedTimestamp.Subseconds - - 0.0 - - - true - true - false - - - true - ###### - $(pv_name) -$(pv_value) - false - 1 - true - Text Update - 100 - false - 7565d3e4:177c1ff26c3:-5cf3 - 156 - 211 - - - - false - false - false - - - - true - - - - 1 - 1 - true - - Default - - false - - - - 1 - 20 - 0 - Text Update_45 - 0 - false - /cfs/sens/SENS_HkTlm_t.SensorCombinedTimestamp.Seconds - - 0.0 - - - true - true - false - - - true - ###### - $(pv_name) -$(pv_value) - false - 1 - true - Text Update - 100 - false - 7565d3e4:177c1ff26c3:-5ceb - 156 - 192 - - - - false - - - - - - - 0 - 1 - true - - Default Bold - - - - - 20 - 1 - Label_109 - - - true - true - false - - - Gyro - - true - 1 - true - Label - 104 - false - 7565d3e4:177c1ff26c3:-5cd9 - 104 - 165 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 1 - Label_110 - - - true - true - false - - - Y - - true - 1 - true - Label - 100 - false - 7565d3e4:177c1ff26c3:-5cc6 - 113 - 254 - - - - false - false - false - - - - true - - - - 1 - 1 - true - - Default - - false - - - - 1 - 20 - 0 - Text Update_46 - 3 - false - /cfs/sens/SENS_HkTlm_t.SensorCombinedMsg.GyroRad_1_ - - 0.0 - - - true - true - false - - - true - ###### - $(pv_name) -$(pv_value) - false - 1 - true - Text Update - 100 - false - 7565d3e4:177c1ff26c3:-5cc5 - 113 - 273 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 1 - Label_111 - - - true - true - false - - - Z - - true - 1 - true - Label - 100 - false - 7565d3e4:177c1ff26c3:-5caf - 218 - 254 - - - - false - false - false - - - - true - - - - 1 - 1 - true - - Default - - false - - - - 1 - 20 - 0 - Text Update_47 - 3 - false - /cfs/sens/SENS_HkTlm_t.SensorCombinedMsg.GyroRad_2_ - - 0.0 - - - true - true - false - - - true - ###### - $(pv_name) -$(pv_value) - false - 1 - true - Text Update - 100 - false - 7565d3e4:177c1ff26c3:-5cae - 218 - 273 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 1 - Label_112 - - - true - true - false - - - X - - true - 1 - true - Label - 100 - false - 7565d3e4:177c1ff26c3:-5c7f - 10 - 456 - - - - false - false - false - - - - true - - - - 1 - 1 - true - - Default - - false - - - - 1 - 20 - 0 - Text Update_48 - 3 - false - /cfs/sens/SENS_HkTlm_t.SensorCombinedMsg.Acc_0_ - - 0.0 - - - true - true - false - - - true - ###### - $(pv_name) -$(pv_value) - false - 1 - true - Text Update - 100 - false - 7565d3e4:177c1ff26c3:-5c7e - 10 - 475 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 2 - Label_113 - - - true - true - false - - - Integral dt - - true - 1 - true - Label - 81 - false - 7565d3e4:177c1ff26c3:-5c7d - 66 - 402 - - - - false - false - false - - - - true - - - - 1 - 1 - true - - Default - - false - - - - 1 - 20 - 0 - Text Update_49 - 6 - false - /cfs/sens/SENS_HkTlm_t.SensorCombinedMsg.AccIntegralDt - - 0.0 - - - true - true - false - - - true - ###### - $(pv_name) -$(pv_value) - false - 1 - true - Text Update - 100 - false - 7565d3e4:177c1ff26c3:-5c7c - 158 - 402 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 2 - Label_114 - - - true - true - false - - - Relative Time - - true - 1 - true - Label - 114 - false - 7565d3e4:177c1ff26c3:-5c7b - 33 - 364 - - - - false - false - false - - - - true - - - - 1 - 1 - true - - Default - - false - - - - 1 - 20 - 0 - Text Update_50 - 0 - false - /cfs/sens/SENS_HkTlm_t.SensorCombinedMsg.AccTimestampRelative.Subseconds - - 0.0 - - - true - true - false - - - true - ###### - $(pv_name) -$(pv_value) - false - 1 - true - Text Update - 100 - false - 7565d3e4:177c1ff26c3:-5c7a - 158 - 383 - - - - false - false - false - - - - true - - - - 1 - 1 - true - - Default - - false - - - - 1 - 20 - 0 - Text Update_51 - 0 - false - /cfs/sens/SENS_HkTlm_t.SensorCombinedMsg.AccTimestampRelative.Seconds - - 0.0 - - - true - true - false - - - true - ###### - $(pv_name) -$(pv_value) - false - 1 - true - Text Update - 100 - false - 7565d3e4:177c1ff26c3:-5c79 - 158 - 364 - - - - false - - - - - - - 0 - 1 - true - - Default Bold - - - - - 20 - 1 - Label_115 - - - true - true - false - - - Accel - - true - 1 - true - Label - 104 - false - 7565d3e4:177c1ff26c3:-5c78 - 106 - 337 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 1 - Label_116 - - - true - true - false - - - Y - - true - 1 - true - Label - 100 - false - 7565d3e4:177c1ff26c3:-5c77 - 114 - 456 - - - - false - false - false - - - - true - - - - 1 - 1 - true - - Default - - false - - - - 1 - 20 - 0 - Text Update_52 - 3 - false - /cfs/sens/SENS_HkTlm_t.SensorCombinedMsg.Acc_1_ - - 0.0 - - - true - true - false - - - true - ###### - $(pv_name) -$(pv_value) - false - 1 - true - Text Update - 100 - false - 7565d3e4:177c1ff26c3:-5c76 - 114 - 475 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 1 - Label_117 - - - true - true - false - - - Z - - true - 1 - true - Label - 100 - false - 7565d3e4:177c1ff26c3:-5c75 - 219 - 456 - - - - false - false - false - - - - true - - - - 1 - 1 - true - - Default - - false - - - - 1 - 20 - 0 - Text Update_53 - 3 - false - /cfs/sens/SENS_HkTlm_t.SensorCombinedMsg.Acc_2_ - - 0.0 - - - true - true - false - - - true - ###### - $(pv_name) -$(pv_value) - false - 1 - true - Text Update - 100 - false - 7565d3e4:177c1ff26c3:-5c74 - 219 - 475 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 2 - Label_118 - - - true - true - false - - - Invalid - - true - 1 - true - Label - 57 - false - 7565d3e4:177c1ff26c3:-5c04 - 444 - 230 - - - - false - false - - - - -1 - true - - - - 0 - 1 - 3 - - - - 0 - true - true - - Default - - false - - - - 20 - LED_1 - - - - OFF - - - - ON - /cfs/sens/SENS_HkTlm_t.SensorCombinedMsg.MagRelTimeInvalid - - - - true - true - true - - - false - false - $(pv_name) -$(pv_value) - true - LED - 20 - 7565d3e4:177c1ff26c3:-5c03 - 514 - 230 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 1 - Label_119 - - - true - true - false - - - X - - true - 1 - true - Label - 100 - false - 7565d3e4:177c1ff26c3:-5c02 - 358 - 255 - - - - false - false - false - - - - true - - - - 1 - 1 - true - - Default - - false - - - - 1 - 20 - 0 - Text Update_54 - 3 - false - /cfs/sens/SENS_HkTlm_t.SensorCombinedMsg.Mag_0_ - - 0.0 - - - true - true - false - - - true - ###### - $(pv_name) -$(pv_value) - false - 1 - true - Text Update - 100 - false - 7565d3e4:177c1ff26c3:-5c01 - 358 - 274 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 2 - Label_121 - - - true - true - false - - - Relative Time - - true - 1 - true - Label - 114 - false - 7565d3e4:177c1ff26c3:-5bfe - 387 - 192 - - - - false - false - false - - - - true - - - - 1 - 1 - true - - Default - - false - - - - 1 - 20 - 0 - Text Update_56 - 0 - false - /cfs/sens/SENS_HkTlm_t.SensorCombinedMsg.MagTimestampRelative.Subseconds - - 0.0 - - - true - true - false - - - true - ###### - $(pv_name) -$(pv_value) - false - 1 - true - Text Update - 100 - false - 7565d3e4:177c1ff26c3:-5bfd - 512 - 211 - - - - false - false - false - - - - true - - - - 1 - 1 - true - - Default - - false - - - - 1 - 20 - 0 - Text Update_57 - 0 - false - /cfs/sens/SENS_HkTlm_t.SensorCombinedMsg.MagTimestampRelative.Seconds - - 0.0 - - - true - true - false - - - true - ###### - $(pv_name) -$(pv_value) - false - 1 - true - Text Update - 100 - false - 7565d3e4:177c1ff26c3:-5bfc - 512 - 192 - - - - false - - - - - - - 0 - 1 - true - - Default Bold - - - - - 20 - 1 - Label_122 - - - true - true - false - - - Mag - - true - 1 - true - Label - 104 - false - 7565d3e4:177c1ff26c3:-5bfb - 460 - 165 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 1 - Label_123 - - - true - true - false - - - Y - - true - 1 - true - Label - 100 - false - 7565d3e4:177c1ff26c3:-5bfa - 462 - 255 - - - - false - false - false - - - - true - - - - 1 - 1 - true - - Default - - false - - - - 1 - 20 - 0 - Text Update_58 - 3 - false - /cfs/sens/SENS_HkTlm_t.SensorCombinedMsg.Mag_1_ - - 0.0 - - - true - true - false - - - true - ###### - $(pv_name) -$(pv_value) - false - 1 - true - Text Update - 100 - false - 7565d3e4:177c1ff26c3:-5bf9 - 462 - 274 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 1 - Label_124 - - - true - true - false - - - Z - - true - 1 - true - Label - 100 - false - 7565d3e4:177c1ff26c3:-5bf8 - 567 - 255 - - - - false - false - false - - - - true - - - - 1 - 1 - true - - Default - - false - - - - 1 - 20 - 0 - Text Update_59 - 3 - false - /cfs/sens/SENS_HkTlm_t.SensorCombinedMsg.Mag_2_ - - 0.0 - - - true - true - false - - - true - ###### - $(pv_name) -$(pv_value) - false - 1 - true - Text Update - 100 - false - 7565d3e4:177c1ff26c3:-5bf7 - 567 - 274 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 2 - Label_125 - - - true - true - false - - - Invalid - - true - 1 - true - Label - 57 - false - 7565d3e4:177c1ff26c3:-5b83 - 444 - 408 - - - - false - false - - - - -1 - true - - - - 0 - 1 - 3 - - - - 0 - true - true - - Default - - false - - - - 20 - LED_2 - - - - OFF - - - - ON - /cfs/sens/SENS_HkTlm_t.SensorCombinedMsg.BaroRelTimeInvalid - - - - true - true - true - - - false - false - $(pv_name) -$(pv_value) - true - LED - 20 - 7565d3e4:177c1ff26c3:-5b82 - 514 - 408 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 2 - Label_127 - - - true - true - false - - - Relative Time - - true - 1 - true - Label - 114 - false - 7565d3e4:177c1ff26c3:-5b7f - 387 - 364 - - - - false - false - false - - - - true - - - - 1 - 1 - true - - Default - - false - - - - 1 - 20 - 0 - Text Update_61 - 0 - false - /cfs/sens/SENS_HkTlm_t.SensorCombinedMsg.BaroTimestampRelative.Subseconds - - 0.0 - - - true - true - false - - - true - ###### - $(pv_name) -$(pv_value) - false - 1 - true - Text Update - 100 - false - 7565d3e4:177c1ff26c3:-5b7e - 512 - 383 - - - - false - false - false - - - - true - - - - 1 - 1 - true - - Default - - false - - - - 1 - 20 - 0 - Text Update_62 - 0 - false - /cfs/sens/SENS_HkTlm_t.SensorCombinedMsg.BaroTimestampRelative.Seconds - - 0.0 - - - true - true - false - - - true - ###### - $(pv_name) -$(pv_value) - false - 1 - true - Text Update - 100 - false - 7565d3e4:177c1ff26c3:-5b7d - 512 - 364 - - - - false - - - - - - - 0 - 1 - true - - Default Bold - - - - - 20 - 1 - Label_128 - - - true - true - false - - - Baro - - true - 1 - true - Label - 104 - false - 7565d3e4:177c1ff26c3:-5b7c - 460 - 337 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 2 - Label_129 - - - true - true - false - - - Altitude - - true - 1 - true - Label - 81 - false - 7565d3e4:177c1ff26c3:-5b60 - 420 - 437 - - - - false - false - false - - - - true - - - - 1 - 1 - true - - Default - - false - - - - 1 - 20 - 0 - Text Update_63 - 3 - false - /cfs/sens/SENS_HkTlm_t.SensorCombinedMsg.BaroAlt - - 0.0 - - - true - true - false - - - true - ###### - $(pv_name) -$(pv_value) - false - 1 - true - Text Update - 100 - false - 7565d3e4:177c1ff26c3:-5b5f - 512 - 437 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 2 - Label_130 - - - true - true - false - - - Temperature - - true - 1 - true - Label - 95 - false - 7565d3e4:177c1ff26c3:-5b51 - 406 - 456 - - - - false - false - false - - - - true - - - - 1 - 1 - true - - Default - - false - - - - 1 - 20 - 0 - Text Update_64 - 1 - false - /cfs/sens/SENS_HkTlm_t.SensorCombinedMsg.BaroTemp - - 0.0 - - - true - true - false - - - true - ###### - $(pv_name) -$(pv_value) - false - 1 - true - Text Update - 100 - false - 7565d3e4:177c1ff26c3:-5b50 - 512 - 456 - - - - - - - true - - - - false - false - - - - false - - - - 0 - 1 - true - - Default - - false - - - - 20 - ../../Resources/send.png - NoOp_3 - 0 - - - - - true - true - false - - - - SendHK - false - $(pv_name) -$(pv_value) - true - Action Button - 102 - 7565d3e4:177c1ff26c3:-5b42 - 223 - 80 - - - - - - - true - - - - false - false - - - - false - - - - 0 - 1 - true - - Default - - false - - - - 20 - ../../Resources/send.png - NoOp_4 - 0 - - - - - true - true - false - - - - WakeUp - false + + WakeUp + false $(pv_name) $(pv_value) true Action Button - 102 - 7565d3e4:177c1ff26c3:-5b41 - 223 - 99 + 124 + -69f8bd78:177f094d5fe:-1624 + 97 + 134 \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/TO/Main.opi b/core/base/tools/commander/workspace_template/Displays/Apps/TO/Main.opi index cff449319..5aecc80cc 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/TO/Main.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/TO/Main.opi @@ -10,7 +10,7 @@ - 1.5.4.202102122300 + 1.5.5.202103012118 @@ -84,7 +84,7 @@ $(pv_value) 100 false -33cb7c72:150aa4c347f:-75ff - 108 + 129 42 @@ -124,7 +124,7 @@ $(pv_value) 91 false -33cb7c72:150aa4c347f:-75fe - 6 + 27 42 @@ -164,7 +164,7 @@ $(pv_value) 60 false -33cb7c72:150aa4c347f:-75fd - 37 + 58 61 @@ -216,7 +216,7 @@ $(pv_value) 100 false -33cb7c72:150aa4c347f:-75fb - 108 + 129 61 @@ -256,7 +256,7 @@ $(pv_value) 182 false -33cb7c72:150aa4c347f:-75c9 - 63 + 84 12 @@ -312,7 +312,7 @@ $(pv_value) Action Button 72 -10b748b0:17773fb054b:-7b9c - 223 + 244 42 @@ -368,7 +368,7 @@ $(pv_value) Action Button 72 -10b748b0:17773fb054b:-7b94 - 223 + 244 61 @@ -408,7 +408,7 @@ $(pv_value) 118 false -10b748b0:17773fb054b:-7b8c - 50 + 71 193 @@ -460,7 +460,7 @@ $(pv_value) 100 false -10b748b0:17773fb054b:-7b82 - 179 + 200 193 @@ -500,7 +500,7 @@ $(pv_value) 136 false -10b748b0:17773fb054b:-7b75 - 32 + 53 212 @@ -552,7 +552,7 @@ $(pv_value) 100 false -10b748b0:17773fb054b:-7b74 - 179 + 200 212 @@ -592,7 +592,7 @@ $(pv_value) 136 false -10b748b0:17773fb054b:-7b54 - 32 + 53 231 @@ -644,7 +644,7 @@ $(pv_value) 100 false -10b748b0:17773fb054b:-7b53 - 179 + 200 231 @@ -684,7 +684,7 @@ $(pv_value) 136 false -10b748b0:17773fb054b:-7b42 - 32 + 53 250 @@ -736,7 +736,7 @@ $(pv_value) 100 false -10b748b0:17773fb054b:-7b41 - 179 + 200 250 @@ -776,7 +776,7 @@ $(pv_value) 136 false -10b748b0:17773fb054b:-7b30 - 32 + 53 269 @@ -828,7 +828,7 @@ $(pv_value) 100 false -10b748b0:17773fb054b:-7b2f - 179 + 200 269 @@ -868,7 +868,7 @@ $(pv_value) 136 false -10b748b0:17773fb054b:-7b1e - 32 + 53 115 @@ -920,7 +920,7 @@ $(pv_value) 100 false -10b748b0:17773fb054b:-7b1d - 179 + 200 115 @@ -960,7 +960,7 @@ $(pv_value) 136 false -10b748b0:17773fb054b:-7b0c - 32 + 53 288 @@ -1012,7 +1012,7 @@ $(pv_value) 100 false -10b748b0:17773fb054b:-7b0b - 179 + 200 288 @@ -1052,7 +1052,7 @@ $(pv_value) 118 false -10b748b0:17773fb054b:-7afd - 50 + 71 96 @@ -1104,7 +1104,7 @@ $(pv_value) 100 false -10b748b0:17773fb054b:-7afc - 179 + 200 96 @@ -1144,7 +1144,7 @@ $(pv_value) 158 false -10b748b0:17773fb054b:-7ae3 - 10 + 31 134 @@ -1196,7 +1196,7 @@ $(pv_value) 100 false -10b748b0:17773fb054b:-7ae2 - 179 + 200 134 @@ -1236,7 +1236,7 @@ $(pv_value) 92 false -10b748b0:17773fb054b:-7ad4 - 108 + 129 174 @@ -1276,7 +1276,7 @@ $(pv_value) 136 false -10b748b0:17773fb054b:-7ac3 - 32 + 53 307 @@ -1328,7 +1328,7 @@ $(pv_value) 100 false -10b748b0:17773fb054b:-7ac2 - 179 + 200 307 @@ -1368,7 +1368,7 @@ $(pv_value) 136 false -10b748b0:17773fb054b:-7ab1 - 32 + 53 326 @@ -1420,7 +1420,7 @@ $(pv_value) 100 false -10b748b0:17773fb054b:-7ab0 - 179 + 200 326 @@ -1475,7 +1475,7 @@ $(pv_value) Action Button 175 -10b748b0:17773fb054b:-76ff - 66 + 6 360 @@ -1530,7 +1530,7 @@ $(pv_value) Action Button 175 -10b748b0:17773fb054b:-76f7 - 66 + 6 379 @@ -1585,7 +1585,7 @@ $(pv_value) Action Button 175 -10b748b0:17773fb054b:-75ff - 66 + 6 398 @@ -1640,7 +1640,7 @@ $(pv_value) Action Button 175 -10b748b0:17773fb054b:-75e5 - 66 + 6 417 @@ -1695,7 +1695,7 @@ $(pv_value) Action Button 175 -10b748b0:17773fb054b:-75dd - 66 + 6 436 @@ -1750,8 +1750,8 @@ $(pv_value) Action Button 175 -10b748b0:17773fb054b:-75d5 - 66 - 455 + 192 + 360 @@ -1759,8 +1759,14 @@ $(pv_value) +var yaml_dir = FileUtil.workspacePathToSysPath(display.getMacroValue("PROJECT_NAME")) + "/Resources/wh_defs.yaml"; +var yaml_data = YAMLUtil.parseYAML(yaml_dir); +var opi_to_open_path = FileUtil.workspacePathToSysPath(display.getMacroValue("PROJECT_NAME")) + '/Core/EVS/ResetFilter.opi'; +var macroInput = DataUtil.createMacrosInput(true); + +ScriptUtil.openOPI(display.getWidget("ResetEventFilter"), opi_to_open_path, 3, macroInput );]]> true @@ -1768,7 +1774,7 @@ Yamcs.issueCommand('/cfs/to/SendHK', {});]]> false false - + false @@ -1782,11 +1788,11 @@ Yamcs.issueCommand('/cfs/to/SendHK', {});]]> false - + 20 - ../../Resources/send.png - NoOp_3 + + ResetEventFilter 0 @@ -1798,16 +1804,16 @@ Yamcs.issueCommand('/cfs/to/SendHK', {});]]> - SendHK + Reset Event Filter false $(pv_name) $(pv_value) true Action Button 175 - -10b748b0:17773fb054b:-75cd - 66 - 493 + -780e3ce9:177d07f82f5:-7d62 + 192 + 379 @@ -1815,8 +1821,13 @@ $(pv_value) +var opi_to_open_path = FileUtil.workspacePathToSysPath(display.getMacroValue("EVENTS_OPI")); +var macroInput = DataUtil.createMacrosInput(true); + +ScriptUtil.openOPI(display.getWidget("Events"), opi_to_open_path, RunModeService.DisplayMode.REPLACE, macroInput );]]> true @@ -1824,7 +1835,7 @@ Yamcs.issueCommand('/cfs/to/SendTelemetry', {});]]> false false - + false @@ -1838,11 +1849,11 @@ Yamcs.issueCommand('/cfs/to/SendTelemetry', {});]]> false - + 20 - ../../Resources/send.png - NoOp_4 + + Events 0 @@ -1854,16 +1865,16 @@ Yamcs.issueCommand('/cfs/to/SendTelemetry', {});]]> - Send Telemetry + Event Filters false $(pv_name) $(pv_value) true Action Button 175 - -10b748b0:17773fb054b:-75c5 - 66 - 512 + -19107c2b:177da1db5df:1958 + 192 + 398 @@ -1871,14 +1882,8 @@ $(pv_value) +Yamcs.issueCommand('/cfs/to/SendHK', {});]]> true @@ -1886,7 +1891,7 @@ ScriptUtil.openOPI(display.getWidget("ResetEventFilter"), opi_to_open_path, 3, m false false - + false @@ -1900,11 +1905,11 @@ ScriptUtil.openOPI(display.getWidget("ResetEventFilter"), opi_to_open_path, 3, m false - + 20 - - ResetEventFilter + ../../Resources/send.png + NoOp_3 0 @@ -1916,16 +1921,16 @@ ScriptUtil.openOPI(display.getWidget("ResetEventFilter"), opi_to_open_path, 3, m - Reset Event Filter + SendHK false $(pv_name) $(pv_value) true Action Button 175 - -780e3ce9:177d07f82f5:-7d62 - 66 - 474 + -69f8bd78:177f094d5fe:-15ed + 192 + 417 @@ -1933,13 +1938,8 @@ $(pv_value) +Yamcs.issueCommand('/cfs/to/SendTelemetry', {});]]> true @@ -1947,7 +1947,7 @@ ScriptUtil.openOPI(display.getWidget("Events"), opi_to_open_path, RunModeService false false - + false @@ -1961,11 +1961,11 @@ ScriptUtil.openOPI(display.getWidget("Events"), opi_to_open_path, RunModeService false - + 20 - - Events + ../../Resources/send.png + NoOp_4 0 @@ -1977,15 +1977,15 @@ ScriptUtil.openOPI(display.getWidget("Events"), opi_to_open_path, RunModeService - Events + Send Telemetry false $(pv_name) $(pv_value) true Action Button - 127 - -19107c2b:177da1db5df:1958 - 450 - 42 + 175 + -69f8bd78:177f094d5fe:-15e5 + 192 + 436 \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/VM/Arming.opi b/core/base/tools/commander/workspace_template/Displays/Apps/VM/Arming.opi new file mode 100644 index 000000000..4761a9d63 --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/Apps/VM/Arming.opi @@ -0,0 +1,242 @@ + + + + + false + -1 + -1 + + false + + + + 1.5.5.202103012118 + + + + 6 + 630 + + true + vm + /Displays/Core/EVS/Events.opi + Displays + + + + + true + true + true + true + true + Display + 750 + -33cb7c72:150aa4c347f:-76c2 + -1 + -1 + + + false + + + + + + + 0 + 1 + true + + Default Bold + + + + + 20 + 1 + Label_49 + + + true + true + false + + + Vehicle Manager - Arming + + true + 1 + true + Label + 182 + false + -33cb7c72:150aa4c347f:-75c9 + 18 + 12 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 1 + Text Update_40 + 0 + false + /cfs/vm/VM_HkTlm_t.ArmingState + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 97 + false + 7565d3e4:177c1ff26c3:-79ab + 60 + 42 + + + + + + + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 31 + ../../Resources/send.png + NoOp_5 + 0 + + + + + true + true + false + + + + Arm + false + $(pv_name) +$(pv_value) + true + Action Button + 157 + 7565d3e4:177c1ff26c3:-79a0 + 30 + 120 + + + + + + + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 32 + ../../Resources/send.png + NoOp_7 + 0 + + + + + true + true + false + + + + Disarm + false + $(pv_name) +$(pv_value) + true + Action Button + 157 + 7565d3e4:177c1ff26c3:-799f + 30 + 78 + + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/VM/Main.opi b/core/base/tools/commander/workspace_template/Displays/Apps/VM/Main.opi index 4c0d608e1..9f1198968 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/VM/Main.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/VM/Main.opi @@ -10,7 +10,7 @@ - 1.5.3 + 1.5.5.202103012118 @@ -18,6 +18,9 @@ 630 true + vm + /Displays/Core/EVS/Events.opi + Displays @@ -388,7 +391,7 @@ $(pv_value) 20 2 - Label_50 + Label_58 true @@ -396,17 +399,17 @@ $(pv_value) false - Sensor Mag + Wakeup Count true 1 true Label - 103 + 114 false - -10b748b0:17773fb054b:-7b8c - 528 - 59 + -10b748b0:17773fb054b:-7ae3 + 43 + 96 @@ -433,10 +436,10 @@ $(pv_value) 1 20 0 - Text Update_2 + Text Update_10 0 false - /cfs/vm/VM_HkTlm_t.SensorMagMsgCount + /cfs/vm/VM_HkTlm_t.WakeupCount 0.0 @@ -456,16 +459,27 @@ $(pv_value) Text Update 100 false - -10b748b0:17773fb054b:-7b82 - 642 - 59 + -10b748b0:17773fb054b:-7ae2 + 168 + 96 - - - false + + + + SendDiag.opi + + true + + 1 + + + + false + false - + + false @@ -475,12 +489,16 @@ $(pv_value) Default + false 20 - 2 - Label_51 + + Action Button_5 + 0 + + true @@ -488,31 +506,39 @@ $(pv_value) false - Sensor Gyro - - true - 1 + + Configuration + false + $(pv_name) +$(pv_value) true - Label - 136 - false - -10b748b0:17773fb054b:-7b75 - 495 - 78 + Action Button + 134 + 7565d3e4:177c1ff26c3:-7ee2 + 10 + 259 - - + + + + SendDiag.opi + + true + + 1 + + + false - false false - + - true + false - + - 1 + 0 1 true @@ -522,15 +548,12 @@ $(pv_value) - 1 20 - 0 - Text Update_3 - 0 - false - /cfs/vm/VM_HkTlm_t.SensorGyroMsgCount + + Action Button_1 + 0 + - 0.0 true @@ -538,26 +561,36 @@ $(pv_value) false - true - ###### + + Diagnostic + false $(pv_name) $(pv_value) - false - 1 true - Text Update - 100 - false - -10b748b0:17773fb054b:-7b74 - 642 - 78 + Action Button + 135 + 7565d3e4:177c1ff26c3:-7ed8 + 9 + 278 - - - false + + + + + + true + + + + false + false - + + false @@ -567,12 +600,16 @@ $(pv_value) Default + false - + 20 - 2 - Label_52 + ../../Resources/send.png + NoOp_3 + 0 + + true @@ -580,31 +617,40 @@ $(pv_value) false - Battery Status - - true - 1 + + SendHK + false + $(pv_name) +$(pv_value) true - Label - 136 - false - -10b748b0:17773fb054b:-7b54 - 495 - 97 + Action Button + 135 + 7565d3e4:177c1ff26c3:-7ece + 150 + 259 - - + + + + + + true + + + false - false false - + - true + false - + - 1 + 0 1 true @@ -612,17 +658,14 @@ $(pv_value) false - + - 1 20 - 0 - Text Update_4 - 0 - false - /cfs/vm/VM_HkTlm_t.BatteryStatusMsgCount + ../../Resources/send.png + NoOp_4 + 0 + - 0.0 true @@ -630,19 +673,17 @@ $(pv_value) false - true - ###### + + WakeUp + false $(pv_name) $(pv_value) - false - 1 true - Text Update - 100 - false - -10b748b0:17773fb054b:-7b53 - 642 - 97 + Action Button + 135 + 7565d3e4:177c1ff26c3:-7ec6 + 150 + 278 @@ -664,7 +705,7 @@ $(pv_value) 20 2 - Label_53 + Label_76 true @@ -672,17 +713,17 @@ $(pv_value) false - Telemetry Status + Boot Timestamp true 1 true Label - 136 + 120 false - -10b748b0:17773fb054b:-7b42 - 495 - 116 + 7565d3e4:177c1ff26c3:-7c4e + 37 + 115 @@ -709,10 +750,10 @@ $(pv_value) 1 20 0 - Text Update_5 + Text Update_26 0 false - /cfs/vm/VM_HkTlm_t.TelemetryStatusMsgCount + /cfs/vm/VM_HkTlm_t.BootTimestamp.Seconds 0.0 @@ -732,9 +773,9 @@ $(pv_value) Text Update 100 false - -10b748b0:17773fb054b:-7b41 - 642 - 116 + 7565d3e4:177c1ff26c3:-7c4d + 168 + 115 @@ -756,7 +797,7 @@ $(pv_value) 20 2 - Label_54 + Label_81 true @@ -764,7 +805,7 @@ $(pv_value) false - Subsystem Info + Stick Off Counter true 1 @@ -772,9 +813,9 @@ $(pv_value) Label 136 false - -10b748b0:17773fb054b:-7b30 - 495 - 135 + 7565d3e4:177c1ff26c3:-7c44 + 21 + 151 @@ -801,10 +842,10 @@ $(pv_value) 1 20 0 - Text Update_6 + Text Update_31 0 false - /cfs/vm/VM_HkTlm_t.SubsystemInfoMsgCount + /cfs/vm/VM_HkTlm_t.StickOffCounter 0.0 @@ -824,9 +865,9 @@ $(pv_value) Text Update 100 false - -10b748b0:17773fb054b:-7b2f - 642 - 135 + 7565d3e4:177c1ff26c3:-7c43 + 168 + 151 @@ -848,7 +889,7 @@ $(pv_value) 20 2 - Label_56 + Label_82 true @@ -856,17 +897,17 @@ $(pv_value) false - Vehicle Attitude + Stick On Counter true 1 true Label - 136 + 146 false - -10b748b0:17773fb054b:-7b0c - 495 - 154 + 7565d3e4:177c1ff26c3:-7c42 + 10 + 170 @@ -893,10 +934,10 @@ $(pv_value) 1 20 0 - Text Update_8 + Text Update_32 0 false - /cfs/vm/VM_HkTlm_t.VehicleAttitudeMsgCount + /cfs/vm/VM_HkTlm_t.StickOnCounter 0.0 @@ -916,9 +957,9 @@ $(pv_value) Text Update 100 false - -10b748b0:17773fb054b:-7b0b - 642 - 154 + 7565d3e4:177c1ff26c3:-7c41 + 168 + 170 @@ -940,7 +981,7 @@ $(pv_value) 20 2 - Label_58 + Label_83 true @@ -948,17 +989,17 @@ $(pv_value) false - Wakeup Count + Last Sp Man Arm Sw true 1 true Label - 114 + 152 false - -10b748b0:17773fb054b:-7ae3 - 42 - 118 + 7565d3e4:177c1ff26c3:-7c40 + 7 + 189 @@ -985,10 +1026,10 @@ $(pv_value) 1 20 0 - Text Update_10 + Text Update_33 0 false - /cfs/vm/VM_HkTlm_t.WakeupCount + /cfs/vm/VM_HkTlm_t.LastSpManArmSwitch 0.0 @@ -1008,9 +1049,9 @@ $(pv_value) Text Update 100 false - -10b748b0:17773fb054b:-7ae2 - 167 - 118 + 7565d3e4:177c1ff26c3:-7c3f + 168 + 189 @@ -1032,7 +1073,7 @@ $(pv_value) 20 2 - Label_60 + Label_87 true @@ -1040,17 +1081,17 @@ $(pv_value) false - Vehicle Local Position + RC Signal Lost Time true 1 true Label - 146 + 136 false - -10b748b0:17773fb054b:-7ac3 - 485 - 173 + 7565d3e4:177c1ff26c3:-7c38 + 21 + 208 @@ -1077,10 +1118,10 @@ $(pv_value) 1 20 0 - Text Update_11 + Text Update_37 0 false - /cfs/vm/VM_HkTlm_t.VehicleLocalPositionMsgCount + /cfs/vm/VM_HkTlm_t.RCSignalLostTimestamp.Seconds 0.0 @@ -1100,31 +1141,41 @@ $(pv_value) Text Update 100 false - -10b748b0:17773fb054b:-7ac2 - 642 - 173 + 7565d3e4:177c1ff26c3:-7c37 + 168 + 208 - + + false false + false + true - + - 0 + 1 1 true Default + false + 1 20 - 2 - Label_61 + 0 + Text Update_42 + 0 + false + /cfs/vm/VM_HkTlm_t.BootTimestamp.Subseconds + + 0.0 true @@ -1132,17 +1183,19 @@ $(pv_value) false - Vehicle Land Detected - - true + true + ###### + $(pv_name) +$(pv_value) + false 1 true - Label - 146 - false - -10b748b0:17773fb054b:-7ab1 - 485 - 192 + Text Update + 100 + false + 7565d3e4:177c1ff26c3:-6532 + 168 + 132 @@ -1169,10 +1222,10 @@ $(pv_value) 1 20 0 - Text Update_12 + Text Update_43 0 false - /cfs/vm/VM_HkTlm_t.VehicleLandDetectedMsgCount + /cfs/vm/VM_HkTlm_t.RCSignalLostTimestamp.Subseconds 0.0 @@ -1192,177 +1245,9 @@ $(pv_value) Text Update 100 false - -10b748b0:17773fb054b:-7ab0 - 642 - 192 - - - - - - - true - - - - false - false - - - - false - - - - 0 - 1 - true - - Default - - false - - - - 20 - ../../Resources/send.png - NoOp_8 - 0 - - - - - true - true - false - - - - Manual - false - $(pv_name) -$(pv_value) - true - Action Button - 134 - 7565d3e4:177c1ff26c3:-7f6b - 325 - 257 - - - - - - - true - - - - false - false - - - - false - - - - 0 - 1 - true - - Default - - false - - - - 20 - ../../Resources/send.png - NoOp_9 - 0 - - - - - true - true - false - - - - Loiter - false - $(pv_name) -$(pv_value) - true - Action Button - 134 - 7565d3e4:177c1ff26c3:-7f63 - 325 - 276 - - - - - - - true - - - - false - false - - - - false - - - - 0 - 1 - true - - Default - - false - - - - 20 - ../../Resources/send.png - NoOp_10 - 0 - - - - - true - true - false - - - - RTL - false - $(pv_name) -$(pv_value) - true - Action Button - 134 - 7565d3e4:177c1ff26c3:-7f5b - 325 - 295 + 7565d3e4:177c1ff26c3:-63c8 + 168 + 227 @@ -1370,64 +1255,13 @@ $(pv_value) - true - - - - false - false - - - - false - - - - 0 - 1 - true - - Default - - false - - - - 20 - ../../Resources/send.png - NoOp_11 - 0 - - - - - true - true - false - - - - Takeoff - false - $(pv_name) -$(pv_value) - true - Action Button - 134 - 7565d3e4:177c1ff26c3:-7f47 - 325 - 314 - - - - - - +ScriptUtil.openOPI(display.getWidget("Events"), opi_to_open_path, RunModeService.DisplayMode.REPLACE, macroInput );]]> true @@ -1435,7 +1269,7 @@ Yamcs.issueCommand('/cfs/vm/AutoLand', {});]]> false false - + false @@ -1449,11 +1283,11 @@ Yamcs.issueCommand('/cfs/vm/AutoLand', {});]]> false - + 20 - ../../Resources/send.png - NoOp_12 + + Events 0 @@ -1465,4547 +1299,15 @@ Yamcs.issueCommand('/cfs/vm/AutoLand', {});]]> - Land + Event Filters false $(pv_name) $(pv_value) true Action Button 134 - 7565d3e4:177c1ff26c3:-7f3d - 325 - 333 - - - - - - - true - - - - false - false - - - - false - - - - 0 - 1 - true - - Default - - false - - - - 20 - ../../Resources/send.png - NoOp_13 - 0 - - - - - true - true - false - - - - Acrobatic - false - $(pv_name) -$(pv_value) - true - Action Button - 134 - 7565d3e4:177c1ff26c3:-7f33 - 325 - 352 - - - - - - - true - - - - false - false - - - - false - - - - 0 - 1 - true - - Default - - false - - - - 20 - ../../Resources/send.png - NoOp_14 - 0 - - - - - true - true - false - - - - Rattitude - false - $(pv_name) -$(pv_value) - true - Action Button - 134 - 7565d3e4:177c1ff26c3:-7f29 - 325 - 369 - - - - - - - true - - - - false - false - - - - false - - - - 0 - 1 - true - - Default - - false - - - - 20 - ../../Resources/send.png - NoOp_15 - 0 - - - - - true - true - false - - - - Stabilized - false - $(pv_name) -$(pv_value) - true - Action Button - 134 - 7565d3e4:177c1ff26c3:-7f1f - 325 - 388 - - - - - SendDiag.opi - - true - - 1 - - - - false - false - - - - false - - - - 0 - 1 - true - - Default - - false - - - - 20 - - Action Button_5 - 0 - - - - - true - true - false - - - - Configuration - false - $(pv_name) -$(pv_value) - true - Action Button - 134 - 7565d3e4:177c1ff26c3:-7ee2 - 33 - 476 - - - - - SendDiag.opi - - true - - 1 - - - - false - false - - - - false - - - - 0 - 1 - true - - Default - - false - - - - 20 - - Action Button_1 - 0 - - - - - true - true - false - - - - Diagnostic - false - $(pv_name) -$(pv_value) - true - Action Button - 135 - 7565d3e4:177c1ff26c3:-7ed8 - 32 - 495 - - - - - - - true - - - - false - false - - - - false - - - - 0 - 1 - true - - Default - - false - - - - 20 - ../../Resources/send.png - NoOp_3 - 0 - - - - - true - true - false - - - - SendHK - false - $(pv_name) -$(pv_value) - true - Action Button - 135 - 7565d3e4:177c1ff26c3:-7ece - 173 - 476 - - - - - - - true - - - - false - false - - - - false - - - - 0 - 1 - true - - Default - - false - - - - 20 - ../../Resources/send.png - NoOp_4 - 0 - - - - - true - true - false - - - - WakeUp - false - $(pv_name) -$(pv_value) - true - Action Button - 135 - 7565d3e4:177c1ff26c3:-7ec6 - 173 - 495 - - - - false - - - - - - - 0 - 1 - true - - Default Bold - - - - - 20 - 1 - Label_62 - - - true - true - false - - - Messages Received - - true - 1 - true - Label - 146 - false - 7565d3e4:177c1ff26c3:-7e7c - 544 - 29 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 2 - Label_63 - - - true - true - false - - - Mission Result - - true - 1 - true - Label - 136 - false - 7565d3e4:177c1ff26c3:-7e45 - 495 - 211 - - - - false - false - false - - - - true - - - - 1 - 1 - true - - Default - - false - - - - 1 - 20 - 0 - Text Update_13 - 0 - false - /cfs/vm/VM_HkTlm_t.MissionResultMsgCount - - 0.0 - - - true - true - false - - - true - ###### - $(pv_name) -$(pv_value) - false - 1 - true - Text Update - 100 - false - 7565d3e4:177c1ff26c3:-7e44 - 642 - 211 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 2 - Label_64 - - - true - true - false - - - Manual Control Setpoint - - true - 1 - true - Label - 158 - false - 7565d3e4:177c1ff26c3:-7e43 - 473 - 230 - - - - false - false - false - - - - true - - - - 1 - 1 - true - - Default - - false - - - - 1 - 20 - 0 - Text Update_14 - 0 - false - /cfs/vm/VM_HkTlm_t.ManualControlSetpointMsgCount - - 0.0 - - - true - true - false - - - true - ###### - $(pv_name) -$(pv_value) - false - 1 - true - Text Update - 100 - false - 7565d3e4:177c1ff26c3:-7e42 - 642 - 230 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 2 - Label_65 - - - true - true - false - - - Position Setpoint Triplet - - true - 1 - true - Label - 152 - false - 7565d3e4:177c1ff26c3:-7e41 - 479 - 249 - - - - false - false - false - - - - true - - - - 1 - 1 - true - - Default - - false - - - - 1 - 20 - 0 - Text Update_15 - 0 - false - /cfs/vm/VM_HkTlm_t.PositionSetpointTripletMsgCount - - 0.0 - - - true - true - false - - - true - ###### - $(pv_name) -$(pv_value) - false - 1 - true - Text Update - 100 - false - 7565d3e4:177c1ff26c3:-7e40 - 642 - 249 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 2 - Label_66 - - - true - true - false - - - Sensor Accel - - true - 1 - true - Label - 136 - false - 7565d3e4:177c1ff26c3:-7e3f - 495 - 268 - - - - false - false - false - - - - true - - - - 1 - 1 - true - - Default - - false - - - - 1 - 20 - 0 - Text Update_16 - 0 - false - /cfs/vm/VM_HkTlm_t.SensorAccelMsgCount - - 0.0 - - - true - true - false - - - true - ###### - $(pv_name) -$(pv_value) - false - 1 - true - Text Update - 100 - false - 7565d3e4:177c1ff26c3:-7e3e - 642 - 268 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 2 - Label_67 - - - true - true - false - - - Safety - - true - 1 - true - Label - 136 - false - 7565d3e4:177c1ff26c3:-7e3d - 495 - 287 - - - - false - false - false - - - - true - - - - 1 - 1 - true - - Default - - false - - - - 1 - 20 - 0 - Text Update_17 - 0 - false - /cfs/vm/VM_HkTlm_t.SafetyMsgCount - - 0.0 - - - true - true - false - - - true - ###### - $(pv_name) -$(pv_value) - false - 1 - true - Text Update - 100 - false - 7565d3e4:177c1ff26c3:-7e3c - 642 - 287 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 2 - Label_68 - - - true - true - false - - - Sensor Correction - - true - 1 - true - Label - 146 - false - 7565d3e4:177c1ff26c3:-7e3b - 485 - 306 - - - - false - false - false - - - - true - - - - 1 - 1 - true - - Default - - false - - - - 1 - 20 - 0 - Text Update_18 - 0 - false - /cfs/vm/VM_HkTlm_t.SensorCorrectionMsgCount - - 0.0 - - - true - true - false - - - true - ###### - $(pv_name) -$(pv_value) - false - 1 - true - Text Update - 100 - false - 7565d3e4:177c1ff26c3:-7e3a - 642 - 306 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 2 - Label_69 - - - true - true - false - - - Sensor Combined - - true - 1 - true - Label - 146 - false - 7565d3e4:177c1ff26c3:-7e39 - 485 - 325 - - - - false - false - false - - - - true - - - - 1 - 1 - true - - Default - - false - - - - 1 - 20 - 0 - Text Update_19 - 0 - false - /cfs/vm/VM_HkTlm_t.SensorCombinedMsgCount - - 0.0 - - - true - true - false - - - true - ###### - $(pv_name) -$(pv_value) - false - 1 - true - Text Update - 100 - false - 7565d3e4:177c1ff26c3:-7e38 - 642 - 325 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 2 - Label_70 - - - true - true - false - - - Vehicle Command - - true - 1 - true - Label - 136 - false - 7565d3e4:177c1ff26c3:-7d73 - 495 - 344 - - - - false - false - false - - - - true - - - - 1 - 1 - true - - Default - - false - - - - 1 - 20 - 0 - Text Update_20 - 0 - false - /cfs/vm/VM_HkTlm_t.VehicleCommandMsgCount - - 0.0 - - - true - true - false - - - true - ###### - $(pv_name) -$(pv_value) - false - 1 - true - Text Update - 100 - false - 7565d3e4:177c1ff26c3:-7d72 - 642 - 344 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 2 - Label_71 - - - true - true - false - - - Vehicle Global Position - - true - 1 - true - Label - 152 - false - 7565d3e4:177c1ff26c3:-7d71 - 479 - 363 - - - - false - false - false - - - - true - - - - 1 - 1 - true - - Default - - false - - - - 1 - 20 - 0 - Text Update_21 - 0 - false - /cfs/vm/VM_HkTlm_t.VehicleGlobalPositionMsgCount - - 0.0 - - - true - true - false - - - true - ###### - $(pv_name) -$(pv_value) - false - 1 - true - Text Update - 100 - false - 7565d3e4:177c1ff26c3:-7d70 - 642 - 363 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 2 - Label_72 - - - true - true - false - - - Vehicle GPS Position - - true - 1 - true - Label - 146 - false - 7565d3e4:177c1ff26c3:-7d6f - 485 - 382 - - - - false - false - false - - - - true - - - - 1 - 1 - true - - Default - - false - - - - 1 - 20 - 0 - Text Update_22 - 0 - false - /cfs/vm/VM_HkTlm_t.VehicleGpsPositionMsgCount - - 0.0 - - - true - true - false - - - true - ###### - $(pv_name) -$(pv_value) - false - 1 - true - Text Update - 100 - false - 7565d3e4:177c1ff26c3:-7d6e - 642 - 382 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 2 - Label_73 - - - true - true - false - - - Vehicle Status - - true - 1 - true - Label - 136 - false - 7565d3e4:177c1ff26c3:-7d6d - 495 - 401 - - - - false - false - false - - - - true - - - - 1 - 1 - true - - Default - - false - - - - 1 - 20 - 0 - Text Update_23 - 0 - false - /cfs/vm/VM_HkTlm_t.VehicleStatusMsgCount - - 0.0 - - - true - true - false - - - true - ###### - $(pv_name) -$(pv_value) - false - 1 - true - Text Update - 100 - false - 7565d3e4:177c1ff26c3:-7d6c - 642 - 401 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 2 - Label_74 - - - true - true - false - - - Vehicle Control Mode - - true - 1 - true - Label - 149 - false - 7565d3e4:177c1ff26c3:-7d6b - 482 - 420 - - - - false - false - false - - - - true - - - - 1 - 1 - true - - Default - - false - - - - 1 - 20 - 0 - Text Update_24 - 0 - false - /cfs/vm/VM_HkTlm_t.VehicleControlModeMsgCount - - 0.0 - - - true - true - false - - - true - ###### - $(pv_name) -$(pv_value) - false - 1 - true - Text Update - 100 - false - 7565d3e4:177c1ff26c3:-7d6a - 642 - 420 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 2 - Label_75 - - - true - true - false - - - Not Initialized - - true - 1 - true - Label - 141 - false - 7565d3e4:177c1ff26c3:-7d69 - 17 - 295 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 2 - Label_76 - - - true - true - false - - - Boot Timestamp - - true - 1 - true - Label - 120 - false - 7565d3e4:177c1ff26c3:-7c4e - 36 - 137 - - - - false - false - false - - - - true - - - - 1 - 1 - true - - Default - - false - - - - 1 - 20 - 0 - Text Update_26 - 0 - false - /cfs/vm/VM_HkTlm_t.BootTimestamp.Seconds - - 0.0 - - - true - true - false - - - true - ###### - $(pv_name) -$(pv_value) - false - 1 - true - Text Update - 100 - false - 7565d3e4:177c1ff26c3:-7c4d - 167 - 137 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 2 - Label_78 - - - true - true - false - - - Local Position Is Valid - - true - 1 - true - Label - 158 - false - 7565d3e4:177c1ff26c3:-7c4a - 0 - 314 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 2 - Label_79 - - - true - true - false - - - Prev Landed - - true - 1 - true - Label - 136 - false - 7565d3e4:177c1ff26c3:-7c48 - 22 - 333 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 2 - Label_80 - - - true - true - false - - - Prev In Flight - - true - 1 - true - Label - 136 - false - 7565d3e4:177c1ff26c3:-7c46 - 22 - 352 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 2 - Label_81 - - - true - true - false - - - Stick Off Counter - - true - 1 - true - Label - 136 - false - 7565d3e4:177c1ff26c3:-7c44 - 20 - 173 - - - - false - false - false - - - - true - - - - 1 - 1 - true - - Default - - false - - - - 1 - 20 - 0 - Text Update_31 - 0 - false - /cfs/vm/VM_HkTlm_t.StickOffCounter - - 0.0 - - - true - true - false - - - true - ###### - $(pv_name) -$(pv_value) - false - 1 - true - Text Update - 100 - false - 7565d3e4:177c1ff26c3:-7c43 - 167 - 173 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 2 - Label_82 - - - true - true - false - - - Stick On Counter - - true - 1 - true - Label - 146 - false - 7565d3e4:177c1ff26c3:-7c42 - 9 - 192 - - - - false - false - false - - - - true - - - - 1 - 1 - true - - Default - - false - - - - 1 - 20 - 0 - Text Update_32 - 0 - false - /cfs/vm/VM_HkTlm_t.StickOnCounter - - 0.0 - - - true - true - false - - - true - ###### - $(pv_name) -$(pv_value) - false - 1 - true - Text Update - 100 - false - 7565d3e4:177c1ff26c3:-7c41 - 167 - 192 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 2 - Label_83 - - - true - true - false - - - Last Sp Man Arm Sw - - true - 1 - true - Label - 152 - false - 7565d3e4:177c1ff26c3:-7c40 - 6 - 211 - - - - false - false - false - - - - true - - - - 1 - 1 - true - - Default - - false - - - - 1 - 20 - 0 - Text Update_33 - 0 - false - /cfs/vm/VM_HkTlm_t.LastSpManArmSwitch - - 0.0 - - - true - true - false - - - true - ###### - $(pv_name) -$(pv_value) - false - 1 - true - Text Update - 100 - false - 7565d3e4:177c1ff26c3:-7c3f - 167 - 211 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 2 - Label_84 - - - true - true - false - - - Low Bat Action Done - - true - 1 - true - Label - 136 - false - 7565d3e4:177c1ff26c3:-7c3e - 22 - 371 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 2 - Label_85 - - - true - true - false - - - Crit Bat Action Done - - true - 1 - true - Label - 170 - false - 7565d3e4:177c1ff26c3:-7c3c - -12 - 409 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 2 - Label_86 - - - true - true - false - - - Emer Bat Action Done - - true - 1 - true - Label - 170 - false - 7565d3e4:177c1ff26c3:-7c3a - -12 - 390 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 2 - Label_87 - - - true - true - false - - - RC Signal Lost Time - - true - 1 - true - Label - 136 - false - 7565d3e4:177c1ff26c3:-7c38 - 20 - 230 - - - - false - false - false - - - - true - - - - 1 - 1 - true - - Default - - false - - - - 1 - 20 - 0 - Text Update_37 - 0 - false - /cfs/vm/VM_HkTlm_t.RCSignalLostTimestamp.Seconds - - 0.0 - - - true - true - false - - - true - ###### - $(pv_name) -$(pv_value) - false - 1 - true - Text Update - 100 - false - 7565d3e4:177c1ff26c3:-7c37 - 167 - 230 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 2 - Label_88 - - - true - true - false - - - Arming State Changed - - true - 1 - true - Label - 158 - false - 7565d3e4:177c1ff26c3:-7c36 - 0 - 428 - - - - false - - - - - - - 0 - 1 - true - - Default Bold - - - - - 20 - 1 - Label_90 - - - true - true - false - - - Moding - - true - 1 - true - Label - 104 - false - 7565d3e4:177c1ff26c3:-79c3 - 337 - 213 - - - - false - - - - - - - 0 - 1 - true - - Default Bold - - - - - 20 - 1 - Label_91 - - - true - true - false - - - Arming - - true - 1 - true - Label - 104 - false - 7565d3e4:177c1ff26c3:-79b7 - 331 - 100 - - - - false - false - false - - - - true - - - - 1 - 1 - true - - Default - - false - - - - 1 - 20 - 0 - Text Update_40 - 0 - false - /cfs/vm/VM_HkTlm_t.ArmingState - - 0.0 - - - true - true - false - - - true - ###### - $(pv_name) -$(pv_value) - false - 1 - true - Text Update - 97 - false - 7565d3e4:177c1ff26c3:-79ab - 334 - 124 - - - - - - - true - - - - false - false - - - - false - - - - 0 - 1 - true - - Default - - false - - - - 20 - ../../Resources/send.png - NoOp_5 - 0 - - - - - true - true - false - - - - Arm - false - $(pv_name) -$(pv_value) - true - Action Button - 97 - 7565d3e4:177c1ff26c3:-79a0 - 334 - 143 - - - - - - - true - - - - false - false - - - - false - - - - 0 - 1 - true - - Default - - false - - - - 20 - ../../Resources/send.png - NoOp_7 - 0 - - - - - true - true - false - - - - Disarm - false - $(pv_name) -$(pv_value) - true - Action Button - 97 - 7565d3e4:177c1ff26c3:-799f - 334 - 162 - - - - false - false - false - - - - true - - - - 1 - 1 - true - - Default - - false - - - - 1 - 20 - 0 - Text Update_41 - 0 - false - /cfs/vm/VM_HkTlm_t.NavState - - 0.0 - - - true - true - false - - - true - ###### - $(pv_name) -$(pv_value) - false - 1 - true - Text Update - 134 - false - 7565d3e4:177c1ff26c3:-7997 - 325 - 238 - - - - false - false - - - - -1 - true - - - - 0 - 1 - 3 - - - - 0 - true - true - - Default - - false - - - - 20 - LED - - - - OFF - - - - ON - /cfs/vm/VM_HkTlm_t.NotInitialized - - - - true - true - true - - - false - false - $(pv_name) -$(pv_value) - true - LED - 20 - 7565d3e4:177c1ff26c3:-795f - 167 - 295 - - - - false - - - - - - - 0 - 1 - true - - Default Bold - - - - - 20 - 1 - Label_92 - - - true - true - false - - - Previous Modes - - true - 1 - true - Label - 133 - false - 7565d3e4:177c1ff26c3:-7957 - 350 - 457 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 2 - Label_93 - - - true - true - false - - - Pos Ctl - - true - 1 - true - Label - 57 - false - 7565d3e4:177c1ff26c3:-794d - 361 - 484 - - - - false - false - - - - -1 - true - - - - 0 - 1 - 3 - - - - 0 - true - true - - Default - - false - - - - 20 - LED_1 - - - - OFF - - - - ON - /cfs/vm/VM_HkTlm_t.PreviousModes.inPosCtl - - - - true - true - true - - - false - false - $(pv_name) -$(pv_value) - true - LED - 20 - 7565d3e4:177c1ff26c3:-7940 - 431 - 484 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 2 - Label_94 - - - true - true - false - - - RTL - - true - 1 - true - Label - 57 - false - 7565d3e4:177c1ff26c3:-7935 - 361 - 503 - - - - false - false - - - - -1 - true - - - - 0 - 1 - 3 - - - - 0 - true - true - - Default - - false - - - - 20 - LED_2 - - - - OFF - - - - ON - /cfs/vm/VM_HkTlm_t.PreviousModes.inRtl - - - - true - true - true - - - false - false - $(pv_name) -$(pv_value) - true - LED - 20 - 7565d3e4:177c1ff26c3:-7934 - 431 - 503 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 2 - Label_95 - - - true - true - false - - - Loiter - - true - 1 - true - Label - 57 - false - 7565d3e4:177c1ff26c3:-792d - 361 - 522 - - - - false - false - - - - -1 - true - - - - 0 - 1 - 3 - - - - 0 - true - true - - Default - - false - - - - 20 - LED_3 - - - - OFF - - - - ON - /cfs/vm/VM_HkTlm_t.PreviousModes.inLoiter - - - - true - true - true - - - false - false - $(pv_name) -$(pv_value) - true - LED - 20 - 7565d3e4:177c1ff26c3:-792c - 431 - 522 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 2 - Label_96 - - - true - true - false - - - Manual - - true - 1 - true - Label - 57 - false - 7565d3e4:177c1ff26c3:-7925 - 361 - 541 - - - - false - false - - - - -1 - true - - - - 0 - 1 - 3 - - - - 0 - true - true - - Default - - false - - - - 20 - LED_4 - - - - OFF - - - - ON - /cfs/vm/VM_HkTlm_t.PreviousModes.inManual - - - - true - true - true - - - false - false - $(pv_name) -$(pv_value) - true - LED - 20 - 7565d3e4:177c1ff26c3:-7924 - 431 - 541 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 2 - Label_97 - - - true - true - false - - - Takeoff - - true - 1 - true - Label - 57 - false - 7565d3e4:177c1ff26c3:-791d - 361 - 560 - - - - false - false - - - - -1 - true - - - - 0 - 1 - 3 - - - - 0 - true - true - - Default - - false - - - - 20 - LED_5 - - - - OFF - - - - ON - /cfs/vm/VM_HkTlm_t.PreviousModes.inTakeoff - - - - true - true - true - - - false - false - $(pv_name) -$(pv_value) - true - LED - 20 - 7565d3e4:177c1ff26c3:-791c - 431 - 560 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 2 - Label_98 - - - true - true - false - - - Alt Ctl - - true - 1 - true - Label - 57 - false - 7565d3e4:177c1ff26c3:-7915 - 361 - 579 - - - - false - false - - - - -1 - true - - - - 0 - 1 - 3 - - - - 0 - true - true - - Default - - false - - - - 20 - LED_6 - - - - OFF - - - - ON - /cfs/vm/VM_HkTlm_t.PreviousModes.inAltCtl - - - - true - true - true - - - false - false - $(pv_name) -$(pv_value) - true - LED - 20 - 7565d3e4:177c1ff26c3:-7914 - 431 - 579 - - - - false - false - - - - -1 - true - - - - 0 - 1 - 3 - - - - 0 - true - true - - Default - - false - - - - 20 - LED_7 - - - - OFF - - - - ON - /cfs/vm/VM_HkTlm_t.LocalPositionIsValid - - - - true - true - true - - - false - false - $(pv_name) -$(pv_value) - true - LED - 20 - 7565d3e4:177c1ff26c3:-78fd - 167 - 314 - - - - false - false - - - - -1 - true - - - - 0 - 1 - 3 - - - - 0 - true - true - - Default - - false - - - - 20 - LED_8 - - - - OFF - - - - ON - /cfs/vm/VM_HkTlm_t.PrevLanded - - - - true - true - true - - - false - false - $(pv_name) -$(pv_value) - true - LED - 20 - 7565d3e4:177c1ff26c3:-78f3 - 167 - 333 - - - - false - false - - - - -1 - true - - - - 0 - 1 - 3 - - - - 0 - true - true - - Default - - false - - - - 20 - LED_9 - - - - OFF - - - - ON - /cfs/vm/VM_HkTlm_t.PrevInFlight - - - - true - true - true - - - false - false - $(pv_name) -$(pv_value) - true - LED - 20 - 7565d3e4:177c1ff26c3:-78ee - 167 - 352 - - - - false - false - - - - -1 - true - - - - 0 - 1 - 3 - - - - 0 - true - true - - Default - - false - - - - 20 - LED_10 - - - - OFF - - - - ON - /cfs/vm/VM_HkTlm_t.LowBatteryVoltageActionsDone - - - - true - true - true - - - false - false - $(pv_name) -$(pv_value) - true - LED - 20 - 7565d3e4:177c1ff26c3:-78e9 - 167 - 371 - - - - false - false - - - - -1 - true - - - - 0 - 1 - 3 - - - - 0 - true - true - - Default - - false - - - - 20 - LED_11 - - - - OFF - - - - ON - /cfs/vm/VM_HkTlm_t.EmergencyBatteryVoltageActionsDone - - - - true - true - true - - - false - false - $(pv_name) -$(pv_value) - true - LED - 20 - 7565d3e4:177c1ff26c3:-78e4 - 167 - 390 - - - - false - false - - - - -1 - true - - - - 0 - 1 - 3 - - - - 0 - true - true - - Default - - false - - - - 20 - LED_12 - - - - OFF - - - - ON - /cfs/vm/VM_HkTlm_t.CriticalBatteryVoltageActionsDone - - - - true - true - true - - - false - false - $(pv_name) -$(pv_value) - true - LED - 20 - 7565d3e4:177c1ff26c3:-78df - 167 - 409 - - - - false - false - - - - -1 - true - - - - 0 - 1 - 3 - - - - 0 - true - true - - Default - - false - - - - 20 - LED_13 - - - - OFF - - - - ON - /cfs/vm/VM_HkTlm_t.ArmingStateChanged - - - - true - true - true - - - false - false - $(pv_name) -$(pv_value) - true - LED - 20 - 7565d3e4:177c1ff26c3:-78da - 167 - 428 - - - - false - - - - - - - 0 - 1 - true - - Default Bold - - - - - 20 - 1 - Label_99 - - - true - true - false - - - Status - - true - 1 - true - Label - 133 - false - 7565d3e4:177c1ff26c3:-7480 - 528 - 457 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 2 - Label_100 - - - true - true - false - - - Sensors Initialized - - true - 1 - true - Label - 121 - false - 7565d3e4:177c1ff26c3:-746f - 522 - 484 - - - - false - false - - - - -1 - true - - - - 0 - 1 - 3 - - - - 0 - true - true - - Default - - false - - - - 20 - LED_14 - - - - OFF - - - - ON - /cfs/vm/VM_HkTlm_t.StatusFlags.SensorsInitialized - - - - true - true - true - - - false - false - $(pv_name) -$(pv_value) - true - LED - 20 - 7565d3e4:177c1ff26c3:-746e - 654 - 484 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 2 - Label_101 - - - true - true - false - - - RTL Set - - true - 1 - true - Label - 121 - false - 7565d3e4:177c1ff26c3:-7460 - 522 - 503 - - - - false - false - - - - -1 - true - - - - 0 - 1 - 3 - - - - 0 - true - true - - Default - - false - - - - 20 - LED_15 - - - - OFF - - - - ON - /cfs/vm/VM_HkTlm_t.StatusFlags.ReturnToHomeSet - - - - true - true - true - - - false - false - $(pv_name) -$(pv_value) - true - LED - 20 - 7565d3e4:177c1ff26c3:-745f - 654 - 503 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 2 - Label_102 - - - true - true - false - - - Home Pos Valid - - true - 1 - true - Label - 121 - false - 7565d3e4:177c1ff26c3:-744e - 522 - 522 - - - - false - false - - - - -1 - true - - - - 0 - 1 - 3 - - - - 0 - true - true - - Default - - false - - - - 20 - LED_16 - - - - OFF - - - - ON - /cfs/vm/VM_HkTlm_t.StatusFlags.HomePositionValid - - - - true - true - true - - - false - false - $(pv_name) -$(pv_value) - true - LED - 20 - 7565d3e4:177c1ff26c3:-744d - 654 - 522 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 2 - Label_103 - - - true - true - false - - - USB Power - - true - 1 - true - Label - 121 - false - 7565d3e4:177c1ff26c3:-744c - 522 - 541 - - - - false - false - - - - -1 - true - - - - 0 - 1 - 3 - - - - 0 - true - true - - Default - - false - - - - 20 - LED_17 - - - - OFF - - - - ON - /cfs/vm/VM_HkTlm_t.StatusFlags.UsbPowerConnected - - - - true - true - true - - - false - false - $(pv_name) -$(pv_value) - true - LED - 20 - 7565d3e4:177c1ff26c3:-744b - 654 - 541 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 2 - Label_104 - - - true - true - false - - - RC Signal Found Once - - true - 1 - true - Label - 148 - false - 7565d3e4:177c1ff26c3:-742e - 495 - 560 - - - - false - false - - - - -1 - true - - - - 0 - 1 - 3 - - - - 0 - true - true - - Default - - false - - - - 20 - LED_18 - - - - OFF - - - - ON - /cfs/vm/VM_HkTlm_t.StatusFlags.RcSignalFoundOnce - - - - true - true - true - - - false - false - $(pv_name) -$(pv_value) - true - LED - 20 - 7565d3e4:177c1ff26c3:-742d - 654 - 560 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 2 - Label_105 - - - true - true - false - - - RC Signal Lost Mode - - true - 1 - true - Label - 148 - false - 7565d3e4:177c1ff26c3:-742c - 495 - 579 - - - - false - false - - - - -1 - true - - - - 0 - 1 - 3 - - - - 0 - true - true - - Default - - false - - - - 20 - LED_19 - - - - OFF - - - - ON - /cfs/vm/VM_HkTlm_t.StatusFlags.RcSignalLostModeIsCmded - - - - true - true - true - - - false - false - $(pv_name) -$(pv_value) - true - LED - 20 - 7565d3e4:177c1ff26c3:-742b - 654 - 579 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 2 - Label_106 - - - true - true - false - - - RC Input Blocked - - true - 1 - true - Label - 121 - false - 7565d3e4:177c1ff26c3:-742a - 522 - 598 - - - - false - false - - - - -1 - true - - - - 0 - 1 - 3 - - - - 0 - true - true - - Default - - false - - - - 20 - LED_20 - - - - OFF - - - - ON - /cfs/vm/VM_HkTlm_t.StatusFlags.RcInputIsTemporarilyBlocked - - - - true - true - true - - - false - false - $(pv_name) -$(pv_value) - true - LED - 20 - 7565d3e4:177c1ff26c3:-7429 - 654 - 598 - - - - false - false - false - - - - true - - - - 1 - 1 - true - - Default - - false - - - - 1 - 20 - 0 - Text Update_42 - 0 - false - /cfs/vm/VM_HkTlm_t.BootTimestamp.Subseconds - - 0.0 - - - true - true - false - - - true - ###### - $(pv_name) -$(pv_value) - false - 1 - true - Text Update - 100 - false - 7565d3e4:177c1ff26c3:-6532 - 167 - 154 - - - - false - false - false - - - - true - - - - 1 - 1 - true - - Default - - false - - - - 1 - 20 - 0 - Text Update_43 - 0 - false - /cfs/vm/VM_HkTlm_t.RCSignalLostTimestamp.Subseconds - - 0.0 - - - true - true - false - - - true - ###### - $(pv_name) -$(pv_value) - false - 1 - true - Text Update - 100 - false - 7565d3e4:177c1ff26c3:-63c8 - 167 - 249 + -69f8bd78:177f094d5fe:-1547 + 10 + 297 \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/VM/MessagesReceived.opi b/core/base/tools/commander/workspace_template/Displays/Apps/VM/MessagesReceived.opi new file mode 100644 index 000000000..9a8c9b907 --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/Apps/VM/MessagesReceived.opi @@ -0,0 +1,1918 @@ + + + + + false + -1 + -1 + + false + + + + 1.5.5.202103012118 + + + + 6 + 630 + + true + vm + /Displays/Core/EVS/Events.opi + Displays + + + + + true + true + true + true + true + Display + 750 + -33cb7c72:150aa4c347f:-76c2 + -1 + -1 + + + false + + + + + + + 0 + 1 + true + + Default Bold + + + + + 20 + 1 + Label_49 + + + true + true + false + + + VM - Messages Received + + true + 1 + true + Label + 260 + false + -33cb7c72:150aa4c347f:-75c9 + 14 + 10 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_50 + + + true + true + false + + + Sensor Mag + + true + 1 + true + Label + 103 + false + -10b748b0:17773fb054b:-7b8c + 60 + 36 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_2 + 0 + false + /cfs/vm/VM_HkTlm_t.SensorMagMsgCount + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + -10b748b0:17773fb054b:-7b82 + 174 + 36 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_51 + + + true + true + false + + + Sensor Gyro + + true + 1 + true + Label + 136 + false + -10b748b0:17773fb054b:-7b75 + 27 + 55 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_3 + 0 + false + /cfs/vm/VM_HkTlm_t.SensorGyroMsgCount + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + -10b748b0:17773fb054b:-7b74 + 174 + 55 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_52 + + + true + true + false + + + Battery Status + + true + 1 + true + Label + 136 + false + -10b748b0:17773fb054b:-7b54 + 27 + 74 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_4 + 0 + false + /cfs/vm/VM_HkTlm_t.BatteryStatusMsgCount + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + -10b748b0:17773fb054b:-7b53 + 174 + 74 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_53 + + + true + true + false + + + Telemetry Status + + true + 1 + true + Label + 136 + false + -10b748b0:17773fb054b:-7b42 + 27 + 93 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_5 + 0 + false + /cfs/vm/VM_HkTlm_t.TelemetryStatusMsgCount + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + -10b748b0:17773fb054b:-7b41 + 174 + 93 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_54 + + + true + true + false + + + Subsystem Info + + true + 1 + true + Label + 136 + false + -10b748b0:17773fb054b:-7b30 + 27 + 112 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_6 + 0 + false + /cfs/vm/VM_HkTlm_t.SubsystemInfoMsgCount + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + -10b748b0:17773fb054b:-7b2f + 174 + 112 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_56 + + + true + true + false + + + Vehicle Attitude + + true + 1 + true + Label + 136 + false + -10b748b0:17773fb054b:-7b0c + 27 + 131 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_8 + 0 + false + /cfs/vm/VM_HkTlm_t.VehicleAttitudeMsgCount + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + -10b748b0:17773fb054b:-7b0b + 174 + 131 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_60 + + + true + true + false + + + Vehicle Local Position + + true + 1 + true + Label + 146 + false + -10b748b0:17773fb054b:-7ac3 + 17 + 150 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_11 + 0 + false + /cfs/vm/VM_HkTlm_t.VehicleLocalPositionMsgCount + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + -10b748b0:17773fb054b:-7ac2 + 174 + 150 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_61 + + + true + true + false + + + Vehicle Land Detected + + true + 1 + true + Label + 146 + false + -10b748b0:17773fb054b:-7ab1 + 17 + 169 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_12 + 0 + false + /cfs/vm/VM_HkTlm_t.VehicleLandDetectedMsgCount + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + -10b748b0:17773fb054b:-7ab0 + 174 + 169 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_63 + + + true + true + false + + + Mission Result + + true + 1 + true + Label + 136 + false + 7565d3e4:177c1ff26c3:-7e45 + 27 + 188 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_13 + 0 + false + /cfs/vm/VM_HkTlm_t.MissionResultMsgCount + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + 7565d3e4:177c1ff26c3:-7e44 + 174 + 188 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_64 + + + true + true + false + + + Manual Control Setpoint + + true + 1 + true + Label + 158 + false + 7565d3e4:177c1ff26c3:-7e43 + 5 + 207 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_14 + 0 + false + /cfs/vm/VM_HkTlm_t.ManualControlSetpointMsgCount + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + 7565d3e4:177c1ff26c3:-7e42 + 174 + 207 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_65 + + + true + true + false + + + Position Setpoint Triplet + + true + 1 + true + Label + 152 + false + 7565d3e4:177c1ff26c3:-7e41 + 11 + 226 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_15 + 0 + false + /cfs/vm/VM_HkTlm_t.PositionSetpointTripletMsgCount + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + 7565d3e4:177c1ff26c3:-7e40 + 174 + 226 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_66 + + + true + true + false + + + Sensor Accel + + true + 1 + true + Label + 136 + false + 7565d3e4:177c1ff26c3:-7e3f + 27 + 245 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_16 + 0 + false + /cfs/vm/VM_HkTlm_t.SensorAccelMsgCount + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + 7565d3e4:177c1ff26c3:-7e3e + 174 + 245 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_67 + + + true + true + false + + + Safety + + true + 1 + true + Label + 136 + false + 7565d3e4:177c1ff26c3:-7e3d + 27 + 264 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_17 + 0 + false + /cfs/vm/VM_HkTlm_t.SafetyMsgCount + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + 7565d3e4:177c1ff26c3:-7e3c + 174 + 264 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_68 + + + true + true + false + + + Sensor Correction + + true + 1 + true + Label + 146 + false + 7565d3e4:177c1ff26c3:-7e3b + 17 + 283 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_18 + 0 + false + /cfs/vm/VM_HkTlm_t.SensorCorrectionMsgCount + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + 7565d3e4:177c1ff26c3:-7e3a + 174 + 283 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_69 + + + true + true + false + + + Sensor Combined + + true + 1 + true + Label + 146 + false + 7565d3e4:177c1ff26c3:-7e39 + 17 + 302 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_19 + 0 + false + /cfs/vm/VM_HkTlm_t.SensorCombinedMsgCount + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + 7565d3e4:177c1ff26c3:-7e38 + 174 + 302 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_70 + + + true + true + false + + + Vehicle Command + + true + 1 + true + Label + 136 + false + 7565d3e4:177c1ff26c3:-7d73 + 27 + 321 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_20 + 0 + false + /cfs/vm/VM_HkTlm_t.VehicleCommandMsgCount + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + 7565d3e4:177c1ff26c3:-7d72 + 174 + 321 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_71 + + + true + true + false + + + Vehicle Global Position + + true + 1 + true + Label + 152 + false + 7565d3e4:177c1ff26c3:-7d71 + 11 + 340 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_21 + 0 + false + /cfs/vm/VM_HkTlm_t.VehicleGlobalPositionMsgCount + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + 7565d3e4:177c1ff26c3:-7d70 + 174 + 340 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_72 + + + true + true + false + + + Vehicle GPS Position + + true + 1 + true + Label + 146 + false + 7565d3e4:177c1ff26c3:-7d6f + 17 + 359 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_22 + 0 + false + /cfs/vm/VM_HkTlm_t.VehicleGpsPositionMsgCount + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + 7565d3e4:177c1ff26c3:-7d6e + 174 + 359 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_73 + + + true + true + false + + + Vehicle Status + + true + 1 + true + Label + 136 + false + 7565d3e4:177c1ff26c3:-7d6d + 27 + 378 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_23 + 0 + false + /cfs/vm/VM_HkTlm_t.VehicleStatusMsgCount + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + 7565d3e4:177c1ff26c3:-7d6c + 174 + 378 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_74 + + + true + true + false + + + Vehicle Control Mode + + true + 1 + true + Label + 149 + false + 7565d3e4:177c1ff26c3:-7d6b + 14 + 397 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 0 + Text Update_24 + 0 + false + /cfs/vm/VM_HkTlm_t.VehicleControlModeMsgCount + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + 7565d3e4:177c1ff26c3:-7d6a + 174 + 397 + + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/VM/Moding.opi b/core/base/tools/commander/workspace_template/Displays/Apps/VM/Moding.opi new file mode 100644 index 000000000..38c409676 --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/Apps/VM/Moding.opi @@ -0,0 +1,1206 @@ + + + + + false + -1 + -1 + + false + + + + 1.5.5.202103012118 + + + + 6 + 630 + + true + vm + /Displays/Core/EVS/Events.opi + Displays + + + + + true + true + true + true + true + Display + 750 + -33cb7c72:150aa4c347f:-76c2 + -1 + -1 + + + + + + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 20 + ../../Resources/send.png + NoOp_8 + 0 + + + + + true + true + false + + + + Manual + false + $(pv_name) +$(pv_value) + true + Action Button + 134 + 7565d3e4:177c1ff26c3:-7f6b + 18 + 55 + + + + + + + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 20 + ../../Resources/send.png + NoOp_9 + 0 + + + + + true + true + false + + + + Loiter + false + $(pv_name) +$(pv_value) + true + Action Button + 134 + 7565d3e4:177c1ff26c3:-7f63 + 18 + 74 + + + + + + + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 20 + ../../Resources/send.png + NoOp_10 + 0 + + + + + true + true + false + + + + RTL + false + $(pv_name) +$(pv_value) + true + Action Button + 134 + 7565d3e4:177c1ff26c3:-7f5b + 18 + 93 + + + + + + + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 20 + ../../Resources/send.png + NoOp_11 + 0 + + + + + true + true + false + + + + Takeoff + false + $(pv_name) +$(pv_value) + true + Action Button + 134 + 7565d3e4:177c1ff26c3:-7f47 + 18 + 112 + + + + + + + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 20 + ../../Resources/send.png + NoOp_12 + 0 + + + + + true + true + false + + + + Land + false + $(pv_name) +$(pv_value) + true + Action Button + 134 + 7565d3e4:177c1ff26c3:-7f3d + 18 + 131 + + + + + + + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 20 + ../../Resources/send.png + NoOp_13 + 0 + + + + + true + true + false + + + + Acrobatic + false + $(pv_name) +$(pv_value) + true + Action Button + 134 + 7565d3e4:177c1ff26c3:-7f33 + 18 + 150 + + + + + + + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 20 + ../../Resources/send.png + NoOp_14 + 0 + + + + + true + true + false + + + + Rattitude + false + $(pv_name) +$(pv_value) + true + Action Button + 134 + 7565d3e4:177c1ff26c3:-7f29 + 18 + 167 + + + + + + + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 20 + ../../Resources/send.png + NoOp_15 + 0 + + + + + true + true + false + + + + Stabilized + false + $(pv_name) +$(pv_value) + true + Action Button + 134 + 7565d3e4:177c1ff26c3:-7f1f + 18 + 186 + + + + false + + + + + + + 0 + 1 + true + + Default Bold + + + + + 20 + 1 + Label_90 + + + true + true + false + + + VM - Moding + + true + 1 + true + Label + 104 + false + 7565d3e4:177c1ff26c3:-79c3 + 30 + 11 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 20 + 1 + Text Update_41 + 0 + false + /cfs/vm/VM_HkTlm_t.NavState + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 134 + false + 7565d3e4:177c1ff26c3:-7997 + 18 + 36 + + + + false + + + + + + + 0 + 1 + true + + Default Bold + + + + + 20 + 1 + Label_92 + + + true + true + false + + + Previous Modes + + true + 1 + true + Label + 133 + false + 7565d3e4:177c1ff26c3:-7957 + 18 + 226 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_93 + + + true + true + false + + + Pos Ctl + + true + 1 + true + Label + 57 + false + 7565d3e4:177c1ff26c3:-794d + 29 + 253 + + + + false + false + + + + -1 + true + + + + 0 + 1 + 3 + + + + 0 + true + true + + Default + + false + + + + 20 + LED_1 + + + + OFF + + + + ON + /cfs/vm/VM_HkTlm_t.PreviousModes.inPosCtl + + + + true + true + true + + + false + false + $(pv_name) +$(pv_value) + true + LED + 20 + 7565d3e4:177c1ff26c3:-7940 + 99 + 253 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_94 + + + true + true + false + + + RTL + + true + 1 + true + Label + 57 + false + 7565d3e4:177c1ff26c3:-7935 + 29 + 272 + + + + false + false + + + + -1 + true + + + + 0 + 1 + 3 + + + + 0 + true + true + + Default + + false + + + + 20 + LED_2 + + + + OFF + + + + ON + /cfs/vm/VM_HkTlm_t.PreviousModes.inRtl + + + + true + true + true + + + false + false + $(pv_name) +$(pv_value) + true + LED + 20 + 7565d3e4:177c1ff26c3:-7934 + 99 + 272 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_95 + + + true + true + false + + + Loiter + + true + 1 + true + Label + 57 + false + 7565d3e4:177c1ff26c3:-792d + 29 + 291 + + + + false + false + + + + -1 + true + + + + 0 + 1 + 3 + + + + 0 + true + true + + Default + + false + + + + 20 + LED_3 + + + + OFF + + + + ON + /cfs/vm/VM_HkTlm_t.PreviousModes.inLoiter + + + + true + true + true + + + false + false + $(pv_name) +$(pv_value) + true + LED + 20 + 7565d3e4:177c1ff26c3:-792c + 99 + 291 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_96 + + + true + true + false + + + Manual + + true + 1 + true + Label + 57 + false + 7565d3e4:177c1ff26c3:-7925 + 29 + 310 + + + + false + false + + + + -1 + true + + + + 0 + 1 + 3 + + + + 0 + true + true + + Default + + false + + + + 20 + LED_4 + + + + OFF + + + + ON + /cfs/vm/VM_HkTlm_t.PreviousModes.inManual + + + + true + true + true + + + false + false + $(pv_name) +$(pv_value) + true + LED + 20 + 7565d3e4:177c1ff26c3:-7924 + 99 + 310 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_97 + + + true + true + false + + + Takeoff + + true + 1 + true + Label + 57 + false + 7565d3e4:177c1ff26c3:-791d + 29 + 329 + + + + false + false + + + + -1 + true + + + + 0 + 1 + 3 + + + + 0 + true + true + + Default + + false + + + + 20 + LED_5 + + + + OFF + + + + ON + /cfs/vm/VM_HkTlm_t.PreviousModes.inTakeoff + + + + true + true + true + + + false + false + $(pv_name) +$(pv_value) + true + LED + 20 + 7565d3e4:177c1ff26c3:-791c + 99 + 329 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_98 + + + true + true + false + + + Alt Ctl + + true + 1 + true + Label + 57 + false + 7565d3e4:177c1ff26c3:-7915 + 29 + 348 + + + + false + false + + + + -1 + true + + + + 0 + 1 + 3 + + + + 0 + true + true + + Default + + false + + + + 20 + LED_6 + + + + OFF + + + + ON + /cfs/vm/VM_HkTlm_t.PreviousModes.inAltCtl + + + + true + true + true + + + false + false + $(pv_name) +$(pv_value) + true + LED + 20 + 7565d3e4:177c1ff26c3:-7914 + 99 + 348 + + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/VM/State.opi b/core/base/tools/commander/workspace_template/Displays/Apps/VM/State.opi new file mode 100644 index 000000000..29ee13312 --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/Apps/VM/State.opi @@ -0,0 +1,1548 @@ + + + + + false + -1 + -1 + + false + + + + 1.5.5.202103012118 + + + + 6 + 630 + + true + vm + /Displays/Core/EVS/Events.opi + Displays + + + + + true + true + true + true + true + Display + 750 + -33cb7c72:150aa4c347f:-76c2 + -1 + -1 + + + false + + + + + + + 0 + 1 + true + + Default Bold + + + + + 20 + 1 + Label_49 + + + true + true + false + + + Vehicle Manager - State + + true + 1 + true + Label + 182 + false + -33cb7c72:150aa4c347f:-75c9 + 14 + 12 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_75 + + + true + true + false + + + Not Initialized + + true + 1 + true + Label + 141 + false + 7565d3e4:177c1ff26c3:-7d69 + 24 + 42 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_78 + + + true + true + false + + + Local Position Is Valid + + true + 1 + true + Label + 158 + false + 7565d3e4:177c1ff26c3:-7c4a + 7 + 61 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_79 + + + true + true + false + + + Prev Landed + + true + 1 + true + Label + 136 + false + 7565d3e4:177c1ff26c3:-7c48 + 29 + 80 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_80 + + + true + true + false + + + Prev In Flight + + true + 1 + true + Label + 136 + false + 7565d3e4:177c1ff26c3:-7c46 + 29 + 99 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_84 + + + true + true + false + + + Low Bat Action Done + + true + 1 + true + Label + 136 + false + 7565d3e4:177c1ff26c3:-7c3e + 29 + 118 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_85 + + + true + true + false + + + Crit Bat Action Done + + true + 1 + true + Label + 141 + false + 7565d3e4:177c1ff26c3:-7c3c + 24 + 156 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_86 + + + true + true + false + + + Emer Bat Action Done + + true + 1 + true + Label + 148 + false + 7565d3e4:177c1ff26c3:-7c3a + 17 + 137 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_88 + + + true + true + false + + + Arming State Changed + + true + 1 + true + Label + 158 + false + 7565d3e4:177c1ff26c3:-7c36 + 7 + 175 + + + + false + false + + + + -1 + true + + + + 0 + 1 + 3 + + + + 0 + true + true + + Default + + false + + + + 20 + LED + + + + OFF + + + + ON + /cfs/vm/VM_HkTlm_t.NotInitialized + + + + true + true + true + + + false + false + $(pv_name) +$(pv_value) + true + LED + 20 + 7565d3e4:177c1ff26c3:-795f + 174 + 42 + + + + false + false + + + + -1 + true + + + + 0 + 1 + 3 + + + + 0 + true + true + + Default + + false + + + + 20 + LED_7 + + + + OFF + + + + ON + /cfs/vm/VM_HkTlm_t.LocalPositionIsValid + + + + true + true + true + + + false + false + $(pv_name) +$(pv_value) + true + LED + 20 + 7565d3e4:177c1ff26c3:-78fd + 174 + 61 + + + + false + false + + + + -1 + true + + + + 0 + 1 + 3 + + + + 0 + true + true + + Default + + false + + + + 20 + LED_8 + + + + OFF + + + + ON + /cfs/vm/VM_HkTlm_t.PrevLanded + + + + true + true + true + + + false + false + $(pv_name) +$(pv_value) + true + LED + 20 + 7565d3e4:177c1ff26c3:-78f3 + 174 + 80 + + + + false + false + + + + -1 + true + + + + 0 + 1 + 3 + + + + 0 + true + true + + Default + + false + + + + 20 + LED_9 + + + + OFF + + + + ON + /cfs/vm/VM_HkTlm_t.PrevInFlight + + + + true + true + true + + + false + false + $(pv_name) +$(pv_value) + true + LED + 20 + 7565d3e4:177c1ff26c3:-78ee + 174 + 99 + + + + false + false + + + + -1 + true + + + + 0 + 1 + 3 + + + + 0 + true + true + + Default + + false + + + + 20 + LED_10 + + + + OFF + + + + ON + /cfs/vm/VM_HkTlm_t.LowBatteryVoltageActionsDone + + + + true + true + true + + + false + false + $(pv_name) +$(pv_value) + true + LED + 20 + 7565d3e4:177c1ff26c3:-78e9 + 174 + 118 + + + + false + false + + + + -1 + true + + + + 0 + 1 + 3 + + + + 0 + true + true + + Default + + false + + + + 20 + LED_11 + + + + OFF + + + + ON + /cfs/vm/VM_HkTlm_t.EmergencyBatteryVoltageActionsDone + + + + true + true + true + + + false + false + $(pv_name) +$(pv_value) + true + LED + 20 + 7565d3e4:177c1ff26c3:-78e4 + 174 + 137 + + + + false + false + + + + -1 + true + + + + 0 + 1 + 3 + + + + 0 + true + true + + Default + + false + + + + 20 + LED_12 + + + + OFF + + + + ON + /cfs/vm/VM_HkTlm_t.CriticalBatteryVoltageActionsDone + + + + true + true + true + + + false + false + $(pv_name) +$(pv_value) + true + LED + 20 + 7565d3e4:177c1ff26c3:-78df + 174 + 156 + + + + false + false + + + + -1 + true + + + + 0 + 1 + 3 + + + + 0 + true + true + + Default + + false + + + + 20 + LED_13 + + + + OFF + + + + ON + /cfs/vm/VM_HkTlm_t.ArmingStateChanged + + + + true + true + true + + + false + false + $(pv_name) +$(pv_value) + true + LED + 20 + 7565d3e4:177c1ff26c3:-78da + 174 + 175 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_100 + + + true + true + false + + + Sensors Initialized + + true + 1 + true + Label + 121 + false + 7565d3e4:177c1ff26c3:-746f + 44 + 194 + + + + false + false + + + + -1 + true + + + + 0 + 1 + 3 + + + + 0 + true + true + + Default + + false + + + + 20 + LED_14 + + + + OFF + + + + ON + /cfs/vm/VM_HkTlm_t.StatusFlags.SensorsInitialized + + + + true + true + true + + + false + false + $(pv_name) +$(pv_value) + true + LED + 20 + 7565d3e4:177c1ff26c3:-746e + 174 + 194 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_101 + + + true + true + false + + + RTL Set + + true + 1 + true + Label + 121 + false + 7565d3e4:177c1ff26c3:-7460 + 44 + 213 + + + + false + false + + + + -1 + true + + + + 0 + 1 + 3 + + + + 0 + true + true + + Default + + false + + + + 20 + LED_15 + + + + OFF + + + + ON + /cfs/vm/VM_HkTlm_t.StatusFlags.ReturnToHomeSet + + + + true + true + true + + + false + false + $(pv_name) +$(pv_value) + true + LED + 20 + 7565d3e4:177c1ff26c3:-745f + 174 + 213 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_102 + + + true + true + false + + + Home Pos Valid + + true + 1 + true + Label + 121 + false + 7565d3e4:177c1ff26c3:-744e + 44 + 232 + + + + false + false + + + + -1 + true + + + + 0 + 1 + 3 + + + + 0 + true + true + + Default + + false + + + + 20 + LED_16 + + + + OFF + + + + ON + /cfs/vm/VM_HkTlm_t.StatusFlags.HomePositionValid + + + + true + true + true + + + false + false + $(pv_name) +$(pv_value) + true + LED + 20 + 7565d3e4:177c1ff26c3:-744d + 174 + 232 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_103 + + + true + true + false + + + USB Power + + true + 1 + true + Label + 121 + false + 7565d3e4:177c1ff26c3:-744c + 44 + 251 + + + + false + false + + + + -1 + true + + + + 0 + 1 + 3 + + + + 0 + true + true + + Default + + false + + + + 20 + LED_17 + + + + OFF + + + + ON + /cfs/vm/VM_HkTlm_t.StatusFlags.UsbPowerConnected + + + + true + true + true + + + false + false + $(pv_name) +$(pv_value) + true + LED + 20 + 7565d3e4:177c1ff26c3:-744b + 174 + 251 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_104 + + + true + true + false + + + RC Signal Found Once + + true + 1 + true + Label + 148 + false + 7565d3e4:177c1ff26c3:-742e + 17 + 270 + + + + false + false + + + + -1 + true + + + + 0 + 1 + 3 + + + + 0 + true + true + + Default + + false + + + + 20 + LED_18 + + + + OFF + + + + ON + /cfs/vm/VM_HkTlm_t.StatusFlags.RcSignalFoundOnce + + + + true + true + true + + + false + false + $(pv_name) +$(pv_value) + true + LED + 20 + 7565d3e4:177c1ff26c3:-742d + 174 + 270 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_105 + + + true + true + false + + + RC Signal Lost Mode + + true + 1 + true + Label + 148 + false + 7565d3e4:177c1ff26c3:-742c + 17 + 289 + + + + false + false + + + + -1 + true + + + + 0 + 1 + 3 + + + + 0 + true + true + + Default + + false + + + + 20 + LED_19 + + + + OFF + + + + ON + /cfs/vm/VM_HkTlm_t.StatusFlags.RcSignalLostModeIsCmded + + + + true + true + true + + + false + false + $(pv_name) +$(pv_value) + true + LED + 20 + 7565d3e4:177c1ff26c3:-742b + 174 + 289 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_106 + + + true + true + false + + + RC Input Blocked + + true + 1 + true + Label + 121 + false + 7565d3e4:177c1ff26c3:-742a + 44 + 308 + + + + false + false + + + + -1 + true + + + + 0 + 1 + 3 + + + + 0 + true + true + + Default + + false + + + + 20 + LED_20 + + + + OFF + + + + ON + /cfs/vm/VM_HkTlm_t.StatusFlags.RcInputIsTemporarilyBlocked + + + + true + true + true + + + false + false + $(pv_name) +$(pv_value) + true + LED + 20 + 7565d3e4:177c1ff26c3:-7429 + 174 + 308 + + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Core/ES/ApplicationControl.opi b/core/base/tools/commander/workspace_template/Displays/Core/ES/ApplicationControl.opi index 31a09ceb8..273bbdc81 100644 --- a/core/base/tools/commander/workspace_template/Displays/Core/ES/ApplicationControl.opi +++ b/core/base/tools/commander/workspace_template/Displays/Core/ES/ApplicationControl.opi @@ -10,7 +10,7 @@ - 1.5.3 + 1.5.5.202103012118 @@ -21,7 +21,11 @@ CFE-ES - App Control - + + + =1 + + true true true diff --git a/core/base/tools/commander/workspace_template/Displays/Core/ES/Main.opi b/core/base/tools/commander/workspace_template/Displays/Core/ES/Main.opi index b977ae95c..db728e706 100644 --- a/core/base/tools/commander/workspace_template/Displays/Core/ES/Main.opi +++ b/core/base/tools/commander/workspace_template/Displays/Core/ES/Main.opi @@ -10,7 +10,7 @@ - 1.5.4.202102122300 + 1.5.5.202103012118 @@ -3551,7 +3551,7 @@ $(pv_value) - ApplicationControl.opi + WriteErrLog.opi true @@ -3578,9 +3578,9 @@ $(pv_value) - 27 + 21 - NoOp_22 + NoOp_26 0 @@ -3592,32 +3592,33 @@ $(pv_value) - Application Control + Dump false $(pv_name) $(pv_value) true Action Button - 172 - -5b3cf925:1773c9998f6:-7e2f - 502 - 369 + 66 + -5b3cf925:1773c9998f6:-7dfb + 307 + 467 - - Console.opi - - true - - 1 + + + + true false false - + false @@ -3631,11 +3632,11 @@ $(pv_value) false - + - 27 - - NoOp_23 + 21 + ../../Resources/send.png + NoOp_27 0 @@ -3647,32 +3648,33 @@ $(pv_value) - Console + Clear false $(pv_name) $(pv_value) true Action Button - 172 - -5b3cf925:1773c9998f6:-7e25 - 502 - 401 + 67 + -5b3cf925:1773c9998f6:-7df3 + 378 + 467 - - PerfCollection.opi - - true - - 1 + + + + true false false - + false @@ -3686,11 +3688,11 @@ $(pv_value) false - + - 27 - - NoOp_24 + 20 + ../../Resources/send.png + NoOp_17 0 @@ -3702,21 +3704,21 @@ $(pv_value) - Performance Collection + Reset false $(pv_name) $(pv_value) true Action Button - 172 - -5b3cf925:1773c9998f6:-7e1d - 502 - 435 + 80 + 296ade75:177554ff103:-7de7 + 645 + 246 - MemoryPoolViewer.opi + SetMaxPRCount.opi true @@ -3743,9 +3745,9 @@ $(pv_value) - 27 + 20 - NoOp_25 + NoOp_18 0 @@ -3757,21 +3759,21 @@ $(pv_value) - Memory Pool Viewer + Set Max false $(pv_name) $(pv_value) true Action Button - 172 - -5b3cf925:1773c9998f6:-7e13 - 502 - 470 + 80 + 296ade75:177554ff103:-7ddf + 645 + 265 - WriteErrLog.opi + DeleteCDS.opi true @@ -3798,9 +3800,9 @@ $(pv_value) - 21 + 25 - NoOp_26 + NoOp_33 0 @@ -3812,16 +3814,16 @@ $(pv_value) - Dump + Delete false $(pv_name) $(pv_value) true Action Button - 66 - -5b3cf925:1773c9998f6:-7dfb - 307 - 467 + 80 + 2285957:177658292c4:-7060 + 516 + 167 @@ -3830,7 +3832,7 @@ $(pv_value) +Yamcs.issueCommand('/cfs/cfe_es/SendHK', {});]]> true @@ -3854,9 +3856,9 @@ Yamcs.issueCommand('/cfs/cfe_es/ClearERLog', {});]]> - 21 + 20 ../../Resources/send.png - NoOp_27 + NoOp_34 0 @@ -3868,33 +3870,32 @@ Yamcs.issueCommand('/cfs/cfe_es/ClearERLog', {});]]> - Clear + SendHK false $(pv_name) $(pv_value) true Action Button - 67 - -5b3cf925:1773c9998f6:-7df3 - 378 - 467 + 86 + 2285957:177658292c4:-6d7f + 624 + 12 - - - - true + + ApplicationControl_Generic.opi + + true + + 1 false false - + false @@ -3908,11 +3909,11 @@ Yamcs.issueCommand('/cfs/cfe_es/ResetPRCount', {});]]> false - + - 20 - ../../Resources/send.png - NoOp_17 + 27 + + NoOp_22 0 @@ -3924,21 +3925,21 @@ Yamcs.issueCommand('/cfs/cfe_es/ResetPRCount', {});]]> - Reset + App Control (Generic) false $(pv_name) $(pv_value) true Action Button - 80 - 296ade75:177554ff103:-7de7 - 645 - 246 + 172 + -69f8bd78:177f094d5fe:-79af + 507 + 351 - SetMaxPRCount.opi + QueryAllApps.opi true @@ -3965,9 +3966,9 @@ $(pv_value) - 20 + 21 - NoOp_18 + NoOp_31 0 @@ -3979,21 +3980,21 @@ $(pv_value) - Set Max + Query All false $(pv_name) $(pv_value) true Action Button - 80 - 296ade75:177554ff103:-7ddf - 645 - 265 + 78 + -69f8bd78:177f094d5fe:-634f + 307 + 532 - QueryAllApps.opi + QueryAllTasks.opi true @@ -4022,7 +4023,7 @@ $(pv_value) 21 - NoOp_31 + NoOp_30 0 @@ -4041,14 +4042,75 @@ $(pv_value) true Action Button 78 - 2285957:177658292c4:-7459 + -69f8bd78:177f094d5fe:-6347 307 - 533 + 552 + + + + + + + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 27 + + AppControl + 0 + + + + + true + true + false + + + + App Control (CFE_ES) + false + $(pv_name) +$(pv_value) + true + Action Button + 172 + -69f8bd78:177f094d5fe:-fe5 + 507 + 377 - QueryAllTasks.opi + Console.opi true @@ -4075,9 +4137,9 @@ $(pv_value) - 21 + 27 - NoOp_30 + NoOp_23 0 @@ -4089,21 +4151,21 @@ $(pv_value) - Query All + Console false $(pv_name) $(pv_value) true Action Button - 78 - 2285957:177658292c4:-7451 - 307 - 552 + 172 + -69f8bd78:177f094d5fe:-fdb + 507 + 403 - DeleteCDS.opi + PerfCollection.opi true @@ -4130,9 +4192,9 @@ $(pv_value) - 25 + 27 - NoOp_33 + NoOp_24 0 @@ -4144,33 +4206,32 @@ $(pv_value) - Delete + Performance Collection false $(pv_name) $(pv_value) true Action Button - 80 - 2285957:177658292c4:-7060 - 516 - 167 + 172 + -69f8bd78:177f094d5fe:-fd3 + 507 + 429 - - - - true + + MemoryPoolViewer.opi + + true + + 1 false false - + false @@ -4184,11 +4245,11 @@ Yamcs.issueCommand('/cfs/cfe_es/SendHK', {});]]> false - + - 20 - ../../Resources/send.png - NoOp_34 + 27 + + NoOp_25 0 @@ -4200,16 +4261,16 @@ Yamcs.issueCommand('/cfs/cfe_es/SendHK', {});]]> - SendHK + Memory Pool Viewer false $(pv_name) $(pv_value) true Action Button - 86 - 2285957:177658292c4:-6d7f - 624 - 12 + 172 + -69f8bd78:177f094d5fe:-fcb + 507 + 455 @@ -4247,7 +4308,7 @@ ScriptUtil.openOPI(display.getWidget("Events"), opi_to_open_path, RunModeService - 20 + 27 Events 0 @@ -4261,15 +4322,15 @@ ScriptUtil.openOPI(display.getWidget("Events"), opi_to_open_path, RunModeService - Events + Event Filters false $(pv_name) $(pv_value) true Action Button - 127 - -19107c2b:177da1db5df:1ae0 - 673 - 54 + 172 + -69f8bd78:177f094d5fe:-fbb + 507 + 481 \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Core/ES/Resources/Scripts/AppControlInit.py b/core/base/tools/commander/workspace_template/Displays/Core/ES/Resources/Scripts/AppControlInit.py new file mode 100644 index 000000000..24d956db7 --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/Core/ES/Resources/Scripts/AppControlInit.py @@ -0,0 +1,76 @@ +""" +This script auto-generates event ids rows for each event id found in the YAML file. It essentially creates LinkingContainer[1] +widgets and uses EventRecord.opi to generates a container widget for each event in airliner confuration. + +[1]:https://docs.yamcs.org/yamcs-studio/ +""" +# import java packages +from org.csstudio.opibuilder.scriptUtil import PVUtil, ScriptUtil, FileUtil, WidgetUtil, DataUtil +from org.csstudio.opibuilder.scriptUtil import YAMLUtil +from org.eclipse.swt.graphics import RGB + +# import python packages +import logging + + +def is_opi_app_specific(): + """ + Determine if the OPI is opened in application specific or generic mode. + + :return bool: True if this opi is application specific. False otherwise. + """ + is_specific = True + + # getMacroValue returns a unicode object, NOT an str object. See "5.6.1. String Methods" of the python2.7.18 docs + # for details. + app_name = display.getMacroValue("APP") + project_name = display.getMacroValue("PROJECT_NAME") + yaml_path = display.getMacroValue("YAML_PATH") + + #if app_name is None or project_name is None or yaml_path is None: + # is_specific = False + + return is_specific + + +def get_module(in_module, yaml_data): + """ + Get the module data from yaml_data dict. Especially useful for when the modules are structured in + a hierarchical fashion like our config files. + + :param in_module(str): The name of the module to look for. + :param yaml_data(dcit): The dictionary that has the configruation data. + + :return dict: The dictionary with the data of module. + """ + module_data = None + for module in yaml_data['modules']: + # FIXME: More succinct way of doing this? + if 'modules' in yaml_data['modules'][module]: + module_data = get_module(in_module, yaml_data['modules'][module]) + if in_module == module: + module_data = yaml_data['modules'][in_module] + + return module_data + + +def main(): + logging.basicConfig() + logger = logging.getLogger('AppControl') + logger.warning("Step 1") + if is_opi_app_specific() is True: + logger.warning("Step 2") + app_name = display.getMacroValue("APP") + logger.warning(app_name) + project_name = display.getMacroValue("PROJECT_NAME") + logger.warning(project_name) + yaml_path_macro = display.getMacroValue("YAML_PATH") + logger.warning(yaml_path_macro) + #yaml_path = FileUtil.workspacePathToSysPath(yaml_path_macro) + + #yamnl_data = YAMLUtil.parseYAML(yaml_path) + #module_data = get_module(module, yamnl_data) + #events = None + #display.getWidget("app_name").setPropertyValue("text", module_data['long_name'] + " - App Control") + +main() diff --git a/core/base/tools/commander/workspace_template/Displays/Core/EVS/EventRecord.opi b/core/base/tools/commander/workspace_template/Displays/Core/EVS/EventRecord.opi index f43aa0742..b7f7cdafb 100644 --- a/core/base/tools/commander/workspace_template/Displays/Core/EVS/EventRecord.opi +++ b/core/base/tools/commander/workspace_template/Displays/Core/EVS/EventRecord.opi @@ -10,12 +10,12 @@ - 1.5.4.202102122300 + 1.5.5.202103012118 6 - 70 + 19 true @@ -28,7 +28,7 @@ true true Display - 1000 + 750 -19107c2b:177da1db5df:-492a -1 -1 @@ -50,7 +50,7 @@ - 68 + 19 false true @@ -68,7 +68,7 @@ false true Grouping Container - 1000 + 751 -19107c2b:177da1db5df:-48f7 0 0 @@ -90,8 +90,8 @@ - 20 - 2 + 19 + 0 EventId @@ -106,11 +106,11 @@ 1 true Label - 600 + 427 false -19107c2b:177da1db5df:-48f6 - 12 - 15 + 0 + 0 @@ -140,7 +140,7 @@ - 28 + 18 ../../Resources/send.png ResetFilter 0 @@ -154,16 +154,16 @@ - Reset Filter + Reset false $(pv_name) $(pv_value) true Action Button - 122 - -19107c2b:177da1db5df:-48f5 - 684 - 11 + 79 + -69f8bd78:177f094d5fe:-7935 + 438 + 1 @@ -194,7 +194,7 @@ $(pv_value) - 28 + 18 ../../Resources/send.png DeleteFilter 0 @@ -208,22 +208,130 @@ $(pv_value) - Delete Filter + Set false $(pv_name) $(pv_value) true Action Button - 150 - -19107c2b:177da1db5df:-48f4 - 840 - 11 + 79 + -69f8bd78:177f094d5fe:-792d + 516 + 1 + + + + + Scripts/Python/DeleteEventFilter.py + + false + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 18 + ../../Resources/send.png + DeleteFilter + 0 + + + + + true + true + false + + + + Add + false + $(pv_name) +$(pv_value) + true + Action Button + 79 + -69f8bd78:177f094d5fe:-7925 + 594 + 1 + + + + + Scripts/Python/DeleteEventFilter.py + + false + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 18 + ../../Resources/send.png + DeleteFilter + 0 + + + + + true + true + false + + + + Delete + false + $(pv_name) +$(pv_value) + true + Action Button + 79 + -69f8bd78:177f094d5fe:-791b + 672 + 1 true - 4 + 1 Grid Layout - 3 + 5 Grid Layout -19107c2b:177da1db5df:-48f3 diff --git a/core/base/tools/commander/workspace_template/Displays/Core/EVS/Events.opi b/core/base/tools/commander/workspace_template/Displays/Core/EVS/Events.opi index 2b46a227a..852e20c75 100644 --- a/core/base/tools/commander/workspace_template/Displays/Core/EVS/Events.opi +++ b/core/base/tools/commander/workspace_template/Displays/Core/EVS/Events.opi @@ -10,7 +10,7 @@ - 1.5.4.202102122300 + 1.5.5.202103012118 @@ -46,7 +46,7 @@ - 1 + 0 1 true false @@ -100,7 +100,7 @@ 1 true - Default + Default Bold @@ -121,10 +121,10 @@ 1 true Label - 199 + 751 false -193d70a0:177d50fd41f:-7f0e - 217 + 18 7 \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Core/EVS/Main.opi b/core/base/tools/commander/workspace_template/Displays/Core/EVS/Main.opi index f0d77c482..564404902 100644 --- a/core/base/tools/commander/workspace_template/Displays/Core/EVS/Main.opi +++ b/core/base/tools/commander/workspace_template/Displays/Core/EVS/Main.opi @@ -10,12 +10,12 @@ - 1.5.4.202102122300 + 1.5.5.202103012118 6 - 460 + 470 true cfe_evs @@ -2141,7 +2141,7 @@ ScriptUtil.openOPI(display.getWidget("Events"), opi_to_open_path, RunModeService - 20 + 26 Events 0 @@ -2155,15 +2155,76 @@ ScriptUtil.openOPI(display.getWidget("Events"), opi_to_open_path, RunModeService - Events + Event FIlters (CFE_EVS) false $(pv_name) $(pv_value) true Action Button - 127 + 187 -19107c2b:177da1db5df:1eb7 - 462 - 55 + 18 + 437 + + + + + + + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 26 + + AppControl + 0 + + + + + true + true + false + + + + App Control + false + $(pv_name) +$(pv_value) + true + Action Button + 187 + -69f8bd78:177f094d5fe:-248 + 18 + 462 \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Core/EVS/Scripts/Python/events_init.py b/core/base/tools/commander/workspace_template/Displays/Core/EVS/Scripts/Python/events_init.py index 7e62fab9e..83f195a46 100644 --- a/core/base/tools/commander/workspace_template/Displays/Core/EVS/Scripts/Python/events_init.py +++ b/core/base/tools/commander/workspace_template/Displays/Core/EVS/Scripts/Python/events_init.py @@ -65,6 +65,7 @@ def get_events_from_yaml(module, yaml_path, logger): yamnl_data = YAMLUtil.parseYAML(yaml_path) module_data = get_module(module, yamnl_data) events = None + display.getWidget("app_name").setPropertyValue("text", module_data['long_name'] + " - Event Filters") if module_data: if 'events' in module_data: @@ -92,21 +93,20 @@ def main(): project_name = display.getMacroValue("PROJECT_NAME") yaml_path = FileUtil.workspacePathToSysPath(display.getMacroValue("YAML_PATH")) - display.getWidget("app_name").setPropertyValue("text", app_name) events = get_events_from_yaml(app_name, yaml_path, logger) for event in events: - event_label = "{}:{}".format(event, events[event]['id']) + event_label = "{} ({}) ".format(event, events[event]['id']) new_event_record = WidgetUtil.createWidgetModel("org.csstudio.opibuilder.widgets.linkingContainer") # TODO: Use the enumeration values from Studio to avoid magical strings new_event_record.setPropertyValue("opi_file", display.getMacroValue("TEMPLATE_OPI")) - new_event_record.setPropertyValue("height", 55) - new_event_record.setPropertyValue("width", 685) + new_event_record.setPropertyValue("height", 20) + new_event_record.setPropertyValue("width", 680) new_event_record.setPropertyValue("background_color", RGB(255, 255, 255)) new_event_record.setPropertyValue("border_color", RGB(240, 240, 240)) - new_event_record.setPropertyValue("border_style", 1) + new_event_record.setPropertyValue("border_style", 0) new_event_record.setPropertyValue("name", event) display.getWidget("EventsTable").addChild(new_event_record) diff --git a/core/base/tools/commander/workspace_template/Displays/Core/SB/Main.opi b/core/base/tools/commander/workspace_template/Displays/Core/SB/Main.opi index 4833b4983..d792b6fda 100644 --- a/core/base/tools/commander/workspace_template/Displays/Core/SB/Main.opi +++ b/core/base/tools/commander/workspace_template/Displays/Core/SB/Main.opi @@ -10,12 +10,12 @@ - 1.5.4.202102122300 + 1.5.5.202103012118 6 - 350 + 360 true cfe_sb @@ -1921,7 +1921,7 @@ ScriptUtil.openOPI(display.getWidget("Events"), opi_to_open_path, RunModeService - 20 + 26 Events 0 @@ -1935,15 +1935,15 @@ ScriptUtil.openOPI(display.getWidget("Events"), opi_to_open_path, RunModeService - Events + Event Filters false $(pv_name) $(pv_value) true Action Button - 127 + 142 -19107c2b:177da1db5df:2196 - 462 - 55 + 294 + 268 \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Core/TBL/Main.opi b/core/base/tools/commander/workspace_template/Displays/Core/TBL/Main.opi index 1cd69a40e..3b23c9d5b 100644 --- a/core/base/tools/commander/workspace_template/Displays/Core/TBL/Main.opi +++ b/core/base/tools/commander/workspace_template/Displays/Core/TBL/Main.opi @@ -10,7 +10,7 @@ - 1.5.4.202102122300 + 1.5.5.202103012118 @@ -2598,7 +2598,7 @@ ScriptUtil.openOPI(display.getWidget("Events"), opi_to_open_path, RunModeService - 20 + 26 Events 0 @@ -2618,9 +2618,9 @@ ScriptUtil.openOPI(display.getWidget("Events"), opi_to_open_path, RunModeService $(pv_value) true Action Button - 127 + 129 -19107c2b:177da1db5df:2519 - 468 - 55 + 361 + 344 \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Core/TIME/Main.opi b/core/base/tools/commander/workspace_template/Displays/Core/TIME/Main.opi index 1936d1bb2..2bf9cfafa 100644 --- a/core/base/tools/commander/workspace_template/Displays/Core/TIME/Main.opi +++ b/core/base/tools/commander/workspace_template/Displays/Core/TIME/Main.opi @@ -10,7 +10,7 @@ - 1.5.4.202102122300 + 1.5.5.202103012118 @@ -2539,7 +2539,7 @@ ScriptUtil.openOPI(display.getWidget("Events"), opi_to_open_path, RunModeService - 20 + 25 Events 0 @@ -2553,15 +2553,15 @@ ScriptUtil.openOPI(display.getWidget("Events"), opi_to_open_path, RunModeService - Events + Event Filters false $(pv_name) $(pv_value) true Action Button - 127 + 129 -19107c2b:177da1db5df:2767 - 450 - 55 + 295 + 344 \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/10_widgets.opi b/core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/10_widgets.opi similarity index 100% rename from core/base/tools/commander/workspace_template/Displays/BOY Examples/10_widgets.opi rename to core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/10_widgets.opi diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/1_1_Start_Up.opi b/core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/1_1_Start_Up.opi similarity index 100% rename from core/base/tools/commander/workspace_template/Displays/BOY Examples/1_1_Start_Up.opi rename to core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/1_1_Start_Up.opi diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/1_2_WidgetExamples.opi b/core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/1_2_WidgetExamples.opi similarity index 100% rename from core/base/tools/commander/workspace_template/Displays/BOY Examples/1_2_WidgetExamples.opi rename to core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/1_2_WidgetExamples.opi diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/2_OPI_Editor_Perspective.opi b/core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/2_OPI_Editor_Perspective.opi similarity index 100% rename from core/base/tools/commander/workspace_template/Displays/BOY Examples/2_OPI_Editor_Perspective.opi rename to core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/2_OPI_Editor_Perspective.opi diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/3_Use_OPI_Editor.opi b/core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/3_Use_OPI_Editor.opi similarity index 100% rename from core/base/tools/commander/workspace_template/Displays/BOY Examples/3_Use_OPI_Editor.opi rename to core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/3_Use_OPI_Editor.opi diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/4_Actions_1.opi b/core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/4_Actions_1.opi similarity index 100% rename from core/base/tools/commander/workspace_template/Displays/BOY Examples/4_Actions_1.opi rename to core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/4_Actions_1.opi diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/4_Actions_2.opi b/core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/4_Actions_2.opi similarity index 100% rename from core/base/tools/commander/workspace_template/Displays/BOY Examples/4_Actions_2.opi rename to core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/4_Actions_2.opi diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/5_1_Rules.opi b/core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/5_1_Rules.opi similarity index 100% rename from core/base/tools/commander/workspace_template/Displays/BOY Examples/5_1_Rules.opi rename to core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/5_1_Rules.opi diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/5_2_Script.opi b/core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/5_2_Script.opi similarity index 100% rename from core/base/tools/commander/workspace_template/Displays/BOY Examples/5_2_Script.opi rename to core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/5_2_Script.opi diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/5_3_Rules_Script.opi b/core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/5_3_Rules_Script.opi similarity index 100% rename from core/base/tools/commander/workspace_template/Displays/BOY Examples/5_3_Rules_Script.opi rename to core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/5_3_Rules_Script.opi diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/5_4_Python_Script.opi b/core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/5_4_Python_Script.opi similarity index 100% rename from core/base/tools/commander/workspace_template/Displays/BOY Examples/5_4_Python_Script.opi rename to core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/5_4_Python_Script.opi diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/5_5_FileIOWithScript.opi b/core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/5_5_FileIOWithScript.opi similarity index 100% rename from core/base/tools/commander/workspace_template/Displays/BOY Examples/5_5_FileIOWithScript.opi rename to core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/5_5_FileIOWithScript.opi diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/5_6_UseThreadInScript.opi b/core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/5_6_UseThreadInScript.opi similarity index 100% rename from core/base/tools/commander/workspace_template/Displays/BOY Examples/5_6_UseThreadInScript.opi rename to core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/5_6_UseThreadInScript.opi diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/6_Macro.opi b/core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/6_Macro.opi similarity index 100% rename from core/base/tools/commander/workspace_template/Displays/BOY Examples/6_Macro.opi rename to core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/6_Macro.opi diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/7_Color_Font_Macro.opi b/core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/7_Color_Font_Macro.opi similarity index 100% rename from core/base/tools/commander/workspace_template/Displays/BOY Examples/7_Color_Font_Macro.opi rename to core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/7_Color_Font_Macro.opi diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/8_2_PVWidgets_Properties.opi b/core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/8_2_PVWidgets_Properties.opi similarity index 100% rename from core/base/tools/commander/workspace_template/Displays/BOY Examples/8_2_PVWidgets_Properties.opi rename to core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/8_2_PVWidgets_Properties.opi diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/8_Widget_Properties.opi b/core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/8_Widget_Properties.opi similarity index 100% rename from core/base/tools/commander/workspace_template/Displays/BOY Examples/8_Widget_Properties.opi rename to core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/8_Widget_Properties.opi diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/9_Border.opi b/core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/9_Border.opi similarity index 100% rename from core/base/tools/commander/workspace_template/Displays/BOY Examples/9_Border.opi rename to core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/9_Border.opi diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/ArraysOperation/ByteArrayToString.opi b/core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/Miscellaneous/ArraysOperation/ByteArrayToString.opi similarity index 100% rename from core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/ArraysOperation/ByteArrayToString.opi rename to core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/Miscellaneous/ArraysOperation/ByteArrayToString.opi diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/ArraysOperation/ConvertByteArrayToString.js b/core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/Miscellaneous/ArraysOperation/ConvertByteArrayToString.js similarity index 100% rename from core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/ArraysOperation/ConvertByteArrayToString.js rename to core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/Miscellaneous/ArraysOperation/ConvertByteArrayToString.js diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/ArraysOperation/CutFirstNPoints.js b/core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/Miscellaneous/ArraysOperation/CutFirstNPoints.js similarity index 100% rename from core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/ArraysOperation/CutFirstNPoints.js rename to core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/Miscellaneous/ArraysOperation/CutFirstNPoints.js diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/ArraysOperation/DisplayArrayElements.js b/core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/Miscellaneous/ArraysOperation/DisplayArrayElements.js similarity index 100% rename from core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/ArraysOperation/DisplayArrayElements.js rename to core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/Miscellaneous/ArraysOperation/DisplayArrayElements.js diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/ArraysOperation/DisplayArrayElements.opi b/core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/Miscellaneous/ArraysOperation/DisplayArrayElements.opi similarity index 100% rename from core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/ArraysOperation/DisplayArrayElements.opi rename to core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/Miscellaneous/ArraysOperation/DisplayArrayElements.opi diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/ArraysOperation/GenerateSimuArray.js b/core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/Miscellaneous/ArraysOperation/GenerateSimuArray.js similarity index 100% rename from core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/ArraysOperation/GenerateSimuArray.js rename to core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/Miscellaneous/ArraysOperation/GenerateSimuArray.js diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/ArraysOperation/PlotFirstNPointsExample.opi b/core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/Miscellaneous/ArraysOperation/PlotFirstNPointsExample.opi similarity index 100% rename from core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/ArraysOperation/PlotFirstNPointsExample.opi rename to core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/Miscellaneous/ArraysOperation/PlotFirstNPointsExample.opi diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/ArraysOperation/PlotSimuArray.opi b/core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/Miscellaneous/ArraysOperation/PlotSimuArray.opi similarity index 100% rename from core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/ArraysOperation/PlotSimuArray.opi rename to core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/Miscellaneous/ArraysOperation/PlotSimuArray.opi diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/CalculatorExample/Calculator.opi b/core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/Miscellaneous/CalculatorExample/Calculator.opi similarity index 100% rename from core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/CalculatorExample/Calculator.opi rename to core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/Miscellaneous/CalculatorExample/Calculator.opi diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/CalculatorExample/CalculatorModel.py b/core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/Miscellaneous/CalculatorExample/CalculatorModel.py similarity index 100% rename from core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/CalculatorExample/CalculatorModel.py rename to core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/Miscellaneous/CalculatorExample/CalculatorModel.py diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/CalculatorExample/EasyCalculator.opi b/core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/Miscellaneous/CalculatorExample/EasyCalculator.opi similarity index 100% rename from core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/CalculatorExample/EasyCalculator.opi rename to core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/Miscellaneous/CalculatorExample/EasyCalculator.opi diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/CalculatorExample/EasyCalculatorLogic.py b/core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/Miscellaneous/CalculatorExample/EasyCalculatorLogic.py similarity index 100% rename from core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/CalculatorExample/EasyCalculatorLogic.py rename to core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/Miscellaneous/CalculatorExample/EasyCalculatorLogic.py diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/CalculatorExample/init.py b/core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/Miscellaneous/CalculatorExample/init.py similarity index 100% rename from core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/CalculatorExample/init.py rename to core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/Miscellaneous/CalculatorExample/init.py diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/ConditionallySetPVValue/ConditinallySetPVValue.opi b/core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/Miscellaneous/ConditionallySetPVValue/ConditinallySetPVValue.opi similarity index 100% rename from core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/ConditionallySetPVValue/ConditinallySetPVValue.opi rename to core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/Miscellaneous/ConditionallySetPVValue/ConditinallySetPVValue.opi diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/DynamicLoadWidgets/LoadLinkingContainer.js b/core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/Miscellaneous/DynamicLoadWidgets/LoadLinkingContainer.js similarity index 100% rename from core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/DynamicLoadWidgets/LoadLinkingContainer.js rename to core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/Miscellaneous/DynamicLoadWidgets/LoadLinkingContainer.js diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/DynamicLoadWidgets/LoadWidgetsExample.opi b/core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/Miscellaneous/DynamicLoadWidgets/LoadWidgetsExample.opi similarity index 100% rename from core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/DynamicLoadWidgets/LoadWidgetsExample.opi rename to core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/Miscellaneous/DynamicLoadWidgets/LoadWidgetsExample.opi diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/DynamicLoadWidgets/SubPanel.opi b/core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/Miscellaneous/DynamicLoadWidgets/SubPanel.opi similarity index 100% rename from core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/DynamicLoadWidgets/SubPanel.opi rename to core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/Miscellaneous/DynamicLoadWidgets/SubPanel.opi diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/DynamicLoadWidgets/myConfigExample.xml b/core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/Miscellaneous/DynamicLoadWidgets/myConfigExample.xml similarity index 100% rename from core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/DynamicLoadWidgets/myConfigExample.xml rename to core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/Miscellaneous/DynamicLoadWidgets/myConfigExample.xml diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/DynamicLoadWidgets/myConfigExample2.xml b/core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/Miscellaneous/DynamicLoadWidgets/myConfigExample2.xml similarity index 100% rename from core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/DynamicLoadWidgets/myConfigExample2.xml rename to core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/Miscellaneous/DynamicLoadWidgets/myConfigExample2.xml diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/DynamicMacros/ChangeMacro.js b/core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/Miscellaneous/DynamicMacros/ChangeMacro.js similarity index 100% rename from core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/DynamicMacros/ChangeMacro.js rename to core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/Miscellaneous/DynamicMacros/ChangeMacro.js diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/DynamicMacros/DynamicMacros.opi b/core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/Miscellaneous/DynamicMacros/DynamicMacros.opi similarity index 100% rename from core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/DynamicMacros/DynamicMacros.opi rename to core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/Miscellaneous/DynamicMacros/DynamicMacros.opi diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/DynamicMacros/OpenOPI.js b/core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/Miscellaneous/DynamicMacros/OpenOPI.js similarity index 100% rename from core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/DynamicMacros/OpenOPI.js rename to core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/Miscellaneous/DynamicMacros/OpenOPI.js diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/DynamicMacros/embeddedOPI.opi b/core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/Miscellaneous/DynamicMacros/embeddedOPI.opi similarity index 100% rename from core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/DynamicMacros/embeddedOPI.opi rename to core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/Miscellaneous/DynamicMacros/embeddedOPI.opi diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/ExecuteShellScript/AbsoluteWSPathToSysProp.py b/core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/Miscellaneous/ExecuteShellScript/AbsoluteWSPathToSysProp.py similarity index 100% rename from core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/ExecuteShellScript/AbsoluteWSPathToSysProp.py rename to core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/Miscellaneous/ExecuteShellScript/AbsoluteWSPathToSysProp.py diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/ExecuteShellScript/ExecuteShellScript.opi b/core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/Miscellaneous/ExecuteShellScript/ExecuteShellScript.opi similarity index 100% rename from core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/ExecuteShellScript/ExecuteShellScript.opi rename to core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/Miscellaneous/ExecuteShellScript/ExecuteShellScript.opi diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/ExecuteShellScript/RelativePathToSysProp.py b/core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/Miscellaneous/ExecuteShellScript/RelativePathToSysProp.py similarity index 100% rename from core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/ExecuteShellScript/RelativePathToSysProp.py rename to core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/Miscellaneous/ExecuteShellScript/RelativePathToSysProp.py diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/ExecuteShellScript/Test.sh b/core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/Miscellaneous/ExecuteShellScript/Test.sh similarity index 100% rename from core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/ExecuteShellScript/Test.sh rename to core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/Miscellaneous/ExecuteShellScript/Test.sh diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/LoginDialogExample/LoginDialogExample.opi b/core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/Miscellaneous/LoginDialogExample/LoginDialogExample.opi similarity index 100% rename from core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/LoginDialogExample/LoginDialogExample.opi rename to core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/Miscellaneous/LoginDialogExample/LoginDialogExample.opi diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/LoginDialogExample/OPIDialog.opi b/core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/Miscellaneous/LoginDialogExample/OPIDialog.opi similarity index 100% rename from core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/LoginDialogExample/OPIDialog.opi rename to core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/Miscellaneous/LoginDialogExample/OPIDialog.opi diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/LoginDialogExample/OPILogin.py b/core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/Miscellaneous/LoginDialogExample/OPILogin.py similarity index 100% rename from core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/LoginDialogExample/OPILogin.py rename to core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/Miscellaneous/LoginDialogExample/OPILogin.py diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/LoginDialogExample/SWTLogin.py b/core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/Miscellaneous/LoginDialogExample/SWTLogin.py similarity index 100% rename from core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/LoginDialogExample/SWTLogin.py rename to core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/Miscellaneous/LoginDialogExample/SWTLogin.py diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/LoginDialogExample/SWTLoginDialog$py.class b/core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/Miscellaneous/LoginDialogExample/SWTLoginDialog$py.class similarity index 100% rename from core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/LoginDialogExample/SWTLoginDialog$py.class rename to core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/Miscellaneous/LoginDialogExample/SWTLoginDialog$py.class diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/LoginDialogExample/SWTLoginDialog.py b/core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/Miscellaneous/LoginDialogExample/SWTLoginDialog.py similarity index 100% rename from core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/LoginDialogExample/SWTLoginDialog.py rename to core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/Miscellaneous/LoginDialogExample/SWTLoginDialog.py diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/LoginDialogExample/SwingLogin.py b/core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/Miscellaneous/LoginDialogExample/SwingLogin.py similarity index 100% rename from core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/LoginDialogExample/SwingLogin.py rename to core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/Miscellaneous/LoginDialogExample/SwingLogin.py diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/LoginDialogExample/SwingLoginDialog$py.class b/core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/Miscellaneous/LoginDialogExample/SwingLoginDialog$py.class similarity index 100% rename from core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/LoginDialogExample/SwingLoginDialog$py.class rename to core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/Miscellaneous/LoginDialogExample/SwingLoginDialog$py.class diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/LoginDialogExample/SwingLoginDialog.py b/core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/Miscellaneous/LoginDialogExample/SwingLoginDialog.py similarity index 100% rename from core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/LoginDialogExample/SwingLoginDialog.py rename to core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/Miscellaneous/LoginDialogExample/SwingLoginDialog.py diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/NotifyOnOPIStartAndClose.opi b/core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/Miscellaneous/NotifyOnOPIStartAndClose.opi similarity index 100% rename from core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/NotifyOnOPIStartAndClose.opi rename to core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/Miscellaneous/NotifyOnOPIStartAndClose.opi diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/ScriptUtil/GUIUtilExample.opi b/core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/Miscellaneous/ScriptUtil/GUIUtilExample.opi similarity index 100% rename from core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/ScriptUtil/GUIUtilExample.opi rename to core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/Miscellaneous/ScriptUtil/GUIUtilExample.opi diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/ScriptUtil/createPVFromScript.opi b/core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/Miscellaneous/ScriptUtil/createPVFromScript.opi similarity index 100% rename from core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/ScriptUtil/createPVFromScript.opi rename to core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/Miscellaneous/ScriptUtil/createPVFromScript.opi diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/Timer.opi b/core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/Miscellaneous/Timer.opi similarity index 100% rename from core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/Timer.opi rename to core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/Miscellaneous/Timer.opi diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/WriteDynamicValueToPV/WriteDynamicValueToPV.opi b/core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/Miscellaneous/WriteDynamicValueToPV/WriteDynamicValueToPV.opi similarity index 100% rename from core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/WriteDynamicValueToPV/WriteDynamicValueToPV.opi rename to core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/Miscellaneous/WriteDynamicValueToPV/WriteDynamicValueToPV.opi diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/WriteDynamicValueToPV/delayedSetValueExample.js b/core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/Miscellaneous/WriteDynamicValueToPV/delayedSetValueExample.js similarity index 100% rename from core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/WriteDynamicValueToPV/delayedSetValueExample.js rename to core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/Miscellaneous/WriteDynamicValueToPV/delayedSetValueExample.js diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/WriteDynamicValueToPV/down.png b/core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/Miscellaneous/WriteDynamicValueToPV/down.png similarity index 100% rename from core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/WriteDynamicValueToPV/down.png rename to core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/Miscellaneous/WriteDynamicValueToPV/down.png diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/WriteDynamicValueToPV/off.png b/core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/Miscellaneous/WriteDynamicValueToPV/off.png similarity index 100% rename from core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/WriteDynamicValueToPV/off.png rename to core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/Miscellaneous/WriteDynamicValueToPV/off.png diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/WriteDynamicValueToPV/on.png b/core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/Miscellaneous/WriteDynamicValueToPV/on.png similarity index 100% rename from core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/WriteDynamicValueToPV/on.png rename to core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/Miscellaneous/WriteDynamicValueToPV/on.png diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/WriteDynamicValueToPV/up.png b/core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/Miscellaneous/WriteDynamicValueToPV/up.png similarity index 100% rename from core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/WriteDynamicValueToPV/up.png rename to core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/Miscellaneous/WriteDynamicValueToPV/up.png diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/XYGraph_Advanced/AddAxisExample.js b/core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/Miscellaneous/XYGraph_Advanced/AddAxisExample.js similarity index 100% rename from core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/XYGraph_Advanced/AddAxisExample.js rename to core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/Miscellaneous/XYGraph_Advanced/AddAxisExample.js diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/XYGraph_Advanced/Add_Axes_From_Script.opi b/core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/Miscellaneous/XYGraph_Advanced/Add_Axes_From_Script.opi similarity index 100% rename from core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/XYGraph_Advanced/Add_Axes_From_Script.opi rename to core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/Miscellaneous/XYGraph_Advanced/Add_Axes_From_Script.opi diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/XYGraph_Advanced/Pause_Resume_XYGrpah.opi b/core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/Miscellaneous/XYGraph_Advanced/Pause_Resume_XYGrpah.opi similarity index 100% rename from core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/XYGraph_Advanced/Pause_Resume_XYGrpah.opi rename to core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/Miscellaneous/XYGraph_Advanced/Pause_Resume_XYGrpah.opi diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/XYGraph_Advanced/SetMajorTickMarkStepHint.opi b/core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/Miscellaneous/XYGraph_Advanced/SetMajorTickMarkStepHint.opi similarity index 100% rename from core/base/tools/commander/workspace_template/Displays/BOY Examples/Miscellaneous/XYGraph_Advanced/SetMajorTickMarkStepHint.opi rename to core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/Miscellaneous/XYGraph_Advanced/SetMajorTickMarkStepHint.opi diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/color.def b/core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/color.def similarity index 100% rename from core/base/tools/commander/workspace_template/Displays/BOY Examples/color.def rename to core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/color.def diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/font.def b/core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/font.def similarity index 100% rename from core/base/tools/commander/workspace_template/Displays/BOY Examples/font.def rename to core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/font.def diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/main.opi b/core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/main.opi similarity index 100% rename from core/base/tools/commander/workspace_template/Displays/BOY Examples/main.opi rename to core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/main.opi diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/ArrangeSupportMenuItems.jpg b/core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/pictures/ArrangeSupportMenuItems.jpg similarity index 100% rename from core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/ArrangeSupportMenuItems.jpg rename to core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/pictures/ArrangeSupportMenuItems.jpg diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/Context menu.png b/core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/pictures/Context menu.png similarity index 100% rename from core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/Context menu.png rename to core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/pictures/Context menu.png diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/Disconnected.png b/core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/pictures/Disconnected.png similarity index 100% rename from core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/Disconnected.png rename to core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/pictures/Disconnected.png diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/JF Withdrawable Circuit Breaker Off.gif b/core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/pictures/JF Withdrawable Circuit Breaker Off.gif similarity index 100% rename from core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/JF Withdrawable Circuit Breaker Off.gif rename to core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/pictures/JF Withdrawable Circuit Breaker Off.gif diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/JF Withdrawable Circuit Breaker On.gif b/core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/pictures/JF Withdrawable Circuit Breaker On.gif similarity index 100% rename from core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/JF Withdrawable Circuit Breaker On.gif rename to core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/pictures/JF Withdrawable Circuit Breaker On.gif diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/NavigateHisotry.png b/core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/pictures/NavigateHisotry.png similarity index 100% rename from core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/NavigateHisotry.png rename to core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/pictures/NavigateHisotry.png diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/OPIBuilder.png b/core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/pictures/OPIBuilder.png similarity index 100% rename from core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/OPIBuilder.png rename to core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/pictures/OPIBuilder.png diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/OffButton.png b/core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/pictures/OffButton.png similarity index 100% rename from core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/OffButton.png rename to core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/pictures/OffButton.png diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/OnButton.png b/core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/pictures/OnButton.png similarity index 100% rename from core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/OnButton.png rename to core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/pictures/OnButton.png diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/Start_16.png b/core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/pictures/Start_16.png similarity index 100% rename from core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/Start_16.png rename to core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/pictures/Start_16.png diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/Stop_16.png b/core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/pictures/Stop_16.png similarity index 100% rename from core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/Stop_16.png rename to core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/pictures/Stop_16.png diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/SymbolLibrary/PNG/AT Single-Acting Diaphragm Actuator.png b/core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/pictures/SymbolLibrary/PNG/AT Single-Acting Diaphragm Actuator.png similarity index 100% rename from core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/SymbolLibrary/PNG/AT Single-Acting Diaphragm Actuator.png rename to core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/pictures/SymbolLibrary/PNG/AT Single-Acting Diaphragm Actuator.png diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/SymbolLibrary/PNG/Closing Push-Button Off.png b/core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/pictures/SymbolLibrary/PNG/Closing Push-Button Off.png similarity index 100% rename from core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/SymbolLibrary/PNG/Closing Push-Button Off.png rename to core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/pictures/SymbolLibrary/PNG/Closing Push-Button Off.png diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/SymbolLibrary/PNG/Closing Push-Button On.png b/core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/pictures/SymbolLibrary/PNG/Closing Push-Button On.png similarity index 100% rename from core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/SymbolLibrary/PNG/Closing Push-Button On.png rename to core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/pictures/SymbolLibrary/PNG/Closing Push-Button On.png diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/SymbolLibrary/PNG/JF Fuse Switch Off.png b/core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/pictures/SymbolLibrary/PNG/JF Fuse Switch Off.png similarity index 100% rename from core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/SymbolLibrary/PNG/JF Fuse Switch Off.png rename to core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/pictures/SymbolLibrary/PNG/JF Fuse Switch Off.png diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/SymbolLibrary/PNG/JF Fuse Switch On.png b/core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/pictures/SymbolLibrary/PNG/JF Fuse Switch On.png similarity index 100% rename from core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/SymbolLibrary/PNG/JF Fuse Switch On.png rename to core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/pictures/SymbolLibrary/PNG/JF Fuse Switch On.png diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/SymbolLibrary/PNG/PL General.png b/core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/pictures/SymbolLibrary/PNG/PL General.png similarity index 100% rename from core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/SymbolLibrary/PNG/PL General.png rename to core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/pictures/SymbolLibrary/PNG/PL General.png diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/SymbolLibrary/PNG/SM 4-Positions Switch 0.png b/core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/pictures/SymbolLibrary/PNG/SM 4-Positions Switch 0.png similarity index 100% rename from core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/SymbolLibrary/PNG/SM 4-Positions Switch 0.png rename to core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/pictures/SymbolLibrary/PNG/SM 4-Positions Switch 0.png diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/SymbolLibrary/PNG/SM 4-Positions Switch 1.png b/core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/pictures/SymbolLibrary/PNG/SM 4-Positions Switch 1.png similarity index 100% rename from core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/SymbolLibrary/PNG/SM 4-Positions Switch 1.png rename to core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/pictures/SymbolLibrary/PNG/SM 4-Positions Switch 1.png diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/SymbolLibrary/PNG/SM 4-Positions Switch 2.png b/core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/pictures/SymbolLibrary/PNG/SM 4-Positions Switch 2.png similarity index 100% rename from core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/SymbolLibrary/PNG/SM 4-Positions Switch 2.png rename to core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/pictures/SymbolLibrary/PNG/SM 4-Positions Switch 2.png diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/SymbolLibrary/PNG/SM 4-Positions Switch 3.png b/core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/pictures/SymbolLibrary/PNG/SM 4-Positions Switch 3.png similarity index 100% rename from core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/SymbolLibrary/PNG/SM 4-Positions Switch 3.png rename to core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/pictures/SymbolLibrary/PNG/SM 4-Positions Switch 3.png diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/SymbolLibrary/SVG/AT Single-Acting Diaphragm Actuator.svg b/core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/pictures/SymbolLibrary/SVG/AT Single-Acting Diaphragm Actuator.svg similarity index 100% rename from core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/SymbolLibrary/SVG/AT Single-Acting Diaphragm Actuator.svg rename to core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/pictures/SymbolLibrary/SVG/AT Single-Acting Diaphragm Actuator.svg diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/SymbolLibrary/SVG/Closing Push-Button Off.svg b/core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/pictures/SymbolLibrary/SVG/Closing Push-Button Off.svg similarity index 100% rename from core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/SymbolLibrary/SVG/Closing Push-Button Off.svg rename to core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/pictures/SymbolLibrary/SVG/Closing Push-Button Off.svg diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/SymbolLibrary/SVG/Closing Push-Button On.svg b/core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/pictures/SymbolLibrary/SVG/Closing Push-Button On.svg similarity index 100% rename from core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/SymbolLibrary/SVG/Closing Push-Button On.svg rename to core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/pictures/SymbolLibrary/SVG/Closing Push-Button On.svg diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/SymbolLibrary/SVG/JF Fuse Switch Off.svg b/core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/pictures/SymbolLibrary/SVG/JF Fuse Switch Off.svg similarity index 100% rename from core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/SymbolLibrary/SVG/JF Fuse Switch Off.svg rename to core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/pictures/SymbolLibrary/SVG/JF Fuse Switch Off.svg diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/SymbolLibrary/SVG/JF Fuse Switch On.svg b/core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/pictures/SymbolLibrary/SVG/JF Fuse Switch On.svg similarity index 100% rename from core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/SymbolLibrary/SVG/JF Fuse Switch On.svg rename to core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/pictures/SymbolLibrary/SVG/JF Fuse Switch On.svg diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/SymbolLibrary/SVG/JF Fuse.svg b/core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/pictures/SymbolLibrary/SVG/JF Fuse.svg similarity index 100% rename from core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/SymbolLibrary/SVG/JF Fuse.svg rename to core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/pictures/SymbolLibrary/SVG/JF Fuse.svg diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/SymbolLibrary/SVG/PL General.svg b/core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/pictures/SymbolLibrary/SVG/PL General.svg similarity index 100% rename from core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/SymbolLibrary/SVG/PL General.svg rename to core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/pictures/SymbolLibrary/SVG/PL General.svg diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/SymbolLibrary/SVG/SM 4-Positions Switch 0.svg b/core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/pictures/SymbolLibrary/SVG/SM 4-Positions Switch 0.svg similarity index 100% rename from core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/SymbolLibrary/SVG/SM 4-Positions Switch 0.svg rename to core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/pictures/SymbolLibrary/SVG/SM 4-Positions Switch 0.svg diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/SymbolLibrary/SVG/SM 4-Positions Switch 1.svg b/core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/pictures/SymbolLibrary/SVG/SM 4-Positions Switch 1.svg similarity index 100% rename from core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/SymbolLibrary/SVG/SM 4-Positions Switch 1.svg rename to core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/pictures/SymbolLibrary/SVG/SM 4-Positions Switch 1.svg diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/SymbolLibrary/SVG/SM 4-Positions Switch 2.svg b/core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/pictures/SymbolLibrary/SVG/SM 4-Positions Switch 2.svg similarity index 100% rename from core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/SymbolLibrary/SVG/SM 4-Positions Switch 2.svg rename to core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/pictures/SymbolLibrary/SVG/SM 4-Positions Switch 2.svg diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/SymbolLibrary/SVG/SM 4-Positions Switch 3.svg b/core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/pictures/SymbolLibrary/SVG/SM 4-Positions Switch 3.svg similarity index 100% rename from core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/SymbolLibrary/SVG/SM 4-Positions Switch 3.svg rename to core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/pictures/SymbolLibrary/SVG/SM 4-Positions Switch 3.svg diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/Timer.wav b/core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/pictures/Timer.wav similarity index 100% rename from core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/Timer.wav rename to core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/pictures/Timer.wav diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/Write_forbidden.png b/core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/pictures/Write_forbidden.png similarity index 100% rename from core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/Write_forbidden.png rename to core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/pictures/Write_forbidden.png diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/fish.gif b/core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/pictures/fish.gif similarity index 100% rename from core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/fish.gif rename to core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/pictures/fish.gif diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/home-16x16.png b/core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/pictures/home-16x16.png similarity index 100% rename from core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/home-16x16.png rename to core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/pictures/home-16x16.png diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/horses.gif b/core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/pictures/horses.gif similarity index 100% rename from core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/horses.gif rename to core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/pictures/horses.gif diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/houston.wav b/core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/pictures/houston.wav similarity index 100% rename from core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/houston.wav rename to core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/pictures/houston.wav diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/lightOff.png b/core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/pictures/lightOff.png similarity index 100% rename from core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/lightOff.png rename to core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/pictures/lightOff.png diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/lightOn.png b/core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/pictures/lightOn.png similarity index 100% rename from core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/lightOn.png rename to core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/pictures/lightOn.png diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/neutron.jpg b/core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/pictures/neutron.jpg similarity index 100% rename from core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/neutron.jpg rename to core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/pictures/neutron.jpg diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/onlineHelp.gif b/core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/pictures/onlineHelp.gif similarity index 100% rename from core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/onlineHelp.gif rename to core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/pictures/onlineHelp.gif diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/pump_off.gif b/core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/pictures/pump_off.gif similarity index 100% rename from core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/pump_off.gif rename to core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/pictures/pump_off.gif diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/pump_on.gif b/core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/pictures/pump_on.gif similarity index 100% rename from core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/pump_on.gif rename to core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/pictures/pump_on.gif diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/reset Perspective.png b/core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/pictures/reset Perspective.png similarity index 100% rename from core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/reset Perspective.png rename to core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/pictures/reset Perspective.png diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/reset.png b/core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/pictures/reset.png similarity index 100% rename from core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/reset.png rename to core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/pictures/reset.png diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/reset_switch_off.gif b/core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/pictures/reset_switch_off.gif similarity index 100% rename from core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/reset_switch_off.gif rename to core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/pictures/reset_switch_off.gif diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/reset_switch_on.gif b/core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/pictures/reset_switch_on.gif similarity index 100% rename from core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/reset_switch_on.gif rename to core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/pictures/reset_switch_on.gif diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/sns4t.gif b/core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/pictures/sns4t.gif similarity index 100% rename from core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/sns4t.gif rename to core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/pictures/sns4t.gif diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/snsBuilding.jpg b/core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/pictures/snsBuilding.jpg similarity index 100% rename from core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/snsBuilding.jpg rename to core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/pictures/snsBuilding.jpg diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/snscontrol.jpg b/core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/pictures/snscontrol.jpg similarity index 100% rename from core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/snscontrol.jpg rename to core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/pictures/snscontrol.jpg diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/switch_off.gif b/core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/pictures/switch_off.gif similarity index 100% rename from core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/switch_off.gif rename to core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/pictures/switch_off.gif diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/switch_on.gif b/core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/pictures/switch_on.gif similarity index 100% rename from core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/switch_on.gif rename to core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/pictures/switch_on.gif diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/toobar.png b/core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/pictures/toobar.png similarity index 100% rename from core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/toobar.png rename to core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/pictures/toobar.png diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/valve_off.gif b/core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/pictures/valve_off.gif similarity index 100% rename from core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/valve_off.gif rename to core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/pictures/valve_off.gif diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/valve_on.gif b/core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/pictures/valve_on.gif similarity index 100% rename from core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/valve_on.gif rename to core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/pictures/valve_on.gif diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/yangshuo-china.jpg b/core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/pictures/yangshuo-china.jpg similarity index 100% rename from core/base/tools/commander/workspace_template/Displays/BOY Examples/pictures/yangshuo-china.jpg rename to core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/pictures/yangshuo-china.jpg diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/AddAxisExample.js b/core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/scripts/AddAxisExample.js similarity index 100% rename from core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/AddAxisExample.js rename to core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/scripts/AddAxisExample.js diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/AutoNavigation.js b/core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/scripts/AutoNavigation.js similarity index 100% rename from core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/AutoNavigation.js rename to core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/scripts/AutoNavigation.js diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/ChangePosAndSize.py b/core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/scripts/ChangePosAndSize.py similarity index 100% rename from core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/ChangePosAndSize.py rename to core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/scripts/ChangePosAndSize.py diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/ChangePosAndSize_m.py b/core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/scripts/ChangePosAndSize_m.py similarity index 100% rename from core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/ChangePosAndSize_m.py rename to core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/scripts/ChangePosAndSize_m.py diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/ChangePositionAndSize.js b/core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/scripts/ChangePositionAndSize.js similarity index 100% rename from core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/ChangePositionAndSize.js rename to core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/scripts/ChangePositionAndSize.js diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/ChangePositionAndSize_m.js b/core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/scripts/ChangePositionAndSize_m.js similarity index 100% rename from core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/ChangePositionAndSize_m.js rename to core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/scripts/ChangePositionAndSize_m.js diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/ChangeTraceColor.js b/core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/scripts/ChangeTraceColor.js similarity index 100% rename from core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/ChangeTraceColor.js rename to core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/scripts/ChangeTraceColor.js diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/ClearGraph.js b/core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/scripts/ClearGraph.js similarity index 100% rename from core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/ClearGraph.js rename to core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/scripts/ClearGraph.js diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/Dialog_push.js b/core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/scripts/Dialog_push.js similarity index 100% rename from core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/Dialog_push.js rename to core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/scripts/Dialog_push.js diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/Dialog_release.js b/core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/scripts/Dialog_release.js similarity index 100% rename from core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/Dialog_release.js rename to core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/scripts/Dialog_release.js diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/DisplayPVValuesInTable.py b/core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/scripts/DisplayPVValuesInTable.py similarity index 100% rename from core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/DisplayPVValuesInTable.py rename to core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/scripts/DisplayPVValuesInTable.py diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/DynamicLoadImage.js b/core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/scripts/DynamicLoadImage.js similarity index 100% rename from core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/DynamicLoadImage.js rename to core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/scripts/DynamicLoadImage.js diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/DynamicSymbol.js b/core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/scripts/DynamicSymbol.js similarity index 100% rename from core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/DynamicSymbol.js rename to core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/scripts/DynamicSymbol.js diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/ExecuteAction.js b/core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/scripts/ExecuteAction.js similarity index 100% rename from core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/ExecuteAction.js rename to core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/scripts/ExecuteAction.js diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/ExecuteScriptFromAction.js b/core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/scripts/ExecuteScriptFromAction.js similarity index 100% rename from core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/ExecuteScriptFromAction.js rename to core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/scripts/ExecuteScriptFromAction.js diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/ExecuteScriptFromAction.py b/core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/scripts/ExecuteScriptFromAction.py similarity index 100% rename from core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/ExecuteScriptFromAction.py rename to core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/scripts/ExecuteScriptFromAction.py diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/KnobValueDialog.js b/core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/scripts/KnobValueDialog.js similarity index 100% rename from core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/KnobValueDialog.js rename to core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/scripts/KnobValueDialog.js diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/KnobValueDialog.py b/core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/scripts/KnobValueDialog.py similarity index 100% rename from core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/KnobValueDialog.py rename to core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/scripts/KnobValueDialog.py diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/MoveImage.js b/core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/scripts/MoveImage.js similarity index 100% rename from core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/MoveImage.js rename to core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/scripts/MoveImage.js diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/ReadFileExample.js b/core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/scripts/ReadFileExample.js similarity index 100% rename from core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/ReadFileExample.js rename to core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/scripts/ReadFileExample.js diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/SWTDialog.js b/core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/scripts/SWTDialog.js similarity index 100% rename from core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/SWTDialog.js rename to core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/scripts/SWTDialog.js diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/SelectColorMap.js b/core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/scripts/SelectColorMap.js similarity index 100% rename from core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/SelectColorMap.js rename to core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/scripts/SelectColorMap.js diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/SetIntensityGraphData.js b/core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/scripts/SetIntensityGraphData.js similarity index 100% rename from core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/SetIntensityGraphData.js rename to core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/scripts/SetIntensityGraphData.js diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/SetIntensityGraphData.py b/core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/scripts/SetIntensityGraphData.py similarity index 100% rename from core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/SetIntensityGraphData.py rename to core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/scripts/SetIntensityGraphData.py diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/SimpleDialog.js b/core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/scripts/SimpleDialog.js similarity index 100% rename from core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/SimpleDialog.js rename to core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/scripts/SimpleDialog.js diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/TableContentMonitor.py b/core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/scripts/TableContentMonitor.py similarity index 100% rename from core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/TableContentMonitor.py rename to core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/scripts/TableContentMonitor.py diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/TableSelectionMonitor.py b/core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/scripts/TableSelectionMonitor.py similarity index 100% rename from core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/TableSelectionMonitor.py rename to core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/scripts/TableSelectionMonitor.py diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/ThreadExample.js b/core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/scripts/ThreadExample.js similarity index 100% rename from core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/ThreadExample.js rename to core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/scripts/ThreadExample.js diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/ThreadExample.py b/core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/scripts/ThreadExample.py similarity index 100% rename from core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/ThreadExample.py rename to core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/scripts/ThreadExample.py diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/Timer.py b/core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/scripts/Timer.py similarity index 100% rename from core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/Timer.py rename to core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/scripts/Timer.py diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/WidgetUtil.py b/core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/scripts/WidgetUtil.py similarity index 100% rename from core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/WidgetUtil.py rename to core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/scripts/WidgetUtil.py diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/WriteFileExample.js b/core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/scripts/WriteFileExample.js similarity index 100% rename from core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/WriteFileExample.js rename to core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/scripts/WriteFileExample.js diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/addAnnotations.py b/core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/scripts/addAnnotations.py similarity index 100% rename from core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/addAnnotations.py rename to core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/scripts/addAnnotations.py diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/addPixelInfoListener.py b/core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/scripts/addPixelInfoListener.py similarity index 100% rename from core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/addPixelInfoListener.py rename to core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/scripts/addPixelInfoListener.py diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/addROI.py b/core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/scripts/addROI.py similarity index 100% rename from core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/addROI.py rename to core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/scripts/addROI.py diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/goHome.js b/core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/scripts/goHome.js similarity index 100% rename from core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/goHome.js rename to core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/scripts/goHome.js diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/myFile.txt b/core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/scripts/myFile.txt similarity index 100% rename from core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/myFile.txt rename to core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/scripts/myFile.txt diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/openHelp.js b/core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/scripts/openHelp.js similarity index 100% rename from core/base/tools/commander/workspace_template/Displays/BOY Examples/scripts/openHelp.js rename to core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/scripts/openHelp.js diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/1_1_Rectangle_Ellipse.opi b/core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/widgets/1_1_Rectangle_Ellipse.opi similarity index 100% rename from core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/1_1_Rectangle_Ellipse.opi rename to core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/widgets/1_1_Rectangle_Ellipse.opi diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/1_2_Image.opi b/core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/widgets/1_2_Image.opi similarity index 100% rename from core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/1_2_Image.opi rename to core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/widgets/1_2_Image.opi diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/1_3_Label.opi b/core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/widgets/1_3_Label.opi similarity index 100% rename from core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/1_3_Label.opi rename to core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/widgets/1_3_Label.opi diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/1_4_Arc.opi b/core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/widgets/1_4_Arc.opi similarity index 100% rename from core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/1_4_Arc.opi rename to core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/widgets/1_4_Arc.opi diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/1_5_Polyline_Polygon.opi b/core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/widgets/1_5_Polyline_Polygon.opi similarity index 100% rename from core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/1_5_Polyline_Polygon.opi rename to core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/widgets/1_5_Polyline_Polygon.opi diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/1_6_Connection.opi b/core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/widgets/1_6_Connection.opi similarity index 100% rename from core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/1_6_Connection.opi rename to core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/widgets/1_6_Connection.opi diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/2_1_LED.opi b/core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/widgets/2_1_LED.opi similarity index 100% rename from core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/2_1_LED.opi rename to core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/widgets/2_1_LED.opi diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/2_2_Text_Update.opi b/core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/widgets/2_2_Text_Update.opi similarity index 100% rename from core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/2_2_Text_Update.opi rename to core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/widgets/2_2_Text_Update.opi diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/2_3_Gauge_Meter.opi b/core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/widgets/2_3_Gauge_Meter.opi similarity index 100% rename from core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/2_3_Gauge_Meter.opi rename to core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/widgets/2_3_Gauge_Meter.opi diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/2_4_Tank_Thermo.opi b/core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/widgets/2_4_Tank_Thermo.opi similarity index 100% rename from core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/2_4_Tank_Thermo.opi rename to core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/widgets/2_4_Tank_Thermo.opi diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/2_5_1_XY_Graph.opi b/core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/widgets/2_5_1_XY_Graph.opi similarity index 100% rename from core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/2_5_1_XY_Graph.opi rename to core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/widgets/2_5_1_XY_Graph.opi diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/2_5_2_XY_Graph.opi b/core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/widgets/2_5_2_XY_Graph.opi similarity index 100% rename from core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/2_5_2_XY_Graph.opi rename to core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/widgets/2_5_2_XY_Graph.opi diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/2_5_3_XY_Graph.opi b/core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/widgets/2_5_3_XY_Graph.opi similarity index 100% rename from core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/2_5_3_XY_Graph.opi rename to core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/widgets/2_5_3_XY_Graph.opi diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/2_5_4_XY_Graph.opi b/core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/widgets/2_5_4_XY_Graph.opi similarity index 100% rename from core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/2_5_4_XY_Graph.opi rename to core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/widgets/2_5_4_XY_Graph.opi diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/2_6_1_IntensityGraph.opi b/core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/widgets/2_6_1_IntensityGraph.opi similarity index 100% rename from core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/2_6_1_IntensityGraph.opi rename to core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/widgets/2_6_1_IntensityGraph.opi diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/2_6_2_IntensityGraph_Javascript.opi b/core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/widgets/2_6_2_IntensityGraph_Javascript.opi similarity index 100% rename from core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/2_6_2_IntensityGraph_Javascript.opi rename to core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/widgets/2_6_2_IntensityGraph_Javascript.opi diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/2_6_3_IntensityGraph_Python.opi b/core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/widgets/2_6_3_IntensityGraph_Python.opi similarity index 100% rename from core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/2_6_3_IntensityGraph_Python.opi rename to core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/widgets/2_6_3_IntensityGraph_Python.opi diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/3_1_Action_Button.opi b/core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/widgets/3_1_Action_Button.opi similarity index 100% rename from core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/3_1_Action_Button.opi rename to core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/widgets/3_1_Action_Button.opi diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/3_2_1_BoolButton_Switch.opi b/core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/widgets/3_2_1_BoolButton_Switch.opi similarity index 100% rename from core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/3_2_1_BoolButton_Switch.opi rename to core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/widgets/3_2_1_BoolButton_Switch.opi diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/3_3_Menu_Button.opi b/core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/widgets/3_3_Menu_Button.opi similarity index 100% rename from core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/3_3_Menu_Button.opi rename to core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/widgets/3_3_Menu_Button.opi diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/3_4_1_Text_Input.opi b/core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/widgets/3_4_1_Text_Input.opi similarity index 100% rename from core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/3_4_1_Text_Input.opi rename to core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/widgets/3_4_1_Text_Input.opi diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/3_4_2_NativeTextInput.opi b/core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/widgets/3_4_2_NativeTextInput.opi similarity index 100% rename from core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/3_4_2_NativeTextInput.opi rename to core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/widgets/3_4_2_NativeTextInput.opi diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/3_5_Knob_Slider.opi b/core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/widgets/3_5_Knob_Slider.opi similarity index 100% rename from core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/3_5_Knob_Slider.opi rename to core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/widgets/3_5_Knob_Slider.opi diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/3_6_ChoiceWidgets.opi b/core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/widgets/3_6_ChoiceWidgets.opi similarity index 100% rename from core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/3_6_ChoiceWidgets.opi rename to core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/widgets/3_6_ChoiceWidgets.opi diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/4_1_GroupingContainer.opi b/core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/widgets/4_1_GroupingContainer.opi similarity index 100% rename from core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/4_1_GroupingContainer.opi rename to core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/widgets/4_1_GroupingContainer.opi diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/4_2_2_LinkingContainer.opi b/core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/widgets/4_2_2_LinkingContainer.opi similarity index 100% rename from core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/4_2_2_LinkingContainer.opi rename to core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/widgets/4_2_2_LinkingContainer.opi diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/4_2_LinkingContainer.opi b/core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/widgets/4_2_LinkingContainer.opi similarity index 100% rename from core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/4_2_LinkingContainer.opi rename to core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/widgets/4_2_LinkingContainer.opi diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/4_3_TabbedContainer.opi b/core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/widgets/4_3_TabbedContainer.opi similarity index 100% rename from core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/4_3_TabbedContainer.opi rename to core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/widgets/4_3_TabbedContainer.opi diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/4_4_WebBrowser.opi b/core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/widgets/4_4_WebBrowser.opi similarity index 100% rename from core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/4_4_WebBrowser.opi rename to core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/widgets/4_4_WebBrowser.opi diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/4_5_Table.opi b/core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/widgets/4_5_Table.opi similarity index 100% rename from core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/4_5_Table.opi rename to core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/widgets/4_5_Table.opi diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/4_6_1_SashContainer.opi b/core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/widgets/4_6_1_SashContainer.opi similarity index 100% rename from core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/4_6_1_SashContainer.opi rename to core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/widgets/4_6_1_SashContainer.opi diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/4_6_2_SashContainer.opi b/core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/widgets/4_6_2_SashContainer.opi similarity index 100% rename from core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/4_6_2_SashContainer.opi rename to core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/widgets/4_6_2_SashContainer.opi diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/4_6_Array.opi b/core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/widgets/4_6_Array.opi similarity index 100% rename from core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/4_6_Array.opi rename to core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/widgets/4_6_Array.opi diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/5_1_GridLayout.opi b/core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/widgets/5_1_GridLayout.opi similarity index 100% rename from core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/5_1_GridLayout.opi rename to core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/widgets/5_1_GridLayout.opi diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/DynamicSymbols/DyanmicSymbol.opi b/core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/widgets/DynamicSymbols/DyanmicSymbol.opi similarity index 100% rename from core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/DynamicSymbols/DyanmicSymbol.opi rename to core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/widgets/DynamicSymbols/DyanmicSymbol.opi diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/DynamicSymbols/macro.opi b/core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/widgets/DynamicSymbols/macro.opi similarity index 100% rename from core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/DynamicSymbols/macro.opi rename to core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/widgets/DynamicSymbols/macro.opi diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/SymbolWidgets.opi b/core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/widgets/SymbolWidgets.opi similarity index 100% rename from core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/SymbolWidgets.opi rename to core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/widgets/SymbolWidgets.opi diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/images/Off_1.png b/core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/widgets/images/Off_1.png similarity index 100% rename from core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/images/Off_1.png rename to core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/widgets/images/Off_1.png diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/images/Off_2.png b/core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/widgets/images/Off_2.png similarity index 100% rename from core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/images/Off_2.png rename to core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/widgets/images/Off_2.png diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/images/Off_3.png b/core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/widgets/images/Off_3.png similarity index 100% rename from core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/images/Off_3.png rename to core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/widgets/images/Off_3.png diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/images/Off_4.png b/core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/widgets/images/Off_4.png similarity index 100% rename from core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/images/Off_4.png rename to core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/widgets/images/Off_4.png diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/images/Off_5.png b/core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/widgets/images/Off_5.png similarity index 100% rename from core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/images/Off_5.png rename to core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/widgets/images/Off_5.png diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/images/Off_7.png b/core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/widgets/images/Off_7.png similarity index 100% rename from core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/images/Off_7.png rename to core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/widgets/images/Off_7.png diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/images/On_1.png b/core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/widgets/images/On_1.png similarity index 100% rename from core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/images/On_1.png rename to core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/widgets/images/On_1.png diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/images/On_2.png b/core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/widgets/images/On_2.png similarity index 100% rename from core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/images/On_2.png rename to core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/widgets/images/On_2.png diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/images/On_3.png b/core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/widgets/images/On_3.png similarity index 100% rename from core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/images/On_3.png rename to core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/widgets/images/On_3.png diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/images/On_4.png b/core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/widgets/images/On_4.png similarity index 100% rename from core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/images/On_4.png rename to core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/widgets/images/On_4.png diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/images/On_5.png b/core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/widgets/images/On_5.png similarity index 100% rename from core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/images/On_5.png rename to core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/widgets/images/On_5.png diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/images/On_7.png b/core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/widgets/images/On_7.png similarity index 100% rename from core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/images/On_7.png rename to core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/widgets/images/On_7.png diff --git a/core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/images/Readme.txt b/core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/widgets/images/Readme.txt similarity index 100% rename from core/base/tools/commander/workspace_template/Displays/BOY Examples/widgets/images/Readme.txt rename to core/base/tools/commander/workspace_template/Displays/Resources/BOY Examples/widgets/images/Readme.txt diff --git a/core/base/tools/commander/workspace_template/Displays/Resources/definitions.yaml b/core/base/tools/commander/workspace_template/Displays/Resources/definitions.yaml new file mode 100644 index 000000000..00e391e1a --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/Resources/definitions.yaml @@ -0,0 +1,10656 @@ +--- +xtce_config: + root_spacesystem: cfs + global: + TelemetryMetaData: + BaseContainer: + container_ref: 'cfs-ccsds' + size: 96 + CommandMetaData: + BaseContainer: + container_ref: 'cfs-ccsds/cfs-cmd' + size: 64 +modules: + core: + modules: + cfe: + short_name: cfe + long_name: Core Flight Executive + config: + CFE_SPACECRAFT_ID: + name: CFE_SPACECRAFT_ID + value: 66 + MESSAGE_FORMAT_IS_CCSDS: + name: MESSAGE_FORMAT_IS_CCSDS + value: true + CFE_MISSION_REV: + name: CFE_MISSION_REV + value: 0 + CFE_CORE_MAX_STARTUP_MSEC: + name: CFE_CORE_MAX_STARTUP_MSEC + value: 30000 + CFE_CMD_MID_BASE_CPU1: + name: CFE_CMD_MID_BASE_CPU1 + value: 6144 + CFE_TLM_MID_BASE_CPU1: + name: CFE_TLM_MID_BASE_CPU1 + value: 2048 + CFE_CMD_APPID_BASE_CPU1: + name: CFE_CMD_APPID_BASE_CPU1 + value: 1 + CFE_TLM_APPID_BASE_CPU1: + name: CFE_TLM_APPID_BASE_CPU1 + value: 0 + CFE_CMD_MID_BASE_CPU2: + name: CFE_CMD_MID_BASE_CPU2 + value: 6176 + CFE_TLM_MID_BASE_CPU2: + name: CFE_TLM_MID_BASE_CPU2 + value: 2080 + CFE_CMD_APPID_BASE_CPU2: + name: CFE_CMD_APPID_BASE_CPU2 + value: 33 + CFE_TLM_APPID_BASE_CPU2: + name: CFE_TLM_APPID_BASE_CPU2 + value: 32 + CFE_CMD_MID_BASE_CPU3: + name: CFE_CMD_MID_BASE_CPU3 + value: 6208 + CFE_TLM_MID_BASE_CPU3: + name: CFE_TLM_MID_BASE_CPU3 + value: 2112 + CFE_CMD_APPID_BASE_CPU3: + name: CFE_CMD_APPID_BASE_CPU3 + value: 65 + CFE_TLM_APPID_BASE_CPU3: + name: CFE_TLM_APPID_BASE_CPU3 + value: 64 + CFE_CMD_MID_BASE_GLOB: + name: CFE_CMD_MID_BASE_GLOB + value: 6240 + CFE_TLM_MID_BASE_GLOB: + name: CFE_TLM_MID_BASE_GLOB + value: 2144 + CFE_CPU_ID: + name: CFE_CPU_ID + value: 1 + CFE_CPU_NAME: + name: CFE_CPU_NAME + value: CPU1 + modules: + cfe_es: + short_name: cfe_es + long_name: Core Flight Executive - Essential Services + events: + CFE_ES_INIT_INF_EID: + id: 1 + CFE_ES_INITSTATS_INF_EID: + id: 2 + CFE_ES_NOOP_INF_EID: + id: 3 + CFE_ES_RESET_INF_EID: + id: 4 + CFE_ES_SHELL_INF_EID: + id: 5 + CFE_ES_START_INF_EID: + id: 6 + CFE_ES_STOP_DBG_EID: + id: 7 + CFE_ES_STOP_INF_EID: + id: 8 + CFE_ES_RESTART_APP_DBG_EID: + id: 9 + CFE_ES_RESTART_APP_INF_EID: + id: 10 + CFE_ES_RELOAD_APP_DBG_EID: + id: 11 + CFE_ES_RELOAD_APP_INF_EID: + id: 12 + CFE_ES_EXIT_APP_INF_EID: + id: 13 + CFE_ES_ERREXIT_APP_INF_EID: + id: 14 + CFE_ES_ONE_APP_EID: + id: 15 + CFE_ES_ALL_APPS_EID: + id: 16 + CFE_ES_SYSLOG1_INF_EID: + id: 17 + CFE_ES_SYSLOG2_EID: + id: 18 + CFE_ES_ERLOG1_INF_EID: + id: 19 + CFE_ES_ERLOG2_EID: + id: 20 + CFE_ES_MID_ERR_EID: + id: 21 + CFE_ES_CC1_ERR_EID: + id: 22 + CFE_ES_LEN_ERR_EID: + id: 23 + CFE_ES_BOOT_ERR_EID: + id: 24 + CFE_ES_SHELL_ERR_EID: + id: 25 + CFE_ES_START_ERR_EID: + id: 26 + CFE_ES_START_INVALID_FILENAME_ERR_EID: + id: 27 + CFE_ES_START_INVALID_ENTRY_POINT_ERR_EID: + id: 28 + CFE_ES_START_NULL_APP_NAME_ERR_EID: + id: 29 + CFE_ES_START_STACK_ERR_EID: + id: 30 + CFE_ES_START_PRIORITY_ERR_EID: + id: 31 + CFE_ES_START_EXC_ACTION_ERR_EID: + id: 32 + CFE_ES_ERREXIT_APP_ERR_EID: + id: 33 + CFE_ES_STOP_ERR1_EID: + id: 35 + CFE_ES_STOP_ERR2_EID: + id: 36 + CFE_ES_STOP_ERR3_EID: + id: 37 + CFE_ES_RESTART_APP_ERR1_EID: + id: 38 + CFE_ES_RESTART_APP_ERR2_EID: + id: 39 + CFE_ES_RESTART_APP_ERR3_EID: + id: 40 + CFE_ES_RESTART_APP_ERR4_EID: + id: 41 + CFE_ES_RELOAD_APP_ERR1_EID: + id: 42 + CFE_ES_RELOAD_APP_ERR2_EID: + id: 43 + CFE_ES_RELOAD_APP_ERR3_EID: + id: 44 + CFE_ES_RELOAD_APP_ERR4_EID: + id: 45 + CFE_ES_EXIT_APP_ERR_EID: + id: 46 + CFE_ES_PCR_ERR1_EID: + id: 47 + CFE_ES_PCR_ERR2_EID: + id: 48 + CFE_ES_ONE_ERR_EID: + id: 49 + CFE_ES_ONE_APPID_ERR_EID: + id: 50 + CFE_ES_OSCREATE_ERR_EID: + id: 51 + CFE_ES_WRHDR_ERR_EID: + id: 52 + CFE_ES_TASKWR_ERR_EID: + id: 53 + CFE_ES_SYSLOG2_ERR_EID: + id: 55 + CFE_ES_ERLOG2_ERR_EID: + id: 56 + CFE_ES_PERF_STARTCMD_EID: + id: 57 + CFE_ES_PERF_STARTCMD_ERR_EID: + id: 58 + CFE_ES_PERF_STARTCMD_TRIG_ERR_EID: + id: 59 + CFE_ES_PERF_STOPCMD_EID: + id: 60 + CFE_ES_PERF_STOPCMD_ERR1_EID: + id: 61 + CFE_ES_PERF_STOPCMD_ERR2_EID: + id: 62 + CFE_ES_PERF_FILTMSKCMD_EID: + id: 63 + CFE_ES_PERF_FILTMSKERR_EID: + id: 64 + CFE_ES_PERF_TRIGMSKCMD_EID: + id: 65 + CFE_ES_PERF_TRIGMSKERR_EID: + id: 66 + CFE_ES_PERF_LOG_ERR_EID: + id: 67 + CFE_ES_PERF_DATAWRITTEN_EID: + id: 68 + CFE_ES_CDS_REGISTER_ERR_EID: + id: 69 + CFE_ES_SYSLOGMODE_EID: + id: 70 + CFE_ES_ERR_SYSLOGMODE_EID: + id: 71 + CFE_ES_RESET_PR_COUNT_EID: + id: 72 + CFE_ES_SET_MAX_PR_COUNT_EID: + id: 73 + CFE_ES_FILEWRITE_ERR_EID: + id: 74 + CFE_ES_RST_ACCESS_EID: + id: 75 + CFE_ES_CDS_DELETE_ERR_EID: + id: 76 + CFE_ES_CDS_NAME_ERR_EID: + id: 77 + CFE_ES_CDS_DELETED_INFO_EID: + id: 78 + CFE_ES_CDS_DELETE_TBL_ERR_EID: + id: 79 + CFE_ES_CDS_OWNER_ACTIVE_EID: + id: 80 + CFE_ES_TLM_POOL_STATS_INFO_EID: + id: 81 + CFE_ES_INVALID_POOL_HANDLE_ERR_EID: + id: 82 + CFE_ES_CDS_REG_DUMP_INF_EID: + id: 83 + CFE_ES_CDS_DUMP_ERR_EID: + id: 84 + CFE_ES_WRITE_CFE_HDR_ERR_EID: + id: 85 + CFE_ES_CREATING_CDS_DUMP_ERR_EID: + id: 86 + CFE_ES_TASKINFO_EID: + id: 87 + CFE_ES_TASKINFO_OSCREATE_ERR_EID: + id: 88 + CFE_ES_TASKINFO_WRHDR_ERR_EID: + id: 89 + CFE_ES_TASKINFO_WR_ERR_EID: + id: 90 + CFE_ES_VERSION_INF_EID: + id: 91 + CFE_ES_BUILD_INF_EID: + id: 92 + type_remaps: + CFE_ES_MemHandle_t: uint32 + cpuaddr: uint32 + msg_def_overrides: + - parent: CFE_ES_RestartCmd_Payload_t + member: RestartType + type: enumeration + enumerations: + PROCESSOR_RESET: 1 + POWERON_RESET: 2 + - parent: CFE_ES_ShellCmd_Payload_t + member: CmdString + type: string + - parent: CFE_ES_ShellCmd_Payload_t + member: OutputFilename + type: string + - parent: CFE_ES_QueryAllCmd_Payload_t + member: QueryAllFileName + type: string + - parent: CFE_ES_QueryAllTasksCmd_Payload_t + member: QueryAllFileName + type: string + - parent: CFE_ES_WriteSyslogCmd_Payload_t + member: SysLogFileName + type: string + - parent: CFE_ES_WriteERlogCmd_Payload_t + member: ERLogFileName + type: string + - parent: CFE_ES_AppReloadCmd_Payload_t + member: Application + type: string + - parent: CFE_ES_AppReloadCmd_Payload_t + member: AppFileName + type: string + - parent: CFE_ES_DeleteCDSCmd_Payload_t + member: CdsName + type: string + - parent: CFE_ES_PerfStartCmd_Payload_t + member: TriggerMode + type: enumeration + enumerations: + START: 0 + CENTER: 1 + END: 2 + - parent: CFE_ES_PerfStopCmd_Payload_t + member: DataFileName + type: string + - parent: CFE_ES_TlmPoolStatsCmd_Payload_t + member: Application + type: string + - parent: CFE_ES_DumpCDSRegCmd_Payload_t + member: DumpFilename + type: string + - parent: CFE_ES_AppInfo_t + member: Type + type: enumeration + enumerations: + CORE: 1 + EXTERNAL: 2 + - parent: CFE_ES_AppInfo_t + member: Name + type: string + - parent: CFE_ES_AppInfo_t + member: EntryPoint + type: string + - parent: CFE_ES_AppInfo_t + member: FileName + type: string + - parent: CFE_ES_AppInfo_t + member: ExceptionAction + type: enumeration + enumerations: + RESTART_APP: 0 + PROC_RESTART: 1 + - parent: CFE_ES_AppInfo_t + member: MainTaskName + type: string + - parent: CFE_ES_OverWriteSysLogCmd_Payload_t + member: Mode + type: enumeration + enumerations: + OVERWRITE: 0 + DISCARD: 1 + - parent: CFE_ES_HkPacket_Payload_t + member: SysLogMode + type: enumeration + enumerations: + OVERWRITE: 0 + DROP: 1 + - parent: CFE_ES_HkPacket_Payload_t + member: ResetType + type: enumeration + enumerations: + PROCESSOR: 1 + POWERUP: 2 + - parent: CFE_ES_HkPacket_Payload_t + member: ResetSubtype + type: enumeration + enumerations: + POWER_CYCLE: 1 + PUSH_BUTTON: 2 + HW_SPECIAL_COMMAND: 3 + HW_WATCHDOG: 4 + RESET_COMMAND: 5 + EXCEPTION: 6 + UNDEFINED_RESET: 7 + HWDEBUG_RESET: 8 + BANKSWITCH_RESET: 9 + - parent: CFE_ES_HkPacket_Payload_t + member: PerfState + type: enumeration + enumerations: + IDLE: 0 + WAITING_FOR_TRIGGER: 1 + TRIGGERED: 2 + - parent: CFE_ES_HkPacket_Payload_t + member: PerfMode + type: enumeration + enumerations: + TRIGGER_START: 0 + TRIGGER_CENTER: 1 + TRIGGER_END: 2 + - parent: CFE_ES_ShellPacket_Payload_t + member: ShellOutput + type: string + - parent: CFE_ES_StartAppCmd_Payload_t + member: Application + type: string + - parent: CFE_ES_StartAppCmd_Payload_t + member: AppEntryPoint + type: string + - parent: CFE_ES_StartAppCmd_Payload_t + member: AppFileName + type: string + - parent: CFE_ES_StartAppCmd_Payload_t + member: ExceptionAction + type: enumeration + enumerations: + RESTART_APP: 0 + PROC_RESTART: 1 + - parent: CFE_ES_AppNameCmd_Payload_t + member: Application + type: string + - parent: CFE_EVS_PacketID_t + member: AppName + type: string + telemetry: + CFE_ES_HK_TLM_MID: + msgID: 2063 + struct: CFE_ES_HkPacket_t + CFE_ES_APP_TLM_MID: + msgID: 2071 + struct: CFE_ES_OneAppTlm_t + CFE_ES_MEMSTATS_TLM_MID: + msgID: 2076 + struct: CFE_ES_PoolStatsTlm_t + CFE_ES_SHELL_TLM_MID: + msgID: 2075 + struct: CFE_ES_ShellPacket_t + commands: + CFE_ES_CMD_MID: + msgID: 6148 + commands: + Noop: + cc: 0 + struct: CFE_SB_CmdHdr_t + Reset: + cc: 1 + struct: CFE_SB_CmdHdr_t + Restart: + cc: 2 + struct: CFE_ES_RestartCmd_t + ShellCmd: + cc: 3 + struct: CFE_ES_ShellCmd_t + StartApp: + cc: 4 + struct: CFE_ES_StartAppCmd_t + StopApp: + cc: 5 + struct: CFE_ES_AppNameCmd_t + RestartApp: + cc: 6 + struct: CFE_ES_AppNameCmd_t + AppReload: + cc: 7 + struct: CFE_ES_AppReloadCmd_t + QueryOneApp: + cc: 8 + struct: CFE_ES_AppNameCmd_t + QueryAllApps: + cc: 9 + struct: CFE_ES_QueryAllCmd_t + ClearSysLog: + cc: 10 + struct: CFE_SB_CmdHdr_t + WriteSysLog: + cc: 11 + struct: CFE_ES_WriteSyslogCmd_t + ClearERLog: + cc: 12 + struct: CFE_SB_CmdHdr_t + WriteERLog: + cc: 13 + struct: CFE_ES_WriteERlogCmd_t + PerfStart: + cc: 14 + struct: CFE_ES_PerfStartCmd_t + PerfStop: + cc: 15 + struct: CFE_ES_PerfStopCmd_t + PerfSetFilterMask: + cc: 16 + struct: CFE_ES_PerfSetFilterMaskCmd_t + PerfSetTrigMask: + cc: 17 + struct: CFE_ES_PerfSetTrigMaskCmd_t + SetSysLogMode: + cc: 18 + struct: CFE_ES_OverWriteSysLogCmd_t + ResetPRCount: + cc: 19 + struct: CFE_SB_CmdHdr_t + SetMaxPRCount: + cc: 20 + struct: CFE_ES_SetMaxPRCountCmd_t + DeleteCDS: + cc: 21 + struct: CFE_ES_DeleteCDSCmd_t + TlmPoolStats: + cc: 22 + struct: CFE_ES_TlmPoolStatsCmd_t + DumpCDSReg: + cc: 23 + struct: CFE_ES_DumpCDSRegCmd_t + QueryAllTasks: + cc: 24 + struct: CFE_ES_QueryAllTasksCmd_t + CFE_ES_SEND_HK_MID: + msgID: 6149 + commands: + SendHK: + cc: 0 + struct: CFE_SB_CmdHdr_t + perfids: + CFE_ES_MAIN_PERF_ID: + id: 1 + config: + CFE_ES_CDS_MAX_NAME_LENGTH: + name: CFE_ES_CDS_MAX_NAME_LENGTH + value: 16 + CFE_ES_CRC_8: + name: CFE_ES_CRC_8 + value: 1 + CFE_ES_CRC_16: + name: CFE_ES_CRC_16 + value: 2 + CFE_ES_CRC_32: + name: CFE_ES_CRC_32 + value: 3 + CFE_ES_DEFAULT_CRC: + name: CFE_ES_DEFAULT_CRC + value: CFE_ES_CRC_16 + CFE_ES_CMD_MSG: + name: CFE_ES_CMD_MSG + value: 6 + CFE_ES_SEND_HK_MSG: + name: CFE_ES_SEND_HK_MSG + value: 8 + CFE_ES_HK_TLM_MSG: + name: CFE_ES_HK_TLM_MSG + value: 0 + CFE_ES_APP_TLM_MSG: + name: CFE_ES_APP_TLM_MSG + value: 11 + CFE_ES_SHELL_TLM_MSG: + name: CFE_ES_SHELL_TLM_MSG + value: 15 + CFE_ES_MEMSTATS_TLM_MSG: + name: CFE_ES_MEMSTATS_TLM_MSG + value: 16 + CFE_ES_MAX_APPLICATIONS: + name: CFE_ES_MAX_APPLICATIONS + value: 64 + CFE_ES_MAX_LIBRARIES: + name: CFE_ES_MAX_LIBRARIES + value: 10 + CFE_ES_ER_LOG_ENTRIES: + name: CFE_ES_ER_LOG_ENTRIES + value: 20 + CFE_ES_ER_LOG_MAX_CONTEXT_SIZE: + name: CFE_ES_ER_LOG_MAX_CONTEXT_SIZE + value: 128 + CFE_ES_SYSTEM_LOG_SIZE: + name: CFE_ES_SYSTEM_LOG_SIZE + value: 3072 + CFE_ES_OBJECT_TABLE_SIZE: + name: CFE_ES_OBJECT_TABLE_SIZE + value: 30 + CFE_ES_MAX_GEN_COUNTERS: + name: CFE_ES_MAX_GEN_COUNTERS + value: 8 + CFE_ES_APP_SCAN_RATE: + name: CFE_ES_APP_SCAN_RATE + value: 1000 + CFE_ES_APP_KILL_TIMEOUT: + name: CFE_ES_APP_KILL_TIMEOUT + value: 5 + CFE_ES_RAM_DISK_SECTOR_SIZE: + name: CFE_ES_RAM_DISK_SECTOR_SIZE + value: 512 + CFE_ES_RAM_DISK_NUM_SECTORS: + name: CFE_ES_RAM_DISK_NUM_SECTORS + value: 4096 + CFE_ES_RAM_DISK_PERCENT_RESERVED: + name: CFE_ES_RAM_DISK_PERCENT_RESERVED + value: 30 + CFE_ES_RAM_DISK_MOUNT_STRING: + name: CFE_ES_RAM_DISK_MOUNT_STRING + value: /ram + CFE_ES_CDS_SIZE: + name: CFE_ES_CDS_SIZE + value: 128 * 2048 + CFE_ES_USER_RESERVED_SIZE: + name: CFE_ES_USER_RESERVED_SIZE + value: 1024 * 2048 + CFE_ES_RESET_AREA_SIZE: + name: CFE_ES_RESET_AREA_SIZE + value: 170 * 2048 + CFE_ES_MEMPOOL_ALIGNED: + name: CFE_ES_MEMPOOL_ALIGNED + value: 1 + CFE_ES_NONVOL_STARTUP_FILE: + name: CFE_ES_NONVOL_STARTUP_FILE + value: /cf/apps/cfe_es_startup.scr + CFE_ES_VOLATILE_STARTUP_FILE: + name: CFE_ES_VOLATILE_STARTUP_FILE + value: /ram/apps/cfe_es_startup.scr + CFE_ES_DEFAULT_SHELL_FILENAME: + name: CFE_ES_DEFAULT_SHELL_FILENAME + value: /ram/ShellCmd.out + CFE_ES_MAX_SHELL_CMD: + name: CFE_ES_MAX_SHELL_CMD + value: 64 + CFE_ES_MAX_SHELL_PKT: + name: CFE_ES_MAX_SHELL_PKT + value: 64 + CFE_ES_DEFAULT_APP_LOG_FILE: + name: CFE_ES_DEFAULT_APP_LOG_FILE + value: /ram/cfe_es_app_info.log + CFE_ES_DEFAULT_TASK_LOG_FILE: + name: CFE_ES_DEFAULT_TASK_LOG_FILE + value: /ram/cfe_es_task_info.log + CFE_ES_DEFAULT_SYSLOG_FILE: + name: CFE_ES_DEFAULT_SYSLOG_FILE + value: /ram/cfe_es_syslog.log + CFE_ES_DEFAULT_ER_LOG_FILE: + name: CFE_ES_DEFAULT_ER_LOG_FILE + value: /ram/cfe_erlog.log + CFE_ES_DEFAULT_PERF_DUMP_FILENAME: + name: CFE_ES_DEFAULT_PERF_DUMP_FILENAME + value: /ram/cfe_es_perf.dat + CFE_ES_DEFAULT_CDS_REG_DUMP_FILE: + name: CFE_ES_DEFAULT_CDS_REG_DUMP_FILE + value: /ram/cfe_cds_reg.log + CFE_ES_DEFAULT_SYSLOG_MODE: + name: CFE_ES_DEFAULT_SYSLOG_MODE + value: 1 + CFE_ES_PERF_MAX_IDS: + name: CFE_ES_PERF_MAX_IDS + value: 128 + CFE_ES_PERF_DATA_BUFFER_SIZE: + name: CFE_ES_PERF_DATA_BUFFER_SIZE + value: 10000 + CFE_ES_PERF_FILTMASK_NONE: + name: CFE_ES_PERF_FILTMASK_NONE + value: 0 + CFE_ES_PERF_FILTMASK_ALL: + name: CFE_ES_PERF_FILTMASK_ALL + value: ~CFE_ES_PERF_FILTMASK_NONE + CFE_ES_PERF_FILTMASK_INIT: + name: CFE_ES_PERF_FILTMASK_INIT + value: CFE_ES_PERF_FILTMASK_ALL + CFE_ES_PERF_TRIGMASK_NONE: + name: CFE_ES_PERF_TRIGMASK_NONE + value: 0 + CFE_ES_PERF_TRIGMASK_ALL: + name: CFE_ES_PERF_TRIGMASK_ALL + value: ~CFE_ES_PERF_TRIGMASK_NONE + CFE_ES_PERF_TRIGMASK_INIT: + name: CFE_ES_PERF_TRIGMASK_INIT + value: CFE_ES_PERF_TRIGMASK_NONE + CFE_ES_PERF_CHILD_PRIORITY: + name: CFE_ES_PERF_CHILD_PRIORITY + value: 200 + CFE_ES_PERF_CHILD_STACK_SIZE: + name: CFE_ES_PERF_CHILD_STACK_SIZE + value: 16384 + CFE_ES_PERF_CHILD_MS_DELAY: + name: CFE_ES_PERF_CHILD_MS_DELAY + value: 20 + CFE_ES_PERF_ENTRIES_BTWN_DLYS: + name: CFE_ES_PERF_ENTRIES_BTWN_DLYS + value: 50 + CFE_ES_DEFAULT_STACK_SIZE: + name: CFE_ES_DEFAULT_STACK_SIZE + value: 16384 + CFE_ES_START_TASK_PRIORITY: + name: CFE_ES_START_TASK_PRIORITY + value: 68 + CFE_ES_START_TASK_STACK_SIZE: + name: CFE_ES_START_TASK_STACK_SIZE + value: 16384 + CFE_ES_START_TASK_FLAGS: + name: CFE_ES_START_TASK_FLAGS + value: OS_ENABLE_CORE_0 + CFE_ES_CDS_MAX_NUM_ENTRIES: + name: CFE_ES_CDS_MAX_NUM_ENTRIES + value: 512 + CFE_ES_MAX_PROCESSOR_RESETS: + name: CFE_ES_MAX_PROCESSOR_RESETS + value: 2 + CFE_ES_MEM_BLOCK_SIZE_01: + name: CFE_ES_MEM_BLOCK_SIZE_01 + value: 8 + CFE_ES_MEM_BLOCK_SIZE_02: + name: CFE_ES_MEM_BLOCK_SIZE_02 + value: 16 + CFE_ES_MEM_BLOCK_SIZE_03: + name: CFE_ES_MEM_BLOCK_SIZE_03 + value: 32 + CFE_ES_MEM_BLOCK_SIZE_04: + name: CFE_ES_MEM_BLOCK_SIZE_04 + value: 48 + CFE_ES_MEM_BLOCK_SIZE_05: + name: CFE_ES_MEM_BLOCK_SIZE_05 + value: 64 + CFE_ES_MEM_BLOCK_SIZE_06: + name: CFE_ES_MEM_BLOCK_SIZE_06 + value: 96 + CFE_ES_MEM_BLOCK_SIZE_07: + name: CFE_ES_MEM_BLOCK_SIZE_07 + value: 128 + CFE_ES_MEM_BLOCK_SIZE_08: + name: CFE_ES_MEM_BLOCK_SIZE_08 + value: 160 + CFE_ES_MEM_BLOCK_SIZE_09: + name: CFE_ES_MEM_BLOCK_SIZE_09 + value: 256 + CFE_ES_MEM_BLOCK_SIZE_10: + name: CFE_ES_MEM_BLOCK_SIZE_10 + value: 512 + CFE_ES_MEM_BLOCK_SIZE_11: + name: CFE_ES_MEM_BLOCK_SIZE_11 + value: 1024 + CFE_ES_MEM_BLOCK_SIZE_12: + name: CFE_ES_MEM_BLOCK_SIZE_12 + value: 2048 + CFE_ES_MEM_BLOCK_SIZE_13: + name: CFE_ES_MEM_BLOCK_SIZE_13 + value: 4096 + CFE_ES_MEM_BLOCK_SIZE_14: + name: CFE_ES_MEM_BLOCK_SIZE_14 + value: 8192 + CFE_ES_MEM_BLOCK_SIZE_15: + name: CFE_ES_MEM_BLOCK_SIZE_15 + value: 16384 + CFE_ES_MEM_BLOCK_SIZE_16: + name: CFE_ES_MEM_BLOCK_SIZE_16 + value: 80000 + CFE_ES_MEM_BLOCK_SIZE: + name: CFE_ES_MEM_BLOCK_SIZE + value: 200000 + CFE_ES_CDS_MEM_BLOCK_SIZE_01: + name: CFE_ES_CDS_MEM_BLOCK_SIZE_01 + value: 8 + CFE_ES_CDS_MEM_BLOCK_SIZE_02: + name: CFE_ES_CDS_MEM_BLOCK_SIZE_02 + value: 16 + CFE_ES_CDS_MEM_BLOCK_SIZE_03: + name: CFE_ES_CDS_MEM_BLOCK_SIZE_03 + value: 32 + CFE_ES_CDS_MEM_BLOCK_SIZE_04: + name: CFE_ES_CDS_MEM_BLOCK_SIZE_04 + value: 48 + CFE_ES_CDS_MEM_BLOCK_SIZE_05: + name: CFE_ES_CDS_MEM_BLOCK_SIZE_05 + value: 64 + CFE_ES_CDS_MEM_BLOCK_SIZE_06: + name: CFE_ES_CDS_MEM_BLOCK_SIZE_06 + value: 96 + CFE_ES_CDS_MEM_BLOCK_SIZE_07: + name: CFE_ES_CDS_MEM_BLOCK_SIZE_07 + value: 128 + CFE_ES_CDS_MEM_BLOCK_SIZE_08: + name: CFE_ES_CDS_MEM_BLOCK_SIZE_08 + value: 160 + CFE_ES_CDS_MEM_BLOCK_SIZE_09: + name: CFE_ES_CDS_MEM_BLOCK_SIZE_09 + value: 256 + CFE_ES_CDS_MEM_BLOCK_SIZE_10: + name: CFE_ES_CDS_MEM_BLOCK_SIZE_10 + value: 512 + CFE_ES_CDS_MEM_BLOCK_SIZE_11: + name: CFE_ES_CDS_MEM_BLOCK_SIZE_11 + value: 1024 + CFE_ES_CDS_MEM_BLOCK_SIZE_12: + name: CFE_ES_CDS_MEM_BLOCK_SIZE_12 + value: 2048 + CFE_ES_CDS_MEM_BLOCK_SIZE_13: + name: CFE_ES_CDS_MEM_BLOCK_SIZE_13 + value: 4096 + CFE_ES_CDS_MEM_BLOCK_SIZE_14: + name: CFE_ES_CDS_MEM_BLOCK_SIZE_14 + value: 8192 + CFE_ES_CDS_MEM_BLOCK_SIZE_15: + name: CFE_ES_CDS_MEM_BLOCK_SIZE_15 + value: 16384 + CFE_ES_CDS_MEM_BLOCK_SIZE_16: + name: CFE_ES_CDS_MEM_BLOCK_SIZE_16 + value: 32768 + CFE_ES_CDS_MEM_BLOCK_SIZE: + name: CFE_ES_CDS_MEM_BLOCK_SIZE + value: 80000 + CFE_ES_STARTUP_SYNC_POLL_MSEC: + name: CFE_ES_STARTUP_SYNC_POLL_MSEC + value: 50 + CFE_ES_STARTUP_SCRIPT_TIMEOUT_MSEC: + name: CFE_ES_STARTUP_SCRIPT_TIMEOUT_MSEC + value: 30000 + cfe_evs: + short_name: cfe_evs + long_name: Core Flight Executive - Event Services + events: + CFE_EVS_ERR_WRLOGFILE_EID: + id: 2 + CFE_EVS_ERR_CRLOGFILE_EID: + id: 3 + CFE_EVS_ERR_MSGID_EID: + id: 5 + CFE_EVS_ERR_EVTIDNOREGS_EID: + id: 6 + CFE_EVS_ERR_APPNOREGS_EID: + id: 7 + CFE_EVS_ERR_ILLAPPIDRANGE_EID: + id: 8 + CFE_EVS_ERR_NOAPPIDFOUND_EID: + id: 9 + CFE_EVS_ERR_ILLEGALFMTMOD_EID: + id: 10 + CFE_EVS_ERR_MAXREGSFILTER_EID: + id: 11 + CFE_EVS_ERR_WRDATFILE_EID: + id: 12 + CFE_EVS_ERR_CRDATFILE_EID: + id: 13 + CFE_EVS_ERR_CC_EID: + id: 15 + CFE_EVS_RSTCNT_EID: + id: 16 + CFE_EVS_SETFILTERMSK_EID: + id: 17 + CFE_EVS_ENAPORT_EID: + id: 18 + CFE_EVS_DISPORT_EID: + id: 19 + CFE_EVS_ENAEVTTYPE_EID: + id: 20 + CFE_EVS_DISEVTTYPE_EID: + id: 21 + CFE_EVS_SETEVTFMTMOD_EID: + id: 22 + CFE_EVS_ENAAPPEVTTYPE_EID: + id: 23 + CFE_EVS_DISAPPENTTYPE_EID: + id: 24 + CFE_EVS_ENAAPPEVT_EID: + id: 25 + CFE_EVS_DISAPPEVT_EID: + id: 26 + CFE_EVS_RSTEVTCNT_EID: + id: 27 + CFE_EVS_RSTFILTER_EID: + id: 28 + CFE_EVS_RSTALLFILTER_EID: + id: 29 + CFE_EVS_ADDFILTER_EID: + id: 30 + CFE_EVS_DELFILTER_EID: + id: 31 + CFE_EVS_WRDAT_EID: + id: 32 + CFE_EVS_WRLOG_EID: + id: 33 + CFE_EVS_NO_LOGSET_EID: + id: 34 + CFE_EVS_NO_LOGCLR_EID: + id: 35 + CFE_EVS_NO_LOGWR_EID: + id: 36 + CFE_EVS_EVT_FILTERED_EID: + id: 37 + CFE_EVS_LOGMODE_EID: + id: 38 + CFE_EVS_ERR_LOGMODE_EID: + id: 39 + CFE_EVS_ERR_INVALID_BITMASK_EID: + id: 40 + CFE_EVS_ERR_UNREGISTERED_EVS_APP: + id: 41 + CFE_EVS_FILTER_MAX_EID: + id: 42 + CFE_EVS_LEN_ERR_EID: + id: 43 + msg_def_overrides: + - parent: CFE_EVS_LogFileCmd_Payload_t + member: LogFilename + type: string + - parent: CFE_EVS_AppDataCmd_Payload_t + member: AppDataFilename + type: string + - parent: CFE_EVS_ModeCmd_Payload_t + member: Mode + type: enumeration + enumerations: + OVERWRITE: 0 + DISCARD: 1 + - parent: CFE_EVS_FormatCmd_Payload_t + member: Mode + type: enumeration + enumerations: + SHORT: 0 + LONG: 1 + - parent: CFE_EVS_AppNameCmd_Payload_t + member: AppName + type: string + - parent: CFE_EVS_AppNameEventIDCmd_Payload_t + member: AppName + type: string + - parent: CFE_EVS_AppNameBitMaskCmd_Payload_t + member: AppName + type: string + - parent: CFE_EVS_AppNameEventIDMaskCmd_Payload_t + member: AppName + type: string + - parent: CFE_EVS_TlmPkt_Payload_t + member: MessageFormatMode + type: enumeration + enumerations: + SHORT: 0 + LONG: 1 + - parent: CFE_EVS_TlmPkt_Payload_t + member: LogMode + type: enumeration + enumerations: + OVERWRITE: 0 + DISCARD: 1 + - parent: CFE_EVS_PacketID_t + member: AppName + type: string + - parent: CFE_EVS_PacketID_t + member: EventType + type: enumeration + enumerations: + DEBUG: 1 + INFO: 2 + ERROR: 3 + CRITICAL: 4 + - parent: CFE_EVS_Packet_Payload_t + member: Message + type: string + telemetry: + CFE_EVS_HK_TLM_MID: + msgID: 2064 + struct: CFE_EVS_TlmPkt_t + CFE_EVS_EVENT_MSG_MID: + msgID: 2069 + commands: + CFE_EVS_CMD_MID: + msgID: 6144 + commands: + Noop: + cc: 0 + struct: CFE_SB_CmdHdr_t + Reset: + cc: 1 + struct: CFE_SB_CmdHdr_t + EnableEventType: + cc: 2 + struct: CFE_EVS_BitMaskCmd_t + DisableEventType: + cc: 3 + struct: CFE_EVS_BitMaskCmd_t + SetEventFormatMode: + cc: 4 + struct: CFE_EVS_FormatCmd_t + EnableAppEventType: + cc: 5 + struct: CFE_EVS_AppNameBitMaskCmd_t + DisableAppEventType: + cc: 6 + struct: CFE_EVS_AppNameBitMaskCmd_t + EnableAppEvents: + cc: 7 + struct: CFE_EVS_AppNameCmd_t + DisableAppEvents: + cc: 8 + struct: CFE_EVS_AppNameCmd_t + ResetAppEventCounters: + cc: 9 + struct: CFE_EVS_AppNameCmd_t + SetAppEventFilter: + cc: 10 + struct: CFE_EVS_AppNameEventIDMaskCmd_t + EnablePorts: + cc: 11 + struct: CFE_EVS_BitMaskCmd_t + DisablePorts: + cc: 12 + struct: CFE_EVS_BitMaskCmd_t + ResetAppEventFilter: + cc: 13 + struct: CFE_EVS_AppNameEventIDCmd_t + ResetAppFilters: + cc: 14 + struct: CFE_EVS_AppNameCmd_t + AddAppEventFilter: + cc: 15 + struct: CFE_EVS_AppNameEventIDMaskCmd_t + DeleteAppEventFilter: + cc: 16 + struct: CFE_EVS_AppNameEventIDCmd_t + WriteAppData: + cc: 17 + struct: CFE_EVS_AppDataCmd_t + WriteLogData: + cc: 18 + struct: CFE_EVS_LogFileCmd_t + SetLogMode: + cc: 19 + struct: CFE_EVS_ModeCmd_t + ClearLog: + cc: 20 + struct: CFE_SB_CmdHdr_t + CFE_EVS_SEND_HK_MID: + msgID: 6150 + commands: + SendHK: + cc: 0 + struct: CFE_SB_CmdHdr_t + perfids: + CFE_EVS_MAIN_PERF_ID: + id: 2 + config: + CFE_EVS_MAX_MESSAGE_LENGTH: + name: CFE_EVS_MAX_MESSAGE_LENGTH + value: 122 + CFE_EVS_CMD_MSG: + name: CFE_EVS_CMD_MSG + value: 1 + CFE_EVS_SEND_HK_MSG: + name: CFE_EVS_SEND_HK_MSG + value: 9 + CFE_EVS_HK_TLM_MSG: + name: CFE_EVS_HK_TLM_MSG + value: 1 + CFE_EVS_EVENT_MSG_MSG: + name: CFE_EVS_EVENT_MSG_MSG + value: 8 + CFE_EVS_START_TASK_PRIORITY: + name: CFE_EVS_START_TASK_PRIORITY + value: 61 + CFE_EVS_START_TASK_STACK_SIZE: + name: CFE_EVS_START_TASK_STACK_SIZE + value: CFE_ES_DEFAULT_STACK_SIZE + CFE_EVS_START_TASK_FLAGS: + name: CFE_EVS_START_TASK_FLAGS + value: OS_ENABLE_CORE_0 + CFE_EVS_MAX_EVENT_FILTERS: + name: CFE_EVS_MAX_EVENT_FILTERS + value: 255 + CFE_EVS_LOG_ON: + name: CFE_EVS_LOG_ON + value: true + CFE_EVS_DEFAULT_LOG_FILE: + name: CFE_EVS_DEFAULT_LOG_FILE + value: /ram/cfe_evs.log + CFE_EVS_LOG_MAX: + name: CFE_EVS_LOG_MAX + value: 20 + CFE_EVS_DEFAULT_APP_DATA_FILE: + name: CFE_EVS_DEFAULT_APP_DATA_FILE + value: /ram/cfe_evs_app.dat + CFE_EVS_PORT_DEFAULT: + name: CFE_EVS_PORT_DEFAULT + value: 1 + CFE_EVS_DEFAULT_TYPE_FLAG: + name: CFE_EVS_DEFAULT_TYPE_FLAG + value: 14 + CFE_EVS_DEFAULT_LOG_MODE: + name: CFE_EVS_DEFAULT_LOG_MODE + value: 1 + CFE_EVS_DEFAULT_MSG_FORMAT_MODE: + name: CFE_EVS_DEFAULT_MSG_FORMAT_MODE + value: CFE_EVS_LONG_FORMAT + cfe_sb: + short_name: cfe_sb + long_name: Core Flight Executive - Software Bus + events: + CFE_SB_INIT_EID: + id: 1 + CFE_SB_CR_PIPE_BAD_ARG_EID: + id: 2 + CFE_SB_MAX_PIPES_MET_EID: + id: 3 + CFE_SB_CR_PIPE_ERR_EID: + id: 4 + CFE_SB_PIPE_ADDED_EID: + id: 5 + CFE_SB_SUB_ARG_ERR_EID: + id: 6 + CFE_SB_DUP_SUBSCRIP_EID: + id: 7 + CFE_SB_MAX_MSGS_MET_EID: + id: 8 + CFE_SB_MAX_DESTS_MET_EID: + id: 9 + CFE_SB_SUBSCRIPTION_RCVD_EID: + id: 10 + CFE_SB_UNSUB_ARG_ERR_EID: + id: 11 + CFE_SB_UNSUB_NO_SUBS_EID: + id: 12 + CFE_SB_SEND_BAD_ARG_EID: + id: 13 + CFE_SB_SEND_NO_SUBS_EID: + id: 14 + CFE_SB_MSG_TOO_BIG_EID: + id: 15 + CFE_SB_GET_BUF_ERR_EID: + id: 16 + CFE_SB_MSGID_LIM_ERR_EID: + id: 17 + CFE_SB_RCV_BAD_ARG_EID: + id: 18 + CFE_SB_BAD_PIPEID_EID: + id: 19 + CFE_SB_DEST_BLK_ERR_EID: + id: 20 + CFE_SB_SEND_INV_MSGID_EID: + id: 21 + CFE_SB_SUBSCRIPTION_RPT_EID: + id: 22 + CFE_SB_UNSUBSCRIPTION_RPT_EID: + id: 24 + CFE_SB_Q_FULL_ERR_EID: + id: 25 + CFE_SB_Q_WR_ERR_EID: + id: 26 + CFE_SB_Q_RD_ERR_EID: + id: 27 + CFE_SB_CMD0_RCVD_EID: + id: 28 + CFE_SB_CMD1_RCVD_EID: + id: 29 + CFE_SB_LSTSNDER_ERR1_EID: + id: 30 + CFE_SB_LSTSNDER_ERR2_EID: + id: 31 + CFE_SB_SND_STATS_EID: + id: 32 + CFE_SB_ENBL_RTE1_EID: + id: 33 + CFE_SB_ENBL_RTE2_EID: + id: 34 + CFE_SB_ENBL_RTE3_EID: + id: 35 + CFE_SB_DSBL_RTE1_EID: + id: 36 + CFE_SB_DSBL_RTE2_EID: + id: 37 + CFE_SB_DSBL_RTE3_EID: + id: 38 + CFE_SB_SND_RTG_EID: + id: 39 + CFE_SB_SND_RTG_ERR1_EID: + id: 40 + CFE_SB_GLS_INV_CALLER_EID: + id: 41 + CFE_SB_BAD_CMD_CODE_EID: + id: 42 + CFE_SB_BAD_MSGID_EID: + id: 43 + CFE_SB_FULL_SUB_PKT_EID: + id: 44 + CFE_SB_PART_SUB_PKT_EID: + id: 45 + CFE_SB_DEL_PIPE_ERR1_EID: + id: 46 + CFE_SB_PIPE_DELETED_EID: + id: 47 + CFE_SB_SUBSCRIPTION_REMOVED_EID: + id: 48 + CFE_SB_FILEWRITE_ERR_EID: + id: 49 + CFE_SB_SUB_INV_PIPE_EID: + id: 50 + CFE_SB_SUB_INV_CALLER_EID: + id: 51 + CFE_SB_UNSUB_INV_PIPE_EID: + id: 52 + CFE_SB_UNSUB_INV_CALLER_EID: + id: 53 + CFE_SB_DEL_PIPE_ERR2_EID: + id: 54 + type_remaps: + CFE_SB_MsgId_t: uint16 + CFE_SB_PipeId_t: uint8 + msg_def_overrides: + - parent: CFE_SB_WriteFileInfoCmd_Payload_t + member: Filename + type: string + - parent: CFE_SB_RoutingFileEntry_t + member: State + type: enumeration + enumerations: + INACTIVE: 0 + ACTIVE: 1 + - parent: CFE_SB_RoutingFileEntry_t + member: AppName + type: string + - parent: CFE_SB_RoutingFileEntry_t + member: PipeName + type: string + - parent: CFE_SB_SubRprtMsg_Payload_t + member: SubType + type: enumeration + enumerations: + SUBSCRIPTION: 0 + UNSUBSCRIPTION: 1 + telemetry: + CFE_SB_HK_TLM_MID: + msgID: 2065 + struct: CFE_SB_HKMsg_t + CFE_SB_STATS_TLM_MID: + msgID: 2070 + struct: CFE_SB_StatMsg_t + CFE_SB_ALLSUBS_TLM_MID: + msgID: 2073 + struct: CFE_SB_PrevSubMsg_t + CFE_SB_ONESUB_TLM_MID: + msgID: 2074 + struct: CFE_SB_SubRprtMsg_t + commands: + CFE_SB_CMD_MID: + msgID: 6145 + commands: + Noop: + cc: 0 + struct: CFE_SB_CmdHdr_t + Reset: + cc: 1 + struct: CFE_SB_CmdHdr_t + SendStats: + cc: 2 + struct: CFE_SB_CmdHdr_t + WriteRouteInfo: + cc: 3 + struct: CFE_SB_WriteFileInfoCmd_t + EnableRoute: + cc: 4 + struct: CFE_SB_EnRoutCmd_t + DisableRoute: + cc: 5 + struct: CFE_SB_EnRoutCmd_t + WritePipeInfo: + cc: 7 + struct: CFE_SB_WriteFileInfoCmd_t + WriteMapInfo: + cc: 8 + struct: CFE_SB_WriteFileInfoCmd_t + EnableSubReport: + cc: 9 + struct: CFE_SB_CmdHdr_t + DisableSubReport: + cc: 10 + struct: CFE_SB_CmdHdr_t + SendPrevSubs: + cc: 11 + struct: CFE_SB_CmdHdr_t + CFE_SB_SEND_HK_MID: + msgID: 6151 + commands: + SendHK: + cc: 0 + struct: CFE_SB_CmdHdr_t + perfids: + CFE_SB_MAIN_PERF_ID: + id: 4 + CFE_SB_MSG_LIM_PERF_ID: + id: 5 + CFE_SB_PIPE_OFLOW_PERF_ID: + id: 27 + config: + CFE_SB_TIME_32_16_SUBS: + name: CFE_SB_TIME_32_16_SUBS + value: 1 + CFE_SB_TIME_32_32_SUBS: + name: CFE_SB_TIME_32_32_SUBS + value: 2 + CFE_SB_TIME_32_32_M_20: + name: CFE_SB_TIME_32_32_M_20 + value: 3 + CFE_SB_PACKET_TIME_FORMAT: + name: CFE_SB_PACKET_TIME_FORMAT + value: CFE_SB_TIME_32_16_SUBS + CFE_SB_MAX_SB_MSG_SIZE: + name: CFE_SB_MAX_SB_MSG_SIZE + value: 32768 + CFE_SB_CMD_MSG: + name: CFE_SB_CMD_MSG + value: 3 + CFE_SB_SEND_HK_MSG: + name: CFE_SB_SEND_HK_MSG + value: 11 + CFE_SB_HK_TLM_MSG: + name: CFE_SB_HK_TLM_MSG + value: 3 + CFE_SB_STATS_TLM_MSG: + name: CFE_SB_STATS_TLM_MSG + value: 10 + CFE_SB_ALLSUBS_TLM_MSG: + name: CFE_SB_ALLSUBS_TLM_MSG + value: 13 + CFE_SB_ONESUB_TLM_MSG: + name: CFE_SB_ONESUB_TLM_MSG + value: 14 + CFE_SB_MAX_MSG_IDS: + name: CFE_SB_MAX_MSG_IDS + value: 256 + CFE_SB_MAX_PIPES: + name: CFE_SB_MAX_PIPES + value: 255 + CFE_SB_MAX_DEST_PER_PKT: + name: CFE_SB_MAX_DEST_PER_PKT + value: 16 + CFE_SB_DEFAULT_MSG_LIMIT: + name: CFE_SB_DEFAULT_MSG_LIMIT + value: 4 + CFE_SB_BUF_MEMORY_BYTES: + name: CFE_SB_BUF_MEMORY_BYTES + value: 524288 + CFE_SB_MAX_PIPE_DEPTH: + name: CFE_SB_MAX_PIPE_DEPTH + value: 256 + CFE_SB_HIGHEST_VALID_MSGID: + name: CFE_SB_HIGHEST_VALID_MSGID + value: 8191 + CFE_SB_DEFAULT_ROUTING_FILENAME: + name: CFE_SB_DEFAULT_ROUTING_FILENAME + value: /ram/cfe_sb_route.dat + CFE_SB_DEFAULT_PIPE_FILENAME: + name: CFE_SB_DEFAULT_PIPE_FILENAME + value: /ram/cfe_sb_pipe.dat + CFE_SB_DEFAULT_MAP_FILENAME: + name: CFE_SB_DEFAULT_MAP_FILENAME + value: /ram/cfe_sb_msgmap.dat + CFE_SB_FILTERED_EVENT1: + name: CFE_SB_FILTERED_EVENT1 + value: CFE_SB_SEND_NO_SUBS_EID + CFE_SB_FILTER_MASK1: + name: CFE_SB_FILTER_MASK1 + value: CFE_EVS_FIRST_4_STOP + CFE_SB_FILTERED_EVENT2: + name: CFE_SB_FILTERED_EVENT2 + value: CFE_SB_DUP_SUBSCRIP_EID + CFE_SB_FILTER_MASK2: + name: CFE_SB_FILTER_MASK2 + value: CFE_EVS_FIRST_4_STOP + CFE_SB_FILTERED_EVENT3: + name: CFE_SB_FILTERED_EVENT3 + value: CFE_SB_MSGID_LIM_ERR_EID + CFE_SB_FILTER_MASK3: + name: CFE_SB_FILTER_MASK3 + value: CFE_EVS_FIRST_16_STOP + CFE_SB_FILTERED_EVENT4: + name: CFE_SB_FILTERED_EVENT4 + value: CFE_SB_Q_FULL_ERR_EID + CFE_SB_FILTER_MASK4: + name: CFE_SB_FILTER_MASK4 + value: CFE_EVS_FIRST_16_STOP + CFE_SB_FILTERED_EVENT5: + name: CFE_SB_FILTERED_EVENT5 + value: 0 + CFE_SB_FILTER_MASK5: + name: CFE_SB_FILTER_MASK5 + value: CFE_EVS_NO_FILTER + CFE_SB_FILTERED_EVENT6: + name: CFE_SB_FILTERED_EVENT6 + value: 0 + CFE_SB_FILTER_MASK6: + name: CFE_SB_FILTER_MASK6 + value: CFE_EVS_NO_FILTER + CFE_SB_FILTERED_EVENT7: + name: CFE_SB_FILTERED_EVENT7 + value: 0 + CFE_SB_FILTER_MASK7: + name: CFE_SB_FILTER_MASK7 + value: CFE_EVS_NO_FILTER + CFE_SB_FILTERED_EVENT8: + name: CFE_SB_FILTERED_EVENT8 + value: 0 + CFE_SB_FILTER_MASK8: + name: CFE_SB_FILTER_MASK8 + value: CFE_EVS_NO_FILTER + CFE_SB_MEM_BLOCK_SIZE_01: + name: CFE_SB_MEM_BLOCK_SIZE_01 + value: 8 + CFE_SB_MEM_BLOCK_SIZE_02: + name: CFE_SB_MEM_BLOCK_SIZE_02 + value: 16 + CFE_SB_MEM_BLOCK_SIZE_03: + name: CFE_SB_MEM_BLOCK_SIZE_03 + value: 20 + CFE_SB_MEM_BLOCK_SIZE_04: + name: CFE_SB_MEM_BLOCK_SIZE_04 + value: 36 + CFE_SB_MEM_BLOCK_SIZE_05: + name: CFE_SB_MEM_BLOCK_SIZE_05 + value: 64 + CFE_SB_MEM_BLOCK_SIZE_06: + name: CFE_SB_MEM_BLOCK_SIZE_06 + value: 96 + CFE_SB_MEM_BLOCK_SIZE_07: + name: CFE_SB_MEM_BLOCK_SIZE_07 + value: 128 + CFE_SB_MEM_BLOCK_SIZE_08: + name: CFE_SB_MEM_BLOCK_SIZE_08 + value: 160 + CFE_SB_MEM_BLOCK_SIZE_09: + name: CFE_SB_MEM_BLOCK_SIZE_09 + value: 256 + CFE_SB_MEM_BLOCK_SIZE_10: + name: CFE_SB_MEM_BLOCK_SIZE_10 + value: 512 + CFE_SB_MEM_BLOCK_SIZE_11: + name: CFE_SB_MEM_BLOCK_SIZE_11 + value: 1024 + CFE_SB_MEM_BLOCK_SIZE_12: + name: CFE_SB_MEM_BLOCK_SIZE_12 + value: 2048 + CFE_SB_MEM_BLOCK_SIZE_13: + name: CFE_SB_MEM_BLOCK_SIZE_13 + value: 4096 + CFE_SB_MEM_BLOCK_SIZE_14: + name: CFE_SB_MEM_BLOCK_SIZE_14 + value: 8192 + CFE_SB_MEM_BLOCK_SIZE_15: + name: CFE_SB_MEM_BLOCK_SIZE_15 + value: 16384 + CFE_SB_MEM_BLOCK_SIZE_16: + name: CFE_SB_MEM_BLOCK_SIZE_16 + value: 32768 + CFE_SB_MAX_BLOCK_SIZE: + name: CFE_SB_MAX_BLOCK_SIZE + value: CFE_SB_MAX_SB_MSG_SIZE + 40 + CFE_SB_DEFAULT_REPORT_SENDER: + name: CFE_SB_DEFAULT_REPORT_SENDER + value: 1 + CFE_SB_START_TASK_PRIORITY: + name: CFE_SB_START_TASK_PRIORITY + value: 64 + CFE_SB_START_TASK_STACK_SIZE: + name: CFE_SB_START_TASK_STACK_SIZE + value: CFE_ES_DEFAULT_STACK_SIZE + CFE_SB_START_TASK_FLAGS: + name: CFE_SB_START_TASK_FLAGS + value: OS_ENABLE_CORE_0 + cfe_tbl: + short_name: cfe_tbl + long_name: Core Flight Executive - Table Services + events: + CFE_TBL_INIT_INF_EID: + id: 1 + CFE_TBL_NOOP_INF_EID: + id: 10 + CFE_TBL_RESET_INF_EID: + id: 11 + CFE_TBL_FILE_LOADED_INF_EID: + id: 12 + CFE_TBL_OVERWRITE_DUMP_INF_EID: + id: 13 + CFE_TBL_WRITE_DUMP_INF_EID: + id: 14 + CFE_TBL_OVERWRITE_REG_DUMP_INF_EID: + id: 15 + CFE_TBL_VAL_REQ_MADE_INF_EID: + id: 16 + CFE_TBL_LOAD_PEND_REQ_INF_EID: + id: 17 + CFE_TBL_TLM_REG_CMD_INF_EID: + id: 18 + CFE_TBL_LOAD_ABORT_INF_EID: + id: 21 + CFE_TBL_WRITE_REG_DUMP_INF_EID: + id: 22 + CFE_TBL_ASSUMED_VALID_INF_EID: + id: 23 + CFE_TBL_LOAD_SUCCESS_INF_EID: + id: 35 + CFE_TBL_VALIDATION_INF_EID: + id: 36 + CFE_TBL_UPDATE_SUCCESS_INF_EID: + id: 37 + CFE_TBL_CDS_DELETED_INFO_EID: + id: 38 + CFE_TBL_MID_ERR_EID: + id: 50 + CFE_TBL_CC1_ERR_EID: + id: 51 + CFE_TBL_LEN_ERR_EID: + id: 52 + CFE_TBL_FILE_ACCESS_ERR_EID: + id: 53 + CFE_TBL_FILE_STD_HDR_ERR_EID: + id: 54 + CFE_TBL_FILE_TBL_HDR_ERR_EID: + id: 55 + CFE_TBL_FAIL_HK_SEND_ERR_EID: + id: 56 + CFE_TBL_NO_SUCH_TABLE_ERR_EID: + id: 57 + CFE_TBL_FILE_TYPE_ERR_EID: + id: 58 + CFE_TBL_FILE_SUBTYPE_ERR_EID: + id: 59 + CFE_TBL_NO_WORK_BUFFERS_ERR_EID: + id: 60 + CFE_TBL_INTERNAL_ERROR_ERR_EID: + id: 61 + CFE_TBL_CREATING_DUMP_FILE_ERR_EID: + id: 62 + CFE_TBL_WRITE_CFE_HDR_ERR_EID: + id: 63 + CFE_TBL_WRITE_TBL_HDR_ERR_EID: + id: 64 + CFE_TBL_WRITE_TBL_IMG_ERR_EID: + id: 65 + CFE_TBL_NO_INACTIVE_BUFFER_ERR_EID: + id: 66 + CFE_TBL_TOO_MANY_VALIDATIONS_ERR_EID: + id: 67 + CFE_TBL_WRITE_TBL_REG_ERR_EID: + id: 68 + CFE_TBL_LOAD_ABORT_ERR_EID: + id: 69 + CFE_TBL_ACTIVATE_ERR_EID: + id: 70 + CFE_TBL_FILE_INCOMPLETE_ERR_EID: + id: 71 + CFE_TBL_LOAD_EXCEEDS_SIZE_ERR_EID: + id: 72 + CFE_TBL_ZERO_LENGTH_LOAD_ERR_EID: + id: 73 + CFE_TBL_PARTIAL_LOAD_ERR_EID: + id: 74 + CFE_TBL_FILE_TOO_BIG_ERR_EID: + id: 75 + CFE_TBL_TOO_MANY_DUMPS_ERR_EID: + id: 76 + CFE_TBL_DUMP_PENDING_ERR_EID: + id: 77 + CFE_TBL_ACTIVATE_DUMP_ONLY_ERR_EID: + id: 78 + CFE_TBL_LOADING_A_DUMP_ONLY_ERR_EID: + id: 79 + CFE_TBL_ILLEGAL_BUFF_PARAM_ERR_EID: + id: 80 + CFE_TBL_UNVALIDATED_ERR_EID: + id: 81 + CFE_TBL_IN_REGISTRY_ERR_EID: + id: 82 + CFE_TBL_NOT_CRITICAL_TBL_ERR_EID: + id: 83 + CFE_TBL_NOT_IN_CRIT_REG_ERR_EID: + id: 84 + CFE_TBL_CDS_NOT_FOUND_ERR_EID: + id: 85 + CFE_TBL_CDS_DELETE_ERR_EID: + id: 86 + CFE_TBL_CDS_OWNER_ACTIVE_ERR_EID: + id: 87 + CFE_TBL_LOADING_PENDING_ERR_EID: + id: 88 + CFE_TBL_FAIL_NOTIFY_SEND_ERR_EID: + id: 89 + CFE_TBL_REGISTER_ERR_EID: + id: 90 + CFE_TBL_SHARE_ERR_EID: + id: 91 + CFE_TBL_UNREGISTER_ERR_EID: + id: 92 + CFE_TBL_LOAD_ERR_EID: + id: 93 + CFE_TBL_LOAD_TYPE_ERR_EID: + id: 94 + CFE_TBL_UPDATE_ERR_EID: + id: 95 + CFE_TBL_VALIDATION_ERR_EID: + id: 96 + CFE_TBL_SPACECRAFT_ID_ERR_EID: + id: 97 + CFE_TBL_PROCESSOR_ID_ERR_EID: + id: 98 + msg_def_overrides: + - parent: CFE_TBL_LoadCmd_Payload_t + member: LoadFilename + type: string + - parent: CFE_TBL_DumpCmd_Payload_t + member: ActiveTblFlag + type: enumeration + enumerations: + INACTIVE_BUFFER: 0 + ACTIVE_BUFFER: 1 + - parent: CFE_TBL_DumpCmd_Payload_t + member: TableName + type: string + - parent: CFE_TBL_DumpCmd_Payload_t + member: DumpFilename + type: string + - parent: CFE_TBL_ValidateCmd_Payload_t + member: ActiveTblFlag + type: enumeration + enumerations: + INACTIVE_BUFFER: 0 + ACTIVE_BUFFER: 1 + - parent: CFE_TBL_ValidateCmd_Payload_t + member: TableName + type: string + - parent: CFE_TBL_ActivateCmd_Payload_t + member: TableName + type: string + - parent: CFE_TBL_DumpRegCmd_Payload_t + member: DumpFilename + type: string + - parent: CFE_TBL_TlmRegCmd_Payload_t + member: TableName + type: string + - parent: CFE_TBL_DelCDSCmd_Payload_t + member: TableName + type: string + - parent: CFE_TBL_AbortLdCmd_Payload_t + member: TableName + type: string + - parent: CFE_TBL_HkPacket_Payload_t + member: LastValTableName + type: string + - parent: CFE_TBL_HkPacket_Payload_t + member: LastUpdatedTbl + type: string + - parent: CFE_TBL_HkPacket_Payload_t + member: LastFileLoaded + type: string + - parent: CFE_TBL_HkPacket_Payload_t + member: LastFileDumped + type: string + - parent: CFE_TBL_HkPacket_Payload_t + member: LastTableLoaded + type: string + - parent: CFE_TBL_TblRegPacket_Payload_t + member: Name + type: string + - parent: CFE_TBL_TblRegPacket_Payload_t + member: LastFileLoaded + type: string + - parent: CFE_TBL_TblRegPacket_Payload_t + member: OwnerAppName + type: string + telemetry: + CFE_TBL_HK_TLM_MID: + msgID: 6146 + struct: CFE_TBL_HkPacket_t + CFE_TBL_REG_TLM_MID: + msgID: 2072 + struct: CFE_TBL_TblRegPacket_t + commands: + CFE_TBL_CMD_MID: + msgID: 2050 + commands: + Noop: + cc: 0 + struct: CFE_SB_CmdHdr_t + Reset: + cc: 1 + struct: CFE_SB_CmdHdr_t + Load: + cc: 2 + struct: CFE_TBL_LoadCmd_t + Dump: + cc: 3 + struct: CFE_TBL_DumpCmd_t + Validate: + cc: 4 + struct: CFE_TBL_ValidateCmd_t + Activate: + cc: 5 + struct: CFE_TBL_ActivateCmd_t + DumpReg: + cc: 6 + struct: CFE_TBL_DumpRegCmd_t + TlmReg: + cc: 7 + struct: CFE_TBL_TlmRegCmd_t + DelCDS: + cc: 8 + struct: CFE_TBL_DelCDSCmd_t + AbortLoad: + cc: 9 + struct: CFE_TBL_AbortLdCmd_t + CFE_TBL_SEND_HK_MID: + msgID: 6152 + commands: + SendHK: + cc: 0 + struct: CFE_SB_CmdHdr_t + perfids: {} + config: + CFE_TBL_MAX_NAME_LENGTH: + name: CFE_TBL_MAX_NAME_LENGTH + value: 16 + CFE_TBL_CMD_MSG: + name: CFE_TBL_CMD_MSG + value: 4 + CFE_TBL_SEND_HK_MSG: + name: CFE_TBL_SEND_HK_MSG + value: 12 + CFE_TBL_HK_TLM_MSG: + name: CFE_TBL_HK_TLM_MSG + value: 4 + CFE_TBL_REG_TLM_MSG: + name: CFE_TBL_REG_TLM_MSG + value: 12 + CFE_TBL_START_TASK_PRIORITY: + name: CFE_TBL_START_TASK_PRIORITY + value: 70 + CFE_TBL_START_TASK_STACK_SIZE: + name: CFE_TBL_START_TASK_STACK_SIZE + value: CFE_ES_DEFAULT_STACK_SIZE + CFE_TBL_START_TASK_FLAGS: + name: CFE_TBL_START_TASK_FLAGS + value: OS_ENABLE_CORE_0 + CFE_TBL_BUF_MEMORY_BYTES: + name: CFE_TBL_BUF_MEMORY_BYTES + value: 1048576 + CFE_TBL_MAX_DBL_TABLE_SIZE: + name: CFE_TBL_MAX_DBL_TABLE_SIZE + value: 65535 + CFE_TBL_MAX_SNGL_TABLE_SIZE: + name: CFE_TBL_MAX_SNGL_TABLE_SIZE + value: 65535 + CFE_TBL_MAX_NUM_TABLES: + name: CFE_TBL_MAX_NUM_TABLES + value: 128 + CFE_TBL_MAX_CRITICAL_TABLES: + name: CFE_TBL_MAX_CRITICAL_TABLES + value: 32 + CFE_TBL_MAX_NUM_HANDLES: + name: CFE_TBL_MAX_NUM_HANDLES + value: 256 + CFE_TBL_MAX_SIMULTANEOUS_LOADS: + name: CFE_TBL_MAX_SIMULTANEOUS_LOADS + value: 4 + CFE_TBL_MAX_NUM_VALIDATIONS: + name: CFE_TBL_MAX_NUM_VALIDATIONS + value: 10 + CFE_TBL_DEFAULT_REG_DUMP_FILE: + name: CFE_TBL_DEFAULT_REG_DUMP_FILE + value: /ram/cfe_tbl_reg.log + CFE_TBL_VALID_SCID_COUNT: + name: CFE_TBL_VALID_SCID_COUNT + value: 0 + CFE_TBL_VALID_SCID_1: + name: CFE_TBL_VALID_SCID_1 + value: CFE_SPACECRAFT_ID + CFE_TBL_VALID_SCID_2: + name: CFE_TBL_VALID_SCID_2 + value: CFE_TBL_U32FROM4CHARS(a, b, c, d) + CFE_TBL_VALID_PRID_COUNT: + name: CFE_TBL_VALID_PRID_COUNT + value: 0 + CFE_TBL_VALID_PRID_1: + name: CFE_TBL_VALID_PRID_1 + value: CFE_CPU_ID + CFE_TBL_VALID_PRID_2: + name: CFE_TBL_VALID_PRID_2 + value: CFE_TBL_U32FROM4CHARS(a, b, c, d) + CFE_TBL_VALID_PRID_3: + name: CFE_TBL_VALID_PRID_3 + value: 0 + CFE_TBL_VALID_PRID_4: + name: CFE_TBL_VALID_PRID_4 + value: 0 + cfe_time: + short_name: cfe_time + long_name: Core Flight Executive - Time Services + events: + CFE_TIME_INIT_EID: + id: 1 + CFE_TIME_NOOP_EID: + id: 4 + CFE_TIME_RESET_EID: + id: 5 + CFE_TIME_DIAG_EID: + id: 6 + CFE_TIME_STATE_EID: + id: 7 + CFE_TIME_SOURCE_EID: + id: 8 + CFE_TIME_SIGNAL_EID: + id: 9 + CFE_TIME_DELAY_EID: + id: 11 + CFE_TIME_TIME_EID: + id: 12 + CFE_TIME_MET_EID: + id: 13 + CFE_TIME_STCF_EID: + id: 14 + CFE_TIME_DELTA_EID: + id: 15 + CFE_TIME_1HZ_EID: + id: 16 + CFE_TIME_LEAPS_EID: + id: 17 + CFE_TIME_FLY_ON_EID: + id: 20 + CFE_TIME_FLY_OFF_EID: + id: 21 + CFE_TIME_EXIT_ERR_EID: + id: 25 + CFE_TIME_ID_ERR_EID: + id: 26 + CFE_TIME_CC_ERR_EID: + id: 27 + CFE_TIME_STATE_ERR_EID: + id: 30 + CFE_TIME_SOURCE_ERR_EID: + id: 31 + CFE_TIME_SIGNAL_ERR_EID: + id: 32 + CFE_TIME_DELAY_ERR_EID: + id: 33 + CFE_TIME_TIME_ERR_EID: + id: 34 + CFE_TIME_MET_ERR_EID: + id: 35 + CFE_TIME_STCF_ERR_EID: + id: 36 + CFE_TIME_DELTA_ERR_EID: + id: 37 + CFE_TIME_1HZ_ERR_EID: + id: 38 + CFE_TIME_SOURCE_CFG_EID: + id: 40 + CFE_TIME_SIGNAL_CFG_EID: + id: 41 + CFE_TIME_DELAY_CFG_EID: + id: 42 + CFE_TIME_TIME_CFG_EID: + id: 43 + CFE_TIME_MET_CFG_EID: + id: 44 + CFE_TIME_STCF_CFG_EID: + id: 45 + CFE_TIME_LEAPS_CFG_EID: + id: 46 + CFE_TIME_DELTA_CFG_EID: + id: 47 + CFE_TIME_1HZ_CFG_EID: + id: 48 + msg_def_overrides: + - parent: CFE_TIME_SignalCmd_Payload_t + member: ToneSource + type: string + - parent: CFE_TIME_StateCmd_Payload_t + member: ClockState + type: enumeration + enumerations: + INVALID: -1 + VALID: 0 + FLYWHEEL: 1 + - parent: CFE_TIME_SourceCmd_Payload_t + member: TimeSource + type: enumeration + enumerations: + INTERN: 1 + EXTERN: 2 + - parent: CFE_TIME_SignalCmd_Payload_t + member: ToneSource + type: enumeration + enumerations: + PRIMARY: 1 + REDUNDANT: 2 + - parent: CFE_TIME_DiagPacket_Payload_t + member: ClockStateAPI + type: enumeration + enumerations: + INVALID: -1 + VALID: 0 + FLYWHEEL: 1 + - parent: CFE_TIME_DiagPacket_Payload_t + member: ClockSetState + type: enumeration + enumerations: + NOT_SET: 0 + WAS_SET: 1 + - parent: CFE_TIME_DiagPacket_Payload_t + member: ClockFlyState + type: enumeration + enumerations: + NO_FLY: 0 + IS_FLY: 1 + - parent: CFE_TIME_DiagPacket_Payload_t + member: ClockSource + type: enumeration + enumerations: + INTERN: 1 + EXTERN: 2 + - parent: CFE_TIME_DiagPacket_Payload_t + member: ClockSignal + type: enumeration + enumerations: + PRIMARY: 1 + REDUNDANT: 2 + - parent: CFE_TIME_DiagPacket_Payload_t + member: ServerFlyState + type: enumeration + enumerations: + NO_FLY: 0 + IS_FLY: 1 + - parent: CFE_TIME_DiagPacket_Payload_t + member: OneTimeDirection + type: enumeration + enumerations: + ADD: 1 + SUB: 2 + - parent: CFE_TIME_DiagPacket_Payload_t + member: OneHzDirection + type: enumeration + enumerations: + ADD: 1 + SUB: 2 + - parent: CFE_TIME_DiagPacket_Payload_t + member: DelayDirection + type: enumeration + enumerations: + ADD: 1 + SUB: 2 + - parent: CFE_TIME_DiagPacket_Payload_t + member: DataStoreStatus + type: enumeration + enumerations: + ERROR: 1 + BAD: 2 + NEW: 3 + EXISTING: 4 + telemetry: + CFE_TIME_DIAG_TLM_MID: + msgID: 2050 + struct: CFE_TIME_DiagPacket_t + CFE_TIME_HK_TLM_MID: + msgID: 2067 + struct: CFE_TIME_HkPacket_t + commands: + CFE_TIME_CMD_MID: + msgID: 6147 + commands: + Noop: + cc: 0 + struct: CFE_TIME_NoArgsCmd_t + Reset: + cc: 1 + struct: CFE_TIME_NoArgsCmd_t + SendDiag: + cc: 2 + struct: CFE_TIME_NoArgsCmd_t + SetSource: + cc: 3 + struct: CFE_TIME_SourceCmd_t + SetState: + cc: 4 + struct: CFE_TIME_StateCmd_t + AddDelay: + cc: 5 + struct: CFE_TIME_TimeCmd_t + SubDelay: + cc: 6 + struct: CFE_TIME_TimeCmd_t + SetTime: + cc: 7 + struct: CFE_TIME_TimeCmd_t + SetMET: + cc: 8 + struct: CFE_TIME_TimeCmd_t + SetSTCF: + cc: 9 + struct: CFE_TIME_TimeCmd_t + SetLeapSeconds: + cc: 10 + struct: CFE_TIME_TimeCmd_t + AddAdjust: + cc: 11 + struct: CFE_TIME_TimeCmd_t + SubAdjust: + cc: 12 + struct: CFE_TIME_TimeCmd_t + Add1HzAdjust: + cc: 13 + struct: CFE_TIME_1HzAdjCmd_t + Sub1HzAdjust: + cc: 14 + struct: CFE_TIME_1HzAdjCmd_t + SetSignal: + cc: 15 + struct: CFE_TIME_SignalCmd_t + CFE_TIME_DATA_CMD_MID: + msgID: 6156 + commands: + ToneData: + cc: 0 + struct: CFE_TIME_ToneDataCmd_t + CFE_TIME_TONE_CMD_MID: + msgID: 6154 + commands: + ToneSignal: + cc: 0 + struct: CFE_TIME_ToneSignalCmd_t + CFE_TIME_FAKE_CMD_MID: + msgID: 6157 + commands: + FakeTone: + cc: 0 + struct: CFE_TIME_FakeToneCmd_t + CFE_TIME_1HZ_CMD_MID: + msgID: 6155 + commands: + 1HZCmd: + cc: 0 + struct: CFE_TIME_1HzCmd_t + CFE_TIME_SEND_CMD_MID: + msgID: 6158 + commands: + SendCmd: + cc: 0 + struct: CFE_TIME_NoArgsCmd_t + CFE_TIME_SEND_HK_MID: + msgID: 6153 + perfids: + CFE_TIME_MAIN_PERF_ID: + id: 6 + CFE_TIME_TONE1HZISR_PERF_ID: + id: 7 + CFE_TIME_LOCAL1HZISR_PERF_ID: + id: 8 + CFE_TIME_SENDMET_PERF_ID: + id: 9 + CFE_TIME_LOCAL1HZTASK_PERF_ID: + id: 10 + CFE_TIME_TONE1HZTASK_PERF_ID: + id: 11 + config: + CFE_TIME_CFG_DEFAULT_TAI: + name: CFE_TIME_CFG_DEFAULT_TAI + value: true + CFE_TIME_CFG_DEFAULT_UTC: + name: CFE_TIME_CFG_DEFAULT_UTC + value: false + CFE_TIME_CFG_FAKE_TONE: + name: CFE_TIME_CFG_FAKE_TONE + value: true + CFE_TIME_AT_TONE_WAS: + name: CFE_TIME_AT_TONE_WAS + value: true + CFE_TIME_AT_TONE_WILL_BE: + name: CFE_TIME_AT_TONE_WILL_BE + value: false + CFE_TIME_MIN_ELAPSED: + name: CFE_TIME_MIN_ELAPSED + value: 0 + CFE_TIME_MAX_ELAPSED: + name: CFE_TIME_MAX_ELAPSED + value: 200000 + CFE_TIME_DEF_MET_SECS: + name: CFE_TIME_DEF_MET_SECS + value: 1000 + CFE_TIME_DEF_MET_SUBS: + name: CFE_TIME_DEF_MET_SUBS + value: 0 + CFE_TIME_DEF_STCF_SECS: + name: CFE_TIME_DEF_STCF_SECS + value: 1000000 + CFE_TIME_DEF_STCF_SUBS: + name: CFE_TIME_DEF_STCF_SUBS + value: 0 + CFE_TIME_DEF_LEAPS: + name: CFE_TIME_DEF_LEAPS + value: 32 + CFE_TIME_DEF_DELAY_SECS: + name: CFE_TIME_DEF_DELAY_SECS + value: 0 + CFE_TIME_DEF_DELAY_SUBS: + name: CFE_TIME_DEF_DELAY_SUBS + value: 1000 + CFE_TIME_EPOCH_YEAR: + name: CFE_TIME_EPOCH_YEAR + value: 1980 + CFE_TIME_EPOCH_DAY: + name: CFE_TIME_EPOCH_DAY + value: 1 + CFE_TIME_EPOCH_HOUR: + name: CFE_TIME_EPOCH_HOUR + value: 0 + CFE_TIME_EPOCH_MINUTE: + name: CFE_TIME_EPOCH_MINUTE + value: 0 + CFE_TIME_EPOCH_SECOND: + name: CFE_TIME_EPOCH_SECOND + value: 0 + CFE_TIME_FS_FACTOR: + name: CFE_TIME_FS_FACTOR + value: 789004800 + CFE_TIME_CMD_MSG: + name: CFE_TIME_CMD_MSG + value: 5 + CFE_TIME_SEND_HK_MSG: + name: CFE_TIME_SEND_HK_MSG + value: 13 + CFE_TIME_TONE_CMD_MSG: + name: CFE_TIME_TONE_CMD_MSG + value: 16 + CFE_TIME_1HZ_CMD_MSG: + name: CFE_TIME_1HZ_CMD_MSG + value: 17 + CFE_TIME_DATA_CMD_MSG: + name: CFE_TIME_DATA_CMD_MSG + value: 0 + CFE_TIME_FAKE_CMD_MSG: + name: CFE_TIME_FAKE_CMD_MSG + value: 1 + CFE_TIME_SEND_CMD_MSG: + name: CFE_TIME_SEND_CMD_MSG + value: 2 + CFE_TIME_HK_TLM_MSG: + name: CFE_TIME_HK_TLM_MSG + value: 5 + CFE_TIME_DIAG_TLM_MSG: + name: CFE_TIME_DIAG_TLM_MSG + value: 6 + CFE_TIME_CFG_SERVER: + name: CFE_TIME_CFG_SERVER + value: true + CFE_TIME_CFG_CLIENT: + name: CFE_TIME_CFG_CLIENT + value: false + CFE_TIME_CFG_VIRTUAL: + name: CFE_TIME_CFG_VIRTUAL + value: true + CFE_TIME_CFG_SIGNAL: + name: CFE_TIME_CFG_SIGNAL + value: false + CFE_TIME_CFG_SOURCE: + name: CFE_TIME_CFG_SOURCE + value: false + CFE_TIME_CFG_SRC_MET: + name: CFE_TIME_CFG_SRC_MET + value: false + CFE_TIME_CFG_SRC_GPS: + name: CFE_TIME_CFG_SRC_GPS + value: false + CFE_TIME_CFG_SRC_TIME: + name: CFE_TIME_CFG_SRC_TIME + value: false + CFE_TIME_MAX_DELTA_SECS: + name: CFE_TIME_MAX_DELTA_SECS + value: 0 + CFE_TIME_MAX_DELTA_SUBS: + name: CFE_TIME_MAX_DELTA_SUBS + value: 500000 + CFE_TIME_MAX_LOCAL_SECS: + name: CFE_TIME_MAX_LOCAL_SECS + value: CFE_TIME_MAX_LOCAL_SUBS + CFE_TIME_CFG_TONE_LIMIT: + name: CFE_TIME_CFG_TONE_LIMIT + value: 20000 + CFE_TIME_CFG_START_FLY: + name: CFE_TIME_CFG_START_FLY + value: 2 + CFE_TIME_CFG_LATCH_FLY: + name: CFE_TIME_CFG_LATCH_FLY + value: 8 + CFE_TIME_MAX_NUM_SYNCH_FUNCS: + name: CFE_TIME_MAX_NUM_SYNCH_FUNCS + value: 4 + CFE_TIME_ENA_1HZ_CMD_PKT: + name: CFE_TIME_ENA_1HZ_CMD_PKT + value: true + CFE_TIME_START_TASK_PRIORITY: + name: CFE_TIME_START_TASK_PRIORITY + value: 60 + CFE_TIME_TONE_TASK_PRIORITY: + name: CFE_TIME_TONE_TASK_PRIORITY + value: 25 + CFE_TIME_1HZ_TASK_PRIORITY: + name: CFE_TIME_1HZ_TASK_PRIORITY + value: 25 + CFE_TIME_START_TASK_STACK_SIZE: + name: CFE_TIME_START_TASK_STACK_SIZE + value: CFE_ES_DEFAULT_STACK_SIZE + CFE_TIME_TONE_TASK_STACK_SIZE: + name: CFE_TIME_TONE_TASK_STACK_SIZE + value: 16384 + CFE_TIME_1HZ_TASK_STACK_SIZE: + name: CFE_TIME_1HZ_TASK_STACK_SIZE + value: 16384 + CFE_TIME_START_TASK_FLAGS: + name: CFE_TIME_START_TASK_FLAGS + value: OS_ENABLE_CORE_0 + CFE_TIME_TONE_TASK_FLAGS: + name: CFE_TIME_TONE_TASK_FLAGS + value: OS_ENABLE_CORE_0 + CFE_TIME_1HZ_TASK_FLAGS: + name: CFE_TIME_1HZ_TASK_FLAGS + value: OS_ENABLE_CORE_0 + definition: /home/mbenson/git/airliner/core/base/cfe/wh_design.yaml + osal: + short_name: osal + long_name: Operating System Abstraction Layer + config: + OS_RUNTIME_MANAGER_CMD_QUEUE_NAME: + name: OS_RUNTIME_MANAGER_CMD_QUEUE_NAME + value: OS_RUNTIME_MGR_CMD + OS_RUNTIME_MANAGER_CMD_QUEUE_DEPTH: + name: OS_RUNTIME_MANAGER_CMD_QUEUE_DEPTH + value: 1 + OS_RUNTIME_MANAGER_CMD_TASK_NAME: + name: OS_RUNTIME_MANAGER_CMD_TASK_NAME + value: OS_RUNTIME_MGR_CMD + OS_RUNTIME_MANAGER_CMD_TASK_STACK_SIZE: + name: OS_RUNTIME_MANAGER_CMD_TASK_STACK_SIZE + value: 32535 + OS_RUNTIME_MANAGER_CMD_TASK_PRIORITY: + name: OS_RUNTIME_MANAGER_CMD_TASK_PRIORITY + value: 0 + OS_RUNTIME_MANAGER_EXEC_TASK_NAME: + name: OS_RUNTIME_MANAGER_EXEC_TASK_NAME + value: OS_RUNTIME_MGR_EXEC + OS_RUNTIME_MANAGER_EXEC_TASK_STACK_SIZE: + name: OS_RUNTIME_MANAGER_EXEC_TASK_STACK_SIZE + value: 32535 + OS_RUNTIME_MANAGER_EXEC_TASK_PRIORITY: + name: OS_RUNTIME_MANAGER_EXEC_TASK_PRIORITY + value: 99 + OS_RUNTIME_MANAGER_SEM_NAME: + name: OS_RUNTIME_MANAGER_SEM_NAME + value: OS_RUNTIME_MGR_SEM + OS_MAX_QUEUE_WIDTH: + name: OS_MAX_QUEUE_WIDTH + value: 8 + OS_MAX_QUEUE_DEPTH: + name: OS_MAX_QUEUE_DEPTH + value: 256 + OS_MAX_TASKS: + name: OS_MAX_TASKS + value: 100 + OS_MAX_QUEUES: + name: OS_MAX_QUEUES + value: 255 + OS_MAX_COUNT_SEMAPHORES: + name: OS_MAX_COUNT_SEMAPHORES + value: 100 + OS_MAX_BIN_SEMAPHORES: + name: OS_MAX_BIN_SEMAPHORES + value: 100 + OS_MAX_MUTEXES: + name: OS_MAX_MUTEXES + value: 100 + OS_MAX_TIMEOUTS: + name: OS_MAX_TIMEOUTS + value: OS_MAX_QUEUES+OS_MAX_COUNT_SEMAPHORES+OS_MAX_BIN_SEMAPHORES + OS_MAX_PATH_LEN: + name: OS_MAX_PATH_LEN + value: 64 + OS_MAX_LOCAL_PATH_LEN: + name: OS_MAX_LOCAL_PATH_LEN + value: OS_MAX_PATH_LEN + OS_FS_PHYS_NAME_LEN + OS_MAX_API_NAME: + name: OS_MAX_API_NAME + value: 40 + OS_MAX_FILE_NAME: + name: OS_MAX_FILE_NAME + value: 20 + OS_BUFFER_SIZE: + name: OS_BUFFER_SIZE + value: 4000 + OS_BUFFER_MSG_DEPTH: + name: OS_BUFFER_MSG_DEPTH + value: 100 + OS_UTILITY_TASK_ON: + name: OS_UTILITY_TASK_ON + value: true + OS_UTILITYTASK_STACK_SIZE: + name: OS_UTILITYTASK_STACK_SIZE + value: 2048 + OS_UTILITYTASK_PRIORITY: + name: OS_UTILITYTASK_PRIORITY + value: 245 + OS_MAX_CMD_LEN: + name: OS_MAX_CMD_LEN + value: 1000 + OS_INCLUDE_NETWORK: + name: OS_INCLUDE_NETWORK + value: true + OS_MAX_NUM_OPEN_FILES: + name: OS_MAX_NUM_OPEN_FILES + value: 50 + OS_SHELL_CMD_INPUT_FILE_NAME: + name: OS_SHELL_CMD_INPUT_FILE_NAME + value: /ram/OS_ShellCmd.in + OSAL_SOCKET_QUEUE: + name: OSAL_SOCKET_QUEUE + value: false + OS_INCLUDE_MODULE_LOADER: + name: OS_INCLUDE_MODULE_LOADER + value: true + OS_MAX_MODULES: + name: OS_MAX_MODULES + value: 64 + OS_MAX_SYM_LEN: + name: OS_MAX_SYM_LEN + value: 64 + OS_MAX_TIMERS: + name: OS_MAX_TIMERS + value: 5 + definition: /home/mbenson/git/airliner/core/osal/posix-fast/wh_design.yaml + elf_files: + - /home/mbenson/git/airliner/build/bebop2/sitl/target/target/exe/airliner + ci: + short_name: ci + long_name: Command Ingest + events: + CI_INIT_INF_EID: + id: 1 + CI_CONFIG_TABLE_INF_EID: + id: 2 + CI_CMD_INF_EID: + id: 3 + CI_ERR_EID: + id: 4 + CI_INIT_ERR_EID: + id: 5 + CI_CONFIG_TABLE_ERR_EID: + id: 6 + CI_TIMEOUT_TABLE_ERR_EID: + id: 7 + CI_CMD_ERR_EID: + id: 8 + CI_PIPE_ERR_EID: + id: 9 + CI_MSGID_ERR_EID: + id: 10 + CI_MSGLEN_ERR_EID: + id: 11 + CI_LISTENER_CREATE_CHDTASK_ERR_EID: + id: 12 + CI_CMD_INGEST_ERR_EID: + id: 13 + CI_SOCKET_ERR_EID: + id: 14 + CI_ENA_INF_EID: + id: 15 + CI_CMD_INVALID_EID: + id: 16 + CI_CMD_UNAUTHORIZED_EID: + id: 17 + CI_CMD_AUTH_TIMEOUT_EID: + id: 18 + CI_CMD_AUTH_NOT_REG_EID: + id: 19 + CI_CMD_AUTH_INV_MODE_EID: + id: 20 + CI_CMD_AUTH_INV_STATE_EID: + id: 21 + CI_CMD_AUTHORIZED_EID: + id: 22 + CI_CMD_DEAUTH_NOT_REG_EID: + id: 23 + CI_CMD_DEAUTH_INV_MODE_EID: + id: 24 + CI_CMD_DEAUTH_INV_STATE_EID: + id: 25 + CI_CMD_DEAUTHORIZED_EID: + id: 26 + CI_CMD_REGISTERED_EID: + id: 27 + CI_CMD_ALREADY_REGISTERED_EID: + id: 28 + CI_CMD_DEREGISTERED_EID: + id: 29 + CI_CMD_NOT_REGISTERED_EID: + id: 30 + CI_CMD_REG_ERR_EID: + id: 31 + CI_CMD_UPDT_REG_INVLD_STATE_EI: + id: 32 + CI_CMD_UPDATE_REG_EID: + id: 33 + CI_NO_DECODE_FUNC_EID: + id: 34 + telemetry: + CI_HK_TLM_MID: + msgID: 2098 + struct: CI_HkTlm_t + commands: + CI_CMD_MID: + msgID: 6196 + commands: + Noop: + cc: 0 + struct: CI_NoArgCmd_t + Reset: + cc: 1 + struct: CI_NoArgCmd_t + AuthorizeCmd: + cc: 2 + struct: CI_CmdAuthData_t + DeauthorizeCmd: + cc: 3 + struct: CI_CmdAuthData_t + RegisterCmd: + cc: 4 + struct: CI_CmdRegData_t + DeregisterCmd: + cc: 5 + struct: CI_CmdRegData_t + UpdateCmd: + cc: 6 + struct: CI_CmdRegData_t + CI_PROCESS_TIMEOUTS_MID: + msgID: 6197 + commands: + ProcessTimeouts: + cc: 0 + struct: CI_NoArgCmd_t + CI_SEND_HK_MID: + msgID: 6198 + commands: + SendHK: + cc: 0 + struct: CI_NoArgCmd_t + CI_WAKEUP_MID: + msgID: 6199 + commands: + WakeUp: + cc: 0 + struct: CI_NoArgCmd_t + perfids: + CF_APPMAIN_PERF_ID: + id: 33 + CI_MAIN_TASK_PERF_ID: + id: 34 + CI_SOCKET_RCV_PERF_ID: + id: 35 + config: + CI_SB_TIMEOUT: + name: CI_SB_TIMEOUT + value: CFE_SB_PEND_FOREVER + CI_MISSION_REV: + name: CI_MISSION_REV + value: 0 + CI_SCH_PIPE_DEPTH: + name: CI_SCH_PIPE_DEPTH + value: 2 + CI_SCH_PIPE_NAME: + name: CI_SCH_PIPE_NAME + value: CI_SCH_PIPE + CI_SCH_PIPE_PEND_TIME: + name: CI_SCH_PIPE_PEND_TIME + value: 2000 + CI_SCH_PIPE_WAKEUP_RESERVED: + name: CI_SCH_PIPE_WAKEUP_RESERVED + value: 1 + CI_SCH_PIPE_SEND_HK_RESERVED: + name: CI_SCH_PIPE_SEND_HK_RESERVED + value: 1 + CI_SCH_PIPE_PROC_TIMEOUT_RESERVED: + name: CI_SCH_PIPE_PROC_TIMEOUT_RESERVED + value: 1 + CI_CMD_PIPE_DEPTH: + name: CI_CMD_PIPE_DEPTH + value: 4 + CI_CMD_PIPE_NAME: + name: CI_CMD_PIPE_NAME + value: CI_CMD_PIPE + CI_DATA_PIPE_DEPTH: + name: CI_DATA_PIPE_DEPTH + value: 4 + CI_DATA_PIPE_NAME: + name: CI_DATA_PIPE_NAME + value: CI_DATA_PIPE + CI_CONFIG_TABLE_FILENAME: + name: CI_CONFIG_TABLE_FILENAME + value: /cf/apps/ci_config.tbl + CI_TIMEOUT_TABLE_FILENAME: + name: CI_TIMEOUT_TABLE_FILENAME + value: /cf/apps/ci_timeout.tbl + CI_STARTUP_TIMEOUT_MSEC: + name: CI_STARTUP_TIMEOUT_MSEC + value: 5000 + CI_MAX_ENC_LEN: + name: CI_MAX_ENC_LEN + value: 32768 + CI_INGEST_MODE: + name: CI_INGEST_MODE + value: CI_BHV_OPTIMISTIC + CI_LISTENER_TASK_DELAY: + name: CI_LISTENER_TASK_DELAY + value: 100 + CI_LISTENER_TASK_STACK_SIZE: + name: CI_LISTENER_TASK_STACK_SIZE + value: 160000 + CI_LISTENER_TASK_PRIORITY: + name: CI_LISTENER_TASK_PRIORITY + value: 109 + CI_SERIAL_LISTENER_TASK_STACK_SIZE: + name: CI_SERIAL_LISTENER_TASK_STACK_SIZE + value: 160000 + CI_SERIAL_LISTENER_TASK_PRIORITY: + name: CI_SERIAL_LISTENER_TASK_PRIORITY + value: 112 + CI_MAX_RGST_CMDS: + name: CI_MAX_RGST_CMDS + value: 100 + CI_CHECKSUM_REQUIRED: + name: CI_CHECKSUM_REQUIRED + value: 0 + CI_CMD_MAX_TIMEOUT: + name: CI_CMD_MAX_TIMEOUT + value: 20 + definition: /home/mbenson/git/airliner/apps/ci/wh_design.yaml + elf_files: + - /home/mbenson/git/airliner/build/bebop2/sitl/target/target/exe/cf/apps/CI.so + cf: + short_name: cf + long_name: CFDP File Delivery + events: + CF_INIT_EID: + id: 1 + CF_CC_ERR_EID: + id: 2 + CF_MID_ERR_EID: + id: 3 + CF_CMD_LEN_ERR_EID: + id: 4 + CF_NOOP_CMD_EID: + id: 5 + CF_RESET_CMD_EID: + id: 6 + CF_FILE_IO_ERR1_EID: + id: 7 + CF_CR_PIPE_ERR_EID: + id: 8 + CF_SUB_REQ_ERR_EID: + id: 9 + CF_SUB_CMD_ERR_EID: + id: 10 + CF_RCV_MSG_ERR_EID: + id: 11 + CF_FILE_IO_ERR2_EID: + id: 12 + CF_REMOVE_ERR1_EID: + id: 13 + CF_LOGIC_NAME_ERR_EID: + id: 14 + CF_CFDP_ENGINE_DEB_EID: + id: 15 + CF_CFDP_ENGINE_INFO_EID: + id: 16 + CF_CFDP_ENGINE_WARN_EID: + id: 17 + CF_CFDP_ENGINE_ERR_EID: + id: 18 + CF_FILE_IO_ERR3_EID: + id: 19 + CF_IN_TRANS_OK_EID: + id: 20 + CF_OUT_TRANS_OK_EID: + id: 21 + CF_IN_TRANS_FAILED_EID: + id: 22 + CF_OUT_TRANS_FAILED_EID: + id: 23 + CF_MV_UP_NODE_EID: + id: 24 + CF_ENDIS_AUTO_SUS_CMD_EID: + id: 25 + CF_IND_XACT_SUS_EID: + id: 26 + CF_IND_XACT_RES_EID: + id: 27 + CF_IND_XACT_FAU_EID: + id: 28 + CF_IND_XACT_ABA_EID: + id: 29 + CF_KICKSTART_CMD_EID: + id: 30 + CF_REMOVE_ERR2_EID: + id: 31 + CF_IND_ACK_TIM_EXP_EID: + id: 32 + CF_IND_INA_TIM_EXP_EID: + id: 33 + CF_IND_NACK_TIM_EXP_EID: + id: 34 + CF_IND_UNEXP_TYPE_EID: + id: 35 + CF_FILE_CLOSE_ERR_EID: + id: 36 + CF_MACH_ALLOC_ERR_EID: + id: 37 + CF_PLAYBACK_FILE_EID: + id: 38 + CF_PUT_REQ_ERR1_EID: + id: 39 + CF_PUT_REQ_ERR2_EID: + id: 40 + CF_CFGTBL_REG_ERR_EID: + id: 41 + CF_CFGTBL_LD_ERR_EID: + id: 42 + CF_CFGTBL_MNG_ERR_EID: + id: 43 + CF_CFGTBL_GADR_ERR_EID: + id: 44 + CF_TRANS_SUSPEND_OVRFLW_EID: + id: 45 + CF_FREEZE_CMD_EID: + id: 46 + CF_THAW_CMD_EID: + id: 47 + CF_CARS_CMD_EID: + id: 48 + CF_CARS_ERR1_EID: + id: 49 + CF_SET_MIB_CMD_EID: + id: 50 + CF_GET_MIB_CMD_EID: + id: 51 + CF_SUB_PDUS_ERR_EID: + id: 52 + CF_SND_Q_INFO_EID: + id: 53 + CF_FILEWRITE_ERR_EID: + id: 54 + CF_SUB_WAKE_ERR_EID: + id: 55 + CF_KICKSTART_ERR1_EID: + id: 56 + CF_WR_CMD_ERR1_EID: + id: 57 + CF_WR_CMD_ERR2_EID: + id: 58 + CF_WR_CMD_ERR3_EID: + id: 59 + CF_SND_QUE_ERR1_EID: + id: 60 + CF_SND_TRANS_ERR_EID: + id: 61 + CF_DEQ_NODE_ERR1_EID: + id: 62 + CF_DEQ_NODE_ERR2_EID: + id: 63 + CF_DEQ_NODE_ERR3_EID: + id: 64 + CF_DEQ_NODE_ERR4_EID: + id: 65 + CF_WR_CMD_ERR4_EID: + id: 66 + CF_DEQ_NODE1_EID: + id: 68 + CF_DEQ_NODE2_EID: + id: 69 + CF_PDU_RCV_ERR1_EID: + id: 70 + CF_PDU_RCV_ERR2_EID: + id: 71 + CF_PDU_RCV_ERR3_EID: + id: 72 + CF_HANDSHAKE_ERR1_EID: + id: 73 + CF_SND_TRANS_CMD_EID: + id: 74 + CF_IND_FAU_UNEX_EID: + id: 75 + CF_PB_FILE_ERR1_EID: + id: 76 + CF_PB_FILE_ERR2_EID: + id: 77 + CF_PB_FILE_ERR3_EID: + id: 78 + CF_PB_FILE_ERR4_EID: + id: 79 + CF_PB_FILE_ERR5_EID: + id: 80 + CF_PB_FILE_ERR6_EID: + id: 81 + CF_QDIR_INV_NAME1_EID: + id: 82 + CF_QDIR_INV_NAME2_EID: + id: 83 + CF_MEM_ALLOC_ERR_EID: + id: 84 + CF_MEM_DEALLOC_ERR_EID: + id: 85 + CF_ENA_DQ_CMD_EID: + id: 86 + CF_DQ_CMD_ERR1_EID: + id: 87 + CF_DIS_DQ_CMD_EID: + id: 88 + CF_DQ_CMD_ERR2_EID: + id: 89 + CF_ENA_POLL_CMD1_EID: + id: 90 + CF_ENA_POLL_CMD2_EID: + id: 91 + CF_ENA_POLL_ERR1_EID: + id: 92 + CF_ENA_POLL_ERR2_EID: + id: 93 + CF_DIS_POLL_CMD1_EID: + id: 94 + CF_DIS_POLL_CMD2_EID: + id: 95 + CF_DIS_POLL_ERR1_EID: + id: 96 + CF_DIS_POLL_ERR2_EID: + id: 97 + CF_OPEN_DIR_ERR_EID: + id: 98 + CF_QDIR_NOMEM1_EID: + id: 99 + CF_QDIR_NOMEM2_EID: + id: 100 + CF_QDIR_PQFUL_EID: + id: 101 + CF_IN_TRANS_START_EID: + id: 102 + CF_OUT_TRANS_START_EID: + id: 103 + CF_SET_MIB_CMD_ERR1_EID: + id: 104 + CF_SET_MIB_CMD_ERR2_EID: + id: 105 + CF_TBL_VAL_ERR1_EID: + id: 106 + CF_TBL_VAL_ERR2_EID: + id: 107 + CF_TBL_VAL_ERR3_EID: + id: 108 + CF_TBL_VAL_ERR4_EID: + id: 109 + CF_TBL_VAL_ERR5_EID: + id: 110 + CF_TBL_VAL_ERR6_EID: + id: 111 + CF_TBL_VAL_ERR7_EID: + id: 112 + CF_TBL_VAL_ERR8_EID: + id: 113 + CF_TBL_VAL_ERR9_EID: + id: 114 + CF_TBL_VAL_ERR10_EID: + id: 115 + CF_TBL_VAL_ERR11_EID: + id: 116 + CF_TBL_VAL_ERR12_EID: + id: 117 + CF_TBL_VAL_ERR13_EID: + id: 118 + CF_TBL_VAL_ERR14_EID: + id: 119 + CF_NO_TERM_ERR_EID: + id: 120 + CF_SET_POLL_PARAM_ERR1_EID: + id: 121 + CF_SET_POLL_PARAM_ERR2_EID: + id: 122 + CF_SET_POLL_PARAM_ERR3_EID: + id: 123 + CF_SET_POLL_PARAM_ERR4_EID: + id: 124 + CF_SET_POLL_PARAM_ERR5_EID: + id: 125 + CF_SET_POLL_PARAM_ERR6_EID: + id: 126 + CF_SET_POLL_PARAM_ERR7_EID: + id: 127 + CF_SET_POLL_PARAM1_EID: + id: 128 + CF_SND_CFG_CMD_EID: + id: 129 + CF_GIVETAKE_ERR1_EID: + id: 130 + CF_GIVETAKE_ERR2_EID: + id: 131 + CF_GIVETAKE_ERR3_EID: + id: 132 + CF_GIVETAKE_ERR4_EID: + id: 133 + CF_PLAYBACK_DIR_EID: + id: 134 + CF_PB_DIR_ERR1_EID: + id: 135 + CF_PB_DIR_ERR2_EID: + id: 136 + CF_PB_DIR_ERR3_EID: + id: 137 + CF_PB_DIR_ERR4_EID: + id: 138 + CF_PB_DIR_ERR5_EID: + id: 139 + CF_PURGEQ_ERR1_EID: + id: 140 + CF_PURGEQ_ERR2_EID: + id: 141 + CF_PURGEQ_ERR3_EID: + id: 142 + CF_PURGEQ_ERR4_EID: + id: 143 + CF_PURGEQ_ERR5_EID: + id: 144 + CF_PURGEQ_ERR6_EID: + id: 145 + CF_PURGEQ1_EID: + id: 146 + CF_PURGEQ2_EID: + id: 147 + CF_WRACT_ERR1_EID: + id: 148 + CF_WRACT_ERR2_EID: + id: 149 + CF_WRACT_TRANS_EID: + id: 150 + CF_TBL_LD_ATTEMPT_EID: + id: 151 + CF_OUT_SND_ERR1_EID: + id: 152 + CF_OUT_SND_ERR2_EID: + id: 153 + CF_OUT_SND_ERR3_EID: + id: 154 + CF_QDIR_ACTIVEFILE_EID: + id: 155 + CF_QDIR_OPENFILE_EID: + id: 156 + CF_INV_FILENAME_EID: + id: 157 + CF_GIVETAKE_CMD_EID: + id: 158 + CF_QUICK_ERR1_EID: + id: 159 + CF_QUICK_CMD_EID: + id: 160 + msg_def_overrides: + - parent: CF_SetMibParam_t + member: Param + type: string + - parent: CF_SetMibParam_t + member: Value + type: string + - parent: CF_GetMibParam_t + member: Param + type: string + - parent: CF_ResetCtrsCmd_t + member: Value + type: enumeration + enumerations: + ALL: 0 + CMD: 1 + FAULT: 2 + UP: 3 + DOWN: 4 + - parent: CF_PlaybackFileCmd_t + member: Class + type: enumeration + enumerations: + CLASS_1: 1 + CLASS_2: 2 + - parent: CF_PlaybackFileCmd_t + member: Preserve + type: enumeration + enumerations: + DELETE: 0 + KEEP: 1 + - parent: CF_PlaybackFileCmd_t + member: PeerEntityId + type: string + - parent: CF_PlaybackFileCmd_t + member: SrcFilename + type: string + - parent: CF_PlaybackFileCmd_t + member: DstFilename + type: string + - parent: CF_PlaybackDirCmd_t + member: Class + type: enumeration + enumerations: + CLASS_1: 1 + CLASS_2: 2 + - parent: CF_PlaybackDirCmd_t + member: Preserve + type: enumeration + enumerations: + DELETE: 0 + KEEP: 1 + - parent: CF_PlaybackDirCmd_t + member: PeerEntityId + type: string + - parent: CF_PlaybackDirCmd_t + member: SrcPath + type: string + - parent: CF_PlaybackDirCmd_t + member: DstPath + type: string + - parent: CF_SetPollParamCmd_t + member: Class + type: enumeration + enumerations: + CLASS_1: 1 + CLASS_2: 2 + - parent: CF_SetPollParamCmd_t + member: Preserve + type: enumeration + enumerations: + DELETE: 0 + KEEP: 1 + - parent: CF_SetPollParamCmd_t + member: PeerEntityId + type: string + - parent: CF_SetPollParamCmd_t + member: SrcPath + type: string + - parent: CF_SetPollParamCmd_t + member: DstPath + type: string + - parent: CF_CARSCmd_t + member: Trans + type: string + - parent: CF_WriteQueueCmd_t + member: Type + type: enumeration + enumerations: + UP: 1 + DOWN: 2 + - parent: CF_WriteQueueCmd_t + member: Queue + type: enumeration + enumerations: + PENDING: 0 + ACTIVE: 1 + HISTORY: 2 + - parent: CF_WriteQueueCmd_t + member: Filename + type: string + - parent: CF_WriteActiveTransCmd_t + member: Type + type: enumeration + enumerations: + ALL: 0 + UP: 1 + DOWN: 2 + - parent: CF_WriteActiveTransCmd_t + member: Filename + type: string + - parent: CF_SendTransCmd_t + member: Trans + type: string + - parent: CF_DequeueNodeCmd_t + member: Trans + type: string + - parent: CF_PurgeQueueCmd_t + member: Type + type: enumeration + enumerations: + UP: 1 + DOWN: 2 + - parent: CF_PurgeQueueCmd_t + member: Queue + type: enumeration + enumerations: + PENDING: 0 + ACTIVE: 1 + HISTORY: 2 + - parent: CF_QuickStatCmd_t + member: Trans + type: string + - parent: CF_GiveTakeCmd_t + member: GiveOrTakeSemaphore + type: enumeration + enumerations: + GIVE: 0 + TAKE: 1 + - parent: CF_AutoSuspendEnCmd_t + member: EnableDisable + type: enumeration + enumerations: + DISABLE: 0 + ENABLE: 1 + - parent: AutoSuspend_Telemetry_t + member: EnFlag + type: enumeration + enumerations: + DISABLE: 0 + ENABLE: 1 + - parent: Engine_Telemetry_t + member: FlightEngineEntityId + type: string + - parent: Uplink_Telemetry_t + member: LastFileUplinked + type: string + - parent: App_Telemetry_t + member: LastFailedTrans + type: string + - parent: CF_EngTransStat_t + member: DeliCode + type: enumeration + enumerations: + DONT_CARE_0: 0 + DONT_CARE_1: 1 + DATA_COMPLETE: 2 + DATA_INCOMPLETE: 3 + - parent: CF_EngTransStat_t + member: FinalStat + type: enumeration + enumerations: + UNKNOWN: 0 + SUCCESSFUL: 1 + CANCELLED: 2 + ABANDONED: 3 + - parent: CF_EngTransStat_t + member: Role + type: enumeration + enumerations: + CLASS_1_SENDER: 1 + CLASS_1_RECEIVER: 2 + CLASS_2_SENDER: 3 + CLASS_2_RECEIVER: 4 + - parent: CF_EngTransStat_t + member: State + type: enumeration + enumerations: + UNINITIALIZED: 0 + S1: 1 + S2: 2 + S3: 3 + S4: 4 + S5: 5 + S6: 6 + FINISHED: 7 + - parent: CF_EngTransStat_t + member: SrcFile + type: string + - parent: CF_EngTransStat_t + member: DstFile + type: string + - parent: CF_EngTransStat_t + member: TmpFile + type: string + - parent: CF_AppTransStat_t + member: Status + type: enumeration + enumerations: + UNKNOWN: 0 + SUCCESS: 1 + CANCELLED: 2 + ABANDON: 3 + NO_META: 4 + PENDING: 5 + ALREADY_ACTIVE: 6 + PUT_REQ_ISSUED: 7 + PUT_REQ_FAIL: 8 + ACTIVE: 9 + - parent: CF_AppTransStat_t + member: CondCode + type: enumeration + enumerations: + NO_ERROR: 0 + POSITIVE_ACK_LIMIT_REACHED: 1 + KEEP_ALIVE_LIMIT_REACHED: 2 + INVALID_TRANSMISSION_MODE: 3 + FILESTORE_REJECTION: 4 + FILE_CHECKSUM_FAILURE: 5 + FILE_SIZE_ERROR: 6 + NAK_LIMIT_REACHED: 7 + INACTIVITY_DETECTED: 8 + INVALID_FILE_STRUCTURE: 9 + RESERVED_BY_CCSDS_10: 10 + RESERVED_BY_CCSDS_11: 11 + RESERVED_BY_CCSDS_12: 12 + RESERVED_BY_CCSDS_13: 13 + SUSPEND_REQUEST_RECEIVED: 14 + CANCEL_REQUEST_RECEIVED: 15 + - parent: CF_AppTransStat_t + member: Class + type: enumeration + enumerations: + CLASS_1: 1 + CLASS_2: 2 + - parent: CF_AppTransStat_t + member: Source + type: enumeration + enumerations: + PLAYBACK_FILE_CMD: 1 + PLAYBACK_DIR_CMD: 2 + POLL_DIRECTORY: 3 + - parent: CF_AppTransStat_t + member: NodeType + type: enumeration + enumerations: + ALL: 0 + UPLINK: 1 + PLAYBACK: 2 + - parent: CF_AppTransStat_t + member: SrcEntityId + type: string + - parent: CF_AppTransStat_t + member: SrcFile + type: string + - parent: CF_AppTransStat_t + member: DstFile + type: string + - parent: CF_QueueInfoFileEntry_t + member: TransStatus + type: enumeration + enumerations: + UNKNOWN: 0 + SUCCESS: 1 + CANCELLED: 2 + ABANDON: 3 + NO_META: 4 + PENDING: 5 + ALREADY_ACTIVE: 6 + PUT_REQ_ISSUED: 7 + PUT_REQ_FAIL: 8 + ACTIVE: 9 + - parent: CF_QueueInfoFileEntry_t + member: SrcEntityId + type: string + - parent: CF_QueueInfoFileEntry_t + member: SrcFile + type: string + - parent: CF_ConfigPacket_t + member: SaveIncompleteFiles + type: string + - parent: CF_ConfigPacket_t + member: PipeName + type: string + - parent: CF_ConfigPacket_t + member: TmpFilePrefix + type: string + - parent: CF_ConfigPacket_t + member: CfgTblName + type: string + - parent: CF_ConfigPacket_t + member: CfgTbleFilename + type: string + - parent: CF_ConfigPacket_t + member: DefQInfoFilename + type: string + telemetry: + CF_CONFIG_TLM_MID: + msgID: 2104 + struct: CF_ConfigPacket_t + CF_HK_TLM_MID: + msgID: 2105 + struct: CF_HkPacket_t + CF_TRANS_TLM_MID: + msgID: 2107 + struct: CF_TransPacket_t + CF_INCOMING_PDU_MID: + msgID: 2106 + commands: + CF_CMD_MID: + msgID: 6204 + commands: + Noop: + cc: 0 + struct: CF_NoArgsCmd_t + ResetCounters: + cc: 1 + struct: CF_ResetCtrsCmd_t + PlaybackFile: + cc: 2 + struct: CF_PlaybackFileCmd_t + PlaybackDirectory: + cc: 3 + struct: CF_PlaybackDirCmd_t + Freeze: + cc: 4 + struct: CF_NoArgsCmd_t + Thaw: + cc: 5 + struct: CF_NoArgsCmd_t + Suspend: + cc: 6 + struct: CF_CARSCmd_t + Resume: + cc: 7 + struct: CF_CARSCmd_t + Cancel: + cc: 8 + struct: CF_CARSCmd_t + Abandon: + cc: 9 + struct: CF_CARSCmd_t + SetMIBParameter: + cc: 10 + struct: CF_SetMibParam_t + GetMIBParameter: + cc: 11 + struct: CF_GetMibParam_t + SendTransaction: + cc: 12 + struct: CF_SendTransCmd_t + SetPollParameter: + cc: 13 + struct: CF_SetPollParamCmd_t + SendConfigParameters: + cc: 14 + struct: CF_NoArgsCmd_t + WriteQueue: + cc: 15 + struct: CF_WriteQueueCmd_t + EnableDequeue: + cc: 16 + struct: CF_EnDisDequeueCmd_t + DisableDequeue: + cc: 17 + struct: CF_EnDisDequeueCmd_t + EnableDirPolling: + cc: 18 + struct: CF_EnDisPollCmd_t + DisableDirPolling: + cc: 19 + struct: CF_EnDisPollCmd_t + DequeueNode: + cc: 20 + struct: CF_DequeueNodeCmd_t + PurgeQueue: + cc: 21 + struct: CF_PurgeQueueCmd_t + WriteActiveTrans: + cc: 22 + struct: CF_WriteActiveTransCmd_t + Kickstart: + cc: 23 + struct: CF_KickstartCmd_t + QuickStat: + cc: 24 + struct: CF_QuickStatCmd_t + GiveTake: + cc: 25 + struct: CF_GiveTakeCmd_t + AutoSuspendEn: + cc: 26 + struct: CF_AutoSuspendEnCmd_t + SetCyclesPerWakeup: + cc: 27 + struct: CF_CyclesPerWakeupCmd_t + CF_SEND_HK_MID: + msgID: 6205 + commands: + SendHK: + cc: 0 + struct: CF_NoArgsCmd_t + CF_WAKE_UP_REQ_CMD_MID: + msgID: 6207 + commands: + WakeUp: + cc: 0 + struct: CF_NoArgsCmd_t + CF_SPACE_TO_GND_PDU_MID: + msgID: 6206 + perfids: + CF_CYCLE_ENG_PERF_ID: + id: 36 + CF_FCLOSE_PERF_ID: + id: 37 + CF_FILESIZE_PERF_ID: + id: 38 + CF_FOPEN_PERF_ID: + id: 39 + CF_FREAD_PERF_ID: + id: 40 + CF_FWRITE_PERF_ID: + id: 41 + CF_QDIRFILES_PERF_ID: + id: 42 + CF_REDLIGHT_PERF_ID: + id: 43 + config: + CF_PIPE_DEPTH: + name: CF_PIPE_DEPTH + value: 40 + CF_MAX_SIMULTANEOUS_TRANSACTIONS: + name: CF_MAX_SIMULTANEOUS_TRANSACTIONS + value: 100 + CF_INCOMING_PDU_BUF_SIZE: + name: CF_INCOMING_PDU_BUF_SIZE + value: 512 + CF_OUTGOING_PDU_BUF_SIZE: + name: CF_OUTGOING_PDU_BUF_SIZE + value: 2048 + CF_ENGINE_TEMP_FILE_PREFIX: + name: CF_ENGINE_TEMP_FILE_PREFIX + value: /ram/cftmp + CF_CONFIG_TABLE_NAME: + name: CF_CONFIG_TABLE_NAME + value: ConfigTable + CF_CONFIG_TABLE_FILENAME: + name: CF_CONFIG_TABLE_FILENAME + value: /cf/cf_cfgtable.tbl + CF_NUM_INPUT_CHANNELS: + name: CF_NUM_INPUT_CHANNELS + value: 1 + CF_MAX_PLAYBACK_CHANNELS: + name: CF_MAX_PLAYBACK_CHANNELS + value: 2 + CF_MAX_POLLING_DIRS_PER_CHAN: + name: CF_MAX_POLLING_DIRS_PER_CHAN + value: 8 + CF_MEMORY_POOL_BYTES: + name: CF_MEMORY_POOL_BYTES + value: 32768 + CF_DEFAULT_QUEUE_INFO_FILENAME: + name: CF_DEFAULT_QUEUE_INFO_FILENAME + value: /ram/cf_queue_info.dat + CF_STARTUP_SYNC_TIMEOUT: + name: CF_STARTUP_SYNC_TIMEOUT + value: 65000 + CF_SEND_FIXED_SIZE_PKTS: + name: CF_SEND_FIXED_SIZE_PKTS + value: 0 + CF_AUTOSUSPEND_MAX_TRANS: + name: CF_AUTOSUSPEND_MAX_TRANS + value: 1 + CF_MISSION_REV: + name: CF_MISSION_REV + value: 0 + definition: /home/mbenson/git/airliner/apps/cf/wh_design.yaml + elf_files: + - /home/mbenson/git/airliner/build/bebop2/sitl/target/target/exe/cf/apps/CF.so + cs: + short_name: cs + long_name: Checksum Services + events: + CS_INIT_INF_EID: + id: 1 + CS_NOOP_INF_EID: + id: 2 + CS_RESET_DBG_EID: + id: 3 + CS_DISABLE_ALL_INF_EID: + id: 4 + CS_ENABLE_ALL_INF_EID: + id: 5 + CS_DISABLE_CFECORE_INF_EID: + id: 6 + CS_ENABLE_CFECORE_INF_EID: + id: 7 + CS_DISABLE_OS_INF_EID: + id: 8 + CS_ENABLE_OS_INF_EID: + id: 9 + CS_BASELINE_CFECORE_INF_EID: + id: 10 + CS_NO_BASELINE_CFECORE_INF_EID: + id: 11 + CS_BASELINE_OS_INF_EID: + id: 12 + CS_NO_BASELINE_OS_INF_EID: + id: 13 + CS_RECOMPUTE_CFECORE_STARTED_DBG_EID: + id: 14 + CS_RECOMPUTE_CFECORE_CREATE_CHDTASK_ERR_EID: + id: 15 + CS_RECOMPUTE_CFECORE_CHDTASK_ERR_EID: + id: 16 + CS_RECOMPUTE_OS_STARTED_DBG_EI: + id: 17 + CS_RECOMPUTE_OS_CREATE_CHDTASK_ERR_EID: + id: 18 + CS_RECOMPUTE_OS_CHDTASK_ERR_EID: + id: 19 + CS_ONESHOT_STARTED_DBG_EID: + id: 20 + CS_ONESHOT_CREATE_CHDTASK_ERR_EID: + id: 21 + CS_ONESHOT_CHDTASK_ERR_EID: + id: 22 + CS_ONESHOT_MEMVALIDATE_ERR_EID: + id: 23 + CS_ONESHOT_CANCELLED_INF_EID: + id: 24 + CS_ONESHOT_CANCEL_DELETE_CHDTASK_ERR_EID: + id: 25 + CS_ONESHOT_CANCEL_NO_CHDTASK_ERR_EID: + id: 26 + CS_EEPROM_MISCOMPARE_ERR_EID: + id: 27 + CS_MEMORY_MISCOMPARE_ERR_EID: + id: 28 + CS_TABLES_MISCOMPARE_ERR_EID: + id: 29 + CS_APP_MISCOMPARE_ERR_EID: + id: 30 + CS_CFECORE_MISCOMPARE_ERR_EID: + id: 31 + CS_OS_MISCOMPARE_ERR_EID: + id: 32 + CS_MID_ERR_EID: + id: 33 + CS_CC1_ERR_EID: + id: 34 + CS_EXIT_ERR_EID: + id: 35 + CS_LEN_ERR_EID: + id: 36 + CS_DISABLE_EEPROM_INF_EID: + id: 37 + CS_ENABLE_EEPROM_INF_EID: + id: 38 + CS_BASELINE_EEPROM_INF_EID: + id: 39 + CS_NO_BASELINE_EEPROM_INF_EID: + id: 40 + CS_BASELINE_INVALID_ENTRY_EEPROM_ERR_EID: + id: 41 + CS_RECOMPUTE_EEPROM_STARTED_DBG_EID: + id: 42 + CS_RECOMPUTE_EEPROM_CREATE_CHDTASK_ERR_EID: + id: 43 + CS_RECOMPUTE_INVALID_ENTRY_EEPROM_ERR_EID: + id: 44 + CS_RECOMPUTE_EEPROM_CHDTASK_ERR_EID: + id: 45 + CS_ENABLE_EEPROM_ENTRY_INF_EID: + id: 46 + CS_ENABLE_EEPROM_INVALID_ENTRY_ERR_EID: + id: 47 + CS_DISABLE_EEPROM_ENTRY_INF_EID: + id: 48 + CS_DISABLE_EEPROM_INVALID_ENTRY_ERR_EID: + id: 49 + CS_GET_ENTRY_ID_EEPROM_INF_EID: + id: 50 + CS_GET_ENTRY_ID_EEPROM_NOT_FOUND_INF_EI: + id: 51 + CS_DISABLE_MEMORY_INF_EID: + id: 52 + CS_ENABLE_MEMORY_INF_EID: + id: 53 + CS_BASELINE_MEMORY_INF_EID: + id: 54 + CS_NO_BASELINE_MEMORY_INF_EID: + id: 55 + CS_BASELINE_INVALID_ENTRY_MEMORY_ERR_EID: + id: 56 + CS_RECOMPUTE_MEMORY_STARTED_DBG_EID: + id: 57 + CS_RECOMPUTE_MEMORY_CREATE_CHDTASK_ERR_EID: + id: 58 + CS_RECOMPUTE_INVALID_ENTRY_MEMORY_ERR_EID: + id: 59 + CS_RECOMPUTE_MEMORY_CHDTASK_ERR_EID: + id: 60 + CS_ENABLE_MEMORY_ENTRY_INF_EID: + id: 61 + CS_ENABLE_MEMORY_INVALID_ENTRY_ERR_EID: + id: 62 + CS_DISABLE_MEMORY_ENTRY_INF_EID: + id: 63 + CS_DISABLE_MEMORY_INVALID_ENTRY_ERR_EID: + id: 64 + CS_GET_ENTRY_ID_MEMORY_INF_EID: + id: 65 + CS_GET_ENTRY_ID_MEMORY_NOT_FOUND_INF_EID: + id: 66 + CS_DISABLE_TABLES_INF_EID: + id: 67 + CS_ENABLE_TABLES_INF_EID: + id: 68 + CS_BASELINE_TABLES_INF_EID: + id: 69 + CS_NO_BASELINE_TABLES_INF_EID: + id: 70 + CS_BASELINE_INVALID_NAME_TABLES_ERR_EID: + id: 71 + CS_RECOMPUTE_TABLES_STARTED_DBG_EID: + id: 72 + CS_RECOMPUTE_TABLES_CREATE_CHDTASK_ERR_EID: + id: 73 + CS_RECOMPUTE_UNKNOWN_NAME_TABLES_ERR_EID: + id: 74 + CS_RECOMPUTE_TABLES_CHDTASK_ERR_EID: + id: 75 + CS_ENABLE_TABLES_NAME_INF_EID: + id: 76 + CS_ENABLE_TABLES_UNKNOWN_NAME_ERR_EID: + id: 77 + CS_DISABLE_TABLES_NAME_INF_EID: + id: 78 + CS_DISABLE_TABLES_UNKNOWN_NAME_ERR_EID: + id: 79 + CS_DISABLE_APP_INF_EID: + id: 80 + CS_ENABLE_APP_INF_EID: + id: 81 + CS_BASELINE_APP_INF_EID: + id: 82 + CS_NO_BASELINE_APP_INF_EID: + id: 83 + CS_BASELINE_INVALID_NAME_APP_ERR_EID: + id: 84 + CS_RECOMPUTE_APP_STARTED_DBG_EID: + id: 85 + CS_RECOMPUTE_APP_CREATE_CHDTASK_ERR_EID: + id: 86 + CS_RECOMPUTE_UNKNOWN_NAME_APP_ERR_EID: + id: 87 + CS_RECOMPUTE_APP_CHDTASK_ERR_EID: + id: 88 + CS_ENABLE_APP_NAME_INF_EID: + id: 89 + CS_ENABLE_APP_UNKNOWN_NAME_ERR_EID: + id: 90 + CS_DISABLE_APP_NAME_INF_EID: + id: 91 + CS_DISABLE_APP_UNKNOWN_NAME_ERR_EID: + id: 92 + CS_COMPUTE_APP_NOT_FOUND_ERR_EID: + id: 93 + CS_COMPUTE_TABLES_NOT_FOUND_ERR_EID: + id: 94 + CS_RECOMPUTE_FINISH_EEPROM_MEMORY_INF_EID: + id: 95 + CS_RECOMPUTE_ERROR_TABLES_ERR_EID: + id: 96 + CS_RECOMPUTE_ERROR_APP_ERR_EID: + id: 97 + CS_RECOMPUTE_FINISH_TABLES_INF_EID: + id: 98 + CS_RECOMPUTE_FINISH_APP_INF_EID: + id: 99 + CS_ONESHOT_FINISHED_INF_EID: + id: 100 + CS_VAL_EEPROM_STATE_ERR_EID: + id: 101 + CS_VAL_EEPROM_RANGE_ERR_EID: + id: 102 + CS_VAL_MEMORY_STATE_ERR_EID: + id: 103 + CS_VAL_MEMORY_RANGE_ERR_EID: + id: 104 + CS_VAL_TABLES_STATE_ERR_EID: + id: 105 + CS_VAL_APP_STATE_ERR_EID: + id: 106 + CS_PROCESS_EEPROM_MEMORY_NO_ENTRIES_INF_EID: + id: 107 + CS_PROCESS_APP_NO_ENTRIES_INF_EID: + id: 108 + CS_PROCESS_TABLES_NO_ENTRIES_INF_EID: + id: 109 + CS_TBL_INIT_ERR_EID: + id: 110 + CS_TBL_UPDATE_ERR_EID: + id: 111 + CS_INIT_SB_CREATE_ERR_EID: + id: 112 + CS_INIT_SB_SUBSCRIBE_HK_ERR_EID: + id: 113 + CS_INIT_SB_SUBSCRIBE_BACK_ERR_EID: + id: 114 + CS_INIT_SB_SUBSCRIBE_CMD_ERR_EID: + id: 115 + CS_INIT_EEPROM_ERR_EID: + id: 116 + CS_INIT_MEMORY_ERR_EID: + id: 117 + CS_INIT_TABLES_ERR_EID: + id: 118 + CS_INIT_APP_ERR_EID: + id: 119 + CS_COMPUTE_TABLES_RELEASE_ERR_EID: + id: 120 + CS_COMPUTE_TABLES_ERR_EID: + id: 121 + CS_COMPUTE_APP_ERR_EID: + id: 122 + CS_UPDATE_EEPROM_ERR_EID: + id: 123 + CS_UPDATE_MEMORY_ERR_EID: + id: 124 + CS_UPDATE_TABLES_ERR_EID: + id: 125 + CS_UPDATE_APP_ERR_EID: + id: 126 + CS_OS_TEXT_SEG_INF_EID: + id: 127 + CS_COMPUTE_APP_PLATFORM_DBG_EID: + id: 128 + CS_ENABLE_TABLE_DEF_NOT_FOUND_DBG_EID: + id: 129 + CS_DISABLE_TABLE_DEF_NOT_FOUND_DBG_EID: + id: 130 + CS_ENABLE_APP_DEF_NOT_FOUND_DBG_EID: + id: 131 + CS_DISABLE_APP_DEF_NOT_FOUND_DBG_EID: + id: 132 + CS_DISABLE_MEMORY_DEF_EMPTY_DBG_EID: + id: 133 + CS_ENABLE_MEMORY_DEF_EMPTY_DBG_EID: + id: 134 + CS_DISABLE_EEPROM_DEF_EMPTY_DBG_EID: + id: 135 + CS_ENABLE_EEPROM_DEF_EMPTY_DBG_EID: + id: 136 + CS_VAL_TABLES_DEF_TBL_DUPL_ERR_EID: + id: 137 + CS_VAL_TABLES_DEF_TBL_ZERO_NAME_ERR_EID: + id: 138 + CS_VAL_TABLES_INF_EID: + id: 139 + CS_VAL_APP_DEF_TBL_DUPL_ERR_EID: + id: 140 + CS_VAL_APP_DEF_TBL_ZERO_NAME_ERR_EID: + id: 141 + CS_VAL_APP_INF_EID: + id: 142 + CS_VAL_MEMORY_INF_EID: + id: 143 + CS_VAL_EEPROM_INF_EID: + id: 144 + CS_INIT_CDS_ERR_EID 145: + id: 145 + CS_EXIT_INF_EID: + id: 146 + msg_def_overrides: + - parent: CS_AppNameCmd_t + member: Name + type: string + - parent: CS_TableNameCmd_t + member: Name + type: string + telemetry: + CS_HK_TLM_MID: + msgID: 2128 + struct: CS_HkPacket_t + commands: + CS_BACKGROUND_CYCLE_MID: + msgID: 6226 + commands: + BackgroundCycle: + cc: 0 + struct: CS_NoArgsCmd_t + CS_CMD_MID: + msgID: 6225 + commands: + Noop: + cc: 0 + struct: CS_NoArgsCmd_t + Reset: + cc: 1 + struct: CS_NoArgsCmd_t + OneShot: + cc: 2 + struct: CS_OneShotCmd_t + CancelOneShot: + cc: 3 + struct: CS_NoArgsCmd_t + EnableAllCS: + cc: 4 + struct: CS_NoArgsCmd_t + DisableAllCS: + cc: 5 + struct: CS_NoArgsCmd_t + EnableCfeCore: + cc: 6 + struct: CS_NoArgsCmd_t + DisableCfeCore: + cc: 7 + struct: CS_NoArgsCmd_t + ReportBaselineCfeCore: + cc: 8 + struct: CS_NoArgsCmd_t + RecomputeBaselineCfeCore: + cc: 9 + struct: CS_NoArgsCmd_t + EnableOS: + cc: 10 + struct: CS_NoArgsCmd_t + DisableOS: + cc: 11 + struct: CS_NoArgsCmd_t + ReportBaselineOS: + cc: 12 + struct: CS_NoArgsCmd_t + RecomputeBaselineOS: + cc: 13 + struct: CS_NoArgsCmd_t + EnableEEPROM: + cc: 14 + struct: CS_NoArgsCmd_t + DisableEEPROM: + cc: 15 + struct: CS_NoArgsCmd_t + ReportBaselineEEPROM: + cc: 16 + struct: CS_EntryCmd_t + RecomputeBaselineEEPROM: + cc: 17 + struct: CS_EntryCmd_t + EnableEntryEEPROM: + cc: 18 + struct: CS_EntryCmd_t + DisableEntryEEPROM: + cc: 19 + struct: CS_EntryCmd_t + GetEntryIDEEPROM: + cc: 20 + struct: CS_GetEntryIDCmd_t + EnableMemory: + cc: 21 + struct: CS_NoArgsCmd_t + DisableMemory: + cc: 22 + struct: CS_NoArgsCmd_t + ReportBaselineMemory: + cc: 23 + struct: CS_EntryCmd_t + RecomputeBaselineMemory: + cc: 24 + struct: CS_EntryCmd_t + EnableEntryMemory: + cc: 25 + struct: CS_EntryCmd_t + DisableEntryMemory: + cc: 26 + struct: CS_EntryCmd_t + GetEntryIDMemory: + cc: 27 + struct: CS_GetEntryIDCmd_t + EnableTables: + cc: 28 + struct: CS_NoArgsCmd_t + DisableTables: + cc: 29 + struct: CS_NoArgsCmd_t + ReportBaselineTable: + cc: 30 + struct: CS_TableNameCmd_t + RecomputeBaselineTable: + cc: 31 + struct: CS_TableNameCmd_t + EnableNameTable: + cc: 32 + struct: CS_TableNameCmd_t + DisableNameTable: + cc: 33 + struct: CS_TableNameCmd_t + EnableApps: + cc: 34 + struct: CS_NoArgsCmd_t + DisableApps: + cc: 35 + struct: CS_NoArgsCmd_t + ReportBaselineApp: + cc: 36 + struct: CS_AppNameCmd_t + RecomputeBaselineApp: + cc: 37 + struct: CS_AppNameCmd_t + EnableNameApp: + cc: 38 + struct: CS_AppNameCmd_t + DisableNameApp: + cc: 39 + struct: CS_AppNameCmd_t + CS_SEND_HK_MID: + msgID: 6227 + commands: + SendHK: + cc: 0 + struct: CS_NoArgsCmd_t + perfids: + CS_APPMAIN_PERF_ID: + id: 44 + config: + CS_DEFAULT_ALGORITHM: + name: CS_DEFAULT_ALGORITHM + value: CFE_ES_DEFAULT_CRC + CS_CHILD_TASK_FLAGS: + name: CS_CHILD_TASK_FLAGS + value: OS_ENABLE_CORE_0 + CS_DEF_EEPROM_TABLE_FILENAM: + name: CS_DEF_EEPROM_TABLE_FILENAM + value: /cf/apps/cs_eepromtbl.tbl + CS_DEF_MEMORY_TABLE_FILENAME: + name: CS_DEF_MEMORY_TABLE_FILENAME + value: /cf/apps/cs_memorytbl.tbl + CS_DEF_TABLES_TABLE_FILENAME: + name: CS_DEF_TABLES_TABLE_FILENAME + value: /cf/apps/cs_tablestbl.tbl + CS_DEF_APP_TABLE_FILENAME: + name: CS_DEF_APP_TABLE_FILENAME + value: /cf/apps/cs_apptbl.tbl + CS_PIPE_DEPTH: + name: CS_PIPE_DEPTH + value: 12 + CS_MAX_NUM_EEPROM_TABLE_ENTRIES: + name: CS_MAX_NUM_EEPROM_TABLE_ENTRIES + value: 16 + CS_MAX_NUM_MEMORY_TABLE_ENTRIES: + name: CS_MAX_NUM_MEMORY_TABLE_ENTRIES + value: 16 + CS_MAX_NUM_TABLES_TABLE_ENTRIES: + name: CS_MAX_NUM_TABLES_TABLE_ENTRIES + value: 24 + CS_MAX_NUM_APP_TABLE_ENTRIES: + name: CS_MAX_NUM_APP_TABLE_ENTRIES + value: 24 + CS_DEFAULT_BYTES_PER_CYCLE: + name: CS_DEFAULT_BYTES_PER_CYCLE + value: 1024 *16 + CS_CHILD_TASK_PRIORITY: + name: CS_CHILD_TASK_PRIORITY + value: 200 + CS_CHILD_TASK_DELAY: + name: CS_CHILD_TASK_DELAY + value: 1000 + CS_STARTUP_TIMEOUT: + name: CS_STARTUP_TIMEOUT + value: 60000 + CS_OSCS_CHECKSUM_STATE: + name: CS_OSCS_CHECKSUM_STATE + value: CS_STATE_ENABLED + CS_CFECORE_CHECKSUM_STATE: + name: CS_CFECORE_CHECKSUM_STATE + value: CS_STATE_ENABLED + CS_EEPROM_TBL_POWERON_STATE: + name: CS_EEPROM_TBL_POWERON_STATE + value: CS_STATE_ENABLED + CS_MEMORY_TBL_POWERON_STATE: + name: CS_MEMORY_TBL_POWERON_STATE + value: CS_STATE_ENABLED + CS_APPS_TBL_POWERON_STATE: + name: CS_APPS_TBL_POWERON_STATE + value: CS_STATE_ENABLED + CS_TABLES_TBL_POWERON_STATE: + name: CS_TABLES_TBL_POWERON_STATE + value: CS_STATE_ENABLED + CS_PRESERVE_STATES_ON_PROCESSOR_RESET: + name: CS_PRESERVE_STATES_ON_PROCESSOR_RESET + value: true + CS_CDS_NAME: + name: CS_CDS_NAME + value: CS_CDS + definition: /home/mbenson/git/airliner/apps/cs/wh_design.yaml + elf_files: + - /home/mbenson/git/airliner/build/bebop2/sitl/target/target/exe/cf/apps/CS.so + ds: + short_name: ds + long_name: Data Storage + events: + DS_INIT_EID: + id: 1 + DS_INIT_ERR_EID: + id: 2 + DS_EXIT_ERR_EID: + id: 3 + DS_INIT_CDS_ERR_EID: + id: 6 + DS_INIT_TBL_CDS_EID: + id: 7 + DS_INIT_TBL_ERR_EID: + id: 8 + DS_FIL_TBL_EID: + id: 10 + DS_FIL_TBL_ERR_EID: + id: 11 + DS_FLT_TBL_EID: + id: 12 + DS_FLT_TBL_ERR_EID: + id: 13 + DS_FILE_NAME_ERR_EID: + id: 14 + DS_CREATE_FILE_ERR_EID: + id: 15 + DS_WRITE_FILE_ERR_EID: + id: 16 + DS_CMD_CODE_ERR_EID: + id: 21 + DS_HK_REQUEST_ERR_EID: + id: 22 + DS_NOOP_CMD_EID: + id: 31 + DS_NOOP_CMD_ERR_EID: + id: 32 + DS_RESET_CMD_EID: + id: 33 + DS_RESET_CMD_ERR_EID: + id: 34 + DS_ENADIS_CMD_EID: + id: 35 + DS_ENADIS_CMD_ERR_EID: + id: 36 + DS_FILE_CMD_EID: + id: 37 + DS_FILE_CMD_ERR_EID: + id: 38 + DS_FTYPE_CMD_EID: + id: 39 + DS_FTYPE_CMD_ERR_EID: + id: 40 + DS_PARMS_CMD_EID: + id: 41 + DS_PARMS_CMD_ERR_EID: + id: 42 + DS_NTYPE_CMD_EID: + id: 43 + DS_NTYPE_CMD_ERR_EID: + id: 44 + DS_STATE_CMD_EID: + id: 45 + DS_STATE_CMD_ERR_EID: + id: 46 + DS_PATH_CMD_EID: + id: 47 + DS_PATH_CMD_ERR_EID: + id: 48 + DS_BASE_CMD_EID: + id: 49 + DS_BASE_CMD_ERR_EID: + id: 50 + DS_EXT_CMD_EI: + id: 51 + DS_EXT_CMD_ERR_EID: + id: 52 + DS_SIZE_CMD_EID: + id: 53 + DS_SIZE_CMD_ERR_EID: + id: 54 + DS_AGE_CMD_EID: + id: 55 + DS_AGE_CMD_ERR_EID: + id: 56 + DS_SEQ_CMD_EID: + id: 57 + DS_SEQ_CMD_ERR_EID: + id: 58 + DS_CLOSE_CMD_EID: + id: 59 + DS_CLOSE_CMD_ERR_EID: + id: 60 + DS_MOVE_FILE_ERR_EID: + id: 61 + DS_GET_FILE_INFO_CMD_EID: + id: 62 + DS_GET_FILE_INFO_CMD_ERR_EID: + id: 63 + DS_ADD_MID_CMD_EID: + id: 64 + DS_ADD_MID_CMD_ERR_EID: + id: 65 + DS_CLOSE_ALL_CMD_EID: + id: 66 + DS_CLOSE_ALL_CMD_ERR_EID: + id: 67 + msg_def_overrides: + - parent: DS_HkPacket_t + member: FilterTblFilename + type: string + - parent: DS_FileInfo_t + member: FileName + type: string + - parent: DS_DestPathCmd_t + member: Pathname + type: string + - parent: DS_DestBaseCmd_t + member: Basename + type: string + - parent: DS_DestExtCmd_t + member: Extension + type: string + telemetry: + DS_DIAG_TLM_MID: + msgID: 2132 + struct: DS_FileInfoPkt_t + DS_HK_TLM_MID: + msgID: 2133 + struct: DS_HkPacket_t + commands: + DS_CMD_MID: + msgID: 6230 + commands: + Noop: + cc: 0 + struct: DS_NoopCmd_t + Reset: + cc: 1 + struct: DS_ResetCmd_t + SetAppState: + cc: 2 + struct: DS_AppStateCmd_t + SetFilterFile: + cc: 3 + struct: DS_FilterFileCmd_t + SetFilterType: + cc: 4 + struct: DS_FilterTypeCmd_t + SetFilterParams: + cc: 5 + struct: DS_FilterParmsCmd_t + SetDestType: + cc: 6 + struct: DS_DestTypeCmd_t + SetDestState: + cc: 7 + struct: DS_DestStateCmd_t + SetDestPath: + cc: 8 + struct: DS_DestPathCmd_t + SetDestBase: + cc: 9 + struct: DS_DestBaseCmd_t + SetDestExt: + cc: 10 + struct: DS_DestExtCmd_t + SetDestSize: + cc: 11 + struct: DS_DestSizeCmd_t + SetDestAge: + cc: 12 + struct: DS_DestAgeCmd_t + SetDestCount: + cc: 13 + struct: DS_DestCountCmd_t + CloseFile: + cc: 14 + struct: DS_CloseFileCmd_t + GetFileInfo: + cc: 15 + struct: DS_GetFileInfoCmd_t + AddMessage: + cc: 16 + struct: DS_AddMidCmd_t + CloseAll: + cc: 17 + struct: DS_CloseAllCmd_t + DS_SEND_HK_MID: + msgID: 6231 + commands: + SendHK: + cc: 0 + struct: DS_NoopCmd_t + perfids: + DS_APPMAIN_PERF_ID: + id: 45 + config: + DS_DESTINATION_TBL_NAME: + name: DS_DESTINATION_TBL_NAME + value: FILE_TBL + DS_DEF_DEST_FILENAME: + name: DS_DEF_DEST_FILENAME + value: /cf/apps/ds_file_tbl.tbl + DS_DEST_FILE_CNT: + name: DS_DEST_FILE_CNT + value: 16 + DS_PATHNAME_BUFSIZE: + name: DS_PATHNAME_BUFSIZE + value: OS_MAX_PATH_LEN + DS_BASENAME_BUFSIZE: + name: DS_BASENAME_BUFSIZE + value: OS_MAX_PATH_LEN + DS_EXTENSION_BUFSIZE: + name: DS_EXTENSION_BUFSIZE + value: 8 + DS_FILTER_TBL_NAME: + name: DS_FILTER_TBL_NAME + value: FILTER_TBL + DS_DEF_FILTER_FILENAME: + name: DS_DEF_FILTER_FILENAME + value: cf/apps/ds_filter_tbl.tbl + DS_PACKETS_IN_FILTER_TABLE: + name: DS_PACKETS_IN_FILTER_TABLE + value: 256 + DS_FILTERS_PER_PACKET: + name: DS_FILTERS_PER_PACKET + value: 4 + DS_DESCRIPTOR_BUFSIZE: + name: DS_DESCRIPTOR_BUFSIZE + value: 32 + DS_SEQUENCE_DIGITS: + name: DS_SEQUENCE_DIGITS + value: 8 + DS_MAX_SEQUENCE_COUNT: + name: DS_MAX_SEQUENCE_COUNT + value: 99999999 + DS_TOTAL_FNAME_BUFSIZE: + name: DS_TOTAL_FNAME_BUFSIZE + value: OS_MAX_PATH_LEN + DS_FILE_HDR_SUBTYPE: + name: DS_FILE_HDR_SUBTYPE + value: 12345 + DS_FILE_HDR_DESCRIPTION: + name: DS_FILE_HDR_DESCRIPTION + value: DS data storage file + DS_FILE_MIN_SIZE_LIMIT: + name: DS_FILE_MIN_SIZE_LIMIT + value: 1024 + DS_FILE_MIN_AGE_LIMIT: + name: DS_FILE_MIN_AGE_LIMIT + value: 60 + DS_APP_PIPE_NAME: + name: DS_APP_PIPE_NAME + value: DS_CMD_PIPE + DS_APP_PIPE_DEPTH: + name: DS_APP_PIPE_DEPTH + value: 256 + DS_MAKE_TABLES_CRITICAL: + name: DS_MAKE_TABLES_CRITICAL + value: 0 + DS_SECS_PER_HK_CYCLE: + name: DS_SECS_PER_HK_CYCLE + value: 4 + DS_DEF_ENABLE_STATE: + name: DS_DEF_ENABLE_STATE + value: 1 + DS_CDS_ENABLE_STATE: + name: DS_CDS_ENABLE_STATE + value: 1 + DS_MISSION_REV: + name: DS_MISSION_REV + value: 0 + DS_FILE_HEADER_TYPE: + name: DS_FILE_HEADER_TYPE + value: 1 + DS_MOVE_FILES: + name: DS_MOVE_FILES + value: 50 + DS_PER_PACKET_PIPE_LIMIT: + name: DS_PER_PACKET_PIPE_LIMIT + value: 1 + definition: /home/mbenson/git/airliner/apps/ds/wh_design.yaml + elf_files: + - /home/mbenson/git/airliner/build/bebop2/sitl/target/target/exe/cf/apps/DS.so + fm: + short_name: fm + long_name: File Management + events: + FM_STARTUP_EID: + id: 1 + FM_STARTUP_EVENTS_ERR_EID: + id: 2 + FM_STARTUP_CREAT_PIPE_ERR_EID: + id: 3 + FM_STARTUP_SUBSCRIB_HK_ERR_EID: + id: 4 + FM_STARTUP_SUBSCRIB_GCMD_ERR_EID: + id: 5 + FM_STARTUP_TABLE_INIT_ERR_EID: + id: 6 + FM_SB_RECEIVE_ERR_EID: + id: 7 + FM_EXIT_ERR_EID: + id: 8 + FM_MID_ERR_EID: + id: 9 + FM_CC_ERR_EID: + id: 10 + FM_HK_REQ_ERR_EID: + id: 11 + FM_NOOP_CMD_EID: + id: 12 + FM_NOOP_PKT_ERR_EID: + id: 13 + FM_RESET_CMD_EID: + id: 14 + FM_RESET_PKT_ERR_EID: + id: 15 + FM_COPY_CMD_EID: + id: 16 + FM_COPY_PKT_ERR_EID: + id: 17 + FM_COPY_OVR_ERR_EID: + id: 18 + FM_COPY_SRC_ERR_EID: + id: 19 + FM_COPY_TGT_ERR_EID: + id: 20 + FM_COPY_CHILD_ERR_EID: + id: 21 + FM_COPY_OS_ERR_EID: + id: 22 + FM_MOVE_CMD_EID: + id: 23 + FM_MOVE_PKT_ERR_EID: + id: 24 + FM_MOVE_OVR_ERR_EID: + id: 25 + FM_MOVE_SRC_ERR_EID: + id: 26 + FM_MOVE_TGT_ERR_EID: + id: 27 + FM_MOVE_CHILD_ERR_EID: + id: 28 + FM_MOVE_OS_ERR_EID: + id: 29 + FM_RENAME_CMD_EID: + id: 30 + FM_RENAME_PKT_ERR_EID: + id: 31 + FM_RENAME_SRC_ERR_EID: + id: 32 + FM_RENAME_TGT_ERR_EID: + id: 33 + FM_RENAME_CHILD_ERR_EID: + id: 34 + FM_RENAME_OS_ERR_EID: + id: 35 + FM_DELETE_CMD_EID: + id: 36 + FM_DELETE_PKT_ERR_EID: + id: 37 + FM_DELETE_SRC_ERR_EID: + id: 38 + FM_DELETE_CHILD_ERR_EID: + id: 39 + FM_DELETE_OS_ERR_EID: + id: 40 + FM_DELETE_ALL_CMD_EID: + id: 41 + FM_DELETE_ALL_WARNING_EID: + id: 42 + FM_DELETE_ALL_PKT_ERR_EID: + id: 43 + FM_DELETE_ALL_SRC_ERR_EID: + id: 44 + FM_DELETE_ALL_CHILD_ERR_EID: + id: 45 + FM_DELETE_ALL_OS_ERR_EID: + id: 46 + FM_DECOM_CMD_EID: + id: 47 + FM_DECOM_PKT_ERR_EID: + id: 48 + FM_DECOM_SRC_ERR_EID: + id: 49 + FM_DECOM_TGT_ERR_EID: + id: 50 + FM_DECOM_CHILD_ERR_EID: + id: 51 + FM_DECOM_CFE_ERR_EID: + id: 52 + FM_CONCAT_CMD_EID: + id: 53 + FM_CONCAT_PKT_ERR_EID: + id: 54 + FM_CONCAT_SRC1_ERR_EID: + id: 55 + FM_CONCAT_SRC2_ERR_EID: + id: 56 + FM_CONCAT_TGT_ERR_EID: + id: 57 + FM_CONCAT_CHILD_ERR_EID: + id: 58 + FM_CONCAT_OS_ERR_EID: + id: 59 + FM_GET_FILE_INFO_CMD_EID: + id: 60 + FM_GET_FILE_INFO_PKT_ERR_EID: + id: 61 + FM_GET_FILE_INFO_SRC_ERR_EID: + id: 62 + FM_GET_FILE_INFO_CHILD_ERR_EID: + id: 63 + FM_GET_FILE_INFO_WARNING_EID: + id: 64 + FM_GET_OPEN_FILES_CMD_EID: + id: 65 + FM_GET_OPEN_FILES_PKT_ERR_EID: + id: 66 + FM_CREATE_DIR_CMD_EID: + id: 67 + FM_CREATE_DIR_PKT_ERR_EID: + id: 68 + FM_CREATE_DIR_SRC_ERR_EID: + id: 69 + FM_CREATE_DIR_CHILD_ERR_EID: + id: 70 + FM_CREATE_DIR_OS_ERR_EID: + id: 71 + FM_DELETE_DIR_CMD_EID: + id: 72 + FM_DELETE_DIR_PKT_ERR_EID: + id: 73 + FM_DELETE_DIR_SRC_ERR_EID: + id: 74 + FM_DELETE_DIR_CHILD_ERR_EID: + id: 75 + FM_DELETE_DIR_EMPTY_ERR_EID: + id: 76 + FM_DELETE_DIR_OS_ERR_EID: + id: 77 + FM_GET_DIR_FILE_CMD_EID: + id: 78 + FM_GET_DIR_FILE_PKT_ERR_EID: + id: 79 + FM_GET_DIR_FILE_SRC_ERR_EID: + id: 80 + FM_GET_DIR_FILE_TGT_ERR_EID: + id: 81 + FM_GET_DIR_FILE_WARNING_EID: + id: 82 + FM_GET_DIR_FILE_CHILD_ERR_EID: + id: 83 + FM_GET_DIR_FILE_OS_ERR_EID: + id: 84 + FM_GET_DIR_PKT_CMD_EI: + id: 85 + FM_GET_DIR_PKT_WARNING_EID: + id: 86 + FM_GET_DIR_PKT_PKT_ERR_EID: + id: 87 + FM_GET_DIR_PKT_SRC_ERR_EID: + id: 88 + FM_GET_DIR_PKT_CHILD_ERR_EID: + id: 89 + FM_GET_DIR_PKT_OS_ERR_EID: + id: 90 + FM_GET_FREE_SPACE_CMD_EID: + id: 91 + FM_GET_FREE_SPACE_PKT_ERR_EID: + id: 92 + FM_GET_FREE_SPACE_TBL_ERR_EID: + id: 93 + FM_SET_TABLE_STATE_CMD_EID: + id: 94 + FM_SET_TABLE_STATE_PKT_ERR_EID: + id: 95 + FM_SET_TABLE_STATE_TBL_ERR_EID: + id: 96 + FM_SET_TABLE_STATE_ARG_ERR_EID: + id: 97 + FM_SET_TABLE_STATE_UNUSED_ERR_EID: + id: 98 + FM_TABLE_VERIFY_ERR_EID: + id: 99 + FM_CHILD_INIT_EID: + id: 100 + FM_CHILD_INIT_ERR_EID: + id: 101 + FM_CHILD_TERM_ERR_EID: + id: 102 + FM_CHILD_EXE_ERR_EID: + id: 103 + FM_TABLE_VERIFY_EID: + id: 104 + FM_SET_PERM_ERR_EID: + id: 110 + FM_SET_PERM_CMD_EID: + id: 111 + FM_SET_PERM_OS_ERR_EID: + id: 112 + msg_def_overrides: + - parent: FM_CopyFileCmd_t + member: Source + type: string + - parent: FM_CopyFileCmd_t + member: Target + type: string + - parent: FM_MoveFileCmd_t + member: Source + type: string + - parent: FM_MoveFileCmd_t + member: Target + type: string + - parent: FM_RenameFileCmd_t + member: Source + type: string + - parent: FM_RenameFileCmd_t + member: Target + type: string + - parent: FM_DeleteFileCmd_t + member: Filename + type: string + - parent: FM_DeleteAllCmd_t + member: Directory + type: string + - parent: FM_DecompressCmd_t + member: Source + type: string + - parent: FM_DecompressCmd_t + member: Target + type: string + - parent: FM_ConcatCmd_t + member: Source1 + type: string + - parent: FM_ConcatCmd_t + member: Source2 + type: string + - parent: FM_ConcatCmd_t + member: Target + type: string + - parent: FM_GetFileInfoCmd_t + member: Filename + type: string + - parent: FM_CreateDirCmd_t + member: Directory + type: string + - parent: FM_DeleteDirCmd_t + member: Directory + type: string + - parent: FM_GetDirFileCmd_t + member: Directory + type: string + - parent: FM_GetDirFileCmd_t + member: Filename + type: string + - parent: FM_GetDirPktCmd_t + member: Directory + type: string + - parent: FM_SetTableStateCmd_t + member: TableEntryState + type: enumeration + enumerations: + DISABLED: 0 + ENABLED: 1 + UNUSED: 2 + - parent: FM_SetPermCmd_t + member: FileName + type: string + - parent: FM_DirListEntry_t + member: EntryName + type: string + - parent: FM_DirListPkt_t + member: DirName + type: string + - parent: FM_DirListFileStats_t + member: DirName + type: string + - parent: FM_FileInfoPkt_t + member: Filename + type: string + - parent: FM_OpenFilesEntry_t + member: LogicalName + type: string + - parent: FM_OpenFilesEntry_t + member: AppName + type: string + - parent: FM_FreeSpacePktEntry_t + member: Name + type: string + - parent: FM_HousekeepingPkt_t + member: ChildCurrentCC + type: enumeration + enumerations: + NOOP: 0 + RESET: 1 + COPY: 2 + MOVE: 3 + RENAME: 4 + DELETE: 5 + DELETE_ALL: 7 + DECOMPRESS: 8 + CONCAT: 9 + GET_FILE_INFO: 10 + GET_OPEN_FILES: 11 + CREATE_DIR: 12 + DELETE_DIR: 13 + GET_DIR_FILE: 14 + GET_DIR_PKT: 15 + GET_FREE_SPACE: 16 + SET_TABLE_STATE: 17 + DELETE_INT: 18 + SET_FILE_PEERM: 19 + - parent: FM_HousekeepingPkt_t + member: ChildPreviousCC + type: enumeration + enumerations: + NOOP: 0 + RESET: 1 + COPY: 2 + MOVE: 3 + RENAME: 4 + DELETE: 5 + DELETE_ALL: 7 + DECOMPRESS: 8 + CONCAT: 9 + GET_FILE_INFO: 10 + GET_OPEN_FILES: 11 + CREATE_DIR: 12 + DELETE_DIR: 13 + GET_DIR_FILE: 14 + GET_DIR_PKT: 15 + GET_FREE_SPACE: 16 + SET_TABLE_STATE: 17 + DELETE_INT: 18 + SET_FILE_PEERM: 19 + - parent: FM_TableEntry_t + member: Name + type: string + - parent: FM_TableEntry_t + member: State + type: enumeration + enumerations: + DISABLED: 0 + ENABLED: 1 + UNUSED: 2 + telemetry: + FM_DIR_LIST_TLM_MID: + msgID: 2136 + struct: FM_DirListPkt_t + FM_FILE_INFO_TLM_MID: + msgID: 2137 + struct: FM_FileInfoPkt_t + FM_FREE_SPACE_TLM_MID: + msgID: 2138 + struct: FM_FreeSpacePkt_t + FM_HK_TLM_MID: + msgID: 2139 + struct: FM_HousekeepingPkt_t + FM_OPEN_FILES_TLM_MID: + msgID: 2140 + struct: FM_OpenFilesPkt_t + commands: + FM_CMD_MID: + msgID: 6237 + commands: + Noop: + cc: 0 + struct: FM_NoopCmd_t + Reset: + cc: 1 + struct: FM_ResetCmd_t + CopyFile: + cc: 2 + struct: FM_CopyFileCmd_t + MoveFile: + cc: 3 + struct: FM_MoveFileCmd_t + RenameFile: + cc: 4 + struct: FM_RenameFileCmd_t + DeleteFile: + cc: 5 + struct: FM_DeleteFileCmd_t + DeleteAll: + cc: 7 + struct: FM_DeleteAllCmd_t + Decompress: + cc: 8 + struct: FM_DecompressCmd_t + Concat: + cc: 9 + struct: FM_ConcatCmd_t + GetFileInfo: + cc: 10 + struct: FM_GetFileInfoCmd_t + GetOpenFiles: + cc: 11 + struct: FM_GetOpenFilesCmd_t + CreateDir: + cc: 12 + struct: FM_CreateDirCmd_t + DeleteDir: + cc: 13 + struct: FM_DeleteDirCmd_t + GetDirFile: + cc: 14 + struct: FM_GetDirFileCmd_t + GetDirPkt: + cc: 15 + struct: FM_GetDirPktCmd_t + GetFreeSpace: + cc: 16 + struct: FM_GetFreeSpaceCmd_t + SetTableState: + cc: 17 + struct: FM_SetTableStateCmd_t + SetPerm: + cc: 19 + struct: FM_SetPermCmd_t + FM_SEND_HK_MID: + msgID: 6238 + commands: + SendHK: + cc: 0 + struct: FM_HousekeepingCmd_t + perfids: + FM_APPMAIN_PERF_ID: + id: 46 + FM_CHILD_TASK_PERF_ID: + id: 47 + config: + FM_CHILD_TASK_FLAGS: + name: FM_CHILD_TASK_FLAGS + value: OS_ENABLE_CORE_0 + FM_APP_NAME: + name: FM_APP_NAME + value: FM + FM_APP_PIPE_NAME: + name: FM_APP_PIPE_NAME + value: FM_CMD_PIPE + FM_APP_PIPE_DEPTH: + name: FM_APP_PIPE_DEPTH + value: 10 + FM_MISSION_REV: + name: FM_MISSION_REV + value: 0 + FM_DIR_LIST_FILE_DEFNAME: + name: FM_DIR_LIST_FILE_DEFNAME + value: /ram/fm_dirlist.out + FM_DIR_LIST_FILE_ENTRIES: + name: FM_DIR_LIST_FILE_ENTRIES + value: 3000 + FM_DIR_LIST_FILE_SUBTYPE: + name: FM_DIR_LIST_FILE_SUBTYPE + value: 12345 + FM_DIR_LIST_PKT_ENTRIES: + name: FM_DIR_LIST_PKT_ENTRIES + value: 20 + FM_CHILD_FILE_BLOCK_SIZE: + name: FM_CHILD_FILE_BLOCK_SIZE + value: 2048 + FM_CHILD_FILE_LOOP_COUNT: + name: FM_CHILD_FILE_LOOP_COUNT + value: 16 + FM_CHILD_FILE_SLEEP_MS: + name: FM_CHILD_FILE_SLEEP_MS + value: 20 + FM_CHILD_STAT_SLEEP_MS: + name: FM_CHILD_STAT_SLEEP_MS + value: 0 + FM_CHILD_STAT_SLEEP_FILECOUNT: + name: FM_CHILD_STAT_SLEEP_FILECOUNT + value: 0 + FM_CHILD_QUEUE_DEPTH: + name: FM_CHILD_QUEUE_DEPTH + value: 3 + FM_CHILD_TASK_NAME: + name: FM_CHILD_TASK_NAME + value: FM_CHILD_TASK + FM_CHILD_TASK_STACK_SIZE: + name: FM_CHILD_TASK_STACK_SIZE + value: 20480 + FM_CHILD_TASK_PRIORITY: + name: FM_CHILD_TASK_PRIORITY + value: 205 + FM_CHILD_SEM_NAME: + name: FM_CHILD_SEM_NAME + value: FM_CHILD_SEM + FM_TABLE_CFE_NAME: + name: FM_TABLE_CFE_NAME + value: FreeSpace + FM_TABLE_DEF_NAME: + name: FM_TABLE_DEF_NAME + value: /cf/apps/fm_freespace.tbl + FM_TABLE_FILENAME: + name: FM_TABLE_FILENAME + value: fm_freespace.tbl + FM_TABLE_DEF_DESC: + name: FM_TABLE_DEF_DESC + value: FM File System Free Space Table + FM_TABLE_ENTRY_COUNT: + name: FM_TABLE_ENTRY_COUNT + value: 8 + FM_TABLE_VALIDATION_ERR: + name: FM_TABLE_VALIDATION_ERR + value: 0xCF000080L + definition: /home/mbenson/git/airliner/apps/fm/wh_design.yaml + elf_files: + - /home/mbenson/git/airliner/build/bebop2/sitl/target/target/exe/cf/apps/FM.so + hk: + short_name: hk + long_name: Housekeeping + events: + HK_INIT_EI: + id: 1 + HK_CC_ERR_EID: + id: 2 + HK_CMD_LEN_ERR_EID: + id: 3 + HK_NOOP_CMD_EID: + id: 4 + HK_RESET_CNTRS_CMD_EID: + id: 5 + HK_ACCESSING_PAST_PACKET_END_EID: + id: 6 + HK_MEM_POOL_MALLOC_FAILED_EID: + id: 7 + HK_CANT_SUBSCRIBE_TO_SB_PKT_EID: + id: 8 + HK_MEM_POOL_FREE_FAILED_EID: + id: 9 + HK_UNEXPECTED_GETSTAT_RET_EID: + id: 10 + HK_UNKNOWN_COMBINED_PACKET_EID: + id: 11 + HK_OUTPKT_MISSING_DATA_EID: + id: 12 + HK_CR_PIPE_ERR_EID: + id: 14 + HK_SUB_CMB_ERR_EID: + id: 15 + HK_SUB_REQ_ERR_EID: + id: 16 + HK_SUB_CMD_ERR_EID: + id: 17 + HK_CR_POOL_ERR_EID: + id: 18 + HK_CPTBL_REG_ERR_EID: + id: 19 + HK_RTTBL_REG_ERR_EID: + id: 20 + HK_CPTBL_LD_ERR_EID: + id: 21 + HK_CPTBL_MNG_ERR_EID: + id: 22 + HK_RTTBL_MNG_ERR_EID: + id: 23 + HK_CPTBL_GADR_ERR_EID: + id: 24 + HK_RTTBL_GADR_ERR_EID: + id: 25 + HK_RCV_MSG_ERR_EID: + id: 26 + HK_UNEXPECTED_GETSTAT2_RET_EID: + id: 27 + HK_MSG_LEN_ERR_EID: + id: 28 + telemetry: + HK_HK_TLM_MID: + msgID: 2158 + struct: HK_HkPacket_t + HK_COMBINED_PKT1_MID: + msgID: 2148 + HK_COMBINED_PKT2_MID: + msgID: 2149 + HK_COMBINED_PKT3_MID: + msgID: 2150 + HK_COMBINED_PKT4_MID: + msgID: 2151 + HK_COMBINED_PKT5_MID: + msgID: 2152 + HK_COMBINED_PKT6_MID: + msgID: 2153 + HK_COMBINED_PKT7_MID: + msgID: 2154 + HK_COMBINED_PKT8_MID: + msgID: 2155 + HK_COMBINED_PKT9_MID: + msgID: 2156 + HK_COMBINED_PKT10_MID: + msgID: 2157 + commands: + HK_CMD_MID: + msgID: 6255 + commands: + Noop: + cc: 0 + struct: CFE_SB_CmdHdr_t + Reset: + cc: 1 + struct: CFE_SB_CmdHdr_t + HK_SEND_COMBINED_PKT_MID: + msgID: 6256 + commands: + SendCombinedPkt: + cc: 0 + struct: HK_Send_Out_Msg_t + HK_SEND_HK_MID: + msgID: 6257 + commands: + SendHK: + cc: 0 + struct: CFE_SB_CmdHdr_t + perfids: + HK_APPMAIN_PERF_ID: + id: 48 + config: + HK_PIPE_DEPTH: + name: HK_PIPE_DEPTH + value: 40 + HK_DISCARD_INCOMPLETE_COMBO: + name: HK_DISCARD_INCOMPLETE_COMBO + value: 0 + HK_COPY_TABLE_ENTRIES: + name: HK_COPY_TABLE_ENTRIES + value: 128 + HK_NUM_BYTES_IN_MEM_POOL: + name: HK_NUM_BYTES_IN_MEM_POOL + value: (6 * 1024) + HK_COPY_TABLE_NAME: + name: HK_COPY_TABLE_NAME + value: CopyTable + HK_RUNTIME_TABLE_NAME: + name: HK_RUNTIME_TABLE_NAME + value: RuntimeTable + HK_COPY_TABLE_FILENAM: + name: HK_COPY_TABLE_FILENAM + value: /cf/apps/hk_cpy_tbl.tbl + HK_MISSION_REV: + name: HK_MISSION_REV + value: 0 + definition: /home/mbenson/git/airliner/apps/hk/wh_design.yaml + elf_files: + - /home/mbenson/git/airliner/build/bebop2/sitl/target/target/exe/cf/apps/HK.so + hs: + short_name: hs + long_name: Heath Services + events: + HS_INIT_EID: + id: 1 + HS_APP_EXIT_EID: + id: 2 + HS_CDS_RESTORE_ERR_EID: + id: 3 + HS_CR_CMD_PIPE_ERR_EID: + id: 4 + HS_CR_EVENT_PIPE_ERR_EID: + id: 5 + HS_CR_WAKEUP_PIPE_ERR_EID: + id: 6 + HS_SUB_EVS_ERR_EID: + id: 7 + HS_SUB_REQ_ERR_EID: + id: 8 + HS_SUB_CMD_ERR_EID: + id: 9 + HS_AMT_REG_ERR_EID: + id: 10 + HS_EMT_REG_ERR_EID: + id: 11 + HS_XCT_REG_ERR_EID: + id: 12 + HS_MAT_REG_ERR_EID: + id: 13 + HS_AMT_LD_ERR_EID: + id: 14 + HS_EMT_LD_ERR_EID: + id: 15 + HS_XCT_LD_ERR_EID: + id: 16 + HS_MAT_LD_ERR_EID: + id: 17 + HS_CDS_CORRUPT_ERR_EID: + id: 18 + HS_CC_ERR_EID: + id: 19 + HS_MID_ERR_EID: + id: 20 + HS_HKREQ_LEN_ERR_EID: + id: 21 + HS_LEN_ERR_EID: + id: 22 + HS_NOOP_INF_EID: + id: 23 + HS_RESET_DBG_EID: + id: 24 + HS_ENABLE_APPMON_DBG_EID: + id: 25 + HS_DISABLE_APPMON_DBG_EID: + id: 26 + HS_ENABLE_EVENTMON_DBG_EID: + id: 27 + HS_DISABLE_EVENTMON_DBG_EID: + id: 28 + HS_ENABLE_ALIVENESS_DBG_EID: + id: 29 + HS_DISABLE_ALIVENESS_DBG_EID: + id: 30 + HS_RESET_RESETS_DBG_EID: + id: 31 + HS_SET_MAX_RESETS_DBG_EID: + id: 32 + HS_APPMON_GETADDR_ERR_EID: + id: 33 + HS_EVENTMON_GETADDR_ERR_EID: + id: 34 + HS_EXECOUNT_GETADDR_ERR_EID: + id: 35 + HS_MSGACTS_GETADDR_ERR_EID: + id: 36 + HS_RESET_LIMIT_ERR_EID: + id: 37 + HS_APPMON_APPNAME_ERR_EID: + id: 38 + HS_APPMON_RESTART_ERR_EID: + id: 39 + HS_APPMON_NOT_RESTARTED_ERR_EID: + id: 40 + HS_APPMON_FAIL_ERR_EID: + id: 41 + HS_APPMON_PROC_ERR_EID: + id: 42 + HS_APPMON_MSGACTS_ERR_EID: + id: 43 + HS_EVENTMON_MSGACTS_ERR_EID: + id: 44 + HS_EVENTMON_PROC_ERR_EID: + id: 45 + HS_EVENTMON_RESTART_ERR_EID: + id: 46 + HS_EVENTMON_NOT_RESTARTED_ERR_EID: + id: 47 + HS_EVENTMON_DELETE_ERR_EID: + id: 48 + HS_EVENTMON_NOT_DELETED_ERR_EID: + id: 49 + HS_AMTVAL_INF_EID: + id: 50 + HS_AMTVAL_ERR_EID: + id: 51 + HS_EMTVAL_INF_EID: + id: 52 + HS_EMTVAL_ERR_EID: + id: 53 + HS_XCTVAL_INF_EID: + id: 54 + HS_XCTVAL_ERR_EID: + id: 55 + HS_MATVAL_INF_EID: + id: 56 + HS_MATVAL_ERR_EID: + id: 57 + HS_DISABLE_APPMON_ERR_EID: + id: 58 + HS_DISABLE_EVENTMON_ERR_EID: + id: 59 + HS_SUB_WAKEUP_ERR_EID: + id: 60 + HS_CPUMON_HOGGING_ERR_EID: + id: 61 + HS_ENABLE_CPUHOG_DBG_EID: + id: 64 + HS_DISABLE_CPUHOG_DBG_EID: + id: 65 + HS_EVENTMON_SUB_EID: + id: 66 + HS_EVENTMON_UNSUB_EID: + id: 67 + HS_BADEMT_UNSUB_EID: + id: 68 + msg_def_overrides: + - parent: HS_HkPacket_t + member: CurrentAppMonState + type: enumeration + enumerations: + DISABLED: 0 + ENABLED: 1 + - parent: HS_HkPacket_t + member: CurrentEventMonState + type: enumeration + enumerations: + DISABLED: 0 + ENABLED: 1 + - parent: HS_HkPacket_t + member: CurrentAlivenessState + type: enumeration + enumerations: + DISABLED: 0 + ENABLED: 1 + - parent: HS_HkPacket_t + member: CurrentCPUHogState + type: enumeration + enumerations: + DISABLED: 0 + ENABLED: 1 + telemetry: + HS_HK_TLM_MID: + msgID: 2168 + struct: HS_HkPacket_t + commands: + HS_CMD_MID: + msgID: 6265 + commands: + Noop: + cc: 0 + struct: CFE_SB_CmdHdr_t + Reset: + cc: 1 + struct: CFE_SB_CmdHdr_t + EnableAppMon: + cc: 2 + struct: CFE_SB_CmdHdr_t + DisableAppMon: + cc: 3 + struct: CFE_SB_CmdHdr_t + EnableEventMon: + cc: 4 + struct: CFE_SB_CmdHdr_t + DisableEventMon: + cc: 5 + struct: CFE_SB_CmdHdr_t + EnableAliveness: + cc: 6 + struct: CFE_SB_CmdHdr_t + DisableAliveness: + cc: 7 + struct: CFE_SB_CmdHdr_t + ResetResetsPerformed: + cc: 8 + struct: CFE_SB_CmdHdr_t + SetMaxResets: + cc: 9 + struct: HS_SetMaxResetsCmd_t + EnableCpuHog: + cc: 10 + struct: CFE_SB_CmdHdr_t + DisableCpuHog: + cc: 11 + struct: CFE_SB_CmdHdr_t + ReportDiag: + cc: 12 + struct: CFE_SB_CmdHdr_t + SetUtilParams: + cc: 13 + struct: HS_SetUtilParamsCmd_t + SetUtilDiag: + cc: 14 + struct: HS_SetUtilDiagCmd_t + HS_SEND_HK_MID: + msgID: 6266 + commands: + SendHK: + cc: 0 + struct: CFE_SB_CmdHdr_t + HS_WAKEUP_MID: + msgID: 6267 + commands: + WakeUp: + cc: 0 + struct: CFE_SB_CmdHdr_t + perfids: + HS_APPMAIN_PERF_ID: + id: 49 + HS_IDLETASK_PERF_ID: + id: 50 + config: + HS_APP_NAME: + name: HS_APP_NAME + value: HS + HS_IDLE_TASK_NAME: + name: HS_IDLE_TASK_NAME + value: HS_IDLE_TASK + HS_IDLE_TASK_STACK_PTR: + name: HS_IDLE_TASK_STACK_PTR + value: 0 + HS_IDLE_TASK_STACK_SIZE: + name: HS_IDLE_TASK_STACK_SIZE + value: 4096 + HS_IDLE_TASK_FLAGS: + name: HS_IDLE_TASK_FLAGS + value: 0 + HS_IDLE_TASK_PRIORITY: + name: HS_IDLE_TASK_PRIORITY + value: 252 + HS_MAX_EXEC_CNT_SLOTS: + name: HS_MAX_EXEC_CNT_SLOTS + value: 32 + HS_MAX_MSG_ACT_TYPES: + name: HS_MAX_MSG_ACT_TYPES + value: 8 + HS_MAX_MSG_ACT_SIZE: + name: HS_MAX_MSG_ACT_SIZE + value: 16 + HS_MAX_MONITORED_APPS: + name: HS_MAX_MONITORED_APPS + value: 32 + HS_MAX_MONITORED_EVENTS: + name: HS_MAX_MONITORED_EVENTS + value: 16 + HS_WATCHDOG_TIMEOUT_VALUE: + name: HS_WATCHDOG_TIMEOUT_VALUE + value: 10000 + HS_POST_PROCESSING_DELAY: + name: HS_POST_PROCESSING_DELAY + value: 0 + HS_WAKEUP_TIMEOUT: + name: HS_WAKEUP_TIMEOUT + value: 1200 + HS_CPU_ALIVE_STRING: + name: HS_CPU_ALIVE_STRING + value: . + HS_CPU_ALIVE_PERIOD: + name: HS_CPU_ALIVE_PERIOD + value: 5 + HS_MAX_RESTART_ACTIONS: + name: HS_MAX_RESTART_ACTIONS + value: 3 + HS_CMD_PIPE_DEPTH: + name: HS_CMD_PIPE_DEPTH + value: 12 + HS_EVENT_PIPE_DEPTH: + name: HS_EVENT_PIPE_DEPTH + value: 32 + HS_WAKEUP_PIPE_DEPTH: + name: HS_WAKEUP_PIPE_DEPTH + value: 1 + HS_RESET_TASK_DELAY: + name: HS_RESET_TASK_DELAY + value: 50 + HS_STARTUP_SYNC_TIMEOUT: + name: HS_STARTUP_SYNC_TIMEOUT + value: 65000 + HS_APPMON_DEFAULT_STAT: + name: HS_APPMON_DEFAULT_STAT + value: HS_STATE_ENABLED + HS_EVENTMON_DEFAULT_STATE: + name: HS_EVENTMON_DEFAULT_STATE + value: HS_STATE_ENABLED + HS_ALIVENESS_DEFAULT_STATE: + name: HS_ALIVENESS_DEFAULT_STATE + value: HS_STATE_ENABLED + HS_CPUHOG_DEFAULT_STATE: + name: HS_CPUHOG_DEFAULT_STATE + value: HS_STATE_ENABLED + HS_AMT_FILENAME: + name: HS_AMT_FILENAME + value: /cf/apps/hs_amt.tbl + HS_EMT_FILENAME: + name: HS_EMT_FILENAME + value: /cf/apps/hs_emt.tbl + HS_XCT_FILENAME: + name: HS_XCT_FILENAME + value: /cf/apps/hs_xct.tbl + HS_MAT_FILENAME: + name: HS_MAT_FILENAME + value: /cf/apps/hs_mat.tbl + HS_UTIL_CALLS_PER_MARK: + name: HS_UTIL_CALLS_PER_MARK + value: 1 + HS_UTIL_CYCLES_PER_INTERVAL: + name: HS_UTIL_CYCLES_PER_INTERVAL + value: 1 + HS_UTIL_PER_INTERVAL_TOTAL: + name: HS_UTIL_PER_INTERVAL_TOTAL + value: 10000 + HS_UTIL_PER_INTERVAL_HOGGIN: + name: HS_UTIL_PER_INTERVAL_HOGGIN + value: 9900 + HS_UTIL_CONV_MULT1: + name: HS_UTIL_CONV_MULT1 + value: 1 + HS_UTIL_CONV_DIV: + name: HS_UTIL_CONV_DIV + value: 10000 + HS_UTIL_CONV_MULT2: + name: HS_UTIL_CONV_MULT2 + value: 1 + HS_UTIL_HOGGING_TIMEOUT: + name: HS_UTIL_HOGGING_TIMEOUT + value: 5 + HS_UTIL_PEAK_NUM_INTERVAL: + name: HS_UTIL_PEAK_NUM_INTERVAL + value: 64 + HS_UTIL_AVERAGE_NUM_INTERVAL: + name: HS_UTIL_AVERAGE_NUM_INTERVAL + value: 4 + HS_UTIL_DIAG_MASK: + name: HS_UTIL_DIAG_MASK + value: 4294967295 + HS_UTIL_TIME_DIAG_ARRAY_POWER: + name: HS_UTIL_TIME_DIAG_ARRAY_POWER + value: 4 + HS_UTIL_TIME_DIAG_ARRAY_LENGTH: + name: HS_UTIL_TIME_DIAG_ARRAY_LENGTH + value: (1<<(HS_UTIL_TIME_DIAG_ARRAY_POWER)) + HS_UTIL_TIME_DIAG_ARRAY_MASK: + name: HS_UTIL_TIME_DIAG_ARRAY_MASK + value: (HS_UTIL_TIME_DIAG_ARRAY_LENGTH - 1) + HS_MISSION_REV: + name: HS_MISSION_REV + value: 0 + definition: /home/mbenson/git/airliner/apps/hs/wh_design.yaml + elf_files: + - /home/mbenson/git/airliner/build/bebop2/sitl/target/target/exe/cf/apps/HS.so + lc: + short_name: lc + long_name: Limits Checker + events: + LC_TASK_EXIT_EID: + id: 1 + LC_INIT_INF_EID: + id: 2 + LC_CR_PIPE_ERR_EID: + id: 3 + LC_SUB_HK_REQ_ERR_EID: + id: 4 + LC_SUB_GND_CMD_ERR_EID: + id: 5 + LC_SUB_SAMPLE_CMD_ERR_EID: + id: 6 + LC_WDT_REGISTER_ERR_EID: + id: 7 + LC_WDT_REREGISTER_ERR_EID: + id: 8 + LC_ADT_REGISTER_ERR_EID: + id: 9 + LC_WRT_REGISTER_ERR_EID: + id: 10 + LC_ART_REGISTER_ERR_EID: + id: 11 + LC_WRT_CDS_REGISTER_ERR_EID: + id: 12 + LC_ART_CDS_REGISTER_ERR_EID: + id: 13 + LC_APP_CDS_REGISTER_ERR_EID: + id: 14 + LC_WDT_LOAD_ERR_EID: + id: 15 + LC_ADT_LOAD_ERR_EID: + id: 16 + LC_WRT_GETADDR_ERR_EID: + id: 17 + LC_ART_GETADDR_ERR_EID: + id: 18 + LC_WDT_GETADDR_ERR_EID: + id: 19 + LC_ADT_GETADDR_ERR_EID: + id: 20 + LC_CDS_RESTORED_INF_EID: + id: 21 + LC_CDS_UPDATED_INF_EID: + id: 22 + LC_CDS_DISABLED_INF_EID: + id: 23 + LC_CC_ERR_EID: + id: 24 + LC_APSAMPLE_APNUM_ERR_EID: + id: 25 + LC_NOOP_INF_EID: + id: 26 + LC_RESET_DBG_EID: + id: 27 + LC_LCSTATE_INF_EID: + id: 28 + LC_LCSTATE_ERR_EID: + id: 29 + LC_APSTATE_NEW_ERR_EID: + id: 30 + LC_APSTATE_CURR_ERR_EID: + id: 31 + LC_APSTATE_APNUM_ERR_EID: + id: 32 + LC_APSTATE_INF_EID: + id: 33 + LC_APOFF_APNUM_ERR_EID: + id: 34 + LC_APOFF_CURR_ERR_EID: + id: 35 + LC_APOFF_INF_EID: + id: 36 + LC_APSTATS_APNUM_ERR_EID: + id: 37 + LC_APSTATS_INF_EID: + id: 38 + LC_WPSTATS_WPNUM_ERR_EID: + id: 39 + LC_WPSTATS_INF_EID: + id: 40 + LC_HKREQ_LEN_ERR_EID: + id: 41 + LC_APSAMPLE_LEN_ERR_EID: + id: 42 + LC_LEN_ERR_EID: + id: 43 + LC_UNSUB_WP_ERR_EID: + id: 44 + LC_SUB_WP_ERR_EID: + id: 45 + LC_WRT_NO_SAVE_ERR_EID: + id: 46 + LC_ART_NO_SAVE_ERR_EID: + id: 47 + LC_APP_NO_SAVE_START_ERR_EID: + id: 48 + LC_MID_INF_EID: + id: 49 + LC_WP_DATATYPE_ERR_EID: + id: 50 + LC_WP_OPERID_ERR_EID: + id: 51 + LC_WP_NAN_ERR_EID: + id: 52 + LC_WP_OFFSET_ERR_EID: + id: 53 + LC_WDTVAL_FPERR_EID: + id: 54 + LC_WDTVAL_ERR_EID: + id: 55 + LC_WDTVAL_INF_EID: + id: 56 + LC_APSAMPLE_CURR_ERR_EID: + id: 57 + LC_AP_PASSTOFAIL_INF_EID: + id: 58 + LC_PASSIVE_FAIL_DBG_EID: + id: 59 + LC_AP_PASSIVE_FAIL_INF_EID: + id: 60 + LC_AP_FAILTOPASS_INF_EID: + id: 61 + LC_ACTION_ERROR_ERR_EID: + id: 62 + LC_INVALID_RPN_ERR_EID: + id: 63 + LC_ADTVAL_RPNERR_EID: + id: 64 + LC_ADTVAL_ERR_EID: + id: 65 + LC_ADTVAL_INF_EID: + id: 66 + LC_CFCALL_ERR_EID: + id: 67 + msg_def_overrides: + - parent: LC_SetLCState_t + member: NewLCState + type: enumeration + enumerations: + ACTIVE: 1 + PASSIVE: 2 + DISABLED: 3 + FROM_CDS: 4 + - parent: LC_SetAPState_t + member: NewAPState + type: enumeration + enumerations: + ACTIVE: 1 + PASSIVE: 2 + DISABLED: 3 + PERMOFF: 4 + - parent: LC_HkPacket_t + member: CurrentLCState + type: enumeration + enumerations: + ACTIVE: 1 + PASSIVE: 2 + DISABLED: 3 + FROM_CDS: 4 + telemetry: + LC_HK_TLM_MID: + msgID: 2178 + struct: LC_HkPacket_t + commands: + LC_CMD_MID: + msgID: 6275 + commands: + Noop: + cc: 0 + struct: CFE_SB_CmdHdr_t + Reset: + cc: 1 + struct: CFE_SB_CmdHdr_t + SetLCState: + cc: 2 + struct: LC_SetLCState_t + SetAPState: + cc: 3 + struct: LC_SetAPState_t + SetAPPermOff: + cc: 4 + struct: LC_SetAPPermOff_t + ResetAPStats: + cc: 5 + struct: LC_ResetAPStats_t + ResetWPStats: + cc: 6 + struct: LC_ResetWPStats_t + LC_SAMPLE_AP_MID: + msgID: 6276 + commands: + SampleAP: + cc: 0 + struct: LC_SampleAP_t + LC_SEND_HK_MID: + msgID: 6277 + commands: + SendHK: + cc: 0 + struct: CFE_SB_CmdHdr_t + perfids: + LC_APPMAIN_PERF_ID: + id: 51 + LC_WDT_SEARCH_PERF_ID: + id: 52 + config: + LC_RTS_REQ_MI: + name: LC_RTS_REQ_MI + value: 6313 + LC_RTS_REQ_CC: + name: LC_RTS_REQ_CC + value: 4 + LC_APP_NAME: + name: LC_APP_NAME + value: LC + LC_PIPE_DEPTH: + name: LC_PIPE_DEPTH + value: 12 + LC_MAX_WATCHPOINTS: + name: LC_MAX_WATCHPOINTS + value: 176 + LC_MAX_ACTIONPOINTS: + name: LC_MAX_ACTIONPOINTS + value: 176 + LC_STATE_POWER_ON_RESET: + name: LC_STATE_POWER_ON_RESET + value: LC_STATE_DISABLED + LC_STATE_WHEN_CDS_RESTORED: + name: LC_STATE_WHEN_CDS_RESTORED + value: LC_STATE_FROM_CDS + LC_WDT_FILENAME: + name: LC_WDT_FILENAME + value: /cf/apps/lc_def_wdt.tbl + LC_ADT_FILENAME: + name: LC_ADT_FILENAME + value: /cf/apps/lc_def_adt.tbl + LC_MAX_RPN_EQU_SIZE: + name: LC_MAX_RPN_EQU_SIZE + value: 20 + LC_MAX_ACTION_TEXT: + name: LC_MAX_ACTION_TEXT + value: 32 + LC_MAX_VALID_ADT_RTSID: + name: LC_MAX_VALID_ADT_RTSID + value: 65520 + LC_FLOAT_TOLERANCE: + name: LC_FLOAT_TOLERANCE + value: -1e-25 + LC_MISSION_REV: + name: LC_MISSION_REV + value: 0 + definition: /home/mbenson/git/airliner/apps/lc/wh_design.yaml + elf_files: + - /home/mbenson/git/airliner/build/bebop2/sitl/target/target/exe/cf/apps/LC.so + md: + short_name: md + long_name: Memory Dwell + events: + MD_INIT_INF_EID: + id: 1 + MD_PIPE_ERR_EID: + id: 2 + MD_RECOVERED_TBL_VALID_INF_EID: + id: 3 + MD_RECOVERED_TBL_NOT_VALID_ERR_EID: + id: 4 + MD_DWELL_TBL_TOO_LARGE_CRIT_EID: + id: 5 + MD_TBL_REGISTER_CRIT_EID: + id: 6 + MD_TBL_INIT_INF_EI: + id: 7 + MD_NOOP_INF_EID: + id: 10 + MD_RESET_CNTRS_DBG_EID: + id: 11 + MD_START_DWELL_INF_EID: + id: 12 + MD_STOP_DWELL_INF_EID: + id: 13 + MD_EMPTY_TBLMASK_ERR_EID: + id: 14 + MD_MID_ERR_EID: + id: 15 + MD_CC_NOT_IN_TBL_ERR_EID: + id: 16 + MD_CC_NOT_IN_LOOP_ERR_EID: + id: 17 + MD_TBL_STATUS_ERR_EID 20: + id: 20 + MD_CMD_LEN_ERR_EID: + id: 21 + MD_MSG_LEN_ERR_EID: + id: 22 + MD_JAM_DWELL_INF_EID: + id: 30 + MD_JAM_NULL_DWELL_INF_EID: + id: 31 + MD_INVALID_JAM_TABLE_ERR_EID: + id: 32 + MD_INVALID_ENTRY_ARG_ERR_EID: + id: 33 + MD_INVALID_LEN_ARG_ERR_EID: + id: 34 + MD_CANT_RESOLVE_JAM_ADDR_ERR_EID: + id: 35 + MD_INVALID_JAM_ADDR_ERR_EID: + id: 36 + MD_JAM_ADDR_NOT_32BIT_ERR_EID: + id: 37 + MD_JAM_ADDR_NOT_16BIT_ERR_EID: + id: 38 + MD_NO_TBL_COPY_ERR_EID: + id: 39 + MD_ZERO_RATE_TBL_INF_EID: + id: 40 + MD_RESOLVE_ERR_EID: + id: 41 + MD_RANGE_ERR_EID: + id: 42 + MD_TBL_HAS_LEN_ERR_EID: + id: 43 + MD_TBL_ENA_FLAG_EID: + id: 44 + MD_TBL_ALIGN_ERR_EID: + id: 45 + MD_SET_SIGNATURE_INF_EID: + id: 46 + MD_INVALID_SIGNATURE_TABLE_ERR_EID: + id: 47 + MD_INVALID_SIGNATURE_LENGTH_ERR_EID: + id: 49 + MD_TBL_SIG_LEN_ERR_EID: + id: 50 + MD_ZERO_RATE_CMD_INF_EID: + id: 51 + MD_DWELL_TBL_INF_EID: + id: 52 + msg_def_overrides: + - parent: MD_CmdSetSignature_t + member: Signature + type: string + telemetry: + MD_DWELL_PKT_MID_BASE: + msgID: 2182 + struct: MD_DwellPkt_t + MD_HK_TLM_MID: + msgID: 2187 + struct: MD_HkTlm_t + MD_DWELL_PKT1_MID: + msgID: 2182 + MD_DWELL_PKT2_MID: + msgID: 2183 + MD_DWELL_PKT3_MID: + msgID: 2184 + MD_DWELL_PKT4_MID: + msgID: 2185 + commands: + MD_CMD_MID: + msgID: 6284 + commands: + Noop: + cc: 0 + struct: CFE_SB_CmdHdr_t + Reset: + cc: 1 + struct: CFE_SB_CmdHdr_t + Start: + cc: 2 + struct: MD_CmdStartStop_t + Stop: + cc: 3 + struct: MD_CmdStartStop_t + Jam: + cc: 4 + struct: MD_CmdJam_t + SetSignature: + cc: 5 + struct: MD_CmdSetSignature_t + MD_SEND_HK_MID: + msgID: 6285 + commands: + SendHK: + cc: 0 + struct: CFE_SB_CmdHdr_t + MD_WAKEUP_MID: + msgID: 6286 + commands: + WakeUp: + cc: 0 + struct: CFE_SB_CmdHdr_t + perfids: + MD_APPMAIN_PERF_ID: + id: 53 + config: + MD_PIPE_NAME: + name: MD_PIPE_NAME + value: MD_CMD_PIPE + MD_PIPE_DEPTH: + name: MD_PIPE_DEPTH + value: 50 + MD_TBL_FILENAME_FORMAT: + name: MD_TBL_FILENAME_FORMAT + value: /cf/apps/md_dw\%02d.tbl + MD_NUM_DWELL_TABLES: + name: MD_NUM_DWELL_TABLES + value: 4 + MD_DWELL_TABLE_SIZE: + name: MD_DWELL_TABLE_SIZE + value: 25 + MD_ENFORCE_DWORD_ALIGN: + name: MD_ENFORCE_DWORD_ALIGN + value: 1 + MD_SIGNATURE_OPTION: + name: MD_SIGNATURE_OPTION + value: 1 + MD_SIGNATURE_FIELD_LENGTH: + name: MD_SIGNATURE_FIELD_LENGTH + value: 32 + MD_MISSION_REV: + name: MD_MISSION_REV + value: 0 + definition: /home/mbenson/git/airliner/apps/md/wh_design.yaml + elf_files: + - /home/mbenson/git/airliner/build/bebop2/sitl/target/target/exe/cf/apps/MD.so + mm: + short_name: mm + long_name: Memory Manager + events: + MM_INIT_INF_EID: + id: 1 + MM_NOOP_INF_EID: + id: 2 + MM_RESET_DBG_EID: + id: 3 + MM_LOAD_WID_INF_EID: + id: 4 + MM_LD_MEM_FILE_INF_EID: + id: 5 + MM_FILL_INF_EID: + id: 6 + MM_PEEK_BYTE_INF_EID: + id: 7 + MM_PEEK_WORD_INF_EID: + id: 8 + MM_PEEK_DWORD_INF_EID: + id: 9 + MM_POKE_BYTE_INF_EID: + id: 10 + MM_POKE_WORD_INF_EID: + id: 11 + MM_POKE_DWORD_INF_EID: + id: 12 + MM_DMP_MEM_FILE_INF_EID: + id: 13 + MM_DUMP_INEVENT_INF_EID: + id: 14 + MM_PIPE_ERR_EID: + id: 15 + MM_MID_ERR_EID: + id: 16 + MM_CC1_ERR_EID: + id: 17 + MM_LEN_ERR_EID: + id: 18 + MM_MEMTYPE_ERR_EID: + id: 19 + MM_SYMNAME_ERR_EID: + id: 20 + MM_DATA_SIZE_BYTES_ERR_EID: + id: 21 + MM_DATA_SIZE_BITS_ERR_EID: + id: 22 + MM_ALIGN32_ERR_EID: + id: 23 + MM_ALIGN16_ERR_EID: + id: 24 + MM_OS_MEMVALIDATE_ERR_EID: + id: 25 + MM_LOAD_FILE_CRC_ERR_EID: + id: 26 + MM_LOAD_WID_CRC_ERR_EID: + id: 27 + MM_OS_EEPROMWRITE8_ERR_EID: + id: 28 + MM_OS_EEPROMWRITE16_ERR_EID: + id: 29 + MM_OS_EEPROMWRITE32_ERR_EID: + id: 30 + MM_OS_CREAT_ERR_EID: + id: 31 + MM_OS_OPEN_ERR_EID: + id: 32 + MM_OS_CLOSE_ERR_EID: + id: 33 + MM_OS_READ_ERR_EID: + id: 34 + MM_OS_READ_EXP_ERR_EID: + id: 35 + MM_OS_WRITE_EXP_ERR_EID: + id: 36 + MM_OS_STAT_ERR_EID: + id: 37 + MM_CFS_COMPUTECRCFROMFILE_ERR_EID: + id: 38 + MM_CMD_FNAME_ERR_EI: + id: 39 + MM_LD_FILE_SIZE_ERR_EID: + id: 40 + MM_FILE_LOAD_PARAMS_ERR_EI: + id: 41 + MM_CFE_FS_READHDR_ERR_EID: + id: 42 + MM_CFE_FS_WRITEHDR_ERR_EID: + id: 43 + MM_HKREQ_LEN_ERR_EID: + id: 44 + MM_SYM_LOOKUP_INF_EID: + id: 45 + MM_SYMNAME_NUL_ERR_EID: + id: 46 + MM_SYMTBL_TO_FILE_INF_EID: + id: 47 + MM_SYMFILENAME_NUL_ERR_EID: + id: 48 + MM_SYMTBL_TO_FILE_FAIL_ERR_EID: + id: 49 + MM_SYMTBL_TO_FILE_INVALID_ERR_EID: + id: 50 + MM_EEPROM_WRITE_ENA_INF_EID: + id: 51 + MM_EEPROM_WRITE_ENA_ERR_EID: + id: 52 + MM_EEPROM_WRITE_DIS_INF_EID: + id: 53 + MM_EEPROM_WRITE_DIS_ERR_EID: + id: 54 + MM_OS_ZERO_READ_ERR_EID: + id: 55 + MM_PSP_READ_ERR_EID: + id: 56 + MM_PSP_WRITE_ERR_EID: + id: 57 + MM_PSP_COPY_ERR_EID: + id: 58 + MM_PSP_SET_ERR_EID: + id: 59 + msg_def_overrides: + - parent: MM_LoadDumpFileHeader_t + member: MemType + type: enumeration + enumerations: + NOMEMTYPE: 0 + RAM: 1 + EEPROM: 2 + MEM8: 3 + MEM16: 4 + MEM32: 5 + - parent: CFS_SymAddr_t + member: SymName + type: string + - parent: MM_PeekCmd_t + member: MemType + type: enumeration + enumerations: + NOMEMTYPE: 0 + RAM: 1 + EEPROM: 2 + MEM8: 3 + MEM16: 4 + MEM32: 5 + - parent: MM_PokeCmd_t + member: MemType + type: enumeration + enumerations: + NOMEMTYPE: 0 + RAM: 1 + EEPROM: 2 + MEM8: 3 + MEM16: 4 + MEM32: 5 + - parent: MM_DumpInEventCmd_t + member: MemType + type: enumeration + enumerations: + NOMEMTYPE: 0 + RAM: 1 + EEPROM: 2 + MEM8: 3 + MEM16: 4 + MEM32: 5 + - parent: MM_LoadMemFromFileCmd_t + member: FileName + type: string + - parent: MM_DumpMemToFileCmd_t + member: MemType + type: enumeration + enumerations: + NOMEMTYPE: 0 + RAM: 1 + EEPROM: 2 + MEM8: 3 + MEM16: 4 + MEM32: 5 + - parent: MM_DumpMemToFileCmd_t + member: FileName + type: string + - parent: MM_FillMemCmd_t + member: MemType + type: enumeration + enumerations: + NOMEMTYPE: 0 + RAM: 1 + EEPROM: 2 + MEM8: 3 + MEM16: 4 + MEM32: 5 + - parent: MM_LookupSymCmd_t + member: SymName + type: string + - parent: MM_SymTblToFileCmd_t + member: FileName + type: string + - parent: MM_HkPacket_t + member: LastAction + type: enumeration + enumerations: + NOACTION: 0 + PEEK: 1 + POKE: 2 + LOAD_FROM_FILE: 3 + LOAD_WID: 4 + DUMP_TO_FILE: 5 + DUMP_INEVENT: 6 + FILL: 7 + SYM_LOOKUP: 8 + SYMTBL_SAVE: 9 + EEPROMWRITE_ENA: 10 + EEPROMWRITE_DIS: 11 + NOOP: 12 + RESET: 13 + - parent: MM_HkPacket_t + member: MemType + type: enumeration + enumerations: + NOMEMTYPE: 0 + RAM: 1 + EEPROM: 2 + MEM8: 3 + MEM16: 4 + MEM32: 5 + - parent: MM_HkPacket_t + member: FileName + type: string + telemetry: + MM_HK_TLM_MID: + msgID: 2191 + struct: MM_HkPacket_t + commands: + MM_CMD_MID: + msgID: 6288 + commands: + Noop: + cc: 0 + struct: CFE_SB_CmdHdr_t + Reset: + cc: 1 + struct: CFE_SB_CmdHdr_t + Peek: + cc: 2 + struct: MM_PeekCmd_t + Poke: + cc: 3 + struct: MM_PokeCmd_t + LoadMemWID: + cc: 4 + struct: MM_LoadMemWIDCmd_t + LoadMemFromFile: + cc: 5 + struct: MM_LoadMemFromFileCmd_t + DumpMemToFile: + cc: 6 + struct: MM_DumpMemToFileCmd_t + DumpInEvent: + cc: 7 + struct: MM_DumpInEventCmd_t + FillMem: + cc: 8 + struct: MM_FillMemCmd_t + LookupSymbol: + cc: 9 + struct: MM_LookupSymCmd_t + SymTblToFile: + cc: 10 + struct: MM_SymTblToFileCmd_t + EnableEEPROMWrite: + cc: 11 + struct: MM_EepromWriteEnaCmd_t + DisableEEPROMWrite: + cc: 12 + struct: MM_EepromWriteDisCmd_t + MM_SEND_HK_MID: + msgID: 6289 + commands: + SendHK: + cc: 0 + struct: CFE_SB_CmdHdr_t + perfids: + MM_APPMAIN_PERF_ID: + id: 54 + MM_EEPROM_FILELOAD_PERF_ID: + id: 55 + MM_EEPROM_FILL_PERF_ID: + id: 56 + MM_EEPROM_POKE_PERF_ID: + id: 57 + MM_SEGBREAK_PERF_ID: + id: 58 + config: + MM_LOAD_WID_CRC_TYPE: + name: MM_LOAD_WID_CRC_TYPE + value: CFE_ES_DEFAULT_CRC + MM_LOAD_FILE_CRC_TYPE: + name: MM_LOAD_FILE_CRC_TYPE + value: CFE_ES_DEFAULT_CRC + MM_DUMP_FILE_CRC_TYPE: + name: MM_DUMP_FILE_CRC_TYPE + value: CFE_ES_DEFAULT_CRC + MM_CFE_HDR_SUBTYPE: + name: MM_CFE_HDR_SUBTYPE + value: 1296913236 + MM_CFE_HDR_DESCRIPTION: + name: MM_CFE_HDR_DESCRIPTION + value: Memory Manager dump file + MM_MAX_LOAD_FILE_DATA_RAM: + name: MM_MAX_LOAD_FILE_DATA_RAM + value: (1024*1024) + MM_MAX_LOAD_FILE_DATA_EEPROM: + name: MM_MAX_LOAD_FILE_DATA_EEPROM + value: (128*1024) + MM_MAX_UNINTERRUPTABLE_DATA: + name: MM_MAX_UNINTERRUPTABLE_DATA + value: 200 + MM_MAX_LOAD_DATA_SEG: + name: MM_MAX_LOAD_DATA_SEG + value: 200 + MM_MAX_DUMP_FILE_DATA_RAM: + name: MM_MAX_DUMP_FILE_DATA_RAM + value: (1024*1024) + MM_MAX_DUMP_FILE_DATA_EEPROM: + name: MM_MAX_DUMP_FILE_DATA_EEPROM + value: (128*1024) + MM_MAX_DUMP_FILE_DATA_SYMTBL: + name: MM_MAX_DUMP_FILE_DATA_SYMTBL + value: (128*1024) + MM_MAX_DUMP_DATA_SEG: + name: MM_MAX_DUMP_DATA_SEG + value: 200 + MM_MAX_FILL_DATA_RAM: + name: MM_MAX_FILL_DATA_RAM + value: (1024*1024) + MM_MAX_FILL_DATA_EEPROM: + name: MM_MAX_FILL_DATA_EEPROM + value: (128*1024) + MM_MAX_FILL_DATA_SEG: + name: MM_MAX_FILL_DATA_SEG + value: 200 + MM_OPT_CODE_MEM32_MEMTYPE: + name: MM_OPT_CODE_MEM32_MEMTYPE + value: true + MM_MAX_LOAD_FILE_DATA_MEM32: + name: MM_MAX_LOAD_FILE_DATA_MEM32 + value: (1024*1024) + MM_MAX_DUMP_FILE_DATA_MEM32: + name: MM_MAX_DUMP_FILE_DATA_MEM32 + value: (1024*1024) + MM_MAX_FILL_DATA_MEM32: + name: MM_MAX_FILL_DATA_MEM32 + value: (1024*1024) + MM_OPT_CODE_MEM16_MEMTYPE: + name: MM_OPT_CODE_MEM16_MEMTYPE + value: true + MM_MAX_LOAD_FILE_DATA_MEM16: + name: MM_MAX_LOAD_FILE_DATA_MEM16 + value: (1024*1024) + MM_MAX_DUMP_FILE_DATA_MEM16: + name: MM_MAX_DUMP_FILE_DATA_MEM16 + value: (1024*1024) + MM_MAX_FILL_DATA_MEM16: + name: MM_MAX_FILL_DATA_MEM16 + value: (1024*1024) + MM_OPT_CODE_MEM8_MEMTYPE: + name: MM_OPT_CODE_MEM8_MEMTYPE + value: true + MM_MAX_LOAD_FILE_DATA_MEM8: + name: MM_MAX_LOAD_FILE_DATA_MEM8 + value: (1024*1024) + MM_MAX_DUMP_FILE_DATA_MEM8: + name: MM_MAX_DUMP_FILE_DATA_MEM8 + value: (1024*1024) + MM_MAX_FILL_DATA_MEM8: + name: MM_MAX_FILL_DATA_MEM8 + value: (1024*1024) + MM_PROCESSOR_CYCL: + name: MM_PROCESSOR_CYCL + value: 0 + MM_MISSION_REV: + name: MM_MISSION_REV + value: 0 + definition: /home/mbenson/git/airliner/apps/mm/wh_design.yaml + elf_files: + - /home/mbenson/git/airliner/build/bebop2/sitl/target/target/exe/cf/apps/MM.so + sc: + short_name: sc + long_name: Stored Command + events: + SC_APP_EXIT_ERR_EID: + id: 1 + SC_LEN_ERR_EID: + id: 2 + SC_INIT_SB_CREATE_ERR_EID: + id: 3 + SC_INIT_SB_SUBSCRIBE_HK_ERR_EID: + id: 4 + SC_INIT_SB_SUBSCRIBE_1HZ_ERR_EID: + id: 5 + SC_INIT_SB_SUBSCRIBE_CMD_ERR_EID: + id: 6 + SC_INIT_INF_EID: + id: 9 + SC_REGISTER_RTS_TBL_ERR_EID: + id: 10 + SC_REGISTER_ATS_TBL_ERR_EID: + id: 11 + SC_REGISTER_RTS_INFO_TABLE_ERR_EID: + id: 16 + SC_REGISTER_RTS_CTRL_BLK_TABLE_ERR_EID: + id: 17 + SC_REGISTER_ATS_INFO_TABLE_ERR_EID: + id: 18 + SC_REGISTER_ATS_CTRL_BLK_TABLE_ERR_EI: + id: 19 + SC_REGISTER_ATS_CMD_STATUS_TABLE_ERR_EID: + id: 20 + SC_RTS_LOAD_COUNT_INFO_EID: + id: 21 + SC_STARTATS_CMD_INF_EID: + id: 23 + SC_STARTATS_CMD_NOT_LDED_ERR_EID: + id: 24 + SC_STARTATS_CMD_NOT_IDLE_ERR_EID: + id: 25 + SC_STARTATS_CMD_INVLD_ID_ERR_EID: + id: 26 + SC_STOPATS_CMD_INF_EID: + id: 27 + SC_STOPATS_NO_ATS_INF_EID: + id: 28 + SC_ATS_SKP_ALL_ERR_EID: + id: 29 + SC_ATS_ERR_SKP_DBG_EID: + id: 30 + SC_SWITCH_ATS_CMD_INF_EID: + id: 31 + SC_SWITCH_ATS_CMD_NOT_LDED_ERR_EID: + id: 32 + SC_SWITCH_ATS_CMD_IDLE_ERR_EID: + id: 33 + SC_ATS_SERVICE_SWTCH_INF_EID: + id: 34 + SC_SERVICE_SWITCH_ATS_CMD_LDED_ERR_EID: + id: 35 + SC_ATS_SERVICE_SWITCH_IDLE_ERR_EID: + id: 36 + SC_ATS_INLINE_SWTCH_INF_EID: + id: 37 + SC_ATS_INLINE_SWTCH_NOT_LDED_ERR_EID: + id: 38 + SC_JUMPATS_CMD_STOPPED_ERR_EID: + id: 39 + SC_JUMP_ATS_INF_EID: + id: 40 + SC_JUMPATS_CMD_NOT_ACT_ERR_EID: + id: 41 + SC_CONT_CMD_ERR_EID: + id: 42 + SC_CONT_CMD_DEB_EID: + id: 43 + SC_ATS_CHKSUM_ERR_EID: + id: 44 + SC_ATS_ABT_ERR_EID: + id: 45 + SC_ATS_DIST_ERR_EID: + id: 46 + SC_ATS_MSMTCH_ERR_EID: + id: 47 + SC_ATS_SKP_ERR_EID: + id: 48 + SC_RTS_DIST_ERR_EID: + id: 49 + SC_RTS_CHKSUM_ERR_EID: + id: 50 + SC_RESET_DEB_EID: + id: 51 + SC_NOOP_INF_EID: + id: 52 + SC_RTS_INVLD_MID_ERR_EID: + id: 59 + SC_RTS_LEN_ERR_EID: + id: 60 + SC_RTS_LEN_BUFFER_ERR_EID: + id: 61 + SC_RTS_LEN_TOO_LONG_ERR_EID: + id: 62 + SC_MID_ERR_EID: + id: 63 + SC_INVLD_CMD_ERR_EID: + id: 64 + SC_GET_ADDRESS_RTS_INFO_ERR_EID: + id: 65 + SC_GET_ADDRESS_RTS_CTRL_BLCK_ERR_EID: + id: 66 + SC_GET_ADDRESS_ATS_INFO_ERR_EID: + id: 67 + SC_GET_ADDRESS_ATS_CTRL_BLCK_ERR_EID: + id: 68 + SC_GET_ADDRESS_ATS_CMD_STAT_ERR_EID: + id: 69 + SC_GET_ADDRESS_RTS_ERR_EID: + id: 70 + SC_GET_ADDRESS_ATS_ERR_EID: + id: 71 + SC_STARTRTS_CMD_DBG_EID: + id: 72 + SC_RTS_START_INF_EID: + id: 73 + SC_STARTRTS_CMD_INVLD_LEN_ERR_EID: + id: 74 + SC_STARTRTS_CMD_NOT_LDED_ERR_EID: + id: 75 + SC_STARTRTS_CMD_DISABLED_ERR_EID: + id: 76 + SC_STARTRTS_CMD_INVALID_ERR_EID: + id: 77 + SC_STOPRTS_CMD_INF_EID: + id: 78 + SC_STOPRTS_CMD_ERR_EID: + id: 79 + SC_DISABLE_RTS_DEB_EID: + id: 80 + SC_DISRTS_CMD_ERR_EID: + id: 81 + SC_ENABLE_RTS_DEB_EID: + id: 82 + SC_ENARTS_CMD_ERR_EID: + id: 83 + SC_RTS_LNGTH_ERR_EID: + id: 84 + SC_RTS_CMD_LNGTH_ERR_EID: + id: 85 + SC_RTS_COMPL_INF_EID: + id: 86 + SC_ATS_COMPL_INF_EID: + id: 87 + SC_JUMP_ATS_SKIPPED_DBG_EID: + id: 88 + SC_REGISTER_APPEND_INFO_TABLE_ERR_EID: + id: 90 + SC_GET_ADDRESS_APPEND_INFO_ERR_EID: + id: 91 + SC_GET_ADDRESS_APPEND_ERR_EID: + id: 92 + SC_REGISTER_APPEND_TBL_ERR_EID: + id: 93 + SC_UPDATE_APPEND_EID: + id: 97 + SC_APPEND_CMD_INF_EID: + id: 98 + SC_APPEND_CMD_ARG_ERR_EID: + id: 99 + SC_APPEND_CMD_TGT_ERR_EID: + id: 100 + SC_APPEND_CMD_SRC_ERR_EID: + id: 101 + SC_APPEND_CMD_FIT_ERR_EID: + id: 102 + SC_VERIFY_ATS_EID: + id: 103 + SC_VERIFY_ATS_NUM_ERR_EID: + id: 104 + SC_VERIFY_ATS_END_ERR_EID: + id: 105 + SC_VERIFY_ATS_PKT_ERR_EID: + id: 106 + SC_VERIFY_ATS_BUF_ERR_EID: + id: 107 + SC_VERIFY_ATS_DUP_ERR_EID: + id: 109 + SC_VERIFY_ATS_MPT_ERR_EID: + id: 110 + SC_TABLE_MANAGE_ID_ERR_EID: + id: 111 + SC_TABLE_MANAGE_RTS_ERR_EID: + id: 112 + SC_TABLE_MANAGE_ATS_ERR_EID: + id: 113 + SC_TABLE_MANAGE_APPEND_ERR_EID: + id: 114 + SC_STARTRTSGRP_CMD_INF_EID: + id: 115 + SC_STARTRTSGRP_CMD_ERR_EID: + id: 116 + SC_STOPRTSGRP_CMD_INF_EID: + id: 117 + SC_STOPRTSGRP_CMD_ERR_EID: + id: 118 + SC_DISRTSGRP_CMD_INF_EID: + id: 119 + SC_DISRTSGRP_CMD_ERR_EID: + id: 120 + SC_ENARTSGRP_CMD_INF_EID: + id: 121 + SC_ENARTSGRP_CMD_ERR_EID: + id: 122 + msg_def_overrides: + - parent: SC_HkTlm_t + member: AtsNumber + type: enumeration + enumerations: + NO_ATS: 0 + ATS_A: 1 + ATS_B: 2 + - parent: SC_HkTlm_t + member: AtpState + type: enumeration + enumerations: + EMPTY: 0 + LOADED: 1 + IDLE: 2 + EXECUTED: 3 + SKIPPED: 4 + EXECUTING: 5 + FAILED_CHECKSUM: 6 + FAILED_DISTRIB: 7 + STARTING: 8 + telemetry: + SC_HK_TLM_MID: + msgID: 2194 + struct: SC_HkTlm_t + commands: + SC_1HZ_WAKEUP_MID: + msgID: 6291 + commands: + 1HzWakeUp: + cc: 0 + struct: SC_NoArgsCmd_t + SC_CMD_MID: + msgID: 6292 + commands: + Noop: + cc: 0 + struct: SC_NoArgsCmd_t + Reset: + cc: 1 + struct: SC_NoArgsCmd_t + StartAts: + cc: 2 + struct: SC_StartAtsCmd_t + StopAts: + cc: 3 + struct: SC_NoArgsCmd_t + StartRts: + cc: 4 + struct: SC_RtsCmd_t + StopRts: + cc: 5 + struct: SC_RtsCmd_t + DisableRts: + cc: 6 + struct: SC_RtsCmd_t + EnableRts: + cc: 7 + struct: SC_RtsCmd_t + SwitchAts: + cc: 8 + struct: SC_NoArgsCmd_t + JumpAts: + cc: 9 + struct: SC_JumpAtsCmd_t + ContinueAtsOnFailure: + cc: 10 + struct: SC_SetContinueAtsOnFailureCmd_t + AppendAts: + cc: 11 + struct: SC_AppendAtsCmd_t + ManageTable: + cc: 12 + struct: SC_NoArgsCmd_t + StartRtsGroup: + cc: 13 + struct: SC_RtsGrpCmd_t + StopRtsGroup: + cc: 14 + struct: SC_RtsGrpCmd_t + DisableRtsGroup: + cc: 15 + struct: SC_RtsGrpCmd_t + EnableRtsGroup: + cc: 16 + struct: SC_RtsGrpCmd_t + SC_SEND_HK_MID: + msgID: 6293 + commands: + SendHK: + cc: 0 + struct: SC_NoArgsCmd_t + perfids: + SC_APPMAIN_PERF_ID: + id: 59 + config: + SC_MAX_CMDS_PER_SEC: + name: SC_MAX_CMDS_PER_SEC + value: 8 + SC_NUMBER_OF_RTS: + name: SC_NUMBER_OF_RTS + value: 64 + SC_ATS_BUFF_SIZE: + name: SC_ATS_BUFF_SIZE + value: 8000 + SC_APPEND_BUFF_SIZE: + name: SC_APPEND_BUFF_SIZE + value: (SC_ATS_BUFF_SIZE / 2) + SC_RTS_BUFF_SIZE: + name: SC_RTS_BUFF_SIZE + value: 150 + SC_MAX_ATS_CMDS: + name: SC_MAX_ATS_CMDS + value: 1000 + SC_LAST_RTS_WITH_EVENTS: + name: SC_LAST_RTS_WITH_EVENTS + value: 20 + SC_PACKET_MIN_SIZE: + name: SC_PACKET_MIN_SIZE + value: 8 + SC_PACKET_MAX_SIZE: + name: SC_PACKET_MAX_SIZE + value: 250 + SC_PIPE_DEPTH: + name: SC_PIPE_DEPTH + value: 12 + SC_ATS_FILE_NAME: + name: SC_ATS_FILE_NAME + value: /cf/apps/sc_ats + SC_APPEND_FILE_NAME: + name: SC_APPEND_FILE_NAME + value: /cf/apps/sc_append.tbl + SC_RTS_FILE_NAME: + name: SC_RTS_FILE_NAME + value: /cf/apps/sc_rts + SC_ATS_TABLE_NAME: + name: SC_ATS_TABLE_NAME + value: ATS_TBL + SC_APPEND_TABLE_NAME: + name: SC_APPEND_TABLE_NAME + value: APPEND_TBL + SC_RTS_TABLE_NAME: + name: SC_RTS_TABLE_NAME + value: RTS_TBL + SC_RTSINFO_TABLE_NAME: + name: SC_RTSINFO_TABLE_NAME + value: RTSINF_TBL + SC_RTP_CTRL_TABLE_NAME: + name: SC_RTP_CTRL_TABLE_NAME + value: RTPCTR_TBL + SC_ATSINFO_TABLE_NAME: + name: SC_ATSINFO_TABLE_NAME + value: ATSINF_TBL + SC_APPENDINFO_TABLE_NAME: + name: SC_APPENDINFO_TABLE_NAME + value: APPINF_TBL + SC_ATS_CTRL_TABLE_NAME: + name: SC_ATS_CTRL_TABLE_NAME + value: ATPCTR_TBL + SC_ATS_CMD_STAT_TABLE_NAME: + name: SC_ATS_CMD_STAT_TABLE_NAME + value: ATSCMD_TBL + SC_CONT_ON_FAILURE_START: + name: SC_CONT_ON_FAILURE_START + value: true + SC_TIME_TO_USE: + name: SC_TIME_TO_USE + value: SC_USE_CFE_TIME + SC_ENABLE_GROUP_COMMANDS: + name: SC_ENABLE_GROUP_COMMANDS + value: true + SC_MISSION_REV: + name: SC_MISSION_REV + value: 0 + definition: /home/mbenson/git/airliner/apps/sc/wh_design.yaml + elf_files: + - /home/mbenson/git/airliner/build/bebop2/sitl/target/target/exe/cf/apps/SC.so + sch: + short_name: sch + long_name: Scheduler + events: + SCH_INITSTATS_INF_EID: + id: 1 + SCH_APP_EXIT_EID: + id: 2 + SCH_CR_PIPE_ERR_EID: + id: 3 + SCH_SUB_HK_REQ_ERR_EID: + id: 4 + SCH_SUB_GND_CMD_ERR_EID: + id: 5 + SCH_SDT_REG_ERR_EID: + id: 7 + SCH_MDT_REG_ERR_EID: + id: 8 + SCH_SDT_LOAD_ERR_EID: + id: 9 + SCH_MDT_LOAD_ERR_EID: + id: 10 + SCH_ACQ_PTR_ERR_EID: + id: 11 + SCH_MINOR_FRAME_TIMER_CREATE_ERR_EID: + id: 12 + SCH_MINOR_FRAME_TIMER_ACC_WARN_EID: + id: 13 + SCH_MAJOR_FRAME_SUB_ERR_EID: + id: 14 + SCH_SEM_CREATE_ERR_EID: + id: 15 + SCH_SAME_SLOT_EID: + id: 16 + SCH_SKIPPED_SLOTS_EID: + id: 17 + SCH_MULTI_SLOTS_EID: + id: 18 + SCH_CORRUPTION_EID: + id: 19 + SCH_PACKET_SEND_EID: + id: 20 + SCH_NOISY_MAJOR_FRAME_ERR_EID: + id: 21 + SCH_SCHEDULE_TBL_ERR_EID: + id: 30 + SCH_SCHEDULE_TABLE_EID: + id: 31 + SCH_MESSAGE_TBL_ERR_EID: + id: 32 + SCH_MESSAGE_TABLE_EID: + id: 33 + SCH_NOOP_CMD_EID: + id: 40 + SCH_RESET_CMD_EID: + id: 41 + SCH_ENABLE_CMD_EID: + id: 42 + SCH_DISABLE_CMD_EID: + id: 43 + SCH_ENA_GRP_CMD_EID: + id: 44 + SCH_DIS_GRP_CMD_EID: + id: 45 + SCH_ENA_SYNC_CMD_EID: + id: 46 + SCH_SEND_DIAG_CMD_EID: + id: 47 + SCH_ENABLE_CMD_ARG_ERR_EI: + id: 50 + SCH_ENABLE_CMD_ENTRY_ERR_EID: + id: 51 + SCH_DISABLE_CMD_ARG_ERR_EID: + id: 52 + SCH_DISABLE_CMD_ENTRY_ERR_EID: + id: 53 + SCH_ENA_GRP_CMD_ERR_EID: + id: 54 + SCH_ENA_GRP_NOT_FOUND_ERR_EID: + id: 55 + SCH_DIS_GRP_CMD_ERR_EID: + id: 56 + SCH_DIS_GRP_NOT_FOUND_ERR_EID: + id: 57 + SCH_CC_ERR_EID: + id: 58 + SCH_MD_ERR_EID: + id: 59 + SCH_CMD_LEN_ERR_EID: + id: 60 + SCH_DEADLINE_REG_ERR_EID: + id: 61 + SCH_SLOT_DEADLINE_FULL_ERR_EID: + id: 62 + SCH_SUB_ACTIVITY_DONE_REQ_ERR_EID: + id: 63 + SCH_UNEXPECTED_ACT_DONE_ERR_EID: + id: 64 + SCH_MUTEX_CREATE_ERR_EID: + id: 65 + SCH_AD_CHILD_TASK_CREATE_ERR_EID: + id: 66 + SCH_AD_RCVD_UNEXPECTED_MSG_ERR_EID: + id: 67 + msg_def_overrides: + - parent: SCH_HkPacket_t + member: SyncToMET + type: enumeration + enumerations: + NONE: 0 + MINOR: 1 + PENDING: 2 + MINOR_AND_PENDING: 3 + MAJOR: 4 + MAJOR_AND_MINOR: 5 + MAJOR_AND_PENDING: 6 + FULLY_SYNCED: 7 + - parent: SCH_HkPacket_t + member: MajorFrameSource + type: enumeration + enumerations: + NONE: 0 + CFE_TIME: 1 + MINOR_FRAME_TIMER: 2 + telemetry: + SCH_ACTIVITY_DONE_MID: + msgID: 2198 + struct: SCH_ActivityDoneMsg_t + SCH_DIAG_TLM_MID: + msgID: 2199 + struct: SCH_DiagPacket_t + SCH_HK_TLM_MID: + msgID: 2200 + struct: SCH_HkPacket_t + commands: + SCH_CMD_MID: + msgID: 6297 + commands: + Noop: + cc: 0 + struct: CFE_SB_CmdHdr_t + Reset: + cc: 1 + struct: CFE_SB_CmdHdr_t + Enable: + cc: 2 + struct: SCH_EntryCmd_t + Disable: + cc: 3 + struct: SCH_EntryCmd_t + EnableGroup: + cc: 4 + struct: SCH_GroupCmd_t + DisableGroup: + cc: 5 + struct: SCH_GroupCmd_t + EnableSync: + cc: 6 + struct: CFE_SB_CmdHdr_t + SendDiag: + cc: 7 + struct: CFE_SB_CmdHdr_t + SCH_SEND_HK_MID: + msgID: 6298 + commands: + SendHK: + cc: 0 + struct: CFE_SB_CmdHdr_t + perfids: + SCH_APPMAIN_PERF_ID: + id: 60 + config: + SCH_PIPE_DEPTH: + name: SCH_PIPE_DEPTH + value: 12 + SCH_TOTAL_SLOTS: + name: SCH_TOTAL_SLOTS + value: 100 + SCH_ENTRIES_PER_SLOT: + name: SCH_ENTRIES_PER_SLOT + value: 5 + SCH_MAX_MESSAGES: + name: SCH_MAX_MESSAGES + value: 128 + SCH_MDT_MIN_MSG_ID: + name: SCH_MDT_MIN_MSG_ID + value: 0 + SCH_MDT_MAX_MSG_ID: + name: SCH_MDT_MAX_MSG_ID + value: CFE_SB_HIGHEST_VALID_MSGID + SCH_MAX_MSG_WORDS: + name: SCH_MAX_MSG_WORDS + value: 64 + SCH_MAX_LAG_COUNT: + name: SCH_MAX_LAG_COUNT + value: (SCH_TOTAL_SLOTS / 2) + SCH_MAX_SLOTS_PER_WAKEUP: + name: SCH_MAX_SLOTS_PER_WAKEUP + value: 5 + SCH_MICROS_PER_MAJOR_FRAME: + name: SCH_MICROS_PER_MAJOR_FRAME + value: 1000000 + SCH_SYNC_SLOT_DRIFT_WINDOW: + name: SCH_SYNC_SLOT_DRIFT_WINDOW + value: 5000 + SCH_STARTUP_SYNC_TIMEOUT: + name: SCH_STARTUP_SYNC_TIMEOUT + value: 50000 + SCH_STARTUP_PERIOD: + name: SCH_STARTUP_PERIOD + value: (5*SCH_MICROS_PER_MAJOR_FRAME) + SCH_MAX_NOISY_MAJORF: + name: SCH_MAX_NOISY_MAJORF + value: 2 + SCH_LIB_PRESENCE: + name: SCH_LIB_PRESENCE + value: 1 + SCH_LIB_DIS_CTR: + name: SCH_LIB_DIS_CTR + value: 0 + SCH_SCHEDULE_FILENAME: + name: SCH_SCHEDULE_FILENAME + value: /cf/apps/sch_def_schtbl.tbl + SCH_MESSAGE_FILENAME: + name: SCH_MESSAGE_FILENAME + value: /cf/apps/sch_def_msgtbl.tbl + SCH_MISSION_REV: + name: SCH_MISSION_REV + value: 0 + SCH_AD_PIPE_DEPTH: + name: SCH_AD_PIPE_DEPTH + value: 3 + SCH_AD_CHILD_TASK_PRIORITY: + name: SCH_AD_CHILD_TASK_PRIORITY + value: 10 + SCH_DEADLINES_PER_SLOT: + name: SCH_DEADLINES_PER_SLOT + value: 5 + SCH_AD_CHILD_TASK_FLAGS: + name: SCH_AD_CHILD_TASK_FLAGS + value: OS_ENABLE_CORE_0 + definition: /home/mbenson/git/airliner/apps/sch/wh_design.yaml + elf_files: + - /home/mbenson/git/airliner/build/bebop2/sitl/target/target/exe/cf/apps/SCH.so + to: + short_name: to + long_name: Telemetry Output + events: + TO_INF_EID: + id: 1 + TO_INIT_INF_EID: + id: 2 + TO_CONFIG_TABLE_INF_EID: + id: 3 + TO_CDS_INF_EID: + id: 4 + TO_CMD_INF_EID: + id: 5 + TO_ERR_EID: + id: 6 + TO_INIT_ERR_EID: + id: 7 + TO_CONFIG_TABLE_ERR_EID: + id: 8 + TO_CDS_ERR_EID: + id: 9 + TO_CMD_ERR_EID: + id: 10 + TO_PIPE_ERR_EID: + id: 11 + TO_MSGID_ERR_EID: + id: 12 + TO_MSGLEN_ERR_EID: + id: 13 + TO_MSG_WRITE_ERR_EID: + id: 14 + TO_MSG_UNSUB_DBG_EID: + id: 15 + TO_MSG_DROP_FROM_FLOW_DBG_EID: + id: 16 + TO_CR_POOL_ERR_EID: + id: 17 + TO_GET_POOL_ERR_EID: + id: 18 + TO_TLM_LISTEN_ERR_EID: + id: 19 + TO_MSG_FLOW_INFO_EID: + id: 20 + TO_PQUEUE_INFO_EID: + id: 21 + TO_OUT_CH_INFO_EID: + id: 22 + TO_CMD_NOOP_EID: + id: 23 + TO_CMD_RESET_EID: + id: 24 + TO_CMD_ADD_MSG_FLOW_EID: + id: 25 + TO_CMD_REMOVE_MSG_FLOW_EID: + id: 26 + TO_CMD_SEND_DIAG_EID: + id: 27 + TO_NO_ENCODE_FUNC_EID: + id: 28 + msg_def_overrides: + - parent: TO_ChannelDiagTlm_t + member: State + type: enumeration + enumerations: + UNKNOWN: 0 + CLOSED: 1 + OPEN: 2 + - parent: TO_ChannelDiagTlm_t + member: ConfigTableName + type: string + - parent: TO_ChannelDiagTlm_t + member: ConfigTableFileName + type: string + - parent: TO_ChannelDiagTlm_t + member: DumpTableName + type: string + - parent: TO_ChannelDiagTlm_t + member: ChannelName + type: string + - parent: TO_ChannelDiagTlm_t + member: ConfigTableName + type: string + - parent: TO_ChannelDiagTlm_t + member: ConfigTableFileName + type: string + - parent: TO_PriorityDiagTlm_t + member: State + type: enumeration + enumerations: + UNKNOWN: 0 + CLOSED: 1 + OPEN: 2 + - parent: TO_PriorityDiagTlm_t + member: QType + type: enumeration + enumerations: + FIFO: 0 + SINGLE: 1 + telemetry: + TO_DATA_TYPE_MID: + msgID: 2203 + TO_DIAG_MSG_FLOW_MID: + msgID: 2204 + struct: TO_MsgFlowListPkt_t + TO_DIAG_TLM_MID: + msgID: 2205 + struct: TO_ChannelDiagTlm_t + TO_HK_TLM_MID: + msgID: 2206 + struct: TO_HkTlm_t + commands: + TO_CMD_MID: + msgID: 6303 + commands: + Noop: + cc: 0 + struct: TO_NoArgCmd_t + Reset: + cc: 1 + struct: TO_NoArgCmd_t + AddMessageFlow: + cc: 2 + struct: TO_AddMessageFlowCmd_t + RemoveMessageFlow: + cc: 3 + struct: TO_RemoveMessageFlowCmd_t + QueryMessageFlow: + cc: 4 + struct: TO_QueryMessageFlowCmd_t + QueryPriorityQueue: + cc: 5 + struct: TO_QueryPriorityQueueCmd_t + QueryOutputChannel: + cc: 6 + struct: TO_QueryOutputChannelCmd_t + SendDiag: + cc: 7 + struct: TO_SendDiagCmd_t + TO_SEND_HK_MID: + msgID: 6304 + commands: + SendHK: + cc: 0 + struct: TO_NoArgCmd_t + TO_SEND_TLM_MID: + msgID: 6305 + commands: + SendTelemetry: + cc: 0 + struct: TO_NoArgCmd_t + perfids: + TO_MAIN_TASK_PERF_ID: + id: 61 + TO_SOCKET_SEND_PERF_ID: + id: 62 + config: + TO_MAX_MESSAGE_FLOWS: + name: TO_MAX_MESSAGE_FLOWS + value: 200 + TO_MAX_PRIORITY_QUEUES: + name: TO_MAX_PRIORITY_QUEUES + value: 10 + TO_CUSTOM_CHILD_TASK_FLAGS: + name: TO_CUSTOM_CHILD_TASK_FLAGS + value: OS_ENABLE_CORE_0 + TO_CUSTOM_TASK_STACK_SIZE: + name: TO_CUSTOM_TASK_STACK_SIZE + value: 131072 + TO_MISSION_REV: + name: TO_MISSION_REV + value: 0 + TO_SCH_PIPE_DEPTH: + name: TO_SCH_PIPE_DEPTH + value: 2 + TO_SCH_PIPE_NAME: + name: TO_SCH_PIPE_NAME + value: TO_SCH_PIPE + TO_SCH_PIPE_PEND_TIME: + name: TO_SCH_PIPE_PEND_TIME + value: 2000 + TO_WAKEUP_MID_MAX_MSG_COUNT: + name: TO_WAKEUP_MID_MAX_MSG_COUNT + value: 1 + TO_SEND_HK_MID_MAX_MSG_COUNT: + name: TO_SEND_HK_MID_MAX_MSG_COUNT + value: 1 + TO_CMD_PIPE_DEPTH: + name: TO_CMD_PIPE_DEPTH + value: 4 + TO_CMD_PIPE_NAME: + name: TO_CMD_PIPE_NAME + value: TO_CMD_PIPE + TO_DATA_PIPE_DEPTH: + name: TO_DATA_PIPE_DEPTH + value: CFE_SB_MAX_PIPE_DEPTH + TO_DATA_PIPE_NAME: + name: TO_DATA_PIPE_NAME + value: TO_DATA_PIPE + TO_GROUND_BINARY_CONFIG_TABLE_FILENAME: + name: TO_GROUND_BINARY_CONFIG_TABLE_FILENAME + value: /cf/apps/to_grnd_bin.tbl + TO_GROUND_PROTOBUF_CONFIG_TABLE_FILENAME: + name: TO_GROUND_PROTOBUF_CONFIG_TABLE_FILENAME + value: /cf/apps/to_grnd_pb.tbl + TO_MAX_MEMPOOL_BLK_SIZES: + name: TO_MAX_MEMPOOL_BLK_SIZES + value: 8 + TO_MEM_BLOCK_SIZE_01: + name: TO_MEM_BLOCK_SIZE_01 + value: 32 + TO_MEM_BLOCK_SIZE_02: + name: TO_MEM_BLOCK_SIZE_02 + value: 64 + TO_MEM_BLOCK_SIZE_03: + name: TO_MEM_BLOCK_SIZE_03 + value: 128 + TO_MEM_BLOCK_SIZE_04: + name: TO_MEM_BLOCK_SIZE_04 + value: 256 + TO_MEM_BLOCK_SIZE_05: + name: TO_MEM_BLOCK_SIZE_05 + value: 512 + TO_MEM_BLOCK_SIZE_06: + name: TO_MEM_BLOCK_SIZE_06 + value: 2048 + TO_MEM_BLOCK_SIZE_07: + name: TO_MEM_BLOCK_SIZE_07 + value: 8192 + TO_MAX_BLOCK_SIZE: + name: TO_MAX_BLOCK_SIZE + value: TO_MEM_BLOCK_SIZE_07 + TO_MEM_BLOCK_SIZE_07 + TO_GROUND_BINARY_CONFIG_TABLENAME: + name: TO_GROUND_BINARY_CONFIG_TABLENAME + value: GRND_BIN_CFG + TO_GROUND_BINARY_DUMP_TABLENAME: + name: TO_GROUND_BINARY_DUMP_TABLENAME + value: GRND_BIN_DMP + TO_GROUND_PROTOBUF_CONFIG_TABLENAME: + name: TO_GROUND_PROTOBUF_CONFIG_TABLENAME + value: GRND_PB_CFG + TO_GROUND_PROTOBUF_DUMP_TABLENAME: + name: TO_GROUND_PROTOBUF_DUMP_TABLENAME + value: GRND_PB_DMP + TO_STARTUP_TIMEOUT_MSEC: + name: TO_STARTUP_TIMEOUT_MSEC + value: 1000 + TO_MAX_MSGS_OUT_PER_FRAME: + name: TO_MAX_MSGS_OUT_PER_FRAME + value: 100 + TO_MAX_CHANNELS: + name: TO_MAX_CHANNELS + value: 5 + TO_OUTPUT_QUEUE_DEPTH: + name: TO_OUTPUT_QUEUE_DEPTH + value: 10 + TO_NUM_BYTES_IN_MEM_POOL: + name: TO_NUM_BYTES_IN_MEM_POOL + value: TO_MAX_CHANNELS * TO_OUTPUT_QUEUE_DEPTH * TO_MAX_BLOCK_SIZE + TO_MAX_PROTOBUF_ENC_LEN: + name: TO_MAX_PROTOBUF_ENC_LEN + value: 5000 + definition: /home/mbenson/git/airliner/apps/to/wh_design.yaml + elf_files: + - /home/mbenson/git/airliner/build/bebop2/sitl/target/target/exe/cf/apps/TO.so + px4lib: + short_name: px4lib + long_name: PX4 Library + events: + telemetry: + PX4_ACTUATOR_ARMED_MID: + msgID: 2210 + struct: PX4_ActuatorArmedMsg_t + PX4_ACTUATOR_CONTROLS_0_MID: + msgID: 2211 + struct: PX4_ActuatorControlsMsg_t + PX4_ACTUATOR_CONTROLS_1_MID: + msgID: 2212 + struct: PX4_ActuatorControlsMsg_t + PX4_ACTUATOR_CONTROLS_2_MID: + msgID: 2213 + struct: PX4_ActuatorControlsMsg_t + PX4_ACTUATOR_CONTROLS_3_MID: + msgID: 2214 + struct: PX4_ActuatorControlsMsg_t + PX4_ACTUATOR_DIRECT_MID: + msgID: 2215 + struct: PX4_ActuatorDirectMsg_t + PX4_ACTUATOR_OUTPUTS_MID: + msgID: 2216 + struct: PX4_ActuatorOutputsMsg_t + PX4_ADC_REPORT_MID: + msgID: 2217 + struct: PX4_ActuatorOutputsMsg_t + PX4_AIRSPEED_MID: + msgID: 2218 + struct: PX4_AirspeedMsg_t + PX4_ATT_POS_MOCAP_MID: + msgID: 2219 + struct: PX4_AttPosMoCapMsg_t + PX4_BATTERY_STATUS_MID: + msgID: 2220 + struct: PX4_BatteryStatusMsg_t + PX4_CAMERA_TRIGGER_MID: + msgID: 2221 + struct: PX4_CameraTriggerMsg_t + PX4_COMMANDER_STATE_MID: + msgID: 2222 + struct: PX4_CommanderStateMsg_t + PX4_CONTROL_STATE_MID: + msgID: 2223 + struct: PX4_ControlStateMsg_t + PX4_CPULOAD_MID: + msgID: 2224 + struct: PX4_CpuLoadMsg_t + PX4_DEBUG_KEY_VALUE_MID: + msgID: 2225 + struct: PX4_DebugKeyValueMsg_t + PX4_DIFFERENTIAL_PRESSURE_MID: + msgID: 2226 + struct: PX4_DifferentialPressureMsg_t + PX4_DISTANCE_SENSOR_MID: + msgID: 2227 + struct: PX4_DistanceSensorMsg_t + PX4_FW_POS_CTRL_STATUS_MID: + msgID: 2228 + struct: PX4_FwPosCtrlStatusMsg_t + PX4_FW_VIRTUAL_ATTITUDE_SETPOINT_MID: + msgID: 2229 + struct: PX4_FwVirtualAttitudeSetpointMsg_t + PX4_FW_VIRTUAL_RATES_SETPOINT_MID: + msgID: 2230 + struct: PX4_FwVirtualRatesSetpointMsg_t + PX4_EKF2_INNOVATIONS_MID: + msgID: 2231 + struct: PX4_Ekf2InnovationsMsg_t + PX4_EKF2_REPLAY_MID: + msgID: 2232 + struct: PX4_Ekf2ReplayMsg_t + PX4_ESC_REPORT_MID: + msgID: 2233 + struct: PX4_EscReport_t + PX4_ESC_STATUS_MID: + msgID: 2234 + struct: PX4_EscReportMsg_t + PX4_ESTIMATOR_STATUS_MID: + msgID: 2235 + struct: PX4_EstimatorStatusMsg_t + PX4_FENCE_MID: + msgID: 2236 + struct: PX4_FenceMsg_t + PX4_FENCE_VERTEX_MID: + msgID: 2237 + struct: PX4_FenceVertex_t + PX4_FILTERED_BOTTOM_FLOW_MID: + msgID: 2238 + struct: PX4_FilteredBottomFlowMsg_t + PX4_FOLLOW_TARGET_MID: + msgID: 2239 + struct: PX4_FollowTargetMsg_t + PX4_GEOFENCE_RESULT_MID: + msgID: 2240 + struct: PX4_GeofenceResultMsg_t + PX4_GPS_DUMP_MID: + msgID: 2241 + struct: PX4_GpsDumpMsg_t + PX4_GPS_INJECT_DATA_MID: + msgID: 2242 + struct: PX4_GpsInjectDataMsg_t + PX4_HIL_SENSOR_MID: + msgID: 2243 + struct: PX4_HilSensorMsg_t + PX4_HOME_POSITION_MID: + msgID: 2244 + struct: PX4_HomePositionMsg_t + PX4_INPUT_RC_MID: + msgID: 2245 + struct: PX4_InputRcMsg_t + PX4_LED_CONTROL_MID: + msgID: 2246 + struct: PX4_LedControlMsg_t + PX4_LOG_MESSAGE_MID: + msgID: 2247 + struct: PX4_LogMessageMsg_t + PX4_MANUAL_CONTROL_SETPOINT_MID: + msgID: 2248 + struct: PX4_ManualControlSetpointMsg_t + PX4_MAVLINK_LOG_MID: + msgID: 2249 + struct: PX4_MavlinkLogMsg_t + PX4_MC_ATT_CTRL_STATUS_MID: + msgID: 2250 + struct: PX4_McAttCtrlStatusMsg_t + PX4_MC_VIRTUAL_ATTITUDE_SETPOINT_MID: + msgID: 2251 + struct: PX4_McVirtualAttitudeSetpointMsg_t + PX4_MC_VIRTUAL_RATES_SETPOINT_MID: + msgID: 2252 + struct: PX4_McVirtualRatesSetpointMsg_t + PX4_MISSION_MID: + msgID: 2253 + struct: PX4_MissionMsg_t + PX4_MISSION_RESULT_MID: + msgID: 2254 + struct: PX4_MissionResultMsg_t + PX4_MULTIROTOR_MOTOR_LIMITS_MID: + msgID: 2255 + PX4_OFFBOARD_CONTROL_MODE_MID: + msgID: 2256 + struct: PX4_OffboardControlModeMsg_t + PX4_OPTICAL_FLOW_MID: + msgID: 2257 + struct: PX4_OpticalFlowMsg_t + PX4_OUTPUT_PWM_MID: + msgID: 2258 + struct: PX4_OutputPwmMsg_t + PX4_PARAMETER_UPDATE_MID: + msgID: 2259 + struct: PX4_ParameterUpdateMsg_t + PX4_POSITION_SETPOINT_MID: + msgID: 2260 + struct: PX4_PositionSetpoint_t + PX4_POSITION_SETPOINT_TRIPLET_MID: + msgID: 2261 + struct: PX4_PositionSetpointTripletMsg_t + PX4_PWM_INPUT_MID: + msgID: 2262 + struct: PX4_PwmInputMsg_t + PX4_QSHELL_REQ_MID: + msgID: 2263 + struct: PX4_QShellReqMsg_t + PX4_RC_CHANNELS_MID: + msgID: 2264 + struct: PX4_RcChannelsMsg_t + PX4_RC_PARAMETER_MAP_MID: + msgID: 2265 + struct: PX4_RcParameterMapMsg_t + PX4_SAFETY_MID: + msgID: 2266 + struct: PX4_SafetyMsg_t + PX4_SATELLITE_INFO_MID: + msgID: 2267 + struct: PX4_SatelliteInfoMsg_t + PX4_SENSOR_ACCEL_MID: + msgID: 2268 + struct: PX4_SensorAccelMsg_t + PX4_SENSOR_BARO_MID: + msgID: 2269 + struct: PX4_SensorBaroMsg_t + PX4_SENSOR_COMBINED_MID: + msgID: 2270 + struct: PX4_SensorCombinedMsg_t + PX4_SENSOR_GYRO_MID: + msgID: 2271 + struct: PX4_SensorGyroMsg_t + PX4_SENSOR_MAG_MID: + msgID: 2272 + struct: PX4_SensorMagMsg_t + PX4_SERVORAIL_STATUS_MID: + msgID: 2273 + struct: PX4_ServorailStatusMsg_t + PX4_SUBSYSTEM_INFO_MID: + msgID: 2274 + struct: PX4_SubsystemInfoMsg_t + PX4_SYSTEM_POWER_MID: + msgID: 2275 + struct: PX4_SystemPowerMsg_t + PX4_TECS_STATUS_MID: + msgID: 2276 + struct: PX4_TecsStatusMsg_t + PX4_TELEMETRY_STATUS_MID: + msgID: 2277 + struct: PX4_TelemetryStatusMsg_t + PX4_TEST_MOTOR_MID: + msgID: 2278 + struct: PX4_TestMotorMsg_t + PX4_TIME_OFFSET_MID: + msgID: 2279 + struct: PX4_TimeOffsetMsg_t + PX4_TRANSPONDER_REPORT_MID: + msgID: 2280 + struct: PX4_TransponderReportMsg_t + PX4_UAVCAN_PARAMETER_REQUEST_MID: + msgID: 2281 + struct: PX4_UavCanParameterRequestMsg_t + PX4_UAVCAN_PARAMETER_VALUE_MID: + msgID: 2282 + struct: PX4_UavCanParameterValueMsg_t + PX4_VEHICLE_ATTITUDE_MID: + msgID: 2283 + struct: PX4_VehicleAttitudeMsg_t + PX4_VEHICLE_ATTITUDE_SETPOINT_MID: + msgID: 2284 + struct: PX4_VehicleAttitudeSetpointMsg_t + PX4_VEHICLE_COMMAND_ACK_MID: + msgID: 2285 + struct: PX4_VehicleCommandAckMsg_t + PX4_VEHICLE_COMMAND_MID: + msgID: 2286 + struct: PX4_VehicleCommandMsg_t + PX4_VEHICLE_CONTROL_MODE_MID: + msgID: 2287 + struct: PX4_VehicleControlModeMsg_t + PX4_VEHICLE_FORCE_SETPOINT_MID: + msgID: 2288 + struct: PX4_VehicleForceSetpointMsg_t + PX4_VEHICLE_GLOBAL_POSITION_MID: + msgID: 2289 + struct: PX4_VehicleGlobalPositionMsg_t + PX4_VEHICLE_GLOBAL_VELOCITY_SETPOINT_MID: + msgID: 2290 + struct: PX4_VehicleGlobalVelocitySetpointMsg_t + PX4_VEHICLE_GPS_POSITION_MID: + msgID: 2291 + struct: PX4_VehicleGpsPositionMsg_t + PX4_VEHICLE_LAND_DETECTED_MID: + msgID: 2292 + struct: PX4_VehicleLandDetectedMsg_t + PX4_VEHICLE_LOCAL_POSITION_MID: + msgID: 2293 + struct: PX4_VehicleLocalPositionMsg_t + PX4_VEHICLE_LOCAL_POSITION_SETPOINT_MID: + msgID: 2294 + struct: PX4_VehicleLocalPositionSetpointMsg_t + PX4_VEHICLE_RATES_SETPOINT_MID: + msgID: 2295 + struct: PX4_VehicleRatesSetpointMsg_t + PX4_VEHICLE_STATUS_MID: + msgID: 2296 + struct: PX4_VehicleStatusMsg_t + PX4_VISION_POSITION_ESTIMATE_MID: + msgID: 2297 + struct: PX4_VisionPositionEstimateMsg_t + PX4_VTOL_VEHICLE_STATUS_MID: + msgID: 2298 + struct: PX4_VtolVehicleStatusMsg_t + PX4_WIND_ESTIMATE_MID: + msgID: 2299 + struct: PX4_WindEstimateMsg_t + PX4_SENSOR_CORRECTION_MID: + msgID: 2300 + struct: PX4_SensorCorrectionMsg_t + FLOW_FRAME_MID: + msgID: + struct: PX4_OpticalFlowFrameMsg_t + commands: + perfids: + config: + definition: /home/mbenson/git/airliner/apps/px4lib/wh_design.yaml + elf_files: + - /home/mbenson/git/airliner/build/bebop2/sitl/target/target/exe/cf/apps/PX4LIB.so + ak8963: + short_name: ak8963 + long_name: TBD + events: + AK8963_INIT_INF_EID: + id: 1 + AK8963_CMD_NOOP_EID: + id: 2 + AK8963_SUBSCRIBE_ERR_EID: + id: 3 + AK8963_PIPE_INIT_ERR_EID: + id: 4 + AK8963_CFGTBL_MANAGE_ERR_EID: + id: 5 + AK8963_CFGTBL_GETADDR_ERR_EID: + id: 6 + AK8963_RCVMSG_ERR_EID: + id: 7 + AK8963_MSGID_ERR_EID: + id: 8 + AK8963_CC_ERR_EID: + id: 9 + AK8963_MSGLEN_ERR_EID: + id: 10 + AK8963_CFGTBL_REG_ERR_EID: + id: 11 + AK8963_CFGTBL_LOAD_ERR_EID: + id: 12 + AK8963_UNINIT_ERR_EID: + id: 13 + AK8963_INIT_ERR_EID: + id: 14 + AK8963_READ_ERR_EID: + id: 15 + AK8963_VALIDATE_ERR_EID: + id: 16 + AK8963_CALIBRATE_INF_EID: + id: 17 + AK8963_CALIBRATE_ERR_EID: + id: 18 + telemetry: + AK8963_DIAG_TLM_MID: + msgID: 2323 + struct: AK8963_DiagPacket_t + AK8963_HK_TLM_MID: + msgID: 2324 + struct: AK8963_HkTlm_t + commands: + AK8963_CMD_MID: + msgID: 6421 + commands: + Noop: + cc: 0 + struct: CFE_SB_CmdHdr_t + Reset: + cc: 1 + struct: CFE_SB_CmdHdr_t + SendDiag: + cc: 2 + struct: CFE_SB_CmdHdr_t + SetCalibration: + cc: 3 + struct: AK8963_SetCalibrationCmd_t + AK8963_SEND_HK_MID: + msgID: 6422 + commands: + SendHK: + cc: 0 + struct: AK8963_NoArgCmd + AK8963_WAKEUP_MID: + msgID: 6423 + commands: + WakeUp: + cc: 0 + struct: AK8963_NoArgCmd + perfids: + AK8963_MAIN_TASK_PERF_ID: + id: 63 + AK8963_RECEIVE_PERF_ID: + id: 64 + AK8963_SEND_PERF_ID: + id: 65 + config: + AK8963_SB_TIMEOUT: + name: AK8963_SB_TIMEOUT + value: CFE_SB_PEND_FOREVER + AK8963_MISSION_REV: + name: AK8963_MISSION_REV + value: 0 + AK8963_SCH_PIPE_DEPTH: + name: AK8963_SCH_PIPE_DEPTH + value: 2 + AK8963_SCH_PIPE_NAME: + name: AK8963_SCH_PIPE_NAME + value: AK8963_SCH_PIPE + AK8963_SCH_PIPE_PEND_TIME: + name: AK8963_SCH_PIPE_PEND_TIME + value: 2000 + AK8963_PARAM_PIPE_DEPTH: + name: AK8963_PARAM_PIPE_DEPTH + value: 4 + AK8963_PARAM_PIPE_NAME: + name: AK8963_PARAM_PIPE_NAME + value: AK8963_PARAM_PIPE + AK8963_WAKEUP_MID_MAX_MSG_COUNT: + name: AK8963_WAKEUP_MID_MAX_MSG_COUNT + value: 1 + AK8963_SEND_HK_MID_MAX_MSG_COUNT: + name: AK8963_SEND_HK_MID_MAX_MSG_COUNT + value: 1 + AK8963_CMD_PIPE_DEPTH: + name: AK8963_CMD_PIPE_DEPTH + value: 4 + AK8963_CMD_PIPE_NAME: + name: AK8963_CMD_PIPE_NAME + value: AK8963_CMD_PIPE + AK8963_DATA_PIPE_DEPTH: + name: AK8963_DATA_PIPE_DEPTH + value: 4 + AK8963_DATA_PIPE_NAME: + name: AK8963_DATA_PIPE_NAME + value: AK8963_DATA_PIPE + AK8963_CONFIG_TABLE_FILENAME: + name: AK8963_CONFIG_TABLE_FILENAME + value: /cf/apps/ak8963_config.tbl + AK8963_STARTUP_TIMEOUT_MSEC: + name: AK8963_STARTUP_TIMEOUT_MSEC + value: 1000 + AK8963_MAG_DIVIDER: + name: AK8963_MAG_DIVIDER + value: 1090.0f + AK8963_MAG_UNIT: + name: AK8963_MAG_UNIT + value: 1.0f + definition: /home/mbenson/git/airliner/apps/ak8963/wh_design.yaml + elf_files: + - /home/mbenson/git/airliner/build/bebop2/sitl/target/target/exe/cf/apps/AK8963.so + amc: + short_name: amc + long_name: Actuator Motor Control + events: + AMC_INIT_INF_EID: + id: 1 + AMC_PWM_CFGTBL_MIN_LT_DISARMED_ERR_EID: + id: 2 + AMC_PWM_CFGTBL_MAX_LT_MIN_ERR_EID: + id: 3 + AMC_CMD_NOOP_EID: + id: 4 + AMC_SUBSCRIBE_ERR_EID: + id: 5 + AMC_PIPE_INIT_ERR_EID: + id: 6 + AMC_MIXER_INIT_ERR_EID: + id: 7 + AMC_PWM_CFGTBL_MANAGE_ERR_EID: + id: 8 + AMC_MIXER_CFGTBL_MANAGE_ERR_EID: + id: 9 + AMC_PWM_CFGTBL_GETADDR_ERR_EID: + id: 10 + AMC_MIXER_CFGTBL_GETADDR_ERR_EID: + id: 11 + AMC_RCVMSG_ERR_EID: + id: 12 + AMC_MSGID_ERR_EID: + id: 13 + AMC_CC_ERR_EID: + id: 14 + AMC_MSGLEN_ERR_EID: + id: 15 + AMC_DEVICE_INIT_ERR_EID: + id: 16 + AMC_PWM_CFGTBL_REG_ERR_EID: + id: 17 + AMC_MIXER_CFGTBL_REG_ERR_EID: + id: 18 + AMC_PWM_CFGTBL_LOAD_ERR_EID: + id: 19 + AMC_MIXER_CFGTBL_LOAD_ERR_EID: + id: 20 + AMC_MIXER_INVALID_MIXER_ERR_EID: + id: 21 + AMC_MIXER_INVLD_ROTOR_CONFIG_ERR_EID: + id: 22 + AMC_MIXER_TBLVAL_NONZER_DATA_ERR_EID: + id: 23 + AMC_PARAM_UPDATE_ERR_EID: + id: 24 + AMC_DELETE_CB_REG_ERR_EID: + id: 25 + telemetry: + AMC_HK_TLM_MID: + msgID: 2328 + struct: AMC_HkTlm_t + AMC_OUT_DATA_MID: + msgID: 2329 + struct: AMC_BebopObservationMsg_t + commands: + AMC_CMD_MID: + msgID: 6426 + commands: + Noop: + cc: 0 + struct: AMC_NoArgCmd_t + Reset: + cc: 1 + struct: AMC_NoArgCmd_t + AMC_SEND_HK_MID: + msgID: 6427 + commands: + SendHK: + cc: 0 + struct: AMC_NoArgCmd_t + AMC_UPDATE_MOTORS_MID: + msgID: 6428 + commands: + UpdateMotors: + cc: 0 + struct: AMC_NoArgCmd_t + perfids: + AMC_MAIN_TASK_PERF_ID: + id: 66 + AMC_RECEIVE_PERF_ID: + id: 67 + AMC_SEND_PERF_ID: + id: 68 + config: + AMC_SB_TIMEOUT: + name: AMC_SB_TIMEOUT + value: CFE_SB_PEND_FOREVER + AMC_MISSION_REV: + name: AMC_MISSION_REV + value: 0 + AMC_SCH_PIPE_DEPTH: + name: AMC_SCH_PIPE_DEPTH + value: 15 + AMC_SCH_PIPE_NAME: + name: AMC_SCH_PIPE_NAME + value: AMC_SCH_PIPE + AMC_SCH_PIPE_PEND_TIME: + name: AMC_SCH_PIPE_PEND_TIME + value: 2000 + AMC_PARAM_PIPE_DEPTH: + name: AMC_PARAM_PIPE_DEPTH + value: 4 + AMC_PARAM_PIPE_NAME: + name: AMC_PARAM_PIPE_NAME + value: AMC_PARAM_PIPE + AMC_WAKEUP_MID_MAX_MSG_COUNT: + name: AMC_WAKEUP_MID_MAX_MSG_COUNT + value: 1 + AMC_SEND_HK_MID_MAX_MSG_COUNT: + name: AMC_SEND_HK_MID_MAX_MSG_COUNT + value: 1 + AMC_CMD_PIPE_DEPTH: + name: AMC_CMD_PIPE_DEPTH + value: 4 + AMC_CMD_PIPE_NAME: + name: AMC_CMD_PIPE_NAME + value: AMC_CMD_PIPE + AMC_DATA_PIPE_DEPTH: + name: AMC_DATA_PIPE_DEPTH + value: 4 + AMC_DATA_PIPE_NAME: + name: AMC_DATA_PIPE_NAME + value: AMC_DATA_PIPE + AMC_PWM_CONFIG_TABLE_FILENAME: + name: AMC_PWM_CONFIG_TABLE_FILENAME + value: /cf/apps/amc_pwmcfg.tbl + AMC_STARTUP_TIMEOUT_MSEC: + name: AMC_STARTUP_TIMEOUT_MSEC + value: 1000 + AMC_MIXER_CONFIG_TABLE_FILENAME: + name: AMC_MIXER_CONFIG_TABLE_FILENAME + value: /cf/apps/amc_mixercfg.tbl + AMC_MAX_MOTOR_OUTPUTS: + name: AMC_MAX_MOTOR_OUTPUTS + value: 4 + AMC_MAX_PARAMS: + name: AMC_MAX_PARAMS + value: 3 + definition: /home/mbenson/git/airliner/apps/amc/wh_design.yaml + elf_files: + - /home/mbenson/git/airliner/build/bebop2/sitl/target/target/exe/cf/apps/AMC.so + bat: + short_name: bat + long_name: Battery Manager + events: + BAT_INIT_INF_EID: + id: 1 + BAT_CMD_NOOP_EID: + id: 2 + BAT_SUBSCRIBE_ERR_EID: + id: 3 + BAT_PIPE_INIT_ERR_EID: + id: 4 + BAT_CFGTBL_MANAGE_ERR_EID: + id: 5 + BAT_CFGTBL_GETADDR_ERR_EID: + id: 6 + BAT_RCVMSG_ERR_EID: + id: 7 + BAT_MSGID_ERR_EID: + id: 8 + BAT_CC_ERR_EID: + id: 9 + BAT_MSGLEN_ERR_EID: + id: 10 + BAT_CFGTBL_REG_ERR_EID: + id: 11 + BAT_CFGTBL_LOAD_ERR_EID: + id: 12 + BAT_LISTENER_CREATE_CHDTASK_ERR_EID: + id: 13 + telemetry: + BAT_HK_TLM_MID: + msgID: 2335 + struct: BAT_HkTlm_t + commands: + BAT_CMD_MID: + msgID: 6432 + commands: + Noop: + cc: 0 + struct: BAT_NoArgCmd_t + Reset: + cc: 1 + struct: BAT_NoArgCmd_t + SendDiag: + cc: 2 + struct: BAT_NoArgCmd_t + BAT_SEND_HK_MID: + msgID: 6433 + commands: + SendHK: + cc: 0 + struct: BAT_NoArgCmd_t + BAT_WAKEUP_MID: + msgID: 6434 + commands: + WakeUp: + cc: 0 + struct: BAT_NoArgCmd_t + perfids: + BAT_MAIN_TASK_PERF_ID: + id: 69 + config: + BAT_SB_TIMEOUT: + name: BAT_SB_TIMEOUT + value: CFE_SB_PEND_FOREVER + BAT_MISSION_REV: + name: BAT_MISSION_REV + value: 0 + BAT_SCH_PIPE_DEPTH: + name: BAT_SCH_PIPE_DEPTH + value: 3 + BAT_SCH_PIPE_NAME: + name: BAT_SCH_PIPE_NAME + value: BAT_SCH_PIPE + BAT_SCH_PIPE_PEND_TIME: + name: BAT_SCH_PIPE_PEND_TIME + value: 2000 + BAT_LISTENER_TASK_STACK_SIZE: + name: BAT_LISTENER_TASK_STACK_SIZE + value: 16000 + BAT_LISTENER_TASK_FLAGS: + name: BAT_LISTENER_TASK_FLAGS + value: OS_ENABLE_CORE_0 + BAT_WAKEUP_MID_MAX_MSG_COUNT: + name: BAT_WAKEUP_MID_MAX_MSG_COUNT + value: 1 + BAT_SEND_HK_MID_MAX_MSG_COUNT: + name: BAT_SEND_HK_MID_MAX_MSG_COUNT + value: 1 + BAT_CMD_PIPE_DEPTH: + name: BAT_CMD_PIPE_DEPTH + value: 4 + BAT_CMD_PIPE_NAME: + name: BAT_CMD_PIPE_NAME + value: BAT_CMD_PIPE + BAT_DATA_PIPE_DEPTH: + name: BAT_DATA_PIPE_DEPTH + value: 4 + BAT_DATA_PIPE_NAME: + name: BAT_DATA_PIPE_NAME + value: BAT_DATA_PIPE + BAT_CONFIG_TABLE_FILENAME: + name: BAT_CONFIG_TABLE_FILENAME + value: /cf/apps/bat_config.tbl + BAT_STARTUP_TIMEOUT_MSEC: + name: BAT_STARTUP_TIMEOUT_MSEC + value: 1000 + definition: /home/mbenson/git/airliner/apps/bat/wh_design.yaml + elf_files: + - /home/mbenson/git/airliner/build/bebop2/sitl/target/target/exe/cf/apps/BAT.so + ea: + short_name: ea + long_name: External Application + events: + EA_INF_EID: + id: 1 + EA_INIT_INF_EID: + id: 2 + EA_CMD_INF_EID: + id: 3 + EA_INF_APP_START_EID: + id: 4 + EA_INF_APP_TERM_EID: + id: 5 + EA_APP_ERR_EID: + id: 6 + EA_WARN_APP_UTIL_EID: + id: 7 + EA_ERR_EID: + id: 8 + EA_INIT_ERR_EID: + id: 9 + EA_CMD_ERR_EID: + id: 10 + EA_PIPE_ERR_EID: + id: 11 + EA_MSGID_ERR_EID: + id: 12 + EA_MSGLEN_ERR_EID: + id: 13 + EA_CHILD_TASK_START_EID: + id: 14 + EA_CHILD_TASK_START_ERR_EID: + id: 15 + EA_CMD_NOOP_EID: + id: 16 + EA_CMD_RESET_EID: + id: 17 + EA_CC_ERR_EID: + id: 18 + telemetry: + EA_HK_TLM_MID: + msgID: 2341 + struct: EA_HkTlm_t + commands: + EA_CMD_MID: + msgID: 6438 + commands: + Noop: + cc: 0 + struct: EA_NoArgCmd_t + Reset: + cc: 1 + struct: EA_NoArgCmd_t + Start: + cc: 2 + struct: EA_StartCmd_t + Terminate: + cc: 3 + struct: EA_NoArgCmd_t + EA_SEND_HK_MID: + msgID: 6439 + commands: + SendHK: + cc: 0 + struct: EA_NoArgCmd_t + EA_WAKEUP_MID: + msgID: 6440 + commands: + WakeUp: + cc: 0 + struct: EA_NoArgCmd_t + perfids: + EA_MAIN_TASK_PERF_ID: + id: 70 + config: + EA_SB_TIMEOUT: + name: EA_SB_TIMEOUT + value: CFE_SB_PEND_FOREVER + EA_CHILD_TASK_FLAGS: + name: EA_CHILD_TASK_FLAGS + value: OS_ENABLE_CORE_0 + EA_MISSION_REV: + name: EA_MISSION_REV + value: 0 + EA_SCH_PIPE_DEPTH: + name: EA_SCH_PIPE_DEPTH + value: 2 + EA_SCH_PIPE_NAME: + name: EA_SCH_PIPE_NAME + value: EA_SCH_PIPE + EA_SCH_PIPE_PEND_TIME: + name: EA_SCH_PIPE_PEND_TIME + value: 2000 + EA_SCH_PIPE_WAKEUP_RESERVED: + name: EA_SCH_PIPE_WAKEUP_RESERVED + value: 1 + EA_SCH_PIPE_SEND_HK_RESERVED: + name: EA_SCH_PIPE_SEND_HK_RESERVED + value: 1 + EA_CMD_PIPE_DEPTH: + name: EA_CMD_PIPE_DEPTH + value: 4 + EA_CMD_PIPE_NAME: + name: EA_CMD_PIPE_NAME + value: EA_CMD_PIPE + EA_DATA_PIPE_DEPTH: + name: EA_DATA_PIPE_DEPTH + value: 4 + EA_DATA_PIPE_NAME: + name: EA_DATA_PIPE_NAME + value: EA_DATA_PIPE + EA_CONFIG_TABLE_FILENAME: + name: EA_CONFIG_TABLE_FILENAME + value: /cf/apps/ea_config.tbl + EA_STARTUP_TIMEOUT_MSEC: + name: EA_STARTUP_TIMEOUT_MSEC + value: 1000 + EA_CHILD_TASK_PRIORITY: + name: EA_CHILD_TASK_PRIORITY + value: 187 + EA_APP_UTIL_THRESHOLD: + name: EA_APP_UTIL_THRESHOLD + value: 70 + EA_APP_NUM_THREADS: + name: EA_APP_NUM_THREADS + value: 4 + EA_MAX_PATH_LEN: + name: EA_MAX_PATH_LEN + value: 96 + definition: /home/mbenson/git/airliner/apps/ea/wh_design.yaml + elf_files: + - /home/mbenson/git/airliner/build/bebop2/sitl/target/target/exe/cf/apps/EA.so + gps: + short_name: gps + long_name: GPS Driver + events: + GPS_INIT_INF_EID: + id: 1 + GPS_CMD_NOOP_EID: + id: 2 + GPS_SUBSCRIBE_ERR_EID: + id: 3 + GPS_PIPE_INIT_ERR_EID: + id: 4 + GPS_CFGTBL_MANAGE_ERR_EID: + id: 5 + GPS_CFGTBL_GETADDR_ERR_EID: + id: 6 + GPS_RCVMSG_ERR_EID: + id: 7 + GPS_MSGID_ERR_EID: + id: 8 + GPS_CC_ERR_EID: + id: 9 + GPS_MSGLEN_ERR_EID: + id: 10 + GPS_CFGTBL_REG_ERR_EID: + id: 11 + GPS_CFGTBL_LOAD_ERR_EID: + id: 12 + GPS_UNINIT_ERR_EID: + id: 13 + GPS_INIT_ERR_EI: + id: 14 + GPS_READ_ERR_EID: + id: 15 + telemetry: + GPS_HK_TLM_MID: + msgID: 2361 + struct: GPS_HkTlm_t + GPS_ACK_ACK_MID: + msgID: 2348 + GPS_ACK_NAK_MID: + msgID: 2349 + GPS_CFG_MSG_MID: + msgID: 2350 + GPS_CFG_NAV5_MID: + msgID: 2351 + GPS_CFG_PRT_MID: + msgID: 2352 + GPS_CFG_RATE_MID: + msgID: 2353 + GPS_CFG_SBAS_MID: + msgID: 2354 + GPS_MON_HW_MID: + msgID: 2356 + GPS_NAV_DOP_MID: + msgID: 2357 + GPS_NAV_NAVPVT_MID: + msgID: 2358 + GPS_NAV_SVINFO_MID: + msgID: 2359 + GPS_SEND_HK_MID: + msgID: 2360 + commands: + GPS_CMD_MID: + msgID: 6202 + commands: + Noop: + cc: 0 + struct: GPS_NoArgCmd_t + Reset: + cc: 1 + struct: GPS_NoArgCmd_t + GPS_READ_SENSOR_MID: + msgID: 6204 + commands: + ReadSensor: + cc: 0 + struct: GPS_NoArgCmd_t + GPS_SEND_HK_MID: + msgID: 6203 + commands: + SendHK: + cc: 0 + struct: GPS_NoArgCmd_t + perfids: + GPS_MAIN_TASK_PERF_ID: + id: 71 + config: + GPS_CUSTOM_CHILD_TASK_FLAGS: + name: GPS_CUSTOM_CHILD_TASK_FLAGS + value: OS_ENABLE_CORE_0 + GPS_SB_TIMEOUT: + name: GPS_SB_TIMEOUT + value: CFE_SB_PEND_FOREVER + GPS_MISSION_REV: + name: GPS_MISSION_REV + value: 0 + GPS_SCH_PIPE_DEPTH: + name: GPS_SCH_PIPE_DEPTH + value: 2 + GPS_SCH_PIPE_NAME: + name: GPS_SCH_PIPE_NAME + value: GPS_SCH_PIPE + GPS_SCH_PIPE_PEND_TIME: + name: GPS_SCH_PIPE_PEND_TIME + value: 2000 + GPS_READ_SENSOR_MID_MAX_MSG_COUNT: + name: GPS_READ_SENSOR_MID_MAX_MSG_COUNT + value: 1 + GPS_SEND_HK_MID_MAX_MSG_COUNT: + name: GPS_SEND_HK_MID_MAX_MSG_COUNT + value: 1 + GPS_WAKEUP_MID_MAX_MSG_COUNT: + name: GPS_WAKEUP_MID_MAX_MSG_COUNT + value: 1 + GPS_CMD_PIPE_DEPTH: + name: GPS_CMD_PIPE_DEPTH + value: 4 + GPS_CMD_PIPE_NAME: + name: GPS_CMD_PIPE_NAME + value: GPS_CMD_PIPE + GPS_DATA_PIPE_DEPTH: + name: GPS_DATA_PIPE_DEPTH + value: 4 + GPS_DATA_PIPE_NAME: + name: GPS_DATA_PIPE_NAME + value: GPS_DATA_PIPE + GPS_CONFIG_TABLE_FILENAME: + name: GPS_CONFIG_TABLE_FILENAME + value: /cf/apps/gps_config.tbl + GPS_STARTUP_TIMEOUT_MSEC: + name: GPS_STARTUP_TIMEOUT_MSEC + value: 1000 + definition: /home/mbenson/git/airliner/apps/gps/wh_design.yaml + elf_files: + - /home/mbenson/git/airliner/build/bebop2/sitl/target/target/exe/cf/apps/GPS.so + hmc5883: + short_name: hmc5883 + long_name: + events: + HMC5883_INIT_INF_EID: + id: 1 + HMC5883_CMD_NOOP_EID: + id: 2 + HMC5883_SUBSCRIBE_ERR_EID: + id: 3 + HMC5883_PIPE_INIT_ERR_EID: + id: 4 + HMC5883_CFGTBL_MANAGE_ERR_EID: + id: 5 + HMC5883_CFGTBL_GETADDR_ERR_EID: + id: 6 + HMC5883_RCVMSG_ERR_EID: + id: 7 + HMC5883_MSGID_ERR_EID: + id: 8 + HMC5883_CC_ERR_EI: + id: 9 + HMC5883_MSGLEN_ERR_EID: + id: 10 + HMC5883_CFGTBL_REG_ERR_EID: + id: 11 + HMC5883_CFGTBL_LOAD_ERR_EID: + id: 12 + HMC5883_UNINIT_ERR_EID: + id: 13 + HMC5883_INIT_ERR_EID: + id: 14 + HMC5883_READ_ERR_EID: + id: 15 + HMC5883_VALIDATE_ERR_EID: + id: 16 + HMC5883_SCALE_ERR_EID: + id: 17 + HMC5883_OFFSET_ERR_EID: + id: 18 + HMC5883_CALIBRATE_INF_EID: + id: 19 + HMC5883_CALIBRATE_ERR_EID: + id: 20 + telemetry: + HMC5883_DIAG_TLM_MID: + msgID: 2378 + struct: HMC5883_DiagPacket_t + HMC5883_HK_TLM_MID: + msgID: 2379 + struct: HMC5883_HkTlm_t + commands: + HMC5883_CMD_MID: + msgID: 6476 + commands: + Noop: + cc: 0 + struct: HMC5883_NoArgCmd_t + Reset: + cc: 1 + struct: HMC5883_NoArgCmd_t + SendDiag: + cc: 2 + struct: HMC5883_NoArgCmd_t + SetCalibration: + cc: 3 + struct: HMC5883_SetCalibrationCmd_t + HMC5883_SEND_HK_MID: + msgID: 6477 + commands: + SendHK: + cc: 0 + struct: HMC5883_NoArgCmd_t + HMC5883_WAKEUP_MID: + msgID: 6478 + commands: + WakeUp: + cc: 0 + struct: HMC5883_NoArgCmd_t + perfids: + HMC5883_MAIN_TASK_PERF_ID: + id: 72 + HMC5883_RECEIVE_PERF_ID: + id: 73 + HMC5883_SEND_PERF_ID: + id: 74 + config: + HMC5883_SB_TIMEOUT: + name: HMC5883_SB_TIMEOUT + value: CFE_SB_PEND_FOREVER + HMC5883_MISSION_REV: + name: HMC5883_MISSION_REV + value: 0 + HMC5883_SCH_PIPE_DEPTH: + name: HMC5883_SCH_PIPE_DEPTH + value: 2 + HMC5883_SCH_PIPE_NAME: + name: HMC5883_SCH_PIPE_NAME + value: HMC5883_SCH_PIPE + HMC5883_SCH_PIPE_PEND_TIME: + name: HMC5883_SCH_PIPE_PEND_TIME + value: 2000 + HMC5883_WAKEUP_MID_MAX_MSG_COUNT: + name: HMC5883_WAKEUP_MID_MAX_MSG_COUNT + value: 1 + HMC5883_SEND_HK_MID_MAX_MSG_COUNT: + name: HMC5883_SEND_HK_MID_MAX_MSG_COUNT + value: 1 + HMC5883_CMD_PIPE_DEPTH: + name: HMC5883_CMD_PIPE_DEPTH + value: 4 + HMC5883_CMD_PIPE_NAME: + name: HMC5883_CMD_PIPE_NAME + value: HMC5883_CMD_PIPE + HMC5883_DATA_PIPE_DEPTH: + name: HMC5883_DATA_PIPE_DEPTH + value: 4 + HMC5883_DATA_PIPE_NAME: + name: HMC5883_DATA_PIPE_NAME + value: HMC5883_DATA_PIPE + HMC5883_CONFIG_TABLE_FILENAME: + name: HMC5883_CONFIG_TABLE_FILENAME + value: /cf/apps/hmc5883_config.tbl + HMC5883_STARTUP_TIMEOUT_MSEC: + name: HMC5883_STARTUP_TIMEOUT_MSEC + value: 1000 + HMC5883_MAG_DIVIDER: + name: HMC5883_MAG_DIVIDER + value: 1090 + HMC5883_MAG_UNIT: + name: HMC5883_MAG_UNIT + value: 1 + HMC5883_CALC_MAG_RANGE: + name: HMC5883_CALC_MAG_RANGE + value: 1.3 + definition: /home/mbenson/git/airliner/apps/hmc5883/wh_design.yaml + ld: + short_name: ld + long_name: Landing Determination + events: + LD_INIT_INF_EID: + id: 1 + LD_CMD_NOOP_EID: + id: 2 + LD_SUBSCRIBE_ERR_EID: + id: 3 + LD_PIPE_INIT_ERR_EID: + id: 4 + LD_CFGTBL_MANAGE_ERR_EI: + id: 5 + LD_CFGTBL_GETADDR_ERR_EID: + id: 6 + LD_RCVMSG_ERR_EID: + id: 7 + LD_MSGID_ERR_EID: + id: 8 + LD_CC_ERR_EID: + id: 9 + LD_MSGLEN_ERR_EID: + id: 10 + LD_CFGTBL_REG_ERR_EID: + id: 11 + LD_CFGTBL_LOAD_ERR_EI: + id: 12 + LD_FREEFALL_DETECTED_EID: + id: 13 + LD_GROUNDCONTACT_DETECTED_EID: + id: 14 + LD_LAND_DETECTED_EID: + id: 15 + LD_FLIGHT_DETECTED_EID: + id: 16 + telemetry: + LD_DIAG_TLM_MID: + msgID: 2383 + struct: LD_Diag_t + LD_HK_TLM_MID: + msgID: 2384 + struct: LD_HkTlm_t + commands: + LD_CMD_MID: + msgID: 6481 + commands: + Noop: + cc: 0 + struct: CFE_SB_CmdHdr_t + Reset: + cc: 1 + struct: CFE_SB_CmdHdr_t + LD_SEND_HK_MID: + msgID: 6482 + commands: + SendHK: + cc: 0 + struct: CFE_SB_CmdHdr_t + LD_WAKEUP_MID: + msgID: 6483 + commands: + WakeUp: + cc: 0 + struct: CFE_SB_CmdHdr_t + perfids: + LD_MAIN_TASK_PERF_ID: + id: 75 + config: + LD_SB_TIMEOUT: + name: LD_SB_TIMEOUT + value: CFE_SB_PEND_FOREVER + LD_MISSION_REV: + name: LD_MISSION_REV + value: 0 + LD_SCH_PIPE_DEPTH: + name: LD_SCH_PIPE_DEPTH + value: 15 + LD_SCH_PIPE_NAME: + name: LD_SCH_PIPE_NAME + value: LD_SCH_PIPE + LD_SCH_PIPE_PEND_TIME: + name: LD_SCH_PIPE_PEND_TIME + value: 2000 + LD_WAKEUP_MID_MAX_MSG_COUNT: + name: LD_WAKEUP_MID_MAX_MSG_COUNT + value: 1 + LD_SEND_HK_MID_MAX_MSG_COUNT: + name: LD_SEND_HK_MID_MAX_MSG_COUNT + value: 1 + LD_CMD_PIPE_DEPTH: + name: LD_CMD_PIPE_DEPTH + value: 4 + LD_CMD_PIPE_NAME: + name: LD_CMD_PIPE_NAME + value: LD_CMD_PIPE + LD_DATA_PIPE_DEPTH: + name: LD_DATA_PIPE_DEPTH + value: 4 + LD_DATA_PIPE_NAME: + name: LD_DATA_PIPE_NAME + value: LD_DATA_PIPE + LD_CONFIG_TABLE_FILENAME: + name: LD_CONFIG_TABLE_FILENAME + value: /cf/apps/ld_config.tbl + LD_STARTUP_TIMEOUT_MSEC: + name: LD_STARTUP_TIMEOUT_MSEC + value: 1000 + definition: /home/mbenson/git/airliner/apps/ld/wh_design.yaml + elf_files: + - /home/mbenson/git/airliner/build/bebop2/sitl/target/target/exe/cf/apps/LD.so + lgc: + short_name: lgc + long_name: Landing Gear Control + events: + LGC_INIT_INF_EID: + id: 1 + LGC_CMD_NOOP_EID: + id: 2 + LGC_SUBSCRIBE_ERR_EID: + id: 3 + LGC_PIPE_INIT_ERR_EID: + id: 4 + LGC_CFGTBL_GETADDR_ERR_EID: + id: 5 + LGC_RCVMSG_ERR_EID: + id: 6 + LGC_MSGID_ERR_EID: + id: 7 + LGC_CC_ERR_EID: + id: 8 + LGC_MSGLEN_ERR_EID: + id: 9 + LGC_CFGTBL_REG_ERR_EID: + id: 10 + LGC_CFGTBL_LOAD_ERR_EID: + id: 11 + LGC_PWM_CFGTBL_MIN_LT_DISARMED_ERR_EID: + id: 12 + LGC_PWM_CFGTBL_MAX_LT_MIN_ERR_EID: + id: 13 + LGC_DEVICE_INIT_ERR_EID: + id: 14 + LGC_RETRACT_INF_EID: + id: 15 + LGC_EXTEND_INF_EID: + id: 16 + telemetry: + LGC_HK_TLM_MID: + msgID: 2390 + struct: LGC_HkTlm_t + commands: + LGC_CMD_MID: + msgID: 6487 + commands: + Noop: + cc: 0 + struct: CFE_SB_CmdHdr_t + Reset: + cc: 1 + struct: CFE_SB_CmdHdr_t + LGC_SEND_HK_MID: + msgID: 6488 + commands: + SendHK: + cc: 0 + struct: CFE_SB_CmdHdr_t + LGC_WAKEUP_MID: + msgID: 6489 + commands: + WakeUp: + cc: 0 + struct: CFE_SB_CmdHdr_t + perfids: + LGC_MAIN_TASK_PERF_ID: + id: 76 + config: + LGC_SB_TIMEOUT: + name: LGC_SB_TIMEOUT + value: CFE_SB_PEND_FOREVER + LGC_MISSION_REV: + name: LGC_MISSION_REV + value: 0 + LGC_SCH_PIPE_DEPTH: + name: LGC_SCH_PIPE_DEPTH + value: 2 + LGC_SCH_PIPE_NAME: + name: LGC_SCH_PIPE_NAME + value: LGC_SCH_PIPE + LGC_SCH_PIPE_PEND_TIME: + name: LGC_SCH_PIPE_PEND_TIME + value: 2000 + LGC_WAKEUP_MID_MAX_MSG_COUNT: + name: LGC_WAKEUP_MID_MAX_MSG_COUNT + value: 1 + LGC_SEND_HK_MID_MAX_MSG_COUNT: + name: LGC_SEND_HK_MID_MAX_MSG_COUNT + value: 1 + LGC_CMD_PIPE_DEPTH: + name: LGC_CMD_PIPE_DEPTH + value: 4 + LGC_CMD_PIPE_NAME: + name: LGC_CMD_PIPE_NAME + value: LGC_CMD_PIPE + LGC_DATA_PIPE_DEPTH: + name: LGC_DATA_PIPE_DEPTH + value: 4 + LGC_DATA_PIPE_NAME: + name: LGC_DATA_PIPE_NAME + value: LGC_DATA_PIPE + LGC_CONFIG_TABLE_FILENAME: + name: LGC_CONFIG_TABLE_FILENAME + value: /cf/apps/lgc_config.tbl + LGC_STARTUP_TIMEOUT_MSEC: + name: LGC_STARTUP_TIMEOUT_MSEC + value: 1000 + LGC_MAX_GEAR_OUTPUTS: + name: LGC_MAX_GEAR_OUTPUTS + value: 1 + definition: /home/mbenson/git/airliner/apps/lgc/wh_design.yaml + elf_files: + - /home/mbenson/git/airliner/build/bebop2/sitl/target/target/exe/cf/apps/LGC.so + mac: + short_name: mac + long_name: Multicopter Attitude Controller + events: + MAC_INF_EID: + id: 1 + MAC_INIT_INF_EID: + id: 2 + MAC_CMD_INF_EID: + id: 3 + MAC_INIT_ERR_EID: + id: 4 + MAC_CONFIG_TABLE_ERR_EID: + id: 5 + MAC_PIPE_ERR_EID: + id: 6 + MAC_MSGID_ERR_EID: + id: 7 + MAC_MSGLEN_ERR_EID: + id: 8 + MAC_TBL_VALIDATE_ERR_EID: + id: 9 + telemetry: + MAC_HK_TLM_MID: + msgID: 2396 + struct: MAC_HkTlm_t + commands: + MAC_CMD_MID: + msgID: 6493 + commands: + Noop: + cc: 0 + struct: CFE_SB_CmdHdr_t + Reset: + cc: 1 + struct: CFE_SB_CmdHdr_t + MAC_RUN_CONTROLLER_MID: + msgID: 6494 + commands: + RunController: + cc: 0 + struct: CFE_SB_CmdHdr_t + MAC_SEND_HK_MID: + msgID: 6495 + commands: + SendHK: + cc: 0 + struct: CFE_SB_CmdHdr_t + perfids: + MAC_MAIN_TASK_PERF_ID: + id: 77 + config: + MAC_SB_TIMEOUT: + name: MAC_SB_TIMEOUT + value: CFE_SB_PEND_FOREVER + MAC_MISSION_REV: + name: MAC_MISSION_REV + value: 0 + MAC_SCH_PIPE_DEPTH: + name: MAC_SCH_PIPE_DEPTH + value: 15 + MAC_SCH_PIPE_NAME: + name: MAC_SCH_PIPE_NAME + value: MAC_SCH_PIPE + MAC_SCH_PIPE_PEND_TIME: + name: MAC_SCH_PIPE_PEND_TIME + value: 2000 + MAC_WAKEUP_MID_MAX_MSG_COUNT: + name: MAC_WAKEUP_MID_MAX_MSG_COUNT + value: 1 + MAC_SEND_HK_MID_MAX_MSG_COUNT: + name: MAC_SEND_HK_MID_MAX_MSG_COUNT + value: 1 + MAC_CMD_PIPE_DEPTH: + name: MAC_CMD_PIPE_DEPTH + value: 15 + MAC_CMD_PIPE_NAME: + name: MAC_CMD_PIPE_NAME + value: MAC_CMD_PIPE + MAC_DATA_PIPE_DEPTH: + name: MAC_DATA_PIPE_DEPTH + value: 4 + MAC_DATA_PIPE_NAME: + name: MAC_DATA_PIPE_NAME + value: MAC_DATA_PIPE + MAC_CONFIG_TABLE_FILENAME: + name: MAC_CONFIG_TABLE_FILENAME + value: /cf/apps/mac_param.tbl + MAC_STARTUP_TIMEOUT_MSEC: + name: MAC_STARTUP_TIMEOUT_MSEC + value: 1000 + definition: /home/mbenson/git/airliner/apps/mac/wh_design.yaml + elf_files: + - /home/mbenson/git/airliner/build/bebop2/sitl/target/target/exe/cf/apps/MAC.so + mpc: + short_name: mpc + long_name: Multicopter Position Controller + events: + MPC_INIT_INF_EID: + id: 1 + MPC_CMD_NOOP_EID: + id: 2 + MPC_SUBSCRIBE_ERR_EID: + id: 3 + MPC_PIPE_INIT_ERR_EID: + id: 4 + MPC_CFGTBL_MANAGE_ERR_EID: + id: 5 + MPC_CFGTBL_GETADDR_ERR_EID: + id: 6 + MPC_RCVMSG_ERR_EID: + id: 7 + MPC_MSGID_ERR_EID: + id: 8 + MPC_CC_ERR_EID: + id: 9 + MPC_MSGLEN_ERR_EID: + id: 10 + MPC_CFGTBL_REG_ERR_EID: + id: 11 + MPC_CFGTBL_LOAD_ERR_EID: + id: 12 + MPC_UNK_VEL_FRM_ERR_EID: + id: 13 + MPC_PID_UPDATE_EID: + id: 14 + MPC_SEND_DIAG_EID: + id: 15 + MPC_SET_DZ_EID: + id: 16 + MPC_SET_EXPO_EID: + id: 17 + MPC_SET_TKO_RAMP_EID: + id: 18 + MPC_UNKNOWN_USER_INTENTION_ERR_EID: + id: 19 + MPC_POS_SP_NOT_FINITE_ERR_EID: + id: 20 + MPC_INVLD_PARAM_ERR_EID: + id: 21 + telemetry: + MPC_DIAG_TLM_MID: + msgID: 2403 + struct: MPC_DiagPacket_t + MPC_HK_TLM_MID: + msgID: 2404 + struct: MPC_HkTlm_t + commands: + MPC_CMD_MID: + msgID: 6501 + commands: + Noop: + cc: 0 + struct: MPC_NoArgCmd_t + Reset: + cc: 1 + struct: MPC_NoArgCmd_t + SetXYPid: + cc: 2 + struct: MPC_SetPidCmd_t + SetZPid: + cc: 3 + struct: MPC_SetPidCmd_t + SetHoldDZ: + cc: 4 + struct: MPC_SetDzCmd_t + SendDiag: + cc: 5 + struct: MPC_NoArgCmd_t + SetStickExpo: + cc: 6 + struct: MPC_SetStickExpoCmd_t + SetTKORamp: + cc: 7 + struct: MPC_SetTkoRampCmd_t + MPC_SEND_HK_MID: + msgID: 6503 + commands: + SendHK: + cc: 0 + struct: MPC_NoArgCmd_t + MPC_WAKEUP_MID: + msgID: 6502 + commands: + WakeUp: + cc: 0 + struct: MPC_NoArgCmd_t + perfids: + MPC_MAIN_TASK_PERF_ID: + id: 78 + config: + MPC_SB_TIMEOUT: + name: MPC_SB_TIMEOUT + value: CFE_SB_PEND_FOREVER + MPC_MISSION_REV: + name: MPC_MISSION_REV + value: 0 + MPC_SCH_PIPE_DEPTH: + name: MPC_SCH_PIPE_DEPTH + value: 15 + MPC_SCH_PIPE_NAME: + name: MPC_SCH_PIPE_NAME + value: MPC_SCH_PIPE + MPC_SCH_PIPE_PEND_TIME: + name: MPC_SCH_PIPE_PEND_TIME + value: 2000 + MPC_WAKEUP_MID_MAX_MSG_COUNT: + name: MPC_WAKEUP_MID_MAX_MSG_COUNT + value: 1 + MPC_SEND_HK_MID_MAX_MSG_COUNT: + name: MPC_SEND_HK_MID_MAX_MSG_COUNT + value: 1 + MPC_CMD_PIPE_DEPTH: + name: MPC_CMD_PIPE_DEPTH + value: 4 + MPC_CMD_PIPE_NAME: + name: MPC_CMD_PIPE_NAME + value: MPC_CMD_PIPE + MPC_CONFIG_TABLE_FILENAME: + name: MPC_CONFIG_TABLE_FILENAME + value: /cf/apps/mpc_config.tbl + MPC_STARTUP_TIMEOUT_MSEC: + name: MPC_STARTUP_TIMEOUT_MSEC + value: 1000 + DIRECTION_CHANGE_TRIGGER_TIME_US: + name: DIRECTION_CHANGE_TRIGGER_TIME_US + value: 100000 + definition: /home/mbenson/git/airliner/apps/mpc/wh_design.yaml + elf_files: + - /home/mbenson/git/airliner/build/bebop2/sitl/target/target/exe/cf/apps/MPC.so + mpu6050: + short_name: mpu6050 + long_name: + events: + MPU6050_INIT_INF_EID: + id: 1 + MPU6050_CMD_NOOP_EID: + id: 2 + MPU6050_SUBSCRIBE_ERR_EID: + id: 3 + MPU6050_PIPE_INIT_ERR_EID: + id: 4 + MPU6050_CFGTBL_MANAGE_ERR_EID: + id: 5 + MPU6050_CFGTBL_GETADDR_ERR_EID: + id: 6 + MPU6050_RCVMSG_ERR_EI: + id: 7 + MPU6050_MSGID_ERR_EID: + id: 8 + MPU6050_CC_ERR_EID: + id: 9 + MPU6050_MSGLEN_ERR_EID: + id: 10 + MPU6050_CFGTBL_REG_ERR_EID: + id: 11 + MPU6050_CFGTBL_LOAD_ERR_EID: + id: 12 + MPU6050_UNINIT_ERR_EID: + id: 13 + MPU6050_INIT_ERR_EID: + id: 14 + MPU6050_READ_ERR_EID: + id: 15 + MPU6050_VALIDATE_ERR_EID: + id: 16 + MPU6050_CALIBRATE_INF_EID: + id: 17 + MPU6050_CALIBRATE_ERR_EID: + id: 18 + telemetry: + MPU6050_DIAG_TLM_MID: + msgID: 2410 + struct: MPU6050_DiagPacket_t + MPU6050_HK_TLM_MID: + msgID: 2411 + struct: MPU6050_HkTlm_t + commands: + MPU6050_CMD_MID: + msgID: 6508 + commands: + Noop: + cc: 0 + struct: MPU6050_NoArgCmd_t + Reset: + cc: 1 + struct: MPU6050_NoArgCmd_t + SendDiag: + cc: 2 + struct: MPU6050_NoArgCmd_t + SetCalibration: + cc: 3 + struct: MPU6050_SetCalibrationCmd_t + MPU6050_MEASURE_MID: + msgID: 6509 + commands: + Measure: + cc: 0 + struct: MPU6050_NoArgCmd_t + MPU6050_SEND_HK_MID: + msgID: 6510 + commands: + SendHK: + cc: 0 + struct: MPU6050_NoArgCmd_t + perfids: + MPU6050_MAIN_TASK_PERF_ID: + id: 79 + MPU6050_RECEIVE_PERF_ID: + id: 80 + MPU6050_SEND_PERF_ID: + id: 81 + config: + MPU6050_SB_TIMEOUT: + name: MPU6050_SB_TIMEOUT + value: CFE_SB_PEND_FOREVER + MPU6050_MISSION_REV: + name: MPU6050_MISSION_REV + value: 0 + MPU6050_SCH_PIPE_DEPTH: + name: MPU6050_SCH_PIPE_DEPTH + value: 2 + MPU6050_SCH_PIPE_NAME: + name: MPU6050_SCH_PIPE_NAME + value: MPU6050_SCH_PIPE + MPU6050_SCH_PIPE_PEND_TIME: + name: MPU6050_SCH_PIPE_PEND_TIME + value: 2000 + MPU6050_PARAM_PIPE_DEPTH: + name: MPU6050_PARAM_PIPE_DEPTH + value: 4 + MPU6050_PARAM_PIPE_NAME: + name: MPU6050_PARAM_PIPE_NAME + value: MPU6050_PARAM_PIPE + MPU6050_WAKEUP_MID_MAX_MSG_COUNT: + name: MPU6050_WAKEUP_MID_MAX_MSG_COUNT + value: 1 + MPU6050_SEND_HK_MID_MAX_MSG_COUNT: + name: MPU6050_SEND_HK_MID_MAX_MSG_COUNT + value: 1 + MPU6050_CMD_PIPE_DEPTH: + name: MPU6050_CMD_PIPE_DEPTH + value: 4 + MPU6050_CMD_PIPE_NAME: + name: MPU6050_CMD_PIPE_NAME + value: MPU6050_CMD_PIPE + MPU6050_DATA_PIPE_DEPTH: + name: MPU6050_DATA_PIPE_DEPTH + value: 4 + MPU6050_DATA_PIPE_NAME: + name: MPU6050_DATA_PIPE_NAME + value: MPU6050_DATA_PIPE + MPU6050_CONFIG_TABLE_FILENAME: + name: MPU6050_CONFIG_TABLE_FILENAME + value: /cf/apps/mpu6050_config.tbl + MPU6050_STARTUP_TIMEOUT_MSEC: + name: MPU6050_STARTUP_TIMEOUT_MSEC + value: 1000 + MPU6050_ACCEL_PX4_DEVICE_ID: + name: MPU6050_ACCEL_PX4_DEVICE_ID + value: 6789478 + MPU6050_GYRO_PX4_DEVICE_ID: + name: MPU6050_GYRO_PX4_DEVICE_ID + value: 3467548 + MPU6050_ACCEL_INT_PUB_RATE: + name: MPU6050_ACCEL_INT_PUB_RATE + value: 1000000 / 400 + MPU6050_GYRO_INT_PUB_RATE: + name: MPU6050_GYRO_INT_PUB_RATE + value: 1000000 / 400 + MPU6050_ACC_SCALE: + name: MPU6050_ACC_SCALE + value: 16 + MPU6050_GYRO_SCALE: + name: MPU6050_GYRO_SCALE + value: 2000 + MPU6050_DEVICE_ID: + name: MPU6050_DEVICE_ID + value: 104 + MPU6050_ACCEL_SAMPLE_RATE: + name: MPU6050_ACCEL_SAMPLE_RATE + value: 200 + MPU6050_ACCEL_FILTER_CUTOFF_FREQ: + name: MPU6050_ACCEL_FILTER_CUTOFF_FREQ + value: 30 + MPU6050_GYRO_SAMPLE_RATE: + name: MPU6050_GYRO_SAMPLE_RATE + value: 200 + MPU6050_GYRO_FILTER_CUTOFF_FREQ: + name: MPU6050_GYRO_FILTER_CUTOFF_FREQ + value: 30 + MPU6050_ONE_G: + name: MPU6050_ONE_G + value: 9.80665 + MPU6050_RADIANS_PER_DEGREE: + name: MPU6050_RADIANS_PER_DEGREE + value: 0.0174532 + MPU6050_ROOM_TEMP_OFFSET: + name: MPU6050_ROOM_TEMP_OFFSET + value: 0 + MPU6050_TEMP_SENS: + name: MPU6050_TEMP_SENS + value: 340 + definition: /home/mbenson/git/airliner/apps/mpu6050/wh_design.yaml + elf_files: + - /home/mbenson/git/airliner/build/bebop2/sitl/target/target/exe/cf/apps/MPU6050.so + mpu9250: + short_name: mpu9250 + long_name: + events: + MPU9250_INIT_INF_EID: + id: 1 + MPU9250_CMD_NOOP_EID: + id: 2 + MPU9250_SUBSCRIBE_ERR_EID: + id: 3 + MPU9250_PIPE_INIT_ERR_EID: + id: 4 + MPU9250_CFGTBL_MANAGE_ERR_EID: + id: 5 + MPU9250_CFGTBL_GETADDR_ERR_EID: + id: 6 + MPU9250_RCVMSG_ERR_EID: + id: 7 + MPU9250_MSGID_ERR_EID: + id: 8 + MPU9250_CC_ERR_EID: + id: 9 + MPU9250_MSGLEN_ERR_EID: + id: 10 + MPU9250_CFGTBL_REG_ERR_EID: + id: 11 + MPU9250_CFGTBL_LOAD_ERR_EID: + id: 12 + MPU9250_UNINIT_ERR_EID: + id: 13 + MPU9250_INIT_ERR_EID: + id: 14 + MPU9250_READ_ERR_EID: + id: 15 + MPU9250_VALIDATE_ERR_EID: + id: 16 + MPU9250_CALIBRATE_INF_EID: + id: 17 + MPU9250_CALIBRATE_ERR_EID: + id: 18 + telemetry: + MPU9250_DIAG_TLM_MID: + msgID: 2417 + struct: MPU9250_DiagPacket_t + MPU9250_HK_TLM_MID: + msgID: 2418 + struct: MPU9250_HkTlm_t + commands: + MPU9250_CMD_MID: + msgID: 6515 + commands: + Noop: + cc: 0 + struct: MPU9250_NoArgCmd_t + Reset: + cc: 1 + struct: MPU9250_NoArgCmd_t + SendDiag: + cc: 2 + struct: MPU9250_NoArgCmd_t + SetCalibration: + cc: 3 + struct: MPU9250_SetCalibrationCmd_t + MPU9250_MEASURE_MID: + msgID: 6516 + commands: + Measure: + cc: 0 + struct: MPU9250_NoArgCmd_t + MPU9250_SEND_HK_MID: + msgID: 6517 + commands: + SendHK: + cc: 0 + struct: MPU9250_NoArgCmd_t + perfids: + MPU9250_MAIN_TASK_PERF_ID: + id: 83 + config: + MPU9250_SB_TIMEOUT: + name: MPU9250_SB_TIMEOUT + value: CFE_SB_PEND_FOREVER + MPU9250_MISSION_REV: + name: MPU9250_MISSION_REV + value: 0 + MPU9250_SCH_PIPE_DEPTH: + name: MPU9250_SCH_PIPE_DEPTH + value: 2 + MPU9250_SCH_PIPE_NAME: + name: MPU9250_SCH_PIPE_NAME + value: MPU9250_SCH_PIPE + MPU9250_SCH_PIPE_PEND_TIME: + name: MPU9250_SCH_PIPE_PEND_TIME + value: 2000 + MPU9250_PARAM_PIPE_DEPTH: + name: MPU9250_PARAM_PIPE_DEPTH + value: 4 + MPU9250_PARAM_PIPE_NAME: + name: MPU9250_PARAM_PIPE_NAME + value: MPU9250_PARAM_PIPE + MPU9250_WAKEUP_MID_MAX_MSG_COUNT: + name: MPU9250_WAKEUP_MID_MAX_MSG_COUNT + value: 1 + MPU9250_SEND_HK_MID_MAX_MSG_COUNT: + name: MPU9250_SEND_HK_MID_MAX_MSG_COUNT + value: 1 + MPU9250_CMD_PIPE_DEPTH: + name: MPU9250_CMD_PIPE_DEPTH + value: 4 + MPU9250_CMD_PIPE_NAME: + name: MPU9250_CMD_PIPE_NAME + value: MPU9250_CMD_PIPE + MPU9250_DATA_PIPE_DEPTH: + name: MPU9250_DATA_PIPE_DEPTH + value: 4 + MPU9250_DATA_PIPE_NAME: + name: MPU9250_DATA_PIPE_NAME + value: MPU9250_DATA_PIPE + MPU9250_CONFIG_TABLE_FILENAME: + name: MPU9250_CONFIG_TABLE_FILENAME + value: /cf/apps/mpu9250_config.tbl + MPU9250_STARTUP_TIMEOUT_MSEC: + name: MPU9250_STARTUP_TIMEOUT_MSEC + value: 1000 + MPU9250_ACCEL_PX4_DEVICE_ID: + name: MPU9250_ACCEL_PX4_DEVICE_ID + value: 6789478 + MPU9250_GYRO_PX4_DEVICE_ID: + name: MPU9250_GYRO_PX4_DEVICE_ID + value: 3467548 + MPU9250_ACCEL_INT_PUB_RATE: + name: MPU9250_ACCEL_INT_PUB_RATE + value: 1000000 / 400 + MPU9250_GYRO_INT_PUB_RATE: + name: MPU9250_GYRO_INT_PUB_RATE + value: 1000000 / 400 + MPU9250_ACC_SCALE: + name: MPU9250_ACC_SCALE + value: 16 + MPU9250_GYRO_SCALE: + name: MPU9250_GYRO_SCALE + value: 2000 + MPU9250_AK8963_ID: + name: MPU9250_AK8963_ID + value: 72 + MPU9250_DEVICE_ID: + name: MPU9250_DEVICE_ID + value: 113 + MPU9250_ACCEL_SAMPLE_RATE: + name: MPU9250_ACCEL_SAMPLE_RATE + value: 200 + MPU9250_ACCEL_FILTER_CUTOFF_FREQ: + name: MPU9250_ACCEL_FILTER_CUTOFF_FREQ + value: 30 + MPU9250_GYRO_SAMPLE_RATE: + name: MPU9250_GYRO_SAMPLE_RATE + value: 200 + MPU9250_GYRO_FILTER_CUTOFF_FREQ: + name: MPU9250_GYRO_FILTER_CUTOFF_FREQ + value: 30 + MPU9250_NEVER_AUTOPUBLISH_US: + name: MPU9250_NEVER_AUTOPUBLISH_US + value: 0 + MPU9250_ONE_G: + name: MPU9250_ONE_G + value: 9.80665 + MPU9250_RADIANS_PER_DEGREE: + name: MPU9250_RADIANS_PER_DEGREE + value: 0.0174532 + MPU9250_ROOM_TEMP_OFFSET: + name: MPU9250_ROOM_TEMP_OFFSET + value: 0 + MPU9250_TEMP_SENS: + name: MPU9250_TEMP_SENS + value: 361 + definition: /home/mbenson/git/airliner/apps/mpu9250/wh_design.yaml + ms5607: + short_name: ms5607 + long_name: + events: + MS5607_INIT_INF_EID: + id: 1 + MS5607_CMD_NOOP_EID: + id: 2 + MS5607_SUBSCRIBE_ERR_EID: + id: 3 + MS5607_PIPE_INIT_ERR_EID: + id: 4 + MS5607_CFGTBL_MANAGE_ERR_EID: + id: 5 + MS5607_CFGTBL_REG_ERR_EID: + id: 6 + MS5607_CFGTBL_GETADDR_ERR_EID: + id: 7 + MS5607_RCVMSG_ERR_EID: + id: 8 + MS5607_MSGID_ERR_EID: + id: 9 + MS5607_CC_ERR_EID: + id: 10 + MS5607_MSGLEN_ERR_EID: + id: 11 + MS5607_CMD_ERR_EID: + id: 12 + MS5607_UNINIT_ERR_EID: + id: 13 + MS5607_CFGTBL_LOAD_ERR_EID: + id: 14 + MS5607_INIT_ERR_EID: + id: 15 + MS5607_READ_ERR_EID: + id: 16 + MS5607_CFGTBL_VALIDATION_ERR_EID: + id: 17 + telemetry: + MS5607_DIAG_TLM_MID: + msgID: 2424 + struct: MS5607_DiagPacket_t + MS5607_HK_TLM_MID: + msgID: 2425 + struct: MS5607_HkTlm_t + commands: + MS5607_CMD_MID: + msgID: 6522 + commands: + Noop: + cc: 0 + struct: MS5607_NoArgCmd_t + Reset: + cc: 1 + struct: MS5607_NoArgCmd_t + MS5607_MEASURE_MID: + msgID: 6523 + commands: + Measure: + cc: 0 + struct: MS5611_NoArgCmd_t + MS5607_SEND_HK_MID: + msgID: 6524 + commands: + SendHK: + cc: 0 + struct: MS5611_NoArgCmd_t + perfids: + MS5607_MAIN_TASK_PERF_ID: + id: 84 + MS5607_RECEIVE_PERF_ID: + id: 85 + MS5607_SEND_PERF_ID: + id: 86 + config: + MS5607_SB_TIMEOUT: + name: MS5607_SB_TIMEOUT + value: CFE_SB_PEND_FOREVER + MS5607_MISSION_REV: + name: MS5607_MISSION_REV + value: 0 + MS5607_SCH_PIPE_DEPTH: + name: MS5607_SCH_PIPE_DEPTH + value: 2 + MS5607_SCH_PIPE_NAME: + name: MS5607_SCH_PIPE_NAME + value: MS5607_SCH_PIPE + MS5607_SCH_PIPE_PEND_TIME: + name: MS5607_SCH_PIPE_PEND_TIME + value: 2000 + MS5607_MEASURE_MID_MAX_MSG_COUNT: + name: MS5607_MEASURE_MID_MAX_MSG_COUNT + value: 1 + MS5607_SEND_HK_MID_MAX_MSG_COUNT: + name: MS5607_SEND_HK_MID_MAX_MSG_COUNT + value: 1 + MS5607_CMD_PIPE_DEPTH: + name: MS5607_CMD_PIPE_DEPTH + value: 4 + MS5607_CMD_PIPE_NAME: + name: MS5607_CMD_PIPE_NAME + value: MS5607_CMD_PIPE + MS5607_DATA_PIPE_DEPTH: + name: MS5607_DATA_PIPE_DEPTH + value: 4 + MS5607_DATA_PIPE_NAME: + name: MS5607_DATA_PIPE_NAME + value: MS5607_DATA_PIPE + MS5607_CONFIG_TABLE_FILENAME: + name: MS5607_CONFIG_TABLE_FILENAME + value: /cf/apps/ms5607_config.tbl + MS5607_STARTUP_TIMEOUT_MSEC: + name: MS5607_STARTUP_TIMEOUT_MSEC + value: 1000 + MS5607_DEVICE_PATH: + name: MS5607_DEVICE_PATH + value: /dev/i2c-1 + MS5607_PRESS_TEMP_MEAS_RATIO: + name: MS5607_PRESS_TEMP_MEAS_RATIO + value: 3 + definition: /home/mbenson/git/airliner/apps/ms5607/wh_design.yaml + elf_files: + - /home/mbenson/git/airliner/build/bebop2/sitl/target/target/exe/cf/apps/MS5607.so + ms5611: + short_name: ms5611 + long_name: + events: + MS5611_INIT_INF_EID: + id: 1 + MS5611_CMD_NOOP_EID: + id: 2 + MS5611_SUBSCRIBE_ERR_EID: + id: 3 + MS5611_PIPE_INIT_ERR_EID: + id: 4 + MS5611_CFGTBL_MANAGE_ERR_EID: + id: 5 + MS5611_CFGTBL_REG_ERR_EID: + id: 6 + MS5611_CFGTBL_GETADDR_ERR_EID: + id: 7 + MS5611_RCVMSG_ERR_EID: + id: 8 + MS5611_MSGID_ERR_EID: + id: 9 + MS5611_CC_ERR_EID: + id: 10 + MS5611_MSGLEN_ERR_EID: + id: 11 + MS5611_UNINIT_ERR_EID: + id: 12 + MS5611_CFGTBL_LOAD_ERR_EID: + id: 13 + MS5611_INIT_ERR_EID: + id: 14 + MS5611_READ_ERR_EID: + id: 15 + MS5611_CFGTBL_VALIDATION_ERR_EID: + id: 16 + telemetry: + MS5611_DIAG_TLM_MID: + msgID: 2431 + struct: MS5611_DiagPacket_t + MS5611_HK_TLM_MID: + msgID: 2432 + struct: MS5611_HkTlm_t + commands: + MS5611_CMD_MID: + msgID: 6529 + commands: + Noop: + cc: 0 + struct: MS5611_NoArgCmd_t + Reset: + cc: 1 + struct: MS5611_NoArgCmd_t + MS5611_MEASURE_MID: + msgID: 6530 + commands: + Measure: + cc: 0 + struct: MS5611_NoArgCmd_t + MS5611_SEND_HK_MID: + msgID: 6531 + commands: + SendHK: + cc: 0 + struct: MS5611_NoArgCmd_t + perfids: + MS5611_MAIN_TASK_PERF_ID: + id: 87 + config: + MS5611_SB_TIMEOUT: + name: MS5611_SB_TIMEOUT + value: CFE_SB_PEND_FOREVER + MS5611_MISSION_REV: + name: MS5611_MISSION_REV + value: 0 + MS5611_SCH_PIPE_DEPTH: + name: MS5611_SCH_PIPE_DEPTH + value: 2 + MS5611_SCH_PIPE_NAME: + name: MS5611_SCH_PIPE_NAME + value: MS5611_SCH_PIPE + MS5611_SCH_PIPE_PEND_TIME: + name: MS5611_SCH_PIPE_PEND_TIME + value: 2000 + MS5611_MEASURE_MID_MAX_MSG_COUNT: + name: MS5611_MEASURE_MID_MAX_MSG_COUNT + value: 1 + MS5611_SEND_HK_MID_MAX_MSG_COUNT: + name: MS5611_SEND_HK_MID_MAX_MSG_COUNT + value: 1 + MS5611_CMD_PIPE_DEPTH: + name: MS5611_CMD_PIPE_DEPTH + value: 4 + MS5611_CMD_PIPE_NAME: + name: MS5611_CMD_PIPE_NAME + value: MS5611_CMD_PIPE + MS5611_DATA_PIPE_DEPTH: + name: MS5611_DATA_PIPE_DEPTH + value: 4 + MS5611_DATA_PIPE_NAME: + name: MS5611_DATA_PIPE_NAME + value: MS5611_DATA_PIPE + MS5611_CONFIG_TABLE_FILENAME: + name: MS5611_CONFIG_TABLE_FILENAME + value: /cf/apps/ms5611_config.tbl + MS5611_STARTUP_TIMEOUT_MSEC: + name: MS5611_STARTUP_TIMEOUT_MSEC + value: 1000 + MS5611_PRESS_TEMP_MEAS_RATIO: + name: MS5611_PRESS_TEMP_MEAS_RATIO + value: 3 + definition: /home/mbenson/git/airliner/apps/ms5611/wh_design.yaml + nav: + short_name: nav + long_name: Navigation + events: + NAV_INIT_INF_EID: + id: 1 + NAV_CMD_NOOP_EID: + id: 2 + NAV_SUBSCRIBE_ERR_EID: + id: 3 + NAV_PIPE_INIT_ERR_EID: + id: 4 + NAV_CFGTBL_MANAGE_ERR_EID: + id: 5 + NAV_CFGTBL_GETADDR_ERR_EID: + id: 6 + NAV_RCVMSG_ERR_EID: + id: 7 + NAV_MSGID_ERR_EID: + id: 8 + NAV_CC_ERR_EID: + id: 9 + NAV_MSGLEN_ERR_EID: + id: 10 + NAV_CFGTBL_REG_ERR_EID: + id: 11 + NAV_CFGTBL_LOAD_ERR_EID: + id: 12 + NAV_MSN_FAILED_ERR_EID: + id: 13 + NAV_HIGH_ALT_EID: + id: 14 + NAV_ACTION_ST_EID: + id: 15 + NAV_RTL_CLIMB_ST_EID: + id: 16 + NAV_RTL_RETURN_ST_EID: + id: 17 + NAV_RTL_DESCEND_ST_EID: + id: 18 + NAV_RTL_LOITER_ST_EID: + id: 19 + NAV_RTL_LOITER_EN_EID: + id: 20 + NAV_RTL_LAND_ST_EID: + id: 21 + NAV_RTL_LAND_EN_EID: + id: 22 + NAV_RTL_LND_SFGA_EID: + id: 23 + NAV_SUBSEQ_TAKEOFF_EID: + id: 24 + telemetry: + NAV_HK_TLM_MID: + msgID: 2438 + struct: NAV_HkTlm_t + commands: + NAV_CMD_MID: + msgID: 6535 + commands: + Noop: + cc: 0 + struct: NAV_NoArgCmd_t + Reset: + cc: 1 + struct: NAV_NoArgCmd_t + NAV_SEND_HK_MID: + msgID: 6536 + commands: + SendHK: + cc: 0 + struct: NAV_NoArgCmd_t + NAV_WAKEUP_MID: + msgID: 6537 + commands: + WakeUp: + cc: 0 + struct: NAV_NoArgCmd_t + perfids: + NAV_MAIN_TASK_PERF_ID: + id: 88 + config: + NAV_SB_TIMEOUT: + name: NAV_SB_TIMEOUT + value: CFE_SB_PEND_FOREVER + NAV_MISSION_REV: + name: NAV_MISSION_REV + value: 0 + NAV_SCH_PIPE_DEPTH: + name: NAV_SCH_PIPE_DEPTH + value: 15 + NAV_SCH_PIPE_NAME: + name: NAV_SCH_PIPE_NAME + value: NAV_SCH_PIPE + NAV_SCH_PIPE_PEND_TIME: + name: NAV_SCH_PIPE_PEND_TIME + value: 2000 + NAV_WAKEUP_MID_MAX_MSG_COUNT: + name: NAV_WAKEUP_MID_MAX_MSG_COUNT + value: 1 + NAV_SEND_HK_MID_MAX_MSG_COUNT: + name: NAV_SEND_HK_MID_MAX_MSG_COUNT + value: 1 + NAV_CMD_PIPE_DEPTH: + name: NAV_CMD_PIPE_DEPTH + value: 4 + NAV_CMD_PIPE_NAME: + name: NAV_CMD_PIPE_NAME + value: NAV_CMD_PIPE + NAV_DATA_PIPE_DEPTH: + name: NAV_DATA_PIPE_DEPTH + value: 4 + NAV_DATA_PIPE_NAME: + name: NAV_DATA_PIPE_NAME + value: NAV_DATA_PIPE + NAV_CONFIG_TABLE_FILENAME: + name: NAV_CONFIG_TABLE_FILENAME + value: /cf/apps/nav_config.tbl + NAV_STARTUP_TIMEOUT_MSEC: + name: NAV_STARTUP_TIMEOUT_MSEC + value: 1000 + definition: /home/mbenson/git/airliner/apps/nav/wh_design.yaml + elf_files: + - /home/mbenson/git/airliner/build/bebop2/sitl/target/target/exe/cf/apps/NAV.so + pe: + short_name: pe + long_name: Position Estimator + events: + PE_INIT_INF_EID: + id: 1 + PE_CMD_NOOP_EID: + id: 2 + PE_SUBSCRIBE_ERR_EID: + id: 3 + PE_PIPE_INIT_ERR_EID: + id: 4 + PE_CFGTBL_MANAGE_ERR_EID: + id: 5 + PE_CFGTBL_GETADDR_ERR_EID: + id: 6 + PE_RCVMSG_ERR_EID: + id: 7 + PE_MSGID_ERR_EID: + id: 8 + PE_CC_ERR_EID: + id: 9 + PE_MSGLEN_ERR_EID: + id: 10 + PE_CFGTBL_REG_ERR_EID: + id: 11 + PE_CFGTBL_LOAD_ERR_EID: + id: 12 + PE_LOCAL_ESTIMATOR_INF_EID: + id: 13 + PE_GLOBAL_ESTIMATOR_INF_EID: + id: 14 + PE_ESTIMATOR_ERR_EID: + id: 15 + PE_BARO_FAULT_ERR_EID: + id: 16 + PE_BARO_OK_INF_EID: + id: 17 + PE_BARO_TIMEOUT_ERR_EID: + id: 18 + PE_GPS_TIMEOUT_ERR_EID: + id: 19 + PE_GPS_FAULT_ERR_EID: + id: 20 + PE_GPS_OK_INF_EID: + id: 21 + PE_LAND_FAULT_ERR_EID: + id: 22 + PE_LAND_OK_INF_EID: + id: 23 + PE_LAND_TIMEOUT_ERR_EID: + id: 24 + PE_DIST_FAULT_ERR_EID: + id: 25 + PE_DIST_OK_INF_EID: + id: 26 + PE_DIST_TIMEOUT_ERR_EID: + id: 27 + PE_MUTEX_ERR_EID: + id: 28 + PE_LOCAL_POS_MSG_ERR_EID: + id: 29 + PE_GLOBAL_POS_MSG_ERR_EID: + id: 30 + PE_FUSE_DIST_INF_EID: + id: 31 + PE_FUSE_DIST_ERR_EID: + id: 32 + PE_DISABLE_DIST_INF_EID: + id: 33 + PE_DISABLE_DIST_ERR_EID: + id: 34 + PE_FUSE_GPS_INF_EID: + id: 35 + PE_FUSE_GPS_ERR_EID: + id: 36 + PE_DISABLE_GPS_INF_EID: + id: 37 + PE_DISABLE_GPS_ERR_EID: + id: 38 + PE_FUSE_BARO_INF_EID: + id: 39 + PE_FUSE_BARO_ERR_EID: + id: 40 + PE_DISABLE_BARO_INF_EID: + id: 41 + PE_DISABLE_BARO_ERR_EID: + id: 42 + PE_FUSE_LAND_INF_EID: + id: 43 + PE_FUSE_LAND_ERR_EID: + id: 44 + PE_DISABLE_LAND_INF_EID: + id: 45 + PE_DISABLE_LAND_ERR_EID: + id: 46 + PE_FUSE_FLOW_INF_EID: + id: 47 + PE_FUSE_FLOW_ERR_EID: + id: 48 + PE_DISABLE_FLOW_INF_EID: + id: 49 + PE_DISABLE_FLOW_ERR_EID: + id: 50 + PE_FLOW_FAULT_ERR_EID: + id: 51 + PE_FLOW_OK_INF_EID: + id: 52 + PE_FLOW_TIMEOUT_ERR_EID: + id: 53 + PE_TBL_VALIDATE_ERR_EID: + id: 54 + telemetry: + PE_HK_TLM_MID: + msgID: 2444 + struct: PE_HkTlm_t + commands: + PE_CMD_MID: + msgID: 6541 + commands: + Noop: + cc: 0 + struct: PE_NoArgCmd_t + Reset: + cc: 1 + struct: PE_NoArgCmd_t + EnableDistanceSensor: + cc: 2 + struct: PE_NoArgCmd_t + DisableDistanceSensor: + cc: 3 + struct: PE_NoArgCmd_t + EnableGPS: + cc: 4 + struct: PE_NoArgCmd_t + DisableGPS: + cc: 5 + struct: PE_NoArgCmd_t + EnableBaro: + cc: 6 + struct: PE_NoArgCmd_t + DisableBaro: + cc: 7 + struct: PE_NoArgCmd_t + EnableLanding: + cc: 8 + struct: PE_NoArgCmd_t + DisableLanding: + cc: 9 + struct: PE_NoArgCmd_t + EnableFlow: + cc: 10 + struct: PE_NoArgCmd_t + DisableFlow: + cc: 11 + struct: PE_NoArgCmd_t + PE_SEND_HK_MID: + msgID: 6542 + commands: + SendHK: + cc: 0 + struct: PE_NoArgCmd_t + PE_WAKEUP_MID: + msgID: 6543 + commands: + WakeUp: + cc: 0 + struct: PE_NoArgCmd_t + perfids: + PE_INVERSE_MAT_PERF_ID: + id: 89 + PE_MAIN_TASK_PERF_ID: + id: 90 + PE_SENSOR_BARO_PERF_ID: + id: 92 + PE_SENSOR_DIST_PERF_ID: + id: 93 + PE_SENSOR_FLOW_PERF_ID: + id: 94 + PE_SENSOR_GPS_PERF_ID: + id: 95 + PE_SENSOR_LAND_PERF_ID: + id: 96 + PE_UPDATE_TASK_PERF_ID: + id: 91 + config: + PE_SB_TIMEOUT: + name: PE_SB_TIMEOUT + value: CFE_SB_PEND_FOREVER + PE_ONE_G: + name: PE_ONE_G + value: 9.81 + PE_MISSION_REV: + name: PE_MISSION_REV + value: 0 + PE_SCH_PIPE_DEPTH: + name: PE_SCH_PIPE_DEPTH + value: 20 + PE_SCH_PIPE_NAME: + name: PE_SCH_PIPE_NAME + value: PE_SCH_PIPE + PE_SCH_PIPE_PEND_TIME: + name: PE_SCH_PIPE_PEND_TIME + value: 2000 + PE_WAKEUP_MID_MAX_MSG_COUNT: + name: PE_WAKEUP_MID_MAX_MSG_COUNT + value: 1 + PE_SEND_HK_MID_MAX_MSG_COUNT: + name: PE_SEND_HK_MID_MAX_MSG_COUNT + value: 1 + PE_CMD_PIPE_DEPTH: + name: PE_CMD_PIPE_DEPTH + value: 4 + PE_CMD_PIPE_NAME: + name: PE_CMD_PIPE_NAME + value: PE_CMD_PIPE + PE_CONFIG_TABLE_FILENAME: + name: PE_CONFIG_TABLE_FILENAME + value: /cf/apps/pe_config.tbl + PE_STARTUP_TIMEOUT_MSEC: + name: PE_STARTUP_TIMEOUT_MSEC + value: 1000 + PE_MAX_EVENT_FILTERS: + name: PE_MAX_EVENT_FILTERS + value: 64 + REQ_BARO_INIT_COUNT: + name: REQ_BARO_INIT_COUNT + value: 2000 + BARO_TIMEOUT: + name: BARO_TIMEOUT + value: 100000 + REQ_GPS_INIT_COUNT: + name: REQ_GPS_INIT_COUNT + value: 50 + GPS_TIMEOUT: + name: GPS_TIMEOUT + value: 1000000 + REQ_LAND_INIT_COUNT: + name: REQ_LAND_INIT_COUNT + value: 1 + LAND_TIMEOUT: + name: LAND_TIMEOUT + value: 1000000 + REQ_DIST_INIT_COUNT: + name: REQ_DIST_INIT_COUNT + value: 50 + DIST_TIMEOUT: + name: DIST_TIMEOUT + value: 150000 + DIST_BETA_MAX: + name: DIST_BETA_MAX + value: 700 + DIST_SENSOR_TYPE: + name: DIST_SENSOR_TYPE + value: 3 + REQ_FLOW_INIT_COUNT: + name: REQ_FLOW_INIT_COUNT + value: 10 + FLOW_TIMEOUT: + name: FLOW_TIMEOUT + value: 1000000 + FLOW_GYRO_HP_CUTOFF: + name: FLOW_GYRO_HP_CUTOFF + value: 0.001 + definition: /home/mbenson/git/airliner/apps/pe/wh_design.yaml + elf_files: + - /home/mbenson/git/airliner/build/bebop2/sitl/target/target/exe/cf/apps/PE.so + qae: + short_name: qae + long_name: Attitude Estimator + events: + QAE_INIT_INF_EID: + id: 1 + QAE_CMD_NOOP_EID: + id: 2 + QAE_SUBSCRIBE_ERR_EID: + id: 3 + QAE_PIPE_INIT_ERR_EID: + id: 4 + QAE_CFGTBL_MANAGE_ERR_EID: + id: 5 + QAE_CFGTBL_GETADDR_ERR_EID: + id: 6 + QAE_RCVMSG_ERR_EID: + id: 7 + QAE_MSGID_ERR_EID: + id: 8 + QAE_CC_ERR_EID: + id: 9 + QAE_MSGLEN_ERR_EID: + id: 10 + QAE_CFGTBL_REG_ERR_EID: + id: 11 + QAE_CFGTBL_LOAD_ERR_EID: + id: 12 + QAE_DEGENERATE_ACC_ERR_EID: + id: 13 + QAE_DEGENERATE_MAG_ERR_EID: + id: 14 + QAE_UPDATE_EST_ERR_EID: + id: 15 + QAE_CFGTBL_VALIDATION_ERR_EID: + id: 16 + telemetry: + QAE_HK_TLM_MID: + msgID: 2460 + struct: QAE_HkTlm_t + commands: + QAE_CMD_MID: + msgID: 6557 + commands: + Noop: + cc: 0 + struct: QAE_NoArgCmd_t + Reset: + cc: 1 + struct: QAE_NoArgCmd_t + QAE_SEND_HK_MID: + msgID: 6558 + commands: + SendHK: + cc: 0 + struct: QAE_NoArgCmd_t + QAE_WAKEUP_MID: + msgID: 6559 + commands: + WakeUp: + cc: 0 + struct: QAE_NoArgCmd_t + perfids: + QAE_MAIN_TASK_PERF_ID: + id: 97 + config: + AE_SB_TIMEOUT: + name: AE_SB_TIMEOUT + value: CFE_SB_PEND_FOREVER + AE_MISSION_REV: + name: AE_MISSION_REV + value: 0 + AE_SCH_PIPE_DEPTH: + name: AE_SCH_PIPE_DEPTH + value: 2 + AE_SCH_PIPE_NAME: + name: AE_SCH_PIPE_NAME + value: AE_SCH_PIPE + AE_SCH_PIPE_PEND_TIME: + name: AE_SCH_PIPE_PEND_TIME + value: 2000 + AE_PARAM_PIPE_DEPTH: + name: AE_PARAM_PIPE_DEPTH + value: 4 + AE_PARAM_PIPE_NAME: + name: AE_PARAM_PIPE_NAME + value: AE_PARAM_PIPE + AE_WAKEUP_MID_MAX_MSG_COUNT: + name: AE_WAKEUP_MID_MAX_MSG_COUNT + value: 1 + AE_SEND_HK_MID_MAX_MSG_COUNT: + name: AE_SEND_HK_MID_MAX_MSG_COUNT + value: 1 + AE_CMD_PIPE_DEPTH: + name: AE_CMD_PIPE_DEPTH + value: 4 + AE_CMD_PIPE_NAME: + name: AE_CMD_PIPE_NAME + value: AE_CMD_PIPE + AE_DATA_PIPE_DEPTH: + name: AE_DATA_PIPE_DEPTH + value: 4 + AE_DATA_PIPE_NAME: + name: AE_DATA_PIPE_NAME + value: AE_DATA_PIPE + AE_CONFIG_TABLE_FILENAME: + name: AE_CONFIG_TABLE_FILENAME + value: /cf/apps/ae_config.tbl + AE_STARTUP_TIMEOUT_MSEC: + name: AE_STARTUP_TIMEOUT_MSEC + value: 1000 + definition: /home/mbenson/git/airliner/apps/qae/wh_design.yaml + elf_files: + - /home/mbenson/git/airliner/build/bebop2/sitl/target/target/exe/cf/apps/QAE.so + rcin: + short_name: rcin + long_name: Radio Control Input + events: + RCIN_INIT_INF_EID: + id: 1 + RCIN_CMD_NOOP_EID: + id: 2 + RCIN_SUBSCRIBE_ERR_EID: + id: 3 + RCIN_PIPE_INIT_ERR_EID: + id: 4 + RCIN_CFGTBL_MANAGE_ERR_EID: + id: 5 + RCIN_CFGTBL_GETADDR_ERR_EID: + id: 6 + RCIN_RCVMSG_ERR_EID: + id: 7 + RCIN_MSGID_ERR_EID: + id: 8 + RCIN_CC_ERR_EID: + id: 9 + RCIN_MSGLEN_ERR_EID: + id: 10 + RCIN_INIT_ERR_EID: + id: 11 + RCIN_PUBLISHING_INF_EID: + id: 12 + RCIN_NOT_PUBLISHING_ERR_EID: + id: 13 + telemetry: + RCIN_HK_TLM_MID: + msgID: 2466 + struct: RCIN_HkTlm_t + commands: + RCIN_CMD_MID: + msgID: 6563 + commands: + Noop: + cc: 0 + struct: RCIN_NoArgCmd_t + Reset: + cc: 1 + struct: RCIN_NoArgCmd_t + RCIN_SEND_HK_MID: + msgID: 6564 + commands: + SendHK: + cc: 0 + struct: RCIN_NoArgCmd_t + RCIN_WAKEUP_MID: + msgID: 6565 + commands: + WakeUp: + cc: 0 + struct: RCIN_NoArgCmd_t + perfids: + RCIN_DEVICE_GET_PERF_ID: + id: 98 + RCIN_MAIN_TASK_PERF_ID: + id: 99 + config: + RCIN_SB_TIMEOUT: + name: RCIN_SB_TIMEOUT + value: CFE_SB_PEND_FOREVER + RCIN_MISSION_REV: + name: RCIN_MISSION_REV + value: 0 + RCIN_SCH_PIPE_DEPTH: + name: RCIN_SCH_PIPE_DEPTH + value: 2 + RCIN_SCH_PIPE_NAME: + name: RCIN_SCH_PIPE_NAME + value: RCIN_SCH_PIPE + RCIN_SCH_PIPE_PEND_TIME: + name: RCIN_SCH_PIPE_PEND_TIME + value: 2000 + RCIN_WAKEUP_MID_MAX_MSG_COUNT: + name: RCIN_WAKEUP_MID_MAX_MSG_COUNT + value: 1 + RCIN_SEND_HK_MID_MAX_MSG_COUNT: + name: RCIN_SEND_HK_MID_MAX_MSG_COUNT + value: 1 + RCIN_CMD_PIPE_DEPTH: + name: RCIN_CMD_PIPE_DEPTH + value: 4 + RCIN_CMD_PIPE_NAME: + name: RCIN_CMD_PIPE_NAME + value: RCIN_CMD_PIPE + RCIN_DATA_PIPE_DEPTH: + name: RCIN_DATA_PIPE_DEPTH + value: 4 + RCIN_DATA_PIPE_NAME: + name: RCIN_DATA_PIPE_NAME + value: RCIN_DATA_PIPE + RCIN_CONFIG_TABLE_FILENAME: + name: RCIN_CONFIG_TABLE_FILENAME + value: /cf/apps/rcin_config.tbl + RCIN_STARTUP_TIMEOUT_MSEC: + name: RCIN_STARTUP_TIMEOUT_MSEC + value: 1000 + RCIN_CUSTOM_JOYSTICK_PATH: + name: RCIN_CUSTOM_JOYSTICK_PATH + value: /dev/input/futaba-t8j-0 + RCIN_MAX_EVENT_FILTERS: + name: RCIN_MAX_EVENT_FILTERS + value: 32 + definition: /home/mbenson/git/airliner/apps/rcin/wh_design.yaml + elf_files: + - /home/mbenson/git/airliner/build/bebop2/sitl/target/target/exe/cf/apps/RCIN.so + rgbled: + short_name: rgbled + long_name: RGB LED Control + events: + RGBLED_INIT_INF_EID: + id: 1 + RGBLED_CMD_NOOP_EID: + id: 2 + RGBLED_SUBSCRIBE_ERR_EID: + id: 3 + RGBLED_PIPE_INIT_ERR_EID: + id: 4 + RGBLED_RCVMSG_ERR_EID: + id: 5 + RGBLED_MSGID_ERR_EID: + id: 6 + RGBLED_CC_ERR_EID: + id: 7 + RGBLED_MSGLEN_ERR_EID: + id: 8 + RGBLED_CMD_ERR_EID: + id: 9 + RGBLED_INIT_ERR_EID: + id: 10 + telemetry: + RGBLED_HK_TLM_MID: + msgID: 2472 + struct: RGBLED_HkTlm_t + commands: + RGBLED_CMD_MID: + msgID: 6569 + commands: + Noop: + cc: 0 + struct: RGBLED_NoArgCmd_t + Reset: + cc: 1 + struct: RGBLED_NoArgCmd_t + RGBLED_SEND_HK_MID: + msgID: 6570 + commands: + SendHK: + cc: 0 + struct: RGBLED_NoArgCmd_t + RGBLED_WAKEUP_MID: + msgID: 6571 + commands: + WakeUp: + cc: 0 + struct: RGBLED_NoArgCmd_t + perfids: + RGBLED_MAIN_TASK_PERF_ID: + id: 100 + RGBLED_RECEIVE_PERF_ID: + id: 101 + RGBLED_SEND_PERF_ID: + id: 102 + config: + RGBLED_SELFTEST_TASK_FLAGS: + name: RGBLED_SELFTEST_TASK_FLAGS + value: OS_ENABLE_CORE_0 + RGBLED_SB_TIMEOUT: + name: RGBLED_SB_TIMEOUT + value: CFE_SB_PEND_FOREVER + RGBLED_MISSION_REV: + name: RGBLED_MISSION_REV + value: 0 + RGBLED_SCH_PIPE_DEPTH: + name: RGBLED_SCH_PIPE_DEPTH + value: 2 + RGBLED_SCH_PIPE_NAME: + name: RGBLED_SCH_PIPE_NAME + value: RGBLED_SCH_PIPE + RGBLED_SCH_PIPE_PEND_TIME: + name: RGBLED_SCH_PIPE_PEND_TIME + value: 2000 + RGBLED_WAKEUP_MID_MAX_MSG_COUNT: + name: RGBLED_WAKEUP_MID_MAX_MSG_COUNT + value: 1 + RGBLED_SEND_HK_MID_MAX_MSG_COUNT: + name: RGBLED_SEND_HK_MID_MAX_MSG_COUNT + value: 1 + RGBLED_CMD_PIPE_DEPTH: + name: RGBLED_CMD_PIPE_DEPTH + value: 4 + RGBLED_CMD_PIPE_NAME: + name: RGBLED_CMD_PIPE_NAME + value: RGBLED_CMD_PIPE + RGBLED_DATA_PIPE_DEPTH: + name: RGBLED_DATA_PIPE_DEPTH + value: 4 + RGBLED_DATA_PIPE_NAME: + name: RGBLED_DATA_PIPE_NAME + value: RGBLED_DATA_PIPE + RGBLED_CONFIG_TABLE_FILENAME: + name: RGBLED_CONFIG_TABLE_FILENAME + value: /cf/apps/rgbled_config.tbl + RGBLED_STARTUP_TIMEOUT_MSEC: + name: RGBLED_STARTUP_TIMEOUT_MSEC + value: 1000 + definition: /home/mbenson/git/airliner/apps/rgbled/wh_design.yaml + elf_files: + - /home/mbenson/git/airliner/build/bebop2/sitl/target/target/exe/cf/apps/RGBLED.so + sens: + short_name: sens + long_name: Sensor Application + events: + SENS_INIT_INF_EID: + id: 1 + SENS_CMD_NOOP_EID: + id: 2 + SENS_SUBSCRIBE_ERR_EID: + id: 3 + SENS_PIPE_INIT_ERR_EID: + id: 4 + SENS_CFGTBL_MANAGE_ERR_EID: + id: 5 + SENS_CFGTBL_GETADDR_ERR_EID: + id: 6 + SENS_RCVMSG_ERR_EID: + id: 7 + SENS_MSGID_ERR_EID: + id: 8 + SENS_CC_ERR_EID: + id: 9 + SENS_MSGLEN_ERR_EID: + id: 10 + SENS_CFGTBL_REG_ERR_EID: + id: 11 + ENS_CFGTBL_LOAD_ERR_EID: + id: 12 + telemetry: + SENS_HK_TLM_MID: + msgID: 2488 + struct: SENS_HkTlm_t + commands: + SENS_CMD_MID: + msgID: 6585 + commands: + Noop: + cc: 0 + struct: SENS_NoArgCmd_t + Reset: + cc: 1 + struct: SENS_NoArgCmd_t + SENS_SEND_HK_MID: + msgID: 6586 + commands: + SendHK: + cc: 0 + struct: SENS_NoArgCmd_t + SENS_WAKEUP_MID: + msgID: 6587 + commands: + WakeUp: + cc: 0 + struct: SENS_NoArgCmd_t + perfids: + SENS_MAIN_TASK_PERF_ID: + id: 103 + config: + SENS_SB_TIMEOUT: + name: SENS_SB_TIMEOUT + value: CFE_SB_PEND_FOREVER + SENS_MISSION_REV: + name: SENS_MISSION_REV + value: 0 + SENS_SCH_PIPE_DEPTH: + name: SENS_SCH_PIPE_DEPTH + value: 10 + SENS_SCH_PIPE_NAME: + name: SENS_SCH_PIPE_NAME + value: SENS_SCH_PIPE + SENS_SCH_PIPE_PEND_TIME: + name: SENS_SCH_PIPE_PEND_TIME + value: 2000 + SENS_WAKEUP_MID_MAX_MSG_COUNT: + name: SENS_WAKEUP_MID_MAX_MSG_COUNT + value: 1 + SENS_SEND_HK_MID_MAX_MSG_COUNT: + name: SENS_SEND_HK_MID_MAX_MSG_COUNT + value: 1 + SENS_CMD_PIPE_DEPTH: + name: SENS_CMD_PIPE_DEPTH + value: 4 + SENS_CMD_PIPE_NAME: + name: SENS_CMD_PIPE_NAME + value: SENS_CMD_PIPE + SENS_DATA_PIPE_DEPTH: + name: SENS_DATA_PIPE_DEPTH + value: 4 + SENS_DATA_PIPE_NAME: + name: SENS_DATA_PIPE_NAME + value: SENS_DATA_PIPE + SENS_CONFIG_TABLE_FILENAME: + name: SENS_CONFIG_TABLE_FILENAME + value: /cf/apps/sens_config.tbl + SENS_STARTUP_TIMEOUT_MSEC: + name: SENS_STARTUP_TIMEOUT_MSEC + value: 1000 + SENS_MAX_ACC_TIME_DELTA: + name: SENS_MAX_ACC_TIME_DELTA + value: 25 + SENS_MAX_GYRO_TIME_DELTA: + name: SENS_MAX_GYRO_TIME_DELTA + value: 25 + SENS_MAX_MAG_TIME_DELTA: + name: SENS_MAX_MAG_TIME_DELTA + value: 25 + SENS_MAX_BARO_TIME_DELTA: + name: SENS_MAX_BARO_TIME_DELTA + value: 100 + definition: /home/mbenson/git/airliner/apps/sens/wh_design.yaml + elf_files: + - /home/mbenson/git/airliner/build/bebop2/sitl/target/target/exe/cf/apps/SENS.so + sim: + short_name: sim + long_name: Simulation Application + events: + SIM_INIT_INF_EID: + id: 1 + SIM_CMD_NOOP_EID: + id: 2 + SIM_SUBSCRIBE_ERR_EID: + id: 3 + SIM_PIPE_INIT_ERR_EID: + id: 4 + SIM_CFGTBL_MANAGE_ERR_EID: + id: 5 + SIM_CFGTBL_GETADDR_ERR_EID: + id: 6 + SIM_RCVMSG_ERR_EID: + id: 7 + SIM_MSGID_ERR_EID: + id: 8 + SIM_CC_ERR_EID: + id: 9 + SIM_MSGLEN_ERR_EID: + id: 10 + SIM_CFGTBL_REG_ERR_EID: + id: 11 + SIM_CFGTBL_LOAD_ERR_EID: + id: 12 + telemetry: + SIM_HK_TLM_MID: + msgID: 2494 + struct: SIM_HkTlm_t + commands: + SIM_CMD_MID: + msgID: 6591 + commands: + Noop: + cc: 0 + struct: SIM_NoArgCmd_t + Reset: + cc: 1 + struct: SIM_NoArgCmd_t + SIM_SEND_HK_MID: + msgID: 6592 + commands: + SendHK: + cc: 0 + struct: SIM_NoArgCmd_t + SIM_WAKEUP_MID: + msgID: 6593 + commands: + WakeUp: + cc: 0 + struct: SIM_NoArgCmd_t + perfids: + SIM_MAIN_TASK_PERF_ID: + id: 104 + config: + SIM_LISTENER_TASK_FLAGS: + name: SIM_LISTENER_TASK_FLAGS + value: OS_ENABLE_CORE_0 + SIM_SB_TIMEOUT: + name: SIM_SB_TIMEOUT + value: CFE_SB_PEND_FOREVER + SIM_MISSION_REV: + name: SIM_MISSION_REV + value: 0 + SIM_SCH_PIPE_DEPTH: + name: SIM_SCH_PIPE_DEPTH + value: 2 + SIM_SCH_PIPE_NAME: + name: SIM_SCH_PIPE_NAME + value: SIM_SCH_PIPE + SIM_SCH_PIPE_PEND_TIME: + name: SIM_SCH_PIPE_PEND_TIME + value: 2000 + SIM_WAKEUP_MID_MAX_MSG_COUNT: + name: SIM_WAKEUP_MID_MAX_MSG_COUNT + value: 1 + SIM_SEND_HK_MID_MAX_MSG_COUNT: + name: SIM_SEND_HK_MID_MAX_MSG_COUNT + value: 1 + SIM_CMD_PIPE_DEPTH: + name: SIM_CMD_PIPE_DEPTH + value: 4 + SIM_CMD_PIPE_NAME: + name: SIM_CMD_PIPE_NAME + value: SIM_CMD_PIPE + SIM_DATA_PIPE_DEPTH: + name: SIM_DATA_PIPE_DEPTH + value: 4 + SIM_DATA_PIPE_NAME: + name: SIM_DATA_PIPE_NAME + value: SIM_DATA_PIPE + SIM_CONFIG_TABLE_FILENAME: + name: SIM_CONFIG_TABLE_FILENAME + value: /cf/apps/sim_config.tbl + SIM_STARTUP_TIMEOUT_MSEC: + name: SIM_STARTUP_TIMEOUT_MSEC + value: 1000 + SIM_MAX_MESSAGE_SIZE: + name: SIM_MAX_MESSAGE_SIZE + value: 1500 + SIM_LISTENER_TASK_NAME: + name: SIM_LISTENER_TASK_NAME + value: SIM_LISTENER + SIM_LISTENER_TASK_STACK_SIZE: + name: SIM_LISTENER_TASK_STACK_SIZE + value: 16378 + SIM_LISTENER_TASK_PRIORITY: + name: SIM_LISTENER_TASK_PRIORITY + value: 50 + SIM_MUTEX_NAME: + name: SIM_MUTEX_NAME + value: SIM_MUTEX + SIMLIB_MUTEX_SEM_NAME: + name: SIMLIB_MUTEX_SEM_NAME + value: SIMLIB_MUTEX + SIM_PORT: + name: SIM_PORT + value: 14560 + definition: /home/mbenson/git/airliner/apps/sim/wh_design.yaml + elf_files: + - /home/mbenson/git/airliner/build/bebop2/sitl/target/target/exe/cf/apps/SIM.so + sonar: + short_name: sonar + long_name: Sonar Driver + events: + SONAR_INIT_INF_EID: + id: 1 + SONAR_CMD_NOOP_EID: + id: 2 + SONAR_SUBSCRIBE_ERR_EID: + id: 3 + SONAR_PIPE_INIT_ERR_EID: + id: 4 + SONAR_CFGTBL_MANAGE_ERR_EID: + id: 5 + SONAR_CFGTBL_GETADDR_ERR_EID: + id: 6 + SONAR_RCVMSG_ERR_EID: + id: 7 + SONAR_MSGID_ERR_EID: + id: 8 + SONAR_CC_ERR_EID: + id: 9 + SONAR_MSGLEN_ERR_EID: + id: 10 + SONAR_CFGTBL_REG_ERR_EID: + id: 11 + SONAR_CFGTBL_LOAD_ERR_EID: + id: 12 + SONAR_CUSTOM_INIT_ERR_EID: + id: 13 + SONAR_INIT_ERR_EID: + id: 14 + SONAR_UNINIT_ERR_EID: + id: 15 + SONAR_MEASURE_ERR_EID: + id: 16 + telemetry: + SONAR_HK_TLM_MID: + msgID: 2501 + struct: SONAR_HkTlm_t + SONAR_OUT_DATA_MID: + msgID: 2500 + commands: + SONAR_CMD_MID: + msgID: 6598 + commands: + Noop: + cc: 0 + struct: SONAR_NoArgCmd_t + Reset: + cc: 1 + struct: SONAR_NoArgCmd_t + SONAR_MEASURE_MID: + msgID: 6599 + commands: + Measure: + cc: 0 + struct: SONAR_NoArgCmd_t + SONAR_SEND_HK_MID: + msgID: 6600 + commands: + SendHK: + cc: 0 + struct: SONAR_NoArgCmd_t + perfids: + SONAR_MAIN_TASK_PERF_ID: + id: 105 + config: + SONAR_SB_TIMEOUT: + name: SONAR_SB_TIMEOUT + value: CFE_SB_PEND_FOREVER + SONAR_MISSION_REV: + name: SONAR_MISSION_REV + value: 0 + SONAR_SCH_PIPE_DEPTH: + name: SONAR_SCH_PIPE_DEPTH + value: 2 + SONAR_SCH_PIPE_NAME: + name: SONAR_SCH_PIPE_NAME + value: SONAR_SCH_PIPE + SONAR_SCH_PIPE_PEND_TIME: + name: SONAR_SCH_PIPE_PEND_TIME + value: 2000 + SONAR_MEASURE_MID_MAX_MSG_COUNT: + name: SONAR_MEASURE_MID_MAX_MSG_COUNT + value: 1 + SONAR_SEND_HK_MID_MAX_MSG_COUNT: + name: SONAR_SEND_HK_MID_MAX_MSG_COUNT + value: 1 + SONAR_CMD_PIPE_DEPTH: + name: SONAR_CMD_PIPE_DEPTH + value: 4 + SONAR_CMD_PIPE_NAME: + name: SONAR_CMD_PIPE_NAME + value: SONAR_CMD_PIPE + SONAR_DATA_PIPE_DEPTH: + name: SONAR_DATA_PIPE_DEPTH + value: 4 + SONAR_DATA_PIPE_NAME: + name: SONAR_DATA_PIPE_NAME + value: SONAR_DATA_PIPE + SONAR_CONFIG_TABLE_FILENAME: + name: SONAR_CONFIG_TABLE_FILENAME + value: /cf/apps/sonar_config.tbl + SONAR_STARTUP_TIMEOUT_MSEC: + name: SONAR_STARTUP_TIMEOUT_MSEC + value: 1000 + SONAR_SENS_VARIANCE: + name: SONAR_SENS_VARIANCE + value: 1 + SONAR_MIN_DISTANCE: + name: SONAR_MIN_DISTANCE + value: 0.5 + SONAR_MAX_DISTANCE: + name: SONAR_MAX_DISTANCE + value: 8.5 + definition: /home/mbenson/git/airliner/apps/sonar/wh_design.yaml + ulr: + short_name: ulr + long_name: uLanding Radar Driver + events: + ULR_INIT_INF_EID: + id: 1 + ULR_CMD_NOOP_EID: + id: 2 + ULR_SUBSCRIBE_ERR_EID: + id: 3 + ULR_PIPE_INIT_ERR_EID: + id: 4 + ULR_RCVMSG_ERR_EID: + id: 5 + ULR_MSGID_ERR_EID: + id: 6 + ULR_CC_ERR_EID: + id: 7 + ULR_MSGLEN_ERR_EID: + id: 8 + ULR_CUSTOM_INIT_ERR_EID: + id: 9 + ULR_UNEXPECTED_DATA_BEFORE_VERSION_ID: + id: 10 + ULR_UNEXPECTED_DATA_BEFORE_HEADER: + id: 11 + ULR_INVALID_CHECKSUM: + id: 12 + ULR_INVALID_PARSER_STATE: + id: 13 + ULR_LISTENER_CREATE_CHDTASK_ERR_EID: + id: 14 + telemetry: + ULR_HK_TLM_MID: + msgID: 2506 + struct: ULR_HkTlm_t + commands: + ULR_CMD_MID: + msgID: 6603 + commands: + Noop: + cc: 0 + struct: ULR_NoArgCmd_t + Reset: + cc: 1 + struct: ULR_NoArgCmd_t + ULR_MEASURE_MID: + msgID: 6604 + commands: + Measure: + cc: 0 + struct: ULR_NoArgCmd_t + ULR_SEND_HK_MID: + msgID: 6605 + commands: + SendHK: + cc: 0 + struct: ULR_NoArgCmd_t + perfids: + ULR_MAIN_TASK_PERF_ID: + id: 106 + config: + ULR_SB_TIMEOUT: + name: ULR_SB_TIMEOUT + value: CFE_SB_PEND_FOREVER + ULR_LISTENER_TASK_FLAGS: + name: ULR_LISTENER_TASK_FLAGS + value: OS_ENABLE_CORE_0 + ULR_MISSION_REV: + name: ULR_MISSION_REV + value: 0 + ULR_SCH_PIPE_DEPTH: + name: ULR_SCH_PIPE_DEPTH + value: 2 + ULR_SCH_PIPE_NAME: + name: ULR_SCH_PIPE_NAME + value: ULR_SCH_PIPE + ULR_SCH_PIPE_PEND_TIME: + name: ULR_SCH_PIPE_PEND_TIME + value: 2000 + ULR_MEASURE_MID_MAX_MSG_COUNT: + name: ULR_MEASURE_MID_MAX_MSG_COUNT + value: 1 + ULR_SEND_HK_MID_MAX_MSG_COUNT: + name: ULR_SEND_HK_MID_MAX_MSG_COUNT + value: 1 + ULR_CMD_PIPE_DEPTH: + name: ULR_CMD_PIPE_DEPTH + value: 4 + ULR_CMD_PIPE_NAME: + name: ULR_CMD_PIPE_NAME + value: ULR_CMD_PIPE + ULR_DATA_PIPE_DEPTH: + name: ULR_DATA_PIPE_DEPTH + value: 4 + ULR_DATA_PIPE_NAME: + name: ULR_DATA_PIPE_NAME + value: ULR_DATA_PIPE + ULR_CONFIG_TABLE_FILENAME: + name: ULR_CONFIG_TABLE_FILENAME + value: /cf/apps/ulr_config.tbl + ULR_STARTUP_TIMEOUT_MSEC: + name: ULR_STARTUP_TIMEOUT_MSEC + value: 1000 + ULR_CUSTOM_PORT_PATH: + name: ULR_CUSTOM_PORT_PATH + value: /dev/ttyS6 + ULR_SENS_VARIANCE: + name: ULR_SENS_VARIANCE + value: 0.045f * 0.045f + ULR_LISTENER_TASK_PRIORITY: + name: ULR_LISTENER_TASK_PRIORITY + value: 64 + ULR_LISTENER_TASK_STACK_SIZE: + name: ULR_LISTENER_TASK_STACK_SIZE + value: 16000 + ULR_LISTENER_TASK_NAME: + name: ULR_LISTENER_TASK_NAME + value: ULR_LISTENER + ULR_MUTEX_NAME: + name: ULR_MUTEX_NAME + value: ULR_MUTEX + definition: /home/mbenson/git/airliner/apps/ulr/wh_design.yaml + vc: + short_name: vc + long_name: Video Control + events: + VC_INIT_INF_EID: + id: 1 + VC_NOOP_INF_EID: + id: 2 + VC_RESET_INF_EID: + id: 3 + VC_CMD_INF_EID: + id: 4 + VC_DEV_INF_EID: + id: 5 + VC_CHA_INF_EID: + id: 6 + VC_INIT_ERR_EID: + id: 7 + VC_UNINIT_ERR_EID: + id: 8 + VC_CMD_ERR_EID: + id: 9 + VC_PIPE_ERR_EID: + id: 10 + VC_MSGID_ERR_EID: + id: 11 + VC_MSGLEN_ERR_EID: + id: 12 + telemetry: + VC_HK_TLM_MID: + msgID: 2512 + struct: VC_HkTlm_t + FLOW_FRAME_MID: + msgID: 2513 + commands: + VC_CMD_MID: + msgID: 6610 + commands: + Noop: + cc: 0 + struct: VC_NoArgCmd_t + Reset: + cc: 1 + struct: VC_NoArgCmd_t + StartStreaming: + cc: 2 + struct: VC_StartStreamCmd_t + StopStreaming: + cc: 3 + struct: VC_NoArgCmd_t + VC_PROCESS_CMDS_MID: + msgID: 6611 + commands: + ProcessCommands: + cc: 0 + struct: VC_NoArgCmd_t + VC_SEND_HK_MID: + msgID: 6612 + commands: + SendHK: + cc: 0 + struct: VC_NoArgCmd_t + perfids: + VC_DEVICE_GET_PERF_ID: + id: 107 + VC_MAIN_TASK_PERF_ID: + id: 108 + VC_SOCKET_SEND_PERF_ID: + id: 109 + config: + VC_SB_TIMEOUT: + name: VC_SB_TIMEOUT + value: CFE_SB_PEND_FOREVER + VC_STREAMING_TASK_FLAGS: + name: VC_STREAMING_TASK_FLAGS + value: OS_ENABLE_CORE_0 + VC_MISSION_REV: + name: VC_MISSION_REV + value: 0 + VC_SCH_PIPE_DEPTH: + name: VC_SCH_PIPE_DEPTH + value: 2 + VC_SCH_PIPE_NAME: + name: VC_SCH_PIPE_NAME + value: VC_SCH_PIPE + VC_SCH_PIPE_PEND_TIME: + name: VC_SCH_PIPE_PEND_TIME + value: 2000 + VC_SCH_PIPE_WAKEUP_RESERVED: + name: VC_SCH_PIPE_WAKEUP_RESERVED + value: 1 + VC_SCH_PIPE_SEND_HK_RESERVED: + name: VC_SCH_PIPE_SEND_HK_RESERVED + value: 1 + VC_CMD_PIPE_DEPTH: + name: VC_CMD_PIPE_DEPTH + value: 4 + VC_CMD_PIPE_NAME: + name: VC_CMD_PIPE_NAME + value: VC_CMD_PIPE + VC_DATA_PIPE_DEPTH: + name: VC_DATA_PIPE_DEPTH + value: 4 + VC_DATA_PIPE_NAME: + name: VC_DATA_PIPE_NAME + value: VC_DATA_PIPE + VC_CONFIG_TABLE_FILENAME: + name: VC_CONFIG_TABLE_FILENAME + value: /cf/apps/vc_config.tbl + VC_STARTUP_TIMEOUT_MSEC: + name: VC_STARTUP_TIMEOUT_MSEC + value: 1000 + VC_ADDRESS_LENGTH: + name: VC_ADDRESS_LENGTH + value: INET_ADDRSTRLEN + VC_MAX_OUTPUT_CHANNELS: + name: VC_MAX_OUTPUT_CHANNELS + value: 5 + VC_MAX_DEVICE_PATH: + name: VC_MAX_DEVICE_PATH + value: OS_MAX_LOCAL_PATH_LEN + VC_MAX_DEVICES: + name: VC_MAX_DEVICES + value: 2 + VC_MAX_BUFFER_SIZE: + name: VC_MAX_BUFFER_SIZE + value: 28800 + VC_MAX_PACKET_SIZE: + name: VC_MAX_PACKET_SIZE + value: 65527 + VC_MAX_RETRY_ATTEMPTS: + name: VC_MAX_RETRY_ATTEMPTS + value: 2 + VC_MAX_RETRY_SLEEP_USEC: + name: VC_MAX_RETRY_SLEEP_USEC + value: 10 + VC_STREAMING_TASK_PRIORITY: + name: VC_STREAMING_TASK_PRIORITY + value: 91 + VC_STREAMING_TASK_NAME: + name: VC_STREAMING_TASK_NAME + value: VC_STREAM + VC_FRAME_WIDTH: + name: VC_FRAME_WIDTH + value: 320 + VC_FRAME_HEIGHT: + name: VC_FRAME_HEIGHT + value: 240 + VC_FRAMERATE: + name: VC_FRAMERATE + value: 30 + VC_DEVICE_PATH: + name: VC_DEVICE_PATH + value: /dev/video0 + VC_DESTINATION_IP: + name: VC_DESTINATION_IP + value: 127.0.0.1 + VC_DESTINATION_PORT: + name: VC_DESTINATION_PORT + value: 3001 + VC_SOURCE_IP: + name: VC_SOURCE_IP + value: 0 + VC_SOURCE_PORT: + name: VC_SOURCE_PORT + value: 0 + VC_V4L_IO_METHOD: + name: VC_V4L_IO_METHOD + value: V4L2_MEMORY_USERPTR + VC_V4L_BUFFER_TYPE: + name: VC_V4L_BUFFER_TYPE + value: V4L2_BUF_TYPE_VIDEO_CAPTURE + VC_V4L_VIDEO_FORMAT: + name: VC_V4L_VIDEO_FORMAT + value: V4L2_PIX_FMT_MJPEG + VC_V4L_VIDEO_FIELD_ORDER: + name: VC_V4L_VIDEO_FIELD_ORDER + value: V4L2_FIELD_NONE + VC_V4L_BUFFER_REQUEST: + name: VC_V4L_BUFFER_REQUEST + value: 4 + VC_V4L_MEMORY_TYPE: + name: VC_V4L_MEMORY_TYPE + value: V4L2_MEMORY_USERPTR + VC_BUFFER_FILL_TIMEOUT_SEC: + name: VC_BUFFER_FILL_TIMEOUT_SEC + value: 2 + VC_BUFFER_FILL_TIMEOUT_USEC: + name: VC_BUFFER_FILL_TIMEOUT_USEC + value: 0 + VC_BUFFER_TIMEOUTS_ALLOWED: + name: VC_BUFFER_TIMEOUTS_ALLOWED + value: 2 + definition: /home/mbenson/git/airliner/apps/vc/wh_design.yaml + elf_files: + - /home/mbenson/git/airliner/build/bebop2/sitl/target/target/exe/cf/apps/VC.so + vm: + short_name: vm + long_name: Vehicle Manager + events: + VM_INIT_INF_EID: + id: 1 + VM_CMD_NOOP_EID: + id: 2 + VM_SUBSCRIBE_ERR_EID: + id: 3 + VM_PIPE_INIT_ERR_EID: + id: 4 + VM_PARAM_UPDATE_ERR_EID: + id: 5 + VM_CFGTBL_MANAGE_ERR_EID: + id: 6 + VM_CFGTBL_GETADDR_ERR_EID: + id: 7 + VM_RCVMSG_ERR_EID: + id: 8 + VM_MSGID_ERR_EID: + id: 9 + VM_CC_ERR_EID: + id: 10 + VM_MSGLEN_ERR_EID: + id: 11 + VM_CFGTBL_REG_ERR_EID: + id: 12 + VM_CFGTBL_LOAD_ERR_EID: + id: 13 + VM_ARMING_ILLEGAL_TRANSITION_ERR_EID: + id: 14 + VM_NAV_ILLEGAL_TRANSITION_ERR_EID: + id: 15 + VM_ARMING_ENTERED_STANDBY_STATE_INFO_EID: + id: 16 + VM_ARMING_ENTERED_ARMED_STATE_INFO_EID: + id: 17 + VM_ARMING_ENTERED_STANDBY_ERROR_STATE_INFO_EID: + id: 18 + VM_ARMING_ENTERED_ARMED_ERROR_STATE_INFO_EID: + id: 19 + VM_NAVSM_ENTERED_MANUAL_INFO_EID: + id: 20 + VM_NAVSN_ENTERED_ALTCTL_INFO_EID: + id: 21 + VM_NAVSN_ENTERED_POSCTL_INFO_EID: + id: 22 + VM_NAVSN_ENTERED_AUTOLOITER_INFO_EID: + id: 23 + VM_NAVSN_ENTERED_RTL_INFO_EID: + id: 24 + VM_NAVSN_ENTERED_ACRO_INFO_EID: + id: 25 + VM_NAVSN_ENTERED_STABILIZE_INFO_EID: + id: 26 + VM_NAVSN_ENTERED_RATTITUDE_INFO_EID: + id: 27 + VM_NAVSN_ENTERED_AUTO_TAKEOFF_INFO_EID: + id: 28 + VM_NAVSN_ENTERED_AUTO_LAND_INFO_EID: + id: 29 + VM_IN_UNKNOWN_STATE_ERR_EID: + id: 30 + VM_HOMESET_INFO_EID: + id: 31 + VM_LND_INIT_INFO_EID: + id: 32 + VM_SAFETY_DISARM_INFO_EID: + id: 33 + VM_SAFETY_INFO_EID: + id: 34 + VM_LOW_BAT_INFO_EID: + id: 35 + VM_CRITICAL_BAT_INFO_EID: + id: 36 + VM_DANGER_BAT_LEVEL_INFO_EID: + id: 37 + VM_RC_SIGN_REGAINED_INFO_EID: + id: 38 + VM_RC_SIGN_LOST_INFO_EID: + id: 39 + VM_RC_STK_DISARM_REJ_INFO_EID: + id: 40 + VM_RC_STK_ARM_REJ_INFO_EID: + id: 41 + VM_RC_DISARM_INFO_EID: + id: 42 + VM_RC_ARM_INFO_EID: + id: 43 + VM_RC_KIL_SWTCH_INFO_EID: + id: 44 + VM_RC_LTR_INFO_EID: + id: 45 + VM_RC_RTL_INFO_EID: + id: 46 + VM_RC_POSCTL_INFO_EID: + id: 47 + VM_RC_MAN_INFO_EID: + id: 48 + VM_RC_TAKE_OFF_INFO_EID: + id: 49 + VM_PRE_ARM_BAT_CHECK_INFO_EID: + id: 50 + VM_PRE_ARM_SAFETY_CHECK_INFO_EID: + id: 51 + VM_PRE_ARM_SENSORS_CHECK_INFO_EID: + id: 52 + VM_SEN_NOT_READY_INFO_EID: + id: 53 + VM_REQ_POS_CTL_ERR_EID: + id: 54 + VM_REQ_ALT_CTL_ERR_EID: + id: 55 + VM_REQ_ACRO_ERR_EID: + id: 56 + VM_NOPE_ERR_EID: + id: 57 + VM_CONFIG_CHANGE_EID: + id: 58 + VM_CONFIG_PARAMETER_OUT_OF_BOUNDS_EID: + id: 59 + VM_PARAM_INIT_ERR_EID: + id: 60 + VM_INVALID_CONFIG_TABLE_ERR_EID: + id: 61 + VM_HOMESET_ERROR_EID: + id: 62 + telemetry: + VM_CONFIG_TLM_MID: + msgID: 2528 + struct: VM_ConfigTlm_t + VM_HK_TLM_MID: + msgID: 2529 + struct: VM_HkTlm_t + commands: + VM_CMD_MID: + msgID: 6626 + commands: + Noop: + cc: 0 + struct: VM_NoArgCmd_t + Reset: + cc: 1 + struct: VM_NoArgCmd_t + Arm: + cc: 2 + struct: VM_NoArgCmd_t + Disarm: + cc: 3 + struct: VM_NoArgCmd_t + Manual: + cc: 40 + struct: VM_NoArgCmd_t + AltCtl: + cc: 41 + struct: VM_NoArgCmd_t + PosCtl: + cc: 42 + struct: VM_NoArgCmd_t + AutoLoiter: + cc: 44 + struct: VM_NoArgCmd_t + AutoRtl: + cc: 45 + struct: VM_NoArgCmd_t + AutoTakeOff: + cc: 56 + struct: VM_NoArgCmd_t + AutoLand: + cc: 57 + struct: VM_NoArgCmd_t + Acrobatic: + cc: 50 + struct: VM_NoArgCmd_t + Rattitude: + cc: 55 + struct: VM_NoArgCmd_t + Stabilized: + cc: 54 + struct: VM_NoArgCmd_t + SendConfig: + cc: 58 + struct: VM_NoArgCmd_t + VM_SEND_HK_MID: + msgID: 6627 + commands: + SendHK: + cc: 0 + struct: VM_NoArgCmd_t + VM_WAKEUP_MID: + msgID: 6628 + commands: + WakeUp: + cc: 0 + struct: VM_NoArgCmd_t + perfids: + VM_MAIN_TASK_PERF_ID: + id: 110 + config: + VM_MISSION_REV: + name: VM_MISSION_REV + value: 0 + VM_SCH_PIPE_DEPTH: + name: VM_SCH_PIPE_DEPTH + value: 30 + VM_SCH_PIPE_NAME: + name: VM_SCH_PIPE_NAME + value: VM_SCH_PIPE + VM_SCH_PIPE_PEND_TIME: + name: VM_SCH_PIPE_PEND_TIME + value: 2000 + VM_WAKEUP_MID_MAX_MSG_COUNT: + name: VM_WAKEUP_MID_MAX_MSG_COUNT + value: 1 + VM_SEND_HK_MID_MAX_MSG_COUNT: + name: VM_SEND_HK_MID_MAX_MSG_COUNT + value: 1 + VM_CMD_PIPE_DEPTH: + name: VM_CMD_PIPE_DEPTH + value: 4 + VM_CMD_PIPE_NAME: + name: VM_CMD_PIPE_NAME + value: VM_CMD_PIPE + VM_DATA_PIPE_DEPTH: + name: VM_DATA_PIPE_DEPTH + value: 18 + VM_DATA_PIPE_NAME: + name: VM_DATA_PIPE_NAME + value: VM_DATA_PIPE + VM_PARAM_PIPE_DEPTH: + name: VM_PARAM_PIPE_DEPTH + value: 4 + VM_PARAM_PIPE_NAME: + name: VM_PARAM_PIPE_NAME + value: VM_PARAM_PIPE + VM_CONFIG_TABLE_FILENAME: + name: VM_CONFIG_TABLE_FILENAME + value: /cf/apps/vm_config.tbl + VM_STARTUP_TIMEOUT_MSEC: + name: VM_STARTUP_TIMEOUT_MSEC + value: 1000 + VM_BATTERY_VOLTAGE_CHECK_DELAY: + name: VM_BATTERY_VOLTAGE_CHECK_DELAY + value: 6000000 + VM_MINIMUM_VALID_BATTERY_VOLTAGE: + name: VM_MINIMUM_VALID_BATTERY_VOLTAGE + value: 2 + definition: /home/mbenson/git/airliner/apps/vm/wh_design.yaml + elf_files: + - /home/mbenson/git/airliner/build/bebop2/sitl/target/target/exe/cf/apps/VM.so + cfs_lib: + elf_files: + - /home/mbenson/git/airliner/build/bebop2/sitl/target/target/exe/cf/apps/CFS_LIB.so + prmlib: + elf_files: + - /home/mbenson/git/airliner/build/bebop2/sitl/target/target/exe/cf/apps/PRMLIB.so + prm: + elf_files: + - /home/mbenson/git/airliner/build/bebop2/sitl/target/target/exe/cf/apps/PRM.so + simlib: + elf_files: + - /home/mbenson/git/airliner/build/bebop2/sitl/target/target/exe/cf/apps/SIMLIB.so From 980fbb174e67af5a92b5eded8065566aa9be5286 Mon Sep 17 00:00:00 2001 From: lorenzo-gomez-windhover Date: Tue, 2 Mar 2021 11:05:43 -0600 Subject: [PATCH 198/370] -Added YAML_PATH macro to CFE_ES --- .../Displays/Core/ES/ApplicationControl.opi | 5 +++-- .../Core/ES/Resources/Scripts/AppControlInit.py | 10 +++++----- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/core/base/tools/commander/workspace_template/Displays/Core/ES/ApplicationControl.opi b/core/base/tools/commander/workspace_template/Displays/Core/ES/ApplicationControl.opi index 273bbdc81..9cbad2392 100644 --- a/core/base/tools/commander/workspace_template/Displays/Core/ES/ApplicationControl.opi +++ b/core/base/tools/commander/workspace_template/Displays/Core/ES/ApplicationControl.opi @@ -18,6 +18,7 @@ 500 true + /Displays/Resources/definitions.yaml CFE-ES - App Control @@ -1988,7 +1989,7 @@ $(pv_value) 20 1 - Label + app_name true @@ -2002,7 +2003,7 @@ $(pv_value) 1 true Label - 158 + 400 false 14292858:17759dd02e1:-7c65 78 diff --git a/core/base/tools/commander/workspace_template/Displays/Core/ES/Resources/Scripts/AppControlInit.py b/core/base/tools/commander/workspace_template/Displays/Core/ES/Resources/Scripts/AppControlInit.py index 24d956db7..2477d1c12 100644 --- a/core/base/tools/commander/workspace_template/Displays/Core/ES/Resources/Scripts/AppControlInit.py +++ b/core/base/tools/commander/workspace_template/Displays/Core/ES/Resources/Scripts/AppControlInit.py @@ -66,11 +66,11 @@ def main(): logger.warning(project_name) yaml_path_macro = display.getMacroValue("YAML_PATH") logger.warning(yaml_path_macro) - #yaml_path = FileUtil.workspacePathToSysPath(yaml_path_macro) + yaml_path = FileUtil.workspacePathToSysPath(yaml_path_macro) - #yamnl_data = YAMLUtil.parseYAML(yaml_path) - #module_data = get_module(module, yamnl_data) - #events = None - #display.getWidget("app_name").setPropertyValue("text", module_data['long_name'] + " - App Control") + yamnl_data = YAMLUtil.parseYAML(yaml_path) + module_data = get_module(app_name, yamnl_data) + + display.getWidget("app_name").setPropertyValue("text", module_data['long_name'] + " - App Control") main() From ced04fe4be09110d041521579ad4e5b0ce203268 Mon Sep 17 00:00:00 2001 From: jenna-crump Date: Tue, 2 Mar 2021 14:49:25 -0600 Subject: [PATCH 199/370] Updates to TIME files for Displays except for Main.opi --- .../Displays/Core/TIME/AbortTableLoad.opi | 4 +- .../Displays/Core/TIME/ActivateTable.opi | 4 +- .../Displays/Core/TIME/DeleteCDS.opi | 4 +- .../Displays/Core/TIME/DumpTable.opi | 16 +- .../Displays/Core/TIME/SetAdjust.opi | 33 +- .../Displays/Core/TIME/SetDelay.opi | 16 +- .../Displays/Core/TIME/SetLeaps.opi | 119 +- .../Displays/Core/TIME/SetSignal.opi | 8 +- .../Displays/Core/TIME/SetSource.opi | 14 +- .../Displays/Core/TIME/SetState.opi | 10 +- .../Displays/Core/TIME/SetTime.opi | 18 +- .../Displays/Core/TIME/ToneData.opi | 677 ++++++++ .../Displays/Core/TIME/ViewDiagnostic.opi | 1386 +++++------------ 13 files changed, 1269 insertions(+), 1040 deletions(-) create mode 100644 core/base/tools/commander/workspace_template/Displays/Core/TIME/ToneData.opi diff --git a/core/base/tools/commander/workspace_template/Displays/Core/TIME/AbortTableLoad.opi b/core/base/tools/commander/workspace_template/Displays/Core/TIME/AbortTableLoad.opi index 98f0328e2..561422882 100644 --- a/core/base/tools/commander/workspace_template/Displays/Core/TIME/AbortTableLoad.opi +++ b/core/base/tools/commander/workspace_template/Displays/Core/TIME/AbortTableLoad.opi @@ -130,10 +130,10 @@ $(pv_value) 1 true Label - 71 + 79 false 35ebaa52:1509cf6a868:-78e9 - 26 + 18 18 diff --git a/core/base/tools/commander/workspace_template/Displays/Core/TIME/ActivateTable.opi b/core/base/tools/commander/workspace_template/Displays/Core/TIME/ActivateTable.opi index 045c65cd0..58b2c75bd 100644 --- a/core/base/tools/commander/workspace_template/Displays/Core/TIME/ActivateTable.opi +++ b/core/base/tools/commander/workspace_template/Displays/Core/TIME/ActivateTable.opi @@ -129,10 +129,10 @@ $(pv_value) 1 true Label - 71 + 79 false 35ebaa52:1509cf6a868:-78e9 - 26 + 18 18 diff --git a/core/base/tools/commander/workspace_template/Displays/Core/TIME/DeleteCDS.opi b/core/base/tools/commander/workspace_template/Displays/Core/TIME/DeleteCDS.opi index bf3f7f1f0..067f7538f 100644 --- a/core/base/tools/commander/workspace_template/Displays/Core/TIME/DeleteCDS.opi +++ b/core/base/tools/commander/workspace_template/Displays/Core/TIME/DeleteCDS.opi @@ -129,10 +129,10 @@ $(pv_value) 1 true Label - 71 + 79 false 35ebaa52:1509cf6a868:-78e9 - 26 + 18 18 diff --git a/core/base/tools/commander/workspace_template/Displays/Core/TIME/DumpTable.opi b/core/base/tools/commander/workspace_template/Displays/Core/TIME/DumpTable.opi index 04e5528eb..ed7a2d962 100644 --- a/core/base/tools/commander/workspace_template/Displays/Core/TIME/DumpTable.opi +++ b/core/base/tools/commander/workspace_template/Displays/Core/TIME/DumpTable.opi @@ -35,7 +35,7 @@ - ../scripts/RestartApp.js + 1 true Label - 71 + 79 false 35ebaa52:1509cf6a868:-78e9 - 20 + 12 72 @@ -224,7 +224,7 @@ $(pv_value) TableName 0 true - loc://TableName<VString> + loc://DumpTableTableName<VString> 0.0 @@ -321,7 +321,7 @@ $(pv_value) FileName_1 0 true - loc://FileName<VString> + loc://DumpTableFileName<VString> 0.0 @@ -374,7 +374,7 @@ $(pv_value) false TableBuffer - loc://TableBuffer<VString> + loc://DumpTableTableBuffer<VString> diff --git a/core/base/tools/commander/workspace_template/Displays/Core/TIME/SetAdjust.opi b/core/base/tools/commander/workspace_template/Displays/Core/TIME/SetAdjust.opi index 01199fbcd..548805935 100644 --- a/core/base/tools/commander/workspace_template/Displays/Core/TIME/SetAdjust.opi +++ b/core/base/tools/commander/workspace_template/Displays/Core/TIME/SetAdjust.opi @@ -35,7 +35,7 @@ - ../scripts/RestartApp.js + @@ -180,7 +181,7 @@ $(pv_value) Seconds 0 false - loc://Seconds<VDouble> + loc://SetAdjustSeconds<VDouble> 0.0 @@ -277,7 +278,7 @@ $(pv_value) Microseconds 0 false - loc://Microseconds<VDouble> + loc://SetAdjustMicroseconds<VDouble> 0.0 @@ -330,7 +331,7 @@ $(pv_value) false Direction - loc://Direction<VString> + loc://SetAdjustDirection<VString> @@ -346,7 +347,7 @@ $(pv_value) $(pv_value) true Radio Box - 160 + 167 35ebaa52:1509cf6a868:-62cf 84 12 @@ -380,7 +381,7 @@ $(pv_value) false Frequency - loc://Frequency<VString> + loc://SetAdjustFrequency<VString> @@ -396,7 +397,7 @@ $(pv_value) $(pv_value) true Radio Box - 160 + 167 35ebaa52:1509cf6a868:-6277 84 44 @@ -421,7 +422,7 @@ $(pv_value) 20 2 - Label_2 + true diff --git a/core/base/tools/commander/workspace_template/Displays/Core/TIME/SetDelay.opi b/core/base/tools/commander/workspace_template/Displays/Core/TIME/SetDelay.opi index 1e45a1841..ad78fd09b 100644 --- a/core/base/tools/commander/workspace_template/Displays/Core/TIME/SetDelay.opi +++ b/core/base/tools/commander/workspace_template/Displays/Core/TIME/SetDelay.opi @@ -35,24 +35,26 @@ - ../scripts/RestartApp.js + true diff --git a/core/base/tools/commander/workspace_template/Displays/Core/TIME/SetLeaps.opi b/core/base/tools/commander/workspace_template/Displays/Core/TIME/SetLeaps.opi index d4cb491a0..431af54f5 100644 --- a/core/base/tools/commander/workspace_template/Displays/Core/TIME/SetLeaps.opi +++ b/core/base/tools/commander/workspace_template/Displays/Core/TIME/SetLeaps.opi @@ -15,7 +15,7 @@ 6 - 100 + 175 true @@ -28,23 +28,25 @@ true true Display - 275 + 300 35ebaa52:1509cf6a868:-791f -1 -1 - ../scripts/RestartApp.js + true @@ -93,7 +95,7 @@ $(pv_value) 163 35ebaa52:1509cf6a868:-78ea 54 - 60 + 120 @@ -132,8 +134,8 @@ $(pv_value) 87 false 35ebaa52:1509cf6a868:-78e9 - 16 - 24 + 18 + 53 @@ -190,6 +192,103 @@ $(pv_value) 137 35ebaa52:1509cf6a868:-78e7 114 - 24 + 53 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_1 + + + true + true + false + + + Microseconds + + true + 1 + true + Label + 93 + false + -51d98179:177d07182b4:-7f57 + 15 + 78 + + + + false + false + false + + + + true + + + + 1 + 1 + + true + + Default + + false + + + + 1 + 20 + 0 + false + 1.7976931348623157E308 + -1.7976931348623157E308 + false + Microseconds + 0 + false + loc://SetLeapsMicroseconds<VDouble> + + 0.0 + + + true + true + false + + + 0 + true + + ###### + $(pv_name) +$(pv_value) + false + true + Text Input + 137 + -51d98179:177d07182b4:-7f49 + 114 + 78 \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Core/TIME/SetSignal.opi b/core/base/tools/commander/workspace_template/Displays/Core/TIME/SetSignal.opi index a3b6c3c86..afdca18f9 100644 --- a/core/base/tools/commander/workspace_template/Displays/Core/TIME/SetSignal.opi +++ b/core/base/tools/commander/workspace_template/Displays/Core/TIME/SetSignal.opi @@ -35,7 +35,7 @@ - ../scripts/RestartApp.js + - 34 + 32 Primary Redundant diff --git a/core/base/tools/commander/workspace_template/Displays/Core/TIME/SetSource.opi b/core/base/tools/commander/workspace_template/Displays/Core/TIME/SetSource.opi index 0bddaf66c..2aac8e9b1 100644 --- a/core/base/tools/commander/workspace_template/Displays/Core/TIME/SetSource.opi +++ b/core/base/tools/commander/workspace_template/Displays/Core/TIME/SetSource.opi @@ -35,7 +35,7 @@ - ../scripts/RestartApp.js + 1 true Label - 83 + 89 false 35ebaa52:1509cf6a868:-78e9 - 18 + 12 23 @@ -162,7 +162,7 @@ $(pv_value) - 34 + 32 Internal External diff --git a/core/base/tools/commander/workspace_template/Displays/Core/TIME/SetState.opi b/core/base/tools/commander/workspace_template/Displays/Core/TIME/SetState.opi index 3129408dc..81eef6099 100644 --- a/core/base/tools/commander/workspace_template/Displays/Core/TIME/SetState.opi +++ b/core/base/tools/commander/workspace_template/Displays/Core/TIME/SetState.opi @@ -35,7 +35,7 @@ - ../scripts/RestartApp.js + - 34 + 32 Invalid Valid diff --git a/core/base/tools/commander/workspace_template/Displays/Core/TIME/SetTime.opi b/core/base/tools/commander/workspace_template/Displays/Core/TIME/SetTime.opi index 4c1dc6292..11b9a7b7f 100644 --- a/core/base/tools/commander/workspace_template/Displays/Core/TIME/SetTime.opi +++ b/core/base/tools/commander/workspace_template/Displays/Core/TIME/SetTime.opi @@ -35,7 +35,7 @@ - ../scripts/RestartApp.js + true @@ -178,7 +180,7 @@ $(pv_value) Seconds 0 false - loc://Seconds<VDouble> + loc://SetTimeSeconds<VDouble> 0.0 @@ -275,7 +277,7 @@ $(pv_value) Microseconds 0 false - loc://Microseconds<VDouble> + loc://SetTimeMicroseconds<VDouble> 0.0 @@ -329,7 +331,7 @@ $(pv_value) false Type - loc://Type<VString> + loc://SetTimeType<VString> diff --git a/core/base/tools/commander/workspace_template/Displays/Core/TIME/ToneData.opi b/core/base/tools/commander/workspace_template/Displays/Core/TIME/ToneData.opi new file mode 100644 index 000000000..f1331a773 --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/Core/TIME/ToneData.opi @@ -0,0 +1,677 @@ + + + + + false + -1 + -1 + + false + + + + 1.5.3 + + + + 6 + 250 + + true + + + + + true + true + true + true + true + Display + 340 + 35ebaa52:1509cf6a868:-791f + -1 + -1 + + + + + + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 25 + ../../Resources/send.png + Action Button + 0 + + + + + true + true + false + + + + Tone Data + false + $(pv_name) +$(pv_value) + true + Action Button + 163 + 35ebaa52:1509cf6a868:-78ea + 84 + 210 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label + + + true + true + false + + + At Tone MET Seconds + + true + 1 + true + Label + 153 + false + 35ebaa52:1509cf6a868:-78e9 + 30 + 12 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_1 + + + true + true + false + + + At Tone MET Subseconds + + true + 1 + true + Label + 177 + false + 35ebaa52:1509cf6a868:-657f + 6 + 38 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_2 + + + true + true + false + + + At Tone STCF Seconds + + true + 1 + true + Label + 165 + false + -51d98179:177d07182b4:-787a + 18 + 66 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_3 + + + true + true + false + + + At Tone STCF Subseconds + + true + 1 + true + Label + 177 + false + -51d98179:177d07182b4:-786a + 6 + 96 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_4 + + + true + true + false + + + At Tone Leaps + + true + 1 + true + Label + 147 + false + -51d98179:177d07182b4:-785c + 36 + 126 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_5 + + + true + true + false + + + At Tone State + + true + 1 + true + Label + 147 + false + -51d98179:177d07182b4:-7852 + 36 + 156 + + + + false + false + + + + true + + + + 1 + 1 + false + true + + Default + + false + + + + 0 + 20 + 1 + false + true + 1.7976931348623157E308 + -1.7976931348623157E308 + METSeconds + 10.0 + 3 + false + loc://AtToneMETSeconds<VDouble> + + + + true + true + false + + + true + 1.0 + $(pv_name) +$(pv_value) + false + 1 + true + Spinner + 137 + -51d98179:177d07182b4:e15 + 192 + 12 + + + + false + false + + + + true + + + + 1 + 1 + false + true + + Default + + false + + + + 0 + 20 + 1 + false + true + 1.7976931348623157E308 + -1.7976931348623157E308 + METSubseconds + 10.0 + 3 + false + loc://ToneDataAtToneMETSubseconds<VDouble> + + + + true + true + false + + + true + 1.0 + $(pv_name) +$(pv_value) + false + 1 + true + Spinner + 137 + -51d98179:177d07182b4:e21 + 192 + 38 + + + + false + false + + + + true + + + + 1 + 1 + false + true + + Default + + false + + + + 0 + 20 + 1 + false + true + 1.7976931348623157E308 + -1.7976931348623157E308 + STCFSeconds + 10.0 + 3 + false + loc://ToneDataAtToneSTCFSeconds<VDouble> + + + + true + true + false + + + true + 1.0 + $(pv_name) +$(pv_value) + false + 1 + true + Spinner + 137 + -51d98179:177d07182b4:e37 + 192 + 66 + + + + false + false + + + + true + + + + 1 + 1 + false + true + + Default + + false + + + + 0 + 20 + 1 + false + true + 1.7976931348623157E308 + -1.7976931348623157E308 + STCFSubseconds + 10.0 + 3 + false + loc://ToneDataAtToneSTCFSubseconds<VDouble> + + + + true + true + false + + + true + 1.0 + $(pv_name) +$(pv_value) + false + 1 + true + Spinner + 137 + -51d98179:177d07182b4:e47 + 192 + 96 + + + + false + false + + + + true + + + + 1 + 1 + false + true + + Default + + false + + + + 0 + 20 + 1 + false + true + 1.7976931348623157E308 + -1.7976931348623157E308 + Leaps + 10.0 + 3 + false + loc://ToneDataAtToneLeaps<VDouble><VDouble> + + + + true + true + false + + + true + 1.0 + $(pv_name) +$(pv_value) + false + 1 + true + Spinner + 137 + -51d98179:177d07182b4:e4e + 192 + 126 + + + + false + false + + + + true + + + + 1 + 1 + false + true + + Default + + false + + + + 0 + 20 + 1 + false + true + 1.7976931348623157E308 + -1.7976931348623157E308 + State + 10.0 + 3 + false + loc://ToneDataAtToneState<VDouble> + + + + true + true + false + + + true + 1.0 + $(pv_name) +$(pv_value) + false + 1 + true + Spinner + 137 + -51d98179:177d07182b4:e55 + 192 + 156 + + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Core/TIME/ViewDiagnostic.opi b/core/base/tools/commander/workspace_template/Displays/Core/TIME/ViewDiagnostic.opi index c8b4596af..3dec16d5a 100644 --- a/core/base/tools/commander/workspace_template/Displays/Core/TIME/ViewDiagnostic.opi +++ b/core/base/tools/commander/workspace_template/Displays/Core/TIME/ViewDiagnostic.opi @@ -32,6 +32,145 @@ 35ebaa52:1509cf6a868:-791f -1 -1 + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + Text Update_25 + /cfs/cfe_time/CFE_TIME_DiagPacket_t.Payload.Forced2Fly + + + + true + true + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 151 + 35ebaa52:1509cf6a868:-72bc + 138 + 490 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_54 + 0 + false + /cfs/cfe_time/CFE_TIME_DiagPacket_t.Payload.DataStoreStatus + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 151 + false + 35ebaa52:1509cf6a868:-7052 + 138 + 1186 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_64 + + + true + true + false + + + Data Store Status + + true + 1 + true + Label + 121 + false + 35ebaa52:1509cf6a868:-6f93 + 7 + 1186 + @@ -39,7 +178,7 @@ @@ -119,7 +258,7 @@ $(pv_value) Text Update 0 false - /cfs/cfe_time/Diag_AtToneMET_Seconds + /cfs/cfe_time/CFE_TIME_DiagPacket_t.Payload.AtToneMET.Seconds 0.0 @@ -171,7 +310,7 @@ $(pv_value) Text Update_1 0 false - /cfs/cfe_time/Diag_AtToneMET_Subseconds + /cfs/cfe_time/CFE_TIME_DiagPacket_t.Payload.AtToneMET.Subseconds 0.0 @@ -223,7 +362,7 @@ $(pv_value) Text Update_2 0 false - /cfs/cfe_time/Diag_AtToneSTCF_Seconds + /cfs/cfe_time/CFE_TIME_DiagPacket_t.Payload.AtToneSTCF.Seconds 0.0 @@ -275,7 +414,7 @@ $(pv_value) Text Update_3 0 false - /cfs/cfe_time/Diag_AtToneSTCF_Subseconds + /cfs/cfe_time/CFE_TIME_DiagPacket_t.Payload.AtToneSTCF.Subseconds 0.0 @@ -327,7 +466,7 @@ $(pv_value) Text Update_4 0 false - /cfs/cfe_time/Diag_AtToneDelay_Seconds + /cfs/cfe_time/CFE_TIME_DiagPacket_t.Payload.AtToneDelay.Seconds 0.0 @@ -379,7 +518,7 @@ $(pv_value) Text Update_5 0 false - /cfs/cfe_time/Diag_AtToneDelay_Subseconds + /cfs/cfe_time/CFE_TIME_DiagPacket_t.Payload.AtToneDelay.Subseconds 0.0 @@ -431,7 +570,7 @@ $(pv_value) Text Update_6 0 false - /cfs/cfe_time/Diag_AtToneLatch_Seconds + /cfs/cfe_time/CFE_TIME_DiagPacket_t.Payload.AtToneLatch.Seconds 0.0 @@ -483,7 +622,7 @@ $(pv_value) Text Update_7 0 false - /cfs/cfe_time/Diag_AtToneLatch_Subseconds + /cfs/cfe_time/CFE_TIME_DiagPacket_t.Payload.AtToneLatch.Subseconds 0.0 @@ -535,7 +674,7 @@ $(pv_value) Text Update_8 0 false - /cfs/cfe_time/Diag_AtToneLeaps + /cfs/cfe_time/CFE_TIME_DiagPacket_t.Payload.AtToneLeaps 0.0 @@ -587,7 +726,7 @@ $(pv_value) Text Update_9 0 false - /cfs/cfe_time/Diag_ClockStateAPI + /cfs/cfe_time/CFE_TIME_DiagPacket_t.Payload.ClockStateAPI 0.0 @@ -639,7 +778,7 @@ $(pv_value) Text Update_10 0 false - /cfs/cfe_time/Diag_TimeSinceTone_Seconds + /cfs/cfe_time/CFE_TIME_DiagPacket_t.Payload.TimeSinceTone.Seconds 0.0 @@ -691,7 +830,7 @@ $(pv_value) Text Update_11 0 false - /cfs/cfe_time/Diag_TimeSinceTone_Subseconds + /cfs/cfe_time/CFE_TIME_DiagPacket_t.Payload.TimeSinceTone.Subseconds 0.0 @@ -743,7 +882,7 @@ $(pv_value) Text Update_12 0 false - /cfs/cfe_time/Diag_CurrentLatch_Seconds + /cfs/cfe_time/CFE_TIME_DiagPacket_t.Payload.CurrentLatch.Seconds 0.0 @@ -795,7 +934,7 @@ $(pv_value) Text Update_13 0 false - /cfs/cfe_time/Diag_CurrentLatch_Subseconds + /cfs/cfe_time/CFE_TIME_DiagPacket_t.Payload.CurrentLatch.Subseconds 0.0 @@ -847,7 +986,7 @@ $(pv_value) Text Update_14 0 false - /cfs/cfe_time/Diag_CurrentMET_Seconds + /cfs/cfe_time/CFE_TIME_DiagPacket_t.Payload.CurrentMET.Seconds 0.0 @@ -899,7 +1038,7 @@ $(pv_value) Text Update_15 0 false - /cfs/cfe_time/Diag_CurrentMET_Subseconds + /cfs/cfe_time/CFE_TIME_DiagPacket_t.Payload.CurrentMET.Subseconds 0.0 @@ -951,7 +1090,7 @@ $(pv_value) Text Update_16 0 false - /cfs/cfe_time/Diag_CurrentTAI_Seconds + /cfs/cfe_time/CFE_TIME_DiagPacket_t.Payload.CurrentTAI.Seconds 0.0 @@ -1003,7 +1142,7 @@ $(pv_value) Text Update_17 0 false - /cfs/cfe_time/Diag_CurrentTAI_Subseconds + /cfs/cfe_time/CFE_TIME_DiagPacket_t.Payload.CurrentTAI.Subseconds 0.0 @@ -1055,7 +1194,7 @@ $(pv_value) Text Update_18 0 false - /cfs/cfe_time/Diag_CurrentUTC_Seconds + /cfs/cfe_time/CFE_TIME_DiagPacket_t.Payload.CurrentUTC.Seconds 0.0 @@ -1107,7 +1246,7 @@ $(pv_value) Text Update_19 0 false - /cfs/cfe_time/Diag_CurrentUTC_Subseconds + /cfs/cfe_time/CFE_TIME_DiagPacket_t.Payload.CurrentUTC.Subseconds 0.0 @@ -1159,7 +1298,7 @@ $(pv_value) Text Update_20 0 false - /cfs/cfe_time/Diag_ClockSetState + /cfs/cfe_time/CFE_TIME_DiagPacket_t.Payload.ClockSetState 0.0 @@ -1211,7 +1350,7 @@ $(pv_value) Text Update_21 0 false - /cfs/cfe_time/Diag_ClockFlyingState + /cfs/cfe_time/CFE_TIME_DiagPacket_t.Payload.ClockFlyState 0.0 @@ -1263,7 +1402,7 @@ $(pv_value) Text Update_22 0 false - /cfs/cfe_time/Diag_ClockSource + /cfs/cfe_time/CFE_TIME_DiagPacket_t.Payload.ClockSource 0.0 @@ -1315,7 +1454,7 @@ $(pv_value) Text Update_23 0 false - /cfs/cfe_time/Diag_ClockSignal + /cfs/cfe_time/CFE_TIME_DiagPacket_t.Payload.ClockSignal 0.0 @@ -1367,7 +1506,7 @@ $(pv_value) Text Update_24 0 false - /cfs/cfe_time/Diag_ServerFlyState + /cfs/cfe_time/CFE_TIME_DiagPacket_t.Payload.ServerFlyState 0.0 @@ -1391,53 +1530,6 @@ $(pv_value) 138 510 - - - false - false - false - - - - 0 - true - - - - 0 - 1 - true - - Default - - false - - - - 20 - - Text Update_25 - /cfs/cfe_time/Diag_Forced2Fly - - - - true - true - false - - - - - - $(pv_name) -$(pv_value) - true - Check Box - 151 - 35ebaa52:1509cf6a868:-72bc - 138 - 529 - false @@ -1472,10 +1564,10 @@ $(pv_value) 1 true Label - 80 + 92 false 35ebaa52:1509cf6a868:-721b - 48 + 36 54 @@ -1512,10 +1604,10 @@ $(pv_value) 1 true Label - 80 + 92 false 35ebaa52:1509cf6a868:-7213 - 48 + 36 168 @@ -1552,10 +1644,10 @@ $(pv_value) 1 true Label - 80 + 92 false 35ebaa52:1509cf6a868:-720c - 48 + 36 92 @@ -1632,10 +1724,10 @@ $(pv_value) 1 true Label - 98 + 110 false 35ebaa52:1509cf6a868:-71f1 - 30 + 18 225 @@ -1672,10 +1764,10 @@ $(pv_value) 1 true Label - 92 + 98 false 35ebaa52:1509cf6a868:-71db - 36 + 30 206 @@ -1712,10 +1804,10 @@ $(pv_value) 1 true Label - 98 + 116 false 35ebaa52:1509cf6a868:-71cd - 30 + 12 244 @@ -1752,10 +1844,10 @@ $(pv_value) 1 true Label - 80 + 104 false 35ebaa52:1509cf6a868:-71bd - 48 + 24 396 @@ -1832,10 +1924,10 @@ $(pv_value) 1 true Label - 80 + 110 false 35ebaa52:1509cf6a868:-71af - 48 + 18 472 @@ -1872,10 +1964,10 @@ $(pv_value) 1 true Label - 80 + 92 false 35ebaa52:1509cf6a868:-71a8 - 48 + 36 320 @@ -1952,10 +2044,10 @@ $(pv_value) 1 true Label - 80 + 92 false 35ebaa52:1509cf6a868:-719a - 48 + 36 358 @@ -1992,10 +2084,10 @@ $(pv_value) 1 true Label - 110 + 121 false 35ebaa52:1509cf6a868:-7193 - 18 + 7 453 @@ -2032,10 +2124,10 @@ $(pv_value) 1 true Label - 80 + 92 false 35ebaa52:1509cf6a868:-7175 - 48 + 36 491 @@ -2112,11 +2204,11 @@ $(pv_value) 1 true Label - 80 + 98 false 35ebaa52:1509cf6a868:-7167 - 48 - 529 + 27 + 590 @@ -2144,7 +2236,7 @@ $(pv_value) 20 Check Box - /cfs/cfe_time/Diag_ClkSet + /cfs/cfe_time/CFE_TIME_DiagPacket_t.Payload.ClockSetState @@ -2163,22 +2255,21 @@ $(pv_value) 100 35ebaa52:1509cf6a868:-712d 138 - 552 + 571 - + false false false - + - 0 true - + - 0 + 1 1 true @@ -2188,11 +2279,15 @@ $(pv_value) + 0 20 - - Check Box_1 - /cfs/cfe_time/Diag_Flying + 0 + Check Box_3 + 0 + true + /cfs/cfe_time/CFE_TIME_DiagPacket_t.Payload.ClockSource + 0.0 true @@ -2200,126 +2295,33 @@ $(pv_value) false - - - + true + ###### $(pv_name) $(pv_value) + false + 1 true - Check Box - 100 - 35ebaa52:1509cf6a868:-712c - 138 - 571 - - - - false - false - false - - - - 0 - true - - - - 0 - 1 - true - - Default - - false - - - - 20 - - Check Box_2 - /cfs/cfe_time/Diag_SrcInt - - - - true - false - false - - - - - - $(pv_name) -$(pv_value) - true - Check Box - 100 - 35ebaa52:1509cf6a868:-712b - 138 - 590 - - - - false - false - false - - - - 0 - true - - - - 0 - 1 - true - - Default - - false - - - - 20 - - Check Box_3 - /cfs/cfe_time/Diag_SigPri - - - - true - false - false - - - - - - $(pv_name) -$(pv_value) - true - Check Box - 100 + Text Update + 151 + false 35ebaa52:1509cf6a868:-712a 138 - 609 + 529 - + false false false - + - 0 true - + - 0 + 1 1 true @@ -2329,11 +2331,15 @@ $(pv_value) + 0 20 - + 0 Check Box_4 - /cfs/cfe_time/Diag_SrvFly + 0 + true + /cfs/cfe_time/CFE_TIME_DiagPacket_t.Payload.ClockSignal + 0.0 true @@ -2341,158 +2347,19 @@ $(pv_value) false - - - + true + ###### $(pv_name) $(pv_value) + false + 1 true - Check Box - 100 + Text Update + 151 + false 35ebaa52:1509cf6a868:-7129 138 - 628 - - - - false - false - false - - - - 0 - true - - - - 0 - 1 - true - - Default - - false - - - - 20 - - Check Box_5 - /cfs/cfe_time/Diag_CmdFly - - - - true - false - false - - - - - - $(pv_name) -$(pv_value) - true - Check Box - 100 - 35ebaa52:1509cf6a868:-7128 - 138 - 647 - - - - false - false - false - - - - 0 - true - - - - 0 - 1 - true - - Default - - false - - - - 20 - - Check Box_6 - /cfs/cfe_time/Diag_AddAdj - - - - true - false - false - - - - - - $(pv_name) -$(pv_value) - true - Check Box - 100 - 35ebaa52:1509cf6a868:-7127 - 138 - 685 - - - - false - false - false - - - - 0 - true - - - - 0 - 1 - true - - Default - - false - - - - 20 - - Check Box_7 - /cfs/cfe_time/Diag_Add1Hz - - - - true - false - false - - - - - - $(pv_name) -$(pv_value) - true - Check Box - 100 - 35ebaa52:1509cf6a868:-7126 - 138 - 704 + 548 @@ -2500,347 +2367,10 @@ $(pv_value) false false - - - 0 - true - - - - 0 - 1 - true - - Default - - false - - - - 20 - - Check Box_8 - /cfs/cfe_time/Diag_AddTcl - - - - true - false - false - - - - - - $(pv_name) -$(pv_value) - true - Check Box - 100 - 35ebaa52:1509cf6a868:-7125 - 138 - 723 - - - - false - false - false - - - - 0 - true - - - - 0 - 1 - true - - Default - - false - - - - 20 - - Check Box_9 - /cfs/cfe_time/Diag_Server - - - - true - false - false - - - - - - $(pv_name) -$(pv_value) - true - Check Box - 100 - 35ebaa52:1509cf6a868:-7124 - 138 - 742 - - - - false - false - false - - - - 0 - true - - - - 0 - 1 - true - - Default - - false - - - - 20 - - Check Box_10 - /cfs/cfe_time/Diag_GoodTone - - - - true - false - false - - - - - - $(pv_name) -$(pv_value) - true - Check Box - 100 - 35ebaa52:1509cf6a868:-7123 - 138 - 666 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 2 - Label_17 - - - true - true - false - - - Clock Set - - true - 1 - true - Label - 80 - false - 35ebaa52:1509cf6a868:-711b - 48 - 552 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 2 - Label_18 - - - true - true - false - - - Flying - - true - 1 - true - Label - 80 - false - 35ebaa52:1509cf6a868:-710f - 48 - 571 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 2 - Label_19 - - - true - true - false - - - Clock Set - - true - 1 - true - Label - 80 - false - 35ebaa52:1509cf6a868:-710a - 48 - 590 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 2 - Label_20 - - - true - true - false - - - Signal Primary - - true - 1 - true - Label - 110 - false - 35ebaa52:1509cf6a868:-7105 - 18 - 628 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 2 - Label_21 - - - true - true - false - - - Source Internal - - true - 1 - true - Label - 104 - false - 35ebaa52:1509cf6a868:-7100 - 24 - 609 - - - - false - - + + 0 + true @@ -2850,37 +2380,44 @@ $(pv_value) Default + false 20 - 2 - Label_22 + + Check Box_6 + /cfs/cfe_time/CFE_TIME_DiagPacket_t.Payload.OneTimeAdjust + true - true + false false - Add TCL - - true - 1 + + + + $(pv_name) +$(pv_value) true - Label - 80 - false - 35ebaa52:1509cf6a868:-70fb - 48 - 723 + Check Box + 100 + 35ebaa52:1509cf6a868:-7127 + 138 + 609 - + + false false + false - + + 0 + true @@ -2890,30 +2427,33 @@ $(pv_value) Default + false 20 - 2 - Label_23 + + Check Box_7 + /cfs/cfe_time/CFE_TIME_DiagPacket_t.Payload.OneHzAdjust + true - true + false false - Add 1Hz - - true - 1 + + + + $(pv_name) +$(pv_value) true - Label - 80 - false - 35ebaa52:1509cf6a868:-70f6 - 48 - 704 + Check Box + 100 + 35ebaa52:1509cf6a868:-7126 + 138 + 628 @@ -2935,7 +2475,7 @@ $(pv_value) 20 2 - Label_24 + Label_17 true @@ -2943,7 +2483,7 @@ $(pv_value) false - Server Flying + Clock Set true 1 @@ -2951,9 +2491,9 @@ $(pv_value) Label 80 false - 35ebaa52:1509cf6a868:-70f1 + 35ebaa52:1509cf6a868:-711b 48 - 647 + 571 @@ -2975,7 +2515,7 @@ $(pv_value) 20 2 - Label_25 + Label_20 true @@ -2983,17 +2523,17 @@ $(pv_value) false - Commanded Flying + Signal Primary true 1 true Label - 122 + 110 false - 35ebaa52:1509cf6a868:-70ec - 6 - 664 + 35ebaa52:1509cf6a868:-7105 + 18 + 548 @@ -3015,7 +2555,7 @@ $(pv_value) 20 2 - Label_26 + Label_21 true @@ -3023,17 +2563,17 @@ $(pv_value) false - Add Adj + Source Internal true 1 true Label - 80 + 104 false - 35ebaa52:1509cf6a868:-70e7 - 48 - 683 + 35ebaa52:1509cf6a868:-7100 + 24 + 529 @@ -3055,7 +2595,7 @@ $(pv_value) 20 2 - Label_27 + Label_23 true @@ -3063,7 +2603,7 @@ $(pv_value) false - Server + Add 1Hz true 1 @@ -3071,9 +2611,9 @@ $(pv_value) Label 80 false - 35ebaa52:1509cf6a868:-70cd + 35ebaa52:1509cf6a868:-70f6 48 - 742 + 628 @@ -3095,7 +2635,7 @@ $(pv_value) 20 2 - Label_28 + Label_26 true @@ -3103,7 +2643,7 @@ $(pv_value) false - Add TCL + Add Adj true 1 @@ -3111,56 +2651,9 @@ $(pv_value) Label 80 false - 35ebaa52:1509cf6a868:-70c8 + 35ebaa52:1509cf6a868:-70e7 48 - 761 - - - - false - false - false - - - - 0 - true - - - - 0 - 1 - true - - Default - - false - - - - 20 - - Check Box_11 - /cfs/cfe_time/Diag_GoodTone - - - - true - false - false - - - - - - $(pv_name) -$(pv_value) - true - Check Box - 100 - 35ebaa52:1509cf6a868:-70ba - 138 - 761 + 609 @@ -3190,7 +2683,7 @@ $(pv_value) Text Update_26 0 false - /cfs/cfe_time/Diag_OneTimeDirection + /cfs/cfe_time/CFE_TIME_DiagPacket_t.Payload.OneTimeDirection 0.0 @@ -3212,7 +2705,7 @@ $(pv_value) false 35ebaa52:1509cf6a868:-706e 138 - 786 + 654 @@ -3242,7 +2735,7 @@ $(pv_value) Text Update_27 0 false - /cfs/cfe_time/Diag_OneHzDirection + /cfs/cfe_time/CFE_TIME_DiagPacket_t.Payload.OneHzDirection 0.0 @@ -3264,7 +2757,7 @@ $(pv_value) false 35ebaa52:1509cf6a868:-706d 138 - 805 + 673 @@ -3294,7 +2787,7 @@ $(pv_value) Text Update_28 0 false - /cfs/cfe_time/Diag_DelayDirection + /cfs/cfe_time/CFE_TIME_DiagPacket_t.Payload.DelayDirection 0.0 @@ -3316,7 +2809,7 @@ $(pv_value) false 35ebaa52:1509cf6a868:-706c 138 - 824 + 692 @@ -3346,7 +2839,7 @@ $(pv_value) Text Update_29 0 false - /cfs/cfe_time/Diag_OneTimeAdjust_Seconds + /cfs/cfe_time/CFE_TIME_DiagPacket_t.Payload.OneTimeAdjust.Seconds 0.0 @@ -3368,7 +2861,7 @@ $(pv_value) false 35ebaa52:1509cf6a868:-706b 138 - 843 + 711 @@ -3398,7 +2891,7 @@ $(pv_value) Text Update_30 0 false - /cfs/cfe_time/Diag_OneTimeAdjust_Subseconds + /cfs/cfe_time/CFE_TIME_DiagPacket_t.Payload.OneTimeAdjust.Subseconds 0.0 @@ -3420,7 +2913,7 @@ $(pv_value) false 35ebaa52:1509cf6a868:-706a 138 - 862 + 730 @@ -3450,7 +2943,7 @@ $(pv_value) Text Update_31 0 false - /cfs/cfe_time/Diag_OneHzAdjust_Seconds + /cfs/cfe_time/CFE_TIME_DiagPacket_t.Payload.OneHzAdjust.Seconds 0.0 @@ -3472,7 +2965,7 @@ $(pv_value) false 35ebaa52:1509cf6a868:-7069 138 - 881 + 749 @@ -3502,7 +2995,7 @@ $(pv_value) Text Update_32 0 false - /cfs/cfe_time/Diag_OneHzAdjust_Subseconds + /cfs/cfe_time/CFE_TIME_DiagPacket_t.Payload.OneHzAdjust.Subseconds 0.0 @@ -3524,7 +3017,7 @@ $(pv_value) false 35ebaa52:1509cf6a868:-7068 138 - 900 + 768 @@ -3554,7 +3047,7 @@ $(pv_value) Text Update_33 0 false - /cfs/cfe_time/Diag_ToneSignalLatch_Seconds + /cfs/cfe_time/CFE_TIME_DiagPacket_t.Payload.ToneSignalLatch.Seconds 0.0 @@ -3576,7 +3069,7 @@ $(pv_value) false 35ebaa52:1509cf6a868:-7067 138 - 919 + 787 @@ -3606,7 +3099,7 @@ $(pv_value) Text Update_34 0 false - /cfs/cfe_time/Diag_ToneSignalLatch_Subseconds + /cfs/cfe_time/CFE_TIME_DiagPacket_t.Payload.ToneSignalLatch.Subseconds 0.0 @@ -3628,7 +3121,7 @@ $(pv_value) false 35ebaa52:1509cf6a868:-7066 138 - 938 + 806 @@ -3658,7 +3151,7 @@ $(pv_value) Text Update_35 0 false - /cfs/cfe_time/Diag_ToneDataLatch_Seconds + /cfs/cfe_time/CFE_TIME_DiagPacket_t.Payload.ToneDataLatch.Seconds 0.0 @@ -3680,7 +3173,7 @@ $(pv_value) false 35ebaa52:1509cf6a868:-7065 138 - 957 + 825 @@ -3710,7 +3203,7 @@ $(pv_value) Text Update_36 0 false - /cfs/cfe_time/Diag_ToneDataLatch_Subseconds + /cfs/cfe_time/CFE_TIME_DiagPacket_t.Payload.ToneDataLatch.Subseconds 0.0 @@ -3732,7 +3225,7 @@ $(pv_value) false 35ebaa52:1509cf6a868:-7064 138 - 976 + 844 @@ -3762,7 +3255,7 @@ $(pv_value) Text Update_37 0 false - /cfs/cfe_time/Diag_ToneMatchCount + /cfs/cfe_time/CFE_TIME_DiagPacket_t.Payload.ToneMatchCount 0.0 @@ -3784,7 +3277,7 @@ $(pv_value) false 35ebaa52:1509cf6a868:-7063 138 - 995 + 863 @@ -3814,7 +3307,7 @@ $(pv_value) Text Update_38 0 false - /cfs/cfe_time/Diag_ToneMatchErrors + /cfs/cfe_time/CFE_TIME_DiagPacket_t.Payload.ToneMatchErrors 0.0 @@ -3836,7 +3329,7 @@ $(pv_value) false 35ebaa52:1509cf6a868:-7062 138 - 1014 + 882 @@ -3866,7 +3359,7 @@ $(pv_value) Text Update_39 0 false - /cfs/cfe_time/Diag_ToneSignalCount + /cfs/cfe_time/CFE_TIME_DiagPacket_t.Payload.ToneSignalCount 0.0 @@ -3888,7 +3381,7 @@ $(pv_value) false 35ebaa52:1509cf6a868:-7061 138 - 1033 + 901 @@ -3918,7 +3411,7 @@ $(pv_value) Text Update_40 0 false - /cfs/cfe_time/Diag_ToneDataCount + /cfs/cfe_time/CFE_TIME_DiagPacket_t.Payload.ToneDataCount 0.0 @@ -3940,7 +3433,7 @@ $(pv_value) false 35ebaa52:1509cf6a868:-7060 138 - 1052 + 920 @@ -3970,7 +3463,7 @@ $(pv_value) Text Update_41 0 false - /cfs/cfe_time/Diag_ToneIntCount + /cfs/cfe_time/CFE_TIME_DiagPacket_t.Payload.ToneIntCount 0.0 @@ -3992,7 +3485,7 @@ $(pv_value) false 35ebaa52:1509cf6a868:-705f 138 - 1071 + 939 @@ -4022,7 +3515,7 @@ $(pv_value) Text Update_42 0 false - /cfs/cfe_time/Diag_ToneIntErrors + /cfs/cfe_time/CFE_TIME_DiagPacket_t.Payload.ToneIntErrors 0.0 @@ -4044,7 +3537,7 @@ $(pv_value) false 35ebaa52:1509cf6a868:-705e 138 - 1090 + 958 @@ -4074,7 +3567,7 @@ $(pv_value) Text Update_43 0 false - /cfs/cfe_time/Diag_ToneTaskCount + /cfs/cfe_time/CFE_TIME_DiagPacket_t.Payload.ToneTaskCount 0.0 @@ -4096,7 +3589,7 @@ $(pv_value) false 35ebaa52:1509cf6a868:-705d 138 - 1109 + 977 @@ -4126,7 +3619,7 @@ $(pv_value) Text Update_44 0 false - /cfs/cfe_time/Diag_VersionCount + /cfs/cfe_time/CFE_TIME_DiagPacket_t.Payload.VersionCount 0.0 @@ -4148,7 +3641,7 @@ $(pv_value) false 35ebaa52:1509cf6a868:-705c 138 - 1128 + 996 @@ -4178,7 +3671,7 @@ $(pv_value) Text Update_45 0 false - /cfs/cfe_time/Diag_LocalIntCount + /cfs/cfe_time/CFE_TIME_DiagPacket_t.Payload.LocalIntCount 0.0 @@ -4200,7 +3693,7 @@ $(pv_value) false 35ebaa52:1509cf6a868:-705b 138 - 1147 + 1015 @@ -4230,7 +3723,7 @@ $(pv_value) Text Update_46 0 false - /cfs/cfe_time/Diag_LocalTaskCount + /cfs/cfe_time/CFE_TIME_DiagPacket_t.Payload.LocalTaskCount 0.0 @@ -4252,7 +3745,7 @@ $(pv_value) false 35ebaa52:1509cf6a868:-705a 138 - 1166 + 1034 @@ -4282,7 +3775,7 @@ $(pv_value) Text Update_47 0 false - /cfs/cfe_time/Diag_VirtualMET + /cfs/cfe_time/CFE_TIME_DiagPacket_t.Payload.VirtualMET 0.0 @@ -4304,7 +3797,7 @@ $(pv_value) false 35ebaa52:1509cf6a868:-7059 138 - 1185 + 1053 @@ -4334,7 +3827,7 @@ $(pv_value) Text Update_48 0 false - /cfs/cfe_time/Diag_MinElapsed + /cfs/cfe_time/CFE_TIME_DiagPacket_t.Payload.MinElapsed 0.0 @@ -4356,7 +3849,7 @@ $(pv_value) false 35ebaa52:1509cf6a868:-7058 138 - 1204 + 1072 @@ -4386,7 +3879,7 @@ $(pv_value) Text Update_49 0 false - /cfs/cfe_time/Diag_MaxElapsed + /cfs/cfe_time/CFE_TIME_DiagPacket_t.Payload.MaxElapsed 0.0 @@ -4408,7 +3901,7 @@ $(pv_value) false 35ebaa52:1509cf6a868:-7057 138 - 1223 + 1091 @@ -4438,7 +3931,7 @@ $(pv_value) Text Update_50 0 false - /cfs/cfe_time/Diag_MaxLocalClock_Seconds + /cfs/cfe_time/CFE_TIME_DiagPacket_t.Payload.MaxLocalClock.Seconds 0.0 @@ -4460,7 +3953,7 @@ $(pv_value) false 35ebaa52:1509cf6a868:-7056 138 - 1242 + 1110 @@ -4490,7 +3983,7 @@ $(pv_value) Text Update_51 0 false - /cfs/cfe_time/Diag_MaxLocalClock_Subseconds + /cfs/cfe_time/CFE_TIME_DiagPacket_t.Payload.MaxLocalClock.Subseconds 0.0 @@ -4512,7 +4005,7 @@ $(pv_value) false 35ebaa52:1509cf6a868:-7055 138 - 1261 + 1129 @@ -4542,7 +4035,7 @@ $(pv_value) Text Update_52 0 false - /cfs/cfe_time/Diag_ToneOverLimit + /cfs/cfe_time/CFE_TIME_DiagPacket_t.Payload.ToneOverLimit 0.0 @@ -4564,7 +4057,7 @@ $(pv_value) false 35ebaa52:1509cf6a868:-7054 138 - 1280 + 1148 @@ -4594,7 +4087,7 @@ $(pv_value) Text Update_53 0 false - /cfs/cfe_time/Diag_ToneUnderLimit + /cfs/cfe_time/CFE_TIME_DiagPacket_t.Payload.ToneUnderLimit 0.0 @@ -4616,59 +4109,7 @@ $(pv_value) false 35ebaa52:1509cf6a868:-7053 138 - 1299 - - - - false - false - false - - - - true - - - - 1 - 1 - true - - Default - - false - - - - 0 - 20 - 0 - Text Update_54 - 0 - false - /cfs/cfe_time/Diag_DataStoreStatus - - 0.0 - - - true - true - false - - - true - ###### - $(pv_name) -$(pv_value) - false - 1 - true - Text Update - 151 - false - 35ebaa52:1509cf6a868:-7052 - 138 - 1318 + 1167 @@ -4704,11 +4145,11 @@ $(pv_value) 1 true Label - 122 + 128 false 35ebaa52:1509cf6a868:-7048 - 6 - 786 + 0 + 654 @@ -4748,7 +4189,7 @@ $(pv_value) false 35ebaa52:1509cf6a868:-7043 18 - 805 + 673 @@ -4788,7 +4229,7 @@ $(pv_value) false 35ebaa52:1509cf6a868:-703e 11 - 824 + 692 @@ -4828,7 +4269,7 @@ $(pv_value) false 35ebaa52:1509cf6a868:-7034 18 - 843 + 711 @@ -4868,7 +4309,7 @@ $(pv_value) false 35ebaa52:1509cf6a868:-702f 7 - 919 + 787 @@ -4908,7 +4349,7 @@ $(pv_value) false 35ebaa52:1509cf6a868:-702a 48 - 881 + 749 @@ -4948,7 +4389,7 @@ $(pv_value) false 35ebaa52:1509cf6a868:-7020 12 - 957 + 825 @@ -4988,7 +4429,7 @@ $(pv_value) false 35ebaa52:1509cf6a868:-7011 11 - 1014 + 882 @@ -5028,7 +4469,7 @@ $(pv_value) false 35ebaa52:1509cf6a868:-700c 12 - 995 + 863 @@ -5068,7 +4509,7 @@ $(pv_value) false 35ebaa52:1509cf6a868:-7007 11 - 1033 + 901 @@ -5108,7 +4549,7 @@ $(pv_value) false 35ebaa52:1509cf6a868:-7002 18 - 1052 + 920 @@ -5148,7 +4589,7 @@ $(pv_value) false 35ebaa52:1509cf6a868:-6ffd 24 - 1071 + 939 @@ -5188,7 +4629,7 @@ $(pv_value) false 35ebaa52:1509cf6a868:-6ff8 18 - 1090 + 958 @@ -5228,7 +4669,7 @@ $(pv_value) false 35ebaa52:1509cf6a868:-6ff3 24 - 1128 + 996 @@ -5268,7 +4709,7 @@ $(pv_value) false 35ebaa52:1509cf6a868:-6fee 18 - 1109 + 977 @@ -5308,7 +4749,7 @@ $(pv_value) false 35ebaa52:1509cf6a868:-6fe9 24 - 1147 + 1015 @@ -5344,11 +4785,11 @@ $(pv_value) 1 true Label - 104 + 116 false 35ebaa52:1509cf6a868:-6fa7 - 24 - 1242 + 12 + 1110 @@ -5388,7 +4829,7 @@ $(pv_value) false 35ebaa52:1509cf6a868:-6fa2 16 - 1165 + 1033 @@ -5428,7 +4869,7 @@ $(pv_value) false 35ebaa52:1509cf6a868:-6f9d 18 - 1280 + 1148 @@ -5450,7 +4891,7 @@ $(pv_value) 20 2 - Label_64 + Label_65 true @@ -5458,17 +4899,17 @@ $(pv_value) false - Data Store Status + Tone Under Limit true 1 true Label - 110 + 116 false - 35ebaa52:1509cf6a868:-6f93 - 18 - 1318 + 35ebaa52:1509cf6a868:-6f8e + 12 + 1167 @@ -5490,7 +4931,7 @@ $(pv_value) 20 2 - Label_65 + Label_66 true @@ -5498,17 +4939,17 @@ $(pv_value) false - Tone Under Limit + Max Elapsed true 1 true Label - 116 + 98 false - 35ebaa52:1509cf6a868:-6f8e - 12 - 1299 + 35ebaa52:1509cf6a868:-6f89 + 30 + 1091 @@ -5530,7 +4971,7 @@ $(pv_value) 20 2 - Label_66 + Label_67 true @@ -5538,7 +4979,7 @@ $(pv_value) false - Max Elapsed + Min Elapsed true 1 @@ -5546,9 +4987,9 @@ $(pv_value) Label 80 false - 35ebaa52:1509cf6a868:-6f89 + 35ebaa52:1509cf6a868:-6f84 48 - 1223 + 1073 @@ -5570,7 +5011,7 @@ $(pv_value) 20 2 - Label_67 + Label_68 true @@ -5578,7 +5019,7 @@ $(pv_value) false - Min Elapsed + Virtual MET true 1 @@ -5586,16 +5027,20 @@ $(pv_value) Label 80 false - 35ebaa52:1509cf6a868:-6f84 + 35ebaa52:1509cf6a868:-6f7f 48 - 1205 + 1053 - + + false false + false - + + 0 + true @@ -5605,29 +5050,32 @@ $(pv_value) Default + false 20 - 2 - Label_68 + + Check Box_12 + /cfs/cfe_time/CFE_TIME_DiagPacket_t.Payload.Forced2Fly + true - true + false false - Virtual MET - - true - 1 + + + + $(pv_name) +$(pv_value) true - Label - 80 - false - 35ebaa52:1509cf6a868:-6f7f - 48 - 1185 + Check Box + 100 + 59d9b0dc:177f3efc307:-78bd + 138 + 590 \ No newline at end of file From bc95a062197f31bfc28759fafa29977cc6bef2a2 Mon Sep 17 00:00:00 2001 From: jenna-crump Date: Tue, 2 Mar 2021 14:58:20 -0600 Subject: [PATCH 200/370] Adding Main.opi file --- .../Displays/Core/TIME/Main.opi | 432 +++++++++++++++--- 1 file changed, 379 insertions(+), 53 deletions(-) diff --git a/core/base/tools/commander/workspace_template/Displays/Core/TIME/Main.opi b/core/base/tools/commander/workspace_template/Displays/Core/TIME/Main.opi index 9eb78f18c..e3125edde 100644 --- a/core/base/tools/commander/workspace_template/Displays/Core/TIME/Main.opi +++ b/core/base/tools/commander/workspace_template/Displays/Core/TIME/Main.opi @@ -780,7 +780,7 @@ $(pv_value) 130 763e00b7:150973f1dd8:-7ba6 294 - 144 + 118 @@ -955,7 +955,7 @@ $(pv_value) 130 35ebaa52:1509cf6a868:-7980 294 - 169 + 143 @@ -1010,12 +1010,12 @@ $(pv_value) 130 35ebaa52:1509cf6a868:-7976 294 - 194 + 168 - SetSignal.opi + SetSource.opi true @@ -1065,7 +1065,7 @@ $(pv_value) 130 35ebaa52:1509cf6a868:-796c 294 - 219 + 193 @@ -1120,7 +1120,7 @@ $(pv_value) 130 35ebaa52:1509cf6a868:-7965 294 - 244 + 218 @@ -1175,7 +1175,7 @@ $(pv_value) 130 35ebaa52:1509cf6a868:-794e 294 - 269 + 243 @@ -1230,7 +1230,7 @@ $(pv_value) 130 35ebaa52:1509cf6a868:-7940 294 - 294 + 268 @@ -1285,7 +1285,7 @@ $(pv_value) 130 35ebaa52:1509cf6a868:-7936 294 - 319 + 293 @@ -1295,7 +1295,7 @@ $(pv_value) - 0 + 15 true @@ -1342,7 +1342,7 @@ $(pv_value) - 0 + 14 true @@ -1389,7 +1389,7 @@ $(pv_value) - 0 + 13 true @@ -1436,7 +1436,7 @@ $(pv_value) - 0 + 12 true @@ -1483,7 +1483,7 @@ $(pv_value) - 0 + 11 true @@ -1530,7 +1530,7 @@ $(pv_value) - 0 + 10 true @@ -1577,7 +1577,7 @@ $(pv_value) - 0 + 9 true @@ -1624,7 +1624,7 @@ $(pv_value) - 0 + 8 true @@ -1671,7 +1671,7 @@ $(pv_value) - 0 + 8 true @@ -1708,7 +1708,7 @@ $(pv_value) 100 35ebaa52:1509cf6a868:-74dc 164 - 273 + 254 @@ -1718,7 +1718,7 @@ $(pv_value) - 0 + 6 true @@ -1765,7 +1765,7 @@ $(pv_value) - 0 + 5 true @@ -2109,10 +2109,10 @@ $(pv_value) 0 20 0 - Text Update_2 + Text Update_3 0 false - /cfs/cfe_time/CFE_TIME_HkPacket_t.Payload.ClockStateAPI + /cfs/cfe_time/CFE_TIME_HkPacket_t.Payload.LeapSeconds 0.0 @@ -2132,9 +2132,9 @@ $(pv_value) Text Update 100 false - 35ebaa52:1509cf6a868:-7447 + 35ebaa52:1509cf6a868:-7446 169 - 366 + 385 @@ -2161,10 +2161,10 @@ $(pv_value) 0 20 0 - Text Update_3 + Text Update_4 0 false - /cfs/cfe_time/CFE_TIME_HkPacket_t.Payload.LeapSeconds + /cfs/cfe_time/CFE_TIME_HkPacket_t.Payload.SecondsMET 0.0 @@ -2184,9 +2184,9 @@ $(pv_value) Text Update 100 false - 35ebaa52:1509cf6a868:-7446 + 35ebaa52:1509cf6a868:-7445 169 - 385 + 404 @@ -2213,10 +2213,10 @@ $(pv_value) 0 20 0 - Text Update_4 + Text Update_5 0 false - /cfs/cfe_time/CFE_TIME_HkPacket_t.Payload.SecondsMET + /cfs/cfe_time/CFE_TIME_HkPacket_t.Payload.SubsecsMET 0.0 @@ -2236,9 +2236,9 @@ $(pv_value) Text Update 100 false - 35ebaa52:1509cf6a868:-7445 + 35ebaa52:1509cf6a868:-7444 169 - 404 + 423 @@ -2265,10 +2265,10 @@ $(pv_value) 0 20 0 - Text Update_5 + Text Update_6 0 false - /cfs/cfe_time/CFE_TIME_HkPacket_t.Payload.SubsecsMET + /cfs/cfe_time/CFE_TIME_HkPacket_t.Payload.SecondsSTCF 0.0 @@ -2288,9 +2288,9 @@ $(pv_value) Text Update 100 false - 35ebaa52:1509cf6a868:-7444 + 35ebaa52:1509cf6a868:-7443 169 - 423 + 442 @@ -2317,10 +2317,10 @@ $(pv_value) 0 20 0 - Text Update_6 + Text Update_7 0 false - /cfs/cfe_time/CFE_TIME_HkPacket_t.Payload.SecondsSTCF + /cfs/cfe_time/CFE_TIME_HkPacket_t.Payload.SubsecsSTCF 0.0 @@ -2340,9 +2340,9 @@ $(pv_value) Text Update 100 false - 35ebaa52:1509cf6a868:-7443 + 35ebaa52:1509cf6a868:-7442 169 - 442 + 461 @@ -2369,10 +2369,10 @@ $(pv_value) 0 20 0 - Text Update_7 + Text Update_8 0 false - /cfs/cfe_time/CFE_TIME_HkPacket_t.Payload.SubsecsSTCF + /cfs/cfe_time/CFE_TIME_HkPacket_t.Payload.Seconds1HzAdj 0.0 @@ -2392,9 +2392,9 @@ $(pv_value) Text Update 100 false - 35ebaa52:1509cf6a868:-7442 + 35ebaa52:1509cf6a868:-7441 169 - 461 + 480 @@ -2421,10 +2421,10 @@ $(pv_value) 0 20 0 - Text Update_8 + Text Update_9 0 false - /cfs/cfe_time/CFE_TIME_HkPacket_t.Payload.Seconds1HzAdj + /cfs/cfe_time/CFE_TIME_HkPacket_t.Payload.Subsecs1HzAdj 0.0 @@ -2444,9 +2444,9 @@ $(pv_value) Text Update 100 false - 35ebaa52:1509cf6a868:-7441 + 35ebaa52:1509cf6a868:-7440 169 - 480 + 499 @@ -2473,10 +2473,10 @@ $(pv_value) 0 20 0 - Text Update_9 + Text Update_10 0 false - /cfs/cfe_time/CFE_TIME_HkPacket_t.Payload.Subsecs1HzAdj + /cfs/cfe_time/CFE_TIME_DiagPacket_t.Payload.ClockStateAPI 0.0 @@ -2496,8 +2496,334 @@ $(pv_value) Text Update 100 false - 35ebaa52:1509cf6a868:-7440 + -72117af8:1776e577886:-75ff 169 - 499 + 366 + + + + + ToneData.opi + + true + + 1 + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 26 + + Action Button_8 + 0 + + + + + true + true + false + + + + Tone Data + false + $(pv_name) +$(pv_value) + true + Action Button + 130 + 59d9b0dc:177f3efc307:-7cdc + 294 + 318 + + + + + + + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 26 + ../../Resources/send.png + ToneSignal + 0 + + + + + true + true + false + + + + Tone Signal + false + $(pv_name) +$(pv_value) + true + Action Button + 130 + 59d9b0dc:177f3efc307:-7c7b + 294 + 343 + + + + + + + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 26 + ../../Resources/send.png + Fake Tone + 0 + + + + + true + true + false + + + + Fake Tone + false + $(pv_name) +$(pv_value) + true + Action Button + 130 + 59d9b0dc:177f3efc307:-759b + 294 + 368 + + + + + + + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 26 + ../../Resources/send.png + 1HZ Cmd + 0 + + + + + true + true + false + + + + 1Hz Cmd + false + $(pv_name) +$(pv_value) + true + Action Button + 130 + 59d9b0dc:177f3efc307:-7554 + 294 + 393 + + + + + + + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 26 + ../../Resources/send.png + Send Cmd + 0 + + + + + true + true + false + + + + Send Cmd + false + $(pv_name) +$(pv_value) + true + Action Button + 130 + 59d9b0dc:177f3efc307:-74ff + 294 + 418 + + + + false + false + false + + + + 7 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + Check Box_11 + /cfs/cfe_time/CFE_TIME_HkPacket_t.Payload.ClockStateFlags + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 100 + 59d9b0dc:177f3efc307:-7479 + 164 + 273 \ No newline at end of file From d343ec6e8d7d042ae8409728f3043c0c09f74f49 Mon Sep 17 00:00:00 2001 From: lorenzo-gomez-windhover Date: Tue, 2 Mar 2021 15:19:19 -0600 Subject: [PATCH 201/370] -Added timestamp pattern to Gyro --- .../Displays/Apps/SENS/Gyro.opi | 18 +++++++++++------- .../Apps/SENS/Scripts/time_stamp_update.py | 7 +++++++ 2 files changed, 18 insertions(+), 7 deletions(-) create mode 100644 core/base/tools/commander/workspace_template/Displays/Apps/SENS/Scripts/time_stamp_update.py diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/SENS/Gyro.opi b/core/base/tools/commander/workspace_template/Displays/Apps/SENS/Gyro.opi index 7637e957d..00ffaffe4 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/SENS/Gyro.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/SENS/Gyro.opi @@ -97,7 +97,7 @@ 1 20 0 - Text Update_10 + Gyro_X 3 false /cfs/sens/SENS_HkTlm_t.SensorCombinedMsg.GyroRad_0_ @@ -210,7 +210,7 @@ $(pv_value) 1 true Text Update - 100 + 200 false 7565d3e4:177c1ff26c3:-7c43 152 @@ -302,7 +302,7 @@ $(pv_value) 1 true Text Update - 100 + 200 false 7565d3e4:177c1ff26c3:-5cf3 152 @@ -333,10 +333,10 @@ $(pv_value) 1 20 0 - Text Update_45 + TimeStamp 0 false - /cfs/sens/SENS_HkTlm_t.SensorCombinedTimestamp.Seconds + 0.0 @@ -345,7 +345,11 @@ $(pv_value) true false - + + + /cfs/sens/SENS_HkTlm_t.SensorCombinedMsg.GyroRad_0_ + + true ###### $(pv_name) @@ -354,7 +358,7 @@ $(pv_value) 1 true Text Update - 100 + 200 false 7565d3e4:177c1ff26c3:-5ceb 152 diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/SENS/Scripts/time_stamp_update.py b/core/base/tools/commander/workspace_template/Displays/Apps/SENS/Scripts/time_stamp_update.py new file mode 100644 index 000000000..4262f9a41 --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/Apps/SENS/Scripts/time_stamp_update.py @@ -0,0 +1,7 @@ +from org.csstudio.opibuilder.scriptUtil import PVUtil +from org.yamcs.studio.data import VTypeHelper + +time = PVUtil.getTimeString(display.getWidget("Gyro_X").getPV(), "yyyy-MM-dd HH:mm:ss") + +widget.setPropertyValue("pv_value", time) + From 7aecfc853ca9d07b1fc656dc25d79123b4b823e7 Mon Sep 17 00:00:00 2001 From: lorenzo-gomez-windhover Date: Tue, 2 Mar 2021 15:38:09 -0600 Subject: [PATCH 202/370] -Updated docs --- docs/README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/README.md b/docs/README.md index ed3fead84..2ba9247f2 100644 --- a/docs/README.md +++ b/docs/README.md @@ -13,6 +13,7 @@ `libdwarf-dev` `libelf-dev` `libsqlite3-dev` +`libeigen3-dev` Must install the following dependencies via pip3: `PyYAML==5.3.1` From 7b3e717886daca63923de9bd0c937909ef9025fb Mon Sep 17 00:00:00 2001 From: lorenzo-gomez-windhover Date: Tue, 2 Mar 2021 15:39:07 -0600 Subject: [PATCH 203/370] -Updated docs --- docs/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/README.md b/docs/README.md index 2ba9247f2..9ea45e08a 100644 --- a/docs/README.md +++ b/docs/README.md @@ -12,7 +12,7 @@ `cmake` `libdwarf-dev` `libelf-dev` -`libsqlite3-dev` +`libsqlite3-dev` `libeigen3-dev` Must install the following dependencies via pip3: From 81d20bb0481d4100ca7d90a35659953139f8bfa1 Mon Sep 17 00:00:00 2001 From: lorenzo-gomez-windhover Date: Tue, 2 Mar 2021 17:22:16 -0600 Subject: [PATCH 204/370] -Cleanup --- .../Displays/Apps/SENS/Scripts/time_stamp_update.py | 1 - 1 file changed, 1 deletion(-) diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/SENS/Scripts/time_stamp_update.py b/core/base/tools/commander/workspace_template/Displays/Apps/SENS/Scripts/time_stamp_update.py index 4262f9a41..7ba5ac83d 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/SENS/Scripts/time_stamp_update.py +++ b/core/base/tools/commander/workspace_template/Displays/Apps/SENS/Scripts/time_stamp_update.py @@ -1,5 +1,4 @@ from org.csstudio.opibuilder.scriptUtil import PVUtil -from org.yamcs.studio.data import VTypeHelper time = PVUtil.getTimeString(display.getWidget("Gyro_X").getPV(), "yyyy-MM-dd HH:mm:ss") From 04c3c5fced3e64159a9d7a4b6bada1b465347964 Mon Sep 17 00:00:00 2001 From: lorenzo-gomez-windhover Date: Tue, 2 Mar 2021 17:23:28 -0600 Subject: [PATCH 205/370] -Added graph for Gyro display --- .../Displays/Apps/SENS/Gyro.opi | 164 +++++++++++++++++- 1 file changed, 163 insertions(+), 1 deletion(-) diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/SENS/Gyro.opi b/core/base/tools/commander/workspace_template/Displays/Apps/SENS/Gyro.opi index 00ffaffe4..91fdd6443 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/SENS/Gyro.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/SENS/Gyro.opi @@ -15,7 +15,7 @@ 6 - 630 + 900 true @@ -588,4 +588,166 @@ $(pv_value) 214 120 + + + false + true + 0.0 + + + + Primary X Axis (0) + true + + + + false + 100.0 + 0.0 + + Default + + + true + 0 + + Default Bold + + true + true + 0.0 + + + + Primary Y Axis (1) + true + + + + false + 100.0 + 0.0 + + Default + + + true + 0 + + Default Bold + + true + 2 + false + + + + true + + + + 1 + 1 + true + false + + + + 313 + XY Graph + + + + + + + + true + true + false + + + true + false + true + Gyro + + Default Bold + + $(trace_0_y_pv) +$(trace_0_y_pv_value) + true + 100 + true + 1 + X + 0 + 4 + 0 + + + + 0 + 100 + 0 + true + 0 + + + 1 + /cfs/sens/SENS_HkTlm_t.SensorCombinedMsg.GyroRad_0_ + + true + 100 + true + 1 + Y + 0 + 4 + 0 + + + + 0 + 100 + 0 + true + 0 + + + 1 + /cfs/sens/SENS_HkTlm_t.SensorCombinedMsg.GyroRad_1_ + + true + 100 + true + 1 + Z + 0 + 4 + 0 + + + + 0 + 100 + 0 + true + 0 + + + 1 + /cfs/sens/SENS_HkTlm_t.SensorCombinedMsg.GyroRad_2_ + + 3 + false + + + true + XY Graph + 658 + 54670a2e:177f3d10083:-5e34 + 27 + 180 + \ No newline at end of file From f6e61427c2c2858530229507d21eeec520f07b00 Mon Sep 17 00:00:00 2001 From: Mathew Benson Date: Tue, 2 Mar 2021 22:17:21 -0600 Subject: [PATCH 206/370] Minor tweaks to most of the displays. --- apps/sens/fsw/src/sens_symbols.c | 7 + core/base/cfe/wh_design.yaml | 10 + .../Displays/Apps/CF/Cancel.opi | 4 +- .../Displays/Apps/CF/Main.opi | 2 +- .../Displays/Apps/CF/SetCyclesPerWakeup.opi | 8 +- .../Displays/Apps/CF/WriteQueueInfo.opi | 4 +- .../Displays/Apps/CI/AuthorizeCommand.opi | 8 +- .../Displays/Apps/CI/DeauthorizeCommand.opi | 4 +- .../Displays/Apps/CI/DeregisterCommand.opi | 8 +- .../Displays/Apps/CI/Main.opi | 2 +- .../Displays/Apps/CI/RegisterCommand.opi | 8 +- .../Displays/Apps/CI/UpdateCommand.opi | 8 +- .../Displays/Apps/CS/DisableApplication.opi | 6 +- .../Displays/Apps/CS/DisableEEPROM.opi | 4 +- .../Displays/Apps/CS/DisableMemory.opi | 4 +- .../Displays/Apps/CS/DisableTable.opi | 6 +- .../Displays/Apps/CS/EnableApplication.opi | 6 +- .../Displays/Apps/CS/EnableEEPROM.opi | 4 +- .../Displays/Apps/CS/EnableMemory.opi | 4 +- .../Displays/Apps/CS/EnableTable.opi | 6 +- .../Displays/Apps/CS/GetEntryIDEEPROM.opi | 4 +- .../Displays/Apps/CS/GetEntryIDMemory.opi | 4 +- .../Displays/Apps/CS/Main.opi | 2 +- .../Displays/Apps/CS/OneShot.opi | 4 +- .../Displays/Apps/CS/RecomputeBaselineApp.opi | 6 +- .../Apps/CS/RecomputeBaselineEEPROM.opi | 4 +- .../Apps/CS/RecomputeBaselineMemory.opi | 4 +- .../Apps/CS/RecomputeBaselineTable.opi | 6 +- .../Displays/Apps/CS/ReportBaselineApp.opi | 6 +- .../Displays/Apps/CS/ReportBaselineEEPROM.opi | 4 +- .../Displays/Apps/CS/ReportBaselineMemory.opi | 4 +- .../Displays/Apps/CS/ReportBaselineTable.opi | 6 +- .../Displays/Apps/DS/AddMid.opi | 8 +- .../Displays/Apps/DS/CloseAll.opi | 4 +- .../Displays/Apps/DS/CloseFile.opi | 8 +- .../Displays/Apps/DS/GetFileInfo.opi | 4 +- .../Displays/Apps/DS/Main.opi | 2 +- .../Displays/Apps/DS/SetDestAge.opi | 8 +- .../Displays/Apps/DS/SetDestBase.opi | 8 +- .../Displays/Apps/DS/SetDestCount.opi | 4 +- .../Displays/Apps/DS/SetDestExt.opi | 8 +- .../Displays/Apps/DS/SetDestPath.opi | 4 +- .../Displays/Apps/DS/SetDestSize.opi | 4 +- .../Displays/Apps/DS/SetDestState.opi | 4 +- .../Displays/Apps/DS/SetDestType.opi | 4 +- .../Displays/Apps/DS/SetFilterFile.opi | 8 +- .../Displays/Apps/DS/SetFilterParms.opi | 4 +- .../Displays/Apps/DS/SetFilterType.opi | 4 +- .../Displays/Apps/FM/Concat.opi | 4 +- .../Displays/Apps/FM/CopyFile.opi | 4 +- .../Displays/Apps/FM/CreateDir.opi | 4 +- .../Displays/Apps/FM/Decompress.opi | 4 +- .../Displays/Apps/FM/DeleteAllFiles.opi | 4 +- .../Displays/Apps/FM/DeleteDir.opi | 4 +- .../Displays/Apps/FM/DeleteFile.opi | 4 +- .../Displays/Apps/FM/GetDir.opi | 2 +- .../Displays/Apps/FM/GetFileInfo.opi | 8 +- .../Displays/Apps/FM/GetFreeSpace.opi | 4 +- .../Displays/Apps/FM/GetOpenFiles.opi | 4 +- .../Displays/Apps/FM/Main.opi | 2 +- .../Displays/Apps/FM/MoveFile.opi | 4 +- .../Displays/Apps/FM/RenameFile.opi | 4 +- .../Displays/Apps/FM/SetPerm.opi | 4 +- .../Displays/Apps/FM/SetTableState.opi | 6 +- .../Displays/Apps/HK/Main.opi | 2 +- .../Displays/Apps/HS/Main.opi | 2 +- .../Displays/Apps/LC/Main.opi | 2 +- .../Displays/Apps/LC/ResetAPStats.opi | 4 +- .../Displays/Apps/LC/ResetWPStats.opi | 4 +- .../Displays/Apps/LC/SetAPPermOff.opi | 4 +- .../Displays/Apps/LC/SetAPState.opi | 4 +- .../Displays/Apps/LC/SetLCState.opi | 4 +- .../Displays/Apps/MD/Main.opi | 2 +- .../Displays/Apps/MM/Main.opi | 2 +- .../Displays/Apps/PE/Baro.opi | 2 +- .../Displays/Apps/PE/Distance.opi | 2 +- .../Displays/Apps/PE/Flow.opi | 2 +- .../Displays/Apps/PE/GPS.opi | 2 +- .../Displays/Apps/PE/Landing.opi | 2 +- .../Displays/Apps/PE/Main.opi | 2 +- .../Displays/Apps/PE/MessagesReceived.opi | 2 +- .../Displays/Apps/PE/State.opi | 248 +- .../Displays/Apps/SC/Main.opi | 2 +- .../Displays/Apps/SCH/Main.opi | 2 +- .../Displays/Apps/SENS/Accel.opi | 416 ++- .../Displays/Apps/SENS/Baro.opi | 158 +- .../Displays/Apps/SENS/Gyro.opi | 344 +-- .../Displays/Apps/SENS/Mag.opi | 402 ++- .../Displays/Apps/SENS/Main.opi | 232 +- .../Displays/Apps/TO/Main.opi | 2 +- .../Displays/Apps/VM/Arming.opi | 2 +- .../Displays/Apps/VM/Main.opi | 2 +- .../Displays/Apps/VM/MessagesReceived.opi | 2 +- .../Displays/Apps/VM/Moding.opi | 2 +- .../Displays/Apps/VM/State.opi | 2 +- .../Core/ES/ApplicationControl_App.opi | 2296 +++++++++++++++++ ...rol.opi => ApplicationControl_General.opi} | 16 +- .../Displays/Core/ES/Main.opi | 6 +- .../Displays/Core/ES/ReloadApp_App.opi | 239 ++ .../ES/Resources/Scripts/AppControlInit.py | 12 +- .../Scripts/ReloadApplicationInit.py | 74 + .../Displays/Core/EVS/Main.opi | 2 +- .../Displays/Core/SB/Main.opi | 2 +- .../Displays/Core/SB/ViewAllSubReports.opi | 4 +- .../Displays/Core/SB/ViewSubReport.opi | 4 +- .../Displays/Core/TBL/AbortTableLoad.opi | 4 +- .../Displays/Core/TBL/ActivateTable.opi | 4 +- .../Displays/Core/TBL/DumpRegistry.opi | 4 +- .../Displays/Core/TBL/Main.opi | 2 +- .../Displays/Core/TBL/ValidateTable.opi | 4 +- .../Displays/Core/TBL/ViewRegistry.opi | 4 +- 111 files changed, 3581 insertions(+), 1275 deletions(-) create mode 100644 core/base/tools/commander/workspace_template/Displays/Core/ES/ApplicationControl_App.opi rename core/base/tools/commander/workspace_template/Displays/Core/ES/{ApplicationControl.opi => ApplicationControl_General.opi} (99%) create mode 100644 core/base/tools/commander/workspace_template/Displays/Core/ES/ReloadApp_App.opi create mode 100644 core/base/tools/commander/workspace_template/Displays/Core/ES/Resources/Scripts/ReloadApplicationInit.py diff --git a/apps/sens/fsw/src/sens_symbols.c b/apps/sens/fsw/src/sens_symbols.c index e69de29bb..81d788267 100644 --- a/apps/sens/fsw/src/sens_symbols.c +++ b/apps/sens/fsw/src/sens_symbols.c @@ -0,0 +1,7 @@ +#include "sens_app.h" + +extern "C" { + +SENS_NoArgCmd_t SENS_NoArgCmd_S; + +} diff --git a/core/base/cfe/wh_design.yaml b/core/base/cfe/wh_design.yaml index 6784bf6b0..5d0c4aa0e 100644 --- a/core/base/cfe/wh_design.yaml +++ b/core/base/cfe/wh_design.yaml @@ -67,6 +67,8 @@ modules: cfe_es: short_name: cfe_es long_name: Core Flight Executive - Essential Services + app: + - name: CFE_ES events: CFE_ES_INIT_INF_EID: id: 1 @@ -791,6 +793,8 @@ modules: cfe_evs: short_name: cfe_evs long_name: Core Flight Executive - Event Services + app: + - name: CFE_EVS events: CFE_EVS_ERR_WRLOGFILE_EID: id: 2 @@ -1070,6 +1074,8 @@ modules: cfe_sb: short_name: cfe_sb long_name: Core Flight Executive - Software Bus + app: + - name: CFE_SB events: CFE_SB_INIT_EID: id: 1 @@ -1445,6 +1451,8 @@ modules: cfe_tbl: short_name: cfe_tbl long_name: Core Flight Executive - Table Services + app: + - name: CFE_TBL events: CFE_TBL_INIT_INF_EID: id: 1 @@ -1774,6 +1782,8 @@ modules: cfe_time: short_name: cfe_time long_name: Core Flight Executive - Time Services + app: + - name: CFE_TIME events: CFE_TIME_INIT_EID: id: 1 diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/CF/Cancel.opi b/core/base/tools/commander/workspace_template/Displays/Apps/CF/Cancel.opi index bfd6e6330..fc0eece1e 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/CF/Cancel.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/CF/Cancel.opi @@ -10,7 +10,7 @@ - 1.5.3 + 1.5.5.202103012118 @@ -19,7 +19,7 @@ true - + CF - Cancel true diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/CF/Main.opi b/core/base/tools/commander/workspace_template/Displays/Apps/CF/Main.opi index 656a0b03a..0a202cd4c 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/CF/Main.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/CF/Main.opi @@ -22,7 +22,7 @@ /Displays/Core/EVS/Events.opi Displays - CF - Main + CF true diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/CF/SetCyclesPerWakeup.opi b/core/base/tools/commander/workspace_template/Displays/Apps/CF/SetCyclesPerWakeup.opi index 4bd42bd90..5784c5878 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/CF/SetCyclesPerWakeup.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/CF/SetCyclesPerWakeup.opi @@ -10,7 +10,7 @@ - 1.5.3 + 1.5.5.202103012118 @@ -19,7 +19,7 @@ true - + CF - Set Cycles true @@ -199,8 +199,8 @@ $(pv_value) 1 false true - Infinity - -Infinity + 1.7976931348623157E308 + -1.7976931348623157E308 Spinner 10.0 3 diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/CF/WriteQueueInfo.opi b/core/base/tools/commander/workspace_template/Displays/Apps/CF/WriteQueueInfo.opi index 5fc82b22d..309d066d0 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/CF/WriteQueueInfo.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/CF/WriteQueueInfo.opi @@ -10,7 +10,7 @@ - 1.5.3 + 1.5.5.202103012118 @@ -19,7 +19,7 @@ true - + CF - Write Queue Info true diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/CI/AuthorizeCommand.opi b/core/base/tools/commander/workspace_template/Displays/Apps/CI/AuthorizeCommand.opi index 0ceea2184..d515243c4 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/CI/AuthorizeCommand.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/CI/AuthorizeCommand.opi @@ -10,7 +10,7 @@ - 1.5.3 + 1.5.5.202103012118 @@ -19,7 +19,7 @@ true - + CI - Auth true @@ -59,8 +59,8 @@ 25 0 false - Infinity - -Infinity + 1.7976931348623157E308 + -1.7976931348623157E308 false msgIdInput 0 diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/CI/DeauthorizeCommand.opi b/core/base/tools/commander/workspace_template/Displays/Apps/CI/DeauthorizeCommand.opi index f3b11840a..2bb2dda89 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/CI/DeauthorizeCommand.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/CI/DeauthorizeCommand.opi @@ -10,7 +10,7 @@ - 1.5.3 + 1.5.5.202103012118 @@ -19,7 +19,7 @@ true - + CI - Deauth true diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/CI/DeregisterCommand.opi b/core/base/tools/commander/workspace_template/Displays/Apps/CI/DeregisterCommand.opi index a7e5aba13..0ed22230d 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/CI/DeregisterCommand.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/CI/DeregisterCommand.opi @@ -10,7 +10,7 @@ - 1.5.3 + 1.5.5.202103012118 @@ -19,7 +19,7 @@ true - + CI - Dereg true @@ -384,7 +384,7 @@ $(pv_value) - 32 + 30 STEP_1 STEP_2 @@ -510,7 +510,7 @@ $(pv_value) - 32 + 30 EXCLUDE LOG diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/CI/Main.opi b/core/base/tools/commander/workspace_template/Displays/Apps/CI/Main.opi index b0afc1b8e..46c667f38 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/CI/Main.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/CI/Main.opi @@ -22,7 +22,7 @@ Displays/Core/EVS/Events.opi Displays - + CI true diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/CI/RegisterCommand.opi b/core/base/tools/commander/workspace_template/Displays/Apps/CI/RegisterCommand.opi index a55ea0c73..9e2d6a6d3 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/CI/RegisterCommand.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/CI/RegisterCommand.opi @@ -10,7 +10,7 @@ - 1.5.3 + 1.5.5.202103012118 @@ -19,7 +19,7 @@ true - + CI - Reg true @@ -384,7 +384,7 @@ $(pv_value) - 32 + 30 STEP_1 STEP_2 @@ -510,7 +510,7 @@ $(pv_value) - 32 + 30 EXCLUDE LOG diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/CI/UpdateCommand.opi b/core/base/tools/commander/workspace_template/Displays/Apps/CI/UpdateCommand.opi index 2ee3e2d55..3c13d862a 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/CI/UpdateCommand.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/CI/UpdateCommand.opi @@ -10,7 +10,7 @@ - 1.5.3 + 1.5.5.202103012118 @@ -19,7 +19,7 @@ true - + CI - Update true @@ -384,7 +384,7 @@ $(pv_value) - 32 + 30 STEP_1 STEP_2 @@ -510,7 +510,7 @@ $(pv_value) - 32 + 30 EXCLUDE LOG diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/CS/DisableApplication.opi b/core/base/tools/commander/workspace_template/Displays/Apps/CS/DisableApplication.opi index ec7a538df..ad4def0be 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/CS/DisableApplication.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/CS/DisableApplication.opi @@ -10,7 +10,7 @@ - 1.5.3 + 1.5.5.202103012118 @@ -19,7 +19,7 @@ true - + CS - Disable App true @@ -212,7 +212,7 @@ $(pv_value) - 32 + 30 CF CI diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/CS/DisableEEPROM.opi b/core/base/tools/commander/workspace_template/Displays/Apps/CS/DisableEEPROM.opi index dbccbdab3..207e338d1 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/CS/DisableEEPROM.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/CS/DisableEEPROM.opi @@ -10,7 +10,7 @@ - 1.5.3 + 1.5.5.202103012118 @@ -19,7 +19,7 @@ true - + CS - Disable EEPROM true diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/CS/DisableMemory.opi b/core/base/tools/commander/workspace_template/Displays/Apps/CS/DisableMemory.opi index 823dbe7cf..a0d40c48d 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/CS/DisableMemory.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/CS/DisableMemory.opi @@ -10,7 +10,7 @@ - 1.5.3 + 1.5.5.202103012118 @@ -19,7 +19,7 @@ true - + CS - Disable Mem true diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/CS/DisableTable.opi b/core/base/tools/commander/workspace_template/Displays/Apps/CS/DisableTable.opi index b514ab96e..f31e9f2f2 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/CS/DisableTable.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/CS/DisableTable.opi @@ -10,7 +10,7 @@ - 1.5.3 + 1.5.5.202103012118 @@ -19,7 +19,7 @@ true - + CS - Disable Table true @@ -213,7 +213,7 @@ $(pv_value) - 34 + 32 CF CI diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/CS/EnableApplication.opi b/core/base/tools/commander/workspace_template/Displays/Apps/CS/EnableApplication.opi index 85874ab7d..92c1fd08b 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/CS/EnableApplication.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/CS/EnableApplication.opi @@ -10,7 +10,7 @@ - 1.5.3 + 1.5.5.202103012118 @@ -19,7 +19,7 @@ true - + CS - Enable App true @@ -214,7 +214,7 @@ $(pv_value) - 32 + 30 CF CI diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/CS/EnableEEPROM.opi b/core/base/tools/commander/workspace_template/Displays/Apps/CS/EnableEEPROM.opi index 6d84089af..7b72bfd22 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/CS/EnableEEPROM.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/CS/EnableEEPROM.opi @@ -10,7 +10,7 @@ - 1.5.3 + 1.5.5.202103012118 @@ -19,7 +19,7 @@ true - + CS - Enable EEPROM true diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/CS/EnableMemory.opi b/core/base/tools/commander/workspace_template/Displays/Apps/CS/EnableMemory.opi index 13c68983f..07bfe19de 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/CS/EnableMemory.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/CS/EnableMemory.opi @@ -10,7 +10,7 @@ - 1.5.3 + 1.5.5.202103012118 @@ -19,7 +19,7 @@ true - + CS - Enable Memory true diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/CS/EnableTable.opi b/core/base/tools/commander/workspace_template/Displays/Apps/CS/EnableTable.opi index 608615620..f32a51abc 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/CS/EnableTable.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/CS/EnableTable.opi @@ -10,7 +10,7 @@ - 1.5.3 + 1.5.5.202103012118 @@ -19,7 +19,7 @@ true - + CS - Enable Table true @@ -213,7 +213,7 @@ $(pv_value) - 34 + 32 CF CI diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/CS/GetEntryIDEEPROM.opi b/core/base/tools/commander/workspace_template/Displays/Apps/CS/GetEntryIDEEPROM.opi index 65f9f76c1..81a6b5238 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/CS/GetEntryIDEEPROM.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/CS/GetEntryIDEEPROM.opi @@ -10,7 +10,7 @@ - 1.5.3 + 1.5.5.202103012118 @@ -19,7 +19,7 @@ true - + CS - Get EID EEPROM true diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/CS/GetEntryIDMemory.opi b/core/base/tools/commander/workspace_template/Displays/Apps/CS/GetEntryIDMemory.opi index cdc083643..46a15493a 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/CS/GetEntryIDMemory.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/CS/GetEntryIDMemory.opi @@ -10,7 +10,7 @@ - 1.5.3 + 1.5.5.202103012118 @@ -19,7 +19,7 @@ true - + CS - Get EID Memory true diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/CS/Main.opi b/core/base/tools/commander/workspace_template/Displays/Apps/CS/Main.opi index 47e32a0c5..78c9305fc 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/CS/Main.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/CS/Main.opi @@ -22,7 +22,7 @@ /Displays/Core/EVS/Events.opi Displays - + CS true diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/CS/OneShot.opi b/core/base/tools/commander/workspace_template/Displays/Apps/CS/OneShot.opi index 2105d8306..023de821a 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/CS/OneShot.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/CS/OneShot.opi @@ -10,7 +10,7 @@ - 1.5.3 + 1.5.5.202103012118 @@ -19,7 +19,7 @@ true - + CS - One Shot true diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/CS/RecomputeBaselineApp.opi b/core/base/tools/commander/workspace_template/Displays/Apps/CS/RecomputeBaselineApp.opi index 3e36f7b08..a9e4e6404 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/CS/RecomputeBaselineApp.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/CS/RecomputeBaselineApp.opi @@ -10,7 +10,7 @@ - 1.5.3 + 1.5.5.202103012118 @@ -19,7 +19,7 @@ true - + CS - Rebase App true @@ -155,7 +155,7 @@ $(pv_value) - 34 + 32 CF CI diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/CS/RecomputeBaselineEEPROM.opi b/core/base/tools/commander/workspace_template/Displays/Apps/CS/RecomputeBaselineEEPROM.opi index 05b35e273..3ae7fb8b1 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/CS/RecomputeBaselineEEPROM.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/CS/RecomputeBaselineEEPROM.opi @@ -10,7 +10,7 @@ - 1.5.3 + 1.5.5.202103012118 @@ -19,7 +19,7 @@ true - + CS - Rebase EEPROM true diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/CS/RecomputeBaselineMemory.opi b/core/base/tools/commander/workspace_template/Displays/Apps/CS/RecomputeBaselineMemory.opi index e6e3a706d..c48b47f34 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/CS/RecomputeBaselineMemory.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/CS/RecomputeBaselineMemory.opi @@ -10,7 +10,7 @@ - 1.5.3 + 1.5.5.202103012118 @@ -19,7 +19,7 @@ true - + CS - Rebase Memory true diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/CS/RecomputeBaselineTable.opi b/core/base/tools/commander/workspace_template/Displays/Apps/CS/RecomputeBaselineTable.opi index 5243b658c..547897b67 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/CS/RecomputeBaselineTable.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/CS/RecomputeBaselineTable.opi @@ -10,7 +10,7 @@ - 1.5.3 + 1.5.5.202103012118 @@ -19,7 +19,7 @@ true - + CS - Rebase Table true @@ -154,7 +154,7 @@ $(pv_value) - 34 + 32 CF CI diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/CS/ReportBaselineApp.opi b/core/base/tools/commander/workspace_template/Displays/Apps/CS/ReportBaselineApp.opi index 0510f5b6b..df781f770 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/CS/ReportBaselineApp.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/CS/ReportBaselineApp.opi @@ -10,7 +10,7 @@ - 1.5.3 + 1.5.5.202103012118 @@ -19,7 +19,7 @@ true - + CS - Report App Base true @@ -154,7 +154,7 @@ $(pv_value) - 34 + 32 CF CI diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/CS/ReportBaselineEEPROM.opi b/core/base/tools/commander/workspace_template/Displays/Apps/CS/ReportBaselineEEPROM.opi index 6f0408850..91b45d9e6 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/CS/ReportBaselineEEPROM.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/CS/ReportBaselineEEPROM.opi @@ -10,7 +10,7 @@ - 1.5.3 + 1.5.5.202103012118 @@ -19,7 +19,7 @@ true - + CS - Report EEPROM Base true diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/CS/ReportBaselineMemory.opi b/core/base/tools/commander/workspace_template/Displays/Apps/CS/ReportBaselineMemory.opi index 60d5a0ea4..bf8fe30bc 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/CS/ReportBaselineMemory.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/CS/ReportBaselineMemory.opi @@ -10,7 +10,7 @@ - 1.5.3 + 1.5.5.202103012118 @@ -19,7 +19,7 @@ true - + CS - Report Mem Base true diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/CS/ReportBaselineTable.opi b/core/base/tools/commander/workspace_template/Displays/Apps/CS/ReportBaselineTable.opi index c2466e63a..3b2c1e8cb 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/CS/ReportBaselineTable.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/CS/ReportBaselineTable.opi @@ -10,7 +10,7 @@ - 1.5.3 + 1.5.5.202103012118 @@ -19,7 +19,7 @@ true - + CS - Report Table Base true @@ -154,7 +154,7 @@ $(pv_value) - 34 + 32 CF CI diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/DS/AddMid.opi b/core/base/tools/commander/workspace_template/Displays/Apps/DS/AddMid.opi index df6bfdb12..cfdb251b5 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/DS/AddMid.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/DS/AddMid.opi @@ -10,7 +10,7 @@ - 1.5.3 + 1.5.5.202103012118 @@ -19,7 +19,7 @@ true - + DS - Add MID true @@ -59,8 +59,8 @@ 25 0 false - Infinity - -Infinity + 1.7976931348623157E308 + -1.7976931348623157E308 false AddMidMessaeIDInput 0 diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/DS/CloseAll.opi b/core/base/tools/commander/workspace_template/Displays/Apps/DS/CloseAll.opi index 48b9ce36a..4f41fd34b 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/DS/CloseAll.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/DS/CloseAll.opi @@ -10,7 +10,7 @@ - 1.5.3 + 1.5.5.202103012118 @@ -19,7 +19,7 @@ true - + DS - Close All true diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/DS/CloseFile.opi b/core/base/tools/commander/workspace_template/Displays/Apps/DS/CloseFile.opi index 87ea49d57..365aa3a52 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/DS/CloseFile.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/DS/CloseFile.opi @@ -10,7 +10,7 @@ - 1.5.3 + 1.5.5.202103012118 @@ -19,7 +19,7 @@ true - + DS - Close File true @@ -118,8 +118,8 @@ $(pv_value) 1 false true - Infinity - -Infinity + 1.7976931348623157E308 + -1.7976931348623157E308 EntryID 10.0 3 diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/DS/GetFileInfo.opi b/core/base/tools/commander/workspace_template/Displays/Apps/DS/GetFileInfo.opi index 476ff7a82..a3707e5bb 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/DS/GetFileInfo.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/DS/GetFileInfo.opi @@ -10,7 +10,7 @@ - 1.5.3 + 1.5.5.202103012118 @@ -19,7 +19,7 @@ true - + DS - Get File Info true diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/DS/Main.opi b/core/base/tools/commander/workspace_template/Displays/Apps/DS/Main.opi index f2d1353a0..4527e6154 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/DS/Main.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/DS/Main.opi @@ -22,7 +22,7 @@ Displays /Displays/Core/EVS/Events.opi - + DS true diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/DS/SetDestAge.opi b/core/base/tools/commander/workspace_template/Displays/Apps/DS/SetDestAge.opi index 9340567b8..fb18d79e1 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/DS/SetDestAge.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/DS/SetDestAge.opi @@ -10,7 +10,7 @@ - 1.5.3 + 1.5.5.202103012118 @@ -19,7 +19,7 @@ true - + DS - Set Dest Age true @@ -99,8 +99,8 @@ 1 false true - Infinity - -Infinity + 1.7976931348623157E308 + -1.7976931348623157E308 FileTableIndex 10.0 3 diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/DS/SetDestBase.opi b/core/base/tools/commander/workspace_template/Displays/Apps/DS/SetDestBase.opi index 36c8d4430..72d663042 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/DS/SetDestBase.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/DS/SetDestBase.opi @@ -10,7 +10,7 @@ - 1.5.3 + 1.5.5.202103012118 @@ -19,7 +19,7 @@ true - + DS - Set Dest Base true @@ -262,8 +262,8 @@ $(pv_value) 25 0 false - Infinity - -Infinity + 1.7976931348623157E308 + -1.7976931348623157E308 false Basename 0 diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/DS/SetDestCount.opi b/core/base/tools/commander/workspace_template/Displays/Apps/DS/SetDestCount.opi index 6b348306b..45abbede1 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/DS/SetDestCount.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/DS/SetDestCount.opi @@ -10,7 +10,7 @@ - 1.5.3 + 1.5.5.202103012118 @@ -19,7 +19,7 @@ true - + DS - Set Dest Count true diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/DS/SetDestExt.opi b/core/base/tools/commander/workspace_template/Displays/Apps/DS/SetDestExt.opi index c5b652c99..edff40389 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/DS/SetDestExt.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/DS/SetDestExt.opi @@ -10,7 +10,7 @@ - 1.5.3 + 1.5.5.202103012118 @@ -19,7 +19,7 @@ true - + DS - Set Dest Ext true @@ -262,8 +262,8 @@ $(pv_value) 25 0 false - Infinity - -Infinity + 1.7976931348623157E308 + -1.7976931348623157E308 false Extension 0 diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/DS/SetDestPath.opi b/core/base/tools/commander/workspace_template/Displays/Apps/DS/SetDestPath.opi index 095896546..406b0947d 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/DS/SetDestPath.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/DS/SetDestPath.opi @@ -10,7 +10,7 @@ - 1.5.3 + 1.5.5.202103012118 @@ -19,7 +19,7 @@ true - + DS - Set Dest Path true diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/DS/SetDestSize.opi b/core/base/tools/commander/workspace_template/Displays/Apps/DS/SetDestSize.opi index fda649a0b..2ecbc2351 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/DS/SetDestSize.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/DS/SetDestSize.opi @@ -10,7 +10,7 @@ - 1.5.3 + 1.5.5.202103012118 @@ -19,7 +19,7 @@ true - + DS - Set Dest Size true diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/DS/SetDestState.opi b/core/base/tools/commander/workspace_template/Displays/Apps/DS/SetDestState.opi index bbda3e158..681788d76 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/DS/SetDestState.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/DS/SetDestState.opi @@ -10,7 +10,7 @@ - 1.5.3 + 1.5.5.202103012118 @@ -19,7 +19,7 @@ true - + DS - Set Dest State true diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/DS/SetDestType.opi b/core/base/tools/commander/workspace_template/Displays/Apps/DS/SetDestType.opi index 23373d7a1..62a097811 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/DS/SetDestType.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/DS/SetDestType.opi @@ -10,7 +10,7 @@ - 1.5.3 + 1.5.5.202103012118 @@ -19,7 +19,7 @@ true - + DS - Set Dest Type true diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/DS/SetFilterFile.opi b/core/base/tools/commander/workspace_template/Displays/Apps/DS/SetFilterFile.opi index 0d20333b0..561767f92 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/DS/SetFilterFile.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/DS/SetFilterFile.opi @@ -10,7 +10,7 @@ - 1.5.3 + 1.5.5.202103012118 @@ -19,7 +19,7 @@ true - + DS - Set Filter File true @@ -360,8 +360,8 @@ $(pv_value) 1 false true - Infinity - -Infinity + 1.7976931348623157E308 + -1.7976931348623157E308 FileTableIndex 10.0 3 diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/DS/SetFilterParms.opi b/core/base/tools/commander/workspace_template/Displays/Apps/DS/SetFilterParms.opi index ce35a4b7c..a7f13fc72 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/DS/SetFilterParms.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/DS/SetFilterParms.opi @@ -10,7 +10,7 @@ - 1.5.3 + 1.5.5.202103012118 @@ -19,7 +19,7 @@ true - + DS - Set Filter Parms true diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/DS/SetFilterType.opi b/core/base/tools/commander/workspace_template/Displays/Apps/DS/SetFilterType.opi index 7e44409a7..c271a5315 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/DS/SetFilterType.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/DS/SetFilterType.opi @@ -10,7 +10,7 @@ - 1.5.3 + 1.5.5.202103012118 @@ -19,7 +19,7 @@ true - + DS - Set Filter Type true diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/FM/Concat.opi b/core/base/tools/commander/workspace_template/Displays/Apps/FM/Concat.opi index 758226c8a..270500240 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/FM/Concat.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/FM/Concat.opi @@ -10,7 +10,7 @@ - 1.5.3 + 1.5.5.202103012118 @@ -19,7 +19,7 @@ true - + FM - Concat true diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/FM/CopyFile.opi b/core/base/tools/commander/workspace_template/Displays/Apps/FM/CopyFile.opi index 7c9d309a1..79eee2888 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/FM/CopyFile.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/FM/CopyFile.opi @@ -10,7 +10,7 @@ - 1.5.3 + 1.5.5.202103012118 @@ -19,7 +19,7 @@ true - + FM - Copy true diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/FM/CreateDir.opi b/core/base/tools/commander/workspace_template/Displays/Apps/FM/CreateDir.opi index a71aa35c6..5def652fa 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/FM/CreateDir.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/FM/CreateDir.opi @@ -10,7 +10,7 @@ - 1.5.3 + 1.5.5.202103012118 @@ -19,7 +19,7 @@ true - + FM - Create Dir true diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/FM/Decompress.opi b/core/base/tools/commander/workspace_template/Displays/Apps/FM/Decompress.opi index 6aa6310d0..9444ec964 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/FM/Decompress.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/FM/Decompress.opi @@ -10,7 +10,7 @@ - 1.5.3 + 1.5.5.202103012118 @@ -19,7 +19,7 @@ true - + FM - Decompress true diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/FM/DeleteAllFiles.opi b/core/base/tools/commander/workspace_template/Displays/Apps/FM/DeleteAllFiles.opi index 95052ad45..b79c9533a 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/FM/DeleteAllFiles.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/FM/DeleteAllFiles.opi @@ -10,7 +10,7 @@ - 1.5.3 + 1.5.5.202103012118 @@ -19,7 +19,7 @@ true - + FM - Delete All true diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/FM/DeleteDir.opi b/core/base/tools/commander/workspace_template/Displays/Apps/FM/DeleteDir.opi index 61efc8f94..4fb6c69ab 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/FM/DeleteDir.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/FM/DeleteDir.opi @@ -10,7 +10,7 @@ - 1.5.3 + 1.5.5.202103012118 @@ -19,7 +19,7 @@ true - + FM - Delete Dir true diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/FM/DeleteFile.opi b/core/base/tools/commander/workspace_template/Displays/Apps/FM/DeleteFile.opi index 5959de8ea..22671de56 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/FM/DeleteFile.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/FM/DeleteFile.opi @@ -10,7 +10,7 @@ - 1.5.3 + 1.5.5.202103012118 @@ -19,7 +19,7 @@ true - + FM - Delete File true diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/FM/GetDir.opi b/core/base/tools/commander/workspace_template/Displays/Apps/FM/GetDir.opi index 146a6fa98..e908a6fe4 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/FM/GetDir.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/FM/GetDir.opi @@ -19,7 +19,7 @@ true - + FM - Get Dir true diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/FM/GetFileInfo.opi b/core/base/tools/commander/workspace_template/Displays/Apps/FM/GetFileInfo.opi index dec73a4b6..46aa6b49c 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/FM/GetFileInfo.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/FM/GetFileInfo.opi @@ -10,7 +10,7 @@ - 1.5.3 + 1.5.5.202103012118 @@ -19,7 +19,7 @@ true - + FM - Get File Info true @@ -906,8 +906,8 @@ $(pv_value) 1 false true - Infinity - -Infinity + 1.7976931348623157E308 + -1.7976931348623157E308 FileInfoCRC 10.0 3 diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/FM/GetFreeSpace.opi b/core/base/tools/commander/workspace_template/Displays/Apps/FM/GetFreeSpace.opi index 4f9310f46..508f408b2 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/FM/GetFreeSpace.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/FM/GetFreeSpace.opi @@ -10,7 +10,7 @@ - 1.5.3 + 1.5.5.202103012118 @@ -19,7 +19,7 @@ true - + FM - Get Free Space true diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/FM/GetOpenFiles.opi b/core/base/tools/commander/workspace_template/Displays/Apps/FM/GetOpenFiles.opi index 0ad4b35d9..a49af7425 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/FM/GetOpenFiles.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/FM/GetOpenFiles.opi @@ -10,7 +10,7 @@ - 1.5.3 + 1.5.5.202103012118 @@ -19,7 +19,7 @@ true - + FM - Get Open Files true diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/FM/Main.opi b/core/base/tools/commander/workspace_template/Displays/Apps/FM/Main.opi index 5b14a2126..1f1a96f1d 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/FM/Main.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/FM/Main.opi @@ -22,7 +22,7 @@ /Displays/Core/EVS/Events.opi Displays - + FM true diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/FM/MoveFile.opi b/core/base/tools/commander/workspace_template/Displays/Apps/FM/MoveFile.opi index b82fd98fa..7814b724a 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/FM/MoveFile.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/FM/MoveFile.opi @@ -10,7 +10,7 @@ - 1.5.3 + 1.5.5.202103012118 @@ -19,7 +19,7 @@ true - + FM - Move true diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/FM/RenameFile.opi b/core/base/tools/commander/workspace_template/Displays/Apps/FM/RenameFile.opi index df893bf84..509de6f77 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/FM/RenameFile.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/FM/RenameFile.opi @@ -10,7 +10,7 @@ - 1.5.3 + 1.5.5.202103012118 @@ -19,7 +19,7 @@ true - + FM - Rename File true diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/FM/SetPerm.opi b/core/base/tools/commander/workspace_template/Displays/Apps/FM/SetPerm.opi index 41c51e549..db1b6836d 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/FM/SetPerm.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/FM/SetPerm.opi @@ -10,7 +10,7 @@ - 1.5.3 + 1.5.5.202103012118 @@ -19,7 +19,7 @@ true - + FM - Set Perm true diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/FM/SetTableState.opi b/core/base/tools/commander/workspace_template/Displays/Apps/FM/SetTableState.opi index b791c4879..3f7706481 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/FM/SetTableState.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/FM/SetTableState.opi @@ -10,7 +10,7 @@ - 1.5.3 + 1.5.5.202103012118 @@ -19,7 +19,7 @@ true - + FM - Set Table State true @@ -232,7 +232,7 @@ $(pv_value) - 34 + 32 DISABLED ENABLED diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/HK/Main.opi b/core/base/tools/commander/workspace_template/Displays/Apps/HK/Main.opi index 260514c93..c00fb575e 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/HK/Main.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/HK/Main.opi @@ -22,7 +22,7 @@ /Displays/Core/EVS/Events.opi Displays - + HK true diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/HS/Main.opi b/core/base/tools/commander/workspace_template/Displays/Apps/HS/Main.opi index f68f33971..beb379ef2 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/HS/Main.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/HS/Main.opi @@ -22,7 +22,7 @@ Displays /Displays/Core/EVS/Events.opi - + HS true diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/LC/Main.opi b/core/base/tools/commander/workspace_template/Displays/Apps/LC/Main.opi index 36cae3404..2a62b2bd5 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/LC/Main.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/LC/Main.opi @@ -22,7 +22,7 @@ /Displays/Core/EVS/Events.opi Displays - + LC true diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/LC/ResetAPStats.opi b/core/base/tools/commander/workspace_template/Displays/Apps/LC/ResetAPStats.opi index 1348a8ab4..8455b87a1 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/LC/ResetAPStats.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/LC/ResetAPStats.opi @@ -10,7 +10,7 @@ - 1.5.3 + 1.5.5.202103012118 @@ -19,7 +19,7 @@ true - MD - Reset AP Stats + LC - Reset AP Stats true diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/LC/ResetWPStats.opi b/core/base/tools/commander/workspace_template/Displays/Apps/LC/ResetWPStats.opi index 4133feb7a..74564f3fb 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/LC/ResetWPStats.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/LC/ResetWPStats.opi @@ -10,7 +10,7 @@ - 1.5.3 + 1.5.5.202103012118 @@ -19,7 +19,7 @@ true - MD - Reset WP Stats + LC - Reset WP Stats true diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/LC/SetAPPermOff.opi b/core/base/tools/commander/workspace_template/Displays/Apps/LC/SetAPPermOff.opi index 7493b52c8..f0e79c627 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/LC/SetAPPermOff.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/LC/SetAPPermOff.opi @@ -10,7 +10,7 @@ - 1.5.3 + 1.5.5.202103012118 @@ -19,7 +19,7 @@ true - MD - Set AP Perm Off + LC - Set AP Perm Off true diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/LC/SetAPState.opi b/core/base/tools/commander/workspace_template/Displays/Apps/LC/SetAPState.opi index daeeba6e4..8a81590b2 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/LC/SetAPState.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/LC/SetAPState.opi @@ -10,7 +10,7 @@ - 1.5.3 + 1.5.5.202103012118 @@ -19,7 +19,7 @@ true - MD - Set LC State + LC - Set LC State true diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/LC/SetLCState.opi b/core/base/tools/commander/workspace_template/Displays/Apps/LC/SetLCState.opi index 206a6b7b8..3eeed964d 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/LC/SetLCState.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/LC/SetLCState.opi @@ -10,7 +10,7 @@ - 1.5.3 + 1.5.5.202103012118 @@ -19,7 +19,7 @@ true - MD - Set LC State + LC - Set LC State true diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/MD/Main.opi b/core/base/tools/commander/workspace_template/Displays/Apps/MD/Main.opi index 2f12bf308..69614f280 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/MD/Main.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/MD/Main.opi @@ -22,7 +22,7 @@ /Displays/Core/EVS/Events.opi Displays - + MD true diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/MM/Main.opi b/core/base/tools/commander/workspace_template/Displays/Apps/MM/Main.opi index e84742652..0ea30d8e6 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/MM/Main.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/MM/Main.opi @@ -22,7 +22,7 @@ /Displays/Core/EVS/Events.opi Displays - + MM true diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/PE/Baro.opi b/core/base/tools/commander/workspace_template/Displays/Apps/PE/Baro.opi index ecfc92531..dccc8c792 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/PE/Baro.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/PE/Baro.opi @@ -19,7 +19,7 @@ true - + PE - Baro true diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/PE/Distance.opi b/core/base/tools/commander/workspace_template/Displays/Apps/PE/Distance.opi index a572ce60e..d677221a1 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/PE/Distance.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/PE/Distance.opi @@ -19,7 +19,7 @@ true - + PE - Distance true diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/PE/Flow.opi b/core/base/tools/commander/workspace_template/Displays/Apps/PE/Flow.opi index 0c47111dc..35addd764 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/PE/Flow.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/PE/Flow.opi @@ -19,7 +19,7 @@ true - + PE - Flow true diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/PE/GPS.opi b/core/base/tools/commander/workspace_template/Displays/Apps/PE/GPS.opi index a7e9c3b2c..c215a97f6 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/PE/GPS.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/PE/GPS.opi @@ -19,7 +19,7 @@ true - + PE - GPS true diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/PE/Landing.opi b/core/base/tools/commander/workspace_template/Displays/Apps/PE/Landing.opi index 0952726e8..a8c360b76 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/PE/Landing.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/PE/Landing.opi @@ -19,7 +19,7 @@ true - + PE - Landing true diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/PE/Main.opi b/core/base/tools/commander/workspace_template/Displays/Apps/PE/Main.opi index 91bf4f30e..e1e3993b0 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/PE/Main.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/PE/Main.opi @@ -22,7 +22,7 @@ /Displays/Core/EVS/Events.opi Displays - + PE true diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/PE/MessagesReceived.opi b/core/base/tools/commander/workspace_template/Displays/Apps/PE/MessagesReceived.opi index f2700d1c0..c03950780 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/PE/MessagesReceived.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/PE/MessagesReceived.opi @@ -19,7 +19,7 @@ true - + PE - Msgs true diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/PE/State.opi b/core/base/tools/commander/workspace_template/Displays/Apps/PE/State.opi index 2c0f82ebe..7fcef96da 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/PE/State.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/PE/State.opi @@ -19,7 +19,7 @@ true - + PE - State true @@ -32,46 +32,6 @@ -33cb7c72:150aa4c347f:-76c2 -1 -1 - - - false - - - - - - - 0 - 1 - true - - Default Bold - - - - - 20 - 1 - Label_49 - - - true - true - false - - - Position Estimator - State - - true - 1 - true - Label - 182 - false - -33cb7c72:150aa4c347f:-75c9 - 24 - 12 - false @@ -92,7 +52,7 @@ 20 2 - Label_78 + Label_88 true @@ -100,17 +60,17 @@ false - Global Estimator Initialized + XY Estimation Valid true 1 true Label - 172 + 148 false - 7565d3e4:177c1ff26c3:-779a - 15 - 36 + 7565d3e4:177c1ff26c3:-772e + 41 + 93 @@ -141,7 +101,7 @@ 20 - LED + LED_10 @@ -150,7 +110,7 @@ ON - /cfs/pe/PE_HkTlm_t.EstimatorGlobalInitialized + /cfs/pe/PE_HkTlm_t.XyEstValid @@ -166,9 +126,9 @@ $(pv_value) true LED 20 - 7565d3e4:177c1ff26c3:-7785 + 7565d3e4:177c1ff26c3:-772d 195 - 36 + 93 @@ -190,7 +150,7 @@ $(pv_value) 20 2 - Label_79 + Label_89 true @@ -198,17 +158,17 @@ $(pv_value) false - Alt Origin Initialized + Z Estimation Valid true 1 true Label - 142 + 118 false - 7565d3e4:177c1ff26c3:-7776 - 45 - 55 + 7565d3e4:177c1ff26c3:-7726 + 71 + 112 @@ -239,7 +199,7 @@ $(pv_value) 20 - LED_1 + LED_11 @@ -248,7 +208,7 @@ $(pv_value) ON - /cfs/pe/PE_HkTlm_t.AltOriginInitialized + /cfs/pe/PE_HkTlm_t.ZEstValid @@ -264,9 +224,9 @@ $(pv_value) true LED 20 - 7565d3e4:177c1ff26c3:-7775 + 7565d3e4:177c1ff26c3:-7725 195 - 55 + 112 @@ -288,7 +248,7 @@ $(pv_value) 20 2 - Label_88 + Label_90 true @@ -296,17 +256,17 @@ $(pv_value) false - XY Estimation Valid + Terrain Estimation Valid true 1 true Label - 148 + 160 false - 7565d3e4:177c1ff26c3:-772e - 39 - 112 + 7565d3e4:177c1ff26c3:-771e + 29 + 131 @@ -337,7 +297,7 @@ $(pv_value) 20 - LED_10 + LED_12 @@ -346,7 +306,7 @@ $(pv_value) ON - /cfs/pe/PE_HkTlm_t.XyEstValid + /cfs/pe/PE_HkTlm_t.TzEstValid @@ -362,9 +322,9 @@ $(pv_value) true LED 20 - 7565d3e4:177c1ff26c3:-772d + 7565d3e4:177c1ff26c3:-771d 195 - 112 + 131 @@ -386,7 +346,7 @@ $(pv_value) 20 2 - Label_89 + Label_91 true @@ -394,17 +354,17 @@ $(pv_value) false - Z Estimation Valid + Local Estimator Initialized true 1 true Label - 118 + 172 false - 7565d3e4:177c1ff26c3:-7726 - 69 - 131 + 7565d3e4:177c1ff26c3:-76e8 + 17 + 150 @@ -435,7 +395,7 @@ $(pv_value) 20 - LED_11 + LED_13 @@ -444,7 +404,7 @@ $(pv_value) ON - /cfs/pe/PE_HkTlm_t.ZEstValid + /cfs/pe/PE_HkTlm_t.EstimatorLocalInitialized @@ -460,9 +420,9 @@ $(pv_value) true LED 20 - 7565d3e4:177c1ff26c3:-7725 + 7565d3e4:177c1ff26c3:-76e7 195 - 131 + 150 @@ -477,14 +437,14 @@ $(pv_value) 1 true - Default + Default Bold 20 - 2 - Label_90 + 1 + Label_49 true @@ -492,75 +452,17 @@ $(pv_value) false - Terrain Estimation Valid + Position Estimator - State true 1 true Label - 160 + 182 false - 7565d3e4:177c1ff26c3:-771e - 27 - 150 - - - - false - false - - - - -1 - true - - - - 0 - 1 - 3 - - - - 0 - true - true - - Default - - false - - - - 20 - LED_12 - - - - OFF - - - - ON - /cfs/pe/PE_HkTlm_t.TzEstValid - - - - true - true - true - - - false - false - $(pv_name) -$(pv_value) - true - LED - 20 - 7565d3e4:177c1ff26c3:-771d - 195 - 150 + -33cb7c72:150aa4c347f:-75c9 + 24 + 12 @@ -582,7 +484,7 @@ $(pv_value) 20 2 - Label_91 + Label_78 true @@ -590,7 +492,7 @@ $(pv_value) false - Local Estimator Initialized + Global Estimator Initialized true 1 @@ -598,9 +500,9 @@ $(pv_value) Label 172 false - 7565d3e4:177c1ff26c3:-76e8 + 7565d3e4:177c1ff26c3:-779a 15 - 169 + 36 @@ -631,7 +533,7 @@ $(pv_value) 20 - LED_13 + LED @@ -640,7 +542,7 @@ $(pv_value) ON - /cfs/pe/PE_HkTlm_t.EstimatorLocalInitialized + /cfs/pe/PE_HkTlm_t.EstimatorGlobalInitialized @@ -656,9 +558,9 @@ $(pv_value) true LED 20 - 7565d3e4:177c1ff26c3:-76e7 + 7565d3e4:177c1ff26c3:-7785 195 - 169 + 36 @@ -680,7 +582,7 @@ $(pv_value) 20 2 - Label_104 + Label_79 true @@ -688,17 +590,17 @@ $(pv_value) false - Last Armed State + Alt Origin Initialized true 1 true Label - 118 + 142 false - 7565d3e4:177c1ff26c3:-75dd - 69 - 74 + 7565d3e4:177c1ff26c3:-7776 + 45 + 55 @@ -729,7 +631,7 @@ $(pv_value) 20 - LED_26 + LED_1 @@ -738,7 +640,7 @@ $(pv_value) ON - /cfs/pe/PE_HkTlm_t.LastArmedState + /cfs/pe/PE_HkTlm_t.AltOriginInitialized @@ -754,9 +656,9 @@ $(pv_value) true LED 20 - 7565d3e4:177c1ff26c3:-75dc + 7565d3e4:177c1ff26c3:-7775 195 - 74 + 55 @@ -778,7 +680,7 @@ $(pv_value) 20 2 - Label_105 + Label_104 true @@ -786,7 +688,7 @@ $(pv_value) false - Params Updated + Last Armed State true 1 @@ -794,9 +696,9 @@ $(pv_value) Label 118 false - 7565d3e4:177c1ff26c3:-75d5 + 7565d3e4:177c1ff26c3:-75dd 69 - 93 + 74 @@ -827,7 +729,7 @@ $(pv_value) 20 - LED_27 + LED_26 @@ -836,7 +738,7 @@ $(pv_value) ON - /cfs/pe/PE_HkTlm_t.ParamsUpdated + /cfs/pe/PE_HkTlm_t.LastArmedState @@ -852,8 +754,8 @@ $(pv_value) true LED 20 - 7565d3e4:177c1ff26c3:-75d4 + 7565d3e4:177c1ff26c3:-75dc 195 - 93 + 74 \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/SC/Main.opi b/core/base/tools/commander/workspace_template/Displays/Apps/SC/Main.opi index 6415dc94c..0ad705e43 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/SC/Main.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/SC/Main.opi @@ -22,7 +22,7 @@ /Displays/Core/EVS/Events.opi Displays - + SC true diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/SCH/Main.opi b/core/base/tools/commander/workspace_template/Displays/Apps/SCH/Main.opi index d341a530b..c479a6622 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/SCH/Main.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/SCH/Main.opi @@ -22,7 +22,7 @@ /Displays/Core/EVS/Events.opi Displays - + SCH true diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/SENS/Accel.opi b/core/base/tools/commander/workspace_template/Displays/Apps/SENS/Accel.opi index e0d3fe188..43a80fe44 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/SENS/Accel.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/SENS/Accel.opi @@ -19,7 +19,7 @@ true - + SENS - Acc true @@ -69,8 +69,8 @@ 57 false 7565d3e4:177c1ff26c3:-794d - 87 - 99 + 279 + 61 @@ -110,7 +110,7 @@ ON - /cfs/sens/SENS_HkTlm_t.SensorCombinedMsg.AccRelTimeInvalid + /cfs/sens/SENS_HkTlm_t.SensorCombinedMsg.AccInvalid @@ -127,100 +127,8 @@ $(pv_value) LED 20 7565d3e4:177c1ff26c3:-7940 - 157 - 99 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 1 - Label_112 - - - true - true - false - - - X - - true - 1 - true - Label - 100 - false - 7565d3e4:177c1ff26c3:-5c7f - 8 - 128 - - - - false - false - false - - - - true - - - - 1 - 1 - true - - Default - - false - - - - 1 - 20 - 0 - Text Update_48 - 3 - false - /cfs/sens/SENS_HkTlm_t.SensorCombinedMsg.Acc_0_ - - 0.0 - - - true - true - false - - - true - ###### - $(pv_name) -$(pv_value) - false - 1 - true - Text Update - 100 - false - 7565d3e4:177c1ff26c3:-5c7e - 8 - 147 + 349 + 61 @@ -259,8 +167,8 @@ $(pv_value) 81 false 7565d3e4:177c1ff26c3:-5c7d - 64 - 74 + 256 + 36 @@ -311,8 +219,8 @@ $(pv_value) 100 false 7565d3e4:177c1ff26c3:-5c7c - 156 - 74 + 348 + 36 @@ -342,16 +250,16 @@ $(pv_value) false - Relative Time + Time true 1 true Label - 114 + 49 false 7565d3e4:177c1ff26c3:-5c7b - 31 + 72 36 @@ -382,7 +290,7 @@ $(pv_value) Text Update_50 0 false - /cfs/sens/SENS_HkTlm_t.SensorCombinedMsg.AccTimestampRelative.Subseconds + /cfs/sens/SENS_HkTlm_t.SensorCombinedMsg.AccTimestamp.Subseconds 0.0 @@ -403,7 +311,7 @@ $(pv_value) 100 false 7565d3e4:177c1ff26c3:-5c7a - 156 + 132 55 @@ -434,7 +342,7 @@ $(pv_value) Text Update_51 0 false - /cfs/sens/SENS_HkTlm_t.SensorCombinedMsg.AccTimestampRelative.Seconds + /cfs/sens/SENS_HkTlm_t.SensorCombinedMsg.AccTimestamp.Seconds 0.0 @@ -455,7 +363,7 @@ $(pv_value) 100 false 7565d3e4:177c1ff26c3:-5c79 - 156 + 132 36 @@ -495,172 +403,81 @@ $(pv_value) 246 false 7565d3e4:177c1ff26c3:-5c78 - 31 + 109 9 - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 1 - Label_116 - - - true - true - false - - - Y - - true - 1 - true - Label - 100 - false - 7565d3e4:177c1ff26c3:-5c77 - 112 - 128 - - + false - false - false - - - - true - - - - 1 - 1 - true - - Default - - false - + true + 0.0 + - - 1 - 20 - 0 - Text Update_52 - 3 - false - /cfs/sens/SENS_HkTlm_t.SensorCombinedMsg.Acc_1_ - - 0.0 - - - true - true - false - - - true - ###### - $(pv_name) -$(pv_value) - false - 1 - true - Text Update - 100 - false - 7565d3e4:177c1ff26c3:-5c76 - 112 - 147 - - - - false - - - - - - - 0 - 1 - true - + + Primary X Axis (0) + true + + + + false + 100.0 + 0.0 + Default - - + + + true + 4 + + Default Bold + + true + true + 0.0 + - - 20 - 1 - Label_117 - - - true - true - false - - - Z - - true - 1 - true - Label - 100 - false - 7565d3e4:177c1ff26c3:-5c75 - 217 - 128 - - - - false - false + + Primary Y Axis (1) + true + + + + false + 100.0 + 0.0 + + Default + + + true + 0 + + Default Bold + + true + 2 false - + true - + 1 1 true - - Default - false - 1 - 20 - 0 - Text Update_53 - 3 - false - /cfs/sens/SENS_HkTlm_t.SensorCombinedMsg.Acc_2_ + 247 + XY Graph + + + + - 0.0 true @@ -668,18 +485,87 @@ $(pv_value) false - true - ###### - $(pv_name) -$(pv_value) + true + false + true + Accelerometer + + Default Bold + + $(trace_0_y_pv) +$(trace_0_y_pv_value) + true + 100 + true + 1 + X + 0 + 4 + 0 + + + + 0 + 100 + 0 + true + 0 + + + 1 + /cfs/sens/SENS_HkTlm_t.SensorCombinedMsg.Acc_0_ + + true + 100 + true + 1 + Y + 0 + 4 + 0 + + + + 0 + 100 + 0 + true + 0 + + + 1 + /cfs/sens/SENS_HkTlm_t.SensorCombinedMsg.Acc_1_ + + true + 100 + true + 1 + Z + 0 + 4 + 0 + + + + 0 + 100 + 0 + true + 0 + + + 1 + /cfs/sens/SENS_HkTlm_t.SensorCombinedMsg.Acc_2_ + + 3 false - 1 + + true - Text Update - 100 - false - 7565d3e4:177c1ff26c3:-5c74 - 217 - 147 + XY Graph + 487 + 57b6f1f2:177f59992af:-6c4e + 12 + 96 \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/SENS/Baro.opi b/core/base/tools/commander/workspace_template/Displays/Apps/SENS/Baro.opi index ae756173a..edc3b17bf 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/SENS/Baro.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/SENS/Baro.opi @@ -19,7 +19,7 @@ true - + SENS - Baro true @@ -69,8 +69,8 @@ 57 false 7565d3e4:177c1ff26c3:-5b83 - 46 - 80 + 114 + 84 @@ -110,7 +110,7 @@ ON - /cfs/sens/SENS_HkTlm_t.SensorCombinedMsg.BaroRelTimeInvalid + /cfs/sens/SENS_HkTlm_t.SensorCombinedMsg.BaroInvalid @@ -127,8 +127,8 @@ $(pv_value) LED 20 7565d3e4:177c1ff26c3:-5b82 - 116 - 80 + 184 + 84 @@ -158,7 +158,7 @@ $(pv_value) false - Relative Time + Timestamp true 1 @@ -198,7 +198,7 @@ $(pv_value) Text Update_61 0 false - /cfs/sens/SENS_HkTlm_t.SensorCombinedMsg.BaroTimestampRelative.Subseconds + /cfs/sens/SENS_HkTlm_t.SensorCombinedMsg.BaroTimestamp.Subseconds 0.0 @@ -250,7 +250,7 @@ $(pv_value) Text Update_62 0 false - /cfs/sens/SENS_HkTlm_t.SensorCombinedMsg.BaroTimestampRelative.Seconds + /cfs/sens/SENS_HkTlm_t.SensorCombinedMsg.BaroTimestamp.Seconds 0.0 @@ -311,8 +311,8 @@ $(pv_value) 189 false 7565d3e4:177c1ff26c3:-5b7c - 22 - 9 + 142 + 12 @@ -351,8 +351,8 @@ $(pv_value) 81 false 7565d3e4:177c1ff26c3:-5b60 - 22 - 109 + 250 + 36 @@ -403,8 +403,8 @@ $(pv_value) 100 false 7565d3e4:177c1ff26c3:-5b5f - 114 - 109 + 342 + 36 @@ -443,8 +443,8 @@ $(pv_value) 95 false 7565d3e4:177c1ff26c3:-5b51 - 8 - 128 + 236 + 55 @@ -495,7 +495,127 @@ $(pv_value) 100 false 7565d3e4:177c1ff26c3:-5b50 - 114 - 128 + 342 + 55 + + + + false + true + 0.0 + + + + Primary X Axis (0) + true + + + + false + 100.0 + 0.0 + + Default + + + true + 3 + + Default Bold + + true + true + 0.0 + + + + Primary Y Axis (1) + true + + + + false + 100.0 + 0.0 + + Default + + + true + 0 + + Default Bold + + true + 2 + false + + + + true + + + + 1 + 1 + true + false + + + + 247 + XY Graph + + + + + + + + true + true + false + + + true + false + true + Barometric Altitude + + Default Bold + + $(trace_0_y_pv) +$(trace_0_y_pv_value) + true + 100 + true + 1 + X + 0 + 4 + 0 + + + + 0 + 100 + 0 + true + 0 + + + 1 + /cfs/sens/SENS_HkTlm_t.SensorCombinedMsg.BaroAlt + + 1 + false + + + true + XY Graph + 487 + 57b6f1f2:177f59992af:-6c3e + 8 + 108 \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/SENS/Gyro.opi b/core/base/tools/commander/workspace_template/Displays/Apps/SENS/Gyro.opi index 91fdd6443..1479665d1 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/SENS/Gyro.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/SENS/Gyro.opi @@ -19,7 +19,7 @@ true - + SENS - Gyro true @@ -32,98 +32,6 @@ -33cb7c72:150aa4c347f:-76c2 -1 -1 - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 1 - Label_58 - - - true - true - false - - - X - - true - 1 - true - Label - 100 - false - -10b748b0:17773fb054b:-7ae3 - 5 - 101 - - - - false - false - false - - - - true - - - - 1 - 1 - true - - Default - - false - - - - 1 - 20 - 0 - Gyro_X - 3 - false - /cfs/sens/SENS_HkTlm_t.SensorCombinedMsg.GyroRad_0_ - - 0.0 - - - true - true - false - - - true - ###### - $(pv_name) -$(pv_value) - false - 1 - true - Text Update - 100 - false - -10b748b0:17773fb054b:-7ae2 - 5 - 120 - false @@ -162,7 +70,7 @@ $(pv_value) false 7565d3e4:177c1ff26c3:-7c44 60 - 77 + 58 @@ -214,7 +122,7 @@ $(pv_value) false 7565d3e4:177c1ff26c3:-7c43 152 - 77 + 58 @@ -256,58 +164,6 @@ $(pv_value) 27 39 - - - false - false - false - - - - true - - - - 1 - 1 - true - - Default - - false - - - - 1 - 20 - 0 - Text Update_44 - 0 - false - /cfs/sens/SENS_HkTlm_t.SensorCombinedTimestamp.Subseconds - - 0.0 - - - true - true - false - - - true - ###### - $(pv_name) -$(pv_value) - false - 1 - true - Text Update - 200 - false - 7565d3e4:177c1ff26c3:-5cf3 - 152 - 58 - false @@ -401,193 +257,9 @@ $(pv_value) 116 false 7565d3e4:177c1ff26c3:-5cd9 - 100 + 186 12 - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 1 - Label_110 - - - true - true - false - - - Y - - true - 1 - true - Label - 100 - false - 7565d3e4:177c1ff26c3:-5cc6 - 109 - 101 - - - - false - false - false - - - - true - - - - 1 - 1 - true - - Default - - false - - - - 1 - 20 - 0 - Text Update_46 - 3 - false - /cfs/sens/SENS_HkTlm_t.SensorCombinedMsg.GyroRad_1_ - - 0.0 - - - true - true - false - - - true - ###### - $(pv_name) -$(pv_value) - false - 1 - true - Text Update - 100 - false - 7565d3e4:177c1ff26c3:-5cc5 - 109 - 120 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 1 - Label_111 - - - true - true - false - - - Z - - true - 1 - true - Label - 100 - false - 7565d3e4:177c1ff26c3:-5caf - 214 - 101 - - - - false - false - false - - - - true - - - - 1 - 1 - true - - Default - - false - - - - 1 - 20 - 0 - Text Update_47 - 3 - false - /cfs/sens/SENS_HkTlm_t.SensorCombinedMsg.GyroRad_2_ - - 0.0 - - - true - true - false - - - true - ###### - $(pv_name) -$(pv_value) - false - 1 - true - Text Update - 100 - false - 7565d3e4:177c1ff26c3:-5cae - 214 - 120 - false @@ -653,7 +325,7 @@ $(pv_value) - 313 + 247 XY Graph @@ -745,9 +417,9 @@ $(trace_0_y_pv_value) true XY Graph - 658 + 487 54670a2e:177f3d10083:-5e34 - 27 - 180 + 8 + 96 \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/SENS/Mag.opi b/core/base/tools/commander/workspace_template/Displays/Apps/SENS/Mag.opi index 165df0ab4..92fa18c53 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/SENS/Mag.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/SENS/Mag.opi @@ -19,7 +19,7 @@ true - + SENS - Mag true @@ -69,8 +69,8 @@ 57 false 7565d3e4:177c1ff26c3:-5c04 - 100 - 80 + 300 + 42 @@ -110,7 +110,7 @@ ON - /cfs/sens/SENS_HkTlm_t.SensorCombinedMsg.MagRelTimeInvalid + /cfs/sens/SENS_HkTlm_t.SensorCombinedMsg.MagInvalid @@ -127,100 +127,8 @@ $(pv_value) LED 20 7565d3e4:177c1ff26c3:-5c03 - 170 - 80 - - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 1 - Label_119 - - - true - true - false - - - X - - true - 1 - true - Label - 100 - false - 7565d3e4:177c1ff26c3:-5c02 - 14 - 105 - - - - false - false - false - - - - true - - - - 1 - 1 - true - - Default - - false - - - - 1 - 20 - 0 - Text Update_54 - 3 - false - /cfs/sens/SENS_HkTlm_t.SensorCombinedMsg.Mag_0_ - - 0.0 - - - true - true - false - - - true - ###### - $(pv_name) -$(pv_value) - false - 1 - true - Text Update - 100 - false - 7565d3e4:177c1ff26c3:-5c01 - 14 - 124 + 370 + 42 @@ -250,7 +158,7 @@ $(pv_value) false - Relative Time + Timestamp true 1 @@ -290,7 +198,7 @@ $(pv_value) Text Update_56 0 false - /cfs/sens/SENS_HkTlm_t.SensorCombinedMsg.MagTimestampRelative.Subseconds + /cfs/sens/SENS_HkTlm_t.SensorCombinedMsg.MagTimestamp.Subseconds 0.0 @@ -342,7 +250,7 @@ $(pv_value) Text Update_57 0 false - /cfs/sens/SENS_HkTlm_t.SensorCombinedMsg.MagTimestampRelative.Seconds + /cfs/sens/SENS_HkTlm_t.SensorCombinedMsg.MagTimestamp.Seconds 0.0 @@ -403,172 +311,81 @@ $(pv_value) 271 false 7565d3e4:177c1ff26c3:-5bfb - 30 - 15 + 114 + 12 - - - false - - - - - - - 0 - 1 - true - - Default - - - - - 20 - 1 - Label_123 - - - true - true - false - - - Y - - true - 1 - true - Label - 100 - false - 7565d3e4:177c1ff26c3:-5bfa - 118 - 105 - - + false - false - false - - - - true - - - - 1 - 1 - true - - Default - - false - + true + 0.0 + - - 1 - 20 - 0 - Text Update_58 - 3 - false - /cfs/sens/SENS_HkTlm_t.SensorCombinedMsg.Mag_1_ - - 0.0 - - - true - true - false - - - true - ###### - $(pv_name) -$(pv_value) - false - 1 - true - Text Update - 100 - false - 7565d3e4:177c1ff26c3:-5bf9 - 118 - 124 - - - - false - - - - - - - 0 - 1 - true - + + Primary X Axis (0) + true + + + + false + 100.0 + 0.0 + Default - - + + + true + 3 + + Default Bold + + true + true + 0.0 + - - 20 - 1 - Label_124 - - - true - true - false - - - Z - - true - 1 - true - Label - 100 - false - 7565d3e4:177c1ff26c3:-5bf8 - 223 - 105 - - - - false - false + + Primary Y Axis (1) + true + + + + false + 100.0 + 0.0 + + Default + + + true + 0 + + Default Bold + + true + 2 false - + true - + 1 1 true - - Default - false - 1 - 20 - 0 - Text Update_59 - 3 - false - /cfs/sens/SENS_HkTlm_t.SensorCombinedMsg.Mag_2_ + 247 + XY Graph + + + + - 0.0 true @@ -576,18 +393,87 @@ $(pv_value) false - true - ###### - $(pv_name) -$(pv_value) + true + false + true + Mag + + Default Bold + + $(trace_0_y_pv) +$(trace_0_y_pv_value) + true + 100 + true + 1 + X + 0 + 4 + 0 + + + + 0 + 100 + 0 + true + 0 + + + 1 + /cfs/sens/SENS_HkTlm_t.SensorCombinedMsg.Mag_0_ + + true + 100 + true + 1 + Y + 0 + 4 + 0 + + + + 0 + 100 + 0 + true + 0 + + + 1 + /cfs/sens/SENS_HkTlm_t.SensorCombinedMsg.Mag_1_ + + true + 100 + true + 1 + Z + 0 + 4 + 0 + + + + 0 + 100 + 0 + true + 0 + + + 1 + /cfs/sens/SENS_HkTlm_t.SensorCombinedMsg.Mag_2_ + + 3 false - 1 + + true - Text Update - 100 - false - 7565d3e4:177c1ff26c3:-5bf7 - 223 - 124 + XY Graph + 487 + 57b6f1f2:177f59992af:-6c24 + 6 + 90 \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/SENS/Main.opi b/core/base/tools/commander/workspace_template/Displays/Apps/SENS/Main.opi index 74b0a5503..2db5dce2f 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/SENS/Main.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/SENS/Main.opi @@ -19,7 +19,7 @@ true - + SENS true @@ -60,7 +60,7 @@ Text Update 0 false - /cfs/sens/SENS_HkTlm_t.CmdCnt + /cfs/sens/SENS_HkTlm_t.usCmdCnt 0.0 @@ -192,7 +192,7 @@ $(pv_value) Text Update_1 0 false - /cfs/sens/SENS_HkTlm_t.CmdErrCnt + /cfs/sens/SENS_HkTlm_t.usCmdErrCnt 0.0 @@ -426,7 +426,7 @@ $(pv_value) Action Button 124 -69f8bd78:177f094d5fe:-1634 - 97 + 174 96 @@ -482,7 +482,7 @@ $(pv_value) Action Button 124 -69f8bd78:177f094d5fe:-162c - 97 + 174 115 @@ -538,7 +538,227 @@ $(pv_value) Action Button 124 -69f8bd78:177f094d5fe:-1624 - 97 + 174 134 + + + + Accel.opi + + true + + 1 + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 20 + + NoOp_9 + 0 + + + + + true + true + false + + + + Accel + false + $(pv_name) +$(pv_value) + true + Action Button + 124 + 57b6f1f2:177f59992af:-700d + 31 + 96 + + + + + Baro.opi + + true + + 1 + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 20 + + NoOp_10 + 0 + + + + + true + true + false + + + + Baro + false + $(pv_name) +$(pv_value) + true + Action Button + 124 + 57b6f1f2:177f59992af:-7005 + 31 + 115 + + + + + Gyro.opi + + true + + 1 + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 20 + + NoOp_11 + 0 + + + + + true + true + false + + + + Gyro + false + $(pv_name) +$(pv_value) + true + Action Button + 124 + 57b6f1f2:177f59992af:-7000 + 31 + 134 + + + + + Mag.opi + + true + + 1 + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 20 + + NoOp_12 + 0 + + + + + true + true + false + + + + Mag + false + $(pv_name) +$(pv_value) + true + Action Button + 124 + 57b6f1f2:177f59992af:-6ffb + 31 + 153 + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/TO/Main.opi b/core/base/tools/commander/workspace_template/Displays/Apps/TO/Main.opi index 5aecc80cc..2e7db96c5 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/TO/Main.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/TO/Main.opi @@ -22,7 +22,7 @@ Displays /Displays/Core/EVS/Events.opi - + TO true diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/VM/Arming.opi b/core/base/tools/commander/workspace_template/Displays/Apps/VM/Arming.opi index 4761a9d63..8518ff392 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/VM/Arming.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/VM/Arming.opi @@ -22,7 +22,7 @@ /Displays/Core/EVS/Events.opi Displays - + VM - Arming true diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/VM/Main.opi b/core/base/tools/commander/workspace_template/Displays/Apps/VM/Main.opi index 9f1198968..9d3729914 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/VM/Main.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/VM/Main.opi @@ -22,7 +22,7 @@ /Displays/Core/EVS/Events.opi Displays - + VM true diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/VM/MessagesReceived.opi b/core/base/tools/commander/workspace_template/Displays/Apps/VM/MessagesReceived.opi index 9a8c9b907..14902293b 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/VM/MessagesReceived.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/VM/MessagesReceived.opi @@ -22,7 +22,7 @@ /Displays/Core/EVS/Events.opi Displays - + VM - Msgs true diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/VM/Moding.opi b/core/base/tools/commander/workspace_template/Displays/Apps/VM/Moding.opi index 38c409676..a2e4a6acd 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/VM/Moding.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/VM/Moding.opi @@ -22,7 +22,7 @@ /Displays/Core/EVS/Events.opi Displays - + VM - Moding true diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/VM/State.opi b/core/base/tools/commander/workspace_template/Displays/Apps/VM/State.opi index 29ee13312..696e8fcde 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/VM/State.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/VM/State.opi @@ -22,7 +22,7 @@ /Displays/Core/EVS/Events.opi Displays - + VM - State true diff --git a/core/base/tools/commander/workspace_template/Displays/Core/ES/ApplicationControl_App.opi b/core/base/tools/commander/workspace_template/Displays/Core/ES/ApplicationControl_App.opi new file mode 100644 index 000000000..aecf3db12 --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/Core/ES/ApplicationControl_App.opi @@ -0,0 +1,2296 @@ + + + + + false + -1 + -1 + + false + + + + 1.5.5.202103012118 + + + + 6 + 500 + + true + /Displays/Resources/definitions.yaml + + App Control + + + + =1 + + + true + true + true + true + true + Display + 325 + 72a2bf2b:1508717c835:-7d33 + -1 + -1 + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_15 + + + true + true + false + + + Start Address + + true + 1 + true + Label + 104 + false + 72a2bf2b:1508717c835:-7bba + 24 + 294 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 3 + 19 + 0 + Text Update_15 + 0 + false + /cfs/cfe_es/CFE_ES_OneAppTlm_t.Payload.AppInfo.StartAddress + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 169 + false + 72a2bf2b:1508717c835:-7bb9 + 144 + 294 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_16 + + + true + true + false + + + Exception Action + + true + 1 + true + Label + 120 + false + 72a2bf2b:1508717c835:-7b8a + 8 + 312 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 19 + 0 + inExceptionAction + 0 + false + /cfs/cfe_es/CFE_ES_OneAppTlm_t.Payload.AppInfo.ExceptionAction + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 169 + false + 72a2bf2b:1508717c835:-7b89 + 144 + 312 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_17 + + + true + true + false + + + Priority + + true + 1 + true + Label + 104 + false + 72a2bf2b:1508717c835:-7b82 + 24 + 330 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 19 + 0 + inPriority + 0 + false + /cfs/cfe_es/CFE_ES_OneAppTlm_t.Payload.AppInfo.Priority + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 169 + false + 72a2bf2b:1508717c835:-7b81 + 144 + 330 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_18 + + + true + true + false + + + Main Task ID + + true + 1 + true + Label + 104 + false + 72a2bf2b:1508717c835:-7b7a + 24 + 348 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 19 + 0 + Text Update_18 + 0 + false + /cfs/cfe_es/CFE_ES_OneAppTlm_t.Payload.AppInfo.MainTaskId + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 169 + false + 72a2bf2b:1508717c835:-7b79 + 144 + 348 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_19 + + + true + true + false + + + Execution Counter + + true + 1 + true + Label + 140 + false + 72a2bf2b:1508717c835:-7b72 + -12 + 366 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 19 + 0 + Text Update_19 + 0 + false + /cfs/cfe_es/CFE_ES_OneAppTlm_t.Payload.AppInfo.ExecutionCounter + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 169 + false + 72a2bf2b:1508717c835:-7b71 + 144 + 366 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_20 + + + true + true + false + + + Main Task Name + + true + 1 + true + Label + 140 + false + 72a2bf2b:1508717c835:-7b5a + -12 + 384 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 19 + 0 + Text Update_20 + 0 + false + /cfs/cfe_es/CFE_ES_OneAppTlm_t.Payload.AppInfo.MainTaskName + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 169 + false + 72a2bf2b:1508717c835:-7b59 + 144 + 384 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_21 + + + true + true + false + + + Child Tasks + + true + 1 + true + Label + 140 + false + 72a2bf2b:1508717c835:-7b4f + -12 + 401 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 19 + 0 + Text Update_21 + 0 + false + /cfs/cfe_es/CFE_ES_OneAppTlm_t.Payload.AppInfo.NumOfChildTasks + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 169 + false + 72a2bf2b:1508717c835:-7b4e + 144 + 402 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_1 + + + true + true + false + + + ID + + true + 1 + true + Label + 80 + false + -2dc23c5:177557ff444:-7096 + 49 + 60 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 19 + 0 + Text Update_1 + 0 + false + /cfs/cfe_es/CFE_ES_OneAppTlm_t.Payload.AppInfo.AppId + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 169 + false + -2dc23c5:177557ff444:-7095 + 144 + 60 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_2 + + + true + true + false + + + Type + + true + 1 + true + Label + 80 + false + -2dc23c5:177557ff444:-708a + 48 + 78 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 19 + 0 + Text Update_2 + 0 + false + /cfs/cfe_es/CFE_ES_OneAppTlm_t.Payload.AppInfo.Type + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 169 + false + -2dc23c5:177557ff444:-7089 + 144 + 78 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_3 + + + true + true + false + + + Name + + true + 1 + true + Label + 80 + false + -2dc23c5:177557ff444:-707e + 48 + 42 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 19 + 0 + inAppName + 0 + false + /cfs/cfe_es/CFE_ES_OneAppTlm_t.Payload.AppInfo.Name + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 169 + false + -2dc23c5:177557ff444:-707d + 144 + 42 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_4 + + + true + true + false + + + Entry Point + + true + 1 + true + Label + 80 + false + -2dc23c5:177557ff444:-7072 + 48 + 96 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 19 + 0 + inEntryPoint + 0 + false + /cfs/cfe_es/CFE_ES_OneAppTlm_t.Payload.AppInfo.EntryPoint + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 169 + false + -2dc23c5:177557ff444:-7071 + 144 + 96 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_5 + + + true + true + false + + + File Name + + true + 1 + true + Label + 80 + false + -2dc23c5:177557ff444:-7066 + 48 + 114 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 19 + 0 + inFileName + 0 + false + /cfs/cfe_es/CFE_ES_OneAppTlm_t.Payload.AppInfo.FileName + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 169 + false + -2dc23c5:177557ff444:-7065 + 144 + 114 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_6 + + + true + true + false + + + Stack Size + + true + 1 + true + Label + 92 + false + -2dc23c5:177557ff444:-705a + 36 + 132 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 19 + 0 + inStackSize + 0 + false + /cfs/cfe_es/CFE_ES_OneAppTlm_t.Payload.AppInfo.StackSize + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 169 + false + -2dc23c5:177557ff444:-7059 + 144 + 132 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_7 + + + true + true + false + + + Module ID + + true + 1 + true + Label + 92 + false + -2dc23c5:177557ff444:-7048 + 36 + 150 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 19 + 0 + Text Update_7 + 0 + false + /cfs/cfe_es/CFE_ES_OneAppTlm_t.Payload.AppInfo.ModuleId + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 169 + false + -2dc23c5:177557ff444:-7047 + 144 + 150 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_8 + + + true + true + false + + + Valid Addresses + + true + 1 + true + Label + 120 + false + -2dc23c5:177557ff444:-703c + 8 + 168 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 19 + 0 + Text Update_8 + 0 + false + /cfs/cfe_es/CFE_ES_OneAppTlm_t.Payload.AppInfo.AddressesAreValid + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 169 + false + -2dc23c5:177557ff444:-703b + 144 + 168 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_9 + + + true + true + false + + + Code Address + + true + 1 + true + Label + 104 + false + -2dc23c5:177557ff444:-7030 + 24 + 186 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 3 + 19 + 0 + Text Update_9 + 0 + false + /cfs/cfe_es/CFE_ES_OneAppTlm_t.Payload.AppInfo.CodeAddress + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 169 + false + -2dc23c5:177557ff444:-702f + 144 + 186 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_10 + + + true + true + false + + + Code Size + + true + 1 + true + Label + 104 + false + -2dc23c5:177557ff444:-7024 + 24 + 204 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 19 + 0 + Text Update_10 + 0 + false + /cfs/cfe_es/CFE_ES_OneAppTlm_t.Payload.AppInfo.CodeSize + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 169 + false + -2dc23c5:177557ff444:-7023 + 144 + 204 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_11 + + + true + true + false + + + Data Address + + true + 1 + true + Label + 104 + false + -2dc23c5:177557ff444:-7018 + 24 + 222 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 3 + 19 + 0 + Text Update_11 + 0 + false + /cfs/cfe_es/CFE_ES_OneAppTlm_t.Payload.AppInfo.DataAddress + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 169 + false + -2dc23c5:177557ff444:-7017 + 144 + 222 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_12 + + + true + true + false + + + Data Size + + true + 1 + true + Label + 104 + false + -2dc23c5:177557ff444:-700c + 24 + 240 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 19 + 0 + Text Update_12 + 0 + false + /cfs/cfe_es/CFE_ES_OneAppTlm_t.Payload.AppInfo.DataSize + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 169 + false + -2dc23c5:177557ff444:-700b + 144 + 240 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_13 + + + true + true + false + + + BSS Address + + true + 1 + true + Label + 104 + false + -2dc23c5:177557ff444:-7000 + 24 + 258 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 3 + 19 + 0 + Text Update_13 + 0 + false + /cfs/cfe_es/CFE_ES_OneAppTlm_t.Payload.AppInfo.BSSAddress + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 169 + false + -2dc23c5:177557ff444:-6fff + 144 + 258 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_14 + + + true + true + false + + + BSS Size + + true + 1 + true + Label + 104 + false + -2dc23c5:177557ff444:-6ff4 + 24 + 276 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 1 + 19 + 0 + Text Update_14 + 0 + false + /cfs/cfe_es/CFE_ES_OneAppTlm_t.Payload.AppInfo.BSSSize + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 169 + false + -2dc23c5:177557ff444:-6feb + 144 + 276 + + + + false + + + + + + + 0 + 1 + true + + Default Bold + + + + + 20 + 1 + app_name + + + true + true + false + + + Application Control + + true + 1 + true + Label + 286 + false + 14292858:17759dd02e1:-7c65 + 26 + 12 + + + + + + + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 28 + ../../Resources/send.png + NoOp + 0 + + + + + true + true + false + + + + Query + false + $(pv_name) +$(pv_value) + true + Action Button + 79 + 57b6f1f2:177f59992af:-7a3f + 84 + 432 + + + + + + + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 28 + ../../Resources/send.png + NoOp_2 + 0 + + + + + true + true + false + + + + Restart + false + $(pv_name) +$(pv_value) + true + Action Button + 79 + 57b6f1f2:177f59992af:-7a37 + 162 + 432 + + + + + + + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 28 + + ReloadApp + 0 + + + + + true + true + false + + + + Reload + false + $(pv_name) +$(pv_value) + true + Action Button + 67 + 57b6f1f2:177f59992af:-7a2f + 62 + 459 + + + + + StartApp.opi + + true + + 1 + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 28 + + Action Button_6 + 0 + + + + + true + true + false + + + + Start + false + $(pv_name) +$(pv_value) + true + Action Button + 65 + 57b6f1f2:177f59992af:-7a27 + 128 + 459 + + + + + + + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 28 + ../../Resources/send.png + NoOp_1 + 0 + + + + + true + true + false + + + + Stop + false + $(pv_name) +$(pv_value) + true + Action Button + 79 + 57b6f1f2:177f59992af:-7a1f + 192 + 459 + + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Core/ES/ApplicationControl.opi b/core/base/tools/commander/workspace_template/Displays/Core/ES/ApplicationControl_General.opi similarity index 99% rename from core/base/tools/commander/workspace_template/Displays/Core/ES/ApplicationControl.opi rename to core/base/tools/commander/workspace_template/Displays/Core/ES/ApplicationControl_General.opi index 9cbad2392..ce0e56527 100644 --- a/core/base/tools/commander/workspace_template/Displays/Core/ES/ApplicationControl.opi +++ b/core/base/tools/commander/workspace_template/Displays/Core/ES/ApplicationControl_General.opi @@ -18,15 +18,11 @@ 500 true - /Displays/Resources/definitions.yaml + /Displays/Resources/definitions.yaml CFE-ES - App Control - - - =1 - - + true true true @@ -1989,7 +1985,7 @@ $(pv_value) 20 1 - app_name + app_name2 true @@ -2003,10 +1999,10 @@ $(pv_value) 1 true Label - 400 + 286 false 14292858:17759dd02e1:-7c65 - 78 + 26 12 @@ -2096,7 +2092,7 @@ $(pv_value) 28 - Action Button_12 + QueryAllBtn 0 diff --git a/core/base/tools/commander/workspace_template/Displays/Core/ES/Main.opi b/core/base/tools/commander/workspace_template/Displays/Core/ES/Main.opi index db728e706..e8f87b647 100644 --- a/core/base/tools/commander/workspace_template/Displays/Core/ES/Main.opi +++ b/core/base/tools/commander/workspace_template/Displays/Core/ES/Main.opi @@ -3884,7 +3884,7 @@ $(pv_value) - ApplicationControl_Generic.opi + ApplicationControl_General.opi true @@ -3925,7 +3925,7 @@ $(pv_value) - App Control (Generic) + App Control (General) false $(pv_name) $(pv_value) @@ -4055,7 +4055,7 @@ importPackage(Packages.org.yamcs.studio.script); importPackage(Packages.org.yamcs.studio.data); importPackage(org.csstudio.opibuilder.runmode) -var opi_to_open_path = FileUtil.workspacePathToSysPath("Displays/Core/ES/ApplicationControl.opi"); +var opi_to_open_path = FileUtil.workspacePathToSysPath("Displays/Core/ES/ApplicationControl_App.opi"); var macroInput = DataUtil.createMacrosInput(true); ScriptUtil.openOPI(display.getWidget("AppControl"), opi_to_open_path, RunModeService.DisplayMode.REPLACE, macroInput );]]> diff --git a/core/base/tools/commander/workspace_template/Displays/Core/ES/ReloadApp_App.opi b/core/base/tools/commander/workspace_template/Displays/Core/ES/ReloadApp_App.opi new file mode 100644 index 000000000..49c883c25 --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/Core/ES/ReloadApp_App.opi @@ -0,0 +1,239 @@ + + + + + false + -1 + -1 + + false + + + + 1.5.5.202103012118 + + + + 6 + 150 + + true + /Displays/Resources/definitions.yaml + + ReloadApp + + + + =1 + + + true + true + true + true + true + Display + 340 + 72a2bf2b:1508717c835:-7839 + -1 + -1 + + + + + + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 25 + ../../Resources/send.png + Action Button + 0 + + + + + true + true + false + + + + Reload + false + $(pv_name) +$(pv_value) + true + Action Button + 96 + 72a2bf2b:1508717c835:-77e3 + 120 + 72 + + + + false + + + + + + + 0 + 1 + true + + Default Bold + + + + + 20 + 1 + app_name + + + true + true + false + + + Reload Application + + true + 1 + true + Label + 231 + false + 72a2bf2b:1508717c835:-76c0 + 52 + 12 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_2 + + + true + true + false + + + File Name + + true + 1 + true + Label + 80 + false + 2285957:177658292c4:-7695 + 12 + 39 + + + + false + false + false + + + + false + + + + 1 + 1 + + true + + Default + + false + + + + 0 + 25 + 0 + false + 1.7976931348623157E308 + -1.7976931348623157E308 + false + inFileName + 0 + true + loc://FileName<VString>("") + + 0.0 + + + true + true + false + + + 0 + true + + + $(pv_name) +$(pv_value) + false + true + Text Input + 221 + 2285957:177658292c4:-767a + 102 + 36 + + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Core/ES/Resources/Scripts/AppControlInit.py b/core/base/tools/commander/workspace_template/Displays/Core/ES/Resources/Scripts/AppControlInit.py index 2477d1c12..22287957e 100644 --- a/core/base/tools/commander/workspace_template/Displays/Core/ES/Resources/Scripts/AppControlInit.py +++ b/core/base/tools/commander/workspace_template/Displays/Core/ES/Resources/Scripts/AppControlInit.py @@ -25,7 +25,7 @@ def is_opi_app_specific(): # for details. app_name = display.getMacroValue("APP") project_name = display.getMacroValue("PROJECT_NAME") - yaml_path = display.getMacroValue("YAML_PATH") + yaml_path = display.getMacroValue("CONFIG_REGISTRY") #if app_name is None or project_name is None or yaml_path is None: # is_specific = False @@ -57,20 +57,18 @@ def get_module(in_module, yaml_data): def main(): logging.basicConfig() logger = logging.getLogger('AppControl') - logger.warning("Step 1") if is_opi_app_specific() is True: - logger.warning("Step 2") app_name = display.getMacroValue("APP") logger.warning(app_name) project_name = display.getMacroValue("PROJECT_NAME") logger.warning(project_name) - yaml_path_macro = display.getMacroValue("YAML_PATH") + yaml_path_macro = display.getMacroValue("CONFIG_REGISTRY") logger.warning(yaml_path_macro) yaml_path = FileUtil.workspacePathToSysPath(yaml_path_macro) - yamnl_data = YAMLUtil.parseYAML(yaml_path) - module_data = get_module(app_name, yamnl_data) + yaml_data = YAMLUtil.parseYAML(yaml_path) + module_data = get_module(app_name, yaml_data) - display.getWidget("app_name").setPropertyValue("text", module_data['long_name'] + " - App Control") + display.getWidget("app_name").setPropertyValue("text", module_data['short_name'].upper() + " - App Control") main() diff --git a/core/base/tools/commander/workspace_template/Displays/Core/ES/Resources/Scripts/ReloadApplicationInit.py b/core/base/tools/commander/workspace_template/Displays/Core/ES/Resources/Scripts/ReloadApplicationInit.py new file mode 100644 index 000000000..3f7b38fa7 --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/Core/ES/Resources/Scripts/ReloadApplicationInit.py @@ -0,0 +1,74 @@ +""" +This script auto-generates event ids rows for each event id found in the YAML file. It essentially creates LinkingContainer[1] +widgets and uses EventRecord.opi to generates a container widget for each event in airliner confuration. + +[1]:https://docs.yamcs.org/yamcs-studio/ +""" +# import java packages +from org.csstudio.opibuilder.scriptUtil import PVUtil, ScriptUtil, FileUtil, WidgetUtil, DataUtil +from org.csstudio.opibuilder.scriptUtil import YAMLUtil +from org.eclipse.swt.graphics import RGB + +# import python packages +import logging + + +def is_opi_app_specific(): + """ + Determine if the OPI is opened in application specific or generic mode. + + :return bool: True if this opi is application specific. False otherwise. + """ + is_specific = True + + # getMacroValue returns a unicode object, NOT an str object. See "5.6.1. String Methods" of the python2.7.18 docs + # for details. + app_name = display.getMacroValue("APP") + project_name = display.getMacroValue("PROJECT_NAME") + yaml_path = display.getMacroValue("CONFIG_REGISTRY") + + #if app_name is None or project_name is None or yaml_path is None: + # is_specific = False + + return is_specific + + +def get_module(in_module, yaml_data): + """ + Get the module data from yaml_data dict. Especially useful for when the modules are structured in + a hierarchical fashion like our config files. + + :param in_module(str): The name of the module to look for. + :param yaml_data(dcit): The dictionary that has the configruation data. + + :return dict: The dictionary with the data of module. + """ + module_data = None + for module in yaml_data['modules']: + # FIXME: More succinct way of doing this? + if 'modules' in yaml_data['modules'][module]: + module_data = get_module(in_module, yaml_data['modules'][module]) + if in_module == module: + module_data = yaml_data['modules'][in_module] + + return module_data + + +def main(): + logging.basicConfig() + logger = logging.getLogger('ReloadApp') + if is_opi_app_specific() is True: + app_name = display.getMacroValue("APP") + logger.warning(app_name) + project_name = display.getMacroValue("PROJECT_NAME") + logger.warning(project_name) + yaml_path_macro = display.getMacroValue("CONFIG_REGISTRY") + logger.warning(yaml_path_macro) + yaml_path = FileUtil.workspacePathToSysPath(yaml_path_macro) + + yaml_data = YAMLUtil.parseYAML(yaml_path) + module_data = get_module(app_name, yaml_data) + + display.getWidget("app_name").setPropertyValue("text", module_data["short_name"].upper() + " - Reload App") + +main() diff --git a/core/base/tools/commander/workspace_template/Displays/Core/EVS/Main.opi b/core/base/tools/commander/workspace_template/Displays/Core/EVS/Main.opi index 564404902..60525b7db 100644 --- a/core/base/tools/commander/workspace_template/Displays/Core/EVS/Main.opi +++ b/core/base/tools/commander/workspace_template/Displays/Core/EVS/Main.opi @@ -22,7 +22,7 @@ /Displays/Core/EVS/Events.opi Displays - CFE-EVS - Main + CFE-EVS true diff --git a/core/base/tools/commander/workspace_template/Displays/Core/SB/Main.opi b/core/base/tools/commander/workspace_template/Displays/Core/SB/Main.opi index d792b6fda..cc4511ddd 100644 --- a/core/base/tools/commander/workspace_template/Displays/Core/SB/Main.opi +++ b/core/base/tools/commander/workspace_template/Displays/Core/SB/Main.opi @@ -22,7 +22,7 @@ /Displays/Core/EVS/Events.opi Displays - CFE-SB - Main + CFE-SB true diff --git a/core/base/tools/commander/workspace_template/Displays/Core/SB/ViewAllSubReports.opi b/core/base/tools/commander/workspace_template/Displays/Core/SB/ViewAllSubReports.opi index 5eb46de9d..fd26c50ca 100644 --- a/core/base/tools/commander/workspace_template/Displays/Core/SB/ViewAllSubReports.opi +++ b/core/base/tools/commander/workspace_template/Displays/Core/SB/ViewAllSubReports.opi @@ -10,7 +10,7 @@ - 1.5.3 + 1.5.5.202103012118 @@ -19,7 +19,7 @@ true - + CFE-SB - Subs true diff --git a/core/base/tools/commander/workspace_template/Displays/Core/SB/ViewSubReport.opi b/core/base/tools/commander/workspace_template/Displays/Core/SB/ViewSubReport.opi index fa19c7612..3fe730a04 100644 --- a/core/base/tools/commander/workspace_template/Displays/Core/SB/ViewSubReport.opi +++ b/core/base/tools/commander/workspace_template/Displays/Core/SB/ViewSubReport.opi @@ -10,7 +10,7 @@ - 1.5.3 + 1.5.5.202103012118 @@ -19,7 +19,7 @@ true - + CFE-SB - Sub true diff --git a/core/base/tools/commander/workspace_template/Displays/Core/TBL/AbortTableLoad.opi b/core/base/tools/commander/workspace_template/Displays/Core/TBL/AbortTableLoad.opi index b90c2336b..6d11e90ce 100644 --- a/core/base/tools/commander/workspace_template/Displays/Core/TBL/AbortTableLoad.opi +++ b/core/base/tools/commander/workspace_template/Displays/Core/TBL/AbortTableLoad.opi @@ -10,7 +10,7 @@ - 1.5.3 + 1.5.5.202103012118 @@ -19,7 +19,7 @@ true - CFE-TBL - Abort Table Load + CFE-TBL - Abort true diff --git a/core/base/tools/commander/workspace_template/Displays/Core/TBL/ActivateTable.opi b/core/base/tools/commander/workspace_template/Displays/Core/TBL/ActivateTable.opi index 3619685f6..0357c9132 100644 --- a/core/base/tools/commander/workspace_template/Displays/Core/TBL/ActivateTable.opi +++ b/core/base/tools/commander/workspace_template/Displays/Core/TBL/ActivateTable.opi @@ -10,7 +10,7 @@ - 1.5.3 + 1.5.5.202103012118 @@ -19,7 +19,7 @@ true - CFE-TBL - Activate Table + CFE-TBL - Activate true diff --git a/core/base/tools/commander/workspace_template/Displays/Core/TBL/DumpRegistry.opi b/core/base/tools/commander/workspace_template/Displays/Core/TBL/DumpRegistry.opi index 852d8f843..056c81ecc 100644 --- a/core/base/tools/commander/workspace_template/Displays/Core/TBL/DumpRegistry.opi +++ b/core/base/tools/commander/workspace_template/Displays/Core/TBL/DumpRegistry.opi @@ -10,7 +10,7 @@ - 1.5.3 + 1.5.5.202103012118 @@ -19,7 +19,7 @@ true - CFE-TBL - Dump Registry + CFE-TBL - Dump Reg true diff --git a/core/base/tools/commander/workspace_template/Displays/Core/TBL/Main.opi b/core/base/tools/commander/workspace_template/Displays/Core/TBL/Main.opi index 3b23c9d5b..a1f95621e 100644 --- a/core/base/tools/commander/workspace_template/Displays/Core/TBL/Main.opi +++ b/core/base/tools/commander/workspace_template/Displays/Core/TBL/Main.opi @@ -22,7 +22,7 @@ /Displays/Core/EVS/Events.opi Displays - CFE-TBL - Main + CFE-TBL true diff --git a/core/base/tools/commander/workspace_template/Displays/Core/TBL/ValidateTable.opi b/core/base/tools/commander/workspace_template/Displays/Core/TBL/ValidateTable.opi index 4753732d6..232be8d9b 100644 --- a/core/base/tools/commander/workspace_template/Displays/Core/TBL/ValidateTable.opi +++ b/core/base/tools/commander/workspace_template/Displays/Core/TBL/ValidateTable.opi @@ -10,7 +10,7 @@ - 1.5.3 + 1.5.5.202103012118 @@ -19,7 +19,7 @@ true - CFE-TBL - Validate Table + CFE-TBL - Validate true diff --git a/core/base/tools/commander/workspace_template/Displays/Core/TBL/ViewRegistry.opi b/core/base/tools/commander/workspace_template/Displays/Core/TBL/ViewRegistry.opi index c303cd0bf..5f998d7a3 100644 --- a/core/base/tools/commander/workspace_template/Displays/Core/TBL/ViewRegistry.opi +++ b/core/base/tools/commander/workspace_template/Displays/Core/TBL/ViewRegistry.opi @@ -10,7 +10,7 @@ - 1.5.3 + 1.5.5.202103012118 @@ -19,7 +19,7 @@ true - CFE-TBL - Write Map Info + CFE-TBL - Registry true From 268bc7100bff5c73ccf30b480ff3489cf3e315bf Mon Sep 17 00:00:00 2001 From: lorenzo-gomez-windhover Date: Wed, 3 Mar 2021 15:25:23 -0600 Subject: [PATCH 207/370] -Fixed sensor app(it builds now) --- apps/sens/fsw/for_build/CMakeLists.txt | 2 +- apps/sens/fsw/src/{sens_symbols.c => sens_symbols.cpp} | 6 ++++-- 2 files changed, 5 insertions(+), 3 deletions(-) rename apps/sens/fsw/src/{sens_symbols.c => sens_symbols.cpp} (57%) diff --git a/apps/sens/fsw/for_build/CMakeLists.txt b/apps/sens/fsw/for_build/CMakeLists.txt index c67c9db9f..24c12d7b1 100644 --- a/apps/sens/fsw/for_build/CMakeLists.txt +++ b/apps/sens/fsw/for_build/CMakeLists.txt @@ -7,7 +7,7 @@ buildliner_add_app_def(sens ${CMAKE_CURRENT_SOURCE_DIR}/../src/sens_config_utils.cpp ${CMAKE_CURRENT_SOURCE_DIR}/../src/sens_events.h ${CMAKE_CURRENT_SOURCE_DIR}/../src/sens_msg.h - ${CMAKE_CURRENT_SOURCE_DIR}/../src/sens_symbols.c + ${CMAKE_CURRENT_SOURCE_DIR}/../src/sens_symbols.cpp ${CMAKE_CURRENT_SOURCE_DIR}/../src/sens_tbldefs.h ${CMAKE_CURRENT_SOURCE_DIR}/../src/sens_version.h diff --git a/apps/sens/fsw/src/sens_symbols.c b/apps/sens/fsw/src/sens_symbols.cpp similarity index 57% rename from apps/sens/fsw/src/sens_symbols.c rename to apps/sens/fsw/src/sens_symbols.cpp index 81d788267..879dc53ae 100644 --- a/apps/sens/fsw/src/sens_symbols.c +++ b/apps/sens/fsw/src/sens_symbols.cpp @@ -1,7 +1,9 @@ #include "sens_app.h" +#ifdef __cplusplus extern "C" { - +#endif SENS_NoArgCmd_t SENS_NoArgCmd_S; - +#ifdef __cplusplus } +#endif From f61ae04127a4f5c4a6580d698c26b38a905c23d3 Mon Sep 17 00:00:00 2001 From: lorenzo-gomez-windhover Date: Thu, 4 Mar 2021 09:43:02 -0600 Subject: [PATCH 208/370] -Typo --- .../Displays/Core/ES/Resources/Scripts/ReloadApplicationInit.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/base/tools/commander/workspace_template/Displays/Core/ES/Resources/Scripts/ReloadApplicationInit.py b/core/base/tools/commander/workspace_template/Displays/Core/ES/Resources/Scripts/ReloadApplicationInit.py index 3f7b38fa7..4b3b818c5 100644 --- a/core/base/tools/commander/workspace_template/Displays/Core/ES/Resources/Scripts/ReloadApplicationInit.py +++ b/core/base/tools/commander/workspace_template/Displays/Core/ES/Resources/Scripts/ReloadApplicationInit.py @@ -1,6 +1,6 @@ """ This script auto-generates event ids rows for each event id found in the YAML file. It essentially creates LinkingContainer[1] -widgets and uses EventRecord.opi to generates a container widget for each event in airliner confuration. +widgets and uses EventRecord.opi to generates a container widget for each event in airliner configuration. [1]:https://docs.yamcs.org/yamcs-studio/ """ From 1820fbabde050a4881022bbc77ba19aef261b2d4 Mon Sep 17 00:00:00 2001 From: lorenzo-gomez-windhover Date: Thu, 4 Mar 2021 12:28:14 -0600 Subject: [PATCH 209/370] -Added YAML_PATH to project --- .../tools/commander/workspace_template/Displays/.project | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/core/base/tools/commander/workspace_template/Displays/.project b/core/base/tools/commander/workspace_template/Displays/.project index c28a849db..2f1f77372 100644 --- a/core/base/tools/commander/workspace_template/Displays/.project +++ b/core/base/tools/commander/workspace_template/Displays/.project @@ -8,4 +8,10 @@ + + + YAML_PATH + $%7BPROJECT_LOC%7D/Resources/definitions.yaml + + From d389e289f29b1d19cb3c017479ff5dc481750eda Mon Sep 17 00:00:00 2001 From: Mathew Benson Date: Mon, 8 Mar 2021 16:00:30 -0600 Subject: [PATCH 210/370] Removed the private FreeRTOS OSAL and private OBC-CPD PSP submodules. --- .gitmodules | 6 ------ core/osal/freertos | 1 - core/psp/obc-cpd | 1 - 3 files changed, 8 deletions(-) delete mode 160000 core/osal/freertos delete mode 160000 core/psp/obc-cpd diff --git a/.gitmodules b/.gitmodules index 8981e1ffa..de740c8aa 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,12 +1,6 @@ [submodule "core/tools/auto-yamcs"] path = core/tools/auto-yamcs url = https://github.com/WindhoverLabs/auto-yamcs.git -[submodule "core/psp/obc-cpd"] - path = core/psp/obc-cpd - url = git@github.com:WindhoverLabs/psp-obc-cpd -[submodule "core/osal/freertos"] - path = core/osal/freertos - url = git@github.com:WindhoverLabs/osal-freertos [submodule "tools/sitl_gazebo"] path = tools/sitl_gazebo url = https://github.com/WindhoverLabs/sitl_gazebo.git diff --git a/core/osal/freertos b/core/osal/freertos deleted file mode 160000 index fad6c39e4..000000000 --- a/core/osal/freertos +++ /dev/null @@ -1 +0,0 @@ -Subproject commit fad6c39e4ee130bd0aae8075318729b1b97a057d diff --git a/core/psp/obc-cpd b/core/psp/obc-cpd deleted file mode 160000 index f6ead00f1..000000000 --- a/core/psp/obc-cpd +++ /dev/null @@ -1 +0,0 @@ -Subproject commit f6ead00f140b0407e3bc56cf7806ac368b76baac From 88b5a9691af06573fa8359a6242112e3fab083e3 Mon Sep 17 00:00:00 2001 From: Mathew Benson Date: Mon, 8 Mar 2021 18:46:46 -0600 Subject: [PATCH 211/370] Changes in support of vitis integration and the CPD build. --- config/obc/cpd/inc/ci_platform_cfg.h | 154 ++++++++ config/obc/cpd/inc/sch_platform_cfg.h | 294 +++++++++++++++ config/obc/cpd/inc/to_platform_cfg.h | 281 ++++++++++++++ config/obc/cpd/set-vars.cmake | 4 +- config/obc/cpd/target/CMakeLists.txt | 453 +++++++++++------------ config/obc/cpd/target/cfe_es_startup.scr | 8 +- 6 files changed, 947 insertions(+), 247 deletions(-) create mode 100644 config/obc/cpd/inc/ci_platform_cfg.h create mode 100644 config/obc/cpd/inc/sch_platform_cfg.h create mode 100644 config/obc/cpd/inc/to_platform_cfg.h diff --git a/config/obc/cpd/inc/ci_platform_cfg.h b/config/obc/cpd/inc/ci_platform_cfg.h new file mode 100644 index 000000000..3f329b981 --- /dev/null +++ b/config/obc/cpd/inc/ci_platform_cfg.h @@ -0,0 +1,154 @@ +#ifndef CI_PLATFORM_CFG_H +#define CI_PLATFORM_CFG_H + +#ifdef __cplusplus +extern "C" { +#endif + + +/* +** ci Platform Configuration Parameter Definitions +*/ + +/** \brief Mission specific version number for CI application +** +** \par Description: +** An application version number consists of four parts: +** major version number, minor version number, revision +** number and mission specific revision number. The mission +** specific revision number is defined here and the other +** parts are defined in "ci_version.h". +** +** \par Limits: +** Must be defined as a numeric value that is greater than +** or equal to zero. +*/ +#define CI_MISSION_REV (1) + +/** \brief Pipe depth for the Scheduler pipe +** +** \par Limits: +** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. +*/ +#define CI_SCH_PIPE_DEPTH (2) + +/** \brief Pipe name for the Scheduler pipe +** +** \par Limits: +** Note, this name must fit in OS_MAX_API_NAME. +*/ +#define CI_SCH_PIPE_NAME ("CI_SCH_PIPE") + +/** \brief The SB pend behavior type for the Scheduler pipe. +** +** \par Limits: +** One of: CFE_SB_POLL, CFE_SB_PEND_FOREVER, or the +** number of milliseconds to wait for a new message (recommended). +** Note, using CFE_SB_PEND_FOREVER may cause an unresponsive +** application if no messages arrive on this pipe. +*/ +#define CI_SCH_PIPE_PEND_TIME (2000) + +/** \brief The number of WAKEUP messages to reserve on the Scheduler pipe. +** +** \par Limits: +** minimum of 1, max limited to CFE_SB_MAX_PIPE_DEPTH-1. Note the +** CI_SCH_PIPE_WAKEUP_RESERVED and CI_SCH_PIPE_SEND_HK_RESERVED +** must be less than CI_SCH_PIPE_DEPTH. +*/ +#define CI_SCH_PIPE_WAKEUP_RESERVED (1) + +/** \brief The number of SEND_HK messages to reserve on the Scheduler pipe. +** +** \par Limits: +** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. Note the +** CI_SCH_PIPE_WAKEUP_RESERVED and CI_SCH_PIPE_SEND_HK_RESERVED +** must be less than CI_SCH_PIPE_DEPTH. +*/ +#define CI_SCH_PIPE_SEND_HK_RESERVED (1) + +/** \brief The number of PROCESS_TIMEOUT messages to reserve on the Scheduler pipe. +** +** \par Limits: +** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. +*/ +#define CI_SCH_PIPE_PROC_TIMEOUT_RESERVED (1) + +/** \brief Pipe depth for the command pipe +** +** \par Limits: +** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. +*/ +#define CI_CMD_PIPE_DEPTH (4) + +/** \brief Pipe name for the Scheduler pipe +** +** \par Limits: +** Note, this name must fit in OS_MAX_API_NAME. +*/ +#define CI_CMD_PIPE_NAME ("CI_CMD_PIPE") + +/** \brief The config table default filename +** +** \par Limits: +** The length of each string, including the NULL terminator cannot exceed +** the #OS_MAX_PATH_LEN value. +*/ +#define CI_CONFIG_TABLE_FILENAME ("/ram/apps/ci_config.tbl") + +/** \brief The timeout table default filename +** +** \par Limits: +** The length of each string, including the NULL terminator cannot exceed +** the #OS_MAX_PATH_LEN value. +*/ +#define CI_TIMEOUT_TABLE_FILENAME ("/ram/apps/ci_timeout.tbl") + +/** \brief The timeout value, in milliseconds, to wait for ES application startup sync. +** +** \par Limits: +** This parameter must be at least 1000 (ms). +*/ +#define CI_STARTUP_TIMEOUT_MSEC (5000) + +/** \brief CI Ingest Mode */ +#define CI_INGEST_MODE (CI_BHV_OPTIMISTIC) + +/** \brief CI Listener Task Delay +** +** \note The main ingest loop is a while loop and sleeps for this many +** milliseconds each iteration. + */ +#define CI_LISTENER_TASK_DELAY (100) + +/** \brief CI Lister Task Stack Size */ +#define CI_LISTENER_TASK_STACK_SIZE (160000) + +/** \brief CI Lister Task Flags for CFE_ES_CreateChildTask() */ +#define CI_LISTENER_TASK_FLAGS (OS_ENABLE_CORE_0) + +/** \brief CI Lister Task Priority */ +#define CI_LISTENER_TASK_PRIORITY (109) + +/** \brief The largest size message CI can ingest */ +#define CI_MAX_CMD_INGEST (CFE_SB_MAX_SB_MSG_SIZE) + +/** \brief Listener task name */ +#define CI_LISTENER_TASK_NAME ("CI_LISTENER") + +/** \brief CI config table mutex name */ +#define CI_CFG_TBL_MUTEX_NAME ("CI_CFG_TBL_MUTEX") + +/** \brief CI timeout table mutex name */ +#define CI_TIME_TBL_MUTEX_NAME ("CI_TIME_TBL_MUTEX") + +#ifdef __cplusplus +} +#endif + +#endif /* CI_PLATFORM_CFG_H */ + +/************************/ +/* End of File Comment */ +/************************/ + diff --git a/config/obc/cpd/inc/sch_platform_cfg.h b/config/obc/cpd/inc/sch_platform_cfg.h new file mode 100644 index 000000000..bc3e5d1cd --- /dev/null +++ b/config/obc/cpd/inc/sch_platform_cfg.h @@ -0,0 +1,294 @@ +#ifndef SCH_PLATFORM_CFG_H +#define SCH_PLATFORM_CFG_H + +#include "osapi.h" + + +/************************************************************************* +** Macro definitions +**************************************************************************/ + +/** +** \schcfg Software Bus Command Pipe Depth +** +** \par Description: +** Dictates the number of messages to SCH that can be queued while awaiting +** processing by the SCH Application. +** +** \par Limits +** Must be greater than zero +*/ +#define SCH_PIPE_DEPTH 12 /**< \brief SCH Command Pipe Depth */ + +#define SCH_AD_PIPE_DEPTH 3 +#define SCH_AD_CHILD_TASK_PRIORITY 37 +#define SCH_AD_CHILD_TASK_FLAGS OS_ENABLE_CORE_0 + +/*#define SCH_RTM_SUPPORTED*/ + +/* +** Schedule table definitions... +*/ +/** +** \schcfg Minor Frame Frequency (in Hz) +** +** \par Description: +** Dictates the number of minor frame slots within each Major Frame. +** +** \par Limits +** Must be 2 or more and less than 65536 +*/ +#define SCH_TOTAL_SLOTS 250 /* SCH wake-up rate (Hz) */ + + +/** +** \schcfg Maximum number of Activities per Minor Frame +** +** \par Description: +** Dictates the number of activities that can be defined for each Minor Frame. +** +** \par Limits +** Must be at least one +*/ +#define SCH_ENTRIES_PER_SLOT 15 + + +/** +** \schcfg Maximum Number of Message Definitions in Message Definition Table +** +** \par Description: +** Dictates the number of messages that can be defined in Message Definition Table. +** +** \par Limits +** Must be at least one +*/ +#define SCH_MAX_MESSAGES 128 + +/** +** \schcfg Maximum Message ID allowed in Message Definition Table +** +** \par Description: +** Dictates the maximum message ID that can be used in the Message Definition Table. +** +** \par Limits +** Must be less than or equal to SCH_MDT_MAX_MSG_ID and greater than or equal to 0 +*/ +#define SCH_MDT_MIN_MSG_ID 0 + +/** +** \schcfg Minimum Message ID allowed in Message Definition Table +** +** \par Description: +** Dictates the minimum message ID that can be used in the Message Definition Table. +** +** \par Limits +** Must be less than or equal to #CFE_SB_HIGHEST_VALID_MSGID and greater than SCH_MDT_MIN_MSG_ID +*/ +#define SCH_MDT_MAX_MSG_ID CFE_SB_HIGHEST_VALID_MSGID + + +/** +** \schcfg Maximum Length, in Words, of a Message +** +** \par Description: +** Dictates the maximum number of words that can be assigned to a particular message +** in the Message Definition Table. +** +** \par Limits +** Must be at least large enough to hold the smallest possible message header +* ** (see #CFE_SB_TLM_HDR_SIZE and #CFE_SB_CMD_HDR_SIZE) +*/ +#define SCH_MAX_MSG_WORDS 64 /* max message length (in words) */ + + +/* +** Limits for how far we can get behind and how much we can do at once... +*/ +/** +** \schcfg Maximum Number of slots allowed for catch-up before skipping +** +** \par Description: +** Dictates the number of Minor Frames that will be processed in "Catch Up" +** mode before giving up and skipping ahead. +** +** \par Limits +** +*/ +#define SCH_MAX_LAG_COUNT (SCH_TOTAL_SLOTS / 2) + + +/** +** \schcfg Maximum Number of Slots to be processed when in "Catch Up" mode +** +** \par Description: +** Dictates the maximum number of slots SCH will process when trying to +** "Catch Up" to the correct slot for the current time. +** +** \par Limits +** Must be at least one +*/ +#define SCH_MAX_SLOTS_PER_WAKEUP 5 + +/* +** Conversion factor for how many microseconds in a wake-up period... +*/ +/** +** \schcfg Major Frame Period (in microseconds) +** +** \par Description: +** Dictates the number microseconds in a Major Frame. +** +** \par Limits +** Must be greater than zero +*/ +#define SCH_MICROS_PER_MAJOR_FRAME 1000000 + + +/** +** \schcfg Additional time allowed in Sync Slot to wait for Major Frame Sync (in microseconds) +** +** \par Description: +** Dictates the additional time allowed in the Syncronization Slot +** to allow the Major Frame Sync signal to be received and re-synchronize +** processing. +** +** \par Limits +** Must be less than the normal slot period +*/ +#define SCH_SYNC_SLOT_DRIFT_WINDOW 500 + + +/** +** \schcfg Time, in milliseconds, to wait for all applications to be started and ready to run +** +** \par Description: +** Dictates the timeout for the #CFE_ES_WaitForStartupSync call that SCH uses to wait +** for all of the Applications specified in the startup script to finish initialization. +** SCH will wait this amount of time before assuming all startup script applications have +** been started and will then begin nominal schedule processing. +** +** \par Limits +** None +*/ +#define SCH_STARTUP_SYNC_TIMEOUT 50000 + + +/** +** \schcfg Time, in microseconds, to wait for first Major Frame Sync to arrive +** +** \par Description: +** Dictates the time allowed for the first Major Frame sync signal to arrive +** before assuming it is not going to occur and switching to a freewheeling +** mode. +** +** \par Limits +** Must be greater than or equal to the Major Frame Period +*/ +#define SCH_STARTUP_PERIOD (5*SCH_MICROS_PER_MAJOR_FRAME) + + +/* +** Specifies the limit on the number of consecutive noisy Major Frame signals +** before we begin to ignore them. +*/ +/** +** \schcfg Maximum Number of consecutive Noisy Major Frame signals before they are ignored +** +** \par Description: +** Dictates the number of consecutive "Noisy" Major Frame Signals (i.e. - signals that +** occur outside the expected window of their occurence) until the Major Frame signal +** is automatically ignored and the Minor Frame Timer is used instead. +** +** \par Limits +** This value should never be set to less than two because a single "noisy" Major +** Frame signal is likely when turning on or switching the 1 Hz signal on the spacecraft. +*/ +#define SCH_MAX_NOISY_MAJORF 2 + + +/** +** \schcfg Scheduler API Library Usage Status +** +** \par Description: +** Determines whether or not the Scheduler application is using the API library allowing +** for external tasks to disable and enable schedule processing. Note that if the library +** is to be used it must be generated as a separate object, and loaded prior to the +** appplication. +** +** \par Limits +** This value must either be 0 when not using or including the library, or 1 if the library +** is going to be used. +*/ +#define SCH_LIB_PRESENCE 1 + + +/** +** \schcfg Scheduler API Library Initial Inhibition Count +** +** \par Description: +** Sets the number of times the scheduler must be enabled following library initialization. +** This allows the scheduler to come up either enabled (set to 0) or disabled (set to +** a value greater than or equal to 1) +** +** \par Limits +** This value must be an unsigned 32 bit integer. +*/ +#define SCH_LIB_DIS_CTR 0 + + +/** +** \schcfg Default SCH Schedule Definition Table Filename +** +** \par Description: +** The value of this constant defines the default filename of +** the SCH Schedule Definition Table +** +** \par Limits +** The length of each string, including the NULL terminator cannot exceed +** the #OS_MAX_PATH_LEN value. +*/ + +//#define SCH_SCHEDULE_FILENAME "/cf/apps/sch_def_schtbl.tbl" +#define SCH_SCHEDULE_FILENAME "/ram/apps/sch_def_schtbl.tbl" + + +/** +** \schcfg Default SCH Message Definition Table Filename +** +** \par Description: +** The value of this constant defines the default filename of the +** SCH Message Definition Table +** +** \par Limits +** The length of each string, including the NULL terminator cannot exceed +** the #OS_MAX_PATH_LEN value. +*/ + +#define SCH_MESSAGE_FILENAME "/ram/apps/sch_def_msgtbl.tbl" + + +/** \schcfg Mission specific version number for SCH application +** +** \par Description: +** An application version number consists of four parts: +** major version number, minor version number, revision +** number and mission specific revision number. The mission +** specific revision number is defined here and the other +** parts are defined in "sch_version.h". +** +** \par Limits: +** Must be defined as a numeric value that is greater than +** or equal to zero. +*/ + +#define SCH_MISSION_REV 0 + +#define SCH_DEADLINES_PER_SLOT 5 + + + +#endif /* SCH_PLATFORM_CFG_H */ + +/************************/ +/* End of File Comment */ +/************************/ diff --git a/config/obc/cpd/inc/to_platform_cfg.h b/config/obc/cpd/inc/to_platform_cfg.h new file mode 100644 index 000000000..e8fd272f5 --- /dev/null +++ b/config/obc/cpd/inc/to_platform_cfg.h @@ -0,0 +1,281 @@ +#ifndef TO_PLATFORM_CFG_H +#define TO_PLATFORM_CFG_H + +#ifdef __cplusplus +extern "C" { +#endif + +#include "cfe_platform_cfg.h" + +/* +** Platform Configuration Parameter Definitions +*/ + + +/** \tocfg Child task flags +** +** \par Description: +** These are optional flags passed to the #CFE_ES_CreateChildTask +** function when creating the CFE child task. +** +*/ +#define TO_CUSTOM_CHILD_TASK_FLAGS (OS_ENABLE_CORE_0) + + +/** \tocfg Child task stack size +** +** \par Description: +** Child task stack size passed to the #CFE_ES_CreateChildTask +** function when creating the CFE child task. Stack size is in +** bytes. +** +*/ +#define TO_CUSTOM_TASK_STACK_SIZE (131072) + + +/** \tocfg Default telemetry destination IP address +** +** \par Description: +** Default IP address to send the telemetry stream to. This is default +** only and can be changed by command at runtime. +** +*/ +#define TO_UDP_CHANNEL_ADDRESS "127.0.0.1" + + +/** \tocfg Default telemetry destination UDP port +** +** \par Description: +** Default UDP port to send the telemetry stream to. This is default +** only and can be changed by command at runtime. +** +*/ +#define TO_UDP_CHANNEL_PORT (5011) + + +/** \tocfg Message Flow packet limit +** +** \par Description: +** This is the maximum number of message flow entries that can fit in +** a message flow diagnostic message. +** +*/ +#define TO_MSG_FLOW_PKT_LIMIT (200) + + +/** \tocfg Maximum message length +** +** \par Description: +** The maximum size that an output telemetry message can be. This is in +** bytes. If a message exceeds this size, it will be dropped by the +** classifier. +** +*/ +#define TO_MAX_MSG_LENGTH (32767) + +/** \tocfg The UDP channel's CF throttling semaphore name +** +** \par Limits: +** Two channels in CF must not have the same semaphore name. This must be unique +** compared to other channels' throttling semaphores. +*/ +#define TO_UDP_CF_THROTTLE_SEM_NAME "TO_CF_CH0_SEM" + + +/** \tocfg The UDP channel Name +*/ +#define TO_UDP_CHANNEL_NAME "UDP" + + + +/** \tocfg The UDP channel's default and maximum value for the CF + * throttling semaphore +** +** \par Limits: +** Must not be larger than the TO_DATA_PIPE_DEPTH +*/ +#define TO_UDP_CF_MAX_PDUS (4) + + +/** \tocfg Mission specific version number for TO application +** +** \par Description: +** An application version number consists of four parts: +** major version number, minor version number, revision +** number and mission specific revision number. The mission +** specific revision number is defined here and the other +** parts are defined in "to_version.h". +** +** \par Limits: +** Must be defined as a numeric value that is greater than +** or equal to zero. +*/ +#define TO_MISSION_REV (1) + +/** \tocfg Pipe depth for the Scheduler pipe +** +** \par Limits: +** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. +*/ +#define TO_SCH_PIPE_DEPTH (2) + +/** \tocfg Pipe name for the Scheduler pipe +** +** \par Limits: +** Note, this name must fit in OS_MAX_API_NAME. +*/ +#define TO_SCH_PIPE_NAME ("TO_SCH_PIPE") + +/** \tocfg The SB pend behavior type for the Scheduler pipe. +** +** \par Limits: +** One of: CFE_SB_POLL, CFE_SB_PEND_FOREVER, or the +** number of milliseconds to wait for a new message (recommended). +** Note, using CFE_SB_PEND_FOREVER may cause an unresponsive +** application if no messages arrive on this pipe. +*/ +#define TO_SCH_PIPE_PEND_TIME (2000) + +/** \tocfg The number of WAKEUP messages to reserve on the Scheduler pipe. +** +** \par Limits: +** minimum of 1, max limited to CFE_SB_MAX_PIPE_DEPTH-1. Note the +** TO_SCH_PIPE_WAKEUP_RESERVED and TO_SCH_PIPE_SEND_HK_RESERVED +** must be less than TO_SCH_PIPE_DEPTH. +*/ +#define TO_SCH_PIPE_WAKEUP_RESERVED (1) + +/** \tocfg The number of SEND_HK messages to reserve on the Scheduler pipe. +** +** \par Limits: +** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. Note the +** TO_SCH_PIPE_WAKEUP_RESERVED and TO_SCH_PIPE_SEND_HK_RESERVED +** must be less than TO_SCH_PIPE_DEPTH. +*/ +#define TO_SCH_PIPE_SEND_HK_RESERVED (1) + +/** \tocfg Pipe depth for the command pipe +** +** \par Limits: +** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. +*/ +#define TO_CMD_PIPE_DEPTH (4) + +/** \tocfg Pipe name for the Scheduler pipe +** +** \par Limits: +** Note, this name must fit in OS_MAX_API_NAME. +*/ +#define TO_CMD_PIPE_NAME ("TO_CMD_PIPE") + +/** \tocfg Pipe depth for the data pipe +** +** \par Limits: +** minimum of 1, max of CFE_SB_MAX_PIPE_DEPTH. +*/ +#define TO_DATA_PIPE_DEPTH (CFE_SB_MAX_PIPE_DEPTH) + +/** \tocfg The config table default filename +** +** \par Limits: +** The length of each string, including the NULL terminator cannot exceed +** the #OS_MAX_PATH_LEN value. +*/ +#define TO_UDP_CONFIG_TABLE_FILENAME ("/ram/apps/to_udp_cfg.tbl") + + +#define TO_MAX_MEMPOOL_BLK_SIZES (8) + +/** +** \cfeescfg Define TO Memory Pool Block Sizes +** +** \par Description: +** TO Memory Pool Block Sizes +** +** \par Limits +** These sizes MUST be increasing and MUST be an integral multiple of 4. +** The number of block sizes defined cannot exceed +** #CFE_ES_MAX_MEMPOOL_BLOCK_SIZES +*/ +#define TO_MEM_BLOCK_SIZE_01 32 +#define TO_MEM_BLOCK_SIZE_02 64 +#define TO_MEM_BLOCK_SIZE_03 128 +#define TO_MEM_BLOCK_SIZE_04 256 +#define TO_MEM_BLOCK_SIZE_05 512 +#define TO_MEM_BLOCK_SIZE_06 2048 +#define TO_MEM_BLOCK_SIZE_07 8192 +#define TO_MAX_BLOCK_SIZE (TO_MEM_BLOCK_SIZE_07 + TO_MEM_BLOCK_SIZE_07) + +/** + * \tocfg Defines the table identification name used for table registration + * of the configuration table. + */ +#define TO_UDP_CONFIG_TABLENAME "UDP_CFG" + +/** + * \tocfg Defines the table identification name used for table registration + * of the dump table. + */ +#define TO_UDP_DUMP_TABLENAME "UDP_DMP" + +/** \tocfg The timeout value, in milliseconds, to wait for ES application startup sync. +** +** \par Limits: +** This parameter must be at least 1000 (ms). +*/ +#define TO_STARTUP_TIMEOUT_MSEC (1000) + +/** \tocfg Maximum number of messages to classify per processing frame. +*/ +#define TO_MAX_MSGS_OUT_PER_FRAME (100) + +/** \tocfg Maximum number of messages to classify per processing frame. +*/ + +/** \tocfg Maximum number configurable channels. + * +** \par Description: This is normally set to 1. +*/ +#define TO_MAX_CHANNELS (1) + +/** \tocfg Channel output queue depth. + * +** \par Description: This defines how many messages can be queued into the +** channel output queue by the scheduler. +*/ +#define TO_OUTPUT_QUEUE_DEPTH (20) + +/** \tocfg Development UDP channel task priority. + * +** \par Description: This defines the priority of the development UDP +** child task. +*/ +#define TO_UDP_CHANNEL_TASK_PRIORITY (119) + +/** +** \tocfg Number of bytes in the Message Memory Pool +** +** \par Description: +** The message memory pool contains the memory needed for the queued messages packets. +** The queued messages are dynamically allocated from this pool when the +** messages are received and queued, and deallocated when messages are transmitted +** or a new table is loaded. +** +** \par Limits +** The Telemetry Output app does not place a limit on this parameter, but there is +** an overhead cost in the memory pool. The value must be larger than what is +** needed. +*/ +#define TO_NUM_BYTES_IN_MEM_POOL (200 * TO_MAX_BLOCK_SIZE) + + +#ifdef __cplusplus +} +#endif + +#endif /* TO_PLATFORM_CFG_H */ + +/************************/ +/* End of File Comment */ +/************************/ + diff --git a/config/obc/cpd/set-vars.cmake b/config/obc/cpd/set-vars.cmake index 0daed5ef3..9c109e561 100644 --- a/config/obc/cpd/set-vars.cmake +++ b/config/obc/cpd/set-vars.cmake @@ -31,5 +31,5 @@ # ############################################################################# -set(PSP ${PROJECT_SOURCE_DIR}/core/psp/obc-cpd) -set(OSAL ${PROJECT_SOURCE_DIR}/core/osal/freertos) +set(PSP ${PROJECT_SOURCE_DIR}/../private/core/psp/obc-cpd) +set(OSAL ${PROJECT_SOURCE_DIR}/../private/core/osal/freertos) diff --git a/config/obc/cpd/target/CMakeLists.txt b/config/obc/cpd/target/CMakeLists.txt index 752af1bf6..eef47f7c2 100644 --- a/config/obc/cpd/target/CMakeLists.txt +++ b/config/obc/cpd/target/CMakeLists.txt @@ -26,20 +26,20 @@ buildliner_add_app( DEFINITION ${PROJECT_SOURCE_DIR}/apps/cfs_lib/fsw/for_build ) -# This is temporarily removed until we can remove the OS dependency -# in px4lib, i.e. "CLOCK_MONOTONIC" -buildliner_add_app( - px4lib - EMBEDDED - DEFINITION ${PROJECT_SOURCE_DIR}/apps/px4lib/fsw/for_build -) - -buildliner_add_app( - prmlib - EMBEDDED - DEFINITION ${PROJECT_SOURCE_DIR}/apps/prmlib/fsw/for_build - CONFIG ${CMAKE_CURRENT_SOURCE_DIR}/apps/prm -) +## This is temporarily removed until we can remove the OS dependency +## in px4lib, i.e. "CLOCK_MONOTONIC" +#buildliner_add_app( +# px4lib +# EMBEDDED +# DEFINITION ${PROJECT_SOURCE_DIR}/apps/px4lib/fsw/for_build +#) +# +#buildliner_add_app( +# prmlib +# EMBEDDED +# DEFINITION ${PROJECT_SOURCE_DIR}/apps/prmlib/fsw/for_build +# CONFIG ${CMAKE_CURRENT_SOURCE_DIR}/apps/prm +#) buildliner_add_app( sch @@ -54,255 +54,226 @@ buildliner_add_app( # in cf, i.e. "arpa/inet.h" #buildliner_add_app( # cf -# EMBEDDED # DEFINITION ${PROJECT_SOURCE_DIR}/apps/cf/fsw/for_build # CONFIG ${CMAKE_CURRENT_SOURCE_DIR}/apps/cf #) - -buildliner_add_app( - cs - EMBEDDED - DEFINITION ${PROJECT_SOURCE_DIR}/apps/cs/fsw/for_build - CONFIG ${PROJECT_SOURCE_DIR}/config/shared/apps/cs -) - -buildliner_add_app( - fm - EMBEDDED - DEFINITION ${PROJECT_SOURCE_DIR}/apps/fm/fsw/for_build - CONFIG ${PROJECT_SOURCE_DIR}/config/shared/apps/fm -) - -buildliner_add_app( - hk - EMBEDDED - DEFINITION ${PROJECT_SOURCE_DIR}/apps/hk/fsw/for_build - CONFIG ${PROJECT_SOURCE_DIR}/config/shared/apps/hk -) - -buildliner_add_app( - hs - EMBEDDED - DEFINITION ${PROJECT_SOURCE_DIR}/apps/hs/fsw/for_build - CONFIG ${PROJECT_SOURCE_DIR}/config/shared/apps/hs - CONFIG_SOURCES - ${PROJECT_SOURCE_DIR}/config/shared/apps/hs/hs_custom.c -) - -buildliner_add_app( - lc - EMBEDDED - DEFINITION ${PROJECT_SOURCE_DIR}/apps/lc/fsw/for_build - CONFIG ${PROJECT_SOURCE_DIR}/config/shared/apps/lc - CONFIG_SOURCES - ${PROJECT_SOURCE_DIR}/config/shared/apps/lc/src/lc_custom.c -) - -buildliner_add_app( - md - EMBEDDED - DEFINITION ${PROJECT_SOURCE_DIR}/apps/md/fsw/for_build - CONFIG ${PROJECT_SOURCE_DIR}/config/shared/apps/md -) - -buildliner_add_app( - mm - EMBEDDED - DEFINITION ${PROJECT_SOURCE_DIR}/apps/mm/fsw/for_build -) - -buildliner_add_app( - sc - EMBEDDED - DEFINITION ${PROJECT_SOURCE_DIR}/apps/sc/fsw/for_build - CONFIG ${PROJECT_SOURCE_DIR}/config/shared/apps/sc -) - -# This is temporarily removed until we can remove the OS dependency -# in ci, i.e. "arpa/inet.h" +# +#buildliner_add_app( +# cs +# DEFINITION ${PROJECT_SOURCE_DIR}/apps/cs/fsw/for_build +# CONFIG ${PROJECT_SOURCE_DIR}/config/shared/apps/cs +#) +# +#buildliner_add_app( +# fm +# DEFINITION ${PROJECT_SOURCE_DIR}/apps/fm/fsw/for_build +# CONFIG ${PROJECT_SOURCE_DIR}/config/shared/apps/fm +#) +# +#buildliner_add_app( +# hk +# DEFINITION ${PROJECT_SOURCE_DIR}/apps/hk/fsw/for_build +# CONFIG ${PROJECT_SOURCE_DIR}/config/shared/apps/hk +#) +# +#buildliner_add_app( +# hs +# DEFINITION ${PROJECT_SOURCE_DIR}/apps/hs/fsw/for_build +# CONFIG ${PROJECT_SOURCE_DIR}/config/shared/apps/hs +# CONFIG_SOURCES +# ${PROJECT_SOURCE_DIR}/config/shared/apps/hs/hs_custom.c +#) +# +#buildliner_add_app( +# lc +# DEFINITION ${PROJECT_SOURCE_DIR}/apps/lc/fsw/for_build +# CONFIG ${PROJECT_SOURCE_DIR}/config/shared/apps/lc +# CONFIG_SOURCES +# ${PROJECT_SOURCE_DIR}/config/shared/apps/lc/src/lc_custom.c +#) +# +#buildliner_add_app( +# md +# DEFINITION ${PROJECT_SOURCE_DIR}/apps/md/fsw/for_build +# CONFIG ${PROJECT_SOURCE_DIR}/config/shared/apps/md +#) +# +#buildliner_add_app( +# mm +# DEFINITION ${PROJECT_SOURCE_DIR}/apps/mm/fsw/for_build +#) +# +#buildliner_add_app( +# sc +# DEFINITION ${PROJECT_SOURCE_DIR}/apps/sc/fsw/for_build +# CONFIG ${PROJECT_SOURCE_DIR}/config/shared/apps/sc +#) +# +## This is temporarily removed until we can remove the OS dependency +## in ci, i.e. "arpa/inet.h" #buildliner_add_app( # ci -# EMBEDDED # DEFINITION ${PROJECT_SOURCE_DIR}/apps/ci/fsw/for_build # CONFIG ${CMAKE_CURRENT_SOURCE_DIR}/apps/ci # CONFIG_SOURCES # ${CMAKE_CURRENT_SOURCE_DIR}/apps/ci/ci_custom.c #) - -# This is temporarily removed until we can remove the OS dependency -# in ci, i.e. "arpa/inet.h" +# +## This is temporarily removed until we can remove the OS dependency +## in ci, i.e. "arpa/inet.h" #buildliner_add_app( # to -# EMBEDDED # DEFINITION ${PROJECT_SOURCE_DIR}/apps/to/fsw/for_build # CONFIG ${CMAKE_CURRENT_SOURCE_DIR}/apps/to # CONFIG_SOURCES # ${CMAKE_CURRENT_SOURCE_DIR}/apps/to/tables/to_backup_cfg.c # ${CMAKE_CURRENT_SOURCE_DIR}/apps/to/to_custom.c #) - - -# This is temporarily removed until we can geet px4lib back in -buildliner_add_app( - amc - EMBEDDED - DEFINITION ${PROJECT_SOURCE_DIR}/apps/amc/fsw/for_build - CONFIG ${CMAKE_CURRENT_SOURCE_DIR}/apps/amc - CONFIG_SOURCES - ${CMAKE_CURRENT_SOURCE_DIR}/apps/amc/amc_custom.cpp -) - -# This is temporarily removed until we can geet px4lib back in -buildliner_add_app( - mac - EMBEDDED - DEFINITION ${PROJECT_SOURCE_DIR}/apps/mac/fsw/for_build - CONFIG ${CMAKE_CURRENT_SOURCE_DIR}/apps/mac -) - -# This is temporarily removed until we can geet px4lib back in -buildliner_add_app( - ulr - EMBEDDED - DEFINITION ${PROJECT_SOURCE_DIR}/apps/ulr/fsw/for_build - CONFIG ${CMAKE_CURRENT_SOURCE_DIR}/apps/ulr - CONFIG_SOURCES - ${CMAKE_CURRENT_SOURCE_DIR}/apps/ulr/ulr_custom.cpp -) - -# This is temporarily removed until we can geet px4lib back in -buildliner_add_app( - rgbled - EMBEDDED - DEFINITION ${PROJECT_SOURCE_DIR}/apps/rgbled/fsw/for_build - CONFIG ${CMAKE_CURRENT_SOURCE_DIR}/apps/rgbled - CONFIG_SOURCES - ${CMAKE_CURRENT_SOURCE_DIR}/apps/rgbled/src/rgbled_custom.c -) - -# This is temporarily removed until we can geet px4lib back in -buildliner_add_app( - ms5611 - EMBEDDED - DEFINITION ${PROJECT_SOURCE_DIR}/apps/ms5611/fsw/for_build - CONFIG ${CMAKE_CURRENT_SOURCE_DIR}/apps/ms5611 - CONFIG_SOURCES - ${CMAKE_CURRENT_SOURCE_DIR}/apps/ms5611/src/ms5611_custom.c -) - -# This is temporarily removed until we can geet px4lib back in -buildliner_add_app( - gps - EMBEDDED - DEFINITION ${PROJECT_SOURCE_DIR}/apps/gps/fsw/for_build - CONFIG ${CMAKE_CURRENT_SOURCE_DIR}/apps/gps - CONFIG_SOURCES - ${CMAKE_CURRENT_SOURCE_DIR}/apps/gps/src/gps_custom.c -) - -# This is temporarily removed until we can geet px4lib back in -buildliner_add_app( - sens - EMBEDDED - DEFINITION ${PROJECT_SOURCE_DIR}/apps/sens/fsw/for_build - CONFIG ${CMAKE_CURRENT_SOURCE_DIR}/apps/sens -) - -# This is temporarily removed until we can geet px4lib back in -buildliner_add_app( - mpc - EMBEDDED - DEFINITION ${PROJECT_SOURCE_DIR}/apps/mpc/fsw/for_build - CONFIG ${CMAKE_CURRENT_SOURCE_DIR}/apps/mpc -) - -# This is temporarily commented out until we can figure out how to +# +# +## This is temporarily removed until we can geet px4lib back in +#buildliner_add_app( +# amc +# DEFINITION ${PROJECT_SOURCE_DIR}/apps/amc/fsw/for_build +# CONFIG ${CMAKE_CURRENT_SOURCE_DIR}/apps/amc +# CONFIG_SOURCES +# ${CMAKE_CURRENT_SOURCE_DIR}/apps/amc/amc_custom.cpp +#) +# +## This is temporarily removed until we can geet px4lib back in +#buildliner_add_app( +# mac +# DEFINITION ${PROJECT_SOURCE_DIR}/apps/mac/fsw/for_build +# CONFIG ${CMAKE_CURRENT_SOURCE_DIR}/apps/mac +#) +# +## This is temporarily removed until we can geet px4lib back in +#buildliner_add_app( +# ulr +# DEFINITION ${PROJECT_SOURCE_DIR}/apps/ulr/fsw/for_build +# CONFIG ${CMAKE_CURRENT_SOURCE_DIR}/apps/ulr +# CONFIG_SOURCES +# ${CMAKE_CURRENT_SOURCE_DIR}/apps/ulr/ulr_custom.cpp +#) +# +## This is temporarily removed until we can geet px4lib back in +#buildliner_add_app( +# rgbled +# DEFINITION ${PROJECT_SOURCE_DIR}/apps/rgbled/fsw/for_build +# CONFIG ${CMAKE_CURRENT_SOURCE_DIR}/apps/rgbled +# CONFIG_SOURCES +# ${CMAKE_CURRENT_SOURCE_DIR}/apps/rgbled/src/rgbled_custom.c +#) +# +## This is temporarily removed until we can geet px4lib back in +#buildliner_add_app( +# ms5611 +# DEFINITION ${PROJECT_SOURCE_DIR}/apps/ms5611/fsw/for_build +# CONFIG ${CMAKE_CURRENT_SOURCE_DIR}/apps/ms5611 +# CONFIG_SOURCES +# ${CMAKE_CURRENT_SOURCE_DIR}/apps/ms5611/src/ms5611_custom.c +#) +# +## This is temporarily removed until we can geet px4lib back in +#buildliner_add_app( +# gps +# DEFINITION ${PROJECT_SOURCE_DIR}/apps/gps/fsw/for_build +# CONFIG ${CMAKE_CURRENT_SOURCE_DIR}/apps/gps +# CONFIG_SOURCES +# ${CMAKE_CURRENT_SOURCE_DIR}/apps/gps/src/gps_custom.c +#) +# +## This is temporarily removed until we can geet px4lib back in +#buildliner_add_app( +# sens +# DEFINITION ${PROJECT_SOURCE_DIR}/apps/sens/fsw/for_build +# CONFIG ${CMAKE_CURRENT_SOURCE_DIR}/apps/sens +#) +# +## This is temporarily removed until we can geet px4lib back in +#buildliner_add_app( +# mpc +# DEFINITION ${PROJECT_SOURCE_DIR}/apps/mpc/fsw/for_build +# CONFIG ${CMAKE_CURRENT_SOURCE_DIR}/apps/mpc +#) +# +## This is temporarily commented out until we can figure out how to # get cmake to generate the SMC files before it does anything else #buildliner_add_app( # vm -# EMBEDDED # DEFINITION ${PROJECT_SOURCE_DIR}/apps/vm/fsw/for_build # CONFIG ${CMAKE_CURRENT_SOURCE_DIR}/apps/vm #) - -# This is temporarily removed until we can geet px4lib back in -buildliner_add_app( - ld - EMBEDDED - DEFINITION ${PROJECT_SOURCE_DIR}/apps/ld/fsw/for_build - CONFIG ${CMAKE_CURRENT_SOURCE_DIR}/apps/ld -) - -# This is temporarily removed until we can geet px4lib back in -buildliner_add_app( - nav - EMBEDDED - DEFINITION ${PROJECT_SOURCE_DIR}/apps/nav/fsw/for_build - CONFIG ${CMAKE_CURRENT_SOURCE_DIR}/apps/nav -) - -# This is temporarily removed until we can geet px4lib back in -buildliner_add_app( - rcin - EMBEDDED - DEFINITION ${PROJECT_SOURCE_DIR}/apps/rcin/fsw/for_build - CONFIG ${CMAKE_CURRENT_SOURCE_DIR}/apps/rcin - CONFIG_SOURCES - ${CMAKE_CURRENT_SOURCE_DIR}/apps/rcin/src/rcin_custom.c -) - -# This is temporarily removed until we can geet px4lib back in -buildliner_add_app( - bat - EMBEDDED - DEFINITION ${PROJECT_SOURCE_DIR}/apps/bat/fsw/for_build - CONFIG ${CMAKE_CURRENT_SOURCE_DIR}/apps/bat - CONFIG_SOURCES - ${CMAKE_CURRENT_SOURCE_DIR}/apps/bat/bat_custom.cpp -) - -# This is temporarily removed until we can geet px4lib back in -buildliner_add_app( - mpu9250 - EMBEDDED - DEFINITION ${PROJECT_SOURCE_DIR}/apps/mpu9250/fsw/for_build - CONFIG ${CMAKE_CURRENT_SOURCE_DIR}/apps/mpu9250 - CONFIG_SOURCES - ${CMAKE_CURRENT_SOURCE_DIR}/apps/mpu9250/src/mpu9250_custom.c -) - -# This is temporarily removed until we can geet px4lib back in -buildliner_add_app( - hmc5883 - EMBEDDED - DEFINITION ${PROJECT_SOURCE_DIR}/apps/hmc5883/fsw/for_build - CONFIG ${CMAKE_CURRENT_SOURCE_DIR}/apps/hmc5883 - CONFIG_SOURCES - ${CMAKE_CURRENT_SOURCE_DIR}/apps/hmc5883/src/hmc5883_custom.c -) - -# This is temporarily removed until we can geet px4lib back in -buildliner_add_app( - pe - EMBEDDED - DEFINITION ${PROJECT_SOURCE_DIR}/apps/pe/fsw/for_build - CONFIG ${CMAKE_CURRENT_SOURCE_DIR}/apps/pe -) - -# This is temporarily removed until we can geet px4lib back in -buildliner_add_app( - qae - EMBEDDED - DEFINITION ${PROJECT_SOURCE_DIR}/apps/qae/fsw/for_build - CONFIG ${CMAKE_CURRENT_SOURCE_DIR}/apps/qae -) - +# +## This is temporarily removed until we can geet px4lib back in +#buildliner_add_app( +# ld +# DEFINITION ${PROJECT_SOURCE_DIR}/apps/ld/fsw/for_build +# CONFIG ${CMAKE_CURRENT_SOURCE_DIR}/apps/ld +#) +# # This is temporarily removed until we can geet px4lib back in -buildliner_add_app( - lgc - EMBEDDED - DEFINITION ${PROJECT_SOURCE_DIR}/apps/lgc/fsw/for_build - CONFIG ${CMAKE_CURRENT_SOURCE_DIR}/apps/lgc - CONFIG_SOURCES - ${CMAKE_CURRENT_SOURCE_DIR}/apps/lgc/lgc_custom.cpp -) +#buildliner_add_app( +# nav +# DEFINITION ${PROJECT_SOURCE_DIR}/apps/nav/fsw/for_build +# CONFIG ${CMAKE_CURRENT_SOURCE_DIR}/app#s/nav +#) +# +## This is temporarily removed until we can geet px4lib back in +#buildliner_add_app( +# rcin +# DEFINITION ${PROJECT_SOURCE_DIR}/apps/rcin/fsw/for_build +# CONFIG ${CMAKE_CURRENT_SOURCE_DIR}/apps/rcin +# CONFIG_SOURCES +# ${CMAKE_CURRENT_SOURCE_DIR}/apps/rcin/src/rcin_custom.c +#) +# +## This is temporarily removed until we can geet px4lib back in +#buildliner_add_app( +# bat +# DEFINITION ${PROJECT_SOURCE_DIR}/apps/bat/fsw/for_build +# CONFIG ${CMAKE_CURRENT_SOURCE_DIR}/apps/bat +# CONFIG_SOURCES +# ${CMAKE_CURRENT_SOURCE_DIR}/apps/bat/bat_custom.cpp +#) +# +## This is temporarily removed until we can geet px4lib back in +#buildliner_add_app( +# mpu9250 +# DEFINITION ${PROJECT_SOURCE_DIR}/apps/mpu9250/fsw/for_build +# CONFIG ${CMAKE_CURRENT_SOURCE_DIR}/apps/mpu9250 +# CONFIG_SOURCES +# ${CMAKE_CURRENT_SOURCE_DIR}/apps/mpu9250/src/mpu9250_custom.c +#) +# +## This is temporarily removed until we can geet px4lib back in +#buildliner_add_app( +# hmc5883 +# DEFINITION ${PROJECT_SOURCE_DIR}/apps/hmc5883/fsw/for_build +# CONFIG ${CMAKE_CURRENT_SOURCE_DIR}/apps/hmc5883 +# CONFIG_SOURCES +# ${CMAKE_CURRENT_SOURCE_DIR}/apps/hmc5883/src/hmc5883_custom.c +#) +# +## This is temporarily removed until we can geet px4lib back in +#buildliner_add_app( +# pe +# DEFINITION ${PROJECT_SOURCE_DIR}/apps/pe/fsw/for_build +# CONFIG ${CMAKE_CURRENT_SOURCE_DIR}/apps/pe +#) +# +## This is temporarily removed until we can geet px4lib back in +#buildliner_add_app( +# qae +# DEFINITION ${PROJECT_SOURCE_DIR}/apps/qae/fsw/for_build +# CONFIG ${CMAKE_CURRENT_SOURCE_DIR}/apps/qae +#) +# +## This is temporarily removed until we can geet px4lib back in +#buildliner_add_app( +# lgc +# DEFINITION ${PROJECT_SOURCE_DIR}/apps/lgc/fsw/for_build +# CONFIG ${CMAKE_CURRENT_SOURCE_DIR}/apps/lgc +# CONFIG_SOURCES +# ${CMAKE_CURRENT_SOURCE_DIR}/apps/lgc/lgc_custom.cpp +#) diff --git a/config/obc/cpd/target/cfe_es_startup.scr b/config/obc/cpd/target/cfe_es_startup.scr index 2cee54e1f..4b84a04f4 100644 --- a/config/obc/cpd/target/cfe_es_startup.scr +++ b/config/obc/cpd/target/cfe_es_startup.scr @@ -1,10 +1,10 @@ CFE_LIB, /embedded/CFS_LIB.so, CFS_LibInit, CFS_LIB, 0, 0, 0x0, 0, 0; -CFE_LIB, /embedded/PRMLIB.so, PRMLIB_LibInit, PRMLIB, 0, 0, 0x0, 0, 0; -CFE_LIB, /embedded/PX4LIB.so, PX4LIB_LibInit, PX4LIB, 0, 0, 0x0, 0, 0; -CFE_APP, /embedded/CI.so, CI_AppMain, CI, 115, 32768, 0x0, 0, 0; -CFE_APP, /embedded/TO.so, TO_AppMain, TO, 124, 32768, 0x0, 0, 0; CFE_APP, /embedded/SCH.so, SCH_AppMain, SCH, 34, 32768, 0x0, 0, 0; !CFE_APP, /cf/apps/AMC.so, AMC_AppMain, AMC, 43, 327680, 0x0, 0, 2; +CFE_APP, /ram/apps/CI.so, CI_AppMain, CI, 115, 32768, 0x0, 0, 0; +CFE_APP, /ram/apps/TO.so, TO_AppMain, TO, 124, 32768, 0x0, 0, 0; +CFE_LIB, /ram/apps/PRMLIB.so, PRMLIB_LibInit, PRMLIB, 0, 0, 0x0, 0, 0; +CFE_LIB, /ram/apps/PX4LIB.so, PX4LIB_LibInit, PX4LIB, 0, 0, 0x0, 0, 0; CFE_APP, /cf/apps/SENS.so, SENS_AppMain, SENS, 52, 327680, 0x0, 0, 2; CFE_APP, /cf/apps/MPU9250.so, MPU9250_AppMain, MPU9250, 46, 327680, 0x0, 0, 2; CFE_APP, /cf/apps/HMC5883.so, HMC5883_AppMain, HMC5883, 49, 327680, 0x0, 0, 2; From 4f12cbfe6af12bb07205d454a6682788bcd6aefd Mon Sep 17 00:00:00 2001 From: Mathew Benson Date: Mon, 8 Mar 2021 19:23:22 -0600 Subject: [PATCH 212/370] SBN updates. --- apps/sbn/fsw/src/sbn_app.c | 1 + config/obc/cpd/target/cfe_es_startup.scr | 4 ++-- core/tools/auto-yamcs | 2 +- tools/sitl_gazebo | 2 +- 4 files changed, 5 insertions(+), 4 deletions(-) diff --git a/apps/sbn/fsw/src/sbn_app.c b/apps/sbn/fsw/src/sbn_app.c index 312e5f3b4..617861d3b 100644 --- a/apps/sbn/fsw/src/sbn_app.c +++ b/apps/sbn/fsw/src/sbn_app.c @@ -1136,6 +1136,7 @@ static int32 WaitForWakeup(int32 iTimeOut) CFE_SB_MsgPtr_t Msg = 0; /* Wait for WakeUp messages from scheduler */ + OS_printf("%u\n", __LINE__); Status = CFE_SB_RcvMsg(&Msg, SBN.CmdPipe, iTimeOut); switch(Status) diff --git a/config/obc/cpd/target/cfe_es_startup.scr b/config/obc/cpd/target/cfe_es_startup.scr index da528e65c..ca46a102f 100644 --- a/config/obc/cpd/target/cfe_es_startup.scr +++ b/config/obc/cpd/target/cfe_es_startup.scr @@ -1,9 +1,9 @@ CFE_LIB, /embedded/CFS_LIB.so, CFS_LibInit, CFS_LIB, 0, 0, 0x0, 0, 2; -CFE_LIB, /embedded/PX4LIB.so, PX4LIB_LibInit, PX4LIB, 0, 0, 0x0, 0, 2; +CFE_LIB, /embedded/PQ_LIB.so, PQ_LibInit, PQ_LIB, 0, 0, 0x0, 0, 2; CFE_APP, /embedded/SBN.so, SBN_AppMain, SBN, 37, 32768, 0x0, 0, 2; CFE_APP, /embedded/SCH.so, SCH_AppMain, SCH, 34, 40960, 0x0, 0, 2; !CFE_LIB, /embedded/PRMLIB.so, PRMLIB_LibInit, PRMLIB, 0, 0, 0x0, 0, 2; -CFE_LIB, /embedded/PQ_LIB.so, PQ_LibInit, PQ_LIB, 0, 0, 0x0, 0, 2; +CFE_LIB, /embedded/PX4LIB.so, PX4LIB_LibInit, PX4LIB, 0, 0, 0x0, 0, 2; CFE_APP, /embedded/AMC.so, AMC_AppMain, AMC, 43, 32768, 0x0, 0, 2; CFE_APP, /embedded/SENS.so, SENS_AppMain, SENS, 52, 32768, 0x0, 0, 2; CFE_APP, /embedded/MPU9250.so, MPU9250_AppMain, MPU9250, 46, 327680, 0x0, 0, 2; diff --git a/core/tools/auto-yamcs b/core/tools/auto-yamcs index a0009f1e1..7799625c1 160000 --- a/core/tools/auto-yamcs +++ b/core/tools/auto-yamcs @@ -1 +1 @@ -Subproject commit a0009f1e1a10a33695875bf584d2de4bce9776e0 +Subproject commit 7799625c1770f057e1181cef3d7d911ccf3366ba diff --git a/tools/sitl_gazebo b/tools/sitl_gazebo index 0ffc9f760..bebb9a95f 160000 --- a/tools/sitl_gazebo +++ b/tools/sitl_gazebo @@ -1 +1 @@ -Subproject commit 0ffc9f760381262c798f52102b4f616bf4421bde +Subproject commit bebb9a95f0b61bf9e4c3de345fab70985c1329b3 From b5c39719d49c41a38f385e4b2a05bc1d1fefb46c Mon Sep 17 00:00:00 2001 From: Mathew Benson Date: Mon, 8 Mar 2021 23:52:01 -0600 Subject: [PATCH 213/370] Fixed SBN mailbox --- apps/sbn/fsw/src/sbn_app.c | 16 ++++++++-------- apps/sbn/modules/mbox/fsw/src/sbn_mailbox_if.c | 6 +++--- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/apps/sbn/fsw/src/sbn_app.c b/apps/sbn/fsw/src/sbn_app.c index 617861d3b..563865598 100644 --- a/apps/sbn/fsw/src/sbn_app.c +++ b/apps/sbn/fsw/src/sbn_app.c @@ -662,10 +662,11 @@ static void RecvNetTask(void) * Receive messages from the specified peer, injecting them onto the local * software bus. */ +uint8 SBN_Msg[CFE_SB_MAX_SB_MSG_SIZE]; + void SBN_RecvNetMsgs(void) { int Status = 0; - uint8 Msg[CFE_SB_MAX_SB_MSG_SIZE]; int NetIdx = 0; for(NetIdx = 0; NetIdx < SBN.NetCnt; NetIdx++) @@ -681,10 +682,10 @@ void SBN_RecvNetMsgs(void) // TODO: make configurable for(MsgCnt = 0; MsgCnt < 100; MsgCnt++) { - memset(Msg, 0, sizeof(Msg)); + memset(SBN_Msg, 0, sizeof(SBN_Msg)); Status = Net->IfOps->RecvFromNet( - Net, &MsgType, &MsgSz, &CpuID, Msg); + Net, &MsgType, &MsgSz, &CpuID, SBN_Msg); if(Status == SBN_IF_EMPTY) { @@ -701,7 +702,7 @@ void SBN_RecvNetMsgs(void) OS_GetLocalTime(&Peer->LastRecv); }/* end if */ - SBN_ProcessNetMsg(Net, MsgType, CpuID, MsgSz, Msg); + SBN_ProcessNetMsg(Net, MsgType, CpuID, MsgSz, SBN_Msg); } } else if(Net->IfOps->RecvFromPeer) @@ -721,10 +722,10 @@ void SBN_RecvNetMsgs(void) SBN_MsgType_t MsgType = 0; SBN_MsgSz_t MsgSz = 0; - memset(Msg, 0, sizeof(Msg)); + memset(SBN_Msg, 0, sizeof(SBN_Msg)); Status = Net->IfOps->RecvFromPeer(Net, Peer, - &MsgType, &MsgSz, &CpuID, Msg); + &MsgType, &MsgSz, &CpuID, SBN_Msg); if(Status == SBN_IF_EMPTY) { @@ -733,7 +734,7 @@ void SBN_RecvNetMsgs(void) OS_GetLocalTime(&Peer->LastRecv); - SBN_ProcessNetMsg(Net, MsgType, CpuID, MsgSz, Msg); + SBN_ProcessNetMsg(Net, MsgType, CpuID, MsgSz, SBN_Msg); }/* end for */ }/* end for */ } @@ -1136,7 +1137,6 @@ static int32 WaitForWakeup(int32 iTimeOut) CFE_SB_MsgPtr_t Msg = 0; /* Wait for WakeUp messages from scheduler */ - OS_printf("%u\n", __LINE__); Status = CFE_SB_RcvMsg(&Msg, SBN.CmdPipe, iTimeOut); switch(Status) diff --git a/apps/sbn/modules/mbox/fsw/src/sbn_mailbox_if.c b/apps/sbn/modules/mbox/fsw/src/sbn_mailbox_if.c index d112a1a0e..ec2e05db4 100644 --- a/apps/sbn/modules/mbox/fsw/src/sbn_mailbox_if.c +++ b/apps/sbn/modules/mbox/fsw/src/sbn_mailbox_if.c @@ -17,7 +17,7 @@ int MailboxWrite(XMbox *instance, const unsigned int *buffer, unsigned int size) int Status = 0; unsigned int BytesSent = 0; unsigned int TotalBytesSent = 0; - unsigned int RequestedBytes = size; + unsigned int RequestedBytes = size * 4; while(1) { @@ -47,7 +47,7 @@ int MailboxRead(XMbox *instance, unsigned int *buffer, unsigned int size) int Status = 0; unsigned int BytesRecvd = 0; - Status = XMbox_Read(instance, buffer, size, BytesRecvd); + Status = XMbox_Read(instance, buffer, size, &BytesRecvd); if(Status == XST_NO_DATA) { @@ -336,7 +336,7 @@ static int Recv(SBN_NetInterface_t *Net, SBN_MsgType_t *MsgTypePtr, SizeRead = MailboxRead(&SBN_Mailbox_Data.Mbox, &SBN_Mailbox_Data.InputBuffer[0], - MAILBOX_MAX_BUFFER_SIZE_WORDS); + sizeof(SBN_Mailbox_Data.InputBuffer)); if(SizeRead > 0) { for(i = 0; i < SizeRead; ++i) From 8506af3e2beb5a50974289b249397bd006494571 Mon Sep 17 00:00:00 2001 From: lorenzo-gomez-windhover Date: Wed, 10 Mar 2021 11:16:30 -0600 Subject: [PATCH 214/370] -Added Query Command Script --- .../Displays/Core/ES/ApplicationControl_App.opi | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/core/base/tools/commander/workspace_template/Displays/Core/ES/ApplicationControl_App.opi b/core/base/tools/commander/workspace_template/Displays/Core/ES/ApplicationControl_App.opi index aecf3db12..05bf3f183 100644 --- a/core/base/tools/commander/workspace_template/Displays/Core/ES/ApplicationControl_App.opi +++ b/core/base/tools/commander/workspace_template/Displays/Core/ES/ApplicationControl_App.opi @@ -10,7 +10,7 @@ - 1.5.5.202103012118 + 1.5.5.202103101551 @@ -2011,12 +2011,19 @@ $(pv_value) - + - +#We assume that the parent has defined this macro +app_name = display.getMacroValue("APP"); + +if app_name: + app_name = app_name.upper() + +Yamcs.issueCommand('/cfs/cfe_es/QueryOneApp', {"Payload.Application": app_name}); +]]> true From 77529069df013594f20c2f33fcc9decb5553b475 Mon Sep 17 00:00:00 2001 From: lorenzo-gomez-windhover Date: Wed, 10 Mar 2021 11:49:35 -0600 Subject: [PATCH 215/370] -Added opi_util API --- .../commander/workspace_template/Displays/Resources/__init__.py | 0 .../workspace_template/Displays/Resources/opi_util/__init__.py | 0 .../workspace_template/Displays/Resources/opi_util/util.py | 0 3 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 core/base/tools/commander/workspace_template/Displays/Resources/__init__.py create mode 100644 core/base/tools/commander/workspace_template/Displays/Resources/opi_util/__init__.py create mode 100644 core/base/tools/commander/workspace_template/Displays/Resources/opi_util/util.py diff --git a/core/base/tools/commander/workspace_template/Displays/Resources/__init__.py b/core/base/tools/commander/workspace_template/Displays/Resources/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/core/base/tools/commander/workspace_template/Displays/Resources/opi_util/__init__.py b/core/base/tools/commander/workspace_template/Displays/Resources/opi_util/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/core/base/tools/commander/workspace_template/Displays/Resources/opi_util/util.py b/core/base/tools/commander/workspace_template/Displays/Resources/opi_util/util.py new file mode 100644 index 000000000..e69de29bb From ba45f26144b0705b9ab887aa45edfa51e1389321 Mon Sep 17 00:00:00 2001 From: lorenzo-gomez-windhover Date: Wed, 10 Mar 2021 11:52:22 -0600 Subject: [PATCH 216/370] -Added validate_opi to util API --- .../Displays/Resources/opi_util/util.py | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/core/base/tools/commander/workspace_template/Displays/Resources/opi_util/util.py b/core/base/tools/commander/workspace_template/Displays/Resources/opi_util/util.py index e69de29bb..a79db8814 100644 --- a/core/base/tools/commander/workspace_template/Displays/Resources/opi_util/util.py +++ b/core/base/tools/commander/workspace_template/Displays/Resources/opi_util/util.py @@ -0,0 +1,23 @@ +""" +utility API for OPI Script authors. +""" + +def validate_opi(display): + """ + Validate the OPI. Essentially check that we have all of the macros we need. + + :return bool: True if this opi is valid. False otherwise. + """ + is_valid = True + + # getMacroValue returns a unicode object, NOT an str object. See "5.6.1. String Methods" of the python2.7.18 docs + # for details. + app_name = display.getMacroValue("APP") + project_name = display.getMacroValue("PROJECT_NAME") + yaml_path = display.getMacroValue("YAML_PATH") + template_opi = display.getMacroValue("TEMPLATE_OPI") + + if app_name is None or project_name is None or yaml_path is None or template_opi is None: + is_valid = False + + return is_valid \ No newline at end of file From 85228a9f7b31771be02aa1f10dd9d74e0eaf6d27 Mon Sep 17 00:00:00 2001 From: lorenzo-gomez-windhover Date: Wed, 10 Mar 2021 11:54:29 -0600 Subject: [PATCH 217/370] -Added opi_util API pattern to events_init --- .../Core/EVS/Scripts/Python/events_init.py | 34 +++++++------------ 1 file changed, 12 insertions(+), 22 deletions(-) diff --git a/core/base/tools/commander/workspace_template/Displays/Core/EVS/Scripts/Python/events_init.py b/core/base/tools/commander/workspace_template/Displays/Core/EVS/Scripts/Python/events_init.py index 83f195a46..2c83f7c6a 100644 --- a/core/base/tools/commander/workspace_template/Displays/Core/EVS/Scripts/Python/events_init.py +++ b/core/base/tools/commander/workspace_template/Displays/Core/EVS/Scripts/Python/events_init.py @@ -5,33 +5,19 @@ [1]:https://docs.yamcs.org/yamcs-studio/ """ # import java packages -from org.csstudio.opibuilder.scriptUtil import PVUtil, ScriptUtil, FileUtil, WidgetUtil, DataUtil +from org.csstudio.opibuilder.scriptUtil import PVUtil, ScriptUtil, FileUtil, WidgetUtil, DataUtil, FileUtil from org.csstudio.opibuilder.scriptUtil import YAMLUtil from org.eclipse.swt.graphics import RGB +from com.windhoverlabs.studio import CFSPropertiesPage # import python packages import logging +import sys - -def validate_opi(): - """ - Validate the OPI. Essentially check that we have all of the macros we need. - - :return bool: True if this opi is valid. False otherwise. - """ - is_valid = True - - # getMacroValue returns a unicode object, NOT an str object. See "5.6.1. String Methods" of the python2.7.18 docs - # for details. - app_name = display.getMacroValue("APP") - project_name = display.getMacroValue("PROJECT_NAME") - yaml_path = display.getMacroValue("YAML_PATH") - template_opi = display.getMacroValue("TEMPLATE_OPI") - - if app_name is None or project_name is None or yaml_path is None or template_opi is None: - is_valid = False - - return is_valid +# import our own APIs. Not sure if this is the cleanest way of doing this. If we don't do it this way, we might have add +# an __init__.py to every directory in the project. Don't want to hardcode this path either; open to ideas about this. +sys.path.append(FileUtil.workspacePathToSysPath("Displays")) +from Resources.opi_util import util def get_module(in_module, yaml_data): @@ -84,11 +70,15 @@ def get_events_from_yaml(module, yaml_path, logger): def main(): logging.basicConfig() logger = logging.getLogger('events_init') - if validate_opi() is False: + if util.validate_opi(display) is False: logger.warning("OPI is not valid. Ensure that the APP, PROJECT_NAME, TEMPLATE_OPI and YAML_PATH macros have some kind of " "value.") return -1 + print(CFSPropertiesPage.getData()) + + # CFSPropertiesPage.parseYAML("SOME_PATH") + app_name = display.getMacroValue("APP") project_name = display.getMacroValue("PROJECT_NAME") yaml_path = FileUtil.workspacePathToSysPath(display.getMacroValue("YAML_PATH")) From d0f2337ded933c8833d8ca512ffefa4c850bc53f Mon Sep 17 00:00:00 2001 From: Casey Nalley Date: Tue, 16 Mar 2021 12:56:43 -0500 Subject: [PATCH 218/370] Fix if check for size sbn mbox. --- apps/sbn/modules/mbox/fsw/src/sbn_mailbox_if.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/sbn/modules/mbox/fsw/src/sbn_mailbox_if.c b/apps/sbn/modules/mbox/fsw/src/sbn_mailbox_if.c index ec2e05db4..f9d16153f 100644 --- a/apps/sbn/modules/mbox/fsw/src/sbn_mailbox_if.c +++ b/apps/sbn/modules/mbox/fsw/src/sbn_mailbox_if.c @@ -24,7 +24,7 @@ int MailboxWrite(XMbox *instance, const unsigned int *buffer, unsigned int size) XMbox_Write(instance, buffer[TotalBytesSent], RequestedBytes, &BytesSent); RequestedBytes = RequestedBytes - BytesSent; TotalBytesSent = TotalBytesSent + BytesSent; - if(TotalBytesSent < size) + if(TotalBytesSent < RequestedBytes) { /* Sleep */ OS_TaskDelay(SBN_MAILBOX_BLOCKING_DELAY); From 36e4802bcaf62744e5964dc2914d9655f16331ca Mon Sep 17 00:00:00 2001 From: lorenzo-gomez-windhover Date: Tue, 16 Mar 2021 16:21:01 -0500 Subject: [PATCH 219/370] -Added registry path macro to CF --- .../commander/workspace_template/Displays/Apps/CF/Main.opi | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/CF/Main.opi b/core/base/tools/commander/workspace_template/Displays/Apps/CF/Main.opi index 0a202cd4c..bfce8a380 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/CF/Main.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/CF/Main.opi @@ -10,7 +10,7 @@ - 1.5.5.202103012118 + 1.5.5.202103152011 @@ -21,6 +21,7 @@ cf /Displays/Core/EVS/Events.opi Displays + /modules/cf CF From 5e598ada40f04e934f854cd0db1a8e0c4fa5a484 Mon Sep 17 00:00:00 2001 From: lorenzo-gomez-windhover Date: Tue, 16 Mar 2021 16:22:01 -0500 Subject: [PATCH 220/370] -Updated events_init to use registry --- .../Core/EVS/Scripts/Python/events_init.py | 55 +++---------------- 1 file changed, 9 insertions(+), 46 deletions(-) diff --git a/core/base/tools/commander/workspace_template/Displays/Core/EVS/Scripts/Python/events_init.py b/core/base/tools/commander/workspace_template/Displays/Core/EVS/Scripts/Python/events_init.py index 2c83f7c6a..ea2af918a 100644 --- a/core/base/tools/commander/workspace_template/Displays/Core/EVS/Scripts/Python/events_init.py +++ b/core/base/tools/commander/workspace_template/Displays/Core/EVS/Scripts/Python/events_init.py @@ -1,14 +1,15 @@ """ This script auto-generates event ids rows for each event id found in the YAML file. It essentially creates LinkingContainer[1] -widgets and uses EventRecord.opi to generates a container widget for each event in airliner confuration. +widgets and uses EventRecord.opi to generates a container widget for each event in airliner configuration. [1]:https://docs.yamcs.org/yamcs-studio/ """ # import java packages + from org.csstudio.opibuilder.scriptUtil import PVUtil, ScriptUtil, FileUtil, WidgetUtil, DataUtil, FileUtil -from org.csstudio.opibuilder.scriptUtil import YAMLUtil from org.eclipse.swt.graphics import RGB -from com.windhoverlabs.studio import CFSPropertiesPage + +from com.windhoverlabs.studio.registry import YAMLRegistry, ConfigRegistry # import python packages import logging @@ -20,51 +21,15 @@ from Resources.opi_util import util -def get_module(in_module, yaml_data): - """ - Get the module data from yaml_data dict. Especially useful for when the modules are structured in - a hierarchical fashion like our config files. - - :param in_module(str): The name of the module to look for. - :param yaml_data(dcit): The dictionary that has the configruation data. - :return dict: The dictionary with the data of module. - """ - module_data = None - for module in yaml_data['modules']: - # FIXME: More succinct way of doing this? - if 'modules' in yaml_data['modules'][module]: - module_data = get_module(in_module, yaml_data['modules'][module]) - if in_module == module: - module_data = yaml_data['modules'][in_module] - - return module_data - - -def get_events_from_yaml(module, yaml_path, logger): +def get_events_from_yaml(registry, registry_path): """ Fetch the events from the YAML file. :param module(str): The name of the module(or app) from which we want to fetch events from. :param logger: :return: A dict object that has all of the events. """ - yamnl_data = YAMLUtil.parseYAML(yaml_path) - module_data = get_module(module, yamnl_data) - events = None - display.getWidget("app_name").setPropertyValue("text", module_data['long_name'] + " - Event Filters") - - if module_data: - if 'events' in module_data: - if not (module_data['events'] is None): - events = module_data['events'] - else: - logger.error("The events key is empty for module {}".format(module)) - else: - logger.error("There is no events key present for module {}".format(module)) - else: - logger.error("module {} does not exist".format(module)) - - return events + return registry.get(ConfigRegistry.appendPath(registry_path, "events")) def main(): @@ -75,16 +40,14 @@ def main(): "value.") return -1 - print(CFSPropertiesPage.getData()) + registry_path = display.getMacroValue("REGISTRY_PATH") - # CFSPropertiesPage.parseYAML("SOME_PATH") + registry = YAMLRegistry() app_name = display.getMacroValue("APP") project_name = display.getMacroValue("PROJECT_NAME") - yaml_path = FileUtil.workspacePathToSysPath(display.getMacroValue("YAML_PATH")) - - events = get_events_from_yaml(app_name, yaml_path, logger) + events = get_events_from_yaml(registry, registry_path) for event in events: event_label = "{} ({}) ".format(event, events[event]['id']) From fd37a62ba57772ff5ed28c47d831ccb443c12621 Mon Sep 17 00:00:00 2001 From: lorenzo-gomez-windhover Date: Tue, 16 Mar 2021 16:25:07 -0500 Subject: [PATCH 221/370] -Class files(generated by Studio's Jython) are ignored now --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index abc9de23a..e91004ae0 100644 --- a/.gitignore +++ b/.gitignore @@ -5,3 +5,4 @@ build/** *.pyc .project venv +*.class From 14b81ecbe6f05cb19fd0e60a357a8a1b12c28150 Mon Sep 17 00:00:00 2001 From: lorenzo-gomez-windhover Date: Tue, 16 Mar 2021 16:44:42 -0500 Subject: [PATCH 222/370] -Get long name from registry --- .../Core/EVS/Scripts/Python/events_init.py | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/core/base/tools/commander/workspace_template/Displays/Core/EVS/Scripts/Python/events_init.py b/core/base/tools/commander/workspace_template/Displays/Core/EVS/Scripts/Python/events_init.py index ea2af918a..54432ad00 100644 --- a/core/base/tools/commander/workspace_template/Displays/Core/EVS/Scripts/Python/events_init.py +++ b/core/base/tools/commander/workspace_template/Displays/Core/EVS/Scripts/Python/events_init.py @@ -21,17 +21,22 @@ from Resources.opi_util import util - -def get_events_from_yaml(registry, registry_path): +def get_events_from_registry(registry, module_path): """ - Fetch the events from the YAML file. + Fetch the events from the YAML file. This function assumes that the registry has been loaded. :param module(str): The name of the module(or app) from which we want to fetch events from. :param logger: :return: A dict object that has all of the events. """ - return registry.get(ConfigRegistry.appendPath(registry_path, "events")) + return registry.get(ConfigRegistry.appendPath(module_path, "events")) +def get_long_name_from_registry(registry, module_path): + """ + This function assumes that the registry has been loaded. + """ + return registry.get(ConfigRegistry.appendPath(module_path, "long_name")) + def main(): logging.basicConfig() logger = logging.getLogger('events_init') @@ -47,7 +52,7 @@ def main(): app_name = display.getMacroValue("APP") project_name = display.getMacroValue("PROJECT_NAME") - events = get_events_from_yaml(registry, registry_path) + events = get_events_from_registry(registry, registry_path) for event in events: event_label = "{} ({}) ".format(event, events[event]['id']) @@ -75,4 +80,7 @@ def main(): event_macros.put("EVENTID", str(events[event]['id'])) new_event_record.getChildByName("EventRecordTemplate").setPropertyValue("macros", event_macros) + long_name = get_long_name_from_registry(registry, registry_path) + display.getWidget("app_name").setPropertyValue("text", long_name) + main() From 37bfb2c506e04a645114fc422856762f430ee0ec Mon Sep 17 00:00:00 2001 From: lorenzo-gomez-windhover Date: Tue, 16 Mar 2021 17:11:09 -0500 Subject: [PATCH 223/370] -Added registry paths macro to all apps --- .../Displays/Apps/CI/Main.opi | 3 +- .../Displays/Apps/CS/Main.opi | 3 +- .../Displays/Apps/DS/Main.opi | 3 +- .../Displays/Apps/FM/Main.opi | 3 +- .../Displays/Apps/HK/Main.opi | 3 +- .../Displays/Apps/HS/Main.opi | 3 +- .../Displays/Apps/LC/Main.opi | 3 +- .../Displays/Apps/MD/Main.opi | 3 +- .../Displays/Apps/MM/Main.opi | 3 +- .../Displays/Apps/PE/Main.opi | 3 +- .../Displays/Apps/PX4/Main.opi | 39 ++ .../Displays/Apps/PX4/PX4_SensorBaro.opi | 443 ++++++++++++++++++ .../Displays/Apps/SC/Main.opi | 3 +- .../Displays/Apps/SCH/Main.opi | 3 +- .../Displays/Apps/SENS/Main.opi | 6 +- .../Displays/Apps/TO/Main.opi | 3 +- .../Displays/Apps/VM/Main.opi | 3 +- 17 files changed, 515 insertions(+), 15 deletions(-) create mode 100644 core/base/tools/commander/workspace_template/Displays/Apps/PX4/Main.opi create mode 100644 core/base/tools/commander/workspace_template/Displays/Apps/PX4/PX4_SensorBaro.opi diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/CI/Main.opi b/core/base/tools/commander/workspace_template/Displays/Apps/CI/Main.opi index 46c667f38..519dc6af9 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/CI/Main.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/CI/Main.opi @@ -10,7 +10,7 @@ - 1.5.5.202103012118 + 1.5.5.202103162101 @@ -21,6 +21,7 @@ ci Displays/Core/EVS/Events.opi Displays + /modules/ci CI diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/CS/Main.opi b/core/base/tools/commander/workspace_template/Displays/Apps/CS/Main.opi index 78c9305fc..91c0a8463 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/CS/Main.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/CS/Main.opi @@ -10,7 +10,7 @@ - 1.5.5.202103012118 + 1.5.5.202103162101 @@ -21,6 +21,7 @@ cs /Displays/Core/EVS/Events.opi Displays + /modules/cs CS diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/DS/Main.opi b/core/base/tools/commander/workspace_template/Displays/Apps/DS/Main.opi index 4527e6154..b4e3825cd 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/DS/Main.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/DS/Main.opi @@ -10,7 +10,7 @@ - 1.5.5.202103012118 + 1.5.5.202103162101 @@ -21,6 +21,7 @@ ds Displays /Displays/Core/EVS/Events.opi + /modules/ds DS diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/FM/Main.opi b/core/base/tools/commander/workspace_template/Displays/Apps/FM/Main.opi index 1f1a96f1d..99c5c40d7 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/FM/Main.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/FM/Main.opi @@ -10,7 +10,7 @@ - 1.5.5.202103012118 + 1.5.5.202103162101 @@ -21,6 +21,7 @@ fm /Displays/Core/EVS/Events.opi Displays + /modules/fm FM diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/HK/Main.opi b/core/base/tools/commander/workspace_template/Displays/Apps/HK/Main.opi index c00fb575e..4b1503284 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/HK/Main.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/HK/Main.opi @@ -10,7 +10,7 @@ - 1.5.5.202103012118 + 1.5.5.202103162101 @@ -21,6 +21,7 @@ hk /Displays/Core/EVS/Events.opi Displays + /modules/hk HK diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/HS/Main.opi b/core/base/tools/commander/workspace_template/Displays/Apps/HS/Main.opi index beb379ef2..262e33024 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/HS/Main.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/HS/Main.opi @@ -10,7 +10,7 @@ - 1.5.5.202103012118 + 1.5.5.202103162101 @@ -21,6 +21,7 @@ hs Displays /Displays/Core/EVS/Events.opi + /modules/hs HS diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/LC/Main.opi b/core/base/tools/commander/workspace_template/Displays/Apps/LC/Main.opi index 2a62b2bd5..db7a4d206 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/LC/Main.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/LC/Main.opi @@ -10,7 +10,7 @@ - 1.5.5.202103012118 + 1.5.5.202103162101 @@ -21,6 +21,7 @@ lc /Displays/Core/EVS/Events.opi Displays + /modules/lc LC diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/MD/Main.opi b/core/base/tools/commander/workspace_template/Displays/Apps/MD/Main.opi index 69614f280..36583a9c7 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/MD/Main.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/MD/Main.opi @@ -10,7 +10,7 @@ - 1.5.5.202103012118 + 1.5.5.202103162101 @@ -21,6 +21,7 @@ md /Displays/Core/EVS/Events.opi Displays + /modules/md MD diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/MM/Main.opi b/core/base/tools/commander/workspace_template/Displays/Apps/MM/Main.opi index 0ea30d8e6..845f91955 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/MM/Main.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/MM/Main.opi @@ -10,7 +10,7 @@ - 1.5.5.202103012118 + 1.5.5.202103162101 @@ -21,6 +21,7 @@ mm /Displays/Core/EVS/Events.opi Displays + /modules/mm MM diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/PE/Main.opi b/core/base/tools/commander/workspace_template/Displays/Apps/PE/Main.opi index e1e3993b0..be314fb17 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/PE/Main.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/PE/Main.opi @@ -10,7 +10,7 @@ - 1.5.5.202103012118 + 1.5.5.202103162101 @@ -21,6 +21,7 @@ pe /Displays/Core/EVS/Events.opi Displays + /modules/pe PE diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/PX4/Main.opi b/core/base/tools/commander/workspace_template/Displays/Apps/PX4/Main.opi new file mode 100644 index 000000000..06f50133f --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/Apps/PX4/Main.opi @@ -0,0 +1,39 @@ + + + + + false + -1 + -1 + + false + + + + 1.5.5.202103162101 + + + + 6 + 600 + + true + px4lib + /Displays/Core/EVS/Events.opi + Displays + /modules/px4lib + + + + + true + true + true + true + true + Display + 800 + d1efcc2:1783ce91f6a:-5566 + -1 + -1 + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/PX4/PX4_SensorBaro.opi b/core/base/tools/commander/workspace_template/Displays/Apps/PX4/PX4_SensorBaro.opi new file mode 100644 index 000000000..c690a15b8 --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/Apps/PX4/PX4_SensorBaro.opi @@ -0,0 +1,443 @@ + + + + + false + -1 + -1 + + false + + + + 1.5.5.202103162101 + + + + 6 + 600 + + true + + + + + true + true + true + true + true + Display + 800 + 38eec03c:177b63c5c3c:-7e77 + -1 + -1 + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label + + + true + true + false + + + Pressure + + true + 1 + true + Label + 80 + false + 38eec03c:177b63c5c3c:-7df0 + 89 + 78 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update + 2 + false + /cfs/px4lib/PX4_SensorBaroMsg_t.Pressure + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + 38eec03c:177b63c5c3c:-7ded + 174 + 78 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_1 + + + true + true + false + + + Temperature + + true + 1 + true + Label + 97 + false + 38eec03c:177b63c5c3c:-7ddf + 72 + 97 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_1 + 1 + false + /cfs/px4lib/PX4_SensorBaroMsg_t.Temperature + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + 38eec03c:177b63c5c3c:-7dde + 174 + 97 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_2 + + + true + true + false + + + Altitude + + true + 1 + true + Label + 97 + false + 38eec03c:177b63c5c3c:-7da1 + 72 + 116 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_2 + 3 + false + /cfs/px4lib/PX4_SensorBaroMsg_t.Altitude + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + 38eec03c:177b63c5c3c:-7da0 + 174 + 116 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_3 + + + true + true + false + + + Errors + + true + 1 + true + Label + 97 + false + d1efcc2:1783ce91f6a:-55ca + 72 + 135 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_3 + 3 + false + /cfs/px4lib/PX4_SensorBaroMsg_t.ErrorCount + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + d1efcc2:1783ce91f6a:-55c9 + 174 + 135 + + + + false + + + + + + + 0 + 1 + true + + Default Bold + + + + + 20 + 1 + Label_114 + + + true + true + false + + + PX4Lib - Baro + + true + 1 + true + Label + 237 + false + d1efcc2:1783ce91f6a:-5599 + 71 + 44 + + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/SC/Main.opi b/core/base/tools/commander/workspace_template/Displays/Apps/SC/Main.opi index 0ad705e43..7b23cfa32 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/SC/Main.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/SC/Main.opi @@ -10,7 +10,7 @@ - 1.5.5.202103012118 + 1.5.5.202103162101 @@ -21,6 +21,7 @@ sc /Displays/Core/EVS/Events.opi Displays + /modules/sc SC diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/SCH/Main.opi b/core/base/tools/commander/workspace_template/Displays/Apps/SCH/Main.opi index c479a6622..3f46df4af 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/SCH/Main.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/SCH/Main.opi @@ -10,7 +10,7 @@ - 1.5.5.202103012118 + 1.5.5.202103162101 @@ -21,6 +21,7 @@ sch /Displays/Core/EVS/Events.opi Displays + /modules/sch SCH diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/SENS/Main.opi b/core/base/tools/commander/workspace_template/Displays/Apps/SENS/Main.opi index 2db5dce2f..8ab6ec2d5 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/SENS/Main.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/SENS/Main.opi @@ -10,7 +10,7 @@ - 1.5.5.202103012118 + 1.5.5.202103162101 @@ -18,6 +18,10 @@ 630 true + sens + /Displays/Core/EVS/Events.opi + Displays + /modules/sens SENS diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/TO/Main.opi b/core/base/tools/commander/workspace_template/Displays/Apps/TO/Main.opi index 2e7db96c5..aa774e317 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/TO/Main.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/TO/Main.opi @@ -10,7 +10,7 @@ - 1.5.5.202103012118 + 1.5.5.202103162101 @@ -21,6 +21,7 @@ to Displays /Displays/Core/EVS/Events.opi + /modules/to TO diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/VM/Main.opi b/core/base/tools/commander/workspace_template/Displays/Apps/VM/Main.opi index 9d3729914..4b2eddeca 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/VM/Main.opi +++ b/core/base/tools/commander/workspace_template/Displays/Apps/VM/Main.opi @@ -10,7 +10,7 @@ - 1.5.5.202103012118 + 1.5.5.202103162101 @@ -21,6 +21,7 @@ vm /Displays/Core/EVS/Events.opi Displays + /modules/vm VM From 4e967566b694304d78c27d2ec013f4e0c78eb4c2 Mon Sep 17 00:00:00 2001 From: lorenzo-gomez-windhover Date: Tue, 16 Mar 2021 17:11:44 -0500 Subject: [PATCH 224/370] -Better OPI validation(plenty of room for improvement) --- .../workspace_template/Displays/Resources/opi_util/util.py | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/core/base/tools/commander/workspace_template/Displays/Resources/opi_util/util.py b/core/base/tools/commander/workspace_template/Displays/Resources/opi_util/util.py index a79db8814..daccb274c 100644 --- a/core/base/tools/commander/workspace_template/Displays/Resources/opi_util/util.py +++ b/core/base/tools/commander/workspace_template/Displays/Resources/opi_util/util.py @@ -14,10 +14,8 @@ def validate_opi(display): # for details. app_name = display.getMacroValue("APP") project_name = display.getMacroValue("PROJECT_NAME") - yaml_path = display.getMacroValue("YAML_PATH") - template_opi = display.getMacroValue("TEMPLATE_OPI") - if app_name is None or project_name is None or yaml_path is None or template_opi is None: + if app_name is None or project_name is None: is_valid = False return is_valid \ No newline at end of file From d331b8728555bcb84cdd1416a30d54cb7c0b88c3 Mon Sep 17 00:00:00 2001 From: lorenzo-gomez-windhover Date: Tue, 16 Mar 2021 17:12:32 -0500 Subject: [PATCH 225/370] -Better OPI validation(plenty of room for improvement) --- .../Displays/Core/EVS/Scripts/Python/events_init.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/base/tools/commander/workspace_template/Displays/Core/EVS/Scripts/Python/events_init.py b/core/base/tools/commander/workspace_template/Displays/Core/EVS/Scripts/Python/events_init.py index 54432ad00..a4f481d4d 100644 --- a/core/base/tools/commander/workspace_template/Displays/Core/EVS/Scripts/Python/events_init.py +++ b/core/base/tools/commander/workspace_template/Displays/Core/EVS/Scripts/Python/events_init.py @@ -41,7 +41,7 @@ def main(): logging.basicConfig() logger = logging.getLogger('events_init') if util.validate_opi(display) is False: - logger.warning("OPI is not valid. Ensure that the APP, PROJECT_NAME, TEMPLATE_OPI and YAML_PATH macros have some kind of " + logger.warning("OPI is not valid. Ensure that the APP and PROJECT_NAME macros have some kind of " "value.") return -1 From d137b55d5b2bb336c927579055b8ec7b8cc41312 Mon Sep 17 00:00:00 2001 From: lorenzo-gomez-windhover Date: Tue, 16 Mar 2021 17:32:16 -0500 Subject: [PATCH 226/370] -Added Registry Paths to Core --- .../commander/workspace_template/Displays/Core/ES/Main.opi | 3 ++- .../commander/workspace_template/Displays/Core/EVS/Main.opi | 3 ++- .../commander/workspace_template/Displays/Core/SB/Main.opi | 3 ++- .../commander/workspace_template/Displays/Core/TBL/Main.opi | 3 ++- .../commander/workspace_template/Displays/Core/TIME/Main.opi | 3 ++- 5 files changed, 10 insertions(+), 5 deletions(-) diff --git a/core/base/tools/commander/workspace_template/Displays/Core/ES/Main.opi b/core/base/tools/commander/workspace_template/Displays/Core/ES/Main.opi index e8f87b647..044177bbb 100644 --- a/core/base/tools/commander/workspace_template/Displays/Core/ES/Main.opi +++ b/core/base/tools/commander/workspace_template/Displays/Core/ES/Main.opi @@ -10,7 +10,7 @@ - 1.5.5.202103012118 + 1.5.5.202103162101 @@ -21,6 +21,7 @@ cfe_es /Displays/Core/EVS/Events.opi Displays + /modules/core/modules/cfe/modules/cfe_es CFE-ES - Main diff --git a/core/base/tools/commander/workspace_template/Displays/Core/EVS/Main.opi b/core/base/tools/commander/workspace_template/Displays/Core/EVS/Main.opi index 60525b7db..e8aa9e25c 100644 --- a/core/base/tools/commander/workspace_template/Displays/Core/EVS/Main.opi +++ b/core/base/tools/commander/workspace_template/Displays/Core/EVS/Main.opi @@ -10,7 +10,7 @@ - 1.5.5.202103012118 + 1.5.5.202103162101 @@ -21,6 +21,7 @@ cfe_evs /Displays/Core/EVS/Events.opi Displays + /modules/core/modules/cfe/modules/cfe_evs CFE-EVS diff --git a/core/base/tools/commander/workspace_template/Displays/Core/SB/Main.opi b/core/base/tools/commander/workspace_template/Displays/Core/SB/Main.opi index cc4511ddd..cc537ede6 100644 --- a/core/base/tools/commander/workspace_template/Displays/Core/SB/Main.opi +++ b/core/base/tools/commander/workspace_template/Displays/Core/SB/Main.opi @@ -10,7 +10,7 @@ - 1.5.5.202103012118 + 1.5.5.202103162101 @@ -21,6 +21,7 @@ cfe_sb /Displays/Core/EVS/Events.opi Displays + /modules/core/modules/cfe/modules/cfe_sb CFE-SB diff --git a/core/base/tools/commander/workspace_template/Displays/Core/TBL/Main.opi b/core/base/tools/commander/workspace_template/Displays/Core/TBL/Main.opi index a1f95621e..a5019cc4c 100644 --- a/core/base/tools/commander/workspace_template/Displays/Core/TBL/Main.opi +++ b/core/base/tools/commander/workspace_template/Displays/Core/TBL/Main.opi @@ -10,7 +10,7 @@ - 1.5.5.202103012118 + 1.5.5.202103162101 @@ -21,6 +21,7 @@ cfe_tbl /Displays/Core/EVS/Events.opi Displays + /modules/core/modules/cfe/modules/cfe_tbl CFE-TBL diff --git a/core/base/tools/commander/workspace_template/Displays/Core/TIME/Main.opi b/core/base/tools/commander/workspace_template/Displays/Core/TIME/Main.opi index 9a2ddeb52..1c309aa30 100644 --- a/core/base/tools/commander/workspace_template/Displays/Core/TIME/Main.opi +++ b/core/base/tools/commander/workspace_template/Displays/Core/TIME/Main.opi @@ -10,7 +10,7 @@ - 1.5.5.202103012118 + 1.5.5.202103162101 @@ -21,6 +21,7 @@ cfe_time /Displays/Core/EVS/Events.opi Displays + /modules/core/modules/cfe/modules/cfe_es From 57072d7bfdc63bcb17259da0a94fc5ef134fe5f1 Mon Sep 17 00:00:00 2001 From: lorenzo-gomez-windhover Date: Wed, 17 Mar 2021 10:10:47 -0500 Subject: [PATCH 227/370] -Moved registry functions to util API (cherry picked from commit 9e6ae8511ce86dc7617621bc3ba35acac6af417a) --- .../Core/EVS/Scripts/Python/events_init.py | 30 ++++++------------- .../Displays/Resources/opi_util/util.py | 30 ++++++++++++++++++- 2 files changed, 38 insertions(+), 22 deletions(-) diff --git a/core/base/tools/commander/workspace_template/Displays/Core/EVS/Scripts/Python/events_init.py b/core/base/tools/commander/workspace_template/Displays/Core/EVS/Scripts/Python/events_init.py index a4f481d4d..413b6df4f 100644 --- a/core/base/tools/commander/workspace_template/Displays/Core/EVS/Scripts/Python/events_init.py +++ b/core/base/tools/commander/workspace_template/Displays/Core/EVS/Scripts/Python/events_init.py @@ -21,22 +21,6 @@ from Resources.opi_util import util -def get_events_from_registry(registry, module_path): - """ - Fetch the events from the YAML file. This function assumes that the registry has been loaded. - :param module(str): The name of the module(or app) from which we want to fetch events from. - :param logger: - :return: A dict object that has all of the events. - """ - return registry.get(ConfigRegistry.appendPath(module_path, "events")) - - -def get_long_name_from_registry(registry, module_path): - """ - This function assumes that the registry has been loaded. - """ - return registry.get(ConfigRegistry.appendPath(module_path, "long_name")) - def main(): logging.basicConfig() logger = logging.getLogger('events_init') @@ -52,7 +36,7 @@ def main(): app_name = display.getMacroValue("APP") project_name = display.getMacroValue("PROJECT_NAME") - events = get_events_from_registry(registry, registry_path) + events = util.get_events_from_registry(registry, registry_path) for event in events: event_label = "{} ({}) ".format(event, events[event]['id']) @@ -70,17 +54,21 @@ def main(): display.getWidget("EventsTable").addChild(new_event_record) # Access children of new_event_record only AFTER they are added to the display container - new_event_record.getChildByName("EventRecordTemplate").getChildByName("EventId").setPropertyValue("text", event_label) + new_event_record.getChildByName("EventRecordTemplate").getChildByName("EventId").setPropertyValue("text", + event_label) # Create the variables we need to be able to access data from button scripts. - new_event_record.getChildByName("EventRecordTemplate").getChildByName("DeleteFilter").setPropertyValue("pv_value",str(events[event]['id'])) - new_event_record.getChildByName("EventRecordTemplate").getChildByName("ResetFilter").setPropertyValue("pv_value",str(events[event]['id'])) + new_event_record.getChildByName("EventRecordTemplate").getChildByName("DeleteFilter").setPropertyValue( + "pv_value", str(events[event]['id'])) + new_event_record.getChildByName("EventRecordTemplate").getChildByName("ResetFilter").setPropertyValue( + "pv_value", str(events[event]['id'])) event_macros = DataUtil.createMacrosInput(False) event_macros.put("EVENTID", str(events[event]['id'])) new_event_record.getChildByName("EventRecordTemplate").setPropertyValue("macros", event_macros) - long_name = get_long_name_from_registry(registry, registry_path) + long_name = util.get_long_name_from_registry(registry, registry_path) display.getWidget("app_name").setPropertyValue("text", long_name) + main() diff --git a/core/base/tools/commander/workspace_template/Displays/Resources/opi_util/util.py b/core/base/tools/commander/workspace_template/Displays/Resources/opi_util/util.py index daccb274c..ad6cf525a 100644 --- a/core/base/tools/commander/workspace_template/Displays/Resources/opi_util/util.py +++ b/core/base/tools/commander/workspace_template/Displays/Resources/opi_util/util.py @@ -1,6 +1,7 @@ """ utility API for OPI Script authors. """ +from com.windhoverlabs.studio.registry import ConfigRegistry def validate_opi(display): """ @@ -18,4 +19,31 @@ def validate_opi(display): if app_name is None or project_name is None: is_valid = False - return is_valid \ No newline at end of file + return is_valid + + +def get_events_from_registry(registry, module_path): + """ + Fetch the events from the registry. This function assumes that the registry has been loaded. + It is also assumed that the module path follows our configuration schema of "/modules/app" + :param registry(com.windhoverlabs.studio.registry.ConfigRegistry): The registry object. + :param module_path(str): + :return: A dict object that has all of the events. + """ + return registry.get(ConfigRegistry.appendPath(module_path, "events")) + + +def get_long_name_from_registry(registry, module_path): + """ + This function assumes that the registry has been loaded. + It is also assumed that the module path follows our configuration schema of "/modules/app" + """ + return registry.get(ConfigRegistry.appendPath(module_path, "long_name")) + + +def get_short_name_from_registry(registry, module_path): + """ + This function assumes that the registry has been loaded. + It is also assumed that the module path follows our configuration schema of "/modules/app" + """ + return registry.get(ConfigRegistry.appendPath(module_path, "short_name")) From 00ae16b62e37e08800f54e672cbcc44aee9971a7 Mon Sep 17 00:00:00 2001 From: lorenzo-gomez-windhover Date: Wed, 17 Mar 2021 10:31:26 -0500 Subject: [PATCH 228/370] -Added Registry Paths to AppControl Script (cherry picked from commit 2a4d22233be3759aabdc5acf58b5d79a796d3587) --- .../Core/ES/ApplicationControl_App.opi | 4 +- .../ES/Resources/Scripts/AppControlInit.py | 54 ++++++------------- 2 files changed, 17 insertions(+), 41 deletions(-) diff --git a/core/base/tools/commander/workspace_template/Displays/Core/ES/ApplicationControl_App.opi b/core/base/tools/commander/workspace_template/Displays/Core/ES/ApplicationControl_App.opi index 05bf3f183..ce1e73616 100644 --- a/core/base/tools/commander/workspace_template/Displays/Core/ES/ApplicationControl_App.opi +++ b/core/base/tools/commander/workspace_template/Displays/Core/ES/ApplicationControl_App.opi @@ -10,7 +10,7 @@ - 1.5.5.202103101551 + 1.5.5.202103162101 @@ -18,7 +18,7 @@ 500 true - /Displays/Resources/definitions.yaml + /modules/core/modules/cfe/modules/cfe_es App Control diff --git a/core/base/tools/commander/workspace_template/Displays/Core/ES/Resources/Scripts/AppControlInit.py b/core/base/tools/commander/workspace_template/Displays/Core/ES/Resources/Scripts/AppControlInit.py index 22287957e..b9106522a 100644 --- a/core/base/tools/commander/workspace_template/Displays/Core/ES/Resources/Scripts/AppControlInit.py +++ b/core/base/tools/commander/workspace_template/Displays/Core/ES/Resources/Scripts/AppControlInit.py @@ -1,16 +1,22 @@ """ -This script auto-generates event ids rows for each event id found in the YAML file. It essentially creates LinkingContainer[1] -widgets and uses EventRecord.opi to generates a container widget for each event in airliner confuration. +This script auto-generates an instance of the AppControl OPI. It essentially creates LinkingContainer[1] +widgets and links it to ApplicationControl_App.opi. [1]:https://docs.yamcs.org/yamcs-studio/ """ # import java packages from org.csstudio.opibuilder.scriptUtil import PVUtil, ScriptUtil, FileUtil, WidgetUtil, DataUtil -from org.csstudio.opibuilder.scriptUtil import YAMLUtil +from com.windhoverlabs.studio.registry import YAMLRegistry from org.eclipse.swt.graphics import RGB # import python packages import logging +import sys + +# import our own APIs. Not sure if this is the cleanest way of doing this. If we don't do it this way, we might have add +# an __init__.py to every directory in the project. Don't want to hardcode this path either; open to ideas about this. +sys.path.append(FileUtil.workspacePathToSysPath("Displays")) +from Resources.opi_util import util def is_opi_app_specific(): @@ -21,39 +27,9 @@ def is_opi_app_specific(): """ is_specific = True - # getMacroValue returns a unicode object, NOT an str object. See "5.6.1. String Methods" of the python2.7.18 docs - # for details. - app_name = display.getMacroValue("APP") - project_name = display.getMacroValue("PROJECT_NAME") - yaml_path = display.getMacroValue("CONFIG_REGISTRY") - - #if app_name is None or project_name is None or yaml_path is None: - # is_specific = False - return is_specific -def get_module(in_module, yaml_data): - """ - Get the module data from yaml_data dict. Especially useful for when the modules are structured in - a hierarchical fashion like our config files. - - :param in_module(str): The name of the module to look for. - :param yaml_data(dcit): The dictionary that has the configruation data. - - :return dict: The dictionary with the data of module. - """ - module_data = None - for module in yaml_data['modules']: - # FIXME: More succinct way of doing this? - if 'modules' in yaml_data['modules'][module]: - module_data = get_module(in_module, yaml_data['modules'][module]) - if in_module == module: - module_data = yaml_data['modules'][in_module] - - return module_data - - def main(): logging.basicConfig() logger = logging.getLogger('AppControl') @@ -62,13 +38,13 @@ def main(): logger.warning(app_name) project_name = display.getMacroValue("PROJECT_NAME") logger.warning(project_name) - yaml_path_macro = display.getMacroValue("CONFIG_REGISTRY") - logger.warning(yaml_path_macro) - yaml_path = FileUtil.workspacePathToSysPath(yaml_path_macro) - yaml_data = YAMLUtil.parseYAML(yaml_path) - module_data = get_module(app_name, yaml_data) + registry_path = display.getMacroValue("REGISTRY_PATH") + + registry = YAMLRegistry() + + display.getWidget("app_name").setPropertyValue("text", util.get_short_name_from_registry(registry, + registry_path).upper() + " - App Control") - display.getWidget("app_name").setPropertyValue("text", module_data['short_name'].upper() + " - App Control") main() From 006993c924e81fa7dfe15089cfd11ecd98f3a38c Mon Sep 17 00:00:00 2001 From: lorenzo-gomez-windhover Date: Wed, 17 Mar 2021 12:47:13 -0500 Subject: [PATCH 229/370] -Set perf filter script is written in python now; the mask does not overflow now --- .../Displays/Core/ES/PerfCollection.opi | 35 +++++++++---------- 1 file changed, 16 insertions(+), 19 deletions(-) diff --git a/core/base/tools/commander/workspace_template/Displays/Core/ES/PerfCollection.opi b/core/base/tools/commander/workspace_template/Displays/Core/ES/PerfCollection.opi index 3dc848c9b..256ddc5c8 100644 --- a/core/base/tools/commander/workspace_template/Displays/Core/ES/PerfCollection.opi +++ b/core/base/tools/commander/workspace_template/Displays/Core/ES/PerfCollection.opi @@ -10,7 +10,7 @@ - 1.5.3 + 1.5.5.202103162101 @@ -8508,31 +8508,28 @@ $(pv_value) - + - = 0) { - if(i < 31) { - maskValue = Math.pow(2, i - 1) + maskValue; - } else { - maskValue = maskValue | 0x80000000; - } - } -} +for i in range(1,32): + RequestFilterName = 'FilterRequest' + str(i); + perfIdValue = VTypeHelper.getDouble(display.getWidget(RequestFilterName).getPropertyValue('pv_value')); + if i<31: + maskValue = int(math.pow(2, i-1)) + maskValue + else: + maskValue = int(maskValue) | 0x80000000 Yamcs.issueCommand( '/cfs/cfe_es/PerfSetFilterMask', { 'Payload.FilterMaskNum': maskNumber, - 'Payload.FilterMask': '4294967295'});]]> + 'Payload.FilterMask': maskValue});]]> true From 8f47b33cb527f36e220a95a9b0df96641a0f071e Mon Sep 17 00:00:00 2001 From: cnalley Date: Wed, 17 Mar 2021 22:19:40 +0000 Subject: [PATCH 230/370] Updates sitl tables to latest. --- apps/sbn/fsw/src/sbn_cmds.c | 2 +- .../sitl/target/apps/pq_lib/tables/pq_cfg.c | 3 - .../target/apps/sch/tables/sch_def_msgtbl.c | 10 +- .../target/apps/sch/tables/sch_def_schtbl.c | 116 +++++++++++++++--- 4 files changed, 102 insertions(+), 29 deletions(-) diff --git a/apps/sbn/fsw/src/sbn_cmds.c b/apps/sbn/fsw/src/sbn_cmds.c index a130f0de1..cb90f4a25 100644 --- a/apps/sbn/fsw/src/sbn_cmds.c +++ b/apps/sbn/fsw/src/sbn_cmds.c @@ -376,7 +376,7 @@ static void HKCmd(CFE_SB_MsgPtr_t MsgPtr) CFE_EVS_SendEvent(SBN_PEER_EID, CFE_EVS_ERROR, "network #%d not configured", NetIdx); - return SBN_ERROR; + return; }/* end if */ /* Note: StatusPacket currently unused. */ diff --git a/config/obc/sitl/target/apps/pq_lib/tables/pq_cfg.c b/config/obc/sitl/target/apps/pq_lib/tables/pq_cfg.c index f20daa3ea..989c7f90f 100644 --- a/config/obc/sitl/target/apps/pq_lib/tables/pq_cfg.c +++ b/config/obc/sitl/target/apps/pq_lib/tables/pq_cfg.c @@ -70,7 +70,6 @@ PQ_ChannelTbl_t PQ_ConfigTbl = {EA_HK_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, {VC_HK_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, {GPS_HK_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, - {MAVLINK_HK_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, {CFE_ES_HK_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, {CFE_EVS_HK_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, {CFE_SB_HK_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, @@ -103,8 +102,6 @@ PQ_ChannelTbl_t PQ_ConfigTbl = {SCH_HK_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, {SCH_DIAG_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, {QAE_HK_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, - {FLOW_HK_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, - {FLOW_DIAG_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, {MPC_DIAG_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, {LD_DIAG_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, {PRM_HK_TLM_MID, 1, PQ_PQUEUE_LOW_IDX}, diff --git a/config/obc/sitl/target/apps/sch/tables/sch_def_msgtbl.c b/config/obc/sitl/target/apps/sch/tables/sch_def_msgtbl.c index a46ba95d1..cdfe776cb 100644 --- a/config/obc/sitl/target/apps/sch/tables/sch_def_msgtbl.c +++ b/config/obc/sitl/target/apps/sch/tables/sch_def_msgtbl.c @@ -124,9 +124,9 @@ SCH_MessageEntry_t SCH_DefaultMessageTable[SCH_MAX_MESSAGES] = /* Command ID #41 */ { { SCH_FIX_HEADER(SC_SEND_HK_MID, 0xC000, 0x0001), 0x0000 } }, /* Command ID #42 */ - { { SCH_FIX_HEADER(FLOW_WAKEUP_MID, 0xC000, 0x0001), 0x0000 } }, + { { SCH_FIX_HEADER(SCH_UNUSED_MID, 0, 0), 0 } }, /* Command ID #43 */ - { { SCH_FIX_HEADER(FLOW_SEND_HK_MID, 0xC000, 0x0001), 0x0000 } }, + { { SCH_FIX_HEADER(SCH_UNUSED_MID, 0, 0), 0 } }, /* Command ID #44 */ { { SCH_FIX_HEADER(SCH_UNUSED_MID, 0, 0), 0 } }, /* Command ID #45 */ @@ -278,9 +278,9 @@ SCH_MessageEntry_t SCH_DefaultMessageTable[SCH_MAX_MESSAGES] = /* Command ID #118 */ { { SCH_FIX_HEADER(BAT_WAKEUP_MID, 0xC000, 0x0001), 0x0000 } }, /* Command ID #119 */ - { { SCH_FIX_HEADER(MAVLINK_WAKEUP_MID, 0xC000, 0x0001), 0x0000 } }, + { { SCH_FIX_HEADER(SCH_UNUSED_MID, 0, 0), 0 } }, /* Command ID #120 */ - { { SCH_FIX_HEADER(MAVLINK_SEND_HK_MID, 0xC000, 0x0001), 0x0000 } }, + { { SCH_FIX_HEADER(SCH_UNUSED_MID, 0, 0), 0 } }, /* Command ID #121 */ { { SCH_FIX_HEADER(SCH_UNUSED_MID, 0, 0), 0 } }, /* Command ID #122 */ @@ -292,7 +292,7 @@ SCH_MessageEntry_t SCH_DefaultMessageTable[SCH_MAX_MESSAGES] = /* Command ID #125 */ { { SCH_FIX_HEADER(EA_WAKEUP_MID, 0xC000, 0x0001), 0x0000 } }, /* Command ID #126 */ - { { SCH_FIX_HEADER(EA_PERFMON_MID, 0xC000, 0x0001), 0x0000 } }, + { { SCH_FIX_HEADER(SCH_UNUSED_MID, 0, 0), 0 } }, /* Command ID #127 */ { { SCH_FIX_HEADER(EA_SEND_HK_MID, 0xC000, 0x0001), 0x0000 } } }; diff --git a/config/obc/sitl/target/apps/sch/tables/sch_def_schtbl.c b/config/obc/sitl/target/apps/sch/tables/sch_def_schtbl.c index ee85a6aa4..11bbaef5c 100644 --- a/config/obc/sitl/target/apps/sch/tables/sch_def_schtbl.c +++ b/config/obc/sitl/target/apps/sch/tables/sch_def_schtbl.c @@ -17,6 +17,86 @@ extern "C" { #include "sch_grpids.h" +/* + * Rate Groups + * + +QAE_SEND_HK_MIDX 1Hz, 0 +QAE_WAKEUP_MIDX 250Hz, 0 +AMC_SEND_HK_MIDX 1Hz, 5 +AMC_UPDATE_MOTORS_MIDX 250Hz, 0 +BAT_SEND_HK_MIDX 1Hz, 10 +BAT_WAKEUP_MIDX 10Hz, (15,40,65,90,115,140,165,190,215,240) +CFE_ES_SEND_HK_MIDX 1Hz, 20 +CFE_EVS_SEND_HK_MIDX 1Hz, 25 +CFE_SB_SEND_HK_MIDX 1Hz, 30 +CFE_TIME_SEND_HK_MIDX 1Hz, 35 +CFE_TBL_SEND_HK_MIDX 1Hz, 40 +CFE_TIME_FAKE_CMD_MIDX ---, --- +CFE_TIME_TONE_CMD_MIDX ---, --- +CFE_TIME_1HZ_CMD_MIDX ---, --- +CF_SEND_HK_MIDX 1Hz, 60 +CF_WAKE_UP_REQ_CMD_MIDX 1Hz, 65 +CI_SEND_HK_MIDX 1Hz, 70 +CI_1HZ_PROC_TIMEOUTS_MIDX 1Hz, 74 +CS_BACKGROUND_CYCLE_MIDX ---, --- +CS_SEND_HK_MIDX 1Hz, 75 +DS_SEND_HK_MIDX 1Hz, 80 +EA_SEND_HK_MIDX 1Hz, 85 +EA_WAKEUP_MIDX 1Hz, 100 +GPS_READ_SENSOR_MIDX 1Hz, 105 +GPS_SEND_HK_MIDX 1Hz, 110 +HK_SEND_COMBINED_PKT1_MIDX ---, --- +HK_SEND_COMBINED_PKT2_MIDX ---, --- +HK_SEND_COMBINED_PKT3_MIDX ---, --- +HK_SEND_COMBINED_PKT4_MIDX ---, --- +HK_SEND_COMBINED_PKT5_MIDX ---, --- +HK_SEND_COMBINED_PKT6_MIDX ---, --- +HK_SEND_COMBINED_PKT7_MIDX ---, --- +HK_SEND_COMBINED_PKT8_MIDX ---, --- +HK_SEND_COMBINED_PKT9_MIDX ---, --- +HK_SEND_COMBINED_PKT10_MIDX ---, --- +HK_SEND_HK_MIDX 1Hz, 115 +HMC5883_SEND_HK_MIDX 1Hz, 120 +HMC5883_WAKEUP_MIDX 250Hz, 0 +HS_SEND_HK_MIDX 1Hz, 125 +HS_WAKEUP_MIDX 1Hz, 130 +FM_SEND_HK_MIDX 1Hz, 135 +LC_SEND_HK_MIDX 1Hz, 140 +LD_SEND_HK_MIDX 1Hz, 145 +LD_WAKEUP_MIDX 250Hz, 0 +MD_SEND_HK_MIDX 1Hz, 150 +MD_WAKEUP_MIDX 1Hz, 155 +MM_SEND_HK_MIDX 1Hz, 160 +MAC_SEND_HK_MIDX 1Hz, 165 +MAC_RUN_CONTROLLER_MIDX 250Hz, 0 +MPC_SEND_HK_MIDX 1Hz, 170 +MPC_WAKEUP_MIDX 250Hz, 0 +MPU9250_SEND_HK_MIDX 1Hz, 175 +MPU9250_MEASURE_MIDX 250Hz, 0 +MS5611_SEND_HK_MIDX 1Hz, 180 +MS5611_WAKEUP_MIDX 250Hz, 0 +NAV_SEND_HK_MIDX 1Hz, 185 +NAV_WAKEUP_MIDX 10Hz, (17,42,67,92,117,142,167,192,217,242) +PE_SEND_HK_MIDX 1Hz, 190 +PE_WAKEUP_MIDX 250Hz, 0 +RCIN_WAKEUP_MIDX 50Hz, 205 +RCIN_SEND_HK_MIDX 1Hz, 210 +RGBLED_SEND_HK_MIDX 1Hz, 215 +RGBLED_WAKEUP_MIDX 1Hz, 220 +SC_1HZ_WAKEUP_MIDX 1Hz, 225 +SC_SEND_HK_MIDX 1Hz, 230 +SCH_SEND_HK_MIDX 1Hz, 235 +SENS_WAKEUP_MIDX 250Hz, 0 +TO_SEND_TLM_MIDX 10Hz, (6,31,56,81,106,131,156,181,206,231) +TO_SEND_HK_MIDX 1Hz, 240 +ULR_MEASURE_MIDX 250Hz, 0 +ULR_SEND_HK_MIDX 1Hz, 245 +VC_SEND_HK_MIDX 1Hz, 7 +VC_PROCESS_CMDS_MIDX 1Hz, 12 + +*/ + /* ** Local Defines @@ -57,8 +137,6 @@ extern "C" { #define CS_BACKGROUND_CYCLE_MIDX 39 #define SC_1HZ_WAKEUP_MIDX 40 #define SC_SEND_HK_MIDX 41 -#define FLOW_WAKEUP_MIDX 42 -#define FLOW_SEND_HK_MIDX 43 #define VC_SEND_HK_MIDX 45 #define VC_PROCESS_CMDS_MIDX 46 @@ -126,14 +204,12 @@ extern "C" { #define BAT_SEND_HK_MIDX 117 #define BAT_WAKEUP_MIDX 118 -#define MAVLINK_WAKEUP_MIDX 119 -#define MAVLINK_SEND_HK_MIDX 120 #define GPS_READ_SENSOR_MIDX 122 #define GPS_SEND_HK_MIDX 123 #define EA_WAKEUP_MIDX 125 -#define EA_PERFMON_MIDX 126 + #define EA_SEND_HK_MIDX 127 @@ -187,7 +263,7 @@ SCH_ScheduleEntry_t SCH_DefaultScheduleTable[SCH_TABLE_ENTRIES] = { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, FLOW_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, @@ -612,7 +688,7 @@ SCH_ScheduleEntry_t SCH_DefaultScheduleTable[SCH_TABLE_ENTRIES] = { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, FLOW_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, @@ -782,7 +858,7 @@ SCH_ScheduleEntry_t SCH_DefaultScheduleTable[SCH_TABLE_ENTRIES] = { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAVLINK_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, @@ -799,7 +875,7 @@ SCH_ScheduleEntry_t SCH_DefaultScheduleTable[SCH_TABLE_ENTRIES] = { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAVLINK_SEND_HK_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, @@ -1038,7 +1114,7 @@ SCH_ScheduleEntry_t SCH_DefaultScheduleTable[SCH_TABLE_ENTRIES] = { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, FLOW_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, @@ -1055,7 +1131,7 @@ SCH_ScheduleEntry_t SCH_DefaultScheduleTable[SCH_TABLE_ENTRIES] = { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, FLOW_SEND_HK_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, @@ -1463,7 +1539,7 @@ SCH_ScheduleEntry_t SCH_DefaultScheduleTable[SCH_TABLE_ENTRIES] = { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, FLOW_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, @@ -1685,7 +1761,7 @@ SCH_ScheduleEntry_t SCH_DefaultScheduleTable[SCH_TABLE_ENTRIES] = { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, BAT_WAKEUP_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, EA_PERFMON_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, @@ -1888,7 +1964,7 @@ SCH_ScheduleEntry_t SCH_DefaultScheduleTable[SCH_TABLE_ENTRIES] = { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, FLOW_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, @@ -2313,7 +2389,7 @@ SCH_ScheduleEntry_t SCH_DefaultScheduleTable[SCH_TABLE_ENTRIES] = { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, FLOW_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, @@ -2738,7 +2814,7 @@ SCH_ScheduleEntry_t SCH_DefaultScheduleTable[SCH_TABLE_ENTRIES] = { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, FLOW_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, @@ -3163,7 +3239,7 @@ SCH_ScheduleEntry_t SCH_DefaultScheduleTable[SCH_TABLE_ENTRIES] = { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, FLOW_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, @@ -3363,7 +3439,7 @@ SCH_ScheduleEntry_t SCH_DefaultScheduleTable[SCH_TABLE_ENTRIES] = { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MAC_RUN_CONTROLLER_MIDX, SCH_GROUP_NONE }, { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPC_WAKEUP_MIDX, SCH_GROUP_NONE }, { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, MPU9250_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, LC_SAMPLE_AP_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, @@ -3588,7 +3664,7 @@ SCH_ScheduleEntry_t SCH_DefaultScheduleTable[SCH_TABLE_ENTRIES] = { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, PE_WAKEUP_MIDX, SCH_GROUP_NONE }, { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, FLOW_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, @@ -4013,7 +4089,7 @@ SCH_ScheduleEntry_t SCH_DefaultScheduleTable[SCH_TABLE_ENTRIES] = { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, SENS_WAKEUP_MIDX, SCH_GROUP_NONE }, { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, ULR_MEASURE_MIDX, SCH_GROUP_NONE }, - { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, FLOW_WAKEUP_MIDX, SCH_GROUP_NONE }, + { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, { SCH_UNUSED, 0, 0, 0, 0, SCH_GROUP_NONE }, { SCH_ENABLED, SCH_ACTIVITY_SEND_MSG, 1, 0, VM_WAKEUP_MIDX, SCH_GROUP_NONE }, From 1ad7e770add2b7786f53a13cec075d8473474670 Mon Sep 17 00:00:00 2001 From: cnalley Date: Wed, 17 Mar 2021 23:24:37 +0000 Subject: [PATCH 231/370] More tables and build updates for sitl config. --- apps/sbn/fsw/src/sbn_app.c | 18 ++++--- .../modules/mbox/fsw/for_build/CMakeLists.txt | 3 ++ config/obc/sitl/target/CMakeLists.txt | 7 +++ .../obc/sitl/target/apps/sbn/CMakeLists.txt | 10 ++++ .../apps/sbn/tables/mbox/SbnModuleData.dat | 9 ++++ .../apps/sbn/tables/mbox/SbnPeerData.dat | 51 +++++++++++++++++++ 6 files changed, 91 insertions(+), 7 deletions(-) create mode 100644 config/obc/sitl/target/apps/sbn/tables/mbox/SbnModuleData.dat create mode 100644 config/obc/sitl/target/apps/sbn/tables/mbox/SbnPeerData.dat diff --git a/apps/sbn/fsw/src/sbn_app.c b/apps/sbn/fsw/src/sbn_app.c index 563865598..121424364 100644 --- a/apps/sbn/fsw/src/sbn_app.c +++ b/apps/sbn/fsw/src/sbn_app.c @@ -1271,9 +1271,9 @@ static int WaitForSBStartup(void) /** \brief SBN Main Routine */ void SBN_AppMain(void) { - int Status = CFE_SUCCESS; - uint32 RunStatus = CFE_ES_APP_RUN, - AppID = 0; + int Status = CFE_SUCCESS; + uint32 RunStatus = CFE_ES_APP_RUN; + uint32 AppID = 0; Status = CFE_ES_RegisterApp(); if(Status != CFE_SUCCESS) @@ -1446,12 +1446,16 @@ void SBN_AppMain(void) /* Wait for event from SB saying it is initialized OR a response from SB to the above messages. TRUE means it needs to re-send subscription requests */ - if(WaitForSBStartup()) SBN_SendSubsRequests(); - - if(Status != CFE_SUCCESS) RunStatus = CFE_ES_APP_ERROR; + if(WaitForSBStartup()) + { + SBN_SendSubsRequests(); + } /* Loop Forever */ - while(CFE_ES_RunLoop(&RunStatus)) WaitForWakeup(SBN_MAIN_LOOP_DELAY); + while(CFE_ES_RunLoop(&RunStatus)) + { + WaitForWakeup(SBN_MAIN_LOOP_DELAY); + } int NetIdx = 0; for(NetIdx = 0; NetIdx < SBN.NetCnt; NetIdx++) diff --git a/apps/sbn/modules/mbox/fsw/for_build/CMakeLists.txt b/apps/sbn/modules/mbox/fsw/for_build/CMakeLists.txt index b1e475797..dd928e67d 100644 --- a/apps/sbn/modules/mbox/fsw/for_build/CMakeLists.txt +++ b/apps/sbn/modules/mbox/fsw/for_build/CMakeLists.txt @@ -38,9 +38,12 @@ buildliner_add_app_def(sbn_mbox ${CMAKE_CURRENT_SOURCE_DIR}/../src/sbn_mailbox_if.h ${CMAKE_CURRENT_SOURCE_DIR}/../src/mailbox_parser.c ${CMAKE_CURRENT_SOURCE_DIR}/../src/mailbox_parser.h + ${CMAKE_CURRENT_SOURCE_DIR}/../stubs/xmbox.c + ${CMAKE_CURRENT_SOURCE_DIR}/../stubs/xmbox.h INCLUDES ${CMAKE_CURRENT_SOURCE_DIR}/../src/ ${CMAKE_CURRENT_SOURCE_DIR}/../../../../fsw/src/ + ${CMAKE_CURRENT_SOURCE_DIR}/../stubs/ ) diff --git a/config/obc/sitl/target/CMakeLists.txt b/config/obc/sitl/target/CMakeLists.txt index 5a7523194..0d9d00ecf 100644 --- a/config/obc/sitl/target/CMakeLists.txt +++ b/config/obc/sitl/target/CMakeLists.txt @@ -138,3 +138,10 @@ buildliner_add_app( sbn_udp DEFINITION ${PROJECT_SOURCE_DIR}/apps/sbn/modules/udp/fsw/for_build ) + +buildliner_add_app( + sbn_mbox + DEFINITION ${PROJECT_SOURCE_DIR}/apps/sbn/modules/mbox/fsw/for_build + CONFIG_SOURCES + ${CMAKE_CURRENT_SOURCE_DIR}/apps/pq_lib/tables/pq_backup_cfg.c +) diff --git a/config/obc/sitl/target/apps/sbn/CMakeLists.txt b/config/obc/sitl/target/apps/sbn/CMakeLists.txt index 044cfcec4..382a241b3 100644 --- a/config/obc/sitl/target/apps/sbn/CMakeLists.txt +++ b/config/obc/sitl/target/apps/sbn/CMakeLists.txt @@ -1 +1,11 @@ set(APP_NAME sbn) + +buildliner_add_table( + ${APP_NAME} + COPY ${CMAKE_CURRENT_SOURCE_DIR}/tables/mbox/SbnModuleData.dat +) + +buildliner_add_table( + ${APP_NAME} + COPY ${CMAKE_CURRENT_SOURCE_DIR}/tables/mbox/SbnPeerData.dat +) diff --git a/config/obc/sitl/target/apps/sbn/tables/mbox/SbnModuleData.dat b/config/obc/sitl/target/apps/sbn/tables/mbox/SbnModuleData.dat new file mode 100644 index 000000000..16937ee46 --- /dev/null +++ b/config/obc/sitl/target/apps/sbn/tables/mbox/SbnModuleData.dat @@ -0,0 +1,9 @@ +5, MBOX, /cf/apps/sbn_mbox.so, SBN_Mbox_Ops; + +! +! Format: ProtocolId, ModuleLocation, IFStructName +! +! Protocol id 1 = UDP, 2 = TCP, 3 = SpacewireRMAP, 4 = Spacewire packet, 5 = Shared Memory, 6 = Serial, 7 = 1553, 8 = DTN +! +! IFStructName is the name of the SBN_InterfaceOperations struct defined for the +! module. diff --git a/config/obc/sitl/target/apps/sbn/tables/mbox/SbnPeerData.dat b/config/obc/sitl/target/apps/sbn/tables/mbox/SbnPeerData.dat new file mode 100644 index 000000000..a5e93071f --- /dev/null +++ b/config/obc/sitl/target/apps/sbn/tables/mbox/SbnPeerData.dat @@ -0,0 +1,51 @@ +PPD, 1, 5, 0x42, 0, 0, /dev/uio0, 0; +CPD, 2, 5, 0x42, 0, 0, /dev/uio0, 0; +! +! The '!' is inserted after the last valid peer line, +! it is not a comment character. +! +! The file may contain up to SBN_MAX_NETWORK_PEERS as defined in sbn_app.h +! +! Column 1: CPU Name (must match CFE_CPU_NAME [in cfe_platform_cfg.h]) +! +! Column 2: CPU ID (must match CFE_CPU_ID [in cfe_platform_cfg.h]) +! +! Column 3: Protocol ID (1 = UDP, 2 = TCP, 3 = SpacewireRMAP, +! 4 = Spacewire packet, 5 = Shared Memory, 6 = Serial, 7 = 1553, +! 8 = DTN +! +! Column 4: Spacecraft ID (must match return value of CFE_PSP_GetSpacecraftID()) +! +! Column 5: QoS (need to describe) +! +! Column 6: Network Number (for grouping affiliated peers, to determine +! which host interface is needed for which peer.) +! +! Columns 7+: Protocol ID-dependent. +! UDP/TCP: 7 = hostname/ip, 8 = port +! +! UDP example: +! +! CPU1, 1, 1, 42, 0, 0, 192.168.1.76, 15820; +! CPU2, 2, 1, 42, 1, 0, 192.168.1.77, 15820; +! The ProtoPort is arbitrary, but must be unique for processor/system. +! +! Shared Memory example (may need updates): +! +! CPU1, 1, 5, 0, 0, 0, 0xfffd0000, 0x1000, 0xfffd1000, 0x1000, 0xfffd2000, 0x1000, 0xfffd3000, 0x1000; +! CPU2, 2, 5, 0, 1, 0, 0xfffd1000, 0x1000, 0xfffd0000, 0x1000, 0xfffd3000, 0x1000, 0xfffd2000, 0x1000; +! +! Serial example (may need updates): +! +! CPU1, 1, 6, 0, 0, 0, /dev/ttyS1, 230400; +! CPU2, 2, 6, 0, 0, 0, /dev/ttyS1, 230400; +! CPU1, 1, 6, 0, 1, 1, /dev/ttyS2, 115200; +! CPU3, 2, 6, 0, 1, 1, /dev/ttyS1, 115200; +! +! NOTE on baud rate: The baud rate must match between pairs, and must be one of the following values: +! 38400, 57600, 115200, 230400 +! Larger baud rates are preferred, especially if SBN will be routing messages larger than 100 bytes. +! However, the highest baud rate may produce tty overruns so test different baud rates for your +! specific system. From 37e534c3bbef2e8c1455a2de619f3a84b19b176e Mon Sep 17 00:00:00 2001 From: cnalley Date: Thu, 18 Mar 2021 20:08:02 +0000 Subject: [PATCH 232/370] Fix pointer bug. --- apps/sbn/modules/mbox/fsw/src/sbn_mailbox_if.c | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/apps/sbn/modules/mbox/fsw/src/sbn_mailbox_if.c b/apps/sbn/modules/mbox/fsw/src/sbn_mailbox_if.c index f9d16153f..0044a9892 100644 --- a/apps/sbn/modules/mbox/fsw/src/sbn_mailbox_if.c +++ b/apps/sbn/modules/mbox/fsw/src/sbn_mailbox_if.c @@ -21,22 +21,22 @@ int MailboxWrite(XMbox *instance, const unsigned int *buffer, unsigned int size) while(1) { - XMbox_Write(instance, buffer[TotalBytesSent], RequestedBytes, &BytesSent); + XMbox_Write(instance, &buffer[TotalBytesSent], RequestedBytes, &BytesSent); RequestedBytes = RequestedBytes - BytesSent; TotalBytesSent = TotalBytesSent + BytesSent; if(TotalBytesSent < RequestedBytes) { - /* Sleep */ - OS_TaskDelay(SBN_MAILBOX_BLOCKING_DELAY); - } - else - { - break; - } + /* Sleep */ + OS_TaskDelay(SBN_MAILBOX_BLOCKING_DELAY); + } + else + { + break; + } } Status = TotalBytesSent; - + end_of_function: return Status; } From 24dce8b663a6d9f7f65a2a717c35a572c8e446ef Mon Sep 17 00:00:00 2001 From: cnalley Date: Thu, 18 Mar 2021 22:51:11 +0000 Subject: [PATCH 233/370] More SBN fixes. --- .../sbn/modules/mbox/fsw/src/sbn_mailbox_if.c | 35 ++++++++++++++++++- .../sbn/modules/mbox/fsw/src/sbn_mailbox_if.h | 2 ++ .../uio_mbox/fsw/src/sbn_uio_mailbox_if.c | 34 ++++++++++++++++-- .../uio_mbox/fsw/src/sbn_uio_mailbox_if.h | 2 ++ 4 files changed, 70 insertions(+), 3 deletions(-) diff --git a/apps/sbn/modules/mbox/fsw/src/sbn_mailbox_if.c b/apps/sbn/modules/mbox/fsw/src/sbn_mailbox_if.c index 0044a9892..0e3e20599 100644 --- a/apps/sbn/modules/mbox/fsw/src/sbn_mailbox_if.c +++ b/apps/sbn/modules/mbox/fsw/src/sbn_mailbox_if.c @@ -24,7 +24,7 @@ int MailboxWrite(XMbox *instance, const unsigned int *buffer, unsigned int size) XMbox_Write(instance, &buffer[TotalBytesSent], RequestedBytes, &BytesSent); RequestedBytes = RequestedBytes - BytesSent; TotalBytesSent = TotalBytesSent + BytesSent; - if(TotalBytesSent < RequestedBytes) + if(TotalBytesSent < (size * 4)) { /* Sleep */ OS_TaskDelay(SBN_MAILBOX_BLOCKING_DELAY); @@ -64,6 +64,8 @@ int MailboxRead(XMbox *instance, unsigned int *buffer, unsigned int size) printf("XMbox_Read Failed %u.\r\n", Status); } + printf("received %u\n", Status); + end_of_function: return Status; } @@ -270,6 +272,7 @@ void SBN_PQ_ChannelHandler(PQ_ChannelData_t *Channel) /* Blocking write. */ (void) MailboxWrite(&SBN_Mailbox_Data.Mbox, &SBN_Mailbox_Data.OutputBuffer[0], SizeInWords + MAILBOX_HEADER_SIZE_WORDS); + printf("sent %u\n", SizeInWords + MAILBOX_HEADER_SIZE_WORDS); iStatus = CFE_ES_PutPoolBuf(Channel->MemPoolHandle, (uint32 *)buffer); if(iStatus < 0) { @@ -333,6 +336,7 @@ static int Recv(SBN_NetInterface_t *Net, SBN_MsgType_t *MsgTypePtr, int SizeRead = 0; unsigned int i = 0; int ReturnValue = SBN_IF_EMPTY; + boolean MessageComplete = FALSE; SizeRead = MailboxRead(&SBN_Mailbox_Data.Mbox, &SBN_Mailbox_Data.InputBuffer[0], @@ -348,6 +352,8 @@ static int Recv(SBN_NetInterface_t *Net, SBN_MsgType_t *MsgTypePtr, &Size); if(Status == MPS_MESSAGE_COMPLETE) { + printf("message complete\n"); + MessageComplete = TRUE; if (SBN_UnpackMsg(&SBN_Mailbox_Data.ParserBuffer[0], MsgSzPtr, MsgTypePtr, CpuIDPtr, Payload) == false) { OS_printf("Unpack failed.\n"); @@ -358,6 +364,33 @@ static int Recv(SBN_NetInterface_t *Net, SBN_MsgType_t *MsgTypePtr, } } } + + if(MessageComplete == FALSE) + { + ReturnValue = SBN_IF_EMPTY; + goto end_of_function; + } + + CFE_SB_MsgId_t MsgID = CFE_SB_GetMsgId((CFE_SB_MsgPtr_t)Payload); + printf("Received %u CPUID %u, %x\n", SizeRead, *CpuIDPtr, MsgID); + + SBN_PeerInterface_t *Peer = SBN_GetPeer(Net, *CpuIDPtr); + if(Peer == NULL) + { + ReturnValue = SBN_ERROR; + goto end_of_function; + } + + + /* TODO update this flag to peer data. */ + if(!SBN_Mailbox_Data.ConnectedFlag) + { + OS_printf("CPU %d connected", *CpuIDPtr); + + SBN_Mailbox_Data.ConnectedFlag = TRUE; + + SBN_SendLocalSubsToPeer(Peer); + } #ifdef SBN_RECV_TASK (void) OS_TaskDelay(MAILBOX_SBN_TASK_DELAY_MSEC); diff --git a/apps/sbn/modules/mbox/fsw/src/sbn_mailbox_if.h b/apps/sbn/modules/mbox/fsw/src/sbn_mailbox_if.h index c011677c1..71839328f 100644 --- a/apps/sbn/modules/mbox/fsw/src/sbn_mailbox_if.h +++ b/apps/sbn/modules/mbox/fsw/src/sbn_mailbox_if.h @@ -49,6 +49,8 @@ typedef struct uint32 ChildTaskID; CFE_ES_ChildTaskMainFuncPtr_t SendTask; boolean TaskContinueFlag; + /* TODO move to peer data. */ + boolean ConnectedFlag; } SBN_Mailbox_Data_t; diff --git a/apps/sbn/modules/uio_mbox/fsw/src/sbn_uio_mailbox_if.c b/apps/sbn/modules/uio_mbox/fsw/src/sbn_uio_mailbox_if.c index 3b3b41e39..04ab9337e 100644 --- a/apps/sbn/modules/uio_mbox/fsw/src/sbn_uio_mailbox_if.c +++ b/apps/sbn/modules/uio_mbox/fsw/src/sbn_uio_mailbox_if.c @@ -388,10 +388,11 @@ static int Recv(SBN_NetInterface_t *Net, SBN_MsgType_t *MsgTypePtr, int SizeRead = 0; unsigned int i = 0; int ReturnValue = SBN_IF_EMPTY; + boolean MessageComplete = FALSE; - SizeRead = MailboxRead(SBN_UIO_Mailbox_Data.Instance, + SizeRead = MailboxRead(&SBN_UIO_Mailbox_Data.Instance, &SBN_UIO_Mailbox_Data.InputBuffer[0], - MAILBOX_MAX_BUFFER_SIZE_WORDS); + sizeof(SBN_UIO_Mailbox_Data.InputBuffer)); if(SizeRead > 0) { for(i = 0; i < SizeRead; ++i) @@ -403,6 +404,8 @@ static int Recv(SBN_NetInterface_t *Net, SBN_MsgType_t *MsgTypePtr, &Size); if(Status == MPS_MESSAGE_COMPLETE) { + printf("message complete\n"); + MessageComplete = TRUE; if (SBN_UnpackMsg(&SBN_UIO_Mailbox_Data.ParserBuffer[0], MsgSzPtr, MsgTypePtr, CpuIDPtr, Payload) == false) { OS_printf("Unpack failed.\n"); @@ -413,6 +416,33 @@ static int Recv(SBN_NetInterface_t *Net, SBN_MsgType_t *MsgTypePtr, } } } + + if(MessageComplete == FALSE) + { + ReturnValue = SBN_IF_EMPTY; + goto end_of_function; + } + + CFE_SB_MsgId_t MsgID = CFE_SB_GetMsgId((CFE_SB_MsgPtr_t)Payload); + printf("Received %u CPUID %u, %x\n", SizeRead, *CpuIDPtr, MsgID); + + SBN_PeerInterface_t *Peer = SBN_GetPeer(Net, *CpuIDPtr); + if(Peer == NULL) + { + ReturnValue = SBN_ERROR; + goto end_of_function; + } + + + /* TODO update this flag to peer data. */ + if(!SBN_UIO_Mailbox_Data.ConnectedFlag) + { + OS_printf("CPU %d connected", *CpuIDPtr); + + SBN_UIO_Mailbox_Data.ConnectedFlag = TRUE; + + SBN_SendLocalSubsToPeer(Peer); + } #ifdef SBN_RECV_TASK (void) OS_TaskDelay(MAILBOX_SBN_TASK_DELAY_MSEC); diff --git a/apps/sbn/modules/uio_mbox/fsw/src/sbn_uio_mailbox_if.h b/apps/sbn/modules/uio_mbox/fsw/src/sbn_uio_mailbox_if.h index 220cd3287..d309aa6eb 100644 --- a/apps/sbn/modules/uio_mbox/fsw/src/sbn_uio_mailbox_if.h +++ b/apps/sbn/modules/uio_mbox/fsw/src/sbn_uio_mailbox_if.h @@ -51,6 +51,8 @@ typedef struct uint32 ChildTaskID; CFE_ES_ChildTaskMainFuncPtr_t SendTask; boolean TaskContinueFlag; + /* TODO move to peer data. */ + boolean ConnectedFlag; } SBN_UIO_Mailbox_Data_t; From be14105dcacb663db079180320bd204c4f892a13 Mon Sep 17 00:00:00 2001 From: lorenzo-gomez-windhover Date: Thu, 18 Mar 2021 18:03:34 -0500 Subject: [PATCH 234/370] -Added perf_init script to ES(Not done yet; check boxes are too small) --- .../Displays/Core/ES/Resources/Scripts/perf_init.py | 0 .../Displays/Core/ES/Resources/Scripts/set_actual_filters.py | 0 2 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 core/base/tools/commander/workspace_template/Displays/Core/ES/Resources/Scripts/perf_init.py create mode 100644 core/base/tools/commander/workspace_template/Displays/Core/ES/Resources/Scripts/set_actual_filters.py diff --git a/core/base/tools/commander/workspace_template/Displays/Core/ES/Resources/Scripts/perf_init.py b/core/base/tools/commander/workspace_template/Displays/Core/ES/Resources/Scripts/perf_init.py new file mode 100644 index 000000000..e69de29bb diff --git a/core/base/tools/commander/workspace_template/Displays/Core/ES/Resources/Scripts/set_actual_filters.py b/core/base/tools/commander/workspace_template/Displays/Core/ES/Resources/Scripts/set_actual_filters.py new file mode 100644 index 000000000..e69de29bb From c0f67b80fcf2725b9d8649f2e0914a7adbc06e88 Mon Sep 17 00:00:00 2001 From: lorenzo-gomez-windhover Date: Thu, 18 Mar 2021 18:05:32 -0500 Subject: [PATCH 235/370] -Updated pef_init. It's not done yet. --- .../Core/ES/Resources/Scripts/perf_init.py | 30 +++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/core/base/tools/commander/workspace_template/Displays/Core/ES/Resources/Scripts/perf_init.py b/core/base/tools/commander/workspace_template/Displays/Core/ES/Resources/Scripts/perf_init.py index e69de29bb..e24a9c013 100644 --- a/core/base/tools/commander/workspace_template/Displays/Core/ES/Resources/Scripts/perf_init.py +++ b/core/base/tools/commander/workspace_template/Displays/Core/ES/Resources/Scripts/perf_init.py @@ -0,0 +1,30 @@ +from org.csstudio.opibuilder.scriptUtil import PVUtil, WidgetUtil +from org.eclipse.swt.graphics import RGB +import math + +def main(): + + display.getWidget("PerfRecordContainer") + + new_perf_record = WidgetUtil.createWidgetModel("org.csstudio.opibuilder.widgets.linkingContainer") + # TODO: Use the enumeration values from Studio to avoid magical strings + new_perf_record.setPropertyValue("opi_file", display.getMacroValue("TEMPLATE_OPI")) + new_perf_record.setPropertyValue("height", 20) + new_perf_record.setPropertyValue("width", 680) + new_perf_record.setPropertyValue("background_color", RGB(255, 255, 255)) + new_perf_record.setPropertyValue("border_color", RGB(240, 240, 240)) + new_perf_record.setPropertyValue("border_style", 0) + new_perf_record.setPropertyValue("name", "perf_name") + + display.getWidget("PerfRecordContainer").addChild(new_perf_record) + # newMask = PVUtil.getLong(pvs[0]) + # + # for i in range(1, 33): + # RequestFilterName = 'FilterActual' + str(i) + # newValue = 0 + # if (newMask & math.pow(2, i - 1)) > 0: + # newValue = 1 + # display.getWidget(RequestFilterName).setPropertyValue('pv_value', newValue) + + +main() \ No newline at end of file From 47f453c5d2c05ba93ee6bff7ebcdeb58946b3f83 Mon Sep 17 00:00:00 2001 From: lorenzo-gomez-windhover Date: Thu, 18 Mar 2021 18:06:08 -0500 Subject: [PATCH 236/370] -Added PerfCollection Templates --- .../ES/Resources/Templates/PerfCollection.opi | 1762 +++++++++++++++++ .../ES/Resources/Templates/PerfRecord.opi | 320 +++ 2 files changed, 2082 insertions(+) create mode 100644 core/base/tools/commander/workspace_template/Displays/Core/ES/Resources/Templates/PerfCollection.opi create mode 100644 core/base/tools/commander/workspace_template/Displays/Core/ES/Resources/Templates/PerfRecord.opi diff --git a/core/base/tools/commander/workspace_template/Displays/Core/ES/Resources/Templates/PerfCollection.opi b/core/base/tools/commander/workspace_template/Displays/Core/ES/Resources/Templates/PerfCollection.opi new file mode 100644 index 000000000..6336f9837 --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/Core/ES/Resources/Templates/PerfCollection.opi @@ -0,0 +1,1762 @@ + + + + + false + -1 + -1 + + false + + + + 1.5.5.202103162101 + + + + 6 + 920 + + true + /Displays/Core/ES/Resources/Templates/PerfRecord.opi + + CFE-ES - Perf + + + + =1 + + + true + true + true + true + true + Display + 800 + 45ea5983:1502a6e6386:-7f06 + -1 + -1 + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_25 + + + true + true + false + + + State + + true + 1 + true + Label + 98 + false + 2b4f25d5:1502b5812fe:-7f04 + 18 + 42 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_27 + + + true + true + false + + + Mode + + true + 1 + true + Label + 98 + false + 2b4f25d5:1502b5812fe:-7eef + 18 + 61 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_28 + + + true + true + false + + + Trigger Count + + true + 1 + true + Label + 98 + false + 2b4f25d5:1502b5812fe:-7ee8 + 18 + 80 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_31 + + + true + true + false + + + Data Start + + true + 1 + true + Label + 98 + false + 2b4f25d5:1502b5812fe:-7ed0 + 359 + 42 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_32 + + + true + true + false + + + Data End + + true + 1 + true + Label + 98 + false + 2b4f25d5:1502b5812fe:-7ec9 + 359 + 61 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_33 + + + true + true + false + + + Data Count + + true + 1 + true + Label + 98 + false + 2b4f25d5:1502b5812fe:-7ec2 + 359 + 80 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 2 + Label_34 + + + true + true + false + + + Data to Write + + true + 1 + true + Label + 98 + false + 2b4f25d5:1502b5812fe:-7ebb + 359 + 99 + + + + false + + + + + + + 0 + 1 + true + + Default Bold + + + + + 20 + 1 + Label_38 + + + true + true + false + + + Performance Collection + + true + 1 + true + Label + 193 + false + 2b4f25d5:1502b5812fe:-7d80 + 243 + 12 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_20 + 0 + false + /cfs/cfe_es/CFE_ES_HkPacket_t.Payload.PerfState + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 210 + false + 2b4f25d5:1502b5812fe:-7ca7 + 132 + 42 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_21 + 0 + false + /cfs/cfe_es/CFE_ES_HkPacket_t.Payload.PerfMode + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 210 + false + 2b4f25d5:1502b5812fe:-7ca2 + 132 + 61 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_22 + 0 + false + /cfs/cfe_es/CFE_ES_HkPacket_t.Payload.PerfTriggerCount + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 210 + false + 2b4f25d5:1502b5812fe:-7c9d + 132 + 80 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_25 + 0 + false + /cfs/cfe_es/CFE_ES_HkPacket_t.Payload.PerfDataStart + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + 2b4f25d5:1502b5812fe:-7c8e + 473 + 42 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_26 + 0 + false + /cfs/cfe_es/CFE_ES_HkPacket_t.Payload.PerfDataEnd + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + 2b4f25d5:1502b5812fe:-7c89 + 473 + 61 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_27 + 0 + false + /cfs/cfe_es/CFE_ES_HkPacket_t.Payload.PerfDataCount + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + 2b4f25d5:1502b5812fe:-7c84 + 473 + 80 + + + + false + false + false + + + + true + + + + 1 + 1 + true + + Default + + false + + + + 0 + 20 + 0 + Text Update_28 + 0 + false + /cfs/cfe_es/CFE_ES_HkPacket_t.Payload.PerfDataToWrite + + 0.0 + + + true + true + false + + + true + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + 2b4f25d5:1502b5812fe:-7c7f + 473 + 99 + + + + + StartPerfCollection.opi + + true + + 1 + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 25 + + Action Button + 0 + + + + + true + true + false + + + + Start + false + $(pv_name) +$(pv_value) + true + Action Button + 69 + -35c7bfc1:1509236a393:-770b + 167 + 118 + + + + + StopPerfCollection.opi + + true + + 1 + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 25 + + Action Button_1 + 0 + + + + + true + true + false + + + + Stop + false + $(pv_name) +$(pv_value) + true + Action Button + 69 + -35c7bfc1:1509236a393:-76fd + 242 + 118 + + + + 0 + + + + + + + 0 + 1 + true + + + + 739 + true + + true + + 10 + Tabbed Container + + + true + true + false + + + + + + true + + Default + + + + + + 1 + + + + true + + Default + + + + + + 2 + + + + true + + Default + + + + + + 3 + + + + true + + Default + + + + + + 4 + 4 + + true + Tabbed Container + 1000 + -35c7bfc1:1509236a393:-7209 + 19 + 150 + + + + + + + + + 0 + 1 + true + false + + Default + + + + + 707 + false + + true + + 1 + + + true + true + false + + + true + + true + true + Grouping Container + 998 + -35c7bfc1:1509236a393:-7208 + 1 + 1 + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 1 + Label_44 + + + true + true + false + + + Actual + + true + 1 + true + Label + 50 + false + -35c7bfc1:1509236a393:-77bf + 204 + 24 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 1 + Label_42 + + + true + true + false + + + Request + + true + 1 + true + Label + 79 + false + -35c7bfc1:1509236a393:-77dc + 115 + 24 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 1 + Label_45 + + + true + true + false + + + Request + + true + 1 + true + Label + 75 + false + -35c7bfc1:1509236a393:-77be + 257 + 24 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 1 + Label_41 + + + true + true + false + + + Actual + + true + 1 + true + Label + 50 + false + -35c7bfc1:1509236a393:-77e6 + 62 + 24 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 1 + Label_43 + + + true + true + false + + + Trigger + + true + 1 + true + Label + 50 + false + -35c7bfc1:1509236a393:-77c0 + 235 + 5 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 1 + Label + + + true + true + false + + + Filter + + true + 1 + true + Label + 50 + false + -35c7bfc1:1509236a393:-7836 + 93 + 5 + + + + + + + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 25 + /Displays/Resources/send.png + Action Button_2 + 0 + + + + + true + true + false + + + + Set + false + $(pv_name) +$(pv_value) + true + Action Button + 55 + -35c7bfc1:1509236a393:-76f0 + 63 + 43 + + + + + + + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 25 + /Displays/Resources/send.png + Action Button_3 + 0 + + + + + true + true + false + + + + Set + false + $(pv_name) +$(pv_value) + true + Action Button + 55 + -35c7bfc1:1509236a393:-76e6 + 205 + 43 + + + + + + + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 25 + + Action Button_2 + 0 + + + + + true + true + false + + + + Reflect + false + $(pv_name) +$(pv_value) + true + Action Button + 65 + -35c7bfc1:1509236a393:-6e6e + 120 + 43 + + + + + + + true + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 25 + + Action Button_2 + 0 + + + + + true + true + false + + + + Reflect + false + $(pv_name) +$(pv_value) + true + Action Button + 65 + -35c7bfc1:1509236a393:-6e60 + 262 + 43 + + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + FilterRequestAll1 + loc://FilterRequestAll1 + + + + true + false + false + + + + EmbeddedScript + + loc://FilterRequestAll1 + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 22 + -35c7bfc1:1509236a393:-4be4 + 142 + 68 + + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 20 + + TriggerRequestAll1 + loc://TriggerRequestAll1 + + + + true + false + false + + + + EmbeddedScript + + loc://TriggerRequestAll1 + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 22 + -35c7bfc1:1509236a393:-4bdf + 284 + 68 + + + + + + + + + + 0 + 1 + true + false + + Default + + + + + 48 + false + + true + + PerfRecordContainer + + + true + true + false + + + true + + false + true + Grouping Container + 980 + 7a03ebb6:17840dde0b7:-6997 + 5 + 96 + + false + 2 + Grid Layout + 1 + Grid Layout + 7a03ebb6:17840dde0b7:-6985 + + + + + + + + + + + + 0 + 1 + true + false + + Default + + + + + 707 + false + + true + + 2 + + + true + true + false + + + true + + true + false + Grouping Container + 998 + -35c7bfc1:1509236a393:-7207 + 1 + 1 + + + + + + + + + + 0 + 1 + true + false + + Default + + + + + 707 + false + + true + + 3 + + + true + true + false + + + true + + true + false + Grouping Container + 998 + -35c7bfc1:1509236a393:-7206 + 1 + 1 + + + + + + + + + + 0 + 1 + true + false + + Default + + + + + 707 + false + + true + + 4 + + + true + true + false + + + true + + true + false + Grouping Container + 998 + -35c7bfc1:1509236a393:-7205 + 1 + 1 + + + \ No newline at end of file diff --git a/core/base/tools/commander/workspace_template/Displays/Core/ES/Resources/Templates/PerfRecord.opi b/core/base/tools/commander/workspace_template/Displays/Core/ES/Resources/Templates/PerfRecord.opi new file mode 100644 index 000000000..92f6cb325 --- /dev/null +++ b/core/base/tools/commander/workspace_template/Displays/Core/ES/Resources/Templates/PerfRecord.opi @@ -0,0 +1,320 @@ + + + + + false + -1 + -1 + + false + + + + 1.5.5.202103162101 + + + + 6 + 36 + + true + + + + + true + true + true + true + true + Display + 655 + 7a03ebb6:17840dde0b7:-6fd0 + -1 + -1 + + + + + + + + + 0 + 1 + true + false + + Default + + + + + 36 + false + + true + + Grouping Container + + + true + true + false + + + true + + false + true + Grouping Container + 655 + 7a03ebb6:17840dde0b7:-6894 + 0 + 0 + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 18 + + FilterActual1 + loc://FilterActual1 + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 18 + 7a03ebb6:17840dde0b7:-6421 + 38 + 6 + + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 18 + + FilterRequest1 + loc://FilterRequest1 + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 18 + 7a03ebb6:17840dde0b7:-6422 + 100 + 6 + + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 18 + + TriggerActual1 + loc://TriggerActual1 + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 18 + 7a03ebb6:17840dde0b7:-641e + 180 + 6 + + + + false + false + false + + + + 0 + true + + + + 0 + 1 + true + + Default + + false + + + + 18 + + TriggerRequest1 + loc://TriggerRequest1 + + + + true + false + false + + + + + + $(pv_name) +$(pv_value) + true + Check Box + 18 + 7a03ebb6:17840dde0b7:-641f + 242 + 6 + + + + false + + + + + + + 0 + 1 + true + + Default + + + + + 20 + 0 + Label_46 + + + true + true + false + + + Performance ID 1 + + true + 1 + true + Label + 328 + false + 7a03ebb6:17840dde0b7:-6420 + 302 + 6 + + + false + 2 + Grid Layout + 5 + Grid Layout + 7a03ebb6:17840dde0b7:-6415 + + + + false + 2 + Grid Layout + 3 + Grid Layout + 7a03ebb6:17840dde0b7:-6185 + + \ No newline at end of file From b9891ad8ae5a9bb34c4d7ac803b932bfa3d51fe2 Mon Sep 17 00:00:00 2001 From: lorenzo-gomez-windhover Date: Thu, 18 Mar 2021 18:06:48 -0500 Subject: [PATCH 237/370] -Updated set perf_filter script --- .../Resources/Scripts/set_actual_filters.py | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/core/base/tools/commander/workspace_template/Displays/Core/ES/Resources/Scripts/set_actual_filters.py b/core/base/tools/commander/workspace_template/Displays/Core/ES/Resources/Scripts/set_actual_filters.py index e69de29bb..1b062850b 100644 --- a/core/base/tools/commander/workspace_template/Displays/Core/ES/Resources/Scripts/set_actual_filters.py +++ b/core/base/tools/commander/workspace_template/Displays/Core/ES/Resources/Scripts/set_actual_filters.py @@ -0,0 +1,22 @@ +from org.csstudio.opibuilder.scriptUtil import PVUtil +from org.yamcs.studio.script import Yamcs +from org.yamcs.studio.data import VTypeHelper + +import math + +maskNumber = 0 +maskValue = 0 + +for i in range(1, 32): + RequestFilterName = 'FilterRequest' + str(i); + perfIdValue = VTypeHelper.getDouble(display.getWidget(RequestFilterName).getPropertyValue('pv_value')); + if i < 31: + maskValue = int(math.pow(2, i - 1)) + maskValue + else: + maskValue = int(maskValue) | 0x80000000 + +Yamcs.issueCommand('/cfs/cfe_es/PerfSetFilterMask', { + 'Payload.FilterMaskNum': maskNumber, + 'Payload.FilterMask': maskValue}) + + From f7ea683df5d6ef703552c9e0ad285888654bc32d Mon Sep 17 00:00:00 2001 From: lorenzo-gomez-windhover Date: Thu, 18 Mar 2021 18:08:30 -0500 Subject: [PATCH 238/370] -Updated TO Diag Script --- .../workspace_template/Displays/Apps/TO/Scripts/query_diag.py | 4 ---- 1 file changed, 4 deletions(-) diff --git a/core/base/tools/commander/workspace_template/Displays/Apps/TO/Scripts/query_diag.py b/core/base/tools/commander/workspace_template/Displays/Apps/TO/Scripts/query_diag.py index d8eb40a28..4ccc418e6 100644 --- a/core/base/tools/commander/workspace_template/Displays/Apps/TO/Scripts/query_diag.py +++ b/core/base/tools/commander/workspace_template/Displays/Apps/TO/Scripts/query_diag.py @@ -2,7 +2,6 @@ from org.yamcs.studio.data import IPVListener from java.lang import Runnable from org.eclipse.swt.widgets import Display -from org.csstudio.opibuilder.scriptUtil import YAMLUtil """ There appears to be a difference between the Widget we see in YAMCS Studio as a user and the "widget" that gets @@ -26,9 +25,6 @@ # FIXME: I really wish we could just access aggregates. Might be possible through the HTTP client API. AGGREGATE_PV = "/cfs/to/TO_ChannelDiagTlm_t.PQueue" -# parseYAML returns a LinkedHashMap(a Java type), but it looks like it behaves like a python dict object. Be wary of this nonetheless. -yaml_data = YAMLUtil.parseYAML("/home/lgomez/airliner/build/bebop2/sitl/target/commander_workspace/etc/yamcs.yaml") - class UI_Business(Runnable): """ From ecb29f3676877c1b067d389d5300e73e55908682 Mon Sep 17 00:00:00 2001 From: cnalley Date: Thu, 18 Mar 2021 23:24:29 +0000 Subject: [PATCH 239/370] More fixes. --- apps/sbn/modules/mbox/fsw/src/sbn_mailbox_if.c | 9 ++++++--- .../modules/uio_mbox/fsw/src/sbn_uio_mailbox_if.c | 13 +++++++++++-- 2 files changed, 17 insertions(+), 5 deletions(-) diff --git a/apps/sbn/modules/mbox/fsw/src/sbn_mailbox_if.c b/apps/sbn/modules/mbox/fsw/src/sbn_mailbox_if.c index 0e3e20599..e85528c83 100644 --- a/apps/sbn/modules/mbox/fsw/src/sbn_mailbox_if.c +++ b/apps/sbn/modules/mbox/fsw/src/sbn_mailbox_if.c @@ -2,6 +2,7 @@ #include "sbn_interfaces.h" #include "sbn_platform_cfg.h" #include "stdbool.h" +#include extern PQ_ChannelTbl_t PQ_BackupConfigTbl; @@ -17,12 +18,15 @@ int MailboxWrite(XMbox *instance, const unsigned int *buffer, unsigned int size) int Status = 0; unsigned int BytesSent = 0; unsigned int TotalBytesSent = 0; + /* Total size in bytes of data to send. */ unsigned int RequestedBytes = size * 4; while(1) { - XMbox_Write(instance, &buffer[TotalBytesSent], RequestedBytes, &BytesSent); + XMbox_Write(instance, &buffer[TotalBytesSent/4], RequestedBytes, &BytesSent); + /* Subtract bytes sent. */ RequestedBytes = RequestedBytes - BytesSent; + /* Add bytes sent to total bytes sent. */ TotalBytesSent = TotalBytesSent + BytesSent; if(TotalBytesSent < (size * 4)) { @@ -272,7 +276,6 @@ void SBN_PQ_ChannelHandler(PQ_ChannelData_t *Channel) /* Blocking write. */ (void) MailboxWrite(&SBN_Mailbox_Data.Mbox, &SBN_Mailbox_Data.OutputBuffer[0], SizeInWords + MAILBOX_HEADER_SIZE_WORDS); - printf("sent %u\n", SizeInWords + MAILBOX_HEADER_SIZE_WORDS); iStatus = CFE_ES_PutPoolBuf(Channel->MemPoolHandle, (uint32 *)buffer); if(iStatus < 0) { @@ -374,6 +377,7 @@ static int Recv(SBN_NetInterface_t *Net, SBN_MsgType_t *MsgTypePtr, CFE_SB_MsgId_t MsgID = CFE_SB_GetMsgId((CFE_SB_MsgPtr_t)Payload); printf("Received %u CPUID %u, %x\n", SizeRead, *CpuIDPtr, MsgID); + /* TODO move this into the if connected check. */ SBN_PeerInterface_t *Peer = SBN_GetPeer(Net, *CpuIDPtr); if(Peer == NULL) { @@ -381,7 +385,6 @@ static int Recv(SBN_NetInterface_t *Net, SBN_MsgType_t *MsgTypePtr, goto end_of_function; } - /* TODO update this flag to peer data. */ if(!SBN_Mailbox_Data.ConnectedFlag) { diff --git a/apps/sbn/modules/uio_mbox/fsw/src/sbn_uio_mailbox_if.c b/apps/sbn/modules/uio_mbox/fsw/src/sbn_uio_mailbox_if.c index 04ab9337e..400b37b07 100644 --- a/apps/sbn/modules/uio_mbox/fsw/src/sbn_uio_mailbox_if.c +++ b/apps/sbn/modules/uio_mbox/fsw/src/sbn_uio_mailbox_if.c @@ -62,7 +62,9 @@ void *InitDevice(const char *path) bool MailboxFull(void *instance) { unsigned int reg = 0; + reg = uio_read(instance, MAILBOX_STATUS_REG); + return reg & MAILBOX_STATUS_FIFO_FULL_BIT; } @@ -70,7 +72,9 @@ bool MailboxFull(void *instance) bool MailboxEmpty(void *instance) { unsigned int reg = 0; + reg = uio_read(instance, MAILBOX_STATUS_REG); + return reg & MAILBOX_STATUS_FIFO_EMPTY_BIT; } @@ -78,7 +82,9 @@ bool MailboxEmpty(void *instance) bool MailboxFullError(void *instance) { unsigned int reg = 0; + reg = uio_read(instance, MAILBOX_ERROR_REG); + return reg & MAILBOX_ERROR_FULL_BIT; } @@ -86,7 +92,9 @@ bool MailboxFullError(void *instance) bool MailboxEmptyError(void *instance) { unsigned int reg = 0; + reg = uio_read(instance, MAILBOX_ERROR_REG); + return reg & MAILBOX_ERROR_EMPTY_BIT; } @@ -374,6 +382,7 @@ static int Send(SBN_PeerInterface_t *Peer, SBN_MsgType_t MsgType, } printf("MsgSz into queue %u\n", MsgSz); + /* Push message onto the PQ */ PQ_Channel_ProcessTelemetry(&SBN_UIO_Mailbox_Data.Channel, Payload); @@ -416,7 +425,7 @@ static int Recv(SBN_NetInterface_t *Net, SBN_MsgType_t *MsgTypePtr, } } } - + if(MessageComplete == FALSE) { ReturnValue = SBN_IF_EMPTY; @@ -426,6 +435,7 @@ static int Recv(SBN_NetInterface_t *Net, SBN_MsgType_t *MsgTypePtr, CFE_SB_MsgId_t MsgID = CFE_SB_GetMsgId((CFE_SB_MsgPtr_t)Payload); printf("Received %u CPUID %u, %x\n", SizeRead, *CpuIDPtr, MsgID); + /* TODO move this into the if connected check. */ SBN_PeerInterface_t *Peer = SBN_GetPeer(Net, *CpuIDPtr); if(Peer == NULL) { @@ -433,7 +443,6 @@ static int Recv(SBN_NetInterface_t *Net, SBN_MsgType_t *MsgTypePtr, goto end_of_function; } - /* TODO update this flag to peer data. */ if(!SBN_UIO_Mailbox_Data.ConnectedFlag) { From be4c162a450c56c3656e3f5397055906ab0b5089 Mon Sep 17 00:00:00 2001 From: cnalley Date: Thu, 18 Mar 2021 23:28:07 +0000 Subject: [PATCH 240/370] Remove stubs from cmakelists. --- apps/sbn/modules/mbox/fsw/for_build/CMakeLists.txt | 3 --- 1 file changed, 3 deletions(-) diff --git a/apps/sbn/modules/mbox/fsw/for_build/CMakeLists.txt b/apps/sbn/modules/mbox/fsw/for_build/CMakeLists.txt index dd928e67d..b1e475797 100644 --- a/apps/sbn/modules/mbox/fsw/for_build/CMakeLists.txt +++ b/apps/sbn/modules/mbox/fsw/for_build/CMakeLists.txt @@ -38,12 +38,9 @@ buildliner_add_app_def(sbn_mbox ${CMAKE_CURRENT_SOURCE_DIR}/../src/sbn_mailbox_if.h ${CMAKE_CURRENT_SOURCE_DIR}/../src/mailbox_parser.c ${CMAKE_CURRENT_SOURCE_DIR}/../src/mailbox_parser.h - ${CMAKE_CURRENT_SOURCE_DIR}/../stubs/xmbox.c - ${CMAKE_CURRENT_SOURCE_DIR}/../stubs/xmbox.h INCLUDES ${CMAKE_CURRENT_SOURCE_DIR}/../src/ ${CMAKE_CURRENT_SOURCE_DIR}/../../../../fsw/src/ - ${CMAKE_CURRENT_SOURCE_DIR}/../stubs/ ) From d30e1fe23d2818ce50b9488b16f209a8cb08ec47 Mon Sep 17 00:00:00 2001 From: lorenzo-gomez-windhover Date: Thu, 18 Mar 2021 18:38:03 -0500 Subject: [PATCH 241/370] -Fixed message id for CFE_Time Diag Message --- config/wh_config.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/wh_config.yaml b/config/wh_config.yaml index 03880bb66..8a8f0ba37 100644 --- a/config/wh_config.yaml +++ b/config/wh_config.yaml @@ -62,7 +62,7 @@ modules: cfe_time: telemetry: CFE_TIME_DIAG_TLM_MID: - msgID: 0x0802 + msgID: 0x0814 CFE_TIME_HK_TLM_MID: msgID: 0x0813 commands: From bd4276e2d0d3c46602aa6e0f2901fb6da5a83702 Mon Sep 17 00:00:00 2001 From: cnalley Date: Fri, 19 Mar 2021 15:53:50 +0000 Subject: [PATCH 242/370] Revert temporary changes to SBN loader. --- apps/sbn/fsw/src/sbn_loader.c | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/apps/sbn/fsw/src/sbn_loader.c b/apps/sbn/fsw/src/sbn_loader.c index 25639903a..71b943121 100644 --- a/apps/sbn/fsw/src/sbn_loader.c +++ b/apps/sbn/fsw/src/sbn_loader.c @@ -91,11 +91,6 @@ int32 SBN_ReadModuleFile(void) #else /* ! CFE_ES_CONFLOADER */ -//#include "sbn_interfaces.h" - -extern SBN_IfOps_t SBN_Mbox_Ops; - - /** * \brief Reads a file describing the interface modules that must be loaded. * @@ -241,9 +236,7 @@ int32 SBN_ParseModuleEntry(char *FileEntry, uint32 LineNum) OS_printf("SBN found symbol %s (%08x) in %s (%s)\n", StructName, StructAddr, ModuleName, ModuleFile); - /* TODO */ - //SBN.IfOps[ProtocolID] = (SBN_IfOps_t *)StructAddr; - SBN.IfOps[ProtocolID] = (SBN_IfOps_t *)&SBN_Mbox_Ops; + SBN.IfOps[ProtocolID] = (SBN_IfOps_t *)StructAddr; SBN.ModuleIDs[ProtocolID] = ModuleID; return SBN_SUCCESS; From a5f207609525b010f4311bdb34b838f91747626b Mon Sep 17 00:00:00 2001 From: cnalley Date: Fri, 19 Mar 2021 16:05:24 +0000 Subject: [PATCH 243/370] Add peer data to mbox modules. --- apps/sbn/modules/mbox/fsw/src/sbn_mailbox_if.c | 13 +++++++------ apps/sbn/modules/mbox/fsw/src/sbn_mailbox_if.h | 6 ++++++ .../modules/uio_mbox/fsw/src/sbn_uio_mailbox_if.c | 11 ++++++----- .../modules/uio_mbox/fsw/src/sbn_uio_mailbox_if.h | 6 ++++++ 4 files changed, 25 insertions(+), 11 deletions(-) diff --git a/apps/sbn/modules/mbox/fsw/src/sbn_mailbox_if.c b/apps/sbn/modules/mbox/fsw/src/sbn_mailbox_if.c index e85528c83..1a79d6307 100644 --- a/apps/sbn/modules/mbox/fsw/src/sbn_mailbox_if.c +++ b/apps/sbn/modules/mbox/fsw/src/sbn_mailbox_if.c @@ -359,7 +359,7 @@ static int Recv(SBN_NetInterface_t *Net, SBN_MsgType_t *MsgTypePtr, MessageComplete = TRUE; if (SBN_UnpackMsg(&SBN_Mailbox_Data.ParserBuffer[0], MsgSzPtr, MsgTypePtr, CpuIDPtr, Payload) == false) { - OS_printf("Unpack failed.\n"); + printf("Unpack failed.\n"); ReturnValue = SBN_ERROR; goto end_of_function; } @@ -374,10 +374,10 @@ static int Recv(SBN_NetInterface_t *Net, SBN_MsgType_t *MsgTypePtr, goto end_of_function; } + /* TODO remove after debug. */ CFE_SB_MsgId_t MsgID = CFE_SB_GetMsgId((CFE_SB_MsgPtr_t)Payload); printf("Received %u CPUID %u, %x\n", SizeRead, *CpuIDPtr, MsgID); - /* TODO move this into the if connected check. */ SBN_PeerInterface_t *Peer = SBN_GetPeer(Net, *CpuIDPtr); if(Peer == NULL) { @@ -385,12 +385,13 @@ static int Recv(SBN_NetInterface_t *Net, SBN_MsgType_t *MsgTypePtr, goto end_of_function; } - /* TODO update this flag to peer data. */ - if(!SBN_Mailbox_Data.ConnectedFlag) + SBN_Mailbox_Peer_t *PeerData = (SBN_Mailbox_Peer_t *)Peer->ModulePvt; + + if(!PeerData->ConnectedFlag) { - OS_printf("CPU %d connected", *CpuIDPtr); + OS_printf("CPU %u connected", *CpuIDPtr); - SBN_Mailbox_Data.ConnectedFlag = TRUE; + PeerData->ConnectedFlag = TRUE; SBN_SendLocalSubsToPeer(Peer); } diff --git a/apps/sbn/modules/mbox/fsw/src/sbn_mailbox_if.h b/apps/sbn/modules/mbox/fsw/src/sbn_mailbox_if.h index 71839328f..0b1da739c 100644 --- a/apps/sbn/modules/mbox/fsw/src/sbn_mailbox_if.h +++ b/apps/sbn/modules/mbox/fsw/src/sbn_mailbox_if.h @@ -33,6 +33,12 @@ #define SBN_PQ_CHANNEL_GET_TIMEOUT (500) +typedef struct +{ + boolean ConnectedFlag; +} SBN_Mailbox_Peer_t; + + typedef struct { XMbox Mbox; diff --git a/apps/sbn/modules/uio_mbox/fsw/src/sbn_uio_mailbox_if.c b/apps/sbn/modules/uio_mbox/fsw/src/sbn_uio_mailbox_if.c index 400b37b07..078aec6f6 100644 --- a/apps/sbn/modules/uio_mbox/fsw/src/sbn_uio_mailbox_if.c +++ b/apps/sbn/modules/uio_mbox/fsw/src/sbn_uio_mailbox_if.c @@ -432,10 +432,10 @@ static int Recv(SBN_NetInterface_t *Net, SBN_MsgType_t *MsgTypePtr, goto end_of_function; } + /* TODO remove after debug. */ CFE_SB_MsgId_t MsgID = CFE_SB_GetMsgId((CFE_SB_MsgPtr_t)Payload); printf("Received %u CPUID %u, %x\n", SizeRead, *CpuIDPtr, MsgID); - /* TODO move this into the if connected check. */ SBN_PeerInterface_t *Peer = SBN_GetPeer(Net, *CpuIDPtr); if(Peer == NULL) { @@ -443,12 +443,13 @@ static int Recv(SBN_NetInterface_t *Net, SBN_MsgType_t *MsgTypePtr, goto end_of_function; } - /* TODO update this flag to peer data. */ - if(!SBN_UIO_Mailbox_Data.ConnectedFlag) + SBN_UIO_Mailbox_Peer_t *PeerData = (SBN_UIO_Mailbox_Peer_t *)Peer->ModulePvt; + + if(!PeerData->ConnectedFlag) { - OS_printf("CPU %d connected", *CpuIDPtr); + OS_printf("CPU %u connected", *CpuIDPtr); - SBN_UIO_Mailbox_Data.ConnectedFlag = TRUE; + PeerData->ConnectedFlag = TRUE; SBN_SendLocalSubsToPeer(Peer); } diff --git a/apps/sbn/modules/uio_mbox/fsw/src/sbn_uio_mailbox_if.h b/apps/sbn/modules/uio_mbox/fsw/src/sbn_uio_mailbox_if.h index d309aa6eb..cd4e29224 100644 --- a/apps/sbn/modules/uio_mbox/fsw/src/sbn_uio_mailbox_if.h +++ b/apps/sbn/modules/uio_mbox/fsw/src/sbn_uio_mailbox_if.h @@ -36,6 +36,12 @@ #define SBN_PQ_CHANNEL_GET_TIMEOUT (500) +typedef struct +{ + boolean ConnectedFlag; +} SBN_UIO_Mailbox_Peer_t; + + typedef struct { void *Instance; From b7b1cd1532c6f71d15dd1081735190a66b836068 Mon Sep 17 00:00:00 2001 From: lorenzo-gomez-windhover <68551873+lorenzo-gomez-windhover@users.noreply.github.com> Date: Fri, 19 Mar 2021 11:11:20 -0500 Subject: [PATCH 244/370] Docs update (#28) * -Updated documentation * -make docs works now -TODO:Sphinx app and core paths need to be fixed * -Typo * -Added apps rst * -Added core to documentation --- Makefile | 8 +-- apps/README.rst | 55 +++++++++++++++++++++ config/reference/target/CMakeLists.txt | 22 ++++----- docs/tutorials/SetupGroundSystem.rst | 67 +++++++++++++++----------- index.rst | 40 +++++++++++++++ 5 files changed, 148 insertions(+), 44 deletions(-) create mode 100644 apps/README.rst create mode 100644 index.rst diff --git a/Makefile b/Makefile index a5b2952a3..381f06c78 100644 --- a/Makefile +++ b/Makefile @@ -35,7 +35,7 @@ SPHINX_OPTS ?= SPHINX_BUILD ?= sphinx-build SPHINX_SOURCEDIR = . SPHINX_BUILDDIR = build/reference/default/target/docs -SPHINX_FSW_BUILD = reference/default +SPHINX_FSW_BUILD = reference/target SHELL := /bin/bash @@ -151,16 +151,16 @@ obc:: done; -docs-doxygen: +docs-doxygen: mkdir -p build/${SPHINX_FSW_BUILD}/target; \ - (cd build/${SPHINX_FSW_BUILD}/target; cmake -DBUILDNAME:STRING=${SPHINX_FSW_BUILD} -DBUILDTYPE:STRING=target \ + (cd build/${SPHINX_FSW_BUILD}/target; cmake -DBUILDNAME:STRING=${SPHINX_FSW_BUILD} \ -G"Eclipse CDT4 - Unix Makefiles" -DCMAKE_ECLIPSE_GENERATE_SOURCE_PROJECT=TRUE CMAKE_BUILD_TYPE=Debug $(ROOT_DIR); make docs); docs-sphinx: @echo 'Building $$SPHINX_FSW_BUILD.' mkdir -p build/${SPHINX_FSW_BUILD}/target; \ - (cd build/${SPHINX_FSW_BUILD}/target; cmake -DBUILDNAME:STRING=${SPHINX_FSW_BUILD} -DBUILDTYPE:STRING=target \ + (cd build/${SPHINX_FSW_BUILD}/target; cmake -DBUILDNAME:STRING=${SPHINX_FSW_BUILD} \ -G"Eclipse CDT4 - Unix Makefiles" -DCMAKE_ECLIPSE_GENERATE_SOURCE_PROJECT=TRUE CMAKE_BUILD_TYPE=Debug $(ROOT_DIR)); @$(SPHINX_BUILD) -M html "$(SOURCE_DIR)" "$(SPHINX_BUILDDIR)" $(SPHINX_OPTS) -c build/$(SPHINX_FSW_BUILD)/target/docs $(O) @echo 'Completed' diff --git a/apps/README.rst b/apps/README.rst new file mode 100644 index 000000000..527ac743c --- /dev/null +++ b/apps/README.rst @@ -0,0 +1,55 @@ +Applications +==================================== + +.. toctree:: + :name: apps + + AsahiKASEI AK8963 Compass (AK8963) + Actuator Motor Control (AMC) + Battery Monitor (BAT) + File Delivery (CF) + CFS Library (CFS_LIB) + Command Ingest (CI) + Checksum Services (CS) + Current Value Table (CVT) + Data Storage (DS) + External Application (EA) + Optical Flow (FLOW) + File Manager (FM) + GPS (GPS) + Housekeeping (HK) + Honeywell HMC5883 Compass (HMC5883) + Health Services (HS) + Limit Checker (LC) + Landing Detector (LD) + Landing Gear Control (LGC) + Multicopter Attitude Control (MAC) + Mavlink (MAVLINK) + Memory Dwell (MD) + Memory Manager (MM) + Multicopter Position Control (MPC) + Invensense MPU6050 6 Axis IMU (MPU6050) + Invensense MPU9250 9 Axis IMU (MPU9250) + TE Connectivity MEAS MS5607 (MS5607) + TE Connectivity MEAS MS5611 (MS5611) + Navigator (NAV)